ALGORITMA KRIPTOGRAFI KLASIK

17

Click here to load reader

Transcript of ALGORITMA KRIPTOGRAFI KLASIK

Page 1: ALGORITMA KRIPTOGRAFI KLASIK

ALGORITMA KRIPTOGRAFI KLASIK (BAG 1)

Pendahuluan Algoritma kriptografi klasik berbasis karakter Menggunakan pena dan kertas saja, belum ada komputer Termasuk ke dalam kriptografi kunci-simetri Tiga alasan mempelajari algoritma klasik:

1. Memahami konsep dasar kriptografi.2. Dasar algoritma kriptografi modern. 3. Memahami kelemahan sistem cipher.

Algoritma kriptografi klasik berbasis karakter Menggunakan pena dan kertas saja, belum ada komputer Termasuk ke dalam kriptografi kunci-simetri Tiga alasan mempelajari algoritma klasik:

1. Memahami konsep dasar kriptografi.2. Dasar algoritma kriptografi modern. 3. Memahami kelemahan sistem cipher.

Algoritma kriptografi klasik:1. Cipher Substitusi (Substitution Ciphers)2.Cipher Transposisi (Transposition Ciphers)

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 Zci : 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 OBELIXCipherteks: DZDVL DVWHULA GDQ WHPDQQBA REHOLA

Dalam praktek, cipherteks dikelompokkan ke dalam kelompok n-huruf, misalnya kelompok 4-huruf:

DZDV LDVW HULA GDQW HPDQ QBAR EHOL A

Atau membuang semua spasi:DZDVLDVWHULAGDQWHPDQQBAREHOLA

Tujuannya agar kriptanalisis menjadi lebih sulit

Page 2: ALGORITMA KRIPTOGRAFI KLASIK

Caesar wheel

Misalkan A = 0, B = 1, …, Z = 25, maka secara matematis caesar cipher dirumuskan sebagai berikut:

Enkripsi: ci = E(pi) = (pi + 3) mod 26Dekripsi: pi = D(ci) = (ci – 3) mod 26

Jika pergeseran huruf sejauh k, maka:

Enkripsi: ci = E(pi) = (pi + k) mod 26Dekripsi: pi = D(ci) = (ci – k) mod 26

k = kunci rahasia

Untuk 256 karakter ASCII, maka:

Enkripsi: ci = E(pi) = (pi + k) mod 256Dekripsi: pi = D(ci) = (ci – k) mod 256

k = kunci rahasia

/* Program enkripsi file dengan Caesar cipher */#include <stdio.h> main(int argc, char *argv[]){ FILE *Fin, *Fout; char p, c; int k;

Fin = fopen(argv[1], "rb"); if (Fin == NULL) printf("Kesalahan dalam membuka %s sebagai berkas masukan/n", argv[1]); Fout = fopen(argv[2], "wb");  printf("\nEnkripsi %s menjadi %s ...\n", argv[1], argv[2]); printf("\n");

Page 3: ALGORITMA KRIPTOGRAFI KLASIK

printf("k : "); scanf("%d", &k);  while ((p = getc(Fin)) != EOF) { c = (p + k) % 256; putc(c, Fout); } fclose(Fin); fclose(Fout); } /* Program dekripsi file dengan Caesar cipher */ #include <stdio.h> main(int argc, char *argv[]){ FILE *Fin, *Fout; char p, c; int n, i, k;   Fin = fopen(argv[1], "rb"); if (Fin == NULL) printf("Kesalahan dalam membuka %s sebagai berkas masukan/n", argv[1]); Fout = fopen(argv[2], "wb");  printf("\nDekripsi %s menjadi %s ...\n", argv[1], argv[2]); printf("\n"); printf("k : "); scanf("%d", &k);  while ((c = getc(Fin)) != EOF) { p = (c - k) % 256; putc(p, Fout); } fclose(Fin); fclose(Fout); }

