Monday, January 21, 2013

Penerapan Algoritma RC6 Untuk Ekripsi SMS Telepon Seluler



Penerapan Algoritma RC6 Untuk Ekripsi
SMS Telepon Seluler
Jamaluddin
Program studi Teknik Informatik, Universitas Malikussaleh
Email : addinmc@gmail.com

SMS merupakan suatu layanan yang diberikan oleh telepon selular kepada penggunanya untuk melakukan komunikasi melalui pengiriman pesan singkat dengan biaya yang murah. SMS sangatlah populer, selain dikarenakan biayanya yang murah, pesan yang dikirimkan dapat diterima oleh penerima dengan baik dan cepat. Namun komunikasi melalui media SMS ini bukanlah komunikasi point-to-point, pesan yang dikirimkan melalui media SMS tidak langsung sampai pada tujuan, melainkan melalui jaringan SMS. Pada jaringan SMS tersebut, keamanan pesan sangatlah terancam untuk dibaca oleh orang yang tidak bertanggung jawab. Perangkat lunak yang dibangun meningkatkan keamanan pesan dengan melakukan enkripsi terhadap pesan yang dikirimkan. Perangkat lunak yang dibangun menggunakan algoritma RC6 untuk melakukan enkripsi SMS agar keamanan pesan dapat ditingkatkan. Algoritma RC6 adalah suatu algoritma kunci privat yang dikenal dengan kesederhanaannya. Algoritma RC6 merupakan algoritma dengan parameter yang dapat bekerja pada panjang kunci yang beragam. Untuk aspek keamanannya, algoritma RC6 mengutamakan prinsip intered cripher.
cipher.

.


Kata Kunci: SMS, RC6, iterated cipher, enkripsi, dekrip.



1. PENDAHULUAN
Telepon selular merupakan alat komunikasi yang sudah dipakai oleh sebagian besar orang di dunia. Telepon selular menyediakan media komunikasi yang beragam dan salah satu diantaranya adalah media SMS (Short Message Service). SMS merupakan suatu layanan yang memungkinkan pengguna telepon selular untuk mengirimkan pesan singkat kepada pengguna telepon selular lainnya dengan cepat dan dengan biaya yang kecil. SMS bekerja pada sistem nirkabel. Sistem nirkabel yang paling populer di dunia adalah GSM (Global System for Mobile Communication). Komponen yang digunakan oleh GSM dalam melakukan komunikasi SMS diantaranya:
a.  Mobile Station merupakan perangkat mobile yang dapat melakukan pengiriman SMS.
b.  ESME (External Short Messaging Entities) merupakan suatu perangkat yang dapat mengirimkan dan menerima SMS, pada umumnya menggunakan jaringan Internet.
c.  BS (Base Station) menjadi antar muka antar jaringan komunikasi nirkabel dengan mobile station.
d.  MSC (Mobile Service Switching Center) merupakan komponen utama pada pengontrolan pertukaran informasi informasi yang terjadi pada jaringan selular.
e.  Register-register yang diantaranya adalah HLR (Home Location Register) dan VLR (Visitor Location Register).
f.  SMSC (Short Message Service Center) merupakan tempat di mana SMS disimpan sebelum dikirimkan ke tujuan.

Untuk lebih jelas mengenai jaringan SMS dapat dilihat pada Gambar 1 yang di mana interaksi antara mobile station dan jaringan tersebut adalah melalui BS.

Gambar 1 Jaringan SMS [ENC05]

Celah keamanan terbesar pada komunikasi SMS adalah pesan yang dikirimkan akan disimpan pada SMSC, sehingga apabila terjadi serangan pada SMSC, maka pesan yang terkirim dapat terbaca. Salah satu cara menaggulangi celah tersebut adalah dengan melakukan enkripsi terhadap pesan yang dikirimkan. Dengan semakin majunya teknologi telepon selular, implementasi suatu algoritma enkripsi menjadi mungkin. Algoritma RC6 yang dirancang oleh Ronald L. Rivest, M.J.B. Robshaw, R. Sidney, dan Y.L. Yin merupakan salah satu algoritma yang menjadi finalis kandidat untuk menjadi AES. Walaupun pada akhirnya algoritma ini tidak menang dalam kompetisi tersebut, namun algoritma ini cukup diakui kesederhanaannya sehingga menjadi mungkin diimplementasikan untuk enkripsi SMS pada telepon selular.




