python software

Task: Given a text file, write a software program that allows to:

– Encrypt the text file using symmetric key algorithm (AES)

– Decrypt a text file using symmetric key algorithm (AES)

– Generate an asymmetric key pair (public and private)

– Encrypt the text file using the public key (RSA)

– Decrypt the text file using the private key (RSA)

– Generate the hash digest of the text file (MD5)

– Share a symmetric key between a client and server using Diffie-Hellman protocol.