TugasRSA

18
BAB I PENDAHULUAN 1.1 Latar Belakang Perkembangan di bidang telekomunikasi dan komputer memungkinkan setiap orang berkomunikasi dan bertukar informasi secara bebas, kapan saja dan di mana saja. Namun di sisi lain, media komunikasi umum yang digunakan secara bebas oleh siapapun sangat rawan penyadapan informasi oleh pihak-pihak yang tidak absah. Oleh karena itu diperlukan ilmu berhubungan dengan aspek keamanan informasi itu yang disebut dengan kriptografi. Kriptografi ditujukan untuk memberi layanan keamanan, salah satunya dalam aspek kerahasiaan (confidentiality). Kerahasiaan (confidentiality) adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak dengan cara menyandikan plaintext (pesan asli) menjadi ciphertext (pesan sandi) yang disebut enkripsi. Sedangkan proses pengembalian ciphertext menjadi plaintext disebut dekripsi. Proses enkripsi dan dekripsi tersebut menggunakan algoritma kriptografi atau disebut juga cipher. Rivest Shamir Adleman (RSA) adalah salah satu algoritma kriptografi asimetris (kriptografi kunci-publik) yaitu menggunakan dua kunci yang berbeda (private key dan public key). Kekuatan algoritma RSA tidak hanya terletak pada panjang kuncinya (semakin panjang kunci, maka semakin lama waktu kerja) dan penggunaan kunci-publik dan kunci privat pada umumnya. Kekuatan utama dari algoritma RSA didasarkan pada

description

Algoritma RSA dibuat oleh tiga orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu Ron Rivest, Adi Shamir dan Leonard Adleman. RSA adalah salah satu teknik kriptografi dimana kunci untuk melakukan enkripsi berbeda dengan kunci untuk melakukan dekripsi.

Transcript of TugasRSA

Page 1: TugasRSA

BAB I

PENDAHULUAN

1.1 Latar Belakang

Perkembangan di bidang telekomunikasi dan komputer memungkinkan setiap orang

berkomunikasi dan bertukar informasi secara bebas, kapan saja dan di mana saja. Namun di

sisi lain, media komunikasi umum yang digunakan secara bebas oleh siapapun sangat rawan

penyadapan informasi oleh pihak-pihak yang tidak absah. Oleh karena itu diperlukan ilmu

berhubungan dengan aspek keamanan informasi itu yang disebut dengan kriptografi.

Kriptografi ditujukan untuk memberi layanan keamanan, salah satunya dalam aspek

kerahasiaan (confidentiality). Kerahasiaan (confidentiality) adalah layanan yang ditujukan

untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak dengan cara

menyandikan plaintext (pesan asli) menjadi ciphertext (pesan sandi) yang disebut enkripsi.

Sedangkan proses pengembalian ciphertext menjadi plaintext disebut dekripsi. Proses

enkripsi dan dekripsi tersebut menggunakan algoritma kriptografi atau disebut juga cipher.

Rivest Shamir Adleman (RSA) adalah salah satu algoritma kriptografi asimetris

(kriptografi kunci-publik) yaitu menggunakan dua kunci yang berbeda (private key dan

public key). Kekuatan algoritma RSA tidak hanya terletak pada panjang kuncinya (semakin

panjang kunci, maka semakin lama waktu kerja) dan penggunaan kunci-publik dan kunci

privat pada umumnya. Kekuatan utama dari algoritma RSA didasarkan pada sulitnya

memfaktorkan bilangan besar menjadi faktor-faktor primanya: faktorkan n menjadi dua

faktor primanya, p dan q, sedemikian sehingga n = p ∙ q. Walaupun demikian, RSA yang

populer sampai saat ini dan masih sulit untuk dipecahkan memiliki celah keamanan dengan

hanya mengetahui ciphertext dan kunci publiknya. Salah satu teknik serangan pada RSA

adalah dengan memanfaatkan celah pada “keunggulannya‟ yaitu dengan memfaktorkan kunci

publik n. Kelemahan inilah yang dimanfaatkan untuk melakukan serangan atau hacking untuk

menguji keamanan algoritma RSA dalam dalam merahasiakan pesan dan mengetahui

