JP2004341502A - パラメータ生成装置、暗号化システム、復号化システム、暗号装置、復号装置、暗号化方法、復号化方法、およびプログラム - Google Patents

パラメータ生成装置、暗号化システム、復号化システム、暗号装置、復号装置、暗号化方法、復号化方法、およびプログラム Download PDF

Info

Publication number
JP2004341502A
JP2004341502A JP2004118772A JP2004118772A JP2004341502A JP 2004341502 A JP2004341502 A JP 2004341502A JP 2004118772 A JP2004118772 A JP 2004118772A JP 2004118772 A JP2004118772 A JP 2004118772A JP 2004341502 A JP2004341502 A JP 2004341502A
Authority
JP
Japan
Prior art keywords
parameter
encryption
output
decryption
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004118772A
Other languages
English (en)
Other versions
JP4567364B2 (ja
Inventor
Masahito Yamamichi
将人 山道
Yuichi Fuda
裕一 布田
Motoji Omori
基司 大森
Makoto Tatebayashi
誠 館林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004118772A priority Critical patent/JP4567364B2/ja
Publication of JP2004341502A publication Critical patent/JP2004341502A/ja
Application granted granted Critical
Publication of JP4567364B2 publication Critical patent/JP4567364B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Abstract

【課題】 暗号装置と復号装置との間で安全かつ確実な暗号化通信ができるように、復号エラーが発生しないNTRU暗号のパラメータを生成するパラメータ生成装置を提供する。
【解決手段】 予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成する出力パラメータ生成部とを備える。
【選択図】 図1

Description

本発明は、情報セキュリティ技術としての暗号技術に関し、特に、NTRU(エヌティーアールユー・クリプトシステムズ・インコーポレーテッドの登録商標)暗号のパラメータ生成に関する。
送信装置と受信装置との間で秘匿通信を実現する方法として、公開鍵暗号を用いた暗号化通信がある。簡単に説明すると、送信装置が、通信内容を受信装置の公開鍵を用いて暗号化して送信し、受信装置は、暗号化された通信内容を受信し、それを自身の秘密鍵を用いて復号して元の通信内容を得る方法である(例えば、非特許文献1参照)。この方法を用いる一般的な暗号システムでは、送信装置および受信装置は、ともに複数存在する。まず、送信装置は、通信先受信装置の公開鍵を取得する。この公開鍵は、通信先受信装置が有する秘密鍵と対になるものであり暗号システムにおいて公開されている。そして、送信装置は、通信すべきデータ内容を上記のように取得した公開鍵で暗号化して送信する。一方で、受信装置は、上記のように暗号化された通信内容データを受信する。そして、受信装置は、暗号化された通信内容データを、自身の有する秘密鍵で復号して元の通信内容データを得る。
なお、暗号は、送信装置と受信装置との間の秘匿通信を目的とするものであり、第三者による暗号解読に対する安全性が重要なのは言うまでもない。公開鍵暗号では、暗号化された通信内容データ(以降、「暗号文」と記述)から通信内容データ(以降、「平文」と記述)が解読される可能性と、受信装置が秘密に保持し、暗号文から平文を得る際に用いられる秘密鍵が解読される可能性とがある。一般に、公開鍵暗号では、第三者によるこれらの暗号解読の解読時間が十分に大きく(例えば、最新のコンピュータを用いて1000年かかる等)、現実的な時間内では解読できないことが求められる。
1996年、高速処理が可能な公開鍵暗号として、NTRU暗号が提案された(例えば、非特許文献2参照)。このNTRU暗号については、非特許文献2に詳細が記載されているのでここでは詳細な説明を省略する。NTRU暗号では、ある法の下でべき乗剰余演算を行うRSA(Rivest Shamir Adleman)暗号や楕円曲線上の点のスカラ倍演算を行う楕円曲線暗号に比べ、高速に演算可能な多項式演算で暗号化と復号化とを行う。このため、従来の公開鍵暗号よりもソフトウェアにより高速に処理することが可能である。
従って、公開鍵暗号にNTRU暗号を用いた暗号システムでは、従来の公開鍵暗号を用いた暗号システムよりも、送信装置および受信装置の処理が高速に行えるという利点がある。
なお、このNTRU暗号を用いて実際に暗号化や復号化を行うためには、非負整数のパラメータ、N、p、q、df、dg、dが必要であり(例えば、非特許文献2参照)、現在、これらのパラメータの具体的な値が提示されている(例えば、非特許文献5参照)。
このNTRU暗号では、第三者による平文や秘密鍵の暗号解読方法として、これらを総当りで探索する暗号解読と、LLL(Lenstra, Lenstra and Lovasz)アルゴリズムを用いた暗号解読とがある(例えば、非特許文献2参照)が、非特許文献5に提示されたパラメータを用いれば、これらの暗号解読の解読時間は十分に大きく、NTRU暗号は安全であることが示されている(例えば、非特許文献3、非特許文献4、非特許文献5参照)。
一方、このNTRU暗号は、公開鍵を用いて平文を暗号化して暗号文を生成し、正規の秘密鍵を用いて暗号文を復号して復号文を生成しても、復号文が元の平文と異なる場合が発生する(例えば、非特許文献2参照)。このことを復号エラーが発生するという。この復号エラーはNTRU暗号のパラメータにより、その発生確率が異なる(例えば、非特許文献5参照)。
この復号エラーに関し、非特許文献2には、復号エラーが発生しないためには、NTRU暗号の公開鍵多項式hを生成するときに用いるランダム多項式g、乱数多項式r、平文多項式m、秘密鍵多項式fの演算結果の多項式(p・r×g+f×m)のすべての係数が−q/2からq/2の範囲に入ることが必要であることが示されている。しかし、このようにNTRU暗号のパラメータを選んだときの暗号解読に対する解読時間については不明であり、暗号解読に対して安全でかつ復号エラーが発生しないNTRU暗号のパラメータは知られていない。
岡本龍明、山本博資、「現代暗号」、シリーズ/情報科学の数学、産業図書、1997. 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>
上述したように、高速処理が可能なNTRU暗号では、復号エラーが発生すると、受信装置が、送信装置の暗号化した平文を正しく得られない場合がある。すなわち、送信装置と受信装置との間で確実な暗号化通信ができないことになる。
暗号システムにおいては、平文を相手に正しく伝えることが重要なのは言うまでもない。また、暗号は、第三者による暗号解読に対する安全性が重要なのは言うまでもない。
しかしながら、従来の技術では、復号エラーが発生しないNTRU暗号のパラメータを生成するための条件は示されているものの、その条件が定式化されておらず、復号エラーが発生しないNTRU暗号のパラメータを生成するのが困難である。
また、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないNTRU暗号のパラメータを生成するための条件が知られておらず、そのようなNTRU暗号のパラメータを生成できない。そのため、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができない。
そこで、本発明は上記の課題に鑑み、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができるように、復号エラーが発生しないNTRU暗号のパラメータを生成するパラメータ生成装置を提供することを第1の目的とする。
また、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができるように、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないNTRU暗号のパラメータを生成するパラメータ生成装置を提供することを第2の目的とする。
さらに、これらのパラメータ生成装置により生成されたパラメータを用いて、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができる、暗号システム、暗号装置および復号装置を提供することを第3の目的とする。
本発明のある局面に係るパラメータ生成装置は、復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成するパラメータ生成装置であって、予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない出力パラメータを生成するエラー非発生出力パラメータ生成部を備えることを特徴とする。
パラメータ生成装置は、エラー条件情報に基づいて、復号エラーが発生しないようなNTRU暗号のパラメータ組である出力パラメータを生成している。このため、生成された出力パラメータを用いて平文の暗号化処理および暗号文の復号化処理を行なうことにより、復号エラーが発生しなくなる。よって、復号エラーが発生しないNTRU暗号のパラメータを生成するパラメータ生成装置を提供することができる。
好ましくは、前記エラー非発生出力パラメータ生成部は、予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成する出力パラメータ生成部とを備える。また、前記仮パラメータ生成部は、外部から入力されたNTRU暗号のパラメータ組である入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成することを特徴とする。さらに、前記出力パラメータ生成部は、前記格子強度係数に基づく安全性決定情報と第三者による暗号解読に対する安全性を示す安全性レベル情報とに基づいて、前記仮パラメータ組から前記出力パラメータを生成する。
パラメータ生成装置は、格子強度係数に基づく安全性決定情報が安全性レベル情報を満たすことができるように出力パラメータを生成することができる。このため、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないNTRU暗号のパラメータを生成するパラメータ生成装置を提供することができる。
好ましくは、前記エラー条件情報は、前記非負整数p、前記非負整数q、前記非負整数d、前記非負整数dfに対し、復号エラーが発生しないための条件を表す条件式
2・p・d+2d・f−1<q/2
である。
このように、復号エラーが発生しないためのパラメータの条件を定式化することができる。このため、復号エラーが発生しないためのパラメータを簡便に求めることができる。
本発明の他の曲面に係る暗号システムは、平文をNTRU暗号で暗号化して暗号文を生成する暗号システムであって、上述のパラメータ生成装置と、前記パラメータ生成装置で生成された出力パラメータに基づいて公開鍵を生成する公開鍵生成手段と、前記公開鍵に基づいて、平文を暗号化する暗号化手段とを備えることを特徴とする。
上述のパラメータ生成装置に基づいて作成されたパラメータより求められた公開鍵を用いて平文の暗号化を行なっている。このため、暗号システムは、復号エラーが生じないような暗号文の生成を行なうことができる。
本発明の他の局面に係る復号システムは、暗号文をNTRU暗号で復号化して復号文を生成する復号システムであって、上述のパラメータ生成装置と、前記パラメータ生成装置で生成された出力パラメータに基づいて秘密鍵を生成する秘密鍵生成手段と、前記秘密鍵に基づいて、暗号文を復号化する復号化手段とを備えることを特徴とする。
上述のパラメータ生成装置に基づいて作成されたパラメータより求められた秘密鍵を用いて暗号文の復号化を行なっている。このため、復号システムは、復号エラーを生じさせることなく、暗号文を復号することができる。
本発明のさらに他の曲面に係る暗号システムは、NTRU暗号を用いた暗号システムであって、復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成して出力するパラメータ生成装置と、NTRU暗号の暗号鍵と復号鍵を生成して出力する鍵生成装置と、平文をNTRU暗号で暗号化した暗号文を生成する暗号装置と、前記暗号文を復号した復号文を生成する復号装置とを備え、前記パラメータ生成装置は、予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成して出力する出力パラメータ生成部とを備え、前記鍵生成装置は、前記パラメータ生成装置が出力した前記出力パラメータを入力として前記暗号鍵と前記復号鍵を生成し出力する生成鍵出力部を備え、前記暗号装置は、前記パラメータ生成装置が出力した出力パラメータと前記鍵生成装置が出力した前記暗号鍵を入力として、前記平文を暗号化して前記暗号文を生成する暗号化部を備え、前記復号装置は、前記パラメータ生成装置が出力した前記出力パラメータと前記鍵生成装置が出力した前記復号鍵を入力として、前記暗号文を復号して前記復号文を生成する復号化部を備えることを特徴とする。
パラメータ生成装置は、エラー条件情報に基づいて、復号エラーが発生しないようなNTRU暗号のパラメータ組である出力パラメータを生成している。鍵生成装置は、生成された出力パラメータを入力として暗号鍵と復号鍵を生成している。暗号装置および復号装置は、暗号鍵および復号鍵を用いて暗号化処理および復号化処理をそれぞれ行なっている。このため、復号エラーが発生しない暗号システムを提供することができる。
なお、本発明は、このような特徴的な手段を備えるパラメータ生成装置、暗号システムおよび復号システムとして実現することができるだけでなく、特徴的な手段をステップとするパラメータ生成方法、暗号化方法、復号化方法として実現したり、当該ステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM(Compact Disc-Read Only Memory)等の記録媒体やインターネット等の通信ネットワークを介して流通させることができるのは言うまでもない。
本発明によると、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができるように、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないNTRU暗号のパラメータを生成するパラメータ生成装置を提供することができる。
また、これらのパラメータ装置またはパラメータ変換装置により生成されたパラメータを用いて、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができる、暗号システム、暗号装置および復号装置を提供することができる。
以上により、従来技術では達成できなかったパラメータ生成装置、暗号システム、暗号装置、および復号装置を提供することができ、その実用的価値は大きい。
以下、本発明に係るパラメータ生成装置およびパラメータ変換装置の実施の形態について、図面を用いて説明する。
本発明に係るパラメータ生成装置およびパラメータ変換装置は、NTRU暗号のパラメータを扱う。このNTRU暗号については、非特許文献2に詳しく述べられているので、ここでは詳細な説明を省略するが、以下に簡単に説明する。
(1)NTRU暗号のパラメータ
NTRU暗号は、非負整数のパラメータ、N、p、q、df、dg、dを持つ。非特許文献2には、NTRU暗号のパラメータの例として、(N,p,q,df,dg,d)=(107,3,64,15,12,5)、(N,p,q,df,dg,d)=(167,3,128,61,20,18)、(N,p,q,df,dg,d)=(503,3,256,216,72,55)の3つの例が挙げられている。
以下に、これらのパラメータの意味を説明する。
(i)パラメータN
NTRU暗号は、多項式の演算により暗号化と復号化を行う公開鍵暗号方式である。NTRU暗号で扱う多項式の次元は、上記パラメータNにより決まる。
NTRU暗号で扱う多項式は、上記パラメータNに対し、(N−1)次元以下の整数係数多項式であり、例えばN=5のとき、X^4+X^3+1等の多項式である。ここで、「X^a」はXのa乗を意味することとする。また、暗号化時または復号化時に用いられる公開鍵h、秘密鍵f、平文m、乱数r、暗号文cはいずれも、(N−1)次元以下の多項式として表現される(以降、それぞれを公開鍵多項式h、秘密鍵多項式f、平文多項式m、乱数多項式r、暗号文多項式cと呼ぶ)。
そして、多項式演算は、上記パラメータNに対し、「X^N=1」という関係式を用いて、演算結果が常に(N−1)次元以下の多項式になるように演算される。例えば、N=5の場合、多項式X^4+X^2+1と多項式X^3+Xの積は、多項式と多項式の積を「×」、整数と多項式の積(または整数と整数の積)を「・」とすると、X^5=1という関係から、
(X^4+X^2+1)×(X^3+X)
=X^7+2・X^5+2・X^3+X
=X^2×1+2・1+2・X^3+X
=2・X^3+X^2+X+2
というように、常に(N−1)次元以下の多項式になるように演算される。
(ii)パラメータp、q
NTRU暗号では、非負整数のパラメータp、qを用いる。非特許文献2に記載の通り、このパラメータp、qは互いに素となる必要がある。
(iii)パラメータdf、dg、d
NTRU暗号で扱う秘密鍵多項式f、公開鍵多項式を生成するときに秘密鍵多項式fと共に用いるランダム多項式g、および平文を暗号化するときに用いる乱数多項式rの選び方は、それぞれパラメータdf、dg、dにより決まる。
まず、秘密鍵多項式fは、df個の係数が「1」であり、かつ(df−1)個の係数が「−1」であり、かつ他の係数は「0」となるように選ばれる。すなわち、乱数多項式fは(N−1)次元以下の多項式であり、0次元(定数項)から(N−1)次元まで、N個の係数がある。このN個の係数のうち、df個の係数が「1」であり、かつ(df−1)個の係数が「−1」であり、かつ(N−2df+1)個の係数が0となるように乱数多項式fが選ばれる。
そして、ランダム多項式gは、dg個の係数が「1」であり、かつdg個の係数が「−1」であり、かつ他の係数は「0」となるように選ばれる。また、乱数多項式rは、d個の係数が「1」であり、かつd個の係数が「−1」であり、かつ他の係数は「0」となるように選ばれる。
(2)NTRU暗号の復号エラー
ところで、このNTRU暗号は、平文多項式mを暗号化して暗号文多項式cを生成したとき、暗号文多項式cを復号して得られる復号文多項式m'が平文多項式mと異なる場合が発生する。この場合は、復号時に正しく平文多項式mが得られないことになる。このことを復号エラーが発生するという。
非特許文献2には、公開鍵多項式hを生成するときに用いられるランダム多項式g、乱数多項式r、平文多項式m、秘密鍵多項式fの演算結果の多項式(p・r×g+f×m)のいずれかの次数の係数の値が−q/2からq/2の間に入らなかったとき、復号エラーが発生することが記載されている。非特許文献2に挙げられた上述の3つのパラメータにおいては、非特許文献5に記載の通り、小さい発生確率(10^(−5)程度)ではあるが復号エラーが発生してしまう。
(実施の形態1)
本発明の実施の形態1に係るパラメータ生成装置1について説明する。
<パラメータ生成装置1の概要>
最初に、図1を用いてパラメータ生成装置1の概要を説明する。
このパラメータ生成装置1には、あるパラメータのNTRU暗号の格子強度係数GL、その格子強度係数GLを持つNTRU暗号の解読時間評価式EF、復号エラーが発生しないパラメータの条件式ED、および初期安全性決定式IFが予め与えられている。
そして、このパラメータ生成装置1は、外部より、NTRU暗号が達成すべき安全性レベルを示す安全性レベル情報SLIを入力として受ける。パラメータ生成装置1は、総当りの探索による解読とLLLアルゴリズムによる解読とに対して安全性レベル情報SLIが示す安全性レベルを達成し、かつ復号エラーが発生しないNTRU暗号のパラメータ組PSを、予め与えられている格子強度係数GLと解読時間評価式EFと条件式EDと初期安全性決定式IFとを用いて生成して、外部へ出力する装置である。
以上が、パラメータ生成装置1の概要であるが、以下に、格子強度係数GL、解読時間評価式EF、条件式ED、初期安全性決定式IFの与え方について説明した後、パラメータ生成装置1の詳細について説明を行う。
<格子強度係数GL、解読時間評価式EF、条件式ED>
ここでは、まず、格子強度係数GL、解読時間評価式EF、復号エラーが発生しないパラメータの条件式EDについてその内容を説明して、その与え方について説明する。
(格子強度係数GLと解読時間評価式EF)
NTRU暗号における、LLLアルゴリズムを用いた解読時間Tの解読時間評価式EFは、NTRU暗号のパラメータdf、dg、qにより定まるものであって、パラメータdf、dg、qから計算される格子強度係数GLの値により類別される。非特許文献3には、格子強度係数GLが、NTRU暗号のパラメータdf、dg、qから、
GL=(4・pi・e・|f|・|g|/q)^(0.5)
のように導出されることが記載されている。また、非特許文献3には、その格子強度係数GLが一定ならば、そのようなパラメータdf、dg、qをもつNTRU暗号に対しては、ある定数A、Bが存在して、LLLアルゴリズムを用いた解読の解読時間TがパラメータNに対し次の解読時間評価式EFを満たすことが記載されている。
EF:log(T)≧A・N+B
ここで、log(T)は解読時間Tの自然対数である。また、piは円周率、eは自然対数の底、|f|は秘密鍵多項式fのノルム、|g|はランダム多項式gのノルムを表す。具体的には、
|f|=(2・df−1)^(0.5)
|g|=(2・dg)^(0.5)
である。
なお、非特許文献3には、上述の解読時間評価式EFにおける定数A、Bについて、パラメータNの値が小さいときの解読時間Tを実測し、その実測データを用いて近似することによりその定数A、Bの値を導けることが記載されている。
また、非特許文献4には、格子強度係数GLの値が大きくなれば、LLLアルゴリズムを用いたNTRU暗号の解読は、より難しくなることが記載されている。従って、いま、ある格子強度係数GL1の値に対し、格子強度係数GL1の値をとるようなパラメータdf、dg、qをもつNTRU暗号に対する、LLLアルゴリズムを用いた解読の解読時間Tの解読時間評価式EF1が、
EF1:log(T)≧A・N+B (A、B:定数)
で与えられているとする。すると、以上の議論により、別のパラメータdf、dg、qから導出される格子強度係数GLの値が、もし、上記の格子強度係数GL1の値よりも大きければ、その別のパラメータdf、dg、qをもつNTRU暗号の解読時間Tは、少なくとも上記の解読時間評価式EF1を満たすことが導ける。
(復号エラーが発生しないパラメータの条件式ED)
非特許文献2には、NTRU暗号の復号プロセスにおいて計算される多項式、p・r×g+f×mの全ての係数が、−q/2からq/2の範囲に収まっていれば、正しく復号処理を行うことができ、復号エラーが発生しないことが記載されている。
(格子強度係数GLと解読時間評価式EFの与え方)
まず、パラメータdf、dg、qの値を決定する。ここでは、一例として、df=34、dg=34、q=512とする。そして、このパラメータdf、dg、qから上記格子強度係数GLの値を計算し、その格子強度係数GLを、予め式格納部110に与えておく。上記例では、格子強度係数GLはGL=2.12となる。
次に、解読時間評価式EFとして、上記格子強度係数GLの値に対し、その値をとるパラメータdf、dg、qをもつNTRU暗号の解読時間Tの解読時間評価式EFを、以下のようにして求め、予め式格納部110に与えておく。
すなわち、上記解読時間評価式EFは、パラメータdf、dg、qから計算される格子強度係数GLの値が2.12以上であるときには、LLLアルゴリズムを用いたNTRU暗号の解読時間Tを、少なく見積もることなく評価できる式である。
(i)パラメータNが小さいところでの解読時間Tを導出
まず、決定したパラメータdf、dg、qに対し、非特許文献3に記載の方法で、LLLアルゴリズムを用いた場合の解読時間Tの実測データを実験により求める。ここで、図2に示す解読時間Tの実測データは、1000MIPSの処理能力をもつコンピュータを用いて求めたものであり、解読時間Tの単位は秒である。なお、MIPS(Million Instruction Per Second)とは、コンピュータの処理能力を表す単位であり、1MIPSとは、1秒間に100万命令を実行できる処理能力を表す。本例ではパラメータNとして70から90までの値に対して解読時間が実測可能であったことを示している。
(ii)近似による解読時間評価式の導出
次に、(i)により導出した実測データを用い、解読時間評価式EF
EF:log(T)=A・N+B
の定数A、Bを求める。これは、例えば、X=N、Y=log(T)として、Y=A・X+Bの係数A、Bを最小二乗法により求める。
ここで、図2に示す解読時間Tの実測データの場合、定数A、Bは、概ね、A=0.093、B=−3.8となる。
基本的には、これにより導出された解読時間評価式EF
EF:log(T)=0.093N−3.8
を式格納部110に与えてもよいが、以下に詳細を述べる実施の形態1では、解読時間評価式EFにおける解読時間Tの値を、MIPSyear値として扱っている。なお、MIPSyearとはコンピュータの処理量を示す単位であり、1MIPSの処理能力を持つコンピュータが1年間で処理できる処理量が1MIPSyearである。
従って、ここでは、導出された解読時間評価式EFを、解読時間TがMIPSyear値を表す場合の式に変形する。MIPSyear値を表す解読時間Tは、
非特許文献3に記載の方法に従い、解読時間Tに、実測データを求めたコンピュータの処理能力値1000MIPSを乗じ、1年間の秒数31557600(1年間=365.25日)で割ることにより求められる。
すなわち、T’=1000T/31557600とし、上述の解読時間評価式EFに代入することにより、次のように変形した解読時間評価式EFを求めることができる。変形後の解読時間評価式EFは、式格納部110に与えられる。
EF:log(T’)=0.093N−14.2
なお、最小二乗法は周知の技術である。このため、その詳細な説明はここでは繰返さない。
(復号エラーが発生しないパラメータの条件式EDの与え方)
次に、条件式EDの与え方について述べる。
まず、p=3とし、dg>dとする。このpの値は、NTRU暗号のパラメータの典型的な値である。
このとき、条件式ED
ED:6・d+2・d・f−1<q/2
を予め式格納部110に与えておく。この条件式は、理論的に復号エラーが発生しないパラメータの条件式である。
以下に、その理由について説明する。
まず、上述したように、多項式p・r×g+f×mの全ての係数が、−q/2からq/2の範囲に収まっていれば、復号エラーは発生しない。
このとき、多項式r×gを考えると、多項式の積は、非特許文献2に記載の通り、多項式aのk次の係数をa(k)で表すと、
(r×g)(k)
=r(0)・g(k)+r(1)・g(k−1)+...
+r(N−1)・g(k−(N−1)(mod N))
である。そして、乱数多項式rは、d個の係数が「1」であり、かつd個の係数が「−1」であり、かつ他の係数は「0」となる多項式である。そして、ランダム多項式gは、dg個の係数が「1」であり、かつdg個の係数が「−1」であり、かつ他の係数は「0」となる多項式である。
従って、多項式r×gのk次の係数(r×g)(k)の値は、dg>dであるので、
(r×g)(k)
=1・g(i1)+1・g(i2)+...+1・g(id)
−1・g(j1)−1・g(j2)−...−1・g(jd)
というように、d個の1・g(in)という項(1≦n≦d)とd個の−1・g(jn)という項(1≦n≦d)とで表される。
よって、(r×g)(k)は、g(in)が全て1であり(1≦n≦d)、かつg(jn)が全て−1であるようなとき(1≦n≦d)最大値を取り、その値は、高々2dである(最小値も、せいぜい−2dである。)。
同様に、多項式f×mのk次の係数の値も、その値は高々2df−1である(最小値も、せいぜい−2df+1である。)。
今、p=3であるので、以上により、多項式p・r×g+f×mの最も大きい係数の値は、高々3・2d+2df−1である。そして、最も大きい係数がq/2を超えなければ、多項式p・r×g+f×mの全ての係数は、−q/2からq/2の範囲に収まっていることになるので、復号エラーは発生しない。
従って、以下の条件式EDが導かれる。
ED:6・d+2・d・f−1<q/2
この条件式を満たせば、以上の議論から復号エラーは理論的に発生しない。
<初期安全性決定式IF>
詳細は後述するが、パラメータ生成装置1は、まず、総当り探索の解読に対し安全であるパラメータdf、dg、dを選ぶために、第1のパラメータ生成部102において、安全性レベル情報SLIに応じた十分大きい値であるパラメータNを選ぶ必要がある。
ここでは、そのために、初期安全性決定式IFの一例として、非特許文献3に挙げられている、df=61、dg=20、q=128の場合のNTRU暗号におけるLLLアルゴリズムによる解読に必要な解読時間の評価式を用いる。すなわち、初期安全性決定式IFは、
IF:log(T)=0.2002N−18.884
で示される。そして、この初期安全性決定式IFを、式格納部110へ与えておく。
初期安全性決定式IFは、df=61、dg=20、q=128の場合のNTRU暗号における、LLLアルゴリズムによる解読に必要な解読時間の評価式であるlog(T)=0.2002N−7.608という式を、TがMIPSyearを表すように変換した式である。
次に、パラメータ生成装置1の詳細について説明を行う。
<パラメータ生成装置1の構成>
パラメータ生成装置1は、図1に示すように、入力部101と、第1のパラメータ生成部102と、第2のパラメータ生成部103と、第3のパラメータ生成部104と、安全性判定部105と、安全性増加部106と、出力部107と、第1のパラメータ変更部108と、第2のパラメータ変更部109と、式格納部110とを備えている。以下にそれぞれの構成要素について説明する。
(1)入力部101
入力部101は、外部から安全性レベル情報SLIを受け取り、安全性レベル情報SLIを第1のパラメータ生成部102と第2のパラメータ生成部103と安全性増加部106と第2のパラメータ変更部109とに出力する。
ここで、安全性レベル情報SLIとは、達成すべき暗号の安全性レベルを表す情報であり、例えば、暗号の安全性が1024ビットRSA暗号に相当する安全性レベルであることを示す情報である。ここでは、一例として、安全性レベル情報SLIは、暗号解読アルゴリズムの処理量とする。SLIは(10^12)MIPSyearであるとして以降の説明を行う。
(2)第1のパラメータ生成部102
第1のパラメータ生成部102は、入力部101から安全性レベル情報SLIを受け取り、式格納部110から初期安全性決定式IFを読み取り、安全性レベル情報SLIに応じた十分大きい値である、NTRU暗号のパラメータNを選ぶ。そして、第1のパラメータ生成部102は、選んだパラメータNに対し、パラメータpをp=3とし、その他のパラメータq、df、dg、dの値を仮に0として、パラメータ組PS=(N,p,q,df,dg,d)を生成して第2のパラメータ生成部103へ出力する。
具体的には、パラメータNは、初期安全性決定式IFの値が安全性レベル情報SLIの表す安全性レベルとなるようにパラメータNを選ぶ。
例えば、安全性レベル情報SLIが(10^12)MIPSyearであり、式格納部110に格納されている初期安全性決定式IFが
IF:log(T)=0.2002N−18.884
であるとき、安全性レベル情報SLIをTに代入した結果
IF:log(10^12)=0.2002N−18.884
を計算することにより、N=233が導出される。
(3)第2のパラメータ生成部103
第2のパラメータ生成部103は、第1のパラメータ生成部102または第1のパラメータ変更部108からパラメータ組PSを受け取り、入力部101から安全性レベル情報SLIを受け取る。第2のパラメータ生成部103は、パラメータ組PSの中のパラメータNに基づき後述する方法によりパラメータ候補集合DSを導出する。第2のパラメータ生成部103は、後述する方法によりパラメータ候補集合DSの要素数がパラメータdf、dg、dを選ぶのに不十分か否か(例えば、要素数が3以上か否か)を判別する。不十分であれば、第2のパラメータ生成部103は、パラメータ組PSを第1のパラメータ変更部108へ出力する。十分であれば、第2のパラメータ生成部103は、パラメータdf、dg、dをパラメータ候補集合DSから選択する。第2のパラメータ生成部103は、これらのパラメータdf、dg、dを用いて新たにパラメータ組PS=(N,p,q,df,dg,d)を生成して、第3パラメータ生成部104へ出力する。
以下に、パラメータ候補集合DSの導出方法と、パラメータdf、dg、dの選択方法とについて詳細に説明する。
(i)パラメータ候補集合DSの導出方法
第2のパラメータ生成部103は、安全性レベル情報SLIとパラメータNとに対し、
(C(N,k)・C(N−k,k))^(0.5)≧SLI
を満たす整数k(1≦k≦N)のパラメータ候補集合DSを導出する。ここで、C(a,b)はa個の中からb個を選ぶ組み合わせの数である。
パラメータ候補集合DSの導出は、例えば、以下のようにして行なわれる。すなわち、第2のパラメータ生成部103は、k=1からk=N/2まで昇順にkを選択し、上記不等式の左辺に代入する。第2のパラメータ生成部103は、上述の不等式を満たすすべてのkを、パラメータ候補集合DSの要素とする。
なお、非特許文献5に記載の通り、上述の不等式の左辺は、dg=k(またはdf=k)としたときには、NTRU暗号の秘密鍵を総当りで探索する暗号解読の解読時間を示し、d=kとしたときには、NTRU暗号の平文を総当りで探索する暗号解読の解読時間を示す。すなわち、ここでは、パラメータ候補集合DSの中からパラメータdf、dg、dを選べば、平文や秘密鍵を総当りで探索する解読の解読時間が入力部101に入力された安全性レベル情報SLIが表す安全性レベルを達成するように、パラメータ候補集合DSが導出される。
(ii)パラメータdf、dg、dの選択方法
第2のパラメータ生成部103は、パラメータdf、dg、dを、dg>dとなるように、パラメータ候補集合DSから任意に選択する。ここでは、第2のパラメータ生成部103は、df>dg>dとなるように、パラメータ候補集合DSからランダムに選択してそれぞれdf、dg、dに割り当てることとする。
なお、パラメータ候補集合DSは、十分大きいNに対しては、その要素数がパラメータdf、dg、dを選ぶのに十分な数となる。実際に、SLI=10^12とすると、N=10のときにはDSの要素は無いが、N=30のときにはDS={8,9,10,11,12}(8以上12以下の5個の整数)となり、N=100のときにはDS={4,5,6,...,50}(4以上50以下の47個の整数)となる。
(4)第3のパラメータ生成部104
第3のパラメータ生成部104は、第2のパラメータ生成部103からパラメータ組PSを受け取り、式格納部110から復号エラーが発生しないためのパラメータの条件式EDを読み取る。第3のパラメータ生成部104は、パラメータ組PSの中のパラメータdf、dg、dに対し、条件式EDを満たし、かつ、パラメータqが2の冪となるような最小のqをパラメータqとして選ぶ。第3のパラメータ生成部104は、選んだパラメータqに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成して安全性判定部105へ出力する。
例えば、df=50、dg=24、d=16で、条件式EDが
ED:6d+2df−1<(q/2)
のとき、この条件式を解くとq>294となる。この条件式q>294を満たしかつq=2^i(iは自然数)を満たす最小のqは512であるので、パラメータqは、q=512とされる。なお、パラメータqを2の冪とするのは、パラメータp(p=3)とパラメータqとを互いに素になるように選ぶためである。pとqが互いに素になることは、非特許文献2に記載の通り、NTRU暗号のパラメータp、qの条件である。
(5)安全性判定部105
安全性判定部105は、第3のパラメータ生成部104または第2のパラメータ変更部109からパラメータ組PSを受け取る。安全性判定部105は、パラメータ組PSの中のパラメータN、p、q、df、dgを持つNTRU暗号の格子強度係数SLを、パラメータdf、dg、qを用いて以下の式により導出する。
SL=(4・pi・e・|f|・|g|/q)^(0.5)
ここで、piは円周率、eは自然対数の底、|f|=(2df−1)^(0.5)、|g|=(2dg)^(0.5)を表す。
安全性判定部105は、式格納部110から格子強度係数GLを読み取り、GL≦SLならば、パラメータ組PSを安全性増加部106へ出力する。GL>SLであれば、安全性判定部105は、パラメータ組PSを第2のパラメータ変更部109へ出力する。
(6)安全性増加部106
安全性増加部106は、安全性判定部105からパラメータ組PSを受け取り、入力部101から安全性レベル情報SLIを受け取り、式格納部110より解読時間評価式EFを読み取る。安全性増加部106は、パラメータ組PSの中のパラメータNと解読時間評価式EFとからNTRU暗号の解読時間Tを導出する。
例えば、N=400、解読時間評価式EFが、
EF:log(T)=0.093N−14.2
であるとき、解読時間Tはおよそ9.7×10^9である。
安全性増加部106は、導出した解読時間Tが、安全性レベル情報SLIが表す安全性レベルを達成しているか否かを
T≧SLI
を満たすか否かによって判定する。T<SLIならば、安全性増加部106は、解読時間TがT≧SLIとなるようにパラメータNを増加させ、増加させたパラメータNに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成する。
例えば、安全性増加部106は、安全性レベル情報SLIを解読時間評価式EFのTに代入した式
EF:log(SLI)=0.040N−6.2
を計算してパラメータNを導出することにより、新たなパラメータ組PSを生成する。
安全性増加部106は、パラメータ組PSの中のパラメータNに対し、パラメータNが素数か否かを判定する。パラメータNが素数でないならば、安全性増加部106は、パラメータNを増加させて素数となるようにして、増加させたパラメータNに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成する。
例えば、PS=(450,3,512,50,24,16)の場合、パラメータNはN=450であるが素数ではないので、450を超える素数のうち最小のものである451を新たにパラメータNの値として、PS=(451,3,512,50,24,16)とする。
これは、パラメータNが合成数であると、NTRU暗号の安全性が低下することが知られているため、これを避ける目的で行われるものである。なお、素数か否かを判定する方法は、例えば、非特許文献1に記載されており、ここでの説明は繰返さない。
最後に、安全性増加部106は、パラメータ組PSを出力部107へ出力する。
(7)出力部107
出力部107は、安全性増加部106からパラメータ組PSを受け取って外部へ出力する。
(8)第1のパラメータ変更部108
第1のパラメータ変更部108は、第2のパラメータ生成部103または第2のパラメータ変更部109からパラメータ組PSを受け取り、パラメータ組PSの中のパラメータNを増加させる。ここでは、一例として、Nを10増加させるとする。そして、増加させたパラメータNに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成して第2のパラメータ生成部103へ出力する。
(9)第2のパラメータ変更部109
第2のパラメータ変更部109は、入力部101から安全性レベル情報SLIを受け取り、安全性判定部105からパラメータ組PSを受け取り、第2のパラメータ生成部103と同様にして、パラメータ候補集合DSを生成する。第2のパラメータ変更部109は、パラメータ組PSの中のパラメータdgとパラメータ候補集合DSの要素の最大値Mとを比較する。dg<Mであれば、第2のパラメータ変更部109は、パラメータdgを、パラメータ候補集合DSの要素のうち、より大きい値に変更し、変更したパラメータdgに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成して安全性判定部105へ出力する。dg≧Mであれば、第2のパラメータ変更部109は、パラメータ組PSを第1パラメータ変更部108へ出力する。
(10)式格納部110
式格納部110は、図3に示すように、予め、格子強度係数GL、解読時間評価式EF、復号エラーが発生しないパラメータの条件式ED、および初期安全性決定式IFを格納している。ここでは、上述のとおり、格子強度係数GLとして、
GL=2.12
解読時間評価式EFとして
EF:log(T)=0.93N−14.2
条件式EDとして、
ED:6d+2df−1<(q/2)
初期安全性決定式IFとして
IF:log(T)=0.2002N−18.884
が、予め与えられているものとする。
ここで、上記解読時間評価式EFは、上述したとおり、パラメータdf、dg、qから計算される格子強度係数の値が、上記格子強度係数GLの値以上であるとき(この場合は2.12以上であるとき)に、LLLアルゴリズムを用いた解読の解読時間Tを、少なく見積もることなく評価できる式である。
また、条件式EDは、上述したとおり、NTRU暗号において、復号エラーが発生しないためのパラメータ条件を表す式である。初期安全性決定式IFは、まず、総当り探索の解読に対し安全であるパラメータdf、dg、dを選ぶために、第1のパラメータ生成部102において、安全性レベル情報SLIに応じた十分大きい値であるパラメータNを選ぶために用いられる式である。
<パラメータ生成装置1の動作>
以上に述べたパラメータ生成装置1の動作について、図4、図5に示すフローチャートを用いて説明する。
パラメータ生成装置1は、あるパラメータのNTRU暗号の格子強度係数GL、その格子強度係数GLを持つNTRU暗号の解読時間評価式EF、および復号エラーが発生しないパラメータの条件式EDが予め与えられており、外部より安全性レベル情報SLIが入力されると、以下の処理を行う。
入力部101は、外部から安全性レベル情報SLIを受け取り、安全性レベル情報SLIを第1のパラメータ生成部102と第2のパラメータ生成部103と安全性増加部106と第2のパラメータ変更部109とに出力する(ステップS101)。
第1のパラメータ生成部102は、入力部101から安全性レベル情報SLIを受け取り、式格納部110から初期安全性決定式IFを読み取り、安全性レベル情報SLIに応じた十分大きい値である、NTRU暗号のパラメータNを選ぶ(ステップS102)。
第1のパラメータ生成部102は、選ばれたパラメータNに対し、パラメータp=3とし、その他のパラメータq、df、dg、dの値を仮に0として、パラメータ組PS=(N,p,q,df,dg,d)を生成して第2のパラメータ生成部103へ出力する(ステップS103)。
第2のパラメータ生成部103は、第1のパラメータ生成部102または第1のパラメータ変更部108からパラメータ組PSを受け取り、入力部101から安全性レベル情報SLIを受け取る(ステップS104)。
第2のパラメータ生成部103は、パラメータ候補集合DSを生成する(ステップS105)。
第2のパラメータ生成部103は、DSの要素数がパラメータdf、dg、dを選ぶのに不十分か否かを判別する(ステップS106)。
DSの要素数が不十分であれば(ステップS106でYes)、第2のパラメータ生成部103は、パラメータ組PSを第1パラメータ変更部108へ出力する。(ステップS107)。
第1のパラメータ変更部108は、第2のパラメータ生成部103または第2のパラメータ変更部109からパラメータ組PSを受け取り、パラメータ組PSの中のパラメータNを増加させ、増加させたパラメータNに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成して第2のパラメータ生成部103へ出力する。そして、処理をステップS104へ移す(ステップS108)。
DSの要素数が十分であれば(ステップS106でNo)、第2のパラメータ生成部103は、パラメータ候補集合DSの要素からパラメータdf、dg、dを選び、選んだパラメータdf、dg、dに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成して第3パラメータ生成部104へ出力する(ステップS109)。
第3のパラメータ生成部104は、第2のパラメータ生成部103からパラメータ組PSを受け取り、式格納部110から復号エラーが発生しないパラメータの条件式EDを読み取る(ステップS110)。
第3のパラメータ生成部104は、パラメータ組PSの中のパラメータdf、dg、dに対し、条件式EDを満たし、かつ、パラメータqが2の冪となるような最小のqをパラメータqとして選び、選んだパラメータqに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成して安全性判定部105へ出力する(ステップS111)。
安全性判定部105は、第3のパラメータ生成部104または第2のパラメータ変更部109からパラメータ組PSを受け取り、パラメータ組PSの中のパラメータN、p、q、df、dgをもつNTRU暗号の格子強度係数SLを導出する(ステップS112)。
安全性判定部105は、式格納部110から格子強度係数GLを読み取り、GL≦SLを満たすか否かを判定する(ステップS113)。
GL≦SLの場合には(ステップS113でYes)、安全性判定部105は、パラメータ組PSを安全性増加部106へ出力する(ステップS114)。
安全性増加部106は、安全性判定部105からパラメータ組PSを受け取り、入力部101から安全性レベル情報SLIを受け取り、式格納部110より解読時間評価式EFを読み取る(ステップS115)。
安全性増加部106は、パラメータ組PSの中のパラメータNと解読時間評価式EFとからNTRU暗号の解読時間Tを導出する(ステップS116)。
安全性増加部106は、導出した解読時間Tが、T<SLIを満たすか否かを判断する(S117)。
T<SLIであれば(ステップS117でYes)、安全性増加部106は、解読時間TがT≧SLIとなるようにパラメータNを増加させ、増加させたパラメータNに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成する(ステップS118)。
T≧SLIであるか(ステップS117でNo)、ステップS118の処理の後、安全性増加部106は、パラメータNが素数であるか否かを判断する(ステップS119)。
パラメータNが素数でなければ(ステップS119でNo)、安全性増加部106は、パラメータNを増加させ、増加させたパラメータNが素数となるようにし、増加させたパラメータNに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成する(ステップS120)。
パラメータNが素数であるか(ステップS119でYes)、パラメータNを素数にする処理(ステップS120)の後、安全性増加部106は、パラメータ組PSを出力部107へ出力する(ステップS121)。
出力部107は、安全性増加部106からパラメータ組PSを受け取り、パラメータ組PSを外部へ出力して処理を終了する(ステップS122)。
GL>SLの場合には(ステップS113でNo)、第2のパラメータ変更部109は、入力部101から安全性レベル情報SLIを受け取り、安全性判定部105からパラメータ組PSを受け取り、パラメータ候補集合DSを生成する(ステップS123)。
第2のパラメータ変更部109は、パラメータ組PSの中のパラメータdgとパラメータ候補集合DSの要素の最大値Mとを比較する(ステップS124)。
dg<Mであれば(ステップS124でYes)、第2のパラメータ変更部109は、パラメータdgを、パラメータ候補集合DSの要素のうち、より大きい値に変更し、変更したパラメータdgに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成し、パラメータ組PSを安全性判定部105へ出力する(ステップS125)。その後、処理をステップS112へ移す。
dg≧Mであれば(ステップS124でNo)、第2のパラメータ変更部109は、パラメータ組PSを第1のパラメータ変更部108へ出力する(ステップS126)。その後、処理をステップS108へ移す。
<パラメータ生成装置1の動作検証>
以下に、実施の形態1におけるパラメータ生成装置1の全体の動作について説明する。
まず、第1のパラメータ生成部102が、安全性レベル情報SLIに応じた十分大きい値である、パラメータNを選んでいる(ステップS102)。
そして、第2のパラメータ生成部103が、NTRU暗号を総当りで探索する解読に対し、安全性レベル情報SLIの表す安全性レベルを達成するパラメータ候補集合DSを生成している(ステップS105)。また、第2のパラメータ生成部103が、このパラメータ候補集合DSの要素から、安全性レベル情報SLIの表す安全性レベルを達成するパラメータdf、dg、dを選んでいる(ステップS109)。
なお、パラメータ候補集合DSの要素数が不十分な場合は、第1のパラメータ変更部108が、パラメータNを増加させている(ステップS108)。上述したように、一般に、パラメータNが増加すれば、パラメータ候補集合DSの要素数も大きくなるので、必ずパラメータdf、dg、dは選ぶことができる。
そして、第3のパラメータ生成部104が、復号エラーが発生しないパラメータの条件式EDを満たすように、パラメータqを選ぶことにより、パラメータ組PS=(N,p,q,df,dg,d)の値が決まる(ステップS111)。
ここで、パラメータqの値は、条件式EDを満たすように選ぶと、同程度のパラメータdf、dg、dをもつ、非特許文献2や非特許文献3に記載のNTRU暗号におけるパラメータqに比べ、一般に大きくなる。すなわち、格子強度係数GLの値が小さくなるので、同程度のパラメータdf、dg、dをもつ非特許文献2や非特許文献3に記載のNTRU暗号に比べ、LLLアルゴリズムによる解読に対する安全性レベル(解読時間)が下がる可能性がある。
従って、予め格納されている格子強度係数GLに基づき、安全性判定部105が、生成されたパラメータ組PSをもつNTRU暗号の解読時間が、その格子強度係数GLに基づく解読時間評価式EFで評価可能か否かを判断する(ステップS113)。評価可能であれば、安全性増加部106が、安全性レベル情報SLIの表す安全性レベルを達成するようにパラメータNを増加させている(ステップS118)。
なお、NTRU暗号の解読時間が、その格子強度係数GLに基づく解読時間評価式EFで評価不可能であると判断された場合には、第2のパラメータ変更部109が、パラメータdgをより大きい値にすることにより(ステップS125)、そのパラメータをもつNTRU暗号の格子強度係数の値を大きくして、解読時間評価式EFで評価できるようにする。そのようにしても、解読時間評価式EFで評価できない場合には、第1のパラメータ変更部108が、パラメータNを増加させ(ステップS108)、もう一度パラメータdf、dg、d、qの生成を行うようにしている(ステップS109以降)。
今、パラメータNを大きくとれば、一般にパラメータ候補集合DSは大きい要素をもつようになる。よって、ステップS109で、パラメータdf、dg、dをもう一度選び直すときには、パラメータdf、dの値を変えずに、パラメータdgのみ値を大きくとることができる。そして、パラメータdgの値は、復号エラー発生の条件式には関与しないので、復号エラーが発生しないことを保証したまま、格子強度係数GLの値を大きくして、解読時間評価式EFで評価できるようにすることが可能となる。
以上により、高々有限回の繰り返し回数で、総当りの探索による解読とLLLアルゴリズムによる解読とに対し、入力された安全性レベル情報SLIの表す安全性を達成し、かつ、復号エラーが発生しないNTRU暗号のパラメータ組PSを生成することができる。
<実施の形態1における効果>
従来の技術では、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないNTRU暗号のパラメータを生成するための条件が知られておらず、そのようなNTRU暗号のパラメータを生成できなかった。そのため、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができなかった。
しかしながら、このパラメータ生成装置は、上述したように、理論的に復号エラーが発生しないようにパラメータqを決定し、また入力された安全性レベルを達成するようにパラメータNを決定するようにしたので、安全かつ理論的に復号エラーが発生しないNTRU暗号のパラメータを生成できるようになった。
(実施の形態2)
本発明の実施の形態2に係るパラメータ変換装置2について、実施の形態1に係るパラメータ生成装置1との差異点を中心に説明する。
<パラメータ変換装置2の概要>
最初に、図6を用いて本実施の形態の概要を説明する。
このパラメータ変換装置2は、実施の形態1におけるパラメータ生成装置1を変形して構成したパラメータ変換装置である。パラメータ変換装置2は、NTRU暗号のパラメータ組IPSを入力としたとき、パラメータ組IPSを、総当りの探索による解読とLLLアルゴリズムによる解読とに対し、入力された安全性レベル情報SLIを達成し、かつ復号エラーが発生しないNTRU暗号のパラメータ組PSへ変換して出力する点が、パラメータ生成装置1と異なる。
なお、実施の形態1におけるパラメータ生成装置1と同様にして、あるパラメータに対するNTRU暗号の格子強度係数GL、その格子強度係数GLを持つNTRU暗号の解読時間評価式EF、および復号エラーが発生しないパラメータの条件式EDが予め与えられている。
<パラメータ変換装置2の構成>
パラメータ変換装置2は、図6に示すように、入力部101bと、第2のパラメータ生成部103bと、第3のパラメータ生成部104bと、安全性判定部105と、安全性増加部106と、出力部107と、第1のパラメータ変更部108と、第2のパラメータ変更部109と、式格納部110とを備える。
このパラメータ変換装置2は、入力部101bが異なることと、第1のパラメータ生成部が存在しないことと、第2のパラメータ生成部103bの入出力が異なることと、および第3のパラメータ生成部104bの入出力が異なることとが、実施の形態1におけるパラメータ生成装置1と異なる。
ここでは、パラメータ生成装置1との差異点を中心に説明を行う。
(1)入力部101b
入力部101bは、外部から安全性レベル情報SLIとNTRU暗号のパラメータ組IPSを受け取り、安全性レベル情報SLIを第2のパラメータ生成部103bと安全性増加部106と第2のパラメータ変更部109とに出力する。また、入力部101bは、パラメータ組IPSをパラメータ組PSとして第3のパラメータ生成部104bへ出力する。
(2)第2のパラメータ生成部103b
第2のパラメータ生成部103bは、第1のパラメータ変更部108からパラメータ組PSを受け取り、入力部101bから安全性レベル情報SLIを受け取る。そして、第2のパラメータ生成部103bは、第2のパラメータ生成部103と同様にして、パラメータ候補集合DSを生成する。そして、第2のパラメータ生成部103bは、第2のパラメータ生成部103と同様にして、パラメータ候補集合DSの要素数がパラメータdf、dg、dを選ぶのに不十分か否か(例えば、要素数が3以上か否か)を判別し、不十分であれば、パラメータ組PSを第1パラメータ変更部108へ出力する。不十分でなければ、第2のパラメータ生成部103bは、パラメータdf、dg、dを、パラメータ候補集合DSから選び、選んだパラメータdf、dg、dに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成してパラメータ組PSを第3パラメータ生成部104bへ出力する。
(3)第3のパラメータ生成部104b
第3のパラメータ生成部104bは、入力部101bまたは第2のパラメータ生成部103bからパラメータ組PSを受け取り、式格納部110から復号エラーが発生しないパラメータの条件式EDを読み取る。そして、第3のパラメータ生成部104bは、第3のパラメータ生成部104と同様にして、パラメータ組PSの中のパラメータdf、dg、dに対し、条件式EDを満たし、かつ、パラメータqが2の冪となるような最小のqをパラメータqとして選ぶ。そして、第3のパラメータ生成部104bは、選んだパラメータqに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成し、パラメータ組PSを安全性判定部105へ出力する。
<パラメータ変換装置2の動作>
以上に述べたパラメータ変換装置2の動作について、図7、図8に示すフローチャートを用いて説明する。
パラメータ変換装置2には、実施の形態1のパラメータ生成装置1と同様にして、あるパラメータのNTRU暗号の格子強度係数GL、その格子強度係数GLを持つNTRU暗号の解読時間評価式EF、および復号エラーが発生しないパラメータの条件式EDが予め与えられている。パラメータ変換装置2は、外部より安全性レベル情報SLIおよびNTRU暗号のパラメータ組IPSが入力されると、以下の処理を行う。
入力部101bは、外部から安全性レベル情報SLIとNTRU暗号のパラメータ組IPSを受け取る。入力部101bは、安全性レベル情報SLIを第2のパラメータ生成部103bと安全性増加部106と第2のパラメータ変更部109とに出力する。また、入力部101bは、パラメータ組IPSをパラメータ組PSとして第3のパラメータ生成部104bへ出力し、処理をステップS210へ移す(ステップS201)。
第2のパラメータ生成部103bは、第1のパラメータ変更部108からパラメータ組PSを受け取り、入力部101bから安全性レベル情報SLIを受け取る(ステップS204)。
第2のパラメータ生成部103bは、パラメータ候補集合DSを生成する(ステップS205)。
第2のパラメータ生成部103bは、パラメータ候補集合DSの要素数がパラメータdf、dg、dを選ぶのに不十分か否かを判別する(ステップS206)。
パラメータ候補集合DSの要素数が不十分であれば(ステップS206でYes)、第2のパラメータ生成部103bは、パラメータ組PSを第1パラメータ変更部108へ出力する(ステップS207)。
第1のパラメータ変更部108は、第2のパラメータ生成部103bまたは第2のパラメータ変更部109からパラメータ組PSを受け取る。第1のパラメータ変更部108は、パラメータ組PSの中のパラメータNを増加させ、増加させたパラメータNに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成して第2のパラメータ生成部103bへ出力する。そして、処理をステップS204へ移す(ステップS208)。
パラメータ候補集合DSの要素数が十分であれば(ステップS206でNo)、第2のパラメータ生成部103bは、パラメータ候補集合DSの要素からパラメータdf、dg、dを選ぶ。第2のパラメータ生成部103bは、選んだパラメータdf、dg、dに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成して第3パラメータ生成部104bへ出力する(ステップS209)。
第3のパラメータ生成部104bは、入力部101bからパラメータ組PSを受け取り、式格納部110から復号エラーが発生しないパラメータの条件式EDを読み取る(ステップS210)。
第3のパラメータ生成部104bは、パラメータ組PSの中のパラメータdf、dg、dに対し、条件式EDを満たし、かつ、パラメータqが2の冪となるような最小のqをパラメータqとして選ぶ。第3のパラメータ生成部104bは、選んだパラメータqに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成して安全性判定部105へ出力する(ステップS211)。
安全性判定部105は、第3のパラメータ生成部104bまたは第2のパラメータ変更部109からパラメータ組PSを受け取り、パラメータ組PSの中のパラメータN、p、q、df、dgをもつNTRU暗号の格子強度係数SLを導出する(ステップS212)。
安全性判定部105は、式格納部110から格子強度係数GLを読み取り、GL≦SLを満たすか否かを判定する(ステップS213)。
GL≦SLであれば(ステップS213でYes)、安全性判定部105は、パラメータ組PSを安全性増加部106へ出力する(ステップS214)。
安全性増加部106は、安全性判定部105からパラメータ組PSを受け取り、入力部101bから安全性レベル情報SLIを受け取り、式格納部110より解読時間評価式EFを読み取る(ステップS215)。
安全性増加部106は、パラメータ組PSの中のパラメータNと解読時間評価式EFとからNTRU暗号の解読時間Tを導出する(ステップS216)。
安全性増加部106は、導出した解読時間Tが、T<SLIを満たすか否かを判断する(ステップS217)。
T<SLIであれば(ステップS217でYes)、安全性増加部106は、解読時間TがT≧SLIとなるようにパラメータNを増加させ、増加させたパラメータNに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成する(ステップS218)。
T≧SLIであるか(ステップS217でNo)、ステップS218の処理の後、安全性増加部106は、パラメータNが素数であるか否かを判断する(ステップS219)。
パラメータNが素数でなければ(ステップS219でNo)、安全性増加部106は、パラメータNを増加させ、増加させたパラメータNが素数となるようにし、増加させたパラメータNに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成する(ステップS220)。
パラメータNが素数であるか(ステップS219でYes)、パラメータNを素数にする処理(ステップS220)の後、安全性増加部106は、パラメータ組PSを出力部107へ出力する(ステップS221)。
出力部107は、安全性増加部106からパラメータ組PSを受け取り、パラメータ組PSを外部へ出力して処理を終了する(ステップS222)。
GL>SLの場合には(ステップS213でNo)、第2のパラメータ変更部109は、入力部101bから安全性レベル情報SLIを受け取り、安全性判定部105からパラメータ組PSを受け取り、パラメータ候補集合DSを生成する(ステップS223)。
第2のパラメータ変更部109は、パラメータ組PSの中のパラメータdgとパラメータ候補集合DSの要素の最大値Mとを比較する(ステップS224)。
dg<Mであれば(ステップS224でYes)、第2のパラメータ変更部109は、パラメータdgを、パラメータ候補集合DSの要素のうち、より大きい値に変更し、変更したパラメータdgに対し、新たにパラメータ組PS=(N,p,q,df,dg,d)を生成し、パラメータ組PSを安全性判定部105へ出力する(ステップS225)。その後、処理をステップS212へ移す。
dg≧Mであれば(ステップS224でNo)、第2のパラメータ変更部109は、パラメータ組PSを第1のパラメータ変更部108へ出力する(ステップS226)。その後、処理をステップS208へ移す。
<パラメータ変換装置2の動作検証>
以下に、実施の形態2におけるパラメータ変換装置2の全体の動作について説明する。
まず、入力部101bが、入力されたNTRU暗号のパラメータ組IPSをパラメータ組PSとして第3のパラメータ生成部104bに出力している(ステップS201)。
そして、第2のパラメータ生成部103bは、実施の形態1と同様にして、NTRU暗号を総当りで探索する解読に対し、安全性レベル情報SLIの表す安全性レベルを達成するパラメータ候補集合DSを生成する(ステップS205)。
そして、第3のパラメータ生成部104bが、復号エラーが発生しないパラメータの条件式EDを満たすように、パラメータqを選ぶことにより、パラメータ組PS=(N,p,q,df,dg,d)の値が決まる(ステップS211)。
ここで、実施の形態1と同様に、パラメータqの値を、条件式EDを満たすように選ぶと、LLLアルゴリズムによる解読に対する安全性レベル(解読時間)が下がる可能性がある。このため、安全性判定部105が、予め格納されている格子強度係数GLに基づき、生成されたパラメータ組PSをもつNTRU暗号の解読時間が、その格子強度係数GLに基づく解読時間評価式EFで評価可能か否かを判断する(ステップS213)。評価可能であれば、安全性増加部106が、安全性レベル情報SLIの表す安全性レベルを達成するようにパラメータNを増加させている(ステップS218)。
なお、評価できない場合には、第2のパラメータ変更部109が、パラメータdgをより大きい値にすることにより(ステップS225)、そのパラメータをもつNTRU暗号の格子強度係数の値を大きくして、解読時間評価式EFで評価できるようにする。そうしても評価できない場合には、第1のパラメータ変更部108が、パラメータNを増加させ(ステップS208)、もう一度パラメータdf、dg、d、qの生成を行うようにしている(ステップS209以降)。
今、パラメータNを大きくとれば、一般にパラメータ候補集合DSは大きい要素をもつようになる。よって、パラメータdf、dg、dをもう一度選び直すときには(ステップS209)、パラメータdf、dの値を変えずに、パラメータdgのみ値を大きくとることができる。そして、パラメータdgの値は、復号エラー発生の条件式には関与しないので、復号エラーが発生しないことを保証したまま、安全強度指標GLの値を大きくして、解読時間評価式EFで評価できるようにすることが可能となる。
以上により、高々有限回の繰り返し回数で、入力されたNTRU暗号のパラメータIPSを、総当りの探索による解読とLLLアルゴリズムによる解読に対し、入力された安全性レベル情報SLIの表す安全性レベルを達成し、かつ、復号エラーが発生しないNTRU暗号のパラメータ組PSに変換することができる。
<実施の形態2における効果>
従来の技術では、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないNTRU暗号のパラメータを生成するための条件が知られておらず、そのようなNTRU暗号のパラメータを生成できなかった。そのため、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができなかった。
しかしながら、このパラメータ変換装置は、上述したように、入力されたNTRU暗号のパラメータに対し、理論的に復号エラーが発生しないようにパラメータqを決定し、また入力された安全性レベルを達成するようにパラメータNを決定するようにしたので、安全でかつ理論的に復号エラーが発生しないNTRU暗号のパラメータに変換できるようになった。
(実施の形態3)
本発明に係る実施の形態3としての暗号システム3について説明する。
<暗号システム3の構成>
この暗号システム3は、図11に示すように、暗号装置31、復号装置32、および通信路33から構成され、実施の形態1におけるパラメータ生成装置1または実施の形態2におけるパラメータ変換装置2によって生成された、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないNTRU暗号のパラメータを利用して、暗号化通信を行うシステムである。
<暗号装置31の構成>
暗号装置31は、平文多項式mを暗号化し、暗号文多項式cを生成する装置であり、図12に示すように、パラメータ記憶部311、公開鍵記憶部312、および暗号化部313を備える。
(1)パラメータ記憶部311
パラメータ記憶部311は、実施の形態1におけるパラメータ生成装置1または実施の形態2におけるパラメータ変換装置2によって生成されたNTRU暗号のパラメータである、パラメータN、パラメータp、パラメータq、パラメータdf、パラメータdg、パラメータdを、予め記憶している。
(2)公開鍵記憶部312
公開鍵記憶部312は、予め復号装置32の公開鍵多項式hを取得し、記憶している。
この公開鍵多項式hは、パラメータNに対し、(N−1)次元以下の多項式で表される多項式である。
(3)暗号化部313
暗号化部313は、パラメータ記憶部311からパラメータN、パラメータp、パラメータq、パラメータdを受け取り、公開鍵記憶部312から、公開鍵多項式hを受け取り、外部から、パラメータNに対し、(N−1)次元以下の多項式で表される平文多項式mを受け取る。
暗号化部313は、パラメータN、パラメータdを用いて、d個の係数が「1」であり、かつd個の係数が「−1」であり、かつ他の係数は「0」となるように、(N−1)次元の乱数多項式rをランダムに選ぶ。
暗号化部313は、平文多項式mに対し、乱数多項式r、公開鍵多項式h、パラメータN、パラメータp、パラメータqを用いて、NTRU暗号の暗号化処理を行い、暗号文多項式cを計算する。
この暗号文多項式cの演算方法の詳細は、非特許文献2に記載されているため、ここでは説明を省略する。暗号化部313は、生成された暗号文多項式cを通信路33を介して復号装置32へ送信する。
<復号装置32の構成>
復号装置32は、暗号文多項式cを復号化し、復号文多項式m’を計算する装置であり、図13に示すように、パラメータ記憶部321、鍵生成部322、秘密鍵記憶部323、復号化部324とを備える。
(1)パラメータ記憶部321
パラメータ記憶部321は、暗号装置31のパラメータ記憶部311が記憶するNTRU暗号のパラメータと同じNTRU暗号のパラメータを記憶している。
すなわち、パラメータ記憶部321は、パラメータ記憶部311が記憶するものと同じパラメータN、パラメータp、パラメータq、パラメータdf、パラメータdg、パラメータdを、予め記憶している。
(2)鍵生成部322
鍵生成部322は、パラメータ記憶部321からパラメータN、パラメータp、パラメータq、パラメータdf、パラメータdgを受け取り、パラメータN、パラメータp、パラメータq、パラメータdf、パラメータdgを用いて、(N−1)次元以下の多項式で表される秘密鍵多項式f、および公開鍵多項式hを生成する。なお、この秘密鍵多項式fおよび公開鍵多項式hの生成方法は、非特許文献2に記載されているため、ここでは説明を省略する。
そして、鍵生成部322は、公開鍵多項式hを公開することにより暗号装置31が取得できるようにする。また、鍵生成部322は、秘密鍵多項式fを秘密鍵記憶部323に記憶する。
(3)秘密鍵記憶部323
秘密鍵記憶部323は、予め復号装置32の秘密鍵多項式fを記憶している。
この秘密鍵多項式fは、パラメータNに対し、(N−1)次元以下の多項式で表される多項式である。
(4)復号化部324
復号化部324は、パラメータ記憶部321から、パラメータN、パラメータp、パラメータqを受け取り、秘密鍵記憶部323から、秘密鍵多項式fを受け取り、通信路33を介して暗号装置31から暗号文多項式cを受け取る。
復号化部324は、暗号文多項式cに対し、秘密鍵多項式f、パラメータN、パラメータp、パラメータqを用いて、NTRU暗号の復号化処理を行い、復号文多項式m’を計算する。このNTRU暗号の復号化処理の詳細は、非特許文献2に記載されているため、ここでは説明を省略する。
復号化部324は、生成した復号文多項式m’を外部へ出力する。
<暗号システム3の動作>
以上に述べた暗号システム3の動作について説明する。図14は、暗号システム3の動作を示すフローチャートである。
暗号システム3は、実施の形態1におけるパラメータ生成装置1または実施の形態2におけるパラメータ変換装置2によって生成された、NTRU暗号のパラメータのうち、少なくともパラメータN、パラメータp、パラメータq、パラメータdを暗号装置31のパラメータ記憶部311に記憶しており、少なくともパラメータN、パラメータp、パラメータq、パラメータdf、パラメータdgを復号装置32のパラメータ記憶部321に記憶している(ステップS301)。
復号装置32の鍵生成部322は、パラメータ記憶部321からパラメータN、パラメータp、パラメータq、パラメータdf、パラメータdgを受け取る。鍵生成部322は、秘密鍵多項式f、および公開鍵多項式hを生成して、公開鍵多項式hを公開することにより暗号装置31が取得できるようにする。また、鍵生成部322は、秘密鍵多項式fを秘密鍵記憶部323に記憶する(ステップS302)。
暗号装置31の公開鍵記憶部312は、復号装置32の公開鍵多項式hを取得し、記憶する(ステップS303)。
暗号装置31の暗号化部313は、パラメータ記憶部311からパラメータN、パラメータp、パラメータq、パラメータdを受け取り、公開鍵記憶部312から、公開鍵多項式hを受け取り、外部から、パラメータNに対し、(N−1)次元以下の多項式で表される平文多項式mを受け取る(ステップS304)。
暗号装置31の暗号化部313は、パラメータN、パラメータdを用いて、d個の係数が「1」であり、かつd個の係数が「−1」であり、かつ他の係数は「0」となるように、(N−1)次元の乱数多項式rをランダムに選ぶ。暗号化部313は、平文多項式mに対し、乱数多項式r、公開鍵多項式h、パラメータN、パラメータp、パラメータqを用いて、NTRU暗号の暗号化処理を行い、暗号文多項式cを計算する(ステップS305)。
暗号装置31の暗号化部313は、暗号文多項式cを通信路33を介して復号装置32へ送信する(ステップS306)。
復号装置32の復号化部324は、パラメータ記憶部321から、パラメータN、パラメータp、パラメータqを受け取り、秘密鍵記憶部323から、秘密鍵多項式fを受け取り、通信路33を介して暗号装置31から暗号文多項式cを受け取る(ステップS307)。
復号装置32の復号化部324は、暗号文多項式cに対し、秘密鍵多項式f、パラメータN、パラメータp、パラメータqを用いて、NTRU暗号の復号化処理を行い、復号文多項式m’を計算する(ステップS308)。
復号装置32の復号化部324は、復号文多項式m’を外部へ出力して処理を終了する(ステップS309)。
<暗号システム3の動作検証>
まず、復号装置32は、実施の形態1におけるパラメータ生成装置1または実施の形態2におけるパラメータ変換装置2によって生成されたNTRU暗号のパラメータを用いて、秘密鍵多項式f、公開鍵多項式hを生成している(ステップS302)。
そして、暗号装置31が、実施の形態1におけるパラメータ生成装置1または実施の形態2におけるパラメータ変換装置2によって生成されたNTRU暗号のパラメータを用いて、平文多項式mを暗号化している(ステップS305)。
以上により、実施の形態1におけるパラメータ生成装置1または実施の形態2におけるパラメータ変換装置2によって生成されたパラメータを用いて、秘密鍵多項式f、公開鍵多項式hを生成して暗号化が行なわれる。このため、本実施の形態に係る暗号化通信では、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないことがいえる。
<実施の形態3における効果>
従来の技術では、第三者による暗号解読に対して安全であり、かつ復号エラーが発生しないNTRU暗号のパラメータを生成するための条件が知られておらず、そのようなNTRU暗号のパラメータを生成できなかった。そのため、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができなかった。
しかしながら、この暗号システムは、上述したように、実施の形態1におけるパラメータ生成装置1または実施の形態2におけるパラメータ変換装置2によって生成されたパラメータを用いて、秘密鍵多項式f、公開鍵多項式hを生成して暗号化をおこなっているため、暗号装置と復号装置との間で安全かつ確実な暗号化通信ができるようになった。
(実施の形態4)
本発明の実施の形態4に係る暗号システム4について説明する。
<暗号システム4の構成>
暗号システム4は、図15に示すように、暗号装置41、復号装置42および通信路33、43を備えている。
<暗号装置41の構成>
暗号装置41は、平文多項式mを暗号化し、暗号文多項式cを生成する装置であり、図16に示すように、パラメータ生成装置1、暗号化部313および公開鍵記憶部411を備えている。
(1)パラメータ生成装置1、暗号化部313
パラメータ生成装置1は、実施の形態1で説明したパラメータ生成装置1と同様の構成を有し、暗号化部313は、実施の形態3で説明した暗号化部313と同様の構成を有する。このため、そられの詳細な説明はここでは繰返さない。
(2)公開鍵記憶部411
公開鍵記憶部411は、復号装置42の公開鍵多項式hを受信し、記憶する記憶部である。
<通信路43の構成>
通信路43は、暗号装置41と復号装置42との間で、パラメータ組PSを送受信するために用いられるセキュアな通信路である。
<復号装置42の構成>
復号装置42は、暗号文多項式cを復号化し、復号文多項式m’を計算する装置であり、図17に示すように、パラメータ受信部421、鍵生成部422、秘密鍵記憶部323および復号化部324を備えている。
(1)パラメータ受信部421
パラメータ受信部421は、暗号装置41のパラメータ生成装置1が生成するNTRU暗号のパラメータを通信路43を介して受信する処理部である。
(2)鍵生成部422
鍵生成部422は、実施の形態3で説明した鍵生成部322の構成に加え、生成した公開鍵多項式hを、通信路33を介して暗号装置41に送信する処理部である。
(3)秘密鍵記憶部323、復号化部324
秘密鍵記憶部323および復号化部324は、実施の形態1と同様の構成を有する。このため、その詳細な説明は、ここでは繰返さない。
<暗号システム4の動作>
以上に述べた暗号システム4の動作について説明する。図18は、暗号システム4の動作を示すフローチャートである。
暗号装置41のパラメータ生成装置1は、NTRU暗号のパラメータ(パラメータN、パラメータp、パラメータq、パラメータd、パラメータdf、パラメータdgを生成する(ステップS401)。
復号装置42のパラメータ受信部421は、パラメータ生成装置1より、パラメータN、パラメータp、パラメータq、パラメータdf、パラメータdgを受信する(ステップS402)。
鍵生成部422は、パラメータ受信部421より、パラメータN、パラメータp、パラメータq、パラメータdf、パラメータdgを取得し、秘密鍵多項式f、および公開鍵多項式hを生成する。鍵生成部422は、公開鍵多項式hを暗号装置41の公開鍵記憶部411に送信する。また、鍵生成部422は、秘密鍵多項式fを秘密鍵記憶部323に記憶する(ステップS403)。
暗号装置41の公開鍵記憶部411は、復号装置32の公開鍵多項式hを取得し、記憶する(ステップS404)。
暗号装置41の暗号化部313は、パラメータ生成装置1からパラメータN、パラメータp、パラメータq、パラメータdを受け取り、公開鍵記憶部411から、公開鍵多項式hを受け取り、外部から、パラメータNに対し、(N−1)次元以下の多項式で表される平文多項式mを受け取る(ステップS405)。
暗号装置41の暗号化部313は、パラメータN、パラメータdを用いて、d個の係数が「1」であり、かつd個の係数が「−1」であり、かつ他の係数は「0」となるように、(N−1)次元の乱数多項式rをランダムに選び、平文多項式mに対し、乱数多項式r、公開鍵多項式h、パラメータN、パラメータp、パラメータqを用いて、NTRU暗号の暗号化処理を行い、暗号文多項式cを計算する(ステップS406)。
暗号装置41の暗号化部313は、暗号文多項式cを通信路33を介して復号装置42へ送信する(ステップS407)。
復号装置42の復号化部324は、パラメータ受信部421から、パラメータN、パラメータp、パラメータqを受け取り、秘密鍵記憶部323から、秘密鍵多項式fを受け取り、通信路33を介して暗号装置41から暗号文多項式cを受け取る(ステップS408)。
復号装置42の復号化部324は、暗号文多項式cに対し、秘密鍵多項式f、パラメータN、パラメータp、パラメータqを用いて、NTRU暗号の復号化処理を行い、復号文多項式m’を計算する(ステップS409)。
復号装置42の復号化部324は、復号文多項式m’を外部へ出力して処理を終了する(ステップS410)。
本実施の形態によると、実施の形態3に係る暗号システム3と異なり、予め作成されたパラメータをパラメータ記憶部311、421に記憶しておくのではなく、暗号装置41のパラメータ生成装置1が動的に生成したパラメータを用いて、平文多項式mの暗号化処理および暗号文多項式cの復号化処理を行なうようにしている。このため、パラメータを定期的に変化させることができ、暗号化通信の安全性を高めることが可能になる。
<変形例>
上記に説明した実施の形態は、本発明の実施の一例であり、本発明はこの実施の形態に何ら限定されるものではなく、その旨を逸脱しない範囲において種々なる態様で実施し得るものである。以下のような場合も本発明に含まれる。
(1)式格納部110に格納される格子強度係数GLおよび解読時間評価式EFは、図10に示す通り複数の組が格納され、安全性判定部105がGL≦SLを満たす格子強度係数GLと、解読時間評価式EFとの組を読み取ってもよい。
また、式格納部110に格納される格子強度係数GLおよび解読時間評価式EFは、後で変更できるようにしてもよい。
(2)第1のパラメータ生成部102におけるパラメータNの選択方法は、この方法に限定されず、Nが十分大きくとれる方法であれば任意の方法でよい。例えば、F(x)=10・log(x)等の単調増加関数Fに対し、N=F(SLI)からパラメータNを選択してもよい。また、例えば、パラメータNは固定値であってもよい。
(3)第2のパラメータ生成部103におけるパラメータdf、dg、dの選択方法は、この方法に限定されず、総当りで探索する解読に対し、秘密鍵の安全性レベルと平文の安全性レベルとが安全性レベル情報SLIが表す安全性レベルを達成し、かつdg>dとなるように選択すれば、どのような方法でもよい。
(4)また、パラメータ組PSの中のパラメータq、df、dg、dは、第2のパラメータ生成部103が上述の方法でパラメータdf、dg、dを選択し、第3のパラメータ生成部104が条件式EDにパラメータdf、dg、dの値を適用してパラメータqの値を決定することにより生成する以外にも、パラメータqが外部から予め与えられており、条件式EDとパラメータqの値とから導出される関係式に基づいて、dg>dとなるようにパラメータdf、dg、dを選択することにより生成してもよい。
具体的には、例えばパラメータqとしてq=256が外部から予め与えられている場合、条件式EDとパラメータqの値とから、
6d+2df−1<128
という関係式を満たし、かつdg>dとなるようにパラメータdf、dg、dを選び、パラメータ組PSの中のパラメータq、df、dg、dを生成してもよい。
なお、この場合、パラメータdf、dg、dでは、総当りで探索する解読に対して、秘密鍵や平文の解読時間が安全性レベル情報SLIが表す安全性レベルを達成していない可能性がある。そのため、安全性増加部106が、上述のように、LLLアルゴリズムによる解読時間Tが安全性レベル情報SLIを達成するようにパラメータNを増加させた後、第2のパラメータ生成部103の構成において説明した秘密鍵や平文を総当りで探索する暗号解読の解読時間が、安全性レベル情報SLIが表す安全性レベルを達成するようにパラメータNを増加させてもよい。
また、秘密鍵や平文を総当りで探索する暗号解読の解読時間が、安全性レベル情報SLIが表す安全性レベルを達成するようにパラメータNを増加させた後、LLLアルゴリズムによる解読時間Tが安全性レベル情報SLIを達成するようにパラメータNを増加させてもよい。
(5)第3のパラメータ生成部104におけるパラメータqの選択方法は、この方法に限定されず、条件式EDを満たし、かつパラメータpと互いに素になるように選択すれば、どのような方法でもよい。
(6)第1のパラメータ生成部102が生成するパラメータp、およびパラメータ変換装置2が扱うパラメータ組IPS、PSの中のパラメータpは、p=3に限定されず、他のものでもよい。
例えば、ある非負整数kに対してp=kとした場合、式格納部110に格納される条件式EDを
ED:2・k・d+2df−1<q/2
とすれば、同様の効果が得られる。
(7)上記変形例(6)に関し、さらに、ある多項式bに対してp=bとしてもよい。例えば、p=(X+2)とした場合、式格納部110に格納される条件式EDを
ED:6d+2df−1<q/2
とすれば、同様の効果が得られる。
何故ならば、上述した通り、多項式p×r×g+f×mの全ての係数が、−q/2からq/2の範囲に収まっていれば、復号エラーは発生しない。
このとき、多項式r×gを考えると、その係数の最大値は、高々2dである(最小値も、せいぜい−2dである。)。
今、p=(X+2)なので、多項式aのk次の係数をa(k)で表すと、
p(0)=2、p(1)=1、p(i)=0 (i>1)
であるので、
(p×(r×g))(k)
=p(0)・(r×g)(k)+p(1)・(r×g)(k−1)+
...+p(N−1)・(r×g)(k−(N−1)(mod N))
=(r×g)(k)+2・(r×g)(k−1)
である。
よって、多項式p×r×gを考えると、その係数の最大値は、3・2dである。一方、多項式f×mの係数の値は、その値が高々2df−1である(最小値も、せいぜい−2df+1である。)。
従って、上述の実施の形態で説明したのと同様にして、多項式p×r×g+f×mの最も大きい係数の値は、高々3・2d+2df−1であることが導くことができ、ここから、復号エラーが理論的に発しない条件式EDとして、
ED:6d+2df−1<q/2
を導くことができる。
なお、多項式bはb=(X+2)に限定されないことはもちろんである。その場合、上述の処理を行えば、条件式EDを導くことができ、同様の効果が得られる。
(8)パラメータ変換装置2において、パラメータ組IPSを外部より入力する以外にも、入力部101bが、安全性レベル情報SLIが表す安全性レベルを達成するパラメータ組IPSのリストを保持するようにしてもよい。この場合には、入力部101bへ外部より入力されるデータは、安全性レベル情報SLIだけになる。すなわち、入力部101bは、図9に示すようなパラメータ組IPSのリストを保持しており、外部から安全性レベル情報SLIが入力されると、このSLIに関連付けられたパラメータ組IPSをパラメータ組PSとして第3のパラメータ生成部105へ出力するようにしてもよい。
(9)非特許文献4には、Zero−Run Latticeを用いる解読により、LLLアルゴリズムの解読時間が減少する可能性があることが記載されているが、解読時間評価式EFは、このZero−Run Latticeを用いた解読を考慮した、LLLアルゴリズムの解読時間としてもよい。
(10)暗号システム3において、秘密鍵多項式fおよび公開鍵多項式hは、復号装置32の鍵生成部322で生成されなくてもよい。例えば、秘密鍵多項式fおよび公開鍵多項式hが鍵管理サーバ等の復号装置32の外部で生成され、秘密鍵記憶部323および公開鍵記憶部312へそれぞれ入力されるようにしてもよい。
(11)暗号システム3は、さらにパラメータ生成装置1またはパラメータ変換装置2を備え、パラメータ生成装置1またはパラメータ変換装置2が出力したNTRU暗号のパラメータが、パラメータ記憶部311、321に入力されるようにしてもよい。
(12)暗号システム3の暗号装置31が、さらに、パラメータ生成装置1またはパラメータ変換装置2を備えるようにしてもよい。この場合、暗号装置31がNTRU暗号のパラメータを生成し、生成されたNTRU暗号のパラメータが、パラメータ記憶部311に入力され、通信路33を介して復号装置32へ送信される。復号装置32は、NTRU暗号のパラメータを受信し、パラメータ記憶部321に記憶する。
(13)パラメータ記憶部311に記憶されるNTRU暗号パラメータは、パラメータN、p、q、df、dg、dのうち、少なくとも、パラメータN、パラメータp、パラメータq、パラメータdを含めば、どのようなものでもよい。また、パラメータ記憶部321に記憶されるNTRU暗号パラメータは、少なくとも、パラメータN、パラメータp、パラメータq、パラメータdf、パラメータdgを含めば、どのようなものでもよい。例えば、p=2であってもよい。その場合には、すべての多項式の係数は、1または0であるとする。このようにすることにより、多項式間の演算を高速に行なうことができ、これにより、パラメータ生成処理、パラメータ変換処理、暗号化処理および復号化処理を高速に行なうことができるようになる。
(14)実施の形態4に示した暗号システム4の暗号装置41において、パラメータ生成装置1の代わりに、パラメータ変換装置2を使用するようにしてもよい。
(15)実施の形態4に示した暗号システム4の暗号装置41において、パラメータ生成装置1の代わりに、パラメータ生成装置1で生成されるのと同様のパラメータを受信するパラメータ受信装置を設けるようにしてもよい。
(16)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、半導体メモリ、ハードディスクドライブ、CD−ROM、DVD−ROM(Digital Versatile Disc−ROM)、DVD−RAM等、に記録したものとしてもよい。
(17)上記実施の形態および上記変形例をそれぞれ組み合わせてもよい。
本発明は、暗号化処理および復号化処理に適用でき、特に、電子署名、電子認証技術、暗号化通信等に適用できる。
本発明の実施の形態1におけるパラメータ生成装置1の構成を示す図である。 パラメータNにおける解読時間Tの実測データを示す図である。 本発明の実施の形態1における式格納部110に格納されている式およびデータを説明するための図である。 本発明の実施の形態1におけるパラメータ生成装置1の処理の前半部を示すフローチャートである。 本発明の実施の形態1におけるパラメータ生成装置1の処理の後半部を示すフローチャートである。 本発明の実施の形態2におけるパラメータ変換装置2の構成を示す図である。 本発明の実施の形態2におけるパラメータ変換装置2の処理の前半部を示すフローチャートである。 本発明の実施の形態2におけるパラメータ変換装置2の処理の処理の後半部を示すフローチャートである。 安全性レベル情報とその安全性レベルを達成するNTRU暗号のパラメータ組とを示す図である。 本発明の変形例(1)における式格納部110に格納されている式およびデータを説明するための図である。 本発明の実施の形態3における暗号システム3の構成を示す図である。 本発明の実施の形態3における暗号装置31の構成を示す図である。 本発明の実施の形態3における復号装置32の構成を示す図である。 本発明の実施の形態3における暗号システム3の動作を示すフローチャートである。 本発明の実施の形態4における暗号システム4の構成を示す図である。 本発明の実施の形態4における暗号装置41の構成を示す図である。 本発明の実施の形態4における復号装置42の構成を示す図である。 本発明の実施の形態4における暗号システム4の動作を示すフローチャートである。
符号の説明
1 パラメータ生成装置
2 パラメータ変換装置
3,4 暗号システム
31,41 暗号装置
32,42 復号装置
33,43 通信路
101,101b 入力部
102 第1のパラメータ生成部
103,103b 第2のパラメータ生成部
104,104b 第3のパラメータ生成部
105 安全性判定部
106 安全性増加部
107 出力部
108 第1のパラメータ変更部
109 第2のパラメータ変更部
110 式格納部
311,321 パラメータ記憶部
312,411 公開鍵記憶部
313 暗号化部
322,422 鍵生成部
323 秘密鍵記憶部
324 復号化部
421 パラメータ受信部

Claims (37)

  1. 復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成するパラメータ生成装置であって、
    予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない出力パラメータを生成するエラー非発生出力パラメータ生成部を備える
    ことを特徴とするパラメータ生成装置。
  2. 前記エラー非発生出力パラメータ生成部は、
    予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成する出力パラメータ生成部とを備える
    ことを特徴とする請求項1に記載のパラメータ生成装置。
  3. 前記仮パラメータ生成部は、外部から入力されたNTRU暗号のパラメータ組である入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する
    ことを特徴とする請求項2に記載のパラメータ生成装置。
  4. 前記出力パラメータ生成部は、前記格子強度係数に基づく安全性決定情報と第三者による暗号解読に対する安全性を示す安全性レベル情報とに基づいて、前記仮パラメータ組から前記出力パラメータを生成する
    ことを特徴とする請求項2または3に記載のパラメータ生成装置。
  5. 前記出力パラメータ生成部は、前記安全性決定情報を保持する安全性決定情報保持手段を備え、前記安全性決定情報は、外部より与えられる
    ことを特徴とする請求項4に記載のパラメータ生成装置。
  6. 前記仮パラメータ組および前記出力パラメータは、NTRU暗号における次元N、非負整数p、非負整数q、秘密鍵多項式fにおける係数の値が1となる係数の数を規定する非負整数df、公開鍵多項式を生成するときに用いるランダム多項式gの係数の値が1となる係数の数を規定する非負整数dg、および平文を暗号化する時に用いる乱数多項式rの係数の値が1となる係数の数を規定する非負整数dの組から構成される
    ことを特徴とする請求項2〜5のいずれか1項に記載のパラメータ生成装置。
  7. 前記出力パラメータ生成部は、さらに、前記格子強度係数に基づいて、前記格子強度係数格納手段に格納された前記安全性決定情報よりいずれか1つを選択する安全性決定情報選択手段を備える
    ことを特徴とする請求項6に記載のパラメータ生成装置。
  8. 前記仮パラメータ生成部は、前記安全性レベル情報と前記次元Nに基づいて前記仮パラメータ組に含まれる前記非負整数df、前記非負整数dg、前記非負整数dを生成する
    ことを特徴とする請求項6または7に記載のパラメータ生成装置。
  9. 前記仮パラメータ生成部は、前記エラー条件情報に基づいて前記仮パラメータ組に含まれる前記非負整数qを生成する
    ことを特徴とする請求項6から8のいずれか1項に記載のパラメータ生成装置。
  10. 前記出力パラメータ生成部は、前記安全性レベル情報と前記安全性決定情報に基づいて前記出力パラメータ組に含まれる前記次元Nを生成する
    ことを特徴とする請求項6から9のいずれか1項に記載のパラメータ生成装置。
  11. 前記エラー条件情報は、復号エラーが発生しないための条件を表す条件式である
    ことを特徴とする請求項1から10のいずれか1項に記載のパラメータ生成装置。
  12. 前記エラー条件情報は、前記非負整数p、前記非負整数q、前記非負整数d、前記非負整数dfに対し、復号エラーが発生しないための条件を表す条件式
    2・p・d+2d・f−1<q/2
    である
    ことを特徴とする請求項1から11のいずれか1項に記載のパラメータ生成装置。
  13. 前記出力パラメータ生成部は、1つ以上の格子強度係数と安全性決定情報の組を格納する格子強度係数格納手段を備え、
    前記格子強度係数と安全性決定情報は、外部から与えられる
    ことを特徴とする請求項4から12のいずれか1項に記載のパラメータ生成装置。
  14. 前記出力パラメータ生成部は、さらに、前記格子強度係数に基づく前記安全性決定情報から、前記安全性決定情報を選択する安全性決定情報選択手段を備える
    ことを特徴とする請求項13に記載のパラメータ生成装置。
  15. 前記出力パラメータ生成部は、
    前記格子強度係数と前記安全性決定情報とに基づいて、前記仮パラメータ組を変更するか否かを判定する変更判定手段と、
    前記変更判定手段が前記仮パラメータ組を変更すると判断したとき、前記仮パラメータ組から変更仮パラメータ組を生成する仮パラメータ組変更手段と、
    前記安全性レベル情報に基づいて前記変更仮パラメータ組から前記出力パラメータを生成する生成手段とを備える
    ことを特徴とする請求項13に記載のパラメータ生成装置。
  16. 前記仮パラメータ変更手段は、前記仮パラメータ組に含まれる前記非負整数dgを変更して前記変更仮パラメータ組を生成する
    ことを特徴とする請求項15に記載のパラメータ生成装置。
  17. 前記NTRU暗号は、
    加算、減算および乗算が定義されたN次元配列の集合である環Rに対して、前記環Rのイデアルpおよびqを選択する選択ステップと、
    前記環Rの元fおよびgを生成し、f(mod q)の逆数である元Fqと、f(mod p)の逆数である元Fpとを生成する生成ステップと、
    前記元gと、前記元Fqの積とmod qで合同である元hとを公開鍵として生成する公開鍵生成ステップと、
    前記元fおよび前記元Fpを得ることのできる情報(情報は、f、Fpの両方にかかる)を秘密鍵として生成する秘密鍵生成ステップと、
    前記公開鍵および前記環Rからランダムに選択した元iを使用して、前記平文を暗号化して前記暗号文を生成する暗号化ステップと、
    前記秘密鍵を使用して前記暗号文を復号化して前記復号文を生成する復号化ステップとを含む方法により平文の暗号化および暗号文の復号化が行なわれる暗号方式である
    ことを特徴とする請求項1〜16のいずれか1項に記載のパラメータ生成装置。
  18. 平文をNTRU暗号で暗号化して暗号文を生成する暗号システムであって、
    請求項1〜17のいずれか1項に記載のパラメータ生成装置と、
    前記パラメータ生成装置で生成された出力パラメータに基づいて公開鍵を生成する公開鍵生成手段と、
    前記公開鍵に基づいて、平文を暗号化する暗号化手段とを備える
    ことを特徴とする暗号システム。
  19. 暗号文をNTRU暗号で復号化して復号文を生成する復号システムであって、
    請求項1〜17のいずれか1項に記載のパラメータ生成装置と、
    前記パラメータ生成装置で生成された出力パラメータに基づいて秘密鍵を生成する秘密鍵生成手段と、
    前記秘密鍵に基づいて、暗号文を復号化する復号化手段とを備える
    ことを特徴とする復号システム。
  20. NTRU暗号を用いた暗号システムであって、
    復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成して出力するパラメータ生成装置と、
    NTRU暗号の暗号鍵と復号鍵を生成して出力する鍵生成装置と、
    平文をNTRU暗号で暗号化した暗号文を生成する暗号装置と、
    前記暗号文を復号した復号文を生成する復号装置とを備え、
    前記パラメータ生成装置は、
    予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成して出力する出力パラメータ生成部とを備え、
    前記鍵生成装置は、
    前記パラメータ生成装置が出力した前記出力パラメータを入力として前記暗号鍵と前記復号鍵を生成し出力する生成鍵出力部を備え、
    前記暗号装置は、
    前記パラメータ生成装置が出力した出力パラメータと前記鍵生成装置が出力した前記暗号鍵を入力として、前記平文を暗号化して前記暗号文を生成する暗号化部を備え、
    前記復号装置は、
    前記パラメータ生成装置が出力した前記出力パラメータと前記鍵生成装置が出力した前記復号鍵を入力として、前記暗号文を復号して前記復号文を生成する復号化部を備える
    ことを特徴とする、暗号システム。
  21. NTRU暗号を用いた暗号化システムであって、
    復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成して出力するパラメータ生成装置と、
    NTRU暗号の暗号鍵を生成して出力する鍵生成装置と、
    平文をNTRU暗号で暗号化した暗号文を生成する暗号装置とを備え、
    前記パラメータ生成装置は、
    予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成して出力する出力パラメータ生成部とを備え、
    前記鍵生成装置は、
    前記パラメータ生成装置が出力した前記出力パラメータを入力として前記暗号鍵を生成し出力する生成鍵出力部を備え、
    前記暗号装置は、
    前記パラメータ生成装置が出力した前記出力パラメータと前記鍵生成装置が出力した前記暗号鍵を入力として、前記平文を暗号化して前記暗号文を生成する暗号化部を備える
    ことを特徴とする暗号化システム。
  22. 平文をNTRU暗号で暗号化して暗号文を生成する暗号装置であって、
    予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成して出力する出力パラメータ生成部と、
    前記出力パラメータを復号装置へ送信するパラメータ送信部と、
    前記復号装置から前記出力パラメータに基づいて生成されたNTRU暗号の暗号鍵を受信する暗号鍵受信部と、
    前記出力パラメータと前記暗号鍵に基づいて、前記平文を暗号化して前記暗号文を生成する暗号文生成部とを備える
    ことを特徴とする暗号装置。
  23. 平文をNTRU暗号で暗号化して暗号文を生成する暗号装置であって、
    予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて生成される、復号エラーが発生しない出力パラメータを受信するパラメータ受信手段と、
    前記パラメータ受信手段で受信された出力パラメータに基づいて公開鍵を生成する公開鍵生成手段と、
    前記公開鍵に基づいて、平文を暗号化する暗号化手段とを備える
    ことを特徴とする暗号装置。
  24. 平文をNTRU暗号で暗号化した暗号文を生成する暗号化方法であって、
    予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成するステップと、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成して出力するステップと、
    前記出力パラメータに基づいてNTRU暗号の暗号鍵を生成するステップと、
    前記出力パラメータと前記暗号鍵に基づいて、前記平文を暗号化して暗号文を生成するステップとを含む
    ことを特徴とする暗号化方法。
  25. 平文をNTRU暗号で暗号化した暗号文を生成するプログラムであって、
    予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成するステップと、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成して出力するステップと、
    前記出力パラメータに基づいてNTRU暗号の暗号鍵を生成するステップと、
    前記出力パラメータと前記暗号鍵に基づいて、前記平文を暗号化して暗号文を生成するステップとを、コンピュータに実行させる
    ことを特徴とするプログラム。
  26. NTRU暗号を用いた復号化システムであって、
    復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成して出力するパラメータ生成装置と、
    NTRU暗号の復号鍵を生成して出力する鍵生成装置と、
    暗号文をNTRU暗号で復号した復号文を生成する復号装置とから構成される復号化システムであって、
    前記パラメータ生成装置は、
    予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成して出力する出力パラメータ生成部とを備え、
    前記鍵生成装置は、
    前記パラメータ生成装置が出力した前記出力パラメータを入力として前記復号鍵を生成し出力する生成鍵出力部を備え、
    前記復号装置は、
    前記パラメータ生成装置が出力した前記出力パラメータと前記鍵生成装置が出力した前記復号鍵を入力として、前記暗号文を復号して前記復号文を生成する復号化部を備える
    ことを特徴とする復号化システム。
  27. 暗号装置から受信した暗号文をNTRU暗号で復号した復号文を生成する復号装置であって、
    前記暗号装置から、復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを受信するパラメータ受信部と、
    前記出力パラメータを入力としてNTRU暗号の暗号鍵と復号鍵を生成し出力する生成鍵出力部と、
    前記暗号鍵を前記暗号装置へ送信する暗号鍵送信部と、
    前記出力パラメータと前記復号鍵に基づいて、前記暗号文を復号して前記復号文を生成する復号文生成部とを備える
    ことを特徴とする復号装置。
  28. 暗号文をNTRU暗号で復号した復号文を生成する復号化方法であって、
    予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成するステップと、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成して出力するステップと、
    前記出力パラメータに基づいてNTRU暗号の復号鍵を生成するステップと、
    前記出力パラメータと前記復号鍵に基づいて、前記暗号文を復号して復号文を生成するステップとを含む
    ことを特徴とする復号化方法。
  29. 暗号文をNTRU暗号で復号した復号文を生成するプログラムであって、
    予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成するステップと、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成して出力するステップと、
    前記出力パラメータに基づいてNTRU暗号の復号鍵を生成するステップと、
    前記出力パラメータと前記復号鍵に基づいて、前記暗号文を復号して復号文を生成するステップとを、コンピュータに実行させる
    ことを特徴とするプログラム。
  30. NTRU暗号を用いた暗号化システムであって、
    外部から入力されたNTRU暗号のパラメータ組である入力パラメータを、復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータに変換して出力するパラメータ変換装置と、
    NTRU暗号の暗号鍵と復号鍵を生成して出力する鍵生成装置と、
    平文をNTRU暗号で暗号化した暗号文を生成する暗号装置と、
    前記暗号文を復号した復号文を生成する復号装置とを備え、
    前記パラメータ変換装置は、
    前記入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成して出力する出力パラメータ生成部とを備え、
    前記鍵生成装置は、
    前記パラメータ変換装置が出力した前記出力パラメータを入力として前記暗号鍵と前記復号鍵を生成し出力する生成鍵出力部を備え、
    前記暗号装置は、
    前記パラメータ変換装置が出力した出力パラメータと前記鍵生成装置が出力した前記暗号鍵を入力として、前記平文を暗号化して前記暗号文を生成する暗号化部を備え、
    前記復号装置は、
    前記パラメータ変換装置が出力した前記出力パラメータと前記鍵生成装置が出力した前記復号鍵を入力として、前記暗号文を復号して前記復号文を生成する復号化部を備える
    ことを特徴とする暗号システム。
  31. NTRU暗号を用いた暗号化システムであって、
    外部から入力されたNTRU暗号のパラメータ組である入力パラメータから、復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成して出力するパラメータ生成装置と、
    NTRU暗号の暗号鍵を生成して出力する鍵生成装置と、
    平文をNTRU暗号で暗号化した暗号文を生成する暗号装置とを備え、
    前記パラメータ生成装置は、
    前記入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報とに基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成して出力する出力パラメータ生成部とを備え、
    前記鍵生成装置は、
    前記パラメータ生成装置が出力した前記出力パラメータを入力として前記暗号鍵を生成し出力する生成鍵出力部を備え、
    前記暗号装置は、
    前記パラメータ生成装置が出力した前記出力パラメータと前記鍵生成装置が出力した前記暗号鍵とを入力として、前記平文を暗号化して前記暗号文を生成する暗号化部を備える
    ことを特徴とする暗号化システム。
  32. 平文をNTRU暗号で暗号化した暗号文を生成する暗号装置であって、
    予め与えられたNTRU暗号のパラメータ組である入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報とに基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成して出力する出力パラメータ生成部と、
    前記出力パラメータを復号装置へ送信するパラメータ送信部と、
    前記復号装置から前記出力パラメータに基づいて生成されたNTRU暗号の暗号鍵を受信する暗号鍵受信部と、
    前記出力パラメータと前記暗号鍵に基づいて、前記平文を暗号化して前記暗号文を生成する暗号文生成部とを備える
    ことを特徴とする暗号装置。
  33. 平文をNTRU暗号で暗号化した暗号文を生成する暗号化方法であって、
    予め与えられたNTRU暗号のパラメータ組である入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成するステップと、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成して出力するステップと、
    前記出力パラメータに基づいてNTRU暗号の暗号鍵を生成するステップと、
    前記出力パラメータと前記暗号鍵に基づいて、前記平文を暗号化して暗号文を生成するステップとを含む
    ことを特徴とする暗号化方法。
  34. 平文をNTRU暗号で暗号化した暗号文を生成するプログラムであって、
    予め与えられたNTRU暗号のパラメータ組である入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成するステップと、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成して出力するステップと、
    前記出力パラメータに基づいてNTRU暗号の暗号鍵を生成するステップと、
    前記出力パラメータと前記暗号鍵に基づいて、前記平文を暗号化して暗号文を生成するステップとを、コンピュータに実行させる
    ことを特徴とするプログラム。
  35. NTRU暗号を用いた復号化システムであって、
    外部から入力されたNTRU暗号のパラメータ組である入力パラメータから、復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成して出力するパラメータ生成装置と、
    NTRU暗号の復号鍵を生成して出力する鍵生成装置と、
    暗号文をNTRU暗号で復号した復号文を生成する復号装置とを備え、
    前記パラメータ生成装置は、
    前記入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成する仮パラメータ生成部と、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から前記出力パラメータを生成して出力する出力パラメータ生成部とを備え、
    前記鍵生成装置は、
    前記パラメータ生成装置が出力した前記出力パラメータを入力として前記復号鍵を生成し出力する生成鍵出力部を備え、
    前記復号装置は、
    前記パラメータ生成装置が出力した前記出力パラメータと前記鍵生成装置が出力した前記復号鍵を入力として、前記暗号文を復号して前記復号文を生成する復号化部を備える
    ことを特徴とする復号化システム。
  36. 暗号文をNTRU暗号で復号した復号文を生成する復号化方法であって、
    予め与えられたNTRU暗号のパラメータ組である入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成するステップと、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成して出力するステップと、
    前記出力パラメータに基づいてNTRU暗号の復号鍵を生成するステップと、
    前記出力パラメータと前記復号鍵に基づいて、前記暗号文を復号して復号文を生成するステップとを含む
    ことを特徴とする復号化方法。
  37. 暗号文をNTRU暗号で復号した復号文を生成するプログラムであって、
    予め与えられたNTRU暗号のパラメータ組である入力パラメータと予め与えられた復号エラー発生有無を判定するエラー条件情報に基づいて、復号エラーが発生しない仮パラメータ組を生成するステップと、
    前記仮パラメータ組から計算される格子強度係数に基づき、前記仮パラメータ組から、復号エラーの発生しないNTRU暗号のパラメータ組である出力パラメータを生成して出力するステップと、
    前記出力パラメータに基づいてNTRU暗号の復号鍵を生成するステップと、
    前記出力パラメータと前記復号鍵に基づいて、前記暗号文を復号して復号文を生成するステップとを、コンピュータに実行させる
    ことを特徴とするプログラム。
JP2004118772A 2003-04-24 2004-04-14 パラメータ生成装置、暗号化システム、復号化システム、暗号装置、暗号化方法、復号化方法、およびプログラム Expired - Lifetime JP4567364B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004118772A JP4567364B2 (ja) 2003-04-24 2004-04-14 パラメータ生成装置、暗号化システム、復号化システム、暗号装置、暗号化方法、復号化方法、およびプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003119973 2003-04-24
JP2004118772A JP4567364B2 (ja) 2003-04-24 2004-04-14 パラメータ生成装置、暗号化システム、復号化システム、暗号装置、暗号化方法、復号化方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2004341502A true JP2004341502A (ja) 2004-12-02
JP4567364B2 JP4567364B2 (ja) 2010-10-20

Family

ID=33543211

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004118772A Expired - Lifetime JP4567364B2 (ja) 2003-04-24 2004-04-14 パラメータ生成装置、暗号化システム、復号化システム、暗号装置、暗号化方法、復号化方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP4567364B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005109379A1 (ja) * 2004-05-12 2005-11-17 Matsushita Electric Industrial Co., Ltd. 暗号システム、暗号装置、復号装置、プログラムおよび集積回路
JP2013156348A (ja) * 2012-01-27 2013-08-15 Fujitsu Ltd 暗号鍵生成方法、暗号鍵生成装置および暗号鍵生成プログラム
JPWO2021029173A1 (ja) * 2019-08-09 2021-02-18

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998008323A1 (en) * 1996-08-19 1998-02-26 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
JP2003124927A (ja) * 2001-10-15 2003-04-25 Sony Corp 相互認証システム及び相互認証方法、相互認証装置、並びに記憶媒体
JP2003195755A (ja) * 2001-10-19 2003-07-09 Matsushita Electric Ind Co Ltd 配列出力装置、配列出力方法、暗号化装置、および復号化装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998008323A1 (en) * 1996-08-19 1998-02-26 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
JP2003124927A (ja) * 2001-10-15 2003-04-25 Sony Corp 相互認証システム及び相互認証方法、相互認証装置、並びに記憶媒体
JP2003195755A (ja) * 2001-10-19 2003-07-09 Matsushita Electric Ind Co Ltd 配列出力装置、配列出力方法、暗号化装置、および復号化装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JOSEPH H. SILVERMAN, NTRU CRYPTOSYSTEMS TECHNICAL REPORT, vol. Report#11, Version2, JPN7010001706, 15 March 2001 (2001-03-15), pages 1 - 6, ISSN: 0001670868 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005109379A1 (ja) * 2004-05-12 2005-11-17 Matsushita Electric Industrial Co., Ltd. 暗号システム、暗号装置、復号装置、プログラムおよび集積回路
US7773746B2 (en) 2004-05-12 2010-08-10 Panasonic Corporation Encryption system, encryption device, decryption device, program, and integrated circuit
JP2013156348A (ja) * 2012-01-27 2013-08-15 Fujitsu Ltd 暗号鍵生成方法、暗号鍵生成装置および暗号鍵生成プログラム
JPWO2021029173A1 (ja) * 2019-08-09 2021-02-18
WO2021029173A1 (ja) * 2019-08-09 2021-02-18 株式会社村田製作所 通信システム

Also Published As

Publication number Publication date
JP4567364B2 (ja) 2010-10-20

Similar Documents

Publication Publication Date Title
JP4786531B2 (ja) 暗号システム、暗号装置、復号装置、プログラムおよび集積回路
KR101024768B1 (ko) 파라미터 생성 장치, 암호 시스템, 복호 시스템, 암호장치, 복호 장치, 암호화 방법, 복호화 방법, 및 그프로그램
JP4544538B2 (ja) 署名生成装置、鍵生成装置及び署名生成方法
KR101795771B1 (ko) 정수 기반 준동형 암호 기법에서 압축 암복호화를 제공하는 시스템 및 방법
JP4620669B2 (ja) 署名生成装置、署名検証装置、それらの方法、および集積回路
EP2154816A1 (en) Key generating apparatus, encrypting apparatus and decrypting apparatus
JP2011147074A (ja) 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体
JP2010049215A (ja) パラメータ生成装置、暗号処理システム、方法およびプログラム
JP2007507742A (ja) 情報伝達システム、暗号装置及び復号装置
EP1873964A1 (en) Signature creation device, and signature verification device
JP2009116183A (ja) 暗号装置、復号装置、鍵生成装置及びプログラム
JP2011227193A (ja) 環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体
JP4567364B2 (ja) パラメータ生成装置、暗号化システム、復号化システム、暗号装置、暗号化方法、復号化方法、およびプログラム
JP2011150006A (ja) 暗号化システム、公開鍵暗号化方法、鍵生成装置、計算機および公開鍵秘密鍵生成プログラム
JP7443217B2 (ja) 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム
US20060171531A1 (en) Padding application method ensuring security of cryptosystem and encryptor/decryptor
JP5297918B2 (ja) 暗号化数値二進変換システム及び方法とプログラム
Reddy et al. Analysis and performance characteristics of cryptosystem using image files
Atea et al. PMRSA: Designing an Efficient and Secure Public-Key Similar to RSA Based on Polynomial Ring
JP5912281B2 (ja) 復号結果検証装置、方法、システム及びプログラム
Knezevic Generating Prime Numbers Using Genetic Algorithms.
JP2005321719A (ja) 通信システム、復号装置、復元装置、鍵生成装置及び通信方法
Verkhovsky Double-Moduli Gaussian Encryption/Decryption with Primary Residues and Secret Controls
Jaber et al. Efficient elliptic curve cryptography encryption framework for cloud computing
JP2006337867A (ja) 暗号通信方法および暗号通信装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100623

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100713

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100805

R150 Certificate of patent or registration of utility model

Ref document number: 4567364

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130813

Year of fee payment: 3