SM2 National Secret Algorithm証明書の分析

1.デジタル証明書の構成

1)証明書のデータ構造

デジタル証明書はASN.1エンコーディングを使用し、証明書ファイルはバイナリまたはBase64形式で保存され、データ形式はTLV(タグ長値)形式を使用します。Tはタイプ識別子を表し、Lは長さ値識別子を表し、Vは値エンコーディングを表します。デジタル証明書の各アイテムには、対応するタイプTがあります。デジタル証明書は大きなTLVシーケンスであり、Vは複数のTLVで構成されます。

SM2証明書のデータはRSAアルゴリズムの証明書と同じで、証明書のバージョン、シリアル番号、発行者、ユーザーのサブジェクト情報、ユーザーの公開鍵、有効期間、証明書の拡張子などが含まれますが、SM2の証明書の公開鍵アルゴリズムは、ECCアルゴリズムを使用したOidです。 ID(1.2.840.10045.2.1)の場合、公開鍵パラメーターはSM2ナショナルシークレットアルゴリズムのOid ID(1.2.156.10197.1.301)を使用します。

2)署名アルゴリズム

SM2証明書と一致する署名アルゴリズムは、SM3に基づくSM2署名アルゴリズムであり、アルゴリズムOid識別は1.2.156.10197.1.501です。さらに、SM2国家秘密アルゴリズムは、SM3アルゴリズムを使用するSHA_1、SHA_256、およびRSA署名に基づく署名も定義しますが、署名アルゴリズムOid識別は異なります。

3)署名データ

SM2の署名データは2つのBigInteger大きな数値で構成され、署名データの格納にはDerエンコーディングが使用されます。証明書の署名データは、ルート証明書の公開鍵を使用して検証されるルート証明書の秘密鍵によって署名され、トップレベルのルート証明書は、独自の証明書公開鍵を使用して検証されます。

第二に、デジタル証明書のオブジェクト識別子

デジタル証明書の各アイテムにはオブジェクト識別子Oidがあります。SM2デジタル証明書の主な違いは、公開鍵アルゴリズム、公開鍵パラメーター、および署名アルゴリズム識別子が異なることです。残りはX509の標準アイテムです。デジタル証明書の一般的なオブジェクト識別子は次のとおりです。

オブジェクト識別子 名前 OID
rsaEncryption RSAアルゴリズムの識別 1.2.840.113549.1.1.1
sha1withRSAEncryption SHA1のRS1署名 1.2.840.113549.1.1.5
ECC ECCアルゴリズムの識別 1.2.840.10045.2.1
SM2 SM2アルゴリズムの識別 1.2.156.10197.1.301
SM3WithSM2 SM3 SM2シグネチャ 1.2.156.10197.1.501
sha1withSM2 SHA1のSM1署名 1.2.156.10197.1.502
sha256withSM2 SHA256のSM256署名 1.2.156.10197.1.503
sm3withRSAEncryption SM3のRSA署名 1.2.156.10197.1.504
一般名 プリンシパル名 2.5.4.3
電子メールアドレス メールボックス 1.2.840.113549.1.9.1
cRLDistributionPoints CRL配布ポイント 2.5.29.31
extKeyUsage 拡張キーの使用法 2.5.29.37
subjectAltName ユーザーの別名 2.5.29.17
CP 証明書戦略 2.5.29.32
clientAuth クライアント認証 1.3.6.1.5.5.7.3.2

第三に、デジタル証明書の分析

デジタル証明書の分析は、主に値を取得するためのASN.1構文とオブジェクト識別子に基づいており、その後、証明書の有効期間、発行機関のルート証明書、CRL失効ステータス、使用目的およびその他の検証に基づいています。RSA証明書は、ほとんどのプラットフォームで解析できる標準アルゴリズムですが、SM2ナショナルシークレットアルゴリズム証明書の分析はそれほど一般的ではありません。Windowsの一部の上位バージョンでSM2証明書を開くと、「信頼関係の検証時にシステムレイヤーでエラーが発生しました」と表示されます。これは、WindowsがまだSM2アルゴリズムの証明書検証をサポートしておらず、SM2署名アルゴリズムIDを認識できないためです。 SM2証明書の署名データを検証するには、BouncyCastleオープンソース暗号化ライブラリに基づいてSM2検証署名を実装できます。詳細については、国の秘密アルゴリズムSM2証明書の生成を参照してください

元の記事54件を公開 89のような 680,000以上

おすすめ

転載: blog.csdn.net/ayang1986/article/details/102919761