ENKRIPSI & DEKRIPSI


Enkripsi ialah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. Sedangkan, Dekripsi adalah kebalikan dari enkripsi yakni mengubah ciphertext menjadi plaintext, sehingga berupa data awal/asli.

Dikarenakan enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, hanya organisasi-organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkr
ipsi. Di pertengahan tahun 1970-an, enkripsi kuat dimanfaatkan untuk pengamanan oleh sekretariat agen pemerintah Amerika Serikat pada domain publik, dan saat ini enkripsi telah digunakan pada sistem secara luas, seperti Internet e-commerce, jaringan Telepon bergerak dan ATM pada bank.

Enkripsi dapat digunakan untuk tujuan keamanan, tetapi teknik lain masih diperlukan untuk membuat komunikasi yang aman, terutama untuk memastikan integritas dan autentikasi dari sebuah pesan. Contohnya, Message Authentication Code (MAC) atau digital signature. Penggunaan yang lain yaitu untuk melindungi dari analisis jaringan komputer.


Pertama kali sebelum pesan dikirim pesan tersebut masih dalam keadaan asli atau belum di enkripsi atau yang lebih dikenal dengan nama plaintext atau cleartext. Kemudian pada saat pesan tersebut dikirim pesan tersebut terlebih dahulu dilakukan proses encription (encipherment) yaitu proses menyandikan pesan plaintext kedalam chipertext yang apabila di buka akan berupa algoritma atau kata-kata yang sama sekali tidak dimengerti, sehingga orang lain tidak bisa membaca data yang telah di enkripsi tersebut. Kemudian setelah sampai di si penerima untuk mengubah chipertext tadi ke dalam plaintext disebut dengan decryption (dechiperment). Sedangkan Orang yang melakukan enkripsi terhadap suatu pesan atau praktisi kriptographi disebut “Cryptographer”. Pendistribusian Kunci pada Kriptografi Kunci Simetri tidak dapat dilakukan menggunakan saluran/ media yang akan digunakan untuk komunikasi, diperlukan media khusus untuk distribusi kunci, beberapa kunci mungkin membutuhkan beberapa media paralel untuk distribusinya.


Dari gambar diatas dapat kita lihat bahwa untuk mengirimkan pesan antara si pengirim dan si penerima menggunakan satu kunci atau kunci yang di gunakan sama. Maksudnya adalah kunci yang digunakan untuk mengenkripsi pesan dan kunci yang digunakan untuk mengdekripsikan pesan sama. Berarti mereka dalam melakukan komunikasi menggunkan satu kunci yang disebut kunci asimetri. Proses enkripsi dan dekripsi keduanya menggunakan kunci yang sama K1=K2.

Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah relasi antara dua himpunan yaitu yang berisi elemen teks terang /plaintext dan yang berisi elemen teks sandi/ciphertext. Enkripsi dan dekripsi merupakan fungsi transformasi antara himpunan-himpunan tersebut. Apabila elemen-elemen teks terang dinotasikan dengan P, elemen-elemen teks sandi dinotasikan dengan C, sedang untuk proses enkripsi dinotasikan dengan E, dekripsi dengan notasi D.
Enkripsi : E(P) = C
Dekripsi : D(C) = P atau D(E(P)) = P


Ciphers
Cipher adalah sebuah algoritma untuk menampilkan enkripsi dan kebalikannya dekripsi, serangkaian langkah yang terdefinisi yang diikuti sebagai prosedur. Alternatif lain ialah encipherment. Informasi yang asli disebuh sebagai plaintext, dan bentuk yang sudah dienkripsi disebut sebagai chiphertext. Pesan chipertext berisi seluruh informasi dari pesan plaintext, tetapi tidak dalam format yang didapat dibaca manusia ataupun komputer tanpa menggunakan mekasnisme yang tepat untuk melakukan dekripsi.

Cipher pada biasanya memiliki parameter dari sebagian dari informasi utama, disebut sebagai kunci. Prosedur enkripsi sangat bervariasi tergantung pada kunci yang akan mengubah rincian dari operasi algoritma. Tanpa menggunakan kunci, chiper tidak dapat digunakan untuk dienkirpsi ataupun didekripsi.


