Enkripsi Selektif Citra Digital dalam Ranah Spasial

Saya sedang melakukan riset pengembangan beberapa algoritma enkripsi khusus untuk citra digital. Teknik enkripsi yang diinginkan adalah enkripsi selektif. Enkripsi selektif adalah mengenkripsi hanya sebagian elemen citra namun efeknya keseluruhan citra terenkripsi.  Di bawah ini saya paparkan sebuah teknik enkripsi selektif dalam ranah spasial.  Tulisan ini saya ambil sebagian dari makalah yang saya presentasikan di dalam konferensi SITIA 2012 di Kampus ITS Surabaya beberapa waktu yang lalu.

~~~~~~~~~~~~~~~~~~

1. PENDAHULUAN

Enkripsi citra bertujuan melindungi konten di dalam citra dari pengaksesan ilegal. Obyektif dari enkripsi citra adalah mentransformasikan citra ke dalam bentuk lain yang tidak bermakna sehingga konten di dalam citra tidak dapat dipahami lagi secara visual.

Mengenkripsi citra dengan algoritma enkripsi konvensional untuk data teks seperti DES, AES, Blowfish, dan lain-lain kurang cocok untuk aplikasi komunikasi yang real-time, sebab citra umumnya bervolume data sangat besar sehingga proses enkripsinya menjadi lambat. Oleh karena itu, solusi untuk masalah ini adalah dengan menggunakan konsep enkripsi selektif (atau sebagian) sebagai lawan dari enkripsi total [2]. Dengan teknik enkripsi selektif hanya sebagian komponen citra yang perlu dienkripsi namun sebagai efeknya citra dienkripsi secara keseluruhan. Tujuan enkripsi selektif jelas untuk meminimalkan volume komputasi selama proses enkripsi dan dekripsi.

Enkripsi selektif dapat dilakukan dalam ranah spasial atau dalam ranah frekuensi. Klasifikasi dan ringkasan beberapa algoritma enkripsi selektif dapat ditemukan di dalam [5], sedangkan performansi algoritmanya dapat dibaca di dalam [3].

Menurut [6], kebanyakan algoritma enkripsi citra dapat dikelompokkan menjadi dua golongan: (a) algoritma enkripsi selektif non-chaos, dan (b) algoritma enkripsi selektif atau non-selektif yang berbasis chaos. Chaos menjadi topik yang atraktif di dalam kriptografi karena tiga alasan: (1) sensitivitas terhadap kondisi awal, (2) berkelakuan acak, dan (3) tidak memiliki periode berulang. Penggunaan chaos di dalam kriptografi dapat menghasilkan efek confusion dan diffusion seperti yang disyaratkan oleh Shanon [8].

Kebanyakan skema enkripsi berbasis chaos menggunakan fungsi chaos (chaotic map) sebagai pembangkit barisan bilangan semi-acak (pseudo-random) yang panjang, kemudian barisan bilangan acak tersebut digunakan untuk mengenkripsi plainteks. Review beberapa algoritma enkripsi citra yang berbasis chaos dapat ditemukan di dalam [4].

Makalah ini membahas sebuah algoritma enkripsi selektif citra digital pada ranah spasial berbasis chaos. Sistematika makalah disusun menjadi tiga. Yang pertama adalah pendahuluan, bagian kedua adalah enkripsi selektif pada bit-bit MSB, dan bagian ketiga adalah eksperimen dan pembahasan hasil.

2. ENKRIPSI SELEKTIF PADA BIT-BIT MSB

Nilai pixel pada koordinat (x, y) menyatakan intensitas nilai keabuan pada posisi tersebut. Pada citra grayscale nilai keabuan itu dinyatakan dalam integer berukuran 1 byte sehingga rentang nilainya antara 0 sampai 255. Pada citra berwarna 24-bit setiap pixel tediri atas kanal red, green, dan blue (RGB) sehingga setiap pixel berukuran 3 byte (24 bit).

Di dalam setiap byte bit-bitnya tersusun dari kiri ke kanan dalam urutan yang kurang berarti (least significant bits atau LSB) hingga bit-bit yang berarti (most significant bits atau MSB).  Susunan bit pada setiap byte adalah b7b6b5b4b3b2b1b0. Jika setiap bit ke-i dari MSB ke LSB pada setiap pixel diekstrak dan diplot ke dalam setiap bitplane image maka diperoleh delapan buah citra biner. Misalnya bila dilakukan pada citra ‘cameraman’ (Gambar 1(a)) maka setiap bitplane image ditunjukkan pada Gambar 1(b) hingga 1(i). Gambar 1(b) hingga 1(f) yang diambil dari bit-bit MSB masih dapat memperlihatkan wujud objek di dalam citra sedangkan Gambar 1(g) hingga 1(i) yang diambil dari bit-bit LSB sudah terlihat seperti citra acak.

