RSA
RSA
CODE
import random
from math import gcd
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
def generate_prime_candidate(length):
candidate = random.randrange(2**(length-1), 2**length)
if candidate % 2 == 0:
candidate += 1
return candidate
def generate_prime_number(length=8):
candidate = generate_prime_candidate(length)
while not is_prime(candidate):
candidate = generate_prime_candidate(length)
return candidate
def generate_keypair(keysize):
p = generate_prime_number(keysize)
q = generate_prime_number(keysize)
while q == p:
q = generate_prime_number(keysize)
n = p * q
phi = (p - 1) * (q - 1)
e = random.randrange(1, phi)
while gcd(e, phi) != 1:
e = random.randrange(1, phi)
d = modular_inverse(e, phi)
if __name__ == "__main__":
keysize = 8
print("Generating RSA key pairs...")
public_key, private_key = generate_keypair(keysize)
print(f"Public Key: {public_key}")
print(f"Private Key: {private_key}")
OUTPUT