JUDUL IMPLEMENTASI ALGORITMA RC6 UNTUK ENKRIPSI CITRA PADA MMS DENGAN MENGGUNAKAN J2ME
Naskah Publikasi
diajukan oleh Yuli Uswiratri 07.11.1558
kepada SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA 2011
NASKAH PUBLIKASI
THE IMPLEMENTATION OF RC6 ALGORITHM FOR IMAGE ENCRYPTION ON USING J2ME MMS
IMPLEMENTASI ALGORITMA RC6 UNTUK ENKRIPSI CITRA PADA MMS DENGAN MENGGUNAKAN J2ME
Yuli Uswiratri Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA
ABSTRACT Communication technology in this era has been growing rapidly, one of the implementations of communication technology is cellular communication technology which widely known as GSM. Along with the development of cellular technology, the features contained in it also developed as well. For example, Multimedia Messaging Service (MMS) which are the development of a Short Message Service (SMS) system where the MMS feature allows the users to exchange information in the form of images, sound and text separately or together in one package of information. Currently, the MMS service features do not have good safety standards because on the implementation, the mobile operators as the provider of MMS services are able know the content of messages sent by the customer. Other problems arise from human error. An error occurred when writing a message destination number. These cause less ensuring of the confidentiality of the messages which are sent. To meet the confidentiality aspect of the messages sent can be used cryptographic technique that is called encoded messages, where messages sent can only be read by a recipient who has a right to know the content of the message using a secret key. In this thesis, the researcher applied the algorithm RC6 as algorithms in the process of encryption and decryption of multimedia messages in the form of image. RC6 algorithm is an algorithm block of code which is very secure, solid, simple and offers excellent performance and flexibility. RC6 algorithm is an algorithm with parameters that can work on varieties of key length and a symmetric algorithm. For the security aspects, RC6 algorithm prioritizes the principle of iterated cipher. Application software built on this research is written using J2ME programming language. Keywords:Cryptography, RC6 Algorithm, MMS, J2ME
1. Pendahuluan Perkembangan teknologi telekomunikasi yang ada pada saat ini mampu menciptakan berbagai macam perangkat keras yang dapat digunakan untuk mengirim atau menerima informasi dengan cepat dan mudah.Salah satu perangkat keras yang cukup banyak digunakan pada saat ini adalah telepon selular.Banyak merk dan jenis telepon selular beredar di pasaran, bahkan sudah banyak beredar telepon selular yang mempunyai kamera terintegrasi di dalamnya. Dengan adanya penambahan fungsi pada telepon selular berupa kamera terintegrasi, penggunaan telepon selular tidak hanya digunakan untuk komunikasi suara maupun pesan teks.Namun, berkembang fungsinya sehingga dapat mengirim pesan berupa pesan multimedia khususnya image (image).Setiap pesan multimedia dapat ditransmisikan dengan berbagai media transmisi.Media transmisi tersebut dapat berupa jalur komunikasi Global System for Mobile Communication (GSM), bluetooth, infrared, maupun media lainnya. Seperti halnya pesan teks, pesan yang berupa image juga memiliki nilai informasi yang membutuhkan pengamanan. Nilai informasi tersebut bisa menjadi informasi rahasia dan hanya pihak berwenang yang dapat mengakses informasi berupa image tersebut.Sebagai contoh dalam dunia intelijen, ketika seorang intelijen melakukan pengumpulan informasi rahasia yang membutuhkan pengambilan gambar dengan menggunakan telepon selular.Image tersebut kemudian dikirimkan kepada pimpinan melalui Multimedia Message Service (MMS), karena pentingnya informasi tersebut, image harus dienkripsi terlebih dahulu sebelum dikirimkan. Saat ini fitur layanan MMS belum memiliki standar keamanan yang baik, karena pada implementasinya, pihak operator selular selaku penyedia layanan MMS masih dapat mengetahui isi pesan yang dikirimkan oleh pelanggan. Permasalahan lain muncul dari sisi human error yaitu terjadi kesalahan penulisan nomor tujuan pesan. Hal-hal tersebut menyebabkan kurang terjaminnya kerahasiaan pesan yang dikirim. Penerapan kriptografi dengan cara penyandian pesan merupakan salah satu solusi yang dapat digunakan untuk memenuhi aspek kerahasiaan. Pesan yang dikirim tersebut hanya dapat dibaca oleh penerima yang memiliki hak untuk mengetahui isi pesan tersebut dengan menggunakan kunci rahasia.
2. Landasan Teori 2.1. CITRA Citra (image) merupakan istilah lain dari gambar sebagai salah satu komponen multimedia yang memegang peranan penting sebagai bentuk informasi visual. Citra mempunyai karakteristik yang tidak memiliki oleh teks, yaitu citra kaya akan 1
informasi . 2.2. KRIPTOGRAFI 2.2.1 Pengertian Kriptografi Kriptografi (cryptography) berasal dari bahasa Yunani yaitu cryptos artinya 2
rahasia (secret) dan graphein artinya tulisan (writing). Jadi kriptografi berarti tulisan rahasia (secret writing). Secara istilah kriptografi didefinisikan sebagai ilmu sekaligus seni untuk menjaga kerahasiaan pesan (data atau informasi) yang mempunyai arti atau nilai, dengan cara menyamarkannya (mengacak) menjadi bentuk yang tidak dapat dimengerti menggunakan suatu algoritma tertentu. Suatu pesan yang akan dirahasiakan atau disandikan dalam ilmu kriptografi disebut plaintext, sedangkan pesan yang telah disandikan sehingga tidak memiliki nilai dan arti lagi dengan tujuan agar pesan tidak dapat dibaca oleh pihak yang tidak berhak disebut chipertext. Dalam ilmu kriptografi juga terdapat istilah enkripsi dan dekripsi. Enkripsi merupakan proses menyandikan plaintext menjadi ciphertext dengan menggunakan algoritma tertentu. Sedangkan proses mengembalikan chipertext menjadi plaintext disebut sebagai Dekripsi. Berikut ini skema umum sebuah penyandian dalam kriptografi :
Gambar 2.1. Skema proses enkripsi dan dekripsi 2.2.2
Algoritma Kriptografi
Perkembangan algoritma kriptografi dapat kita bagi menjadi dua, yaitu:
3
1
www.informatika.org/rinaldibuku pengolahan citra/buku e-book.html
2
Ariyus, Dony.2008. Pengantar Ilmu KRIPTOGRAFI.Yogyakarta : ANDI hal.13
3
Kurniawan, Yusuf, Ir. 2004. Kriptografi Keamanan Internet dan Jaringan Komunikasi. Bandung : Informatika Bandung.
1. Kriptografi Klasik Pada algoritma klasik, diterapkan teknik enkripsi konvensional (simetris). Algoritma ini merupakan algoritma kriptografi yang biasa digunakan orang sejak berabad-abad yang lalu. 2. Kriptografi Modern Kriptografi modern lebih menitikberatkan pada kerahasiaan kunci yang digunakan pada algoritma tersebut (oleh pemakainya) sehingga algoritma tersebut dapat saja disebarkan tanpa takut kehilangan kerahasiaan bagi para pemakainya. Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan menjadi : 1. Algoritma Simetrik (symmetric algorithm) adalah suatu algoritma yang menggunakan kunci enkripsi sama dengan kunci dekripsi sehingga algoritma ini disebut juga sebagai single-key algorithm.Beberapa algoritma kriptografi simetrik antara lain DES, Blowfish, IDEA, RC4, RC5, RC6, AES atau Rijndael, Serpent dan Twofish. 2.
Algoritma Asimetrik (asymmetric algorithm) adalah suatu algoritma yang menggunakan kunci enkripsi tidak sama dengan kunci dekripsi. Algoritma ini menggunakan dua kunci yakni kunci publik (public key) dan kunci privat (private key). Beberapa algoritma kunci publik antara lain adalah RSA, Rabin dan ElGamal.
2.3 RC6 Block Cipher RC6 merupakan algoritma yang merupakan keturunan dari RC5 yang juga merupakan kandidat AES (Advanced Encryption Standard).Pada mulanya, perancangan RC6 diawali ketika RC5 dianggap dapat dijadikan kandidat untuk mengikuti kompetisi pemilihan AES.Modifikasi kemudian dibuat untuk meningkatkan keamanan dan performa dan juga untuk dapat memenuhi persyaratan AES. RC6 dirancang untuk menghilangkan segala ketidakamanan yang ditemukan pada RC5, karena analisis pada RC5 menunjukkan bahwa ternyata jumlah rotasi yang terjadi pada RC5 tidak sepenuhnya bergantung pada data yang terdapat dalam blok. Selain itu, serangan kriptanalisis diferensial juga ternyata dapat menembus keamanan yang ditawarkan RC5. RC6 juga dirancang untuk memenuhi persyaratan AES yang diantaranya adalah kemampuan untuk beroperasi pada mode blok 128 bit. Jika besar blok 128 bit langsung dipaksakan untuk diimplementasikan dengan algoritma RC5, maka akan dibutuhkan register kerja 64 bit. Spesifikasi arsitektur dan bahasa yang menjadi tempat implementasi algoritma yang ditentukan oleh AES belum mendukung pengoperasian 64 bit yang
efisien. Oleh karena itu, daripada menggunakan 2 register 64 bit seperti pada RC5, RC6 menggunakan 4 register 32 bit. Karena menggunakan 4 register maka akan terdapat 2 operasi rotasi pada setiap half-round yang ada, dan juga akan lebih banyak bit-bit yang akan digunakan untuk mempengaruhi banyaknya bit yang dirotasi. RC6 seperti juga RC5 mengeksploitasi penggunaan operasi-operasi primitif yang diimplementasikan secara efisien dalam prosesor-prosesor modern.RC6 juga selain menggunakan ketiga operasi primitif yang digunakan dalam RC5, juga menggunakan operasi perkalian 32-bit yang telah diimplementasikan secara efisien dalam prosesor modern saat ini.Primitif operasi perkalian ini sangat efektif dalam menghasilkan efek “diffusion” atau penyebaran yang tentu saja mengakibatkan RC6 lebih aman daripada RC5. Operasi perkalian ini digunakan untuk menghitung jumlah bit yang dirotasi sehingga konsep data-dependent rotations dapat dengan lebih sempurna diimplementasikan. 2.3.1 Operasi-operasi Primitif Selain ketiga operasi primitif yang digunakan pada RC5, RC6 juga menggunakan operasi perkalian modulo-2w. Berikut adalah daftar operator-operator primitif (termasuk invers) yang digunakan dalam RC6:
4
a + b : penjumlahan integer modulo 2w a – b : pengurangan integer modulo 2w a⊕b : operasi eksklusif-OR (xor) dari w-bit word a × b : perkalian integer modulo 2w a <<
>>b : rotasi terhadap a ke kanan sebanyak nilai yang diperoleh dari bitbit orde bawah sejumlah 2log(w) dari b 2.3.2 Algoritma RC6 Algoritma RC6 seperti juga RC5 merupakan algoritma cipher yang terparameterisasi. RC6 secara tepat ditulis sebagai:
5
RC6 – w / r / b Nilai parameter w, r, dan b menyatakan hal yang sama seperti yang ditunjukkan dalam algoritma RC5. Algoritma RC6 yang dipakai sebagai kandidat AES adalah RC6-32/20/b, yang berarti ukuran word 32 bit, jumlah ronde 20 kali, dengan panjang kunci b ditentukan pengguna.
4 5
Ariyus, Dony.2008. Pengantar Ilmu KRIPTOGRAFI.Yogyakarta : ANDI hal. 257 Ariyus, Dony.2008. Pengantar Ilmu KRIPTOGRAFI.Yogyakarta : ANDI hal. 258
2.3.3 Key Expansion Algorithm Algoritma untuk membangkitkan kunci internal sama seperti pada RC5. Nilai konstanta Pw dan Qw yang digunakan juga sama, tetapi ukuran array S tidak sama dengan yang seperti RC5. Ukuran t dari array S dalam RC6 adalah t = 2(r+2), yang berarti terdapat lebih banyak kunci internal yang
dibangkitkan
algoritmanya:
daripada
jumlah
kunci
internal
RC5.
Berikut
6
S[0] = Pw fori = 1 to (2r + 3) do S[i] = S[i – 1] + Qw i=0 j=0 A=0 B=0 for3 × max(c, (2r + 4)) times do S[i] = (S[i] + A + B) <<< 3 A = S[i] L[i] = (L[j] + A + B) <<< 3 B = L[i] i = (i + 1) mod (2r+4) j = (j + 1) mod c
2.3.4 Algoritma Enkripsi Fungsi enkripsi menerima input 1 blok plaintext yang terbagi dalam 4 register yang masing-masing berupa w-bit word, yaitu A, B, C, dan D. Ciphertext hasil proses terbagi dan disimpan dalam A, B, C, dan D. Dalam proses enkripsi diperlukan tabel kunci S yang dianggap telah didapat dari proses sebelumnya.
6
7
7
Ariyus, Dony.2008. Pengantar Ilmu KRIPTOGRAFI.Yogyakarta : ANDI hal. 258 Ariyus, Dony.2008. Pengantar Ilmu KRIPTOGRAFI.Yogyakarta : ANDI hal. 259
Secara lebih detil, proses enkripsi dengan RC6 dapat dibagi dalam beberapa langkah. Dalam penjelasan berikut, notasi (A,B,C,D) = (B,C,D,A) berarti adalah operasi assignment yang dilakukan paralel (bersamaan) untuk setiap elemen di ruas kanan ke ruas kiri yang berkorespondensi. Langkah-langkahnya adalah sebagai berikut: 1. Mula-mula lakukan half-round loop yang seperti pada RC5: fori = 1 to r do A = ((AB) <<< B) + S[i] ⊕ (A,B) = (B,A) 2. Lakukan dua proses RC5 secara paralel, yang satu untuk register A, B dan yang lain untuk register C, D. fori = 1 to r do A = ((AB) <<< B) + S[2i] ⊕ C = ((CD) <<< D) + S[2i+1] ⊕ (A,B) = (B,A) (C,D) = (D,C) 3. Pada tahap pertukaran, daripada menukar A dengan B, dan C dengan D, lakukan permutasi antar keempat register (A,B,C,D) = (B,C,D,A), sehingga komputasi AB bercampur dengan komputasi CD. fori = 1 to r do A = ((AB) <<< B) + S[2i] ⊕ C = ((CD) <<< D) + S[2i+1] ⊕ (A,B,C,D) = (B,C,D,A) 4. Campurkan komputasi AB dengan CD lebih jauh, yaitu dengan mempertukarkan kedua nilai yang menyatakan jumlah rotasi pada masing-masing komputasi. fori = 1 to r do A = ((A⊕B) <<< D) + S[2i] C = ((C⊕D) <<< B) + S[2i+1] (A,B,C,D) = (B,C,D,A) 5. Daripada menggunakan nilai B dan D secara langsung, RC6 menggunakan hasil transformasi kedua register ini. Hal ini dilakukan untuk tidak mengulangi masalah rotasi seperti pada RC5 di mana tidak seluruh bit dalam data yang berpengaruh dalam rotasi. Oleh karena itu, fungsi transformasi yang dipilih harus dapat memanfaat seluruh bit di dalam data untuk mengatur jumlah bit yang dirotasikan. Fungsi yang dipilih adalah f(x) = x(2x + 1) (mod 2w) yang kemudian diikuti dengan
rotasi ke kiri sebanyak 5 bit. Transformasi ini terpilih karena fungsi f(x) yang merupakan fungsi satu-ke-satu memiliki bit-bit orde atas yang menentukan jumlah rotasi yang akan digunakan yang sangat bergantung pada x. fori = 1 to r do p = (B × (2B + 1)) <<< 5 q = (D × (2D + 1)) <<< 5 A = ((A⊕p) <<< q) + S[2i] C = ((C⊕q) <<< p) + S[2i+1] (A,B,C,D) = (B,C,D,A) 6. Setelah loop di atas selesai, akan terdapat hasil di mana plaintext bisa menunjukkan bagian input ronde pertama dalam enkripsi dan ciphertext bisa menunjukkan bagian input ronde terakhir dalam enkripsi. Oleh karena itu perlu ditambahkan langkah-langkah di awal dan di akhir loop untuk menyamarkan hubungan ini. Sehingga, terbentuklah algoritma enkripsi RC6 yang sebagai berikut: B = B + S[0] D = D + S[1] fori = 1 to r do p = (B × (2B + 1)) <<< 5 q = (D × (2D + 1)) <<< 5 A = ((A⊕p) <<< q) + S[2i] C = ((C⊕q) <<< p) + S[2i+1] (A,B,C,D) = (B,C,D,A) A = A + S[2r + 2] C = C + S[2r + 3] Perlu diketahui juga, dalam varian baru RC6 jumlah rotasi ke kiri yang mengikuti fungsi kuadrat bukan 5 bit tetapi adalah 2log(w) bit.
Gambar 2.2. Diagram Enkripsi RC6
2.3.5 Algoritma Dekripsi Sama seperti pada RC5, algoritma dekripsi RC6 juga merupakan penurunan dari algoritma enkripsi. Algoritmanya sebagai berikut: C = C – S[2r + 3] A = A – S[2r + 2] fori = r downto 1 do (A,B,C,D) = (D,A,B,C) p = (D × (2D + 1)) <<< 5 q = (B × (2B + 1)) <<< 5 C = ((C – S[2i + 1]) >>> q)p ⊕ A = ((A – S[2i]) >>> p)q ⊕ D = D – S[1] B = B – S[0]
8
Ariyus, Dony.2008. Pengantar Ilmu KRIPTOGRAFI.Yogyakarta : ANDI hal.261
8
2.4.
Multimedia Messaging Service (MMS) MMS merupakan perkembangan dari teknologi messaging yang telah ada
sebelumnya yaitu Short Message Service (SMS).Lain halnya dengan SMS yang hanya merupakan pesan teks statis, MMS berupa informasi dinamis, kaya format dan interaktif. Pesan MMS berupa slide show yang dapat mengandung teks, gambar, audio, video, link menuju content lain secara interaktif dengan demikian user dapat mengontrol aliran slide show tersebut. 2.5.
REKAYASA PERANGKAT LUNAK Rekayasa Perangkat Lunak adalah disiplin ilmu yang membahas semua aspek
produksi perangkat lunak, mulai dari tahap awal spesifikasi sistem sampai pada pemeliharaan sistem setelah digunakan. Sedangkan proses perangkat lunak adalah serangkaian kegiatan dan hasil – hasil relevannya yang menghasilkan perangkat 9
lunak. Kegiatan ini sebagian besar dilakukan oleh perekayasa perangkat lunak. 2.5.1. Proses Dasar Perangkat Lunak Ada empat kegiatan proses dasar yang umum bagi seluruh kegiatan proses dasar perangkat lunak. Kegiatan – kegiatan ini adalah a.
10
:
Spesifikasi perangkat lunak. Fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus didefinisikan.
b.
Pengembangan perangkat lunak. Perangkat lunak yang memenuhi spesifikasi tersebut harus diproduksi.
c.
Validasi perangkat lunak. Perangkat lunak harus divalidasi untuk menjamin bahwa perangkat lunak melakukan apa yang diinginkan oleh pelanggan.
d.
Evolusi perangkat lunak. Perangkat lunak harus berkembang untuk memenuhi kebutuhan pelanggan yang berubah – ubah. Secara umum, perekayasa perangkat lunak memakai pendekatan
yang sistematis dan terorganisir terhadap pekerjaan mereka karena caraini
9
Sommerville, Ian.2001.Software Engineering. Addison Wesley.
10
Sommerville, Ian.2001.Software Engineering. Addison Wesley.
seringkali paling efektif untuk menghasilkan perangkat lunak berkualitas tinggi. 2.5.2. Rekayasa Perangkat Lunak Berorientasi Obyek Berorientasi obyek atau object oriented merupakan paradigma baru dalam rekayasa perangkat lunak yang memandang sistem sebagai kumpulan obyek – obyek diskrit yang saling berinteraksi. Yang dimaksud berorientasi obyek adalah mengorganisasikan perangkat lunak sebagai kumpulan obyek – obyek diskrit yang saling bekerja sama antara informasi 11
atau struktur data dan perilaku (behaviour) yang mengaturnya. . 2.5.3. Unified Modelling Language Unified Modeling Language (UML) adalah standar dunia yang dibuat oleh Object Management Group (OMG), sebuah badan yang bertugas mengeluarkan standar-standar teknologi
object-oriented dan software
component. Secara resmi bahasa UML dimulai pada bulan oktober 1994, ketika Rumbaugh bergabung Booch untuk membuat sebuah proyek pendekatan metoda yang uniform/seragam dari masing-masing metoda mereka. UML sebagai sebuah bahasa yang memberikan vocabulary dan tatanan
penulisan
komunikasi.Sebuah
kata-kata bahasa
dalam model
„MS
Word‟
adalah
untuk
sebuah
kegunaan
bahasa
yang
mempunyai vocabulary dan konsep tatanan / aturan penulisan serta secara fisik mempresentasikan dari sebuah sistem. Seperti halnya UML adalah sebuah bahasa standard untuk pengembangan sebuah software yang dapat menyampaikan bagaimana membuat dan membentuk modelmodel, tetapi tidak menyampaikan apa dan kapan model yang seharusnya dibuat yang merupakan salah satu proses implementasi pengembangan software. 2.6. JAVA Java merupakan bahasa pemprograman yang dikembangkan dengan menggunakan bahasa C, oleh James Gosling dan Patrick Naughton dalam suatu projek dari Sun Microsystem pada tahun 1991.Java merupakan bahasa pemprograman multiplatform, sehingga banyak segmen yang memakainya. Bahasa Java meliputi pemprograman desktop, database, mobile, dan lain – lain. 11
Sholiq.2006.Pemodelan Sistem Informasi Berorientasi Objek dengan UML.GrahaIlmu.Yogyakarta.
Pertama kali dirilis (dikeluarkan) disebut Java Development Kit (JDK), hingga versi Java 1.1.Mulai Java 1.2 Sun Microsystem menyebutnya
Java Software
Development Kit (JSDK) atau Java2. Mulai Java2 ini juga lingkungan eksekusi dipisahkan dengan namaJava Runtime Environment (JRE). JRE termasuk juga dalam Java Virtual Machine (JVM ). JVM merupakan inti dari teknologi Java, sehingga bahasa Java dapat dibaca pada mesin koputer tertentu.
12
Java dibagi menjadi tiga edisi (platform), yaitu Java2 Standard Edition (J2SE), Java2 Enterprise Edition (J2EE), Java2 Micro Edition (J2ME).J2SE merupakan standar (basis) dari Java2 yang lebih difokuskan pada pemprograman dekstop dan Applet.J2EE merupakan perluasan dari J2SE yang digunakan untuk aplikasi berskala besar (enterprise).Contohnya adalah pemprogaman memakai database dan diatur di server.Sedangkan J2ME merupakan edisi khusus dari Java dan subset dari edisi J2SE. 3.
Analisis Proses Penelitian
3.1. Rancangan Sistem Perangkat lunak CryptRC6 merupakan suatu aplikasi yang digunakan.Bagian dari kriptografi yang digunakan adalah enkripsi.Data berupa image yang diamankan tersebut berbentuk JPEG.Enkripsi image yang diterapkan memanfaatkan algoritma berbasis RC6 yaitu Rivest Code 6.RC6 ini berbentuk stream cipher yang membutuhkan kunci simetrik. Citra terenkripsi dikirimkan ke handphone pengguna sebagai bagian dari pesan MMS. Aplikasi pada handphone penerima akan menampilkan citra dalam bentuk terenkripsi, yang hanya dapat dilihat citra aslinya jika penerima memasukkan kunci enkripsi yang sesuai. Perangkat lunak CryptRC6 diimplemetasikan pada media telepon selular sehingga diprogram menggunakan J2ME.Aplikasi memanfaatkan layanan MMS yang merupakan media kirim terima data baik berupa voice, image, maupun text.Perangkat lunak CryptRC6 memanfaatkan layanan MMS untuk kirim terima data berupa image. Semua operasi pada perangkat lunak CryptRC6 terpusat pada user dan tidak diperlukan pihak server yang berperan sebagai Trusted-Third Party (TTP). Ilustrasi dari perangkat lunak CryptRC6 yang akan dibangun digambarkan pada gambar 3.2.
12
Supardi, Yuniar.2008. Sistem Informasi Penjualan dengan JAVA. Jakarta:Elex Media Komputindo.
Deskripsi Umum
Enkripsi Image
Dekripsi Cipher Image
MMS Pengguna A
Perangkat Lunak CryptRC6
Perangkat Lunak CryptRC6
Pengguna B
Kunci
Gambar 3.1 Deskripsi Umum Perangkat L unak CryptRC6 3.2. State Diagram Proses Enkripsi Proses enkripsi merupakan proses untuk mengubah citra asli ke dalam citra cipher yang tidak bisa dibaca dengan mudah oleh orang yang tidak berwenang. Proses enkripsi citra pada aplikasi CryptRC6 melibatkan beberapa proses diantaranya meliputi proses login aplikasi, proses memilih citra yang akan dikirimkan, proses memasukkan kunci untuk mengenkripsi dan selanjutnya mengirimkan citra yang sudah dalam bentuk citra cipher tersebut. Berikut adalah diagram state untuk proses enkripsi :
Gambar 3.2 Diagram State Proses Enkripsi
3.3. State Diagram Proses Dekripsi Proses dekripsi merupakan proses untuk mengubah citra cipher ke bentuk citra asli, sehingga dapat dilihat oleh orang yang berwenang, dengan terlebih dahulu memasukkan kunci dekripsi yang sesuai. Pada RC6 dan algoritma kriptografi simetrik lainnya, kunci untuk dekripsi sama dengan kunci untuk enkripsi. Proses dekripsi citra pada aplikasi CryptRC6 melibatkan beberapa proses diantaranya meliputi proses login aplikasi, proses memilih menunggu pengiriman citra, proses memasukkan kunci untuk mendekripsi dan selanjutnya menyimpan citra yang sudah dalam bentuk citra asli ke memori handphone. Berikut adalah diagram state untuk proses dekripsi :
Gambar 3.3 Diagram State Dekripsi Citra
4. Hasil Penelitian dan Pembahasan 4.1. Pengujian Aplikasi Pengujian aplikasi dilakukan dengan mensimulasikan proses pengiriman dan penerimaan pesan MMS yang terenkripsi dengan menggunakan emulator sistem. Pengujian ini dibutuhkan untuk mengetahui kelemahan dan kelebihan sistem. 4.2 Kecepatan Sistem Pada uji coba sistem, didapatkan hasil bahwa program bekerja membutuhkan lama baik pada saat dekripsi maupun enkripsi. Lamanya proses ini karena dibutuhkan beberapa proses yang membutuhkan waktu lama, yaitu :
1.
Proses enkripsi data pengacak dengan algoritma RC6, yang memerlukan perulangan yang banyak.
2. Proses pembacaan semua data piksel citra yang merupakan array dua dimensi, sehingga jumlah perulangan yang dibutuhkan adalah sebanyak WIDTH * HEIGHT citra. 3. Proses XOR antara data pengacak dengan data piksel citra yang kembali membutuhkan perulangan sebanyak WIDTH * HEIGHT. Hal ini menyebabkan proses enkripsi dan dekripsi citra tidak cocok dipergunakan untuk citra yang berukuran besar. Citra akan cocok untuk dienkripsi jika citra tersebut berukuran relatif kecil.
4.3 Cara Kerja Sistem 1. Sistem bekerja sebagai aplikasi mobile yang harus dijalankan di sisi pengirim dan penerima untuk dapat bekerja dengan baik. 2. Sistem akan mengirimkan berbagai citra yang dapat dibaca oleh J2ME dan mengenkripsikan terlebih dahulu berdasarkan kunci enkripsi yang dimasukkan oleh pengirim. 3. Citra yang dikirimkan tidak akan dapat dilihat bentuk aslinya, kecuali penerima memasukkan kunci enkripsi yang sesuai. 4. Citra yang diproses dibaca dari memori handphone, sehingga aplikasi harus diberi ijin untuk melakukan operasi I/O pada handphone.
4.4 Kinerja Sistem 1. Kecepatan Sistem Sistem tidak bisa bekerja dengan baik untuk mengolah data yang berukuran besar. Proses ini mungkin tidak akan membuat aplikasi nyaman untuk digunakan, kecuali pada handphone yang memiliki spesifikasi yang besar. Lambatnya proses enkripsi ini tidak bisa dihindari, karena besarnya data yang diolah untuk melakukan proses pengacakan data, enkripsi dan dekripsi citra. 2. Fungsional Sistem
Secara fungsional, sistem sudah dapat bekerja dengan baik sesuai dengan model kriptosistem berbasis mobile. Mampu menjalankan kontrol sistem antara lain:
a.
Membangkitan data acak dengan algoritma RC6. Data yang diacak, masih merupakan data sederhana yang berupa bilangan 1,2,3..WIDTH*HEIGHT. Hal ini diperlukan karena untuk dapat dikenakan operasi XOR, data pengacak harus memiliki ukuran yang sama dengan ukuran citra. Adapun dari data ini aplikasi sudah
dapat
mengenkripsinya untuk kemudian dipergunakan sebagai data pengacak citra. b. Mengenkripsi Citra Citra yang dikirimkan tidak memiliki bentuk yang bisa dikenali lagi, sehingga dari segi keamanan aplikasi ini sudah dapat mengamankan data yang akan dikirimkan. c. Mendekripsi Citra Jika
dimasukkan
kunci
yang
sesuai,
aplikasi
telah
berhasil
mengembalikan bentuk asli citra, sehingga aplikasi telah dapat bekerja sebagai aplikasi kriptosistem berbasis mobile. d. Fungsi Pengolahan File Aplikasi telah dapat membaca dan menulis file citra dengan baik dari dan ke memori handphone. Hal ini akan memberikan manfaat tambahan bagi pengguna aplikasi ini.
4.5 Kelebihan dan Kekurangan Sistem 1.
Kelebihan Sistem Jika dibandingkan dengan metode pengiriman pesan MMS biasa dimana citra yang dikirimkan tidak disandikan sehingga mudah dilihat gambarnya, maka sistem ini sudah mampu mengatasi masalah tersebut.Sistem telah mampu mengenkripsi citra sehinga hanya penerima gambar citra yang berhak saja yang dapat melihat citra yang dikirimkan untuknya. Adapun jika penerima pesan MMS bukanlah penerima yang berhak, maka ia tidak akan dapat melihat citra asli yang dikirimkan, karena tidak mengetahui kunci dekripsinya.
2. Kekurangan Sistem Kekurangan utama sistem adalah lamanya waktu yang dibutuhkan untuk melakukan proses enkripsi dan dekripsi citra. Keterlambatan ini merupakan sesuatu hal yang tidak bisa dielakkan, karena semakin besar ukuran citra, maka data pengacak, data asli dan data enkripsi juga semakin besar, sehingga dibutuhkan waktu yang lebih banyak untuk mengolahnya.
5. Kesimpulan Pada pengembangan aplikasi ini ada beberapa kesimpulan yang dapat diambil, diantaranya : 1. Metode RC6 telah dapat diaplikasikan ke dalam aplikasi berbasis Mobile dengan J2ME untuk kebutuhan pengamanan citra yang akan dikirimkan melalui mekanisme MMS. 2. Untuk suatu Kriptosistem dapat berjalan dengan baik, maka pemilihan metode enkripsi yang dipergunakan harus disesuaikan dengan seberapa tinggi tingkat keamanan yang diinginkan. Semakin aman suatu kriptosistem, maka proses pengamanannya akan membutuhkan waktu yang lebih banyak dan kompleksitas yang lebih tinggi.
Daftar Pustaka Ariyus, Dony.2008. Pengantar Ilmu KRIPTOGRAFI. Yogyakarta : ANDI hal. 258 Kurniawan, Yusuf, Ir. 2004. Kriptografi Keamanan Internet dan Jaringan Komunikasi. Bandung : Informatika Bandung. Sholiq.2006.Pemodelan Sistem Informasi Berorientasi Objek dengan UML.GrahaIlmu.Yogyakarta. Sommerville, Ian.2001.Software Engineering. Addison Wesley. Supardi, Yuniar.2008. Sistem Informasi Penjualan dengan JAVA. Jakarta:Elex Media Komputindo. www.informatika.org/rinaldibuku pengolahan citra/buku e-book.html