Surchiffrement

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Le surchiffrement est un procédé cryptographique qui consiste à chiffrer, avec d'autres algorithmes et des clés différentes, des données qui avaient déjà été chiffrées. On peut le faire autant de fois que nécessaire mais cela implique nécessairement des performances amoindries.

Cette méthode permet normalement de s'assurer qu'en cas de vulnérabilité d'un des systèmes utilisés, les autres pourront prendre le relais et assurer encore une forte protection. Il permet aussi de cacher certaines propriétés statistiques dans les cas où des chiffrements faibles seraient utilisés.

Risques[modifier | modifier le code]

Le surchiffrement double avec le même algorithme mais deux clés différentes présente des risques. On peut en effet appliquer une attaque par le milieu. Contrairement à ce que l'on peut penser de prime abord, le chiffrement obtenu n'est pas équivalent à un chiffrement avec une clé deux fois plus longue (on ne passe pas de 256 à 2112 dans le cas de DES). Il suffit en effet d'essayer toutes les clés pour déchiffrer la première étape. On obtient un résultat, toujours chiffré, qui se trouve entre les deux blocs de chiffrement. Ce résultat est soumis à son tour à une recherche exhaustive avec toutes les clés possibles. Finalement, la complexité est seulement multipliée par deux.

Dans le cas de DES, on obtient une résistance de l'ordre de 257, c'est pourquoi on utilise 3DES qui a une complexité finale de 2112 opérations (malgré une clé plus longue de 3*56 bits). Grâce à trois chiffrements, chaque sortie du deuxième bloc de chiffrement doit être essayée avec toutes les clés, ce qui augmente considérablement le nombre de possibilités. Il est donc vivement recommandé de ne pas surchiffrer avec le même algorithme deux fois de suite.

Une vulnérabilité pourrait survenir si les clés ne sont pas complètement aléatoires. Dans ce cas, en partant du principe que par malchance, la première clé et la deuxième clé sont les mêmes, et que le chiffrement est réversible, alors ce surchiffrement produira le message original !

Dans le cas où des algorithmes mutuellement distincts sont employés, avec des clés indépendantes et aléatoires, alors un surchiffrement est au moins aussi robuste que le premier algorithme de la chaîne (Ueli Maurer et James Massey, 1993). Si les chiffrements sont commutatifs — c'est le cas si le surchiffrement ne comprend que des chiffrements par flot additifs (utilisation par exemple de XOR pour chiffrer le texte) — alors la chaîne est aussi robuste que le chiffrement le plus fort.

Liens externes[modifier | modifier le code]