Qu'est-ce que le chiffrement?
sobes.tech IA
Réponse de l'IA
Le chiffrement est le processus de transformation d'informations lisibles (texte en clair) en un format illisible (texte chiffré) à l'aide d'un algorithme cryptographique et d'une clé. L'objectif est d'assurer la confidentialité des données, afin que seules les personnes autorisées puissent les lire, en utilisant la clé appropriée pour déchiffrer.
Il existe deux principaux types de chiffrement :
-
Chiffrement symétrique : La même clé est utilisée pour chiffrer et déchiffrer. La vitesse est élevée, mais le problème réside dans la transmission sécurisée de la clé. Exemples : AES, DES.
<?php // Exemple de chiffrement symétrique (simplifié, juste pour démonstration) $key = 'clé123'; $plaintext = 'Message secret'; // Supposons une fonction de chiffrement simple (à ne pas utiliser en production) function simple_encrypt($data, $key) { return base64_encode($data ^ $key); // Opération XOR d'exemple } // Supposons une fonction de déchiffrement simple (à ne pas utiliser en production) function simple_decrypt($data, $key) { return base64_decode($data) ^ $key; // Opération XOR d'exemple } $ciphertext = simple_encrypt($plaintext, $key); echo "Chiffré : " . $ciphertext . "\n"; $decryptedtext = simple_decrypt($ciphertext, $key); echo "Déchiffré : " . $decryptedtext . "\n"; ?> -
Chiffrement asymétrique (chiffrement à clé publique) : Un couple de clés est utilisé : une clé publique pour chiffrer et une clé privée pour déchiffrer. La clé publique peut être distribuée librement, tandis que la clé privée est conservée secrète. La vitesse est inférieure à celle du chiffrement symétrique. Exemples : RSA, ECC.
<?php // Exemple de chiffrement asymétrique (simplifié, juste pour démonstration RSA) // En pratique, on utilise des fonctions PHP pour OpenSSL (openssl_public_encrypt, openssl_private_decrypt, etc.) // Génération de clés (processus complexe) // $privateKey = ... // $publicKey = ... $plaintext = 'Un autre message secret'; // Chiffrement avec clé publique // $encrypted = openssl_public_encrypt($plaintext, $ciphertext, $publicKey); // echo "Chiffré (asymétrique) : " . base64_encode($ciphertext) . "\n"; // Déchiffrement avec clé privée // $decrypted = openssl_private_decrypt($ciphertext, $decryptedtext, $privateKey); // echo "Déchiffré (asymétrique) : " . $decryptedtext . "\n"; // Dans le code réel, on utiliserait des fonctions OpenSSL ?>
Le chiffrement est utilisé pour protéger les données lors du stockage (encryption at rest) et lors de la transmission (encryption in transit), par exemple dans les protocoles SSL/TLS des sites web.