Chipers Vs Code
Pada penggunaan non teknis, sebuah secret code merupakan hal yang sama dengan cipher. Berdasar pada diskusi secara teknis, bagaimanapun juga, code dan cipher dijelaskan dengan dua konsep.Code bekerja pada tingkat pemahaman, yaitu, kata atau frasa diubah menjadi sesuatu yang lain. Cipher, dilain pihak, bekerja pada tingkat yang lebih rendah, yaitu, pada tingkat masing-masing huruf, sekelompok huruf, pada skema yang modern, pada tiap-tiap bit. Beberapa sistem menggunakan baik code dan cipher dalam sistem yang sama, menggunakan superencipherment untuk meningkatkan keamanan.

Menurut sejarahnya, kriptografi dipisah menjadi dikotomi code dan cipher, dan penggunaan code memiliki terminologi sendiri, hal yang sama pun juga terjadi pada cipher: "encoding, codetext,decoding" dan lain sebagainya. Bagaimanapun juga, code memiliki berbagai macam cara untuk dikembalikan, termasuk kerapuhan terhadap kriptoanalisis dan kesulitan untuk mengatur daftar kode yang susah. Oleh karena itu, code tidak lagi digunakan pada kriptografi modern, dan cipher menjadi teknik yang lebih dominan.


Tipe – tipe chiper
Ada banyak sekali variasi pada tipe enkripsi yang berbeda. Algoritma yang digunakan pada awal sejarah kriptografi sudah sangat berbeda dengan metode modern, dan cipher modern dan diklasifikasikan berdasar pada bagaimana cipher tersebut beroperasi dan cipher tersebut menggunakan sebuah atau dua buah kunci.


Sejarah Cipher pena dan kertas pada waktu lampau sering disebut sebagai cipher klasik.Cipher klasik termasuk juga cipher pengganti dan cipher transposisi. Pada awal abad 20, mesin-mesin yang lebih mutakhir digunakan untuk kepentingan enkripsi, mesin rotor, merupkan skema awal yang lebih kompleks.

Metode enkripsi dibagi menjadi algoritma symmetric key dan algoritma asymmetric key. pada algoritma symmetric key (misalkan, DES dan AES), pengirim dan penerima harus memiliki kunci yang digunakan bersama dan dijaga kerahasiaanya. Pengirim menggunkan kunci ini untuk enkripsi dan penerima menggunakan kunci yang sama untuk dekripsi. Pada algoritmaasymmetric key (misalkan, RSA), terdapat dua kunci terpisah, sebuah public key diterbitkan dan membolehkan siapapun pengirimnya untuk melakukan enkripsi, sedangkan sebuah private key dijaga kerahasiannya oleh penerima dan digunakan untuk melakukan dekripsi.

Cipher symmetric key dapat dibedakan dalam dua tipe, tergantung pada bagaimana ciphertersebut bekerja pada blok simbol pada ukuran yang tetap (block ciphers), atau pada aliran simbol terus-menerus (stream ciphers).

Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan menjadi :
  1. Kunci Simetris (Symetric Key), sering disebut juga algoritma sandi konvensional karena umumnya diterapkan pada algoritma sandi klasik
  2. Kunci Asimetris (Asymetric Key)

1. Algoritma Simetris
Algoritma simetris (symmetric algorithm) adalah suatu algoritma dimana kunci enkripsi yang digunakan sama dengan kunci dekripsi sehingga algoritma ini disebut juga sebagai single-key algorithm.

Sebelum melakukan pengiriman pesan, pengirim dan penerima harus memilih suatu suatu kunci tertentu yang sama untuk dipakai bersama, dan kunci ini haruslah rahasia bagi pihak yang tidak berkepentingan sehingga algoritma ini disebut juga algoritma kunci rahasia (secret-key algorithm).

Kelebihan :
  • Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetrik.
  • Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem real-time
