Institutional Repository | Satya Wacana Christian University: Perancangan Kriptografi Block Cipher 64 Bit Berbasis Pola Permainan Taplak
Perancangan Kriptografi Block Cipher 64 Bit Berbasis Pola Permainan Taplak Artikel Ilmiah Peneliti : Dwi Ratnasari (672013090) Magdalena A. Ineke Pakereng, M.Kom. Program Studi Teknik Informatika Fakultas Teknologi Informatika Universitas Kristen Satya Wacana Salatiga Januari 2018
Perancangan Kriptografi Block Cipher 64 Bit
Berbasis Pola Permainan Taplak
1
2 Dwi Ratnasari Magdalena A. Ineke Pakereng ,
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Jl. Diponegoro 52-60, Salatiga 50711, Indonesia
1
2 E-mail: [email protected] , [email protected]
Abstract
Cryptography is a technique of securing data. In this study, designed Block
Cipher cryptography use pattern of Game Taplak with block size as much as 64
bits to create new cryptography. This cryptography is designed using 4 process
and 20 rounds, where the 2rd and 3th processes are transformed using the s-box
table to get more random Ciphertext. Testing is also done using Avalanche Effect
and Correlation value where character changes reach 49,53125 %, so it can be
used as an alternative in securing data.Keyword : Block Cipher, Cryptography, Pattern of Game Taplak, Avalanche Effect, Correlation, S-Box.
Abstrak
Kriptografi adalah teknik mengamankan data . Dalam penelitian ini, dirancang Kriptografi Block Cipher menggunakan pola Permainan Taplak dengan ukuran blok sebanyak 64 bit untuk membuat kriptografi baru. Kriptografi ini dirancang menggunakan 4 proses 20 putaran, dimana proses ke-2 dan ke-3 ditransformasikan menggunakan tabel S-Box untuk mendapatkan Ciphertext yang lebih acak. Pengujian juga dilakukan menggunakan Avalanche Effect dan nilai Korelasi dimana terjadi perubahan karakter mencapai 49,53125 %, sehingga dapat digunakan sebagai alternatif dalam mengamankan data.
Kata Kunci : Block Cipher, Kriptografi, Pola Permainan Taplak, Avalanche 1) Effect, Korelasi, S-Box.
Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas
2) Kristen Satya Wacana Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana Salatiga1. Pendahuluan
Teknik kriptografi yang ada, telah banyak dipecahkan. Oleh karena itu dilakukan perancangan teknik kriptografi yang baru. Dalam penelitian ini menggunakan algoritma block cipher karena pada algoritma block cipher terdapat kategori yang beroperasi pada plaintext dalam grup bit-bit yang disebut blok atau kode rahasia blok, yang ukuran blok dasarnya adalah 64 bit atau 128 bit, yang cukup besar untuk menghindari analisis pemecahan kode dan cukup kecil agar dapat bekerja dengan cepat [1].
Asal mula Permainan Taplak adalah Permainan tradisional yang sangat populer di negeri ini khususnya di daerah-daerah termasuk di Jawa, biasanya dimainkan lebih dari satu orang secara bergiliran, dalam permainan ini setiap anak berbekalkan cuk/gacuk dilempar di setiap petak yang sudah tergambar di tanah dan cara mainnya adalah setiap pemain menggunakan kaki satu melangkah melewati petak-petak yang sudah membentuk pola tertentu, seperti pola orang, rok, baling-baling, pesawat, buaya, gunung. Ada pun dipilihnya permainan taplak ini sebagai perancangan kriptografi block cipher karena permainan ini memiliki keunikan tersendiri, permainan taplak ini mempunyai pola yang berbeda-beda di setiap permainannya. Dengan penggunaan pola permainan taplak ini maka akan semakin menambah keacak pada ciphertext.
Pada penelitian ini, pemasukan bit pada blok-blok berjumlah 64 bit dilakukan hingga 20 putaran dimana setiap putaran memiliki 4 proses plaintext dan juga proses kunci (key). Hasil dari plaintext akan di-XOR dengan kunci untuk menghasilkan ciphertext kemudian dikombinasikan dengan s-box untuk menghasilkan ciphertext yang lebih acak. Berdasarkan latar belakang masalah maka dilakukan penelitian yang berjudul Perancangan Kriptografi Block Cipher 64 bit Berbasis Pola Permainan Taplak.
2. Tinjauan Pustaka Penelitian tentang kriptografi block cipher telah banyak dilakukan.
Adapun acuan-acuan penelitian seperti berikut ini. Penelitian pertama berjudul Penggunaan Motif Kain Tenun Timor Dan Linear Congruential Generator (LCG) Dalam Merancang Dan mengimplementasikan Algoritma Kriptografi Cipher
Block yang membahas tentang algoritma Kain Tenun Timor (KTT) dan linear
congruential generator (LCG) sebagai pembangkit kunci. Perancangan algoritma
kriptografi berbasis motif kain tenun timor adalah suatu rancangan algoritma kriptografi block cipher yang beroperasi dalam bentuk bit, dan termasuk dalam teknik kriptografi kunci simetris. Hasil dari pengujian korelasi pada setiap putaran, memiliki hubungan korelasi yang berbeda. Nilai korelasi plaintext terhadap
ciphertext secara statistik yang dihasilkan pada putaran keempat berkisar pada
nilai -0,04387136, yang artinya nilai plaintext dan ciphertext tidak saling berhubungan, sehingga dapat dikatakan bahwa algoritma kriptografi yang dirancang dapat menyamarkan plaintext [2].
Penelitian kedua yang berjudul Perancangan Kriptografi Block Cipher Berbasis Pola Ikan Berenang, yang membahas tentang perancangan kriptografi baru menggunakan prinsip s-box, iterated cipher dan jaringan feistel yang dilakukan sebanyak 15 putaran dan diuji menggunakan avalanche effect dan nilai korelasi. Pada pengujian AE ditunjukkan dengan tabel memberikan hasil yang bagus dan rata-rata yang didapatkan adalah 27.53 bit yang berubah dari 15 putaran. Hasil pengujian avalanche effect menunjukkan nilai terkecil adalah 9.375 dan nilai terbesar adalah 53.125. Hasil yang diperoleh menunjukkan nilai AE yang baik dalam perancangan ini. Nilai korelasi yang dihasilkan dari 15 putaran adalah 0.217077, yang mengindikasikan bahwa hubungan antara plaintext dan ciphertext rendah [3].
Kemudian penelitian ketiga berjudul Perancangan Kriptografi Block
Cipher 256 bit berbasis pada pola tuangan air. Dalam penelitian ini, perancangan
kriptografi menggunakan pola tuangan air untuk pengambilan dan pemasukan bit yang dikombinasikan dengan tabel substitusi. Hasil korelasi putaran 20 berkisar pada nilai 0.028655415, dari pengujian korelasi setiap putaran memiliki nilai korelasi lemah sehingga kriptografi block cipher 256 bit berbasis pola tuangan air dapat menghasilkan output enkripsi yang acak [4].
Berdasarkan penelitian-penelitian yang terkait dengan algoritma block
cipher tersebut, digunakan sebagai acuan dalam merancang penelitian tentang
perancangan kriptografi block cipher menggunakan pola permainan Taplak yang dikombinasikan dengan s-box. Dalam penelitian ini menggunakan 64 bit yang dilakukan dengan proses enkripsi dan dekripsi sebanyak 20 putaran, kemudian diuji menggunakan nilai korelasi dari setiap putaran untuk mendapatkan hasil terbaik.
Block Cipher merupakan rangkaian bit yang dibagi menjadi blok-blok yang
panjangnya sudah ditentukan sebelumnya [5]. Skema proses enkripsi-dekripsi block cipher secara umum dapat ditunjukkan pada Gambar 1.
Gambar 1 Skema Proses Enkripsi-Dekripsi Block Cipher [5]
Misalkan blok plaintext (P) yang berukuran n bit
P p p p
(1) , , ,
1
2 n
Blok ciphertext (C) maka blok C adalah
, , ,
(2)
C c c c 1 2 n
Kunci (K) maka kunci adalah
, , ,
(3)
K k k k 1 2 n
Sehingga proses Enkripsi adalah
(4)
E P C k
Proses dekripsi adalah
D C P (C) = P
(5)
k
Sebuah sistem kriptografi terdiri dari 5-tuple (Five Tuple) (
P,C,K,E,D) yang
memenuhi kondisi [5] : 1.
P adalah himpunan berhingga dari plaintext.
2. C adalah himpunan berhingga dari ciphertext.
3. K merupakan ruang kunci (Keyspace), himpunan berhingga dari kunci.
k
4. Untuk setiap k K, terdapat aturan enkripsi e E dan berkorespodensi dengan aturan dekripsi k P → C dan k : C → P adalah
d
D. Setiap ek : d
fungsi sedemikian hingga d k (e k (x)) = x untuk setiap plaintext x ∊ P. Dalam pengujian menggunakan korelasi yang merupakan teknik statistik untuk mengukur kekuatan hubungan antar dua variabel dan untuk mengetahui bentuk hubungan antara dua variabel tersebut dengan hasil yang bersifat kuantitatif. Kekuatan hubungan antar dua variabel itu disebut dengan koefisien korelasi. Nilai koefisien akan selalu berada di antara -1 sampai +1. Untuk menentukan kuat atau lemahnya hubungan antara variabel yang diuji, dapat digunakan Tabel 1 [4].
Tabel 1 Klasifikasi Koefisien Korelasi [4]
Interval Koefisien Tingkat Hubungan
0,00 – 0,199 Sangat Rendah
0,20 – 0,399 Rendah
0,40 – 0,599 Sedang 0,60 – 0,799 Kuat
0,80 – 1,000 Sangat Kuat
3. Metode Penelitian
Perancangan kriptografi ini dilakukan dengan beberapa tahap penyusunan yaitu : identifikasi masalah, pengumpulan data, perancangan kriptografi, uji kriptografi, penulisan artikel ilmiah.
Identifikasi Masalah Pengumpulan Data
Perancangan Kriptografi Uji Kriptografi
Penulisan Laporan
Gambar 2 Tahapan Penelitian
Tahapan penelitian berdasarkan Gambar 2, dijelaskan sebagai berikut : Tahap pertama Identifikasi Masalah, yaitu tahapan yang dilakukan untuk melihat permasalahan dalam pengamanan data yang berkaitan dengan kriptografi.
Selanjutnya tahap kedua yaitu Pengumpulan Data, melakukan pengumpulan data sebagai bahan untuk pembuatan algoritma seperti pencarian pola untuk plaintext dan kunci. Tahap ketiga Perancangan Kriptografi, melakukan perancangan algoritma kriptografi dengan pola pemainan Taplak, diterapkan ke dalam block
cipher 64 bit. Tahap keempat yaitu Uji Kriptografi, melakukan penghitungan
mulai dari memasukkan plaintext, mengubah text ke dalam bit lalu melakukan proses enkripsi-dekripsi. Tahapan terakhir tahap kelima yaitu Penulisan Artikel Ilmiah, melakukan penulisan dari hasil penelitian yang diperoleh.
Dalam perancangan kriptografi block cipher menggunakan pola permainan Taplak ini dilakukan dua proses yaitu proses enkripsi dan proses dekripsi. Enkripsi dan dekripsi itu sendiri dilakukan dalam 20 putaran, dan di dalam setiap putaran terdapat 4 proses.
Gambar 3 Proses Alur Enkripsi
Gambar 3 menunjukkan alur proses enkripsi, langkah-langkah enkripsi itu sendiri dijelaskan sebagai berikut : a) Menyiapkan plaintext dan kunci.
b) Mengubah plaintext dan kunci menjadi biner sesuai dalam tabel ASCII.
c) Dalam perancangan enkripsi, plaintext dan kunci akan melewati empat proses dalam setiap putaran.
d) Putaran pertama Plaintext 1 (P1) diproses dengan pola dan di-XOR dengan Kunci 1 (K1) menghasilkan Ciphertext 1 (C1).
e) C1 ditansformasikan dengan pola menjadi P2 dan di-XOR dengan K2 menghasilkan C2, setelah itu C2 di S-BOX.
f) Hasil S-BOXC2 ditransformasikan dengan pola menjadi P3 dan di-XOR dengan K3 menghasilkan C3.
g) C3 ditransformasikan dengan pola menjadi P4 dan di-XOR dengan K4 menghasilkan C4, setelah itu C4 di S-BOX. h) Masuk pada putaran dua, hasil S-BOX C4 ditransformasikan menjadi P1 kemudian dilakukan proses yang sama dengan putaran pertama dan dilakukan sampai putaran ke-20 hingga menghasilkan Ciphertext (C).
Gambar 4 Proses Alur Dekripsi
Gambar 4 menunjukkan alur proses dekripsi, langkah-langkah proses dekripsi tersebut dijelaskan sebagai berikut : a) Menyiapkan ciphertext dan kunci.
b) Mengubah ciphertext dan kunci menjadi biner sesuai dalam tabel ASCII.
c) Dalam perancangan dekripsi, plaintext dan kunci akan melewati empat proses dalam setiap putaran.
d) Putaran pertama Ciphertext (C) di S-BOX kemudian dimasukkan ke dalam C4 diproses dengan pola, setelah itu C4 di-XOR dengan Kunci 4 (K4) menghasilkan Plaintext 4 (P4).
e) P4 ditransformasikan dengan pola menjadi C3 dan di-XOR dengan K3 menghasilkan P3. f) P3 di S-BOX kemudian dimasukkan ke dalam C2 diproses dengan pola, setelah itu C2 di-XOR dengan K2 menghasilkan P2.
g) P2 ditransformasikan dengan pola menjadi C1 dan di-XOR dengan K1 menghasilkan P1.
h) Masuk pada putaran dua, P1 di S-BOX dan ditransformasikan menjadi C1 kemudian dilakukan proses yang sama dengan putaran pertama dan dilakukan sampai putaran ke-20 hingga menghasilkan Plaintext (P).
4. Hasil dan Pembahasan
Bagian ini akan membahas secara rinci mengenai perancangan algoritma kriptografi Block Cipher 64 bit berbasis pola permainan taplak. Pada bagian ini juga akan membahas tentang proses enkripsi dan dekripsi. Permainan taplak itu sendiri ditunjukkan pada Gambar 5.
Gambar 5 Permainan Taplak
Dalam algoritma ini pola Permainan Taplak digunakan sebagai pola dalam proses pengambilan bit di dalam matriks plaintext. Permainan taplak ini memiliki pola seperti yang ditunjukkan dalam Gambar 6.
. Gambar 6 Pola Permainan Taplak Pada Gambar 6 terdapat 4 (empat) pola yang berbeda dimana pada pola- pola tersebut dapat dijelaskan bahwa di dalam pola permainan taplak, pemain melakukan gerakan melewati petak-petak yang sudah membentuk pola, di dalam permainan taplak ini memiliki bermacam-macam pola, seperti pola A yang membentuk baling-baling, dengan urutan angka 1 dari tengah ke atas hingga 8 memutar membentuk baling-baling sisanya angka 9 dari atas kiri pada baris pertama, seterusnya hingga baris terakhir bit ke 64 kanan bawah. Pola B membentuk pola rok, dari angka 1 tengah kemudian ke atas sesuai pola hingga angka 8, seterusnya menuju ke atas angka 9 baris pertama dari arah kanan ke kiri hingga bit ke 64 baris terakhir. Pola C seperti digambarkan pada Gambar 6 membentuk pola pesawat, dimana pengambilan dari angka 1 ke atas dengan angka 5 sebagai sayap kanan menuju ke kepala turun ke sayap kiri dengan angka 7 dan terakhir angka delapan, setelah itu angka 9 diambil dari atas kiri turun hingga bagian kanan bawah bit ke 64. Pola D membentuk pola buaya dari angka 1 ekor hingga angka 8 sebagai kepala kemudian diteruskan angka 9 dari kanan bawah menuju ke atas hingga bit ke 64 kiri atas.
Berdasarkan pola-pola yang sudah dirancang, dilakukan pengujian korelasi atau nilai keterikatan antara plaintext dan ciphertext dengan men kombinasikan urutan pola untuk mendapatkan rata-rata korelasi terbaik. Pengujian dilakukan dengan menggunakan plaintext “gbipUKSW” dan menggunakan kunci “mAiP2472”. Berdasarkan hasil pengujian korelasi dengan menggunakan contoh
plaintext tersebut maka menghasilkan rata-rata terbaik yang akan digunakan
sebagai acuan perancangan dalam proses enkripsi.
Tabel 2 Rata-Rata Korelasi
RATA-RATA NILAI KORELASI
POLA RATA-RATA POLA RATA-RATA
ACDB 0,334998737 CBDA 0,017739983
BDAC 0,126650037
Untuk menjelaskan secara detail proses pemasukan bit dalam matriks maka diambil proses 1 dan 2 pada putaran 1 sebagai contoh. Misalkan angka 1 merupakan inisialisasi setiap bit yang merupakan hasil konversi plaintext maka urutan bit adalah sebagai berikut 1, 2, 3, 4, .....64.
XOR kedua dan keempat ditansformasikan menggunakan S-BOX yang kemudian diulang terus-menerus hingga putaran ke-20 untuk menghasilkan ciphertext.
Perancangan kriptografi ini dilakukan hingga 20 kali putaran dan di setiap putaran memiliki 4 proses untuk mendapatkan hasil akhir yaitu ciphertext. Proses pertama plaintext dan kunci diubah ke dalam bentuk ASCII kemudian diubah lagi ke dalam biner. Setelah itu bit-bit plaintext diproses dengan pola pemasukan ke dalam kolom matrik 8x8 dan pola pengambilan dengan menggunakan pola permainan taplak yang berbeda-beda pada setiap proses. Kemudian hasil dari
Tabel 2 menunjukkan bahwa urutan kombinasi pola dengan rata-rata korelasi terbaik terdapat pada urutan pola C-B-D-A dengan nilai 0,017739983 . Kombinasi pola C-B-D-A menjadi pola terpilih yang digunakan dalam proses enkripsi dan proses dekripsi.
DCAB 0,215194774
DBAC 0,498767891
ABCD 0,233046254 CABD 0,152701474
ABDC 0,149000307 CADB 0,60190636
ACBD
BADC 0,320047849 DACB 0,62967611
BCAD 0,073440754DABC 0,362533381
ADCB 0,086897285 CDBA 0,225857904
BACD 0,407513475CDAB 0,340288286
ADBC 0,161496268
0,332995435
0,442758271 CBAD
BCDA 0,594184882 DBCA 0,285683842
BDCA 0,08877775 DCBA 0,17250394
Gambar 7 Pola Pemasukan Awal Plaintext dan Kunci (key)
Gambar 7 menjelaskan pola pemasukan bit plaintext dan kunci. Setiap 8
bit dari setiap karakter plaintext dan kunci dimasukkan pada setiap blok yang
dimulai dari bagian kiri terlebih dahulu kemudian ke kanan mengikuti garis anak panah dan juga sesuai dengan urutan angka seperti pada Gambar 7.
Gambar 8 Pola Pengambilan dan Pemasukan Bit A
Gambar 8 merupakan pola pengambilan dan pemasukan bit pada proses 1, proses pengambilan bit sesuai dengan urutan angka 1 dari tengah ke atas hingga 8 memutar membentuk baling-baling lalu angka 9 dari atas kiri pada baris pertama, seterusnya hingga baris terakhir bit ke 64 kanan bawah. Setelah bit diambil menggunakan pola, kemudian hasil pengambilan dimasukkan ke dalam blok matriks dengan menggunakan pola pemasukan proses 1 dan akan menghasilkan P1 lalu nanti P1 dan K1 akan di-XOR untuk menghasilkan C1. Begitu juga dengan Pola kunci setelah dilakukan pola pengambilan K1 lalu dimasukkan ke dalam blok matriks dengan menggunakan pola pemasukan proses 1 agar menghasilkan hasil akhir K1 lalu K1 akan di-XOR dengan P1 untuk menghasilkan C1.
Gambar 9 Pola Pengambilan dan Pemasukan Bit B
Gambar 9 merupakan pola pengambilan dan pemasukan bit plaintext dan kunci proses 2, dimana pengambilan dari angka 1 tengah kemudian ke atas sesuai pola hingga angka 8, sisanya menuju ke atas angka 9 baris pertama dari arah kanan ke kiri hingga bit ke 64 baris terakhir. C1 pada proses 1 digunakan sebagai P2 dan K1 digunakan sebagai K2. Kemudian P2 diproses menggunakan S-BOX lalu berikut dimasukkan ke dalam blok matriks dengan menggunakan pola pemasukan proses 2, setelah itu hasil akhir dari P2 di-XOR dengan K2 untuk menghasilkan C2. Untuk proses Kunci sendiri tidak dilakukan S-BOX jadi setelah pola pengambilan bit dimasukkan ke dalam blok matriks dengan menggunakan pola pemasukan proses 2 untuk menghasilkan K2 lalu K2 akan dilakukan XOR dengan plaintext agar menghasilkan C2.
Gambar 10 Pola Pengambilan dan Pemasukan Bit C
Gambar 10 merupakan pola pengambilan dan pemasukan bit pada proses 3, proses pengambilan bit sesuai dengan urutan angka tersebut. Dari ekor angka 1 ke atas dengan angka 5 sebagi sayap kanan menuju ke kepala turun ke sayap kiri dengan angka 7 dan terakhir angka delapan, setelah itu angka 9 diambil dari atas kiri turun hingga bagian kanan bawah bit ke 64. Kemudian P3 diproses menggunakan S-BOX lalu berikut akan dimasukkan ke dalam blok matriks dengan menggunakan pola pemasukan proses 3, hasil akhir dari P3 di-XOR dengan K3 untuk menghasilkan C3.
Gambar 11 Pola Pengambilan dan Pemasukan Bit D
Gambar 11 merupakan pola pengambilan dan pemasukan bit plaintext dan kunci proses 4, pola D yang berbentuk buaya dari angka 1 ekor hingga angka 8 sebagai kepala kemudian diteruskan angka 9 dari kanan bawah hingga bit ke 64 kiri atas. Dimana C3 pada proses 3 digunakan sebagai P4 dan K3 digunakan sebagai K4. Kemudian hasil pengambilan dimasukkan ke dalam blok matriks dengan menggunakan pola pemasukan proses 4 dan akan menghasilkan P4 lalu nanti P4 dan K4 akan di-XOR untuk menghasilkan C4.
Proses pengambilan P4 dan K4 dilakukan sesuai seperti nomer yang tertera pada Gambar 11. Proses enkripsi putaran 1 telah selesai, dan dilakukan proses yang sama secara terus-menerus hingga putaran ke-20 untuk mendapatkan ciphertext.
Tabel 3 Tabel Substitusi S-Box AES
1
2
3
4
5
6
7
8
9 A B C D E F
63
7C
77
7B F2
6B
6F C5 J0
01
67
2B FE D7 AB 76 C9
7D FA
59
47 F0 AD D4 A2 AF 9C A4
72 C0
1 CA 82
93
26
36
3F F7 CC
34 A5 E5 F1
71 D8
31
15
2 B7 FD
04 C7
23 C3
18
96
05
9A
07
12
80 E2 EB
27 B2
75
3
09
83
2C
1A
1B
6E 5A A0
52
3B D6 B3
29 E3
2F
84
4
53 D1
00 ED
20 FC B1
5B
6A CB BE 39
4A 4C
58 CF
5
6 D0 EF AA FB
43
4D
33
85
45 F9
02
7F
50
3C
9F A8
51 A3
40
8F
92
9D
38 F5 BC B6 DA 21
10 FF F3 D2
7
8 CD 0C
13 EC
5F
97
44
17 C4 A7
7E 3D
64
5D
19
73
60
81
4F DC
22
2A
90
88
46 EE B8
14 DE 5E 0B DB
9 A E0
32
3A 0A
49
06
24
5C C2 D3 AC 62
91
95 E4
79 C8
37
6D 8D D5 4E A9
6C
56 F4 EA 65
7A AE
08 B E7 C BA 78
25
2E
1C A6 B4 C6 E8 DD 74
1F
4B DB 8B 8A
3E B5
66
48
03 F6
0E
61
35
57 B9
86 C1 1D
9E D 70 E E1 F8
98
11
69 D9 BE
94
9B
1E
87 E9 CE
55
28 DF
89 OD BF E6
42
68
41
99
2D 0F B0
54 BB
16 F 8C A1
Tabel 3 merupakan tabel kotak-s yang digunakan dalam proses
substitusion box (S-Box) enkripsi. Cara pensubstitusian adalah sebagai berikut:
untuk setiap byte pada array state, misalkan S[r, c] = xy, yang dalam hal ini xy adalah digit heksadesimal dari nilai S[r, c], maka nilai substitusinya, dinyatakan dengan S’[r, c], adalah elemen di dalam S-box yang merupakan perpotongan baris x dengan kolom y.Misalnya S[0, 0] = 19, maka S’[0, 0] = d4.
Gambar 12 Skema Proses Enkripsi
Gambar 12 menggambarkan alur proses enkripsi, dalam melakukan perancangan kriptografi block cipher berbasis pola permainan taplak ini dilakukan sebanyak 20 putaran, dan di setiap putaran memiliki 4 proses untuk mendapatkan hasil akhir yaitu ciphertext. Proses pertama plaintext dan kunci diubah ke dalam bentuk ASCII kemudah diubah lagi ke dalam biner. Kemudian bit-bit plaintext diproses dengan pola pemasukan dan pengambilan ke dalam kolom matriks 8x8 menggunakan pola permainan taplak yang berbeda-beda pada setiap proses. Setelah mendapatkan hasil XOR dari proses pertama lalu diproses dengan pola pengambilan, kemudian ditransformasikan menggunakan S-BOX pada proses kedua. Hasil XOR dari proses kedua akan diproses dengan pola pengambilan, kemudian ditransformasikan lagi dengan S-BOX pada proses ketiga, kemudian akan dimasukkan lagi pada blok matriks dengan pola pemasukan sehingga akan menghasilkan XOR dari proses ketiga yang kemudian akan digunakan pada proses keempat dan diulang terus-menerus hingga putaran ke-20 untuk menghasilkan ciphertext.
Untuk pengujian algoritma dilakukan dengan mengambil plaintext adalah gbipUKSW dan kunci adalah mAiP2472. Setelah melakukan proses enkripsi yang telah dijelaskan sebelumnya maka perancangan mendapatkan ciphertext yang telah dikonversi ke dalam nilai hexadecimal. Hasil enkripsi dari 20 putaran mendapatkan final ciphertext yang ditunjukkan pada Tabel 4.
Tabel 4 Hasil Enkripsi Ciphertext Setiap Putaran
HASIL CIPHERTEXT
Putaran Hexadecimal Putaran Hexadecimal1 AA14691398F326F
11 FD4B7116BD12159
2 C89AB3D3864146DB
12
3CA5F4461FE3725
3
13
913BAFC2F55ACFDC8F4237F7DBF935F
4 E73868C93F1E4928 14 2464E35D5FC5DA4 5 5550B6C0E8E6648 15 695049CBEFB1365
6
32A2DAF2428B1843
16
01FC171C3CD6B91
7
7BA14596C77E2E47
17 ECBC5AD36F124E16
8
7F98A7F993E81B8 18 25051E3D4F2521E
9
3B386BA92196019
19 F55912E152C34088
10
20
F560B4BA9E15FA13 E1D54670BF774D9FProses dekripsi merupakan kebalikan dari proses enkripsi. Dekripsi dilakukan dari P4 dan K4 yang diambil dari hasil proses P4 dan K4 enkripsi putaran ke-20. P4 di-XOR dengan K4 sampai menghasilkan P1, berkelanjutan sampai dekripsi putaran ke-20.
Alur proses pengambilan dekripsi, secara keseluruhan ada empat proses dalam satu putaran plaintext dan kunci, yang menghasilkan empat ciphertext. Pola pengambilan bit proses enkripsi pada proses dekripsi digunakan sebagai pola pemasukan. Sebaliknya pola pemasukan pada proses enkripsi akan digunakan sebagai pola pengambilan dekripsi sehingga pola permainan taplak dalam proses enkripsi digunakan sebagai pola pemasukan bit pada proses dekripsi.
Proses dekripsi dimulai dengan memasukkan ciphertext pada kolom matriks C4 kemudian di-XOR dengan K4 hasil proses kunci pada proses keempat. Hasil XOR kemudian ditransposisikan menggunakan pola substitusi tabel s-box.
Plaintext 4 kemudian diambil setiap 8 bit sesuai dengan pola pemasukan menjadi
biner. Hasil biner diubah menjadi desimal kemudian dikonversi kembali ke hexa.Kemudian hexa dikonversikan dengan tabel substitusi s-box. Bit hasil substitusi s-
box diambil menggunakan pola permainan taplak 4 untuk mengisi kolom matrix
P4 . Hasil dari plaintext dari P4 digunakan untuk C3 dan kunci (key) K4 digunakan untuk K3. Proses seterusnya sampai P1 dan K1 sama hingga menghasilkan plaintext dan berkelanjutan sampai putaran ke-20.
14. Hasil HEXA invers diubah ke BINER
3. ASCII diubah ke BINER
4. Bit BINER dimasukkan ke kolom P4 menggunakan pola masuk Plaintext
5. C4 di-XOR dengan K4
6. Hasil XOR ditransposisikan terbalik dengan pola Permainan Taplak D menghasilkan P4
7. Bit P4 diubah ke BINER
8. BINER dimasukkan ke dalam kolom C4 menggunakan pola masuk plaintext
9. C4 diXOR dengan K4
10. Hasil XOR ditransposisikan terbalik dengan pola Permainan Taplak D menghasilkan P3
11. Bit P3 diubah ke BINER
12. BINER diubah ke HEXA
13. HEXA dimasukkan ke dalam tabel S-BOX
15. P3 dimasukkan ke dalam kolom C2 menggunakan pola masuk plaintext
1. Masukkan C4
16. C2 di-XOR dengan K2
17. Hasil XOR ditransposisikan terbalik dengan pola permainan Taplak B menghasilkan P2
18. Bit P2 diubah ke BINER
19. BINER diubah ke HEXA
20. HEXA dimasukkan ke dalam tabel S-BOX
21. Hasil HEXA invers diubah ke BINER
22. P2 = C1
23. C1 di-XOR dengan K1
24. Hasil XOR ditransposisikan terbalik dengan pola Permainan Taplak A menghasilkan P1
25. P1 diubah ke BINER
26. BINER diubah ke ASCII
2. C4 diubah ke ASCII
25. ASCII diubah ke HEXA, sebagai ciphertext
Tabel 5 Algoritma Proses Enkripsi dan Dekripsi.
11. BINER diubah ke HEXA
Tabel 4 merupakan algoritma proses enkripsi dan dekripsi. Proses enkripsi menghasilkan C4 sedangkan proses dekripsi menghasilkan P1. Algoritma Proses Enkripsi Algoritma Proses Dekripsi
1. Masukkan plaintext
2. Plaintext diubah ke ASCII
3. ASCII diubah ke BINER
4. Bit BINER dimasukkan ke kolom P1 menggunakan pola masuk Plaintext
5. Bit P1 ditransposisikan dengan pola Permainan Taplak A
6. P1 di-XOR dengan K1 menghasilkan C1
7. C1 = P2
8. Bit P2 ditransposisikan menggunakan pola Permainan Taplak B
9. P2 di-XOR dengan K2 menghasilkan C2
10. C2 diubah ke BINER
12. HEXA dimasukkan ke dalam tabel S-BOX
24. BINER diubah ke ASCII
13. Hasil HEXA invers diubah ke BINER
14. Hasil biner dimasukkan ke blok matriks P3
15. P3 di-XOR dengan K3 menghasilkan C3
16. C3 diubah ke BINER
17. BINER diubah ke HEXA
18. HEXA dimasukkan ke dalam tabel S-BOX
19. Hasil HEXA invers diubah ke BINER
20. BINER dimasukkan ke dalam kolom P4 menggunakan pola masuk plaintext
21. Bit P4 ditransposisikan menggunakan pola Permainan Taplak D
22. P4 di-XOR dengan K4 menghasilkan C4
23. C4 diubah ke BINER
27. ASCII diubah ke CHAR, sebagai plaintext Algoritma proses Kunci (Key) dijelaskan sebagai berikut :
1. Masukkan Kunci
Pseudocode proses enkripsi dan dekripsi dijelaskan sebagai berikut :
Proses Enkripsi {Program ini digunakan untuk melakukan proses enkripsi data} Kamus P,K,P1,P2,P3,P4,K1,K2,K3,K4, = integer C1,C2,C3,C4 = integer StartPrint BINER S-Box C3 <- P3 ⨁ K3
Dari BINER S-Box = kolom matriks P3, Masukan BINER S-Box
P3 Transposisi menggunakan pola Permainan Taplak D Output P3 Dari K2 = kolom matriks K3, masukan K2C2 to BINER BINER to HEXA Dari HEXA = Tabel S-Box, masukan HEXA HEXA Substitusi menggunakan S-Box
K2 Transposisi menggunakan pola Kunci B
Ouput K2 Print C2 Biner S-Box <- Invers Hexa C2Dari C1 = kolom matriks P2, masukan C1 P2 Transposisi menggunakan Permainan taplak B Output P2 Dari K1 = kolom matriks K2, masukan K1
Output K1 Print C1 C1 = P2 C2 <- P2 ⨁ K2
Input K Read K K to ASCII ASCII to BINER Dari BINER = kolom matriks K1, masukan BINER K1 Transposisi mengunakan Kunci C
ASCII to BINER Dari BINER = kolom matriks P1, masukan BINER P1 Transposisi mengunakan Pola Permainan Taplak C Output P1
C1 <- P1 ⨁ K1 Input P Read P P to ASCII
11. K4 ditransposisikan menggunakan pola Kunci A
2. Kunci diubah ke ASCII
10. Transposisi K3 = K4
9. K3 ditransposisikan menggunakan pola Kunci D
8. Transposisi K2 = K3
7. K2 ditransposisikan menggunakan pola Kunci B
6. Transposisi K1 = K2
5. Bit Kunci ditransposisikan dengan pola Kunci C
4. Bit BINER dimasukkan ke kolom K1 menggunakan pola masuk Kunci
3. ASCII diubah ke BINER
K3 Transposisi menggunakan pola Kunci A Output K3 Print C3 Return Biner S-Box BINER S-box = P2 C2 <- P2 ⨁ K2 Dari BINER S-BOX = kolom matriks P4, masukan BINER S-Box
P4 Transposisi menggunakan Pola Permainan Taplak A Output P4 Dari K3 = kolom matriks K4, masukan K3 K4 Transposisi menggunakan pola Kunci A Ouput K4 Print C4
Repeat End Proses Dekripsi {Program ini digunakan untuk melakukan proses dekripsi data} Kamus P,C,K,P1,P2,P3,P4,K1,K2,K3,K4, = integer C1,C2,C3,C4 = integer Start
K2 <- Traposisi K1 Input K Read K K to ASCII
ASCII to BINER Dari BINER = kolom matriks K1, masukan BINER K1 Transposisi menggunakan pola Kunci A Output K2
K3 <- Traposisi K2 K2 Transposisi mengunakan pola Kunci D Output K3 K4 <- Traposisi K3
K3 Transposisi mengunakan pola Kunci B Output K4 K4 Transposisi menggunakan pola Kunci C P4 <- Transposisi dari hasil C4 ⨁ K4 Input C Read C
C4 to ASCII ASCII to BINER Dari BINER = kolom matriks C4, masukan BINER C4 ⨁ K4
Transposisi terbalik menggunakan Pola Permainan Taplak A Print P4 P3 <- Transposisi dari hasil C3 ⨁ K3 Biner S-Box <- Invers Hexa P4
P4 to BINER BINER to HEXA Dari HEXA = Tabel S-Box, masukan HEXA HEXA Substitusi menggunakan S-Box Dari BINER S-Box = kolom matriks C3, Masukan BINER S-Box C3 ⨁ K3
Transposisi terbalik menggunakan Pola Permainan Taplak D Print P3 P2 <- Transposisi dari hasil C3 ⨁ K3 Biner S-Box <- Invers Hexa P3
P4 to BINER BINER to HEXA Dari HEXA = Tabel S-Box, masukan HEXA HEXA Substitusi menggunakan S-Box Dari BINER S-Box = kolom matriks C2, Masukan BINER S-Box C2 ⨁ K2
Transposisi terbalik menggunakan Pola Permainan Taplak B Print P2 P2=C1 P1<- Transposisi dari hasil C1 ⨁ K1 P2 ⨁ K2
Transposisi terbalik menggunakan Pola Permainan Taplak C Print P1 P1 to BINER BINER to ASCII ASCII to CHAR Print P
14 0,207963097
enkripsi acak yang dapat dibuat dalam bentuk grafik pada Gambar 14. Korelasi di tiap proses berbeda-beda tetapi memiliki hasil terakhir di 0,056629764 .
Cipher 64 bit dengan pola Permainan Taplak dapat menghasilkan nilai korelasi
Pada Tabel 6 dari 20 putaran yang diuji setiap putaran memiliki nilai korelasi lemah sehingga dapat disimpulkan bahwa algoritma berbasis Block
10 0,46472361 20 0,056629764
19 0,1674499
9 0,447137331
5 0,07044406 15 0,395471779 6 0,597148343 16 0,444906336 7 0,104826629 17 0,769519318 8 0,245090743 18 0,211095234
4 0,773370173
End
3 0,420078709 13 0,03061133
12 0,034770498
2 0,746814094
1 0,143243608 11 0,289243662
Tabel 6 Nilai Korelasi Setiap Putaran
HASIL KOLERASI
Putaran Kolerasi Putaran Kolerasi
plaintext dan ciphertext memiliki hubungan yang sangat kuat, tetapi jika
mendekati 0 maka plaintext dan ciphertext memiliki hubungan yang tidak kuat.Pengujian korelasi digunakan untuk mengukur seberapa acak perbandingan antara hasil enkripsi (ciphertext) dan plaintext. Nilai korelasi sendiri berkisar 1 sampai -1, dimana jika nilai kolerasi mendekati 1 maka
Pengujian AE (Avalanche effect) digunakan untuk mengukur seberapa acak perbandingan antara hasil enkripsi (ciphertext) dan plaintext.
Tabel 7 Hasil Uji AE pada Permainan Taplak
BANYAK AVALANCHE PUTARAN BIT EFFECT BERUBAH1 34 46,875 35 51,5625
2
3 27 48,4375
4 35 48,4375
5 35 37,5
6 33 48,4375 37 43,75
7
8 34 45,3125
34
50
9
10 39 56,25
11 32 57,8125 32 45,3125
12
13 22 54,6875 28 57,8125
14
15 33 46,875 26 45,3125
16
17
34
50
18 31 56,25 29 48,4375
19
20 37 51,5625 Rata-rata
49,53125 Tabel 7 merupakan hasil uji AE (Avalanche effect) pada algoritma kriptografi dengan pola permainan taplak yang dilakukan sebanyak 20 kali. Di dalam tabel terjadi kenaikan dan penurunan di tiap putarannya yang diulang sebanyak 20 kali, pada putaran 20 terjadi hasil rata-rata maksimal dari nilai AE
(Avalanche effect). Berdasarkan hasil putaran pertama hingga putaran ke dua
puluh dihasilkan rata-rata pengujian Avalanche Effect yaitu sebesar 49,53125%.Nilai AE (Avalanche effect) sangat dibutuhkan bagi sebuah block cipher karena akan menguji seberapa banyak perubahan sebuah bit dan seberapa besar pengaruhnya pada bit ciphertext.
Gambar 13 Grafik Perbandingan Plaintext dan Ciphertext
Gambar 13 menunjukkan bahwa pada setiap putaran terdapat perbedaan yang signifikan antara bilangan desimal plaintext dan bilangan desimal ciphertext. Pengujian AE (Avalanche Effect) dilakukan untuk mengetahui seberapa besar perubahan bit ketika karakter plaintext dirubah. Perubahan bit pada putaran pertama yaitu sebesar 30 bit dan putaran terakhir memiliki perubahan 33 bit. Pengujian dilakukan dengan 3 (Tiga) contoh plaintext dan kunci (key) yang berbeda dan kemudian akan diubah 1 (Satu) karakter pada plaintext sehingga menghasilkan perbedaan Avalanche Effect pada setiap putarannya.
Gambar 14 Grafik Pengujian Avalanche Effect
Gambar 14 menunjukkan grafik pengujian AE (Avalanche Effect) yang digunakan. Dalam grafik ditunjukka avalanche effect yang tidak stabil namun signifikan pada masing-masing putaran. Dalam grafik ini plaintext yang digunakan adalah “gbipUKSW” yang diubah menjadi “dW1RatN4” dengan menggunakan kunci “mAiP2472”. Terjadi perubahan bit pada setiap putarannya, pada putaran ke-11 dan ke-14 perubahan bit yang terjadi cukup besar yaitu 57,8% dengan arti pada putaran ini terjadi perubahan bit yang baik, tetapi juga terjadi perubahan bit yang kecil pada putaran ke-5 yaitu sebesar 37,5% ini berarti perubahan bit yang terjadi kurang baik. Berdasarkan hasil putaran pertama sampai dengan putaran ke dua puluh dapat disimpulkan bahwa rata-rata hasil pengujian
Avalanche Effect ini yaitu sebesar 49,53125%.
Pada perancangan kriptografi block cipher berbasis pola permainan taplak ini, pola taplak dimanfaatkan untuk pemasukan biner pada plaintext. Bedanya pola permainan taplak dengan yang sudah dihasilkan sebelumnya pola ini memiliki keunikan tersendiri, algoritma kriptografi yang masih baru dan dapat mengamankan pesan lebih baik, setiap putaran juga memiliki perubahan rata-rata yang berbeda dari pola binatang laut, pada pola sebelumnya pola binatang laut memiliki perubahan karakter 47,984375%, sedangkan pada pola taplak ini memiliki perubahan karakter 49,53125%. Jadi pola taplak ini memiliki perubahan karakter yang lebih tinggi dari pada pola yang sebelumnya seperti binatang laut. Kriptografi ini dirancang menggunakan ukuran 8x8 (64 bit) sehingga tidak dapat digunakan dalam ukuran 28 bit.
5. Simpulan
Berdasarkan penelitian yang telah dilakukan, dapat disimpulkan bahwa perancangan kriptografi block cipher berbasis pada pola permainan taplak dikatakan sebagai sistem kriptografi. Dalam proses enkripsi, perancangan kriptografi block cipher berbasis pada pola permainan taplak ini menghasilkan
output enkripsi yang acak, dan juga dengan adanya tabel subtitusi S-BOX yang
dipasang pada proses kedua dan ketiga pada setiap putaran juga membuktikan bahwa hasil ciphertext tersebut menjadi semakin acak. Sehingga dapat digunakan sebagai alternatif dalam pengamanan data. Dalam perancangan kriptografi block
cipher 64 bit berbasis pada pola permainan taplak, pengujian avalanche effect
yang dilakukan menunjukkan proses enkripsi di setiap putaran memiliki perubahan rata-rata sebesar 49,53125%.
6. Daftar Pustaka
[1] Kurniawan, Yusuf, 2004, Kriptografi Keamanan Internet dan Jaringan
Komunikasi, Bandung: Informatika Bandung [2] Mone, A. S., Pakereng, M. A. I., Wowor, A. D., 2015, Penggunaan Motif.
Kain Tenun Timor Dan Linear Congruential Generator (LCG) Dalam Merancang Dan mengimplementasikan Algoritma Kriptografi Cipher
Block. Salatiga : Jurusan Teknik Informatika Universitas Kristen Satya
Wacana
[3] Guntoro, Pakereng, M. A. I., 2016 “Perancangan Kriptografi Block Cipher
Berbasis Pola Ikan Berenang”. Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana.
[4] Tuhumuri, Fr llian, Pakereng, M. A. I., Wowor, A. D., 2016, Perancangan Kriptografi Block Cipher 256 Bit Berbasis pada Pola Tuangan Air.
Salatiga : Jurusan Teknik Informatika Universitas Kristen Satya Wacana. [5] Husna, M. A., 2013, “Implementasi Algoritma MMB (Modular