Perancangan dan Implementasi Kriptografi Menggunakan ...

17
1 Perancangan dan Implementasi Kriptografi Menggunakan Algoritma CryptMT Pada Data Citra Artikel Ilmiah Peneliti: Erik Wijaya(672011140) Magdalena A. Ineke Pakereng, M.Kom. Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga Juli 2016

Transcript of Perancangan dan Implementasi Kriptografi Menggunakan ...

Page 1: Perancangan dan Implementasi Kriptografi Menggunakan ...

1

Perancangan dan Implementasi Kriptografi

Menggunakan Algoritma CryptMT Pada Data Citra

Artikel Ilmiah

Peneliti: Erik Wijaya(672011140)

Magdalena A. Ineke Pakereng, M.Kom.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

Salatiga

Juli 2016

Page 2: Perancangan dan Implementasi Kriptografi Menggunakan ...

`2

Perancangan dan Implementasi Kriptografi

Menggunakan Algoritma CryptMT Pada Data Citra

Artikel Ilmiah

Diajukan kepada

Fakultas Teknologi Informasi

untuk memperoleh gelar Sarjana Komputer

Peneliti: Erik Wijaya(672011140)

Magdalena A. Ineke Pakereng, M.Kom.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

Salatiga

Juli 2016

Page 3: Perancangan dan Implementasi Kriptografi Menggunakan ...

`3

Page 4: Perancangan dan Implementasi Kriptografi Menggunakan ...

`4

Page 5: Perancangan dan Implementasi Kriptografi Menggunakan ...

`5

Page 6: Perancangan dan Implementasi Kriptografi Menggunakan ...

`6

Page 7: Perancangan dan Implementasi Kriptografi Menggunakan ...

`7

1. Pendahuluan

Kemudahan berkomunikasi menimbulkan kebutuhan baru, yaitu

pengamanan informasi yang ditransmisikan pada jaringan komunikasi dari

pengirim ke penerima. Salah satu bentuk informasi yang dikirimkan adalah

gambar. Pengiriman sebuah data dalam bentuk gambar yang akan dikirim ke suatu

tujuan yang bersifat privasi, kemungkinan besar dapat terlihat oleh pihak lain. Hal

ini akan membuat orang tersebut mencari cara untuk menyembunyikannya

sehingga pihak lain tidak tahu. Sebagai contoh, ketika sebuah paket akan

dikirimkan kepada seseorang, maka paket tersebut dikemas sedemikian rupa agar

isi paket tersebut tidak terlihat oleh orang lain. Untuk menambah kerahasiaan dari

isi paket tersebut, ditambahkan sebuah mekanisme tertentu untuk membuka isi

paket tersebut.

Salah satu cara untuk menjaga keamanan dan kerahasiaan suatu data

maupun informasi adalah dengan teknik enkripsi dan dekripsi. Teknik ini berguna

untuk membuat pesan, data, maupun informasi tidak dapat dibaca atau dimengerti

oleh orang lain, kecuali untuk penerima yang berhak dan mengetahui teknik

dekripsinya. Teknik enkripsi dan dekripsi dikenal dan dipelajari dalam bidang

ilmu kriptografi [1].

Kriptografi visual pada citra digital memiliki peran penting dalam proses

transfer gambar di jaringan komunikasi. Enkripsi citra digital bertujuan untuk

melindungi kerahasiaan gambar, menghindari perubahan isi gambar, mencegah

penambahan informasi palsu, atau menghapus sebagian dari isi gambar [2].

Algoritma kriptografi dalam proses enkripsi, terbagi ke dalam block cipher

dan stream cipher. Block Cipher adalah algoritma enkripsi yang akan membagi-

bagi plaintext yang akan diproses, ke dalam ukuran tertentu (disebut blok) dengan

panjang tertentu, dan setiap blok dienkripsi dengan menggunakan kunci yang

sama. Stream Cipher adalah algoritma enkripsi yang mengenkripsi data persatuan

data, seperti bit, byte, nible atau per 5 bit. Tiap proses enkripsi satu satuan data,

