Institutional Repository | Satya Wacana Christian University: Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci

Perancangan dan Implementasi Kriptografi
Menggunakan Algoritma Genetika pada Pembangkitan
Kunci

Artikel Ilmiah

Peneliti:
Deasy Natalia Sipahelut (672011107)
Magdalena A. Ineke Pakereng, M.Kom.

Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Agustus 2015

Perancangan dan Implementasi Kriptografi
Menggunakan Algoritma Genetika pada Pembangkitan
Kunci

Artikel Ilmiah

Diajukan kepada
Fakultas Teknologi Informasi
untuk memperoleh Gelar Sarjana Komputer

Peneliti:
Deasy Natalia Sipahelut (672011107)
Magdalena A. Ineke Pakereng, M.Kom.

Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Agustus 2015

Lembar Persetujuan

Lembar Pengesahan

Lembar Pernyataan Persetujuan Akses


Lembar Tidak Plagiat

Lembar Pernyataan

Lembar Persetujuan Publish Jurnal

Perancangan dan Implementasi Kriptografi
Menggunakan Algoritma Genetika pada Pembangkitan
Kunci
Deasy Natalia Sipahelut 1, Magdalena A. Ineke Pakereng 2
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Jl. Diponegoro 52-60, Salatiga 50711, Indonesia
E-mail: 672011107@student.uksw.edu1, ineke.pakereng@staff.uksw.edu2
Abstract
During transmission and when it reached the recipient, information or data must
remain confidential and maintained its integrity or unmodified. Cryptography is the
science that studies how to make the message or document remains secure, can not be
read by unauthorized parties. Effective key is a random key, and provide the results of
ciphertext that has a difference of significant value to the plaintext. Genetic algorithms

can be used to generate the best key for the encryption process. In this study, designed
and implemented cryptography uses a genetic algorithm to secure data text. Results from
this study is an application of cryptography text data.
Keywords: Cryptography, Symmetric-Key Algorithm, Genetic Algorithm (GA)
Abstrak
Selama pengiriman dan ketika sampai di penerima, informasi atau data tersebut
harus tetap dirahasiakan dan terjaga keutuhannya atau tidak dimodifikasi. Kriptografi
adalah ilmu yang mempelajari bagaimana supaya pesan atau dokumen tetap aman, tidak
dapat dibaca oleh pihak yang tidak berhak. Kunci yang efektif adalah kunci yang acak,
dan memberikan hasil ciphertext yang memiliki selisih nilai yang signifikan terhadap
plaintext. Algoritma genetika dapat digunakan untuk membangkitkan kunci yang terbaik
untuk proses enkripsi. Pada penelitian ini dirancang dan diimplementasikan kriptografi
menggunakan algoritma genetika untuk mengamankan data teks. Hasil dari penelitian ini
adalah suatu aplikasi kriptografi data teks.
Kata Kunci: Kriptografi, Algoritma Kunci Simetris, Algoritma Genetika
1

Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas
Kristen Satya Wacana Salatiga
2

Staf Pengajar Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga.

1.

Pendahuluan

Perkembangan teknologi informasi dan komunikasi sangat cepat dan pesat,
hal ini yang menyebabkan munculnya kemajuan teknologi informasi. Secara
langsung atau tidak, teknologi informasi telah menjadi bagian penting dari
berbagai bidang kehidupan. Karena banyak kemudahan yang ditawarkan,
teknologi informasi tidak dapat lepas dari berbagai aspek kehidupan manusia
yang memungkinkan dapat berkomunikasi dan saling bertukar data atau
informasi. Data atau informasi menjadi sangat rentan untuk diketahui, diambil
atau bahkan dimanipulasi dan disalahgunakan oleh pihak lain yang tidak berhak.
Selama pengiriman dan ketika sampai di tujuan, informasi atau data tersebut harus
tetap dirahasiakan dan terjaga keutuhannya atau tidak dimodifikasi. Untuk
permasalahan-permasalahan keamanan tersebut diperlukan suatu metode untuk
menjaga keamanan data atau informasi.
Keamanan data tidak hanya diperuntukkan bagi data atau informasi yang
akan dikirim melalui jaringan komunikasi, tetapi dapat juga merupakan data atau

informasi yang akan disimpan dalam media penyimpanan. Data atau informasi
tidak hanya berupa data teks, tetapi juga dapat berupa data citra (image), data
suara atau bunyi (audio) dan video.
Kriptografi adalah ilmu yang mempelajari bagaimana supaya pesan atau
dokumen tetap aman, tidak dapat dibaca oleh pihak yang tidak berhak
(anauthorized persons). Kunci yang efektif adalah kunci yang acak, dan
memberikan hasil ciphertext yang memiliki selisih nilai yang signifikan terhadap
plaintext. Algoritma genetika dapat digunakan untuk membangkitkan kunci yang
terbaik untuk proses enkripsi. Algoritma genetika adalah suatu metode pencarian
(search) acak yang didasarkan atas prinsip evolusi yang terjadi di alam, individuindividu yang dapat beradaptasi dengan lingkungan di mana individu tersebut
berada akan tetap hidup sedangkan yang tidak, akan mati. Algoritma genetika
diperkenalkan oleh John Holland [1] dari Universitas Michigan, Amerika Serikat
dan termasuk salah satu metode dalam bidang kecerdasan buatan.
Berdasarkan latar belakang masalah, maka akan dilakukan penelitian yang
membahas tentang implementasi kriptografi dengan menggunakan algoritma
genetika, untuk membangkitkan kunci, sehingga diperoleh hasil enkripsi terbaik
2.

Tinjauan Pustaka


Al-Husainy [2] pada penelitiannya membahas tentang metode enkripsi
terhadap citra grayscale dengan mengeksploitasi kekuatan feature dari operasi
algoritma genetika yaitu crossover dan mutasi. Penelitian yang dilakukan
merupakan adaptasi algoritma genetika ke dalam kriptografi, terhadap data citra
grayscale (8 bit) dengan dimensi 256 X 256 piksel. Pengujian yang dilakukan
hanya melihat waktu proses dan apakah algoritma yang dibuat sudah memenuhi
sifat dari kriptografi, yaitu data citra hasil enkripsi tidak dapat dikenal.
Pakereng melakukan penelitian untuk mengimplementasikan kriptografi
menggunakan Algoritma Genetika pada data citra digital [3]. Dalam penelitian
tersebut, diciptakan algoritma kriptografi dengan menggunakan algoritma

1

genetika, yaitu mengeksploitasi komponen-komponen generasi, populasi,
crossover rate, mutation dan fungsi fitness. Kriptosistem tersebut diterapkan pada
8-bit image grayscale, dengan menggunakan 2 (dua) kunci, random seed dan
jumlah generasi. Hasil penelitian menunjukkan bahwa kriptosistem menggunakan
algoritma genetika dapat diterapkan pada citra digital.
Berbeda dengan penelitian-penelitian sebelumnya, pada penelitian ini
bertujuan untuk mengamankan data teks. Algoritma genetika tidak secara

