# Introduction ## Classical Encryption - Substitution Ciphers - Transposition Ciphers - One-Time Pad - Rotor Machine - Ex. Enigma(恩尼格瑪密碼機) ## Secret-Key Cryptosystems - Block Ciphers ![](https://hackmd.io/_uploads/S1odJggJT.png) ![](https://hackmd.io/_uploads/H1_exexJT.png) - Stream Ciphers - 速度快但不安全 - 產生出來的 $K$ 同時用於加密與解密 - Ex. RC4, A5, Salsa20, ChaCha20 ![](https://hackmd.io/_uploads/rJmplexyT.png) ## Public-Key Cryptosystems - 有 public key 與 private key,互為加解密的關係。 - 只有使用者持有 private key ![](https://hackmd.io/_uploads/SJLTblgkp.png) --- - Diffie-Hellman Key Exchange Scheme (1976) ![](https://hackmd.io/_uploads/Hk9XfxxkT.png) - Number Theory - Euclidean Algorithm - Modular Arithmetic - Fermat’s and Euler’s Theorems - Testing for Primality - Chinese Remainder Theorem (CRT) - Discrete Logarithms - Common Security Basis - Integer Factorization Problem (IFP) - Discrete Logarithm Problem (DLP) - Elliptic Curve Discrete Logarithm Problem (ECDLP) - RSA (1977) ![](https://hackmd.io/_uploads/SJ4RQgeJ6.png) ## Cryptographic Hash Functions - Applications - Message Authentication - Digital Signature - Blockchain - Algorithms - MD5 (broken in 2004), RIPEMD-160 (broken in 2004) - SHA-1 (broken in 2017) - 160 bits - SHA-2: SHA-224 (for 2-Key 3DES), SHA-256, SHA-384, SHA-512 - SHA-3 ## Message Authentication Codes - Schemes - DAA - CMAC - HMAC - Poly1305 - Authenticated Encryption - 同時加密與解密 - CCM - GCM - ChaCha 20 – Poly 1305 ## Lightweight Cryptography - A subfield of cryptography concerned with the development of cryptographic algorithms for resource-constrained devices - Develop efficient implementations of conventional cryptographic algorithms as well as the design of new lightweight algorithms ## Quantum - Quantum Threat - Quantum Cryptanalysis - Quantum Cryptography - Quantum Key Distribution (QKD) - Ex. BB84 Protocol - Post-Quantum Cryptography (PQC) - Types of PQC - NIST Post-Quantum Cryptography Standardization - Public-Key Encryption / KEM (Key Encapsulation Mechanism) - Digital Signature Algorithms - CRYSTALS-Kyber