4. materi 4 kripto klasik i

22
1 Algoritma Kriptografi Klasik (bag 1) Yanuar Nurdiansyah, ST., M.Cs UNEJ Kriptografi

Upload: hofi-atmajaya

Post on 26-Dec-2015

58 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 4. Materi 4 Kripto Klasik I

1

Algoritma Kriptografi Klasik (bag 1)

Yanuar Nurdiansyah, ST., M.Cs

UNEJ

Kriptografi

Page 2: 4. Materi 4 Kripto Klasik I

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.

Page 3: 4. Materi 4 Kripto Klasik I

3

Algoritma kriptografi klasik:

1. Cipher Substitusi (Substitution Ciphers)

2.Cipher Transposisi (Transposition Ciphers)

Page 4: 4. Materi 4 Kripto Klasik I

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

Page 5: 4. Materi 4 Kripto Klasik I

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

Page 6: 4. Materi 4 Kripto Klasik I

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

Page 7: 4. Materi 4 Kripto Klasik I

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

Page 8: 4. Materi 4 Kripto Klasik I

8

Caesar wheel

Page 9: 4. Materi 4 Kripto Klasik I

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

Page 10: 4. Materi 4 Kripto Klasik I

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

Page 11: 4. Materi 4 Kripto Klasik I

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

Page 12: 4. Materi 4 Kripto Klasik I

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); }

Page 13: 4. Materi 4 Kripto Klasik I

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); }

Page 14: 4. Materi 4 Kripto Klasik I

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

Page 15: 4. Materi 4 Kripto Klasik I

KENAIKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA

15

Menjadi NHQDLNDQKDUJDEEPPHPEXDWUDNBDWNHFLOPHQGHULWD

VDBDNXOLDKGLSURGLVLVWLPLQIRUPDVLXQHMGHQJDQGREVEQBDQJJDQWEQJ ?

COBA DI BACA ……. ^_^

Page 16: 4. Materi 4 Kripto Klasik I

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

Page 17: 4. Materi 4 Kripto Klasik I

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

Page 18: 4. Materi 4 Kripto Klasik I

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

Page 19: 4. Materi 4 Kripto Klasik I

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.

Page 20: 4. Materi 4 Kripto Klasik I

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.

Page 21: 4. Materi 4 Kripto Klasik I

21

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

 

Page 22: 4. Materi 4 Kripto Klasik I

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