langsung digunakan untuk menyandikan plaintext. Algoritma genetika digunakan
untuk membangkitkan solusi-solusi kunci enkripsi yang dapat digunakan,
kemudian melalui proses selection, crossover, dan mutation, diperoleh satu solusi
terbaik, yang kemudian digunakan untuk melakukan proses enkripsi/dekripsi.
Berdasarkan penelitian-penelitian yang sudah ada mengenai kriptografi
dan algoritma genetika, maka dilakukan penelitian yang membahas implementasi
kriptografi dengan sistem simetris menggunakan algoritma genetika, yaitu
mengeksploitasi operasi crossover dan mutasi dalam proses enkripsi-dekripsi
untuk data teks. Algoritma genetika digunakan untuk membangkitkan dan
mencari kunci enkripsi terbaik yang dapat digunakan. Penelitian ini diharapkan
dapat memberikan keamanan suatu data dan informasi yang dimiliki, sehingga
menghasilkan suatu informasi yang efektif.
Penelitian yang dilakukan merupakan penelitian dalam bidang kriptografi.
Kriptografi berasal dari Yunani, terdiri dari dua suku kata yaitu kripto dan
graphia. kripto artinya menyembunyikan dan graphia artinya tulisan. Kriptografi
adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan
dengan aspek keamanan informasi, seperti kerahasiaan data, keabsahan data,
integritas data serta autentikasi data [4]. Kriptografi dapat pula diartikan sebagai
ilmu atau seni untuk menjaga keamanan pesan. Ketika suatu pesan dikirim dari
suatu tempat ke tempat lain, isi pesan tersebut mungkin dapat disadap oleh pihak

lain yang tidak berhak untuk mengetahu isi pesan tersebut. Untuk menjaga pesan,
maka pesan tersebut dapat diubah menjadi suatu kode yang tidak dapat dimengerti
oleh pihak lain. Enkripsi adalah suatu proses penyandian yang melakukan
perubahan kode (pesan) dari yang dapat dimengerti (plaintext) menjadi sebuah
kode yang tidak dapat dimengerti (ciphertext). Sedangkan proses kebalikannya
untuk mengubah ciphertext menjadi plaintext disebut dekripsi. Proses enkripsi dan
dekripsi memerlukan suatu mekanisme dan kunci tertentu.

Gambar 1 Ruang Pencarian Dalam Algoritma Genetika [5]

Algoritma genetika yang dikembangkan oleh Goldberg [6] adalah
algoritma komputasi yang diinspirasi teori evolusi Darwin yang menyatakan
bahwa kelangsungan hidup suatu makhluk dipengaruhi aturan “yang kuat adalah

2

yang menang”. Darwin juga menyatakan bahwa kelangsungan hidup suatu
makhluk dapat dipertahankan melalui proses reproduksi, crossover dan mutasi.
Konsep dalam teori evolusi Darwin tersebut kemudian diadopsi menjadi algoritma
komputasi untuk mencari solusi suatu permasalahan dengan cara yang lebih

“alamiah”.
Sebuah solusi yang dibangkitkan dalam algoritma genetika disebut
kromosom, sedangkan kumpulan kromosom disebut sebagai populasi. Sebuah
kromosom dibentuk dari komponen-komponen penyusun yang disebut sebagai
gen dan nilainya dapat berupa bilangan numerik, biner, simbol ataupun karakter
tergantung dari permasalahan yang ingin diselesaikan (Gambar 1). Kromosomkromosom tersebut akan berevolusi secara berkelanjutan yang disebut dengan
generasi. Tiap generasi kromosom-kromosom dievaluasi tingkat keberhasilan nilai
solusinya terhadap masalah yang ingin diselesaikan (fungsi_objektif)
menggunakan ukuran yang disebut dengan fitness. Untuk memilih kromosom
yang tetap dipertahankan untuk generasi selanjutnya dilakukan proses yang
disebut dengan seleksi. Proses seleksi kromosom menggunakan konsep aturan
evolusi Darwin yang telah disebutkan sebelumnya yaitu kromosom yang
mempunyai nilai fitness tinggi akan memiliki peluang lebih besar untuk terpilih
lagi pada generasi selanjutnya.
Kromosom-kromosom baru yang disebut dengan offspring (anak),
dibentuk dengan cara melakukan perkawinan antara kromosom-kromosom induk
dalam satu generasi yang disebut proses crossover. Jumlah kromosom dalam
populasi yang mengalami crossover ditentukan oleh parameter yang disebut
dengan crossover rate. Sebuah kromosom yang mengarah pada solusi yang bagus,
dapat diperoleh dari proses memindah silangkan dua buah kromosom [7]. Pindah

silang dapat dilakukan dengan beberapa cara yang berbeda. Salah satunya adalah
pindah silang satu titik potong (one-point crossover) dimana titik potong dipilih
secara acak. Two-point crossover hampir sama dengan prosedur one-point
crossover, kecuali pada two-point crossover harus dipilih dua crossover point dan
hanya gen yang ada di antara kedua crossover point itu yang akan ditukarkan.
Mekanisme perubahan susunan unsur penyusun makhluk hidup akibat
adanya faktor alam yang disebut dengan mutasi direpresentasikan sebagai proses
berubahnya satu atau lebih nilai gen dalam kromosom dengan suatu nilai acak.
Jumlah gen dalam populasi yang mengalami mutasi ditentukan oleh parameter
yang dinamakan mutation rate. Setelah beberapa generasi akan dihasilkan
kromosom-kromosom yang nilai gen-gennya konvergen ke suatu nilai tertentu
yang merupakan solusi terbaik yang dihasilkan oleh algoritma genetika terhadap
permasalahan yang ingin diselesaikan [3]. Jika dalam proses pemilihan
kromosom-kromosom cenderung dilakukan pada kromosom yang memiliki nilai
fitness tinggi, pencapaian solusi optimum lokal (konvergensi premature) akan
sangat mudah terjadi. Untuk menghindari konvergensi premature tersebut dan
tetap menjaga perbedaan (diversity) kromosom-kromosom dalam populasi, selain
melakukan penekanan selektif yang lebih efisien, operator mutasi berperan juga
disini. Proses mutasi ini bersifat acak sehingga tidak selalu menjamin bahwa
setelah proses mutasi akan diperoleh kromosom dengan fitness yang lebih baik

dibandingkan dengan generasi sebelumnya [7]. Akan tetapi mutasi dapat pula

3

