perancangan dan implementasi kriptografi menggunakan ......perancangan dan implementasi kriptografi...

29
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

Upload: others

Post on 01-Apr-2021

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

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

Page 2: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

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

Page 3: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

Lembar Persetujuan

Page 4: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

Lembar Pengesahan

Page 5: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

Lembar Pernyataan Persetujuan Akses

Page 6: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

Lembar Tidak Plagiat

Page 7: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

Lembar Pernyataan

Page 8: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

Lembar Persetujuan Publish Jurnal

Page 9: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

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: [email protected], [email protected]

2

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 2Staf Pengajar Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga.

Page 10: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

1

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, individu-

individu 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

Page 11: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

2

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

Page 12: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

3

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). Kromosom-

kromosom 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

Page 13: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

4

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 = bilangan acak ke-n dari deretnya

Xn-1 = bilangan acak sebelumnya

a = faktor pengali, nilai yang digunakan 1664525

c = increment, dengan nilai 1013904223

m = 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.

Page 14: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

5

a – 1 dapat dibagi dengan semua faktor prima dari m

a – 1 adalah kelipatan 4 jika m adalah kelipatan 4

m > maks (a, c, X0)

a > 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.

Page 15: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

6

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

Nilai Total Generasi Tercapai

FALSE

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

dekripsi

Proses Enkripsi/Dekripsi dengan operator XOR

TRUE

Mulai

Selesai

Tentukan batas Nilai Total Generasi (jumlah perulangan)Tentukan nilai Mutation RateTentukan nilai Crossover Rate

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)

Page 16: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

7

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.

Page 17: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

8

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.

Page 18: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

9

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

Page 19: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

10

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<byte[]> PopulasiAwal(int randomSeed)

2. {

3. PRNG pengacak = new PRNG(randomSeed);

4.

5. List<byte[]> list = new List<byte[]>();

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 > 33 197 147 91 203 190 180 87 81 2 9 250 173 214 242 112

1 > 85 93 131 7 21 57 248 241 114 22 251 114 187 176 207 165

2 > 59 67 41 135 72 121 97 225 32 76 54 51 197 122 82 210

3 > 83 99 71 208 115 140 182 88 251 22 212 151 216 212 138 115

4 > 183 240 204 136 53 43 3 63 108 46 139 245 54 148 174 129

5 > 108 120 162 150 7 202 95 196 231 182 110 43 165 211 237 6

6 > 174 239 124 179 144 171 195 237 69 60 196 49 194 254 61 164

7 > 68 195 171 252 247 237 214 38 13 206 219 171 78 232 42 52

8 > 202 232 234 129 46 152 190 206 200 14 209 119 129 214 167 69

9 > 14 237 48 208 66 179 241 207 84 58 103 61 85 146 225 186

10 > 77 8 125 142 177 81 5 38 45 65 211 253 221 124 11 82

11 > 148 37 174 0 182 158 123 119 190 212 141 167 143 149 45 57

12 > 8 250 77 156 151 248 153 158 186 117 34 159 151 149 248 156

13 > 53 26 92 157 248 245 50 58 94 131 254 86 37 247 151 54

Page 20: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

11

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 fitness untuk masing-masing kromosom

ditunjukkan sebagai berikut:

1131 > 33 197 147 91 203 190 180 87 81 2 9 250 173 214 242 112

0 > 85 93 131 7 21 57 248 241 114 22 251 114 187 176 207 165

1153 > 59 67 41 135 72 121 97 225 32 76 54 51 197 122 82 210

0 > 83 99 71 208 115 140 182 88 251 22 212 151 216 212 138 115

1028 > 183 240 204 136 53 43 3 63 108 46 139 245 54 148 174 129

1371 > 108 120 162 150 7 202 95 196 231 182 110 43 165 211 237 6

1260 > 174 239 124 179 144 171 195 237 69 60 196 49 194 254 61 164

0 > 68 195 171 252 247 237 214 38 13 206 219 171 78 232 42 52

0 > 202 232 234 129 46 152 190 206 200 14 209 119 129 214 167 69

1238 > 14 237 48 208 66 179 241 207 84 58 103 61 85 146 225 186

885 > 77 8 125 142 177 81 5 38 45 65 211 253 221 124 11 82

1523 > 148 37 174 0 182 158 123 119 190 212 141 167 143 149 45 57

0 > 8 250 77 156 151 248 153 158 186 117 34 159 151 149 248 156

859 > 53 26 92 157 248 245 50 58 94 131 254 86 37 247 151 54

1108 > 99 246 41 143 45 120 118 68 204 79 72 215 192 11 119 220

0 > 225 2 31 223 129 192 200 151 89 43 161 89 148 4 32 24

0 > 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

Page 21: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

12

Kode Program 3 Perintah Untuk Proses Selection 1. p2 = p2.OrderByDescending(x => x.FitnessScore).ToList();

2. selected.Add(p2[0].Gen);

3. 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 > 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

1544 > 108 120 174 0 182 158 123 119 190 212 141 167 143 149 45 57

1350 > 148 37 162 150 7 202 95 196 231 182 110 43 165 211 237 6

1596 > 148 120 162 0 182 158 123 119 190 212 141 167 143 149 45 57

1298 > 108 37 174 150 7 202 95 196 231 182 110 43 165 211 237 6

1677 > 148 37 162 150 182 158 123 119 190 212 141 167 143 149 45 57

1217 > 108 120 174 0 7 202 95 196 231 182 110 43 165 211 237 6

1560 > 148 37 174 150 7 158 123 119 190 212 141 167 143 149 45 57

0 > 108 120 162 0 182 202 95 196 231 182 110 43 165 211 237 6

1326 > 148 37 174 0 7 202 123 119 190 212 141 167 143 149 45 57

0 > 108 120 162 150 182 158 95 196 231 182 110 43 165 211 237 6

1411 > 148 37 174 0 182 202 95 119 190 212 141 167 143 149 45 57

1483 > 108 120 162 150 7 158 123 196 231 182 110 43 165 211 237 6

1636 > 148 37 174 0 182 158 95 196 190 212 141 167 143 149 45 57

1258 > 108 120 162 150 7 202 123 119 231 182 110 43 165 211 237 6

1577 > 148 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. for (int c = i; c < (i + crossoverRate); c++)

2. {

3. int cx = c % JumlahGen;

4. anak1[cx] = indukB[cx];

5. anak2[cx] = indukA[cx];

6. }

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).

