Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4620669B2 - 署名生成装置、署名検証装置、それらの方法、および集積回路 - Google Patents
[go: Go Back, main page]

JP4620669B2 - 署名生成装置、署名検証装置、それらの方法、および集積回路 - Google Patents

署名生成装置、署名検証装置、それらの方法、および集積回路 Download PDF

Info

Publication number
JP4620669B2
JP4620669B2 JP2006527181A JP2006527181A JP4620669B2 JP 4620669 B2 JP4620669 B2 JP 4620669B2 JP 2006527181 A JP2006527181 A JP 2006527181A JP 2006527181 A JP2006527181 A JP 2006527181A JP 4620669 B2 JP4620669 B2 JP 4620669B2
Authority
JP
Japan
Prior art keywords
signature
ring
data
generating
polynomial
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 - Lifetime
Application number
JP2006527181A
Other languages
English (en)
Other versions
JPWO2006115021A1 (ja
Inventor
裕一 布田
真吾 長谷川
秀司 磯辺
基司 大森
啓樹 静谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2006115021A1 publication Critical patent/JPWO2006115021A1/ja
Application granted granted Critical
Publication of JP4620669B2 publication Critical patent/JP4620669B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • H04L9/3255Cryptographic 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 using group based signatures, e.g. ring or threshold signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)

Description

