JP4068664B2 - 公開鍵暗号システム方法および装置 - Google Patents
公開鍵暗号システム方法および装置 Download PDFInfo
- Publication number
- JP4068664B2 JP4068664B2 JP51105198A JP51105198A JP4068664B2 JP 4068664 B2 JP4068664 B2 JP 4068664B2 JP 51105198 A JP51105198 A JP 51105198A JP 51105198 A JP51105198 A JP 51105198A JP 4068664 B2 JP4068664 B2 JP 4068664B2
- Authority
- JP
- Japan
- Prior art keywords
- message
- mod
- ideal
- integer
- representative
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
Description
本出願は、1996年8月19日に出願された米国仮特許出願第60/024133号の優先権を主張するものであり、この仮特許出願は引用によって本明細書に組み込まれる。
発明の分野
本発明は、情報の符号化および復号に関し、詳細には、プロセッサ・システムによってデジタル・メッセージを暗号化し復号する公開鍵暗号システムに関する。
発明の背景
2つの当事者、たとえば、2つのコンピュータの間でデータを安全に交換するには暗号化が必要である。現在使用されている一般的な暗号化方法には、専用鍵暗号化と公開鍵暗号化の2つがある。専用鍵暗号化では、2つの当事者が符号化および復号に使用される鍵を秘密裏に交換する。専用鍵暗号システムの広く使用されている例にはDES、すなわちデータ暗号化標準がある。このようなシステムは非常に高速であり、かつ非常に安全であるが、2つの当事者が鍵を秘密裏に交換しなければならないという欠点を有する。
公開鍵暗号システムは、各当事者が復号プロセスのセキュリティを損なわずに暗号化プロセスを公開することのできるシステムである。この暗号化プロセスは一般に落とし戸関数と呼ばれている。公開鍵暗号システムは、一般に専用鍵暗号システムよりも低速であるが、クレジット・カード番号など少量のデータを送信するために使用され、また、専用鍵暗号化に使用される専用鍵を送信するためにも使用される。
従来、公開鍵暗号システムには様々な落とし戸関数が提案され実施されている。
公開鍵暗号システムを作成するために使用されているある種類の落とし戸関数では、ある群のべき乗が使用され、すなわち、ある群の要素が取り出され、群演算を使用してその要素のべき乗が反復的に求められる。最も頻繁に選択される群は、大きな素数pおよびqのpqを法とする乗法群である。ただし、楕円曲線、アーベル多様体、場合によっては非可換行列群など他の群も提案されている。しかし、この種の落とし戸関数は、それぞれ100桁程度の大きな素数を必要とし、鍵の作成が面倒であり、暗号化および復号に使用されるべき乗プロセスは多数の計算を必要とし、Nビットからなるメッセージを暗号化し復号するには百桁の数の多数の乗算とN3個程度の演算を必要とする。
公開鍵暗号システムを作成するために使用されている第2の種類の落とし戸関数は、群中のどの数が平方であるか、すなわち通常は、大きな素数pおよびqのpqを法とする乗法群を判定するのが困難であることに基づく。第1の種類の場合と同様に、鍵作成が面倒であり、符号化および復号に多数の計算が必要であり、Nビットからなるメッセージを符号化し復号するにはN3個程度の演算が必要である。
第3の種類の落とし戸関数では、群中で離散対数問題が使用され、一般には、大きな素数pを法とする乗法群または楕円曲線が使用される。この場合も、素数pが少なくとも150桁を必要とし、p−1が大きな素因数を必要とするので、鍵作成は面倒である。このようなシステムはべき乗を使用し、したがってこの場合も、Nビットからなるメッセージを符号化し復号するにはN3個程度の演算を必要とする。
公開鍵暗号システムを作成するために使用されている第4の種類の落とし戸関数は、ナップサック問題または部分集合和問題に基づく。このような関数は、部分群、通常は、加算される正の整数の部分群を使用する。この種の多くの公開鍵暗号システムは、格子整約技法を使用して破られており、したがって、もはや安全なシステムとはみなされていない。
公開鍵暗号システムを作成するために使用されている第5の種類の落とし戸関数は、誤り訂正符号、特にゴッパ符号に基づく。このような暗号システムは、有限体、一般には2つの要素を含む有限体上で線形代数を使用する。このような暗号システムに対する線形代数アタックがあり、したがって、安全な暗号システムの鍵は400000ビット程度の大きな矩形行列である。これは大部分の応用分野で大きすぎる。
公開鍵暗号システムを作成するために使用されている第6の種類の落とし戸関数は、大きな次元Nの大きな格子で極めて短い基本ベクトルを見つけることが困難であることに基づく。このようなシステムの鍵は、N2ビット程度の長さを有し、これは多くの応用分野では大きすぎる。また、このような格子整約公開鍵暗号システムは非常に新しく、したがって、そのセキュリティは完全には分析されていない。
したがって、大部分のユーザは、比較的短く容易に作成される鍵を比較的高速の暗号化プロセスおよび復号プロセスと組み合わせる公開鍵暗号システムを有することが望ましいと考えている。
本発明の目的は、鍵が比較的短く、かつ容易に作成され、符号化プロセスおよび復号プロセスを高速に実行することのできる公開鍵暗号化システムを提供することである。本発明の目的は、比較的低いメモリ要件を有し、かつセキュリティ・レベル、鍵長、符号化・復号速度、メモリ要件、帯域幅をかなり柔軟に兼ね合わせることを可能にする様々なパラメータに依存する公開鍵暗号化システムを提供することである。
発明の概要
本発明は、鍵長が他の一般的な公開鍵暗号システムの鍵長に匹敵する鍵を、ベクトルの大きな集合からほぼ無作為に選択することを可能にし、適切な(たとえば、現状では=280)セキュリティ・レベルを備え、最も一般に使用されている公開鍵暗号システム、すなわち前述のべき乗暗号システムよりも1桁ないし2桁程度高速の符号化プロセスおよび復号プロセスを提供する。
本発明の公開鍵暗号システムの実施形態の符号化技法は、2つの数pおよびqを法とする多項式代数および整約に基づく混合システムを使用し、それに対して復号技法は、妥当性が基本確率理論に依存する非混合システムを使用する。本発明の公開鍵暗号システムのセキュリティは、多項式混合システムとpおよびqを法とする規約化の独立性との相互作用によってもたらされる。セキュリティは、実験によって観測されるように、たいていの格子では、最も短いベクトルよりもわずかに長いに過ぎない多数のベクトルがある場合に最も短いベクトルを見つけることが非常に困難であることにも依存する。
本発明の実施形態は、環Rのイデアルpおよびqを選択するステップと、環Rの要素fおよびgを生成するステップと、要素Fq、すなわちf(mod q)の逆数を生成し、Fp、すなわちf(mod p)の逆数を生成するステップと、gおよびFqを使用して得ることのできる積とmod qで合同であるhを含む公開鍵を生成するステップと、fおよびFpを得ることのできる専用鍵を生成するステップと、公開鍵およびランダム要素φを使用してメッセージmを符号化することによって符号化メッセージeを生成するステップと、専用鍵を使用して符号化メッセージeを復号することによって復号メッセージを生成するステップとを含む、デジタル・メッセージmを符号化し復号する方法の形態である。
本発明の他の特徴および利点は、以下の詳細な説明と添付の図面から容易に明らかになろう。
【図面の簡単な説明】
図1は、本発明の実施形態を実施する際に使用することのできるシステムのブロック図である。
図2は、この流れ図で引用された補助流れ図と共に、本発明の実施形態を実施する際に使用することのできる公開鍵暗号化システムの流れ図である。
図3は、公開鍵および専用鍵を生成するための、本発明の実施形態によるルーチンの流れ図である。
図4は、公開鍵を使用してメッセージを符号化するための、本発明の実施形態による流れ図である。
図5は、専用鍵を使用して符号化メッセージを復号するための、本発明の実施形態による流れ図である。
図6は、公開鍵および専用鍵を生成する、本発明の他の実施形態によるルーチンの流れ図である。
図7は、公開鍵を使用してメッセージを符号化するための、本発明の他の実施形態による流れ図である。
図8は、専用鍵を使用して符号化メッセージを復号するための、本発明の他の実施形態による流れ図である。
詳細な説明
図1は、本発明の実施形態を実施する際に使用できるシステムのブロック図である。2つのプロセッサ・ベース・サブシステム105および155は、セキュリティの保障されないチャネル50、たとえば電話やインターネット通信チャネルなどの有線通信チャネルまたは無線通信チャネルを介して通信するように示されている。サブシステム105はプロセッサ110を含み、サブシステム155はプロセッサ160を含む。プロセッサ110および160とそれに関連する回路を後述のようにプログラムすると、これらを使用して本発明の実施形態を実装し、本発明の方法の実施形態を実現することができる。プロセッサ110および160はそれぞれ、任意の適切なプロセッサ、たとえば電子デジタル・プロセッサまたはマイクロプロセッサでよい。任意の汎用プロセッサまたは特殊目的プロセッサ、あるいは本明細書に記載した機能を電子的または光学的に、あるいは他の手段によって実行することのできる他の機械または回路を使用できることが理解されよう。プロセッサはたとえば、Intel Pentiumプロセッサでよい。サブシステム105は通常、メモリ123、クロック・タイミング回路121、入出力機能118、モニタ125を含み、これらはすべて従来型の種類のものでよい。入力には、103で示したキーボード入力を含めることができる。通信はトランシーバ135を介して行われ、トランシーバ135は、モデム、または信号を伝達する任意の適切な装置を備えることができる。
この例示的な実施形態のサブシステム155は、サブシステム105と同様な構成を有することができる。プロセッサ160は、関連する入出力回路164、メモリ168、クロック・タイミング回路173、モニタ176を有する。入力にはキーボード155が含まれる。サブシステム155と外部との通信はトランシーバ162を介して行われ、この場合も、トランシーバ162はモデム、または信号を伝達する任意の適切な装置を備えることができる。
本発明の公開鍵暗号システム実施形態の符号化技法は、2つの数pおよびqを法とする多項式代数および整約に基づく混合システムを使用し、それに対して復号技法は、妥当性が基本確率理論に依存する非混合システムを使用する。[多項式が順序係数の好都合な表現(いくつかの係数がゼロであってよい、N個の順序係数を有するN−1次の多項式)であり、プロセッサが、指定された演算を係数に対して実行することが理解されよう。]本発明の公開鍵暗号システムのセキュリティは、多項式混合システムとpおよびqを法とする規約化の独立性との相互作用によってもたらされる。セキュリティは、実験によって観測されるように、たいていの格子では、最も短いベクトルよりもわずかに長いに過ぎない多数のベクトルがある場合に最も短いベクトルを見つけることが非常に困難であることにも依存する。
本発明の暗号システムは、M. Blum他著「An Efficient Probabilistic Public-Key Encryption Scheme Which Hides All Partial Information」(Advances in Cryptology: Proceedings of CRYPT0 84, Lecture Notes in Computer Science、第196巻、Springer-Verlag、1985年、289ページないし299ページ)およびS. Goldwasser他著「Probabilistic Encryption 」J. Computer and Systems Science 28(1984年)、270ページないし299ページ)に記載された確率暗号システムの一般的な枠組みに適合する。このことは、暗号化がランダム要素を含み、したがって各メッセージが多数の可能な暗号化を有することを意味する。符号化および復号ならびに鍵作成は、本発明の技法を使用して比較的高速にかつ容易に行われ、長さNのメッセージ・ブロックを符号化または復号するのに必要な演算はO(N2)個であり、したがって、RSAで必要とされるO(N3)個の演算よりもかなり高速である。鍵長はO(N)であり、R.J. McEliece著「A Public -Key Cryptosystem Based On Algebraic Coding Theory」(JPL Pasadena, DSN Progress Reports 42-44(1978年)、114ページないし116ページ)およびO. Goldreich等著「Public-Key Cryptosystems From Lattice Reduction Problems」(MIT-Laboratory for Computer Science再版、1996年11月)に記載されたような他の「高速」公開鍵システムで必要とされるO(N2)鍵長に匹敵する。
本発明の暗号システムの実施形態は、4つの整数パラメータ(N、K、p、q)と、整数係数を有するN−1次多項式の3つの集合Lq、Lφ、Lmとに依存する。この実施形態は、環R=Z[X]/(XN−1)で働く。要素F∈Rは多項式またはベクトルとして書かれる。
星印「*」はRの乗算を示す。この星印乗算は巡回畳み込み積、すなわち次式のF*G=Hとして明示的に与えられる。
(たとえば)qを法とする乗算を実行する際、係数はqを法として整約される。詳細は、付録1を参照されたい。
以下に公開鍵暗号システムの発明による実施形態の例を示す。例示を容易にするために非常に小さな数が使用されており、したがって、この例は暗号に関して安全ではない。例と共に、二重括弧([[ ]])内のマテリアルとして、現在の条件の下で暗号に関して安全な実際的な暗号システムを形成する動作パラメータについて説明する。特定のセキュリティ・レベルを達成する動作パラメータの詳細な議論は付録1に記載されている。付録1には、本発明の暗号システムの実施形態の、様々なアタック・タイプに対する耐性についても記載されている。
本発明の実施形態で使用される対象はN−1次の多項式である。
a1xN-1+a2xN-2+...+aN-1x+aN
上式で、係数a1,...,aNは整数である。本発明の「星印」乗算では、xNが1で置き換えられ、xN+1がxで置き換えられ、xN-2がx2で置き換えられ、以下同様である。[多項式をN組の数
[a1,a2,...,aN]
で表すこともできる。このような場合、星印積を畳み込み積とも呼ぶ。Nの値が大きい場合、実行するステップがN2個ではなくNlogN個程度である高速フーリエ変換法を使用して畳み込み積をより高速に計算することができる。]たとえば、N=5とし、2つの例示的な多項式を用いた場合、星印乗算は以下の数式を与える。
(x4+2x2-3x+2)*(2x4+3x3+5x-1)
=2x8+3x7+4x6+5x5-6x4+16x3-17x2+13x-2
=2x3+3x2+4x+5x-6x4+16x3-17x2+13x-2
=-6x4+18x3-14x2+17x+3
[[安全なシステムはたとえば、N=167またはN=263を使用することができる]][この実施形態は、xN−1のすべての倍数からなるイデアルを法とする整数係数を含む多項式の環を使用する。より一般的には、異なるイデアルを法とする多項式を使用することができる。さらに一般的には、他の何らかの環Rを使用することができる。環およびイデアルの詳細については、たとえば、I.N.Herstein著「Topics in Algebra」を参照することができる。
この実施形態の他の態様では、イデアルqなどの整数を法として多項式の係数が整約される。このことは基本的に、各係数をqで除し、係数をその剰余で置き換えることを意味する。たとえば、q=128であり、ある係数が2377である場合、2377を128で除すると18であり、剰余が73であるので、この係数は73で置き換えられる。しかし、「対称剰余」を使用した方が容易である。このことは、剰余が0ないしq/2である場合、係数はそのままであるが、q/2ないしqである場合は係数からqが減じられることを意味する。したがって、q=128に対称剰余を使用する場合、−55=73−128であるので2377は−55で置き換えられる。
この剰余プロセスが実行されていることを示すには、3重等号(≡)を符号「mod q」と共に使用する。以下に、2つの多項式の星印乗算を5を法とする規約化と組み合わせる例を示す。答えには対称剰余が使用される。
(x4+2x2-3x+2)*(2x4+3x3+5x-1)≡-6x4+18x3-14x2+17x+3
≡-x4-2x3+x2+2x-2(mod 5)
本発明の実施形態によって(かつ例示を容易にするために、上記で指摘した小さな数を用いて)公開鍵暗号システムを作成する際、第1のステップは整数パラメータN、K、p、qを選択することである。以下に例を示す。
N=5、K=1、p=3、q=128
[[安全なシステムはたとえば、N=167、K=6、p=3、q=216=65536を使用することができる]]好ましくは、pとqは互いに素であり、すなわち、1よりも大きな共通因子を有さない。イデアルpとイデアルqを互いに素にすることが望ましいことについては付録1に記載されている。以下のように、多項式のいくつかの集合が選択される。
Lg={係数が−2、−1、0、1、2である多項式}
Lφ={2つの−1、2つの1、1つの0を係数として有する多項式}
Lm={係数が−1、0、1である多項式}
[[安全なシステムはたとえば、以下の集合を使用することができる。
Lg={係数が−177ないし177である多項式}
Lφ={係数が40個の1、40個の−1、残りの0である多項式}
Lm={係数が−3ないし3である多項式}
(注: 多項式はN−1次を有し、したがって、この例の安全なパラメータの場合、多項式は166次を有する。さらに、符号化されている実際のメッセージmの係数をp、すなわちこの例ではp=3で除すると、このメッセージは剰余で構成される)]]。
集合Lgは、暗号システムの鍵を作成するために使用され、集合Lφはメッセージを符号化するために使用され、集合Lmは、可能なメッセージの集合である。たとえば、
2x4-x3+x-2は集合Lgに存在し、
x4-x3-x2+1は集合Lφに存在する。
鍵作成者Danは、この例の鍵作成を実施するとき、集合Lgから2つの多項式fおよびgを選択する。この簡略化された例ではK=1であり、したがって1つの多項式gのみが存在する。Danが次式を選択するものと仮定する。
f=x4-x3+2x2-2x+1
g=x4-x3+x2-2x+2
[[安全なシステムはたとえば、K+1個の多項式f,g1,...,gK∈LgをK=6と共に使用することができる。]]
本発明の要件は、fが、qを法とする逆数とpを法とする逆数を有さなければならないことである。このことは、次式が成立するように多項式FqおよびFpが存在しなければならないことを意味する。
Fq *f≡1(mod q)およびFp *f≡1(mod p)
周知のユークリッド・アルゴリズムを使用してFqおよびFpを算出することができる。たとえば、本明細書の付録IIを参照することができる。(いくつかのfが逆数を有さないことがある。この場合、Danは最初に戻り、別のfを選択する。)上記の例fでは、次式が成立する。
Fq=103x4+29x3+116x2+79x+58
Fp=2x4+2x
これがfの正しいFqであることを検査するには、以下の乗算を行うことができる。
Fq *f=(103x4+29x3+116x2+79x+58)*(x4-x3+2x2-2x+1)
=256x4+256x-127
≡1(mod 128)
同様に、Fpが正しいことを検査するには、以下の乗算を行うことができる。
Fp *=(2x4+2x)*(x4-x3+2x2-2x+1)
=6x3-6x2+6x-2
≡1(mod 3)
これで、鍵作成者Danが自分の公開鍵、すなわち、次式によって与えられる多項式hを作成する準備が完了した。
h≡Fq *g(mod q)
[[安全なシステムは、次式によって与えられるK個の多項式h1,...,hKを使用することができる。]]
hi≡Fq *gi(mod q)、i=1,2,...,K、K=6
この例では続いて、Danが次式を計算する。
Fq *g=(103x4+29x3+116x2+79x+58)*(x4-x3+x2-2x+2)
=243x4-50x3+58x2+232x-98
≡-13x4-50x3+58x2-24x+30(mod 128)
Danの公開鍵は以下の多項式である。
h=-13x4-50x3+58x2-24x+30
Danの専用鍵は多項式対(f,Fp)である。原則的に、Fpは常にfから計算することができるので、多項式f自体が専用鍵として働くことができる。しかし、実際には、Danはおそらく、Fpを事前に算出し保存しておく必要がある。
この例の次の部分における専用鍵による符号化について説明する。符号化側CathyがDanの公開鍵hを使用してDanにメッセージを送信する必要があると仮定する。Cathyは可能なメッセージの集合Lmからあるメッセージを選ぶ。たとえば、Cathyが以下のメッセージを送信すると仮定する。
m=x4-x3+x2+1
Cathyは、このメッセージを符号化するとき、集合Lφから無作為に多項式φを選択する。たとえば、Cathyは次式を選択する。
φ=-x4+x3-x2+1
Cathyは、無作為に選択したこの多項式φ、Danの公開鍵h(ならびにpおよびq、すなわち、公開鍵の一部)、Cathyの平文メッセージを使用し、以下の公式を使用して符号化メッセージeを作成する。
e≡pφ*h+m(mod q)
[[安全なシステムはK個の公開鍵h1,...,hKを、安全な例についてのK=6と共に使用することができる。Cathyは、メッセージを符号化するときに、集合LφからK個の多項式φ1,...,φKを無作為に選択し、次いでe≡pφ1 *h1+pφ2 *h2+...+pφK *hK+m(mod q)を計算することによって符号化メッセージeを作成することができる。]]別法として、hがpFq *g(mod q)と等しくされ、その場合、公式e≡φ*h+m(mod q)を使用してメッセージを符号化することができる。この例では、Cathyは以下の計算を行う。
pφ*h+m=3(-x4+x3-x2+1)*(-13x4-50x3+58x2-24x+30)+(x4-x3+x2+1)
=-374x4+50x3+196x2-357x+487
≡10x4+50x3-60x2+27x-25(mod 128)
したがって、Cathyの符号化メッセージは以下の多項式であり、
e=10x4+50x3-60x2+27x-25
Cathyはこの符号化メッセージをDanに送信する。
この例の次の部分における専用鍵を使用した復号について説明する。Danは、メッセージeを復号するためにまず、専用鍵fを使用して以下の多項式を計算する。
a≡f*e(mod q)
使用中の例では、Danは以下の計算を行う。
f*e=(x4-x3+2x2-2x+1)*(10x4+50x3-60x2+27x-25)
=-262x4+259x3-124x2-13x+142
≡-6x4+3x3+4x2-13x+14(mod 128)
したがって、多項式aは次式で表される。
a=-6x4+3x3+4x2-13x+14
次に、DanはFp、すなわち自分の専用鍵の他方の半分を使用して以下の計算を行う。
Fp *a(mod p)
この結果が復号メッセージである。したがって、この例では、Danは以下の計算を行う。
Fp *a=(2x4+2x)*(-6x4+3x3+4x2-13x+14)
=34x4-4x3-20x2+36x-38
≡x4-x3+x2+1(mod 3)
この復号がなぜ有効であるかの詳細な説明については、付録Iを参照することができる。
本発明の他の実施形態では、環は行列の環である。たとえば、環R=(整数係数を有するM×M個の行列の環)を使用することができる。
Rの要素を以下に示す。
上式で係数aijは整数である。加算および乗算は、行列に対して通常行われる加算および乗算であり、このプロセッサが行列のメンバーを、従来型の方式で記憶され処理される数として扱えることが理解されよう。N=M2である場合、Rの行列はN個の係数を有する。互いに素な整数pとqが選択される。
この場合、Danは、専用鍵を作成するために、RからK+2個の行列を選択する。これらの行列を
f,g,w1,w2,...,wK
と呼ぶ。これらの行列は、f,g,w1,...,wKがかなり小さな係数を有し、あらゆるwiが次式を満たすという特性を有するべきである。
wi≡0(mod p)
(言い換えれば、あらゆるwiのあらゆる係数がpの倍数である。)Danは、自分の鍵を作成するときに、pおよびqを法とするfおよびgの逆数を見つける必要がある。したがって、Danは、次式を満たすR内の行列Fp、Fq、Gp、Gqを見つける。
fFp≡I(mod p)
fFq≡I(mod q)
gGp≡I(mod p)
gGq≡I(mod q)
上式で、IはM×M識別行列である。一般に、これを実行するのは容易であり、何らかの理由で1つの逆数が存在しない場合でも、Danは新しいfまたはgを選択するだけでよい。
Danの公開鍵は、以下の条件によって決定されるK個の行列(h1,h2,...,hK)の並びである。
hi≡FqwiGq(mod q)(i=1,2,...,K)
(wiがpを法とするゼロと合同であることに留意されたい。)Danの専用鍵は4つの行列(f,g,Fp,Gp)である。原則的に、fおよびgのみを専用鍵として使用できるが、実際にはFp、Gpを事前に計算し記憶しておいた方が効率的である。
この行列の例の符号化について次に説明する。Cathyがメッセージmを符号化する必要があるものと仮定する。メッセージmは、pを法とする係数を有する行列である。Cathyは、自分のメッセージを符号化するために、ある条件を満たすいくつかの整数φ1,...,φKを無作為に選択する。たとえば、これらの整数としては、和φ1+...+φKが所定の値dと等しい非負整数を選択することができる。(φiが通常の整数であり、行列ではないことに留意されたい。同様に、φiは、識別行列の倍数とみなすことができ、したがって環Rのあらゆる要素と交換することができる。)
Cathyは、自分のφiを選択した後、以下の規則によって符号化メッセージeを作成する。
e≡φ1h1+φ2h2+...+φKhK+m(mod q)
次に、この行列の例の復号について説明する。Danが符号化メッセージeを受信しており、それを解読する必要があるものと仮定する。Danはまず、次式を満たす行列aを計算する。
a≡feg(mod q)
Danは、通常どおり、−q/2ないしq/2(すなわち、ゼロ対称係数)や0ないしq−1など、ある限られた範囲内でaの係数を選択する。
パラメータが適切に選択される場合、行列aは以下の和に丁度等しくなる。
a=φ1w1+φ2w2+...φKwK+fmg
(これは常に、qを法として真であるが、重要な点は、qが十分大きい場合に、上式が、qを法とする場合だけではなく厳密な等式になることである。)Danの次のステップは、たとえば次式のように、pを法としてaを整約することである。
b≡a(mod p)
wiのすべての係数をpで除することができるので、これは、以下のことを意味する。
b≡fmg(mod p)
最後に、Danは以下の計算を行い、
FpbGp(mod p)
最初のメッセージmを再生する。
前述のM×M行列の実施形態は優れた動作時間を有する。符号化は、加算しか必要とせず、M2個程度の演算を実行する。復号はM×M行列の2回の行列乗算を必要とし、したがって、M3個の演算を実行する。メッセージ長はM2程度であり、したがって、Nが固有メッセージ長(すなわち、N=M2)を示す場合、行列実施形態は、符号化にはO(N)個のステップを必要とし、復号にはO(N3/2)個のステップを必要とする。これに対して、多項式実施形態は、符号化にO(N2)個のステップを必要とし、復号にO(N2)個のステップを必要とし、RSA公開鍵システムは、符号化にO(N3)個のステップを必要とし復号にO(N3)個のステップを必要とする。
予備的な分析により、次元がN2+N(またはそれ以上)である格子を使用する必要があるのは、行列実施形態に対する固有格子アタックだけであることがわかっている。これは、多項式実施形態を解読するために使用される2N次元格子に対する著しいセキュリティの向上である。
暴力的(または潜在的なmeet−in−the−middle)アタックを回避するには、φiのサンプル空間をかなり大きくし、たとえば2100ないし2200にする必要がある。しかし、こうするのは困難である。たとえば、φiが、和dを有する非負の値として選択された場合、サンプル空間は、
個の要素を有する。したがって、たとえばK=15およびd=1024を選択した場合、2103.8個の要素を有するサンプル空間が得られる。
公開鍵サイズはKM2log2(g)ビットであり、専用鍵サイズは2M2log2(pq)ビットである。これらは共に実際的なサイズである。
図2は、公開鍵暗号化システムと共に使用できる基本手順を示し、本発明の実施形態による特徴を説明する参照される他の流れ図によって示されるルーチンを指す。ブロック210は、公開鍵情報および専用鍵情報の生成と、公開鍵の「公開」を表す。本発明の実施形態のルーチンについて図3の流れ図に関して説明する。この例では、この演算がプロセッサ・システム105で実行されるものと仮定することができる。公開鍵情報は、公開することができ、すなわち、公衆の任意のメンバー、または専用鍵保持者が暗号化メッセージを受信する必要のある所望の群に利用させることができる。通常、必ずしも必要ではないが、公開鍵保持者およびその公開鍵のディレクトリが維持されている中央公開鍵ライブラリ施設またはウェブサイトで公開鍵を利用可能にすることができる。この例では、プロセッサ・システム155のユーザがプロセッサ・システム105のユーザに秘密のメッセージを送信する必要があり、プロセッサ・システム155のユーザがプロセッサ・システム150のユーザの公開済みの公開鍵を知っているものと仮定する。
ブロック220は、所期のメッセージ受信側の公開鍵を使用して平文メッセージを符号化するためにメッセージ送信側(すなわち、この例ではプロセッサ・システム155のユーザ)によって使用することのできるルーチンを表す。本発明の実施形態によるこのルーチンについては、図4の流れ図に関して説明する。この場合、暗号化メッセージはチャネル50(図1)を介して送信される。
図2のブロック260は、暗号化メッセージを復号して平文メッセージを再生するルーチンを表す。この例では、この機能は、専用鍵情報を使用するプロセッサ・システム105のユーザによって実行される。本発明の実施形態の復号ルーチンについては図5の流れ図に関して説明する。
次に、図3を参照すると、全体的に図2のブロック210で表された、公開鍵および専用鍵を生成するルーチンの流れ図が示されている。このルーチンはこの例では、プロセッサ・システム105のプロセッサ110をプログラムするために使用することができる。ブロック305は、整数パラメータN、p、qの選択を表す。前述のように、Nは、生成される多項式fおよびgiの次数を決定し、pおよびqはそれぞれ、星印積を生成する際に使用される2つのイデアルである。ブロック315はK、すなわち使用される多項式giの数を表す。上記の簡略化された例では、Kは1であり、例示的で比較的安全な特定のシステムがK=6を使用できることに留意されたい。次に、ブロック325は無作為な多項式f、g1、g2...gKの選択を表す。係数はたとえば、乱数発生装置を使用して選択することができ、乱数発生装置は、利用可能なハードウェアまたはソフトウェアを使用して周知の方法で実装することができる。この実施形態では、各プロセッサ・システムが乱数発生装置を備え、乱数発生装置は図1ではそれぞれ、ブロック130および185で指定されている。
ブロック340は、選択済みの多項式fの逆数FqおよびFpが存在する場合に、それらの逆数を前述のように求めるためにユークリッド・アルゴリズムを応用することを表す。Fp、Fqが存在しない場合、再びブロック325に入り、新しい多項式fが選択される。ループ330は、定義済みの逆数を算出できる多項式が選択されるまで継続する。[所与の多項式について逆数が存在する確率は比較的高く、したがって一般に、この条件が満たされるまでにループ330を横断する回数は比較的少ないことが予期される。]次いで、ブロック350に入る。このブロックは前述のように、
h=Fq *g(mod q)
による公開鍵hの計算を表す。[K>1の場合、i=1,2,...,Kについて公開鍵構成要素hiがある。]ブロック360で表されるように、専用鍵は多項式f、FPとして保持され、この場合、ブロック370で表されるように、公開鍵を公開することができる。
図4は、平文メッセージmの符号化を実施するようにプロセッサ・システム155(図1)のプロセッサ160などのプロセッサをプログラムするルーチンの、図2のブロック240によって一般的に表される流れ図である。符号化されるメッセージが入力され(ブロック420)、ランダム多項式φが選択される(ブロック430)。[K>1の場合、K個の無作為多項式φ1,φ2,...,φKが選択される。]この多項式は、前述のように集合Lφの多項式でよく、ランダム係数は、任意のハードウェア手段またはソフトウェア手段、たとえば、乱数発生装置185によって選択することができる。次いで、符号化メッセージeを次式のように算出することができる(ブロック450)。
e=pφ*h+m(mod q)
上記で指摘したように、Kが1よりも大きい場合、符号化メッセージはe≡pφ1 *h1+pφ2 *h2+....+pφK *hK+m(mod q)になる。この符号化メッセージは、チャネル50を介して鍵保持者、すなわち、この例ではプロセッサ・システム105のユーザに送信する(ブロック460)ことができる。
図5は、図2で全体的にブロック260によって表された、暗号化メッセージを復号する本発明の実施形態によるルーチンの流れ図である。ブロック530は暗号化メッセージeの受信を表す。定義済みの多項式fおよびFpと整数N、p、qとを含む保持されている専用鍵情報が取り出される(ブロック550)。次に、ブロック570は次式の計算を表している。
a≡f*e(mod q)
次いで、本明細書ではm’として指定された復号メッセージを次式のように算出することができる(ブロック580)。
m’≡Fp *a(mod p)
図6、図7、図8は、前述の行列実施形態に関する流れ図である。図6は、全体的に図2のブロック210によって表された、公開鍵および専用鍵を生成するルーチンの流れ図である。前述のように、このルーチンをこの例で使用して、プロセッサ・システム105のプロセッサ110をプログラムすることができる。ブロック605は、整数パラメータN、p、qの選択を表し、Nは行列係数の数であり、pおよびqは互いに素な整数である。ブロック615はKの選択を表し、Kを選択することによって行列の数が決定される。次に、ブロック625はランダム行列f,g,w1,w2,...,wKの選択と、w1,w2,...,wKがすべて、pを法として0と合同であるという要件とを表す。この場合も、この目的のために乱数発生装置130(図1)を使用することができる。
ブロック640は、定義済みの行列Fp、Fq、Gp、Gqの決定を表す。これらの行列が存在しない場合、再びブロック625に入り、新しい行列fおよびgが選択される。ループ630は、定義済みの逆数を算出できる行列が選択されるまで継続する。次いで、ブロック650に入る。このブロックは、公開鍵、すなわち、以下の条件によって決定されるK個の行列(h1,h2,...,hK)のリストの算出を表す。
hi≡FqwiGq(mod q)(i=1,2,...,K)
ブロック660で表されているように、専用鍵は行列(f,g,Fp,Gp)として保持され、その場合、ブロック670で表したように公開鍵を公開することができる。
図7は、この行列実施形態の技法を使用して平文メッセージmの符号化を実施するようにプロセッサ・システム155(図1)のプロセッサ160などのプロセッサをプログラムする、全体的に図2のブロック240で表されたルーチンの流れ図である。符号化されるメッセージが入力され(ブロック720)、ランダム整数φ1,φ2,...,φKが選択される(ブロック730)。これらの整数は乱数発生装置185(図1)によって選択することができる。次いで、符号化メッセージeを次式のように算出することができる(ブロック750)。
e≡φ1h1+φ2h2+...+φkhk+m(mod q)
この符号化メッセージは、チャネル50を介して鍵保持者、すなわち、この例ではプロセッサ・システム105のユーザに送信することができる(ブロック760)。
図8は、図2で全体的にブロック260によって表された、この行列実施形態によって暗号化メッセージを復号するルーチンの流れ図である。ブロック830は暗号化メッセージeの受信を表す。定義済みの多項式F、g、Fp、Gpと整数N、p、qとを含む保持されている専用鍵情報が取り出される(ブロック850)。次に、ブロック870は次式の計算を表している。
a≡feg(mod q)
次に、aは、次式のように、pを法としてbに整約される(ブロック880)。
b≡a(mod p)
次いで、次式のように復号メッセージが算出される(ブロック890)。
m’≡FpbGp(mod p)
特定の好ましい実施形態を参照して本発明を説明したが、当業者には本発明の趣旨および範囲内の変形形態が企図されよう。たとえば、公開鍵または専用鍵を任意の適切な媒体、たとえば「スマート・カード」上に記憶し、符号化および/または復号を実行できるマイクロプロセッサをこのスマート・カードに備え、それによって暗号化メッセージをスマート・カードへ伝達し、かつ/あるいはスマート・カードから伝達することができることが理解されよう。
NTRU:環ベースの公開鍵暗号システム
JEFFREY HOFFSTEIN、JILL PIPHER、JOSEPH H.SILVERMAN
要約 NTRU、すなわち新規の公開鍵暗号システムについて説明する。NTRUは、鍵がかなり短く容易に作成されること、高速であること、およびメモリ要件が低いことを特徴とする。NTRUの符号化および復号は、基本確率理論に基づくクラスタ化原則と組み合わされた、多項式代数によって提案されている混合システムを使用する。NTRU暗号システムのセキュリティは、多項式混合システムと、互いに素な2つの整数pおよびqを法とする整約の独立性との相互作用によってもたらされる。
目次
0.はじめに
1.NTRUアルゴリズムの説明
2.パラメータの選択
3.セキュリティ分析
4.実施にあたって考慮すべき点
5.NTRUの適度なセキュリティ・パラメータ
6.他のPKCSとの比較
付録A.基本補題
§0.はじめに
DiffeおよびHellman[4]が、どのようにすれば1方向関数を使用して効率的で計算コストの低い公開鍵暗号を作成できるかについて説明して以来、このようなシステムの作成にかなりの関心が払われている。現在の所、最も広く使用されている公開鍵システムはRSAである。RSAは、1978年にRivest、Shamir、Adelmanによって作成されたものであり[10]、大きな数を因数分解することが困難であることに基づく。他のシステムには、誤り補正符号に依存するMcElieceシステム[9]と、格子整約問題の難点に基づくGoldreich、Goldwasser、Halevi[5]の最近のシステムが含まれる。
この論文では、新規の公開鍵暗号システムについて説明する。この暗号システムをNTRUシステムと呼ぶ。符号化手順では、多項式代数と2つの数pおよびqを法とする整約に基づく混合システムを使用し、これに対して、復号手順では、妥当性が基本確率理論に依存する非混合システムを使用する。NTRU公開鍵暗号システムのセキュリティは、多項式混合システムと、互いに素な2つの整数pおよびqを法とする整約の独立性との相互作用によってもたらされる。セキュリティは、(実験によって観測されるように)、たいていの格子では、(適度に短いベクトルではなく)極めて短いベクトルを見つけることが困難であることにも依存する。
この論文で発表する内容は、すでに広く配布されているが未公表の前刷り[7]とは2つの主要な点で異なる。第1に、より良好な動作特性を有するシステムを生成するために使用できる新しいパラメータKを導入した。第2に、主として、eメールを介してDonCoppersmith、Johan Hastad、Adi Shamirから頂いた多数のコメントと最近の論文[3]中の多数のコメントに基づいて、格子ベースのアタックの分析を展開し明確化した。この機会を利用して、この研究に関心を抱き援助していただいた上記の各氏に対して謝意を表したい。
NTRUは、[1]および[6]に記載されたように確率暗号システムの一般的な枠組みに適合する。このことは、暗号化がランダム要素を含み、したがって各メッセージが多数の可能な暗号化を有することを意味する。NTRUを用いた符号化および復号は極めて高速であり、鍵の作成は高速で容易である。詳細は第4章および第5章を参照されたいが、NTRUでは、長さNのメッセージ・ブロックを符号化または復号するのに必要な演算がO(N2)個であり、RSAで必要とされるO(N3)個の演算よりもかなり高速であることに留意されたい。さらに、NTRU鍵長はO(N)であり、[9,5]など他の「高速」公開鍵で必要とされるO(N2)鍵長に匹敵する。
§1 NTRUアルゴリズムの説明
§1.1 表記法
NTRU暗号システムは、4つの整数パラメータ(N、K、p、q)と、整数係数を有するN−1次多項式の3つの集合Lg、Lφ、Lmに依存する。環R=Z[X]/(XN−1)を使用する。要素F∈Rを多項式またはベクトルとして書く。
▲×▼を使用してRの乗算を示す。この星印乗算は、巡回畳み込み積として明示的に与えられる。
(たとえば)qを法とする乗算を行う際、qを法として係数を整約する。
注 原則的に、積F▲×▼Gの計算にはN2回の乗算が必要である。しかし、NTRUによる典型的な積の場合、FとGのうちの一方が小さな係数を有し、したがって、F▲×▼Gの計算は非常に高速である。一方、Nが大きいとみなされる場合は、高速フーリエ変換を使用してO(NlogN)個の演算で積F▲×▼Gを計算した方が高速である。
§1.2 鍵の作成
NTRU鍵を作成する場合、Danは、K+1個の多項式f,g1,...,gK∈Lgを無作為に選択する。多項式fは、qおよびpを法とする逆数を有するという追加の要件を満たさなければならない。パラメータが適切に選択される場合、これはfの大部分の選択肢について真であり、これらの逆数の実際の計算は、修正されたユークリッド・アルゴリズムを使用して容易に行うことができる。これらの逆数をFqおよびFpによって示す。
Fq▲×▼f≡1(mod q) および Fp▲×▼f≡1(mod p) (1)
Danは次に、以下の数量を計算する。
hi≡Fq▲×▼gi(mod q) 1≦i≦K (2)
Danの公開鍵は、以下に示す多項式の並びである。
(h1,h2,...,hK)
Danの専用鍵は単一の多項式fである。ただし、実際には、DanはFpを記憶する必要がある。
§1.3 符号化
Cathy(符号化側)がDan(復号側)にメッセージを送信する必要があるものと仮定する。Cathyはまず、1組の平文Lmからメッセージmを選択する。次に、CathyはK個の多項式φ1,...,φK∈Lφを無作為に選択し、Danの公開鍵(h1,...,hKを使用して以下の計算を行う。
これが、CathyがDanに送信する符号化メッセージである。
§1.4 復号
DanがCathyからメッセージeを受信しており、自分の専用鍵fを使用してこのメッセージを復号するものと仮定する。これを効率的に行うために、Danは第1.1節で説明した多項式Fpを事前に計算しておくべきである。
eを復号するために、Danはまず以下の計算を行う。
a≡f▲×▼e(mod q)
この場合、Danは−q/2ないしq/2の間隔でaの係数を選択する。次に、Danは、aを整数係数を有する多項式とみなして、以下の計算を行うことによってメッセージを再生する。
Fp▲×▼a(mod p)
注 パラメータ値が適切である場合、この復号手順によって最初のメッセージが再生される確率は極めて高い。しかし、ある種のパラメータ選択肢では、復号が失敗することがあり、したがっておそらく、各メッセージ・ブロックにいくつかの検査ビットを含めるべきである。復号が失敗する通常の原因は、メッセージのセンタリングが不適切であることである。この場合、Danは、わずかに異なる間隔、たとえばxがある小さな(正または負の)値である場合の−q/2+xないしq/2+xでa≡f▲×▼e(mod q)の係数を選択することによってメッセージを回復することができる。xのどの値も機能しない場合には、間隔障害があり、メッセージを容易に復号することはできない。パラメータ値が適切に選択される場合には、間隔障害が起こることはまれであり、したがって、実際上間隔障害を無視することができる。
§1.5 なぜ復号が機能するか
Danが計算した多項式aは以下の数式を満たす。
この最後の多項式について検討する。
パラメータの選択が適切である場合は、(ほぼ常に)すべての係数が−q/2とq/2の間に位置し、したがって、qを法として係数が整約される場合でもこの多項式は変化しない。このことは、Danが、qを法とするf▲×▼eの係数を−q/2ないしq/2の間隔に整約するときに、以下の多項式を厳密に再生することを意味する。
次いで、pを法としてaを整約すると、多項式f▲×▼m(mod p)が与えられ、Fpによる乗算によってメッセージm(mod p)が取り込まれる。
§2 パラメータの選択
§2.1 表記およびノルム推定
要素F∈Rの幅を次式のように定義する。
我々の表記が示すように、これは、R上の一種のL∞ノルムである。同様に、次式によってR上の対称L2を定義する。
(同様に、
はFの係数の標準偏差である。)
前提 任意のε>0について、ε、N、Kに応じて定数c1、c2>0があり、したがって、無作為に選択された多項式F1,...,FK、G1,...,GK∈Rについて、これらの多項式が次式を満たす確率は1−εよりも大きくなる。
もちろん、この前提は、比c2/c1が小さなεに対して非常に大きい場合には、実際的な観点から無用である。しかし、NおよびKが適度に大きな値を有し、εの値が非常に小さい場合でも、定数c1、c2が極端な値を有することはないことが判明している。このことは、実験によって多数の状況で検証されており、この論文において理論的な証拠の概要を示す。
§2.2 サンプル空間
典型的なサンプル空間の例として以下のものを使用する。
Lg={g∈R:gは−(r−1)ないし(r−1)/2の係数を有する}
Lφ={φ∈R:φは、1に等しいd個の係数と、−1に等しいd個の係数を有し、残りは0である}
Lm={m∈R:mは−(s−1)ないし(s−1)/2の係数を有する}
後で、セキュリティを達成するためにr、d、sが満たさなければならない様々な制約があることが理解されよう。また、あらゆるφ∈LφがL2ノルム
を有し、それに対して、平均要素g∈Lgおよびm∈LmがL2ノルム
を有することにも留意されたい。表記を容易にするために、Lg、Lφ、Lmの要素の平均L2ノルムをLg、Lφ、Lmと書くことにする。
厳密に必要なことではないが、
という追加の仮定を行う。この仮定によって、可能な格子アタックを分析すると共に、そのようなアタックを有効でなくすことが容易になる。一例として
を選択すると仮定する。この場合、
が選択される。したがって、無作為にmの係数にpを加算し、mの係数からpを減算することによって、mに含まれる固有mod p情報の「密度を高くする」必要がある。
§2.3 復号基準
§1.5で説明したように、|Σpφi▲×▼gi+f▲×▼m|∞<qである場合、Danは符号化メッセージmを復号することができる。上記の前提の不等式(3)を使用して(Kの代わりにK+1を用い、εとして十分に小さな値を選択する)以下の推定を行うことができる。
したがって、(確率1−εで)復号を行うために、Danは、以下の復号制約を満たすパラメータを選択する必要がある。
c2pLgLφ(K+1)<q (4)
§3 セキュリティ分析
§3.1 Meet−in−the−middleアタック
説明を簡単にするために(かつアタッカを助けるために)、K=1であり、したがって、符号化メッセージがe≡φ▲×▼h+m(mod q)として表されるものと仮定する。Andrew Odlyzkoは、φに対して使用することのできるmeet−in−the−middleアタックがあると指摘しており、専用鍵fにも同様なアタックが適用されると考えられる。簡単に言えば、fをf=f1+f2に分割し、f1▲×▼eを−f2▲×▼eと突き合わせ、対応する係数がほぼ同じ値を有するような(f1、f2)を見つける。したがって、(たとえば)280のセキュリティ・レベルを得るには、約2160個の要素を含む集合からf、g、φを選択しなければならない。
§3.2 多重送信アタック
やはり説明を簡単にするために、K=1と仮定する。Cathyが、同じ公開鍵と異なるランダムφを使用して単一のメッセージmを数回にわたって送信する場合、アタッカBettyは、メッセージの大部分を再生できると考えられる。簡単に言えば、Cathyがei≡φi▲×▼h+m(mod q)(i=1,2,...,r)を送信すると仮定した場合、Bettyは(ei−e1)▲×▼h-1(mod q)を計算し、それによってφi−φ1(mod q)を再生することができる。しかし、φの係数は非常に小さいので、Bettyはφi−φ1のみを再生し、これからφ1の多数の係数を再生する。rが適度なサイズ(たとえば、4または5)である場合でも、Bettyは、brute forceによってすべての可能性を試験するのに十分なφ1を再生し、それによってmを再生する。したがって、基本メッセージの他の何らかのスクランブリングを行わずに多重送信を行うことは好ましくない。Bettyが単一のメッセージをこのように復号する場合でも、この情報は、他のメッセージを復号するうえで助けとならないことに留意されたい。
§3.3 格子ベースのアタック
まず格子整約に関するいくつかの語について説明する。格子整約の目標は、所与の格子M内の1つまたは複数の「小さな」ベクトルを見つけることである。理論的には、M内の最小のベクトルはしらみつぶし的探索によって見つけることができるが、実際には、Mの次元が大きい場合、これは不可能である。Schnorr[11、12]およびその他によって様々な改良を施されたLenstra−Lenstra−Lovasz[8]のLLLアルゴリズムでは、多項式時間でMの最小ベクトルが見つかるが、次元の大きな(たとえば、≧100)たいていの格子では、最小ベクトルは見つからず、最小のLLL判定可能ベクトルと実際の最小ベクトルとの間のギャップは次元と共に指数関数的に増加するようである。格子アタックに対するNTRUのセキュリティについて説明するために、大きな次元の格子に関する以下の3つの仮説を考える。
(H1)たいていの格子Mでは、Mの最小非ゼロ・ベクトルの長さσ(M)は次式を満たす。
したがって、v∈Mが次式を満たす場合、
vはほぼ同じ長さの指数関数的に多数のベクトルに隠される。
(H2)格子Mが、(H1)によって説明した予期される最短ベクトルよりも小さなベクトルwを有するが、他の場合には「ランダムな」格子であるものと仮定する。wが次式を満たす場合、
格子整約によってwが見つかる可能性は非常に低い。
(H3)(H2)の状況であると仮定する。この場合、格子整約方法によって算出される最小非ゼロ・ベクトルvLLLはほぼ確実に次式を満たす。
|vLLL|≧κdim(M)|w|
注 仮説(H2)および(H3)に現われる格子整約定数kは、実験および経験によって決定しなければならない。これは、RSAPKCSを用いた場合と同様であり、セキュリティは、積pqを因数分解する現在の機能の推定に依存する。これは、[5]に記載されたPKCSにより類似しており、PKCSのセキュリティは、格子の小さな(ほぼ直交化された)基を見つけるのが困難なことに直接関連している。次元の大きな(≧100)格子を用いた実験によって、κ=1.51/100を使用できることがわかっている。(たとえば、[11]および[12]を参照されたい。)因数分解が進むにつれて、RSA PKCSで大きな素数を使用することが必要になり、したがって、格子の整約が進むにつれて、より小さな値のkとそれに対応するより大きなパラメータをNTRUで使用することが必要になるのは間違いない。また、700よりも大きな次元の格子については仮説(H2)および(H3)を仮定するだけでよい。このような高次元の格子では、場合によってはSchnorrのブロック整約改良を含むLLLアルゴリズムでも長時間を必要とする。次元が約300の格子について仮説(H2)および(H3)を仮定する場合、ずっと優れた動作特性を有するNTRUパラメータを選択することができる。
§3.3.1 鍵fに対する小格子アタック
まず、恐らく最も自然な格子から始め、すなわち、任意の1つのhiを選択し、hi▲×▼f(mod q)も小さいという特性を有する小さなベクトルfを探索する。これを行うには、hi=[hi1,...,hiN]とし、以下の行列の列によって生成される格子Mを検討する。
将来の表記に関する都合上、この行列を次式のように書く。
アタックを最適化するためにアタッカによって数量λが選択される。Mは次式を満たすと考えられる。
dim(M)=2NおよびDisc(M)=λNqN
考慮すべき2つの問題がある。第1の問題は、Mに短いベクトルとして埋め込まれる実際の鍵fである。Mが以下の目標ベクトルを含み、
vtarg=[λfN,...,λf1,gi1,...,giN]
vtargがわかることによってfを再生できることに留意されたい。しかし、vtargの長さを次式のように算出することができる。
仮説(H1)によれば、|vtarg|2が以下の不等式を満たす場合、fはアタックを受けても安全である。
言い換えれば、次式が成立する必要がある。
アタッカは左辺を最小化したいので、アタッカの視点からの最適なλはλ=1(補題A.1参照)である。したがって、次式が成立する場合は安全である。
考慮すべき第2の点は、M内の他のある小さなベクトルによって、アタッカがメッセージを復号できるかどうかである。したがって、任意の小さなベクトル[f’,g’]∈Mは、f’とhi▲×▼f’≡g’(mod q)が共に小さいという特性を有する。しかし、アタッカが以下の計算を行った場合、
qを法とする小さな係数を有するのは、j=iを含む項だけである。したがって、単一のhiを小さくするf’は復号鍵としては働かない。このことは、すべてのhjを同時に検討していることを示し、したがって次の格子に進む。
§3.3.2 鍵fに対する大格子アタック
アタッカは、1つのhiのみを使用するのではなく、hiのある部分集合を使用して格子を形成することができる。アタッカが、h1,...,hk(1≦k≦K)を使用し、以下の行列の列によって生成される格子Mを形成するものと仮定する。
(前の節の略号を使用している)この格子は次式を満たす。
dim(M)=(k+1)NおよびDisc(M)=λNqkN
この格子は、(自明のショートハンドを使用する)目標ベクトルを含む。
vtarg={λf,g1,g2,...,gk}
(より厳密に言えば、fの座標を反転する必要がある。)この目標ベクトルは以下の長さを有する。
仮説(H2)によれば、vtargの長さが次式を満たしているかぎり、格子整約ではvtargを見つけることはできない。
したがって、次式が成立する場合にはアタックを受けても安全である。
前述のように、アタッカはλを選択して左辺を最小化する。この場合も、λ=1の場合に最小値が得られ(補題A.1参照)、したがって、次式が成立するかぎり仮説(H2)の下で実際の鍵は安全である。
§3.3.3 スプリアス鍵fに対する大格子アタック
アタッカは、真の鍵fを探索するのではなく、復号鍵として働く他の何らかの鍵Fを見つけることを試みることがある。F自体と各積hj▲×▼F(mod q)をスプリアス鍵にするには、これらを小さくしなければならない。話を厳密にするために、アタッカがFを見つけ次式を計算するものと仮定する。
Gj≡hj▲×▼F(mod q)(j=1、2,...,K)
次式の幅(L∞ノルム)が一般に、
φ1▲×▼G1+φ2▲×▼G2+...+φK▲×▼GK+m▲×▼F
あるラッピング係数Wについて少なくともWqであることを知る必要がある(システムが安全であるにはWをどのくらい大きくしなければならないかの問題については第4章で論じる)。
アタッカは、スプリアス鍵Fを見つけるために、第3.3.2節で説明した格子Mを取り出し、格子整約技法を使用して小さなベクトルvLLLを見つける。M内の最小非ゼロ・ベクトルはベクトルvtarg={λf,g1,...,gK}であり、したがって、仮説(H3)によれば次式が成立する。
|vLLL|2≧κ(K+1)N|vtarg|2
vLLL=[λF,G1,G2,...,GK]とすると、次式が成立することがわかる。
格子整約によって得られるベクトルvLLLは、サイズが多少とも無作為に分散する成分を有する。特に、すべての長さ|λF|2,|G1|2,...,|GK|2がほぼ同じであり、したがって、(ほぼ)次式が得られる。
|λF|2,|G1|2,...,|GK|2≧κ(K+1)NLg
一方、これと(3)を使用して以下の推定を行うことができる。
|φ1▲×▼G1+φ2▲×▼G2+...+φK▲×▼GK+m▲×▼F|∞
≧c1(|φ1|2・|G1|2+...+|φK|2・|GK|2+|m|2・|F|2)
=c1Lφ(|G1|2+...+|GK|2+|F|2)
≧c1(K+1)LφLgκ(K+1)N
したがって、ラッピング係数Wを用いた場合、パラメータとして次式を満たすパラメータが選択されるかぎり、スプリアス鍵を得ることはできない。
Wq≦c1(K+1)LφLgκ(K+1)N (7)
(これを復号不等式(4)と比較することができる)
§3.3.4 個々のメッセージに対する大格子アタック
考慮しなければならない他の種類の格子アタックがある。アタッカは、あらゆるメッセージを復号する鍵を探索するのではなく、個々のメッセージを探索する格子を構築することができる。以下の格子について考える。この格子は第3.3.2節で使用した格子に類似している。以下の行列の列によって生成される格子をMとする。
この格子は次式を満たし、
dim(M)=(K+1)NおよびDisc(M)=λKNqN
以下のベクトルを含む(自明の表記を使用する)。
[λφ1,λφ2,...,λφK,e−m]
この格子がこのベクトルを含むのは、符号化メッセージeが以下の規則に従って作成されたからである。
pφ1▲×▼h1+pφ2▲×▼h2+...+pφK▲×▼hK+m≡e(mod q)
e−m(mod q)の係数が小さくないので(8)が短いベクトルになる可能性が低いことは明らかである。しかし、アタッカはeの値を知っており、したがって、既知の非格子ベクトル[0,0,...,0,e]に近いベクトルをMで探索することができる。探索中の格子ベクトルおよび既知の非格子ベクトルからの距離は、以下のベクトルの長さである。
vtarg=[λφ1,λφ2,...,λφK,−m]
これは、非斉次格子問題の例である。非斉次問題は斉次問題よりもいくらか難しくなる傾向があるが、重大な誤りを犯すのを回避するために、アタッカが非斉次問題を斉次問題を解くのとまったく同じ程度に解くことができると仮定する。したがって、アタッカが以下の長さのベクトルを見つけられるかどうかを調べる必要がある。
(あらゆるm∈Lmおよびあらゆるφ∈Lφについて|m|2=p|φ|2であることを想起されたい)仮説(H2)によれば、次式が成立する場合、
あるいは言い換えれば、次式が成立する場合には、アタックは失敗する。
アタッカは、λ=p(補題A.1参照)を使用することによって左辺を最小化し、したがって、次式が成立する場合、アタックは失敗する。
この数式は、これによって補われる(6)と比較することができる。
§3.3.5 格子アタック・パラメータ制約の要約
本節の前の部分では、様々な格子アタックについて説明し、これらのアタックが成功するのを妨げる、パラメータに対する制約を考案した。すべての制約を満たすパラメータの選択肢が存在するかどうかという問題が残っている。読者に好都合なように、本節のすべての不等式を、真の鍵fの所有者がメッセージを復号する場合に必要な基本不等式(4)と共にリストする。
任意の固定値c1、c2、p、Lφ>0であり、p、k、W>1である場合、これらの不等式には常に解N、k、Lg、qが存在すると考えられる。次に、解を求める際に助けとなるいくつかの注意事項について述べる。
まず、これらの不等式を様々な方法で組み合わせる。まず、(4)と(7)を組み合わせると(ある代数計算の後で)次式が与えられる。
(基本的に)c1、c2、κを自由に選択することはできず、Wが所望のセキュリティ・レベルに応じて5と10の間で選択されることに留意されたい。これによって、通常はかなり小さなpが選択される。この場合の重要な点は、(10)が(K+1)Nの下限を与え、これを超えるとほとんど制御できなくなることである。
次に、(4)と(5)を組み合わせると次式が得られる。
qを選択する際にいくらか融通を利かせるには、Lgの値として、指定されたこの下限よりも(たとえば)1.5倍ないし2倍大きな値を選択するとよい。
たとえば、LφおよびLgが第2.2節で説明したような値である場合、
であり、大部分のg∈Lgは
を満たす。したがって、(11)を使用してLgを選択した後、
を選択することができ、この場合、大部分のg∈Lgは所望のLgに非常に近いL2ノルムを有する。さらに、Lgから要素を選択するのは符号作成者のDanだけであり、このような選択は1度行うだけでよいので、Danが、ほぼLgのノルムを有するLgで必要なK+1個の多項式を見つけるのは難しいことではない。長さの制約がある場合でも、実際にはrNが少なくとも2500になる傾向があるので、Lg内のそのような多項式の数はアタッカがしらみつぶし的探索を介して検査できるよりもはるかに多い。
§4 実施にあたって考慮すべき点
§4.1 セキュリティ係数およびラッピング係数
アタッカが、格子整約によって生成されたスプリアス鍵を使用するときにどの程度のラッピングを期待できるかを、ラッピング係数Wが制御することを想起されたい。Wが小さすぎ、たとえばW=1.5である場合、アタッカは多数の(場合によっては最も多くの)係数を回復することができる。これは、これらの値が平均の周りに集中する傾向があるからである。厳密には、アタッカはN個の未知の係数に関して(たとえば)0.95N個の一次方程式を再生し、この場合、暴力的探索によってアタックが終了する。
CoppersmithおよびShamir[3]は、Wがこれよりも大きなビットであり、たとえばW=2.5である場合でも、アタッカはクラスタ化により、N個の未知の係数について約0.67N個の一次方程式を得ることができると考えた。CoppersmithおよびShamirは次いで、アタッカが2つの独立のスプリアス鍵を構築し適用した場合、システムの解を求めるのに十分な数の独立の等式を得ることができると考えている。CoppersmithおよびShamirはさらに、W=4である場合、いくつかの短いベクトルを使用し、ある種の誤り補正技法を使用することによって、アタックを成功させることができるが、Wが10程度である場合には、この種のアタックは成功しないと述べている。詳細については[3]を参照されたい。
これらのことに基づいて、ラッピング係数W=10を使用してサンプル動作パラメータを構築する。
§4.2 サンプル動作パラメータ
この節では、第3節の仮説の下で安全であるNTRU PKCSの2組の使用可能なパラメータを考案する。これらのパラメータ集合によってかなり高度なメッセージ拡張が行われ、したがって、メッセージ拡張を管理可能な2対1に低減するNTRUの2段階バージョンに関する以下の第4.3節を参照されたい。
まず、実験による証拠によって得られた3つの値と、スプリアス鍵アタックを妨げるのに十分なラッピングが確保されるように選択された第4の値から始める。
c1およびc2の値は所望の範囲の広範囲な数値試験によって決定されているが、これらの値を確率的に正当化するにはどうすべきかについてかなり良好な考え方がある。上記の第4.1節でラッピング係数W=10について論じた。最後に、第3.3節の注で格子整約定数κの選択について論じた。ただし、格子整約技法の将来の改良に備えるために、セキュリティを意識するユーザはこの代わりにκ=1.31/100を選択し、他のパラメータをわずかに変更することができる。
まず選択肢p=2について考える。第3.3.5節の不等式(10)によって、次式を選択する必要があることがわかる。
(K+1)N≧1009.79
したがって、以下の値を選択する。
N=167およびK=6
(Nと(N−1)2が共に素数であると好都合である。ただし、これは必要なことではない)。この選択によって、残りの係数を選択するための十分な許容差が与えられる。
Lφを第2.2節と同様に選択し、d=20とし、したがって、
となる。これはmeet−in−the−middleアタックに対する十分なセキュリティを与える。さらに、
とし、これらの選択肢を(11)に代入すると、Lg>414.07が与えられる。いくらかの許容差を与えるためにγ=167を選択する。これによって、Lgの期待値は622.98に等しくなる。最後に、第3.3.5節の5つの基本不等式により、qが次式を満たさなければならないことがわかる。
213.6924<q≦max{214.2766,214.7278,214.6238,252.481}
(もちろん、第3.3.5節の不等式(6k)は実際には、各1≦k≦6ごとに1つの6つの不等式である。)したがって、q=214−1=16383を選択することができる。(gcd(p,q)=1が必要であることに留意されたい。)簡単に言えば、第3.3節の仮説を仮定した場合、以下のパラメータによって安全なNTRUPKCSが与えられる。
N=167,k=6,q=16383=214-1,p=2,r=167,d=20,s=3
この場合、第2.2節で説明したように、Lφ、Lg、Lmが選択される。これらのパラメータでは以下の値が得られる。
公開鍵長=Nklog2q=14028ビット
専用鍵長=Nlog2pr=1400ビット
メッセージ拡張=logq/logp=14対1
同様な分析を使用して、より大きな値のpを有する第2の1組の安全なNTRUパラメータを構築する。すべての演算が216よりも小さな数に対して行われ、qが2のべき乗であり、したがって、剰余を含むqによる除算が簡単なシフト演算になるので、これらのパラメータは既存のマイクロプロセッサにうまく適合するように思われる。以下の値を選択する。
N=167,K=6,q=216,p=3,r=354,d=40,s=7
これらのパラメータは
と、以下の値を与える。
公開鍵長=NKlog2q=16032ビット
専用鍵長=Nlog2pr=1678ビット
メッセージ拡張=logq/logp=10.1対1
§4.3 2段階NTRUおよび改良型メッセージ拡張
第4.2節に示したサンプル・パラメータのNTRU PKCSはかなり大きなメッセージ拡張を有する。この拡張を減少する1つの方法は、より大きな値のpを使用することであるが、この場合、(K+1)Nの値が著しく大きくなり、そのため両方の鍵サイズが大きくなり計算効率が低下する。
メッセージ拡張を減少する他の方法は、実際のメッセージを符号化するための1種のワンタイム・パッドとして各NTRUメッセージを使用することである。NTRUのこの2段階バージョンでは、符号化側のCathyがランダム多項式m∈Lmを選択し、これに対して、Cathyの実際の平文メッセージMとしては、qを法とする任意の多項式が許容される。Cathyは、メッセージを符号化するために、以下の2つの等式を計算する。
符号化メッセージは対(e,E)である。
復号プロセスは前述のプロセスと類似しているが、1つの余分のステップを含む。したがって、復号側のDanは、第1.4節で説明した手順に従って多項式mを計算する。Danは次いで、次式を計算することによってメッセージを再生する。
E−m▲×▼h1(mod q)
平文メッセージMの長さがNlog2qビットであり、それに対して符号化メッセージ(e,E)の長さが2Nlog2qビットであり、したがってメッセージ拡張は2対1に減少すると考えられる。
別の点について述べる。Cathyは同じ多項式および法を使用してmとMの両方を符号化している。これによってセキュリティが損なわれることは考えられないが、セキュリティを強化した場合、Cathyは異なる(公開)多項式Hおよび法QについてE≡m▲×▼H+M(mod Q)を計算することができる。
§4.4 理論上の動作仕様
この節では、NTRU PKCSの理論上の動作特性について考える。4つの整数パラメータ(N、K、p、q)と、第2.2節で説明したように、それぞれ、整数r、d、sによって決定される、3つの集合Lg、Lφ、Lmと、実験的に決定される定数c1、c2、κと、ラッピング定数Wがある。セキュリティを保証するには、これらのパラメータとして、第3.3.5節にリストした不等式を満たすパラメータを選択しなければならない。以下の表は、これらのパラメータで表したNTRU PKCS動作特性を要約したものである。
第4.4節で説明した2段階NTRUについては以下の項目が異なる。
§4.5 実施上の他の考慮すべき点
NTRUを実施する際に考慮すべき他のいくつかの因子について簡単に述べる。
(1)gcd(q,p)=1であることが重要である。基本的にNTRUはこの要件がなくても働くが、実際には、gcd(q,p)>1である場合、セキュリティが低下する。極端な範囲では、p|qである場合、(exercise)符号化メッセージeはe≡m(mod p)を満たし、NTRUのセキュリティは完全に失われる。
(2)大部分のfがpおよびqを法とする逆数を有することが望ましい。というのは、そうでない場合、鍵の作成が困難になるからである。第1の要件はgcd(f(1),pq)=1であるが、これが、ある選択されたfに対して無効であった場合、符号作成者はこの代わりにたとえば、f(X)+1またはf(X)−1を使用することができる。gcd(f(1),pq)=1と仮定すると、Nとして素数を選択し、pおよびqを除する各素数Pについて、(Z/NZ)*中のPのオーダーを大きくし、たとえばN−1または(N−1)/2にした場合、ほぼすべてのf、が必要な逆数を有する。たとえば、これは、(N−1)/2自体が素である(すなわち、NがSophie Germain素数である)場合は確実に真である。このような素数の例には107および167が含まれる。
§5 NTRUの適度なセキュリティ・パラメータ
現実には、高速および/または低メモリ要件が重要であり、適度なセキュリティ・レベルが受け入れられる多数の状況がある。この場合、実際の格子整約方法[11、12]はCPUを酷使し、そればかりでなく、次元200ないし300の格子に対して格子整約を実行するのに長いコンピュータ時間を必要とする。もちろん、この場合の「長い」は相対的な語であるが、300次元格子整約を実行して1セントの数分の1に相当するコストを削減しても恐らく無効であり、現行の方法を使用してこのような格子整約を短時間(たとえば2、3分間)で実行すると(完全に実現不能ではない場合)コストが非常に高くなることは確実である。したがって、大次元格子アタックを可能にする必要のある状況で使用できる1組のNTRUパラメータを作成すると有効である。
格子アタックによってもたらされるパラメータ制約をなくした場合、残るのは以下の復号制約と、
c2pLgLφ(K+1)<q (4)
f、g、φの探索空間が暴力的(多分meet−in−the−middle)アタックを防止するほど大きいという条件だけである。話を簡単にするために、K=1を選択する。f、g、φがすべて、集合Lφ、すなわち、d個の係数が1に等しく、d個の係数が−1に等しく、他のN−2d個の係数が0に等しい多項式の集合に含まれるものとみなす。(厳密には、fはpおよびqを法として可逆である必要があるので、fを余分の1つの係数を有するものとみなすが、これは後に続く分析にほとんど影響を与えず、したがってこれを無視することにする。)c2=0.24を通常どおりに使用すると、復号制約は単に次式のようになる。
q>2pd (4)
他の制約を次式に示す。
上式で、σは必要なセキュリティ・レベルである。適度なセキュリティの処理系の場合、セキュリティ・レベルは約240でほぼ十分であり、したがって
を選択する。
以下の表は、NTRUの適度なセキュリティの処理系の受け入れられる動作パラメータを示す。セキュリティを評価する際、利用可能な格子アタックが次元2Nの格子を使用することに留意されたい。また、qのリストされた値は最小許容値であるが、gcd(p,q)を満たす、これよりもいくらか大きなqも受け入れられることに留意されたい。特に、q=64を選択することによってとりわけ高速な処理系を使用することができる。
最後に、鍵サイズが非常に小さくなると考えられる。
公開鍵: Nlog2(q)ビット
専用鍵: 2Nlog2(p)ビット
たとえば、(N,d,p,q)=(167,7,3,64)は、それぞれ長さ1002ビットおよび530ビットの公開鍵および専用鍵を含むシステムを形成する。
§6 他のPKCSとの比較
現在、因数分解の難点に基づくRivest、Shamir、Adelman(RSA[10])のシステム、誤り補正符号に基づくMcEliece[9]のシステム、ほぼv直交化された短い基を格子内で見つけることが困難であることに基づくGoldreich、GoldWasser、Halevi(GGH[5])の最近のシステムを含め、いくつかの公開鍵暗号システムが文献に記載されている。
NTRUシステムは、環R内の星印乗算を(特殊な種類の)行列の乗算として公式化することができ、次いで、システムでの符号化を行列乗算E=AX+Y(Aは公開鍵である)として書くことができるという点で、McElieceのシステムと共通するいくつかの特徴を有する。2つのシステムの間の小さな違いは、NTRU符号化では、Yがメッセージであり、Xがランダム・ベクトルであるが、McElieceシステムではこれらの割当てが逆になることである。しかし、実際の違いは、復号を可能にする基本トラップドアである。McElieceシステムの場合、行列Aが誤り補正(ゴッパ)符号に関連付けされ、ランダム寄与がゴッパ符号によって「補正される」ほど小さいために復号が作用する。NTRUの場合、行列Aは巡回行列であり、復号は、Aの、特殊な形式を有する2つの行列の積へ分解と、mod qからmod pへのリフティングに依存する。
我々の知るかぎりでは、NTRUシステムにはRSAシステムとの共通点がほとんどない。同様に、NTRUシステムは格子整約アタックを防止するようにセットアップしなければならないが、その基本復号方法は、復号が短い格子基の知識に基づいて行われるGGHシステムとはかなり異なるものである。なお、GGHは実際には、McElieceシステムに類似している。これは、どちらの場合でも、小さなランダム寄与を認識してなくすことによって復号が実行されるからである。これに対して、NTRUは、可分性(すなわち、合同)を考慮することによってずっと大きなランダム寄与をなくす。
以下の表は、RSA暗号システム、McEliece暗号システム、GGH暗号システム、NTRU暗号システムのいくつかの理論的動作特性を比較したものである。それぞれの場合において、数Nは固有セキュリティ/メッセージ長パラメータを表す。
付録A.基本補題
以下の結果は格子アタックを最適化するうえで有用である。
補題A.1.α+β=1を有するすべてのA、B、α、βについて、
が成立し、x=βB/αAで下限が生じる。
証明f(x)=Axα+Bx-βとする。この場合、f’(x)=αAxα-1−βBx-β-1=xβ+1(αAx−βB)である。したがって、絶対最小値はx=βB/αAで生じる。(x→0+およびx→∞のときにf(x)→∞であることに留意されたい。)
Claims (55)
- デジタル・メッセージmを、符号化装置により符号化し、復号化装置により復号する方法であって、
符号化装置の選択手段に、環Rのイデアルpおよびqを選択させるステップと、
符号化装置の第1の生成手段に、環Rの要素fおよびgを生成させ、f(mod q)の逆数である要素Fqを生成させ、f(mod p)の逆数である要素Fpを生成させるステップと、
符号化装置の第2の生成手段に、gおよびFqを使用して得ることのできる積とmod qで合同であるhを含む公開鍵を生成させるステップと、
符号化装置の第3の生成手段に、fおよびFpを含む専用鍵を生成させるステップと、
符号化装置の第4の生成手段に、公開鍵およびランダム要素φを使用してメッセージmを符号化させることによって、h及びφを含む積と、メッセージmとの和と、mod qで合同である符号化メッセージeを生成させるステップと、
復号化装置の生成手段に、専用鍵を使用して符号化メッセージeの復号をさせることによって復号メッセージを生成させるステップとを含み、
復号メッセージは、a≡f*e(mod q)を計算し、復号メッセージm’を、m’≡Fp *a(mod p)として計算する、
方法。 - 前記環Rが環Zを覆うモジュールであることを特徴とする請求の範囲第1項に記載の方法。
- Zを覆うRの次元がNであり、Nが1より大きな整数であることを特徴とする請求の範囲第1項に記載の方法。
- 環Rが、特定の多項式を法とする多項式の環であることを特徴とする請求の範囲第3項に記載の方法。
- 要素を生成する前記ステップがさらに、g(mod q)の逆数である要素Gqを生成し、g(mod p)の逆数である要素Gpを生成するステップを含むことを特徴とする請求の範囲第1項に記載の方法。
- 前記要素Gqが前記公開鍵を得るのに使用され、前記要素Gpが前記専用鍵の一部であることを特徴とする請求の範囲第5項に記載の方法。
- 前記選択ステップがさらに正の整数Kを選択するステップを含み、前記要素gがgi(i=1,2,...,K)を含み、前記公開鍵hがhi(i=1,2,...,K)を含むことを特徴とする請求の範囲第1項に記載の方法。
- 前記公開鍵および専用鍵がそれぞれ、pとqをふくむことを特徴とする請求の範囲第1項に記載の方法。
- 前記イデアルpとqが相対的に素な整数によって生成されることを特徴とする請求の範囲第1項に記載の方法。
- 前記整数pとqが等しくなく、pとqがともに1より大きいことを特徴とする請求の範囲第10項に記載の方法。
- 前記符号化メッセージが、あるユーザによってある場所で生成され、前記ある場所から別の場所に伝送され、前記別の場所であるユーザによって復号されることを特徴とする請求の範囲第1項に記載の方法。
- デジタル・メッセージmを、符号化装置により符号化し、復号化装置により復号する方法であって、
符号化装置の選択手段に、整数pおよびqを選択させるステップと、
符号化装置の第1の生成手段に、多項式fおよびgを生成させるステップと、
符号化装置の決定手段に、逆数Fqおよび逆数Fpを決定させるステップであって、
Fq *f≡1(mod q)
Fp *f≡1(mod p)
であるステップと、
符号化装置の第2の生成手段に、p、q、hを含む公開鍵を生成させるステップであって、
h≡Fq *g(mod q)
であるステップと、
符号化装置の第3の生成手段に、fおよびFpを含む専用鍵を生成させるステップと、
符号化装置の第4の生成手段に、公開鍵およびランダム多項式φを使用して多項式で表現されたメッセージmを符号化させることによって符号化メッセージeを、e≡pφ*h+m(mod q)として生成させるステップと、
復号化装置の生成手段に、専用鍵を使用して符号化メッセージeの復号をさせることによって復号メッセージを生成させるステップとを含み、
復号メッセージは、a≡f*e(mod q)を計算し、復号メッセージm’を、m’≡Fp *a(mod p)として計算する、
方法。 - 多項式fおよびgを生成する前記ステップが、正の整数Kを選択し、K個の多項式gをg1,g2,...,gkとして生成するステップを含み、前記公開鍵がh1,h2,...,hkを含み、
上式で
hi≡Fq *gi(mod q)、i=1,2,...,K
であることを特徴とする請求の範囲第13項に記載の方法。 - 前記符号化メッセージeが、
e≡pφ1 *h1+pφ2 *h2+...+pφK *hK+m(mod q)
として生成され、
上式でφ1,φ2,...,φKがK個のランダム多項式であることを特徴とする請求の範囲第14項に記載の方法。 - 前記符号化メッセージが、あるユーザによってある場所で生成され、前記ある場所から別の場所に伝送され、前記別の場所であるユーザによって復号されることを特徴とする請求の範囲第13項に記載の方法。
- モニック多項式M(X)が選択され、多項式の乗算が、まず多項式の通常の乗算を行い、次いで結果をM(X)で割り、剰余だけを保持することによって実施されることを特徴とする請求の範囲第13項に記載の方法。
- 非ゼロの整数Nが選択され、多項式の乗算が、Nを法とする指数を整約することによって実施されることを特徴とする請求の範囲第13項に記載の方法。
- 前記多項式f、g、m、φが有界係数をもつように制約されることを特徴とする請求の範囲第13項に記載の方法。
- 前記整数qが、前記整数pと、前記多項式f、g、m、φの次数と、前記f、g、m、φの係数に対する前記制約とによって決まる量よりも小さく選ばれることを特徴とする請求の範囲第19項に記載の方法。
- 前記整数qが、前記整数pと、前記多項式f、g、m、φの次数と、前記f、g、m、φの係数に対する前記制約とによって決まる量よりも大きく選ばれることを特徴とする請求の範囲第19項に記載の方法。
- デジタル・メッセージを、符号化装置により符号化し、復号化装置により復号する方法であって、
符号化装置の第1の選択手段に、相対的に素な整数pおよびqを選択させるステップと、
符号化装置の第2の選択手段に、非ゼロの整数Kを選択させるステップと、
符号化装置の第1の生成手段に、整数係数を有し、wi≡0(mod p)(i=1,2,...,K)である行列の環からK+2個の行列f,g,w1,w2,...,wKを生成させるステップと、
符号化装置の第2の生成手段に、前記行列の環から逆行列Fp,Fq,Gp,Gqを生成させるステップであって、
fFp≡I(mod p)
fFq≡I(mod q)
gGp≡I(mod p)
gGq≡I(mod q)
上式でIが単位行列であるステップと、
符号化装置の第3の生成手段に、公開鍵をK個の行列(h1,h2,...,hk)のリストとして生成させるステップであって、
hi≡FqwiGq(mod q),i=1,2,...,K;
であるステップと、
符号化装置の第4の生成手段に、専用鍵を行列(f,g,Fp,Gp)として生成させるステップと、
符号化装置の第5の生成手段に、公開鍵およびランダム整数φ1,φ2,...,φKを使用してメッセージmを符号化させることによって符号化メッセージeを
e≡φ1h1+φ2h2+...+φKhK+m(mod q);
として生成させるステップと、
復号化装置の生成手段に、
a≡feg(mod q)
および
b≡a(mod p)
を計算させ、ついで復号メッセージm’を
m’=FpbGp(mod p)
として計算させることによって復号メッセージm’を生成させるステップと
を含む方法。 - 前記符号化メッセージが、あるユーザによってある場所で生成され、前記ある場所から別の場所に伝送され、前記別の場所であるユーザによって復号されることを特徴とする請求の範囲第22項に記載の方法。
- 前記行列w1,w2,...,wK,f,g,mが有界係数をもつように制約され、整数φ1,φ2,...,φKが有界であるように制約されることを特徴とする請求の範囲第22項に記載の方法。
- 前記整数qが、前記整数pと、前記整数Kと、前記多項式w1,w2,...,wK,f,g,mの次数と、前記多項式w1,w2,...,wK,f,g,mの係数に対する前記制約と、整数φ1,φ2,...,φKに対する前記制約とによって決まる量よりも小さく選ばれることを特徴とする請求の範囲第24項に記載の方法。
- 前記整数qが、前記整数pと、前記整数Kと、前記多項式w1,w2,...,wK,f,g,mの次数と、前記多項式w1,w2,...,wK,f,g,mの係数に対する前記制約と、整数φ1,φ2,...,φKに対する前記制約とによって決まる量よりも大きく選ばれることを特徴とする請求の範囲第24項に記載の方法。
- デジタル・メッセージmを、符号化プロセッサにより符号化し、復号化プロセッサにより復号するシステムであって、
イデアルpおよびqを選択する手段と、
環Rの要素fおよびgを生成し、f(mod q)の逆数である要素Fqを生成し、f(mod p)の逆数である要素Fpを生成する手段と、
gおよびFqを使用して得ることのできる積とmod qで合同であるhを含む公開鍵を生成する手段と、
fおよびFpを含む専用鍵を生成する手段と、
公開鍵およびランダム要素φを使用してメッセージmを符号化することによって、h及びφを含む積と、メッセージmとの和と、mod qで合同である符号化メッセージeを生成する手段と、
専用鍵を使用して符号化メッセージeを復号することによって復号メッセージを生成する手段と
を備え、
復号メッセージは、a≡f*e(mod q)を計算し、復号メッセージm’を、m’≡Fp *a(mod p)として計算する、
システム。 - 前記符号化メッセージが、あるユーザによってある場所で生成され、前記ある場所から別の場所に伝送され、前記別の場所であるユーザによって復号されることを特徴とする請求の範囲第27項に記載のシステム。
- 通信システムのユーザ間で情報を通信する方法であって、
第1の装置の第1の生成手段に、リングRと、R中のイデアルPおよびQと、イデアルQを法とする環Rに対する代表剰余系CQの集合と、イデアルPを法とする環Rに対する代表剰余系Cpの集合とを生成させるステップと、
第1の装置の第2の生成手段に、R中の少なくとも2つの専用鍵要素f1,...,fnおよび第1のユーザのイデアルQの関数として環R中の少なくとも1つの公開鍵要素h1,...,hkを生成させるステップと、
第1の装置の伝送手段に、環Rと、イデアルQと、イデアルPと、R中の要素h1,...,hkとの記述を、第2のユーザが使用する第2の装置へ伝送させるステップと、
第2の装置の生成手段に、イデアルPおよびQと、公開鍵要素h1,...,hkと、R中の専用メッセージ要素mと、第2のユーザの少なくとも1つの専用ランダム要素φ1,...,φlとの関数として環R中の要素eを生成させるステップと、
e,f1,...,fnの関数Fを評価するR中の結果Aを計算し、代表剰余系CQの集合中のAの代表剰余系aを計算し、a,f1,...,fnの関数Gを評価する結果Bを計算し、代表剰余系Cpの集合中のBの代表剰余系bを計算し、b,f1,...,fnの関数Hを評価する代表剰余系Cpの集合中の結果cを計算することによって、第1のユーザが使用する第1の装置の決定手段が、メッセージ要素mを決定できるように、第2の装置の伝送手段に、要素eを、第1の装置へ伝送させるステップと、
を含み、
公開鍵要素h1,...,hkと、専用ランダム要素φ1,...,φk+1と、専用メッセージ要素mとの関数として生成される要素eが、イデアルQを法としてφ1h1+φ2h2+,...,+φkhk+φk+mと合同であるCQの要素として生成される方法。 - メッセージ要素mが、mがCPの要素であるという条件を満たすことを特徴とする請求の範囲第29項に記載の方法。
- a,b,c,f1,...,fnの関数を計算することによって、第1のユーザがメッセージ要素mを決定することを特徴とする請求の範囲第29項に記載の方法。
- 公開鍵要素h1,...,hkが、1とkの間の各iについて要素fiがイデアルQを法としてR中で積hifk+1と合同であるという条件を満たすことを特徴とする請求の範囲第29項に記載の方法。
- 専用鍵要素f1,...,fk+1が、要素f1,...,fkがイデアルP中にあるという条件を満たすことを特徴とする請求の範囲第29項に記載の方法。
- 専用ランダム要素φ1,...,φlがイデアルP中にあることを特徴とする請求の範囲第29項に記載の方法。
- e,f1,...,fnの関数Fを評価する結果Aが積efk+1であることを特徴とする請求の範囲第29項に記載の方法。
- a,f1,...,fnの関数Gを評価する結果Bが要素aであることを特徴とする請求の範囲第29項に記載の方法。
- a,f1,...,fnの関数Hを評価する代表剰余系CPの集合中の結果cが、cfk+1がイデアルPを法としてbと合同であるという条件を満たすことを特徴とする請求の範囲第29項に記載の方法。
- 結果cが、代表剰余系CPの集合中のメッセージmの代表剰余系に等しいことを特徴とする請求の範囲第29項に記載の方法。
- 環Rが、次数Nのモニック多項式M(X)によって生成されるRのイデアルを法として1つの変数X中の多項式の環であり、RのイデアルQが整数qによって生成されるイデアルであり、RのイデアルPが整数pによって生成されるイデアルであり、代表剰余系CQの集合が、次数がせいぜいN−1でqを法とする代表剰余系の固定した集合中の係数を有するR中の多項式の集合であり、代表剰余系CPの集合が、次数がせいぜいN−1でpを法とする代表剰余系の固定した集合中の係数を有するR中の多項式の集合であることを特徴とする請求の範囲第29項に記載の方法。
- 専用鍵要素f1,...,fn、R中の専用メッセージ要素m、および専用ランダム要素φ1,...,φlが、その係数に対する境界を含むという条件を満たすことを特徴とする請求の範囲第39項に記載の方法。
- 環Rが非可換体であることを特徴とする請求の範囲第29項に記載の方法。
- 要素h1,...,hkが、1とKの間の各iについて要素fk+1hifk+2がイデアルQを法としてR中でfiと合同であるという条件に従ってCQ中で生成されることを特徴とする請求の範囲第29項に記載の方法。
- 専用鍵要素f1,...,fkがイデアルP中にあることを特徴とする請求の範囲第29項に記載の方法。
- 専用ランダム要素φ1,...,φ2k+1が、要素φ1,...,φkがイデアルP中にあるという条件を満たすことを特徴とする請求の範囲第29項に記載の方法。
- 公開鍵要素h1,...,hkと、専用ランダム要素φ1,...,φ2k+1と、専用メッセージ要素mとの関数として生成される要素eが、イデアルQを法としてφ1h1φk+1+φ2h2φk+2+,...,+φkhkφ2k+φ2k+1+mと合同であるCQの要素として生成されることを特徴とする請求の範囲第41項に記載の方法。
- 環Rが整数係数をもつ行列の環であり、RのイデアルQが、固定整数qで割り切れるすべての行列からなるイデアルであり、RのイデアルPが、固定整数pで割り切れるすべての行列からなるイデアルであり、代表剰余系CQの集合が、qを法とする代表剰余系の固定した集合中の係数を有するRの要素の集合であり、代表剰余系CPの集合が、pを法とする代表剰余系の固定した集合中の係数を有するRの要素の集合であることを特徴とする請求の範囲第29項に記載の方法。
- 専用鍵要素f1,...,fn、専用メッセージ要素m、および専用ランダム要素φ1,...,φlが、その係数に対する境界を含むという条件を満たすことを特徴とする請求の範囲第46項に記載の方法。
- 専用ランダム要素φ1,...,φlが、要素φ1,...,φlが単位行列の定数倍であるという条件を満たすことを特徴とする請求の範囲第46項に記載の方法。
- 環Rが群Gの群環であり、RのイデアルQが、整数qによって生成されるイデアルであり、RのイデアルPが、整数pによって生成されるイデアルであり、代表剰余系CQの集合が、qを法とする代表剰余系の固定した集合中の係数を有するRの要素の集合であり、代表剰余系CPの集合が、pを法とする代表剰余系の固定した集合中の係数を有するRの要素の集合であることを特徴とする請求の範囲第29項に記載の方法。
- 専用鍵要素f1,...,fn、専用メッセージ要素m、および専用ランダム要素φ1,...,φlが、その係数に対する境界を含むという条件を満たすことを特徴とする請求の範囲第49項に記載の方法。
- 環Rが、二面関係XN=1、Y2=1、XY=YXN-1に従うことを条件として2つの変数XおよびY中の多項式の非可換環であり、RのイデアルQが整数qによって生成されるイデアルであり、RのイデアルPが整数pによって生成されるイデアルであり、代表剰余系CQの集合が、次数がせいぜいN−1でqを法とする代表剰余系の集合から選ばれた係数を有する変数XにおけるR中の多項式の集合であり、代表剰余系CPの集合が、次数がせいぜいN−1でpを法とする代表剰余系の固定した集合から選ばれた係数を有する変数XにおけるR中の多項式の集合であることを特徴とする請求の範囲第29項に記載の方法。
- 専用鍵要素f1,...,fn、専用メッセージ要素m、および専用ランダム要素φ1,...,φlが、その一部が、条件Yψ=ψYを満たすRのすべての要素ψからなるRの可換部分環R0中にあるという条件を含む諸条件を満たすことを特徴とする請求の範囲第51項に記載の方法。
- 前記符号化装置は、符号化コンピュータプログラムによりプログラムされ、前記復号化装置は、復号化コンピュータプログラムによりプログラムされている、請求の範囲第1項、13項、22項のいずれか1項に記載の方法。
- 前記符号化プロセッサは、符号化コンピュータプログラムによりプログラムされ、前記復号化プロセッサは、復号化コンピュータプログラムによりプログラムされている、
請求の範囲第27項に記載のシステム。 - 前記第1の装置及び第2の装置は、前記方法を実行させるコンピュータプログラムによりプログラムされている、
請求の範囲第29項に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US2413396P | 1996-08-19 | 1996-08-19 | |
US60/024,133 | 1996-08-19 | ||
PCT/US1997/015826 WO1998008323A1 (en) | 1996-08-19 | 1997-08-19 | Public key cryptosystem method and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000516733A JP2000516733A (ja) | 2000-12-12 |
JP4068664B2 true JP4068664B2 (ja) | 2008-03-26 |
Family
ID=21819032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP51105198A Expired - Fee Related JP4068664B2 (ja) | 1996-08-19 | 1997-08-19 | 公開鍵暗号システム方法および装置 |
Country Status (10)
Country | Link |
---|---|
US (2) | US6081597A (ja) |
EP (1) | EP0920753B1 (ja) |
JP (1) | JP4068664B2 (ja) |
CN (1) | CN1172474C (ja) |
AU (1) | AU716797B2 (ja) |
CA (1) | CA2263588C (ja) |
DE (1) | DE69737097T2 (ja) |
HK (1) | HK1021855A1 (ja) |
IL (1) | IL128552A (ja) |
WO (1) | WO1998008323A1 (ja) |
Families Citing this family (112)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10361802B1 (en) | 1999-02-01 | 2019-07-23 | Blanding Hovenweep, Llc | Adaptive pattern recognition based control system and method |
US7362775B1 (en) * | 1996-07-02 | 2008-04-22 | Wistaria Trading, Inc. | Exchange mechanisms for digital information packages with bandwidth securitization, multichannel digital watermarks, and key management |
US5613004A (en) | 1995-06-07 | 1997-03-18 | The Dice Company | Steganographic method and device |
US6205249B1 (en) | 1998-04-02 | 2001-03-20 | Scott A. Moskowitz | Multiple transform utilization and applications for secure digital watermarking |
US7664263B2 (en) | 1998-03-24 | 2010-02-16 | Moskowitz Scott A | Method for combining transfer functions with predetermined key creation |
US7159116B2 (en) | 1999-12-07 | 2007-01-02 | Blue Spike, Inc. | Systems, methods and devices for trusted transactions |
US7346472B1 (en) | 2000-09-07 | 2008-03-18 | Blue Spike, Inc. | Method and device for monitoring and analyzing signals |
US7095874B2 (en) | 1996-07-02 | 2006-08-22 | Wistaria Trading, Inc. | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
US5889868A (en) | 1996-07-02 | 1999-03-30 | The Dice Company | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
US7457962B2 (en) | 1996-07-02 | 2008-11-25 | Wistaria Trading, Inc | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
US7177429B2 (en) | 2000-12-07 | 2007-02-13 | Blue Spike, Inc. | System and methods for permitting open access to data objects and for securing data within the data objects |
US6052780A (en) * | 1996-09-12 | 2000-04-18 | Open Security Solutions, Llc | Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information |
US7730317B2 (en) | 1996-12-20 | 2010-06-01 | Wistaria Trading, Inc. | Linear predictive coding implementation of digital watermarks |
US6373986B1 (en) * | 1998-04-08 | 2002-04-16 | Ncr Corporation | Compression of data transmission by use of prime exponents |
US6785388B1 (en) * | 1998-09-16 | 2004-08-31 | Murata Kikai Kabushiki Kaisha | Encryption method, decryption method, encryption/decryption method, cryptographic communications system, and computer usable medium |
US6415032B1 (en) * | 1998-12-01 | 2002-07-02 | Xilinx, Inc. | Encryption technique using stream cipher and block cipher |
US6733998B1 (en) * | 1998-12-07 | 2004-05-11 | Sloan-Kettering Institute For Cancer Research | Micromonospora echinospora genes coding for biosynthesis of calicheamicin and self-resistance thereto |
US6654889B1 (en) | 1999-02-19 | 2003-11-25 | Xilinx, Inc. | Method and apparatus for protecting proprietary configuration data for programmable logic devices |
US7664264B2 (en) | 1999-03-24 | 2010-02-16 | Blue Spike, Inc. | Utilizing data reduction in steganographic and cryptographic systems |
US6959085B1 (en) | 1999-05-03 | 2005-10-25 | Ntru Cryptosystems, Inc. | Secure user identification based on ring homomorphisms |
WO2000074301A1 (en) * | 1999-05-27 | 2000-12-07 | Koninklijke Philips Electronics N.V. | Method and apparatus for secure creation of public/private key pairs |
US7475246B1 (en) | 1999-08-04 | 2009-01-06 | Blue Spike, Inc. | Secure personal content server |
JP2001211153A (ja) * | 2000-01-25 | 2001-08-03 | Murata Mach Ltd | 秘密鍵生成方法 |
GB0013356D0 (en) * | 2000-06-01 | 2000-07-26 | Tao Group Ltd | A method of validating an encrypted message |
GB0013399D0 (en) * | 2000-06-01 | 2000-07-26 | Tao Group Ltd | Decryption of cipher polynomials |
GB0013355D0 (en) * | 2000-06-01 | 2000-07-26 | Tao Group Ltd | Parallel modulo arithmetic using bitwise logical operations |
AU2001288234A1 (en) * | 2000-08-11 | 2002-02-25 | Storage Technology Corporation | Public key generation method and apparatus |
US7127615B2 (en) | 2000-09-20 | 2006-10-24 | Blue Spike, Inc. | Security based on subliminal and supraliminal channels for data objects |
US7155610B2 (en) | 2000-12-19 | 2006-12-26 | Matsushita Electric Industrial Co., Ltd. | Cryptocommunication system, transmission apparatus, and reception apparatus |
US7181017B1 (en) | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
JP4188571B2 (ja) * | 2001-03-30 | 2008-11-26 | 株式会社日立製作所 | 情報処理装置の演算方法および耐タンパ演算攪乱実装方式 |
JP4053431B2 (ja) * | 2001-05-04 | 2008-02-27 | 株式会社エヌ・ティ・ティ・ドコモ | 環ベースの署名スキーム |
EP1796308A3 (en) | 2001-05-04 | 2008-02-20 | NTT DoCoMo Inc. | Ring-based signature scheme |
US8812398B2 (en) * | 2001-05-08 | 2014-08-19 | Qualcomm Incorporated | Key for a wireless-enabled device |
US6510988B1 (en) | 2001-05-11 | 2003-01-28 | Eric M. Kraus | Identification bracelet |
US7136484B1 (en) * | 2001-10-01 | 2006-11-14 | Silicon Image, Inc. | Cryptosystems using commuting pairs in a monoid |
EP2148463A3 (en) * | 2001-10-19 | 2015-04-22 | Panasonic Intellectual Property Management Co., Ltd. | A numerical array output device, a numerical array output method, an encryption device, and a decryption device |
KR100406138B1 (ko) * | 2001-11-28 | 2003-11-14 | 한국전자통신연구원 | 엔티알유 암/복호화 장치 |
EP1451967A1 (en) * | 2001-12-07 | 2004-09-01 | NTRU Cryptosystems, Inc. | Digital signature and authentication method and apparatus |
US7287275B2 (en) | 2002-04-17 | 2007-10-23 | Moskowitz Scott A | Methods, systems and devices for packet watermarking and efficient provisioning of bandwidth |
US6973579B2 (en) | 2002-05-07 | 2005-12-06 | Interdigital Technology Corporation | Generation of user equipment identification specific scrambling code for the high speed shared control channel |
US7221757B2 (en) * | 2002-08-15 | 2007-05-22 | Opentv, Inc. | Method and system for accelerated data encryption |
US7184551B2 (en) * | 2002-09-30 | 2007-02-27 | Micron Technology, Inc. | Public key cryptography using matrices |
US20040105546A1 (en) * | 2002-11-19 | 2004-06-03 | Leon Chernyak | Geometry-Based Symmetric Cryptosystem Method |
CN1745537B (zh) * | 2002-12-03 | 2010-06-09 | 松下电器产业株式会社 | 密钥共享系统、共享密钥生成装置及共享密钥复原装置 |
KR101027199B1 (ko) * | 2002-12-03 | 2011-04-06 | 파나소닉 주식회사 | 키공유 시스템, 공유키 생성장치 및 공유키 복원장치 |
US7249254B2 (en) * | 2002-12-13 | 2007-07-24 | Certicom Corp. | Method and apparatus for protecting NTRU against a timing attack |
US9818136B1 (en) | 2003-02-05 | 2017-11-14 | Steven M. Hoffberg | System and method for determining contingent relevance |
US7756269B2 (en) * | 2003-03-14 | 2010-07-13 | Qualcomm Incorporated | Cryptosystem for communication networks |
WO2004095771A1 (en) * | 2003-04-24 | 2004-11-04 | Matsushita Electric Industrial Co., Ltd. | Parameter generation apparatus, encryption system, decryption system, encryption apparatus, decryption apparatus, encryption method, decryption method, and program thereof |
JP4567364B2 (ja) * | 2003-04-24 | 2010-10-20 | パナソニック株式会社 | パラメータ生成装置、暗号化システム、復号化システム、暗号装置、暗号化方法、復号化方法、およびプログラム |
US20060002562A1 (en) * | 2003-06-02 | 2006-01-05 | Arkady Berenstein | Method and apparatus for geometric key establishment protocols based on topological groups |
JP4422981B2 (ja) * | 2003-06-12 | 2010-03-03 | パナソニック株式会社 | 暗号通信システム |
KR100561847B1 (ko) * | 2003-10-08 | 2006-03-16 | 삼성전자주식회사 | 공개키를 이용한 데이터 암호화 및 복호화 방법 |
US8031865B2 (en) * | 2004-01-08 | 2011-10-04 | Encryption Solutions, Inc. | Multiple level security system and method for encrypting data within documents |
US7752453B2 (en) | 2004-01-08 | 2010-07-06 | Encryption Solutions, Inc. | Method of encrypting and transmitting data and system for transmitting encrypted data |
US7526643B2 (en) * | 2004-01-08 | 2009-04-28 | Encryption Solutions, Inc. | System for transmitting encrypted data |
AU2005230066A1 (en) * | 2004-03-31 | 2005-10-20 | Nec Corporation | Padding application method guaranteeing safety of encryption method |
CN100535962C (zh) | 2004-05-12 | 2009-09-02 | 松下电器产业株式会社 | 加密系统、加密装置、解密装置和集成电路 |
US7590236B1 (en) * | 2004-06-04 | 2009-09-15 | Voltage Security, Inc. | Identity-based-encryption system |
CN101107808B (zh) | 2005-01-24 | 2011-01-26 | 松下电器产业株式会社 | 署名生成装置及署名验证装置 |
WO2006077820A1 (ja) | 2005-01-24 | 2006-07-27 | Matsushita Electric Industrial Co., Ltd. | 署名生成装置、鍵生成装置及び署名生成方法 |
US7694152B2 (en) * | 2005-02-03 | 2010-04-06 | International Business Machines Corporation | Memory controller with performance-modulated security |
WO2006114948A1 (ja) | 2005-04-18 | 2006-11-02 | Matsushita Electric Industrial Co., Ltd. | 署名生成装置および署名検証装置 |
US7792286B2 (en) | 2005-04-18 | 2010-09-07 | Panasonic Corporation | Signature generation device and signature verification device |
IE20050277A1 (en) * | 2005-05-04 | 2006-11-29 | Nat Univ Ireland | Method and apparatus for generating error-correcting and error-detecting codes using zero-divisors and units in group rings |
US8874477B2 (en) | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
US8462940B2 (en) * | 2006-01-11 | 2013-06-11 | International Business Machines Corporation | Public key cryptosystem and associated method utilizing a hard lattice with O(n log n) random bits for security |
US7941726B2 (en) * | 2006-06-30 | 2011-05-10 | Microsoft Corporation | Low dimensional spectral concentration codes and direct list decoding |
KR100742093B1 (ko) | 2007-05-10 | 2007-07-24 | 인하대학교 산학협력단 | 엔티알유 암호화 및 복호화를 위한 다항식 컨볼루션 연산방법 |
FR2917920B1 (fr) * | 2007-06-22 | 2009-10-09 | Centre Nat Rech Scient | Procede d'authentification utilisant un decodage de code correcteur d'erreurs a partir d'une matrice publique |
KR100876442B1 (ko) | 2007-12-28 | 2008-12-29 | 인하대학교 산학협력단 | 엔티알유 암호화 및 복호화를 위한 안전한 다항식 컨볼루션연산 방법 |
KR100875461B1 (ko) | 2008-02-27 | 2008-12-23 | 인하대학교 산학협력단 | 전력 분석 공격 방지를 위한 엔티알유 다항식 컨볼루션연산 방법 및 컴퓨터로 읽을 수 있는 기록매체 |
US8452975B2 (en) | 2008-04-09 | 2013-05-28 | Panasonic Corporation | Signature and verification method, signature generation device, and signature verification device |
JP5346933B2 (ja) | 2008-06-04 | 2013-11-20 | パナソニック株式会社 | 暗号化装置及び暗号化システム |
US20090313171A1 (en) * | 2008-06-17 | 2009-12-17 | Microsoft Corporation | Electronic transaction verification |
US20100100947A1 (en) * | 2008-10-21 | 2010-04-22 | Apple Inc. | Scheme for authenticating without password exchange |
GB0822870D0 (en) * | 2008-12-16 | 2009-01-21 | Hatton Leslie | Cryptography |
FR2956541B1 (fr) | 2010-02-18 | 2012-03-23 | Centre Nat Rech Scient | Procede cryptographique de communication d'une information confidentielle. |
WO2012057134A1 (ja) * | 2010-10-26 | 2012-05-03 | 日本電信電話株式会社 | 代理計算システム、計算装置、能力提供装置、代理計算方法、能力提供方法、プログラム、及び記録媒体 |
ITGE20110091A1 (it) | 2011-08-10 | 2013-02-11 | Carlo Pes | Metodo di cifratura e decifratura |
JP5790287B2 (ja) * | 2011-08-12 | 2015-10-07 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム、及び記録媒体 |
JP6019453B2 (ja) | 2012-07-05 | 2016-11-02 | 株式会社クリプト・ベーシック | 暗号化装置、復号化装置、及びプログラム |
US10148285B1 (en) | 2012-07-25 | 2018-12-04 | Erich Schmitt | Abstraction and de-abstraction of a digital data stream |
EP2873186B1 (en) | 2012-07-26 | 2018-03-07 | NDS Limited | Method and system for homomorphicly randomizing an input |
TWI474189B (zh) * | 2012-07-31 | 2015-02-21 | Chunghwa Telecom Co Ltd | Automatic file encryption and decryption system |
US9634840B2 (en) * | 2013-07-23 | 2017-04-25 | Security Innovation Inc. | Digital signature technique |
US9722798B2 (en) | 2014-02-10 | 2017-08-01 | Security Innovation Inc. | Digital signature method |
US10795858B1 (en) | 2014-02-18 | 2020-10-06 | Erich Schmitt | Universal abstraction and de-abstraction of a digital data stream |
US10546155B2 (en) * | 2014-03-31 | 2020-01-28 | Irdeto B.V. | Protecting an item of software |
CN105337737B (zh) * | 2014-07-03 | 2018-11-20 | 华为技术有限公司 | 公钥加密通信方法和装置 |
JP2018503113A (ja) * | 2014-11-27 | 2018-02-01 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 難読化された演算を実行するための電子計算装置 |
NL2013944B1 (en) * | 2014-12-09 | 2016-10-11 | Koninklijke Philips Nv | Public-key encryption system. |
US20160352710A1 (en) | 2015-05-31 | 2016-12-01 | Cisco Technology, Inc. | Server-assisted secure exponentiation |
TWI569166B (zh) * | 2016-01-05 | 2017-02-01 | 精品科技股份有限公司 | 資料驗證方法 |
US10277403B2 (en) | 2016-02-25 | 2019-04-30 | Onboard Security, Inc. | Digital signature method and apparatus |
EP3244567A1 (en) | 2016-05-13 | 2017-11-15 | ABB Schweiz AG | Encryption for low-end devices through random number generation offloading |
EP3364596A1 (en) * | 2017-02-15 | 2018-08-22 | Koninklijke Philips N.V. | Key exchange devices and method |
US10924287B2 (en) * | 2017-06-23 | 2021-02-16 | Onboard Security, Inc. | Digital signature technique |
DE102017117907B4 (de) * | 2017-08-07 | 2023-04-27 | Infineon Technologies Ag | Durchführen einer kryptografischen Operation |
FI128841B (en) * | 2018-03-22 | 2021-01-15 | Univ Helsinki | Sensor calibration |
DE102018108313A1 (de) * | 2018-04-09 | 2019-10-10 | Infineon Technologies Ag | Verfahren und Verarbeitungsvorrichtung zum Ausführen einer kryptografischen Operation auf Gitterbasis |
CN108712256B (zh) * | 2018-07-02 | 2021-10-26 | 复旦大学 | 一种基于椭圆曲线子域子码的加密解密算法 |
CN112715016B (zh) * | 2018-07-17 | 2024-04-09 | 皇家飞利浦有限公司 | 密钥封装协议 |
TWI672932B (zh) * | 2018-09-27 | 2019-09-21 | 國立交通大學 | 基於質數陣列的後量子非對稱密鑰產生方法及系統、加密方法、解密方法及加密通訊系統 |
CN109543421A (zh) * | 2018-12-12 | 2019-03-29 | 四川大学华西医院 | 一种基于多项式数论加密算法的医疗信息保护系统及方法 |
CN111586685B (zh) * | 2020-04-26 | 2022-05-03 | 重庆邮电大学 | 一种基于格的匿名漫游认证方法 |
GB202011415D0 (en) | 2020-07-23 | 2020-09-09 | Optalysys Ltd | Public-key cryptography methods and/or systems |
WO2022266502A1 (en) * | 2021-06-19 | 2022-12-22 | Ntt Research, Inc. | Broadcast encryption with improved resource utilization |
KR102600166B1 (ko) * | 2021-12-02 | 2023-11-08 | 조선대학교산학협력단 | 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치 및 방법 |
KR102595938B1 (ko) * | 2021-12-02 | 2023-10-30 | 조선대학교산학협력단 | 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치 및 방법 |
ES2948323A1 (es) * | 2022-02-15 | 2023-09-08 | Univ Granada | Procedimiento y dispositivo de cifrado/descifrado post-cuántico usando códigos lineales |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4218582A (en) * | 1977-10-06 | 1980-08-19 | The Board Of Trustees Of The Leland Stanford Junior University | Public key cryptographic apparatus and method |
US4405829A (en) * | 1977-12-14 | 1983-09-20 | Massachusetts Institute Of Technology | Cryptographic communications system and method |
US4633036A (en) * | 1984-05-31 | 1986-12-30 | Martin E. Hellman | Method and apparatus for use in public-key data encryption system |
US5054066A (en) * | 1988-11-16 | 1991-10-01 | Grumman Corporation | Error correcting public key cryptographic method and program |
EP0383985A1 (de) * | 1989-02-24 | 1990-08-29 | Claus Peter Prof. Dr. Schnorr | Verfahren zur Identifikation von Teilnehmern sowie zur Generierung und Verifikation von elektronischen Unterschriften in einem Datenaustauschsystem |
US5351297A (en) * | 1991-06-28 | 1994-09-27 | Matsushita Electric Industrial Co., Ltd. | Method of privacy communication using elliptic curves |
US5231668A (en) * | 1991-07-26 | 1993-07-27 | The United States Of America, As Represented By The Secretary Of Commerce | Digital signature algorithm |
US5271061A (en) * | 1991-09-17 | 1993-12-14 | Next Computer, Inc. | Method and apparatus for public key exchange in a cryptographic system |
US5276737B1 (en) * | 1992-04-20 | 1995-09-12 | Silvio Micali | Fair cryptosystems and methods of use |
US5299262A (en) * | 1992-08-13 | 1994-03-29 | The United States Of America As Represented By The United States Department Of Energy | Method for exponentiating in cryptographic systems |
US5375170A (en) * | 1992-11-13 | 1994-12-20 | Yeda Research & Development Co., Ltd. | Efficient signature scheme based on birational permutations |
NL9301348A (nl) * | 1993-08-02 | 1995-03-01 | Stefanus Alfonsus Brands | Elektronisch betalingssysteem. |
EP0639907B1 (en) * | 1993-08-17 | 1999-12-08 | R3 Security Engineering AG | Digital signature method and key agreement method |
NZ336413A (en) * | 1993-12-01 | 2000-01-28 | Rpk Nz Ltd | Method of generating random numbers by manipulating electronic pointer with coordinates at points corresponding to time instants being used for selection of points subset and computation of number function |
US5668878A (en) * | 1994-02-28 | 1997-09-16 | Brands; Stefanus Alfonsus | Secure cryptographic methods for electronic transfer of information |
US5625692A (en) * | 1995-01-23 | 1997-04-29 | International Business Machines Corporation | Method and system for a public key cryptosystem having proactive, robust, and recoverable distributed threshold secret sharing |
US5577124A (en) * | 1995-03-09 | 1996-11-19 | Arithmetica, Inc. | Multi-purpose high speed cryptographically secure sequence generator based on zeta-one-way functions |
FR2737370B1 (fr) * | 1995-07-27 | 1997-08-22 | Bull Cp8 | Procede de communication cryptographique |
-
1997
- 1997-08-19 JP JP51105198A patent/JP4068664B2/ja not_active Expired - Fee Related
- 1997-08-19 AU AU45828/97A patent/AU716797B2/en not_active Ceased
- 1997-08-19 DE DE69737097T patent/DE69737097T2/de not_active Expired - Lifetime
- 1997-08-19 US US08/914,449 patent/US6081597A/en not_active Expired - Lifetime
- 1997-08-19 EP EP97944301A patent/EP0920753B1/en not_active Expired - Lifetime
- 1997-08-19 IL IL12855297A patent/IL128552A/en not_active IP Right Cessation
- 1997-08-19 WO PCT/US1997/015826 patent/WO1998008323A1/en active IP Right Grant
- 1997-08-19 CN CNB971984514A patent/CN1172474C/zh not_active Expired - Fee Related
- 1997-08-19 CA CA002263588A patent/CA2263588C/en not_active Expired - Fee Related
-
1999
- 1999-12-09 HK HK99105822A patent/HK1021855A1/xx not_active IP Right Cessation
-
2000
- 2000-04-05 US US09/543,708 patent/US6298137B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US6081597A (en) | 2000-06-27 |
DE69737097T2 (de) | 2007-07-12 |
EP0920753B1 (en) | 2006-12-13 |
EP0920753A4 (en) | 2004-11-10 |
CN1172474C (zh) | 2004-10-20 |
CA2263588C (en) | 2005-01-18 |
IL128552A0 (en) | 2000-01-31 |
EP0920753A1 (en) | 1999-06-09 |
US6298137B1 (en) | 2001-10-02 |
CA2263588A1 (en) | 1998-02-26 |
JP2000516733A (ja) | 2000-12-12 |
WO1998008323A1 (en) | 1998-02-26 |
AU4582897A (en) | 1998-03-06 |
CN1232588A (zh) | 1999-10-20 |
DE69737097D1 (de) | 2007-01-25 |
IL128552A (en) | 2004-06-01 |
HK1021855A1 (en) | 2000-07-07 |
AU716797B2 (en) | 2000-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4068664B2 (ja) | 公開鍵暗号システム方法および装置 | |
US6411715B1 (en) | Methods and apparatus for verifying the cryptographic security of a selected private and public key pair without knowing the private key | |
Perlner et al. | Quantum resistant public key cryptography: a survey | |
Kuznetsov et al. | Code-based public-key cryptosystems for the post-quantum period | |
US5220606A (en) | Cryptographic system and method | |
Aggarwal et al. | A new public-key cryptosystem via Mersenne numbers | |
Geng | Homomorphic encryption technology for cloud computing | |
US4306111A (en) | Simple and effective public-key cryptosystem | |
KR20000071078A (ko) | 유한 필드상의 이산 대수 암호시스템의 원분 다항식 구조 | |
US20050271203A1 (en) | Encryption apparatus, decryption apparatus, key generation apparatus, program, and method | |
Hooshmand et al. | Reducing the key length of McEliece cryptosystem using polar codes | |
KR100561847B1 (ko) | 공개키를 이용한 데이터 암호화 및 복호화 방법 | |
US20020041684A1 (en) | Public-key encryption and key-sharing methods | |
Augot et al. | A public key encryption scheme based on the polynomial reconstruction problem | |
Hooshmand et al. | Secret key cryptosystem based on non-systematic polar codes | |
CN107786327B (zh) | 一种基于ldpc码的安全可靠传输方法 | |
Hemenway et al. | Public-key locally-decodable codes | |
Véron | Code based cryptography and steganography | |
US20060251248A1 (en) | Public key cryptographic methods and systems with preprocessing | |
US20130058483A1 (en) | Public key cryptosystem and technique | |
US20230134515A1 (en) | Authentication encryption device, authentication decryption device, authentication encryption method, authentication decryption method, and storage medium | |
Lizama-Perez | Non-invertible key exchange protocol | |
Buchmann et al. | Efficiency improvement for NTRU | |
JP3706398B2 (ja) | 楕円曲線による署名、認証及び秘密通信方式 | |
US20040151307A1 (en) | Tractable rational map public-key system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040727 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061121 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070216 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070402 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070521 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070710 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071009 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071029 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071119 |
|
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: 20071218 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110118 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110118 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120118 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130118 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130118 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140118 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |