Metode Enkripsi Simetris RC4
Posted OnKetika internet menjadi salah satu media komunikasi yang banyak digunakan orang, sebagian orang kemudian berpikir untuk menjadikanya sebagai media untuk transaksi komersial semacan internet banking, e-comerce, dan lain sebagainya. Kebutuhan akan hal itu kemudian didukung dengan lahirnya berbagai metode ataupun algoritma – algoritma enkripsi untuk pengamanan data misalnya MD2,MD4,MD5,RC4,RC5, dan lain sebagainya. Pembakuan penulisan pada kriptografi dapat ditulis dalam bahasa matematika. Fungsi-fungsi yang mendasar dalam kriptografi adalah enkripsi dan dekripsi. Enkripsi adalah proses mengubah suatu pesan asli (plaintext) menjadi suatu pesan dalam bahasa sandi (ciphertext).
C = E (M)
dimana
M = pesan asli
E = proses enkripsi
C = pesan dalam bahasa sandi (untuk ringkasnya disebut sandi)
Sedangkan dekripsi adalah proses mengubah pesan dalam suatu bahasa sandi menjadi pesan asli kembali.
M = D (C)
D = proses dekripsi
Dalam setiap transaksi di internet , idealnya, setiap data yang ditransmisikan harusnya terjamin :
- Integritas data
Jaminan integritas data sangat penting, sehingga data yang di kirimkan akan sama persis dengan data yang diterima, tanpa mengalami perubahan apapun pada selama ditransmisikan.
- Kerahasiaan data
Jaminan kerahasiaan data juga penting karena dengan demikian tidak ada pihak lain yang bisa membaca data yang ada selama data tersebut ditransmisikan.
- Otentikasi akse data
Mekanisme otentikasi akses data menjamin bahwa data ditransmisikan oleh pihak yang benar dengan tujuan transimisi yang benar pula.
Teknik kriptografi data untuk enkripsi ada dua macam yaitu:
- Kriptografi simetrik
Dengan model kriptografi ini, data di enkripsi dan didekripsi dengan kunci rahasia yang sama.
- Kriptografi asimetrik
Dengan model kriptografi ini, data dienkripsi dan didekripsi dengan kunci rahasia yang berbeda.pasangan kunci untuk enkripsi dan dekripsi dikenal dengan private key dan public key.
Gbr-1. Metode enkripsi simetrik (1) dan asimetrik (2)
Aplikasi kriptografi simetrik RC4 menggunakan Java
RC4 merupakan merupakan salah satu jenis stream cipher, yaitu memproses unit atau input data pada satu saat. Dengan cara ini enkripsi atau dekripsi dapat dilaksanakan pada panjang yang variabel. Algoritma ini tidak harus menunggu sejumlah input data tertentu sebelum diproses, atau menambahkan byte tambahan untuk mengenkrip. Metode enkripsi RC4 sangat cepat kurang lebih 10 kali lebih cepat dari DES.
Untuk melihat bagaimana metode enlripsi RC4 bekerja maka dalam tulisan ini dibuat aplikasi dengan menggunakan java, adapun source program tersebut adalah sebagai berikut :
Nama file : RC4Engine.java
—————-mulai—————-
class KeyParameter{
private byte[] key;
public KeyParameter(byte[] key){
this(key,0,key.length);
}
public KeyParameter(byte[] key,int keyoff,int keyLen){
this.key = new byte[keyLen];
System.arraycopy(key,keyoff,this.key,0,keyLen);
}
public byte[] getKey(){
return key;
}
}
class EncRC4Engine{
private final static int STATE_LENGTH = 256;
private byte[] engineState = null,workingKey = null;
private int x=0,y=0;
private static final char[] kDigits = {’0′,’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,’a’,’b’,’c’,’d’,’e’,’f’};
EncRC4Engine(){}//constructor
public void init(boolean forEncryption,KeyParameter params){
if(params instanceof KeyParameter){
workingKey = ((KeyParameter)params).getKey();
setKey(workingKey);
return;
}
throw new IllegalArgumentException(”invalid parameter passed to RC4 init”+params.getClass().getName());
}
public void processBytes(byte[] in,int inOff,int len,byte[] out,int outOff){
if((inOff+len)>in.length){
throw new RuntimeException(”output buffer too short”);
}
if((outOff+len)>out.length){
throw new RuntimeException(”out put buffer too short”);
}
for (int i = 0 ; i <>
Posting Komentar