Cryptography for Beginners is a 10-lab introduction to applying common cryptographic building blocks from a Linux terminal. Using OpenSSL and small Python standard-library examples, you generate keys, encrypt and decrypt files, compute hashes and HMACs, sign data, derive shared secrets, and inspect certificates.
The labs emphasize observable workflows rather than mathematical proofs: create an artifact, examine its contents, verify the intended property, and test what happens when data or trust changes. Later labs connect individual primitives through a small certificate authority and an RSA-plus-AES hybrid encryption exercise.
What You Will Learn
After completing this course, you will be able to:
- Install and verify OpenSSL, Python, pip, and the Python
cryptographypackage in an Ubuntu environment - Generate random key material and use AES-256-CBC with OpenSSL to encrypt, decrypt, and compare files
- Compute SHA-256 digests and HMAC-SHA256 values, explain their different purposes, and implement basic hashing and HMAC examples with Python
- Generate RSA key pairs, encrypt with a public key, decrypt with a private key, and create and verify RSA signatures
- Generate Diffie–Hellman parameters and key pairs for two parties and confirm that both derive the same shared secret
- Create self-signed X.509 certificates and CSRs, operate a small lab certificate authority, verify a trust chain, and simulate revocation with a CRL
- Combine RSA key transport with AES data encryption to complete and reverse a hybrid encryption workflow
Who This Course Is For
This course is for cybersecurity beginners, developers, system administrators, and IT learners who want concrete practice with cryptographic files and commands before studying protocols or secure application design in greater depth.
Prerequisites: No advanced mathematics is required. Basic Linux terminal and file-handling skills are recommended, along with enough Python familiarity to read two short examples using hashlib and hmac.
Learning environment: All 10 guided labs run in an Ubuntu 22.04 terminal workspace. You install or verify tools, create keys and certificates under the lab project directory, and use test messages and a simulated CA; no external system is targeted.
Frequently Asked Questions
Do I need strong mathematics to understand the course?
No. The labs explain the purpose of symmetric encryption, public-key operations, hashing, authentication codes, signatures, key exchange, and certificates at a practical level. They do not derive the underlying number theory or provide a formal cryptography curriculum.
How much programming is involved?
Most work uses OpenSSL commands. Python appears in small SHA-256 and HMAC examples using the standard hashlib and hmac modules. The cryptography package is installed and import-checked during setup, but the course does not build a Python cryptography application with it.
Does the course teach cryptanalysis or how to break encryption?
No. You test integrity failures, signature tampering, trust-chain behavior, and certificate revocation, but you do not crack ciphers, attack keys, recover passwords, or analyze implementation side channels.
Are these examples ready to copy into a production system?
No. They are compact demonstrations using local key files, self-signed certificates, a simulated CA, and simplified command workflows. In particular, the raw SHA-256 password example is not a production password-storage design; real systems should use a password-specific algorithm such as Argon2, scrypt, bcrypt, or appropriately configured PBKDF2, together with reviewed libraries, key management, authenticated encryption, and current security guidance.