Kelemahan: Caesar cipher mudah dipecahkan dengan exhaustive key search karena jumlah

kuncinya sangat sedikit (hanya ada 26 kunci).

Page 4: ALGORITMA KRIPTOGRAFI KLASIK

Contoh: kriptogram XMZVH

Plainteks yang potensial adalah CREAM dengan k = 21. Kunci ini digunakan untuk mendekripsikan cipherteks lainnya.

PHHW PH DIWHU WKH WRJD SDUWBKEY1 oggv og chvgt vjg vqic rctva2 nffu nf bgufs uif uphb qbsuz3 meet me after the toga party4 Ldds ld zesdq sgd snfz ozqsx5 kccr kc ydrcp rfc rmey nyprw6 …21 ummb um inbmz bpm bwoi xizbg22 tlla tl hmaly aol avnh whyaf23 skkz sk glzkx znk zumg vgxze24 rjjy rj fkyjw ymj ytlf ufwyd25 qiix qi ejxiv xli xske tevxcContoh: Kriptogram HSPPW 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.

Di dalam sistem operasi Unix, ROT13 adalah fungsi menggunakan Caesar cipher dengan pergeseran k = 13

 

Page 5: ALGORITMA KRIPTOGRAFI KLASIK

Contoh: ROT13(ROTATE) = EBGNGR Nama “ROT13” berasal dari net.jokes

