- 1. Algoritma Kriptografi Moder Bahan Kuliah ke-8 IF5054 Kriptografi Algoritma Kriptografi Modern Disusun oleh: Ir. Rinaldi Munir, M.T. Departemen Teknik Informatika Institut Teknologi Bandung 2004Rinaldi Munir – IF5054 Kriptografi 1
- 2. Algoritma Kriptografi Moder 8. Algoritma Kriptografi Modern8.1 Pendahuluan • Kriptografi modern menggunakan gagasan dasar yang sama seperti kriptografi klasik (permutasi dan transposisi) tetapi penekanannya berbeda. • Pada kriptografi klasik, kriptografer menggunakan algoritma yang sederhana, yang memungkinkan cipherteks dapat dipecahkan dengan mudah (melalui penggunaan statistik, terkaan, intuisi, dan sebagainya). • Algoritma kriptografi modern dibuat sedemikian kompleks sedemikian sehingga kriptanalis sangat sulit memecahkan cipherteks tanpa mengetahui kunci. • Algoritma kriptografi modern umumnya beroperasi dalam mode bit ketimbang mode karakter (seperti yang dilakukan pada cipher substitusi atau cipher transposisi dari algoritma kriptografi klasik). • Operasi dalam mode bit berarti semua data dan informasi (baik kunci, plainteks, maupun cipherteks) dinyatakan dalam rangkaian (string) bit biner, 0 dan 1. Algoritma enkripsi dan dekripsi memproses semua data dan informasi dalam bentuk rangkaian bit. Rangkaian bit yang menyatakan plainteks dienkripsi menjadi cipherteks dalam bentuk rangkaian bit, demikian sebaliknya. • Perkembangan algoritma kriptografi modern berbasis bit didorong oleh penggunaan komputer digital yang merepresentasikan data dalam bentuk biner.Rinaldi Munir – IF5054 Kriptografi 2
- 3. Algoritma Kriptografi Moder • Diagram blok kriptografi modern (Gambar 8.1) S e c u r e N e tw o r k P r o to c o ls D a ta N on- C o n fid e n t ia lit y A u t h e n tic a t io n I n te g r it y R e p u d ia tio n M ACs C h a lle n g e S m a rt D ig it a l E n c r y p tio n M IC s R esponses C a rd s S ig n a tu r e s S y m m e t r ic K e y M essage S e c re t P u b lic K e y IV s N onces C ry p to g ra p h y D ig e s t K eys C ry p to g ra p h y B lo c k S tre a m H ash Pseudo R andom E llip t ic DH C ip h e r C ip h e r F u n c tio n R andom S o u rc e C u rv e R SA Gambar 8.1 Diagram blok kriptografi modern8.2 Rangkaian bit • Rangkaian bit yang dipecah menjadi blok-blok bit dapat ditulis dalam sejumlah cara bergantung pada panjang blok. Contoh: Plainteks 100111010110 dibagi menjadi blok bit yang panjangnya 4 menjadi 1001 1101 0110 Setiap blok menyatakan bilangan dari 0 sampai 15, yaitu 9 13 6Rinaldi Munir – IF5054 Kriptografi 3
- 4. Algoritma Kriptografi Moder Bila plainteks dibagi menjadi blok-blok berukuran 3 bit: 100 111 010 110 maka setiap blok menyatakan bilangan dari 0 sampai 7, yaitu 4 7 2 6 • Bila panjang rangkaian bit tidak habis dibagi dengan ukuran blok yang ditetapkan, maka blok yang terakhir ditambah dengan bit-bit semu yang disebut padding bits. Misalnya rangkaian bit di atas dibagi menjadi blok 5-bit menjadi 10011 10101 00010 Blok yang terakhir telah ditambahkan 3 bit 0 di bagian awal (dicetak tebal) agar ukurannya menjadi 5 bit. Padding bits dapat mengakibatkan ukuran plainteks hasil dekripsi lebih besar daripada ukuran plainteks semula. • Cara lain untuk menyatakan rangkaian bit adalah dengan notasi heksadesimal (HEX). Rangkaian bit dibagi menjadi blok yang berukuran 4 bit dengan representasi dalam HEX adalah: 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 = FRinaldi Munir – IF5054 Kriptografi 4
- 5. Algoritma Kriptografi Moder Misalnya, plainteks 100111010110 dibagi menjadi blok bit yang panjangnya 4 menjadi 1001 1101 0110 yang dalam notasi HEX adalah 9 D 68.4 Operator XOR • Operator biner yang sering digunakan dalam cipher yang yang beroperasi dalam mode bit adalah XOR atau exclusive- or. • Notasi matematis untuk operator XOR adalah ⊕ (dalam Bahasa C, operator XOR dilambangkan dengan ^). • Operator XOR diperasikan pada dua bit dengan aturan sebagai berikut: 0⊕0=0 0⊕1=1 1⊕0=1 1⊕1=0 Perhatikan bahwa operator XOR identik dengan penjumlahan modulo 2: 0 + 0 (mod 2) = 0 0 + 1 (mod 2) = 1 1 + 0 (mod 2) = 1Rinaldi Munir – IF5054 Kriptografi 5
- 6. Algoritma Kriptografi Moder 1 + 1 (mod 2) = 0 • Misalkan a, b, dan c adalah peubah Boolean. Hukum-hukum yang terkait dengan operator XOR: (i) a ⊕ a = 0 (ii) a ⊕ b = b ⊕ a (Hukum komutatif) (iii) a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c (Hukum asosiatif) • Jika dua rangkaian dioperasikan dengan XOR, maka operasinya dilakukan dengan meng-XOR-kan setiap bit yang berkoresponden dari kedua rangkaian bit tersebut. Contoh: 10011 ⊕ 11001 = 01010 yang dalam hal ini, hasilnya diperoleh sebagai berikut: 1 0 0 1 1 1 1 0 0 1 ⊕ 1 ⊕ 1 0 ⊕ 1 0 ⊕ 0 1⊕ 0 1 ⊕ 1 0 1 0 1 0 • Algoritma enkripsi sederhana yang menggunakan XOR adalah dengan meng-XOR-kan plainteks (P) dengan kunci (K) menghasilkan cipherteks: C= P⊕K (8.1) Karena meng-XOR-kan nilai yang sama dua kali berturut- turut menghasilkan nilai semula, maka dekripsi menggunakan persamaan: P=C⊕K (8.2)Rinaldi Munir – IF5054 Kriptografi 6
- 7. Algoritma Kriptografi Moder Contoh: plainteks 01100101 (karakter ‘e’) kunci 00110101 ⊕ (karakter ‘5’) cipherteks 01010000 (karakter ‘P’) kunci 00110101 ⊕ (karakter ‘5’) plainteks 01100101 (karakter ‘e’) • Algoritma enkripsi XOR sederhana pada prinsipnya sama seperti Vigenere cipher dengan penggunaan kunci yang berulang secara periodik. Setiap bit plainteks di-XOR- kan dengan setiap bit kunci./* Enkripsi berkas teks dengan /* Dekripsi berkas teks dengan algoritma XOR sederhana. algoritma XOR sederhana. Berkas plainteks: plain.txt Berkas plainteks: cipher.txt Berkas cipherteks: cipher.txt Berkas cipherteks: plain2.txt*/ */#include <stdio.h> #include <stdio.h>main() main(){ { FILE *Fin, *Fout; FILE *Fin, *Fout; char P, C, K[20]; char P, C, K[20]; int n, i; int n, i; Fin = fopen("plain.txt", "r"); Fin = fopen("cipher.txt", "r"); Fout = fopen("cipher.txt", "w"); Fout = fopen("plain2.txt", "w"); printf("Kata kunci : "); gets(K); printf("Kata kunci : "); gets(K); n = strlen(K); /*panjang kunci*/ n = strlen(K); /*panjang kunci*/ i = 0; i = 0; while ((P = getc(Fin)) != EOF) while ((C = getc(Fout)) != EOF) { { C = P ^ K[i]; /* operasi XOR */ P = C ^ K[i]; /* operasi XOR */ putc(C, Fout); putc(P, Fout ); i++; if (i > n-1) i = 0; i++; if (i > n-1) i = 0; } } fclose(Fin); fclose(Fin); fclose(Fout); fclose(Fout);} }Rinaldi Munir – IF5054 Kriptografi 7
- 8. Algoritma Kriptografi Moder enk_xor.c dek_xor.cContoh hasil eksekusi program (Kata kunci: ganesha): ¤@ES28E88E8 ¤ 78 Sµµ S8§µH¤b A ¤ HIS§¤8H Aµ S ¤KSA8G(:y88N-GPYEPada wisuda sarjana baru, ternyataada seorang wisudawan yang palingmuda. Umurnya baru 21 tahun. Iniberarti dia masuk ITB pada umur 17tahun. Zaman sekarang banyaksarjana masih berusia muda belia. A¤o8µH¤KS=8bEAYA8FA.¤plain.txt cipher.txt • Program komersil yang berbasis DOS atau Macintosh menggunakan algoritma XOR sederhana ini. • Sayangnya, algoritma XOR sederhana tidak aman karena cipherteksnya mudah dipecahkan. Cara memecahkannya adalah sebagai berikut (asumsi: panjang kunci adalah sejumlah kecil byte): 1. Cari panjang kunci dengan prosedur counting coincidence sbb: XOR-kan cipherteks terhadap dirinya sendiri setelah digeser sejumlah byte, dan hitung jumlah byte yang sama. Jika pergeseran itu kelipatan dari panjang kunci (yang tidak diketahui), maka 6% dari byte akan sama. Jika tidak, maka 0.4% akan sama. Angka persentase ini disebut index of coincidence. Pergeseran terkecil mengindikasikan panjang kunci yang dicari.Rinaldi Munir – IF5054 Kriptografi 8
- 9. Algoritma Kriptografi Moder 2. Geser cipherteks sejauh panjang kunci dan XOR-kan dengan dirinya sendiri. Operasi ini menghasilkan plainteks yang ter-XOR dengan plainteks yang digeser sejauh panjang kunci tersebut.§99Sµµ ¤G¤µHRinaldi Munir – IF5054 Kriptografi 9
- 10. Algoritma Kriptografi Moder 2. Geser cipherteks sejauh panjang kunci dan XOR-kan dengan dirinya sendiri. Operasi ini menghasilkan plainteks yang ter-XOR dengan plainteks yang digeser sejauh panjang kunci tersebut.§99Sµµ ¤G¤µHRinaldi Munir – IF5054 Kriptografi 9
- 11. Algoritma Kriptografi Moder 2. Geser cipherteks sejauh panjang kunci dan XOR-kan dengan dirinya sendiri. Operasi ini menghasilkan plainteks yang ter-XOR dengan plainteks yang digeser sejauh panjang kunci tersebut.§99Sµµ ¤G¤µHRinaldi Munir – IF5054 Kriptografi 9
Jumat, 28 Juni 2013
algoritma kriptografi modern
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar