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 kan pengamanan data yang dikirimkan agar terjaga kerahasiaannya. Pesan ash disebut plaintext, yang diubah menjadi kode-kode yang tidak dimengerti. Enkripsi bisa diartikan dengan cipher atau kode. Sama halnya 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).
,I
il I
,I
'I
I
... 1
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 terse but 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
45
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),
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.
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 hoY;L-".~"
3.3 KRIPTOGRAFI KLASIK
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.
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:
Tahap-tahap proses kriptografi atau sistem penyandian adalah sebagai berikut:
1. Teknik substitusi: Penggantian setiap karakter teks-asli dengan karakter
1. Dibutuhkan algoritma, sebagai urutan dari langkah-langkah untuk
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.
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
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.
Algoritma Kriptografi Klasik
51
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)
4. Polygraph: sam enkripsi dilakukan terhadap lebih dari sam karakter teks ash.
Rumus dekripsinya menjadi seperti berikut:
4.2.1 KODE KAISAR
Dari eomoh di atas. dengan memasukkan kunci tiga. maka:
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.
Plain Text Encoded Text i---'-' DEF ABC
-
Attack
D\NWdfn
C
B I
(C 3) mod (26)
Jika diberikan teks-ash sebagai berikut:
JHPDBRJBDPHQHODQNRUEDQWLGDNVHGLNLWGDQVDPSDL VHND UDQJPHNDUDQJPHQBLVDNDQWUDPDEDJLRUDQJRUDQJNRWDJXG
HJ
-
Seeara lebih detail, eoba perhatikan eontah berikut: A
=
Dengan menggunakan kunci tiga maka akan didapat teks-kode berikut:
----i
Khoor
P '" D(C)
(C K) mod (26)
GEMPA YOGYA MENELAN KORBAN TIDAK SEDlKIT DAN SAMPAI SEKARANG MASIH MENYISAKAN TRAUMA BAGI ORANG-ORANG KOTAGUDEG
Caesar Cipher (ROT3)
Hello
P = D(C)
(
D
E
F
G
H
I
J
K
l
M
N
01 p
Q
II
~
1
U
V
W
X
2
j
~
5
f
I
8
~
Ie
11
12
1J
14 liS
16
17
18
19
20
21
2:l
23 24
i
-
Z
25 '--
Menjadi: u v w x 19 ZC 21
22
2J
)
Z
24
25
A
B
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.
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 B
C D E
F G H I I
J K L M
Peluang 0.082 .015 .028 .043 .127 .022 .020 .061 .070 .002 .008 .040 .024
Karakter N
0 P Q R S T U V
W X Y
Z
Peluang .067 .075 .019 .001 .060 .063
I E
K T
R
0
S M
1* Program.dekr1psi
17.50 10.30 8.70 7.50 5.65 5.10 4.60 4.50 4.50 . 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.
*1
main (int' argo •. char 'argv[J) I ..
FILE *Fin, *Foutj
char p, 'C;
int~'n~ 1, It; Fin ,,·fop41n(argv[ll. "rb"):
if (Fin - NULL)
. printt("Kesalahan dalam mmnbuka %s sebagai berkas ma .. ukan/n••··• Fout. - fopen(arqv[2], Itwb lf ) ; , " printt("\noakripsi %s manjadi , ..... \n", argv[l·J. argvl2J I; printf(".\n") ; printf(tlk : .. ,; scant ("'d". &k);
"hil.. «c - <]
. 02·c~ .010 .023 .001 .020 .001 .......
Frequency kemunculan (%)
file menggunakan Caesar cipher
hneluda <stdio. h>'
.09
Tabel 4.2 Sepuluh Huruf yang Sering Mun(ul dalam Bahasa Indonesia
A N
5~
Listing program untuk mendek,ipsi me yang menggunakan kode Kaisar:
Pada teks bahasa Indonesia, yang paling sering muncul adalah 10 huruf pada tabel di bawah ini:
Letter
A.\~()r\'mo Kr\?'()~ro\\ K\o<;\\<.
I
P -
(e -
k) , 256;
pute (P. Fout);
)
felo..e(Fin) ;
felos.. (~out);
)
Pada sistem operasi Unix. ROT13 adalah fungsi yang menggunakan kode Kaisar dengan pergeseran k = l3. 13
t j ~
'q' .,j
ROTl~
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»
~
~
-
Pengantar IImu Kriptografi
54
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:
A\goritma Kriptografi K\asik
55
Teks-asli
: " MBAH MARIJAN SEKARANG SUDAH MENJADI ARTIS"
Kunei
: "MERAPI"
Teks-kode :" JEMCJMQDFMKSPGMQMKBSUAMqPKFMADMQTDS"
Menggunakan dua kunci:
ENKRlJ'SI MENGGUNAKAN nonl
K1
K2 1 ' 1v 1 '"'I'" 1 ,~ 1"I
Gombar 4.2
Pro~e~
I'ROSES DEKlurSI ROTI3
I" 1.... I .... J
Teks-asli
: '"BELAjAR KRIPTOGRAFI UNTUK MENGAMANKAN DATA"
Kl
: DONY ARlYUS
K2
: YOGYAKARTA
ROT13
Proses dekripsi:
I
Teks-kode : IYKAOAFGFPDJBCFAMPLTJLGRYTCARATGATXAJA Menggunakan lebih dari satu kunei: PLAINTEXT
Kl
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 DONYARIUS. Karena ada pengulangan huruf Y. maka huruf itu tidak dipakai lagi. Menggunakan satu kunei:
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. Blok
1.
~\
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 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:
Metode ini menggunakan pendistribusian per karakter. hampir sama dengan metode biok. Contoh pendistribusian per karakter adalah seperti di bawah
ini:
Teks-asH: NAIK"
K] D () N
"BANJIR MEREDAM JAKARTA
HARGA BAHAN POKOK
, I I ,- ,- rn I'TT I' '''' I"""I" ,,' " , 1' I__ I Y
A
1
TI
<;:
Jl
r'
r: L
t:
.-"'."7
... ,
r.r
n"ow-. ,.,
"""_
~, I 'I '-I
v ,, _., ' _, __ .
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 r ABAH!'Nl li~ I Block 1
Block 2
Block 3
Block 4
Block 5
Illock 6
AIKXXX Block 7
I IR I I
10. K
o
KI
Y
J
f'
n r: r." j TTI-r'I'IJI"/"I"""'''''''''I''I''I'lul'I''IAI~ILI
Hll C
r
A
N
r
K N A A
"
r
K I'
T.
•
•
_...
••
.,,'
.,..
D K C Y N PYA 0
.
N G
~,j 1~,u ~,j 1~,u ~,j 1~,u J,j 1~,u
K2
K3 KJ
Didapat teks-kode berikut: ODGBSI HKNKAY
I
EllKCKN
I I Kl
PDUDlI
I K2
K3
YOYBYI
I I K1
LJCJCH
I I K2
DSCXXX
I K~
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: "ODGBSLHKNKAYEBKCKNPDUDLlYOYBYILJCJCHDSCXX:X"
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 m~makai 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
J\\qo~\'mo \<..t\?'oq~o\\ \<..\o";\\<.
,
59
\
Kli '-' I 'J '''! • ". , " ! • I ~!
v
I ~ ! ~ t - t • , - ! U!
J
)
!.-, -
,m,. ,'<
Jika lebih dari 20, setelah ditambah dengan kunci maka akan dikurangi I - I - "-I ,. 1- ,
K21~~~1EI~ I, ~ IFI~I J-I~I~lol ;IQlnls ITlulwlxlylz I
dengan 26. Misalnya, 22+11= 33 - 26 maka akan didapatkan teks-kode:
7. Setelah dikonversi menjadi huruf
"HPHTWWXPPELEXTOYTRSE" Teks-asli
; We will meet at mid night
Teks-kode : HPHTWWXPPELEXTOYTRSE : 11
Kunci 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 ~7 0, B ~7 1 .. , .. ,. Z ~7 25. Agar lebih jelas, perhatikan comoh di bawah ini: A
M
0
12
N
10
, 13 1 14
15
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 . Ide dari kode Hill adalah dengan mengambil bulat positif, dan P = C 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:
= llxl + 3X2
yl
y2
--,- p
4.2.3 KODE Hill
R
Q
16
17
S
T
U
V
18
19
20
21
W
X
Y
Z
22
23
24
25
(YI'Y2)
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:
Ie\
8xI + 7X2
(j
"j
"
l\
\.
dimlis dalam notasi matriks sebagai berikut:
Teks-asli: "We Will Meet at Mid Night"
Kalimat di atas mendaoat angka dari setiap huruf sebagai berikut:
1\
11
(x"x 2 ) [( 3
i'
)
811
""j -
(j
I'
::;q, -(
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: " \ /
,-
1
kl.l
7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4
(Y)'Y2.
(x) ,x2, ... ,Xm
k2.J
kl.mj k 2,m
k 2•2
k m .2
...
k~'fTJ
o Ii
s'S ~
~\,
-!!, H2
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-'.
A\gorHmo Kriptogroti K\osik
Sebuah contoh untuk memberikan gambaran tentang enkripsi dan dekripsi
dalam kode Hill.
Misalkan kunci yang dipakai adalah:
K=C; ~)
1. Perkalian matriks memiliki sifat asosiatif, yaitu (AB)C '" A(BC).
2.
Im,
Matriks identitas m x m, yang ditulis dengan adalah matriks yang berisi 1 pada diagonal utama dan berisi 0 pada elemen lainnya.
Dari perhitungan di atas diperoleh bahwa:
=( 237 18J 11
K-I
Contoh matriks identitas 2 x 2:
12
=
Misalkan untuk mengenkripsi teks-asli JULY, ada 2 elemen teks-asli untuk
dienkripsi:
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 AA·I
k'A = 1m.
1. (9,20)
Kemudian lakukan perhitungan berikut:
11 81
(9 , 20) ( 3 7 =(99+60 ,72+140)
j
y xK
(xK)KI
=
x(KK·I) '" xlm
X
(11 78)
(11 • 24) 3
Dapat dilihat bahwa matriks enkripsi pada contoh sebemmnya memiliki inversi pada Z26:
fll . 8)-1
l
3' 7
l( 7
18)
23 11
r
Karena
III
l3 ~J
(;3 1
A f
n~"
=(11'7+8'23 l1'18+8'I1J 3'7+7'23 3'18+7'11
=(~
(121+72, 88+168)=(11 . 22) ~ LW
sehingga enkripsi untuk JULY adalah DELW. Untuk mendekripsi dilakukan dengan cara:
7
(3 , 4) ( 23
II
261 2861 ( 182 131) i.:
(3, 4) ~ DE
dan
Contoh:
-
~
2. (11 ,24) ~ L Y
Dengan menggunakan sifat-sifat matriks di atas, maka:
yK·I
61
18) 11
(9,
dan
i -)
(11 •
22{:3
=(11 • 24)
sehingga teks-asli diperoleh kern bali.
1
Ingat bahwa semua operasi aritmetik di atas dilakukan pada modulo 26.
Dekripsi hanya mungkin dilakukan jika matriks K memiliki inversi. Suatu matriks K memiliki inversi jika dan hanya jika determinannya tidak no!.
Pengantar IImu Kriptografi'
62
Namun karena 226 maka matriks K memiliki inversi modulo 26 jika dan
hanya jika gcd(det K, 26)= 1.
det A
'" ~~
:::.c~
'"c..
berukuran 2 x 2, nilai determinannya adalah:
Unruk matriks A
<')
~
al.la2.2 - al.2a2.1
<1:
:t
(det
3 2.2
rKEN1
(10) ( 423) 3 2 1 13
-31,2)
( -32.1
+
r--.+
dan matriks inversi dari A adalah:
31.1
6
3 3
4
?
(,
:I :I
Contoh: K
=:
61
\<.\asik
4
l
B
\-<
~
.~ .;
c ..... "" D...
'iii
3 7
3)
( :I 2 1
Al m
maka
detK
det
~
11
3 (
j
11' 7 8' 3 mod 26
= 77 - 24 mod
=1
(11
=l3
1. sehingga matriks inversinya adalah:
=(;3
_ 1
26
53 mod 26
kemudian 1-1 mod 26
:I
11
Contoh: Kode Hill dengan menggunakan matriks 3 x 3 d
o
~~
+
(1~~\
H)
::
40 + 8 + 39) Mod 26 ( ; ) : : ( 50 + 12 + 39 ::
( 30 + 4 + 25 \60) 8'
::
0+ 16 + 30) 0 + 24 + 30 :: ( 0+ 8 + 20
(i~)
Mod 26::
=
(
0 + 26 + 21 )
0 + 39 + 21 ::
0+13+14
Gn
Mod 25::
(y) : (g) C~1) : (r)
JH I
uee
VIB
ARG
(0) (0 + 2114 + 18 ) ( 34 22 ::I) 1 5 0 + 17 + 12 6 3 3
0+
17
5) (G)
(32) 39 Mod 25:: ( 13 29 3
+ 18
::
N
GND
0
ABB
( 4 2:I) (0) (0 2 3) (5) 6 3 3 3 2 1
3 ( 463 232 :I) 1
33; 312).
Diketahui teks-asli berikut: "KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA"
7
0
I~
:t
( i ~ ~) (~3)
-e
AIK
(11
""
_:i
';j)
+
B
o
:I)
4
2
(,
:I :I 2 1
( :I
1:: 1
::
5
Mod 25
(21) (V)
20
3
23
( 1
MME
(12) + 35 24 ++ 12 12) :: (84 12:: (48 72 + 120 Mod 26 = 4 36 + 12 + 8 56 MHU
(12) 1 = (48+2+60) 72 + 3 + 60 :: 20 36 + 1 + 40
ATR
( i3 2~ ~) 1
+3 0+ +3+ 0+ 1+2
(109 ) 17
(~~J)
38 51) :: (89
: ( 00+58+51 109 0+ 19 + 34 53
+
+
Mod 26::
1
=
U X
(G\
6) = 0)1 15 4 E
VUX
GOE
(15) : (~)
GFZ
~1) (~)
LFB
Mod26=
64
Pengantar IImu Kriptografi AKY
0 ( 3~ 2~ 1~) (1240)
~ 2~ ~) 1
(109 ) 10
72 ) " (92) 102 58
(0) Y
OYG
(Q)
QJN
Mod 26 = (14) 24 = 6 G
= ( 0+38+30) 0 + 57 + 30
o + 19+ 20
= (68) 87 Mod 26 39
(16) 9 13
J
N
Eel
16 + 4 + 24) = 24 + 6 + 24 = G~) Mod 26 (~) =(~) ~~~) (~) ( ( 12+2+16 ~
2 1
65
4.2.4 KOOE VIGEN ERE + 30 20 + " 00 + + ( o + 10 + 48
ATK
( ~
Algoritma Kriptografi Klasik
8
=
SCE
LME "6 :\2 :\) ~ ( 3 2 1
=
Mod 26
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.
CKB
NDE
(
':I 6
2
3
,3 2
~ ) (1I)
"
52+6+12) 78 + 9 + 12 = (70) 99 Mod 26 ( 39 + 3 + 8 50
(18) 21 24
RIT
' 4
2
( 6
:\
\
3 2
~) C~) =
68+16+57) 102+24+57" ( 51 + 8 + 38
~32) 183 97
Mod26= (2) 1 19
AXX
(~ ~ ~) (;;) = 3 2 1
23
(
00 ++46 69 ++69) 69 o + 23 + 46
= (11~ 138 69
Mod 26
SVY
(C)
=
B
CST
T
(L)
(11) 8" I 17 R
LlR
teks-kode dari teks-asli: "KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA" adalah:
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.
"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.
4.2.4.1 ANGKA Teknik subsitusi Vigenere dengan menggunakan angka dilakukan dengan menukarkan humf dengan angka, hampir sama dengan kode geser.
66
A I 8 I C I DIE I FIG I H o
J
IKILIM
I1 I2 I3 I4 I 5 I6 I7 Ia I9
110 111 /12
N
0
P
Q
R
STU
V W x
y
Z
13
14
15
16
17
18
21
24
25
19
20
22
23
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 pe~an dengan kode Vegenere digunakan tabula recta (disebut juga bujUIsangkar Vigenere; seperti gambar di bawah ini: I'laintext
Kunci dengan 6 huruf kode jika ditukar dengan angka akan menjadi K (2. 8, 15,7,4.17), dan reks-aslinya "This Cryptosystem is Not Secure", 0=
T H I S CRY P T 0
S Y S T
19
7
8
18
2
17 24 15 19 14 18 24 18 19
2
B 15
7
4
17
2
8
15
21 15 23 25
6
8
0
23
8
7
4
17
2
8
21 22 15 20
1
67
K\05ik
antar IImu Kri
ABC D E F G H I J K L M NOr Q R STU V W X Y Z 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 I J K L MN o l' Q R S T U V W X,Y Z A B C D E F·G c - f- K J 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 u K K L MN o l' Q R S T U V W X Y Z A B C D E F G H I 11 L L M NO l' Q R S T U VW X Y Z A B C D E F G ITT J K C M R S T U V WX Y Z A n C D E F G H I J K L ~ N 0 \' Q N 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 . 0 o l' Q R S T U V WX Y Z A B C D E F ~ H I J K L MN l' 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 It S T U VW X Y Z A B C D E F G H I J K L MN o I' Q It 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- S S T 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- 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 x __. Y Z Z A 11 C D E F G H- _ I .J K L M N 0 I' Q R STU V,W ........c
~
e-·
ElM
SINIOITISIEICIUIRIE
4
12
B 18 13 14 19 18
4
2
15
7
4
17
19 19 12
9
2
8
15 22
20 17
4
2
15
15
7
4
17
8
25
8
19 22 25 19
Teks-asli
: This cryptosystem is not secure
Kunci
: (2.8. 15.7, 4, 17)
8
J-.
S
._.
Teks-kode : VPXZGIAXIVWPUBTTMJPWIZITWZT
..
Untuk melakukan dekripsi juga bisa menggunakan kunci yang sarna dengan modulo 26,
_ _ _ _.
_ _ _.
__
. __
.. _
_.
_
L. .
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
Pengantar IImu Kriptografi
Algoritma Kriptografi
Kla~ik
69
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: 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
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%
Algoritma Kriptografi Klasik
71
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.
Plaintext
Langkah metode Kasiski adalah sebagai berikut:
""
--+------------
1. Temukan semua kriptogram yang berulang di dalam teks-kode (pesan yang panjang biasanya mengandung kriptogram yang berulang).
1-1
2. Hitung j,,-ak antara kriptogram yang berulang. 6%, ftl
'",
3. Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi menyatakan panjang kunei yang mungkin).
~K
II
/
2'k
""
11
15
2'
26
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
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 frekuensi.
P •
Namun akan lebih efisien bila menggunakan teknik analisis
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
73
Algoritma Kriptografi Klasik
Pada abad ke·19 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.
Contch:
4.2.5 KODE PLAYFAIR
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"
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.
Diketahui teks-asli: Di dalam jiwa yang sehat t erdapat akal yang schat Uotuk melakukan enkripsi, kode Playfair mempunyai beberapa aturan berikut:
,S T
A ~
E R e K F G
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 J yang 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
~ II! I
-v
a
p Q U
V W
x y z
M Sir Charles Wheatstone
D
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".
....
~L
~.
5 T A N D,
S T
E R C H B,
E.
K F G ] 11 M 0 p Q u· V W X Y Z\
K F G I L M a p ~Q UI V ,W IX Y
PI
~I"I.
B e H B
Zl
Pengantar !lmu Kriptografi
74
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'( E R
--
A ~ D C H B
K F G I L M a p Q U V W x y z4. 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 teks-kode yang cukup ban yak. kode Playfair akan dapat dipeeahkan.
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:
JJ.£l~5li
-3-1 51 1161412
Dan 6 kune! untuk inversi dari perrnutasi tersebut:
1 234 5 6 36152 4 Seandainya melakukan permutasi terhadap kalimat di bawah ini: "SAYA 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
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
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.
1. Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im: A
Y A
5
A
G
11
S A
E
J
B
E
0
A
L
A R
.M
M 11
A,
K
e
0
A
K 1\
X P
R
A G A A M, X S B R N .17 Xj E E K A U Xi
E
L
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.
B R K A N K R X X X
S A Y A E L A E A M 0 M P X X X L .......
J A N U T E 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"
77
Algoritma Kriptografi Klasik
. .
-
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
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 G
0 Q G T N G X M G H H S
S K S H
A G
Z
Q
1 0 R
S K T J K X 0 Z
G X X X
K
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.
f:\\go.\'mo \<'..\p':>gro'\'\ \<..\oo:.\\<.
79
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, tetapi untuk mendapatkan algoritma yang lebih baik dan mempunyai sedikit kemun gkinan untuk dipeeahkan adalah one time pad (OTP).
4.6 RAHASIA YANG SEMPURNA 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
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
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 ~iterima 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 peny'~rang 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)
Kunei Kl: Ekl
= 0, Ekl (SELL) = 1
=
0
Ekuivalen ditulis seperti di bawah ini:
Kund:!'
" KL-··
K2- .•
BUY'. {] ,-1··
SeU 1 {]
Algoritma Kriptografi Klasik
81
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 meng~tahui 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.
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.
83
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: "TBFRGFARFM"
Diasumsikan A
0, B == 1, ... , Z
25.
Maka akan didapat teks-kode : "lPKLPSFHGQ' yang mana diperoleh sebagai
berikut:
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\jH~S 01 'ral1l,:orr( HUll1tHi' $)
(0 + T) mod 26
(N + B) mod 26
=
P
(E + F) mod 26
==
K
(T + R) mod 26 (1 + G) mod 26 (M
L ==
P
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: pai vi pap,r Jhm.'. ,'ad, tl1tlr a tfijja(lll "quina vi appamHfy rorufomfy 1'Gfl/r'n4 rmmb(f$.
;~
Gambar 4.7 Solah Salu SenIuk DIP
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:
BABV
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ Kriptanalis meneoba kunei .. POYYAEAAZX" Teks-asli yang dihasilkan: SALMONEGGS
TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
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.
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 enkrip~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
~ _____!_e:ngantar IImu Kriptografi
106 100tJai Value
BAB VI
ALGORITMA KRIPTOGRAFI MODERN
en-I
KunC:1
6.1 PENDAHUlUAN
s-bit
s-b'l Plaintext
Gambar 5.11 Proses Dekripsi
B!oCk3mml
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.
Mode OFB
o
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
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
'· II .:
;"4~'.'~."r..:-~~:~:-~
-t
/.
.,.
·.'Li~·d;j~'ljSj:J: " ... ,
~~
~)
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
•n
f
.
Same key (shared secret)
Cipher-text
Plaintext Output
:
~.~~~~~
,,/
;'.~
.r"
109
Plaintext output
Ciphertext
.~, !",:/
Algorifmo Kriptogrofi Modern
Dmet:iflt keys
ReCipient's private key
Recipient's public key
"i'
Gambar 6.2 Algoritmo Simetris
Gambar 6.3 Algoritmo Asimetris
Pengantar IImu Kriptografi
110
Algoritma Kriptografi Modern
1 11
6.2.3 ALGORITMA HIBRIDA
6.3 STANDAR ENKRIPSI DATA
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.
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.
•
'. -,;,.C --"",:'" . ~. . ~
<{t
EE ~
'~':~:";';'
-
1It~..
'",...liM;;;:.;'..
Ei'J'J:llSlfj:;l
~ User's
~key
!,..;,
:jS'~%:J2/~~~d
(In certlflcate)
.~
'~!jJ~J~~f)·:;i···
~
Randomly- ~Ir' Generated symmetric "session" key
!'!""l';-UI~
..t•.".. ~l
Ti[;r
b
Other recipient's or agent's ~ key (in certificate) in reco~ery policy
Gambar 6.4 Enkrip~i Hibrido
<:
.
...
-tl:r •
....
..
Recipient's
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer. Proyek ini berakhir tahun 1971 dan Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 bit dan menggunakan ukuran kunei 128 bit. Setelah IBM mengembangkan sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data Encryption Standard). Proyek ini dipimpin oleh Walter Tuchman. Hasil dari riset ini merupakan VeTS! Lucifer yang bersifat menentang pemecahan algoritma kriptografi. Pada 1973, National Bureau of Standard (NBS), sekarang menjadi National Institute of Standard and Technology (NISI), mengeluarkan proposal untuk kode standar nasionaL Proposal tersebut memberikan kriteria unruk standar algoritma kripc')grafi sebagai berikut: 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,
~key
f~'" Digital envelope contains "session" key encrypted using recipient's pybllc key
6.3.1 SEJARAH SINGKAT DES
j
Session key must be decrypted using the recipient's ~
W
~J"'" :::.1J'J!j :;(J'J
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.
Gambar 6.S Dekrip~i Hibrido
8. Algoritma harus valid. 9. Algoritma harus exportable.
li I,
il I'
II
,I :1
il il Jl '\1
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.
Algoritma Kriptografi Modern
113
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 = L i - 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:
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:
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. Ip·l ke bitstring Rl6L16, memperoleh teks-kode y. kemudian y= Ip·l(RI6L16).
114
Pengantar IImu Kriptografi
Fungsi f dia~bil 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 ,
[
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.
'1r:=~~;~-
E(A)
OAr,. ~ . \ ~
l'l"...... \.. --',
."",,....
I OA1A.4CAK
~iltJl:!«MI'_'
'"-_..
.]
:=: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. F(AJ)
2. Kunci dengan panjang 56 bit.
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.\
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini:
Pengantar IImu Kriptografi
116
Input Key r-_ _5~6~!~
Input Plainte)l:l
16·811
4' ••
t
Algoritmo Kriptogrofi Modern
117
Proses dari kunci 56-bit: 1.
Kunci melewati fungsi dari permutasi.
UH'~."U~ • • • • ~.···· • • _··~·"
Pllfhan permutasl
Initial P.rmutaa'
2. Penggeseran kunci, yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi.
~Pillhan P6rmut.aI2}--Erenkunc
Perul.ngan Kata 1
3. K2
~rul.ngan Kata 2
Pilihan Permut.a' 2
Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit.
Pegeaeran kunc
6.3.3 PERMUTASIINISIAL
C;.rulan::~.ta~E)-.-~{Pillh.n p",~ulaai 2}
c
0e;;a~~kuncJ
I 32-b1t:swap
_)
-L-'\
Inyera. dan
c; ..........
""rmutas' awol . ,.~
t
)
........" .............
t
Output Ciphertext
64·6il
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": MI
M2
M3
M4
Ms
M6
M9
M IO
Mil
MI2
Mu
MI4
MIs
MI6
MI7
MIS
M I9
M 20
M21
M22
M2J
M24
M31
M32
MR
M7
M25
M26
M27
M 28
M 29
M30
MJ3
M34
MJ5
1\136
MJ7
M38
!
Mw M 40 i ~---'--
M41
M42
M43
M44
M45
M46
M47
M48i
M49
M50
l MSI
M52
MS3
M54
MSj
~~~
MS7
MS8
MS9
M60
M61
M62
M63
M64
~
~.
~~
!
Gombar 6.9 Gomboron Umum Algoritmo O£S Proses dari permutasi inisial (IP) teks-asli ada tiga: 1. Teks-asli M·bit 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.
Jika M, adalah bilangan binari, kemudian dilakukan permutasi X = IP (M) seperti di bawah ini:
J'v'!5X
.
M2
--
--'
MI6
Mg
M42
M34
M60
M52
M44
M36
M28
M 20
MI2
M62
M54
M46
M38
M30
M22
MI4
M6
M64
M56
M48
M 40
M32
M24
MS7
M49
M41
MJ3
M 25
M17
M9
---'--c
M59
MSI
M43
M35
M27
MI9
Mil
M3
Mill
MSJ
M45
MJ7
M29
M21
MI3
~ 5
M63
M55
M47
MJ9
M31
M 23
MIS
M71
M26
~:-"-"--'
Mill
M lo
Mso
~L~
..
M4
MI
118
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 permut~si, serta ekspansi dari permutasi:
Tabel 6.1 Tabel Permu!osi Algoritmo DES Table Permutasi lJntuk DES (al Initial Permuta.i lIP) Input Bit Output Bit Input Bit Output Bit Jllp"t Bit Output Bit ["put Bit Output Bit L __
2
4
7
8
58 50 42 34 26 18 10
2
1
3
5
17 IS 19 20 21
6
9
10 11 12 13 14 15 16
6e 52 44 36 28 20 12 4
6
64 56 4S
40 32 24 16
8
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 57 49 41 33 25 17
9
1
59 51 43 35 27 19 11
3
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 53 45 37 29 21
13
5
63
55 47 39 31 23 15
7
-
(0) Inverse Initial Permutasi (11'.') Input Bit Output Bit
1
2
40
8
3
4
5
I:>
7
9
8
4S 16 56 24 64 32 39
7
47 15 55 23 63 31
17 18 19 20 21
Input Bit Output Bit
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Input Bit Output Bit
36
6
4
46 14 54 22 62 30 37
44 12 52 20
6e 28 35
5
3
45 13 53 21 61 29
43 II 51 19 59 27
52 53 54 55 56 57 58 59 60 61 62 62 64
2
1
(e)
Input Bit Output Bit
22 23 24 25 26 27 28 29 30 31 32
49 50 51 34
42 10 50 18 58 26 33
41
9
.
49 17 57 25
Expantion Permutasi (E)
1
2
3
4
5
32
1
2
3
4
6
7
8
9
10 11 12 13 14 15 16
5
4
5
6
7
8
9
8
9
10 11
Input Bit OutputBi!
17 18 19 20 21
Input Bit Output Bit
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
22 23 24 25 26 27 28 29 30 31
12 13 12 13 14 15 16 17 16 17 18 19 20 21
32
20 21
22 23 24 25 24 25 26 27 28 29 28 29 30 31 32
1
(d) Fungs; Permu!asi (1') Input Bit Oulpu!Bit Input Bit Output Bit
1
2
3
16
7
20 21
4
5
2
8
6
7
8
29 12 28 17
17 18 19 20 21
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.
9
10 11 12 13 14 15 16_
1
15 23 26
5
18 31 10
22 23 24 25 26 27 28 29 30 31 32
24 14 32 27
3
9
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.
10 11 12 13 14 15 16
Input Bit Output Bit
38
119
22 23 24 25 26 27 28 29 30 31 32
62 54 46 38 30 22 14
61
Algoritma Kriptografi Modern
19 13 30
6
22 11
4
25
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:
120
Pengantarllmu Kriptografi
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:
Tube! 6.2 Permutosi Pilihon Solu (PC-I) Table DES Schedule Key
Input Bit Output Bil Input Bit Output Bit
1
2
3
4
5
6
7
57 49 41 33 2S 17 9
S
1 58 50 42 34 26 11; 10
2
3 60 52 44 36 63 55 47 39
Input Bil Output Bit
33 34 35 36 37
Inpul Bil Output Bit
49 50 51 52
5~
54 55
25 21 13 5
2!;
2C 12 4
31 23 15
3!;
39 40 41 42 43 44 45 46 47 48
7 62 54 47 38 30 22 14
6
61 53 45
3
5~
Gl bertsi bit-bit dari K pada posisi:
57, 49, 41, 33, 25, 17, 9, 1,58,50, 42,34, 26, 18 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
Input Bil Output Bit Input Bil Output J3it Input Bil Output Bit
9 10
5
6
7
14 17 11 24 1
5
2 28 15
1
2
3
4
fi
6
1]
12 13 14 15 16
21 10 23 19 12 4
17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
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:
10,
Tubel 6.4 Permutas; Pilihan Dua (PC-2)
9 10 11 12 13 14 15 IE
17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 55 51 43 35 27 IS 11
121
Algoritma Kriptografi Modern
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, 23,19, 12,
4,26, 8,16,
6, 21, 10
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
Pengontor IImu Kriptogrofi
123
Algoritmo Kriptogrofi Modern Tabel 6.S DES Kalak-S n
1
r.
I
X
n
(.
2 14
4 {.
II
7 11
15 10
2
II
.:I
D
9
iO
11
II
13
1-4
IS
J 10 IS
W
<
12
5
()
7
(, 12
12
II
Y
~
:.I
\j
?
;.
14
2
13 10
.\ 10 12
t>
,
I II
7
5
)
.:I 1-1
t)
II 7
l~
0
5
12 7 12
12
o
5
7
:> 2
14 12
II I:
J II 10
14
~
5 II
5
2
5
II
12
.j
I' 14 II
10
,
14
l)
s
J
2
14
15
U <J
1-1
'I
s
(,
12
15
3
I 13
~
(1
14
8. II 4 7
~ (I
13
8
10
1
3
15
10
(I
9
14
(,
3
4 15
1 5
1( (
S 6 13
I
13
7
0
<)
4
6
10
2
It
::
(. 10 I:'
4 13
<)
15
.\
o
11
0
8 (.
14
.\
()
<.I
7 10
-I
(l
13 I 7
I >
U 10
!\ (, J 15 2L! 14 II .:I
II
l!
11 10
i1 I ~
II
<J
<)
5
(.
<)
()
I~
Ii 15 II
0
(,
10
I
4 2
(I
12
1 :!
10 <)
15 14
4 15
.~
4
3
2
o
12 II 7 15 2 5
12
710 4 7 10 U I 14
~
I 7
3
2
15 II
J3 4 14
II I 7
:.
-I
II
(,
15 9 N
n
I
5
II
15
J
f,
0
n
(i
I ()
~
.,
to 9
~
x
12
5
15 l-: I
.\ 10
10 'J 4
I 4
3
I'
;
132l!46L'i
14
7
12
o
15 2
o
7 2 <) 15
.~
1
,
<)
J II I.t 0 13011749 I .:I II 13 12 .1 6 II I~ 8 I 4
I
I
l(
I~
3
S8
H
3
o
S"
4
o
2
Gombar 6.10 Proses Pembangkitan Kunci Internal DES
14
:2
3
KI6
D
7
S1
I--------I-----~~I ,Pennutasi, . PC-2 .
,2
IS I
$~
r
14
{) 4
KI
( Pennulas; K PC-2 . ,
4
S; : I
s. i
-.::l
II
13
;.
V,
(,
15
4
$,
I
5
,2
14
s,
Ie..(,. . I
3
II
1:1 10
7
.5 n
"2 :;
10
<)
15 12
15
(l
'l
3
4
1:
!.j
4
11.1 7
11 J
14
I::
I)
)4
3
5 (.
C
(i
III !l (\ <)
<)
3
IU 1-1
o
.s
(;
13
.:)
II)
11
5 15
14
<)
1
~
15
I 7
~
o
.J
5 :;
7 II U
~
o
.\
II
12 15
14
x h
(,
0
X
.:)
10
6
I
1
8
I>
D
11
()
15 5
o
Ii
14
2
)
'I
3
14
5
0
12
5
(,
II
()
14
\j
,
206
10
l~
15
;\
<)
IJ
3
5
5 6
II
7
14
III
15
10
7
!)
5
10
J
12
I:!
II 7 14
f(I
~
13
I;
11
<)
2 l~
7 ~
124
Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini:
Round 4
Tabel 6.6 Enam Belos Koli Perputoran Perhitungon Kunci Permutasi Choice Two (PC-2) Input Bit Output Bil
1
2
3
4
14 17 11 24
5 1
?
6
8
2 :28
5
9 15
21
Ie 2.'l 15 12 4
26
Input Bit OutputBil
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
8
1€
7
27 2C 13
2
33 34 35 36 37 38 39 40 41
42
43 44 45 46 47 4E
1
2
3
4
5
')
6
a
10 51 34 60 49 17 33 57
2
9 19 42
3
35 2E
25
20 21
44 58 55
1
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 5
36 27 18
53 23 29 61 21
41 22 2E 39 54 37
4
38 63 15 20 45 14 13 62 55 31
3 14151 61 71 1l 2 143 126 152 I 41 I 9 I 25 I 49
13 114 115 lIE 60 27 18
17
17
~
29 30 31 32
36
M
29 63 39 22
33 134 135 136 I 37 I 38 139 I 40
45 46 47 48
2E I 45 115 121 153 113
I 30155
54 147123
Round" 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
I 9 142 I 5a
117 I 27 I 34 1441
2
157 160 1511 50
VIHIHI~lnl22I23I~I25I26I~I:28I~I~I~t~ 31
')
53
~
g
46 4748
63
23
22 15 54
Round 5 Input Bit Output Bit
1
2
3
4
5
6
')
19 611 43 33 58 26 42
III 11 12 13 14 15 .1€
8
9
1
11 18 57 51 41 44 35
34
Input Bit Output Bit
17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
[nputBii Output Bit
33 34 35 36 37 38 39 40 41
17
2
3
47 2S 30
47 30
Round 2
Input Bit Output Bit
InputBll Output Bit
22 23 24 25 26 27 2E 29 30 31 32
17 18 IS
Input Bit Output Bil
331 18 119 I 26 125 I 52 143
9 10 11 12 13 14 15 16
Input Bit Output Bil
Input Bit Output Bit
Input Bit Output Bit
41 52 31 37 47 55 311 40
Round 1 Input Bil OutputBil
35 111 155 149
17 18 15 20 21 22 2.'l 24 25 26 27 2E 29 30 31 32
Input Bit Output Bil
2 , 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Input Bi! Output Bit
10 11 12 13 14 15 16 6
125
Algoritmo Kriptografi Modern
10
4
9
5
36 27 50 29 39 46 61 12 15 54 37
63
45 7
42 43 44 45 4/i 47 48
22 31 2C 21 55
6
62 38
Round 6 Input Bil OutputB!t
31415161718
14115 I If
~V42ll26~
57 19
Input Bit Output Bit
H~n2223~
~
~~~0l134
62 38
Input Bit Output Bit
~36~38~g
46 47 48
14 I 5S I 20 147129154
53146121
18
31 32 21
Round 7 Input Bit Output Bit InputIiI Output Bit Input Bit OutputB!t
I6 I7 I8
16
26 I 59 110 I 34
2
VIHIHI~~2223~
32
2 I 3 52157111
5
a42~WU 36~38~g
39 I 4 I 31 1 13 138
6.
126
Pengantar Ilmu Kriptografi
127
Algoritma Kriptografi Modern !1_ound 8
InputBii ,OutputBif InputBif OutputBil Input Bit OutputBil
1
2_
3
4
5
6
']
8
9
Ie
36 41 60 50 10 43 59 18 57 35
11 12 13 14 15
9
3
Round 12 1~
58 25 52 51
17 U
Input Bit
1
Output B i t ,
9
2.
3
Output Bil Input Bit-, ,
33, 34 35
62 47 45 23 5S 15
Output BiI:
6
28 22 37 46 39
4
'l
21 14 53
Input Bit
:
JnputBil OutputBil InputBil OutputBil
13
16
57133/52/42/2/35
50
43
17 lIB /19 120 / 21 /22
29130131132
141 115 /18 I 9
23 ::2 61 12
33
36
38
45 46 47 4li
54
IS
']
6213645
Round 10
InputBil OutputBii Input Bi! -OutputBil
,lnputBil OutputBii
1
2
3
;I
5 6 7 Ii 9 10 11 12 13 14 41 17 36 26 51 15 35 55 33 11 50 44 34 1 17 18 19 2C 21 22 23, 24 25 21i 27 28 29 30 10 60 25 :3 2 58 49 43 5S 30 37 2.0 6
,
InputBii -9utp\!t Bif 'InputBiI ()utput Bil,
15 16 57 27
2
!l
10 11 -1:;2 '13141.,5 "16
26 27 ~: ,2930:3132'
22 2324-25
43 5'7 58 36 35
26 ,17'11" ·23 61
5
.5li,'~':'37
36 37 3S ,39 40,.41' 424344: ;~146"47148
54 20, 30 62 22'39 29 :'12 53 46 15 '146321128
31 32
6 / '] I. 8 /,9 /10 /11 /12 3 /19 /43117/60134 /57
1
Input Bit Output Bit
2
3
4
58 34 17 43
5
3
Input Bit Output Bit
11 18 '19 20 21
Input Bit Output Bil
33 34 35
'7' ,8
6
22 23 24
27 '41 42 49 19 10
53 3S
4
36 37 3S 14 46
9
10 11 ,12 13' ,14, '15 16,
36 52 'IIi 50 57 '2
6
1
6C
25: ,51 ,18
9
44
25 '26 27: 28 29 30 '31' 32
-,.
45
20 39 '22' ·21 '28' -15
4i
,42 43 44 ,45 46 ,47 48 23 13' '63 -'37 30 62' 6f 47 5' 12
39
40
Round 1.4
6 1 7111::'
12
16
Inl'ut Bit Output Bit
42
52 149 I 36 160
,57
Input Bit Output Bit
17
21 1221231.24:1251261271/ 28
,32'
11/25 126 1331 3159/501 44 /.54,/.29/4
Input Bit Output Bit
62
33 I :U'l 351 36 I 37 / 3B /.39140 1,4H42 143,
,47148
37122155 161 130153 L7123 147:/,21114
20163,
45 63,
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 ;I 61 13 22 15 47 46 28 53 29
38 23 21 62 31 54
Round 11
Input Bit outputml
a
:3' 27:,'1', '44' 18. 14i,'2 , '34 "25, 60
Round 13
2/3/4/5/6
26111
6 - 7'
1718 19 20 21
Round 9
Input Bit QutputBil
5
50 33 59 19 52,
19 2.0 21 2223 24 25 26 27 28 29 30 31 32 2(i 17 44 2 lZ 54 61 13 31 30 6 2C 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 34 15 49 Zl
4
Round 15 Input Bit Output Bil input Bit O~tputBlt
Input Bit'
Output BlI
21
22 / 23 I 24 1251 26 I 27 / 28 "ound
51/42133127139114/21/ 4154 37 / 38 139/ 40 I 41 I 42 I 43 144
Input B i t > 'j:i::Z;"
15 /38 155145 / 2B I 6162 131
Output B i t , Input Bit Output, Bit ,lnput.BU Output Bit
;,-,,<
3
18 59 42 -17, '1819
' '521' 2
4 '5, .3
1~
'6' :,7:
,5725' ;41
'$'-1:$'\ "1.0
11.1Z ,::"3 14 '15'16.
36:1(1 17, 27: 50,'11
43 34 ,,33
20 21' 22' '23 '2,.(,'25:, ,26 27 za,. :29, 3C31 32' '9
4435 26' ~49;:;:K:; ','5' 47 62
"45
:12 5S3S
128
Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 , ...... , ........ RI dan akan mengeluarkan keluaran teks-asli.
32 ait
...
,.
32 Bit
LJ.I
Contah 1 dari enkripsi DES: Bila diketahui teks-asli dalam heksadesimal:
Di bawah ini iterasi algoritma DES: ""lIt
129
Algoritma Kriptografi Modern
...
..
28 Sit
RI·t
.
...
CI.l
L
Pf'g•••
Expan.'
..
ait
Ol.!
I
t
28
dengan menggunakan kunci (heksadesimal): 133457799BBCDFFl
, ,..n
o123456789ABCDEF
P"g.,enl1l
Kunei, dalam binari, tanpa p,lrity-check bits, adalah:
PHmllltl
(E.Tabl.,
f
48 Bit
.
i
48 BI1
XOR..
. _~
Kl _ _ _:_ _~.
00010010011010010101101111001001101101111011011111111000.
,
Dengan menerapkan IP (intiaJ permutation) maka biner):
P.rmuh,., (P!!lhln d.rl Permut" 2)
In dan Ro
48 Bit ~_--L
11001100000000001100110011111111 11110000101010101111000010101010
Lo
.. _
L1
Subtftu.1 (S-bo.)
Ro
. 32 Sit
_.....f
16 putaran untuk melakukan
'~nkripsi
sebagai berikut:
Permubl (P)
J::(/-(Q} KI E(Ro)0/<'
,
: 32 Bit
I S·bo);, outputs
,.: XOR
....
LJ
,
f
R.
CI
f(Ro.K.) L~ = RI
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:
Ri
L-I EEl f(R,-I,.f(j)
=:
011101011110101001010100001100001010101000001001
E(R 1 )
01
6.3.5 PENGKODEAN
RJ-I
'="
01 11 lOlOOOOlUlOlOlOI01010ll 11010000i"OTOIO lO HllQ 1 00011011000000101110111111111100011100QOOIIIOOIO 011000010001011110111010100001100110010100100111 0101 1IOOI00QOOI010IIOI01 100101 11
00100011010010]01010100110111011
11101111010010100110010101000100
T
Gambar 6.11 Itera~j Algoritma DES
L
;::::
:::
K, I
S(R!) ED Kl
=
S·OOx outputs f(Rs. K2) L.) = R,
-
E(R,)
K3
E(R2) EEl K3 S·oo:o. ootPV!$ f(R'l,K3} £1 = R3
011110011010111011011001110110111100100111 100101
0000IIQOOI000100100011011110101101100011111011OQ 11111000110100QOOOIII01010101110
OOllll00WI010111()OOOI1110100011
110011VOOOOOOOOIOl11011100001001
"" ITIOOIOllOUOOOo{)OOOOOOI010l11010111010000l0l(10l1
= _.
::: ::::
01010101111111001000101001000{)10110011111oo11001
101100000111110010001000111110000010011111001010 00100111000100001110000101101111
01001101000101100110111010110000
10100010010111000000101111110100
Pengantar IImu Kriptografi
Algoritma Kriptografi Modern
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
E(I4)
=:
KIO
=
E(I4)
It) KI.o
:;
S·box
OUIPUt$
f(I4.K 1o)
= RIO
LII
.----------~
101110101110100100000100000000000000001000001010 011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 0010100oo001001110101101110000l1 10001010010011111010011000110111 "--------------.._._..
Ku
K. E(Rr) (£I K, S-box O\ltpU!~
J(R7.KII ) L'i/ =RII
E(R.s)
; = =
=
...
}(9
E(Rs) e }(g S·OO.ll. outputs
f(~. }(,,) LH1;: ~
== =;0
:;
0000000011000010010 10 WI 0 10 11111 01 000000 10100000 111101111000101000111010110000010011101111111011 111101110100100001 1011 1110011 1l001l1l01lOI0110! 1 01101100000110000111110010101110 00111100000011101000011011111001 11010101011010010)00101110010000 011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll ooI0oo100011011001l111000110101O 00100100011111001100011001111010
OU 1001100000 1011101000100000001
S·box outputs !(Rlo,K II ) Lu Ii, I
1
E(Jh)
"'" 001000010101111111010(111110111101101001110000110 -= at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I
e KII
E{R IO }
i
ll000101010{H)o1001011 111110100001100000110101111 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
000I000QI000001111111001flI1000001100001111110100 101100011111001101000111101110100100011001001111 101000010111000010111110110110101000010110111011 11011010000001000101001001110101 01100010101111001001110000100010 10110111110101011101011110110010
E(nU.lf·-;;~-OlO110101111111010101011l11010101IIIl101l01001O}
jl
Jl _-----------
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100 II 0 I 0111110 III OI)OOOU I 001110 II 00 11111 01111 00010000011101010100000010101101 1000 110(}OOOOO I 0 1000111 0000100 III 000001 '----'---- HlO 1001010101 110 1000010000
"'"
131
""
=
E(Ru) .
1
=
KI2
~(Rlll ID KJ~ S-box outputs
;
=
ftRII.Kll) . Lll:::; RI2
;;
11100001000001001111101000000010 11000101011110000011110001111000 011000001010101111110000000111111000001111110001 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000 011110111000101100100) 1000110101 110000100\\010001100111111101010 01110101101111010001100U01011000
--"-E(R;;r;---oo l]!eiToTOiTfiOn-ffficilofo5Cfifli 000000 100'1 lOOOlfl
=
}(ll
E(RI~) (!) KIJ
:::
S·box outputs
=
f(Ru.}(13} £14 .:: RIJ
=
1001011111000\0111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000 II 000 11 0000 llOOOlOlO10l0 11010 0000111]0001011000000110100010101010101011110100
E(RI3)
K14
:::
OlO! 1111010000111 0110111111100101110011100 111010
E{R(3) (!) K14 S-oox outputs
:::
010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
fCR13.Ku) LI~::: RI.
K(R,.) KI~
E(R•• )
OUlpulS
j(R14,KI~ )
Ll(.
= RI!'>
= :::
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
132
Pengontor Ilmu Kriptogrofi E(Rl~)
'"
K,~
;;
!qRI~) ill KI~
S-lxJ:r;
OUlpUls
f(Rl~', KIf»
-
RI6
001000000110101000000100000110100100000110101000 110010110011110110001011000011100001011111110101 11101011010]0] J J 10001111000101000101011001011101 10100111100000110010010000101001
IIOOIOOOlIOOOOO{){))OOIIIIIOOIIOOO
Modern Kunei biner:
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001 Dengan initial permutation
00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal):
xo = IP(x)
Ro: 00000000 00000000 00000 II 0 10000011 Enkripsi DES 16 putaran
Diberikan teks-asli: COMPUTER
;- :t.Plairitextr!~~, .. . ,.' \; :,,:HexadedmaL • -;)t!i;:Biner '-~
,
,
Dengan l
~
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
LoRo
10: 11111111 101110000111011001010111
Contoh 2 dari algoritma DES seperti di bawah ini:
'
diperoleh:
di mana
85E813540FOAB405
'
133
= 01000011 01001111 01001101 0101000001010101 01010100 01000101
01010010 Misalkan kunei heksa: 13345779 9B BC DF Fl
Li
Ri-l
Ri
Li-I (B f( RH ,Ki)
Ki= PC2(Cn)
C
n CoDo'" ------------
Putaran 1 E(Ro) Kl E(Ro)(BKl Keluaran kotak-S F(Ro.Kl) L2=RI
100000000000000000000000000000001101010000000110 000110110000001011101111111111000111000001110010 100110110000001011101111111111001010010001110100 10000101010010000011001011101010 00101000101100110100010011010001 11010111000010110011001010000110
Putaran 2 E(Rl)
K2 E(Rl)(BK2 Keluaran
011010101110100001010110100110100101010000001101 011110011010111011011001110110111100100111100101 000100110100011010001111010000011001110111101000 11011100010000111000000011111001
I I
1 3~;
kotak-S
F(RI,K2)
13=Rl
Pengantar lImu Kriptografi
Algoritma Kriptografi Modern
Putaran7 E(fu,) K7 E(R6)EJ:)K7 Keluaran kotak-S F(R6,K7) La=R7
Putaran3
E(R2)
K:J E(Rl)$K, Keluaran kotak-S
F(Rl,K:J)
lA=Rl
010001010111111011110011110001010101010010100001 010101011111110010001010010000101100111110011001 000100001000001001111001100001111001101100111000 11010110001111001011011001111111
~.
01101111101100101001110011111110
10111000101110011010111001'11000
I
E(R7) Ks E(R7)EDKs Keluaran kotak-S F(R7.KK) 19=RK
010111110001010111110011110101011100001111110001
01110010101011O111O1O11O'.1O11011O01lOlO1O0011lO1 001011011011100000100101000011101111011011101100
00101001110100001011101011111110
0011111100111011~OQ011110100OQI
10110100111000101100110100110001
J
E(Rs) K9 E(Rs)ffiK9 Keluaran
110110101001011100000101011001011010100110100011 011111001110110000000111111010110101001110101000 101001100111101100000010100011101111101000001011 01000001001111011000101011000011
F(Ra,Ky) LI()=R9
10010101001100101101100001000101
00101101100010110111011000111101
100101011011110001010110101110101100000111111010 011000111010010100111110010100000111101100101111 111101100001100101101000111010101011101011010101 01101101110111000011010101000110
-
-
11001000110000011110111001101100 11100101010010101001100001010001 111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101 00000111001110010010100101100001 10010111110000000001011110101000 010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
kotak~S
f----
11011001001110111010001110010100 00111100011100010011101111000101
PutaranlO
Putaran 6
E(Rs)
K6 E(Rs)EJ:)K6 Keluaran kotak-S
F(Rs.K.6)
-
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111 11100011011010110000010100101101
Putaran9
Putaran5
E(R4)
Ks E(R4)$lG Keluaran kotak-S
F(R4,Ks)
u=Rs
I
Putaran8
Putaran 4
E(R1)
K4
E(Rl)EDK4 Keluaran
kotak-S
F(Rl,K4)
Ls=R4
10010000111110010011111011001001
b=R6
10001011110110011000110000010011
10001011110110011000101010010000
135
.\_.
E(R9) KIO E(R9)ffiKIO cKeluaran kotak-S I--- F(R9,KIO) LII=RIO
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101 00001100000101010110111000100100 10011011110101010111100110001100
00100100000110111111001111111000 --
-
136
Pengantar IImu Kriptografi !
Putaran 11 ~(Rlo)
i KlJ E(RIO)EBK"
I Keluaran . kotak-S F(RIl),KII)
I LI2=RII
I
I Putaran 12 E(RII) ~2 E(RII)EBK'2
l
Keluaran kotak-S
F(RJ I,KI2)
f--' LI3=RI2
001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001 010100001101101110101010010100010001101101000101 01101000000010110011011010101101
.
E(RI4)
I
E(Rls) KI6 E(RIS)E[)KI6 Keluaran kotak-S F(RIS,K16) Rio
-
101101011101010100000101010101010001010110100010 110010110011110110001011000011100001011111110101 011111101110100010001110010110110000001001010111 10000001011010101111011101001011 00101001111101110]10100011001100 00011111100101111010010111100110
Ip·I(RI6L,6)
Teks-kode heksa: 56 Fl D5 C8 52 AF 81 3F
I 10000110110010111100111111001011
11001 0111000010001000'10001011101
Teks-kode ASCII: VfiOEWD?
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat pada lampiran di akhir bab inL
111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
101110100011111110111111110100100110010111000001
10111000011111101100010111000001
6.3.6 MODE OPERASI DES
00000101110111010011101001001111
00110110011000001100110100101010 !
000110101100001100000001011001011010100101010100
10100101001001101110110011101100 01101110101000101010100010110001
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
100110100111110111111011111110101110101100001010
100101111100010111010001111110101011101001000001
000011011011100000101010000000000101000101001011
11111001110110110010010010110011
Putaran 15
101111111001000110001101001111010011111100001010 101001010101001010001100010110001001011001011110 01000001001110011111011100100111
Putaran 16
y
LPutaran 14 E(R13) KI4 E(R13)EBK14
Keluaran
kotak-S
F(Rn,KI4)
LIS=R'4
Kl~
Teks-kode biner:
10101000011010001000111011101001 00110011101111011111011101100101
Putaran 13 E(R'2) Ki3
E(R'2)EBKI3
Keluaran
kotak-S
F(RI2,KJ3) L'4=RI3
137
~-----
E(RI4)EBKlS Keluaran kotak-S F(RI4,K1S) L16=RIs
010011110111111010101010101111110011110001011001 001000010101111111010011110111101101001110000110 ' 011011100010000101111001011000011110111111011111 01011110000011001101101111000010 I 01110001001111101011000001010011 01001101010011111000101110010110
Algorifma Kripfografi Modern
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,
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.
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi:: eA(zt'I). i
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
,.;0...
I
IV",
encrypt
•••
1- N_,.
encrypl
139
decrypt
9
9
y,
y2
rhl--1rJ
~hl--ICP
~
C?Jl
~ [J
[J
•••
~G.J-8 LGJ-8 L ... ~
Gombar 6.13 Mode UB
decrypt
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,
I
Q Gombor 6.12 Mode
eBe
•••
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
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 te bal. 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 b l 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;
141
Algoritma Kriptograf; Modern
142
Pengantar IImu Kriptografi 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;
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. 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;
[ menggabungkan C1.C2 .... ,CB J
n: 0;
7
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
.
. #\:.
J
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;
143
144
Penganfar Ilmu Kripfografi
[032 do writeCRi: '); for 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;
writeln;
145
Algoritma Kriptografi Modern Contoh:
Diberikan tiga kunei:
Kl
=
0x260bI52f31b51e68
K2
Ox321£od61a7731558
K3
Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
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
Key 2
Key 1
~ ________----l
j
~
S\
U
Enkripsi
Ciphertext
Plaint"x!
Key 1
Key 2
(::::J r Enco;~lon (::::J
K"y3
(::::J
DES
dJ
Putaran 2 3 4 5 6 7 8 9 10 11 12 13 14 IS 16
Kl OOOeed9158e9 588490792e94 54882eb9409b a2aJ06077207 280e26b621e4 e03038a08be7 84867056a693 e65a 127 £0549 2443236696a6 a311155eOdeb Od02dl0ed859 1750b843f570 geOl eOa98d28 I a4aOdc85e 16 0931Oc5d42bc 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7£O 2d405fr:lee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1fa9f254 27b30c31e6a6 Oalee3geOe87 r:l68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
EncryPtlonl
Deskripsi
Gambar 6.14 Proses 30[5 dengon
16 putaran kunci yang eDeok diberikan Kl. K2, dan K3, Untuk melakukan
perhitungan. eoba lihat di bawah ini:
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 ketig~
: EKI = Ox7a39786f7ba32349 : DK2 = Ox9c60f85369113aea : EK3 Oxe22ae33494beb930
C (teks-kode)
: DK3 = Ox9c60f85369113aea : EK2 = Ox7a39786f7ba32349 : DKI Ox403da8a295d3fed9
P (teks-asli)
Dekripsi: keempat kelima akhir