Public Key : RSA

Algoritma RSA merupakan salah satu algoritma public key yang populer dipakai dan bahkan masih dipakai hingga saat ini. Kekuatan algoritma ini terletak pada proses eksponensial, dan pemfaktoran bilangan menjadi 2 bilangan prima yang hingga kini perlu waktu yang lama untuk melakukan pemfaktorannya.
Algoritma ini dinamakan sesuai dengan nama penemunya, Ron Rivest, Adi Shamir dan Adleman(Rivest-Shamir-Adleman) yang dipublikasikan pada tahun 1977 di MIT, menjawab tantangan yang diberikan algoritma pertukaran kunci Diffie Hellman.

Skema RSA sendiri mengadopsi dari skema block cipher, dimana sebelum dilakukan enkripsi, plainteks yang ada dibagi – bagi menjadi blok – blok dengan panjang yang sama, dimana plainteks dan cipherteksnya berupa integer(bilangan bulat) antara 1 hingga n, dimana n berukuran biasanya sebesar 1024 bit, dan panjang bloknya sendiri berukuran lebih kecil atau sama dengan log(n) +1 dengan basis 2. Fungsi enkripsi dan dekripsinya dijabarkan dalam fungsi berikut :

 C = Me mod n ( fungsi enkripsi )

M = Cd mod n (fungsi dekripsi)

C = Cipherteks

M = Message / Plainteks

e = kunci publik

d= kunci privat

n = modulo pembagi(akan dijelaskan lebih lanjut )

Kedua pihak harus mengetahui nilai e dan nilai n ini, dan salah satu pihak harus memilki d untuk melakukan dekripsi terhadap hasil enkripsi dengan menggunakan public key e. Penggunaan algoritma ini harus memenuhi kriteria berikut :

1. Memungkinkan untuk mencari nilai e, d, n sedemikian rupa sehingga Med mod n = M untuk semua M < n.
2. Relatif mudah untuk menghitung nilai Me mod n dan Cd mod n untuk semua nilai M < n.
3. Tidak memungkinkan mencari nilai d jika diberikan nilai n dan e.

Syarat nilai e dan d ini, gcd(d,e)=1

sebelum memulai penggunaan RSA ini, terlebih dahulu kita harus memiliki bahan – bahan dasar sebagai berikut :

1. p, q = 2 bilangan prima yang dirahasiakan

2. n, dari hasil p.q

3. e, dengan ketentuan gcd (Φ(n), e) =1

4. d, e-1 (mod Φ(n))

Saya akan berikan satu contoh :

1. Pilih 2 bilangan prima, misalnya p = 17 dan q = 11.
2. Hitung n = pq = 17 × 11 = 187.
3. Hitung Φ(n) = (p – 1)(q – 1) = 16 × 10 = 160.
4. Pilih nilai e sedemikian sehingga relatif prima terhadap Φ(n) = 160 dan kurang dari Φ(n); kita pilih e = 7.
5. Hitung d sedemikian sehingga de ≡ 1 (mod 160) dan d < 160.Nilai yang didapatkan d = 23,karena  23 × 7 = 161 = (1 × 160) + 1; d dapat dihitung dengan Extended Euclidean Algorithm.

Nah, nilai e dan d inilah yang kita sebut sebagai Public Key(e) dan Private Key(d).  Pasangan Kunci Publiknya ={7,187} dan Kunci Privatnya = {23, 187}

Sekarang kita aplikasikan dalam proses enkripsi.

Misalnya kita punya M 88. Untuk proses enkripsi, kita akan menghitung C = 887 mod 187.

= 887 mod 187.

=894,432 mod 187

=11

Nah, kita mendapatkan nilai C =11.

Selanjutnya, nilai C ini dikirimkan kepada penerima untuk didekripsi dengan kunci privat miliknya.

M = Cd mod n

= 1123 mod 187

=79,720,245 mod187

= 88

Inilah sekilas dari algoritma RSA. Semoga bermanfaat 🙂

sumber : Cryptography and Network Security, W. Stallings.

Iklan
  1. 10 November 2013 pukul 13:13

    terimakasih sudah sharing boss.. kebetulan ane ada tugas 😀

  2. 11 September 2014 pukul 09:50

    Mikir Algoritma RSA marai kenthir, uteke firaun po yoo..

    • 27 Januari 2015 pukul 11:33

      Nek ora ana sing mikir, internet karo email e sampeyan ora isa aman, mase 🙂

  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: