Einzelnen Beitrag anzeigen

Michael II

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

AW: DEC Design Frage (SHA3)

  Alt 20. Mai 2021, 00:41
Ich habe jetzt noch die in #25 erwähnte Optimierung getestet. Eric Granges optimierter ASM-Code schafft bei SHA3_256 rund 160MB/s. DEC momentan rund 52MB/s.
Wie hast du das getestet?
Sein Projekt runtergeladen und ausgeführt?

Ich muss meine SHA3 Arbeiten (da steht noch die Sache mit dem Umstellen des Fehlerhandlings
aus und sicherheitshalber die Integration der besseren NIST Testvektoren) wohl ein paar Tage auf Eis legen.
Jemand hat im SCOOP Algorithmus bugs gefunden, die aber scheinbar nur auf nicht Intel CPUs auftreten...
Scheint ein FPC Benutzer zu sein und hat auf Nachfrage (siehe Issues bei DEC) auch vernünftig reagiert.

Grüße
TurboMagic
Hallo TM,
ja, ich habe sowohl mit DEC wie mit Grange (über KeccakPermutationKernel in dwsSHA3.pas) viele Male einen RawByteString mit Länge 100 Mio Bytes verarbeiten lassen und die Zeit gemessen. (Uralt Core(TM) i7-3632QM).

Hast du gesehen TM? Rollo62 weiss wieso einfache Textvektoren wie XXXXXX bei NIST sogar Testvektoren sind. Ich wäre selber nie darauf gekommen. Danke Rollo62.

Zu TiGü #36: Hashwert -> Passwort geht eben relativ schlecht . Deshalb werden die von in #35 und #37 erwähnten Datenbanken angelegt und genutzt.

Zu #37: Klar... Hash Funktionen sind nicht injektiv: Die Definitionsmenge hat in der Regel mehr Elemente als die Wertemenge. Deshalb könnten in der Tat mehrere Passworte den gleichen Hashwert haben. - Wenn du aber davon ausgehst, dass Passworte eine Länge l mit l<=16 aufweisen und pro Zeichen ca. 100 voneinander verschiedene Werte verwendet werden, dann hast du für l<=16 ~2^106,32 Passworte*, die Menge aller SHA3-256 Werte aber ist mit 2^256 Elementen mächtiger. D.h. es wird maximal (maximal, falls 0 Kollisionen) nur jeder 2^(256-2^106.32)=2^149.68ste Hashwert überhaupt getroffen.
*hier sind alle Summe(100^l (l=1 bis 16)) möglichen Zeichen-Kombinationen berücksichtigt - meistens weisen Passworte Muster auf. Effektiv verwendet wird nur ein sehr kleiner Bruchteil aller möglichen Passworte.

"Brute Force" für einfache Passwörter: Mit "Grange" kann ich auf meinem Core(TM) i7-3632QM pro Sekunde für 1.3 Mio Passworte die SHA3-256 Werte berechnen lassen (Da für alle Passworte mit Länge l<=135Byte in Bit gilt l < r=b-2*n-2=1600-512, wird immer nur genau eine Keccak Permutation durchgeführt). Wenn ich alle Passworte der Form 4'000 mögliche Namen, dann 1 bis 3 stellige Zahl, und abschliessend eines aus 30 möglichen Sonderzeichen durchchecken will, dann sind das 4000*1000*30=120 Mio Passworte. Mit meinem bescheidenen Rechner sind nach zwei Minuten alle solchen Passworte erstellt und alle SHA3 Werte (multithreaded) berechnet. Im Schnitt finde ich mit Grange zu gegebenem SHA3-256 Hash ein solches Passwort (falls es in der Liste der 120 Mio Passwörter vorkommt) also in einer Minute. Grossrechner schaffen mehrere Milliarden SHA3 Werte pro Sekunde.
Spielerei.., ich weiss. Sehr wahrscheinlich kennen aber viele Menschen andere Menschen, welche ziemlich genau diesen Passworttyp verwenden.

Falls sich jemand hier mal mit SHA3 Hashes von kurzen* Vektoren (*Hash nach einer Keccak Permutation berechnet) befasst hat oder ein Paper dazu kennt... das wäre interessant.
Michael Gasser
  Mit Zitat antworten Zitat