Skip to content

Commit

Permalink
update MindMap (#1)
Browse files Browse the repository at this point in the history
  • Loading branch information
HIGH0101 authored Sep 20, 2024
1 parent 23920ff commit 351cc83
Showing 1 changed file with 119 additions and 74 deletions.
193 changes: 119 additions & 74 deletions map.md
Original file line number Diff line number Diff line change
@@ -1,71 +1,114 @@
---
title: Cryptography Roadmap for CTF
title: Cryptography Mindmap
markmap:
colorFreezeLevel: 5
---

## Classical Cryptography
- **Permutation Ciphers**
- ==Rearranges the letters or groups of letters in a message without changing them==
- **Rail Fence Cipher**: Arranges text in a zigzag pattern on multiple lines and then reads it row by row.
- **Columnar Transposition Cipher**: Writes the message in rows and reads it in columns according to a keyword.

### <span title="Rearranges the letters or groups of letters in a message without changing them">**Permutation Ciphers**</span>

- <span title="Arranges text in a zigzag pattern on multiple lines and then reads it row by row.">Rail Fence Cipher</span>

- <span title="Writes the message in rows and reads it in columns according to a keyword.">Columnar Transposition Cipher</span>

### <span title="Replaces each letter in the plaintext with another letter, often according to a fixed system">**Substitution Ciphers**</span>

- <span title="Shifts each letter by a fixed number in the alphabet">Caesar Cipher</span>

- <span title="Uses a keyword to determine shifts for each letter, making it harder to break.">Vigenère Cipher</span>

- <span title="Reverses the alphabet (A = Z, B = Y, etc.).">Atbash Cipher</span>

- **Substitution Ciphers**
- ==Replaces each letter in the plaintext with another letter, often according to a fixed system==
- **Caesar Cipher**: Shifts each letter by a fixed number in the alphabet.
- **Vigenère Cipher**: Uses a keyword to determine shifts for each letter, making it harder to break.
- **Atbash Cipher**: Reverses the alphabet (A = Z, B = Y, etc.).
- **Playfair Cipher**: Uses a 5x5 grid of letters and digraphs to encrypt.
- **Hill Cipher**: Encrypts letters in blocks using matrix multiplication with a key matrix.
- <span title="Uses a 5x5 grid of letters and digraphs to encrypt.">Playfair Cipher</span>

- <span title="Encrypts letters in blocks using matrix multiplication with a key matrix.">Hill Cipher</span>

- **Polyalphabetic Ciphers**
- ==A type of substitution cipher that uses multiple substitution alphabets to encrypt the message. It changes the substitution system at different points in the text, making it more resistant to frequency analysis==
- **Vigenère Cipher**: Uses a keyword to determine shifts for each letter, applying a different substitution alphabet at each position.
- **Beaufort Cipher**: Similar to the Vigenère Cipher but uses subtraction in place of addition during encryption.
- **Example in Use:**
- If the plaintext is "HELLO" and the key is "KEY", the letters are shifted based on the positions of "K", "E", and "Y", making it harder to detect patterns.
### <span title="A type of substitution cipher that uses multiple substitution alphabets to encrypt the message. It changes the substitution system at different points in the text, making it more resistant to frequency analysis">**Polyalphabetic Ciphers**</span>

- <span title="Uses a keyword to determine shifts for each letter, applying a different substitution alphabet at each position">Vigenère Cipher</span>
- <span title="Similar to the Vigenère Cipher but uses subtraction in place of addition during encryption.">Beaufort Cipher</span>

- **Frequency Analysis Techniques**
- A method used to crack substitution ciphers by analyzing how frequently certain letters appear in the ciphertext and comparing these frequencies to typical letter distributions in the language.
- **Example**: In English, "E" is the most common letter. If the most frequent letter in the ciphertext is "Q", it might correspond to "E" in the plaintext.
- <span title="A method used to crack substitution ciphers by analyzing how frequently certain letters appear in the ciphertext and comparing these frequencies to typical letter distributions in the language. For example, in English, E is the most common letter. If the most frequent letter in the ciphertext is Q, it might correspond to E in the plaintext.">Frequency Analysis Techniques</span>


## Modern Cryptography
### Symmetric Cryptography
- **Stream Ciphers**
- ==Encrypts data one bit or byte at a time==

### <span title="Algorithms that use the same cryptographic keys for both the encryption of plaintext and the decryption of ciphertext.">**Symmetric Cryptography**</span>

- <span title="Encrypts data one bit or byte at a time.">Stream Ciphers</span>
- ChaCha20
- Salsa20
- RC4
- **Block Ciphers**
- ==Encrypts data in fixed-size blocks (e.g., 64 or 128 bits)==
- <span title="Encrypts data in fixed-size blocks (e.g., 64 or 128 bits).">Block Ciphers</span>
- DES
- 3DES
- AES
- Blowfish
- Twofish
- **Modes of Operation**
- ==Techniques to securely encrypt large amounts of data==
- <span title="Techniques to securely encrypt large amounts of data">Modes of Operation</span>
- ECB (Electronic Codebook)
- CBC (Cipher Block Chaining)
- CFB (Cipher Feedback)
- OFB (Output Feedback)
- CTR (Counter Mode)

### Asymmetric Cryptography
- **RSA (Rivest–Shamir–Adleman)**
- ==Relies on the difficulty of factoring large numbers==
- **ElGamal**
- **DSA (Digital Signature Algorithm)**
- **ECC (Elliptic-Curve Cryptography)**
- ==Based on algebraic structures of elliptic curves over finite fields==
- Curve25519
- P-256
- **Diffie-Hellman Key Exchange**
- ==Used for secure key exchange over an insecure channel==
- **Post-Quantum Cryptography (NTRU, Lattice-based cryptography)**

## Hash Functions
### <span title="Cryptographic algorithms that use a pair of related keys (one public key and one private key).">**Asymmetric Cryptography**</span>

- <span title=" process that uses public key to encrypt and related private key to decrypt a message">Encryption</span>
- <span title="Relies on the difficulty of factoring large numbers">RSA (Rivest–Shamir–Adleman)</span>
- **ElGamal**
- <span title="It's based on algebraic structures of elliptic curves over finite fields">ECC (Elliptic-Curve Cryptography)</span>
- Curve25519
- P-256

- <span title="Use for secure key exchange over an insecure channel">Key Exchange</span>
- Diffie–Hellman (DH)
- Elliptic-Curve DH (ECDH)

- <span title="Verify the authenticity of digital messages or documents">Signature</span>
- DSA
- ECDSA
- Schnorr


## Post-quantum Cryptography

### **Lattice-based**
- Key Encapsulation
- NTRU
- Kyber
- FrodoKEM
- Signature
- Dilithium
- Falcon
### <span title="PQC cryptosystems whose security depends, in part or entirely, on the difficulty of decoding a linear error-correcting code"> **Code-based** </span>

- Key Encapsulation
- Classic McEliece
- Bike
- Signature
- Niederreiter

### <span title="PQC Signature algorithms whose security is mathematically based on the security of a selected hash function">**Hash-based Signatures**</span>
- XMSS
- Sphincs+

### <span title="PQC cryptographic primitives based on multivariate polynomials over a finite field F">**Multivariate-based** </span>

- Key Encapsulation
- Matsumoto-Imai
- HFE
- Signature
- Matsumoto-Imai
- Rainbow

### <span title="It utilizes a rational map between elliptic curves (isogenies) to provide post-quantum secure cryptographic primitives">**Isogeny-based**</span>

- Sike


## <span title="They Can be used to map data of arbitrary size to fixed-size values">Hash Functions</span>
- **MD5**
- **SHA-1**
- **SHA-2 (SHA-256, SHA-512)**
Expand All @@ -91,36 +134,38 @@ markmap:
- Kerberos
- Zero-Knowledge Proofs

## Cryptanalysis Techniques
- **Brute Force Attack**
- ==Tries every possible key until the correct one is found.==
- **Frequency Analysis (Classical Ciphers)**
- ==Analyzes the frequency of letters or groups of letters to crack substitution ciphers==
- **Known-plaintext Attack**
- ==The attacker has access to both the plaintext and its corresponding ciphertext and uses this information to derive the key==
- **Chosen-plaintext Attack**
- ==The attacker can choose arbitrary plaintexts and obtain their corresponding ciphertexts, allowing them to gather information to break the encryption==
- **Chosen-ciphertext Attack**
- ==The attacker can decrypt chosen ciphertexts and use this to gain information about the encryption key or algorithm==
- **Meet-in-the-Middle Attack (Block Ciphers)**
- ==A known-plaintext attack that targets block ciphers by using a space-time tradeoff, working faster than brute force by exploiting the structure of two-key encryption schemes==
- **Side-Channel Attacks**
- ==Exploits physical leakages like timing or power consumption to break encryption==
- **Timing Attacks**
- ==Measures the time it takes to perform cryptographic operations to deduce secret keys==
- **Power Analysis**
- ==Monitors power consumption during encryption to extract information about the key==
- **Differential Cryptanalysis**
- ==Analyzes the differences in ciphertexts resulting from slight differences in the plaintext to discover the secret key==
- **Linear Cryptanalysis**
- ==Uses linear approximations to describe the behavior of block ciphers and analyzes the relationships between plaintext, ciphertext, and key bits==
- **Padding Oracle Attacks**
- ==Exploits incorrect padding in cryptographic systems to recover plaintext by sending carefully crafted ciphertexts==

## Quantum Cryptography
- **Quantum Key Distribution (QKD)**
- ==Uses quantum mechanics to ensure secure communication==
- **Shor's Algorithm (Breaking RSA)**
- ==Breaks RSA and ECC by efficiently factoring large numbers==
- **Grover's Algorithm (Speeding up Symmetric Key Search)**
## Cryptography Threats
- <span title="Tries every possible key until the correct one is found">**Brute Force Attack**</span>

- <span title="Analyzes the frequency of letters or groups of letters to crack substitution ciphers">**Frequency Analysis (Classical Ciphers)**</span>

- <span title="The attacker has access to both the plaintext and its corresponding ciphertext and uses this information to derive the key">**Known-plaintext Attack**</span>

- <span title="The attacker can choose arbitrary plaintexts and obtain their corresponding ciphertexts, allowing them to gather information to break the encryption">**Chosen-plaintext Attack**</span>

- <span title="The attacker can decrypt chosen ciphertexts and use this to gain information about the encryption key or algorithm">**Chosen-ciphertext Attack**</span>

- <span title="A known-plaintext attack that targets block ciphers by using a space-time tradeoff, working faster than brute force by exploiting the structure of two-key encryption schemes">**Meet-in-the-Middle Attack**</span>

- <span title="Exploits physical leakages like timing or power consumption to break encryption">**Side-Channel Attacks**</span>
- <span title="Measures the time it takes to perform cryptographic operations to deduce secret keys">Timing Attacks</span>

- <span title="Monitors power consumption during encryption to extract information about the key">Power Analysis</span>

- <span title="Analyzes the differences in ciphertexts resulting from slight differences in the plaintext to discover the secret key"> **Differential Cryptanalysis**</span>

- <span title="Uses linear approximations to describe the behavior of block ciphers and analyzes the relationships between plaintext, ciphertext, and key bits">**Linear Cryptanalysis**</span>

- <span title="Exploits incorrect padding in cryptographic systems to recover plaintext by sending carefully crafted ciphertexts">**Padding Oracle Attacks**</span>

- <span title="Use quantum computer to break the existing cryptography algorithms">**Quantum computing**</span>
- <span title="Breaks RSA by efficiently factoring large numbers and ECC by discrete logarithm">Shor's Algorithm </span>
- <span title="Speeding up Symmetric Key Search">Grover's Algorithm </span>

## Misc Algorithms
- <span title="a form of encryption with an additional evaluation capability for computing over encrypted data without access to the secret key"> **Homomorphic Encrypton** </span>
- <span title="Methods for distributing a secret among a group, in such a way that no individual holds any intelligible information about the secret, but when a sufficient number of individuals combine their 'shares', the secret may be reconstructed"> **Secret Sharing** </span>
- <span title="a shift register whose input bit is a linear function of its previous state."> **Linear Feedback Shift Register (LFSR)** </span>



0 comments on commit 351cc83

Please sign in to comment.