← Back Published on

Encryption Implementation and Breaking

Python, OpenSSL, C language

     For this project, they introduced us to historical encryption algorithm such as Vigenere cipher, DES, MD5, SHA256, RSA (small key length). We were explained how those encryption and hash algorithm work, the logic behind them and got told some guidance on how to decipher them which is essentially the main goal of the project. 

     We could use any programming language to write the decryption algorithms, we decided to use Python for its performances and its accessibility. We coded different algorithm according to some decryption method including Babbage and Kasiki method, Friedman test and Bazeries method, most of them being to decode Vigenere cipher. 

     We got introduced to OpenSSL as well and by using OpenSSL commands we started by encrypting password and files with DES, then we generated RSA private and public keys in order to encrypt the DES passwords. Finaly we combined DES and RSA encryption with hash algorithm, in our case MD5 and SHA256, to safely transfer files to our pair and decrypt them in order to read the data.