正しい構文で動作するRSAキーペアを生成するの方法を知りたい。 (512bitキーに対してmy numbersがすでに何らかの方法で生成されているとしましょう。
e = 065537
d = 2a3ff2f501835d7d0f7ccad34265525b0c91f800fc252324e4bb5668392ba55a65d812d658b7065725c259a12115918dbdbbea6cead9225a91c3fcc6b43f1cb
m = 4bb26cf2e1e1cdbbf78f89a60d5af5cf094a7216f9fe2d0e2288dc14e6005e0b6de46dc38f0e92b8b3281e9f1cf87257fb54bff579907e8a3c114133b74cb815
これから適切なキーペアをどのように生成できますか?それを自動化するジェネレーターはどこにありますか?私にとって最善の解決策は、ここで機能するJavaScriptでそのキーペアを生成することです https://www.pidder.com/pidcrypt/?page=demo_rsa-encryption pidcryptを使用します。
RSAキーペアは次のもので構成されます。
公開キーには、nとeのみが含まれています。
秘密鍵には、上記で指定したすべての値が含まれています。 厳密なsensu、nとdのみが、機能的なRSA実装に必要です、しかし、他の値はより高速な操作と「マスキング」(サイドチャネルリークに対する保護)を可能にするため、 RSA標準 は、秘密鍵にすべての値が含まれることを定義します( 付録A.1 )。
あなたが持っている値から、あなたの "m"が実際にRSAモジュラスであると仮定すると、他の値は少し努力して再計算できます(1秒未満のCPUですが、私が気にかけるよりも多くの人間の時間)。これらすべての値から、標準に準拠したRSA公開鍵と秘密鍵をエンコードできます。ただし、これには ASN.1 の知識が必要です。最後に、512ビットのRSA鍵は脆弱です。少なくとも1024ビット、できればそれ以上を使用してください(2048ビットで十分です)。一部のRSA実装は、1024ビットより短いRSAキーでの動作を拒否します。
ボトムライン:自分でキーを生成しないでください。 OpenSSL を使用します。コマンドラインツールで:
openssl genrsa -out rsakey.pem 2048
すべての適切なエンコーディングで2048ビットのRSA秘密鍵を生成します。次にこれ:
openssl rsa -in rsakey.pem -pubout
公開キーを出力し、エンコードが完了した状態で再び出力します。