2. algoritma kriptografi klasik
DESCRIPTION
cobaTRANSCRIPT
1/24/2016
1
Rinaldi Munir/IF5054 Kriptografi 1
Algoritma Kriptografi Klasik
Bahan kuliah ke-4
IF5054 Kriptografi
Rinaldi Munir/IF5054 Kriptografi 2
Pendahuluan
Algoritma kriptografi klasik berbasis
karakter
Termasuk ke dalam kriptorafi simetri
Tiga alasan mempelajari algoritma klasik:
1. Memahami konsep dasar kriptografi.
2. Dasar algoritma kriptografi modern.
3. Memahami kelemahan sistem cipher.
Rinaldi Munir/IF5054 Kriptografi 3
Algoritma kriptografi klasik:
1. Cipher Substitusi (Substitution Ciphers)
2.Cipher Transposisi (Transposition Ciphers)
Rinaldi Munir/IF5054 Kriptografi 4
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
Rinaldi Munir/IF5054 Kriptografi 5
Misalkan A = 0, B = 1, …, Z = 25, maka
secara matematis caesar cipher dirumsukan
sebagai berikut:
Enkripsi: ci = E(pi) = (pi + 3) mod 26
Dekripsi: pi = D(ci) = (ci – 3) mod 26
Rinaldi Munir/IF5054 Kriptografi 6
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
1/24/2016
2
Rinaldi Munir/IF5054 Kriptografi 7
Rinaldi Munir/IF5054 Kriptografi 8
Kelemahan:
Caesar cipher mudah dipecahkan dengan
exhaustive key search karena jumlah
kuncinya sangat sedikit (hanya ada 26
kunci).
Rinaldi Munir/IF5054 Kriptografi 9
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.
Rinaldi Munir/IF5054 Kriptografi 10
PHHW PH DIWHU WKH WRJD SDUWB
KEY
1 oggv og chvgt vjg vqic rctva
2 nffu nf bgufs uif uphb qbsuz
3 meet me after the toga party
4 Ldds ld zesdq sgd snfz ozqsx
5 kccr kc ydrcp rfc rmey nyprw
6 …
21 ummb um inbmz bpm bwoi xizbg
22 tlla tl hmaly aol avnh whyaf
23 skkz sk glzkx znk zumg vgxze
24 rjjy rj fkyjw ymj ytlf ufwyd
25 qiix qi ejxiv xli xske tevxc
Rinaldi Munir/IF5054 Kriptografi 11
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.
Rinaldi Munir/IF5054 Kriptografi 12
Jenis-jenis Cipher Substitusi
1. Cipher abjad-tunggal (monoalphabetic cipher)
Satu karakter di plainteks diganti dengan satu karakter yang bersesuaian.
Jumlah kemungkinan susunan huruf-hurufcipherteks yang dapat dibuat adalah sebanyak
26! = 403.291.461.126.605.635.584.000.000
Contoh: Caesar Cipher
1/24/2016
3
Rinaldi Munir/IF5054 Kriptografi 13
Di dalam sistem operasi Unix, rot13 adalah fungsi menggunakan cipher abjad-tunggal dengan pergeseran k = 13
Contoh: rot13(ROTATE) =
rot13(17,14,19,0,19,4)= EBGNGR
Enkripsi arsip dua kali dengan rot13
menghasilkan arsip semula:
P = rot13(rot13(P)) (Kenapa?)
Rinaldi Munir/IF5054 Kriptografi 14
2. Cipher substitusi homofonik (Homophonicsubstitution cipher)
Setiap karakter plainteks dipetakan ke dalamsalah satu karakter cipherteks yang mungkin.
Fungsi ciphering memetakan satu-ke-banyak(one-to-many).
Misalnya huruf A dapat berkoresponden dengan7, 9, atau 16, huruf B dapat berkorespondendengan 5, 10, atau 23 dan seterusnya.
Rinaldi Munir/IF5054 Kriptografi 15
3. Cipher abjad-majemuk (Polyalpabeticsubstitution cipher )
Merupakan cipher substitusi-ganda yangmelibatkan penggunaan kunci berbeda.
Cipher abjad-majemuk dibuat dari sejumlahcipher abjad-tunggal, masing-masing dengankunci yang berbeda.
Kebanyakan cipher abjad-majemuk adalahcipher substitusi periodik yang didasarkan padaperiode m.
Rinaldi Munir/IF5054 Kriptografi 16
Plainteks:
P = p1p2 … pmpm+1 … p2m …
Cipherteks:
Ek(P) = f1(p1) f2(p2) … fm(pm) fm+1(pm+1) …
f2m(p2m) …
Untuk m = 1, cipher-nya ekivalen dengan
cipher abjad-tunggal.
Rinaldi Munir/IF5054 Kriptografi 17
Contoh cipher substitusi periodik adalah cipher Vigenere
Kunci: K = k1k2 … km
ki untuk 1 i m menyatakan jumlah pergeseranpada huruf ke-i.
Karakter cipherteks: ci(p) = (p + ki) mod 26 (*)
Misalkan periode m = 20, maka 20 karakterpertama dienkripsi dengan persamaan (*), setiapkarakter ke-i menggunakan kunci ki.
Untuk 20 karakter berikutnya, kembalimenggunakan pola enkripsi yang sama.
Rinaldi Munir/IF5054 Kriptografi 18
Contoh:
Plainteks: SHE SELLS SEA SHELLS BY THE SEASHORE
+ Kunci KEY KEYKE YKE YKEYKE YK EYK EYKEYKEY
Cipherteks:CLC CIJVW QOE QRIJVW ZI XFO WCKWFYVC
1/24/2016
4
Rinaldi Munir/IF5054 Kriptografi 19
4. Cipher substitusi poligram (Polygram
substitution cipher )
Contoh: Playfair cipher
Blok karakter disubstitusi dengan blok cipherteks.
Misalnya ABA diganti dengan RTQ, ABB diganti
dengan SLL, dan lain-lain.
Rinaldi Munir/IF5054 Kriptografi 20
Cipher Transposisi
Ciphereteks diperoleh dengan mengubah
posisinya. 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.
Rinaldi Munir/IF5054 Kriptografi 21
Contoh 4. Misalkan plainteks adalah
DEPARTEMEN TEKNIK INFORMATIKA ITB
Enkripsi:
DEPART
EMENTE
KNIKIN
FORMAT
IKAITB
Cipherteks: (baca secara vertikal)
DEKFIEMNOKPEIRAANKMIRTIATTENTB
Rinaldi Munir/IF5054 Kriptografi 22
Dekripsi: Bagi panjang cipherteks dengan kunci.
(Pada contoh ini, 30 / 6 = 5)
DEKFI
EMNOK
PEIRA
ANKMI
RTIAT
TENTB
Plainteks: (baca secara vertikal)
DEPARTEMEN TEKNIK INFORMATIKA ITB
Rinaldi Munir/IF5054 Kriptografi 23
Contoh lain. Misalkan plainteks adalah
CRYPTOGRAPHY AND DATA SECURITY
Plainteks 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 Y
maka cipherteksnya adalah
CTAAAEIRPORPYNDTSCRTYGHDAUY
Rinaldi Munir/IF5054 Kriptografi 24
Lebih jauh dengan Cipher Abjad-
tunggal
Jumlah kunci = jumlah cara menyusun 26
huruf abjad tersebut, yaitu sebanyak
26! = 403.291.461.126.605.635.584.000.000
Contoh susunan tabel substitusi (acak):
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 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
1/24/2016
5
Rinaldi Munir/IF5054 Kriptografi 25
Tip membuat kunci:
1. Pilih kunci dari sembarang kalimat:
we hope you enjoy this book
2. Buang huruf yang berulang:
wehopyunjtisbk
3. Sambung dengan huruf lain yang belum ada: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
4. 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 Z
ci: 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
Rinaldi Munir/IF5054 Kriptografi 26
Mendekripsi cipherteks tanpa mengetahui
kunci (cipher substitusi abjad-tunggal):
Metode yang digunakan:
1. Terkaan
2. Statistik
Informasi tambahan:
1. Mengetahui bahasa palinteks
2. Konteks plainteks
Rinaldi Munir/IF5054 Kriptografi 27
Metode Terkaan
Asumsi: bahasa plainteks adalah B Inggris
Tujuan: mereduksi jumlah kunci
Contoh 1. Cipherteks: G WR W RWL
Plainteks: I AM A MA*
I AM A MAN
Jumlah kunci berkurang dari 26! menjadi 22!
Rinaldi Munir/IF5054 Kriptografi 28
Contoh 2. Cipherteks: HKC
Plainteks:(lebih sukar ditentukan, tetapi
tidak mungkin Z diganti dengan H, Q
dengan K, dan K dengan C., karena tidak
ada kata “ZQC” dalam Bahasa Inggris)
Rinaldi Munir/IF5054 Kriptografi 29
Contoh 3. Cipherteks: HATTPT
Plainteks: salah satu dari T atau P
merepresentasikan huruf vokal
CHEESE
MISSES
CANNON
Rinaldi Munir/IF5054 Kriptografi 30
Contoh 4. Cipherteks: HATTPT
Plainteks:(diketahui informasi bahwa pesan
tersebut adalah nama negara. Dengan cepat
kriptanalis menyimpulkan bahwa polygram
tersebut adalah GREECE.)
1/24/2016
6
Rinaldi Munir/IF5054 Kriptografi 31
Metode Statistik
Paling umum digunakan
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
Rinaldi Munir/IF5054 Kriptografi 32
Terdapat sejumlah tabel frekuensi sejenis yang
dipublikasikan oleh pengarang lain, namun secara
umum persentase kemunculan tersebut konsisten
pada sejumlah tabel.
Kemunculan huruf-huruf di dalam plainteks
tercermin pada tabel 2 di atas .
Jika karakter “R” paling sering muncul di dalam
cipherteks, maka kemungkinan besar itu adalah
huruf “E” di dalam plainteks.
Rinaldi Munir/IF5054 Kriptografi 33
Contoh cipherteks:DIX DR TZX KXCQDIQ RDK XIHPSZXKPIB TZPQ TXGT
PQ TD QZDM TZX KXCJXK ZDM XCQPVN TZPX TNSX DR
HPSZXK HCI LX LKDUXI. TZX MDKJ QTKFHTFKX DR
TZX 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 HDIWPIHX
NDFKQXVWXQ DR TZPQ SCPKQ SCPKQ DR KXCJXKQ
HCI SKDWPJX XCHZ DTZXK MPTZ HKNSTDBKCOQ
MPTZ TZPQ VXTTXK BKDFSIB
Rinaldi Munir/IF5054 Kriptografi 34
Histogram kemunculan relatif:
Rinaldi Munir/IF5054 Kriptografi 35
Karakter yang paling sering muncul di dalam cipherteks adalah H.
Dengan membandingkan Tabel 2 dengan histogram tersebut, kita dapat menyimpulkasn sementara bahwa H berkoresponden dengan Edan bahwa W berkoresponden dengan T.
Tetapi kita belum dapat memastikannya. Masihdiperlukan:
- cara trial and error
- pengetahuan tentang bahasa
- konteks plainteks
- intuisi