Files
crypto-hw3/part1/alice.py
T
2025-09-23 09:53:12 -05:00

34 lines
614 B
Python

from Crypto.Cipher import AES
from Crypto.Util.Padding import pad
from Crypto.Random import get_random_bytes
# Generate new secret key
with open('key', 'wb') as f:
k1 = get_random_bytes(16)
f.write(k1)
plaintext = input("Please input the message: ")
# Pad plaintext
plaintext = plaintext.encode()
plaintext = pad(plaintext, 16)
# Read Key
with open('key', 'rb') as f:
aes_key = f.read()
assert k1 == aes_key
# Encrypt and send (write) message
cipher = AES.new(aes_key, AES.MODE_CBC, iv=b'0'*16)
ciphertext = cipher.encrypt(plaintext)
with open('ctext', 'wb') as f:
f.write(ciphertext)