Kustanto Sumber : Rinaldi Munir, ITB Kriptografi Modern Kustanto Sumber : Rinaldi Munir, ITB
Mengapa kriptografi modern ? Klasik mudah dipecahkan, berbasis karakter Modern Berbasis bit, semua data dan informasi dinyatakan dalam bentuk rangkaian (string) bit biner (0 dan 1).
Contoh kriptografi modern Pesan bit biner dipecah menjadi beberapa blok Contoh: Plainteks 100111010110 di bagi menjadi blok bit yang panjangnya (4) 1001 1101 0110 setiap blok menyatakan bil dari 0 s/d 15: 9 13 6
Bila planteks dibagi menjadi blok berukuran 3 bit: 100 111 010 110 maka setiap blok menyatakan bilangan dari 0 – 7, yaitu: 4 7 2 6 (jika panjang rangkaian bit tdk habis dibagi dgn ukuran blok yang ditetapkan, maka blok yang terakhir ditambah dgn bit semu yang disebut padding bits). Contoh: Bila planteks tersebut dibagi menjadi blok berukuran 5-bit, akan menjadi: 10011 10101 00010
Cara lain untuk menyatakan rangkaian bit adalah dengan notasi heksadesimal (HEX), rangkaian bit dibagi menjadi blok yang berukuran 4 bit dengan representasi dalam HEX kode Hex: 0000 = 0 0001 = 1 0010 = 2 0011 = 3 0100 = 4 0101 = 5 0011 = 6 0111 = 7 1000 = 8 1011 = 9 1010 = A 1011 = B 1100 = C 1101 = D 1101 = E 1111 = F Contoh: plainteks 100111010110 dibagi menjadi blok bit yang panjangnya 4, menjadi: 1001 1101 0110 Notasi HEX nya adalah: 9 D 6
Operasi Biner Dlm Cipher Mode Bit Notasi: (XOR), Aturan Operasi: 0 0 = 0 0 1 = 1 1 0 = 1 1 1 = 0 Operasi XOR identik dgn penjumlahan modulo 2: 0 0 = 0 0 + 0 (mod 2) = 0 0 1 = 1 0 + 1 (mod 2) = 1 1 0 = 1 0 + 1 (mod 2) = 1 1 1 = 0 1 + 1 (mod 2) = 0
Hukum-hukum yang terkait dengan operator XOR: (i) a a = 0 (ii) a b = b a (komutatif) (iii) a (b c) = (a b) c (asosiatif)
Enkripsi dengan XOR Enkripsi: C = P K , dimana: C:Cipherteks, P:Planteks, K:Kunci Dekripsi: P = C K Contoh: plaintext (‘a’) = 97= 01100001 key (‘A’) = 65 = 01000001 cipherteks 00100000 32 key 01000001 plainteks 01100001
Latihan Soal Planteks=82, Key=karakter !! Planteks=121, Key=karakter $ Planteks=karakter e, Key=karakter 5
Cipher Aliran Chiper aliran mengenkripsi plainteks chiperteks bit per bit (1 bit setiap kali transformasi) atau byte per byte (1karakter=1 byte). Chiperteks diperoleh dengan melakukan penjumlahan modolu 2 satu bit plainteks dengan satu bit kunci: ci=(pi + ki) mod 2, dimana: ci=bit cipherteks pi=bit plainteks ki=bit kunci Plainteks diperoleh dgn melakukan penjumlahan mod 2 satu bit cipherteks degan satu bit kunci: pi=(ci + ki) mod 2, mengingat penjumlahan mod 2 identik dengan operasi bit dengan operator XOR, makapersamaannya dapat ditulus sbb: ci=pi ki dan deskripsinya: pi=ci ki
Bit-bit kunci keystream Keystream keystream generator. Pengirim: Keystream di-XOR-kan dengan bit-bit plainteks, p1, p2, …, menghasilkan aliran bit-bit cipherteks: ci = pi ki Penerima: Dibangkitkan keystream yang sama untuk mendekripsi : pi = ci ki
Contoh: Plainteks: 1100101 Keystream: 1000110 Cipherteks: 0100011 Keamanan sistem cipher aliran bergantung seluruhnya pada keystream generator.
Keystream generator prosedur yang sama di sisi pengirim dan penerima pesan. Keystream generator dapat membangkitkan keystream berbasis bit per bit / blok-blok bit.
Latihan Potongan planteks 01100101 di enkripsikan dengan potongan aliran kunci 00110101 P 01100101 K 00110101 C 01010000 Jika kriptanalis meneukan potongan plainteks 01100101 dan cipherteks yang berkoresponden 01010000 , Bagaimana kriptanalis untuk mendeduksikan kunci dari dua buah informasi ini ?
End Of Session to day