AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Modulo -Algorithmus: übersetzng von pseudocode

Modulo -Algorithmus: übersetzng von pseudocode

Ein Thema von Sequitar · begonnen am 19. Aug 2020 · letzter Beitrag vom 24. Aug 2020
Antwort Antwort
Seite 2 von 2     12
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.765 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Modulo -Algorithmus: übersetzng von pseudocode

  Alt 23. Aug 2020, 15:53
Hallo,

nach Außen hin ist zwar noch das Forenmitglied Assertor "Herr der DEC". An den ging
das damals von Hagen über, da Assertor aber stark ausgelasteter Freelancer ist und derzeit
auch leider nichts mehr wirklich mit Delphi macht, bin ich der Hauptentwickler.
Eigentlich warte ich auch drauf, dass mir Assertor das ganze Projekt richtig transferiert,
was er selber sogar will, aber krieg mal 'ne Kommunikation mit dem zustande...

Kurz und gut: momentan ist der Plan DEC 6.0 fertig zu stellen. Da sind dann keine wirklich
neuen Algorithmen drin (ok, neueste Variante vom Whirlpool Hash wurde nachgerüstet und
als erkannt wurde, dass Hagen's KDF2 eigentlich der KDF1 ist wurden es umbenannt und
KDF2 und KDF3 wurden nachgerüstet). Es gibt aber genug neue Dinge in 6.0 (siehe auch Doku):
  1. Doku erstellt (darfst die ruhig mal probelesen, ist meiner Meinung nach weitestgehend fertig)
  2. XMLDOC hinzugefügt (bis auf wenige Stellen wo ich den Code noch nicht verstanden habe)
  3. Über einen Compilerschalter Üurepascal Umsetzung aktivierbar, dadurch Crossplattform fähig
  4. Umbau des kryptischen Testprogramms auf DUnit tests
  5. Ergänzung weiterer Tests auch für bisher ungetestete Bereiche
  6. Erstellung einiger Demo Programme, 2 davon sind auch in Google Play (DEC Hash Demo und DEC Cipher Demo)
  7. Klassenregistrierungsmechanismus überarbeitet
  8. IsValid für die restlichen TFormatXXX Klassen umgesetzt

Ich glaube das ist doch schon mal einiges.
Der Plan für nach 6.0 sieht aus neuere und fehlende Algorithmen umzusetzen, eine Quelle
dafür dürfte sicherlich auch W. Erhardt's Bibliothek sein. Ich denke da z.B. an SHA224 und SHA3.
Das wären jedenfalls die nächsten Kandidaten und auch Passwort Hashes, die fehlen noch komplett.
Da hatte er glaube ich zumindest BCrypt umgesetzt. Auch weitere Kandidaten des SHA3 Wettbewerbs
sind denkbar. Das eine oder ander müsste man halt aus anderen Sprachen übersetzen.

Weitere Mitstreiter (außer mir hat an der 6.0 dankenswerterweise auch noch Norman etwas mitgearbeitet,
der anders als ich scheinbar auch mehr Zeit hat) gerne willkommen! Manchmal wäre auch schon das
Ergänzen/Schreiben von Unit-Tests eine Hilfe!
  Mit Zitat antworten Zitat
Michael II

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

AW: Modulo -Algorithmus: übersetzng von pseudocode

  Alt 24. Aug 2020, 10:32
Hallo Sequitar

falls ich deinen Code richtig lese (kompilieren kann ich ihn nicht und ich habe gerade weder Zeit noch ...), dann berechnest du den Vektor T bei jedem Aufruf von Tmod.quickmod() neu.

In den beiden Fällen 1. "X < Y" und 2. "bitlength(X) = k" benötigst du T nicht => nicht berechnen.

Ziel des Algos ist es, teure Divisionen durch "billige" Additionen zu ersetzen. Wenn du zur Ermittlung des Funktionswerts von Tmod.quickmod(X,Y) bitlength(Y) Mal Math.Modulo(Result, Y) aufrufst, wirkst du diesem Ziel (je nach Implementation von Math.Modulo) u.U. entgegen. [ Wenn du Tmod.quickmod(X,Y):=Math.Modulo(X, Y) setzen würdest, hättest du ja nur einen einzigen Math.Modulo() Aufruf und gleich noch das Resultat von Tmod.quickmod() [wobei man für eine genaue Bewertung die Bit-Längen von x und y und die Implementierung von Math.Modulo kennen muss].
Du müsstest prüfen, wie schnell deine Kombi aus Bitshift und Math.Modulo die bitlength(Y) Werte von T berechnet. (Wenn Y k:=bitlength(Y) Bit breit ist, blähst du mit deiner Bitshift Funktion Y auf bis zu 2*k-1 Bit Werte auf - muss das sein (?)) => evt. T anders berechnen.

Wenn du Tmod.quickmod(X,Y) für mehrere (x,y) berechnest und der Wert y dabei gleich bleibt, dann lohnt es sich (je nach Umgebung) die Werte von T abzuspeichern (T ist ja nur abgängig von y). Dies wird im Paper breit diskutiert. Der Algo ist genau in diesem Fall (mehrere quickmod() Berechnungen, y immer gleich) besonders effektiv (nur noch Additionen). Diesen Teil sehe ich in deinem Code noch nicht umgesetzt.
Michael Gasser
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Modulo -Algorithmus: übersetzng von pseudocode

  Alt 24. Aug 2020, 13:50
aber Part II ........
Ich glaube ich habe noch von DEC 5.1 die Part II Sourcen, wenn die benötigt werden kann ich mal suchen.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Modulo -Algorithmus: übersetzng von pseudocode

  Alt 24. Aug 2020, 14:04
DEC war glaub ich komplett öffentlich, aber bei DECMath fehlte was.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Modulo -Algorithmus: übersetzng von pseudocode

  Alt 24. Aug 2020, 14:10
Hier ist das von meinem Share. Kann gerade nicht prüfen ob komplett oder was fehlt. Das entstammt dem DEC 5.1c Archiv.
Angehängte Dateien
Dateityp: 7z Part_II.7z (23,6 KB, 6x aufgerufen)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.765 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Modulo -Algorithmus: übersetzng von pseudocode

  Alt 24. Aug 2020, 21:07
Hallo,

danke mal für's Suchen!
Nur: das ist im Prinzip genau das, was auch bei DEC 5.1c bzw. 5.2
auf der "offiziellen" DEC Release Seite ist:
https://github.com/winkelsdorf/Delph...ndium/releases
Und das sind leider bloß Interfaces.
Also keine Notwendigkeit das zu Veröffentlichen.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 11:31 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