Shacal
Shacal-1 et Shacal-2 sont des algorithmes de chiffrement par blocs basés sur les fonctions de hachage cryptographique de type SHA. Ils ont été conçus par Helena Handschuh et David Naccache, cryptographes de la société Gemplus productrice de cartes à puces. Ils ont depuis quitté cette société.
Concepteur(s) | Helena Handschuh, David Naccache |
---|---|
Première publication | 2001 |
Dérivé de | la fonction de hachage cryptographique SHA-1 |
Chiffrement(s) basé(s) sur cet algorithme | aucun |
Taille(s) du bloc | 160 bits |
---|---|
Longueur(s) de la clé | 128 à 512 bits |
Structure | fonction de compression réversible |
Nombre de tours | 80 |
Meilleure cryptanalyse
attaque rectangle par Eli Biham et al. sur 49 tours
Shacal-1 (simplement nommé Shacal à l'origine) est un chiffrement à 160 bits par blocs basé sur SHA-1 et supporte des clés de 128 à 512 bits. Shacal-2 est un chiffrement à 256 bits par blocs basé sur la fonction de hachage cryptographique SHA-256.
En 2003, Shacal-2 fut sélectionné par le projet Nessie comme l'un de leurs dix-sept algorithmes recommandés.
Architecture
modifierShacal est basé sur les observations de SHA-1 suivantes :
La fonction de hachage SHA-1 est structurée autour d'une fonction de compression. Celle-ci prend en entrée un registre de 160 bits et des données sur 512 bits puis envoie un autre registre de 160 bits en sortie. La fonction de hachage travaille par répétition de la fonction de compression sur des blocs de 512 bits et, chaque fois, met à jour le registre en conséquence. Cette fonction de compression est aisément réversible si le bloc de données est connu, c'est-à-dire connaissant les données et le résultat de la compression, on peut calculer le contenu du registre d'entrée.
Shacal utilise SHA-1 comme fonction de chiffrement par bloc en prenant le registre d'entrée comme bloc de données et les données en entrée comme clé. En d'autres termes, Shacal réinterprète la fonction de compression de SHA-1 comme un chiffrement à 160 bits par blocs, avec une clé de 512 bits. Les clés plus courtes sont utilisables en complétant par des 0 (zéro) à concurrence des 512 bits. Shacal n'est pas prévu pour être utilisé avec des clés inférieures à 128 bits.
Cryptanalyse
modifierComme tout algorithme de chiffrement par blocs, il est possible de traiter des messages plus longs en chaînant les blocs grâce à des modes de chiffrement comme le CBC, CTR ou encore OFB. Si l'algorithme résiste aux attaques originales comme la cryptanalyse linéaire et différentielle, des variantes permettent d'attaquer plusieurs tours.
Une combinaison des deux, la cryptanalyse différentielle-linéaire a été appliquée sur Shacal-2. L'équipe de Jongsung Kim a présenté une attaque par différentielles impossibles sur 30 tours. Une attaque rectangle sur 49 des 80 tours a été proposée par Eli Biham et al. D'autres attaques similaires comme l'attaque boomerang sont applicables.
Références
modifier- Eli Biham, Orr Dunkelman, Nathan Keller: Rectangle Attacks on 49-Round Shacal-1. FSE 2003: p. 22-35.
- Helena Handschuh, Lars R. Knudsen, Matthew J. B. Robshaw: Analysis of SHA-1 in Encryption Mode. CT-RSA 2001: p. 70-83.
- Seokhie Hong, Jongsung Kim, Guil Kim, Jaechul Sung, Changhoon Lee, Sangjin Lee: Impossible Differential Attack on 30-Round Shacal-2. Indocrypt 2003: p. 97-106.
- Jongsung Kim, Guil Kim, Sangjin Lee, Jongin Lim and Junghwan Song, Related-Key Attacks on Reduced Rounds of Shacal-2, Indocrypt 2004, p. 175-190.
- Jongsung Kim, Guil Kim, Seokhie Hong, Sangjin Lee, Dowon Hong: The Related-Key Rectangle Attack — Application to Shacal-1. Acisp 2004: p. 123-136.
- Jongsung Kim, Dukjae Moon, Wonil Lee, Seokhie Hong, Sangjin Lee, Seokwon Jung: Amplified Boomerang Attack against Reduced-Round Shacal. Asiacrypt 2002: p. 243-253.
- Markku-Juhani Olavi Saarinen: Cryptanalysis of Block Ciphers Based on SHA-1 and MD5. FSE 2003: p. 36-44.
- YongSup Shin, Jongsung Kim, Guil Kim, Seokhie Hong, Sangjin Lee: Differential-Linear Type Attacks on Reduced Rounds of Shacal-2. Acisp 2004: p. 110-122.