Implementasi Linear Implementasi Linear Congruent Congruent Method (LCM) dalam Pembangkitan Key Metode Vigenere Cipher pada Cipher pada sistem Keamanan Keamanan CS-Messenger Adison Dosen Pembimbing: Enjun Junaeti, M.T. Prodi Ilmu Komputer, Departemen Pendidikan Ilmu Komputer, Komputer, FPMIPA UPI Bandung, Indonesia
[email protected]
Abstrak Perkembangan teknologi dan komunikasi semakin marak pada zaman sekarang. Perkembangan aplikasi chatting seperti seperti LINE, BBM, WhatsApp, dan lainnya juga makin menjamur saat ini. Namun untuk keamanan pesan masih dikhawatirkan, ketika pengguna ponsel lalai, sehingga pesan bisa dibaca oleh orang lain (snoopin g problem ). ). CS-M esse essenger nger merupakan sebuah sistem yang akan dirancang untuk keamanan pesan dengan implementasi salah satu metode keamanan kriptografi yaitu metode vigenere cipher dengan membangkitkan kuncinya dengan metode Linear Congruent M ethod (LCM).
digunakan metode Linear Congruent Method (LCM). Sistem ini akan dibangun dengan pemograman berbasis android. 2. Rumusan Masalah Adapun rumusan pada penelitian ini adalah: a. Bagaiamana menjaga kerahasian pesan dalam komunikasi (chattng (chattng )? )? b. Bagaimana membuat perangkat lunak yang dapat melakukan enkripsi dan dekripsi pesan dengan metode vigenere cipher ?
Kata Kunci dekri psi, psi, cs- — L CM, k ey, kriptografi , enkripsi, dekri . messenger 3. Tujuan Penelitian
1. Pendahuluan Perkembangan teknologi dan komunikasi semakin menjamur , dimana , dimana industri telekomunikasi dari tahun ke tahun mengalami pertumbuhan yang cukup fantastis, dan jumlah pelanggan pengguna telepon genggam atau kita kenal sebagai ponsel atau handphone terutama handphone terutama ponsel yang berbasis android meningkat pesat dan salah satu layanan favorit yang sering digunakan yaitu aplikasi messenger seperti LINE, WhatsApp, Wechat, Facebook, BBM, Yahoo Messenger, dan lain sebagainya. Pesatnya perkembangan messenger seperti ini, memudahkan pengguna untuk berkomunikasi antar sesama. Namun, dalam berkomunikasi menggunakan layanan messenger yang ada sekarang ini akan menimbulkan masalah jika pesan yang d ikirim dan diterima seseorang kerahasiannya tidak terlindungi misalnya pesan-pesan penting yang bersifat privasi atau rahasia. Kerahasian bisa saja diketahui oleh orang lain yang ingin mengetahui isi pesan tersebut ( dropper ). ). Hal ini disebabkan oleh kelalaian pengguna dalam menggunakan ponselnya ( snooping problem). problem). Oleh karena itu, diperlukan sebuah keamanan untuk menyembunyikan isi pesan tersebut dengan merubahnya dari pesan asli ( plaintext ( plaintext ) ke dalam bentuk pesan yang yang rahasia (chipertext ) dengan memberikan sebuah key rahasia pada pesan yang akan dikirimkan, proses i ni dinamakan proses enkripsi, enkripsi, sehingga isi hanya akan diketahui oleh pengirim dan penerima pesan tersebut, tersebut, walaupun pesan pesan itu bisa dilihat oleh orang lain, namun ia tidak akan bisa membacanya tanpa mengetahui key dari pesan tersebut. Dalam permasalahan seperti ini, metode vigenere cipher bisa menjadi salah satu solusi untuk merubah pesan asli kedalam bentuk pesan rahasia (enkripsi), enkripsi), dan merubahnya juga dari pesan rahasia ( chipertext) kebentuk pesan aslinya ( plaintext ( plaintext ). ). Sementara dalam menentukan key dalam proses dalam proses enkripsi dan dekripsi pesan akan
Adapun tujuan dari penelitian ini diantaranya: Untuk mengetahui cara menjaga kerahasian isi pesan saat komunikasi (chatting (chatting ) . b. Untuk merancang perangkat lunak serta untuk mengetahui cara membangkitkan key pada metode vigenere cipher dengan metode LCM yang digunakan pada proses enkripsi dan dekripsi pesan. a.
4. Landasan teori Adapun landasan teori yang mendukung penelitian ini: a. Aplikasi Chat -Secur -Secur e M esse essenger nger (CS-Messenger) Aplikasi merupakan sebuah sistem yang dirancang dan dikembangkan menggunakan bahasa pemograman tertentu dengan perangkat yang mendukung dan dengan tahapan-tahapan yang telah ditetapakan. Aplikasi CS-Messenger merupakan sebuah sistem yang akan dirancang dan dibangun dengan pemograman android, dimana sistem ini akan dijalankan pada sistem operasi atau pereangkat mobile berbasis android. Aplikasi ini akan dirancang dengan menjadikan aplikasi WhatsApp sebagai referensinya. Perbedaan yang akan ditampilkan yaitu pada sistem ini pesan yang ditampilkan hanya berupa pesan rahasia. Jika ingin membacanya sender/receiver harus memasukkan key yang sam (simetri). Selain itu, perbedaan dengan whatsApp yaitu tidak adanya fungsi panggilan ( calls function). function). b. Metode L in ear Congruent M ethod (LCM) Linear Congruent Method (LCM) merupakan metode pembangkitan bilangan acak yang banyak digunakan dalam program komputer. Linear [1] Congruent Method (LCM) memanfaatkan model linear untuk membangkitkan bilangan acakn yang didefenisikan dengan :
Xn = ((a(Xn-1)+c)) mod m Dimana : Xn = Bilangan acak ke-n dari deretannya Xn1 = Bilangan acak sebelumnya a = Faktor pengalih c = Increment (penambah) m = Modulus (batas maksimum bilangan acak a, c, m adalah semua konstanta Linear Congruent Method (LCM)
Ciri khas dari Linear Congruent Method (LCM) adalah terjadi pengulangan pada periode waktu tertentu atau setelah sekian kali pembangkitan, hal ini adalah salah satu sifat dari metode ini dan pseudorandom generator pada umumnya. Penentuan konstanta Linear Congruent Method (LCM) (a, c dan m) sangat menentukan baik tidaknya bilangan acak yang diperoleh dalam arti memperoleh bilangan acak yang yang seakan-akan tidak terjadi perulangan. Dapat dilihat dalam konteks contoh seperti dibawah ini : Membangkitkan bilangan acak sebanyak 8 kali dengan ketentuan a=4, c=7, m= 15 dan X1= 3. Penyelesaian : X1 = ( 4 (3) + 7 ) mod 15 = 4 X2 = ( 4 (4) + 7 ) mod 15 = 8 X3 = ( 4 (8) + 7 ) mod 15 = 9 X4 = ( 4 (9) + 7 ) mod 15 = 13 X5 = ( 4 (13) + 7 ) mod 15 = 14 X6 = ( 4 (14) + 7 ) mod 15 = 3 X7 = ( 4 (3) + 7 ) mod 15 = 4 X8 = ( 4 (4) + 7 ) mod 15 = 8 Bilangan acak yang dibangkitkan adalah : 4,8,9,13,14,3. Hanya diambil periodic pertama. c. Kriptografi Kriptografi berasal berasal dari bahasa Yunani yaitu crypto berarti rahasia ( secret ) dan graphia berarti tulisan (writing ). Menurut terminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika dikirim. Kriptografi adalah ilmu yang mempelajari tentang cara menjaga keamanan suatu pesan atau informasi. Pesan atau informasi dapat dikategorikan ke dalam dua jenis, yaitu pesan yang dapat dibaca dengan mudah (plaintext ) dan pesan yang tidak mudah dibaca (Nugroho, 2010). Prinsip-prinsip yang mendasari kriptografi yakni: a. Confidelity (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap rahasia dan tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak penerima / pihak-pihak memiliki ijin). Umumnya hal ini dilakukan dengan cara membuat suatu metode matematis yang mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami. b. Data integrity (keutuhan data) yaitu layanan yang mampu mengenali/mendeteksi adanya manipulasi
(penghapusan, pengubahan atau penambahan) data yang tidak sah (oleh pihak lain). c. Authentication (keotentikan) yaitu layanan yang berhubungan dengan identifikasi. Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi keaslian data/informasi. d. Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan tersebut berasal dirinya). Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi : 1. Plaintext (M) adalah pesan yang hendak dikirimkan (berisi data asli). 2. Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi. 3. Enkripsi (E) adalah proses pengubahan plaintext menjadi ciphertext. 4. Deskripsi (D) adalah kebalikan dari enkripsi yakni mengubah ciphertext menjadi plaintext, sehingga berupa data awal/asli. 5. Kunci(key) adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses enkripsi dan deskripsi. Metode kriptografi terdiri dari dua bagian, yaitu fungsi enkripsi dan deskripsi. Enkripsi adalah proses untuk mengubah plaintext menjadi ciphertext, sedangkan deskripsi adalah kebalikannya yaitu mengubah chertext menjadi plaintext).
Gambar 1 Proses enkripsi dan dekripsi Sumber : [1]
Terdapat dua jenis metode kriptografi berdasar jenis kuncinya (Nugroho, 2010), yaitu : a. Metode Simetri, adalah metode yang menggunakan kunci enkripsi yang sama dengan kunci deskripsinya. Metode standar yang menggunakan prinsip kunci simetri antara lain Vigenere Cipher , Camellia algorithm, OTP, DES, RC2, RC4, RC5, RC6, IDEA, Twofish, Blowfish, dan lain lain. b. Metode Asimetri, adalah metode yang kunci untuk enkripsi dan deskripsinya jauh berbeda. Metode standar yang termasuk metode asimetri adalah ECC,
LUC, RSA, EI, Gamal dan DH. Untuk proses enkripsi dan dekripsi dapat dilihat pada gambar d.
Metode Vi genere Cipher Vigenere cipher merupakan salah satu algoritma klasik dengan teknik substitusi. Nama vigenere diambil dari seorang yang bernama Blaise de Vigenere [1]. Vigenere cipher menggunakan suatu kunci yang memiliki panjang tertentu. Panjang kunci tersebut bisa lebih pendek ataupun sama dengan panjang plainteks. Jika panjang kunci kurang dari panjang plainteks, maka kunci yang tersebut akan diulang secara periodik hingga panjang kunci tersebut sama dengan panjang plainteksnya [1]. Algoritma enkripsi vigenere cipher : Ci = ( Pi + Ki ) mod 26 Algoritma dekripsi vigenere cipher : Pi = ( Ci – Ki ) mod 26 Dimana : Ci = nilai desimal karakter ciphertext ke-i Pi = nilai desimal karakter plaintext ke-i Ki = nilai desimal karakter kunci ke-i
Tabel 1. Table karakter dan nilai desimalnya Karakter Desimal 0 spasi 1 A/a 2 B/b 3 C/c 4 D/d 5 E/e 6 F/f 7 G/g 8 H/h 9 I/i 10 J/j 11 K/k 12 L/l 13 M/m 14 N/n 15 O/o 16 P/p 17 Q/q 18 R/r 19 S/s 20 T/t 21 U/u 22 V/v 23 W/w 24 X/x 25 Y/y 26 Z/z 27 1 28 2
n
n+26
Sebagai contoh, jika plaintext adalah THEBEAUTY dan kunci adalah ABC maka proses enkripsi yang terjadi adalah sebagai berikut : Plaintext : THEBEAUTY1 Kunci : ABCABCABCA Chipertext : TIGBFCUUAA Pada contoh di atas kata kunci ABC diulang sedemikian rupa hingga panjang kunci sama dengan panjang plainteksnya. Kemudian setelah panjang kunci sama dengan panjang plainteks, proses enkripsi dilakukan dengan melakukan menggeser setiap huruf pada plainteks sesuai dengan huruf kunci yang bersesuaian dengan huruf plainteks tersebut. Pada contoh di atas plainteks huruf pertama adalah T akan dilakukan pergeseran huruf dengan kunci Ki=0 (kunci huruf pertama adalah A yang memiliki Ki=0) menjadi T. Huruf kedua pada plainteks adalah H akan dilakukan pergeseran huruf dengan kunci Ki=1 (kunci huruf kedua adalah B yang memiliki Ki=1) menjadi I. Begitu seterusnya dilakukan pergeseran sesuai dengan kunci pada tiap huruf hingga semua plainteks telah terenkripsi menjadi ciphertext [1].
5. Metode Penelitian Pada penelitian ini, dalam membangun sistem CS Messenger dan mengimplementasikan keamanan dengan metode vigenere chipper dimana key-nya akan dibangkitkan dengan metode LCM, metode yang digunakan adalah metode waterfall.
Gambar 2 Metode waterfall
Dari gambar 1 dapat dijelaskan bahwa langkahlangkah dalam membangun sistem ini yaitu: 1. Requiretments. Langkah ini merupakan langkah awal dalam pengembangan sistem ini. Pada langkah ini akan dilakukan pengumpulan sumber literatur yang terkait dengan penelitian ini. 2. Analysis. Pada tahapan ini, akan dilakukan beberapa analisis diantaranya: a. Analisis pengguna. Tahapan ini dilakukan dengan cara menganalisa user yang akan menggunakan sistem ini. Pada analisis ini akan ditujukan untuk
3.
4.
5.
6.
semua pengguna tanpa melihat umur, kalangan,, jenis kelamin, dan lainnya. b. Analisis perangkat lunak Adapun tahapan ini merupakan tahapan untuk menganalisa apa saja software yang akan digunakan untuk membantu pengembangan sistem ini. c. Analisis perangkat keras. Dalam pembangun dan implementasi sistem ini, akan dianalisa juga spesifikasi perangakat keras untuk membangun sistem ini. Design. Tahapan desain merupakan tahapan setelah melakukan studi literature dan analisis. Pada tahapan desain, rangacangn sistem akan digambarkan dengan bahasa UML (Unified Modelling Language), diantaranya bagaiamana use-case, class, actifity, dan lainya. Selain desain dengan UML, juga akan digambarkan bagaiaman desain sistem ( interface) agar sistem ini user-friendly. Coding. Tahapan ini merupakan impelementasi tahapan desain kedalam bentuk bahasa pemograman android ( source code java). Pada tahapan ini, akan diimplementasikan juga proses enkripsi dan dekripsi pesan kedalam bentuk kodingan. Testing. Setelah tahapan koding, maka sistem ini siap digunakan, namun sebelum dipublikasi maka sistem akan diuji terlebih dahulu, jika terjadi kesalahan, maka akan diulangi ketahapan sebelumnya. Jika tidak ada revisi pada tahapan ini, maka akan dilakukan tahapan laporan. Terdapat dua metode pengujian perangkat lunak yang umum digunakan, yaitu metode black-box dan white-box. Pengujian dengan metode black-box merupakan pengujian yang menekankan pada fungsionalitas dari sebuah perangkat lunak tanpa harus mengetahui bagaimana struktur di dalam perangkat lunak tersebut. Sebuah perangkat lunak yang diuji menggunakan metode black-box dikatakan berhasil jika fungsifungsi yang ada telah memenuhi spesifikasi kebutuhan yang telah dibuat sebelumnya. Sedangkan metode white-box menguji struktur internal perangkat lunak dengan melakukan pengujian pada algoritma yang digunakan oleh perangkat lunak. Maintenance. Tahap akhir dari metode Waterfall adalah tahap perawatan. Tahap ini dapat diartikan sebagai tahap penggunaan perangkat lunak yang disertai dengan perawatan dan perbaikan. Perawatan dan perbaikan suatu perangkat lunak diperlukan, termasuk di dalamnya adalah pengembangan, karena dalam prakteknya ketika perangkat lunak tersebut digunakan terkadang masih terdapat kekurangan ataupun penambahan fiturfitur baru yang dirasa perlu.
6. Pembahasan Perangakat lunak atau software yang digunakan penulis adalah a. Andorid SDK b. Android Development Tool (ADT)
c. Eclipse IDE Perangkat Keras yang digunakan Adapun perangkat keras yang digunakan untuk membangun aplikasi ini adalah sebuah PC Toshiba Satellite L745-S4310 dengan spesifikasi: a. Processor : intel(R) Core(TM) i3-2330 CPU @ 2.20GHz b. RAM : 4096 MB c. Operating System: Windows 7 Ultimate 64-bit d. Hardisk : 500 GB Selain itu, rancangan tampilan yang akan dibangun pada sistem ini dapat dilihat pada gambar berikut:
Kontak tujuan Input a= b= m= c= x1=
Isi pesan sebenarnya (plaintext)
Encrypt and Send Gambar 3 Tampilan pada pengiriman pesan
Kontak en irim Input a= b= m= c= x1=
Isi pesan sebenarnya (plaintext)
Decrypt
Reply
Gambar 4 Tampilan pada penerimaan pesan
5. Pada sistem ini pesan yang dikirim, akan diubah kebentuk pesan rahasia/ciphertext (proses enkripsi) dengan sebuah kunci yang dibangkitkan dengan memasukkan nilai a,b,c,m,x1 pada sistem. Dengan inputan nilai tersebut, metode LCM akan membangkitkan bilangan random yang akan dijadikan kunci untuk eknripsi pesan. Kunci yang dihasilkan akan dienkripsi berdasarkan karakter yang dimasukkan. Pada saat penerima menerima pesan yang berupa cipherteks, maka penerima akan memasukkan nilai a,b,c,m,x1 yang sama untuk merubah pesan rahasia menjadi pesan aslinya. Untuk lebih jelas perhatikan contoh berikut: Proses pada sistem sender : Kontak tujuan : Mr.X Input : a=4, c=7, m= 15 dan X1= 3 Isi pesan : UAS TSP Maka akan dihasilkan ciphertext dengan proses enkripsi pada sistem sebagai berikut: 1. Inputan a,c,m,x1 akan dibangkitkan bilangan acak Xn = ((a(Xn-1)+c)) mod m X1 = ( 4 (3) + 7 ) mod 15 = 4 X2 = ( 4 (4) + 7 ) mod 15 = 8 X3 = ( 4 (8) + 7 ) mod 15 = 9 X4 = ( 4 (9) + 7 ) mod 15 = 13 X5 = ( 4 (13) + 7 ) mod 15 = 14 X6 = ( 4 (14) + 7 ) mod 15 = 3 X7 = ( 4 (3) + 7 ) mod 15 = 4 X8 = ( 4 (4) + 7 ) mod 15 = 8 …(berulang secara periodic) 2. Bilangan acak yang dibangkitkan adalah : 4, 8, 9, 13, 14, 3,4,… 3. Maka proses enkripsinya adalah: Plaintext : U-A-S- -T-S-P Key : 4-8-9-13-14-3-4 Chipertext : X-J-B- -H-V-T
Bilangan acak yang dibangkitkan adalah : 4, 8, 9, 13, 14, 3,4,… 6. Maka proses enkripsinya adalah: : X-J-B- -H-V-T ciphertext Key : 4-8-9-13-14-3-4 Plaintext : UAS TSP Proses dekripsi pada penerima pesan akan merubah pesan rahasia menjadi pesan asilnya kembali. Pada proses enkripsi dan dekripsi karakter yang memiliki nilai decimal hanya abjad, spasi, dan angka. Karakter selain itu tidak akan dirubah kedalam bentuk ciphertext.
7. Kesimpulan Adapun kesimpulan dari penelitian ini: 1. Dalam berkomunikasi antar sesama pada perangkat mobile yang berbasis android, diperlukan suatu cara untuk merahasiakan isi pesan kita agar tidak diketahui oleh orang lain. Salah satu cara yang dilakukan adalah dengan menggunakan metode kriptografi yang diterapkan pada sistem CS-Messenger ini yaitu metode vigenere cipher dan pembangkitan kunci dengan metode Linear Congruent Method ( LCM). Dengan kedua metode ini, pesan asli ( plaintext ) akan diubah menjadi pesan rahasia (ciphertext ). 2. Sistem ini dirancang dengan metode waterfall, dimana terdapat tahapan-tahapan yang akan dilakukan secara berurutan (requiretments, analysis, design, coding, testing, implementation). Pada sistem ini kunci akan dibangkitkan dengan metode LCM, dengan menentukan a,c,b,m 3. Pada proses enkripsi dan dekripsi karakter yang memiliki nilai decimal hanya abjad, spasi, dan angka. Karakter selain itu tidak akan dirubah kedalam bentuk ciphertext.
Berdasarkan proses diatas maka pesan yang dikirm berupa string XJB HVT. Daftar Pustaka Proses pada sistem receiver : Input : a=4, c=7, m= 15 dan X1= 3 Isi pesan : XJB HVT Maka akan dihasilkan ciphertext dengan proses enkripsi pada sistem sebagai berikut: 4. Inputan a,c,m,x1 akan dibangkitkan bilangan acak Xn = ((a(Xn-1)+c)) mod m X1 = ( 4 (3) + 7 ) mod 15 = 4 X2 = ( 4 (4) + 7 ) mod 15 = 8 X3 = ( 4 (8) + 7 ) mod 15 = 9 X4 = ( 4 (9) + 7 ) mod 15 = 13 X5 = ( 4 (13) + 7 ) mod 15 = 14 X6 = ( 4 (14) + 7 ) mod 15 = 3 X7 = ( 4 (3) + 7 ) mod 15 = 4 X8 = ( 4 (4) + 7 ) mod 15 = 8 …(berulang secara periodic)
[1] B. K. Nugroho, “Aplikasi Enkripsi SMS pada Telepon Selular Berbasis J2ME dengan Metode Vigenere Cipher,” 2010. [2] A. F. Irawan, “Sistem Keamanan Pesan pada Android Gingerbird (2.3.4) dengan Algoritmma LUC,” 2013. [3] D. Munthe, “Implementasi Linear Congruent Method(LCM) pada Tryout SNMPTN,” 2014.