Selasa, 07 Juni 2016

Tugas Kelompok 3 Algoritma RSA



  ALGORITMA RSA

1.      PENJELASAN SINGKAT
       Sandi RSA merupakan algoritma kriptografi kunci public (asimetris). Ditemukan pertama kali pada tahun 1977 oleh R. Rivest, A. Shamir, dan L. Adleman. Nama RSA sendiri diambil dari ketiga penemunya tersebut.
       Sebagai algoritma kunci publik, RSA mempunyai dua kunci, yaitu kunci publik dan kunci rahasia. Kunci publik boleh diketahui oleh siapa saja, dan digunakan untuk proses enkripsi. Sedangkan kunci rahasia hanya pihak-pihak tertentu saja yang boleh mengetahuinya, dan digunakan untuk proses dekripsi. Keamanan sandi RSA terletak pada sulitnya memfaktorkan bilangan yang besar. Sampai saat ini RSA masih dipercaya dan digunakan secara luas di internet.
 

Gambar 1. Skema Algoritma Kunci Publik
                                                                                  
       Sandi RSA terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi. Sebelumnya diberikan terlebih dahulu beberapa konsep perhitungan matematis yang digunakan RSA.

2.      PEMBAHASAN
A.    Public-Key Cryptography

Konsep fundamental dari Public-Key Cryptography ditemukan oleh Whitfield Diffie dan Martin Hellman, dan secara terpisah oleh Ralph Merkle.

Sedangkan konsep dasar Public-Key Cryptography terletak pada pemahaman bahwa keys selalu berpasangan: encryption key dan decryption key. Juga perlu diingat bahwa sebuah key tidak dapat digenerate dari key lainnya. Pemahaman encryption dan decryption key sering disebut sebagai public dan private key. Seseorang harus memberikan public key-nya agar pihak lain dapat meng-encrypt sebuah pesan. Decryption hanya terjadi jika seseorang mempunyai private key.


B.     Scenario
       Bagian ini menjelaskan skenario bagaimana public-key cryptosystem bekerja. Saya akan menggunakan partisipan klasik Alice dan Bob sebagai orang-orangyang melakukan pertukaran informasi.

a)      Alice dan Bob setuju untuk menggunakan public-key cryptosystem.
b)      Bob mengirimkan public key-nya kepada Alice.
c)      Alice meng-encrypt pesan yang dibuatkan dengan menggunakan public key milik Bob dan mengirimkan pesan yang sudah di-encrypt kepada Bob.
d)     Bob men-decrypt pesan dari Alice menggunakan private keymiliknya.


C.     Mathematical Notation

       Untuk memahami algoritma RSA, seseorang harus memahami beberapa notasi matematika dasar, teori dan formula. Hal tersebut dibutuhkan untuk mendukung semua kalkulasi yang dilakukan dalam algoritma RSA.

a)      Modulo (didenotasikan dengan 'x mod m' atau 'x % m' dalam beberapa bahasa komputer)
x % m = x mod m = pembagian x dengan m dan mengambil sisanya.

Contoh:  25 mod 5 = 0 karena 5 habis membagi 25
               25 mod 4 = 1 karena 25 / ( 4 * 6 ) menyisakan 1
               x  mod m = x jika dan hanya jika x < m
b)      GCD(A,B)

GCD = Greatest Common Divisor.

GCD(A,B)   = D
GCD(78,32) = 2, karena tidak ada bilangan yang lebih besar dari dua yang membagi 78 dan32.

GCD(A,B) dapat ditemukan dengan menggunakan algoritma extended euclid.

Jika GCD(A,B) = 1 maka A and B dalah coprime satu sama lainnya (dengankata lain, A dan B adalah relatively prime).

D.    Key Generation

Misalkan Alice ingin Bob mengirimnya sebuah pesan melalui jalur yang aman. Alice akan memberikan public keynya kepada Bob dan menyimpan private key untuk dirinya.

a)      Pilih 2 bilangan prima besar seperti p,q dimana p tidak samadengan q.
b)      Hitung M = p x q
c)      Hitung phi(M) = phi(p) * phi(q)
d)     Pilih sebuah integer 'e' dimana 1 < e < phi(M) dan 'e' sertaphi(M) adalah coprime.
e)      Hitung 'd' integer sehingga (d * e) mod M = 1
f)       (M,e) adalah public key dimana M adalah modulo dan e adalaheksponen encryption.
g)      (M,d) adalah private key dimana M adalah modulo dan d adalah
     eksponen decryption.


