Perancangan Kriptografi Block Cipher dengan
Langkah Kuda
Artikel Ilmiah
Peneliti :
Duta Dairo Bili (672010108)
Magdalena A. Ineke Pakereng, M.Kom.
Alz Danny Wowor, S.Si., M.Cs.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Mei 2015
Perancangan Kriptografi Block Cipher dengan
Langkah Kuda
Artikel Ilmiah
Diajukan kepada
Fakultas Teknologi Informasi
Untuk memperoleh Gelar Sarjana Komputer
Peneliti :
Duta Dairo Bili (672010108)
Magdalena A. Ineke Pakereng, M.Kom.
Alz Danny Wowor, S.Si., M.Cs.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Mei 2015
1
Perancangan Kriptografi Block Cipher dengan
Langkah Kuda
1)Duta Dairo Bili, 2)Magdalena A. Ineke Pakereng,
3)Alz Danny Wowor
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Jl. Diponegoro 52-60, Salatiga 50771, Indonesia
Email: 1) [email protected], 2) [email protected], 3)
Abstract
One way to maintain the security of data or information that is by using cryptographic
methods. This research article designing cryptographic block ciphers with steps running
horse and the horse steps street. The algorithm measures the horses run and step can
prove that this pattern could generate symmetric cryptography and can meet the five-tuple
(Five-tuple). This research compares the randomness and process value differentiation
between KS with AES-128. The comparison with the AES-128, draft horses move more
quickly based 0.94869906 ms.
Keywords: Block Cipher, Cryptography, Symmetric Key, Step horse.
Abstrak
Salah satu cara untuk menjaga keamanan data atau informasi yaitu dengan menggunakan
metode kriptografi. Tulisan penelitian ini merancang kriptografi blok cipher dengan
langkah kuda lari dan langkah kuda jalan. Algoritma langkah kuda lari dan langkah jalan
dapat membuktikan bahwa pola ini dapat menghasilkan kriptografi simetris dan dapat
memenuhi lima-tuple (Five-tuple). Penelitian ini dapat membandingkan proses keacakan
dan proses nilai diferensiasi antara KS dengan AES-128. Hasil perbandingan dengan AES-
128, rancangan berbasis langkah kuda lebih cepat 0.94869906 ms.
Kata Kunci: Cipher Blok, Kriptografi, Kunci Simetris, Langkah Kuda.
1) Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen
Satya Wacana
2) Staf Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana Salatiga.
2
1. Pendahuluan
Kriptografi sangat berhubungan dengan pengaman informasi, untuk itu menurut
terminologinya kriptografi merupakan ilmu dan seni untuk menjaga sistem pengaman
pesan untuk dikirim dari suatu tempat ke tempat yang lain. Keamanan dan kerahasiaan
dalam komunikasi data sangat diperlukan, sehingga dapat menjamin keamanan dan
kerahasiaan dalam berkomunikasi.
Algoritma kriptografi memiliki keunikan dengan karakter dan spesifikasi yang
berbeda-beda. Salah satunya adalah block cipher, algoritma ini melakukan enkripsi dan
dekripsi berdasarkan ukuran blok, yang biasanya ditentukan berdasarkan banyak karakter
atau banyak bit dari blok tersebut. Block cipher merupakan kriptografi yang banyak
digunakan sebagai teknik pengamanan di internet, sebagai contoh DES dan AES yang
menjadi standar keamanan untuk transfer data, transaksi keuangan, dan juga dalam
berkomunikasi. Selain itu juga teknik ini digunakan karena secara matematis tidak
memerlukan operasi yang kompleks dan algoritmanya lebih mudah untuk diimplementasi
diberbagai platform. Block cipher juga secara algoritma prosesnya memerlukan waktu dan
memori yang sedikit dibandingkan dengan kriptografi jenis yang lainnya [1].
Penelitian ini merancang kriptografi block cipher dengan menggunakan teknik
langkah kuda. Penggunaan langkah kuda yang dimaksud adalah langkah kuda jalan dan
juga langkah kuda lari. Keduanya langkah ini menghasilkan tapak yang unik dan berbeda,
oleh karena itu diadopsi dengan menempatkan bit yang sesuai dengan alur langkah kuda
dan menggabungkan dengan proses block cipher yang lain seperti subtitusi dan juga
transposisi.
Tujuan penelitian ini adalah dapat merancang algoritma langkah kuda lari dan
langkah kuda jalan yang kemudian digunakan dalam rancangan block cipher yang
selanjutnya diimplementasi menjadi sebuah aplikasi yang dapat digunakan secara otomatis
untuk melakukan proses enkripsi dan dekripsi.
2. Tinjauan Pustaka
Penelitian sebelumnya yang pertama adalah “Perancangan Kriptografi Kunci
Simetris Menggunakan Fungsi Bessel dan Fungsi Legendre”. Tulisan ini membahas
mengenai perancangan kriptografi simetris yang pada setiap prosesnya menggunakan
fungsi linier dan fungsi rasional yang dimana koefisien dari kudau fungsi tersbut
dibangkitkan menggunakan fungsi khusus yaitu fungsi Bessel dan fungsi Legendre.
Penelitian ini mampu mennghasilkan kunci dengan urutan bilangan desimal yang unik,
bahkan mapu menghasilkan bilangan irasional. Pembangkitan kunci ini menjadi kekuatan
dari karena hasil regenarasi dalam bilangan desimal. Regenerasi ini merupakan sesuatu
yang baru, karena sangat jarang kriptografi menggunakan kunci dari bilangan desimal[3].
Penenlitian ini dijadikan dasar terutama bagaiman membuat kripotgrafi simetris yang baru
berdasarkan regenerasi kunci, walaupun berbeda proses dalam meregenerasinya.
Penenlitian sebelumnya yang kedua dan digunakan sebagai acuan dalam merancang
kriptografi block cipher yang baru adalah penelitian dengan judul “Perancangan Algoritma
pada Kriptografi Block Cipher dengan Teknik Langkah Kuda Dalam Permainan Catur”.
Penelitian ini menggunakan teknik langkah kuda dalam permainan catur sebagai algoritma
untuk proses penempatan bit dan pengambilan bit dari kotak 64-bit. Penelitian ini
melakukan 4 putaran dimana setiap putaran melakukan proses untuk plainteks dan juga
3
proses kunci. Hasil dari kedua proses tersebut akan dilakukan proses XOR sehingga pada
putaran ke empat akan mendapatkan cipherteks. Berbagai pengujian dilakukan terutama
untuk membuktikan sebagai kriptosistem dengan lima-tuple (Five-tuple) dari Stinson [2].
Penelitian sebelumnya yang ketiga berjudul Advanced Encryption Standard (AES)
Implementation. Penelitian tersebut menggunakan algoritma AES dengan panjang bit
yakni 128 bit untuk diimplementasikan pada aplikasi menggunakan bahasa pemrograman
“C” sebagai pengamanan data berupa pesan singkat, penelitian tersebut dilakukan terhadap
berbagai pesan singkat yang telah dienkripsi menggunakan kunci yang berbeda serta
ukuran panjang kunci yang berbeda – beda, modifikasi dilakukan di dalam source code
untuk membuktikan bahwa pesan yang dienkripsi terbukti lebih aman dengan tingkatan
keamanan yang lebih tinggi serta lebih aman terhadap serangan dari pengguna yang tidak
bertanggung jawab [6].
Penelitian-penelitian tersebut menjadi acuan dalam membentuk ide untuk merancang
kriptografi block cipher, merancang kunci simetris dan menjadi acuan perbandingan waktu
dan memori algoritma langkah kuda sandelwood dengan algoritma AES-128. Perbedaan
penelitian terdahulu yaitu penelitian ini menggunakan teknik langkah kaki kuda
sandelwood sebagai kriptografi block cipher. Penelitian yang akan dilakukan merupakan
algoritma block cipher yang memiliki fungsi padding pada proses enkripsi dan fungsi
unpadding pada kunci.
Secara umum proses enkripsi dan dekripsi dapat diperlihatkan pada diagram pada
Gambar 1 dan Gambar 2.
Gambar 1 Proses Enkripsi [4]
Gambar 2 Proses Dekripsi [4]
Gambar 1 dan Gambar 2 menunjukkan proses enkripsi dan proses dekripsi yang
dapat dijelaskan sebagai berikut : [4]
Plaintext adalah pesan atau informasi yang akan dikirimkan dalam format yang
mudah dibaca.
Data diacak dengan menggunakan fungsi atau Kunci Enkripsi (Encryption Key).
Cipherteks adalah pesan atau informasi yang sudah dienkripsi sehingga tidak dapat
dibaca dengan mudah.
Plaintext Ciphertext
Encryption
Ciphertext Plaintext
Decryption
4
Proses pengacakan atau proses yang dilakukan untuk mengamankan sebuah pesan
(yang disebut plainteks) menjadi pesan yang tersembunyi (disebut cipherteks
adalah enkripsi (encryption).
Proses sebaliknya, untuk mengubah cipherteks menjadi plainteks, disebut dekripsi
(decryption).
Kunci yang digunakan pada tahap Dekripsi disebut Kunci Dekripsi (Decryption
Key).
Enkripsi data adalah proses menyembunyikan suatu informasi dengan membuat
informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. Data yang
dikirimkan melalui media elektronik adalah data rahasia hasil enkripsi. Data asli dapat
diketahui oleh penerima menggunakan kunci rahasia yang sudah ditentukan. Dengan
menggunakan enkripsi dan dekripsi, data yang diolah dapat dihindarkan dari campur
tangan pihak-pihak yang tidak berhak atas isi data tersebut[3].
Rangkaian bit bit plainteks pada block cipher dibagi menjadi blok-blok dengan
pangjang sama biasanya 64-bit. Skema proses enkripsi-dekripsi block cipher scara umum
ditunjukan pada Gambar 3. [5]
Gambar 3 Skema Proses Enkripsi-Dekripsi Block Cipher
Pada Gambar 3 dapat dijelaskan bahwa enkripsi dilakukan terhadap blok bit
plainteks menggunakan bit – bit kunci (yang ukurannya sama dengan bit – bit plainteks).
Algoritma enkripsi menghasilkan blok cipherteks yang berukuran sama dengan blok
plainteks, sedangkan dekripsi dilakukan dengan cara yang serupa seperti enkripsi.
Misalkan blok plainteks (P) yang berukuran m bit dinyatakan dalam vector
),,,,( 321 mppppP (1)
dimana pi adalah 0 atau 1 untuk i = 1, 2, 3, … , m dan blok cipherteks (C) adalah
(2)
yang dalam hal ini ci adalah 0 atau 1 untuk i = 1, 2, 3, … , m.
Berdasarkan pada persamaan 1, apabila m blok merupakan hasil pembagian dari bit
penyusun plainteks maka dapat dinyatakan sebagai
nPPP ,,, 21 (3)
mccccC ,,,, 321
5
untuk setiap blok plainteks Pi, bit – bit penyusunnya dapat dinyatakan sebagai vector
(4)
Sehingga enkripsi dengan kunci K dinyatakan berturut – turut dengan persamaan
(5)
dimana (C) merupakan cipherteks hasil dari proses enkripsi (E) dengan kunci (K) terhadap
plainteks (P). sedangkan untuk dekripsi dapat dinyatakan dengan persamaan
(6)
Dimana proses dekripsi (D) dengan kunci (K) terhadap cipherteks (C) menghasilkan
plainteks (P) sehingga dapat dinyatakan bahwa fungsi E haruslah fungsi yang
berkoresponden satu-ke-satu.
(7)
Operasi biner yang sering digunakan dalam cipher yang beroperasi dalam mode bit
adalah XOR atau exclusive-or[7]. 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 Cdan C Padalah fungsi sedemikian
hingga xxed kk untuk setiap plainteks x P.
Untuk mengetahui nilai keacakan hasil enkripsi yakni cipherteks dengan plainteks
menggunakan differensiasi data yang pengertiannya yakni perbandingan selisih antara dua
titik. Dalam kalkulus, metode ini sering disebut sebagai turunan atau kemeringan 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
imiii pppP ,,, 21
CPEK )(
PCDK )(
DE 1
6
Dy
Dx=
(yb - ya )
(xa - xb )(8)
dengan (xa, ya) sebagai titik pertama, dan titik berikutnya adalah (xb, yb). Apabila terdapat n
data maka untuk menentukan rata-rata dari diferensiasi data dapat di cari untuk melihat
tren dari setiap data Rataan diferensiasi (Rd) untuk melihat diberikan pada Persamaan (2).
(9)
3. Metode Penelitian
Pada perancangan kriptografi simetris ini dibutuhkan tahap-tahap dalam menyusunan
penelitian. Tahap-tahap yang dibutuhkan yaitu: (1) Pengumpulan Bahan, (2) Analisis
Kebutuhan, (3) Perancangan Kriptografi, (4) Uji Kriptografi, dan (5) Penulisan Laporan.
Gambar 4 Tahapan Penelitian
Tahapan penelitian pada Gambar 4 dapat dijelaskan sebagai berikut. Tahap pertama:
Pengumpulan Bahan, pengumpulan bahan berupa data-data yang terkait dan yang
mendukung dengan perancangan kriptografi block cipher berbasis pada langkah kaki kuda
sandelwood; Tahap kedua: Analisis Kebutuhan yang meliputi kebutuhan apa saja yang
diperlukan untuk menyelesaikan penelitian ini; Tahap ketiga: Perancangan Sistem, yaitu
meliputi bagan proses pembuatan Enkripsi-Dekripsi dalam perancangan kriptografi block
cipher secara umum; Tahap keempat: Uji Kriptografi, yaitu dilakukan pengujian terhadap
sistem yang dibangun dengan tujuan untuk mengetahui apakah program tersebut berjalan
sesuai seperti yang diharapkan; Tahap kelima: yaitu mendokumentasikan proses penelitian
yang sudah dilakukan dari tahap awal hingga akhir ke dalam tulisan yang akan menjadi
laporan hasil penelitian.
Analisis Kebutuhan
Perancangan Kriptografi Symmetric
Symmetric
Uji Kriptografi
Penulisan Laporan
Pengumpulan Bahan
7
Dalam perancangan ini dilakukan dua (2) proses yaitu proses pertama enkripsi dan
proses kedua dekripsi. Proses enkripsi pada perancangan kriptografi berbasis langkah kuda
sandelwood dilakukan dengan melakukan putaran sebanyak enam (6) kali ditunjukkan
dalam Gambar 5.
Gambar 5 Rancangan Diagram Proses Enkripsi
Gambar 5 merupakan proses enkripsi pada perancangan kriptografi block cipher
berbasis pada langkah kaki kuda sandelwood. Tahap persiapan dan langkah-langkah proses
enkripsi perancangan kriptografi block cipher, dijelaskan sebagai berikut :
a) Menyiapkan plainteks.
Plainteks yang akan dienkripsi.
b) Dalam rancangan diagram proses enkripsi memiliki rumus untuk menghasilkan
plainteks dan menghasilkan kunci simetris:
Plainteks 1 (P1) melakukan pengurutan dengan melakukan alur proses kuda
lari dan di XOR Kunci 1 (K1) menghasilkan Plainteks 2 (P2)
Plainteks 2 (P2) melakukan pengurutan dengan melakukan alur proses kuda
lari dan di XOR Kunci 2 (K2) menghasilkan Plainteks 3 (P3)
Plainteks 3 (P3) melakukan pengurutan dengan melakukan alur proses kuda
lari dan di XOR Kunci 3 (K3) menghasilkan Plainteks 4 (P4)
Plainteks 4 (P4) melakukan pengurutan dengan melakukan alur proses kuda
lari dan di XOR Kunci 4 (K4) menghasilkan Plainteks 5 (P5)
Plainteks 5 (P5) melakukan pengurutan dengan melakukan alur proses kuda
lari dan di XOR Kunci 5 (K5) menghasilkan Plainteks 6 (P6)
Plainteks 6 (P6) melakukan pengurutan dengan melakukan alur proses kuda
lari dan di XOR Kunci 6 (K6) menghasilkan Cipherteks (P)
8
Kunci 1 sampai dengan kunci 6 dihasilkan dari hasil perputaran matriks
atau hasil acak dari masing-masing kunci secara berurutan dengan
menggunakan proses alur kuda jalan.
Setelah dilakukan proses enkripsi dengan 6 proses plainteks, maka selanjutnya proses
dekripsi akan ditunjukan pada Gambar 5.
Gambar 6 Rancangan Diagram Proses Dekripsi
Gambar 6 merupakan proses dekripsi pada perancangan kriptografi block cipher
berbasis pada langkah kaki kuda sandelwood. Tahap persiapan dan langkah-langkah proses
dekripsi perancangan kriptografi block cipher, dijelaskan sebagai berikut :
a) Menyiapkan plainteks.
Plainteks yang akan dienkripsi.
b) Dalam rancangan diagram proses enkripsi memiliki rumus untuk menghasilkan
plainteks dan menghasilkan kunci simetris:
Cipherteks (C) melakukan pengurutan dengan melakukan alur proses kuda
lari dan di XOR Kunci 6 (K6) menghasilkan cipherteks 5 (C5)
Cipherteks 5 (C5) melakukan pengurutan dengan melakukan alur proses
kuda lari dan di XOR Kunci 5 (K5) menghasilkan cipherteks 4 (C4)
Cipherteks 4 (C4) melakukan pengurutan dengan melakukan alur proses
kuda lari dan di XOR Kunci 4 (K4) menghasilkan cipherteks 3 (C3)
Cipherteks 3 (C3) melakukan pengurutan dengan melakukan alur proses
kuda lari dan di XOR Kunci 3 (K3) menghasilkan cipherteks 2 (C2)
Cipherteks 2 (C2) melakukan pengurutan dengan melakukan alur proses
kuda lari dan di XOR Kunci 2 (K2) menghasilkan cipherteks 1 (C1)
Cipherteks 1(C1) melakukan pengurutan dengan melakukan alur proses
kuda lari dan di XOR Kunci 1 (K1) menghasilkan Plainteks (P)
9
Kunci 1 sampai dengan kunci 6 dihasilkan dari hasil perputaran matriks
atau hasil acak dari masing-masing kunci secara berurutan dengan
menggunakan proses alur kuda jalan.
Rancangan Algoritma Kuda Lari
Proses enkripsi dan dekripsi pada langkah kuda sandelwood dibuktikan dengan
menggunakan contoh plainteks “DUTABILI”, dengan kunci “ALZDANNY”. Proses ke
enam langkah kuda sandelwood akan dijelaskan pada penelitian ini. Masing-masing proses
memiliki pengacakan matriks yang berbeda. Contohnya W adalah plainteks dan U adalah
kunci, sehingga dapat dituliskan W ={w1,w2,w3…..wn}, n|8, n ∈ Z+
.
{ } { } { } .
.
{ }
Plainteks ”DUTABILI” akan diubah ke dalam biner:
D = 01000100 = { } U = 01010101 = { } T = 01010100 = { } A = 01000001 = { } B = 01000010 ={ } I = 01001001 ={ } L = 01001100 = { } I = 01001001 = { }
Gambar 7 Rancangan Pola Enkripsi dan Dekripsi Langkah Kuda Lari
Gambar 7 menjelaskan proses pemasukan bit ke matriks dan diurutkan dengan
proses pola kuda lari pada masing-masing putaran tetapi memiliki urutan yang berbeda.
10
Pada proses ini memiliki proses pengacakan yang menghasilkan plainteks dengan
melakukan proses XOR pada plainteks dan kunci tiap-tiap putaran. Langkah awal proses
dimulai dari t7 dan t15 sebagai kaki depan dan diikuti t8 dan t16 sebagai kaki belakang
dengan melewati 2 blok bit sebagai penanda berwarna hijau.
4. Hasil dan pembahasan
Pada bentuk hasil dan pembahasan akan dibahas terlebih dahulu proses enkripsi dan
proses dekripsi secara umum. Proses enkripsi dan dekripsi pada algoritma ini akan
melakukan enam kali proses dari proses pengacakan langkah kuda sandelwood yang
berbeda-beda, dapat dilihat pada Gambar 7.
Gambar 8 Rancangan Proses Enkripsi Secara Umum
Gambar 8 menjelaskan proses enkripsi dari pesan yang telah diubah menjadi kode
ASCII dan dimasukan dari bit ke matriks yang telah disiapkan dengan menggunakan pola
11
langkah kuda lari. Pada pengambilan kode ASCII ke bit telah dilakukan proses padding,
pada proses teks 1 dari matriks terdapat proses pengurutan yang akan menghasilkan
plainteks 1 (P1). Algoritma ini memiliki rumus sendiri untuk mendapatkan plainteks 2
sampai dengan plainteks 6. Pada proses enkripsi akan dilakukan proses padding sehingga
mendapatkan hasil penambahan byte.
Pada proses pengambilan ASCII dan BIT pada bagan di atas terdapat proses
padding atau proses penghapusan penambahan byte dilakukan dengan teknik ANSI X.239.
Berikut contoh koding.
Kode Program 1 Proses Padding dan Unpadding
1. public static byte[] padding(byte[] msg){
2. if(8<1 || 8>255)throw new IllegalArgumentException("block size harus 1 ->
255.");
3. int numberToPad = 8-msg.length%8;
4. byte[] paddedMsg = new byte[msg.length+numberToPad];
5. System.arraycopy(msg, 0, paddedMsg, 0, msg.length);
6. for(int i = msg.length; i<(paddedMsg.length-2);i++)
paddedMsg[i] = 00;
paddedMsg[paddedMsg.length-1] = (byte)numberToPad;
7. return paddedMsg;
8. }
9. public static byte[] unPadding(byte[] msg){
int numberOfPad = (msg[msg.length-1]+256)%256;
10. byte[] answer = new byte[msg.length-numberOfPad];
11. System.arraycopy(msg, 0, answer, 0, answer.length);
12. return answer;
13. }
Kode program 1 merupakan perintah proses penghapusan penambahan byte dengan teknik
ANSI X.923, dan proses penghapusan penambahan byte dengan teknik ANSI X.923. untuk
menghilangkan padding hanya melihat block terakhir dan juga menghapus padding untuk
menambahkan array.
Gambar 9 Rancangan Alur Pengambilan dan Pemasukan Bit Proses Enkripsi Plainteks 6
Gambar 9 diutarakan dengan pengambilan blok bit berwarna kuning sebagai
langkah awal atau kaki depan yang diikuti dengan blok bit t8 dan t16 sebagai kaki
belakang. Proses pemasukan dilakukan dengan t7 dan t15 dari bawah bagian tengah setelah
12
itu diikuti t8 dan t16 secara berurutan naik keatas. Blok bit berwarna hitam dan putih
merupakan sisa blok bit dari pola langkah kuda.
Pemasukan bit ditunjukkan pada arah panah merah yang dimulai dari bawah kolom
u1 sampai pada kolom u8 dan dilanjutkan arah panah hijau yang dimulai dari bawah kolom
u9, seterusnya dilanjutkan sampai kolom u64. Pada Gambar 11 dan Gambar 12,
ditunjukkan masuk bit kunci menggunakan alur langkah kuda jalan.
Gambar 10 Alur Masuk Bit Kunci Gambar 11 Penerapan Alur Masuk Bit Kunci
Pemasukan bit ditunjukkan pada arah panah merah yang dimulai dari atas kolom u1
sampai pada kolom u8 dan dilanjutkan arah panah hijau yang dimulai dari bawah kolom
u9, seterusnya dilanjutkan sampai kolom u64. Pada Gambar 13 dan Gambar 14,
ditunjukkan masuk bit kunci menggunakan alur langkah kuda jalan.
Gambar 12 Alur Ambil Bit Kunci Gambar 13 Penerapan Alur Ambil Bit Kunci
NO PLAINTEKS 1-6 & HASIL
CIPHERTEKS
NILAI CIPHERTEKS PERUBAHAN KE-
HEXA
1 P1 (00001000 01011010
10001001 01001011
01010010 01011000
00010010 10010000)
8 90 137 75 82 88 18
144
08 5A 89 4B 52 58 12
90
2 P2 (11011010 01111001
01010011 11101010
01010010 10001101
218 121 83 234 82
141 12 253
DA 79 53 EA 52 8D
0C FD
13
00001100 11111101)
3 P3 (00001010 11010011
00111101 01001101
11000111 11110110
11100000 00000011)
10 211 61 77 199 246
224 3
0A D3 3D 4D C7 F6
E0 03
4 P4 (10000010 00100110
01001100 10111100
11110101 01011111
10000111 11111010)
130 38 76 188 245 95
135 250
82 26 4C BC F5 5F
87 FA
5 P5 (11111001 11010010
10000000 10010100
01110100 00101110
10001011 11000101)
249 210 128 148 116
46 139 197
F9 D2 80 94 74 2E 8B
C5
6 P6 (01100001 11100000
10100001 10001011
00101000 10101100
10111010 11001101)
97 224 161 139 40
172 186 205
61 E0 A1 8B 28 AC
BA CD
7 C (11111011 10010010
11010011 00001001
00001010 11110110
10001000 01001111)
251 146 211 9 10 246
136 19
FB 92 D3 09 0A F6
88 4F
Tabel 1 Hasil Perubahan Nilai dari Plainteks ke Cipherteks dan Hasil Hexa
Aplikasi yang dibangun akan melakukan proses enkripsi dan dekripsi pada data teks,
setelah dimasukkan sejumlah karakter sebagai kunci dengan batasan 8 karakter maka
proses enkripsi akan ditampilkan pada output text, dan langsung dilakukan proses dekripsi
dari output text tadi.
Untuk menguji perancangan kriptografi simetris ini sebagai sebuah teknik
kriptografi, dilakukan proses enkripsi-dekripsi. Proses dilakukan sesuai dengan langkah-
langkah yang telah dilakukan pada perancangan.
Berikut adalah persiapan-persiapan sebelum melakukan proses enkripsi-dekripsi
dilakukan :
a) Plainteks yang digunakan adalah “DUTABILI”
b) Menyiapkan kunci yaitu “ALZDANNY”
Setelah Tahap persiapan selesai dilakukan, kemudian melakukan proses enkripsi –
dekripsi.
a) Kembali pada proses enkripsi dari plainteks dan kunci tadi maka akan
menghasilkan nilai hexa “FB92D3090AF6884F”
b) Setelah menghasilkan hasil cipherteks, maka aplikasi akan menampilkan
lamanya proses enkripsi “0.000148472” detik.
c) Setelah menghasilkan hasil cipherteks, juga akan menampilkan perbedaan byte
sebanyak 8 byte.
Setelah cipherteks diketahui, maka selanjutnya adalah melakukan proses dekripsi,
hasil cipherteks yang didapatkan merupakan nilai hexa sebab kombinasi angka hexa terdari
14
dari 1-9 karakter numerik dan A-F karakter aplhabet. Proses yang dilakukan sesuai dengan
langkah-langkah yang sudah dijelaskan pada tahap perancangan.
a) Cipherteks yang diperoleh pada proses enkripsi yaitu
" FB92D3090AF6884F "
b) Hasil dari cipherteks kemudian dimasukan ke dalam input text dan melakukan proses
dekripsi maka menghasilkan “DUTABILI”
c) Lamanya proses dekripsi yaitu “0.00013677” detik, dan perbedaan byte yaitu 8 b
Gambar 14 Tampilan Proses Enkripsi Gambar 15 Tampilan Proses Dekripsi
Gambar 14 dan Gambar 15 menjelaskan tampilan proses enkripsi dam proses
dekripsi dari text dan kunci tadi. Untuk memperoleh cipherteks maka harus diinputkan
plainteks serta kunci yang sudah ditentukan pada input teks. Dimana cipherteks yang
dihasilkan dari proses enkripsi digunakan dalam proses dekripsi untuk mengembalikan
pesan ke bentuk awal dengan memilih dekripsi agar diproses untuk memperoleh plainteks
kembali. Algoritma ini akan diuji menggunakan nilai waktu (Ms) dan memory (byte)
sehingga dapat melihat perbandingan pada hasil uji ini.
Kode Program 2 Proses Enkripsi
1. public static long enkripsi(long src, long key) throws
UnsupportedEncodingException{
2. byte[][] map = new byte[][] { enkripsi_ProsesTeks1,
enkripsi_ProsesTeks2,enkripsi_ProsesTeks3,enkripsi_ProsesTeks4,enkripsi_Pros
esTeks5,enkripsi_ProsesTeks6 };
3. for(int i=0; i<map.length; i++){
a. src = jalankan(Ambil, src);
src = jalankan(map[i], src);
key = jalankan(enkripsi_ProsesKey, key);
src = src^key;
4. }
5. return src;
6. }
Kode program 2 merupakan perintah untuk proses enkripsi.
15
Kode Program 3 Proses Dekripsi
1. public static long dekripsi(long src, long key) throws
UnsupportedEncodingException{
2. byte[][] map = new byte[][] { dekripsi_ProsesTeks6, dekripsi_ProsesTeks5,
dekripsi_ProsesTeks4, dekripsi_ProsesTeks3, dekripsi_ProsesTeks2,
dekripsi_ProsesTeks1 };
3. for(int i=0;i<map.length;i++){
4. key = jalankan(enkripsi_ProsesKey, key);
5. }
6. for(int i=0; i<map.length; i++){
src = src^key;
key = jalankan(dekripsi_ProsesKey, key);
src = jalankan(map[i], src);
src = jalankan(Ambil, src);
7. }
8. return src;
9. }
Kode program 3 merupakan perintah untuk proses dekripsi.
Gambar 16 Grafik Perbandingan Waktu Enkripsi AES-128 dan KS (Kuda Sandelwood)
Pada Gambar 16 dapat dilihat bahwa waktu yang dihasilkan AES-128 dan KS
memberikan perbandingan dengan mendapatkan hasil waktu AES-128 lebih besar dari
waktu KS. Waktu yang dihasilkan KS berbanding lurus ke atas dikarenakan waktu yang
dihasilkan lebih cepat ketika semakin banyaknya karakter dimasukkan. Pada perbandingan
waktu AES-128 memiliki nilai rata-rata 3.0496286 dan nilai rata-rata KS yaitu sebesar
1.5410333.
0
2
4
6
8
W-AES
W-KS
16
Gambar 17 Grafik Perbandingan Waktu Dekripsi AES-128 dan KS (Kuda Sandelwood)
Pada Gambar 17 dapat dilihat bahwa waktu dekripsi yang dihasilkan AES-128 dan
KS memberikan perbandingan dengan mendapatkan hasil waktu AES-128 lebih besar dari
waktu KS. Waktu yang dihasilkan lebih cepat ketika semakin banyaknya karakter
dimasukkan. Pada perbandingan waktu AES-128 memiliki nilai rata-rata 2.5210951 dan
nilai rata-rata KS yaitu sebesar 2.3165667.
Gambar 18 Grafik Perbandingan Memori Enkripsi AES-128 dan KS (Kuda Sandelwood)
Gambar 18 menunjukan kebutuhan memori terhadap karakter dalam proses
enkripsi pada kriptografi AES-128 dan KS sama-sama berbanding lurus. Artinya jika
semakin banyak karakter yang diinput maka semakin banyak pula memori yang
dibutuhkan untuk melakukan proses enkripsi. Analisis yang dapat dilakukan terhadap
grafik pada Gambar 14 secara detail adalah perbedaan memori yang diperlukan kedua
kriptografi. AES-128 membutuhkan memori lebih besar dari KS. Dikarenakan hal ini
selaras dengan rancangan algoritma AES-128 memiliki 10 putaran sedangkan KS
mempunyai paling sedikit 6 proses putaran. Pada perbandingan ini nilai rata-rata pada
memori AES-128 yaitu 532.26667 sedangkan nilai rata-rata memori KS yaitu 498.13333.
-2
0
2
4
6
8
W-AES
W-KS
0
200
400
600
800
1000
1200
1
69
137
205
273
341
409
477
545
613
681
749
817
885
953
M-AES
M-KS
17
Gambar 19 Grafik Perbandingan Memori Dekripsi AES-128 dan KS (Kuda Sandelwood)
Gambar 19 menunjukan kebutuhan memori terhadap karakter dalam proses
enkripsi pada kriptografi AES-128 dan KS sama-sama berbanding lurus. Artinya jika
semakin banyak karakter yang diinput maka semakin banyak pula memori yang
dibutuhkan untuk melakukan proses dekripsi. Analisis yang dapat dilakukan terhadap
grafik ini secara detail adalah perbedaan memori yang diperlukan kedua kriptografi. AES-
128 membutuhkan memori lebih besar dari KS. Dikarenakan hal ini selaras dengan
rancangan algoritma AES-128 memiliki 10 putaran sedangkan KS mempunyai paling
sedikit 6 proses putaran. Pada perbandingan ini nilai rata-rata pada memori AES-128 yaitu
564.43333 sedangkan nilai rata-rata memori KS yaitu 498.13333.
5. Simpulan
Rancangan algoritma yang berbasis pada langkah kuda sandelwood dapat
diimplementasikan manjadi kriptografi block cipher yang telah memenuhi 5-tuple.
Rancangan kriptografi menjadi sebuah aplikasi yang dapat mengotomatisasi proses
perancangan kriptografi dengan inputan karakter sebagai plainteks. Aplikasi kriptografi
yang dirancang memerlukan rata-rata waktu sebanyak 0.34343 ms untuk proses enkripsi
dengan interval banyak karakter 1-10000, sedangkan proses dekripsi dengan interval yang
sama diperoleh waktu 0.1231231. Hasil perbandingan dengan AES, rancangan berbasis
langkah kuda lebih cepat 0.94869906 ms, sedangkan pada proses dekripsi 0.73215122 ms.
6. Daftar Pustaka
[1] Sabriyanto, & Virgono, A, 2008. Analisis Perbandingan Performansi Algoritma
Camellia dan AES (Advanced Encryption Standard) pada Block Cipher. Institut
Teknologi Bandung.
[2] Setiawan, A. S & Wowor, A. D, 2015. Perancangan Algoritma pada Kriptografi
Block Cipher dengan Teknik Langkah Kuda Dalam Permainan Catur. Salatiga:Jurnal
Setisi Universitas Kristen Satya Wacana.
[3] Gomies, F. E & Wowor, A. D, 2013. Perancangan Kriptografi Kunci Simetris
Menggunakan Fungsi Bessel dan Fungsi Legendre. Salatiga:Skripsi-S1 Sarjana
Universitas Kristen Satya Wacana.
[4] Munir, Rinaldi, 2006. Kriptografi, Bandung: Informatika.
0
200
400
600
800
1000
1200
1
69
137
205
273
341
409
477
545
613
681
749
817
885
953
M-AES
M-KS
18
[5] Setiawan, A. N & Wowow, A. D, 2015. Perancangan Algoritma pada Kriptografi
Block Cipher dengan Teknik Langkah Kuda dalam Permainan Catur. Salatiga:Jurnal
Setisi Universitas Kristen Satya Wacana.
[6] Wowor, Alz Danny, 2013, Modifikasi Kriptografi Hill Cipher Menggunakan Convert
Between Base, Universitas Kristen Satya Wacana.
[7] Widyaningrum, F & Suharsono, A & Henryranu, B. P, 2006. Implementasi dan
Analisis Aplikasi Transfer File Antar PC Menggunakan Algoritma RC4 128 Bit dan
AES 128 Bit. Institut Teknologi Bandung
[8] Van, C. A & Henk, 2002. Fundamentals of Cryptology. Kluwer Academic Publishers.
[9] Yin, Lisa Y, 2000. A Note on the Block Cipher Camellia. NTT Multimedia
Communication Laboratories Japan.
[10] J. Daemen and V. Rjimen, "AES Proposal: Rijndael", First Advanced Encryption
Standard (AES) Conference, California, Aug. 1998.