RSA, 2nd
RSA
Ron (R)ivest, Adi (S)hamir, Leonard (A)dleman
Sebenarnya sederhana saja enkripsi ini.
Bila:
x = teks yang akan dienkripsi
y = teks setelah enkripsi
Maka:
y = xe mod r
Untuk Mengembalikan teks,
x = yd mod r
dimana 0 < x < (r-1)
Sederhana, bukan? HaHa
Oke, kita mungkin tahu apa itu x, apa itu y. Tapi bagaimana dengan e, d, dan r?
- Tentukan bilangan p dan q, dua bilangan ini adalah bilangan prima
- Hitung r = p . q
- Hitung Ø(r) = (p – 1) (q – 1)
- Tentukan e yang relatif prima terhadap Ø(r), bilangan e dan Ø(r) dikatakan relatif prima jika terdapat s dan t sehingga berlaku s . e + t . Ø(r) = 1 dimana s dan t adalah bilangan bulat (baik positif maupun negatif). Oya, ada dua syarat lagi, yaitu e haruslah bilangan bulat positif dan lebih kecil dari r
- Hitung d dengan rumus
d = 1 + (k Ø(r))
e
k adalah bilangan bulat positif (1, 2, 3, dst). Coba nilai k sampai didapatkan nilai d yang bulat.
- Oke, kita sudah punya e, d, dan r.
Baiklah, bagaimana kalau kita mempraktekkan, dengan angka yang kecil tentu saja. HaHa
- p = 3
q = 5
(sebaiknya p dan q adalah dua bilangan yang berbeda, karena bila p = q maka p adalah akar pangkat dua dari r) - r = 3 . 5
r = 15 - Ø(r) = (3 – 1) (5 – 1)
Ø(r) = (2) (4)
Ø(r) = 8 - e = 3, kita uji coba dengan rumus s . e + t . Ø(r) = 1
bila s = 3, e = 3, t= (-1), Ø(r) = 8
3 . 3 + (-1) . 8 = 1
9 – 8 = 1
dimana e < r - Menghitung d
d = 1 + (1 . 8)
3
d = 3
- e = 3
d = 3
r = 15 - Bila x = 12
y = 123 mod 15
y = 3 - Untuk mengembalikan teks,
x = 33 mod 15
x = 12
Cukup mudah, bukan?
Dalam praktek, p dan q haruslah dipilih bilangan prima yang besar. Untuk x bisa didapatkan dari kode ASCII pesan yang akan dienkripsi.
Panduan didapatkan dari buku Kriptografi yang ditulis dengan baik oleh pak Rinaldi Munir. Terima kasih juga kepada ipin untuk panduan mendapatkan bilangan relatif prima.