8.2. A Very High Security Cryptographic Key (Une clé cryptographique de très haute sécurité)
8.2. A Very High Security Cryptographic Key (Une clé cryptographique de très haute sécurité)
Supposons qu'une clé de très haute sécurité soit nécessaire pour le chiffrement/déchiffrement symétrique entre deux parties. Supposons également qu'un adversaire puisse observer les communications et connaisse l'algorithme utilisé. Dans le champ de possibilités aléatoires, l'adversaire peut essayer des valeurs de clés dans l'espoir de trouver celle en usage. Supposons en outre que l'essai par force brute de clés soit le meilleur que l'adversaire puisse faire.
8.2.1. Effort par essai de clé
Combien d'effort faudra-t-il pour essayer chaque clé? Pour les applications de très haute sécurité, il est préférable de supposer une faible valeur d'effort. Même s'il faudrait clairement des dizaines de milliers de cycles informatiques ou plus pour essayer une seule clé, il peut y avoir un motif qui permet de tester d'énormes blocs de valeurs de clés avec beaucoup moins d'effort par clé. Ainsi, il est probablement préférable de ne pas supposer plus de quelques centaines de cycles par clé. (Il n'y a pas de limite inférieure claire sur cela, car les ordinateurs fonctionnent en parallèle sur un nombre de bits et un algorithme de chiffrement médiocre pourrait permettre de tester de nombreuses clés ou même des groupes de clés en parallèle. Cependant, nous devons supposer une certaine valeur et pouvons espérer qu'un algorithme raisonnablement fort ait été choisi pour notre tâche hypothétique de haute sécurité.)
Si l'adversaire peut commander un processeur hautement parallèle ou un grand réseau de stations de travail, 10^11 cycles par seconde est probablement une hypothèse minimale aujourd'hui. En regardant quelques années en avant, il devrait y avoir au moins une amélioration d'un ordre de grandeur. Ainsi, il est raisonnable de supposer que 10^10 clés pourraient être vérifiées par seconde, ou 3.610^12 par heure ou 610^14 par semaine, ou 2.4*10^15 par mois. Cela implique un besoin minimum de 63 bits d'aléa dans les clés, pour être sûr qu'elles ne peuvent pas être trouvées en un mois. Même alors, il est possible que, dans quelques années, un adversaire très déterminé et plein de ressources puisse casser la clé en 2 semaines; en moyenne, ils n'ont besoin d'essayer que la moitié des clés.
Ces questions sont considérées en détail dans "Minimal Key Lengths for Symmetric Ciphers to Provide Adequate Commercial Security: A Report by an Ad Hoc Group of Cryptographers and Computer Scientists" [KeyStudy] qui a été sponsorisé par la Business Software Alliance. Il a conclu qu'une longueur de clé raisonnable en 1995 pour une très haute sécurité est dans la plage de 75 à 90 bits et, puisque le coût de la cryptographie ne varie pas beaucoup avec la taille de la clé, il recommande 90 bits. Pour mettre à jour ces recommandations, ajoutez simplement 2/3 de bit par an pour la loi de Moore [MOORE]. Cela se traduit par une détermination, en l'année 2004, qu'une longueur de clé raisonnable est dans la plage de 81 à 96 bits. En fait, aujourd'hui, il est de plus en plus courant d'utiliser des clés de plus de 96 bits, telles que des clés de 128 bits (ou plus longues) avec AES et des clés avec des longueurs effectives de 112 bits avec triple-DES.
8.2.2. Attaques de rencontre au milieu
Si le texte en clair choisi ou connu et le texte chiffré résultant sont disponibles, une attaque "de rencontre au milieu" est possible si la structure de l'algorithme de chiffrement le permet. (Dans une attaque de texte en clair connu, l'adversaire connaît tout ou partie (possiblement des champs d'en-tête ou de pied de page standards) des messages chiffrés. Dans une attaque de texte en clair choisi, l'adversaire peut forcer un texte en clair choisi à être chiffré, possiblement en "fuitant" un texte passionnant qui est envoyé par l'adversaire sur un canal chiffré parce que le texte est si intéressant.)
Ce qui suit est une explication simplifiée à l'excès de l'attaque de rencontre au milieu: l'adversaire peut demi-chiffrer le texte en clair connu ou choisi avec toutes les premières demi-clés possibles, trier la sortie, puis demi-déchiffrer le texte codé avec toutes les secondes demi-clés. Si une correspondance est trouvée, la clé complète peut être assemblée à partir des moitiés et utilisée pour déchiffrer d'autres parties du message ou d'autres messages. À son meilleur, ce type d'attaque peut diviser par deux l'exposant du travail requis par l'adversaire tout en ajoutant un facteur très grand mais approximativement constant d'effort. Ainsi, si cette attaque peut être montée, un doublement de la quantité d'aléa dans la clé très forte à un minimum de 192 bits (96*2) est requis pour l'année 2004, sur la base de l'analyse [KeyStudy].
Cette quantité d'aléa est bien au-delà de la limite de celle dans les entrées recommandées par le DoD américain pour la génération de mots de passe et pourrait nécessiter un timing de frappe utilisateur, une génération de nombres aléatoires matériels ou d'autres sources d'aléa.
L'attaque de rencontre au milieu suppose que l'algorithme cryptographique peut être décomposé de cette manière. Espérons qu'aucun algorithme moderne n'a cette faiblesse, mais il peut y avoir des cas où nous ne sommes pas sûrs de cela ou même de l'algorithme avec lequel une clé sera utilisée. Même si un algorithme de base n'est pas sujet à une attaque de rencontre au milieu, une tentative de produire un algorithme plus fort en appliquant l'algorithme de base deux fois (ou deux algorithmes différents séquentiellement) avec des clés différentes gagnera moins de sécurité ajoutée que prévu. Un tel algorithme composite serait sujet à une attaque de rencontre au milieu.
Des ressources énormes peuvent être nécessaires pour monter une attaque de rencontre au milieu, mais elles sont probablement dans la plage des services de sécurité nationaux d'une nation majeure. Essentiellement toutes les nations espionnent le trafic d'autres nations.
8.2.3. Autres considérations
[KeyStudy] considère également les possibilités de matériel spécialisé de cassage de code et d'avoir une marge de sécurité adéquate.
Notez que les calculs de longueur de clé tels que ceux ci-dessus sont controversés et dépendent de diverses hypothèses sur les algorithmes cryptographiques en usage. Dans certains cas, un professionnel avec une connaissance approfondie des techniques de cassage d'algorithmes et de la force de l'algorithme en usage pourrait être satisfait avec moins de la moitié de la taille de clé de 192 bits dérivée ci-dessus.
Pour d'autres exemples de principes de conception conservateurs, voir [FERGUSON].