A cryptography project in two halves. First I built a hybrid system that borrows from the Chinese Remainder Theorem and RSA. Then I turned around and attacked it, using the exposed public key to show where it breaks.
The build side sets up the keys and runs messages through encryption and decryption. The attack side is the interesting part. It takes what a real observer would actually have, the public key, and works backward to recover what should have stayed secret. Seeing the two side by side makes it clear that a scheme can look fine and still leak everything if the wrong piece is public.
It runs as a Python notebook, so the code, the math, and the results sit together and you can read straight through the whole thing.