Zum Inhalt springen

Diskussion:Digital Signature Algorithm

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 19. Juli 2011 um 01:51 Uhr durch 188.193.136.125 (Diskussion) (Sicherheit gefärdet oder trivial bei 160 Bit für x?). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Letzter Kommentar: vor 14 Jahren von Philip.preisser in Abschnitt Sicherheit gefärdet oder trivial bei 160 Bit für x?

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)Beantworten

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