web-dev-qa-db-ja.com

ecdsaspec256r1の公開鍵のサイズはいくつですか

Opensslを使用してecdsaのペアキーを生成しようとしました。

公開鍵の長さが64バイトではなく65バイトであるのはなぜですか?

秘密鍵を作成

openssl ecparam -genkey -name secp256r1 -noout -out private.pem

公開鍵を生成

openssl ec -in private.pem -text -noout

eCキーを読む

秘密鍵:(256ビット)

priv:13:10:bc:9c:a8:3d:8b:fa:91:b2:a4:f8:e5:d1:5f:53:56:eb:16:91:86:aa:6b:c5: 16:8b:16:e9:04:4e:03:a9

pub:04:51:02:22:75:dd:3d:25:ee:b6:aa:a5:c6:c6:27:5c:07:c5:e6:e9:75:40:4a:b3: e4:cd:22:e5:cc:9a:bd:1b:14:0e:53:6a:57:9a:26:98:d2:2f:6b:a4:9b:a4:47:fe:ab: 76:99:59:26:39:ac:2b:2e:93:b3:ef:f0:8b:f5:3b:86

ASN1 OID:prime256v1

NISTカーブ:P-256

1
yes

このページ によると、65バイトの公開鍵は非圧縮のバリアントです。

最初のバイト0x04がプレフィックスで、その後に232ビットの数字が続きます。

暗号の専門家ではなく、なぜこれが当てはまるのか説明できません。多分誰かがそれについて詳しく説明することができます。

2
Daniel