menjadi kontroversi penerapannya di dalam algoritma genetika karena sifatnya
yang acak. Sehingga dapat mengganggu kromosom yang diperoleh. Maka mutasi
biasanya tetap digunakan namun dengan probabilitas yang rendah.
Beberapa metode mutasi dapat dilakukan yang disesuaikan dengan
kebutuhan [7]: (1) Mutasi dalam pengkodean biner. Mutasi dalam pengkodean
biner sangatlah sederhana. Acak gen yang terpilih dilakukan inversi dari 0 ke 1
atau dari 1 ke 0; (2) Mutasi dalam pengkodean permutasi. Proses mutasi didalam
pengkodean permutasi tidak dilakukan di dalam biner karena urutan sangat
diperhatikan. Namun untuk kasus lain dapat digunakan yaitu dengan cara memilih
dua posisi gen secara acak kemudian menukarkannya; (3) Mutasi dalam
pengkodean nilai. Mutasi didalam pengkodean nilai hampir sama dengan mutasi
pada pengodean biner. Namun gen yang terpilih bukan dilakukan inversi. Tetapi
dilakukan penambahan atau pengurangan nilai sebesar nilai kecil tertentu yang
diambil secara acak
Algoritma genetika menggunakan fungsi pembangkitan bilangan acak
untuk proses pembangkitan populasi awal dan pemilihan gen dalam mutasi. Pada
penelitian ini digunakan algoritma LCG sebagai pseudorandom number
generator. Pseudorandom Number Generator (PNRG) adalah sebuah algoritma
yang membangkitkan sebuah deret bilangan yang tidak benar-benar acak.
Keluaran dari pembangkit bilangan acak semu hanya mendekati beberapa dari
sifat-sifat yang dimiliki bilangan acak. Walaupun bilangan yang benar-benar acak
hanya dapat dibangkitkan oleh perangkat keras pembangkit bilangan acak,
bukannya oleh perangkat lunak komputer, akan tetapi bilangan acak semu banyak
digunakan dalam beberapa hal seperti simulasi dalam ilmu fisika, matematika,
biologi dan sebagainya, dan juga merupakan hal yang sangat penting dalam dunia
kriptografi. Beberapa algoritma enkripsi baik yang simetris maupun asimetris
memerlukan bilangan acak sebagai parameter masukannya seperti parameter
kunci pada algoritma kunci publik dan pembangkitan initialization vector (IV)
pada algoritma kunci simetri. Walaupun terlihat sederhana untuk mendapatkan
bilangan acak, tetapi diperlukan analisis matematika yang teliti untuk
membangkitkan bilangan seacak mungkin. Salah satu metodenya adalah linear
congruential generator atau LCG [8]. Linear Congruential Generator merupakan
pembangkit bilangan acak yang sederhana, mudah dimengerti teorinya, dan juga
mudah untuk diimplementasikan. LCG didefinisikan dalam relasi berulang
berikut:
Xn = (aXn–1 + c) mod m
(1)
Dimana :
Xn
Xn-1
a
c
m

=
=
=
=
=

bilangan acak ke-n dari deretnya
bilangan acak sebelumnya
faktor pengali, nilai yang digunakan 1664525
increment, dengan nilai 1013904223
modulus, dengan nilai 4294967296 (2 pangkat 32)

X0 adalah kunci pembangkit atau disebut juga umpan (seed). LCG
mempunyai periode tidak lebih besar dari m, dan pada kebanyakan kasus
periodenya kurang dari itu. LCG mempunyai periode penuh (m – 1) jika
memenuhi syarat berikut:
c relatif prima terhadap m.

4

a
a
m
a



>
>

1 dapat dibagi dengan semua faktor prima dari m
1 adalah kelipatan 4 jika m adalah kelipatan 4
maks (a, c, X0)
0, c > 0

Rumus ini menggunakan tiga konstanta, yaitu a=1664525, c=1013904223
dan m=4294967296. Pemilihan angka tersebut mengacu nilai-nilai parameter
yang direkomendasikan [8].
3.

Metode dan Perancangan Sistem

Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang
terbagi dalam empat tahapan, yaitu: (1) Identifikasi masalah dan studi literatur, (2)
Perancangan sistem, (3) Implementasi sistem, dan (4) Pengujian sistem dan
analisis hasil pengujian.

Gambar 2 Tahapan Penelitian

Tahapan penelitian pada Gambar 2, dapat dijelaskan sebagai berikut.
Tahap pertama: identifikasi masalah, yaitu pentingnya keamanan data, dan
pengamanan data dapat dicapai dengan kriptografi dengan menggunakan kunci
yang kuat. Pembentukan kunci dapat dilakukan dengan menggunakan algoritma
genetika; Tahap kedua: perancangan sistem yang meliputi perancangan proses
dengan mengacu pada tahapan algoritma genetika yaitu pembangkitan populasi,
selection, crossover, mutation, dan penentuan kondisi terminasi algoritma
genetika; Tahap ketiga: implementasi sistem, yaitu membuat aplikasi sesuai
perancangan proses pada tahap kedua; dan Tahap keempat: pengujian sistem dan
analisis hasil pengujian, yaitu dilakukan pengujian terhadap proses yang telah
dirancang, dan melihat kesesuaian solusi terhadap masalah yang telah
teridentifikasi sebelumnya.
Tahap algoritma genetika pembangkitan kunci, untuk proses enkripsi dan
dekripsi ditunjukkan pada Gambar 3. Panjang kunci yang digunakan adalah 128
bit (16 karakter ASCII). 128 bit kunci cukup untuk mengamankan informasi
sampai 30 tahun kedepan [9].
Nilai-nilai yang digunakan sebagai input dalam proses adalah user key,
crossover rate, dan mutation rate. User key digunakan untuk membangkitkan
populasi awal. Crossover rate digunakan untuk menentukan jumlah gen yang
akan ditukarkan antara dua induk terpilih. Mutation rate adalah nilai yang
menentukan berapa gen yang akan mengalami mutasi pada anak yang terpilih.

5

Mulai
Tentukan batas Nilai Total
Generasi (jumlah perulangan)
Tentukan nilai Mutation Rate
Tentukan nilai Crossover Rate
Generate Populasi Awal

Proses Selection dengan melihat nilai Fitness

Proses Crossover berdasarkan individu yang
terpilih pada proses sebelumnya, dengan nilai
Crossover Rate
Proses Mutation menggunakan nilai Mutation
Rate

FALSE

Nilai Total Generasi
Tercapai

TRUE
Pilih SATU individu dengan nilai Fitness
terbesar, gunakan sebagai kunci enkripsi/
dekripsi

Proses Enkripsi/Dekripsi dengan operator XOR

Selesai

Gambar 3 Algoritma Genetika Pembangkitan Kunci Untuk Proses Enkripsi Dan Dekripsi

Generate populasi awal dilakukan sehingga dihasilkan satu populasi yang
memiliki beberapa individu (kromosom). Jumlah kromosom dalam satu populasi
ditentukan dengan Rumus 1 ukuran populasi [10]. L menyatakan banyaknya gen
dalam satu kromosom. Banyaknya gen dalam satu kromosom ditentukan dari
panjang kunci yang digunakan, yaitu 16 karakter ASCII. Jumlah populasi awal
dihitung dengan Rumus 2, yaitu 16.941, dibulatkan ke atas menjadi 17 kromosom
dalam 1 populasi. Untuk menjaga keacakan nilai [11] dalam 1 kromosom sebagai
kunci, maka kromosom yang memiliki gen dengan nilai berulang, diberi nilai
fitness 0 (nol). Contohnya dalam satu kromosom terdapat dua gen dengan nilai
211, maka kromosom tersebut bernilai fitness 0 (nol).
(2)

