Diskussion:Digital Signature Algorithm
Ist das nicht eher der Text, der unter Digital Signature Standard (DSS) zu finden sein sollte? Hier unter Digital Signature Algorithm wäre doch eine Beschreibung des Algorithmus' an sich viel besser aufgehoben. - Dyon 15:53, 31. Okt 2004 (CET)
gesagt, getan ;)
Sicherheit gefärdet oder trivial bei 160 Bit für x?
Ist es eine mögliche Schwachstelle, dass das Modul nach jeder Multiplikation des Potenzierens angewandt werden kann, wenn jedes Zwischenergebniss mit Endergebniss verglichen wird? p,q,g,y, werden veröffentlicht
Mit einem Computer kann das so wie aufgelistet berechnet werden (jede Zeile = 1 Befehl):
- g0 = g
- y = g
- i = x
- Sprungmarke: "Schleifenkopf"
- Wenn ( i gleich 1 ): y enthält nun das Ergebniss
- y = y * g0
- i = i - 1
- y = y mod p
- Wenn ( y gleich 0 ): y = p
- Gehe zur Sprungmarke "Schleifenkopf"
Falls aber i am anfang 1 enthält und bei jedem Schritt erhöht wird und nach ( y gleich 0 ) eine Abfrage kommt bei der y mit dem realen y verglichen wird, ist das momentane i ein mögliches Ergebniss für das "geheime" x.
- g0 = g
- y? = g
- i = 1
- Sprungmarke: "Schleifenkopf"
- Wenn ( Hacker denkt das er genug mögliche Ergebnisse hat ): Ergebnissliste enthält eine Liste möglicher x-Werte
- y? = y? * g0
- i = i + 1
- y? = y? mod p
- Wenn ( y? gleich 0 ): y? = p
- Wenn ( y? gleich y ): Füge y? zur Ergebnissliste hinzu.
- Gehe zur Sprungmarke "Schleifenkopf"
Die Frage ist nun wie groß so eine Ergebnissliste ist, ob die Ergebnisse eventuell noch weiter aussortiert werden können ( vielfache ect. ) und wie die Ergebnisse auf Richtigkeit validiert werden können.
x <= 2^{160}-1 ( 160 Bit ) p >= 2^{512}-1 ( 512 Bit )
- Anzahl möglicher x-Werte:
- ( Anzahl y-Treffer ~ Wenn ( i >= x ): >= 1, sonst: = 0 ) * i / x
- etwa: 1 * i / x
Hinweiß: Ich habe den Code absichtlich so geschrieben, dass auch diejenigen ihn lesen können die kaum Vorkenntnisse in Programmiersprachen und Mathematik haben.
-- .Ist das, was wir nicht verstehen das was uns zu Menschen macht? 21:07, 16. Sep. 2010 (CEST)
- Dein Code ist wie mit Scheisse geschriebenes auf der Wand: lesen kann man, aber ist unangenehm. Also schreib es entweder ordentlich - oder gar nicht.
- Wenn was unsicher ist, dann SHA-1, die nicht mehr empfohlen ist und 160 bit Fingerabdrucke produziert. Der, der Mathe und Programmieren kennt