• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2018

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

Copied!
29
0
0

Teks penuh

(1)

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

(2)

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

(3)
(4)
(5)
(6)
(7)
(8)
(9)

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

(10)

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

(11)

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

(12)

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.

(13)

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:

(14)

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

(15)

6

Generate Populasi Awal

Proses Selection dengan melihat nilai Fitness

Proses Cros sover berdasarkan individu yang terpilih pada proses sebelumnya, dengan nilai

Crossover Rate

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

dekripsi

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

(16)

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.

(17)

8

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

(18)

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 7Form Enkripsi

(19)

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

(20)

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

14. (userkey[i] - (userkey[i] ^ key[i])));

15. }

16. return total;

17. }

18.}

Hasil perhitungan nilai fitness untuk masing-masing kromosom ditunjukkan sebagai berikut: selection adalah dua kromosom dengan nilai fitness terbesar. Dengan menggunakan contoh diatas, maka kromosom yang dipilih adalah:

(21)

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:

Kode Program 4 Perintah Untuk Proses Crossover

1. for (int c = i; c < (i + crossoverRate); c++)

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

(22)

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

Pada sistem yang telah dirancang, dilakukan pengujian kecepatan proses enkripsi dan dekripsi, pengujian related-key, pengujian pengaruh nilai crossover rate

(23)

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

(24)

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

(25)

16

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

(26)

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

(27)

18

Tabel 5 Hasil Pengujian Pengaruh Jumlah Generasi Dengan Kecepatan Proses

Jumlah

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

(28)
(29)

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.

Gambar

Gambar 1 Ruang Pencarian Dalam Algoritma Genetika [5]
Gambar 2 Tahapan Penelitian
Gambar 3  Algoritma Genetika Pembangkitan Kunci Untuk Proses Enkripsi Dan Dekripsi
Gambar 4 Membuat Populasi Awal Berdasarkan Kunci Yang Dimasukkan User (User Key)
+7

Referensi

Dokumen terkait

Kepala Dinas Penanaman Modal dan pelayanan Terpadu Satu Pintu Kota Banjarmasin3. Se

[r]

Yang dimaksud dengan kegiatan kunjungan rumah adalah semua kegiatan yang dilakukan untuk tindakan lanjut kegiatan jenis pelayanan : penyakit dalam, kesehatan anak (Termasuk.

Reseptor dalam kamus kesehatan merupakan sebuahselsensoriskhusus yang meresponjenis stimulus tertentuseperticahaya, suara, ataumolekulbau,

Lalu, kegiatan apa yang dapat dilakukan untuk mengurangi beban para korban bencana alam tersebut khususnya untuk anak-anak? Ada berbagai jenis permainan yang

keseluruhan proses pendidikan di Indonesia adalah seperti yang tercantum dalam. BAB I Ketentuan Umum UU Sistem Pendidikan

a. Penerimaan e-learning di kalangan siswa – siswi SMA Pangudi Luhur Yogyakarta didasari oleh niat perilaku untuk menggunakan e-learning. Niat perilaku untuk

Rencana Tata Bangunan dan Lingkungan Kawasan Perkantoran Baru Kabupaten Banjar, yang selanjutnya Rencana Tata Bangunan dan Lingkungan (RTBL) Kawasan Perkantoran