1

この例で示唆されているように、楕円曲線は、有限体の要素の数である素数pと方程式によって定義されます: 曲線 = y² = x³ + ax + b

Google証明書などの実際のケースでは、OpenSSLを使用してa、b、p **を見つけることは可能ですか? 私はグーグルを試してみて、この答えを自分で見つけましたが、何も見つかりませんでした.

4

1 に答える 1

2

証明書内でECパラメータを表す方法は 3 つあります。最も一般的に使用される、明示的なパラメーターと名前付きの曲線について説明します。

明示的な EC (ドメイン) パラメーターは、まさにその名前が示すとおりです。これらは、証明書に直接入れられる値です。公開鍵を読み取るアプリケーションは、ドメイン パラメータと公開ポイント W の値から完全な EC 公開鍵を直接作成できます。

ただし、名前付き曲線は、以前に指定された一連のドメイン パラメータのみを識別します。これらは通常、ソフトウェアでは単純に文字列として表されます。ただし、証明書およびその他の ASN.1 DER オブジェクトでは、ASN.1 OID によって表されます。OID は 1.2.3 などの形式の一意の文字列で、最初に登録事務所を表し、次に組織などを表します。

Google 証明書を ASN.1 解析に入れると、これらの OID の 1 つが見つかります。これは、既に便利に文字列に変換されています。

openssl asn1parse -in google_ec.cer

が得られます:

...
251:d=3  hl=2 l=  19 cons: SEQUENCE          
253:d=4  hl=2 l=   7 prim: OBJECT            :id-ecPublicKey
262:d=4  hl=2 l=   8 prim: OBJECT            :prime256v1
...

クイック検索で、 secp256r1 (2.4.2 を参照) または NIST P-256 楕円曲線を参照するRFC 5480が見つかります。後者の 2 つは、もちろん W を除いて、曲線のすべてのパラメータを定義します。多くの場合、既存のソフトウェアからこれらの曲線パラメーターを見つける方が簡単ですが、標準は特定のランタイム環境に役立つ形式でそれらを表していない場合があります。

于 2013-10-30T19:20:30.753 に答える