2014-08-27 2 views
4

Je développe la fonction d'éponge de keccak et ai un comportement étrange au sujet du résultat de hachage. J'utilise la chaîne «abc» avec 24 bits (3 octets). Les vecteurs de test pour SHA-3 sur http://www.di-mgt.com.au/sha_testvectors.html disent que le résultat de SHA3-512 suit:Différents hachages pour Keccak/SHA-3 avec plusieurs programmes?

SHA3-512 de test Vector b751850b1a57168a 5693cd924b6b096e 08f621827444f70d 884f5d0240d2712e 10e116e9192af3c9 1a7ec57647e39340 57340b4cf408d5a5 6592f8274eec53f0

J'ai aussi utilisé version cryptopp 5,62 et il me donne cette sortie:

cryptopp 18587dc2ea106b9a1563e32b331242 1ca164c7f1f07bc922a9c83d77cea3a1e5d0c69910739025372dc14ac9642629379540c17e2a65b19d77aa511a9d00bb96

J'utilise HashTab 5.2.0.14 sous Windows et il me donne un fichier avec "abc" la même sortie:

HashTab 5.2.0.14 18587dc2ea106b9a1563e32b3312421ca164c7f1f07bc922a9c83d77cea3a1e5d0c69910739025372dc14ac9642629379540c17e2a65b19d77aa511a9d00bb96

Ainsi, il sont quelques références mais l'un d'entre eux est différent des autres. Il est expliqué sur le site Web que le message d'entrée est attaché avec 2 bits "10" définis dans le brouillon FIPS-202. Donc, CryptoPP et HashTab utilisent peut-être une autre implémentation, mais laquelle?

Maintenant, j'ai mon programme et le « code de référence » du site keccak et aussi une autre implémentation en python:

Mon programme renvoie cette valeur de hachage pour « abc »:

Mon programme 20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E6760

Voici le code de référence keccak (http://keccak.noekeon.org/KeccakReferenceAndOptimized-3.2.zip) sur le http://keccak.noekeon.org/files.html qui calcule la même valeur:

Keccak-Référence 3.2 message de taille 2040 bits avec Keccak [r = 1.024, c = 576] 20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E6760 (tronqué à la même longueur)

Ceci est la mise en œuvre du python de https://github.com/mgoffin/keccak-python/blob/master/Keccak.py résultant de la même valeur:

keccak-python Valeur après compression: 20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E67601173D04BF5AEC3EBBCA87696355C5FB4D72D00D2CC4F843A0A3A0ED8924A16FC377 69A3DB7C3A84F31E92375A7D74A0136D80A647FBC5AF8D733B43873A3709F

Mes questions:

1) Est-il vrai que Keccak et SHA-3 ont des sorties en fonction du NIST spécification faite avec FIPS 202?

2) Pourquoi ai-je maintenant trois valeurs de hachage différentes qui ne sont pas uniques?

3) La capacité de SHA3-512 a-t-elle été modifiée de manière à avoir une capacité de 512 bits et un débit de 1600-512? C'est une autre différence que j'ai lue dans une présentation sur SHA-3, mais je ne l'ai pas trouvée dans le document FIPS-202.

Merci beaucoup!

Cordialement,

Burak

Répondre

4

2) Comme mentionné dans https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub FIPS 202 a été modifié le 7 Avril 2014.

La dernière version de cryptopp est de 20.02.2013 (qui était la première version, y compris SHA3) voir http://www.cryptopp.com/

Ceci explique pourquoi CryptoPP produit un hachage différent par rapport à actu Al vecteurs de test. Je pense que la même chose s'appliquera à HashTab.

Questions connexes