E.     Encrypting Message

Misalkan Bob ingin mengirim sebuah pesan 'H' kepada Alice.
a)      Alice harus membuat keynya; sehingga ia memiliki private dan public keys.
       private key = (M,d)
       public key  = (M,e)
b)      Mengubah 'H' menjadi sebuah bilangan yang menggunakan alphabet yang valid dengan tabel bilangan. Sebuah contoh mudah adalah mapping A = 1, B = 2 ... Z = 26 sehingga H = 8
c)      C = 8^e (mod M)
       C adalah sebuah bilangan ter-encrypt.
d)     Bob mengirimkan bilangan tersebut kepada Alice sehingga Alice dapat melakukan decode ulang menggunakan private keynya.

F.      Decrypting Message

Misalkan Alice menerima sebuah pesan ter-encrypt, ia akan men-decrypt-nyamenggunakan tahapan-tahapan berikut:
a)      Alice mempunyai private key dari langkah-langkah di atas (M,d)
b)      N = C^d (mod M)
c)      N adalah bilangan. Gunakan konversi table alphabet untuk mengubahN menjadi karakter yang direpresentasikannya.

Contoh Algoritma RSA
|--------------------------------------------------------------------------------------------------|
Jika diketahui :
p = 3
q = 7

Penyelesaian :
n = p.q
   = 3 x 7
   = 21
M= (p-1) (q-1)
    = (3 -1)(7 – 1)
    = 12
e * d mod 12 = 1 (Cari bilangan prima yang jika mod M hasilnya 1)
e = 5
d = 17
public key = (e,n) = (5,21)
private key = (d,n) = (17,21)

S          I           S          J          A         R
83        73        83        74       65         82

|--------------------------------------------------------------------------------------------------|
Proses Enkripsi dan Deskripsi
S = 83
Enkripsi
Deskripsi
C = M ^ e mod n
M = C ^  d mod n
8 ^ 5 mod 21 = 8
8 ^ 17 mod 21 = 8
3 ^ 5 mod 21 = 12
12 ^ 17 mod 21 = 3

I = 73
Enkripsi
Deskripsi
C = M ^ e mod n
M = C ^  d mod n
7 ^ 5 mod 21 = 7
7 ^ 17 mod 21 = 7
3 ^ 5 mod 21 = 12
12 ^ 17 mod 21 = 3

S = 83
Enkripsi
Deskripsi
C = M ^ e mod n
M = C ^  d mod n
8 ^ 5 mod 21 = 8
8 ^ 17 mod 21 = 8
3 ^ 5 mod 21 = 12
12 ^ 17 mod 21 = 3

J = 74
Enkripsi
Deskripsi
C = M ^ e mod n
M = C ^  d mod n
7 ^ 5 mod 21 = 7
7 ^ 17 mod 21 = 7
4 ^ 5 mod 21 = 16
16 ^ 17 mod 21 = 4

A = 64
Enkripsi
Deskripsi
C = M ^ e mod n
M = C ^  d mod n
6 ^ 5 mod 21 = 6
6 ^ 17 mod 21 = 6
4 ^ 5 mod 21 = 16
16 ^ 17 mod 21 = 4

R = 82
Enkripsi
Deskripsi
C = M ^ e mod n
M = C ^  d mod n
8 ^ 5 mod 21 = 8
8 ^ 17 mod 21 = 8
2 ^ 5 mod 21 = 11
11 ^ 17 mod 21 = 2


3.      KESIMPULAN
       RSA merupakan contoh yang powerful dan cukup aman dari Public-Key Cryptography. Berdasarkan matematika, proses yang digunakan berdasarkan fungsi-fungsi trap-door satu arah. Sehingga melakukan encryptiondengan menggunakan public key sangat mudah bagi semua orang, namun proses decryption menjadi sangat sulit.

       Proses decryption sengaja dibuat sulit agar seseorang, walaupun menggunakan Cray supercomputers dan ribuan tahun, tidak dapat men-decrypt pesan tanpa mempunyai private key.

       Perlu diingat juga bahwa pemilihan p*q = M haruslah sebuah bilangan yang sangat besar sehingga sulit dicari eksponen decoding-nya karena sulit melakukan pemfaktoran bilangan prima.

4.      DAFTAR PUSTAKA
            http://ezine.echo.or.id/ezine12/echo12-05.txt

Tidak ada komentar:

Posting Komentar