Eksperimen Steganalisis dengan Metode Visual Attack pada Citra Hasil EzStego Berformat GIF

Pengantar: Tulisan ini merupakan makalah yang telah dipresentasikan pada konferensi nasional SNATI (Seminar Nasional dan Aplikasi Teknologi Informasi) 2016 yang diselenggarakan oleh Jurusan Teknik Informatika, Universitas Islam Indonesia, Yogyakarta, pada tangal 6 Agustus 2016.

Makalah dalam format pdf dapat diunduh dari pranala ini.

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

page1_page_1

page1_page_2

page1_page_3page1_page_4page1_page_5page1_page_7page1_page_6

 

Tinggalkan komentar

Filed under Steganalisis

Algoritma EzStego, Algoritma Steganografi pada Citra GIF

Kebanyakan paper atau riset tentang algoritma steganografi diterapkan pada citra berformat bitmap (BMP) dengan memodifikasi bit LSB pixel secara langsung. Tidak terlalu banyak paper yang membahas algoritma steganografi pada format citra lain, misalnya JPEG atau GIF. Citra dengan format BMP sederhana, karena ia tidak dikompresi, sehingga setiap pixel menyatakan nilai keabuan secara langsung.

Sayangnya citra BMP sangat jarang digunakan di dalam World Wide Web karena ukuran memorinya yang besar.  Citra BMP tidak menjadi standard representasi citra untuk berbagai aplikasi, termasuk di Internet. Citra yang umum digunakan di dalam komunikasi dan  berbagai aplikasi adalah citra terkompresi seperti citra JPEG, GIF, PNG, dan lain-lain.

Tidak banyak paper tentang algoritma steganografi pada citra terkompresi. Tulisan ini membahas algoritma steganografi pada citra GIF.

Citra GIF

Citra GIF adalah jenis citra terindeks (indexed image) yang pertama kali diperkenalkan oleh Compuserve pada tahun 1987. Format GIF biasanya digunakan untuk menyimpan citra grafika komputer, citra ikonik, kartun, logo, animasi, maupun citra natural. Sebuah citra GIF terdiri dari sebuah palet warna dengan komponen Red, Green, dan Blue atau RGB, dan sebuah matriks pixel yang berisi indeks ke sebuah baris di palet. Dengan kata lain, nilai pixel pada matriks menyatakan indeks ke palet. Warna pixel ditentukan oleh kombinasi R, G, dan B pada baris palet yang diacu.

GIF

Struktur citra GIF (Sumber: Matlab)

Gambar 1 memperlihatkan struktur citra GIF. Di dalam gambar tersebut nilai 5 menyatakan elemen palet pada baris kelima. Pada baris tersebut,  R = 0.2902, G = 0.0627, B = 0.0627. Jadi, persepsi warna pada pixel 5 adalah kombinasi wana RGB. Karena kedalaman warnanya hanya sampai 256 buah saja, maka citra GIF cocok untuk gambar grafik buatan manusia seperti kartun, animasi, dan gambar-gambar menarik lainnya yang dibuat menggunakan kakas seperti Corel Draw, Photoshop, dan lain-lain.

EzStego

