RSA (Rivest—Shamir—Adleman)
Algoritma RSA Merupakan algoritma kriptografi untuk kunci public (public key cryptography) yang umum digunakan saat ini. RSA merupakan singkatan dari nama akhir penemu algoritma ini: Ron Rivest, Adi Shamir, dan Len Adleman dari MIT.
Algoritma RSA Algoritma tersebut dipatenkan oleh MIT pada tahun 1983 di Amerika Serikat sebagai U.S. Patent 4405829. Paten tersebut berlaku hingga 21 September 2000.
Prinsip RSA “A” menciptakan sebuah public key yang kemudian dipublikasikan agar semua orang yang akan mengirim pesan dapat mengenkripsikan pesan dan data yang akan dikirimkan. Karena public key merupakan one way function maka mustahil bagi orang untuk membalik prosesnya dan mendeskripsikan pesan yang dikirim. Orang yang menciptakan public key tersebut kemudian dapat mendeskripsikan pesan tersebut dengan menggunakan privat key yang dimilikinya sendiri sehingga dengan menggunakan algoritma ini hanya A sajalah yang dapat mendeskripsikan pesan-pesan dan data-data yang dikirim.
Rumus dari RSA Enkripsi Dekripsi Note: Public Key = e, n Cipher = Plaintext ^ e (mod n) Dekripsi Plaintext = Cipher ^ d (mod n) Note: Public Key = e, n Private Key= d, n
Prosedur Pembuatan Key Pilih dua buah bilangan prima sembarang, p dan q. (Diutamakan bilangan prima terbesar) Misal: p = 5, q = 11 Hitung n = p q. Sebaiknya p q, sebab jika p = q maka n = p2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari n. n = p . q n = 55 Hitung (n) = (p – 1)(q – 1). (n) = (5-1)(11-1) (n) = 40
Prosedur Pembuatan Key (Cont.) 4. Buat kunci publik, PK (Public Key), yang relatif prima terhadap (r) Relatif prima = “Dua buah bilangan dikatakan relatif prima jika FPB (Faktor Persekutuan Terbesar) dari dua bilangan tersebut adalah 1 algoritma Euclid” Dalam kasus ini (r) = 40, maka, n = 2, => FPB (2,40) = 2 (Salah) n= 3, => FPB (3,40) = 1 (BENAR) karena FPB (3,40) = 1, maka PK = 3
Prosedur Pembuatan Key (Cont.) 5. Buat kunci private, SK (Secret Key / Private Key), dengan rumus: SK = 1 + n (n) / PK *Syarat SK = Bilangan Bulat Misal: n=0, 1+0(40)/3 = 1/3 (Salah) n=1, 1+1(40)/3 = 41/3 (Salah) n=2, 1+2(40)/3 = 27 (BENAR) Karena SK = 27 (Bilangan Bulat), maka SK = 27 Jadi PK = (3,55) SK = (27,55)
Contoh 1 ENKRIPSI Plaintext = dhany Ubah kedalam angka (ASCII): 68 72 65 78 89 Menjadi : 6872657889
Contoh 1 (Cont) Kemudian Enkripsikan dengan rumus: Cipher = Plaintext ^ e (mod n) Misal: Public Key (3,55) Private Key (27,55) Menjadi: D = 68 => 68^3(mod 55) = 52 H = 72 => 72^3(mod 55) = 18 A = 65 => 65^3(mod 55) = 10 N = 78 => 78^3(mod 55) = 12 Y = 89 => 89^3(mod 55) = 34 Jadi Cipher Text = 52 18 10 12 34 4 DC2 LF FF “
Contoh 1 (Cont) DEKRIPSI Cipher : 4 DC2 LF FF “ Ubah Kedalam Kode ASCII: 4 DC2 LF FF “ 52 18 10 12 34 Menjadi:5218101234
Contoh 1 (Cont) Kemudian Dekripsikan dengan rumus: Plaintext = Chipertext ^ d (mod n) Misal: Public Key (3,55) Private Key (27,55) Menjadi: 4 = 52 => 52^27(mod 55) = 68 DC2 = 18 => 18^27(mod 55) = 72 LF = 10 => 10^27(mod 55) = 65 FF = 12 => 12^27(mod 55) = 78 “ =34=> 34^27(mod 55) = 89 Jadi PlainText = 68 72 65 78 89 D H A N Y
Contoh 2 ENKRIPSI Plaintext = Haris Ubah kedalam angka (ASCII): H A R I S 72 65 82 73 83 Menjadi : 7265827383
Contoh 2 (Cont) Kemudian Enkripsikan dengan rumus: Cipher = Plaintext ^ e (mod n) Misal: Public Key (5,133) Private Key (65,133) Menjadi: H = 72 => 72^5(mod 133) = 116 A = 65 => 65^5(mod 133) = 88 R = 82 => 82^5(mod 133) = 24 I = 73 => 73^5(mod 133) = 61 S = 83 => 83^5(mod 133) = 125 Jadi Cipher Text = 116 88 24 61 125 t X CAN = }
Contoh 2 (Cont) DEKRIPSI Cipher : t X CAN = } Ubah Kedalam Kode ASCII: 116 88 24 61 125 Menjadi:116882461125
Contoh 2 (Cont) Kemudian Dekripsikan dengan rumus: Plaintext = Chipertext ^ d (mod n) Misal: Public Key (5,133) Private Key (65,133) Menjadi: t = 11 => 116^65(mod 133) = 72 X = 68 => 88^65(mod 133) = 65 CAN = 82 => 24^65(mod 133) = 82 = = 73 => 61^65(mod 133) = 73 } =83 => 125^65(mod 133) = 83 Jadi PlainText = 72 65 82 73 83 H A R I S
Sekian dan Terima Kasih