Anda di halaman 1dari 6

Enkripsi Pesan dengan teknik RSA

Oleh : www.softscients.web.id www.mplus.web.id

Penulis mengimplementasikan
sebuah teknik kriptografi
menggunakan teknik RSA untuk
me enkripsikan sebuah pesan
(string)

Kalkaltor RSA
Contoh penggunakan library untuk kalkulator RSA
public void CaraHitungNilaiRSA()
{
/*penggunaan RSA sangat unik!
* dikarenakan kita menggunakan public key dan private key
* public key yaitu d dan N
* private key yaitu e dan N
* Bagaimana menentukan nilai e,d, dan N?
* maka kita membutuhkan nilai awal
* p,q, dan e yang nilai tersebut bilangan prima!
* jadi pastikan dulu bilangan tersebut PRIMA!
*/
int p = 1301;
int q = 4001;
int e = 98981;
if (!Helper.IsPrime(p))
{
Console.WriteLine("p bukan bilangan prima!");

return;
}
if (!Helper.IsPrime(q))
{
Console.WriteLine("q bukan bilangan prima!");
return;
}
if (!Helper.IsPrime(e))
{
Console.WriteLine("e bukan bilangan prima!");
return;
}
/*setelah semua dipastikan bilangan prima!
* maka gunakan class RSA untuk menghitung nilai d dan N nya
*/
RSA rsa = new RSA(p, q, e);
Console.WriteLine("Public key \n"+
"e : "+e.ToString()+"\n"+
"N : "+rsa.N.ToString()
);
Console.WriteLine("Private key \n" +
"d : " + rsa.D.ToString() + "\n" +
"N : " + rsa.N.ToString()
);
/*setelah mendapatkan nilai e,d, dan N
* maka anda siap gunakan nilai tersebut untuk melakukan proses enkripsi dan
dekripsi
* yaitu berupa nilai angka!
*/
int nilaiAwal = 100;
rsa.SetPublicKey(e, int.Parse(rsa.N.ToString())); //set nilai public key nya!
int nilaiEnkripsi = rsa.DoEncrypt(nilaiAwal); //proses enkripsi!
Console.WriteLine(nilaiAwal + " diubah " + nilaiEnkripsi);
/* pasti nilai nya akan berbeda!
* untuk mengubah kembali, gunakan dekripsi
*/
rsa.SetPrivateKey(int.Parse(rsa.D.ToString()), int.Parse(rsa.N.ToString())); //set nilai
public key nya!
int nilaiDekripsi = rsa.DoDecrypt(nilaiEnkripsi);
Console.WriteLine(nilaiEnkripsi + " diubah " + nilaiDekripsi);

Menghasilkan

Enkripsi RSA
Contoh penggunakan library untuk Enkripsi RSA
public void EnkripsiPesanDenganRSA()
{
Console.WriteLine("ENKRIPSI DENGAN RSA");
String rahasia = "ini adalah sebuah pesan rahasia!"; //pesan asli
Console.WriteLine("\nKALIMAT AWAL :\n" + rahasia);
int[] kodeASCII = Helper.Huruf2Angka(rahasia); // string diubah menjadi array ascii
//set kunci public dan private
int e = 79;
int d = 1019;
int N = 3337;
RSA rsa = new RSA(); //panggil class RSA
rsa.SetPublicKey(e, N); //tetapkan kunci RSA nya!
int[] kodeEnkripsi = new int[kodeASCII.GetLength(0)];

for (int i = 0; i < kodeASCII.GetLength(0); i++)


{
kodeEnkripsi[i] = rsa.DoEncrypt(kodeASCII[i]); //lakukan proses enkripsi satupersatu
}
String paketKalimat = Helper.PaketKalimat(kodeEnkripsi);
String kalimat = Helper.KalimatAngka2Huruf(paketKalimat);
Console.WriteLine("\nKALIMAT HASIL ENKRIPSI :\n" + kalimat);
/* selanjutnya proses dekripsi yaitu
*
*/
int[] code2 = Helper.Huruf2Angka(kalimat); //ubah string menjadi array ascii
paketKalimat = null;
for (int i = 0; i < code2.GetLength(0); i++)
{
paketKalimat += code2[i].ToString();
}
//Console.WriteLine(kalimatAngka);
paketKalimat = Helper.UraiPaket(paketKalimat); //urai paket kebalikan dari proses
paket kalimat!
String[] kalimat3 = paketKalimat.Split('#'); //gunakan tanda # untuk split
rsa.SetPrivateKey(d, N); //tetapkan private key
int[] kodeDekripsi = new int[kalimat3.GetLength(0) - 1];
for (int i = 0; i < kodeDekripsi.GetLength(0); i++)
{
kodeDekripsi[i] = rsa.DoDecrypt(int.Parse(kalimat3[i].ToString())); //lakukan
proses dekripsi satu - persatu
}
String urai = Helper.Angka2Huruf(kodeDekripsi); //ubah code ascci menjadi string
Console.WriteLine("\nKALIMAT HASIL DEKRIPSI :\n" + urai);
}

Menghasilkan

GUI

Begitu mudah bukan? Cara penggunaan library nya

Download
Silahkan ke www.softscients.web.id www.mplus.web.id

Anda mungkin juga menyukai