Le Laboratoire Virtuel & Terminal Pratique est en ligne :

Ouvrir le Labo
Volume 10 : Cryptographie Appliquée, TLS & Sécurité Cloud/Module 1 : Cryptographie Moderne & Protocole TLS 1.3

Cryptographie Symétrique (AES-GCM), Asymétrique (RSA) & TLS

Labo Virtuel >_

Cryptographie Moderne : AES-256-GCM, RSA & Protocole TLS 1.3



La cryptographie est la science mathématique permettant de protéger la confidentialité et l'intégrité de l'information. En ingénierie logicielle comme en cybersécurité, comprendre la différence fondamentale entre chiffrement symétrique et asymétrique évite les erreurs de conception critiques.

---

1. Chiffrement Symétrique Authentifié (AES-GCM)



Dans le chiffrement symétrique, une seule et même clé secrète est partagée entre l'émetteur et le récepteur pour chiffrer et déchiffrer.

* AES (Advanced Encryption Standard - FIPS 197) : Chiffre des blocs de 128 bits avec une clé de 128, 192 ou 256 bits. * Le Mode GCM (Galois/Counter Mode) : Fournit un chiffrement authentifié avec données associées (AEAD). En plus de chiffrer le message, il génère un tag d'authentification cryptographique de 128 bits. Si un attaquant modifie un seul bit du message chiffré en transit, le déchiffrement échoue immédiatement !

``python from cryptography.hazmat.primitives.ciphers.aead import AESGCM import os

def demonstrer_aes_gcm(): # Génération d'une clé AES 256 bits hautement aléatoire (CSPRNG) cle = AESGCM.generate_key(bit_length=256) aesgcm = AESGCM(cle) # Vecteur d'initialisation (Nonce) unique de 96 bits (12 octets) nonce = os.urandom(12) message_clair = b"Donnees ultra-confidentielles du serveur RayLab" # Chiffrement authentifié chiffre_avec_tag = aesgcm.encrypt(nonce, message_clair, associated_data=None) print(f"[*] Message chiffré ({len(chiffre_avec_tag)} octets) : {chiffre_avec_tag.hex()[:32]}...") # Déchiffrement et validation d'intégrité message_recupere = aesgcm.decrypt(nonce, chiffre_avec_tag, associated_data=None) print(f"[✓] Message restauré avec succès : {message_recupere.decode()}")

demonstrer_aes_gcm()
``

> [!WARNING] > En mode AES-GCM, ne réutilisez JAMAIS le même couple (clé, nonce) ! La réutilisation d'un nonce avec la même clé permet à un attaquant d'extraire la clé d'authentification par simple opération mathématique XOR.

---

2. Chiffrement Asymétrique & Signature (RSA & ECC)



Le chiffrement asymétrique utilise une paire de clés mathématiquement liées : * Clé publique : Diffusée librement à tout le monde. * Clé privée : Conservée jalousement et secrètement par son propriétaire.

Les Deux Grands Usages :

1. Confidentialité (Chiffrement) : Alice chiffre avec la clé publique de Bob. Seul Bob peut déchiffrer avec sa clé privée. 2. Authenticité & Non-répudiation (Signature) : Alice signe l'empreinte d'un document avec sa clé privée. Tout le monde peut vérifier la signature avec la clé publique d'Alice.

---

3. Le Chiffrement Hybride & TLS 1.3



Le chiffrement asymétrique (RSA/ECC) est très coûteux en calcul CPU (environ 1 000 fois plus lent qu'AES). Par conséquent, les protocoles modernes comme TLS 1.3 (HTTPS) utilisent le Chiffrement Hybride : 1. Les deux parties négocient une clé de session symétrique éphémère grâce à un échange de clés asymétrique (Diffie-Hellman à courbes elliptiques - ECDHE). 2. Tout le flux de données HTTP est ensuite chiffré ultra-rapidement avec cette clé symétrique en AES-256-GCM ou ChaCha20-Poly1305.
Informations
Formatarticle
Durée50 min
StatutEn cours
Laboratoire Virtuel Pratique

Pratiquez cette le?on dans le Terminal Linux et l'ex?cuteur WebAssembly Python en direct.

Ouvrir dans le Labo >_