---
# System prepended metadata

title: 'Ch00: Introduction'
tags: [密碼學]

---

# 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
