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 16. September 2010 um 21:12 Uhr durch Philip.preisser (Diskussion | Beiträge). 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