enkripsi pesan dengan teknik rsa.docx

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 p u b lic void C araHit u n gN ilai R S A ( ) {  /* penggun aanR S A sangat uni k!  * di ka r ena ka n ki tamenggu n ak an pu bl i ckey da n pri vat ekey  * p u b l i ckeyyai t u dd an N  * p rivat ekeyya i t u ed an N  * B agai man amenen t u kan n i l ai e, d, dan N ?  * makaki t amem bu t u hk ann i l ai awal  * p ,q, dan eyan gn i lai t er seb u t b i l an gan pri ma!  * j ad i p ast i k and u l u b i l an gan t erseb u t P R I MA !  */  i n t p= 1301;  i n t q= 40 01;  i n t e=9 8981;  i f ( ! H el per.IsP ri me( p ) )  {  C onsole. Wri t eL i n e( " pbu k anb il an ga np ri ma!" ) ;

Upload: mulkan-syarief

Post on 04-Nov-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Enkripsi Pesan dengan teknik RSAOleh : www.softscients.web.id www.mplus.web.id

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

Kalkaltor RSAContoh penggunakan library untuk kalkulator RSApublic 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 RSAContoh penggunakan library untuk Enkripsi RSApublic 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 satu-persatu } 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 nyaDownloadSilahkan ke www.softscients.web.id www.mplus.web.id