380 likes | 785 Views
Algoritma Kriptografi Klasik. Bahan kuliah ke-4 IF5054 Kriptografi. Pendahuluan. Algoritma kriptografi klasik berbasis karakter Termasuk ke dalam kriptorafi simetri Tiga alasan mempelajari algoritma klasik: 1. Memahami konsep dasar kriptografi. 2. Dasar algoritma kriptografi modern.
E N D
Algoritma Kriptografi Klasik Bahan kuliah ke-4 IF5054 Kriptografi Rinaldi Munir/IF5054 Kriptografi
Pendahuluan • Algoritma kriptografi klasik berbasis karakter • Termasuk ke dalam kriptorafi simetri • Tiga alasan mempelajari algoritma klasik: 1. Memahami konsep dasar kriptografi. 2. Dasar algoritma kriptografi modern. 3. Memahami kelemahan sistem cipher. Rinaldi Munir/IF5054 Kriptografi
Algoritma kriptografi klasik: 1. Cipher Substitusi (Substitution Ciphers) 2.Cipher Transposisi (Transposition Ciphers) Rinaldi Munir/IF5054 Kriptografi
Cipher Substitusi • Contoh: Caesar Cipher • Tiap huruf alfabet digeser 3 huruf ke kanan pi: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ci : D E F G H I J K L M N O P Q R S T U V W X Y Z A B C Contoh: Plainteks: AWASI ASTERIX DAN TEMANNYA OBELIX Cipherteks: DZDVL DVWHULA GDQ WHPDQQBA REHOLA Rinaldi Munir/IF5054 Kriptografi
Misalkan A = 0, B = 1, …, Z = 25, maka secara matematis caesar cipher dirumsukan sebagai berikut: Enkripsi: ci= E(pi) = (pi+ 3) mod 26 Dekripsi: pi = D(ci) = (ci– 3) mod 26 Rinaldi Munir/IF5054 Kriptografi
Jika pergeseran huruf sejauh k, maka: Enkripsi: ci= E(pi) = (pi+ k) mod 26 Dekripsi: pi = D(ci) = (ci– k) mod 26 k = kunci rahasia • Untuk 256 karakter ASCII, maka: Enkripsi: ci= E(pi) = (pi+ k) mod 256 Dekripsi: pi = D(ci) = (ci– k) mod 256 k = kunci rahasia Rinaldi Munir/IF5054 Kriptografi
Kelemahan: Caesar cipher mudah dipecahkan dengan exhaustive key search karena jumlah kuncinya sangat sedikit (hanya ada 26 kunci). Rinaldi Munir/IF5054 Kriptografi
Contoh: kriptogram XMZVH Plainteks yang potensial adalah CREAM dengan k = 21. Kunci ini digunakan untuk mendekripsikan cipherteks lainnya. Rinaldi Munir/IF5054 Kriptografi
PHHW PH DIWHU WKH WRJD SDUWB KEY 1 oggv og chvgt vjg vqic rctva 2 nffu nf bgufs uif uphb qbsuz 3 meet me after the toga party 4 Ldds ld zesdq sgd snfz ozqsx 5 kccr kc ydrcp rfc rmey nyprw 6 … 21 ummb um inbmz bpm bwoi xizbg 22 tlla tl hmaly aol avnh whyaf 23 skkz sk glzkx znk zumg vgxze 24 rjjy rj fkyjw ymj ytlf ufwyd 25 qiix qi ejxiv xli xske tevxc Rinaldi Munir/IF5054 Kriptografi
Contoh: KriptogramHSPPW menghasilkan dua kemungkinan kunci yang potensial, yaitu k = 4 menghasilkan pesan DOLLS dan k = 11 menghasilkan WHEEL. Jika kasusnya demikian, maka lakukan dekripsi terhadap potongan cipherteks lain tetapi cukup menggunakan k = 4 dan k = 11 agar dapat disimpulkan kunci yang benar. Rinaldi Munir/IF5054 Kriptografi
Jenis-jenis Cipher Substitusi • Cipher abjad-tunggal (monoalphabetic cipher) Satu karakter di plainteks diganti dengan satu karakter yang bersesuaian. Jumlah kemungkinan susunan huruf-huruf cipherteks yang dapat dibuat adalah sebanyak 26! = 403.291.461.126.605.635.584.000.000 Contoh: Caesar Cipher Rinaldi Munir/IF5054 Kriptografi
Di dalam sistem operasi Unix, rot13 adalah fungsi menggunakan cipher abjad-tunggal dengan pergeseran k = 13 Contoh: rot13(ROTATE) = rot13(17,14,19,0,19,4)= EBGNGR • Enkripsi arsip dua kali dengan rot13 menghasilkan arsip semula: P = rot13(rot13(P)) (Kenapa?) Rinaldi Munir/IF5054 Kriptografi
Cipher substitusi homofonik (Homophonic substitution cipher) Setiap karakter plainteks dipetakan ke dalam salah satu karakter cipherteks yang mungkin. Fungsi ciphering memetakan satu-ke-banyak (one-to-many). Misalnya huruf A dapat berkoresponden dengan 7, 9, atau 16, huruf B dapat berkoresponden dengan 5, 10, atau 23 dan seterusnya. Rinaldi Munir/IF5054 Kriptografi
Cipher abjad-majemuk (Polyalpabetic substitution cipher ) Merupakan cipher substitusi-ganda yang melibatkan penggunaan kunci berbeda. Cipher abjad-majemuk dibuat dari sejumlah cipher abjad-tunggal, masing-masing dengan kunci yang berbeda. Kebanyakan cipher abjad-majemuk adalah cipher substitusi periodik yang didasarkan pada periode m. Rinaldi Munir/IF5054 Kriptografi
Plainteks: P = p1p2 … pmpm+1 … p2m … Cipherteks: Ek(P) = f1(p1) f2(p2) … fm(pm) fm+1(pm+1) … f2m(p2m) … Untuk m = 1, cipher-nya ekivalen dengan cipher abjad-tunggal. Rinaldi Munir/IF5054 Kriptografi
Contoh cipher substitusi periodik adalah cipher Vigenere Kunci: K = k1k2 … km ki untuk 1 im menyatakan jumlah pergeseran pada huruf ke-i. Karakter cipherteks: ci(p) = (p + ki) mod 26 (*) Misalkan periode m = 20, maka 20 karakter pertama dienkripsi dengan persamaan (*), setiap karakter ke-i menggunakan kunci ki. Untuk 20 karakter berikutnya, kembali menggunakan pola enkripsi yang sama. Rinaldi Munir/IF5054 Kriptografi
Contoh: Plainteks:SHE SELLS SEA SHELLS BY THE SEASHORE + Kunci KEY KEYKE YKE YKEYKE YK EYK EYKEYKEY Cipherteks:CLC CIJVW QOE QRIJVW ZI XFO WCKWFYVC Rinaldi Munir/IF5054 Kriptografi
Cipher substitusi poligram (Polygram substitution cipher ) Contoh: Playfair cipher Blok karakter disubstitusi dengan blok cipherteks. Misalnya ABA diganti dengan RTQ, ABB diganti dengan SLL, dan lain-lain. Rinaldi Munir/IF5054 Kriptografi
Cipher Transposisi • Ciphereteks diperoleh dengan mengubah posisinya. Dengan kata lain, algoritma ini melakukan transpose terhadap rangkaian karakter di dalam teks. • Nama lain untuk metode ini adalah permutasi, karena transpose setiap karakter di dalam teks sama dengan mempermutasikan karakter-karakter tersebut. Rinaldi Munir/IF5054 Kriptografi
Contoh 4. Misalkan plainteks adalah DEPARTEMEN TEKNIK INFORMATIKA ITB Enkripsi: DEPART EMENTE KNIKIN FORMAT IKAITB Cipherteks: (baca secara vertikal) DEKFIEMNOKPEIRAANKMIRTIATTENTB Rinaldi Munir/IF5054 Kriptografi
Dekripsi: Bagi panjang cipherteks dengan kunci. (Pada contoh ini, 30 / 6 = 5) DEKFI EMNOK PEIRA ANKMI RTIAT TENTB Plainteks: (baca secara vertikal) DEPARTEMEN TEKNIK INFORMATIKA ITB Rinaldi Munir/IF5054 Kriptografi
Lebih jauh dengan Cipher Abjad-tunggal • Jumlah kunci = jumlah cara menyusun 26 huruf abjad tersebut, yaitu sebanyak 26! = 403.291.461.126.605.635.584.000.000 • Contoh susunan tabel substitusi (acak): pi: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ci : D I Q M T B Z S Y K V O F E R J A U W P X H L C N G Rinaldi Munir/IF5054 Kriptografi
Tip membuat kunci: 1. Pilih kunci dari sembarang kalimat: we hope you enjoy this book 2.Buang huruf yang berulang: wehopyunjtisbk 3. Sambung dengan huruf lain yang belum ada: W E H O P Y U N J T I S B K A C D F G L M Q R V X Z 4.Tabel substitusi: pi: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ci : W E H O P Y U N J T I S B K A C D F G L M Q R V X Z Rinaldi Munir/IF5054 Kriptografi
Mendekripsi cipherteks tanpa mengetahui kunci (cipher substitusi abjad-tunggal): • Metode yang digunakan: 1. Terkaan 2. Statistik • Informasi tambahan: 1. Mengetahui bahasa palinteks 2. Konteks plainteks Rinaldi Munir/IF5054 Kriptografi
Metode Terkaan Asumsi: bahasa plainteks adalah B Inggris Tujuan: mereduksi jumlah kunci Contoh 1. Cipherteks: G WR W RWL Plainteks: I AM A MA* I AM A MAN Jumlah kunci berkurang dari 26! menjadi 22! Rinaldi Munir/IF5054 Kriptografi
Contoh 2. Cipherteks: HKC Plainteks:(lebih sukar ditentukan, tetapi tidak mungkin Z diganti dengan H, Q dengan K, dan K dengan C., karena tidak ada kata “ZQC” dalam Bahasa Inggris) Rinaldi Munir/IF5054 Kriptografi
Contoh 3. Cipherteks: HATTPT Plainteks: salah satu dari T atau P merepresentasikan huruf vokal CHEESE MISSES CANNON Rinaldi Munir/IF5054 Kriptografi
Contoh 4. Cipherteks: HATTPT Plainteks:(diketahui informasi bahwa pesan tersebut adalah nama negara. Dengan cepat kriptanalis menyimpulkan bahwa polygram tersebut adalah GREECE.) Rinaldi Munir/IF5054 Kriptografi
Metode Statistik • Paling umum digunakan Rinaldi Munir/IF5054 Kriptografi
Terdapat sejumlah tabel frekuensi sejenis yang dipublikasikan oleh pengarang lain, namun secara umum persentase kemunculan tersebut konsisten pada sejumlah tabel. • Kemunculan huruf-huruf di dalam plainteks tercermin pada tabel 2 di atas. • Jika karakter “R” paling sering muncul di dalam cipherteks, maka kemungkinan besar itu adalah huruf “E” di dalam plainteks. Rinaldi Munir/IF5054 Kriptografi
Contoh cipherteks: DIX DR TZX KXCQDIQ RDK XIHPSZXKPIB TZPQ TXGT PQ TD QZDM TZX KXCJXK ZDM XCQPVN TZPX TNSX DR HPSZXK HCI LX LKDUXI. TZX MDKJ QTKFHTFKX DR TZX SVCPITXGT ZCQ LXXI SKXQXKWXJ TD OCUX TZX XGXKHPQX XCQPXK. PR MX ZCJ MKPTTXI TZX. HKNSTDBKCOPI BKDFSQ DR RPWX VXTTXKQ TZXI PT MDFVJ ZCWX LXXI ZCKJXK. TD HDIWPIHX NDFKQXVWXQ DR TZPQ SCPKQ SCPKQ DR KXCJXKQ HCI SKDWPJX XCHZ DTZXK MPTZ HKNSTDBKCOQ MPTZ TZPQ VXTTXK BKDFSIB Rinaldi Munir/IF5054 Kriptografi
Histogram kemunculan relatif: Rinaldi Munir/IF5054 Kriptografi
Karakter yang paling sering muncul di dalam cipherteks adalah H. • Dengan membandingkan Tabel 2 dengan histogram tersebut, kita dapat menyimpulkasn sementara bahwa H berkoresponden dengan E dan bahwa W berkoresponden dengan T. • Tetapi kita belum dapat memastikannya. Masih diperlukan: - cara trial and error - pengetahuan tentang bahasa - konteks plainteks - intuisi Rinaldi Munir/IF5054 Kriptografi