JPWO2006077822A1 - 署名生成装置及び署名検証装置 - Google Patents
署名生成装置及び署名検証装置 Download PDFInfo
- Publication number
- JPWO2006077822A1 JPWO2006077822A1 JP2006543311A JP2006543311A JPWO2006077822A1 JP WO2006077822 A1 JPWO2006077822 A1 JP WO2006077822A1 JP 2006543311 A JP2006543311 A JP 2006543311A JP 2006543311 A JP2006543311 A JP 2006543311A JP WO2006077822 A1 JPWO2006077822 A1 JP WO2006077822A1
- Authority
- JP
- Japan
- Prior art keywords
- signature
- key
- data
- verification
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012795 verification Methods 0.000 title claims description 751
- 230000001186 cumulative effect Effects 0.000 claims abstract description 111
- 238000000034 method Methods 0.000 claims description 92
- 230000001629 suppression Effects 0.000 claims description 68
- 230000005540 biological transmission Effects 0.000 claims description 64
- 230000002401 inhibitory effect Effects 0.000 claims description 11
- 238000012806 monitoring device Methods 0.000 claims description 10
- 230000008520 organization Effects 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 94
- 238000012544 monitoring process Methods 0.000 description 60
- 230000008569 process Effects 0.000 description 42
- 238000012545 processing Methods 0.000 description 28
- 238000004590 computer program Methods 0.000 description 24
- 239000013598 vector Substances 0.000 description 22
- 230000006870 function Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 8
- 230000014509 gene expression Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 241000009298 Trigla lyra Species 0.000 description 4
- 239000000470 constituent Substances 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 241000907661 Pieris rapae Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
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/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
-
- 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/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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
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である。
署名文の個数が増大すると、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の秘密鍵により生成された検証鍵署名データとを含む検証鍵証明書を記憶している検証鍵証明書記憶手段と、前記第1の秘密鍵に対応する公開鍵と、前記公開鍵の正当性を示し、外部の機関が有する第2の秘密鍵により生成された公開鍵署名データとを含む公開鍵証明書を記憶している公開鍵証明書記憶手段と、前記署名対象データと、前記署名生成手段にて生成された前記署名データと、前記検証鍵証明書と、前記公開鍵証明書とを、前記署名データの検証を行う署名検証装置へ送信する送信手段とを備えるとしてもよい。
ここで、前記署名抑止手段は、前記カウンタ手段にてカウントされた累積回数が前記所定回数に達していると判断される場合に、さらに、前記別の署名鍵に対応し、前記検証鍵とは別の検証鍵を生成し、生成した前記別の検証鍵に対して、前記第1の秘密鍵を用いて、前記検証鍵署名データとは別の検証鍵署名データを生成し、前記別の検証鍵と前記検証鍵署名データとを含む、前記検証鍵証明書とは別の検証鍵証明書を生成し、生成した前記別の検証鍵証明書を、前記公開鍵証明書記憶手段に記憶されている前記検証鍵証明書に対して上書きするとしてもよい。
ここで、前記署名生成手段は、前記カウンタ手段にてカウントされた累積回数を取得し、前記署名対象データは、メッセージデータと取得した累積回数とを含むとしてもよい。
ここで、前記署名生成装置は、さらに、時刻を計時する時計手段を備え、前記署名生成手段は、前記時計手段を用いて、署名データの有効期限の判断基準となる時刻情報を取得し、前記署名対象データは、メッセージデータと取得した前記時刻情報とを含むとしてもよい。
ここで、前記判断手段は、前記所定回数を記憶している回数記憶部を有しており、前記署名生成装置は、さらに、前記回数記憶部にて記憶されている前記所定回数を別の所定回数へと更新する更新手段を備えるとしてもよい。
また、本発明は、署名鍵を用いて署名を行う署名生成装置にて生成された署名データを検証する署名検証装置であって、前記署名生成装置から、メッセージデータと前記署名生成装置が前記署名鍵を用いて署名を行った累積回数とを含む署名対象データと、前記署名対象データに対する署名データとを、前記署名生成装置から受信する受信手段と、受信した前記署名対象データに含まれる前記累積回数が所定回数に達しているか否かを判断する回数判断手段と、前記累積回数が前記所定回数に達していると判断される場合に、前記署名データの検証を抑止する検証抑止手段とを備えることを特徴とする。
ここで、前記署名対象データは、さらに、前記署名データの有効期限の判断基準となる第1時刻情報を含み、前記署名検証装置は、さらに、時刻を計時する時計手段と、前記累積回数が前記所定回数に達していないと判断される場合に、前記時計手段を用いて現在時刻を示す第2時刻情報を取得し、前記第1時刻情報と取得した第2時刻情報とを用いて、前記署名データの有効期限が過ぎているか否かを判断する期限判断手段と、前記署名データの有効期限が過ぎていないと判断される場合に、前記署名データを検証する検証手段とを備え、前記検証抑止手段は、さらに、前記署名データの有効期限が過ぎていると判断される場合に、前記署名データの検証を抑止するとしてもよい。
ここで、前記署名データは、前記署名生成装置が生成した署名鍵を用いて生成され、前記受信手段は、さらに、前記署名鍵に対応する検証鍵と、前記検証鍵の正当性を示し、第1の秘密鍵により生成された検証鍵署名データとを含む検証鍵証明書と、前記第1の秘密鍵に対応する第1の公開鍵と、前記第1の公開鍵の正当性を示し、外部の機関が有する第2の秘密鍵により生成された公開鍵署名データとを含む公開鍵証明書とを受信し、前記検証手段は、前記第2の秘密鍵に対応する第2の公開鍵を記憶している鍵記憶部と、前記署名データの有効期限が過ぎていると判断される場合に、前記第2の公開鍵を用いて、前記公開鍵証明書が正当であるか否かを検証する第1検証部と、前記公開鍵証明書が正当であると判断される場合に、前記第1の公開鍵を用いて前記検証鍵明書が正当であるか否かを検証する第2検証部と、前記検証鍵証明書が正当であると判断される場合に、前記署名データが正当であるか否かを検証する第3検証部とを備えるとしてもよい。
ここで、前記署名検証装置は、さらに、前記累積回数が前記所定回数に達していると判断される場合に、前記署名データを生成した前記署名生成装置を特定する特定情報を、外部装置へ送信する送信手段を備えるとしてもよい。
ここで、前記回数判断手段は、前記所定回数を記憶している回数記憶領域を有しており、前記署名検証装置は、さらに、前記署名生成装置から前記所定回数とは別の所定回数を受信し、前記回数記憶領域にて記憶されている前記所定回数を、受信した前記別の所定回数へと更新する更新手段を備えるとしてもよい。
また、本発明は、署名鍵を用いて署名を行う署名生成装置と、前記署名生成装置にて生成された署名データを検証する署名検証装置とからなる署名システムであって、前記署名生成装置は、前記署名鍵を記憶している鍵記憶手段と、前記署名鍵を用いて、メッセージデータと、前記署名鍵を用いて署名を行った累積回数とを含む署名対象データに署名を施して前記署名データを生成する署名生成手段と、前記署名データの生成時に、前記累積回数をカウントするカウンタ手段と、前記カウンタ手段にてカウントされた累積回数が所定回数に達しているか否かを判断する判断手段と、前記カウンタ手段にてカウントされた累積回数が前記所定回数に達していると判断される場合に、以後、前記署名鍵による署名を抑止する署名抑止手段と、前記署名対象データと、前記署名データとを含むデータ群を、前記署名検証装置へ送信する送信手段とを備え、前記署名検証装置は、前記署名生成装置から前記データ群を前記署名生成装置から受信する受信手段と、受信した前記データ群の前記署名対象データに含まれる前記累積回数が所定回数に達しているか否かを判断する回数判断手段と、前記回数判断手段にて前記累積回数が前記所定回数に達していると判断される場合に、前記署名データの検証を抑止する検証抑止手段とを備えることを特徴とする。
10 署名生成装置
20 署名検証装置
50 通信路
101 ユーザ署名生成鍵格納部
102 ユーザ証明書格納部
103 個数限定署名生成鍵格納部
104 個数限定証明書格納部
105 署名生成部
106 署名データセット生成部
107 カウンタ部
108 カウンタ判定部
109 個数限定鍵生成部
110 送信部
150 初期設定部
151 署名抑止部
201 CA公開鍵格納部
202 署名データセット格納部
203 署名検証部
204 受信部
205 表示部
1000 ディジタル署名システム
1010 署名生成装置
1020 署名検証装置
1030 署名監視サーバ
1040 センタ
1050 通信路
1101 ユーザ署名生成鍵格納部
1102 ユーザ証明書格納部
1103 個数限定署名生成鍵格納部
1104 個数限定証明書格納部
1105 署名生成部
1106 署名データセット生成部
1107 カウンタ部
1108 カウンタ判定部
1109 個数限定鍵生成部
1110 送信部
1111 時計部
1201 CA公開鍵格納部
1202 署名データセット格納部
1203 署名検証部
1204 受信部
1205 表示部
1206 カウンタ判定部
1207 時刻判定部
1208 時計部
1301 ログ格納部
1302 通信監視部
1303 署名データセット取得部
1304 署名データセット判定部
1305 送受信部
以下、本発明に係る第1の実施の形態としてのディジタル署名システム1について、図面を参照して説明する。
1.1 ディジタル署名システム1の概要
ディジタル署名システム1は、図1に示すように、署名生成装置10と、署名検証装置20と、通信路50とから構成されている。
署名検証装置20は、その署名データセットSSを受信し、受信した署名データセットSSがメッセージデータmの正しい署名であるかを検証する。署名検証装置20は、署名データセットSSが正しいと判定する場合には、署名データセットSSを受理し、署名データセットSSが不正と判定する場合には、署名データセットSSを拒否する。
署名生成装置10は、図1に示すように、ユーザ署名生成鍵格納部101と、ユーザ証明書格納部102と、個数限定署名生成鍵格納部103と、個数限定証明書格納部104と、署名生成部105と、署名データセット生成部106と、カウンタ部107と、カウンタ判定部108と、個数限定鍵生成部109と、送信部110とから構成される。
(1)ユーザ署名生成鍵格納部101
ユーザ署名生成鍵格納部101は、個数限定証明書CLを生成するために使用するユーザ署名生成鍵KUGを格納している。ユーザ署名生成鍵KUGは予め与えられているものとする。
なお、個数限定証明書には、個数限定署名検証鍵KLV及び署名データSKLVに加えて他のデータを含んでいてもよい。例えば、個数限定証明書を識別するための識別子を含んでもよい。署名データSKLVは、NTRUSign署名方式に基づいて生成される。NTRUSign署名方式については、非特許文献4に詳細が記述されており、公知の技術であるため、ここでの説明は省略する。
ユーザ証明書格納部102は、ユーザ署名生成鍵KUGに対応するユーザ証明書CUを格納している。ユーザ証明書CUは、ユーザ署名生成鍵に対応するユーザ署名検証鍵KUVと、証明書生成サーバCA(図示せず)の秘密鍵を用いてユーザ署名検証鍵KUVに署名を施した署名データSKUVからなる。署名データSKUVも、NTRUSign署名方式に基づいて生成される。また、ユーザ証明書CUもユーザ署名生成鍵KUGと同様に、予め与えられているものとする。なお、ユーザ証明書CUには、ユーザ署名検証鍵KUV及び署名データSKUVに加えて他のデータを含んでいてもよい。例えば、ユーザの識別子や証明書の期限などを含んでもよい。
個数限定署名生成鍵格納部103は、メッセージデータに対する署名データを生成するために使用する個数限定署名生成鍵KLGを格納するための領域を有している。
署名生成装置10は、個数限定署名生成鍵を生成し、生成した個数限定署名生成鍵を個数限定署名生成鍵格納部103へ格納する。
個数限定証明書格納部104は、個数限定署名生成鍵KLGに対応する個数限定証明書CLを格納するための領域を有している。
署名生成装置10は、個数限定証明書を生成し、生成した個数限定証明書を個数限定証明書格納部104へ格納する。
署名生成部105は、メッセージデータmの署名データSの生成、及び個数限定署名検証鍵KLVの署名データSKLVの生成を行う。
<署名データSを生成する場合>
署名生成部105は、署名データセット生成部106から、メッセージデータmの署名データの生成の指示を示す第1署名生成指示を受け取ると、個数限定署名生成鍵格納部103に格納されている個数限定署名生成鍵KLGを読み出し、読み出した個数限定署名生成鍵KLGを用いて、メッセージデータmに対する署名データSを生成、つまりメッセージデータmに署名を施して署名データSを生成する。
署名生成部105は、第1完了通知を署名データセット生成部106へ出力した後、カウントした値が所定値tcを超えているか否かの判定を指示するカウンタ判定指示をカウンタ判定部108へ出力する。
<署名データSKLVを生成する場合>
署名生成部105は、個数限定鍵生成部109からユーザ署名検証鍵KLVの署名データSKLVの生成の指示を示す第2署名生成指示を受け取ると、ユーザ署名生成鍵格納部101に格納されているユーザ署名生成鍵KUGを読み出し、読み出したユーザ署名生成鍵KUGを用いて、個数限定鍵生成部109にて生成された個数限定署名検証鍵KLVに対する署名データSKLVを生成、つまり個数限定署名検証鍵KLVに署名を施して署名データSKLVを生成する。なお、個数限定鍵生成部109の動作については後述する。
なお、署名データSKLVは、NTRUSign署名方式に基づいて生成される。
また、鍵更新時において、個数限定鍵生成部109にて個数限定署名検証鍵KLVNが生成された場合も、上記と同様の動作により、署名生成部105は、署名データSKLVNを生成する。このとき、署名生成部105は、個数限定鍵生成部109にて生成された個数限定署名検証鍵KLVNを、新たな個数限定署名検証鍵KLVとして、署名データSKLVNを生成する。
署名データセット生成部106は、ユーザによる操作によりメッセージデータmを受け付けると、個数限定証明書格納部104から個数限定証明書CLを、ユーザ証明書格納部102からユーザ証明書CUを、それぞれ読み出す。
署名データセット生成部106は、第1署名生成指示を署名生成部105へ出力し、その後、署名生成部105から第1完了通知を受け取ると、メッセージデータmと、署名生成部105にて生成されたメッセージデータmの署名データSと、読み出した個数限定証明書CLと、読み出したユーザ証明書CUとからなる署名データセットSSを生成する。
(7)カウンタ部107
カウンタ部107は、署名データSを生成した回数をカウントし、現在の署名データ生成回数を保持するカウンタを備える。
カウンタ部107は、署名生成部105にて署名データSが生成されると、カウンタ値cに1を加算し、加算結果を再度、カウンタ値cとして保持する。
これにより、カウンタ部107は、個数限定署名生成鍵格納部103に格納されている個数限定署名生成鍵KLGにより生成された署名データの個数をカウントすることができる。また、言い換えると、カウンタ部107は、個数限定署名生成鍵格納部103に格納されている個数限定署名生成鍵KLGの使用回数をカウントすることができる。
カウンタ判定部108は、しきい値tcを予め格納している。
カウンタ判定部108は、署名生成部105からカウンタ判定指示を受け取ると、カウンタ部107のカウンタ値cが、しきい値tc以上であるか否かを判断する。
しきい値tc以上であると判断する場合には、カウンタ判定部108は、個数限定署名生成鍵及び個数限定署名検証鍵の更新を指示する鍵更新指示を個数限定鍵生成部109へ出力する。
個数限定鍵生成部109は、個数限定署名生成鍵及び個数限定証明書を生成する。
個数限定鍵生成部109は、図1に示すように、初期設定部150と署名抑止部151とを有している。
<初期設定部150>
初期設定部150は、個数限定署名生成鍵及び個数限定証明書を初期設定として個数限定署名生成鍵格納部103及び個数限定証明書格納部104に格納する場合に、個数限定署名生成鍵及び個数限定証明書を生成する。
個数限定鍵生成部109の初期設定部150は、ユーザの操作により、初期設定を行う旨の初期設定指示を受け付けると、NTRUSign署名方式の秘密鍵及び公開鍵を生成する。
初期設定部150は、生成した秘密鍵を個数限定署名生成鍵KLGとし、生成した公開鍵を個数限定署名検証鍵KLVとし、個数限定署名生成鍵KLGを個数限定署名生成鍵格納部103に格納する。
初期設定部150は、生成した個数限定証明書CLを個数限定証明書格納部104に格納する。
<署名抑止部151>
署名抑止部151は、上記の「課題を解決するための手段」にて記述した署名抑止手段に対応しており、カウンタ値cがしきい値tcを超えた場合に、その時点で個数限定署名生成鍵格納部103に格納されている秘密鍵を用いた署名の抑止を行う。
以下に、署名抑止部151の動作について説明する。
署名抑止部151は、カウンタ判定部108から、鍵更新指示を受け取ると、NTRUSign署名方式の鍵生成により、新たな個数限定署名生成鍵KLGNを秘密鍵として、新たな個数限定署名検証鍵KLVNを公開鍵として生成する。
(10)送信部110
送信部110は、署名データセットSSを、通信路50を介して署名検証装置20へ送信する。
1.3 署名検証装置20の構成
署名検証装置20は、図1に示すように、CA公開鍵格納部201と、署名データセット格納部202と、署名検証部203と、受信部204と、表示部205とから構成される。
CA公開鍵格納部201は、ユーザ証明書CUを検証するための証明書生成サーバCA(図示せず)が有する秘密鍵に対応する公開鍵(署名検証鍵)KPCを格納している。
(2)署名データセット格納部202
署名データセット格納部202は、署名データセットSSを格納するための領域を有している。
署名検証部203は、署名データセットSSに含まれる署名データS、個数限定証明書CLに含まれる署名データSKLV、ユーザ証明書CUに含まれる署名データSKUVを検証する。
以下に、検証の動作を示す。
署名検証部203は、署名データSKUVがユーザ署名検証鍵KUVの正しい署名であるかを、CA公開鍵格納部に格納されているCA公開鍵KPCを用いて検証する。
署名データSKUVが正しい署名であると判断する場合には、署名検証部203は、署名データSKLVが個数限定署名検証鍵KLVの正しい署名であるかを、ユーザ署名検証鍵KUVを用いて検証する。
署名データSが正しい署名であると判断する場合には、署名検証部203は、受信した署名データセットSSを受理する旨のメッセージ「OK」を表示部205へ出力する。
(4)受信部204
受信部204は、署名生成装置10から送信された署名データセットSSを、通信路50を介して受信する。
(5)表示部205
表示部205は、署名検証部203から署名検証の検証結果に係るメッセージを受け取ると、受け取ったメッセージを表示する。
署名生成装置10の動作は、個数限定署名生成鍵及び個数限定証明書を初期設定する「初期設定処理」と、署名生成を行う「署名生成処理」と、カウンタ値をチェックし、個数限定署名生成鍵及び個数限定証明書を生成する「カウンタ値チェック処理」の動作からなる。以下に、それぞれの動作について説明する。
初期設定処理の動作について、図2にて示す流れ図を用いて説明する。
個数限定鍵生成部109の初期設定部150は、ユーザの操作により、初期設定指示を受け付けると、NTRUSign署名方式の鍵生成により、秘密鍵及び公開鍵を生成し(ステップS5)、生成した秘密鍵を個数限定署名生成鍵KLG、公開鍵を個数限定署名検証鍵KLVとし、個数限定署名生成鍵KLGを個数限定署名生成鍵格納部103に格納する(ステップS10)。
署名生成部105は、第2完了通知を個数限定鍵生成部109の初期設定部150へ出力する。個数限定鍵生成部109の初期設定部150は、署名生成部105から第2完了通知を受け取ると、個数限定署名検証鍵KLVと、署名生成部105にて生成した署名データSKLVからなる個数限定証明書CLを生成し(ステップS20)、生成した個数限定証明書CLを個数限定証明書格納部104に格納する(ステップS25)。
(2)署名生成処理
署名生成処理の動作について、図3にて示す流れ図を用いて説明する。
署名データセット生成部106は、個数限定証明書格納部104から個数限定証明書CLを、ユーザ証明書格納部102からユーザ証明書CUを、それぞれ読み出し、第1署名生成指示を署名生成部105へ出力する。署名生成部105は、署名データセット生成部106から、第1署名生成指示を受け取ると、個数限定署名生成鍵格納部103に格納されている個数限定署名生成鍵KLGを読み出し、読み出した個数限定署名生成鍵KLGを用いて、メッセージデータmに対する署名データSを生成する(ステップS105)。カウンタ部107は、カウンタ値cに1を加算し、加算結果を新たなカウンタ値cとする(ステップS110)。
(3)カウンタ値チェック処理
カウンタ値チェック処理の動作について、図4にて示す流れ図を用いて説明する。なお、署名生成部105は、署名生成処理のステップS105の実行後、カウンタ判定指示をカウンタ判定部108へ出力しているものとする。
しきい値tc以上でないと判断する場合には(ステップS200おける「NO」)、カウンタ値チェック処理は終了する。
署名生成部105は、第2完了通知を個数限定鍵生成部109の署名抑止部151へ出力する。個数限定鍵生成部109の署名抑止部151は、第2完了通知を署名生成部105から受け取ると、個数限定署名検証鍵KLVNと、署名生成部105にて生成された署名データSKLVNとからなる個数限定証明書CLNを生成する(ステップS220)。このとき、署名抑止部151は、個数限定署名検証鍵KLVNを新たな個数限定署名検証鍵KLVとし、署名データSKLVNを新たな署名データSKLVとして、個数限定証明書CLNを生成する。
1.5 署名検証装置20の動作
署名検証装置20は、署名生成装置10より署名データセットSSを通信路50を介して受信し、その署名データセットSSを検証する。以下において、署名検証装置20にて行われる署名検証処理について、図5にて示す流れ図を用いて説明する。
受信部204は、受信した署名データセットSSを署名データセット格納部202に格納する(ステップS305)。
受信部204は、検証開始指示を署名検証部203へ出力する。署名検証部203は、受信部204から検証開始指示を受け取る。署名検証部203は、署名データセットSSの中のユーザ証明書CUに含まれるユーザ署名検証鍵KUVとその署名データSKUVに対し、署名データSKUVがユーザ署名検証鍵KUVの正しい署名であるかを、CA公開鍵格納部に格納されているCA公開鍵KPCを用いて検証する(ステップS310)。
署名データSが正しい署名であると判断する場合には(ステップS320における「OK」)、署名検証部203は、表示部205を介して、メッセージ「OK」を表示する(ステップS325)。
第1の実施の形態におけるディジタル署名システム1の全体の動作を以下に示す。
ディジタル署名システム1の署名生成装置10は、「署名生成・検証時」に入力であるメッセージデータmに対して、署名データセットSSを生成し、署名検証装置20へ送信する。署名検証装置20は、署名データセットSSを検証し、その検証結果により、署名データセットを受理する、または、拒否するかを決定する。また、「初期設定時」に署名生成装置10は、個数限定署名生成鍵及び個数限定証明書を初期化し、「カウンタ値チェック時」に、カウンタ値をチェックし、その結果に基づき個数限定署名生成鍵及び個数限定証明書を更新する。
第1の実施の形態におけるディジタル署名システム1では、一つの個数限定署名生成鍵で生成する署名データの個数をカウンタ部107にてカウントし、カウンタ判定部108にてカウンタ値cがしきい値tcを超えていれば、個数限定署名生成鍵を更新している。そのため、一つの個数限定署名生成鍵で生成する署名データの総数をtc以内に抑えることができる。tcはNTRUSign署名方式の攻撃法であるTranscript attackが成功しない署名の個数であるため、ディジタル署名システム1に対するTranscript attackは成功せず、安全である。
以下、本発明に係る第2の実施の形態としてのディジタル署名システム1000について、図面を参照して説明する。
2.1 ディジタル署名システム1000の概要
ディジタル署名システム1000は、図6に示すように、署名生成装置1010と、署名検証装置1020と、署名監視サーバ1030と、センタ1040と、通信路1050とから構成されている。
署名検証装置1020は、通信路1050を介して署名生成装置1010から、署名データセットSSを受信し、受信した署名データセットSSを検証する。
センタ1040は、不正な署名データセットSSが検出された旨のメッセージを受信する。
署名生成装置1010は、図6に示すように、ユーザ署名生成鍵格納部1101と、ユーザ証明書格納部1102と、個数限定署名生成鍵格納部1103と、個数限定証明書格納部1104と、署名生成部1105と、署名データセット生成部1106と、カウンタ部1107と、カウンタ判定部1108と、個数限定鍵生成部1109と、送信部1110と、時計部1111とから構成される。
なお、署名生成装置1010を構成するユーザ署名生成鍵格納部1101、ユーザ証明書格納部1102と、個数限定署名生成鍵格納部1103、個数限定証明書格納部1104、カウンタ部1107、カウンタ判定部1108、個数限定鍵生成部1109、及び送信部1110は、それぞれ、第1の実施の形態にて示すユーザ署名生成鍵格納部101、ユーザ証明書格納部102と、個数限定署名生成鍵格納部103、個数限定証明書格納部104、カウンタ部107、カウンタ判定部108、個数限定鍵生成部109、及び送信部110と同様の動作を行うため、ここでの説明は省略する。
時計部1111は、日時を計時し、現在の時刻を示す時刻情報TGをもつ。時計部1111は、例えば、秒単位に計時を行い、時刻情報は、1970年1月1日0時0分0秒からの現在時刻までの秒数である。
(2)署名データセット生成部1106
署名データセット生成部1106は、ユーザによる操作によりメッセージデータmを受け付けると、メッセージデータmと、カウンタ値cと、時刻情報TGとからなる署名対象データDの署名データの生成を指示する第1署名生成指示を署名生成部1105へ出力する。
(3)署名生成部1105
署名生成部1105は、署名対象データDの署名データSの生成、及び個数限定署名検証鍵KLVの署名データSKLVの生成を行う。
署名生成部1105は、署名データセット生成部1106から、第1署名生成指示を受け取ると、カウンタ部1107から保持されているカウンタ値cを、時計部1111から現在の時刻を示す時刻情報TGを、それぞれ取得する。
署名データセット生成部1106は、メッセージデータmと、カウンタ値cと、時刻情報TGとからなる署名対象データDを生成する。
署名生成部1105は、署名データSの生成が完了すると、その旨を示す第1完了通知を署名データセット生成部1106へ出力する。
<署名データSKLVを生成する場合>
署名生成部1105は、個数限定鍵生成部1109からユーザ署名検証鍵KLVの署名データSKLVの生成の指示を示す第2署名生成指示を受け取ると、ユーザ署名生成鍵格納部1101に格納されているユーザ署名生成鍵KUGを読み出し、読み出したユーザ署名生成鍵KUGを用いて、個数限定鍵生成部1109にて生成された個数限定署名検証鍵KLVに対する署名データSKLVを生成、つまり個数限定署名検証鍵KLVに署名を施して署名データSKLVを生成する。
なお、署名データSKLVは、NTRUSign署名方式に基づいて生成される。
また、個数限定鍵生成部1109にて個数限定署名検証鍵KLVNが生成された場合も、上記と同様の動作により、署名データSKLVNを生成する。
署名検証装置1020は、図6に示すように、CA公開鍵格納部1201と、署名データセット格納部1202と、署名検証部1203と、受信部1204と、表示部1205と、カウンタ判定部1206と、時刻判定部1207と、時計部1208とから構成される。
(1)時計部1208
時計部1208は、日時を計時し、現在の時刻を示す時刻情報TGをもつ。時計部1208は、例えば、秒単位に計時を行い、時刻情報は、1970年1月1日0時0分0秒からの現在時刻までの秒数である。
カウンタ判定部1206は、しきい値tcを予め格納している。
カウンタ判定部1206は、署名検証部1203からカウンタ値の判定を行う旨のカウンタ判定指示を受け取ると、書名データセットSSに含まれるカウンタ値cを取得し、取得したカウンタ値cが、しきい値tc以上であるか否かを判断する。
しきい値tc以上でないと判断する場合には、カウンタ判定部1206は、その旨を示す第2判定結果通知を署名検証部1203へ出力する。
(3)時刻判定部1207
時刻判定部1207は、差分しきい値TTを予め格納している。
差分TV−TGが差分しきい値TTを超えていると判断する場合には、時刻判定部1207は、その旨を示す第3判断結果通知を署名検証部1203へ出力する。
(4)署名検証部1203
署名検証部1203は、署名データセットSSに含まれる署名データS、個数限定証明書CLに含まれる署名データSKLV、ユーザ証明書CUに含まれる署名データSKUVを検証する。
署名検証部1203は、受信部1204から検証を開始する旨の検証開始指示を受け取る。
署名検証部1203は、カウンタ判定指示をカウンタ判定部1206へ出力し、その後、カウンタ判定部1206から判定結果を受け取る。
カウンタ値cの判定結果として第2判定結果を受け取ると、署名検証部1203は、時刻判定指示を時刻判定部1207へ出力し、その後、時刻判定部1207から判定結果を受け取る。
時刻判定の結果として第4判定結果を受け取ると、署名検証部1203は、署名データSKUVがユーザ署名検証鍵KUVの正しい署名であるかを、CA公開鍵格納部に格納されているCA公開鍵KPCを用いて検証する。
署名データSKLVが正しい署名であると判断する場合には、署名検証部1203は、署名データSがメッセージデータmの正しい署名であるかを、個数限定署名検証鍵KLVを用いて検証する。
各署名検証のうち何れかの署名検証において、署名データが正しくない署名であると判断する場合には、署名検証部1203は、表示部1205を介して、受信した署名データセットSSを拒否する旨のメッセージ「NG」を表示する。
署名監視サーバ1030は、図6に示すように、ログ格納部1301と、通信監視部1302と、署名データセット取得部1303と、署名データセット判定部1304と、送受信部1305とを備える。
(1)ログ格納部1301
ログ格納部1301は、1以上の署名データセットを格納するための領域を有している。
通信監視部1302は、送受信部1305を介して、通信路1050を流れる署名データセットSSを監視する。
(3)署名データセット取得部1303
署名データセット取得部1303は、通信監視部1302にて署名データセットSSが通信路1050に流れていることが検出されると、送受信部1305及び通信監視部1302を介して、通信路1050に流れている署名データセットを取得する。
格納されていないと判断する場合には、署名データセット取得部1303は、取得した署名データセットSSをログ格納部1301に格納する。
格納されていると判断する場合には、署名データセット取得部1303は、取得した書名データセットに含まれるカウンタ値cの正当性を判定する旨の判定指示を署名データセット判定部1304へ出力する。署名データセット取得部1303は、署名データセット判定部1304から判定結果を受け取る。
判定結果としてカウンタ値は不正な値であることを示す不正通知を受け取ると、署名データセット取得部1303は、取得した署名データセットSSに含まれるユーザ証明書と、不正な署名データセットを検出した旨の検出メッセージとを、送受信部1305を介してセンタへ送信する。
署名データセット判定部1304は、署名データセット取得部1303から判定指示を受け取ると、取得した署名データセットSSに含まれる個数限定署名検証鍵とカウンタ値のそれぞれと同一のものを含む署名データセットSSFがログ格納部1301に存在するか否かを判断する。
存在しないと判断する場合には、署名データセット判定部1304は、正当通知を署名データセット取得部1303へ出力する。
(5)送受信部1305
送受信部1305は、通信路1050に流れている署名データセットを受信し、受信した署名データセットを、通信監視部1302を介して署名データセット取得部1303へ出力する。
2.5 センタ1040
センタ1040は、署名監視サーバ1030から通信路1050を介して、検出メッセージとユーザ証明書とを受信する。
署名生成装置1010の動作は、個数限定署名生成鍵及び個数限定証明書を初期設定する「初期設定処理」と、署名生成を行う「署名生成処理」と、カウンタ値をチェックし、個数限定署名生成鍵及び個数限定証明書を生成する「カウンタ値チェック処理」の動作からなる。「初期設定処理」と、「カウンタ値チェック処理」との動作は、第1の実施の形態にて示す動作と同様であるため、説明は省略する。
署名生成処理の動作について、図7にて示す流れ図を用いて説明する。
署名データセット生成部1106は、ユーザによる操作によりメッセージデータmを受け付ける(ステップS1000)。
署名データセット生成部1106は、署名対象データDの署名データの生成を指示する第1署名生成指示を署名生成部1105へ出力する。署名生成部1105は、署名データセット生成部1106から、第1署名生成指示を受け取ると、カウンタ部1107から保持されているカウンタ値cを、時計部1111から現在の時刻を示す時刻情報TGを、それぞれ取得する。署名データセット生成部1106は、メッセージデータmと、カウンタ値cと、時刻情報TGとからなる署名対象データDを生成する(ステップS1005)。
2.7 署名検証装置1020の動作
署名検証装置1020は、署名生成装置1010より署名データセットSSを通信路1050を介して受信し、その署名データセットSSを検証する。以下において、署名検証装置1020にて行われる署名検証処理について、図8にて示す流れ図を用いて説明する。
受信部1204は、受信した署名データセットSSを署名データセット格納部1202に格納する(ステップS1105)。
受信部1204は、検証開始指示を署名検証部1203へ出力する。署名検証部1203は、受信部1204から検証開始指示を受け取ると、カウンタ判定指示をカウンタ判定部1206へ出力する。カウンタ判定部1206は、カウンタ判定指示を受け取ると、書名データセットSSに含まれるカウンタ値cを取得し、取得したカウンタ値cが、しきい値tc以上であるか否かを判断する(ステップS1110)。
署名データSが正しい署名であると判断する場合には(ステップS1130における「OK」)、署名検証部1203は、表示部1205を介して、メッセージ「OK」を表示する(ステップS1135)。
署名監視サーバ1030は、通信路1050に署名データセットが流れているかを監視し、流れている場合はその署名データセットSSを入手して、既に格納している署名データセットと比較する。以下において、署名監視サーバ1030にて行われる監視処理について、図9にて示す流れ図を用いて説明する。
通信監視部1302にて署名データセットSSが通信路1050に流れていることが検出されない場合には(ステップS1200における「NO」)、監視処理を終了する。
通信監視部1302にて署名データセットSSが通信路1050に流れていることが検出されると(ステップS1200における「YES」)、署名データセット取得部1303は、送受信部1305及び通信監視部1302を介して、通信路1050に流れている署名データセットを取得する(ステップS1205)。
格納されていないと判断する場合には(ステップS1210における「NO」)、署名データセット取得部1303は、取得した署名データセットSSをログ格納部1301に格納する(ステップS1215)。
第2の実施の形態におけるディジタル署名システム1000の全体の動作を以下に示す。
ディジタル署名システム1000の署名生成装置1010は、「署名生成・検証時」に入力であるメッセージデータmに対して、署名データセットSSを生成し、署名検証装置1020へ送信する。署名検証装置1020は、署名データセットSSを検証し、その検証結果により、署名データセットSSを受理する、または、拒否するかを決定する。また、「初期設定時」に署名生成装置1010は、個数限定署名生成鍵及び個数限定証明書を初期化し、「カウンタ値チェック時」に、カウンタ値をチェックし、その結果に基づき個数限定署名生成鍵及び個数限定証明書を更新する。さらに、署名監視サーバ1030は、通信路1050に署名データセットSSが流れているかを監視し、署名データセットSSと流れている場合は以前の署名データセットとを比較する。
第2の実施の形態におけるディジタル署名システム1000は、第1の実施の形態と同様に、一つの個数限定署名生成鍵で生成する署名データの総数をtc以内に抑えることができる。
さらに、第2の実施の形態では、カウンタ値を署名対象データに含ませており、署名検証装置1020で検証している。そのため、署名生成装置1010がカウンタ値を超えて署名データを生成していることを署名検証装置1020で確認することが可能になる。
さらに、署名生成装置1010及び署名検証装置1020で時計をもち、カウンタ値を使用した時刻を示す時刻情報を署名対象データに含ませることにより、同じカウンタ値を使いまわして、同じカウンタ値及び同じ個数限定署名生成鍵を用いて2度署名データを生成することによる、署名回数のカウントし損ないを防ぐことができる。
3.変形例
上記に説明した第1及び第2の実施の形態は、本発明の実施の一例であり、本発明はこれら実施の形態に何ら限定されるものではなく、その旨を逸脱しない範囲において種々なる態様で実施し得るものである。例えば、以下のような場合も本発明に含まれる。
このとき、署名検証装置は、図8に示すステップS1115を、当該装置の時計部から取得した時刻情報TVが時刻情報TGTを超えているか否かを判断するように変更する。超えていると判断する場合には、署名検証装置は、ステップS1140を行い、超えていないと判断する場合には、署名検証装置は、ステップS1120を行う。
(4)第1及び第2の実施の形態において、署名生成装置は、カウンタ値cがtcを超えていれば個数限定署名生成鍵を更新、つまり記憶している個数限定署名生成鍵に新たに生成した個数限定署名生成鍵を上書きするとしているが、これに限定されない。署名生成装置は、カウンタ値cがtcを超えていれば、それ以後は署名データを生成しない、つまり、その署名生成装置は使用しないとしてもよい。このとき、ユーザ証明書及びユーザ署名生成鍵はなくてもよく、その場合は、個数限定証明書は証明書生成サーバCAの署名生成鍵により生成された個数限定署名検証鍵の署名データを含んでもよい。
このとき、署名生成装置は、使用個数限定署名生成鍵情報格納部に格納されている使用個数限定署名生成鍵情報にて示される個数限定署名生成鍵を用いて署名データを生成し、生成した署名データと、生成に用いた個数限定署名生成鍵に対応する個数限定証明書と、ユーザ証明書とからなる署名データセットを生成する。署名生成装置は、生成した署名データセットを署名検証装置へ送信する。
(6)第1及び第2の実施の形態では、署名方式としてNTRUSignを使用しているが、これを他の署名方式、例えばRSA署名方式、RSA−PSS署名方式や楕円DSA署名方式としてもよい。
署名生成装置のカウンタ判定部は、定期的に、カウンタ値のチェックを行ってもよい。または、ユーザの指示を受け付けることにより、カウンタ判定部108は、カウンタ値のチェックを行ってもよい。
センタは、受信したユーザ証明書を格納し、格納された1以上のユーザ証明書に含まれるユーザ署名検証鍵からなる無効化リストを生成しする。センタは、生成した無効化リストを署名検証装置へ送信する。
例えば、署名生成装置は、さらに、ユーザの操作によりしきい値tc’を受け付けると、当該装置のカウンタ判定部にて格納しているしきい値tcを、受け付けたしきい値tc’へと上書きして更新することで、しきい値を可変とすることができる。
(10)第2の実施の形態において、署名生成装置のカウンタ判定部が予め格納しているしきい値は、固定としたが、これに限定されない。しきい値は可変であってもよい。
このときの動作の一例を以下に記述する。署名生成装置は、さらに、ユーザの操作によりしきい値tc’を受け付けると、当該署名生成装置のカウンタ判定部にて格納しているしきい値tcを、受け付けたしきい値tc’へと上書きして更新する。署名生成装置は、受け付けたしきい値tc’を、署名検証装置へ送信する。署名検証装置は、署名生成装置から、しきい値tc’を受信すると、当該署名検証装置のカウンタ判定部に格納しているしきい値を、受信したしきい値tc’へと上書きして更新する。
(11)第1の実施の形態において、署名生成装置は、カウンタ値に初期値として0を設定したが、これに限定されない。署名生成装置は、カウンタ値の初期値として、1を設定してもよい。このとき、署名生成装置は、カウンタ値cが、しきい値tcを超えているか否かを判断し、超えていると判断する場合に、個数減限定署名生成鍵及び個数限定証明書を更新する。
署名生成装置は、署名対象データDを生成する前に、カウンタ値の値に1を加算してもよい。つまり、署名生成装置は、図7にて示す署名生成処理において、ステップS1000を実行した後、ステップS1015を実行し、その後、ステップS1005、S1010、S1020及びS1025の順に実行してもよい。
また、このとき、署名生成装置は、カウンタ値のチェック処理を、署名データを生成する前に行ってもよい。この場合、カウンタ値が所定値以上と判断される場合には、署名生成装置は、新たな個数限定署名生成鍵及び新たな個数限定証明書を生成し、生成した新たな個数限定署名生成鍵を用いて、メッセージデータの署名データを生成する。そして、署名生成装置は、メッセージデータと、生成した署名データと、生成した新たな個数限定証明書と、ユーザ証明書とからなる署名データセットを生成する。
署名生成装置は、メッセージデータmに対する署名データSを生成してもよい。このとき、署名生成装置は、メッセージデータmと、カウンタ値cと、時刻情報TGとからなるデータDと、署名データSと、個数限定証明書CLと、ユーザ証明書CUとを署名検証装置へ送信する。
署名生成装置は、メッセージデータmと、カウンタ値cとからなる署名対象データD、署名対象データDに対する署名データS、個数限定証明書CL及びユーザ証明書CUを署名検証装置へ送信してもよい。このとき、署名検証装置にて行われる署名検証処理では、図8にて示すステップS1115が省略される。
(16)第1の実施の形態において、署名生成装置は、ユーザの操作によりメッセージデータを受け付けるとしたが、これに限定されない。
また、第2の実施の形態においても同様に、署名生成装置は、メッセージデータを外部の装置から受け取ってもよい。
(17)第1の実施の形態において、署名生成装置のカウンタ部は、保持しているカウンタ値に1加算したが、これに限定されない。署名生成装置のカウンタ部は、他の数値を加算してもよいし、乗算してもよい。乗算する場合には、カウンタ値の初期値は、例えば、1とする。
(18)これらの実施の形態及び変形例の組合せであってもよい。
<その他の変形例>
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
4.まとめ
本発明は、メッセージデータを含む署名対象データに対する署名データを生成する署名生成装置であって、前記署名データを生成するために使用する個数限定署名生成鍵を格納する個数限定署名生成鍵格納部と、前記個数限定署名生成鍵格納部に格納された前記個数限定署名生成鍵を用いて、前記署名対象データに対する前記署名データを生成する署名生成部と、前記署名生成部において、前記個数限定署名生成鍵を用いて前記署名データを生成した回数を数えるカウンタ部と、前記カウンタ部のカウンタ値を判定する第1のカウンタ判定部とを備え、前記第1のカウンタ判定部は、前記カウンタ値が予め与えられた所定値より大きい場合に、前記署名生成部において、前記署名データを生成しないよう制御することを特徴とする。
ここで、前記第1のカウンタ判定部は、前記カウンタ値が予め与えられた所定値より大きい場合に、前記鍵生成部を用いて前記個数限定署名生成鍵を生成し、前記個数限定署名生成鍵格納部に格納されている以前の前記個数限定署名生成鍵に上書きして更新するよう制御するとしてもよい。
ここで、前記署名生成装置はさらに、時刻情報を保持する第1の時計を備え、前記署名対象データはさらに、前記第1の時計が保持する前記時刻情報を含むとしてもよい。
ここで、前記署名検証装置はさらに、第2の時刻情報を保持する第2の時計と、時刻情報を判定する時刻判定部とを備え、前記署名対象データはさらに、第1の時刻情報を含み、前記時刻判定部は、第1の時刻情報と第2の時刻情報を比較し、第2の時刻情報から第1の時刻情報を減算した時刻差分が予め与えられた所定値より大きい場合に、前記署名検証部において署名検証を行わないよう制御するとしてもよい。
また、本発明は、メッセージデータを含む署名対象データに対する署名データを生成する署名生成方法であって、前記署名データを生成するために使用する個数限定署名生成鍵を格納する個数限定署名生成鍵格納ステップと、前記個数限定署名生成鍵格納ステップで格納された前記個数限定署名生成鍵を用いて、前記署名対象データに対する前記署名データを生成する署名生成ステップと、前記署名生成ステップにおいて、前記個数限定署名生成鍵を用いて前記署名データを生成した回数を数えるカウンタステップと、前記カウンタステップで数えたカウンタ値を判定する第1のカウンタ判定ステップとを備え、前記第1のカウンタ判定ステップは、前記カウンタ値が予め与えられた所定値より大きい場合に、前記署名生成ステップにおいて、前記署名データを生成しないよう制御することを特徴とする。
また、上記にて示したディジタル署名システムを構成する各装置は、電器機器製造産業において、経営的に、また継続的及び反復的に、製造し、販売することができる。
上記で提案された方式は、データを暗号化する守秘暗号方式であったが、その後、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の秘密鍵により生成された検証鍵署名データとを含む検証鍵証明書を記憶している検証鍵証明書記憶手段と、前記第1の秘密鍵に対応する公開鍵と、前記公開鍵の正当性を示し、外部の機関が有する第2の秘密鍵により生成された公開鍵署名データとを含む公開鍵証明書を記憶している公開鍵証明書記憶手段と、前記署名対象データと、前記署名生成手段にて生成された前記署名データと、前記検証鍵証明書と、前記公開鍵証明書とを、前記署名データの検証を行う署名検証装置へ送信する送信手段とを備えるとしてもよい。
ここで、前記署名抑止手段は、前記カウンタ手段にてカウントされた累積回数が前記所定回数に達していると判断される場合に、さらに、前記別の署名鍵に対応し、前記検証鍵とは別の検証鍵を生成し、生成した前記別の検証鍵に対して、前記第1の秘密鍵を用いて、前記検証鍵署名データとは別の検証鍵署名データを生成し、前記別の検証鍵と前記検証鍵署名データとを含む、前記検証鍵証明書とは別の検証鍵証明書を生成し、生成した前記別の検証鍵証明書を、前記公開鍵証明書記憶手段に記憶されている前記検証鍵証明書に対して上書きするとしてもよい。
ここで、前記署名生成手段は、前記カウンタ手段にてカウントされた累積回数を取得し、前記署名対象データは、メッセージデータと取得した累積回数とを含むとしてもよい。
ここで、前記署名生成装置は、さらに、時刻を計時する時計手段を備え、前記署名生成手段は、前記時計手段を用いて、署名データの有効期限の判断基準となる時刻情報を取得し、前記署名対象データは、メッセージデータと取得した前記時刻情報とを含むとしてもよい。
ここで、前記判断手段は、前記所定回数を記憶している回数記憶部を有しており、前記署名生成装置は、さらに、前記回数記憶部にて記憶されている前記所定回数を別の所定回数へと更新する更新手段を備えるとしてもよい。
また、本発明は、署名鍵を用いて署名を行う署名生成装置にて生成された署名データを検証する署名検証装置であって、前記署名生成装置から、メッセージデータと前記署名生成装置が前記署名鍵を用いて署名を行った累積回数とを含む署名対象データと、前記署名対象データに対する署名データとを、前記署名生成装置から受信する受信手段と、受信した前記署名対象データに含まれる前記累積回数が所定回数に達しているか否かを判断する回数判断手段と、前記累積回数が前記所定回数に達していると判断される場合に、前記署名データの検証を抑止する検証抑止手段とを備えることを特徴とする。
ここで、前記署名対象データは、さらに、前記署名データの有効期限の判断基準となる第1時刻情報を含み、前記署名検証装置は、さらに、時刻を計時する時計手段と、前記累積回数が前記所定回数に達していないと判断される場合に、前記時計手段を用いて現在時刻を示す第2時刻情報を取得し、前記第1時刻情報と取得した第2時刻情報とを用いて、前記署名データの有効期限が過ぎているか否かを判断する期限判断手段と、前記署名データの有効期限が過ぎていないと判断される場合に、前記署名データを検証する検証手段とを備え、前記検証抑止手段は、さらに、前記署名データの有効期限が過ぎていると判断される場合に、前記署名データの検証を抑止するとしてもよい。
ここで、前記署名データは、前記署名生成装置が生成した署名鍵を用いて生成され、前記受信手段は、さらに、前記署名鍵に対応する検証鍵と、前記検証鍵の正当性を示し、第1の秘密鍵により生成された検証鍵署名データとを含む検証鍵証明書と、前記第1の秘密鍵に対応する第1の公開鍵と、前記第1の公開鍵の正当性を示し、外部の機関が有する第2の秘密鍵により生成された公開鍵署名データとを含む公開鍵証明書とを受信し、前記検証手段は、前記第2の秘密鍵に対応する第2の公開鍵を記憶している鍵記憶部と、前記署名データの有効期限が過ぎていると判断される場合に、前記第2の公開鍵を用いて、前記公開鍵証明書が正当であるか否かを検証する第1検証部と、前記公開鍵証明書が正当であると判断される場合に、前記第1の公開鍵を用いて前記検証鍵明書が正当であるか否かを検証する第2検証部と、前記検証鍵証明書が正当であると判断される場合に、前記署名データが正当であるか否かを検証する第3検証部とを備えるとしてもよい。
ここで、前記署名検証装置は、さらに、前記累積回数が前記所定回数に達していると判断される場合に、前記署名データを生成した前記署名生成装置を特定する特定情報を、外部装置へ送信する送信手段を備えるとしてもよい。
ここで、前記回数判断手段は、前記所定回数を記憶している回数記憶領域を有しており、前記署名検証装置は、さらに、前記署名生成装置から前記所定回数とは別の所定回数を受信し、前記回数記憶領域にて記憶されている前記所定回数を、受信した前記別の所定回数へと更新する更新手段を備えるとしてもよい。
また、本発明は、署名鍵を用いて署名を行う署名生成装置と、前記署名生成装置にて生成された署名データを検証する署名検証装置とからなる署名システムであって、前記署名生成装置は、前記署名鍵を記憶している鍵記憶手段と、前記署名鍵を用いて、メッセージデータと、前記署名鍵を用いて署名を行った累積回数とを含む署名対象データに署名を施して前記署名データを生成する署名生成手段と、前記署名データの生成時に、前記累積回数をカウントするカウンタ手段と、前記カウンタ手段にてカウントされた累積回数が所定回数に達しているか否かを判断する判断手段と、前記カウンタ手段にてカウントされた累積回数が前記所定回数に達していると判断される場合に、以後、前記署名鍵による署名を抑止する署名抑止手段と、前記署名対象データと、前記署名データとを含むデータ群を、前記署名検証装置へ送信する送信手段とを備え、前記署名検証装置は、前記署名生成装置から前記データ群を前記署名生成装置から受信する受信手段と、受信した前記データ群の前記署名対象データに含まれる前記累積回数が所定回数に達しているか否かを判断する回数判断手段と、前記回数判断手段にて前記累積回数が前記所定回数に達していると判断される場合に、前記署名データの検証を抑止する検証抑止手段とを備えることを特徴とする。
以下、本発明に係る第1の実施の形態としてのディジタル署名システム1について、図面を参照して説明する。
1.1 ディジタル署名システム1の概要
ディジタル署名システム1は、図1に示すように、署名生成装置10と、署名検証装置20と、通信路50とから構成されている。
署名検証装置20は、その署名データセットSSを受信し、受信した署名データセットSSがメッセージデータmの正しい署名であるかを検証する。署名検証装置20は、署名データセットSSが正しいと判定する場合には、署名データセットSSを受理し、署名データセットSSが不正と判定する場合には、署名データセットSSを拒否する。
署名生成装置10は、図1に示すように、ユーザ署名生成鍵格納部101と、ユーザ証明書格納部102と、個数限定署名生成鍵格納部103と、個数限定証明書格納部104と、署名生成部105と、署名データセット生成部106と、カウンタ部107と、カウンタ判定部108と、個数限定鍵生成部109と、送信部110とから構成される。
(1)ユーザ署名生成鍵格納部101
ユーザ署名生成鍵格納部101は、個数限定証明書CLを生成するために使用するユーザ署名生成鍵KUGを格納している。ユーザ署名生成鍵KUGは予め与えられているものとする。
なお、個数限定証明書には、個数限定署名検証鍵KLV及び署名データSKLVに加えて他のデータを含んでいてもよい。例えば、個数限定証明書を識別するための識別子を含んでもよい。署名データSKLVは、NTRUSign署名方式に基づいて生成される。NTRUSign署名方式については、非特許文献4に詳細が記述されており、公知の技術であるため、ここでの説明は省略する。
ユーザ証明書格納部102は、ユーザ署名生成鍵KUGに対応するユーザ証明書CUを格納している。ユーザ証明書CUは、ユーザ署名生成鍵に対応するユーザ署名検証鍵KUVと、証明書生成サーバCA(図示せず)の秘密鍵を用いてユーザ署名検証鍵KUVに署名を施した署名データSKUVからなる。署名データSKUVも、NTRUSign署名方式に基づいて生成される。また、ユーザ証明書CUもユーザ署名生成鍵KUGと同様に、予め与えられているものとする。なお、ユーザ証明書CUには、ユーザ署名検証鍵KUV及び署名データSKUVに加えて他のデータを含んでいてもよい。例えば、ユーザの識別子や証明書の期限などを含んでもよい。
個数限定署名生成鍵格納部103は、メッセージデータに対する署名データを生成するために使用する個数限定署名生成鍵KLGを格納するための領域を有している。
署名生成装置10は、個数限定署名生成鍵を生成し、生成した個数限定署名生成鍵を個数限定署名生成鍵格納部103へ格納する。
個数限定証明書格納部104は、個数限定署名生成鍵KLGに対応する個数限定証明書CLを格納するための領域を有している。
署名生成装置10は、個数限定証明書を生成し、生成した個数限定証明書を個数限定証明書格納部104へ格納する。
署名生成部105は、メッセージデータmの署名データSの生成、及び個数限定署名検証鍵KLVの署名データSKLVの生成を行う。
<署名データSを生成する場合>
署名生成部105は、署名データセット生成部106から、メッセージデータmの署名データの生成の指示を示す第1署名生成指示を受け取ると、個数限定署名生成鍵格納部103に格納されている個数限定署名生成鍵KLGを読み出し、読み出した個数限定署名生成鍵KLGを用いて、メッセージデータmに対する署名データSを生成、つまりメッセージデータmに署名を施して署名データSを生成する。
署名生成部105は、第1完了通知を署名データセット生成部106へ出力した後、カウントした値が所定値tcを超えているか否かの判定を指示するカウンタ判定指示をカウンタ判定部108へ出力する。
<署名データSKLVを生成する場合>
署名生成部105は、個数限定鍵生成部109からユーザ署名検証鍵KLVの署名データSKLVの生成の指示を示す第2署名生成指示を受け取ると、ユーザ署名生成鍵格納部101に格納されているユーザ署名生成鍵KUGを読み出し、読み出したユーザ署名生成鍵KUGを用いて、個数限定鍵生成部109にて生成された個数限定署名検証鍵KLVに対する署名データSKLVを生成、つまり個数限定署名検証鍵KLVに署名を施して署名データSKLVを生成する。なお、個数限定鍵生成部109の動作については後述する。
なお、署名データSKLVは、NTRUSign署名方式に基づいて生成される。
また、鍵更新時において、個数限定鍵生成部109にて個数限定署名検証鍵KLVNが生成された場合も、上記と同様の動作により、署名生成部105は、署名データSKLVNを生成する。このとき、署名生成部105は、個数限定鍵生成部109にて生成された個数限定署名検証鍵KLVNを、新たな個数限定署名検証鍵KLVとして、署名データSKLVNを生成する。
署名データセット生成部106は、ユーザによる操作によりメッセージデータmを受け付けると、個数限定証明書格納部104から個数限定証明書CLを、ユーザ証明書格納部102からユーザ証明書CUを、それぞれ読み出す。
署名データセット生成部106は、第1署名生成指示を署名生成部105へ出力し、その後、署名生成部105から第1完了通知を受け取ると、メッセージデータmと、署名生成部105にて生成されたメッセージデータmの署名データSと、読み出した個数限定証明書CLと、読み出したユーザ証明書CUとからなる署名データセットSSを生成する。
(7)カウンタ部107
カウンタ部107は、署名データSを生成した回数をカウントし、現在の署名データ生成回数を保持するカウンタを備える。
カウンタ部107は、署名生成部105にて署名データSが生成されると、カウンタ値cに1を加算し、加算結果を再度、カウンタ値cとして保持する。
これにより、カウンタ部107は、個数限定署名生成鍵格納部103に格納されている個数限定署名生成鍵KLGにより生成された署名データの個数をカウントすることができる。また、言い換えると、カウンタ部107は、個数限定署名生成鍵格納部103に格納されている個数限定署名生成鍵KLGの使用回数をカウントすることができる。
カウンタ判定部108は、しきい値tcを予め格納している。
カウンタ判定部108は、署名生成部105からカウンタ判定指示を受け取ると、カウンタ部107のカウンタ値cが、しきい値tc以上であるか否かを判断する。
しきい値tc以上であると判断する場合には、カウンタ判定部108は、個数限定署名生成鍵及び個数限定署名検証鍵の更新を指示する鍵更新指示を個数限定鍵生成部109へ出力する。
個数限定鍵生成部109は、個数限定署名生成鍵及び個数限定証明書を生成する。
個数限定鍵生成部109は、図1に示すように、初期設定部150と署名抑止部151とを有している。
<初期設定部150>
初期設定部150は、個数限定署名生成鍵及び個数限定証明書を初期設定として個数限定署名生成鍵格納部103及び個数限定証明書格納部104に格納する場合に、個数限定署名生成鍵及び個数限定証明書を生成する。
個数限定鍵生成部109の初期設定部150は、ユーザの操作により、初期設定を行う旨の初期設定指示を受け付けると、NTRUSign署名方式の秘密鍵及び公開鍵を生成する。
初期設定部150は、生成した秘密鍵を個数限定署名生成鍵KLGとし、生成した公開鍵を個数限定署名検証鍵KLVとし、個数限定署名生成鍵KLGを個数限定署名生成鍵格納部103に格納する。
初期設定部150は、生成した個数限定証明書CLを個数限定証明書格納部104に格納する。
<署名抑止部151>
署名抑止部151は、上記の「課題を解決するための手段」にて記述した署名抑止手段に対応しており、カウンタ値cがしきい値tcを超えた場合に、その時点で個数限定署名生成鍵格納部103に格納されている秘密鍵を用いた署名の抑止を行う。
以下に、署名抑止部151の動作について説明する。
署名抑止部151は、カウンタ判定部108から、鍵更新指示を受け取ると、NTRUSign署名方式の鍵生成により、新たな個数限定署名生成鍵KLGNを秘密鍵として、新たな個数限定署名検証鍵KLVNを公開鍵として生成する。
(10)送信部110
送信部110は、署名データセットSSを、通信路50を介して署名検証装置20へ送信する。
1.3 署名検証装置20の構成
署名検証装置20は、図1に示すように、CA公開鍵格納部201と、署名データセット格納部202と、署名検証部203と、受信部204と、表示部205とから構成される。
CA公開鍵格納部201は、ユーザ証明書CUを検証するための証明書生成サーバCA(図示せず)が有する秘密鍵に対応する公開鍵(署名検証鍵)KPCを格納している。
(2)署名データセット格納部202
署名データセット格納部202は、署名データセットSSを格納するための領域を有している。
署名検証部203は、署名データセットSSに含まれる署名データS、個数限定証明書CLに含まれる署名データSKLV、ユーザ証明書CUに含まれる署名データSKUVを検証する。
以下に、検証の動作を示す。
署名検証部203は、署名データSKUVがユーザ署名検証鍵KUVの正しい署名であるかを、CA公開鍵格納部に格納されているCA公開鍵KPCを用いて検証する。
署名データSKUVが正しい署名であると判断する場合には、署名検証部203は、署名データSKLVが個数限定署名検証鍵KLVの正しい署名であるかを、ユーザ署名検証鍵KUVを用いて検証する。
署名データSが正しい署名であると判断する場合には、署名検証部203は、受信した署名データセットSSを受理する旨のメッセージ「OK」を表示部205へ出力する。
(4)受信部204
受信部204は、署名生成装置10から送信された署名データセットSSを、通信路50を介して受信する。
(5)表示部205
表示部205は、署名検証部203から署名検証の検証結果に係るメッセージを受け取ると、受け取ったメッセージを表示する。
署名生成装置10の動作は、個数限定署名生成鍵及び個数限定証明書を初期設定する「初期設定処理」と、署名生成を行う「署名生成処理」と、カウンタ値をチェックし、個数限定署名生成鍵及び個数限定証明書を生成する「カウンタ値チェック処理」の動作からなる。以下に、それぞれの動作について説明する。
初期設定処理の動作について、図2にて示す流れ図を用いて説明する。
個数限定鍵生成部109の初期設定部150は、ユーザの操作により、初期設定指示を受け付けると、NTRUSign署名方式の鍵生成により、秘密鍵及び公開鍵を生成し(ステップS5)、生成した秘密鍵を個数限定署名生成鍵KLG、公開鍵を個数限定署名検証鍵KLVとし、個数限定署名生成鍵KLGを個数限定署名生成鍵格納部103に格納する(ステップS10)。
署名生成部105は、第2完了通知を個数限定鍵生成部109の初期設定部150へ出力する。個数限定鍵生成部109の初期設定部150は、署名生成部105から第2完了通知を受け取ると、個数限定署名検証鍵KLVと、署名生成部105にて生成した署名データSKLVからなる個数限定証明書CLを生成し(ステップS20)、生成した個数限定証明書CLを個数限定証明書格納部104に格納する(ステップS25)。
(2)署名生成処理
署名生成処理の動作について、図3にて示す流れ図を用いて説明する。
署名データセット生成部106は、個数限定証明書格納部104から個数限定証明書CLを、ユーザ証明書格納部102からユーザ証明書CUを、それぞれ読み出し、第1署名生成指示を署名生成部105へ出力する。署名生成部105は、署名データセット生成部106から、第1署名生成指示を受け取ると、個数限定署名生成鍵格納部103に格納されている個数限定署名生成鍵KLGを読み出し、読み出した個数限定署名生成鍵KLGを用いて、メッセージデータmに対する署名データSを生成する(ステップS105)。カウンタ部107は、カウンタ値cに1を加算し、加算結果を新たなカウンタ値cとする(ステップS110)。
(3)カウンタ値チェック処理
カウンタ値チェック処理の動作について、図4にて示す流れ図を用いて説明する。なお、署名生成部105は、署名生成処理のステップS105の実行後、カウンタ判定指示をカウンタ判定部108へ出力しているものとする。
しきい値tc以上でないと判断する場合には(ステップS200おける「NO」)、カウンタ値チェック処理は終了する。
署名生成部105は、第2完了通知を個数限定鍵生成部109の署名抑止部151へ出力する。個数限定鍵生成部109の署名抑止部151は、第2完了通知を署名生成部105から受け取ると、個数限定署名検証鍵KLVNと、署名生成部105にて生成された署名データSKLVNとからなる個数限定証明書CLNを生成する(ステップS220)。このとき、署名抑止部151は、個数限定署名検証鍵KLVNを新たな個数限定署名検証鍵KLVとし、署名データSKLVNを新たな署名データSKLVとして、個数限定証明書CLNを生成する。
1.5 署名検証装置20の動作
署名検証装置20は、署名生成装置10より署名データセットSSを通信路50を介して受信し、その署名データセットSSを検証する。以下において、署名検証装置20にて行われる署名検証処理について、図5にて示す流れ図を用いて説明する。
受信部204は、受信した署名データセットSSを署名データセット格納部202に格納する(ステップS305)。
受信部204は、検証開始指示を署名検証部203へ出力する。署名検証部203は、受信部204から検証開始指示を受け取る。署名検証部203は、署名データセットSSの中のユーザ証明書CUに含まれるユーザ署名検証鍵KUVとその署名データSKUVに対し、署名データSKUVがユーザ署名検証鍵KUVの正しい署名であるかを、CA公開鍵格納部に格納されているCA公開鍵KPCを用いて検証する(ステップS310)。
署名データSが正しい署名であると判断する場合には(ステップS320における「OK」)、署名検証部203は、表示部205を介して、メッセージ「OK」を表示する(ステップS325)。
第1の実施の形態におけるディジタル署名システム1の全体の動作を以下に示す。
ディジタル署名システム1の署名生成装置10は、「署名生成・検証時」に入力であるメッセージデータmに対して、署名データセットSSを生成し、署名検証装置20へ送信する。署名検証装置20は、署名データセットSSを検証し、その検証結果により、署名データセットを受理する、または、拒否するかを決定する。また、「初期設定時」に署名生成装置10は、個数限定署名生成鍵及び個数限定証明書を初期化し、「カウンタ値チェック時」に、カウンタ値をチェックし、その結果に基づき個数限定署名生成鍵及び個数限定証明書を更新する。
第1の実施の形態におけるディジタル署名システム1では、一つの個数限定署名生成鍵で生成する署名データの個数をカウンタ部107にてカウントし、カウンタ判定部108にてカウンタ値cがしきい値tcを超えていれば、個数限定署名生成鍵を更新している。そのため、一つの個数限定署名生成鍵で生成する署名データの総数をtc以内に抑えることができる。tcはNTRUSign署名方式の攻撃法であるTranscript attackが成功しない署名の個数であるため、ディジタル署名システム1に対するTranscript attackは成功せず、安全である。
以下、本発明に係る第2の実施の形態としてのディジタル署名システム1000について、図面を参照して説明する。
2.1 ディジタル署名システム1000の概要
ディジタル署名システム1000は、図6に示すように、署名生成装置1010と、署名検証装置1020と、署名監視サーバ1030と、センタ1040と、通信路1050とから構成されている。
署名検証装置1020は、通信路1050を介して署名生成装置1010から、署名データセットSSを受信し、受信した署名データセットSSを検証する。
センタ1040は、不正な署名データセットSSが検出された旨のメッセージを受信する。
署名生成装置1010は、図6に示すように、ユーザ署名生成鍵格納部1101と、ユーザ証明書格納部1102と、個数限定署名生成鍵格納部1103と、個数限定証明書格納部1104と、署名生成部1105と、署名データセット生成部1106と、カウンタ部1107と、カウンタ判定部1108と、個数限定鍵生成部1109と、送信部1110と、時計部1111とから構成される。
なお、署名生成装置1010を構成するユーザ署名生成鍵格納部1101、ユーザ証明書格納部1102と、個数限定署名生成鍵格納部1103、個数限定証明書格納部1104、カウンタ部1107、カウンタ判定部1108、個数限定鍵生成部1109、及び送信部1110は、それぞれ、第1の実施の形態にて示すユーザ署名生成鍵格納部101、ユーザ証明書格納部102と、個数限定署名生成鍵格納部103、個数限定証明書格納部104、カウンタ部107、カウンタ判定部108、個数限定鍵生成部109、及び送信部110と同様の動作を行うため、ここでの説明は省略する。
時計部1111は、日時を計時し、現在の時刻を示す時刻情報TGをもつ。時計部1111は、例えば、秒単位に計時を行い、時刻情報は、1970年1月1日0時0分0秒からの現在時刻までの秒数である。
(2)署名データセット生成部1106
署名データセット生成部1106は、ユーザによる操作によりメッセージデータmを受け付けると、メッセージデータmと、カウンタ値cと、時刻情報TGとからなる署名対象データDの署名データの生成を指示する第1署名生成指示を署名生成部1105へ出力する。
(3)署名生成部1105
署名生成部1105は、署名対象データDの署名データSの生成、及び個数限定署名検証鍵KLVの署名データSKLVの生成を行う。
署名生成部1105は、署名データセット生成部1106から、第1署名生成指示を受け取ると、カウンタ部1107から保持されているカウンタ値cを、時計部1111から現在の時刻を示す時刻情報TGを、それぞれ取得する。
署名データセット生成部1106は、メッセージデータmと、カウンタ値cと、時刻情報TGとからなる署名対象データDを生成する。
署名生成部1105は、署名データSの生成が完了すると、その旨を示す第1完了通知を署名データセット生成部1106へ出力する。
<署名データSKLVを生成する場合>
署名生成部1105は、個数限定鍵生成部1109からユーザ署名検証鍵KLVの署名データSKLVの生成の指示を示す第2署名生成指示を受け取ると、ユーザ署名生成鍵格納部1101に格納されているユーザ署名生成鍵KUGを読み出し、読み出したユーザ署名生成鍵KUGを用いて、個数限定鍵生成部1109にて生成された個数限定署名検証鍵KLVに対する署名データSKLVを生成、つまり個数限定署名検証鍵KLVに署名を施して署名データSKLVを生成する。
なお、署名データSKLVは、NTRUSign署名方式に基づいて生成される。
また、個数限定鍵生成部1109にて個数限定署名検証鍵KLVNが生成された場合も、上記と同様の動作により、署名データSKLVNを生成する。
署名検証装置1020は、図6に示すように、CA公開鍵格納部1201と、署名データセット格納部1202と、署名検証部1203と、受信部1204と、表示部1205と、カウンタ判定部1206と、時刻判定部1207と、時計部1208とから構成される。
(1)時計部1208
時計部1208は、日時を計時し、現在の時刻を示す時刻情報TGをもつ。時計部1208は、例えば、秒単位に計時を行い、時刻情報は、1970年1月1日0時0分0秒からの現在時刻までの秒数である。
カウンタ判定部1206は、しきい値tcを予め格納している。
カウンタ判定部1206は、署名検証部1203からカウンタ値の判定を行う旨のカウンタ判定指示を受け取ると、書名データセットSSに含まれるカウンタ値cを取得し、取得したカウンタ値cが、しきい値tc以上であるか否かを判断する。
しきい値tc以上でないと判断する場合には、カウンタ判定部1206は、その旨を示す第2判定結果通知を署名検証部1203へ出力する。
(3)時刻判定部1207
時刻判定部1207は、差分しきい値TTを予め格納している。
差分TV−TGが差分しきい値TTを超えていると判断する場合には、時刻判定部1207は、その旨を示す第3判断結果通知を署名検証部1203へ出力する。
(4)署名検証部1203
署名検証部1203は、署名データセットSSに含まれる署名データS、個数限定証明書CLに含まれる署名データSKLV、ユーザ証明書CUに含まれる署名データSKUVを検証する。
署名検証部1203は、受信部1204から検証を開始する旨の検証開始指示を受け取る。
署名検証部1203は、カウンタ判定指示をカウンタ判定部1206へ出力し、その後、カウンタ判定部1206から判定結果を受け取る。
カウンタ値cの判定結果として第2判定結果を受け取ると、署名検証部1203は、時刻判定指示を時刻判定部1207へ出力し、その後、時刻判定部1207から判定結果を受け取る。
時刻判定の結果として第4判定結果を受け取ると、署名検証部1203は、署名データSKUVがユーザ署名検証鍵KUVの正しい署名であるかを、CA公開鍵格納部に格納されているCA公開鍵KPCを用いて検証する。
署名データSKLVが正しい署名であると判断する場合には、署名検証部1203は、署名データSがメッセージデータmの正しい署名であるかを、個数限定署名検証鍵KLVを用いて検証する。
各署名検証のうち何れかの署名検証において、署名データが正しくない署名であると判断する場合には、署名検証部1203は、表示部1205を介して、受信した署名データセットSSを拒否する旨のメッセージ「NG」を表示する。
署名監視サーバ1030は、図6に示すように、ログ格納部1301と、通信監視部1302と、署名データセット取得部1303と、署名データセット判定部1304と、送受信部1305とを備える。
(1)ログ格納部1301
ログ格納部1301は、1以上の署名データセットを格納するための領域を有している。
通信監視部1302は、送受信部1305を介して、通信路1050を流れる署名データセットSSを監視する。
(3)署名データセット取得部1303
署名データセット取得部1303は、通信監視部1302にて署名データセットSSが通信路1050に流れていることが検出されると、送受信部1305及び通信監視部1302を介して、通信路1050に流れている署名データセットを取得する。
格納されていないと判断する場合には、署名データセット取得部1303は、取得した署名データセットSSをログ格納部1301に格納する。
格納されていると判断する場合には、署名データセット取得部1303は、取得した書名データセットに含まれるカウンタ値cの正当性を判定する旨の判定指示を署名データセット判定部1304へ出力する。署名データセット取得部1303は、署名データセット判定部1304から判定結果を受け取る。
判定結果としてカウンタ値は不正な値であることを示す不正通知を受け取ると、署名データセット取得部1303は、取得した署名データセットSSに含まれるユーザ証明書と、不正な署名データセットを検出した旨の検出メッセージとを、送受信部1305を介してセンタへ送信する。
署名データセット判定部1304は、署名データセット取得部1303から判定指示を受け取ると、取得した署名データセットSSに含まれる個数限定署名検証鍵とカウンタ値のそれぞれと同一のものを含む署名データセットSSFがログ格納部1301に存在するか否かを判断する。
存在しないと判断する場合には、署名データセット判定部1304は、正当通知を署名データセット取得部1303へ出力する。
(5)送受信部1305
送受信部1305は、通信路1050に流れている署名データセットを受信し、受信した署名データセットを、通信監視部1302を介して署名データセット取得部1303へ出力する。
2.5 センタ1040
センタ1040は、署名監視サーバ1030から通信路1050を介して、検出メッセージとユーザ証明書とを受信する。
署名生成装置1010の動作は、個数限定署名生成鍵及び個数限定証明書を初期設定する「初期設定処理」と、署名生成を行う「署名生成処理」と、カウンタ値をチェックし、個数限定署名生成鍵及び個数限定証明書を生成する「カウンタ値チェック処理」の動作からなる。「初期設定処理」と、「カウンタ値チェック処理」との動作は、第1の実施の形態にて示す動作と同様であるため、説明は省略する。
署名生成処理の動作について、図7にて示す流れ図を用いて説明する。
署名データセット生成部1106は、ユーザによる操作によりメッセージデータmを受け付ける(ステップS1000)。
署名データセット生成部1106は、署名対象データDの署名データの生成を指示する第1署名生成指示を署名生成部1105へ出力する。署名生成部1105は、署名データセット生成部1106から、第1署名生成指示を受け取ると、カウンタ部1107から保持されているカウンタ値cを、時計部1111から現在の時刻を示す時刻情報TGを、それぞれ取得する。署名データセット生成部1106は、メッセージデータmと、カウンタ値cと、時刻情報TGとからなる署名対象データDを生成する(ステップS1005)。
2.7 署名検証装置1020の動作
署名検証装置1020は、署名生成装置1010より署名データセットSSを通信路1050を介して受信し、その署名データセットSSを検証する。以下において、署名検証装置1020にて行われる署名検証処理について、図8にて示す流れ図を用いて説明する。
受信部1204は、受信した署名データセットSSを署名データセット格納部1202に格納する(ステップS1105)。
受信部1204は、検証開始指示を署名検証部1203へ出力する。署名検証部1203は、受信部1204から検証開始指示を受け取ると、カウンタ判定指示をカウンタ判定部1206へ出力する。カウンタ判定部1206は、カウンタ判定指示を受け取ると、書名データセットSSに含まれるカウンタ値cを取得し、取得したカウンタ値cが、しきい値tc以上であるか否かを判断する(ステップS1110)。
署名データSが正しい署名であると判断する場合には(ステップS1130における「OK」)、署名検証部1203は、表示部1205を介して、メッセージ「OK」を表示する(ステップS1135)。
署名監視サーバ1030は、通信路1050に署名データセットが流れているかを監視し、流れている場合はその署名データセットSSを入手して、既に格納している署名データセットと比較する。以下において、署名監視サーバ1030にて行われる監視処理について、図9にて示す流れ図を用いて説明する。
通信監視部1302にて署名データセットSSが通信路1050に流れていることが検出されない場合には(ステップS1200における「NO」)、監視処理を終了する。
通信監視部1302にて署名データセットSSが通信路1050に流れていることが検出されると(ステップS1200における「YES」)、署名データセット取得部1303は、送受信部1305及び通信監視部1302を介して、通信路1050に流れている署名データセットを取得する(ステップS1205)。
格納されていないと判断する場合には(ステップS1210における「NO」)、署名データセット取得部1303は、取得した署名データセットSSをログ格納部1301に格納する(ステップS1215)。
第2の実施の形態におけるディジタル署名システム1000の全体の動作を以下に示す。
ディジタル署名システム1000の署名生成装置1010は、「署名生成・検証時」に入力であるメッセージデータmに対して、署名データセットSSを生成し、署名検証装置1020へ送信する。署名検証装置1020は、署名データセットSSを検証し、その検証結果により、署名データセットSSを受理する、または、拒否するかを決定する。また、「初期設定時」に署名生成装置1010は、個数限定署名生成鍵及び個数限定証明書を初期化し、「カウンタ値チェック時」に、カウンタ値をチェックし、その結果に基づき個数限定署名生成鍵及び個数限定証明書を更新する。さらに、署名監視サーバ1030は、通信路1050に署名データセットSSが流れているかを監視し、署名データセットSSと流れている場合は以前の署名データセットとを比較する。
第2の実施の形態におけるディジタル署名システム1000は、第1の実施の形態と同様に、一つの個数限定署名生成鍵で生成する署名データの総数をtc以内に抑えることができる。
さらに、第2の実施の形態では、カウンタ値を署名対象データに含ませており、署名検証装置1020で検証している。そのため、署名生成装置1010がカウンタ値を超えて署名データを生成していることを署名検証装置1020で確認することが可能になる。
さらに、署名生成装置1010及び署名検証装置1020で時計をもち、カウンタ値を使用した時刻を示す時刻情報を署名対象データに含ませることにより、同じカウンタ値を使いまわして、同じカウンタ値及び同じ個数限定署名生成鍵を用いて2度署名データを生成することによる、署名回数のカウントし損ないを防ぐことができる。
3.変形例
上記に説明した第1及び第2の実施の形態は、本発明の実施の一例であり、本発明はこれら実施の形態に何ら限定されるものではなく、その旨を逸脱しない範囲において種々なる態様で実施し得るものである。例えば、以下のような場合も本発明に含まれる。
このとき、署名検証装置は、図8に示すステップS1115を、当該装置の時計部から取得した時刻情報TVが時刻情報TGTを超えているか否かを判断するように変更する。超えていると判断する場合には、署名検証装置は、ステップS1140を行い、超えていないと判断する場合には、署名検証装置は、ステップS1120を行う。
(4)第1及び第2の実施の形態において、署名生成装置は、カウンタ値cがtcを超えていれば個数限定署名生成鍵を更新、つまり記憶している個数限定署名生成鍵に新たに生成した個数限定署名生成鍵を上書きするとしているが、これに限定されない。署名生成装置は、カウンタ値cがtcを超えていれば、それ以後は署名データを生成しない、つまり、その署名生成装置は使用しないとしてもよい。このとき、ユーザ証明書及びユーザ署名生成鍵はなくてもよく、その場合は、個数限定証明書は証明書生成サーバCAの署名生成鍵により生成された個数限定署名検証鍵の署名データを含んでもよい。
このとき、署名生成装置は、使用個数限定署名生成鍵情報格納部に格納されている使用個数限定署名生成鍵情報にて示される個数限定署名生成鍵を用いて署名データを生成し、生成した署名データと、生成に用いた個数限定署名生成鍵に対応する個数限定証明書と、ユーザ証明書とからなる署名データセットを生成する。署名生成装置は、生成した署名データセットを署名検証装置へ送信する。
(6)第1及び第2の実施の形態では、署名方式としてNTRUSignを使用しているが、これを他の署名方式、例えばRSA署名方式、RSA−PSS署名方式や楕円DSA署名方式としてもよい。
署名生成装置のカウンタ判定部は、定期的に、カウンタ値のチェックを行ってもよい。または、ユーザの指示を受け付けることにより、カウンタ判定部108は、カウンタ値のチェックを行ってもよい。
センタは、受信したユーザ証明書を格納し、格納された1以上のユーザ証明書に含まれるユーザ署名検証鍵からなる無効化リストを生成しする。センタは、生成した無効化リストを署名検証装置へ送信する。
例えば、署名生成装置は、さらに、ユーザの操作によりしきい値tc’を受け付けると、当該装置のカウンタ判定部にて格納しているしきい値tcを、受け付けたしきい値tc’へと上書きして更新することで、しきい値を可変とすることができる。
(10)第2の実施の形態において、署名生成装置のカウンタ判定部が予め格納しているしきい値は、固定としたが、これに限定されない。しきい値は可変であってもよい。
このときの動作の一例を以下に記述する。署名生成装置は、さらに、ユーザの操作によりしきい値tc’を受け付けると、当該署名生成装置のカウンタ判定部にて格納しているしきい値tcを、受け付けたしきい値tc’へと上書きして更新する。署名生成装置は、受け付けたしきい値tc’を、署名検証装置へ送信する。署名検証装置は、署名生成装置から、しきい値tc’を受信すると、当該署名検証装置のカウンタ判定部に格納しているしきい値を、受信したしきい値tc’へと上書きして更新する。
(11)第1の実施の形態において、署名生成装置は、カウンタ値に初期値として0を設定したが、これに限定されない。署名生成装置は、カウンタ値の初期値として、1を設定してもよい。このとき、署名生成装置は、カウンタ値cが、しきい値tcを超えているか否かを判断し、超えていると判断する場合に、個数減限定署名生成鍵及び個数限定証明書を更新する。
署名生成装置は、署名対象データDを生成する前に、カウンタ値の値に1を加算してもよい。つまり、署名生成装置は、図7にて示す署名生成処理において、ステップS1000を実行した後、ステップS1015を実行し、その後、ステップS1005、S1010、S1020及びS1025の順に実行してもよい。
また、このとき、署名生成装置は、カウンタ値のチェック処理を、署名データを生成する前に行ってもよい。この場合、カウンタ値が所定値以上と判断される場合には、署名生成装置は、新たな個数限定署名生成鍵及び新たな個数限定証明書を生成し、生成した新たな個数限定署名生成鍵を用いて、メッセージデータの署名データを生成する。そして、署名生成装置は、メッセージデータと、生成した署名データと、生成した新たな個数限定証明書と、ユーザ証明書とからなる署名データセットを生成する。
署名生成装置は、メッセージデータmに対する署名データSを生成してもよい。このとき、署名生成装置は、メッセージデータmと、カウンタ値cと、時刻情報TGとからなるデータDと、署名データSと、個数限定証明書CLと、ユーザ証明書CUとを署名検証装置へ送信する。
署名生成装置は、メッセージデータmと、カウンタ値cとからなる署名対象データD、署名対象データDに対する署名データS、個数限定証明書CL及びユーザ証明書CUを署名検証装置へ送信してもよい。このとき、署名検証装置にて行われる署名検証処理では、図8にて示すステップS1115が省略される。
(16)第1の実施の形態において、署名生成装置は、ユーザの操作によりメッセージデータを受け付けるとしたが、これに限定されない。
また、第2の実施の形態においても同様に、署名生成装置は、メッセージデータを外部の装置から受け取ってもよい。
(17)第1の実施の形態において、署名生成装置のカウンタ部は、保持しているカウンタ値に1加算したが、これに限定されない。署名生成装置のカウンタ部は、他の数値を加算してもよいし、乗算してもよい。乗算する場合には、カウンタ値の初期値は、例えば、1とする。
(18)これらの実施の形態及び変形例の組合せであってもよい。
<その他の変形例>
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
4.まとめ
本発明は、メッセージデータを含む署名対象データに対する署名データを生成する署名生成装置であって、前記署名データを生成するために使用する個数限定署名生成鍵を格納する個数限定署名生成鍵格納部と、前記個数限定署名生成鍵格納部に格納された前記個数限定署名生成鍵を用いて、前記署名対象データに対する前記署名データを生成する署名生成部と、前記署名生成部において、前記個数限定署名生成鍵を用いて前記署名データを生成した回数を数えるカウンタ部と、前記カウンタ部のカウンタ値を判定する第1のカウンタ判定部とを備え、前記第1のカウンタ判定部は、前記カウンタ値が予め与えられた所定値より大きい場合に、前記署名生成部において、前記署名データを生成しないよう制御することを特徴とする。
ここで、前記第1のカウンタ判定部は、前記カウンタ値が予め与えられた所定値より大きい場合に、前記鍵生成部を用いて前記個数限定署名生成鍵を生成し、前記個数限定署名生成鍵格納部に格納されている以前の前記個数限定署名生成鍵に上書きして更新するよう制御するとしてもよい。
ここで、前記署名生成装置はさらに、時刻情報を保持する第1の時計を備え、前記署名対象データはさらに、前記第1の時計が保持する前記時刻情報を含むとしてもよい。
ここで、前記署名検証装置はさらに、第2の時刻情報を保持する第2の時計と、時刻情報を判定する時刻判定部とを備え、前記署名対象データはさらに、第1の時刻情報を含み、前記時刻判定部は、第1の時刻情報と第2の時刻情報を比較し、第2の時刻情報から第1の時刻情報を減算した時刻差分が予め与えられた所定値より大きい場合に、前記署名検証部において署名検証を行わないよう制御するとしてもよい。
また、本発明は、メッセージデータを含む署名対象データに対する署名データを生成する署名生成方法であって、前記署名データを生成するために使用する個数限定署名生成鍵を格納する個数限定署名生成鍵格納ステップと、前記個数限定署名生成鍵格納ステップで格納された前記個数限定署名生成鍵を用いて、前記署名対象データに対する前記署名データを生成する署名生成ステップと、前記署名生成ステップにおいて、前記個数限定署名生成鍵を用いて前記署名データを生成した回数を数えるカウンタステップと、前記カウンタステップで数えたカウンタ値を判定する第1のカウンタ判定ステップとを備え、前記第1のカウンタ判定ステップは、前記カウンタ値が予め与えられた所定値より大きい場合に、前記署名生成ステップにおいて、前記署名データを生成しないよう制御することを特徴とする。
また、上記にて示したディジタル署名システムを構成する各装置は、電器機器製造産業において、経営的に、また継続的及び反復的に、製造し、販売することができる。
10 署名生成装置
20 署名検証装置
50 通信路
101 ユーザ署名生成鍵格納部
102 ユーザ証明書格納部
103 個数限定署名生成鍵格納部
104 個数限定証明書格納部
105 署名生成部
106 署名データセット生成部
107 カウンタ部
108 カウンタ判定部
109 個数限定鍵生成部
110 送信部
150 初期設定部
151 署名抑止部
201 CA公開鍵格納部
202 署名データセット格納部
203 署名検証部
204 受信部
205 表示部
1000 ディジタル署名システム
1010 署名生成装置
1020 署名検証装置
1030 署名監視サーバ
1040 センタ
1050 通信路
1101 ユーザ署名生成鍵格納部
1102 ユーザ証明書格納部
1103 個数限定署名生成鍵格納部
1104 個数限定証明書格納部
1105 署名生成部
1106 署名データセット生成部
1107 カウンタ部
1108 カウンタ判定部
1109 個数限定鍵生成部
1110 送信部
1111 時計部
1201 CA公開鍵格納部
1202 署名データセット格納部
1203 署名検証部
1204 受信部
1205 表示部
1206 カウンタ判定部
1207 時刻判定部
1208 時計部
1301 ログ格納部
1302 通信監視部
1303 署名データセット取得部
1304 署名データセット判定部
1305 送受信部
Claims (24)
- 署名鍵を用いて署名を行う署名生成装置であって、
前記署名鍵を記憶している鍵記憶手段と、
前記署名鍵を用いて、署名対象データに署名を施して、署名データを生成する署名生成手段と、
前記署名データの生成時に、前記署名鍵を用いて署名を行った累積回数をカウントするカウンタ手段と、
前記カウンタ手段にてカウントされた累積回数が所定回数に達しているか否かを判断する判断手段と、
前記カウンタ手段にてカウントされた累積回数が前記所定回数に達していると判断される場合に、以後、前記署名鍵による署名を抑止する署名抑止手段と
を備えることを特徴とする署名生成装置。 - 前記署名抑止手段は、
前記カウンタ手段にてカウントされた累積回数が前記所定回数に達していると判断される場合に、前記署名鍵とは別の署名鍵を生成し、生成した前記別の署名鍵を、前記鍵記憶手段にて記憶されている前記署名鍵に対して上書きすることにより、前記署名鍵による署名を抑止する
ことを特徴とする請求項1に記載の署名生成装置。 - 前記署名生成装置は、さらに、
前記署名鍵に対応する検証鍵と、前記検証鍵の正当性を示し、第1の秘密鍵により生成された検証鍵署名データとを含む検証鍵証明書を記憶している検証鍵証明書記憶手段と、
前記第1の秘密鍵に対応する公開鍵と、前記公開鍵の正当性を示し、外部の機関が有する第2の秘密鍵により生成された公開鍵署名データとを含む公開鍵証明書を記憶している公開鍵証明書記憶手段と、
前記署名対象データと、前記署名生成手段にて生成された前記署名データと、前記検証鍵証明書と、前記公開鍵証明書とを、前記署名データの検証を行う署名検証装置へ送信する送信手段と
を備えることを特徴とする請求項2に記載の署名生成装置。 - 前記署名抑止手段は、前記カウンタ手段にてカウントされた累積回数が前記所定回数に達していると判断される場合に、さらに、
前記別の署名鍵に対応し、前記検証鍵とは別の検証鍵を生成し、生成した前記別の検証鍵に対して、前記第1の秘密鍵を用いて、前記検証鍵署名データとは別の検証鍵署名データを生成し、前記別の検証鍵と前記検証鍵署名データとを含む、前記検証鍵証明書とは別の検証鍵証明書を生成し、生成した前記別の検証鍵証明書を、前記公開鍵証明書記憶手段に記憶されている前記検証鍵証明書に対して上書きする
ことを特徴とする請求項3に記載の署名生成装置。 - 前記署名生成装置は、さらに、
前記署名鍵を示す第1鍵情報を記憶している情報記憶手段を備え、
前記署名生成手段は、前記記憶手段にて記憶されている第1鍵情報に基づいて、前記鍵記憶手段から前記署名鍵を取得し、取得した前記署名鍵を用いて、前記署名データを生成し、
前記鍵記憶手段は、さらに、前記署名鍵とは別の署名鍵を記憶しており、
前記署名抑止手段は、前記カウンタ手段にてカウントされた累積回数が前記所定回数に達していると判断される場合に、前記情報記憶手段にて記憶されている前記第1鍵情報を、前記別の署名鍵を示す第2鍵情報へと書き換えることにより、前記署名鍵による署名を抑止する
ことを特徴とする請求項1に記載の署名生成装置。 - 前記署名生成手段は、
前記カウンタ手段にてカウントされた累積回数を取得し、
前記署名対象データは、メッセージデータと取得した累積回数とを含む
ことを特徴とする請求項1に記載の署名生成装置。 - 前記署名生成装置は、さらに、
時刻を計時する時計手段を備え、
前記署名生成手段は、
前記時計手段を用いて、署名データの有効期限の判断基準となる時刻情報を取得し、
前記署名対象データは、メッセージデータと取得した前記時刻情報とを含む
ことを特徴とする請求項1に記載の署名生成装置。 - 前記判断手段は、前記所定回数を記憶している回数記憶部を有しており、
前記署名生成装置は、さらに、
前記回数記憶部にて記憶されている前記所定回数を別の所定回数へと更新する更新手段
を備えることを特徴とする請求項1に記載の署名生成装置。 - 署名鍵を用いて署名を行う署名生成装置にて生成された署名データを検証する署名検証装置であって、
前記署名生成装置から、メッセージデータと前記署名生成装置が前記署名鍵を用いて署名を行った累積回数とを含む署名対象データと、前記署名対象データに対する署名データとを、前記署名生成装置から受信する受信手段と、
受信した前記署名対象データに含まれる前記累積回数が所定回数に達しているか否かを判断する回数判断手段と、
前記累積回数が前記所定回数に達していると判断される場合に、前記署名データの検証を抑止する検証抑止手段と
を備えることを特徴とする署名検証装置。 - 前記署名対象データは、さらに、前記署名データの有効期限の判断基準となる第1時刻情報を含み、
前記署名検証装置は、さらに、
時刻を計時する時計手段と、
前記累積回数が前記所定回数に達していないと判断される場合に、前記時計手段を用いて現在時刻を示す第2時刻情報を取得し、前記第1時刻情報と取得した第2時刻情報とを用いて、前記署名データの有効期限が過ぎているか否かを判断する期限判断手段と、
前記署名データの有効期限が過ぎていないと判断される場合に、前記署名データを検証する検証手段とを備え、
前記検証抑止手段は、さらに、前記署名データの有効期限が過ぎていると判断される場合に、前記署名データの検証を抑止する
ことを特徴とする請求項9に記載の署名検証装置。 - 前記署名データは、前記署名生成装置が生成した署名鍵を用いて生成され、
前記受信手段は、さらに、
前記署名鍵に対応する検証鍵と、前記検証鍵の正当性を示し、第1の秘密鍵により生成された検証鍵署名データとを含む検証鍵証明書と、前記第1の秘密鍵に対応する第1の公開鍵と、前記第1の公開鍵の正当性を示し、外部の機関が有する第2の秘密鍵により生成された公開鍵署名データとを含む公開鍵証明書とを受信し、
前記検証手段は、
前記第2の秘密鍵に対応する第2の公開鍵を記憶している鍵記憶部と、
前記署名データの有効期限が過ぎていると判断される場合に、前記第2の公開鍵を用いて、前記公開鍵証明書が正当であるか否かを検証する第1検証部と、
前記公開鍵証明書が正当であると判断される場合に、前記第1の公開鍵を用いて前記検証鍵明書が正当であるか否かを検証する第2検証部と、
前記検証鍵証明書が正当であると判断される場合に、前記署名データが正当であるか否かを検証する第3検証部と
を備えることを特徴とする請求項10に記載の署名検証装置。 - 前記署名検証装置は、さらに、
前記累積回数が前記所定回数に達していると判断される場合に、前記署名データを生成した前記署名生成装置を特定する特定情報を、外部装置へ送信する送信手段
を備えることを特徴とする請求項11に記載の署名検証装置。 - 前記回数判断手段は、前記所定回数を記憶している回数記憶領域を有しており、
前記署名検証装置は、さらに、
前記署名生成装置から前記所定回数とは別の所定回数を受信し、前記回数記憶領域にて記憶されている前記所定回数を、受信した前記別の所定回数へと更新する更新手段
を備えることを特徴とする請求項9に記載の署名生成装置。 - 署名鍵を用いて署名を行う署名生成装置と、前記署名生成装置にて生成された署名データを検証する署名検証装置とからなる署名システムであって、
前記署名生成装置は、
前記署名鍵を記憶している鍵記憶手段と、
前記署名鍵を用いて、メッセージデータと、前記署名鍵を用いて署名を行った累積回数とを含む署名対象データに署名を施して前記署名データを生成する署名生成手段と、
前記署名データの生成時に、前記累積回数をカウントするカウンタ手段と、
前記カウンタ手段にてカウントされた累積回数が所定回数に達しているか否かを判断する判断手段と、
前記カウンタ手段にてカウントされた累積回数が前記所定回数に達していると判断される場合に、以後、前記署名鍵による署名を抑止する署名抑止手段と、
前記署名対象データと、前記署名データとを含むデータ群を、前記署名検証装置へ送信する送信手段とを備え、
前記署名検証装置は、
前記署名生成装置から前記データ群を前記署名生成装置から受信する受信手段と、
受信した前記データ群の前記署名対象データに含まれる前記累積回数が所定回数に達しているか否かを判断する回数判断手段と、
前記回数判断手段にて前記累積回数が前記所定回数に達していると判断される場合に、前記署名データの検証を抑止する検証抑止手段と
を備えることを特徴とする署名システム。 - 前記署名システムは、さらに、前記署名生成装置から前記署名検証装置へと送信される前記データ群を監視する監視装置を備え、
前記監視装置は、
前記署名生成装置と前記署名検証装置とを接続する伝送路から前記データ群を取得する取得手段と、
前記データ群が取得される前に、既に取得された1以上の取得済データ群を記憶しているログ記憶手段と、
前記1以上の取得済データ群を用いて、取得した前記データ群が正当であるか否かを判断するデータ判断手段と、
前記データ群が不正なものであると判断される場合に、取得した前記データ群に含まれる前記署名データを生成した前記署名生成装置を特定する特定情報を、外部装置へ送信する情報送信手段と
を備えることを特徴とする請求項14に記載の署名システム。 - 前記データ群は、さらに、前記署名鍵に対応する検証鍵を含み、
前記1以上の取得済データ群それぞれは、取得済累積回数を含む取得済署名対象データと、取得済検証鍵とを含み、
前記データ判断手段は、
前記検証鍵及び前記累積回数と、一致する取得済検証鍵及び取得済累積回数を含む取得済データ群が、ログ記憶手段に存在するか否かを検索し、存在する場合には、取得した前記データ群は不正なものであると判断する
ことを特徴とする請求項15に記載の署名システム。 - 署名鍵を用いて署名を行う署名生成装置で用いられる署名生成方法であって、
前記署名生成装置は、
前記署名鍵を記憶している鍵記憶手段を備え、
前記署名生成方法は、
前記署名鍵を用いて、署名対象データに署名を施して、署名データを生成する署名生成ステップと、
前記署名データの生成時に、前記署名鍵を用いて署名を行った累積回数をカウントするカウンタステップと、
前記カウンタ手段にてカウントされた累積回数が所定回数に達しているか否かを判断する判断ステップと、
前記カウンタ手段にてカウントされた累積回数が前記所定回数に達していると判断される場合に、以後、前記署名鍵による署名を抑止する署名抑止ステップと
を含むことを特徴とする署名生成方法。 - 署名鍵を用いて署名を行う署名生成装置で用いられる署名生成プログラムであって、
前記署名生成装置は、
前記署名鍵を記憶している鍵記憶手段を備え、
前記署名生成プログラムは、
前記署名鍵を用いて、署名対象データに署名を施して、署名データを生成する署名生成ステップと、
前記署名データの生成時に、前記署名鍵を用いて署名を行った累積回数をカウントするカウンタステップと、
前記カウンタ手段にてカウントされた累積回数が所定回数に達しているか否かを判断する判断ステップと、
前記カウンタ手段にてカウントされた累積回数が前記所定回数に達していると判断される場合に、以後、前記署名鍵による署名を抑止する署名抑止ステップと
を含むことを特徴とする署名生成プログラム。 - 前記署名生成プログラムは、
コンピュータ読み取り可能な記録媒体に記録されている
ことを特徴とする請求項18に記載の署名生成プログラム。 - 署名鍵を用いて署名を行う署名生成装置にて生成された署名データを検証する署名検証装置で用いられる署名検証方法であって、
前記署名生成装置から、メッセージデータと前記署名生成装置が前記署名鍵を用いて署名を行った累積回数とを含む署名対象データと、前記署名対象データに対する署名データとを、前記署名生成装置から受信する受信ステップと、
受信した前記署名対象データに含まれる前記累積回数が所定回数に達しているか否かを判断する回数判断ステップと、
前記累積回数が前記所定回数に達していると判断される場合に、前記署名データの検証を抑止する検証抑止ステップと
を含むことを特徴とする署名検証方法。 - 署名鍵を用いて署名を行う署名生成装置にて生成された署名データを検証する署名検証装置で用いられる署名検証プログラムであって、
前記署名生成装置から、メッセージデータと前記署名生成装置が前記署名鍵を用いて署名を行った累積回数とを含む署名対象データと、前記署名対象データに対する署名データとを、前記署名生成装置から受信する受信ステップと、
受信した前記署名対象データに含まれる前記累積回数が所定回数に達しているか否かを判断する回数判断ステップと、
前記累積回数が前記所定回数に達していると判断される場合に、前記署名データの検証を抑止する検証抑止ステップと
を含むことを特徴とする署名検証プログラム。 - 前記署名検証プログラムは、
コンピュータ読み取り可能な記録媒体に記録されている
ことを特徴とする請求項21に記載の署名検証プログラム。 - 署名鍵を用いて署名を行う署名生成装置の集積回路であって、
前記署名鍵を記憶している鍵記憶手段と、
前記署名鍵を用いて、署名対象データに署名を施して、署名データを生成する署名生成手段と、
前記署名データの生成時に、前記署名鍵を用いて署名を行った累積回数をカウントするカウンタ手段と、
前記カウンタ手段にてカウントされた累積回数が所定回数に達しているか否かを判断する判断手段と、
前記カウンタ手段にてカウントされた累積回数が前記所定回数に達していると判断される場合に、以後、前記署名鍵による署名を抑止する署名抑止手段と
を備えることを特徴とする集積回路。 - 署名鍵を用いて署名を行う署名生成装置にて生成された署名データを検証する署名検証装置の集積回路であって、
前記署名生成装置から、メッセージデータと前記署名生成装置が前記署名鍵を用いて署名を行った累積回数とを含む署名対象データと、前記署名対象データに対する署名データとを、前記署名生成装置から受信する受信手段と、
受信した前記署名対象データに含まれる前記累積回数が所定回数に達しているか否かを判断する回数判断手段と、
前記累積回数が前記所定回数に達していると判断される場合に、前記署名データの検証を抑止する検証抑止手段と
を備えることを特徴とする集積回路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005015162 | 2005-01-24 | ||
JP2005015162 | 2005-01-24 | ||
PCT/JP2006/300510 WO2006077822A1 (ja) | 2005-01-24 | 2006-01-17 | 署名生成装置及び署名検証装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2006077822A1 true JPWO2006077822A1 (ja) | 2008-06-19 |
JP4548737B2 JP4548737B2 (ja) | 2010-09-22 |
Family
ID=36692211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006543311A Active JP4548737B2 (ja) | 2005-01-24 | 2006-01-17 | 署名生成装置及び署名検証装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7917764B2 (ja) |
EP (1) | EP1843513A1 (ja) |
JP (1) | JP4548737B2 (ja) |
CN (1) | CN101107808B (ja) |
WO (1) | WO2006077822A1 (ja) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10181953B1 (en) | 2013-09-16 | 2019-01-15 | Amazon Technologies, Inc. | Trusted data verification |
JP4036838B2 (ja) * | 2004-03-12 | 2008-01-23 | インターナショナル・ビジネス・マシーンズ・コーポレーション | セキュリティ装置、情報処理装置、セキュリティ装置が実行する方法、情報処理装置が実行する方法、該方法を実行させるための装置実行可能なプログラムおよびチケット・システム |
JP4988448B2 (ja) * | 2007-06-25 | 2012-08-01 | 株式会社日立製作所 | 一括検証装置、プログラム及び一括検証方法 |
US7890763B1 (en) * | 2007-09-14 | 2011-02-15 | The United States Of America As Represented By The Director, National Security Agency | Method of identifying invalid digital signatures involving batch verification |
CN101282220B (zh) * | 2008-05-14 | 2013-02-20 | 北京深思洛克软件技术股份有限公司 | 一种增强密钥使用安全性的信息安全装置及其实现方法 |
US9112910B2 (en) | 2008-10-14 | 2015-08-18 | International Business Machines Corporation | Method and system for authentication |
JP5446453B2 (ja) * | 2009-04-30 | 2014-03-19 | ソニー株式会社 | 情報処理装置、電子署名生成システム、電子署名用の鍵生成方法、情報処理方法、及びプログラム |
JP5458657B2 (ja) * | 2009-05-01 | 2014-04-02 | ソニー株式会社 | 情報処理装置、鍵更新方法、及びプログラム |
DE102009025585B4 (de) * | 2009-06-19 | 2012-08-16 | Audi Ag | Vorrichtung zur dezentralen Funktionsfreischaltung eines Steuergeräts |
US9237155B1 (en) | 2010-12-06 | 2016-01-12 | Amazon Technologies, Inc. | Distributed policy enforcement with optimizing policy transformations |
US11418580B2 (en) * | 2011-04-01 | 2022-08-16 | Pure Storage, Inc. | Selective generation of secure signatures in a distributed storage network |
US8769642B1 (en) | 2011-05-31 | 2014-07-01 | Amazon Technologies, Inc. | Techniques for delegation of access privileges |
US9197409B2 (en) | 2011-09-29 | 2015-11-24 | Amazon Technologies, Inc. | Key derivation techniques |
US9203613B2 (en) | 2011-09-29 | 2015-12-01 | Amazon Technologies, Inc. | Techniques for client constructed sessions |
US9178701B2 (en) | 2011-09-29 | 2015-11-03 | Amazon Technologies, Inc. | Parameter based key derivation |
US8892865B1 (en) | 2012-03-27 | 2014-11-18 | Amazon Technologies, Inc. | Multiple authority key derivation |
US8739308B1 (en) | 2012-03-27 | 2014-05-27 | Amazon Technologies, Inc. | Source identification for unauthorized copies of content |
US9215076B1 (en) | 2012-03-27 | 2015-12-15 | Amazon Technologies, Inc. | Key generation for hierarchical data access |
US9660972B1 (en) | 2012-06-25 | 2017-05-23 | Amazon Technologies, Inc. | Protection from data security threats |
US9258118B1 (en) | 2012-06-25 | 2016-02-09 | Amazon Technologies, Inc. | Decentralized verification in a distributed system |
JP5932709B2 (ja) * | 2013-05-09 | 2016-06-08 | 株式会社日立製作所 | 送信側装置および受信側装置 |
US9407440B2 (en) | 2013-06-20 | 2016-08-02 | Amazon Technologies, Inc. | Multiple authority data security and access |
US20160149708A1 (en) * | 2013-07-12 | 2016-05-26 | Koninklijke Philips N.V. | Electronic signature system |
US9521000B1 (en) | 2013-07-17 | 2016-12-13 | Amazon Technologies, Inc. | Complete forward access sessions |
US9311500B2 (en) | 2013-09-25 | 2016-04-12 | Amazon Technologies, Inc. | Data security using request-supplied keys |
US9237019B2 (en) | 2013-09-25 | 2016-01-12 | Amazon Technologies, Inc. | Resource locators with keys |
US10243945B1 (en) | 2013-10-28 | 2019-03-26 | Amazon Technologies, Inc. | Managed identity federation |
US20150126333A1 (en) * | 2013-11-05 | 2015-05-07 | Halcyonic, LLC | Virtual competition environment |
US9420007B1 (en) | 2013-12-04 | 2016-08-16 | Amazon Technologies, Inc. | Access control using impersonization |
US9374368B1 (en) | 2014-01-07 | 2016-06-21 | Amazon Technologies, Inc. | Distributed passcode verification system |
US9292711B1 (en) | 2014-01-07 | 2016-03-22 | Amazon Technologies, Inc. | Hardware secret usage limits |
US9369461B1 (en) | 2014-01-07 | 2016-06-14 | Amazon Technologies, Inc. | Passcode verification using hardware secrets |
US9262642B1 (en) | 2014-01-13 | 2016-02-16 | Amazon Technologies, Inc. | Adaptive client-aware session security as a service |
US9838381B2 (en) * | 2014-02-26 | 2017-12-05 | Mitsubishi Electric Corporation | Certificate management apparatus and certificate management method |
US10771255B1 (en) | 2014-03-25 | 2020-09-08 | Amazon Technologies, Inc. | Authenticated storage operations |
US9258117B1 (en) | 2014-06-26 | 2016-02-09 | Amazon Technologies, Inc. | Mutual authentication with symmetric secrets and signatures |
US10326597B1 (en) | 2014-06-27 | 2019-06-18 | Amazon Technologies, Inc. | Dynamic response signing capability in a distributed system |
US10122692B2 (en) | 2015-06-16 | 2018-11-06 | Amazon Technologies, Inc. | Handshake offload |
US10122689B2 (en) | 2015-06-16 | 2018-11-06 | Amazon Technologies, Inc. | Load balancing with handshake offload |
CN105515768B (zh) * | 2016-01-08 | 2017-07-21 | 腾讯科技(深圳)有限公司 | 一种更新密钥的方法、装置和系统 |
US10116440B1 (en) | 2016-08-09 | 2018-10-30 | Amazon Technologies, Inc. | Cryptographic key management for imported cryptographic keys |
US10460130B1 (en) * | 2017-09-18 | 2019-10-29 | Amazon Technologies, Inc. | Mechanism to protect a distributed replicated state machine |
DE102020201768A1 (de) | 2020-02-12 | 2021-08-12 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Betreiben derselben |
CN114040387B (zh) * | 2020-07-21 | 2024-06-04 | 中国移动通信有限公司研究院 | 一种攻击消息的确定方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000305995A (ja) * | 1999-04-22 | 2000-11-02 | Fuji Xerox Co Ltd | 流通情報管理装置および方法 |
JP2002535740A (ja) * | 1999-01-29 | 2002-10-22 | ジェネラル・インストルメント・コーポレーション | デジタル情報を転送するデバイスにおける、セキュアなマイクロプロセッサを用いた証明書の自己生成 |
JP2002335237A (ja) * | 2001-05-10 | 2002-11-22 | Matsushita Electric Ind Co Ltd | 鍵管理装置および鍵管理方法 |
JP2004080174A (ja) * | 2002-08-13 | 2004-03-11 | Ntt Data Corp | Ic、データ処理システム及びコンピュータプログラム |
JP2005515659A (ja) * | 2001-12-07 | 2005-05-26 | エヌティーアールユー・クリプトシステムズ・インコーポレーテッド | ディジタル署名、認証方法及び装置 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL128552A (en) | 1996-08-19 | 2004-06-01 | Ntru Cryptosystems Inc | Method and device of a public key in a crypto system |
EP0840477B1 (en) * | 1996-10-31 | 2012-07-18 | Panasonic Corporation | Secret key transfer method which is highly secure and can restrict the damage caused when the secret key is leaked or decoded |
DE19831884C2 (de) * | 1998-07-17 | 2001-09-20 | Ibm | System und Verfahren zum Schutz gegen analytisches Ausspähen von geheimen Informationen |
US6839841B1 (en) * | 1999-01-29 | 2005-01-04 | General Instrument Corporation | Self-generation of certificates using secure microprocessor in a device for transferring digital information |
JP4779183B2 (ja) * | 1999-03-26 | 2011-09-28 | ソニー株式会社 | 再生装置および再生方法 |
JP4135049B2 (ja) * | 1999-03-25 | 2008-08-20 | ソニー株式会社 | 不揮発性メモリ |
US7167561B1 (en) * | 1999-03-03 | 2007-01-23 | Sony Corporation | Recording apparatus, recording method, reproducing apparatus, and reproducing method |
JP4406988B2 (ja) * | 1999-03-29 | 2010-02-03 | ソニー株式会社 | 不揮発性記録媒体、記録方法、記録装置 |
JP4214651B2 (ja) * | 1999-03-31 | 2009-01-28 | ソニー株式会社 | データコミュニケーションシステム、データ管理方法 |
MY122279A (en) * | 1999-03-03 | 2006-04-29 | Sony Corp | Nonvolatile memory and nonvolatile memory reproducing apparatus |
JP4281185B2 (ja) * | 1999-03-25 | 2009-06-17 | ソニー株式会社 | 編集装置および方法 |
JP4749522B2 (ja) * | 1999-03-26 | 2011-08-17 | ソニー株式会社 | 再生装置および再生方法 |
BRPI0005192B1 (pt) * | 1999-03-03 | 2016-04-19 | Sony Corp | aparelho de processamento de dados, unidade terminal possuindo um meio de gravação não volátil fixável/destacável, e, processos de processamento de dados, e de transmissão de um aparelho de processamento de dados |
MY123388A (en) | 1999-03-15 | 2006-05-31 | Sony Corp | Processing method and apparatus for encrypted data transfer |
TW529267B (en) * | 1999-03-15 | 2003-04-21 | Sony Corp | Data processing system and method for mutual identification between apparatuses |
US7519277B2 (en) * | 1999-03-25 | 2009-04-14 | Sony Corporation | Editing apparatus and editing method |
US6870680B2 (en) * | 2001-08-17 | 2005-03-22 | Sony Corporation | Imaging device |
US6601140B1 (en) * | 1999-04-07 | 2003-07-29 | Sony Corporation | Memory unit, data processing unit, and data processing method using memory unit type |
US6820203B1 (en) * | 1999-04-07 | 2004-11-16 | Sony Corporation | Security unit for use in memory card |
US6618789B1 (en) * | 1999-04-07 | 2003-09-09 | Sony Corporation | Security memory card compatible with secure and non-secure data processing systems |
US7376837B1 (en) * | 1999-04-09 | 2008-05-20 | General Instrument Corporation | Built-in manufacturer's certificates for a cable telephony adapter to provide device and service certification |
ATE313200T1 (de) * | 1999-04-09 | 2005-12-15 | Gen Instrument Corp | Schlüsselverwaltung zwischen kabeltelefonsystemadapter und signaleinrichtungkontrolle |
US6892308B1 (en) * | 1999-04-09 | 2005-05-10 | General Instrument Corporation | Internet protocol telephony security architecture |
JP2002099211A (ja) * | 2000-09-21 | 2002-04-05 | Sony Corp | 公開鍵証明書発行要求処理システムおよび公開鍵証明書発行要求処理方法 |
-
2006
- 2006-01-17 WO PCT/JP2006/300510 patent/WO2006077822A1/ja active Application Filing
- 2006-01-17 EP EP06711790A patent/EP1843513A1/en not_active Withdrawn
- 2006-01-17 CN CN2006800030301A patent/CN101107808B/zh active Active
- 2006-01-17 JP JP2006543311A patent/JP4548737B2/ja active Active
- 2006-01-17 US US11/795,871 patent/US7917764B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002535740A (ja) * | 1999-01-29 | 2002-10-22 | ジェネラル・インストルメント・コーポレーション | デジタル情報を転送するデバイスにおける、セキュアなマイクロプロセッサを用いた証明書の自己生成 |
JP2000305995A (ja) * | 1999-04-22 | 2000-11-02 | Fuji Xerox Co Ltd | 流通情報管理装置および方法 |
JP2002335237A (ja) * | 2001-05-10 | 2002-11-22 | Matsushita Electric Ind Co Ltd | 鍵管理装置および鍵管理方法 |
JP2005515659A (ja) * | 2001-12-07 | 2005-05-26 | エヌティーアールユー・クリプトシステムズ・インコーポレーテッド | ディジタル署名、認証方法及び装置 |
JP2004080174A (ja) * | 2002-08-13 | 2004-03-11 | Ntt Data Corp | Ic、データ処理システム及びコンピュータプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN101107808A (zh) | 2008-01-16 |
WO2006077822A1 (ja) | 2006-07-27 |
JP4548737B2 (ja) | 2010-09-22 |
CN101107808B (zh) | 2011-01-26 |
EP1843513A1 (en) | 2007-10-10 |
US7917764B2 (en) | 2011-03-29 |
US20080222418A1 (en) | 2008-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4548737B2 (ja) | 署名生成装置及び署名検証装置 | |
JP4544538B2 (ja) | 署名生成装置、鍵生成装置及び署名生成方法 | |
JP5790319B2 (ja) | 署名検証装置、署名検証方法、プログラム、及び記録媒体 | |
JP5341878B2 (ja) | 署名及び検証方法、署名生成装置並びに署名検証装置 | |
JP6069852B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP5593850B2 (ja) | 認証装置、認証方法、プログラム、及び署名生成装置 | |
JP5957095B2 (ja) | 改ざん検知装置、改ざん検知方法、およびプログラム | |
US20120294442A1 (en) | Joint encryption of data | |
US20100281267A1 (en) | Image Processing Apparatus, Electronic Signature Generation System, Electronic Signature Key Generation Method, Image Processing Method, and Program | |
JP5790318B2 (ja) | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム | |
CN101877639A (zh) | 信息处理设备、密钥更新方法和程序 | |
JP4367938B2 (ja) | 細粒度フォワード・セキュア署名の方法、コンピュータ・プログラム要素、コンピュータ・プログラムおよびネットワーク・デバイス | |
WO2006114948A1 (ja) | 署名生成装置および署名検証装置 | |
JP5970193B2 (ja) | 検索システム、検索方法および検索プログラム | |
JP2011145591A (ja) | コミットメントシステム、マスター装置、送信装置、受信装置、コミットメント方法、プログラム、記録媒体 | |
TW201325180A (zh) | 資訊處理裝置、署名生成裝置、署名驗證裝置、資訊處理方法、署名生成方法及署名驗證方法 | |
WO2013031413A1 (ja) | 情報処理装置、情報処理方法、プログラム、及び記録媒体 | |
JP2009033608A (ja) | 正当性検証装置及び正当性検証方法 | |
Iyer | Group Signature Scheme Resistant against Colluding Attack | |
Xin | Project Writeup Stateful Public-Key Cryptosystems: How to Encrypt with One 160-bit Exponentiation | |
JP2003115839A (ja) | 認証システム、認証方法、擬似乱数発生器 | |
JP2010245683A (ja) | 暗号システム、鍵生成装置、暗号化装置、復号化装置及び暗号処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100406 |
|
A521 | Request for written amendment filed |
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: 20100608 |
|
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: 20100701 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4548737 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130716 Year of fee payment: 3 |