本発明は、情報セキュリティ技術としての暗号技術に関し、特に、ディジタル署名に基づく処理を行う署名生成装置および署名検証装置に関する。
受信装置から送信装置へデータを送信する際の送信者の特定及びデータの改ざんを防止するための技術として、公開鍵暗号の一種であるディジタル署名方式がある。
このディジタル署名方式では、送信装置が、送信したいデータに対し、送信装置の秘密鍵を用いて署名データを作成し、送信したいデータと共に署名データを受信装置へ送信する。受信装置は、送信装置の公開鍵を用いて署名データを検証し、改ざんされているか否かを判定する(例えば、非特許文献1参照)。なお、公開鍵から秘密鍵の値は計算困難である。
最近、高速処理が可能な公開鍵暗号として、NTRU(エヌティーアールユー・クリプトシステムズ・インコーポレーテッドの登録商標)暗号が提案された(例えば、非特許文献2参照)。このNTRU暗号は、ある法の下でべき乗剰余演算を行うRSA(Rivest Shamir Adleman)暗号や楕円曲線上の点のスカラ倍演算を行う楕円曲線暗号に比べ、高速に演算可能な多項式演算により暗号化と復号化を行う。したがって、NTRU暗号は、従来の公開鍵暗号よりも高速に処理することが可能で、ソフトウェアの処理でも実用的な時間で処理可能である。
つまり、公開鍵暗号にNTRU暗号を用いた暗号通信システムでは、従来の公開鍵暗号を用いた暗号通信システムよりも、送信装置及び受信装置の処理が高速に行えるという利点がある。
ところで、上記非特許文献2で提案された方式は、データを暗号化する守秘暗号方式であったが、その後、NTRU暗号のディジタル署名方式が提案された(例えば、非特許文献3参照)。このようなディジタル署名方式は、解読法の出現などで、その方式が幾度か変更された。
以下では、NTRUSignと呼ばれるディジタル署名方式(以下、NTRUSign署名方式という)について簡単に説明する(例えば、特許文献1および非特許文献4参照)。
<NTRUSign署名方式>
(1)NTRUSign署名方式のパラメータ
NTRUSign署名方式では、非負整数のパラメータである、N,q,df,dg,Normboundが使用される。以下に、これらのパラメータの意味を説明する。
(i)パラメータN
NTRUSign署名方式は、多項式の演算により署名生成及び署名検証を行うディジタル署名方式である。NTRUSign署名方式で扱う多項式の次数は、上記パラメータNにより決まる。
NTRUSign署名方式で扱う多項式は、上記パラメータNに対し、N−1次以下の整数係数多項式であり、例えばN=5のとき、X^4+X^3+1等の多項式である。ここで、「X^a」はXのa乗を意味する。また、公開鍵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)}と表記する場合もある。
そして、多項式演算は、上記パラメータNに対し、X^N=1という関係式を用いて、演算結果が常にN−1次以下の多項式になるように演算される。例えば、N=5の場合、多項式X^4+X^2+1と多項式X^3+Xの積は、多項式と多項式の積を×、整数と多項式の積(あるいは整数と整数の積)を・とすると、X^5=1という関係から、
(X^4+X^2+1)×(X^3+X)
=X^7+2・X^5+2・X^3+X
=X^2・1+2・1+2・X^3+X
=2・X^3+X^2+X+2
というように、常にN−1次以下の多項式になるように演算される。
なお、NTRUSign署名方式では、N−1次の多項式a=a_0+a_1・X+a_2・X^2+…+a_(N−1)・X^(N−1)はベクトル(a_0,a_1,a_2,…,a_(N−1))と同一視される。ここで、a_0,a_1,a_2,…,a_(N−1)は多項式aの係数であり、整数である。
(ii)パラメータq
NTRUSign署名方式では、2以上の整数であるパラメータqを用いる。NTRUSign署名方式で出現する多項式の係数は、qを法とした剰余を取る。
(iii)パラメータdf,dg
NTRUSign署名方式で扱う秘密鍵の一部である多項式f及び、公開鍵である多項式hを生成するときに多項式fと共に用いる多項式gの選び方は、それぞれパラメータdf,dgにより決まる。
まず、多項式fは、df個の係数が1であり、かつ他の係数は0となるように選ばれる。すなわち、多項式fは、N−1次以下の多項式であり、0次(定数項)からN−1次まで、N個の係数があるが、このN個の係数のうち、df個の係数が1であり、かつ(N−df)個の係数が0となるように選ばれる。そして、多項式gは、dg個の係数が1であり、かつ他の係数は0となるように選ばれる。
(iv)パラメータNormbound
NTRUSign署名方式では、署名sから作られる2・N次元のベクトルとメッセージデータ(以下、単にメッセージという)のハッシュ値である2・N次元のベクトルとの距離を計算し、この距離により署名sが正しい署名であるかを判定する。Normboundは、この判定の際に使用されるしきい値である。すなわち、上記距離がNormbound未満であれば、署名sが正しい署名として受理され、Normbound以上であれば、正しくない署名として拒否される。なお、非特許文献4には、NTRUSign署名方式のパラメータの例として、(N,q,df,dg,Normbound)=(251,128,73,71,310)の例が挙げられている。
(2)メッセージのハッシュ値、ノルム及びベクトル間の距離
NTRUSign署名方式では、メッセージのハッシュ値に対する署名を作成する。メッセージのハッシュ値は、N次の多項式の対であり、2・N次元のベクトルと同一視される。なお、メッセージからハッシュ値を求めるハッシュ関数については、非特許文献1が詳しい。
NTRUSign署名方式では、署名検証にベクトル間の距離を用い、このような距離の算出にノルム(Centeredノルム)を用いる。以下、ノルムおよびベクトル間の距離の定義を示す。
多項式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の対(a,b)のノルム||(a,b)||を以下のように定義する。
||(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−g×F=q
ここで、秘密鍵を{(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とする演算である。
(4)NTRUSign署名方式の署名生成
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
−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,tを計算し、多項式sを署名として出力する。
s=f×B+F×b (mod q)
t=g×B+G×b (mod q)
図1は、署名sの生成方法を説明するための説明図である。
NTRUSign署名方式では、秘密鍵行列{(f,g),(F,G)}により張られる2・N次元格子上において、メッセージmに対するハッシュ値H(m)=(m1,m2)の最近接格子点Pが、上述の式s=f×B+F×b (mod q)およびt=g×B+G×b (mod q)により導出される。つまり、(m1,m2)に最も近い格子点が、最近接格子点Pとして見つけ出される。そして、その最近接格子点Pを示す署名ベクトル(s,t)のうち、多項式sだけが署名として扱われる。
(5)NTRUSign署名方式の署名検証
NTRUSign署名方式の署名検証では、署名sが署名対象であるメッセージmの正しい署名であるか否かを検証する。まず、メッセージmに対するハッシュ値である2・N次元のベクトル(m1,m2)を計算する。
公開鍵hを用いて、以下の式より、多項式tを計算する。
t=s×h (mod q)
2・N次元ベクトル(s,t)と(m1,m2)の距離を求め、Normbound未満であるかをチェックする。Normbound未満であれば、署名sが正しいと判定してその署名sを受理する。Normbound以上であれば、署名sが不正と判定してその署名sを拒否する。
図2は、署名sの検証方法を説明するための説明図である。
NTRUSign署名方式では、署名sと公開鍵hとを用いた上述の式t=s×h (mod q)により、公開鍵行列{(1,h),(0,q)}により張られる2・N次元格子上における格子点P(s,t)が導出される。ここで、このような2・N次元格子上において、メッセージmに対するハッシュ値H(m)=(m1,m2)が、格子点P(s,t)を中心とする半径=Normboundの超球内にあるか否かが判定される。超球内にあれば、署名sは正しいと判定されて受理され、超球内になければ、署名sは不正と判定されて拒否される。
ここで、上述のNTRUSign署名方式では、正しい署名sであっても、署名検証時に「不正」と判定される場合(署名検証エラー)が存在する。
Nを2としたときの署名検証エラーの例を以下に示す。以下では、sとm1の距離に着目する。q=128、m1=(1,127)、s=(−3,124)とする。このとき、s mod q=(125,124)となる。m1−s=(4,3)であり、m1とsの距離は||m1−s||=sqrt((4−3.5)^2+(3−3.5)^2)=sqrt(0.5)である。しかし、m1−(s mod q)=(−124,3)であるため、m1と(s mod q)の距離は||m1−(s mod q)||=sqrt((−124−(−60.5))^2+(3−(−60.5))^2)=sqrt(8064.5)となり、その距離が大きくなってしまう。Normboundが小さい場合は、sに対して、qを法とした剰余を取ることにより、距離が大きくなり、正しい署名であってもその署名を不正と判定してしまい、不適切な署名検証エラーが発生する。
そこで、上述の不適切な署名検証エラーの発生を防ぐ方法が提案されている(例えば、非特許文献5参照)。具体的には、まず、署名検証時に、s mod qに対し、ノルムが0となるベクトル(α,…,α)(すべての要素がαのベクトル)を加算して、qを法とした剰余を取ることにより、多項式s’=(s mod q)+(α,…,α) mod qを計算する。次に、s’と公開鍵hを用いてt’=s×h (mod q)を計算し、2・N次元ベクトル(s’,t’)と(m1,m2)の距離を求め、その距離がNormbound未満であるか否かをチェックする。すなわち、αに1からq−1の値を代入して、1からq−1のそれぞれの場合の距離を求め、それらの距離がNormbound未満であるか否かをチェックする。その結果、何れかの距離がNormbound未満であれば、署名sが正しいと判定してその署名sを受理する。一方、1からq−1のすべてのαの値に対する距離がNormbound未満でなければ、署名sが不正であると判定して署名sを拒否する。
ここで、上述のような例の場合、s mod q=(125,124)に対し、α=3として(α,α)を加算すると、s’=(s mod q)+(α,α)=(125,124)+(3,3)=(128,127)=(0,127) mod qとなる。このとき、m1とs’の距離は、||m1−s’||=||(1,0)||=sqrt((1−0.5)^2+(0−0.5)^2)=sqrt(0.5)となり、m1とs’の距離は、m1とsの距離と同じになる。したがって、このような場合は、正しく署名が生成されていれば署名検証時に正しいと判定されるため、不適切な署名検証エラーを防ぐことが可能になる。
国際公開第03/050998号パンフレット 岡本龍明、山本博資、「現代暗号」、産業図書(1997年) J.Hoffstein, J.Pipher, and J.H. Silverman, "NTRU: A ring based public key cryptosystem", Lecture Notes in Computer Science, 1423, pp.267−288, Springer−Verlag, 1998. J.Hoffstein, J.Pipher and J.Silverman, "NSS: An NTRU Lattice−Based Signature Scheme," Advances in Cryptoplogy−Eurocrypt ’01, LNCS, Vol.2045, pp.123−137, Springer−Verlag, 2001. J.Hoffstein, N.Graham, J.Pipher, J.Silverman and W.Whyte, "NTRUSign: Digital Signatures Using the NTRU Lattice," CT−RSA’03, LNCS, Vol.2612, pp.122−140, Springer−Verlag, 2003. "Efficient Embedded Security Standards (EESS) EESS #1: Implementation Aspects of NTRUEncrypt and NTRUSign", Ver2.0, June 20th, 2003.
しかしながら、上記非特許文献5の方法であっても、不適切な署名検証エラーが発生してしまうという問題がある。
上記非特許文献5の方法では、以下の場合に、不適切な署名検証エラーを発生させてしまう。
例えば、q=128、m1=(−2,127),s=(0,129)とする。このとき、s mod q=(0,1)となる。m1−s=(−2,−2)であり,m1とsの距離は||m1−s||=sqrt((−2−(−2))^2+(−2−(−2))^2)=0である。しかし、m1−(s mod q)=(−2,126)であるため、m1とs mod qの距離は||m1−(s mod q)||=sqrt((−2−62)^2+(126−62)^2)=sqrt(8192)となり、距離が大きくなってしまう。ここで、上記非特許文献5の方法を試みる。しかし、多項式sの要素の最大値129と最小値0の差は129であり、q=128を超えるため、上記非特許文献5の方法では、多項式sに対して(α,α)を加算した後、その加算結果に対して、qを法とする剰余を取っても、要素の最大値と最小値の差が129となるような多項式s’を求めることができない。
したがって、上記のように多項式sの要素の最大値と最小値の差がqを超える場合は、多項式sに対して法をqとする剰余を取る(s mod qを行う)ことにより、情報が欠落してしまうため、不適切な署名検証エラーが発生してしまう。
そこで、本発明は、かかる問題に鑑みてなされたものであって、不適切な署名検証エラーの発生を確実に防ぐことが可能な署名生成装置および署名検証装置を提供することを目的とする。
上記目的を達成するために、本発明に係る署名生成装置は、メッセージデータに対する署名データを、署名方式に従って生成する署名生成装置であって、前記署名方式は、加算、減算、乗算、および元の大きさを示すノルムが定義されたN次元配列の集合である環Rと、正整数qとに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqを生成し(ここでf(mod q)は、fをqで割った余りを示す。)、前記元gおよび前記元Fqの積と法をqとして合同である元hを公開鍵として生成し、f×G−g×F=qを満たす元F,Gを生成し(ここで×は環Rの乗算を示す。)、前記4つの元f,g,F,Gからなる組{f,g,F,G}を秘密鍵として生成する鍵生成ステップと、前記メッセージデータに対する、前記環Rの元である前記署名データを、前記秘密鍵を用いて生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、前記署名生成装置は、前記メッセージデータに対する、前記環Rの元s,tからなる署名ベクトルを、前記秘密鍵を用いて算出する署名ベクトル生成手段と、前記元sを特定し得る前記環Rの第1の元と、前記元tをqで割ったときの商である前記環Rの第2の元とを示す前記署名データを生成する署名データ生成手段とを備えることを特徴とする。例えば、前記第1の元は、前記元sをqで割ったときの商である前記環Rの元shと、前記元sをqで割ったときの余りである前記環Rの元slとからなる。
これにより、署名データは、元sを特定し得る第1の元と、元tをqで割ったときの商である第2の元とを示すため、その署名データおよびメッセージデータを取得した署名検証装置は、その署名データにより示される第1の元を用いて、署名ベクトルの一部である元sを正しく復元することができる。例えば、第1の元が、元sをqで割ったときの商および余りである元sh,slからなる場合には、署名検証装置は、その元shにqを乗算して前記元slを加算することにより、元sを正しく復元することができる。さらに、署名検証装置は、その署名データの示す第2の元にqを乗算した結果を用いて、署名ベクトルの一部である元tを正しく復元することができる。例えば、上述の元slと元hとの積の法をqとする剰余に、第2の元とqとの積を加算することにより、元tを正しく復元することができる。このように、本発明では、署名ベクトルである元s,tに対して(mod q)の演算を行うことなく、その元s,tを署名検証装置側で正しく復元できるような署名データを生成するため、従来例のような不適切な署名検証エラーの発生を確実に防ぐことができる。つまり、元sの各要素における最大値と最小値の差がqを超えるような場合であっても、元sの情報を欠落させてしまうことなく、その元sに基づいて正しい署名検証を署名検証装置に行わせることができる。
また、前記署名生成装置は、さらに、前記メッセージデータに対してハッシュ関数を適用することにより、前記環Rの元m1および元m2を生成するハッシュ値生成手段を備え、前記署名データ生成手段は、前記元sと前記元m1との差を前記第1の元として生成することを特徴としてもよい。
これにより、第1の元が元sと元m1との差であるため、署名データおよびメッセージデータを取得した署名検証装置は、その署名データにより示される第1の元を用いて、署名ベクトルの一部である元sを正しく復元することができる。即ち、署名検証装置は、メッセージデータに対してハッシュ関数を適用することにより元m1を生成し、第1の元にその元m1を加算することにより、元sを正しく復元することができる。また、第1の元は、元sと元m1との差であるため、上述のように第1の元が元sl,shからなる場合と比べて、第1の元の情報量、つまり署名データの情報量を削減することができる。さらに、署名検証装置は、その元sと元hとの積の法をqとする剰余に、第2の元とqとの積を加算することにより、署名ベクトルの一部である元tを正しく復元することができる。
また、前記署名ベクトル生成手段は、前記元m1と前記元sとのそれぞれのi番目の要素(iは1からNの何れかの整数)が同じ値となるように、前記元sを算出することを特徴としてもよい。例えば、前記署名ベクトル生成手段は、ノルムが0である前記環Rの元の加算または減算を行うことにより、前記元sを算出する。
これにより、ノルムが0である元の加算または減算を行って、元sのi番目の要素が元m1のi番目の要素と等しくなるように、元sが算出されるため、第1の元のi番目の要素が0となって他の各要素の値も0に近づけることができ、第1の元の情報量、つまり署名データの情報量をさらに削減することができる。また、ノルムが0である元の加算または減算により、元sのi番目の要素の値の調整を行っているため、一度算出した元sのノルムを変化させることなく上述のような調整を行うことができ、その調整を行う上で、署名ベクトルと、元m1,m2からなるハッシュ値ベクトルとの距離を一定に保つことができる。
また、本発明に係る署名検証装置は、メッセージデータに対する署名データを、署名方式に従って検証する署名検証装置であって、前記署名方式は、加算、減算、乗算、および元の大きさを示すノルムが定義されたN次元配列の集合である環Rと、正整数qとに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqを生成し(ここでf(mod q)は、fをqで割った余りを示す。)、前記元gおよび前記元Fqの積と法をqとして合同である元hを公開鍵として生成し、f×G−g×F=qを満たす元F,Gを生成し(ここで×は環Rの乗算を示す。)、前記4つの元f,g,F,Gからなる組{f,g,F,G}を秘密鍵として生成する鍵生成ステップと、前記メッセージデータに対する、前記環Rの元である前記署名データを、前記秘密鍵を用いて生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、前記署名検証装置は、前記メッセージデータに対して前記秘密鍵を用いて算出された、前記環Rの元s,tからなる署名ベクトルのうち、前記元sを、前記署名データの示す前記環Rの第1の元を用いて復元するとともに、前記元tを、前記署名データの示す前記環Rの第2の元にqを乗算した結果を用いて復元する署名ベクトル生成手段と、前記署名ベクトルを検証する検証手段とを備えることを特徴とする。例えば、前記第1の元は、前記元sをqで割ったときの商である前記環Rの元shと、前記元sをqで割ったときの余りである前記環Rの元slとからなり、前記第2の元は、前記元tをqで割ったときの商であり、前記署名ベクトル生成手段は、前記元shにqを乗算して前記元slを加算することにより、前記元sを復元し、前記元slと前記元hとの積の法をqとする剰余に、前記第2の元とqとの積を加算することにより、前記元tを復元することを特徴とする。
これにより、署名データは、元sを特定し得る第1の元と、元tをqで割ったときの商である第2の元とを示すため、その署名データおよびメッセージデータを取得した署名検証装置は、その署名データにより示される第1の元を用いて、署名ベクトルの一部である元sを正しく復元することができる。例えば、第1の元が、元sをqで割ったときの商および余りである元sh,slからなる場合には、署名検証装置は、その元shにqを乗算して前記元slを加算することにより、元sを正しく復元することができる。さらに、署名検証装置は、その署名データの示す第2の元にqを乗算した結果を用いて、署名ベクトルの一部である元tを正しく復元することができる。例えば、上述の元slと元hとの積の法をqとする剰余に、第2の元とqとの積を加算することにより、元tを正しく復元することができる。
また、前記署名検証装置は、さらに、前記メッセージデータに対してハッシュ関数を適用することにより、前記環Rの元m1および元m2を生成するハッシュ値生成手段を備え、前記第1の元は、前記元sと前記元m1との差である前記環Rの元slからなり、前記第2の元は、前記元tをqで割ったときの商であり、前記署名ベクトル生成手段は、前記元slに前記元m1を加算することにより、前記元sを復元し、前記元sと元hとの積の法をqとする剰余に、前記第2の元とqとの積を加算することにより、前記元tを復元することを特徴としてもよい。
これにより、第1の元が元sと元m1との差であるため、署名データおよびメッセージデータを取得した署名検証装置は、その署名データにより示される第1の元を用いて、署名ベクトルの一部である元sを正しく復元することができる。即ち、署名検証装置は、メッセージデータに対してハッシュ関数を適用することにより元m1を生成し、第1の元にその元m1を加算することにより、元sを正しく復元することができる。さらに、署名検証装置は、その元sと元hとの積の法をqとする剰余に、第2の元とqとの積を加算することにより、署名ベクトルの一部である元tを正しく復元することができる。
なお、本発明は、このような署名生成装置および署名検証装置として実現することができるだけでなく、その方法やプログラム、そのプログラムを格納する記憶媒体、集積回路としても実現することができる。
本発明の署名生成装置および署名検証装置は、不適切な署名検証エラーの発生を確実に防ぐことができるという作用効果を奏し、その価値は大きい。
(実施の形態1)
本発明の実施の形態1における改良NTRUSign署名方式1は、従来のNTRUSign署名方式を改良した署名方式であって、不適切な署名検証エラーの発生を確実に防ぐことが可能なように署名を生成して検証するものである。
以下、本実施の形態における改良NTRUSign署名方式1について詳細に説明する。
<改良NTRUSign署名方式1>
(1)改良NTRUSign署名方式1のパラメータ
改良NTRUSign署名方式1では、非負整数のパラメータ、N,q,df,dg,Normboundが使用される。これらのパラメータの定義は、従来のNTRUSign署名方式と同様である。以下に、これらのパラメータの意味を説明する。
(i)パラメータN
改良NTRUSign署名方式1は、多項式の演算により署名生成及び署名検証を行うディジタル署名方式である。改良NTRUSign署名方式1で扱う多項式の次数は、上記パラメータNにより決まる。
改良NTRUSign署名方式1で扱う多項式は、上記パラメータNに対し、N−1次以下の整数係数多項式であり、例えばN=5のとき、X^4+X^3+1等の多項式である。ここで、「X^a」はXのa乗を意味する。また、公開鍵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)}と表記する場合もある。
そして、多項式演算は、上記パラメータNに対し、X^N=1という関係式を用いて、演算結果が常にN−1次以下の多項式になるように演算される。例えば、N=5の場合、多項式X^4+X^2+1と多項式X^3+Xの積は、多項式と多項式の積を×、整数と多項式の積(あるいは整数と整数の積)を・とすると、X^5=1という関係から、
(X^4+X^2+1)×(X^3+X)
=X^7+2・X^5+2・X^3+X
=X^2・1+2・1+2・X^3+X
=2・X^3+X^2+X+2
というように、常にN−1次以下の多項式になるように演算される。
なお、改良NTRUSign署名方式1においても、N−1次の多項式a=a_0+a_1・X+a_2・X^2+…+a_(N−1)・X^(N−1)はベクトル(a_0,a_1,a_2,…,a_(N−1))と同一視される。ここで、a_0,a_1,a_2,…,a_(N−1)は多項式aの係数であり、整数である。
(ii)パラメータq
改良NTRUSign署名方式1では、2以上の整数であるパラメータqを用いる。改良NTRUSign署名方式1で出現する多項式の係数は、qを法とした剰余を取る。
(iii)パラメータdf,dg
改良NTRUSign署名方式1で扱う秘密鍵の一部である多項式f及び、公開鍵である多項式hを生成するときに多項式fと共に用いる多項式gの選び方は、それぞれパラメータdf,dgにより決まる。
まず、多項式fは、df個の係数が1であり、かつ他の係数は0となるように選ばれる。すなわち、多項式fは、N−1次以下の多項式であり、0次(定数項)からN−1次まで、N個の係数があるが、このN個の係数のうち、df個の係数が1であり、かつ(N−df)個の係数が0となるように選ばれる。そして、多項式gは、dg個の係数が1であり、かつ他の係数は0となるように選ばれる。
(iv)パラメータNormbound
改良NTRUSign署名方式1では、多項式s,tから成る2・N次元のベクトル(署名ベクトル)とメッセージデータ(以下、単にメッセージという)のハッシュ値である2・N次元のベクトルの距離を計算し、この距離により署名が正しいか否かを判定する。Normboundは、この判定の際に使用するしきい値である。すなわち、上記距離がNormbound未満であれば、署名が正しいとして受理され、Normbound以上であれば、正しくない署名として拒否される。なお、非特許文献4には、NTRUSign署名方式のパラメータの例として、(N,q,df,dg,Normbound)=(251,128,73,71,310)の例が挙げられている。改良NTRUSign署名方式1においても、同様のパラメータ例を使用してもよい。
(2)メッセージのハッシュ値、ノルム及びベクトル間の距離
改良NTRUSign署名方式1においても、メッセージのハッシュ値に対する署名を作成する。メッセージのハッシュ値は、N次の多項式の対であり、2・N次元のベクトルと同一視される。なお、メッセージからハッシュ値を求めるハッシュ関数については、非特許文献1が詳しい。
改良NTRUSign署名方式1では、従来のNTRUSign署名方式と同様、署名検証にベクトル間の距離を用い、このような距離の算出にノルム(Centeredノルム)を用いる。以下、ノルムおよびベクトル間の距離の定義を示す。
多項式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の対(a,b)のノルム||(a,b)||を以下のように定義する。
||(a,b)||=sqrt(||a||^2+||b||^2)
多項式a,bの対(a,b)とc,dの対(c,d)との距離(ベクトル間の距離)は、||(c−a,d−b)||で定義される。
(3)改良NTRUSign署名方式1の鍵生成
改良NTRUSign署名方式1では、NTRUSign署名方式と同様の方法で鍵生成を行う。まず、上述したように、パラメータdf,dgを用いてランダムに多項式f,多項式gを生成する。そして非特許文献4に記載の通り、Fq×f=1(mod q)となる多項式Fqを用いて、
h=Fq×g(mod q)
により、多項式hを生成する。さらに、以下の式を満たすようなノルムが小さい多項式F,Gを求める。
f×G−g×F=q
ここで、秘密鍵を{(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とする演算である。
(4)改良NTRUSign署名方式1の署名生成
改良NTRUSign署名方式1の署名生成では、署名対象であるメッセージmの署名sl,sh,thを計算する。
まず、メッセージmに対するハッシュ値である2・N次元のベクトル(m1,m2)(m1及びm2はN次多項式)を計算する。
この2・N次元のベクトル(m1,m2)と秘密鍵{(f,g),(F,G)}を用いて、以下の(式1)および(式2)を満たす多項式a,b,A,Bを計算する。
G×m1−F×m2=A+q×B ・・・(式1)
−g×m1+f×m2=a+q×b ・・・(式2)
ここで、A,aの係数は〈−q/2〉+1から〈q/2〉の範囲に収まるように法qで割ったときの剰余を取ったものとする。すなわち、法qで割ったときの剰余が〈q/2〉からq−1である場合は、q減算して、上記範囲に収まるよう調整する。ここで、〈x〉は、x以下の数の中で最も大きい数を示す。例えば、〈−1/2〉=−1である。
次に以下の(式3)および(式4)より、多項式s,tを計算する。
s=f×B+F×b ・・・(式3)
t=g×B+G×b ・・・(式4)
ここで、本実施の形態では、多項式s,tに対して、法qの剰余を取ることなく、s=sl+sh×qおよびt=tl+th×qを満たす多項式sl,sh,thを算出する。なお、多項式sl,tlの各係数(各要素)を、q以下の非負整数とする。即ち、多項式sl,shは多項式sをqで割ったときの余り及び商となっており、多項式tl,thは多項式tをqで割ったときの余り及び商となっている。そして、本実施の形態では、多項式sl,sh,thを署名として扱う。
(5)改良NTRUSign署名方式1の署名検証
まず、メッセージmに対するハッシュ値である2・N次元のベクトル(m1,m2)を計算する。そして、公開鍵hを用いて、以下の(式6)より、多項式tlを計算する。
tl=sl×h (mod q) ・・・(式6)
さらに、s=sl+sh×qおよびt=tl+th×qを用いて、多項式s,tを算出する。つまり、署名である多項式sl,sh,thと公開鍵hとを用いて、多項式s,tが算出される。そして、2・N次元ベクトル(s,t)と(m1,m2)の距離を求め、その距離がNormbound未満であるかをチェックする。Normbound未満であれば、上記署名が正しいと判定してその署名を受理する。Normbound以上であれば、上記署名が不正と判定してその署名を拒否する。
図3は、本実施の形態におけるディジタル署名システム100の構成を示すブロック図である。
このディジタル署名システム100は、上述の改良NTRUSign署名方式1を用いて署名を生成して検証するものであって、署名生成装置110と、署名検証装置120と、通信路130とから構成される。
署名生成装置110は、改良NTRUSign署名方式1により、入力されたメッセージmに対する署名データS(多項式sl,sh,thを示すデータ)などを含む署名データセットSSを生成し、その署名データセットSSを署名検証装置120へ通信路130を介して送信する。また、このような署名生成装置110は、送信部111と、秘密鍵格納部112と、公開鍵証明書格納部113と、署名生成部114と、署名データセット生成部115とを備える。
署名検証装置120は、通信路130を介して署名生成装置110から、署名データセットSSを受信し、改良NTRUSign署名方式1により、その署名データセットSSに含まれる署名データSを検証する。また、このような署名検証装置120は、受信部121と、CA公開鍵格納部122と、署名データセット格納部123と、署名検証部124とを備える。
以下、本実施の形態における署名生成装置110について詳細に説明する。
署名生成装置110の送信部111は、署名データセットSSを、通信路130を介して署名検証装置120へ送信する。
秘密鍵格納部112は、メッセージmに対する多項式sを生成するための秘密鍵KSを格納している。秘密鍵KSは予め与えられているものとする。
公開鍵証明書格納部113は、上述の多項式hにより示される公開鍵KP(公開鍵h)の公開鍵証明書CPを格納する。公開鍵証明書CPは、公開鍵KPと、認証局CAによる公開鍵KPの署名データSPとからなる。この署名データSPも、改良NTRUSign署名方式1を使用して生成されている。また、公開鍵証明書CPは予め与えられているものとする。なお、公開鍵証明書CPは、公開鍵KPと署名データSP以外の他のデータを含んでいてもよい。例えば、ユーザの識別子や公開鍵証明書CPの期限などを含んでもよい。
署名生成部114は、秘密鍵格納部112に格納されている秘密鍵KSを用いて、メッセージmに対する多項式s,tを生成し、さらに、その多項式s,tを復元して検証するための署名データS(多項式sl,sh,th)を生成する。
図4は、本実施の形態における署名生成部114の構成を示すブロック図である。
署名生成部114は、ハッシュ値生成部1141と、署名ベクトル生成部1142と、署名データ生成部1143とを備える。
ハッシュ値生成部1141は、メッセージmに対するハッシュ値Hを示す2・N次元のベクトル(m1,m2)(m1及びm2はN次多項式)を算出する。
署名ベクトル生成部1142は、秘密鍵KSとハッシュ値Hを用いて、上記(式1)〜(式4)により、多項式s,tを生成する。つまり、署名ベクトル生成部1142は、秘密鍵行列{(f,g),(F,G)}により張られる2・N次元格子上において、メッセージmに対するハッシュ値H(m)=(m1,m2)の最近接格子点Pを示す署名ベクトル(s,t)を算出する。
署名データ生成部1143は、署名ベクトル生成部1142で生成された多項式s,tを用いて、s=sl+sh×qおよびt=tl+th×qを満たす、多項式sl,sh,thを算出し、その多項式sl,sh,thを示す署名データSを生成する。
図5は、署名生成部114の動作を示すフローチャートである。
まず、署名生成部114のハッシュ値生成部1141は、メッセージmに対するハッシュ値Hを示す2・N次元のベクトル(m1,m2)を算出する(ステップS100)。
次に、署名生成部114の署名ベクトル生成部1142は、上記(式1)および(式2)を満たす多項式a,b,A,Bを算出する(ステップS102)。さらに、署名ベクトル生成部1142は、上記(式3)および(式4)により、多項式s,tを算出する(ステップS104)。
そして、署名生成部114の署名データ生成部1143は、多項式s,tを用いて、s=sl+sh×qおよびt=tl+th×qを満たす、多項式sl,sh,thを算出し、その多項式sl,sh,thを示す署名データSを生成する(ステップS106)。
図6は、署名生成装置110の全体的な動作を示すフローチャートである。
署名生成装置110の署名生成部114は、秘密鍵格納部112に格納されている秘密鍵KSを用いて、メッセージmに対する多項式s,tを生成するとともに、その多項式s,tに基づいて署名データS(多項式sl,sh,thを示すデータ)を生成する(ステップS120)。
次に、署名生成装置110の署名データセット生成部115は、メッセージmと、署名データSと、公開鍵証明書格納部113に格納されている公開鍵証明書CPとからなる署名データセットSSを生成する(ステップS122)。
そして、署名生成装置110の送信部111は、通信路130を介して署名データセットSSを署名検証装置120へ送信する(ステップS124)。
以下、本実施の形態における署名検証装置120について詳細に説明する。
署名検証装置120の受信部121は、署名生成装置110から送信された署名データセットSSを、通信路130を介して受信する。
CA公開鍵格納部122は、署名データセットSSに含まれる公開鍵証明書CPを検証するための認証局CAの公開鍵KCPを格納する。
署名データセット格納部123は、受信部121で受信された署名データセットSSを格納する。
署名検証部124は、署名データセットSSに含まれる署名データSと、公開鍵証明書CPに含まれる署名データSPとを検証する。
図7は、本実施の形態における署名検証部124の構成を示すブロック図である。
署名検証部124は、ハッシュ値生成部1241と、署名ベクトル生成部1243と、距離判定部1244とを備える。
ハッシュ値生成部1241は、署名対象データであるメッセージmおよび公開鍵KPのそれぞれのハッシュ値H(=(m1,m2))を算出する。
署名ベクトル生成部1243は、署名データSおよび署名データSPのそれぞれに対して、多項式s,tを算出する。即ち、署名ベクトル生成部1243は、署名データによって示される多項式sl,shをs=sl+sh×qに代入することで、多項式sを算出する。さらに、署名ベクトル生成部1243は、署名データによって示される多項式slと、多項式h(公開鍵KPまたは公開鍵KCPにより示される多項式)とを、上記(式6)に代入することにより多項式tlを算出し、その多項式tlと、署名データによって示される多項式thとを、t=tl+th×qに代入することにより、多項式tを算出する。
これにより、署名ベクトル生成部1243は、署名データSおよび署名データSPのそれぞれに対して、2・N次元ベクトル(s,t)を署名ベクトルSVとして生成する。
距離判定部1244は、メッセージmおよび署名データSと、公開鍵KPおよび署名データSPとのそれぞれに対して、ハッシュ値Hと署名ベクトルSVの距離を計算し、その距離がNormbound未満であるか否かを判定する。即ち、メッセージmおよび署名データSに対する、ハッシュ値と署名ベクトルSVの距離がNormbound未満であれば、距離判定部1244は、署名データSが正しいと判定してその署名データSを受理する。一方、Normbound以上であれば、距離判定部1244は、署名データSが不正と判定してその署名データSを拒否する。また、公開鍵KPおよび署名データSPに対する、ハッシュ値と署名ベクトルSVの距離がNormbound未満であれば、距離判定部1244は、署名データSPが正しいと判定してその署名データSPを受理する。一方、Normbound以上であれば、距離判定部1244は、署名データSPが不正と判定してその署名データSPを拒否する。
図8は、署名検証部124の動作を示すフローチャートである。
署名検証部124は、公開鍵KPを用い、メッセージmおよび署名データSに対して図8に示す動作を行うことにより、その署名データSを検証する。なお、署名検証部124は、署名データSの検証を行う前に、公開鍵KCPを用い、公開鍵KPおよび署名データSPに対して図8に示す動作を行うことにより、その署名データSPを検証している。
以下、署名検証部124が署名データSを検証する具体的な動作について、図8を参照して説明する。
まず、署名検証部124のハッシュ値生成部1241は、署名データSに対応するメッセージmのハッシュ値H(=(m1,m2))を算出する(ステップS140)。
次に、署名ベクトル生成部1243は、署名データSにより示される多項式slと、公開鍵KPにより示される多項式hとを上記(式6)に代入することにより、多項式tlを算出する(ステップS142)。
さらに、署名ベクトル生成部1243は、署名データSにより示される多項式sl,sh,thと、ステップS142で算出された多項式tlとを、s=sl+sh×qおよびt=tl+th×qに代入することにより、多項式s,tを算出する(ステップS144)。このとき、署名ベクトル生成部1243は、署名データSに対して、2・N次元ベクトル(s,t)を署名ベクトルSVとして生成する。
距離判定部1244は、ステップS140で算出されたハッシュ値H=(m1,m2)と、ステップS144で生成された署名ベクトルSVとの距離を算出する(ステップS146)。そして、距離判定部1244は、その距離がNormbound未満であるか否かを判定する(ステップS148)。距離判定部1244は、Normbound未満であると判定したときには(ステップS148のY)、署名データSが正しいと判断してその署名データSを受理する(ステップS150)。一方、距離判定部1244は、Normbound未満でないと判定したときには(ステップS148のN)、署名データSが不正であると判断してその署名データSを拒否する(ステップS152)。
図9は、署名検証装置120の全体的な動作を示すフローチャートである。
まず、署名検証装置120の受信部121は、署名生成装置110から通信路130を介して署名データセットSSを受信し、その署名データセットSSを署名データセット格納部123に格納する(ステップS170)。
署名検証部124は、署名データセットSSの中の公開鍵証明書CPに含まれる公開鍵KPとその署名データSPに対し、署名データSPが公開鍵KPの正しい署名であるか否かを、CA公開鍵格納部122に格納されている認証局CAの公開鍵KCPを用いて検証する。つまり、署名検証部124は、署名データSPが正しい署名であるか否かを判別する(ステップS172)。ここで、署名検証部124は、正しい署名でないと判別したときには(ステップS172のN)、その署名データSPを拒否する(ステップS174)。
一方、署名検証部124は、ステップS172で署名データSPが正しい署名であると判別したときには(ステップS172のY)、その署名データSPを受理する。さらに、署名検証部124は、署名データセットSSの中のメッセージmとその署名データSに対し、署名データSがメッセージmの正しい署名であるか否かを、公開鍵KPを用いて検証する。つまり、署名検証部124は、署名データSが正しい署名であるか否かを判別する(ステップS176)。
ここで、署名検証部124は、正しい署名でないと判別したときには(ステップS176のN)、その署名データSを拒否し(ステップS174)、正しい署名であると判別したときには(ステップS176のY)、その署名データSを受理する(ステップS178)。即ち、ステップS178では、署名検証部124は、署名データセットSSが正当な署名を受けたデータであると認識する。
このように本実施の形態では、署名生成装置110において、公開鍵を用いたときに、署名ベクトル(s,t)を復元できるような多項式sl,sh,thを署名データに含めている。したがって、そのような署名データおよびメッセージを取得した署名検証装置120は、その署名データから署名ベクトル(s,t)を正しく復元することができ、その署名ベクトル(s,t)を用いて署名検証を行うことができる。例えば、署名検証装置120は、署名データに含まれる多項式shにqを乗算して多項式slを加算することにより、署名ベクトルの一部である多項式sを正しく復元することができる。さらに、署名検証装置120は、署名データに含まれる多項式slと公開鍵(多項式h)との積の法をqとする剰余に、多項式thとqとの積を加算することにより、署名ベクトルの一部である多項式tを正しく復元することができる。このように、本発明では、署名ベクトル(s,t)に対して(mod q)の演算を行うことなく、その署名ベクトル(s,t)を署名検証装置120側で正しく復元できるような署名データを生成するため、(mod q)の演算による情報の欠落を防ぎ、従来例のような不適切な署名検証エラーの発生を確実に防ぐことができる。したがって、署名ベクトル(s,t)の各要素における最大値と最小値との差がqを超える場合においても、署名検証時に署名ベクトル(s,t)を正しく復元することができる。
(実施の形態2)
本発明の実施の形態2における改良NTRUSign署名方式2は、従来のNTRUSign署名方式を改良した署名方式であって、実施の形態1と同様、不適切な署名検証エラーの発生を確実に防ぐことが可能なように署名を生成して検証するものである。さらに、本実施の形態における改良NTRUSign署名方式2では、実施の形態1と比べて、署名データの情報量を抑えることができる。
以下、本実施の形態における改良NTRUSign署名方式2について詳細に説明する。
<改良NTRUSign署名方式2>
(1)改良NTRUSign署名方式2のパラメータ
改良NTRUSign署名方式2では、非負整数のパラメータ、N,q,df,dg,Normboundが使用される。これらのパラメータの定義は、従来のNTRUSign署名方式と同様である。以下に、これらのパラメータの意味を説明する。
(i)パラメータN
改良NTRUSign署名方式2は、多項式の演算により署名生成及び署名検証を行うディジタル署名方式である。改良NTRUSign署名方式2で扱う多項式の次数は、上記パラメータNにより決まる。
改良NTRUSign署名方式2で扱う多項式は、上記パラメータNに対し、N−1次以下の整数係数多項式であり、例えばN=5のとき、X^4+X^3+1等の多項式である。ここで、「X^a」はXのa乗を意味する。また、公開鍵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)}と表記する場合もある。
そして、多項式演算は、上記パラメータNに対し、X^N=1という関係式を用いて、演算結果が常にN−1次以下の多項式になるように演算される。例えば、N=5の場合、多項式X^4+X^2+1と多項式X^3+Xの積は、多項式と多項式の積を×、整数と多項式の積(あるいは整数と整数の積)を・とすると、X^5=1という関係から、
(X^4+X^2+1)×(X^3+X)
=X^7+2・X^5+2・X^3+X
=X^2・1+2・1+2・X^3+X
=2・X^3+X^2+X+2
というように、常にN−1次以下の多項式になるように演算される。
なお、改良NTRUSign署名方式2においても、N−1次の多項式a=a_0+a_1・X+a_2・X^2+…+a_(N−1)・X^(N−1)はベクトル(a_0,a_1,a_2,…,a_(N−1))と同一視される。ここで、a_0,a_1,a_2,…,a_(N−1)は多項式aの係数であり、整数である。
(ii)パラメータq
改良NTRUSign署名方式2では、2以上の整数であるパラメータqを用いる。改良NTRUSign署名方式2で出現する多項式の係数は、qを法とした剰余を取る。
(iii)パラメータdf,dg
改良NTRUSign署名方式2で扱う秘密鍵の一部である多項式f及び、公開鍵である多項式hを生成するときに多項式fと共に用いる多項式gの選び方は、それぞれパラメータdf,dgにより決まる。
まず、多項式fは、df個の係数が1であり、かつ他の係数は0となるように選ばれる。すなわち、多項式fは、N−1次以下の多項式であり、0次(定数項)からN−1次まで、N個の係数があるが、このN個の係数のうち、df個の係数が1であり、かつ(N−df)個の係数が0となるように選ばれる。そして、多項式gは、dg個の係数が1であり、かつ他の係数は0となるように選ばれる。
(iv)パラメータNormbound
改良NTRUSign署名方式2では、多項式s,tから成る2・N次元のベクトル(署名ベクトル)とメッセージデータ(以下、単にメッセージという)のハッシュ値である2・N次元のベクトルの距離を計算し、この距離により署名が正しいか否かを判定する。Normboundは、この判定の際に使用するしきい値である。すなわち、上記距離がNormbound未満であれば、署名が正しいとして受理され、Normbound以上であれば、正しくない署名として拒否される。なお、非特許文献4には、NTRUSign署名方式のパラメータの例として、(N,q,df,dg,Normbound)=(251,128,73,71,310)の例が挙げられている。改良NTRUSign署名方式2においても、同様のパラメータ例を使用してもよい。
(2)メッセージのハッシュ値、ノルム及びベクトル間の距離
改良NTRUSign署名方式2においても、メッセージのハッシュ値に対する署名を作成する。メッセージのハッシュ値は、N次の多項式の対であり、2・N次元のベクトルと同一視される。なお、メッセージからハッシュ値を求めるハッシュ関数については、非特許文献1が詳しい。
改良NTRUSign署名方式2では、従来のNTRUSign署名方式と同様、署名検証にベクトル間の距離を用い、このような距離の算出にノルム(Centeredノルム)を用いる。以下、ノルムおよびベクトル間の距離の定義を示す。
多項式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の対(a,b)のノルム||(a,b)||を以下のように定義する。
||(a,b)||=sqrt(||a||^2+||b||^2)
多項式a,bの対(a,b)とc,dの対(c,d)との距離(ベクトル間の距離)は、||(c−a,d−b)||で定義される。
(3)改良NTRUSign署名方式2の鍵生成
改良NTRUSign署名方式2では、NTRUSign署名方式と同様の方法で鍵生成を行う。まず、上述したように、パラメータdf,dgを用いてランダムに多項式f,多項式gを生成する。そして非特許文献4に記載の通り、Fq×f=1(mod q)となる多項式Fqを用いて、
h=Fq×g(mod q)
により、多項式hを生成する。さらに、以下の式を満たすようなノルムが小さい多項式F,Gを求める。
f×G−g×F=q
ここで、秘密鍵を{(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とする演算である。
(4)改良NTRUSign署名方式2の署名生成
改良NTRUSign署名方式2の署名生成では、署名対象であるメッセージmの署名sl’,th’を計算する。
まず、メッセージmに対するハッシュ値である2・N次元のベクトル(m1,m2)(m1及びm2はN次多項式)を計算する。
この2・N次元のベクトル(m1,m2)と秘密鍵{(f,g),(F,G)}を用いて、以下の(式11)および(式12)を満たす多項式a,b,A,Bを計算する。
G×m1−F×m2=A+q×B ・・・(式11)
−g×m1+f×m2=a+q×b ・・・(式12)
ここで、A,aの係数は〈−q/2〉+1から〈q/2〉の範囲に収まるように法qで割ったときの剰余を取ったものとする。すなわち、法qで割ったときの剰余が〈q/2〉からq−1である場合は、q減算して、上記範囲に収まるよう調整する。ここで、〈x〉は、x以下の数の中で最も大きい数を示す。例えば、〈−1/2〉=−1である。
次に以下の(式13)および(式14)より、多項式s,tを計算する。
s=f×B+F×b ・・・(式13)
t=g×B+G×b ・・・(式14)
ここで、本実施の形態では、多項式s,tに対して、法qの剰余を取ることなく、この多項式s,tに基づく多項式s’,t’を算出する。
即ち、多項式sをs=s_0+s_1・X+s_2・X^2+…+s_(N−1)・X^(N−1)とし、多項式tをt=t_0+t_1・X+t_2・X^2+…+t_(N−1)・X^(N−1)とし、多項式v0をすべての係数が1の多項式とする。この場合、以下の(式15)および(式16)により、多項式s’および多項式t’を算出する。
s’=s−(s_0−m1_0)×v0
=m1_0+(s_1−s_0+m1_0)・X
+(s_2−s_0+m1_0)・X^2
+…
+(s_(N−1)−s_0+m1_0)・X^(N−1) ・・・(式15)
t’=t−(hs ×(s_0−m1_0) mod q)×v0
=(t_0−(hs×(s_0−m1_0) mod q))
+(t_1−(hs×(s_0−m1_0) mod q))・X
+(t_2−(hs×(s_0−m1_0) mod q))・X^2
+…
+(t_(N−1)−(hs×(s_0−m1_0) mod q))・X^(N−1) ・・・(式16)
なお、上記(式15)および(式16)において、m1_0は多項式m1の0次の項(1番目の項)の係数であり、hsは公開鍵である多項式hのすべての係数の和である。
さらに、s’−m1=sl’およびt’=tl’+th’×qを満たす多項式sl’,th’を算出する。ここで、多項式tl’の全ての係数(要素)はq未満の非負整数である。そして、本実施の形態では、多項式sl’,th’を署名として扱う。
つまり、本実施の形態では、多項式s’と多項式m1との距離が近いため、署名となる多項式sl’の情報量を削減することができる。
また、本実施の形態では、ノルムが0であるベクトルの加算または減算を行って、多項式s’の1番目の要素が多項式m1の1番目の要素と等しくなるように、多項式s’が算出される。したがって、署名となる多項式sl’の1番目の要素が0となって他の各要素の値も0に近づけることができ、多項式sl’の情報量、つまり署名データの情報量をさらに削減することができる。また、ノルムが0であるベクトルの加算または減算により、多項式s’の1番目の要素の値の調整を行っているため、一度算出した多項式sのノルムを変化させることなく上述のような調整を行うことができ、その調整を行う上で、(s,t)と(m1,m2)の距離と、(s’,t’)と(m1,m2)の距離とを一定に保つことができる。
(5)改良NTRUSign署名方式2の署名検証
まず、メッセージmに対するハッシュ値である2・N次元のベクトル(m1,m2)を計算する。さらに、s’=sl’+m1により多項式s’を算出する。そして、公開鍵hを用いて、以下の(式17)により、多項式tl’を算出する。
tl’=s’×h (mod q) ・・・(式17)
また、署名である多項式th’と、(式17)により算出されたtl’とを、t’=tl’+th’×qに代入することにより、多項式t’を算出する。
そして、2・N次元ベクトル(s’,t’)と(m1,m2)の距離を求め、その距離がNormbound未満であるかをチェックする。Normbound未満であれば、上記署名が正しいと判定してその署名を受理する。Normbound以上であれば、上記署名が不正と判定してその署名を拒否する。
(6)改良NTRUSign署名方式2の動作検証
まず、(s,t)と(m1,m2)の距離と、(s’,t’)と(m1,m2)の距離とが等しいことを示す。(式15)により、s−s’=(s_0−m1_0)×v0の関係が成立し、(式16)により、t−t’=(hs×(s_0−m1_0) mod q)×v0の関係が成立する。したがって、||s−s’||=(s_0−m1_0)・||v0||および||t−t’||=(hs×(s_0−m1_0) mod q)・||v0||の関係が成立する。ここで、||v0||=0であるため、||s−s’||=0および||t−t’||=0となり、||m1−s||=||m1−s’||および||m2−t||=||m2−t’||となる。したがって、(s,t)と(m1,m2)の距離と、(s’,t’)と(m1,m2)の距離とは等しい。
次に、s’×h (mod q)がtl’となることを示す。s’=s−(s_0−m1_0)×v0より、以下の関係が成立する。
s’×h=s×h−(s_0−m1_0)×v0×h
ここで、多項式v0の係数はすべて1であるため、v0×h=hs+hs・X+hs・X^2+…+hs・X^(N−1) mod X^N−1となる。
したがって、以下の関係が成立する。
s’×h=s×h−(s_0−m1_0)×(hs,hs,…,hs)
=t−(hs×(s_0−m1_0))×v0 mod q
=t’ mod q=tl’
その結果、上記(式16)により多項式t’を算出して、t’=tl’+th’×qを満たす多項式th’を多項式sl’と合わせて署名としておけば、上記(式17)、s’=sl’+m1およびt’=tl’+th’×qから、2・N次元ベクトル(s’、t’)を算出することができる。そして、(s,t)と(m1,m2)の距離と、(s’,t’)と(m1,m2)の距離とが等しいため、(s’,t’)と(m1,m2)の距離に基づいて署名を正しく検証することができる。
図10は、本実施の形態におけるディジタル署名システム200の構成を示すブロック図である。
このディジタル署名システム200は、上述の改良NTRUSign署名方式2を用いて署名を生成して検証するものであって、署名生成装置210と、署名検証装置220と、通信路230とから構成される。
署名生成装置210は、改良NTRUSign署名方式2により、入力されたメッセージmに対する署名データS(多項式sl’,th’を示すデータ)などを含む署名データセットSSを生成し、その署名データセットSSを署名検証装置220へ通信路230を介して送信する。また、このような署名生成装置210は、送信部211と、秘密鍵格納部212と、公開鍵証明書格納部213と、署名生成部214と、署名データセット生成部215とを備える。
署名検証装置220は、通信路230を介して署名生成装置210から、署名データセットSSを受信し、改良NTRUSign署名方式2により、その署名データセットSSに含まれる署名データSを検証する。また、このような署名検証装置220は、受信部221と、CA公開鍵格納部222と、署名データセット格納部223と、署名検証部224とを備える。
以下、本実施の形態における署名生成装置210について詳細に説明する。
署名生成装置210の送信部211は、署名データセットSSを、通信路230を介して署名検証装置220へ送信する。
秘密鍵格納部212は、メッセージmに対する多項式sを生成するための秘密鍵KSを格納している。秘密鍵KSは予め与えられているものとする。
公開鍵証明書格納部213は、上述の多項式hにより示される公開鍵KP(公開鍵h)の公開鍵証明書CPを格納する。公開鍵証明書CPは、公開鍵KPと、認証局CAによる公開鍵KPの署名データSPとからなる。この署名データSPも、改良NTRUSign署名方式2を使用して生成されている。また、公開鍵証明書CPは予め与えられているものとする。なお、公開鍵証明書CPは、公開鍵KPと署名データSP以外の他のデータを含んでいてもよい。例えば、ユーザの識別子や公開鍵証明書CPの期限などを含んでもよい。
署名生成部214は、秘密鍵格納部212に格納されている秘密鍵KSを用いて、メッセージmに対する多項式s,tを生成し、さらに、その多項式s,tと同等の多項式s’,t’を復元して検証するための署名データS(多項式sl’,th’)を生成する。
図11は、本実施の形態における署名生成部214の構成を示すブロック図である。
署名生成部214は、ハッシュ値生成部2141と、署名ベクトル生成部2142と、署名データ生成部2143とを備える。
ハッシュ値生成部2141は、メッセージmに対するハッシュ値Hを示す2・N次元のベクトル(m1,m2)(m1及びm2はN次多項式)を算出する。
署名ベクトル生成部2142は、秘密鍵KSとハッシュ値Hを用いて、上記(式11)〜(式14)により、多項式s,tを生成する。さらに、本実施の形態における署名ベクトル生成部2142は、実施の形態1の署名ベクトル生成部1142と異なり、生成された多項式s,tを用いて、上記(式15)および(式16)により、多項式s’,t’を算出する。つまり、署名ベクトル生成部2142は、秘密鍵行列{(f,g),(F,G)}により張られる2・N次元格子上において、メッセージmに対するハッシュ値H(m)=(m1,m2)の最近接格子点Pを示す署名ベクトル(s’,t’)を算出する。
署名データ生成部2143は、実施の形態1の署名データ生成部1143と異なり、署名ベクトル生成部2142で算出された多項式s’,t’を用い、s’−m1=sl’およびt’=tl’+th’×qを満たす多項式sl’,th’を算出し、その多項式sl’,th’を示す署名データSを生成する。
図12は、署名生成部214の動作を示すフローチャートである。
まず、署名生成部214のハッシュ値生成部2141は、メッセージmに対するハッシュ値Hを示す2・N次元のベクトル(m1,m2)を算出する(ステップS200)。
次に、署名生成部214の署名ベクトル生成部2142は、上記(式11)および(式12)を満たす多項式a,b,A,Bを算出する(ステップS202)。さらに、署名ベクトル生成部2142は、上記(式13)および(式14)により、多項式s,tを算出する(ステップS204)。そして、署名ベクトル生成部2142は、多項式s,tを用いて、上記(式15)および(式16)により、多項式s’,t’を算出する(ステップS206)。
署名生成部214の署名データ生成部2143は、s’−m1=sl’およびt’=tl’+th’×qを満たす多項式sl’,th’を算出し、その多項式sl’,th’を示す署名データSを生成する(ステップS208)。
ここで、本実施の形態における署名生成装置210の全体的な動作について、実施の形態1の図6に示すフローチャートを参照して説明する。
署名生成装置210の署名生成部214は、秘密鍵格納部212に格納されている秘密鍵KSを用いて、メッセージmに対する多項式s,tを生成するとともに、その多項式s,tに基づいて署名データS(多項式sl’,th’を示すデータ)を生成する(ステップS120)。
次に、署名生成装置210の署名データセット生成部215は、メッセージmと、署名データSと、公開鍵証明書格納部213に格納されている公開鍵証明書CPとからなる署名データセットSSを生成する(ステップS122)。
そして、署名生成装置210の送信部211は、通信路230を介して署名データセットSSを署名検証装置220へ送信する(ステップS124)。
以下、本実施の形態における署名検証装置220について詳細に説明する。
署名検証装置220の受信部221は、署名生成装置210から送信された署名データセットSSを、通信路230を介して受信する。
CA公開鍵格納部222は、署名データセットSSに含まれる公開鍵証明書CPを検証するための認証局CAの公開鍵KCPを格納する。
署名データセット格納部223は、受信部221で受信された署名データセットSSを格納する。
署名検証部224は、署名データセットSSに含まれる署名データSと、公開鍵証明書CPに含まれる署名データSPとを検証する。
図13は、本実施の形態における署名検証部224の構成を示すブロック図である。
署名検証部224は、ハッシュ値生成部2241と、署名ベクトル生成部2243と、距離判定部2244とを備える。
ハッシュ値生成部2241は、署名対象データであるメッセージmおよび公開鍵KPのそれぞれのハッシュ値H(=(m1,m2))を算出する。
署名ベクトル生成部2243は、実施の形態1の署名ベクトル生成部1243と異なり、署名データSおよび署名データSPのそれぞれに対して、多項式s’,t’を算出する。即ち、署名ベクトル生成部2243は、署名データによって示される多項式sl’をs’=sl’+m1に代入することで、多項式s’を算出する。さらに、署名ベクトル生成部2243は、算出された多項式s’と、多項式h(公開鍵KPまたは公開鍵KCPにより示される多項式)とを、上記(式17)に代入することにより、多項式tl’を算出する。そして、署名ベクトル生成部2243は、署名データによって示される多項式th’と多項式tl’とを、t’=tl’+th’×qに代入することにより、多項式t’を算出する。
これにより、署名ベクトル生成部2243は、署名データSおよび署名データSPのそれぞれに対して、2・N次元ベクトル(s’,t’)を署名ベクトルSVとして生成する。
距離判定部2244は、メッセージmおよび署名データSと、公開鍵KPおよび署名データSPとのそれぞれに対して、ハッシュ値Hと署名ベクトルSVの距離を計算し、その距離がNormbound未満であるか否かを判定する。即ち、メッセージmおよび署名データSに対する、ハッシュ値と署名ベクトルSVの距離がNormbound未満であれば、距離判定部2244は、署名データSが正しいと判定してその署名データSを受理する。一方、Normbound以上であれば、距離判定部2244は、署名データSが不正と判定してその署名データSを拒否する。また、公開鍵KPおよび署名データSPに対する、ハッシュ値と署名ベクトルSVの距離がNormbound未満であれば、距離判定部2244は、署名データSPが正しいと判定してその署名データSPを受理する。一方、Normbound以上であれば、距離判定部2244は、署名データSPが不正と判定してその署名データSPを拒否する。
図14は、署名検証部224の動作を示すフローチャートである。
署名検証部224は、公開鍵KPを用い、メッセージmおよび署名データSに対して図14に示す動作を行うことにより、その署名データSを検証する。なお、署名検証部224は、署名データSの検証を行う前に、公開鍵KCPを用い、公開鍵KPおよび署名データSPに対して図14に示す動作を行うことにより、その署名データSPを検証している。
以下、署名検証部224が署名データSを検証する具体的な動作について、図14を参照して説明する。
まず、署名検証部224のハッシュ値生成部2241は、署名データSに対応するメッセージmのハッシュ値H(=(m1,m2))を算出する(ステップS240)。
次に、署名ベクトル生成部2243は、署名データSにより示される多項式sl’をs’=sl’+m1に代入することで、多項式s’を算出する(ステップS242)。さらに、署名ベクトル生成部2243は、算出された多項式s’と、公開鍵KPにより示される多項式hとを、上記(式17)に代入することにより、多項式tl’を算出する(ステップS244)。そして、署名ベクトル生成部2243は、署名データSによって示される多項式th’と多項式tl’とを、t’=tl’+th’×qに代入することにより、多項式t’を算出する(ステップS246)。このとき、署名ベクトル生成部2243は、署名データSに対して、2・N次元ベクトル(s’,t’)を署名ベクトルSVとして生成する。
距離判定部2244は、ステップS240で算出されたハッシュ値H=(m1,m2)と、ステップS246で生成された署名ベクトルSVとの距離を算出する(ステップS248)。そして、距離判定部2244は、その距離がNormbound未満であるか否かを判定する(ステップS250)。距離判定部2244は、Normbound未満であると判定したときには(ステップS250のY)、署名データSが正しいと判断してその署名データSを受理する(ステップS252)。一方、距離判定部2244は、Normbound未満でないと判定したときには(ステップS250のN)、署名データSが不正であると判断してその署名データSを拒否する(ステップS254)。
ここで、本実施の形態における署名検証装置220の全体的な動作について、実施の形態1の図9に示すフローチャートを参照して説明する。
まず、署名検証装置220の受信部221は、署名生成装置210から通信路230を介して署名データセットSSを受信し、その署名データセットSSを署名データセット格納部223に格納する(ステップS170)。
署名検証部224は、署名データセットSSの中の公開鍵証明書CPに含まれる公開鍵KPとその署名データSPに対し、署名データSPが公開鍵KPの正しい署名であるか否かを、CA公開鍵格納部222に格納されている認証局CAの公開鍵KCPを用いて検証する。つまり、署名検証部224は、署名データSPが正しい署名であるか否かを判別する(ステップS172)。ここで、署名検証部224は、正しい署名でないと判別したときには(ステップS172のN)、その署名データSPを拒否する(ステップS174)。
一方、署名検証部224は、ステップS172で署名データSPが正しい署名であると判別したときには(ステップS172のY)、その署名データSPを受理する。さらに、署名検証部224は、署名データセットSSの中のメッセージmとその署名データSに対し、署名データSがメッセージmの正しい署名であるか否かを、公開鍵KPを用いて検証する。つまり、署名検証部224は、署名データSが正しい署名であるか否かを判別する(ステップS176)。
ここで、署名検証部224は、正しい署名でないと判別したときには(ステップS176のN)、その署名データSを拒否し(ステップS174)、正しい署名であると判別したときには(ステップS176のY)、その署名データSを受理する(ステップS178)。即ち、ステップS178では、署名検証部224は、署名データセットSSが正当な署名を受けたデータであると認識する。
このように本実施の形態では、署名生成装置210において、公開鍵を用いたときに、署名ベクトル(s’,t’)を復元できるような多項式sl’=s’−m1,th’を署名データに含めている。したがって、そのような署名データおよびメッセージを取得した署名検証装置220は、その署名データから署名ベクトル(s’,t’)を正しく復元することができ、その署名ベクトル(s’,t’)を用いて署名検証を行うことができる。例えば、署名検証装置220は、メッセージmに対してハッシュ関数を適用することによりハッシュ値である(m1,m2)を生成し、多項式sl’にその多項式m1を加算することにより、多項式s’を正しく復元することができる。さらに、署名検証装置220は、その多項式s’と公開鍵(多項式h)との積の法をqとする剰余に、多項式th’とqとの積を加算することにより、署名ベクトルの一部である多項式t’を正しく復元することができる。このように、本発明では、署名ベクトルである署名ベクトル(s’,t’)に対して(mod q)の演算を行うことなく、その署名ベクトル(s’,t’)を署名検証装置220側で正しく復元できるような署名データを生成するため、(mod q)の演算による情報の欠落を防ぎ、従来例のような不適切な署名検証エラーの発生を確実に防ぐことができる。したがって、署名ベクトル(s’,t’)の各要素における最大値と最小値との差がqを超える場合においても、署名検証時に署名ベクトル(s’,t’)を正しく復元することができる。
また、本実施の形態では、署名データとして多項式s’と多項式m1の差(多項式sl’)を送信している。多項式s’と多項式m1の距離は短く、また、多項式s’の1番目の要素は多項式m1の1番目の要素と等しいため、多項式sl’(=s’−m1)は各要素が小さくなり、多項式s’をそのまま送信するより送信データ量を削減することができる。
以上、本発明について上記実施の形態1および2を用いて説明したが、これらは、本発明の一例であり、本発明はこのような実施の形態に何ら限定されるものではない。つまり、本発明は、本発明の本質を逸脱しない範囲において種々なる態様で実施し得るものである。例えば、以下のような場合も本発明に含まれる。
(1) 実施の形態1において、多項式sの代わりに、ノルムが0であるベクトルを多項式sに加算して生成された多項式sa(sa=s+(α,α,…,α))を使用してもよい。ここで、αは1からq−1のいずれかの整数であり、(α,α,…,α)はすべての要素がαであるベクトル、つまりノルムが0のベクトルである。この場合、sa=sl+sh×qおよびt=tl+th×qを満たす多項式sl,sh,thが署名として扱われる。
(2) 実施の形態2において、ノルムが0のベクトルを多項式sに加算することにより、多項式s’と多項式m1とにおける第1要素(0次の項の係数)を等しくしたが、他の要素、つまり第2要素から第N要素の何れかの要素を等しくしてもよい。例えば、多項式s’と多項式m1とにおける第3要素(2次の項の係数)が等しくなるように、ノルムが0のベクトルを多項式sに加算する。
(3) 実施の形態2において、署名データの一部として、s’とm1の差であるsl’=s’−m1を送信しているが、sl”=s’−m1+(β,β,…,β)により算出されるsl”とβを、sl’の代わりに、署名データの一部として送信してもよい。ここで、(β,β,…,β)はすべての要素がβであるベクトルである。
(4) 上記実施の形態1および2における署名生成装置および署名検証装置は、具体的には、マイクロプロセッサ、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスクユニット、ディスプレイユニット、キーボード、およびマウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、署名生成装置および署名検証装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(5) 上記実施の形態1および2における署名生成装置および署名検証装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
(6) 上記実施の形態1および2における署名生成装置および署名検証装置を構成する構成要素の一部または全部は、署名生成装置または署名検証装置に脱着可能なIC(Integrated Circuit)カード、または単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(7) 本発明は、上記実施の形態1および2のディジタル署名システムにおけるそのシステムや装置として実現されるだけでなく、処理方法としても実現できる。また、この処理方法による動作をコンピュータに実行させるコンピュータプログラムとして実現してもよく、前記コンピュータプログラムからなるディジタル信号として実現してもよい。
(8) また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM(Compact Disk Read Only Memory)、MO(Magneto-Optical disk)、DVD(Digital Versatile Disk)、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとして実現してもよい。また、これらの記録媒体に記録されている前記ディジタル信号として実現してもよい。
(9) また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、もしくはデータ放送等を経由して伝送するものとして実現してもよい。
(10) また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムとして実現しても良い。この場合には、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作する。
(11) また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号を前記記録媒体に記録して移送することにより、または前記コンピュータプログラムまたは前記ディジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実現してもよい。
(12) また、本発明は、上記実施の形態1および2をそれぞれ組み合わせて実現してもよい。
本発明の署名生成装置および署名検証装置は、不適切な署名検証エラーの発生を確実に防ぐことができるという効果を奏し、例えば、ディジタル署名システムなどに適用することができる。
図1は、署名の生成方法を説明するための説明図である。 図2は、署名の検証方法を説明するための説明図である。 図3は、本発明の実施の形態1におけるディジタル署名システムの構成を示すブロック図である。 図4は、本発明の実施の形態1における署名生成部の構成を示すブロック図である。 図5は、本発明の実施の形態1における署名生成部の動作を示すフローチャートである。 図6は、本発明の実施の形態1における署名生成装置の全体的な動作を示すフローチャートである。 図7は、本発明の実施の形態1における署名検証部の構成を示すブロック図である。 図8は、本発明の実施の形態1における署名検証部の動作を示すフローチャートである。 図9は、本発明の実施の形態1における署名検証装置の全体的な動作を示すフローチャートである。 図10は、本発明の実施の形態2におけるディジタル署名システムの構成を示すブロック図である。 図11は、本発明の実施の形態2における署名生成部の構成を示すブロック図である。 図12は、本発明の実施の形態2における署名生成部の動作を示すフローチャートである。 図13は、本発明の実施の形態2における署名検証部の構成を示すブロック図である。 図14は、本発明の実施の形態2における署名検証部の動作を示すフローチャートである。
符号の説明
100 ディジタル署名システム
110 署名生成装置
111 送信部
112 秘密鍵格納部
113 公開鍵証明書格納部
114 署名生成部
115 署名データセット生成部
120 署名検証装置
121 受信部
122 CA公開鍵格納部
123 署名データセット格納部
124 署名検証部
130 通信路
1141 ハッシュ値生成部
1142 署名ベクトル生成部
1143 署名データ生成部
1241 ハッシュ値生成部
1243 署名ベクトル生成部
1244 距離判定部

Claims (14)

  1. メッセージデータに対する署名データを、署名方式に従って生成する署名生成装置であって、
    前記署名方式は、
    加算、減算、乗算、および元の大きさを示すノルムが定義されたN次元配列の集合である環Rと、正整数qとに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqを生成し(ここでf(mod q)は、fをqで割った余りを示す。)、前記元gおよび前記元Fqの積と法をqとして合同である元hを公開鍵として生成し、f×G−g×F=qを満たす元F,Gを生成し(ここで×は環Rの乗算を示す。)、前記4つの元f,g,F,Gからなる組{f,g,F,G}を秘密鍵として生成する鍵生成ステップと、前記メッセージデータに対する、前記環Rの元である前記署名データを、前記秘密鍵を用いて生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、
    前記署名生成装置は、
    前記メッセージデータに対する、前記環Rの元s,tからなる署名ベクトルを、前記秘密鍵を用いて算出する署名ベクトル生成手段と、
    前記元sを特定し得る前記環Rの第1の元と、前記元tをqで割ったときの商である前記環Rの第2の元とを示す前記署名データを生成する署名データ生成手段と
    を備えることを特徴とする署名生成装置。
  2. 前記第1の元は、前記元sをqで割ったときの商である前記環Rの元shと、前記元sをqで割ったときの余りである前記環Rの元slとからなる
    ことを特徴とする請求項1記載の署名生成装置。
  3. 前記署名生成装置は、さらに、
    前記メッセージデータに対してハッシュ関数を適用することにより、前記環Rの元m1および元m2を生成するハッシュ値生成手段を備え、
    前記署名データ生成手段は、
    前記元sと前記元m1との差を前記第1の元として生成する
    ことを特徴とする請求項1記載の署名生成装置。
  4. 前記署名ベクトル生成手段は、
    前記元m1と前記元sとのそれぞれのi番目の要素(iは1からNの何れかの整数)が同じ値となるように、前記元sを算出する
    ことを特徴とする請求項3記載の署名生成装置。
  5. 前記署名ベクトル生成手段は、
    ノルムが0である前記環Rの元の加算または減算を行うことにより、前記元sを算出する
    ことを特徴とする請求項4記載の署名生成装置。
  6. 前記署名ベクトル生成手段は、
    前記第1の元に含まれる各要素の値が0に近づくように前記元sを算出する
    ことを特徴とする請求項3記載の署名生成装置。
  7. メッセージデータに対する署名データを、署名方式に従って検証する署名検証装置であって、
    前記署名方式は、
    加算、減算、乗算、および元の大きさを示すノルムが定義されたN次元配列の集合である環Rと、正整数qとに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqを生成し(ここでf(mod q)は、fをqで割った余りを示す。)、前記元gおよび前記元Fqの積と法をqとして合同である元hを公開鍵として生成し、f×G−g×F=qを満たす元F,Gを生成し(ここで×は環Rの乗算を示す。)、前記4つの元f,g,F,Gからなる組{f,g,F,G}を秘密鍵として生成する鍵生成ステップと、前記メッセージデータに対する、前記環Rの元である前記署名データを、前記秘密鍵を用いて生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、
    前記署名検証装置は、
    前記メッセージデータに対して前記秘密鍵を用いて算出された、前記環Rの元s,tからなる署名ベクトルのうち、前記元sを、前記署名データの示す前記環Rの第1の元を用いて復元するとともに、前記元tを、前記署名データの示す前記環Rの第2の元にqを乗算した結果を用いて復元する署名ベクトル生成手段と、
    前記署名ベクトルを検証する検証手段と
    を備えることを特徴とする署名検証装置。
  8. 前記第1の元は、前記元sをqで割ったときの商である前記環Rの元shと、前記元sをqで割ったときの余りである前記環Rの元slとからなり、前記第2の元は、前記元tをqで割ったときの商であり、
    前記署名ベクトル生成手段は、
    前記元shにqを乗算して前記元slを加算することにより、前記元sを復元し、
    前記元slと前記元hとの積の法をqとする剰余に、前記第2の元とqとの積を加算することにより、前記元tを復元する
    ことを特徴とする請求項7記載の署名検証装置。
  9. 前記署名検証装置は、さらに、
    前記メッセージデータに対してハッシュ関数を適用することにより、前記環Rの元m1および元m2を生成するハッシュ値生成手段を備え、
    前記第1の元は、前記元sと前記元m1との差である前記環Rの元slからなり、前記第2の元は、前記元tをqで割ったときの商であり、
    前記署名ベクトル生成手段は、
    前記元slに前記元m1を加算することにより、前記元sを復元し、
    前記元sと元hとの積の法をqとする剰余に、前記第2の元とqとの積を加算することにより、前記元tを復元する
    ことを特徴とする請求項7記載の署名検証装置。
  10. 前記署名検証装置は、さらに、
    前記メッセージデータに対してハッシュ関数を適用することにより、前記環Rの元m1および元m2を生成するハッシュ値生成手段を備え、
    前記検証手段は、
    前記署名ベクトルと、前記元m1および元m2からなるハッシュ値ベクトルとの距離を、予め定められた距離と比較することにより、前記署名ベクトルを検証する
    ことを特徴とする請求項7記載の署名検証装置。
  11. 署名生成装置がメッセージデータに対する署名データを、署名方式に従って生成する署名生成方法であって、
    前記署名方式は、
    加算、減算、乗算、および元の大きさを示すノルムが定義されたN次元配列の集合である環Rと、正整数qとに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqを生成し(ここでf(mod q)は、fをqで割った余りを示す。)、前記元gおよび前記元Fqの積と法をqとして合同である元hを公開鍵として生成し、f×G−g×F=qを満たす元F,Gを生成し(ここで×は環Rの乗算を示す。)、前記4つの元f,g,F,Gからなる組{f,g,F,G}を秘密鍵として生成する鍵生成ステップと、前記メッセージデータに対する、前記環Rの元である前記署名データを、前記秘密鍵を用いて生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、
    前記署名生成装置は、署名ベクトル生成手段と署名データ生成手段とを備え、
    前記署名生成方法は、
    前記署名生成ステップを含み、
    前記署名生成ステップは、
    前記署名ベクトル生成手段が、前記メッセージデータに対する、前記環Rの元s,tからなる署名ベクトルを、前記秘密鍵を用いて算出する署名ベクトル生成ステップと、
    前記署名データ生成手段が、前記元sを特定し得る前記環Rの第1の元と、前記元tをqで割ったときの商である前記環Rの第2の元とを示す前記署名データを生成する署名データ生成ステップと
    を含むことを特徴とする署名生成方法。
  12. 署名検証装置がメッセージデータに対する署名データを、署名方式に従って検証する署名検証方法であって、
    前記署名方式は、
    加算、減算、乗算、および元の大きさを示すノルムが定義されたN次元配列の集合である環Rと、正整数qとに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqを生成し(ここでf(mod q)は、fをqで割った余りを示す。)、前記元gおよび前記元Fqの積と法をqとして合同である元hを公開鍵として生成し、f×G−g×F=qを満たす元F,Gを生成し(ここで×は環Rの乗算を示す。)、前記4つの元f,g,F,Gからなる組{f,g,F,G}を秘密鍵として生成する鍵生成ステップと、前記メッセージデータに対する、前記環Rの元である前記署名データを、前記秘密鍵を用いて生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、
    前記署名検証装置は、署名ベクトル生成手段と検証手段とを備え、
    前記署名検証方法は、
    前記署名検証ステップを含み、
    前記署名検証ステップは、
    前記署名ベクトル生成手段が、前記メッセージデータに対して前記秘密鍵を用いて算出された、前記環Rの元s,tからなる署名ベクトルのうち、前記元sを、前記署名データの示す前記環Rの第1の元を用いて復元するとともに、前記元tを、前記署名データの示す前記環Rの第2の元にqを乗算した結果を用いて復元する署名ベクトル生成ステップと、
    前記検証手段が前記署名ベクトルを検証する検証ステップと
    を含むことを特徴とする署名検証方法。
  13. メッセージデータに対する署名データを、署名方式に従って生成する集積回路であって、
    前記署名方式は、
    加算、減算、乗算、および元の大きさを示すノルムが定義されたN次元配列の集合である環Rと、正整数qとに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqを生成し(ここでf(mod q)は、fをqで割った余りを示す。)、前記元gおよび前記元Fqの積と法をqとして合同である元hを公開鍵として生成し、f×G−g×F=qを満たす元F,Gを生成し(ここで×は環Rの乗算を示す。)、前記4つの元f,g,F,Gからなる組{f,g,F,G}を秘密鍵として生成する鍵生成ステップと、前記メッセージデータに対する、前記環Rの元である前記署名データを、前記秘密鍵を用いて生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、
    前記集積回路は、
    前記メッセージデータに対する、前記環Rの元s,tからなる署名ベクトルを、前記秘密鍵を用いて算出する署名ベクトル生成手段と、
    前記元sを特定し得る前記環Rの第1の元と、前記元tをqで割ったときの商である前記環Rの第2の元とを示す前記署名データを生成する署名データ生成手段と
    を備えることを特徴とする集積回路。
  14. メッセージデータに対する署名データを、署名方式に従って検証する集積回路であって、
    前記署名方式は、
    加算、減算、乗算、および元の大きさを示すノルムが定義されたN次元配列の集合である環Rと、正整数qとに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqを生成し(ここでf(mod q)は、fをqで割った余りを示す。)、前記元gおよび前記元Fqの積と法をqとして合同である元hを公開鍵として生成し、f×G−g×F=qを満たす元F,Gを生成し(ここで×は環Rの乗算を示す。)、前記4つの元f,g,F,Gからなる組{f,g,F,G}を秘密鍵として生成する鍵生成ステップと、前記メッセージデータに対する、前記環Rの元である前記署名データを、前記秘密鍵を用いて生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、
    前記集積回路は、
    前記メッセージデータに対して前記秘密鍵を用いて算出された、前記環Rの元s,tからなる署名ベクトルのうち、前記元sを、前記署名データの示す前記環Rの第1の元を用いて復元するとともに、前記元tを、前記署名データの示す前記環Rの第2の元にqを乗算した結果を用いて復元する署名ベクトル生成手段と、
    前記署名ベクトルを検証する検証手段と
    を備えることを特徴とする集積回路。
JP2006527181A 2005-04-18 2006-04-10 署名生成装置、署名検証装置、それらの方法、および集積回路 Expired - Lifetime JP4620669B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005120095 2005-04-18
JP2005120095 2005-04-18
PCT/JP2006/307533 WO2006115021A1 (ja) 2005-04-18 2006-04-10 署名生成装置及び署名検証装置

Publications (2)

Publication Number Publication Date
JPWO2006115021A1 JPWO2006115021A1 (ja) 2008-12-18
JP4620669B2 true JP4620669B2 (ja) 2011-01-26

Family

ID=37214646

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006527181A Expired - Lifetime JP4620669B2 (ja) 2005-04-18 2006-04-10 署名生成装置、署名検証装置、それらの方法、および集積回路

Country Status (5)

Country Link
US (1) US7792286B2 (ja)
EP (1) EP1873965A1 (ja)
JP (1) JP4620669B2 (ja)
CN (1) CN1954548B (ja)
WO (1) WO2006115021A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8885894B2 (en) * 2004-06-14 2014-11-11 Michael John Rowen Reduction of transaction fraud through the use of automatic centralized signature/sign verification combined with credit and fraud scoring during real-time payment card authorization processes
KR20070100590A (ko) * 2006-04-07 2007-10-11 삼성에스디아이 주식회사 전자방출표시소자 및 영상신호 보정방법
JP4988448B2 (ja) * 2007-06-25 2012-08-01 株式会社日立製作所 一括検証装置、プログラム及び一括検証方法
JP5079024B2 (ja) * 2008-02-20 2012-11-21 三菱電機株式会社 検証装置及び暗号文復号装置及び署名検証装置及び認証装置及び暗号システム及びコンピュータプログラム
DE102008015865B4 (de) * 2008-03-26 2011-03-31 Technische Universität Darmstadt Verfahren zur Erzeugung einer digitalen Signatur
ATE547855T1 (de) * 2008-10-01 2012-03-15 Sap Ag Kontextfreie und kontextsensitive digitale xml- signaturen für soap botschaften
JP5593850B2 (ja) * 2010-05-31 2014-09-24 ソニー株式会社 認証装置、認証方法、プログラム、及び署名生成装置
US8677135B2 (en) 2010-12-17 2014-03-18 Microsoft Corporation Digital signatures with error polynomials
JP5606344B2 (ja) * 2011-01-25 2014-10-15 三菱電機株式会社 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム
JP2013042315A (ja) * 2011-08-12 2013-02-28 Sony Corp 情報処理装置、及び情報処理方法
US9942031B2 (en) * 2014-09-03 2018-04-10 Research Foundation Of The City University Of New York System and method for private-key fully homomorphic encryption and private search between rings
KR102444193B1 (ko) * 2020-04-29 2022-09-19 국방과학연구소 Ring-LWR기반 양자내성 서명 방법 및 그 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005515659A (ja) * 2001-12-07 2005-05-26 エヌティーアールユー・クリプトシステムズ・インコーポレーテッド ディジタル署名、認証方法及び装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69737097T2 (de) 1996-08-19 2007-07-12 Ntru Cryptosystems, Inc. Kryptographisches verfahren und vorrichtung mit öffentlichem schlüssel
GB0013399D0 (en) * 2000-06-01 2000-07-26 Tao Group Ltd Decryption of cipher polynomials
JP4053431B2 (ja) * 2001-05-04 2008-02-27 株式会社エヌ・ティ・ティ・ドコモ 環ベースの署名スキーム
US20040151309A1 (en) * 2002-05-03 2004-08-05 Gentry Craig B Ring-based signature scheme
CN1260664C (zh) * 2003-05-30 2006-06-21 武汉理工大学 一种用户计算机之间交换密钥的方法
JP4786531B2 (ja) * 2004-05-12 2011-10-05 パナソニック株式会社 暗号システム、暗号装置、復号装置、プログラムおよび集積回路

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005515659A (ja) * 2001-12-07 2005-05-26 エヌティーアールユー・クリプトシステムズ・インコーポレーテッド ディジタル署名、認証方法及び装置

Also Published As

Publication number Publication date
CN1954548A (zh) 2007-04-25
WO2006115021A1 (ja) 2006-11-02
EP1873965A1 (en) 2008-01-02
JPWO2006115021A1 (ja) 2008-12-18
CN1954548B (zh) 2010-07-21
US7792286B2 (en) 2010-09-07
US20090235078A1 (en) 2009-09-17

Similar Documents

Publication Publication Date Title
El Mrabet et al. Guide to pairing-based cryptography
JP5341878B2 (ja) 署名及び検証方法、署名生成装置並びに署名検証装置
CA2587474C (en) New trapdoor one-way function on elliptic curves and their applications to shorter signatures and asymmetric encryption
KR102423885B1 (ko) 연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템
EP1710952B1 (en) Cryptographic Applications of the Cartier Pairing
JP4786531B2 (ja) 暗号システム、暗号装置、復号装置、プログラムおよび集積回路
JP2011223612A (ja) 暗号化装置、復号化装置、認証装置、検証装置、暗号化方法、復号化方法、認証方法、検証方法、暗号化プログラム、復号化プログラム、認証プログラム及び検証プログラム
JP4620669B2 (ja) 署名生成装置、署名検証装置、それらの方法、および集積回路
KR101099867B1 (ko) 서명 장치, 검증 장치, 증명 장치, 암호화 장치, 및 복호화장치
US8589679B2 (en) Identifier-based signcryption with two trusted authorities
US20050135610A1 (en) Identifier-based signcryption
US7739504B2 (en) Signature generation apparatus and signature verification apparatus
US8924448B2 (en) Arithmetic device, method, and program product
JP5871827B2 (ja) 安全性強化システム、安全性強化装置、検証装置、およびプログラム
Mohapatra et al. Signcryption schemes with forward secrecy based on elliptic curve cryptography
JP2009177242A (ja) 署名生成装置、署名検証装置、署名生成検証システム、それらの方法及びプログラム
Elhassani et al. Elliptic curve and lattice cryptosystem
JP2025091630A (ja) デジタル署名システム、方法並びに記録媒体
Boneh Review of SEC1: Elliptic Curve Cryptography
JP2003233306A (ja) 公開鍵暗号安全性評価方法及び装置及び公開鍵暗号安全性評価プログラム及び公開鍵暗号安全性評価プログラムを格納した記憶媒体
Bernstein et al. Progress in Cryptology-AFRICACRYPT 2010: Third International Conference on Cryptology in Africa, Stellenbosch, South Africa, May 3-6, 2010, Proceedings
Lacharité Revisiting the security model for aggregate signature schemes
JP2010245683A (ja) 暗号システム、鍵生成装置、暗号化装置、復号化装置及び暗号処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100513

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100726

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100915

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: 20101005

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: 20101028

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

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4620669

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061219