Einzelnen Beitrag anzeigen

Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
 
Delphi 11 Alexandria
 
#42

AW: DEC Design Frage (SHA3)

  Alt 22. Mai 2021, 17:29
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:
https://cryptosys.net/manapi/api_HASH_HexFromBits.html
Dort steht:
This example uses SHA-3-256 on a 22-bit message from the NIST SHAVS-SHA3 test vectors. Note that the convention for representing bit strings in hex used by NIST is different from our big-endian convention. For more details see Notes on SHA-3.
https://cryptosys.net/manapi/api_sha3notes.html
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!
Michael Gasser

Geändert von Michael II (22. Mai 2021 um 19:23 Uhr)
  Mit Zitat antworten Zitat