Modulusとexponentの部分を取得したいが、エンコードされている形式を取得できないこのRSA公開鍵があります。誰かがそれをデコードする方法を教えてもらえますか?
-----BEGIN PUBLIC KEY-----
MIIBBgKBgDI/ranPo8MDfguQfSzqg7mtNlUJLLBK7tlVALyk42agbLTSFcZbs9Yw
t3nSe9yNzZB9ZVrL3O9GXkEb6xvj3dqrog+wWOeFCqNV7BuJNYYC/ef4vlnUFQdw
yswbd7d198qjWBZ7MiZRXxX8qKRln+osTvsDYOMZk93k0cGZgyuJAoGAHkgFohgA
nH93kDPjN4sHaT9WsmZ4ailbMtcnWuLizTRJ2sdGjNrpuwT1R+x1nlYHOeDUSOu6
De0kQJX+HZuQCoha6THsdgcV297krN22FwsDZ1PItXLIr5oC7zcNQaDyAJOIv6BC
ufHQ0IR+L9b9esniMbF8yV0d7EVAaBJiyRk=
-----END PUBLIC KEY-----
$ cat > foo.txt
-----BEGIN PUBLIC KEY-----
MIIBBgKBgDI/ranPo8MDfguQfSzqg7mtNlUJLLBK7tlVALyk42agbLTSFcZbs9Yw
t3nSe9yNzZB9ZVrL3O9GXkEb6xvj3dqrog+wWOeFCqNV7BuJNYYC/ef4vlnUFQdw
yswbd7d198qjWBZ7MiZRXxX8qKRln+osTvsDYOMZk93k0cGZgyuJAoGAHkgFohgA
nH93kDPjN4sHaT9WsmZ4ailbMtcnWuLizTRJ2sdGjNrpuwT1R+x1nlYHOeDUSOu6
De0kQJX+HZuQCoha6THsdgcV297krN22FwsDZ1PItXLIr5oC7zcNQaDyAJOIv6BC
ufHQ0IR+L9b9esniMbF8yV0d7EVAaBJiyRk=
-----END PUBLIC KEY-----
$ openssl asn1parse -i -in foo.txt
0:d=0 hl=4 l= 262 cons: SEQUENCE
4:d=1 hl=3 l= 128 prim: INTEGER :323FADA9CFA3C3037E0B907D2CEA83B9AD3655092CB04AEED95500BCA4E366A06CB4D215C65BB3D630B779D27BDC8DCD907D655ACBDCEF465E411BEB1BE3DDDAABA20FB058E7850AA355EC1B89358602FDE7F8BE59D4150770CACC1B77B775F7CAA358167B3226515F15FCA8A4659FEA2C4EFB0360E31993DDE4D1C199832B89
135:d=1 hl=3 l= 128 prim: INTEGER :1E4805A218009C7F779033E3378B07693F56B266786A295B32D7275AE2E2CD3449DAC7468CDAE9BB04F547EC759E560739E0D448EBBA0DED244095FE1D9B900A885AE931EC760715DBDEE4ACDDB6170B036753C8B572C8AF9A02EF370D41A0F2009388BFA042B9F1D0D0847E2FD6FD7AC9E231B17CC95D1DEC4540681262C919
どうぞ。私はこれらのコマンドをごく普通のLinuxシステムで使用しました。
あなたのファイルは奇妙であることに注意してください。 RSA公開鍵は、係数(n)と公開指数(e)の2つの整数で構成されます。これは通常、2つのSEQUENCE
値のINTEGER
であるASN.1構造としてエンコードされます。次に、その構造はDERエンコードされ、その結果のバイトシーケンスが、別の外部ASN.1構造のBIT STRING
のコンテンツになります。これには、キータイプの明示的な識別子も含まれます(つまり、キーが本当にタイプRSA)。あなたのケースでは、その外部構造が欠落しているため、エンコードされたASN.1構造にもPEMヘッダー(「BEGIN PUBLIC KEY」)にも、鍵がRSA鍵であることを正式に示すものはありません。
RSAキーとしても少し奇妙に見えます。最初の整数、つまりモジュラスは長さが1022ビットであり、あまり一般的ではありません(開発者や暗号学者は2の累乗が大好きなので、1024を作成できる可能性がある場合は1022ビットの整数を受け入れません。 -ビット整数)。 2番目の整数である公開指数は非常に大きく(1021ビット)、これはRSAによって正式にサポートされていますが、非常にまれです。公開指数は非常に短くてもセキュリティに悪影響を与えることはありません。これにより、公開鍵の操作がはるかに高速になるため、大きな指数を使用する本当の理由はありません。一部の広く普及している実装(Windows CryptoAPI ...)は、32ビットを超える公開指数もサポートしていません。
あなたが持っているものが本当にRSA公開鍵である場合、誰かがあなたの足を引っ張っている可能性があります-あるいは、珍しく、おそらく弱い方法で物事を行っています。