ENKRIPSI SMS DAN MMS DENGAN ALGORITMA
DATA ENCRYPTON STANDART
PADA JAVA 2
MICRO EDITION
Syafriza Bima
1), Wahyudi Setiawan
2)1)
Prodi Teknik Informatika, Fakultas Teknik, Universitas Trunojoyo 2)
Prodi Manajemen Informatika, Fakultas Teknik, Universitas Trunojoyo Jl.Raya Telang PO BOX 2 Kamal, Bangkalan , Madura
E-mail:2) wsetiawan.ok@gmail.com
ABSTRAK
Keamanan Short Message Service (SMS) dan Multi Media Service (MMS) pada ponsel sangat penting. Komunikasi melalui media SMS dan MMS bukanlah komunikasi point to point, karena pesan yang dikirimkan melalui media SMS dan MMS tidak langsung sampai pada tujuan, melainkan melalui jaringan SMS dan MMS. Penelitian ini membahas tentang aplikasi yang dapat mengenkripsi atau melindungi pesan agar kerahasiaan SMS atau MMS yang dikirim dapat terjaga. Aplikasi enkripsi ini dibangun dengan Algoritma Data Encryption Standart (DES). Algoritma DES merupakan Algoritma Simetri, algoritma ini mempunyai ketangguhan dalam mengenkripsi pesan , algoritma ini menggunakan 16 kali proses untuk mengenkripsi pesan. Aplikasi menggunakan teknologi Java 2 Micro Edition (J2ME). Berdasarkan pengujian , algoritma DES dapat di implementasikan dengan baik dalam proses enkripsi SMS dan MMS pada ponsel.
.
Kata Kunci: Kriptografi, J2ME,DES,SMS,MMS, ponsel
ABSTRACT
Security of Short Message Service (SMS) and Multi Media Service (MMS) on mobile phones is critical. Communication via SMS and MMS media is not point to point communication, because the message is sent via SMS and MMS media not directly to the destination, but through SMS and MMS networks. This study discusses the application that can encrypt or protect the confidentiality of messages to SMS or MMS sent to awake. Applications built with encryption algorithm Data Encryption Standard (DES). DES is an algorithm Symmetry Algorithm, this algorithm has the toughness to encrypt a message, the algorithm uses 16 times the process to encrypt the message. Applications using technologies Java 2 Micro Edition (J2ME). Based on testing, the DES algorithm can be implemented properly in the encryption process on SMS and MMS.
.
PENDAHULUAN
SMS ( Short Message Service) dan MMS ( Multimedia Messaging Service ) merupakan salah satu bentuk layanan ponsel , dengan SMS dan MMS dapat dilakukan pengiriman pesan. Aplikasi SMS maupun MMS yang beredar saat ini merupakan aplikasi dari device. Setiap orang dapat melihat dan membaca SMS maupun MMS , hal ini menjadikan sisi keamanan pada SMS dan MMS berkurang, salah satu celah keamanan juga terdapat server penyimpan MMS atau SMS, karena pesan yang dikirimkan akan disimpan pada SMSC untuk SMS atau MMSC untuk MMS, sehingga apabila terjadi serangan pada SMSC atau MMSC maka pesan yang terkirim dapat terbaca. Salah satu cara menanggulangi celah tersebut adalah dengan melakukan enkripsi terhadap pesan yang dikirimkan. Bila pesan yang tersimpan berbentuk data yang terenkripsi maka penyerang hanya akan mendapatkan data yang terenkripsi bukan data yang asli.
Dengan semakin majunya teknologi ponsel, implementasi suatu algoritma enkripsi menjadi mungkin. Salah satu algoritma enkripsi adalah algoritma DES ( Data Encryption Standart ),
Algoritma DES merupakan algoritma simetri namun algoritma ini cukup diakui kesederhanaannya sehingga menjadi mungkin diimplementasikan untuk enkripsi MMS dan SMS.
METODE
Untuk melakukan enkripsi data pada SMS dan MMS, diperlukan suatu aplikasi yang dapat mengenkripsi SMS dan MMS tersebut, karena secara default pada ponsel tidak disertakan aplikasi tersebut. Untuk menunjang pembuatan aplikasi tersebut maka perlu adanya teori penunjang . Berikut ini beberapa terori penujang yang berhubungan dengan proses pembuat aplikasi enkripsi SMS dan MMS dengan Algoritma DES.
Algoritma DES
Pada sekitar akhir tahun 1960, IBM melakukan riset pada bidang kriptografi yang pada akhirnya disebut Lucifer.Lucifer dijual pada tahun 1971 pada sebuah perusahaan di London. Lucifer merupakan algoritma berjenis Block Cipher, yang artinya bahwa input maupun output dari algoritma tersebut
merupakan 1 blok yang terdiri dari banyak bit seperti 64 bit atau 128 bit.Lucifer beroperasi pada blok input 64 bit dan menggunakan key sepanjang 128 bit [1].
Cara Kerja Algoritma Kriptografi DES
Algoritma Kriptografi DES (Data Encryption Standart) merupakan algoritma kriptografi simetri. DES termasuk dalam keluarga blok cipher dimana algoritma blok cipher adalah algoritma yang masukan dan keluarannya berupa satu blok dan setiap bloknya terdiri dari banyak bit (misal 1 blok terdiri dari 64 atau 128 bit). Di dalam DES, data dienkripsi di dalam 64 bit blok dengan menggunakan 56 bit kunci. Algoritma DES mengubah 64 bit input di dalam berbagai langkah menjadi 64 bit output. Langkah yang sama, dengan kunci yang sama, digunakan untuk mendekripsi ciphertext yang dihasilkan. Algoritma ini menggunakan operasi XOR dan permutasi dengan tabel tertentu untuk membentuk ciphertext atau data enkripsi. Proses enkripsi Algoritma DES secara global terdiri atas 3 bagian yaitu permutasi dengan IP,
enchipering, permutasi dengan IP-1 [2][3].
Gambar 1. Skema global algoritma DES
Blok plaintext dipermutasi dengan matrik permutasi awal (initial permutation atau IP). Plaintext merupakan data (teks) yang akan dienkripsi. Plaintext ini direpresentasikan sebagai bit, misalnya huruf P direpresentasikan sebagai 01010000. Keseluruhan plaintext dibagi ke dalam blok-blok. Setiap blok terdiri atas 64 bit.
Hasil permutasi awal kemudian dienkripsikan sebanyak 16 kali (16 putaran). (enchiphering) Setiap putaran menggunakan kunci internal yang berbeda.
Hasil enkripsi kemudian dipermutasikan dengan matriks balikan (invers initial permutation atau IP-1) menjadi blok ciphertext.
Blok Plainteks Ambil nilai byte
IP enchipering
Di dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri (L) dan kanan R), yang masing-masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16 putaran DES.
Satu putaran DES merupakan model
Jaringan Feistel Jaringan Feistel adalah inti dari proses enchipering, dimana proses ini akan diulang sebanyak 16 kali untuk memperoleh cipherteks atau hasil enkripsi.
Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang disebut f. Pada fungsi f, blok R dikombinasikan dengan kunci internal K,. Keluaran dari fungsi f di-XOR-kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok yang baru langsung diambil dari blok R sebelumnya.
Li = Ri-1 (1)
Ri = Li-1 f (Ri-1, Ki) (2) (4)
Rumus matematis diatas adalah satu putaran DES, dan akan diulang sebanyak 16 kali untuk memperoleh cipherteks Satu putaran DES merupakan model
Jaringan Feistel
Gambar 2. Jaringan Feistel untuk satu putaran DES
Sebelum putaran pertama, terhadap blok plainteks dilakukan permutasi awal ( initial-permutation atau IP ). Tujuan permutasi awal adalah mengacak plainteks sehingga urutan bit-bit didalamnya berubah. Pengacakan dilakukan dengan menggunakan matriks permutasi awal berikut ini:
Tabel 1. Permutasi awal IP
58 50 42 34 26 18 10 2 62 54 46 38 30 22 14 6 57 49 41 33 25 17 9 1 61 53 45 37 29 21 13 5 60 52 44 36 28 20 12 4 64 56 48 40 32 24 16 8 59 51 43 35 27 19 11 3 63 55 47 39 31 23 15 7
Cara membaca tabel/matriks: dua entry
ujung kiri atas (58 dan 50) artinya: "pindahkan bit ke-58 ke posisi bit 1", "pindahkan bit ke-50 ke posisi bit 2", dst. Setelah itu bagi 2 menjadi L0 dan R0. Terus diulangi sampai 16 kali perulangan dan hasil L16 dan R16 di permutasi dengan tabel IP-1
Tabel 2. matrik tabel IP-1
40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25
Cara membaca tabel/matriks: dua entry
ujung kiri atas (40 dan 8) artinya: "pindahkan bit ke-40 ke posisi bit 1", "pindahkan bit ke-8 ke posisi bit 2", dst.
Proses deskripsi sama dengan proses untuk mengenkripsi data tetapi kunci yang dipakai dibalik dari kunci ke 16, ke 15 dst sampai kunci ke 1.
a. Pembangkitan Kunci Internal atau Pemrosesan Key
Karena ada 16 putaran, maka dibutuhkan kunci internal sebanyak 16 buah, yaitu K,, Kz, ...,K16. Kunci-kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi. Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna. Kunci eksternal panjangnya 64 bit atau 8 karakter. Misalkan kunci eksternal yang tersusun dari 64 bit adalah
K. Kunci eksternal ini menjadi masukan untuk permutasi dengan menggunakan matriks permutasi PC-1 sebagai berikut:
L i-1 Ri-1
Tabel 3. matrik tabel PC-1
(parity bit) dari delapan byte kunci diabaikan. Hasil permutasinya adalah sepanjang 56 bit, sehingga dapat dikatakan panjang kunci DES
adalah 56 bit. Selanjutnya, 56 bit ini dibagi menjadi 2 bagian, kiri dan kanan, yang masing-masing panjangnya 28 bit, yang masing-masing-masing-masing disimpan di dalam Co dan DO: bergantung pada tiap putaran. Operasi pergeseran bersifat wrapping atau round-shift.
Jumlah pergeseran pada setiap putaran ditunjukkan pada tabel berikut :
Tabel 4. Pergeseran anak kunci Iterasi Jumlah Pergeseran iterasi di permutasi dengan Tabel PC-2.
Tabel 5. matrik tabel PC-2
14 17 11 24 1 5
Contoh proses kriptografi dengan Algoritma DES.
1. Pembangkitan anak kunci
misal password = „password” nilai ascii – biner
Tabel 6. ASCII
Character ASCII Biner
P 112 01010000
Jika dituliskan dalam bentuk biner, password menjadi:
01010000 01000001 01010011 01010011 01010111 01001111 01010010 01000100
Kemudian dilakukan permuted choice 1 pada kunci eksternal untuk memperoleh 56 bit kunci internal. Bit ke-0 (bit yang berada paling kanan dari keseluruhan blok bit) dari 56 bit
Blok bit ini dibagi menjadi 2 bagian, yang terdiri atas
C0 = 0000000 0111111 1100000 0000101 D0 = 0111110 0101100 0000100 0001101
Dari C0 dan D0 dilakukan pergeseran bit yang jumlahnya sesuai dengan tabel shifts (pergeseran bit tiap putaran). C0 dan D0 menjadi
C1 0000000 1111111 1000000 0001010
D1 1111100 1011000 0001000 0011010
. .
C16 0111110 0101100 0000100 0001101
D16 0000000 0111111 1100000 0000101
Untuk memperoleh K1, dilakukan Permuted Choice 2 pada C1 dan D1, dengan table PC -2 diatas diperoleh:
K1 00101000 00001001 0000100
1
00001010
. .
K16 00001001 00110100 0001111
0
00000001
K1 00011001 00100010 00001001 00100111
. .
K16 00100100 00010000 00101100 00010000
2. Proses Enkripsi
Misal data yang ingin dienkripsi “bismil4h” a. Kode ASCII & biner
Tabel 7. Kode ASCII & biner
Karakter ASCII Biner
B 98 01100010 menjadi: 01100010 01101001 01110011 01101101 01101001 01101100 00110100 01101000
b. Permutasikan dengan matrik PC-1 Hasil permutasi dengan matrik PC-1 adalah:
10111111 01000100 01101000 00011110 00000000 11111111 10111010 00000101
c. Gunakan kunci yang telah digenerated
diatas (password)
Bagi data (hasil permutasi dengan matrik PC-1) menjadi L0 dan R0
L1 00000000 11111111 10111010 00000101
Dapatkan nilai F
F = ( ( ( ( R0 diekspansi dengan matrik atau tabel ekspansi e) XOR K1) masukkan sbox)permutasi dengan matrik P)
10111111 01000100 01101000 00011110
Hasil ekspansi R0 dengan tabel ekpansi E 100000 000001 011111 111111 110111 110100 000000 001010
Setelah diekspansi dengan tabel E , operasi XOR dengan kunci Kn
XOR dengan Kn , Kn = K1
K1 = 101000 001001 001001 001010 011001 100010 001001 100111
Hasil operasi XOR
Hasil operasi XOR kemudian dimasukkan Sbox dengan table Sbox 2 dst..
Operasi Sbox 1
001000 001000 010110 110101 Bit 1 Bit2 Bit 3 Bit 4
101110 010110 001001 101101 Bit 5 Bit 6 Bit 7 Bit 8
Nilai bit 1/ bit pertama : 001000
Cari urutan baris = Dalam bit pertama diambil bit kesatu = 0 dan bit terakhir = 0, susun = 00 , Jika di desimalkan = 0
Cari urutan kolom = nilai bit ke yang ada ditengah = 0100 = 4 (dalam bentuk desimal) Nilai s-box untuk 001000 = cari nilai yang ada pada baris 0,kolom 4= 2 , binerkan = 0010 Jadi nilai sbox untuk bit pertama (001000) = 0010.
Demikian seterusnya dengan semua bit yang ada diproses menurut sbox nya masing-
Data hasil setelah melalui S- box
0010 0110 0111 0101 1000 0100 0100 1000 Kemudian hasil S-box di Permutasi dengan
1100 1101 0001 0001 0010 0001 1100
Kemudian kita lakukan operasi XOR dengan
L1 00000000 11111111 10111010 00000101 R1 01110010 01010101 01111010 00000010
dan diulangi sampai 16 kali perulangan didapat
L2 01110010 01010101 01111010 00000010
R2 11111101 11001010 11101011 10011111
.
L16 00101111 00010111 01100100 00000111 R16 10011101 11110101 11100011 00101001 Kemudian L16 ,R16 di permutasi akhir dengan menggunakan tabel atau matrik IP – 1
Hasil enkripsi =
11111011 1011001 11110101 11000010 10110000 1101110 00101100 10101000
1. Proses Deskripsi
menggunakan kunci yang di balik urutannya ke 16 ,15 ….1
Cipherteks (data enkripsi )
11111011 01011001 11110101 11000010 10110000 01101110 00101100 10101000
Cipherteks di permutasi dengan matrik IP
Hasil :
00101111 00010111 01100100 00000111 10011101 11110101 11100011 00101001
Dibagi 2
L = 00101111 00010111 01100100 00000111 R = 10011101 11110101 11100011 00101001
Ln-1 = F(Rn-1,Kn) (5)
Rn-1 = Ln (6)
R16 = L
= 00101111 00010111 01100100 00000111
L16 = F(R,K16)
Hitung fungsi F:
F = ( ( ( ( R0 diekspansi dengan matrik atau table Ekspansi e) xor K1) masukkan sbox) permutasi dengan matrik P)
Ekspansi R dengan matrik e =
Hasilnya:
100101 011110 100010 101110 101100 001000 001000 000000 001110
Lakukan operasi XOR dengan kunci K16 ( kunci mundur dari 16..15..1 sesuai perulangan)
Hasilnya:
101100 101010 111100 101111 001000 011000 101100 011110
Masukkan ke dalam Sbox
Hasilnya:
0010 0100 1110 1010 0111 1110 0111 0111
Lakukan permutasi akhir dengan Matrik / Tabel IP – 1:
Hasilnya:
0011 0010 0111 0111 0000 1111 1111 1100
Xor dengan Ln
Hasilnya:
00101111 00010111 01100100 00000111
Hasil :
L16 10101111 10000010 11101100 11010101 R16 00101111 00010111 01100100 00000111
dan diulangi sampai 16 kali perulangan didapat
L15 0111100 1
01000100 10001010 01000000
R15 1010111 1
10000010 11101100 11010101
. . .
L1 1011111 1
01000100 01101000 00011110
R1 0000000 0
11111111 10111010 00000101
Kemudian L1 ,R1 di permutasi akhir dengan menggunakan tabel atau matrik IP – 1
Hasil Dekripsi =
1100010 1101001 1110011 1101101 1101001 1101100 110100 1101000
Setelah dirubah ke ASCII 01100010 : b
Pada rancang bangun aplikasi enkripsi SMS dan MMS dengan Algoritma DES pada J2ME ini dibangun 2 midlet yang berada dalam satu midlet suite, dalam aplikasi ini untuk proses enkripsi digunakan api DES untuk java yaitu api java bouncycastle dari bouncycastle.org pada aplikasi ini terdapat 2 midlet yaitu :
Gambar 3. Use case diagram
Desain RMS
Untuk peracangan RMS untuk penyimpanan SMS dan MMS sebagai berikut:
1. RMS dataSms
Rms ini berfungsi untuk menyimpan data SMS, rms ini berjumlah 11 field
2. RMS noSms
Rms ini berfungsi untuk menyimpan data no SMS, Rms ini i berjumlah 11 field
3. RMS dataMms
Rms ini berfungsi untuk menyimpan data MMS, rms ini berjumlah 11 field
4. RMS noMms
Rms ini berfungsi untuk menyimpan data MMS, rms ini berjumlah 11 field
Pada aplikasi ini SMS atau MMS yang diiterima dapat disimpan kedalam handphone, dan dibatasi 10 SMS atau MMS yang dapat disimpan. Proses penyimpanan data pada SMS, apabila SMS telah mencapai 10 maka SMS ke 11 yang diterima akan langsung tersimpan ke SMS pertama dan data awal , SMS pertama akan diganti dengan SMS ke 11 tersebut. dan apabila, SMS ke 12 diterima maka data SMS ke 2 akan diganti dengandata sms ke 12 tersebut dan berulang seterusnya.
HASIL DAN PEMBAHASAN
Untuk menjalankan Aplikasi ini ini harus diinstal dahulu pada ke 2 handphone atau device. Pada percobaan kali ini akan digunakan Emulator handphone dari Netbeans 6.01. Pada aplikasi ini dibuat 2 midlet atau aplikasi yang tergabung pada 1 midlet suite yaitu :
1. Midlet SMS-DES 2. Midlet MMS-DES
Proses pengiriman pesan pada aplikasi J2ME akan dilakukan pada port tertentu baik untuk proses data atau pesan masuk maupun proses data atau pesan keluar, karena aplikasi J2ME tidak diperbolehkan membaca inbox ponsel atau device . Agar pesan (SMS atau MMS) dapat diterima pada aplikasi maka kita perlu menyamakan port untuk keluar dan masuk pesan, aplikasi SMS memakai port 5000 sebagai lokasi pengiriman dan pada aplikasi MMS memakai Aplication ID = sms.MidletUtama sebagai lokasi pengiriman. Pada kenyataaannya port bebas pada setiap hardware, device atau handphone berbeda satu sama lain.
Analisis Hasil Pengujian
Dari hasil percobaan dan implementasi program, diatas dapat di analisa.
Analisis pada emulator
Dilihat bahwa pada SMS / MMS yang dikirimkan akan berbentuk acak setelah di enkripsi menggunakan program ini.
Data sebelum enkripsi SMS (plaintext)
Gambar 4. Data sebelum proses enkripsi
Data dilihat dengan program deskripsi SMS
Data dilihat tanpa dekripsi SMS(cipher text)
Gambar 6. Data SMS dilihat tanpa deskripsi
Data sebelum enkripsi MMS(plaintext)
Gambar 7. Data MMS sebelum enkripsi
Data dilihat dengan program deskripsi MMS
Gambar 8. Data MMS hasil deskripsi
Data dilihat tanpa dekripsi MMS (cipher text)
Gambar 9. Data dilihat tanpa deskripsi MMS
Analisis penerapan aplikasi pada
real
device
Pada implementasi terhadap handphone dengan vendor Sony Ericcson secara default
semua pesan yang diset pada port tertentu apabila tidak terdapat receiver atau penangkap pesan pada port tersebut, maka pesan secara default akan masuk kedalam inbox. Berbeda dengan vendor handphone merk nokia, pada nokia apabila pesan dikirim pada port tertentu sementara itu tidak ada aplikasi receiver yang membuka pada port tersebut maka pesan tidak masuk ke default inbox dan akan hilang secara otomatis Untuk aplikasi SMS aplikasi berjalan lancar proses penerimaan data enkripsi dan dekripsi data berjalan dengan sesuai harapan untuk aplikasi MMS secara emulator MMS berjalan dengan baik tetapi setelah diinstla pada real device terjadi sesuatu yang tidak diduga ternyata pesan MMS tidak masuk kedalam aplikasi tetapi langsung menuju ke default
inbox, dalam hal ini pengujian menggunakan hanphone sony ericson K618i. dan sampai saat ini belum ditemukan penyebab masalah tersebut untuk itu diharap kan hal ini menjadi analisis pengembangan selanjutnya
Pemakaian nomor port juga akan menyebabkan aplikasi dapat berdiri sendiri namun tidak akan dapat menerima pesan jika diimplementasikan pada telepon selular yang menggunakan kartu SIM berjenis CDMA. Nomor port tersebut dibawa pada UDH (User Data Header) pada paket data SMS, yang dimana UDH tersebut tidak terdapat pada paket data SMS pada CDMA.
Pembangunan aplikasi SMS atau MMS yang berdiri sendiri akan memiliki kekurangan dimana aplikasi tidak akan dapat menerima pesan jika diimplementasikan pada telepon selular CDMA yang menyebabkan jenis telepon selular yang dapat digunakan menjadi terbatas pada telepon selular GSM
Analisis keamanan data
pada pesan yang dikirimkan, namun dengan dienkripsinya isi pesan, penyerang tidak dapat membaca pesan tersebut. Kerahasiaan pun akan terjaga apabila terjadi salah kirim, karena tanpa memasukkan kunci yang benar, pesan tidak akan terbaca.
KESIMPULAN
Setelah ujicoba pada program dapat diambil beberapa kesimpulan yaitu:
1. Penerapan algoritma DES untuk enkripsi SMS / MMS pada telepon selular dapat meningkatkan keamanan. Pesan yang terenkripsi tidak akan dapat dibaca jika tidak didekripsi dengan menggunakan kunci yang benar.
2. Algoritma DES dapat diimplementasikan dengan baik untuk melakukan enkripsi SMS / MMS yang bekerja pada jaringan GSM dengan mengirimkan pesan yang berbentuk binary.
3. Midlet atau aplikasi J2ME tidak dapat membaca pada inbox telepon atau device melainkan berkomunikasi dengan port tertentu yang berbeda pada setiap hardware atau device
4. Hasil dari enkripsi pesan MMS atau SMS ini adalah pesan acak yang terenkrip. 5. Gambar dan text bisa disimpan dalam RMS
(Record Management Store)
SARAN
Untuk pengembangan penelitian selanjutnya, dapat diimplementasikan, diantaranya :
1. Bentuk MMS lain yaitu suara. 2. Gambar dapat bersifat dinamis.
DAFTAR PUSTAKA
[1] Setyadi, R. Sejarah DES, 2012. Website : http://rahmatset.web.ugm.ac.id/web/?cat=1 5, diakses 7 Januari 2012.
[2] Mengenal DES ,2012. Website :
(www.eventid.net/docs/desexample.htm) diakses pada tanggal l Januari 2012.