Schlüssel „ec256.pem“ laden: Beim Versuch, einen öffentlichen Schlüssel aus einem privaten Schlüssel zu generieren, wird ein ungültiges Format ausgegeben

Schlüssel „ec256.pem“ laden: Beim Versuch, einen öffentlichen Schlüssel aus einem privaten Schlüssel zu generieren, wird ein ungültiges Format ausgegeben

Ich versuche, ein öffentliches/privates Schlüsselpaar mithilfe der ECDSA-Kurve secp256k1 zu generieren

Beim Generieren des öffentlichen Schlüssels aus ec256.pem (privater Schlüssel) wird der folgende Fehler ausgegeben

„Schlüssel „ec256.pem“ laden: ungültiges Format“

Zum Generieren des privaten Schlüssels verwendete Befehle:

openssl ecparam -name secp256k1 -out secp256k1.pem

openssl ecparam -in secp256k1.pem -genkey -noout -out ec256.pem

chmod 400 ec256.pem

Zum Generieren des öffentlichen Schlüssels verwendeter Befehl:

ssh-keygen -y -f  ec256.pem

Below is the error thrown on running the above cmd ,

Load key "ec256.pem": invalid format

Die verwendeten Versionen sind

OpenSSH_7.4p1, OpenSSL 1.0.2k-fips

Ich muss einen öffentlichen Schlüssel im SSH-Format für den privaten Schlüssel ec256.pem generieren

Antwort1

Wenn ich mir die Kurven anschaue, die unterstützt werden müssen,Standard, RFC 5656: „Integration von elliptischen Kurvenalgorithmen in die Secure Shell-Transportschicht“ (Abschnitt 10)dann sehe ich keine Unterstützung für secp256k1. Natürlich könnten Implementierungen es trotzdem implementieren, aber dies würde auf Kosten der Inkompatibilität mit anderen Implementierungen gehen.

Ich denke also, dass der einfache Grund, warum der private Schlüssel nicht analysiert werden kann, darin liegt, dass sein Format nicht unterstützt wird. Wenn Sie die Kurve einfach durch secp256r1 ersetzen (eine zufällige Primzahlkurve anstelle der secp256k1-Koblitz-Kurve, beachten Sie das „r“ anstelle des „k“ darin), läuft alles reibungslos und mit derselben oder einer höheren Sicherheitsstufe. Die Struktur des privaten Schlüssels ist identisch mit der secp256k1-Kurve, was deutlich zeigt, dass das Problem eher bei der Kurve als beim Dateiformat liegt.

Alternativ können Sie sich für die ausgefallenere Variante entscheidenEd25519-Kurve, wahrscheinlich auf Kosten der Abwärtskompatibilität und mehr Ärger. Dies ist möglicherweise nicht mit der OpenSSL-Befehlszeile kompatibel,siehe Kommentar unten.

verwandte Informationen