1

受け取った公開鍵のサイズを把握しようとしています。キーからサイズを決定するにはどうすればよいですか? ドキュメントで簡単な方法が見つかりません。

私が持っているのは公開鍵そのもので、次のように受け取ります。

cert = OpenSSL::X509::Certificate.new(sock.peer_cert)
pkey = cert.public_key

公開鍵は PEM 形式です。つまり、開始行と終了行があり、中央に実際のキーがあります。現在、キー自体は base64 でエンコードされています。その文字列をデコードしてバイト数をカウントすると、サイズが得られます。このサイズには、指数やモジュラスなどの追加要素が含まれています (他にもありますか?)。公開鍵のビット数を決定するために知っておく必要があるのは、モジュラスと指数 (およびそれ以上の場合はそれも) が占めるバイト数です。

4

1 に答える 1

3
key_length_in_bits = pkey.n.num_bytes * 8

ウィキペディアの引用:

[...] n は、公開鍵と秘密鍵の両方のモジュラスとして使用されます。その長さは通常ビットで表され、鍵の長さです。[...]

于 2012-12-18T12:20:29.877 に答える