digunakan kunci yang merupakan hasil pembangkitan dari kunci sebelumnya.

CryptMT Versi 3 (CryptMT3) adalah stream cipher yang dikembangkan

oleh Makoto Matsumoto, Mutsuo Saito, Takuji Nishimura, dan Mariko Hagita.

CryptMT ver. 3 berdasarkan pada operasi 128 bit [3]. CryptMT dikembangkan

untuk CPU modern, yang bertujuan untuk memanfaatkan operasi SIMD (single

instruction multiple data) dengan efisien [4].

Berdasarkan latar belakang masalah tersebut, maka dilakukan penelitian

yang berjudul “Perancangan dan Implementasi Kriptografi Menggunakan

Algoritma CryptMT Pada Data Citra”.

2. Tinjauan Pustaka

Pada penelitian yang berjudul “Penyandian Citra Menggunakan Metode

Playfair Cipher”, dibahas mengenai pemanfaatan algoritma playfair untuk

enkripsi citra digital. Playfair Cipher merupakan salah satu metode yang

Page 8: Perancangan dan Implementasi Kriptografi Menggunakan ...

`8

digolongkan dalam kriptogafi klasik yang proses enkripsinya menggunakan

pemrosesan dalam bentuk blok-blok yang sangat besar. Metode ini merupakan

salah satu cara untuk mengatasi kelemahan metode kriptografi klasik lainnya yang

mudah tertebak karena terdapat korespondensi satu-satu antara plainteks dengan

cipherteks. Dari hasil pengujian didapatkan bahwa playfair merupakan metode

penyandian klasik yang cocok diterapkan untuk citra dengan kualitas yang baik

dan pada citra dengan kategori citra detil. Hal ini terlihat dari keacakan intensitas

warna pada citra yang telah tersandikan. Selain itu karena matrik kunci yang

digunakan ukurannya cukup besar mengakibatkan kriptanalisis akan

membutuhkan waktu yang cukup lama untuk menemukan matrik kuncinya,

karena terdapat 256!kemungkinan bentuk matrik kunci [5].

Pada penelitian Kurnia [6], dirancang aplikasi kriptografi dengan

menggunakan algoritma Caesar cipher dan PRNG. Pada penelitian tersebut,

dibahas tentang masalah keamanan citra digital, yang dikirimkan lewat jaringan

komputer dan internet memiliki resiko untuk diketahui, diubah dan dirusak oleh

pihak tertentu. Teknik kriptografi dapat diterapkan untuk melindungi citra digital

dari masalah-masalah tersebut, salah satunya dengan menggunakan Caesar cipher.

Caesar cipher merupakan algoritma kriptografi klasik yang bekerja dengan cara

menggeser karakter sebesar nilai angka tertentu. Untuk meningkatkan keamanan

Caesar cipher, angka yang digunakan untuk pergeseran dibuat bervariasi. Pada

penelitian tersebut dihasilkan aplikasi enkripsi dan dekripsi citra digital dengan

menggunakan Caesar cipher termodifikasi. Hasil penelitian menunjukkan bahwa

pengamanan citra digital dapat dilakukan dengan algoritma Caesar cipher, dengan

meningkatkan keamanan dengan cara menggunakan pergeseran yang semi acak.

Berdasarkan penelitian-penelitian yang telah dilakukan tentang kriptografi

pada citra digital, maka dilakukan penelitian yang mengimplementasikan

algoritma CryptMT stream cipher untuk kriptografi citra digital. Pada penelitian

ini dikembangkan aplikasi kriptografi citra digital dengan algoritma CryptMT.

Aplikasi dikembangkan pada sistem operasi Microsoft Windows. Batasan

masalah dalam penelitian ini adalah sebagai berikut: (1) Data yang dienkripsi

adalah data citra digital; (2) Algoritma yang dibandingkan adalah CryptMT

stream cipher; (3) Bahasa pemrograman yang digunakan untuk membuat aplikasi

adalah C# .net framework 4.5;

Kriptografi (cryptography) merupakan ilmu dan seni penyimpanan pesan,

data, atau informasi secara aman. Kriptografi (Cryptography) berasal dari bahasa

Yunani yaitu dari kata Crypto dan Graphia yang berarti penulisan rahasia [7].

Kriptografi merupakan bagian dari suatu cabang ilmu matematika yang disebut

Cryptology. Dalam mengenkripsi dan mendekripsi data, kriptografi membutuhkan

suatu algoritma (cipher) dan kunci (key). Cipher adalah fungsi matematika yang

digunakan untuk mengenkripsi dan mendekripsi. Sedangkan kunci merupakan

sederetan bit yang diperlukan untuk mengenkripsi dan mendekripsi data [8].

Secara umum proses kriptografi dibagi menjadi dua bagian yaitu enkripsi dan

dekripsi. Data yang telah dienkripsi disebut ciphertext karena data asli telah

mengalami proses di dalam sebuah algoritma kriptografi atau lebih dikenal

dengan nama cipher. Kebalikannya, proses mengubah pesan yang telah dienkripsi

(ciphertext) menjadi pesan asli (plaintext) disebut sebagai proses dekripsi.

Page 9: Perancangan dan Implementasi Kriptografi Menggunakan ...

`9