kelemahan-kelemahannya. Pada makalah ini peulis akan menjelaskan secara lebih detail

mengenai metode Kriptografi RSA.

Page 2: TugasRSA

1.2 Rumusan Masalah

Berdasarkan latar belakang tersebut, rumusan masalah yang akan dibahas sebagai

berikut ini.

1. Apa pengertian Rivest Shamir Adleman (RSA) ?

2. Bagaimana cara kerja Rivest Shamir Adleman (RSA) ?

3. Apa kekurangan dan kelebihan Rivest Shamir Adleman (RSA)?

1.3 Tujuan dan Manfaat

Adapun tujuan dari penulisan makalah adalah sebagai berikut ini.

1. Sebagai salah satu pembahasan untuk tugas mata kuliah Isu dan Prinsip Proteksi

Teknologi Informasi.

2. Untuk menjelaskan kepada pembaca materi mengenai Rivest Shamir Adleman (RSA).

Manfaat yang dapat diambil dari disusunnya makalah ini antara lain sebagai bahan

untuk memberikan pengetahuan dan dapat dijadikan sebagai bahan literature untuk menjawab

pertanyaan-pertanyaan mendasar mengenai Rivest Shamir Adleman (RSA).

Page 3: TugasRSA

BAB II

PEMBAHASAN

2.1 Rivest Shamir Adleman (RSA)

Algoritma RSA dibuat oleh tiga orang peneliti dari MIT (Massachussets Institute of

Technology) pada tahun 1976, yaitu Ron Rivest, Adi Shamir dan Leonard Adleman. RSA

adalah salah satu teknik kriptografi dimana kunci untuk melakukan enkripsi berbeda dengan

kunci untuk melakukan dekripsi. Kunci untuk melakukan enkripsi disebut sebagai kunci

publik, sedangkan kunci untuk melakukan dekripsi disebut sebagai kunci privat. Orang yang

mempunyai kunci publik dapat melakukan enkripsi tetapi yang dalam melakukan dekripsi

hanyalah orang yang memiliki kunci privat. Kunci publik dapat dimiliki oleh sembarang

orang, tetapi kunci privat hanya dimiliki oleh orang tertentu saja.

2.2 Mekanisme Dasar Kerja RSA

Tingkat keamanan algoritma penyandian RSA sangat bergantung pada ukuran kunci

sandi tersebut (dalam bit), karena makin besar ukuran kunci, maka makin besar juga

kemungkinan kombinasi kunci yang bisa dijebol dengan metode mengencek kombinasi satu

persatu kunci atau lebih dikenal dengan istilah brute force attack. Jika dibuat suatu sandi RSA

dengan panjang 256 bit, maka metode brute force attack akan menjadi tidak ekonomis dan

sia-sia dimana para hacker pun tidak mau/sanggup untuk menjebol sandi tersebut.

2.3 Proses Algoritma RSA

Proses atau cara kerja dari algoritma RSA dapat dilihat sebagai berikut:

1. Menentukan dua bilangan prima p ≠ q secara acak dan terpisah untuk tiaptiap p dan q.

2. Melakukan perhitungan n = p*q. (n merupakan hasil perkalian dari p dikalikan

dengan q)

3. Melakukan perhitungan nilai totient φ (n)= (p-1)(q-1).

4. Menentukan nilai kunci enkripsi e dengan syarat bahwa nilangan tersebut merupakan

bilangan bulat (integer) 1 < e < φ(n) dimana nilai GCD (φ(n), e)=1.

5. Menghitung kunci enkripsi yang dilakukan dengan perhitungan kunci dekripsi dengan

rumus d ≡ e -1

6. Setelah mendapatkan kunci-kunci tersebut maka dapat dilakukan proses enkripsi

maupun proses dekripsi. mod φ(n).

7. Rumus untuk melakukan proses enkripsi adalah C = MKe mod

Page 4: TugasRSA

8. Rumus untuk melakukan proses dekripsi adalah M = CKd mod n

2.4 𝜙Euler𝜙˗Euler atau ditulis𝜙(𝑛) adalah fungsi yang mengembalikan jumlah bilangan integer

