Probabilistic Signature Scheme

Probabilistic Signature Scheme (PSS) oder probabilistisches Signaturverfahren ist ein von Mihir Bellare und Phillip Rogaway entwickeltes kryptographisches Paddingverfahren.[1] Im Zufallsorakelmodell kann mit dem PSS aus einer Falltürpermutation ein beweisbar sicheres Signaturverfahren konstruiert werden.

Verfahren

PSS wurde entwickelt, weil es für die damals existierenden Signaturverfahren keine Sicherheitsbeweise gab, die die Sicherheit des Signaturverfahrens in eine enge Beziehung zur Schwierigkeit des dem Verfahren zugrundeliegenden Problems setzten. Ein solcher Beweis konnte für PSS mit Hilfe von Zufallsorakeln, die ideale kryptologische Hashfunktionen modellieren, angegeben werden.

Signieren

Signatur bei RSA-PSS

Das Verfahren benutzt eine Hashfunktion und wird durch drei Werte parametrisiert:

  • , die Bitlänge der Menge auf der die Permutation operiert
  • , die Länge der Zufallszahl
  • , die Ausgabelänge der Hashfunktion

Zum Signieren wird die Nachricht zusammen mit einer Zufallszahl zu einem Wert gehasht. Da zur Verifikation benötigt wird, wird sie mit maskiert. Eine weitere Funktion liefert , die fehlenden Bits. Aus dem Bitstring ist nun mittels der geheimen Umkehrung der Einwegpermutation die Signatur berechnet.

Verifizieren

Verifikation bei RSA-PSS

Um eine Signatur einer Nachricht zu verifizieren, wird zuerst berechnet und in geparst. Dann wird die Zufallszahl wiedergewonnen und überprüft, dass , und ist. Falls diese Bedingungen erfüllt sind, ist die Signatur gültig, andernfalls nicht.

Varianten RSA-PSS

1996 beschrieben Bellare und Rogaway in ihrem Papier die Kombination von PSS mit RSA als Falltürpermutation. Im Zufallsorakelmodell ist RSA-PSS existentially unforgeable under chosen-message attacks (EUF-CMA) unter der RSA-Annahme.[1]

RSA-PSS ist in einer Variante im PKCS#1 ab Version 2.1 standardisiert. Insbesondere wird in diesem Standard die Nachricht zuerst gehasht; dies soll den Einsatz von Smartcards mit geringer Bandbreite als Signaturkarten ermöglichen.[2]

RSA-PSS ist Teil des großen Herstellerstandard Public-Key Cryptography Standards (PKCS), welcher schrittweise in Request for Comments (RFC) überführt wurde. Die Weiterentwicklung von RSAPSS erfolgt nur noch über RFC-Veröffentlichungen.

Normen und Standards

  • RFC8017 – Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.2. 2016 (englisch).
  • RFC4056 – Use of the RSASSA-PSS Signature Algorithm in Cryptographic Message Syntax (CMS). 2005 (englisch).
  • RFC5756 – Updates for RSAES-OAEP and RSASSA-PSS Algorithm Parameters. 2010 (Konvention für X.509 Zertifikate, englisch).

Einzelnachweise

  1. a b Mihir Bellare, Phillip Rogaway: The exact security of digital signatures: How to sign with RSA and Rabin. In: Advances in Cryptology – EUROCRYPT 96 (= Lecture Notes in Computer Science). Band 1070. Springer, 1996, S. 399–416 (ucdavis.edu).
  2. RSA Laboratories (Hrsg.): PKCS #1 v2.1: RSA Cryptography Standard. 2002 (rsasecurity.com [PDF]).

Auf dieser Seite verwendete Medien

RSASSA-PSS PSS-encode.png
Autor/Urheber: Сергеев Артём, Lizenz: CC BY-SA 4.0
illustration for PSS-encode function of RSASSA-PSS
RSASSA-PSS verify.png
Autor/Urheber: Сергеев Артём, Lizenz: CC BY 3.0
illustration for PSS-verify function of RSASSA-PSS