Gambar 1: Bitplane pada citra cameraman

Berdasarkan hasil ekstraksi bit-bit tersebut dapat disimpulkan bahwa pengubahan bit-bit MSB dapat membuat citra menjadi “rusak” atau tidak dapat dikenali lagi, sedangkan pengubahan bit-bit LSB tidak mempengaruhi citra secara keseluruhan. Oleh karena itu hanya bit-bit MSB saja yang dipilih untuk dienkripsi sebab dengan hanya mengenkripsi bit-bit tersebut maka keseluruhan citra menjadi tidak dapat dikenali lagi.

Jumlah bit MSB yang dienkripsi mempengaruhi tingkat keamanan. Jika hanya satu bit yang dienkripsi, maka tujuh bit sisanya (yang tidak ikut dienkripsi) masih dapat memperlihatkan wujud objek di dalam citra, sehingga tingkat keamanannya rendah. Oleh karena itu setelah enkripsi 1-bit MSB masih diperlukan prosedur permutasi tambahan untuk mengacak pixel agar diperoleh efek confusion [7].

Tao Xiang di dalam makalahnya menyebutkan bahkan enkripsi lebih dari dua bit MSB (tanpa prosedur pengacakan sesudahnya) masih tetap belum menjamin confidentiality citra. Untuk memperoleh keseimbangan antara tingkat keamanan dan pertimbangan performansi komputasi, maka enkripsi empat bit MSB (yaitu b7b6b5b4 )merupakan pemilihan yang optimal [1]. Dengan mengenkripsi hanya 4-bit MSB berarti cukup hanya dienkripsi 50% saja dari keseluruhan citra untuk memperoleh citra terenkripsi namun tingkat keamanannya tetap terjamin.

3. EKSPERIMEN DAN PEMBAHASAN HASIL

Setelah membahas teknik enkripsi selektif dalam ranah spasial, selanjutnya dilakukan implementasi algoritma tersebut. Algoritma enkripsinya seperti stream cipher namun enkripsi dilakukan per 4-bit setiap kali. Sebagai keystream generator adalah pembangkit bilangan acak berbasis chaos. Dalam hal ini, setiap 4-bit MSB dari setiap pixel di-XOR-kan dengan 4-bit keystream. Pada proses dekripsi, setiap 4-bit pixel dari cipher-image di-XOR-kan dengan 4-bit keystream. Untuk citra berwarna prosesnya dilakukan tiga kali, masing-masing untuk kanal red (R), green (G), dan blue (B).

Selanjutnya dilakukan simulasi enkripsi selektif pada citra uji, baik citra graysscale maupun citra berwarna. Dua buah citra standard yang digunakan adalah ‘Barbara’ (grayscale) dan ‘Lena’ (berwarna) yang keduanya berukuran 512 x 512 (Gambar 2), dan citra ketiga adalah ‘Taj Mahal’ yang berukuran 768 x 573.

Gambar 2. Tiga buah citra uji yang digunakan di dalam simulasi enkripsi dan dekripsi.

Citra hasil enkripsi (cipher-image) untuk ketiga citra uji di atas diperlihatkan pada Gambar 3. Citra hasil enkripsi terlihat sebagai citra acak dan sudah tidak bisa dikenali lagi. Dekripsi terhadap cipher-image menghasilkan kembali tepat seperti citra paad Gambar 1.

Gambar 3. Citra hasil enkripsi. Ketiga buah citra plain-image sudah tidak dapat dikenali lagi.

Analisis Histogram

Histogram merupakan properti citra yang penting sebab sebuah histogram memperlihatkan distribusi intensitas pixel di dalam citra tersebut. Untuk citra plain-image histogramnya membentuk suatu pola yang khas, yaitu ada puncak-puncak dan lembah-lembah. Untuk mencegah penyerang menggunakan histogram untuk melakukan analisis freluensi, maka histogram plain-image dan histogram cipher-image seharusnya tidak memiliki kemiripan secara statistik. Oleh karena itu, histogram cipher-image seharusnya relatif datar (flat) sehingga tahan terhadap serangan statistik. Distribusi yang relatif uniform pada cipher-image adalah sebuah indikasi bahwa algoritma enkripsi citra memiliki kualitas yang bagus [9].

Gambar 4(a) memperlihatkan histogram citra ‘Barbara’ sebelum dienkripsi, dan Gambar 4(b) adalah histogram cipher-image-nya. Dapat dilihat bahwa histogram cipher-image memiliki distribusi uniform yang mana berbeda dengan histogram plain-image.