CryptMT ver. 3 adalah sebuah variasi baru yang dikembangkan oleh

Makoto Matsumoto, Mutsuo Saito, Takuji Nishimura, dan Mariko Hagita.

CryptMT ver. 3 berdasarkan pada operasi 128 bit. Pada CPU modern, sering

memiliki operasi single instruction multiple data (SIMD). Biasanya 4 kali lipat

dari register 32-bit dianggap sebagai 1 register 128-bit. CryptMT v3 terdiri dari

generator F2-linear dari kata, ukuran, dan bilangan bulat berurutan dengan suatu

keadaan ruang besar dan sebuah filter dengan satu kata, ukuran memori,

berdasarkan pada perkalian bilangan bulat akumulatif [3].

Pada penelitian ini, format file citra digital yang digunakan adalah PNG.

PNG merupakan True Coulor image. Suatu true colour image memiliki

komponen red, green dan blue yang terpisah untuk tiap pikselnya. Pada sebagian

besar true colour image, tiap komponen diwakilkan dengan satu byte yang terdiri

dari 8 bit, sehingga setiap piksel memiliki 24 bit informasi warna. Oleh karena itu,

mode ini sering disebut sebagai “24-bit warna”. Pada Gambar 1 ditunjukkan

contoh potongan dari file gambar. Potongan ini memiliki dimensi 6 x 6

piksel.Pada tiap piksel terdapat tiga bagian warna yaitu red, green dan blue. Pada

lokasi piksel 1,1 terdapat warna red bernilai 96, green bernilai 143, dan blue

bernilai 179. Pada lokasi piksel 1,2 terdapat warna red 61, green 125, dan green

198 [9].

Gambar 1 Komponen RGB pada File Gambar 24 Bit Warna [9]

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 yaitu Perancangan aplikasi/program,

dan (4) Pengujian sistem serta analisis hasil pengujian.

Page 10: Perancangan dan Implementasi Kriptografi Menggunakan ...

`10

Identifikasi Masalah dan Studi Literatur

Perancangan Sistem

Implementasi Sistem

Pengujian Sistem dan Analisis Hasil Pengujian

Gambar 2 Tahapan Penelitian

Tahapan penelitian pada Gambar 2, dapat dijelaskan sebagai berikut.

Tahap pertama: identifikasi masalah, yaitu keamanan citra digital. Studi literatur

dilakukan untuk mencari metode yang dapat diterapkan untuk menyelesaikan

masalah yang telah teridentifikasi. Tahap kedua: perancangan sistem yang

meliputi perancangan proses deteksi kemiripan citra digital; 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.

Plain Image EnkripsiCipher Image

Kunci

Cipher Image

Dekripsi Plain Image

Kunci

Gambar 3 Desain Sistem

Sistem yang dikembangkan, memiliki desain yang ditunjukkan pada

Gambar 3. CryptMT merupakan algoritma kritografi kunci simetris, sehingga

diperlukan kunci yang sama untuk proses enkripsi dan dekripsi.

Page 11: Perancangan dan Implementasi Kriptografi Menggunakan ...

`11