2. LANDASAN TEORI

2.1. Struktur Pesan SMS
Struktur pesan pada sebuah paket SMS dapat dilihatpada Gambar II-1 yang diadopsi dari [CLE03].



gambar 2.1 Struktur Pesan SMS

Pada Gambar II-1 dapat terlihat bahwa pada sebuah paket pesan SMS terdiri dari header dan body. Header pesan terdiri dari instruksi-instruksi kepada komponen-komponen yang bekerja dalam jaringan SMS. Pada instruksi-instruksi tersebut, terdapat informasi yang diperlukan selama pengiriman pesan seperti informasi validitas pesan, dan informasi informasi lainnya. Pada bagian message body, terdapat isi dari pengirim pesan yang akan dikirimkan. Panjang isi pesan pada sebuah paket SMS berukuran maksimal 160 karakter, dimana setiap karakter memiliki panjang 7 bit. Beberapa aplikasi standar telepon selular dapat mendukung panjang pesan dengan karakter sepanjang 8 bit (panjang pesan maksimum 140 karakter) dan karakter yang lebih panjang lainnya seperti 16 bit, namun karakter sepanjang 8 bit dan 16 bit ini tidak didukung oleh semua aplikasi standar telepon selular. Pada umumnya karakter sepanjang 8 bit dan 7 bit digunakan untuk menampilkan data seperti gambar dan simbol[PET07].

2.2 Algoritma RC6[RIV98]
Algoritma RC6 adalah suatu algoritma kriptografi block cipher yang dirancang oleh Ronald L. Rivest, Matt J.B. Robshaw, Ray Sidney, dan Yuqin Lisa Yin dari RSA Laboratories. Algoritma ini pada mulanya dirancang untuk menjadi AES (Advance Encryption Standard). Algoritma RC6 ini berhasil menjadi finalis dan menjadi kandidat kuat untuk menjadi AES walaupun pada akhirnya algoritma ini tidak terpilih menjadi AES melainkan algoritma rinjdael. Versi 1.1 dari RC6 mulai dipublikasikan pada tahun 1998. Dasar desain dari algoritma RC6 ini didasarkan pada pendahulunya yaitu algoritma RC5. Algoritma RC6 merupakan algoritma dengan parameter penuh, algoritma RC6 dispesifikasikan dengan notasi RC6-w/r/b. Dimana w adalah ukuran dari word dalam bit, karena pada RC6 menggunakan 4 buah register maka word adalah ukuran blok dibagi 4. r adalah jumlah iterasi, dimana r tidak boleh negatif. Dan b adalah panjang kunci dalam bytes. Pembentukan kunci internal yang akan digunakan pada proses enkripsi dan dekripsi dari algoritma RC6 menggunakan pembentukan kunci internal dari algoritma RC6. Proses untuk membangun kunci-kunci internal menggunakan dua buah konstanta yang disebut dengan “magic constant”. Dua buah magic constant Pw dan Qw tersebut didefinisikan sebagai berikut:

Pw=Odd((e-2)2w)………………(2.1)
Qw=Odd((Ø­1)2w)………………(2.2)
Dimana :

e = 2.7182818284859…(basis dari logaritma natural)
Ø­= 1.618022988749…(golden ratio)
Odd (x) adalah integer ganjil terdekat dari x, jika x genap maka diambil integer ganjil setelah x.
Berikut adalah daftar magic constant pada beberapa panjang blok dalam heksadesimal:

P16 = b7e1
Q16 = 9e37
P32 = b7e15163
Q32 = 9e3779b9
P64 = b7e151628aed2a6b
Q64 = 9e3779b97f4a7c15

Dengan menggunakan dua buah magic constant tersebut, pembangunan kunci terdiri dari tiga tahap :
1.        Konversi kunci rahasia dari bytes ke words

