暗号モジュールの
暗号アルゴリズム実装試験セミナー
2008年2月20日
独立行政法人 情報処理推進機構
セキュリティセンタ−
情報セキュリティ認証室
セミナー構成
•
1部 概要(13:30∼14:20)
–
暗号アルゴリズム実装試験の概要
–
暗号アルゴリズム及び試験内容の説明
•
AES
•
2部 RSA(14:30∼15:30)
–
暗号アルゴリズム及び試験内容の説明
•
RSA-OAEP
•
RSA-PSS
•
3部 擬似乱数生成器(15:40∼16:30)
–
暗号アルゴリズムの説明
•
Hash_DRBG (NIST SP800-90)について
–
質疑応答
暗号アルゴリズム実装試験の概要
暗号アルゴリズム実装試験とは
• 試験目的
:暗号モジュールに承認されたセキュリティ機能が適正に
実装されていることを確認。
• 試験対象
:暗号モジュールに実装された承認されたセキュリティ機能。
• 試験方法
:暗号アルゴリズム実装試験ツール
JCATT
®を使用。
(ただし, JCATTがサポートしていないセキュリティ機能は
ベンダによる自己確認)
4 4
JCMVPで承認されたセキュリティ機能
技術分類 暗号名称
公開鍵暗号 署名 DSA, ECDSA, RSASSA-PKCS1-v1_5, RSASSA-PSS
守秘 RSA-OAEP, RSAES-PKCS1-v1_5
鍵確立 DH, ECDH, PSEC-KEM
共通鍵暗号 64ビットブロック暗号 CIPHERUNICORN-E, Hierocrypt-L1, MISTY1, 3-key Triple DES
128ビットブロック暗号 AES, Camellia, CIPHERUNICORN-A, Hierocrypt-3, SC2000
ストリーム暗号 MUGI, MULTI-S01, 128-bit RC4
その他 ハッシュ関数 RIPEMD-160, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
メッセージ認証 CCM, CMAC, HMAC-SHA-1, HMAC-SHA-224, HMAC-SHA-256, HMAC-SHA-384, HMAC-SHA-512
擬似乱数生成系 ・ ISO/IEC 18031( Hash_DRBG, CTR_DRBG, OFB_DRBG )
・ NIST SP800-90(Hash_DRBG, HMAC_DRBG, CTR_DRBG)
・ NIST-Recommended Random Number Generator Based on ANSI X9.31 Appendix A.2.4 Using the 3-key Triple DES and AES Algorithms
・PRNG based on SHA-1 for general purpose in FIPS 186-2 (+ change notice 1) Appendix 3.1
・PRNG based on SHA-1 for general purpose in FIPS 186-2 (+ change notice 1) revised Appendix 3.1
・PRNG based on SHA-1 in ANSI X9.42-2001 Annex C.1
暗号アルゴリズム実装試験の位置付け
申請者 暗号モジュールの ベンダ, 供給者など 試験機関 認証機関 独立行政法人 情報処理推進機構 運用ガイダンス FSM VEドキュメント 試験方法 セキュリティ 要件 セキュリティポリシ 暗号モジュール 試験報告書 認証報告書 暗号モジュール 認証書 ブロック図 ソースコード 暗号アルゴリズム 実装 暗号モジュール 暗号アルゴリズム 実装試験 暗号モジュール 試験 暗号アルゴリズム 確認 暗号モジュール 認証 暗号アルゴリズム 実装試験報告書 JCATT セキュリティポリシ 暗号アルゴリズム 確認書・暗号モジュール試験の一部として実施
暗号アルゴリズム実装試験フロー
・全ての動作環境
(OS)と暗号アルゴ
リズム指定
・回答ファイル作成
・質問ファイル,
正解ファイル作成
・回答ファイルと
正解ファイルの照合
・全てOK
・試験報告書作成
ベンダ
試験機関
OK/NG
質問ファイル 回答ファイル・立会い試験
ツールで判定
認証機関
・暗号アルゴリズム
確認書作成
暗号アルゴリズム実装試験ツール試験項目
1.
署名
–
DSA, ECDSA
ドメインパラメータ生成機能試験, ドメインパラメータ検証機能試験
鍵ペア生成機能試験,
署名生成機能試験, 署名検証機能試験
–
RSASSA-PKCS1-V1_5, RSA-PSS
鍵ペア生成機能試験,
署名生成機能試験
,
署名検証機能試験
2.
守秘
–
RSA-OAEP, RSAES-PKCS1-V1_5
鍵ペア生成機能試験,
暗号化機能試験
, 復号機能試験
3.
鍵確立
–
DH, ECDH
ドメインパラメータ生成機能試験, ドメインパラメータ検証機能試験
鍵ペア生成機能試験, 公開鍵検証機能試験,
鍵共有機能試験
–
PSEC-KEM
鍵ペア生成機能試験,
セッション鍵暗号化機能試験
, セッション鍵復号機能試験
※各暗号アルゴリズム確認書を発行する条件は
,
下線付きの試験対象機能を少なくとも
1つ実装し,
暗号アルゴリズム実装試験に合格することとする。
暗号アルゴリズム実装試験ツール試験項目
4.
共通鍵暗号
–
CIPHERUNICORN-E, Hierocrypt-L1, MISTY1, 3-key Triple DES,
AES, Camellia, CIPHERUNICORN-A, Hierocrypt-3, SC2000
種々の平文(暗号文)に対する既知入出力試験, 種々の鍵に対する既知入出力試
験, マルチブロックメッセージ試験, モンテカルロ試験, Sbox既知入出力試験
5.
ストリーム暗号
–
MUGI
種々の鍵に対する既知入出力試験
, モンテカルロ試験
–
MULTI-S01, 128-bit RC4
種々の平文(暗号文)に対する既知入出力試験
, 種々の鍵に対する既知入出力試
験
, モンテカルロ試験
6.
ハッシュ関数
–
RIPEMD-160, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
短いメッセージに対する試験
, 選択された長いメッセージに対する試験,
暗号アルゴリズム実装試験ツール試験項目
7.
メッセージ認証
–
CCM , CMAC, HMAC-SHA-1, HMAC-SHA-224, HMAC-SHA-256,
HMAC-SHA-384, HMAC-SHA-512
短いメッセージに対する試験
, 選択された長いメッセージに対する試験,
擬似ランダムメッセージに対する試験
8.
擬似乱数生成関数
–
PRNG based on SHA-1 for general purpose in FIPS 186-2 (+ change
notice 1) Appendix 3.1,
PRNG based on SHA-1 for general purpose in FIPS 186-2 (+ change
notice 1) revised Appendix 3.1,
PRNG based on SHA-1 in ANSI X9.42-2001 Annex C.1,
Hash_DRBG, CTR_DRBG and OFB_DRBG in ISO/IEC 18031,
NIST SP800-90(Hash_DRBG, HMAC_DRBG, CTR_DRBG),
NIST-Recommended Random Number Generator Based on ANSI X9.31
Appendix A.2.4 Using the 3-key Triple DES and AES Algorithms
種々のシードに対する試験
, モンテカルロ試験
参考:暗号アルゴリズム試験仕様書
(2006年度版)
JCATTで現在試験できないセキュリティ機能
1.
共通鍵暗号
–
CTRモード
カウンタが内部インクリメンタルカウンタ以外の実装
⇒ ベンダ自己確認
2.
擬似乱数生成器
–
Hash_DRBG, HMAC_DRBG, CTR_DRBG(NIST SP800-90)
⇒ ベンダ自己確認
3.
鍵共有
–
DH
ASN.1に基づく鍵導出関数を使用したもの。
⇒ ベンダ自己確認
DRBG: Deterministic Random Bit Generator。 決定論的乱数ビット列生成器。
DH: Diffie-Hellman
共通鍵暗号:AES
•
AES (Advanced Encryption Standard)
–
仕様:FIPS PUB 197
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
–
ブロック長:128-bit
共通鍵暗号:AES
•
暗号化/復号
–
入力
•
平文/暗号文(ブロック長:128-bit)
•
鍵(鍵長:128, 192, 256-bit)
–
出力
•
暗号文/平文(ブロック長:128-bit)
–
処理
•
128-bitの平文・暗号文を8-bitの行列要素とした4*(Nb(=4))行列
表示して, 演算を行う。
•
拡大鍵
1ワード=32-bitとして, Nb *(Nr+1)ワードの拡大鍵を生成して使
用する。ここで鍵長128, 192, 256-bit に対応して, Nr=10,12,14
である。
(Nr+1)回のXORを必要とする。
拡大鍵 平文 暗号文
AESアルゴリズム
-暗号化-•
暗号化処理の流れ
SubBytes:行列要素の置換
ShiftRows:
行単位の左シフト処理
MixColumns:
列ベクトル単位のデータの変換
AddRoundKey:
列ベクトルと拡大鍵wとのXOR演算
Nb:4,
Nr:10,12,14
for 128, 192, 256-bit key,
w:拡大鍵, 要素数Nb *(Nr+1)
Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)]) begin
byte state[4,Nb] //内部変数(4行, Nb列の行列) state = in
AddRoundKey(state, w[0, Nb-1]) // for round = 1 step 1 to Nr–1
SubBytes(state) // ShiftRows(state) // MixColumns(state) //
AddRoundKey(state, w[round*Nb, (round+1)*Nb-1]) end for
SubBytes(state) ShiftRows(state)
AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1]) out = state
拡大鍵
暗号文 平文
InvCipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)]) begin
byte state[4,Nb] //内部変数(4行, Nb列の行列) state = in
AddRoundKey(state, w[Nr*Nb,(Nr+1)*Nb-1]) // for round = Nr-1 step -1 downto 1
InvShiftRows(state) // InvSubBytes(state) //
AddRoundKey(state, w[round*Nb, (round+1)*Nb-1]) InvMixColumns(state) // end for InvShiftRows(state) InvSubBytes(state) AddRoundKey(state, w[0, Nb-1]) out = state end
•
復号処理の流れ
AESアルゴリズム
-復号-Nb:4,
Nr:10,12,14
for 128, 192, 256-bit key,
w:拡大鍵, 要素数Nb *(Nr+1)
InvSubBytes:行列要素の置換
InvShiftRows:
行単位の右シフト処理
InvMixColumns:
列ベクトル単位のデータの変換
AddRoundKey:
列ベクトルと拡大鍵wとのXOR演算
共通鍵暗号:利用モード
•
利用モード
–
ブロック長よりも長いメッセージを暗号化する際の
メカニズム
–
仕様:SP800-38A
•
JCATTでAESと組合わせて試験できる
利用モード
–
ECB (Electronic Codebook)モード
–
CBC (Cipher Block Chaining)モード
–
CFB (Cipher Feedback)モード
–
OFB (Output Feedback)モード
ECBモード
•
動作:各ブロックを独立に暗号化又は復号
•
特徴:シンプル, 並列処理可能
平文
ブロック1
暗号文
ブロック1
暗号化
平文
ブロックn
暗号文
ブロックn
暗号化
・・・
暗号文
ブロック1
平文
ブロック1
復号
暗号文
ブロックn
平文
ブロックn
復号
・・・
暗号化
復号
CBCモード
•
動作:直前の暗号文ブロックと平文ブロックとのXORを演算してから暗号化。
直前の暗号文ブロックと復号した暗号文ブロックのXORを演算して復号。
•
特徴:復号のみ並列処理可能
初期化
ベクトル(IV)
平文
ブロック1
暗号文
ブロック1
暗号化
平文
ブロック2
暗号文
ブロック2
暗号化
平文
ブロック3
暗号文
ブロック3
暗号化
初期化
ベクトル(IV)
平文
ブロック1
暗号文
ブロック1
復号
平文
ブロック2
暗号文
ブロック2
復号
平文
ブロック3
暗号文
ブロック3
復号
暗号化
復号
CFBモード
•
動作:直前の暗号文ブロックを暗号化して入力ブロックとのXORを演算。
•
特徴:復号のみ並列処理可能
初期化
ベクトル(IV)
暗号文
ブロック1
暗号化
暗号文
ブロック2
暗号化
暗号文
ブロック3
暗号化
平文
ブロック1
暗号文
ブロック1暗号化
平文
ブロック2
暗号文
ブロック2
暗号化
平文
ブロック3
暗号文
ブロック3
暗号化
初期化
ベクトル(IV)
平文
ブロック3
平文
ブロック1
平文
ブロック2暗号化
復号
OFBモード
•
動作:初期化ベクトル(IV)を暗号化して入力ブロックとのXORを演算。
•
特徴:暗号化と復号が同じ構造, 前準備可能
初期化
ベクトル(IV)
暗号文
ブロック1
暗号化
平文
ブロック2
暗号文
ブロック2
暗号化
平文
ブロック3
暗号文
ブロック3
暗号化
平文
ブロック1
初期化
ベクトル(IV)
暗号文
ブロック1
暗号化
平文
ブロック2
暗号文
ブロック2
暗号化
平文
ブロック3
暗号文
ブロック3
暗号化
平文
ブロック1
暗号化
復号
CTRモード
•
動作:カウンタブロックを暗号化して入力ブロックとのXORを演算。
•
特徴:暗号化と復号が同じ構造, 前準備可能, 並列処理可能
平文
ブロック1
暗号文
ブロック1
暗号化
暗号化
平文
ブロック2
暗号文
ブロック2
暗号化
平文
ブロック3
暗号文
ブロック3
暗号化
平文
ブロック1
暗号文
ブロック1
暗号化
平文
ブロック2
暗号文
ブロック2
暗号化
平文
ブロック3
暗号文
ブロック3
暗号化
復号
外部カウンタ1 内部カウンタ1 外部カウンタ2 内部カウンタ2 外部カウンタ3 内部カウンタ3 外部カウンタ1 内部カウンタ1 外部カウンタ2 内部カウンタ2 外部カウンタ3 内部カウンタ3 カウンタ 初期化 カウンタ 初期化AES暗号アルゴリズム実装試験項目
•
既知入出力試験
–
種々の平文(暗号文)に対する既知入出力試験
(KAT-Text)
–
種々の鍵に対する既知入出力試験(KAT-key)
–
GFSbox 既知入出力試験(KAT-GFSbox)
–
KeySbox 既知入出力試験(KAT-KeySbox)
•
マルチブロックメッセージ試験(MMT)
•
モンテカルロ試験(MCT)
参考:
The Advanced Encryption Standard Algorithm Validation Suite
既知入出力試験 (KAT-Text)
•
種々の平文(暗号文)に
対する既知入出力試
験(KAT-Text)
–
1個の鍵
–
平文(又は暗号文) を
様々に変化させ,暗号
文(または平文) が期待
値と一致するかどうかを
試験する。
•
質問ファイル抜粋
[Bitlength of Key] 128[Key for KAT-Text]
00000000 00000000 00000000 00000000 [Plaintext for KAT-Text]
80000000 00000000 00000000 00000000 C0000000 00000000 00000000 00000000 E0000000 00000000 00000000 00000000 F0000000 00000000 00000000 00000000 F8000000 00000000 00000000 00000000 FC000000 00000000 00000000 00000000 FE000000 00000000 00000000 00000000 FF000000 00000000 00000000 00000000 FF800000 00000000 00000000 00000000 FFC00000 00000000 00000000 00000000 FFE00000 00000000 00000000 00000000 FFF00000 00000000 00000000 00000000 --省略- -FFFFFFFF -FFFFFFFF -FFFFFFFF FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
※分かりやすくするために空白を追加
⇒暗号鍵。
⇒鍵長。
⇒平文。
既知入出力試験 (KAT-Key)
•
種々の鍵に対する既知入出
力試験(KAT-Key)
–
1個の平文(又は暗号文)
–
鍵を様々に変化させ,暗号文
(または平文) が期待値と一致
するかどうかを試験する。
•
質問ファイル抜粋
[Plaintext for KAT-Key]
00000000 00000000 00000000 00000000 [Key for KAT-Key]
80000000 00000000 00000000 00000000 C0000000 00000000 00000000 00000000 E0000000 00000000 00000000 00000000 F0000000 00000000 00000000 00000000 F8000000 00000000 00000000 00000000 FC000000 00000000 00000000 00000000 FE000000 00000000 00000000 00000000 FF000000 00000000 00000000 00000000 FF800000 00000000 00000000 00000000 FFC00000 00000000 00000000 00000000 FFE00000 00000000 00000000 00000000 FFF00000 00000000 00000000 00000000 --省略- -FFFFFFFF -FFFFFFFF -FFFFFFFF FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
※分かりやすくするために空白を追加
⇒暗号鍵。
⇒平文。
既知入出力試験 (KAT-GFSbox)
•
GFSboxに対する既知
入出力試験
(KAT-GFSbox)
–
1個の鍵
–
Sboxテーブルのエント
リーを全て1回以上引く
ように作成された複数の
平文(又は暗号文) を
使って,暗号文(または平
文) が期待値と一致する
かどうかを試験する。
•
質問ファイル抜粋
[Key for KAT-GFSbox]
00000000 00000000 00000000 00000000 [Plaintext for KAT-GFSbox]
F34481EC 3CC627BA CD5DC3FB 08F273E6 9798C464 0BAD75C7 C3227DB9 10174E72 96AB5C2F F612D9DF AAE8C31F 30C42168 6A118A87 4519E64E 9963798A 503F1D35 CB9FCEEC 81286CA3 E989BD97 9B0CB284 B26AEB18 74E47CA8 358FF223 78F09144 58C8E00B 2631686D 54EAB84B 91F0ACA1 [IV for KAT-GFSbox]
00000000 00000000 00000000 00000000
⇒暗号鍵。
⇒初期化ベクトル。
⇒平文。
既知入出力試験 (KAT-keySbox)
•
KeySboxに対する
既知入出力試験
(KAT-KeySbox)
–
1個の平文(又は暗号文)
–
Sboxテーブルのエント
リーを全て1回以上引くよ
うに作成された複数の鍵
を使って,暗号文(または
平文) が期待値と一致す
るかどうかを試験する。
•
質問ファイル抜粋
[Plaintext for KAT-KeySbox]
00000000000000000000000000000000 [IV for KAT-KeySbox]
00000000000000000000000000000000 [Key for KAT-KeySbox]
10A58869D74BE5A374CF867CFB473859 CAEA65CDBB75E9169ECD22EBE6E54675 A2E2FA9BAF7D20822CA9F0542F764A41 B6364AC4E1DE1E285EAF144A2415F7A0 64CF9C7ABC50B888AF65F49D521944B2 47D6742EEFCC0465DC96355E851B64D9 3EB39790678C56BEE34BBCDECCF6CDB5 64110A924F0743D500CCADAE72C13427 −−省略−− E234CDCA2606B81F29408D5F6DA21206 13237C49074A3DA078DC1D828BB78C6F 3071A2A48FE6CBD04F1A129098E308F8 90F42EC0F68385F2FFC5DFC03A654DCE FEBD9A24D8B65C1C787D50A4ED3619A9
⇒暗号鍵。
⇒初期化ベクトル。
⇒平文。
マルチブロックメッセージ試験(MMT)
•
MMTでは, ランダムに与えられた複数ブロック分の平文(ま
たは暗号文),IV,カウンタに対する暗号文(または平文) が
期待値と一致するかどうか検証を行う。
ただし,MMT ブロック数の規定値は10。
•
質問ファイル抜粋
[Number of Blocks for MMT]
10
[Key for MMT]
7ae100eaafe60081b7ccbd1f34d7173b
[IV for MMT]
ECF8A3A30533EF9967519EC782EBA8F7
[Plaintext for MMT]
2807d57da0f660670e65b1fac64ba1b4b912eabd9fc9ddee65cc90ac864649a54cbe4ab9950167
3439633908c58531c69b64ca530e68dcf7ad363a328255e0101dccea7e4cbaffae712c3475328e
a845a9dce495c8b0bcd8c77b083103d482fdbc7c48d8ca524ec14bc05404a68f35026d7de12e0a
5765717e4c853b918dc98db570655124849d89e985b412e55af9a850ea11094b64364e41528c3d
6255782a
⇒ブロック数。
⇒暗号鍵。
⇒初期化ベクトル(IV)。
⇒平文。
モンテカルロ試験(MCT)
•
ランダムに与えられた1 ブロック分の平文(または暗号文),鍵,IV(ECB
モードを除く)に対して,指定された利用モードで計算される暗号文 (また
は平文)が期待値と一致するかどうか検証を行う。
[Number of Inner-loop for MCT] 1000
[Number of Outer-loop for MCT] 100
[Initial Key for MCT]
08152CDDCEDCBBE8909A0DE520C80D3D [Initial Plaintext for MCT]
2D8A66FDC53DCEE76A50E16B9365EBC0 Key[0] = Key // 初期鍵
PT = PT_0 // 初期平文
for (i=0; i<outerloop; i++){
for (j=0; j<innerloop; j++){
// ECB モード暗号化
CT[j] = Encryption(Key[i], PT) PT = CT[j] } Output CT[innerloop-1] If ( 鍵長==128 ビット){Key[i+1] = Key[i] xor CT[innerloop-1] } //--鍵長が192及び256 ビットの // 処理については省略- -}
ブロック長, 各モード, 暗号化・復号,
鍵長によって対応するMCT擬似コード
は異なる。
暗号アルゴリズム試験仕様書を参照。
•
質問ファイル抜粋
•MCT擬似コード(ECBモード/暗号化)
⇒出力
AES暗号化:
質問ファイル及び回答ファイルのフォーマット(1/2)
上記パラメータに対する暗号文 [Ciphertext for KAT-GFSbox]
KAT-GFSbox用カウンタ(CTRモードのみ) [Counter for KAT-GFSbox]
KAT-GFSbox用カウンタ(CTRモードのみ) [Counter for KAT-GFSbox]
KAT-GFSbox用IV [IV for KAT-GFSbox]
KAT-GFSbox用IV [IV for KAT-GFSbox]
KAT-GFSbox用平文 [Plaintext for KAT-GFSBox]
KAT-GFSbox用平文 [Plaintext for KAT-GFSBox]
KAT-GFSbox用鍵 [Key for KAT-GFSbox]
KAT-GFSbox用鍵 [Key for KAT-GFSbox]
上記パラメータに対する暗号文 [Ciphertext for KAT-Key]
KAT-Key用鍵 [Key for KAT-Key]
KAT-Key用鍵 [Key for KAT-Key]
KAT-Key用カウンタ(CTRモードのみ) [Counter for KAT-Key]
KAT-Key用カウンタ(CTRモードのみ) [Counter for KAT-Key]
KAT-Key用IV [IV for KAT-Key]
KAT-Key用IV [IV for KAT-Key]
KAT-Key用平文 [Plaintext for KAT-Key]
KAT-Key用平文 [Plaintext for KAT-Key]
上記パラメータに対する暗号文 [Ciphertext for KAT-Text]
KAT-TEXT用カウンタ(CTRモードのみ) [Counter for KAT-Text]
KAT-TEXT用カウンタ(CTRモードのみ) [Counter for KAT-Text]
KAT-TEXT用IV [IV for KAT-Text]
KAT-TEXT用IV [IV for KAT-Text]
KAT-TEXT用平文 [Plaintext for KAT-Text]
KAT-TEXT用平文 [Plaintext for KAT-Text]
KAT-TEXT用鍵 [Key for KAT-Text]
KAT-TEXT用鍵 [Key for KAT-Text]
カウンタのビット幅(CTRモードのみ) [Bitlength of Counter] カウンタのビット幅(CTRモードのみ) [Bitlength of Counter] 鍵のビット長;128/192/256 [Bitlength of Key] 鍵のビット長;128/192/256 [Bitlength of Key] ECB/CBC/OFB/CFB1/CFB8/CFB128/CTR [Modes of Operation] ECB/CBC/OFB/CFB1/CFB8/CFB128/CTR [Modes of Operation] Encryption(固定) [Function Name] Encryption(固定) [Function Name] AES(固定) [Algorithm Name] AES(固定) [Algorithm Name] 暗号 化 データ タグ データ タグ 回答ファイルフォーマット 質問ファイルフォーマット 機能
KAT-TEXT
KAT-Key
KAT-GFSbox
AES暗号化:
質問ファイル及び回答ファイルのフォーマット(2/2)
上記パラメータに対する暗号文 [Ciphertext for MCT]
MCT用カウンタ初期値(CTRモードのみ) [Initial Value of Counter for MCT]
MCT用カウンタ初期値(CTRモードのみ) [Initial Value of Counter for MCT]
MCT用IVの初期値 [Initial IV for MCT]
MCT用IVの初期値 [Initial IV for MCT]
MCT用平文の初期値 [Initial Plaintext for MCT]
MCT用平文の初期値 [Initial Plaintext for MCT]
MCT用鍵の初期値 [Initial Key for MCT]
MCT用鍵の初期値 [Initial Key for MCT]
MCTの外側ループの回数 [Number of Outer-loop for MCT]
MCTの外側ループの回数 [Number of Outer-loop for MCT]
MCTの内側ループの回数 [Number of Inner-loop for MCT]
MCTの内側ループの回数 [Number of Inner-loop for MCT]
上記パラメータに対する暗号文 [Ciphertext for MMT] MMT用平文 [Plaintext for MMT] MMT用平文 [Plaintext for MMT] MMT用カウンタ初期値(CTRモードのみ) [Initial Value of Counter for MMT]
MMT用カウンタ初期値(CTRモードのみ) [Initial Value of Counter for MMT]
MMT用IV [IV for MMT] MMT用IV [IV for MMT] MMT用鍵 [Key for MMT] MMT用鍵 [Key for MMT] MMTのブロック数 [Number of Blocks for MMT]
MMTのブロック数 [Number of Blocks for MMT]
上記パラメータに対する暗号文 [Ciphertext for KAT-KeySbox]
KAT-KeySbox用鍵 [Key for KAT-KeySbox]
KAT-KeySbox用鍵 [Key for KAT-KeySbox]
KAT-KeySbox用カウンタ(CTRモードのみ) [Counter for KAT-KeySbox]
KAT-KeySbox用カウンタ(CTRモードのみ) [Counter for KAT-KeySbox]
KAT-KeySbox用IV [IV for KAT-KeySbox]
KAT-KeySbox用IV [IV for KAT-KeySbox]
KAT-KeySbox用平文 [Plaintext for KAT-KeySBox]
KAT-KeySbox用平文 [Plaintext for KAT-KeySBox]
暗号 化 データ タグ データ タグ 回答ファイルフォーマット 質問ファイルフォーマット 機能
KAT-KeySbox
MMT
MCT
AES復号:
質問ファイル及び回答ファイルのフォーマット(1/2)
上記パラメータに対する平文 [Plaintext for KAT-GFSbox]
KAT-GFSbox用カウンタ(CTRモードのみ) [Counter for KAT-GFSbox]
KAT-GFSbox用カウンタ(CTRモードのみ) [Counter for KAT-GFSbox]
KAT-GFSbox用IV [IV for KAT-GFSbox]
KAT-GFSbox用IV [IV for KAT-GFSbox]
KAT-GFSbox用暗号文 [Ciphertext for KAT-GFSBox]
KAT-GFSbox用暗号文 [Ciphertext for KAT-GFSBox]
KAT-GFSbox用鍵 [Key for KAT-GFSbox]
KAT-GFSbox用鍵 [Key for KAT-GFSbox]
上記パラメータに対する平文 [Plaintext for KAT-Key]
KAT-Key用鍵 [Key for KAT-Key]
KAT-Key用鍵 [Key for KAT-Key]
KAT-Key用カウンタ(CTRモードのみ) [Counter for KAT-Key]
KAT-Key用カウンタ(CTRモードのみ) [Counter for KAT-Key]
KAT-Key用IV [IV for KAT-Key]
KAT-Key用IV [IV for KAT-Key]
KAT-Key用暗号文 [Ciphertext for KAT-Key]
KAT-Key用暗号文 [Ciphertext for KAT-Key]
上記パラメータに対する平文 [Plaintext for KAT-Text]
KAT-TEXT用カウンタ(CTRモードのみ) [Counter for KAT-Text]
KAT-TEXT用カウンタ(CTRモードのみ) [Counter for KAT-Text]
KAT-TEXT用IV [IV for KAT-Text]
KAT-TEXT用IV [IV for KAT-Text]
KAT-TEXT用暗号文 [Ciphertext for KAT-Text]
KAT-TEXT用暗号文 [Ciphertext for KAT-Text]
KAT-TEXT用鍵 [Key for KAT-Text]
KAT-TEXT用鍵 [Key for KAT-Text]
カウンタのビット幅(CTRモードのみ) [Bitlength of Counter] カウンタのビット幅(CTRモードのみ) [Bitlength of Counter] 鍵のビット長;128/192/256 [Bitlength of Key] 鍵のビット長;128/192/256 [Bitlength of Key] ECB/CBC/OFB/CFB1/CFB8/CFB128/CTR [Modes of Operation] ECB/CBC/OFB/CFB1/CFB8/CFB128/CTR [Modes of Operation] Decryption(固定) [Function Name] Decryption(固定) [Function Name] AES(固定) [Algorithm Name] AES(固定) [Algorithm Name] 復号 データ タグ データ タグ 回答ファイルフォーマット 質問ファイルフォーマット 機能
KAT-TEXT
KAT-Key
KAT-GFSbox
AES復号:
質問ファイル及び回答ファイルのフォーマット(2/2)
上記パラメータに対する平文 [Plaintext for MCT]
MCT用カウンタ初期値(CTRモードのみ) [Initial Value of Counter for MCT]
MCT用カウンタ初期値(CTRモードのみ) [Initial Value of Counter for MCT]
MCT用IVの初期値 [Initial IV for MCT]
MCT用IVの初期値 [Initial IV for MCT]
MCT用暗号文の初期値 [Initial Ciphertext for MCT]
MCT用暗号文の初期値 [Initial Ciphertext for MCT]
MCT用鍵の初期値 [Initial Key for MCT]
MCT用鍵の初期値 [Initial Key for MCT]
MCTの外側ループの回数 [Number of Outer-loop for MCT]
MCTの外側ループの回数 [Number of Outer-loop for MCT]
MCTの内側ループの回数 [Number of Inner-loop for MCT]
MCTの内側ループの回数 [Number of Inner-loop for MCT]
上記パラメータに対する平文 [Plaintext for MMT] MMT用暗号文 [Ciphertext for MMT] MMT用暗号文 [Ciphertext for MMT] MMT用カウンタ初期値(CTRモードのみ) [Initial Value of Counter for
MMT] MMT用カウンタ初期値(CTRモードのみ)
[Initial Value of Counter for MMT]
MMT用IV [IV for MMT] MMT用IV [IV for MMT] MMT用鍵 [Key for MMT] MMT用鍵 [Key for MMT] MMTのブロック数 [Number of Blocks for MMT]
MMTのブロック数 [Number of Blocks for MMT]
上記パラメータに対する平文 [Plaintext for KAT-KeySbox]
KAT-KeySbox用鍵 [Key for KAT-KeySbox]
KAT-KeySbox用鍵 [Key for KAT-KeySbox]
KAT-KeySbox用カウンタ(CTRモードの み)
[Counter for KAT-KeySbox] KAT-KeySbox用カウンタ(CTRモードのみ)
[Counter for KAT-KeySbox]
KAT-KeySbox用IV [IV for KAT-KeySbox]
KAT-KeySbox用IV [IV for KAT-KeySbox]
KAT-KeySbox用暗号文 [Ciphertext for KAT-KeySBox]
KAT-KeySbox用暗号文 [Ciphertext for KAT-KeySBox]
復号 データ タグ データ タグ 回答ファイルフォーマット 質問ファイルフォーマット 機能
KAT-KeySbox
MMT
MCT
AES暗号アルゴリズム実装試験の
申し込みに必要な情報
•
機能
–
暗号化,復号
•
利用モード
–
ECB,CBC,CFB,OFB,CTR
•
鍵長
–
128,192,256
•
カウンタ種別
–
内部カウンタ,外部カウンタ
鍵長
•128-bit
•192-bit
•256-bit
利用モード
•ECB (Electronic Codebook),
•CBC (Cipher Block Chaining),
•CFB (Cipher Feedback),
•OFB (Output Feedback),
•CTR (Counter)
X
X
機能
•暗号化
•復号
質問ファイル数
暗号アルゴリズム確認書の
確認条件記載例
ECB(e/d;128,192,256),CBC(e/d;128,192,256),
CTR(int;128,192,256)
AES
nnn
確認条件
暗号アルゴリズム
確認番号
•
確認条件記載項目
–
利用モード(ECB/CBC/CFB/OFB/CTR)
–
機能(e:暗号化, d:復号)
–
鍵長(128/192/256)
–
その他
•
CTRモードについては,
カウンタ種別(int:内部カウンタ, ext:外部カウンタ)
•
確認条件記載例
暗号モジュールの
暗号アルゴリズム実装試験セミナー
第2部:RSA
–
守秘: RSA-OAEP
•暗号化/復号
–
署名: RSA-PSS
•署名生成/署名検証
公開鍵暗号:RSA
•
守秘
–
公開鍵で暗号化
–
プライベート鍵で復号
•
署名
–
プライベート鍵で署名生成
–
公開鍵で署名検証
36
公開鍵暗号:RSA
•
RSAパラメータ
–
素数
•
p,q
–
公開鍵
•
n(=pq):法
•
e:指数
–
プライベート鍵
•
CRTなし
–
d:秘密指数
•
CRTあり
–
p, q, dP, dQ, qInv
•
性質
–
オイラーのφ関数
:
1, 2, …, nまでの自然数の
うち, nと互いに素なものの個数。
–
–
プライベート鍵
•
CRTなし
•
CRTあり
))
(
(mod
1
n
d
e
)
1
)(
1
(
)
(
)
(
)
(
n
p
q
p
q
1
))
(
,
gcd(
e
n
※CRT:Chinese Remainder Theorem
※gcd:greatest common divisor
最大公約数
)
(n
))
1
(mod(
1
p
dP
e
))
1
(mod(
1
q
dQ
e
)
(mod
1
p
qInv
q
・合同式
→
)
(mod m
b
a
b
mx
a
公開鍵暗号:RSA
•
承認されたセキュリティ機能
–
守秘
•
RSA-OAEP
←こちらについて説明
•
RSAES-PKCS1-v1_5
–
署名
•
RSASSA-PKCS1-v1_5
•
RSA-PSS
←こちらについて説明
–
仕様
PKCS#1 v2.1: RSA Cryptography Standard, June
14, 2002.
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.pdf
公開鍵暗号:RSA <守秘>
•
暗号化
受信者の公開鍵を用いる。
–
メッセージ
m
•
n 未満の正の整数。
–
暗号文
c
•
•
復号
受信者のプライベート鍵を用いて復号する
–
平文
m’
•
m
'
c
d(mod
n
)
n
m
c
e
mod
公開鍵暗号:RSA-OAEP 暗号化(1)
•
RSA-OAEP
–
暗号化
•
内部で使用する関数
–
Hash ハッシュ関数(ハッシュ関数の出力長は
hLen
(バイト))
SHA-1, SHA-256, SHA-384, SHA-512
–
MGF マスク生成関数
•
入力
–
(n, e) 受信者の公開鍵 (法 n の長さは
k
(バイト))
–
M
暗号化したいメッセージ(長さは
mLen
(バイト))
–
L
メッセージに関連したラベル (デフォルトで空文字)
•
出力
–
C 暗号文(長さは
k
(バイト))
公開鍵暗号: RSA-OAEP 暗号化(2)
•
処理概要
1.
長さチェック
–
ラベル
L の長さ制限(ハッシュ関数との関連)
ならば, エラー表示
2
2hLen
k
mLen
4.
暗号文の出力
3.
暗号化処理
2.
メッセージの前処理
L
(n,e)
M
C
Hash
MGF
公開鍵 メッセージ ラベル
暗号文
ハッシュ関数
マスク生成関数
公開鍵暗号: RSA-OAEP 暗号化(3)
•
処理概要
2.
メッセージの前処理
L
Hash
PS
M
lHash
01
mLen
k-mLen-2hLen-2
1
k-hLen-1
M
seed
hLen
DB=
MGF
MGF
maskedDB
maskedSeed
00
1
EM=
凡例
•白背景・・・入力
•緑背景・・・中間
•青字・・・長さ
•丸枠・・・関数
0x00で埋める
MGF:入力文字列と
カウンタをハッシュ関数への
入力として用いて, 必要な
長さのバイト列を生成する。
擬似乱数生成器から
EM
OS2IP
(n,e)
m
RSAEP
c
I2OSP
C
前頁より
公開鍵:
バイト列(仕様書中ではoctet stringsと表記)
EM(長さ
k (バイト))を整数mに変換する
整数
cをバイト列C (長さ
k
(バイト))に
変換する
暗号文:
の計算式に従い,
cを計算する。
c
m
n
emod
公開鍵暗号: RSA-OAEP 暗号化(4)
•
処理概要
3.
暗号化処理
公開鍵暗号: RSA
-マスク生成関数(1)-•
マスク生成関数(MGF:Mask Generation Function)
※ANSI X9.44に記載のものと同様
–
内部で使用する関数
•
Hash ハッシュ関数(ハッシュ関数の出力長は
hLen
(バイト))
SHA-1, SHA-256, SHA-384, SHA-512
–
入力
•
mgfSeed マスクを生成する元となるシード, バイト列
•
maskLen 生成したいマスクの長さ(バイト単位), 最大2
32hLen
。
–
出力
公開鍵暗号: RSA
-マスク生成関数(2)-•
マスク生成関数(MGF:Mask Generation Function)
–
処理概要
4
counter
I2OSP
mgfSeed
Hash
T
01
I2OSP
mgfSeed
Hash
T
11
I2OSP
mgfSeed
Hash
T
m0
maskLen
mask
hLen
1
/ hLen
maskLen
m
整数からバイト列への変換
公開鍵暗号: RSA-OAEP
暗号化機能試験(1)
•
試験項目
–
試験1
•
JCATT
®が与えた公開鍵(n, e) および平文,ならびに指定され
たハッシュ関数およびマスク生成関数MGF およびラベルL に対
して
IUT
が生成した暗号文を,
JCATT
®が復号した時に,もとの
平文に復号されること。
•
同じ平文,同じ公開鍵,同じラベル値に対して,複数(別途規定
する数) 暗号文を生成させた時,同じ暗号文が生成されないこと。
JCATT
®: Japan Cryptographic Algorithm Implementation Testing Tool,
暗号アルゴリズム実装試験ツール
公開鍵暗号: RSA-OAEP
暗号化機能試験(2)
•
試験項目
–
試験2(任意で実施する試験)
•
JCATT
®が与えた公開鍵(n, e),平文およびラベルL,ならびに指
定された擬似乱数生成関数,指定されたハッシュ関数およびマ
スク生成関数MGF と, 乱数シードに対して正しい暗号文を
IUT
が生成すること。
–
試験3(任意で実施する試験)
•
JCATT
®が与えた公開鍵(n, e),平文およびラベルL,ならびに指
定されたハッシュ関数,マスク生成関数MGF および中間値seed
対して正しい暗号文を
IUT
が生成すること。
公開鍵暗号: RSA-OAEP
暗号化機能試験(3)
•
申し込む際に必要な情報
–
公開鍵
•
nのビット長
1024, 1536, 2048, 3072, 4096
•
指数
eのタイプ選択
65537, ランダム
–
関数の選択
•
使用するハッシュ関数
SHA-1, SHA-256, SHA-384, SHA-512
•
マスク生成関数(MGF)
ANSI X9.44 SHA-1, ANSI X9.44 SHA-256,
ANSI X9.44 SHA-384, ANSI X9.44 SHA-512
–
試験の選択
•
試験1, 試験2(擬似乱数生成関数の指定), 試験3
復号と
公開鍵暗号: RSA-OAEP
暗号化機能試験(4)
•
試験1の場合(質問ファイル抜粋)
[Bitlength of Modulus] 1024 [Hash] M_Hash_SHA256 [MGF] M_MGF_ANSI944_SHA256 [n] C110E0F94823D8DAA43AF0E3DBF4264FB634F68E28951F504F B0EF7757F68604D57D78ABB86F0066FA0228B5D2EE4B9E1618 5DAA127B5349042AB4C3AAEB300749A099B1A22449B7093256 EDCC6E38EC22F38CA9BC7D3CA21303B6F4F3E9A5877E0C5A33 16A70856B043554F84FDB2A19F22222BEA67DB6F62EB324236 4A1671 [e] 010001 [L] [Bitlength of L] 0 [Seed S] [Bitlength of Seed S] 0 [Bitlength of Plaintexts] 64 [Bitlength of Ss] 0 [Number of Plaintexts] 10 [Plaintexts] 28102857CDE5F494 CA0B68026018407B 63D5F4134B4EA3A8 275C6A859A88C972 3B9654EAF30279D2 A77953D4E837BE0E 982D2357B7B658FC BD00584A65368C3C E1280758E89A5C78 AD5C4702C515F57F [Ss][Number of Ciphertexts for RGT] 10 ⇒公開鍵e=65537。 ⇒ラベルL, 長さ0。 ┌→同じ平文に対して 10個の暗号文を生成。 ⇒平文10個。 64-bit。 ⇒法nのビット長。 ⇒法n。 ⇒ハッシュ関数:SHA-256 ⇒MGF:ANSI X9.44 SHA-256 ⇒試験2で 使う。 ⇒試験3で使う。
公開鍵暗号: RSA-OAEP 復号(1)
•
RSA-OAEP
–
復号
•
内部で使用する関数
–
Hash ハッシュ関数(ハッシュ関数の出力長は
hLen
(バイト))
SHA-1, SHA-256, SHA-384, SHA-512
–
MGF マスク生成関数
•
入力
–
K
受信者のプライベート鍵 (法
n の長さは
k
(バイト))
–
C
復号したい暗号文(長さは
k
(バイト))
–
L
メッセージとの関連が検証されるラベル
•
出力
–
M メッセージ(長さは
mLen
(バイト))
公開鍵暗号: RSA-OAEP 復号(2)
•
処理概要
L
K
C
プライベート鍵 暗号文
ラベル
Hash
MGF
ハッシュ関数
マスク生成関数
M
1.
長さチェック
2.
復号処理
3.
メッセージを取り出す処理
4.
メッセージを出力
メッセージ
C
OS2IP
K
c
RSADP
m
I2OSP
EM
プライベート鍵:
バイト列
C(長さ
k (バイト))を
整数
cに変換する
整数
mをバイト列EM
(長さ
k
(バイト))に変換する
CRTなしの場合, 計算式
に従い,
mを計算する。
n
c
m
dmod
公開鍵暗号: RSA-OAEP 復号(3)
暗号文
•
処理概要
2.
復号処理
L
Hash
PS
M
lHash’
01
mLen
k-mLen-2hLen-2
1
k-2hLen-1
M
seed
hLen
DB=
MGF
MGF
maskedDB
maskedSeed
Y
1
EM=
k
lHash
hLen
?
公開鍵暗号: RSA-OAEP 復号(4)
•
処理概要
3.
メッセージを取り出す処理
公開鍵暗号: RSA-OAEP
復号機能試験(1)
•
試験項目
–
与えられたプライベート鍵(n, d) または(p, q, dP, dQ,
qInv) と,与えられたラベルL と,指定されたハッシュ関数
及びマスク生成関数MGF と,
与えられた暗号文に対して,
もとの平文に復号できること。
–
与えられたプライベート鍵(n, d) または(p, q, dP, dQ,
qInv) と,与えられたラベルL と,指定されたハッシュ関数
及びマスク生成関数MGF と,
改竄された暗号文に対して
不正検出を正しく行うこと。
公開鍵暗号: RSA-OAEP
復号機能試験(2)
•
申し込む際に必要な情報
–
プライベート鍵
•
nのビット長
1024, 1536, 2048, 3072, 4096
•
プライベート鍵のタイプ選択
CRTあり, CRTなし
–
関数の選択
•
使用するハッシュ関数
SHA-1, SHA-256, SHA-384, SHA-512
•
マスク生成関数(MGF)
ANSI X9.44 SHA-1, ANSI X9.44 SHA-256,
ANSI X9.44 SHA-384, ANSI X9.44 SHA-512
暗号化と
異なる部分
公開鍵暗号: RSA-OAEP
復号機能試験(3)
•
質問ファイル抜粋
[Bitlength of Modulus] 1024 [Hash] M_Hash_SHA256 [MGF] M_MGF_ANSI944_SHA256 [Secret Key Type] TYPE2 [d] 18DD6DB2FEEA48C616CE353F370C1AE896A0157EC8A817D 40E330D6125E75D80C5F798B0D6E1B313B79331B77BBB1E EC3E6C8170709905B5310DA2E7439E6E7D2B26266AEB842 3A73A9AC4110350507D747A2C71B4FC419383FB9DE50D31 72A1E525163A0CA447B0C3D50B253499F73B33976212A04 0CA9F7947C52174413725 [n] 9BE5A018CE25343868FDDB5EC942BF8CD67CC5EA79C9071 CF37B9DA79228671C8457EB4E5220A3FEB3E4B15928D781 371F1790ED19C1AB945B7513C20CE8C7767850B80BC21DB 727436B4F9C58B0E101427AA45383C4D6BD876CAFBA2A03 D427927BE2903F5996E3D8135AC3C86557DBED55F7D38F7 [L] [Bitlength of L] 0 [Bitlength of Plaintexts] 64 [Number of Ciphertexts] 10 [Ciphertexts] 478551F4F9F67DED434A28F02C0CC0796B762B 543D9116B66618C57DD45C91E60C1598D4011D E48A2FE7F71D0878AF1C20205C39A5305A81CE 87AEF1D482AF20B07315D10D7FCF3A48E2E76A 5DC6C1B36A11B9523DABEC75BD4BF0D6E7E80C C9B6295C4859ED7C8DAAE447F97052B5892C5A CC2E3022A5571E83A17D08E90BC7 --省略- -⇒法nのビット長。 ⇒プライベート鍵:CRTなし。 ⇒10個の暗号文。 ⇒ハッシュ関数:SHA-256 ⇒MGF:ANSI X9.44 SHA-256 ⇒プライベート鍵d。 ⇒法n。 ⇒ラベルL, 長さ0。 ⇒平文の ビット長。復号できる場合には, 元の平文を,
復号できない場合には,
”decryption error”を回答ファイルに記述。
公開鍵暗号: RSA <署名>
•
署名生成
–
署名者のプライベート鍵を用いて“暗号化”する。
•
署名検証
公開鍵暗号: RSA-PSS
署名生成(1)
•
RSA-PSS
–
署名生成
•
内部で使用する関数
–
Hash ハッシュ関数(ハッシュ関数の出力長は
hLen
(バイト))
SHA-1, SHA-256, SHA-384, SHA-512
–
MGF マスク生成関数
•
入力
–
K 署名者のプライベート鍵
–
M 署名したいメッセージ(バイト列)。
•
出力
–
S 長さ
k
(バイト)の署名。ここで,
k
は法
n の長さ。
公開鍵暗号: RSA-PSS
署名生成(2)
•
処理概要
K
M
Hash
MGF
ハッシュ関数
マスク生成関数
S
1.
符号化処理
2.
署名生成処理
3.
署名の出力
署名
プライベート鍵
メッセージ
padding
1mHash
salt
emLen-sLen-hLen-2
1
sLen
M
hLen
M’=
MGF
maskedDB
H
bc
8
EM=
emLen
Hash
Hash
padding
201
salt
DB=
hLen
emLen-hLen-1
1
公開鍵暗号: RSA-PSS
署名生成(3)
•
処理概要
1.
符号化処理
8emLen-emBitsビット
分は0に設定
0x00で埋める
=
公開鍵暗号: RSA-PSS
署名生成(4)
•
処理概要
2.
署名生成処理
EM
OS2IP
K
m
RSASP1
s
I2OSP
S
前頁より
プライベート鍵:
バイト列
EM(長さ
k (バイト))を
整数
mに変換する
整数
s をバイト列 S (長さ
k
(バイト))に
変換する。
署名:
CRT無しの場合, 計算式
に従い,
sを計算する。
n
m
s
dmod
公開鍵暗号: RSA-PSS
署名生成機能試験(1)
•
試験項目
–
試験1
•
JCATT
®
が与えたプライベート鍵(n, d) または(p, q,
dP, dQ, qInv),平文に対して
IUT
が生成した署名を,
JCATT
®
が署名検証した時に署名検証合格となるこ
と。
•
salt 長が 0 でない場合,同じ平文,同じプライベート
鍵に対して,複数(別途規定する数) 署名を生成させ
た時,
IUT
が同じ署名を生成しないこと。
公開鍵暗号: RSA-PSS
署名生成機能試験(2)
•
試験項目
–
試験2
(任意で実施する試験)
•
JCATT
®
が与えたプライベート鍵(n, d) または(p, q,
dP, dQ, qInv) ,平文,ならびに指定されたハッシュ関
数,擬似乱数生成関数,乱数シードに対して
IUT
が
正しい署名を生成すること.
–
試験3
(任意で実施する試験)
•
JCATT
®
が与えたプライベート鍵(n, d) または(p, q,
dP, dQ, qInv) ,平文,ならびに指定されたハッシュ関
数,
salt に対して
IUT
が正しい署名を生成すること.
公開鍵暗号: RSA-PSS
署名生成機能試験(3)
•
申し込む際に必要な情報
–
プライベート鍵
•
nのビット長
1024, 1536, 2048, 3072, 4096
•
プライベート鍵のタイプ選択
CRTあり, CRTなし
–
関数の選択
•
使用するハッシュ関数
SHA-1, SHA-256, SHA-384, SHA-512
•
マスク生成関数(MGF)
ANSI X9.44 SHA-1, ANSI X9.44 SHA-256,
ANSI X9.44 SHA-384, ANSI X9.44 SHA-512
–
試験の選択
•
試験1, 試験2(擬似乱数生成関数の指定), 試験3
–
その他
•
saltのビット長
署名検証と
異なる部分
公開鍵暗号: RSA-PSS
署名生成機能試験(4)
•
試験1の場合(質問ファイルの抜粋)
[Bitlength of Modulus] 1024 [Hash] M_Hash_SHA256 [MGF] M_MGF_ANSI944_SHA256 [Secret Key Type] TYPE2 [d] 3709FDD34CAC1BAC88D217A5E43FF0A6AFAD13E0D049 1190A61FFA5C7E20F5ADD6A5049163C91504CD4EA1C8 93A3D3D9EC9E16AC69D09F861F433F4C43E3574D8DD9 EE3543620B6A6607F36DEDB03A4D2CC2A11D3420E0A9 5FCA6B299FA147E589112C739D51603BDD883C88A515 F9C99E35E2A9883FACB2D878E269231E2229 [n] B093113903E6666BBD534384E9E9082F7C1D3C5F6B42 334BFBCFDF6809779CB8A63EDF52091BBE0EFDEED82E 400CED062B0EADDFC13F7B4C92C13FBD93445FDC83C3 A4EAB00CF6C68FDA3349CED8A4D221AD12987D8E1E11 84251C5470F8CBBB19F48A049F19B6E764EB8DE099D5 4115C72B2B0604C6582634A872BDB8405B13 [Seed Salt][Bitlength of Seed Salt] 0 [Bitlength of Plaintexts] 1024 [SaltFlag] 0 [Bitlength of Salt] 256 [Number of Plaintexts] 10 [Plaintexts] DDB8778F88379BB3602CA8C8D2E6628B2 89836E6059AB59CF473FAB7B9A52C1111 2A0890CCF6F37EF2211277F7325D511FB AB83E5148CF9C73FEDECFF8FB3E341211 0362C54555783D771B2FA5F74F70F71C8 0E28A10487BCA0B61F13961901908AD78 6C7FC3A11C1E0FAC930E7A9F437317A10 4A2251361D3C207A99F2BFC02 --省略—
[Number of Signatures for RGT] 10 ⇒法n。 ⇒プライベート鍵:CRTなし。 salt生成のため の擬似乱数生 成シード。 ⇒salt の入力フラグ。 0:指定なし。 ⇒salt のビット長。 ⇒署名したいメッセージ。 ┌→同じメッセージ に対して10個の署名 を生成。 ⇒ハッシュ関数:SHA-256 ⇒MGF:ANSI X9.44 SHA-256 ⇒プライベート鍵 d。 ⇒法nのビット長。