a dalam 0 < 𝑎𝑎 < 𝑛𝑛 dan a relatif prima dengan n (relatif prima jika gcd(a, n) = 1) . Hasil 𝜙(𝑛) untuk empat kasus dasar adalah:

1. 𝜙( 1) = 0.

2. 𝜙(𝑝) = 𝑝 −apabila 𝑝 ∈ bilangan prima.

3. 𝜙(𝑝 × 𝑞) = 𝜙(𝑝) × 𝜙𝑞) apabila 𝑔cd(𝑝,𝑞) = 1

4. 𝜙(𝑝𝑒) = 𝑝𝑒− 𝑝𝑒−1 apabila 𝑝 ∈ bilangan prima.

2.5 Pembangkitan Kunci RSA

Pemilik kunci harus membangkitkan kunci publik dan privat untuk dapat

menggunakan RSA. Kedua kunci ini membutuhkan dua bilangan prima besar agar sulit untuk

difaktorisasi. Berikut variabel-variabel yang dibutuhkan untuk RSA:

(p, q)←bilangan prima acak besar

n←p · q, sehingga ϕ(n)←(p – 1)· (q – 1)

e←kunci enkripsi: bilangan acak dalam rentang 1 < e < ϕ(n),

dengan syarat gcd(e, ϕ(n)) = 1

d←kunci dekripsi:e-1 mod ϕ(n)

Ke = (e, n)

Kd = (d,n)

P = plain text

C = cipher text

2.5.1 Enkripsi RSA

Proses enkripsi RSA menggunakan kunci publik yang telah dibangkitkan sebelumnya.

Enkripsi pada RSA menggunakan fungsi eksponensial modulokunci enkripsi e

berikut:

C = MKe mod n

2.5.2 Dekripsi RSA

Page 5: TugasRSA

Untuk mengembalikan cipher text menjadi plain text, dekripsi RSA juga berupa

fungsi eksponensial modulo dengan menggunakan kunci privat. Berikutproses dekripsi

RSA :

2.6 Ancaman yang Mungkin Menyerang RSA

Sistem pengenkripsian RSA mempunyai kemungkinan-kemungkinan kelemahan yang

bisa diserang oleh para eavesdropper (penyadap, penguping), berikut adalah kelemahan-

kelemahan dalam RSA yang sebaiknya dihindari:

• Nilai n terlalu kecil, sehingga mudah untuk difaktorisasi

• Jumlah nilai eksponen en yang terlalu kecil

• Ukuran kunci yang terlalu kecil, sehingga sandi dapat dijebol dengan brute force

attack

• Nilai d terlalu kecil

• Pengunaan nilai modulus yang familiar, hal ini memudahkan para hacker untuk

menjebol sandi yang ada

2.7 Keuntungan dan Kerugian RSA

Keuntungan utama dari RSA yang merupakan kriptografi kunci publik adalah

menambah keamanan dan kenyamanan. Kunci privat tidak pernah diperlukan untuk dikirim

atau diberi tahu ke orang lain. Pada sebuah sistem kunci rahasia, secara terangterangan kunci

rahasia ini harus dikirim (bisa secara manual atau melalui sebuah saluran komunikasi) dan

akan terjadi suatu kemingkinan dimana penyerang dapat mencari tahu kunci rahasia tersebut

saat proses pengiriman.

Keuntungan utama lainnya adalah sistem RSA yang merupakan sistem kunci publik

ini dapat menyediakan sebuah metode untuk tanda tangan digital atau tanda tangan

elektronik. Autentikasi melalui kunci rahasia memerlukan pembagian dari beberapa rahasia

dan terkadang juga memerlukan rasa kepercayaan terhadap pihak ketiga. Sebagai hasilnya,

pengirim dapat menolak pesan autentikasi sebelumnya dengan cara membuktikan bahwa

rahasia yang dibagikan bagaimanapun caranya disetujui oleh pihak lain yang berbagi rahasia

tersebut. Autentikasi kunci publik, di lain sisi, mencegah kejadian penolakan seperti ini.

Setiap user mempunyai tanggung jawab sendiri untuk menjaga kunci privatnya masing-

masing. Jenis autentikasi yang seperti ini sering disebut nonrepudation.

Page 6: TugasRSA

