Block Cipher Stream Cipher

penerima pesan harus memiliki kunci yang sama, sehingga pengirim pesan harus mencari cara yang aman untuk memberitahukan kunci kepada penerima pesan.

2.3.1.1. Block Cipher

Pada block cipher, rangkaian bit-bit plainteks dibagi menjadi blok-blok bit dengan panjang yang sama. Enkripsi dilakukan terhadap blok bit plainteks menggunakan bit-bit kunci yang ukurannya sama dengan ukuran plainteks. Algoritma enkripsi menghasilkan blok cipher yang berukuran sama dengan blok plainteks. Dekripsi dilakukan dengan cara yang sama seperti enkripsi. Misalnya blok plainteks P yang ukurannya n bit dinyatakan sebagai vektor P = p 1 ,p 2 ,,…,p n yang dalam hal ini p i adalah 0 atau 1 untuk i = 1,2,3,…n, dan blok cipherteks C adalah C = c 1 ,c 2 ,,…c n yang dalam hal ini c i adalah 0 atau 1 untuk i = 1,2,…,n. Bila plainteks dibagi menjadi m buah blok, barisan blok-blok plainteks dinyatakan sebagai P 1 ,P 2 ,…,P m . Untuk setiap blok plainteks P i , bit-bit penyusunnya dapat dinyatakan sebagai vektor Enkripsi E K P = C Dekripsi D K C = P Kunci privat, K Kunci privat, K Plainteks, P Plainteks, P Gambar 2.2. Skema kriptografi kunci simetri. Kunci enkripsi sama dengan kunci dekripsi yaitu K Cipherteks, C Universitas Sumatera Utara P i = p i1 ,p i2 ,…p in Enkripsi dengan kunci K dinyatakan dengan persamaan E k P = C dan dekripsi dengan kunci K dinyatakan dengan persamaan D k C = P Fungsi E haruslah fungsi yang berkoresponden satu ke satu, sehingga E -1 = D

2.3.1.2. Stream Cipher

Stream cipher membangkitkan plainteks menjadi cipherteks bit per bit satu bit setiap kali transformasi atau byte per byte 1 karakter = 1 byte, stream cipher yang memproses data byte per byte adalah vegenere cipher atau one time pad chiper. Nama lain untuk stream cipher adalah cipher status sebab enkripsi setiap bit bergantung pada saat inicurrent state. Stream cipher pertama kali diperkenalkan oleh Vernam melalui algoritmanya yang dikenal dengan nama Vernam cipher. Vernam cipher diadopsi dari one time pad cipher, yang dalam hal ini karakter diganti dengan bit 0 atau 1. Cipherteks diperoleh dengan melakukan penjumlahan modulo 2 satu bit plainteks dengan satu bit kunci, C i = p i + k i mod 2 yang dalam hal ini, P i = bit plainteks K i = bit kunci C i = bit cipherteks Universitas Sumatera Utara Plainteks diperoleh dengan melakukan penjumlahan modulo 2 satu bit cipherteks dengan satu bit kunci: P i = c i + k i mod 2 Oleh karena itu kita dapat menyatakan bahwa stream cipher merupakan aproksimasi dari unbreakable cipher, yaitu one time pad cipher. Mengingat operasi penjumlahan modulo 2 identik dengan operasi bit dengan operator XOR, maka persamaan diatas dapat ditulis sebagai C i = p i ⊕ k i Dan proses deskripsi menggunakan persamaan P i = c i ⊕ k i Keamanan sistem stream cipher bergantung seluruhnya pada pembangkit aliran kunci. Jika pembangkit mengeluarkan aliran kunci yang seluruhnya nol maka cipheteks sama dengan plainteks, dan proses enkripsi menjadi tidak berarti. Jika pembangkit mengeluarkan aliran kunci dengan pola 16 bit yang berulang, maka algoritma enkripsinya menjadi sama seperti enkripsi dengan XOR sederhana yang memiliki tingkat keamanan yang tidak berarti. Jika pembangkit mengeluarkan aliran kunci yang benar-benar acak truly random, maka algoritma enkripsinya sama dengan one time pad cipher dengan tingkat keamanan sempurna. Pada kasus ini, aliran kunci sama panjangnya dengan panjang plainteks, dan mendapatkan stream cipher sebagai unbreakable cipher. Jadi, tingkat keamanan cipher aliran terletak antara algoritma XOR sederhana dengan one time pad. Semakin acak keluaran yang dihasilkan oleh pembangkit aliran kunci, semakin sulit kriptanalis memecahkan cipherteks. Universitas Sumatera Utara

2.3.2. Kriptografi Kunci Asimetri