JP3939586B2 - Forward secure electronic signature method, apparatus, program, and recording medium - Google Patents

Forward secure electronic signature method, apparatus, program, and recording medium Download PDF

Info

Publication number
JP3939586B2
JP3939586B2 JP2002132765A JP2002132765A JP3939586B2 JP 3939586 B2 JP3939586 B2 JP 3939586B2 JP 2002132765 A JP2002132765 A JP 2002132765A JP 2002132765 A JP2002132765 A JP 2002132765A JP 3939586 B2 JP3939586 B2 JP 3939586B2
Authority
JP
Japan
Prior art keywords
unit
hash function
signer
calculating
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002132765A
Other languages
Japanese (ja)
Other versions
JP2003324426A (en
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2002132765A priority Critical patent/JP3939586B2/en
Publication of JP2003324426A publication Critical patent/JP2003324426A/en
Application granted granted Critical
Publication of JP3939586B2 publication Critical patent/JP3939586B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
この発明は、電子化された文書の稟議/決済、電子投票システム等で、電子的に署名/捺印を付与する電子署名方法、特にマスタ検証鍵を更新せずに、セッション署名鍵のみを更新する前方安全(Forward-Secure)署名方法、その装置及びそのプログラムと記録媒体に関する。
【0002】
【従来の技術】
従来技術として多数の電子署名方法が知られている。
最近、Forward-Secure(前方安全)署名と呼ばれる新たな電子署名が注目を浴びている[文献1〜4]。この署名の特徴は、マスタ検証鍵を更新せずに、セッション署名鍵のみを更新することが出来、更に、仮にあるセッションの署名鍵を盗まれたとしてもそのセッション以前の署名鍵によって作られた署名を安全に保てるという特徴がある。
まず、誰もが考えつく単純な方法を説明し、次に最初のForward-Secure署名である文献[2]に示すものとその他の方法について簡単に述べる。
単純な構成法
(その1) 署名者は、(pk1 ,sk1 ),…,(pkT ,skT )と検証鍵と署名鍵の対をT個作成し、検証鍵pk1 ,…,pkT を登録し、署名鍵(sk1 ,…,skT )を秘密に保持する。署名者は最初の期間はsk1 を署名鍵、pk1 をセッション検証鍵として署名をする。鍵の更新時には、署名鍵をski からski+1 に変更し、ski を破棄してしまう。
【0003】
この方法の欠点は、最初に多数の検証鍵と署名鍵を持つ必要がある上に、署名鍵更新回数が限られている。
(その2) 署名者は、(pk1 ,sk1 )を検証鍵と署名鍵の対として作成し、検証鍵pk1 を登録し、署名鍵sk1 を秘密に保持する。署名者は最初の期間はsk1 を署名鍵、pk1 をセッション検証鍵として署名をする。鍵の更新時には、新たに(pki+1 ,ski+1 )を作成し、直前のセッション検証鍵pki を用いて、pki+1 を承認する署名σi =sigski(pki+1 )を生成し、また署名鍵をski からski+1 に変更し、ski を破棄してしまう。
【0004】
pki+1 を検証するには、以前の全ての検証鍵を使ってσ1 ,…,σi を検証してやる必要がある。このため更新が進むにつれ、セッション検証鍵を検証するのに時間も情報量もかかることがこの方法の欠点である。
Bellare-Minerの構成法とその他
文献[2]の中で、Bellare-Minerは次のようにForward-Secure署名を構成した。
大きな異なる素数p,qからN=pqを作る。Z* nから乱数s1 ,…,sk を選び、1kに対して、Ui =si^2T+1 mod N(ここでA^BはAB を表わす)を生成する。(U1 ,…,Uk N)をマスタ検証鍵として登録し、(s1 ,…,sk )を署名鍵として保存し、p,qを廃棄する。
【0005】
署名は、Feige-Fiat-Shamir署名で行う。鍵の更新は、セッションjでの署名鍵をSKj ={sk1 j,…,skk j}とすると(ski 1=si ),SKj+1 ={(sk1 j2 mod N,…,(skk j2 mod N}と更新する。
この方法は、上の2つの方法、特に(その1)と比べると優れているが、署名鍵更新回数が限られているという欠点がある。つまり鍵の更新をT回行うと、si^2T となり、T+1回目ではマスタ鍵となってしまう。
その他にも、文献[1,3,4]等に示す方法が存在するが、署名鍵更新回数が限られていたり、署名更新回数に応じて計算量が増えるなどの欠点が存在する。文献[4]に示す方法は、更新回数に制限が無い一般的なForward-Secure署名の構成法を提案しているが、この方法は非効率で署名の更新回数に依存して計算量が変化する。
【0006】
【発明が解決しようとする課題】
上記のように、従来の方法では署名鍵更新回数が限られていたり、署名更新回数に応じて計算量が増えるなどの欠点が存在する。この発明の目的は効率が、署名更新回数に依存せず、一度の署名も従来のFeige-Fiat-Shamir型署名の効率と同等であり、かつ署名鍵更新回数が限られないForward-Secure署名方法、その装置、そのプログラム及び記録媒体を提供することにある。
【0007】
【課題を解決するための手段】
Gを離散対数問題に利用される群として、その群演算を乗法で表すとき、署名者装置は、Gの元gに対して、h=gs とy=gx を満たすs,xを生成し、(h,y)をマスタ検証鍵として公開し、h,y,g,sに基づきセッション検証鍵を生成し、(s,x)をセッション署名鍵とし、これらのセッション鍵を保存し、
メッセージmに対して、セッション署名鍵(s,x)により署名を作成し、その署名とセッション検証鍵とメッセージを検証者装置に送信し、
セッション更新時には、h=g′s′,y=g′x′を満たすようなg′,s′,x′にg,s,xを変更し、上記セッション検証鍵の生成と、同様にしてh,y,g′,s′に基づき新しいセッション検証鍵を生成し、(s′,x′)を新しいセッション署名鍵として保存中のセッション鍵を更新する。
【0008】
【発明の実施の形態】
以下、この発明の実施形態を図を参照して説明する。
図1にこの発明方法が適用されるシステムの構成例を示す。署名者装置100と検証者装置200は安全でない通信路300を介して結合することができる。署名者装置100は登録センタ装置400に署名者装置の公開鍵を登録することができ、検証者装置200は登録センタ装置400から署名者装置100の公開鍵を取得することができる。
実施例1
この発明の実施例は有限体上の乗法群の離散対数問題に安全性の根拠を置くものである。つまり離散対数問題に利用される群としてその群演算を乗法で表す場合である。
(1)鍵の登録
大きな素数pとp−1を割る大きな素数qが公開パラメータとして登録センタ装置400に登録公開してある。署名者装置100の機能構成例を図2に示し、その処理手順を図3に示す。
【0009】
署名者装置100がシステムに加入するとき、マスタ鍵生成部101内の乱数生成部102によりZ* p(={1,…,p−1})から1以外の値g0 をランダムに生成し(S1)、そのg0 に対し(p−1)/q乗を剰余べき乗演算部103で計算する(S2)。その演算結果をg=g0 (p-1)/qmod pとする。
次に、乱数生成部104によりZq(={0,1,…,q−1})からランダムに二つの値s,xを生成する(S3)。剰余べき乗演算部105,106でそれぞれ、gのs乗、x乗をそれぞれ演算してマスタ公開検証鍵h=gs mod pとy=gx mod pを求める(S4)。これらマスタ公開検証鍵h,yを登録センタ装置400の公開検証鍵簿400aに登録する(S5)。公開検証鍵簿400aには署名者Aごとのマスタ公開検証鍵h,yが登録され、外部から誰れでもアクセス可能とされる。
(2)セッション署名鍵の作成
署名者装置100は乱数生成部104により乱数u∈Zq を生成し(S6)、セッション鍵生成部111におけるべき乗演算部112でgのu乗してa=gu を計算する(S7)。更にハッシュ関数演算部113でa,g、マスタ検証鍵h,y、公開パラメータp,qが入力され、e=H(a,h,y,p,q,g)を計算する(S8)。このハッシュ演算結果e、上記乱数u及びsを用いて、剰余乗算・減算部114でv=u−esmod qを計算する(S9)。
【0010】
(v,e,g)をセッション検証鍵、(s,x)をそのセッション署名鍵とし記憶部121に保存する(S10)。(s,x)は秘密情報である。
(3)署名の作成
以降では、署名者装置100がメッセージmに署名する場合について説明する。
メッセージmは入力部122から入力され、必要に応じて一旦記憶部121に格納される。メッセージmが入力され署名作成要求がなされたかを調べ(S11)、要求されていれば、まず乱数生成部104から乱数w∈Z* qを生成し(S12)、署名作成部131におけるべき乗演算部132でgをw乗してb=gw を計算する(S13)。その計算結果b、マスタ検証鍵h,y、上記g、メッセージmをハッシュ関数演算部133でハッシュ演算を施し、c=H(b,h,y,p,q,g,m)を計算する(S14)。この計算結果c、上記乱数w,c及びセッション署名鍵xを剰余乗算・減算部134に入力してz=w−cxmod qを計算する(S15)。この計算結果cと上記zをmに対する署名(c,z)として、m,(c,z)とセッション検証鍵(v,e,g)を検証者装置200に通信部141より送信する(S16)。
(4)署名の検査
検証者装置200は、図4に示すように通信部201にm,(c,z),(v,e,g)と共に検証要求が受信されると、必要に応じてこれら受信情報を記憶部202に一旦格納する。検証者装置200は、署名者A(署名者装置100)のマスタ公開検証鍵h,yを登録センタ装置400から取得し、これらh,yがh≠yであることを検証部203で、またh,y、及び受信したgが1でないことを検証部204で検証する。これらの条件は鍵登録時にg0 を1以外の値から選んだこと、2つのs,xを選んだことに基づく。
【0011】
更にセッション鍵検証部205のべき乗演算部206,207でそれぞれ受信したgを受信したvでべき乗し、またマスタ検証鍵hを受信したeでべき乗し、これらべき乗結果を乗算部208で乗算する。この乗算結果とh,y,p,q,gとをハッシュ関数演算部209に入力してハッシュ演算を施し、この演算結果H(gv e ,h,y,p,q,g)と受信したeとが一致するかを比較部211で確認する。
同様に署名検証部213において、べき乗演算部214,215でgz ,yc を演算し、これら結果を乗算部216で乗算し、この乗算結果と、h,y,p,q,g,mに対し、ハッシュ関数演算部217でハッシュ演算を施し、この結果が受信したと一致するかを比較部218で確認する。
【0012】
検証部203,204,205,213の全ての検証に合格すれば、検証結果出力部219から、受信した(v,e,g)をマスタ検証鍵(h,y)に基づくセッション検証鍵であると認め、かつ(c,z)をメッセージmのセッション検証鍵(v,e,g)での署名と認め、合格(OK)を表わす信号を出力し、一つでも検証に合格しないものは、不正な署名として不合格(NG)を表わす信号を出力する。
なお、(v,e,g)が正しければ、v=u−es,h=gs であるからgv e =gu-eses=gu 、べき乗演算部112(図2)よりgu =aである。よって演算部209のハッシュ演算はH(a,h,y,p,q,g)となり、演算部113の演算結果eと一致する。同様に(c,z)が正しければ、z=w−cx,y=gx であるから、gz c =gw- cxcx=gw =bとなり、演算部217の演算はH(b,h,y,p,q,g,m)となり、演算部133の演算結果cと一致する。
(5)署名鍵の更新
セッション署名鍵を更新する時になると(図3、S17)、例えば、セッション署名鍵の生成後一定期間が過ぎた時あるいは所定回数使用した時などに署名者装置100(図2参照)は乱数生成部104で乱数r∈Zqを生成し(S18)、鍵更新部142におけるべき乗演算部143でg´=gr を演算し、剰余乗算部144,145でそれぞれ乱数rの逆数r-1とセッション署名鍵s,xとをそれぞれ剰余演算し、s´=r-1smod q,x´=r-1xmod qを求める(S19)。これら(s´,x´)にセッション署名鍵を更新する。
【0013】
新しいセッション検証鍵は以下のように作成する。乱数生成部104から乱数u′∈Z* qを生成し(S20)、a′=g′u′べき乗演算部146で計算し(S21)、ハッシュ関数演算部147を用いて、e′=H(a′,h,y,p,q,g′)を計算し(S22)、上記u′,e′及びs′を用いて、剰余乗算・減算部148でv′=u′−e′s′mod qを計算する(S23)。
(v′,e′,g′)を新しいセッション検証鍵、(s′,x′)を新しいセッション署名鍵として記憶部121に保存し、古いセッション署名鍵(s,x)は破棄してステップS11に戻る(S24)。ステップS17で更新時になければステップS11へ移る。よってその後のメッセージmに対する署名は(s′,x′)、(v′,e′,g′)を、署名作成部131でs,x,v,e,gとして用いて署名c,zの作成を行い、また検証者装置200へセッション検証鍵を(v,e,g)として送る。
【0014】
以上のようにセッション鍵を更新するため、何回でも更新を行うことができる。g及びその変更したg´=gr は外部へ出力するがg´,gからrを推定することは離散対数問題であって困難である。従って安全性は保持される。また仮にセッション署名鍵s´,x´が盗まれても、その前のセッション鍵をs=rs´,x=rx´により求めるにはrを知る必要があり、このrを知ることは困難であるため、盗まれる前に行われた署名について偽造されるおそれはない。
またy=hx/s mod p=hx´/s´mod pでありh=gs mod p,y=gx mod p,y=hx/s mod pの関係を知っている人のみがx´,s´を作ることができ、h=g´s ´ mod p,y=g´x´mod p,y=hx´/s´mod pの関係を満たすようにg´,s´,x´を更新すればよい。
【0015】
なお署名者装置100において各部は制御部149により順次動作させられる。検証者装置200においては制御部230により各部が動作させられる。
実施例2
この発明の実施例2は楕円曲線上の有理点が作る群上で構成できる離散対数問題を安全性の根拠とする場合である。
(1)鍵の登録
有限体Fp 上で定義される楕円曲線EのFp-有理点の作る群をE(Fp)とし、その群E(Fp)の位数を割る大きな素数qを位数に持つ部分群をGと置く(G⊂E(Fp)かつq|#E(Fp)である)。上記は公開パラメータとして登録センタ装置400に登録公開してある。図5に署名者装置100の機能構成例を示す。
【0016】
署名者装置100がシステムに加入するときマスタ鍵生成部150内の乱数生成部151でG−{0}({0}は単位元を表す)から値gをランダムに生成する。乱数生成部152により、Zq(={0,1,…,q−1})からランダムに二つの値s,xを生成し、楕円倍数演算部153,154でh=s・gとy=x・gを計算してマスタ検証鍵を求める。ただし、s・g,x・gは楕円曲線上の点gのs倍算、x倍算をそれぞれ表わしている。さらにg,h∈G上の加法演算をg+hで表わす。
これらマスタ検証鍵h,yを登録センタ装置400の公開検証鍵簿400aに登録する。
(2)セッション署名鍵の作成
署名者装置100は、乱数生成部152により乱数u∈Zq を生成し、セッション鍵生成部156内の楕円倍数演算部157でgをu倍算してa=u・gを計算し、その計算結果a、マスタ検証鍵h,y,g,Gをハッシュ関数演算部158に入力して、e=H(a,h,y,G,g)を計算し、上記u,e及びsを剰余乗算・減算部159に入力してv=u−es mod qを計算する。
【0017】
(v,e,g)をセッション検証鍵、(s,x)をそのセッション署名鍵として記憶部161に保存する。
(3)署名の作成
以降では、署名者装置100がメッセージmに署名する場合について説明する。
メッセージmは入力部162から入力され、必要に応じて一旦記憶部161に格納される。乱数生成部152から、乱数w∈Zq を生成し署名作成部163内の楕円倍数演算部164にw,gを入力してb=w・gを計算し、このbとh,y,G,g,mをハッシュ関数演算部165に入力して、c=H(b,h,y,G,g,m)を計算する。この計算結果c、上記w及びxを剰余乗算・減算部166に入力してz=w−cx mod qを計算し、その計算結果zとcを署名(c,z)として、セッション検証鍵(v,e,g)と共に検証者装置200と通信部167により送信する。
(4)署名の検査
検証者装置200は、図6に示すように通信部240にm,(c,Z)(v,e,g)が受信されると必要に応じて、これらを一旦記憶部241に格納する。署名者装置100のマスタ公開検証鍵h,yを登録センタ装置400から取得し、これらがh≠yであることを検証部242で検証し、またh,y,gが何れも0でないことを検証部243で検証する。更にセッション鍵検証部244内のハッシュ関数演算部253でH(v・g+e・h,h,y,G,g)を演算し、その演算結果が受信したeと一致するかを比較部256で確認し、署名検証部257内のハッシュ関数演算部258でH(z・g+c・h,h,y,G,g,m)を演算し、その結果がcと一致するかを比較部256で確認する。検証部242,243,244,257の各検証結果が検証結果出力部261に入力され、これらの検証結果が全て条件を満していれば(v,e,g)を検証鍵(h,y)のセッション検証鍵と認め、かつ(c,z)をメッセージmのセッション検証鍵(v,e,g)での署名と認めることを表わす合格情報OKを出力し、一つでも条件を満さない場合は不合格情報NGを出力する。
(5)署名鍵の更新
セッション鍵を更新する時になると署名者装置100は乱数生成部152から乱数r∈Zq を生成し、鍵更新部175内の楕円倍数演算部176でg′=r・gを演算し、更に剰余乗算部177,178でそれぞれs′=r-1smod q,x′=r-1x mod qを計算してこれら(s′,x′)を新しいセッション署名鍵として更新する。乱数生成部152から乱数u′∈Zq を生成し、楕円倍数演算部179でa′=u′・g′を計算し、更にハッシュ関数演算部181で、e′=H(a′,h,y,G,g′)を計算し、上記u′,e′及びs′を用いて、剰余乗算・減算部182でv′=u′−e′s′mod qを計算する。(v′,e′,g′)を新しいセッション検証鍵として(s′,x′)を新しいセッション署名鍵として記憶部161に保存し、古いセッション署名鍵(s,x)は破棄する。これら新しいセッション鍵(s′,x′),(v′,e′,g′)を用いてメッセージmに対する署名を作成するには、署名作成部163で(s′,x′)を(s,x)とし、(v′,e′,g′)を(v,e,g)として作成処理すればよい。
【0018】
以上のようにしてセッション鍵を何回でも更新することができる。外部へ漏れるのはg,g′であり、g′=r・gであるから楕円離散対数問題に基づき、rを推定することは困難である。よって安全性が保持される。また仮りにセッション署名鍵が盗まれても、rを推定できないためそれより以前のセッション署名鍵を推定することができず、盗まれる前になされた署名の安全性は保持される。
またこの場合もg,g′からrを推定することは困難であり、y=x・s‐1・h=x′・s′‐1・hとなりh=s・g,y=x・gなる関係を知っている人のみがセッション鍵を更新することができる。
【0019】
署名者装置100において、各部は制御部170により順次動作させられる。検証者装置200においては、各部は制御部263により順次動作させられる。
実施例1及び2において、マスタ検証鍵h,yを生成するための乱数s,xを最初のセッション署名鍵として使用したが最初のセッション署名鍵から鍵更新部142,165で生成してもよい。図2中の鍵更新部142中のa′,e′,v′を演算する演算部146,147,148はセッション鍵生成部111中の演算部112,113,114とそれぞれ同一の演算式を実行するものであるから、鍵更新時に生成したu′,g′,s′,x′をそれぞれu,g,s,xとして演算部112,113,114によりa′,e′,v′を演算し、つまり演算部146,147,148を省略してもよい。このことは実施例2中の図5に示した署名者装置についても云えることであり、演算部169〜171,172を省略することもできる。このような点から例えば図3に示した処理手順において、ステップS19からステップS6に移って、g′,s′,x′をg,s,xとして用いて新しいa′,e′,v′を生成するようにしてもよい。
【0020】
図2、図5に示した例において、べき乗算部、剰余乗算部、ハッシュ関数演算部、剰余乗算・減算部、楕円倍数演算部などを各1つずつ設け、これらを制御部149又は170の制御のもとに生成したいデータ元として必要とする各種データを入力して、各種データの生成に兼用するようにしてもよい。これらのことは図4、図6にそれぞれ示した検証者装置200についても同様に云えることである。
上述の説明から明らかなように、h=gs,y=gxを満たす又はh=s・g,y=x・gを満たすs,xを生成し、(h,y)をマスタ公開鍵とし、セッション署名鍵は(s,x)それ自体、これらは前述のような関係で更新したものを用い、セッション検証鍵はh,y,g,sから作成したものを用いればよく、そのセッション鍵の更新は、h=g′s′,y=g′x′又はh=s′・g′,y=x′・g′を満たすようなg′,s′,x′に変更すればよい。またセッション検証鍵は署名(c,z)の作成方法と同様な方法を、xの代わりにsを用いてh,y,g,sに対して適用しているといえる。
【0021】
実施例1及びこの各署名者装置100、利用者装置200はそれぞれコンピュータに機能させることもできる。その場合は、例えば図2に示した署名者装置100としてコンピュータを機能させるためのプログラムをコンピュータに、CD−ROM、可撓性磁気ディスクなどの記録媒体からインストールし、又は通信回線を介してダウンロードして、そのプログラムを実行させればよい。
署名作成法としては実施例1及び2に示した例に限らず、他の手法を用いてもよく、それに応じて、セッション検証鍵の生成法も変更される。
【0022】
【発明の効果】
以上述べたようにこの発明によれば離散対数問題を利用するため、安全でかつセッション鍵を無限に更新することができ、しかも文献[2]に示す従来のもっとも効率的なForward-Secure電子署名方法と比較すると、Bellare-Miner法はマスタ検証鍵として(U1 ,…,Uk ,N)を持つ必要があるが、この発明では(h,y)だけであるから実施例1では計算量で同じ、情報量で2/(k+1)である。実施例2では楕円曲線上の離散対数問題を利用するので、h,yのパラメータをさらに小さく出来、署名計算時間も短いから計算量で1/4、情報量で2/(k+1)以下である。
【図面の簡単な説明】
【図1】この発明方法が適用されるシステム構成の簡単な例を示す図。
【図2】この発明の実施例1における署名者装置100の機能構成例を示す図。
【図3】図2に示した装置の処理手順の例を示す流れ図。
【図4】実施例1における検証者装置200の機能構成例を示す図。
【図5】実施例2における署名者装置100の機能構成例を示す図。
【図6】実施例2における検証者装置200の機能構成例を示す図。
参考文献
[1] M.Abdalla and L.Reyzin. A new forward-secure digital signature scheme. In T.Okamoto,editor,Advances in Cryptology-ASIACRYPT2000,volume 1976 of Lecture Notes in Computer Science,pages 116-129. Springer-Verlag,2000.
[2] M.Bellare and S.Miner. A forward-secure digital signature scheme. In M.Wiener,editor,Advances in Cryptoloty-CRYPTO'99,volume 1666 of Lecture Notes in Computer Science,pages 431-448. Springer-Verlag,19999.
[3] H.Krawczyk. Simple forward-secure signatures from any signature scheme. In 7th ACM conference on Computer and Communications security,2000.
[4] T.Malkin,D.Micciancio,and S.Miner. Efficient generic forward-secure signatures with an unbounded number of time periods. In Advances in Cryptology-EUROCRYPT'02,Lecture Notes in Computer Science. Springer-Verlag,2002.
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an electronic signature method for electronically assigning a signature / seal with an electronic document deliberation / settlement, electronic voting system, etc., in particular, only a session signature key is updated without updating a master verification key. The present invention relates to a forward-secure signature method, an apparatus thereof, a program thereof, and a recording medium.
[0002]
[Prior art]
A number of electronic signature methods are known as prior art.
Recently, a new electronic signature called a Forward-Secure signature has attracted attention [References 1 to 4]. This signature feature can update only the session signature key without updating the master verification key, and even if the signature key of a session is stolen, it is created by the signature key before that session. It has the feature that the signature can be kept secure.
First, I will explain a simple method that anyone can think of, and then briefly describe the first Forward-Secure signature shown in document [2] and other methods.
Simple Construction Method (Part 1) The signer creates (pk 1 , sk 1 ),..., (Pk T , sk T ), T verification key / signature key pairs, and verifies the verification keys pk 1 ,. pk T is registered and the signature key (sk 1 ,..., sk T ) is kept secret. The signer signs for the first period using sk 1 as a signature key and pk 1 as a session verification key. At the time of key update, to change the signature key from sk i to sk i + 1, would destroy the sk i.
[0003]
The disadvantage of this method is that it requires a large number of verification keys and signature keys first, and the number of signature key updates is limited.
(Part 2) The signer creates (pk 1 , sk 1 ) as a pair of verification key and signature key, registers the verification key pk 1 , and keeps the signature key sk 1 secretly. The signer signs for the first period using sk 1 as a signature key and pk 1 as a session verification key. When updating the key, a new signature (pk i + 1 , sk i + 1 ) is created, and a signature σ i = sig ski (pk i +) that approves pk i + 1 using the immediately previous session verification key pk i. 1) to generate, also to change the signing key from sk i to sk i + 1, would destroy the sk i.
[0004]
In order to verify pk i + 1 , it is necessary to verify σ 1 ,..., σ i using all previous verification keys. For this reason, as the update progresses, it takes a long time and the amount of information to verify the session verification key.
In Bellare-Miner's construction method and other literature [2], Bellare-Miner constructed the Forward-Secure signature as follows.
Create N = pq from large different primes p and q. Z * n random numbers s 1 from ... to select s k, generating a relative 1 <i <k, U i = s i ^ 2 T + 1 mod N ( where A ^ B represents A B) To do. (U 1 ,..., U k N) are registered as master verification keys, (s 1 ,..., S k ) are stored as signature keys, and p and q are discarded.
[0005]
The signature is the Feige-Fiat-Shamir signature. The key is updated by assuming that the signature key in session j is SK j = {sk 1 j ,..., Sk k j } (sk i 1 = s i ), SK j + 1 = {(sk 1 j ) 2 mod N,..., (Sk k j ) 2 mod N}.
This method is superior to the above two methods, particularly (No. 1), but has the disadvantage that the number of signature key updates is limited. That is, if the key is updated T times, s i ^ 2 T is obtained , and the T + 1 time becomes the master key.
In addition, there are methods shown in the literature [1, 3, 4] and the like, but there are drawbacks such as a limited number of signature key updates and an increase in the amount of calculation according to the number of signature updates. The method shown in document [4] proposes a general Forward-Secure signature configuration method with no limit on the number of updates, but this method is inefficient and the amount of calculation changes depending on the number of signature updates. To do.
[0006]
[Problems to be solved by the invention]
As described above, the conventional methods have drawbacks such as a limited number of signature key updates and an increase in the amount of calculation according to the number of signature updates. The object of the present invention is a forward-secure signature method in which the efficiency does not depend on the number of signature updates, the signature is equivalent to the efficiency of a conventional Feige-Fiat-Shamir type signature, and the number of signature key updates is not limited The present invention provides an apparatus, a program thereof, and a recording medium.
[0007]
[Means for Solving the Problems]
When G is a group used for the discrete logarithm problem and the group operation is expressed by multiplication, the signer device generates s and x satisfying h = g s and y = g x for the element g of G. Publish (h, y) as a master verification key, generate a session verification key based on h, y, g, s, store (s, x) as a session signature key, store these session keys,
A signature is created for the message m using the session signature key (s, x), the signature, the session verification key, and the message are transmitted to the verifier device.
At the time of session update, g, s, x are changed to g ′, s ′, x ′ satisfying h = g ′ s ′, y = g ′ x ′, and similar to the generation of the session verification key. A new session verification key is generated based on h, y, g ′, and s ′, and the stored session key is updated using (s ′, x ′) as a new session signature key.
[0008]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 shows a configuration example of a system to which the method of the present invention is applied. The signer device 100 and the verifier device 200 can be coupled via an insecure communication path 300. The signer apparatus 100 can register the public key of the signer apparatus in the registration center apparatus 400, and the verifier apparatus 200 can acquire the public key of the signer apparatus 100 from the registration center apparatus 400.
Example 1
The embodiment of the present invention places safety grounds on the discrete logarithm problem of multiplicative groups over a finite field. That is, this is a case where the group operation is represented by multiplication as a group used for the discrete logarithm problem.
(1) Key Registration A large prime number q that divides a large prime number p and p−1 is registered and disclosed in the registration center apparatus 400 as a public parameter. An example of the functional configuration of the signer apparatus 100 is shown in FIG. 2, and the processing procedure is shown in FIG.
[0009]
When the signer device 100 joins the system, the random number generation unit 102 in the master key generation unit 101 randomly generates a value g 0 other than 1 from Z * p (= {1,..., P−1}). (S1), the power of (p-1) / q is calculated for the g 0 by the remainder power calculator 103 (S2). The calculation result is assumed to be g = g 0 (p-1) / q mod p.
Next, the random number generation unit 104 randomly generates two values s and x from Z q (= {0, 1,..., Q−1}) (S3). The remainder power multipliers 105 and 106 respectively calculate the s-th power and the x-th power of g to obtain the master public verification keys h = g s mod p and y = g x mod p (S4). These master public verification keys h and y are registered in the public verification key book 400a of the registration center device 400 (S5). A master public verification key h, y for each signer A is registered in the public verification key book 400a, and anyone can access it from the outside.
(2) Creation of Session Signature Key The signer apparatus 100 generates a random number uεZ q by the random number generation unit 104 (S6), and the power calculation unit 112 in the session key generation unit 111 raises g to the u power to obtain a = g u is calculated (S7). Further, a, g, master verification keys h, y, and public parameters p, q are input by the hash function calculation unit 113, and e = H (a, h, y, p, q, g) is calculated (S8). Using the hash operation result e and the random numbers u and s, the remainder multiplication / subtraction unit 114 calculates v = u-esmod q (S9).
[0010]
(V, e, g) is stored in the storage unit 121 as a session verification key and (s, x) is stored as the session signature key (S10). (S, x) is secret information.
(3) A case where the signer apparatus 100 signs the message m will be described after the creation of the signature.
The message m is input from the input unit 122 and temporarily stored in the storage unit 121 as necessary. It is checked whether a message m is input and a signature creation request is made (S11). If so, a random number wεZ * q is first generated from the random number generation unit 104 (S12), and a power operation unit in the signature generation unit 131 is generated. At 132, g is raised to the power of w to calculate b = g w (S13). The calculation result b, the master verification key h, y, the above g, and the message m are subjected to a hash calculation by the hash function calculation unit 133 to calculate c = H (b, h, y, p, q, g, m). (S14). The calculation result c, the random numbers w and c, and the session signature key x are input to the remainder multiplication / subtraction unit 134 to calculate z = w−cxmod q (S15). Using the calculation result c and z as a signature (c, z) for m, m, (c, z) and a session verification key (v, e, g) are transmitted from the communication unit 141 to the verifier device 200 (S16). ).
(4) The signature verification verifier apparatus 200 receives a verification request together with m, (c, z), (v, e, g) in the communication unit 201 as shown in FIG. The received information is temporarily stored in the storage unit 202. The verifier device 200 acquires the master public verification keys h and y of the signer A (signer device 100) from the registration center device 400, and verifies that these h and y are h ≠ y by the verification unit 203. The verification unit 204 verifies that h, y, and received g are not 1. These conditions are based on selecting g 0 from a value other than 1 at the time of key registration and selecting two s and x.
[0011]
Further, g received by the power calculation units 206 and 207 of the session key verification unit 205 is raised by the received v, and the master verification key h is raised by the received e, and the multiplication result is multiplied by the multiplication unit 208. The multiplication result and h, y, p, q, performs hash operation by entering and g in the hash function operation unit 209, the calculation result H (g v h e, h , y, p, q, g) and The comparison unit 211 checks whether the received e matches.
Similarly, in the signature verification unit 213, the power calculation units 214 and 215 calculate g z and y c , and multiply these results by the multiplication unit 216. The multiplication result and h, y, p, q, g , and m On the other hand, the hash function calculation unit 217 performs a hash calculation, and the comparison unit 218 confirms whether the result matches the received c .
[0012]
If all the verifications of the verification units 203, 204, 205, and 213 pass, the received (v, e, g) from the verification result output unit 219 is a session verification key based on the master verification key (h, y). And (c, z) is recognized as the signature of the message m with the session verification key (v, e, g), and a signal indicating pass (OK) is output, and even one of them does not pass verification. A signal indicating failure (NG) is output as an illegal signature.
Incidentally, (v, e, g) if the correct, v = u-es, h = from a g s g v h e = g u-es g es = g u, from the power calculation unit 112 (FIG. 2) g u = a. Therefore, the hash calculation of the calculation unit 209 is H (a, h, y, p, q, g), which matches the calculation result e of the calculation unit 113. Similarly (c, z) if the correct, z = w-cx, because it is y = g x, g z y c = g w - cx g cx = g w = b , and the arithmetic calculation section 217 H (B, h, y, p, q, g , m ), which matches the calculation result c of the calculation unit 133.
(5) Updating the signing key When it is time to update the session signing key (FIG. 3, S17), for example, when a certain period of time has passed after the generation of the session signing key, or when it has been used a predetermined number of times (see FIG. 2), the random number generation unit 104 generates a random number rεZ q (S18), the exponent operation unit 143 in the key update unit 142 calculates g ′ = g r , and the remainder multiplication units 144 and 145 respectively generate random numbers r. inverse r -1 and session signature key s of the x respectively remainder operation, s'= r -1 smod q, obtaining the x'= r -1 xmod q (S19 ). The session signature key is updated to these (s ′, x ′).
[0013]
A new session verification key is created as follows. A random number u′εZ * q is generated from the random number generation unit 104 (S20), calculated by a ′ = g ′ u ′ power calculation unit 146 (S21), and using a hash function calculation unit 147, e ′ = H (A ′, h, y, p, q, g ′) is calculated (S22), and the remainder multiplication / subtraction unit 148 uses the above u ′, e ′ and s ′ to generate v ′ = u′−e ′. s'mod q is calculated (S23).
(V ′, e ′, g ′) is stored as a new session verification key and (s ′, x ′) is stored as a new session signature key in the storage unit 121, and the old session signature key (s, x) is discarded. The process returns to S11 (S24). If not updated at step S17, the process proceeds to step S11. Therefore, the signatures for the subsequent message m are (s ′, x ′), (v ′, e ′, g ′), and s, x, v, e, g are used as signatures c and z by the signature creation unit 131. Then, the session verification key is sent to the verifier apparatus 200 as (v, e, g).
[0014]
Since the session key is updated as described above, it can be updated any number of times. Although g and its changed g ′ = g r are output to the outside, it is difficult to estimate r from g ′ and g because it is a discrete logarithm problem. Therefore, safety is maintained. Even if the session signature key s ′, x ′ is stolen, it is necessary to know r in order to obtain the previous session key by s = rs ′, x = rx ′, and it is difficult to know r. As such, there is no risk of forgery of signatures made prior to being stolen.
Also, only those who know y = h x / s mod p = h x/ smod p and h = g s mod p , y = g x mod p , y = h x / s mod p Can create x ′ and s ′, and satisfy g ′ and s so that the relationship of h = g ′ s mod p , y = g ′ xmod p , and y = h x/ smod p is satisfied. 'And x' may be updated.
[0015]
In the signer apparatus 100, each unit is sequentially operated by the control unit 149. In the verifier apparatus 200, each unit is operated by the control unit 230.
Example 2
The second embodiment of the present invention is a case where the basis of safety is a discrete logarithm problem that can be constructed on a group formed by rational points on an elliptic curve.
(1) A group formed by F p- rational points of an elliptic curve E defined on the key registration finite field F p is E (F p ), and a large prime q that divides the order of the group E (F p ) the placing subgroup having the position number and G (G⊂E (F p) and q | is #E (F p)). The above is registered and disclosed in the registration center apparatus 400 as a public parameter. FIG. 5 shows a functional configuration example of the signer apparatus 100.
[0016]
When the signer apparatus 100 joins the system, the random number generation unit 151 in the master key generation unit 150 randomly generates a value g from G- {0} ({0} represents a unit element). The random number generator 152 randomly generates two values s and x from Z q (= {0, 1,..., Q−1}), and the elliptic multiple calculators 153 and 154 generate h = s · g and y. = X · g is calculated to obtain the master verification key. Here, s · g and x · g represent s multiplication and x multiplication of the point g on the elliptic curve, respectively. Further, an addition operation on g and hεG is represented by g + h.
These master verification keys h and y are registered in the public verification key book 400 a of the registration center device 400.
(2) Creation of Session Signature Key The signer apparatus 100 generates a random number uεZ q by the random number generation unit 152, multiplies g by the elliptic multiple calculation unit 157 in the session key generation unit 156, and a = u · g is calculated, and the calculation result a and the master verification key h, y, g, G are input to the hash function calculation unit 158, and e = H (a, h, y, G, g) is calculated. The u, e and s are input to the remainder multiplication / subtraction unit 159 to calculate v = u−es mod q.
[0017]
(V, e, g) is stored in the storage unit 161 as a session verification key and (s, x) is stored as the session signature key.
(3) A case where the signer apparatus 100 signs the message m will be described after the creation of the signature.
The message m is input from the input unit 162 and temporarily stored in the storage unit 161 as necessary. A random number wεZ q is generated from the random number generation unit 152, w and g are input to the elliptic multiple calculation unit 164 in the signature generation unit 163, and b = w · g is calculated, and b, h, y, G , G, m are input to the hash function computing unit 165 to calculate c = H (b, h, y, G, g, m). The calculation result c, w and x are input to the remainder multiplication / subtraction unit 166 to calculate z = w−cx mod q. The calculation result z and c are used as a signature (c, z), and a session verification key ( v, e, g) and the verifier device 200 and the communication unit 167.
(4) When the verification / verification apparatus 200 for signatures receives m, (c, Z) (v, e, g) in the communication unit 240 as shown in FIG. Stored in the unit 241. The master public verification keys h and y of the signer apparatus 100 are acquired from the registration center apparatus 400, and it is verified by the verification unit 242 that these are h ≠ y, and h, y, and g are all not 0. Verification is performed by the verification unit 243. Further, H (v · g + e · h, h, y, G, g) is calculated by the hash function calculation unit 253 in the session key verification unit 244, and the comparison unit 256 determines whether the calculation result matches the received e. Then, H (z · g + c · h, h, y, G, g, m) is calculated by the hash function calculation unit 258 in the signature verification unit 257, and whether the result matches c is determined by the comparison unit 256. Check. Each verification result of the verification units 242, 243, 244, and 257 is input to the verification result output unit 261, and if these verification results satisfy all the conditions, (v, e, g) is used as the verification key (h, y). ) And pass information OK indicating that (c, z) is recognized as a signature with the session verification key (v, e, g) of the message m, and even one of the conditions is satisfied. If not, the failure information NG is output.
(5) Updating the signature key When the session key is updated, the signer apparatus 100 generates a random number rεZ q from the random number generation unit 152, and the elliptic multiple calculation unit 176 in the key update unit 175 performs g ′ = r · g is calculated, and s ′ = r −1 smod q and x ′ = r −1 x mod q are calculated by the remainder multipliers 177 and 178, respectively, and these (s ′, x ′) are used as new session signature keys. Update. A random number u′∈Z q is generated from the random number generator 152, a ′ = u ′ · g ′ is calculated by the elliptic multiple calculator 179, and e ′ = H (a ′, h) is further calculated by the hash function calculator 181. , Y, G, g ′), and v ′ = u′−e′s′mod q is calculated by the remainder multiplication / subtraction unit 182 using the above u ′, e ′ and s ′. (V ′, e ′, g ′) is stored in the storage unit 161 as a new session signature key using (s ′, x ′) as a new session verification key, and the old session signature key (s, x) is discarded. In order to create a signature for the message m using these new session keys (s ′, x ′) and (v ′, e ′, g ′), the signature creation unit 163 sets (s ′, x ′) to (s , X) and (v ′, e ′, g ′) as (v, e, g).
[0018]
As described above, the session key can be updated any number of times. Since g and g ′ leak to the outside and g ′ = r · g, it is difficult to estimate r based on the elliptic discrete logarithm problem. Therefore, safety is maintained. Even if the session signing key is stolen, r cannot be estimated, so the previous session signing key cannot be estimated, and the security of the signature made before it is stolen is maintained.
Also in this case, it is difficult to estimate r from g and g ′, and y = x · s− 1 · h = x ′ · s′− 1 · h and h = s · g, y = x · g Only those who know the relationship can update the session key.
[0019]
In the signer apparatus 100, each unit is sequentially operated by the control unit 170. In the verifier apparatus 200, each unit is sequentially operated by the control unit 263.
In the first and second embodiments, the random numbers s and x for generating the master verification keys h and y are used as the first session signature key, but may be generated by the key update units 142 and 165 from the first session signature key. . The calculation units 146, 147, and 148 that calculate a ′, e ′, and v ′ in the key update unit 142 in FIG. 2 have the same calculation formulas as the calculation units 112, 113, and 114 in the session key generation unit 111, respectively. Since u ′, g ′, s ′, and x ′ generated at the time of key update are u, g, s, and x, respectively, a ′, e ′, and v ′ are calculated by the calculation units 112, 113, and 114. Calculation may be performed, that is, the calculation units 146, 147, and 148 may be omitted. This also applies to the signer apparatus shown in FIG. 5 in the second embodiment, and the calculation units 169 to 171 and 172 can be omitted. From this point, for example, in the processing procedure shown in FIG. 3, the process proceeds from step S19 to step S6, and g ′, s ′, x ′ is used as g, s, x and new a ′, e ′, v ′. May be generated.
[0020]
In the example shown in FIG. 2 and FIG. 5, a power multiplication unit, a remainder multiplication unit, a hash function computation unit, a remainder multiplication / subtraction unit, an elliptic multiple computation unit, etc. are provided one by one. Various data required as a data source to be generated under control may be input and used for generation of various data. The same can be said for the verifier apparatus 200 shown in FIGS. 4 and 6.
As is clear from the above description, s and x satisfying h = g s , y = g x or satisfying h = s · g and y = x · g are generated, and (h, y) is set as the master public key. And the session signature key (s, x) itself, those updated as described above are used, and the session verification key created from h, y, g, s may be used. If the key is updated to g ′, s ′, x ′ satisfying h = g ′ s ′, y = g ′ x ′ or h = s ′ · g ′, y = x ′ · g ′ Good. In addition, it can be said that the session verification key is applied to h, y, g, and s by using s instead of x and the same method as the signature (c, z) creation method.
[0021]
The first embodiment and the signer devices 100 and the user devices 200 can each function as a computer. In that case, for example, a program for causing the computer to function as the signer device 100 shown in FIG. 2 is installed in the computer from a recording medium such as a CD-ROM or a flexible magnetic disk, or downloaded via a communication line. Then, the program may be executed.
The signature creation method is not limited to the examples shown in the first and second embodiments, and other methods may be used, and the session verification key generation method is changed accordingly.
[0022]
【The invention's effect】
As described above, according to the present invention, since the discrete logarithm problem is used, the session key can be updated infinitely, and the conventional and most efficient Forward-Secure electronic signature shown in the literature [2] can be used. Compared with the method, the Bellare-Miner method needs to have (U 1 ,..., U k , N) as a master verification key, but in the present invention, only (h, y) is required. The amount of information is 2 / (k + 1). Since the discrete logarithm problem on the elliptic curve is used in the second embodiment, the parameters of h and y can be further reduced, and the signature calculation time is short, so that the calculation amount is 1/4 and the information amount is 2 / (k + 1) or less. .
[Brief description of the drawings]
FIG. 1 is a diagram showing a simple example of a system configuration to which a method of the present invention is applied.
FIG. 2 is a diagram showing a functional configuration example of a signer apparatus 100 according to the first embodiment of the present invention.
3 is a flowchart showing an example of a processing procedure of the apparatus shown in FIG.
FIG. 4 is a diagram illustrating a functional configuration example of a verifier apparatus 200 according to the first embodiment.
FIG. 5 is a diagram illustrating a functional configuration example of a signer apparatus 100 according to the second embodiment.
6 is a diagram illustrating a functional configuration example of a verifier apparatus 200 according to Embodiment 2. FIG.
References
[1] M. Abdalla and L. Reyzin. A new forward-secure digital signature scheme. In T. Okamoto, editor, Advances in Cryptology-ASIACRYPT2000, volume 1976 of Lecture Notes in Computer Science, pages 116-129. Springer-Verlag 2000.
[2] M. Bellare and S. Miner. A forward-secure digital signature scheme. In M. Wiener, editor, Advances in Cryptoloty-CRYPTO'99, volume 1666 of Lecture Notes in Computer Science, pages 431-448. Springer- Verlag, 19999.
[3] H.Krawczyk. Simple forward-secure signatures from any signature scheme. In 7th ACM conference on Computer and Communications security, 2000.
[4] T. Malkin, D. Micciancio, and S. Miner. Efficient generic forward-secure signatures with an unbounded number of time periods. In Advances in Cryptology-EUROCRYPT'02, Lecture Notes in Computer Science. Springer-Verlag, 2002 .

Claims (13)

署名者装置のg 生成部が、Z (= { 1、・・・、p−1 } 、pは素数)から1以外の値g をランダムに生成するステップと、
署名者装置の剰余べき乗演算部が、上記g を用いてgをg=g (p-1)/q mod p(qは素数でp−1の約数)により算出するステップと、
署名者装置の乱数生成部が、Z (= { 0、1、・・・、q−1 } )からランダムに2つの値s,xを生成するステップと
署名者装置の第1べき乗演算部が、h=g s mod pを算出するステップと、
署名者装置の第2べき乗演算部が、y=g x mod pを算出するステップと、
上記と上記をマスタ検証鍵として、登録センタ装置に、その外部の装置からアクセス可能に保存するステップと、
署名者装置のセッション鍵生成部が、上記h,y,g,sを用いてセッション検証鍵を生成するステップと
上記セッション検証鍵を署名者装置の記憶部に保存するステップと、
上記と上記をセッション署名鍵とし、署名者装置の記憶部に保存するステップと
署名者装置の署名作成部が、メッセージmに対して上記セッション署名鍵を用いて署名を作成するステップと
署名者装置の通信部が、上記署名と上記セッション検証鍵と上記メッセージを検証者装置に送信するステップと、
を実行し、
セッション更新時に、
署名者装置の鍵更新部が、h=g´ s ´ mod p,y=g´ x ´ mod pを満たすg´,s´,x´を算出するステップと、
署名者装置の鍵更新部が、上記h,y,g´,s´を用いて新しいセッション検証鍵を生成するステップと
上記s´x´を新しいセッション署名鍵として署名者装置の記憶部に保存するステップと、
上記新しいセッション検証鍵を署名者装置の記憶部に保存するステップと、
を実行することを特徴とするフォワードセキュア電子署名方法。
A step in which the g 0 generation unit of the signer device randomly generates a value g 0 other than 1 from Z * p (= { 1,..., P−1 } , p is a prime number) ;
A step of calculating a power of g by g = g 0 (p−1) / q mod p (q is a prime number and a divisor of p−1) using the above g 0 , and
Comprising the steps of random number generation unit of the signer apparatus, Z q (= {0,1, ···, q-1}) from the random two to values s, to produce the x,
A first power calculation unit of the signer apparatus calculating h = g s mod p;
A second power calculator of the signer device calculating y = g x mod p;
And the h and the y as the master verification key, the registration center device, and storing from the external device accessibly,
A step of the session key generation unit of the signer apparatus generates a session verification key using the h, y, g, and s,
Storing the session verification key in the storage unit of the signer device;
A step of the above s and the x and session signature key, stored in the storage unit of the signer apparatus,
Signature maker of the signer's apparatus includes the steps of creating a signature using the session signature key for a message m,
The communication unit of the signer apparatus, and transmitting the said signature and said session verification key and the message to the verifier apparatus,
Run
When updating a session,
A key update unit of the signer device calculates g ′, s ′, x ′ satisfying h = g ′ s mod p, y = g ′ x mod p;
A key update unit of the signer device generates a new session verification key using h, y, g ′, and s ′;
And storing in a storage unit and the s'the x'a new session signature key signer apparatus,
Storing the new session verification key in the storage of the signer device;
Forward secure electronic signature method, characterized by the execution.
上記乱数s,xは互いに異な
上記セッション検証鍵を生成するステップは、
署名者装置の乱数生成部が、乱数uを生成するステップと
署名者装置の第3べき乗演算部が、a=guを計算するステップと
署名者装置の第1ハッシュ関数演算部が、a,h,y,gのビット結合値に対しハッシュ関数Hによりハッシュ関数計算を行って、ハッシュ値e=H(a,h,y,g)を求めるステップと
署名者装置の第1剰余乗算・減算部が、上記u,e及びsに対し、v=u−e・s mod qを計算するステップと、
を具備し、
上記セッション検証鍵は上記,上記,上記であり
上記署名作成するステップは、
署名者装置の乱数生成部が、乱数wを生成するステップと
署名者装置の第4べき乗演算部が、b=gwを計算するステップと
署名者装置の第2ハッシュ関数演算部が、b,h,y,g,mのビット結合値に対しハッシュ関数Hによりハッシュ関数計算をして、ハッシュ値c=H(b,h,y,g,m)を求めるステップと
署名者装置の第2剰余乗算・減算部が、上記w,c及びxに対し、z=w−c・x mod qを計算するステップと、
を具備し、
上記署名はであり
署名検証時に、
検証者装置の通信部が、上記メッセージと上記セッション検証鍵と上記署名を受信するステップと
検証者装置の第1検証部が、上記マスタ検証鍵を用い、hが等しくないことを検証するステップと
検証者装置の第2検証部が、h,y,gがそれぞれ1でないことを検証するステップと
検証者装置の第5べき乗演算部が、g v を計算するステップと、
検証者装置の第6べき乗演算部が、h e を計算するステップと、
検証者装置の第1乗算部が、g v とh e を乗算するステップと、
検証者装置の第3ハッシュ関数演算部が、g v e ,h,y,gのビット結合値に対しハッシュ関数Hにより、H(gv e ,h,y,g)のハッシュ関数計算を行うステップと
検証者装置の第1比較部が、上記第3ハッシュ関数演算部で算出されたハッシュ関数計算値とeと等しいことを検証するステップと
検証者装置の第7べき乗演算部が、g z を計算するステップと、
検証者装置の第8べき乗演算部が、y c を計算するステップと、
検証者装置の第2乗算部が、g z とy c を乗算するステップと、
検証者装置の第4ハッシュ関数演算部が、g z c ,h,y,g,mのビット結合値に対しハッシュ関数Hにより、H(gz c ,h,y,g,m)のハッシュ関数計算を行うステップと
検証者装置の第2比較部が、上記第4ハッシュ関数演算部で算出されたハッシュ関数計算値とcと等しいことを検証するステップと
上記第1検証部がhとyが等しくないと判定し、上記第2検証部がh,y,gがそれぞれ1でないと判定し、上記第1比較部が上記第3ハッシュ関数演算部で算出されたハッシュ関数計算値とeとが等しいと判定し、第2比較部が上記第4ハッシュ関数演算部で算出されたハッシュ関数計算値とcとが等しいと判定した場合に、検証者装置の検証結果出力部が、上記,上記,上記マスタ検証鍵のセッション検証鍵であり、上記c上記が上記メッセージのセッション検証鍵による署名であると認める信号を出力するステップと、
を実行し、
上記h=g´ s ´ mod p,y=g´ x ´ mod pを満たすg´,s´,x´を算出するステップは、
署名者装置の乱数生成部が、乱数rを生成するステップと
署名者装置の第9べき乗演算部が、g´=gr を計算するステップと
署名者装置の第1剰余乗算部が、s´=r-1・s mod qを計算するステップと
署名者装置の第2剰余乗算部が、x´=r-1・x mod qを計算するステップと、
を具備し
上記新しいセッション検証鍵を生成するステップは、
署名者装置の乱数生成部が、乱数u´を生成するステップと
署名者装置の第10べき乗演算部が、a´=g´u ´を計算するステップと
署名者装置の第5ハッシュ関数演算部が、a´,h,y,g´のビット結合値に対しハッシュ関数Hによりハッシュ関数計算を行って、ハッシュ値e´=H(a´,h,y,g´)を求めるステップと
署名者装置の第3剰余乗算・減算部が、上記u´,e´及びs´に対し、v´=u´−e´・s´mod qを計算するステップと、
を具備し
上記新しいセッション検証鍵は上記v´,上記e´,上記g´である、
ことを特徴とする請求項1記載のフォワードセキュア電子署名方法。
The random number s, x is varies each other,
The step of generating the session verification key includes:
Random number generation unit of the signer's apparatus includes the steps of generating a random number u,
The third power calculation unit of the signer apparatus, calculating a a = g u,
The first hash function calculation unit of the signer apparatus performs a hash function calculation on the bit combination values of a, h, y, and g using the hash function H , and a hash value e = H (a, h, y, g) and step asking you to,
The first modular multiplier-subtractor unit of the signer apparatus, the u, with respect to e及beauty s, calculating the v = u-e · s mod q,
Comprising
The above session verification key is above v, the above-mentioned e, the g,
Step to create the signature,
Random number generation unit of the signer's apparatus includes the steps of generating a random number w,
The fourth power operation of the signer apparatus, calculating a b = g w,
The second hash function calculation unit of the signer apparatus calculates a hash function with the hash function H for the bit combination values of b, h, y, g, m , and the hash value c = H (b, h, y, g, and a step asking you to m),
A second remainder multiplication / subtraction unit of the signer apparatus calculates z = w−c · x mod q for w, c and x ;
Comprising
The signature is the c and z,
During signature verification,
The communication unit of the verifier apparatus, receiving the and the signature the message and the session verification key,
A step first verification unit of the verifier apparatus, which uses the master verification key to verify that the h and y are not equal,
The second verification unit of the verifier apparatus, and a step of verifying that h, y, g is not each 1,
A fifth power calculator of the verifier device calculating g v ;
Sixth exponentiation of verifier device, calculating a h e,
First multiplication unit of the verifier apparatus, and a step of multiplying the g v and h e,
Third hash function operation unit of the verifier apparatus, g v h e, h, y, by the hash function H to the bit coupling value of g, the hash function calculation of H (g v h e, h , y, g) and line cormorant steps,
A step of first comparing section verifier device verifies that the hash function calculated value calculated in the third hash function operation unit and the e are equal,
A seventh power calculator of the verifier device calculates g z ;
An eighth power operation unit of the verifier device calculating y c ;
A second multiplying unit of the verifier device multiplying g z and y c ;
The fourth hash function calculation unit of the verifier device performs the hash function H on the bit combination value of g z y c , h, y, g, m to H (g z y c , H, y, g, and row Cormorant step hash function calculations m),
A step of second comparison unit of the verifier device verifies that the fourth hash function calculated value calculated by the hash function operation unit and c are equal,
The first verification unit determines that h and y are not equal, the second verification unit determines that h, y, and g are not 1, and the first comparison unit calculates the third hash function calculation unit. If the hash function calculation value and e are determined to be equal, and the second comparison unit determines that the hash function calculation value calculated by the fourth hash function calculation unit and c are equal, step verification result output unit, the v, the e, a session verification key of the g master verification key, which the c, the z outputs a signal admitted to be signed by the session verification key of the message When,
Run
The step of calculating g ′, s ′, x ′ satisfying h = g ′ s mod p, y = g ′ x mod p,
Random number generation unit of the signer's apparatus includes the steps of generating a random number r,
Ninth exponentiation of the signer apparatus, calculating a g '= g r,
A first remainder multiplication unit of the signer device calculating s ′ = r −1 · s mod q;
A second remainder multiplication unit of the signer device calculates x ′ = r −1 · x mod q ;
Comprising
The step of generating the new session verification key is as follows:
Random number generation unit of the signer's apparatus includes the steps of generating a random number u',
A step of calculating a = g ′ u by a tenth power operation unit of the signer device ;
The fifth hash function calculation unit of the signer apparatus performs a hash function calculation with the hash function H on the bit combination values of a ′, h, y, g ′ , and the hash value e ′ = H (a ′, h, comprising the steps of: y, Ru seek g'),
A step of calculating v ′ = u′−e ′ · s′mod q for u ′, e ′ and s ′ by the third remainder multiplication / subtraction unit of the signer device ;
Comprising
The new session verification key is above v', the e', is the above g',
The forward secure electronic signature method according to claim 1.
署名者装置のg生成部が、有限体FThe g generation unit of the signer device performs a finite field F p 上で定義される楕円曲線E上の点であって単位元を除く点gをランダムに生成するステップと、Randomly generating a point g on the elliptic curve E defined above and excluding unit elements;
署名者装置の乱数生成部が、ZThe random number generator of the signer device q (=(= {{ 0、1、・・・、q−1)からランダムに2つの値s,xを生成するステップと、Generating two values s, x randomly from 0, 1, ..., q-1);
署名者装置の第1楕円倍数演算部が、上記楕円曲線E上での点gのs倍算値h=s・gを算出するステップと、A step of calculating a s multiplication value h = s · g of a point g on the elliptic curve E by a first elliptic multiplication unit of the signer apparatus;
署名者装置の第2楕円倍数演算部が、上記楕円曲線E上での点gのx倍算値y=x・gを算出するステップと、A step of calculating a x multiplication value y = x · g of a point g on the elliptic curve E by a second elliptic multiple calculation unit of the signer apparatus;
上記hと上記yとをマスタ検証鍵として、登録センタ装置に、その外部の装置からアクセス可能に保存するステップと、Storing the above h and y as master verification keys in a registration center device so as to be accessible from an external device;
署名者装置のセッション鍵生成部が、上記h,y,g,sを用いてセッション検証鍵を生成するステップと、A session key generation unit of the signer device generates a session verification key using the h, y, g, and s;
上記セッション検証鍵を署名者装置の記憶部に保存するステップと、Storing the session verification key in the storage unit of the signer device;
上記sと上記xとをセッション署名鍵とし、署名者装置の記憶部に保存するステップと、 Storing s and x as a session signature key in a storage unit of a signer device;
署名者装置の署名作成部が、メッセージmに対して上記セッション署名鍵を用いて署名を作成するステップと、A step in which a signature creation unit of the signer device creates a signature for the message m using the session signature key;
署名者装置の通信部が、上記署名と上記セッション検証鍵と上記メッセージとを検証者装置に送信するステップと、A communication unit of the signer device transmits the signature, the session verification key, and the message to the verifier device;
を実行し、Run
セッション更新時に、When updating a session,
署名者装置の鍵更新部が、h=s´・g´(上記楕円曲線E上での点g´のs´倍算),y=x´・g´(上記楕円曲線E上での点g´のx´倍算)を満たすg´,s´,x´を算出するステップと、The key update unit of the signer apparatus performs h = s ′ · g ′ (s ′ multiplication of the point g ′ on the elliptic curve E), y = x ′ · g ′ (the point on the elliptic curve E) g ′, s ′, x ′ satisfying x ′ multiplication of g ′);
署名者装置の鍵更新部が、上記h,y,g´,s´を用いて新しいセッション検証鍵を生成するステップと、A key update unit of the signer device generates a new session verification key using h, y, g ′, and s ′;
上記s´とx´とを新しいセッション署名鍵として署名者装置の記憶部に保存するステップと、Storing the above s ′ and x ′ as a new session signing key in the storage unit of the signer device;
上記新しいセッション検証鍵を署名者装置の記憶部に保存するステップと、Storing the new session verification key in the storage of the signer device;
を実行することを特徴とするフォワードセキュア電子署名方法。A forward secure electronic signature method characterized in that:
上記乱数s,xは互いに異なり、The random numbers s and x are different from each other,
上記セッション検証鍵を生成するステップは、The step of generating the session verification key includes:
署名者装置の乱数生成部が、乱数uを生成するステップと、A random number generator of the signer device generates a random number u;
署名者装置の第3楕円倍数演算部が、上記楕円曲線E上での点gのu倍算値a=u・gを計算するステップと、A step of calculating a u multiplication value a = u · g of the point g on the elliptic curve E by a third elliptic multiple calculation unit of the signer apparatus;
署名者装置の第1ハッシュ関数演算部が、a,h,y,gのビット結合値に対しハッシュ関数Hによりハッシュ関数計算を行って、ハッシュ値e=H(a,h,y,g)を求めるステップと、The first hash function calculation unit of the signer device performs a hash function calculation on the bit combination values of a, h, y, and g using the hash function H, and a hash value e = H (a, h, y, g) A step of seeking
署名者装置の第1剰余乗算・減算部が、上記u,e及びsに対し、v=u−e・sThe first remainder multiplication / subtraction unit of the signer apparatus sets v = u−e · s for u, e and s. mod mod qを計算するステップと、calculating q;
を具備し、Comprising
上記セッション検証鍵は上記v,上記e,上記gであり、The session verification keys are v, e, and g,
上記署名を作成するステップは、The step of creating the signature is
署名者装置の乱数生成部が、乱数wを生成するステップと、A random number generator of the signer device generates a random number w;
署名者装置の第4楕円倍数演算部が、上記楕円曲線E上での点gのw倍算値b=w・gを計算するステップと、A step in which a fourth elliptic multiple calculation unit of the signer apparatus calculates a w multiplication value b = w · g of the point g on the elliptic curve E;
署名者装置の第2ハッシュ関数演算部が、b,h,y,g,mのビット結合値に対しハッシュ関数Hによりハッシュ関数計算をして、ハッシュ値c=H(b,h,y,g,m)を求めるステップと、The second hash function calculation unit of the signer apparatus calculates a hash function with the hash function H for the bit combination values of b, h, y, g, m, and the hash value c = H (b, h, y, g, m), and
署名者装置の第2剰余乗算・減算部が、上記w,c及びxに対し、z=w−c・xThe second remainder multiplication / subtraction unit of the signer apparatus sets z = w−c · x for w, c and x. mod mod qを計算するステップと、calculating q;
を具備し、Comprising
上記署名はcとzであり、The signature is c and z,
署名検証時に、During signature verification,
検証者装置の通信部が、上記メッセージと上記セッション検証鍵と上記署名とを受信するステップと、A communication unit of the verifier device receives the message, the session verification key, and the signature;
検証者装置の第1検証部が、上記マスタ検証鍵を用い、hとyとが等しくないことを検証するステップと、A first verification unit of the verifier device using the master verification key to verify that h and y are not equal;
検証者装置の第2検証部が、h,y,gがそれぞれ0でないことを検証するステップと、A second verification unit of the verifier device verifies that h, y, and g are not 0;
検証者装置の第3ハッシュ関数演算部が、v・g+e・h,h,y,gのビット結合値に対しハッシュ関数Hにより、H(v・g+e・h,h,y,g)のハッシュ関数計算を行うステップと、The third hash function calculation unit of the verifier device uses the hash function H for the bit combination value of v · g + e · h, h, y, and g to hash H (v · g + e · h, h, y, g). Performing a function calculation;
検証者装置の第1比較部が、上記第3ハッシュ関数演算部で算出されたハッシュ関数計算値とeとが等しいことを検証するステップと、The first comparison unit of the verifier device verifies that e is equal to the hash function calculation value calculated by the third hash function calculation unit;
検証者装置の第4ハッシュ関数演算部が、z・g+c・yThe fourth hash function calculation unit of the verifier device performs z · g + c · y ,h,y,g,mのビット結合値に対しハッシュ関数Hにより、H(z・g+c・y,h,y,g,m)のハッシュ関数計算を行うステップと、Performing a hash function calculation of H (z · g + c · y, h, y, g, m) with a hash function H on the bit combination values of h, y, g, m,
検証者装置の第2比較部が、上記第4ハッシュ関数演算部で算出されたハッシュ関数計算値とcとが等しいことを検証するステップと、The second comparison unit of the verifier apparatus verifies that the hash function calculation value calculated by the fourth hash function calculation unit is equal to c;
上記第1検証部がhとyが等しくないと判定し、上記第2検証部がh,y,gがそれぞれ1でないと判定し、上記第1比較部が上記第3ハッシュ関数演算部で算出されたハッシュ関数計算値とeとが等しいと判定し、第2比較部が上記第4ハッシュ関数演算部で算出されたハッシュ関数計算値とcとが等しいと判定した場合に、検証者装置の検証結果出力部が、上記v,上記e,上記gがマスタ検証鍵のセッション検証鍵であり、上記c,上記zが上記メッセージのセッション検証鍵による署名であると認める信号を出力するステップと、The first verification unit determines that h and y are not equal, the second verification unit determines that h, y, and g are not 1, and the first comparison unit calculates the third hash function calculation unit. If the hash function calculation value and e are determined to be equal, and the second comparison unit determines that the hash function calculation value calculated by the fourth hash function calculation unit and c are equal, A step of outputting a signal that the verification result output unit recognizes that v, e, and g are a session verification key of a master verification key, and c and z are signatures of a session verification key of the message;
を実行し、Run
上記h=s´・g´(上記楕円曲線E上での点g´のs´倍算),y=x´・g´(上記楕円曲線E上での点g´のx´倍算)を満たすg´,s´,x´を算出するステップは、H = s ′ · g ′ (s ′ multiplication of point g ′ on the elliptic curve E), y = x ′ · g ′ (x ′ multiplication of point g ′ on the elliptic curve E) The step of calculating g ′, s ′, x ′ satisfying
署名者装置の乱数生成部が、乱数rを生成するステップと、A random number generator of the signer device generates a random number r;
署名者装置の第5楕円倍数演算部が、上記楕円曲線E上での点gのr倍算値g´=r・gを計算するステップと、A step in which a fifth elliptic multiple computing unit of the signer apparatus calculates an r-multiplied value g ′ = r · g of the point g on the elliptic curve E;
署名者装置の第1剰余乗算部が、s´=rThe first remainder multiplication unit of the signer device is s ′ = r -1-1 ・s・ S mod  mod qを計算するステップと、calculating q;
署名者装置の第2剰余乗算部が、x´=rThe second remainder multiplication unit of the signer device sets x ′ = r -1-1 ・x・ X mod  mod qを計算するステップと、calculating q;
を具備し、Comprising
上記新しいセッション検証鍵を生成するステップは、The step of generating the new session verification key is as follows:
署名者装置の乱数生成部が、乱数u´を生成するステップと、A random number generator of the signer device generates a random number u ′;
署名者装置の第6楕円倍数演算部が、上記楕円曲線E上での点g´のu´倍算値a´=u´・g´を計算するステップと、A step of calculating a u ′ multiplication value a ′ = u ′ · g ′ of the point g ′ on the elliptic curve E by a sixth elliptic multiple calculation unit of the signer apparatus;
署名者装置の第5ハッシュ関数演算部が、a´,h,y,g´に対しハッシュ関数計算を行って、e´=H(a´,h,y,g´)を求めるステップと、A fifth hash function operation unit of the signer device calculates a hash function for a ′, h, y, g ′ to obtain e ′ = H (a ′, h, y, g ′);
署名者装置の第3剰余乗算・減算部が、上記u´,e´及びs´に対し、v´=u´−e´・s´The third remainder multiplication / subtraction unit of the signer apparatus applies v ′ = u′−e ′ · s ′ to u ′, e ′, and s ′. mod mod qを計算するステップと、calculating q;
を具備し、Comprising
上記新しいセッション検証鍵は上記v´,上記e´,上記g´である、The new session verification keys are v ′, e ′, and g ′.
ことを特徴とする請求項3記載のフォワードセキュア電子署名方法。The forward secure electronic signature method according to claim 3.
(= { 1、・・・、p−1 } 、pは素数)から1以外の値g をランダムに生成するg 生成部と、
上記g を用いてgをg=g (p-1)/q mod p(qは素数でp−1の約数)により算出する剰余べき乗演算部と、
(= { 0、1、・・・、q−1 } )からランダムに2つの値s,xを生成する乱数生成部と
h=g s mod pを算出する第1べき乗演算部と、
y=g x mod pを算出する第2べき乗演算部と、
上記h,y,g,sを用いてセッション検証鍵を生成するセッション鍵生成部と
メッセージmに対して上記セッション署名鍵を用いて署名を作成する署名作成部と
上記署名と上記セッション検証鍵と上記メッセージとを検証者装置に送信する通信部と、
を実行し、
セッション更新時に、h=g´ s ´ mod p,y=g´ x ´ mod pを満たすg´,s´,x´を算出し、上記h,y,g´,s´を用いて新しいセッション検証鍵を生成する鍵更新部と
上記sと上記xとをセッション署名鍵として、上記s´とx´とを新しいセッション署名鍵として、これらを上記セッション検証鍵、上記新しいセッション検証鍵と共に保存する記憶部と
を具備するフォワードセキュ電子署名の署名者装置。
A g 0 generator that randomly generates a value g 0 other than 1 from Z * p (= { 1,..., P−1 } , p is a prime number) ;
A power-of-residue calculating unit that calculates g by g = g 0 (p−1) / q mod p (q is a prime number and a divisor of p−1) using the above g 0 ;
A random number generator that randomly generates two values s and x from Z q (= { 0, 1,..., Q−1 } ) ;
a first power calculator for calculating h = g s mod p;
a second power calculator for calculating y = g x mod p;
A session key generation unit that generates a session verification key using h, y, g, and s ;
A signature creation unit that creates a signature for the message m using the session signature key ;
A communication unit that transmits the signature, the session verification key, and the message to the verifier device;
Run
At the time of session update, g ′, s , x satisfying h = g ′ s mod p, y = g′x mod p is calculated, and a new session is generated using the above h, y, g ′, s ′. A key update unit for generating a verification key ;
A storage unit for storing s and x as a session signing key, s 'and x' as a new session signing key, and storing them together with the session verification key and the new session verification key. signer apparatus of forward secure electronic signature.
上記乱数s,xは互いに異なり、
上記セッション検証鍵生成部は、
乱数uを生成する乱数生成部と、
a=g u を計算する第3べき乗演算部と、
a,h,y,gのビット結合値に対しハッシュ関数Hによりハッシュ関数計算を行って、ハッシュ値e=H(a,h,y,g)を求める第1ハッシュ関数演算部と、
上記u,e及びsに対し、v=u−e・s mod qを計算する第1剰余乗算・減算部と、
を具備し、
上記セッション検証鍵は上記v,上記e,上記gであり
上記署名作成部は、
乱数wを生成する乱数生成部と、
b=g w を計算する第4べき乗演算部と、
b,h,y,g,mのビット結合値に対しハッシュ関数Hによりハッシュ関数計算をして、ハッシュ値c=H(b,h,y,g,m)を求める第2ハッシュ関数演算部と、
上記w,c及びxに対し、z=w−c・x mod qを計算する第2剰余乗算・減算部と、
を具備し、
上記署名はcとzであり、
上記鍵更新部は、
乱数rと乱数u´とを生成する乱数生成部と、
g´=g r を計算する第9べき乗演算部と、
s´=r -1 ・s mod qを計算する第1剰余乗算部と、
x´=r -1 ・x mod qを計算する第2剰余乗算部と、
a´=g´ u ´ を計算する第10べき乗演算部と、
a´,h,y,g´のビット結合値に対しハッシュ関数Hによりハッシュ関数計算を行 って、ハッシュ値e´=H(a´,h,y,g´)を求める第5ハッシュ関数演算部と
上記u´,e´及びs´に対し、v´=u´−e´・s´ mod qを計算する第3剰余乗算・減算部と、
を具備し、
上記新しいセッション検証鍵は上記v´,上記e´,上記g´である、
ことを特徴とする請求項記載のフォワードセキュア電子署名の署名者装置。
The random numbers s and x are different from each other,
The session verification key generation unit
A random number generator for generating a random number u;
a third power calculator for calculating a = g u ;
a first hash function calculation unit that calculates a hash value e = H (a, h, y, g) by performing a hash function calculation on the bit combination values of a, h, y, and g using a hash function H;
A first modular multiplication / subtraction unit for calculating v = u−e · s mod q for u, e and s ;
Comprising
The session verification keys are v, e, and g ,
The signature creation part
A random number generator for generating a random number w;
a fourth power calculator for calculating b = g w ;
A second hash function computing unit that calculates a hash value c = H (b, h, y, g, m) by performing a hash function calculation with a hash function H on the bit combination values of b, h, y, g, m When,
A second modular multiplication / subtraction unit for calculating z = w−c · x mod q for w, c and x ;
Comprising
The signature is c and z,
The key update unit
A random number generator for generating a random number r and a random number u ′;
a ninth power calculating unit for calculating the g '= g r,
a first modular multiplication unit for calculating s ′ = r −1 · s mod q;
a second modular multiplication unit for calculating x ′ = r −1 · x mod q;
a tenth power calculation unit for calculating a = g ′ u ;
a', h, y, I row hash function calculated by the hash function H to the bit coupling value of g ', the hash value e'= H (a', h, y, g') fifth hash function for obtaining the An arithmetic unit ;
A third modular multiplication / subtraction unit for calculating v ′ = u′−e ′ · s ′ mod q for u ′, e ′ and s ′ ;
Comprising
The new session verification keys are v ′, e ′, and g ′.
6. The signer apparatus for a forward secure electronic signature according to claim 5 .
メッセージとセッション検証鍵と署名とを受信する通信部と、
公開されているhとyとを用い、hとyとが等しくないことを検証する第1検証部と
h,y,gがそれぞれ1でないことを検証する第2検証部と、
v を計算する第5べき乗演算部と、
e を計算する第6べき乗演算部と、
v とh e を乗算する第1乗算部と、
v e ,h,y,gのビット結合値に対しハッシュ関数Hにより、H(g v e ,h,y,g)のハッシュ関数計算を行う第3ハッシュ関数演算部と、
上記第3ハッシュ関数演算部で算出されたハッシュ関数計算値とeとが等しいことを検証するの第1比較部と、
z を計算する第7べき乗演算部と、
c を計算する第8べき乗演算部と、
z とy c を乗算する第2乗算部と、
z c ,h,y,g,mのビット結合値に対しハッシュ関数Hにより、H(g z c ,h,y,g,m)のハッシュ関数計算を行う第4ハッシュ関数演算部と、
上記第4ハッシュ関数演算部で算出されたハッシュ関数計算値とcとが等しいことを検証する第2比較部と、
上記第1検証部がhとyが等しくないと判定し、上記第2検証部がh,y,gがそれぞれ1でないと判定し、上記第1比較部が上記第3ハッシュ関数演算部で算出されたハッシュ関数計算値とeとが等しいと判定し、第2比較部が上記第4ハッシュ関数演算部で算出されたハッシュ関数計算値とcとが等しいと判定した場合に、上記v,上記e,上記gがマスタ検証鍵のセッション検証鍵であり、上記c,上記zが上記メッセージのセッション検証鍵による署名であると認める信号を出力する検証結果出力部と、
を備えるフォワードセキュア電子署名の検証者装置。
A communication unit that receives the message, the session verification key, and the signature;
A first verification unit that verifies that h and y are not equal, using publicly available h and y ;
a second verification unit that verifies that h, y, and g are not 1, respectively;
a fifth power calculator for calculating g v ;
a sixth power calculator for calculating h e ;
a first multiplication unit for multiplying the g v and h e,
g v h e, h, y , by the hash function H to the bit coupling value of g, and the third hash function operation unit for performing H (g v h e, h , y, g) a hash function calculations,
A first comparison unit that verifies that the hash function calculation value calculated by the third hash function calculation unit is equal to e;
a seventh power calculator for calculating g z ;
an eighth power operation unit for calculating y c ;
a second multiplier for multiplying g z and y c ;
g z y c, h, y , g, by the hash function H to the bit coupling values of m, H 4 hash function operation unit for performing (g z y c, h, y, g, m) hash function calculations When,
A second comparison unit for verifying that the hash function calculation value calculated by the fourth hash function calculation unit and c are equal;
The first verification unit determines that h and y are not equal, the second verification unit determines that h, y, and g are not 1, and the first comparison unit calculates the third hash function calculation unit. When the calculated hash function value and e are equal, and the second comparison unit determines that the hash function calculated value calculated by the fourth hash function calculation unit and c are equal, v, e, g is a session verification key of the master verification key, and c, z are verification result output units that output a signal that recognizes that the message is a signature by the session verification key of the message;
A forward secure electronic signature verifier device comprising:
有限体F 上で定義される楕円曲線E上の点であって単位元を除く点gをランダムに生成するg生成部と、
(= { 0、1、・・・、q−1 } )からランダムに2つの値s,xを生成する乱数生成部と
上記楕円曲線E上での点gのs倍算値h=s・gを算出する第1楕円倍数演算部と、
上記楕円曲線E上での点gのx倍算値y=x・gを算出する第2楕円倍数演算部と、
上記h,y,g,sを用いてセッション検証鍵を生成するセッション鍵生成部と
メッセージmに対して上記セッション署名鍵を用いて署名を作成する署名作成部と
上記署名と上記セッション検証鍵と上記メッセージとを検証者装置に送信する通信部と、
を実行し、
セッション更新時に、h=s´・g´(上記楕円曲線E上での点g´のs´倍算),y=x´・g´(上記楕円曲線E上での点g´のx´倍算)を満たすg´,s´,x´を算出し、上記h,y,g´,s´を用いて新しいセッション検証鍵を生成する鍵更新部と
上記sと上記xとをセッション署名鍵として、上記s´とx´とを新しいセッション署名鍵として、これらを上記セッション検証鍵、上記新しいセッション検証鍵と共に保存する記憶部と
を具備するフォワードセキュア電子署名の署名者装置。
A g generator for randomly generating a point g on the elliptic curve E defined on the finite field F p and excluding the unit element;
A random number generator that randomly generates two values s and x from Z q (= { 0, 1,..., Q−1 } ) ;
A first elliptic multiple calculation unit for calculating an s multiplication value h = s · g of the point g on the elliptic curve E;
A second elliptic multiple calculation unit for calculating an x multiplication value y = x · g of the point g on the elliptic curve E;
A session key generation unit that generates a session verification key using h, y, g, and s ;
A signature creation unit that creates a signature for the message m using the session signature key ;
A communication unit that transmits the signature, the session verification key, and the message to the verifier device;
Run
At the time of session update, h = s ′ · g ′ (s ′ multiplication of point g ′ on the elliptic curve E), y = x ′ · g ′ (x ′ of point g ′ on the elliptic curve E) A key update unit that calculates g ′, s ′, x ′ satisfying (multiplication) and generates a new session verification key using h, y, g ′, s ′ .
A storage unit for storing s and x as a session signature key, s ′ and x ′ as a new session signature key, and storing them together with the session verification key and the new session verification key;
A signer device for forward secure electronic signature comprising:
上記乱数s,xは互いに異なり、
上記セッション検証鍵生成部は、
乱数uを生成する乱数生成部と、
上記楕円曲線E上での点gのu倍算値a=u・gを計算する第3楕円倍数演算部と、
a,h,y,gのビット結合値に対しハッシュ関数Hによりハッシュ関数計算を行って、ハッシュ値e=H(a,h,y,g)を求める第1ハッシュ関数演算部と、
上記u,e及びsに対し、v=u−e・s mod qを計算する第1剰余乗算・減算部と、
を具備し、
上記セッション検証鍵は上記,上記,上記であり
上記署名作成部は、
乱数wを生成する乱数生成部と、
上記楕円曲線E上での点gのw倍算値b=w・gを計算する第4楕円倍数演算部と、
b,h,y,g,mのビット結合値に対しハッシュ関数Hによりハッシュ関数計算をして、ハッシュ値c=H(b,h,y,g,m)を求める第2ハッシュ関数演算部と、
上記w,c及びxに対し、z=w−c・x mod qを計算する第2剰余乗算・減算部と、
を具備し、
上記署名はcとzであり、
上記鍵更新部は、
乱数rと乱数u´とを生成する乱数生成部と、
上記楕円曲線E上での点gのr倍算値g´=r・gを計算する第5楕円倍数演算部と、
s´=r -1 ・s mod qを計算する第1剰余乗算部と、
x´=r -1 ・x mod qを計算する第2剰余乗算部と、
上記楕円曲線E上での点g´のu´倍算値a´=u´・g´を計算する第6楕円倍数演算部と、
a´,h,y,g´のビット結合値に対しハッシュ関数Hによりハッシュ関数計算を行って、ハッシュ値e´=H(a´,h,y,g´)を求める第5ハッシュ関数演算部と、
上記u´,e´及びs´に対し、v´=u´−e´・s´ mod qを計算する第3剰余乗算・減算部と、
を具備し、
上記新しいセッション検証鍵は上記v´,上記e´,上記g´である、
ことを特徴とする請求項8記載のフォワードセキュア電子署名の署名者装置。
The random numbers s and x are different from each other,
The session verification key generation unit
A random number generator for generating a random number u;
A third elliptic multiple arithmetic unit for calculating a u multiplication value a = u · g of the point g on the elliptic curve E;
a first hash function calculation unit that calculates a hash value e = H (a, h, y, g) by performing a hash function calculation on the bit combination values of a, h, y, and g using a hash function H;
A first modular multiplication / subtraction unit for calculating v = u−e · s mod q for u, e and s ;
Comprising
The above session verification key is above v, the above-mentioned e, the g,
The signature creation part
A random number generator for generating a random number w;
A fourth elliptic multiple calculation unit for calculating the w multiplication value b = w · g of the point g on the elliptic curve E;
A second hash function computing unit that calculates a hash value c = H (b, h, y, g, m) by performing a hash function calculation with a hash function H on the bit combination values of b, h, y, g, m When,
A second modular multiplication / subtraction unit for calculating z = w−c · x mod q for w, c and x ;
Comprising
The signature is c and z,
The key update unit
A random number generator for generating a random number r and a random number u ′;
A fifth elliptic multiple computing unit for calculating an r-multiplied value g ′ = r · g of the point g on the elliptic curve E;
a first modular multiplication unit for calculating s ′ = r −1 · s mod q;
a second modular multiplication unit for calculating x ′ = r −1 · x mod q;
A sixth elliptic multiple calculation unit for calculating the u ′ multiplication value a ′ = u ′ · g ′ of the point g ′ on the elliptic curve E;
A fifth hash function operation for calculating a hash function e ′ = H (a ′, h, y, g ′) by performing a hash function calculation with a hash function H on the bit combination values of a ′, h, y, g ′ And
A third modular multiplication / subtraction unit for calculating v ′ = u′−e ′ · s ′ mod q for u ′, e ′ and s ′ ;
Comprising
The new session verification keys are v ′, e ′, and g ′.
9. The signer apparatus for a forward secure electronic signature according to claim 8.
メッセージとセッション検証鍵と署名とを受信する通信部と、A communication unit that receives the message, the session verification key, and the signature;
公開されているhとyとを用い、hとyとが等しくないことを検証する第1検証部と、A first verification unit that verifies that h and y are not equal, using publicly available h and y;
h,y,gがそれぞれ0でないことを検証する第2検証部と、a second verification unit for verifying that h, y, and g are not 0,
v・g+e・h,h,y,gのビット結合値に対しハッシュ関数Hにより、H(v・g+e・h,h,y,g)のハッシュ関数計算を行う第3ハッシュ関数演算部と、a third hash function calculation unit that performs a hash function calculation of H (v · g + e · h, h, y, g) by a hash function H on the bit combination value of v · g + e · h, h, y, g;
上記第3ハッシュ関数演算部で算出されたハッシュ関数計算値とeとが等しいことを検証するの第1比較部と、A first comparison unit that verifies that the hash function calculation value calculated by the third hash function calculation unit is equal to e;
z・g+c・yz · g + c · y ,h,y,g,mのビット結合値に対しハッシュ関数Hにより、H(z・g+c・y,h,y,g,m)のハッシュ関数計算を行う第4ハッシュ関数演算部と、, H, y, g, m, a fourth hash function calculation unit that performs a hash function calculation of H (z · g + c · y, h, y, g, m) by a hash function H with respect to the bit combination value of
上記第4ハッシュ関数演算部で算出されたハッシュ関数計算値とcとが等しいことを検証する第2比較部と、A second comparison unit for verifying that the hash function calculation value calculated by the fourth hash function calculation unit and c are equal;
上記第1検証部がhとyが等しくないと判定し、上記第2検証部がh,y,gがそれぞれ1でないと判定し、上記第1比較部が上記第3ハッシュ関数演算部で算出されたハッシュ関数計算値とeとが等しいと判定し、第2比較部が上記第4ハッシュ関数演算部で算出The first verification unit determines that h and y are not equal, the second verification unit determines that h, y, and g are not 1, and the first comparison unit calculates the third hash function calculation unit. It is determined that the calculated hash function value is equal to e, and the second comparison unit calculates the fourth hash function calculation unit. されたハッシュ関数計算値とcとが等しいと判定した場合に、上記v,上記e,上記gがマスタ検証鍵のセッション検証鍵であり、上記c,上記zが上記メッセージのセッション検証鍵による署名であると認める信号を出力する検証結果出力部と、When it is determined that the calculated hash function value is equal to c, v, e, and g are session verification keys of the master verification key, and c and z are signatures of the message by the session verification key. A verification result output unit that outputs a signal that is recognized as
を備えるフォワードセキュア電子署名の検証者装置。A forward secure electronic signature verifier device comprising:
請求項5、6、8、9のいずれかに記載の署名者装置として、コンピュータを機能させるためのプログラム。  The program for functioning a computer as a signer apparatus in any one of Claim 5,6,8,9. 請求項7、10のいずれかに記載の検証者装置として、コンピュータを機能させるためのプログラム。  A program for causing a computer to function as the verifier device according to claim 7. 請求項11、12のいずれかに記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。  A computer-readable recording medium in which the program according to claim 11 is recorded.
JP2002132765A 2002-05-08 2002-05-08 Forward secure electronic signature method, apparatus, program, and recording medium Expired - Fee Related JP3939586B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002132765A JP3939586B2 (en) 2002-05-08 2002-05-08 Forward secure electronic signature method, apparatus, program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002132765A JP3939586B2 (en) 2002-05-08 2002-05-08 Forward secure electronic signature method, apparatus, program, and recording medium

Publications (2)

Publication Number Publication Date
JP2003324426A JP2003324426A (en) 2003-11-14
JP3939586B2 true JP3939586B2 (en) 2007-07-04

Family

ID=29544624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002132765A Expired - Fee Related JP3939586B2 (en) 2002-05-08 2002-05-08 Forward secure electronic signature method, apparatus, program, and recording medium

Country Status (1)

Country Link
JP (1) JP3939586B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101802826B1 (en) 2016-10-27 2017-11-30 고려대학교 산학협력단 Method for id-based authentication and key exchange

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4746406B2 (en) * 2005-11-11 2011-08-10 日本放送協会 Personal information protection system, signature key update method and personal information collection method, key management device and key generation program, signature key generation device and signature key generation program, personal information management device and personal information collection program, and content decryption device And personal information management program
JP5227764B2 (en) * 2008-12-02 2013-07-03 日本電信電話株式会社 Electronic signature verification system, electronic signature device, verification device, electronic signature verification method, electronic signature method, verification method, electronic signature program, verification program
KR101882578B1 (en) * 2016-04-28 2018-08-24 한양대학교 산학협력단 Forward-secure digital signature system and method with minimal secure zone

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101802826B1 (en) 2016-10-27 2017-11-30 고려대학교 산학협력단 Method for id-based authentication and key exchange

Also Published As

Publication number Publication date
JP2003324426A (en) 2003-11-14

Similar Documents

Publication Publication Date Title
JP5328186B2 (en) Data processing system and data processing method
EP2359523B1 (en) Acceleration of key agreement protocols
US8543811B2 (en) Efficient identity-based ring signature scheme with anonymity and system thereof
CN110637441A (en) Encryption key generation for data deduplication
JP2001511912A (en) Circular polynomial structure of discrete logarithmic cryptosystem over finite field
Brickell et al. Enhanced privacy ID from bilinear pairing
US6212637B1 (en) Method and apparatus for en-bloc verification of plural digital signatures and recording medium with the method recorded thereon
JP5099003B2 (en) Group signature system and information processing method
Verma et al. Efficient identity‐based blind message recovery signature scheme from pairings
US6959085B1 (en) Secure user identification based on ring homomorphisms
Sarath et al. A survey on elliptic curve digital signature algorithm and its variants
Daniel et al. A forward secure signcryption scheme with ciphertext authentication for e-payment systems using conic curve cryptography
JP3939586B2 (en) Forward secure electronic signature method, apparatus, program, and recording medium
Au et al. Proof-of-knowledge of representation of committed value and its applications
JP2002323852A (en) Method and device for elliptic curve ciphering, and program
KR101443935B1 (en) Fast rsa signature verification
WO2009090519A1 (en) Efficient reconstruction of a public key from an implicit certificate
JP2003318884A (en) Signature method and device using homomorphic unidirectional function, and method and device for verifying signature
JP3331328B2 (en) Multiple digital signature method, system, apparatus and program recording medium
Sahoo et al. EASB: ECC based aggregate signature without bilinear pairing for blockchain
Sharma et al. Adaptively secure strong designated signature
JP2003218858A (en) Signature generation method and signature verification method, signature-generating apparatus and signature- verifying apparatus, signature generation program and signature verification program, and storage medium for storing signature generation program and storage medium for storing signature verification program
JPH0695590A (en) Electronic signature system and electronic signature method
RU2325768C1 (en) Method of generation and authenticity check of electronic digital signature, which certifies electronic document
JP2002328602A (en) Blind signature method, device therefor, and program and recording medium therefor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040712

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20061004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070129

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070328

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110406

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120406

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees