JP3131907B2 - ディジタル署名方法 - Google Patents
ディジタル署名方法Info
- Publication number
- JP3131907B2 JP3131907B2 JP03018958A JP1895891A JP3131907B2 JP 3131907 B2 JP3131907 B2 JP 3131907B2 JP 03018958 A JP03018958 A JP 03018958A JP 1895891 A JP1895891 A JP 1895891A JP 3131907 B2 JP3131907 B2 JP 3131907B2
- Authority
- JP
- Japan
- Prior art keywords
- mod
- signer
- signature
- verifier
- calculates
- 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
Links
Description
【0001】
【産業上の利用分野】この発明は、電子化された文書の
稟議/決済、電子投票システム等で、電子的に署名/捺
印を付与するディジタル署名方法に関する。
稟議/決済、電子投票システム等で、電子的に署名/捺
印を付与するディジタル署名方法に関する。
【0002】
【従来の技術】ディジタル署名方式の代表的な例とし
て、Chaum のUndeniable 署名法 (David Chaum, Hans v
an Antwerpen, “Undeniable Signatures ”,Crypto89
Abstracts, pp.205-212,(1989), David Chaum “Zero-
Knowledge Undeniable Signatures”, Euro Crypt90 Ab
stracts, pp.419-426, (1990))がある。Chaum のディ
ジタル署名法は、署名の転用不可性と否認拒否性を備え
た安全性の高い方式である。
て、Chaum のUndeniable 署名法 (David Chaum, Hans v
an Antwerpen, “Undeniable Signatures ”,Crypto89
Abstracts, pp.205-212,(1989), David Chaum “Zero-
Knowledge Undeniable Signatures”, Euro Crypt90 Ab
stracts, pp.419-426, (1990))がある。Chaum のディ
ジタル署名法は、署名の転用不可性と否認拒否性を備え
た安全性の高い方式である。
【0003】署名の転用不可性とは、メッセージmと署
名sの対応関係(m,s)が署名としての証拠とはなら
ず、署名者がメッセージmと署名sの対応関係の正当性
を検証者との通信によって証明した場合にのみ署名の正
当性を確認できることである。通常のディジタル署名で
は、検証者がメッセージmと署名sの対応関係の正当性
を、署名者と通信せずに確認できるので、(m,s)が
署名の証拠となる。
名sの対応関係(m,s)が署名としての証拠とはなら
ず、署名者がメッセージmと署名sの対応関係の正当性
を検証者との通信によって証明した場合にのみ署名の正
当性を確認できることである。通常のディジタル署名で
は、検証者がメッセージmと署名sの対応関係の正当性
を、署名者と通信せずに確認できるので、(m,s)が
署名の証拠となる。
【0004】否認拒否性とは、検証者がメッセージmや
署名sとの対応関係(m,s)の正当性の証明を求めて
いる場合に、署名者が署名が誤っていることを証明でき
ることである。当然のことながら、署名者がメッセージ
mに対する正しい署名sの正当性を否認しようとしても
成功しないことが必要である。Chaum の Undeniable 署
名法は、以下の通りである。 (1)鍵の登録 署名者Aは、署名用鍵xと検査用鍵(g,p,y)を
(1)式 y=gx (mod p) (1) をみたすように生成し、検査用鍵を公開し、署名用鍵を
秘密に管理する。ここで、剰余計算a(mod p) は、aを
pで割ったときの余りを表す。
署名sとの対応関係(m,s)の正当性の証明を求めて
いる場合に、署名者が署名が誤っていることを証明でき
ることである。当然のことながら、署名者がメッセージ
mに対する正しい署名sの正当性を否認しようとしても
成功しないことが必要である。Chaum の Undeniable 署
名法は、以下の通りである。 (1)鍵の登録 署名者Aは、署名用鍵xと検査用鍵(g,p,y)を
(1)式 y=gx (mod p) (1) をみたすように生成し、検査用鍵を公開し、署名用鍵を
秘密に管理する。ここで、剰余計算a(mod p) は、aを
pで割ったときの余りを表す。
【0005】Chaum の署名法は、pが大きいとき、yと
gとpからy=gx (mod p) をみたすxを計算するのが
困難なこと(離散対数問題の困難性)に安全性の根拠を
おく署名法である。利用者の検査用鍵(g,p,y)
は、センタの公開ファイルにて管理され、必要に応じ
て、検証者Bはセンタに問い合わせて(g,p,y)を
払い出してもらう。 (2)署名の作成 署名者Aは、pと署名用鍵xを用いて、メッセージmに
対して(2)式 s=mx (mod p) (2) を計算して署名sを作り、これをメッセージmと共に検
証者Bに送信する(剰余付きの計算は、例えば池野、小
山「現代暗号理論」電子通信学会、pp.16-17,(1986) に
示されている)。 (3)署名の検査 検証者Bは、署名者Aと通信することによって、検査用
鍵を用いて署名sがメッセージmに対する正しい署名で
あることを、(a)の確認手順によって検査する。
gとpからy=gx (mod p) をみたすxを計算するのが
困難なこと(離散対数問題の困難性)に安全性の根拠を
おく署名法である。利用者の検査用鍵(g,p,y)
は、センタの公開ファイルにて管理され、必要に応じ
て、検証者Bはセンタに問い合わせて(g,p,y)を
払い出してもらう。 (2)署名の作成 署名者Aは、pと署名用鍵xを用いて、メッセージmに
対して(2)式 s=mx (mod p) (2) を計算して署名sを作り、これをメッセージmと共に検
証者Bに送信する(剰余付きの計算は、例えば池野、小
山「現代暗号理論」電子通信学会、pp.16-17,(1986) に
示されている)。 (3)署名の検査 検証者Bは、署名者Aと通信することによって、検査用
鍵を用いて署名sがメッセージmに対する正しい署名で
あることを、(a)の確認手順によって検査する。
【0006】一方、もし、署名sがメッセージmに対す
る正しい署名でない場合(以降では、改ざんされた署名
をtで表わす)には、署名者Aは(b)の否認手順によ
って証明する。 (a)確認手順 ステップ1 検証者Bは、2つの乱数aとbを生成し
て、(3)式を計算して通信文Xを X=ma ・gb (mod p) (3) 作り、これをメッセージmと署名sと共に署名者Aに送
信する。
る正しい署名でない場合(以降では、改ざんされた署名
をtで表わす)には、署名者Aは(b)の否認手順によ
って証明する。 (a)確認手順 ステップ1 検証者Bは、2つの乱数aとbを生成し
て、(3)式を計算して通信文Xを X=ma ・gb (mod p) (3) 作り、これをメッセージmと署名sと共に署名者Aに送
信する。
【0007】ステップ2 署名者Aは、乱数qを生成し
て、(4)、(5)式を計算して通信文(Y,Z)を Y=X・gq (mod p) (4) Z=Yx (mod p) (5) 作り、これを検証者Bに送信する。
て、(4)、(5)式を計算して通信文(Y,Z)を Y=X・gq (mod p) (4) Z=Yx (mod p) (5) 作り、これを検証者Bに送信する。
【0008】ステップ3 検証者Bは、2つの乱数aと
bを署名者Aに送信する。ステップ4 署名者Aは、受
信したaとbが、先に受信した通信文Xに対して (6)式の関係 X=ma ・gb (mod p) (6) をみたすことを検査して、合格なら、qを検証者Bに送
信する。不合格なら処理を停止する。
bを署名者Aに送信する。ステップ4 署名者Aは、受
信したaとbが、先に受信した通信文Xに対して (6)式の関係 X=ma ・gb (mod p) (6) をみたすことを検査して、合格なら、qを検証者Bに送
信する。不合格なら処理を停止する。
【0009】ステップ5 検証者Bは、受信したq、先
に受信した通信文(Y,Z)、先に生成したaとbが、
検査用鍵の一成分y、メッセージmと署名sに対して
(7)、(8)式の関係 Y=ma ・gb+q (mod p) (7) Z=sa ・yb+q (mod p) (8) をみたすことを確認する。合格ならば、sがmに対する
署名者Aの正しい署名であると判断する。注)ここで、
等号が成立することは、Y=X・gq =(ma ・gb )
gq =ma ・gb+q (mod p) Z=Yx =(ma ・
gb+q )x =(mx )a ・(gx )b+q =sa ・yb+q
(modp) より明らかである。 (b)否認手順 ステップ1 検証者Bは、2つの乱数c(O≦c≦k)
と乱数dを生成して、(9)、(10)式を計算して通
信文(V,W)を V=mc ・gd (mod p) (9) W=tc ・yd (mod p) (10) 作り、これをメッセージmと署名tと共に署名者Aに送
信する(ここでkは安全性のパラメータでありAとBが
予め合意した値である)。
に受信した通信文(Y,Z)、先に生成したaとbが、
検査用鍵の一成分y、メッセージmと署名sに対して
(7)、(8)式の関係 Y=ma ・gb+q (mod p) (7) Z=sa ・yb+q (mod p) (8) をみたすことを確認する。合格ならば、sがmに対する
署名者Aの正しい署名であると判断する。注)ここで、
等号が成立することは、Y=X・gq =(ma ・gb )
gq =ma ・gb+q (mod p) Z=Yx =(ma ・
gb+q )x =(mx )a ・(gx )b+q =sa ・yb+q
(modp) より明らかである。 (b)否認手順 ステップ1 検証者Bは、2つの乱数c(O≦c≦k)
と乱数dを生成して、(9)、(10)式を計算して通
信文(V,W)を V=mc ・gd (mod p) (9) W=tc ・yd (mod p) (10) 作り、これをメッセージmと署名tと共に署名者Aに送
信する(ここでkは安全性のパラメータでありAとBが
予め合意した値である)。
【0010】ステップ2 署名者Aは、rを1からkま
で取り直して (t/mx )r =W/VX (mod p) (11) をみたすrを求めて、rのコミットメント関数の値e=
BC(r)を検証者Bに送信する(ここでコミットメン
ト関数とは、rに対してBC(r)=BC(r′)をみ
たすr′を見つけるのが困難な関数である)。
で取り直して (t/mx )r =W/VX (mod p) (11) をみたすrを求めて、rのコミットメント関数の値e=
BC(r)を検証者Bに送信する(ここでコミットメン
ト関数とは、rに対してBC(r)=BC(r′)をみ
たすr′を見つけるのが困難な関数である)。
【0011】コミットメント関数BCの構成例は、Gill
es Brassard, Claude Crepeau:“Non-transitive trans
fer of confidence: A perfect zero-knowledge intera
ctive protocol for SAT and beyond ”, FOCS'86,pp.1
88-195 に示されている。ステップ3 検証者Bは、乱
数dを署名者Aに送信する。ステップ4 署名者Aは、
受信したdが、通信文(V,W)に対して (V,W)=(mr gd (mod p) ,tr yd (mod p) )
(11a) をみたすことを確認する。成立すれば、rを検証者Bに
送信する。成立しなければ、検証者Bが検証以外のこと
に不正利用していると判断して処理を停止する。
es Brassard, Claude Crepeau:“Non-transitive trans
fer of confidence: A perfect zero-knowledge intera
ctive protocol for SAT and beyond ”, FOCS'86,pp.1
88-195 に示されている。ステップ3 検証者Bは、乱
数dを署名者Aに送信する。ステップ4 署名者Aは、
受信したdが、通信文(V,W)に対して (V,W)=(mr gd (mod p) ,tr yd (mod p) )
(11a) をみたすことを確認する。成立すれば、rを検証者Bに
送信する。成立しなければ、検証者Bが検証以外のこと
に不正利用していると判断して処理を停止する。
【0012】ステップ5 検証者Bは、受信したrがe
=BC(r)をみたし、さらにr=cが成り立つことを
確認する。ステップ6 上記のステップをZ回繰り返
し、署名の非正当性を確認する(ここでZは安全性のパ
ラメータであり、署名者Aと検証者Bとが予め合意した
値である)。
=BC(r)をみたし、さらにr=cが成り立つことを
確認する。ステップ6 上記のステップをZ回繰り返
し、署名の非正当性を確認する(ここでZは安全性のパ
ラメータであり、署名者Aと検証者Bとが予め合意した
値である)。
【0013】以上のようにして、確認手順で、正しい署
名であれば、これが確認され、正しくない署名であれ
ば、正しい署名とは認識されない。この確認手順では正
しい署名者が、正しい署名でないと偽わることができな
いことは保証されない。しかし否認手順で、正しくない
署名を正しくないと認識し、正しい署名を正しくないと
認識できないから、正しい署名者が偽わって正しい署名
を自己の署名でないと否認することができない。
名であれば、これが確認され、正しくない署名であれ
ば、正しい署名とは認識されない。この確認手順では正
しい署名者が、正しい署名でないと偽わることができな
いことは保証されない。しかし否認手順で、正しくない
署名を正しくないと認識し、正しい署名を正しくないと
認識できないから、正しい署名者が偽わって正しい署名
を自己の署名でないと否認することができない。
【0014】
【発明が解決しようとする課題】このChaum の方法は発
明の効果の項で後述するように署名者、検証者の各処理
量が多く、また通信回数が多い欠点があった。電子化さ
れた文書の稟議/決済、電子投票システム等では、文書
に付与された電子的な署名/捺印の真偽を確認したいと
いう要求がしばしば生じる。
明の効果の項で後述するように署名者、検証者の各処理
量が多く、また通信回数が多い欠点があった。電子化さ
れた文書の稟議/決済、電子投票システム等では、文書
に付与された電子的な署名/捺印の真偽を確認したいと
いう要求がしばしば生じる。
【0015】Chaum の方法を考察した場合、この目的に
かなうものであるが、署名の確認、ないし否認の手順と
に、それぞれ異なる手続きを用いている。このため、こ
れの実現においては、異なる装置(ないしソフトウエ
ア)を2種類用意し、その目的に応じてどちらかの装置
を選択して運用しなければならないことになる。更にCh
aum の方法は、確認の手順は1回で終了するが、否認の
手順は複数回繰り返す必要があり、ステップ1〜5を並
列的に行って複数の通信文を同時に送信した場合には、
安全性は保証されない。
かなうものであるが、署名の確認、ないし否認の手順と
に、それぞれ異なる手続きを用いている。このため、こ
れの実現においては、異なる装置(ないしソフトウエ
ア)を2種類用意し、その目的に応じてどちらかの装置
を選択して運用しなければならないことになる。更にCh
aum の方法は、確認の手順は1回で終了するが、否認の
手順は複数回繰り返す必要があり、ステップ1〜5を並
列的に行って複数の通信文を同時に送信した場合には、
安全性は保証されない。
【0016】この発明の目的は処理量が少なく、かつ通
信回数も少なく、しかも署名の確認、否認手順を同じ手
続きで行うことが可能なディジタル署名方法を提供する
ことにある。
信回数も少なく、しかも署名の確認、否認手順を同じ手
続きで行うことが可能なディジタル署名方法を提供する
ことにある。
【0017】
【課題を解決するための手段】この発明によれば署名者
は署名用鍵xを用いてこれと対応する公開情報yを生成
し、そのyを公開し、署名者はメッセージmに対し、署
名用鍵xを用いて署名sを作り、これらmとsとを検証
者へ送信し、検証者はmとsとの対を署名者へ送信し、
署名者は乱数v0 とv1 を用いて検証用情報A0 とA1
とを生成して検証者へ送信し、検証者は乱数qi ∈
{0,1}を発生し、qi =0の時はA0 を、qi =1
の時はA1 、つまりAqiを用いて、これらと乱数ui と
から複数の通信文Qi を生成して、署名者へ送信し(i
=1,2,…,8)、署名者は乱数r i と公開情報yと
関連した情報とを用いて複数の鍵検証用通信文X1iを生
成し、またri とメッセージmとを用いて複数の署名検
証用通信文X2iとを生成してX 1i,X2iを検証者へ送信
し、検証者はqi ,ui を署名者へ送信し、署名者は受
信したqi ,ui と先に受信したQi とからそのqi の
正当性を確認し、ri ,qi ,xから複数の通信文Yi
を生成し、これとv0 ,v1 とを検証者へ送信し、検証
者は受信したv0 ,v1 を用いて先に受信した検証用情
報A0 ,A1 の正当性を検証し、Yi とX1iとyとqi
とを用いて鍵xの正当性と、Yi とX2iとmとqi とを
用いて署名sの正当性とを検証する。
は署名用鍵xを用いてこれと対応する公開情報yを生成
し、そのyを公開し、署名者はメッセージmに対し、署
名用鍵xを用いて署名sを作り、これらmとsとを検証
者へ送信し、検証者はmとsとの対を署名者へ送信し、
署名者は乱数v0 とv1 を用いて検証用情報A0 とA1
とを生成して検証者へ送信し、検証者は乱数qi ∈
{0,1}を発生し、qi =0の時はA0 を、qi =1
の時はA1 、つまりAqiを用いて、これらと乱数ui と
から複数の通信文Qi を生成して、署名者へ送信し(i
=1,2,…,8)、署名者は乱数r i と公開情報yと
関連した情報とを用いて複数の鍵検証用通信文X1iを生
成し、またri とメッセージmとを用いて複数の署名検
証用通信文X2iとを生成してX 1i,X2iを検証者へ送信
し、検証者はqi ,ui を署名者へ送信し、署名者は受
信したqi ,ui と先に受信したQi とからそのqi の
正当性を確認し、ri ,qi ,xから複数の通信文Yi
を生成し、これとv0 ,v1 とを検証者へ送信し、検証
者は受信したv0 ,v1 を用いて先に受信した検証用情
報A0 ,A1 の正当性を検証し、Yi とX1iとyとqi
とを用いて鍵xの正当性と、Yi とX2iとmとqi とを
用いて署名sの正当性とを検証する。
【0018】
【作用】このようにこの発明では、署名鍵の正当性を示
す手順と署名の正当性を示す手順を同時に行うことによ
り、従来方式では独立な手続きで行われていた署名の確
認手順と否認手順とを同一の手続きで行え、装置を簡略
化することができる。また、Mihir Bellare, Silvio Mi
cali, Rafail Ostrovsky:“Perfect zero-knowledge i
n constant rounds ”,STOC'90, pp.482-493 に示され
ている手法を用いることにより、署名の確認・否認手順
を1回で行えるようにし、通信の繰り返し回数を削減す
ることができる。
す手順と署名の正当性を示す手順を同時に行うことによ
り、従来方式では独立な手続きで行われていた署名の確
認手順と否認手順とを同一の手続きで行え、装置を簡略
化することができる。また、Mihir Bellare, Silvio Mi
cali, Rafail Ostrovsky:“Perfect zero-knowledge i
n constant rounds ”,STOC'90, pp.482-493 に示され
ている手法を用いることにより、署名の確認・否認手順
を1回で行えるようにし、通信の繰り返し回数を削減す
ることができる。
【0019】
【実施例】以下では、この発明の一実施例について説明
する。図1はこの発明が適用されるシステムの構成例を
示す。公開ファイル100が署名者装置200及び検証
者装置500とそれぞれ各別の安全な通信路300を介
して結合され、署名者装置200と検証者装置500と
は安全でない通信路400を介して結合されているとす
る。図2に公開ファイル100の内容を示す。システム
に共通な情報p,qが登録され、また各利用者対応に公
開情報が登録されている。図3にこの発明の通信シーケ
ンス例を示し、図4及び図5に署名者装置200の構成
例を示し、図6及び図7に検証者装置500の構成例を
示す。 (1)鍵の登録 署名者Aがシステムに加入するとき、剰余付き計算器2
10を用いて公開情報yを生成して公開ファイル100
に登録する。公開ファイルには、システム内一意の共通
情報として(g,p)が公開されている(但し、p:素
数、g:原始根)。
する。図1はこの発明が適用されるシステムの構成例を
示す。公開ファイル100が署名者装置200及び検証
者装置500とそれぞれ各別の安全な通信路300を介
して結合され、署名者装置200と検証者装置500と
は安全でない通信路400を介して結合されているとす
る。図2に公開ファイル100の内容を示す。システム
に共通な情報p,qが登録され、また各利用者対応に公
開情報が登録されている。図3にこの発明の通信シーケ
ンス例を示し、図4及び図5に署名者装置200の構成
例を示し、図6及び図7に検証者装置500の構成例を
示す。 (1)鍵の登録 署名者Aがシステムに加入するとき、剰余付き計算器2
10を用いて公開情報yを生成して公開ファイル100
に登録する。公開ファイルには、システム内一意の共通
情報として(g,p)が公開されている(但し、p:素
数、g:原始根)。
【0020】ステップ1 署名者Aは、乱数発生器20
5を用いて署名用鍵xを生成して、xとpとgから剰余
つき計算器210を用いて公開情報yを次式、y=gx
(mod p) (12) で計算して、公開ファイル100に登録する。 (2)署名の作成 以降では、署名者Aがメッセージmに署名する場合につ
いて説明する。
5を用いて署名用鍵xを生成して、xとpとgから剰余
つき計算器210を用いて公開情報yを次式、y=gx
(mod p) (12) で計算して、公開ファイル100に登録する。 (2)署名の作成 以降では、署名者Aがメッセージmに署名する場合につ
いて説明する。
【0021】ステップ2 署名者Aは、剰余つき計算器
215を用いて公開情報pと署名用鍵xとから、メッセ
ージmに対して次式 s=mx (mod p) (13) で署名sを計算して、mとsの対を検証者Bに送信す
る。 (3)署名の検査 検証者Bは、署名者Aと通信することによって、署名s
が署名者Aのメッセージmに対する正しい署名であるこ
とを、または、署名sがメッセージmに対する正しい署
名でないことを検査する。
215を用いて公開情報pと署名用鍵xとから、メッセ
ージmに対して次式 s=mx (mod p) (13) で署名sを計算して、mとsの対を検証者Bに送信す
る。 (3)署名の検査 検証者Bは、署名者Aと通信することによって、署名s
が署名者Aのメッセージmに対する正しい署名であるこ
とを、または、署名sがメッセージmに対する正しい署
名でないことを検査する。
【0022】ステップ3 検証者Bは、検査したいメッ
セージと署名の対(m,s)を署名者Aに送信する。ス
テップ4 署名者Aは、乱数発生器220を用いて乱数
v0 とv1 を生成して、これらと公開情報p,qとを用
いて剰余付き計算器225,230で検証用情報A0 ,
A1を次式の A0 =gvo(mod p) (14) A1 =gv1 (mod p) (15) 計算により作成して、検証者Bに送信する。
セージと署名の対(m,s)を署名者Aに送信する。ス
テップ4 署名者Aは、乱数発生器220を用いて乱数
v0 とv1 を生成して、これらと公開情報p,qとを用
いて剰余付き計算器225,230で検証用情報A0 ,
A1を次式の A0 =gvo(mod p) (14) A1 =gv1 (mod p) (15) 計算により作成して、検証者Bに送信する。
【0023】ステップ5 検証者Bは、乱数発生器51
0を用いて乱数qi∈{0,1}(i=1,…,z)と
ui (i=1,…,z)を生成して、qi =0の時はA
0 を用い、qi =1の時はA1 を用いて剰余付き計算器
505及び515により下記(16)式の通信文Q
i (i=1,…,z)を Qi =Aqigui (mod p) (16) で計算して、署名者Aに送信する(ここでzは安全性の
パラメータであり署名者Aと検証者Bとが予め合意した
値である)。
0を用いて乱数qi∈{0,1}(i=1,…,z)と
ui (i=1,…,z)を生成して、qi =0の時はA
0 を用い、qi =1の時はA1 を用いて剰余付き計算器
505及び515により下記(16)式の通信文Q
i (i=1,…,z)を Qi =Aqigui (mod p) (16) で計算して、署名者Aに送信する(ここでzは安全性の
パラメータであり署名者Aと検証者Bとが予め合意した
値である)。
【0024】ステップ6 署名者Aは、乱数発生器23
5を用いて乱数ri(i=1,…,z)を生成し、ri
と、公開情報y1 つまり公開情報p,gとを用いて次の
(17)式を剰余付き計算器240で計算して鍵検証用
通信文X1iを作り、またri とmとpとを用いて次の
(18)式を剰余付き計算器245で計算して署名検証
用通信文X2i(i=1,…,z)を作り、 X1i=gri(mod p) (17) X2i=mri(mod p) (18) これら通信文X1i,X2iを検証者Bに送信する。
5を用いて乱数ri(i=1,…,z)を生成し、ri
と、公開情報y1 つまり公開情報p,gとを用いて次の
(17)式を剰余付き計算器240で計算して鍵検証用
通信文X1iを作り、またri とmとpとを用いて次の
(18)式を剰余付き計算器245で計算して署名検証
用通信文X2i(i=1,…,z)を作り、 X1i=gri(mod p) (17) X2i=mri(mod p) (18) これら通信文X1i,X2iを検証者Bに送信する。
【0025】ステップ7 検証者Bは、(qi ,ui )
(i=1,…,z)を署名者Aに送信する。ステップ8
署名者Aは、受信したqi ,ui で(16)式を計算
し、この計算結果が先に受信したQi と一致するか否か
を検査して、一致して合格ならば、先に用いたri と署
名用鍵xとqi とから、乗算器260、剰余付き加算器
265を用いて次式の通信文Yi (i=1,…,l)を
計算し、 Yi =ri +qi x(mod p-1) (19) このYi とv0 ,v1 とを、検証者Bに送信する。不合
格ならば、検証者Bの不正を検出したとして処理を停止
する。
(i=1,…,z)を署名者Aに送信する。ステップ8
署名者Aは、受信したqi ,ui で(16)式を計算
し、この計算結果が先に受信したQi と一致するか否か
を検査して、一致して合格ならば、先に用いたri と署
名用鍵xとqi とから、乗算器260、剰余付き加算器
265を用いて次式の通信文Yi (i=1,…,l)を
計算し、 Yi =ri +qi x(mod p-1) (19) このYi とv0 ,v1 とを、検証者Bに送信する。不合
格ならば、検証者Bの不正を検出したとして処理を停止
する。
【0026】ステップ9 検証者Bは、受信したv0 ,
v1 を用いて剰余付き計算器520,530で(1
4),(15)式をそれぞれ計算し、これら計算結果を
比較器525,535を用いて、それぞれ先に受信した
検証用情報A0 ,A1 と一致するかを検査して、不一致
で不合格ならば、署名者Aの不正を検出したとして処理
を停止する。合格ならば、さらに、先に受信したX1iと
yと、qi とpとを用いて剰余付き計算器540でX1i
・yqi(mod p)を演算し、またX2iとsとqi とpとを
用いて剰余付き計算器555でX2i・sqi(mod p)を演
算し、かつ受信したYi とgと、pとを用いて剰余付き
計算器545でgYi(mod p)を演算し、Yi とmとpと
を用いて剰余付き計算器560でmYi(mod p)を演算
し、これらを比較器550,565によりそれぞれ比較
し、受信したYi ,X1i,X2i,先に送信したqi が、
メッセージmと署名sとに対し次の検査式(20),
(21) X1i・yqi=gYi(mod p) (20) X2i・sqi=mYi(mod p) (21) を満たすか否かを検査する。各i(i=1,…,z)に
対してqi =0の時には両検査式を合格することを確認
し、つまりX1i,X2iをri から作ったことを確認し、
署名者Aが不正していないことを検証し、またqi =1
の時には両検査式に合格ならばsがmに対する署名者A
の正当な署名であり、前者の検査式(20)のみに合格
ならばsがmに対する署名者Aの正当な署名でないと判
断する。
v1 を用いて剰余付き計算器520,530で(1
4),(15)式をそれぞれ計算し、これら計算結果を
比較器525,535を用いて、それぞれ先に受信した
検証用情報A0 ,A1 と一致するかを検査して、不一致
で不合格ならば、署名者Aの不正を検出したとして処理
を停止する。合格ならば、さらに、先に受信したX1iと
yと、qi とpとを用いて剰余付き計算器540でX1i
・yqi(mod p)を演算し、またX2iとsとqi とpとを
用いて剰余付き計算器555でX2i・sqi(mod p)を演
算し、かつ受信したYi とgと、pとを用いて剰余付き
計算器545でgYi(mod p)を演算し、Yi とmとpと
を用いて剰余付き計算器560でmYi(mod p)を演算
し、これらを比較器550,565によりそれぞれ比較
し、受信したYi ,X1i,X2i,先に送信したqi が、
メッセージmと署名sとに対し次の検査式(20),
(21) X1i・yqi=gYi(mod p) (20) X2i・sqi=mYi(mod p) (21) を満たすか否かを検査する。各i(i=1,…,z)に
対してqi =0の時には両検査式を合格することを確認
し、つまりX1i,X2iをri から作ったことを確認し、
署名者Aが不正していないことを検証し、またqi =1
の時には両検査式に合格ならばsがmに対する署名者A
の正当な署名であり、前者の検査式(20)のみに合格
ならばsがmに対する署名者Aの正当な署名でないと判
断する。
【0027】このように(20)式が成立している状態
で(21)式が成立すれば正しい署名であると認識し、
(21)式が不成立であれば、正しくない署名であると
認識する。また正しい署名を正しくないと署名者が否認
しようとして、例えば(19)式を満さないYi を送信
すれば、(21)式が成立しないが、(20)式も成立
しないため、つまり鍵の正当性が検証されなくなるか
ら、不正があったと判定される。このようにして正しい
署名を署名者が否認することはできない。このようにし
て署名の確認と否認とを同一手続きで行える。
で(21)式が成立すれば正しい署名であると認識し、
(21)式が不成立であれば、正しくない署名であると
認識する。また正しい署名を正しくないと署名者が否認
しようとして、例えば(19)式を満さないYi を送信
すれば、(21)式が成立しないが、(20)式も成立
しないため、つまり鍵の正当性が検証されなくなるか
ら、不正があったと判定される。このようにして正しい
署名を署名者が否認することはできない。このようにし
て署名の確認と否認とを同一手続きで行える。
【0028】検証者にとっては署名の確認と否認とだけ
が得られればよく、例えばqi を漏らしたくない、同様
に署名者はxを漏らしたくない。検証者が例えばxを知
ろうとして不正をしても、ステップ8におけるqi ,u
i と先に受信したQi とによりqi の正当性を検証する
ことにより、検証者の不正を検出できる。同様に署名者
が例えば不正にqi を知ろうとしても、ステップ9にお
けるv0 ,v1 と先に受信したA0 ,A1 との検証によ
り、A0 ,A1 の正当性を検証して、署名者の不正を検
出することができる。更にA0 ,A1 に関する情報を複
数同時に送り、かつ通信文X1i,X2iも複数同時に送っ
ているが、qi ,ui とQi との確認、v0 ,v1 とA
0 ,A1 との確認も行うことにより、全体として安全性
が保証される。
が得られればよく、例えばqi を漏らしたくない、同様
に署名者はxを漏らしたくない。検証者が例えばxを知
ろうとして不正をしても、ステップ8におけるqi ,u
i と先に受信したQi とによりqi の正当性を検証する
ことにより、検証者の不正を検出できる。同様に署名者
が例えば不正にqi を知ろうとしても、ステップ9にお
けるv0 ,v1 と先に受信したA0 ,A1 との検証によ
り、A0 ,A1 の正当性を検証して、署名者の不正を検
出することができる。更にA0 ,A1 に関する情報を複
数同時に送り、かつ通信文X1i,X2iも複数同時に送っ
ているが、qi ,ui とQi との確認、v0 ,v1 とA
0 ,A1 との確認も行うことにより、全体として安全性
が保証される。
【0029】
【発明の効果】この発明の方法とChaum の方式とを比較
すると下記のようになる。但し、Chaum の方式もこの発
明の方法も鍵の生成、署名の作成の手順においては相違
がないので、以下、署名の検査・否認の手順のみについ
て考察する。 (1)検証者の処理量 まず、Chaum の方式では、確認の手順で、乱数生成2
回、べき乗演算6回、乗算3回、加算1回が必要であ
り、否認の手順で、乱数生成2z回、べき乗演算4z
回、乗算2z回、コミットメント関数の計算z回が必要
であり、計、乱数生成2z+2回、べき乗演算4z+6
回、乗算2z+3回、加算1回、コミットメント関数の
計算z回が必要である。
すると下記のようになる。但し、Chaum の方式もこの発
明の方法も鍵の生成、署名の作成の手順においては相違
がないので、以下、署名の検査・否認の手順のみについ
て考察する。 (1)検証者の処理量 まず、Chaum の方式では、確認の手順で、乱数生成2
回、べき乗演算6回、乗算3回、加算1回が必要であ
り、否認の手順で、乱数生成2z回、べき乗演算4z
回、乗算2z回、コミットメント関数の計算z回が必要
であり、計、乱数生成2z+2回、べき乗演算4z+6
回、乗算2z+3回、加算1回、コミットメント関数の
計算z回が必要である。
【0030】一方、この発明方法においては、確認、お
よび、否認のどちらの手順においても、乱数生成2z
回、べき乗演算3z+2回、乗算3z回だけを行えばよ
い。従ってこの発明方法の方が処理量が少ない。 (2)署名者の処理量 Chaum の方式では、確認の手順で、乱数生成1回、べき
乗演算2回、乗算1回が必要であり、否認の手順で、べ
き乗演算(k+6)z回、乗算2回、除算2回、コミッ
トメント関数の計算z回が必要であり、計、乱数生成1
回、べき乗演算(k+6)z+2回、乗算2z+1回、
除算2z回、コミットメント関数の計算z回が必要であ
る。
よび、否認のどちらの手順においても、乱数生成2z
回、べき乗演算3z+2回、乗算3z回だけを行えばよ
い。従ってこの発明方法の方が処理量が少ない。 (2)署名者の処理量 Chaum の方式では、確認の手順で、乱数生成1回、べき
乗演算2回、乗算1回が必要であり、否認の手順で、べ
き乗演算(k+6)z回、乗算2回、除算2回、コミッ
トメント関数の計算z回が必要であり、計、乱数生成1
回、べき乗演算(k+6)z+2回、乗算2z+1回、
除算2z回、コミットメント関数の計算z回が必要であ
る。
【0031】一方、この発明方法においては、確認、お
よび、否認のどちらの手順においても、乱数生成z+2
回、べき乗演算2z+2回、乗算z回、剰余付き加算z
回だけを行えばよい。この発明方法の方が処理量が少な
い。 (3)システム内の通信量 以下、p,m,a,b,q,e,d,v0 ,v1 ,
qi ,ui をそれぞれを500ビットとして比較する。
よび、否認のどちらの手順においても、乱数生成z+2
回、べき乗演算2z+2回、乗算z回、剰余付き加算z
回だけを行えばよい。この発明方法の方が処理量が少な
い。 (3)システム内の通信量 以下、p,m,a,b,q,e,d,v0 ,v1 ,
qi ,ui をそれぞれを500ビットとして比較する。
【0032】Chaum の方式においては、確認の手順で、
8×500ビットの通信量を必要とし、否認の手順で
は、7×500×zビットの通信量を必要とする。すな
わち、全体として必要な通信量は、 3500z+4000ビット である。
8×500ビットの通信量を必要とし、否認の手順で
は、7×500×zビットの通信量を必要とする。すな
わち、全体として必要な通信量は、 3500z+4000ビット である。
【0033】一方、この発明方法は、確認と否認の手順
のどちらにおいても、それに必要な通信量は、2501
z+2000ビットであり、合計、5002z+400
0ビットの通信量が必要となる。しかし、Chaum の方式
では、手続きの通信回数が、確認の手順で、5回である
のに対し、否認の手順では、5z回必要とする。
のどちらにおいても、それに必要な通信量は、2501
z+2000ビットであり、合計、5002z+400
0ビットの通信量が必要となる。しかし、Chaum の方式
では、手続きの通信回数が、確認の手順で、5回である
のに対し、否認の手順では、5z回必要とする。
【0034】一方、この発明方法は、確認と否認の手順
のどちらにおいても、それに必要な通信回数は7回であ
り、この発明方法では通信回数が削減されていることが
分かる。 (4)装置の構成 Chaum の方式においては、署名者が、署名の検査を依頼
されたときに、それの正当性を判断して、それに応じ
て、確認、ないし、否認の手順を選択して通信を実行す
るが、その際、確認/否認それぞれに専用の装置を必要
とする。
のどちらにおいても、それに必要な通信回数は7回であ
り、この発明方法では通信回数が削減されていることが
分かる。 (4)装置の構成 Chaum の方式においては、署名者が、署名の検査を依頼
されたときに、それの正当性を判断して、それに応じ
て、確認、ないし、否認の手順を選択して通信を実行す
るが、その際、確認/否認それぞれに専用の装置を必要
とする。
【0035】しかし、この発明方法においては、確認と
否認の手順を同一にしたため、確認/否認それぞれを同
一装置で実現でき、通信装置の規模を削減することがで
きる。 (5)安全性の証明 この発明の方法ではz回にわけて通信するかわりに、z
回分の通信を同時に行っているが、この発明の方法の安
全性については、Mihir Bellare, Silvio Micali, Rafa
il Ostrovsky:“Perfect zero-knowledge in constant
rounds ”,STOC'90, pp.482-493 に示されている方式
と同様にして証明することができる。
否認の手順を同一にしたため、確認/否認それぞれを同
一装置で実現でき、通信装置の規模を削減することがで
きる。 (5)安全性の証明 この発明の方法ではz回にわけて通信するかわりに、z
回分の通信を同時に行っているが、この発明の方法の安
全性については、Mihir Bellare, Silvio Micali, Rafa
il Ostrovsky:“Perfect zero-knowledge in constant
rounds ”,STOC'90, pp.482-493 に示されている方式
と同様にして証明することができる。
【図1】この発明が適用されるシステムの構成例を示す
ブロック図。
ブロック図。
【図2】図1中の公開ファイル100の内容例を示す
図。
図。
【図3】署名者Aと検証者との間の通信シーケンスを示
す図。
す図。
【図4】署名者装置200の一部を示すブロック図。
【図5】署名者装置200の他の部分を示すブロック
図。
図。
【図6】検証者装置500の一部を示すブロック図。
【図7】検証者装置500の他の部分を示すブロック
図。
図。
100 公開ファイル 200 署名者A 300,400 通信路 500 検証者 205,220,235,510 乱数発生器 210,215,225,230,240,245,2
55,265,505,515,520,530,54
0,545,555,560,剰余付き計算器 250,525,535,550,565 比較器 260 乗算器
55,265,505,515,520,530,54
0,545,555,560,剰余付き計算器 250,525,535,550,565 比較器 260 乗算器
フロントページの続き (56)参考文献 藤岡,岡本,太田,「対話型双証明方 式とUndeniable署名法」, 1991年電子情報通信学会春季全国大会講 演論文集(1)(1991.3.15),A− 289(p291) (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 - 5/00 H04K 1/00 - 3/00 H04L 9/00 INSPEC(DIALOG) JICSTファイル(JOIS)
Claims (1)
- 【請求項1】 素数pとpの原始根gが公開され、 署名者装置は署名用鍵xを生成し、 y=gx(mod p) を計算して公開情報yを公開し、 署名者装置はメッセージmに対し、 s=mx(mod p) を計算し、mとその署名sを検証者装置へ送信し、 検証者装置はメッセージmとその署名sを署名者装置へ
送信し、 署名者装置はm、sを受信すると、乱数v0とv1を生成
し、p、qを用いて、 A0=gv0 (mod p) A1=gv1 (mod p) をそれぞれ計算し、これら検証用情報A0、A1を検証者
装置へ送信し、 検証者装置はA0、A1を受信すると、乱数qi∈{0,
1}(i=1,…,z)と乱数ui(i=1,…,z)
を生成し、qi=0でA0について、qi=1でA1につい
て、 Qi=Aqigui(mod p) を計算し、通信文Qiを署名者装置へ送信し、 署名者装置はQiを受信すると、乱数ri(i=1,…,
z)を生成し、 X1i=gri(mod p) X2i=mri(mod p) を計算し、これら通信文X1i、X2iを検証者装置へ送信
し、 検証者装置はX1i、X2iを受信すると、(qi,ui)
(i=1,…,z)を署名者装置へ送信し、 署名者装置は受信したqi、uiで Qi=Aqigui(mod p) を計算し、この計算結果が先に受信したQiと比較し、
一致すると、 Yi=ri+qix(mod p-1) を計算し、通信文Yiとv0、v1を検証者装置へ送信
し、上記比較が不一致であれば処理を停止し、 検証者装置は受信したv0、v1により A0=gv0 (mod p) A1=gv1 (mod p) をそれぞれ計算し、これら計算結果と先に受信した検証
用情報A0、A1とをそれぞれ比較し、不一致で署名者装
置が不正として処理を停止し、共に一致すると、 X1i・yqi(mod p) を演算し、かつgYi(mod p)を演算し、これら両演算結
果を比較し、 かつX2i・sqi(mod p)を演算し、またmYi(mod p)を演
算し、これら両演算結果を比較し、 qi=0である各iに対して、両比較が不一致のとき、
署名者装置が不正を行ったことを出力し、両比較が一致
のとき、署名者装置が不正していないことを出力し、 qi=0である各iに対する両比較が一致した場合は更
に、qi=1である各iに対して、両比較が一致してい
れば、sがmに対する署名者装置の正当な署名であるこ
とを出力し、X1i・yqi(mod p)とg Yi(mod p)との比
較のみ一致していれば、sがmに対する正当な署名でな
いことを出力することを特徴とするディジタル署名方
法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP03018958A JP3131907B2 (ja) | 1991-02-12 | 1991-02-12 | ディジタル署名方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP03018958A JP3131907B2 (ja) | 1991-02-12 | 1991-02-12 | ディジタル署名方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04256994A JPH04256994A (ja) | 1992-09-11 |
| JP3131907B2 true JP3131907B2 (ja) | 2001-02-05 |
Family
ID=11986156
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP03018958A Expired - Fee Related JP3131907B2 (ja) | 1991-02-12 | 1991-02-12 | ディジタル署名方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3131907B2 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2792142B1 (fr) * | 1999-04-08 | 2001-06-01 | France Telecom | Procede d'authentification et de signature de message utilisant des engagements de taille reduite |
| JP5069157B2 (ja) * | 2008-03-14 | 2012-11-07 | 日本電信電話株式会社 | 署名システム、署名方法、証明装置、検証装置、証明方法、検証方法、プログラム |
-
1991
- 1991-02-12 JP JP03018958A patent/JP3131907B2/ja not_active Expired - Fee Related
Non-Patent Citations (1)
| Title |
|---|
| 藤岡,岡本,太田,「対話型双証明方式とUndeniable署名法」,1991年電子情報通信学会春季全国大会講演論文集(1)(1991.3.15),A−289(p291) |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH04256994A (ja) | 1992-09-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1136927B1 (en) | Anonymous participation authority management system | |
| CN108551392B (zh) | 一种基于sm9数字签名的盲签名生成方法及系统 | |
| Susilo et al. | Perfect concurrent signature schemes | |
| US8122245B2 (en) | Anonymity revocation | |
| CN110555933A (zh) | 电子投票方法、装置、设备及计算机存储介质 | |
| EP0746923A1 (en) | Efficient electronic money | |
| CN108805551B (zh) | 一种安全的细粒度预支付方法及装置 | |
| KR0146438B1 (ko) | 인증교환 방법과 복원형 전자서명 방법 및 부가형 전자서명 방법 | |
| US5719940A (en) | Method for providing information security by exchanging authentication and signing an electronic signature and apparatus therefor | |
| CN112989436A (zh) | 一种基于区块链平台的多重签名方法 | |
| US7584363B2 (en) | Fair blind signature process | |
| JP3131907B2 (ja) | ディジタル署名方法 | |
| US6978372B1 (en) | Verification of correct exponentiation or other operations in cryptographic applications | |
| US20020044648A1 (en) | Methods and systems for efficient chained certification | |
| CN115795557A (zh) | 基于去中心化门限多方签名的电子公证文书签署方法及系统 | |
| JP3107313B2 (ja) | ディジタル署名方法 | |
| JP3285039B2 (ja) | ディジタル署名方法 | |
| JP3178537B2 (ja) | ディジタル署名方法 | |
| CN115941205A (zh) | 一种基于sm2的多重签名方法 | |
| JP3292342B2 (ja) | ディジタル署名方式 | |
| JP3147373B2 (ja) | 署名の多重検証方法 | |
| JP2002328602A (ja) | ブラインド署名方法、その装置、そのプログラム及びその記録媒体 | |
| Nguyen et al. | Undeniable confirmer signature | |
| JP3331328B2 (ja) | 多重デジタル署名方法、そのシステム、その装置及びそのプログラム記録媒体 | |
| JP3292312B2 (ja) | ディジタル署名方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071124 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081124 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091124 Year of fee payment: 9 |
|
| LAPS | Cancellation because of no payment of annual fees |