AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DEC Design Frage (SHA3)

Ein Thema von TurboMagic · begonnen am 12. Mai 2021 · letzter Beitrag vom 22. Mai 2021
Antwort Antwort
Seite 3 von 5     123 45      
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#21

AW: DEC Design Frage (SHA3)

  Alt 14. Mai 2021, 19:39
Seltsam.
Habe den Code jetzt korrigiert, die bisherigen Unittests laufen auch sauber durch.
Sieht jetzt so aus:

Delphi-Quellcode:
procedure THash_SHA3Base.Calc(const Data; DataSize: Integer);
var
  DataPtr : PByte;
  RoundSize : UInt32;
const
  // Maximum number of bytes one can process in one round
  MaxRoundSize = MaxInt div 8;
begin
  // due to the way the inherited calc is constructed it must not be called here!
  if (DataSize > 0) then
  begin
    DataPtr := PByte(@Data);

    while (UInt32(DataSize) > 0) do
    begin
      RoundSize := DataSize;
      if (RoundSize > MaxRoundSize) then
        RoundSize := MaxRoundSize;

      Absorb(DataPtr, RoundSize * 8);
      Dec(DataSize, RoundSize);
      Inc(DataPtr, RoundSize);
    end;
  end
  else
    FinalStep;
end;
Nur, dein neuer Testvektor liefert ein anderes Ergebnis als das von dir gepostete.
Hier der AUszug aus der SHA3_224.SetUp Methode mit dem neuen Vektor. Der Wert für
ExpectedOutputUTFStrTest stimmt nicht, solange aber schon für ExpectedOutput was
falsches raus kommt brauche ich den noch nicht anzupassen.

Delphi-Quellcode:
  lDataRow := FTestData.AddRow;
  lDataRow.ExpectedOutput := 'f7fc914c8fe4827d866b02df2459840260f4adb0db4deb9fa661756c';
  lDataRow.ExpectedOutputUTFStrTest := '0f1ad8cd5a85fe68319b67427e1f0b685498bc246a81a1f595c89e4e';
  lDataRow.AddInputVector(RawByteString('e21et2e2et1208e7t12e07812te08127et1028e7t1208e7gd81d872t178r02tr370823' +
                                        'e21et2e2et1208e7t12e07812te08127et1028e7t1208e7gd81d872t178r02tr370823' +
                                        'e21et2e2et1208e7t12e07812te08127et1028e7t1208e7gd81d872t178r02tr370823' +
                                        'e21et2e2et1208e7t12e07812te08127et1028e7t1208e7gd81d872t178r02tr370823' +
                                        'e21et2e2et1208e7t12e07812te08127et1028e7t1208e7gd81d872t178r02tr370823' +
                                        'e21et2e2et1208e7t12e07812te08127et1028e7t1208e7gd81d872t178r02tr370823' +
                                        'e21et2e2et1208e7t12e07812te08127et1028e7t1208e7gd81d872t178r02tr370823' +
                                        'e21et2e2et1208e7t12e07812te08127et1028e7t1208e7gd81d872t178r02tr370823' +
                                        'e21et2e2et1208e7t12e07812te08127et1028e7t1208e7gd81d872t178r02tr370823' +
                                        'e21et2e2et1208e7t12e07812te08127et1028e7t1208e7gd81d872t178r02tr370823' +
                                        'TurboMagic'));
Meldung von DUnit:
"TestCalcRawByteString: ETestFailure
at $006D7C6D
Index: 3 - expected: <f7fc914c8fe4827d866b02df2459840260f4adb0db4deb9fa 661756c>
but was: <f912f9fcba30ec218d9fc4b682a5ac3457635be038d08a8af 5f44241>"

Was läuft da falsch?

Grüße
TurboMagic
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#22

AW: DEC Design Frage (SHA3)

  Alt 14. Mai 2021, 20:18
Im Entwicklungszweig ist jetzt übrigens (das Unit Test Problem besteht weiterhin) der Start
einer neuen Zwischenbasisklasse für bitweise Hashes.
  Mit Zitat antworten Zitat