Mulai

Input gambar

Input kunci

Jika Semua Komponen

Warna telah dienkripsi

Baca Komponen Warna

Enkripsi Komponen Warna

Selesai

False

True

Gambar 4 Alur Proses Enkripsi Citra Digital

Mulai

Input gambar

Input kunci

Jika Semua Komponen

Warna telah didekripsi

Baca Komponen Warna

Dekripsi Komponen Warna

Selesai

False

True

Gambar 5 Alur Proses Dekripsi Citra Digital

Pada proses enkripsi (Gambar 4) dengan algoritma CryptMT, dilakukan

pada komponen-komponen warna, tanpa pembentukan blok. Hal ini

mengakibatkan tidak perlunya dilakukan proses padding. Proses dekripsi (Gambar

5) dilakukan dengan langkah yang sama dengan proses enkripsi. Komponen

warna (RGB) diperoleh dari proses membaca piksel. Pada 1 piksel terdapat 3

warna, tiap warna berkapasitas 1 byte. Sehingga dalam 1 piksel terdapat 3 byte.

Proses enkripsi dan dekripsi dilakukan byte per byte.

Page 12: Perancangan dan Implementasi Kriptografi Menggunakan ...

`12

mulai

selesai

Mother generator

Input key 128 bit

Input plaintext

Akumulasi bilangan acak

Baca tiap karakter

Output 8 most

significant 8 bit of accum

Gambar 6 Proses Enkripsi CryptMT [4]

mulai

selesai

Mother generator

Input key 128 bit

Input ciphertext

Akumulasi bilangan acak

Baca tiap karakter

Output most significant 8 bit of accum

Gambar 7 Proses Dekripsi CryptMT [4]

Langkah proses enkripsi dan dekripsi pada CryptMT memiliki urutan yang

sama. Input yang diperlukan adalah kunci 128 bit, dan deretan data yang akan

dienkripsi/dekripsi. Untuk tiap byte data, dilakukan proses “mother generator”,

yaitu membangkitkan deretan bilangan pseudorandom dengan algoritma

Mersenne Twister (MT). Hasil bilangan acak diakumulasikan, kemudian diambil

8 bit terdepat dari hasil akumulasi.

4. Hasil dan Pembahasan

Aplikasi pada penelitian ini, dibuat dalam bentuk aplikasi berbasis

desktop. Software yang digunakan adalah Visual Studio 2012 Express for

Windows Desktop.

Page 13: Perancangan dan Implementasi Kriptografi Menggunakan ...

`13

Gambar 8 Form Enkripsi

Form enkripsi (Gambar 8), memerlukan dua input, yaitu plainimage, dan

kunci. Output dari proses enkripsi adalah cipherimage yang merupakan hasil

enkripsi. Ukuran piksel selama proses enkripsi tidak mengalami perubahan.

Page 14: Perancangan dan Implementasi Kriptografi Menggunakan ...

`14

Gambar 9 Form Dekripsi

Form dekripsi (Gambar 9), memerlukan dua input, yaitu cipherimage hasil

enkripsi dan kunci. Jika kunci yang digunakan untuk proses dekripsi sama dengan

proses enkripsi, maka plainimage yang muncul adalah sesuai aslinya.

Pada aplikasi yang dikembangkan, dilakukan beberapa pengujian.

Pengujian pertama adalah pengujian kecepatan proses enkripsi dan dekripsi. Hasil

dari pengujian ini ditunjukkan pada Tabel 1.

Tabel 1 Perbandingan Kecepatan Enkripsi dan Dekripsi

No Ukuran Piksel Gambar

Kecepatan

Enkripsi

(detik)

Kecepatan

Dekripsi

(detik)

1 100x100 0.04 0.040

2 200x200 0.08 0.086

3 300x300 0.09 0.097

4 400x400 0.09 0.131

5 500x500 0.1 0.160

6 600x600 0.119 0.188

7 700x700 0.132 0.217

8 800x800 0.145 0.245

9 900x900 0.158 0.274

10 1000x1000 0.171 0.302

Page 15: Perancangan dan Implementasi Kriptografi Menggunakan ...

`15

