(57)【要約】  【課題】  暗号装置と復号装置との間で安全かつ確実な暗号化通信ができるように、復号エラーが発生しないＮＴＲＵ暗号のパラメータを生成するパラメータ生成装置を提供する。  【解決手段】  予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成する出力パラメータ生成部とを備える。【選択図】  図１
2004341502.tif 000002
【特許請求の範囲】
【請求項１】
復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成するパラメータ生成装置であって、
予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない出力パラメータを生成するエラー非発生出力パラメータ生成部を備える
ことを特徴とするパラメータ生成装置。
【請求項２】
前記エラー非発生出力パラメータ生成部は、
予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成する出力パラメータ生成部とを備える
ことを特徴とする請求項１に記載のパラメータ生成装置。
【請求項３】
前記仮パラメータ生成部は、外部から入力されたＮＴＲＵ暗号のパラメータ組である入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する
ことを特徴とする請求項２に記載のパラメータ生成装置。
【請求項４】
前記出力パラメータ生成部は、前記格子強度係数に基づく安全性決定情報と第三者による暗号解読に対する安全性を示す安全性レベル情報とに基づいて、前記仮パラメータ組から前記出力パラメータを生成する
ことを特徴とする請求項２または３に記載のパラメータ生成装置。
【請求項５】
前記出力パラメータ生成部は、前記安全性決定情報を保持する安全性決定情報保持手段を備え、前記安全性決定情報は、外部より与えられる
ことを特徴とする請求項４に記載のパラメータ生成装置。
【請求項６】
前記仮パラメータ組および前記出力パラメータは、ＮＴＲＵ暗号における次元Ｎ、非負整数ｐ、非負整数ｑ、秘密鍵多項式ｆにおける係数の値が１となる係数の数を規定する非負整数ｄｆ、公開鍵多項式を生成するときに用いるランダム多項式ｇの係数の値が１となる係数の数を規定する非負整数ｄｇ、および平文を暗号化する時に用いる乱数多項式ｒの係数の値が１となる係数の数を規定する非負整数ｄの組から構成される
ことを特徴とする請求項２〜５のいずれか１項に記載のパラメータ生成装置。
【請求項７】
前記出力パラメータ生成部は、さらに、前記格子強度係数に基づいて、前記格子強度係数格納手段に格納された前記安全性決定情報よりいずれか１つを選択する安全性決定情報選択手段を備える
ことを特徴とする請求項６に記載のパラメータ生成装置。
【請求項８】
前記仮パラメータ生成部は、前記安全性レベル情報と前記次元Ｎに基づいて前記仮パラメータ組に含まれる前記非負整数ｄｆ、前記非負整数ｄｇ、前記非負整数ｄを生成する
ことを特徴とする請求項６または７に記載のパラメータ生成装置。
【請求項９】
前記仮パラメータ生成部は、前記エラー条件情報に基づいて前記仮パラメータ組に含まれる前記非負整数ｑを生成する
ことを特徴とする請求項６から８のいずれか１項に記載のパラメータ生成装置。
【請求項１０】
前記出力パラメータ生成部は、前記安全性レベル情報と前記安全性決定情報に基づいて前記出力パラメータ組に含まれる前記次元Ｎを生成する
ことを特徴とする請求項６から９のいずれか１項に記載のパラメータ生成装置。
【請求項１１】
前記エラー条件情報は、復号エラーが発生しないための条件を表す条件式である
ことを特徴とする請求項１から１０のいずれか１項に記載のパラメータ生成装置。
【請求項１２】
前記エラー条件情報は、前記非負整数ｐ、前記非負整数ｑ、前記非負整数ｄ、前記非負整数ｄｆに対し、復号エラーが発生しないための条件を表す条件式
２・ｐ・ｄ＋２ｄ・ｆ−１＜ｑ／２
である
ことを特徴とする請求項１から１１のいずれか１項に記載のパラメータ生成装置。
【請求項１３】
前記出力パラメータ生成部は、１つ以上の格子強度係数と安全性決定情報の組を格納する格子強度係数格納手段を備え、
前記格子強度係数と安全性決定情報は、外部から与えられる
ことを特徴とする請求項４から１２のいずれか１項に記載のパラメータ生成装置。
【請求項１４】
前記出力パラメータ生成部は、さらに、前記格子強度係数に基づく前記安全性決定情報から、前記安全性決定情報を選択する安全性決定情報選択手段を備える
ことを特徴とする請求項１３に記載のパラメータ生成装置。
【請求項１５】
前記出力パラメータ生成部は、
前記格子強度係数と前記安全性決定情報とに基づいて、前記仮パラメータ組を変更するか否かを判定する変更判定手段と、
前記変更判定手段が前記仮パラメータ組を変更すると判断したとき、前記仮パラメータ組から変更仮パラメータ組を生成する仮パラメータ組変更手段と、
前記安全性レベル情報に基づいて前記変更仮パラメータ組から前記出力パラメータを生成する生成手段とを備える
ことを特徴とする請求項１３に記載のパラメータ生成装置。
【請求項１６】
前記仮パラメータ変更手段は、前記仮パラメータ組に含まれる前記非負整数ｄｇを変更して前記変更仮パラメータ組を生成する
ことを特徴とする請求項１５に記載のパラメータ生成装置。
【請求項１７】
前記ＮＴＲＵ暗号は、
加算、減算および乗算が定義されたＮ次元配列の集合である環Ｒに対して、前記環Ｒのイデアルｐおよびｑを選択する選択ステップと、
前記環Ｒの元ｆおよびｇを生成し、ｆ（ｍｏｄ  ｑ）の逆数である元Ｆｑと、ｆ（ｍｏｄ  ｐ）の逆数である元Ｆｐとを生成する生成ステップと、
前記元ｇと、前記元Ｆｑの積とｍｏｄ  ｑで合同である元ｈとを公開鍵として生成する公開鍵生成ステップと、
前記元ｆおよび前記元Ｆｐを得ることのできる情報（情報は、ｆ、Ｆｐの両方にかかる）を秘密鍵として生成する秘密鍵生成ステップと、
前記公開鍵および前記環Ｒからランダムに選択した元ｉを使用して、前記平文を暗号化して前記暗号文を生成する暗号化ステップと、
前記秘密鍵を使用して前記暗号文を復号化して前記復号文を生成する復号化ステップとを含む方法により平文の暗号化および暗号文の復号化が行なわれる暗号方式である
ことを特徴とする請求項１〜１６のいずれか１項に記載のパラメータ生成装置。
【請求項１８】
平文をＮＴＲＵ暗号で暗号化して暗号文を生成する暗号システムであって、
請求項１〜１７のいずれか１項に記載のパラメータ生成装置と、
前記パラメータ生成装置で生成された出力パラメータに基づいて公開鍵を生成する公開鍵生成手段と、
前記公開鍵に基づいて、平文を暗号化する暗号化手段とを備える
ことを特徴とする暗号システム。
【請求項１９】
暗号文をＮＴＲＵ暗号で復号化して復号文を生成する復号システムであって、
請求項１〜１７のいずれか１項に記載のパラメータ生成装置と、
前記パラメータ生成装置で生成された出力パラメータに基づいて秘密鍵を生成する秘密鍵生成手段と、
前記秘密鍵に基づいて、暗号文を復号化する復号化手段とを備える
ことを特徴とする復号システム。
【請求項２０】
ＮＴＲＵ暗号を用いた暗号システムであって、
復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成して出力するパラメータ生成装置と、
ＮＴＲＵ暗号の暗号鍵と復号鍵を生成して出力する鍵生成装置と、
平文をＮＴＲＵ暗号で暗号化した暗号文を生成する暗号装置と、
前記暗号文を復号した復号文を生成する復号装置とを備え、
前記パラメータ生成装置は、
予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成して出力する出力パラメータ生成部とを備え、
前記鍵生成装置は、
前記パラメータ生成装置が出力した前記出力パラメータを入力として前記暗号鍵と前記復号鍵を生成し出力する生成鍵出力部を備え、
前記暗号装置は、
前記パラメータ生成装置が出力した出力パラメータと前記鍵生成装置が出力した前記暗号鍵を入力として、前記平文を暗号化して前記暗号文を生成する暗号化部を備え、
前記復号装置は、
前記パラメータ生成装置が出力した前記出力パラメータと前記鍵生成装置が出力した前記復号鍵を入力として、前記暗号文を復号して前記復号文を生成する復号化部を備える
ことを特徴とする、暗号システム。
【請求項２１】
ＮＴＲＵ暗号を用いた暗号化システムであって、
復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成して出力するパラメータ生成装置と、
ＮＴＲＵ暗号の暗号鍵を生成して出力する鍵生成装置と、
平文をＮＴＲＵ暗号で暗号化した暗号文を生成する暗号装置とを備え、
前記パラメータ生成装置は、
予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成して出力する出力パラメータ生成部とを備え、
前記鍵生成装置は、
前記パラメータ生成装置が出力した前記出力パラメータを入力として前記暗号鍵を生成し出力する生成鍵出力部を備え、
前記暗号装置は、
前記パラメータ生成装置が出力した前記出力パラメータと前記鍵生成装置が出力した前記暗号鍵を入力として、前記平文を暗号化して前記暗号文を生成する暗号化部を備える
ことを特徴とする暗号化システム。
【請求項２２】
平文をＮＴＲＵ暗号で暗号化して暗号文を生成する暗号装置であって、
予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成して出力する出力パラメータ生成部と、
前記出力パラメータを復号装置へ送信するパラメータ送信部と、
前記復号装置から前記出力パラメータに基づいて生成されたＮＴＲＵ暗号の暗号鍵を受信する暗号鍵受信部と、
前記出力パラメータと前記暗号鍵に基づいて、前記平文を暗号化して前記暗号文を生成する暗号文生成部とを備える
ことを特徴とする暗号装置。
【請求項２３】
平文をＮＴＲＵ暗号で暗号化して暗号文を生成する暗号装置であって、
予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて生成される、復号エラーが発生しない出力パラメータを受信するパラメータ受信手段と、
前記パラメータ受信手段で受信された出力パラメータに基づいて公開鍵を生成する公開鍵生成手段と、
前記公開鍵に基づいて、平文を暗号化する暗号化手段とを備える
ことを特徴とする暗号装置。
【請求項２４】
平文をＮＴＲＵ暗号で暗号化した暗号文を生成する暗号化方法であって、
予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成するステップと、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成して出力するステップと、
前記出力パラメータに基づいてＮＴＲＵ暗号の暗号鍵を生成するステップと、
前記出力パラメータと前記暗号鍵に基づいて、前記平文を暗号化して暗号文を生成するステップとを含む
ことを特徴とする暗号化方法。
【請求項２５】
平文をＮＴＲＵ暗号で暗号化した暗号文を生成するプログラムであって、
予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成するステップと、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成して出力するステップと、
前記出力パラメータに基づいてＮＴＲＵ暗号の暗号鍵を生成するステップと、
前記出力パラメータと前記暗号鍵に基づいて、前記平文を暗号化して暗号文を生成するステップとを、コンピュータに実行させる
ことを特徴とするプログラム。
【請求項２６】
ＮＴＲＵ暗号を用いた復号化システムであって、
復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成して出力するパラメータ生成装置と、
ＮＴＲＵ暗号の復号鍵を生成して出力する鍵生成装置と、
暗号文をＮＴＲＵ暗号で復号した復号文を生成する復号装置とから構成される復号化システムであって、
前記パラメータ生成装置は、
予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成して出力する出力パラメータ生成部とを備え、
前記鍵生成装置は、
前記パラメータ生成装置が出力した前記出力パラメータを入力として前記復号鍵を生成し出力する生成鍵出力部を備え、
前記復号装置は、
前記パラメータ生成装置が出力した前記出力パラメータと前記鍵生成装置が出力した前記復号鍵を入力として、前記暗号文を復号して前記復号文を生成する復号化部を備える
ことを特徴とする復号化システム。
【請求項２７】
暗号装置から受信した暗号文をＮＴＲＵ暗号で復号した復号文を生成する復号装置であって、
前記暗号装置から、復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを受信するパラメータ受信部と、
前記出力パラメータを入力としてＮＴＲＵ暗号の暗号鍵と復号鍵を生成し出力する生成鍵出力部と、
前記暗号鍵を前記暗号装置へ送信する暗号鍵送信部と、
前記出力パラメータと前記復号鍵に基づいて、前記暗号文を復号して前記復号文を生成する復号文生成部とを備える
ことを特徴とする復号装置。
【請求項２８】
暗号文をＮＴＲＵ暗号で復号した復号文を生成する復号化方法であって、
予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成するステップと、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成して出力するステップと、
前記出力パラメータに基づいてＮＴＲＵ暗号の復号鍵を生成するステップと、
前記出力パラメータと前記復号鍵に基づいて、前記暗号文を復号して復号文を生成するステップとを含む
ことを特徴とする復号化方法。
【請求項２９】
暗号文をＮＴＲＵ暗号で復号した復号文を生成するプログラムであって、
予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成するステップと、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成して出力するステップと、
前記出力パラメータに基づいてＮＴＲＵ暗号の復号鍵を生成するステップと、
前記出力パラメータと前記復号鍵に基づいて、前記暗号文を復号して復号文を生成するステップとを、コンピュータに実行させる
ことを特徴とするプログラム。
【請求項３０】
ＮＴＲＵ暗号を用いた暗号化システムであって、
外部から入力されたＮＴＲＵ暗号のパラメータ組である入力パラメータを、復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータに変換して出力するパラメータ変換装置と、
ＮＴＲＵ暗号の暗号鍵と復号鍵を生成して出力する鍵生成装置と、
平文をＮＴＲＵ暗号で暗号化した暗号文を生成する暗号装置と、
前記暗号文を復号した復号文を生成する復号装置とを備え、
前記パラメータ変換装置は、
前記入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成して出力する出力パラメータ生成部とを備え、
前記鍵生成装置は、
前記パラメータ変換装置が出力した前記出力パラメータを入力として前記暗号鍵と前記復号鍵を生成し出力する生成鍵出力部を備え、
前記暗号装置は、
前記パラメータ変換装置が出力した出力パラメータと前記鍵生成装置が出力した前記暗号鍵を入力として、前記平文を暗号化して前記暗号文を生成する暗号化部を備え、
前記復号装置は、
前記パラメータ変換装置が出力した前記出力パラメータと前記鍵生成装置が出力した前記復号鍵を入力として、前記暗号文を復号して前記復号文を生成する復号化部を備える
ことを特徴とする暗号システム。
【請求項３１】
ＮＴＲＵ暗号を用いた暗号化システムであって、
外部から入力されたＮＴＲＵ暗号のパラメータ組である入力パラメータから、復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成して出力するパラメータ生成装置と、
ＮＴＲＵ暗号の暗号鍵を生成して出力する鍵生成装置と、
平文をＮＴＲＵ暗号で暗号化した暗号文を生成する暗号装置とを備え、
前記パラメータ生成装置は、
前記入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報とに基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成して出力する出力パラメータ生成部とを備え、
前記鍵生成装置は、
前記パラメータ生成装置が出力した前記出力パラメータを入力として前記暗号鍵を生成し出力する生成鍵出力部を備え、
前記暗号装置は、
前記パラメータ生成装置が出力した前記出力パラメータと前記鍵生成装置が出力した前記暗号鍵とを入力として、前記平文を暗号化して前記暗号文を生成する暗号化部を備える
ことを特徴とする暗号化システム。
【請求項３２】
平文をＮＴＲＵ暗号で暗号化した暗号文を生成する暗号装置であって、
予め与えられたＮＴＲＵ暗号のパラメータ組である入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報とに基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成して出力する出力パラメータ生成部と、
前記出力パラメータを復号装置へ送信するパラメータ送信部と、
前記復号装置から前記出力パラメータに基づいて生成されたＮＴＲＵ暗号の暗号鍵を受信する暗号鍵受信部と、
前記出力パラメータと前記暗号鍵に基づいて、前記平文を暗号化して前記暗号文を生成する暗号文生成部とを備える
ことを特徴とする暗号装置。
【請求項３３】
平文をＮＴＲＵ暗号で暗号化した暗号文を生成する暗号化方法であって、
予め与えられたＮＴＲＵ暗号のパラメータ組である入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成するステップと、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成して出力するステップと、
前記出力パラメータに基づいてＮＴＲＵ暗号の暗号鍵を生成するステップと、
前記出力パラメータと前記暗号鍵に基づいて、前記平文を暗号化して暗号文を生成するステップとを含む
ことを特徴とする暗号化方法。
【請求項３４】
平文をＮＴＲＵ暗号で暗号化した暗号文を生成するプログラムであって、
予め与えられたＮＴＲＵ暗号のパラメータ組である入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成するステップと、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成して出力するステップと、
前記出力パラメータに基づいてＮＴＲＵ暗号の暗号鍵を生成するステップと、
前記出力パラメータと前記暗号鍵に基づいて、前記平文を暗号化して暗号文を生成するステップとを、コンピュータに実行させる
ことを特徴とするプログラム。
【請求項３５】
ＮＴＲＵ暗号を用いた復号化システムであって、
外部から入力されたＮＴＲＵ暗号のパラメータ組である入力パラメータから、復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成して出力するパラメータ生成装置と、
ＮＴＲＵ暗号の復号鍵を生成して出力する鍵生成装置と、
暗号文をＮＴＲＵ暗号で復号した復号文を生成する復号装置とを備え、
前記パラメータ生成装置は、
前記入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成して出力する出力パラメータ生成部とを備え、
前記鍵生成装置は、
前記パラメータ生成装置が出力した前記出力パラメータを入力として前記復号鍵を生成し出力する生成鍵出力部を備え、
前記復号装置は、
前記パラメータ生成装置が出力した前記出力パラメータと前記鍵生成装置が出力した前記復号鍵を入力として、前記暗号文を復号して前記復号文を生成する復号化部を備える
ことを特徴とする復号化システム。
【請求項３６】
暗号文をＮＴＲＵ暗号で復号した復号文を生成する復号化方法であって、
予め与えられたＮＴＲＵ暗号のパラメータ組である入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成するステップと、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成して出力するステップと、
前記出力パラメータに基づいてＮＴＲＵ暗号の復号鍵を生成するステップと、
前記出力パラメータと前記復号鍵に基づいて、前記暗号文を復号して復号文を生成するステップとを含む
ことを特徴とする復号化方法。
【請求項３７】
暗号文をＮＴＲＵ暗号で復号した復号文を生成するプログラムであって、
予め与えられたＮＴＲＵ暗号のパラメータ組である入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成するステップと、
前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成して出力するステップと、
前記出力パラメータに基づいてＮＴＲＵ暗号の復号鍵を生成するステップと、
前記出力パラメータと前記復号鍵に基づいて、前記暗号文を復号して復号文を生成するステップとを、コンピュータに実行させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報セキュリティ技術としての暗号技術に関し、特に、ＮＴＲＵ（エヌティーアールユー・クリプトシステムズ・インコーポレーテッドの登録商標）暗号のパラメータ生成に関する。
【背景技術】
【０００２】
送信装置と受信装置との間で秘匿通信を実現する方法として、公開鍵暗号を用いた暗号化通信がある。簡単に説明すると、送信装置が、通信内容を受信装置の公開鍵を用いて暗号化して送信し、受信装置は、暗号化された通信内容を受信し、それを自身の秘密鍵を用いて復号して元の通信内容を得る方法である（例えば、非特許文献１参照）。この方法を用いる一般的な暗号システムでは、送信装置および受信装置は、ともに複数存在する。まず、送信装置は、通信先受信装置の公開鍵を取得する。この公開鍵は、通信先受信装置が有する秘密鍵と対になるものであり暗号システムにおいて公開されている。そして、送信装置は、通信すべきデータ内容を上記のように取得した公開鍵で暗号化して送信する。一方で、受信装置は、上記のように暗号化された通信内容データを受信する。そして、受信装置は、暗号化された通信内容データを、自身の有する秘密鍵で復号して元の通信内容データを得る。
【０００３】
なお、暗号は、送信装置と受信装置との間の秘匿通信を目的とするものであり、第三者による暗号解読に対する安全性が重要なのは言うまでもない。公開鍵暗号では、暗号化された通信内容データ（以降、「暗号文」と記述）から通信内容データ（以降、「平文」と記述）が解読される可能性と、受信装置が秘密に保持し、暗号文から平文を得る際に用いられる秘密鍵が解読される可能性とがある。一般に、公開鍵暗号では、第三者によるこれらの暗号解読の解読時間が十分に大きく（例えば、最新のコンピュータを用いて１０００年かかる等）、現実的な時間内では解読できないことが求められる。
【０００４】
１９９６年、高速処理が可能な公開鍵暗号として、ＮＴＲＵ暗号が提案された（例えば、非特許文献２参照）。このＮＴＲＵ暗号については、非特許文献２に詳細が記載されているのでここでは詳細な説明を省略する。ＮＴＲＵ暗号では、ある法の下でべき乗剰余演算を行うＲＳＡ（Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ）暗号や楕円曲線上の点のスカラ倍演算を行う楕円曲線暗号に比べ、高速に演算可能な多項式演算で暗号化と復号化とを行う。このため、従来の公開鍵暗号よりもソフトウェアにより高速に処理することが可能である。
【０００５】
従って、公開鍵暗号にＮＴＲＵ暗号を用いた暗号システムでは、従来の公開鍵暗号を用いた暗号システムよりも、送信装置および受信装置の処理が高速に行えるという利点がある。
【０００６】
なお、このＮＴＲＵ暗号を用いて実際に暗号化や復号化を行うためには、非負整数のパラメータ、Ｎ、ｐ、ｑ、ｄｆ、ｄｇ、ｄが必要であり（例えば、非特許文献２参照）、現在、これらのパラメータの具体的な値が提示されている（例えば、非特許文献５参照）。
【０００７】
このＮＴＲＵ暗号では、第三者による平文や秘密鍵の暗号解読方法として、これらを総当りで探索する暗号解読と、ＬＬＬ（Lenstra, Lenstra and Lovasz）アルゴリズムを用いた暗号解読とがある（例えば、非特許文献２参照）が、非特許文献５に提示されたパラメータを用いれば、これらの暗号解読の解読時間は十分に大きく、ＮＴＲＵ暗号は安全であることが示されている（例えば、非特許文献３、非特許文献４、非特許文献５参照）。
【０００８】
一方、このＮＴＲＵ暗号は、公開鍵を用いて平文を暗号化して暗号文を生成し、正規の秘密鍵を用いて暗号文を復号して復号文を生成しても、復号文が元の平文と異なる場合が発生する（例えば、非特許文献２参照）。このことを復号エラーが発生するという。この復号エラーはＮＴＲＵ暗号のパラメータにより、その発生確率が異なる（例えば、非特許文献５参照）。
【０００９】
この復号エラーに関し、非特許文献２には、復号エラーが発生しないためには、ＮＴＲＵ暗号の公開鍵多項式ｈを生成するときに用いるランダム多項式ｇ、乱数多項式ｒ、平文多項式ｍ、秘密鍵多項式ｆの演算結果の多項式（ｐ・ｒ×ｇ＋ｆ×ｍ）のすべての係数が−ｑ／２からｑ／２の範囲に入ることが必要であることが示されている。しかし、このようにＮＴＲＵ暗号のパラメータを選んだときの暗号解読に対する解読時間については不明であり、暗号解読に対して安全でかつ復号エラーが発生しないＮＴＲＵ暗号のパラメータは知られていない。
【非特許文献１】岡本龍明、山本博資、「現代暗号」、シリーズ／情報科学の数学、産業図書、１９９７．
【非特許文献２】Jeffery Hoffstein, Jill Pipher, and Joseph H. Silverman, ”NTRU: A ring based public key cryptosystem”, Lecture Notes in Computer Science, 1423, pp.267-288, Springer-Verlag, 1998.
【非特許文献３】Joseph H. Silverman, ”NTRU Cryptosystems Technical Report ＃012, Estimated Breaking Times for NTRU Lattices”, [online]、1999年3月9日、[2003年2月18日検索]、インターネット＜URL: http://www.ntru.com/cryptolab/pdf/NTRUTech012.pdf＞
【非特許文献４】Joseph H. Silverman, ”NTRU Cryptosystems Technical Report ＃013, Dimension-Reduced Lattices, Zero-Forced Lattices, and the NTRU Public Key Cryptosystem”, [online]、1999年3月9日、[2003年2月18日検索]、インターネット＜URL: http://www.ntru.com/cryptolab/pdf/NTRUTech013.pdf＞
【非特許文献５】Joseph H. Silverman, ”NTRU Cryptosystems Technical Report ＃011, Wraps, Gaps, and Lattice Constants ”, [online]、1999年1月21日、[2003年4月18日検索]、インターネット＜URL: http://www.ntru.com/cryptolab/pdf/NTRUTech011_v2.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述したように、高速処理が可能なＮＴＲＵ暗号では、復号エラーが発生すると、受信装置が、送信装置の暗号化した平文を正しく得られない場合がある。すなわち、送信装置と受信装置との間で確実な暗号化通信ができないことになる。
【００１１】
暗号システムにおいては、平文を相手に正しく伝えることが重要なのは言うまでもない。また、暗号は、第三者による暗号解読に対する安全性が重要なのは言うまでもない。
しかしながら、従来の技術では、復号エラーが発生しないＮＴＲＵ暗号のパラメータを生成するための条件は示されているものの、その条件が定式化されておらず、復号エラーが発生しないＮＴＲＵ暗号のパラメータを生成するのが困難である。
【００１２】
また、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないＮＴＲＵ暗号のパラメータを生成するための条件が知られておらず、そのようなＮＴＲＵ暗号のパラメータを生成できない。そのため、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができない。
【００１３】
そこで、本発明は上記の課題に鑑み、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができるように、復号エラーが発生しないＮＴＲＵ暗号のパラメータを生成するパラメータ生成装置を提供することを第１の目的とする。
【００１４】
また、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができるように、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないＮＴＲＵ暗号のパラメータを生成するパラメータ生成装置を提供することを第２の目的とする。
【００１５】
さらに、これらのパラメータ生成装置により生成されたパラメータを用いて、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができる、暗号システム、暗号装置および復号装置を提供することを第３の目的とする。
【課題を解決するための手段】
【００１６】
本発明のある局面に係るパラメータ生成装置は、復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成するパラメータ生成装置であって、予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない出力パラメータを生成するエラー非発生出力パラメータ生成部を備えることを特徴とする。
【００１７】
パラメータ生成装置は、エラー条件情報に基づいて、復号エラーが発生しないようなＮＴＲＵ暗号のパラメータ組である出力パラメータを生成している。このため、生成された出力パラメータを用いて平文の暗号化処理および暗号文の復号化処理を行なうことにより、復号エラーが発生しなくなる。よって、復号エラーが発生しないＮＴＲＵ暗号のパラメータを生成するパラメータ生成装置を提供することができる。
【００１８】
好ましくは、前記エラー非発生出力パラメータ生成部は、予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成する出力パラメータ生成部とを備える。また、前記仮パラメータ生成部は、外部から入力されたＮＴＲＵ暗号のパラメータ組である入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成することを特徴とする。さらに、前記出力パラメータ生成部は、前記格子強度係数に基づく安全性決定情報と第三者による暗号解読に対する安全性を示す安全性レベル情報とに基づいて、前記仮パラメータ組から前記出力パラメータを生成する。
【００１９】
パラメータ生成装置は、格子強度係数に基づく安全性決定情報が安全性レベル情報を満たすことができるように出力パラメータを生成することができる。このため、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないＮＴＲＵ暗号のパラメータを生成するパラメータ生成装置を提供することができる。
【００２０】
好ましくは、前記エラー条件情報は、前記非負整数ｐ、前記非負整数ｑ、前記非負整数ｄ、前記非負整数ｄｆに対し、復号エラーが発生しないための条件を表す条件式
２・ｐ・ｄ＋２ｄ・ｆ−１＜ｑ／２
である。
【００２１】
このように、復号エラーが発生しないためのパラメータの条件を定式化することができる。このため、復号エラーが発生しないためのパラメータを簡便に求めることができる。
本発明の他の曲面に係る暗号システムは、平文をＮＴＲＵ暗号で暗号化して暗号文を生成する暗号システムであって、上述のパラメータ生成装置と、前記パラメータ生成装置で生成された出力パラメータに基づいて公開鍵を生成する公開鍵生成手段と、前記公開鍵に基づいて、平文を暗号化する暗号化手段とを備えることを特徴とする。
【００２２】
上述のパラメータ生成装置に基づいて作成されたパラメータより求められた公開鍵を用いて平文の暗号化を行なっている。このため、暗号システムは、復号エラーが生じないような暗号文の生成を行なうことができる。
【００２３】
本発明の他の局面に係る復号システムは、暗号文をＮＴＲＵ暗号で復号化して復号文を生成する復号システムであって、上述のパラメータ生成装置と、前記パラメータ生成装置で生成された出力パラメータに基づいて秘密鍵を生成する秘密鍵生成手段と、前記秘密鍵に基づいて、暗号文を復号化する復号化手段とを備えることを特徴とする。
【００２４】
上述のパラメータ生成装置に基づいて作成されたパラメータより求められた秘密鍵を用いて暗号文の復号化を行なっている。このため、復号システムは、復号エラーを生じさせることなく、暗号文を復号することができる。
【００２５】
本発明のさらに他の曲面に係る暗号システムは、ＮＴＲＵ暗号を用いた暗号システムであって、復号エラーの発生しないＮＴＲＵ暗号のパラメータ組である出力パラメータを生成して出力するパラメータ生成装置と、ＮＴＲＵ暗号の暗号鍵と復号鍵を生成して出力する鍵生成装置と、平文をＮＴＲＵ暗号で暗号化した暗号文を生成する暗号装置と、前記暗号文を復号した復号文を生成する復号装置とを備え、前記パラメータ生成装置は、予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成して出力する出力パラメータ生成部とを備え、前記鍵生成装置は、前記パラメータ生成装置が出力した前記出力パラメータを入力として前記暗号鍵と前記復号鍵を生成し出力する生成鍵出力部を備え、前記暗号装置は、前記パラメータ生成装置が出力した出力パラメータと前記鍵生成装置が出力した前記暗号鍵を入力として、前記平文を暗号化して前記暗号文を生成する暗号化部を備え、前記復号装置は、前記パラメータ生成装置が出力した前記出力パラメータと前記鍵生成装置が出力した前記復号鍵を入力として、前記暗号文を復号して前記復号文を生成する復号化部を備えることを特徴とする。
【００２６】
パラメータ生成装置は、エラー条件情報に基づいて、復号エラーが発生しないようなＮＴＲＵ暗号のパラメータ組である出力パラメータを生成している。鍵生成装置は、生成された出力パラメータを入力として暗号鍵と復号鍵を生成している。暗号装置および復号装置は、暗号鍵および復号鍵を用いて暗号化処理および復号化処理をそれぞれ行なっている。このため、復号エラーが発生しない暗号システムを提供することができる。
【００２７】
なお、本発明は、このような特徴的な手段を備えるパラメータ生成装置、暗号システムおよび復号システムとして実現することができるだけでなく、特徴的な手段をステップとするパラメータ生成方法、暗号化方法、復号化方法として実現したり、当該ステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）等の記録媒体やインターネット等の通信ネットワークを介して流通させることができるのは言うまでもない。
【発明の効果】
【００２８】
本発明によると、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができるように、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないＮＴＲＵ暗号のパラメータを生成するパラメータ生成装置を提供することができる。
【００２９】
また、これらのパラメータ装置またはパラメータ変換装置により生成されたパラメータを用いて、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができる、暗号システム、暗号装置および復号装置を提供することができる。
【００３０】
以上により、従来技術では達成できなかったパラメータ生成装置、暗号システム、暗号装置、および復号装置を提供することができ、その実用的価値は大きい。
【発明を実施するための最良の形態】
【００３１】
以下、本発明に係るパラメータ生成装置およびパラメータ変換装置の実施の形態について、図面を用いて説明する。
【００３２】
本発明に係るパラメータ生成装置およびパラメータ変換装置は、ＮＴＲＵ暗号のパラメータを扱う。このＮＴＲＵ暗号については、非特許文献２に詳しく述べられているので、ここでは詳細な説明を省略するが、以下に簡単に説明する。
【００３３】
（１）ＮＴＲＵ暗号のパラメータ
ＮＴＲＵ暗号は、非負整数のパラメータ、Ｎ、ｐ、ｑ、ｄｆ、ｄｇ、ｄを持つ。非特許文献２には、ＮＴＲＵ暗号のパラメータの例として、（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）＝（１０７，３，６４，１５，１２，５）、（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）＝（１６７，３，１２８，６１，２０，１８）、（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）＝（５０３，３，２５６，２１６，７２，５５）の３つの例が挙げられている。
【００３４】
以下に、これらのパラメータの意味を説明する。
（ｉ）パラメータＮ
ＮＴＲＵ暗号は、多項式の演算により暗号化と復号化を行う公開鍵暗号方式である。ＮＴＲＵ暗号で扱う多項式の次元は、上記パラメータＮにより決まる。
【００３５】
ＮＴＲＵ暗号で扱う多項式は、上記パラメータＮに対し、（Ｎ−１）次元以下の整数係数多項式であり、例えばＮ＝５のとき、Ｘ＾４＋Ｘ＾３＋１等の多項式である。ここで、「Ｘ＾ａ」はＸのａ乗を意味することとする。また、暗号化時または復号化時に用いられる公開鍵ｈ、秘密鍵ｆ、平文ｍ、乱数ｒ、暗号文ｃはいずれも、（Ｎ−１）次元以下の多項式として表現される（以降、それぞれを公開鍵多項式ｈ、秘密鍵多項式ｆ、平文多項式ｍ、乱数多項式ｒ、暗号文多項式ｃと呼ぶ）。
【００３６】
そして、多項式演算は、上記パラメータＮに対し、「Ｘ＾Ｎ＝１」という関係式を用いて、演算結果が常に（Ｎ−１）次元以下の多項式になるように演算される。例えば、Ｎ＝５の場合、多項式Ｘ＾４＋Ｘ＾２＋１と多項式Ｘ＾３＋Ｘの積は、多項式と多項式の積を「×」、整数と多項式の積（または整数と整数の積）を「・」とすると、Ｘ＾５＝１という関係から、
（Ｘ＾４＋Ｘ＾２＋１）×（Ｘ＾３＋Ｘ）
＝Ｘ＾７＋２・Ｘ＾５＋２・Ｘ＾３＋Ｘ
＝Ｘ＾２×１＋２・１＋２・Ｘ＾３＋Ｘ
＝２・Ｘ＾３＋Ｘ＾２＋Ｘ＋２
というように、常に（Ｎ−１）次元以下の多項式になるように演算される。
【００３７】
（ｉｉ）パラメータｐ、ｑ
ＮＴＲＵ暗号では、非負整数のパラメータｐ、ｑを用いる。非特許文献２に記載の通り、このパラメータｐ、ｑは互いに素となる必要がある。
【００３８】
（ｉｉｉ）パラメータｄｆ、ｄｇ、ｄ
ＮＴＲＵ暗号で扱う秘密鍵多項式ｆ、公開鍵多項式を生成するときに秘密鍵多項式ｆと共に用いるランダム多項式ｇ、および平文を暗号化するときに用いる乱数多項式ｒの選び方は、それぞれパラメータｄｆ、ｄｇ、ｄにより決まる。
【００３９】
まず、秘密鍵多項式ｆは、ｄｆ個の係数が「１」であり、かつ（ｄｆ−１）個の係数が「−１」であり、かつ他の係数は「０」となるように選ばれる。すなわち、乱数多項式ｆは（Ｎ−１）次元以下の多項式であり、０次元（定数項）から（Ｎ−１）次元まで、Ｎ個の係数がある。このＮ個の係数のうち、ｄｆ個の係数が「１」であり、かつ（ｄｆ−１）個の係数が「−１」であり、かつ（Ｎ−２ｄｆ＋１）個の係数が０となるように乱数多項式ｆが選ばれる。
【００４０】
そして、ランダム多項式ｇは、ｄｇ個の係数が「１」であり、かつｄｇ個の係数が「−１」であり、かつ他の係数は「０」となるように選ばれる。また、乱数多項式ｒは、ｄ個の係数が「１」であり、かつｄ個の係数が「−１」であり、かつ他の係数は「０」となるように選ばれる。
【００４１】
（２）ＮＴＲＵ暗号の復号エラー
ところで、このＮＴＲＵ暗号は、平文多項式ｍを暗号化して暗号文多項式ｃを生成したとき、暗号文多項式ｃを復号して得られる復号文多項式ｍ'が平文多項式ｍと異なる場合が発生する。この場合は、復号時に正しく平文多項式ｍが得られないことになる。このことを復号エラーが発生するという。
【００４２】
非特許文献２には、公開鍵多項式ｈを生成するときに用いられるランダム多項式ｇ、乱数多項式ｒ、平文多項式ｍ、秘密鍵多項式ｆの演算結果の多項式（ｐ・ｒ×ｇ＋ｆ×ｍ）のいずれかの次数の係数の値が−ｑ／２からｑ／２の間に入らなかったとき、復号エラーが発生することが記載されている。非特許文献２に挙げられた上述の３つのパラメータにおいては、非特許文献５に記載の通り、小さい発生確率（１０＾（−５）程度）ではあるが復号エラーが発生してしまう。
【００４３】
（実施の形態１）
本発明の実施の形態１に係るパラメータ生成装置１について説明する。
＜パラメータ生成装置１の概要＞
最初に、図１を用いてパラメータ生成装置１の概要を説明する。
【００４４】
このパラメータ生成装置１には、あるパラメータのＮＴＲＵ暗号の格子強度係数ＧＬ、その格子強度係数ＧＬを持つＮＴＲＵ暗号の解読時間評価式ＥＦ、復号エラーが発生しないパラメータの条件式ＥＤ、および初期安全性決定式ＩＦが予め与えられている。
【００４５】
そして、このパラメータ生成装置１は、外部より、ＮＴＲＵ暗号が達成すべき安全性レベルを示す安全性レベル情報ＳＬＩを入力として受ける。パラメータ生成装置１は、総当りの探索による解読とＬＬＬアルゴリズムによる解読とに対して安全性レベル情報ＳＬＩが示す安全性レベルを達成し、かつ復号エラーが発生しないＮＴＲＵ暗号のパラメータ組ＰＳを、予め与えられている格子強度係数ＧＬと解読時間評価式ＥＦと条件式ＥＤと初期安全性決定式ＩＦとを用いて生成して、外部へ出力する装置である。
【００４６】
以上が、パラメータ生成装置１の概要であるが、以下に、格子強度係数ＧＬ、解読時間評価式ＥＦ、条件式ＥＤ、初期安全性決定式ＩＦの与え方について説明した後、パラメータ生成装置１の詳細について説明を行う。
【００４７】
＜格子強度係数ＧＬ、解読時間評価式ＥＦ、条件式ＥＤ＞
ここでは、まず、格子強度係数ＧＬ、解読時間評価式ＥＦ、復号エラーが発生しないパラメータの条件式ＥＤについてその内容を説明して、その与え方について説明する。
【００４８】
（格子強度係数ＧＬと解読時間評価式ＥＦ）
ＮＴＲＵ暗号における、ＬＬＬアルゴリズムを用いた解読時間Ｔの解読時間評価式ＥＦは、ＮＴＲＵ暗号のパラメータｄｆ、ｄｇ、ｑにより定まるものであって、パラメータｄｆ、ｄｇ、ｑから計算される格子強度係数ＧＬの値により類別される。非特許文献３には、格子強度係数ＧＬが、ＮＴＲＵ暗号のパラメータｄｆ、ｄｇ、ｑから、
ＧＬ＝（４・ｐｉ・ｅ・｜ｆ｜・｜ｇ｜／ｑ）＾（０．５）
のように導出されることが記載されている。また、非特許文献３には、その格子強度係数ＧＬが一定ならば、そのようなパラメータｄｆ、ｄｇ、ｑをもつＮＴＲＵ暗号に対しては、ある定数Ａ、Ｂが存在して、ＬＬＬアルゴリズムを用いた解読の解読時間ＴがパラメータＮに対し次の解読時間評価式ＥＦを満たすことが記載されている。
【００４９】
ＥＦ：ｌｏｇ（Ｔ）≧Ａ・Ｎ＋Ｂ
ここで、ｌｏｇ（Ｔ）は解読時間Ｔの自然対数である。また、ｐｉは円周率、ｅは自然対数の底、｜ｆ｜は秘密鍵多項式ｆのノルム、｜ｇ｜はランダム多項式ｇのノルムを表す。具体的には、
｜ｆ｜＝（２・ｄｆ−１）＾（０．５）
｜ｇ｜＝（２・ｄｇ）＾（０．５）
である。
【００５０】
なお、非特許文献３には、上述の解読時間評価式ＥＦにおける定数Ａ、Ｂについて、パラメータＮの値が小さいときの解読時間Ｔを実測し、その実測データを用いて近似することによりその定数Ａ、Ｂの値を導けることが記載されている。
【００５１】
また、非特許文献４には、格子強度係数ＧＬの値が大きくなれば、ＬＬＬアルゴリズムを用いたＮＴＲＵ暗号の解読は、より難しくなることが記載されている。従って、いま、ある格子強度係数ＧＬ１の値に対し、格子強度係数ＧＬ１の値をとるようなパラメータｄｆ、ｄｇ、ｑをもつＮＴＲＵ暗号に対する、ＬＬＬアルゴリズムを用いた解読の解読時間Ｔの解読時間評価式ＥＦ１が、
ＥＦ１：ｌｏｇ（Ｔ）≧Ａ・Ｎ＋Ｂ  （Ａ、Ｂ：定数）
で与えられているとする。すると、以上の議論により、別のパラメータｄｆ、ｄｇ、ｑから導出される格子強度係数ＧＬの値が、もし、上記の格子強度係数ＧＬ１の値よりも大きければ、その別のパラメータｄｆ、ｄｇ、ｑをもつＮＴＲＵ暗号の解読時間Ｔは、少なくとも上記の解読時間評価式ＥＦ１を満たすことが導ける。
【００５２】
（復号エラーが発生しないパラメータの条件式ＥＤ）
非特許文献２には、ＮＴＲＵ暗号の復号プロセスにおいて計算される多項式、ｐ・ｒ×ｇ＋ｆ×ｍの全ての係数が、−ｑ／２からｑ／２の範囲に収まっていれば、正しく復号処理を行うことができ、復号エラーが発生しないことが記載されている。
【００５３】
（格子強度係数ＧＬと解読時間評価式ＥＦの与え方）
まず、パラメータｄｆ、ｄｇ、ｑの値を決定する。ここでは、一例として、ｄｆ＝３４、ｄｇ＝３４、ｑ＝５１２とする。そして、このパラメータｄｆ、ｄｇ、ｑから上記格子強度係数ＧＬの値を計算し、その格子強度係数ＧＬを、予め式格納部１１０に与えておく。上記例では、格子強度係数ＧＬはＧＬ＝２．１２となる。
【００５４】
次に、解読時間評価式ＥＦとして、上記格子強度係数ＧＬの値に対し、その値をとるパラメータｄｆ、ｄｇ、ｑをもつＮＴＲＵ暗号の解読時間Ｔの解読時間評価式ＥＦを、以下のようにして求め、予め式格納部１１０に与えておく。
【００５５】
すなわち、上記解読時間評価式ＥＦは、パラメータｄｆ、ｄｇ、ｑから計算される格子強度係数ＧＬの値が２．１２以上であるときには、ＬＬＬアルゴリズムを用いたＮＴＲＵ暗号の解読時間Ｔを、少なく見積もることなく評価できる式である。
【００５６】
（ｉ）パラメータＮが小さいところでの解読時間Ｔを導出
まず、決定したパラメータｄｆ、ｄｇ、ｑに対し、非特許文献３に記載の方法で、ＬＬＬアルゴリズムを用いた場合の解読時間Ｔの実測データを実験により求める。ここで、図２に示す解読時間Ｔの実測データは、１０００ＭＩＰＳの処理能力をもつコンピュータを用いて求めたものであり、解読時間Ｔの単位は秒である。なお、ＭＩＰＳ（Ｍｉｌｌｉｏｎ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｐｅｒ  Ｓｅｃｏｎｄ）とは、コンピュータの処理能力を表す単位であり、１ＭＩＰＳとは、１秒間に１００万命令を実行できる処理能力を表す。本例ではパラメータＮとして７０から９０までの値に対して解読時間が実測可能であったことを示している。
【００５７】
（ｉｉ）近似による解読時間評価式の導出
次に、（ｉ）により導出した実測データを用い、解読時間評価式ＥＦ
ＥＦ：ｌｏｇ（Ｔ）＝Ａ・Ｎ＋Ｂ
の定数Ａ、Ｂを求める。これは、例えば、Ｘ＝Ｎ、Ｙ＝ｌｏｇ（Ｔ）として、Ｙ＝Ａ・Ｘ＋Ｂの係数Ａ、Ｂを最小二乗法により求める。
【００５８】
ここで、図２に示す解読時間Ｔの実測データの場合、定数Ａ、Ｂは、概ね、Ａ＝０．０９３、Ｂ＝−３．８となる。
基本的には、これにより導出された解読時間評価式ＥＦ
ＥＦ：ｌｏｇ（Ｔ）＝０．０９３Ｎ−３．８
を式格納部１１０に与えてもよいが、以下に詳細を述べる実施の形態１では、解読時間評価式ＥＦにおける解読時間Ｔの値を、ＭＩＰＳｙｅａｒ値として扱っている。なお、ＭＩＰＳｙｅａｒとはコンピュータの処理量を示す単位であり、１ＭＩＰＳの処理能力を持つコンピュータが１年間で処理できる処理量が１ＭＩＰＳｙｅａｒである。
【００５９】
従って、ここでは、導出された解読時間評価式ＥＦを、解読時間ＴがＭＩＰＳｙｅａｒ値を表す場合の式に変形する。ＭＩＰＳｙｅａｒ値を表す解読時間Ｔは、
非特許文献３に記載の方法に従い、解読時間Ｔに、実測データを求めたコンピュータの処理能力値１０００ＭＩＰＳを乗じ、１年間の秒数３１５５７６００（１年間＝３６５．２５日）で割ることにより求められる。
【００６０】
すなわち、Ｔ’＝１０００Ｔ／３１５５７６００とし、上述の解読時間評価式ＥＦに代入することにより、次のように変形した解読時間評価式ＥＦを求めることができる。変形後の解読時間評価式ＥＦは、式格納部１１０に与えられる。
【００６１】
ＥＦ：ｌｏｇ（Ｔ’）＝０．０９３Ｎ−１４．２
なお、最小二乗法は周知の技術である。このため、その詳細な説明はここでは繰返さない。
【００６２】
（復号エラーが発生しないパラメータの条件式ＥＤの与え方）
次に、条件式ＥＤの与え方について述べる。
まず、ｐ＝３とし、ｄｇ＞ｄとする。このｐの値は、ＮＴＲＵ暗号のパラメータの典型的な値である。
【００６３】
このとき、条件式ＥＤ
ＥＤ：６・ｄ＋２・ｄ・ｆ−１＜ｑ／２
を予め式格納部１１０に与えておく。この条件式は、理論的に復号エラーが発生しないパラメータの条件式である。
【００６４】
以下に、その理由について説明する。
まず、上述したように、多項式ｐ・ｒ×ｇ＋ｆ×ｍの全ての係数が、−ｑ／２からｑ／２の範囲に収まっていれば、復号エラーは発生しない。
【００６５】
このとき、多項式ｒ×ｇを考えると、多項式の積は、非特許文献２に記載の通り、多項式ａのｋ次の係数をａ（ｋ）で表すと、
（ｒ×ｇ）（ｋ）
＝ｒ（０）・ｇ（ｋ）＋ｒ（１）・ｇ（ｋ−１）＋．．．
＋ｒ（Ｎ−１）・ｇ（ｋ−（Ｎ−１）（ｍｏｄ  Ｎ））
である。そして、乱数多項式ｒは、ｄ個の係数が「１」であり、かつｄ個の係数が「−１」であり、かつ他の係数は「０」となる多項式である。そして、ランダム多項式ｇは、ｄｇ個の係数が「１」であり、かつｄｇ個の係数が「−１」であり、かつ他の係数は「０」となる多項式である。
【００６６】
従って、多項式ｒ×ｇのｋ次の係数（ｒ×ｇ）（ｋ）の値は、ｄｇ＞ｄであるので、
（ｒ×ｇ）（ｋ）
＝１・ｇ（ｉ１）＋１・ｇ（ｉ２）＋．．．＋１・ｇ（ｉｄ）
−１・ｇ（ｊ１）−１・ｇ（ｊ２）−．．．−１・ｇ（ｊｄ）
というように、ｄ個の１・ｇ（ｉｎ）という項（１≦ｎ≦ｄ）とｄ個の−１・ｇ（ｊｎ）という項（１≦ｎ≦ｄ）とで表される。
【００６７】
よって、（ｒ×ｇ）（ｋ）は、ｇ（ｉｎ）が全て１であり（１≦ｎ≦ｄ）、かつｇ（ｊｎ）が全て−１であるようなとき（１≦ｎ≦ｄ）最大値を取り、その値は、高々２ｄである（最小値も、せいぜい−２ｄである。）。
【００６８】
同様に、多項式ｆ×ｍのｋ次の係数の値も、その値は高々２ｄｆ−１である（最小値も、せいぜい−２ｄｆ＋１である。）。
今、ｐ＝３であるので、以上により、多項式ｐ・ｒ×ｇ＋ｆ×ｍの最も大きい係数の値は、高々３・２ｄ＋２ｄｆ−１である。そして、最も大きい係数がｑ／２を超えなければ、多項式ｐ・ｒ×ｇ＋ｆ×ｍの全ての係数は、−ｑ／２からｑ／２の範囲に収まっていることになるので、復号エラーは発生しない。
【００６９】
従って、以下の条件式ＥＤが導かれる。
ＥＤ：６・ｄ＋２・ｄ・ｆ−１＜ｑ／２
この条件式を満たせば、以上の議論から復号エラーは理論的に発生しない。
【００７０】
＜初期安全性決定式ＩＦ＞
詳細は後述するが、パラメータ生成装置１は、まず、総当り探索の解読に対し安全であるパラメータｄｆ、ｄｇ、ｄを選ぶために、第１のパラメータ生成部１０２において、安全性レベル情報ＳＬＩに応じた十分大きい値であるパラメータＮを選ぶ必要がある。
【００７１】
ここでは、そのために、初期安全性決定式ＩＦの一例として、非特許文献３に挙げられている、ｄｆ＝６１、ｄｇ＝２０、ｑ＝１２８の場合のＮＴＲＵ暗号におけるＬＬＬアルゴリズムによる解読に必要な解読時間の評価式を用いる。すなわち、初期安全性決定式ＩＦは、
ＩＦ：ｌｏｇ（Ｔ）＝０．２００２Ｎ−１８．８８４
で示される。そして、この初期安全性決定式ＩＦを、式格納部１１０へ与えておく。
【００７２】
初期安全性決定式ＩＦは、ｄｆ＝６１、ｄｇ＝２０、ｑ＝１２８の場合のＮＴＲＵ暗号における、ＬＬＬアルゴリズムによる解読に必要な解読時間の評価式であるｌｏｇ（Ｔ）＝０．２００２Ｎ−７．６０８という式を、ＴがＭＩＰＳｙｅａｒを表すように変換した式である。
【００７３】
次に、パラメータ生成装置１の詳細について説明を行う。
＜パラメータ生成装置１の構成＞
パラメータ生成装置１は、図１に示すように、入力部１０１と、第１のパラメータ生成部１０２と、第２のパラメータ生成部１０３と、第３のパラメータ生成部１０４と、安全性判定部１０５と、安全性増加部１０６と、出力部１０７と、第１のパラメータ変更部１０８と、第２のパラメータ変更部１０９と、式格納部１１０とを備えている。以下にそれぞれの構成要素について説明する。
【００７４】
（１）入力部１０１
入力部１０１は、外部から安全性レベル情報ＳＬＩを受け取り、安全性レベル情報ＳＬＩを第１のパラメータ生成部１０２と第２のパラメータ生成部１０３と安全性増加部１０６と第２のパラメータ変更部１０９とに出力する。
【００７５】
ここで、安全性レベル情報ＳＬＩとは、達成すべき暗号の安全性レベルを表す情報であり、例えば、暗号の安全性が１０２４ビットＲＳＡ暗号に相当する安全性レベルであることを示す情報である。ここでは、一例として、安全性レベル情報ＳＬＩは、暗号解読アルゴリズムの処理量とする。ＳＬＩは（１０＾１２）ＭＩＰＳｙｅａｒであるとして以降の説明を行う。
【００７６】
（２）第１のパラメータ生成部１０２
第１のパラメータ生成部１０２は、入力部１０１から安全性レベル情報ＳＬＩを受け取り、式格納部１１０から初期安全性決定式ＩＦを読み取り、安全性レベル情報ＳＬＩに応じた十分大きい値である、ＮＴＲＵ暗号のパラメータＮを選ぶ。そして、第１のパラメータ生成部１０２は、選んだパラメータＮに対し、パラメータｐをｐ＝３とし、その他のパラメータｑ、ｄｆ、ｄｇ、ｄの値を仮に０として、パラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成して第２のパラメータ生成部１０３へ出力する。
【００７７】
具体的には、パラメータＮは、初期安全性決定式ＩＦの値が安全性レベル情報ＳＬＩの表す安全性レベルとなるようにパラメータＮを選ぶ。
例えば、安全性レベル情報ＳＬＩが（１０＾１２）ＭＩＰＳｙｅａｒであり、式格納部１１０に格納されている初期安全性決定式ＩＦが
ＩＦ：ｌｏｇ（Ｔ）＝０．２００２Ｎ−１８．８８４
であるとき、安全性レベル情報ＳＬＩをＴに代入した結果
ＩＦ：ｌｏｇ（１０＾１２）＝０．２００２Ｎ−１８．８８４
を計算することにより、Ｎ＝２３３が導出される。
【００７８】
（３）第２のパラメータ生成部１０３
第２のパラメータ生成部１０３は、第１のパラメータ生成部１０２または第１のパラメータ変更部１０８からパラメータ組ＰＳを受け取り、入力部１０１から安全性レベル情報ＳＬＩを受け取る。第２のパラメータ生成部１０３は、パラメータ組ＰＳの中のパラメータＮに基づき後述する方法によりパラメータ候補集合ＤＳを導出する。第２のパラメータ生成部１０３は、後述する方法によりパラメータ候補集合ＤＳの要素数がパラメータｄｆ、ｄｇ、ｄを選ぶのに不十分か否か（例えば、要素数が３以上か否か）を判別する。不十分であれば、第２のパラメータ生成部１０３は、パラメータ組ＰＳを第１のパラメータ変更部１０８へ出力する。十分であれば、第２のパラメータ生成部１０３は、パラメータｄｆ、ｄｇ、ｄをパラメータ候補集合ＤＳから選択する。第２のパラメータ生成部１０３は、これらのパラメータｄｆ、ｄｇ、ｄを用いて新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成して、第３パラメータ生成部１０４へ出力する。
【００７９】
以下に、パラメータ候補集合ＤＳの導出方法と、パラメータｄｆ、ｄｇ、ｄの選択方法とについて詳細に説明する。
（ｉ）パラメータ候補集合ＤＳの導出方法
第２のパラメータ生成部１０３は、安全性レベル情報ＳＬＩとパラメータＮとに対し、
（Ｃ（Ｎ，ｋ）・Ｃ（Ｎ−ｋ，ｋ））＾（０．５）≧ＳＬＩ
を満たす整数ｋ（１≦ｋ≦Ｎ）のパラメータ候補集合ＤＳを導出する。ここで、Ｃ（ａ，ｂ）はａ個の中からｂ個を選ぶ組み合わせの数である。
【００８０】
パラメータ候補集合ＤＳの導出は、例えば、以下のようにして行なわれる。すなわち、第２のパラメータ生成部１０３は、ｋ＝１からｋ＝Ｎ／２まで昇順にｋを選択し、上記不等式の左辺に代入する。第２のパラメータ生成部１０３は、上述の不等式を満たすすべてのｋを、パラメータ候補集合ＤＳの要素とする。
【００８１】
なお、非特許文献５に記載の通り、上述の不等式の左辺は、ｄｇ＝ｋ（またはｄｆ＝ｋ）としたときには、ＮＴＲＵ暗号の秘密鍵を総当りで探索する暗号解読の解読時間を示し、ｄ＝ｋとしたときには、ＮＴＲＵ暗号の平文を総当りで探索する暗号解読の解読時間を示す。すなわち、ここでは、パラメータ候補集合ＤＳの中からパラメータｄｆ、ｄｇ、ｄを選べば、平文や秘密鍵を総当りで探索する解読の解読時間が入力部１０１に入力された安全性レベル情報ＳＬＩが表す安全性レベルを達成するように、パラメータ候補集合ＤＳが導出される。
【００８２】
（ｉｉ）パラメータｄｆ、ｄｇ、ｄの選択方法
第２のパラメータ生成部１０３は、パラメータｄｆ、ｄｇ、ｄを、ｄｇ＞ｄとなるように、パラメータ候補集合ＤＳから任意に選択する。ここでは、第２のパラメータ生成部１０３は、ｄｆ＞ｄｇ＞ｄとなるように、パラメータ候補集合ＤＳからランダムに選択してそれぞれｄｆ、ｄｇ、ｄに割り当てることとする。
【００８３】
なお、パラメータ候補集合ＤＳは、十分大きいＮに対しては、その要素数がパラメータｄｆ、ｄｇ、ｄを選ぶのに十分な数となる。実際に、ＳＬＩ＝１０＾１２とすると、Ｎ＝１０のときにはＤＳの要素は無いが、Ｎ＝３０のときにはＤＳ＝｛８，９，１０，１１，１２｝（８以上１２以下の５個の整数）となり、Ｎ＝１００のときにはＤＳ＝｛４，５，６，．．．，５０｝（４以上５０以下の４７個の整数）となる。
【００８４】
（４）第３のパラメータ生成部１０４
第３のパラメータ生成部１０４は、第２のパラメータ生成部１０３からパラメータ組ＰＳを受け取り、式格納部１１０から復号エラーが発生しないためのパラメータの条件式ＥＤを読み取る。第３のパラメータ生成部１０４は、パラメータ組ＰＳの中のパラメータｄｆ、ｄｇ、ｄに対し、条件式ＥＤを満たし、かつ、パラメータｑが２の冪となるような最小のｑをパラメータｑとして選ぶ。第３のパラメータ生成部１０４は、選んだパラメータｑに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成して安全性判定部１０５へ出力する。
【００８５】
例えば、ｄｆ＝５０、ｄｇ＝２４、ｄ＝１６で、条件式ＥＤが
ＥＤ：６ｄ＋２ｄｆ−１＜（ｑ／２）
のとき、この条件式を解くとｑ＞２９４となる。この条件式ｑ＞２９４を満たしかつｑ＝２＾ｉ（ｉは自然数）を満たす最小のｑは５１２であるので、パラメータｑは、ｑ＝５１２とされる。なお、パラメータｑを２の冪とするのは、パラメータｐ（ｐ＝３）とパラメータｑとを互いに素になるように選ぶためである。ｐとｑが互いに素になることは、非特許文献２に記載の通り、ＮＴＲＵ暗号のパラメータｐ、ｑの条件である。
【００８６】
（５）安全性判定部１０５
安全性判定部１０５は、第３のパラメータ生成部１０４または第２のパラメータ変更部１０９からパラメータ組ＰＳを受け取る。安全性判定部１０５は、パラメータ組ＰＳの中のパラメータＮ、ｐ、ｑ、ｄｆ、ｄｇを持つＮＴＲＵ暗号の格子強度係数ＳＬを、パラメータｄｆ、ｄｇ、ｑを用いて以下の式により導出する。
【００８７】
ＳＬ＝（４・ｐｉ・ｅ・｜ｆ｜・｜ｇ｜／ｑ）＾（０．５）
ここで、ｐｉは円周率、ｅは自然対数の底、｜ｆ｜＝（２ｄｆ−１）＾（０．５）、｜ｇ｜＝（２ｄｇ）＾（０．５）を表す。
【００８８】
安全性判定部１０５は、式格納部１１０から格子強度係数ＧＬを読み取り、ＧＬ≦ＳＬならば、パラメータ組ＰＳを安全性増加部１０６へ出力する。ＧＬ＞ＳＬであれば、安全性判定部１０５は、パラメータ組ＰＳを第２のパラメータ変更部１０９へ出力する。
【００８９】
（６）安全性増加部１０６
安全性増加部１０６は、安全性判定部１０５からパラメータ組ＰＳを受け取り、入力部１０１から安全性レベル情報ＳＬＩを受け取り、式格納部１１０より解読時間評価式ＥＦを読み取る。安全性増加部１０６は、パラメータ組ＰＳの中のパラメータＮと解読時間評価式ＥＦとからＮＴＲＵ暗号の解読時間Ｔを導出する。
【００９０】
例えば、Ｎ＝４００、解読時間評価式ＥＦが、
ＥＦ：ｌｏｇ（Ｔ）＝０．０９３Ｎ−１４．２
であるとき、解読時間Ｔはおよそ９．７×１０＾９である。
【００９１】
安全性増加部１０６は、導出した解読時間Ｔが、安全性レベル情報ＳＬＩが表す安全性レベルを達成しているか否かを
Ｔ≧ＳＬＩ
を満たすか否かによって判定する。Ｔ＜ＳＬＩならば、安全性増加部１０６は、解読時間ＴがＴ≧ＳＬＩとなるようにパラメータＮを増加させ、増加させたパラメータＮに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成する。
【００９２】
例えば、安全性増加部１０６は、安全性レベル情報ＳＬＩを解読時間評価式ＥＦのＴに代入した式
ＥＦ：ｌｏｇ（ＳＬＩ）＝０．０４０Ｎ−６．２
を計算してパラメータＮを導出することにより、新たなパラメータ組ＰＳを生成する。
【００９３】
安全性増加部１０６は、パラメータ組ＰＳの中のパラメータＮに対し、パラメータＮが素数か否かを判定する。パラメータＮが素数でないならば、安全性増加部１０６は、パラメータＮを増加させて素数となるようにして、増加させたパラメータＮに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成する。
【００９４】
例えば、ＰＳ＝（４５０，３，５１２，５０，２４，１６）の場合、パラメータＮはＮ＝４５０であるが素数ではないので、４５０を超える素数のうち最小のものである４５１を新たにパラメータＮの値として、ＰＳ＝（４５１，３，５１２，５０，２４，１６）とする。
【００９５】
これは、パラメータＮが合成数であると、ＮＴＲＵ暗号の安全性が低下することが知られているため、これを避ける目的で行われるものである。なお、素数か否かを判定する方法は、例えば、非特許文献１に記載されており、ここでの説明は繰返さない。
【００９６】
最後に、安全性増加部１０６は、パラメータ組ＰＳを出力部１０７へ出力する。
（７）出力部１０７
出力部１０７は、安全性増加部１０６からパラメータ組ＰＳを受け取って外部へ出力する。
【００９７】
（８）第１のパラメータ変更部１０８
第１のパラメータ変更部１０８は、第２のパラメータ生成部１０３または第２のパラメータ変更部１０９からパラメータ組ＰＳを受け取り、パラメータ組ＰＳの中のパラメータＮを増加させる。ここでは、一例として、Ｎを１０増加させるとする。そして、増加させたパラメータＮに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成して第２のパラメータ生成部１０３へ出力する。
【００９８】
（９）第２のパラメータ変更部１０９
第２のパラメータ変更部１０９は、入力部１０１から安全性レベル情報ＳＬＩを受け取り、安全性判定部１０５からパラメータ組ＰＳを受け取り、第２のパラメータ生成部１０３と同様にして、パラメータ候補集合ＤＳを生成する。第２のパラメータ変更部１０９は、パラメータ組ＰＳの中のパラメータｄｇとパラメータ候補集合ＤＳの要素の最大値Ｍとを比較する。ｄｇ＜Ｍであれば、第２のパラメータ変更部１０９は、パラメータｄｇを、パラメータ候補集合ＤＳの要素のうち、より大きい値に変更し、変更したパラメータｄｇに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成して安全性判定部１０５へ出力する。ｄｇ≧Ｍであれば、第２のパラメータ変更部１０９は、パラメータ組ＰＳを第１パラメータ変更部１０８へ出力する。
【００９９】
（１０）式格納部１１０
式格納部１１０は、図３に示すように、予め、格子強度係数ＧＬ、解読時間評価式ＥＦ、復号エラーが発生しないパラメータの条件式ＥＤ、および初期安全性決定式ＩＦを格納している。ここでは、上述のとおり、格子強度係数ＧＬとして、
ＧＬ＝２．１２
解読時間評価式ＥＦとして
ＥＦ：ｌｏｇ（Ｔ）＝０．９３Ｎ−１４．２
条件式ＥＤとして、
ＥＤ：６ｄ＋２ｄｆ−１＜（ｑ／２）
初期安全性決定式ＩＦとして
ＩＦ：ｌｏｇ（Ｔ）＝０．２００２Ｎ−１８．８８４
が、予め与えられているものとする。
【０１００】
ここで、上記解読時間評価式ＥＦは、上述したとおり、パラメータｄｆ、ｄｇ、ｑから計算される格子強度係数の値が、上記格子強度係数ＧＬの値以上であるとき（この場合は２．１２以上であるとき）に、ＬＬＬアルゴリズムを用いた解読の解読時間Ｔを、少なく見積もることなく評価できる式である。
【０１０１】
また、条件式ＥＤは、上述したとおり、ＮＴＲＵ暗号において、復号エラーが発生しないためのパラメータ条件を表す式である。初期安全性決定式ＩＦは、まず、総当り探索の解読に対し安全であるパラメータｄｆ、ｄｇ、ｄを選ぶために、第１のパラメータ生成部１０２において、安全性レベル情報ＳＬＩに応じた十分大きい値であるパラメータＮを選ぶために用いられる式である。
【０１０２】
＜パラメータ生成装置１の動作＞
以上に述べたパラメータ生成装置１の動作について、図４、図５に示すフローチャートを用いて説明する。
【０１０３】
パラメータ生成装置１は、あるパラメータのＮＴＲＵ暗号の格子強度係数ＧＬ、その格子強度係数ＧＬを持つＮＴＲＵ暗号の解読時間評価式ＥＦ、および復号エラーが発生しないパラメータの条件式ＥＤが予め与えられており、外部より安全性レベル情報ＳＬＩが入力されると、以下の処理を行う。
【０１０４】
入力部１０１は、外部から安全性レベル情報ＳＬＩを受け取り、安全性レベル情報ＳＬＩを第１のパラメータ生成部１０２と第２のパラメータ生成部１０３と安全性増加部１０６と第２のパラメータ変更部１０９とに出力する（ステップＳ１０１）。
【０１０５】
第１のパラメータ生成部１０２は、入力部１０１から安全性レベル情報ＳＬＩを受け取り、式格納部１１０から初期安全性決定式ＩＦを読み取り、安全性レベル情報ＳＬＩに応じた十分大きい値である、ＮＴＲＵ暗号のパラメータＮを選ぶ（ステップＳ１０２）。
【０１０６】
第１のパラメータ生成部１０２は、選ばれたパラメータＮに対し、パラメータｐ＝３とし、その他のパラメータｑ、ｄｆ、ｄｇ、ｄの値を仮に０として、パラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成して第２のパラメータ生成部１０３へ出力する（ステップＳ１０３）。
【０１０７】
第２のパラメータ生成部１０３は、第１のパラメータ生成部１０２または第１のパラメータ変更部１０８からパラメータ組ＰＳを受け取り、入力部１０１から安全性レベル情報ＳＬＩを受け取る（ステップＳ１０４）。
【０１０８】
第２のパラメータ生成部１０３は、パラメータ候補集合ＤＳを生成する（ステップＳ１０５）。
第２のパラメータ生成部１０３は、ＤＳの要素数がパラメータｄｆ、ｄｇ、ｄを選ぶのに不十分か否かを判別する（ステップＳ１０６）。
【０１０９】
ＤＳの要素数が不十分であれば（ステップＳ１０６でＹｅｓ）、第２のパラメータ生成部１０３は、パラメータ組ＰＳを第１パラメータ変更部１０８へ出力する。（ステップＳ１０７）。
【０１１０】
第１のパラメータ変更部１０８は、第２のパラメータ生成部１０３または第２のパラメータ変更部１０９からパラメータ組ＰＳを受け取り、パラメータ組ＰＳの中のパラメータＮを増加させ、増加させたパラメータＮに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成して第２のパラメータ生成部１０３へ出力する。そして、処理をステップＳ１０４へ移す（ステップＳ１０８）。
【０１１１】
ＤＳの要素数が十分であれば（ステップＳ１０６でＮｏ）、第２のパラメータ生成部１０３は、パラメータ候補集合ＤＳの要素からパラメータｄｆ、ｄｇ、ｄを選び、選んだパラメータｄｆ、ｄｇ、ｄに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成して第３パラメータ生成部１０４へ出力する（ステップＳ１０９）。
【０１１２】
第３のパラメータ生成部１０４は、第２のパラメータ生成部１０３からパラメータ組ＰＳを受け取り、式格納部１１０から復号エラーが発生しないパラメータの条件式ＥＤを読み取る（ステップＳ１１０）。
【０１１３】
第３のパラメータ生成部１０４は、パラメータ組ＰＳの中のパラメータｄｆ、ｄｇ、ｄに対し、条件式ＥＤを満たし、かつ、パラメータｑが２の冪となるような最小のｑをパラメータｑとして選び、選んだパラメータｑに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成して安全性判定部１０５へ出力する（ステップＳ１１１）。
【０１１４】
安全性判定部１０５は、第３のパラメータ生成部１０４または第２のパラメータ変更部１０９からパラメータ組ＰＳを受け取り、パラメータ組ＰＳの中のパラメータＮ、ｐ、ｑ、ｄｆ、ｄｇをもつＮＴＲＵ暗号の格子強度係数ＳＬを導出する（ステップＳ１１２）。
【０１１５】
安全性判定部１０５は、式格納部１１０から格子強度係数ＧＬを読み取り、ＧＬ≦ＳＬを満たすか否かを判定する（ステップＳ１１３）。
ＧＬ≦ＳＬの場合には（ステップＳ１１３でＹｅｓ）、安全性判定部１０５は、パラメータ組ＰＳを安全性増加部１０６へ出力する（ステップＳ１１４）。
【０１１６】
安全性増加部１０６は、安全性判定部１０５からパラメータ組ＰＳを受け取り、入力部１０１から安全性レベル情報ＳＬＩを受け取り、式格納部１１０より解読時間評価式ＥＦを読み取る（ステップＳ１１５）。
【０１１７】
安全性増加部１０６は、パラメータ組ＰＳの中のパラメータＮと解読時間評価式ＥＦとからＮＴＲＵ暗号の解読時間Ｔを導出する（ステップＳ１１６）。
安全性増加部１０６は、導出した解読時間Ｔが、Ｔ＜ＳＬＩを満たすか否かを判断する（Ｓ１１７）。
【０１１８】
Ｔ＜ＳＬＩであれば（ステップＳ１１７でＹｅｓ）、安全性増加部１０６は、解読時間ＴがＴ≧ＳＬＩとなるようにパラメータＮを増加させ、増加させたパラメータＮに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成する（ステップＳ１１８）。
【０１１９】
Ｔ≧ＳＬＩであるか（ステップＳ１１７でＮｏ）、ステップＳ１１８の処理の後、安全性増加部１０６は、パラメータＮが素数であるか否かを判断する（ステップＳ１１９）。
パラメータＮが素数でなければ（ステップＳ１１９でＮｏ）、安全性増加部１０６は、パラメータＮを増加させ、増加させたパラメータＮが素数となるようにし、増加させたパラメータＮに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成する（ステップＳ１２０）。
【０１２０】
パラメータＮが素数であるか（ステップＳ１１９でＹｅｓ）、パラメータＮを素数にする処理（ステップＳ１２０）の後、安全性増加部１０６は、パラメータ組ＰＳを出力部１０７へ出力する（ステップＳ１２１）。
【０１２１】
出力部１０７は、安全性増加部１０６からパラメータ組ＰＳを受け取り、パラメータ組ＰＳを外部へ出力して処理を終了する（ステップＳ１２２）。
ＧＬ＞ＳＬの場合には（ステップＳ１１３でＮｏ）、第２のパラメータ変更部１０９は、入力部１０１から安全性レベル情報ＳＬＩを受け取り、安全性判定部１０５からパラメータ組ＰＳを受け取り、パラメータ候補集合ＤＳを生成する（ステップＳ１２３）。
【０１２２】
第２のパラメータ変更部１０９は、パラメータ組ＰＳの中のパラメータｄｇとパラメータ候補集合ＤＳの要素の最大値Ｍとを比較する（ステップＳ１２４）。
ｄｇ＜Ｍであれば（ステップＳ１２４でＹｅｓ）、第２のパラメータ変更部１０９は、パラメータｄｇを、パラメータ候補集合ＤＳの要素のうち、より大きい値に変更し、変更したパラメータｄｇに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成し、パラメータ組ＰＳを安全性判定部１０５へ出力する（ステップＳ１２５）。その後、処理をステップＳ１１２へ移す。
【０１２３】
ｄｇ≧Ｍであれば（ステップＳ１２４でＮｏ）、第２のパラメータ変更部１０９は、パラメータ組ＰＳを第１のパラメータ変更部１０８へ出力する（ステップＳ１２６）。その後、処理をステップＳ１０８へ移す。
【０１２４】
＜パラメータ生成装置１の動作検証＞
以下に、実施の形態１におけるパラメータ生成装置１の全体の動作について説明する。
まず、第１のパラメータ生成部１０２が、安全性レベル情報ＳＬＩに応じた十分大きい値である、パラメータＮを選んでいる（ステップＳ１０２）。
【０１２５】
そして、第２のパラメータ生成部１０３が、ＮＴＲＵ暗号を総当りで探索する解読に対し、安全性レベル情報ＳＬＩの表す安全性レベルを達成するパラメータ候補集合ＤＳを生成している（ステップＳ１０５）。また、第２のパラメータ生成部１０３が、このパラメータ候補集合ＤＳの要素から、安全性レベル情報ＳＬＩの表す安全性レベルを達成するパラメータｄｆ、ｄｇ、ｄを選んでいる（ステップＳ１０９）。
【０１２６】
なお、パラメータ候補集合ＤＳの要素数が不十分な場合は、第１のパラメータ変更部１０８が、パラメータＮを増加させている（ステップＳ１０８）。上述したように、一般に、パラメータＮが増加すれば、パラメータ候補集合ＤＳの要素数も大きくなるので、必ずパラメータｄｆ、ｄｇ、ｄは選ぶことができる。
【０１２７】
そして、第３のパラメータ生成部１０４が、復号エラーが発生しないパラメータの条件式ＥＤを満たすように、パラメータｑを選ぶことにより、パラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）の値が決まる（ステップＳ１１１）。
【０１２８】
ここで、パラメータｑの値は、条件式ＥＤを満たすように選ぶと、同程度のパラメータｄｆ、ｄｇ、ｄをもつ、非特許文献２や非特許文献３に記載のＮＴＲＵ暗号におけるパラメータｑに比べ、一般に大きくなる。すなわち、格子強度係数ＧＬの値が小さくなるので、同程度のパラメータｄｆ、ｄｇ、ｄをもつ非特許文献２や非特許文献３に記載のＮＴＲＵ暗号に比べ、ＬＬＬアルゴリズムによる解読に対する安全性レベル（解読時間）が下がる可能性がある。
【０１２９】
従って、予め格納されている格子強度係数ＧＬに基づき、安全性判定部１０５が、生成されたパラメータ組ＰＳをもつＮＴＲＵ暗号の解読時間が、その格子強度係数ＧＬに基づく解読時間評価式ＥＦで評価可能か否かを判断する（ステップＳ１１３）。評価可能であれば、安全性増加部１０６が、安全性レベル情報ＳＬＩの表す安全性レベルを達成するようにパラメータＮを増加させている（ステップＳ１１８）。
【０１３０】
なお、ＮＴＲＵ暗号の解読時間が、その格子強度係数ＧＬに基づく解読時間評価式ＥＦで評価不可能であると判断された場合には、第２のパラメータ変更部１０９が、パラメータｄｇをより大きい値にすることにより（ステップＳ１２５）、そのパラメータをもつＮＴＲＵ暗号の格子強度係数の値を大きくして、解読時間評価式ＥＦで評価できるようにする。そのようにしても、解読時間評価式ＥＦで評価できない場合には、第１のパラメータ変更部１０８が、パラメータＮを増加させ（ステップＳ１０８）、もう一度パラメータｄｆ、ｄｇ、ｄ、ｑの生成を行うようにしている（ステップＳ１０９以降）。
【０１３１】
今、パラメータＮを大きくとれば、一般にパラメータ候補集合ＤＳは大きい要素をもつようになる。よって、ステップＳ１０９で、パラメータｄｆ、ｄｇ、ｄをもう一度選び直すときには、パラメータｄｆ、ｄの値を変えずに、パラメータｄｇのみ値を大きくとることができる。そして、パラメータｄｇの値は、復号エラー発生の条件式には関与しないので、復号エラーが発生しないことを保証したまま、格子強度係数ＧＬの値を大きくして、解読時間評価式ＥＦで評価できるようにすることが可能となる。
【０１３２】
以上により、高々有限回の繰り返し回数で、総当りの探索による解読とＬＬＬアルゴリズムによる解読とに対し、入力された安全性レベル情報ＳＬＩの表す安全性を達成し、かつ、復号エラーが発生しないＮＴＲＵ暗号のパラメータ組ＰＳを生成することができる。
【０１３３】
＜実施の形態１における効果＞
従来の技術では、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないＮＴＲＵ暗号のパラメータを生成するための条件が知られておらず、そのようなＮＴＲＵ暗号のパラメータを生成できなかった。そのため、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができなかった。
【０１３４】
しかしながら、このパラメータ生成装置は、上述したように、理論的に復号エラーが発生しないようにパラメータｑを決定し、また入力された安全性レベルを達成するようにパラメータＮを決定するようにしたので、安全かつ理論的に復号エラーが発生しないＮＴＲＵ暗号のパラメータを生成できるようになった。
【０１３５】
（実施の形態２）
本発明の実施の形態２に係るパラメータ変換装置２について、実施の形態１に係るパラメータ生成装置１との差異点を中心に説明する。
【０１３６】
＜パラメータ変換装置２の概要＞
最初に、図６を用いて本実施の形態の概要を説明する。
このパラメータ変換装置２は、実施の形態１におけるパラメータ生成装置１を変形して構成したパラメータ変換装置である。パラメータ変換装置２は、ＮＴＲＵ暗号のパラメータ組ＩＰＳを入力としたとき、パラメータ組ＩＰＳを、総当りの探索による解読とＬＬＬアルゴリズムによる解読とに対し、入力された安全性レベル情報ＳＬＩを達成し、かつ復号エラーが発生しないＮＴＲＵ暗号のパラメータ組ＰＳへ変換して出力する点が、パラメータ生成装置１と異なる。
【０１３７】
なお、実施の形態１におけるパラメータ生成装置１と同様にして、あるパラメータに対するＮＴＲＵ暗号の格子強度係数ＧＬ、その格子強度係数ＧＬを持つＮＴＲＵ暗号の解読時間評価式ＥＦ、および復号エラーが発生しないパラメータの条件式ＥＤが予め与えられている。
【０１３８】
＜パラメータ変換装置２の構成＞
パラメータ変換装置２は、図６に示すように、入力部１０１ｂと、第２のパラメータ生成部１０３ｂと、第３のパラメータ生成部１０４ｂと、安全性判定部１０５と、安全性増加部１０６と、出力部１０７と、第１のパラメータ変更部１０８と、第２のパラメータ変更部１０９と、式格納部１１０とを備える。
【０１３９】
このパラメータ変換装置２は、入力部１０１ｂが異なることと、第１のパラメータ生成部が存在しないことと、第２のパラメータ生成部１０３ｂの入出力が異なることと、および第３のパラメータ生成部１０４ｂの入出力が異なることとが、実施の形態１におけるパラメータ生成装置１と異なる。
【０１４０】
ここでは、パラメータ生成装置１との差異点を中心に説明を行う。
（１）入力部１０１ｂ
入力部１０１ｂは、外部から安全性レベル情報ＳＬＩとＮＴＲＵ暗号のパラメータ組ＩＰＳを受け取り、安全性レベル情報ＳＬＩを第２のパラメータ生成部１０３ｂと安全性増加部１０６と第２のパラメータ変更部１０９とに出力する。また、入力部１０１ｂは、パラメータ組ＩＰＳをパラメータ組ＰＳとして第３のパラメータ生成部１０４ｂへ出力する。
【０１４１】
（２）第２のパラメータ生成部１０３ｂ
第２のパラメータ生成部１０３ｂは、第１のパラメータ変更部１０８からパラメータ組ＰＳを受け取り、入力部１０１ｂから安全性レベル情報ＳＬＩを受け取る。そして、第２のパラメータ生成部１０３ｂは、第２のパラメータ生成部１０３と同様にして、パラメータ候補集合ＤＳを生成する。そして、第２のパラメータ生成部１０３ｂは、第２のパラメータ生成部１０３と同様にして、パラメータ候補集合ＤＳの要素数がパラメータｄｆ、ｄｇ、ｄを選ぶのに不十分か否か（例えば、要素数が３以上か否か）を判別し、不十分であれば、パラメータ組ＰＳを第１パラメータ変更部１０８へ出力する。不十分でなければ、第２のパラメータ生成部１０３ｂは、パラメータｄｆ、ｄｇ、ｄを、パラメータ候補集合ＤＳから選び、選んだパラメータｄｆ、ｄｇ、ｄに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成してパラメータ組ＰＳを第３パラメータ生成部１０４ｂへ出力する。
【０１４２】
（３）第３のパラメータ生成部１０４ｂ
第３のパラメータ生成部１０４ｂは、入力部１０１ｂまたは第２のパラメータ生成部１０３ｂからパラメータ組ＰＳを受け取り、式格納部１１０から復号エラーが発生しないパラメータの条件式ＥＤを読み取る。そして、第３のパラメータ生成部１０４ｂは、第３のパラメータ生成部１０４と同様にして、パラメータ組ＰＳの中のパラメータｄｆ、ｄｇ、ｄに対し、条件式ＥＤを満たし、かつ、パラメータｑが２の冪となるような最小のｑをパラメータｑとして選ぶ。そして、第３のパラメータ生成部１０４ｂは、選んだパラメータｑに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成し、パラメータ組ＰＳを安全性判定部１０５へ出力する。
【０１４３】
＜パラメータ変換装置２の動作＞
以上に述べたパラメータ変換装置２の動作について、図７、図８に示すフローチャートを用いて説明する。
【０１４４】
パラメータ変換装置２には、実施の形態１のパラメータ生成装置１と同様にして、あるパラメータのＮＴＲＵ暗号の格子強度係数ＧＬ、その格子強度係数ＧＬを持つＮＴＲＵ暗号の解読時間評価式ＥＦ、および復号エラーが発生しないパラメータの条件式ＥＤが予め与えられている。パラメータ変換装置２は、外部より安全性レベル情報ＳＬＩおよびＮＴＲＵ暗号のパラメータ組ＩＰＳが入力されると、以下の処理を行う。
【０１４５】
入力部１０１ｂは、外部から安全性レベル情報ＳＬＩとＮＴＲＵ暗号のパラメータ組ＩＰＳを受け取る。入力部１０１ｂは、安全性レベル情報ＳＬＩを第２のパラメータ生成部１０３ｂと安全性増加部１０６と第２のパラメータ変更部１０９とに出力する。また、入力部１０１ｂは、パラメータ組ＩＰＳをパラメータ組ＰＳとして第３のパラメータ生成部１０４ｂへ出力し、処理をステップＳ２１０へ移す（ステップＳ２０１）。
【０１４６】
第２のパラメータ生成部１０３ｂは、第１のパラメータ変更部１０８からパラメータ組ＰＳを受け取り、入力部１０１ｂから安全性レベル情報ＳＬＩを受け取る（ステップＳ２０４）。
【０１４７】
第２のパラメータ生成部１０３ｂは、パラメータ候補集合ＤＳを生成する（ステップＳ２０５）。
第２のパラメータ生成部１０３ｂは、パラメータ候補集合ＤＳの要素数がパラメータｄｆ、ｄｇ、ｄを選ぶのに不十分か否かを判別する（ステップＳ２０６）。
【０１４８】
パラメータ候補集合ＤＳの要素数が不十分であれば（ステップＳ２０６でＹｅｓ）、第２のパラメータ生成部１０３ｂは、パラメータ組ＰＳを第１パラメータ変更部１０８へ出力する（ステップＳ２０７）。
【０１４９】
第１のパラメータ変更部１０８は、第２のパラメータ生成部１０３ｂまたは第２のパラメータ変更部１０９からパラメータ組ＰＳを受け取る。第１のパラメータ変更部１０８は、パラメータ組ＰＳの中のパラメータＮを増加させ、増加させたパラメータＮに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成して第２のパラメータ生成部１０３ｂへ出力する。そして、処理をステップＳ２０４へ移す（ステップＳ２０８）。
【０１５０】
パラメータ候補集合ＤＳの要素数が十分であれば（ステップＳ２０６でＮｏ）、第２のパラメータ生成部１０３ｂは、パラメータ候補集合ＤＳの要素からパラメータｄｆ、ｄｇ、ｄを選ぶ。第２のパラメータ生成部１０３ｂは、選んだパラメータｄｆ、ｄｇ、ｄに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成して第３パラメータ生成部１０４ｂへ出力する（ステップＳ２０９）。
【０１５１】
第３のパラメータ生成部１０４ｂは、入力部１０１ｂからパラメータ組ＰＳを受け取り、式格納部１１０から復号エラーが発生しないパラメータの条件式ＥＤを読み取る（ステップＳ２１０）。
【０１５２】
第３のパラメータ生成部１０４ｂは、パラメータ組ＰＳの中のパラメータｄｆ、ｄｇ、ｄに対し、条件式ＥＤを満たし、かつ、パラメータｑが２の冪となるような最小のｑをパラメータｑとして選ぶ。第３のパラメータ生成部１０４ｂは、選んだパラメータｑに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成して安全性判定部１０５へ出力する（ステップＳ２１１）。
【０１５３】
安全性判定部１０５は、第３のパラメータ生成部１０４ｂまたは第２のパラメータ変更部１０９からパラメータ組ＰＳを受け取り、パラメータ組ＰＳの中のパラメータＮ、ｐ、ｑ、ｄｆ、ｄｇをもつＮＴＲＵ暗号の格子強度係数ＳＬを導出する（ステップＳ２１２）。
【０１５４】
安全性判定部１０５は、式格納部１１０から格子強度係数ＧＬを読み取り、ＧＬ≦ＳＬを満たすか否かを判定する（ステップＳ２１３）。
ＧＬ≦ＳＬであれば（ステップＳ２１３でＹｅｓ）、安全性判定部１０５は、パラメータ組ＰＳを安全性増加部１０６へ出力する（ステップＳ２１４）。
【０１５５】
安全性増加部１０６は、安全性判定部１０５からパラメータ組ＰＳを受け取り、入力部１０１ｂから安全性レベル情報ＳＬＩを受け取り、式格納部１１０より解読時間評価式ＥＦを読み取る（ステップＳ２１５）。
【０１５６】
安全性増加部１０６は、パラメータ組ＰＳの中のパラメータＮと解読時間評価式ＥＦとからＮＴＲＵ暗号の解読時間Ｔを導出する（ステップＳ２１６）。
安全性増加部１０６は、導出した解読時間Ｔが、Ｔ＜ＳＬＩを満たすか否かを判断する（ステップＳ２１７）。
【０１５７】
Ｔ＜ＳＬＩであれば（ステップＳ２１７でＹｅｓ）、安全性増加部１０６は、解読時間ＴがＴ≧ＳＬＩとなるようにパラメータＮを増加させ、増加させたパラメータＮに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成する（ステップＳ２１８）。
【０１５８】
Ｔ≧ＳＬＩであるか（ステップＳ２１７でＮｏ）、ステップＳ２１８の処理の後、安全性増加部１０６は、パラメータＮが素数であるか否かを判断する（ステップＳ２１９）。
パラメータＮが素数でなければ（ステップＳ２１９でＮｏ）、安全性増加部１０６は、パラメータＮを増加させ、増加させたパラメータＮが素数となるようにし、増加させたパラメータＮに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成する（ステップＳ２２０）。
【０１５９】
パラメータＮが素数であるか（ステップＳ２１９でＹｅｓ）、パラメータＮを素数にする処理（ステップＳ２２０）の後、安全性増加部１０６は、パラメータ組ＰＳを出力部１０７へ出力する（ステップＳ２２１）。
【０１６０】
出力部１０７は、安全性増加部１０６からパラメータ組ＰＳを受け取り、パラメータ組ＰＳを外部へ出力して処理を終了する（ステップＳ２２２）。
ＧＬ＞ＳＬの場合には（ステップＳ２１３でＮｏ）、第２のパラメータ変更部１０９は、入力部１０１ｂから安全性レベル情報ＳＬＩを受け取り、安全性判定部１０５からパラメータ組ＰＳを受け取り、パラメータ候補集合ＤＳを生成する（ステップＳ２２３）。
【０１６１】
第２のパラメータ変更部１０９は、パラメータ組ＰＳの中のパラメータｄｇとパラメータ候補集合ＤＳの要素の最大値Ｍとを比較する（ステップＳ２２４）。
ｄｇ＜Ｍであれば（ステップＳ２２４でＹｅｓ）、第２のパラメータ変更部１０９は、パラメータｄｇを、パラメータ候補集合ＤＳの要素のうち、より大きい値に変更し、変更したパラメータｄｇに対し、新たにパラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を生成し、パラメータ組ＰＳを安全性判定部１０５へ出力する（ステップＳ２２５）。その後、処理をステップＳ２１２へ移す。
【０１６２】
ｄｇ≧Ｍであれば（ステップＳ２２４でＮｏ）、第２のパラメータ変更部１０９は、パラメータ組ＰＳを第１のパラメータ変更部１０８へ出力する（ステップＳ２２６）。その後、処理をステップＳ２０８へ移す。
【０１６３】
＜パラメータ変換装置２の動作検証＞
以下に、実施の形態２におけるパラメータ変換装置２の全体の動作について説明する。
まず、入力部１０１ｂが、入力されたＮＴＲＵ暗号のパラメータ組ＩＰＳをパラメータ組ＰＳとして第３のパラメータ生成部１０４ｂに出力している（ステップＳ２０１）。
【０１６４】
そして、第２のパラメータ生成部１０３ｂは、実施の形態１と同様にして、ＮＴＲＵ暗号を総当りで探索する解読に対し、安全性レベル情報ＳＬＩの表す安全性レベルを達成するパラメータ候補集合ＤＳを生成する（ステップＳ２０５）。
【０１６５】
そして、第３のパラメータ生成部１０４ｂが、復号エラーが発生しないパラメータの条件式ＥＤを満たすように、パラメータｑを選ぶことにより、パラメータ組ＰＳ＝（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）の値が決まる（ステップＳ２１１）。
【０１６６】
ここで、実施の形態１と同様に、パラメータｑの値を、条件式ＥＤを満たすように選ぶと、ＬＬＬアルゴリズムによる解読に対する安全性レベル（解読時間）が下がる可能性がある。このため、安全性判定部１０５が、予め格納されている格子強度係数ＧＬに基づき、生成されたパラメータ組ＰＳをもつＮＴＲＵ暗号の解読時間が、その格子強度係数ＧＬに基づく解読時間評価式ＥＦで評価可能か否かを判断する（ステップＳ２１３）。評価可能であれば、安全性増加部１０６が、安全性レベル情報ＳＬＩの表す安全性レベルを達成するようにパラメータＮを増加させている（ステップＳ２１８）。
【０１６７】
なお、評価できない場合には、第２のパラメータ変更部１０９が、パラメータｄｇをより大きい値にすることにより（ステップＳ２２５）、そのパラメータをもつＮＴＲＵ暗号の格子強度係数の値を大きくして、解読時間評価式ＥＦで評価できるようにする。そうしても評価できない場合には、第１のパラメータ変更部１０８が、パラメータＮを増加させ（ステップＳ２０８）、もう一度パラメータｄｆ、ｄｇ、ｄ、ｑの生成を行うようにしている（ステップＳ２０９以降）。
【０１６８】
今、パラメータＮを大きくとれば、一般にパラメータ候補集合ＤＳは大きい要素をもつようになる。よって、パラメータｄｆ、ｄｇ、ｄをもう一度選び直すときには（ステップＳ２０９）、パラメータｄｆ、ｄの値を変えずに、パラメータｄｇのみ値を大きくとることができる。そして、パラメータｄｇの値は、復号エラー発生の条件式には関与しないので、復号エラーが発生しないことを保証したまま、安全強度指標ＧＬの値を大きくして、解読時間評価式ＥＦで評価できるようにすることが可能となる。
【０１６９】
以上により、高々有限回の繰り返し回数で、入力されたＮＴＲＵ暗号のパラメータＩＰＳを、総当りの探索による解読とＬＬＬアルゴリズムによる解読に対し、入力された安全性レベル情報ＳＬＩの表す安全性レベルを達成し、かつ、復号エラーが発生しないＮＴＲＵ暗号のパラメータ組ＰＳに変換することができる。
【０１７０】
＜実施の形態２における効果＞
従来の技術では、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないＮＴＲＵ暗号のパラメータを生成するための条件が知られておらず、そのようなＮＴＲＵ暗号のパラメータを生成できなかった。そのため、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができなかった。
【０１７１】
しかしながら、このパラメータ変換装置は、上述したように、入力されたＮＴＲＵ暗号のパラメータに対し、理論的に復号エラーが発生しないようにパラメータｑを決定し、また入力された安全性レベルを達成するようにパラメータＮを決定するようにしたので、安全でかつ理論的に復号エラーが発生しないＮＴＲＵ暗号のパラメータに変換できるようになった。
【０１７２】
（実施の形態３）
本発明に係る実施の形態３としての暗号システム３について説明する。
＜暗号システム３の構成＞
この暗号システム３は、図１１に示すように、暗号装置３１、復号装置３２、および通信路３３から構成され、実施の形態１におけるパラメータ生成装置１または実施の形態２におけるパラメータ変換装置２によって生成された、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないＮＴＲＵ暗号のパラメータを利用して、暗号化通信を行うシステムである。
【０１７３】
＜暗号装置３１の構成＞
暗号装置３１は、平文多項式ｍを暗号化し、暗号文多項式ｃを生成する装置であり、図１２に示すように、パラメータ記憶部３１１、公開鍵記憶部３１２、および暗号化部３１３を備える。
【０１７４】
（１）パラメータ記憶部３１１
パラメータ記憶部３１１は、実施の形態１におけるパラメータ生成装置１または実施の形態２におけるパラメータ変換装置２によって生成されたＮＴＲＵ暗号のパラメータである、パラメータＮ、パラメータｐ、パラメータｑ、パラメータｄｆ、パラメータｄｇ、パラメータｄを、予め記憶している。
【０１７５】
（２）公開鍵記憶部３１２
公開鍵記憶部３１２は、予め復号装置３２の公開鍵多項式ｈを取得し、記憶している。
この公開鍵多項式ｈは、パラメータＮに対し、（Ｎ−１）次元以下の多項式で表される多項式である。
【０１７６】
（３）暗号化部３１３
暗号化部３１３は、パラメータ記憶部３１１からパラメータＮ、パラメータｐ、パラメータｑ、パラメータｄを受け取り、公開鍵記憶部３１２から、公開鍵多項式ｈを受け取り、外部から、パラメータＮに対し、（Ｎ−１）次元以下の多項式で表される平文多項式ｍを受け取る。
【０１７７】
暗号化部３１３は、パラメータＮ、パラメータｄを用いて、ｄ個の係数が「１」であり、かつｄ個の係数が「−１」であり、かつ他の係数は「０」となるように、（Ｎ−１）次元の乱数多項式ｒをランダムに選ぶ。
【０１７８】
暗号化部３１３は、平文多項式ｍに対し、乱数多項式ｒ、公開鍵多項式ｈ、パラメータＮ、パラメータｐ、パラメータｑを用いて、ＮＴＲＵ暗号の暗号化処理を行い、暗号文多項式ｃを計算する。
【０１７９】
この暗号文多項式ｃの演算方法の詳細は、非特許文献２に記載されているため、ここでは説明を省略する。暗号化部３１３は、生成された暗号文多項式ｃを通信路３３を介して復号装置３２へ送信する。
【０１８０】
＜復号装置３２の構成＞
復号装置３２は、暗号文多項式ｃを復号化し、復号文多項式ｍ’を計算する装置であり、図１３に示すように、パラメータ記憶部３２１、鍵生成部３２２、秘密鍵記憶部３２３、復号化部３２４とを備える。
【０１８１】
（１）パラメータ記憶部３２１
パラメータ記憶部３２１は、暗号装置３１のパラメータ記憶部３１１が記憶するＮＴＲＵ暗号のパラメータと同じＮＴＲＵ暗号のパラメータを記憶している。
【０１８２】
すなわち、パラメータ記憶部３２１は、パラメータ記憶部３１１が記憶するものと同じパラメータＮ、パラメータｐ、パラメータｑ、パラメータｄｆ、パラメータｄｇ、パラメータｄを、予め記憶している。
【０１８３】
（２）鍵生成部３２２
鍵生成部３２２は、パラメータ記憶部３２１からパラメータＮ、パラメータｐ、パラメータｑ、パラメータｄｆ、パラメータｄｇを受け取り、パラメータＮ、パラメータｐ、パラメータｑ、パラメータｄｆ、パラメータｄｇを用いて、（Ｎ−１）次元以下の多項式で表される秘密鍵多項式ｆ、および公開鍵多項式ｈを生成する。なお、この秘密鍵多項式ｆおよび公開鍵多項式ｈの生成方法は、非特許文献２に記載されているため、ここでは説明を省略する。
【０１８４】
そして、鍵生成部３２２は、公開鍵多項式ｈを公開することにより暗号装置３１が取得できるようにする。また、鍵生成部３２２は、秘密鍵多項式ｆを秘密鍵記憶部３２３に記憶する。
【０１８５】
（３）秘密鍵記憶部３２３
秘密鍵記憶部３２３は、予め復号装置３２の秘密鍵多項式ｆを記憶している。
この秘密鍵多項式ｆは、パラメータＮに対し、（Ｎ−１）次元以下の多項式で表される多項式である。
【０１８６】
（４）復号化部３２４
復号化部３２４は、パラメータ記憶部３２１から、パラメータＮ、パラメータｐ、パラメータｑを受け取り、秘密鍵記憶部３２３から、秘密鍵多項式ｆを受け取り、通信路３３を介して暗号装置３１から暗号文多項式ｃを受け取る。
【０１８７】
復号化部３２４は、暗号文多項式ｃに対し、秘密鍵多項式ｆ、パラメータＮ、パラメータｐ、パラメータｑを用いて、ＮＴＲＵ暗号の復号化処理を行い、復号文多項式ｍ’を計算する。このＮＴＲＵ暗号の復号化処理の詳細は、非特許文献２に記載されているため、ここでは説明を省略する。
【０１８８】
復号化部３２４は、生成した復号文多項式ｍ’を外部へ出力する。
＜暗号システム３の動作＞
以上に述べた暗号システム３の動作について説明する。図１４は、暗号システム３の動作を示すフローチャートである。
【０１８９】
暗号システム３は、実施の形態１におけるパラメータ生成装置１または実施の形態２におけるパラメータ変換装置２によって生成された、ＮＴＲＵ暗号のパラメータのうち、少なくともパラメータＮ、パラメータｐ、パラメータｑ、パラメータｄを暗号装置３１のパラメータ記憶部３１１に記憶しており、少なくともパラメータＮ、パラメータｐ、パラメータｑ、パラメータｄｆ、パラメータｄｇを復号装置３２のパラメータ記憶部３２１に記憶している（ステップＳ３０１）。
【０１９０】
復号装置３２の鍵生成部３２２は、パラメータ記憶部３２１からパラメータＮ、パラメータｐ、パラメータｑ、パラメータｄｆ、パラメータｄｇを受け取る。鍵生成部３２２は、秘密鍵多項式ｆ、および公開鍵多項式ｈを生成して、公開鍵多項式ｈを公開することにより暗号装置３１が取得できるようにする。また、鍵生成部３２２は、秘密鍵多項式ｆを秘密鍵記憶部３２３に記憶する（ステップＳ３０２）。
【０１９１】
暗号装置３１の公開鍵記憶部３１２は、復号装置３２の公開鍵多項式ｈを取得し、記憶する（ステップＳ３０３）。
暗号装置３１の暗号化部３１３は、パラメータ記憶部３１１からパラメータＮ、パラメータｐ、パラメータｑ、パラメータｄを受け取り、公開鍵記憶部３１２から、公開鍵多項式ｈを受け取り、外部から、パラメータＮに対し、（Ｎ−１）次元以下の多項式で表される平文多項式ｍを受け取る（ステップＳ３０４）。
【０１９２】
暗号装置３１の暗号化部３１３は、パラメータＮ、パラメータｄを用いて、ｄ個の係数が「１」であり、かつｄ個の係数が「−１」であり、かつ他の係数は「０」となるように、（Ｎ−１）次元の乱数多項式ｒをランダムに選ぶ。暗号化部３１３は、平文多項式ｍに対し、乱数多項式ｒ、公開鍵多項式ｈ、パラメータＮ、パラメータｐ、パラメータｑを用いて、ＮＴＲＵ暗号の暗号化処理を行い、暗号文多項式ｃを計算する（ステップＳ３０５）。
【０１９３】
暗号装置３１の暗号化部３１３は、暗号文多項式ｃを通信路３３を介して復号装置３２へ送信する（ステップＳ３０６）。
復号装置３２の復号化部３２４は、パラメータ記憶部３２１から、パラメータＮ、パラメータｐ、パラメータｑを受け取り、秘密鍵記憶部３２３から、秘密鍵多項式ｆを受け取り、通信路３３を介して暗号装置３１から暗号文多項式ｃを受け取る（ステップＳ３０７）。
【０１９４】
復号装置３２の復号化部３２４は、暗号文多項式ｃに対し、秘密鍵多項式ｆ、パラメータＮ、パラメータｐ、パラメータｑを用いて、ＮＴＲＵ暗号の復号化処理を行い、復号文多項式ｍ’を計算する（ステップＳ３０８）。
【０１９５】
復号装置３２の復号化部３２４は、復号文多項式ｍ’を外部へ出力して処理を終了する（ステップＳ３０９）。
【０１９６】
＜暗号システム３の動作検証＞
まず、復号装置３２は、実施の形態１におけるパラメータ生成装置１または実施の形態２におけるパラメータ変換装置２によって生成されたＮＴＲＵ暗号のパラメータを用いて、秘密鍵多項式ｆ、公開鍵多項式ｈを生成している（ステップＳ３０２）。
【０１９７】
そして、暗号装置３１が、実施の形態１におけるパラメータ生成装置１または実施の形態２におけるパラメータ変換装置２によって生成されたＮＴＲＵ暗号のパラメータを用いて、平文多項式ｍを暗号化している（ステップＳ３０５）。
【０１９８】
以上により、実施の形態１におけるパラメータ生成装置１または実施の形態２におけるパラメータ変換装置２によって生成されたパラメータを用いて、秘密鍵多項式ｆ、公開鍵多項式ｈを生成して暗号化が行なわれる。このため、本実施の形態に係る暗号化通信では、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないことがいえる。
【０１９９】
＜実施の形態３における効果＞
従来の技術では、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないＮＴＲＵ暗号のパラメータを生成するための条件が知られておらず、そのようなＮＴＲＵ暗号のパラメータを生成できなかった。そのため、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができなかった。
【０２００】
しかしながら、この暗号システムは、上述したように、実施の形態１におけるパラメータ生成装置１または実施の形態２におけるパラメータ変換装置２によって生成されたパラメータを用いて、秘密鍵多項式ｆ、公開鍵多項式ｈを生成して暗号化をおこなっているため、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができるようになった。
【０２０１】
（実施の形態４）
本発明の実施の形態４に係る暗号システム４について説明する。
＜暗号システム４の構成＞
暗号システム４は、図１５に示すように、暗号装置４１、復号装置４２および通信路３３、４３を備えている。
【０２０２】
＜暗号装置４１の構成＞
暗号装置４１は、平文多項式ｍを暗号化し、暗号文多項式ｃを生成する装置であり、図１６に示すように、パラメータ生成装置１、暗号化部３１３および公開鍵記憶部４１１を備えている。
【０２０３】
（１）パラメータ生成装置１、暗号化部３１３
パラメータ生成装置１は、実施の形態１で説明したパラメータ生成装置１と同様の構成を有し、暗号化部３１３は、実施の形態３で説明した暗号化部３１３と同様の構成を有する。このため、そられの詳細な説明はここでは繰返さない。
【０２０４】
（２）公開鍵記憶部４１１
公開鍵記憶部４１１は、復号装置４２の公開鍵多項式ｈを受信し、記憶する記憶部である。
【０２０５】
＜通信路４３の構成＞
通信路４３は、暗号装置４１と復号装置４２との間で、パラメータ組ＰＳを送受信するために用いられるセキュアな通信路である。
【０２０６】
＜復号装置４２の構成＞
復号装置４２は、暗号文多項式ｃを復号化し、復号文多項式ｍ’を計算する装置であり、図１７に示すように、パラメータ受信部４２１、鍵生成部４２２、秘密鍵記憶部３２３および復号化部３２４を備えている。
【０２０７】
（１）パラメータ受信部４２１
パラメータ受信部４２１は、暗号装置４１のパラメータ生成装置１が生成するＮＴＲＵ暗号のパラメータを通信路４３を介して受信する処理部である。
【０２０８】
（２）鍵生成部４２２
鍵生成部４２２は、実施の形態３で説明した鍵生成部３２２の構成に加え、生成した公開鍵多項式ｈを、通信路３３を介して暗号装置４１に送信する処理部である。
【０２０９】
（３）秘密鍵記憶部３２３、復号化部３２４
秘密鍵記憶部３２３および復号化部３２４は、実施の形態１と同様の構成を有する。このため、その詳細な説明は、ここでは繰返さない。
【０２１０】
＜暗号システム４の動作＞
以上に述べた暗号システム４の動作について説明する。図１８は、暗号システム４の動作を示すフローチャートである。
【０２１１】
暗号装置４１のパラメータ生成装置１は、ＮＴＲＵ暗号のパラメータ（パラメータＮ、パラメータｐ、パラメータｑ、パラメータｄ、パラメータｄｆ、パラメータｄｇを生成する（ステップＳ４０１）。
【０２１２】
復号装置４２のパラメータ受信部４２１は、パラメータ生成装置１より、パラメータＮ、パラメータｐ、パラメータｑ、パラメータｄｆ、パラメータｄｇを受信する（ステップＳ４０２）。
【０２１３】
鍵生成部４２２は、パラメータ受信部４２１より、パラメータＮ、パラメータｐ、パラメータｑ、パラメータｄｆ、パラメータｄｇを取得し、秘密鍵多項式ｆ、および公開鍵多項式ｈを生成する。鍵生成部４２２は、公開鍵多項式ｈを暗号装置４１の公開鍵記憶部４１１に送信する。また、鍵生成部４２２は、秘密鍵多項式ｆを秘密鍵記憶部３２３に記憶する（ステップＳ４０３）。
【０２１４】
暗号装置４１の公開鍵記憶部４１１は、復号装置３２の公開鍵多項式ｈを取得し、記憶する（ステップＳ４０４）。
暗号装置４１の暗号化部３１３は、パラメータ生成装置１からパラメータＮ、パラメータｐ、パラメータｑ、パラメータｄを受け取り、公開鍵記憶部４１１から、公開鍵多項式ｈを受け取り、外部から、パラメータＮに対し、（Ｎ−１）次元以下の多項式で表される平文多項式ｍを受け取る（ステップＳ４０５）。
【０２１５】
暗号装置４１の暗号化部３１３は、パラメータＮ、パラメータｄを用いて、ｄ個の係数が「１」であり、かつｄ個の係数が「−１」であり、かつ他の係数は「０」となるように、（Ｎ−１）次元の乱数多項式ｒをランダムに選び、平文多項式ｍに対し、乱数多項式ｒ、公開鍵多項式ｈ、パラメータＮ、パラメータｐ、パラメータｑを用いて、ＮＴＲＵ暗号の暗号化処理を行い、暗号文多項式ｃを計算する（ステップＳ４０６）。
【０２１６】
暗号装置４１の暗号化部３１３は、暗号文多項式ｃを通信路３３を介して復号装置４２へ送信する（ステップＳ４０７）。
復号装置４２の復号化部３２４は、パラメータ受信部４２１から、パラメータＮ、パラメータｐ、パラメータｑを受け取り、秘密鍵記憶部３２３から、秘密鍵多項式ｆを受け取り、通信路３３を介して暗号装置４１から暗号文多項式ｃを受け取る（ステップＳ４０８）。
【０２１７】
復号装置４２の復号化部３２４は、暗号文多項式ｃに対し、秘密鍵多項式ｆ、パラメータＮ、パラメータｐ、パラメータｑを用いて、ＮＴＲＵ暗号の復号化処理を行い、復号文多項式ｍ’を計算する（ステップＳ４０９）。
【０２１８】
復号装置４２の復号化部３２４は、復号文多項式ｍ’を外部へ出力して処理を終了する（ステップＳ４１０）。
本実施の形態によると、実施の形態３に係る暗号システム３と異なり、予め作成されたパラメータをパラメータ記憶部３１１、４２１に記憶しておくのではなく、暗号装置４１のパラメータ生成装置１が動的に生成したパラメータを用いて、平文多項式ｍの暗号化処理および暗号文多項式ｃの復号化処理を行なうようにしている。このため、パラメータを定期的に変化させることができ、暗号化通信の安全性を高めることが可能になる。
【０２１９】
＜変形例＞
上記に説明した実施の形態は、本発明の実施の一例であり、本発明はこの実施の形態に何ら限定されるものではなく、その旨を逸脱しない範囲において種々なる態様で実施し得るものである。以下のような場合も本発明に含まれる。
【０２２０】
（１）式格納部１１０に格納される格子強度係数ＧＬおよび解読時間評価式ＥＦは、図１０に示す通り複数の組が格納され、安全性判定部１０５がＧＬ≦ＳＬを満たす格子強度係数ＧＬと、解読時間評価式ＥＦとの組を読み取ってもよい。
【０２２１】
また、式格納部１１０に格納される格子強度係数ＧＬおよび解読時間評価式ＥＦは、後で変更できるようにしてもよい。
（２）第１のパラメータ生成部１０２におけるパラメータＮの選択方法は、この方法に限定されず、Ｎが十分大きくとれる方法であれば任意の方法でよい。例えば、Ｆ（ｘ）＝１０・ｌｏｇ（ｘ）等の単調増加関数Ｆに対し、Ｎ＝Ｆ（ＳＬＩ）からパラメータＮを選択してもよい。また、例えば、パラメータＮは固定値であってもよい。
【０２２２】
（３）第２のパラメータ生成部１０３におけるパラメータｄｆ、ｄｇ、ｄの選択方法は、この方法に限定されず、総当りで探索する解読に対し、秘密鍵の安全性レベルと平文の安全性レベルとが安全性レベル情報ＳＬＩが表す安全性レベルを達成し、かつｄｇ＞ｄとなるように選択すれば、どのような方法でもよい。
【０２２３】
（４）また、パラメータ組ＰＳの中のパラメータｑ、ｄｆ、ｄｇ、ｄは、第２のパラメータ生成部１０３が上述の方法でパラメータｄｆ、ｄｇ、ｄを選択し、第３のパラメータ生成部１０４が条件式ＥＤにパラメータｄｆ、ｄｇ、ｄの値を適用してパラメータｑの値を決定することにより生成する以外にも、パラメータｑが外部から予め与えられており、条件式ＥＤとパラメータｑの値とから導出される関係式に基づいて、ｄｇ＞ｄとなるようにパラメータｄｆ、ｄｇ、ｄを選択することにより生成してもよい。
【０２２４】
具体的には、例えばパラメータｑとしてｑ＝２５６が外部から予め与えられている場合、条件式ＥＤとパラメータｑの値とから、
６ｄ＋２ｄｆ−１＜１２８
という関係式を満たし、かつｄｇ＞ｄとなるようにパラメータｄｆ、ｄｇ、ｄを選び、パラメータ組ＰＳの中のパラメータｑ、ｄｆ、ｄｇ、ｄを生成してもよい。
【０２２５】
なお、この場合、パラメータｄｆ、ｄｇ、ｄでは、総当りで探索する解読に対して、秘密鍵や平文の解読時間が安全性レベル情報ＳＬＩが表す安全性レベルを達成していない可能性がある。そのため、安全性増加部１０６が、上述のように、ＬＬＬアルゴリズムによる解読時間Ｔが安全性レベル情報ＳＬＩを達成するようにパラメータＮを増加させた後、第２のパラメータ生成部１０３の構成において説明した秘密鍵や平文を総当りで探索する暗号解読の解読時間が、安全性レベル情報ＳＬＩが表す安全性レベルを達成するようにパラメータＮを増加させてもよい。
【０２２６】
また、秘密鍵や平文を総当りで探索する暗号解読の解読時間が、安全性レベル情報ＳＬＩが表す安全性レベルを達成するようにパラメータＮを増加させた後、ＬＬＬアルゴリズムによる解読時間Ｔが安全性レベル情報ＳＬＩを達成するようにパラメータＮを増加させてもよい。
【０２２７】
（５）第３のパラメータ生成部１０４におけるパラメータｑの選択方法は、この方法に限定されず、条件式ＥＤを満たし、かつパラメータｐと互いに素になるように選択すれば、どのような方法でもよい。
【０２２８】
（６）第１のパラメータ生成部１０２が生成するパラメータｐ、およびパラメータ変換装置２が扱うパラメータ組ＩＰＳ、ＰＳの中のパラメータｐは、ｐ＝３に限定されず、他のものでもよい。
【０２２９】
例えば、ある非負整数ｋに対してｐ＝ｋとした場合、式格納部１１０に格納される条件式ＥＤを
ＥＤ：２・ｋ・ｄ＋２ｄｆ−１＜ｑ／２
とすれば、同様の効果が得られる。
【０２３０】
（７）上記変形例（６）に関し、さらに、ある多項式ｂに対してｐ＝ｂとしてもよい。例えば、ｐ＝（Ｘ＋２）とした場合、式格納部１１０に格納される条件式ＥＤを
ＥＤ：６ｄ＋２ｄｆ−１＜ｑ／２
とすれば、同様の効果が得られる。
【０２３１】
何故ならば、上述した通り、多項式ｐ×ｒ×ｇ＋ｆ×ｍの全ての係数が、−ｑ／２からｑ／２の範囲に収まっていれば、復号エラーは発生しない。
このとき、多項式ｒ×ｇを考えると、その係数の最大値は、高々２ｄである（最小値も、せいぜい−２ｄである。）。
【０２３２】
今、ｐ＝（Ｘ＋２）なので、多項式ａのｋ次の係数をａ（ｋ）で表すと、
ｐ（０）＝２、ｐ（１）＝１、ｐ（ｉ）＝０  （ｉ＞１）
であるので、
（ｐ×（ｒ×ｇ））（ｋ）
＝ｐ（０）・（ｒ×ｇ）（ｋ）＋ｐ（１）・（ｒ×ｇ）（ｋ−１）＋
．．．＋ｐ（Ｎ−１）・（ｒ×ｇ）（ｋ−（Ｎ−１）（ｍｏｄ  Ｎ））
＝（ｒ×ｇ）（ｋ）＋２・（ｒ×ｇ）（ｋ−１）
である。
【０２３３】
よって、多項式ｐ×ｒ×ｇを考えると、その係数の最大値は、３・２ｄである。一方、多項式ｆ×ｍの係数の値は、その値が高々２ｄｆ−１である（最小値も、せいぜい−２ｄｆ＋１である。）。
【０２３４】
従って、上述の実施の形態で説明したのと同様にして、多項式ｐ×ｒ×ｇ＋ｆ×ｍの最も大きい係数の値は、高々３・２ｄ＋２ｄｆ−１であることが導くことができ、ここから、復号エラーが理論的に発しない条件式ＥＤとして、
ＥＤ：６ｄ＋２ｄｆ−１＜ｑ／２
を導くことができる。
【０２３５】
なお、多項式ｂはｂ＝（Ｘ＋２）に限定されないことはもちろんである。その場合、上述の処理を行えば、条件式ＥＤを導くことができ、同様の効果が得られる。
【０２３６】
（８）パラメータ変換装置２において、パラメータ組ＩＰＳを外部より入力する以外にも、入力部１０１ｂが、安全性レベル情報ＳＬＩが表す安全性レベルを達成するパラメータ組ＩＰＳのリストを保持するようにしてもよい。この場合には、入力部１０１ｂへ外部より入力されるデータは、安全性レベル情報ＳＬＩだけになる。すなわち、入力部１０１ｂは、図９に示すようなパラメータ組ＩＰＳのリストを保持しており、外部から安全性レベル情報ＳＬＩが入力されると、このＳＬＩに関連付けられたパラメータ組ＩＰＳをパラメータ組ＰＳとして第３のパラメータ生成部１０５へ出力するようにしてもよい。
【０２３７】
（９）非特許文献４には、Ｚｅｒｏ−Ｒｕｎ  Ｌａｔｔｉｃｅを用いる解読により、ＬＬＬアルゴリズムの解読時間が減少する可能性があることが記載されているが、解読時間評価式ＥＦは、このＺｅｒｏ−Ｒｕｎ  Ｌａｔｔｉｃｅを用いた解読を考慮した、ＬＬＬアルゴリズムの解読時間としてもよい。
【０２３８】
（１０）暗号システム３において、秘密鍵多項式ｆおよび公開鍵多項式ｈは、復号装置３２の鍵生成部３２２で生成されなくてもよい。例えば、秘密鍵多項式ｆおよび公開鍵多項式ｈが鍵管理サーバ等の復号装置３２の外部で生成され、秘密鍵記憶部３２３および公開鍵記憶部３１２へそれぞれ入力されるようにしてもよい。
【０２３９】
（１１）暗号システム３は、さらにパラメータ生成装置１またはパラメータ変換装置２を備え、パラメータ生成装置１またはパラメータ変換装置２が出力したＮＴＲＵ暗号のパラメータが、パラメータ記憶部３１１、３２１に入力されるようにしてもよい。
【０２４０】
（１２）暗号システム３の暗号装置３１が、さらに、パラメータ生成装置１またはパラメータ変換装置２を備えるようにしてもよい。この場合、暗号装置３１がＮＴＲＵ暗号のパラメータを生成し、生成されたＮＴＲＵ暗号のパラメータが、パラメータ記憶部３１１に入力され、通信路３３を介して復号装置３２へ送信される。復号装置３２は、ＮＴＲＵ暗号のパラメータを受信し、パラメータ記憶部３２１に記憶する。
【０２４１】
（１３）パラメータ記憶部３１１に記憶されるＮＴＲＵ暗号パラメータは、パラメータＮ、ｐ、ｑ、ｄｆ、ｄｇ、ｄのうち、少なくとも、パラメータＮ、パラメータｐ、パラメータｑ、パラメータｄを含めば、どのようなものでもよい。また、パラメータ記憶部３２１に記憶されるＮＴＲＵ暗号パラメータは、少なくとも、パラメータＮ、パラメータｐ、パラメータｑ、パラメータｄｆ、パラメータｄｇを含めば、どのようなものでもよい。例えば、ｐ＝２であってもよい。その場合には、すべての多項式の係数は、１または０であるとする。このようにすることにより、多項式間の演算を高速に行なうことができ、これにより、パラメータ生成処理、パラメータ変換処理、暗号化処理および復号化処理を高速に行なうことができるようになる。
【０２４２】
（１４）実施の形態４に示した暗号システム４の暗号装置４１において、パラメータ生成装置１の代わりに、パラメータ変換装置２を使用するようにしてもよい。
（１５）実施の形態４に示した暗号システム４の暗号装置４１において、パラメータ生成装置１の代わりに、パラメータ生成装置１で生成されるのと同様のパラメータを受信するパラメータ受信装置を設けるようにしてもよい。
【０２４３】
（１６）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０２４４】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、半導体メモリ、ハードディスクドライブ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ（Digital Versatile Disc−ＲＯＭ）、ＤＶＤ−ＲＡＭ等、に記録したものとしてもよい。
【０２４５】
（１７）上記実施の形態および上記変形例をそれぞれ組み合わせてもよい。
【産業上の利用可能性】
【０２４６】
本発明は、暗号化処理および復号化処理に適用でき、特に、電子署名、電子認証技術、暗号化通信等に適用できる。
【図面の簡単な説明】
【０２４７】
【図１】本発明の実施の形態１におけるパラメータ生成装置１の構成を示す図である。
【図２】パラメータＮにおける解読時間Ｔの実測データを示す図である。
【図３】本発明の実施の形態１における式格納部１１０に格納されている式およびデータを説明するための図である。
【図４】本発明の実施の形態１におけるパラメータ生成装置１の処理の前半部を示すフローチャートである。
【図５】本発明の実施の形態１におけるパラメータ生成装置１の処理の後半部を示すフローチャートである。
【図６】本発明の実施の形態２におけるパラメータ変換装置２の構成を示す図である。
【図７】本発明の実施の形態２におけるパラメータ変換装置２の処理の前半部を示すフローチャートである。
【図８】本発明の実施の形態２におけるパラメータ変換装置２の処理の処理の後半部を示すフローチャートである。
【図９】安全性レベル情報とその安全性レベルを達成するＮＴＲＵ暗号のパラメータ組とを示す図である。
【図１０】本発明の変形例（１）における式格納部１１０に格納されている式およびデータを説明するための図である。
【図１１】本発明の実施の形態３における暗号システム３の構成を示す図である。
【図１２】本発明の実施の形態３における暗号装置３１の構成を示す図である。
【図１３】本発明の実施の形態３における復号装置３２の構成を示す図である。
【図１４】本発明の実施の形態３における暗号システム３の動作を示すフローチャートである。
【図１５】本発明の実施の形態４における暗号システム４の構成を示す図である。
【図１６】本発明の実施の形態４における暗号装置４１の構成を示す図である。
【図１７】本発明の実施の形態４における復号装置４２の構成を示す図である。
【図１８】本発明の実施の形態４における暗号システム４の動作を示すフローチャートである。
【符号の説明】
【０２４８】
１  パラメータ生成装置
２  パラメータ変換装置
３，４  暗号システム
３１，４１  暗号装置
３２，４２  復号装置
３３，４３  通信路
１０１，１０１ｂ  入力部
１０２  第１のパラメータ生成部
１０３，１０３ｂ  第２のパラメータ生成部
１０４，１０４ｂ  第３のパラメータ生成部
１０５  安全性判定部
１０６  安全性増加部
１０７  出力部
１０８  第１のパラメータ変更部
１０９  第２のパラメータ変更部
１１０  式格納部
３１１，３２１  パラメータ記憶部
３１２，４１１  公開鍵記憶部
３１３  暗号化部
３２２，４２２  鍵生成部
３２３  秘密鍵記憶部
３２４  復号化部
４２１  パラメータ受信部
【図１】
2004341502.tif 000003
【図２】
2004341502.tif 000004
【図３】
2004341502.tif 000005
【図４】
2004341502.tif 000006
【図５】
2004341502.tif 000007
【図６】
2004341502.tif 000008
【図７】
2004341502.tif 000009
【図８】
2004341502.tif 000010
【図９】
2004341502.tif 000011
【図１０】
2004341502.tif 000012
【図１１】
2004341502.tif 000013
【図１２】
2004341502.tif 000014
【図１３】
2004341502.tif 000015
【図１４】
2004341502.tif 000016
【図１５】
2004341502.tif 000017
【図１６】
2004341502.tif 000018
【図１７】
2004341502.tif 000019
【図１８】
2004341502.tif 000020