Skip to content

RSA Cryptography Algorithm

  • 5 min read

Penulis: Dhimaz Purnama Adjhi, Mohamad Rizal Hanafi, Rastra Wardana Nanditama

Publish & Editor: Dhimaz Purnama Adjhi 

Apa Itu RSA Cryptography Algorithm

RSA merupakan algoritma kriptografi public key yang paling terkenal dan banyak pengaplikasiannya. ?Algoritma kriptografi kunci publik mengacu pada sistem kriptografi yang mana memerlukan dua kunci yang berbeda, satu untuk mengenkripsi plaintext dan satunya lagi untuk mendekripsi ciphertext. Penyandian public key menggunakan algoritma kunci asimetris, sandi dibuat menggunakan public key kemudian dikembalikan ke pesan aslinya menggunakan private key. ?Public key digunakan untuk mengubah suatu pesan menjadi bentuk yang tidak dapat dibaca dan dapat didekripsi menggunakan private key yang cocok.

Dengan kata lain, seseorang yang memiliki public key dapat melakukan enkripsi pesan yang ditujukan pada penerima tertentu dan penerima dengan private key hanya dapat mendekode pesan yang telah di enkripsi public key. ?Setiap kunci hanya bisa melakukan salah satu fungsi saja, kunci yang akan disebarkan adalah public key, sedangkan kunci yang satunya akan dirahasiakan atau disebut sebagai private key. ?Penggunaan sistem ini harus membuat public key dan private key yang saling berpasangan secara matematis. Dengan menyebarkan public key, pembuat kunci memberikan hak pada siapapun yang mendapatkan public key untuk mengirim pesan aman yang hanya bisa dibaca oleh si pembuat kunci. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan bulat yang besar menjadi faktor-faktor prima, ?Semakin besar bilangan yang difaktorkan, maka akan semakin sulit pemfaktorannya dan semakin kuat pula algoritma RSA.

Sejarah RSA Cryptography Algorithm

Algoritma Kriptografi RSA dibuat oleh tiga peneliti dari MIT (Massachusetts Institute of Technology), yaitu Ronald Rivest (Matematikawan), Adi Shamir (Kriptografer), dan Leonard Adleman (Ilmuwan Komputer), pada tahun 1976. Mereka bertiga dipertemukan membuat dan meneliti algoritma kriptografi tersebut dengan background pendidikan yang berbeda di LAB Artificial Intelligence Kampus MIT. HIngga Akhirnya, Algoritma Kriptografi RSA tercipta dan dari nama RSA tersebut memiliki arti yaitu gabungan nama dari mereka yang membuat dan meneliti, R = Rivest, S = Shamir, dan A = Adleman.

Properti RSA Cryptography Algorithm

p dan q bilangan prima (rahasia)

n = p * q (tidak rahasia)

F(n) atau m = (p-1)(q-1) (rahasia)

e (kunci enkripsi) (tidak rahasia)

d (kunci dekripsi) (rahasia)

m (plaintext) (rahasia)

c (ciphertext) (tidak rahasia)

  1. Proses pembuatan kunci
    1. Prosedur awal pada algoritma RSA adalah memilih dua bilangan prima p dan q. Dimana keduanya haruslah bilangan prima dan bukan nilai yang sama.
    2. Kalikan p dan q sehingga menghasilkan nilai n.
    3. Buatlah kunci publik e yang relatif prima terhadap m, dimana m = (p – 1) (q – 1).
    4. Untuk mendapatkan kunci pribadi d kalkulasi nilai p, q, e, menggunakan kekongruenan  ed = 1 mod m.
  2. Proses Enkripsi
    1. Ubah plaintext ke bentuk ASCII.
    2. Lalu bagi menjadi beberapa blok b1, b2, b3, b4, …, nilai bi tidak lebih dari n-1.
    3. Rumus Enkripsi Ci=Pi^e mod n.
    4. Lalu ubah ke bentuk teks.
  3. Proses Dekripsi
    1. Susun nilai ASCII ke dalam jumlah blok yang sama seperti pada tahap 2. a.
    2. Rumus Dekripsi Pi=Ci^d mod n.
    3. Lalu kembalikan ke bentuk semula.

Bagaimana Cara Melakukan RSA Cryptography Algorithm?

Misalkan Rastra Wardana ingin mengirim pesan kepada Rizal Hanafi namun Rastra Wardana tidak ingin Dhimaz Purnama dapat membaca pesan tersebut. Pesan yang akan dikirim Rastra Wardana berisi tulisan “TEKKOM”, untuk itu Rastra Wardana mengenkripsi pesan tersebut menggunakan enkripsi RSA.

  1. Proses pembuatan kunci
    1. p = 71; q =79
    2. n = 5609
    3. e=97; m= 5460
    4. Dalam kekongruenan ed = 1 mod m dapat dihubungkan dengan ed = 1 +k*m yang jika disusun menjadi d =1+k*m/e lalu coba setiap kemungkinan k=1,2,3,4,5, …, sampai mendapatkan nilai d yang bulat. Pada contoh ini diperoleh nilai d=2533.
  2. Proses Enkripsi
    1. Ubah plainteks ke kode ASCII
  1. Dalam kasus ini pesan tersebut akan dibagi menjadi 4 blok menjadi p1=846; p2=975; p3=757; p4=977. dimana setiap blok tidak lebih dari n-1=2278.
  2. Lakukan enkripsi
PersamaanProsesNilai C
C1=P1^e mod nC=846^97 mod 56094954
C2=P2^e mod nC=975^97 mod 56094043
C3=P3^e mod nC=757^97 mod 56091249
C4=P4^e mod nC=977^97 mod 56094194
didapatC = 4954404312494194
  1. Ubah kedalam bentuk text
  1. Proses Dekripsi
    1. Bagi lagi kode ASCII kedalam 4 blok 4954 4043 1249 4194
  1. Lakukan Dekripsi
PersamaanProsesNilai D
P1=C1^d mod nC=4954^2533 mod 5609846
P2=C2^d mod nC=4043^2533 mod 5609975
P3=C3^d mod nC=1249^2533 mod 5609757
P4=C4^d mod nC=4194^2533 mod 5609977
didapatP = 846975757977
  1. Ubah kode ASCII ke plaintext TEKKOM.

Pada akhirnya Rastra Wardana dapat mengirimkan pesan yang ingin dikirim dengan tenang karena sekarang hanya orang yang memiliki kunci pribadi yang dapat membuka pesan tersebut. Sedikit catatan pada skenario aslinya variabel p dan q harus menggunakan nilai yang besar agar tidak mudah difaktorkan.