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.

About these ads

Tinggalkan komentar

Filed under Chaos, Enkripsi citra

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logout / Ubah )

Twitter picture

You are commenting using your Twitter account. Logout / Ubah )

Facebook photo

You are commenting using your Facebook account. Logout / Ubah )

Google+ photo

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s