(hhtp://groups.google.com/group/net.jokes) (tahun 1980)

ROT13 biasanya digunakan di dalam forum online untuk menyandikan jawaban teka-teki, kuis, canda, dsb

Enkripsi arsip dua kali dengan ROT13 menghasilkan pesan semula:  P = ROT13(ROT13(P))

sebab ROT13(ROT13(x)) = ROT26(x) = x

Jadi dekripsi cukup dilakukan dengan mengenkripsi cipherteks kembali dengan ROT13

Chiper substitusi homofonik (Homophonic substitution chiper) Seperti chiper abjad-tunggal, kecuali bahwa setiap karakter di dalam

plainteks dapat dipetakan ke dalam salah satu dari karakter chiperteks yang mungkin. Misalnya huruf A dapat berkoresponden dengan 7, 9, atau 16, huruf B dapat berkoresponden dengan 5, 10, atau 23 dan seterusnya.

Fungsi chipering-nya memetakan satu-ke-banyak (one-to-many). Chiper substitusi homofonik digunakan pertama kali pada tahun 1401 oleh

wanita bangsawan Mantua. Chiper substitusi homofonik lebih sulit dipecahkan daripada chiper abjad-

tunggal. Namun, dengan known-plaintext attack, chiper ini dapat dipecahkan, sedangkan dengan chipertext-only attack lebih sulit.

Chiper abjad-majemuk (Polyalpabetic substitution chiper )

Page 6: ALGORITMA KRIPTOGRAFI KLASIK

Merupakan chiper substitusi-ganda (multiple-substitution chiper) yang melibatkan penggunaan kunci berbeda.

Chiper abjad-majemuk dibuat dari sejumlah chiper abjad-tunggal, masing-masing dengan kunci yang berbeda.

Kebanyakan chiper abjad-majemuk adalah chiper substitusi periodik yang didasarkan pada periode m.

Misalkan plainteks P adalahP = p1p2 … pmpm+1 … p2m …

maka chiperteks hasil enkripsi adalah Ek(P) = f1(p1) f2(p2) … fm(pm) fm+1(pm+1) … f2m(p2m) …

yang dalam hal ini pi adalah huruf-huruf di dalam plainteks. Untuk m = 1, chiper-nya ekivalen dengan chiper abjad-tunggal.

Contoh chiper substitusi periodik adalah chiper Vigenere yang ditemukan oleh kriptologi Perancis, Blaise de Vigenere pada abad 16. Misalkan K adalah deretan kunci

K = k1 k2 … km yang dalam hal ini ki untuk 1 £ i £ m menyatakan jumlah pergeseran pada huruf

ke-i. Maka, karakter chiperteks yi(p) adalahyi(p) = (p + ki) mod n

Misalkan periode m = 20, maka 20 karakter pertama dienkripsi dengan persamaan (5), dimana setiap karakter ke-i menggunakan kunci ki. Untuk 20 karakter berikutnya, kembali menggunakan pola enkripsi yang sama.

Chiper substitusi poligram (Polygram substitution chiper ) Blok karakter disubstitusi dengan blok chiperteks. Misalnya ABA

diganti dengan RTQ, ABB diganti dengan SLL, dan lain-lain. Playfair chiper, ditemukan pada tahun 1854, termasuk ke dalam

chiper substitusi poligram dan digunakan oleh negara Inggris selama Perang Dunia I.

Chiper Transposisi Pada chiper transposisi, plainteks tetap sama, tetapi urutannya diubah. 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.

Contoh 4. Misalkan plainteks adalah 

DEPARTEMEN TEKNIK INFORMATIKA ITB Untuk meng-enkripsi pesan, plainteks ditulis secara horizontal dengan lebar kolom tetap, misal selebar 6 karakter (kunci k = 6):

DEPART

Page 7: ALGORITMA KRIPTOGRAFI KLASIK

EMENTEKNIKINFORMATIKAITB

maka chiperteksnya dibaca secara vertikal menjadi 

DEKFIEMNOKPEIRAANKMIRTIATTENTB

Untuk mendekripsi pesan, kita membagi panjang chiperteks dengan kunci. Pada contoh ini, kita membagi 30 dengan 6 untuk mendapatkan 5. Algoritma dekripsi identik dengan algoritma enkripsi. Jadi, untuk contoh ini, kita menulis chiperteks dalam baris-baris selebar 5 karakter menjadi: DEKFIEMNOKPEIRAANKMIRTIATTENTBDengan membaca setiap kolom kita memperoleh pesan semula: DEPARTEMEN TEKNIK INFORMATIKA ITB 

Contoh 5. Misalkan plainteks adalah  ITB GANESHA SEPULUH

Plainteks diblok atas delapan karakter. Kemudian, pada tiap blok, karakter pertama dan karakter terakhir dipertukarkan, demikian juga karakter pertengahan:

maka chiperteksnya adalahETBG ANIUHAS EPS UH L

 Dekripsi dilakukan dengan cara yang sama, yaitu chiperteks diblok atas delapan

karakter. Kemudian, pada tiap blok, karakter pertama dan karakter terakhir dipertukarkan, demikian juga karakter pertengahan.

Page 8: ALGORITMA KRIPTOGRAFI KLASIK

Contoh 6. Misalkan plainteks adalah CRYPTOGRAPHY AND DATA SECURITYPlainteks disusun menjadi 3 baris (k = 3) seperti di bawah ini: C T A A A E I R P O R P Y N D T S C R T Y G H D A U Ymaka chiperteksnya adalah

CTAAAEIRPORPYNDTSCRTYGHDAUYKriptografi dengan alat scytale yang digunakan oleh tentara Sparta pada zaman Yunani termasuk ke dalam chiper transposisi

Lebih Jauh Dengan Chiper Abjad-tunggal Seperti sudah disebutkan sebelum ini, metode chiper abjad-tunggal

mengganti setiap huruf di dalam abjad dengan sebuah huruf lain dalam abjad yang sama.

Jumlah kunci di dalam chiper abjad-tunggal sama dengan jumlah cara menyusun 26 huruf abjad tersebut, yaitu sebanyak

26! = 403.291.461.126.605.635.584.000.000 Ini berarti terdapat 26! buah kunci untuk menyusun huruf-huruf alfabet ke

dalam tabel substitusi. Contohnya, susunan guruf-huruf untuk chiperteks diperoleh dengan

menyusun huruf-huruf abjad secara acak seperti tabel substitusi berikut: 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 Zci : 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

Satu cara untuk membangkitkan kunci adalah dengan sebuah kalimat yang mudah diingat.  Misal kuncinya adalah we hope you enjoy this bookDari kunci tersebut, buang perulangan huruf sehingga menjadi wehopyunjtisbklalu sambung dengan huruf-huruf lain yang tidak terdapat di dalam kalimat tersebut sehingga menjadiW E H O P Y U N J T I S B K A C D F G L M Q R V X ZDengan demikian, tabel substitusi yang diperoleh adalahTabel 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 Zci : 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 

Page 9: ALGORITMA KRIPTOGRAFI KLASIK

Contoh kasus 1: Kriptanalis mempunyai potongan chiperteksG WR W RWL

Karena hanya ada dua kata yang panjangnya satu huruf dalam Bahasa Inggris (yaitu I dan A), maka G mungkin menyatakan huruf A dan W menyatakan huruf I, atau sebaliknya.

Kemungkinan G adalah huruf A dapat dieliminasi, maka diapstikan G = I, sehingga dengan cepat kriptanalis menyimpulkan bahwa potongan chiperteks tersebut adalah

I AM A MA*Dengan pengetahuan Bahasa Inggris, karakter terakhir (*) hampir dipastikan

adalah huruf N, sehingga kalimatnya menjadiI AM A MANHasil ini mengurangi jumlah kunci dari 26! menjadi 22!

Contoh kasus 2: Kriptanalis mempunyai potongan chiperteksHKC

Tidak banyak informasi yang dapat disimpulkan dari cryptogram di atas. Namun kriptanalis dapat mengurangi beberapa kemungkinan kunci, karena –sebagai contoh– tidak mungkin Z diganti dengan H, Q dengan K, dan K dengan C.

Namun, jumlah kemungkinan kunci yang tersisa tetap masih besar. Jika pesan yang dikirim memang hanya tiga huruf, maka exhaustive key search akan menghasilkan kata dengan tiga huruf berbeda yang potensial sebagai plainteks.

Contoh kasus 3: Kriptanalis mempunyai potongan chiperteks

HATTPTDalam hal ini, kriptanalis dapat membatasi jumlah kemungkinan huruf plainteks

yang dipetakan menjadi T.Kriptanalis mungkin mendeduksi bahwa salah satu dari T atau P

merepresentasikan huruf vokal. Kemungkinan plainteksnya adalah CHEESE, MISSES, dan CANNON.

Contoh kasus 4: Kriptanalis mempunyai potongan chiperteks

HATTPTdan diketahui informasi bahwa pesan tersebut adalah nama negara. Dengan cepat

kriptanalis menyimpulkan bahwa polygram tesrebut adalah GREECE.Dalam hal ini, kriptanalis dapat membatasi jumlah kemungkinan huruf plainteks

yang dipetakan menjadi T.Kriptanalis mungkin mendeduksi bahwa salah satu dari T atau P

merepresentasikan huruf vokal. Kemungkinan plainteksnya adalah CHEESE, MISSES, dan CANNON.

Metode Statistik dalam Kriptanalisis Metode yang paling umum digunakan dalam memecahkan chiperteks

adalah menggunakan statistik.

Page 10: ALGORITMA KRIPTOGRAFI KLASIK

Dalam hal ini, kriptanalis menggunakan tabel frekuensi kemunculan huruf-huruf dalam teks bahasa Inggris. Tabel 7 memperlihatkan frekuensi kemunculan huruf-huruf abjad yang diambil dari sampel yang mencapai 300.000 karakter di dalam sejumlah novel dan suratkabar.

Tabel 7. Frekunsi kemunculan (relatif) huruf-huruf dalam teks Bahasa InggrisHuruf % Huruf %ABCDEFGHIJKLM

8,21,52,84,212,72,22,06,17,00,10,84,02,4

NOPQRSTUVWXYZ

6,77,51,90,16,06,39,02,81,02,42,00,10,1

Tabel 7 di atas pada mulanya dipublikasikan di dalam Chiper-Systems: The Protection of Communications dan dikompilasi oleh H. J. Beker dan F.C. Piper

Terdapat sejumlah tabel frekuensi sejenis yang dipublikasikan oleh pengarang lain, namun secara umum persentase kemunculan tersebut konsisten pada sejumlah tabel.

Bila chiper abjad-tunggal digunakan untuk meng-engkripsi pesan, maka kemunculan huruf-huruf di dalam plainteks tercermin pada tabel 2 di atas. Misalnya bila di dalam chiper abjad-tunggal huruf R menggantikan huruf E, maka frekuensi R di dalam chiperteks sama dengan frekuensi E di dalam plainteksnya.

Contoh 7. Misalnya terdapat chiperteks yang panjang sebagai berikut: DIX DR TZX KXCQDIQ RDK XIHPSZXKPIB TZPQ TXGTPQ TD QZDM TZX KXCJXK ZDM XCQPVN TZPX TNSX DRHPSZXK HCI LX LKDUXI. TZX MDKJ QTKFHTFKX DRTZX 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 HDIWPIHXNDFKQXVWXQ DR TZPQ SCPKQ SCPKQ DR KXCJXKQHCI SKDWPJX XCHZ DTZXK MPTZ HKNSTDBKCOQMPTZ TZPQ VXTTXK BKDFSIB

Histogram yang memperlihatkan frekuensi kemunculan relatif huruf-huruf di dalam chiperteks diperlihatkan di sebelah ini:

Page 11: ALGORITMA KRIPTOGRAFI KLASIK

Dengan membandingkan Tabel 7 dengan histogram tersebut, kriptanalis beralasan menerka bahwa H berkoresponden dengan E dan bahwa W berkoresponden dengan T. 

Viginere CipherTermasuk ke dalam cipher abjad-majemuk (polyalpabetic substitution cipher).Ditemukan oleh diplomat (sekaligus seorang kriptologis) Perancis, Blaise de

Vigènere pada abad 16. Sudah berhasil dipecahkan pada Abad 19.Vigènere Cipher menggunakan Bujursangkar Vigènere untuk melakukan enkripsi. Setiap baris di dalam bujursangkar menyatakan huruf-huruf cipherteks yang

diperoleh dengan Caesar Cipher.

Page 12: ALGORITMA KRIPTOGRAFI KLASIK

jika panjang kunci lebih pendek daripada panjang plainteks, maka kunci diulang secara periodik. Bila panjang kunci adalah m, maka periodenya dikatakan m.

Contoh: kunci = sonyPlainteks: THIS PLAINTEXTKunci: sony sonysonys

Hasil enkripsi seluruhnya adalah sebagai berikut: Plainteks : THIS PLAINTEXTKunci : sony sonysonysCipherteks : LVVQ HZNGFHRVL

Page 13: ALGORITMA KRIPTOGRAFI KLASIK

Huruf yang sama tidak selalu dienkripsi menjadi huruf cipheteks yang sama pula. Contoh: huruf plainteks T dapat dienkripsi menjadi L atau H, dan huruf cipherteks Vdapat merepresentasikan huruf plainteks H, I, dan X Hal di atas merupakan karakteristik dari cipher abjad-majemuk: setiap huruf cipherteks dapat memiliki kemungkinan banyak huruf plainteks. Pada cipher substitusi sederhana, setiap huruf cipherteks selalu menggantikan huruf plainteks tertentu.Vigènere Cipher dapat mencegah frekuensi huruf-huruf di dalam cipherteks yang mempunyai pola tertentu yang sama seperti pada cipher abjad-tunggal. Jika periode kunci diketahui dan tidak terlalu panjang, maka kunci dapat ditentukan dengan menulis program komputer untuk melakukan exhaustive key search.