Wie entschlüsseln Sie mit dem öffentlichen Schlüssel nach dem Verschlüsseln mit dem privaten Schlüssel?

448

Ich habe eine Datei mit einem symmetrischen Schlüssel über die opensslBefehlszeile verschlüsselt und dann diesen symmetrischen Schlüssel mit einem öffentlichen RSA-Schlüssel verschlüsselt. Ich experimentierte ein wenig mit der Ver- und Entschlüsselung und verschlüsselte dann versehentlich den symmetrischen Schlüssel mit meinem privaten RSA-Schlüssel. Die Verschlüsselung wurde ohne Fehler fortgesetzt.

Jetzt kann ich den symmetrischen Schlüssel nicht entschlüsseln, um zu meiner Datei zu gelangen. Gibt es einen opensslBefehl, der mit dem öffentlichen Schlüssel entschlüsselt?


Die Befehlszeile, die ich zur Verschlüsselung verwendet habe:

openssl rsautl -encrypt -inkey private_key.pem -in symmKey.key -out symmKey.enc 

und für die Entschlüsselung habe ich versucht zu verwenden:

openssl rsautl -decrypt -inkey public_key.pem -pubin -in symmKey.enc -out symmKey.key 

Ich habe auch versucht, das symmKey.encmit zu überprüfen :

openssl rsautl -verify -inkey public_key.pem -pubin -in symmKey.enc -out symmKey.key 

aber dann erhalte ich folgende Fehlermeldung:

RSA operation error 5968:error:0407008A:rsa routines:RSA_padding_check_PKCS1_type_1:invalid padding:crypto\rsa\rsa_pk1.c:67: 5968:error:04067072:rsa routines:rsa_ossl_public_decrypt:padding check failed:crypto\rsa\rsa_ossl.c:586:` 
1
Vielen Dank für Ihre Unterstützung, es hat mir sehr geholfen, und beim nächsten Mal werden meine Fragen zum Thema dieser Seite sein. vor 5 Jahren 0

1 Antwort auf die Frage

0
Maarten Bodewes

Sie haben eigentlich gar nicht mit dem privaten Schlüssel verschlüsselt. Die Kodierung des privaten Schlüssels enthält sowohl die für den privaten als auch den öffentlichen Schlüssel erforderlichen Komponenten . Die OpenSSL-Befehlszeile ist intelligent genug, um beim Verschlüsseln die öffentlichen Schlüsselkomponenten im verschlüsselten privaten Schlüssel auszuwählen .

So können Sie einfach mit dem privaten Schlüssel entschlüsseln:

openssl rsautl -decrypt -inkey private_key.pem -in symmKey.enc -out symmKey.key 

Beachten Sie, dass der Modul bereits im privaten Schlüssel vorhanden ist. Der öffentliche Schlüssel besteht aus dem Modulus und dem öffentlichen Exponent, der im Allgemeinen auf die fünfte Primzahl von Fermat: F4 mit dem Wert 0x010001 (65537) gesetzt wird. Daher ist es einfach, es im privaten Schlüssel zu speichern, wenn es nur aus Bequemlichkeit ist.