if c=0 then
cß1
endif

for  I ßb-1 downto 0 do
L[i/u]  ß  (L[i/u]<<<8) +
K[i]
Endfor

Dimana c = pembulatan keatas(b/u) dan u = w/8

2.        Inisialisasi array S

S[0] ß Pw
for i ß 0 to 2r+3 do
S[i] ß S[i-1]+ Qw
Endfor

3.        Mencampurkan L dan S

iß0
jß0
Aß0
Bß0
Vß3*max(c,2r+4)
for indexß1 to v do
S[i] ß (S[i]+A+B) <<< 3
AßS[i]
L[j] ß (L[j]+A+B) <<< (A+B)
BßL[j]
iß (i+1)mod(2r+4)
jß (j+1)mod c
endfor

Algoritma RC6 bekerja dengan empat buah register A,B,C,D yang masing-masing berukuran w-bit, register-register tersebut akan diisi oleh plainteks yang kemudian akan digunakan selama proses enkripsi dan setelah proses enkripsi berakhir isi dari registerregister tersebut merupakan cipherteks. Proses enkripsi dan dekripsi algoritma RC6 menggunakan enam buah operasi dasar:

a+b = penjumlahan integer modulo 2w
a - b=pengurangan integer modulo 2w
aÅb=operasi bitwise exclusive-or sebesar w-bit words
a*b = perkalian integer modulo 2w
a<<<b=rotasi sejumlah w-bit word ke kiri sebanyak jumlah yang diberikan oleh least sifnificant lg w bit dari b
a>>>b=rotasi sejumlah w-bit word ke kanan sebanyak jumlah yang diberikan oleh least sifnificant lg w bit dari b
Dimana lg w adalah logaritma basis dua dari w.

Proses enkripsi algoritma RC6 adalah sebagai berikut:

Prosedure Enkripsi
(Input :Plainteks dalam A,B,C,D
r : integer (jumlah rotasi)
S[0..2r+3] : kunci internal
Output :Cipherteks dalam A,B,C,D)

Kamus
u : integer
t : integer

Algoritma
B ß B + S[0]
D ß D + S[1]

for i ß 1 to r do
t ß (B * (2B + 1))<<<lg w
u ß (D * (2D + 1))<<<lg w
A ß ((A Å t)<<<u) + S[2i]
C ß ((C Å u)<<<t) + S[2i+ 1]
(A,B,C,D) ß (B,C,D,A)

endfor
A ß A + S[2r + 2]
C ß C + S[2r + 3]

Atau dapat dilihat pada Gambar 2 dengan f(x)=x*(2x+1).



Proses dekripsi dari algoritma RC6 adalah sebagaiberikut:

Prosedure Dekripsi
(Input :Cipherteks dalam A,B,C,D
r : integer (jumlah rotasi)
S[0..2r+3] : kunci internal
Output :Plainteks dalam A,B,C,D)

Kamus
u : integer
t : integer

Algoritma
C ß C - S[2r + 3]
A ß A - S[2r + 2]

for i ß r downto 1 do
(A,B,C,D) ß (D,A,B,C)
u ß (D * (2D + 1))<<<lg w
t ß  (B * (2B + 1))<<<lg w
C ß ((C - S[2i+ 1])>>>t) ß u
A ß ((A - S[2i])>>>u) ß t

endfor
D ß D - S[1]
B ß B - S[0]

Atau dapat dilihat pada Gambar 3 dengan f(x)=x*(2x+1).



Gambar 3 Proses Dekripsi RC6

3.        PENERAPAM