Salah satu algoritma steganografi yang cukup sederhana pada citra GIF adalah EStego. EzStego dikembangkan oleh Romana Machado (http://www.jjtc.com/Steganography/tools.html)  pada tahun 1996.

Algoitma EzStego menyisipkan bit-bit pesan dengan metode LSB.  Bit LSB dari nilai pixel (yang menunjuk ke nomor entri pada palet) diganti dengan bit pesan. Akibat penyisipan tersebut, nilai pixel dapat bertambah satu,  tetap, atau berkurang satu. Namun, karena nilai pixel merupakan pointer ke palet warna, maka nilai pixel yang baru (setelah penyisipan LSB) akan menunjuk ke warna berikutnya (atau ke warna sebelumnya) di palet yang tentu saja secara visual berbeda signifikan. Hal ini tentu menimbulkan degradasi warna yang membuat citra stego menjadi rusak.

Untuk meminimalkan degradasi warna, maka langkah pertama di dalam algoritma EzStego adalah mengurutkan warna-warna di dalam palet sedemikian sehingga perbedaan dua warna yang bertetangga adalah minimal. Perbedaan dua warna dapat dihitung dengan rumus jarak Euclidean. Misalkan warna 1 dinyatakan sebagai vektor (R1, G1, B1) dan warna 2 dinyatakan sebagai (R2, G2, dan B2). Jarak Euclidean kedua warna tersebut dihitung dengan rumus: euclidean

Jadi, proses pengurutan palet dilakukan dengan menghitung jarak antar warna di dalam palet, lalu mengurutkan palet berdasarkan jarak terkecil sedemikian sehingga akhirnya dua warna bertetangga memiliki jarak Euclidean yang kecil. Bit-bit pesan disisipkan pada bit LSB indeks dari palet yang terurut secara sekuensial.

Gambar 2 memperlihatkan ilustrasi penyisipan pesan di dalam EzStego. Misalkan terdapat delapan palet  yang berbeda warna. Angka 0-7 menyatakan nilai pixel di dalam  citra GIF. Misalkan kita ingin menyisipkan bit pesan  pada pixel bernilai 7. Warna pixel 7 pada citra asal adalah pada  indeks 4 (=100)  pada palet yang sudah terurut, dan warna pixel 3 adalah pada indeks 5 (=101) pada palet terurut. Kedua warna ini bertetangga dan sukar dibedakan. Jika kita menyisipkan bit “1” pada pixel 7, maka warnanya diganti menjadi indeks 3 pada palet terurut (100 –> 101).  Karena perbedaan warna antara dua warna bertetangga sangat kecil, perubahan tersebut  hampir tidak bisa dilihat oleh mata.

ezstego

Ilustrasi proses penyisipan pesan di dalam EzStego (Sumber: A. Westfeld and A. Pfitzmann (1999). “Attack on Steganographic System”, Lecture Notes in Computer Sciences, vol. 1768, pp. 61-76)

Ekstraksi pesan  sangat mudah dilakukan. Sebelum proses ekstraksi, palet warna diurutkan sedemikian sehingga perbedaan dua warna yang bertetangga adalah minimal. Selanjutnya bit pesan  diekstraksi dari LSB indeks palet.  Kelemahan algoritma EzStego adalah tidak membutuhkan kunci sehingga kurang aman untuk penyembunyian pesan, sehingga siapapun yang mengetahui algoritmanya dapat mengekstrak pesan.

Ringkasan algoritma EzStego adalah sebagai berikut:

Embedding Algorithm

  1. Urutkan palet dari citra cover (original image) berdasarkan jarak Euclidean
  2. Assign indeks baru pda palet yang terurut dengan penomoran 0, 1, 2, … dst.
  3. Ganti LSB dari indeks palet yang terurut dengan dengan bit-bit pesan.
  4. Hasilnya adalah sebuah citra stego (stego-image).

Extraction Algorithm

  1. Urutkan palet dari citra stego berdasarkan jarak Eucliedean.
  2. Assign indeks baru pda palet yang terurut dengan penomoran 0, 1, 2, … dst.
  3. Ekstraksi bit LSB dari indeks palet yang terurut.

Di bawah ini beberapa contoh gambar GIF yang disisipi pesan dengan algoritma EzStego. Program dibuat menggunakan kakas Matlab. Pesan yang disisipkan ke dalam citra adalah pesan teks, namun pesan dengan format lainnya pun tetap dapat disisipkan. Anda dapat melihat tidak terdapat degradasi warna pada citra stego.

ezstego1ezstego2ezstego3

ezstego4

Di bawah ini potongan program untuk mengurutkan palet:

ezstego5

 

Tinggalkan komentar

Filed under Steganografi

Stegosploit: Penerapan Steganografi untuk Meng-hack Komputer

Steganografi adalah ilmu dan seni untuk menyembunyikan pesan rahasia di dalam sebuah media pembawa (carrier). Media pembawa saat ini sudah berupa digital, sehingga steganografi digital umumnya menggunakan media digital seperti citra (image), teks, video, dan audio.Penyisipan pesan ke dalam media pembawa tidak membuat kualitas media pembawa itu mengalami distorsi. Media yang telah disisipi pesan hampir tidak dapat dibedakan secara persepsi inderawi (visual atau audial) dengan media aslinya (cover). Inilah keunggulan steganografi dibandingkan kriptografi. Kriptografi menghasilkan cipherteks yang dapat menimbulkan kecurigaan (conspicious) bagi pengamat, sedangkan steganografi menghasilkan pesan yang tidak dapat dideteksi keberadaannya sehingga tidak menimbulkan kecurigaan (non-conspicious). Kriptografi menyembunyikan subtansi pesan, sedangkan steganografi menyembunyikan eksistensi pesan itu sendiri.

Meskipun steganografi merupakan salah satu teknik untuk mengamankan pesan rahasia, namun steganografi bukanlah pengganti kriptografi. Stegaonografi merupakan pelengkap kriptografi. Kriptografi dan steganografi digunakan secara paralel. Pesan rahasia dienkripsi terlebih dahulu (dengan suatu algoritma kriptografi) sebelum disisipkan ke dalam media pembawa. Silakan membaca review singkat tentang steanografi pada laman Wikipedia ini.

Steganografi yang populer adalah penyembunyian pesan di dalam gambar (image). Anda dapat menyisipkan pesan apapun di alam sebuah gambar, baik pesan dalam bentuk teks,  audio,  atau gambar sekalipun. Pesan dinyatakan di dalam bentuk bit biner. Di dalam ranah spasial (spatial domain), bit-bit pesan disisipkan ke dalam pixel, sedangkan di dalam ranah transform, bit-bit pesan disisipkan pada koefisien-koefisien hasil transformasi. Citra asli yang digunakan sebagai wadah penyisipan pesan disebut cover image, sedangkan citra yang sudah disisipi pesan disebut stego image. Antara cover image dan stego image sulit dibedakan secara visual (lihat gambar di bawah). Penerima citra stego mengekstraksi pesan yang tersembunyi di dalamnya menggunakan kunci rahasia tertentu. stegoSelama ini orang beranggapan steganografi hanya sekedar menyisipkan pesan rahasia semata, lalu sesudah itu selesai. Steganografi ternyata dapat digunakan untuk tujuan yang lebih jauh, salah satunya untuk meng-hack komputer. Selama ini  hacker melakukan hacking dengan mencari celah masuk ke dalam jaringan komputer target, atau menyusupkan kode program melalui attachment file dalam format PDF. Tetapi, ada cara lain yang tidak menimbulkan kecurigaan, yaitu melalui gambar-gambar. Adalah Saumil Shah, seorang peneliti keamanan dari India yang menemukan teknik hacking yang bernama Stegosploit. Seperti ditulis di dalam artikel berikut: How to Hack a Computer Using Just an Image, Shah mengatakan:

Stegosploit menggunakan teknik steganografi untuk menyembunyikan malicious code (atau diistilahkan Shah sebagai exploit) di dalam sebuah gambar (format JPG atau PNG). Malicious code adalah kode program “jahat” yang ditulis dalam bahasa JavaScript . Kode program ini isinya perintah-perintah untuk membaca dan mengirimkan data dari komputer target ke penyerang. Jadi, dalam hal ini pesan rahasia yang akan disembunyikan adalah berupa teks kode program yang kemudian disisipkan pada pixel-pixel gambar. Gambar yang sudah disisipi malicious code ini tampak innocent sehingga tidak menimbulkan kecurigaan bagi penerimanya.

stegosploit

Gambar kucing ini mungkin tampak ‘cute’, namun sebenarnya di dalam gambar ini terdapat malicious code yang berbahaya

Setelah sebuah gambar disisipi malicious code, maka cara penyebarannya bisa menggunakan dua cara. Pertama, gambar (stego image) ditaruh pada sebuah laman web dengan perintah kepada pembaca untuk mengklik gambar tersebut (mungkin supaya tampil dalam ukuran yang lebih besar). Cara kedua, komputer target dikirimi surel (email) yang di dalamnya ada tautan (link) ke laman web yang berisi gambar tersebut.  Ketika pengguna meng-klik gambar tersebut sehingga tampil pada laman browser, maka malicious code di dalamnya diekstraksi (decoded) dengan elemen kanvas

Sekali malicious code berhasil di-ekstraksi dari gambar tadi, maka mulailah dia beraksi. Shah mendemokan cara Stegosploit bekerja. Ketika gambar di-klik, CPU menunjukkan penggunaan 100%, yang mengindikasikan malicious code berhasil bekerja. Malicious code membaca data dari komputer target lalu mengirimkannya kembali ke penyerang, tak lupa menampilkan pesan di layar:

Moral dari Stegosploit yang ditemukan Shah adalah: berhati-hatilah jika anda suatu hari menerima kiriman gambar dari sumber yang tidak dapat dipercaya, jangan langsung di-klik., seperti contoh (ini hanya contoh saja) di bawah ini:

stegosploi2

Sebuah surel yang berisi gambar yang siap untuk di-klik

Gambar yang tampak keren atau innocent bisa jadi mengandung program jahat yang akan meng-hack komputer anda. Waspada!

Tinggalkan komentar

Filed under Steganografi

Kriptografi di Korea

Tahun lalu saya dan teman-teman di STEI mendapat kesempatan pelatihan cyber security ke Korea Selatan. Kami banyak mendapat pengalaman perkembangan cyber security di Korea. FYI, Korea Selatan adalah negara yang sangat maju dalam bidang keamanan informasi, termasuk bidang keamanan saiber. Hal ini bisa dimaklumi karena Korea Selatan memiliki musuh bebuyutan yang tidak pernah akur sampai sekarang, yaitu negara tetangga mereka sendiri, Korea Utara. Karena itu, rakyat dan Pemerintah Korea Selatan berusaha memproteksi dirinya dari berbagai usaha serangan saiber dari musuhnya itu, salah satunya melindungi data dan informasi rahasia mereka menggunakan kriptografi. Tulisan ini hanya akan membahas tentang kriptografi di Korea.

Pernah mendengar algoritma kriptografi bernama SEED? SEED adalah sebuah block cipher yang terkenal dari Korea. SEED dikembangkan oleh KISA (Korea Internet and Security Agency), yaitu sebuah badan yang menangani insiden terkait keamanan informasi atau CERT (Computer Emergency Response Team), dan sekarang perannya diperluas untuk menangani kebijakan dalam bidang Internet. SEED digunakan secara luas oleh industri di Korea, tetapi jarang ditemukan di luar Korea.

Di Korea kebijakan yang terkait penggunaan kriptografi sangat ketat. Mereka mempunyai aturan yang hirarkhi seperti yang tergambar pada diagram Venn di bawah ini.

InfoSecPolicy in Korea

Semua algoritma kriptografi yang akan diimplementasikan di dalam produk harus lulus uji program validasi algoritma kriptografi yang disebut CAVP (Cryptographic Algorithm Validation Program). Sekanjutnya, jika sudah lulus, maka modul yang menggunakan algoritma tersebut diuji dan divalidasi oleh K-CMVP (Korea Cryptographic Module Validation Program). Yang dimaksud dengan modul adalah perangkat lunak maupun perangkat keras yang memakai algoritma tersebut. K-CMVP sendiri pada awalnya dibentuk oleh NIST (National Institute of Standard and Technology) –sebuah lembaga standard dari Amerika– dan CSEC (Communications Security Establishment Canada), pada tahun 1995. Semua modul kriptografi yang digunakan oleh Pemerintah Korea untuk melindungi informasi rahasia melalui program validasi K-CMVP ini.

Setelah melewati uji validasi K-CMVP, maka semua fungsi keamanan dari produk IT (H/W maupun S/W) yang diimplentasikan di dalam produk security, dievaluasi oleh CC (Common Criteria). CC adalah standard internasional yang mengevaluasi dan mensertifikasi produk IT untuk memastikan apakah sudah diimplementasikan dengan benar dan sangkil (efektif). Evaluasi yang dilakukan adalah CC meliputi pemeriksaan apakah seorang pengembang (1) mengikuti semua proses rekayasa perangkat lunak, dan (2) membuat produk yang aman dari serangan.

Pengembang CC di negara-negara lain dalpat dilihat pada tabel di bawah ini:

CC

K-ISMS (Korea Information Security Management System), sebagai lingkungan yang menggunakan produk IT Security mendefinisikan bagaimana mengelola keamanan informasi dalam berbagai organisasi, baik organisasi berlaba atau nirlaba, swasta atau Pemerintah, kecil atau besar. K-ISMS mencakaup setiap aspek (fisik maupun logik) dari keamanan informasi, seperti peralatan, kebijakan manajemen, sumbersaya manusia, dan aspek hukum.

Semua yang saya ceritakan di atas menggambarkan betapa Korea sangat menaruh perhatian secara khusus terhadap bidang kriptografi di sana dan keamanan informasi pada umumnya. Mudaha-mudahan perkembangan kriptografi di Indonesia pun dapat mengikyi jejak Korea yang sudah sangat maju dalam bidang tersebut.

(Keterangan: semua gambar diambil dari presentasi dosen Korea University)

1 Komentar

Filed under Rupa-rupa

Proteksi Perangkat Lunak dengan Kriptografi dan Perangkat Keras

Wuaahh… sudah lama saya absen menulis di blog ini. Hari ini saya mulai lagi. Sebenarnya ini sudah agak telat, karena wisuda sarjana ITB sudah selesai. Kenapa wisuda? Karena yang saya bahas kali ini adalah Tugas Akhir mahasiswa saya di Informatika ITB.

Mahasiswa saya bernama Samudra Harapan Bekti, Informatika ITB Angkatan 2008, mengerjakan topik Tugas Akhir yang sangat menarik dan membuat saya angkat topi. Saya beri dia nilai A++ karena idenya orisinil dan hasilnya sangat bermanfaat buat industri perangkat lunak.

Dia mengangkat topik proteksi perangkat lunak dari penggandaan secara ilegal. Selama ini penggandaan perangkat lunak cukup sulit dicegah. Hal ini karena sifat data digital yang mudah digandakan. Memang sudah banyak dikembangkan orang proteksi berbasis perangkat lunak juga, tetapi tetap saja tidak berhasil menanggulangi masalah pembajakan.

Berangkat dari hobi dan ketertarikannya dengan elektronika sejak SMA, dia membuat sistem proteksi perangkat lunak berbasis perangkat keras. Idenya adalah perangkat keras sulit digandakan, dan inilah yang menjadi dasar sistem proteksinya itu.

Dia merancang sendiri pengendali mikro (microcontroller) untuk menyimpan kunci lisensi perangkat lunak. Perangkat lunak yang diproteksi dienkripsi terlebih dahulu dengan kunci tersebut. Perangkat lunak terenkripsi (misal disimpan di dalam CD atau DVD) didistribusikan (atau dijual) kepada konsumen bersama dengan pengendali mikro tadi. Sebuah antarmuka USB digunakan untuk menghubungkan perangkat keras dengan komputer pengguna. Di dalam CD/DVD terdapat perangkat lunak yang dienkripsi dan sebuah program loader yang diaktifkan pada waktu aktivasi produk pertama kali.

Ilustrasi: Contoh sebuah USB microcontroller (Sumber: https://www.olimex.com/dev/mod-mma7260q.html)

USB Microcontroller yang dirancang Samudra Harapan Bekti (Sumber: laman fesbuk ybs di http://www.facebook.com/photo.php?fbid=4008407243732&set=a.4008358162505.2163560.1087712270&type=3&theater)

Dikutip dari laporan TA Samudera Harapan Bekti, pengendali mikro adalah sistem komputer yang terintegrasi di dalam sebuah chip. Chip tersebut disusun oleh prosesor, memori, dan perangkat masukan/keluaran yang dapat diprogram untuk menjalankan fungsi tertentu. Pengendali mikro dapat dimanfaatkan sebagai bagian dari sistem proteksi perangkat lunak untuk menggantikan peran server aktivasi sehingga proses aktivasi perangkat lunak dapat dilakukan di luar jaringan (offline).

Saya tidak akan membahas mengenai rancangan pengendali mikronya, karena saya tidak punya keahlian disitu. Yang ingin saya bahas adalah penggunaan kriptografi di dalam sistem proteksi tersebut.

Perangkat lunak yang diproteksi dienkripsi dengan sebuah algoritma kriptografi (dia memakai algoritma AES) dan kunci rahasia. Kunci rahasia ditanam di dalam USB. Kunci akan dikirim oleh program loader ke komputer pengguna ketika pengguna melakukan aktivasi produk. Kunci dipakai untuk mendekripsi perangkat lunak yang telah dienkripsi.

Kunci yang dipakai untuk mengenkripsi perangkat lunak dienkripsi lagi dengan sebuah session key. Session key ini dihitung dengan algoritma kunci-publik Diffie-Hellman. Kunci privat (private key) yang digunakan di dalam algoritma Diffie-Hellman diambil dari ID hardware yang bersifat unik untuk setiap komputer, sedangkan kunci publiknya (public key) ditentukan oleh pengembang perangkat lunak dan disimpan di dalam USB microcontroller.

Ketika pengguna mengaktivasi produk, program loader meminta pengguna memasukkan USB ke komputer. Selanjutnya terjadi proses perhitungan session key dengan algoritma Diffie-Hellman dengan menggunakan kunci privat (ID hardware) dan kunci publik yang tersimpan di dalam USB tadi.

Session key mendekripsi kunci master, selanjutnya kunci master digunakan untuk mendekripsi perangkat lunak yang diproteksi.

Yang menarik adalah di dalam USB juga dapat disertakan jumlah lisensi yang memungkinkan pengguna menginstalasi produk pada lebih dari satu komputer. Setiap kali aktivasi maka lisensi berkurang satu. Selain itu aktivasi produk dilakukan satu kali saja, tetapi setiap kali menjalankan perangkat lunak program loader akan memeriksa validitas nilai tertentu yang disimpan di dalam sebauh berkas eksternal.

Saya berharap karya TA-nya ini dapat dikembangkan dan diproduksi secara massal untuk mencegah penggandaan ilegal. USB dapat dibuat secara massal di pabrik dengan sebuah kunci lisensi tertentu. Pengembang dapat menyimpan kunci lisensi di dalam USB dan menentukan jumlah lisensi yang dibeli. Perangkat lunak dijual dalam satu paket yang berisi CD/DVD program dan USB tersebut.

8 Komentar

Filed under Aplikasi kriptografi, Kriptografi nirsimetri

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.

3 Komentar

Filed under Enkripsi citra

Skema Pembagian Data Rahasia dari Shamir (Bagian 2)

Selain menggunakan metode eliminasi Gauss untuk menemukan solusi polinom interpolasi, metode lain yang dipakai untuk membentuk polinom secara langsung adalah dengan menggunakan metode interpolasi. Jika anda pernah mengambil kuliah metode numerik, anda tentu pernah mempelajari metode-metode meninterpolasi sejumlah titik data dengan polinom.

Salah satu metode interpolasi polinom adalah Polinom Lagrange. Misalkan diberikan t buah titik yaitu (x1, y1), (x2, y2), …, (xt, yt). Polinom Lagrange, dalam modulo p, yang melalui t titik adalah polinom derajat t– 1:

                                        p(x)  = y1L1(x1) + y2L2(x2) + … + ytLt(xt) (mod p),

yang dalam hal ini:

Polinom Lagrange ini harus dirahasiakan supaya pihak lawan tidak bisa menghitung secret M. Untuk memperoleh secret M caranya mudah, yaitu bila diketahui polinom p(x) maka hitung p(x) pada x = 0.

Misalkan partisipan 2, 3, dan 7 menggunakan interpolasi Lagrange, mereka mengumpulkan semua share mereka:
(x1, y1) = (2, 1045116192326)
(x2, y2) = (3, 154400023692)
(x3, y3) = (7, 973441680328)

Mereka kemudian membentuk polinom Lagrange derajat dua:p(x) = y1L1(x1) + y2L2(x2) + y3L3(x3) (mod p), dan diperoleh hasilnya sebagai berikut:

p(x) =  20705602144728/5 – 1986192751427x + (1095476582793/5)x2 (mod p)

Karena polinom  dihitung dalam modulus p dan dengan mengingat 740740734080  dikali 5 kongruen dengan 1 (mod p), maka 1/5 dapat diganti dengan 740740734080, sehingga kita memperoleh polinom tanpa modulo p:

p(x) = 190503180520 + 482943028839x +120674920705602144728x2

Untuk memproleh M, hitung p(0), dan diperoleh p(0) = 190503180520 = M, yaitu secret semula.

 

Referensi

1. Trappe, W., Washington, L. (2006): Introduction to Cryptography with Coding Theory, Prentice Hall.

Tinggalkan komentar

Filed under Secret sharing