Cryptography with OpenSSL
Working through the primitives behind secure communication — symmetric and asymmetric encryption, hashing, signatures, and certificates — with OpenSSL as the lab bench.
The brief
The goal was to get hands-on with the basic services of security rather than treat them as definitions: symmetric encryption, asymmetric encryption, hashing, digital signatures and verification, and certification. OpenSSL was the workbench.
What I worked through
- Symmetric encryption — encrypting and decrypting with a shared key, and seeing how quickly the hard part becomes key distribution rather than the cipher itself.
- Asymmetric encryption — generating key pairs and using the public/private relationship for encryption and verification.
- Hashing — producing digests to check integrity, and separating "the bytes changed" from "the sender is who they claim to be".
- Digital signatures — signing data, verifying the signature, and understanding what a valid signature actually proves.
- Certificates — looking at how a public key is bound to an identity, and how a chain of trust is built and checked.
What clicked
OpenSSL makes the primitives visible. A key, a digest, a signature and a certificate stop being abstract nouns when you have to pass the right arguments and inspect the result. The lab also made the limits clear: cryptography protects a message, but it does not repair a broken key exchange, a leaked private key, or a careless identity check.
Tools
OpenSSL · Symmetric encryption · Asymmetric encryption · Hashing · Digital signatures · PKI