Gambar 4. (a) Histogram citra ‘Barbara’ (plain-image) dan (b) histogram cipher-image.

Gambar 5(a) sampai 5(c) memperlihatkan histogram citra ‘Lena’ (plain-image) untuk setiap kanal warna RGB dan Gambar 5(d) sampai 5(f) adalah histogram masing-masang kanal warna pada cipher-image. Sama seperti citra ‘Barbara’, histogram cipher-image pada setiap kanal RGB juga terlihat flat atau terdistribusi uniform.

Gambar 5. (a)-(c) Histogram citra ‘Lena’ (plain-image) untuk masing-masing kanal RGB dan (d)-(f) histogram cipher-image untuk setiap kanal RGB.

Gambar 6(a) memperlihatkan histogram citra ‘Taj Mahal’ (plain-image) dan Gambar 8(b) adalah histogram cipher-image-nya. Sedikit berbeda dengan histogram cipher-image dari dua citra sebelumnya, histogram cipher-image dari ‘Taj Mahal’ memiliki distribusi yang relatif uniform.

Gambar 6 (a) Histogram citra ‘Taj Mahal’ (plain-image) dan (b) histogram cipher-image.

Berdasarkan hasil-hasil analisis histogram di atas dapat disimpulkan bahwa cipher-image memiliki histogram yang (relatif) flat sehingga menyulitkan penyerang melakukan analisis statistik untuk mendeduksi pixel atau kunci. Hasil ini menunjukkan bahwa algoritma enkripsi citra yang diusulkan ini memiliki keamanan yang bagus.

DAFTAR REFERENSI

[1] Tao Xiang, Kwok-wo Wong, Xiaofeng Liao, Selective Image Encryption Using a Spatiotemporal Chaotic System, Chaos Volume 17, 2007.
[2] Nidhi S Kulkarni, Balasubrmanian Raman, Indra Gupta, Selevtive Encryption of Multimedia Images, Proc. Of XXXII National Systems Conference, NSC 2008, December 17-19, 2008.
[3] Jolly Shah, Vikas Saxena, Performance Study on Image Encryption Schemes, International Journal of Computer Science Issues, Vol 8, Issue 4, No 1, July 2011.
[4] Monisha Sharma, Manoj Kumar Kowar, Image Encryption Techniques Using Chaotic Schemes: A Review, International Journal of Engineering Science and Technology, Vol. 2(6), 2010
[5] Xiliang Liu, Selective Encryption of Multimedia Contentn in Distribution Networks: Challenges and New Directions, Proc. of Conference of Communications, Internet, and Information Technology, 2003.
[6] Mohammad Ali Bani Younes, Aman Jantan, Image Encryption Using Block-based Transformation Algorithm, IAENG International Journal of Computer Science, 35: 1, IJCS_32_1_03, 2008.
[7] Rinaldi Munir, Enkripsi Selektif Citra Digital dengan Stream Cipher Berbasiskan pada Fungsi Chaotik Logistic Map, Seminar Nasional dan Expo Teknik Elektro Univeristas Syiah Kuala, Banda Aceh, Oktober 2011.
[8] Bruce Schneier, Applied Cryptography 2nd Edition, Wiley & Sons, 1996.
[9] Alireza Jolfaei, Abdul Rasoul Mirghadri, An Image Encryption Approach Using Chaos and Stream Cipher, Journal of Theoretical and Applied Information Technology, 2010.
[10] James Lampton, Chaos Cryptography: Protecting data Using Chaos, Missisippi School for Mathematics and Science.

Enkripsi Citra dengan “Arnold Cat Map”

Saat ini saya sedang melakukan penelitian mengembangkan beberapa algoritma enkripsi sekektif pada citra digital berbasis chaos. Salah satu fungsi chaos (chaos map) yang menarik perhatian saya adalah Arnold Cat Map (ACM).  ACM adalah fungsi chaos dwimatra yang mentransformasikan koordinat (x, y) di dalam citra ke koordinat baru di dalam citra yang sama.  Persamaan transformasi tersebut adalah

yang dalam hal ini (xi, yi) adalah posisi pixel di dalam citra berukuran N x N dan (xi+1, yi+1)  posisi pixel yang baru setelah transformasi; p dan q adalah integer positif. Determinan   harus sama dengan 1 agar hasil transformasianya tetap berada di dalam area citra yang sama (area-preserving). ACM adalah pemetaan satu-ke-satu yang berarti setiap posisi pixel ditransformasikan ke posisi lain secara unik (Yu, 2006). Fungsi chaos ini ditemukan oleh Vladimir Arnold pada tahun 1960 yang menggunakan citra seekor kucing sebagai  eksperimennya.

