JP5341878B2 - 署名及び検証方法、署名生成装置並びに署名検証装置 - Google Patents
署名及び検証方法、署名生成装置並びに署名検証装置 Download PDFInfo
- Publication number
- JP5341878B2 JP5341878B2 JP2010507130A JP2010507130A JP5341878B2 JP 5341878 B2 JP5341878 B2 JP 5341878B2 JP 2010507130 A JP2010507130 A JP 2010507130A JP 2010507130 A JP2010507130 A JP 2010507130A JP 5341878 B2 JP5341878 B2 JP 5341878B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- signature
- data
- polynomial
- disturbance
- 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.)
- Active
Links
- 238000012795 verification Methods 0.000 title claims abstract description 112
- 238000000034 method Methods 0.000 title claims description 89
- 239000013598 vector Substances 0.000 claims abstract description 584
- 238000009826 distribution Methods 0.000 claims abstract description 186
- 238000003860 storage Methods 0.000 claims description 79
- 238000006243 chemical reaction Methods 0.000 claims description 78
- 238000004590 computer program Methods 0.000 claims description 19
- 230000009466 transformation Effects 0.000 claims description 16
- 238000003491 array Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 27
- 238000013518 transcription Methods 0.000 description 22
- 230000035897 transcription Effects 0.000 description 22
- 239000013256 coordination polymer Substances 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 238000012790 confirmation Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000009827 uniform distribution Methods 0.000 description 4
- 230000002265 prevention Effects 0.000 description 3
- 241000009298 Trigla lyra Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 241000907661 Pieris rapae Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000009828 non-uniform distribution Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Description
ここで、デジタル署名方式とは、送信装置が、送信したいデータに対し、送信装置の私有鍵(秘密鍵)を用いて署名データを作成し、送信したいデータと共に署名データを受信装置へ送信し、受信装置は、送信装置の公開鍵を用いて署名データを検証し、改ざんされているか否かを判定する方法である。(例えば、非特許文献1参照)。ここで、公開鍵から私有鍵の値を計算することは困難であるので、不正者が送信装置になりすまして、偽造した署名データを作成することはできない。
<NTRUSign署名方式>
(1)NTRUSign署名方式のシステムパラメタ
NTRUSign署名方式では、非負整数のパラメタであるN,q,df,dg,Normboundが存在する。以下に、これらのパラメタの意味を説明する。
NTRUSign署名方式は、多項式の演算により署名生成及び署名検証を行うデジタル署名方式である。パラメタNは、NTRUSign署名方式で扱う多項式の次数を決める。
(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次以下の多項式になるように演算される。
NTRUSign署名方式では、値「2」以上の整数であるパラメタqを用いる。NTRUSign署名方式で出現する多項式の係数については、qを法とした剰余を取るように演算する。
NTRUSign署名方式で扱う秘密鍵の一部である多項式f及び多項式gの選び方は、それぞれパラメタdf,dgにより決まる。ここで、多項式gは、公開鍵である多項式hを生成するときに、多項式fと共に用いられる。
NTRUSign署名方式では、後述するが、「署名sから作られる2・N次元のベクトル」と「メッセージデータに対するハッシュ値である2・N次元のベクトル」との距離を計算し、計算された距離により、正しい署名であるかを判定する。Normboundは、この判定の際に使用されるしきい値である。すなわち、計算された距離がNormbound未満(距離<Normbound)であれば、正しい署名として受理する。一方、計算された距離がNormbound以上(距離≧Normbound)であれば、正しくない署名とし拒否する。
(2)メッセージデータのハッシュ値、ノルム及びベクトル間の距離
NTRUSign署名方式では、メッセージデータのハッシュ値に対する署名を作成する。メッセージデータのハッシュ値は、N次の多項式の対であり、2・N次元のベクトルとして表現される。メッセージデータからハッシュ値を求めるハッシュ関数については、非特許文献1に詳しく説明されている。
多項式a=a_0+a_1・X+a_2・X^2+…+a_(N−1)・X^(N−1)のノルム||a||を以下のように定義する。
μ=(1/N)・(a_0+a_1+a_2+…+a_(N−1))
ここで、sqrt(x)はxの平方根を示す。
||(a,b)||=sqrt(||a||^2+||b||^2)
多項式a,bの対(a,b)とc,dの対(c,d)との距離は、||(c−a,d−b)||で定義される。
(3)NTRUSign署名方式の鍵生成
NTRUSign署名方式では、上述したように、パラメタdf,dgを用いてランダムに多項式f,多項式gを生成する。そして非特許文献4に記載の通り、Fq×f=1(mod q)となる多項式Fqを用いて、
h=Fq×g(mod q)
により、多項式hを生成する。さらに、以下の式を満たすようなノルムが小さい多項式F,Gを求める。
ここで、{(f,g),(F,G)}は、秘密鍵であり、hは、公開鍵である。秘密鍵は、署名を生成するための鍵であり、署名生成鍵とも呼ばれる。また、公開鍵は、署名を検証するための鍵であり、署名検証鍵とも呼ばれる。
(4)NTRUSign署名方式の署名生成
NTRUSign署名方式の署名生成においては、送信すべきメッセージデータのハッシュ値ベクトルを算出し、その最近傍格子点を署名ベクトルとする。Lsec座標系での係数を整数に丸めることにより、容易に最近傍格子点が得られる。
NTRUSign署名方式の署名生成では、以下に示すようにして、署名対象であるメッセージデータmの署名sを計算する。
次に、この2・N次元のベクトル(m1,m2)と秘密鍵{(f,g),(F,G)}とを用いて、以下の式を満たす多項式a,b,A,Bを計算する。
−g×m1+f×m2=a+q×b
ここで、A,aの係数は、〈−q/2〉+1から〈q/2〉の範囲に収まるように法qで割ったときの剰余である。すなわち、法qで割ったときの剰余が〈q/2〉からq−1である場合は、qだけ減算して、上記範囲に収まるよう調整する。ここで、〈x〉は、x以下の数の中で最も大きい数を示す。例えば、〈−1/2〉=−1である。
s=f×B+F×b (mod q)
t=g×B+G×b (mod q)
(5)NTRUSign署名方式の署名検証
NTRUSign署名方式の署名検証では、以下に示すようにして、署名sが署名対象であるメッセージデータmに対して正しいかどうかを検証する。
次に、公開鍵hを用いて、以下の式より、多項式tを計算する。
さらに、2・N次元ベクトル(s,t)と2・N次元ベクトル(m1,m2)との距離を求め、Normbound未満であるかをチェックする。Normbound未満であれば、署名sは正しいと判定して署名sを受理する。Normbound以上であれば、署名sは不正と判定して署名sを拒否する。
<安全性のベースとしての格子の問題>
NTRUSign署名方式は、格子の問題を安全性のベースとしている。以下では、それについて説明する。
(f×α,g×α)+(F×β,G×β)
の2・N次元ベクトル全体を格子(格子Lsec)として捉える。ここで、α,βは任意の多項式である。そのとき、秘密鍵における(f,g),(F,G)を格子の基底(ベクトル)と呼ぶ。図20(a)には、この2・N次元ベクトル全体を格子(格子Lsec)として捉える場合におけるLsec座標系を図示している。
(1×α’,h×α’)+(0,q×β’)
の2・N次元ベクトル全体も格子(格子Lpub)として捉える。ここで、α’,β’は任意の多項式である。図20(b)には、この2・N次元ベクトル全体を格子(格子Lpub)として捉える場合におけるLpub座標系を図示している。
一方、図20(b)に示すように、Lpub座標系の公開鍵基底ベクトル812(1,h),公開鍵基底ベクトル811(0,q)では、基底ベクトルのノルムが大きすぎるため、距離が近いものを計算することが困難になる。
m1−s=e1×f+e2×F
(ここで、e1,e2は、それぞれ、その係数が−1/2から1/2の範囲に入る多項式である)
となることを利用しており、差分m1−sの2次モーメント及び4次モーメントの平均値を算出することにより、秘密鍵の一部であるf,Fを求める。
a=a_0+a_1・X+a_2・X^2+…+a_(N−2)・X^(N−2)+a_(N−1)・X^(N−1)と
aの相反a*=a_0+a_(N−1)・X+a_(N−2)・X^2+…+a_2・X^(N−2)+a_1・X^(N−1)と
の積a〜2=a×a*である。
(m1−sの2次モーメント)=(e1×f+e2×F)×(e1*×f*+e2*×F*)=e1〜×f〜+e2〜×F〜+e1×f×e2*×F*+e2×F×e1*×f*
署名文の個数が増大すると、m1−sの2次モーメントの平均に含まれるe1〜,e2〜はある一定値k1,k2に収束し、上記の式のe1×f×e2*×F*とe2×F×e1*×f*は0に近づく。したがって、署名文の個数が大きい場合、m1−sの2次モーメントの平均は、k1×f〜+k2×F〜にほぼ等しくなる。さらに4次モーメントの平均でも、同様にf及びFに関連する情報を得られ、両方の情報からfを求めることが可能になる。
また、請求項5に記載の態様である署名生成装置において、前記秘密記憶手段に記憶されている前記分布により示される範囲において、複数の候補ベクトルは、選択される確率が一様でないように、配置されており、前記データ変換手段は、前記確率に従って、1の前記候補データを選択して前記攪乱ベクトルとするを特徴とする。
また、請求項6に記載の態様である署名生成装置において、前記分布により示される範囲は、複数の領域を有し、各領域に対して当該領域の選択確率が予め定められ、前記複数の領域のそれぞれにおいて、複数の候補ベクトルが配置され、前記データ変換手段は、前記選択確率に基づいて1の領域を選択し、選択した前記領域から1の前記候補ベクトルを選択して前記攪乱ベクトルとするを特徴とする。
また、請求項10に記載の態様である署名生成装置は、さらに、前記第1サイズより大きい第2サイズを記憶している公開記憶手段を含み、前記データ変換手段は、さらに、前記対象データによるベクトルと、前記変換ベクトルとの距離を算出し、算出した距離が前記第2サイズ以下でない場合に、第1サイズより小さい秘密の別の攪乱ベクトルを用いて、取得した対象データを変換して、別の変換ベクトルを生成するを特徴とする。
〔実施の形態1〕
本発明に係る1の実施の形態としてのデジタル署名システム10について説明する。
1.改良NTRUSign署名方式
改良NTRUSign署名方式は、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠としている。最小ベクトル問題(Shortest Vector Problem)は、1の基底ベクトルからその格子に含まれる「最小のベクトル」を求める問題である。近似最小ベクトル問題(Approximate Shortest Vector Problem)は、近似的に最小のベクトル(最小ベクトルではないが、それに近い大きさのベクトル)を求める問題である。
(1)改良NTRUSign署名方式のシステムパラメタ
改良NTRUSign署名方式においては、従来のNTRUSign署名方式と同じ非負整数のパラメタN,q,df,dgの他に距離L及びL’が存在する。従来のNTRUSign署名方式では、検証時にNormboundを使用する。これに対して、改良NTRUSign署名方式では、後で説明するように、検証時には、Normboundの代わりに、距離L’を使用する。
(i)パラメタN
改良NTRUSign署名方式は、多項式の演算により署名生成及び署名検証を行うデジタル署名方式である。改良NTRUSign署名方式で扱う多項式の次数は、パラメタNにより決まる。
また、公開鍵h、署名sは、いずれも、N−1次以下の多項式として表現される。また、秘密鍵は、4つのN−1次以下の多項式対(f,g,F,G)である。すなわち、f,g,F,Gは、いずれもN−1次以下の多項式である。なお、以下では、4つ組(f,g,F,G)を2つの対(f,g),(F,G)のさらなる対と捉えて、{(f,g),(F,G)}と表記する場合もある。
改良NTRUSign署名方式では、2以上の整数であるパラメタqを用いる。改良NTRUSign署名方式で出現する多項式の各係数は、qを法とした剰余を取るように演算する。
改良NTRUSign署名方式で扱う秘密鍵の一部である多項式f及び多項式gの選び方は、それぞれパラメタdf,dgにより決まる。多項式gは、公開鍵である多項式hを生成するときに、多項式fと共に用いられる。
(iv)パラメタL(距離)
パラメタL(第1サイズとも呼ぶ。)は、2・N次元ベクトル空間における超球の半径である。以下において、改良NTRUSign署名方式において加算されるランダムなベクトルの選択と、超球及び分布ηとの関係について説明する。
分布テーブル410は、2・N次元ベクトル空間において、分布400が占める空間構造を定めるものであり、2・N個の限界値ペアを含んで構成されている。2・N個の限界値ペアは、それぞれ、2・N次元ベクトルの2・N個のエレメントに対応している。2・N個の限界値ペアは、第1グループ及び第2グループから構成され、第1グループは、N個の限界値ペアを含み、第2グループは、残りのN個の限界値ペアを含む。各限界値ペアは、下限値及び上限値を含む。
V1_0_min411及び上限値V1_0_max412は、それぞれ、一例として、「3」及び「8」であり、第1グループに含まれる第N−1番目の限界値ペア内の下限値V1_(N-1)_min413及び上限値V1_(N-1)_max414は、それぞれ、一例として、「2」及び「5」である。また、分布テーブル410の第2グループに含まれる第0番目の限界値ペア内の下限値V2_0_min415及び上限値V2_0_max416は、それぞれ、一例として、「1」及び「6」であり、第2グループに含まれる第N−1番目の限界値ペア内の下限値V2_(N-1)_min417及び上限値V2_(N-1)_max418は、それぞれ、一例として、「4」及び「7」である。
V2=(V2_0、V2_1、V2_2、・・・、V2_(N−1))
このように、図2は、原点から分布の範囲のいずれかの点に向かうベクトルを選択することを示しており、この分布の例では、分布の範囲で一様で(等確率で)ランダムにベクトルを選択する。
次に、分布ηの別の一例を図4に示す。図4は、図2と同様に、2・N次元ベクトル空間を、2次元の紙面上に、模式的に表現したものであり、中心441を有し、半径L(距離442)の超球431を表現している。超球431の内部に、分布432が存在する。分布432は、超球431内に完全に含まれている。
このように、分布432では、複数の候補ベクトルは、選択される確率が一様でないように、配置されている。
分布テーブル450は、2・N次元ベクトル空間において、分布432が占める空間構造を定めるものであり、部分テーブルと発生確率との組を複数個含んで構成されている。具体的には、分布テーブル450は、部分テーブル451と発生確率454との組と、部分テーブル452と発生確率455との組と、部分テーブル453と発生確率456との組とを含む。3個の部分テーブル451、452及び453は、それぞれ、図4の部分領域A(433)、部分領域B(434)及び部分領域C(435)に対応している。各部分テーブルに対応する発生確率は、図4に示す分布432の部分領域を選択する確率である。各部分テーブル部は、図3に示す分布テーブル410と同様の構造を有しており、それぞれは、2・N個の限界値ペアを含んで構成されている。
改良NTRUSign署名方式では、後述するように、署名sから作られる2・N次元のベクトル(署名ベクトルと呼ぶ)と、ハッシュ値ベクトルとの距離を計算し、この距離により正しい署名であるかを判定する。パラメタL’(第2サイズ)は、この判定の際に使用するしきい値である。すなわち、計算された上記距離がL’以下であれば、正しい署名として受理し、L’より大きければ、正しくない署名として拒否する。
改良NTRUSign署名方式においても、同様のパラメタ例を使用してもよい。改良NTRUSign署名方式においては、距離Lの超球内のベクトルを選択したときに、ハッシュ値ベクトルと正しく生成した署名ベクトルとの距離がほとんどL’となるように調節する。
(2)メッセージデータのハッシュ値、ノルム及びベクトル間の距離
改良NTRUSign署名方式においても、メッセージデータのハッシュ値に対する署名を作成する。メッセージデータのハッシュ値は、N次の多項式の対であり、2・N次元のベクトルと同一視される。ハッシュ関数については、非特許文献1に詳しく説明されている。
Bit1-251),(Bit2-1,Bit2-2,Bit2-3,・・・Bit2-251)とし、メッセージデータmに対するハッシュ値である2・N次元のベクトルH=(m1,m2)(m1及びm2はN次多項式)とすると、N次多項式m1の係数は、(Bit1-1,Bit1-2,Bit1-3,・・・Bit1-251)であり、N次多項式m2の係数は、(Bit2-1,Bit2-2,Bit2-3,・・・Bit2-251)である。ここで、Biti-j(i=1,2、j=1,2,3,・・・,251)は、7ビットの長さである。
多項式a=a_0+a_1・X+a_2・X^2+…+a_(N−1)・X^(N−1)のノルム||a||を以下のように定義する。
(N−1)−μ)^2)
μ=(1/N)・(a_0+a_1+a_2+…+a_(N−1))
ここで、sqrt(x)はxの平方根を示す。
||(a,b)||=sqrt(||a||^2+||b||^2)
多項式a,bの対(a,b)とc,dの対(c,d)との距離は、||(c−a,d−b)||で定義される。
(3)改良NTRUSign署名方式の鍵生成
改良NTRUSign署名方式では、上述したように、パラメタdf,dgを用いてランダムに多項式f,多項式gを生成する。そして非特許文献4に記載の通り、Fq×f=1(mod q)となる多項式Fqを用いて、
h=Fq×g(mod q)
により、多項式hを生成する。さらに、以下の式を満たすようなノルムが小さい多項式F,Gを求める。
ここで、x=y(mod q)は、多項式yの第i次(0≦i≦N−1)の係数について、当該第i次の係数を、剰余が0からq−1の範囲に収まるように法qで割ったときの剰余を、多項式xの第i次の係数とする演算である。すなわち、yの各係数を、0から(q−1)の範囲に収まるようにmod q演算して得られる多項式を、多項式xとする演算である。
(4)改良NTRUSign署名方式の署名生成
改良NTRUSign署名方式の署名生成について、図6及び図17を用いて、説明する。
2’)を満たす多項式とする。図6において、変換ハッシュ値ベクトルH’を参照符号502で示す。
G×m1’−F×m2’=A+q×B
−g×m1’+f×m2’=a+q×b
ここで、A,aの係数は、〈−q/2〉+1から〈q/2〉の範囲に収まるように法qで割ったときの剰余を取ったものとする。すなわち、法qで割ったときの剰余が〈q/2〉からq−1である場合は、qだけ減算して、上記範囲に収まるよう調整する。ここで、〈x〉は、x以下の数の中で最も大きい数を示す。例えば、〈−1/2〉=−1である。
s=f×B+F×b (mod q)
t=g×B+G×b (mod q)
次に、ハッシュ値ベクトルHとSの距離を算出し、HとSの距離がL’以内であるかを判定する(ステップSG4)。L’以内であれば(ステップSG4でYes)、sを署名とする(ステップSG5)。L’以内でなければ(ステップSG4でNo)、ステップSG2からやり直す。
(5)改良NTRUSign署名方式の署名検証
改良NTRUSign署名方式の署名検証について、図7及び図18を用いて、説明する。
HとSの距離を求め、求めた距離がL’以下であるかをチェックする(ステップSV3)。L’以下であれば(ステップSV3でYes)、署名sが正しいと判定して署名sを受理し、OKを出力する(ステップSV4)。L’より大きければ(ステップSV3でNo)、署名sが不正と判定して署名sを拒否し、NGを出力する(ステップSV5)。
2.各装置の構成
(1)署名生成装置100の構成
署名生成装置100は、相手に送信すべきメッセージデータmに対する署名データセットSSを生成する。署名生成装置100は、図8に示すように、送信部101、秘密鍵格納部102、公開鍵証明書格納部103、署名生成部104、署名データセット生成部105及びシステムパラメタ格納部106を備える。
公開鍵証明書格納部103は、図9に示すように、予め、公開鍵hの証明書CPを格納している。証明書CPは、公開鍵hと、公開鍵hに対する鍵生成装置300による署名データSPとからなる。署名データSPも、改良NTRUSign署名方式を使用して生成する。また、証明書CPは予め与えられているものとする。なお、証明書CPは、公開鍵h及び署名データSPの他に、例えば、ユーザの識別子や証明書の期限などのデータを含んでいてもよい。
(署名生成部104の構成)
署名生成部104は、図10に示すように、ハッシュ値計算部111、ベクトル生成部112、ハッシュ値変換部113、署名生成部114、署名確認部115及びベクトル群選択格納部116から構成されている。
ハッシュ値変換部113は、ベクトル生成部112で生成したベクトルVを用いて、改良NTRUSign署名方式の署名生成処理におけるステップSG2の処理を行い、変換ハッシュ値ベクトルH’=H+Vを生成する。
署名確認部115は、改良NTRUSign署名方式の署名生成処理におけるステップSG4の処理を行い、署名ベクトルを確認する。確認した結果、ハッシュ値ベクトルと署名ベクトルが距離L’以内でない場合は、ベクトル生成部112の処理からやり直す。距離L’以内である場合は、署名ベクトルS=(s,t)のsを署名データSDとする。
(2)署名検証装置200の構成
署名検証装置200は、図11に示すように、受信部201、CA公開鍵格納部202、署名データセット格納部203、署名検証部204及びシステムパラメタ格納部205を備える。
CA公開鍵格納部202は、図12に示すように、予め、証明書CPを検証するための鍵生成装置300の公開鍵KCPを格納している。
(署名検証部204の構成)
署名検証部204は、図13に示すように、ハッシュ値計算部211、署名ベクトル生成部212及び距離判定部213から構成されている。
距離判定部213は、改良NTRUSign署名方式の署名検証処理におけるステップSV3の処理を行い、ハッシュ値ベクトルHと署名ベクトルSの距離を計算する。その距離がL’以内である場合は、署名データは正しいと判定する。L’より大きければ、署名データは不正と判定する。
(3)鍵生成装置300の構成
鍵生成装置300は、図14に示すように、分布生成部301、鍵生成部302、証明書生成部303、証明書生成鍵格納部304、鍵設定部305及びシステムパラメタ格納部306を備えている。
分布生成部301は、例えば、図3に示す分布テーブル410又は図5に示す分布テーブル450を生成することにより、改良NTRUSign署名の鍵生成処理における分布ηを生成し、生成した分布ηを鍵生成部302へ出力する。
う。分布生成部301は、システムパラメタ格納部306からパラメタN及びパラメタLを読み出し、2・N個の限界値ペアを格納するため領域を備える分布テーブルを生成する。次に、各限界値ペアについて、乱数を発生させて当該限界値ペアに含まれる下限値をランダムに決定する。次に、乱数を発生させて当該下限値より大きい上限値をランダムに決定する。下限値の決定と上限値の決定を全ての限界値ペアについて行う。決定した下限値及び上限値を前記の分布テーブルに格納する。こうして分布テーブル410が生成される。なお、各下限値及び各上限値は、分布内のベクトルのノルムがL以下となるように決定する。
分布生成部301は、システムパラメタ格納部306からパラメタN及びパラメタLを読み出し、乱数を発生させて、分布テーブル450に含まれる部分テーブルの数を決定する。一例として、乱数として「3」が生成されたとする。この場合には、各部分テーブルが2・N個の限界値ペアを格納するため領域を備えるように、3個の部分テーブルを生成する。次に、3個の発生確率(各発生確率は、「0」より大きく、「1」より小さい)をランダムに決定する。ここで、3個の発生確率の合計が「1」となるようにする。
鍵生成部302は、システムパラメタ格納部306から、パラメタN、パラメタq、パラメタdf、dg及びパラメタLを読み出し、上述したように、改良NTRUSign署名方式の鍵生成処理方法により、秘密鍵{(f,g),(F,G)}及び公開鍵hを生成する。また、鍵生成部302は、分布生成部301から分布ηを受け取る。次に、鍵生成部302は、秘密鍵{(f,g),(F,G)}、公開鍵h及び分布ηを鍵設定部305へ出力する。また、公開鍵hを証明書生成部303へ出力する。
3.デジタル署名システム10の動作
(1)デジタル署名システム10の概要の動作
デジタル署名システム10の概要の動作について、図16に示すフローチャートを用いて説明する。
(2)署名生成装置100の動作
署名生成装置100の動作について、図17に示すフローチャートを用いて説明する。
ベクトル生成部112は、ベクトルVを生成し、ハッシュ値変換部113は、変換ハッシュ値ベクトルH’=H+Vを生成する(ステップSG2)。
署名確認部115は、署名ベクトルを確認する(ステップSG4)。確認した結果、ハッシュ値ベクトルと署名ベクトルが距離L’以内でない場合は(ステップSG4でNo)、ステップSG2に戻って、ベクトル生成部112の処理からやり直す。距離L’以内である場合は(ステップSG4でYes)、署名ベクトルS=(s,t)のsを署名データSDとする(ステップSG5)。
(3)署名検証装置200の署名検証部204の動作
署名検証装置200の署名検証部204による署名検証の動作について、図18に示すフローチャートを用いて説明する。
(4)鍵生成装置300の動作
鍵生成装置300は、秘密鍵{(f,g),(F,G)}、分布ηと証明書CPを署名生成装置100に設定する。以下で、図19に示すフローチャートを用いて、その動作について説明する。
4.実施の形態1の効果
実施の形態1におけるデジタル署名システム10では、図7に示すように、署名ベクトルSを最近傍の格子のベクトルとする変換ハッシュ値ベクトルH’を隠蔽しており、検証者に送信していない。そのため、検証者に送信する際の通信路での攻撃者の傍受が発生した場合や、検証者自身が攻撃者である場合に、攻撃者が転写攻撃を試みようとしても、ベクトルとその最近傍の格子のベクトルとの差分の分布を知ることができないため、転写攻撃が困難になる。
なお、攻撃者にとって、分布の範囲が既知であり、発生確率も既知である場合であっても、ランダムなベクトルVをハッシュ値ベクトルに加算することにより、分布の範囲が広がる。転写攻撃では、一様分布の部分を取り去るためには、その分布の大きさに依存した署名のサンプル数が必要になる。したがって、ランダムなベクトルVを加算することで、分布の範囲が広がり、転写攻撃に要する署名のサンプル数が多くなるため、攻撃が困難になるという効果がある。
5.以上説明したように、本発明は、上述した転写攻撃を防ぐことができ、格子の問題を安全性のベースとする署名方式、特に、NTRUSign署名方式をベースにしたデジタル署名システムを提供することを目的とする。
ここで、前記分布の範囲は秘密であるとしてもよい。
ここで、前記分布の範囲は、複数の領域に分割され、各領域の選択確率が予め定められ、前記ベクトル生成手段は、前記選択確率に基づいて前記領域を選択し、選択した前記領域に基づいてベクトル生成してもよい。
ここで、前記分布は、所定の距離Lの超球に含まれるとしてもよい。
ここで、前記距離L’は、前記署名方式のシステムパラメタであるとしてもよい。
ここで、前記秘密鍵基底ベクトルは、加算、減算、乗算と元の大きさを示すノルムが定義されたN次元配列の集合である環Rと正整数qに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqと、f×G−g×F=qを満たす(F,G)とに基づく、前記元の4つ組(f,g,F,G)から得られ、前記公開鍵基底ベクトルは、前記正整数qと前記元gおよび前記元Fqの積とmod qで合同である元hから得られるとしてもよい。
また、本発明の別の1の態様は、署名方式を用いて、メッセージデータに対する署名データを検証する署名検証装置であって、前記署名方式は、ベクトルの集合である格子の最近傍問題を安全性のベースとしており、秘密の格子の基底ベクトルである秘密鍵基底ベクトルを構成するための情報を含む秘密鍵と、前記秘密鍵基底ベクトルと同じ前記格子を表現する公開の基底ベクトルである公開鍵基底ベクトルを構成するための情報を含む公開鍵を生成する鍵生成ステップと、前記秘密鍵を用いて前記メッセージデータに対する、1以上の前記格子の元からなる前記署名データを生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、前記署名検証装置は、前記署名データを検証するために使用する前記公開鍵を格納する公開鍵格納部と、前記公開鍵格納部に格納された前記公開鍵を用いて、前記メッセージデータに対する前記格子の元である前記署名データを検証する署名検証部とを備え、前記秘密鍵は、所定の距離Lの超球に含まれる所定のベクトルの分布を含み、前記公開鍵は、前記距離Lに関連する距離L’を含み、前記署名検証部は、前記メッセージデータと前記署名データの距離がL’以内であるか否かを判定することを特徴とする。
ここで、前記分布の範囲は秘密であるとしてもよい。
ここで、前記分布の範囲は、複数の領域に分割され、各領域の選択確率が予め定められ、前記署名生成ステップは、前記選択確率に基づいて前記領域を選択し、選択した前記領域に基づいて生成したベクトルを用いるとしてもよい。
ここで、前記分布は、所定の距離Lの超球に含まれるとしてもよい。
また、本発明の別の1の態様は、署名方式を用いて、メッセージデータに対する署名データを生成する署名生成装置の集積回路であって、前記署名方式は、ベクトルの集合である格子の最近傍問題を安全性のベースとしており、秘密の格子の基底ベクトルである秘密鍵基底ベクトルを構成するための情報を含む秘密鍵と、前記秘密鍵基底ベクトルと同じ前記格子を表現する公開の基底ベクトルである公開鍵基底ベクトルを構成するための情報を含む公開鍵を生成する鍵生成ステップと、前記秘密鍵を用いて前記メッセージデータに対する、1以上の前記格子の元からなる前記署名データを生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、前記署名生成装置は、前記署名データを生成するために使用する前記秘密鍵を格納する秘密鍵格納部と、前記秘密鍵格納部に格納された前記秘密鍵を用いて、前記メッセージデータに対する前記格子の元である前記署名データを生成する署名生成部とを備え、前記秘密鍵は、所定のベクトルの分布を含み、前記署名生成部は、前記分布に基づくベクトルを生成するベクトル生成手段と、前記メッセージデータを前記ベクトルに基づいて変換して変換メッセージデータを生成するメッセージ変換手段と、前記変換メッセージデータを前記メッセージデータとして用いて前記署名データを生成する署名生成手段と、を含むことを特徴とする。
上記に説明した実施の形態は、本発明の実施の一例であり、本発明はこの実施の形態に何ら限定されるものではなく、その旨を逸脱しない範囲において種々なる態様で実施し得るものである。例えば、以下のような場合も本発明に含まれる。
(1)実施の形態1におけるデジタル署名システム10では、ランダムなベクトルを分布に基づいて選択していたが、予め分布に基づくベクトルを求めて記憶しておき、記憶しているそのベクトルを用いるとしてもよい。また、予め複数の分布に基づくベクトルを複数個求めて記憶しておき、記憶している複数のベクトルから1個のベクトルを選択するとしてもよい。
(2)デジタル署名システム10では、ベクトルVを加算して変換ハッシュ値ベクトルを生成していたが、これに限らない。例えば、ベクトルVをn倍(nは0以外の整数)したものを加算して変換ハッシュ値ベクトルを生成するとしてもよい。また、ベクトルVを減算して変換ハッシュ値を生成するとしてもよい。
(3)改良NTRUSign署名方式におけるLとL‘は、(L,L’)=(200,500)としていたが、他の値でもよい。例えば、(L,L’)=(50,350)であってもよい。また、LとL’の差は、従来のNTRUSign署名方式のNormboundと程度としていたが、Normboundより小さくてもよい。L’は、ほとんどのハッシュ値ベクトルと正しく生成した署名ベクトルの距離がその値以下に納まる値であれば何でもよい。
(4)改良NTRUSign署名方式において、距離Lをシステムパラメタとして公開していたが、署名を生成するユーザごとに異なる値としてもよい。その場合は、L’を公開鍵に含めて署名を検証するユーザに知らせるとしてもよい。また、距離Lを秘密にするとしてもよい。
(5)改良NTRUSign署名方式において、分布ηとして図2や図4に示す分布400、432を使用するとしているが、これに限らない。例えば、ある次元(例えばi番目、すなわち、i−1次の項)の要素を所定の範囲(例えば、2以上5以下)に制限するとしてもよい。
(6)NTRUSign署名方式では、秘密鍵における(f,g),(F,G)を格子の基底ベクトル(秘密鍵基底ベクトル)、公開鍵におけるhとシステムパラメタであるqから得られる(1,h),(0,q)を格子の基底ベクトル(公開鍵基底ベクトル)としたとき、それぞれの基底ベクトルから得られる格子点が同一であることから、格子の問題(格子の最近傍問題)をベースにした署名方式と呼ばれる。改良NTRUSign署名方式も同様の秘密鍵基底ベクトルと公開鍵基底ベクトルを持つ。
(7)分布ηのデータ構造である分布テーブルの他の一例について説明する。
V1_max=c_1_max×Base1_1+c_2_min×Base1_2+c_3_max×Base1_3
V2_max=c_1_max×Base2_1+c_2_min×Base2_2+c_3_max×Base2_3
であり、そのノルムは 194.9 < 200である。
また、分布テーブル610において、Base1_i及びBase2_iのそれぞれについて、多項式の数は3個であるが、2個でもよいし、4個以上でもよい。
(8)分布ηのデータ構造である分布テーブルのさらに他の一例について説明する。
第2サブ分布情報は、下限値C_2_i_min、上限値C_2_i_max及び多項式Base2_iを含む。
V1_max=c_1_1_max×Base1_1+c_1_2_max×Base1_2+c_1_3_max×Base1_3
V2_max=c_2_1_max×Base2_1+c_2_2_min×Base2_2+c_2_3_min×Base2_3
であり、そのノルムは 199.1 < 200である。
D.E. Knuth, “THE ART OF COMPUTER PROGRAMMING, 2nd ed.,
vol.2:Seminumerical Algorithms”, ADDISON-WESLEY, 1981, pp. 129-130
(9)上記の実施の形態では、署名検証時に、「L以内」で正しいと判定するとしているが、これには限定されず、「L未満」で正しいと判定するとしてもよい。その場合は、「Lより大きい」ときに不正と判定するのではなく、「L以上」のときに不正と判定する。
(10)上記の実施の形態及び変形例は、認証において適用される。認証とは、メッセージデータが自称どおりの人物によって送られたこと、またメッセージデータが改竄されなかったということの検証である。また、実施の形態及び変形例は、身分の証明において適用される。身分の証明とは、例えば、データへのアクセス権、又は施設へのアクセス権(入室権)を持つことの証明、又は自分が主張どおりの人物であることの証明である。さらに、実施の形態及び変形例は、否認防止において適用される。否認防止とは、例えば、実は何かに同意したのに、同意していないと主張する者に対抗することをいう。
(11)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(12)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
20 通信路
100 署名生成装置
200 署名検証装置
300 鍵生成装置
101 送信部
102 秘密鍵格納部
103 公開鍵証明書格納部
104 署名生成部
105 署名データセット生成部
106 システムパラメタ格納部
111 ハッシュ値計算部
112 ベクトル生成部
113 ハッシュ値変換部
114 署名生成部
115 署名確認部
116 ベクトル群選択格納部
201 受信部
202 CA公開鍵格納部
203 署名データセット格納部
204 署名検証部
205 システムパラメタ格納部
211 ハッシュ値計算部
212 署名ベクトル生成部
213 距離判定部
301 分布生成部
302 鍵生成部
303 証明書生成部
304 証明書生成鍵格納部
305 鍵設定部
306 システムパラメタ格納部
Claims (19)
- 署名生成装置及び署名検証装置において用いられ、データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、対象データに署名し、検証する方法であって、
前記署名生成装置の取得手段により、対象データを取得する取得ステップと、
前記署名生成装置の変換手段により、第1サイズより小さい秘密の攪乱ベクトルを用いて、取得した対象データを変換して、変換ベクトルを生成する変換ステップと、
前記署名生成装置の署名手段により、秘密鍵ベクトルを基底ベクトルとして定まる格子において、前記変換ベクトルに最近接する格子点を求めて前記変換ベクトルに対する署名ベクトルを生成し、前記署名ベクトルの一部を署名データとする署名ステップと、
前記署名検証装置の検証手段により、公開鍵ベクトルと前記署名データとを用いて、前記署名ベクトルを復元し、前記対象データによるベクトルと復元された前記署名ベクトルとの距離が、前記第1サイズより大きい第2サイズ以下であるか否かを検証する検証ステップと、
前記署名検証装置の出力手段により、第2サイズ以下であるとき、検証が成功したことを示す成功情報を出力する出力ステップとを含み、
各ベクトルは、多項式により表現され、
前記署名生成装置は、前記攪乱ベクトルが第1サイズより小さくなるように設定された、乗数の上限を示す上限値、乗数の下限を示す下限値及び前記攪乱ベクトルの生成の基になるひな型多項式を対応付けて含む攪乱ベクトル分布テーブルを記憶しており、
前記変換ステップは、上限値以下かつ下限値以上である乗数をランダムに選択し、選択した乗数を前記ひな型多項式に乗じて、前記第1サイズより小さい多項式を得、得られた多項式を前記攪乱ベクトルを示す多項式として生成する
ことを特徴とする方法。 - データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、対象データに対する署名データを生成する署名生成装置であって、
対象データを取得する取得手段と、
秘密鍵ベクトルを秘密に記憶している秘密記憶手段と、
第1サイズより小さい秘密の攪乱ベクトルを用いて、取得した対象データを変換して、変換ベクトルを生成するデータ変換手段と、
秘密鍵ベクトルを基底として定まる格子において、前記変換ベクトルに最近接する格子点を求めて前記変換ベクトルに対する署名ベクトルを生成し、前記署名ベクトルの一部を署名データとする署名生成手段と、
前記対象データと生成した署名データとを出力する出力手段とを備え、
各ベクトルは、多項式により表現され、
前記秘密記憶手段は、さらに、前記攪乱ベクトルが第1サイズより小さくなるように設定された、乗数の上限を示す上限値、乗数の下限を示す下限値及び前記攪乱ベクトルの生成の基になるひな型多項式を対応付けて含む攪乱ベクトル分布テーブルを記憶しており、
前記データ変換手段は、上限値以下かつ下限値以上である乗数をランダムに選択し、選択した乗数を前記ひな型多項式に乗じて、前記第1サイズより小さい多項式を得、得られた多項式を前記攪乱ベクトルを示す多項式として生成する
ことを特徴とする署名生成装置。 - 前記秘密記憶手段は、さらに、前記第1サイズより小さい複数の候補ベクトルが属する範囲を示す分布を記憶しており、
前記データ変換手段は、前記分布により示される範囲に属する前記候補ベクトルから、1の候補ベクトルを選択して前記攪乱ベクトルとする
ことを特徴とする請求項2に記載の署名生成装置。 - 前記秘密記憶手段は、耐タンパ性を有し、前記秘密鍵及び前記分布は、外部から知られないように、秘密に保護されている
ことを特徴とする請求項3記載の署名生成装置。 - 前記秘密記憶手段に記憶されている前記分布により示される範囲において、複数の候補ベクトルは、選択される確率が一様でないように、配置されており、
前記データ変換手段は、前記確率に従って、1の前記候補データを選択して前記攪乱ベクトルとする
を特徴とする請求項4記載の署名生成装置。 - 前記分布により示される範囲は、複数の領域を有し、各領域に対して当該領域の選択確率が予め定められ、前記複数の領域のそれぞれにおいて、複数の候補ベクトルが配置され、
前記データ変換手段は、前記選択確率に基づいて1の領域を選択し、選択した前記領域から1の前記候補ベクトルを選択して前記攪乱ベクトルとする
を特徴とする請求項4記載の署名生成装置。 - 前記データ変換手段は、
前記分布により示される範囲に属する前記候補ベクトルから、1の候補ベクトルを選択して、前記攪乱ベクトルとするベクトル生成部と、
前記対象データに基づくベクトルに、前記攪乱ベクトルを加えることにより、前記変換ベクトルを生成する加算部と
を含むことを特徴とする請求項4に記載の署名生成装置。 - 前記ベクトル生成部は、前記分布に基づいて予め選択した複数の候補ベクトルから、ランダムに選択することにより、前記攪乱ベクトルを生成する
ことを特徴とする請求項7に記載の署名生成装置。 - 前記分布は、前記第1サイズを半径とする超球内に含まれる
ことを特徴とする請求項4に記載の署名生成装置。 - 前記署名生成装置は、さらに、前記第1サイズより大きい第2サイズを記憶している公開記憶手段を含み、
前記データ変換手段は、さらに、前記対象データによるベクトルと、前記変換ベクトルとの距離を算出し、算出した距離が前記第2サイズ以下でない場合に、第1サイズより小さい秘密の別の攪乱ベクトルを用いて、取得した対象データを変換して、別の変換ベクトルを生成する
を特徴とする請求項4記載の署名生成装置。 - 前記秘密鍵ベクトルは、加算、減算、乗算と、元のサイズを示すノルムが定義されたN次元配列の集合である環Rと正整数qに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqと、f×G−g×F=qを満たす(F,G)とに基づく、前記元の4つ組(f,g,F,G)から得られ、
前記公開鍵ベクトルは、前記正整数qと前記元gおよび前記元Fqの積とmod qで合同である元hから得られる
ことを特徴とする請求項4に記載の署名生成装置。 - データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、対象データに対する署名データを生成する署名生成装置において用いられる署名生成方法であって、
取得手段により、対象データを取得する取得ステップと、
変換手段により、第1サイズより小さい秘密の攪乱ベクトルを用いて、取得した対象データを変換して、変換ベクトルを生成するデータ変換ステップと、
署名生成手段により、秘密鍵ベクトルを基底として定まる格子において、前記変換ベクトルに最近接する格子点を求めて前記変換ベクトルに対する署名ベクトルを生成し、前記署名ベクトルの一部を署名データとする署名生成ステップと、
出力手段により、前記対象データと生成した署名データとを出力する出力ステップとを含み、
各ベクトルは、多項式により表現され、
前記署名生成装置は、前記攪乱ベクトルが第1サイズより小さくなるように設定された、乗数の上限を示す上限値、乗数の下限を示す下限値及び前記攪乱ベクトルの生成の基になるひな型多項式を対応付けて含む攪乱ベクトル分布テーブルを記憶しており、
前記データ変換ステップは、上限値以下かつ下限値以上である乗数をランダムに選択し、選択した乗数を前記ひな型多項式に乗じて、前記第1サイズより小さい多項式を得、得られた多項式を前記攪乱ベクトルを示す多項式として生成する
ことを特徴とする署名生成方法。 - データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、対象データに対する署名データを生成するコンピュータにおいて用いられる署名生成用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
前記コンピュータプログラムは、前記コンピュータに、
対象データを取得する取得ステップと、
第1サイズより小さい秘密の攪乱ベクトルを用いて、取得した対象データを変換して、変換ベクトルを生成するデータ変換ステップと、
秘密鍵ベクトルを基底として定まる格子において、前記変換ベクトルに最近接する格子点を求めて前記変換ベクトルに対する署名ベクトルを生成し、前記署名ベクトルの一部を署名データとする署名生成ステップと、
前記対象データと生成した署名データとを出力する出力ステップと
を実行させ、
各ベクトルは、多項式により表現され、
前記コンピュータは、前記攪乱ベクトルが第1サイズより小さくなるように設定された、乗数の上限を示す上限値、乗数の下限を示す下限値及び前記攪乱ベクトルの生成の基になるひな型多項式を対応付けて含む攪乱ベクトル分布テーブルを記憶しており、
前記データ変換ステップは、上限値以下かつ下限値以上である乗数をランダムに選択し、選択した乗数を前記ひな型多項式に乗じて、前記第1サイズより小さい多項式を得、得られた多項式を前記攪乱ベクトルを示す多項式として生成する
ことを特徴とする前記コンピュータプログラムを記録している記録媒体。 - データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、署名する署名生成装置及び検証する署名検証装置から構成されるシステムであって、
前記署名生成装置は、
対象データを取得する取得手段と、
秘密鍵ベクトルを秘密に記憶している秘密記憶手段と、
第1サイズより小さい秘密の攪乱ベクトルを用いて、取得した対象データを変換して、変換ベクトルを生成するデータ変換手段と、
秘密鍵ベクトルを基底として定まる格子において、前記変換ベクトルに最近接する格子点を求めて前記変換ベクトルに対する署名ベクトルを生成し、前記署名ベクトルの一部を署名データとする署名生成手段と、
前記対象データと生成した署名データとを出力する出力手段とを備え、
前記署名検証装置は、
前記対象データ及び署名データを取得する取得手段と、
公開鍵ベクトルを記憶している記憶手段と、
公開鍵ベクトルと前記署名データとを用いて、前記署名ベクトルを復元し、前記対象データによるベクトルと復元された前記署名ベクトルとの距離が、前記第1サイズより大きい第2サイズ以下であるか否かを検証する検証手段と、
第2サイズ以下であるとき、検証が成功したことを示す成功情報を出力する出力手段と
を備え、
各ベクトルは、多項式により表現され、
前記秘密記憶手段は、さらに、前記攪乱ベクトルが第1サイズより小さくなるように設定された、乗数の上限を示す上限値、乗数の下限を示す下限値及び前記攪乱ベクトルの生成の基になるひな型多項式を対応付けて含む攪乱ベクトル分布テーブルを記憶しており、
前記データ変換手段は、上限値以下かつ下限値以上である乗数をランダムに選択し、選択した乗数を前記ひな型多項式に乗じて、前記第1サイズより小さい多項式を得、得られた多項式を前記攪乱ベクトルを示す多項式として生成する
ことを特徴とするシステム。 - 前記出力手段は、前記変換ベクトルを出力することなく、隠蔽する
ことを特徴とする請求項5記載の署名生成装置。 - 第2サイズは、第1サイズにNormboundを加算した値であり、
Normboundは、NTRUSign署名方式において用いられる閾値である
ことを特徴とする請求項2記載の署名生成装置。 - 前記データ変換手段は、前記攪乱ベクトルを前記対象データに加算することにより、前記対象データから前記攪乱ベクトルを減ずることにより、又は、前記攪乱ベクトルをn(nは、0以外の整数)倍して得られたベクトルを前記対象データに加算することにより、前記変換ベクトルを生成する
ことを特徴とする請求項2記載の署名生成装置。 - 前記攪乱ベクトル分布テーブルは、複数の分布情報のそれぞれについて、乗数の上限を示す上限値、乗数の下限を示す下限値、前記攪乱ベクトルの生成の基になる第1ひな型多項式及び第2ひな型多項式を記憶しており、
前記データ変換手段は、
複数の分布情報のそれぞれについて、上限値以下かつ下限値以上である乗数をランダムに選択し、選択した乗数を前記第1ひな型多項式に乗じて、第1多項式を生成し、複数の分布情報のそれぞれについて得られた複数の第1多項式を加算して、第1攪乱ベクトル多項式を生成し、
複数の分布情報のそれぞれについて、上限値以下かつ下限値以上である乗数をランダムに選択し、選択した乗数を前記第2ひな型多項式に乗じて、第2多項式を生成し、複数の分布情報のそれぞれについて得られた複数の第2多項式を加算して、第2攪乱ベクトル多項式を生成し、
前記第1攪乱ベクトル多項式及び前記第2攪乱ベクトル多項式を前記攪乱ベクトルを示す多項式として生成する
ことを特徴とする請求項2記載の署名生成装置。 - 前記攪乱ベクトル分布テーブルは、複数の分布情報のそれぞれについて、乗数の上限を示す第1上限値、乗数の下限を示す第1下限値及び前記攪乱ベクトルの生成の基になる第1ひな型多項式の組、並びに、乗数の上限を示す第2上限値、乗数の下限を示す第2下限値及び前記攪乱ベクトルの生成の基になる第2ひな型多項式の組を記憶しており、
前記データ変換手段は、
複数の分布情報のそれぞれについて、第1上限値以下かつ第1下限値以上である乗数をランダムに選択し、選択した乗数を前記第1ひな型多項式に乗じて、第1多項式を生成し、複数の分布情報のそれぞれについて得られた複数の第1多項式を加算して、第1攪乱ベクトル多項式を生成し、
複数の分布情報のそれぞれについて、第2上限値以下かつ第2下限値以上である乗数をランダムに選択し、選択した乗数を前記第2ひな型多項式に乗じて、第2多項式を生成し、複数の分布情報のそれぞれについて得られた複数の第2多項式を加算して、第2攪乱ベクトル多項式を生成し、
前記第1攪乱ベクトル多項式及び前記第2攪乱ベクトル多項式を前記攪乱ベクトルを示す多項式として生成する
ことを特徴とする請求項2記載の署名生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010507130A JP5341878B2 (ja) | 2008-04-09 | 2009-03-02 | 署名及び検証方法、署名生成装置並びに署名検証装置 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008101281 | 2008-04-09 | ||
JP2008101281 | 2008-04-09 | ||
PCT/JP2009/000923 WO2009125537A1 (ja) | 2008-04-09 | 2009-03-02 | 署名及び検証方法、署名生成装置並びに署名検証装置 |
JP2010507130A JP5341878B2 (ja) | 2008-04-09 | 2009-03-02 | 署名及び検証方法、署名生成装置並びに署名検証装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2009125537A1 JPWO2009125537A1 (ja) | 2011-07-28 |
JP5341878B2 true JP5341878B2 (ja) | 2013-11-13 |
Family
ID=41161675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010507130A Active JP5341878B2 (ja) | 2008-04-09 | 2009-03-02 | 署名及び検証方法、署名生成装置並びに署名検証装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8452975B2 (ja) |
EP (1) | EP2264941A1 (ja) |
JP (1) | JP5341878B2 (ja) |
CN (1) | CN101965711B (ja) |
WO (1) | WO2009125537A1 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101026021B1 (ko) * | 2009-09-16 | 2011-03-30 | 포항공과대학교 산학협력단 | 시공간 블록 부호의 검출 방법 및 장치 |
IL205803A0 (en) * | 2010-05-16 | 2010-12-30 | Yaron Sella | Collision-based signature scheme |
US20120291096A1 (en) * | 2011-05-12 | 2012-11-15 | Nokia Corporation | Method and apparatus for secure signing and utilization of distributed computations |
JP5790286B2 (ja) * | 2011-08-12 | 2015-10-07 | ソニー株式会社 | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム |
JP5790318B2 (ja) * | 2011-08-29 | 2015-10-07 | ソニー株式会社 | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム |
CN103780382B (zh) * | 2014-01-13 | 2017-01-18 | 华南理工大学 | 一种基于超球面的多变量公钥加密/解密系统及方法 |
JP2016116134A (ja) * | 2014-12-16 | 2016-06-23 | パナソニックIpマネジメント株式会社 | 署名検証装置、署名生成装置、署名処理システム、署名検証方法及び署名生成方法 |
CN109792383B (zh) | 2016-08-02 | 2022-11-18 | 阿尔几何有限责任公司 | 用于使用几何代数的增强的以数据为中心的加密系统的方法和系统 |
US9698986B1 (en) * | 2016-09-23 | 2017-07-04 | ISARA Corporation | Generating shared secrets for lattice-based cryptographic protocols |
WO2018187604A1 (en) * | 2017-04-07 | 2018-10-11 | X-Logos, LLC | Methods and systems for enhanced data-centric scalar multiplicative homomorphic encryption systems using geometric algebra |
US11080365B2 (en) * | 2018-10-31 | 2021-08-03 | Fujitsu Limited | Solving lattice problems using annealing |
CN110351097B (zh) * | 2019-07-01 | 2020-08-14 | 中国科学院数学与系统科学研究院 | 一种基于格的数字签名方法 |
DE102020119569B3 (de) * | 2020-07-24 | 2021-12-09 | Infineon Technologies Ag | Bereitstellen einer kryptografischen Information |
WO2022035909A1 (en) | 2020-08-10 | 2022-02-17 | X-Logos, LLC | Methods for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger technology |
CN112003707A (zh) * | 2020-08-25 | 2020-11-27 | 湖南宸瀚信息科技有限责任公司 | 一种抗量子计算攻击的区块链数字签名加密方法及系统 |
WO2022061184A2 (en) | 2020-09-17 | 2022-03-24 | X-Logos, LLC | Methods and systems for encrypting rational numbers and adding randomness to rsa cryptosystems using p-adic numbers |
KR102474894B1 (ko) * | 2022-09-01 | 2022-12-06 | (주)노르마 | 양자 내성 암호화 알고리즘에 기초한 서명과 인증을 수행함으로써 가상 사설 네트워크를 제공하는 가상 사설 네트워크 형성 방법 및 이를 수행하는 가상 사설 네트워크 운용 시스템 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002230202A (ja) * | 2001-01-31 | 2002-08-16 | Ricoh Co Ltd | 電子データ化方法及び装置 |
JP2005072917A (ja) * | 2003-08-22 | 2005-03-17 | National Institute Of Information & Communication Technology | 暗号化データ作成装置および方法ならびにそのプログラム |
JP2006053715A (ja) * | 2004-08-11 | 2006-02-23 | Kddi Corp | 擬似乱数生成装置および方法 |
WO2006114948A1 (ja) * | 2005-04-18 | 2006-11-02 | Matsushita Electric Industrial Co., Ltd. | 署名生成装置および署名検証装置 |
JP2007288230A (ja) * | 2006-03-24 | 2007-11-01 | Tatsuomi Sakata | コンピュータ通信装置、複号情報生成装置、プログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0920753B1 (en) | 1996-08-19 | 2006-12-13 | NTRU Cryptosystems, Inc. | Public key cryptosystem method and apparatus |
US6959085B1 (en) * | 1999-05-03 | 2005-10-25 | Ntru Cryptosystems, Inc. | Secure user identification based on ring homomorphisms |
EP1397884A4 (en) | 2001-05-04 | 2006-02-15 | Docomo Comm Lab Usa Inc | SIGNATURE SCHEME BASED ON RINGS |
EP1451967A1 (en) | 2001-12-07 | 2004-09-01 | NTRU Cryptosystems, Inc. | Digital signature and authentication method and apparatus |
US20040151309A1 (en) | 2002-05-03 | 2004-08-05 | Gentry Craig B | Ring-based signature scheme |
-
2009
- 2009-03-02 WO PCT/JP2009/000923 patent/WO2009125537A1/ja active Application Filing
- 2009-03-02 EP EP09730374A patent/EP2264941A1/en not_active Withdrawn
- 2009-03-02 US US12/921,507 patent/US8452975B2/en active Active
- 2009-03-02 JP JP2010507130A patent/JP5341878B2/ja active Active
- 2009-03-02 CN CN200980108247.2A patent/CN101965711B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002230202A (ja) * | 2001-01-31 | 2002-08-16 | Ricoh Co Ltd | 電子データ化方法及び装置 |
JP2005072917A (ja) * | 2003-08-22 | 2005-03-17 | National Institute Of Information & Communication Technology | 暗号化データ作成装置および方法ならびにそのプログラム |
JP2006053715A (ja) * | 2004-08-11 | 2006-02-23 | Kddi Corp | 擬似乱数生成装置および方法 |
WO2006114948A1 (ja) * | 2005-04-18 | 2006-11-02 | Matsushita Electric Industrial Co., Ltd. | 署名生成装置および署名検証装置 |
JP2007288230A (ja) * | 2006-03-24 | 2007-11-01 | Tatsuomi Sakata | コンピュータ通信装置、複号情報生成装置、プログラム |
Non-Patent Citations (2)
Title |
---|
JPN7013001539; JEFFREY HOFFSTEIN: 'NTRUSIGN:DIGITAL SIGNATURES USING THE NTRU LATTICE PRELIMINARY DRAFT 2' [online] , 20020402, p.1-31 * |
JPN7013001540; Jeffrey Hoffstein: 'NTRUSign: Digital Signatures Using the NTRU Lattice' [online] , 2003, p.1-18 * |
Also Published As
Publication number | Publication date |
---|---|
WO2009125537A1 (ja) | 2009-10-15 |
EP2264941A1 (en) | 2010-12-22 |
CN101965711A (zh) | 2011-02-02 |
US20110016325A1 (en) | 2011-01-20 |
US8452975B2 (en) | 2013-05-28 |
JPWO2009125537A1 (ja) | 2011-07-28 |
CN101965711B (zh) | 2014-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5341878B2 (ja) | 署名及び検証方法、署名生成装置並びに署名検証装置 | |
JP4548737B2 (ja) | 署名生成装置及び署名検証装置 | |
JP4544538B2 (ja) | 署名生成装置、鍵生成装置及び署名生成方法 | |
US5146500A (en) | Public key cryptographic system using elliptic curves over rings | |
JP4546231B2 (ja) | Idベース署名及び暗号化システムおよび方法 | |
US7653817B2 (en) | Signature schemes using bilinear mappings | |
JP4620669B2 (ja) | 署名生成装置、署名検証装置、それらの方法、および集積回路 | |
JP4477678B2 (ja) | 電子署名方式、電子署名プログラムおよび電子署名装置 | |
JP4830860B2 (ja) | 署名装置、検証装置、証明装置、暗号化装置、及び復号化装置 | |
JP4899867B2 (ja) | グループ署名方式 | |
Moldovyan et al. | Blind Collective Signature Protocol Based on Discrete Logarithm Problem. | |
JP4776906B2 (ja) | 署名生成方法及び情報処理装置 | |
JP2006194990A (ja) | 暗号装置、復号装置、鍵生成装置、プログラム及び方法 | |
WO2007074836A1 (ja) | 署名生成装置、署名生成方法及び署名生成プログラム | |
CN106936584B (zh) | 一种无证书公钥密码系统的构造方法 | |
CN111865555B (zh) | 一种基于k-Lin假设的同态加密方法 | |
WO2006114948A1 (ja) | 署名生成装置および署名検証装置 | |
EP2061178A1 (en) | Electronic signature system and electronic signature verifying method | |
JP2000502196A (ja) | 制御自写像公開鍵システム | |
CN112733176B (zh) | 基于全域哈希的标识密码加密方法 | |
Andreevich et al. | On Using Mersenne Primes in Designing Cryptoschemes | |
Saritha | Block chain authentication using elliptic curve digital signature algorithm | |
JP2007151073A (ja) | 鍵生成プログラム | |
Qi | A zero-knowledge proof of digital signature scheme based on the elliptic curve cryptosystem | |
Grünauer | Proposal of a new efficient public key system for encryption and digital signatures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120123 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130430 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130612 |
|
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: 20130716 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130808 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5341878 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |