brechen von RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING
Also Java hat einen Modus namens RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING
. Was bedeutet das überhaupt?
RFC3447, Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1, Abschnitt 7.1.2 Entschlüsselung, sagt Hasch und MGF sind beide Optionen für RSAES-OAEP-ENTSCHLÜSSELN. MGF ist eine eigene Funktion, definiert in Abschnitt B. 2.1 MGF1 und hat eine eigene Hash "- option" als gut.
Vielleicht ist der Hash "- option" in RSAES-OAEP-ENTSCHLÜSSELN und MGF1 sind, soll die gleiche sein oder vielleicht sind Sie es nicht, ist es mir unklar. Wenn Sie sind, dann denke ich, dass, wenn Sie haben RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING
das bedeutet, dass sha256 sollte für beide verwendet werden. Aber wenn Sie nicht sind, soll die gleiche sein, dann hätte man sha256 verwendet für RSAES-OAEP-ENTSCHLÜSSELN und beispielsweise sha1-MGF1 verwendet. Und wenn das der Fall ist, dann was ist die Funktion sha256 soll verwendet werden? Und welche hash-Algorithmus verwendet werden soll, für die andere Funktion?
Und was tut die EZB in diesem Kontext bedeuten? EZB ist ein symmetrischer block-cipher-Modus. Electronic Code Book. Vielleicht soll es bedeuten, wie Java beschäftigt sich mit der Klartext ist, die größer als die modulo? Wie vielleicht teilt den Klartext in Blöcken, die sind so groß wie die modulo und verschlüsselt dann alle mit RSA und verkettet Sie miteinander? Ich kann nur raten..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Standard für OAEP ist die Verwendung von SHA-1 für MGF1. Beachten Sie, dass der hash gewählt nicht haben, dass viel Einfluss auf die Sicherheit des OAEP, also meistens ist es Links zu diesem Standard.
Wir können dies leicht testen, indem Sie probeweise gegen
"OAEPPadding"
undOAEPParameterSpec
:Der code wird nicht mit einer Polsterung bezogen Ausnahme, wenn Sie Ersatz
"SHA-256"
für die MGF1 als parameter.Der Grund, warum der erweiterte Algorithmus benötigt wird, ist Kompatibilität mit anderen
Cipher
algorithmen. Code für z.B."RSA/ECB/PKCS1Padding"
keine Parameter, geschweige denn OAEP-Parameter. Also ohne die längere Zeichenfolge OAEP nicht funktionieren kann als drop-in-Ersatz.Betriebsart
"ECB"
nichts zu bedeuten in diesem Zusammenhang, sollte es gewesen sein"None"
oder es hätte sein sollen völlig aus. Sie können nur die Verschlüsselung eines einzigen Blocks mit Hilfe der RSA-Implementierung der SunRSA Anbieter.Wenn Sie wollen mehr verschlüsseln Sie Daten, erstellen Sie eine zufällige (AES) symmetrische Schlüssel aus und verschlüsseln Sie, dass die Verwendung von OAEP. Dann verwenden Sie die AES-Schlüssel verschlüsseln Sie Ihre spezifischen Daten. Dies wird als hybrid-Kryptosystem als es nutzt sowohl asymmetrische als auch symmetrische primitive zum verschlüsseln von Daten.
Beachten Sie, dass OAEP wird nicht unterstützt im JDK 7 (1.7) oder früher. OAEP ist Teil der Umsetzung der Anforderungen für die Java runtimes, die seit Java 8:
RSA/ECB/OAEPWithSHA-1AndMGF1Padding
(1024, 2048)RSA/ECB/OAEPWithSHA-256AndMGF1Padding
(1024, 2048)RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING
. dh. während der Java-Standard-crypto-provider verwendet die sha1-wie die MGF-hash bouncycastle zu verwenden scheint sha256. Dies dürfte wohl unabhängig verifiziert werden, aber so erscheint es mir..