Kelemahan :
  • Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut.
  • Permasalahan dalam pengiriman kunci itu sendiri yang disebut “key distribution problem”. Contoh algoritma : TwoFish, Rijndael, Camellia, DES - Data Encryption Standard, blowfish
Pada skema kunci-simetris, digunakan sebuah kunci rahasia yang sama untuk melakukan proses enkripsi dan dekripsinya. Sedangkan pada sistem kunci-asimentris digunakan sepasang kunci yang berbeda, umumnya disebut kunci public (public key) dan kunci pribadi (private key), digunakan untuk proses enkripsi dan proses dekripsinya. Bila elemen teks terang dienkripsi dengan menggunakan kunci pribadi maka elemen teks sandi yang dihasilkannya hanya bisa didekripsikan dengan menggunakan pasangan kunci pribadinya. Begitu juga sebaliknya, jika kunci pribadi digunakan untuk proses enkripsi maka proses dekripsi harus menggunakan kunci publik pasangannya.

Skema algoritma sandi akan disebut kunci-simetris apabila untuk setiap proses enkripsi maupun dekripsi data secara keseluruhan digunakan kunci yang sama. Skema ini berdasarkan jumlah data per proses dan alur pengolahan data didalamnya dibedakan menjadi dua kelas, yaitu Block-Cipher dan Stream-Cipher.
  1. Block-Cipher
  2. Block-cipher adalah skema algoritma sandi yang akan membagi-bagi plaintext yang akan dikirimkan dengan ukuran tertentu (disebut blok) dengan panjang dan setiap blok dienkripsi dengan menggunakan kunci yang sama. Pada umumnya, block-cipher memproses teks terang dengan blok yang relatif panjang lebih dari 64 bit, untuk mempersulit penggunaan pola-pola serangan yang ada untuk membongkar kunci. Untuk menambah kehandalan model algoritma sandi ini, dikembangkan pula beberapa tipe proses enkripsi, yaitu :
    • ECB, Electronic Code Book
    • Pada mode operasi ECB sebuah blok input plaintext dipetakan secara statis ke sebuah blok output ciphertext. Sehingga tiap plaintext yang sama akan menghasilkan ciphertext yang selalu sama pula. Sifat- sifat dari mode operasi ECB :
        • Sederhana dan efisien
        • Memungkinkan implementasi parallel
        • Tidak menyembunyikan pola plaintext
        • Dimungkinkan terjadi adanya active attack.

      Skema dari mode operasi ECB dapat digambarkan sebagai berikut :

    • CBC, Cipher Block Chaining
    • Pada mode oparasi ini hasil enkripsi dari blok sebelumnya mempengaruhi hasil enkripsi selanjutnya, atau enkripsi sebeluimnya menjadi feedback pada enkripsi blok saat itu., jadi tiap blok ciphertext bergantung bukan hanya pada blok plaintext-nya tapi bergantung pula pada blok-blok plaintext sebelumnya. Sehingga untuk plaintext yang sama, belum tentu menghasilkan ciphertext yang sama pula.

      Skema dari mode operasi CBC dapat digambarkan sebagai berikut :

      Mula-mula sebelum si pengirim hendak mengirimkan pesannya kepada si penerima, dia terlebih dahulu harus meng-XOR plaintext dengan IV (initialization vector) baru kemudian dienkripsi, setelah itu baru dikirimkan ciphertext pertamanya kepada si penerima. Plaintext ke-2 pun demikian, harus di-XOR terlebih dahulu dengan ciphertext sebelumnya sebelum mengalami proses enkripsi baru kemudian dikirimkan ke si penerima sebagai ciphertext 2 dan seterusnya.

      Sifat-sifat dari mode operasi CBC :
      • Lebih aman dari active attacks dibandingkan mode operasi ECB
      • Error pada satu ciphertext dapat berakibat parah
      • Menutupi pola plaintext
      • Implementasi parallel belum diketahui

    • OFB, Output Feed Back
    • CFB, Cipher Feed Back

  3. Stream-Cipher
  4. Stream-cipher adalah algoritma sandi yang mengenkripsi data persatuan data, seperti bit, byte, nible atau per lima bit(saat data yang di enkripsi berupa data Boudout). Setiap mengenkripsi satu satuan data di gunakan kunci yang merupakan hasil pembangkitan dari kunci sebelumnya.

