Anda di halaman 1dari 35

Algoritma Kriptografi Klasik

Bahan Kuliah Kriptografi ke-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

Algoritma kriptografi klasik:


1. Cipher Substitusi (Substitution Ciphers)
2.Cipher Transposisi (Transposition Ciphers)

Rinaldi Munir/IF5054 Kriptografi

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

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

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
Rinaldi Munir/IF5054 Kriptografi

Rinaldi Munir/IF5054 Kriptografi

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

Rinaldi Munir/IF5054 Kriptografi

Contoh: kriptogram XMZVH


Tabel 1. 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.


Kunci ini digunakan untuk mendekripsikan cipherteks lainnya.
Rinaldi Munir/IF5054 Kriptografi

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

Rinaldi Munir/IF5054 Kriptografi

10

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

11

Jenis-jenis Cipher Substitusi


1.

Cipher abjad-tunggal (monoalphabetic cipher)


Satu karakter di plainteks diganti dengan satu
karakter yang bersesuaian.
Jumlah kemungkinan susunan huruf-huruf
cipherteks yang dapat dibuat adalah sebanyak
26! = 403.291.461.126.605.635.584.000.000
Contoh: Caesar Cipher
Rinaldi Munir/IF5054 Kriptografi

12

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


menghasilkan arsip semula:
P = rot13(rot13(P))
Rinaldi Munir/IF5054 Kriptografi

dengan

rot13

(Kenapa?)
13

2.

Cipher substitusi homofonik (Homophonic


substitution cipher)
Setiap karakter plainteks dipetakan ke dalam
salah satu karakter cipherteks yang mungkin.
Fungsi ciphering memetakan satu-ke-banyak
(one-to-many).
Misalnya huruf A dapat berkoresponden dengan
7, 9, atau 16, huruf B dapat berkoresponden
dengan 5, 10, atau 23 dan seterusnya.
Rinaldi Munir/IF5054 Kriptografi

14

3.

Cipher
abjad-majemuk
substitution cipher )

(Polyalpabetic

Merupakan
cipher
substitusi-ganda
melibatkan penggunaan kunci berbeda.

yang

Cipher abjad-majemuk dibuat dari sejumlah cipher


abjad-tunggal, masing-masing dengan kunci yang
berbeda.
Kebanyakan cipher abjad-majemuk adalah cipher
substitusi periodik yang didasarkan pada periode m.
Rinaldi Munir/IF5054 Kriptografi

15

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

16

Contoh cipher substitusi periodik adalah cipher


Vigenere
Kunci: K = k1k2 km
ki untuk 1 i m menyatakan jumlah pergeseran
pada huruf ke-i.
Karakter cipherteks: ci(p) = (p + ki) mod 26 (*)
Misalkan periode m = 20, maka 20 karakter pertama
dienkripsi dengan persamaan (*), setiap karakter ke-i
menggunakan kunci ki.
Untuk 20 karakter berikutnya, kembali menggunakan
pola enkripsi yang sama.
Rinaldi Munir/IF5054 Kriptografi

17

Contoh:
Plainteks:
+ Kunci

SHE SELLS SEA SHELLS BY THE SEASHORE


KEY KEYKE YKE YKEYKE YK EYK EYKEYKEY

Cipherteks:CLC

CIJVW QOE QRIJVW ZI XFO WCKWFYVC

Rinaldi Munir/IF5054 Kriptografi

18

4.

Cipher
substitusi
poligram
substitution cipher )
Contoh: Playfair cipher

(Polygram

Blok karakter disubstitusi dengan blok cipherteks.


Misalnya ABA diganti dengan RTQ, ABB diganti
dengan SLL, dan lain-lain.
Rinaldi Munir/IF5054 Kriptografi

19

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

20

Contoh 4. Misalkan plainteks adalah


DEPARTEMEN TEKNIK INFORMATIKA IBI
Enkripsi:
DEPART
EMENTE
KNIKIN
FORMAT
IKAIBI
Cipherteks: (baca secara vertikal)
DEKFIEMNOKPEIRAANKMIRTIABTENTI
Rinaldi Munir/IF5054 Kriptografi

21

Dekripsi: Bagi panjang cipherteks dengan kunci.


(Pada contoh ini, 30 / 6 = 5)
DEKFI
EMNOK
PEIRA
ANKMI
RTIAB
TENTI
Plainteks: (baca secara vertikal)
DEPARTEMEN TEKNIK INFORMATIKA IBI
Rinaldi Munir/IF5054 Kriptografi

22

Contoh lain. Misalkan plainteks adalah


CRYPTOGRAPHY AND DATA SECURITY
Plainteks disusun menjadi 3 baris (k = 3) seperti di bawah ini:
C

T
R

A
O

A
P

Y
H

A
N

E
T

S
A

I
C

maka cipherteksnya adalah


CTAAAEIRPORPYNDTSCRTYGHDAUY

Rinaldi Munir/IF5054 Kriptografi

23

Lebih jauh dengan Cipher Abjadtunggal


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
Rinaldi Munir/IF5054 Kriptografi

24

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 PYU N J TI S B K AC D F G LM 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

25

Mendekripsi cipherteks tanpa mengetahui


kunci (cipher substitusi abjad-tunggal):

Metode yang digunakan:


1. Terkaan
2. Statistik

Informasi tambahan:
1. Mengetahui bahasa plainteks
2. Konteks plainteks

Rinaldi Munir/IF5054 Kriptografi

26

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

27

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

28

Contoh 3:
Cipherteks: HATTPT
Plainteks: salah satu dari T atau P
merepresentasikan huruf vokal
sehingga plainteks yg memungkinkan
adalah :
CHEESE
MISSES
CANNON
Rinaldi Munir/IF5054 Kriptografi

29

Contoh 4:
Cipherteks: HATTPT
Plainteks:
(diketahui informasi bahwa pesan tersebut
adalah nama negara. Dengan cepat
kriptanalis menyimpulkan bahwa polygram
tersebut adalah GREECE.)

Rinaldi Munir/IF5054 Kriptografi

30

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

Huruf
N
O
P
Q
R
S
T
U
V
W
X
Y
Z

Rinaldi Munir/IF5054 Kriptografi

%
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

31

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

32

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

33

Histogram kemunculan relatif:

Rinaldi Munir/IF5054 Kriptografi

34

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 E
dan bahwa W berkoresponden dengan T.
Tetapi kita belum dapat memastikannya. Masih
diperlukan:
- cara trial and error
- pengetahuan tentang bahasa
- konteks plainteks
- intuisi
Rinaldi Munir/IF5054 Kriptografi

35