6

Kromosom-kromosom awal dibangkitkan dengan langkah yaitu: (1)
jumlahkan nilai-nilai kode ASCII user key; (2) Gunakan nilai hasil penjumlahan
sebagai random seed; (3) dengan menggunakan algoritma PRNG, bangkitkan
deretan bilangan semi acak sebanyak 16 angka, simpan dalam 1 kromosom; (4)
Lakukan langkah ke 3 sehingga diperoleh 17 kromosom.

Gambar 4 Membuat Populasi Awal Berdasarkan Kunci Yang Dimasukkan User (User Key)

Selection dilakukan untuk memilih dua induk dari populasi. Dua induk
yang dipilih adalah kromosom-kromosom yang memiliki nilai fitness terbesar.
Untuk menghitung nilai fitness dalam satu kromosom digunakan Rumus 3. L
menyatakan banyaknya gen dalam satu kromosom. P menyatakan nilai kode
ASCII user key. K menyatakan nilai gen atau nilai kode ASCII kunci yang
digunakan. Pi berarti byte user key pada posisi ke i, demikian pula dengan Ki.
(3)
Crossover dilakukan dengan menyilangkan nilai gen pada dua induk
terpilih, dari proses selection. Hasil penyilangan adalah satu kromosom anak.
Jumlah gen yang disilangkan ditentukan melalui nilai crossover rate. Pada
penelitian ini dirancang metode sliding two-point crossover (Gambar 5), yang
bekerja dengan cara menukar dua gen dari dua induk, untuk menghasilkan dua
anak baru (anak 1 dan anak 2). Posisi gen yang dipilih diurutkan dari posisi awal
(posisi 0 dan posisi 1). Dua anak baru (anak 3 dan anak 4) diperoleh dengan
menggeser posisi pertukaran, menjadi posisi ke 1 dan posisi 2. Proses ini
dilakukan sampai dicapai anak sejumlah 15, sehingga ditambah dengan 2 induk
menjadi 17 kromosom dalam 1 populasi.

7

Gambar 5 Sliding Two-Point Crossover Dengan Nilai Pertukaran 2 Gen

Mutation dilakukan dengan cara memilih 1 kromosom dengan nilai fitness
paling rendah. Kemudian dengan menggunakan nilai mutation rate, dipilih secara
acak gen yang akan bermutasi.

Gambar 6 Mutasi 1 Gen Acak dengan Nilai Mutation rate 1/16 (6.25%)

Terminasi proses dilakukan ketika jumlah perulangan, yang juga berarti
jumlah generasi telah mencapai nilai yang ditentukan di awal. Generasi pertama
adalah populasi hasil dari proses generate populasi awal, selection, crossover dan
mutation. Populasi ini kemudian melalui tahap selection, crossover dan mutation
lagi, sehingga dihasilkan generasi kedua, demikian seterusnya hingga dicapai
generasi tertentu sesuai dengan nilai yang telah ditetapkan di awal proses (Gambar
3).
Ketika angka generasi mencapai batas yang ditetapkan, maka dihitung
nilai fitness tiap-tiap kromosom, dan dipilih satu kromosom dengan nilai fitness
terbesar. Proses enkripsi atau dekripsi dilakukan dengan menggunakan operator
XOR. Kunci yang digunakan adalah hasil individu dengan nilai fitness terbesar.
8

4.

Hasil dan Pembahasan

Berdasarkan perancangan sistem, dilakukan proses pengembangan sistem.
Sistem dibangun dalam bentuk aplikasi untuk sistem operasi Windows, dengan
menggunakan teknologi .Net Framework 4.5, dan software pengembangan Visual
Studio 2012 Express for Desktop.
Pada Gambar 7, ditunjukkan form yang digunakan untuk melakukan
proses enkripsi. Form ini menyediakan 5 kolom input, yaitu kunci, batas
maksimal generasi, mutation rate, dan crossover rate, dan plaintext. Pada sisi
kanan form, ditunjukkan langkah-langkah proses enkripsi yang dilakukan oleh
aplikasi.
Gambar 8 merupakan form untuk proses dekripsi. Sama seperti form
enkripsi, form dekripsi menyediakan 5 kolom input. Input plaintext diganti
dengan input ciphertext. Pada sisi kanan form juga ditampilkan langkah proses
dekripsi tahap demi tahap, untuk tiap generasi.

Gambar 7 Form Enkripsi

Gambar 8 Form Dekripsi

9

Untuk menjelaskan langkah yang dilakukan oleh aplikasi, digunakan
contoh dengan data:
Plaintext: emas ada di meja
Kunci: fti kau berada??
Batas maksimal generasi: 20
Mutation rate: 1, yang berarti 1 gen bermutasi dari antara 16 gen.
Crossover rate: 2.
Nilai plaintext dalam kode ASCII adalah:
101 109 97 115 32 97 100 97 32 100 105 32 109 101 106 97

Nilai kunci dalam kode ASCII adalah:
102 116 105 32 107 97 117 32 98 101 114 97 100 97 63 63

Random seed:
1441

Proses yang terjadi di awal adalah membuat populasi awal. Nilai random
seed untuk membangkitkan populasi awal diperoleh dengan menjumlahkan nilai
kode ASCII kunci. Kode Program 1 digunakan untuk membangkitkan populasi
awal. Class PRNG (baris 3), digunakan sebagai random generator. Kromosom
dibuat dengan membangkitkan bilangan acak sebanyak 16 (baris 9), dan dilakukan
sebanyak 17 (baris 6) kali untuk memenuhi kuota populasi.
Kode Program 1 Perintah Untuk Proses Generate Populasi Awal
1. public static List PopulasiAwal(int randomSeed)
2. {
3.
PRNG pengacak = new PRNG(randomSeed);
4.
5.
List list = new List();
6.
for (int i = 0; i < Populasi; i++)
7.
{
8.
byte[] kromosom = new byte[JumlahGen];
9.
for (int j = 0; j < JumlahGen; j++)
10.
{
11.
var randomValue = pengacak.Next();
12.
kromosom[j] = (byte)(randomValue % byte.MaxValue);
13.
}
14.
list.Add(kromosom);
15.
}
16.
return list;
17. }

Dengan menggunakan Kode Program 1, maka dihasilkan 17 kromosom,
sebagai generasi awal.
0
1
2
3
4
5
6
7
8
9
10
11
12
13

>
>
>
>
>
>
>
>
>
>
>
>
>
>

