Quelques éléments de cryptanalyse
Notion de sécurité
Chaque procédé cryptographique spécifie un problème supposé difficile contre lequel il doit
offrir une certaine sécurité. En général, on ne sait pas la minorer de manière intéressante. Le rôle
des cryptanalystes est de la majorer de manière aussi spectaculaire que possible. La sécurité
correspond à la complexité, c'est-à-dire le coût en temps, en espace de travail ou en matériel de
calcul, de la résolution de problèmes contre lesquels on souhaite se protéger. Actuellement, on
constate un saut entre les procédés destinés à un usage pratique, dont on ne sait pas montrer la
sécurité autrement que par une expertise des cryptanalystes, et les procédés théoriques que l'on
traite en théorie de la complexité.
On souligne également l'existence d'une notion de sécurité parfaite. Cette sécurité est liée à
l'incapacité théorique de casser le problème (au sens de la théorie de l'information). Les rares
exemples de protocoles qui offrent une sécurité parfaite sont hélas trop coûteux.
En général, un ``procédé théorique'' est une famille infinie de procédés associés à un paramètre
de taille. On arrive parfois à étudier le comportement asymptotique de la complexité des
problèmes sous-jacents en fonction du paramètre. Par exemple, on dira qu'un procédé théorique
est sûr si la complexité croît exponentiellement. Une expertise a posteriori des cryptanalystes
donne ensuite une idée du paramètre à utiliser en pratique. Hélas, ce paramètre est souvent trop
grand.
Un ``procédé pratique'' (ou une instance d'un procédé théorique pour un paramètre donné) est
sûr si la complexité de son problème sous-jacent est supérieure à un seuil. Pour des applications
militaires, on pourra fixer un seuil correspondant à l'exploitation des ressources de calcul dans le
monde entier pendant un siècle. Pour des applications domestiques, on pourra fixer un seuil
correspondant à l'utilisation de machines coûteuses pendant un semaine.
Attaques des fonctions de chiffrement
Les fonctions de chiffrement sont supposées rendre impossible le décryptage, c'est-à-dire la récupération d'un message clair sans la clef. A fortiori, elle doivent protéger le secret des clefs. On distingue plusieurs types d'attaques :
Nous détaillerons deux types d'attaques :
Attaque de D.E.S.
Attaque de R.S.A.