![]() |
AW: Modulo -Algorithmus: übersetzng von pseudocode
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):
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! |
AW: Modulo -Algorithmus: übersetzng von pseudocode
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. |
AW: Modulo -Algorithmus: übersetzng von pseudocode
Zitat:
|
AW: Modulo -Algorithmus: übersetzng von pseudocode
DEC war glaub ich komplett öffentlich, aber bei DECMath fehlte was.
|
AW: Modulo -Algorithmus: übersetzng von pseudocode
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ist das von meinem Share. Kann gerade nicht prüfen ob komplett oder was fehlt. Das entstammt dem DEC 5.1c Archiv.
|
AW: Modulo -Algorithmus: übersetzng von pseudocode
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: ![]() Und das sind leider bloß Interfaces. Also keine Notwendigkeit das zu Veröffentlichen. Grüße TurboMagic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz