Pengontor IImu Kriptogrofi // BAB III ALGORITMA · PDF fileDigital Signature Algorithm (DSA),...
Transcript of Pengontor IImu Kriptogrofi // BAB III ALGORITMA · PDF fileDigital Signature Algorithm (DSA),...
42 Pengontor IImu Kriptogrofi
BAB III ALGORITMA KRIPTOGRAFI
31 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 Jafar 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 merupashy I kan pengamanan data yang dikirimkan agar terjaga kerahasiaannya Pesan ash disebut plaintext yang diubah menjadi kode-kode yang tidak ill I
Idimengerti Enkripsi bisa diartikan dengan cipher atau kode Sama halnya II
1dengan kita tidak mengerti akan sebuah kata maka kita akan melihatnya di dalam kamus atau daftar istilah Beda halnya dengan enkripsi umuk mengubah teks-asii ke bentuk teks-kode kita menggunakan algoritma yang dapat mengkodekan data yang kita ingini
2 Dekripsi merupakan kebalikan dari enkripsi Pesan yang tclah dienkripsi dikembalikan ke bentuk asalnya (teks-asli) disebut dengan dekripsi pesan Algoritma yang digunakan untuk dekripsi tentu berbeda dengan algoritma yang digunakan untuk enkripsi
3 KUl1ci yang dimaksud di sini adalah kunci yang dipakai untuk melakukan enkripsi dan dekripsi Kunci rerbagi menjadi dua bagian kunci rahasia (private key) dan kunci umum (public key)
45 44 Pengantar Ilmu Kriptografi
Keamanan dari algoritma kriptografi tergantung pad a bagairnana algoritma
itu bekerja Oleh sebab itu algoritma semacam ini disebut dengan algoritma
terbatas Algoritma terbatas merupakan algoritma yang dipakai sekelompok
orang untuk merahasiakan pesan yang mereka kirim Jika salah satu dari
anggota kelompok itu keluar dari kelompoknya maka algoritma yang dipakai
diganti dengan yang baru Jika tidak maka hal itu bisa menjadi masalah dl
kemudian hari
Keamanan dari kriptografi modern didapat dengan merahasiakan kunci yang
dimiliki dari orang lain tanpa harus merahasiakan algoritma itu sendiri
Kunci memiliki fungsi yang sarna dengan password Jika keseluruhan dari
keamanan algoritma tergantung pada kunci yang dipakai maka algoritma ini
bisa dipubliskasikan dan dianalisis oleh orang lain Jika algoritma yang telah
dipublikasikan bisa dipecahkan dalam waktu singkat oleh orang lain maka
berarti algoritma tersebut tidaklah aman untuk digunakan Pada pembahasan
berikutnya akan dijelaskan berbagai macam algoritma kriptografi yang
pernah ada
32 MACAM-MACAM ALGORITMA KRIPTOGRAFI
Algoritma kriptografi dibagi menjadi tiga bagian berdasarkan kunci yang
dipakainya
1 Algoritma Simetri (menggunakan satu kunci untuk enkripsi dan dekripshy
sinya)
2 Algoritma Asimetri (menggunakan kunci yang berbeda ulltuk enkripsi dan dekripsi)
3 Hash Function
321 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 mengshy
gunakan algoritma ini si penerima pesan harus diberitahu kunci dari pesan
tersebut agar bisa mendekripsikan pesan yang dikirim Keamanan dari pesan
yang menggunakan algoritma ini tergantung pada kunci Jika kunci tersebut
diketahui oleh orang lain maka orang rersebut akan dapat melakukan
Algoritma Kriptografi
enkripsi dan dekripsi terhadap pesan Algoritma yang memakai kunci simetri di antaranya adalah
1 Dita 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
322 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 mendeuipsi pesan dari Alice dengan kunci rahasianya
4 Begitu juga sebaliknya jika Bob ingin mengirim pesan ke Alice
46 Pengantar IImu Kriptografi
Algoritma yang memakai kunci publik di antaranya adalah
1 Digital Signature Algorithm (DSA)
2 RSA
3 Diffie-Hellman (DH)
4 Elliptic Curve Cryptography (ECC)
5 Kriptografi Quantum dan lain sebagainya
323 FUNGSJ HASH
Fungsi Hash disebut dengan fungsi Hash saru arah (one-way function) message digest fingerprint 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 hoYL-~
33 KRIPTOGRAFI KLASIK
Kriptografi klasik merupakan suaru algoritma yang menggunakan satu kunci untuk mengamankan data Teknik ini sudah digunakan beberapa abad yang lalu Dua teknik dasar yang biasa digunakan pada algoritma jenis ini adalah sebagai berikut
1 Teknik substitusi Penggantian setiap karakter teks-asli dengan karakter lain
2 Teknik transposisi (permutasi) Dilakukan dengan menggunakan pershymutasi karakter
34 KRIPTOGRAFI MODERN
Kriptografi modern mempunyai kerumitan yang sangat kompleks karena dioperasikan menggunakan komputer Hal ini akan dibahas lebih detail bagian lain
Agorilmo Kriptogrofi 47
35 PROSES PENGKODEAN
Cara kerja sistem penyandian sangat sederhana bisa dianalogikan dengan kayu mesin serbuk kayu Kayu digunakan sebagai bahan baku untuk memshybuat serbuk kayu dan untuk membuat serbuk terse but dibutuhkan mesin pembuatnya Coba lihat gambar di bawah ini
Gambar 31lluslrnsi 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 pemshybuatan serbuk dibutuhkan aksi yang mana aksi adalah kunci dan serbuk kayu adalah teks-kode
Tahap-tahap proses kriptografi atau sistem penyandian adalah sebagai berikut
1 Dibutuhkan algoritma sebagai urutan dari langkah-langkah untuk melakukan
2 suatu nilai yang digunakan pada algoritma sehingga algoritma tersebut bisa bekerja
48 Pengantar IImu Kriptografi
~A~ 1 AlGORllMA KR1P10GRAfl KlAS1K
41 PENDAHUlUAN
Kriptografi sudah dipakai sejak empat abad yang lalu Perkembangan kripshytografi begitu pesat sampai sekarang Untuk mendapatkan pengertian bagaishymana 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
42 TEKNIK SUBSITUSI
Substitusi merupakan penggantian setiap karakter teks-asli dengan karakter lain
A
F
K
p c U X
50 51 Pengantar Ilmu Kriptografi
Terdapat empat istilah substimsi kode antara lain
1 Monoalphabec setiap karakter teks-kode menggantikan salah sam karakter teks-asli
2 Polyalphabec setiap karakter teks-kode dapat menggantikan lebih dari satu maeam karakter teks-asH
3 Monogral sam enkripsi dilakukan terhadlp satu karakter teks-asli
4 Polygraph sam enkripsi dilakukan terhadap lebih dari sam karakter teksshyash
421 KODE KAISAR
Subsitusi kode yang pertama dalam dunia penyanuian terjadi pada pemerinshytahan Yulius Caesar yang dikenal dengan kode Kaisar dengan mengganti posisi huruf awal dari alfabet atau disebut juga dengan algoritma ROT3
Caesar Cipher (ROT3)
Plain Text i----
Encoded Text -ABC DEF ----i
Hello Khoor
Attack DNWdfn-Seeara lebih detail eoba perhatikan eontah berikut
Q
23 24 25 - --
A B ( D E F G H I J K l M N 01 p II ~ 1 U V W X i Z
C I 2 j ~ 5 f I 8 ~ Ie 11 12 1J 14 liS 16 17 18 19 20 21 2l
Menjadi
u v w x ) Z A B
19 ZC 21 22 2J 24 25
Jika penggeseran yang dilakukan sebanyak tiga kali maka kunei untuk dekripsinya adalah 3 Penggeseran kunci yang dilakukan tergantung keinginan pengirim pesan Bisa saja kunei yang dipakai a 7 b 9 dan seterusnya
Algoritma Kriptografi Klasik
Contoh algoritma kode Kaisar Untuk teks-asH diberikan simbol P dan teksshykodenya He dan kunci K Jadi rumusnya dapat dibuat sebagai berikut
C=E(P) = (P+K) mod (26)
Pada eontoh di atas kita bisa memasukkan kunci dengan nilai tiga sehingga menjadi
C=E(P) = (P+3) mod (26)
Rumus dekripsinya menjadi seperti berikut
P = D(C) (C K) mod (26)
Dari eomoh di atas dengan memasukkan kunci tiga maka
P D(C) = (C 3) mod (26)
Jika diberikan teks-ash sebagai berikut
GEMPA YOGYA MENELAN KORBAN TIDAK SEDlKIT DAN SAMPAI SEKARANG MASIH MENYISAKAN TRAUMA BAGI ORANG-ORANG KOTAGUDEG
Dengan menggunakan kunci tiga maka akan didapat teks-kode berikut
JHPDBRJBDPHQHODQNRUEDQWLGDNVHGLNLWGDQVDPSDL VHND UDQJPHNDUDQJPHQBLVDNDQWUDPDEDJLRUDQJRUDQJNRWDJXG HJ
Kode Kaisar dipeeahkan dengan eara brute force attaCl suatu bentuk
serangan yang dilakukan dengan meneoba-eoba berbagai kemungkiuan
untuk menemukan kunei Bisa juga menggunakan exJlaustive key search karena jumlah kunei sangat sedikit (hanya ada 26 kunei) Meski sedikit kunei suatu kode eukup merepotkan kriptanalis karen a untuk menemukannya dengan brute foree attaek dibutuhkan waktu yang eukup lama
Ada cara lain yang dapat digunakan kriptanalis untuk memeeahkannya yaitu dengan melihat frekuensi kemuneulan huruf sepeni yang ditunjukkan tabel frekuensi kemuneulan huruf berikut ini
-52 Pengantar IImu Kriptografi
Tabel 4 I Frekuensi Kemunculan Huruf dalam Bahasa
Karakter A
Peluang 0082
Karakter N
Peluang 067
B 015 0 075 C 028 P 019 D 043 Q 001 E 127 R 060 F G
022
020 S T
063
09 H 061 U 02middotc~
I 070 V 010 I J
K 002 008
W X
023
001 L 040 Y 020 M 024 Z 001
Pada teks bahasa Indonesia yang paling sering muncul adalah 10 huruf pada tabel di bawah ini
Tabel 42 Sepuluh Huruf yang Sering Mun(ul dalam Bahasa Indonesia
Letter Frequency
kemunculan ()
A 1750
N 1030
I 870
E 750
K 565
T 510
R 460
0 450
S 450
M 450
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
A~()rmo Kr()~ro Koltlt 5~ ~ ~Listing program untuk mendekipsi me yang menggunakan kode Kaisar
file menggunakan Caesar cipher 1
sebagai berkas ma ukannbullbull middotmiddotbull
argv[lmiddotJ argvl2J I
1 Programdekr1psi
hneluda ltstdio hgt
main (int argo bull char argv[J)I
FILE Fin Foutj char p C int~n~ 1 It
Fin middotfop41n(argv[ll rb) if (Fin - NULL)
printt(Kesalahan dalam mmnbuka s Fout - fopen(arqv[2] Itwblf )
printt(noakripsi s manjadi nprintf(n) printf(tlk scant (d ampk) hil laquoc - lt]ltItc(Finraquo = EO) I P - (e - k) 256 pute (P Fout)
) feloe(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 41 AJgorima R0T13
Sistem enkripsi pada unix dengan membagi alfabet n = 26 menjadi 13 sehingga satu huruf dengan huruf yang lain saling berhadapan Jika teksshyaslinya 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 (Mraquo
54 55
Pengantar IImu Kriptografi
ROT13 didesain untuk keamanan pada sistem operasi UNIX yang sering digunakan pada forum on-line berfungsi untuk menyelubungi isi artikel sehingga hanya orang yang berhak yang dapat membacanya Contoh proses
enkripsi ROTl3 danat dilihat di bawah ini
ENKRlJSI MENGGUNAKAN nonl
Gombar 42 Pro~e~ ROT13
Proses dekripsi
IROSES DEKlurSI ROTI3
PLAINTEXT
Gombar 43 Proses Dekrpsi ROfl3
Pada perkembangannya algoritma kode Kaisar memberikan suatu gagasan baru untuk menggunakan kunei lain yang disebut poly-alphabetic Kunci bisa jadi nama alamat atau apa saja yang diinginkan oleh pengirim pesan Coba
perhatikan contoh di bawah ini
Kode Kaisar dengan menggunakan satu kunci bisa disebut dengan substitusi deret campur kata kunei Yang perlu diingat tidak ada perulangan huruf dalam hal ini DONY ARlYUS menjadi DONY ARIUS Karena ada
pengulangan huruf Y maka huruf itu tidak dipakai lagi
Menggunakan satu kunei
Agoritma Kriptografi Kasik
Teks-asli MBAH MARIJAN SEKARANG SUDAH MENJADI ARTIS
Kunei MERAPI
Teks-kode JEMCJMQDFMKSPGMQMKBSUAMqPKFMADMQTDS
Menggunakan dua kunci
K1
Teks-asli BELAjAR KRIPTOGRAFI UNTUK MENGAMANKAN DATA
Kl DONY ARlYUS
K2 YOGY AKART A
Teks-kode IYKAOAFGFPDJBCFAMPLTJLGRYTCARATGATXAJA
Menggunakan lebih dari satu kunei
K2 1 1v 1 I 1 ~ 1I I I 1 I J
Kl
Kl GEMPA
K2 MBAH
K3 MERAPI
Teks-kode HJSFWFTFLFPFDOKFTUCRJLFSFOAFUTRJHUAFUFISUAF DWJSDHFLFTUCUIQFOU2007
56 Pengantar IImu Kriptografi
Dengan menggunakan lebih dari satu kunci bisa menggunakan metode pendistribusian kunci-kunci yang ada M(tode hi terdiri dari tiga bagian yaitu bIok karakter dan zig-zag
1 Blok
Metode untuk melakukan enkripsi dengan menggunakan blok adalah dengan membagi jumlah teks-asli menjadi blok-blok yang ditentukan tergantung dari keinginan pengirim pes an Coba perhatikan contoh di bawah ini
Teks-asH BANJIR MEREDAM JAKARTA HARGA BAHAN POKOK NAIK
Teks-asH di atas dibagi menjadi 8 blok Setiap blok berisi 6 karakter Karena blok yang ketujuh tidak mencukupi maka ditambah dengan karakter X atau karakter lain yang diinginkan
--_--- --_--- [MJAKAR] [TAHARGJ rABAHNl li~ I AIKXXX
Block 1 Block 2 Block 3 Block 4 Block 5 Illock 6 Block 7
KI
K2
KJ
Didapat teks-kode berikut
ODGBSI HKNKAY EllKCKN PDUDlI YOYBYI LJCJCH DSCXXX I I I I I I I I I
Kl K2 K3 K1 K2 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 mengshy
enkripsi dua blok sekaligus dengan memakai satu kunci (Kl K2 atau K3) dan seterusnya Maka didapat hasil pendistribusian kunci untuk teks-kode sebagai berikut
ODGBSLHKNKA YEBKCKNPDUDLlYOYBYILJCJCHDSCXXX
~~ltaorimo ltxioltaro ltO( 57
Dengan menggunakan metode ini jika satu kunci ditemukan oleh kriptanalis belum tentu pesan bisa dipecahkan karena masih ada beberapa kunci lagi yang harus dicari
2 Karakter
Metode ini menggunakan pendistribusian per karakter hampir sama dengan metode biok Contoh pendistribusian per karakter adalah seperti di bawah ini
I I I I j TI-rIIJIIIIIlulIIAI~ILI_
K] I I - - r ITT I II n 1 I __ Iv ~ I I -ILD () N Y A n 1 T I lt Jl r r t -7 rr ow- _ _ _ __
10 K R J f T n r A r r r T bull bull bullbull
o Y Hll C N r K N A A K I D K C Y N PYA 0 N G
~j 1~u ~j 1~u ~j 1~u Jj 1~u K3 KJ KJ KJ K3 KJ KJ KJ
fjIqPll rIP]I KJ KJ KJ KJ KJ
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
Kli - I J bull bull I ~ vI ~ ~ t - t bull - U J - - m lt I - I - -I 1 - )
K21~~~1EI~ I ~ IFI~I J-I~I~lol IQlnls ITlulwlxlylz I
Dari teks-asH
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDER ITA
didapat teks-kode
FMPKCFKPVKJGKSSOOMOSHKTJKFXKTFMOCNOMPYMJCTK
422 KODE GESER
Teknik substitusi kode geser (shift) cengan 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 114
--- shyp Q R S T U V W X Y Z
15 16 17 18 19 20 21 22 23 24 25
Teks-asli We Will Meet at Mid Night
Kalimat di atas mendaoat angka dari setiap huruf sebagai berikut
22 4 22 8 II II 12 4 4 19 deg19 12 8 3 13 8 6 7 19
Untuk mendapatkan teks-kode kita mempunyai kunei 11 Dengan meshynambahkan setiap nilai dari teks-asli dengan kunci 11 maka didapat
7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4
Jqo~mo lttoq~o ltolt 59
Jika lebih dari 20 setelah ditambah dengan kunci maka akan dikurangi
dengan 26 Misalnya 22+11= 33 - 26 7 Setelah dikonversi menjadi huruf maka akan didapatkan teks-kode
HPHTWWXPPELEXTOYTRSE
Teks-asli We will meet at mid night
Teks-kode HPHTWWXPPELEXTOYTRSE
Kunci 11
423 KODE Hill
Kode Hill termasuk salah satu sistem kripto polialfabetik yang berarti karakter alfabet bisa dipetakan ke lebih dari satu maeam karakter Kode ini
ditemukan pada tahun 1929 oleh Lester S Hill Misalkan m adalah bilangan bulat positif dan P = C Ide dari kode Hill adalah dengan mengambil
m kombinasi linear dari m karakter alfabet dalam satu elemen teks-asli sehingga dihasilkan TIl alfabet karakter dalam saru elemen teks-asli
Misalkan m = 2 maka dapar ditulis suatu elemen teks-asli sebagai x = (XI X2)
dan suam elemen teks-kode sebagai y = (yl Y2) Oi sini yl yl adalah kombinasi linear dari XI dan X2 Misalkan
1 (jyl = llxl + 3X2
Ie j l y2 8xI + 7X2 dimlis dalam notasi matriks sebagai berikut
i) (jI11 811 j - q
(YIY2) (xx2 ) 3 shy -( 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 kj maka dapat ditulis II [ cmiddot ( r
K (kJ Untuk x (XI Xm) E P dan K E K dihitung y eK(x) = (Yl ~ sebagai berikut -
kll 1 o
klmjk2J k2bull2 k2m Ii
(Y)Y2 (x) x2 X sS ~ ~ -
H
2
m
km 2 k~fTJ o
o
60 Pengantar IImu Kriptografi
dengan kat a lain y xK
Dikatakan bahwa teks-kode diperoleh dari teks-asli dengan cara transformasi
linear Untuk melakukan dekripsi menggunakan matriks inversi K-I dekripsi
dilakukan dengan rumus x =yK-
1 Perkalian matriks memiliki sifat asosiatif yaitu (AB)C A(BC)
2 Matriks identitas m x m yang ditulis dengan Im adalah matriks yang
berisi 1 pada diagonal utama dan berisi 0 pada elemen lainnya
Contoh matriks identitas 2 x 2
12 =
1m disebut dengan matriks identitas karena AIm A untuk sembarang
matriks I x m dan 1mB B untuk sembarang matriks m x n
3 Matriks inversi dari A (jika ada) adalah kl di mana AAmiddotI kA = 1m
Dengan menggunakan sifat-sifat matriks di atas maka
y xK
yKmiddotI (xK)KI = x(KKmiddotI) xlm X
Contoh
Dapat dilihat bahwa matriks enkripsi pada contoh sebemmnya memiliki
inversi pada Z26
fll 8)-1 l( 7 18) 3 7 23 11l
-
r A f
n~ Karena
III ~J (3 1 =(117+823 l118+8I1J
l3 37+723 318+711 II 261 2861
( 182 131) i
=(~ 1
Ingat bahwa semua operasi aritmetik di atas dilakukan pada modulo 26
~ AgorHmo Kriptogroti Kosik 61
Sebuah contoh untuk memberikan gambaran tentang enkripsi dan dekripsi dalam kode Hill
Misalkan kunci yang dipakai adalah
K=C ~) Dari perhitungan di atas diperoleh bahwa
K-I =( 7 18J 23 11
Misalkan untuk mengenkripsi teks-asli JULY ada 2 elemen teks-asli untuk dienkripsi
1 (920) ~
2 (11 24) ~ L Y
Kemudian lakukan perhitungan berikut
11 81 (9 20) ( 3 7j =(99+60 72+140) (3 4) ~ DE
dan
(11 8)(11 bull 24) 3 7 (121+72 88+168)=(11 22) ~ LW
sehingga enkripsi untuk JULY adalah DELW
Untuk mendekripsi dilakukan dengan cara
7 18)(3 4) 23 11 (9(
dan i
(11 =(11 bull 24)bull 223 -)
sehingga teks-asli diperoleh kern bali
Dekripsi hanya mungkin dilakukan jika matriks K memiliki inversi Suatu
matriks K memiliki inversi jika dan hanya jika determinannya tidak no
lt)
62 Pengantar IImu Kriptografi
Namun karena 226 maka matriks K memiliki inversi modulo 26 jika dan
hanya jika gcd(det K 26)=1
Unruk matriks A berukuran 2 x 2 nilai determinannya adalah
det A alla22 - al2a21
dan matriks inversi dari A adalah
322 -312)(det ( -321 311
Contoh
K = (113 7
maka
11 detK det 3 ~j 11 7 8 3 mod 26
(
= 77 - 24 mod 26
53 mod 26
=1
kemudian 1-1 mod 26 1 sehingga matriks inversinya adalah
(11
=l3 =(3 11
Contoh
Kode Hill dengan menggunakan matriks 3 x 3 dltngan kunci matriks (42 3 6 33 312)
Diketahui teks-asli berikut KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
ltasik 61
c~ -lt ~~~ B ~ B c oc
ltlJ_i j) iii -e~ D 0shy
t lt1 t I~ o
+ + +r--+ rKEN1 l ~~ 40 + 8 + 39)
(423) (10) (1~~ Mod 26 () ( H) JH6 3 3 4 50 + 12 + 39 (3 2 1 13 30 + 4 + 25 60) 8 I
3) AIK
4 0+ 16 + 30)( I I 0 + 24 + 30 uee
( ( (i~) Mod 26 (y) (g)I 2 1 0+ 8 + 20
Alm 0 + 26 + 21 )
= 0 + 39 + 21 VIB( i ~ ~) (~3) Gn Mod 25 C~1) (r)I _ 1 7 ( 0+13+14
ARG
(4 2 I) (0) (0 + 14 + 18 ) ( 5 ) (G)(32)6 3 3 17 0 + 21 + 18 39 Mod 25 13 N GND 3 2 1 5 0 + 17 + 12 29 3 0
ABB
(4 2 I) (0) (0 + 2+ 3) (5) (21) (V)6 3 3 1 0 + 3 + 3 5 Mod 25 20 = U VUX 3 2 1 1 0 + 1 + 2 3 23 X
MME
( 4 2 I) (12) (48 + 24 + 12) (841 (6) (G6 3 3 12 72 + 35 + 12 120 Mod 26 = 15 = 0)1 GOE 3 2 1 4 36 + 12 + 8 56 4 E
( I)
MHU
(12) (48+2+60)( I I 1 = 72 + 3 + 60 GFZ 4 2 (~~J) Mod 26 (15) (~)I 2 1 20 36 + 1 + 40
ATR
0+ 38 + 51) (89( i ~ ~) (109) (0+58+51 109 ~1) (~) LFBMod26=
3 2 1 17 0+ 19 + 34 531
64 Pengantar IImu Kriptografi
AKY
0 + 20 + ) (92) (14) (0) 0 + 30 + 7272 102 Mod 26 = 24 = Y OYG 3 2 1 24 o+ 10 + 48 58 6 G
ATK
( ~ ~ ~) (100) (
( ( (Q)0+38+30) (68) (16)~ ~ ~) (109) = 0 + 57 + 30 = 87 Mod 26 9 J QJN
~ 2 1 10 o+ 19+ 20 39 13 N
Eel
16 + 4 + 24) = 24 + 6 + 24 = SCE~~~) (~) G~) Mod 26 (~) =(~) =( ~ 2 1 8 ( 12+2+16
LME
2 )6 ~ = Mod 26 CKB ( 3 2 1
NDE
I 2 52+6+12) (70) (18)6 3 78 + 9 + 12 = 99 Mod 26 21 SVY( 3 2 ~ ) (1I) ( 39 + 3 + 8 50 24
RIT
4 2 68+16+57) ~32) (2) (C)6 = 102+24+57 183 Mod26= 1 = B CST( (~) C~)3 2 51 + 8 + 38 97 19 T
AXX
(~ ~ ~) () 0 +46 +69) (11~ (11) (L)= 0 + 69 + 69 = 138 Mod 26 8 I LlR(3 2 1 23 o+ 23 + 46 69 17 R
teks-kode dari teks-asli
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
adalah
JHIUCCVIBGNDVUXFQCGFZLFBOXBQJNSCECKBSVYCBTLlR
Pada (ontoh di atas kekurangan pada akhir kalimat ditambah dengan humf x untuk mencukupi perkalian matriksnya Teks-kode dari Kode Hill juga bisa disajikan dalam bentuk angka seperti 9 7 8 20 222181 613321 2023 616465251151142461691318242101182124211911817atau menggunakan heksadesimal dan binari
65Algoritma Kriptografi Klasik
424 KOOE VIGENERE
Kode Vigenere termasuk kode abjad-majemuk (polyalphabetic substitution cipher) Dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis Blaise de Vigenere pada Abad 16 tahun 1586 Sebenamya Giovan Batista Belaso telah menggambarkannya untuk pertama kali pada tahun 1553 seperti ditulis di dalam buku La Cifra del Sig Algoritma ini bam dikenal luas 200 tahun kemudian dan dinamakan kode Vigimere Vigenere mempakan pemicu perang sipil di Amerika dan kode Vigenere digunakan oleh Tentara Konfiderasi (Confederate Army) pada Perang Sipil Amerika (American Civil War Kode ViJenere berhasil dipecahkan oleh Babbage dan Kltsiski pada pertengahan Abad 19
Gambar 44 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 teksshyasli 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
4241 ANGKA
Teknik subsitusi Vigenere dengan menggunakan angka dilakukan dengan menukarkan humf dengan angka hampir sama dengan kode geser
T HIS CRY P T
19 7 8 18 2 17 24 15 19
2 B 15 7 4 17 2 8 15
21 15 23 25 6 8 0 23 8
ElM SINIOITISIEICIUIRIE 4 12
15 7
B
4
18 13 14 19 18 4 2 20 17 4
17 2 8 15 7 4 17 2 8 15
19 19 12 9 15 22 8 25 8
Teks-asli This cryptosystem is not secure
Kunci (28 157 4 17)
66 antar IImu Kri
A I 8 I C I DIE I FIG I H J IKILIM
o I 1 I 2 I 3 I 4 I 5 I 6 I 7 I a I 9 110 111 12
N 0 P Q R STU V W x y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Kunci dengan 6 huruf kode jika ditukar dengan angka akan menjadi K 0= (2 8 157417) dan reks-aslinya This Cryptosystem is Not Secure
K05ik 67
4VU 1URUf
Ide dasarnya adalah dengan menggunakan kode Kaisar tetapi Jumlah pershygeseran hurufnya berbeda-beda untuk setiap periode beberapa huruf tertentu Untuk mengenkrlpsi pe~an dengan kode Vegenere digunakan tabula
(disebut juga bujUIsangkar Vigenere seperti gambar di bawah ini
ABC D E F G H I
A ABCDEFGHI J K L M N 0 r Q R S T U V W X Y Z
n B C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A
C C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A B
D D E F G H I J K L M N 0 p Q R S T U vlwx y Z A B Cl
E E F G H I J K L M N 0 r Q R S T U V W X Y Z A B C D
F F G H I r K L M N 0 I Q R S T U V WX Y Z A B C D E
G G H I J K L M N 0 I Q It S T U V W X Y Z A B C D E F
H H I J K L M N 0 P Q R S T U V WX Y Z A B C D E F G
I J K L MN o l Q R S T U V W XY Z A B C D E FmiddotG ~cshy - - f-shyJ K L M N 0 l Q R S T U V WX Y Z A n C D E F G H I - iK L MN o l Q R S T U V W X Y Z A B C D E F G H I J-
G ITT e-middot
L M NO l Q R S T U VW X Y Z A B C D E F J K
I
K J u K 11 L
~ N 0 Q R S T U V W X Y Z A n C D E F G H I J K L N 0 I Q It S T U VW X Y Z A B C D E F G H I J K L M
o l U V WX Y Z C D E F~ H shy
Q R S T A B I J K L MN
I Q It S T U VW X Y Z A 11 C D E F G H ri J K L M N 0
C M N
0
l
Q S It S T U VW X Y Z A B C D E F G H I J K L MN o I
R S T U V W X Y Z A n C D E F G H I J K L M N 0 r Qf-shy TS U V WX Y Z A B C D E F G H I J K L M N o r Q It
f-shy -Ishy -I-shy
It
S
T T U VW x y Z A B C D E F G H I J K L MN 0 I Q It S
U U v WX Y Z A B C D E F G H I J K L MN o rQ It s T V VW X Y Z A B C D E F G H I J K L MN o I Q R S T U
_
W WX Y Z A B C D E F G H I J K L MN o r R It S T U V x x Y Z A B C D E F G H I J K L M N 0 r Q It S T U V W Y Y Z A B C D E F G H 1 J K L M N o l Q It S T U V WX
Z A 11 C D E F G H I J K L M N 0 I Q R STU VW x Y -_ ____ ___ __ __ _ _ _ L c __Z
0 S Y S T
14 18 24 18 19
7 4 17 2 8
21 22 15 20 1
19 22 25 19
Teks-kode VPXZGIAXIVWPUBTTMJPWIZITWZT
Untuk melakukan dekripsi juga bisa menggunakan kunci yang sarna dengan modulo 26
recta
Ilaintext J K L M NOr Q R STU V W X Y Z
Tabula recta digmakan 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) bull k(i mod m))
68 69 Pengantar IImu Kriptografi
dengan
huruf ke-i dalam teks-asli
kn huruf ke-n dalam kunci
m panjang kunci dan
V(xy) 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 teksshyasli dan gans lurus ke samping dari posisi kunci maka akan ditemukan huruf un Huruf U inilah yang akan menjadi teks-kode Begitu seterusnya Coba perhatikan contoh berikut ini
Algoritma Kriptografi Kla~ik
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 teksshykode belum tentu bisa didekripsikan menjacli clua huruf yang sarna dalam teks-asli
70 71 Pengantar Ilmu Kriptografi
Pada eontoh tersebut huruf M pad a teks-kode berasal dari huruf H dan T pada teks-ash
Gambar memperlihatkan perbandinggan frekuensi kemuneulan huruf pada suaru teks-asli dan huruf pada teks-kode dengan menggunakan kode Vigenere
2 Plaintext
2k
11 15 2 26
1-1--+------------
6
ftl K I~ I
Gambar 45 Perbondingon Frekuensi Kemunculon Huruf podo Kode Vigenere
Kelemahan utama kode Vigen ere adalah kuncinya yang pendek dan pengshygunaannya yang berulang-ulang Jika kriptanalis dapat menentukan panjang kunei saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa kode Kaisar
Metode Kasiski membanru menemukan panjang kunci-kode Vigenere Metode Kasiski memanfaatkan keuntungan bahasa Inggris yang tidak hanya mengandung perulangan huruf tetapi juga perulangan pasangan huruf atau tripel huruf seperti TH THE dsb Perulangan huruf ini memungkinkan unruk menghasilkan kriptogram yang berulang
Contoh
Teks-asli CRYPTO IS SHORT FOR CRYPTOGRAPHY
Kunci abcdab cd abcda bed abedabedabed Teks-kode CSASTP KV SIQUT GQU CSASTPIPAQJB
Algoritma Kriptografi Klasik
Pada eontoh tersebut CRYPTO dienkripsi menjadi kriptogram yang sarna yaitu CSATP Hal ini dikarenakan jarak antara dua buah string yang berulang di dalam teks-asli merupakan kelipatan dad panjang kunci sehingga string yang sarna tersebut akan muneul menjadi kriptogram yang sarna pula di dalam teks-kode Tujuan dad metode Kasiski adalah meneari dua atau lebih kr ptogram yang berulang untuk menentukan panjang kunci
Langkah metode Kasiski adalah sebagai berikut
1 Temukan semua kriptogram yang berulang di dalam teks-kode (pesan yang panjang biasanya mengandung kriptogram yang berulang)
2 Hitung j-ak antara kriptogram yang berulang
3 Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi menyatakan panjang kunei yang mungkin)
4 Tentukan irisan dari himpunan faktor pembagi tersebut Nilai yang muncul di dalam irisan menyatakan angka yang muneul pada semua faktor pembagi dari jarak-jarak tersebut Nilai tersebut mungkin adalah panjang kunei Hal ini karena string yang berulang dapat munetll bertindihan (coincidence)
Setelah panjang kunci diketahui maka langkah berikutnya adalah menentushykan kata kunci Kata kunei dapat ditentukan menggunakan exhaustive kef search Jika panjang kunei adalah p maka jumlah kunci yang harus dieoba
adalah 26Pbull Namun akan lebih efisien bila menggunakan teknik analisis
frekuensi
Langkah-Iangkah untuk melakukan analisis frekuensi adalah
1 Misalkan panjang kunei yang sudah berhasil dideduksi adalah n Setiap huruf kelipatan ke-n pasti dienkripsi dengan huruf kunci yang sarna Kelompokkan setiap huruf ke-n bersama-sama sehingga kriptanalis memiliki n buah pesan masing-masing dienkripsi dengan substitusi alfabet-tunggal (dalam hal ini kode Kaisar)
2 Tiap-tiap pes an dari hasil langkah 1 dapat dipeeahkan dengan teknik analisis fJ ekuensi
3 Dari hasillangkah 3 kriptanalis dapat menyusun huruf-huruf kunei atau menerka kata yang dapat membantu memeeahkan teks-kode
72 Pengantar IImu Kriptografi
Pada abad kemiddot19 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
425 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris pada Perang Boer (Perang Dunia I) pada awal Abad 20 untuk mengirim pes an antarmarkas yang ada di Inggris
Sir Charles Wheatstone Boron lyon
Gambar 46 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet) Dengan begitu kunci yang digunakan ada 25 alfabet Jumlah kemungkinan kunci pada kode Playfair 25=155112IO043330985984000000
Algoritma Kriptografi Klasik 73
Contch
Diketahui teks-asli Di dalam jiwa ya
Uotuk melakukan enkripsi kode berikut
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1 Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom maka pergerakan karakter dimulai dari huruf kedua secara vertikal menuju karakter teks-kode yang pertama Misalnya teks-as1i di huruf keduanya adalah Hi maka dari i yang di dalam matriks bergerak vertikal mencari huruf yang sebaris dengan d maka akan dijumpai karakter n (sebagai teks-kode) Untuk karakter yang kedua d mencari sisi lain seperti cara karakter Hi sehingga dijumpai karakter I Jadi teksshykode dad di adalah nl
S DT A ~ e ~E R II
vGF IK -pa UM Q
yW x zV
2 Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom atau baris yang sarna dan saling berdekatan maka digunakan prinsip enkripsi atau dekripsi ke bawah atau ke samping Cootoh untuk mengenkripsi an maka karakter di sam ping n adalah d da) karakter di sam ping a adalah un sehingga teks-kodenya menjadi dn
5 T A N D
E R C H B
K F G ] 11 M 0 p Q umiddot V W X Y Z
~L ~II ~ S T PI
e BHE BshyF G I LK
p ~QM a UI V YW IX Zl
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
45 44 Pengantar Ilmu Kriptografi
Keamanan dari algoritma kriptografi tergantung pad a bagairnana algoritma
itu bekerja Oleh sebab itu algoritma semacam ini disebut dengan algoritma
terbatas Algoritma terbatas merupakan algoritma yang dipakai sekelompok
orang untuk merahasiakan pesan yang mereka kirim Jika salah satu dari
anggota kelompok itu keluar dari kelompoknya maka algoritma yang dipakai
diganti dengan yang baru Jika tidak maka hal itu bisa menjadi masalah dl
kemudian hari
Keamanan dari kriptografi modern didapat dengan merahasiakan kunci yang
dimiliki dari orang lain tanpa harus merahasiakan algoritma itu sendiri
Kunci memiliki fungsi yang sarna dengan password Jika keseluruhan dari
keamanan algoritma tergantung pada kunci yang dipakai maka algoritma ini
bisa dipubliskasikan dan dianalisis oleh orang lain Jika algoritma yang telah
dipublikasikan bisa dipecahkan dalam waktu singkat oleh orang lain maka
berarti algoritma tersebut tidaklah aman untuk digunakan Pada pembahasan
berikutnya akan dijelaskan berbagai macam algoritma kriptografi yang
pernah ada
32 MACAM-MACAM ALGORITMA KRIPTOGRAFI
Algoritma kriptografi dibagi menjadi tiga bagian berdasarkan kunci yang
dipakainya
1 Algoritma Simetri (menggunakan satu kunci untuk enkripsi dan dekripshy
sinya)
2 Algoritma Asimetri (menggunakan kunci yang berbeda ulltuk enkripsi dan dekripsi)
3 Hash Function
321 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 mengshy
gunakan algoritma ini si penerima pesan harus diberitahu kunci dari pesan
tersebut agar bisa mendekripsikan pesan yang dikirim Keamanan dari pesan
yang menggunakan algoritma ini tergantung pada kunci Jika kunci tersebut
diketahui oleh orang lain maka orang rersebut akan dapat melakukan
Algoritma Kriptografi
enkripsi dan dekripsi terhadap pesan Algoritma yang memakai kunci simetri di antaranya adalah
1 Dita 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
322 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 mendeuipsi pesan dari Alice dengan kunci rahasianya
4 Begitu juga sebaliknya jika Bob ingin mengirim pesan ke Alice
46 Pengantar IImu Kriptografi
Algoritma yang memakai kunci publik di antaranya adalah
1 Digital Signature Algorithm (DSA)
2 RSA
3 Diffie-Hellman (DH)
4 Elliptic Curve Cryptography (ECC)
5 Kriptografi Quantum dan lain sebagainya
323 FUNGSJ HASH
Fungsi Hash disebut dengan fungsi Hash saru arah (one-way function) message digest fingerprint 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 hoYL-~
33 KRIPTOGRAFI KLASIK
Kriptografi klasik merupakan suaru algoritma yang menggunakan satu kunci untuk mengamankan data Teknik ini sudah digunakan beberapa abad yang lalu Dua teknik dasar yang biasa digunakan pada algoritma jenis ini adalah sebagai berikut
1 Teknik substitusi Penggantian setiap karakter teks-asli dengan karakter lain
2 Teknik transposisi (permutasi) Dilakukan dengan menggunakan pershymutasi karakter
34 KRIPTOGRAFI MODERN
Kriptografi modern mempunyai kerumitan yang sangat kompleks karena dioperasikan menggunakan komputer Hal ini akan dibahas lebih detail bagian lain
Agorilmo Kriptogrofi 47
35 PROSES PENGKODEAN
Cara kerja sistem penyandian sangat sederhana bisa dianalogikan dengan kayu mesin serbuk kayu Kayu digunakan sebagai bahan baku untuk memshybuat serbuk kayu dan untuk membuat serbuk terse but dibutuhkan mesin pembuatnya Coba lihat gambar di bawah ini
Gambar 31lluslrnsi 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 pemshybuatan serbuk dibutuhkan aksi yang mana aksi adalah kunci dan serbuk kayu adalah teks-kode
Tahap-tahap proses kriptografi atau sistem penyandian adalah sebagai berikut
1 Dibutuhkan algoritma sebagai urutan dari langkah-langkah untuk melakukan
2 suatu nilai yang digunakan pada algoritma sehingga algoritma tersebut bisa bekerja
48 Pengantar IImu Kriptografi
~A~ 1 AlGORllMA KR1P10GRAfl KlAS1K
41 PENDAHUlUAN
Kriptografi sudah dipakai sejak empat abad yang lalu Perkembangan kripshytografi begitu pesat sampai sekarang Untuk mendapatkan pengertian bagaishymana 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
42 TEKNIK SUBSITUSI
Substitusi merupakan penggantian setiap karakter teks-asli dengan karakter lain
A
F
K
p c U X
50 51 Pengantar Ilmu Kriptografi
Terdapat empat istilah substimsi kode antara lain
1 Monoalphabec setiap karakter teks-kode menggantikan salah sam karakter teks-asli
2 Polyalphabec setiap karakter teks-kode dapat menggantikan lebih dari satu maeam karakter teks-asH
3 Monogral sam enkripsi dilakukan terhadlp satu karakter teks-asli
4 Polygraph sam enkripsi dilakukan terhadap lebih dari sam karakter teksshyash
421 KODE KAISAR
Subsitusi kode yang pertama dalam dunia penyanuian terjadi pada pemerinshytahan Yulius Caesar yang dikenal dengan kode Kaisar dengan mengganti posisi huruf awal dari alfabet atau disebut juga dengan algoritma ROT3
Caesar Cipher (ROT3)
Plain Text i----
Encoded Text -ABC DEF ----i
Hello Khoor
Attack DNWdfn-Seeara lebih detail eoba perhatikan eontah berikut
Q
23 24 25 - --
A B ( D E F G H I J K l M N 01 p II ~ 1 U V W X i Z
C I 2 j ~ 5 f I 8 ~ Ie 11 12 1J 14 liS 16 17 18 19 20 21 2l
Menjadi
u v w x ) Z A B
19 ZC 21 22 2J 24 25
Jika penggeseran yang dilakukan sebanyak tiga kali maka kunei untuk dekripsinya adalah 3 Penggeseran kunci yang dilakukan tergantung keinginan pengirim pesan Bisa saja kunei yang dipakai a 7 b 9 dan seterusnya
Algoritma Kriptografi Klasik
Contoh algoritma kode Kaisar Untuk teks-asH diberikan simbol P dan teksshykodenya He dan kunci K Jadi rumusnya dapat dibuat sebagai berikut
C=E(P) = (P+K) mod (26)
Pada eontoh di atas kita bisa memasukkan kunci dengan nilai tiga sehingga menjadi
C=E(P) = (P+3) mod (26)
Rumus dekripsinya menjadi seperti berikut
P = D(C) (C K) mod (26)
Dari eomoh di atas dengan memasukkan kunci tiga maka
P D(C) = (C 3) mod (26)
Jika diberikan teks-ash sebagai berikut
GEMPA YOGYA MENELAN KORBAN TIDAK SEDlKIT DAN SAMPAI SEKARANG MASIH MENYISAKAN TRAUMA BAGI ORANG-ORANG KOTAGUDEG
Dengan menggunakan kunci tiga maka akan didapat teks-kode berikut
JHPDBRJBDPHQHODQNRUEDQWLGDNVHGLNLWGDQVDPSDL VHND UDQJPHNDUDQJPHQBLVDNDQWUDPDEDJLRUDQJRUDQJNRWDJXG HJ
Kode Kaisar dipeeahkan dengan eara brute force attaCl suatu bentuk
serangan yang dilakukan dengan meneoba-eoba berbagai kemungkiuan
untuk menemukan kunei Bisa juga menggunakan exJlaustive key search karena jumlah kunei sangat sedikit (hanya ada 26 kunei) Meski sedikit kunei suatu kode eukup merepotkan kriptanalis karen a untuk menemukannya dengan brute foree attaek dibutuhkan waktu yang eukup lama
Ada cara lain yang dapat digunakan kriptanalis untuk memeeahkannya yaitu dengan melihat frekuensi kemuneulan huruf sepeni yang ditunjukkan tabel frekuensi kemuneulan huruf berikut ini
-52 Pengantar IImu Kriptografi
Tabel 4 I Frekuensi Kemunculan Huruf dalam Bahasa
Karakter A
Peluang 0082
Karakter N
Peluang 067
B 015 0 075 C 028 P 019 D 043 Q 001 E 127 R 060 F G
022
020 S T
063
09 H 061 U 02middotc~
I 070 V 010 I J
K 002 008
W X
023
001 L 040 Y 020 M 024 Z 001
Pada teks bahasa Indonesia yang paling sering muncul adalah 10 huruf pada tabel di bawah ini
Tabel 42 Sepuluh Huruf yang Sering Mun(ul dalam Bahasa Indonesia
Letter Frequency
kemunculan ()
A 1750
N 1030
I 870
E 750
K 565
T 510
R 460
0 450
S 450
M 450
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
A~()rmo Kr()~ro Koltlt 5~ ~ ~Listing program untuk mendekipsi me yang menggunakan kode Kaisar
file menggunakan Caesar cipher 1
sebagai berkas ma ukannbullbull middotmiddotbull
argv[lmiddotJ argvl2J I
1 Programdekr1psi
hneluda ltstdio hgt
main (int argo bull char argv[J)I
FILE Fin Foutj char p C int~n~ 1 It
Fin middotfop41n(argv[ll rb) if (Fin - NULL)
printt(Kesalahan dalam mmnbuka s Fout - fopen(arqv[2] Itwblf )
printt(noakripsi s manjadi nprintf(n) printf(tlk scant (d ampk) hil laquoc - lt]ltItc(Finraquo = EO) I P - (e - k) 256 pute (P Fout)
) feloe(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 41 AJgorima R0T13
Sistem enkripsi pada unix dengan membagi alfabet n = 26 menjadi 13 sehingga satu huruf dengan huruf yang lain saling berhadapan Jika teksshyaslinya 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 (Mraquo
54 55
Pengantar IImu Kriptografi
ROT13 didesain untuk keamanan pada sistem operasi UNIX yang sering digunakan pada forum on-line berfungsi untuk menyelubungi isi artikel sehingga hanya orang yang berhak yang dapat membacanya Contoh proses
enkripsi ROTl3 danat dilihat di bawah ini
ENKRlJSI MENGGUNAKAN nonl
Gombar 42 Pro~e~ ROT13
Proses dekripsi
IROSES DEKlurSI ROTI3
PLAINTEXT
Gombar 43 Proses Dekrpsi ROfl3
Pada perkembangannya algoritma kode Kaisar memberikan suatu gagasan baru untuk menggunakan kunei lain yang disebut poly-alphabetic Kunci bisa jadi nama alamat atau apa saja yang diinginkan oleh pengirim pesan Coba
perhatikan contoh di bawah ini
Kode Kaisar dengan menggunakan satu kunci bisa disebut dengan substitusi deret campur kata kunei Yang perlu diingat tidak ada perulangan huruf dalam hal ini DONY ARlYUS menjadi DONY ARIUS Karena ada
pengulangan huruf Y maka huruf itu tidak dipakai lagi
Menggunakan satu kunei
Agoritma Kriptografi Kasik
Teks-asli MBAH MARIJAN SEKARANG SUDAH MENJADI ARTIS
Kunei MERAPI
Teks-kode JEMCJMQDFMKSPGMQMKBSUAMqPKFMADMQTDS
Menggunakan dua kunci
K1
Teks-asli BELAjAR KRIPTOGRAFI UNTUK MENGAMANKAN DATA
Kl DONY ARlYUS
K2 YOGY AKART A
Teks-kode IYKAOAFGFPDJBCFAMPLTJLGRYTCARATGATXAJA
Menggunakan lebih dari satu kunei
K2 1 1v 1 I 1 ~ 1I I I 1 I J
Kl
Kl GEMPA
K2 MBAH
K3 MERAPI
Teks-kode HJSFWFTFLFPFDOKFTUCRJLFSFOAFUTRJHUAFUFISUAF DWJSDHFLFTUCUIQFOU2007
56 Pengantar IImu Kriptografi
Dengan menggunakan lebih dari satu kunci bisa menggunakan metode pendistribusian kunci-kunci yang ada M(tode hi terdiri dari tiga bagian yaitu bIok karakter dan zig-zag
1 Blok
Metode untuk melakukan enkripsi dengan menggunakan blok adalah dengan membagi jumlah teks-asli menjadi blok-blok yang ditentukan tergantung dari keinginan pengirim pes an Coba perhatikan contoh di bawah ini
Teks-asH BANJIR MEREDAM JAKARTA HARGA BAHAN POKOK NAIK
Teks-asH di atas dibagi menjadi 8 blok Setiap blok berisi 6 karakter Karena blok yang ketujuh tidak mencukupi maka ditambah dengan karakter X atau karakter lain yang diinginkan
--_--- --_--- [MJAKAR] [TAHARGJ rABAHNl li~ I AIKXXX
Block 1 Block 2 Block 3 Block 4 Block 5 Illock 6 Block 7
KI
K2
KJ
Didapat teks-kode berikut
ODGBSI HKNKAY EllKCKN PDUDlI YOYBYI LJCJCH DSCXXX I I I I I I I I I
Kl K2 K3 K1 K2 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 mengshy
enkripsi dua blok sekaligus dengan memakai satu kunci (Kl K2 atau K3) dan seterusnya Maka didapat hasil pendistribusian kunci untuk teks-kode sebagai berikut
ODGBSLHKNKA YEBKCKNPDUDLlYOYBYILJCJCHDSCXXX
~~ltaorimo ltxioltaro ltO( 57
Dengan menggunakan metode ini jika satu kunci ditemukan oleh kriptanalis belum tentu pesan bisa dipecahkan karena masih ada beberapa kunci lagi yang harus dicari
2 Karakter
Metode ini menggunakan pendistribusian per karakter hampir sama dengan metode biok Contoh pendistribusian per karakter adalah seperti di bawah ini
I I I I j TI-rIIJIIIIIlulIIAI~ILI_
K] I I - - r ITT I II n 1 I __ Iv ~ I I -ILD () N Y A n 1 T I lt Jl r r t -7 rr ow- _ _ _ __
10 K R J f T n r A r r r T bull bull bullbull
o Y Hll C N r K N A A K I D K C Y N PYA 0 N G
~j 1~u ~j 1~u ~j 1~u Jj 1~u K3 KJ KJ KJ K3 KJ KJ KJ
fjIqPll rIP]I KJ KJ KJ KJ KJ
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
Kli - I J bull bull I ~ vI ~ ~ t - t bull - U J - - m lt I - I - -I 1 - )
K21~~~1EI~ I ~ IFI~I J-I~I~lol IQlnls ITlulwlxlylz I
Dari teks-asH
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDER ITA
didapat teks-kode
FMPKCFKPVKJGKSSOOMOSHKTJKFXKTFMOCNOMPYMJCTK
422 KODE GESER
Teknik substitusi kode geser (shift) cengan 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 114
--- shyp Q R S T U V W X Y Z
15 16 17 18 19 20 21 22 23 24 25
Teks-asli We Will Meet at Mid Night
Kalimat di atas mendaoat angka dari setiap huruf sebagai berikut
22 4 22 8 II II 12 4 4 19 deg19 12 8 3 13 8 6 7 19
Untuk mendapatkan teks-kode kita mempunyai kunei 11 Dengan meshynambahkan setiap nilai dari teks-asli dengan kunci 11 maka didapat
7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4
Jqo~mo lttoq~o ltolt 59
Jika lebih dari 20 setelah ditambah dengan kunci maka akan dikurangi
dengan 26 Misalnya 22+11= 33 - 26 7 Setelah dikonversi menjadi huruf maka akan didapatkan teks-kode
HPHTWWXPPELEXTOYTRSE
Teks-asli We will meet at mid night
Teks-kode HPHTWWXPPELEXTOYTRSE
Kunci 11
423 KODE Hill
Kode Hill termasuk salah satu sistem kripto polialfabetik yang berarti karakter alfabet bisa dipetakan ke lebih dari satu maeam karakter Kode ini
ditemukan pada tahun 1929 oleh Lester S Hill Misalkan m adalah bilangan bulat positif dan P = C Ide dari kode Hill adalah dengan mengambil
m kombinasi linear dari m karakter alfabet dalam satu elemen teks-asli sehingga dihasilkan TIl alfabet karakter dalam saru elemen teks-asli
Misalkan m = 2 maka dapar ditulis suatu elemen teks-asli sebagai x = (XI X2)
dan suam elemen teks-kode sebagai y = (yl Y2) Oi sini yl yl adalah kombinasi linear dari XI dan X2 Misalkan
1 (jyl = llxl + 3X2
Ie j l y2 8xI + 7X2 dimlis dalam notasi matriks sebagai berikut
i) (jI11 811 j - q
(YIY2) (xx2 ) 3 shy -( 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 kj maka dapat ditulis II [ cmiddot ( r
K (kJ Untuk x (XI Xm) E P dan K E K dihitung y eK(x) = (Yl ~ sebagai berikut -
kll 1 o
klmjk2J k2bull2 k2m Ii
(Y)Y2 (x) x2 X sS ~ ~ -
H
2
m
km 2 k~fTJ o
o
60 Pengantar IImu Kriptografi
dengan kat a lain y xK
Dikatakan bahwa teks-kode diperoleh dari teks-asli dengan cara transformasi
linear Untuk melakukan dekripsi menggunakan matriks inversi K-I dekripsi
dilakukan dengan rumus x =yK-
1 Perkalian matriks memiliki sifat asosiatif yaitu (AB)C A(BC)
2 Matriks identitas m x m yang ditulis dengan Im adalah matriks yang
berisi 1 pada diagonal utama dan berisi 0 pada elemen lainnya
Contoh matriks identitas 2 x 2
12 =
1m disebut dengan matriks identitas karena AIm A untuk sembarang
matriks I x m dan 1mB B untuk sembarang matriks m x n
3 Matriks inversi dari A (jika ada) adalah kl di mana AAmiddotI kA = 1m
Dengan menggunakan sifat-sifat matriks di atas maka
y xK
yKmiddotI (xK)KI = x(KKmiddotI) xlm X
Contoh
Dapat dilihat bahwa matriks enkripsi pada contoh sebemmnya memiliki
inversi pada Z26
fll 8)-1 l( 7 18) 3 7 23 11l
-
r A f
n~ Karena
III ~J (3 1 =(117+823 l118+8I1J
l3 37+723 318+711 II 261 2861
( 182 131) i
=(~ 1
Ingat bahwa semua operasi aritmetik di atas dilakukan pada modulo 26
~ AgorHmo Kriptogroti Kosik 61
Sebuah contoh untuk memberikan gambaran tentang enkripsi dan dekripsi dalam kode Hill
Misalkan kunci yang dipakai adalah
K=C ~) Dari perhitungan di atas diperoleh bahwa
K-I =( 7 18J 23 11
Misalkan untuk mengenkripsi teks-asli JULY ada 2 elemen teks-asli untuk dienkripsi
1 (920) ~
2 (11 24) ~ L Y
Kemudian lakukan perhitungan berikut
11 81 (9 20) ( 3 7j =(99+60 72+140) (3 4) ~ DE
dan
(11 8)(11 bull 24) 3 7 (121+72 88+168)=(11 22) ~ LW
sehingga enkripsi untuk JULY adalah DELW
Untuk mendekripsi dilakukan dengan cara
7 18)(3 4) 23 11 (9(
dan i
(11 =(11 bull 24)bull 223 -)
sehingga teks-asli diperoleh kern bali
Dekripsi hanya mungkin dilakukan jika matriks K memiliki inversi Suatu
matriks K memiliki inversi jika dan hanya jika determinannya tidak no
lt)
62 Pengantar IImu Kriptografi
Namun karena 226 maka matriks K memiliki inversi modulo 26 jika dan
hanya jika gcd(det K 26)=1
Unruk matriks A berukuran 2 x 2 nilai determinannya adalah
det A alla22 - al2a21
dan matriks inversi dari A adalah
322 -312)(det ( -321 311
Contoh
K = (113 7
maka
11 detK det 3 ~j 11 7 8 3 mod 26
(
= 77 - 24 mod 26
53 mod 26
=1
kemudian 1-1 mod 26 1 sehingga matriks inversinya adalah
(11
=l3 =(3 11
Contoh
Kode Hill dengan menggunakan matriks 3 x 3 dltngan kunci matriks (42 3 6 33 312)
Diketahui teks-asli berikut KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
ltasik 61
c~ -lt ~~~ B ~ B c oc
ltlJ_i j) iii -e~ D 0shy
t lt1 t I~ o
+ + +r--+ rKEN1 l ~~ 40 + 8 + 39)
(423) (10) (1~~ Mod 26 () ( H) JH6 3 3 4 50 + 12 + 39 (3 2 1 13 30 + 4 + 25 60) 8 I
3) AIK
4 0+ 16 + 30)( I I 0 + 24 + 30 uee
( ( (i~) Mod 26 (y) (g)I 2 1 0+ 8 + 20
Alm 0 + 26 + 21 )
= 0 + 39 + 21 VIB( i ~ ~) (~3) Gn Mod 25 C~1) (r)I _ 1 7 ( 0+13+14
ARG
(4 2 I) (0) (0 + 14 + 18 ) ( 5 ) (G)(32)6 3 3 17 0 + 21 + 18 39 Mod 25 13 N GND 3 2 1 5 0 + 17 + 12 29 3 0
ABB
(4 2 I) (0) (0 + 2+ 3) (5) (21) (V)6 3 3 1 0 + 3 + 3 5 Mod 25 20 = U VUX 3 2 1 1 0 + 1 + 2 3 23 X
MME
( 4 2 I) (12) (48 + 24 + 12) (841 (6) (G6 3 3 12 72 + 35 + 12 120 Mod 26 = 15 = 0)1 GOE 3 2 1 4 36 + 12 + 8 56 4 E
( I)
MHU
(12) (48+2+60)( I I 1 = 72 + 3 + 60 GFZ 4 2 (~~J) Mod 26 (15) (~)I 2 1 20 36 + 1 + 40
ATR
0+ 38 + 51) (89( i ~ ~) (109) (0+58+51 109 ~1) (~) LFBMod26=
3 2 1 17 0+ 19 + 34 531
64 Pengantar IImu Kriptografi
AKY
0 + 20 + ) (92) (14) (0) 0 + 30 + 7272 102 Mod 26 = 24 = Y OYG 3 2 1 24 o+ 10 + 48 58 6 G
ATK
( ~ ~ ~) (100) (
( ( (Q)0+38+30) (68) (16)~ ~ ~) (109) = 0 + 57 + 30 = 87 Mod 26 9 J QJN
~ 2 1 10 o+ 19+ 20 39 13 N
Eel
16 + 4 + 24) = 24 + 6 + 24 = SCE~~~) (~) G~) Mod 26 (~) =(~) =( ~ 2 1 8 ( 12+2+16
LME
2 )6 ~ = Mod 26 CKB ( 3 2 1
NDE
I 2 52+6+12) (70) (18)6 3 78 + 9 + 12 = 99 Mod 26 21 SVY( 3 2 ~ ) (1I) ( 39 + 3 + 8 50 24
RIT
4 2 68+16+57) ~32) (2) (C)6 = 102+24+57 183 Mod26= 1 = B CST( (~) C~)3 2 51 + 8 + 38 97 19 T
AXX
(~ ~ ~) () 0 +46 +69) (11~ (11) (L)= 0 + 69 + 69 = 138 Mod 26 8 I LlR(3 2 1 23 o+ 23 + 46 69 17 R
teks-kode dari teks-asli
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
adalah
JHIUCCVIBGNDVUXFQCGFZLFBOXBQJNSCECKBSVYCBTLlR
Pada (ontoh di atas kekurangan pada akhir kalimat ditambah dengan humf x untuk mencukupi perkalian matriksnya Teks-kode dari Kode Hill juga bisa disajikan dalam bentuk angka seperti 9 7 8 20 222181 613321 2023 616465251151142461691318242101182124211911817atau menggunakan heksadesimal dan binari
65Algoritma Kriptografi Klasik
424 KOOE VIGENERE
Kode Vigenere termasuk kode abjad-majemuk (polyalphabetic substitution cipher) Dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis Blaise de Vigenere pada Abad 16 tahun 1586 Sebenamya Giovan Batista Belaso telah menggambarkannya untuk pertama kali pada tahun 1553 seperti ditulis di dalam buku La Cifra del Sig Algoritma ini bam dikenal luas 200 tahun kemudian dan dinamakan kode Vigimere Vigenere mempakan pemicu perang sipil di Amerika dan kode Vigenere digunakan oleh Tentara Konfiderasi (Confederate Army) pada Perang Sipil Amerika (American Civil War Kode ViJenere berhasil dipecahkan oleh Babbage dan Kltsiski pada pertengahan Abad 19
Gambar 44 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 teksshyasli 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
4241 ANGKA
Teknik subsitusi Vigenere dengan menggunakan angka dilakukan dengan menukarkan humf dengan angka hampir sama dengan kode geser
T HIS CRY P T
19 7 8 18 2 17 24 15 19
2 B 15 7 4 17 2 8 15
21 15 23 25 6 8 0 23 8
ElM SINIOITISIEICIUIRIE 4 12
15 7
B
4
18 13 14 19 18 4 2 20 17 4
17 2 8 15 7 4 17 2 8 15
19 19 12 9 15 22 8 25 8
Teks-asli This cryptosystem is not secure
Kunci (28 157 4 17)
66 antar IImu Kri
A I 8 I C I DIE I FIG I H J IKILIM
o I 1 I 2 I 3 I 4 I 5 I 6 I 7 I a I 9 110 111 12
N 0 P Q R STU V W x y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Kunci dengan 6 huruf kode jika ditukar dengan angka akan menjadi K 0= (2 8 157417) dan reks-aslinya This Cryptosystem is Not Secure
K05ik 67
4VU 1URUf
Ide dasarnya adalah dengan menggunakan kode Kaisar tetapi Jumlah pershygeseran hurufnya berbeda-beda untuk setiap periode beberapa huruf tertentu Untuk mengenkrlpsi pe~an dengan kode Vegenere digunakan tabula
(disebut juga bujUIsangkar Vigenere seperti gambar di bawah ini
ABC D E F G H I
A ABCDEFGHI J K L M N 0 r Q R S T U V W X Y Z
n B C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A
C C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A B
D D E F G H I J K L M N 0 p Q R S T U vlwx y Z A B Cl
E E F G H I J K L M N 0 r Q R S T U V W X Y Z A B C D
F F G H I r K L M N 0 I Q R S T U V WX Y Z A B C D E
G G H I J K L M N 0 I Q It S T U V W X Y Z A B C D E F
H H I J K L M N 0 P Q R S T U V WX Y Z A B C D E F G
I J K L MN o l Q R S T U V W XY Z A B C D E FmiddotG ~cshy - - f-shyJ K L M N 0 l Q R S T U V WX Y Z A n C D E F G H I - iK L MN o l Q R S T U V W X Y Z A B C D E F G H I J-
G ITT e-middot
L M NO l Q R S T U VW X Y Z A B C D E F J K
I
K J u K 11 L
~ N 0 Q R S T U V W X Y Z A n C D E F G H I J K L N 0 I Q It S T U VW X Y Z A B C D E F G H I J K L M
o l U V WX Y Z C D E F~ H shy
Q R S T A B I J K L MN
I Q It S T U VW X Y Z A 11 C D E F G H ri J K L M N 0
C M N
0
l
Q S It S T U VW X Y Z A B C D E F G H I J K L MN o I
R S T U V W X Y Z A n C D E F G H I J K L M N 0 r Qf-shy TS U V WX Y Z A B C D E F G H I J K L M N o r Q It
f-shy -Ishy -I-shy
It
S
T T U VW x y Z A B C D E F G H I J K L MN 0 I Q It S
U U v WX Y Z A B C D E F G H I J K L MN o rQ It s T V VW X Y Z A B C D E F G H I J K L MN o I Q R S T U
_
W WX Y Z A B C D E F G H I J K L MN o r R It S T U V x x Y Z A B C D E F G H I J K L M N 0 r Q It S T U V W Y Y Z A B C D E F G H 1 J K L M N o l Q It S T U V WX
Z A 11 C D E F G H I J K L M N 0 I Q R STU VW x Y -_ ____ ___ __ __ _ _ _ L c __Z
0 S Y S T
14 18 24 18 19
7 4 17 2 8
21 22 15 20 1
19 22 25 19
Teks-kode VPXZGIAXIVWPUBTTMJPWIZITWZT
Untuk melakukan dekripsi juga bisa menggunakan kunci yang sarna dengan modulo 26
recta
Ilaintext J K L M NOr Q R STU V W X Y Z
Tabula recta digmakan 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) bull k(i mod m))
68 69 Pengantar IImu Kriptografi
dengan
huruf ke-i dalam teks-asli
kn huruf ke-n dalam kunci
m panjang kunci dan
V(xy) 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 teksshyasli dan gans lurus ke samping dari posisi kunci maka akan ditemukan huruf un Huruf U inilah yang akan menjadi teks-kode Begitu seterusnya Coba perhatikan contoh berikut ini
Algoritma Kriptografi Kla~ik
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 teksshykode belum tentu bisa didekripsikan menjacli clua huruf yang sarna dalam teks-asli
70 71 Pengantar Ilmu Kriptografi
Pada eontoh tersebut huruf M pad a teks-kode berasal dari huruf H dan T pada teks-ash
Gambar memperlihatkan perbandinggan frekuensi kemuneulan huruf pada suaru teks-asli dan huruf pada teks-kode dengan menggunakan kode Vigenere
2 Plaintext
2k
11 15 2 26
1-1--+------------
6
ftl K I~ I
Gambar 45 Perbondingon Frekuensi Kemunculon Huruf podo Kode Vigenere
Kelemahan utama kode Vigen ere adalah kuncinya yang pendek dan pengshygunaannya yang berulang-ulang Jika kriptanalis dapat menentukan panjang kunei saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa kode Kaisar
Metode Kasiski membanru menemukan panjang kunci-kode Vigenere Metode Kasiski memanfaatkan keuntungan bahasa Inggris yang tidak hanya mengandung perulangan huruf tetapi juga perulangan pasangan huruf atau tripel huruf seperti TH THE dsb Perulangan huruf ini memungkinkan unruk menghasilkan kriptogram yang berulang
Contoh
Teks-asli CRYPTO IS SHORT FOR CRYPTOGRAPHY
Kunci abcdab cd abcda bed abedabedabed Teks-kode CSASTP KV SIQUT GQU CSASTPIPAQJB
Algoritma Kriptografi Klasik
Pada eontoh tersebut CRYPTO dienkripsi menjadi kriptogram yang sarna yaitu CSATP Hal ini dikarenakan jarak antara dua buah string yang berulang di dalam teks-asli merupakan kelipatan dad panjang kunci sehingga string yang sarna tersebut akan muneul menjadi kriptogram yang sarna pula di dalam teks-kode Tujuan dad metode Kasiski adalah meneari dua atau lebih kr ptogram yang berulang untuk menentukan panjang kunci
Langkah metode Kasiski adalah sebagai berikut
1 Temukan semua kriptogram yang berulang di dalam teks-kode (pesan yang panjang biasanya mengandung kriptogram yang berulang)
2 Hitung j-ak antara kriptogram yang berulang
3 Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi menyatakan panjang kunei yang mungkin)
4 Tentukan irisan dari himpunan faktor pembagi tersebut Nilai yang muncul di dalam irisan menyatakan angka yang muneul pada semua faktor pembagi dari jarak-jarak tersebut Nilai tersebut mungkin adalah panjang kunei Hal ini karena string yang berulang dapat munetll bertindihan (coincidence)
Setelah panjang kunci diketahui maka langkah berikutnya adalah menentushykan kata kunci Kata kunei dapat ditentukan menggunakan exhaustive kef search Jika panjang kunei adalah p maka jumlah kunci yang harus dieoba
adalah 26Pbull Namun akan lebih efisien bila menggunakan teknik analisis
frekuensi
Langkah-Iangkah untuk melakukan analisis frekuensi adalah
1 Misalkan panjang kunei yang sudah berhasil dideduksi adalah n Setiap huruf kelipatan ke-n pasti dienkripsi dengan huruf kunci yang sarna Kelompokkan setiap huruf ke-n bersama-sama sehingga kriptanalis memiliki n buah pesan masing-masing dienkripsi dengan substitusi alfabet-tunggal (dalam hal ini kode Kaisar)
2 Tiap-tiap pes an dari hasil langkah 1 dapat dipeeahkan dengan teknik analisis fJ ekuensi
3 Dari hasillangkah 3 kriptanalis dapat menyusun huruf-huruf kunei atau menerka kata yang dapat membantu memeeahkan teks-kode
72 Pengantar IImu Kriptografi
Pada abad kemiddot19 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
425 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris pada Perang Boer (Perang Dunia I) pada awal Abad 20 untuk mengirim pes an antarmarkas yang ada di Inggris
Sir Charles Wheatstone Boron lyon
Gambar 46 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet) Dengan begitu kunci yang digunakan ada 25 alfabet Jumlah kemungkinan kunci pada kode Playfair 25=155112IO043330985984000000
Algoritma Kriptografi Klasik 73
Contch
Diketahui teks-asli Di dalam jiwa ya
Uotuk melakukan enkripsi kode berikut
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1 Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom maka pergerakan karakter dimulai dari huruf kedua secara vertikal menuju karakter teks-kode yang pertama Misalnya teks-as1i di huruf keduanya adalah Hi maka dari i yang di dalam matriks bergerak vertikal mencari huruf yang sebaris dengan d maka akan dijumpai karakter n (sebagai teks-kode) Untuk karakter yang kedua d mencari sisi lain seperti cara karakter Hi sehingga dijumpai karakter I Jadi teksshykode dad di adalah nl
S DT A ~ e ~E R II
vGF IK -pa UM Q
yW x zV
2 Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom atau baris yang sarna dan saling berdekatan maka digunakan prinsip enkripsi atau dekripsi ke bawah atau ke samping Cootoh untuk mengenkripsi an maka karakter di sam ping n adalah d da) karakter di sam ping a adalah un sehingga teks-kodenya menjadi dn
5 T A N D
E R C H B
K F G ] 11 M 0 p Q umiddot V W X Y Z
~L ~II ~ S T PI
e BHE BshyF G I LK
p ~QM a UI V YW IX Zl
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
46 Pengantar IImu Kriptografi
Algoritma yang memakai kunci publik di antaranya adalah
1 Digital Signature Algorithm (DSA)
2 RSA
3 Diffie-Hellman (DH)
4 Elliptic Curve Cryptography (ECC)
5 Kriptografi Quantum dan lain sebagainya
323 FUNGSJ HASH
Fungsi Hash disebut dengan fungsi Hash saru arah (one-way function) message digest fingerprint 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 hoYL-~
33 KRIPTOGRAFI KLASIK
Kriptografi klasik merupakan suaru algoritma yang menggunakan satu kunci untuk mengamankan data Teknik ini sudah digunakan beberapa abad yang lalu Dua teknik dasar yang biasa digunakan pada algoritma jenis ini adalah sebagai berikut
1 Teknik substitusi Penggantian setiap karakter teks-asli dengan karakter lain
2 Teknik transposisi (permutasi) Dilakukan dengan menggunakan pershymutasi karakter
34 KRIPTOGRAFI MODERN
Kriptografi modern mempunyai kerumitan yang sangat kompleks karena dioperasikan menggunakan komputer Hal ini akan dibahas lebih detail bagian lain
Agorilmo Kriptogrofi 47
35 PROSES PENGKODEAN
Cara kerja sistem penyandian sangat sederhana bisa dianalogikan dengan kayu mesin serbuk kayu Kayu digunakan sebagai bahan baku untuk memshybuat serbuk kayu dan untuk membuat serbuk terse but dibutuhkan mesin pembuatnya Coba lihat gambar di bawah ini
Gambar 31lluslrnsi 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 pemshybuatan serbuk dibutuhkan aksi yang mana aksi adalah kunci dan serbuk kayu adalah teks-kode
Tahap-tahap proses kriptografi atau sistem penyandian adalah sebagai berikut
1 Dibutuhkan algoritma sebagai urutan dari langkah-langkah untuk melakukan
2 suatu nilai yang digunakan pada algoritma sehingga algoritma tersebut bisa bekerja
48 Pengantar IImu Kriptografi
~A~ 1 AlGORllMA KR1P10GRAfl KlAS1K
41 PENDAHUlUAN
Kriptografi sudah dipakai sejak empat abad yang lalu Perkembangan kripshytografi begitu pesat sampai sekarang Untuk mendapatkan pengertian bagaishymana 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
42 TEKNIK SUBSITUSI
Substitusi merupakan penggantian setiap karakter teks-asli dengan karakter lain
A
F
K
p c U X
50 51 Pengantar Ilmu Kriptografi
Terdapat empat istilah substimsi kode antara lain
1 Monoalphabec setiap karakter teks-kode menggantikan salah sam karakter teks-asli
2 Polyalphabec setiap karakter teks-kode dapat menggantikan lebih dari satu maeam karakter teks-asH
3 Monogral sam enkripsi dilakukan terhadlp satu karakter teks-asli
4 Polygraph sam enkripsi dilakukan terhadap lebih dari sam karakter teksshyash
421 KODE KAISAR
Subsitusi kode yang pertama dalam dunia penyanuian terjadi pada pemerinshytahan Yulius Caesar yang dikenal dengan kode Kaisar dengan mengganti posisi huruf awal dari alfabet atau disebut juga dengan algoritma ROT3
Caesar Cipher (ROT3)
Plain Text i----
Encoded Text -ABC DEF ----i
Hello Khoor
Attack DNWdfn-Seeara lebih detail eoba perhatikan eontah berikut
Q
23 24 25 - --
A B ( D E F G H I J K l M N 01 p II ~ 1 U V W X i Z
C I 2 j ~ 5 f I 8 ~ Ie 11 12 1J 14 liS 16 17 18 19 20 21 2l
Menjadi
u v w x ) Z A B
19 ZC 21 22 2J 24 25
Jika penggeseran yang dilakukan sebanyak tiga kali maka kunei untuk dekripsinya adalah 3 Penggeseran kunci yang dilakukan tergantung keinginan pengirim pesan Bisa saja kunei yang dipakai a 7 b 9 dan seterusnya
Algoritma Kriptografi Klasik
Contoh algoritma kode Kaisar Untuk teks-asH diberikan simbol P dan teksshykodenya He dan kunci K Jadi rumusnya dapat dibuat sebagai berikut
C=E(P) = (P+K) mod (26)
Pada eontoh di atas kita bisa memasukkan kunci dengan nilai tiga sehingga menjadi
C=E(P) = (P+3) mod (26)
Rumus dekripsinya menjadi seperti berikut
P = D(C) (C K) mod (26)
Dari eomoh di atas dengan memasukkan kunci tiga maka
P D(C) = (C 3) mod (26)
Jika diberikan teks-ash sebagai berikut
GEMPA YOGYA MENELAN KORBAN TIDAK SEDlKIT DAN SAMPAI SEKARANG MASIH MENYISAKAN TRAUMA BAGI ORANG-ORANG KOTAGUDEG
Dengan menggunakan kunci tiga maka akan didapat teks-kode berikut
JHPDBRJBDPHQHODQNRUEDQWLGDNVHGLNLWGDQVDPSDL VHND UDQJPHNDUDQJPHQBLVDNDQWUDPDEDJLRUDQJRUDQJNRWDJXG HJ
Kode Kaisar dipeeahkan dengan eara brute force attaCl suatu bentuk
serangan yang dilakukan dengan meneoba-eoba berbagai kemungkiuan
untuk menemukan kunei Bisa juga menggunakan exJlaustive key search karena jumlah kunei sangat sedikit (hanya ada 26 kunei) Meski sedikit kunei suatu kode eukup merepotkan kriptanalis karen a untuk menemukannya dengan brute foree attaek dibutuhkan waktu yang eukup lama
Ada cara lain yang dapat digunakan kriptanalis untuk memeeahkannya yaitu dengan melihat frekuensi kemuneulan huruf sepeni yang ditunjukkan tabel frekuensi kemuneulan huruf berikut ini
-52 Pengantar IImu Kriptografi
Tabel 4 I Frekuensi Kemunculan Huruf dalam Bahasa
Karakter A
Peluang 0082
Karakter N
Peluang 067
B 015 0 075 C 028 P 019 D 043 Q 001 E 127 R 060 F G
022
020 S T
063
09 H 061 U 02middotc~
I 070 V 010 I J
K 002 008
W X
023
001 L 040 Y 020 M 024 Z 001
Pada teks bahasa Indonesia yang paling sering muncul adalah 10 huruf pada tabel di bawah ini
Tabel 42 Sepuluh Huruf yang Sering Mun(ul dalam Bahasa Indonesia
Letter Frequency
kemunculan ()
A 1750
N 1030
I 870
E 750
K 565
T 510
R 460
0 450
S 450
M 450
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
A~()rmo Kr()~ro Koltlt 5~ ~ ~Listing program untuk mendekipsi me yang menggunakan kode Kaisar
file menggunakan Caesar cipher 1
sebagai berkas ma ukannbullbull middotmiddotbull
argv[lmiddotJ argvl2J I
1 Programdekr1psi
hneluda ltstdio hgt
main (int argo bull char argv[J)I
FILE Fin Foutj char p C int~n~ 1 It
Fin middotfop41n(argv[ll rb) if (Fin - NULL)
printt(Kesalahan dalam mmnbuka s Fout - fopen(arqv[2] Itwblf )
printt(noakripsi s manjadi nprintf(n) printf(tlk scant (d ampk) hil laquoc - lt]ltItc(Finraquo = EO) I P - (e - k) 256 pute (P Fout)
) feloe(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 41 AJgorima R0T13
Sistem enkripsi pada unix dengan membagi alfabet n = 26 menjadi 13 sehingga satu huruf dengan huruf yang lain saling berhadapan Jika teksshyaslinya 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 (Mraquo
54 55
Pengantar IImu Kriptografi
ROT13 didesain untuk keamanan pada sistem operasi UNIX yang sering digunakan pada forum on-line berfungsi untuk menyelubungi isi artikel sehingga hanya orang yang berhak yang dapat membacanya Contoh proses
enkripsi ROTl3 danat dilihat di bawah ini
ENKRlJSI MENGGUNAKAN nonl
Gombar 42 Pro~e~ ROT13
Proses dekripsi
IROSES DEKlurSI ROTI3
PLAINTEXT
Gombar 43 Proses Dekrpsi ROfl3
Pada perkembangannya algoritma kode Kaisar memberikan suatu gagasan baru untuk menggunakan kunei lain yang disebut poly-alphabetic Kunci bisa jadi nama alamat atau apa saja yang diinginkan oleh pengirim pesan Coba
perhatikan contoh di bawah ini
Kode Kaisar dengan menggunakan satu kunci bisa disebut dengan substitusi deret campur kata kunei Yang perlu diingat tidak ada perulangan huruf dalam hal ini DONY ARlYUS menjadi DONY ARIUS Karena ada
pengulangan huruf Y maka huruf itu tidak dipakai lagi
Menggunakan satu kunei
Agoritma Kriptografi Kasik
Teks-asli MBAH MARIJAN SEKARANG SUDAH MENJADI ARTIS
Kunei MERAPI
Teks-kode JEMCJMQDFMKSPGMQMKBSUAMqPKFMADMQTDS
Menggunakan dua kunci
K1
Teks-asli BELAjAR KRIPTOGRAFI UNTUK MENGAMANKAN DATA
Kl DONY ARlYUS
K2 YOGY AKART A
Teks-kode IYKAOAFGFPDJBCFAMPLTJLGRYTCARATGATXAJA
Menggunakan lebih dari satu kunei
K2 1 1v 1 I 1 ~ 1I I I 1 I J
Kl
Kl GEMPA
K2 MBAH
K3 MERAPI
Teks-kode HJSFWFTFLFPFDOKFTUCRJLFSFOAFUTRJHUAFUFISUAF DWJSDHFLFTUCUIQFOU2007
56 Pengantar IImu Kriptografi
Dengan menggunakan lebih dari satu kunci bisa menggunakan metode pendistribusian kunci-kunci yang ada M(tode hi terdiri dari tiga bagian yaitu bIok karakter dan zig-zag
1 Blok
Metode untuk melakukan enkripsi dengan menggunakan blok adalah dengan membagi jumlah teks-asli menjadi blok-blok yang ditentukan tergantung dari keinginan pengirim pes an Coba perhatikan contoh di bawah ini
Teks-asH BANJIR MEREDAM JAKARTA HARGA BAHAN POKOK NAIK
Teks-asH di atas dibagi menjadi 8 blok Setiap blok berisi 6 karakter Karena blok yang ketujuh tidak mencukupi maka ditambah dengan karakter X atau karakter lain yang diinginkan
--_--- --_--- [MJAKAR] [TAHARGJ rABAHNl li~ I AIKXXX
Block 1 Block 2 Block 3 Block 4 Block 5 Illock 6 Block 7
KI
K2
KJ
Didapat teks-kode berikut
ODGBSI HKNKAY EllKCKN PDUDlI YOYBYI LJCJCH DSCXXX I I I I I I I I I
Kl K2 K3 K1 K2 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 mengshy
enkripsi dua blok sekaligus dengan memakai satu kunci (Kl K2 atau K3) dan seterusnya Maka didapat hasil pendistribusian kunci untuk teks-kode sebagai berikut
ODGBSLHKNKA YEBKCKNPDUDLlYOYBYILJCJCHDSCXXX
~~ltaorimo ltxioltaro ltO( 57
Dengan menggunakan metode ini jika satu kunci ditemukan oleh kriptanalis belum tentu pesan bisa dipecahkan karena masih ada beberapa kunci lagi yang harus dicari
2 Karakter
Metode ini menggunakan pendistribusian per karakter hampir sama dengan metode biok Contoh pendistribusian per karakter adalah seperti di bawah ini
I I I I j TI-rIIJIIIIIlulIIAI~ILI_
K] I I - - r ITT I II n 1 I __ Iv ~ I I -ILD () N Y A n 1 T I lt Jl r r t -7 rr ow- _ _ _ __
10 K R J f T n r A r r r T bull bull bullbull
o Y Hll C N r K N A A K I D K C Y N PYA 0 N G
~j 1~u ~j 1~u ~j 1~u Jj 1~u K3 KJ KJ KJ K3 KJ KJ KJ
fjIqPll rIP]I KJ KJ KJ KJ KJ
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
Kli - I J bull bull I ~ vI ~ ~ t - t bull - U J - - m lt I - I - -I 1 - )
K21~~~1EI~ I ~ IFI~I J-I~I~lol IQlnls ITlulwlxlylz I
Dari teks-asH
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDER ITA
didapat teks-kode
FMPKCFKPVKJGKSSOOMOSHKTJKFXKTFMOCNOMPYMJCTK
422 KODE GESER
Teknik substitusi kode geser (shift) cengan 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 114
--- shyp Q R S T U V W X Y Z
15 16 17 18 19 20 21 22 23 24 25
Teks-asli We Will Meet at Mid Night
Kalimat di atas mendaoat angka dari setiap huruf sebagai berikut
22 4 22 8 II II 12 4 4 19 deg19 12 8 3 13 8 6 7 19
Untuk mendapatkan teks-kode kita mempunyai kunei 11 Dengan meshynambahkan setiap nilai dari teks-asli dengan kunci 11 maka didapat
7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4
Jqo~mo lttoq~o ltolt 59
Jika lebih dari 20 setelah ditambah dengan kunci maka akan dikurangi
dengan 26 Misalnya 22+11= 33 - 26 7 Setelah dikonversi menjadi huruf maka akan didapatkan teks-kode
HPHTWWXPPELEXTOYTRSE
Teks-asli We will meet at mid night
Teks-kode HPHTWWXPPELEXTOYTRSE
Kunci 11
423 KODE Hill
Kode Hill termasuk salah satu sistem kripto polialfabetik yang berarti karakter alfabet bisa dipetakan ke lebih dari satu maeam karakter Kode ini
ditemukan pada tahun 1929 oleh Lester S Hill Misalkan m adalah bilangan bulat positif dan P = C Ide dari kode Hill adalah dengan mengambil
m kombinasi linear dari m karakter alfabet dalam satu elemen teks-asli sehingga dihasilkan TIl alfabet karakter dalam saru elemen teks-asli
Misalkan m = 2 maka dapar ditulis suatu elemen teks-asli sebagai x = (XI X2)
dan suam elemen teks-kode sebagai y = (yl Y2) Oi sini yl yl adalah kombinasi linear dari XI dan X2 Misalkan
1 (jyl = llxl + 3X2
Ie j l y2 8xI + 7X2 dimlis dalam notasi matriks sebagai berikut
i) (jI11 811 j - q
(YIY2) (xx2 ) 3 shy -( 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 kj maka dapat ditulis II [ cmiddot ( r
K (kJ Untuk x (XI Xm) E P dan K E K dihitung y eK(x) = (Yl ~ sebagai berikut -
kll 1 o
klmjk2J k2bull2 k2m Ii
(Y)Y2 (x) x2 X sS ~ ~ -
H
2
m
km 2 k~fTJ o
o
60 Pengantar IImu Kriptografi
dengan kat a lain y xK
Dikatakan bahwa teks-kode diperoleh dari teks-asli dengan cara transformasi
linear Untuk melakukan dekripsi menggunakan matriks inversi K-I dekripsi
dilakukan dengan rumus x =yK-
1 Perkalian matriks memiliki sifat asosiatif yaitu (AB)C A(BC)
2 Matriks identitas m x m yang ditulis dengan Im adalah matriks yang
berisi 1 pada diagonal utama dan berisi 0 pada elemen lainnya
Contoh matriks identitas 2 x 2
12 =
1m disebut dengan matriks identitas karena AIm A untuk sembarang
matriks I x m dan 1mB B untuk sembarang matriks m x n
3 Matriks inversi dari A (jika ada) adalah kl di mana AAmiddotI kA = 1m
Dengan menggunakan sifat-sifat matriks di atas maka
y xK
yKmiddotI (xK)KI = x(KKmiddotI) xlm X
Contoh
Dapat dilihat bahwa matriks enkripsi pada contoh sebemmnya memiliki
inversi pada Z26
fll 8)-1 l( 7 18) 3 7 23 11l
-
r A f
n~ Karena
III ~J (3 1 =(117+823 l118+8I1J
l3 37+723 318+711 II 261 2861
( 182 131) i
=(~ 1
Ingat bahwa semua operasi aritmetik di atas dilakukan pada modulo 26
~ AgorHmo Kriptogroti Kosik 61
Sebuah contoh untuk memberikan gambaran tentang enkripsi dan dekripsi dalam kode Hill
Misalkan kunci yang dipakai adalah
K=C ~) Dari perhitungan di atas diperoleh bahwa
K-I =( 7 18J 23 11
Misalkan untuk mengenkripsi teks-asli JULY ada 2 elemen teks-asli untuk dienkripsi
1 (920) ~
2 (11 24) ~ L Y
Kemudian lakukan perhitungan berikut
11 81 (9 20) ( 3 7j =(99+60 72+140) (3 4) ~ DE
dan
(11 8)(11 bull 24) 3 7 (121+72 88+168)=(11 22) ~ LW
sehingga enkripsi untuk JULY adalah DELW
Untuk mendekripsi dilakukan dengan cara
7 18)(3 4) 23 11 (9(
dan i
(11 =(11 bull 24)bull 223 -)
sehingga teks-asli diperoleh kern bali
Dekripsi hanya mungkin dilakukan jika matriks K memiliki inversi Suatu
matriks K memiliki inversi jika dan hanya jika determinannya tidak no
lt)
62 Pengantar IImu Kriptografi
Namun karena 226 maka matriks K memiliki inversi modulo 26 jika dan
hanya jika gcd(det K 26)=1
Unruk matriks A berukuran 2 x 2 nilai determinannya adalah
det A alla22 - al2a21
dan matriks inversi dari A adalah
322 -312)(det ( -321 311
Contoh
K = (113 7
maka
11 detK det 3 ~j 11 7 8 3 mod 26
(
= 77 - 24 mod 26
53 mod 26
=1
kemudian 1-1 mod 26 1 sehingga matriks inversinya adalah
(11
=l3 =(3 11
Contoh
Kode Hill dengan menggunakan matriks 3 x 3 dltngan kunci matriks (42 3 6 33 312)
Diketahui teks-asli berikut KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
ltasik 61
c~ -lt ~~~ B ~ B c oc
ltlJ_i j) iii -e~ D 0shy
t lt1 t I~ o
+ + +r--+ rKEN1 l ~~ 40 + 8 + 39)
(423) (10) (1~~ Mod 26 () ( H) JH6 3 3 4 50 + 12 + 39 (3 2 1 13 30 + 4 + 25 60) 8 I
3) AIK
4 0+ 16 + 30)( I I 0 + 24 + 30 uee
( ( (i~) Mod 26 (y) (g)I 2 1 0+ 8 + 20
Alm 0 + 26 + 21 )
= 0 + 39 + 21 VIB( i ~ ~) (~3) Gn Mod 25 C~1) (r)I _ 1 7 ( 0+13+14
ARG
(4 2 I) (0) (0 + 14 + 18 ) ( 5 ) (G)(32)6 3 3 17 0 + 21 + 18 39 Mod 25 13 N GND 3 2 1 5 0 + 17 + 12 29 3 0
ABB
(4 2 I) (0) (0 + 2+ 3) (5) (21) (V)6 3 3 1 0 + 3 + 3 5 Mod 25 20 = U VUX 3 2 1 1 0 + 1 + 2 3 23 X
MME
( 4 2 I) (12) (48 + 24 + 12) (841 (6) (G6 3 3 12 72 + 35 + 12 120 Mod 26 = 15 = 0)1 GOE 3 2 1 4 36 + 12 + 8 56 4 E
( I)
MHU
(12) (48+2+60)( I I 1 = 72 + 3 + 60 GFZ 4 2 (~~J) Mod 26 (15) (~)I 2 1 20 36 + 1 + 40
ATR
0+ 38 + 51) (89( i ~ ~) (109) (0+58+51 109 ~1) (~) LFBMod26=
3 2 1 17 0+ 19 + 34 531
64 Pengantar IImu Kriptografi
AKY
0 + 20 + ) (92) (14) (0) 0 + 30 + 7272 102 Mod 26 = 24 = Y OYG 3 2 1 24 o+ 10 + 48 58 6 G
ATK
( ~ ~ ~) (100) (
( ( (Q)0+38+30) (68) (16)~ ~ ~) (109) = 0 + 57 + 30 = 87 Mod 26 9 J QJN
~ 2 1 10 o+ 19+ 20 39 13 N
Eel
16 + 4 + 24) = 24 + 6 + 24 = SCE~~~) (~) G~) Mod 26 (~) =(~) =( ~ 2 1 8 ( 12+2+16
LME
2 )6 ~ = Mod 26 CKB ( 3 2 1
NDE
I 2 52+6+12) (70) (18)6 3 78 + 9 + 12 = 99 Mod 26 21 SVY( 3 2 ~ ) (1I) ( 39 + 3 + 8 50 24
RIT
4 2 68+16+57) ~32) (2) (C)6 = 102+24+57 183 Mod26= 1 = B CST( (~) C~)3 2 51 + 8 + 38 97 19 T
AXX
(~ ~ ~) () 0 +46 +69) (11~ (11) (L)= 0 + 69 + 69 = 138 Mod 26 8 I LlR(3 2 1 23 o+ 23 + 46 69 17 R
teks-kode dari teks-asli
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
adalah
JHIUCCVIBGNDVUXFQCGFZLFBOXBQJNSCECKBSVYCBTLlR
Pada (ontoh di atas kekurangan pada akhir kalimat ditambah dengan humf x untuk mencukupi perkalian matriksnya Teks-kode dari Kode Hill juga bisa disajikan dalam bentuk angka seperti 9 7 8 20 222181 613321 2023 616465251151142461691318242101182124211911817atau menggunakan heksadesimal dan binari
65Algoritma Kriptografi Klasik
424 KOOE VIGENERE
Kode Vigenere termasuk kode abjad-majemuk (polyalphabetic substitution cipher) Dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis Blaise de Vigenere pada Abad 16 tahun 1586 Sebenamya Giovan Batista Belaso telah menggambarkannya untuk pertama kali pada tahun 1553 seperti ditulis di dalam buku La Cifra del Sig Algoritma ini bam dikenal luas 200 tahun kemudian dan dinamakan kode Vigimere Vigenere mempakan pemicu perang sipil di Amerika dan kode Vigenere digunakan oleh Tentara Konfiderasi (Confederate Army) pada Perang Sipil Amerika (American Civil War Kode ViJenere berhasil dipecahkan oleh Babbage dan Kltsiski pada pertengahan Abad 19
Gambar 44 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 teksshyasli 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
4241 ANGKA
Teknik subsitusi Vigenere dengan menggunakan angka dilakukan dengan menukarkan humf dengan angka hampir sama dengan kode geser
T HIS CRY P T
19 7 8 18 2 17 24 15 19
2 B 15 7 4 17 2 8 15
21 15 23 25 6 8 0 23 8
ElM SINIOITISIEICIUIRIE 4 12
15 7
B
4
18 13 14 19 18 4 2 20 17 4
17 2 8 15 7 4 17 2 8 15
19 19 12 9 15 22 8 25 8
Teks-asli This cryptosystem is not secure
Kunci (28 157 4 17)
66 antar IImu Kri
A I 8 I C I DIE I FIG I H J IKILIM
o I 1 I 2 I 3 I 4 I 5 I 6 I 7 I a I 9 110 111 12
N 0 P Q R STU V W x y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Kunci dengan 6 huruf kode jika ditukar dengan angka akan menjadi K 0= (2 8 157417) dan reks-aslinya This Cryptosystem is Not Secure
K05ik 67
4VU 1URUf
Ide dasarnya adalah dengan menggunakan kode Kaisar tetapi Jumlah pershygeseran hurufnya berbeda-beda untuk setiap periode beberapa huruf tertentu Untuk mengenkrlpsi pe~an dengan kode Vegenere digunakan tabula
(disebut juga bujUIsangkar Vigenere seperti gambar di bawah ini
ABC D E F G H I
A ABCDEFGHI J K L M N 0 r Q R S T U V W X Y Z
n B C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A
C C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A B
D D E F G H I J K L M N 0 p Q R S T U vlwx y Z A B Cl
E E F G H I J K L M N 0 r Q R S T U V W X Y Z A B C D
F F G H I r K L M N 0 I Q R S T U V WX Y Z A B C D E
G G H I J K L M N 0 I Q It S T U V W X Y Z A B C D E F
H H I J K L M N 0 P Q R S T U V WX Y Z A B C D E F G
I J K L MN o l Q R S T U V W XY Z A B C D E FmiddotG ~cshy - - f-shyJ K L M N 0 l Q R S T U V WX Y Z A n C D E F G H I - iK L MN o l Q R S T U V W X Y Z A B C D E F G H I J-
G ITT e-middot
L M NO l Q R S T U VW X Y Z A B C D E F J K
I
K J u K 11 L
~ N 0 Q R S T U V W X Y Z A n C D E F G H I J K L N 0 I Q It S T U VW X Y Z A B C D E F G H I J K L M
o l U V WX Y Z C D E F~ H shy
Q R S T A B I J K L MN
I Q It S T U VW X Y Z A 11 C D E F G H ri J K L M N 0
C M N
0
l
Q S It S T U VW X Y Z A B C D E F G H I J K L MN o I
R S T U V W X Y Z A n C D E F G H I J K L M N 0 r Qf-shy TS U V WX Y Z A B C D E F G H I J K L M N o r Q It
f-shy -Ishy -I-shy
It
S
T T U VW x y Z A B C D E F G H I J K L MN 0 I Q It S
U U v WX Y Z A B C D E F G H I J K L MN o rQ It s T V VW X Y Z A B C D E F G H I J K L MN o I Q R S T U
_
W WX Y Z A B C D E F G H I J K L MN o r R It S T U V x x Y Z A B C D E F G H I J K L M N 0 r Q It S T U V W Y Y Z A B C D E F G H 1 J K L M N o l Q It S T U V WX
Z A 11 C D E F G H I J K L M N 0 I Q R STU VW x Y -_ ____ ___ __ __ _ _ _ L c __Z
0 S Y S T
14 18 24 18 19
7 4 17 2 8
21 22 15 20 1
19 22 25 19
Teks-kode VPXZGIAXIVWPUBTTMJPWIZITWZT
Untuk melakukan dekripsi juga bisa menggunakan kunci yang sarna dengan modulo 26
recta
Ilaintext J K L M NOr Q R STU V W X Y Z
Tabula recta digmakan 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) bull k(i mod m))
68 69 Pengantar IImu Kriptografi
dengan
huruf ke-i dalam teks-asli
kn huruf ke-n dalam kunci
m panjang kunci dan
V(xy) 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 teksshyasli dan gans lurus ke samping dari posisi kunci maka akan ditemukan huruf un Huruf U inilah yang akan menjadi teks-kode Begitu seterusnya Coba perhatikan contoh berikut ini
Algoritma Kriptografi Kla~ik
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 teksshykode belum tentu bisa didekripsikan menjacli clua huruf yang sarna dalam teks-asli
70 71 Pengantar Ilmu Kriptografi
Pada eontoh tersebut huruf M pad a teks-kode berasal dari huruf H dan T pada teks-ash
Gambar memperlihatkan perbandinggan frekuensi kemuneulan huruf pada suaru teks-asli dan huruf pada teks-kode dengan menggunakan kode Vigenere
2 Plaintext
2k
11 15 2 26
1-1--+------------
6
ftl K I~ I
Gambar 45 Perbondingon Frekuensi Kemunculon Huruf podo Kode Vigenere
Kelemahan utama kode Vigen ere adalah kuncinya yang pendek dan pengshygunaannya yang berulang-ulang Jika kriptanalis dapat menentukan panjang kunei saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa kode Kaisar
Metode Kasiski membanru menemukan panjang kunci-kode Vigenere Metode Kasiski memanfaatkan keuntungan bahasa Inggris yang tidak hanya mengandung perulangan huruf tetapi juga perulangan pasangan huruf atau tripel huruf seperti TH THE dsb Perulangan huruf ini memungkinkan unruk menghasilkan kriptogram yang berulang
Contoh
Teks-asli CRYPTO IS SHORT FOR CRYPTOGRAPHY
Kunci abcdab cd abcda bed abedabedabed Teks-kode CSASTP KV SIQUT GQU CSASTPIPAQJB
Algoritma Kriptografi Klasik
Pada eontoh tersebut CRYPTO dienkripsi menjadi kriptogram yang sarna yaitu CSATP Hal ini dikarenakan jarak antara dua buah string yang berulang di dalam teks-asli merupakan kelipatan dad panjang kunci sehingga string yang sarna tersebut akan muneul menjadi kriptogram yang sarna pula di dalam teks-kode Tujuan dad metode Kasiski adalah meneari dua atau lebih kr ptogram yang berulang untuk menentukan panjang kunci
Langkah metode Kasiski adalah sebagai berikut
1 Temukan semua kriptogram yang berulang di dalam teks-kode (pesan yang panjang biasanya mengandung kriptogram yang berulang)
2 Hitung j-ak antara kriptogram yang berulang
3 Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi menyatakan panjang kunei yang mungkin)
4 Tentukan irisan dari himpunan faktor pembagi tersebut Nilai yang muncul di dalam irisan menyatakan angka yang muneul pada semua faktor pembagi dari jarak-jarak tersebut Nilai tersebut mungkin adalah panjang kunei Hal ini karena string yang berulang dapat munetll bertindihan (coincidence)
Setelah panjang kunci diketahui maka langkah berikutnya adalah menentushykan kata kunci Kata kunei dapat ditentukan menggunakan exhaustive kef search Jika panjang kunei adalah p maka jumlah kunci yang harus dieoba
adalah 26Pbull Namun akan lebih efisien bila menggunakan teknik analisis
frekuensi
Langkah-Iangkah untuk melakukan analisis frekuensi adalah
1 Misalkan panjang kunei yang sudah berhasil dideduksi adalah n Setiap huruf kelipatan ke-n pasti dienkripsi dengan huruf kunci yang sarna Kelompokkan setiap huruf ke-n bersama-sama sehingga kriptanalis memiliki n buah pesan masing-masing dienkripsi dengan substitusi alfabet-tunggal (dalam hal ini kode Kaisar)
2 Tiap-tiap pes an dari hasil langkah 1 dapat dipeeahkan dengan teknik analisis fJ ekuensi
3 Dari hasillangkah 3 kriptanalis dapat menyusun huruf-huruf kunei atau menerka kata yang dapat membantu memeeahkan teks-kode
72 Pengantar IImu Kriptografi
Pada abad kemiddot19 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
425 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris pada Perang Boer (Perang Dunia I) pada awal Abad 20 untuk mengirim pes an antarmarkas yang ada di Inggris
Sir Charles Wheatstone Boron lyon
Gambar 46 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet) Dengan begitu kunci yang digunakan ada 25 alfabet Jumlah kemungkinan kunci pada kode Playfair 25=155112IO043330985984000000
Algoritma Kriptografi Klasik 73
Contch
Diketahui teks-asli Di dalam jiwa ya
Uotuk melakukan enkripsi kode berikut
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1 Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom maka pergerakan karakter dimulai dari huruf kedua secara vertikal menuju karakter teks-kode yang pertama Misalnya teks-as1i di huruf keduanya adalah Hi maka dari i yang di dalam matriks bergerak vertikal mencari huruf yang sebaris dengan d maka akan dijumpai karakter n (sebagai teks-kode) Untuk karakter yang kedua d mencari sisi lain seperti cara karakter Hi sehingga dijumpai karakter I Jadi teksshykode dad di adalah nl
S DT A ~ e ~E R II
vGF IK -pa UM Q
yW x zV
2 Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom atau baris yang sarna dan saling berdekatan maka digunakan prinsip enkripsi atau dekripsi ke bawah atau ke samping Cootoh untuk mengenkripsi an maka karakter di sam ping n adalah d da) karakter di sam ping a adalah un sehingga teks-kodenya menjadi dn
5 T A N D
E R C H B
K F G ] 11 M 0 p Q umiddot V W X Y Z
~L ~II ~ S T PI
e BHE BshyF G I LK
p ~QM a UI V YW IX Zl
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
48 Pengantar IImu Kriptografi
~A~ 1 AlGORllMA KR1P10GRAfl KlAS1K
41 PENDAHUlUAN
Kriptografi sudah dipakai sejak empat abad yang lalu Perkembangan kripshytografi begitu pesat sampai sekarang Untuk mendapatkan pengertian bagaishymana 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
42 TEKNIK SUBSITUSI
Substitusi merupakan penggantian setiap karakter teks-asli dengan karakter lain
A
F
K
p c U X
50 51 Pengantar Ilmu Kriptografi
Terdapat empat istilah substimsi kode antara lain
1 Monoalphabec setiap karakter teks-kode menggantikan salah sam karakter teks-asli
2 Polyalphabec setiap karakter teks-kode dapat menggantikan lebih dari satu maeam karakter teks-asH
3 Monogral sam enkripsi dilakukan terhadlp satu karakter teks-asli
4 Polygraph sam enkripsi dilakukan terhadap lebih dari sam karakter teksshyash
421 KODE KAISAR
Subsitusi kode yang pertama dalam dunia penyanuian terjadi pada pemerinshytahan Yulius Caesar yang dikenal dengan kode Kaisar dengan mengganti posisi huruf awal dari alfabet atau disebut juga dengan algoritma ROT3
Caesar Cipher (ROT3)
Plain Text i----
Encoded Text -ABC DEF ----i
Hello Khoor
Attack DNWdfn-Seeara lebih detail eoba perhatikan eontah berikut
Q
23 24 25 - --
A B ( D E F G H I J K l M N 01 p II ~ 1 U V W X i Z
C I 2 j ~ 5 f I 8 ~ Ie 11 12 1J 14 liS 16 17 18 19 20 21 2l
Menjadi
u v w x ) Z A B
19 ZC 21 22 2J 24 25
Jika penggeseran yang dilakukan sebanyak tiga kali maka kunei untuk dekripsinya adalah 3 Penggeseran kunci yang dilakukan tergantung keinginan pengirim pesan Bisa saja kunei yang dipakai a 7 b 9 dan seterusnya
Algoritma Kriptografi Klasik
Contoh algoritma kode Kaisar Untuk teks-asH diberikan simbol P dan teksshykodenya He dan kunci K Jadi rumusnya dapat dibuat sebagai berikut
C=E(P) = (P+K) mod (26)
Pada eontoh di atas kita bisa memasukkan kunci dengan nilai tiga sehingga menjadi
C=E(P) = (P+3) mod (26)
Rumus dekripsinya menjadi seperti berikut
P = D(C) (C K) mod (26)
Dari eomoh di atas dengan memasukkan kunci tiga maka
P D(C) = (C 3) mod (26)
Jika diberikan teks-ash sebagai berikut
GEMPA YOGYA MENELAN KORBAN TIDAK SEDlKIT DAN SAMPAI SEKARANG MASIH MENYISAKAN TRAUMA BAGI ORANG-ORANG KOTAGUDEG
Dengan menggunakan kunci tiga maka akan didapat teks-kode berikut
JHPDBRJBDPHQHODQNRUEDQWLGDNVHGLNLWGDQVDPSDL VHND UDQJPHNDUDQJPHQBLVDNDQWUDPDEDJLRUDQJRUDQJNRWDJXG HJ
Kode Kaisar dipeeahkan dengan eara brute force attaCl suatu bentuk
serangan yang dilakukan dengan meneoba-eoba berbagai kemungkiuan
untuk menemukan kunei Bisa juga menggunakan exJlaustive key search karena jumlah kunei sangat sedikit (hanya ada 26 kunei) Meski sedikit kunei suatu kode eukup merepotkan kriptanalis karen a untuk menemukannya dengan brute foree attaek dibutuhkan waktu yang eukup lama
Ada cara lain yang dapat digunakan kriptanalis untuk memeeahkannya yaitu dengan melihat frekuensi kemuneulan huruf sepeni yang ditunjukkan tabel frekuensi kemuneulan huruf berikut ini
-52 Pengantar IImu Kriptografi
Tabel 4 I Frekuensi Kemunculan Huruf dalam Bahasa
Karakter A
Peluang 0082
Karakter N
Peluang 067
B 015 0 075 C 028 P 019 D 043 Q 001 E 127 R 060 F G
022
020 S T
063
09 H 061 U 02middotc~
I 070 V 010 I J
K 002 008
W X
023
001 L 040 Y 020 M 024 Z 001
Pada teks bahasa Indonesia yang paling sering muncul adalah 10 huruf pada tabel di bawah ini
Tabel 42 Sepuluh Huruf yang Sering Mun(ul dalam Bahasa Indonesia
Letter Frequency
kemunculan ()
A 1750
N 1030
I 870
E 750
K 565
T 510
R 460
0 450
S 450
M 450
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
A~()rmo Kr()~ro Koltlt 5~ ~ ~Listing program untuk mendekipsi me yang menggunakan kode Kaisar
file menggunakan Caesar cipher 1
sebagai berkas ma ukannbullbull middotmiddotbull
argv[lmiddotJ argvl2J I
1 Programdekr1psi
hneluda ltstdio hgt
main (int argo bull char argv[J)I
FILE Fin Foutj char p C int~n~ 1 It
Fin middotfop41n(argv[ll rb) if (Fin - NULL)
printt(Kesalahan dalam mmnbuka s Fout - fopen(arqv[2] Itwblf )
printt(noakripsi s manjadi nprintf(n) printf(tlk scant (d ampk) hil laquoc - lt]ltItc(Finraquo = EO) I P - (e - k) 256 pute (P Fout)
) feloe(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 41 AJgorima R0T13
Sistem enkripsi pada unix dengan membagi alfabet n = 26 menjadi 13 sehingga satu huruf dengan huruf yang lain saling berhadapan Jika teksshyaslinya 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 (Mraquo
54 55
Pengantar IImu Kriptografi
ROT13 didesain untuk keamanan pada sistem operasi UNIX yang sering digunakan pada forum on-line berfungsi untuk menyelubungi isi artikel sehingga hanya orang yang berhak yang dapat membacanya Contoh proses
enkripsi ROTl3 danat dilihat di bawah ini
ENKRlJSI MENGGUNAKAN nonl
Gombar 42 Pro~e~ ROT13
Proses dekripsi
IROSES DEKlurSI ROTI3
PLAINTEXT
Gombar 43 Proses Dekrpsi ROfl3
Pada perkembangannya algoritma kode Kaisar memberikan suatu gagasan baru untuk menggunakan kunei lain yang disebut poly-alphabetic Kunci bisa jadi nama alamat atau apa saja yang diinginkan oleh pengirim pesan Coba
perhatikan contoh di bawah ini
Kode Kaisar dengan menggunakan satu kunci bisa disebut dengan substitusi deret campur kata kunei Yang perlu diingat tidak ada perulangan huruf dalam hal ini DONY ARlYUS menjadi DONY ARIUS Karena ada
pengulangan huruf Y maka huruf itu tidak dipakai lagi
Menggunakan satu kunei
Agoritma Kriptografi Kasik
Teks-asli MBAH MARIJAN SEKARANG SUDAH MENJADI ARTIS
Kunei MERAPI
Teks-kode JEMCJMQDFMKSPGMQMKBSUAMqPKFMADMQTDS
Menggunakan dua kunci
K1
Teks-asli BELAjAR KRIPTOGRAFI UNTUK MENGAMANKAN DATA
Kl DONY ARlYUS
K2 YOGY AKART A
Teks-kode IYKAOAFGFPDJBCFAMPLTJLGRYTCARATGATXAJA
Menggunakan lebih dari satu kunei
K2 1 1v 1 I 1 ~ 1I I I 1 I J
Kl
Kl GEMPA
K2 MBAH
K3 MERAPI
Teks-kode HJSFWFTFLFPFDOKFTUCRJLFSFOAFUTRJHUAFUFISUAF DWJSDHFLFTUCUIQFOU2007
56 Pengantar IImu Kriptografi
Dengan menggunakan lebih dari satu kunci bisa menggunakan metode pendistribusian kunci-kunci yang ada M(tode hi terdiri dari tiga bagian yaitu bIok karakter dan zig-zag
1 Blok
Metode untuk melakukan enkripsi dengan menggunakan blok adalah dengan membagi jumlah teks-asli menjadi blok-blok yang ditentukan tergantung dari keinginan pengirim pes an Coba perhatikan contoh di bawah ini
Teks-asH BANJIR MEREDAM JAKARTA HARGA BAHAN POKOK NAIK
Teks-asH di atas dibagi menjadi 8 blok Setiap blok berisi 6 karakter Karena blok yang ketujuh tidak mencukupi maka ditambah dengan karakter X atau karakter lain yang diinginkan
--_--- --_--- [MJAKAR] [TAHARGJ rABAHNl li~ I AIKXXX
Block 1 Block 2 Block 3 Block 4 Block 5 Illock 6 Block 7
KI
K2
KJ
Didapat teks-kode berikut
ODGBSI HKNKAY EllKCKN PDUDlI YOYBYI LJCJCH DSCXXX I I I I I I I I I
Kl K2 K3 K1 K2 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 mengshy
enkripsi dua blok sekaligus dengan memakai satu kunci (Kl K2 atau K3) dan seterusnya Maka didapat hasil pendistribusian kunci untuk teks-kode sebagai berikut
ODGBSLHKNKA YEBKCKNPDUDLlYOYBYILJCJCHDSCXXX
~~ltaorimo ltxioltaro ltO( 57
Dengan menggunakan metode ini jika satu kunci ditemukan oleh kriptanalis belum tentu pesan bisa dipecahkan karena masih ada beberapa kunci lagi yang harus dicari
2 Karakter
Metode ini menggunakan pendistribusian per karakter hampir sama dengan metode biok Contoh pendistribusian per karakter adalah seperti di bawah ini
I I I I j TI-rIIJIIIIIlulIIAI~ILI_
K] I I - - r ITT I II n 1 I __ Iv ~ I I -ILD () N Y A n 1 T I lt Jl r r t -7 rr ow- _ _ _ __
10 K R J f T n r A r r r T bull bull bullbull
o Y Hll C N r K N A A K I D K C Y N PYA 0 N G
~j 1~u ~j 1~u ~j 1~u Jj 1~u K3 KJ KJ KJ K3 KJ KJ KJ
fjIqPll rIP]I KJ KJ KJ KJ KJ
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
Kli - I J bull bull I ~ vI ~ ~ t - t bull - U J - - m lt I - I - -I 1 - )
K21~~~1EI~ I ~ IFI~I J-I~I~lol IQlnls ITlulwlxlylz I
Dari teks-asH
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDER ITA
didapat teks-kode
FMPKCFKPVKJGKSSOOMOSHKTJKFXKTFMOCNOMPYMJCTK
422 KODE GESER
Teknik substitusi kode geser (shift) cengan 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 114
--- shyp Q R S T U V W X Y Z
15 16 17 18 19 20 21 22 23 24 25
Teks-asli We Will Meet at Mid Night
Kalimat di atas mendaoat angka dari setiap huruf sebagai berikut
22 4 22 8 II II 12 4 4 19 deg19 12 8 3 13 8 6 7 19
Untuk mendapatkan teks-kode kita mempunyai kunei 11 Dengan meshynambahkan setiap nilai dari teks-asli dengan kunci 11 maka didapat
7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4
Jqo~mo lttoq~o ltolt 59
Jika lebih dari 20 setelah ditambah dengan kunci maka akan dikurangi
dengan 26 Misalnya 22+11= 33 - 26 7 Setelah dikonversi menjadi huruf maka akan didapatkan teks-kode
HPHTWWXPPELEXTOYTRSE
Teks-asli We will meet at mid night
Teks-kode HPHTWWXPPELEXTOYTRSE
Kunci 11
423 KODE Hill
Kode Hill termasuk salah satu sistem kripto polialfabetik yang berarti karakter alfabet bisa dipetakan ke lebih dari satu maeam karakter Kode ini
ditemukan pada tahun 1929 oleh Lester S Hill Misalkan m adalah bilangan bulat positif dan P = C Ide dari kode Hill adalah dengan mengambil
m kombinasi linear dari m karakter alfabet dalam satu elemen teks-asli sehingga dihasilkan TIl alfabet karakter dalam saru elemen teks-asli
Misalkan m = 2 maka dapar ditulis suatu elemen teks-asli sebagai x = (XI X2)
dan suam elemen teks-kode sebagai y = (yl Y2) Oi sini yl yl adalah kombinasi linear dari XI dan X2 Misalkan
1 (jyl = llxl + 3X2
Ie j l y2 8xI + 7X2 dimlis dalam notasi matriks sebagai berikut
i) (jI11 811 j - q
(YIY2) (xx2 ) 3 shy -( 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 kj maka dapat ditulis II [ cmiddot ( r
K (kJ Untuk x (XI Xm) E P dan K E K dihitung y eK(x) = (Yl ~ sebagai berikut -
kll 1 o
klmjk2J k2bull2 k2m Ii
(Y)Y2 (x) x2 X sS ~ ~ -
H
2
m
km 2 k~fTJ o
o
60 Pengantar IImu Kriptografi
dengan kat a lain y xK
Dikatakan bahwa teks-kode diperoleh dari teks-asli dengan cara transformasi
linear Untuk melakukan dekripsi menggunakan matriks inversi K-I dekripsi
dilakukan dengan rumus x =yK-
1 Perkalian matriks memiliki sifat asosiatif yaitu (AB)C A(BC)
2 Matriks identitas m x m yang ditulis dengan Im adalah matriks yang
berisi 1 pada diagonal utama dan berisi 0 pada elemen lainnya
Contoh matriks identitas 2 x 2
12 =
1m disebut dengan matriks identitas karena AIm A untuk sembarang
matriks I x m dan 1mB B untuk sembarang matriks m x n
3 Matriks inversi dari A (jika ada) adalah kl di mana AAmiddotI kA = 1m
Dengan menggunakan sifat-sifat matriks di atas maka
y xK
yKmiddotI (xK)KI = x(KKmiddotI) xlm X
Contoh
Dapat dilihat bahwa matriks enkripsi pada contoh sebemmnya memiliki
inversi pada Z26
fll 8)-1 l( 7 18) 3 7 23 11l
-
r A f
n~ Karena
III ~J (3 1 =(117+823 l118+8I1J
l3 37+723 318+711 II 261 2861
( 182 131) i
=(~ 1
Ingat bahwa semua operasi aritmetik di atas dilakukan pada modulo 26
~ AgorHmo Kriptogroti Kosik 61
Sebuah contoh untuk memberikan gambaran tentang enkripsi dan dekripsi dalam kode Hill
Misalkan kunci yang dipakai adalah
K=C ~) Dari perhitungan di atas diperoleh bahwa
K-I =( 7 18J 23 11
Misalkan untuk mengenkripsi teks-asli JULY ada 2 elemen teks-asli untuk dienkripsi
1 (920) ~
2 (11 24) ~ L Y
Kemudian lakukan perhitungan berikut
11 81 (9 20) ( 3 7j =(99+60 72+140) (3 4) ~ DE
dan
(11 8)(11 bull 24) 3 7 (121+72 88+168)=(11 22) ~ LW
sehingga enkripsi untuk JULY adalah DELW
Untuk mendekripsi dilakukan dengan cara
7 18)(3 4) 23 11 (9(
dan i
(11 =(11 bull 24)bull 223 -)
sehingga teks-asli diperoleh kern bali
Dekripsi hanya mungkin dilakukan jika matriks K memiliki inversi Suatu
matriks K memiliki inversi jika dan hanya jika determinannya tidak no
lt)
62 Pengantar IImu Kriptografi
Namun karena 226 maka matriks K memiliki inversi modulo 26 jika dan
hanya jika gcd(det K 26)=1
Unruk matriks A berukuran 2 x 2 nilai determinannya adalah
det A alla22 - al2a21
dan matriks inversi dari A adalah
322 -312)(det ( -321 311
Contoh
K = (113 7
maka
11 detK det 3 ~j 11 7 8 3 mod 26
(
= 77 - 24 mod 26
53 mod 26
=1
kemudian 1-1 mod 26 1 sehingga matriks inversinya adalah
(11
=l3 =(3 11
Contoh
Kode Hill dengan menggunakan matriks 3 x 3 dltngan kunci matriks (42 3 6 33 312)
Diketahui teks-asli berikut KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
ltasik 61
c~ -lt ~~~ B ~ B c oc
ltlJ_i j) iii -e~ D 0shy
t lt1 t I~ o
+ + +r--+ rKEN1 l ~~ 40 + 8 + 39)
(423) (10) (1~~ Mod 26 () ( H) JH6 3 3 4 50 + 12 + 39 (3 2 1 13 30 + 4 + 25 60) 8 I
3) AIK
4 0+ 16 + 30)( I I 0 + 24 + 30 uee
( ( (i~) Mod 26 (y) (g)I 2 1 0+ 8 + 20
Alm 0 + 26 + 21 )
= 0 + 39 + 21 VIB( i ~ ~) (~3) Gn Mod 25 C~1) (r)I _ 1 7 ( 0+13+14
ARG
(4 2 I) (0) (0 + 14 + 18 ) ( 5 ) (G)(32)6 3 3 17 0 + 21 + 18 39 Mod 25 13 N GND 3 2 1 5 0 + 17 + 12 29 3 0
ABB
(4 2 I) (0) (0 + 2+ 3) (5) (21) (V)6 3 3 1 0 + 3 + 3 5 Mod 25 20 = U VUX 3 2 1 1 0 + 1 + 2 3 23 X
MME
( 4 2 I) (12) (48 + 24 + 12) (841 (6) (G6 3 3 12 72 + 35 + 12 120 Mod 26 = 15 = 0)1 GOE 3 2 1 4 36 + 12 + 8 56 4 E
( I)
MHU
(12) (48+2+60)( I I 1 = 72 + 3 + 60 GFZ 4 2 (~~J) Mod 26 (15) (~)I 2 1 20 36 + 1 + 40
ATR
0+ 38 + 51) (89( i ~ ~) (109) (0+58+51 109 ~1) (~) LFBMod26=
3 2 1 17 0+ 19 + 34 531
64 Pengantar IImu Kriptografi
AKY
0 + 20 + ) (92) (14) (0) 0 + 30 + 7272 102 Mod 26 = 24 = Y OYG 3 2 1 24 o+ 10 + 48 58 6 G
ATK
( ~ ~ ~) (100) (
( ( (Q)0+38+30) (68) (16)~ ~ ~) (109) = 0 + 57 + 30 = 87 Mod 26 9 J QJN
~ 2 1 10 o+ 19+ 20 39 13 N
Eel
16 + 4 + 24) = 24 + 6 + 24 = SCE~~~) (~) G~) Mod 26 (~) =(~) =( ~ 2 1 8 ( 12+2+16
LME
2 )6 ~ = Mod 26 CKB ( 3 2 1
NDE
I 2 52+6+12) (70) (18)6 3 78 + 9 + 12 = 99 Mod 26 21 SVY( 3 2 ~ ) (1I) ( 39 + 3 + 8 50 24
RIT
4 2 68+16+57) ~32) (2) (C)6 = 102+24+57 183 Mod26= 1 = B CST( (~) C~)3 2 51 + 8 + 38 97 19 T
AXX
(~ ~ ~) () 0 +46 +69) (11~ (11) (L)= 0 + 69 + 69 = 138 Mod 26 8 I LlR(3 2 1 23 o+ 23 + 46 69 17 R
teks-kode dari teks-asli
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
adalah
JHIUCCVIBGNDVUXFQCGFZLFBOXBQJNSCECKBSVYCBTLlR
Pada (ontoh di atas kekurangan pada akhir kalimat ditambah dengan humf x untuk mencukupi perkalian matriksnya Teks-kode dari Kode Hill juga bisa disajikan dalam bentuk angka seperti 9 7 8 20 222181 613321 2023 616465251151142461691318242101182124211911817atau menggunakan heksadesimal dan binari
65Algoritma Kriptografi Klasik
424 KOOE VIGENERE
Kode Vigenere termasuk kode abjad-majemuk (polyalphabetic substitution cipher) Dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis Blaise de Vigenere pada Abad 16 tahun 1586 Sebenamya Giovan Batista Belaso telah menggambarkannya untuk pertama kali pada tahun 1553 seperti ditulis di dalam buku La Cifra del Sig Algoritma ini bam dikenal luas 200 tahun kemudian dan dinamakan kode Vigimere Vigenere mempakan pemicu perang sipil di Amerika dan kode Vigenere digunakan oleh Tentara Konfiderasi (Confederate Army) pada Perang Sipil Amerika (American Civil War Kode ViJenere berhasil dipecahkan oleh Babbage dan Kltsiski pada pertengahan Abad 19
Gambar 44 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 teksshyasli 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
4241 ANGKA
Teknik subsitusi Vigenere dengan menggunakan angka dilakukan dengan menukarkan humf dengan angka hampir sama dengan kode geser
T HIS CRY P T
19 7 8 18 2 17 24 15 19
2 B 15 7 4 17 2 8 15
21 15 23 25 6 8 0 23 8
ElM SINIOITISIEICIUIRIE 4 12
15 7
B
4
18 13 14 19 18 4 2 20 17 4
17 2 8 15 7 4 17 2 8 15
19 19 12 9 15 22 8 25 8
Teks-asli This cryptosystem is not secure
Kunci (28 157 4 17)
66 antar IImu Kri
A I 8 I C I DIE I FIG I H J IKILIM
o I 1 I 2 I 3 I 4 I 5 I 6 I 7 I a I 9 110 111 12
N 0 P Q R STU V W x y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Kunci dengan 6 huruf kode jika ditukar dengan angka akan menjadi K 0= (2 8 157417) dan reks-aslinya This Cryptosystem is Not Secure
K05ik 67
4VU 1URUf
Ide dasarnya adalah dengan menggunakan kode Kaisar tetapi Jumlah pershygeseran hurufnya berbeda-beda untuk setiap periode beberapa huruf tertentu Untuk mengenkrlpsi pe~an dengan kode Vegenere digunakan tabula
(disebut juga bujUIsangkar Vigenere seperti gambar di bawah ini
ABC D E F G H I
A ABCDEFGHI J K L M N 0 r Q R S T U V W X Y Z
n B C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A
C C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A B
D D E F G H I J K L M N 0 p Q R S T U vlwx y Z A B Cl
E E F G H I J K L M N 0 r Q R S T U V W X Y Z A B C D
F F G H I r K L M N 0 I Q R S T U V WX Y Z A B C D E
G G H I J K L M N 0 I Q It S T U V W X Y Z A B C D E F
H H I J K L M N 0 P Q R S T U V WX Y Z A B C D E F G
I J K L MN o l Q R S T U V W XY Z A B C D E FmiddotG ~cshy - - f-shyJ K L M N 0 l Q R S T U V WX Y Z A n C D E F G H I - iK L MN o l Q R S T U V W X Y Z A B C D E F G H I J-
G ITT e-middot
L M NO l Q R S T U VW X Y Z A B C D E F J K
I
K J u K 11 L
~ N 0 Q R S T U V W X Y Z A n C D E F G H I J K L N 0 I Q It S T U VW X Y Z A B C D E F G H I J K L M
o l U V WX Y Z C D E F~ H shy
Q R S T A B I J K L MN
I Q It S T U VW X Y Z A 11 C D E F G H ri J K L M N 0
C M N
0
l
Q S It S T U VW X Y Z A B C D E F G H I J K L MN o I
R S T U V W X Y Z A n C D E F G H I J K L M N 0 r Qf-shy TS U V WX Y Z A B C D E F G H I J K L M N o r Q It
f-shy -Ishy -I-shy
It
S
T T U VW x y Z A B C D E F G H I J K L MN 0 I Q It S
U U v WX Y Z A B C D E F G H I J K L MN o rQ It s T V VW X Y Z A B C D E F G H I J K L MN o I Q R S T U
_
W WX Y Z A B C D E F G H I J K L MN o r R It S T U V x x Y Z A B C D E F G H I J K L M N 0 r Q It S T U V W Y Y Z A B C D E F G H 1 J K L M N o l Q It S T U V WX
Z A 11 C D E F G H I J K L M N 0 I Q R STU VW x Y -_ ____ ___ __ __ _ _ _ L c __Z
0 S Y S T
14 18 24 18 19
7 4 17 2 8
21 22 15 20 1
19 22 25 19
Teks-kode VPXZGIAXIVWPUBTTMJPWIZITWZT
Untuk melakukan dekripsi juga bisa menggunakan kunci yang sarna dengan modulo 26
recta
Ilaintext J K L M NOr Q R STU V W X Y Z
Tabula recta digmakan 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) bull k(i mod m))
68 69 Pengantar IImu Kriptografi
dengan
huruf ke-i dalam teks-asli
kn huruf ke-n dalam kunci
m panjang kunci dan
V(xy) 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 teksshyasli dan gans lurus ke samping dari posisi kunci maka akan ditemukan huruf un Huruf U inilah yang akan menjadi teks-kode Begitu seterusnya Coba perhatikan contoh berikut ini
Algoritma Kriptografi Kla~ik
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 teksshykode belum tentu bisa didekripsikan menjacli clua huruf yang sarna dalam teks-asli
70 71 Pengantar Ilmu Kriptografi
Pada eontoh tersebut huruf M pad a teks-kode berasal dari huruf H dan T pada teks-ash
Gambar memperlihatkan perbandinggan frekuensi kemuneulan huruf pada suaru teks-asli dan huruf pada teks-kode dengan menggunakan kode Vigenere
2 Plaintext
2k
11 15 2 26
1-1--+------------
6
ftl K I~ I
Gambar 45 Perbondingon Frekuensi Kemunculon Huruf podo Kode Vigenere
Kelemahan utama kode Vigen ere adalah kuncinya yang pendek dan pengshygunaannya yang berulang-ulang Jika kriptanalis dapat menentukan panjang kunei saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa kode Kaisar
Metode Kasiski membanru menemukan panjang kunci-kode Vigenere Metode Kasiski memanfaatkan keuntungan bahasa Inggris yang tidak hanya mengandung perulangan huruf tetapi juga perulangan pasangan huruf atau tripel huruf seperti TH THE dsb Perulangan huruf ini memungkinkan unruk menghasilkan kriptogram yang berulang
Contoh
Teks-asli CRYPTO IS SHORT FOR CRYPTOGRAPHY
Kunci abcdab cd abcda bed abedabedabed Teks-kode CSASTP KV SIQUT GQU CSASTPIPAQJB
Algoritma Kriptografi Klasik
Pada eontoh tersebut CRYPTO dienkripsi menjadi kriptogram yang sarna yaitu CSATP Hal ini dikarenakan jarak antara dua buah string yang berulang di dalam teks-asli merupakan kelipatan dad panjang kunci sehingga string yang sarna tersebut akan muneul menjadi kriptogram yang sarna pula di dalam teks-kode Tujuan dad metode Kasiski adalah meneari dua atau lebih kr ptogram yang berulang untuk menentukan panjang kunci
Langkah metode Kasiski adalah sebagai berikut
1 Temukan semua kriptogram yang berulang di dalam teks-kode (pesan yang panjang biasanya mengandung kriptogram yang berulang)
2 Hitung j-ak antara kriptogram yang berulang
3 Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi menyatakan panjang kunei yang mungkin)
4 Tentukan irisan dari himpunan faktor pembagi tersebut Nilai yang muncul di dalam irisan menyatakan angka yang muneul pada semua faktor pembagi dari jarak-jarak tersebut Nilai tersebut mungkin adalah panjang kunei Hal ini karena string yang berulang dapat munetll bertindihan (coincidence)
Setelah panjang kunci diketahui maka langkah berikutnya adalah menentushykan kata kunci Kata kunei dapat ditentukan menggunakan exhaustive kef search Jika panjang kunei adalah p maka jumlah kunci yang harus dieoba
adalah 26Pbull Namun akan lebih efisien bila menggunakan teknik analisis
frekuensi
Langkah-Iangkah untuk melakukan analisis frekuensi adalah
1 Misalkan panjang kunei yang sudah berhasil dideduksi adalah n Setiap huruf kelipatan ke-n pasti dienkripsi dengan huruf kunci yang sarna Kelompokkan setiap huruf ke-n bersama-sama sehingga kriptanalis memiliki n buah pesan masing-masing dienkripsi dengan substitusi alfabet-tunggal (dalam hal ini kode Kaisar)
2 Tiap-tiap pes an dari hasil langkah 1 dapat dipeeahkan dengan teknik analisis fJ ekuensi
3 Dari hasillangkah 3 kriptanalis dapat menyusun huruf-huruf kunei atau menerka kata yang dapat membantu memeeahkan teks-kode
72 Pengantar IImu Kriptografi
Pada abad kemiddot19 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
425 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris pada Perang Boer (Perang Dunia I) pada awal Abad 20 untuk mengirim pes an antarmarkas yang ada di Inggris
Sir Charles Wheatstone Boron lyon
Gambar 46 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet) Dengan begitu kunci yang digunakan ada 25 alfabet Jumlah kemungkinan kunci pada kode Playfair 25=155112IO043330985984000000
Algoritma Kriptografi Klasik 73
Contch
Diketahui teks-asli Di dalam jiwa ya
Uotuk melakukan enkripsi kode berikut
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1 Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom maka pergerakan karakter dimulai dari huruf kedua secara vertikal menuju karakter teks-kode yang pertama Misalnya teks-as1i di huruf keduanya adalah Hi maka dari i yang di dalam matriks bergerak vertikal mencari huruf yang sebaris dengan d maka akan dijumpai karakter n (sebagai teks-kode) Untuk karakter yang kedua d mencari sisi lain seperti cara karakter Hi sehingga dijumpai karakter I Jadi teksshykode dad di adalah nl
S DT A ~ e ~E R II
vGF IK -pa UM Q
yW x zV
2 Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom atau baris yang sarna dan saling berdekatan maka digunakan prinsip enkripsi atau dekripsi ke bawah atau ke samping Cootoh untuk mengenkripsi an maka karakter di sam ping n adalah d da) karakter di sam ping a adalah un sehingga teks-kodenya menjadi dn
5 T A N D
E R C H B
K F G ] 11 M 0 p Q umiddot V W X Y Z
~L ~II ~ S T PI
e BHE BshyF G I LK
p ~QM a UI V YW IX Zl
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
50 51 Pengantar Ilmu Kriptografi
Terdapat empat istilah substimsi kode antara lain
1 Monoalphabec setiap karakter teks-kode menggantikan salah sam karakter teks-asli
2 Polyalphabec setiap karakter teks-kode dapat menggantikan lebih dari satu maeam karakter teks-asH
3 Monogral sam enkripsi dilakukan terhadlp satu karakter teks-asli
4 Polygraph sam enkripsi dilakukan terhadap lebih dari sam karakter teksshyash
421 KODE KAISAR
Subsitusi kode yang pertama dalam dunia penyanuian terjadi pada pemerinshytahan Yulius Caesar yang dikenal dengan kode Kaisar dengan mengganti posisi huruf awal dari alfabet atau disebut juga dengan algoritma ROT3
Caesar Cipher (ROT3)
Plain Text i----
Encoded Text -ABC DEF ----i
Hello Khoor
Attack DNWdfn-Seeara lebih detail eoba perhatikan eontah berikut
Q
23 24 25 - --
A B ( D E F G H I J K l M N 01 p II ~ 1 U V W X i Z
C I 2 j ~ 5 f I 8 ~ Ie 11 12 1J 14 liS 16 17 18 19 20 21 2l
Menjadi
u v w x ) Z A B
19 ZC 21 22 2J 24 25
Jika penggeseran yang dilakukan sebanyak tiga kali maka kunei untuk dekripsinya adalah 3 Penggeseran kunci yang dilakukan tergantung keinginan pengirim pesan Bisa saja kunei yang dipakai a 7 b 9 dan seterusnya
Algoritma Kriptografi Klasik
Contoh algoritma kode Kaisar Untuk teks-asH diberikan simbol P dan teksshykodenya He dan kunci K Jadi rumusnya dapat dibuat sebagai berikut
C=E(P) = (P+K) mod (26)
Pada eontoh di atas kita bisa memasukkan kunci dengan nilai tiga sehingga menjadi
C=E(P) = (P+3) mod (26)
Rumus dekripsinya menjadi seperti berikut
P = D(C) (C K) mod (26)
Dari eomoh di atas dengan memasukkan kunci tiga maka
P D(C) = (C 3) mod (26)
Jika diberikan teks-ash sebagai berikut
GEMPA YOGYA MENELAN KORBAN TIDAK SEDlKIT DAN SAMPAI SEKARANG MASIH MENYISAKAN TRAUMA BAGI ORANG-ORANG KOTAGUDEG
Dengan menggunakan kunci tiga maka akan didapat teks-kode berikut
JHPDBRJBDPHQHODQNRUEDQWLGDNVHGLNLWGDQVDPSDL VHND UDQJPHNDUDQJPHQBLVDNDQWUDPDEDJLRUDQJRUDQJNRWDJXG HJ
Kode Kaisar dipeeahkan dengan eara brute force attaCl suatu bentuk
serangan yang dilakukan dengan meneoba-eoba berbagai kemungkiuan
untuk menemukan kunei Bisa juga menggunakan exJlaustive key search karena jumlah kunei sangat sedikit (hanya ada 26 kunei) Meski sedikit kunei suatu kode eukup merepotkan kriptanalis karen a untuk menemukannya dengan brute foree attaek dibutuhkan waktu yang eukup lama
Ada cara lain yang dapat digunakan kriptanalis untuk memeeahkannya yaitu dengan melihat frekuensi kemuneulan huruf sepeni yang ditunjukkan tabel frekuensi kemuneulan huruf berikut ini
-52 Pengantar IImu Kriptografi
Tabel 4 I Frekuensi Kemunculan Huruf dalam Bahasa
Karakter A
Peluang 0082
Karakter N
Peluang 067
B 015 0 075 C 028 P 019 D 043 Q 001 E 127 R 060 F G
022
020 S T
063
09 H 061 U 02middotc~
I 070 V 010 I J
K 002 008
W X
023
001 L 040 Y 020 M 024 Z 001
Pada teks bahasa Indonesia yang paling sering muncul adalah 10 huruf pada tabel di bawah ini
Tabel 42 Sepuluh Huruf yang Sering Mun(ul dalam Bahasa Indonesia
Letter Frequency
kemunculan ()
A 1750
N 1030
I 870
E 750
K 565
T 510
R 460
0 450
S 450
M 450
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
A~()rmo Kr()~ro Koltlt 5~ ~ ~Listing program untuk mendekipsi me yang menggunakan kode Kaisar
file menggunakan Caesar cipher 1
sebagai berkas ma ukannbullbull middotmiddotbull
argv[lmiddotJ argvl2J I
1 Programdekr1psi
hneluda ltstdio hgt
main (int argo bull char argv[J)I
FILE Fin Foutj char p C int~n~ 1 It
Fin middotfop41n(argv[ll rb) if (Fin - NULL)
printt(Kesalahan dalam mmnbuka s Fout - fopen(arqv[2] Itwblf )
printt(noakripsi s manjadi nprintf(n) printf(tlk scant (d ampk) hil laquoc - lt]ltItc(Finraquo = EO) I P - (e - k) 256 pute (P Fout)
) feloe(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 41 AJgorima R0T13
Sistem enkripsi pada unix dengan membagi alfabet n = 26 menjadi 13 sehingga satu huruf dengan huruf yang lain saling berhadapan Jika teksshyaslinya 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 (Mraquo
54 55
Pengantar IImu Kriptografi
ROT13 didesain untuk keamanan pada sistem operasi UNIX yang sering digunakan pada forum on-line berfungsi untuk menyelubungi isi artikel sehingga hanya orang yang berhak yang dapat membacanya Contoh proses
enkripsi ROTl3 danat dilihat di bawah ini
ENKRlJSI MENGGUNAKAN nonl
Gombar 42 Pro~e~ ROT13
Proses dekripsi
IROSES DEKlurSI ROTI3
PLAINTEXT
Gombar 43 Proses Dekrpsi ROfl3
Pada perkembangannya algoritma kode Kaisar memberikan suatu gagasan baru untuk menggunakan kunei lain yang disebut poly-alphabetic Kunci bisa jadi nama alamat atau apa saja yang diinginkan oleh pengirim pesan Coba
perhatikan contoh di bawah ini
Kode Kaisar dengan menggunakan satu kunci bisa disebut dengan substitusi deret campur kata kunei Yang perlu diingat tidak ada perulangan huruf dalam hal ini DONY ARlYUS menjadi DONY ARIUS Karena ada
pengulangan huruf Y maka huruf itu tidak dipakai lagi
Menggunakan satu kunei
Agoritma Kriptografi Kasik
Teks-asli MBAH MARIJAN SEKARANG SUDAH MENJADI ARTIS
Kunei MERAPI
Teks-kode JEMCJMQDFMKSPGMQMKBSUAMqPKFMADMQTDS
Menggunakan dua kunci
K1
Teks-asli BELAjAR KRIPTOGRAFI UNTUK MENGAMANKAN DATA
Kl DONY ARlYUS
K2 YOGY AKART A
Teks-kode IYKAOAFGFPDJBCFAMPLTJLGRYTCARATGATXAJA
Menggunakan lebih dari satu kunei
K2 1 1v 1 I 1 ~ 1I I I 1 I J
Kl
Kl GEMPA
K2 MBAH
K3 MERAPI
Teks-kode HJSFWFTFLFPFDOKFTUCRJLFSFOAFUTRJHUAFUFISUAF DWJSDHFLFTUCUIQFOU2007
56 Pengantar IImu Kriptografi
Dengan menggunakan lebih dari satu kunci bisa menggunakan metode pendistribusian kunci-kunci yang ada M(tode hi terdiri dari tiga bagian yaitu bIok karakter dan zig-zag
1 Blok
Metode untuk melakukan enkripsi dengan menggunakan blok adalah dengan membagi jumlah teks-asli menjadi blok-blok yang ditentukan tergantung dari keinginan pengirim pes an Coba perhatikan contoh di bawah ini
Teks-asH BANJIR MEREDAM JAKARTA HARGA BAHAN POKOK NAIK
Teks-asH di atas dibagi menjadi 8 blok Setiap blok berisi 6 karakter Karena blok yang ketujuh tidak mencukupi maka ditambah dengan karakter X atau karakter lain yang diinginkan
--_--- --_--- [MJAKAR] [TAHARGJ rABAHNl li~ I AIKXXX
Block 1 Block 2 Block 3 Block 4 Block 5 Illock 6 Block 7
KI
K2
KJ
Didapat teks-kode berikut
ODGBSI HKNKAY EllKCKN PDUDlI YOYBYI LJCJCH DSCXXX I I I I I I I I I
Kl K2 K3 K1 K2 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 mengshy
enkripsi dua blok sekaligus dengan memakai satu kunci (Kl K2 atau K3) dan seterusnya Maka didapat hasil pendistribusian kunci untuk teks-kode sebagai berikut
ODGBSLHKNKA YEBKCKNPDUDLlYOYBYILJCJCHDSCXXX
~~ltaorimo ltxioltaro ltO( 57
Dengan menggunakan metode ini jika satu kunci ditemukan oleh kriptanalis belum tentu pesan bisa dipecahkan karena masih ada beberapa kunci lagi yang harus dicari
2 Karakter
Metode ini menggunakan pendistribusian per karakter hampir sama dengan metode biok Contoh pendistribusian per karakter adalah seperti di bawah ini
I I I I j TI-rIIJIIIIIlulIIAI~ILI_
K] I I - - r ITT I II n 1 I __ Iv ~ I I -ILD () N Y A n 1 T I lt Jl r r t -7 rr ow- _ _ _ __
10 K R J f T n r A r r r T bull bull bullbull
o Y Hll C N r K N A A K I D K C Y N PYA 0 N G
~j 1~u ~j 1~u ~j 1~u Jj 1~u K3 KJ KJ KJ K3 KJ KJ KJ
fjIqPll rIP]I KJ KJ KJ KJ KJ
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
Kli - I J bull bull I ~ vI ~ ~ t - t bull - U J - - m lt I - I - -I 1 - )
K21~~~1EI~ I ~ IFI~I J-I~I~lol IQlnls ITlulwlxlylz I
Dari teks-asH
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDER ITA
didapat teks-kode
FMPKCFKPVKJGKSSOOMOSHKTJKFXKTFMOCNOMPYMJCTK
422 KODE GESER
Teknik substitusi kode geser (shift) cengan 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 114
--- shyp Q R S T U V W X Y Z
15 16 17 18 19 20 21 22 23 24 25
Teks-asli We Will Meet at Mid Night
Kalimat di atas mendaoat angka dari setiap huruf sebagai berikut
22 4 22 8 II II 12 4 4 19 deg19 12 8 3 13 8 6 7 19
Untuk mendapatkan teks-kode kita mempunyai kunei 11 Dengan meshynambahkan setiap nilai dari teks-asli dengan kunci 11 maka didapat
7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4
Jqo~mo lttoq~o ltolt 59
Jika lebih dari 20 setelah ditambah dengan kunci maka akan dikurangi
dengan 26 Misalnya 22+11= 33 - 26 7 Setelah dikonversi menjadi huruf maka akan didapatkan teks-kode
HPHTWWXPPELEXTOYTRSE
Teks-asli We will meet at mid night
Teks-kode HPHTWWXPPELEXTOYTRSE
Kunci 11
423 KODE Hill
Kode Hill termasuk salah satu sistem kripto polialfabetik yang berarti karakter alfabet bisa dipetakan ke lebih dari satu maeam karakter Kode ini
ditemukan pada tahun 1929 oleh Lester S Hill Misalkan m adalah bilangan bulat positif dan P = C Ide dari kode Hill adalah dengan mengambil
m kombinasi linear dari m karakter alfabet dalam satu elemen teks-asli sehingga dihasilkan TIl alfabet karakter dalam saru elemen teks-asli
Misalkan m = 2 maka dapar ditulis suatu elemen teks-asli sebagai x = (XI X2)
dan suam elemen teks-kode sebagai y = (yl Y2) Oi sini yl yl adalah kombinasi linear dari XI dan X2 Misalkan
1 (jyl = llxl + 3X2
Ie j l y2 8xI + 7X2 dimlis dalam notasi matriks sebagai berikut
i) (jI11 811 j - q
(YIY2) (xx2 ) 3 shy -( 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 kj maka dapat ditulis II [ cmiddot ( r
K (kJ Untuk x (XI Xm) E P dan K E K dihitung y eK(x) = (Yl ~ sebagai berikut -
kll 1 o
klmjk2J k2bull2 k2m Ii
(Y)Y2 (x) x2 X sS ~ ~ -
H
2
m
km 2 k~fTJ o
o
60 Pengantar IImu Kriptografi
dengan kat a lain y xK
Dikatakan bahwa teks-kode diperoleh dari teks-asli dengan cara transformasi
linear Untuk melakukan dekripsi menggunakan matriks inversi K-I dekripsi
dilakukan dengan rumus x =yK-
1 Perkalian matriks memiliki sifat asosiatif yaitu (AB)C A(BC)
2 Matriks identitas m x m yang ditulis dengan Im adalah matriks yang
berisi 1 pada diagonal utama dan berisi 0 pada elemen lainnya
Contoh matriks identitas 2 x 2
12 =
1m disebut dengan matriks identitas karena AIm A untuk sembarang
matriks I x m dan 1mB B untuk sembarang matriks m x n
3 Matriks inversi dari A (jika ada) adalah kl di mana AAmiddotI kA = 1m
Dengan menggunakan sifat-sifat matriks di atas maka
y xK
yKmiddotI (xK)KI = x(KKmiddotI) xlm X
Contoh
Dapat dilihat bahwa matriks enkripsi pada contoh sebemmnya memiliki
inversi pada Z26
fll 8)-1 l( 7 18) 3 7 23 11l
-
r A f
n~ Karena
III ~J (3 1 =(117+823 l118+8I1J
l3 37+723 318+711 II 261 2861
( 182 131) i
=(~ 1
Ingat bahwa semua operasi aritmetik di atas dilakukan pada modulo 26
~ AgorHmo Kriptogroti Kosik 61
Sebuah contoh untuk memberikan gambaran tentang enkripsi dan dekripsi dalam kode Hill
Misalkan kunci yang dipakai adalah
K=C ~) Dari perhitungan di atas diperoleh bahwa
K-I =( 7 18J 23 11
Misalkan untuk mengenkripsi teks-asli JULY ada 2 elemen teks-asli untuk dienkripsi
1 (920) ~
2 (11 24) ~ L Y
Kemudian lakukan perhitungan berikut
11 81 (9 20) ( 3 7j =(99+60 72+140) (3 4) ~ DE
dan
(11 8)(11 bull 24) 3 7 (121+72 88+168)=(11 22) ~ LW
sehingga enkripsi untuk JULY adalah DELW
Untuk mendekripsi dilakukan dengan cara
7 18)(3 4) 23 11 (9(
dan i
(11 =(11 bull 24)bull 223 -)
sehingga teks-asli diperoleh kern bali
Dekripsi hanya mungkin dilakukan jika matriks K memiliki inversi Suatu
matriks K memiliki inversi jika dan hanya jika determinannya tidak no
lt)
62 Pengantar IImu Kriptografi
Namun karena 226 maka matriks K memiliki inversi modulo 26 jika dan
hanya jika gcd(det K 26)=1
Unruk matriks A berukuran 2 x 2 nilai determinannya adalah
det A alla22 - al2a21
dan matriks inversi dari A adalah
322 -312)(det ( -321 311
Contoh
K = (113 7
maka
11 detK det 3 ~j 11 7 8 3 mod 26
(
= 77 - 24 mod 26
53 mod 26
=1
kemudian 1-1 mod 26 1 sehingga matriks inversinya adalah
(11
=l3 =(3 11
Contoh
Kode Hill dengan menggunakan matriks 3 x 3 dltngan kunci matriks (42 3 6 33 312)
Diketahui teks-asli berikut KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
ltasik 61
c~ -lt ~~~ B ~ B c oc
ltlJ_i j) iii -e~ D 0shy
t lt1 t I~ o
+ + +r--+ rKEN1 l ~~ 40 + 8 + 39)
(423) (10) (1~~ Mod 26 () ( H) JH6 3 3 4 50 + 12 + 39 (3 2 1 13 30 + 4 + 25 60) 8 I
3) AIK
4 0+ 16 + 30)( I I 0 + 24 + 30 uee
( ( (i~) Mod 26 (y) (g)I 2 1 0+ 8 + 20
Alm 0 + 26 + 21 )
= 0 + 39 + 21 VIB( i ~ ~) (~3) Gn Mod 25 C~1) (r)I _ 1 7 ( 0+13+14
ARG
(4 2 I) (0) (0 + 14 + 18 ) ( 5 ) (G)(32)6 3 3 17 0 + 21 + 18 39 Mod 25 13 N GND 3 2 1 5 0 + 17 + 12 29 3 0
ABB
(4 2 I) (0) (0 + 2+ 3) (5) (21) (V)6 3 3 1 0 + 3 + 3 5 Mod 25 20 = U VUX 3 2 1 1 0 + 1 + 2 3 23 X
MME
( 4 2 I) (12) (48 + 24 + 12) (841 (6) (G6 3 3 12 72 + 35 + 12 120 Mod 26 = 15 = 0)1 GOE 3 2 1 4 36 + 12 + 8 56 4 E
( I)
MHU
(12) (48+2+60)( I I 1 = 72 + 3 + 60 GFZ 4 2 (~~J) Mod 26 (15) (~)I 2 1 20 36 + 1 + 40
ATR
0+ 38 + 51) (89( i ~ ~) (109) (0+58+51 109 ~1) (~) LFBMod26=
3 2 1 17 0+ 19 + 34 531
64 Pengantar IImu Kriptografi
AKY
0 + 20 + ) (92) (14) (0) 0 + 30 + 7272 102 Mod 26 = 24 = Y OYG 3 2 1 24 o+ 10 + 48 58 6 G
ATK
( ~ ~ ~) (100) (
( ( (Q)0+38+30) (68) (16)~ ~ ~) (109) = 0 + 57 + 30 = 87 Mod 26 9 J QJN
~ 2 1 10 o+ 19+ 20 39 13 N
Eel
16 + 4 + 24) = 24 + 6 + 24 = SCE~~~) (~) G~) Mod 26 (~) =(~) =( ~ 2 1 8 ( 12+2+16
LME
2 )6 ~ = Mod 26 CKB ( 3 2 1
NDE
I 2 52+6+12) (70) (18)6 3 78 + 9 + 12 = 99 Mod 26 21 SVY( 3 2 ~ ) (1I) ( 39 + 3 + 8 50 24
RIT
4 2 68+16+57) ~32) (2) (C)6 = 102+24+57 183 Mod26= 1 = B CST( (~) C~)3 2 51 + 8 + 38 97 19 T
AXX
(~ ~ ~) () 0 +46 +69) (11~ (11) (L)= 0 + 69 + 69 = 138 Mod 26 8 I LlR(3 2 1 23 o+ 23 + 46 69 17 R
teks-kode dari teks-asli
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
adalah
JHIUCCVIBGNDVUXFQCGFZLFBOXBQJNSCECKBSVYCBTLlR
Pada (ontoh di atas kekurangan pada akhir kalimat ditambah dengan humf x untuk mencukupi perkalian matriksnya Teks-kode dari Kode Hill juga bisa disajikan dalam bentuk angka seperti 9 7 8 20 222181 613321 2023 616465251151142461691318242101182124211911817atau menggunakan heksadesimal dan binari
65Algoritma Kriptografi Klasik
424 KOOE VIGENERE
Kode Vigenere termasuk kode abjad-majemuk (polyalphabetic substitution cipher) Dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis Blaise de Vigenere pada Abad 16 tahun 1586 Sebenamya Giovan Batista Belaso telah menggambarkannya untuk pertama kali pada tahun 1553 seperti ditulis di dalam buku La Cifra del Sig Algoritma ini bam dikenal luas 200 tahun kemudian dan dinamakan kode Vigimere Vigenere mempakan pemicu perang sipil di Amerika dan kode Vigenere digunakan oleh Tentara Konfiderasi (Confederate Army) pada Perang Sipil Amerika (American Civil War Kode ViJenere berhasil dipecahkan oleh Babbage dan Kltsiski pada pertengahan Abad 19
Gambar 44 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 teksshyasli 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
4241 ANGKA
Teknik subsitusi Vigenere dengan menggunakan angka dilakukan dengan menukarkan humf dengan angka hampir sama dengan kode geser
T HIS CRY P T
19 7 8 18 2 17 24 15 19
2 B 15 7 4 17 2 8 15
21 15 23 25 6 8 0 23 8
ElM SINIOITISIEICIUIRIE 4 12
15 7
B
4
18 13 14 19 18 4 2 20 17 4
17 2 8 15 7 4 17 2 8 15
19 19 12 9 15 22 8 25 8
Teks-asli This cryptosystem is not secure
Kunci (28 157 4 17)
66 antar IImu Kri
A I 8 I C I DIE I FIG I H J IKILIM
o I 1 I 2 I 3 I 4 I 5 I 6 I 7 I a I 9 110 111 12
N 0 P Q R STU V W x y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Kunci dengan 6 huruf kode jika ditukar dengan angka akan menjadi K 0= (2 8 157417) dan reks-aslinya This Cryptosystem is Not Secure
K05ik 67
4VU 1URUf
Ide dasarnya adalah dengan menggunakan kode Kaisar tetapi Jumlah pershygeseran hurufnya berbeda-beda untuk setiap periode beberapa huruf tertentu Untuk mengenkrlpsi pe~an dengan kode Vegenere digunakan tabula
(disebut juga bujUIsangkar Vigenere seperti gambar di bawah ini
ABC D E F G H I
A ABCDEFGHI J K L M N 0 r Q R S T U V W X Y Z
n B C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A
C C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A B
D D E F G H I J K L M N 0 p Q R S T U vlwx y Z A B Cl
E E F G H I J K L M N 0 r Q R S T U V W X Y Z A B C D
F F G H I r K L M N 0 I Q R S T U V WX Y Z A B C D E
G G H I J K L M N 0 I Q It S T U V W X Y Z A B C D E F
H H I J K L M N 0 P Q R S T U V WX Y Z A B C D E F G
I J K L MN o l Q R S T U V W XY Z A B C D E FmiddotG ~cshy - - f-shyJ K L M N 0 l Q R S T U V WX Y Z A n C D E F G H I - iK L MN o l Q R S T U V W X Y Z A B C D E F G H I J-
G ITT e-middot
L M NO l Q R S T U VW X Y Z A B C D E F J K
I
K J u K 11 L
~ N 0 Q R S T U V W X Y Z A n C D E F G H I J K L N 0 I Q It S T U VW X Y Z A B C D E F G H I J K L M
o l U V WX Y Z C D E F~ H shy
Q R S T A B I J K L MN
I Q It S T U VW X Y Z A 11 C D E F G H ri J K L M N 0
C M N
0
l
Q S It S T U VW X Y Z A B C D E F G H I J K L MN o I
R S T U V W X Y Z A n C D E F G H I J K L M N 0 r Qf-shy TS U V WX Y Z A B C D E F G H I J K L M N o r Q It
f-shy -Ishy -I-shy
It
S
T T U VW x y Z A B C D E F G H I J K L MN 0 I Q It S
U U v WX Y Z A B C D E F G H I J K L MN o rQ It s T V VW X Y Z A B C D E F G H I J K L MN o I Q R S T U
_
W WX Y Z A B C D E F G H I J K L MN o r R It S T U V x x Y Z A B C D E F G H I J K L M N 0 r Q It S T U V W Y Y Z A B C D E F G H 1 J K L M N o l Q It S T U V WX
Z A 11 C D E F G H I J K L M N 0 I Q R STU VW x Y -_ ____ ___ __ __ _ _ _ L c __Z
0 S Y S T
14 18 24 18 19
7 4 17 2 8
21 22 15 20 1
19 22 25 19
Teks-kode VPXZGIAXIVWPUBTTMJPWIZITWZT
Untuk melakukan dekripsi juga bisa menggunakan kunci yang sarna dengan modulo 26
recta
Ilaintext J K L M NOr Q R STU V W X Y Z
Tabula recta digmakan 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) bull k(i mod m))
68 69 Pengantar IImu Kriptografi
dengan
huruf ke-i dalam teks-asli
kn huruf ke-n dalam kunci
m panjang kunci dan
V(xy) 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 teksshyasli dan gans lurus ke samping dari posisi kunci maka akan ditemukan huruf un Huruf U inilah yang akan menjadi teks-kode Begitu seterusnya Coba perhatikan contoh berikut ini
Algoritma Kriptografi Kla~ik
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 teksshykode belum tentu bisa didekripsikan menjacli clua huruf yang sarna dalam teks-asli
70 71 Pengantar Ilmu Kriptografi
Pada eontoh tersebut huruf M pad a teks-kode berasal dari huruf H dan T pada teks-ash
Gambar memperlihatkan perbandinggan frekuensi kemuneulan huruf pada suaru teks-asli dan huruf pada teks-kode dengan menggunakan kode Vigenere
2 Plaintext
2k
11 15 2 26
1-1--+------------
6
ftl K I~ I
Gambar 45 Perbondingon Frekuensi Kemunculon Huruf podo Kode Vigenere
Kelemahan utama kode Vigen ere adalah kuncinya yang pendek dan pengshygunaannya yang berulang-ulang Jika kriptanalis dapat menentukan panjang kunei saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa kode Kaisar
Metode Kasiski membanru menemukan panjang kunci-kode Vigenere Metode Kasiski memanfaatkan keuntungan bahasa Inggris yang tidak hanya mengandung perulangan huruf tetapi juga perulangan pasangan huruf atau tripel huruf seperti TH THE dsb Perulangan huruf ini memungkinkan unruk menghasilkan kriptogram yang berulang
Contoh
Teks-asli CRYPTO IS SHORT FOR CRYPTOGRAPHY
Kunci abcdab cd abcda bed abedabedabed Teks-kode CSASTP KV SIQUT GQU CSASTPIPAQJB
Algoritma Kriptografi Klasik
Pada eontoh tersebut CRYPTO dienkripsi menjadi kriptogram yang sarna yaitu CSATP Hal ini dikarenakan jarak antara dua buah string yang berulang di dalam teks-asli merupakan kelipatan dad panjang kunci sehingga string yang sarna tersebut akan muneul menjadi kriptogram yang sarna pula di dalam teks-kode Tujuan dad metode Kasiski adalah meneari dua atau lebih kr ptogram yang berulang untuk menentukan panjang kunci
Langkah metode Kasiski adalah sebagai berikut
1 Temukan semua kriptogram yang berulang di dalam teks-kode (pesan yang panjang biasanya mengandung kriptogram yang berulang)
2 Hitung j-ak antara kriptogram yang berulang
3 Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi menyatakan panjang kunei yang mungkin)
4 Tentukan irisan dari himpunan faktor pembagi tersebut Nilai yang muncul di dalam irisan menyatakan angka yang muneul pada semua faktor pembagi dari jarak-jarak tersebut Nilai tersebut mungkin adalah panjang kunei Hal ini karena string yang berulang dapat munetll bertindihan (coincidence)
Setelah panjang kunci diketahui maka langkah berikutnya adalah menentushykan kata kunci Kata kunei dapat ditentukan menggunakan exhaustive kef search Jika panjang kunei adalah p maka jumlah kunci yang harus dieoba
adalah 26Pbull Namun akan lebih efisien bila menggunakan teknik analisis
frekuensi
Langkah-Iangkah untuk melakukan analisis frekuensi adalah
1 Misalkan panjang kunei yang sudah berhasil dideduksi adalah n Setiap huruf kelipatan ke-n pasti dienkripsi dengan huruf kunci yang sarna Kelompokkan setiap huruf ke-n bersama-sama sehingga kriptanalis memiliki n buah pesan masing-masing dienkripsi dengan substitusi alfabet-tunggal (dalam hal ini kode Kaisar)
2 Tiap-tiap pes an dari hasil langkah 1 dapat dipeeahkan dengan teknik analisis fJ ekuensi
3 Dari hasillangkah 3 kriptanalis dapat menyusun huruf-huruf kunei atau menerka kata yang dapat membantu memeeahkan teks-kode
72 Pengantar IImu Kriptografi
Pada abad kemiddot19 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
425 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris pada Perang Boer (Perang Dunia I) pada awal Abad 20 untuk mengirim pes an antarmarkas yang ada di Inggris
Sir Charles Wheatstone Boron lyon
Gambar 46 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet) Dengan begitu kunci yang digunakan ada 25 alfabet Jumlah kemungkinan kunci pada kode Playfair 25=155112IO043330985984000000
Algoritma Kriptografi Klasik 73
Contch
Diketahui teks-asli Di dalam jiwa ya
Uotuk melakukan enkripsi kode berikut
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1 Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom maka pergerakan karakter dimulai dari huruf kedua secara vertikal menuju karakter teks-kode yang pertama Misalnya teks-as1i di huruf keduanya adalah Hi maka dari i yang di dalam matriks bergerak vertikal mencari huruf yang sebaris dengan d maka akan dijumpai karakter n (sebagai teks-kode) Untuk karakter yang kedua d mencari sisi lain seperti cara karakter Hi sehingga dijumpai karakter I Jadi teksshykode dad di adalah nl
S DT A ~ e ~E R II
vGF IK -pa UM Q
yW x zV
2 Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom atau baris yang sarna dan saling berdekatan maka digunakan prinsip enkripsi atau dekripsi ke bawah atau ke samping Cootoh untuk mengenkripsi an maka karakter di sam ping n adalah d da) karakter di sam ping a adalah un sehingga teks-kodenya menjadi dn
5 T A N D
E R C H B
K F G ] 11 M 0 p Q umiddot V W X Y Z
~L ~II ~ S T PI
e BHE BshyF G I LK
p ~QM a UI V YW IX Zl
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
-52 Pengantar IImu Kriptografi
Tabel 4 I Frekuensi Kemunculan Huruf dalam Bahasa
Karakter A
Peluang 0082
Karakter N
Peluang 067
B 015 0 075 C 028 P 019 D 043 Q 001 E 127 R 060 F G
022
020 S T
063
09 H 061 U 02middotc~
I 070 V 010 I J
K 002 008
W X
023
001 L 040 Y 020 M 024 Z 001
Pada teks bahasa Indonesia yang paling sering muncul adalah 10 huruf pada tabel di bawah ini
Tabel 42 Sepuluh Huruf yang Sering Mun(ul dalam Bahasa Indonesia
Letter Frequency
kemunculan ()
A 1750
N 1030
I 870
E 750
K 565
T 510
R 460
0 450
S 450
M 450
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
A~()rmo Kr()~ro Koltlt 5~ ~ ~Listing program untuk mendekipsi me yang menggunakan kode Kaisar
file menggunakan Caesar cipher 1
sebagai berkas ma ukannbullbull middotmiddotbull
argv[lmiddotJ argvl2J I
1 Programdekr1psi
hneluda ltstdio hgt
main (int argo bull char argv[J)I
FILE Fin Foutj char p C int~n~ 1 It
Fin middotfop41n(argv[ll rb) if (Fin - NULL)
printt(Kesalahan dalam mmnbuka s Fout - fopen(arqv[2] Itwblf )
printt(noakripsi s manjadi nprintf(n) printf(tlk scant (d ampk) hil laquoc - lt]ltItc(Finraquo = EO) I P - (e - k) 256 pute (P Fout)
) feloe(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 41 AJgorima R0T13
Sistem enkripsi pada unix dengan membagi alfabet n = 26 menjadi 13 sehingga satu huruf dengan huruf yang lain saling berhadapan Jika teksshyaslinya 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 (Mraquo
54 55
Pengantar IImu Kriptografi
ROT13 didesain untuk keamanan pada sistem operasi UNIX yang sering digunakan pada forum on-line berfungsi untuk menyelubungi isi artikel sehingga hanya orang yang berhak yang dapat membacanya Contoh proses
enkripsi ROTl3 danat dilihat di bawah ini
ENKRlJSI MENGGUNAKAN nonl
Gombar 42 Pro~e~ ROT13
Proses dekripsi
IROSES DEKlurSI ROTI3
PLAINTEXT
Gombar 43 Proses Dekrpsi ROfl3
Pada perkembangannya algoritma kode Kaisar memberikan suatu gagasan baru untuk menggunakan kunei lain yang disebut poly-alphabetic Kunci bisa jadi nama alamat atau apa saja yang diinginkan oleh pengirim pesan Coba
perhatikan contoh di bawah ini
Kode Kaisar dengan menggunakan satu kunci bisa disebut dengan substitusi deret campur kata kunei Yang perlu diingat tidak ada perulangan huruf dalam hal ini DONY ARlYUS menjadi DONY ARIUS Karena ada
pengulangan huruf Y maka huruf itu tidak dipakai lagi
Menggunakan satu kunei
Agoritma Kriptografi Kasik
Teks-asli MBAH MARIJAN SEKARANG SUDAH MENJADI ARTIS
Kunei MERAPI
Teks-kode JEMCJMQDFMKSPGMQMKBSUAMqPKFMADMQTDS
Menggunakan dua kunci
K1
Teks-asli BELAjAR KRIPTOGRAFI UNTUK MENGAMANKAN DATA
Kl DONY ARlYUS
K2 YOGY AKART A
Teks-kode IYKAOAFGFPDJBCFAMPLTJLGRYTCARATGATXAJA
Menggunakan lebih dari satu kunei
K2 1 1v 1 I 1 ~ 1I I I 1 I J
Kl
Kl GEMPA
K2 MBAH
K3 MERAPI
Teks-kode HJSFWFTFLFPFDOKFTUCRJLFSFOAFUTRJHUAFUFISUAF DWJSDHFLFTUCUIQFOU2007
56 Pengantar IImu Kriptografi
Dengan menggunakan lebih dari satu kunci bisa menggunakan metode pendistribusian kunci-kunci yang ada M(tode hi terdiri dari tiga bagian yaitu bIok karakter dan zig-zag
1 Blok
Metode untuk melakukan enkripsi dengan menggunakan blok adalah dengan membagi jumlah teks-asli menjadi blok-blok yang ditentukan tergantung dari keinginan pengirim pes an Coba perhatikan contoh di bawah ini
Teks-asH BANJIR MEREDAM JAKARTA HARGA BAHAN POKOK NAIK
Teks-asH di atas dibagi menjadi 8 blok Setiap blok berisi 6 karakter Karena blok yang ketujuh tidak mencukupi maka ditambah dengan karakter X atau karakter lain yang diinginkan
--_--- --_--- [MJAKAR] [TAHARGJ rABAHNl li~ I AIKXXX
Block 1 Block 2 Block 3 Block 4 Block 5 Illock 6 Block 7
KI
K2
KJ
Didapat teks-kode berikut
ODGBSI HKNKAY EllKCKN PDUDlI YOYBYI LJCJCH DSCXXX I I I I I I I I I
Kl K2 K3 K1 K2 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 mengshy
enkripsi dua blok sekaligus dengan memakai satu kunci (Kl K2 atau K3) dan seterusnya Maka didapat hasil pendistribusian kunci untuk teks-kode sebagai berikut
ODGBSLHKNKA YEBKCKNPDUDLlYOYBYILJCJCHDSCXXX
~~ltaorimo ltxioltaro ltO( 57
Dengan menggunakan metode ini jika satu kunci ditemukan oleh kriptanalis belum tentu pesan bisa dipecahkan karena masih ada beberapa kunci lagi yang harus dicari
2 Karakter
Metode ini menggunakan pendistribusian per karakter hampir sama dengan metode biok Contoh pendistribusian per karakter adalah seperti di bawah ini
I I I I j TI-rIIJIIIIIlulIIAI~ILI_
K] I I - - r ITT I II n 1 I __ Iv ~ I I -ILD () N Y A n 1 T I lt Jl r r t -7 rr ow- _ _ _ __
10 K R J f T n r A r r r T bull bull bullbull
o Y Hll C N r K N A A K I D K C Y N PYA 0 N G
~j 1~u ~j 1~u ~j 1~u Jj 1~u K3 KJ KJ KJ K3 KJ KJ KJ
fjIqPll rIP]I KJ KJ KJ KJ KJ
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
Kli - I J bull bull I ~ vI ~ ~ t - t bull - U J - - m lt I - I - -I 1 - )
K21~~~1EI~ I ~ IFI~I J-I~I~lol IQlnls ITlulwlxlylz I
Dari teks-asH
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDER ITA
didapat teks-kode
FMPKCFKPVKJGKSSOOMOSHKTJKFXKTFMOCNOMPYMJCTK
422 KODE GESER
Teknik substitusi kode geser (shift) cengan 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 114
--- shyp Q R S T U V W X Y Z
15 16 17 18 19 20 21 22 23 24 25
Teks-asli We Will Meet at Mid Night
Kalimat di atas mendaoat angka dari setiap huruf sebagai berikut
22 4 22 8 II II 12 4 4 19 deg19 12 8 3 13 8 6 7 19
Untuk mendapatkan teks-kode kita mempunyai kunei 11 Dengan meshynambahkan setiap nilai dari teks-asli dengan kunci 11 maka didapat
7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4
Jqo~mo lttoq~o ltolt 59
Jika lebih dari 20 setelah ditambah dengan kunci maka akan dikurangi
dengan 26 Misalnya 22+11= 33 - 26 7 Setelah dikonversi menjadi huruf maka akan didapatkan teks-kode
HPHTWWXPPELEXTOYTRSE
Teks-asli We will meet at mid night
Teks-kode HPHTWWXPPELEXTOYTRSE
Kunci 11
423 KODE Hill
Kode Hill termasuk salah satu sistem kripto polialfabetik yang berarti karakter alfabet bisa dipetakan ke lebih dari satu maeam karakter Kode ini
ditemukan pada tahun 1929 oleh Lester S Hill Misalkan m adalah bilangan bulat positif dan P = C Ide dari kode Hill adalah dengan mengambil
m kombinasi linear dari m karakter alfabet dalam satu elemen teks-asli sehingga dihasilkan TIl alfabet karakter dalam saru elemen teks-asli
Misalkan m = 2 maka dapar ditulis suatu elemen teks-asli sebagai x = (XI X2)
dan suam elemen teks-kode sebagai y = (yl Y2) Oi sini yl yl adalah kombinasi linear dari XI dan X2 Misalkan
1 (jyl = llxl + 3X2
Ie j l y2 8xI + 7X2 dimlis dalam notasi matriks sebagai berikut
i) (jI11 811 j - q
(YIY2) (xx2 ) 3 shy -( 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 kj maka dapat ditulis II [ cmiddot ( r
K (kJ Untuk x (XI Xm) E P dan K E K dihitung y eK(x) = (Yl ~ sebagai berikut -
kll 1 o
klmjk2J k2bull2 k2m Ii
(Y)Y2 (x) x2 X sS ~ ~ -
H
2
m
km 2 k~fTJ o
o
60 Pengantar IImu Kriptografi
dengan kat a lain y xK
Dikatakan bahwa teks-kode diperoleh dari teks-asli dengan cara transformasi
linear Untuk melakukan dekripsi menggunakan matriks inversi K-I dekripsi
dilakukan dengan rumus x =yK-
1 Perkalian matriks memiliki sifat asosiatif yaitu (AB)C A(BC)
2 Matriks identitas m x m yang ditulis dengan Im adalah matriks yang
berisi 1 pada diagonal utama dan berisi 0 pada elemen lainnya
Contoh matriks identitas 2 x 2
12 =
1m disebut dengan matriks identitas karena AIm A untuk sembarang
matriks I x m dan 1mB B untuk sembarang matriks m x n
3 Matriks inversi dari A (jika ada) adalah kl di mana AAmiddotI kA = 1m
Dengan menggunakan sifat-sifat matriks di atas maka
y xK
yKmiddotI (xK)KI = x(KKmiddotI) xlm X
Contoh
Dapat dilihat bahwa matriks enkripsi pada contoh sebemmnya memiliki
inversi pada Z26
fll 8)-1 l( 7 18) 3 7 23 11l
-
r A f
n~ Karena
III ~J (3 1 =(117+823 l118+8I1J
l3 37+723 318+711 II 261 2861
( 182 131) i
=(~ 1
Ingat bahwa semua operasi aritmetik di atas dilakukan pada modulo 26
~ AgorHmo Kriptogroti Kosik 61
Sebuah contoh untuk memberikan gambaran tentang enkripsi dan dekripsi dalam kode Hill
Misalkan kunci yang dipakai adalah
K=C ~) Dari perhitungan di atas diperoleh bahwa
K-I =( 7 18J 23 11
Misalkan untuk mengenkripsi teks-asli JULY ada 2 elemen teks-asli untuk dienkripsi
1 (920) ~
2 (11 24) ~ L Y
Kemudian lakukan perhitungan berikut
11 81 (9 20) ( 3 7j =(99+60 72+140) (3 4) ~ DE
dan
(11 8)(11 bull 24) 3 7 (121+72 88+168)=(11 22) ~ LW
sehingga enkripsi untuk JULY adalah DELW
Untuk mendekripsi dilakukan dengan cara
7 18)(3 4) 23 11 (9(
dan i
(11 =(11 bull 24)bull 223 -)
sehingga teks-asli diperoleh kern bali
Dekripsi hanya mungkin dilakukan jika matriks K memiliki inversi Suatu
matriks K memiliki inversi jika dan hanya jika determinannya tidak no
lt)
62 Pengantar IImu Kriptografi
Namun karena 226 maka matriks K memiliki inversi modulo 26 jika dan
hanya jika gcd(det K 26)=1
Unruk matriks A berukuran 2 x 2 nilai determinannya adalah
det A alla22 - al2a21
dan matriks inversi dari A adalah
322 -312)(det ( -321 311
Contoh
K = (113 7
maka
11 detK det 3 ~j 11 7 8 3 mod 26
(
= 77 - 24 mod 26
53 mod 26
=1
kemudian 1-1 mod 26 1 sehingga matriks inversinya adalah
(11
=l3 =(3 11
Contoh
Kode Hill dengan menggunakan matriks 3 x 3 dltngan kunci matriks (42 3 6 33 312)
Diketahui teks-asli berikut KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
ltasik 61
c~ -lt ~~~ B ~ B c oc
ltlJ_i j) iii -e~ D 0shy
t lt1 t I~ o
+ + +r--+ rKEN1 l ~~ 40 + 8 + 39)
(423) (10) (1~~ Mod 26 () ( H) JH6 3 3 4 50 + 12 + 39 (3 2 1 13 30 + 4 + 25 60) 8 I
3) AIK
4 0+ 16 + 30)( I I 0 + 24 + 30 uee
( ( (i~) Mod 26 (y) (g)I 2 1 0+ 8 + 20
Alm 0 + 26 + 21 )
= 0 + 39 + 21 VIB( i ~ ~) (~3) Gn Mod 25 C~1) (r)I _ 1 7 ( 0+13+14
ARG
(4 2 I) (0) (0 + 14 + 18 ) ( 5 ) (G)(32)6 3 3 17 0 + 21 + 18 39 Mod 25 13 N GND 3 2 1 5 0 + 17 + 12 29 3 0
ABB
(4 2 I) (0) (0 + 2+ 3) (5) (21) (V)6 3 3 1 0 + 3 + 3 5 Mod 25 20 = U VUX 3 2 1 1 0 + 1 + 2 3 23 X
MME
( 4 2 I) (12) (48 + 24 + 12) (841 (6) (G6 3 3 12 72 + 35 + 12 120 Mod 26 = 15 = 0)1 GOE 3 2 1 4 36 + 12 + 8 56 4 E
( I)
MHU
(12) (48+2+60)( I I 1 = 72 + 3 + 60 GFZ 4 2 (~~J) Mod 26 (15) (~)I 2 1 20 36 + 1 + 40
ATR
0+ 38 + 51) (89( i ~ ~) (109) (0+58+51 109 ~1) (~) LFBMod26=
3 2 1 17 0+ 19 + 34 531
64 Pengantar IImu Kriptografi
AKY
0 + 20 + ) (92) (14) (0) 0 + 30 + 7272 102 Mod 26 = 24 = Y OYG 3 2 1 24 o+ 10 + 48 58 6 G
ATK
( ~ ~ ~) (100) (
( ( (Q)0+38+30) (68) (16)~ ~ ~) (109) = 0 + 57 + 30 = 87 Mod 26 9 J QJN
~ 2 1 10 o+ 19+ 20 39 13 N
Eel
16 + 4 + 24) = 24 + 6 + 24 = SCE~~~) (~) G~) Mod 26 (~) =(~) =( ~ 2 1 8 ( 12+2+16
LME
2 )6 ~ = Mod 26 CKB ( 3 2 1
NDE
I 2 52+6+12) (70) (18)6 3 78 + 9 + 12 = 99 Mod 26 21 SVY( 3 2 ~ ) (1I) ( 39 + 3 + 8 50 24
RIT
4 2 68+16+57) ~32) (2) (C)6 = 102+24+57 183 Mod26= 1 = B CST( (~) C~)3 2 51 + 8 + 38 97 19 T
AXX
(~ ~ ~) () 0 +46 +69) (11~ (11) (L)= 0 + 69 + 69 = 138 Mod 26 8 I LlR(3 2 1 23 o+ 23 + 46 69 17 R
teks-kode dari teks-asli
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
adalah
JHIUCCVIBGNDVUXFQCGFZLFBOXBQJNSCECKBSVYCBTLlR
Pada (ontoh di atas kekurangan pada akhir kalimat ditambah dengan humf x untuk mencukupi perkalian matriksnya Teks-kode dari Kode Hill juga bisa disajikan dalam bentuk angka seperti 9 7 8 20 222181 613321 2023 616465251151142461691318242101182124211911817atau menggunakan heksadesimal dan binari
65Algoritma Kriptografi Klasik
424 KOOE VIGENERE
Kode Vigenere termasuk kode abjad-majemuk (polyalphabetic substitution cipher) Dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis Blaise de Vigenere pada Abad 16 tahun 1586 Sebenamya Giovan Batista Belaso telah menggambarkannya untuk pertama kali pada tahun 1553 seperti ditulis di dalam buku La Cifra del Sig Algoritma ini bam dikenal luas 200 tahun kemudian dan dinamakan kode Vigimere Vigenere mempakan pemicu perang sipil di Amerika dan kode Vigenere digunakan oleh Tentara Konfiderasi (Confederate Army) pada Perang Sipil Amerika (American Civil War Kode ViJenere berhasil dipecahkan oleh Babbage dan Kltsiski pada pertengahan Abad 19
Gambar 44 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 teksshyasli 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
4241 ANGKA
Teknik subsitusi Vigenere dengan menggunakan angka dilakukan dengan menukarkan humf dengan angka hampir sama dengan kode geser
T HIS CRY P T
19 7 8 18 2 17 24 15 19
2 B 15 7 4 17 2 8 15
21 15 23 25 6 8 0 23 8
ElM SINIOITISIEICIUIRIE 4 12
15 7
B
4
18 13 14 19 18 4 2 20 17 4
17 2 8 15 7 4 17 2 8 15
19 19 12 9 15 22 8 25 8
Teks-asli This cryptosystem is not secure
Kunci (28 157 4 17)
66 antar IImu Kri
A I 8 I C I DIE I FIG I H J IKILIM
o I 1 I 2 I 3 I 4 I 5 I 6 I 7 I a I 9 110 111 12
N 0 P Q R STU V W x y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Kunci dengan 6 huruf kode jika ditukar dengan angka akan menjadi K 0= (2 8 157417) dan reks-aslinya This Cryptosystem is Not Secure
K05ik 67
4VU 1URUf
Ide dasarnya adalah dengan menggunakan kode Kaisar tetapi Jumlah pershygeseran hurufnya berbeda-beda untuk setiap periode beberapa huruf tertentu Untuk mengenkrlpsi pe~an dengan kode Vegenere digunakan tabula
(disebut juga bujUIsangkar Vigenere seperti gambar di bawah ini
ABC D E F G H I
A ABCDEFGHI J K L M N 0 r Q R S T U V W X Y Z
n B C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A
C C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A B
D D E F G H I J K L M N 0 p Q R S T U vlwx y Z A B Cl
E E F G H I J K L M N 0 r Q R S T U V W X Y Z A B C D
F F G H I r K L M N 0 I Q R S T U V WX Y Z A B C D E
G G H I J K L M N 0 I Q It S T U V W X Y Z A B C D E F
H H I J K L M N 0 P Q R S T U V WX Y Z A B C D E F G
I J K L MN o l Q R S T U V W XY Z A B C D E FmiddotG ~cshy - - f-shyJ K L M N 0 l Q R S T U V WX Y Z A n C D E F G H I - iK L MN o l Q R S T U V W X Y Z A B C D E F G H I J-
G ITT e-middot
L M NO l Q R S T U VW X Y Z A B C D E F J K
I
K J u K 11 L
~ N 0 Q R S T U V W X Y Z A n C D E F G H I J K L N 0 I Q It S T U VW X Y Z A B C D E F G H I J K L M
o l U V WX Y Z C D E F~ H shy
Q R S T A B I J K L MN
I Q It S T U VW X Y Z A 11 C D E F G H ri J K L M N 0
C M N
0
l
Q S It S T U VW X Y Z A B C D E F G H I J K L MN o I
R S T U V W X Y Z A n C D E F G H I J K L M N 0 r Qf-shy TS U V WX Y Z A B C D E F G H I J K L M N o r Q It
f-shy -Ishy -I-shy
It
S
T T U VW x y Z A B C D E F G H I J K L MN 0 I Q It S
U U v WX Y Z A B C D E F G H I J K L MN o rQ It s T V VW X Y Z A B C D E F G H I J K L MN o I Q R S T U
_
W WX Y Z A B C D E F G H I J K L MN o r R It S T U V x x Y Z A B C D E F G H I J K L M N 0 r Q It S T U V W Y Y Z A B C D E F G H 1 J K L M N o l Q It S T U V WX
Z A 11 C D E F G H I J K L M N 0 I Q R STU VW x Y -_ ____ ___ __ __ _ _ _ L c __Z
0 S Y S T
14 18 24 18 19
7 4 17 2 8
21 22 15 20 1
19 22 25 19
Teks-kode VPXZGIAXIVWPUBTTMJPWIZITWZT
Untuk melakukan dekripsi juga bisa menggunakan kunci yang sarna dengan modulo 26
recta
Ilaintext J K L M NOr Q R STU V W X Y Z
Tabula recta digmakan 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) bull k(i mod m))
68 69 Pengantar IImu Kriptografi
dengan
huruf ke-i dalam teks-asli
kn huruf ke-n dalam kunci
m panjang kunci dan
V(xy) 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 teksshyasli dan gans lurus ke samping dari posisi kunci maka akan ditemukan huruf un Huruf U inilah yang akan menjadi teks-kode Begitu seterusnya Coba perhatikan contoh berikut ini
Algoritma Kriptografi Kla~ik
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 teksshykode belum tentu bisa didekripsikan menjacli clua huruf yang sarna dalam teks-asli
70 71 Pengantar Ilmu Kriptografi
Pada eontoh tersebut huruf M pad a teks-kode berasal dari huruf H dan T pada teks-ash
Gambar memperlihatkan perbandinggan frekuensi kemuneulan huruf pada suaru teks-asli dan huruf pada teks-kode dengan menggunakan kode Vigenere
2 Plaintext
2k
11 15 2 26
1-1--+------------
6
ftl K I~ I
Gambar 45 Perbondingon Frekuensi Kemunculon Huruf podo Kode Vigenere
Kelemahan utama kode Vigen ere adalah kuncinya yang pendek dan pengshygunaannya yang berulang-ulang Jika kriptanalis dapat menentukan panjang kunei saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa kode Kaisar
Metode Kasiski membanru menemukan panjang kunci-kode Vigenere Metode Kasiski memanfaatkan keuntungan bahasa Inggris yang tidak hanya mengandung perulangan huruf tetapi juga perulangan pasangan huruf atau tripel huruf seperti TH THE dsb Perulangan huruf ini memungkinkan unruk menghasilkan kriptogram yang berulang
Contoh
Teks-asli CRYPTO IS SHORT FOR CRYPTOGRAPHY
Kunci abcdab cd abcda bed abedabedabed Teks-kode CSASTP KV SIQUT GQU CSASTPIPAQJB
Algoritma Kriptografi Klasik
Pada eontoh tersebut CRYPTO dienkripsi menjadi kriptogram yang sarna yaitu CSATP Hal ini dikarenakan jarak antara dua buah string yang berulang di dalam teks-asli merupakan kelipatan dad panjang kunci sehingga string yang sarna tersebut akan muneul menjadi kriptogram yang sarna pula di dalam teks-kode Tujuan dad metode Kasiski adalah meneari dua atau lebih kr ptogram yang berulang untuk menentukan panjang kunci
Langkah metode Kasiski adalah sebagai berikut
1 Temukan semua kriptogram yang berulang di dalam teks-kode (pesan yang panjang biasanya mengandung kriptogram yang berulang)
2 Hitung j-ak antara kriptogram yang berulang
3 Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi menyatakan panjang kunei yang mungkin)
4 Tentukan irisan dari himpunan faktor pembagi tersebut Nilai yang muncul di dalam irisan menyatakan angka yang muneul pada semua faktor pembagi dari jarak-jarak tersebut Nilai tersebut mungkin adalah panjang kunei Hal ini karena string yang berulang dapat munetll bertindihan (coincidence)
Setelah panjang kunci diketahui maka langkah berikutnya adalah menentushykan kata kunci Kata kunei dapat ditentukan menggunakan exhaustive kef search Jika panjang kunei adalah p maka jumlah kunci yang harus dieoba
adalah 26Pbull Namun akan lebih efisien bila menggunakan teknik analisis
frekuensi
Langkah-Iangkah untuk melakukan analisis frekuensi adalah
1 Misalkan panjang kunei yang sudah berhasil dideduksi adalah n Setiap huruf kelipatan ke-n pasti dienkripsi dengan huruf kunci yang sarna Kelompokkan setiap huruf ke-n bersama-sama sehingga kriptanalis memiliki n buah pesan masing-masing dienkripsi dengan substitusi alfabet-tunggal (dalam hal ini kode Kaisar)
2 Tiap-tiap pes an dari hasil langkah 1 dapat dipeeahkan dengan teknik analisis fJ ekuensi
3 Dari hasillangkah 3 kriptanalis dapat menyusun huruf-huruf kunei atau menerka kata yang dapat membantu memeeahkan teks-kode
72 Pengantar IImu Kriptografi
Pada abad kemiddot19 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
425 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris pada Perang Boer (Perang Dunia I) pada awal Abad 20 untuk mengirim pes an antarmarkas yang ada di Inggris
Sir Charles Wheatstone Boron lyon
Gambar 46 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet) Dengan begitu kunci yang digunakan ada 25 alfabet Jumlah kemungkinan kunci pada kode Playfair 25=155112IO043330985984000000
Algoritma Kriptografi Klasik 73
Contch
Diketahui teks-asli Di dalam jiwa ya
Uotuk melakukan enkripsi kode berikut
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1 Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom maka pergerakan karakter dimulai dari huruf kedua secara vertikal menuju karakter teks-kode yang pertama Misalnya teks-as1i di huruf keduanya adalah Hi maka dari i yang di dalam matriks bergerak vertikal mencari huruf yang sebaris dengan d maka akan dijumpai karakter n (sebagai teks-kode) Untuk karakter yang kedua d mencari sisi lain seperti cara karakter Hi sehingga dijumpai karakter I Jadi teksshykode dad di adalah nl
S DT A ~ e ~E R II
vGF IK -pa UM Q
yW x zV
2 Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom atau baris yang sarna dan saling berdekatan maka digunakan prinsip enkripsi atau dekripsi ke bawah atau ke samping Cootoh untuk mengenkripsi an maka karakter di sam ping n adalah d da) karakter di sam ping a adalah un sehingga teks-kodenya menjadi dn
5 T A N D
E R C H B
K F G ] 11 M 0 p Q umiddot V W X Y Z
~L ~II ~ S T PI
e BHE BshyF G I LK
p ~QM a UI V YW IX Zl
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
54 55
Pengantar IImu Kriptografi
ROT13 didesain untuk keamanan pada sistem operasi UNIX yang sering digunakan pada forum on-line berfungsi untuk menyelubungi isi artikel sehingga hanya orang yang berhak yang dapat membacanya Contoh proses
enkripsi ROTl3 danat dilihat di bawah ini
ENKRlJSI MENGGUNAKAN nonl
Gombar 42 Pro~e~ ROT13
Proses dekripsi
IROSES DEKlurSI ROTI3
PLAINTEXT
Gombar 43 Proses Dekrpsi ROfl3
Pada perkembangannya algoritma kode Kaisar memberikan suatu gagasan baru untuk menggunakan kunei lain yang disebut poly-alphabetic Kunci bisa jadi nama alamat atau apa saja yang diinginkan oleh pengirim pesan Coba
perhatikan contoh di bawah ini
Kode Kaisar dengan menggunakan satu kunci bisa disebut dengan substitusi deret campur kata kunei Yang perlu diingat tidak ada perulangan huruf dalam hal ini DONY ARlYUS menjadi DONY ARIUS Karena ada
pengulangan huruf Y maka huruf itu tidak dipakai lagi
Menggunakan satu kunei
Agoritma Kriptografi Kasik
Teks-asli MBAH MARIJAN SEKARANG SUDAH MENJADI ARTIS
Kunei MERAPI
Teks-kode JEMCJMQDFMKSPGMQMKBSUAMqPKFMADMQTDS
Menggunakan dua kunci
K1
Teks-asli BELAjAR KRIPTOGRAFI UNTUK MENGAMANKAN DATA
Kl DONY ARlYUS
K2 YOGY AKART A
Teks-kode IYKAOAFGFPDJBCFAMPLTJLGRYTCARATGATXAJA
Menggunakan lebih dari satu kunei
K2 1 1v 1 I 1 ~ 1I I I 1 I J
Kl
Kl GEMPA
K2 MBAH
K3 MERAPI
Teks-kode HJSFWFTFLFPFDOKFTUCRJLFSFOAFUTRJHUAFUFISUAF DWJSDHFLFTUCUIQFOU2007
56 Pengantar IImu Kriptografi
Dengan menggunakan lebih dari satu kunci bisa menggunakan metode pendistribusian kunci-kunci yang ada M(tode hi terdiri dari tiga bagian yaitu bIok karakter dan zig-zag
1 Blok
Metode untuk melakukan enkripsi dengan menggunakan blok adalah dengan membagi jumlah teks-asli menjadi blok-blok yang ditentukan tergantung dari keinginan pengirim pes an Coba perhatikan contoh di bawah ini
Teks-asH BANJIR MEREDAM JAKARTA HARGA BAHAN POKOK NAIK
Teks-asH di atas dibagi menjadi 8 blok Setiap blok berisi 6 karakter Karena blok yang ketujuh tidak mencukupi maka ditambah dengan karakter X atau karakter lain yang diinginkan
--_--- --_--- [MJAKAR] [TAHARGJ rABAHNl li~ I AIKXXX
Block 1 Block 2 Block 3 Block 4 Block 5 Illock 6 Block 7
KI
K2
KJ
Didapat teks-kode berikut
ODGBSI HKNKAY EllKCKN PDUDlI YOYBYI LJCJCH DSCXXX I I I I I I I I I
Kl K2 K3 K1 K2 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 mengshy
enkripsi dua blok sekaligus dengan memakai satu kunci (Kl K2 atau K3) dan seterusnya Maka didapat hasil pendistribusian kunci untuk teks-kode sebagai berikut
ODGBSLHKNKA YEBKCKNPDUDLlYOYBYILJCJCHDSCXXX
~~ltaorimo ltxioltaro ltO( 57
Dengan menggunakan metode ini jika satu kunci ditemukan oleh kriptanalis belum tentu pesan bisa dipecahkan karena masih ada beberapa kunci lagi yang harus dicari
2 Karakter
Metode ini menggunakan pendistribusian per karakter hampir sama dengan metode biok Contoh pendistribusian per karakter adalah seperti di bawah ini
I I I I j TI-rIIJIIIIIlulIIAI~ILI_
K] I I - - r ITT I II n 1 I __ Iv ~ I I -ILD () N Y A n 1 T I lt Jl r r t -7 rr ow- _ _ _ __
10 K R J f T n r A r r r T bull bull bullbull
o Y Hll C N r K N A A K I D K C Y N PYA 0 N G
~j 1~u ~j 1~u ~j 1~u Jj 1~u K3 KJ KJ KJ K3 KJ KJ KJ
fjIqPll rIP]I KJ KJ KJ KJ KJ
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
Kli - I J bull bull I ~ vI ~ ~ t - t bull - U J - - m lt I - I - -I 1 - )
K21~~~1EI~ I ~ IFI~I J-I~I~lol IQlnls ITlulwlxlylz I
Dari teks-asH
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDER ITA
didapat teks-kode
FMPKCFKPVKJGKSSOOMOSHKTJKFXKTFMOCNOMPYMJCTK
422 KODE GESER
Teknik substitusi kode geser (shift) cengan 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 114
--- shyp Q R S T U V W X Y Z
15 16 17 18 19 20 21 22 23 24 25
Teks-asli We Will Meet at Mid Night
Kalimat di atas mendaoat angka dari setiap huruf sebagai berikut
22 4 22 8 II II 12 4 4 19 deg19 12 8 3 13 8 6 7 19
Untuk mendapatkan teks-kode kita mempunyai kunei 11 Dengan meshynambahkan setiap nilai dari teks-asli dengan kunci 11 maka didapat
7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4
Jqo~mo lttoq~o ltolt 59
Jika lebih dari 20 setelah ditambah dengan kunci maka akan dikurangi
dengan 26 Misalnya 22+11= 33 - 26 7 Setelah dikonversi menjadi huruf maka akan didapatkan teks-kode
HPHTWWXPPELEXTOYTRSE
Teks-asli We will meet at mid night
Teks-kode HPHTWWXPPELEXTOYTRSE
Kunci 11
423 KODE Hill
Kode Hill termasuk salah satu sistem kripto polialfabetik yang berarti karakter alfabet bisa dipetakan ke lebih dari satu maeam karakter Kode ini
ditemukan pada tahun 1929 oleh Lester S Hill Misalkan m adalah bilangan bulat positif dan P = C Ide dari kode Hill adalah dengan mengambil
m kombinasi linear dari m karakter alfabet dalam satu elemen teks-asli sehingga dihasilkan TIl alfabet karakter dalam saru elemen teks-asli
Misalkan m = 2 maka dapar ditulis suatu elemen teks-asli sebagai x = (XI X2)
dan suam elemen teks-kode sebagai y = (yl Y2) Oi sini yl yl adalah kombinasi linear dari XI dan X2 Misalkan
1 (jyl = llxl + 3X2
Ie j l y2 8xI + 7X2 dimlis dalam notasi matriks sebagai berikut
i) (jI11 811 j - q
(YIY2) (xx2 ) 3 shy -( 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 kj maka dapat ditulis II [ cmiddot ( r
K (kJ Untuk x (XI Xm) E P dan K E K dihitung y eK(x) = (Yl ~ sebagai berikut -
kll 1 o
klmjk2J k2bull2 k2m Ii
(Y)Y2 (x) x2 X sS ~ ~ -
H
2
m
km 2 k~fTJ o
o
60 Pengantar IImu Kriptografi
dengan kat a lain y xK
Dikatakan bahwa teks-kode diperoleh dari teks-asli dengan cara transformasi
linear Untuk melakukan dekripsi menggunakan matriks inversi K-I dekripsi
dilakukan dengan rumus x =yK-
1 Perkalian matriks memiliki sifat asosiatif yaitu (AB)C A(BC)
2 Matriks identitas m x m yang ditulis dengan Im adalah matriks yang
berisi 1 pada diagonal utama dan berisi 0 pada elemen lainnya
Contoh matriks identitas 2 x 2
12 =
1m disebut dengan matriks identitas karena AIm A untuk sembarang
matriks I x m dan 1mB B untuk sembarang matriks m x n
3 Matriks inversi dari A (jika ada) adalah kl di mana AAmiddotI kA = 1m
Dengan menggunakan sifat-sifat matriks di atas maka
y xK
yKmiddotI (xK)KI = x(KKmiddotI) xlm X
Contoh
Dapat dilihat bahwa matriks enkripsi pada contoh sebemmnya memiliki
inversi pada Z26
fll 8)-1 l( 7 18) 3 7 23 11l
-
r A f
n~ Karena
III ~J (3 1 =(117+823 l118+8I1J
l3 37+723 318+711 II 261 2861
( 182 131) i
=(~ 1
Ingat bahwa semua operasi aritmetik di atas dilakukan pada modulo 26
~ AgorHmo Kriptogroti Kosik 61
Sebuah contoh untuk memberikan gambaran tentang enkripsi dan dekripsi dalam kode Hill
Misalkan kunci yang dipakai adalah
K=C ~) Dari perhitungan di atas diperoleh bahwa
K-I =( 7 18J 23 11
Misalkan untuk mengenkripsi teks-asli JULY ada 2 elemen teks-asli untuk dienkripsi
1 (920) ~
2 (11 24) ~ L Y
Kemudian lakukan perhitungan berikut
11 81 (9 20) ( 3 7j =(99+60 72+140) (3 4) ~ DE
dan
(11 8)(11 bull 24) 3 7 (121+72 88+168)=(11 22) ~ LW
sehingga enkripsi untuk JULY adalah DELW
Untuk mendekripsi dilakukan dengan cara
7 18)(3 4) 23 11 (9(
dan i
(11 =(11 bull 24)bull 223 -)
sehingga teks-asli diperoleh kern bali
Dekripsi hanya mungkin dilakukan jika matriks K memiliki inversi Suatu
matriks K memiliki inversi jika dan hanya jika determinannya tidak no
lt)
62 Pengantar IImu Kriptografi
Namun karena 226 maka matriks K memiliki inversi modulo 26 jika dan
hanya jika gcd(det K 26)=1
Unruk matriks A berukuran 2 x 2 nilai determinannya adalah
det A alla22 - al2a21
dan matriks inversi dari A adalah
322 -312)(det ( -321 311
Contoh
K = (113 7
maka
11 detK det 3 ~j 11 7 8 3 mod 26
(
= 77 - 24 mod 26
53 mod 26
=1
kemudian 1-1 mod 26 1 sehingga matriks inversinya adalah
(11
=l3 =(3 11
Contoh
Kode Hill dengan menggunakan matriks 3 x 3 dltngan kunci matriks (42 3 6 33 312)
Diketahui teks-asli berikut KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
ltasik 61
c~ -lt ~~~ B ~ B c oc
ltlJ_i j) iii -e~ D 0shy
t lt1 t I~ o
+ + +r--+ rKEN1 l ~~ 40 + 8 + 39)
(423) (10) (1~~ Mod 26 () ( H) JH6 3 3 4 50 + 12 + 39 (3 2 1 13 30 + 4 + 25 60) 8 I
3) AIK
4 0+ 16 + 30)( I I 0 + 24 + 30 uee
( ( (i~) Mod 26 (y) (g)I 2 1 0+ 8 + 20
Alm 0 + 26 + 21 )
= 0 + 39 + 21 VIB( i ~ ~) (~3) Gn Mod 25 C~1) (r)I _ 1 7 ( 0+13+14
ARG
(4 2 I) (0) (0 + 14 + 18 ) ( 5 ) (G)(32)6 3 3 17 0 + 21 + 18 39 Mod 25 13 N GND 3 2 1 5 0 + 17 + 12 29 3 0
ABB
(4 2 I) (0) (0 + 2+ 3) (5) (21) (V)6 3 3 1 0 + 3 + 3 5 Mod 25 20 = U VUX 3 2 1 1 0 + 1 + 2 3 23 X
MME
( 4 2 I) (12) (48 + 24 + 12) (841 (6) (G6 3 3 12 72 + 35 + 12 120 Mod 26 = 15 = 0)1 GOE 3 2 1 4 36 + 12 + 8 56 4 E
( I)
MHU
(12) (48+2+60)( I I 1 = 72 + 3 + 60 GFZ 4 2 (~~J) Mod 26 (15) (~)I 2 1 20 36 + 1 + 40
ATR
0+ 38 + 51) (89( i ~ ~) (109) (0+58+51 109 ~1) (~) LFBMod26=
3 2 1 17 0+ 19 + 34 531
64 Pengantar IImu Kriptografi
AKY
0 + 20 + ) (92) (14) (0) 0 + 30 + 7272 102 Mod 26 = 24 = Y OYG 3 2 1 24 o+ 10 + 48 58 6 G
ATK
( ~ ~ ~) (100) (
( ( (Q)0+38+30) (68) (16)~ ~ ~) (109) = 0 + 57 + 30 = 87 Mod 26 9 J QJN
~ 2 1 10 o+ 19+ 20 39 13 N
Eel
16 + 4 + 24) = 24 + 6 + 24 = SCE~~~) (~) G~) Mod 26 (~) =(~) =( ~ 2 1 8 ( 12+2+16
LME
2 )6 ~ = Mod 26 CKB ( 3 2 1
NDE
I 2 52+6+12) (70) (18)6 3 78 + 9 + 12 = 99 Mod 26 21 SVY( 3 2 ~ ) (1I) ( 39 + 3 + 8 50 24
RIT
4 2 68+16+57) ~32) (2) (C)6 = 102+24+57 183 Mod26= 1 = B CST( (~) C~)3 2 51 + 8 + 38 97 19 T
AXX
(~ ~ ~) () 0 +46 +69) (11~ (11) (L)= 0 + 69 + 69 = 138 Mod 26 8 I LlR(3 2 1 23 o+ 23 + 46 69 17 R
teks-kode dari teks-asli
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
adalah
JHIUCCVIBGNDVUXFQCGFZLFBOXBQJNSCECKBSVYCBTLlR
Pada (ontoh di atas kekurangan pada akhir kalimat ditambah dengan humf x untuk mencukupi perkalian matriksnya Teks-kode dari Kode Hill juga bisa disajikan dalam bentuk angka seperti 9 7 8 20 222181 613321 2023 616465251151142461691318242101182124211911817atau menggunakan heksadesimal dan binari
65Algoritma Kriptografi Klasik
424 KOOE VIGENERE
Kode Vigenere termasuk kode abjad-majemuk (polyalphabetic substitution cipher) Dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis Blaise de Vigenere pada Abad 16 tahun 1586 Sebenamya Giovan Batista Belaso telah menggambarkannya untuk pertama kali pada tahun 1553 seperti ditulis di dalam buku La Cifra del Sig Algoritma ini bam dikenal luas 200 tahun kemudian dan dinamakan kode Vigimere Vigenere mempakan pemicu perang sipil di Amerika dan kode Vigenere digunakan oleh Tentara Konfiderasi (Confederate Army) pada Perang Sipil Amerika (American Civil War Kode ViJenere berhasil dipecahkan oleh Babbage dan Kltsiski pada pertengahan Abad 19
Gambar 44 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 teksshyasli 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
4241 ANGKA
Teknik subsitusi Vigenere dengan menggunakan angka dilakukan dengan menukarkan humf dengan angka hampir sama dengan kode geser
T HIS CRY P T
19 7 8 18 2 17 24 15 19
2 B 15 7 4 17 2 8 15
21 15 23 25 6 8 0 23 8
ElM SINIOITISIEICIUIRIE 4 12
15 7
B
4
18 13 14 19 18 4 2 20 17 4
17 2 8 15 7 4 17 2 8 15
19 19 12 9 15 22 8 25 8
Teks-asli This cryptosystem is not secure
Kunci (28 157 4 17)
66 antar IImu Kri
A I 8 I C I DIE I FIG I H J IKILIM
o I 1 I 2 I 3 I 4 I 5 I 6 I 7 I a I 9 110 111 12
N 0 P Q R STU V W x y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Kunci dengan 6 huruf kode jika ditukar dengan angka akan menjadi K 0= (2 8 157417) dan reks-aslinya This Cryptosystem is Not Secure
K05ik 67
4VU 1URUf
Ide dasarnya adalah dengan menggunakan kode Kaisar tetapi Jumlah pershygeseran hurufnya berbeda-beda untuk setiap periode beberapa huruf tertentu Untuk mengenkrlpsi pe~an dengan kode Vegenere digunakan tabula
(disebut juga bujUIsangkar Vigenere seperti gambar di bawah ini
ABC D E F G H I
A ABCDEFGHI J K L M N 0 r Q R S T U V W X Y Z
n B C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A
C C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A B
D D E F G H I J K L M N 0 p Q R S T U vlwx y Z A B Cl
E E F G H I J K L M N 0 r Q R S T U V W X Y Z A B C D
F F G H I r K L M N 0 I Q R S T U V WX Y Z A B C D E
G G H I J K L M N 0 I Q It S T U V W X Y Z A B C D E F
H H I J K L M N 0 P Q R S T U V WX Y Z A B C D E F G
I J K L MN o l Q R S T U V W XY Z A B C D E FmiddotG ~cshy - - f-shyJ K L M N 0 l Q R S T U V WX Y Z A n C D E F G H I - iK L MN o l Q R S T U V W X Y Z A B C D E F G H I J-
G ITT e-middot
L M NO l Q R S T U VW X Y Z A B C D E F J K
I
K J u K 11 L
~ N 0 Q R S T U V W X Y Z A n C D E F G H I J K L N 0 I Q It S T U VW X Y Z A B C D E F G H I J K L M
o l U V WX Y Z C D E F~ H shy
Q R S T A B I J K L MN
I Q It S T U VW X Y Z A 11 C D E F G H ri J K L M N 0
C M N
0
l
Q S It S T U VW X Y Z A B C D E F G H I J K L MN o I
R S T U V W X Y Z A n C D E F G H I J K L M N 0 r Qf-shy TS U V WX Y Z A B C D E F G H I J K L M N o r Q It
f-shy -Ishy -I-shy
It
S
T T U VW x y Z A B C D E F G H I J K L MN 0 I Q It S
U U v WX Y Z A B C D E F G H I J K L MN o rQ It s T V VW X Y Z A B C D E F G H I J K L MN o I Q R S T U
_
W WX Y Z A B C D E F G H I J K L MN o r R It S T U V x x Y Z A B C D E F G H I J K L M N 0 r Q It S T U V W Y Y Z A B C D E F G H 1 J K L M N o l Q It S T U V WX
Z A 11 C D E F G H I J K L M N 0 I Q R STU VW x Y -_ ____ ___ __ __ _ _ _ L c __Z
0 S Y S T
14 18 24 18 19
7 4 17 2 8
21 22 15 20 1
19 22 25 19
Teks-kode VPXZGIAXIVWPUBTTMJPWIZITWZT
Untuk melakukan dekripsi juga bisa menggunakan kunci yang sarna dengan modulo 26
recta
Ilaintext J K L M NOr Q R STU V W X Y Z
Tabula recta digmakan 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) bull k(i mod m))
68 69 Pengantar IImu Kriptografi
dengan
huruf ke-i dalam teks-asli
kn huruf ke-n dalam kunci
m panjang kunci dan
V(xy) 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 teksshyasli dan gans lurus ke samping dari posisi kunci maka akan ditemukan huruf un Huruf U inilah yang akan menjadi teks-kode Begitu seterusnya Coba perhatikan contoh berikut ini
Algoritma Kriptografi Kla~ik
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 teksshykode belum tentu bisa didekripsikan menjacli clua huruf yang sarna dalam teks-asli
70 71 Pengantar Ilmu Kriptografi
Pada eontoh tersebut huruf M pad a teks-kode berasal dari huruf H dan T pada teks-ash
Gambar memperlihatkan perbandinggan frekuensi kemuneulan huruf pada suaru teks-asli dan huruf pada teks-kode dengan menggunakan kode Vigenere
2 Plaintext
2k
11 15 2 26
1-1--+------------
6
ftl K I~ I
Gambar 45 Perbondingon Frekuensi Kemunculon Huruf podo Kode Vigenere
Kelemahan utama kode Vigen ere adalah kuncinya yang pendek dan pengshygunaannya yang berulang-ulang Jika kriptanalis dapat menentukan panjang kunei saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa kode Kaisar
Metode Kasiski membanru menemukan panjang kunci-kode Vigenere Metode Kasiski memanfaatkan keuntungan bahasa Inggris yang tidak hanya mengandung perulangan huruf tetapi juga perulangan pasangan huruf atau tripel huruf seperti TH THE dsb Perulangan huruf ini memungkinkan unruk menghasilkan kriptogram yang berulang
Contoh
Teks-asli CRYPTO IS SHORT FOR CRYPTOGRAPHY
Kunci abcdab cd abcda bed abedabedabed Teks-kode CSASTP KV SIQUT GQU CSASTPIPAQJB
Algoritma Kriptografi Klasik
Pada eontoh tersebut CRYPTO dienkripsi menjadi kriptogram yang sarna yaitu CSATP Hal ini dikarenakan jarak antara dua buah string yang berulang di dalam teks-asli merupakan kelipatan dad panjang kunci sehingga string yang sarna tersebut akan muneul menjadi kriptogram yang sarna pula di dalam teks-kode Tujuan dad metode Kasiski adalah meneari dua atau lebih kr ptogram yang berulang untuk menentukan panjang kunci
Langkah metode Kasiski adalah sebagai berikut
1 Temukan semua kriptogram yang berulang di dalam teks-kode (pesan yang panjang biasanya mengandung kriptogram yang berulang)
2 Hitung j-ak antara kriptogram yang berulang
3 Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi menyatakan panjang kunei yang mungkin)
4 Tentukan irisan dari himpunan faktor pembagi tersebut Nilai yang muncul di dalam irisan menyatakan angka yang muneul pada semua faktor pembagi dari jarak-jarak tersebut Nilai tersebut mungkin adalah panjang kunei Hal ini karena string yang berulang dapat munetll bertindihan (coincidence)
Setelah panjang kunci diketahui maka langkah berikutnya adalah menentushykan kata kunci Kata kunei dapat ditentukan menggunakan exhaustive kef search Jika panjang kunei adalah p maka jumlah kunci yang harus dieoba
adalah 26Pbull Namun akan lebih efisien bila menggunakan teknik analisis
frekuensi
Langkah-Iangkah untuk melakukan analisis frekuensi adalah
1 Misalkan panjang kunei yang sudah berhasil dideduksi adalah n Setiap huruf kelipatan ke-n pasti dienkripsi dengan huruf kunci yang sarna Kelompokkan setiap huruf ke-n bersama-sama sehingga kriptanalis memiliki n buah pesan masing-masing dienkripsi dengan substitusi alfabet-tunggal (dalam hal ini kode Kaisar)
2 Tiap-tiap pes an dari hasil langkah 1 dapat dipeeahkan dengan teknik analisis fJ ekuensi
3 Dari hasillangkah 3 kriptanalis dapat menyusun huruf-huruf kunei atau menerka kata yang dapat membantu memeeahkan teks-kode
72 Pengantar IImu Kriptografi
Pada abad kemiddot19 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
425 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris pada Perang Boer (Perang Dunia I) pada awal Abad 20 untuk mengirim pes an antarmarkas yang ada di Inggris
Sir Charles Wheatstone Boron lyon
Gambar 46 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet) Dengan begitu kunci yang digunakan ada 25 alfabet Jumlah kemungkinan kunci pada kode Playfair 25=155112IO043330985984000000
Algoritma Kriptografi Klasik 73
Contch
Diketahui teks-asli Di dalam jiwa ya
Uotuk melakukan enkripsi kode berikut
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1 Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom maka pergerakan karakter dimulai dari huruf kedua secara vertikal menuju karakter teks-kode yang pertama Misalnya teks-as1i di huruf keduanya adalah Hi maka dari i yang di dalam matriks bergerak vertikal mencari huruf yang sebaris dengan d maka akan dijumpai karakter n (sebagai teks-kode) Untuk karakter yang kedua d mencari sisi lain seperti cara karakter Hi sehingga dijumpai karakter I Jadi teksshykode dad di adalah nl
S DT A ~ e ~E R II
vGF IK -pa UM Q
yW x zV
2 Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom atau baris yang sarna dan saling berdekatan maka digunakan prinsip enkripsi atau dekripsi ke bawah atau ke samping Cootoh untuk mengenkripsi an maka karakter di sam ping n adalah d da) karakter di sam ping a adalah un sehingga teks-kodenya menjadi dn
5 T A N D
E R C H B
K F G ] 11 M 0 p Q umiddot V W X Y Z
~L ~II ~ S T PI
e BHE BshyF G I LK
p ~QM a UI V YW IX Zl
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
56 Pengantar IImu Kriptografi
Dengan menggunakan lebih dari satu kunci bisa menggunakan metode pendistribusian kunci-kunci yang ada M(tode hi terdiri dari tiga bagian yaitu bIok karakter dan zig-zag
1 Blok
Metode untuk melakukan enkripsi dengan menggunakan blok adalah dengan membagi jumlah teks-asli menjadi blok-blok yang ditentukan tergantung dari keinginan pengirim pes an Coba perhatikan contoh di bawah ini
Teks-asH BANJIR MEREDAM JAKARTA HARGA BAHAN POKOK NAIK
Teks-asH di atas dibagi menjadi 8 blok Setiap blok berisi 6 karakter Karena blok yang ketujuh tidak mencukupi maka ditambah dengan karakter X atau karakter lain yang diinginkan
--_--- --_--- [MJAKAR] [TAHARGJ rABAHNl li~ I AIKXXX
Block 1 Block 2 Block 3 Block 4 Block 5 Illock 6 Block 7
KI
K2
KJ
Didapat teks-kode berikut
ODGBSI HKNKAY EllKCKN PDUDlI YOYBYI LJCJCH DSCXXX I I I I I I I I I
Kl K2 K3 K1 K2 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 mengshy
enkripsi dua blok sekaligus dengan memakai satu kunci (Kl K2 atau K3) dan seterusnya Maka didapat hasil pendistribusian kunci untuk teks-kode sebagai berikut
ODGBSLHKNKA YEBKCKNPDUDLlYOYBYILJCJCHDSCXXX
~~ltaorimo ltxioltaro ltO( 57
Dengan menggunakan metode ini jika satu kunci ditemukan oleh kriptanalis belum tentu pesan bisa dipecahkan karena masih ada beberapa kunci lagi yang harus dicari
2 Karakter
Metode ini menggunakan pendistribusian per karakter hampir sama dengan metode biok Contoh pendistribusian per karakter adalah seperti di bawah ini
I I I I j TI-rIIJIIIIIlulIIAI~ILI_
K] I I - - r ITT I II n 1 I __ Iv ~ I I -ILD () N Y A n 1 T I lt Jl r r t -7 rr ow- _ _ _ __
10 K R J f T n r A r r r T bull bull bullbull
o Y Hll C N r K N A A K I D K C Y N PYA 0 N G
~j 1~u ~j 1~u ~j 1~u Jj 1~u K3 KJ KJ KJ K3 KJ KJ KJ
fjIqPll rIP]I KJ KJ KJ KJ KJ
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
Kli - I J bull bull I ~ vI ~ ~ t - t bull - U J - - m lt I - I - -I 1 - )
K21~~~1EI~ I ~ IFI~I J-I~I~lol IQlnls ITlulwlxlylz I
Dari teks-asH
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDER ITA
didapat teks-kode
FMPKCFKPVKJGKSSOOMOSHKTJKFXKTFMOCNOMPYMJCTK
422 KODE GESER
Teknik substitusi kode geser (shift) cengan 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 114
--- shyp Q R S T U V W X Y Z
15 16 17 18 19 20 21 22 23 24 25
Teks-asli We Will Meet at Mid Night
Kalimat di atas mendaoat angka dari setiap huruf sebagai berikut
22 4 22 8 II II 12 4 4 19 deg19 12 8 3 13 8 6 7 19
Untuk mendapatkan teks-kode kita mempunyai kunei 11 Dengan meshynambahkan setiap nilai dari teks-asli dengan kunci 11 maka didapat
7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4
Jqo~mo lttoq~o ltolt 59
Jika lebih dari 20 setelah ditambah dengan kunci maka akan dikurangi
dengan 26 Misalnya 22+11= 33 - 26 7 Setelah dikonversi menjadi huruf maka akan didapatkan teks-kode
HPHTWWXPPELEXTOYTRSE
Teks-asli We will meet at mid night
Teks-kode HPHTWWXPPELEXTOYTRSE
Kunci 11
423 KODE Hill
Kode Hill termasuk salah satu sistem kripto polialfabetik yang berarti karakter alfabet bisa dipetakan ke lebih dari satu maeam karakter Kode ini
ditemukan pada tahun 1929 oleh Lester S Hill Misalkan m adalah bilangan bulat positif dan P = C Ide dari kode Hill adalah dengan mengambil
m kombinasi linear dari m karakter alfabet dalam satu elemen teks-asli sehingga dihasilkan TIl alfabet karakter dalam saru elemen teks-asli
Misalkan m = 2 maka dapar ditulis suatu elemen teks-asli sebagai x = (XI X2)
dan suam elemen teks-kode sebagai y = (yl Y2) Oi sini yl yl adalah kombinasi linear dari XI dan X2 Misalkan
1 (jyl = llxl + 3X2
Ie j l y2 8xI + 7X2 dimlis dalam notasi matriks sebagai berikut
i) (jI11 811 j - q
(YIY2) (xx2 ) 3 shy -( 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 kj maka dapat ditulis II [ cmiddot ( r
K (kJ Untuk x (XI Xm) E P dan K E K dihitung y eK(x) = (Yl ~ sebagai berikut -
kll 1 o
klmjk2J k2bull2 k2m Ii
(Y)Y2 (x) x2 X sS ~ ~ -
H
2
m
km 2 k~fTJ o
o
60 Pengantar IImu Kriptografi
dengan kat a lain y xK
Dikatakan bahwa teks-kode diperoleh dari teks-asli dengan cara transformasi
linear Untuk melakukan dekripsi menggunakan matriks inversi K-I dekripsi
dilakukan dengan rumus x =yK-
1 Perkalian matriks memiliki sifat asosiatif yaitu (AB)C A(BC)
2 Matriks identitas m x m yang ditulis dengan Im adalah matriks yang
berisi 1 pada diagonal utama dan berisi 0 pada elemen lainnya
Contoh matriks identitas 2 x 2
12 =
1m disebut dengan matriks identitas karena AIm A untuk sembarang
matriks I x m dan 1mB B untuk sembarang matriks m x n
3 Matriks inversi dari A (jika ada) adalah kl di mana AAmiddotI kA = 1m
Dengan menggunakan sifat-sifat matriks di atas maka
y xK
yKmiddotI (xK)KI = x(KKmiddotI) xlm X
Contoh
Dapat dilihat bahwa matriks enkripsi pada contoh sebemmnya memiliki
inversi pada Z26
fll 8)-1 l( 7 18) 3 7 23 11l
-
r A f
n~ Karena
III ~J (3 1 =(117+823 l118+8I1J
l3 37+723 318+711 II 261 2861
( 182 131) i
=(~ 1
Ingat bahwa semua operasi aritmetik di atas dilakukan pada modulo 26
~ AgorHmo Kriptogroti Kosik 61
Sebuah contoh untuk memberikan gambaran tentang enkripsi dan dekripsi dalam kode Hill
Misalkan kunci yang dipakai adalah
K=C ~) Dari perhitungan di atas diperoleh bahwa
K-I =( 7 18J 23 11
Misalkan untuk mengenkripsi teks-asli JULY ada 2 elemen teks-asli untuk dienkripsi
1 (920) ~
2 (11 24) ~ L Y
Kemudian lakukan perhitungan berikut
11 81 (9 20) ( 3 7j =(99+60 72+140) (3 4) ~ DE
dan
(11 8)(11 bull 24) 3 7 (121+72 88+168)=(11 22) ~ LW
sehingga enkripsi untuk JULY adalah DELW
Untuk mendekripsi dilakukan dengan cara
7 18)(3 4) 23 11 (9(
dan i
(11 =(11 bull 24)bull 223 -)
sehingga teks-asli diperoleh kern bali
Dekripsi hanya mungkin dilakukan jika matriks K memiliki inversi Suatu
matriks K memiliki inversi jika dan hanya jika determinannya tidak no
lt)
62 Pengantar IImu Kriptografi
Namun karena 226 maka matriks K memiliki inversi modulo 26 jika dan
hanya jika gcd(det K 26)=1
Unruk matriks A berukuran 2 x 2 nilai determinannya adalah
det A alla22 - al2a21
dan matriks inversi dari A adalah
322 -312)(det ( -321 311
Contoh
K = (113 7
maka
11 detK det 3 ~j 11 7 8 3 mod 26
(
= 77 - 24 mod 26
53 mod 26
=1
kemudian 1-1 mod 26 1 sehingga matriks inversinya adalah
(11
=l3 =(3 11
Contoh
Kode Hill dengan menggunakan matriks 3 x 3 dltngan kunci matriks (42 3 6 33 312)
Diketahui teks-asli berikut KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
ltasik 61
c~ -lt ~~~ B ~ B c oc
ltlJ_i j) iii -e~ D 0shy
t lt1 t I~ o
+ + +r--+ rKEN1 l ~~ 40 + 8 + 39)
(423) (10) (1~~ Mod 26 () ( H) JH6 3 3 4 50 + 12 + 39 (3 2 1 13 30 + 4 + 25 60) 8 I
3) AIK
4 0+ 16 + 30)( I I 0 + 24 + 30 uee
( ( (i~) Mod 26 (y) (g)I 2 1 0+ 8 + 20
Alm 0 + 26 + 21 )
= 0 + 39 + 21 VIB( i ~ ~) (~3) Gn Mod 25 C~1) (r)I _ 1 7 ( 0+13+14
ARG
(4 2 I) (0) (0 + 14 + 18 ) ( 5 ) (G)(32)6 3 3 17 0 + 21 + 18 39 Mod 25 13 N GND 3 2 1 5 0 + 17 + 12 29 3 0
ABB
(4 2 I) (0) (0 + 2+ 3) (5) (21) (V)6 3 3 1 0 + 3 + 3 5 Mod 25 20 = U VUX 3 2 1 1 0 + 1 + 2 3 23 X
MME
( 4 2 I) (12) (48 + 24 + 12) (841 (6) (G6 3 3 12 72 + 35 + 12 120 Mod 26 = 15 = 0)1 GOE 3 2 1 4 36 + 12 + 8 56 4 E
( I)
MHU
(12) (48+2+60)( I I 1 = 72 + 3 + 60 GFZ 4 2 (~~J) Mod 26 (15) (~)I 2 1 20 36 + 1 + 40
ATR
0+ 38 + 51) (89( i ~ ~) (109) (0+58+51 109 ~1) (~) LFBMod26=
3 2 1 17 0+ 19 + 34 531
64 Pengantar IImu Kriptografi
AKY
0 + 20 + ) (92) (14) (0) 0 + 30 + 7272 102 Mod 26 = 24 = Y OYG 3 2 1 24 o+ 10 + 48 58 6 G
ATK
( ~ ~ ~) (100) (
( ( (Q)0+38+30) (68) (16)~ ~ ~) (109) = 0 + 57 + 30 = 87 Mod 26 9 J QJN
~ 2 1 10 o+ 19+ 20 39 13 N
Eel
16 + 4 + 24) = 24 + 6 + 24 = SCE~~~) (~) G~) Mod 26 (~) =(~) =( ~ 2 1 8 ( 12+2+16
LME
2 )6 ~ = Mod 26 CKB ( 3 2 1
NDE
I 2 52+6+12) (70) (18)6 3 78 + 9 + 12 = 99 Mod 26 21 SVY( 3 2 ~ ) (1I) ( 39 + 3 + 8 50 24
RIT
4 2 68+16+57) ~32) (2) (C)6 = 102+24+57 183 Mod26= 1 = B CST( (~) C~)3 2 51 + 8 + 38 97 19 T
AXX
(~ ~ ~) () 0 +46 +69) (11~ (11) (L)= 0 + 69 + 69 = 138 Mod 26 8 I LlR(3 2 1 23 o+ 23 + 46 69 17 R
teks-kode dari teks-asli
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
adalah
JHIUCCVIBGNDVUXFQCGFZLFBOXBQJNSCECKBSVYCBTLlR
Pada (ontoh di atas kekurangan pada akhir kalimat ditambah dengan humf x untuk mencukupi perkalian matriksnya Teks-kode dari Kode Hill juga bisa disajikan dalam bentuk angka seperti 9 7 8 20 222181 613321 2023 616465251151142461691318242101182124211911817atau menggunakan heksadesimal dan binari
65Algoritma Kriptografi Klasik
424 KOOE VIGENERE
Kode Vigenere termasuk kode abjad-majemuk (polyalphabetic substitution cipher) Dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis Blaise de Vigenere pada Abad 16 tahun 1586 Sebenamya Giovan Batista Belaso telah menggambarkannya untuk pertama kali pada tahun 1553 seperti ditulis di dalam buku La Cifra del Sig Algoritma ini bam dikenal luas 200 tahun kemudian dan dinamakan kode Vigimere Vigenere mempakan pemicu perang sipil di Amerika dan kode Vigenere digunakan oleh Tentara Konfiderasi (Confederate Army) pada Perang Sipil Amerika (American Civil War Kode ViJenere berhasil dipecahkan oleh Babbage dan Kltsiski pada pertengahan Abad 19
Gambar 44 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 teksshyasli 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
4241 ANGKA
Teknik subsitusi Vigenere dengan menggunakan angka dilakukan dengan menukarkan humf dengan angka hampir sama dengan kode geser
T HIS CRY P T
19 7 8 18 2 17 24 15 19
2 B 15 7 4 17 2 8 15
21 15 23 25 6 8 0 23 8
ElM SINIOITISIEICIUIRIE 4 12
15 7
B
4
18 13 14 19 18 4 2 20 17 4
17 2 8 15 7 4 17 2 8 15
19 19 12 9 15 22 8 25 8
Teks-asli This cryptosystem is not secure
Kunci (28 157 4 17)
66 antar IImu Kri
A I 8 I C I DIE I FIG I H J IKILIM
o I 1 I 2 I 3 I 4 I 5 I 6 I 7 I a I 9 110 111 12
N 0 P Q R STU V W x y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Kunci dengan 6 huruf kode jika ditukar dengan angka akan menjadi K 0= (2 8 157417) dan reks-aslinya This Cryptosystem is Not Secure
K05ik 67
4VU 1URUf
Ide dasarnya adalah dengan menggunakan kode Kaisar tetapi Jumlah pershygeseran hurufnya berbeda-beda untuk setiap periode beberapa huruf tertentu Untuk mengenkrlpsi pe~an dengan kode Vegenere digunakan tabula
(disebut juga bujUIsangkar Vigenere seperti gambar di bawah ini
ABC D E F G H I
A ABCDEFGHI J K L M N 0 r Q R S T U V W X Y Z
n B C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A
C C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A B
D D E F G H I J K L M N 0 p Q R S T U vlwx y Z A B Cl
E E F G H I J K L M N 0 r Q R S T U V W X Y Z A B C D
F F G H I r K L M N 0 I Q R S T U V WX Y Z A B C D E
G G H I J K L M N 0 I Q It S T U V W X Y Z A B C D E F
H H I J K L M N 0 P Q R S T U V WX Y Z A B C D E F G
I J K L MN o l Q R S T U V W XY Z A B C D E FmiddotG ~cshy - - f-shyJ K L M N 0 l Q R S T U V WX Y Z A n C D E F G H I - iK L MN o l Q R S T U V W X Y Z A B C D E F G H I J-
G ITT e-middot
L M NO l Q R S T U VW X Y Z A B C D E F J K
I
K J u K 11 L
~ N 0 Q R S T U V W X Y Z A n C D E F G H I J K L N 0 I Q It S T U VW X Y Z A B C D E F G H I J K L M
o l U V WX Y Z C D E F~ H shy
Q R S T A B I J K L MN
I Q It S T U VW X Y Z A 11 C D E F G H ri J K L M N 0
C M N
0
l
Q S It S T U VW X Y Z A B C D E F G H I J K L MN o I
R S T U V W X Y Z A n C D E F G H I J K L M N 0 r Qf-shy TS U V WX Y Z A B C D E F G H I J K L M N o r Q It
f-shy -Ishy -I-shy
It
S
T T U VW x y Z A B C D E F G H I J K L MN 0 I Q It S
U U v WX Y Z A B C D E F G H I J K L MN o rQ It s T V VW X Y Z A B C D E F G H I J K L MN o I Q R S T U
_
W WX Y Z A B C D E F G H I J K L MN o r R It S T U V x x Y Z A B C D E F G H I J K L M N 0 r Q It S T U V W Y Y Z A B C D E F G H 1 J K L M N o l Q It S T U V WX
Z A 11 C D E F G H I J K L M N 0 I Q R STU VW x Y -_ ____ ___ __ __ _ _ _ L c __Z
0 S Y S T
14 18 24 18 19
7 4 17 2 8
21 22 15 20 1
19 22 25 19
Teks-kode VPXZGIAXIVWPUBTTMJPWIZITWZT
Untuk melakukan dekripsi juga bisa menggunakan kunci yang sarna dengan modulo 26
recta
Ilaintext J K L M NOr Q R STU V W X Y Z
Tabula recta digmakan 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) bull k(i mod m))
68 69 Pengantar IImu Kriptografi
dengan
huruf ke-i dalam teks-asli
kn huruf ke-n dalam kunci
m panjang kunci dan
V(xy) 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 teksshyasli dan gans lurus ke samping dari posisi kunci maka akan ditemukan huruf un Huruf U inilah yang akan menjadi teks-kode Begitu seterusnya Coba perhatikan contoh berikut ini
Algoritma Kriptografi Kla~ik
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 teksshykode belum tentu bisa didekripsikan menjacli clua huruf yang sarna dalam teks-asli
70 71 Pengantar Ilmu Kriptografi
Pada eontoh tersebut huruf M pad a teks-kode berasal dari huruf H dan T pada teks-ash
Gambar memperlihatkan perbandinggan frekuensi kemuneulan huruf pada suaru teks-asli dan huruf pada teks-kode dengan menggunakan kode Vigenere
2 Plaintext
2k
11 15 2 26
1-1--+------------
6
ftl K I~ I
Gambar 45 Perbondingon Frekuensi Kemunculon Huruf podo Kode Vigenere
Kelemahan utama kode Vigen ere adalah kuncinya yang pendek dan pengshygunaannya yang berulang-ulang Jika kriptanalis dapat menentukan panjang kunei saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa kode Kaisar
Metode Kasiski membanru menemukan panjang kunci-kode Vigenere Metode Kasiski memanfaatkan keuntungan bahasa Inggris yang tidak hanya mengandung perulangan huruf tetapi juga perulangan pasangan huruf atau tripel huruf seperti TH THE dsb Perulangan huruf ini memungkinkan unruk menghasilkan kriptogram yang berulang
Contoh
Teks-asli CRYPTO IS SHORT FOR CRYPTOGRAPHY
Kunci abcdab cd abcda bed abedabedabed Teks-kode CSASTP KV SIQUT GQU CSASTPIPAQJB
Algoritma Kriptografi Klasik
Pada eontoh tersebut CRYPTO dienkripsi menjadi kriptogram yang sarna yaitu CSATP Hal ini dikarenakan jarak antara dua buah string yang berulang di dalam teks-asli merupakan kelipatan dad panjang kunci sehingga string yang sarna tersebut akan muneul menjadi kriptogram yang sarna pula di dalam teks-kode Tujuan dad metode Kasiski adalah meneari dua atau lebih kr ptogram yang berulang untuk menentukan panjang kunci
Langkah metode Kasiski adalah sebagai berikut
1 Temukan semua kriptogram yang berulang di dalam teks-kode (pesan yang panjang biasanya mengandung kriptogram yang berulang)
2 Hitung j-ak antara kriptogram yang berulang
3 Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi menyatakan panjang kunei yang mungkin)
4 Tentukan irisan dari himpunan faktor pembagi tersebut Nilai yang muncul di dalam irisan menyatakan angka yang muneul pada semua faktor pembagi dari jarak-jarak tersebut Nilai tersebut mungkin adalah panjang kunei Hal ini karena string yang berulang dapat munetll bertindihan (coincidence)
Setelah panjang kunci diketahui maka langkah berikutnya adalah menentushykan kata kunci Kata kunei dapat ditentukan menggunakan exhaustive kef search Jika panjang kunei adalah p maka jumlah kunci yang harus dieoba
adalah 26Pbull Namun akan lebih efisien bila menggunakan teknik analisis
frekuensi
Langkah-Iangkah untuk melakukan analisis frekuensi adalah
1 Misalkan panjang kunei yang sudah berhasil dideduksi adalah n Setiap huruf kelipatan ke-n pasti dienkripsi dengan huruf kunci yang sarna Kelompokkan setiap huruf ke-n bersama-sama sehingga kriptanalis memiliki n buah pesan masing-masing dienkripsi dengan substitusi alfabet-tunggal (dalam hal ini kode Kaisar)
2 Tiap-tiap pes an dari hasil langkah 1 dapat dipeeahkan dengan teknik analisis fJ ekuensi
3 Dari hasillangkah 3 kriptanalis dapat menyusun huruf-huruf kunei atau menerka kata yang dapat membantu memeeahkan teks-kode
72 Pengantar IImu Kriptografi
Pada abad kemiddot19 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
425 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris pada Perang Boer (Perang Dunia I) pada awal Abad 20 untuk mengirim pes an antarmarkas yang ada di Inggris
Sir Charles Wheatstone Boron lyon
Gambar 46 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet) Dengan begitu kunci yang digunakan ada 25 alfabet Jumlah kemungkinan kunci pada kode Playfair 25=155112IO043330985984000000
Algoritma Kriptografi Klasik 73
Contch
Diketahui teks-asli Di dalam jiwa ya
Uotuk melakukan enkripsi kode berikut
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1 Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom maka pergerakan karakter dimulai dari huruf kedua secara vertikal menuju karakter teks-kode yang pertama Misalnya teks-as1i di huruf keduanya adalah Hi maka dari i yang di dalam matriks bergerak vertikal mencari huruf yang sebaris dengan d maka akan dijumpai karakter n (sebagai teks-kode) Untuk karakter yang kedua d mencari sisi lain seperti cara karakter Hi sehingga dijumpai karakter I Jadi teksshykode dad di adalah nl
S DT A ~ e ~E R II
vGF IK -pa UM Q
yW x zV
2 Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom atau baris yang sarna dan saling berdekatan maka digunakan prinsip enkripsi atau dekripsi ke bawah atau ke samping Cootoh untuk mengenkripsi an maka karakter di sam ping n adalah d da) karakter di sam ping a adalah un sehingga teks-kodenya menjadi dn
5 T A N D
E R C H B
K F G ] 11 M 0 p Q umiddot V W X Y Z
~L ~II ~ S T PI
e BHE BshyF G I LK
p ~QM a UI V YW IX Zl
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
58 Pengantar IImu Kriptografi
Kli - I J bull bull I ~ vI ~ ~ t - t bull - U J - - m lt I - I - -I 1 - )
K21~~~1EI~ I ~ IFI~I J-I~I~lol IQlnls ITlulwlxlylz I
Dari teks-asH
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDER ITA
didapat teks-kode
FMPKCFKPVKJGKSSOOMOSHKTJKFXKTFMOCNOMPYMJCTK
422 KODE GESER
Teknik substitusi kode geser (shift) cengan 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 114
--- shyp Q R S T U V W X Y Z
15 16 17 18 19 20 21 22 23 24 25
Teks-asli We Will Meet at Mid Night
Kalimat di atas mendaoat angka dari setiap huruf sebagai berikut
22 4 22 8 II II 12 4 4 19 deg19 12 8 3 13 8 6 7 19
Untuk mendapatkan teks-kode kita mempunyai kunei 11 Dengan meshynambahkan setiap nilai dari teks-asli dengan kunci 11 maka didapat
7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4
Jqo~mo lttoq~o ltolt 59
Jika lebih dari 20 setelah ditambah dengan kunci maka akan dikurangi
dengan 26 Misalnya 22+11= 33 - 26 7 Setelah dikonversi menjadi huruf maka akan didapatkan teks-kode
HPHTWWXPPELEXTOYTRSE
Teks-asli We will meet at mid night
Teks-kode HPHTWWXPPELEXTOYTRSE
Kunci 11
423 KODE Hill
Kode Hill termasuk salah satu sistem kripto polialfabetik yang berarti karakter alfabet bisa dipetakan ke lebih dari satu maeam karakter Kode ini
ditemukan pada tahun 1929 oleh Lester S Hill Misalkan m adalah bilangan bulat positif dan P = C Ide dari kode Hill adalah dengan mengambil
m kombinasi linear dari m karakter alfabet dalam satu elemen teks-asli sehingga dihasilkan TIl alfabet karakter dalam saru elemen teks-asli
Misalkan m = 2 maka dapar ditulis suatu elemen teks-asli sebagai x = (XI X2)
dan suam elemen teks-kode sebagai y = (yl Y2) Oi sini yl yl adalah kombinasi linear dari XI dan X2 Misalkan
1 (jyl = llxl + 3X2
Ie j l y2 8xI + 7X2 dimlis dalam notasi matriks sebagai berikut
i) (jI11 811 j - q
(YIY2) (xx2 ) 3 shy -( 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 kj maka dapat ditulis II [ cmiddot ( r
K (kJ Untuk x (XI Xm) E P dan K E K dihitung y eK(x) = (Yl ~ sebagai berikut -
kll 1 o
klmjk2J k2bull2 k2m Ii
(Y)Y2 (x) x2 X sS ~ ~ -
H
2
m
km 2 k~fTJ o
o
60 Pengantar IImu Kriptografi
dengan kat a lain y xK
Dikatakan bahwa teks-kode diperoleh dari teks-asli dengan cara transformasi
linear Untuk melakukan dekripsi menggunakan matriks inversi K-I dekripsi
dilakukan dengan rumus x =yK-
1 Perkalian matriks memiliki sifat asosiatif yaitu (AB)C A(BC)
2 Matriks identitas m x m yang ditulis dengan Im adalah matriks yang
berisi 1 pada diagonal utama dan berisi 0 pada elemen lainnya
Contoh matriks identitas 2 x 2
12 =
1m disebut dengan matriks identitas karena AIm A untuk sembarang
matriks I x m dan 1mB B untuk sembarang matriks m x n
3 Matriks inversi dari A (jika ada) adalah kl di mana AAmiddotI kA = 1m
Dengan menggunakan sifat-sifat matriks di atas maka
y xK
yKmiddotI (xK)KI = x(KKmiddotI) xlm X
Contoh
Dapat dilihat bahwa matriks enkripsi pada contoh sebemmnya memiliki
inversi pada Z26
fll 8)-1 l( 7 18) 3 7 23 11l
-
r A f
n~ Karena
III ~J (3 1 =(117+823 l118+8I1J
l3 37+723 318+711 II 261 2861
( 182 131) i
=(~ 1
Ingat bahwa semua operasi aritmetik di atas dilakukan pada modulo 26
~ AgorHmo Kriptogroti Kosik 61
Sebuah contoh untuk memberikan gambaran tentang enkripsi dan dekripsi dalam kode Hill
Misalkan kunci yang dipakai adalah
K=C ~) Dari perhitungan di atas diperoleh bahwa
K-I =( 7 18J 23 11
Misalkan untuk mengenkripsi teks-asli JULY ada 2 elemen teks-asli untuk dienkripsi
1 (920) ~
2 (11 24) ~ L Y
Kemudian lakukan perhitungan berikut
11 81 (9 20) ( 3 7j =(99+60 72+140) (3 4) ~ DE
dan
(11 8)(11 bull 24) 3 7 (121+72 88+168)=(11 22) ~ LW
sehingga enkripsi untuk JULY adalah DELW
Untuk mendekripsi dilakukan dengan cara
7 18)(3 4) 23 11 (9(
dan i
(11 =(11 bull 24)bull 223 -)
sehingga teks-asli diperoleh kern bali
Dekripsi hanya mungkin dilakukan jika matriks K memiliki inversi Suatu
matriks K memiliki inversi jika dan hanya jika determinannya tidak no
lt)
62 Pengantar IImu Kriptografi
Namun karena 226 maka matriks K memiliki inversi modulo 26 jika dan
hanya jika gcd(det K 26)=1
Unruk matriks A berukuran 2 x 2 nilai determinannya adalah
det A alla22 - al2a21
dan matriks inversi dari A adalah
322 -312)(det ( -321 311
Contoh
K = (113 7
maka
11 detK det 3 ~j 11 7 8 3 mod 26
(
= 77 - 24 mod 26
53 mod 26
=1
kemudian 1-1 mod 26 1 sehingga matriks inversinya adalah
(11
=l3 =(3 11
Contoh
Kode Hill dengan menggunakan matriks 3 x 3 dltngan kunci matriks (42 3 6 33 312)
Diketahui teks-asli berikut KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
ltasik 61
c~ -lt ~~~ B ~ B c oc
ltlJ_i j) iii -e~ D 0shy
t lt1 t I~ o
+ + +r--+ rKEN1 l ~~ 40 + 8 + 39)
(423) (10) (1~~ Mod 26 () ( H) JH6 3 3 4 50 + 12 + 39 (3 2 1 13 30 + 4 + 25 60) 8 I
3) AIK
4 0+ 16 + 30)( I I 0 + 24 + 30 uee
( ( (i~) Mod 26 (y) (g)I 2 1 0+ 8 + 20
Alm 0 + 26 + 21 )
= 0 + 39 + 21 VIB( i ~ ~) (~3) Gn Mod 25 C~1) (r)I _ 1 7 ( 0+13+14
ARG
(4 2 I) (0) (0 + 14 + 18 ) ( 5 ) (G)(32)6 3 3 17 0 + 21 + 18 39 Mod 25 13 N GND 3 2 1 5 0 + 17 + 12 29 3 0
ABB
(4 2 I) (0) (0 + 2+ 3) (5) (21) (V)6 3 3 1 0 + 3 + 3 5 Mod 25 20 = U VUX 3 2 1 1 0 + 1 + 2 3 23 X
MME
( 4 2 I) (12) (48 + 24 + 12) (841 (6) (G6 3 3 12 72 + 35 + 12 120 Mod 26 = 15 = 0)1 GOE 3 2 1 4 36 + 12 + 8 56 4 E
( I)
MHU
(12) (48+2+60)( I I 1 = 72 + 3 + 60 GFZ 4 2 (~~J) Mod 26 (15) (~)I 2 1 20 36 + 1 + 40
ATR
0+ 38 + 51) (89( i ~ ~) (109) (0+58+51 109 ~1) (~) LFBMod26=
3 2 1 17 0+ 19 + 34 531
64 Pengantar IImu Kriptografi
AKY
0 + 20 + ) (92) (14) (0) 0 + 30 + 7272 102 Mod 26 = 24 = Y OYG 3 2 1 24 o+ 10 + 48 58 6 G
ATK
( ~ ~ ~) (100) (
( ( (Q)0+38+30) (68) (16)~ ~ ~) (109) = 0 + 57 + 30 = 87 Mod 26 9 J QJN
~ 2 1 10 o+ 19+ 20 39 13 N
Eel
16 + 4 + 24) = 24 + 6 + 24 = SCE~~~) (~) G~) Mod 26 (~) =(~) =( ~ 2 1 8 ( 12+2+16
LME
2 )6 ~ = Mod 26 CKB ( 3 2 1
NDE
I 2 52+6+12) (70) (18)6 3 78 + 9 + 12 = 99 Mod 26 21 SVY( 3 2 ~ ) (1I) ( 39 + 3 + 8 50 24
RIT
4 2 68+16+57) ~32) (2) (C)6 = 102+24+57 183 Mod26= 1 = B CST( (~) C~)3 2 51 + 8 + 38 97 19 T
AXX
(~ ~ ~) () 0 +46 +69) (11~ (11) (L)= 0 + 69 + 69 = 138 Mod 26 8 I LlR(3 2 1 23 o+ 23 + 46 69 17 R
teks-kode dari teks-asli
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
adalah
JHIUCCVIBGNDVUXFQCGFZLFBOXBQJNSCECKBSVYCBTLlR
Pada (ontoh di atas kekurangan pada akhir kalimat ditambah dengan humf x untuk mencukupi perkalian matriksnya Teks-kode dari Kode Hill juga bisa disajikan dalam bentuk angka seperti 9 7 8 20 222181 613321 2023 616465251151142461691318242101182124211911817atau menggunakan heksadesimal dan binari
65Algoritma Kriptografi Klasik
424 KOOE VIGENERE
Kode Vigenere termasuk kode abjad-majemuk (polyalphabetic substitution cipher) Dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis Blaise de Vigenere pada Abad 16 tahun 1586 Sebenamya Giovan Batista Belaso telah menggambarkannya untuk pertama kali pada tahun 1553 seperti ditulis di dalam buku La Cifra del Sig Algoritma ini bam dikenal luas 200 tahun kemudian dan dinamakan kode Vigimere Vigenere mempakan pemicu perang sipil di Amerika dan kode Vigenere digunakan oleh Tentara Konfiderasi (Confederate Army) pada Perang Sipil Amerika (American Civil War Kode ViJenere berhasil dipecahkan oleh Babbage dan Kltsiski pada pertengahan Abad 19
Gambar 44 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 teksshyasli 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
4241 ANGKA
Teknik subsitusi Vigenere dengan menggunakan angka dilakukan dengan menukarkan humf dengan angka hampir sama dengan kode geser
T HIS CRY P T
19 7 8 18 2 17 24 15 19
2 B 15 7 4 17 2 8 15
21 15 23 25 6 8 0 23 8
ElM SINIOITISIEICIUIRIE 4 12
15 7
B
4
18 13 14 19 18 4 2 20 17 4
17 2 8 15 7 4 17 2 8 15
19 19 12 9 15 22 8 25 8
Teks-asli This cryptosystem is not secure
Kunci (28 157 4 17)
66 antar IImu Kri
A I 8 I C I DIE I FIG I H J IKILIM
o I 1 I 2 I 3 I 4 I 5 I 6 I 7 I a I 9 110 111 12
N 0 P Q R STU V W x y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Kunci dengan 6 huruf kode jika ditukar dengan angka akan menjadi K 0= (2 8 157417) dan reks-aslinya This Cryptosystem is Not Secure
K05ik 67
4VU 1URUf
Ide dasarnya adalah dengan menggunakan kode Kaisar tetapi Jumlah pershygeseran hurufnya berbeda-beda untuk setiap periode beberapa huruf tertentu Untuk mengenkrlpsi pe~an dengan kode Vegenere digunakan tabula
(disebut juga bujUIsangkar Vigenere seperti gambar di bawah ini
ABC D E F G H I
A ABCDEFGHI J K L M N 0 r Q R S T U V W X Y Z
n B C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A
C C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A B
D D E F G H I J K L M N 0 p Q R S T U vlwx y Z A B Cl
E E F G H I J K L M N 0 r Q R S T U V W X Y Z A B C D
F F G H I r K L M N 0 I Q R S T U V WX Y Z A B C D E
G G H I J K L M N 0 I Q It S T U V W X Y Z A B C D E F
H H I J K L M N 0 P Q R S T U V WX Y Z A B C D E F G
I J K L MN o l Q R S T U V W XY Z A B C D E FmiddotG ~cshy - - f-shyJ K L M N 0 l Q R S T U V WX Y Z A n C D E F G H I - iK L MN o l Q R S T U V W X Y Z A B C D E F G H I J-
G ITT e-middot
L M NO l Q R S T U VW X Y Z A B C D E F J K
I
K J u K 11 L
~ N 0 Q R S T U V W X Y Z A n C D E F G H I J K L N 0 I Q It S T U VW X Y Z A B C D E F G H I J K L M
o l U V WX Y Z C D E F~ H shy
Q R S T A B I J K L MN
I Q It S T U VW X Y Z A 11 C D E F G H ri J K L M N 0
C M N
0
l
Q S It S T U VW X Y Z A B C D E F G H I J K L MN o I
R S T U V W X Y Z A n C D E F G H I J K L M N 0 r Qf-shy TS U V WX Y Z A B C D E F G H I J K L M N o r Q It
f-shy -Ishy -I-shy
It
S
T T U VW x y Z A B C D E F G H I J K L MN 0 I Q It S
U U v WX Y Z A B C D E F G H I J K L MN o rQ It s T V VW X Y Z A B C D E F G H I J K L MN o I Q R S T U
_
W WX Y Z A B C D E F G H I J K L MN o r R It S T U V x x Y Z A B C D E F G H I J K L M N 0 r Q It S T U V W Y Y Z A B C D E F G H 1 J K L M N o l Q It S T U V WX
Z A 11 C D E F G H I J K L M N 0 I Q R STU VW x Y -_ ____ ___ __ __ _ _ _ L c __Z
0 S Y S T
14 18 24 18 19
7 4 17 2 8
21 22 15 20 1
19 22 25 19
Teks-kode VPXZGIAXIVWPUBTTMJPWIZITWZT
Untuk melakukan dekripsi juga bisa menggunakan kunci yang sarna dengan modulo 26
recta
Ilaintext J K L M NOr Q R STU V W X Y Z
Tabula recta digmakan 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) bull k(i mod m))
68 69 Pengantar IImu Kriptografi
dengan
huruf ke-i dalam teks-asli
kn huruf ke-n dalam kunci
m panjang kunci dan
V(xy) 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 teksshyasli dan gans lurus ke samping dari posisi kunci maka akan ditemukan huruf un Huruf U inilah yang akan menjadi teks-kode Begitu seterusnya Coba perhatikan contoh berikut ini
Algoritma Kriptografi Kla~ik
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 teksshykode belum tentu bisa didekripsikan menjacli clua huruf yang sarna dalam teks-asli
70 71 Pengantar Ilmu Kriptografi
Pada eontoh tersebut huruf M pad a teks-kode berasal dari huruf H dan T pada teks-ash
Gambar memperlihatkan perbandinggan frekuensi kemuneulan huruf pada suaru teks-asli dan huruf pada teks-kode dengan menggunakan kode Vigenere
2 Plaintext
2k
11 15 2 26
1-1--+------------
6
ftl K I~ I
Gambar 45 Perbondingon Frekuensi Kemunculon Huruf podo Kode Vigenere
Kelemahan utama kode Vigen ere adalah kuncinya yang pendek dan pengshygunaannya yang berulang-ulang Jika kriptanalis dapat menentukan panjang kunei saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa kode Kaisar
Metode Kasiski membanru menemukan panjang kunci-kode Vigenere Metode Kasiski memanfaatkan keuntungan bahasa Inggris yang tidak hanya mengandung perulangan huruf tetapi juga perulangan pasangan huruf atau tripel huruf seperti TH THE dsb Perulangan huruf ini memungkinkan unruk menghasilkan kriptogram yang berulang
Contoh
Teks-asli CRYPTO IS SHORT FOR CRYPTOGRAPHY
Kunci abcdab cd abcda bed abedabedabed Teks-kode CSASTP KV SIQUT GQU CSASTPIPAQJB
Algoritma Kriptografi Klasik
Pada eontoh tersebut CRYPTO dienkripsi menjadi kriptogram yang sarna yaitu CSATP Hal ini dikarenakan jarak antara dua buah string yang berulang di dalam teks-asli merupakan kelipatan dad panjang kunci sehingga string yang sarna tersebut akan muneul menjadi kriptogram yang sarna pula di dalam teks-kode Tujuan dad metode Kasiski adalah meneari dua atau lebih kr ptogram yang berulang untuk menentukan panjang kunci
Langkah metode Kasiski adalah sebagai berikut
1 Temukan semua kriptogram yang berulang di dalam teks-kode (pesan yang panjang biasanya mengandung kriptogram yang berulang)
2 Hitung j-ak antara kriptogram yang berulang
3 Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi menyatakan panjang kunei yang mungkin)
4 Tentukan irisan dari himpunan faktor pembagi tersebut Nilai yang muncul di dalam irisan menyatakan angka yang muneul pada semua faktor pembagi dari jarak-jarak tersebut Nilai tersebut mungkin adalah panjang kunei Hal ini karena string yang berulang dapat munetll bertindihan (coincidence)
Setelah panjang kunci diketahui maka langkah berikutnya adalah menentushykan kata kunci Kata kunei dapat ditentukan menggunakan exhaustive kef search Jika panjang kunei adalah p maka jumlah kunci yang harus dieoba
adalah 26Pbull Namun akan lebih efisien bila menggunakan teknik analisis
frekuensi
Langkah-Iangkah untuk melakukan analisis frekuensi adalah
1 Misalkan panjang kunei yang sudah berhasil dideduksi adalah n Setiap huruf kelipatan ke-n pasti dienkripsi dengan huruf kunci yang sarna Kelompokkan setiap huruf ke-n bersama-sama sehingga kriptanalis memiliki n buah pesan masing-masing dienkripsi dengan substitusi alfabet-tunggal (dalam hal ini kode Kaisar)
2 Tiap-tiap pes an dari hasil langkah 1 dapat dipeeahkan dengan teknik analisis fJ ekuensi
3 Dari hasillangkah 3 kriptanalis dapat menyusun huruf-huruf kunei atau menerka kata yang dapat membantu memeeahkan teks-kode
72 Pengantar IImu Kriptografi
Pada abad kemiddot19 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
425 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris pada Perang Boer (Perang Dunia I) pada awal Abad 20 untuk mengirim pes an antarmarkas yang ada di Inggris
Sir Charles Wheatstone Boron lyon
Gambar 46 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet) Dengan begitu kunci yang digunakan ada 25 alfabet Jumlah kemungkinan kunci pada kode Playfair 25=155112IO043330985984000000
Algoritma Kriptografi Klasik 73
Contch
Diketahui teks-asli Di dalam jiwa ya
Uotuk melakukan enkripsi kode berikut
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1 Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom maka pergerakan karakter dimulai dari huruf kedua secara vertikal menuju karakter teks-kode yang pertama Misalnya teks-as1i di huruf keduanya adalah Hi maka dari i yang di dalam matriks bergerak vertikal mencari huruf yang sebaris dengan d maka akan dijumpai karakter n (sebagai teks-kode) Untuk karakter yang kedua d mencari sisi lain seperti cara karakter Hi sehingga dijumpai karakter I Jadi teksshykode dad di adalah nl
S DT A ~ e ~E R II
vGF IK -pa UM Q
yW x zV
2 Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom atau baris yang sarna dan saling berdekatan maka digunakan prinsip enkripsi atau dekripsi ke bawah atau ke samping Cootoh untuk mengenkripsi an maka karakter di sam ping n adalah d da) karakter di sam ping a adalah un sehingga teks-kodenya menjadi dn
5 T A N D
E R C H B
K F G ] 11 M 0 p Q umiddot V W X Y Z
~L ~II ~ S T PI
e BHE BshyF G I LK
p ~QM a UI V YW IX Zl
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
60 Pengantar IImu Kriptografi
dengan kat a lain y xK
Dikatakan bahwa teks-kode diperoleh dari teks-asli dengan cara transformasi
linear Untuk melakukan dekripsi menggunakan matriks inversi K-I dekripsi
dilakukan dengan rumus x =yK-
1 Perkalian matriks memiliki sifat asosiatif yaitu (AB)C A(BC)
2 Matriks identitas m x m yang ditulis dengan Im adalah matriks yang
berisi 1 pada diagonal utama dan berisi 0 pada elemen lainnya
Contoh matriks identitas 2 x 2
12 =
1m disebut dengan matriks identitas karena AIm A untuk sembarang
matriks I x m dan 1mB B untuk sembarang matriks m x n
3 Matriks inversi dari A (jika ada) adalah kl di mana AAmiddotI kA = 1m
Dengan menggunakan sifat-sifat matriks di atas maka
y xK
yKmiddotI (xK)KI = x(KKmiddotI) xlm X
Contoh
Dapat dilihat bahwa matriks enkripsi pada contoh sebemmnya memiliki
inversi pada Z26
fll 8)-1 l( 7 18) 3 7 23 11l
-
r A f
n~ Karena
III ~J (3 1 =(117+823 l118+8I1J
l3 37+723 318+711 II 261 2861
( 182 131) i
=(~ 1
Ingat bahwa semua operasi aritmetik di atas dilakukan pada modulo 26
~ AgorHmo Kriptogroti Kosik 61
Sebuah contoh untuk memberikan gambaran tentang enkripsi dan dekripsi dalam kode Hill
Misalkan kunci yang dipakai adalah
K=C ~) Dari perhitungan di atas diperoleh bahwa
K-I =( 7 18J 23 11
Misalkan untuk mengenkripsi teks-asli JULY ada 2 elemen teks-asli untuk dienkripsi
1 (920) ~
2 (11 24) ~ L Y
Kemudian lakukan perhitungan berikut
11 81 (9 20) ( 3 7j =(99+60 72+140) (3 4) ~ DE
dan
(11 8)(11 bull 24) 3 7 (121+72 88+168)=(11 22) ~ LW
sehingga enkripsi untuk JULY adalah DELW
Untuk mendekripsi dilakukan dengan cara
7 18)(3 4) 23 11 (9(
dan i
(11 =(11 bull 24)bull 223 -)
sehingga teks-asli diperoleh kern bali
Dekripsi hanya mungkin dilakukan jika matriks K memiliki inversi Suatu
matriks K memiliki inversi jika dan hanya jika determinannya tidak no
lt)
62 Pengantar IImu Kriptografi
Namun karena 226 maka matriks K memiliki inversi modulo 26 jika dan
hanya jika gcd(det K 26)=1
Unruk matriks A berukuran 2 x 2 nilai determinannya adalah
det A alla22 - al2a21
dan matriks inversi dari A adalah
322 -312)(det ( -321 311
Contoh
K = (113 7
maka
11 detK det 3 ~j 11 7 8 3 mod 26
(
= 77 - 24 mod 26
53 mod 26
=1
kemudian 1-1 mod 26 1 sehingga matriks inversinya adalah
(11
=l3 =(3 11
Contoh
Kode Hill dengan menggunakan matriks 3 x 3 dltngan kunci matriks (42 3 6 33 312)
Diketahui teks-asli berikut KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
ltasik 61
c~ -lt ~~~ B ~ B c oc
ltlJ_i j) iii -e~ D 0shy
t lt1 t I~ o
+ + +r--+ rKEN1 l ~~ 40 + 8 + 39)
(423) (10) (1~~ Mod 26 () ( H) JH6 3 3 4 50 + 12 + 39 (3 2 1 13 30 + 4 + 25 60) 8 I
3) AIK
4 0+ 16 + 30)( I I 0 + 24 + 30 uee
( ( (i~) Mod 26 (y) (g)I 2 1 0+ 8 + 20
Alm 0 + 26 + 21 )
= 0 + 39 + 21 VIB( i ~ ~) (~3) Gn Mod 25 C~1) (r)I _ 1 7 ( 0+13+14
ARG
(4 2 I) (0) (0 + 14 + 18 ) ( 5 ) (G)(32)6 3 3 17 0 + 21 + 18 39 Mod 25 13 N GND 3 2 1 5 0 + 17 + 12 29 3 0
ABB
(4 2 I) (0) (0 + 2+ 3) (5) (21) (V)6 3 3 1 0 + 3 + 3 5 Mod 25 20 = U VUX 3 2 1 1 0 + 1 + 2 3 23 X
MME
( 4 2 I) (12) (48 + 24 + 12) (841 (6) (G6 3 3 12 72 + 35 + 12 120 Mod 26 = 15 = 0)1 GOE 3 2 1 4 36 + 12 + 8 56 4 E
( I)
MHU
(12) (48+2+60)( I I 1 = 72 + 3 + 60 GFZ 4 2 (~~J) Mod 26 (15) (~)I 2 1 20 36 + 1 + 40
ATR
0+ 38 + 51) (89( i ~ ~) (109) (0+58+51 109 ~1) (~) LFBMod26=
3 2 1 17 0+ 19 + 34 531
64 Pengantar IImu Kriptografi
AKY
0 + 20 + ) (92) (14) (0) 0 + 30 + 7272 102 Mod 26 = 24 = Y OYG 3 2 1 24 o+ 10 + 48 58 6 G
ATK
( ~ ~ ~) (100) (
( ( (Q)0+38+30) (68) (16)~ ~ ~) (109) = 0 + 57 + 30 = 87 Mod 26 9 J QJN
~ 2 1 10 o+ 19+ 20 39 13 N
Eel
16 + 4 + 24) = 24 + 6 + 24 = SCE~~~) (~) G~) Mod 26 (~) =(~) =( ~ 2 1 8 ( 12+2+16
LME
2 )6 ~ = Mod 26 CKB ( 3 2 1
NDE
I 2 52+6+12) (70) (18)6 3 78 + 9 + 12 = 99 Mod 26 21 SVY( 3 2 ~ ) (1I) ( 39 + 3 + 8 50 24
RIT
4 2 68+16+57) ~32) (2) (C)6 = 102+24+57 183 Mod26= 1 = B CST( (~) C~)3 2 51 + 8 + 38 97 19 T
AXX
(~ ~ ~) () 0 +46 +69) (11~ (11) (L)= 0 + 69 + 69 = 138 Mod 26 8 I LlR(3 2 1 23 o+ 23 + 46 69 17 R
teks-kode dari teks-asli
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
adalah
JHIUCCVIBGNDVUXFQCGFZLFBOXBQJNSCECKBSVYCBTLlR
Pada (ontoh di atas kekurangan pada akhir kalimat ditambah dengan humf x untuk mencukupi perkalian matriksnya Teks-kode dari Kode Hill juga bisa disajikan dalam bentuk angka seperti 9 7 8 20 222181 613321 2023 616465251151142461691318242101182124211911817atau menggunakan heksadesimal dan binari
65Algoritma Kriptografi Klasik
424 KOOE VIGENERE
Kode Vigenere termasuk kode abjad-majemuk (polyalphabetic substitution cipher) Dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis Blaise de Vigenere pada Abad 16 tahun 1586 Sebenamya Giovan Batista Belaso telah menggambarkannya untuk pertama kali pada tahun 1553 seperti ditulis di dalam buku La Cifra del Sig Algoritma ini bam dikenal luas 200 tahun kemudian dan dinamakan kode Vigimere Vigenere mempakan pemicu perang sipil di Amerika dan kode Vigenere digunakan oleh Tentara Konfiderasi (Confederate Army) pada Perang Sipil Amerika (American Civil War Kode ViJenere berhasil dipecahkan oleh Babbage dan Kltsiski pada pertengahan Abad 19
Gambar 44 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 teksshyasli 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
4241 ANGKA
Teknik subsitusi Vigenere dengan menggunakan angka dilakukan dengan menukarkan humf dengan angka hampir sama dengan kode geser
T HIS CRY P T
19 7 8 18 2 17 24 15 19
2 B 15 7 4 17 2 8 15
21 15 23 25 6 8 0 23 8
ElM SINIOITISIEICIUIRIE 4 12
15 7
B
4
18 13 14 19 18 4 2 20 17 4
17 2 8 15 7 4 17 2 8 15
19 19 12 9 15 22 8 25 8
Teks-asli This cryptosystem is not secure
Kunci (28 157 4 17)
66 antar IImu Kri
A I 8 I C I DIE I FIG I H J IKILIM
o I 1 I 2 I 3 I 4 I 5 I 6 I 7 I a I 9 110 111 12
N 0 P Q R STU V W x y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Kunci dengan 6 huruf kode jika ditukar dengan angka akan menjadi K 0= (2 8 157417) dan reks-aslinya This Cryptosystem is Not Secure
K05ik 67
4VU 1URUf
Ide dasarnya adalah dengan menggunakan kode Kaisar tetapi Jumlah pershygeseran hurufnya berbeda-beda untuk setiap periode beberapa huruf tertentu Untuk mengenkrlpsi pe~an dengan kode Vegenere digunakan tabula
(disebut juga bujUIsangkar Vigenere seperti gambar di bawah ini
ABC D E F G H I
A ABCDEFGHI J K L M N 0 r Q R S T U V W X Y Z
n B C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A
C C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A B
D D E F G H I J K L M N 0 p Q R S T U vlwx y Z A B Cl
E E F G H I J K L M N 0 r Q R S T U V W X Y Z A B C D
F F G H I r K L M N 0 I Q R S T U V WX Y Z A B C D E
G G H I J K L M N 0 I Q It S T U V W X Y Z A B C D E F
H H I J K L M N 0 P Q R S T U V WX Y Z A B C D E F G
I J K L MN o l Q R S T U V W XY Z A B C D E FmiddotG ~cshy - - f-shyJ K L M N 0 l Q R S T U V WX Y Z A n C D E F G H I - iK L MN o l Q R S T U V W X Y Z A B C D E F G H I J-
G ITT e-middot
L M NO l Q R S T U VW X Y Z A B C D E F J K
I
K J u K 11 L
~ N 0 Q R S T U V W X Y Z A n C D E F G H I J K L N 0 I Q It S T U VW X Y Z A B C D E F G H I J K L M
o l U V WX Y Z C D E F~ H shy
Q R S T A B I J K L MN
I Q It S T U VW X Y Z A 11 C D E F G H ri J K L M N 0
C M N
0
l
Q S It S T U VW X Y Z A B C D E F G H I J K L MN o I
R S T U V W X Y Z A n C D E F G H I J K L M N 0 r Qf-shy TS U V WX Y Z A B C D E F G H I J K L M N o r Q It
f-shy -Ishy -I-shy
It
S
T T U VW x y Z A B C D E F G H I J K L MN 0 I Q It S
U U v WX Y Z A B C D E F G H I J K L MN o rQ It s T V VW X Y Z A B C D E F G H I J K L MN o I Q R S T U
_
W WX Y Z A B C D E F G H I J K L MN o r R It S T U V x x Y Z A B C D E F G H I J K L M N 0 r Q It S T U V W Y Y Z A B C D E F G H 1 J K L M N o l Q It S T U V WX
Z A 11 C D E F G H I J K L M N 0 I Q R STU VW x Y -_ ____ ___ __ __ _ _ _ L c __Z
0 S Y S T
14 18 24 18 19
7 4 17 2 8
21 22 15 20 1
19 22 25 19
Teks-kode VPXZGIAXIVWPUBTTMJPWIZITWZT
Untuk melakukan dekripsi juga bisa menggunakan kunci yang sarna dengan modulo 26
recta
Ilaintext J K L M NOr Q R STU V W X Y Z
Tabula recta digmakan 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) bull k(i mod m))
68 69 Pengantar IImu Kriptografi
dengan
huruf ke-i dalam teks-asli
kn huruf ke-n dalam kunci
m panjang kunci dan
V(xy) 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 teksshyasli dan gans lurus ke samping dari posisi kunci maka akan ditemukan huruf un Huruf U inilah yang akan menjadi teks-kode Begitu seterusnya Coba perhatikan contoh berikut ini
Algoritma Kriptografi Kla~ik
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 teksshykode belum tentu bisa didekripsikan menjacli clua huruf yang sarna dalam teks-asli
70 71 Pengantar Ilmu Kriptografi
Pada eontoh tersebut huruf M pad a teks-kode berasal dari huruf H dan T pada teks-ash
Gambar memperlihatkan perbandinggan frekuensi kemuneulan huruf pada suaru teks-asli dan huruf pada teks-kode dengan menggunakan kode Vigenere
2 Plaintext
2k
11 15 2 26
1-1--+------------
6
ftl K I~ I
Gambar 45 Perbondingon Frekuensi Kemunculon Huruf podo Kode Vigenere
Kelemahan utama kode Vigen ere adalah kuncinya yang pendek dan pengshygunaannya yang berulang-ulang Jika kriptanalis dapat menentukan panjang kunei saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa kode Kaisar
Metode Kasiski membanru menemukan panjang kunci-kode Vigenere Metode Kasiski memanfaatkan keuntungan bahasa Inggris yang tidak hanya mengandung perulangan huruf tetapi juga perulangan pasangan huruf atau tripel huruf seperti TH THE dsb Perulangan huruf ini memungkinkan unruk menghasilkan kriptogram yang berulang
Contoh
Teks-asli CRYPTO IS SHORT FOR CRYPTOGRAPHY
Kunci abcdab cd abcda bed abedabedabed Teks-kode CSASTP KV SIQUT GQU CSASTPIPAQJB
Algoritma Kriptografi Klasik
Pada eontoh tersebut CRYPTO dienkripsi menjadi kriptogram yang sarna yaitu CSATP Hal ini dikarenakan jarak antara dua buah string yang berulang di dalam teks-asli merupakan kelipatan dad panjang kunci sehingga string yang sarna tersebut akan muneul menjadi kriptogram yang sarna pula di dalam teks-kode Tujuan dad metode Kasiski adalah meneari dua atau lebih kr ptogram yang berulang untuk menentukan panjang kunci
Langkah metode Kasiski adalah sebagai berikut
1 Temukan semua kriptogram yang berulang di dalam teks-kode (pesan yang panjang biasanya mengandung kriptogram yang berulang)
2 Hitung j-ak antara kriptogram yang berulang
3 Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi menyatakan panjang kunei yang mungkin)
4 Tentukan irisan dari himpunan faktor pembagi tersebut Nilai yang muncul di dalam irisan menyatakan angka yang muneul pada semua faktor pembagi dari jarak-jarak tersebut Nilai tersebut mungkin adalah panjang kunei Hal ini karena string yang berulang dapat munetll bertindihan (coincidence)
Setelah panjang kunci diketahui maka langkah berikutnya adalah menentushykan kata kunci Kata kunei dapat ditentukan menggunakan exhaustive kef search Jika panjang kunei adalah p maka jumlah kunci yang harus dieoba
adalah 26Pbull Namun akan lebih efisien bila menggunakan teknik analisis
frekuensi
Langkah-Iangkah untuk melakukan analisis frekuensi adalah
1 Misalkan panjang kunei yang sudah berhasil dideduksi adalah n Setiap huruf kelipatan ke-n pasti dienkripsi dengan huruf kunci yang sarna Kelompokkan setiap huruf ke-n bersama-sama sehingga kriptanalis memiliki n buah pesan masing-masing dienkripsi dengan substitusi alfabet-tunggal (dalam hal ini kode Kaisar)
2 Tiap-tiap pes an dari hasil langkah 1 dapat dipeeahkan dengan teknik analisis fJ ekuensi
3 Dari hasillangkah 3 kriptanalis dapat menyusun huruf-huruf kunei atau menerka kata yang dapat membantu memeeahkan teks-kode
72 Pengantar IImu Kriptografi
Pada abad kemiddot19 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
425 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris pada Perang Boer (Perang Dunia I) pada awal Abad 20 untuk mengirim pes an antarmarkas yang ada di Inggris
Sir Charles Wheatstone Boron lyon
Gambar 46 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet) Dengan begitu kunci yang digunakan ada 25 alfabet Jumlah kemungkinan kunci pada kode Playfair 25=155112IO043330985984000000
Algoritma Kriptografi Klasik 73
Contch
Diketahui teks-asli Di dalam jiwa ya
Uotuk melakukan enkripsi kode berikut
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1 Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom maka pergerakan karakter dimulai dari huruf kedua secara vertikal menuju karakter teks-kode yang pertama Misalnya teks-as1i di huruf keduanya adalah Hi maka dari i yang di dalam matriks bergerak vertikal mencari huruf yang sebaris dengan d maka akan dijumpai karakter n (sebagai teks-kode) Untuk karakter yang kedua d mencari sisi lain seperti cara karakter Hi sehingga dijumpai karakter I Jadi teksshykode dad di adalah nl
S DT A ~ e ~E R II
vGF IK -pa UM Q
yW x zV
2 Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom atau baris yang sarna dan saling berdekatan maka digunakan prinsip enkripsi atau dekripsi ke bawah atau ke samping Cootoh untuk mengenkripsi an maka karakter di sam ping n adalah d da) karakter di sam ping a adalah un sehingga teks-kodenya menjadi dn
5 T A N D
E R C H B
K F G ] 11 M 0 p Q umiddot V W X Y Z
~L ~II ~ S T PI
e BHE BshyF G I LK
p ~QM a UI V YW IX Zl
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
lt)
62 Pengantar IImu Kriptografi
Namun karena 226 maka matriks K memiliki inversi modulo 26 jika dan
hanya jika gcd(det K 26)=1
Unruk matriks A berukuran 2 x 2 nilai determinannya adalah
det A alla22 - al2a21
dan matriks inversi dari A adalah
322 -312)(det ( -321 311
Contoh
K = (113 7
maka
11 detK det 3 ~j 11 7 8 3 mod 26
(
= 77 - 24 mod 26
53 mod 26
=1
kemudian 1-1 mod 26 1 sehingga matriks inversinya adalah
(11
=l3 =(3 11
Contoh
Kode Hill dengan menggunakan matriks 3 x 3 dltngan kunci matriks (42 3 6 33 312)
Diketahui teks-asli berikut KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
ltasik 61
c~ -lt ~~~ B ~ B c oc
ltlJ_i j) iii -e~ D 0shy
t lt1 t I~ o
+ + +r--+ rKEN1 l ~~ 40 + 8 + 39)
(423) (10) (1~~ Mod 26 () ( H) JH6 3 3 4 50 + 12 + 39 (3 2 1 13 30 + 4 + 25 60) 8 I
3) AIK
4 0+ 16 + 30)( I I 0 + 24 + 30 uee
( ( (i~) Mod 26 (y) (g)I 2 1 0+ 8 + 20
Alm 0 + 26 + 21 )
= 0 + 39 + 21 VIB( i ~ ~) (~3) Gn Mod 25 C~1) (r)I _ 1 7 ( 0+13+14
ARG
(4 2 I) (0) (0 + 14 + 18 ) ( 5 ) (G)(32)6 3 3 17 0 + 21 + 18 39 Mod 25 13 N GND 3 2 1 5 0 + 17 + 12 29 3 0
ABB
(4 2 I) (0) (0 + 2+ 3) (5) (21) (V)6 3 3 1 0 + 3 + 3 5 Mod 25 20 = U VUX 3 2 1 1 0 + 1 + 2 3 23 X
MME
( 4 2 I) (12) (48 + 24 + 12) (841 (6) (G6 3 3 12 72 + 35 + 12 120 Mod 26 = 15 = 0)1 GOE 3 2 1 4 36 + 12 + 8 56 4 E
( I)
MHU
(12) (48+2+60)( I I 1 = 72 + 3 + 60 GFZ 4 2 (~~J) Mod 26 (15) (~)I 2 1 20 36 + 1 + 40
ATR
0+ 38 + 51) (89( i ~ ~) (109) (0+58+51 109 ~1) (~) LFBMod26=
3 2 1 17 0+ 19 + 34 531
64 Pengantar IImu Kriptografi
AKY
0 + 20 + ) (92) (14) (0) 0 + 30 + 7272 102 Mod 26 = 24 = Y OYG 3 2 1 24 o+ 10 + 48 58 6 G
ATK
( ~ ~ ~) (100) (
( ( (Q)0+38+30) (68) (16)~ ~ ~) (109) = 0 + 57 + 30 = 87 Mod 26 9 J QJN
~ 2 1 10 o+ 19+ 20 39 13 N
Eel
16 + 4 + 24) = 24 + 6 + 24 = SCE~~~) (~) G~) Mod 26 (~) =(~) =( ~ 2 1 8 ( 12+2+16
LME
2 )6 ~ = Mod 26 CKB ( 3 2 1
NDE
I 2 52+6+12) (70) (18)6 3 78 + 9 + 12 = 99 Mod 26 21 SVY( 3 2 ~ ) (1I) ( 39 + 3 + 8 50 24
RIT
4 2 68+16+57) ~32) (2) (C)6 = 102+24+57 183 Mod26= 1 = B CST( (~) C~)3 2 51 + 8 + 38 97 19 T
AXX
(~ ~ ~) () 0 +46 +69) (11~ (11) (L)= 0 + 69 + 69 = 138 Mod 26 8 I LlR(3 2 1 23 o+ 23 + 46 69 17 R
teks-kode dari teks-asli
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
adalah
JHIUCCVIBGNDVUXFQCGFZLFBOXBQJNSCECKBSVYCBTLlR
Pada (ontoh di atas kekurangan pada akhir kalimat ditambah dengan humf x untuk mencukupi perkalian matriksnya Teks-kode dari Kode Hill juga bisa disajikan dalam bentuk angka seperti 9 7 8 20 222181 613321 2023 616465251151142461691318242101182124211911817atau menggunakan heksadesimal dan binari
65Algoritma Kriptografi Klasik
424 KOOE VIGENERE
Kode Vigenere termasuk kode abjad-majemuk (polyalphabetic substitution cipher) Dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis Blaise de Vigenere pada Abad 16 tahun 1586 Sebenamya Giovan Batista Belaso telah menggambarkannya untuk pertama kali pada tahun 1553 seperti ditulis di dalam buku La Cifra del Sig Algoritma ini bam dikenal luas 200 tahun kemudian dan dinamakan kode Vigimere Vigenere mempakan pemicu perang sipil di Amerika dan kode Vigenere digunakan oleh Tentara Konfiderasi (Confederate Army) pada Perang Sipil Amerika (American Civil War Kode ViJenere berhasil dipecahkan oleh Babbage dan Kltsiski pada pertengahan Abad 19
Gambar 44 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 teksshyasli 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
4241 ANGKA
Teknik subsitusi Vigenere dengan menggunakan angka dilakukan dengan menukarkan humf dengan angka hampir sama dengan kode geser
T HIS CRY P T
19 7 8 18 2 17 24 15 19
2 B 15 7 4 17 2 8 15
21 15 23 25 6 8 0 23 8
ElM SINIOITISIEICIUIRIE 4 12
15 7
B
4
18 13 14 19 18 4 2 20 17 4
17 2 8 15 7 4 17 2 8 15
19 19 12 9 15 22 8 25 8
Teks-asli This cryptosystem is not secure
Kunci (28 157 4 17)
66 antar IImu Kri
A I 8 I C I DIE I FIG I H J IKILIM
o I 1 I 2 I 3 I 4 I 5 I 6 I 7 I a I 9 110 111 12
N 0 P Q R STU V W x y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Kunci dengan 6 huruf kode jika ditukar dengan angka akan menjadi K 0= (2 8 157417) dan reks-aslinya This Cryptosystem is Not Secure
K05ik 67
4VU 1URUf
Ide dasarnya adalah dengan menggunakan kode Kaisar tetapi Jumlah pershygeseran hurufnya berbeda-beda untuk setiap periode beberapa huruf tertentu Untuk mengenkrlpsi pe~an dengan kode Vegenere digunakan tabula
(disebut juga bujUIsangkar Vigenere seperti gambar di bawah ini
ABC D E F G H I
A ABCDEFGHI J K L M N 0 r Q R S T U V W X Y Z
n B C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A
C C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A B
D D E F G H I J K L M N 0 p Q R S T U vlwx y Z A B Cl
E E F G H I J K L M N 0 r Q R S T U V W X Y Z A B C D
F F G H I r K L M N 0 I Q R S T U V WX Y Z A B C D E
G G H I J K L M N 0 I Q It S T U V W X Y Z A B C D E F
H H I J K L M N 0 P Q R S T U V WX Y Z A B C D E F G
I J K L MN o l Q R S T U V W XY Z A B C D E FmiddotG ~cshy - - f-shyJ K L M N 0 l Q R S T U V WX Y Z A n C D E F G H I - iK L MN o l Q R S T U V W X Y Z A B C D E F G H I J-
G ITT e-middot
L M NO l Q R S T U VW X Y Z A B C D E F J K
I
K J u K 11 L
~ N 0 Q R S T U V W X Y Z A n C D E F G H I J K L N 0 I Q It S T U VW X Y Z A B C D E F G H I J K L M
o l U V WX Y Z C D E F~ H shy
Q R S T A B I J K L MN
I Q It S T U VW X Y Z A 11 C D E F G H ri J K L M N 0
C M N
0
l
Q S It S T U VW X Y Z A B C D E F G H I J K L MN o I
R S T U V W X Y Z A n C D E F G H I J K L M N 0 r Qf-shy TS U V WX Y Z A B C D E F G H I J K L M N o r Q It
f-shy -Ishy -I-shy
It
S
T T U VW x y Z A B C D E F G H I J K L MN 0 I Q It S
U U v WX Y Z A B C D E F G H I J K L MN o rQ It s T V VW X Y Z A B C D E F G H I J K L MN o I Q R S T U
_
W WX Y Z A B C D E F G H I J K L MN o r R It S T U V x x Y Z A B C D E F G H I J K L M N 0 r Q It S T U V W Y Y Z A B C D E F G H 1 J K L M N o l Q It S T U V WX
Z A 11 C D E F G H I J K L M N 0 I Q R STU VW x Y -_ ____ ___ __ __ _ _ _ L c __Z
0 S Y S T
14 18 24 18 19
7 4 17 2 8
21 22 15 20 1
19 22 25 19
Teks-kode VPXZGIAXIVWPUBTTMJPWIZITWZT
Untuk melakukan dekripsi juga bisa menggunakan kunci yang sarna dengan modulo 26
recta
Ilaintext J K L M NOr Q R STU V W X Y Z
Tabula recta digmakan 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) bull k(i mod m))
68 69 Pengantar IImu Kriptografi
dengan
huruf ke-i dalam teks-asli
kn huruf ke-n dalam kunci
m panjang kunci dan
V(xy) 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 teksshyasli dan gans lurus ke samping dari posisi kunci maka akan ditemukan huruf un Huruf U inilah yang akan menjadi teks-kode Begitu seterusnya Coba perhatikan contoh berikut ini
Algoritma Kriptografi Kla~ik
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 teksshykode belum tentu bisa didekripsikan menjacli clua huruf yang sarna dalam teks-asli
70 71 Pengantar Ilmu Kriptografi
Pada eontoh tersebut huruf M pad a teks-kode berasal dari huruf H dan T pada teks-ash
Gambar memperlihatkan perbandinggan frekuensi kemuneulan huruf pada suaru teks-asli dan huruf pada teks-kode dengan menggunakan kode Vigenere
2 Plaintext
2k
11 15 2 26
1-1--+------------
6
ftl K I~ I
Gambar 45 Perbondingon Frekuensi Kemunculon Huruf podo Kode Vigenere
Kelemahan utama kode Vigen ere adalah kuncinya yang pendek dan pengshygunaannya yang berulang-ulang Jika kriptanalis dapat menentukan panjang kunei saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa kode Kaisar
Metode Kasiski membanru menemukan panjang kunci-kode Vigenere Metode Kasiski memanfaatkan keuntungan bahasa Inggris yang tidak hanya mengandung perulangan huruf tetapi juga perulangan pasangan huruf atau tripel huruf seperti TH THE dsb Perulangan huruf ini memungkinkan unruk menghasilkan kriptogram yang berulang
Contoh
Teks-asli CRYPTO IS SHORT FOR CRYPTOGRAPHY
Kunci abcdab cd abcda bed abedabedabed Teks-kode CSASTP KV SIQUT GQU CSASTPIPAQJB
Algoritma Kriptografi Klasik
Pada eontoh tersebut CRYPTO dienkripsi menjadi kriptogram yang sarna yaitu CSATP Hal ini dikarenakan jarak antara dua buah string yang berulang di dalam teks-asli merupakan kelipatan dad panjang kunci sehingga string yang sarna tersebut akan muneul menjadi kriptogram yang sarna pula di dalam teks-kode Tujuan dad metode Kasiski adalah meneari dua atau lebih kr ptogram yang berulang untuk menentukan panjang kunci
Langkah metode Kasiski adalah sebagai berikut
1 Temukan semua kriptogram yang berulang di dalam teks-kode (pesan yang panjang biasanya mengandung kriptogram yang berulang)
2 Hitung j-ak antara kriptogram yang berulang
3 Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi menyatakan panjang kunei yang mungkin)
4 Tentukan irisan dari himpunan faktor pembagi tersebut Nilai yang muncul di dalam irisan menyatakan angka yang muneul pada semua faktor pembagi dari jarak-jarak tersebut Nilai tersebut mungkin adalah panjang kunei Hal ini karena string yang berulang dapat munetll bertindihan (coincidence)
Setelah panjang kunci diketahui maka langkah berikutnya adalah menentushykan kata kunci Kata kunei dapat ditentukan menggunakan exhaustive kef search Jika panjang kunei adalah p maka jumlah kunci yang harus dieoba
adalah 26Pbull Namun akan lebih efisien bila menggunakan teknik analisis
frekuensi
Langkah-Iangkah untuk melakukan analisis frekuensi adalah
1 Misalkan panjang kunei yang sudah berhasil dideduksi adalah n Setiap huruf kelipatan ke-n pasti dienkripsi dengan huruf kunci yang sarna Kelompokkan setiap huruf ke-n bersama-sama sehingga kriptanalis memiliki n buah pesan masing-masing dienkripsi dengan substitusi alfabet-tunggal (dalam hal ini kode Kaisar)
2 Tiap-tiap pes an dari hasil langkah 1 dapat dipeeahkan dengan teknik analisis fJ ekuensi
3 Dari hasillangkah 3 kriptanalis dapat menyusun huruf-huruf kunei atau menerka kata yang dapat membantu memeeahkan teks-kode
72 Pengantar IImu Kriptografi
Pada abad kemiddot19 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
425 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris pada Perang Boer (Perang Dunia I) pada awal Abad 20 untuk mengirim pes an antarmarkas yang ada di Inggris
Sir Charles Wheatstone Boron lyon
Gambar 46 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet) Dengan begitu kunci yang digunakan ada 25 alfabet Jumlah kemungkinan kunci pada kode Playfair 25=155112IO043330985984000000
Algoritma Kriptografi Klasik 73
Contch
Diketahui teks-asli Di dalam jiwa ya
Uotuk melakukan enkripsi kode berikut
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1 Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom maka pergerakan karakter dimulai dari huruf kedua secara vertikal menuju karakter teks-kode yang pertama Misalnya teks-as1i di huruf keduanya adalah Hi maka dari i yang di dalam matriks bergerak vertikal mencari huruf yang sebaris dengan d maka akan dijumpai karakter n (sebagai teks-kode) Untuk karakter yang kedua d mencari sisi lain seperti cara karakter Hi sehingga dijumpai karakter I Jadi teksshykode dad di adalah nl
S DT A ~ e ~E R II
vGF IK -pa UM Q
yW x zV
2 Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom atau baris yang sarna dan saling berdekatan maka digunakan prinsip enkripsi atau dekripsi ke bawah atau ke samping Cootoh untuk mengenkripsi an maka karakter di sam ping n adalah d da) karakter di sam ping a adalah un sehingga teks-kodenya menjadi dn
5 T A N D
E R C H B
K F G ] 11 M 0 p Q umiddot V W X Y Z
~L ~II ~ S T PI
e BHE BshyF G I LK
p ~QM a UI V YW IX Zl
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
64 Pengantar IImu Kriptografi
AKY
0 + 20 + ) (92) (14) (0) 0 + 30 + 7272 102 Mod 26 = 24 = Y OYG 3 2 1 24 o+ 10 + 48 58 6 G
ATK
( ~ ~ ~) (100) (
( ( (Q)0+38+30) (68) (16)~ ~ ~) (109) = 0 + 57 + 30 = 87 Mod 26 9 J QJN
~ 2 1 10 o+ 19+ 20 39 13 N
Eel
16 + 4 + 24) = 24 + 6 + 24 = SCE~~~) (~) G~) Mod 26 (~) =(~) =( ~ 2 1 8 ( 12+2+16
LME
2 )6 ~ = Mod 26 CKB ( 3 2 1
NDE
I 2 52+6+12) (70) (18)6 3 78 + 9 + 12 = 99 Mod 26 21 SVY( 3 2 ~ ) (1I) ( 39 + 3 + 8 50 24
RIT
4 2 68+16+57) ~32) (2) (C)6 = 102+24+57 183 Mod26= 1 = B CST( (~) C~)3 2 51 + 8 + 38 97 19 T
AXX
(~ ~ ~) () 0 +46 +69) (11~ (11) (L)= 0 + 69 + 69 = 138 Mod 26 8 I LlR(3 2 1 23 o+ 23 + 46 69 17 R
teks-kode dari teks-asli
KENAlKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA
adalah
JHIUCCVIBGNDVUXFQCGFZLFBOXBQJNSCECKBSVYCBTLlR
Pada (ontoh di atas kekurangan pada akhir kalimat ditambah dengan humf x untuk mencukupi perkalian matriksnya Teks-kode dari Kode Hill juga bisa disajikan dalam bentuk angka seperti 9 7 8 20 222181 613321 2023 616465251151142461691318242101182124211911817atau menggunakan heksadesimal dan binari
65Algoritma Kriptografi Klasik
424 KOOE VIGENERE
Kode Vigenere termasuk kode abjad-majemuk (polyalphabetic substitution cipher) Dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis Blaise de Vigenere pada Abad 16 tahun 1586 Sebenamya Giovan Batista Belaso telah menggambarkannya untuk pertama kali pada tahun 1553 seperti ditulis di dalam buku La Cifra del Sig Algoritma ini bam dikenal luas 200 tahun kemudian dan dinamakan kode Vigimere Vigenere mempakan pemicu perang sipil di Amerika dan kode Vigenere digunakan oleh Tentara Konfiderasi (Confederate Army) pada Perang Sipil Amerika (American Civil War Kode ViJenere berhasil dipecahkan oleh Babbage dan Kltsiski pada pertengahan Abad 19
Gambar 44 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 teksshyasli 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
4241 ANGKA
Teknik subsitusi Vigenere dengan menggunakan angka dilakukan dengan menukarkan humf dengan angka hampir sama dengan kode geser
T HIS CRY P T
19 7 8 18 2 17 24 15 19
2 B 15 7 4 17 2 8 15
21 15 23 25 6 8 0 23 8
ElM SINIOITISIEICIUIRIE 4 12
15 7
B
4
18 13 14 19 18 4 2 20 17 4
17 2 8 15 7 4 17 2 8 15
19 19 12 9 15 22 8 25 8
Teks-asli This cryptosystem is not secure
Kunci (28 157 4 17)
66 antar IImu Kri
A I 8 I C I DIE I FIG I H J IKILIM
o I 1 I 2 I 3 I 4 I 5 I 6 I 7 I a I 9 110 111 12
N 0 P Q R STU V W x y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Kunci dengan 6 huruf kode jika ditukar dengan angka akan menjadi K 0= (2 8 157417) dan reks-aslinya This Cryptosystem is Not Secure
K05ik 67
4VU 1URUf
Ide dasarnya adalah dengan menggunakan kode Kaisar tetapi Jumlah pershygeseran hurufnya berbeda-beda untuk setiap periode beberapa huruf tertentu Untuk mengenkrlpsi pe~an dengan kode Vegenere digunakan tabula
(disebut juga bujUIsangkar Vigenere seperti gambar di bawah ini
ABC D E F G H I
A ABCDEFGHI J K L M N 0 r Q R S T U V W X Y Z
n B C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A
C C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A B
D D E F G H I J K L M N 0 p Q R S T U vlwx y Z A B Cl
E E F G H I J K L M N 0 r Q R S T U V W X Y Z A B C D
F F G H I r K L M N 0 I Q R S T U V WX Y Z A B C D E
G G H I J K L M N 0 I Q It S T U V W X Y Z A B C D E F
H H I J K L M N 0 P Q R S T U V WX Y Z A B C D E F G
I J K L MN o l Q R S T U V W XY Z A B C D E FmiddotG ~cshy - - f-shyJ K L M N 0 l Q R S T U V WX Y Z A n C D E F G H I - iK L MN o l Q R S T U V W X Y Z A B C D E F G H I J-
G ITT e-middot
L M NO l Q R S T U VW X Y Z A B C D E F J K
I
K J u K 11 L
~ N 0 Q R S T U V W X Y Z A n C D E F G H I J K L N 0 I Q It S T U VW X Y Z A B C D E F G H I J K L M
o l U V WX Y Z C D E F~ H shy
Q R S T A B I J K L MN
I Q It S T U VW X Y Z A 11 C D E F G H ri J K L M N 0
C M N
0
l
Q S It S T U VW X Y Z A B C D E F G H I J K L MN o I
R S T U V W X Y Z A n C D E F G H I J K L M N 0 r Qf-shy TS U V WX Y Z A B C D E F G H I J K L M N o r Q It
f-shy -Ishy -I-shy
It
S
T T U VW x y Z A B C D E F G H I J K L MN 0 I Q It S
U U v WX Y Z A B C D E F G H I J K L MN o rQ It s T V VW X Y Z A B C D E F G H I J K L MN o I Q R S T U
_
W WX Y Z A B C D E F G H I J K L MN o r R It S T U V x x Y Z A B C D E F G H I J K L M N 0 r Q It S T U V W Y Y Z A B C D E F G H 1 J K L M N o l Q It S T U V WX
Z A 11 C D E F G H I J K L M N 0 I Q R STU VW x Y -_ ____ ___ __ __ _ _ _ L c __Z
0 S Y S T
14 18 24 18 19
7 4 17 2 8
21 22 15 20 1
19 22 25 19
Teks-kode VPXZGIAXIVWPUBTTMJPWIZITWZT
Untuk melakukan dekripsi juga bisa menggunakan kunci yang sarna dengan modulo 26
recta
Ilaintext J K L M NOr Q R STU V W X Y Z
Tabula recta digmakan 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) bull k(i mod m))
68 69 Pengantar IImu Kriptografi
dengan
huruf ke-i dalam teks-asli
kn huruf ke-n dalam kunci
m panjang kunci dan
V(xy) 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 teksshyasli dan gans lurus ke samping dari posisi kunci maka akan ditemukan huruf un Huruf U inilah yang akan menjadi teks-kode Begitu seterusnya Coba perhatikan contoh berikut ini
Algoritma Kriptografi Kla~ik
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 teksshykode belum tentu bisa didekripsikan menjacli clua huruf yang sarna dalam teks-asli
70 71 Pengantar Ilmu Kriptografi
Pada eontoh tersebut huruf M pad a teks-kode berasal dari huruf H dan T pada teks-ash
Gambar memperlihatkan perbandinggan frekuensi kemuneulan huruf pada suaru teks-asli dan huruf pada teks-kode dengan menggunakan kode Vigenere
2 Plaintext
2k
11 15 2 26
1-1--+------------
6
ftl K I~ I
Gambar 45 Perbondingon Frekuensi Kemunculon Huruf podo Kode Vigenere
Kelemahan utama kode Vigen ere adalah kuncinya yang pendek dan pengshygunaannya yang berulang-ulang Jika kriptanalis dapat menentukan panjang kunei saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa kode Kaisar
Metode Kasiski membanru menemukan panjang kunci-kode Vigenere Metode Kasiski memanfaatkan keuntungan bahasa Inggris yang tidak hanya mengandung perulangan huruf tetapi juga perulangan pasangan huruf atau tripel huruf seperti TH THE dsb Perulangan huruf ini memungkinkan unruk menghasilkan kriptogram yang berulang
Contoh
Teks-asli CRYPTO IS SHORT FOR CRYPTOGRAPHY
Kunci abcdab cd abcda bed abedabedabed Teks-kode CSASTP KV SIQUT GQU CSASTPIPAQJB
Algoritma Kriptografi Klasik
Pada eontoh tersebut CRYPTO dienkripsi menjadi kriptogram yang sarna yaitu CSATP Hal ini dikarenakan jarak antara dua buah string yang berulang di dalam teks-asli merupakan kelipatan dad panjang kunci sehingga string yang sarna tersebut akan muneul menjadi kriptogram yang sarna pula di dalam teks-kode Tujuan dad metode Kasiski adalah meneari dua atau lebih kr ptogram yang berulang untuk menentukan panjang kunci
Langkah metode Kasiski adalah sebagai berikut
1 Temukan semua kriptogram yang berulang di dalam teks-kode (pesan yang panjang biasanya mengandung kriptogram yang berulang)
2 Hitung j-ak antara kriptogram yang berulang
3 Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi menyatakan panjang kunei yang mungkin)
4 Tentukan irisan dari himpunan faktor pembagi tersebut Nilai yang muncul di dalam irisan menyatakan angka yang muneul pada semua faktor pembagi dari jarak-jarak tersebut Nilai tersebut mungkin adalah panjang kunei Hal ini karena string yang berulang dapat munetll bertindihan (coincidence)
Setelah panjang kunci diketahui maka langkah berikutnya adalah menentushykan kata kunci Kata kunei dapat ditentukan menggunakan exhaustive kef search Jika panjang kunei adalah p maka jumlah kunci yang harus dieoba
adalah 26Pbull Namun akan lebih efisien bila menggunakan teknik analisis
frekuensi
Langkah-Iangkah untuk melakukan analisis frekuensi adalah
1 Misalkan panjang kunei yang sudah berhasil dideduksi adalah n Setiap huruf kelipatan ke-n pasti dienkripsi dengan huruf kunci yang sarna Kelompokkan setiap huruf ke-n bersama-sama sehingga kriptanalis memiliki n buah pesan masing-masing dienkripsi dengan substitusi alfabet-tunggal (dalam hal ini kode Kaisar)
2 Tiap-tiap pes an dari hasil langkah 1 dapat dipeeahkan dengan teknik analisis fJ ekuensi
3 Dari hasillangkah 3 kriptanalis dapat menyusun huruf-huruf kunei atau menerka kata yang dapat membantu memeeahkan teks-kode
72 Pengantar IImu Kriptografi
Pada abad kemiddot19 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
425 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris pada Perang Boer (Perang Dunia I) pada awal Abad 20 untuk mengirim pes an antarmarkas yang ada di Inggris
Sir Charles Wheatstone Boron lyon
Gambar 46 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet) Dengan begitu kunci yang digunakan ada 25 alfabet Jumlah kemungkinan kunci pada kode Playfair 25=155112IO043330985984000000
Algoritma Kriptografi Klasik 73
Contch
Diketahui teks-asli Di dalam jiwa ya
Uotuk melakukan enkripsi kode berikut
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1 Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom maka pergerakan karakter dimulai dari huruf kedua secara vertikal menuju karakter teks-kode yang pertama Misalnya teks-as1i di huruf keduanya adalah Hi maka dari i yang di dalam matriks bergerak vertikal mencari huruf yang sebaris dengan d maka akan dijumpai karakter n (sebagai teks-kode) Untuk karakter yang kedua d mencari sisi lain seperti cara karakter Hi sehingga dijumpai karakter I Jadi teksshykode dad di adalah nl
S DT A ~ e ~E R II
vGF IK -pa UM Q
yW x zV
2 Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom atau baris yang sarna dan saling berdekatan maka digunakan prinsip enkripsi atau dekripsi ke bawah atau ke samping Cootoh untuk mengenkripsi an maka karakter di sam ping n adalah d da) karakter di sam ping a adalah un sehingga teks-kodenya menjadi dn
5 T A N D
E R C H B
K F G ] 11 M 0 p Q umiddot V W X Y Z
~L ~II ~ S T PI
e BHE BshyF G I LK
p ~QM a UI V YW IX Zl
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
T HIS CRY P T
19 7 8 18 2 17 24 15 19
2 B 15 7 4 17 2 8 15
21 15 23 25 6 8 0 23 8
ElM SINIOITISIEICIUIRIE 4 12
15 7
B
4
18 13 14 19 18 4 2 20 17 4
17 2 8 15 7 4 17 2 8 15
19 19 12 9 15 22 8 25 8
Teks-asli This cryptosystem is not secure
Kunci (28 157 4 17)
66 antar IImu Kri
A I 8 I C I DIE I FIG I H J IKILIM
o I 1 I 2 I 3 I 4 I 5 I 6 I 7 I a I 9 110 111 12
N 0 P Q R STU V W x y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Kunci dengan 6 huruf kode jika ditukar dengan angka akan menjadi K 0= (2 8 157417) dan reks-aslinya This Cryptosystem is Not Secure
K05ik 67
4VU 1URUf
Ide dasarnya adalah dengan menggunakan kode Kaisar tetapi Jumlah pershygeseran hurufnya berbeda-beda untuk setiap periode beberapa huruf tertentu Untuk mengenkrlpsi pe~an dengan kode Vegenere digunakan tabula
(disebut juga bujUIsangkar Vigenere seperti gambar di bawah ini
ABC D E F G H I
A ABCDEFGHI J K L M N 0 r Q R S T U V W X Y Z
n B C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A
C C D E F G H I J K L M N 0 p Q R S T U V W X Y Z A B
D D E F G H I J K L M N 0 p Q R S T U vlwx y Z A B Cl
E E F G H I J K L M N 0 r Q R S T U V W X Y Z A B C D
F F G H I r K L M N 0 I Q R S T U V WX Y Z A B C D E
G G H I J K L M N 0 I Q It S T U V W X Y Z A B C D E F
H H I J K L M N 0 P Q R S T U V WX Y Z A B C D E F G
I J K L MN o l Q R S T U V W XY Z A B C D E FmiddotG ~cshy - - f-shyJ K L M N 0 l Q R S T U V WX Y Z A n C D E F G H I - iK L MN o l Q R S T U V W X Y Z A B C D E F G H I J-
G ITT e-middot
L M NO l Q R S T U VW X Y Z A B C D E F J K
I
K J u K 11 L
~ N 0 Q R S T U V W X Y Z A n C D E F G H I J K L N 0 I Q It S T U VW X Y Z A B C D E F G H I J K L M
o l U V WX Y Z C D E F~ H shy
Q R S T A B I J K L MN
I Q It S T U VW X Y Z A 11 C D E F G H ri J K L M N 0
C M N
0
l
Q S It S T U VW X Y Z A B C D E F G H I J K L MN o I
R S T U V W X Y Z A n C D E F G H I J K L M N 0 r Qf-shy TS U V WX Y Z A B C D E F G H I J K L M N o r Q It
f-shy -Ishy -I-shy
It
S
T T U VW x y Z A B C D E F G H I J K L MN 0 I Q It S
U U v WX Y Z A B C D E F G H I J K L MN o rQ It s T V VW X Y Z A B C D E F G H I J K L MN o I Q R S T U
_
W WX Y Z A B C D E F G H I J K L MN o r R It S T U V x x Y Z A B C D E F G H I J K L M N 0 r Q It S T U V W Y Y Z A B C D E F G H 1 J K L M N o l Q It S T U V WX
Z A 11 C D E F G H I J K L M N 0 I Q R STU VW x Y -_ ____ ___ __ __ _ _ _ L c __Z
0 S Y S T
14 18 24 18 19
7 4 17 2 8
21 22 15 20 1
19 22 25 19
Teks-kode VPXZGIAXIVWPUBTTMJPWIZITWZT
Untuk melakukan dekripsi juga bisa menggunakan kunci yang sarna dengan modulo 26
recta
Ilaintext J K L M NOr Q R STU V W X Y Z
Tabula recta digmakan 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) bull k(i mod m))
68 69 Pengantar IImu Kriptografi
dengan
huruf ke-i dalam teks-asli
kn huruf ke-n dalam kunci
m panjang kunci dan
V(xy) 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 teksshyasli dan gans lurus ke samping dari posisi kunci maka akan ditemukan huruf un Huruf U inilah yang akan menjadi teks-kode Begitu seterusnya Coba perhatikan contoh berikut ini
Algoritma Kriptografi Kla~ik
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 teksshykode belum tentu bisa didekripsikan menjacli clua huruf yang sarna dalam teks-asli
70 71 Pengantar Ilmu Kriptografi
Pada eontoh tersebut huruf M pad a teks-kode berasal dari huruf H dan T pada teks-ash
Gambar memperlihatkan perbandinggan frekuensi kemuneulan huruf pada suaru teks-asli dan huruf pada teks-kode dengan menggunakan kode Vigenere
2 Plaintext
2k
11 15 2 26
1-1--+------------
6
ftl K I~ I
Gambar 45 Perbondingon Frekuensi Kemunculon Huruf podo Kode Vigenere
Kelemahan utama kode Vigen ere adalah kuncinya yang pendek dan pengshygunaannya yang berulang-ulang Jika kriptanalis dapat menentukan panjang kunei saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa kode Kaisar
Metode Kasiski membanru menemukan panjang kunci-kode Vigenere Metode Kasiski memanfaatkan keuntungan bahasa Inggris yang tidak hanya mengandung perulangan huruf tetapi juga perulangan pasangan huruf atau tripel huruf seperti TH THE dsb Perulangan huruf ini memungkinkan unruk menghasilkan kriptogram yang berulang
Contoh
Teks-asli CRYPTO IS SHORT FOR CRYPTOGRAPHY
Kunci abcdab cd abcda bed abedabedabed Teks-kode CSASTP KV SIQUT GQU CSASTPIPAQJB
Algoritma Kriptografi Klasik
Pada eontoh tersebut CRYPTO dienkripsi menjadi kriptogram yang sarna yaitu CSATP Hal ini dikarenakan jarak antara dua buah string yang berulang di dalam teks-asli merupakan kelipatan dad panjang kunci sehingga string yang sarna tersebut akan muneul menjadi kriptogram yang sarna pula di dalam teks-kode Tujuan dad metode Kasiski adalah meneari dua atau lebih kr ptogram yang berulang untuk menentukan panjang kunci
Langkah metode Kasiski adalah sebagai berikut
1 Temukan semua kriptogram yang berulang di dalam teks-kode (pesan yang panjang biasanya mengandung kriptogram yang berulang)
2 Hitung j-ak antara kriptogram yang berulang
3 Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi menyatakan panjang kunei yang mungkin)
4 Tentukan irisan dari himpunan faktor pembagi tersebut Nilai yang muncul di dalam irisan menyatakan angka yang muneul pada semua faktor pembagi dari jarak-jarak tersebut Nilai tersebut mungkin adalah panjang kunei Hal ini karena string yang berulang dapat munetll bertindihan (coincidence)
Setelah panjang kunci diketahui maka langkah berikutnya adalah menentushykan kata kunci Kata kunei dapat ditentukan menggunakan exhaustive kef search Jika panjang kunei adalah p maka jumlah kunci yang harus dieoba
adalah 26Pbull Namun akan lebih efisien bila menggunakan teknik analisis
frekuensi
Langkah-Iangkah untuk melakukan analisis frekuensi adalah
1 Misalkan panjang kunei yang sudah berhasil dideduksi adalah n Setiap huruf kelipatan ke-n pasti dienkripsi dengan huruf kunci yang sarna Kelompokkan setiap huruf ke-n bersama-sama sehingga kriptanalis memiliki n buah pesan masing-masing dienkripsi dengan substitusi alfabet-tunggal (dalam hal ini kode Kaisar)
2 Tiap-tiap pes an dari hasil langkah 1 dapat dipeeahkan dengan teknik analisis fJ ekuensi
3 Dari hasillangkah 3 kriptanalis dapat menyusun huruf-huruf kunei atau menerka kata yang dapat membantu memeeahkan teks-kode
72 Pengantar IImu Kriptografi
Pada abad kemiddot19 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
425 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris pada Perang Boer (Perang Dunia I) pada awal Abad 20 untuk mengirim pes an antarmarkas yang ada di Inggris
Sir Charles Wheatstone Boron lyon
Gambar 46 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet) Dengan begitu kunci yang digunakan ada 25 alfabet Jumlah kemungkinan kunci pada kode Playfair 25=155112IO043330985984000000
Algoritma Kriptografi Klasik 73
Contch
Diketahui teks-asli Di dalam jiwa ya
Uotuk melakukan enkripsi kode berikut
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1 Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom maka pergerakan karakter dimulai dari huruf kedua secara vertikal menuju karakter teks-kode yang pertama Misalnya teks-as1i di huruf keduanya adalah Hi maka dari i yang di dalam matriks bergerak vertikal mencari huruf yang sebaris dengan d maka akan dijumpai karakter n (sebagai teks-kode) Untuk karakter yang kedua d mencari sisi lain seperti cara karakter Hi sehingga dijumpai karakter I Jadi teksshykode dad di adalah nl
S DT A ~ e ~E R II
vGF IK -pa UM Q
yW x zV
2 Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom atau baris yang sarna dan saling berdekatan maka digunakan prinsip enkripsi atau dekripsi ke bawah atau ke samping Cootoh untuk mengenkripsi an maka karakter di sam ping n adalah d da) karakter di sam ping a adalah un sehingga teks-kodenya menjadi dn
5 T A N D
E R C H B
K F G ] 11 M 0 p Q umiddot V W X Y Z
~L ~II ~ S T PI
e BHE BshyF G I LK
p ~QM a UI V YW IX Zl
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
68 69 Pengantar IImu Kriptografi
dengan
huruf ke-i dalam teks-asli
kn huruf ke-n dalam kunci
m panjang kunci dan
V(xy) 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 teksshyasli dan gans lurus ke samping dari posisi kunci maka akan ditemukan huruf un Huruf U inilah yang akan menjadi teks-kode Begitu seterusnya Coba perhatikan contoh berikut ini
Algoritma Kriptografi Kla~ik
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 teksshykode belum tentu bisa didekripsikan menjacli clua huruf yang sarna dalam teks-asli
70 71 Pengantar Ilmu Kriptografi
Pada eontoh tersebut huruf M pad a teks-kode berasal dari huruf H dan T pada teks-ash
Gambar memperlihatkan perbandinggan frekuensi kemuneulan huruf pada suaru teks-asli dan huruf pada teks-kode dengan menggunakan kode Vigenere
2 Plaintext
2k
11 15 2 26
1-1--+------------
6
ftl K I~ I
Gambar 45 Perbondingon Frekuensi Kemunculon Huruf podo Kode Vigenere
Kelemahan utama kode Vigen ere adalah kuncinya yang pendek dan pengshygunaannya yang berulang-ulang Jika kriptanalis dapat menentukan panjang kunei saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa kode Kaisar
Metode Kasiski membanru menemukan panjang kunci-kode Vigenere Metode Kasiski memanfaatkan keuntungan bahasa Inggris yang tidak hanya mengandung perulangan huruf tetapi juga perulangan pasangan huruf atau tripel huruf seperti TH THE dsb Perulangan huruf ini memungkinkan unruk menghasilkan kriptogram yang berulang
Contoh
Teks-asli CRYPTO IS SHORT FOR CRYPTOGRAPHY
Kunci abcdab cd abcda bed abedabedabed Teks-kode CSASTP KV SIQUT GQU CSASTPIPAQJB
Algoritma Kriptografi Klasik
Pada eontoh tersebut CRYPTO dienkripsi menjadi kriptogram yang sarna yaitu CSATP Hal ini dikarenakan jarak antara dua buah string yang berulang di dalam teks-asli merupakan kelipatan dad panjang kunci sehingga string yang sarna tersebut akan muneul menjadi kriptogram yang sarna pula di dalam teks-kode Tujuan dad metode Kasiski adalah meneari dua atau lebih kr ptogram yang berulang untuk menentukan panjang kunci
Langkah metode Kasiski adalah sebagai berikut
1 Temukan semua kriptogram yang berulang di dalam teks-kode (pesan yang panjang biasanya mengandung kriptogram yang berulang)
2 Hitung j-ak antara kriptogram yang berulang
3 Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi menyatakan panjang kunei yang mungkin)
4 Tentukan irisan dari himpunan faktor pembagi tersebut Nilai yang muncul di dalam irisan menyatakan angka yang muneul pada semua faktor pembagi dari jarak-jarak tersebut Nilai tersebut mungkin adalah panjang kunei Hal ini karena string yang berulang dapat munetll bertindihan (coincidence)
Setelah panjang kunci diketahui maka langkah berikutnya adalah menentushykan kata kunci Kata kunei dapat ditentukan menggunakan exhaustive kef search Jika panjang kunei adalah p maka jumlah kunci yang harus dieoba
adalah 26Pbull Namun akan lebih efisien bila menggunakan teknik analisis
frekuensi
Langkah-Iangkah untuk melakukan analisis frekuensi adalah
1 Misalkan panjang kunei yang sudah berhasil dideduksi adalah n Setiap huruf kelipatan ke-n pasti dienkripsi dengan huruf kunci yang sarna Kelompokkan setiap huruf ke-n bersama-sama sehingga kriptanalis memiliki n buah pesan masing-masing dienkripsi dengan substitusi alfabet-tunggal (dalam hal ini kode Kaisar)
2 Tiap-tiap pes an dari hasil langkah 1 dapat dipeeahkan dengan teknik analisis fJ ekuensi
3 Dari hasillangkah 3 kriptanalis dapat menyusun huruf-huruf kunei atau menerka kata yang dapat membantu memeeahkan teks-kode
72 Pengantar IImu Kriptografi
Pada abad kemiddot19 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
425 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris pada Perang Boer (Perang Dunia I) pada awal Abad 20 untuk mengirim pes an antarmarkas yang ada di Inggris
Sir Charles Wheatstone Boron lyon
Gambar 46 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet) Dengan begitu kunci yang digunakan ada 25 alfabet Jumlah kemungkinan kunci pada kode Playfair 25=155112IO043330985984000000
Algoritma Kriptografi Klasik 73
Contch
Diketahui teks-asli Di dalam jiwa ya
Uotuk melakukan enkripsi kode berikut
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1 Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom maka pergerakan karakter dimulai dari huruf kedua secara vertikal menuju karakter teks-kode yang pertama Misalnya teks-as1i di huruf keduanya adalah Hi maka dari i yang di dalam matriks bergerak vertikal mencari huruf yang sebaris dengan d maka akan dijumpai karakter n (sebagai teks-kode) Untuk karakter yang kedua d mencari sisi lain seperti cara karakter Hi sehingga dijumpai karakter I Jadi teksshykode dad di adalah nl
S DT A ~ e ~E R II
vGF IK -pa UM Q
yW x zV
2 Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom atau baris yang sarna dan saling berdekatan maka digunakan prinsip enkripsi atau dekripsi ke bawah atau ke samping Cootoh untuk mengenkripsi an maka karakter di sam ping n adalah d da) karakter di sam ping a adalah un sehingga teks-kodenya menjadi dn
5 T A N D
E R C H B
K F G ] 11 M 0 p Q umiddot V W X Y Z
~L ~II ~ S T PI
e BHE BshyF G I LK
p ~QM a UI V YW IX Zl
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
70 71 Pengantar Ilmu Kriptografi
Pada eontoh tersebut huruf M pad a teks-kode berasal dari huruf H dan T pada teks-ash
Gambar memperlihatkan perbandinggan frekuensi kemuneulan huruf pada suaru teks-asli dan huruf pada teks-kode dengan menggunakan kode Vigenere
2 Plaintext
2k
11 15 2 26
1-1--+------------
6
ftl K I~ I
Gambar 45 Perbondingon Frekuensi Kemunculon Huruf podo Kode Vigenere
Kelemahan utama kode Vigen ere adalah kuncinya yang pendek dan pengshygunaannya yang berulang-ulang Jika kriptanalis dapat menentukan panjang kunei saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa kode Kaisar
Metode Kasiski membanru menemukan panjang kunci-kode Vigenere Metode Kasiski memanfaatkan keuntungan bahasa Inggris yang tidak hanya mengandung perulangan huruf tetapi juga perulangan pasangan huruf atau tripel huruf seperti TH THE dsb Perulangan huruf ini memungkinkan unruk menghasilkan kriptogram yang berulang
Contoh
Teks-asli CRYPTO IS SHORT FOR CRYPTOGRAPHY
Kunci abcdab cd abcda bed abedabedabed Teks-kode CSASTP KV SIQUT GQU CSASTPIPAQJB
Algoritma Kriptografi Klasik
Pada eontoh tersebut CRYPTO dienkripsi menjadi kriptogram yang sarna yaitu CSATP Hal ini dikarenakan jarak antara dua buah string yang berulang di dalam teks-asli merupakan kelipatan dad panjang kunci sehingga string yang sarna tersebut akan muneul menjadi kriptogram yang sarna pula di dalam teks-kode Tujuan dad metode Kasiski adalah meneari dua atau lebih kr ptogram yang berulang untuk menentukan panjang kunci
Langkah metode Kasiski adalah sebagai berikut
1 Temukan semua kriptogram yang berulang di dalam teks-kode (pesan yang panjang biasanya mengandung kriptogram yang berulang)
2 Hitung j-ak antara kriptogram yang berulang
3 Hitung semua faktor (pembagi) dari jarak tersebut (faktor pembagi menyatakan panjang kunei yang mungkin)
4 Tentukan irisan dari himpunan faktor pembagi tersebut Nilai yang muncul di dalam irisan menyatakan angka yang muneul pada semua faktor pembagi dari jarak-jarak tersebut Nilai tersebut mungkin adalah panjang kunei Hal ini karena string yang berulang dapat munetll bertindihan (coincidence)
Setelah panjang kunci diketahui maka langkah berikutnya adalah menentushykan kata kunci Kata kunei dapat ditentukan menggunakan exhaustive kef search Jika panjang kunei adalah p maka jumlah kunci yang harus dieoba
adalah 26Pbull Namun akan lebih efisien bila menggunakan teknik analisis
frekuensi
Langkah-Iangkah untuk melakukan analisis frekuensi adalah
1 Misalkan panjang kunei yang sudah berhasil dideduksi adalah n Setiap huruf kelipatan ke-n pasti dienkripsi dengan huruf kunci yang sarna Kelompokkan setiap huruf ke-n bersama-sama sehingga kriptanalis memiliki n buah pesan masing-masing dienkripsi dengan substitusi alfabet-tunggal (dalam hal ini kode Kaisar)
2 Tiap-tiap pes an dari hasil langkah 1 dapat dipeeahkan dengan teknik analisis fJ ekuensi
3 Dari hasillangkah 3 kriptanalis dapat menyusun huruf-huruf kunei atau menerka kata yang dapat membantu memeeahkan teks-kode
72 Pengantar IImu Kriptografi
Pada abad kemiddot19 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
425 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris pada Perang Boer (Perang Dunia I) pada awal Abad 20 untuk mengirim pes an antarmarkas yang ada di Inggris
Sir Charles Wheatstone Boron lyon
Gambar 46 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet) Dengan begitu kunci yang digunakan ada 25 alfabet Jumlah kemungkinan kunci pada kode Playfair 25=155112IO043330985984000000
Algoritma Kriptografi Klasik 73
Contch
Diketahui teks-asli Di dalam jiwa ya
Uotuk melakukan enkripsi kode berikut
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1 Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom maka pergerakan karakter dimulai dari huruf kedua secara vertikal menuju karakter teks-kode yang pertama Misalnya teks-as1i di huruf keduanya adalah Hi maka dari i yang di dalam matriks bergerak vertikal mencari huruf yang sebaris dengan d maka akan dijumpai karakter n (sebagai teks-kode) Untuk karakter yang kedua d mencari sisi lain seperti cara karakter Hi sehingga dijumpai karakter I Jadi teksshykode dad di adalah nl
S DT A ~ e ~E R II
vGF IK -pa UM Q
yW x zV
2 Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom atau baris yang sarna dan saling berdekatan maka digunakan prinsip enkripsi atau dekripsi ke bawah atau ke samping Cootoh untuk mengenkripsi an maka karakter di sam ping n adalah d da) karakter di sam ping a adalah un sehingga teks-kodenya menjadi dn
5 T A N D
E R C H B
K F G ] 11 M 0 p Q umiddot V W X Y Z
~L ~II ~ S T PI
e BHE BshyF G I LK
p ~QM a UI V YW IX Zl
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
72 Pengantar IImu Kriptografi
Pada abad kemiddot19 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
425 KODE PLAYFAIR
Kode Playfair ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada rahun 1854 dan digunakan pertama kali oleh tentara Inggris pada Perang Boer (Perang Dunia I) pada awal Abad 20 untuk mengirim pes an antarmarkas yang ada di Inggris
Sir Charles Wheatstone Boron lyon
Gambar 46 Penemu Kode
Kunci dari cipher Playfair adalah penggunaan matriks 5 x 5 (dengan masukan terdiri dari 25 karakter dan membuang Jyang ada di dalam alfabet) Dengan begitu kunci yang digunakan ada 25 alfabet Jumlah kemungkinan kunci pada kode Playfair 25=155112IO043330985984000000
Algoritma Kriptografi Klasik 73
Contch
Diketahui teks-asli Di dalam jiwa ya
Uotuk melakukan enkripsi kode berikut
Playfair
ng sehat t
mempunyai beberapa
erdapat akal yang schat
aturan
1 Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya Bila kedua huruf (karakter) tidak terletak pada satu baris atau kolom maka pergerakan karakter dimulai dari huruf kedua secara vertikal menuju karakter teks-kode yang pertama Misalnya teks-as1i di huruf keduanya adalah Hi maka dari i yang di dalam matriks bergerak vertikal mencari huruf yang sebaris dengan d maka akan dijumpai karakter n (sebagai teks-kode) Untuk karakter yang kedua d mencari sisi lain seperti cara karakter Hi sehingga dijumpai karakter I Jadi teksshykode dad di adalah nl
S DT A ~ e ~E R II
vGF IK -pa UM Q
yW x zV
2 Bila karakter-karakter yang dienkripsi atau dekripsi berada pad a kolom atau baris yang sarna dan saling berdekatan maka digunakan prinsip enkripsi atau dekripsi ke bawah atau ke samping Cootoh untuk mengenkripsi an maka karakter di sam ping n adalah d da) karakter di sam ping a adalah un sehingga teks-kodenya menjadi dn
5 T A N D
E R C H B
K F G ] 11 M 0 p Q umiddot V W X Y Z
~L ~II ~ S T PI
e BHE BshyF G I LK
p ~QM a UI V YW IX Zl
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
--
74 Pengantar lmu Kriptografi
3 Bila karakter-karakter yang dienkripsi berada pada akhir baris maka diikuti aturan sepeni nomor 2 di atas tetap pada kasus baris terakhir karakter yang diambil untuk teks-kodenya adalah karakter yang berada di samping (yang berarti baris pertama setelah baris tersebut)
9 I( Ashy~ D
E R C H B
K F G I L
M a p Q U
V W x y z -
4 Jika terdapat karakter kern bar untuk pengfunaan 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
Algoritma Kriptografi Klasik 75
Inggris dan dipeeahkan
teks-kode yang cukup ban yak kode Playfair akan dapat
43 TEKNK 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
JJpoundl~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
SAY A SEDANG BELAJAR KEAMANAN KOMPUTER
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabiia terjadi kekurangan dad blok bisa ditambah dengan huruf yang disukai Daiam eontoh ini ditarnbah dengan huruf X Hal ini berguna untuk mempersulit analisis dari kod tersebut
SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunei di atas setiap blok akan berubah rnenjadi seperti di bawah ini
YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
Jadi teks-kode t yang dihasilkan
YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
76 77 Pengantar IImu Kriptografi
Untuk mengembalikan ke bentuk teks-asH maka dilakukan inversi terhadap chiphertext dengan mengikuti kunci nomor dua di atas Ada banyak teknik untuk permutasi ini seperti zig-zag segitiga spiral dan diagonaL
1 Zig-zag memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah im
A G A A M X Y S 11 B J R M 11 0 P R
A E A E A K A A K L E 5 0 L e 1 T
Teks-kode dan teknik ini dengan membaca dari baris atas ke baris bawah
AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX
2 Segiiga masukkan teks-asli dengan pola segitiga dan dibaca dari atas ke bawah
S
A Y A B E L A J
R K E A M A N
A N K 0 M P U T E
R X X X X X X L
X ~
X X X _ bull_ _
Teks-kodenya adalah
RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX
3 Spiral teks-asH dimasukkan secara spiral dan dapat dibaca dari atas ke bawah Lihat contoh di bawah ini
S A Y A S E
A M A N A 0 E E R X N A
K T X X K N
R U P M a G
1 J A L E B
Teks-kodenya adalah
SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB
Algoritma Kriptografi Klasik
4 Diagonal Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonaL Coba perhatikan contoh di bawah ini
s 0 L E N E
A A A A K RI
Y N J M 0 x A G A A M X S B R N 17 Xj E E K A U
shy
Xi --- shy
Teks-kodenya adalah
SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX
Teknik transposisi (permutasi) memiliki bermacam-macam pol a yang bisa dishygunakan untuk menyembunyikan pesan dari tangan orang-orang yang tidak berhak Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenaI sekarang ini (modern)
44 ENKRIPSI SUPER
Pada pembahasan di atas semua tergolong kode yang sederhana dan mudah dipecahkan Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik subsirusi dan permutasi kode untuk mendapatkan suaru algoritma yang lebih andal (sulit dipecahkan) Teknik dati enkripsi super ini mudah dilakukan asal sudah memahami teknik subsitusi dan permutasi di atas Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik subsitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi) Contoh dari superenkripsi adalah seperti di bawah ini
Diketahui teks-ash
KENAlKAN HARGA BRM MEMBUAT RAKYAT KEelL MENDERITA
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
78 79
Pengant(lr Ifmu Kriptografi
1 Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunei 6
Teks-kode yang didapat
QKTGOQGTNGXMGHHSSKSHAGZQKIORSKTJKXOZG
2 Menggunakan teknik transposisi kode (permutasi kode) dengan mengshygunakan teknik diagonal permutasi dengan kunei 4
Q K T Q0 G
N G X G H H S K S A G Z K 1 0
S TK K X 0 G X X
G
T
M
S
H Q
R J
Z X
Maka didapat hasil akhir sebagai berikut
QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX
Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modem menggunakan teknik ini sebagai dasar pembuatan suatu algoritma
45 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
fgomo ltpgtgro ltoolt
manual Berapa kemungkinan kunci yang akan dicari dan berapa waktu yang diperlukan Dengan menggunakan teknologi komputer yang bisa mencoba kemungkinan 10000 kata kunci per detik kemungkinan untuk menemukan teks-asli Vigenere menjadi kurang dad satu hari
Sebelum membahas kriptografi modem sangatlah penting unmk mendisshykusikan 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 umumshynya algoritma kriptografi tidaklah sempurna algoritma yang lebih baik dan mempunyai sdipeeahkan adalah one time pad (OTP)
tetapi edikit
untuk kemun
mendapatkan gkinan untuk
46 RAHASIA YANG SEMPURNA
Skenario umum kriptografi adalah usaha unmk mengirim pesan rahasia ke penerima dengan menggunakan sistem kode untuk membuat pesan tersebut tidak bisa dipahami oleh pihak ketiga walau pun pihak ketiga bisa mengshyintempsi transmisi dari sistem pengiriman pesan Oleh karena itu diperlukan algoritma yang dapat menjamin pesan tersebut walaupun pesan jatuh ke pihak ketiga Jauh lebih baik jika pesan yang dikirim tidak jamh ke pihak ketiga sewaktu terjadi tranmisi sehingga bisa mencegah penyerang unruk
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
80 81 Pengantar IImu Kriptografi
meneoba mengira-ngira pesan tersebut Sistem yang bisa meneapai objek ini
bisa disebut dengan rahasia yang sempuma (perfect secrecYJ Contoh dari rahasia yang sempuma adalah seperti kasus di bawah ini
Seorang direktur suatu perusahaan sebut saja Mr X akan membuat suatu
keputusan serius dalam saham perusahaan Tika membuat keputusan membeli
(buYJ maka akan meningkatkan nilai perusahaan tersebut Jika keputusan menjual (sell) maka akan mengakibatkan kerugian yang sangat besar Untuk mengirim pesan ini ke pialang sahamnya jika keputusan ini tepat pada waktunya dan jelas maka keuntungan besar akan diraih tapi jika pesan ini salah ~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) = 0
Kunei Kl Ekl = 0 Ekl (SELL) = 1
Ekuivalen ditulis seperti di bawah ini
Kund BUY SeU KL-middotmiddot ] 1 K2- bull -1middotmiddot ]
Algoritma Kriptografi Klasik
Jika sistem yang digunakan dan 0 diinterupsi dan penyerang mfnyimpulkan 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 10000 kemungkinan yang ada kalau ATM tidak membatasi PIN yang error dalam sekali transaksi Jika dalam sekali transaksi hanya diberi 3x peluang untuk mengulangi kesalahan PIN hal itu juga bukan sistem yang baik karena jika yang memHiki kartu tersebut tidak melapor ke bagian yang menangani masalah ini maka kemungkinan PIN tersebut untuk ditemukan juga eukup besar hanya saja membutuhkan waktu yang agak lama
Pada dasarnya PIN sering terbongkar oleh pihak ketiga tetapi hal itu tidak dipublikasikan oleh lembaga yang bersangkutan karena akan membuat reputasi mereka menurun di mata konsumen Perlu diingat bahwa kejadian seperti ini sudah sering terjadi di Amerika Eropa maupun di Indonesia yang baik di dalam menggunakan kartu kredit debit atau kanu sejenis adalah
1 Jangan pernah memberitahukan PIN ke orang lain
2 Jangan pernah meneatat dan menyimpan PIN di manapun
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
83 82 Pengantar Ilmu Kriptografj
3 Mudah diingat dan unik (bukan tg] lahir nomor rumah dan sebagainya)
4 Jangan memberikan kartu ke orang lain
5 Sebaiknya setelah menggunakan ATM ulangi dengan memasukkan PIN yang salah supaya orang-orang yang tidak bertanggung jawab tidak dapat memanfaatkannya Record PIN pada mesin ATM bisa diIacak dengan menggunakan suatu program kartu kosong
6 Yang terpenting selalu waspada dari kemungkinan apapun
Bagaimana sebaiknya menjaga suatu rahasia agar aman Pada dasarnya setiap manusia tidak ingin orang lain mengetahui rahasia yang dimilikinya Jadi untuk mendapatkan sistem yang sempurna dibutuhkan security policy yang baik dan juga memikirkan segala kemungkinan yang ada
47 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 tidlk 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
ljH~S 01 ral1lorr( HUll1tHi $)
~ paivipapr Jhm ad tl1tlr a tfijja(lll quina viappamHfy rorufomfy 1Gflrn4 rmmb(f$
Gambar 47 Solah Salu SenIuk DIP
Algoritma Kriptografi Klasik
Penerima pesan memiliki salinan pad yang sama Satu pad hanya digunakan untuk mengenkripsi pesan satu kali (one-time) saja Sekali pad digunakan ia dihaneurkan supaya tidak dipakai untuk mengenkripsi pesan yang lain Panjang kunci OTP paniang reks-asH sehingga tidak ada keburuhan untuk mengulang penggunaan kunei selama proses enkripsi
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere
1 Enkripsi j = (Pi + kJ) mod 26
2 Dekripsi ci == (Pi - fa) mod 26
Bila diketahui teks-asli ONETIMEP AD
Dengan kunci TBFRGF ARFM
Diasumsikan A 0 B == 1 Z 25
Maka akan didapat teks-kode lPKLPSFHGQ yang mana diperoleh sebagai
berikut
(0 + T) mod 26
(N + B) mod 26 = P
(E + F) mod 26 == K
(T + R) mod 26 L
(1 + G) mod 26 == P
(M + F) mod 26 S
(E + A) mod 26 F
(P + R) mod 26 H
(A + F) mod 26 == G
(D +M)mod26=Q
Sistem OTP tidak dapat dipeeahkan karena beberapa alasan
1 Barisan kunei aeak + teks-asli yang tidak aeak teks-kode yang
seluruhnya aeak
2 Mendekripsi teks-kode dengan beberapa kunei berbeda dapat menghasilkan teb-asH yang bermakna sehingga kriptanalis tidak punya ear a untuk menentukan reks-asli mana yang benar
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
84 Pengantar IImu Kriptografi
Contoh
Kriptanalis rneneoba rnendekripsi teks-kode IPKLPSFHGQ
Kriptanalis meneoba kunei POYY AEAAZX
Teks-asli yang dihasilkan SALMONEGGS
Bila ia rneneoba kunci BXFGBMTMXM
Teks-asli yang dihasilkan GREENFLUID
Dari eontoh tersebut sudah jelas bahwa kriptanalis akan binggung atau rnendapatkan teks-asli yang salah bukan ONETIMEPAD
Meskipun OTP merupakan suatu algoritrna yang sernpurna dan arnan tetapi dalam praktik OTP jarang digunakan karena sedikit rumit yang disebabkan oleh panjang kunei = panjang pesan sehingga timbul masalah penyirnpanan kunei pendistribusian kunei dan masalah pengiriman kunei karena kunei dibangkitkan seeara aeak rnaka tidak mungkin pengirim dan penerima membangkitkan kunei yang sarna seeara sirnultan
OTP hanya dapat digunakan jika tersedia saluran komunikasi alternatif yang eukup aman untuk mengirim kunei Saluran ini pada umurnnya eukuD mahal dan larnbat
BABV TIPE DAN MODEL ALGORITMA
KRIPTOGRAFI
51 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
52 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
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
106 ~______engantar IImu Kriptografi
100tJai Value en-I
KunC1
s-bls-bit
Plaintext BoCk3mml
Gambar 511 Proses Dekripsi Mode OFB
o
BAB VI ALGORITMA KRIPTOGRAFI MODERN
61 PENDAHUlUAN Enkripsi modern berbeda dengan enkripsi konvensionaL Enkripsi modern sudah menggunakan komputer untuk pengoperasiannya berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan Fal ini sangat berguna untuk melindungi privacy data integrity authentication dan non-repudiation Di bawah ini akan digambarkan bagaimana enkripsi modern saling mendukung satu dengan yang lain
Gambar 61 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 Authentishycation didukung oleh MAC ChalJenge Response dan Digital Signature Encription terdid dad Symmetric Key Public Key dan IVs sedangkan Symmetric Key terdiri dari Block Cipher dan Stream Ciphers sementara Public Key tedid dari ECC dan RSA MAC dibentuk dad Hash Function yang akan menghasilkan Massage Digests Pseudo Random digunakan untuk
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
109 108 Pengontor Ilmu Kriptogrofi
IVs Nonces sena pembuatan Secret Kays yang disimpan di dalam Smart
Cards sedangkan Nonces digunakan untuk menghasilkan Challenge Response
62 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
621 AlGORITMA SIMETRIS
Algoritma simetris adalah algoritma yang menggunakan h nci yang sarna untuk enkripsi dan dekripsinya Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob Alice menggunakan kunci xa yang sebelumnya telah disepakati antara Alice dan Bob Untuk mengirim pesan e xa (x) kepada Bob dia akan mendekripsi teks-kode yang diterima dengan kunci yang sarna dengan yang digunakan untuk memperoleh akses ke pesan yang diterima Begitu juga sebaliknya
Plaintext input Ciphertext Plaintext output middot
4~~r-~~~-~ f ~~~~~~ middotLi~middotdj~ljSjJ II
~ ~~ ~) ~
t-shyr Same key
(shared secret) i nbull Gambar 62 Algoritmo Simetris
Algorifmo Kriptogrofi Modern
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah
ini
1 Data Encryption Standard (DES)
2 Advance Encryption Standard (AES)
3 International Data Encryption Algoritma (IDEA)
4 AS
S RC4
622 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 mengshyenkripsi suatu pesan sedangkan hanya satu orang saja yang memiliki rahasia itu yang dalam hal ini kunci rahasia untuk melakukan pembongkaran terhadap kode yang dikirim untuknya Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dad nama
penemunya yakni Rivest Shamir dan Adleman)
Plaintext Input Cipher-text Plaintext Output
Dmetiflt keys ReCipientsRecipients private key public key
Gambar 63 Algoritmo Asimetris
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
110 Pengantar IImu Kriptografi
623 ALGORITMA HIBRIDA
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci yairu kunci rahasia (simerri) - yang disebut juga session key (kunci sesi) unruk enkripsi data dan pasangan kuncirahasia-kuncipublik untuk pemberian tanda tangan digitai serta melindungi kunci simetri
EE ---C ~ - ~ ~
jS~J2~~~dbullltt liM 1It~
~ Users ~key
(In certlflcate)
~ Randomly- ~Ir Generated symmetric session key
-tlr
Recipients ~key
Session key must be f~ decrypted using the
Digital envelope recipients ~ contains session j Wkey encrypted using recipients ~J1JJj (JJpybllc key
Gambar 6S Dekrip~i Hibrido
~~
t bull
EiJJllSlfjl
~ ~jJ~J~~f)middotimiddotmiddotmiddot
Other recipients or l-UI~ ~l agents ~ key
Ti[r (in certificate)b in reco~ery policy
Gambar 64 Enkrip~i Hibrido
lt
bull
Algoritma Kriptografi Modern 1 1 1
63 STANDAR ENKRIPSI DATA
Standar enkripsi clata (Data Encrytion Standard DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia yang diadopsi oleh NISI (Nasional Institue ofStandards 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
631 SEJARAH SINGKAT DES
Pada akhir 1960 IBM memulai riser proyek Lucifer yang dipimpin oleh Horst Feistel untuk kriptografi komputer Proyek ini berakhir tahun 1971 dan li
I
Lucifer pertama kali dikenal sebagai blok kode pada pengoperasian blok 64 il bit dan menggunakan ukuran kunei 128 bit Setelah IBM mengembangkan I sistem enkripsi yang dikomersialkan maka Lucifer disebut dengan DES (Data II Encryption Standard) Proyek ini dipimpin oleh Walter Tuchman Hasil dari I riset ini merupakan VeTS Lucifer yang bersifat menentang pemecahan algoritma kriptografi 1
ill Pada 1973 National Bureau of Standard (NBS) sekarang menjadi National
ilInstitute ofStandard and Technology (NISI) mengeluarkan proposal untuk Jlkode standar nasionaL Proposal tersebut memberikan kriteria unruk standar
algoritma kripc)grafi sebagai berikut 1L Algorirma harus bisa memberikan level keamanan yang tinggi bull
2 Algoritma hal us lengkap dan mudah untuk dimengerti
3 Keamanan algoritma harus mempunyai kunci bukan tergantung dari algoritma yang ada
4 Algoritma harus aViil1able untuk semua user
5 Algoritma harus dapat beradaptasi dengan berbagai aplikasi
6 Algoritma harus ekonomis Perangkat yang menggunakannya tidak membutuhkan suatu alat yang sangat canggih
7 Algoritma harus efisien bila digunakan
8 Algoritma harus valid
9 Algoritma harus exportable
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
113 112 Pengantar Ifmu Kriptografi
Pada 1970 IBM dengan tim kriptografinya Kingston dan Yorktown Heights termasuk Roy Adler Don Coppersmith Horst Feistel Edna Grossman Alan Konheim Carl Meyer Bill Notz Lynn Smith Walt Tuchman dan Bryant Tuckerman menyampaikan hasH risetnya tentang proyek DES yang dulu diberi nama Lucifer dan mengajukan kandidat untuk kode standar nasionaL NBS meminta agen Nasional Security Agency (lSA) untuk melakukan evaluasi keamanan algoritma terse but dan menentukan apakah pantas menjadi standar yang dipakai dalam pemerintahan Pada November 1976 Data Encryption Standard dipilih sebagai standar yang dipakai pada pemerintahan dan mendapat kuasa untuk menggunakannya atas nama US Government Communication Undang-undang atas penggunaan DES FIPS PUB 46 diterbitkan 15 January 1977
Algoritma DES merupakan salah satu proposal terbaik tahun 1977 Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman karena DES tidak memiliki struktur internal yang kuat DES dievaluasi satu kali dalam lima tahun Evaluasi yang pertama 6 Maret 1987 dan evaluasi yang kedua pada 10 Desember 1992 Tetapi belum ada alternatif untuk menggantikan DES Pad a akhir tahun 1990 tepatnya tahun 2001 AES menjadi standar algoritma
DES merupakan keamanan dasar yang digunakan di seluruh dunia Oleh karen a itu ada kemungkinan DES akan tetap dilanjutkan penelitiannya hingga menjadi suatu sistem enkdpsi yang kuat baik dari segi password store data dan sistem kontrol akses
632 ALGORITMA DES
DES termasuk sistem kriptografi simetri dan tergolong jenis blok kode DES beroperasi pada ukuran blok 64 bit DES mengenkripsikan 64 bit teks-asli menjadi 64 bit teks-kode dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkej Kunei internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit Skema global dari algodtma DES adalah sebagai berikut
Algoritma Kriptografi Modern
1 Blok teks-asli dipermutasi dengan matriks permutasi awal (initial permutation atau IP) Bisa ditulis 1J IP (x) lJJRn di mana hJ terdiri dari 32 bit pertama dari 1J dan 32 bit terakhir dari tl
2 Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali putaran) Setiap putaran menggunakan kunci internal yang berbeda
dengan perhitungan LRi
1 i 16 dengan mengikuti aturan berikut
Li = Ri - 1
Ri = Li - 1 $ (Ri-t Ki)
di mana EB merupakan exclusive-or dad dua f adalah suatu fungsi dan Kl 16 KI6 dengan panjang 48 dari perhitungan fungsi dari kunci K (Sebenarnya Ki adalah permutasi dari A) KI 10 Kl6 terdiri dari kunci skedul Putaran pertama dad enkripsi terse but ditunjukkan oleh gambar di bawah ini
Gombar 66 Putaran Pertllma Enkripsi DES
3 HasH enciphering kemudian dipermutasi dengan matriks permutasi balik (invers initial permutation atau IP- 1) menjadi blok teks-kode Ipmiddotl ke bitstring Rl6L16 memperoleh teks-kode y kemudian y= Ipmiddotl(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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
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 sediktnya muncul dua kali
T [ E(A)
F(AJ)
Gambar 67 Rincian DES Fungsi f
2 Perhitungan E(A) Ef) I dan hasilnya ditulis pada penggabungan 6-bit string B BlB1BtampampBBdk
3 Langkah berikutnya menggunakan beberapa kotak-S Sibullbull 56 Setiap Si
adalah 4 x 16larik yang dimasukkan dari integer 0 15 Dengan memberi
suatu bitstnng dengan panjang 6 seperti B = bt blblblbX 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 (Cmiddot c 15) Kemudian
SABI) didefinisikan sebagai entry SAT c) yang dituliskan ke dalam binari
dengan panjang bitstring empat Dengan begitu dapat dihitung Q SAB) 18
Algoritma Kriptografi Modern 1 15
4 Bitstring C= GlGCJGCSoOG dengan panjang 32 adalah permutasi dari
hasil bitstring P( G) yang didefinisikan untuk iA )
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=~~~-] OAr ~ ll --~ I OA1A4CAK -_
~iltJllaquoMI_ =rTAb
Gambar 68 Pemakeian Kunci pede DES
Seeara umum skema Data Encrytion Standard (DES) mempunyai dua fungsi
masukan yaitu
1 Teks-asli untuk dienkripsi dengan panjang 64 bit
2 Kunci dengan panjang 56 bit
Skema dari pemrosesan Data Encrytion Standard (DES) seperti gambar berikut ini
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
116 117 Pengantar IImu Kriptografi
Input Plainte)ll 16middot811
4 t bullbull UH~U~bullbullbullbull~middotmiddotmiddotmiddot bullbull_middotmiddot~middot
Initial Prmutaa
Perulngan Kata 1
~rulngan Kata 2
Input Key r-__5~6~~
Pllfhan permutasl
~Pillhan P6rmutaI2--Erenkunc
K2 Pilihan Permuta 2 Pegeaeran kunc
Crulan~ta~E)--~Pillhn p~ulaai 2 Ic32-b1tswap _)
c-L-Inyera dan
rmutas awol ) ~ t t
Output Ciphertext 64middot6il
0ea~~kuncJ
Gombar 69 Gomboron Umum Algoritmo OpoundS
Proses dari permutasi inisial (IP) teks-asli ada tiga
1 Teks-asli Mmiddotbit diproses di permutasi inisial (lP) dan menyusun kembali
bit untuk menghasilkan permutasi masukan
2 Langkah untuk melakukan perulangan kata dati teks-asE sebanyak 16 dengan melakukan fungsi yang sarna yang menghasilkan fungsi permutsi subtitusi yang mana keluaran akhir dari hal tersebut berisi 64-Bit (fungsi
dari teks-asH dan kunci) masuk ke swap dan menghasilkan pre-output
3 Pre-output diproses dan permutasi diinversi dari permutasi inisial yang
akan menghasilkan teks-kode M-Bit
Algoritmo Kriptogrofi Modern
Proses dari kunci 56-bit
1 Kunci melewati fungsi dari permutasi
2 Penggeseran kunci yang mana akan dipilih perulangan-perulangan permutasi kunci sebanyak 16 kali yang menghasilkan upa-kunci (Ki) yang diproses dengan kombinasi permutasi
3 Perbedaan dari upa-kunci (Ki) akan dilakukan pengge3eran kunci yang menghasilkan kombinasi teks-asli M-Bit dengan kunci 56-Bit
633 PERMUTASIINISIAL
Di bawah ini kita akan mempelajari fungsi dad permutasi dan inversi dari permutasi tersebut yang mana akan dipertimbangkan dari 64-Bit yang akan diberi masukan M
MR MI M2 M4 M7M3 Ms M6
MI6M9 Mu MI4Mil MI2 MIsM IO
M I9 M2J M24MIS M21 M22MI7 M 20
M27 M30 M31 M32M25 M26 M 29M 28
MwM34 MJ7MJ3 MJ5 1136 M38 M 40i ~-----
M47M41 M42 M43 M44 M45 M46 M48i ~~~
M49 M52 M54 MSjM50 l MSI MS3 ~ ~~~
M64 MS7 MS9 M63MS8 M60 M61 M62
Jika M adalah bilangan binari kemudian dilakukan permutasi X = IP (M) seperti di bawah ini
shyJv5X Mso M42 M34 M26 Mill M lo M2
M60 M52 M44 M36 M28 M 20 MI2 --shy M4
-- shy
M62 M54 M46 M38 M30 M22 MI4 M6
M64 M56 M48 M 40 M32 ~----
M24 MI6 Mg
MS7 M49 M41 MJ3 M 25 M17 M9 MI-----c
MSI M43M59 M35 M27 MI9 Mil M3
Mill MSJ M45 MJ7 M29 M21 MI3 ~ 5
M63 M55 M47 MJ9 M31 M 23 MIS ~L~
M71
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
118 119
Pengantar IImu Kriptografi
Jika diambil inversi dan permutasi Y = IP_l(X) = IP-I (IP (M)) yang akan mengembalikan M ke bentuk semula Di bawah ini adalah tabel dari initial permutarion (IP) inversi dari permutasi fungsi dari permut~si serta ekspansi dari permutasi
Tabel 61 Tabel Permuosi Algoritmo DES
Table Permutasi lJntuk DES
(al Initial Permutai lIP)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 50 42 34 26 18 10 2 6e 52 44 36 28 20 12 4
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 62 54 46 38 30 22 14 6 64 56 4S 40 32 24 16 8
Jllpt Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
[put Bit 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Output Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7Lshy __ -
(0) Inverse Initial Permutasi (11)
Input Bit Output Bit
1 2 3 4 5 Igt 7 8 9 10 11 12 13 14 15 16
40 8 4S 16 56 24 64 32 39 7 47 15 55
29
23 63 31
30 31 32Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28
38 6 46 14 54 22
38
62
39
30 37 5 45 13 53 21 61 29
Input Bit Output Bit
33 34 35 36 37 40 41 42 43 44 45 46 47 48
36 4 44 12 52 20
54
6e 28 35 3 43 II 51 19 59 27
55 56 57 58 59 60 61 62 62 64Input Bit Output Bit
49 50 51 52 53
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25shy(e) Expantion Permutasi (E)
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output Bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Input Bit 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
OutputBi 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Input Bit 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Output Bit 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
(d) Fungs Permuasi (1)
Algoritma Kriptografi Modern
Tabel tersebut adalah tabel bantuan untuk mencari permutasi dari algoritma DES Pada tabel (a) awal masukan mengalami perubahan permutasi dari 1 bit ke 58 bit masukan kedua mengalami perubahan 50 bit dari masukan 2 bit dan pada bit terakhir mengalami perubahan menjadi 7 dari bit ke 64 Blok masukan mengalami permutasi dan kemudian menjadi masukan pada pershyhitungan kunci yang akan dipermutasi tergantung kunci yang dimasukkan
Tabel (b) mer lpakan perhitungan dari inversi permutasi yang mana dari perhitungan masukan awal diberikan nilai 40 bit sebagai pre-output sebagai bit pertama dari permutasi I bit dan 25 sebagai bit terakhir dari permutasi 64 bit
Tabel (c) merupakan suatu perluasan dad inversi permutasi yang terdiri dari 48 bit yang mana dari bit masukan I akan mengeluarkan keluaran 32 bit dan pada masukan 48 bit akan mengalami perubahan menjadi 1 bit
Tabel (d) adalah fungsi dari permutasi yang terdiri dari 32 bit yang mana masukan 1 akan mengeluarkan ouput 16 bit dan pada bit terakhir 32 bit mengeluarkan keluaran 25 bit
634 PEMBANGKITAN KUNCI INTERNAL
Karena DES mempunyai 16 putaran maka dibutuhkan kunci internal sebanyak 16 buah yaitu KI K2 K16 Kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna Kunci eksternal panjangnya 64 bit atau 8 karakter
Tabel yang digunakan sebagai skedul perhitungan kunci untuk algoritma DES seperti berikut ini
Input Bit OulpuBit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16_
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Input Bit Output Bit
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
120 121 Pengantarllmu Kriptografi
Tube 62 Permutosi Pilihon Solu (PC-I)
Table DES Schedule Key
Input Bit 1 2 3 4 5 6 7 S 9 10 11 12 13 14 15 IE Output Bil 57 49 41 33 2S 17 9 1 58 50 42 34 26 11 10 2
Input Bit 17 18 19 2C 21 22 23 24 2S 26 27 28 29 30 31 32 Output Bit 55 51 43 35 27 IS 11 3 60 52 44 36 63 55 47 39
Input Bil 33 34 35 36 37 3 39 40 41 42 43 44 45 46 47 48 Output Bit 31 23 15 7 62 54 47 38 30 22 14 6 61 53 45 3
Inpul Bil 49 50 51 52 5~ 54 55 5~
Output Bit 25 21 13 5 2 2C 12 4
Dalam permutasi ini tiap bit kedelapan (parity bit) dari delapan byte kunei diabaikan Hasil permutasinya adalah sepanjang 56 bit sehingga dapat dikatakan panjang kunci DES adalah 56 bit Selanjutnya 56 bit ini dibagi menjadi 2 bagian kid dan kanan yang masing-masing panjangnya 28 bit yang masing-masing disimpan di dalam G dan n Gl bertsi bit-bit dari K pada posisi
57 49 41 33 25 17 9 15850 4234 26 18
10 2 5951 4335271911 3605244 36
Dl berisi bit-bit dari Kpada posisi
63 55 47 3931 23 15 7 62 54 4638 3022
14 661 534537 2921 13 52820 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 TabeI63
Tubel 63 lumloh Pergeseron Bit podo Setiap Putoran
Nomor [nterasi
Perpularan Bil
Algoritma Kriptografi Modern
Misalkan (C Dt) menyatakan penggabungan C dan D (Cl Dt)) diperoleh
dengan menggeser C dan Dt satu atau dua bit Setelah bit bergeser (C Dt) mengalami permutasi kompresi mcnggunakan matriks PC-2 bcrikut
Tubel 64 Permutas Pilihan Dua (PC-2)
Input Bil 1 2 3 4 5 6 7 fi 9 10 1] 12 13 14 15 16
Output Bit 14 17 11 24 1 5 2 28 15 6 21 10 23 19 12 4
Input Bil 17 18 19 20 21 22 23 24 2S 26 27 28 29 30 31 32
Output J3it 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
Input Bil 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Output Bit 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 -
Dengan permutasi ini maka kunci internal Ki diturunkan dari (C Di) yang dalam hal ini J( merupakan penggabungan bit-bit C pada posisi
1417 11 24 1 5 3 28 15 6 21 10
2319 12 426 816 7 27 20 13 2
dengan bit-bit D pada posisi
415231374755304051453348
444939563453464250362932
Jadi sctiap kunei internal G mempunyai panjang 48 bit Proses pembangkitan
kunci-kunci internal dapat dilihat pada gambar berikut ini
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
122 123 Pengontor IImu Kriptogrofi
KI
I I V -l ( Pennulas r KIe ( r PC-2 1
I--------I-----~~I Pennutasi PC-2 KI6
Gombar 610 Proses Pembangkitan Kunci Internal DES
Algoritmo Kriptogrofi Modern
II
S I 2 3 o
s ~
~ (I
$ I I (l
s i I gt
3 o
$~ i 1 I ~
3 (I
S 1 ~
o S1 I
2 ~
o S8 1
~
I 3
Tabel 6S DES Kalak-S
n 3 4 5 ( l( 9
14 4 13 2 15 II H J W ) IS 7 4 14 2 D I 10 ( 4 I 14 X n ( II IS 12 I~ 12 8 2 4 ltJ 7 5 II 15 I II 14 II ) I t) 7 3 13 4 7 15 2 II 1-1 l~ 0 (1 14 7 11 10 I D 5 S
13 8 10 1 3 15 4 1 1 ( 6 10 (I 9 14 ( 3 15 5 ( 13 13 7 0 lt) 4 6 10 2 It 13 ( 4 lt) 8 15 o 11I 10 13 0 ( lt) 7 -I 15 7 I 14 () Ii ltI 10 2
U II 5 ( 15 o 3 -I 10 ( lt) () I~ II 7 I 15 I J 15 0 ( 10 I ~ 9 4 2L 4 710 II ( N 5
14 II 2 12 4 7 n I 5 n I II 10 U II 15 lt)
I I l 11 7 I 14 J f 15 12 10 15 lt) to ~ 0 n 10 15 4 2 7 12 9 (i I
lt) 14 15 5 2 x 12 7 () 4 3 2 12 lt) 5 15 10 11 14 J II It 15 0 l- 11 J I 13011749 I 10 )4 3
I I II 13 12 1 7 14 III 15 6 II I~ 8 I 4 10 7 ) 5 132l46Li II 10 I
I 15 J3 II 10 7 J 12 5 7 II 4 I J I 14 206 2 14 7 4 f(I ~ 13 I 11
iO 11
ltshy 12 12 II
j 14
2 13 10
12 tgt 7 12
12 7 gt 14 2 12
14 ~
5 2 I 14 II
15 15 10 12 (l l
3 4 1shy j
4 111 7
I)
5 C ( 11
o Ii 3 14 ( II
10 l~
lt) IJ
II 13
5 ltI
Y ~
III 10 l 12 ( (i lt)
lt) 3 o 5
II J I II
5 10 II 5 II 12
10
U
ltJ
~
IU J 1-1 7 o II
U ( 0 ) 10
1 15 () 5
14 2 5 0 () 14
15
3 5
1-4
()
I s (
)
11
14 1
15 14 2 j
14 s 2
1-1
s o 5
II X
6
8 lt)
)
12 j
5 6
IS
7
~
o 13 II) 5
15 lt)
~
I 7
12 15 l)
J 14 I
(
14
x h
D I Igt
2 l~
7 ~
II
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
124 Pengontor IImu Kriptogrofi
Tabel 16 kali perputaran dad DES seperti di bawah ini
Tabel 66 Enam Belos Koli Perputoran Perhitungon Kunci
Permutasi Choice Two (PC-2)
Input Bit Output Bil
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16
14 17 11 24 1 5 2 28 15 6 21 Ie 2l 15 12 4
Input Bit Output Bil
17 18 15 20 21 22 2l 24 25 26 27 2E 29 30 31 32
26 8 1euro 7 27 2C 13 2 41 52 31 37 47 55 311 40
Input Bit OutputBil
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4E
51 45 33 4S 44 49 39 56 34 53 46 42 50 36 2S 32
Round 1
Input Bil 1 2 3 4 5 6 ) a 9 10 11 12 13 14 15 16
OutputBil 10 51 34 60 49 17 33 57 2 9 19 42 3 35 2E 25
Input Bit Output Bil
17 18 IS 20 21 22 23 24 25 26 27 2E 29 30 31 32
44 58 55 1 36 27 18 41 22 2E 39 54 37 4 47 30
Input Bit OutputBH
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31
Round 2
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
2
17
36
33
2E I
143
134
45
3
1 26 152
1 35 136 I
115 1 21 153
I 41 I
37 I
14151 71
~
M
1l
I 25 I 49
1 39 I 40
I 30155
61
9
38
113
13 114 115 lIE
60 27 18 17
29 30 31 32
29 63 39 22
45 46 47 48
54 147123
Round
Algoritmo Kriptografi Modern 125
Round 4
Input Bi 2 3 I 4 I 5 I 6 I 7 I 8 I 9 I III III 112 113 114 115116
Output Bit 35 111 155 149 I 9 142 I5a 117 I27 I34 1441 2 157 160 1511 50
Input Bit Output Bit
VI331
HI18 HI~119 I
ln26 l2125 I
2I252
3I143
~I25I26I~I28I~I~I~t~ 31 ) 53
46 4748
22 15 54
InputBll Output Bit
~
63
g
23
Round 5
Input Bit 1 2 3 4 5 6 ) 8 9 III 11 12 13 14 15 1euro
Output Bit 19 611 43 33 58 26 42 1 11 18 57 51 41 44 35 34
Input Bit 17 IS 19 20 21 22 23 24 25 26 27 2E 29 30 31 32
Output Bit 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37
[nputBii 33 34 35 36 37 38 39 40 41 42 43 44 45 4i 47 48
Output Bit 47 2S 30 4 5 63 45 7 22 31 2C 21 55 6 62 38
Input Bil OutputBt
Input Bit Output Bit
Input Bit Output Bit
Round 6
31415161718 14115 I If
57 19 18~V42ll26~
~ 31 32
~~~0l134
H~n2223~
62 38 21
46 47 48~36~38~g
5314612114 I 5S I 20 1 47129154
Round 7
Input Bit Output Bit
InputIiI Output Bit
InputBit OutputBt
2 I 3 5 I 6 I 7 I 8
52157111 26 I 59 110 I 34
VIHIHI~~2223~
a42~WU
36~38~g
39 I 4 I31 1 13 1 38
16
2
32
6
Input Bit Output Bit
Input Bit Output Bil
Input Bit Output Bit
13 114 115 116
4411112
29 30 31 32
13 47 23 6
45 46 47 48
20138 131 I 7
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
126 Pengantar Ilmu Kriptografi Algoritma Kriptografi Modern 127
1_ound 8
Round 12InputBii OutputBif
InputBif OutputBil
Input Bit OutputBil
1 2_ 3 4 5 6 ] 8 9 Ie 11 12
36 41 60 50 10 43 59 18 57 35 9 3
17 U 19 20 21 2223 24 25 26 27 28
34 15 49 Zl 2(i 17 44 2 lZ 54 61 13
33 34 35 36 37 38 39 40 41 42 43 44
62 47 45 23 5S 15 28 22 37 46 39 4
Round 9
13 14 15 1~
58 25 52 51
29 30 31 32
31 30 6 2C
45 46 47 48
l 21 14 53
Input Bit outputml
InputBii -9utpt Bif
InputBiI ()utput Bil shy
2
13 16
50 43
29130131132
23 2 61 12
45 46 47 4li
6213645
InputBil OutputBii
Input Bi -OutputBil
lnputBil OutputBii
1 2 3 I 5 6 7 Ii 9 10 11 12
41 17 36 26 51 15 35 55 33 11 50 44
17 18 19 2C 21 22 23 24 25 21i 27 28
10 60 25 3 2 58 49 43 5S 30 37 20 33 34 35 36 37 38 39 40 41 42 43 44
38 23 21 62 31 54 I 61 13 22 15 47
13 14 15 16
34 1 57 27
29 30 31 32 6 45 63
45 46 47 48
46 28 53 29
Round 11
6 ] I 8 9 10 11 12
3 19 4311760134 57
22 23 I24 1251 26 I27 28
514213312713911421 4154
37 38 139 40 I 41 I 42 I 43 144
15 38 155145 2B I 6162 131
Input Bit 1 2 3 4 5 6 - 7 a l 10 11 -12 131415 16
Output Bit 9 50 33 59 19 52 3 271 44 18 14i2 34 25 60
Input Bit 1718 19 20 21 22 2324-25 26 27 ~ 29303132
Output Bil 43 57 58 36 35 26 1711 middot23 61 5 5li~37
Input Bit- 33 34 35 36 37 3S 39 4041 424344 ~14647148 Output BiI 6 54 20 30 62 2239 29 12 53 46 15 146321128
Round 13
Input Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Bit 58 34 17 43 3 36 52 IIi 50 57 2 25 51 18 9 44
Input Bit 11 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Output Bit 27 41 42 49 19 10 1 6C - 45 20 39 22 middot21 28 -15
Input Bit 33 34 35 36 37 3S 39 40 4i 42 43 44 45 46 47 48
Output Bil 53 3S 4 14 46 6 23 13 63 -37 30 62 6f 47 5 12
Round 14
Inlut Bit Output Bit
Input Bit Output Bit
Input Bit Output Bit
6 1 7111 12 16
42 52 149 I 36 160 57
17 21 1221231241251261271 28 32
1125 126 1331 3159501 44 54294 62 33 I Ul 351 36 I 37 3B 39140 14H42 143 47148
37122155 161 130153 L7123 14721114 20163
Round 15
Input Bit Output Bil
input Bit O~tputBlt
Input Bit Output BlI 21
ound 1~
Input Bitgt jiZ 3 4 5 6 7 $-1$ 10 111Z 3 14 1516
Output Bit -lt 18 59 42 3 5725 41 361(1 17 27 5011 43 34 33
Input Bit -17 1819 20 21 22 23 2(25 26 27 za 29 3C31 32
Output Bit 521 2 9 4435 26 ~49K 5 47 62 45 12 5S3S
lnputBU Output Bit
Input Bit QutputBil
JnputBil OutputBil
InputBil OutputBil
23456
571335242235
17 lIB 19 120 21 22
26111 141 115 18 I 9
33 36 38
54 IS ]
Round 10
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
128 129 Pengantar IImu Kriptografi
Untuk mengembalikan atau mendekripsikan bisa dipakai kunci tabel skedul dengan cara RI6 RI dan akan mengeluarkan keluaran teks-asli
Di bawah ini iterasi algoritma DES lIt 32 ait 32 Bit 28 Sit 28 ait
LJI RImiddott CIl Ol
I
L Expan
t Pfgbullbullbulln
Pgenl1l
PHmllltl (ETabl
48 Bit f
i XOR 48 BI1
_~ Kl
_____~
Prmuh
(Plhln drl Permut 2)
48 Bit
~_--L _
Subtftu1 (S-bo)
32 Sit
_f
Permubl (P)
32 Bit XOR
f T LJ R CI 01
Gambar 611 Itera~j Algoritma DES
635 PENGKODEAN
Proses pengkodean terhadap blok teks-asli dilakukan setelah permutasi awal biok teks-asli mengalami 16 kali putaran pengkadeall Setiap putaran
pengkodean merupakan jaringan Feistel yang seeara matematis dinyatakan sebagai
L RJ-I
Ri L-I EEl f(R-If(j)
Algoritma Kriptografi Modern
Contah 1 dari enkripsi DES
Bila diketahui teks-asli dalam heksadesimal
o123456789ABCDEF
dengan menggunakan kunci (heksadesimal)
133457799BBCDFFl
Kunei dalam binari tanpa plrity-check bits adalah
00010010011010010101101111001001101101111011011111111000
Dengan menerapkan IP (intiaJ permutation) maka In dan Ro biner)
Lo 11001100000000001100110011111111 L1 Ro 11110000101010101111000010101010
16 putaran untuk melakukan ~nkripsi sebagai berikut
J(-(Q 01 11 lOlOOOOlUlOlOlOI01010ll 11010000iOTOIO lO HllQ 1 KI 00011011000000101110111111111100011100QOOIIIOOIO
E(Ro)0lt = 011000010001011110111010100001100110010100100111I Smiddotbo) outputs 0101 1IOOI00QOOI010IIOI01 100101 11
f(RoK) 00100011010010]01010100110111011 L~ = RI = 11101111010010100110010101000100
E(R 1 ) 011101011110101001010100001100001010101000001001 K 011110011010111011011001110110111100100111 100101
I S(R) ED Kl = 0000IIQOOI000100100011011110101101100011111011OQ SmiddotOOx outputs 11111000110100QOOOIII01010101110
f(Rs K2) OOllll00WI010111()OOOI1110100011 L) = R - 110011VOOOOOOOOIOl11011100001001
E(R) ITIOOIOllOUOOOo)OOOOOOI010l11010111010000l0l(10l1 K3 = 01010101111111001000101001000)10110011111oo11001 _E(R2) EEl K3 101100000111110010001000111110000010011111001010
Smiddotooo ootPV$ 00100111000100001110000101101111 f(RlK3 01001101000101100110111010110000
pound1 = R3 10100010010111000000101111110100
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
131 Pengantar IImu Kriptografi
01010000010000101 III IOD000000101011111 1110101001 011100101010110111010110110110110011010100011101 001OO0101110111100JOI11011011110010DI0101011t)IOO 00100001111011011001111100111010 10111011001000110111011101001100 01110111001000100000000001000101
----------~
101110101110100100000100000000000000001000001010 jl
011111001110110000000111111010110101001110101000 110001100000010100000011111010110101000110100010 01010000110010000011000111101011 i 0010100oo001001110101101110000l1 Jl 10001010010011111010011000110111---------------___-----------shyll000101010H)o1001011 111110100001100000110101111 1 011000111010010100111110010100000111101100101111 101001101110011101100001100000001011101010000000 ~ 01000001111100110100110000111101 I 10011110010001011100110100101100 I 11101001011001111100110101101001 ~
11110101001010110000111111100101101010110101001] 111011001000010010110111111101100001100010111100 0001100II0I 0111110 IIIOI)OOOU I 001110II00 11111 01111 00010000011101010100000010101101 1000110(OOOOO I 0 1000111 0000100III 000001 HlO 1001010101 110 1000010000---------shy
E(Jh) K
E(Rr) (poundI K S-box OltpU~
J(R7KII )
Li =RII
E(Rs) (9
E(Rs) e (g SmiddotOOll outputs
f(~ () LH1 ~
- 0000000011000010010 10 WI 0 101111101 000000 10100000 111101111000101000111010110000010011101111111011 = 111101110100100001 1011 1110011 1l001l1l01lOI0110 1
01101100000110000111110010101110 = 00111100000011101000011011111001 = 11010101011010010)00101110010000
011010101010101101010010101001010111110010100001 ]11000001101101111101011111011011110011110000001
== 10001010011100001011100101001000 1001101100100000 0001oo0J 000011000101 011 1(111101ll
=0 ooI0oo100011011001l111000110101O 00100100011111001100011001111010
Algoritma Kriptografi Modern
E(I4) = 000I000QI000001111111001flI1000001100001111110100 KIO = 101100011111001101000111101110100100011001001111
E(I4) It) KIo 101000010111000010111110110110101000010110111011 Smiddotbox OUIPUt$ 11011010000001000101001001110101
f(I4K1o) 01100010101111001001110000100010 LII =RIO 10110111110101011101011110110010
E(nUlfmiddot-~-OlO110101111111010101011l11010101IIIl101l01001O Ku
ERIO e KII Smiddotbox outputs
(RloKII )
Lu Ii I
E(Ru) KI2
~(Rlll ID KJ~
1S-box outputs
ftRIIKll) Lll RI2
---E(Rr---ool]eiToTOiTfiOn-ffficilofo5Cfifli0000001001lOOOlfl (ll =
E(RI~) () KIJ
Smiddotbox outputs f(Ru(13 =
pound14 RIJ =
E(RI3) K14
ER(3) () K14 S-oox outputs
fCR13Ku) LI~ RI shy
K(R) KI~ =
E(Rbullbull )ltDKu S-oox OUlpulS
j(R14KI~ ) Ll( =RIgt
-=
=
001000010101111111010(111110111101101001110000110 at tllOlllOlOOOCHOI 1l100000Il010OOO1011100010001 I OU 1001100000 1011101000100000001 11100001000001001111101000000010 11000101011110000011110001111000
011000001010101111110000000111111000001111110001 = 011101010111000111110101100101000110011111101001 000101011101101000000101100010111110010000011000
011110111000101100100) 1000110101 = 110000100010001100111111101010 01110101101111010001100U01011000
10010111110000111010001111110101011101001000001 10101lOI011110000010101I01l1010110111000101l000 I 1001101011010001 1000101101001111 11011101101110110010100100100010 000II00011 0000 llOOOlOlO10l0 11010
0000111]0001011000000110100010101010101011110100 OlO 1111010000111 0110111111100101110011100 111010 010100000101010110110001011110000100110111001110 01100100011110011001101011110001 10110111001100011000111001010101 IIOOOOI010nOl1001001011000001101
111000000101010031011001010010 I() I lOOOOOl)l)10l101 1 101111111001000110001101001 I 110lOU11 111100001010 010111111100010111010100011 101111111111101010001 10110010111010001000110100111100 01011011100000010010011101101110 01000011010000100011001000110100
I
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
------------
132 Pengontor Ilmu Kriptogrofi
E(Rl~) 001000000110101000000100000110100100000110101000 K~ 110010110011110110001011000011100001011111110101
qRI~) ill KI~ 11101011010]0] J J 10001111000101000101011001011101 S-lxJr OUlpUls 10100111100000110010010000101001 f(Rl~ KIfraquo - IIOOIOOOlIOOOOO)))OOIIIIIOOIIOOO
RI6 00001010010011001101100110010101
Setelah dilakukan 16 perputaran dengan menerapkan IP-I to RlhLI6 maka diperoleh teks-kode sebagai berikut (dalam bentuk heksadesimal)
85E813540FOAB405
Contoh 2 dari algoritma DES seperti di bawah ini
Diberikan teks-asli COMPUTER
- tPlairitextr~~ HexadedmaL bull -)tiBiner -~ ~
C 43 01000011
0 4F 01001111
M 40 01001101
P 50 01010000
U 55 01010101
T 54 01010100
E 45 01000101
R 52 01010010
Teks-asli heksa
43 4F 4D 50 55 54 45 52
Teks-asli biner
xo = 01000011 01001111 01001101 0101000001010101 01010100 01000101
Misalkan kunei heksa
13345779 9B BC DF Fl
Modern 133
Kunei biner
K 00010011 0011010001010111 01111001 10011011 10111100 11011111 11110001
Dengan initial permutation diperoleh
xo =IP(x) LoRo
di mana
10 11111111 101110000111011001010111
Ro 00000000 00000000 00000 II 0 10000011
Enkripsi DES 16 putaran
Dengan lltilt16
Li Ri-l
Ri Li-I (B f( RH Ki)
Ki= PC2(Cn)
C
n
CoDo
Putaran 1
E(Ro) 100000000000000000000000000000001101010000000110 Kl 000110110000001011101111111111000111000001110010 E(Ro)(BKl 100110110000001011101111111111001010010001110100 Keluaran
kotak-S 10000101010010000011001011101010
F(RoKl) 00101000101100110100010011010001 I
L2=RI 11010111000010110011001010000110 I
Putaran 2
E(Rl) 011010101110100001010110100110100101010000001101 K2 011110011010111011011001110110111100100111100101 E(Rl)(BK2 000100110100011010001111010000011001110111101000
11011100010000111000000011111001Keluaran
01010010
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
--
135 13~ Pengantar lImu Kriptografi Algoritma Kriptografi Modern
kotak-S F(RIK2) 10001011110110011000110000010011 13=Rl 10001011110110011000101010010000
Putaran3
E(R2) 010001010111111011110011110001010101010010100001 KJ 010101011111110010001010010000101100111110011001 E(Rl)$K 000100001000001001111001100001111001101100111000 Keluaran 11010110001111001011011001111111 kotak-S F(RlKJ) 01101111101100101001110011111110 lA=Rl 1011100010111001101011100111000
Putaran 4
E(R1) 010111110001010111110011110101011100001111110001 K4 01110010101011O111O1O11O1O11011O01lOlO1O0011lO1IE(Rl)EDK4 001011011011100000100101000011101111011011101100 Keluaran 00101001110100001011101011111110 kotak-S F(RlK4) 0011111100111011~OQ011110100OQI J Ls=R4 10110100111000101100110100110001
Putaran5
E(R4) 110110101001011100000101011001011010100110100011 Ks 011111001110110000000111111010110101001110101000 E(R4)$lG 101001100111101100000010100011101111101000001011 Keluaran 01000001001111011000101011000011 kotak-S F(R4Ks) 10010101001100101101100001000101 u=Rs 00101101100010110111011000111101
Putaran 6
E(Rs) 100101011011110001010110101110101100000111111010 K6 011000111010010100111110010100000111101100101111 E(Rs)EJ)K6 111101100001100101101000111010101011101011010101 Keluaran 01101101110111000011010101000110 kotak-S
F(RsK6) 00100100000110111111001111111000
_
b=R6
Putaran7
E(fu)
K7 E(R6)EJ)K7
~
Keluaran kotak-S F(R6K7)
La=R7
Putaran8
E(R7)
Ks E(R7)EDKs Keluaran kotak-S F(R7KK)
10010000111110010011111011001001 I
110010100001011111110010100111111101011001010011 111011001000010010110111111101100001100010111100 001001101001001101000101011010011100111011101111
-
11100011011010110000010100101101
- -
11001000110000011110111001101100 11100101010010101001100001010001
111100001010101001010101010011110000001010100011 111101111000101000111010110000010011101111111011 000001110010000001101111100011100011100101011000 00001000110110001000001111010101
00000111001110010010100101100001 19=RK
Putaran9
E(Rs) K9 E(Rs)ffiK9 Keluaran kotak~S
f---- shyF(RaKy) LI()=R9
PutaranlO
E(R9) KIO E(R9)ffiKIO
10010111110000000001011110101000
010010101111111000000000000010101111110101010001 111000001101101111101011111011011110011110000001 101010100010010111101011111001110001101011010000 01101110111000011010101101001010
11011001001110111010001110010100 00111100011100010011101111000101
100111111000001110100010100111110111111000001010 101100011111001101000111101110100100011001001111 001011100111000011100101001001010011100001000101 00100001011100000100000101101101
00001100000101010110111000100100 10011011110101010111100110001100
- shy
c-Keluaran kotak-S
I---shyF(R9KIO)
LII=RIO
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
Algorifma Kripfografi Modern 137136 Pengantar IImu Kriptografi
Putaran 11
010011110111111010101010101111110011110001011001 i KlJ ~(Rlo)
001000010101111111010011110111101101001110000110 E(RIO)EBK 011011100010000101111001011000011110111111011111
I Keluaran 01011110000011001101101111000010 kotak-S
F(RIl)KII) I 01110001001111101011000001010011 I 01001101010011111000101110010110ILI2=RII
I Putaran 12
E(RII) 001001011010101001011111110001010111110010101100 01110101011100011111010110010100011001111[101001~2
E(RII)EBK2 010100001101101110101010010100010001101101000101lKeluaran 01101000000010110011011010101101 kotak-S F(RJ IKI2) 10101000011010001000111011101001
f-- LI3=RI2 00110011101111011111011101100101
Putaran 13
100110100111110111111011111110101110101100001010 Ki3 E(R2)
100101111100010111010001111110101011101001000001 E(R2)EBKI3 000011011011100000101010000000000101000101001011 Keluaran 11111001110110110010010010110011 kotak-S I F(RI2KJ3) 10000110110010111100111111001011 L4=RI3 11001 011100001000100010001011101
LPutaran 14
E(R13) 111001010111110000001000001000001000001011111011 010111110100001110110111111100101110011100111010
E(R13)EBK14 KI4
101110100011111110111111110100100110010111000001 Keluaran 10111000011111101100010111000001 kotak-S F(RnKI4) 00000101110111010011101001001111 LIS=R4 00110110011000001100110100101010
Putaran 15
E(RI4) 000110101100001100000001011001011010100101010100
~-----
Kl~ 101111111001000110001101001111010011111100001010 E(RI4)EBKlS
Keluaran
101001010101001010001100010110001001011001011110 01000001001110011111011100100111
kotak-S F(RI4K1S) L16=RIs
10100101001001101110110011101100 01101110101000101010100010110001
I
Putaran 16
E(Rls) KI6
101101011101010100000101010101010001010110100010 -
110010110011110110001011000011100001011111110101
E(RIS)E[)KI6
Keluaran
011111101110100010001110010110110000001001010111 10000001011010101111011101001011
kotak-S
F(RISK16) Rio
00101001111101110]10100011001100 00011111100101111010010111100110
Teks-kode biner
y IpmiddotI(RI6L6)
0101011011110001 11010101 1100100001010010 10101111 10000001 00111111
Teks-kode heksa
56 Fl D5 C8 52 AF 81 3F
Teks-kode ASCII
VfiOEWD
Listing program yang menggunakan bahasa Pascal for Windows dapat dilihat
pada lampiran di akhir bab inL
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB CBC OFB dan CFB Namun karen a kesederhanaannya mode ECB lebih sering digunakan pada paket program komersial meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus Mode CBC kadang-kadang saja digunakan
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
bullbullbull
bullbullbull
139 Pengantar IImu Kriptografi
636 MODE OPERASI DES
DES dapat dioperasikan dengan mode ECB eBC OFB dan CFB Namun karena kesederhanaannya mode ECB Iebih sering digunakan pad a paket program komersial meskipun sangat rentan terhadap serangan Mode CBC
Iebih kompleks daripada EBC namun memberikan tingkat keamanan yang Iebih bagus Mode CBC kadang-kadang saja digunakan
Mode ECB cocok digunakan untuk blok kode Diberikan urutan XlXl bullbullbull 64shybit blok teks-asli Setiap Xi adalah enkripsi dengan kunci yang sarna dengan K yang menghasilkan suatu blok string teks-kode )I2
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 ditetapkan11 = IV kemudian dibangun)l2
dari aturan yl = eA(yi-1 () Xi) i lt 1 Penggunaan mode CBC dapat dilihat pada gam bar di bawah ini
0 bullbullbull
encrypl
decrypt
QI
Gombor 612 Mode eBe
Algoritma Kriptografi Modern
perhitungan kunci aliran ZlZl dari aturan Zi eA(ztI) i lt 1 Urutan teks-asli XlXl bullbullbull adalah perhitungan enkripsi dari Yj Xi () Zi j lt 1
Pada mode CFB dimulai dari J1l = IV (64-bit vektor inisiasi) dan akan dihasilkan elemen kunci aliaran Zi dari enkripsi sebelum biok teks-kode
kemudian Zj eA (ytI) h 1 sarna dengan mode OFB yi = Xi Zi i lt 1 Untuk lebih detailnya dapat dilihat pada gam bar di bawah ini
IIV ~hl--ICP 9
rhl--1r 9J
encrypt y y 2
~ CJl 1- N_ ~GJ-8 LGJ-8 L
~ ~ decrypt [J [J
Gombar 613 Mode UB
Varian mode OFB dan CFB disebut K-bjt feedback mode (1 ~ k ~ 64) 64-bir bisa dijelaskan I-bit dan O-bit Feedback mode kadang-kadang digunakan dalam praktik enkripsi data satu bit pad a waktu yang sarna
Empat mode operasi blok kode seperti Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feed Back (CFB) Output Feed Back (OFB) mempunyai keuntungan dan kelebihan masing-masing Mode ECB dan OFB
menukar satu biok teks-asli 64-bit Xi karen a koresponden blok teks-kode yi
yang diubah karena biok teks-kode yang lain tidak diubah
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
140 141
Pengantar IImu Kriptografi
Listing program untuk enkripsi dan dekripsi algoritma DES
Prosedur ini hanya untuk enkripsi dan dekripsi algoritma DES dengan mengshy
gunakan bahasa Pascal bukan listing program secara keseluruhan supaya
buku ini tidak terlalu tebal
procedure Enkripsi
begin
for i= 1 to 64 do
for j=1 to 32 do L[O][iJ gtO[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 12345671190 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 B182B3 88 masing-masing 6 bit J n= 0
for i~1 to 8 do begin
for k= 1 to 6 do begin n n + 1
B(j][kJ E_XOR K[nJ end
end
( menghitung C]C2 C8 dengan kotak-SJ
Algoritma Kriptografi Modern
for to 8 do begin baris= 0
if 8[jJ(1]=1 then baris = baris + 2
then baris baris + I kolom= 0
if8[j][2]=1 then kolom= kolom + 8
if BU][3] I then kolom kolom + 4
if B[j][4Fl then kolom = kolom + 2 ifB[mS]=l then kolom= kolom + 1
ifj=l then cc= SBoxl[baris kolom)
2 then cc SBox2[baris kolomJ
then cc= SBox3[baris kolomJ if j=4 then cc = SBox4[baris kolomJ
i[=S then cc SBox5[baris kolomJ
then cc= SBox6[baris kolom] if=7 then cc= SBox7[baris kolom]
then cc SBox8[baris
for bl to 4 do C[j][kJ = bindigit[cc][k] end
[ menggabungkan CIC2 C8 ) n~ 0
for j=1 to 8 do begin
for k=1 to 4 do begin n n + 1
C_All[nJ end
end
( permutasi P J for j=l to 32 do F _R_K[j] ~ C_AlI[P[jJl (Li = R(i-l) J
then
else R[i][jj ~ ]
end
write(ERi ) for to 48 do write(E_Ri[jJ) writeln write(Ki ) for j=1 to 48 do write(Ki[i][j]) writeln
write(XOR ) for j=l to 48 do write(E_XOR_K[j]) writeln
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
142 143
Pengantar IImu Kriptografi
writeCsbo ) for j=1 to 32 do write(C_All[j]) writeln
write(frk ) for j=1 to 32 do write(F_R_K[jJ) writeln write(Ri ) for i= 1 to 32 do write(Rfill il) writeln readln
end
for j=1 to 32 do R16L16il 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] ~ xOi+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 818283bull 88 masing-masing 6 bit J n= 0
for j= 1 to 8 do begin
for k= 1 to 6 do begin
n= n + 1
8[j)[k] ~ E_XOR_K[n] end
end
[ menghitung ClC2 C8 dengan kotak-S1 for j=1 to 8 do begin
baris = 0
Algoritma Kriptograf Modern
if 8[j][ 1]=1 then baris = baris + 2
if B[j][6J=I then baris baris + 1
kolom= 0
if B[jJ[2J=I then kolom = kolom + 8 if 8[j][3J=I then kolom = kolom + 4
if B[j][ 4J=1 then kolom = kolom + 2
ifB[j][5]=l then kolom= kolom + 1
if j=1 then c SBoxI[baris kolom]
ifj=2 then cc= SBox2[baris kolom]
then cc SBox3[baris kolom]
ifj=4 then cc= SBox4[baris kolom]
then cc SBox5[baris kolom]
if j=6 then cc ~ SBox6[baris kolom]
ifj=7 then cc= SBox7[baris kolom]
if j=8 then cc SBox8[baris kolom]
for bl to 4 do C[j][kJ = bindigit[cc](kJ
end
[ menggabungkan C1C2 CB J n 7 0
for j=1 to 8 do begin
for k=l to 4 do begin
n = n + 1
C_Allln] end
end
I permutasi P I for j=l to 32 do F_R_K[j] =
[Li R(i-I)]
for j~1 to 32 do L[iHj] R[i-I)[j]
himng Ri = L(i-I) XOR LR_K J
for i=1 to 32 do begin
ifL[i-IHj) = F_R_K[j) then
= 0
else =
end
write(ERi ) for j=1 to 48 do write(E_Ri[j]) writeln
writeCKi ) for to 48 do write(Ki[iJ[j]) writeln
write(XOR ) for j=1 to 48 do write(E_XOR_K[iJ) writeln
write(sbo ) for =1 to 32 do write(C_All[j]) writeln
write(frk ) for j=l to 32 do writeCCR_K[jJ) writeln
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)
144 145 Penganfar Ilmu Kripfografi
writeCRi ) for [032 do writeln
readln
end
for j=l [032 do R16L16[jJ=
for j= 1 to 32 do R16L16[j+32]= L[ 16][j]
for )=1 to 64 do end
64 TRIPLE DATA ENCRYPTION STANDARD (3DES)
3DES euma mempunyai perbedaan keeil dengan DES 3DES lebih aman dibanding DES merupakan pengembangan daTi algoritma DES 3DES mempunyai kunei yang lebih panjang (3 x dad DES) Coba perhatikan gam bar di bawah ini
Plaintext Key 2 Key j
Algoritma Kriptografi Modern
Contoh
Diberikan tiga kunei
Kl = 0x260bI52f31b51e68
K2 Ox321poundod61a7731558
K3 Ox519b7331bfl04ee3
Dan teks-asli P = Ox403da8a295d3fed9
16 putaran kunci yang eDeok diberikan Kl K2 dan K3 Untuk melakukan perhitungan eoba lihat di bawah ini
Putaran Kl OOOeed9158e9
2 588490792e94 3 54882eb9409b 4 a2aJ06077207 5 280e26b621e4 6 e03038a08be7 7 84867056a693 8 e65a 127 pound0549
9 2443236696a6 10 a311155eOdeb 11 Od02dl0ed859 12 1750b843f570 13 geOl eOa98d28 14 I a4aOdc85e 16 IS 0931Oc5d42bc 16 53248c80ee34
K2 5alee4b60e98 710e318334e6 e5a8b4ee83a5 96a696124ecf 7e16225e9191 ea906e836569 88e25e6abbOO 245b3af0453e 76d38087dd44 1a915708a7poundO 2d405frlee05 2741ac4a469a 9a09b19d710d 9d2a39a252eO 87368edOab27 30258f25c11 d
K3 03e4ee7e63e8 8486dd46ae65 575a226a8dde aabgeOO9d59b 98664[413421 615718ea496e 449ge580dbge 93e853d116b1 ee4a 1 fa9f254 27b30c31e6a6 Oalee3geOe87 rl68788e62d5 84e78833e3c1 521 fl7b28503 6db841ee2706 c9313e0591 e3
~ ~
Key 1
________----l Enkripsi
Plaintx Key 1 Key 2
(J r Enco~lon (J (J
Deskripsi
Gambar 614 Proses 30[5 dengon
SU Ciphertext
Ky3 dJ DES
EncryPtlonl
Kunci
Pada gambar di atas terdapat 3 kunei yaitu Kl K2 K3 Proses kerja dari 3DES Kl berfungsi unruk enkripsi K2 untuk dekripsi dan K3 untuk enkripsi atau juga dikenal dengan mode Encrypt Descrypt Encrypt
Tahap pertama Tahap kedua Tahap ketig~
Dekripsi
keempat kelima akhir
EKI = Ox7a39786f7ba32349 DK2 =Ox9c60f85369113aea EK3 Oxe22ae33494beb930 C (teks-kode)
DK3 = Ox9c60f85369113aea EK2 = Ox7a39786f7ba32349 DKI Ox403da8a295d3fed9 P (teks-asli)