Crypto - Lab - 8.ipynb - Colab
Crypto - Lab - 8.ipynb - Colab
ipynb - Colab
Roll NO : 232010012
Lab 8
a = random.randint(2, 10)
# Modular exponentiation
def power(a, b, c):
x = 1
y = a
while b > 0:
if b % 2 != 0:
x = (x * y) % c
y = (y * y) % c
b = int(b / 2)
return x % c
# Asymmetric encryption
def encrypt(msg, q, h, g):
en_msg = []
k = gen_key(q) # Private key for sender
s = power(h, k, q)
p = power(g, k, q)
i t(" ^k d " )
https://colab.research.google.com/drive/1M2v0CBfp1Cd2MaXZhe6IzsO-yR77_i5E#scrollTo=DE… 1/3
11/9/24, 9:17 PM 232010012_crypto_lab_8.ipynb - Colab
print("g^k used : ", p)
print("g^ak used : ", s)
for i in range(0, len(en_msg)):
en_msg[i] = s * ord(en_msg[i])
return en_msg, p
# Driver code
def main():
msg = input("Enter a message to encrypt: ")
print("Original Message :", msg)
en_msg, p = encrypt(msg, q, h, g)
dr_msg = decrypt(en_msg, p, key, q)
dmsg = ''.join(dr_msg)
print("Decrypted Message :", dmsg)
if __name__ == '__main__':
main()
https://colab.research.google.com/drive/1M2v0CBfp1Cd2MaXZhe6IzsO-yR77_i5E#scrollTo=DE… 2/3