Kekurangan dari pemakaian kriptografi kunci publik, dalam hal ini RSA, adalah

dalam masalah kecepatan. Banyak metode enkripsi kunci rahasia yang populer yang memiliki

kecepatan enkripsi-dekripsi yang lebih cepat dibandingkan dengan metode enkripsi kunci

publik yang ada sekarang. Namun kriptografi kunci publik dapat digunakan dengan

kriptografi kunci rahasia untuk mendapatkan metode enkripsi yang terbaik di dunia. Untuk

enkripsi, solusi terbaik adalah dengan cara mengkombinasi sistem kunci publik dan sistem

kunci rahasia untk mendapatkan kedua keuntungan yang dimiliki oleh kedua metode enkripsi

ini, keuntungan keamanan dari segi sistem kunci publik, dan keuntungan kecepatan dari segi

sistem kunci rahasia. Kriptografi kunci publik dapat menjadi lemah terhadap pemalsuan

identitas user, bagaimana pun juga, walupun jika kunci privat dari pemakai tidak tersedia.

Sebuah serangan yang sukses pada sebuah otoritas sertifikasi akan memperbolehkan lawan

untuk menyelinap siapapun yang lawan pilih dengan cara memilih sertifikat kunci publik dari

sebuah otoritas yang memilikinya untuk menggabungkan kunci tersebut ke nama user yang

lain.

2.8 Aplikasi enkripsi RSA(Rivest Shamir Adleman)/*

* To change this license header, choose License Headers in Project

Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

package rsaisudewi;

import java.util.Scanner;

/**

*

* @author Dewi

*/

