My first non-final-project student group assignment included in my portfolio. Came from network security class, the objective is to create chat application with designated encryption. We got AES-CBC and forbidden to use any kind of easy-to-use library. We have to write our encryption library in our own.

Me as designer use Node.js to accomplish this, the chat is decrypted entirely in client side by using client-sided Javascript in every browser. Then the communication between two party is provided via library. The encryption implementator, Ihe use some blum-blum-shub trick to deal with key changing.

The code is available on Github.