Pada Algoritma, tiap huruf disubstitusi dengan huruf ketiga berikutnya dari susunan
alphabet yang sama. Kunci dari algoritma ini adalah jumlah pergeseran huruf (yaitu
3). Susunan alphabet setelah digeser sejauh 3 huruf membentuk sebuah tabel
substitusi (tabel 3.1) berikut ini:
Plainteks 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
Cipherteks 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 3.1 :
Plainteks (P): VERONICA LUSIANA
Dengan melihat tabel 3.1 maka hasil enkripsi dari plainteks di atas adalah:
1
Cipherteks (C): YHURQLFD OXVLDQD
Dengan mengkodekan setiap huruf alphabet dengan integer : A=0, B=1,… Z =25
maka secara matematis untuk proses enkripsi menggunakan persamaan berikut ini :
-1
Fungsi D merupakan balikan (inverse) dari fungsi E, yaitu D(C) = E (P)
Sehingga cipherteks pada contoh 3.1 dapat dihitung dengan menggunakan persamaan
(3.1) sebagai berikut:
P1 = ‘V’ = 21 C1 = E (21)=(21+3) mod 26 = 24 =’Y’
P2 = ‘E’ = 4 C2 = E (4) =( 4+3) mod 26 = 7 =’H’
P3 = ‘R’ = 17 C3 = E (17)=(17+3) mod 26 = 20 =’U’
P4 = ‘0’ = 14 C4 = E (14)=(14+3) mod 26 = 17 =’R’
P5 = ‘N’ = 13 C5 = E (13)=(13+3) mod 26 = 16 =’Q’
P6 = ‘I’ = 8 C6 = E (8) =(8+3) mod 26 = 11 =’L’
P7 = ‘C’ = 2 C7 = E (2) =(2+3) mod 26 = 5 =’F’
P8 = ‘A’ = 0 C8 = E (0) =(0+3) mod 26 = 3 =’D’
Dst……
2
C3 = ‘U’ = 20 P3 = D(20) = (20-3) mod 26 = 17 mod 26 = 17=’R’
C4 = ‘R’ = 17 P4 = D(17) = (17-3) mod 26 = 14 mod 26 = 14=’O’
C5 = ‘W’ = 16 P5 = D(16) = (16-3) mod 26 = 13 mod 26 = 13=’N’
C6 = ‘L’ = 11 P6 = D(11) = (11-3) mod 26 = 8 mod 26 = 8 =’I’
C7 = ‘F’ = 5 P7 = D(5) = (5-3) mod 26 = 2 mod 26 = 2 =’C’
C8 = ‘D’ = 3 P8 = D(3) = (3 -3) mod 26 = 0 mod 26 = 0 =’A’
dst….
Untuk mengenkripsi atau mendekripsi pesan yang disusun oleh 256 karakter ASCII
maka persamaan (3.3) dan (3.4) dapat diperluas menjadi :
Program sederhana dalam Bahasa Matlab di bawah ini untuk mengenkripsi dan
dekripsi pesan dengan Caesar Cipher
%decryption
d_cc='';
for a=1:lp
if e_cc(a)==' '
d=' ';
else
r_mod=mod((double(e_cc(a))-65 - k),mod_);
d=char(r_mod+65);
end
d_cc=[d_cc, d];
end
d_cc; decryption=d_cc
4
Contoh 3.2
Kripnalisis menemukan potongan cipherteks (cryptogram) YHURQLFD dan
asumsikan kriptanalis mengetahui bahwa algoritma kriptografi yang digunakan
adalah Caesar Cipher. Untuk memperoleh plainteks, lakukan dekripsi mulai dari
kunci yang terbesar 25 sampai terkecil 1, kemudian cek apakah dekripsi
menghasilkan pesan yang mempunyai makna ( lihat tabel 3.2).
Kunci (k) Pesan hasil Kunci (k) Pesan hasil Kunci (k) Pesan hasil
dekripsi dekripsi dekripsi
ciphering Ciphering ciphering
18 GPCZYTNL 9 PYLIHCWU
Dari tabel 3.2 kata yang potensial menjadi plainteks adalah VERONICA dengan
menggunakan kunci k =3. Kunci ini digunakan untuk mendekripsi cipherteks lainnya.
5
Jenis Jenis Cipher Substitusi
Cipher Substitusi dapat dikelompokkan dalam 4 jenis yaitu :
P = p1p2…pmpm+1…p2m…
Maka cipherteks hasil enkripsi adalah
Ek (P) = f1(p1) f2(p2) … fm(pm) fm+1(pm+1)… f2m(p2m) ……………(3.7)
Pi adalah huruf-huruf dalam ciperteks dan fi adalah fungsi enkripsi. Untuk
Contoh cipher substitusi periodik adalah Vigenere cipher ( Sub bab 3.4)
6
3. Cipher Substitusi Homofonik (homophonic substitution cipher)
Adalah cipher yang setiap huruf plainteks dapat memiliki lebih dari satu
kemungkinanunit cipherteks.Misal huruf E (paling sering muncul dalam
bahasa Inggris) dapat berkoresponden dengan AB, TQ, YT atau UX.
Sehingga fungsi cipheringnya memetakan satu ke banyak. Semua unit
cipherteks yang berkorespondensi dengan satu huruf plainteks itulah yang
dinamakan homofonik. Tujuan substitusi homofonik adalah untuk
menyembunyikan hubungan statistic antara plainteks dengan cipherteks
sehingga menyulitkan teknik analisis frekuensi.
Sumber B1S03
7
Tabel 3.3
A BU CP AV AH BT BS CQ
B AT
C DL BK AU
D BV DY DM AI
E DK CO AW BL AA CR BM CS AF AG BO BN BE
F BW CM CN
G DN BJ
H AS CL CK
I DJ BI AX CJ AB BP CU CT
J BX
K DI
L AR BH CI AJ
M DH BG AY
N BY DG DF CH AC BR DU DT
O DZ BF DX AK CG BQ DR
P BZ DE AZ
Q DD
R AQ DC DQ AL CE CF CV DS
8
S AP AN AO CD DW DV
T CB DB DP CC AD CY CW CX AE
U CA AM BA
V BB
W CZ
X BD
Y DO DA
Z BC
9
Contoh kunci:
S T A N D
E R C H B
K F G I L
M O P Q U
V W X Y Z
S T A N D S
E R C H B E
K F G I L K
M O P Q U M
V W X Y Z V
→ S T A N D
10
GOOD BROOMS SWEEP CLEAN
→ Tidak ada huruf J, maka langsung tulis pesan dalam pasangan huruf:
GO OD BR OZ OM SZ SW EZ EP CL EA NZ
5. Jika ada dua huruf terdapat pada baris kunci yang sama maka tiap
huruf diganti dengan huruf di kanannya (pada kunci yang sudah
diperluas).
6. Jika dua huruf terdapat pada kolom kunci yang sama maka tiap huruf
diganti dengan huruf di bawahnya (pada kunci yang sudah diperluas)
7. Jika dua huruf tidak pada baris yang sama atau kolom yang sama,
maka huruf pertama diganti dengan huruf pada perpotongan baris
huruf pertama dengan kolom huruf kedua. Huruf kedua diganti dengan
huruf pada titik sudut keempat dari persegi panjang yang dibentuk dari
3 huruf yang digunakan sampai sejauh ini.
S T A N D S
E R C H B E
K F G I L K
M O P Q U M
V W X Y Z V
S T A N D
GO OD BR OZ OM SZ SW EZ EP CL EA NZ
Cipherteks:
FP UT EC UW PO DV TV BV CM BG CS DY
11
Enkripsi OD menjadi UT ditunjukkan pada bujursangkar di bawah ini:
S T A N D S S T A N D S
E R C H B E E R C H B E
K F G I L K K F G I L K
M O P Q U M M O P Q U M
V W X Y Z V V W X Y Z V
S T A N D S T A N D
Kunci dapat dipilih dari sebuah kalimat yang mudah diingat, misalnya:
ALNGESHPU
ALNGESHPUBCDFIKMOQRTVWXYZ
A L N G E
S H P U B
C D F I K
M O Q R T
V W X Y Z
12
Algoritma dekripsi kebalikan dari algoritma enkripsi. Caranya, untuk setiap
pasangan huruf cipherteks, tentukan titik sudut empat persegi panjang yang
terbentuk dari pasangan huruf tersebut. Dua huruf titik sudut menyatakan
pasangan huruf cipherteks, sedangkan dua huruf pada titik sudut yang lain
menyatakan pasangan huruf plainteksnya. Urutan huruf pada pasangan
plainteks tersebut mengikuti arah empat persegipanjang yang dibentuk oleh
pasangan huruf cipherteks.
Contoh 3.3
Untuk mengenkripsi pesan, plainteks ditulis secara horizontal dengan lebar kolom
tetap, misal selebar 3 karakter (kunci=3) :
IND
ONE
SIA
TAN
AHA
IRK
ITA
13
Maka cipherteksnya dibaca secara vertikal menjadi :
IOSTAIINNIAHRTDEANAKA.
IOSTAII
NNIAHRT
DEANAKA
Contoh 3.4
Plainteks diblok atas delapan karakter ( jika kurang dari delapan karakter maka
ditambahkanhuruf furuf semu, missal ABC). Kemudian pada tiap blok karakter
pertama dan karakter terakhir dipertukarkan, demikian juga karakter pertengahan
sedangkan karakter pada posisi lainnya tetap.
Proses enkripsi dari plainteks diatas dapat dilihat pada gambar 3.2 yang menghasilkan
cipherteks sebagai berikut :
SERNOICVDUSAINALANBDUIHACTOONABR
14
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
V E R O N I C A L U S I A N A D A N B U D 1 H A R T O N O A B C
A E R N O I C V D U S A I N A L A N B D U I H A C T O O N A B R
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
Sedangkan untuk proses dekripsi dengan cara yang sama yaitu cipherteks diblok 8
karakter, kemudian tiap-tiap blok, karakter pertama di tukar dengan karakter terakhir
demikian juga dengan karakter pertengahan. Proses dekripsi dapat dilihat pada
gambar 3.3 yang menghasilkan plainteks :
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
A E R N O I C V D U S A I N A L A N B D U I H A C T O O N A B R
V E R O N I C A L U S I A N A D A N B U D 1 H A R T O N O A B C
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
15
Tabel 3.4
HURUF % HURUF %
A 8,2 N 6,7
B 1,5 O 7,5
C 2,8 P 1,9
D 4,2 Q 0,1
E 12,7 R 6,0
F 2,2 S 6,3
G 2,0 T 9,0
H 6,1 U 2,8
I 7,0 V 1,0
J 0,1 W 2,4
K 0,8 X 2,0
L 4,0 Y 0,1
M 2,4 Z 0,1
4. Bandingkan hasil langkah 3 dengan table 3.4. Catatlah bahwa huruf yang
sering muncul dalam teks bahasa Inggris adalah huruf E. Sehingga huruf yang
sering muncul dalam cipherteks kemungkinan besar huruf E dalam
plainteksnya.
HURUF % HURUF %
P 13,33 Q 2,50
Z 11,67 T 2,50
S 8,33 A 1,67
U 8,33 B 1,67
O 7,5 G 1,67
M 6,67 Y 1,67
H 5,83 I 0,83
D 5,00 J 0,83
E 5,00 C 0,00
V 4,17 K 0,00
X 4,17 L 0,00
F 3,33 N 0.00
W 3,33 R 0,00
17
Dari tabel 3.5, huruf yang sering muncul pada cipherteks adalah P dan Z, kemudian
bandingkan dengan tabel 3.4 maka kesimpulan sementara bahwa P berkoresponden
dengan E dan Z berkoresponden dengan T. Sehingga hasil pemetaan dua huruf yang
sering muncul adalah sebagai berikut(huruf plainteks dinyatakan dengan huruf kecil):
Iterasi pertama
18
t a e e t e a that e e a a t
haze, have
19
3.4 Chiper Vigenere
Vigenere cipher sangat dikenal dan mudah untuk diimplementasikan, yaitu
menggunakan bujur sangkar Vigenere untuk melakukan enkripsi seperti pada gambar
3.4. Kolom paling kiri dari bujursangkar menyatakan huruf-huruf kunci sedangkan
baris paling atas menyatakan huruf-huruf plainteks. Setiap baris di dalam
bujursangkar menyatakan huruf-huruf cipherteks yang diperoleh dengan Caesar
Cipher, yang mana jumlah pergeseran huruf plainteks ditentukan nilai numerik huruf
kunci tersebut.
Contoh 3.6
20
1. Huruf plainteks A dapat dienkripsi menjadi I atau B atau D
21
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
a 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
b B C D E F G H I J K L M N O P O R S T U V W X Y Z A
c C 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
d 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
e 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 D
f F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
g G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
h H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
i I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
j J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
k K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
l L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
m M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
n N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
o O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
p P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
r R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
s S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
t T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
u U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
v V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
w W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
x X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
z Z 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
22
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
a 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
b B C D E F G H I J K L M N O P O R S T U V W X Y Z A
c C 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
d 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
e 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 D
f F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
g G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
h H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
i I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
j J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
k K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
l L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
m M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
n N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
o O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
p P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
r R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
s S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
t T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
u U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
v V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
w W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
x X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
z Z 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
Secara matematis proses enkripsi Vegenere Cipher (‘A’= 0, ‘B’ =1…’Z’=25) adalah:
24
Proses dekripsi pada Vigenere Cipher dengan cara yang berkebalikan yaitu menarik
garis mendatar dari huruf kunci sampai kr huruf cipherteks yang dituju, lalu dari
huruf cipherteks tarik garis vertikal ke atas sampai ke huruf plainteks.
Proses enkripsi One Time Pad sama persis dengan Vigenere Cipher yaitu
menggunakan persamaan (3.8) dan proses dekripsi menggunakan persamaan (3.9).
Akan tetapi kunci yang digunakan panjangnya sama dengan panjang plainteks.
Contoh 3.7
Kunci : TBFRGFARFM
25
Jika perhitungan di atas dilanjutkan maka akan menghasilkan cipherteks :
HOJKOREGHP.
Meskipun OTP merupakan cipher yang sempurna aman, akan tetapi jarang digunakan
secara universal hal ini disebabkan karena alasan dari segi kepraktisan yaitu (Rinaldi
Munir) :
1. Karena panjang kunci harus sama dengan panjang plainteks maka OTP hanya
cocok untuk plainteks berukuran kecil. Semakin besar ukuran plainteks maka
semakin besar pula ukukuran kunci yang digunakan. Pada aplikasi kriptografi
untuk mengenkripsikan data tersimapn, timbul masalah dalam penyimpanan
kunci. Selain itu pad aaplikasi kriptografi untuk komunikasi pesan, timbul
masalah dalam pendistribusian kunci.
2. Karena kunci dibangkitkan secara acak maka tidak mungkin pengirim dan
penerima membangkitkan kunci yang sama secara simultan. Jadi salah
seorang dari mereka harus membangkitkan kunci kemudian mengirimkannya
ke pihak lain.
26
LATIHAN SOAL
27