You are on page 1of 42

42

Pengontor IImu Kriptogrofi


//
BAB III
ALGORITMA KRIPTOGRAFI
3.1 PENDAHUlUAN
Ditinjau dari asal-usulnya. kara algoritma mempunyai sejarah yang menarik.
Kata ini muncul di dalam kamus Webster sampai akhir tahun 1957. Kata
algorism mempunyai ani proses perhicungan dalam bahasa Arab. Algoritma
berasal dari nama penulis buku Arab yang terkenal, yaitu Abu Ja'far
Muhammad Ibnu Musa al-Khuwarizmi (al-Khuwarizmi dibaca oleh orang
barat sebagai algorism). KatJ algorism lambat laun berubah menjadi
algorithm.
Definisi terminologi algoritma adalah urutan langkah-langkah logis untuk
menyelesaikan masalah yang disusun secara sistematis. Algoritma kriptografi
merupakan langkah-Iangkah logis bagaimana menyembunyikan pesan dari
orang-orang yang tidak berhak atas pesan terse but.
Algoritma kriptografi terdiri dari tiga fungsi dasar, yaitu:
1. Enkripsi merupakan hal yang sangat penting dalam kriptografi. merupa
, I
kan pengamanan data yang dikirimkan agar terjaga kerahasiaannya.
Pesan ash disebut plaintext, yang diubah menjadi kode-kode yang tidak ill ,I
I
dimengerti. Enkripsi bisa diartikan dengan cipher atau kode. Sama halnya
I
'I
... 1 dengan kita tidak mengerti akan sebuah kata maka kita akan melihatnya
di dalam kamus atau daftar istilah. Beda halnya dengan enkripsi. umuk
mengubah teks-asii ke bentuk teks-kode kita menggunakan algoritma
yang dapat mengkodekan data yang kita ingini.
2. Dekripsi: merupakan kebalikan dari enkripsi. Pesan yang tclah dienkripsi
dikembalikan ke bentuk asalnya (teks-asli), disebut dengan dekripsi
pesan. Algoritma yang digunakan untuk dekripsi tentu berbeda dengan
algoritma yang digunakan untuk enkripsi.
3. KUl1ci yang dimaksud di sini adalah kunci yang dipakai untuk
melakukan enkripsi dan dekripsi. Kunci rerbagi menjadi dua bagian,
kunci rahasia (private key) dan kunci umum (public key).
45
44 Pengantar Ilmu Kriptografi
Keamanan dari algoritma kriptografi tergantung pad a bagairnana algoritma
itu bekerja. Oleh sebab itu algoritma semacam ini disebut dengan algoritma
terbatas. Algoritma terbatas merupakan algoritma yang dipakai sekelompok
orang untuk merahasiakan pesan yang mereka kirim. Jika salah satu dari
anggota kelompok itu keluar dari kelompoknya maka algoritma yang dipakai
diganti dengan yang baru. Jika tidak maka hal itu bisa menjadi masalah dl
kemudian hari.
Keamanan dari kriptografi modern didapat dengan merahasiakan kunci yang
dimiliki dari orang lain. tanpa harus merahasiakan algoritma itu sendiri.
Kunci memiliki fungsi yang sarna dengan password. Jika keseluruhan dari
keamanan algoritma tergantung pada kunci yang dipakai maka algoritma ini
bisa dipubliskasikan dan dianalisis oleh orang lain. Jika algoritma yang telah
dipublikasikan bisa dipecahkan dalam waktu singkat oleh orang lain maka
berarti algoritma tersebut tidaklah aman untuk digunakan. Pada pembahasan
berikutnya akan dijelaskan berbagai macam algoritma kriptografi yang
pernah ada.
3.2 MACAM-MACAM ALGORITMA KRIPTOGRAFI
Algoritma kriptografi dibagi menjadi tiga bagian berdasarkan kunci yang
dipakainya:
1. Algoritma Simetri (menggunakan satu kunci untuk enkripsi dan dekrip
sinya).
2. Algoritma Asimetri (menggunakan kunci yang berbeda ulltuk enkripsi
dan dekripsi).
3. Hash Function.
3.2.1 ALGORITMA SIMETRI
Algoritma ini sering disebut dengan algoritma klasik karena memakai kunci
yang sarna untuk kegiatan enkripsi dan dekripsi. Algoritma ini sudah ada
sejak lebih dari 4000 tahun yang lalu. Bila mengirim pes an dengan meng
gunakan algoritma ini. si penerima pesan harus diberitahu kunci dari pesan
tersebut agar bisa mendekripsikan pesan yang dikirim. Keamanan dari pesan
yang menggunakan algoritma ini tergantung pada kunci. Jika kunci tersebut
diketahui oleh orang lain maka orang rersebut akan dapat melakukan
Algoritma Kriptografi
enkripsi dan dekripsi terhadap pesan. Algoritma yang memakai kunci simetri
di antaranya adalah:
1. Di'ta Encryption Standard (DES).
2. RC2. RC4, RCS. RC6,
3. International Data Encryption Algorithm (IDEA),
4. Advanced Encryption Standard (AES),
5. One Time Pad (OTP),
6. AS, dan lain sebagainya.
3.2.2 ALGORITMA ASIMETRI
Algoritma asimetri sering juga disebut dengan algoritma kunci publik.
dengan ani kata kllnci yang digunakan untuk melakukan enkripsi dan
dekripsi berbeda. Pada algoritma asimetri kunci terbagi menjadi dua bagian.
yaitu:
1. Kunci umum (public key): Kunci yang boleh semua orang tahu
(dipublikasikan).
2. Kunci rahasia (private key): Kunci yang dirahasiakan (hanya boleh
diketahui oleh satu orang).
Kunci-kunci tersebut berhubungan satll sarna lain. Dengan kunci publik
orang dapat mengenkripsi pesan tetapi tidak bisa mendekripsinya. Hanya
orang yang memiliki kunci rahasia yang dapat mendekripsi pesan terse but.
Algoritma asimetri bisa mengirimkan pesan dengan lebih aman daripada
algoritma simetri. Contoh, Bob mengirim pesan ke Alice menggunakan
algoritma asimetri. Hal yang harus dilakukan adalah:
1. Bob memberitahukan kunci publiknya ke Alice.
2. Alice mengenkripsi pesan dengan menggunakan kunci publik Bob.
3. Bob mende'uipsi pesan dari Alice dengan kunci rahasianya.
4. Begitu juga sebaliknya jika Bob ingin mengirim pesan ke Alice.
46 Pengantar IImu Kriptografi
Algoritma yang memakai kunci publik di antaranya adalah:
1. Digital Signature Algorithm (DSA),
2. RSA,
3. Diffie-Hellman (DH),
4. Elliptic Curve Cryptography (ECC),
5. Kriptografi Quantum, dan lain sebagainya.
3.2.3 FUNGSJ HASH
Fungsi Hash disebut dengan fungsi Hash saru arah (one-way function),
message digest, fi'ngerprint. fungsi kompresi dan message authentication code
merupakan suatu fungsi matematika yang mengambil masukan
panjang variabel dan mengubahnya ke dalam urutan biner dengan panjang
yang tetap. Fungsi Hash biasanya diperlukan bila ingin membuat sidik jari
dari suatu pesan. Sidik jari pada pesan merupakan suaru tanda bahwa pesan
tersebut benar-benar berasal dari orang yang diinginkan. Tentang hal ini
akan dibahas lebih laniut bagian
3.3 KRIPTOGRAFI KLASIK
Kriptografi klasik merupakan suaru algoritma yang menggunakan satu kunci
untuk mengamankan data. Teknik ini sudah digunakan beberapa abad yang
lalu. Dua teknik dasar yang biasa digunakan pada algoritma jenis ini adalah
sebagai berikut:
1. Teknik substitusi: Penggantian setiap karakter teks-asli dengan karakter
lain.
2. Teknik transposisi (permutasi): Dilakukan dengan menggunakan per
mutasi karakter.
3.4 KRIPTOGRAFI MODERN
Kriptografi modern mempunyai kerumitan yang sangat kompleks karena
dioperasikan menggunakan komputer. Hal ini akan dibahas lebih detail
bagian lain.
.,
A\gorilmo Kriptogrofi
47
3.5 PROSES PENGKODEAN
Cara kerja sistem penyandian sangat sederhana, bisa dianalogikan dengan
kayu. mesin, serbuk kayu. Kayu digunakan sebagai bahan baku untuk mem
buat serbuk kayu dan untuk membuat serbuk terse but dibutuhkan mesin
pembuatnya. Coba lihat gambar di bawah ini.
Gambar 3.1lluslrnsi Proses Teks-Kode
Pad a gam bar di atas kit a bisa lihat proses kayu menjadi serbuk kayu. Begitu
juga halnya yang terjadi pada sistem penyandian. Kayu adalah teks-asli
sedangkan mesin adalah algoritma kriptografi, sedangkan untuk proses pem
buatan serbuk dibutuhkan aksi. yang mana aksi adalah kunci dan serbuk kayu
adalah teks- kode.
Tahap-tahap proses kriptografi atau sistem penyandian adalah sebagai
berikut:
1. Dibutuhkan algoritma, sebagai urutan dari langkah-langkah untuk
melakukan
2. suatu nilai yang digunakan pada algoritma sehingga algoritma
tersebut bisa bekerja.
48
Pengantar IImu Kriptografi
~ A . ~ \\1
AlGORllMA KR1P10GRAfl KlAS1K
4.1 PENDAHUlUAN
Kriptografi sudah dipakai sejak empat abad yang lalu. Perkembangan krip
tografi begitu pesat sampai sekarang. Untuk mendapatkan pengertian bagai
mana suau algoritma kriptografi berkembang. buku ini akan menelusuri satu
per satu algoritma kriptografi klasik. dari teknik subsitusi dan teknik
transposisi. Kriptografi klasik memiliki beberapa citi:
1. berbasis karakter.
2. menggunakan pena dan kertas saja. belum ada komputer,
3. termasuk ke dalam kriptografi kund sil1etri.
Tiga alasan mempelajari algoritma klasik:
I. memahami konsep dasar kriptografi.
2. dasar algoritma kriptografi modern.
3. memahami kelemahan sistem kode.
4.2 TEKNIK SUBSITUSI
Substitusi merupakan penggantian setiap karakter teks-asli dengan karakter
lain.
A
F
K
p
c
U X
50
51
Pengantar Ilmu Kriptografi
Terdapat empat istilah substimsi kode. antara lain:
1. Monoalphabec: setiap karakter teks-kode menggantikan salah sam
karakter teks-asli.
2. Polyalphabec: setiap karakter teks-kode dapat menggantikan lebih dari
satu maeam karakter teks-asH.
3. Monogral sam enkripsi dilakukan terhad.lp satu karakter teks-asli.
4. Polygraph: sam enkripsi dilakukan terhadap lebih dari sam karakter teks
ash.
4.2.1 KODE KAISAR
Subsitusi kode yang pertama dalam dunia penyanuian terjadi pada pemerin
tahan Yulius Caesar yang dikenal dengan kode Kaisar. dengan mengganti
posisi huruf awal dari alfabet atau disebut juga dengan algoritma ROT3.
Caesar Cipher (ROT3)
Plain Text
i---'-'
Encoded Text
-
ABC DEF
----i
Hello Khoor
Attack D\NWdfn
-
Seeara lebih detail, eoba perhatikan eontah berikut:
Q
23 24 25
- '--
A B ( D E F G H I
J
K l M N 01 p II ~ 1 U V W X i Z
C I 2 j ~ 5 f I 8 ~ Ie 11 12 1J 14 liS 16 17 18 19 20 21 2:l
Menjadi:
u v w x ) Z A B
19 ZC 21 22 2J 24 25
Jika penggeseran yang dilakukan sebanyak tiga kali maka kunei untuk
dekripsinya adalah 3. Penggeseran kunci yang dilakukan tergantung
keinginan pengirim pesan. Bisa saja kunei yang dipakai a 7. b '" 9, dan
seterusnya.
Algoritma Kriptografi Klasik
Contoh algoritma kode Kaisar: Untuk teks-asH diberikan simbol "P" dan teks
kodenya He" dan kunci "K". Jadi rumusnya dapat dibuat sebagai berikut:
C=E(P) = (P+K) mod (26)
Pada eontoh di atas kita bisa memasukkan kunci dengan nilai tiga sehingga
menjadi:
C=E(P) = (P+3) mod (26)
Rumus dekripsinya menjadi seperti berikut:
P = D(C) (C K) mod (26)
Dari eomoh di atas. dengan memasukkan kunci tiga. maka:
P '" D(C) = (C 3) mod (26)
Jika diberikan teks-ash sebagai berikut:
GEMPA YOGYA MENELAN KORBAN TIDAK SEDlKIT DAN SAMPAI
SEKARANG MASIH MENYISAKAN TRAUMA BAGI ORANG-ORANG
KOTAGUDEG
Dengan menggunakan kunci tiga maka akan didapat teks-kode berikut:
JHPDBRJBDPHQHODQNRUEDQWLGDNVHGLNLWGDQVDPSDL VHND
UDQJPHNDUDQJPHQBLVDNDQWUDPDEDJLRUDQJRUDQJNRWDJXG
HJ
Kode Kaisar dipeeahkan dengan eara brute force attaCl. suatu bentuk
serangan yang dilakukan dengan meneoba-eoba berbagai kemungkiuan
untuk menemukan kunei. Bisa juga menggunakan exJlaustive key search,
karena jumlah kunei sangat sedikit (hanya ada 26 kunei). Meski sedikit. kunei
suatu kode eukup merepotkan kriptanalis, karen a untuk menemukannya
dengan brute foree attaek dibutuhkan waktu yang eukup lama.
Ada cara lain yang dapat digunakan kriptanalis untuk memeeahkannya, yaitu
dengan melihat frekuensi kemuneulan huruf sepeni yang ditunjukkan tabel
frekuensi kemuneulan huruf berikut ini:
-
52 Pengantar IImu Kriptografi
Tabel 4. I Frekuensi Kemunculan Huruf dalam Bahasa
Karakter
A
Peluang
0.082
Karakter
N
Peluang
.067
B .015 0 .075
C .028 P .019
D .043 Q .001
E .127 R .060
F
G
.022
.020
S
T
.063
.09
H .061 U
.
I .070 V .010
I
J
K
.002
.008
W
X
.023
.001
L .040 Y .020
M .024 Z .001
.......
Pada teks bahasa Indonesia, yang paling sering muncul adalah 10 huruf pada
tabel di bawah ini:
Tabel 4.2 Sepuluh Huruf yang Sering Mun(ul dalam Bahasa Indonesia
Letter
Frequency
kemunculan (%)
A 17.50
N 10.30
I 8.70
E 7.50
K 5.65
T 5.10
R 4.60
0 4.50
S 4.50 .
M 4.50
Brute force attack juga digunakan untuk mencari password dan ID dari suatu
sistem. Pada serangan ini para penyerang mencoba beberapa kemungkinan
yang ada dari daftar kata-kata yang ada di dalam kamus. Umumnya serangan
ini dapat berhasil. hanya saja memerlukan waktu yang lama.
K\o<;\\<.

Listing program untuk mendek,ipsi me yang menggunakan kode Kaisar:


file menggunakan Caesar cipher *1
.
sebagai berkas ma .. ukan/n
, "
argv[lJ. argvl2J I;
1* Program.dekr1psi
hneluda <stdio. h>'
main (int' argo . char 'argv[J)
I . .
FILE *Fin, *Foutj
char p, 'C;
1, It;
Fin ,,fop41n(argv[ll. "rb"):
if (Fin - NULL)
printt("Kesalahan dalam mmnbuka %s
Fout. - fopen(arqv[2], Itwb
lf
);
printt("\noakripsi %s manjadi , ..... \n",
printf(".\n") ;
printf(tlk : .. ,;
scant ("'d". &k);
"hil.. c - <]<Itc(Fin != EO!!')
I
P - (e - k) , 256;
pute (P. Fout);
)
felo..e(Fin) ;
felos..
)
Pada sistem operasi Unix. ROT13 adalah fungsi yang menggunakan kode
Kaisar dengan pergeseran k = l3.
13
t
j 'q' .,j

Gombar 4.1 AJgori!ma R0T13
Sistem enkripsi pada unix. dengan membagi alfabet n = 26 menjadi 13
sehingga satu huruf dengan huruf yang lain saling berhadapan. Jika teks
aslinya adalah "A" maka teks-kodenya adalah "N", Begitu seterusnya. Notasi
matematikanya dapat ditulis sebagai berikut:
C = ROTl3 (M)
Untuk melakukan dekripsi dengan proses enkripsi ROTl3 dua kali:
M = ROTl3 (ROT 13 (M
54
55
Pengantar IImu Kriptografi
ROT13 didesain untuk keamanan pada sistem operasi UNIX yang sering
digunakan pada forum on-line, berfungsi untuk menyelubungi isi artikel
sehingga hanya orang yang berhak yang dapat membacanya. Contoh proses
enkripsi ROTl3 danat dilihat di bawah ini:
ENKRlJ'SI MENGGUNAKAN nonl
Gombar 4.2 P r o ~ e ~
ROT13
Proses dekripsi:
I'ROSES DEKlurSI ROTI3
PLAINTEXT
Gombar 4.3 Proses Dekr,psi ROfl3
Pada perkembangannya algoritma kode Kaisar memberikan suatu gagasan
baru untuk menggunakan kunei lain yang disebut poly-alphabetic. Kunci bisa
jadi nama, alamat atau apa saja yang diinginkan oleh pengirim pesan. Coba
perhatikan contoh di bawah ini.
Kode Kaisar dengan menggunakan satu kunci bisa disebut dengan substitusi
deret campur kata kunei. Yang perlu diingat. tidak ada perulangan huruf
dalam hal ini. DONY ARlYUS menjadi DONY ARIUS. Karena ada
pengulangan huruf Y. maka huruf itu tidak dipakai lagi.
Menggunakan satu kunei:
A\goritma Kriptografi K\asik
Teks-asli : " MBAH MARIJAN SEKARANG SUDAH MENJADI ARTIS"
Kunei : "MERAPI"
Teks-kode :" JEMCJMQDFMKSPGMQMKBSUAMqPKFMADMQTDS"
Menggunakan dua kunci:
K1
Teks-asli : '"BELAjAR KRIPTOGRAFI UNTUK MENGAMANKAN
DATA"
Kl : DONY ARlYUS
K2 : YOGY AKART A
Teks-kode : IYKAOAFGFPDJBCFAMPLTJLGRYTCARATGATXAJA
Menggunakan lebih dari satu kunei:
K2 1 ' 1v 1 '"'I'" 1 , ~ 1"I I I" 1.... I .... J
Kl
Kl :GEMPA
K2 :MBAH
K3 : MERAPI
Teks-kode
"HJSFWFTFLFPFDOKFTUCRJLFSFOAFUTRJHUAFUFISUAF
DWJSDHFLFTUCUIQFOU2007"
56 Pengantar IImu Kriptografi
Dengan menggunakan lebih dari satu kunci, bisa menggunakan metode
pendistribusian kunci-kunci yang ada. M('tode hi terdiri dari tiga bagian,
yaitu bIok, karakter, dan zig-zag.
1. Blok
Metode untuk melakukan enkripsi dengan menggunakan blok adalah dengan
membagi jumlah teks-asli menjadi blok-blok yang ditentukan, tergantung
dari keinginan pengirim pes an. Coba perhatikan contoh di bawah ini:
Teks-asH: "BANJIR MEREDAM JAKARTA HARGA BAHAN POKOK
NAIK"
Teks-asH di atas dibagi menjadi 8 blok. Setiap blok berisi 6 karakter. Karena
blok yang ketujuh tidak mencukupi maka ditambah dengan karakter "X" atau
karakter lain yang diinginkan.
'--_---' '--_---' [MJAKAR] [TAHARGJ rABAH!'Nl I AIKXXX
Block 1 Block 2 Block 3 Block 4 Block 5 Illock 6 Block 7
KI
K2
KJ
Didapat teks-kode berikut:
ODGBSI HKNKAY EllKCKN PDUDlI YOYBYI LJCJCH DSCXXX
I I I I I I I I I
Kl
K2 K3 K1 K2 K1
Pad a contoh di atas, Kl digunakan pada blok pertama, K2 blok kedua, K3
blok ketiga. Begitu seterusnya. Atau juga bisa dipakai untuk meng
enkripsi dua blok sekaligus dengan memakai satu kunci (Kl, K2, atau K3) dan
seterusnya. Maka didapat hasil pendistribusian kunci untuk teks-kode sebagai
berikut:
"ODGBSLHKNKA YEBKCKNPDUDLlYOYBYILJCJCHDSCXX:X"

\<xi?'o<aro\\ \<"\O.,\\(
57
Dengan menggunakan metode ini. jika satu kunci ditemukan oleh kriptanalis,
belum tentu pesan bisa dipecahkan, karena masih ada beberapa kunci lagi
yang harus dicari.
2. Karakter
Metode ini menggunakan pendistribusian per karakter. hampir sama dengan
metode biok. Contoh pendistribusian per karakter adalah seperti di bawah
ini:
I I I I j _... .,.. .
K] , I I ,- ,- r I'TT I' '''' I"""I " ,,' " , n ,., 1' I __ Iv ,,,' I 'I '-I L D () N Y A n 1 T I <;: Jl r' r: t: .-"'."7 ... , r.r "ow-. """_ _. _, __ .
10. K R J f' T n r: A r." r " r T. .,,'
o Y Hll C N r K N A A K I' D K C Y N PYA 0 N G
1 1 1 J,j 1
K3 K:J KJ KJ K3 KJ KJ KJ
fj IqPll rIP]I
KJ K:J
K:J K:J K:J
3. Zig-zag
Pendistribusian dengan metode zig-zag dilakukan dengan menukarkan huruf
asli dengan huruf yang sudah kunci (Kl) dan mencari huruf yang
sama pada K2 dan K3, sehingga huruf yang menjadi teks-kode adalah huruf
dari persamaan C = K3 dan sebaliknya. Contoh:
58 Pengantar IImu Kriptografi
Kli '-' I 'J '''! ". , " ! I vI ! t - t ,-! U! J !.-, - ,m,. ,'< I - I - "-I ,. 1 - ,
)
I, ;IQlnls ITlulwlxlylz I
Dari teks-asH:
"KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDER ITA"
didapat teks-kode:
"FMPKCFKPVKJGKSSOOMOSHKTJKFXKTFMOCNOMPYMJCTK"
4.2.2 KODE GESER
Teknik substitusi kode geser (shift) c'engan modulus 26 memberikan angka ke
setiap alfabet seperti a 0, B 1 .. , .. ,. Z 25. Agar lebih jelas,
perhatikan comoh di bawah ini:
A M
0 12
N 10
13
1
14
,
--,-
p Q R S T U V W X Y Z
15 16 17 18 19 20 21 22 23 24 25
Teks-asli: "We Will Meet at Mid Night"
Kalimat di atas mendaoat angka dari setiap huruf sebagai berikut:
22 4 22 8 II II 12 4 4 19 19 12 8 3 13 8 6 7 19
Untuk mendapatkan teks-kode, kita mempunyai kunei 11. Dengan me
nambahkan setiap nilai dari teks-asli dengan kunci 11 maka didapat:
7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4
,
\<..\o";\\<.
59
\
Jika lebih dari 20, setelah ditambah dengan kunci maka akan dikurangi
dengan 26. Misalnya, 22+11= 33 - 26 7. Setelah dikonversi menjadi huruf
maka akan didapatkan teks-kode:
"HPHTWWXPPELEXTOYTRSE"
Teks-asli ; We will meet at mid night
Teks-kode : HPHTWWXPPELEXTOYTRSE
Kunci : 11
4.2.3 KODE Hill
Kode Hill termasuk salah satu sistem kripto polialfabetik, yang berarti
karakter alfabet bisa dipetakan ke lebih dari satu maeam karakter. Kode ini
ditemukan pada tahun 1929 oleh Lester S. Hill. Misalkan m adalah bilangan
bulat positif, dan P = C . Ide dari kode Hill adalah dengan mengambil
m kombinasi linear dari m karakter alfabet dalam satu elemen teks-asli
sehingga dihasilkan TIl alfabet karakter dalam saru elemen teks-asli.
Misalkan m = 2 maka dapar ditulis suatu elemen teks-asli sebagai x = (XI, X2)
dan suam elemen teks-kode sebagai y = (yl, Y2). Oi sini yl, yl adalah
kombinasi linear dari XI dan X2. Misalkan:
1\ (j
yl =llxl + 3X2
Ie\
"j l \
y2 8xI + 7X2
"
\.
dimlis dalam notasi matriks sebagai berikut:
i'
)
(j
I'
11 811 ""j - ::;q,
(YI'Y2) (x"x
2
) 3 -(
o
" U S [(
l. -
Seeara umum dengan menggunakan matriks K m x m sebagai kunci.
elemen pada baris i dan kolom j dari matriks K adalah k,j, maka dapat ditulis II [
c '( r .
K (k,.J Untuk x (XI, ... , Xm) E P dan K E K. dihitung y eK(x) =(Yl, ... , '.
, ,.
sebagai berikut: / "
,-
\
kl.l
1
o
kl.mj
k2.J k2
2 k2,m
Ii
(Y)'Y2. (x) ,x2, ... ,X
s'S
-!
!,
H
2
m
km .2 ...
o
o
60 Pengantar IImu Kriptografi
dengan kat a lain, y '" xK.
Dikatakan bahwa teks-kode diperoleh dari teks-asli dengan cara transformasi
linear. Untuk melakukan dekripsi menggunakan matriks inversi K-I, dekripsi
dilakukan dengan rumus x =yK-'.
1. Perkalian matriks memiliki sifat asosiatif, yaitu (AB)C '" A(BC).
2. Matriks identitas m x m, yang ditulis dengan Im, adalah matriks yang
berisi 1 pada diagonal utama dan berisi 0 pada elemen lainnya.
Contoh matriks identitas 2 x 2:
12 =
1m disebut dengan matriks identitas karena AIm'" A untuk sembarang
matriks I x m dan 1mB", B untuk sembarang matriks m x n.
3. Matriks inversi dari A (jika ada) adalah kl di mana AAI k'A = 1m.
Dengan menggunakan sifat-sifat matriks di atas, maka:
y xK
yKI (xK)KI = x(KKI) '" xlm X
Contoh:
Dapat dilihat bahwa matriks enkripsi pada contoh sebemmnya memiliki
inversi pada Z26:
fll . 8)-1 l( 7 18)
3' 7 23 11
l
-
r
A f
n ~ "
Karena
III
~ J (;3 1
=(11'7+8'23 l1'18+8'I1J
l3
3'7+7'23 3'18+7'11
II
261 2861
( 182 131)
i.:
=( ~ 1
Ingat bahwa semua operasi aritmetik di atas dilakukan pada modulo 26.
~
A\gorHmo Kriptogroti K\osik
61
Sebuah contoh untuk memberikan gambaran tentang enkripsi dan dekripsi
dalam kode Hill.
Misalkan kunci yang dipakai adalah:
K=C; ~ )
Dari perhitungan di atas diperoleh bahwa:
K-I =( 7 18J
23 11
Misalkan untuk mengenkripsi teks-asli JULY, ada 2 elemen teks-asli untuk
dienkripsi:
1. (9,20) ~
2. (11 ,24) ~ L Y
Kemudian lakukan perhitungan berikut:
11 81
(9 , 20)
(
3 7j =(99+60 ,72+140) (3, 4) ~ DE
dan
(
11 8)
(11 24) 3 7 (121+72, 88+168)=(11 . 22) ~ LW
sehingga enkripsi untuk JULY adalah DELW.
Untuk mendekripsi dilakukan dengan cara:
7 18)
(3 , 4) 23 11 (9,
(
dan
i
(11 =(11 24) 22{:3
-)
sehingga teks-asli diperoleh kern bali.
Dekripsi hanya mungkin dilakukan jika matriks K memiliki inversi. Suatu
matriks K memiliki inversi jika dan hanya jika determinannya tidak no!.
<')
62
Pengantar IImu Kriptografi'
Namun karena 226 maka matriks K memiliki inversi modulo 26 jika dan
hanya jika gcd(det K, 26)=1.
Unruk matriks A berukuran 2 x 2, nilai determinannya adalah:
det A al.la2.2 - al.2a2.1
dan matriks inversi dari A adalah:
32.2
-31,2)
(det
(
-32.1 31.1
Contoh:
K =: (11
3 7
maka
11
detK det 3 j 11' 7 8' 3 mod 26
(
= 77 - 24 mod 26
53 mod 26
=1
kemudian 1-1 mod 26 1. sehingga matriks inversinya adalah:
(11
=l3
=(;3 11
Contoh:
Kode Hill dengan menggunakan matriks 3 x 3 d<ngan kunci matriks (42 3; 6
33; 312).
Diketahui teks-asli berikut: "KENAlKAN HARGA BBM MEMBUAT
RAKYAT KECIL MENDERITA"
\<.\asik 61
'"
\-<

B
B
'" c
o
c.. ..... .;
<lJ _:i ""
..!:;
"" ';j) 'iii -e D...
0
:t
<1:
:t o
+ +
+
r--.
+
rKEN1 l

40 + 8 + 39)
(
423) (10) Mod 26 (;):: ( H) JH
6 3 3 4 :: 50 + 12 + 39 ::
(
3 2 1 13 30 + 4 + 25 \60) 8' I
3)
AIK
4 ? 0+ 16 + 30)
(, :I :I :: 0 + 24 + 30 :: uee
( (
Mod 26:: (y) :: (g)
:I 2 1
0+ 8 + 20
Al m
0 + 26 + 21 )
= 0 + 39 + 21 :: VIB
(
i Gn Mod 25:: :: (r)
:I _ 1 7 (
0+13+14
ARG
(
4 2 ::I) (0) (0 + 14 + 18 ) ( 5 ) (G) (32)
6 3 3 17 0 + 21 + 18 39 Mod 25:: 13 :: N GND
3 2 1 5 0 + 17 + 12 29 3 0
ABB
(
4 2 :I) (0) (0 + 2+ 3) (5) (21) (V)
6 3 3 1:: 0 + 3 + 3 :: 5 Mod 25 20 = U VUX
3 2 1 1 0 + 1 + 2 3 23 X
MME
(
4 2 :I) (12) (48 + 24 + 12) (84
1
(6) (G\
6 3 3 12:: 72 + 35 + 12 :: 120 Mod 26 = 15 = 0)1 GOE
3 2 1 4 36 + 12 + 8 56 4 E
(
:I)
MHU
(12) (48+2+60)
(, :I :I 1 = 72 + 3 + 60 :: GFZ
4 2
Mod 26:: (15) ::
:I 2
1 20 36 + 1 + 40
ATR
0+ 38 + 51) (89
(
i (109) ::
(
0+58+51 :: 109

LFB Mod26=
3 2 1 17 0+ 19 + 34 53
1
64 Pengantar IImu Kriptografi
AKY
0 + 20 + ) (92) (14) (0)
" 0 + 30 +
72
72 " 102 Mod 26 = 24 = Y OYG
3 2 1 24 o+ 10 + 48 58 6 G
ATK
(
(1
0
0)
(
( (
(Q) 0+38+30) (68) (16)
(10
9
)
= 0 + 57 + 30 = 87 Mod 26 9 J QJN
2 1 10 o+ 19+ 20 39 13 N
Eel
16 + 4 + 24)
= 24 + 6 + 24 = SCE

Mod 26 = =
2 1 8
(
12+2+16
LME
" 2 :\)
6 :\ = Mod 26 CKB
(
3 2 1
NDE
':I 2
52+6+12) (70) (18)
6 3 " 78 + 9 + 12 = 99 Mod 26 21 SVY
(
3 2
) (1I)
(
, 39 + 3 + 8 50 24
RIT
' 4 2
68+16+57) (2) (C)
6 :\ = 102+24+57" 183 Mod26= 1 = B CST
(
(
3 2
51 + 8 + 38 97 19 T
\
AXX
(
(;;)
0 +46 +69) (11) (L)
= 0 + 69 + 69 = 138 Mod 26 8" I LlR
(
3 2 1 23 o+ 23 + 46 69 17 R
teks-kode dari teks-asli:
"KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA"
adalah:
"JHIUCCVIBGNDVUXFQCGFZLFBOXBQJNSCECKBSVYCBTLlR"
Pada (ontoh di atas, kekurangan pada akhir kalimat ditambah dengan humf
"x" untuk mencukupi perkalian matriksnya. Teks-kode dari Kode Hill juga
bisa disajikan dalam bentuk angka, seperti: "9 7 8 20 222181 613321 2023
616465251151142461691318242101182124211911817"atau
menggunakan heksadesimal dan binari.
65
Algoritma Kriptografi Klasik
4.2.4 KOOE VIGENERE
Kode Vigenere termasuk kode abjad-majemuk (polyalphabetic substitution
cipher). Dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis,
Blaise de Vigenere pada Abad 16, tahun 1586. Sebenamya Giovan Batista
Belaso telah menggambarkannya untuk pertama kali pada tahun 1553 seperti
ditulis di dalam buku La Cifra del Sig. Algoritma ini bam dikenal luas 200
tahun kemudian dan dinamakan kode Vigimere. Vigenere mempakan pemicu
perang sipil di Amerika dan kode Vigenere digunakan oleh Tentara
Konfiderasi (Confederate Army) pada Perang Sipil Amerika (American Civil
War? Kode ViJenere berhasil dipecahkan oleh Babbage dan K<"siski pada
pertengahan Abad 19.
Gambar 4.4 Olaise de Vigenere
Bila pada teknik di atas setiap teks-kode selalu rnengganti nilai setiap teks-asli
tertentu (tidak peduli apakah jumlah teks-kodenya ekuivalen dengan teks
asli tertentu satu atau lebih), pada teknik substisusi Vigenere setiap teks-kode
bisa memiliki banyak kemungkinan teks-asli. Teknik dari subtitusi Vigenere
bisa dilakukan dengan dua cara, yaitu angka dan humf.
4.2.4.1 ANGKA
Teknik subsitusi Vigenere dengan menggunakan angka dilakukan dengan
menukarkan humf dengan angka, hampir sama dengan kode geser.
T HIS CRY P T
19 7 8 18 2 17 24 15 19
2 B 15 7 4 17 2 8 15
21 15 23 25 6 8 0 23 8
ElM
SINIOITISIEICIUIRIE
4 12
15 7
B
4
18 13 14 19 18 4 2 20 17 4
17 2 8 15 7 4 17 2 8 15
19 19 12 9 15 22 8 25 8
Teks-asli : This cryptosystem is not secure
Kunci : (2.8. 15.7, 4, 17)
66
antar IImu Kri
A I 8 I C I DIE I FIG I H
J IKILIM
o I 1 I 2 I 3 I 4 I 5 I 6 I 7 I a I 9 110 111 /12
N 0 P Q R STU V W x y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Kunci dengan 6 huruf kode jika ditukar dengan angka akan menjadi K 0= (2. 8,
15,7,4.17), dan reks-aslinya "This Cryptosystem is Not Secure",
K\05ik
67
4.VU \1URUf
Ide dasarnya adalah dengan menggunakan kode Kaisar, tetapi Jumlah per
geseran hurufnya berbeda-beda untuk setiap periode beberapa huruf tertentu,
Untuk mengenkrlpsi p e ~ a n dengan kode Vegenere digunakan tabula
(disebut juga bujUIsangkar Vigenere; seperti gambar di bawah ini:
ABC D E F G H I
A A'BCDEFGHI J
K L M N 0 r Q R S T U V W X Y Z
n B C D E F G H I J K L M N 0
p
Q R S T U V W. X Y Z A
C C D E F G H I
J K L M N 0
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 0
p
Q R S T U vlwx
y
Z A B Cl
E E F G H I J
K L M N 0 r Q R S T U V W X Y Z A B C D
F F G H I
r
K L M N 0 I' Q R S T U V WX Y Z A B C D E
G G H I J K L M N 0 I' Q It S T U V W X Y Z A B C D E F
H H I J K L M N 0 P Q R S T U V WX Y Z A B C D E F G
I J K L MN o l' Q R S T U V W X,Y Z A B C D E FG
~
c - - f-
J K L M N 0 l' Q R S T U V WX Y Z A n C D E F G H I '
-
i
K L MN o l' Q R S T U V W X Y Z A B C D E F G H I
J-.
G ITT
e-
L M NO l' Q R S T U VW X Y Z A B C D E F
J
K
I
K J
u K
11 L
~
N 0 \' Q R S T U V W X Y Z A n C D E F G H I
J
K L
N 0 I' Q It S T U VW X Y Z A B C D E F G H I J K L M
o l' U V WX Y Z C D E F~ H
.
Q R S T A B I J K L MN
I' Q It S T U VW X Y Z A 11 C D E F G H
ri
J K L M N 0
C M
N
0
l'
Q
S
It S T U VW X Y Z A B C D E F G H I
J
K L MN o I'
R S T U V W X Y Z A n C D E F G H I J K L M N 0 r Q
f-
T S U V WX Y Z A B C D E F G H I J K L M N o r Q It
f- -I .-I-
It
S
T T U VW x y Z A B C D E F G H I
J
K L MN 0 I' Q It S
U U v WX Y Z A B C D E F G H I
J
K L MN o r,Q It s T
V VW X Y Z A B C D E F G H I
J
K L MN o I' Q R S T U
._.
W WX Y Z A B C D E F G H I
J
K L MN o r
.R
It S T U V
x x Y Z A B C D E F G H I
J
K L M N 0 r Q It S T U V W
Y Y Z A B C D E F G H 1 J K L M N o l' Q It S T U V WX
Z A 11 C D E F G H I J K L M N 0 I' Q R STU V,W x Y
-_. .. ____. ___. __ . __ .. _ _. _ L.. ........c __.
Z
0 S Y S T
14 18 24 18 19
7 4 17 2 8
21 22 15 20 1
19 22 25 19
Teks-kode : VPXZGIAXIVWPUBTTMJPWIZITWZT
Untuk melakukan dekripsi juga bisa menggunakan kunci yang sarna dengan
modulo 26,
recta
I'laintext
J K L M NOr Q R STU V W X Y Z
Tabula recta dig:makan untuk memperoleh teks-kode dengan menggunakan
kunci yang sudah ditentukan, Jika panjang kunci lebih pendek daripada
panjang teks-asli maka penggunaan kunci diulang. Secara matematis enkripsi
dengan kode Vigen ere bisa dinyatakan sebagai:
E(pi) k(i mod m))
68
69
Pengantar IImu Kriptografi
dengan:
huruf ke-i dalam teks-asli
kn huruf ke-n dalam kunci
m panjang kunci. dan
V(x,y)
huruf yang tersimpan pada bans x dan kolom y pada tabula
recta,
Contoh kode Vigenere adalah sebagai berikut:
Teks-asli :" KEAMANAN DATA MENGGUNAKAN CIPHER VIGENERE"
Kunci : "KRIPTOGRAFI "
Dengan menggunakan algoritma kode Vigenere maka akan didapat teks-kode
sebagai berikut :
UVIBTBGE DFBK WVVVZCTRKFV FZOTGSXHE HQZYMP
Car a menentukan teks-kode pada sistern ini, pad a tabula recta bisa dilihat
bahwa posisi horizontal merupakan teks-asli dan pada posisi vertikal adalah
kunci, Jika teks-asli huruf uK" maka lihat posisi huruf K pada teks-asli tabula
recta dan posisi huruf UK" pada posisi kunci jika huruf pertama kunci juga
kebetulan uK". Jika sudah menemukan. tarik gans lurus ke bawah dari teks
asli dan gans lurus ke samping dari posisi kunci maka akan ditemukan huruf
"un, Huruf U inilah yang akan menjadi teks-kode. Begitu seterusnya. Coba
perhatikan contoh berikut ini:
Algoritma Kriptografi K l a ~ i k
Untuk mendekripsi pesan. penerima pesan harus mengetahui kunci yang
digunakan lalu mencari baris huruf manakah yang menghasilkan huruf pada
teks-kode jika kolomnya adalah hurufyang bersesuaian pada kunci. Misalnya.
pad a huruf pertama teks-kode (D). huruf yang bersesuaian pada kunci yang
digunakan adalah D. Dengan melihat tabula recta, huruf D pada tabel untuk
baris huruf Dada pada kolom huruf A. Karena itu huruf pertama teks-asli
adalah A.
Salah satu kelebihan kode Vigenere adalah sulitnya melakukan kriptanalisis
dengan metode analisis frekuemi karena dua huruf yang sarna dalam teks
kode belum tentu bisa didekripsikan menjacli clua huruf yang sarna dalam
teks-asli.
70 71 Pengantar Ilmu Kriptografi
Pada eontoh tersebut, huruf M pad a teks-kode berasal dari huruf H dan T
pada teks-ash.
Gambar memperlihatkan perbandinggan frekuensi kemuneulan huruf pada
suaru teks-asli dan huruf pada teks-kode dengan menggunakan kode
Vigenere.
'2%
Plaintext
2'k
""
11 15 2'
26
"" 1-1--+------------
6%, '",
ftl K I ~ I /
Gambar 4.5 Perbondingon Frekuensi Kemunculon Huruf podo Kode Vigenere
Kelemahan utama kode Vigen ere adalah kuncinya yang pendek dan peng
gunaannya yang berulang-ulang. Jika kriptanalis dapat menentukan panjang
kunei saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa
kode Kaisar.
Metode Kasiski membanru menemukan panjang kunci-kode Vigenere,
Metode Kasiski memanfaatkan keuntungan bahasa Inggris yang tidak hanya
mengandung perulangan huruf, tetapi juga perulangan pasangan huruf atau
tripel huruf seperti "TH", "THE", dsb. Perulangan huruf ini memungkinkan
unruk menghasilkan kriptogram yang berulang.
Contoh:
Teks-asli : CRYPTO IS SHORT FOR CRYPTOGRAPHY
Kunci . abcdab cd abcda bed abedabedabed
Teks-kode : CSASTP KV SIQUT GQU CSASTPIPAQJB
Algoritma Kriptografi Klasik
Pada eontoh tersebut, CRYPTO dienkripsi menjadi kriptogram yang sarna,
yaitu CSATP. Hal ini dikarenakan jarak antara dua buah string yang berulang
di dalam teks-asli merupakan kelipatan dad panjang kunci sehingga string
yang sarna tersebut akan muneul menjadi kriptogram yang sarna pula di
dalam teks-kode. Tujuan dad metode Kasiski adalah meneari dua atau lebih
kr ptogram yang berulang untuk menentukan panjang kunci.
Langkah metode Kasiski adalah sebagai berikut:
1. Temukan semua kriptogram yang berulang di dalam teks-kode (pesan
yang panjang biasanya mengandung kriptogram yang berulang).
2. Hitung j,,-ak antara kriptogram yang berulang.
3. Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi
menyatakan panjang kunei yang mungkin).
4. Tentukan irisan dari himpunan faktor pembagi tersebut. Nilai yang
muncul di dalam irisan menyatakan angka yang muneul pada semua
faktor pembagi dari jarak-jarak tersebut. Nilai tersebut mungkin adalah
panjang kunei. Hal ini karena string yang berulang dapat munetll
bertindihan (coincidence).
Setelah panjang kunci diketahui maka langkah berikutnya adalah menentu
kan kata kunci. Kata kunei dapat ditentukan menggunakan exhaustive kef
search. Jika panjang kunei adalah p maka jumlah kunci yang harus dieoba
adalah 26
P
Namun akan lebih efisien bila menggunakan teknik analisis
frekuensi.
Langkah-Iangkah untuk melakukan analisis frekuensi adalah:
1. Misalkan panjang kunei yang sudah berhasil dideduksi adalah n. Setiap
huruf kelipatan ke-n pasti dienkripsi dengan huruf kunci yang sarna.
Kelompokkan setiap huruf ke-n bersama-sama sehingga kriptanalis
memiliki n buah "pesan", masing-masing dienkripsi dengan substitusi
alfabet-tunggal (dalam hal ini kode Kaisar).
2. Tiap-tiap pes an dari hasil langkah 1 dapat dipeeahkan dengan teknik
analisis fJ ekuensi.
3. Dari hasillangkah 3, kriptanalis dapat menyusun huruf-huruf kunei atau
menerka kata yang dapat membantu memeeahkan teks-kode.
72
Pengantar IImu Kriptografi
Pada abad ke19 dikembangkan aneka algoritma lain untuk kode abjad
majemuk. Algoritma-algoritma tersebut biasanya menggunakan tabel yang
lebih rumit daripada tabula recta dan untuk mengenkripsikan satu pesan saja
butuh waktu yang lama.
4.2.5 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon
Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris
pada Perang Boer (Perang Dunia I) pada awal Abad 20, untuk mengirim
pes an antarmarkas yang ada di Inggris.
Sir Charles Wheatstone
Boron lyon
Gambar 4.6 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan
terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet). Dengan
begitu kunci yang digunakan ada 25 alfabet. Jumlah kemungkinan kunci pada
kode Playfair: 25!=15511.2IO.043.330.985.984.000000
Algoritma Kriptografi Klasik 73
Contch:
Diketahui teks-asli: Di dalam jiwa ya
Uotuk melakukan enkripsi, kode
berikut:
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1. Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter
yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya.
Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom
maka pergerakan karakter dimulai dari huruf kedua secara vertikal
menuju karakter teks-kode yang pertama. Misalnya teks-as1i "di" huruf
keduanya adalah Hi", maka dari "i" yang di dalam matriks bergerak
vertikal mencari huruf yang sebaris dengan "d", maka akan dijumpai
karakter "n" (sebagai teks-kode). Untuk karakter yang kedua, "d" mencari
sisi lain seperti cara karakter Hi" sehingga dijumpai karakter "I". Jadi teks
kode dad "di" adalah "nl"
,S D T A
~
e ~ E R
II!
v
G F I K
-
p
a U M Q
y
W x z V
2. Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom
atau baris yang sarna dan saling berdekatan maka digunakan prinsip
enkripsi atau dekripsi ke bawah atau ke samping. Cootoh, untuk
mengenkripsi "an" maka karakter di sam ping "n" adalah "d" da!). karakter
di sam ping "a" adalah un" sehingga teks-kodenya menjadi "dn".
5 T A N D,
E R C H B,
K F G
] 11
M 0
p
Q
u
V W X Y Z\
.... ~ L
~ I " I . ~ . S T PI
e B H E. B
F G I L K
p
~ Q M a UI
V Y ,W
IX Zl
--
74 Pengantar !lmu Kriptografi
3. Bila karakter-karakter yang dienkripsi berada pada akhir baris maka
diikuti aturan sepeni nomor 2 di atas, tetap! pada kasus baris terakhir,
karakter yang diambil untuk teks-kodenya adalah karakter yang berada
di samping (yang berarti baris pertama setelah baris tersebut).
9/
.I'(
A ~ D
E R C H B
K F G I L
M a
p Q
U
V W x
y
z
-
4. Jika terdapat karakter kern bar untuk pengf.unaan kode Playfair maka
disisipkan satu karakter di antara karakter tersebut. Sebagai contoh "aa",
"ii" menjadi Haza", "izi" tergantung kesepakatan.
5. Untuk kepentingan analisis dari kode Playfair, aturan sam, aturan dua
dan aturan tiga diberi singkatan. Aturan satu ERDL (encipher right,
decipher left) sedangkan aturan dua dan tiga EBDA (encipher below,
decipher above).
Jadi dari teks-ash di atas akan didapat teks-kode di bawah ini:
Teks-asli : Di dalam jiwa yang sehat terdapat akal yang sehat
Teks-kode
NLNEG DKQFYNXDNAKBRNARSTBXCNAGSIZDNAKBRNA
Karena ada 25 huruf abjad rnaka terdapat 25 x 25 = 625 bigram sehingga
identifikasi bigram individual lebih sukar. Tetapi ukuran poligram di dalam
kode Playfair tidak cukup besar, hanya dua huruf, sehingga kode Playfair
tidak arnan. Meskipun kode Playfair sulit dipecahkan dengan anal isis
frekuensi relatif huruf. narnun ia dapat dipecahkan dengan analisis frekuensi
pasangan huruf. Di dalam bahasa Inggris frekuensi kemunculan pasangan
huruf. misalnya pasangan huruf TH dan HE paling sering rnuncul. Dengan
menggunakan tabel frekuensi kemunculan pasangan huruf di dalarn bahasa
Alg,oritma Kriptografi Klasik 75
Inggris dan
dipeeahkan.
teks-kode yang cukup ban yak. kode Playfair akan dapat
4.3 TEKN;K TRANSPOSISI
Di atas kita sudah rnengenal teknik subsitusi kode. Pada bagian ini akan
dibahas teknik perrnutasi (transposisi kode). Teknik ini menggunakan
perrnutasi karakter. yang mana dengan menggunakan teknik ini pesan yang
asli tidak dapat dibaea keeuali oleh orang yang merniliki kunei untuk
mengembahkan pesan tersebut ke bentuk semula. Sebagai contoh:
Ada 6 kunei untuk rnelakukan perrnutasi kode:
J J . l ~ 5 l i
-3-1
5
1116141
2
Dan 6 kune! untuk inversi dari perrnutasi tersebut:
1 234 5 6
36152 4
Seandainya melakukan permutasi terhadap kalimat di bawah ini:
"SAY A SEDANG BELAJAR KEAMANAN KOMPUTER"
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi
kekurangan dad blok bisa ditambah dengan huruf yang disukai. Daiam
eontoh ini ditarnbah dengan huruf X. Hal ini berguna untuk mempersulit
analisis dari kod,' tersebut.
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap
blok akan berubah rnenjadi seperti di bawah ini:
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan:
"YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE"
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap
chiphertext dengan mengikuti kunci nomor dua di atas. Ada banyak teknik
untuk permutasi ini, seperti zig-zag, segitiga, spiral dan diagonaL
1. Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di
bawah im:
A G A A M X
Y S 11 B J R .M 11 0 P R
A E A E A K A, A K L E
5 0 L e 1\ T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
"AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX"
2. Segi{iga: masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke
bawah.
S
A Y A
B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X
L .......
X
~ ..
X X X
._ ..._ .._ .. ,
Teks-kodenya adalah:
"RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX"
3. Spiral. teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke
bawah. Lihat contoh di bawah ini:
S ,A' Y A S E
A M A N
A,
0
E E R X N A
K T X X K N
R U P M a G
1\
J A L E B
Teks-kodenya adalah:
"SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB"
Algoritma Kriptografi Klasik
4. Diagonal. Dengan menggunakan pola ini teks-asli dimasukkan dengan
cara diagonaL Coba perhatikan contoh di bawah ini:
s 0 L E N E
A A. A A K RI
Y N J M '0 'x.
A G A A M, X
S B R N .17 Xj
E E K A U
..
Xi
- '--
Teks-kodenya adalah:
"SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX"
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa di
gunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak
berhak. Kombinasi tersebut merupakan dasar dari pembentukan algoritma
kriptografi yang kita kenaI sekarang ini (modern).
4.4 ENKRIPSI SUPER
Pada pembahasan di atas, semua tergolong kode yang sederhana dan mudah
dipecahkan. Enkripsi super merupakan suatu konsep yang menggunakan
kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk
mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan). Teknik
dati enkripsi super ini mudah dilakukan asal sudah memahami teknik
subsitusi dan permutasi di atas. Pertama yang dilakukan adalah melakukan
enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang
dapat dienkripsi lagi menggunakan teknik transposisi (permutasi). Contoh
dari superenkripsi adalah seperti di bawah ini:
Diketahui teks-ash:
"KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA"
78
79
Pengant(lr Ifmu Kriptografi
1. Menggunakan teknik substitusi kode dengan memakai algoritma kode
kaisar dengan kunei 6.
Teks-kode yang didapat:
"QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG"
2. Menggunakan teknik transposisi kode (permutasi kode) dengan meng
gunakan teknik diagonal permutasi dengan kunei 4.
Q
K T
Q
0 G
N G X
G H H
S K S
A G Z
K 1 0
S T K
K X 0
G X X
G
T
M
S
H
Q
R
J
Z
X
Maka didapat hasil akhir sebagai berikut:
"QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX"
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi
modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma.
4.5 AlGORITMA YANG SEMPURNA
Algoritma kriptografi klasik mempunyai bemuk yang sederhana dan mudah
dipeeahkan. Walaupun saat algoritma itu dirancang, pemecahan kode rahasia
pada umumnya dilakukan dengan menggunakan teknik erial and error hingga
menemukan kunci dari kode tersebut. Pada zaman teknologi komputer
sekarang inL pemecahan kode rahasia menjadi jauh lebih mudah. Coba
bayangkan jika algoritma Vigenere dipecahkan dengan menggunakan eara
f:\\go.\'mo \<'..\p':>gro'\'\ \<..\oo:.\\<.
manual. Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang
diperlukan? Dengan menggunakan teknologi komputer yang bisa mencoba
kemungkinan 10.000 kata kunci per detik, kemungkinan untuk menemukan
teks-asli Vigenere menjadi kurang dad satu hari.
Sebelum membahas kriptografi modem, sangatlah penting unmk mendis
kusikan konsep kode yang tak terpecahkan. Setiap perancang algoritma
kriptografi mengaku bahwa algoritma mereka tidak terpecahkan. Dalam
sejarah, kriptografi yang terkenal adalah Enigma, yang dipakai tentara Jerman
untuk mengirim pesan pada Perang Dunia Kedua. Kode rahasia mereka dapat
dipeeahkan dan saat itu kekalahan dari tentara Jerman dimulai. Mereka
terlalu pereaya ::liri bahwa pesan rahasia mereka tidak akan bisa dipecahkan
oleh orang lain.
Begitu juga dengan Ratu Mary dari Skotlandia yang menggunakan suatu
varian kode subsitusi untuk mengirim pesan rahasia pada Abab 16. Surat
rahasia ini dikirim ke komplotannya yang berisi reneana Ratu Mary untuk
terbebas dari hukuman dan reneana pembunuhan atas Ratu Inggris, Elizabeth.
untuk mendapatkan tahtanya. Di perjalanan pesan rahasia tersebut direbut
dari tangan kurir dan kode rahasia tersebut berhasil dipeeahkan oleh staf
istana sehingga rencana untuk membunuh Ram Elizabeth gagal total
sementara Ratu Mary kemudian dihukum paneung. Hal itu mempakan
pelajaran yang berharga di dalam dunia kriptografi.
Dari dua kisah di atas dapat disimpulkan bahwa suatu algoritma kriptografi
bisa dipecahkan jika algoritma 1m memakai metode yang statis. Pada umum
nya algoritma kriptografi tidaklah sempurna,
algoritma yang lebih baik dan mempunyai s
dipeeahkan adalah one time pad(OTP).
tetapi
edikit
untuk
kemun
mendapatkan
gkinan untuk
4.6 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke
penerima dengan menggunakan sistem kode untuk membuat pesan tersebut
tidak bisa dipahami oleh pihak ketiga. walau pun pihak ketiga bisa meng
intempsi transmisi dari sistem pengiriman pesan. Oleh karena itu diperlukan
algoritma yang dapat menjamin pesan tersebut, walaupun pesan jatuh ke
pihak ketiga. Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak
ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80
81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut. Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ. Contoh dari
rahasia yang sempuma adalah seperti kasus di bawah ini.
Seorang direktur suatu perusahaan, sebut saja Mr. X, akan membuat suatu
keputusan serius dalam saham perusahaan. Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut. Jika keputusan
menjual (sell) maka akan mengakibatkan kerugian yang sangat besar. Untuk
mengirim pesan ini ke pialang sahamnya, jika keputusan ini tepat pada
waktunya dan jelas, maka keuntungan besar akan diraih, tapi jika pesan ini
salah oleh pialang sahamnya maka kemungkinan bangkrut menanti.
Pad a waktu pesan ini ditransmisikan tentu ada pihak-pihak yang tidak
senang, yang meneoba menebak dan mengubah pesan yang dikirim.
Kemungkinan ini berhasil 50%, atau sarna dengan gambling.
Mr. X mengirim keputusan dengan menggunakan jaringan publik seeepat
yang ada dalam pikirannya. Pesan yang dikirim ke pialang sahamnya adalah
pesan yang telah dienkripsi. Untuk enkripsi tersebut digunakan subsitusi
kode. Hal ini umum dilakukan untuk mengirim pesan pendek, tetapt pada
pesan tertentu dengan menggunakan subsitusi kode sederhana, panjang dari
pesan mempunyai eiri khas yang unik. Diasumsikan mengetahui
sistem yang digunakan, mengetahui bahwa panjang dari pesiJn tersebut sudah
cukup bagi penyerang untuk dapat mengetahui 100 persen isi pesan
tidak mengetahui kunci dari pesan terse but.
Pilihan yang lain boleh jadi menggunakan sis tern dua kUnci, K1 dan K2.
Diasumsikan pada eontoh ini bahwa algoritma yang dipakai tidak ditentukan.
Untuk kunci K1. teks-kode dari teks-asH "Buy" adalah 0 dan teks-kode untuk
"sell" adalah 1. Untuk menyatakannya ditulis Ekl (Buy) '" 0 dan Ek2 (Sell) = l.
Ekspresi kl (Buy) '"'0 dibaea dari hasil enkripsi "buy" menggunakan kunei K1
adalah O. Kode yang kompleks seperti:
Kunci K2: Ek2 (Buy) = 1, Ek2 (SELL) = 0
Kunei Kl: Ekl =0, Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini:
Kund:!' BUY'. SeU
" KL- {] 1
K2- . ,-1 {]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi, dan penyerang mf'nyimpulkan
bahwa pesan "sell" jika kunci K2 digunakan, at au "Buy" jika kunci Kl. Jika
penyerang mengirim bahwa kunci yang digunakan masing-masing adalah
sarna, mungkin untuk menebak pesan yang ada menjadi 50 persen.
Catatan: Pada prinsipnya setiap penyerang pesan rahasia dan pesan terse but
berhasil diinterupsi maka hanya ada satu pilihan, yaitu menebak isi dari
pesan tersebut setelah algoritma yang dipakai. Jika pesan yang
didapatkan tidak bisa dipeeahkan, lain waktu jika ada pesan yang mempunyai
algoritma yang sarna akan lebih mudah dipeeahkan. Pad a eontoh di atas Mr.
X selalu mengirim pesan dengan algoritma yang sarna. Kemungkinan untuk
diterka oleh penyerang menjadi 100 persen. Sedangkan jika menggunakan
algoritma yang berbeda at au memakai dua algoritma sekaligus dalam
mengirim pesan maka kemungkinan menjadi 50 persen.
Pada situasi real-life, ketika hanya menggunakan nomor (kunci) yang
terbatas untuk suatu pesan dan pada situasi ini risiko pesan yang diterka lebih
besar daripada menggunakan enkripsi yang disepakati oleh kedua belah pihak
(menggunakan enkripsi yang selalu berbeda dalam setiap situasi). Contohnya
adalah penggunaan PIN (Personal Identification Number) dan kartu kredit
atau kartu debit pada ATM (Automated Telling Machine).
PIN hanya digunakan oleh yang memiliki kartu. Jika kartu tersebut jatuh ke
pihak ketiga yang kemudian meneoba untuk menggunakan PIN, ia bisa
berhasil dengan meneoba 10.000 kemungkinan yang ada; kalau ATM tidak
membatasi PIN yang error dalam sekali transaksi. Jika dalam sekali transaksi
hanya diberi 3x peluang untuk mengulangi kesalahan PIN, hal itu juga bukan
sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke
bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk
ditemukan juga eukup besar, hanya saja membutuhkan waktu yang agak lama.
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak
dipublikasikan oleh lembaga yang bersangkutan, karena akan membuat
reputasi mereka menurun di mata konsumen. Perlu diingat bahwa kejadian
seperti ini sudah sering terjadi di Amerika, Eropa maupun di Indonesia.
yang baik di dalam menggunakan kartu kredit, debit atau kanu sejenis
adalah:
1. Jangan pernah memberitahukan PIN ke orang lain.
2. Jangan pernah meneatat dan menyimpan PIN di manapun.
83
82 Pengantar Ilmu Kriptografj
3. Mudah diingat dan unik (bukan tg]. lahir, nomor rumah dan sebagainya).
4. Jangan memberikan kartu ke orang lain.
5. Sebaiknya setelah menggunakan ATM, ulangi dengan memasukkan PIN
yang salah, supaya orang-orang yang tidak bertanggung jawab tidak dapat
memanfaatkannya. Record PIN pada mesin ATM bisa diIacak dengan
menggunakan suatu program kartu kosong.
6. Yang terpenting selalu waspada dari kemungkinan apapun.
Bagaimana sebaiknya menjaga suatu rahasia agar aman? Pada dasarnya setiap
manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya. Jadi
untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang
baik dan juga memikirkan segala kemungkinan yang ada.
4.7 ONE TIME PAD
One time pad berisi deretan karakter kunci yang dibangkitkan seeara aeak.
Pertama ditemukan oleh Mayor J. Maugborne dan G. Vernam rahun 1917.
OTP termasuk dalam kelompok algorirma kriptografi simetri. Setiap kunei
hanya digunakan untuk sekali pakai. Pemilihan kunei harus seeara aeak agar
tidak bisa diproduksi ulang dan membuat lawan tid.lk mudah menerka.
Jumlah karakter kunci sama dengan jumlah karakter yang dimiliki pesan.
Conroh, jika diketahui teks-asli KEAMANAN maka untuk kuncinya bisa
dipakai ZJKEOLFH.
27564 34498 86670 32451..
998123461Q 16843 46662 ...
etc ..
l \ j H ~ S 01 'ral1l,:orr( HUll1tHi' $)
; ~ pai vipap,r Jhm.'. ,'ad, tl1tlr
atfijja(lll "quina viappamHfy
rorufomfy 1'Gfl/r'n4 rmmb(f$.
Gambar 4.7 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama. Satu pad hanya digunakan
untuk mengenkripsi pesan satu kali (one-time) saja. Sekali pad digunakan, ia
dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain.
Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk
mengulang penggunaan kunei selama proses enkripsi.
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere.
1. Enkripsi:.'j = (Pi + kJ) mod 26
2. Dekripsi: ci == (Pi - fa) mod 26
Bila diketahui teks-asli: "ONETIMEP AD"
Dengan kunci: "TBFRGF ARFM"
Diasumsikan A 0, B == 1, ... , Z 25.
Maka akan didapat teks-kode : "lPKLPSFHGQ' yang mana diperoleh sebagai
berikut:
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 '" H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan:
1. Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak.
2. Mendekripsi teks-kode dengan beberapa kunei berbeda dapat
menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya
ear a untuk menentukan reks-asli mana yang benar.
84
Pengantar IImu Kriptografi
Contoh:
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei .. POYY AEAAZX"
Teks-asli yang dihasilkan: SALMONEGGS
Bila ia rneneoba kunci: BXFGBMTMXM
Teks-asli yang dihasilkan: GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau
rnendapatkan teks-asli yang salah, bukan "ONETIMEPAD".
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan, tetapi
dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan
oleh panjang kunei = panjang pesan, sehingga timbul masalah penyirnpanan
kunei, pendistribusian kunei dan masalah pengiriman kunei karena kunei
dibangkitkan seeara aeak, rnaka 'tidak mungkin' pengirim dan penerima
membangkitkan kunei yang sarna seeara sirnultan.
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang
eukup aman untuk mengirim kunei. Saluran ini pada umurnnya eukuD mahal
dan larnbat.
BABV
TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
5.1 PENDAHULUAN
Ada banyak algoritma untuk melakukan enkripsi dan dekripsi pad a
kriptografi. Pada dasarnya ada dua tipe dasar algoritma simetri:
L Blok Kode: Algorima blok kode merupakan algoritma yang masukan dan
keluarannya berupa satu blok dan setiap blok terdiri dari banyak bit
(misalnya 1 blok terdiri dari 64 bit atau 128
2. Aliran Kode: Algoritma pada aHran teks-asH dan teks-kode satu bit atau
byte (kadang-kadang satu bit ksts 32-bit). Pada blok kode, blok teks-asli
sarna dengan blok yang ada pada teks-kode dan menggunakan kunci yang
sarna untuk enkripsi dan dekripsi. Sedangkan pad a aliran kode. bit pada
teks-asli tidak sarna dengan bit yang ada pad a teks-kode.
5.2 BIT-STRING
Kriptografi klasik rnenggunakan sistem subsitusi dan permutasi karakter dari
teks-asli. Pada kriptografi modern. karakter yang ada dikonversi ke dalam
suatu urutan digit biner (bits), yaitu 1 dan O. yang umum digunakan untuk
skema encoding ASCII (American Standard Code for Information
Interchange). Urutan bit yang akan mewakili teks-asli yang kemudian
dienkripsi untuk mendapatkan teks-kode dalam bentuk urutan bit.
Algoritma e n k r i p ~ i bisa menggunakan salah satu dari dua metode. Yang
pertama "natural", pembagian antara aliran kode. di mana urutan dari bit
untuk enkripsi menggunakan met ode bit-by-bit. Metode kedua adalah blok
kode. di mana urutan pembagian dalam bentuk ukuran blok yang diinginkan.
ASCII memerlukan 8 bit untuk mendapatkan satu karakter dan blok kode
mempunyai 64 bit untuk satu blok. Sebagai eontoh sekuen 12 bit:
100111010110. Jika dipeeah menjadi 3 blok rnaka akan didapat 100 111010
106
~ _____!_e:ngantar IImu Kriptografi
100tJai Value
en-I
KunC:1
s-b'l
s-bit
Plaintext B!oCk3mml
Gambar 5.11 Proses Dekripsi Mode OFB
o
BAB VI
ALGORITMA KRIPTOGRAFI MODERN
6.1 PENDAHUlUAN
Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern
sudah menggunakan komputer untuk pengoperasiannya, berfungsi untuk
mengamankan data baik yang ditransfer melalui jaringan komputer maupun
yang bukan. Fal ini sangat berguna untuk melindungi privacy, data integrity,
authentication dan non-repudiation. Di bawah ini akan digambarkan
bagaimana enkripsi modern saling mendukung satu dengan yang lain.
Gambar 6.1 Skema Kriplografi Modern
Pada gambar, antara faktor yang satu dengan yang lain saling berhubungan
untuk mendapatkan keamanan yang dikehendaki, seperti Privacy didukung
oleh Encription, Data Integrity didukung oleh pemberian MAC, Authenti
cation didukung oleh MAC, ChalJenge Response, dan Digital Signature.
Encription terdid dad Symmetric Key, Public Key, dan IVs, sedangkan
Symmetric Key terdiri dari Block Cipher dan Stream Ciphers, sementara
Public Key tedid dari ECC dan RSA. MAC dibentuk dad Hash Function
yang akan menghasilkan Massage Digests. Pseudo Random digunakan untuk
109
108 Pengontor Ilmu Kriptogrofi
IVs, Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards, sedangkan Nonces digunakan untuk menghasilkan Challenge
Response.
6.2 MACAM-MACAM ALGORfTMA KRIPTOGRAFI
MODERN
Kriptografi modern merupakan suam perbaikan yang mengacu pada
kriptografi klasik. Pada kriptografi modern terdapat berbagai macam
algoritma yang dimaksudkan untuk mengamankan informasi yang dikirim
melalu jaringan komputer. Algoritma kriptografi modern terdiri dari dua
bagian:
6.2.1 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna
untuk enkripsi dan dekripsinya. Contoh: Alice ingin mengirim pesan x
dengan aman menggunakan saluran umum kepada Bob. Alice menggunakan
kunci xa yang sebelumnya telah disepakati antara Alice dan Bob. Untuk
mengirim pesan e xa (x) kepada Bob, dia akan mendekripsi teks-kode yang
diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh
akses ke pesan yang diterima. Begitu juga sebaliknya.
Plaintext input Ciphertext Plaintext output
'
.: . :
.,. f
,,/
II
" ...,


!",:/

t
-
.r" Same key
/. (shared secret)
"i' n

Gambar 6.2 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini:
1, Data Encryption Standard (DES),
2. Advance Encryption Standard (AES),
3. International Data Encryption Algoritma (IDEA),
4. AS,
S. RC4.
6.2.2 AlGORITMA ASIMETRIS
Algoritma asimetris adalah pasangan kunci kriptografi yang salah satunya
digunakan untuk proses enkripsi dan yang satu lagi untuk dekripsi. Semua
orang yang mendapatkan kunci publik dapat menggunakannya untuk meng
enkripsi suatu pesan, sedangkan hanya satu orang saja yang memiliki rahasia
itu, yang dalam hal ini kunci rahasia, untuk melakukan pembongkaran
terhadap kode yang dikirim untuknya. Contoh algoritma terkenal yang
menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya, yakni Rivest. Shamir dan Adleman).
Plaintext Input Cipher-text
Plaintext Output
Dmet:iflt keys
ReCipient's
Recipient's
private key
public key
Gambar 6.3 Algoritmo Asimetris
110
Pengantar IImu Kriptografi
6.2.3 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci,
yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi)
unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian
tanda tangan digitai serta melindungi kunci simetri.
EE
'. --"",:'"
-,;,.C
- !,..;, . .

<{t '",...liM;;;:.;'.. ..
User's

(In certlflcate)

Randomly-
Generated
symmetric
"session" key
-tl:r
Recipient's

Session key must be

decrypted using the
Digital envelope
recipient's
contains "session" j
W
key encrypted
using recipient's

:::.1J'J!j :;(J'J
pybllc key
Gambar 6.S Hibrido

..t ."..
Ei'J'J:llSlfj:;l


Other recipient's or
agent's key
Ti[;r
(in certificate)
b
in policy
Gambar 6.4 Hibrido
. <:
....
...
..

Algoritma Kriptografi Modern 1 1 1
6.3 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma
enkripsi yang paling banyak dipakai di dunia, yang diadopsi oleh NISI
(Nasional Institue of Standards and Technology) sebagai stan dar pengolahan
informasi Federal AS. Secara umum stan dar enkripsi data terbagi menjadi tiga
keJompok, yaitu pemrosesan kunci. enkripsi data 64 bit dan dekripsi data 64
bit yang mana saru kelompok saling berinteraksi satu sarna lain.
6.3.1 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst
Feistel untuk kriptografi komputer. Proyek ini berakhir tahun 1971 dan
li
I,
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64
il
bit dan menggunakan ukuran kunei 128 bit. Setelah IBM mengembangkan
I'
sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data
II
Encryption Standard). Proyek ini dipimpin oleh Walter Tuchman. Hasil dari ,I
riset ini merupakan VeTS! Lucifer yang bersifat menentang pemecahan
algoritma kriptografi. :1
ill
Pada 1973, National Bureau of Standard (NBS), sekarang menjadi National
il
Institute of Standard and Technology (NISI), mengeluarkan proposal untuk
Jl
kode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc')grafi sebagai berikut:
'\1
L Algorirma harus bisa memberikan level keamanan yang tinggi
2. Algoritma hal us lengkap dan mudah untuk dimengerti,
3. Keamanan algoritma harus mempunyai kunci, bukan tergantung dari
algoritma yang ada,
4. Algoritma harus aViil1able untuk semua user,
5. Algoritma harus dapat beradaptasi dengan berbagai aplikasi,
6. Algoritma harus ekonomis. Perangkat yang menggunakannya tidak
membutuhkan suatu alat yang sangat canggih.
7. Algoritma harus efisien bila digunakan.
8. Algoritma harus valid.
9. Algoritma harus exportable.
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya, Kingston dan Yorktown Heights,
termasuk Roy Adler, Don Coppersmith, Horst Feistel. Edna Grossman, Alan
Konheim, Carl Meyer, Bill Notz, Lynn Smith, Walt Tuchman, dan Bryant
Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu
diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL
NBS meminta agen Nasional Security Agency (l\SA) untuk melakukan
evaluasi keamanan algoritma terse but dan menentukan apakah pantas
menjadi standar yang dipakai dalam pemerintahan. Pada November 1976,
Data Encryption Standard dipilih sebagai standar yang dipakai pada
pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US
Government Communication. Undang-undang atas penggunaan DES, FIPS
PUB 46 diterbitkan 15 January 1977.
Algoritma DES merupakan salah satu proposal terbaik tahun 1977. Tidak ada
kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang
digunakan dan kotak-S yang merupakan bagian internal dari DES. Selama 20
tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya
diketahui bahwa algoritma DES tidak begitu aman karena DES tidak
memiliki struktur internal yang kuat. DES dievaluasi satu kali dalam lima
tahun. Evaluasi yang pertama, 6 Maret 1987, dan evaluasi yang kedua pada 10
Desember 1992. Tetapi belum ada alternatif untuk menggantikan DES. Pad a
akhir tahun 1990, tepatnya tahun 2001, AES menjadi standar algoritma.
DES merupakan keamanan dasar yang digunakan di seluruh dunia. Oleh
karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya
hingga menjadi suatu sistem enkdpsi yang kuat, baik dari segi password, store
data dan sistem kontrol akses.
6.3.2 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode. DES
beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit teks-asli
menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal
key) atau upa-kunci (subkej;. Kunei internal dibangkitkan dari kunci
eksternal (external key) yang panjangnya 64 bit. Skema global dari algodtma
DES adalah sebagai berikut:
Algoritma Kriptografi Modern
1. Blok teks-asli dipermutasi dengan matriks permutasi awal (initial
permutation atau IP). Bisa ditulis ..\1J '" IP (x) '" l.JJRn, di mana hJ terdiri dari
32 bit pertama dari ..\1J dan 32 bit terakhir dari !?tl.
2. Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali
putaran). Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 ,;; i,;; 16, dengan mengikuti aturan berikut:
Li = Ri - 1
Ri = Li - 1 $ !(Ri-t, Ki),
di mana EB merupakan exclusive-or dad dua. f adalah suatu fungsi dan
Kl, 16, ..., KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K
(Sebenarnya Ki adalah permutasi dari A'). KI, 10., ... , Kl6 terdiri dari
kunci skedul. Putaran pertama dad enkripsi terse but ditunjukkan oleh
gambar di bawah ini:
Gombar 6.6 Putaran Pertllma Enkripsi DES
3. HasH enciphering kemudian dipermutasi dengan matriks permutasi balik
(invers initial permutation atau IP- 1) menjadi blok teks-kode. Ipl ke
bitstring Rl6L16, memperoleh teks-kode y. kemudian y= Ipl(RI6L16).
114 Pengantar IImu Kriptografi
Fungsi f dari masukan pertama argumen A. dengan panjang bitstring
32. dan argumen yang kedua j dari panjang bitstring 48 dan prosedur
keluaran dari bitstring adalah 32 seperti langkah berikut:
1. Argumen pertama A diperJuas ke bitstring dengan panjang 48 menurut
fix dan fungsi ekspansi E. E(A) yang berisi 32 bit dari A. permutasi
dengan cara tertentu dengan 16 bit. sedik'tnya muncul dua kali.
T
,
[ E(A)
F(AJ)
Gambar 6.7 Rincian DES Fungsi f
2. Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit
string B '" BlB1Bt&&B.Bdk.
3. Langkah berikutnya menggunakan beberapa kotak-S Si ... .56. Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15. Dengan memberi
suatu bitstnng dengan panjang 6. seperti B; = bt blblblb;/X. maka akan
dapat dihitung SAB,) dengan mengikuti dua bit bt lx,. tentunya dengan
representasi binari dari row r of 5;' (0 ,; r,; 3), Gan empat bit blfublb;
dengan represemasi binari i dari kolom c of S; (C ,; c,; 15). Kemudian
SABI) didefinisikan sebagai entry SAT, c) yang dituliskan ke dalam binari
dengan panjang bitstring empat. Dengan begitu dapat dihitung Q SAB,).
1,;/,;8.\
Algoritma Kriptografi Modern 1 15
4. Bitstring C= GlGCJGCSo,OG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk i{A, /).
Fungsi f dije1askan pada gam bar di atas. Pada dasamya bens! subsitusi dengan
menggunakan S-box (kotak-S) dengan mengikuti permutasi P. 16 iterasi dari f
yang terdiri dari sis tern kripto.
Data dienkrip dalam biok-blok 64 bit menggunakan kunei 56 bit. DES
mentransformasikan masukan 154 bit dalam beberapa tahap enkripsi ke dalam
keluaran 64 bit. Dengan demikian DES termasuk lama biok kode dengan
tahapan pemakaian kunci yang sarna. untuk dekripsinya.
..]
OAr,. .. \ l'l"...... \.. --',
."",,.... I OA1A.4CAK '"-_..

:=:r':
TAb
Gambar 6.8 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan. yaitu:
1. Teks-asli untuk dienkripsi dengan panjang 64 bit.
2. Kunci dengan panjang 56 bit.
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar
berikut ini:
116 117
Pengantar IImu Kriptografi
Input Plainte)l:l
16811
4' t

Initial P.rmutaa'
Perul.ngan Kata 1
Kata 2
Input Key
r-__
Pllfhan permutasl
P6rmut.aI2}--Erenkunc
K2
Pilihan Permut.a' 2 Pegeaeran kunc
2}
I
c32-b1t:swa
p
_)
c;
-L-
Inyera. dan '\
""rmutas' awol )
.
.......... ........".............
t t
Output Ciphertext
646il

Gombar 6.9 Gomboron Umum Algoritmo OS
Proses dari permutasi inisial (IP) teks-asli ada tiga:
1. Teks-asli Mbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan.
2. Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16
dengan melakukan fungsi yang sarna. yang menghasilkan fungsi permutsi
subtitusi. yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci), masuk ke swap dan menghasilkan pre-output.
3. Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit.
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit:
1. Kunci melewati fungsi dari permutasi.
2. Penggeseran kunci, yang mana akan dipilih perulangan-perulangan
permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki)
yang diproses dengan kombinasi permutasi.
3. Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang
menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit.
6.3.3 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari
permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan
diberi masukan "M":
MR ! MI M2 M4 M7 M3 Ms M6
MI6 M9 Mu MI4 Mil MI2 MIs M
IO
M I9 M2J M24 MIS M21 M22 MI7 M
20
M27 M30 M31 M32 M25 M26 M
29
M
28
Mw M34 MJ7 MJ3 MJ5 1\136 M38 M
40
i
M47 M41 M42 M43 M44 M45 M46 M48i

M49 M52 M54 MSj M50 l MSI MS3

M64 ! MS7 MS9 M63 MS8 M60 M61 M62
Jika M, adalah bilangan binari, kemudian dilakukan permutasi X = IP (M)
seperti di bawah ini:
.
J'v'!5X Mso M42 M34 M26 Mill M
lo M2
M60 M52 M44 M36 M28 M
20 MI2
.. --
M4
--'
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32

M24 MI6 Mg
MS7 M49 M41 MJ3 M
25 M17 M9 MI
---'--c
MSI M43 M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 5
M63 M55 M47 MJ9 M31 M 23 MIS

M71
118
119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)), yang akan
mengembalikan M ke bentuk semula. Di bawah ini adalah tabel dari initial
permutarion (IP), inversi dari permutasi, fungsi dari serta ekspansi
dari permutasi:
Tabel 6.1 Tabel Permu!osi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permuta.i lIP)
Input Bit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit
58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit
17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit
62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllp"t Bit
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit
57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
["put Bit
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit
61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7
L__ -
(0) Inverse Initial Permutasi (11'.')
Input Bit
Output Bit
1 2 3 4 5 I:> 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32
Input Bit
Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit
Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64 Input Bit
Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25
.
(e) Expantion Permutasi (E)
Input Bit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit
32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi!
12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit
22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs; Permu!asi (1')
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma
DES. Pada tabel (a), awal masukan mengalami perubahan permutasi dari 1 bit
ke 58 bit, masukan kedua mengalami perubahan 50 bit dari masukan 2 bit,
dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64. Blok
masukan mengalami permutasi dan kemudian menjadi masukan pada per
hitungan kunci yang akan dipermutasi, tergantung kunci yang dimasukkan.
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari
perhitungan masukan awal diberikan nilai 40 bit, sebagai pre-output sebagai
bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64
bit.
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari
48 bit, yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan
pada masukan 48 bit akan mengalami perubahan menjadi 1 bit.
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit, yang mana
masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit
mengeluarkan keluaran 25 bit.
6.3.4 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal
sebanyak 16 buah, yaitu KI, K2, ... , K16. Kunci internal ini dapat dibangkitkan
sebelum proses enkripsi atau bersamaan dengan proses enkripsi. Kunci
internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna.
Kunci eksternal panjangnya 64 bit atau 8 karakter.
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES
seperti berikut ini:
Input Bit
Oulpu!Bit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit
Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120
121
Pengantarllmu Kriptografi
Tube! 6.2 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit
1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE
Output Bil
57 49 41 33 2S 17 9 1 58 50 42 34 26 11; 10 2
Input Bit
17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32
Output Bit
55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil
33 34 35 36 37 3!; 39 40 41 42 43 44 45 46 47 48
Output Bit
31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil
49 50 51 52 5 ~ 54 55 5 ~
Output Bit
25 21 13 5 2!; 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei
diabaikan, Hasil permutasinya adalah sepanjang 56 bit sehingga dapat
dikatakan panjang kunci DES adalah 56 bit. Selanjutnya 56 bit ini dibagi
menjadi 2 bagian, kid dan kanan, yang masing-masing panjangnya 28 bit,
yang masing-masing disimpan di dalam G dan n:
Gl bertsi bit-bit dari K pada posisi:
57, 49, 41, 33, 25, 17, 9, 1,58,50, 42,34, 26, 18
10, 2, 59,51, 43,35,27,19,11, 3,60,52,44, 36
Dl berisi bit-bit dari Kpada posisi:
63. 55, 47. 39.31, 23, 15, 7. 62. 54, 46,38, 30,22
14, 6,61, 53,45,37, 29,21, 13, 5,28,20, 12, 4
Kemudian kedua bagian digeser ke kiri (left shift) sepanjang sam atau dua bit
bergantung tiap putaran. Operasi pergeseran bersifat wrapping atau round
shift Jumlah pergeseran setiap putaran ditunjukkan TabeI6,3.
Tubel 6.3 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C, Dt) menyatakan penggabungan C dan D. (C.l, Dt,)) diperoleh
dengan menggeser C dan Dt satu atau dua bit. Setelah bit bergeser, (C, Dt)
mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut:
Tubel 6.4 Permutas; Pilihan Dua (PC-2)
Input Bil
1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit
14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil
17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it
26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit
51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32
-
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C, Di) yang
dalam hal ini J(; merupakan penggabungan bit-bit C pada posisi:
14,17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10
23,19, 12, 4,26, 8,16, 7, 27, 20, 13, 2
dengan bit-bit D pada posisi:
41,52,31,37,47,55,30,40,51,45,33,48
44,49,39,56,34,53,46.42,50,36,29,32
Jadi sctiap kunei internal !G mempunyai panjang 48 bit. Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini:
122
123
Pengontor IImu Kriptogrofi
KI
. . I I V, -.::l ( Pennulas; r K
Ie. (, . r. PC-2 .,
1
I - - - - - - - - I - - - - - ~ ~ I ,Pennutasi, .
PC-2 . KI6
Gombar 6.10 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S; : I
:2
3
o
s,
~
~
(I
$, I I
::
;.
(l
s. i I
>
3
o
$ ~ i 1
I ~
3
(I
S" 1
:!
. ~
o
S1 I
2
. ~
o
S8 1
~
I 3
Tabel 6.S DES Kalak-S
n 3 4 5 (, l( 9
14 4 13 ,2 15 II H J W
{) IS 7 4 14 ,2 D I 10 (,
4 I 14 X n (.
,
II IS 12
I ~ 12 8. 2 4 <J 7 5 II
15 I II 14 {. II ) .:I t) 7
3 13 4 7 15 2 II 1-1 l ~ 0
(1 14 7 11 10 .:I D 5 S
13 8 10 1 3 15 4 1 1 ( 6
10 (I 9 14 (, 3 15 5 ( 13
13 7 0 <) 4 6 10 2 It
13 (. 4 <) 8 15 .\ o 11
,
I 10 13 0 (. <) 7 -I 15
7 I:' 14 .\ () Ii <.I 10 2
U !\ II 5 (. 15 o 3 -I
10 (, <) () I ~ II 7 I' 15 I
J 15 0 (, 10 I ~ 9 4
2L! 4 710 II (, N .5
14 II 2 12 4 7 n I 5 n
.,
.:I II 10 U II 15 <)
I I l! 11 7 I 14 J f, 15
12 10 15 <) ; to ~ 0 n
10 15 4 2 7 12 9 (i I
<) 14 15 5 2 x 12 .\ 7 ()
4 3 2 12 <) 5 15 10 11 14
J II I.t 15 0 l-: 1:1 J I::
13011749 I 10 )4 3
I .:I II 13 12 .1 7 14 III 15
6 II I ~ 8 I 4 10 7 !) 5
132l!46L'i II 10 'I
I 15 J3 II 10 7 J 12 5
7 II 4 I 'J I:! 14 206
2 14 7 4 f(I ~ 13 I; 11
iO 11
< 12
12 II
\j ?
;. 14
2 13
10
12 t>
7 12
12 7
:> 14
2 12
14 ~
"
5
2 I'
:. 14
:; II
15
15 10
12
(l 'l
3 4
1: !.j
4 11.1
7
I)
5 C
(. 11
o Ii
3 14
(, II
10 l ~
<) IJ
II 13
5 <I
Y ~
.\ III
10 !l
12 (\
(i <)
<) 3
o 5
II J
I: II
5 10
II 5
II 12
10
,
U
<J
~
IU .J
1-1 7
o II
U
(, 0
.:) 10
1 15
() 5
14 2
5 0
() 14
15 ;\
3 5
1-4
()
:.I
.s
(;
.:)
11
14
1
15
14
2
.j
14
s
2
1-1
s
o
5
:;
.\
II
X
6
8
<)
)
12
\j
5
6
IS
7
~
o
13
II)
5
15
<)
~
I
7
12
15
l)
J
14
'I
(,
14
x
h
D
I
I>
2
l ~
7
,
~
II
124
Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini:
Tabel 6.6 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit
Output Bil
1 2 3 4 5 6 ? 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 :28 15 6 21 Ie 2.'l 15 12 4
Input Bit
Output Bil
17 18 15 20 21 22 2.'l 24 25 26 27 2E 29 30 31 32
26 8 1 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit
OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil
1 2 3 4 5 6 ')
a 9 10 11 12 13 14 15 16
OutputBil
10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit
Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit
OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit
Output Bit
Input Bit
Output Bil
Input Bit
Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71

M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round"
Algoritmo Kriptografi Modern 125
Round 4
Input Bi!
2 , 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit
35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit
Output Bit

331

18

119 I

26

125 I

52

143

31 ') 53
46 4748
22 15 54
InputBll
Output Bit

63
g
23
Round 5
Input Bit
1 2 3 4 5 6 ')
8 9 III 11 12 13 14 15 .1
Output Bit
19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit
17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit
17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii
33 34 35 36 37 38 39 40 41 42 43 44 45 4/i 47 48
Output Bit
47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil
OutputB!t
Input Bit
Output Bit
Input Bit
Output Bit
Round 6
31415161718 14115 I If
57 19 18
31 32


62 38 21
46 47 48
53146121 14 I 5S I 20 1 47129154
Round 7
Input Bit
Output Bit
InputIiI
Output Bit
Input Bit
OutputB!t
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34



39 I 4 I31 1 13 1 38
16
2
32
6.
Input Bit
Output Bit
Input Bit
Output Bil
Input Bit
Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126
Pengantar Ilmu Kriptografi
Algoritma Kriptografi Modern 127
!1_ound 8
Round 12
InputBii
,OutputBif
InputBif
OutputBil
Input Bit
OutputBil
1 2_ 3 4 5 6 ']
8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 2.0 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
'l 21 14 53
Input Bit
outputml
InputBii
-9utp\!t Bif
'InputBiI
()utput Bil,
2
13 16
50 43
29130131132
23 ::2 61 12
45 46 47 4li
6213645
InputBil
OutputBii
Input Bi!
-OutputBil
,lnputBil
OutputBii
1 2 3 ;I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23, 24 25 21i 27 28
10 60 25 :3 2 58 49 43 5S 30 37 2.0
33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 ;I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32
,
6 45 63,
45 46 47 48
46 28 53 29
Round 11
6 / '] I. 8 /,9 /10 /11 /12
3 /19 /43117/60134 /57
22 / 23 I 24 1251 26 I 27 / 28
51/42133127139114/21/ 4154
37 / 38 139/ 40 I 41 I 42 I 43 144
15 /38 155145 / 2B I 6162 131
Input Bit 1 2. 3 4 5 6 - 7' a !l 10 11 -1:;2 '13141.,5 "16
Output Bit, 9 50 33 59 19 52, :3' 27:,'1', '44' 18. 14i,'2 , '34 "25, 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ,2930:3132'
Output Bil : 43 5'7 58 36 35 26 ,17'11" 23 61 5
Input Bit-, , 33, 34 35 36 37 3S ,39 40,.41' 424344:
Output BiI: 6 54 20, 30 62 22'39 29 :'12 53 46 15 '146321128
Round 13
Input Bit
1 2 3 4 5 6 '7' ,8 9 10 11 ,12 13' ,14, '15 16,
Output Bit
58 34 17 43 3 36 52 'IIi 50 57 '2
25: ,51 ,18 9 44
Input Bit
11 18 '19 20 21 22 23 24 25 '26 27: 28 29 30 '31' 32
Output Bit
27 '41 42 49 19 10 1 6C -,. 45 20 39 '22' 21 '28' -15
Input Bit
33 34 35 36 37 3S 39 40 4i ,42 43 44 ,45 46 ,47 48
Output Bil
53 3S 4 14 46 6 23 13' '63
-'37
30 62' 6f 47 5' 12
Round 1.4
Inl'ut Bit
Output Bit
Input Bit
Output Bit
Input Bit
Output Bit
6 1 7111::' 12 16
42 52 149 I 36 160 ,57
17 21 1221231.24:1251261271/ 28 ,32'
11/25 126 1331 3159/501 44 /.54,/.29/4 62
33 I :U'l 351 36 I 37 / 3B /.39140 1,4H42 143, ,47148
37122155 161 130153 L7123 147:/,21114 20163,
Round 15
Input Bit
Output Bil
input Bit

Input Bit'
Output BlI
21
"ound
Input Bit> 'j:i::Z;" 3 4 '5, '6' :,7: '$'-1:$'\ "1.0 11.1Z ,::"3 14 '15'16.
Output Bit, ;,-,,< 18 59 42 .3 ,5725' ;41 36:1(1 17, 27: 50,'11 43 34 ,,33
Input Bit -17, '1819 20 21' 22' '23 '2,.(,'25:, ,26 27 za,. :29, 3C31 32'
Output, Bit ' '521' 2 '9 4435 26' ','5' 47 62 "45 :12 5S3S
,lnput.BU
Output Bit
Input Bit
QutputBil
JnputBil
OutputBil
InputBil
OutputBil
2/3/4/5/6
57133/52/42/2/35
17 lIB /19 120 / 21 /22
26111 141 115 /18 I 9
33 36 38
54 IS ']
Round 10
128
129
Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul
dengan cara RI6 , ...... , ........ RI dan akan mengeluarkan keluaran teks-asli.
Di bawah ini iterasi algoritma DES:
""lIt 32 ait ... ,. 32 Bit ..
... 28 Sit .. ... 28 ait ..
LJ.I
RIt
CI.l Ol.!
I
L
Expan.'
t
Pf'g,..n
,
P"g.,enl1l
PHmllltl
(E.Tabl.,
48 Bit
f
.
i XOR..
48 BI1
Kl
.
___:__
,
P.rmuh,.,
(P!!lhln d.rl
Permut" 2)
48 Bit
.. _
Subtftu.1 (S-bo.)
. 32 Sit
_.....f
Permubl (P)
: 32 Bit
,
,.: XOR
,
f
T
.... LJ R. CI
01
Gambar 6.11 Algoritma DES
6.3.5 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal.
biok teks-asli mengalami 16 kali putaran pengkadeall. Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan
sebagai:
L RJ-I
Ri L-I EEl f(R,-I,.f(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES:
Bila diketahui teks-asli dalam heksadesimal:
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal):
133457799BBCDFFl
Kunei, dalam binari, tanpa p,lrity-check bits, adalah:
00010010011010010101101111001001101101111011011111111000.
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro
biner):
Lo 11001100000000001100110011111111
L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan sebagai berikut:
J::(/-(Q} ;:::: 01 11 lOlOOOOlUlOlOlOI01010ll 11010000i"OTOIO lO HllQ 1
KI
::: 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0/<' '=" 011000010001011110111010100001100110010100100111
I Sbo);, outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(Ro.K.) 00100011010010]01010100110111011
= RI
=: 11101111010010100110010101000100
E(R1 ) 011101011110101001010100001100001010101000001001
K, 011110011010111011011001110110111100100111 100101
I S(R!) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ
SOOx outputs 11111000110100QOOOIII01010101110
f(Rs. K2) OOllll00WI010111()OOOI1110100011
L.) = R, - 110011VOOOOOOOOIOl11011100001001
E(R,) ITIOOIOllOUOOOo{)OOOOOOI010l11010111010000l0l(10l1
""
K3
=
01010101111111001000101001000{)10110011111oo11001
_.
E(R2) EEl K3 101100000111110010001000111110000010011111001010
Soo:o. ootPV!$ 00100111000100001110000101101111
f(R'l,K3} ::: 01001101000101100110111010110000
1 = R3 :::: 10100010010111000000101111110100
131
Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001
011100101010110111010110110110110011010100011101
001OO0101110111100JOI11011011110010DI0101011t)IOO
00100001111011011001111100111010
10111011001000110111011101001100
01110111001000100000000001000101

101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000
110001100000010100000011111010110101000110100010
01010000110010000011000111101011 i
0010100oo001001110101101110000l1 Jl
10001010010011111010011000110111
"---------------.._._.._-----------
ll000101010{H)o1001011 111110100001100000110101111 1
011000111010010100111110010100000111101100101111
101001101110011101100001100000001011101010000000
01000001111100110100110000111101 I
10011110010001011100110100101100 I
11101001011001111100110101101001
11110101001010110000111111100101101010110101001]
111011001000010010110111111101100001100010111100
0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111
00010000011101010100000010101101
1000110(}OOOOO I 0 1000111 0000100III
000001 HlO 1001010101 110 1000010000
'----'-----
E(Jh)
K.
E(Rr) (I K,
S-box
J(R7.KII )
L'i/ =RII
E(R.s)
}(9
E(Rs) e }(g
SOO.ll. outputs
}(,,)
LH1;:
- 0000000011000010010 10 WI 0 101111101 000000 10100000
; 111101111000101000111010110000010011101111111011
= 111101110100100001 1011 1110011 1l001l1l01lOI0110! 1
01101100000110000111110010101110
= 00111100000011101000011011111001
= 11010101011010010)00101110010000
... 011010101010101101010010101001010111110010100001
]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000
0001oo0J 000011000101 011 1(111101ll
=;0 ooI0oo100011011001l111000110101O
:; 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) =: 000I000QI000001111111001flI1000001100001111110100
KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KI.o :; 101000010111000010111110110110101000010110111011
Sbox OUIPUt$ 11011010000001000101001001110101
f(I4.K1o) "'" 01100010101111001001110000100010
LII =RIO 10110111110101011101011110110010

Ku
E{RIO } e KII
Sbox outputs
!(Rlo,KII )
Lu Ii, I
E(Ru)
. KI2
ID

S-box outputs
ftRII.Kll)
Lll:::; RI2
.
--"-E(R;;r;---ool]!eiToTOiTfiOn-ffficilofo5Cfifli000000100'1lOOOlfl
}(ll =
(!) KIJ :::
Sbox outputs
f(Ru.}(13} =
14 .:: RIJ =
E(RI3)
K14 :::
E{R(3) (!) K14 :::
S-oox outputs
fCR13.Ku)
RI.
K(R,.)
=
E(R )<DKu :::
S-oox OUlpulS
)
Ll(. =RI!'>
"'"
-=
""
=
001000010101111111010(111110111101101001110000110
at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I
OU 1001100000 1011101000100000001
11100001000001001111101000000010
11000101011110000011110001111000
011000001010101111110000000111111000001111110001
= 011101010111000111110101100101000110011111101001
; 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101
= 110000100\\010001100111111101010
;; 01110101101111010001100U01011000
1001011111000\0111010001111110101011101001000001
10101lOI011110000010101I01l1010110111000101l000 I
1001101011010001 1000101101001111
11011101101110110010100100100010
000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100
OlO! 1111010000111 0110111111100101110011100 111010
010100000101010110110001011110000100110111001110
01100100011110011001101011110001
10110111001100011000111001010101
IIOOOOI010nOl1001001011000001101
111000000101010031011001010010I() I lOOOOOl)l)10l101 1
101111111001000110001101001 I 110lOU11 111100001010
010111111100010111010100011 101111111111101010001
10110010111010001000110100111100
01011011100000010010011101101110
01000011010000100011001000110100
I
------------
132
Pengontor Ilmu Kriptogrofi
'" 001000000110101000000100000110100100000110101000
;;
110010110011110110001011000011100001011111110101
ill
11101011010]0] J J 10001111000101000101011001011101
S-lxJ:r; OUlpUls
10100111100000110010010000101001
KIf - IIOOIOOOlIOOOOO{){))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka
diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal):
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini:
Diberikan teks-asli: COMPUTER
,
;-
:,,:HexadedmaL -;)t!i;:Biner
'.. ' , . ,.' \;
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa:
43 4F 4D 50 55 54 45 52
Teks-asli biner:
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa:
13345779 9B BC DF Fl
Modern 133
Kunei biner:
K 00010011 0011010001010111 01111001 10011011 10111100 11011111
11110001
Dengan initial permutation diperoleh:
xo =IP(x) LoRo
di mana
10: 11111111 101110000111011001010111
Ro: 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan l<i<16
Li Ri-l
Ri Li-I (B f( RH ,Ki)
Ki= PC2(Cn)
C
n
CoDo'"
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110
Kl 000110110000001011101111111111000111000001110010
E(Ro)(BKl 100110110000001011101111111111001010010001110100
Keluaran
kotak-S
10000101010010000011001011101010
F(Ro.Kl) 00101000101100110100010011010001
I
L2=RI 11010111000010110011001010000110
I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101
K2 011110011010111011011001110110111100100111100101
E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001 Keluaran
01010010
--
135 1 Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S
F(RI,K2) 10001011110110011000110000010011
13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001
K:J 010101011111110010001010010000101100111110011001
E(Rl)$K,
000100001000001001111001100001111001101100111000
Keluaran 11010110001111001011011001111111
kotak-S
F(Rl,K:J) 01101111101100101001110011111110
lA=Rl 10111000101110011010111001'11000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001
K4
01110010101011O111O1O11O'.1O11011O01lOlO1O0011lO1
IE(Rl)EDK4 001011011011100000100101000011101111011011101100
Keluaran 00101001110100001011101011111110
kotak-S
F(Rl,K4)

J
Ls=R4 10110100111000101100110100110001
Putaran5
E(R4)
110110101001011100000101011001011010100110100011
Ks
011111001110110000000111111010110101001110101000
E(R4)$lG
101001100111101100000010100011101111101000001011
Keluaran 01000001001111011000101011000011
kotak-S
F(R4,Ks) 10010101001100101101100001000101
u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs)
100101011011110001010110101110101100000111111010
K6
011000111010010100111110010100000111101100101111
E(Rs)EJ:)K6
111101100001100101101000111010101011101011010101
Keluaran
01101101110111000011010101000110
kotak-S
F(Rs.K.6) 00100100000110111111001111111000
.\_.
b=R6
Putaran7
E(fu,)
K7
E(R6)EJ:)K7

Keluaran
kotak-S
F(R6,K7)
La=R7
Putaran8
E(R7)
Ks
E(R7)EDKs
Keluaran
kotak-S
F(R7.KK)
10010000111110010011111011001001
I
110010100001011111110010100111111101011001010011
111011001000010010110111111101100001100010111100
001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100
11100101010010101001100001010001
111100001010101001010101010011110000001010100011
111101111000101000111010110000010011101111111011
000001110010000001101111100011100011100101011000
00001000110110001000001111010101
00000111001110010010100101100001
19=RK
Putaran9
E(Rs)
K9
E(Rs)ffiK9
Keluaran

f----
F(Ra,Ky)
LI()=R9
PutaranlO
E(R9)
KIO
E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001
111000001101101111101011111011011110011110000001
101010100010010111101011111001110001101011010000
01101110111000011010101101001010
11011001001110111010001110010100
00111100011100010011101111000101
100111111000001110100010100111110111111000001010
101100011111001101000111101110100100011001001111
001011100111000011100101001001010011100001000101
00100001011100000100000101101101
00001100000101010110111000100100
10011011110101010111100110001100
-
c-
Keluaran
kotak-S
I---
F(R9,KIO)
LII=RIO
Algorifma Kripfografi Modern 137
136 Pengantar IImu Kriptografi
!
Putaran 11
010011110111111010101010101111110011110001011001
i KlJ

001000010101111111010011110111101101001110000110
E(RIO)EBK" ' 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010
. kotak-S
F(RIl),KII) I 01110001001111101011000001010011
I
01001101010011111000101110010110 ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100
01110101011100011111010110010100011001111[101001

E(RII)EBK'2 010100001101101110101010010100010001101101000101
lKeluaran
01101000000010110011011010101101
kotak-S
F(RJ I,KI2) 10101000011010001000111011101001
f--'
LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010
Ki3
E(R'2)
100101111100010111010001111110101011101001000001
E(R'2)EBKI3 000011011011100000101010000000000101000101001011
Keluaran 11111001110110110010010010110011
kotak-S I
F(RI2,KJ3) 10000110110010111100111111001011
L'4=RI3 11001 0111000010001000'10001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011
.
010111110100001110110111111100101110011100111010
E(R13)EBK14
KI4
101110100011111110111111110100100110010111000001
Keluaran 10111000011111101100010111000001
kotak-S
F(Rn,KI4) 00000101110111010011101001001111
LIS=R'4 00110110011000001100110100101010
Putaran 15
!
E(RI4) 000110101100001100000001011001011010100101010100

101111111001000110001101001111010011111100001010
E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110
01000001001110011111011100100111
kotak-S
F(RI4,K1S)
L16=RIs
10100101001001101110110011101100
01101110101000101010100010110001
I
Putaran 16
E(Rls)
KI6
101101011101010100000101010101010001010110100010
-
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111
10000001011010101111011101001011
kotak-S
F(RIS,K16)
Rio
00101001111101110]10100011001100
00011111100101111010010111100110
Teks-kode biner:
y IpI(RI6L,6)
0101011011110001 11010101 1100100001010010 10101111 10000001
00111111
Teks-kode heksa:
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII:
VfiOEWD?
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
6.3.6 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB, CBC, OFB, dan CFB. Namun
karen a kesederhanaannya, mode ECB lebih sering digunakan pada paket
program komersial meskipun sangat rentan terhadap serangan. Mode CBC
lebih kompleks daripada EBC namun memberikan tingkat keamanan yang
lebih bagus, Mode CBC kadang-kadang saja digunakan,


139
Pengantar IImu Kriptografi
6.3.6 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB, eBC, OFB. dan CFB. Namun
karena kesederhanaannya, mode ECB Iebih sering digunakan pad a paket
program komersial meskipun sangat rentan terhadap serangan. Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang
Iebih bagus. Mode CBC kadang-kadang saja digunakan.
Mode ECB cocok digunakan untuk blok kode. Diberikan urutan XlXl 64
bit blok teks-asli. Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K.
yang menghasilkan suatu blok string teks-kode )'I}'2 ..
Pada mode CBC, setiap blok teks-kode yi adalah x-ored dengan blok teks-asli
berikutnya Xi. I sebelum dilakukan enkripsi dengan kunci L Secara formal
initial vector (IV) 64 bit dan ditetapkan}11 = IV. kemudian dibangun)'l.}'2 ....
dari aturan yl = eA(yi-1 (!) Xi), i <!: 1. Penggunaan mode CBC dapat dilihat pada
gam bar di bawah ini.
,.;0...
encrypl
decrypt
Q
I
Gombor 6.12 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi:: eA(zt'I). i <!: 1. Urutan teks-asli
XlXl adalah perhitungan enkripsi dari Yj:: Xi' (!) Zi, j <!: 1.
Pada mode CFB. dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan
dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode,
kemudian Zj eA' (yt'I), h: 1 sarna dengan mode OFB yi = Xi '" Zi. i <: 1. Untuk
lebih detailnya dapat dilihat pada gam bar di bawah ini.
IIV",
9
rhl--
1r
9
J
encrypt y , y 2
C?Jl
1- N_,. LGJ-8 L ...

decrypt [J [J
Gombar 6.13 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 k 64). 64-bir
bisa dijelaskan I-bit dan O-bit. Feedback mode kadang-kadang digunakan
dalam praktik enkripsi data satu bit pad a waktu yang sarna,
Empat mode operasi blok kode seperti Electronic Code Book (ECB), Cipher
Block Chaining (CBC), Cipher Feed Back (CFB). Output Feed Back (OFB)
mempunyai keuntungan dan kelebihan masing-masing. Mode ECB dan OFB
menukar satu biok teks-asli 64-bit, Xi. karen a koresponden blok teks-kode yi
yang diubah, karena biok teks-kode yang lain tidak diubah.
140
141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES:
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan meng
gunakan bahasa Pascal. bukan listing program secara keseluruhan, supaya
buku ini tidak terlalu tebal.
procedure Enkripsi;
begin
for i:=1 to 64 do
for j:=1 to 32 do L[O][iJ :>.:O[i];
for 1:=1 to 32 do R[O][ij := xQ[i+32];
write(,Plaintext : '); write(plaintext); writeln;
write('Plaintext dIm hex: '); for i:=1 to 8 do
writeln:
writeCKey dim hex : '); for i:=1 to 8 do write(key_.Hex[i]):
writeln;
writeln(, 2 3 4 5');
writel nC 12345671'190 1234567890123456789012345678901234567890');)
write('LO: '); for i : ~ 1 to 32 do write(L[O][i]); writeln;
writc('RO' '); for i:-I to 32 do write(RfOll ill; writcln;
writeln;
( Mulai enkripsi 16 putaran )
for i:=1 to 16 do begin
Round ',i);
( permutasi E (expansion function) J
for i:=1 to 48 do E_
[ E(Ri) XOR Ki J
for j : ~ 1 to 48 do begin
if E_Ri(jJ Ki[ i][iJ then
E_XOR_K[j] := '0'
else
E_XOR_K[j] := '] ';
end;
( B 48 bit dipecah menjadi B1.82,B3, ... 88, masing-masing 6 bit. J
n:= 0;
for i : ~ 1 to 8 do begin
for k:= 1 to 6 do begin
n n + 1;
B(j][kJ E_XOR .. K[nJ;
end;
end;
( menghitung C].C2, .... C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin
baris;= 0;
if 8[jJ(1]='1' then baris := baris + 2;
then baris baris + I,
kolom;= 0;
if8[j][2]='1' then kolom:= kolom + 8;
if BU][3]:' I' then kolom kolom + 4;
if B[j][4Fl' then kolom := kolom + 2;
ifB[mS]='l' then kolom:= kolom + 1;
ifj=l then cc:= SBoxl[baris, kolom):
"2 then cc SBox2[baris, kolomJ;
then cc:= SBox3[baris, kolomJ;
if j=4 then cc := SBox4[baris, kolomJ;
i[;=S then cc SBox5[baris, kolomJ;
then cc:= SBox6[baris, kolom]:
if;=7 then cc:= SBox7[baris, kolom];
then cc SBox8[baris,
for bl to 4 do C[j][kJ := bindigit[cc][k];
end;
[ menggabungkan CI.C2, ... ,C8 )
n : ~ 0;
for j:=1 to 8 do begin
for k:=1 to 4 do begin
n n + 1;
C_All[nJ
end;
end;
( permutasi P J
for j:=l to 32 do F _R_K[j] : ~ C_AlI[P[jJl;
(Li = R(i-l) J
then
else
R[i][jj : ~ '] ';
end;
write('ERi: '); for to 48 do write(E_Ri[jJ); writeln;
write('Ki: '); for j:=1 to 48 do write(Ki[i][j]); writeln;
write('XOR: '); for j:=l to 48 do write(E_XOR_K[j]); writeln;
142
143
Pengantar IImu Kriptografi
writeCsbo: '); for j:=1 to 32 do write(C_All[j]); writeln;
write(,frk: '); for j:=1 to 32 do write(F_R_K[jJ); writeln;
write('Ri : .); for i:= 1 to 32 do write(Rfill il); writeln;
readln;
end;
for j:=1 to 32 do R16L16!il:: R[16)[j];
for j:=ltO 32 do R16L16[j+32]:=
for j:=l to 64 do yU] RI6L16[IPinv[ill;
end;
procedure Dekripsi;
begin
for bl to 64 do xO[i] := y[IP[iJJ;
for i:=1 to 32 do L[0J[i] xO[iJ;
for i:=l to 32 do R[OJ[i] : ~ xO{i+32];
writeCLO: .); for i:=l to 32 do write(L[Olfi]); writeln;
write(,RO : .); for i:=l to 32 do write(R[O][i]); writeln;
writeln;
[ Mulai dekripsi 16 putaran 1
for i:= 1 to 16 do begin
writelnCDekripsi Round ',i);
[ permutasi E (expansion function) 1
for j:=1 to 48 do E_Ri[jJ := Rfi-l
[ E(Ri) XOR Ki 1
for j:=1 to 48 do begin
if E_Rilj] = Ki[17-i][j] then
E_XOR_K[j] '0'
else
E_XOR_K[j] := '1';
..
end;
#\:.
[ 8 48 bit dipecah menjadi 81.82.83... 88. masing-masing 6 bit. J
n:= 0;
for j:= 1 to 8 do begin
for k:= 1 to 6 do begin
n:= n + 1;
8[j)[k] : ~ E_XOR_K[n];
end;
end;
[ menghitung Cl.C2.....C8 dengan kotak-S1
for j:=1 to 8 do begin
baris := 0;
Algoritma Kriptograf; Modern
if 8[j][ 1]='1' then baris := baris + 2;
if B[j][6J='I' then baris baris + 1;
kolom:= 0;
if B[jJ[2J='I' then kolom := kolom + 8;
if 8[j][3J='I' then kolom := kolom + 4;
if B[j][ 4J='1' then kolom := kolom + 2;
ifB[j][5]='l' then kolom:= kolom + 1;
if j=1 then c: SBoxI[baris. kolom];
ifj=2 then cc:= SBox2[baris. kolom];
then cc SBox3[baris. kolom];
ifj=4 then cc:= SBox4[baris, kolom];
then cc SBox5[baris. kolom];
if j=6 then cc : ~ SBox6[baris. kolom];
ifj=7 then cc:= SBox7[baris. kolom];
if j=8 then cc SBox8[baris. kolom]:
for bl to 4 do C[j][kJ := bindigit[cc](kJ;
end;
[ menggabungkan C1.C2 .... ,CB J
n:7 0;
for j:=1 to 8 do begin
for k:=l to 4 do begin
n := n + 1;
C_Allln]
end;
end;
I permutasi P I
for j:=l to 32 do F_R_K[j] :=
[Li R(i-I)]
for j : ~ 1 to 32 do L[iHj] R[i-I)[j];
himng Ri = L(i-I) XOR LR_K J
for i:=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
:= '0'
else
:= '\';
end;
write(,ERi: '); for j;=1 to 48 do write(E_Ri[j]); writeln;
writeCKi : '); for to 48 do write(Ki[iJ[j]); writeln;
write('XOR: '); for j:=1 to 48 do write(E_XOR_K[iJ); writeln;
write('sbo; '); for ;:=1 to 32 do write(C_All[j]); writeln;
write(,frk: '); for j:=l to 32 do writeCCR_K[jJ); writeln;
144
145
Penganfar Ilmu Kripfografi
writeCRi: '); for [032 do writeln;
readln;
end;
for j:=l [032 do R16L16[jJ:=
for j:= 1 to 32 do R16L16[j+32]:= L[ 16][j];
for ):=1 to 64 do
end;
6.4 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES, 3DES lebih aman
dibanding DES, merupakan pengembangan. daTi algoritma DES. 3DES
mempunyai kunei yang lebih panjang (3 x dad DES), Coba perhatikan
gam bar di bawah ini.
Plaintext
Key 2 Key j
Algoritma Kriptografi Modern
Contoh:
Diberikan tiga kunei:
Kl = 0x260bI52f31b51e68
K2 Ox321od61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl. K2, dan K3, Untuk melakukan
perhitungan. eoba lihat di bawah ini:
Putaran Kl
OOOeed9158e9
2 588490792e94
3 54882eb9409b
4 a2aJ06077207
5 280e26b621e4
6 e03038a08be7
7 84867056a693
8 e65a 127 0549
9 2443236696a6
10 a311155eOdeb
11 Od02dl0ed859
12 1750b843f570
13 geOl eOa98d28
14 I a4aOdc85e 16
IS 0931Oc5d42bc
16 53248c80ee34
K2
5alee4b60e98
710e318334e6
e5a8b4ee83a5
96a696124ecf
7e16225e9191
ea906e836569
88e25e6abbOO
245b3af0453e
76d38087dd44
1a915708a7O
2d405fr:lee05
2741ac4a469a
9a09b19d710d
9d2a39a252eO
87368edOab27
30258f25c11 d
K3
03e4ee7e63e8
8486dd46ae65
575a226a8dde
aabgeOO9d59b
98664[413421
615718ea496e
449ge580dbge
93e853d116b1
ee4a 1 fa9f254
27b30c31e6a6
Oalee3geOe87
r:l68788e62d5
84e78833e3c1
521 fl7b28503
6db841ee2706
c9313e0591 e3

Key 1
________----l Enkripsi
Plaint"x!
Key 1 Key 2
(::::J r (::::J (::::J
Deskripsi
Gambar 6.14 Proses 30[5 dengon
S\
U
Ciphertext
K"y3 dJ
DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei, yaitu Kl. K2, K3. Proses kerja dari
3DES. Kl berfungsi unruk enkripsi. K2 untuk dekripsi, dan K3 untuk enkripsi,
atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama
Tahap kedua
Tahap
Dekripsi:
keempat
kelima
akhir
: EKI = Ox7a39786f7ba32349
: DK2 =Ox9c60f85369113aea
: EK3 Oxe22ae33494beb930 C (teks-kode)
: DK3 = Ox9c60f85369113aea
: EK2 = Ox7a39786f7ba32349
: DKI Ox403da8a295d3fed9 P (teks-asli)

You might also like