JP4544538B2 - 署名生成装置、鍵生成装置及び署名生成方法 - Google Patents
署名生成装置、鍵生成装置及び署名生成方法 Download PDFInfo
- Publication number
- JP4544538B2 JP4544538B2 JP2006552394A JP2006552394A JP4544538B2 JP 4544538 B2 JP4544538 B2 JP 4544538B2 JP 2006552394 A JP2006552394 A JP 2006552394A JP 2006552394 A JP2006552394 A JP 2006552394A JP 4544538 B2 JP4544538 B2 JP 4544538B2
- Authority
- JP
- Japan
- Prior art keywords
- signature
- key
- secret
- generation
- secret key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- 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/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- 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)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Description
上記で提案された方式は、データを暗号化する守秘暗号方式であったが、その後、NTRU暗号のディジタル署名方式が提案されている(非特許文献3参照)。ディジタル署名方式については解読法の出現などで、方式が幾度か変更された。以下では、NTRUSignと呼ばれるディジタル署名方式について簡単に説明する(詳細については、特許文献2及び非特許文献4参照)。
(1)NTRUSign署名方式のパラメータ
NTRUSign署名方式は、非負整数のパラメータ、N,q,df,dg,Normboundを用いる。以下に、これらのパラメータの意味を説明する。
(1−1)パラメータN
NTRUSign署名方式は、多項式の演算により署名生成及び署名検証を行うディジタル署名方式である。NTRUSign署名方式で扱う多項式の次数は、上記パラメータNにより決まる。
(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次以下の多項式になるように演算される。
(1−2)パラメータq
NTRUSign署名方式では、2以上の整数であり、多項式環Rのイデアルであるパラメータqを用いる。NTRUSign署名方式で出現する多項式の係数は、qを法とした剰余を取る。
NTRUSign署名方式で扱う秘密鍵の一部である多項式f及び、公開鍵である多項式hを生成するときに多項式fと共に用いる多項式gの選び方は、それぞれパラメータdf,dgにより決まる。
まず、多項式fは、df個の係数が1であり、かつ他の係数は0となるように選ぶ。すなわち、多項式fはN−1次以下の多項式であり、0次(定数項)からN−1次まで、N個の係数があるが、このN個の係数のうち、df個の係数が1であり、かつ(N−df)個の係数が0となるように選ぶ。
(1−4)パラメータNormbound
NTRUSign署名方式では、後述するが署名sから作られる2・N次元のベクトルとメッセージのハッシュ値である2・N次元のベクトルの距離を計算し、この距離により正しい署名であるかを判定する。Normboundは、この判定の際に使用するしきい値である。すなわち、上記距離がNormbound未満であれば、正しい署名として受理し、Normbound以上であれば、正しくない署名とし拒否する。
(2)メッセージのハッシュ値、ノルム及びベクトル間の距離
NTRUSign署名方式では、メッセージmのハッシュ値に対する署名を作成する。メッセージmのハッシュ値は、N次の多項式の対(m1,m2)であり、2・N次元のベクトルと同一視される。メッセージからハッシュ値を求めるハッシュ関数については、非特許文献1が詳しい。
多項式a=a_0+a_1・X+a_2・X^2+…+a_(N−1)・X^(N−1)のノルム||a||を以下のように定義する。
||a||=sqrt((a_0−μ)^2+(a_1−μ)^2+…+(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)||で定義される。
これにより、(mod X^N−1)演算を施すことにより得られたN−1次以下の整数係数多項式は、加算、減算、乗算、及び元の大きさを示すノルムが定義されたN次元配列とみなすことができ、多項式環Rは、N次元配列の集合とみなすことができる。
NTRUSign署名方式では、上述したように、パラメータdf,dgを用いてランダムに多項式f,多項式gを生成する。そして非特許文献4に記載の通り、Fq×f=1(mod q)となる多項式Fqを用いて、
h=Fq×g(mod q)
により、多項式hを生成する。ここで、多項式Fqは、多項式fの逆元と呼ばれる。さらに、以下の式を満たすようなノルムが小さい多項式F,Gを求める。
秘密鍵を{(f,g),(F,G)}、公開鍵をhとする。秘密鍵は、署名を生成するための鍵であり、署名生成鍵とも呼ばれる。また、公開鍵は、署名を検証するための鍵であり、署名検証鍵とも呼ばれる。
ここで、x=y(mod q)は、多項式yの第i次の係数を、剰余が0からq−1の範囲に収まるように法qで割ったときの剰余を、多項式xの第i次の係数とする演算である(0≦i≦N−1)。すなわち、多項式yの各係数を、0から(q−1)の範囲に収まるようにmod q演算した多項式を、多項式xとする演算である。
NTRUSign署名方式の署名生成では、署名対象であるメッセージmの署名sを計算する。まず、メッセージmに対するハッシュ値である2・N次元のベクトル(m1,m2)(m1及びm2はN次多項式)を計算する。
この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の正しい署名であるかを検証する。まず、メッセージmに対するハッシュ値である2・N次元のベクトル(m1,m2)を計算する。
t=s×h (mod q)
2・N次元ベクトル(s,t)と(m1,m2)の距離を求め、Normbound未満であるかをチェックする。Normbound未満であれば、署名sが正しいと判定して署名sを受理する。Normbound以上であれば、署名sが不正と判定して署名sを拒否する。
Transcript attackは、複数の署名sとメッセージのハッシュ値(m1,m2)の一部m1との差分m1−sが
m1−s=e1×f+e2×F
e1,e2は係数が−1/2から1/2の範囲に入る多項式
となることを利用しており、差分m1−sの2次モーメント及び4次モーメントの平均値を取ることで、秘密鍵の一部であるf,Fを求める。ここで、多項式aの2次モーメントa〜2とは、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〜=a×a*である。また、4次モーメントa〜4は、a〜2の2乗、すなわち、a〜4=a〜2×a〜2である。
=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を求めることが可能になる。非特許文献4によると、2次モーメント及び4次モーメントの平均から秘密鍵に関する情報が得られるために必要な署名文の個数はそれぞれ10^4、10^8である。したがって、NTRUSign署名方式のTranscript attackを成功させるためには、10^8個以上の署名文が必要と考えられている。
この構成によると、署名生成装置は、複数の秘密鍵から前回の署名に利用した秘密鍵とは異なる他の1の秘密鍵をランダムに取得するので、Transcript attackを実行する攻撃者は、署名データを入手して、Transcript attackを試みても、入手した署名データがどの秘密鍵にて生成されたかがわからないため、署名生成装置は、署名データに対するTranscript attackを防ぐことができる。
この構成によると、署名生成装置は、記憶している複数の秘密鍵から前記他の1の秘密鍵を取得するので、前記1の公開鍵に対応する秘密鍵を確実に取得することができる。
この構成によると、格子を用いた鍵生成及び署名生成行う署名方式は、格子の性質上、1の公開鍵に対して、複数の秘密鍵を生成することができる。これにより、署名生成装置は、1の公開鍵に対する複数の秘密鍵を記憶することができる。
ここで、前記署名生成装置は、前記署名方式を用いて前記公開鍵及び前記複数の秘密鍵を生成する鍵生成装置を含むとしてもよい。
ここで、前記所定の取得方法とは、複数の秘密鍵のうちの1の秘密鍵をランダムに取得することであり、前記鍵取得手段は、記憶している前記複数の秘密鍵から前回署名に利用した秘密鍵とは異なる前記他の1の秘密鍵をランダムに取得するとしてもよい。
ここで、前記所定の取得方法とは、記憶している順序に基づいて、複数の秘密鍵のうちの1の秘密鍵を取得することであり、前記鍵取得手段は、前記複数の秘密鍵を記憶している順序に基づいて、前回署名に利用した秘密鍵とは異なる前記他の1の秘密鍵を取得するとしてもよい。
ここで、前記所定の取得方法とは、複数の秘密鍵のうち前回署名に利用した秘密鍵とは異なる他の1の秘密鍵を、前記鍵生成方法により生成して取得することであり、前記鍵取得手段は、前記1の公開鍵に対応し、前記署名方式にて生成された第1秘密鍵を記憶しており、前記第1秘密鍵を利用した後、前記鍵生成方法により前記1の公開鍵に対応する第2秘密鍵を生成し、記憶している前記第1秘密鍵を、生成した前記第2秘密鍵へと更新し、前記署名データの生成時に、記憶している前記第2秘密鍵を前記1の秘密鍵として取得するとしてもよい。
また、本発明は、メッセージデータに対する署名データの生成及び検証に用いる鍵を生成する鍵生成装置であって、1の公開鍵に複数の秘密鍵が対応する署名方式により前記1の公開鍵を生成する公開鍵生成手段と、前記署名方式により前記1の公開鍵に対応する複数の秘密鍵を生成する秘密鍵生成手段とを備えることを特徴とする。
この構成によると、鍵生成装置は、格子を用いた署名方式にて鍵生成を行うので、格子の性質上、1の公開鍵と、前記公開鍵に対応する複数の秘密鍵とを生成することができる。
また、本発明は、メッセージデータに対する署名データを生成する署名生成装置と、署名の検証を行う署名検証装置とからなる署名システムであって、前記署名生成装置は、1の公開鍵に複数の秘密鍵が対応している署名方式の鍵生成方法を用いて生成される前記複数の秘密鍵のうち前回署名に利用した秘密鍵とは異なる他の1の秘密鍵を、所定の取得方法により取得する秘密鍵取得手段と、取得した前記他の1の秘密鍵を用いて、前記メッセージデータに、前記署名方式の署名方法による署名を施して署名データを生成する署名生成手段とを備え、前記署名検証装置は、前記公開鍵を用いて、前記署名データを検証する検証手段を備えることを特徴とする。
以下、本発明に係る第1の実施の形態としてのディジタル署名システム1について、図面を参照して説明する。
1.1 ディジタル署名システム1の概要
ディジタル署名システム1は、図1に示すように、署名生成装置10と、署名検証装置20と、鍵生成装置30と、通信路50とから構成されている。
署名検証装置20は、署名生成装置10から、署名データセットSSを受信し、受信した署名データセットSSがメッセージデータmの正しい署名であるかを、改良NTRUSign署名方式を用いて検証する。署名検証装置20は、署名データセットSSが正しいと判定する場合には、署名データセットSSを受理し、署名データセットSSが不正と判定する場合には、署名データセットSSを拒否する。
<改良NTRUSign署名方式>
(1)改良NTRUSign署名方式のパラメータ
改良NTRUSign署名方式は、非負整数のパラメータ、N,q,df,dg,Normboundを持つ。これらのパラメータの定義は、従来のNTRUSign署名方式と同様である。以下に、これらのパラメータの意味を説明する。
改良NTRUSign署名方式は、多項式の演算により署名生成及び署名検証を行うディジタル署名方式である。改良NTRUSign署名方式で扱う多項式の次数は、上記パラメータNにより決まる。
改良NTRUSign署名方式で扱う多項式は、上記パラメータNに対し、N−1次以下の整数係数多項式であり、例えばN=5のとき、X^4+X^3+1等の多項式である。ここで、「X^a」はXのa乗を意味することとする。なお、多項式に対しては、(mod X^N−1)演算を施し、常に、N−1次以下からなる整数係数多項式を算出する。なぜなら、(mod X^N−1)演算を施すことにより、X^N=1という関係式が成り立つため、N次以上の変数に対しては、常にN−1次以下の変数へと変換することができるからである。ここで、多項式に対して、(mod X^N−1)演算を施すことにより得られる整数係数多項式は、多項式環Rの元となることがわかる。
(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次以下の多項式になるように演算される。
(1−2)パラメータq
改良NTRUSign署名方式では、2以上の整数であり、多項式環Rのイデアルであるパラメータqを用いる。改良NTRUSign署名方式で出現する多項式の係数は、qを法とした剰余を取る。
改良NTRUSign署名方式で扱う秘密鍵の一部である多項式f及び、公開鍵である多項式hを生成するときに多項式fと共に用いる多項式gの選び方は、それぞれパラメータdf,dgにより決まる。
まず、多項式fは、df個の係数が1であり、かつ他の係数は0となるように選ぶ。すなわち、多項式fはN−1次以下の多項式であり、0次(定数項)からN−1次まで、N個の係数があるが、このN個の係数のうち、df個の係数が1であり、かつ(N−df)個の係数が0となるように選ぶ。
(1−4)パラメータNormbound
改良NTRUSign署名方式では、後述するが署名sから作られる2・N次元のベクトルとメッセージのハッシュ値である2・N次元のベクトルの距離を計算し、この距離により正しい署名であるかを判定する。Normboundは、この判定の際に使用するしきい値である。すなわち、上記距離がNormbound未満であれば、正しい署名として受理し、Normbound以上であれば、正しくない署名とし拒否する。
(2)メッセージのハッシュ値、ノルム及びベクトル間の距離
改良NTRUSign署名方式においても、メッセージmのハッシュ値に対する署名を作成する。メッセージmのハッシュ値は、N次の多項式の対(m1,m2)であり、2・N次元のベクトルと同一視される。メッセージからハッシュ値を求めるハッシュ関数については、非特許文献1が詳しい。
多項式a=a_0+a_1・X+a_2・X^2+…+a_(N−1)・X^(N−1)のノルム||a||を以下のように定義する。
||a||=sqrt((a_0−μ)^2+(a_1−μ)^2+…+(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)||で定義される。
これにより、(mod X^N−1)演算を施すことにより得られたN−1次以下の整数係数多項式は、加算、減算、乗算、及び元の大きさを示すノルムが定義されたN次元配列とみなすことができ、多項式環Rは、N次元配列の集合とみなすことができる。
改良NTRUSign署名方式では、上述したように、パラメータdf,dgを用いてランダムに多項式f,多項式gを生成する。そして、Fq×f=1(mod q)となる多項式Fqを用いて、
h=Fq×g(mod q)
により、多項式hを生成する。ここで、多項式Fqは、多項式fの逆元と呼ばれる。さらに、以下の式を満たすようなノルムが所定値Keyboundより小さい多項式F,Gの対(F,G)を求める。
次に、{(f,g),(F,G)}を秘密鍵{(f,g),(F_1,G_1)}とし、{(f,g),(F_1,G_1)}を用いて式(*)を満たし、かつノルムが所定値Keyboundより小さい他の対(F,G)を複数個求め、(F_2,G_2),(F_3,G_3),…とする。ここで、{(f,g),(F_1,G_1)}、{(f,g),(F_2,G_2)}、…のそれぞれを秘密鍵とし、それらの秘密鍵を含めたものを秘密鍵群と呼ぶ。また、多項式hを公開鍵とする。ここで、従来のNTRUSign署名方式では、公開鍵及び秘密鍵は一つであり、1対1対応しているが、改良NTRUSign署名方式では公開鍵は一つであるが、その公開鍵に対応する秘密鍵は複数存在することに注意しておく。なお、NTRUSign署名方式では、一つの公開鍵に対し、上記(*)及びノルムが所定値Keyboundより小さい多項式F,Gの対(F,G)は存在すれば、複数存在する可能性がある。実施の形態1及び後述する実施の形態2では、この性質を利用している。
改良NTRUSign署名方式の署名生成では、署名対象であるメッセージmの署名sを計算する。まず、秘密鍵群に含まれる複数の秘密鍵から一つの秘密鍵{(f,g),(FS,GS)}を選択する。
次に、メッセージmに対するハッシュ値である2・N次元のベクトル(m1,m2)(m1及びm2はN次多項式)を計算する。
GS×m1−FS×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+FS×b (mod q)
t=g×B+GS×b (mod q)
(5)改良NTRUSign署名方式の署名検証
改良NTRUSign署名方式の署名生成方法は、従来のNTRUSign署名方式と同様である。まず、メッセージmに対するハッシュ値である2・N次元のベクトル(m1,m2)を計算する。
t=s×h (mod q)
2・N次元ベクトル(s,t)と(m1,m2)の距離を求め、Normbound未満であるかをチェックする。Normbound未満であれば、署名sが正しいと判定して署名sを受理する。Normbound以上であれば、署名sが不正と判定して署名sを拒否する。
署名生成装置10は、図1に示すように、秘密鍵群格納部101と、公開鍵証明書格納部102と、秘密鍵選択部103と、署名生成部104と、署名データセット生成部105と、送信部106とから構成される。
署名生成装置10は、上述した改良NTRUSign署名方式により鍵生成装置30にて、生成された複数の秘密鍵からなる秘密鍵群と、公開鍵に対応する公開鍵証明書とを格納しており、秘密鍵群に含まれる1の秘密鍵を用いて、入力であるメッセージデータmに対する署名データSを生成する。
秘密鍵群格納部101は、鍵生成装置30にて生成された複数の秘密鍵からなる秘密鍵群を格納するための領域を有している。
なお、以降の説明において、秘密鍵群格納部101は、複数の秘密鍵{(f,g),(F_1,G_1)},{(f,g),(F_2,G_2)},…,{(f,g),(F_u,G_u)}からなる秘密鍵群GKSを格納しているものとする。ここで、uは秘密鍵群に含まれる秘密鍵の個数である。
公開鍵証明書格納部102は、公開鍵hの公開鍵証明書CPを格納するための領域を有している。
公開鍵証明書CPは、公開鍵hと、公開鍵hの署名データSPとからなり、鍵生成装置30にて生成される。署名データSPは、鍵生成装置30にて格納されている証明書生成鍵KCSと改良NTRUSign署名方式とを用いて生成される。また、以降の説明において、公開鍵証明書CPは鍵生成装置30により予め格納されているものとする。なお、公開鍵証明書CPには、公開鍵hと署名データSPに加えて他のデータを含んでいてもよい。例えば、ユーザの識別子や証明書の期限などを含んでもよい。
秘密鍵選択部103は、署名生成部104から秘密鍵群から1の秘密鍵を選択する旨の選択指示を受け取ると、秘密鍵群GSKに含まれる複数の秘密鍵から1の秘密鍵をランダムに選択する。
秘密鍵選択部103は、選択した秘密鍵を署名生成部104へ出力する。
(4)署名生成部104
署名生成部104は、署名データセット生成部105から、メッセージデータmの署名データの生成の指示を示す署名生成指示を受け取ると、選択指示を秘密鍵選択部103へ出力する。
署名生成部104は、署名データSの生成が完了すると、その旨を示す生成完了通知を署名データセット生成部105へ出力する。
(5)署名データセット生成部105
署名データセット生成部105は、ユーザによる操作によりメッセージデータmを受け付けると、公開鍵証明書格納部102から公開鍵証明書CPを読み出す。
署名データセット生成部105は、署名生成指示を署名生成部104へ出力し、その後、署名生成部104から生成完了通知を受け取ると、メッセージデータmと、署名生成部104にて生成されたメッセージデータmの署名データSと、読み出した公開鍵証明書CPとからなる署名データセットSSを生成する。
(6)送信部106
送信部106は、署名データセットSSを、通信路50を介して署名検証装置20へ送信する。
署名検証装置20は、図1に示すように、CA公開鍵格納部201と、署名データセット格納部202と、署名検証部203と、受信部204と、表示部205とから構成される。
(1)CA公開鍵格納部201
CA公開鍵格納部201は、鍵生成装置30にて格納されている証明書生成鍵KCSに対応し、公開鍵証明書CPを検証するための公開鍵KCPを格納している。
署名データセット格納部202は、署名データセットSSを格納するための領域を有している。
(3)署名検証部203
署名検証部203は、署名データセットSSに含まれる署名データS、及び公開鍵証明書CPに含まれる署名データSPを検証する。なお、署名検証部203は、改良NTRUSign署名方式を用いて、各署名データの検証を行う。
署名検証部203は、受信部204から検証を開始する旨の検証開始指示を受け取る。
署名検証部203は、署名データSPが公開鍵hの正しい署名であるかを、CA公開鍵格納部に格納されているCA公開鍵KPCを用いて検証する。
署名データSPが正しい署名であると判断する場合には、署名検証部203は、署名データSがメッセージデータmの正しい署名であるかを、公開鍵hを用いて検証する。
各署名検証のうち何れかの署名検証において、署名データが正しくない署名であると判断する場合には、署名検証部203は、受信した署名データセットSSを拒否する旨のメッセージ「NG」を表示部205へ出力する。
受信部204は、署名生成装置10から送信された署名データセットSSを、通信路50を介して受信する。
受信部204は、受信した署名データセットSSを署名データセット格納部202へ格納し、その後、検証開始指示を署名検証部203へ出力する。
表示部205は、署名検証部203から署名検証の検証結果に係るメッセージを受け取ると、受け取ったメッセージを表示する。
1.4 鍵生成装置30の構成
鍵生成装置30は、図1に示すように、証明書生成鍵格納部301と、鍵生成部302と、秘密鍵群生成部303と、証明書生成部304と、鍵設定部305とから構成される。
証明書生成鍵格納部301は、公開鍵KCPに対応し、公開鍵証明書CPに含まれる署名データSPを生成するための証明書生成鍵KCSを格納している。
(2)鍵生成部302
鍵生成部302は、従来のNTRUSign署名方式の鍵生成方法を用いて、秘密鍵{(f,g),(F,G)}と公開鍵hを生成する。なお、従来のNTRUSign署名方式による鍵生成は、公知の技術であるため、ここでの説明は省略する。
(3)秘密鍵群生成部303
秘密鍵群生成部303は、所定値Keybound及び秘密鍵の検索回数の上限値を示すvMAXを予め格納している。ここで、vMAXは、例えば1000である。
秘密鍵群生成部303は、鍵生成部302から鍵群生成指示を受け取ると、鍵生成部302にて生成された秘密鍵{(f,g),(F,G)}と、改良NTRUSign署名方式の鍵生成方法とを用いて、{(f,g),(F_1,G_1)},{(f,g),(F_2,G_2)},…,{(f,g),(F_u,G_u)}からなる秘密鍵群GKSを生成する。ここで、uは秘密鍵群に含まれる秘密鍵の個数である。
(4)証明書生成部304
証明書生成部304は、鍵生成部302から証明書生成指示を受け取ると、証明書生成鍵格納部301に格納されている証明書生成鍵KCSを読み出す。
証明書生成部304は、公開鍵証明書CPの生成が完了すると、生成した公開鍵証明書CPを署名生成装置10へ格納する旨の第2格納指示を鍵設定部305へ出力する。
鍵設定部305は、秘密鍵群生成部303から第1格納指示を受け取ると、秘密鍵群生成部303にて生成された秘密鍵群GSKを、署名生成装置10の秘密鍵群格納部101へ書き込む。
鍵設定部305は、証明書生成部304から第2格納指示を受け取ると、証明書生成部304にて生成された公開鍵証明書CPを、署名生成装置10の公開鍵証明書格納部102へ書き込む。
署名生成装置10は、メッセージデータmに対する署名データセットSSを生成し、通信路50を介して署名検証装置20へ送信する。以下に、署名生成装置10にて行われる署名生成処理の動作について、図2にて示す流れ図を用いて説明する。
署名データセット生成部105は、ユーザによる操作によりメッセージデータmを受け付ける(ステップS5)。
署名生成部104は、署名データSの生成が完了すると、その旨を示す生成完了通知を署名データセット生成部105へ出力する。署名データセット生成部105は、署名生成部104から生成完了通知を受け取ると、メッセージデータmと、署名生成部104にて生成されたメッセージデータmの署名データSと、読み出した公開鍵証明書CPとからなる署名データセットSSを生成する(ステップS20)。
1.6 署名検証装置20の動作
署名検証装置20は、署名生成装置10より署名データセットSSを通信路50を介して受信し、その署名データセットSSを検証する。以下において、署名検証装置20にて行われる署名検証処理について、図3にて示す流れ図を用いて説明する。
受信部204は、受信した署名データセットSSを署名データセット格納部202に格納する(ステップS105)。
受信部204は、検証開始指示を署名検証部203へ出力する。署名検証部203は、受信部204から検証を開始する旨の検証開始指示を受け取る。署名検証部203は、署名データSPが公開鍵hの正しい署名であるかを、CA公開鍵格納部に格納されているCA公開鍵KPCを用いて検証する(ステップS110)。
署名データSが正しい署名であると判断する場合には(ステップS115における「OK」)、署名検証部203は、表示部205を介して、メッセージ「OK」を表示する(ステップS120)。
なお、署名検証部203は、改良NTRUSign署名方式を用いて、各署名データの検証を行う。
鍵生成装置30は、秘密鍵群GKSと証明書CPとを生成し、生成した秘密鍵群GKSと証明書CPとを署名生成装置10に設定する。以下において、鍵生成装置30にて行われる鍵生成処理の動作について、図4にて示す流れ図を用いて説明する。
鍵生成部302は、従来のNTRUSign署名方式の鍵生成方法を用いて、秘密鍵{(f,g),(F,G)}と公開鍵hを生成する(ステップS200)。
秘密鍵群生成部303は、秘密鍵群GSKの生成が完了すると、生成した秘密鍵群GSKを署名生成装置10へ格納する旨の第1格納指示を鍵設定部305へ出力する。証明書生成部304は、公開鍵証明書CPの生成が完了すると、生成した公開鍵証明書CPを署名生成装置10へ格納する旨の第2格納指示を鍵設定部305へ出力する。鍵設定部305は、秘密鍵群生成部303から第1格納指示を受け取ると、秘密鍵群生成部303にて生成された秘密鍵群GSKを、署名生成装置10の秘密鍵群格納部101へ書き込み、証明書生成部304から第2格納指示を受け取ると、証明書生成部304にて生成された公開鍵証明書CPを、署名生成装置10の公開鍵証明書格納部102へ書き込む(ステップS215)。
ここでは、秘密鍵群生成部303にて行われる改良NTRUSign署名方式を用いた秘密鍵群GSKの生成方法、つまり図4にて示す秘密鍵群生成処理の動作について、図5にて示す流れ図を用いて説明する。
秘密鍵群生成部303は、鍵生成部302にて生成された秘密鍵{(f,g),(F,G)}を秘密鍵{(f,g),(F_1,G_1)}として秘密鍵群GKSに加える(ステップS300)。
次に、秘密鍵群生成部303は、F’←F’+X^v×f,G’←G’+X^v×gとする(ステップS310)。
秘密鍵群生成部303は、||(F’,G’)||>Keyboundであるか否かを判定する(ステップS315)。
||(F’,G’)||>Keyboundであると判定する場合には(ステップS315における「YES」)、秘密鍵群生成部303は、ステップS325以降を行う。
F_(i+1)=F_i+w×f, G_(i+1)=G_i+w×g
を満たす多項式wが存在する。ゆえに、
f×G_(i+1)−g×F_(i+1)=f×(G_i+w×g)−g×(F_i+w×f)
=f×G_i+w×f×g−g×F_i+w×f×g
=f×G_i−g×F_i=q
が成り立つ。したがって、上記の方法により生成した秘密鍵{(f,g),(F_1,G_1)},{(f,g),(F_2,G_2)},…は、それぞれf×G_1−g×F_1=q, f×G_2−g×F_2=q,…を満たす。
1.9 第1の実施の形態の全体の動作
第1の実施の形態におけるディジタル署名システム1の全体の動作を以下に示す。
第1の実施の形態におけるディジタル署名システム1では、署名検証するための公開鍵は一つであるが、それに対応する秘密鍵が複数存在している。署名生成装置10では、秘密鍵群に含まれる複数の秘密鍵から一つの秘密鍵を選択し、署名データを生成している。秘密鍵群に含まれる秘密鍵の個数を2とし、それぞれの秘密鍵を{(f,g),(F_1,G_1)},{(f,g),(F_2,G_2)}とする場合を考える。このとき、Transcript attackを実行する攻撃者は、通信路50に流れる署名データセットを入手して、Transcript attackを試みる。攻撃者には、入手した署名データセットがどちらの秘密鍵により生成されたかがわからないため、入手した署名データセットを使用された秘密鍵により分類して、それぞれを用いて攻撃することはできない。そこで、入手したすべての署名データセットから署名とハッシュ値の差分を取り、その平均を求めることで攻撃をすると、2種類の秘密鍵を用いているため、署名データセットに2種類の秘密鍵の情報が入ってしまう。その結果、Transcript attackを実行しても、2次モーメント及び4次モーメントの平均から2種類の秘密鍵の情報が混ざった状態で入手できるが、これを一つ一つの秘密鍵の情報に分離することができない。したがって、ディジタル署名システム1は、Transcript attackを防ぐことができ、安全である。なお、上記では秘密鍵群に含まれる秘密鍵の個数を2としたが、これを3や3より大きい整数とすると、さらに2次モーメント及び4次モーメントの平均から秘密鍵の情報を分離することが困難になるため、さらに高い安全性をもつ。
以下、本発明に係る第2の実施の形態としてのディジタル署名システム1000について、図面を参照して説明する。
2.1 ディジタル署名システム1000の概要
ディジタル署名システム1000は、署名生成装置1010と、署名検証装置1020と、通信路1050とから構成される。
署名検証装置1020は、署名生成装置1010から、署名データセットSSを受信し、受信した署名データセットSSがメッセージデータmの正しい署名であるかを検証する。署名検証装置1020は、署名データセットSSが正しいと判定する場合には、署名データセットSSを受理し、署名データセットSSが不正と判定する場合には、署名データセットSSを拒否する。
署名生成装置1010は、図6に示すように、秘密鍵格納部1101と、公開鍵証明書格納部1102と、秘密鍵更新部1103と、署名生成部1104と、署名データセット生成部1105と、送信部1106と、表示部1107とから構成される。
署名生成装置1010は、入力であるメッセージデータmに対する署名データセットSSを生成し、生成した署名データセットSSを署名検証装置1020へ送信する。
(1)秘密鍵格納部1101
秘密鍵格納部1101は、秘密鍵{(f,g),(F,G)}を格納するための領域を有している。
(2)公開鍵証明書格納部1102
公開鍵証明書格納部1102は、秘密鍵{(f,g),(F,G)}に対応する公開鍵hの公開鍵証明書CPを格納するための領域を有している。
秘密鍵更新部1103は、所定値Keybound及び秘密鍵の検索回数の上限値を示すvMAXを予め格納している。ここで、vMAXは、例えば1000である。
秘密鍵更新部1103は、定期的、例えば、1ヶ月ごとに、以下の動作により秘密鍵格納部1101に格納されている秘密鍵を更新する。なお、秘密鍵の更新のタイミングは、月単位でもよいし、日単位でもよいし、時間単位でもよい。
秘密鍵更新部1103は、所定値vMAX以下にて、対(F’,G’)を生成することができない場合には、秘密鍵を更新することができない旨を示す更新不可メッセージを、表示部1107を介して表示する。
(4)署名生成部1104
署名生成部1104は、署名データセット生成部1105から、メッセージデータmの署名データの生成の指示を示す署名生成指示を受け取ると、秘密鍵格納部1101から秘密鍵を読み出す。
署名生成部1104は、署名データSの生成が完了すると、その旨を示す生成完了通知を署名データセット生成部1105へ出力する。
なお、署名データSは、改良NTRUSign署名方式に基づいて生成される。
表示部1107は、秘密鍵更新部1103から受け取ったメッセージを表示する。
2.3 署名検証装置1020
署名検証装置1020は、図6に示すように、CA公開鍵格納部1201と、署名データセット格納部1202と、署名検証部1203と、受信部1204と、表示部1205とから構成される。
ここでは、秘密鍵更新部1103にて行われる秘密鍵の更新方法(秘密鍵更新処理)について、図7に示す流れ図を用いて説明する。
秘密鍵更新部1103は、{(f,g),(F,G)}を秘密鍵{(f,g),(F_1,G_1)}として秘密鍵格納部1101から読み出す(ステップS400)。
秘密鍵更新部1103は、変数F’,G’に対して、F’←F’+X^v×f,G’←G’+X^v×gを設定する(ステップS410)。
秘密鍵更新部1103は、ノルム||(F’,G’)||が所定値Keyboundを超えているか否かを判定する(ステップS415)。
変数vが所定値vMAXを超えていると判定する場合には(ステップS425における「YES」)、秘密鍵更新部1103は、更新不可メッセージを表示部1107を介して表示する(ステップS430)。変数vが所定値vMAXを超えていないと判定する場合には(ステップS425における「NO」)、秘密鍵更新部1103は、ステップS410へ戻る。
2.5 署名生成装置1010の動作
署名生成装置1010の動作は、メッセージデータmに対する署名データセットSSを生成し、通信路1050を介して署名検証装置1020へ送信する「署名生成処理」と、秘密鍵を更新する「秘密鍵更新処理」の動作からなる。以下に、各処理の動作について、説明する。
ここでは、署名生成処理の動作について、図8に示す流れ図を用いて説明する。
署名データセット生成部1105は、ユーザによる操作によりメッセージデータmを受け付ける(ステップS500)。
署名データセット生成部1105は、公開鍵証明書格納部1102から公開鍵証明書CPを読み出し、署名生成指示を署名生成部1104へ出力する。署名生成部1104は、署名データセット生成部105から、署名生成指示を受け取ると、秘密鍵格納部1101から秘密鍵を読み出す。署名生成部1104は、読み出した秘密鍵を用いて、メッセージデータmに対する署名データSを生成する(ステップS505)。
(2)秘密鍵更新処理
秘密鍵更新部1103は、秘密鍵格納部1101に格納されている秘密鍵{(f,g),(F,G)}を用いて、新たな秘密鍵{(f,g),(F’,G’)}を生成し、秘密鍵格納部1101に格納されている秘密鍵に新たな秘密鍵を上書きして更新する。
2.6 署名検証装置1020の動作
署名検証装置1020は、署名生成装置1010より署名データセットSSを通信路1050を介して受信し、その署名データセットSSを検証する。なお、署名検証装置1020にて行われる署名検証処理は、第1の実施の形態における図3にて示す流れ図と同様の動作であるため、ここでの説明は省略する。
第2の実施の形態におけるディジタル署名システム1000の全体の動作を以下に示す。
ディジタル署名システム1000の署名生成装置1010は、「署名生成処理」にて、入力であるメッセージデータmに対して、署名データセットSSを生成し、署名検証装置1020へ送信する。署名検証装置1020は、署名生成装置1010から、署名データセットSSを受信し、受信した署名データセットを検証し、その検証結果により、署名データセットSSを受理する、または、拒否するかを決定する。また、「鍵更新処理」にて、署名生成装置1010は、秘密鍵を更新する。
第2の実施の形態におけるディジタル署名システム1000では、署名検証するための公開鍵は一つであるが、それに対応する秘密鍵が更新されていく。この更新タイミングは、通信路1050から署名データセットを入手して、Transcript attackを実行する攻撃者にはわからない。ここで、一回のみ秘密鍵が更新された場合について考える。攻撃者には入手した署名データセットを生成するために使用した秘密鍵の更新タイミングがわからないため、入手した署名データセットを使用された秘密鍵により厳密に分類して、それぞれを用いて攻撃することはできない。そこで、入手したすべての署名データセットから署名とハッシュ値の差分を取り、その平均を求めることで攻撃をすると、ある時期を境にして、2種類の秘密鍵を用いているため、入手した署名データセットを秘密鍵により正しく分類できない限り、署名データセットに2種類の秘密鍵の情報が入ってしまう。その結果、Transcript attackを実行しても、2次モーメント及び4次モーメントの平均から2種類の秘密鍵の情報が混ざった状態で入手できるが、これを一つ一つの秘密鍵の情報に分離することができない。したがって、ディジタル署名システム1000では第1の実施の形態におけるディジタル署名システム1と同様に、Transcript attackを防ぐことができ、安全である。
上記に説明した第1及び第2の実施の形態は、本発明の実施の一例であり、本発明はこれら実施の形態に何ら限定されるものではなく、その旨を逸脱しない範囲において種々なる態様で実施し得るものである。例えば、以下のような場合も本発明に含まれる。
(1)第1の実施の形態では、対(f,g)の各値はそれぞれ固定し、対(G,F)の各値を変更したが、これに限定されない。対(f,g)の値も可変として複数の秘密鍵を設定してもよい。この場合、NTRUSign署名方式の鍵の条件であるf×G−g×F=qは満たすものとする。または、対(f,g)の各値を可変とし、対(F,G)の各値は固定としてもよい。
(2)第1の実施の形態の秘密鍵群生成部及び第2の実施の形態における秘密鍵更新部における、秘密鍵の探索回数を示すvMAXの値は1000に限らない。他の値、例えば、10000でもよい。
例えば、署名生成装置は、署名データセットを生成した回数をカウントして、第1の所定回数(例えば、10^7回など)に達するまで、同じ秘密鍵を使用し、その後、先とは異なる秘密鍵を第2の所定回数(例えば、10^8回など)に達するまで使用するとしてもよい。このとき、署名生成装置は、ポインタにより現在使用している秘密鍵を特定することにより、第1の所定回数に達するまで、同じ秘密鍵を使用することができる。このような場合においても、使用する秘密鍵の切り替えのタイミングを攻撃者がわからないため、Transcript attackに対して安全である。なお、カウントの対象は、署名データを生成した回数でもよい。
例えば、NTRUSign署名方式とは異なり、且つ格子を用いた署名方式である。
(6)第1の実施の形態において、鍵生成装置と署名生成装置とは、個別の装置としたが、これに限定されない。ディジタル署名システム1は、鍵生成装置と署名生成装置からなる装置、及び署名検証装置から構成されるとしてもよい。
署名生成装置は、メッセージデータを外部の装置から受け取ってもよい。
また、第2の実施の形態においても同様に、署名生成装置は、メッセージデータを外部の装置から受け取ってもよい。
<その他の変形例>
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレィユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAM又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここで、コンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
また、本発明は、前記コンピュータプログラム又は前記ディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記ディジタル信号であるとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
4.まとめ
本発明は、一つの公開鍵に対して、複数の秘密鍵が対応することが可能である署名方式を用いて、メッセージデータに対する署名データを生成する署名生成装置であって、複数の前記秘密鍵からなる秘密鍵群を格納する秘密鍵群格納部と、前記公開鍵または、前記公開鍵の証明書のいずれかを格納する公開鍵証明書格納部と、前記秘密鍵群に含まれる複数の前記秘密鍵から一つの前記秘密鍵を選択する秘密鍵選択部と、選択した前記秘密鍵を用いて、前記メッセージデータに対する前記署名データを生成する署名生成部とを備えることを特徴とする。
また、本発明は、一つの公開鍵に対して、複数の秘密鍵が対応することが可能である署名方式を用いて、前記公開鍵と前記秘密鍵を生成する鍵生成装置であって、前記署名方式は、加算、減算、乗算と元の大きさを示すノルムが定義されたN次元配列の集合である環Rと、前記環Rのイデアルqに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqを生成し、前記元gおよび前記元Fqの積とmod qで合同である元hを前記公開鍵として生成し、f×G−g×F=qを満たし、かつ、ノルムが予め与えられた所定値より小さい前記環Rの元の対である複数の解(F,G)=(F_1,G_1),(F_2,G_2),…,(F_u,G_u) (uは1より大きい正整数)を生成し、複数の前記元の4つ組(f,g,F_1,G_1),(f,g,F_2,G_2),…,(f,g,F_u,G_u)を前記秘密鍵として生成する鍵生成ステップと、前記秘密鍵を用いて前記メッセージデータに対する前記署名データを生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、前記鍵生成ステップを用いて、前記公開鍵と複数の前記秘密鍵を生成することを特徴とする。
また、本発明は、一つの公開鍵に対して、複数の秘密鍵が対応することが可能である署名方式を用いて、メッセージデータに対する署名データを生成する署名生成装置に実行させるプログラムであって、前記秘密鍵を格納する秘密鍵格納ステップと、前記公開鍵または、前記公開鍵の証明書のいずれかを格納する公開鍵証明書格納ステップと、前記秘密鍵を用いて、前記メッセージデータに対する前記署名データを生成する署名生成ステップと、前記公開鍵と対応するように前記秘密鍵を更新する秘密鍵更新ステップとを前記署名生成装置に実行させることを特徴とする。
また、上記にて示したディジタル署名システムを構成する各装置は、電器機器製造産業において、経営的に、また継続的及び反復的に、製造し、販売することができる。
10 署名生成装置
20 署名検証装置
30 鍵生成装置
50 通信路
101 秘密鍵群格納部
102 公開鍵証明書格納部
103 秘密鍵選択部
104 署名生成部
105 署名データセット生成部
106 送信部
201 CA公開鍵格納部
202 署名データセット格納部
203 署名検証部
204 受信部
205 表示部
301 証明書生成鍵格納部
302 鍵生成部
303 秘密鍵群生成部
304 証明書生成部
305 鍵設定部
1000 ディジタル署名システム
1010 署名生成装置
1020 署名検証装置
1050 通信路
1101 秘密鍵格納部
1102 公開鍵証明書格納部
1103 秘密鍵更新部
1104 署名生成部
1105 署名データセット生成部
1106 送信部
1107 表示部
1201 CA公開鍵格納部
1202 署名データセット格納部
1203 署名検証部
1204 受信部
1205 表示部
Claims (10)
- メッセージデータに対する署名データを生成する署名生成装置であって、
1の公開鍵に複数の秘密鍵が対応している署名方式の鍵生成方法を用いて生成される前記複数の秘密鍵のうち前回署名に利用した秘密鍵とは異なる他の1の秘密鍵を、所定の取得方法により取得する秘密鍵取得手段と、
取得した前記他の1の秘密鍵を用いて、前記メッセージデータに、前記署名方式の署名方法による署名を施して署名データを生成する署名生成手段とを備え、
前記秘密鍵取得手段は、
前記複数の秘密鍵を記憶しており、記憶している前記複数の秘密鍵から前記他の1の秘密鍵を、前記所定の取得方法により取得し、
前記署名方式は、格子を用いた署名方式であり、
前記秘密鍵取得手段は、前記格子を用いた署名方式の鍵生成方法にて生成された前記複数の秘密鍵を記憶し、
前記署名方式は、NTRU署名方式であり、
加算、減算、乗算と元の大きさを示すノルムが定義されたN次元配列の集合である環Rと、前記環Rのイデアルqとに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqを生成し、前記元gおよび前記元Fqの積とmod qで合同である元hを前記公開鍵として生成する公開鍵生成ステップと、
f×G−g×F=qを満たし、かつ、ノルムが予め与えられた所定値より小さい前記環Rの元の対である複数の解(F,G)=(F_1,G_1),(F_2,G_2),…,(F_u,G_u) (uは1より大きい正整数)を生成し、複数の前記元の4つ組(f,g,F_1,G_1),(f,g,F_2,G_2),…,(f,g,F_u,G_u)のそれぞれを前記秘密鍵として生成する秘密鍵生成ステップと、
生成した前記複数の秘密鍵のうち1の秘密鍵を用いて、署名データを生成する署名生成ステップとを含み、
前記秘密鍵取得手段が記憶している前記複数の秘密鍵は、前記秘密鍵ステップにより生成され、
前記署名生成手段は、前記署名生成ステップにより前記署名データを生成する
ことを特徴とする署名生成装置。 - 前記所定の取得方法とは、複数の秘密鍵のうちの1の秘密鍵をランダムに取得することであり、
前記秘密鍵取得手段は、
前記複数の秘密鍵のうちの前回署名に利用した秘密鍵とは異なる前記他の1の秘密鍵をランダムに取得する
ことを特徴とする請求項1に記載の署名生成装置。 - 前記署名生成装置は、
前記署名方式を用いて前記公開鍵及び前記複数の秘密鍵を生成する鍵生成装置
を含むことを特徴とする請求項1に記載の署名生成装置。 - 前記所定の取得方法とは、複数の秘密鍵のうちの1の秘密鍵をランダムに取得することであり、
前記鍵取得手段は、
記憶している前記複数の秘密鍵から前回署名に利用した秘密鍵とは異なる前記他の1の秘密鍵をランダムに取得する
ことを特徴とする請求項1に記載の署名生成装置。 - 前記所定の取得方法とは、記憶している順序に基づいて、複数の秘密鍵のうちの1の秘密鍵を取得することであり、
前記鍵取得手段は、
前記複数の秘密鍵を記憶している順序に基づいて、前回署名に利用した秘密鍵とは異なる前記他の1の秘密鍵を取得する
ことを特徴とする請求項1に記載の署名生成装置。 - 前記所定の取得方法とは、複数の秘密鍵のうち前回署名に利用した秘密鍵とは異なる他の1の秘密鍵を、前記鍵生成方法により生成して取得することであり、
前記鍵取得手段は、
前記1の公開鍵に対応し、前記署名方式にて生成された第1秘密鍵を記憶しており、前記第1秘密鍵を利用した後、前記鍵生成方法により前記1の公開鍵に対応する第2秘密鍵を生成し、記憶している前記第1秘密鍵を、生成した前記第2秘密鍵へと更新し、前記署名データの生成時に、記憶している前記第2秘密鍵を前記1の秘密鍵として取得する
ことを特徴とする請求項1に記載の署名生成装置。 - メッセージデータに対する署名データの生成及び検証に用いる鍵を生成する鍵生成装置であって、
1の公開鍵に複数の秘密鍵が対応する署名方式により前記1の公開鍵を生成する公開鍵生成手段と、
前記署名方式により前記1の公開鍵に対応する複数の秘密鍵を生成する秘密鍵生成手段とを備え、
前記署名方式は、格子を用いた方式であり、
前記公開鍵生成手段は、
前記署名方式により、前記公開鍵を生成し、
前記秘密鍵生成手段は、
前記署名方式により、前記複数の秘密鍵を生成し、
前記署名方式は、NTRU署名方式であり、
加算、減算、乗算と元の大きさを示すノルムが定義されたN次元配列の集合である環Rと、前記環Rのイデアルqとに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqを生成し、前記元gおよび前記元Fqの積とmod qで合同である元hを前記公開鍵として生成する公開鍵生成ステップと、
f×G−g×F=qを満たし、かつ、ノルムが予め与えられた所定値より小さい前記環Rの元の対である複数の解(F,G)=(F_1,G_1),(F_2,G_2),…,(F_u,G_u) (uは1より大きい正整数)を生成し、複数の前記元の4つ組(f,g,F_1,G_1),(f,g,F_2,G_2),…,(f,g,F_u,G_u)のそれぞれを前記秘密鍵として生成する秘密鍵生成ステップとを含み、
前記公開鍵生成手段は、前記公開鍵生成ステップにより前記公開鍵を生成し、
前記秘密鍵生成手段は、前記秘密鍵生成ステップにより前記複数の秘密鍵を生成する
ことを特徴とする鍵生成装置。 - メッセージデータに対する署名データを生成する署名生成装置と、署名の検証を行う署名検証装置とからなる署名システムであって、
前記署名生成装置は、
1の公開鍵に複数の秘密鍵が対応している署名方式の鍵生成方法を用いて生成される前記複数の秘密鍵のうち前回署名に利用した秘密鍵とは異なる他の1の秘密鍵を、所定の取得方法により取得する秘密鍵取得手段と、
取得した前記他の1の秘密鍵を用いて、前記メッセージデータに、前記署名方式の署名方法による署名を施して署名データを生成する署名生成手段とを備え、
前記署名検証装置は、
前記公開鍵を用いて、前記署名データを検証する検証手段を備え、
前記秘密鍵取得手段は、
前記複数の秘密鍵を記憶しており、記憶している前記複数の秘密鍵から前記他の1の秘密鍵を、前記所定の取得方法により取得し、
前記署名方式は、格子を用いた署名方式であり、
前記秘密鍵取得手段は、前記格子を用いた署名方式の鍵生成方法にて生成された前記複数の秘密鍵を記憶し、
前記署名方式は、NTRU署名方式であり、
加算、減算、乗算と元の大きさを示すノルムが定義されたN次元配列の集合である環Rと、前記環Rのイデアルqとに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqを生成し、前記元gおよび前記元Fqの積とmod qで合同である元hを前記公開鍵として生成する公開鍵生成ステップと、
f×G−g×F=qを満たし、かつ、ノルムが予め与えられた所定値より小さい前記環Rの元の対である複数の解(F,G)=(F_1,G_1),(F_2,G_2),…,(F_u,G_u) (uは1より大きい正整数)を生成し、複数の前記元の4つ組(f,g,F_1,G_1),(f,g,F_2,G_2),…,(f,g,F_u,G_u)のそれぞれを前記秘密鍵として生成する秘密鍵生成ステップと、
生成した前記複数の秘密鍵のうち1の秘密鍵を用いて、署名データを生成する署名生成ステップとを含み、
前記秘密鍵取得手段が記憶している前記複数の秘密鍵は、前記秘密鍵ステップにより生成され、
前記署名生成手段は、前記署名生成ステップにより前記署名データを生成する
ことを特徴とする署名システム。 - メッセージデータに対する署名データを生成する署名生成装置の集積回路であって、
1の公開鍵に複数の秘密鍵が対応している署名方式の鍵生成方法を用いて生成される前記複数の秘密鍵のうち前回署名に利用した秘密鍵とは異なる他の1の秘密鍵を、所定の取得方法により取得する秘密鍵取得手段と、
取得した前記他の1の秘密鍵を用いて、前記メッセージデータに、前記署名方式の署名方法による署名を施して署名データを生成する署名生成手段とを備え、
前記署名方式は、格子を用いた方式であり、
前記公開鍵生成手段は、
前記署名方式により、前記公開鍵を生成し、
前記秘密鍵生成手段は、
前記署名方式により、前記複数の秘密鍵を生成し、
前記署名方式は、NTRU署名方式であり、
加算、減算、乗算と元の大きさを示すノルムが定義されたN次元配列の集合である環Rと、前記環Rのイデアルqとに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqを生成し、前記元gおよび前記元Fqの積とmod qで合同である元hを前記公開鍵として生成する公開鍵生成ステップと、
f×G−g×F=qを満たし、かつ、ノルムが予め与えられた所定値より小さい前記環Rの元の対である複数の解(F,G)=(F_1,G_1),(F_2,G_2),…,(F_u,G_u) (uは1より大きい正整数)を生成し、複数の前記元の4つ組(f,g,F_1,G_1),(f,g,F_2,G_2),…,(f,g,F_u,G_u)のそれぞれを前記秘密鍵として生成する秘密鍵生成ステップとを含み、
前記公開鍵生成手段は、前記公開鍵生成ステップにより前記公開鍵を生成し、
前記秘密鍵生成手段は、前記秘密鍵生成ステップにより前記複数の秘密鍵を生成する
ことを特徴とする集積回路。 - メッセージデータに対する署名データの生成及び検証に用いる鍵を生成する鍵生成装置の集積回路であって、
1の公開鍵に複数の秘密鍵が対応する署名方式により前記1の公開鍵を生成する公開鍵生成手段と、
前記署名方式により前記1の公開鍵に対応する複数の秘密鍵を生成する秘密鍵生成手段とを備え、
前記署名方式は、格子を用いた方式であり、
前記公開鍵生成手段は、
前記署名方式により、前記公開鍵を生成し、
前記秘密鍵生成手段は、
前記署名方式により、前記複数の秘密鍵を生成し、
前記署名方式は、NTRU署名方式であり、
加算、減算、乗算と元の大きさを示すノルムが定義されたN次元配列の集合である環Rと、前記環Rのイデアルqとに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqを生成し、前記元gおよび前記元Fqの積とmod qで合同である元hを前記公開鍵として生成する公開鍵生成ステップと、
f×G−g×F=qを満たし、かつ、ノルムが予め与えられた所定値より小さい前記環Rの元の対である複数の解(F,G)=(F_1,G_1),(F_2,G_2),…,(F_u,G_u) (uは1より大きい正整数)を生成し、複数の前記元の4つ組(f,g,F_1,G_1),(f,g,F_2,G_2),…,(f,g,F_u,G_u)のそれぞれを前記秘密鍵として生成する秘密鍵生成ステップとを含み、
前記公開鍵生成手段は、前記公開鍵生成ステップにより前記公開鍵を生成し、
前記秘密鍵生成手段は、前記秘密鍵生成ステップにより前記複数の秘密鍵を生成する
ことを特徴とする集積回路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005015161 | 2005-01-24 | ||
JP2005015161 | 2005-01-24 | ||
PCT/JP2006/300508 WO2006077820A1 (ja) | 2005-01-24 | 2006-01-17 | 署名生成装置、鍵生成装置及び署名生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2006077820A1 JPWO2006077820A1 (ja) | 2008-06-19 |
JP4544538B2 true JP4544538B2 (ja) | 2010-09-15 |
Family
ID=36692209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006552394A Active JP4544538B2 (ja) | 2005-01-24 | 2006-01-17 | 署名生成装置、鍵生成装置及び署名生成方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7664260B2 (ja) |
EP (1) | EP1843512B1 (ja) |
JP (1) | JP4544538B2 (ja) |
CN (1) | CN101107809A (ja) |
DE (1) | DE602006012935D1 (ja) |
WO (1) | WO2006077820A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11546148B2 (en) | 2019-09-19 | 2023-01-03 | Kabushiki Kaisha Toshiba | Information processing device, information processing system, and method for controlling information processing device including comparing request order information and order comparison information |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007004461A (ja) * | 2005-06-23 | 2007-01-11 | Nec Corp | サービス提供システム、アウトソーシング業者装置、サービス提供方法およびプログラム |
US8250664B2 (en) * | 2007-02-23 | 2012-08-21 | Panasonic Corporation | Copyright protection data processing system and reproduction device |
FR2937484B1 (fr) * | 2008-10-22 | 2011-06-17 | Paycool Int Ltd | Procede de signature numerique en deux etapes |
JP5458657B2 (ja) * | 2009-05-01 | 2014-04-02 | ソニー株式会社 | 情報処理装置、鍵更新方法、及びプログラム |
US8615085B2 (en) | 2009-09-29 | 2013-12-24 | Zamtec Ltd | Encrypted communication system with limited number of stored encryption key retrievals |
US8677135B2 (en) | 2010-12-17 | 2014-03-18 | Microsoft Corporation | Digital signatures with error polynomials |
CN102571339B (zh) * | 2010-12-31 | 2014-12-17 | 上海格尔软件股份有限公司 | 基于智能密钥和数字签名的虚拟资产保护方法 |
US8954735B2 (en) * | 2012-09-28 | 2015-02-10 | Intel Corporation | Device, method, and system for secure trust anchor provisioning and protection using tamper-resistant hardware |
CN103326861B (zh) * | 2013-06-04 | 2016-12-28 | 北京华大信安科技有限公司 | 一种对数据进行rsa安全签名的方法、装置及安全芯片 |
US9607159B2 (en) * | 2014-12-10 | 2017-03-28 | International Business Machines Corporation | Intelligent key selection and generation |
CN104780047A (zh) * | 2015-04-03 | 2015-07-15 | 南京邮电大学 | 前向安全的无证书可验证加密签名方法 |
TWI581599B (zh) * | 2015-04-30 | 2017-05-01 | 鴻海精密工業股份有限公司 | 金鑰生成系統、資料簽章與加密系統和方法 |
CN106533675A (zh) * | 2016-12-19 | 2017-03-22 | 北京洋浦伟业科技发展有限公司 | 数字签名方法及系统 |
CN107231367B (zh) * | 2017-06-21 | 2021-03-19 | 北京奇虎科技有限公司 | 签名消息的自动通知方法、装置以及服务器 |
EP3598689B1 (en) * | 2018-07-17 | 2022-01-05 | Assa Abloy AB | Managing central secret keys of a plurality of user devices associated with a single public key |
CN109787765B (zh) * | 2019-02-27 | 2022-02-15 | 东南大学 | 一种用于水质在线监测的远程数据网关加密方法 |
CN110266472B (zh) * | 2019-04-09 | 2021-06-08 | 武汉理工大学 | 支持混合秘密共享的sm9数字签名协同生成方法及系统 |
AU2020267271A1 (en) * | 2019-11-16 | 2021-06-03 | Wildfi Pty Ltd | System and method for secure storage and distribution of encryption keys |
CN111600708A (zh) * | 2020-05-15 | 2020-08-28 | 北京海泰方圆科技股份有限公司 | 一种信息处理方法、证书生成方法、装置、设备及介质 |
US11770263B1 (en) | 2022-12-06 | 2023-09-26 | Citibank, N.A. | Systems and methods for enforcing cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs comprising shared digital signature requirements |
US11658833B1 (en) | 2022-12-06 | 2023-05-23 | Citibank, N.A. | Systems and methods for conducting cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005515659A (ja) * | 2001-12-07 | 2005-05-26 | エヌティーアールユー・クリプトシステムズ・インコーポレーテッド | ディジタル署名、認証方法及び装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU716797B2 (en) | 1996-08-19 | 2000-03-09 | Ntru Cryptosystems, Inc. | Public key cryptosystem method and apparatus |
AU2002341532A1 (en) | 2002-09-24 | 2004-04-23 | Laboratories For Information Technology | A method of generating private keys |
-
2006
- 2006-01-17 EP EP06711788A patent/EP1843512B1/en not_active Not-in-force
- 2006-01-17 JP JP2006552394A patent/JP4544538B2/ja active Active
- 2006-01-17 WO PCT/JP2006/300508 patent/WO2006077820A1/ja active Application Filing
- 2006-01-17 DE DE602006012935T patent/DE602006012935D1/de active Active
- 2006-01-17 US US11/795,256 patent/US7664260B2/en active Active
- 2006-01-17 CN CNA2006800030405A patent/CN101107809A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005515659A (ja) * | 2001-12-07 | 2005-05-26 | エヌティーアールユー・クリプトシステムズ・インコーポレーテッド | ディジタル署名、認証方法及び装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11546148B2 (en) | 2019-09-19 | 2023-01-03 | Kabushiki Kaisha Toshiba | Information processing device, information processing system, and method for controlling information processing device including comparing request order information and order comparison information |
Also Published As
Publication number | Publication date |
---|---|
EP1843512B1 (en) | 2010-03-17 |
EP1843512A4 (en) | 2008-12-10 |
EP1843512A1 (en) | 2007-10-10 |
DE602006012935D1 (de) | 2010-04-29 |
WO2006077820A1 (ja) | 2006-07-27 |
JPWO2006077820A1 (ja) | 2008-06-19 |
CN101107809A (zh) | 2008-01-16 |
US20080089514A1 (en) | 2008-04-17 |
US7664260B2 (en) | 2010-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4544538B2 (ja) | 署名生成装置、鍵生成装置及び署名生成方法 | |
JP4548737B2 (ja) | 署名生成装置及び署名検証装置 | |
JP5341878B2 (ja) | 署名及び検証方法、署名生成装置並びに署名検証装置 | |
JP4786531B2 (ja) | 暗号システム、暗号装置、復号装置、プログラムおよび集積回路 | |
JP5001176B2 (ja) | 署名生成装置、署名生成方法及び署名生成プログラム | |
CN104011781B (zh) | 信息处理设备、信息处理方法 | |
JP4620669B2 (ja) | 署名生成装置、署名検証装置、それらの方法、および集積回路 | |
WO2013031414A1 (ja) | 署名検証装置、署名検証方法、プログラム、及び記録媒体 | |
EP2753019A1 (en) | Information processing device, signature generation device, information processing method, signature generation method, and program | |
CN102263639A (zh) | 认证装置、认证方法、程序和签名生成装置 | |
EP2503729A1 (en) | Information processing device, key generating device, signature verifying device, information processing method, signature generating method, and program | |
CN101877639A (zh) | 信息处理设备、密钥更新方法和程序 | |
JP2014158265A (ja) | 線形準同型署名からコミットメントを生成および検証する暗号学的装置および方法 | |
JPWO2006114948A1 (ja) | 署名生成装置および署名検証装置 | |
CN103718501A (zh) | 信息处理设备、信息处理方法、程序和记录介质 | |
JP2007114494A (ja) | 秘匿計算方法及び装置 | |
CN103748830A (zh) | 信息处理设备、签名提供方法、签名验证方法、程序和记录介质 | |
JP5300373B2 (ja) | 代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム | |
JP4176537B2 (ja) | 匿名署名装置、署名検証装置、匿名署名方法、匿名署名プログラム及び署名検証プログラム | |
JP2007272048A (ja) | 暗号鍵生成装置 | |
WO2013031413A1 (ja) | 情報処理装置、情報処理方法、プログラム、及び記録媒体 | |
JP2014135687A (ja) | 安全性強化装置、検証装置、およびプログラム | |
JP2016126228A (ja) | 安全性強化方法、安全性強化システム、安全性強化装置、検証装置、およびプログラム | |
CN103718228A (zh) | 信息处理设备和信息处理方法 | |
JP2004341502A (ja) | パラメータ生成装置、暗号化システム、復号化システム、暗号装置、復号装置、暗号化方法、復号化方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100413 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100511 |
|
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: 20100601 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100624 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130709 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4544538 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |