Post on 06-Mar-2019
Perancangan dan Implementasi Algoritma Kriptografi
Cipher Block Berbasis pada Bentuk Piramida dan
Linear Congruential Generator
Artikel Ilmiah
Peneliti :
William Marthinus Mauliku (672009186)
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
Agustus 2015
Perancangan dan Implementasi Algoritma Kriptografi
CipherBlock Berbasis pada Bentuk Piramida dan
Linear Congruential Generator
Artikel Ilmiah
Diajukan kepada
Fakultas Teknologi Informasi
Untuk memperoleh gler Sarjana Komputer
Peneliti:
William Marthinus Mauliku (672009186)
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
Agustus 2015
1
Perancangan dan Implementasi Algoritma Kriptografi
Cipher Block Berbasis pada Bentuk Piramida dan
Linear Congruential Generator 1)
William M. Mauliku, 2)
M. A. Ineke Pakereng, 3)
Alz D. Wowor
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Jl. Diponegoro 52-60, Salatiga 50771, Indonesia
Email: 1) 672009186@student.uksw.edu, 2) inekep200472@yahoo.com, 3) alzdanny.wowor@staff.uksw.edu
Abstract
Data security is one of the very important factors in today's world of information
technology. One way to secure data is by using cryptographic techniques, but some of it
have been successfully solved by the cryptanalyst . Therefore there is a need to make a
new cryptographic algorithms. The design of the new cryptographic algorithm is based
on the shape of a pyramid and Linear Congruential Generator (LCG). The new
cryptographic algorithm is a block cipher that operate in the form of bits, and included in
symmetric key cryptography techniques. Results from the design of cryptographic
algorithms can be used to encrypt and decrypt the text files.
Keywords: Cryptography, Cipher Block, Linear Congruential Generator (LCG),
Symmetric Key, text files.
Abstrak
Keamanan data adalah salah satu faktor yang sangat penting dalam dunia teknologi
informasi saat ini. Salah satu cara untuk pengamanan data adalah dengan teknik
kriptografi, akan tetapi beberapa teknik kriptografi telah berhasil dipecahkan oleh para
kriptanalis sehingga perlu dibuat algoritma kriptografi baru. Perancangan algoritma
kriptografi berbasis pada bentuk piramida dan Linear Congruential Generator (LCG)
adalah suatu rancangan algoritma kriptografi cipher block yang beroperasi dalam bentuk
bit, dan termasuk dalam teknik kriptografi kunci simetris. Hasil dari perancangan
algoritma kriptografi ini dapat digunakan untuk enkripsi dan dekripsi pada file teks.
Kata Kunci : Kriptografi, Cipher Block, Linear Congruential Generator (LCG), Kunci
Simetris, file teks.
________________________ 1)Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi Universitas Kristen
Satya Wacana, Salatiga. 2)
Staff pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana, Salatiga. 3)
Staff pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana, Salatiga.
2
1. Pendahuluan
Keamanan data merupakan salah satu aspek penting dari suatu sistem
informasi. Pentingnya suatu informasi, berkaitan erat dengan betapa pentingnya
informasi tersebut dikirim dan diterima oleh pihak-pihak yang berkepentingan.
Informasi akan menjadi tidak berguna lagi apabila di tengah jalan informasi itu
disadap atau dibajak oleh orang yang tidak memiliki hak atasnya, sehingga
informasi yang seharusnya ditujukan pada pihak yang berkepentingan akan salah
sasaran dan menjadi tidak rahasia.
Satu hal yang perlu diingat adalah tidak ada satu sistem komputer pun yang
memiliki sistem keamanan yang sempurna, oleh karena itu yang dapat dilakukan
sebagai pengguna sistem informasi adalah mencoba meminimalisir celah
keamanan yang ada. Celah keamanan yang ada pada saat berkomunikasi atau
bertukar informasi dapat diminimalisir dengan beberapa metode dalam dunia
teknologi informasi. Salah satunya yakni dengan membuat informasi atau data
tersebut tidak dapat dibaca tanpa bantuan khusus yaitu dengan menggunakan
teknik kriptografi.
Teknik kriptografi saat ini banyak yang telah dapat dipecahkan atau dibobol
dengan menggunakan teknik yang disebut dengan Kriptanalisis (Criptanalisys).
Kemajuan di bidang teknologi hardware dan software serta, perkembangan ilmu
matematika juga turut membantu para kriptanalis dalam melakukan pekerjaannya.
Berdasarkan pada latar belakang ini, maka dilakukan penelitian yang
membahas tentang “Perancangan dan Implementasi Algoritma Kriptografi Cipher
Block Berbasis pada Bentuk Piramida dan Linear Congruential Generator”.
Penelitian ini dibuat dengan tujuan agar dapat menghasilkan sebuah algoritma
baru yang dapat membantu untuk melindungi dan meningkatkan keamanan data,
serta untuk menambah variasi baru dari teknik-teknik kriptografi yang telah ada.
2. Tinjauan Pustaka
Penelitian sebelumnya yang pernah dilakukan berjudul “Studi Teknis
Deskripsi dan Enkripsi File Dengan Menggunakan Algoritma GOST pada CFB
(Cipher Feedback).” Algoritma Gost merupakan block cipher yang beroperasi
pada ukuran blok pesan yang panjangnya 64-bit, sedangkan panjang kuncinya
265-bit. Jumlah putaran di dalam Gost adalah 32 putaran (round) sehingga
membuat kriptanalis sulit memecahkan ciphernya. Dengan melihat posisi dan
ukuran dari blok yang ada pada hasil enkripsi cipher block. Pihak yang tidak
berhak atas data tersebut bisa menyimpulkan bahwa record yang ada di dalam
database memiliki nilai yang sama. Untuk meminimalkan serangan terhadap
cipher block, diperlukan beberapa cara agar posisi dan ukuran yang ada tidak
sama yaitu dengan menggunakan mode operasi cipher block. Dalam hal ini
digunakan Mode Cipher-Feedback (CFB) karena pada mode ini tidak diperlukan
padding bit (bit tambahan) karena jumlah panjang blok sama dengan jumlah
panjang plaintext yang ada. Pengimplementasian algoritma Gost dan CFB dibuat
dengan menggunakan bahasa pemrograman Visual Basic 6.0 [1].
3
Penelitian kedua berjudul “Perancangan Algoritma Pada Kriptografi Block
Cipher dengan Teknik Langkah Kuda Dalam Permainan Catur”. Penelitian ini
membahas tentang perancangan algoritma kriptografi cipher block, dengan
menggunakan pola langkah kuda catur yang diterapkan dalam blok ukuran 8x8
(64 bit), yang digunakan untuk memasukan dan mengambil bit pada plainteks dan
kunci. Ada 4 kali proses (putaran) yang dilakukan sampai menghasilkan
cipherteks [2].
Penelitian ke-3 yang menjadi studi literatur berjudul “Perancangan
Kriptografi Block Cipher pada Teknik Anyaman Dasar Tunggal”. Penelitian ini
merancangan algoritma kriptografi block cipher dengan menggunakan anyaman
dasar tunggal, yang merupakan salah satu dari sekian banyak teknik anyaman
yang diterapkan pada pembuatan tikar, ancak, atau yang lainnya. Teknik anyaman
dasar tunggal digunakan sebagai pola untuk menempatkan bit-bit dalam sebuah
blok yang dikombinasikan dengan operasi-operasi kriptografi. Kriptografi ini
menggunakan transposisi bit dan beroperasi dalam 64 bit, serta ada 5 kali putaran
sampai menghasilkan ciphertext [3].
Berdasarkan penelitian-penelitian tersebut maka akan dijadikan acuan dalam
perancangan algoritma kriptografi baru ini. Perbedaan mendasar dengan
penelitian-penelitian yang sebelumnya adalah algoritma Cipher Block yang
dirancang ini beroperasi atau diterapkan blok berukuran 16x8 (128 bit) serta,
menggunakan nilai-nilai konstanta dari linear congruential generator sebagai,
generator untuk pembangkitan kunci.
Secara etimologi, kriptografi (cryptography) berasal dari bahasa Yunani dan
terdiri dari dua suku kata, yaitu “cryptos” yang artinya rahasia (secret) dan
“graphein” artinya tulisan (writing). Sehingga kriptografi dapat diartikan sebagai
tulisan rahasia (secret writing) [4].
Ada empat tujuan mendasar dari ilmu kriptografi yang juga merupakan
aspek keamanan informasi [5] yaitu :
1. Confidentiality (kerahasiaan)
2. Data integrity (keutuhan data)
3. Authentication (otentikasi)
4. Non-repudiation (anti-penyangkalan)
Kriptografi memiliki dua konsep utama, yaitu enkripsi dan dekripsi.
Enkripsi adalah proses menyandikan plaintext menjadi ciphertext dengan
mengubah pesan menjadi bentuk lain yang disamarkan agar tidak dikenali secara
langsung, sedangkan dekripsi adalah proses mengembalikan ciphertext menjadi
plaintext. Kriptografi dapat dibedakan lagi menjadi kriptografi kunci simetris
(Symmetric-key cryptography) dan kriptografi kunci asimetris (asymmetric-key
cryptography) berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi.
Sistem kriptografi kunci simetris, kunci yang digunakan untuk enkripsi
sama dengan kunci untuk dekripsi, oleh karena itulah dinamakan kriptografi
simetris (Gambar 1). Sistem kriptografi kunci simetris mengasumsikan pengirim
dan penerima pesan sudah berbagi kunci yang sama sebelum bertukar pesan.
Keamanan sistem kriptografi simetri terletak pada kerahasiaan kuncinya.
4
Gambar 1 Skema Kriptografi Kunci Simetris (Munir, 2006)
Jika kunci untuk enkripsi tidak sama dengan kunci yang digunakan untuk
dekripsi, maka kriptografinya dinamakan sistem kriptografi asimetri. Pada
kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai sepasang kunci,
yaitu kunci publik dan kunci privat. Pengirim mengenkripsi pesan dengan
menggunakan kunci publik si penerima pesan (receiver). Hanya penerima pesan
yang dapat mendekripsi pesan, karena hanya receiver yang mengetahui kunci
privatnya (Gambar 2).
Gambar 2 Skema Kunci Kriptografi Kunci Asimetris (Munir, 2006)
Cipher Block merupakan suatu algoritma dimana input dan output-nya
berupa satu blok dan setiap blok terdiri dari beberapa bit (1 blok terdiri dari 64-bit
atau 128-bit). Block cipher mempunyai banyak aplikasi, aplikasi tersebut
digunakan untuk memberikan layanan confidentialy (kerahasiaan), integritas data
atau authentication (pengesahan pemakai), dan juga bisa memberikan layanan
keystream generator untuk stream cipher [5].
Bentuk piramida digunakan sebagai pola untuk pengambilan plaintext.
Piramida yang dijadikan sebagai dasar untuk pembuatan pola adalah, piramida
bangsa maya di kawasan Amerika Selatan. Bentuk piramida bangsa maya yang
unik karena berbeda dengan piramida yang lebih dikenal yaitu piramida di Mesir.
Hal inilah yang mendasari sehingga bentuk piramida bangsa maya dijadikan dasar
untuk pembuatan pola pengambilan bit pada plaintext. Gambar 3 menunjukkan
bentuk piramida bangsa Maya.
5
Gambar 3 Piramida Bangsa Maya [6]
Linear Congruential Generator (LCG) adalah salah satu pembangkit
bilangan acak tertua dan sangat terkenal. LCG didefinisikan dalam relasi rekurens
[4]:
,
yang dalam hal ini,
bilangan acak ke-n dari deretnya
bilangan acak sebelumnya
a = faktor pengali
b = increment
m = modulus
(a,b, dan m semuanya konstanta).
LCG sangat sensitif terhadap pemilihan nilai-nilai a, b, dan m. Pemilihan nilai-
nilai yang buruk dapat mengarah pada implementasi LCG yang tidak bagus.
Definisi I. Sebuah kriptografi dapat dikatakan sebagai sebuah sistem
kriptografi jika memenuhi lima-tuple (five-tuple) (P, C, K, E, D) yang memenuhi
kondisi [7]:
1. adalah himpunan berhingga dari plainteks,
2. adalah himpunan berhingga dari cipherteks,
3. merupakan ruang kunci (keyspace), adalah himpunan berhingga dari
kunci,
4. E adalah himpunan fungsi enkripsi CPk
e :,
5. D adalah himpunan fungsi dekripsi PCk
d :.
Untuk setiap k K, terdapat aturan enkripsi ke E dan berkorespodensi dengan
aturan dekripsi kd D. Setiap P C dan C P adalah fungsi sedemikian
hingga xxed kk untuk setiap plainteks x P.
Diferensiasi digunakan untuk menganalisis nilai kemiringan. Diferensiasi
data adalah perbandingan selisih antar dua titik. Dalam kalkulus, metode ini
sering disebut sebagai turunan atau kemiringan dari data. Jika diberikan kumpulan
data ((x1,y1), (x2,y2), (x3,y3), …, (xn,yn)) dengan syarat bahwa xi<xi+1 dimana i =
nx
mbaxx nn mod)( 1
1nx
)1(
6
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 [8]. Nilai diferensiasi data pada dua titik dapat dibentuk
persamaan sebagai berikut
(2)
dengan (xa, ya) sebagai titik pertama, dan titik berikutnya adalah (xb, yb).
Persamaan 3 menujukkan secara umum, apabila terdapat n data maka untuk
menentukan rata-rata dari diferensiasi data dapat dicari untuk melihat tren dari
setiap data Rataan diferensiasi (Rd).
(3)
Pengujian lain yang akan dilakukan adalah menghitung nilai keacakan dari
plaintext terhadap ciphertext. Definisi dari acak (randomness) dalam kriptografi
adalah sifat bebas dari kecenderungan sehingga tidak mudah untuk diterka [9].
Nilai keacakan diperoleh dengan perbandingan antara selisih plaintext dan
ciphertext terhadap plaintext, dapat dijabarkan seperti pada Persamaan 4.
(4)
Korelasi merupakan suatu teknik statistik yang dipergunakan untuk
mengukur kekuatan hubungan dua variabel dan juga untuk mengetahui bentuk
hubungan antara dua variabel tersebut dengan hasil yang sifatnya kuantitatif.
Kekuatan hubungan antara dua variabel biasanya disebut dengan koefisien
korelasi dan dilambangkan dengan symbol “r”. Nilai koefisien r akan selalu
berada diantara -1 sampai +1 sehingga diperoleh persamaan 5 [10].
(5)
Kategorisasi kekuatan hubungan koefisien korelasi terdapat pada Tabel 1.
Tabel 1 Kekuatan Hubungan Korelasi [11]
Merujuk pada persamaan maka secara matematis nilai r diperoleh dari
jumlah nilai selisih perkalian antara x dan y dengan hasil perkalian jumlah total x
11 r
Dy
Dx=
(yb - ya )
(xa - xb )
1
)/()()/()()/()( 1123231212
n
xxyyxxyyxxyyR nnnn
d
i
iii
p
cpY
7
dan y dibagi dengan hasil akar dari selisih untuk perkalian jumlah x kuadrat
dengan kuadrat pangkat dua untuk jumlah total x dengan selisih jumlah y kuadrat
dengan kuadrat pangkat dua untuk jumlah total y dimana x sebagai plainteks dan
y sebagai cipherteks sehingga dapat diperoleh persamaan 6 [10].
(6)
Analisis yang akan dilakukan terhadap implementasi perancangan algoritma
kriptografi berbasis pada bentuk piramida dan linear congruentional generator
adalah, analisis terhadap nilai koefisien determinasi dan fitting (pencocokan
kurva). Grafik fitting (pencocokan kurva) dapat menghasilkan model persamaan
untuk mengatasi kekurangan hardware dan software sehingga, secara statistik
dapat mewakilkan data. Hasil lain dari fitting adalah nilai R2
yang secara statistik
dapat menunjukkan apabila nilainya mendekati 1 maka semakin mendekati kurva
dan dapat dijadikan model, begitupun sebaliknya apabila nilai R2 semakin
mendekati 0 maka tidak dapat dijadikan model karena nilainya tidak cocok
dengan kurva [12].
3. Metode dan Perancangan Sistem
Penelitian yang dilakukan diselesaikan melalui beberapa tahapan penelitian
yang secara keseluruhan terbagi dalam empat tahapan, yaitu: (1) Identifikasi
masalah dan studi literatur, (2) Perancangan sistem, (3) Implementasi Sistem (4)
Pengujian sistem dan analisis hasil pengujian, dan (5) Penulisan laporan.
Gambar 4 Tahapan Penelitian
Tahapan penelitian pada Gambar 4, dapat dijelaskan sebagai berikut. Tahap
pertama: identifikasi masalah dan studi literatur, yaitu mengidentifikasi masalah-
masalah yang akan dibahas, serta mendapatkan data dan literatur yang terkait
})(}{)({
)(
2222
yynxxn
yxxynr
8
dengan perancangan dan implementasi algoritma kriptografi cipher block berbasis
pada bentuk piramida dan Linear Congruential Generator (LCG); Tahap kedua:
Perancangan Sistem, yaitu meliputi pembuatan bagan proses enkripsi dan dekripsi
serta gambaran umum mengenai pembuatan teknik kriptografi; Tahap ketiga:
implementasi sistem, yaitu sistem yang telah dirancang akan diimpementasikan ke
dalam bentuk program; Tahap keempat: pengujian sistem, yaitu dilakukan
pengujian terhadap sistem yang dibangun, kemudian melakukan analisis hasil dari
teknik kriptografi yang telah dibuat; Tahap kelima: penulisan laporan hasil
penelitian, yaitu mendokumentasikan proses penelitian yang telah dilakukan dari
tahap awal hingga akhir ke dalam tulisan, yang akan menjadi laporan hasil
penelitian.
Proses enkripsi pada perancangan algoritma kriptografi cipher block
berbasis pada bentuk piramida dan linear congruential generator adalah sebagai
berikut (Gambar 5). Plaintext dikonversikan ke dalam bentuk biner sesuai dengan
tabel ASCII, kemudian rangkaian bilangan biner dimasukkan pada matriks 16x8
sesuai dengan pola, dan bilangan biner di dalam matriks diambil sesuai dengan
pola sehingga didapatkan P1.
Gambar 5 Bagan Rancangan Proses Enkripsi
Hal yang sama juga dilakukan pada proses pembangkitan kunci. Bilangan
acak akan ditambahkan kedalam proses pembangkitan kunci. Tujuan dari
penggunaan bilangan acak itu sendiri adalah untuk menghasilkan nilai keacakan
yang baik pada parameter kunci. Pembangkit bilangan acak semu yang digunakan
dalam perancangan kriptografi ini adalah Linear Congruential Generator (LCG).
Hasil dari kunci yang telah ditambahkan dengan bilangan acak kemudian
dikonversikan ke dalam bentuk biner sesuai dengan tabel ASCII. Rangkaian biner
kunci dimasukkan pada matriks 16x8, kemudian rangkaian bilangan biner di
dalam matriks tersebut diambil sesuai dengan pola bentuk piramida sehingga
didapatkan K1.
9
Gambar 6 Bagan Rancangan Proses Dekripsi
Gambar 6 merupakan rancangan bagan proses dekripsi. Algoritma ini
merupakan kriptografi simetris sehingga kunci yang digunakan untuk enkripsi
sama dengan proses dekripsi. Proses dekripsi pada perancangan dan implementasi
algoritma kriptografi cipher block berbasis pada bentuk piramida dan linear
congruential generator merupakan kebalikan dari proses enkripsi.
4. Hasil dan Pembahasan
Pada bagian ini akan dibahas secara lebih rinci mengenai perancangan dan
implementasi algoritma kriptografi cipher block berbasis pada bentuk piramida
dan linear congruential generator. Bagian ini juga akan membahas tentang proses
enkripsi dan dekripsi serta, proses pembangkitan bilangan acak yang digunakan
pada kunci sehingga menghasilkan suatu nilai keacakan yang baik.
Perancangan algoritma kriptografi cipher block baru menggunakan kode
ASCII (American Standard Code of Information Interchange) untuk mengubah
setiap karakter dari plaintext yang berupa teks menjadi rangkaian biner.
Rangkaian biner tersebut dimasukkan ke dalam matriks 16x8, kemudian diacak
dan diambil sesuai dengan pola yang ditentukan. Proses ini tidak hanya
berlangsung pada plaintext saja tapi juga pada proses pembentukan kunci.
Algoritma kriptografi yang dirancang mempunyai 4 putaran. Setiap putaran,
rangkaian-rangkaian biner plaintext dan kunci yang didapat setelah melalui proses
masuk dan pengambilan bit kemudian, dari rangkaian bit-bit plaintext dan kunci
akan dilakukan operasi matematika XOR, sehingga pada putaran keempat akan
menghasilkan ciphertext. Pola pengambilan rangkaian biner pada matriks 16x8
untuk plaintext berbasis pada bentuk piramida dan, berbeda dari pola pengambilan
rangkaian biner pada matriks 16x8 untuk kunci. Setiap putaran menggunakan pola
yang berbeda, baik untuk plaintext maupun kunci. Pengambilan rangkaian biner
10
plaintext dalam matriks 16x8 sesuai dengan bentuk piramida bangsa maya seperti
pada Gambar 7.
Gambar 7 Rancangan Pola Pengambilan Plaintext pada Putaran ke-1
Sesuai dengan Gambar 5 maka didalam 1 blok matriks terdapat 128 bit, dan
urutan pengambilan rangkaian bit-bit tersebut dijabarkan sebagai berikut.
(7)
Gambar 8 Rancangan Pola Pengambilan Kunci pada Putaran ke-1
Pola pengambilan kunci pada matriks 16x8 seperti Gambar 8. Pola tersebut
merupakan pola pengambilan rangkaian biner pada kunci di putaran ke-1. Berikut
adalah penjabaran dari urutan pengambilan rangkaian biner pada Gambar 8.
.,,,,,,,
;,,,,,,
;,,,,,,,
;,,,,,,,
;,,,,,,,
12812712612512412312212116
323130292827,26254
24232221201918173
1615141312111092
876543211
nnnnnnnnx
nnnnnnnnx
nnnnnnnnx
nnnnnnnnx
nnnnnnnnx
11
;,,,,,,,
;,,,,,,,
;,,,,,,,
;,,,,,,,
;,,,,,,,
12812712612512412312212116
32313029282726254
24232221201918173
1615141312111092
876543211
kkkkkkkky
kkkkkkkky
kkkkkkkky
kkkkkkkky
kkkkkkkky
(8)
Alur proses enkripsi dan dekripsi telah dijelaskan di pembahasan
sebelumnya yaitu pada bagian metode perancangan sistem. Proses yang lebih
lengkap mengenai alur enkripsi serta dekripsi akan dijabarkan pada Gambar 9 dan
Gambar 10.
Gambar 9 Bagan Proses Enkripsi
12
Gambar 9 menggambarkan proses enkripsi, secara keseluruhan proses
enkripsi ada empat putaran, yang di dalam setiap putarannya terdiri dari dua
proses yaitu, proses untuk pembentukan plaintext dan, proses untuk pembentukan
kunci. Plaintext diubah ke dalam bentuk bit sesuai dengan tabel ASCII, dan
rangkaian bit dimasukkan ke matriks 16x8 sesuai dengan pola. Pengambilan bit
menggunakan pola yang menyerupai bentuk piramida dan, hasil pengambilan
rangkaian biner akan ditampung menjadi P1. Hal yang sama juga terjadi pada
proses pembentukan kunci, letak perbedaannya adalah pada pola yang digunakan
dan, kunci yang diinputkan akan dibangkitkan menggunakan generator
pembangkit bilangan acak semu yaitu linear congruential generator (LCG).
Rangkaian biner dari kunci setelah melalui proses pengambilan ditampung di K1.
Rangkaian biner pada P1 akan di XOR dengan rangkaian biner pada K1.
Persamaan 7 menunjukkan susunan pengambilan rangkaian biner dari plaintext
pada putaran pertama sedangkan, Persamaan 8 menunjukkan susunan
pengambilan rangkaian biner kunci pada putaran pertama. Rangkaian biner pada
plaintext yang telah ditampung pada P1 yaitu x1 (n1, n2, n3, n4, n5, n6, n7, n8) di XOR
dengan, rangkaian biner pada K1 yakni y1 (k1, k2, k3, k4, k5, k6, k7, k8). Hal yang
sama akan berulang pada x2 y2 dan seterusnya sampai x16 y16. Hasil XOR dari
P1 dan K1 adalah C1. Rangkaian biner pada C1 kemudian akan digunakan
sebagai plaintext untuk proses masuk bit pada putaran ke-2 sedangkan, rangkaian
bit pada K1 akan digunakan untuk proses masuk bit kunci pada putaran ke-2.
Proses yang dilakukan didalam putaran ke-2, ke-3, dan ke-4 merupakan
proses yang hampir sama dengan proses yang telah dilakukan pada putaran ke-1.
Perbedaannya adalah pola yang digunakan berbeda pada setiap putaran, baik dari
putaran ke-1 sampai putaran ke-4. Hasil dari putaran ke-4 yaitu P4 dan K4.
Ciphertext adalah hasil XOR dari P4 dan K4.
Penggunaan bilangan acak semu untuk pembangkitan kunci dimaksudkan
untuk menghasilkan nilai yang tidak dapat diprediksi sehingga didapatkan suatu
nilai keacakan yang cukup baik. Pembangkit bilangan acak didapatkan dari, nilai
rata-rata desimal bilangan kunci dijumlahkan dengan nilai konstanta a, kemudian
nilai tersebutlah yang akan digunakan dalam rumus pembangkit bilangan acak.
Bit-bit hasil dari pembangkitan bilangan acak inilah yang akan digunakan di
dalam proses 1 pada bagian kunci di putaran pertama. Nilai-nilai konstanta Linear
Congruential Gonerator (LCG) yang digunakan untuk pembangkitan kunci pada
perancangan algoritma ini adalah, nilai konstanta a = 421, b = 1663, dan m =
7875.
Proses dekripsi merupakan pengembalian ciphertext ke plaintext. Algoritma
kriptografi berbasis pada bentuk piramida dan Linear Congruential Generator
merupakan kriptografi kunci simetris sehingga, untuk proses dekripsi dari
algoritma ini merupakan kebalikan dari proses enkripsi yang artinya terdiri dari 4
putaran juga dan menggunakan kunci yang sama. Alur proses dekripsi
ditunjukkan pada Gambar 10.
13
Gambar 10 Bagan Proses Dekripsi
Pengujian kriptografi menggunakan perhitungan secara manual. Proses
enkripsi pada pengujian kriptografi ini menggunakan kata
“FTIUKSW_SALATIGA” sebagai plaintext dan “JUVENTUSSEMANGAT”
sebagai kunci. Proses yang dijabarkan dalam pembahasan ini adalah proses pada
putaran pertama.
Plaintext “FTIUKSW_SALATIGA” dan kunci “JUVENTUSSEMANGAT”
diubah ke biner menjadi,
14
F : 01000110
T : 01010100
I : 01001001
U : 01010101
K : 01001011
S : 01010011
W : 01010111
_ : 01011111
S : 01010011
A : 01000001
L : 01001100
A : 01000001
T : 01010100
I : 01001001
G : 01000111
A : 01000001
J : 01001010
U : 01010101
V : 01010110
E : 01000101
N : 01001110
T : 01010100
U : 01010101
S : 01010011
S : 01010011
E : 01000101
M : 01001101
A : 01000001
N : 01001110
G : 01000111
A : 01000001
T : 01010100
Pengambilan rangkaian biner pada matriks 16x8 untuk plaintext dan kunci
sesuai dengan pola yang telah ditunjukkan pada Gambar 5 dan Gambar 6, yang
merupakan pola pengambilan pada putaran pertama. Rangkaian biner kemudian
diurutkan sesuai dengan Persamaan 7 untuk plaintext dan, Persamaan 8 untuk
kunci sehingga menghasilkan,
P1 = 11111111, 00011110, 00111001, 10100100, 01000100, 10011101,
10001010, 00000100, 10000111, 11101001, 01110100, 01001000,
00101001, 00000100, 10001001, 01001001
K1 = 11000010, 01101101, 00000100, 10101001, 00010010, 00100101,
11010100, 10000011, 01111111, 11000101, 11011001, 11100001,
00111101, 11000110, 10111010, 10001010
C1 = 00111101, 01110011, 00111101, 00001101, 01010110, 10111000,
01011110, 10000111, 11111000, 00101100, 10101101, 10101001,
00010100, 11000010, 00110011, 11000011
Berikut adalah hasil dari setiap putaran proses enkripsi dan nilai desimal serta,
karakternya yang ditunjukkan pada Tabel 2.
Tabel 2 Hasil XOR Tiap Putaran
Hasil XOR Setiap Putaran Nilai Desimal Karakter
C1
00111101, 01110011, 00111101,
00001101, 01010110, 10111000,
01011110, 10000111, 11111000,
00101100, 10101101, 10101001,
00010100, 11000010, 00110011,
11000011
61, 115, 61, 13, 86,
184, 94, 135, 248,
44, 173, 169, 20,
194, 51, 195
=s= V¸^‡ø,©�Â3Ã
C2
00011001, 10101111, 01100101,
01000011, 11111001, 10000001,
25, 175, 101, 67,
249, 129, 188, 27,
�¯eCù ¼�@-
ˆ·DELÒrý
15
10111100, 00011011, 01000000,
00011111, 10001000, 10110111,
01111111, 11010010, 01110010,
11111101
64, 31, 136, 183,
127, 210, 114, 253
C3
11001111, 11011101, 10101000,
11011101, 00000111, 00001010,
00101001, 00011000, 11101110,
11011010, 00111100, 00111010,
10000101, 10111110, 00101001,
10111001
207, 221, 168, 221,
7, 10, 41, 24, 238,
218, 60, 58, 133,
190, 41, 185
ÏݨÝ�
)�îÚ<:…¾)¹
Ciphertext
10000111, 01010001, 01010111,
01111001, 11101110, 00111100,
11101100, 11011111, 00101110,
01001001, 01000010, 00011001,
00100010, 00010011, 00101101,
11011001
135, 81, 87, 121,
238, 60, 236, 223,
46, 73, 66, 25, 34,
19, 45, 217
‡QWyî<ìß.IB�"�-Ù
Pengujian pertama yang dilakukan adalah mencari nilai diferensiasi.
Pengujian ini dilakukan untuk mencari nilai kemiringan, dalam hal ini hanya
melihat nilai dari ciphertext berdasarkan plaintext yang diinputkan. Apabila
nilainya negatif maka kecenderungan nilai dari ciphertext pertama ke berikutnya
cenderung menurun (kebawah). Mengacu pada Persamaan 3 maka dapat diperoleh
nilai diferensiasi ciphertext dari algoritma yang telah dibuat.
Pengujian ke-2 yaitu mencari nilai keacakan plaintext terhadap ciphertext.
Nilai keacakan sendiri adalah perbandingan selisih antara ciphertext dengan
plaintext terhadap ciphertext, sehingga apabila nilai yang dihasilkan dari
pengujian ini negatif maka kecenderungan nilai ciphertext berada di bawah
plaintext. Mengacu pada Persamaan 4 maka dicari nilai keacakannya.
Pengujian berikutnya merujuk pada Persamaan 6, yang merupakan
persamaan untuk mencari nilai korelasi antara plaintext dan ciphertext. Nilai
korelasi berkisar dari -1 sampai 1. Apabila nilai korelasi mendekati 1 maka nilai
plaintext dan ciphertext sangatlah berhubungan (berkorelasi) sedangkan, apabila
nilai korelasi yang dihasilkan semakin mendekati 0 (nol) maka, nilai plaintext dan
ciphertext saling tidak berhubungan dan secara statistik apabila suatu kriptografi
dengan nilai korelasi antara ciphertext dan plaintext mendekati 0 (nol) dapat
dikatakan cukup baik.
Tabel 3 Nilai Keacakan, Diferensiasi dan Korelasi Tiap Proses
Keacakan Diferensiasi Korelasi
Proses 1 -0.344 -0.400 -0.022
Proses 2 -0.025 98.267 -0.239
Proses 3 -1.048 -156.400 -0.203
Proses 4 -0.264 -78.533 0.245
16
Tabel 3 menunjukkan hasil dari pengujian setiap proses didalam algoritma
yang dirancang. Nilai-nilai yang dihasilkan adalah, nilai keacakan, diferensiasi,
dan korelasi.
Merujuk pada kekuatan hubungan korelasi pada Tabel 1 maka, nilai-nilai
hasil pengujian korelasi yang ditampilkan pada Tabel 3 berada di kisaran
hubungan kurang berarti dan hubungan lemah, sehingga dapat dikatakan bahwa
algoritma kriptografi yang dirancang dapat menyamarkan plaintext.
Sebagai implementasi dari algoritma ini maka dibuat sebuah aplikasi
enkripsi dan dekripsi dengan inputan berupa file teks, dan outputnya juga berupa
file teks. Jumlah karakter untuk inputan pada kunci dibatasi paling banyak 8
karakter, dan untuk mengisi blok-blok yang kosong pada matriks 16x8 maka akan
dilakukan padding karakter. Karakter yang digunakan untuk padding dalam
perancangan aplikasi ini adalah karakter “Null” (0).
Merujuk pada Definisi 1. Suatu kriptografi dapat dikatakan sebagai sebuah
teknik kriptografi jika memenuhi 5-tuple yaitu P, C, K, E, dan D [6]. P adalah
himpunan berhingga dari plainteks. Perancangan kriptografi ini menggunakan 256
karakter ASCII yang di ambil dari tabel ASCII, himpunan plainteks pada alur
pengambilan berbentuk piramida merupakan himpunan berhingga. C adalah
himpunan berhingga dari ciphertext. Ciphertext dihasilkan dalam bit (0 dan 1)
himpunan dari ciphertext merupakan himpunan berhingga. K, adalah keyspace
atau ruang kunci adalah, himpunan berhingga dari kunci. Jumlah ruang kunci
yang dipakai dalam perancangan ini adalah 256 karakter dalam ASCII, sehingga
ruang kunci merupakan himpunan berhingga dari kunci. E, enkripsi, dan D,
dekripsi, setiap ek : P→C dan dk : C → P adalah fungsi sedemikian hingga
dk(ek(x)) = x, untuk setiap plainteks x∊P. Pembahasan sebelumnya telah
membahas proses enkripsi dan dekripsi sehingga telah memenuhi tuple E dan D.
Algoritma kriptografi berbasis pada bentuk piramida dan linear congruential
generator merupakan sebuah sistem kriptografi, karena telah memenuhi lima
kondisi 5-tuple.
Pengujian perancangan algoritma kriptografi berbasis pada bentuk piramida
dan linear congruential generator sebagai sebuah teknik kriptografi maka
dilakukan proses enkripsi dan dekripsi dengan menggunakan aplikasi yang telah
dirancang. Sebelum melakukan proses enkripsi dan dekripsi perlu dipersiapkan
beberapa hal:
a) Plainteks yang digunakan adalah “FTIUKSW_SALATIGA”
b) Kunci yang akan digunakan adalah “JUVENTUS”
Gambar 12 menunjukkan file teks yang telah disimpan dan di dalamnya berisi
kalimat “FTIUKSW_SALATIGA”
17
Gambar 12 Plaintext disimpan pada File Teks
Berikut adalah tampilan tab enkripsi dari aplikasi yang dirancang (Gambar
13). File teks yang telah disiapkan, diinputkan pada bagian file dengan
menggunakan tombol Add File, kunci “JUVENTUS ” dimasukkan pada bagian
Key.
Gambar 13 Tampilan Tab Enkripsi
Waktu yang dibutuhkan untuk proses enkripsi file
“FTIUKSW_SALATIGA” adalah 48 miliseconds atau 0.048 detik, dan alokasi
memori yang digunakan pada saat proses enkripsi adalah 36.69 Mb. Gambar 14
adalah hasil enkripsi dari file “FTIUKSW_SALATIGA”.
18
Gambar 14 Hasil Enkripsi File “FTIUKSW_SALATIGA”
Tampilan dari tab dekripsi ditunjukkan pada Gambar 15, untuk proses
dekripsi hampir sama seperti pada proses enkripsi. Algoritma kriptografi berbasis
pada bentuk piramida dan linear congruential generator merupakan jenis
kriptografi kunci simetris, sehingga inputan karakter pada kolom kunci harus
sama seperti pada saat melakukan enkripsi.
Gambar 15 Tampilan Tab Dekripsi
Waktu yang dibutuhkan untuk proses dekripsi file adalah 51 miliseconds
atau 0.051 detik. dan alokasi memori yang digunakan pada saat proses dekripsi
adalah sebesar 41.27 Mb. Gambar 16 adalah tampilan dari file yang telah berhasil
didekripsi.
19
Gambar 16 Hasil Dekripsi
Pembahasan berikutnya mengenai hasil pengujian dari kriptografi yang
telah dirancang. Pengujian yang dilakukan terhadap aplikasi dari algoritma
kriptografi ini yakni, pengujian waktu dan pengujian memori.
Data yang dinputkan sebagai plaintext sebanyak 28 data yang dipilih dengan
sembarang sesuai dengan banyak karakter yang diinputkan. Data terkecil yang
diinputkan adalah 5 karakter dan, data terbesar yang diinputkan adalah 1000
karakter. Hasil dari pengujian secara statistik mengandung informasi terhadap
kekuatan algoritma kriptografi yang dirancang. Keterbatasan data yang
diujicobakan bukan menunjukkan keterbatasan algoritma dalam memproses data
tetapi pada keterbatasan hardware dan software, oleh karena itu digunakan
metode fitting (pencocokan kurva), sehinga dapat diperoleh model yang secara
statistik dapat mewakilkan data dalam hal ini kemampuan algoritma.
Gambar 17 menunjukkan hasil dari pengujian waktu proses enkripsi yang
dilakukan terhadap plaintext yang telah diujicobakan, sumbu x menyatakan
banyaknya karakter sedangkan sumbu y menunjukkan waktu (ms). Berdasarkan
grafik hasil pengujian tersebut maka dilakukan fitting dan diperoleh model
persamaan terhadap algoritma kriptografi berbasis pada bentuk piramida dan
linear congruential generator sebagai berikut.
(9)
Gambar 17 Grafik Waktu pada Proses Enkripsi
286,8105.0)( xxf
20
Grafik pada Gambar 17 juga memberikan nilai R2 = 0.994, yang merupakan
nilai koefisien determinasi dari pengujian waktu terhadap plaintext, sehingga
dapat disimpulkan secara statistik bahwa Persamaan 9 dapat dijadikan model
terhadap algoritma kriptografi berbasis pada bentuk piramida dan linear
congruential generator. Model ini dapat digunakan untuk memproyeksikan dan
atau menginterpolasikan kebutuhan waktu berdasarkan inputan karakter, sebagai
contoh data yang diinputkan sebanyak 2000 karakter maka berdasarkan
Persamaan 9 diperoleh
286,8)2000(105.0)2000( f . (10)
= 218.286 ms
Pengujian memori dapat dilihat pada Gambar 18. Grafik pada Gambar 18
menunjukkan hasil dari pengujian memori yang dilakukan terhadap plaintext,
yang telah diujicobakan. Sumbu x menunjukkan banyaknya karakter, dan sumbu y
menunjukkan banyaknya memori yang digunakan.
Gambar 18 Grafik Memori pada Prosess Enkripsi
Model fitting untuk kebutuhan memori dari proses enkripsi adalah fungsi
linear ditunjukkan pada Gambar 18 secara umum diberikan pada Persamaan 11.
Berdasarkan hasil pengujian didapatkan nilai R2 sebesar 0,635 dan model
persamaan algoritma yang dirancang sebagai berikut,
15,40004.0)( xxf (11)
Grafik pada Gambar 18 sangat fluktuatif. Nilai R2 yang didapatkan sebesar
0,635 sehingga, secara statistik Persamaan 11 kurang baik untuk dijadikan model
yang dapat digunakan untuk memproyeksikan dan atau menginterpolasikan
kebutuhan memori berdasarkan inputan karakter pada algoritma kriptografi
berbasis pada bentuk piramida dan linear congruential generator.
Gambar 19 Grafik Waktu pada Proses Dekripsi
21
Berdasarkan Gambar 19, yang merupakan grafik hasil pengujian waktu pada
proses dekripsi, maka setelah melalui proses fitting diperoleh nilai R2 = 0.991 dan
model persamaan terhadap algoritma kriptografi berbasis pada bentuk piramida
dan linear congruential generator sebagai berikut.
(12)
Nilai R2 yang diperoleh dari hasil fitting grafik pada Gambar 19 yaitu
sebebesar 0.991, yang merupakan nilai koefisien determinasi dari pengujian
waktu terhadap plaintext pada proses dekripsi, sehingga dapat disimpulkan secara
statistik bahwa Persamaan 12 dapat dijadikan model terhadap algoritma
kriptografi berbasis pada bentuk piramida dan linear congruential generator.
Model ini dapat digunakan untuk memproyeksikan dan atau menginterpolasikan
kebutuhan waktu dekripsi berdasarkan inputan karakter, sebagai contoh data yang
diinputkan sebanyak 2000 karakter maka berdasarkan Persamaan 12 diperoleh
319.9)2000(107.0)2000( f (13)
Gambar 20 Grafik Memori pada Proses Dekripsi
Model fitting untuk kebutuhan memori dari proses dekripsi adalah fungsi
linear ditunjukkan pada Gambar 20. Hasil dari fitting grafik pada Gambar 20
secara umum diberikan pada Persamaan 14. Berdasarkan hasil fitting juga
diperoleh nilai R2 sebesar 0,690 dan, model persamaan algoritma yang dirancang
sebagai berikut.
(14)
Grafik pada Gambar 20 cukup fluktuatif. Nilai R2 yang didapatkan dari
proses fitting terhadap grafik tersebut sebesar 0.690 sehingga, Persamaan 14
kurang cocok untuk dijadikan model yang dapat digunakan untuk
memproyeksikan dan atau menginterpolasikan kebutuhan memori pada proses
dekripsi.
5. Simpulan
Berdasarkan penelitian yang telah dilakukan maka dapat diambil
kesimpulan yaitu perancangan algoritma kriptografi berbasis pada bentuk
piramida dan linear congruetial generator dapat melakukan proses enkripsi dan
dekripsi. Perancangan ini juga telah memenuhi 5-tuple sehingga dapat dikatakan
sebagai sebuah sistem kriptografi. Perancangan ini juga telah menghasilkan suatu
variasi algoritma kriptografi yang baru, dan juga metodologi baru dalam
kriptografi kunci simetris. Kombinasi atau gabungan rancangan algoritma cipher
ms319.223
94.39004.0)( xxf
319.9107.0)( xxf
22
block berbasis pada bentuk piramida dan linear congruential generator sangat
baik karena dalam hal ini dapat menyamarkan relasi plaintext terhadap ciphertext.
6. Daftar Pustaka
[1] Novlentina, Pasi, 2008, Studi Teknis Dekripsi dan Enkripsi File Dengan
Menggunakan Algoritma Gost pada CFB (Cipher Feedback). Medan,
Universitas Sumatera Utara.
[2] Setiawan, A. N., Dkk, 2015. Perancangan Algoritma Pada Kriptografi
Block Cipher dengan Teknik Langkah Kuda Dalam Permainan Catur.
Prociding Seminar Teknik Informatika dan Sistem Informasi, Bandung
[3] Putri, S. C., dkk, 2015, Perancangan Kriptografi Block Cipher Berbasis
pada Teknik Anyaman Dasar Tunggal, Universitas Kristen Satya Wacana,
Salatiga.
[4] Munir, Rinaldi, 2006, Kriptografi, Informatika. Bandung, Indonesia.
[5] Ariyus, Dony, 2006, Kriptografi Keamanan Data dan Komunikasi.
Yogyakarta, Graha Ilmu.
[6] inhabitat.com, 2012. http://inhabitat.com/21-12-12-eco-challenges-are-
similar-to-those-that-collapsed-the-mayans/mayan-pyramids/. Diakses pada
14 April 2015
[7] Stinson, D. R., 1995.Cryptography: Theory and Practice. CRC Press, Boca
Raton, London, Tokyo.
[8] Joan Daemen-Vincent Rijmen.2001.The Design of Rijndael AES-The
Advanced Encryption Standard. New York : Springer
[9] Kromodimoeldjo, Sentot, 2010, Teori dan Aplikasi Kriptografi. Jakarta,
SPK IT Consulting.
[10] Mongomery C. Douglas, Runger C. George, 2003, Applied Statistics and
Probability For Engineers. John Wiley & Sons Inc. US.
[11] De Vaus, David A., 2001, Research Design in Social Research, London,
Sage.
[12] mathworld.wolfram.com, 2015.
“http://mathworld.wolfram.com/LeastSquaresFittingLogarithmic.html”.
Diakses pada 30 Juni 2015.