Michael II

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

AW: DEC Design Frage (SHA3)

  Alt 14. Mai 2021, 20:42
Seltsam.
Habe den Code jetzt korrigiert, die bisherigen Unittests laufen auch sauber durch.
Sieht jetzt so aus:

Meldung von DUnit:
"TestCalcRawByteString: ETestFailure
at $006D7C6D
Index: 3 - expected: <f7fc914c8fe4827d866b02df2459840260f4adb0db4deb9fa 661756c>
but was: <f912f9fcba30ec218d9fc4b682a5ac3457635be038d08a8af 5f44241>"

Was läuft da falsch?

Grüße
TurboMagic
Sorry TM..

Du fragst, was falsch läuft... ? Ich laufe falsch. Ich sollte mehr schlafen und weniger posten - oder wenn doch, dann nur vollständigen Code und nicht Auszüge.

Ich habe deine neuste Version gerade jetzt geladen. Auch meine Testnachricht wird von deiner Funktion korrekt "gehasht".
(Ich sehe gerade, dass in der soeben heruntergeladenen DEC von github immer noch die alte procedure THash_SHA3Base.Calc() drin ist. Hab's soeben mit deiner hier geposteten laufen lassen - auch ok.)

Das s := s+s+s ging verloren. So sieht's aus:

Delphi-Quellcode:
uses
  System.SysUtils,
  DECFormat,
  DECHash;

var
  s : RawByteString;
  WE : THash_SHA3_224;
begin
  WE := THash_SHA3_224.Create;
  try
    WriteLn('SHA3 224 Test');
    s := '';

   for var i := 1 to 10 do
      s := s + 'e21et2e2et1208e7t12e07812te08127et1028e7t1208e7gd81d872t178r02tr370823';
   s := s + 'TurboMagic';
   s := s + s + s;

   writeln( length(s).ToString );
   writeln( s );
    s := WE.CalcString(s, TFormat_HexL);
    WriteLn(s);
    writeln( s = 'f7fc914c8fe4827d866b02df2459840260f4adb0db4deb9fa661756c' );
  finally
    WE.Free;
  end;

  ReadLn;
Michael Gasser

Geändert von Michael II (14. Mai 2021 um 20:56 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#24

AW: DEC Design Frage (SHA3)

  Alt 14. Mai 2021, 21:21
Danke!
Habe das übernommen und jetzt passt das!

Meine Änderungen sind übrigens im Entwicklugnszweig.

und ja: richtig Schlafen hilft oft!

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Michael II

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

AW: DEC Design Frage (SHA3)

  Alt 15. Mai 2021, 14:36
Punkto Speed.

Hast du dies hier mal angeschaut:

https://www.delphitools.info/2016/04...tation-kernel/

oder ist es vielleicht bereits eingebaut (?).
Michael Gasser
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#26

AW: DEC Design Frage (SHA3)

  Alt 15. Mai 2021, 17:00
Hallo,

1. Ich habe jetzt bis auf einen Unit Test den ich mir noch anschauen muss
(Zeit läuft mal wieder weg) die bitweise Geschichte mal eingebaut.
Man muss dazu FinalBitLength auf die Bitzahl des letzten Byte setzen
und als Größe, falls ein solcher Parameter exisitiert,die Byteanzahl
inkl. des unvollständigen letzten Byte.

2. Zum Thema Geschwindigkeit: darum hab' ich mich noch kein bisschen
gekümmert. Zuerst muss mal die gerade in Arbeit befindliche Integration
funktionieren. Dann können wir zusammen auch das andere angehen.

3. Der bisherigen Integration fehlt auch noch die Umsetzung einiger
weiterer Testvektoren als Unittests. Das kommt schrittweise auch noch.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Michael II

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

AW: DEC Design Frage (SHA3)

  Alt 15. Mai 2021, 23:30
Wenn du richtig viel Speed willst, baust du dir eh SHA3-Hardware . [Sehr wahrscheinlich gibt es 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/powerf...s-development/

wird
https://github.com/Xor-el/HashLib4Pascal

Ich nehme mal an, dass du das nicht auch bist. Mit diesem Paket könntest du automatisiert Testvektoren durchrechnen lassen und mit deinen Werten vergleichen. (Viele Vektoren musst du ja nicht rechnen lassen.)

Der Download von Herrn Grange (siehe #25 - der mit dem schnellen Absorb) klappte heute nicht, die haben genau heute "maintenance".

Deine aktuelle SHA3 hat mehr Durchsatz als die oben verlinkte.

Die oben verlinkte SHA3_224 Throughput: 34.10 MB/s with Blocks of 64 KB
Deine: 52MB/s

SHA3_256 Throughput: 36.25 MB/s with Blocks of 64 KB
Deine: 52MB/s

SHA3_512 Throughput: 19.98 MB/s with Blocks of 64 KB
Deine: 28MB/s
Michael Gasser
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#28

AW: DEC Design Frage (SHA3)

  Alt 16. Mai 2021, 00:28
DEC selber, das ursprüngliche wurde von "einem" schlauen Typen (negaH / Hagen Reddmann) privat entwickelt, der aber vor ganzen eine Weile mit Delphi aufhörte.
Und so weit ich weiß, waren seine Implementationen oft die Schnellsten, von einem Privat-Entwickler. (nur ein paar kommerzielle/staatliche professionelle Entwicklergruppen waren teilweise etwas schneller)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (16. Mai 2021 um 10:32 Uhr)
  Mit Zitat antworten Zitat
Michael II

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

AW: DEC Design Frage (SHA3)

  Alt 16. Mai 2021, 09:49
DEC selber, das ursprüngliche wurde von "einem" schlauen Typen privat entwickelt, der aber vor eine Weile verstarb.
Und so weit ich weiß, waren seine Implementationen oft die Schnellsten, von einem Privat-Entwickler. (nur ein paar kommerzielle/staatliche professionelle Entwicklergruppen waren teilweise etwas schneller)
Ja ich weiss - ich sollte den Urheber* natürlich unbedingt auch erwähnen.
Der Link bei #25 führt zu einer Webseite (*Wolfgang Erhardts DEC wird erwähnt) mit Permutationscode von Eric Grange, welcher offenbar schneller ist als DECHash.THash_SHA3Base.KeccakPermutation(var state: TState_L);

Allgemein und nicht speziell für diesen Code: Kennst du Software, welche einfachen Code wie unter DECHash.THash_SHA3Base.KeccakPermutation(var state: TState_L); automatisch analysiert und punkto Speed optimieren kann? (abhängig von der Hardware-Umgebung, vom möglichen Input,...) Und schreib jetzt nicht Compiler )
Michael Gasser
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#30

AW: DEC Design Frage (SHA3)

  Alt 16. Mai 2021, 10:00
Hallo,

1. Der Benchmark bezieht sich auf diese hier, oder?
https://github.com/Xor-el/HashLib4Pascal

2. An der bin ich nicht beteiligt, die enthält aber ein paar Algorithmen (ich rede jetzt nicht
von den nicht kryptographischen) die in DEC noch fehlen. Aber eins nach dem anderen.

3. Der ursprüngliche Autor der DEC war Haagen Redmann. Ist der gestorben?
Der hatte irgendwann einfach kein Interesse mehr daran. Die DEC ging dan auf Assertor
(Frederik Winkelsdorf, Freelancer aber leider nicht mehr im Delphi Umfeld) über und
dann bin ich eingestiegen und habe nauch einiger Zeit der "Betreuung" meines Tuns durch
Frederik die DEC dann ganz übernommen, freue mich aber genre über weitere unterstützer,
da auch meine Zeit und Kenntnisse endlich sind.

4. Der Autor der eingebauten SHA3 Lösung war der tatsächlich gestorbene Wolfgang Erhardt.

So und ich mach mich jetzt an ein paar Formatierungsverbesserungen und in der SHA3Base
sind glaube ich auch noch ein paar Sachen public die eher private/protected sein sollten...

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 5     123 45      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz