APLIKASI PENGACAKAN CITRA DIGITAL DENGAN METODE FIBONACCI DAN LUCAS SEQUENCE MUHAMMAD FARIZ ALAMSYAH NASUTION Jurusan Teknik Informatika Sekolah Tinggi Teknik Harapan Medan , Jl. HM Jhoni No 70 Medan, Indonesia
[email protected] Abstrak Dalam proses komunikasi melalui jaringan internet, keamanan merupakan masalah penting yang perlu mendapat perhatian serius. Hal ini dikarenakan proses pengiriman dan komunikasi data melalui jaringan internet memiliki kemungkinan untuk disadap oleh pihak lain. Hal ini juga berlaku terhadap data citra. Oleh karena itu, data yang akan dikirimkan melalui internet harus diamankan terlebih dahulu. Namun, penerapan beberapa metode kriptografi dan beberapa metode pengacakan citra memerlukan waktu yang relatif lama. Untuk menyelesaikan permasalahan yang dihadapi, maka dapat diterapkan algoritma Image Scrambling Generalized Fibonacci And Lucas Transformation. Proses kerja dari algoritma akan dimulai dari proses pemilihan citra input dan pengisian nilai kunci yang akan digunakan. Setelah itu, proses dilanjutkan dengan proses pengacakan citra, sehingga akan dihasilkan citra teracak. Citra yang dihasilkan tersebut dapat direkonstruksi kembali dengan menerapkan algoritma anti-scrambling. Proses ini memerlukan kunci yang sama yang digunakan pada tahapan scrambling. Aplikasi yang dihasilkan dapat mengacak citra asli dengan mengisi nilai kunci pengacakan. Citra yang dihasilkan dapat direkonstruksi kembali dengan menggunakan kunci yang sama. Selain itu, aplikasi juga akan menghasilkan laporan detail perhitungan yang dilakukan pada saat proses scrambling dan anti-scrambling untuk masing-masing metode tersebut. Kata kunci : transformasi fibonacci, tranformasi lukas, pengacakan citra Gn+1. Semua parameter ini (a, b, Gn dan Gn+1) dapat digunakan sebagai kunci, yang hanya diketahui oleh pengirim dan penerima. Variabel ini bersama dengan sebuah deretan dari bilangan integer acak (r(1), r(2), …, r(t)), dimana t adalah periode transformasi dapat digunakan sebagai kunci. Mereka membahas dua anggota dari famili ini yaitu transformasi Fibonacci dan Lucas serta menunjukkan bahwa keduanya memiliki sifat keseragaman. Kedua jenis transformasi ini bersifat periodik, dimana periodik berarti bahwa jumlah transformasi yang harus dilakukan secara berulang hingga citra asli dapat diperoleh kembali. Transformasi pengacakan ini memiliki beberapa keuntungan berikut: 1) Biaya komputasi yang rendah sehingga sangat efektif untuk diterapkan dalam situasi real time; 2) Efek pengacakan cukup bagus, karena informasi dari citra input akan didistribusikan ulang pada keseluruhan citra. Berdasarkan uraian latar belakang diatas, maka yang menjadi permasalahan adalah: 1. Belum tersedia aplikasi yang menerapkan algoritma Fibonacci dan Lucas dalam melakukan pengacakan citra digital. 2. Kesulitan untuk mengetahui kinerja dari algoritma Fibonacci dan Lucas. Fibonacci adalah salah satu sistem numerik yang paling terkenal sekarang. Pada deretan bilangan Fibonacci, setiap angka merupakan penjumlahan dari dua angka sebelumnya, dimulai dengan nol dan satu. Semakin tinggi nilai pada deretan, dua buah bilangan Fibonacci yang berdekatan dalam deretan apabila
1.
Pendahuluan Proses pengacakan citra adalah proses transformasi sebuah citra input menjadi citra yang tidak memiliki arti apa-apa ataupun dengan perkataan lain piksel citra dalam kondisi teracak dan tidak beraturan sehingga tidak kelihatan objek pada citra. Tujuan utama dari teknik pengacakan citra adalah untuk mentransformasikan sebuah citra asli menjadi sebuah citra teracak untuk meningkatkan kekuatan untuk tahan terhadap penyerangan sehingga mampu meningkatkan sekuritas. [5] Pengacakan biasanya dilakukan terhadap posisi piksel (x, y). Sebuah transformasi diterapkan secara berulang hingga citra kelihatan acak oleh pengamat telah diperkenalkan sebuah pendekatan formal untuk bidang ilmu pengacakan citra. [5] Para ahli mengembangkan pendekatan ini berdasarkan pada dua buah premis, yaitu: 1) karena pengacakan citra menghilangkan korelasi citra, untuk kemungkinan penghilangan korelasi yang paling bagus, diperlukan sebuah transformasi yang memisahkan piksel yang berhubungan sejauh mungkin satu sama lain; 2) menggunakan ide dari keseragaman dari sebuah transformasi untuk mendeskripsikan tingkat pengacakan. Keseragaman dalam hal ini berarti bahwa piksel yang berhubungan tersebar secara merata pada citra hasil pengacakan. Mereka mengemukakan sebuah famili transformasi yang dapat digunakan untuk pengacakan citra. Setiap anggota famili ditentukan oleh dua buah parameter integer a dan b dan penerapannya pada pengacakan citra tergantung pada dua buah bilangan Gn dan
1
dibagi satu sama lain maka akan memiliki rasio rata-rata 1 : 1.618 atau 0.618 : 1. [2] Deretan Fibonacci dapat didefinisikan sebagai berikut:
adjacent. Trasnformasi berikut disebut sebagai transformasi Generalized Fibonacci. Sk = (kGn + r) mod Gn+1 , k = 0, 1, 2, …, Gn-1 – 1 ………………. (4) r dapat dianggap sebagai sebuah kunci untuk transformasi pengacakan. Untuk aplikasi berurutan dari transformasi ini, maka dapat dipilih berbagai nilai r yang berbeda. Anggap Fn dan Fn+1 adalah dua buah bilangan Fibonacci yang berurutan, maka transformasi berikut disebut sebagai transformasi Fibonacci. Sk = (kFn + r) mod Fn+1 , k = 0, 1, 2, …, Fn+1 – 1 ………………. (5) Anggap Ln dan Ln+1 adalah dua buah bilangan Lucas yang berurutan, maka transformasi berikut disebut sebagai transformasi Lucas. Sk = (kLn + r) mod Ln+1 , k = 0, 1, 2, …, Ln+1 – 1 ………………. (6)
………………. (1) Dengan mengaplikasikan persamaan diatas, maka dapat dibangkitkan sebuah deretan Fibonacci yang terdiri dari bilangan (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …). [4] Bilangan Lucas dapat didefinisikan sebagai penjumlahan dari dua buah bilangan sebelumnya, memiliki bentuk rumusan yang sama dengan deretan bilangan integer Fibonacci. Dua bilangan Lucas pertama adalah L0 = 2 dan L1 = 1 berbeda dengan dua bilangan Fibonacci pertama F0 = 0 dan F1 = 1. Walaupun memiliki kemiripan dalam definisi, namun bilangan Lucas dan Fibonacci memiliki sifat yang berbeda. Bilangan Lucas dapat didefinisikan sebagai berikut:
2.
Metodologi Penelitian Metodologi penelitian yang akan dilakukan oleh penulis yaitu tahapan tahapan yang dilakukan oleh penulis mulai dari perumusan masalah sampai pada kesimpulan yang membentuk suatu alur yang sistematis. Metode ini dijadikan penulis sebagai pedoman penelitian penulisan ini, guna untuk mencapai hasil yang dicapai, tidak menyinggung dari permasalahan, tujuan yang telah ditentukan sebelumnya. Sehingga dengan adanya metode ini penulis dapat mengembangkan sistem dengan terarah dan dapat dikerjakan sesuai target atau jadwal yang telah penulis tentukan sebelumnya. Selain itu, metode ini menuntut penulis agar dalam proses pengembangan sistem tidak lari dari pokok permasalahan yang ada. Untuk membantu mempermudah perancangan aplikasi, maka perlu digambarkan use case diagram dari aplikasi. Adapun use case diagram yang telah dirancang dapat dilihat pada gambar 1 berikut.
………………. (2) Deretan dari bilangan Lucas adalah 2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 189, … [3]. Bilangan 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233 dan seterusnya disebut sebagai bilangan Fibonacci. Bilangan 2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199 dan seterusnya disebut sebagai bilangan Lucas. Bilangan Fibonacci dan bilangan Lucas dapat diterapkan dalam berbagai bidang. Salah satunya adalah dapat diterapkan pada bidang keamanan informasi. Anggap G1 = a, G2 = b dan Gn = Gn-1 + Gn2, n 3, dimana a dan b adalah bilangan integer non-negatif. Deretan {Gn} disebut sebagai generalized Fibonacci sequence (GFS). 1. Ketika a = 1, b = 1, generalized Fibonacci sequence {Gn} disebut sebagai deretan Fibonacci {Fn}. 2. Ketika a = 1, b = 3, maka generalized Fibonacci sequence {Gn} disebut sebagai deretan Lucas {Ln}. Anggap terdapat sebuah deretan integer berbeda konsekutif {0, 1, 2, …, B – 1}. Untuk sebuah distinguished generalized Fibonacci sequence (DGFS) {Gn}, deretan dari integer {Sk}, Sk = (kGn + r) mod Gn+1, r 0, 1, 2, …, B – 1 ………………. (3) adalah sebuah permutasi dari deretan asli {0, 1, 2, …, B – 1}. Anggap Gn dan Gn+1 adalah dua buah bilangan generalized Fibonacci berbeda yang
Perangkat Lunak Perbandingan Metode Transformasi Fibonacci dan Lukas dalam Melakukan Pengacakan Citra Input data kunci << include >>
Pilih algoritma
<< include >>
Input citra
<< include >>
<< include >>
Pengirim
Jalankan proses anti-scrambling
<< include >>
Jalankan proses scrambling
<< include >>
Penerima
<< include >>
Simpan citra
Gambar 1. Use Case Diagram dari Aplikasi Seperti terlihat pada gambar 1, pertama kali pengirim akan melakukan pengisian data kunci yang diperlukan terlebih dahulu pada tahapan Input Data Kunci. Setelah itu, pengirim dapat memilih algoritma yang ingin digunakan, yaitu algoritma Fibonacci dan Lucas pada tahapan Pilih Algoritma. Kemudian, pengirim akan memilih citra yang diperlukan pada tahapan Input Citra. Setelah semua
2
data yang diperlukan dimasukkan, maka pengirim dapat menjalankan proses scrambling untuk melakukan proses pengacakan terhadap citra input yang dilakukan pada tahapan Jalankan Proses Scrambling. Citra hasil pengacakan dapat disimpan ke dalam sebuah file citra pada tahapan Simpan Citra. Hal yang sama juga dilakukan pada proses anti-scrambling untuk melakukan rekonstruksi terhadap citra teracak. Proses ini dilakukan pada tahapan Jalankan Proses Anti-Scrambling. Pada tahapan ini diperlukan data kunci dari tahapan Input Data Kunci dan data citra dari tahapan Input Citra. Citra hasil rekonstruksi akan dapat disimpan ke dalam sebuah file citra. Proses ini akan dilakukan pada tahapan Simpan Citra.Activiy Prosedur kerja dari aplikasi pengacakan citra digital dengan metode Fibonacci dan Lucas dapat digambarkan seperti terlihat pada gambar activity diagram berikut: 1. Activity Diagram dari Menu Pada saat user menjalankan aplikasi, aplikasi pengacakan citra akan menampilkan menu pilihan untuk user. Apabila user memilih menu scrambling, maka aplikasi akan menampilkan form scrambling. Sementara itu, apabila user memilih menu un-scrambling maka aplikasi pengacakan citra akan menampilkan form un-scrambling. Terakhir, apabila user memilih menu mengenai pembuat, maka aplikasi pengacakan citra akan menampilkan form mengenai pembuat. Rancangan activity diagram dari menu dapat dilihat pada gambar berikut: User
Aplikasi Pengacakan Citra
Jalankan aplikasi
Tampilkan menu
diacak yang dilakukan oleh user. Kemudian, aplikasi pengacakan citra akan menampilkan citra yang dipilih. Setelah itu, user dapat memilih metode yang akan digunakan. Apabila user ingin melakukan penginputan kunci secara manual, maka user dapat menginput nilai kunci r. Jika tidak, maka aplikasi pengacakan citra akan menghasilkan kunci secara acak. Setelah itu, aplikasi pengacakan citra akan melakukan proses enkripsi dengan metode yang dipilih dan menampilkan output citra terenkripsi. Kemudian, user dapat mengklik tombol Simpan sehingga aplikasi pengacakan citra akan menampilkan kotak dialog browse. Terakhir, user dapat memilih lokasi dan nama file sehingga aplikasi pengacakan citra akan menyimpan citra ke file citra hasil. Rancangan activity diagram dari aplikasi scrambling dapat dilihat pada gambar berikut: User
Aplikasi Pengacakan Citra
Input citra
Tampilkan citra yang dipilih
Pilih metode yang digunakan Input kunci secara manual ? Tidak
Hasilkan kunci secara acak
Ya Input nilai kunci r
Klik tombol Simpan
Lakukan proses enkripsi dengan metode yang dipilih Output citra terenkripsi Tampilkan kotak dialog browse
Pilih lokasi dan nama file
Pilih menu scrambling Ya
Tampilkan form scrambling
Ya
Tampilkan form unscrambling
Tidak
Simpan file citra
Pilih menu unscrambling
Tidak
Gambar 3. Activity Diagram dari Aplikasi Scrambling 3. Activity Diagram dari Aplikasi Unscrambling Proses un-scrambling akan dimulai dari penginputan data citra digital yang akan diacak yang dilakukan oleh user. Kemudian, aplikasi pengacakan citra akan menampilkan citra yang dipilih. Setelah itu, user dapat memilih metode yang akan digunakan. Apabila user ingin melakukan penginputan kunci secara
Pilih menu mengenai pembuat Ya Tidak
2.
Tampilkan form mengenai pembuat
Gambar 2. Activity Diagram dari Menu Activity Diagram dari Aplikasi Scrambling Proses scrambling akan dimulai dari penginputan data citra digital yang akan
3
manual, maka user dapat menginput nilai kunci r. Jika tidak, maka aplikasi pengacakan citra akan menghasilkan kunci secara acak. Setelah itu, aplikasi pengacakan citra akan melakukan proses dekripsi dengan metode yang dipilih dan menampilkan output citra semula. Kemudian, user dapat mengklik tombol Simpan sehingga aplikasi pengacakan citra akan menampilkan kotak dialog browse. Terakhir, user dapat memilih lokasi dan nama file sehingga aplikasi pengacakan citra akan menyimpan citra ke file citra hasil. Rancangan activity diagram dari aplikasi un-scrambling dapat dilihat pada gambar berikut: User
Input citra terenkripsi
User
Aplikasi Pengacakan Citra
Klik tombol mengenai pembuat
Tampilkan form data pembuat
Input kunci secara manual ? Tidak Ya
Gambar 5. Activity Diagram dari Mengenai Pembuat 3.
Hasil dan Pembahasan Untuk menggunakan perangkat lunak ini, jalankan file ”Program_Mengacak_Citra.EXE”, maka akan ditampilkan tampilan utama dari program seperti terlihat pada gambar berikut:
Aplikasi Pengacakan Citra
Tampilkan citra yang dipilih
Pilih metode yang digunakan
Input nilai kunci r
Klik tombol Simpan
Lakukan proses dekripsi dengan metode yang dipilih
Output citra semula Tampilkan kotak dialog browse
Pilih lokasi dan nama file Simpan file citra
Gambar 6. Tampilan Utama Pada tampilan utama ini terdapat beberapa tombol yang berfungsi untuk mengakses form-form yang terdapat dalam sistem. Berikut perincian dari tombol yang terdapat dalam sistem: 1. Tombol ‘Scrambling’ yang berfungsi untuk menampilkan form Scrambling. 2. Tombol ‘Anti Scrambling’ yang berfungsi untuk menampilkan form Anti-Scrambling. 3. Link ‘Mengenai Pembuat’ yang berfungsi untuk menampilkan form Mengenai. 4. Link ‘Teori’ yang berfungsi untuk menampilkan teori pendukung mengenai perangkat lunak.
Gambar 4. Activity Diagram dari Aplikasi Unscrambling 4. Activity Diagram dari Mengenai Pembuat Apabila user mengklik tombol mengenai pembuat, maka aplikasi akan menampilkan form data pembuat. Terakhir, apabila user memilih tombol keluar, maka aplikasi pengacakan citra akan menutup form. Rancangan activity diagram dari mengenai pembuat dapat dilihat pada gambar berikut:
Untuk melakukan pengacakan terhadap sebuah citra input, maka dapat mengklik tombol ‘Scrambling’, sehingga akan ditampilkan form Scrambling Tahap 1 berikut: 1. Tampilan Form Scrambling Tahap Pertama:
4
semua data input kunci secara otomatis. Demikian juga halnya dengan nilai r yang akan digunakan. Apabila pemakai ingin ditentukan secara otomatis, maka dapat mengklik tombol ‘Acak’ sehingga sistem akan mengambil sebuah nilai acak sebagai nilai r. Setelah semua data dimasukkan, maka kliklah tombol ‘Proses’ sehingga sistem akan menampilkan form Scrambling Tahapan Kedua apabila semua data input valid. Jika tidak, maka sistem akan menampilkan pesan kesalahan. Tampilan form Scrambling Tahapan Kedua dapat dilihat pada gambar berikut:
Gambar 7. Tampilan Form Scrambling Tahap Pertama Langkah pertama dari proses pengacakan citra adalah memilih citra input, yaitu dengan mengklik tombol ‘…’ sehingga akan muncul kotak dialog Open yang akan digunakan untuk mencari dan memilih file yang diinginkan. Tampilan kotak dialog Open dapat dilihat pada gambar berikut:
Gambar 10. Tampilan Form Scrambling Setelah Semua Data Dimasukkan
Gambar 8. Tampilan Kotak Dialog Open Pilihlah file yang ingin diacak. Misalkan dipilih file ‘5k.jpg’, kemudian kliklah tombol ‘Open’ sehingga sistem akan membaca dan menampilkan gambar tersebut, seperti terlihat pada tampilan berikut ini:
Gambar 11. Tampilan Form Scrambling Tahapan Kedua Pada form Scrambling Tahapan Kedua ini akan ditampilkan citra hasil pengacakan dan juga lama waktu eksekusi yang diperlukan. Selain itu, pada form ini juga disediakan dua buah fasilitas yaitu: 1. Tombol ‘Generate Laporan’ yang digunakan untuk menghasilkan laporan detail perhitungan mengenai proses scrambling terhadap citra input yang telah dilakukan. Tampilan form Laporan dapat dilihat pada gambar berikut:
Gambar 9. Tampilan Form Scrambling Setelah Pemilihan File Citra Setelah itu, tentukan jenis algoritma yang akan dipakai. Apabila ingin menggunakan deretan Fibonacci, maka kliklah radiobutton ‘Fibonacci Sequence’, sedangkan apabila ingin menggunakan deretan Lucas, maka kliklah radiobutton ‘Lucas Sequence’. Proses dilanjutkan lagi dengan menentukan kunci yang akan digunakan. Apabila pemakai menginginkan agar sistem yang menentukan kuncinya secara otomatis berdasarkan pada ukuran citra input, maka kliklah checkbox ‘Set secara Otomatis’ sehingga sistem akan menentukan
5
semua data yang diperlukan dapat dilihat pada gambar berikut:
2.
Gambar 15. Tampilan Form ‘Proses Anti Scrambling-Input Data’ Setelah Memilih File Citra Klik tombol ‘Proses’ untuk memulai proses anti-scrambling. Setelah proses selesai, sistem akan menampilkan form ‘Hasil Proses Anti Scrambling’ berikut:
Gambar 12. Tampilan Form Laporan Tombol Simpan yang berfungsi untuk menyimpan citra hasil pengacakan ke dalam sebuah file citra digital. Tampilan kotak dialog Save dapat dilihat pada gambar berikut:
Gambar 16. Tampilan Form ‘Hasil Proses Anti Scrambling’ Gambar 13. Tampilan Kotak Dialog Save Setelah selesai melakukan proses pengacakan citra, maka proses dapat dilanjutkan dengan merekonstruksi kembali citra teracak tersebut. Proses tersebut dapat dilakukan dengan mengklik tombol ‘Anti Scrambling’ yang terdapat pada form ‘Main’. Tampilan yang muncul pertama kali adalah form ‘Proses Anti Scrambling-Input Data’ seperti terlihat pada gambar berikut:
4.
Penutup Setelah menyelesaikan pembuatan perangkat lunak ini, penulis dapat menarik beberapa kesimpulan sebagai berikut: 1. Perangkat lunak dapat membandingkan metode transformasi Fibonacci dan Lucas dalam melakukan pengacakan citra, sehingga dapat diketahui kinerja dari metode transformasi Fibonacci dan Lucas dalam mengamankan citra digital. 2. Metode transformasi Fibonacci memiliki waktu eksekusi yang lebih cepat daripada metode transformasi Lucas. 3. Metode transformasi Fibonacci dan Lucas dapat melakukan pengacakan terhadap citra digital sehingga dapat meningkatkan keamanan dari citra digital rahasia. 4. Metode transformasi Fibonacci dan Lucas menghasilkan citra teracak yang memiliki ukuran lebih besar daripada ukuran citra asli. 5. Aplikasi dapat digunakan untuk menguji kinerja dari metode transformasi Fibonacci dan Lucas.
Gambar 14. Tampilan Form ‘Proses Anti Scrambling-Input Data’ Isikan semua nilai yang diperlukan untuk merekonstruksi kembali citra semula, seperti jenis algoritma yang dipakai dan besar nilai kunci yang digunakan. Tampilan output sistem setelah mengisi
6
5. [1]
Daftar Pustaka Anton, H. dan C. Rorres. (2005). Aljabar Linear Elementer, Edisi Kedelapan – Jilid 2, Versi Aplikasi, Penerbit Erlangga.
[2]
Canaan, C., M. S., Garai dan M. Daya, (2011). All About Fibonacci: A python approach, World Applied Programming Vol (1), No (1), ISSN 2222-2510.
[3]
Chandrasekhar, A., D. Chaya Kumari, CH. Pragathi dan Ashok Kumar, (2016). Multiple Encryption of Independent Ciphers, International Journal of Mathematical Archive-7(2), ISSN 22295046. El Abbadi, N. K., S. T. Abaas dan A. A. Alaziz, (2016). New Image Encryption Algorithm Based on Diffie-Hellman dan Singular Value Decomposition, International Journal of Advanced Research in Computer and Communication Engineering, Vol.5, Issue 1, ISSN 2319-5940.
[4]
[5]
Jiancheng Zou, Rabab K. Ward dan Dongxu Qi (2004). The Generalized Fibonacci Tranformations and Application to Image Scrambling. IEEE. Alamat URL : ispl.korea.ac.kr/conference/ICASSP2004 /pdfs/0300385.pdf
[6]
Kiran Singh Sisodiya, Bijendra Singh, Kiran Sisodiya, 2014, On Lucas Sequence Formula for Solving the Missing Terms of a Recurrence Sequence, International Journal Of Technology Enhancements And Emerging Engineering Research, Vol 2, Issue 5 142 ISSN 2347-4289
[7]
Murni, A., 2011, Pengantar Pengolahan Citra, PT. Elex Media Komputindo, Jakarta.
[8]
Purnamayanti, Thresye, Na’imah Hijriati, 2012, Formula Biner dan Jumlah n Suku Pertama pada Generalisasi Bilangan Fibonacci dengan Metode Matriks, Jurnal Matematika Murni dan Terapan, Vol. 6, No. 1 Juni 2012: 38-46.
[9]
Rahmat Putra, 2011, The Best Source Code Visual Basic, PT. Elex Media Komputindo.
7
[10]
Rinaldi Munir, 2004, Pengantar Pengolahan Citra, PT. Elex Media Komputindo, Jakarta.
[11]
Sadeli, M., 2012, Visual Basic.net 2008, Maxikom.
[12]
T. Sutoyo, Edy Mulyanto, Dr.Vincent Suhartono, Oky Dwi Nurhayati, Wijanarto, 2009, Teori Pengolahan Citra Digital, Penerbit Andi Offset, Yogyakarta.