Seminar Nasional Informatika 2014
PERANCANGAN APLIKASI KEAMANAN DATA EMAIL MENGGUNAKAN ALGORITMA ENKRIPSI RC6 BERBASIS ANDROID Muhammad Zulham1, Helmi Kurniawan2, Iwan Fitrianto Rahmad3 Jurusan Teknik Informatika, STMIK Potensi Utama Jl. K.L. Yos Sudarso Km. 6.5 No.3-A, Tanjung Mulia, Medan, Indonesia Email :
[email protected]
Abstrak Masalah pengiriman data email ataupun pesan telah menjadi masalah penting pada era teknologi informasi seperti sekarang ini. Terkadang data-data ini harus bersifat rahasia agar tidak diketahui secara umum. Apabila data tersebut diketahui, maka data tersebut dapat disalahgunakan untuk kejahatan oleh orang lain. Kriptografi merupakan salah satu alat keamanan yang digunakan untuk menyembunyikan suatu pesan. Kriptografi sudah digunakan di segala bidang keamanan. Untuk itu perlunya sebuah keamanan dengan cara enkripsi dan dekripsi data email menggunakan algoritma kriptografi Rivest Code 6 (RC6). Dalam algoritma kriptografi Rivest Code 6 (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. Operasi perkalian ini sangat efektif dalam menghasilkan efek “diffusion” atau penyebaran yang tentu saja mengakibatkan RC6 lebih aman. Aplikasi yang dihasilkan berbasis android dengan memanfaatkan teknologi terbaru. Kata Kunci : Keamanan Data, Kriptografi, Rivest Code 6 1.
Pendahuluan
Kriptografi (Cryptography) berasal dari bahasa Yunani yaitu “Cryptos” artinya “secret” (rahasia) dan “graphein” artinya “writing” (tulisan). Jadi, kriptografi berarti “secret writing” (tulisan rahasia). Definisi yang dikemukakan dalam [SCH96] : Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan. (Cryptography is the art and sience of keeping message secure). Terdapat pula definisi yang di kemukakan di dalam [MEN96] : Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi. (Rinaldi Munir, 2006:3) dalam bukunya menjelaskan, data atau informasi yang dapat dibaca dan dimengerti maknanya disebut plaintext. Plaintext yang tersandi disebut ciphertext. Ciphertext harus dapat ditransformasikan kembali menjadi plaintext semula agar pesan yang diterima bisa dibaca. Proses menyandikan plaintext menjadi ciphertext disebut enkripsi disebut enkripsi (encryption) atau enciphering (standard nama menurut ISO 74982). Sedangkan proses mengembalikan ciphertext
96
menjadi plaintext semula dinamakan dekripsi (decryption) atau deciphering (standard nama menurut ISO 7498-2). Algoritma kriptografi (cipher) dapat dibedakan menjadi dua macam, yaitu: simetrik dan asimetrik. Algoritma simetrik (model enkripsi konvensional) adalah algoritma yang menggunakan satu kunci untuk proses enkripsi dan dekripsi data, contohnya adalah RC2, RC4, RC5, RC6, DES, Blowfish, GOST, AES dan lainlain. Sedangkan algoritma asimetrik (model enkripsi kunci publik) menggunakan kunci yang berbeda dalam proses enkripsi dan dekripsi pesan, contoh dari algoritma ini adalah RSA, El Gamal. Berikut gambar kunci simertis dan gambar kunci asimetris :
Gambar 1. Kunci simetris
Seminar Nasional Informatika 2014
Gambar 2. Kunci asimetris Operator biner yang sering digunakan dalam cipher yang beroperasi dalam mode bit adalah XOR atau exlusive-or. Notasi matematis untuk operator XOR adalah ⊕ (dalam bahasa C, operator XOR dilambangkan dengan ^). Operator XOR dioperasikan pada dua bit dengan aturan sebagai berikut : (Rinaldi Munir, 2006:99) 0⊕0=0 0⊕1=1 1⊕0=1 1⊕1=0 Misalkan a, b, c adalah peubah Boolean. Hukum-hukum yang terkait dengan operator XOR : 1) a ⊕ a = 0 2) a ⊕ b = b ⊕ a 3) a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c Algoritma RC6 merupakan salah satu kandidat Advanced Encryption Standard (AES) yang diajukan oleh RSA Laboratoriest kepada NIST. Dirancang oleh Ronald L Rivest, M.J.B. Robshaw, R. Sidney dan Y.L. Yin, algoritma ini merupakan pengembangan dari algoritma sebelumnya yaitu RC5 dan telah memenuhi semua kriteria yang diajukan oleh NIST. 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. (Yudi Prayudi dan Idham Halik, 2005 : 153) 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. (Roland L , 2006) RC6 seperti juga RC5 mengeksploitasi penggunaan operasi-operasi primitif yang diimplementasikan secara efisien dalam prosesorprosesor 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. (Roland L, 2006) Algoritma RC6 adalah versi yang dilengkapi dengan beberapa parameter, sehingga dituliskan sebagai RC6-w/r/b, dimana parameter w merupakan ukuran kata dalam satuan bit, r adalah bilangan bulat bukan negatif yang menunjukan banyaknya iterasi selama proses enkripsi, dan b menunjukan ukuran kunci enkripsi dalam byte. (Yudi Prayudi dan Idham Halik, 2005 : 153) Adapun tujuan dari penelitian ini adalah: 1. Menganalisis bagaimana cara kerja algoritma enkripsi RC6 berbasis android dalam memberi layanan kerahasiaan data. 2. Memberi pemahaman bagaimana algoritma enkripsi RC6 melakukan proses enkripsi dan dekripsi. 3. Membangun suatu program yang dapat menjaga keamanan data menggunakan algoritma enkripsi RC6 berbasis android. 2.
Metode Penelitian
Tahapan dalam metode penelitian ini dapat dimodelkan pada diagram alir yang merupakan proses dari pengiriman pesan melalui email yang terenkripsi berbasis android.
97
Seminar Nasional Informatika 2014
Mulai
Mulai
Pilih File
Pilih File
Plaintext
Enkripsi Pesan
end Pw = b7e15163 Qw = 9e3779b9
Chipertext
No
Dekripsi Pesan
Yes
Yes
Masukkan Kunci
Masukkan Kunci
Enkripsi
Dekripsi
Chipertext
Plaintext
Simpan File
Simpan File
Selesai
Selesai
No
3. Algoritma Enkripsi Karena RC6 memecah blok 128 bit menjadi 4 buah blok 32 bit, maka algoritma ini bekerja dengan 4 buah register 32-bit A, B, C, D. Byte yang pertama dari plainteks atau cipherteks ditempatkan pada byte A, sedangkan byte yang terakhirnya ditempatkan pada byte D. Dalam prosesnya akan didapatkan (A, B, C,D) = (B, C, D, A) yang diartikan bahwa nilai yang terletak pada sisi kanan berasal dari register di sisi kiri. Diagram blok berikut akan lebih menjelaskan proses enkripsi yang terjadi pada algoritma RC6. B = B + S[ 0 ] D = D + S[ 1 ] for i = 1 to 20 do { t = ( B x ( 2B + 1 ) ) <<< 5 u = ( D x ( 2D + 1 ) ) <<< 5 A = ( ( A ⊕ t ) <<< u ) + S[ 2i ] C = ( ( C ⊕ u ) <<< t ) + S[ 2i + 1] (A, B, C, D) = (B, C, D, A) } A = A + S[ 42 ] C = C + S[ 43 ]
Gambar 3. Flow Chart Form Enkripsi / Dekripsi Teks Email 3.
Perancangan
Perancangan dapat diartikan sebagai suatu tahapan setelah dianalisa dari pengembangan sistem untuk mengembangkan bagaimana suatu sistem itu akan dibentuk. Alur proses terjadinya algoritma Rivert Code 6 (RC6) terhadap proses penyandian pesan dilakukan pada saat email akan dikirim. Langkah – langkah proses pembuatan secara garis besar adalah sebagai berikut: 1. Operasi dasar a. A + B Operasi penjumlahan bilangan integer. b. A – B Operasi pengurangan bilangan integer. c. A ⊕ B Operasi exclusive-OR (XOR). d. A x B Operasi perkalian bilangan integer. e. A<<
>>B A dirotasikan ke kanan sebanyak variabel kedua (B) 2. Algoritma Kunci S-Box S[0] = Pw for i = 1 to 2r+3 S[i] = S[i-1] + Qw
98
Gambar 4. Algoritma Enkripsi Algoritma RC6 menggunakan sub kunci yang dibangkitkan dari kunci dan dinamakan dengan
Seminar Nasional Informatika 2014
S[0] hingga S[43]. Masing-masing sub kunci panjangnya 32 bit. Proses enkripsi pada algoritma RC6 dimulai dan diakhiri dengan proses whitening yang bertujuan untuk menyamarkan iterasi yang pertama dan yang terakhir dari proses enkripsi dan dekripsi. Pada proses whitening awal, nilai B akan dijumlahkan dengan S[0] dan nilai D dijumlahkan dengan S[i]. Pada masingmasing iterasi pada RC6 menggunakan dua (2) buah sub kunci. Sub kunci pada iterasi yang pertama menggunakan sub-sub kunci lanjutannya. Setelah iterasi ke-20 selesai, dilakukan proses whitening akhir dimana nilai A dijumlahkan dengan S[42], dan nilai C dijumlahkan dengan S[43]. Setiap iterasi pada algoritma RC6 mengikuti aturan sebagai berikut, nilai B dumasukkan ke dalam fungsi f, yang didefinisikan sebagai f(x) = x(2x + 1), kemudian diputar ke kiri sejauh 5 bit. Hasil yang didapat pada proses ini dimisalkan sebagai u. Nilai u kemudian di XOR dengan C dan hasilnya menjadi nilai C. Nilai t juga digunakan sebagai acuan bagi C untuk memutar nilainya ke kiri. Begitu pula dengan nilai U, juga digunakan sebagai acuan bagi nilai A untuk melakukan proses pemutara ke kiri. Kemudian sub kunci S[2i] pada iterasi dijumlahkan dengan A, dan sub kunci S[2i+1] dijumlahkan dengan C. Keempat bagian dari blok kemudian akan dipertukarkan dengan mengikuti aturan bahwa nilai A ditempatkan pada D, nilai B ditempatkan pada A, nilai C ditempatkan pada B, dan nilai (asli) D ditempatkan pada C. Demikian iterasi tersebut terus berlangsung hingga dua puluh (20) kali. 4. Algoritma Dekripsi Proses dekripsi cipherteks pada algoritma RC6 merupakan pembalikan dari proses enkripsi. Pada proses whitening, bila proses enkripsi menggunakan operasi penjumlahan, maka pada proses dekripsi menggunakan operasi pengurangan. Sub kunci yang digunakan pada proses whitening setelah iterasi terakhir diterapkan sebelum iterasi pertama, begitu juga sebaliknya sub kunci yang diterapkan pada proses whitening sebelum iterasi pertama digunakan pada whitening setelah iterasi terakhir. Akibatnya, untuk melakukan dekripsi, hal yang harus dilakukan semata-mata hanyalah menerapkan algoritma yang sama dengan enkripsi, dengan tiap iterasi menggunakan sub kunci yang sama dengan yang digunakan pada saat enkripsi, hanya saja urutan sub kunci yang digunakan terbalik. (Yudi Prayudi dan Idham Halik, 2005:154) C = C - S[ 43 ] A = A - S[ 42 ] for i = 20 downto 1 do {
(A, B, C, D) = (D, A, B, C) u = ( D x ( 2D + 1 ) ) <<< 5 t = ( B x ( 2B + 1 ) ) <<< 5 C = ( ( C - S[ 2i + 1 ] ) >>> t ) ⊕ u A = ( ( A - S[ 2i ] ) >>> u) ⊕ t } D = D - S[ 1 ] B = B - S[ 0 ]
Gambar 5. Algoritma Dekripsi
4.
Hasil dan Pembahasan
Pada tahapan ini menjelaskan rancangan, tampilan program aplikasi kesimpulan dari uji coba baik dari analisa serta kelebihan dan kekurangan dari perancangan.
hasil dan hasil hasil
Tampilan Aplikasi Berikut ini akan dijelaskan tentang tampilan hasil aplikasi keamanan data email menggunakan algoritma enkripsi RC6 berbasis Android. Tampilan Halaman Awal Halaman awal adalah halaman yang muncul pada saat user pertamakali menjalankan aplikasi. Kemudian user dapat menekan button Start untuk melanjutkan aplikasi, dapat dilihat pada gambar berikut:
99
Seminar Nasional Informatika 2014
Gambar 8. Tampilan Halaman New Message Gambar 6. Tampilan Halaman Awal Tampilan Halaman Utama Halaman utama merupakan tampilan yang memiliki beberapa pilihan list, yaitu diantaranya new message, inbox, about dan exit, dapat dilihat pada gambar berikut:
Tampilan Halaman Inbox Halaman ini merupakan halaman dimana user melakukan proses pembacaan pesan yang sudah diterima sehingga dapat terbaca. Untuk melihat tampilan halaman inbox dapat dilihat pada gambar berikut:
Gambar 9. Tampilan Halaman Inbox Gambar 7. Tampilan Halaman Utama Tampilan Halaman New Message Halaman New Message merupakan halaman dimana user melakukan proses pengiriman pesan yang sudah terenkripsi terlebih dahulu. Untuk melihat tampilan halaman new message dapat dilihat pada gambar berikut:
100
5.
Kesimpulan
Penulis meninjau bagaimana proses pengiriman pesan menggunakan email sehingga dapat dienkripsi dan kerahasiaan pesan sangat terjaga. Berdasarkan uraian dan penjelasan sebelumnya, penulis membuat kesimpulan untuk aplikasi keamanan data email menggunakan algoritma enkripsi RC6 yaitu: 1. Dengan adanya aplikasi ini pesan dapat disandikan sehingga keamanan isi pesan sangat terjaga dalam kerahasiaan data. 2. Aplikasi ini mampu mengirim dan menerima pesan melalu email yang berjalan di sistem
Seminar Nasional Informatika 2014
operasi android dengan menggunakan aplikasi DroidRC6. 3. Aplikasi ini menggunakan algoritma enkripsi RC6, sehingga tingkat keamanan lebih terjamin, karena algoritma RC6 menggunakan algoritma blok cipher dengan 4 register sehingga lebih sulit untuk dipecahkan keamanannya. Daftar Pustaka Ariyus, Dony, 2009, Pengantar Ilmu Kriptografi Teori, Analisis, dan Implementasi, Penerbit Andi, Yogyakarta. Huda, Arif, Akbarul, 2012, 24 Jam Pintar Pemrograman Android, Penerbit Andi, Yogyakarta. Munir, Rinaldi, 2006, Kriptografi, Penerbit Informatika, Bandung.
Roland, 2006, Jurnal Perbandingan Algoritma Block Cipher RC5 dan RC6, Institut Teknologi Bandung. Sadikin, Rifki, 2012, Kriptografi Untuk Keamanan Jaringan, Penerbit Andi, Jakarta. Safaat, Nazruddin, 2012, Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android, Penerbit Informatika, Bandung. Safrina, Rika, 2006, Jurnal Studi dan Perbandingan Pesan dengan Algoritma RC2, RC4, RC5 dan RC6, Institut Teknologi Bandung. Suprianto, Dodit, 2012, Pemrograman Aplikasi Android, Penerbit Mediakom, Yogyakarta. Yudi, Idham, 2005, Jurnal Studi dan Analisis Algoritma Rivest Code 6 (RC6) dalam Enkripsi/Dekripsi Data, Universitas Islam Indonesia.
101