RSA
RSA (Rivest–Shamir–Adleman)
Un algorithme de chiffrement asymétrique qui utilise une paire de clés mathématiquement liées — une clé publique pour chiffrer et une clé privée pour déchiffrer — permettant une communication sécurisée sans échange préalable de secrets.
Détail technique
RSA fonde sa sécurité sur la difficulté de factoriser le produit de deux grands nombres premiers. La génération de clés produit n = p × q (deux premiers), avec l'exposant public e (typiquement 65537) et l'exposant privé d (inverse modulaire de e mod φ(n)). Le chiffrement calcule c = m^e mod n ; le déchiffrement calcule m = c^d mod n. Les tailles de clé RSA vont de 2048 à 4096 bits. Le chiffrement RSA direct est lent et limité en taille, donc en pratique il est utilisé pour l'échange de clés (chiffrement d'une clé symétrique) ou les signatures numériques (chiffrement d'un hash), pas pour les données volumineuses.
Exemple
```javascript
// AES-256-GCM encryption (Web Crypto API)
const key = await crypto.subtle.generateKey(
{ name: 'AES-GCM', length: 256 }, true, ['encrypt', 'decrypt']
);
const iv = crypto.getRandomValues(new Uint8Array(12));
const ciphertext = await crypto.subtle.encrypt(
{ name: 'AES-GCM', iv },
key,
new TextEncoder().encode('secret message')
);
```