Page 22: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

13

Kode Program 5 Perintah Untuk Proses Mutation 1. byte[] fitnesTerendah = p2[0].Gen;

2. PRNG pengacak = new PRNG(randomSeed + p2[0].FitnessScore);

3. for (int i = 0; i < mutationRate; i++)

4. {

5. long posisiGenMutasi = (long)pengacak.Next() % JumlahGen;

6. //flip bit, nilai inverse

7. fitnesTerendah[posisiGenMutasi] =

8. (byte)(fitnesTerendah[posisiGenMutasi] ^ 255);

9. }

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. public static byte[] XOR(byte[] a, byte[] b)

2. {

3. byte[] result = new byte[a.Length];

4. for (int i = 0; i < a.Length; i++)

5. {

6. result[i] = (byte)(a[i] ^ b[i]);

7. }

8. return result;

9. }

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).

Page 23: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

14

Tabel 1 Hasil Pengujian Kecepatan Enkripsi Dan Dekripsi

Ukuran Data

(byte)

Enkripsi

(milidetik)

Dekripsi

(milidetik)

16 18.004 18.804

32 17.86 17.06

64 18.843 18.843

128 21.145 20.845

256 25.625 26.125

512 34.051 34.651

1024 51.968 52.168

2048 88.211 88.311

4096 160.235 160.235

8192 303.571 302.871

16384 590.189 590.389

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.

Page 24: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

15

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

196 197 199 132 13 234 199 221 236

99 244 241 131 203 133 251

0%

2 fti kau berada??

fti kau berada@!

87.5% 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

0%

3 fti kau berada??

fti kau berad@@!

81.25% 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

0

4 fti kau berada??

fti kau berADA!!

68.75% 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

0%

5 fti kau berada??

fti kau BERADA!!

50% 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

0%

6 deasynatalia2011

Deasynatalia2011

93.75% 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

0%

Page 25: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

16

7 deasynatalia2011

D3asynatalia2011

87.5% 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

0%

8 deasynatalia2011

D3@synatalia2011

81.25% 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

0%

9 deasynatalia2011

D3@5Ynatalia2011

68.75% 253 27 184 222 74 219 216 54 131

78 188 2 181 119 133 235

181 236 94 59 181 195 120 65 128

226 170 67 130 139 151 230

0%

10 deasynatalia2011

D3@5YNATalia2011

50% 253 27 184 222 74 219 216 54 131

78 188 2 181 119 133 235

193 50 255 146 158 198 206 164 198

165 86 254 43 237 141 153

0%

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

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%

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.

Page 26: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

17

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

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%

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.

Page 27: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

18

Tabel 5 Hasil Pengujian Pengaruh Jumlah Generasi Dengan Kecepatan Proses

Jumlah

Generasi

Waktu

Enkripsi

Waktu

Dekripsi

Kecepatan Enkripsi

(Detik/Generasi)

Kecepatan Dekripsi

(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 Output Aplikasi Kesimpulan fti kau berada?? fti kau berada?? Plaintext sama Berhasil Satya.wacana Satya.wacana Plaintext sama Berhasil 1234567812345678 1234567812345678 Plaintext sama Berhasil abcdABCD1234@#$ abcdABCD1234@#$ Plaintext sama Berhasil fti kau berada?? fti kau berada!! Plaintext berbeda Berhasil Satya.wacana Satya*wacana Plaintext berbeda Berhasil 1234567812345678 2345678123456789 Plaintext berbeda Berhasil abcdABCD1234@#$ ABCDABCD1234@#$ Plaintext berbeda 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 Hash Awal Hash Akhir Kesimpulan

32 byte 064b58270f4fa022

014c07fd7364e004

064b58270f4fa022

014c07fd7364e004 utuh

64 byte 29cf930d8ab5f219

00de5c70c498121b

29cf930d8ab5f219

00de5c70c498121b utuh

128 byte a0fb8b90eea12fdd

97ce30305fd03bea

a0fb8b90eea12fdd

97ce30305fd03bea utuh

256 byte 77932817d9d65979

f6091dd8370b4b0d

77932817d9d65979

f6091dd8370b4b0d utuh

512 byte 3998a731fa850b03

c823304bd5131e2b

3998a731fa850b03

c823304bd5131e2b utuh

1024 byte aaacdc18555f5280

d2f1c9e3f44b942b

aaacdc18555f5280

d2f1c9e3f44b942b utuh

Page 28: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

19

Page 29: Perancangan dan Implementasi Kriptografi Menggunakan ......Perancangan dan Implementasi Kriptografi Menggunakan Algoritma Genetika pada Pembangkitan Kunci Artikel Ilmiah Peneliti:

20

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.