Tugas Network Programing
-
Upload
prema-tersenyum -
Category
Documents
-
view
29 -
download
3
Transcript of Tugas Network Programing
5/17/2018 Tugas Network Programing - slidepdf.com
http://slidepdf.com/reader/full/tugas-network-programing 1/8
TUGAS KELOMPOK NETWORK PROGRAMINGProgram kriptografi algoritma rsa
NAMA ANGGOTA KELOMPOK :
1. GUSTI BAGUS SATRIYAGUNA 100010463
2. MARLIN ROSMELIA MATHIUS 090010483
3. KADEK PREMASTUTI KARANG 090010643
SEKOLAH TINGGI MANAJEMENINFORMATIKA DAN TEKNIK KOMPUTER
(STIMIK) STIKOM BALI
5/17/2018 Tugas Network Programing - slidepdf.com
http://slidepdf.com/reader/full/tugas-network-programing 2/8
2011
5/17/2018 Tugas Network Programing - slidepdf.com
http://slidepdf.com/reader/full/tugas-network-programing 3/8
ALGORITMA KRIPTOGRAFI RSA
RSA adalah salah satu contoh kriptografi yang menerapkan konsep public key. Algoritmaini pertama kali dipublikasikan di tahun 1977 oleh Ron Rivest, Adi Shamir, dan Leonard Adleman
dari Massachusetts Institute of Technology (MIT). Nama RSA sendiri adalah singkatan dari nama
belakang mereka bertiga. Clifford Cocks, seorang matematikawan Inggris sebenarnya juga telah
mengembangkan algoritma yang hampir sama dengan RSA ini pada tahun 1973. Namun algoritma
buatannya tidak begitu dikenal oleh publik, dan baru dipublikasi pada tahun 1997 karena
merupakan proyek rahasia. Walau begitu algoritma yang dikembangkan Rivest, Shamir, dan
Adleman tidak berhubungan dengan pekerjaan Cocks.
Pada algoritma RSA terdapat 3 langkah utama yaitu key generation (pembangkitan kunci),
enkripsi, dan dekripsi. Kunci pada RSA mencakup dua buah kunci, yaitu public key dan private
key. Public key digunakan untuk melakukan enkripsi, dan dapat diketahui oleh orang lain.
Sedangkan private key tetap dirahasiakan dan digunakan untuk melakukan dekripsi.
Pembangkitan kunci atau key generation dari RSA adalah sebagai berikut :
1. Pilih dua buah bilangan prima sembarang a dan b. Jaga kerahasiaan a dan b ini.
2. Hitung n = a * b. Besaran n ini tidak perlu dirahasiakan.
3. Hitung m = (a-1) * (b-1). Sekali m telah dihitung, a dan b dapat dihapus untuk mencegah
diketahuinya oleh pihak lain.
4. Pilih sebuah bilangan bulat untuk kunci publik, sebut namanya e, yang relatif prima
terhadap m (relatif prima berarti GCD(e, m) = 1) dengan syarat e ≠ (p-1), e ≠ (q-1), dan e < n
5. Hitung kunci dekripsi, d , dengan kekongruenan ed ≡1 (mod m).
Proses enkripsi dapat dilakukan dengan :
Ci = Pie mod n
Sedangkan proses dekripsi dilakukan dengan :
Pi = Cid mod n
Blok-blok plainteks dinyatakan dengan p1, p2, p3, ... (harus dipenuhi persyaratan bahwa
nilai pi harus terletak dalam himpunan nilai 0, 1, 2, ..., n-1 untuk menjamin hasil perhitungan tidak
berada di luar himpunan). Pada langkah kelima pembangkitan kunci atau key generation,
5/17/2018 Tugas Network Programing - slidepdf.com
http://slidepdf.com/reader/full/tugas-network-programing 4/8
kekongruenan ed ≡ 1 (mod m) sama dengan ed mod m = 1. Sehingga dapat pula dikatakan bahwa
ed ≡1 (mod m) ekivalen dengan ed = 1 + km.
Maka d dapat dihitung dengan cara yang sederhana dengan persamaan d =1km e
Dengan mencoba nilai k = 1, 2, 3, ..., diperoleh nilai d yang bulat. Nilai itu yang akan dipakai
sebagai kunci pribadi untuk dekripsi pesan. Dalam implementasi sebenarnya, nilai a dan b
diharapkan sangat besar sekali (misalnya 100 digit) agar pekerjaan memfaktorkan n menjadi faktor
primanya menjadi sangat sukar, sehingga lebih susah untuk ditembus.
Contoh penerapan algoritma RSA.
1. Menentukan bilangan acak a dan b
a = 13
b = 5
2. Hitung n dan m
n = 13 * 5 = 65
m = 12 * 4 = 48
3. Cari nilai e
GCD(e, 48) = 1
Misalnya,
e = 2 maka GCD(2, 48) = 2
e = 3 maka GCD(3, 48) = 3e = 4 maka GCD(4, 48) = 4
e = 5 maka GCD(5, 48) = 1 , jadi digunakan e = 5
4. Lalu cari nilai d
d =1km
e
Misalnya
k = 1 maka d = 9,8
k = 2 maka d = 19,4
k = 3 maka d = 29 , jadi digunakan d = 29
Kita coba mengenkripsi pesan menggunakan angka-angka yang telah didapatkan. Misalkan
pesan yang dikirim adalah angka 48.
5/17/2018 Tugas Network Programing - slidepdf.com
http://slidepdf.com/reader/full/tugas-network-programing 5/8
E = 48 ^ 5 mod 65
= 254803968 mod 65
= 3
Setelah dilakukan enkripsi, didapat nilai sekarang adalah 3. Kemudian akan kita coba lakukan
dekripsi pada nilai tersebut.
D = 3 ^ 29 mod 65 = 68630377364883 mod 65 = 48
Perhatikan bahwa nilai yang didapat sama dengan nilai awal, yaitu 48. Kekuatan algoritma RSA
terletak pada tingkat kesulitan dalam memfaktorkan bilangan menjadi faktor primanya, dalam hal
ini memfaktorkan n menjadi a dan b. Karena sekali n berhasil difaktorkan, maka menghitung nilai
m adalah perkara mudah. Selanjutnya, walau nilai e diumumkan, perhitungan kunci d tidaklah
mudah pula karena nilai m yang tidak diketahui.
Program yang kami buat :
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System;using System.Security.Cryptography;
namespace RSA{
public partial class Form1 : System.Windows.Forms.Form bisamemanggil/mengakses semua kelas
{ private RSA.Form1.clsCryptography clsRSA = new
RSA.Form1.clsCryptography(); private byte[] Decrypted; hanya bisa mengakses /dipanggil pada class dekripsi
private byte[] Encrypted; hanya bisa mengakses /dipanggal pada classenkripsi
public Form1()
{
InitializeComponent();}
public class clsCryptography{
private RSACryptoServiceProvider RSA;
5/17/2018 Tugas Network Programing - slidepdf.com
http://slidepdf.com/reader/full/tugas-network-programing 6/8
public string PublicKey; public string PrivateKey; public byte[] Encrypt(byte[] data, string PublicKeyIn) mengembalikan
data keenkripsi
{RSA.FromXmlString(PublicKeyIn);
return RSA.Encrypt(data, false);
public byte[] Decrypt(byte[] data, string PrivateKeyIn){
RSA.FromXmlString(PrivateKeyIn); mengembalikan data ke deskripsi return RSA.Decrypt(data, false);
}
//KONSTRUKTOR public clsCryptography()
{ CspParameters cspParams = new CspParameters();
cspParams.Flags = CspProviderFlags.UseMachineKeyStore;RSA = new RSACryptoServiceProvider(cspParams);PublicKey = RSA.ToXmlString(false);PrivateKey = RSA.ToXmlString(true);
}
}
private void Form1_Load(object sender, EventArgs e){
tbStatus.Text += "Private key is:\r\n" + clsRSA.PrivateKey + "\r\n";tbStatus.Text += "Public key is:\r\n" + clsRSA.PublicKey + "\r\n";
}Keterangan : untuk menampilkan status public key dan private key
private void btnEncrypt_Click(object sender, System.EventArgs e){
byte[] PlainText = System.Text.Encoding.ASCII.GetBytes(tbWorking.Text);Encrypted = clsRSA.Encrypt(PlainText, clsRSA.PublicKey);tbWorking.Text = System.Text.Encoding.ASCII.GetString(Encrypted);
}Keterangan : untuk mengubah/konversi (enkripsi) data(teks)
private void btnDecrypt_Click(object sender, System.EventArgs e){
Decrypted = clsRSA.Decrypt(Encrypted, clsRSA.PrivateKey);
tbWorking.Text = System.Text.Encoding.ASCII.GetString(Decrypted);keterangan : untuk mengubah/konversi (deskripsi) data(teks)
}
}
}
5/17/2018 Tugas Network Programing - slidepdf.com
http://slidepdf.com/reader/full/tugas-network-programing 7/8
Plaintext
Tampilan :
Chiper Text
Hasil Enskripsi
5/17/2018 Tugas Network Programing - slidepdf.com
http://slidepdf.com/reader/full/tugas-network-programing 8/8
KESIMPULAN
Ilmu atau seni menyandikan pesan atau kriptologi (kriptografi) telah digunakan manusia
sejak berabad-abad yang lampau. Dari menggunakan peralatan sederhana seperti Scytale, dan
kemudian berkembang menjadi Caesar Cipher , menggunakan mesin seperti pada Enigma, dan
akhirnya dengan menggunakan number theory. Berbagai konsep seperti public-key cryptography
juga dikembangkan.
RSA adalah salah satu algoritma kriptografi yang menggunakan konsep public-key
cryptography. RSA membutuhkan tiga langkah dalam prosesnya, yaitu pembangkitan kunci
dengan bilangan acak, enkripsi, dan dekripsi. Jika bilangan acak yang dibangkitkan kuat, makaakan lebih sulit untuk melakukan cracking terhadap pesan. Parameter kuat tidaknya suatu kunci
terdapat pada besarnya bilangan acak yang digunakan.