public class RSAisudewi {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

int p,q,n,Tn,Kd,Ke,M,H_EN,H_DE;

String GCD;

Page 7: TugasRSA

int[] gcd = new int[100];

int[] kd = new int [100];

Scanner scan = new Scanner (System.in);

//prosesRSA proses = new prosesRSA();

System.out.print("Inputkan nilai p: ");

p =scan.nextInt() ;

System.out.print("Inputkan nilai q: ");

q =scan.nextInt() ;

n=Val(p,q);

System.out.println("Hasil nilai n:(p*q) : " +n);

Tn=TotN(p,q);

System.out.println("Hasil totient euler Tn:(p-1)*(q-1) : " +Tn);

System.out.println("Hasil dari Kd: ");

/*int Kd=1;

for(int x=0;x<Tn;){

kd[x]=Kd;

System.out.print(Kd+", ");

Kd++;

x++;

}*/

System.out.println(" ");

gcd=fpb1(Tn);

System.out.println("Hasil nilai Kd : ");

for(int x=0;x<Tn;x++){

if(gcd[x]!=0){

System.out.print(gcd[x]+", ");

}

}

System.out.println(" ");

System.out.print("Input nilai Kd yang akan digunakan :");

Kd=scan.nextInt();

Ke=ke(Tn,Kd);

System.out.println("Input nilai dari Ke : " +Ke);

System.out.print("Input nilai Angka(M) yang akan di Enkripsi :");

M=scan.nextInt();

H_EN=enkripRSA(M,Tn,Ke);

System.out.println("Hasil nilai Enkripsi Angka("+M+") dengan

Page 8: TugasRSA

Ke("+Ke+") adalah "+H_EN);

H_DE=dekripRSA(H_EN,Tn,Kd);

System.out.println("Hasil nilai Deskripsi "+ +H_EN +" dengan

Kd("+Kd+") adalah "+H_DE);

}

public static int Val(int n, int m){

int b=n*m;

return b;

}

public static int TotN(int n, int m){

int TotN=(n-1)*(m-1);

return TotN;

}

public static int[] fpb1(int TotN){

int r, val, q=0;

int gcd[]= new int[TotN];

for (r=1; r<=TotN; r++){

val=fpb2(TotN, r);

if (val==1){

gcd[q]=r;

q++;

}

}

return gcd;

}

public static int fpb2(int TotN, int r){

int x, y, t, p=0;

if (TotN>r){

x=TotN;

y=r;

} else{

x=r;

y=TotN;

}

for (t=1; t<=x; t++){

if (y>=t && x % t==0 && y % t==0){

Page 9: TugasRSA

p=t;

}

}

return p;

}

public static int ke(int TotN, int kd){

int y, ke=0;

for (y=1; y<TotN; y++){

if (y*kd % TotN==1){

ke=y;

}

}

return ke;

}

public static int enkripRSA(int m, int n, int ke){

int tes= (int) Math.pow(m, ke) % n;

return tes;

}

public static int dekripRSA(int c, int n, int kd){

int tes= (int) Math.pow(c, kd) % n;

return tes;

}

}

Kode Program 2.1 RSAisuDewi

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

Page 10: TugasRSA

package rsaisudewi;

/**

*

* @author Dewi

*/

public class RSAproses {

public static int Val(int n, int m){

int b=n*m;

return b;

}

public static int TotN(int n, int m){

int TotN=(n-1)*(m-1);

return TotN;

}

public static int[] fpb1(int TotN){

int r, val, q=0;

int gcd[]= new int[TotN];

for (r=1; r<=TotN; r++){

val=fpb2(TotN, r);

if (val==1){

gcd[q]=r;

q++;

}

}

return gcd;

}

public static int fpb2(int TotN, int r){

int x, y, t, p=0;

Page 11: TugasRSA

if (TotN>r){

x=TotN;

y=r;

} else{

x=r;

y=TotN;

}

for (t=1; t<=x; t++){

if (y>=t && x % t==0 && y % t==0){

p=t;

}

}

return p;

}

public static int Ke(int TotN, int kd){

int y, ke=0;

for (y=1; y<TotN; y++){

if (y*kd % TotN==1){

ke=y;

}

}

return ke;

}

public static int enkripRSA(int m, int n, int ke){

int tes= (int) Math.pow(m, ke) % n;

return tes;

}

public static int dekripRSA(int c, int n, int kd){

Page 12: TugasRSA

int tes= (int) Math.pow(c, kd) % n;

return tes;

}

}

Kode Program 2.2 RSAproses

Kode program 2.2 merupakan sintaks dari proses yang dilakukan pada metode

RSA(Rivest Shamir Adleman).

2.5.1 Uji Coba Aplikasi

Uji coba aplikasi akan membahas hasil atau output yang telah dibuat. Penjelasan

mengenai hasil uji coba dari aplikasi enkripsi dan deskripsi RSA (Rivest Shamir Adleman)

akan dijabarkan pada Gambar 2.1.

Gambar 2.1 Uji Coba Aplikasi Enkripsi dan Deskripsi RSA

Gambar 2.1 menunjukkan program yang dijalankan dengan menginputkan dua

bilangan prima yaitu nilai p dan q yang menghasilkan nilai n yaitu 77. Hasil totient eulernya

dengan rumus Tn=(p-1)*(q-1)=60. Lalu ditampilkan hasil nilai dari Kd yaitu bilangan prima

sampai 60. Lalu selanjutnya menginputkan nilai Kd yang akan digunakan yaitu 11, lalu nilai

Ke yaitu 11 dan menginputkan nilai M yang akan dienkripsi yaitu 3 dan hasil enkripsi M=3

dengan Ke=11 adalah 27 dan hasil deskripsi 27 dengan Kd=11 adalah 7.

Page 13: TugasRSA

BAB III

PENUTUP

3.1 Kesimpulan

RSA adalah salah satu teknik kriptografi dimana kunci untuk melakukan enkripsi

berbeda dengan kunci untuk melakukan dekripsi. Kunci untuk melakukan enkripsi disebut

sebagai kunci publik(Ke), sedangkan kunci untuk melakukan dekripsi disebut sebagai kunci

privat(Kd). Tingkat keamanan algoritma penyandian RSA sangat bergantung pada ukuran

kunci sandi tersebut (dalam bit), karena makin besar ukuran kunci, maka makin besar juga

kemungkinan kombinasi kunci yang bisa dijebol dengan metode mengencek kombinasi satu

persatu kunci atau lebih dikenal dengan istilah brute force attack.

Page 14: TugasRSA

DAFTAR PUSTAKA

http://repository.usu.ac.id/bitstream/handle/123456789/43626/Chapter%20II.pdf?sequence=4

http://eprints.undip.ac.id/25130/1/J2A006004-ARIF.pdf