def test_ElGamal(num_bit, message): print("\n------------------------------------------------------") # Generate random prime numbers p = BlumBlumShub.generate_prime(num_bit) # Test generate_keypair which returns public key ( g, p, h) and the private key (g, p, x) public, private = ElGamal.generate_keypair(p) print("\n------------------------------------------------------") encrypted_msg = ElGamal.encrypt(public, message) print("\n------------------------------------------------------") decrypted_msg = ElGamal.decrypt(private, encrypted_msg) print("\n------------------------------------------------------") eve_decrypted_msg = ElGamal.eve(public, encrypted_msg) return decrypted_msg, eve_decrypted_msg
if type_encryption == "1": # Use Blum Blum Shub algorithm to generate random prime numbers p = BlumBlumShub.generate_prime(num_bit) q = BlumBlumShub.generate_prime(num_bit) RSA.generate_keypair(p, q) # If encryption algorithm is El-Gamal elif type_encryption == "2": # Use Blum Blum Shub algorithm to generate random prime number p = BlumBlumShub.generate_prime( num_bit) # 127 #999416681 #2860486313 #127 public, private = ElGamal.generate_keypair(p) # Otherwise, function 2 - Encrypt a message elif function == "2": # Get the message from user message = input("Please enter your message : ") # Get the public key from user public = input( "Please enter the public key ( (g, p, h) for El-Gamal /(e,n) for RSA ): " ) print( "\n------------------------------------------------------" )