perancangan kriptografi block cipher 64 bit berbasis pola...
TRANSCRIPT
Perancangan Kriptografi Block Cipher 64 bit
Berbasis Pola Tarian Topeng Ireng
Artikel Ilmiah
Peneliti :
Kenny Imanuel (672013101)
Magdalena A. Ineke Pakereng, M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
November 2017
i
Perancangan Kriptografi Block Cipher 64 bit
Berbasis Pola Tarian Topeng Ireng
Artikel Ilmiah
Diajukan Kepada
Fakultas Teknologi Informasi
Untuk Memperoleh Gelar Sarjana Komputer
Peneliti :
Kenny Imanuel (672013101)
Magdalena A. Ineke Pakereng, M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
November 2017
ii
iii
iv
1. Pendahuluan
Keamanan suatu informasi merupakan masalah penting yang harus di perhatikan dalam pertumbuhan teknologi jaman sekarang. Namun pertumbuhan
teknologi sangat cepat sehingga tidak sejalan dengan sistem keamanan dari teknologi itu sendiri, padahal saat ini banyak terjadi berbagai macam pelanggaran karena kurangnya keamanan dari teknologi itu sendiri. Kriptografi adalah ilmu
untuk menjaga kerahasiaan. Semakin baik algoritma dan kunci yang dibuat, semakin baik juga kerahasiaan informasi itu terjaga.
Kriptografi yang baik merupakan kriptografi dengan algoritma dan kunci yang di buat sulit untuk dipecahkan. Ada dua macam kriptografi, yaitu kriptografi
klasik dan kriptografi modern. Dalam penelitian ini kriptografi yang digunakan merupakan kriptografi modern yang bersifat simetris menggunakan pola berbasis tarian topeng ireng dan menggunakan satu kunci untuk proses enkripsi dan
dekripsi dengan cara kerja informasi atau pesan yang jelas (plaintext) diubah menjadi informasi atau pesan yang tidak dapat dimengerti (ciphertext).
Kriptografi sendiri harusnya memiliki pola yang acak dan beragam. Guna memperkaya ragam dari pola kriptografi itu sendiri, maka dipilih pola tarian topeng ireng karena tarian ini memiliki pola yang cukup rumit jika dibuat dalam pola perpindahan bit dalam kriptografi, dimana pola tarian tersebut menghasilkan 4 pola yang beragam dan rumit.
Berdasarkan latar masalah yang ada, maka dilakukan penelitian tentang perancangan kriptografi block cipher 64 bit yang berbasis pada pola tarian topeng ireng.
2. Tinjauan Pustaka
Beberapa penelitian yang menjadi acuan dalam penelitian yang dilakukan, dijelaskan sebagai berikut. Penelitian tentang Pengaruh S-Box Advanced
encryption standard (AES) Terhadap Avalanche effect Pada Perancangan Kriptografi Block Cipher 256 Bit Berbasis Pola Teknik Tarian Dansa Tali Dari Maluku, yang membahas tentang kriptografi menggunakan prinsip s-box dan juga
avalanche effect yang diproses sebanyak 5 putaran dan menghasilkan nilai korelasi 0.241734 [1].
Penelitian tentang Perancangan Kriptografi Block Cipher Berbasis Pola Ikan Berenang, membahas tentang perancangan kriptografi baru menggunakan prinsip S-Box, iteratedcipher dan jaringan fiestel yang dilakukan sebanyak 15 putaran dan diuji menggunakan avalanche effect dan nilai korelasi. Nilai korelasi yang dihasilkan dari 15 putaran adalah 0.217077 [2].
Penelitian tentang Perancangan Algoritma pada Kriptografi Block Cipher dengan Teknik Langkah Kuda Dalam Permainan Catur, membahas tentang proses enkripsi dan dekripsi menggunakan pola langkah kuda, yang dilakukan sebanyak 4 putaran. Hasil dari algoritma kriptografi diperoleh hasil 0,027481 ms dari AES. Untuk proses dekripsi 0,013992 ms. Sedangkan perbandingan antara langkah
kuda dengan AES-128 adalah 0,140952 ms atau 14.09% [3].
2
Penelitian-penelitian yang sudah ada terkait perancangan algoritma
kriptografi simetris Block Cipher menjadi acuan dalam membentuk ide untuk
merancang penelitian baru tentang perancangan Kriptografi Block Cipher 64 bit
berbasis Pola Tarian Topeng Ireng. Pada penelitian ini dilakukan proses kombinasi pola tarian topeng ireng sebanyak 24 putaran, setelah mendapatkan
pola dengan nilai korelasi terendah maka pola kombinasi tersebut menjadi pola
dalam proses enkripsi dan proses dekripsi. Dalam perancangan dilakukan proses 20 putaran pada proses enkripsi dan dekripsi dimana setiap putaran terdapat 4
proses untuk proses plaintext maupun proses kunci (key). Hasil dari proses
plaintextakan di-XOR dengan kunci untuk menghasilkan Ciphertext yang
kemudian byte-nya akan dikombinasikan dengan S-Box untuk menghasilkan Avalanche effect yang besar. S-Box yang digunakan dalam penelitian ini adalah S-
Box algoritma AES (Advanced encryption standard). Kriptografi merupakan ilmu untuk menjaga keamanan data.Bagian dari
kriptografi yaitu plaintext dan ciphertext. Plaintext adalah pesan yang dapat
dimengerti maknanya, sedangkan ciphertextmerupakan pesan yang sudah dirubah sehingga tidak dapat dimengerti maknanya. Bagian lain yang terdapat pada kriptografi adalah enkripsi dan dekripsi. Enkripsi adalah proses dimana plaintext
dirubah menjadi ciphertext, dan dekripsi adalah kebalikan dari enkripsi yaitu mengembalikan ciphertext menjadi plaintext [4].
Skema proses enkripsi dan dekripsi Block Cipher secara umum ditunjukkan pada Gambar 1.
P1 P2 …. Pn P1 P2 …. Pn
Kunci ENKRIPSI Kunci DESKRIPSI
C1 C2 …. Cn C1 C2 …. Cn
Block Ciphertext C Block Ciphertext C Gambar 1 Skema Proses Enkripsi-Dekripsi Pada Block Cipher [5]
Misalkan blok plaintext (P) yang berukuran n bit
P p1 , p2 , , pn Blok ciphertext (C) maka blok C adalah
C c1 , c2 , ,cn Kunci (K) maka kunci adalah
K k1 , k2 , , kn
Sehingga proses enkripsi adalah
Ek P C Proses dekripsi adalah
Dk C P (C) = P
3
Untuk menguji nilai algoritma yang dirancang memiliki hasil ciphertext yang acak dari plaintext maka digunakan Persamaan 1, dimana variable X merupakan plaintext dan Y merupakan ciphertext.
–
(1)
√ –
–
Dimana: n = Banyaknya pasangan data X dan Y Σx = Total jumlah dari variabel X
Σy = Total jumlah dari variabel Y
Σx2 = Kuadrat dari total jumlah variabel X
Σy2 = Kuadrat dari total jumlah variabel Y
Σxy = Hasil perkalian dari total jumlah variabel X dan variabel Y
Untuk memudahkan menentukan kuat lemahnya hubungan antara variabel yang diuji maka dapat digunakan Tabel 1.
Tabel 1 Klasifikasi Koefisien Korelasi [5]
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. MetodePenelitian
Tahapan Penelitian yang digunakan dalam penelitian ini dapat dibagi ke dalam 5 (lima) tahapan yaitu: (1) tahap identifikasi masalah, (2) tahap pengumpulan data, (3) tahap perancangan kriptografi, (4) tahap pengujian kriptografi, (5) tahap penulisan artikel.
4
Identifikasi Masalah
Pengumpulan Data
Perancangan Kriptografi
Pengujian Kriptografi
Penulisan Artikel
Gambar 2 Tahapan Penelitian
Gambar 2 menunjukkan tahapan penelitian, dijelaskan sebagai berikut:
Tahap identifikasi masalah, Pada tahapan ini dilakukan analisis terhadap permasalahan yang ada, terkait dengan proses perancangan Kriptografi Block
Cipher 64 bit berbasis Pola Tarian Topeng Ireng; Tahap pengumpulan data, dalam
tahapan ini dilakukan pengumpulan data serta sumber mengenai pembahasan terkait penelitian tersebut; Tahap perancangan kriptografi, pada tahap ini akan
dilakukan perancangan Kriptografi Block Cipher 64 bit Berbasis Pola Tarian
Topeng Ireng. Untuk pembuatan kunci, proses enkripsi dan proses dekripsi
dikombinasikan dengan XOR, kemudian hasil dari XOR tersebut dikombinasikan dengan tabel S-Box; Tahap pengujian kriptografi, pada tahap ini dilakukan
pengujian terhadap kriptografi yang telah dibuat. Pengujian proses 24 kombinasi
yang akan menghasilkan nilai korelasi terendah, kemudian dilakukan proses enkripsi dan dekripsi, yang terakhir yaitu mencari avalanche effect terbesar, tahap
pengujian kriptografi, dalam tahap terakhir ini dilakukan penulisan artikel
mengenai proses Perancangan Kriptografi Block Cipher 64 bit berbasis Pola
Tarian Topeng Ireng. Dalam perancangan kriptografi Block Cipher 64 bit menggunakan pola
tarian topeng ireng ini dilakukan dua proses yaitu proses enkripsi dan proses
dekripsi. Proses enkripsi dan dekripsi itu sendiri dilakukan dalam 20 putaran yang di setiap putarannya terdapat 4 proses.
5
Putaran 1 Putaran 20
Plaintext Kunci Plaintext Kunci
P1 K1 P1 K1
C1 C1
P2 P2
S-BOX K2 S-BOX K2
P2 K2 P2 K2
C2 C2
P3 K3 P3 K3
C3 C3
P4 P4
S-BOX S-BOX
P4 K4 P4 K4
C4 Ciphertext
Gambar 3 Proses Alur Enkripsi
Gambar 3 menunjukkan alur proses enkripsi, langkah-langkah proses 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 pada
setiap putaran; d) Putaran pertama Plaintext 1 (P1) diproses dengan pola tarian
topeng ireng dan di-XOR dengan Kunci 1 (K1) menghasilkan C1; e) C1 ditransformasikan dengan pola tarian topeng ireng menjadi P2 kemudian di S-
BOX, setelah itu P2 di-XOR dengan K2 menghasilkan C2; f) C2
ditransformasikan dengan pola tarian topeng ireng menjadi P3 kemudian di-XOR dengan K3 menghasilkan C3; g) C3 ditransformasikan dengan pola tarian topeng
ireng menjadi P4 kemudian di S-BOX, setelah itu P4 di-XOR dengan K4
menghasilkan C4; h) Masuk pada putaran dua, C4 ditransformasikan menjadi P5 kemudian dilakukan proses yang sama dengan putaran pertama, dan dilakukan
sampai putaran ke-20 hingga menghasilkan Ciphertext (C).
6
Plaintext
P17 K17 P1 K1
C17 C1
P18 P2
S-BOX K18 S-BOX K2
P18 K18 P2 K2
C18 C2
P19 K19 P3 K3
C19 C3
P20 P4
S-BOX S-BOX
P20 K20 P4 K4
C20 C4
Ciphertext
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, ciphertext dan kunci akan melewati empat proses pada setiap putaran; d) Putaran pertama Ciphertext (C) diproses dengan pola dan
di-XOR dengan Kunci 20 (K20) menghasilkan P20; e) P20 ditransformasikan
dengan pola menjadi P20 dan diproses menggunakan S-BOX, dan mendapatkan
hasil akhir P20; f) P20 ditransformasikan dengan pola menjadi C19 kemudian di-XOR dengan K19, menghasilkan P19 dan mendapatkan hasil akhir P19; g) P19
ditransformasikan dengan pola menjadi C18 kemudian di-XOR dengan K18,
menghasilkan P18, kemudian P18 dengan S-BOX dan mendapatkan hasil akhir dari P18; h) P18 ditransformasikan dengan pola menjadi C17 kemudian di-XOR
dengan K17, menghasilkan P17; i) Masuk pada putaran dua, P17
ditransformasikan menjadi C16 kemudian dilakukan proses yang sama dengan
putaran pertama, dan dilakukan sampai putaran ke-20 hingga menghasilkan Plaintext (P).
7
4. Hasil dan Pembahasan
Dalam bagian ini akan membahas mengenai algoritma perancangan kriptografi Block Cipher 64 bit berbasis pola tarian topeng ireng.
Dalam algoritma ini pola tarian topeng ireng digunakan untuk proses pengambilan bit di dalam matriks plaintext. Tarian topeng ireng ini memiliki pola barisan seperti yang ditunjukkan dalam Gambar 5.
Gambar 5 Tarian Topeng Ireng
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
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64 Pola A
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
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64 Pola C
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
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64 Pola B
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
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64 Pola D
Gambar 6 Pola Berbasis Tarian Topeng Ireng
Gambar 6 dijelaskan setelah semua bit dimasukkan dan diberi warna selanjutnya memasukkan bit-bit tersebut menurut pola ambil. Sebagai contoh pola A, pola dengan warna merah memiliki angka 1-8 dan berdasarkan pola
pemasukkan bit terdapat bit 9 = no.1, bit 16 = no.2, bit 25 = no.3, bit 32 = no.4, bit 41 = no.5, bit 48 = no.6, bit 57 = no.7, bit 64 = no.8. Kemudian untuk warna
biru, hijau, hijau muda, merah muda, biru muda, abu abu, dan putih dilakukan proses yang sama dengan pola warna merah dengan ketentuan nomor dan bit pada setiap pola warna.
Berdasarkan pola-pola yang sudah dirancang, dilakukan pengujian korelasi
atau nilai keterikatan antara plaintext dan ciphertext dengan menkombinasikan urutan
pola untuk mendapatkan nilai rata-rata korelasi terbaik. Pengujian dilakukan dengan
menggunakan plaintext “topengik” dan menggunakan kunci
8
“magelngk”. Berdasarkan hasil pengujian korelasi dengan menggunakan contoh plaintext dan kunci tersebut maka hasil rata-rata terbaik yang akan digunakan sebagai acuan perancangan dalam proses enkripsi dan dekripsi.
Tabel 2 Rata-Rata Korelasi
RATA-RATA NILAI KORELASI
POLA RATA-RATA POLA RATA-RATA
A-B-C-D 0.552758798 C-A-B-D 0.791893348
A-B-D-C 0.345428244 C-A-D-B 0.406212719
A-C-B-D 0.531852558 C-B-A-D 0.143278752
A-C-D-B 0.660393818 C-B-D-A 0.029048476
A-D-B-C 0.311667073 C-D-A-B 0.099083779
A-D-C-B 0.111271633 C-D-B-A 0.26833836
B-A-C-D 0.563725289 D-C-B-A 0.187442559
B-A-D-C 0.168055878 D-C-A-B 0.05448961
B-C-A-D 0.197192704 D-B-A-C 0.22484954
B-C-D-A 0.405460271 D-B-C-A 0.601023586
B-D-A-C 0.437453318 D-A-B-C 0.2950279
B-D-C-A 0.392047796 D-A-C-B 0.34503999
Tabel 2 menunjukkan hasil kombinasi pola dan mendapatkan nilai korelasi terbaik pada kombinasi pola C-B-D-A sebesar 0,029048476. Kombinasi C-B-D-A yang akan digunakan sebagai pola dalam proses enkripsi hingga putaran ke-20 untuk menghasilkan ciphertext.
Algoritma kriptografi Block Cipher 64 bit berbasis pola tarian topeng ireng
ini dilakukan dengan 20 putaran dan dalam setiap putaran terdapat 4 proses untuk mendapatkan hasil akhir yaitu ciphertext. Proses pertama plaintext dan kunci
diubah ke dalam bentuk ASCII kemudian diubah lagi ke dalam biner. Kemudian
bit-bit plaintext diproses dengan pola pemasukan dan pengambilan ke dalam
kolom matrix 8x8 menggunakan pola tarian topeng ireng yang berbeda-beda pada setiap proses. Kemudian hasil XOR proses pertama ditransformasikan
menggunakan Jaringan Fiestel pada proses kedua. Hasil XOR dari proses kedua
dan keempat kemudian ditransformasikan menggunakan S-BOX dan menghasilkan P4 yang kemudian digunakan pada proses keempat dan diulang
terus-menerus hingga putaran ke-20 untuk menghasilkan ciphertext.
9
Gambar 7 Proses Enkripsi
Selanjutnya dijelaskan pemasukan bit dalam matriks. Pada penjelasan ini dimisalkan angka 1 merupakan inisialisasi setiap bit yang merupakan hasil konversi plaintext maka urutan bit adalah sebagai berikut 1,2,3,4,5, …..64.
10
Gambar 8 Proses Dekripsi
Gambar 8 menjelaskan relasi proses dekripsi. Proses dekripsi adalah proses merubah ciphertext menjadi plaintext. Proses dekripsi tersebut dilakukan
proses yang hampir sama seperti enkripsi, yang membedakannya hanya proses diawali dari putaran ke-20 menuju putaran ke-1 untuk mendapatkan plaintext
awal. Pada proses pengambilan dan pemasukan berubah dimana pola pengambilan pada proses enkripsi akan menjadi pola pemasukkan pada proses dekripsi,
sedangkan pola pemasukan pada enkripsi digunakan sebagai pola pengambilan pada dekripsi.
Gambar 9 Pola Pemasukan Bit Plaintext dan Kunci
11
Gambar 9 menjelaskan pola pemasukan bit plaintext dan kunci pada proses 1. Setiap 8 bit dari setiap karakter plaintext dan kunci dimasukkan pada setiap blok sesuai dengan urutan angka.
9 25 26 27 28 29 30 17
1 10 31 32 33 34 18 2
35 36 11 37 38 19 39 40
3 41 42 12 20 43 44 4
45 46 47 13 21 48 49 50
5 51 52 14 22 53 54 6
55 56 57 15 23 58 59 60
7 61 62 16 24 63 64 8
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
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64
Gambar 10 Pola Pengambilan dan Pola Transpose Plaintext dan Kunci Proses 1
Gambar 10 merupakan proses pengambilan dan transpose pada proses 1, untuk plaintext dan kuncidilakukan dengan alur proses yang sama. Bit diambil
setiap 8 bit mengikuti urutan angka pada Gambar 10 dengan urutan angka yang sudah diatur sesuai dengan pola. Kemudian dimasukkan kembali ke dalam kolom
matriks baris pertama dari kiri ke kanan, dan untuk baris selanjutnya mengikuti anak panah dan urutan angka pada Gambar 10. Dari proses tersebut menghasilkan
P1 dan K1. Setelah itu P1 dan K1 akan di-XOR-kan menghasilkan C1.
16 64 63 62 61 60 59 24 1 2 3 4 5 6 7 8
8 15 58 57 56 55 23 7 9 10 11 12 13 14 15 16
54 53 14 52 51 22 50 49 17 18 19 20 21 22 23 24
6 48 47 13 21 46 45 5 25 26 27 28 29 30 31 32
44 43 42 12 20 41 40 39 33 34 35 36 37 38 39 40
4 38 37 11 19 36 35 3 41 42 43 44 45 46 47 48
34 33 32 10 18 31 30 29 49 50 51 52 53 54 55 56
2 28 27 9 17 26 25 1 57 58 59 60 61 62 63 64 Gambar 11 Pola Pengambilan dan Pola Transpose Plaintext dan Kunci Proses 2
Gambar 11 merupakan proses pengambilan dan transpose pada proses 2,untuk plaintext dan kuncidilakukan dengan alur proses yang berbeda, karena
untuk proses plaintext menggunakan tabel S-Box dan untuk kuncinya tidak menggunakan tabel S-BOX. Hasil dari XOR C1 yang ditransformasikan ke dalam
P2 diambil setiap 8 bit mengikuti urutan angka pada Gambar 11. Sedangkan untuk K2 didapat dari tansformasi K1. Kemudian P2 diproses menggunakan S-BOX,
setelah itu dimasukkan kembali ke dalam baris matriks kolom pertama dari kiri ke kanan, dan untuk kolom selanjutnya mengikuti anak panah dan urutan angka pada Gambar 11. Setelah itu P2 dan K2 akan di-XOR-kan menghasilkan C2.
12
1 25 26 27 33 34 35 9 1 2 3 4 5 6 7 8
17 2 28 29 36 37 10 18 9 10 11 12 13 14 15 16
30 31 3 32 38 11 39 40 17 18 19 20 21 22 23 24
19 41 42 4 12 49 50 20 25 26 27 28 29 30 31 32
43 44 45 5 13 51 52 53 33 34 35 36 37 38 39 40
21 46 47 6 14 54 55 22 41 42 43 44 45 46 47 48
48 57 58 7 15 59 60 56 49 50 51 52 53 54 55 56
23 61 62 8 16 63 64 24 57 58 59 60 61 62 63 64 Gambar 12 Pola Pengambilan dan Pola Transpose Plaintext dan Kunci Proses 3
Gambar 12 merupakan proses pengambilan dan transpose pada proses 3, untuk plaintext dan kunci dilakukan dengan alur proses yang sama. Hasil dari
XOR C2 yang ditransformasikan ke dalam P3 diambil setiap 8 bit mengikuti urutan angka pada Gambar 12 dengan urutan angka yang sudah diatur. Sedangkan
untuk K3 didapat dari tansformasi K2. Kemudian dimasukkan kembali ke dalam kolom matriks baris pertama dari kanan ke kiri, dan untuk baris selanjutnya
mengikuti anak panah dan urutan angka pada Gambar 12. Setelah itu P3 dan K3 akan di-XOR-kan menghasilkan C3.
17 35 34 33 27 26 25 1
9 18 37 36 29 28 2 10
40 39 19 38 32 3 31 30
11 50 49 20 4 42 41 12
53 52 51 21 5 45 44 43
13 55 54 22 6 47 46 14
56 60 59 23 7 58 57 48
15 64 63 24 8 62 61 16
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
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64
Gambar 13 Pola Pengambilan dan Pola Transpose Plaintext dan Kunci Proses 4
Gambar 13 merupakan proses pengambilan dan transpose pada proses 4
atau proses terakhir, untuk plaintext dan kunci dilakukan dengan alur proses yang
berbeda, karena untuk proses plaintext menggunakan tabel S-Box dan untuk kuncinya tidak menggunakan tabel S-BOX. Hasil dari XOR C3 yang
ditransformasikan ke dalam P4 diambil setiap 8 bit mengikuti urutan angka pada
Gambar 13. Sedangkan untuk K4 didapat dari tansformasi K3. Kemudian P4 diproses menggunakan S-BOX, setelah itu dimasukkan kembali ke dalam baris
matriks kolom pertama dari kanan ke kiri, dan untuk kolom selanjutnya mengikuti
anak panah dan urutan angka pada Gambar 13. Setelah itu P4 dan K4 akan di-
XOR-kan menghasilkan C4. Proses putaran 1 telah selesai, dan dilakukan proses yang sama secara terus-menerus hingga putaran ke 20 untuk mendapatkan
ciphertext.
13
Gambar 14 Tabel S-BOX AES
Gambar 14 menunjukkan tabel S-BOX yang digunakan pada proses enkripsi dan dekripsi. 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] = 11, maka S‟[0, 0] = 82. Untuk pengujian algoritma dilakukan dengan mengambil contoh plaintext
topengik dan kunci adalah magelngk. Kemudian dilakukan proses enkripsi sebanyak 20 putaran, dan disetiap putaran enkripsi akan mendapatkan ciphertext (C) dan dikonversi ke dalam nilai hexadecimal. Hasil enkripsi dari putaran ke 20 adalah final ciphertext ditunjukkan pada Tabel 3.
Tabel 3 Hasil Ciphertext Setiap Putaran
Putaran Plaintext Hasil Ciphertext Hasil Ciphertext
dalam Hexadecimal dalam Char
1 Topengik 6DA5180AE3EC58B8 "m¥ãìX¸"
2 "m¥ãìX¸" E177C15E397B976E áwÁ^9{—n
3 áwÁ^9{—n D10610F900BD023B Ñù½[1];
4 Ñù½[1]; 2D2643920182659D -&C‟‚e•
5 -&C‟‚e• E5C1C38E4F57D9A5 åÁÃŽOWÙ¥
6 åÁÃŽOWÙ¥ 7AD7E2717B2A604D z×âq{*`M
7 z×âq{*`M 4B77D6A966C659FD KwÖ©fÆYý
8 KwÖ©fÆYý 70F54E6D1F8522F6 põNm…"ö
9 põNm…"ö B03E355CDAD7DA69 °>5\Ú×Úi
10 °>5\Ú×Úi 78002786864FDA72 x'††Oúr
11 x'††Oúr 4B0A707EE6203831 "Kp~æ 81"
12 "Kp~æ 81" D8D425D601D55C51 ØÔ%ÖÕ\Q
13 ØÔ%ÖÕ\Q 82A463AFF9DD28F5 ‚¤c¯ùÝ(õ
14 ‚¤c¯ùÝ(õ B785376D916BD7B4 ·…7m„k×´
15 ·…7m„k×´ BD5C9D79F9ECD78B ½\ yùì׋
14
16 ½\ 783EFE53C7B66D70 x>þSǶmp
17 x>þSǶmp 060E16CC1D15D2E1 Ì Òá
18 Ì Òá DF3DEB2F775EABB0 ß=ë/w^«°
19 ß=ë/w^«° 73F6BFC78FC1182B sö¿Ç•Á+
20 sö¿Ç•Á+ 14B1D05C09989154 "±Ð\ ˜„T"
Tabel 3 merupakan hasil enkripsi dari setiap putaran. Hasil dari putaran 20
merupakan final ciphertext. Proses dekripsi adalah proses merubah ciphertext menjadi plaintext awal. Dekripsi dilakukan sama seperti enkripsi, tetapi dekripsi
dimulai dari putaran ke 20 menuju putaran ke 1 untuk mendapatkan plaintext
awal. Pola pengambilan pada proses enkripsi akan menjadi pola pemasukan pada proses dekripsi, sedangkan pola pemasukan pada enkripsi akan digunakan sebagai
pola pengambilan pada dekripsi. Proses dekripsi dimulai dari memasukkan
ciphertext ke kolom matriks C4 kemudian di-XOR dengan K4 dan pada proses tersebut akan menghasilkan P4. Kemudian P4 ditransformasikan dengan S-BOX
untuk mendapatkan hasil akhir P4, P4 digunakan sebagai C3, lalu C3 di-XOR
dengan K3 dan menghasilkan P3, P3 digunakan sebagai C2, lalu C2 di-XOR
dengan K2 menghasilkan P2, P2 ditransformasikan dengan S-BOX untuk mendapatkan hasil akhir P2, P2 digunakan sebagai C1. Kemudian C1 di-XOR
dengan K1 untuk menghasilkan P1, proses itu dilakukan berulang-ulang sebanyak
20 putaran sesuai dengan banyaknya putaran enkripsi dan hasil akhir dari dekripsi putaran ke 20 adalah plaintext awal.
Tabel 4 Algoritma Enkripsi dan Dekripsi
Proses Enkripsi Proses Dekripsi 1. Masukkan plaintext 2. Plaintext dirubah ke ASCII
3. ASCII diubah ke BINER 4. Bit BINER dimasukkan ke kolom
matrik P1 dengan pola pemasukan proses 1
5. Bit pada kolom matrik diambil menggunakan pola pengambilan.
6. Bit pengambilan dimasukkan lagi kedalam matrik untuk mendapatkan hasil akhir P1
7. P1 di XOR dengan K1 menghasilkan
C1 8. C1 = P2 diambil menggunakan pola
pemasukan 9. P2 diproses dengan pola pengambilan
proses 2 10. P2 di XOR dengan K2 menghasilkan
C2
11. C2 diubah ke DEC
12. DEC diubah ke HEX 13. HEX ditransformasikan menggunakan
S-BOX 14. Hasil HEX diubah menjadi BINER
15. Hasil BINER dimasukkan ke blok
matriks P2
1. Masukkan C4 2. C4 dirubah ke ASCII
3. ASCII diubah ke BINER 4. Bit BINER dimasukkan ke kolom
matrik C4 dengan pola pemasukan
5. Masukkan bit K4 menggunakan pola
masukan 6. C4 di XOR dengan K4
7. Bit P4 diubah ke BINER
8. BINER diubah ke HEX
9. HEX ditransformasikan dengan tabel
S-BOX 10. Hasil konversi diubah ke BINER
11. BINER P4 dimasukkan ke kolom
matriks dengan pola pengambilan 12. P4=C3
13. BINER dimasukkan ke kolom C3
menggunakan pola masuk 14. Masukkan bit K3 menggunakan pola
masukan
15
16. C2=P3 diambil dengan pola
pemasukan awal 17. P3 diproses dengan pola pengambilan
proses 3
18. BINER diubah menjadi DEC 19. DEC diubah menjadi HEX
20. Hasil HEX diubah menjadi BINER
21. Hasil BINER dimasukkan ke blok
matriks P3 22. P3 di-XOR dengan K3 menghasilkan
C3 23. C3=P4 diambil dengan pola
pemasukan awal 24. P4 diproses dengan pola pengambilan
proses 4 25. BINER diubah menjadi DEC 26. DEC diubah menjadi HEX
27. HEX ditransformasikan menggunakan
S-BOX 28. Hasil HEX diubah menjadi BINER 29. Hasil BINER dimasukkan ke blok
matriks P4 30. P4 di-XOR dengan K4 menghasilkan
C4 31. C4 diubah ke DEC 32. DEC diubah ke HEX, sebagai
ciphertext
15. C3 di XOR dengan K3 menghasilkan
P3
16. P3 diubah ke BINER
17. BINER diubah ke HEX 18. Hasil HEX ditransformasikan dengan
tabel S-BOX 19. Hasil konversi diubah menjadi BINER 20. BINER P3 dimasukkan ke kolom
matriks dengan pola pengambilan 21. P3=C2
22. BINER dimasukkan ke kolom C2
menggunakan pola masuk 23. Masukkan bit K2 menggunakan pola
masukan
24. C2 di XOR dengan K2 menghasilkan
P2 25. P2 diproses dengan pola pengambilan 26. Bit pengambilan dimasukkan lagi
kedalam kolom matrik P2 27. P2=C1
28. C1 di XOR dengan K1 menghasilkan
P1 29. P1 diproses dengan pola pengambilan 30. Bit pengambilan dimasukkan lagi
kedalam kolom matrik P1 31. Hasil akhir pemasukan bit diproses
dengan pola pengambilan 32. Hasil akhir BINER P1 dirubah ke DEC 33. DEC dirubah ke HEX 34. HEX dirubah ke CHAR, sebagai
plaintext
Tabel 4 merupakan algoritma proses enkripsi dan dekripsi secara
menyeluruh. Proses enkripsi menghasilkan C4 (Ciphertext), dan proses dekripsi
menghasilkan P1 (Plaintext) awal. Algoritma proses Kunci (key), dijelaskan sebagai berkut:
1. Masukkan Kunci
2. Kunci diubah ke ASCII
3. ASCII diubah ke BINER
4. Bit BINER dimasukkan ke kolom K1 menggunakan pola masuk Kunci
5. Bit Kunci ditransposisikan dengan pola Kunci C
6. Transposisi K1 = K2
7. K2 ditransposisikan menggunakan pola Kunci B
8. Transposisi K2 = K3
9. K3 ditransposisikan menggunakan pola Kunci D
10. Transposisi K3 = K4
11. K4 ditransposisikan menggunakan pola Kunci A
Proses Enkripsi {Program ini digunakan untuk melakukan proses enkripsi data} Kamus P,K,P1,K1,P2,K2,P3,K3,P4,K4 = integer C1,C2,C3,C4 = integer Start
16
C1 <- P1 ⊕ K1
Input P Read P
P to ASCII ASCII to BINER Dari BINER = blok matriks P1, masukan BINER P1 menggunakan Pola pemasukan awal
Dari blok matriks P1 = BINER, ambil bit P1 dengan pola Tarian Topeng Ireng C
Dari BINER = blok matriks P1, masukan BINER P1 dengan pola pemasukan proses 1
Output P1
Input K Read K
K to ASCII ASCII to BINER Dari BINER = blok matriks K1, masukan BINER K1 menggunakan Pola pemasukan awal
Dari blok matriks K1 = BINER, ambil bit K1 K1 dengan pola pengambilan C
Dari BINER = blok matriks K1, masukan BINER K1 dengan pola pemasukan proses 1
Output K1 Print C1 C1 = P2 C2 <- P2 ⊕ K2
Dari C1 = blok matriks P2, masukan C1 P2 menggunakan Pola pemasukan awal
Dari blok matriks P2 = BINER, ambil bit P2 dengan pola Tarian Topeng Ireng B
BINER to HEXA Dari HEXA = Tabel S-box, masukan HEXA HEXA konversi menggunakan S-box
Print BINER S-box Dari BINER = blok matriks P2, masukan BINER P2 menggunakan pola pemasukan proses 2
Output P2
Dari BINER = blok matriks P2, masukan BINER P2 dengan pola pemasukan proses 2
Output P2
Input K Read K
K to ASCII ASCII to BINER Dari BINER = blok matriks K2, masukan BINER K1 menggunakan Pola pemasukan awal
Dari blok matriks K2 = BINER, ambil bit K2 K2 dengan pola pengambilan B
Dari BINER = blok matriks K2, masukan BINER K2 dengan pola pemasukan proses 2
Output K2 Print C2 C2 = P3 C3 <- P3 ⊕ K3
Dari C2 = blok matriks P3, masukan C2 P3 menggunakan Pola pemasukan awal
Dari blok matriks P3 = BINER, ambil bit P3 dengan pola Tarian Topeng Ireng D
Dari BINER = blok matriks P3, masukan BINER P2 dengan pola pemasukan proses 3
17
Output P3
Dari K2 = blok matriks K3, masukan K2 Dari blok matriks K3 = BINER, ambil bit K3 K3 dengan pola pengambilan D
Dari BINER = blok matriks K3, masukan BINER K3 K3 menggunakan pola pemasukan proses 3
Output K3 Print C3 C3 = P4
C4 <- P4 ⊕ K4 Dari C3 = blok matrik P4, masukan C3 P4 menggunakan Pola pemasukan awal
Dari blok matriks P4 = BINER, ambil bit P4 dengan pola Tarian Topeng Ireng A
BINER to HEXA Dari HEXA = Tabel S-box, masukan HEXA HEXA konversi menggunakan S-box
Print BINER S-box Dari BINER = blok matriks P4, masukan BINER P3 menggunakan pola pemasukan proses 4 Output P4 Dari K3 = blok matriks K4, masukan K3
Dari blok matriks K4 = BINER, ambil bit K4 K4 dengan pola pengambilan A
Dari BINER = blok matriks K4, masukan BINER K4 K4 menggunakan pola pemasukan proses 4
Output K4 Print C4 Repeat
End
Proses Dekripsi {Program ini digunakan untuk melakukan proses dekripsi data} Kamus P,K,P1,K1,P2,K2,P3,K3,P4,K4 = integer C1,C2,C3,C4 = integer Start
Input K Read K
K to ASCII ASCII to BINER Dari BINER = blok matriks K1, masukan BINER K1 menggunakan Pola pemasukan awal
Dari blok matriks K1 = BINER , ambil bit K1 K1 dengan pola Tarian Topeng Ireng A
Dari BINER = blok matriks K1, masukan BINER K1 Output K1 K1 = K2
Dari K1 = blok matriks K2, masukan Bit K1 dengan pola pemasukan awal
Dari blok matriks K2 = BINER, ambil bit K2 dengan pola pengambilan D
Dari BINER = blok matriks K2, masukan BINER K2
Output K2 K2 = K3
Dari K2 = blok matriks K3, masukan Bit K2 K2 dengan pola pemasukan awal
Dari blok matriks K3 = BINER, ambil bit K3 K3 dengan pola pengambilan B
18
Dari BINER = blok matriks K3, masukan BINER K3 Output K3 K3 = K4
Dari K3 = blok matriks K4, masukan K3 Dari blok matriks K4 = BINER, ambil bit K4 K4 dengan pola pengambilan C
Dari BINER = blok matriks K4, masukan BINER K4 Output K4 P4 <- C4 ⊕ K4 Input C Read C
C4 to ASCII ASCII to BINER Dari BINER = blok matriks C4, masukan BINER C4 ⊕ K4
Print P4 Dari blok matriks P4 = BINER, ambil bit P4
Dari BINER P4 = blok matrik P4, masukan BINER Menggunakan pola pengambilan A
Output P4 P4 = C3
P3 <- C3 ⊕ K3 Dari P4 = blok matriks C3, masukan BINER C3 ⊕ K3
Print P3 Dari blok matriks P3 = BINER, ambil bit P3 BINER to HEXA
Dari HEXA = Tabel S-Box, masukan HEXA HEXA ditranformasi menggunakan S-Box
Dari BINER P3 = blok matriks P3, masukan BINER Menggunakan pola pengambilan D
Output P3
P3 = C2
P2 <- C2 ⊕ K2 Dari P3 = blok matriks C2, masukan BINER C2 ⊕ K2
Print P2 Dari blok matriks P2 = BINER, ambil bit P2 Dari BINER P2 = blok matrik P2, masukan BINER
Menggunakan pola pengambilan B Output P2 Output P2 P2 = C1
P1 <- C1 ⊕ K1 Dari P2 = blok matriks C1, masukan BINER C1 ⊕ K1
Print P1 Dari blok matriks P1 = BINER, ambil bit P1
BINER to HEXA Dari HEXA = Tabel S-Box, masukan HEXA HEXA ditranformasi menggunakan S-Box
Dari BINER P1 = blok matriks P1, masukan BINER Menggunakan pola pengambilan C
Output P1 P1 to BINER BINER to ASCII ASCII to CHAR Print P
End Pengujian korelasi digunakan untuk mengukur seberapa acak
perbandingan antara hasil enkripsi (ciphertext) dan plaintext. Nilai korelasi sendiri
19
berkisar 1 sampai -1, dimana jika nilai kolerasi mendekati 1 maka plaintext dan ciphertext memiliki hubungan yang sangat kuat, tetapi jika mendekati 0 maka plaintext dan ciphertext memiliki hubungan yang tidak kuat.
Tabel 5 Nilai Korelasi Setiap Putaran
Putaran Korelasi Putaran Korelasi
1 0.029048476 11 0.078491995
2 0.563466863 12 0.169660185
3 0.292463317 13 0.16777381
4 0.74080271 14 0.060462077
5 0.471806191 15 0.036032558
6 0.569649749 16 0.21366622
7 0.359996086 17 0.630641316
8 0.035895524 18 0.6041298
9 0.149478856 19 0.032723606
10 0.351994576 20 0.194308084
Pada Tabel 5 terlihat setiap putaran memiliki nilai kolerasi lemah sehingga
dapat disimpulkan bahwa algoritma kriptografi Block Cipher 64 bit berbasis pola
bentuk tarian topeng ireng dapat menghasilkan nilai korelasi enkripsi acak yang
dapat dibuat dalam bentuk grafik pada Gambar 15.
Gambar 15 Grafik Perbandingan Plaintext dan Ciphertext Gambar 15 menunjukkan bahwa antara putaran satu dengan putaran yang
lain memiliki perbedaan yang signifikan antara plaintext dan ciphertext.
Pengujian Avalanche effect dilakukan untuk mengetahui perubahan bit yang ada ketika plaintext diubah. Pengujian dilakukan dengan merubah karakter yang
terdapat pada plaintext awal, sehingga akan menghasilkan perbedaan pada setiap putarannya.
20
Tabel 6 Hasil Pengujian Avalanche effect
Putaran Jumlah Presentase (%) Putaran Jumlah Presentase
Bit Bit (%)
Berubah Berubah
1 29 45.3125 11 31 48.4375
2 34 53.125 12 32 50
3 29 45.3125 13 33 51.5625
4 28 43.75 14 29 45.3125
5 32 50 15 33 51.5625
6 32 50 16 37 57.8125
7 35 54.6875 17 34 53.125
8 27 42.1875 18 30 46.875
9 29 45.3125 19 28 43.75
10 30 46.875 20 25 39.0625
Rata-rata 48.203125%.
Gambar 16 Grafik Avalanche effect
Gambar 16 yaitu grafik berdasarkan hasil dari pengujian Avalanche effect,
pada penelitian ini plaintext awal adalah topengik yang kemudian diubah menjadi
kenyiman. Terjadi perubahan bit pada setiap putarannya, pada putaran ke 16
perubahan bitnya terjadi cukup besar yaitu 57,81% dengan arti pada putaran ini
terjadi perubahan bit yang baik, tetapi juga terjadi perubahan bit yang kecil pada
putaran ke 20 yaitu sebesar 39,06% ini berarti perubahan bitnya kurang baik.
Berdasarkan hasil pengujian putaran pertama sampai dengan putaran kedua puluh
dapat disimpulkan bahwa rata-rata hasil pengujian Avalanche effect ini yaitu
sebesar 48,2031%.
21
Pada perancangan kriptografi block cipher berbasis pola tarian topeng ireng ini, pola tarian topeng ireng dimanfaatkan untuk pemasukan plaintext. Bedanya pola
tarian topeng ireng 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 teknik tarian dansa tali dari Maluku. Pada pola sebelumnya pola tarian dansa
tali memiliki rata-rata nilai korelasi 0.241734, sedangkan pola tarian topeng ireng ini
memiliki rata-rata nilai korelasi 0.2876246. jadi pola tarian topeng ireng ini
memiliki rata rata nilai korelasi lebih tinggi dari pola pola yang sebelumnya seperti
tarian dansa tali dari Maluku.
5. Simpulan
Berdasarkan penelitian yang dilakukan, dapat disimpulkan bahwa
kriptografi Block Cipher 64 bit berbasis pola tarian topeng ireng dapat dikatakan sebagai sistem kriptografi. Dalam proses enkripsi, rancangan kriptografi Block Cipher berbasis pola tarian topeng ireng menghasilkan output yang acak sehingga
dapat digunakan sebagai pilihan dalam pengamanan data. Dalam pengujian avalanche effect yang dilakukan menunjukkan bahwa proses enkripsi di setiap
putaran memiliki perubahan yang mencapai 48,2031%.
6. Daftar Pustaka
[1] Tomasoa, E.L., Pakereng, M. A. I., 2016 “Pengaruh S-Box Advanced encryption standard (AES) Terhadap Avalanche effect Pada Perancangan Kriptografi Block Cipher 256 Bit Berbasis Pola Teknik Tarian Dansa Tali Dari Maluku”. Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana.
[2] Guntoro, Pakereng, M. A. I., 2016 “Perancangan Kriptografi Block Cipher
Berbasis Pola Ikan Berenang”. Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana.
[3] Setiawan, N. A., Pakereng, M. A. I., 2015 “Perancangan Algoritma
Kriptografi Block Cipher dengan Teknik Langkah Kuda Dalam Permainan
Catur”. Teknik Informatika, Fakultas Teknologi Informasi, Universitas
Kristen Satya Wacana.
[4] Scheier, Bruce, 1996, Applied Cryptography, Secon Editor, New York: John Wiley and Sons.
[5] Munir, R., 2006, Kriptografi, Bandung: Informatika.
22