# 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)