This is the repository for the programming assignments for the Yale Computer Science course Cryptography and Cyber Security, offered in Fall 2018. There were five programming assignments, described below:
Assignment1- Implement the padding oracle attack on ciphertext and IV encrypted with a block cipher using CBC mode and PKCS5 padding.
Assignment2- Implement a client and server that run SSL/TLS and communicate with each other. Then implement a relay that acts as the 'man in the middle' for the client and server.
Assignment3- Generate a self-signed signature and setup a server that runs TLS to securely submit your homework PDF file to the TA (the file here is the client accepting homework)
Assignment4- Use Stem to run Tor and access a webpage using PycURL.
Assignment5- Implement the t-out-of-n Shamir secret sharing protocol.