ECDSA2VS
FIPS 186-4 楕円曲線デジタル署名アルゴリズム検証システム (ECDSA2VS)
原文更新日: 2014年3月18日
原文前回更新日: 2013年9月17日
原文初版: 2010年5月27日
ティモシー・A・ホール
シャロン・S・ケラー
米国国立標準技術研究所
情報技術研究所
更新ログ
2014/3/18
• セクション6.2「鍵ペア生成」を更新し、サポートされている3つの鍵ペア生成方法を示しました。2つはFIPS 186-4、3つ目はANSI X9.62-2005のセクションA.4.3に基づいています。これは、FIPS 186-2 ECDSA実装の再検証にのみ使用されます。
2013/9/17
• 署名生成コンポーネントのセクションから「部分的」という語句を削除しました。
2013/9/5
• ドキュメント全体でFIPS 186-4への参照を更新しました。
2013/1/9
• セクション6.4.1「部分的署名生成コンポーネントテスト」を追加しました。
2012/1/17
• セクション6.2
o 鍵ペア生成テストの説明を修正しました。
2011/6/29
• セクション2
o 前提条件のテストに関する2番目の段落を削除しました。
• セクション3
o SHAVSおよびDRBGVSへの参照を削除しました。
• セクション4.2
o 略語リストからDRBG、DRBGVS、SHA、SHAVSを削除しました。
• セクション6
o 前提条件の表を削除しました。
2010年8月30日
• セクション2 最終段落
o 前提条件テストを修正し、署名検証にはSHAのみが必要であることを示しました。
• セクション6
o o を「on」に修正しました。
o 「to collected」を「to be collected」に変更しました。
o 表を更新し、署名検証からDRBGを削除しました。
1 はじめに
楕円曲線デジタル署名アルゴリズム検証システム(ECDSA2VS)は、FIPS 186-4 デジタル署名標準(DSS)1で承認され、ANSI X9.62-2005 金融サービス業界向け公開鍵暗号:楕円曲線デジタル署名アルゴリズム(ECDSA)2で規定されている楕円曲線デジタル署名アルゴリズム(ECDSA)の実装を検証するための手順を規定します。ECDSAVSは、テスト対象実装(IUT)の自動テストを実行するように設計されています。この文書では、ECDSA2VSの基本設計と構成について説明します。 この文書では、ECDSA2VSの基本設計と構成について説明します。IUTを構成する個々のECDSAコンポーネントをテストするための仕様も含まれています。これらのコンポーネントは以下のとおりです。
鍵ペア生成、
公開鍵検証、
署名生成、
署名検証
ECDSA2VSは、FIPS186-4で規定されている完全な署名生成機能の実装に対する検証テストに加えて、入力メッセージが既にハッシュされていることを前提とした署名生成機能の実装に対する検証テストも提供します。この部分的なコンポーネント検証テストは、PIVカードなどのアプリケーション向けに設計されています。
この部分的な署名生成機能をテストするIUTは、コンポーネント検証を受けます。
この文書では、ECDSAの検証プロセスの目的、設計理念、および高レベルの説明を定義します。ECDSAの実装の正式な検証を求める人々が従うべき要件と管理手順を示します。記載されている要件には、IUTとECDSA2VS間で通信されるデータの仕様、正式な検証のためにIUTが合格しなければならないテストの詳細、およびECDSA2VSとのインターフェースに関する一般的な指示が含まれます。
2 適用範囲
本文書は、1で規定されているECDSAへのIUTの適合性を検証するために必要なテストを規定する。ECDSAを実装するIUTに適用する場合、ECDSA2VSは、実装に含まれるアルゴリズムコンポーネントの正しさを判定するためのテストを提供する。ECDSA2VSは、様々な完全なアルゴリズムコンポーネントをそれぞれ検証するための個別の検証テストと、入力メッセージが既にハッシュされていることを前提とする部分的な署名生成コンポーネントを検証するための1つのテストから構成される。ECDSA2VSは、暗号仕様への適合性を判定するだけでなく、ポインタの問題、空間の割り当て不足、不適切なエラー処理、ECDSA実装の誤った動作などの実装上の欠陥を検出するように構成されている。 3 適合性
ECDSA2VSに含まれる該当するテストに合格することにより、FIPS PUB 186-4 ECDSAへの適合が検証される必要がある。ECDSAが実装されている暗号モジュールのテストは、FIPS PUB 140-2「暗号モジュールのセキュリティ要件」3に定義されている。 4 定義と略語
4.1 定義
table:定義
定義 和 意味
CST laboratory CST研究所 ECDSA2VSを運営する暗号セキュリティ試験機関
Elliptic Curve Digital 楕円曲線デジタル FIPS 186-4 デジタル署名標準(DSS)で規定されている、
Signature Algorithm 署名アルゴリズム デジタル署名の生成と検証のためのアルゴリズム。
4.2 略語
table:略語
略語 意味 和
ECDSA Elliptic Curve Digital Signature Algorithm specified in FIPS 186-4 FIPS 186-4で規定された楕円曲線デジタル署名アルゴリズム
ECDSA2VS FIPS 186-4 Elliptic Curve Digital Signature Algorithm Validation System FIPS 186-4 楕円曲線デジタル署名アルゴリズム検証システム
FIPS Federal Information Processing Standard 連邦情報処理標準
IUT Implementation Under Test テスト中の実装 / 試験対象実装
PKV Public Key Validity 公開鍵の有効性
5 楕円曲線デジタル署名アルゴリズム検証システムの設計理念
ECDSA2VSは、製品のセキュリティ指標を提供するのではなく、ECDSAへの適合性をテストするために設計されています。検証テストは、偶発的な実装エラーの検出を支援することを目的としており、適合性を偽装しようとする意図的な試みを検出することを目的としたものではありません。したがって、検証は製品全体のセキュリティの評価または保証と解釈されるべきではありません。
ECDSA2VSの設計理念は次のとおりです。
1. ECDSA2VSは、ECDSA2VSから離れた場所にあるIUTのテストを可能にするように設計されています。ECDSA2VSとIUTは、REQUEST(.req)ファイルとRESPONSE(.rsp)ファイルを介してデータを通信します。
2. ECDSA2VS内で実行されるテストは、統計的サンプリングを使用します(つまり、考えられるケースのうち少数のケースのみがテストされます)。したがって、デバイスの検証が成功しても、規格への100%の適合を意味するわけではありません。
6 ECDSA2VSテスト
ECDSAのECDSA2VSは、ECDSAの4つの異なるコンポーネントそれぞれに対する個別のテストと、署名生成コンポーネントの部分テストのための1つのテストで構成されています。ECDSA2VSは、アルゴリズムの各コンポーネントに対する適合性テストに加え、実装エラーのテストも提供します。テスト対象となるコンポーネントは以下のとおりです。
鍵ペア生成 Key Pair Generation
公開鍵の有効性 (PKV: Public Key Validity)
署名生成 Signature Generation
署名の検証 Signature Validation
ハッシュ化されたメッセージを入力とする署名生成コンポーネント(メッセージのハッシュ化は既に完了していると想定)
6.1 構成情報
ECDSA2VSの検証プロセスを開始するには、ベンダーは認定試験機関にECDSA実装の検証を依頼する申請書を提出します。ベンダーの実装は、試験対象実装(IUT: Implementation Under Test)と呼ばれます。検証依頼書には、IUTの背景情報と、ECDSA2VSが特定の試験を実行するために必要な情報が含まれます。具体的には、検証依頼書には以下の情報が含まれます。
1. ベンダー名
2. 製品名
3. 製品バージョン
4. ソフトウェア、ファームウェア、またはハードウェアでの実装
5. IUTがソフトウェアまたはファームウェアで実装されている場合、IUTの試験に使用されたプロセッサとオペレーティングシステム
6. ベンダーがIUTを実装しているIUTまたは製品/製品ファミリの簡単な説明(2~3文)
7. IUTでサポートされているNIST曲線とSHAサイズ(例:SHA-256)
8. ECDSA署名生成コンポーネントの部分的なテストを行うかどうかを示す
6.2 鍵ペア生成テスト
ECDSAの鍵ペアは、(d, Q)のペアで構成されます。ここで、秘密鍵dは整数、公開鍵Qは楕円曲線上の点です。これらの鍵ペアを生成する方法は3つあります。そのうち2つは、それぞれFIPS 186-4のセクションB.4.1とセクションB.4.2に規定されています。3つ目は、ANSI X9.62-2005のセクションA.4.3に記載されている手法です。この手法は、既存のFIPS 186-2 ECDSA検証済み実装に新しい動作環境(OE)を追加する場合にのみ使用されます。
ECDSA2VSは、選択された3つの方法それぞれについてIUTに10個の鍵ペアを生成させることにより、鍵ペア生成の正確性をテストします。形式と手順は3つすべて同じです。提供された秘密鍵を用いて公開鍵Q’を計算します。計算された値Q’は、提供された公開鍵Qと比較されます。
ECDSA2VS は次の処理を行います。
A. 以下の情報を含む REQUEST ファイル(ファイル名:KeyPair.req)を作成します。
1. 製品情報(ベンダー、製品名、バージョン)。
2. サポートされている NIST 推奨曲線の情報。
注:CST ラボは REQUEST ファイルを IUT に送信します。
IUT は次の処理を行います。
A. REQUEST ファイルで指定された鍵ペアを生成します。
B. 以下の情報を含む RESPONSE ファイル(ファイル名:KeyPair.rsp)を作成します。
1. 製品名。
2. サポートされている各曲線について、以下の 10 個の鍵ペアを作成します。
a. 秘密鍵 d、
b. 公開鍵 Q。
注:IUT は RESPONSE ファイルを CST ラボに送信し、ECDSA2VS で処理させます。
ECDSA2VS は次の処理を行います。
A. レスポンスファイルで提供された秘密鍵から公開鍵 Q’ を再計算します。次に、値Q’が与えられた値Qと比較されます。
B. Q’のすべての値が与えられたQの値と一致する場合、このテストはPASSと記録されます。それ以外の場合はFAILと記録されます。
6.3 公開鍵検証テスト
IUTは、ANSI X9.62-2005のセクションA.4.2に規定されているEC公開鍵検証ルーチンを含むことができます。その場合、ECDSA2VSは、サポートされる曲線ごとに12組の鍵ペアを生成し、一部の公開鍵を改変してエラーを発生させ、IUTがこれらのエラーを検出できるかどうかを判定します。
ECDSA2VSは以下の処理を行います。
A. IUTがサポートする曲線ごとに12組の有効な鍵ペアを生成します。
B. 上記で作成した有効な公開鍵のコピーを作成し、一部の公開鍵を改変して鍵の値を変更することでエラーを発生させます。そして、改変によって誤って有効な鍵が生成されないことを確認するために、改変後の鍵に対して公開鍵検証を実行します。
C. 以下の情報を含むREQUESTファイル(ファイル名:PKV.req)を作成します。
1. 製品情報(ベンダー、製品名、バージョン)および
2. サポートされている各曲線について、上記手順Bで作成した12個の公開鍵。
注:CSTラボはREQUESTファイルをIUTに送信します。
D. 以下の情報を含むFAXファイル(ファイル名:PKV.fax)を作成します。
1. REQUESTファイルの情報。
2. 各公開鍵について、公開鍵検証テストに合格するかどうかの情報。
注:CSTラボはFAXファイルを保管します。
IUTは以下の処理を行います。
A. REQUESTファイルにある各公開鍵について、ANSI X9.62のセクションA.4.2に記載されているすべての条件を満たすかどうかを判断します。
B. 以下の情報を含むRESPONSEファイル(ファイル名:PKV.rsp)を作成します。
1. REQUESTファイルの情報。
2. 各公開鍵について、公開鍵検証テストに合格または不合格かどうかの情報。
注: IUTは、ECDSA2VSによる処理のためにRESPONSEファイルをCSTラボに送信します。
ECDSA2VSは次の処理を行います。
A. RESPONSEファイルの内容とFAXファイルの内容を比較します。
B. すべての公開鍵の結果が一致する場合、このテストはPASSと記録されます。それ以外の場合はFAILと記録されます。
6.4 署名生成テスト
ECDSAの実装は、デジタル署名を表す(r,s)ペアを生成する場合があります。このオプションは、IUTが正しい署名を生成する能力をテストします。署名生成テストを行うために、ECDSA2VSはIUTに10個のメッセージを提供します。IUTは対応する署名を生成し、ECDSA2VSに返します。ECDSA2VSは、関連付けられた公開鍵を用いて署名を検証し、署名を検証します。
ECDSA2VSは以下の処理を行います。
A. 以下の情報を含むREQUESTファイル(ファイル名:SigGen.req)を作成します。
1. 製品名
2. サポートされているモジュラスサイズとSHAの長さごとに、署名対象のメッセージ10個
注:CSTラボはREQUESTファイルをIUTに送信します。
IUTは以下の処理を行います。
A. REQUESTファイルで指定されたメッセージに対する署名を生成します。
B. 以下の情報を含むレスポンスファイル(ファイル名:SigGen.rsp)を作成します。
1. 製品名
2. メッセージの署名に使用されたドメインパラメータ
3. 署名されたメッセージ
4. 署名の生成に使用された秘密鍵xに対応する公開鍵y
5. 各メッセージの計算された署名値rおよびs
注:IUTは、ECDSA2VSによる処理のためにレスポンスファイルをCSTラボに送信します。
ECDSA2VSは以下の処理を行います。
A. それぞれの公開鍵を使用して、レスポンスファイル内の署名を検証します。
B. すべての条件が満たされた場合、このテストはPASSと記録されます。そうでない場合はFAILと記録されます。
6.4.1 署名生成コンポーネントテスト
このコンポーネント検証テストは、ECDSA署名生成テストを検証しますが、入力メッセージが既にハッシュ化されていることを前提としています。これはPIVカードなどの実装で使用されます。署名生成コンポーネントの検証テストは、セクション6.4で説明したECDSA署名生成テストと同じですが、ECDSA2VSによって提供される10個のメッセージは既にハッシュ化されたメッセージを表し、したがってテスト対象のハッシュ値の長さとなります。IUTはこれらのハッシュ化されたメッセージに署名を生成する際、ECDSA署名生成機能のハッシュステップをバイパスしますが、残りの機能は標準で説明されているように実行されます。その後、ECDSAVSは、セクション6.4で説明されているように、それぞれの公開鍵を使用してレスポンスファイル内の署名を検証します。
6.5 署名検証テスト
このオプションは、IUTが有効署名と無効署名を認識する能力をテストします。選択された各モジュラスサイズに対し、ECDSA2VSは鍵ペア(x, y)を生成します。この鍵ペアの秘密鍵xは、1024ビットの疑似ランダムメッセージ15個に署名するために使用されます。メッセージまたは署名の一部は、署名検証が失敗するように変更されます。メッセージ、署名、ドメインパラメータ、および公開鍵yの値は、IUTに転送されます。IUTは署名の検証を試み、結果をECDSA2VSに返します。ECDSA2VSは、受信した結果を自身の保存結果と比較します。
ECDSA2VSは以下の処理を行います。
A. サポートされているモジュラスサイズとSHAの長さごとに、以下の情報を15セット生成します。
1. 疑似ランダムメッセージ、
2. 公開鍵/秘密鍵ペア、
3. 秘密鍵を用いたメッセージへの署名。
B. メッセージ/署名セットの約半数について、メッセージ、公開鍵、または署名のいずれかを変更し、メッセージ検証が失敗するようにします。
C. 以下の情報を含むREQUESTファイル(ファイル名:SigVer.req)を作成します。
1. 製品名
2. サポートされているモジュラスサイズのドメインパラメータ
3. 手順Bの情報(以下の情報を含む)
a. 疑似乱数メッセージ
b. メッセージの署名に使用された秘密鍵に対応する公開鍵
c. 署名コンポーネントrとs
注:CSTラボはREQUESTファイルをIUTに送信します。
D. 以下の情報を含むFAXファイル(ファイル名:SigVer.fax)を作成します。
1. REQUESTファイルの情報
2. 各メッセージ/公開鍵/署名セットについて、署名検証プロセスが合格か不合格かを示す情報(注:SigVer.fax ファイルには、元の署名の作成に使用された秘密鍵も含まれています。)
IUT は次の処理を行います。
A. 対応するドメインパラメータと公開鍵を使用して、REQUEST ファイルで指定されたメッセージの署名検証を試みます。
B. 次の情報を含む RESPONSE ファイル(ファイル名:SigVer.rsp)を作成します。
1. REQUEST ファイルの情報。
2. 各メッセージ/公開鍵/署名セットについて、署名検証の合否を示します。
注:IUT は RESPONSE ファイルを CST ラボに送信し、ECDSAVS で処理させます。
ECDSA2VS は次の処理を行います。
A. RESPONSE ファイルの内容と FAX ファイルの内容を比較します。
B. すべてのメッセージ/公開鍵/署名セットの結果が一致する場合、このテストは PASS と記録します。それ以外の場合は FAIL と記録します。
付録A 参考文献
1 デジタル署名標準(DSS)、FIPS Publication 186-4、米国国立標準技術研究所(NIST)、2013年7月。 2 楕円曲線デジタル署名アルゴリズム(ECDSA)、ANS X9.62-2005、金融サービスのための米国国家規格、2005年11月16日。 3 暗号モジュールのセキュリティ要件、FIPS Publication 140-2、米国国立標準技術研究所(NIST)、2001年5月。