View
224
Download
0
Category
Preview:
Citation preview
Perancangan Kriptografi Block Cipher Berbasis pada
Garis Pertumbuhan dan Pita Pertumbuhan
Cangkang Kerang
Artikel Ilmiah
Peneliti :
Handri Yonatan Santoso (672009089)
Hindriyanto Dwi Purnomo, S.T., MIT., Ph.D.
Alz Danny Wowor, S.Si., M.Cs.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Mei 2015
i
Perancangan Kriptografi Block Cipher Berbasis pada
Garis Pertumbuhan dan Pita Pertumbuhan
Cangkang Kerang
Artikel Ilmiah
Diajukan kepada
Fakultas Teknologi Informasi
Untuk memperoleh gelar Sarjana Komputer
Peneliti :
Handri Yonatan Santoso (672009089)
Hindriyanto Dwi Purnomo, S.T., MIT., Ph.D.
Alz Danny Wowor, S.Si., M.Cs.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Mei 2015
ii
iii
iv
v
vi
vii
viii
Perancangan Kriptografi Block Cipher Berbasis pada
Garis Pertumbuhan dan Pita Pertumbuhan Cangkang Kerang
1Handri Yonatan Santoso, 2Hindriyanto Dwi Purnomo, 3Alz Danny Wowor
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Jl. Diponegoro 52-60, Salatiga 50771, Indonesia
Email: 1672009089@student.uksw.edu, 2hindriyanto.purnomo@staff.uksw.edu, 3alzdanny.wowor@staff.uksw.edu
Abstract
Block cipher algorithm, a modern cryptography that many of it have made, but some of its
has broken by cryptanalysis attacks. It is important to make new block cipher algorithms
to change the old algorithms also to improve the message’s security. As new block cipher
design, Garis Pertumbuhan and Pita Pertumbuhan Cangkang Kerang (Clamshell’s
Growth Lines and Bands) or GPCK has a Swap Box—the swap rules of blocks key. GPCK
is a symmetric key algorithm of a 64-bit block that have good random value on encryption
process. The result of the research showed that GPCK’s design can successfully be a
cryptosystem and can used as methodology reference to design new symmetric key
cryptography.
Keywords: Block Cipher, Garis and Pita Pertumbuhan Cangkang Kerang, Cryptography,
Swap Box, Symmetric Key.
Abstrak
Algoritma cipher blok, sebuah kriptografi moderen yang sudah banyak dibuat tetapi
beberapa di antaranya sudah terpecahkan oleh serangan kriptanalisis. Membuat algoritma
cipher blok adalah penting untuk menggantikan algoritma yang lama juga untuk
memperbaiki keamanan pesan. Sebagai desain cipher blok baru, Garis Pertumbuhan dan
Pita Petumbuhan Cangkang Kerang (GPCK) mempunyai Swap Box, yaitu aturan
pertukaran blok kunci. GPCK adalah 64-bit blok algoritma kunci simetris yang mempunyai
nilai keacakan yang baik pada proses enkripsi. Hasil penelitian menunjukkan bahwa desain
GPCK berhasil menjadi sebuah kriptosistem dan dapat digunakan sebagai acuan
metodologi dalam merancang kriptografi kunci simetris.
Kata Kunci : Cipher Blok, Garis dan Pita Pertumbuhan Cangkang Kerang, Kriptografi,
Swap Box, Kunci Simetris.
1 Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi Universitas Kristen
Satya Wacana, Salatiga. 2 Staff pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana, Salatiga. 3 Staff pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana, Salatiga.
1
1. Pendahuluan
Seiring dengan perkembangan perangkat elektronik dan yang terus berkala,
maka harus diiringi pula dengan perkembangan keamanan data karena data digital
banyak dikirim dan dihasilkan dari perangkat-perangkat elektronik. Banyak terjadi
kasus penyadapan data, pencurian data, dan pembobolan rekening karena salah
satunya disebabkan oleh kurangnya keamanan data yang dimiliki. Kriptografi
diciptakan sebagai salah satu cara untuk mengamankan data. Algoritma block
cipher merupakan kriptografi moderen yang telah diciptakan cukup banyak, namun
ada di antaranya yang sudah terpecahkan oleh kriptanalis. Oleh karena itu, perlu
adanya modifikasi algoritma atau perancangan algoritma baru sebagai pengganti
algoritma kriptografi yang sudah terbongkar keamanannya. Hal tersebut supaya
mencegah terjadinya penggunaan kembali algoritma yang sudah pecah untuk
pengamanan data. Serangan terhadap teknik kriptografi yang ada, dilakukan para
kriptanalisis pada dasarnya adalah untuk memecahkan atau membongkar keamanan
algoritma kriptografi tersebut, yang selanjutnya digunakan untuk usaha mengupas
data tersandi tanpa mengetahui atau menggunakan kunci.
Oleh sebab itu, melihat dari data digital yang banyak dikirimkan dan
mengingat bahwa aspek keamanan data merupakan salah satu faktor penting dalam
melindungi pertukaran data dari orang-orang yang tidak pada ruang lingkupnya,
maka dalam penelitian ini dirancang kriptografi baru dari block cipher berbasis
pada Garis Pertumbuhan dan Pita Pertumbuhan Cangkang Kerang.
Tujuan dari penelitian ini adalah untuk menghasilkan sebuah teknik
kriptografi baru dan menghasilkan sebuah metodologi yang dapat digunakan dalam
sebuah penelitian kriptografi simetris. Adapun manfaat dari penelitian yang dibuat
diharapkan dapat menjawab permasalahan dari kriptografi standar dan menjadi
acuan metodologi dalam merancang kriptografi kunci simetris baru khususnya pada
block cipher.
2. Tinjauan Pustaka
Penelitian terdahulu dan dasar teori akan dibahas pada bagian ini. Penelitian
terdahulu membahas tentang penelitian yang sudah dilakukan sebelumnya, yang
kemudian dapat digunakan sebagai pembanding dan atau sebagai acuan pada
penelitian ini. Penelitian terdahulu yang pertama berjudul “Tweakable Block
Ciphers” [1], menjelaskan bahwa kriptografi yang diusulkan mempunyai input
ketiga selain pesan dan kunci, yaitu “tweak”. Tweak digunakan untuk lebih
mengacak input pada enkripsinya dan melayani banyak kegunaan sama yang vektor
inisialisasi lakukan untuk mode CBC atau pada mode OCB, hasil penelitian tersebut
mengusulkan bahwa rancangan mudah untuk dirancang dan biaya tambahan
pembuatan adalah kecil. Penelitian ini digunakan sebagai acuan dalam merancang
kriptografi, dimana kriptografi yang dirancang sederhana namun yang
membedakan adalah alur pita pertumbuhan dan garis pertumbuhan pada cangkang
kerang digunakan untuk proses enkripsi dan dekripsi.
2
Penelitian kedua dengan judul “Kriptografi Kunci Simetris Dengan
Menggunakan Algoritma Crypton” [2], menjelaskan bahwa semakin kompleks
metode pengacakan yang digunakan maka akan semakin sulit untuk membongkar
pesan yang terenkripsi ke bentuk aslinya dengan syarat kunci atau private key tidak
boleh dipublikasikan kepada umum. Berdasarkan pernyataan tersebut maka
dirancang Swap Box pada perancangan ini supaya dapat lebih mengacak plainteks
dengan kunci yang diinputkan.
Penelitian ketiga, “Advanced Encryption Standard” [3], menjelaskan bahwa
Advanced Encryption Standard (AES) adalah standard terkini untuk enkripsi kunci
rahasia menggantikan DES. Algoritma AES menggunakan kombinasi operasi
XOR, subtitusi oktet dengan S-box, kolom dan baris rotasi-rotasi, dan MixColumn.
Algoritma sukses diterapkan dan mampu berjalan di sejumlah waktu yang layak
pada komputer biasa. Selanjutnya, AES akan dijadikan pembanding perancangan
karena AES menjadi standar pengamanan informasi di Amerika. Algoritma AES
yang digunakan sebagai pembanding yaitu AES-128.
Kemudian penelitian yang keempat, “Perancangan Kriptografi Block Cipher
Berbasis pada Alur Clamshell’s Growth Rings” [4], perancangan kriptografi yang
dibuat sebanyak 8 putaran proses dan berukuran 64-bit dimana pada proses
regenerasi plainteksnya menggunakan alur Clamshell’s Growth Rings. Penelitian
ini dipakai sebagai dasar untuk melanjutkan perancangan kriptografi garis
petumbuhan dan pita petumbuhan cangkang kerang.
Selanjutnya akan dibahas dasar-dasar teori yang digunakan sebagai dasar
untuk merancang kriptografi dalam penelitian ini. Kriptografi adalah ilmu yang
mempelajari teknik-teknik yang berhubungan dengan aspek keamanan informasi
seperti kerahasiaan, integritas data, dan otentikasi [5].
Block cipher atau cipher blok digolongkan sebagai kriptografi moderen. Input
dan output dari algoritma block cipher berupa blok dan setiap blok terdiri dari
beberapa bit (1 blok terdiri dari 64-bit atau 128-bit) [6]. Block cipher juga
merupakan algoritma kunci simetri atau kriptografi kunci privat, dimana kunci
untuk enkripsi sama dengan kunci untuk dekripsi [7]. Secara umum block cipher
dapat ditunjukkan pada Gambar 1.
Gambar 1 Skema Proses Enkripsi-Dekripsi Pada Block Cipher [7]
3
Misalkan blok plainteks (P) yang berukuran n bit
npppP ,,, 21 (1)
Blok cipherteks (C) maka blok C adalah
ncccC ,,, 21 (2)
Kunci (K) maka kunci adalah
nkkkK ,,, 21 (3)
Sehingga proses Enkripsi adalah
CPEk (4)
Proses dekripsi adalah
PCDk (C) = P (5)
Enkripsi dilakukan terhadap blok bit plainteks menggunakan bit-bit kunci (yang
ukurannya sama dengan ukuran blok plainteks). Algoritma enkripsi menghasilkan
blok cipherteks yang sama dengan blok plainteks. Dekripsi dilakukan dengan cara
yang serupa seperti enkripsi [7].
Garis Pertumbuhan dan Pita Pertumbuhan Cangkang Kerang (GPCK), pada
cangkang kelas bivalvia tampak garis konsenstris yang sejajar. Garis tersebut
adalah garis pertumbuhan yang menunjukkan masa pertumbuhan pada kerang baik
itu pertumbuhan lamban atau tidak ada pertumbuhan [8].
Gambar 2 Kerang Bivalvia [9]
Pada Gambar 2, garis pertumbuhan berselang-seling dengan pita pertumbuhan yang
menunjukkan pertumbuhan cepat. Semakin banyak garis pertumbuhan dan pita
pertumbuhan, maka semakin tua umur kerang tersebut. Dengan mengikuti garis
pertumbuhan dan pita pertumbuhan maka dibuatlah proses enkripsi dan dekripsi
dari kedua hal tersebut. Kriptografi yang dirancang merupakan algoritma kunci
simetris dengan Swap Box, yaitu sekumpulan tabel aturan swap (pertukaran) pada
kolom dan baris blok untuk proses meregenerasi kunci.
Operasi biner yang sering digunakan dalam cipher yang beroperasi dalam
mode bit adalah XOR atau exclusive-or [7].
4
Operator XOR dioperasikan pada dua bit dengan aturan sebagai berikut.
0 0 = 0
0 1 = 1
1 0 = 1
1 1 = 0
Sistem kriptografi (cryptosystem) adalah himpunan yang terdiri dari algoritma
kriptografi, semua plainteks dan cipherteks yang mungkin, dan kunci [7]. Sebuah
kriptografi dapat dikatakan sebagai sebuah sistem kriptografi jika memenuhi lima-
tuple (five-tuple) (P, C, K, E, D) yang memenuhi kondisi [10]:
1. 𝑷 adalah himpunan berhingga dari plainteks,
2. 𝑪 adalah himpunan berhingga dari cipherteks,
3. 𝑲 merupakan ruang kunci (keyspace), adalah himpunan berhingga dari
kunci,
4. Untuk setiap k K, terdapat aturan enkripsi ke E dan berkorespodensi
dengan aturan dekripsi kd D. Setiap ℯ𝑘 ∶ P⟶C dan 𝑑𝑘 ∶ C⟶P adalah
fungsi sedemikian hingga xxed kk untuk setiap plainteks x P.
Lebih lanjut, dasar teori pada pengujian dari perancangan kriptografi ini
menggunakan nilai keacakan dan diferensiasi data. Nilai keacakan digunakan untuk
mencari tahu seberapa besar nilai dari algoritma kriptografi yang dirancang mampu
untuk mengacak plainteks yang diinputkan [11]. Untuk mencari nilai keacakan
diperoleh dari:
𝑌𝑖 =𝑝𝑖−𝑐𝑖
𝑝𝑖 (6)
Dimana nilai acak Yi untuk tiap karakter diperoleh dari perbandingan antara selisih
plainteks pi dengan cipherteks ci terhadap plainteks pi. Berdasarkan persamaan 1
maka untuk mencari nilai keacakan menggunakan rumus:
𝑌�̅� = ∑𝑌𝑖
𝑛
𝑛=8
𝑖=0 (7)
Diferensiasi data adalah perbandingan selisih antara dua titik. Dalam kalkulus,
metode ini sering disebut sebagai turunan atau kemiringan dari data. Jika diberikan
kumpulan data ((x1,y1), (x2,y2), (x3,y3), …, (xn,yn)) dengan syarat bahwa xi < xi+1
dimana i = 1…n. Data-data tersebut dapat divisualisasikan ke dalam koordinat
Cartesius untuk setiap x sebagai variabel bebas dan y atau kadang ditulis sebagai
f(x) sebagai variabel tak bebas. Untuk menentukan diferensiasi data pada dua titik
maka persamaan yang dapat dibentuk sebagai berikut
Dy
Dx=
(yb - ya )
(xa - xb ) (8)
dengan (xa, ya) sebagai titik pertama, dan titik berikutnya adalah (xb, yb).
5
Apabila terdapat n data maka dapat ditetukan rata-rata dari diferensiasi data (Rataan
diferensiasi (Rd)) menggunakan Persamaan (9).
(9)
3. Metode Penelitian
Pada bagian ini menjelaskan langkah-langkah penelitian dan rancangan
umum dari kriptografi yang dirancang. Langkah-langkah penelitian dalam
menyelesaikan kriptografi berbasis pada Garis Pertumbuhan dan Pita Pertumbuhan
Cangkang Kerang ditunjukkan pada Gambar 3, hasil rancangan nantinya akan
dilakukan dengan lima-tuple Stinson, dan tiap langkah penelitian dijelaskan sebagai
berikut.
Gambar 3 Langkah Penelitian
Langkah 1: Identifikasi Masalah dan Perumusan Masalah. Mengidentifikasi
masalah yang kaitannya dengan kriptografi block cipher. Menguraikan dan
menjelaskan masalah yang diambil kemudian merumuskan masalah tersebut ke
dalam batasan masalah. Batasan masalah yang diambil dalam perancangan
kriptografi block cipher berbasis pada Garis Pertumbuhan dan Pita Pertumbuhan
Cangkang Kerang, sebagai berikut:
1. Proses enkripsi-dekripsi pada perancangan ini menggunakan teks.
2. Jumlah karakter pada kunci dibatasi sebanyak 8 karakter.
3. Ukuran blok yang digunakan adalah 64-bit.
4. Penelitian hanya merancang kriptografi, tidak menguji kriptanalisis pada
rancangan yang dibuat.
6
Langkah 2: Kerangka Teori dan Pengumpulan Bahan. Masalah yang telah
dirumuskan kemudian diidentifikasikan variabel-variabel pentingnya dengan
masalah penelitian ke dalam kerangka teori.
Pengumpulan bahan-bahan yang terkait baik tinjauan pustaka dan landasan teori
dilakukan untuk referensi pembuatan kriptografi yang diteliti.
Langkah 3: Perancangan Kriptografi dan Perancangan Kunci. Membuat
rancangan untuk proses enkripsi dan dekripsi plainteks dengan mengikuti garis
pertumbuhan dan pita pertumbuhan pada cangkang kerang. Rancangan enkripsi dan
dekripsi kunci dibuat hingga hasil dari rancangan kunci yang didapat dikumpulkan
menjadi Swap Box.
Langkah 4: Pembuatan Kriptografi. Rancangan yang sudah jadi kemudian
dihitung manual secara matematis pada proses enkripsi plainteks dan teks kunci
yang digunakan.
Langkah 5: Uji Kriptosistem. Melakukan pengujian hasil perancangan
kriptografi yang dirancang terhadap kriptosistem.
Langkah 6: Penulisan Laporan. Hasil penelitian yang selesai dilakukan
kemudian ditulis menjadi ke dalam laporan penelitian.
Rancangan Umum Kriptografi, dijelaskan sebagai berikut. Perancangan
kriptografi block cipher berbasis pada Garis Pertumbuhan dan Pita Pertumbuhan
Cangkang Kerang dibuat sebanyak 10 Putaran, mencontoh dari algoritma AES yang
mempunyai jumlah putaran yang sama. Untuk proses rancangan secara umum
dijelaskan pada Gambar 4.
Gambar 4 Proses Umum Kriptografi Block Cipher GPCK
Plainteks dan kunci yang diinputkan terlebih dahulu akan ter-encode oleh ASCII
dan akan masuk pada putaran proses yang berjumlah 10 putaran. Setiap putaran
terdapat proses untuk plainteks (Proses Plainteks-i, i = 1, 2, …, 10) dan proses untuk
kunci (Proses Kunci-i, i = 1, 2, …, 10). Setiap hasil dari Proses Plainteks-i dan
Proses Kunci-i dihubungkan dengan proses XOR untuk setiap putaran ke i.
Rancangan Algoritma Garis dan Pita Pertumbuhan, dijelaskan sebagai
berikut. Rancangan kriptografi GPCK dibuat dalam 64-bit dalam 1 blok, sehingga
untuk setiap Proses Plainteks-i dan Proses Kunci-i beroperasi dengan 64-bit juga.
Kemudian dirancang alur garis pertumbuhan dan pita pertumbuhan untuk 64-bit
tersebut untuk dimasukkan dan ditempatkan pada Kotak 64-Bit, dimana tiap kotak
7
berisi 1 bit. Sehingga untuk satu kotak pada satu proses akan memerlukan satu kali
Masuk Bit dan juga satu kali Ambil Bit.
Dimisalkan plainteks = T, t = karakter plainteks, dan a = biner karakter, maka:
nttttT ,,,, 321 dimana Znn ,8|
;,,,, 83211 aaaat
;,,,, 16111092 aaaat
;,,,, 241918173 aaaat
⋮
nnnnn aaaat 8586878 ,,,, (10)
Plainteks yang diinputkan haruslah kelipatan dari 8. Jika tidak kelipatan 8, maka
akan dilakukan padding karakter, yaitu karakter dengan desimal 129.
𝐽𝑖𝑘𝑎 𝑛 ∤ 8; 𝑛 ∈ 𝑍+, maka
71;8|)(
,,,,,,,, 2121
kkn
ttttttT knnnn (11)
Kemudian dimisalkan kunci = Q, q = karakater kunci, dan b = biner karakter kunci,
maka:
nqqqqQ ,,,, 321 dimana Znn ,8|
;,,,, 83211 bbbbq
;,,,, 16111092 bbbbq
;,,,, 241918173 bbbbq
⋮
nnnnn bbbbq 8586878 ,,,, (12)
Sama dengan plainteks, jika kunci yang diinputkan tidak kelipatan 8 maka
dilakukan padding karakter, yaitu menggunakan karakter yang sama pada padding
untuk plainteks.
𝐽𝑖𝑘𝑎 𝑛 ∤ 8; 𝑛 ∈ 𝑍+, maka
71;8|)(
,,,,,,,, 2121
kkn
qqqqqqQ knnnn (13)
Pada Gambar 5 dan Gambar 6 secara berturut-turut menggambarkan Masuk
Bit dan Ambil Bit pada Kotak 64-Bit. Kotak tersebut dirancang untuk menjelaskan
bagaimana memasukkan 64-bit dan juga bagaimana mengambilnya.
Gambar 5 Masuk Bit Pita Pertumbuhan pada
Kotak 64-Bit
Gambar 6 Ambil Bit Garis Pertumbuhan pada
Kotak 64-Bit
8
Berdasarkan pada Gambar 5, dengan memodifikasi alur pita pertumbuhan
cangkang kerang maka setiap bit akan dimasukkan dengan arah yang dimulai dari
bawah – pada titik hitam, mengikuti tanda panah berwarna hitam secara diagonal
menuju ke atas.
Diambil 64-bit sebagai blok pertama adalah 6421 ,,, aaa , dengan mengikuti
proses Masuk Bit sesuai dengan Gambar 5 dan penempatan untuk setiap 8 bit diatur
berdasarkan kotak-kotak kecil tertentu. Pemasukan setiap bit diperjelas pada
Gambar 7.
a29 a37 a44 a50 a55 a59 a62 a64
a22 a30 a38 a45 a51 a56 a60 a63
a16 a23 a31 a39 a46 a52 a57 a61
a11 a17 a24 a32 a40 a47 a53 a58
a7 a12 a18 a25 a33 a41 a48 a54
a4 a8 a13 a19 a26 a34 a42 a49
a2 a5 a9 a14 a20 a27 a35 a43
a1 a3 a6 a10 a15 a21 a28 a36
a29 a37 a44 a50 a55 a59 a62 a64
a22 a30 a38 a45 a51 a56 a60 a63
a16 a23 a31 a39 a46 a52 a57 a61
a11 a17 a24 a32 a40 a47 a53 a58
a7 a12 a18 a25 a33 a41 a48 a54
a4 a8 a13 a19 a26 a34 a42 a49
a2 a5 a9 a14 a20 a27 a35 a43
a1 a3 a6 a10 a15 a21 a28 a36
Gambar 7 Penerapan Alur Pita Pertumbuhan
pada Kotak 64-Bit
Gambar 8 Penerapan Alur Garis
Pertumbuhan pada Kotak 64-Bit
Berdasarkan pada Masuk Bit pada kotak di Gambar 7, maka Ambil Bit dilakukan
dengan alur Garis Pertumbuhan pada Gambar 8, hal tersebut supaya membentuk
keacakan bit yang baik. Sebagai contoh, bila diambil mengikuti arah yang sudah
diberikan pada penjelasan sebelumnya dan pola warna pada Gambar 8, maka
diperoleh urutan bit berdasarkan karakter sebagai berikut.
29136101521288
364349545861,63647
25914202735426
485357606248135
1926,3441475256594
7121825334046513
55111724323945502
16233138442230371
,,,,,,,
,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
aaaaaaaat
aaaaaaaat
aaaaaaaat
aaaaaaaat
aaaaaaaat
aaaaaaaat
aaaaaaaat
aaaaaaaat
(14)
Persamaan (14) menunjukkan urutan Ambil Bit, dimana )12,,1( iti
adalah karakter baru yang sudah tersusun dari pengambilan. Bagian selanjutnya,
9
berdasarkan Masuk Bit dan Ambil Bit, dirancang algoritma yang berbasis pada
Garis Pertumbuhan dan Pita Pertumbuhan Cangkang Kerang.
4. Hasil dan Pembahasan
Pada bagian ini akan dijelaskan hasil dari perancangan kriptografi yang diteliti.
Penelitian ini melanjutkan penelitian yang telah dilakukan sebelumnya, yaitu
Perancangan Kriptografi Block Cipher Berbasis pada Clamshell’s Growth Rings.
Hasil rancangan kriptografi kemudian diuji sebagai sebuah kriptosistem dan akan
dibandingkan kriptogafi yang dirancang dengan AES-128.
Pengujian Rancangan Kriptografi, dijelaskan sebagai berikut. Untuk
menguji perancangan GPCK sebagai teknik kriptografi, terlebih dahulu dijelaskan
alur proses enkripsi dan dekripsi secara keseluruhan. Pada pembahasan sebelumnya
sudah dibahas, namun lebih lengkap proses enkripsi-dekripsi ditunjukkan pada
Gambar 7 dan Gambar 8. Lebih lanjut, proses enkripsi dan dekripsi akan diuji
dengan contoh teks plainteks dan kunci yang sudah diberikan.
Gambar 9 Rancangan Proses Enkripsi GPCK
Berdasarkan Gambar 9, secara keseluruhan dari kriptografi yang dirancang.
Terdapat 10 putaran proses untuk mengubah plainteks menjadi cipherteks. Pada
putaran proses plainteks, terdapat 2 (dua) proses, yaitu Masuk Bit, proses dimana
bit-bit plainteks dimasukkan ke dalam Kotak 64-Bit menggunakan pita
pertumbuhan, setiap proses putaran Masuk Bit mempunyai alur pita pertumbuhan
yang berbeda, kemudian Ambil Bit (GP), bit-bit yang telah dimasukkan pada
proses Masuk Bit kemudian diambil pada proses Ambil Bit menggunakan alur garis
pertumbuhan. Proses putaran kunci terdapat 3 (tiga) proses, yaitu Masuk Bit,
proses pemasukan bit-bit kunci ke dalam Kotak 64-Bit menggunakan alur pita
pertumbuhan yang selanjutnya akan masuk pada Swap Box, proses dimana bit-bit
10
kunci akan ditukar tiap blok kolomnya dengan kolom dan tiap blok baris dengan
baris mengikuti aturan yang telah dibuat, kemudian bit-bit tersebut akan masuk
pada Ambil Bit, proses pengambilan bit kunci menggunakan alur pita
pertumbuhan. Proses Masuk Bit dan Ambil Bit pada kunci mempunyai alur pita
pertumbuhan yang berbeda.
Plainteks (Pt) dan kunci (K) yang ter-encode akan masuk pada putaran proses
masing-masing. Hasil dari proses Putaran 1 untuk plainteks adalah P1. Proses serupa
juga terjadi pada bit-bit kunci dimana hasil dari proses Putaran 1 untuk kunci adalah
K1. Kemudian P1 diproses XOR dengan K1 menghasilkan bit-bit baru yang akan
menjadi inputan pada Putaran 2 dan K1 akan menjadi inputan juga pada Putaran 2
untuk kunci. Hasil dari Putaran 2 adalah P2 dan K2, keduanya kemudian akan
diproses XOR kembali dan menghasilkan bit-bit baru lagi yang akan diinput
kembali pada putaran-putaran plainteks dan kunci berikutnya sampai dengan
Putaran 10, dimana P10 akan diproses XOR dengan K10 dan menghasilkan
cipherteks (C) yang berupa deret bit.
Karena kriptografi block cipher berbasis pada GPCK merupakan algoritma
kunci simetris, untuk proses dekripsi algoritma ini merupakan proses kebalikan dari
proses enkripsi yang ditunjukkan pada Gambar 10.
Gambar 10 Rancangan Proses Dekripsi GPCK
Urutan bit C dan K10 akan diproses XOR terlebih dahulu, sehingga
menghasilkan P10. P10 dan K10 akan diproses pada proses balik putaran plainteks
dan kunci sampai pada proses Putaran 1 yang menghasilkan teks plainteks (Pt) dan
teks kunci (K) yang semula.
Untuk membuktikan proses enkripsi pada GPCK maka dilakukan
penghitungan secara manual. Pada proses enkripsi menggunakan contoh teks
“ALZDANNY” sebagai plainteks dan “KEEPCALM” sebagai kunci. Proses yang
dijelaskan dalam pembahasan ini adalah proses pada Putaran 3.
11
Plainteks “ALZDANNY” dan kunci “KEEPCALM” yang sudah ter-encode
menjadi biner adalah
A → 01000001
L → 01001100
Z → 01011010
D → 01000100
A → 01000001
N → 01001110
N → 01001110
Y → 01011001
K → 01001011
E → 01000101
E → 01000101
P → 01010000
C → 01000011
A → 01000001
L → 01001100
M → 01001101
Dengan mengikuti alur pita pertumbuhan dan garis pertumbuhan yang sudah
diberikan pada Gambar 5 dan Gambar 6 (berbeda arah pemasukan dan pengambilan
bit) pada plainteks dan kunci (untuk Masuk Bit dan Ambil Bit) serta meggunakan
Swap Box tertentu pada tiap putaran kunci, maka untuk Putaran 1 menghasilkan
P1 = “01000010 11000001 01100100 00010110 11001010 10011001 10111000
01010000”
K1 = “01101100 10011001 11000011 00000110 01000100 00010001 00001000
00011111”
= “00101110 01011000 10100111 0001000 10001110 10001000 10110000
01001111” = “172C53888E88B04F”
dan pada Putaran 2 menghasilkan
P2 = “10000001 00011001 01000001 10101010 10111011 10111001 00010010
10000110”
K2 = “00010100 10000100 00110110 01111010 00000000 10000001 10100011
11011010”
= “10010101 10011101 01110111 11010000 10111011 00111000 10110001
01011100” = “959D77D0BB38B15C”
12
Untuk Putaran 3 untuk Masuk Bit dan Ambil Bit (GP) mengikuti alur yang sama
dengan pada Gambar 5 dan 6 serta mengikuti proses pemasukan dan pengambilan
bit pada Gambar 7 dan 8, maka untuk Putaran 3 plainteks menghasilkan “10110011
01101000 10111110 01100011 11111000 01011100 00110111 10001010”.
Bit-bit K2 selanjutnya menjadi inputan pada Putaran 3 kunci, bit-bit tersebut
akan diregenerasi pada proses Masuk Bit, Swap Box, dan Ambil Bit untuk Putaran
3. Pemasukan bit ditunjukkan pada arah panah yang dimulai dari atas pada kolom
dan baris pertama sampai pada kolom dan baris kedelapan secara diagonal
menurun. Pada Gambar 11 dan Gambar 12, ditunjukkan Masuk Bit kunci
menggunakan alur pita pertumbuhan pada Putaran 3.
b1 b3 b6 b10 b15 b21 b28 b36
b2 b5 b9 b14 b20 b27 b35 b43
b4 b8 b13 b19 b26 b34 b42 b49
b7 b12 b18 b25 b33 b41 b48 b54
b11 b17 b24 b32 b40 b47 b53 b58
b16 b23 b31 b39 b46 b52 b57 b61
b22 b30 b38 b45 b51 b56 b60 b63
b29 b37 b44 b50 b55 b59 b62 b64
Gambar 13 Alur Masuk Bit Kunci pada
Putaran 3
Gambar 14 Penerapan Alur Masuk Bit Kunci
pada Putaran 3
Bit-bit kunci yang sudah ditempatkan ke dalam Kotak 64-Bit kemudian dikenakan
proses Swap Box.
Gambar 15 Proses Swap Box Pada Putaran 3
Seperti yang ditunjukkan pada Gambar 14 dan mengikuti aturan Swap Box Putaran
3 yang terdapat pada Gambar 15, maka Swap Coloumn dan Swap Row pada
Putaran 3.
13
b6 b10 b15 b21 b28 b36 b1 b3
b9 b14 b20 b27 b35 b43 b2 b5
b13 b19 b26 b34 b42 b49 b4 b8
b18 b25 b33 b41 b48 b54 b7 b12
b24 b32 b40 b47 b53 b58 b11 b17
b31 b39 b46 b52 b57 b61 b16 b23
b38 b45 b51 b56 b60 b63 b22 b30
b44 b50 b55 b59 b62 b64 b29 b37
b38 b45 b51 b56 b60 b63 b22 b30
b44 b50 b55 b59 b62 b64 b29 b37
b24 b32 b40 b47 b53 b58 b11 b17
b9 b14 b20 b27 b35 b43 b2 b5
b31 b39 b46 b52 b57 b61 b16 b23
b6 b10 b15 b21 b28 b36 b1 b3
b18 b25 b33 b41 b48 b54 b7 b12
b13 b19 b26 b34 b42 b49 b4 b8
Gambar 16 Hasil Swap Column Kunci Gambar 17 Hasil Swap Row Kunci
Setelah proses Swap Box kemudian dilakukan pengambilan bit kunci menggunakan
alur pita pertumbuhan yang ditunjukkan pada Gambar 18 dan Gambar 19.
b38 b45 b51 b56 b60 b63 b22 b30
b44 b50 b55 b59 b62 b64 b29 b37
b24 b32 b40 b47 b53 b58 b11 b17
b9 b14 b20 b27 b35 b43 b2 b5
b31 b39 b46 b52 b57 b61 b16 b23
b6 b10 b15 b21 b28 b36 b1 b3
b18 b25 b33 b41 b48 b54 b7 b12
b13 b19 b26 b34 b42 b49 b4 b8
Gambar 18 Alur Ambil Bit Kunci Pada
Putaran 3 Gambar 19 Penerapan Ambil Bit Kunci Pada
Putaran 3
Dengan mengikuti anak panah pada Gambar 18 maka proses Ambil Bit dimulai dari
kolom 8 sampai dengan kolom pertama secara vertikal maka pengambilan secara
berturut-turut adalah
14
131863192444388
192510391432,50457
26331546204055516
34412152274759565
4248,2857355362604
49543661435864633
4711621129222
81232351737301
,,,,,,,
,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
bbbbbbbbq
bbbbbbbbq
bbbbbbbbq
bbbbbbbbq
bbbbbbbbq
bbbbbbbbq
bbbbbbbbq
bbbbbbbbq
Sehingga biner yang dihasilkan untuk Putaran 3 kunci “00001000 11000001
10101001 10001110 10010010 11010001 00010001 00011100”. Proses XOR dari
P3 dan K3 menghasilkan biner “10111011 10101001 00010111 11101101
01101010 10001101 00100110 10010110” atau “BBA917ED6A8D2696”.
Hasil biner pada Putaran 3 akan diproses pada Putaran 4, Putaran 5, dan
terakhir pada Putaran 10, begitu juga dengan biner kunci pada Putaran 3 akan
diproses pada putaran selanjutnya mengikuti alur-alur yang didesain berbeda di tiap
proses putaran. Hasil proses plainteks dan kunci pada Putaran 10 menghasilkan
biner cipherteks “01100010 01000001 00001000 11000100 10010011 01010100
00011011 00000100” atau dalam heksadesimal “624108C493541B04” dan
ditunjukkan pada grafik Gambar 20.
Gambar 20 Grafik Hasil Enkripsi GPCK
Pada proses dekripsi, dilakukan dengan melakukan proses kebalikan dari
proses enkripsi. Dengan inputan cipherteks “11111001 00000000 01000100
00001011 11010101 01010100 11110010 00010111” dan dengan teks kunci
“KEEPCALM” maka dilakukan proses dekripsi, seperti yang ditunjukkan pada
Gambar 8 sehingga plainteks diperoleh kembali “ALZDANNY”. Pengujian ini
menunjukkan bahwa rancangan kriptografi dapat melakukan proses enkripsi dan
dekripsi, maka telah memenuhi dua dari lima-tuple Stinson untuk sebuah
kriptosistem.
0
50
100
150
200
250
1 2 3 4 5 6 7 8
Plainteks Cipherteks
15
Pengujian Kriptosistem, dijelaskan sebagai berikut. Kriptografi dikatakan
sebagai sebuah sistem kriptografi jika memenuhi five-tuple P,C, K, E, dan D [9].
Pada pembahasan sebelumnya telah dijelaskan bahwa perancangan kriptografi ini
telah memenuhi dua dari kelima syarat sebuah sistem kriptografi menurut Stinson
dan berikut akan ditunjukkan bahwa perancangan ini memenuhi kelima kondisi
tersebut. P adalah himpunan berhingga dari plainteks. Dalam perancangan ini
menggunakan 256 karakter dalam ASCII, himpunan plainteks pada Garis
Pertumbuhan dan Pita pertumbuhan adalah himpunan berhingga. C adalah
himpunan berhingga dari cipherteks. Cipherteks dihasilkan dalam elemen bit biner
(bilangan 0 dan 1) dan karena himpunan bilangan bit biner pada cipherteks hanya
{0,1} maka cipherteks adalah himpunan berhingga. K, keyspace atau ruang kunci
adalah himpunan berhingga dari kunci. Ruang kunci dalam perancangan ini adalah
256 karakter dalam ASCII. Sehingga ruang kunci merupakan himpunan yang
berhingga. E, enkripsi, dan D, dekripsi, setiap ek : P→C dan dk : C→P adalah fungsi
sedemikian sehingga dk(ek(x)) = x, untuk setiap plainteks x∊P. Pembahasan
sebelumnya telah membahas proses enkripsi dan dekripsi, sehingga telah
memenuhi tuple E dan D. Karena memenuhi kelima kondisi maka Garis
Pertumbuhan dan Pita Pertumbuhan Cangkang Kerang merupakan sebuah sistem
kriptografi.
Pengujian Nilai Keacakan dan Diferensiasi Data, dijelaskan sebagai berikut.
Pengujian nilai keacakan dilakukan untuk melihat seberapa baik rancangan
kriptografi mengacak nilai plainteks. Untuk dapat mengetahui baik atau tidaknya
maka diperlukan kriptografi lain sebagai pembanding, oleh karena itu dipilih AES-
128 [12].
Nilai keacakan dihitung berdasarkan Persamaan (6) dan nilai deferensiasi pada
Persamaan (9) yang telah diberikan pada pembahasan sebelumnya. Nilai keacakan
dilihat pada bilangan cipherteks yang dihasilkan oleh algoritma tertentu. Penelitian
ini tidak membandingkan ukuran blok dengan AES. Nilai keacakan didapat dari
selisih perbandingan plainteks dengan cipherteks terhadap plainteks, karena selisih
pada pembilang pada Persamaan (6) berarti menunjukkan jarak dari plainteks,
walaupun dirasiokan terhadap plainteks kembali. Kemungkinan yang muncul pada
nilai keacakan dapat bernilai positif atau negatif. Bernilai negatif berarti selisih
perbandingan nilai cipherteks lebih besar dari nilai plainteks, bernilai positif berarti
nilai plainteks lebih besar dari nilai cipherteks.
Penggunaan jarak dapat dipandang sebagai suatu keacakan apabila brute force
attack digunakan sebagai standar serangan kriptanalisis untuk membobol algoritma
yang ada. Brute force attack dilakukan dengan mencoba semua kemungkinan kunci
atau angka untuk menemukan relasi yang berkorespondensi satu-ke-satu (one-to-
one) antara plainteks dan cipherteks. Setiap plainteks yang diinputkan sudah pasti
diketahui desimalnya, kriptanalis akan mencoba setiap bilangan yang lebih besar
atau lebih kecil dari bilangan plainteks dan akan membesar atau mengecil secara
terus-menerus. Sebagai contoh, plainteks 90 (karakter Z) kriptanalis akan
mencoba bilangan di bawah plainteks yaitu 89 dan diatas plainteks yaitu 91 secara
terus menerus sampai menemukan kecocokan, apabila semakin jauh nilai
16
cipherteks dari plainteks maka akan memerlukan banyak waktu dan proses untuk
menemukan relasi dengan cipherteks atau bahkan menemukan plainteks.
Digunakan plainteks “Send 50kg NZT49 @10pm, #CentP” dan kunci
“KiP1S3f”. Plainteks dipilih dengan variasi abjad, angka, dan simbol. Hal ini agar
inputan akan bervariasi terutama untuk nilai ASCII yang diperoleh. Hasil pengujian
ditunjukkan dengan grafik pada Gambar 21.
Gambar 21 Grafik Hasil Perbandingan GPCK dengan AES-128
Berdasarkan Persamaan (6), dapat diperoleh nilai keacakan sumbu-y untuk
GPCK sebesar -1,0576 dan untuk AES-128 sebesar -1,0284. Hal tersebut
menunjukkan bahwa pengacakan pada GPCK memiliki nilai cipherteks lebih besar
dari plainteks yang diinputkan. Diperoleh 0,0276 perbedaan nilai keacakan dari
kriptografi yang dirancang dengan AES-128. Dari Persamaan (9) diperoleh bahwa
diferensiasi data untuk GPCK sebesar -0,9032 dan untuk AES-128 sebesar -2,3225.
Pengujian selanjutnya adalah melakukan proses enkripsi untuk plainteks yang
sama. Pemilihan plainteks yang sama bertujuan untuk melihat seberapa baik untuk
rancangan kriptografi GPCK mengacak plainteks. Sama dengan pengujian
sebelumnya, tetap dibandingkan dengan AES-128.
Plainteks yang dipilih adalah plainteks “ffffffffffffffff” dan kunci “KiP1S3f”.
Penggunaan karakter f karena karakter tersebut mempunyai bit yang simetris
“01100110”. Sifat simetris ini membuat apabila ditempatkan dalam kotak 64-bit
akan selalu simetris dibaca dari kiri ke kanan atau sebaliknya dari atas ke bawah.
Hasil dari pengujian diberikan pada grafik Gambar 22.
0
50
100
150
200
250
300
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Plainteks GPCK AES-128
17
Gambar 22. Grafik Hasil Perbandingan GPCK dengan AES-128
Menggunakan Plainteks Karakter Sama
Berdasarkan grafik pada Gambar 22, nampak AES-128 sangat konsisten untuk
mengacak plainteks dengan inputan yang sama. Hasil ini nampak pada dapat dilihat
bahwa dari pengujian GPCK menggunakan input dengan karakter yang diberikan,
menghasilkan grafik yang berpola ulang untuk kelipatan 8 karakter. Hal tersebut
menjelaskan bahwa GPCK mampu menahan 8 karakter yang sama dengan asumsi
tidak dipetakan pada karaker yang sama. Nilai keacakan pada pengujian ini untuk
GPCK sebesar -0,663 dan AES-128 sebesar -0,1881. Nilai diferensiasi data yang
dihasilkan GPCK sebesar 3,8 dan AES-128 sebesar -10,467.
Pengujian Avalanche Effect dan Pengujian Ekstrim, dijelaskan sebagai
berikut. Pengujian-pengujian yang sebelumnya lebih pada aluar dan proses enkripsi
dan dekripsi. Bagian ini akan ditunjukkan kalau rancangan ini mempunyai
Avalanche Effect (AE). Pengujian ini biasanya dilakukan untuk kriptografi block
cipher atau kriptografi berbasis fungsi Hash. Pada kriptografi tersebut apabila sudah
mempunyai AE maka sudah dapat dikatakan dapat menahan serangan kriptanalisis
karena merumitkan dan menjadi tidak mungkin untuk pengujian secara statistika
dan juga menghilangkan hubungan korespodensi satu ke satu antara plainteks dan
cipherteks.
Selain menguji AE, rancangan ini juga dilakukan pengujian ekstrim yaitu
dengan memasukan plainteks dan kunci dengan bit 0. Dalam hal ini berarti akan
terdapat satu blok yang isinya terdiri dari bit 0, baik pada blok plainteks maupun
blok kunci. Pada rancangan ini apabila plainteks dan cipherteks seluruh bitnya 0,
maka diperoleh cipherteks “01000000 11110010 11011101 00001101 10101100
01100000 11010100 11100100” atau “40F2DD0DAC60D4E4”. Hasil ini
menujukkan bahwa kriptografi ini sangat baik sebagai rancangan sebagai sebuah
block cipher, karena pengujian ekstrim ini, terbukti dengan mengubah 1 buah bit
saja pada plainteks, dapat merubah seluruh cipherteks yang ada. Kekuatan ini
menujukkan bahwa kriptografi rancangan mempunyai AE yang baik.
0
50
100
150
200
250
300
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Plainteks GPCK AES-128
18
5. Simpulan
Berdasarkan pada pembahasan sebelumnya, perancangan kriptografi block
cipher berbasis pada Garis Pertumbuhan dan Pita Pertumbuhan Cangkang Kerang
dapat melakukan proses enkripsi dan dekripsi, dan memenuhi syarat 5-tuple dari
sebuah kriptosistem, sehingga dapat disebut sebagai sebuah kriptografi.
Dari hasil perbandingan tingkat nilai keacakan antara GPCK dengan AES-
128 diperoleh hasil bahwa rancangan kriptografi yang diteliti mempunyai nilai
keacakan sebesar 0,7536 dan AES-128 sebesar 1,0284. Hasil dari perbandingan
nilai keacakan keduanya adalah 0,3647. Diferensiasi data yang dimiliki pada GPCK
sebesar -1,0645 dan untuk AES-128 sebesar -2,3225.
Selain itu, perancangan kriptografi GPCK mampu digunakan sebagai
algoritma alternatif untuk mengamankan pesan dan mempunyai Avalanche Effect
yang baik serta berhasil mengacak plainteks dengan bit 0 menjadi cipherteks pada
pengujian ekstrim. Oleh karena itu, dapat dikatakan perancangan kriptografi ini
sebagai teknik kriptografi dan dapat dijadikan acuan metodologi dalam
menciptakan kriptografi simetris.
6. Daftar Pustaka
[1] Liskov, Moses., Ronald L. Rivest, & David Wagner. 2002. Tweakable
Block Ciphers. Lecture Notes in Computer Science. Volume 2442, pp.
31-46
[2] Dafid. 2006. Kriptografi Kunci Simetris Dengan Menggunakan
Algoritma Crypton. Jurnal Ilmiah STMIK GI MDP. Volume 2 Nomor 3
[3] Selent, Douglas. 2010. Advanced Encryption Standard. InSight: Rivier
Academic Journal. Volume 6, Number 2, Fall 2010
[4] Santoso, H.Y., Wowor, A.D., & Pakereng, Magdalena A.I. 2015.
Perancangan Kriptografi Block Cipher Berbasis pada Alur Clamshell’s
Growth Rings. Prociding SeTISI Universitas Kristen Maranatha. Volume
1, hal. 48-53
[5] Menezes, A.J., P.C. van Oorschot, & S.A. Vanstone. 1997. Handbook
of Applied Cryptography, CRC Press
[6] Ariyus, Dony. 2006. Kriptografi Keamanan Data dan Komunikasi.
Yogyakarta: Graha Ilmu
[7] Munir, Rinaldi, 2006. Kriptografi, Bandung: Informatika
[8] COA:: Conchologist of America, Inc., 1996, Classification of Mollusca,
[Online],
http://www.conchologistsofamerica.org/conchology/classes.asp (diakses
tanggal 12 November 2014)
[9] Wilson, Mark., 2015, Wooster’s Fossil of the Week: A lucinid bivalve
from the Middle Jurassic of southern Israel, [Online],
http://woostergeologists.scotblogs.wooster.edu/files/2015/01/F-
fimbriata-Solomon-Islands.jpg (diakses tanggal 20 Mei 2015)
19
[10] Stinson, D. R., 1995. Cryptography: Theory and Practice. CRC Press,
Boca Raton, London, Tokyo
[11] Liwandouw, V.B., & Wowor, A.D., 2015. Desain Algoritma Berbasis
Kubus Rubik Dalam Perancangan Kriptografi Simetris. Prociding
SeTISI Universitas Kristen Maranatha. Volume 1, hal. 42-47
[12] Project Nayuki, 2014, AES cipher internals in Excel, [Online],
http://www.nayuki.io/page/aes-cipher-internals-in-excel (diakses
tanggal 15 Januari 2015)
[13] Forouzan, Behrouz, A., 2008, Cryptography and Network Security, New
York: McGraw-Hill
Recommended