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

Kripto Klasik

Jul 08, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Kripto Klasik

1

Algoritma Kriptografi Klasik (bag 1)

Yanuar Nurdiansyah, ST., M.Cs

UNEJ 2011

Kriptografi

Page 2: Kripto Klasik

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: Kripto Klasik

3

Algoritma kriptografi klasik:

1. Cipher Substitusi (Substitution Ciphers)

2.Cipher Transposisi (Transposition Ciphers)

Page 4: Kripto Klasik

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: Kripto Klasik

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: Kripto Klasik

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: Kripto Klasik

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: Kripto Klasik

8

Caesar wheel

Page 9: Kripto Klasik

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 Z

0 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: Kripto Klasik

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: Kripto Klasik

11

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

Page 12: Kripto Klasik

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: Kripto Klasik

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: Kripto Klasik

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 Z

0 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: Kripto Klasik

KENAIKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA

15

Menjadi NHQDLNDQKDUJDEEPPHPEXDWUDNBDWNHFLOPHQGHULWD

VDBDNXOLDKGLSURGLVLVWLPLQIRUPDVLXQHMGHQJDQGREVEQBDQJJDQWEQJ ?

COBA DI BACA ……. ^_^

Page 16: Kripto Klasik

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: Kripto Klasik

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: Kripto Klasik

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: Kripto Klasik

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: Kripto Klasik

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: Kripto Klasik

21

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

Page 22: Kripto Klasik

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