Proses yang terjadi di dalam setiap iterasi ACM adalah pergeseran (shear) dalam arah y, kemudian dalam arah x, dan semua hasilnya (yang mungkin berada di luar area gambar) dimodulokan dengan N agar tetap berada di dalam area gambar (area preserving).

Iterasi ACM terhadap sebuah citra akan mengacak citra tersebut, yang sama artinya dengan mengenkripsi citra. Dengan melakukan iterasi berkali-kali diperoleh citra acak yang  berbeda-beda. Namun, sesudah iterasi tertentu kembali dihasilkan citra awal semula, oleh karena itu ACM dikatakan memiliki  periode.

Saya memprogram ACM dengan kakas MATLAB, lalu melakukan eksperimen dengan menggunakan citra ‘burung’.  Di bawah ini saya perlihatkan hasil beberapa iterasi ACM terhadap citra awal.

Gambar 1: Iterasi ACM pada citra ‘burung’

Pada iterasi pertama citra burung sudah mengalami distorsi akibat pergeseran. Pada iterasi ketiga gambarnya sudah tidak bisa dipersepsi lagi. Semakin banyak iterasinya maka  gambarnya menjadi semakin acak, disini kita katakan ACM sudah memasuki ruang chaos yang bersifat acak atau tidak bisa diprediksi. Pada iterasi ke-99 anda dapat melihat gambar burung sudah teracak dengan baik. Namun, proses iterasi itu berhenti pada suatu saat kembali menuju gambar semula. Pada iterasi ke-191 gambarnya kebalikan dari iterasi pertama, dan pada iterasi ke-192 gambarnya kembali menjadi gambar awal semula. Iterasi ke-193, 194, dan seterusnya akan sama seperti iterasi ke-1, 2, dam seterusnya. Itulah sebabnya dikatakan ACM dikatakan memiliki periode. Karena adanya periode itulah maka ACM tidak bisa dikatakan murni chaos sebab chaos tidak memiliki periode, namun ia digolongkan sebagai chaos map karena sifat-sifat acaknya itu.

Jumlah iterasi yang diperlukan agar citra acak kembali ke citra semula berbeda-beda bergantung pada ukuran citra.  Hubungan antara ukuran citra dan jumlah iterasi yang dibutuhkan agar kembali ke citra awal diperlihatkan pada tabel berikut (Struss, 2009):

——————————————————————————————————————

Ukuran citra (N x N)                                                                   Jumlah iterasi

—————————————————————————————————————–

300 x 300                                                                                                300

183 x 183                                                                                                  60

124 x 124                                                                                                  15

100 x 100                                                                                                 150

150 x 150                                                                                                  300

257 x 257                                                                                                 258

157 x 157                                                                                                  157

147 x 147                                                                                                  56

——————————————————————————————————————–

Menurut paper yang ditulis Freeman J. Dyson dan Harold Falk jumlah iterasi yang diperlukan agar kembali ke citra semula adalah kurang dari 3N, yang dalam hal ini N adalah dimensi citra (misalnya jika citra berukuran 256 x 256 maka N = 256) (Struss, 2009).

Dengan melakukan iterasi ACM terhadap sebuah gambar, maka kita sudah mengenkripsi gambar tersebut. Sebagai kunci enkripsi adalah nilai p dan q yang harus dijaga sebagai paramater rahasia. Namun, karena sifat periodik ACM yang dapat  menghasilkan kembali citra semula, maka enkripsi dengan menggunakan ACM saja tidak aman, sebab melalui hack sederhana nilai p dan q dapat ditemukan melalui operasi brute force.  Selain itu ACM hanya mengubah posisi pixel di dalam citra tetapi tidak mengubah nilai pixel.

ACM hanya bisa diterapkan untuk citra berukuran persegi atau bujursangkar (N x N). Jika citra tidak berukuran bujursangkar, maka citra tersebut harus disamakaan dulu dimensinya dengan menambahkan baris-baris pixel dummy (atau kolom-kolom pixel dummy) yang seluruhnya bernilai nol. Untuk citra berwarna, maka iterasi dilakukan untuk setiap kanal R, G, dan B.

Kode program MATLAB untuk enkripsi sederhana dengan ACM saya perlihatkan di bawah ini.  Nilai p = 5, q = 7, dan jumlah iterasi = 10. Kode ini hanya memproses citra grayscale saja, anda dapat memodifikasinya sehingga dapat digunakan untuk citra berwarna.

Referensi

1. Struss, K. (2009), A Chaotic Image Encryption, Mathematics Senior Seminar, 4901, University of Minnesota, Morris.

2. Yu, X., Zhang, J., Ren, H., Xu, G., dan Luo, X. (2006), Chaotic Scrambling Algorithm Based on S-DES, Journal of Physics: Conference Series 48, 349-353.