[解決済み】"BEGIN RSA PRIVATE KEY" と "BEGIN PRIVATE KEY" の違いについて
質問
こんにちは 私は、秘密鍵を
.pem
ファイルから秘密鍵オブジェクトを作成し、後でそれを使用します。
私が直面した問題は、いくつかの
pem
ファイルのヘッダーは
-----BEGIN PRIVATE KEY-----
で始まるものもあれば
-----BEGIN RSA PRIVATE KEY-----
を検索してみると、最初のものは
PKCS#8
の書式がありますが、もう一つはどのような書式に属しているのかわかりませんでした。
どのように解決するのですか?
参照 https://polarssl.org/kb/cryptography/asn1-key-structures-in-der-and-pem ("BEGIN RSA PRIVATE KEY"でページを検索) ( アーカイブリンク 後世に残すために、念のため)。
BEGIN RSA PRIVATE KEY
はPKCS#1であり、単なるRSAキーである。これは本質的にはPKCS#8の鍵オブジェクトですが、バージョンやアルゴリズムの識別子を前面に出していないだけです。
BEGIN PRIVATE KEY
はPKCS#8で、鍵データ自体に鍵の種類が含まれていることを示します。リンク先より
暗号化されていないPKCS#8エンコードデータは、タグで始まり、タグで終わります。
-----BEGIN PRIVATE KEY-----
BASE64 ENCODED DATA
-----END PRIVATE KEY-----
base64でエンコードされたデータの中に、以下のDER構造が存在する。
PrivateKeyInfo ::= SEQUENCE {
version Version,
algorithm AlgorithmIdentifier,
PrivateKey BIT STRING
}
AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL
}
つまり、RSA秘密鍵の場合、OIDは1.2.840.113549.1.1、PrivateKey鍵データビットストリングとしてRSAPrivateKeyが存在するわけです。
とは対照的に
BEGIN RSA PRIVATE KEY
は常にRSAキーを指定するため、キータイプのOIDは含まれません。
BEGIN RSA PRIVATE KEY
は
PKCS#1
:
RSA秘密鍵ファイル (PKCS#1)
RSA秘密鍵PEMファイルは、RSA鍵に特化したファイルです。
タグで始まり、タグで終わります。
-----BEGIN RSA PRIVATE KEY----- BASE64 ENCODED DATA -----END RSA PRIVATE KEY-----
base64でエンコードされたデータの中に、以下のDER構造が存在する。
RSAPrivateKey ::= SEQUENCE { version Version, modulus INTEGER, -- n publicExponent INTEGER, -- e privateExponent INTEGER, -- d prime1 INTEGER, -- p prime2 INTEGER, -- q exponent1 INTEGER, -- d mod (p-1) exponent2 INTEGER, -- d mod (q-1) coefficient INTEGER, -- (inverse of q) mod p otherPrimeInfos OtherPrimeInfos OPTIONAL }
関連
-
[解決済み] OpenSSLでファイルを復号化しようとするとBad Magic Numberエラーが発生する
-
[解決済み] プロキシを使用した openssl s_client
-
[解決済み] RSA公開鍵形式
-
[解決済み] 自作ソフトでよくあるエラー。"不明なコマンド: switch"
-
[解決済み] .keyと.crtファイルから.pemファイルを取得する方法は?
-
[解決済み] RSA秘密鍵を使って公開鍵を生成する?
-
[解決済み】RSA鍵のフィンガープリントを計算する
-
[解決済み】OpenSSLでPKCS#12証明書をPEMに変換する方法
-
[解決済み] pem 鍵を ssh-rsa 形式に変換する
-
[解決済み] BEGIN RSA PUBLIC KEY」と「BEGIN PUBLIC KEY」の2種類の公開鍵形式がありますが、どのように変換すればよいのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] OpenSSLでファイルを復号化しようとするとBad Magic Numberエラーが発生する
-
[解決済み] OpenSSLを使用して「unable to write 'random state'」とはどういう意味ですか?
-
[解決済み] MD5()関数は、どのライブラリにありますか?
-
[解決済み] OpenSSLのCMAC_xxx関数を使ってAESのCMACを計算する方法は?
-
[解決済み] opensslを使用してpfxをpemに変換する
-
[解決済み] BEGIN RSA PRIVATE KEY」と「BEGIN PRIVATE KEY」の違いについて。
-
[解決済み] 自作ソフトでよくあるエラー。"不明なコマンド: switch"
-
[解決済み】"BEGIN RSA PRIVATE KEY" と "BEGIN PRIVATE KEY" の違いについて
-
[解決済み] pem 鍵を ssh-rsa 形式に変換する
-
[解決済み] OpenSSLで公開鍵を取り出すには?