Upload
hofi-atmajaya
View
51
Download
1
Embed Size (px)
Citation preview
1
Algoritma Kriptografi Klasik (bag 1)
Yanuar Nurdiansyah, ST., M.Cs
UNEJ
Kriptografi
2
PendahuluanKriptografi Klasik memiliki beberapa ciri :
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.
3
Algoritma kriptografi klasik:
1. Cipher Substitusi (Substitution Ciphers)
2.Cipher Transposisi (Transposition Ciphers)
Subtitusi merupakan penggantian setiap karakter teks asli dengan karakter lain
4
Cipher Substitusi
A B C D E N F L T PF G H I J B D K R OK L M N O V S J E IP Q R S T C A H W UU V W X Y X M G Q Y
Ter dapat 4 istilah subtitusi kode ;
1.Monoalphabet : setiap karakter teks kode menggantikan salah satu karakter teks asli.
2.Polyalphabet : setiap karakter teks kode dapat mengantikan lebih dari 1 mcm teks asli
3.Monograf : satu enkripsi dilakukan terhadap satu karakter teks asli
4.Poygraph : satu enkripsi dilakukan terhadap lebih dari satu karakter teks asli
Subtitusi kode pertama dalam dunia penyandian Mengganti posisi huruf awal dari alphabet atau
disebut jg dg Algoritma ROT3
5
Kode Kaisar
Caesar Cipher (ROT3)Plain Text Encoded Text
ABC DEFHello Khoor
Attack Dwwdfn
6
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
7
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
8
Caesar wheel
Secara detail perhatikan cnth:
9
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 Z0 1 2 3 4 5 6 7 8 9 101112131415161718 19 202122232425
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
3 4 5 6 7 8 9 101112131415161718192021 22 232425 0 1 2
Menjadi :
•Jika pergeseran dilakukan Sebanyak 3 kali maka key untuk dekripi nya adlh 3.•Pergesaran key tergantung keinginan pengirim pesan•Key yang dipakai bisa a=7, b=9 dst….
10
Misalkan A = 0, B = 1, …, Z = 25, maka secara matematis caesar cipher dirumuskan sebagai berikut:
Enkripsi: ci = E(pi) = (pi + 3) mod 26
Dekripsi: pi = D(ci) = (ci – 3) mod 26
11
Jika pergeseran huruf sejauh k, maka:
Enkripsi: ci = E(pi) = (pi + k) mod 26
Dekripsi: pi = D(ci) = (ci – k) mod 26k = kunci rahasia
Untuk 256 karakter ASCII, maka:
Enkripsi: ci = E(pi) = (pi + k) mod 256
Dekripsi: pi = D(ci) = (ci – k) mod 256k = kunci rahasia
12
/* 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"); printf("k : "); scanf("%d", &k); while ((p = getc(Fin)) != EOF) { c = (p + k) % 256; putc(c, Fout); } fclose(Fin); fclose(Fout); }
13
/* 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); }
EX. GEMPA YOGYA MENELAN KORBAN TIDAK SEDIKIT DAN SAMPAI SEKARANG MASIH MENYISAKAN TRAUMA BAGI ORANG-ORANG KOTA GUDEG
14
Menjadi: JHPSDBRJBDPHQHODQNRUEDQWLGDNVHGLNLWGDQVDPDLVHNDUDQJPHNDUDQJPHQBLVDNDQWUDPDEDJLRUDQJRUDQJNRWDJXGHJ
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 Z0 1 2 3 4 5 6 7 8 9 101112131415161718 19 202122232425
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
3 4 5 6 7 8 9 101112131415161718192021 22 232425 0 1 2
KENAIKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
15
Menjadi NHQDLNDQKDUJDEEPPHPEXDWUDNBDWNHFLOPHQGHULWD
VDBDNXOLDKGLSURGLVLVWLPLQIRUPDVLXQHMGHQJDQGREVEQBDQJJDQWEQJ ?
COBA DI BACA ……. ^_^
16
Kelemahan:
Caesar cipher mudah dipecahkan dengan
Brute force attack, suatu bentuk serangan yang dilakukan dengan mencoba-coba berbagai kemungkinan untuk menentukan kunci
exhaustive key search karena jumlah kuncinya sangat sedikit (hanya ada 26 kunci).
Ada cara lain yang dpt digunakan kriptanalis untuk memecahkan nya yaitu dgn melihat frekuensi kemunculan huruf seperti brkt
17
Tabel 2. Frekuensi kemunculan (relatif) huruf-huruf dalam teks Bahasa Inggris (sampel mencapai 300.000 karakter di dalam
sejumlah novel dan suratkabar
Huruf % Huruf % A B C D E F G H I J K L M
8,2 1,5 2,8 4,2
12,7 2,2 2,0 6,1 7,0 0,1 0,8 4,0 2,4
N O P Q R S T U V W X Y Z
6,7 7,5 1,9 0,1 6,0 6,3 9,0 2,8 1,0 2,4 2,0 0,1 0,1
Pada teks bhs indonesia yang paling Sering muncul adalah 10 huruf yaitu
18
Letter Frequency kemunculan (%)A 17.50N 10.30I 8.70E 7.50K 5.65T 5.10R 4.60D 4.50S 4.50M 4.50
19
Contoh: kriptogram XMZVH
Tabel 1. Contoh exhaustive key search terhadap cipherteks XMZVH
Kunci (k) ciphering
‘Pesan’ hasil dekripsi
Kunci (k) ciphering
‘Pesan’ hasil dekripsi
Kunci (k) ciphering
‘Pesan’ hasil dekripsi
0 25 24 23 22 21 20 19 18
XMZVH YNAWI ZOBXJ APCYK BQDZL CREAM DSFBN ETGCO FUHDP
17 16 15 14 13 12 11 10
9
GVIEQ HWJFR IXKGS JYLHT KZMIU LANJV MBOKW NCPLX ODQMY
8 7 6 5 4 3 2 1
PERNZ QFSOA RGTPB SHUQC TIVRD UJWSE VKXTF WLYUG
Plainteks yang potensial adalah CREAM dengan k = 21. Kunci ini digunakan untuk mendekripsikan cipherteks lainnya.
20
Contoh: 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.
21
Di dalam sistem operasi Unix, ROT13 adalah fungsi menggunakan Caesar cipher dengan pergeseran k = 13
22
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