π Security & Cryptography
Protecting systems and secrets. 51 topics, from beginner to advanced.
Security and cryptography protect data and systems from attackers. This area covers encryption, hashing, digital signatures, authentication and common vulnerabilities such as injection and weak passwords. Each topic explains both how a protection works and how it is typically attacked, which is the basis of defensive engineering.
Who this area is for
Developers who handle user data, students of cybersecurity, and anyone responsible for keeping a system or its secrets safe.
Real-world use cases
- Storing passwords as salted hashes so a database leak does not reveal them.
- Encrypting traffic with TLS so network observers cannot read it.
- Preventing SQL injection by using parameterized queries.
- Storing user passwords with a slow, salted hash instead of plain text.
- Rotating an API key that was accidentally committed to a public code repository.
Topics in Security & Cryptography
Beginner (17)
- CIA Triad β Confidentiality, integrity and availability goals of security.
- Threats and Vulnerabilities β Potential dangers and the weaknesses they exploit.
- Passwords and Hashing β Storing credentials as one-way digests.
- Salting β Adding random data to hashes to defeat precomputed attacks.
- Multi-Factor Authentication β Verifying identity with several independent proofs.
- Malware Types β Viruses, worms, trojans and ransomware.
- Phishing β Deceptive messages tricking users into revealing secrets.
- Social Engineering β Manipulating people rather than systems.
- Principle of Least Privilege β Granting only the access needed to do a task.
- Authentication vs Authorization β Proving who you are versus what you may do.
- Access Control Models β DAC, MAC and RBAC schemes.
- Encryption Basics β Transforming data so only key holders can read it.
- Symmetric Encryption β Encryption using one shared secret key.
- AES β Widely used block cipher standard.
- Asymmetric Encryption β Encryption with paired public and private keys.
- RSA β Public-key system based on factoring large numbers.
- Hash Functions β Functions mapping data to fixed-size fingerprints.
Intermediate (17)
- SHA Family β Standard cryptographic hash algorithms.
- Digital Signatures β Proving origin and integrity with private keys.
- Public Key Infrastructure β Certificates and authorities binding keys to identities.
- Diffie-Hellman Key Exchange β Agreeing on a shared secret over an open channel.
- Block Cipher Modes β Schemes like CBC and GCM for encrypting long messages.
- Message Authentication Codes β Keyed tags verifying message integrity.
- SQL Injection β Attack inserting malicious SQL through user input.
- Cross-Site Scripting β Attack injecting script into pages seen by others.
- CSRF β Attack tricking a user's browser into unwanted requests.
- Buffer Overflow β Writing past a buffer's end to corrupt memory.
- Denial of Service β Overwhelming a service to make it unavailable.
- Man-in-the-Middle Attacks β Interception of communication between two parties.
- Network Intrusion Detection β Monitoring traffic to spot attacks.
- Security Auditing and Logging β Recording events to investigate incidents.
- Penetration Testing β Authorized simulated attacks to find weaknesses.
- Secure Coding β Writing software that resists exploitation.
- OWASP Top Ten β Catalog of the most critical web application risks.
Advanced (17)
- Elliptic Curve Cryptography β Public-key crypto with small keys based on curve math.
- Zero-Knowledge Proofs β Proving a statement true without revealing why.
- Homomorphic Encryption β Computing on encrypted data without decrypting.
- Post-Quantum Cryptography β Algorithms resistant to quantum attacks.
- Side-Channel Attacks β Extracting secrets from timing, power or cache behavior.
- Return-Oriented Programming β Chaining existing code snippets to bypass non-executable memory.
- ASLR and Stack Canaries β Mitigations randomizing layout and detecting stack corruption.
- Sandboxing β Confining code to limit what it can affect.
- Trusted Execution Environments β Hardware-isolated enclaves protecting code and data.
- Reverse Engineering β Analyzing binaries to understand their behavior.
- Digital Forensics β Collecting and analyzing evidence from digital systems.
- Threat Modeling β Systematically identifying and prioritizing threats.
- Zero Trust Architecture β Never trusting any request implicitly regardless of location.
- Secure Multi-Party Computation β Jointly computing results while keeping inputs private.
- Supply Chain Security β Protecting the dependencies and tooling software relies on.
- Cryptographic Protocol Design β Combining primitives into secure communication protocols.
- Differential Privacy β Adding noise so aggregate results hide individuals.
How to study Security & Cryptography
Learn each attack by reading how it works and then by reproducing it on a practice system you own, such as a deliberately vulnerable training app. Then write the fix and confirm that the attack no longer works. Only test systems you have permission to test.
Frequently asked questions
Should I write my own encryption?
What is the difference between encryption and hashing?
How should passwords be stored?
Is security something I can add at the end of a project?
Should I roll my own encryption?
Open the interactive Security & Cryptography area Take the Security & Cryptography quiz
Other areas
- π» Programming Fundamentals
- π§± Data Structures
- βοΈ Algorithms
- π Computer Architecture & Logic
- π₯οΈ Operating Systems
- π Computer Networks
- ποΈ Databases
- ποΈ Software Engineering
- πΈοΈ Web Development
- β Theory & Discrete Math
- 𧬠Languages & Compilers
- π€ AI & Machine Learning
- βοΈ Distributed Systems & Cloud
- π¨ Graphics, Vision & Media
- π Math for Computing
- π Concurrency & Parallelism
- π± Mobile, Embedded & IoT
- π οΈ DevOps & Tooling
- π Emerging & Frontier Topics