2. Algoritma Asimetris
Algoritma asimetris (asymmetric algorithm) adalah suatu algoritma dimana kunci enkripsi yang digunakan tidak sama dengan kunci dekripsi. Pada algoritma ini menggunakan dua kunci yakni kunci publik (public key) dan kunci privat (private key). Kunci publik disebarkan secara umum sedangkan kunci privat disimpan secara rahasia oleh si pengguna. Walau kunci publik telah diketahui namun akan sangat sukar mengetahui kunci privat yang digunakan.

Pada umumnya kunci publik (public key) digunakan sebagai kunci enkripsi sementara kunci privat (private key) digunakan sebagai kunci dekripsi.

Kelebihan :
  • Masalah keamanan pada distribusi kunci dapat lebih baik
  • Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit
Kelemahan :
  • Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris
  • Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang dibandingkan dengan algoritma simetris. Contoh algoritma : RSA, DSA, ElGamal, Knapsack, Diffie-Hellman

Fungsi Enkripsi dan Dekripsi Algoritma Sandi Kunci-Asimetris.
Apabila Ahmad dan Bejo hendak bertukar berkomunikasi, maka:
  1. Ahmad dan Bejo masing-masing membuat 2 buah kunci
    1. Ahmad membuat dua buah kunci, kunci-publik dan kunci privat
    2. Bejo membuat dua buah kunci, kunci-publik dan kunci-privat
  2. Mereka berkomunikasi dengan cara:
    1. Ahmad dan Bejo saling bertukar kunci-publik. Bejo mendapatkan dari Ahmad, dan Ahmad mendapatkan dari Bejo.
    2. Ahmad mengenkripsi Plaintext ke Bejo dengan fungsi
    3. Ahmad mengirim Ciphertext ke Bejo
    4. Bejo menerima dari Ahmad & membuka Plaintext dengan fungsi
Hal yang sama terjadi apabila Bejo hendak mengirimkan pesan ke Ahmad
  1. Bejo mengenkripsi Plaintext ke Ahmad dengan fungsi
  2. Ahmad menerima dari Bejo dan membuka Plaintext dengan fungsi

Berdasarkan arah implementasi dan pembabakan jamannya dibedakan menjadi :
  1. Algoritma Sandi Klasik (Classic Cryptography)
  2. Algoritma Sandi Modern (Modern Cryptography)

Berdasarkan kerahasiaan kuncinya dibedakan menjadi :
  1. Algoritma Sandi Kunci Rahasia (Secret Key)
  2. Algoritma Sandi Kunci Publik (Publik Key)

Komentar

  1. Berat banget........Tapi salut ada cewek yang suka komputer sampai mendalaminya :-)

    BalasHapus
  2. @ sam : maksih,, tp ini lagi kebetulan aja da tugas dari dosen,, n emang dikampus dapet matakul keamanan Komputer

    BalasHapus
  3. Source Code untuk enkripsi-dekripsi dgn metode XOR ada gak mbak..mnggunakan VB mbak..

    BalasHapus
  4. wah klo VBnya g ada,, aq juga kurang tw kalo pake VB hehe :D.. mav ya

    BalasHapus
  5. gak ada penjelasan tentang CFB & OFB yah?

    BalasHapus
  6. @ Ticka Chelov : wah klo itu saya kurang faham mba,, mungkin bisa di goole lagi ditempat yg lain. terimakasih sudah berkunjung

    BalasHapus

Posting Komentar

Sekian Tutorial dari saya semoga dapat membantu. Mohon maaf apabila terdapat kesalahan dalam Tutorial saya. Terima kasih atas kunjungannya. Jika anda berkenan berilah komentar pada Tutorial ini. Terima Kasih Sebelumnya.
Hormat saya Destia Salma