PROJECT 1: symmetric-key encrypted message and its digital signature
What does each program do?
KEY GENERATION:
- Creates a pair of RSA public and private keys for sender and receiver.
- Saves the modulus and exponent of each key to a new file.
- Creates the symmetric key based on a 16 character user input.
SENDER:
- Calculates the SHA-256 hash of the message M.
- Depending on user’s input it can flip the initial bit and saves the hash to a file named "message.dd".
- Encrypts the hash with the sender's private key using RSA and save it to "message.ds-msg" -Appends the plain message to "message.ds-msg" -Calculates the AES Encryption of (RSA-En Kx– (SHA256 (M)) || M) using the symmetric key and saves it to "message.aescipher".
RECEIVER:
- Calculates the AES Decryption of the cipher message from "message.aescipher" using the symmetric key (Kxy).
- Reads the first 128 bytes of “message.ds-msg” to get the digital signature and calculates the RSA decryption of it.
- Reads the leftovers of “message.ds-msg”, calculates its SHA256 hash value and compares it to the RSA decrypted digital signature from “message.ds-msg”
Homework 2: symmetric encryption algorithm TEA