Menerapkan Algoritma RSA menggunakan Python
Artikel ini menjelaskan apa sebenarnya algoritma RSA dalam kriptografi dan menunjukkan bagaimana mengimplementasikan algoritma RSA untuk enkripsi dan dekripsi data menggunakan Python. Di sini, data mengacu pada angka. Anda juga dapat menggunakan data string untuk enkripsi dan dekripsi menggunakan algoritma ini.
Algoritma RSA adalah metode yang banyak digunakan untuk mengenkripsi dan mendekripsi pesan. Itu dinamai penciptanya, Ron Rivest , Adi Shamir , dan Leonard Adleman , yang mengembangkannya pada tahun 1977 . Algoritme RSA didasarkan pada kesulitan pemfaktoran bilangan besar, dan secara luas dianggap sebagai metode yang aman untuk mengenkripsi data.
Untuk memahami cara kerja algoritma RSA, pertama-tama kita perlu memahami konsep kunci publik dan privat. Dalam algoritma RSA, setiap pengguna memiliki sepasang kunci: kunci publik dan kunci privat. Kunci publik tersedia bagi siapa saja yang ingin mengirim pesan ke pengguna, dan digunakan untuk mengenkripsi pesan. Kunci pribadi dirahasiakan dan digunakan untuk mendekripsi pesan.
Berikut adalah contoh cara kerja algoritma RSA:
- Katakanlah Gwen ingin mengirim pesan ke Peter. Dia mencari kunci publik Peter dan menggunakannya untuk mengenkripsi pesan.
- Pesan terenkripsi dikirim ke Peter.
- Peter menggunakan kunci pribadinya untuk mendekripsi pesan dan membacanya.
Begini cara kerjanya secara lebih rinci:
- Pertama, Gwen dan Peter menyepakati dua bilangan prima besar, p, dan q.
- Mereka menggunakan bilangan prima ini untuk menghitung bilangan ketiga, n, yang merupakan produk dari p dan q. Nomor ini dipublikasikan.
- Mereka juga menghitung angka keempat, yang dikenal sebagai "totient," yang merupakan jumlah bilangan bulat positif kurang dari n yang koprime ke n. Nomor ini juga diumumkan.
- Gwen dan Peter masing-masing menghasilkan kunci rahasia, yang dikenal sebagai "kunci pribadi". Kunci ini adalah angka yang lebih kecil dari totient dan koprima dengan totient.
- Mereka kemudian menggunakan kunci pribadi mereka untuk menghitung kunci publik mereka, yang merupakan angka yang relatif prima terhadap totient. Kunci publik ini tersedia bagi siapa saja yang ingin mengirim pesan ke pengguna.
Algoritma RSA memiliki beberapa keunggulan. Ini relatif sederhana untuk diterapkan, dan digunakan secara luas karena dianggap sebagai metode enkripsi data yang aman. Selain itu, algoritma RSA adalah algoritma "kunci publik", yang berarti bahwa kunci yang digunakan untuk enkripsi dan dekripsi berbeda. Ini memungkinkan pengguna untuk berkomunikasi tanpa harus bertukar kunci rahasia.
Singkatnya, algoritma RSA adalah metode yang banyak digunakan untuk mengenkripsi dan mendekripsi pesan. Ini didasarkan pada kesulitan memfaktorkan angka besar, dan dianggap sebagai metode yang aman untuk mengenkripsi data. Ini memiliki beberapa keunggulan, termasuk kesederhanaannya dan penggunaan kunci publik dan privat.
Seluruh algoritma RSA dengan kata sederhana,
- Pilih p , q ( p dan q keduanya prima dan p tidak sama dengan q )
- Hitung n = p * q
- Hitung totient, t = (p -1) * (q — 1)
- Pilih e menggunakan gcd(t, e) = 1 di mana 1 < e < t
- Hitung d menggunakan (d * e % t = 1)
- Pertimbangkan e sebagai Kunci Publik dan d sebagai Kunci Pribadi.
- Untuk enkripsi, Cipher Text = (Pesan ^ e) % n (di mana, Pesan < n)
- Untuk dekripsi, Message = (Cipher Text ^ d) % n
from math import gcd
# defining a function to perform RSA approch
def RSA(p: int, q: int, message: int):
# calculating n
n = p * q
# calculating totient, t
t = (p - 1) * (q - 1)
# selecting public key, e
for i in range(2, t):
if gcd(i, t) == 1:
e = i
break
# selecting private key, d
j = 0
while True:
if (j * e) % t == 1:
d = j
break
j += 1
# performing encryption
ct = (message ** e) % n
print(f"Encrypted message is {ct}")
# performing decryption
mes = (ct ** d) % n
print(f"Decrypted message is {mes}")
# Testcase - 1
RSA(p=53, q=59, message=89)
# Testcase - 2
RSA(p=3, q=7, message=12)
Encrypted message is 1394
Decrypted message is 89
Encrypted message is 3
Decrypted message is 12
Jika dirasa bermanfaat, bagikan ini ke teman-teman Anda, dan jangan lupa untuk mengikuti.
Sampai jumpa di blog lain sampai nanti bye

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































