# Intro
- Ch 1 Intro
- Ch 2 Cryptographie symétrique
- Ch 3 & 4 Cryptographie asymétrique
- Diffie-Hellman, RSA, El Gamal
- logarithme discret
- chiffrement et courbes elliptiques
- protocoles hybrides et TLS
- Post-quantique
# Chapitre 1
```handwritten-ink
{
"versionAtEmbed": "0.3.4",
"filepath": "Ink/Writing/2025.3.5 - 9.26am.writing"
}
```
- Confidentialité
- Authentification des données
- Intégrité (Checksum)
- Non répudiation (signature électronique)
**Crypto is everywhere**
## Encryption symétrique
- Indice de coïncidence
- Principes de Kerckhoffs :
- _Le système doit être matériellement, sinon mathématiquement indéchiffrable._
- _Il faut qu'il n'exige pas le secret, et qu'il puisse sans inconvénient tomber entre les mains de l'ennemi._
- _La clef doit pouvoir être communiquée [...]_
- Enigma (Regarder The Imitation Game)
- **I**nformation **T**echnically **S**ecure
- Chiffrement _parfait_ : Vernam
- Pb 1 : usage unique de la clé
- Pb 2 : clé aussi longue que le message
- Pb 3 : chiffrement optimal dans sa catégorie
### Chiffrement par blocs
Blocs de petite taille (_n_, clé de taille _k_)
Utilisés comme **mode d'opération**
- Electronic Codebook (ECB) mode **do not use** (Vernam avec clé trop courte un peu);
- Cipher-Block Chaining (CBC) mode;
- Output Feedback (OFB) mode;
- Counter (CTR) mode;
- ...
#### Block-cypher
#### Two main techniques
- **Feistel networks**
- **SPN**
#### Structure
Key scheduler -> blocks (_k_i)
Première version (IBM) basée sur le **chiffre Lucifer**
**NSA** impliquée (shady)
Standard fédéral aux U.S. novembre 1976
____
#### Feistel diagram
![[{7AB28281-E4F9-4DAA-860B-973E65165911}.png]]
#### Origines AES
- Remplacement de DES
- Triple-DES lent
- US NIST appel en 1997
- **Rijndael** sélectionné en octobre 2000
- AES = **SPN** (Substitution-Permutation Network)
#### Substitution-Permutation Network
- **Confusion** & **diffusion**
- Substitution et permutation des blocs
- Assez de tours -> chaque bit d'entrée est diffusé dans tout le réseau
- Processus :
- XOR le bloc avec la clé
- SubBytes :
- Boîte-S définie sur $\mathbb{F}_{256}$
- ShiftRows
- Shift des lignes (0 puis 1 puis 2 shifts...)
- (diffuse sur les lignes)
- MixColumns
- Produit matriciel (diffuse sur les colonnes)