Hallo TM
ich hatte damals für diverse RawByteStrings
DEC SHA3 Werte mit Werten von Online SHA3 Rechnern verglichen und dein
DEC und die anderen Rechner hatten alle immer den gleichen SHA3 Output geliefert.
Hast du noch was geändert seit damals (ausser dass du nun auch Bit basierte Vektoren als Input erlaubst)?
Gruss
M
Soeben habe ich Grange und
DEC geladen und für 300 RawByteStrings die SHA3-256 Hashwerte miteinander verglichen.
DEC und Grange liefern immer den gleichen SHA3_256 Wert.
Ich habe für den Test DECHash vom 17.5. verwendet. So habe ich getestet:
Delphi-Quellcode:
uses DWSSha3, DECFormat, DECHash;
function DEC( s : RawByteString ): RawByteString;
var WE : THash_SHA3_256;
begin
WE := THash_SHA3_256.Create;
// Wem try finally und Co hier fehlen: Behalt's für dich ;-)
Result := WE.CalcString(s, TFormat_HexL);
WE.free;
end;
function Grange( s : RawByteString ): RawByteString;
begin
Result := HashSHA3_256( s );
end;
procedure TForm97.Button2Click(Sender: TObject);
var okc : integer;
begin
s := '
';
okc := 0;
repeat
inc( okc, integer(
dec(s) = grange(s)));
s := s + ansichar( random(256 ) );
until length(s) >= 300;;
showmessage( okc.ToString );
end;
Zu NIST Bit-Testvektoren: Vielleicht hilft dies (?):
Zitat:
Unter obigem Link findest du Beispiele.
In Datei NIST SHA3_256Short findest du
Len = 22
Msg = 259028
Msg muss wahrscheinlich für
DEC umgewandelt werden nach (noch nicht getestet) [ALgo siehe Link oben]
Len = 22
Msg = 2590A0
und ergibt dann bei NIST wie hoffentlich bei
DEC:
MD = d5863d4b1ff41551c92a9e08c52177e32376c9bd100c611c60 7db840096eb22f
Du schreibst allerdings, dass
kein NIST Wert demjenigen von
DEC entspricht. Für Testvektoren der Länge l, l mod 8 = 0 ist keine Umwandlung nötig; die Resultate von
DEC und die tabellierten Werte von NIST sollten bereits jetzt ok sein.
Du solltest für deine TestUnit eine Funktion schreiben, welche direkt die NIST Files einlesen und durchrechnen kann. Dann schreibst du weniger Text
.
Ich teste zwei NIST Vektoren der Länge l, l mod 8=0:
NIST SHA3_256Short Vektor:
Len = 24
Msg = 2c4741
MD = 90f0c2039b0d8635f7e78ab90b26306fc2b39a388a877b3cd9 58d541eba2b158
DEC liefert:
90f0c2039b0d8635f7e78ab90b26306fc2b39a388a877b3cd9 58d541eba2b158
OK!
Und LEN = 32 auch OK!