Berdasarkan hasil pengujian pengaruh ukuran gambar pada Tabel 1, dapat

dibuktikan bahwa proses enkripsi dan dekripsi sangat dipengaruhi oleh ukuran

piksel gambar.

Pengujian kedua adalah pengujian pengaruh panjang kunci terhadap waktu

proses enkripsi dan dekripsi. Pengujian ini bertujuan untuk melihat apakah

perbedaan panjang kunci, memberikan efek pada waktu proses.

Tabel 2 Perbandingan Pengaruh Panjang Kunci terhadap Waktu

No Panjang kunci

(byte)

Kunci Enkripsi

(detik)

Dekripsi

(detik)

1 1 F 0.1008 0.1310

2 2 FT 0.1157 0.1459

3 3 FTI 0.1298 0.1582

4 4 UKSW 0.1361 0.1694

5 5 SATYA 0.1364 0.1609

6 6 WACANA 0.1387 0.1664

7 7 FTIUKSW 0.1648 0.1870

8 8 UKSWUKSW 0.1558 0.1854

9 9 SATYAUKSW 0.1605 0.1993

10 10 SATYASATYA 0.1966 0.2209

11 11 SATYAWACANA 0.1889 0.2088

12 12 SALATIGAUKSW 0.2170 0.2185

13 13 FTIFTIFTIFTIF 0.1741 0.2254

14 14 FTIUKSWFTIUKSW 0.2286 0.2353

15 15 SATYASATYASATYA 0.2265 0.2408

16 16 UKSWUKSWUKSWUKSW 0.2974 0.2739

Berdasarkan hasil pengujian pengaruh kunci pada Tabel 2, diketahui

bahwa panjang kunci memberikan pengaruh pada kecepatan proses enkripsi

maupun dekripsi. Semakin panjang kunci, semakin meningkat pula waktu yang

dibutuhkan untuk proses enkripsi dan dekripsi.

Pengujian ketiga adalah pengujian hubungan kunci dengan hasil

cipherimage. Pengujian dilakukan dengan cara melakukan enkripsi pada satu

gambar, dengan beberapa kunci yang berbeda. Cipherimage yang dihasilkan

dengan kunci yang satu dibandingkan dengan cipherimage yang dihasilkan

dengan kunci yang berbeda. Hasil pengujian ketiga ditunjukkan pada Tabel 3. Tabel 3 Hasil Pengujian Hubungan Kunci

No File Dimensi Panjang

Kunci

Kunci1 Kunci2 Jumlah

Piksel

Cipher 1

Dan 2

1 gambar1.png 300x250 128

abcdeabc

deabcde1

abcdeabc

deabcde2 74998

2 gambar1.png 300x250 128

abcdeabc

deabcde1

abcdeabc

deabcde3 74998

3 gambar1.png 300x250 128

abcdeabc

deabcde2

abcdeabc

deabcde2 74998

Berdasarkan hasil pengujian hubungan kunci, pada Tabel 3, disimpulkan

