Cryptographie : Sécurité
II) Les différents niveaux d'attaque
Par attaque, on sous-entend généralement essayer de tirer le maximum d'informations d'un ou de plusieurs messages en clair ou chiffrés. Le but, selon les cas de figure, sera de déchiffrer un ou des messages, de trouver la clé de décryptage ou un algorithme permettant de déchiffrer ces messages sans connaître la clé.
Un des axiomes de base de la cryptanalyse, énoncé par A. Kerckhoffs au XIX° siècle, est que l'ennemi connaît l'algorithme dans ses moindres détails et qu'il ne lui manque que la clé pour déchiffrer le message. Cette situation, même si elle semble extrême, n'est pourtant pas loin de la réalité. Les principaux algorithmes actuels, reconnus comme sûrs, sont accessibles à tous et leurs éventuelles failles généralement connues. Pour ce qui est des algorithmes moins connus, intégrés dans des programmes commerciaux par exemple, il est impensable que cet algorithme va rester secret : il est facile de désassembler le programme pour regarder comment il fonctionne. Bref, cet axiome a toute son importance et il n'est pas du tout raisonnable de penser que l'on a plus de sécurité avec un algorithme tenu secret. Voilà donc quelques type d'attaques qui peuvent être menées contre un cryptosystème pour le casser, en supposant bien sûr que l'algorithme de cryptage est connu.
A) Attaque à texte chiffré
Ici, l'ennemi ne dispose que d'un ou plusieurs messages chiffrés assez longs. Ce type d'attaque, qui est le plus difficile, permet pourtant parfois de déchiffrer les messages. En particulier, les substitutions alphabétiques sont très vulnérables à ce genre d'attaque : des études statistiques du ou des messages permet facilement de retrouver le message initial.
B) Attaque à (texte clair - texte chiffré)
Dans ce cas, l'ennemi dispose d'un ou plusieurs textes en clair avec leurs équivalents chiffrés. Ce genre d'attaque est bien plus courant que ce que l'on pourrait penser. En effet, certaines structures sont caractéristiques des documents et peuvent plus ou moins facilement être analysées. Les en-têtes types, les formules de politesse dans les lettres permettent d'avoir facilement un ou des couples (texte clair - texte chiffrés). Les codes sources de programmes contiennent des mots-clés qui reviennent fréquemment. Les fichiers exécutables contiennent, eux, les séquences ASCII correspondantes. Pendant la Seconde Guerre Mondiale, les Alliés avait trouvé un moyen de se procurer des couples (texte clair - texte chiffré) : ils minaient un port allemand. Les autorités allemandes envoyaient alors aussitôt un message pour prévenir du danger. Mais le formulaire envoyé était parfaitement connu des alliés. Une fois intercepté, il permettait d'avoir un couple pour chercher la clé de cryptage du jour.
C) Attaque à texte clair choisi
Pour ce genre d'attaque, l'ennemi dispose du cryptosystème prêt à fonctionner. La clé a été entrée, mais elle est inaccessible. La différence principale avec une attaque à (texte clair - texte chiffré) est que l'ennemi peut choisir le texte qu'il veut chiffrer. Il peut donc créer des couples (texte clair - texte chiffré) basé sur des chaînes particulières. Il peut par exemple essayer de chiffrer "aaaaa..." et toutes sortes de messages qui serait plus faciles à décrypter pour essayer de découvrir la clé, ou du moins pour essayer de tirer le maximum d'information du système. Ce cas de figure, même s'il semble exagéré, ne l'est pas tant que ça. Supposons qu'un employé de banque enregistre des transactions toute la journée. Chaque matin, le directeur entre le mot de passe du jour. L'employé ne connaît pas ce mot de passe mais il peut enregistrer des informations anodines pour essayer de casser le système de codage. Un autre exemple concerne la cryptographie dans le domaine diplomatique : un moyen de lancer une attaque à texte clair choisi était de remettre à un ambassadeur un message "important". Celui-ci était alors crypté pour être transmis au gouvernement du pays concerné. Un fois le message crypté intercepté, on a un couple (texte clair - texte chiffré) sur mesure.
Enfin, les algorithmes à clé publique permettent ce genre d'attaques : n'importe qui peut chiffrer des messages et disposer d'autant de couples (textes clairs - textes chiffrés) qu'il désire. Il est pourtant impossible de déchiffrer les messages puisque la clé privée reste secrète.
D) Attaque exhaustive
Cette attaque est la plus sûre : elle marche à tous les coups (ou presque). Le principe est simple : on dispose du cryptosystème et d'un texte chiffré et on essaye toutes les clés possibles jusqu'à trouver la bonne. Cette attaque n'est pourtant pas la plus utilisée car c'est aussi (et surtout) la plus longue. C'est pourquoi elle sert de base de comparaison pour estimer la sécurité d'un cryptosystème : si un codage ne peut être cassé autrement que par une attaque exhaustive (ou du moins pas plus rapidement), alors on l'estime sûr pour une clé suffisamment longue. Le seul cryptosystème qui résiste à cette attaque est le masque jetable (dans le cas idéal où la clé est de la même longueur que le texte et a été générée de manière totalement aléatoire). En effet, quelque soit le texte que l'on veuille obtenir à partir d'un certain message codé, il existe toujours une clé correspondante, et toutes les clés ont la même probabilité de sortir puisqu'elles sont générées aléatoirement.
Pour mener à bien ce genre d'attaque de manière efficace, on voit que l'important est de pouvoir tester rapidement les clés. C'est sur cette constatation qu'est basé le principe de la loterie chinoise. Supposons que le gouvernement chinois décide d'intégrer dans tous les téléviseurs et postes radio une puce spéciale. Lorsqu'un message crypté est intercepté, celui-ci est transmis à tous les postes qui essayent un certain nombre de clés prédéfinies. Le possesseur du poste qui trouve la clé gagne alors un prix. Suivant les pays, ce type de scénario est plus ou moins efficace. Les Etats-Unis ou la Chine, par exemple, possède un nombre de postes suffisamment important pour attaquer rapidement des systèmes avec des clés de taille relativement importante. Une autre version de cette attaque, aujourd'hui, consiste à envisager de créer un virus avec cette fonction intégrée. Une fois lancé sur Internet, le virus se répand dans de nombreux ordinateurs et se sert des ressources inutilisées pour faire des tests.
Enfin, une variante de l'attaque exhaustive est l'attaque des anniversaires. Cette méthode s'attaque plutôt aux fonctions de hachage qu'aux cryptosystèmes au sens large. Elle est basée sur des études de probabilité. Prenez un groupe quelconque de personnes. La probabilité qu'une personne soit née tel jour est très faible. Par contre, la probabilité que deux personnes aient la même date de naissance est bien plus élevée. En effet, il suffit d'avoir 23 personnes pour dépasser les 50% de probabilité. De la même façon, supposons qu'une personne authentifie un document en transmettant avec le document le résultat du hachage du document avec une certaine fonction. Il sera très dur d'obtenir le même résultat. Mais si cette personne crée à l'origine deux textes contradictoires, et les passe dans la fonction de hachage après toutes sortes de modifications minimes qui n'altèrent pas le contenu (changement de ponctuation, de la casse...), elle aura plus de chances de trouver deux textes ayant le même résultat. Il lui sera alors possible de prétendre plus tard que le texte qui a été reçu n'est pas le bon mais a été modifié.
Copyright © BLANC David - 2000