You are on page 1of 16

Algoritma Kriptografi Klasik

(bag 1)

1

2 . Memahami konsep dasar kriptografi.Pendahuluan     Algoritma kriptografi klasik berbasis karakter Menggunakan pena dan kertas saja. 3. belum ada komputer Termasuk ke dalam kriptografi kunci-simetri Tiga alasan mempelajari algoritma klasik: 1. Memahami kelemahan sistem cipher. Dasar algoritma kriptografi modern. 2.

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

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 4 .

cipherteks dikelompokkan ke dalam kelompok n-huruf. Dalam praktek. misalnya kelompok 4-huruf: DZDV LDVW HULA GDQW HPDQ QBAR EHOL A  Atau membuang semua spasi: DZDVLDVWHULAGDQWHPDQQBAREHOLA  Tujuannya agar kriptanalisis menjadi lebih sulit 5 .

Caesar wheel 6 .

maka secara matematis caesar cipher dirumuskan sebagai berikut: Enkripsi: ci = E(pi) = (pi + 3) mod 26 Dekripsi: pi = D(ci) = (ci – 3) mod 26 7 . Z = 25. Misalkan A = 0. …. B = 1.

 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 8 .

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

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

11 .Kelemahan: Caesar cipher mudah dipecahkan dengan exhaustive key search karena jumlah kuncinya sangat sedikit (hanya ada 26 kunci).

Kunci ini digunakan untuk mendekripsikan cipherteks lainnya. Contoh exhaustive key search terhadap cipherteks XMZVH Kunci (k) ciphering 0 25 24 23 22 21 20 19 18 ‘Pesan’ hasil dekripsi XMZVH YNAWI ZOBXJ APCYK BQDZL CREAM DSFBN ETGCO FUHDP Kunci (k) ciphering 17 16 15 14 13 12 11 10 9 ‘Pesan’ hasil dekripsi GVIEQ HWJFR IXKGS JYLHT KZMIU LANJV MBOKW NCPLX ODQMY Kunci (k) ciphering 8 7 6 5 4 3 2 1 ‘Pesan’ hasil dekripsi PERNZ QFSOA RGTPB SHUQC TIVRD UJWSE VKXTF WLYUG Plainteks yang potensial adalah CREAM dengan k = 21.Contoh: kriptogram XMZVH Tabel 1. 12 .

PHHW PH DIWHU WKH WRJD SDUWB KEY 1 oggv 2 nffu 3 meet 4 Ldds 5 kccr 6 … 21 ummb 22 tlla 23 skkz 24 rjjy 25 qiix og nf me ld kc chvgt bgufs after zesdq ydrcp vjg uif the sgd rfc vqic uphb toga snfz rmey rctva qbsuz party ozqsx nyprw um tl sk rj qi inbmz hmaly glzkx fkyjw ejxiv bpm aol znk ymj xli bwoi avnh zumg ytlf xske xizbg whyaf vgxze ufwyd tevxc 13 .

Jika kasusnya demikian.Contoh: Kriptogram HSPPW menghasilkan dua kemungkinan kunci yang potensial. maka lakukan dekripsi terhadap potongan cipherteks lain tetapi cukup menggunakan k = 4 dan k = 11 agar dapat disimpulkan kunci yang benar. yaitu k = 4 menghasilkan pesan DOLLS dan k = 11 menghasilkan WHEEL. 14 .

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

jokes) (tahun 1980)  ROT13 biasanya digunakan di dalam forum online untuk menyandikan jawaban teka-teki. 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 16 . kuis. canda.com/group/net.  Contoh: ROT13(ROTATE) = EBGNGR Nama “ROT13” berasal dari net.jokes (hhtp://groups.google.