3.1. Penerapan Algoritma RC6
Salah mode penerapan Algoritma RC6 untuk enkripsi Pesan  adalah mode ECB, mode ini adalah mode yang paling sederhana dan sering digunakan. Dalam block cipher dibutuhkan metode pemrosesan blok dan mode ECB yang memproses setiap blok secara independen akan memerlukan jumlah memori yang sedikit dan waktu pemrosesan yang singkat. Karakter yang dapat digunakan pada SMS beragam, sebuah karakter dapat memiliki panjang 7 bit, 8 bit atau 16 bit, sebuah pesan tidak dapat memiliki karakter dengan panjang yang beragam, hal ini harus diperhatikan dalam melakukan perancangan algoritma enkripsi. Jika panjang karakter yang digunakan menggunakan panjang 7 bit, maka akan menimbulkan masalah karena pada algoritma RC6 terdapat “lg w” dimana merupakan logaritma basis dua dengan w adalah panjang word, jika yang digunakan kerakter dengan panjang 7 bit, maka panjang word akan menjadi kelipatan 7 sehingga tidak akan ditemukan bilangan bulat dari “lg w”. Atas dasar pertimbangan tersebut

3.2  Penerapan Enkripsi SMS
Hal yang harus di perhatikan dalam penerapan ini tersebut adalah aplikasi SMS standar tiap jenis telepon selular tidaklah sama, panjang sebuah karakter dapat beragam dan kemampuan untuk melakukan konkatinasi tidak dimiliki oleh semua jenis teleponselular dan juga tidak semua aplikasi pengiriman SMS mengirimkan pesan dalam bentuk binary. Penerimaan pesan akan melalui nomor port tersebut dan pengiriman pesan akan selalu ditujukan pada nomor port tersebut. nomor port ini akan menyebabkan panjang pesan berkurang karena informasi nomor port tersebut akan dikirimkan. Pemakaian nomor port ini 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. jika sebuah pesan telah terenkripsi, maka, dalam pengiriman pesan, pesan yang dikirim berupa pesan binary yang terdiri dari byte-byte hasil enkripsi.


1.        KESIMPULAN

Dari keseluruhan isi jurnal ini, dapat diambil kesimpulan sebagai berikut:
1.        Penerapan algoritma kunci privat untuk enkripsi SMS pada telepon selular dapat meningkatkan keamanan. Pesan yang terenkripsi tidak akan dapat dibaca jika tidak didekripsi dengan menggunakan kunci yang benar, sehingga orang yang tidak mengetahui kunci yang sebenenarnya tidak dapat membaca pesan yang dikirimkan.
2.        Algoritma RC6 dapat diterapkan  dengan baik untuk melakukan enkripsi SMS yang bekerja pada jaringan GSM dengan mengirimkan pesan yang berbentuk binary.
3.        Kekurangan dari implementasi algoritma RC6 untuk enkripsi SMS adalah pesan yang dikirimkan menjadi lebih besar karena harus bekerja pada 8 bit dan dibutuhkan padding untuk memenuhi panjang blok.
4.        Semakin besar jumlah rotasi pada algoritma RC6, maka tingkat keamanan akan semakin baik, namun waktu yang diperlukan untuk melakukan enkripsi dan dekripsi akan semakin besar.

5. SARAN
1.  Agar pesan terenkripsi yang dikirimkan memiliki panjang pesan yang sama dengan plainteks yang ditulis oleh pengirim, sebaiknya diterapkan sebuah algoritma kompresi untuk melakukan kompresi pesan.
2.  Algoritma enkripsi yang diterapkan sebaiknya dapat menangani panjang karakter yang memiliki panjang 7 bit untuk melakukan enkripsi SMS. Pada dasarnya panjang karakter pada SMS adalah 7 bit oleh karena itu agar SMS yang dikirimkan tidak mengalami penambahan panjang sebaiknya digunakan suatu algoritma enkripsi yang mampu menangani karakter sepanjang 7 bit.


DAFTAR PUSTAKA
Halim. Abdul, (2007) Penerapan Kriptografi dan Asimetri untuk mengamankan multimedia messaging service (MMS) http://www.digilib.itb.ac.id

Yudi Haribowo, Pengamanan Situs dengan Enkripsi Head dan Body HTML Menggunakan Algoritma RC4,

Kautzar Mohammad Gilang, Implementasi sistem enkripsi pengirim pesan instan java dengan algoritma, RC4 http:// www.if.itb.ac.id

Jati Sasongko,(2005), Pengamanan Data Informasi menggunakan Kriptografi Klasik, http://www. unisbank.ac.id





No comments:

Post a Comment