Assiste.com
cr 01.04.2012 r+ 22.10.2024 r- 22.10.2024 Pierre Pinard. (Alertes et avis de sécurité au jour le jour)
Sommaire (montrer / masquer) |
---|
En informatique et en cryptographie, Whirlpool (parfois appelé WHIRLPOOL) est une fonction de hachage cryptographique. Il a été conçu par Vincent Rijmen (co-créateur de Advanced Encryption Standard) et Paulo S. L. M. Barreto, qui l'ont décrit pour la première fois en 2000.
Le hachage a été recommandé par le projet NESSIE. Il a également été adopté par l'Organisation internationale de normalisation (ISO) et la Commission électrotechnique internationale (CEI) dans le cadre de la norme internationale conjointe ISO / CEI 10118-3.
|
La galaxie Whirlpool (M51 – Galaxie du Tourbillon en français) est un couple de galaxies, à environ 27,4 millions d'années-lumière de la Terre, dans la constellation des « Chiens de chasse ». Elle est composée d'une galaxie spirale régulière massive dont le diamètre est estimé à 100 000 années-lumière et d'une petite galaxie irrégulière. Ses bras spiraux facilement visibles lui ont valu son surnom de « galaxie tourbillon » (Whirlpool Galaxy en anglais).
[4] Elle a donné son nom à la fonction de hachage Whirlpool.
|
[7] Whirlpool est un hachage conçu après le chiffrement par bloc carré et est considéré comme faisant partie de cette famille de fonctions de chiffrement par bloc.
Whirlpool est une construction Miyaguchi-Preneel basée sur une norme de cryptage avancé (AES) substantiellement modifiée.
Whirlpool prend un message d'une longueur inférieure à 2256 bits et renvoie un résumé de message de 512 bits.
Les auteurs ont déclaré que « WHIRLPOOL n'est pas (et ne sera jamais) breveté. Il peut être utilisé gratuitement à toutes fins. »
|
Le Whirlpool d'origine s'appellera Whirlpool-0, la première révision de Whirlpool sera appelée Whirlpool-T et la dernière version sera appelée Whirlpool dans les vecteurs de test suivants.
Lors de la première révision en 2001, la S-box est passée d'une version générée aléatoirement avec de bonnes propriétés cryptographiques à une qui a de meilleures propriétés cryptographiques et est plus facile à implémenter dans le matériel.
Dans la deuxième révision (2003), une faille dans la matrice de diffusion a été trouvée qui abaissait la sécurité estimée de l'algorithme en dessous de son potentiel. Le changement des constantes matricielles rotatives 8x8 de (1, 1, 3, 1, 5, 8, 9, 5) à (1, 1, 4, 1, 8, 5, 2, 9) a résolu ce problème.
|
La fonction de hachage Whirlpool est une construction Merkle – Damgård basée sur un chiffrement de bloc de type AES W en mode Miyaguchi – Preneel. [2]
Le chiffrement par blocs W est constitué d'une matrice d'état 8 × 8 S {\ displaystyle S} S d'octets, pour un total de 512 bits.
Le processus de cryptage consiste à mettre à jour l'état avec quatre fonctions de round sur 10 rounds. Les quatre fonctions rondes sont SubBytes (SB), ShiftColumns (SC), MixRows (MR) et AddRoundKey (AK). Au cours de chaque tour, le nouvel état est calculé comme S = AK ? MR ? SC ? SB (S) {\ displaystyle S = AK \ circ MR \ circ SC \ circ SB (S)} S = AK \ circ MR \ circ SC \ circ SB (S).
L'opération SubBytes applique une permutation non linéaire (la S-box) à chaque octet de l'état indépendamment. Le S-box 8 bits est composé de 3 S-box 4 bits plus petits.
L'opération ShiftColumns décale cycliquement chaque octet dans chaque colonne de l'état. La colonne j a ses octets décalés vers le bas de j positions.
L'opération MixRows est une multiplication à droite de chaque ligne par une matrice 8 × 8 sur GF (2 8) {\ displaystyle GF ({2 ^ {8}})} {\ displaystyle GF ({2 ^ {8}}) }. La matrice est choisie de telle sorte que le nombre de branches (une propriété importante lorsque l'on regarde la résistance à la cryptanalyse différentielle) est 9, ce qui est maximal.
L'opération AddRoundKey utilise xor au niveau du bit pour ajouter une clé calculée par la planification des clés à l'état actuel. La planification des clés est identique au chiffrement lui-même, sauf que la fonction AddRoundKey est remplacée par une fonction AddRoundConstant qui ajoute une constante prédéterminée à chaque tour.
L'algorithme Whirlpool a subi deux révisions depuis sa spécification originale de 2000.
Les personnes incorporant Whirlpool utiliseront très probablement la dernière révision de Whirlpool; bien qu'il n'y ait pas de failles de sécurité connues dans les versions antérieures de Whirlpool, la révision la plus récente présente de meilleures caractéristiques d'efficacité d'implémentation matérielle et est également susceptible d'être plus sécurisée. Comme mentionné précédemment, c'est également la version adoptée dans la norme internationale ISO / CEI 10118-3.
Les hachages Whirlpool de 512 bits (64 octets) (également appelés résumés de messages) sont généralement représentés par des nombres hexadécimaux à 128 chiffres.
Ce qui suit illustre une entrée ASCII de 43 octets (sans les guillemets) et les hachages Whirlpool correspondants :
« The quick brown fox jumps over the lazy dog » (« Le renard brun rapide saute par-dessus le chien paresseux ») est un pangram de langue anglaise - une phrase qui contient toutes les lettres de l'alphabet.
Version | Input String | Computed Hash |
---|---|---|
Whirlpool-0 | "The quick brown fox jumps over the lazy dog" | 4F8F5CB531E3D49A61CF417CD133792CCFA501FD8DA53EE368FED20E5FE0248C 3A0B64F98A6533CEE1DA614C3A8DDEC791FF05FEE6D971D57C1348320F4EB42D |
Whirlpool-T | "The quick brown fox jumps over the lazy dog" | 3CCF8252D8BBB258460D9AA999C06EE38E67CB546CFFCF48E91F700F6FC7C183 AC8CC3D3096DD30A35B01F4620A1E3A20D79CD5168544D9E1B7CDF49970E87F1 |
Whirlpool | "The quick brown fox jumps over the lazy dog" | B97DE512E91E3828B40D2B0FDCE9CEB3C4A71F9BEA8D88E75C4FA854DF36725F D2B52EB6544EDCACD6F8BEDDFEA403CB55AE31F03AD62A5EF54E42EE82C3FB35 |
Même un petit changement dans le message (avec une probabilité extrêmement élevée de 1 - 10 - 154 {\ displaystyle 1-10 ^ {- 154}} 1-10 ^ {{- 154}}) entraînera un hachage différent, qui sera généralement complètement différent, tout comme le font deux nombres aléatoires indépendants. Ce qui suit montre le résultat de la modification de l'entrée précédente par une seule lettre (un seul bit, même, dans les codages compatibles ASCII), en remplaçant d par e:
Version | Input String | Computed Hash |
---|---|---|
Whirlpool-0 | "The quick brown fox jumps over the lazy eog" | 228FBF76B2A93469D4B25929836A12B7D7F2A0803E43DABA0C7FC38BC11C8F2A 9416BBCF8AB8392EB2AB7BCB565A64AC50C26179164B26084A253CAF2E012676 |
Whirlpool-T | "The quick brown fox jumps over the lazy eog" | C8C15D2A0E0DE6E6885E8A7D9B8A9139746DA299AD50158F5FA9EECDDEF744F9 1B8B83C617080D77CB4247B1E964C2959C507AB2DB0F1F3BF3E3B299CA00CAE3 |
Whirlpool | "The quick brown fox jumps over the lazy eog" | C27BA124205F72E6847F3E19834F925CC666D0974167AF915BB462420ED40CC5 0900D85A1F923219D832357750492D5C143011A76988344C2635E69D06F2D38C |
Le hachage d'une chaîne de longueur nulle est:
Version | Input String | Computed Hash |
---|---|---|
Whirlpool-0 | "" | B3E1AB6EAF640A34F784593F2074416ACCD3B8E62C620175FCA0997B1BA23473 39AA0D79E754C308209EA36811DFA40C1C32F1A2B9004725D987D3635165D3C8 |
Whirlpool-T | "" | 470F0409ABAA446E49667D4EBE12A14387CEDBD10DD17B8243CAD550A089DC0F EEA7AA40F6C2AAAB71C6EBD076E43C7CFCA0AD32567897DCB5969861049A0F5A |
Whirlpool | "" | 19FA61D75522A4669B44E39C1D2E1726C530232130D407F89AFEE0964997F7A7 3E83BE698B288FEBCF88E3E03C4F0757EA8964E59B63D93708B138CC42A66EB3 |
|
La réputation de l'algorithme de calcul d'un hashcode (calcul d'un condensat - fonction de hachage) est de ne jamais produire deux hashcodes identiques si les objets (fichiers) contiennent la moindre différence. La fonction de hachage doit donc produire une clé unique d'identification d'une donnée unique (calcul homogène).
|
Les auteurs fournissent des implémentations de référence de l'algorithme Whirlpool, y compris une version écrite en C et une version écrite en Java. Ces implémentations de référence ont été publiées dans le domaine public.
Deux des premiers programmes cryptographiques courants largement utilisés qui ont commencé à utiliser Whirlpool étaient FreeOTFE, suivi de TrueCrypt en 2005. [citation nécessaire]
VeraCrypt (un fork de TrueCrypt) incluait Whirlpool (la version finale) comme l'un de ses algorithmes de hachage pris en charge.
|
Les outils les plus simples de calcul de hashcodes, et de très loin, sont ceux qui s'installent en tant que « propriété » additionnelle d'un fichier dans l'explorateur de fichiers de Windows.
SummerProperties
SummerProperties ajoute un onglet « CheckSums » aux propriétés d'un fichier, dans l'explorateur de fichiers de Windows, et propose 4 algorithmes de hashcodes : CRC-16, CRC-32, MD5 et SHA-1.
SummerProperties est gratuit, mais, bien qu'encore fonctionnels, les algorithmes qu'il propose ne sont plus suffisants :
CRC-16 et CRC-32 n'ont aucun intérêt et ne sont pas de véritables algorithmes de hachage, mais des « Contrôle de Redondance Cyclique ». On peut les oublier.
Des collisions peuvent être forgées à la demande contre les hachages MD5 et SHA-1.
On laisse tomber SummerProperties.
Voir SummerProperties.
HashTab
HashTab ajoute un onglet « Hachages » aux propriétés d'un fichier, dans l'explorateur de fichiers de Windows, et propose 30 algorithmes de hashcodes : (Adler32; Blake2sp; Btih; CRC-32; CRC-64; ED2K; Gost; Keccak-224; Keccak-256; Keccak-384; Keccak-512; MD2; MD4; MD5; Ripemd-128; Ripemd-160; Ripemd-256; Ripemd-320; SHA-1; SHA-256; SHA-256 base 64; SHA-384; SHA-512; SHA3-224; SHA3-256; SHA3-384; SHA3-512; TTH; Tiger; Whirlpool). Ce produit est gratuit.
Voir HashTab.
VT Hash Check (VirusTotal Hash Check)
VT Hash Check ajoute une propriété (sous le nom de Check File Hash) aux fichiers, dans l'explorateur de fichiers de Windows. VT Hash Check calcule un hashcode d'un fichier désigné par l'utilisateur, selon l'algorithme choisi parmi les 3 proposés (MD5, SHA-1, SHA-256 [recommandé]) et soumet instantanément ce hashcode au service multiantivirus gratuit en ligne VirusTotal(70 antivirus simultanés en juillet 2020).
Vous êtes vivement incités à installer VT Hash Check (gratuit; sous Windows).
|
Réputation des fonctions de hachage
On voit souvent, en matière de sécurité informatique, principalement avec les services d'analyses antivirus, qu'il ne faut pas/plus identifier le contenu d'un fichier avec certaines fonctions de hachage (hashcodes, condensats, Empreinte cryptographique), dont les fonctions MD5 et SHA-1, car les créations de collisions, les attaques en force brute ou les utilisations de tables Arc-en-ciel permettent de casser l'unicité du condensat ou de remonter à son contenu crypté. Le tableau suivant, établi par les auteurs de Whirlpool (dernière version de ce tableau le 7 novembre 2017), donne l'état de l'art des principales fonctions de hachages et leurs poursuites de résistance ou leurs échecs aux attaques.
Le symbole est utilisé pour désigner une attaque qui a été conduite avec succès pour casser une fonction de hachage (par exemple, en produisant explicitement une collision), ou si la complexité de l'attaque est si faible qu'il ne serait pas difficile de la conduire avec les technologies actuelles.
Le symbole indique une rupture théorique (plus rapide que les attaques par force brute ou les attaques par le paradoxe des anniversaires) ou une indication explicite des auteurs de la fonction qu'il faut l'éviter.
Le symbole signifie que la conception de la fonction ou une version réduite de celle-ci a été analysée par des tiers, repoussant les limites des techniques de cryptanalyse connues sans indiquer de faiblesse dans la conception complète.
Nom | Ref. | Version | Auteur(s) | Taille du bloc | Taille du condensat | Tours | Attaque(s) |
---|---|---|---|---|---|---|---|
AR | 1992 | ISO | ? | ? | ? | ||
Boognish | 1992 | Daemen | 32 | up to 160 | NA | ||
Cellhash | 1991 | Daemen, Govaerts, Vandewalle | 32 | up to 256 | NA | ? | |
FFT-Hash I | 1991 | Schnorr | 128 | 128 | 2 | ||
FFT-Hash II | 1992 | Schnorr | 128 | 128 | 2 | ||
FSB | 2005 | Augot, Finiasz, Sendrier | 336, 680, 1360 | 320, 400, 480 (†) | NA | ? | |
GOST R 34.11-94 | 1990 | Government Committee of Russia for Standards | 256 | 256 | NA | ? | |
HAS-160 | 2005 | Telecommunications Technology Association | 512 | 160 | 4×20 | ? | |
HAVAL | 1994 | Zheng, Pieprzyk, Seberry | 1024 | 128, 160, 192, 224, 256 | 3×32, 4×32, 5×32 | ||
LASH-n | 2006 | Bentahar, Page, Saarinen, Silverman, Smart | 4×n | n | NA | ? | |
MAA (‡) | 1988 | ISO | 32 | 32 | NA | ||
MAELSTROM-0 | 2006 | Gazzoni Filho, Barreto, Rijmen | 1024 | up to 512 | 10 | ? | |
MD2 | 1989 | Rivest | 512 | 128 | 18 | ||
MD4 | 1990 | Rivest | 512 | 128 | 3×16 | ||
1992 | Rivest | 512 | 128 | 4×16 | |||
N-Hash | 1990 | Miyaguchi, Ohta, Iwata | 128 | 128 | ? 8 | ||
PANAMA | 1998 | Daemen, Clapp | 256 | unlimited | NA | ||
Parallel FFT-Hash | 1993 | Schnorr, Vaudenay | 128 | 128 | 5 | ? | |
RADIOGATÚN[w] | 2006 | Bertoni, Daemen, Peeters, van Assche | 3×w | unlimited | NA | ? | |
RIPEMD | 1990 | The RIPE Consortium | 512 | 128 | 4×16 | ||
RIPEMD-128 | 1996 | Dobbertin, Bosselaers, Preneel | 512 | 128 | 4×16 | ? | |
RIPEMD-160 | 1996 | Dobbertin, Bosselaers, Preneel | 512 | 160 | 5×16 | ? | |
SHA-0 | 1991 | NIST/NSA | 512 | 160 | 4×20 | ||
1993 | NIST/NSA | 512 | 160 | 4×20 | |||
SHA-1-IME | 2005 | Jutla, Patthak | 512 | 160 | 80 | ? | |
2004 | NIST/NSA | 512 | 224 | 64 | |||
2000 | NIST/NSA | 512 | 256 | 64 | |||
2000 | NIST/NSA | 1024 | 384 | 80 | |||
2000 | NIST/NSA | 1024 | 512 | 80 | |||
SMASH | 2005 | Knudsen | 256 | 256 | NA | ||
Snefru-n | 1990 | Merkle | 512-n | n | ? 8 | ||
StepRightUp | 1995 | Daemen | 256 | 256 | NA | ||
Subhash | 1992 | Daemen | 32 | up to 256 | NA | ? | |
Tiger | 1996 | Anderson, Biham | 512 | 192 | 3×8 | ||
2000 | Barreto, Rijmen | 512 | 512 | 10 | ? | ||
Name | Ref. | Version | Author(s) | Block Size | Digest Size | Rounds | Attack(s) |
(†) Par sa propre nature, FSB (Fast Syndrome-Based) est moins résistant à la recherche de collision que les attaques par le paradoxe des anniversaires. Pour cette raison, sa taille de résumé (condensat) doit toujours être supérieure à deux fois la sécurité de bit souhaitée.
(‡) MAA est un code d'authentification de message (MAC - Message Authentication Code) plutôt qu'une fonction de hachage. Il a été inclus ici en raison de son importance dans le cadre de la norme ISO 8731-2.
Categorie | Autheur(s) | Ref. |
---|---|---|
Design | Damgård | |
Analyses | Black, Rogaway, Shrimpton | |
Attaques | Hoch, Shamir |
Fonction de hachega | Création | Créateur | Nombre de bits du hash | Notes | Obsolette - pas sûr |
---|---|---|---|---|---|
1957 - évoqué dans Cyclic Codes for Error Detection de Peterson, W. W. and D. T. Brown.. | N'est pas une fonction de hachage, mais 1 CRC (Calcul de Redondance Cyclique). | ||||
MD2 | 1989 | Ronald Rivest (MIT) | 128 | Attaque possible, même si pas utilisée. | Plus sûr. |
MD4 | 1990 | Ronald Rivest (MIT) | 128 | ||
1991 | Ronald Rivest (MIT) | 128 | |||
MD6 | 2008 | Ronald Rivest (MIT) avec un groupe. | 512 | Calcul extrêmement rapide d'immenses nombres de hashs en parallèle sur d'immenses fichiers. Arbre de Merkle et NLFSR. | |
SHA-0 | 1993 | NSA | 160 | Famille de 6 fonctions de hachage comprenant : | Collisions suspectes volontairement permises par la NSA. 1ère découverte de collision complète par Antoine Joux (cryptologue français) en août 2004. |
1995 | NSA | 160 | 2019 - Risque (actuellement théorique) | ||
2001 | NSA | SHA-224 - 224 | Famille de six fonctions de hachage avec des digests (valeurs de hachage) de 224, 256, 384 ou 512 bits: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256 . | Résistent aux collisions | |
SHA-3 | 2015 | Guido Bertoni, Joan Daemen, Michaël Peeters et Gilles Van Assche | SHA3-224 - 224 | Famille de six fonctions de hachage basées sur RadioGatún, du même groupe d'auteurs, présenté en août 2006. | Résistent aux collisions |
2001 | NSA | 256 | Il est conseillé universellement d'abandonner MD5 et SHA-1 au profit de SHA-256, principalement dans le hachage des mots de passe, même si cela occupe plus le processeur et rend les bases de données d'identifiants/mots de passe plus volumineuses. | Résistent aux collisions |
Whirlpool - Algorithme - calcul de hashcode (condensat)
↑ [01] Florian Mendel1, Christian Rechberger, Martin Schläffer, Søren S. Thomsen (2009-02-24). The Rebound Attack: Cryptanalysis of Reduced Whirlpool and Grøstl (PDF). Cryptage logiciel rapide: 16e atelier international.
↑ [02] Paulo S. L. M. Barreto (25/11/2008). "La fonction de hachage WHIRLPOOL". Archivé de l'original le 2017-11-29. Récupéré le 08/08/2018.
↑ [03] Barreto, Paulo S. L. M. & Rijmen, Vincent (2003-05-24). "La fonction de hachage WHIRLPOOL". Archivé de l'original (ZIP) le 2017-10-26. Récupéré le 08/08/2018.
↑ Kyoji, Shibutani & Shirai, Taizo (2003-03-11). "Sur la matrice de diffusion utilisée dans la fonction de hachage Whirlpool" (PDF). Récupéré le 08/08/2018.
↑ « Whirlpool ». Documentation de VeraCrypt. IDRIX. Récupéré le 08/08/2018.
↑ La Whirlpool Galaxy (M51 – Galaxy du Tourbillon en français) qui a donné son nom à l'algorythme de hachage Whirlpool. Wikipedia (Archive)
↑ The WHIRLPOOL Hash Function 29.11.201 - Dernière version officielle. Voir l'archive) (Archive)
Les encyclopédies |
---|