数学的には、公開鍵は秘密鍵から導出されます。ECDSA と ECDH では曲線上の点 Q = d·G、Ed25519 と X25519 では 32 バイトにエンコードされた点、RSA ではモジュラスと指数 (n, e)、ML-KEM と ML-DSA では行列のシードとベクトルです。サイズは、32 バイト(Ed25519)や 33/65 バイト(P-256 の圧縮形式・非圧縮形式)から、294 バイト(DER の SubjectPublicKeyInfo としての RSA-2048)、1,312〜2,592 バイト(ML-DSA)まであります。
よく使われる格納形式は次のとおりです。DER または PEM の SubjectPublicKeyInfo(-----BEGIN PUBLIC KEY-----)、より古い PKCS #1 の RSAPublicKey(BEGIN RSA PUBLIC KEY)、JWK(kty、crv と、x、y または n、e)、OpenSSH の 1 行形式(ssh-ed25519 AAAA…)、WebAuthn の COSE_Key、OpenPGP の鍵パケット、そして公開鍵のハッシュ値であるブロックチェーンのアドレスです。
公開鍵そのものは、所有者の身元を何も示しません。信頼は結び付けによって生まれます。CA が署名した証明書、発行者から HTTPS で取得した JWKS、known_hosts のエントリ、ピン留めされたフィンガープリント、オンチェーンのアドレスなどです。他者から受け取った鍵は、使う前に検証してください(曲線上の点であるか、サイズ、種類)。