bahwa sekalipun kunci yang digunakan hanya berbeda 1 bit (abcdeabcdeabcde1

Page 16: Perancangan dan Implementasi Kriptografi Menggunakan ...

`16

dan abcdeabcdeabcde2 berbeda 1 bit terakhir), cipherimage yang dihasilkan

sangat berbeda, yaitu 74,998 piksel berbeda dari total keseluruhan 75,000 piksel.

Dengan kata lain, hanya 2 piksel yang sama (pada posisi yang sama memiliki nilai

piksel yang sama).

Pengujian keempat adalah pengujian kompleksitas cipher image.

Tabel 4 Perbandingan Pengaruh Panjang Kunci terhadap Kompleksitas Cipher Image

No Panjang kunci

(byte)

Kunci Perbedaan

Piksel

Cipher

Image

dengan Plain

Image

Persentase

Perbedaan

1 1 F 262142 99.998%

2 2 FT 262142 99.998%

3 3 FTI 262143 99.999%

4 4 UKSW 262143 99.999%

5 5 SATYA 262143 99.9996%

6 6 WACANA 262143 99.9996%

7 7 FTIUKSW 262144 100%

8 8 UKSWUKSW 262144 100%

9 9 SATYAUKSW 262144 100%

10 10 SATYASATYA 262144 100%

11 11 SATYAWACANA 262144 100%

12 12 SALATIGAUKSW 262144 100%

13 13 FTIFTIFTIFTIF 262144 100%

14 14 FTIUKSWFTIUKSW 262144 100%

15 15 SATYASATYASATYA 262144 100%

16 16 UKSWUKSWUKSWUKSW 262144 100%

Berdasarkan hasil pengujian pengaruh kunci pada Tabel 4, diketahui

bahwa sekalipun panjang kunci adalah 1 karakter, cipherimage yang dihasilkan

memiliki perbedaan yang sangat besar terhadap plainimage. Kunci dengan 1

karakter memberikan perbedaan sampai dengan 99%. Semakin panjang kunci,

maka semakin kompleks cipherimage yang dihasilkan.

5. Simpulan

Berdasarkan penelitian, pengujian dan analisis terhadap sistem, maka

dapat diambil kesimpulan yaitu:1) Berdasarkan hasil pengujian kecepatan enkripsi

dan dekripsi, waktu proses dipengaruhi oleh dua hal yaitu ukuran citra digital, dan

panjang kunci. Waktu enkripsi lebih cepat dari waktu dekripsi, dengan

perbandingan yang tidak signifikan (di bawah satu detik); 2) Keamanan hasil

enkripsi dapat dijamin, sekalipun kunci yang digunakan memiliki kemiripan 1

byte, seperti ditunjukkan pada hasil pengujian hubungan kunci; 3) Kompleksitas

kunci memberikan pengaruh pada kompleksitas cipherimage. Pedoman yang

dapat diambil adalah dengan semakin panjang kunci, maka semakin kompleks

(aman) cipherimage yang dihasilkan. Saran yang dapat diberikan untuk penelitian

Page 17: Perancangan dan Implementasi Kriptografi Menggunakan ...

`17

dan pengembangan selanjutnya adalahperlunya dilakukan analisis penggunaan

memory pada tiap proses, pada kedua algoritma.

6. Daftar Pustaka

[1]. Kaufman, C., Perlman, R., & Speciner, M., 2002, Network security: private

communication in a public world, Prentice Hall Press.

[2]. El Fishawy, N. F. & Zaid, O. M. A., 2007, Quality of Encryption

Measurement of Bitmap Images with RC6, MRC6, and Rijndael Block

Cipher Algorithms, IJ Network Security 5, 241–251.

[3]. Matsumoto, M., Saito, M., Nishimura, T., & Hagita, M., 2007, CryptMT

stream cipher version 3, eSTREAM, ECRYPT Stream Cipher Project,

Report 28, 2007.

[4]. Matsumoto, M., 2013, The Cryptographic Mersenne Twister,

http://www.math.sci.hiroshima-u.ac.jp/~m-

mat/MT/CRYPTMT/index.html. Diakses pada 2 Juni 2016.

[5]. Setyaningsih, E., 2009, Penyandian Citra Menggunakan Metode Playfair

Cipher, Jurnal Ilmiah Nasional Jurnal Teknologi 2, 213–217.

[6]. Kurnia, D. S., & Pakereng, M. A. I., 2015, Perancangan dan Implementasi

Image Kriptografi Menggunakan Caesar Cipher Termodifikasi, Program

Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen

Satya Wacana Salatiga.

[7]. Forouzan, B. A., 2007, Cryptography & Network Security, McGraw-Hill,

Inc.

[8]. Munir, R., 2006, Kriptografi, Informatika, Bandung.

[9]. Parvez, M. T., & Gutub, A. A.-A. 2008, RGB Intensity Based Variable-Bits

Image Steganography, IEEE Asia-Pacific Services Computing Conference,

1322–1327.