Zum Hauptinhalt springen

1. Introduction (Einführung)

1. Introduction (Einführung)

DSA [FIPS-186-4] und ECDSA [X9.62] sind zwei standardmäßige digitale Signaturverfahren. Sie bieten Datenintegrität und verifizierbare Authentizität in verschiedenen Protokollen.

Eine Eigenschaft von DSA und ECDSA ist, dass sie für jede Signaturerzeugung einen frischen Zufallswert erzeugen müssen (im Folgenden als k bezeichnet). Für effektive Sicherheit muss k zufällig und gleichmäßig aus einer Menge modularer Ganzzahlen ausgewählt werden, unter Verwendung eines kryptografisch sicheren Prozesses. Selbst geringfügige Verzerrungen in diesem Prozess können in Angriffe auf die Signaturverfahren umgewandelt werden.

Die Notwendigkeit einer kryptografisch sicheren Zufallsquelle erweist sich als Hindernis für die Bereitstellung von DSA- und ECDSA-Signaturverfahren in einigen Architekturen, in denen die sichere Zufallszahlengenerierung eine Herausforderung darstellt, insbesondere in eingebetteten Systemen wie Smartcards. In diesen Systemen wird der RSA-Signaturalgorithmus, wie in Public-Key Cryptography Standards (PKCS) #1 [RFC3447] spezifiziert (mit "type 1" Padding, nicht dem Probabilistic Signature Scheme (PSS)) und ISO 9796-2 [ISO-9796-2], oft bevorzugt, obwohl er rechnerisch aufwendiger ist, da RSA (mit solchen Padding-Schemata) deterministisch ist und daher keine Zufallsquelle erfordert.

Die randomisierte Natur von DSA und ECDSA macht Implementierungen auch schwieriger zu testen. Automatische Tests können nicht zuverlässig erkennen, ob die Implementierung eine Zufallsquelle von ausreichend hoher Qualität verwendet. Dies macht den Implementierungsprozess anfälliger für katastrophale Fehler, die oft erst entdeckt werden, nachdem das System bereitgestellt und erfolgreich angegriffen wurde.

Es ist möglich, DSA und ECDSA in deterministische Verfahren umzuwandeln, indem ein deterministischer Prozess zur Erzeugung des "zufälligen" Wertes k verwendet wird. Dieser Prozess muss einige kryptografische Eigenschaften erfüllen, um die Eigenschaften der Verifizierbarkeit und Unfälschbarkeit beizubehalten, die von Signaturverfahren erwartet werden, nämlich: Für jeden, der den privaten Signaturschlüssel nicht kennt, muss die Abbildung von Eingabenachrichten auf die entsprechenden k-Werte rechnerisch nicht unterscheidbar sein von dem, was eine zufällig und gleichmäßig gewählte Funktion (von der Menge der Nachrichten zur Menge der möglichen k-Werte) zurückgeben würde.

Dieses Dokument beschreibt ein solches Verfahren. Es hat die folgenden Eigenschaften:

  • Erzeugte Signaturen bleiben vollständig kompatibel mit einfachem DSA und ECDSA. Entitäten, die die Signaturen verifizieren, müssen nicht geändert werden oder nicht einmal über den zur Erzeugung von k verwendeten Prozess informiert sein.

  • Die Schlüsselpaarerzeugung wird nicht verändert. Bestehende private Schlüssel können mit deterministischem DSA und ECDSA verwendet werden.

  • Die Verwendung von deterministischem DSA und ECDSA impliziert keine zusätzliche Speicheranforderung für geheime oder öffentliche Werte.

  • Deterministisches DSA und ECDSA können auf die gleichen Eingaben wie einfaches DSA und ECDSA angewendet werden, nämlich einen Hash-Wert, der über die zu signierende Nachricht berechnet wird, mit einer kryptografisch sicheren Hash-Funktion.

Einige relativ willkürliche Entscheidungen wurden bei der Definition von deterministischem (EC)DSA, wie in diesem Dokument spezifiziert, getroffen, dies wurde getan, um es so universell anwendbar wie möglich zu machen und so die Nützlichkeit der enthaltenen Testvektoren zu maximieren. Siehe Abschnitt 3.6 für eine Diskussion einiger möglicher Varianten.

Es ist zu beachten, dass die Schlüsselpaarerzeugung immer noch eine Zufallsquelle erfordert. In eingebetteten Systemen, in denen die Qualität der Zufälligkeit ein Problem ist, kann oft arrangiert werden, dass die Schlüsselpaarerzeugung unter kontrollierteren Bedingungen erfolgt (z.B. während eines speziellen Smartcard-Initialisierungsverfahrens oder unter physischer Kontrolle vereidigter Agenten) oder der Schlüssel könnte sogar anderswo erzeugt und in das Gerät importiert werden. Deterministisches DSA und ECDSA befassen sich nur mit der Notwendigkeit der Zufälligkeit zum Zeitpunkt der Signaturerzeugung.

1.1. Requirements Language (Anforderungssprache)

Die Schlüsselwörter "MUST" (MUSS), "MUST NOT" (DARF NICHT), "REQUIRED" (ERFORDERLICH), "SHALL" (SOLL), "SHALL NOT" (SOLL NICHT), "SHOULD" (SOLLTE), "SHOULD NOT" (SOLLTE NICHT), "RECOMMENDED" (EMPFOHLEN), "MAY" (KANN) und "OPTIONAL" (OPTIONAL) in diesem Dokument sind zu interpretieren wie in RFC 2119 [RFC2119] beschrieben.