Crypto et sécurité de l’information
Ce matériel couvre les concepts fondamentaux des algorithmes à clé publique, des fonctions de hachage, des codes d’authentification de message (MAC) et des signatures numériques. Il s’adresse aux étudiants en sécurité informatique et cryptographie souhaitant comprendre les principes, mécanismes et applications de ces techniques essentielles à la sécurité des communications numériques.
D'après le document Crypto et sécurité de l’information
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.
Document source
Cryptography, Public Key Algorithms, Security · PDF · 66 pages · 1976
Afficher l'aperçu du document
Ce matériel couvre les concepts fondamentaux des algorithmes à clé publique, des fonctions de hachage, des codes d’authentification de message (MAC) et des signatures numériques. Il s’adresse aux étudiants en sécurité informatique et cryptographie souhaitant comprendre les principes, mécanismes et applications de ces techniques essentielles à la sécurité des communications numériques.
Principes de la Cryptographie asymétrique
La cryptographie symétrique utilise une seule clé pour chiffrer et déchiffrer les messages, partagée entre l’émetteur et le récepteur. Ce système présente deux problèmes majeurs : la distribution sécurisée de la clé et la vulnérabilité à la modification des messages par le récepteur, qui peut prétendre être l’émetteur.
La cryptographie asymétrique, proposée par Whitfield Diffie et Martin Hellman en 1976, répond à ces problèmes en utilisant deux clés distinctes : une clé publique pour le chiffrement et une clé privée pour le déchiffrement. Elle permet ainsi :
- La distribution sécurisée des clés sans passer par un centre de distribution (KDC).
- La vérification de l’intégrité et de l’authenticité des messages via la signature numérique.
Les composants essentiels sont :
- Plaintext : texte clair à chiffrer.
- Ciphertext : texte chiffré.
- Algorithme de cryptage : opérations sur le plaintext.
- Algorithme de décryptage : opérations sur le ciphertext.
- Clé publique : utilisée pour chiffrer (confidentialité).
- Clé privée : utilisée pour déchiffrer (récepteur).
La cryptographie asymétrique permet :
- Le chiffrement/déchiffrement : l’émetteur chiffre avec la clé publique du récepteur.
- La signature numérique : l’émetteur signe avec sa clé privée.
- Le partage de clé : coopération entre émetteur et récepteur pour établir une clé de session.
Ces algorithmes reposent sur des fonctions à sens unique avec une "trapdoor" (fonction trappe) : faciles à calculer dans un sens, mais difficiles à inverser sans une information secrète.
RSA
Développé en 1977 au MIT par Rivest, Shamir et Adleman, RSA est l’algorithme à clé publique le plus utilisé. Le plaintext et le ciphertext sont des entiers compris entre 0 et n-1, où n est un nombre très grand (typiquement 1024 bits).
Le chiffrement d’un bloc M s’effectue par :
C = M^e mod n
Le déchiffrement par :
M = C^d mod n = (M^e)^d mod n = M^{ed} mod n
La clé publique est la paire (e, n), connue de tous, tandis que la clé privée est (d, n), connue uniquement du récepteur.
Génération des clés RSA
- Choisir deux grands nombres premiers p et q.
- Calculer n = p × q.
- Calculer φ(n) = (p − 1) × (q − 1).
- Choisir un entier e tel que 1 < e < φ(n) et gcd(e, φ(n)) = 1.
- Calculer d tel que d × e ≡ 1 mod φ(n).
- Publier la clé publique PU = {e, n}.
- Garder la clé privée PR = {d, n} secrète.
Exemple de génération de clés RSA
- p = 17, q = 11
- n = 17 × 11 = 187
- φ(n) = (17 − 1) × (11 − 1) = 16 × 10 = 160
- Choisir e = 7 (gcd(7, 160) = 1)
- Calculer d tel que d × 7 ≡ 1 mod 160. Ici d = 23 car 23 × 7 = 161 = 1 + 10 × 160
- Clé publique PU = {7, 187}
- Clé privée PR = {23, 187}
Exponentiation modulaire dans RSA
Le chiffrement et le déchiffrement nécessitent des calculs d’exponentiation modulo n. Pour optimiser, on utilise :
(a mod n) × (b mod n) = (a × b) mod n
L’exponentiation rapide est réalisée en O(log2 b) multiplications, où b est l’exposant.
Exemple :
- Calcul de 7^560 mod 561 avec 560 en binaire (1000110000)2.
- Utilisation de la décomposition binaire pour réduire les multiplications.
Attaques sur RSA
- Factoriser n en p et q pour calculer φ(n) et retrouver d.
- Calculer φ(n) directement sans factorisation.
- Déterminer d directement sans φ(n).
Partage de clé de Diffie-Hellman
Premier algorithme à clé publique, Diffie-Hellman permet à deux utilisateurs d’échanger une clé secrète pour un chiffrement symétrique ultérieur. Sa sécurité repose sur la difficulté du problème du logarithme discret.
Principe
- Deux entités A et B partagent un nombre premier q et une base a.
- A choisit un secret XA, B choisit un secret XB.
- A calcule sa clé publique yA = a^XA mod q, B calcule yB = a^XB mod q.
- Ils échangent yA et yB.
- Chacun calcule la clé partagée KAB :
KAB = yB^XA mod q = yA^XB mod q
Exemple
- q = 353, a = 3
- XA = 97 (Alice), XB = 233 (Bob)
- yA = 3^97 mod 353 = 40
- yB = 3^233 mod 353 = 248
- KAB (Alice) = 248^97 mod 353 = 160
- KAB (Bob) = 40^233 mod 353 = 160
La clé partagée est donc 160.
Attaque Man-in-the-Middle
Un attaquant Darth intercepte les clés publiques échangées entre Alice et Bob, substitue ses propres clés, et établit deux clés secrètes distinctes avec chacun. Il peut alors intercepter, déchiffrer, modifier et retransmettre les messages sans que Alice et Bob ne s’en aperçoivent.
Les fonctions de hachage
Une fonction de hachage prend une entrée de longueur variable et produit un condensé (empreinte) de longueur fixe h = H(M). Elle sert principalement à vérifier l’intégrité des données.
Propriétés essentielles :
- Fonction à sens unique : il est facile de calculer h à partir de M, mais pratiquement impossible de retrouver M à partir de h.
- Résistance aux collisions : il est difficile de trouver deux messages différents produisant le même condensé.
Le condensé est beaucoup plus petit que le message original, facile à calculer, et toute modification du message change automatiquement le condensé.
Utilisations
- Vérification d’intégrité et d’authenticité des messages.
- Stockage sécurisé des mots de passe (comparaison des condensés).
- Détection d’intrusions et de virus (vérification des condensés des fichiers).
- Construction de générateurs de séquences pseudo-aléatoires (PRNG).
Exigences d’une fonction de hachage
- Entrée de longueur variable, sortie de longueur fixe.
- Efficacité de calcul.
- Résistance à la préimage : impossible de retrouver un message à partir de son condensé.
- Résistance à la seconde préimage : impossible de trouver un second message avec le même condensé qu’un message donné.
- Résistance aux collisions : impossible de trouver deux messages différents avec le même condensé.
- Sortie aléatoire selon des tests standards (ex. NIST).
Paradoxe d’anniversaire
Ce paradoxe illustre la probabilité élevée de collisions dans un espace limité. Par exemple, dans un groupe de 23 personnes, la probabilité que deux personnes aient le même anniversaire est supérieure à 50 %.
Appliqué aux fonctions de hachage, cela signifie qu’avec un condensé codé sur b bits, il suffit d’environ 2^(b/2) messages différents pour avoir une forte probabilité de collision.
Exemple d’impact sur la sécurité Wi-Fi (WEP)
WEP utilise une clé de 104 bits et un vecteur d’initialisation (IV) de 24 bits. Par le paradoxe d’anniversaire, il suffit d’environ 4824 échanges pour que le même IV soit réutilisé, rendant la sécurité effective seulement sur 24 bits. WEP a été remplacé par WPA et WPA2 pour pallier ce problème.
Secure Hash Algorithm (SHA)
SHA est une famille de fonctions de hachage développée par le NIST :
- SHA-1 produit un condensé de 160 bits.
- SHA-2, révision de 2002, propose des condensés de 256, 384 et 512 bits.
SHA-512 traite les messages en blocs de 1024 bits et met à jour des buffers internes selon un algorithme complexe garantissant les propriétés cryptographiques.
Problèmes et contre-mesures des problèmes de sécurité
Les attaques courantes sur un réseau incluent :
- Divulgation des messages : solution par chiffrement.
- Analyse de trafic : solution par chiffrement.
- Mascarade (insertion de messages frauduleux) : solution par authentification.
- Modification de contenu (insertion, suppression, transposition) : solution par authentification.
- Modification temporelle (rejeu de messages) : solution par authentification.
- Répudiation de la source : solution par signature numérique.
- Répudiation de la destination : solution par signature numérique.
Les techniques d’authentification de message comprennent :
- Fonctions de hachage (condensé comme authentificateur).
- Cryptage du message (ciphertext comme authentificateur).
- MAC (Message Authentication Code) : fonction du message et d’une clé secrète produisant un code d’authentification.
MAC (Message Authentication Code)
Le MAC est une fonction de hachage à clé utilisée entre deux entités partageant une clé secrète. Elle prend en entrée la clé K et un message M, et produit un MAC = C(K, M).
Le MAC est envoyé avec le message. Pour vérifier l’intégrité, le récepteur calcule le MAC sur le message reçu et le compare au MAC reçu. Un attaquant ne peut modifier le message sans connaître la clé secrète, car il ne peut pas recalculer un MAC valide.
Le MAC n’est pas une signature numérique car il nécessite une clé secrète partagée.
Cryptage authentifié
Pour protéger à la fois la confidentialité et l’authentification, plusieurs approches combinent chiffrement et MAC :
- Hash-then-encrypt : E(K, M || H(M))
- MAC-then-encrypt : E(K2, M || MAC(K1, M))
- Encrypt-then-MAC : C = E(K2, M), T = MAC(K1, C)
- Encrypt-and-MAC : C = E(K2, M), T = MAC(K1, M)
Ces méthodes facilitent le déchiffrement et la vérification.
Signature numérique
La signature numérique est similaire au MAC, mais utilise la clé privée de l’émetteur pour chiffrer le condensé du message. Toute personne disposant de la clé publique de l’émetteur peut vérifier l’intégrité et l’authenticité du message.
Un attaquant doit connaître la clé privée de l’émetteur pour modifier un message signé.
Les trois propriétés essentielles d’une signature numérique sont :
- Vérifier l’auteur, la date et l’heure du document signé.
- Authentifier le contenu au moment de la signature.
- Permettre la vérification par une tierce partie en cas de litige.
Modèle général de la signature numérique
Le message est d’abord condensé par une fonction de hachage, puis ce condensé est chiffré avec la clé privée de l’émetteur pour produire la signature. Le récepteur déchiffre la signature avec la clé publique de l’émetteur et compare le condensé obtenu avec celui du message reçu.
Glossaire des termes clés
- Plaintext : Texte clair avant chiffrement.
- Ciphertext : Texte chiffré résultant du chiffrement.
- Clé publique : Clé accessible à tous pour chiffrer ou vérifier une signature.
- Clé privée : Clé secrète utilisée pour déchiffrer ou signer.
- Fonction à sens unique : Fonction facile à calculer dans un sens, difficile à inverser.
- Fonction trappe : Fonction à sens unique avec une "trapdoor" permettant l’inversion si une information secrète est connue.
- RSA : Algorithme de cryptographie asymétrique basé sur la factorisation de grands nombres premiers.
- Diffie-Hellman : Protocole d’échange de clé basé sur le problème du logarithme discret.
- Fonction de hachage : Fonction produisant un condensé de longueur fixe à partir d’une entrée variable.
- Condensé (digest) : Résultat d’une fonction de hachage, empreinte du message.
- MAC (Message Authentication Code) : Code d’authentification produit par une fonction de hachage à clé.
- Signature numérique : Chiffrement du condensé d’un message avec la clé privée de l’émetteur pour garantir intégrité et authenticité.
- Paradoxe d’anniversaire : Phénomène statistique montrant la probabilité élevée de collisions dans un espace limité.
- SHA (Secure Hash Algorithm) : Famille de fonctions de hachage standardisées par le NIST.
Points clés à retenir
- La cryptographie asymétrique résout les problèmes de distribution de clés et d’authentification des messages.
- RSA est un algorithme fondamental basé sur la factorisation de grands nombres premiers.
- Diffie-Hellman permet un échange sécurisé de clés pour chiffrement symétrique.
- Les fonctions de hachage assurent l’intégrité des messages et sont résistantes aux collisions.
- Le paradoxe d’anniversaire explique la nécessité de condensés suffisamment longs pour éviter les collisions.
- Le MAC fournit une authentification basée sur une clé secrète partagée.
- La signature numérique garantit l’authenticité, l’intégrité et la non-répudiation d’un message.
- Les attaques classiques peuvent être contrées par chiffrement, authentification et signature numérique.
Commentaires
Aucun commentaire pour le moment. Posez la première question.