33 197 147 91 203 190 180 87 81 2 9 250 173 214 242 112
85 93 131 7 21 57 248 241 114 22 251 114 187 176 207 165
59 67 41 135 72 121 97 225 32 76 54 51 197 122 82 210
83 99 71 208 115 140 182 88 251 22 212 151 216 212 138 115
183 240 204 136 53 43 3 63 108 46 139 245 54 148 174 129
108 120 162 150 7 202 95 196 231 182 110 43 165 211 237 6
174 239 124 179 144 171 195 237 69 60 196 49 194 254 61 164
68 195 171 252 247 237 214 38 13 206 219 171 78 232 42 52
202 232 234 129 46 152 190 206 200 14 209 119 129 214 167 69
14 237 48 208 66 179 241 207 84 58 103 61 85 146 225 186
77 8 125 142 177 81 5 38 45 65 211 253 221 124 11 82
148 37 174 0 182 158 123 119 190 212 141 167 143 149 45 57
8 250 77 156 151 248 153 158 186 117 34 159 151 149 248 156
53 26 92 157 248 245 50 58 94 131 254 86 37 247 151 54

10

14 > 99 246 41 143 45 120 118 68 204 79 72 215 192 11 119 220
15 > 225 2 31 223 129 192 200 151 89 43 161 89 148 4 32 24
16 > 91 178 147 111 147 123 135 136 214 120 4 201 193 10 254 171

Pada tiap kromosom pada populasi tersebut, dihitung nilai fitness. Nilai
fitness diperoleh dengan menjumlah selisih XOR antara plaintext dengan
ciphertext, dengan kromosom tersebut sebagai kunci. Kode Program 2 merupakan
perintah untuk menghitung nilai fitness. Class Math dengan method Abs (baris 6)
digunakan untuk mendapatkan nilai absolut dari selisih antara ciphertext dengan
plaintext. Angka 0 (nol) diberikan sebagai nilai fitness untuk kromosom yang
memiliki nilai gen yang muncul lebih dari satu.
Kode Program 2 Perintah Untuk Menghitung Nilai Fitness
1. public static int NilaiFitness(byte[] userkey, byte[] key)
2. {
3.
var distinct = key.Distinct();
4.
if (distinct.Count() < key.Length)
5.
{
6.
return 0;
7.
}
8.
else
9.
{
10.
int total = 0;
11.
for (int i = 0; i < userkey.Length; i++)
12.
{
13.
total += Math.Abs(
14.
(userkey[i] - (userkey[i] ^ key[i])));
15.
}
16.
return total;
17.
}
18. }

Hasil perhitungan nilai
ditunjukkan sebagai berikut:
1131
0
1153
0
1028
1371
1260
0
0
1238
885
1523
0
859
1108
0
0

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

fitness

untuk

masing-masing

kromosom

33 197 147 91 203 190 180 87 81 2 9 250 173 214 242 112
85 93 131 7 21 57 248 241 114 22 251 114 187 176 207 165
59 67 41 135 72 121 97 225 32 76 54 51 197 122 82 210
83 99 71 208 115 140 182 88 251 22 212 151 216 212 138 115
183 240 204 136 53 43 3 63 108 46 139 245 54 148 174 129
108 120 162 150 7 202 95 196 231 182 110 43 165 211 237 6
174 239 124 179 144 171 195 237 69 60 196 49 194 254 61 164
68 195 171 252 247 237 214 38 13 206 219 171 78 232 42 52
202 232 234 129 46 152 190 206 200 14 209 119 129 214 167 69
14 237 48 208 66 179 241 207 84 58 103 61 85 146 225 186
77 8 125 142 177 81 5 38 45 65 211 253 221 124 11 82
148 37 174 0 182 158 123 119 190 212 141 167 143 149 45 57
8 250 77 156 151 248 153 158 186 117 34 159 151 149 248 156
53 26 92 157 248 245 50 58 94 131 254 86 37 247 151 54
99 246 41 143 45 120 118 68 204 79 72 215 192 11 119 220
225 2 31 223 129 192 200 151 89 43 161 89 148 4 32 24
91 178 147 111 147 123 135 136 214 120 4 201 193 10 254 171

Kode Program 3 digunakan untuk proses selection dari populasi. Hasil
selection adalah dua kromosom dengan nilai fitness terbesar. Dengan
menggunakan contoh diatas, maka kromosom yang dipilih adalah:
1523 > 148 37 174 0 182 158 123 119 190 212 141 167 143 149 45 57
1371 > 108 120 162 150 7 202 95 196 231 182 110 43 165 211 237 6

11

Kode Program 3 Perintah Untuk Proses Selection
1.
2.
3.

p2 = p2.OrderByDescending(x => x.FitnessScore).ToList();
selected.Add(p2[0].Gen);
selected.Add(p2[1].Gen);

Proses Crossover dilakukan pada dua kromosom terpilih. Jika nilai
crossover rate yang digunakan adalah 2 (dua), maka hasil persilangan dari adalah
sebagai berikut:
1523
1371
1544
1350
1596
1298
1677
1217
1560
0
1326
0
1411
1483
1636
1258
1577

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

148
108
108
148
148
108
148
108
148
108
148
108
148
108
148
108
148

37 174 0 182 158 123 119 190 212 141 167 143 149 45 57
120 162 150 7 202 95 196 231 182 110 43 165 211 237 6
120 174 0 182 158 123 119 190 212 141 167 143 149 45 57
37 162 150 7 202 95 196 231 182 110 43 165 211 237 6
120 162 0 182 158 123 119 190 212 141 167 143 149 45 57
37 174 150 7 202 95 196 231 182 110 43 165 211 237 6
37 162 150 182 158 123 119 190 212 141 167 143 149 45 57
120 174 0 7 202 95 196 231 182 110 43 165 211 237 6
37 174 150 7 158 123 119 190 212 141 167 143 149 45 57
120 162 0 182 202 95 196 231 182 110 43 165 211 237 6
37 174 0 7 202 123 119 190 212 141 167 143 149 45 57
120 162 150 182 158 95 196 231 182 110 43 165 211 237 6
37 174 0 182 202 95 119 190 212 141 167 143 149 45 57
120 162 150 7 158 123 196 231 182 110 43 165 211 237 6
37 174 0 182 158 95 196 190 212 141 167 143 149 45 57
120 162 150 7 202 123 119 231 182 110 43 165 211 237 6
37 174 0 182 158 123 196 231 212 141 167 143 149 45 57

Kode Program 4 merupakan perintah untuk menyilangkan gen dari dua
induk (baris 4-5). Pada tiap proses perulangan (baris2-5), dihasilkan dua anak
baru.
Kode Program 4 Perintah Untuk Proses Crossover
1.
2.
3.
4.
5.
6.

for (int c = i; c < (i + crossoverRate); c++)
{
int cx = c % JumlahGen;
anak1[cx] = indukB[cx];
anak2[cx] = indukA[cx];
}

