openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
を私はバイナリ形式であるDER形式への鍵を輸出しました。キーは2kビット以上のウェイです。テストのために、公開鍵をDER形式にエクスポートしました。これは2kビットをわずかに上回ります。
質問には、2048ビットは何ですか?生成されたファイルから生のビットを取得するにはどうすればよいですか?
おかげで、 レフ
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
を私はバイナリ形式であるDER形式への鍵を輸出しました。キーは2kビット以上のウェイです。テストのために、公開鍵をDER形式にエクスポートしました。これは2kビットをわずかに上回ります。
質問には、2048ビットは何ですか?生成されたファイルから生のビットを取得するにはどうすればよいですか?
おかげで、 レフ
RSA鍵を使用して暗号化および復号化を行うには、モジュラス、プライベートおよびパブリック指数が必要です。
通常、カップル(モジュラス、公開指数)およびカップル(モジュラス、プライベート指数)を使用した復号を使用して暗号化が実行されます。
埋め込み型デバイスのようないくつかの実装では、公開指数はデフォルトでF4という数字に設定されています。これは0x10001または65537の小数です。
2048ビットのRSA鍵では、秘密指数は厳密に2048ビットであり、モジュラスでもあります。
あなたは、いくつかの文字列操作を行うことによって、バイナリ形式でプライベート指数を取得することができます:
openssl rsa -in key.der -inform der -text -noout | awk '/^[^ ]/{if($1 == "privateExponent:") {dump=1} else {dump=0}} /^ /{if(dump==1){gsub(":","");printf "%s", $1}}END{print ""}' | xxd -ps -r -c256 > pr_key.bin
ます。また、awkコマンドで文字列を置換することによって、弾性を得ることができます。
2048ビットの秘密鍵を保存するには、4096ビット(512バイト)が必要です。公開鍵を格納するには、2048ビット(256バイト)が必要です。
ありがとう、これは私が探していたものです。しかし、使用しているライブラリにはDER形式が必要であることが判明しました.DER形式は簡単に生成できます。立派な愚かな、そして騒音のために残念。 – Lev
EDIT 3月4日:私はそれを行うにはとても便利な方法を発見していない
。とにかく、あなたは次のことを試してみてください:
openssl rsa -in <yourfile> -noout -text
それはプライベートキーの詳細情報が表示されます。与えられた情報でキーを計算する方法についてはwikipediaをチェックしてください。
旧ソリューション(仕事なので、それを無視しません)自動化されたプロセスのためにか、単に教育目的のために
?
マニュアルアプローチ(あなたがLinuxユーザだと仮定した場合)、次のことができます:
鍵ファイルのコピー
は、VI(M)を使用してPEMファイルを開いて作成し、最初と最後の行を削除し、改行を削除
(/ END PRIVATE KEYをBEGIN):
保存(例:%sの/ \ N // g)をファイルを(base64では[your file name here] > [destination]
を-d)
しかし、最も可能性の高いOpenSSLは、この目標を達成するためのより多くとても便利な方法を提供し
今base64でデコードを提出
EDIT 1:
これは、pem/derがキーの他に追加の情報を格納する場合には間違っている可能性があります。
EDIT 2:
私はまだ秘密鍵を抽出する(あるいはあなたのやり方で1を生成する)理由を見たことがないほか。
達成したい目標は何ですか?
ここで、生のビットを取得したいですか?どの言語やツールを使いたいですか? – user2807083
Stack Overflowは、プログラミングおよび開発に関する質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[スーパーユーザー](http://superuser.com/)や[情報セキュリティスタックエクスチェンジ](http://security.stackexchange.com/)の方が良いかもしれません。また、[Dev Opsについての質問はどこに投稿しますか?](http://meta.stackexchange.com/q/134306)。 – jww
私はこのキーをCPUのFLASHに書きたいと思っています。 CPUは、このキーを使用してメッセージの暗号化/復号化を行い、ワイヤレスインターフェイス経由で送信します。 – Lev