Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
18. Mai 2021
Die Seite Cryptographic Standards and Guidelines ist auch sehr interessant (nicht nur für SHA3). Dort wird für SHA3 (FIPS 202) für einige Testvektoren Runde für Runde die Keccak Permutation (Beispiel) durchgerechnet. Das ist v.a. für Leute sehr brauchbar, welche den schnellsten SHA3 Hash Code programmieren wollen und nicht gleich auf Anhieb den gewünschten Output erhalten.
Wieso NIST derart...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
15. Mai 2021
Wenn du richtig viel Speed willst, baust du dir eh SHA3-Hardware ;-). viel schnellere, als jene, welche man im Netz findet. Falls jemand hier beim BND o.ä. arbeitet: Wie schnell sind eure Lösungen?]
Auf
https://blogs.embarcadero.com/powerful-advanced-hashing-library-for-delphi-windows-development/
wird
https://github.com/Xor-el/HashLib4Pascal
Ich nehme mal an, dass du das nicht auch...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
15. Mai 2021
Punkto Speed.
Hast du dies hier mal angeschaut:
https://www.delphitools.info/2016/04/19/new-sha-3-permutation-kernel/
oder ist es vielleicht bereits eingebaut (?).
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
14. Mai 2021
Mein Testvektor.
var
s : RawByteString;
...
for var i := 1 to 10 do
s := s + 'e21et2e2et1208e7t12e07812te08127et1028e7t1208e7gd81d872t178r02tr370823';
s := s + 'TurboMagic';
// Rechnen
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
14. Mai 2021
Nur für himitsu ;-).
function min(const a,b : integer):integer;inline;
begin
if a<b then Result := a else Result := b;
end;
procedure THash_SHA3Base.Calc(const Data; DataSize: Integer);
var prorunde, absorbiere_bytes : integer;
gelesen : integer;
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
14. Mai 2021
Jo... besten Dank. Ich deklariere - wenn ich auch mal kurze Hilfsfunktionen schreibe ;-) - auch inline, wo's sinnvoll ist.
Einen sonnigen Tag wünsche ich uns allen.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
13. Mai 2021
Das wollte ich eigentlich zuerst schreiben: Wenn's funktioniert, dann ist es ja sicher auch richtig ;-).
Deinen Code muss ich dann mal laden, wenn...
Du verarbeitest bei SHA3-224 bei einer Wortlänge von 2^6 im Zustandsvektor bei der Absorption jeweils eine Blockgrösse von r = 25*2^6 - 2*224 = 1600 - 2*224 = 1152 Bit, dies entspricht deinen 144 Byte. Also ok.
Dann nehme ich an, dass...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
13. Mai 2021
Hallo TM
kannst du mal anhand eines konkreten Beispiels
- Länge Zustandsvektor
- Länge Hash
- Blockgrösse bei Absorption
erläutern, was du tust?
Durch die "Länge" des verwendeten Zustandsvektors und die Länge des Hashs ist die Blockgrösse bei jedem Absorptionsschritt ja eigentlich vorgegeben - und du hast damit keinen Spielraum, wie viele Bits des Zustandsvektors bzw. der Nachricht je...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
12. Mai 2021
Du solltest deine Arbeit unbedingt hier anmelden und verlinken lassen:
https://keccak.team/software.html
(Falls du nicht bereit drauf bist, unter anderem Namen ;-))