Berdasarkan hasil crossover, dipilih satu kromosom dengan nilai fitness
paling kecil. Pada contoh ini adalah kromosom dengan nilai fitness 0. Kemudian
dengan perintah pada Kode Program 5, dilakukan proses mutasi. Untuk
menentukan gen yang bermutasi, digunakan class PRNG untuk memperoleh nilai
acak antara 0-15, yang merupakan posisi gen. Pada contoh ini adalah gen posisi
12, dengan nilai 165 dalam biner 10100101. Jika dibalik (flip nilai bit tersebut
maka diperoleh 01011010, dalam desimal bernilai 90.
Awal 0 > 108 120 162 0 182 202 95 196 231 182 110 43 165 211 237 6
Akhir 0 > 108 120 162 0 182 202 95 196 231 182 110 43 90 211 237 6

Kode Program 5 digunakan untuk membangkitkan bilangan acak (baris 2),
dan kemudian memilih lokasi gen (baris 5). Proses membalikkan nilai bit
dilakukan dengan cara melakukan operasi XOR antar nilai gen dengan angka 255
(165 XOR 255 = 90).

12

Kode Program 5 Perintah Untuk Proses Mutation
1.
2.
3.
4.
5.
6.
7.
8.
9.

byte[] fitnesTerendah = p2[0].Gen;
PRNG pengacak = new PRNG(randomSeed + p2[0].FitnessScore);
for (int i = 0; i < mutationRate; i++)
{
long posisiGenMutasi = (long)pengacak.Next() % JumlahGen;
//flip bit, nilai inverse
fitnesTerendah[posisiGenMutasi] =
(byte)(fitnesTerendah[posisiGenMutasi] ^ 255);
}

Pada akhir proses algoritma genetika, ketika nilai total generasi telah
tercapai, dipilih satu kromosom dengan nilai fitness terbesar. Pada contoh diatas,
setelah dilakukan proses evolusi 20 kali, maka dihasilkan populasi dengan
kromosom dengan nilai fitness terbesar adalah
148 37 162 150 182 158 123 196 190 212 141 167 143 149 210 57

Kromosom tersebut digunakan untuk proses enkripsi maupun dekripsi.
Kode Program 6 merupakan perintah untuk proses enkripsi/dekripsi, dengan
operator XOR (baris 6). Hasil enkripsi pada contoh diatas adalah
Plain

101

109

97

115

32

97

100

97

32

100

105

32

109

101

106

97

Key

148

37

162

150

182

158

123

196

190

212

141

167

143

149

210

57

Cipher

241

72

195

229

150

255

31

165

158

176

228

135

226

240

184

88

Kode Program 6 Perintah Untuk Proses Enkripsi Dan Dekripsi
1.
2.
3.
4.
5.
6.
7.
8.
9.

public static byte[] XOR(byte[] a, byte[] b)
{
byte[] result = new byte[a.Length];
for (int i = 0; i < a.Length; i++)
{
result[i] = (byte)(a[i] ^ b[i]);
}
return result;
}

Pada sistem yang telah dirancang, dilakukan pengujian kecepatan proses
enkripsi dan dekripsi, pengujian related-key, pengujian pengaruh nilai crossover rate
terhadap hasil akhir, pengaruh nilai mutation rate terhadap hasil akhir, pengujian
authentication, dan pengujian integritas data. Pengujian enkripsi dan dekripsi
dilakukan untuk melihat waktu proses yang diperlukan oleh aplikasi. Hasil
pengujian enkripsi dekripsi ditunjukkan pada Tabel 1. Pengujian dilakukan
dengan menggunakan kunci yang sama (deasynatalia2011), jumlah generasi yang
sama (10 generasi), mutation rate yang sama (1 gen) dan crossover rate yang
sama (2). Perbedaan hanya pada ukuran data (plaintext/ciphertext).

13

Tabel 1 Hasil Pengujian Kecepatan Enkripsi Dan Dekripsi
Ukuran Data
Enkripsi
Dekripsi
(byte)
(milidetik)
(milidetik)
16
18.004
18.804
17.86
17.06
32
18.843
18.843
64
128
21.145
20.845
25.625
26.125
256
34.051
34.651
512
1024
51.968
52.168
88.211
88.311
2048
160.235
160.235
4096
8192
303.571
302.871
590.189
590.389
16384

Hasil pengujian tersebut ditunjukkan dengan grafik garis (Gambar 8),
maka diperoleh kesimpulan bahwa ukuran data menyebabkan waktu proses naik.
Kenaikan ini tidak berbanding secara linier, dengan arti bahwa ukuran X
menghasilkan waktu Y, namun ukuran data 2X belum tentu menghasilkan waktu
2Y.

Gambar 8 Grafik Hasil Pengujian Waktu Proses Enkripsi

Gambar 9 menunjukkan grafik waktu proses dekripsi. Lama waktu proses
enkripsi dan dekripsi relatif sama. Hal ini dikarenakan kedua proses tersebut
menggunakan alur proses yang sama. Perbedaan terdapat pada plaintext, dan
ciphertext yang digunakan sebagai input proses.

14

Gambar 9 Grafik Hasil Pengujian Kecepatan Proses Dekripsi

Pengujian Related-Key dilakukan untuk mengetahui apakah dengan
menggunakan dua kunci yang mirip, dapat menghasilkan ciphertext yang mirip.
Jika demikian, maka proses rentan terhadap related-key attack [12].
Tabel 2 Hasil Pengujian Related-Key
No

Kunci A
Kunci B

Kemiripan
Kunci

Ciphertext A
Ciphertext B
(dalam kode ASCII)

Kemiripan
Ciphertext

1

fti kau berada??
fti kau berada!?

93.75%

241 72 195 229 150 255 31 165 158
176 228 135 226 240 184 88

0%

2

3

4

5

6

fti kau berada??
fti kau berada@!

fti kau berada??
fti kau berad@@!

fti kau berada??
fti kau berADA!!

fti kau berada??
fti kau BERADA!!

deasynatalia2011
Deasynatalia2011

87.5%

81.25%

68.75%

50%

93.75%

196 197 199 132 13 234 199 221 236
99 244 241 131 203 133 251
241 72 195 229 150 255 31 165 158
176 228 135 226 240 184 88
186 56 224 174 191 192 199 226 128
169 51 254 227 181 195 23
241 72 195 229 150 255 31 165 158
176 228 135 226 240 184 88
170 182 199 172 167 200 254 180 98
64 49 56 111 214 164 161
241 72 195 229 150 255 31 165 158
176 228 135 226 240 184 88
214 191 235 224 70 199 172 207 57
249 1 210 232 40 58 145
241 72 195 229 150 255 31 165 158
176 228 135 226 240 184 88
73 233 6 136 137 21 245 185 207
206 22 86 171 226 219 160
253 27 184 222 74 219 216 54 131
78 188 2 181 119 133 235
152 28 236 227 91 229 221 171 198
242 223 218 242 198 190 211

15

0%

0

0%

0%

0%

7

deasynatalia2011
D3asynatalia2011

8

deasynatalia2011
D3@synatalia2011

9

deasynatalia2011
D3@5Ynatalia2011

10

deasynatalia2011
D3@5YNATalia2011

87.5%

81.25%

68.75%

50%

253 27 184 222 74 219 216 54 131
78 188 2 181 119 133 235
9 160 253 147 154 178 203 246 171
252 139 105 93 227 224 150
253 27 184 222 74 219 216 54 131
78 188 2 181 119 133 235
9 160 253 147 154 178 203 246 171
252 139 105 93 227 224 150
253 27 184 222 74 219 216 54 131
78 188 2 181 119 133 235
181 236 94
226 170
253 27 184
78 188

59 181 195 120 65 128
67 130 139 151 230
222 74 219 216 54 131
2 181 119 133 235

0%

0%

0%

0%

193 50 255 146 158 198 206 164 198
165 86 254 43 237 141 153

Berdasarkan hasil pengujian related-key pada Tabel 2, diketahui bahwa
sekalipun kunci yang digunakan mirip sampai dengan 93%, kemiripan yang
diperoleh pada ciphertext adalah 0%.
Pengujian selanjutnya adalah pengaruh nilai crossover rate terhadap
perbedaan persentase perbedaan plaintext dan ciphertext. Kunci yang digunakan
adalah deasynatalia2011 dan plaintext emas ada di meja.
Tabel 3 Hasil Pengujian Pengaruh Nilai Crossover rate
Ciphertext dalam Kode ASCII

Waktu
Proses (ms)

Persentase
Kesamaan
dengan
Plaintext

1

253 213 154 222 74 219 216 54 131 196 94 170 198 87 206 241

13.179

0%

2

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

13.904

0%

3

253 27 184 222 74 219 216 201 131 196 188 2 181 119 133 235

14.311

0%

4

253 213 154 222 74 219 216 54 131 196 188 2 181 119 133 235

13.405

0%

5

253 27 184 222 74 65 216 201 131 78 188 2 181 119 133 235

13.324

0%

6

253 27 184 222 74 65 216 54 131 78 188 2 181 136 133 235

15.243

0%

7

253 27 184 222 74 65 216 54 131 196 188 2 181 119 133 235

14.17

0%

8

253 213 154 222 74 65 216 54 131 196 188 2 181 119 133 235

13.529

0%

9

253 213 154 222 74 65 216 54 131 196 188 2 181 119 133 235

15.209

0%

10

253 213 154 222 74 65 216 54 131 196 188 2 181 119 133 235

15.182

0%

11

253 213 154 222 74 65 216 54 131 196 94 2 181 119 133 235

13.12

0%

12

253 213 154 222 74 219 193 78 106 78 188 2 181 119 133 235

14.374

0%

13

253 27 184 222 74 219 216 201 131 196 94 170 198 87 206 241

15.484

0%

14

253 27 184 222 74 219 216 201 131 196 94 170 198 87 206 241

15.264

0%

15

253 213 154 222 74 219 216 54 131 196 94 170 198 87 206 241

15.262

0%

Crossover
rate

Berdasarkan hasil pengujian pada Tabel 3, diketahui bahwa perbedaan
nilai crossover rate akan memberikan hasil akhir yang berbeda pula. Keseluruhan
nilai crossover rate (1 sampai dengan 15) memberikan hasil akhir yang memiliki
kesamaan 0 % dengan plaintext. Temuan yang lain adalah waktu proses tidak
dipengaruhi oleh nilai crossover rate. Perubahan nilai waktu pada Tabel 3 terjadi
karena dipengaruhi oleh keadaan komputer saat itu. Waktu proses rata-rata adalah
14.33067.

16

Pengujian pengaruh nilai mutation rate dilakukan untuk mengetahui
pengaruh nilai tersebut terhadap hasil cipher. Berdasarkan hasil pengujian pada
Tabel 4, diketahui bahwa nilai mutation rate tidak memberikan pengaruh
perubahan pada ciphertext yang dihasilkan. Hal ini dapat dikarenakan oleh teknik
mutasi yang digunakan (flip bit), yang menghasilkan kromosom dengan nilai
fitness kecil. Sehingga kromosom bermutasi tersebut tidak diteruskan ke generasi
selanjutnya, dan pada akhirnya tidak dipilih sebagai kunci terbaik. Perubahan
mutation rate juga tidak mempengaruhi lama waktu proses.
Tabel 4 Hasil Pengujian Pengaruh Nilai Mutation rate
Ciphertext

Waktu
Proses
(ms)

Persentase
Kesamaan
dengan
Plaintext

1

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

15.102

0%

2

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

14.988

0%

3

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

13.722

0%

4

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

13.202

0%

5

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

14.683

0%

6

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

13.084

0%

7

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

13.18

0%

8

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

15.179

0%

9

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

13.37

0%

10

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

13.392

0%

11

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

13.958

0%

12

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

15.188

0%

13

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

15.114

0%

14

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

15.353

0%

15

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

15.606

0%

16

253 27 184 222 74 219 216 54 131 78 188 2 181 119 133 235

13.717

0%

Mutation
rate

Pengujian selanjutnya adalah pengujian untuk melihat pengaruh jumlah
generasi terhadap kecepatan proses. Pada Tabel 5 ditunjukkan hasil pengujian ini.
Berdasarkan hasil pengujian pada Tabel 5, diketahui bahwa jumlah generasi tentu
saja mempengaruhi waktu proses (enkripsi maupun dekripsi). Waktu yang
dipengaruhi tidak berbanding secara linier, namun ada penurunan lama waktu
proses seiring dengan naiknya jumlah generasi. Hal ini ditunjukkan pada kolom
Kecepatan Enkripsi dan Kecepatan Dekripsi. Angka pada kedua kolom ini
diperoleh dengan cara membagi waktu proses dengan jumlah generasi.

17

Tabel 5 Hasil Pengujian Pengaruh Jumlah Generasi Dengan Kecepatan Proses
Jumlah
Waktu
Waktu
Kecepatan Enkripsi Kecepatan Dekripsi
Generasi
Enkripsi
Dekripsi
(Detik/Generasi)
(Detik/Generasi)
10

11.0121

11.6821

1.10121

1.16821

20

15.8452

16.3352

0.79226

0.81676

30

16.3146

15.7546

0.54382

0.525153333

40

19.8898

20.6798

0.497245

0.516995

50

22.5533

23.4233

0.451066

0.468466

100

36.8451

36.6151

0.368451

0.366151

500

136.0971

136.7871

0.2721942

0.2735742

1000

258.1732

258.5932

0.2581732

0.2585932

10000

2680.7903

2681.1103

0.26807903

0.26811103

Pengujian authentication perlu dilakukan untuk mengetahui jika kunci
yang digunakan berbeda, maka dekripsi tidak dapat dilakukan, atau menghasilkan
plaintext yang keliru. Hasil pengujian ditunjukkan pada Tabel 6.
Tabel 6 Hasil Pengujian Authentication

Kunci Enkripsi

Kunci Dekripsi

fti kau berada??

fti kau berada??

Satya.wacana

Satya.wacana

1234567812345678

1234567812345678

abcdABCD1234@#$

abcdABCD1234@#$

fti kau berada??

fti kau berada!!

Satya.wacana

Satya*wacana

1234567812345678

2345678123456789

abcdABCD1234@#$

ABCDABCD1234@#$

Output Aplikasi
Plaintext sama
Plaintext sama
Plaintext sama
Plaintext sama
Plaintext berbeda
Plaintext berbeda
Plaintext berbeda
Plaintext berbeda

Kesimpulan
Berhasil
Berhasil
Berhasil
Berhasil
Berhasil
Berhasil
Berhasil
Berhasil

Pengujian integritas perlu dilakukan untuk mengetahui apakah terjadi
perubahan pada pesan yang disandikan. Integritas dilakukan dengan
membandingkan nilai hash. Hasil pengujian pada Tabel 7, menunjukkan bahwa
tidak ada kerusakan terhadap pesan yang diproses.
Tabel 7 Hasil Pengujian Integritas Pesan

Panjang Pesan
32 byte
64 byte
128 byte
256 byte
512 byte
1024 byte

Hash Awal
064b58270f4fa022
014c07fd7364e004
29cf930d8ab5f219
00de5c70c498121b
a0fb8b90eea12fdd
97ce30305fd03bea
77932817d9d65979
f6091dd8370b4b0d
3998a731fa850b03
c823304bd5131e2b
aaacdc18555f5280
d2f1c9e3f44b942b

Hash Akhir
064b58270f4fa022
014c07fd7364e004
29cf930d8ab5f219
00de5c70c498121b
a0fb8b90eea12fdd
97ce30305fd03bea
77932817d9d65979
f6091dd8370b4b0d
3998a731fa850b03
c823304bd5131e2b
aaacdc18555f5280
d2f1c9e3f44b942b

18

Kesimpulan
utuh
utuh
utuh
utuh
utuh
utuh

19

Simpulan
Berdasarkan perancangan, pembahasan dan pengujian diperoleh
kesimpulan yaitu: (1) Kriptografi pada data teks dapat dicapai dengan
menggunakan algoritma genetika; (2) Algoritma genetika dapat digunakan untuk
membangkitkan kunci, sehingga diperoleh nilai ciphertext yang memiliki selisih
yang besar terhadap nilai plaintext; (3) Selain kunci, hasil dipengaruhi oleh
jumlah generasi, nilai crossover rate, dan mutation rate; (4) Kecepatan proses
dipengaruhi oleh jumlah generasi, dengan perbandingan yang tidak linier.
Semakin banyak generasi, semakin kecil pula waktu yang diperlukan per
generasinya.
Saran yang dapat diberikan untuk penelitian dan pengembangan lebih
lanjut adalah: Kunci yang terpilih pada akhir evolusi (generasi terakhir), tidak
harus satu, namun dapat lebih dari satu, sehingga dapat digunakan bergantian
untuk melakukan proses enkripsi/dekripsi blok per blok.
5.

Daftar Pustaka

[1].

Goldberg, D. E. & Holland, J. H. 1988. Genetic algorithms and machine
learning. Machine learning 3, 95–99.
[2]. Al-Husainy, M. A. F. 2006. Image encryption using genetic algorithm.
Information Technology Journal 5, 516–519.
[3]. Pakereng, M. A. I. 2009. Kriptosistem menggunakan Algoritma Genetika
pada Data Citra. AITI 6.
[4]. Munir, R. 2006. Kriptografi. Informatika, Bandung
[5]. Wong,
H.
1996.
Genetic
Algorithms.
http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol1/hmw/article1.html.
Diakses pada 5 Mei 2015.
[6]. Goldberg, D. E. 2006. Genetic algorithms. Pearson Education India.
[7]. Suyanto 2005. Algoritma Genetika dalam MATLAB. Yogyakarta: Andi
Yogyakarta.
[8]. Singhal, V. K. 2013. Random Number Generators. Department of
Mathematics, IIT Guwahati
[9]. Marinakis, G. 2013. Minimum key length for cryptographic security Single
Search. Journal of Applied Mathematic & Bioinformatics 3, 181–191.
[10]. Goldberg, D. E. 1989. Sizing populations for serial and parallel genetic
algorithms. In Proceedings of the 3rd International Conference on Genetic
Algorithms, pp. 70–79.
[11]. Seifried, K. 2000. Why Random Numbers Are Important For Security.
https://seifried.org/security/cryptography/20000126-random-numbers.html.
Diakses pada 19 Juni 2015.
[12]. Biryukov, A. 2011. Related Key Attack. In Encyclopedia of Cryptography
and Security, pp. 1040–1041. Springer.

20

Dokumen yang terkait

Keanekaragaman Makrofauna Tanah Daerah Pertanian Apel Semi Organik dan Pertanian Apel Non Organik Kecamatan Bumiaji Kota Batu sebagai Bahan Ajar Biologi SMA

26 317 36

FREKUENSI KEMUNCULAN TOKOH KARAKTER ANTAGONIS DAN PROTAGONIS PADA SINETRON (Analisis Isi Pada Sinetron Munajah Cinta di RCTI dan Sinetron Cinta Fitri di SCTV)

27 310 2

FREKWENSI PESAN PEMELIHARAAN KESEHATAN DALAM IKLAN LAYANAN MASYARAKAT Analisis Isi pada Empat Versi ILM Televisi Tanggap Flu Burung Milik Komnas FBPI

10 189 3

SENSUALITAS DALAM FILM HOROR DI INDONESIA(Analisis Isi pada Film Tali Pocong Perawan karya Arie Azis)

33 290 2

Analisis Sistem Pengendalian Mutu dan Perencanaan Penugasan Audit pada Kantor Akuntan Publik. (Suatu Studi Kasus pada Kantor Akuntan Publik Jamaludin, Aria, Sukimto dan Rekan)

136 695 18

DOMESTIFIKASI PEREMPUAN DALAM IKLAN Studi Semiotika pada Iklan "Mama Suka", "Mama Lemon", dan "BuKrim"

133 700 21

Representasi Nasionalisme Melalui Karya Fotografi (Analisis Semiotik pada Buku "Ketika Indonesia Dipertanyakan")

53 338 50

KONSTRUKSI MEDIA TENTANG KETERLIBATAN POLITISI PARTAI DEMOKRAT ANAS URBANINGRUM PADA KASUS KORUPSI PROYEK PEMBANGUNAN KOMPLEK OLAHRAGA DI BUKIT HAMBALANG (Analisis Wacana Koran Harian Pagi Surya edisi 9-12, 16, 18 dan 23 Februari 2013 )

64 565 20

PENERAPAN MEDIA LITERASI DI KALANGAN JURNALIS KAMPUS (Studi pada Jurnalis Unit Aktivitas Pers Kampus Mahasiswa (UKPM) Kavling 10, Koran Bestari, dan Unit Kegitan Pers Mahasiswa (UKPM) Civitas)

105 442 24

KEABSAHAN STATUS PERNIKAHAN SUAMI ATAU ISTRI YANG MURTAD (Studi Komparatif Ulama Klasik dan Kontemporer)

5 102 24