説明

閾値つき電子署名の方法、検証方法、それらの方法を用いた装置およびプログラム

【課題】n台の参加者装置(集合N)に含まれるs台の参加者装置(集合S)が署名を行った場合に、署名をした参加者装置がt台以上(集合T)t’台(集合T’)以下であることが確認できる署名方法を提供する。
【解決手段】離散対数問題が分からない元をもとに署名者の使い捨て公開鍵と公開鍵との離散対数を等しくすることにより、使い捨て公開鍵と公開鍵とを関連つける。
署名を行う集合Sの各参加者装置では、公開鍵y、使い捨て公開鍵σの間で、離散対数を等しくするように使い捨て公開鍵σ(i∈S)を生成する。また、集合Sの参加者装置で協力して集合T’−Sの使い捨て公開鍵σ(i∈T’−S)を生成する。集合N−T’の使い捨て公開鍵σ(i∈N−T’)は、σ(i∈T’)から決まるt’次の多項式を用いて、計算により求める。このように使い捨て公開鍵を生成した上で、署名を作成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報セキュリティ技術に関するものであり、閾値つき電子署名技術に関する。
【背景技術】
【0002】
閾値つき電子署名技術は、複数の参加者の一部が協力することで署名が生成されたことを、誰が署名生成に協力したのかが分からないように署名のみから確認できる電子署名である。n人の参加者うち任意のt人以上が協力することで署名が生成されたことを、誰が署名生成に協力したのかが分からないように署名のみから確認できる電子署名の方式を、(t,n)閾値電子署名方式と呼ぶ。従来の方法として非特許文献1に示された方法がある。最初に本説明中で使用する記号について説明する。離散対数問題が難しいと考えられている巡回群をGとし、その生成元をg、群の位数をqとする(G=<g>,#G=q)。Zは、qを法とする剰余類{0,1,2,…,q−1}である。∈は一様ランダムに元を取り出すことを、{0,1}は0または1が任意長並んだビット列を、Kは有限体を意味する。また、H,I,JはそれぞれH:{0,1}→Zのように変換するハッシュ関数である。以下に非特許文献1に示された方法について説明する。
【0003】
図1に、閾値つき電子署名システムの構成例と流れを示す。本システムへの参加者の総数はn人であり、n台の参加装置910−i(i=1,…,n)では、あらかじめ定められた巡回群Gの元g(g∈G)を用いて、各参加装置の秘密鍵xと公開鍵yとが生成され、公開鍵yは公開される。署名を作成する場合は、n人中の任意のt人以上が参加装置910−i(i=1,…,t)でコミットメントaを生成し、署名生成部920を備える装置に送信する。ここで、説明を簡略化するために、i=1,…,tを署名生成に使用した(協力した)参加装置を示す数、i=t+1,…,nを署名作成に使用していない(協力しなかった)参加装置を示す数とするが、t台の参加装置はn台の参加装置中のどれでも良い。
【0004】
署名生成部920は、独立した装置ででもかまわないし、いずれかの参加装置内に備えさせてもかまわない。署名生成部920は、i=t+1,…,nに対するダミーレスポンスe、ダミーチャレンジc、およびダミーコミットメントaを生成した上で、n−t次多項式f(x)、i=1,…,tに対するチャレンジcとレスポンスeとを生成し、署名σ(m)を作成する。この署名σ(m)はt台の参加装置910−i(i=1,…,t)から取得したコミットメントaと、署名生成部920がダミーとして生成したコミットメントa(i=t+1,…,n)等から生成されており、t人が協力した署名生成になっているだけでなく、どのt人が協力したのかが分からない署名になっている。
【0005】
署名検証部930は、署名検証を行いたい任意の装置内に備えてかまわない。署名検証部では、多項式f(x)の次数がn−tであること、チャレンジc(i=1,…,n)とf(0)の値が正しいことなどを検証する。
図2は、参加装置910−iの機能構成例を示す図である。参加装置910−iは、鍵生成部911−i、乱数生成部912−i、記録部913−i、および通信部914−iから構成される。図3は鍵生成部911−iの処理フローを示す図であり、図4は乱数生成部912−iの処理フローを示す図である。
【0006】
鍵生成部911−iは、秘密鍵x生成手段9111−iと公開鍵y生成手段9112−iとで構成される。鍵生成部911-iでの具体的な鍵生成方法の例を次に示す。秘
密鍵x生成手段9111−iでは、qを法とする剰余類Zから等確率でランダムに1つの元を選択して秘密鍵xとし(x)(S9111)、秘密鍵xを記録部913−iに記録する(S9112)。公開鍵y生成手段9112−iでは、あらかじめ定められた巡回群Gの元gを用いて、
【0007】
【数33】

により公開鍵y(y∈G={1,g,g,…,gq−1})を生成し(S9113)、公開鍵yを記録部913−iに記録する(S9114)。ここで、巡回群Gは、離散対数問題が難しい群から選ばれているため、公開鍵yと元gが分かっても、秘密鍵xは分からない。このように生成された公開鍵yは、元gの情報とともに通信部914−iを介して公開される。
【0008】
乱数生成部912−iは、署名生成に協力する場合に動作する構成部であり、乱数r生成手段9121−i、コミットメントa生成手段9122−i、チャレンジc取得手段9123−i、およびレスポンスe生成手段9122−iで構成される。乱数生成部912−iでの具体的な処理手順の例を次に示す。参加者が署名に協力する場合には、乱数r生成手段9121−iでは、qを法とする剰余類Zから等確率でランダムに1つの元を選択して乱数rとする(r)(S9121)。次にコミットメントa生成手段9122−iでは、元gを用いて、
【0009】
【数34】

によりコミットメントa(∈G)を生成し(S9122)、コミットメントaを記録部913−iに記録し、通信部914−iを介して署名生成部920を備える装置に送信する(S9123)。署名生成部920で署名生成処理が行われると、署名生成部920の計算部922の処理過程で生成されたチャレンジcが署名生成部920から、署名生成に協力している参加装置910−i(i=1,…,t)に送信される。このチャレンジcをチャレンジc取得手段9123−iで取得し(S9124)、記録部913−iに記録する(S9125)。また、レスポンスe生成手段9122−iで、e:=r−c(e∈Z)により、e(i=1,…,t)を求め(S9126)、記録部913−iに記録するとともに署名生成部920に送信する(S9127)。
【0010】
図5に署名生成部920の機能構成例を示す。署名生成部920は、ダミー生成部921、計算部922、情報取得部923、記録部924、および通信部925から構成されている。また、図6は署名生成部920の処理フローを示す図である。
署名生成部920では、以下の手順で署名σ(m)が生成される。通信部925を介して情報取得部923の公開鍵y(i=1,…,n)取得手段9231により、参加装置910−i(i=1,…,n)の公開鍵yを取得する(S9231)。ダミー生成部921では、次のように、ダミーレスポンスe、ダミーチャレンジc、ダミーコミットメントa(i=t+1,…,n)を生成する。ダミーレスポンスe・ダミーチャレンジc(i=t+1,…,n)生成手段9211により、qを法とする剰余類Zから等確率でランダムに元を選択してダミーレスポンスeとダミーチャレンジc(i=t+1,…,n)とし(e,c)(S9211)、記録部924に記録する(S9212)。また、ダミーコミットメントa(i=t+1,…,n)生成手段9213により、元gと公開鍵yを用いて、
【0011】
【数35】

によりダミーコミットメントa(i=t+1,…,n)を生成し(S9215)、記録部924に記録する(S9216)。
また、通信部925を介して情報取得部923のコミットメントa(i=1,…,t)取得手段9232により、参加装置910−i(i=1,…,t)のコミットメントaを取得する(S9232)。
【0012】
次に、計算部922では、以下のようにメッセージmの(t,n)閾値署名σ(m)を求める。n−t次多項式f(x)計算手段9221により、n−t次の多項式f(x)(f(x)=α+αx+α+…+αn−tn−t,α∈Z)と定め、f(0)=H(t,n,y,…,y,a,…,a,m)とf(i)=c(i=t+1,…,n)の条件からα(j=0,…,n−t)を計算することでn−t次多項式f(x)を求める(S9221)。また、求めたn−t次多項式f(x)を記録部924に記録する(S9222)。チャレンジc(i=1,…,t)生成手段9222では、c:=f(i)により、チャレンジc(i=1,…,t)を求め(S9223)、記録部924に記録するとともに、チャレンジcに対応する参加装置910−i(i=1,…,t)にチャレンジcを送信する(S9224)。各参加者装置910−i(i=1,…,t)では、送信されたチャレンジcを用いて、上記のようにレスポンスeを生成し署名生成部920に送信する(S9124〜S9127)。そこで、レスポンスe(i=1,…,t)取得手段9223は、レスポンスe(i=1,…,t)を取得し(S9225)、記録部924に記録する(S9226)。署名σ(m)作成手段9223では、σ(m)=(t,n,f,c,…,c,e,…,e)により、σ(m)を求め(S9227)、記録部924に記録する(S9228)。このようにしてメッセージmに対する(t,n)閾値署名σ(m)を求める。
【0013】
図7に署名検証部930の機能構成例を示す。また、図8に署名検証部930での署名σ(m)を検証するフローを示す。情報取得手段933は、公開鍵y(i=1,…,n)と署名σ(m)を取得し(S933)、多項式f(x)の次数確認手段931で多項式f(x)の次数がn−tであることを確認し(S931)、チャレンジc、多項式f(0)確認手段932で、
【0014】
【数36】

であることを確認する(S932)。
このように署名σ(m)の生成と検証を行うことで、署名検証部930(署名検証をする人)は、少なくともt台の参加装置910−i(t人の参加者)が協力して署名を作成したことが確認できる。また、署名検証部930は、n台の参加装置910−i中のどのt台(n人の参加者中のどのt人)が署名生成に協力したのかは分からない。
【非特許文献1】[CDS94] R. Cramer and I. Damgard and B. Schoen-makers, Proofs of Partial Knowledge and Simplified Design of Witness Hiding Protocols, CRYPTO ’94, pp. 174-187, 1994.
【発明の開示】
【発明が解決しようとする課題】
【0015】
従来技術では、どの参加者が署名生成に協力したのかが分からないことを特徴としてい
るが、参加者が署名生成に協力したことを証明すること(名乗り出ること)もできなかった。
また、署名生成に協力したことを証明することができるようにする場合には、何人の参加者が証明できるのかを署名から確認できるようにすることも必要である。さらに、署名生成に協力したことを証明するときに秘密鍵の情報も流出することが考えられることから、以後、今までの秘密鍵と公開鍵が使用できなくなる問題があった。
【0016】
本発明の目的は、秘密鍵と公開鍵とが使えなくなることなく、かつ、n台(nは2以上の整数)の参加者装置(集合N)に含まれるs台の参加者装置(集合S)が署名を行った場合に、署名をした参加者装置がt台以上(集合T)t’台(集合T’)以下であることが確認できる署名方法を提供することにある。
【課題を解決するための手段】
【0017】
離散対数問題をもとに秘密鍵と公開鍵とを生成する場合に、署名者の使い捨て公開鍵と公開鍵との離散対数を等しくすることにより、使い捨て公開鍵と公開鍵とを関連つける。
具体的には、署名を行う集合Sの各参加者装置では、公開鍵y、使い捨て公開鍵σの間で、離散対数を等しくするように使い捨て公開鍵σ(i∈S)を生成する。また、集合Sの参加者装置で協力して集合T’−Sの使い捨て公開鍵σ(i∈T’−S)を生成する。集合N−T’の使い捨て公開鍵σ(i∈N−T’)は、σ(i∈T’)から決まるt’次の多項式を用いて、計算により求める。このように使い捨て公開鍵を生成した上で、署名を作成する。また、実施形態によっては、離散対数が等しいことを証明することで、各参加者装置が署名した参加者であることを証明することもできる。
【発明の効果】
【0018】
本発明によれば、公開鍵と使い捨て公開鍵とは、離散対数が等しいので関連付けられており、署名者になりすますことができない。また、n台の参加者装置に含まれるs台の参加者装置が署名を行った場合に、署名をした参加者装置がt台以上t’台以下であることが確認できる署名方法を提供することができる。
【発明を実施するための最良の形態】
【0019】
以下にこの発明の実施形態を図面を参照して説明するが、同一の機能を有する部分は、各図中に同一参照番号を付けて重複説明を省略する。また、以下の説明では、離散対数問題が難しいと考えられている巡回群をG、Gの生成元をg、R、Gの位数をq、qを法とする剰余類{0,1,2,…,q−1}をZ、gとRとはパブリックパラメータ、HとH’を0と1からなるビット列をGの元に写像するハッシュ関数、H”を0と1からなるビット列をZの元に写像するハッシュ関数、mをメッセージとする。なお、aは{ai∈Nを意味する。
[第1実施形態]
図9は、本発明のシステム構成例を示している。n台(nは2以上の整数)の参加者装置(集合N)に含まれるs台の参加者装置110−i(集合S)が協力して署名を行う。協力して署名を行うとは、1つの参加者装置の恣意では署名を確定することができず、集合Sの各参加者装置110−iから送られる情報の全てを用いて署名を作成する意味である。したがって、これらの情報を取りまとめる装置が必要であり、図9では署名生成部120が行っている。この署名生成部120は、単独の装置でもかまわないし、集合Nのいずれか参加者装置の内部に備えられてもよい。もしくは、全ての参加者装置に備えられ、署名を行うたびに異なる署名生成部が情報の取りまとめや署名作成を行ってもよい。また、署名をした参加者装置がt台以上(集合T)t’台(集合T’)以下であることが確認できる署名方法を提供する。本実施形態では、集合Nの各参加者装置は署名した参加者装置か署名していない参加者装置かを証明することができる。
【0020】
図10に参加者装置110−iの機能構成例を示す。参加者装置110−iは、秘密鍵xと公開鍵yとを生成する鍵生成部911−i、使い捨て公開鍵を秘密鍵xから生成する鍵生成部112−i、任意のZの元wを選定するw生成手段1131−i、wからaとbを生成するa・b生成手段1132−i、Zの元zを、秘密鍵xを用いて計算するz生成手段1134−i、集合TとT’とを選定するための集合選定情報を生成する集合選定情報の生成手段1135−i、0と1のビット列であるrを選定するためのr選定情報を生成するr選定情報の生成手段1136−i、集合T’−Sの使い捨て公開鍵を選定するためのσ選定情報を生成するσ選定情報の生成手段1137−i、任意のZの元zとcを選定するためのz・c選定情報を生成するz・c選定情報の生成手段1138−i、任意のZの元cを選定するためのc選定情報を生成するc選定情報の生成手段1139−i、情報を公開または集合Sの他の参加者装置および署名生成部に送信する通信・公開部115−i、情報を記録する記録部114−iから構成される。
【0021】
図11に署名生成部120の機能構成例を示す。署名生成部120は、集合Sの各参加者装置110−iからの集合選定情報をもとに、T⊆S⊆T’⊆Nを満足する集合Tと集合T’の元となる参加者装置を選定する集合T,T’選定手段1211、集合Sの各参加者装置110−iからのr選定情報をもとに、前記rを選定するr選定手段1212、集合Sの各参加者装置110−iからのσ選定情報をもとに、集合T’−Sの使い捨て公開鍵を選定するσ選定手段1213、集合Sの各参加者装置110−iからのz・c選定情報をもとに、集合N−Sのzとcを選定するz・c選定手段1214、集合Sの各参加者装置110−iからのc選定情報をもとに、集合S−Tのcを選定するc選定手段1215、zとcから集合N−Sのaとbを生成するa・b生成手段1216、集合T’の使い捨て公開鍵から、集合N−T’の使い捨て公開鍵σを計算するσ計算手段1222、Zの元であって、次数(n−t)の多項式β(x)を計算するβ(x)計算手段1223、署名を、r,A,…,At’,β(x),z,…,zを用いて生成する署名出力部124、他の装置と通信を行う通信部123、情報を記録する記録部125から構成される。
【0022】
図12は、署名検証部130の機能構成例を示す。署名検証部130は、署名検証を行いたい任意の装置の内部に備えられる。また、署名検証部130は、n,t,t’、集合Nの各参加者装置の公開鍵y={y,…,y}、メッセージm、署名σ=(r,A,…,At’,β(x),z,…,z)を受信し、検証結果を出力する通信部132、h=H(n,t,t’,y,m,r)、A=H’(n,t,t’,y,m,r)として、rがkビットの0と1のビット列であること、h,A,…,At’が群Gの元であること、z,…,zがZの元であることを確認する群の適正確認手段1311、σ(i=1,…,n)がGの元であることを確認するAの適正確認手段1312とa’={a’,…,a’},b’={b’,…,b’}を求め、β(x)がZの元であり、かつn−t次であること、β(0)=H”(n,t,t’,y,m,r,h,A,…,At’ ,a’,b’)であることを確認するβ(x)の適正
確認手段1313とから構成される。
【0023】
図13は電子署名システムの処理フローを示している。以下に、処理フローを図13に従って説明する。
集合Nの各参加者装置110−i(i=1,…,n)の鍵生成部911−iは、秘密鍵xと公開鍵yとを生成し、公開鍵yを公開する(S310)。署名に参加する各参加者装置110−i(集合S、i=1,…,s)の集合選定情報の生成手段1135−iは、T⊆S⊆T’⊆Nを満足する集合TとT’とを選定するための集合選定情報を生成し、集合Sの他の参加者装置および署名生成部に前記集合選定情報を送信する(S320)。署名生成部120の集合T,T’選定手段1211で、集合Sの各参加者装置からの前
記集合選定情報をもとに、任意の集合Tと集合T’の元となる参加者装置を選定し、集合Sの参加者装置に送信する(S330)。ここで、「集合選定情報をもとに、任意の集合Tと集合T’の元となる参加者装置を選定する」とは、集合Sの参加者装置110−i(集合S、i=1,…,s)から送られたs個の集合選定情報全てを用いて、任意の集合を選定することを意味している。言い換えると、集合Sの限られた参加者装置110−iの恣意によって集合Tと集合T’が選ばれることはないことを意味している。また、集合選定情報は、固定された数値でなければ、適当な数値でよく、乱数などによって発生させてもよい。以下、「選定情報を用いて選定する。」と言うときは同じ意味である。なお、集合Tの元の数がtであり、集合T’の元の数がt’である。また、集合T’の元をk,…,kt’とする。集合Sの各参加者装置110−i(i=1,…,s)のr選定情報の生成手段1136−iは、kビットの0と1のビット列であるrを選定するためのr選定情報を生成し、集合Sの他の参加者装置110−iおよび署名生成部120に送信する(S340)。署名生成部120のr選定手段1212は、集合Sの各参加者装置110−iからの前記r選定情報をもとに、kビットの0と1のビット列である任意のrを選定し、集合Sの参加者装置110−iに送信する(S350)。集合Sの各参加者装置110−i(i=1,…,s)の鍵生成部112−iで、使い捨て公開鍵σ(i=1,…,s)を、
【0024】
【数37】

により生成し、集合Sの他の参加者装置110−iおよび署名生成部120に送信する(S360)。集合Sの各参加者装置110−i(i=1,…,s)のσ選定情報の生成手段1137−iで、集合T’−Sの使い捨て公開鍵σ(i∈T’−S)を選定するためのσ選定情報を生成し、集合Sの他の参加者装置110−iおよび署名生成部120に送信する(S370)。署名生成部120のσ選定手段1213で、集合Sの各参加者装置110−iからの前記σ選定情報をもとに、任意の集合T’−Sの使い捨て公開鍵σ(i∈T’−S)を選定し、集合Sの参加者装置110−iに送信する(S380)。署名生成部120のσ計算手段1222で、集合T’の使い捨て公開鍵σ(i∈T’、i=k,…,kt’)から、
【0025】
【数38】

として、A(i=0,…,t')を
=H’(n,t,t’,y,m,r)
【0026】
【数39】

と定め、
【0027】
【数40】

として集合N−T’の使い捨て公開鍵σ(i∈N−T’)を計算し、集合Sの参加者装置110−iに送信する(S390)。ステップS390の処理内容について説明する。
=hα(0)
ただし、A=H’(n,t,t’,y,m,r)
と、
σ=hα(i)
ただし、i=k,…,kt’
が成り立つ次数t’の多項式α(x)を求める。そして、α(x)から、集合N−T’の使い捨て公開鍵σ(i∈N−T’)を、
σ=hα(i)
により求める。このように使い捨て公開鍵σ(i∈N)求めることによって、集合Nの全ての参加者装置110−iの使い捨て公開鍵σが、σ=hα(i)を満たす。ところが、α(x)の次数がt’であることから、署名に参加した参加者装置110−iはt’以下であることは分かる。しかし、全てのi(i=1,…,n)に対してσ=hα(i)が成り立つので、どの参加者装置110−iが署名に参加したのかは分からない。ただし、実際にはAはH’で生成されているから、離散対数α(0)が分からない。したがって、α(x)を直接求めることはできない。そこで、ステップS390では、Aを用いて計算している。
【0028】
以下のステップでは、「秘密鍵xを知っていて、log=x=logσが成り立つiがt以上である。」ことを証明する。まず、集合Sの各参加者装置110−iのw生成手段1131−iで、任意のZの元wを選定する(S400)。集合Sの各参加者装置110−iのa・b生成手段1132−iで、
【0029】
【数41】

によってaとbとを生成し、集合Sの他の参加者装置110−iおよび署名生成部120に送信する(S410)。集合Sの各参加者装置110−iのz・c選定情報の生成手段1138−iで、任意のZの元zと元cを選定するためのz・c選定情報を生成し、集合Sの他の参加者装置110−iおよび署名生成部120に送信する(S420)。署名生成部120のz・c選定手段1214で、前記z・c選定情報をもとに、集合N−Sのzとc(i∈N−S)を選定し、a・b生成手段1216で、
【0030】
【数42】

により集合N−Sのaとb(i∈N−S)とを生成し、生成したaとbとを集合Sの参加者装置110−iに送信する(S430)。集合Sの各参加者装置110−iのc選定情報の生成手段1139−iで、任意のZの元cを選定するためのc選定
情報を生成し、集合Sの他の参加者装置110−iおよび署名生成部120に送信する(S440)。署名生成部120のc選定手段1215は、集合Sの各参加者装置の前記c選定情報生成ステップで生成されたc選定情報をもとに、集合S−Tのc(i∈S−T)を選定し、集合Sの参加者装置110−iに送信する(S450)。署名生成部120のβ(x)計算手段1223は、
β(0)=H”(n,t,t’,y,m,r,h,A,…,At’,a,b
β(i)=c
ただし、i∈N−T
を満足するZの元であって、次数(n−t)の多項式β(x)を求め、集合Sの参加者装置110−iに送信する(S460)。集合Sの各参加者装置110−iのz生成手段1134−iは、
=w−β(i)x
によってZの元zを計算し、集合Sの他の参加者装置110−iおよび署名生成部120に送信する(S470)。署名生成部120の署名出力部124で、署名を、r,A,…,At’,β(x),z,…,zを用いて生成する(S480)。なお、説明が冗長となるため説明上は省略しているが、各ステップで生成、計算、受信された情報は、処理のたびに記録部114−iまたは125に記録され、利用される情報は記録部114−iまたは125から読み出される。このような処理によって、α(x)がt’次であること、β(x)が(n−t)次であることから、t台以上t’台以下の参加者装置が署名に参加したことを確認できる署名を生成できる。
【0031】
次に署名検証部130での処理フローを説明する。署名検証部130の通信部132で、通信部132で、n,t,t’、集合Nの各参加者装置の公開鍵y={y,…,y}、メッセージm、署名σ=(r,A,…,At’,β(x),z,…,z)を受信し、群の適正確認部1311で、
h=H(n,t,t’,y,m,r)
=H’(n,t,t’,y,m,r)
を計算し、rがkビットの0と1のビット列であること、h,A,…,At’が群Gの元であること、z,…,zがZの元であることを確認する(S490)。Aの適正確認部1312は、
【0032】
【数43】

で求められるσ(i=1,…,n)がGの元であることを確認する(S500)。このステップで、Aがi=0,…,t’の(t’+1)個しかないことから、署名に参加した参加者装置110−iがt’台以下であることも確認される。次に、β(x)の適正確認部1313は、
【0033】
【数44】

としてa’={a’,…,a’},b’={b’,…,b’}を求め、β(x)の係数がZの元であること、β(x)がn−t次であること、およびβ(0)=H”(n,t,t’,y,m,r,h,A,…,At’ ,a’,b’)であるこ
とを確認する(S510)。このステップで、β(x)が(n−t)次であることから、
署名に参加した参加者装置110−iがt台以上であることが確認される。通信部132は、ステップS490からS510の確認結果がすべてOKであれば、署名が正しいことを出力し、そうでないときは署名は正しくないことを出力する(S520)。
【0034】
また、集合Sの各参加者装置110−i(i∈S)は、
log(y)=log(σ
を、例えば、参考文献([Cha90] David Chaum, Zero-Knowledge Undeniable Signatures,
EUROCRYPT 1990, pp.458-464, 1990.)の方法で証明することで、署名に参加したことを証明できる。集合N−Sの各参加者装置110−i(i∈N−S)は、
log(y)≠log(σ
を、同じ方法で証明することで、署名に参加しなかったことを証明できる(S530)。
【0035】
このような処理によって、n台(nは2以上の整数)の参加者装置に含まれるs台の参加者装置が署名を行った場合に、署名をした参加者装置がt台以上t’台以下であることが確認できる電子署名を生成できる。
[第2実施形態]
図14は、本発明のシステム構成例を示している。n台(nは2以上の整数)の参加者装置(集合N)に含まれるs台の参加者装置110−i(集合S)が協力して署名を行う。また、署名から、署名をした参加者装置がt台以上(集合T)t’台(集合T’)以下であることが確認できる署名方法を提供する。第1実施形態との違いは、本実施形態では、集合Nの各参加者装置は、署名した参加者装置か署名していない参加者装置かを証明することができない点である。
【0036】
図15に参加者装置210−iの機能構成例を示す。参加者装置210−iは、秘密鍵xと公開鍵yとを生成する鍵生成部911−i、h生成手段2121−iとx
生成手段2122−iと使い捨て公開鍵σ生成手段2123−iを有し、使い捨て公開鍵を秘密鍵xとx’から生成する鍵生成部212−i、任意のZの元wとw’を選定するw・w’生成手段2131−i、wとw’からaとbを生成するa・b生成手段2133−i、Zの元zとz’を、秘密鍵xとx’を用いて計算するz・z’生成手段2135−i、集合TとT’とを選定するための集合選定情報を生成する集合選定情報の生成手段1135−i、集合T’−Sの使い捨て公開鍵を選定するためのσ選定情報を生成するσ選定情報の生成手段1137−i、任意のZの元zとz’とcを選定するためのz・z’・c選定情報を生成するz・z’・c選定情報の生成手段2137−i、任意のZの元cを選定するためのc選定情報を生成するc選定情報の生成手段1139−i、情報を公開または集合Sの他の参加者装置および署名生成部に送信する通信・公開部215−i、情報を記録する記録部214−iから構成される。
【0037】
図16に署名生成部220の機能構成例を示す。署名生成部220は、集合Sの各参加者装置210−iからの集合選定情報をもとに、T⊆S⊆T’⊆Nを満足する集合Tと集合T’の元となる参加者装置を選定する集合T,T’選定手段1211、集合Sの各参加者装置210−iからのσ選定情報をもとに、集合T’−Sの使い捨て公開鍵を選定するσ選定手段1213、集合Sの各参加者装置からのz・z’・c選定情報をもとに、集合N−Sのzとz’とcを選定するz・z’・c選定手段2211、集合Sの各参加者装置210−iからのc選定情報をもとに、集合S−Tのcを選定するc選定手段2213、zとz’とcから集合N−Sのaとbを生成するa・b生成手段2216、集合T’の使い捨て公開鍵から、集合N−T’の使い捨て公開鍵σを計算するσ計算手段2222、Zの元であって、次数(n−t)の多項式β(x)を計算するβ(x)計算手段2223、署名を、A,…,At’,β(x),z,…,z,z’,…,z’を用いて生成する署名出力部224、他の装置と
通信を行う通信部223、情報を記録する記録部225から構成される。
【0038】
図17は、署名検証部230の機能構成例を示す。署名検証部230は、署名検証を行いたい任意の装置の内部に備えられる。また、署名検証部230は、n,t,t’、集合Nの各参加者装置の公開鍵y={y,…,y}、メッセージm、署名σ=(r,A,…,At’,β(x),z,…,z,z’,…,z’)を受信し、検証結果を出力する通信部232、h=H(n,t,t’,y,m)、A=H’(n,t,t’,y,m)として、h,A,…,At’が群Gの元であること、z,…,z,z’,…,z’がZの元であることを確認する群の適正確認手段2311、σ(i=1,…,n)がGの元であることを確認するAの適正確認手段2312とa’={a’,…,a’},b’={b’,…,b’}を求め、β(x)がZの元であり、かつn−t次であること、β(0)=H”(n,t,t’,y,m,h,A,…,At’ ,a’,b’)であることを確認するβ(x)の適正確認手段231
3とから構成される。
【0039】
図18に第2実施形態での電子署名システムの処理フローを示す。以下に、処理フローを図18に従って説明する。
ステップS310からS330までは、第1実施形態と同じ処理である。次に、集合Sの各参加者装置210−i(i=1,…,s)のx’生成手段2122−iで、任意のZの元x’を選定する(S610)。集合Sの各参加者装置210−iの鍵生成部212−iで、使い捨て公開鍵σ(i=1,…,s)を、
【0040】
【数45】

により生成し、集合Sの他の参加者装置210−iおよび署名生成部220に送信する(S620)。ステップS370とステップS380は、第1実施形態と同じである。次に、署名生成部220のσ計算手段2222は、集合T’の使い捨て公開鍵σ(i∈T’、i=k,…,kt’)から、
【0041】
【数46】

として、A(i=0,…,t')を
=H’(n,t,t’,y,m)
【0042】
【数47】

と定め、
【0043】
【数48】

として集合N−T’の使い捨て公開鍵σ(i∈N−T’)を計算し、集合Sの参加者装置210−iに送信する(S630)。ステップS630の処理内容について説明する。
=hα(0)α’(0)
ただし、A=H’(n,t,t’,y,m)
と、
σ=hα(i)α’(i)
ただし、i=k,…,kt’
が成り立つ次数t’の多項式α(x)とα’(x)を求める。そして、α(x)とα’(x)から、集合N−T’の使い捨て公開鍵σ(i∈N−T’)を、
σ=hα(i)α’(i)
により求める。このように使い捨て公開鍵σ(i∈N)求めることによって、集合Nの全ての参加者装置210−iの使い捨て公開鍵σが、σ=hα(i)α’(i)を満たす。ところが、α(x)とα’(x)の次数がt’であることから、署名に参加した参加者装置210−iはt’以下であることは分かる。しかし、全てのi(i=1,…,n)に対してσ=hα(i)α’(i)が成り立つので、どの参加者装置210−iが署名に参加したのかは分からない。ただし、実際にはAはH’で生成されているから、離散対数α(0)、α’(0)が分からない。したがって、α(x)とα’(x)を直接求めることはできない。そこで、ステップS390では、Aを用いて計算している。
【0044】
次に、集合Sの各参加者装置210−iのw・w’生成手段2131−iで、任意のZの元wとw’を選定する(S640)。集合Sの各参加者装置210−iのa・b生成手段2133−iで、
【0045】
【数49】

によってaとbとを生成し、集合Sの他の参加者装置210−iおよび署名生成部220に送信する(S650)。集合Sの各参加者装置210−iのz・z’・c選定情報の生成手段2137−iで、任意のZの元zとz’とcを選定するためのz・z’・c選定情報を生成し、集合Sの他の参加者装置210−iおよび署名生成部220に送信する(S660)。署名生成部220のz・z’・c選定手段2211で、前記z・z’・c選定情報をもとに、集合N−Sのz、z’、c(i∈N−S)を選定し、a・b生成手段2216で、
【0046】
【数50】

により集合N−Sのaとb(i∈N−S)とを生成し、生成されたaとbとを集合Sの参加者装置210−iに送信する(S670)。次のステップS440とS450とは第1実施形態と同じである。次に、署名生成部220のβ(x)計算手段2223は、
β(0)=H”(n,t,t’,y,m,h,A,…,At’,a,b
β(i)=c
ただし、i∈N−T
を満足するZの元であって、次数(n−t)の多項式β(x)を求め、集合Sの参加者装置210−iに送信する(S680)。集合Sの各参加者装置210−iのz・z’生成手段2135−iは、
=w−β(i)x
’=w’−β(i)x
によってZの元zとz’を計算し、集合Sの他の参加者装置210−iおよび署名生成部220に送信する(S690)。署名生成部220の署名出力部224で、署名を、A,…,At’,β(x),z,…,z,z’,…,z’を用いて生成する(S700)。なお、説明が冗長となるため説明上は省略しているが、各ステップで生成、計算、受信された情報は、処理のたびに記録部214−iまたは225に記録され、利用される情報は記録部214−iまたは225から読み出される。このような処理によって、α(x)とα’(x)がt’次であること、β(x)が(n−t)次であることから、t台以上t’台以下の参加者装置が署名に参加したことを確認できる署名を生成できる。
【0047】
次に署名検証部230での処理フローを説明する。署名検証部130の通信部232で、n,t,t’、集合Nの各参加者装置の公開鍵y={y,…,y}、メッセージm、署名σ=(A,…,At’,β(x),z,…,z,z’,…,z’)を受信し、群の適正確認部2311で、
h=H(n,t,t’,y,m)
=H’(n,t,t’,y,m)
を計算し、h,A,…,At’が群Gの元であること、z,…,z,z’,…,z’がZの元であることを確認する(S710)。Aの適正確認部2312は、
【0048】
【数51】

で求められるσ(i=1,…,n)がGの元であることを確認する(S720)。このステップで、Aがi=0,…,t’の(t’+1)個しかないことから、署名に参加した参加者装置210−iがt’台以下であることも確認される。次に、β(x)の適正確認部2313は、
【0049】
【数52】

としてa’={a’,…,a’},b’={b’,…,b’}を求め、β(x)の係数がZの元であること、β(x)がn−t次であること、およびβ(0)=H”(n,t,t’,y,m,h,A,…,At’ ,a’,b’)であることを
確認する(S730)。このステップで、β(x)が(n−t)次であることから、署名に参加した参加者装置210−iがt台以上であることが確認される。通信部132は、ステップS710からS730の確認結果がすべてOKであれば、署名が正しいことを出力し、そうでないときは署名は正しくないことを出力する(S740)。
【0050】
第1実施形態では、集合Sの各参加者装置110−i(i∈S)は、
log(y)=log(σ
を、例えば、参考文献([Cha90] David Chaum, Zero-Knowledge Undeniable Signatures,
EUROCRYPT 1990, pp.458-464, 1990.)の方法で証明することで、署名に参加したことを証明できた。また、集合N−Sの各参加者装置110−i(i∈N−S)は、
log(y)≠log(σ
を、同じ方法で証明することで、署名に参加しなかったことを証明できた。しかし、第2実施形態では、集合Nの全ての参加者装置210−i(i∈N)に対して
【0051】
【数53】

が成り立つx’が存在するので、その式を証明できることが署名に参加したことを示していない。したがって、参加者装置210−i(i=1,…,n)は、署名に参加したか否かを証明することができない。
このような処理によって、n台(nは2以上の整数)の参加者装置に含まれるs台の参加者装置が署名を行った場合に、署名をした参加者装置がt台以上t’台以下であることが確認できる電子署名を生成できる。
【0052】
なお、本発明は、コンピュータ本体とコンピュータプログラムとして実行することが可能であるし、デジタルシグナルプロセッサや専用LSIに実装して実現することも可能であ
る。
【0053】
以下では、上記の参加者装置が1台に限定された場合についての説明を行う。この場合、署名鍵の重複使用を防止できる。なぜなら、上記においてt=t’=1の場合に相当し、署名鍵の重複使用者(重複署名者とも云う。)を追跡できるからである。
そこで、この重複使用者追跡可能署名方式について、説明の便宜から上記第1実施形態を基礎として説明を行うことにする。
なお、このような重複使用者追跡可能署名方式が要請されるのは、署名鍵を持っている署名者は何回でも匿名で署名できてしまい、例えば、電子投票(参考文献: Atsushi Fujioka, Tatsuaki Okamoto, Kazuo ohta, "A Practical Secret Voting Scheme for Large Scale Elections", ASIACRYPT, pp.244-251, 1992.)、電子現金(参考文献: Stefan Brands, "Untraceable Off-line Cash in Wallets with Observers (Extended Abstract)", CRYPTO, pp.302-318, 1993.)に応用した場合、重複投票、電子現金の重複使用が可能となってしまうからである。
また、この重複使用者追跡可能署名方式は、同一署名者が同一メッセージに署名を添付して複数回発行した署名付きメッセージも検出可能なものであるから、この点についても併せて説明する。なお、以下の説明では、このことを「コピー署名の検出」、「署名のコピーの検出」などとも云うことにする。
【0054】
重複使用者追跡可能署名方式の説明を行うにあたり、改めて定義を示しておく。Gを離散対数問題の難しい素数位数qの巡回群とし、gをその生成元とする。巡回群Gの例としては、例えば乗法群Z〔q=p−1〕、楕円曲線上の点で定義される群などが上げられる。
【0055】
また、H、H’、H”を、H:{0,1}→G、H’:{0,1}→G、H”:{0,1}→Zなる性質を有するハッシュ関数とする。ここで{0,1}は、任意のビット長のバイナリ系列を表し、Zは、加法群を表す。
【0056】
さらに、署名者はn人であるとし、これら署名者の集合をN={1,・・・,n}とする。各署名者は後述する署名装置(上記の参加者装置に相当する。)を用いて署名する。ここでは、署名者iのID(identification)をi(i=1,・・・,n)とする。
以下では、y={yi∈Nなどと略記する。
【0057】
[情報公開サーバ装置]
まず、情報公開サーバ装置(以下、「情報公開サーバ」という。)について説明する。
図19は、情報公開サーバ(1000)のハードウェア構成を例示した構成ブロック図である。
【0058】
図19に例示するように、情報公開サーバ(1000)は、キーボードなどが接続可能な入力部(1100)、液晶ディスプレイなどが接続可能な出力部(1200)、情報公開サーバ(1000)外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部(1300)、CPU(Central Processing Unit)(1400)〔キャッシュメモリなどを備えていてもよい。〕、メモリであるRAM(1500)、ROM(1600)やハードディスクである外部記憶装置(1700)並びにこれらの入力部(1100)、出力部(1200)、通信部(1300)、CPU(1400)、RAM(1500)、ROM(1600)、外部記憶装置(1700)間のデータのやり取りが可能なように接続するバス(1800)を有している。また必要に応じて、情報公開サーバ(1000)に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。
【0059】
情報公開サーバ(1000)の外部記憶装置(1700)には、情報公開のためのプログラムおよびこのプログラムの処理において必要となるデータなどが保存記憶されている。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に保存記憶されるとする。
【0060】
より具体的には、情報公開サーバ(1000)の外部記憶装置(1700)〔あるいはROMなど〕には、情報公開サーバ(1000)にアクセスした署名装置などに対して外部記憶手段(1700)に保存記憶される情報を提供するためのプログラム、情報公開サーバ(1000)にアクセスした署名装置などから情報を取得して外部記憶手段(1700)に保存記憶するためのプログラムおよびこれらのプログラムの処理において必要となるデータなどが保存記憶されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムなども適宜に保存しておく。
【0061】
情報公開サーバ(1000)では、外部記憶装置(1700)〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAM(1500)に読み込まれて、CPU(1400)で解釈実行・処理される。その結果、CPU(1400)が所定の機能(情報提供部、情報取得部)を実現することで、情報公開が実現される。
【0062】
情報公開サーバ(1000)は、署名装置などからのアクセスを許可し、当該装置に対して、情報公開サーバにおける所定の情報(後述する公開鍵などである。)を提供し(「公開する」ともいう。)、あるいは、当該装置から情報を取得するものである。
【0063】
[署名装置]
署名装置について説明する。
図20は、署名装置(2000)のハードウェア構成を例示した構成ブロック図である。
【0064】
図20に例示するように、署名装置(2000)は、キーボードなどが接続可能な入力部(2100)、液晶ディスプレイなどが接続可能な出力部(2200)、署名装置(2000)外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部(2300)、CPU(Central Processing Unit)(2400)〔キャッシュメモリなどを備えていてもよい。〕、メモリであるRAM(2500)、ROM(2600)やハードディスクである外部記憶装置(2700)並びにこれらの入力部(2100)、出力部(2200)、通信部(2300)、CPU(2400)、RAM(2500)、ROM(2600)、外部記憶装置(2700)間のデータのやり取りが可能なように接続するバス(2800)を有している。また必要に応じて、署名装置(2000)に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。
【0065】
署名装置(2000)の外部記憶装置(2700)には、署名のためのプログラムおよびこのプログラムの処理において必要となるデータなどが保存記憶されている。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に保存記憶される。
【0066】
より具体的には、署名装置(2)の外部記憶装置(27)〔あるいはROMなど〕には、後述する値h、σ、σ、A、A、a、b、a、b、z、cを生成するためのプログラム、群の中から元を任意に選択するためのプログラム、署名を生成するためのプログラムおよびこれらのプログラムの処理において必要となるデータ(例えばメッセージmである。)などが保存記憶されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも適宜に保存しておく。
【0067】
署名装置(2000)では、外部記憶装置(2700)〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAM(2500)に読み込まれて、CPU(2400)で解釈実行・処理される。その結果、CPU(2400)が所定の機能(h生成部、σ生成部、σ生成部、A生成部、A生成部、a生成部、b生成部、a生成部、b生成部、z生成部、c生成部、元選択部、署名生成部、制御部)を実現することで、署名が実現される。
【0068】
[検証装置]
検証装置について説明する。検証装置は重複署名者の追跡および署名のコピーの検出にも用いられるとする。検証装置とは異なる物理的実態(装置)を重複署名者追跡兼コピー署名検出装置とすることでもよい。なお、重複署名者追跡兼コピー署名検出装置を各別の物理的実態(装置)として構成する−つまり、重複署名者追跡装置およびコピー署名検出装置である−としてもよいが、下記の説明から明らかになるとおり、実質的な機能・処理は両者で変わらないので、検証装置から機能的に分離するならば、機能的一体性の認められる重複署名者追跡兼コピー署名検出装置とするが一般的になると考えられる。
図21は、検証装置(3000)のハードウェア構成を例示した構成ブロック図である。
【0069】
図21に例示するように、検証装置(3000)は、キーボードなどが接続可能な入力部(3100)、液晶ディスプレイなどが接続可能な出力部(3200)、検証装置(3000)外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部(3300)、CPU(Central Processing Unit)(3400)〔キャッシュメモリなどを備えていてもよい。〕、メモリであるRAM(3500)、ROM(3600)やハードディスクである外部記憶装置(3700)並びにこれらの入力部(3100)、出力部(3200)、通信部(3300)、CPU(3400)、RAM(3500)、ROM(3600)、外部記憶装置(3700)間のデータのやり取りが可能なように接続するバス(3800)を有している。また必要に応じて、検証装置(3000)に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。
【0070】
検証装置(3000)の外部記憶装置(3700)には、検証(および重複署名者の追跡、コピー署名の検出)のためのプログラムおよびこのプログラムの処理において必要となるデータなどが保存記憶されている。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に保存記憶される。
【0071】
より具体的には、検証装置(3000)の外部記憶装置(3700)〔あるいはROMなど〕には、後述するラベルLから所定の値を抽出するためのプログラム、後述する値h、σ、A、a、bを生成するためのプログラム、元zを検証するためのプログラム、Aを検証するためのプログラム、元cを検証するためのプログラム、公開鍵を検証するためのプログラム、元cの総和と所定の値との一致を判定するためのプログラム、重複臨時公開鍵の検証を行うためのプログラムおよびこれらのプログラムの処理において必要となるデータなどが保存記憶されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも適宜に保存しておく。
【0072】
検証装置(3000)では、外部記憶装置(3700)〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAM(3500)に読み込まれて、CPU(3400)で解釈実行・処理される。その結果、CPU(3400)が所定の機能(ラベル抽出部、h生成部、σ生成部、A生成部、a生成部、b生成部、z検証部、c検証部、A検証部、公開鍵検証部、判定部、重複臨時公開鍵検証部、制御部)を実現することで、署名検証、重複署名者の追跡、コピー署名の検出が実現される。
【0073】
[システム構成]
重複使用者追跡可能署名方式におけるシステム構成について説明する。
図22は、重複使用者追跡可能署名方式におけるシステム構成を示す図である。
【0074】
ここで説明する重複使用者追跡可能署名方式では、説明の便宜から、公開鍵基盤の一例であるPKI(Public Key Infrastructure)を前提にしている。PKIは、日本国においても「電子署名及び認証業務に関する法律(平成12年法律第102号)」が制定されたことなども相まって普及整備が進んでいる公知技術であるから(例えば参考文献1参照。)、その詳細の説明は省略する。なお、重複使用者追跡可能署名方式は、日本国におけるPKIを前提とすることに限定するものではなく、例えば公知の電子公開掲示板でもよいし、およそ公開鍵基盤が普及整備されているならば、諸外国やあるいは公開鍵基盤の規模・性質(国家・地方・地域のような比較的大きな規模や例えば企業・大学・自治体・団体のような比較的小さな規模、社会基盤としての公的性質や私企業内における私的性質)などを問わず適用可能である。なお、日本国における政府認証基盤(GPKI:Government Public Key Infrastructure)については、参考文献2を参照のこと。
(参考文献1) 独立行政法人 情報処理推進機構、”PKI関連技術解説”、[平成18年1月16日検索]、
インターネット <URL : http://www.ipa.go.jp/security/pki/>
(参考文献2) 日本国総務省行政管理局、”政府認証基盤(GPKI)”、[平成18年1月16日検索]、
インターネット <URL : http://www.gpki.go.jp/>
【0075】
図22に示すCA(Certification Authority)(4000)は、PKIにおける認証局を表している。
情報公開サーバ(1000)、1つ以上の署名装置(2000−1),(2000−2),・・・,(2000−n)、検証装置(3000)、CA(4000)は、ネットワーク(5000)を介して相互に通信可能に接続されている。
【0076】
[鍵生成]
重複使用者追跡可能署名方式を実施するための準備(鍵生成)について説明する(図4参照)。
まず、署名者iは、秘密鍵sk=xを群Zの元から選択し、巡回群Gの生成元gを用いて、公開鍵pk=y=g^xを生成する。記号^は、べき乗を表す。署名者iは、署名者iに固有の公開鍵yをCA(4000)に送信し、CA(4000)に公開鍵yを登録する。
【0077】
次に、情報公開サーバ(1000)は、CA(4000)にネットワーク(5000)経由でアクセスし、各署名者の公開鍵y,y,・・・,yを取得する。
【0078】
情報公開サーバ(1000)は、取得した各署名者の公開鍵y,y,・・・,yを外部記憶装置(1700)に記憶保存する。
【0079】
情報公開サーバ(1000)は、各署名装置からアクセスがあった場合に、これらのデータ(公開鍵y,y,・・・,y)を、情報提供部(8000)によって、その通信部(1300)を通じて、アクセスした署名装置に対して送信する。また、署名生成処理後においては、外部記憶装置(1700)に保存記憶されている署名なども、情報提供部(8000)によって、その通信部(1300)を通じて、アクセスした検証装置に対して送信する。
【0080】
なお、後述するラベルLの生成において、例えば全署名者の公開鍵をy,y,・・・,yを用いない場合には、情報公開サーバ(1000)やPKIを不要として、検証装置(3000)に複数の署名装置(1000)が相互に通信可能に接続する所謂サーバ−クライアント型のシステム構成とすることも可能である。
【0081】
以下、図23〜図30を参照して、重複使用者追跡可能署名方式の処理を説明する。
図23は、情報公開サーバ(1000)における処理フローを示す図である。
図24は、署名装置(2000)の機能構成例を示す図である。
図25は、署名装置(2000)における処理フローを示す図である(その1)。
図26は、署名装置(2000)における処理フローを示す図である(その2)。
図27は、署名後における状態を示す図である。
図28は、検証装置(3000)の機能構成例を示す図である。
図29は、検証装置(3000)における処理フローを示す図である(その1)。
図30は、検証装置(3000)における処理フローを示す図である(その2)。
【0082】
[署名]
まず、署名装置による署名について説明する。
以下では、署名者iは、署名装置i(2000)によって署名を行うとする。
署名装置i(2000)の外部記憶装置(2700)には、署名装置i(2000)のIDであるi、巡回群Gの生成元g、投票者iに固有の秘密鍵x、全ての署名者の公開鍵y、ラベルL、メッセージm、全署名者の公開鍵{y,…,y}の個数nが予め保存記憶されているとする。
【0083】
署名装置i(2000)は、制御部(6130)の制御によって、その通信部(2300)を通じて、情報公開サーバ(1000)にアクセスし、情報公開サーバ(1000)の通信部(1300)を通じて送信された(ステップS1s)、情報公開サーバ(1000)の外部記憶装置(1700)に記憶される全ての署名者の公開鍵{y,…,y}〔以後、全ての署名者の公開鍵{y,…,y}をyと略記する。〕を受信し、これを署名装置i(2000)の外部記憶装置(2700)に保存記憶する。また、全ての投票者の公開鍵y(以下、「リストy」とも云う。)の個数nも、署名装置iの外部記憶装置(27)に保存記憶する。また、署名装置i(2000)は、制御部(6130)の制御によって、自身の外部記憶装置(2700)に、或る文字列L={0,1}およびラベルL=(L,y)について保存記憶する(ステップS2)。ここで、ラベルLは、文字列Lおよび公開鍵のリストyをバイナリ系列で結合した値L‖y(=L‖y‖y‖・・・‖y)〔記号‖はバイナリ系列同士の結合を表す。〕である。以下、特に断りの無い限り、(X,Y)なる表記はXおよびYのバイナリ系列の結合を表すとする。なお、文字列LおよびラベルLについては、全ての署名装置に共通とする。従って、正しく文字列LおよびラベルLを使用しない署名装置は正規の署名装置ではないことになる。なお、文字列LおよびラベルLを情報公開サーバ(1000)で公開するようにしてもよい。この場合、情報公開サーバのラベル生成部〔所定のプログラムがCPU(1400)で解釈・実行されて実現される。〕が、文字列LおよびリストyからラベルLを生成して、この文字列Lおよびリストyを外部記憶装置(1700)に保存記憶する。
【0084】
予め、署名装置i(2000)は、制御部(6130)の制御の下、外部記憶装置(2700)から、署名装置iのIDであるi、巡回群Gの生成元g、投票者iに固有の秘密鍵x、全ての署名者の公開鍵y、ラベルL、メッセージm、全署名者の公開鍵yの個数nを読み込み、それぞれをRAM(2500)の所定の格納領域に格納しておく。以下、「RAMから○○を読み込む」旨の説明をした場合は、「RAMにおいて○○が格納されている所定の格納領域から○○を読み込む」ことを意味するとする。
【0085】
まず、署名装置i(2000)のh生成部(6000)は、RAM(2500)からLを読み込み、h=H(L)を演算し、この演算結果hをRAM(2500)の所定の格納領域に格納する(ステップS3)。なお、hは巡回群Gの元、即ちh∈Gであることに留意する。このhが、固有臨時公開鍵生成因子に相当する。
【0086】
次に、署名装置i(2000)のσ生成部(6010)は、RAM(2500)からh、xをそれぞれ読み込み、σ=h^xを演算し、この演算結果σをRAM(2500)の所定の格納領域に格納する(ステップS4)。なお、σは巡回群Gの元、即ちσ∈Gであることに留意する。このσは、署名装置iの固有臨時公開鍵に相当する。
【0087】
続いて、署名装置i(2000)のA生成部(6020)は、RAM(2500)からL、mをそれぞれ読み込み、A=H’(L,m)を演算し、この演算結果AをRAM(2500)の所定の格納領域に格納する(ステップS5)。なお、Aは巡回群Gの元、即ちA∈Gであることに留意する。このAが、撹乱因子生成因子に相当する。
【0088】
次に、署名装置i(2000)のA生成部(6030)は、RAM(2500)からi、A、σをそれぞれ読み込み、A=(σ/A)^(1/i)を演算し、この演算結果AをRAM(2500)の所定の格納領域に格納する(ステップS6)。Aは巡回群Gの元、即ちA∈Gであることに留意する。このAが、撹乱因子に相当する。
【0089】
次に、署名装置i(2000)のσ生成部(6040)は、RAM(2500)からA、A、n、iをそれぞれ読み込み、σ=A(A^j)を演算し、この演算結果σをRAM(2500)の所定の格納領域に格納する(ステップS7)。ここでjは、j∈N−{i}、即ち、j=1,2,・・・,i−1,i+1,・・・,nである。なお、σは巡回群Gの元、即ちσ∈Gであることに留意する。このσは、署名装置iが作った署名装置i以外の署名装置の撹乱臨時公開鍵に相当する。
【0090】
さらに、A=h^α(0)かつσ=h^α(f)〔但し、f∈N〕を満足する次数1の多項式α(x)∈Z[x]が存在することに留意しなければならない。なお、記号α(x)∈Z[x]は、多項式α(x)が、群Zの元を係数に有する多項式であることを表す。
このことを換言すると、log(σ)が、log(A)およびx=log(σ)で定まる直線上に存在することを意味する。
【0091】
続いて、ラベルL、固有臨時公開鍵生成因子h、臨時公開鍵σ(臨時公開鍵σは、固有臨時公開鍵と撹乱臨時公開鍵とを合わせたものである。つまり、σ={σ,σ,・・・,σi−1,σ,σi+1,・・・,σ}である。)について、log(yi’)=log(σi’)を満たすi’∈Nが存在することを、非対話ゼロ知識証明(non-interactive zero-knowledge proof of knowledge : NIZK法)によって証明するための非対話ゼロ知識証明情報を生成可能な非対話ゼロ知識証明情報生成因子c、zを求める。より具体的に説明すると、署名装置i(2000)が、その秘密鍵xを用いて固有臨時公開鍵σを生成したこと、即ち、log(y)=log(σ)が成立することを、非対話ゼロ知識証明によって検証装置に証明することが可能な情報を求めるのである。
なお、非対話ゼロ知識証明は公知の方法でよく、下記の非対話ゼロ知識証明に限定するものではない。
【0092】
署名装置i(2000)の元選択部(6050)は、群Zの元の中から任意に1つの元wを選択し、この元wをRAM(2500)の所定の格納領域に格納する(ステップS8)。
【0093】
次に、署名装置i(2000)のa生成部(6060)は、RAM(2500)からg、wをそれぞれ読み込み、a=g^wを演算し、この演算結果aをRAM(2500)の所定の格納領域に格納する(ステップS9)。なお、aは巡回群Gの元、即ちa∈Gであることに留意する。
【0094】
次に、署名装置i(2000)のb生成部(6070)は、RAM(2500)からh、wをそれぞれ読み込み、b=h^wを演算し、この演算結果bをRAM(2500)の所定の格納領域に格納する(ステップS10)。なお、bは巡回群Gの元、即ちb∈Gであることに留意する。
【0095】
続いて、署名装置i(2000)の元選択部(6050)は、RAM(2500)からi、nをそれぞれ読み込み、j∈N−{i}、即ちj=1,2,・・・,i−1,i+1,・・・,nについて、群Zの元の中から任意に2つの元z、cを選択し、これらの元z、cをRAM(2500)の所定の格納領域に格納する(ステップS11)。
【0096】
次に、署名装置i(2000)のa生成部(6080)は、j∈N−{i}、即ちj=1,2,・・・,i−1,i+1,・・・,nについて、RAM(2500)からg、z、c、yをそれぞれ読み込み(yは、yからyを除いたものである。)、a=(g^z)×(y^c)を演算し、この演算結果aをRAM(2500)の所定の格納領域に格納する(ステップS12)。なお、aは巡回群Gの元、即ちa∈Gであることに留意する。
【0097】
次に、署名装置i(2000)のb生成部(6090)は、j∈N−{i}、即ちj=1,2,・・・,i−1,i+1,・・・,nについて、RAM(2500)からh、z、c、σをそれぞれ読み込み、b=(h^z)×(σ^c)を演算し、この演算結果bをRAM(2500)の所定の格納領域に格納する(ステップS13)。なお、bは巡回群Gの元、即ちb∈Gであることに留意する。
【0098】
以上の各処理で生成された、a={a,a,・・・,a}、b={b,b,・・・,b}が非対話ゼロ知識証明情報である。
【0099】
次に、署名装置i(2000)のc生成部(6100)は、RAM(2500)からm、L、A、A、a、b、c〔j∈N−{i}〕を読み込み、c=H”(L,m,A,A,a,b)−Σj∈N−{i} (mod q)=H”(L,m,A,A,a,b)−(c+c+・・・+ci−1+ci+1+・・・+c) (mod q)を演算し、この演算結果cをRAM(2500)の所定の格納領域に格納する(ステップS14)。なお、cは、群Zの元であることに留意する。
ハッシュ関数H”の入力には、ラベルLおよびメッセージmが含まれているが、いずれか一方を含むようにしても、あるいは、両者を含まないようにすることもできる。また、ハッシュ関数H”の入力は、この実施形態に限定する趣旨ではなく、他の非対話ゼロ知識証明情報を入力に含めるようにしてもよい。この明細書では、ハッシュ関数H”の入力は、L,m,A,A,a,bとする。
【0100】
続いて、署名装置i(2000)のz生成部(6110)は、RAM(2500)からn、i、w、x、cをそれぞれ読み込み、z=w−c×x (mod q)を演算し、この演算結果zをRAM(2500)の所定の格納領域に格納する(ステップS15)。なお、zは群Zの元、即ちz∈Zであることに留意する。
【0101】
以上の各処理で生成された、c={c,c,・・・,c}、z={z,z,・・・,z}が非対話ゼロ知識証明情報生成因子である。
【0102】
続いて、署名装置i(2000)の署名生成部(6120)は、RAM(2500)からA、c、c、z、zをそれぞれ読み込み、このうち、A、c、c、z、zの組み合わせを、署名装置iにおけるラベルLおよびメッセージmの組に対する署名ξとする(ステップS16)。即ち、ξ={A、c、z}とする。ここでcは、c={c,c,・・・,c}、zは、z={z,z,・・・,z}である。
【0103】
続いて、署名装置i(2000)は、制御部(6130)の制御によって、通信部(2300)を通じて、ステップS16で生成された署名ξ={A、c、z}並びにラベルLおよびメッセージmの組を、匿名通信路を経由して情報公開サーバ(1000)に送信する(ステップS17)。
【0104】
情報公開サーバ(1000)は、情報取得部(8010)によって、その通信部(1300)を通じて、ステップS17で送信された署名ξ={A、c、z}並びにラベルLおよびメッセージmの組を受信し、署名ξ={A、c、z}並びにラベルLおよびメッセージmを対応付けて外部記憶装置(1700)に保存記憶する(ステップS2s)。
【0105】
[検証]
続いて、検証装置(3000)による署名の検証処理について説明する。
検証装置(3000)の外部記憶装置(3700)には、巡回群Gの生成元gが予め保存記憶されているとする。また、全署名者の公開鍵yの個数nも、検証装置(3000)の外部記憶装置(3700)に保存記憶されているとする。
【0106】
検証装置(3000)は、制御部(7110)の制御によって、その通信部(3300)を通じて、情報公開サーバ(1000)にアクセスし、情報公開サーバ(1000)の通信部(1300)を通じて送信された(ステップS3s)、情報公開サーバ(1000)の外部記憶装置(1700)に記憶される、ある署名装置で作られた署名ξ={A、c、z}、この署名ξに対応するラベルLおよびメッセージmを受信し、これらを検証装置(3000)の外部記憶装置(3700)に保存記憶する(ステップS18)。ここで、「ある署名装置で作られた署名ξ・・・メッセージm」としたのは、署名およびこの署名ξに対応するラベルLおよびメッセージmには署名装置を特定する情報が含まれていないため、検証装置の立場からすると、どの署名装置で作られた署名であるかを知ることができないからである。以下では、情報公開サーバ(1000)から取得した1個の署名およびこの署名ξに対応するラベルLおよびメッセージmについて検証を行う処理を説明する。
【0107】
検証装置(3000)は、制御部(7110)の制御によって、外部記憶装置(3700)から、巡回群Gの生成元g、署名ξ={A、c、z}、この署名ξに対応するラベルLおよびメッセージmの組、全署名者の公開鍵yの個数nを読み込み、それぞれをRAM(3500)の所定の格納領域に格納する。
【0108】
次に、検証装置(3000)のラベル抽出部(7150)は、RAM(3500)からラベルLを読み込み、文字列Lおよびリストyを抽出し、抽出した文字列LおよびリストyをRAM(3500)の所定の格納領域に格納する(ステップS19)。
【0109】
次に、検証装置(3000)のA検証部(7020)は、RAM(3500)からAを読み込み、Aが巡回群Gの元であるか否かを検証する(ステップS20)。この検証に合格しなかった場合、署名ξ={A、c、z}は不正な署名であることが判明して検証処理を終了する(ステップS50)。この検証に合格したら、制御部(7110)は、以下の処理を実行するように制御する。
【0110】
続いて、検証装置(3000)のc検証部(7040)は、RAM(3500)からc(={c,c,・・・,c})をそれぞれ読み込み、各c(f=1,2,・・・,n)が群Zの元であるか否かを検証する(ステップS21)。この検証に合格しなかった場合、署名ξは不正な署名であることが判明して検証処理を終了する(ステップS50)。この検証に合格したら、制御部(7110)は、以下の処理を実行するように制御する。
【0111】
続いて、検証装置(3000)のz検証部(7060)は、RAM(3500)からz(={z,z,・・・,z})をそれぞれ読み込み、各z(f=1,2,・・・,n)が群Zの元であるか否かを検証する(ステップS22)。この検証に合格しなかった場合、署名ξは不正な署名であることが判明して検証処理を終了する(ステップS50)。この検証に合格したら、制御部(7110)は、以下の処理を実行するように制御する。
【0112】
続いて、検証装置(3000)の公開鍵検証部(7050)は、RAM(3500)からリストy(={y,y,・・・,y})をそれぞれ読み込み、各y(f=1,2,・・・,n)が群Gの元であるか否かを検証する(ステップS23)。この検証に合格しなかった場合、署名ξは不正な署名であることが判明して検証処理を終了する(ステップS50)。この検証に合格したら、制御部(711)は、以下の処理を実行するように制御する。
【0113】
ステップS20、S21、S22、S23の各処理において移行するステップS50の終了処理は、署名ξがそもそも適正な群の元を用いていないことに起因するものである。従って、後述の重複署名者追跡処理は行わない。
【0114】
次に、検証装置(3000)のh生成部(7000)は、RAM(3500)からラベルLを読み込み、h=H(L)を演算し、この演算結果hをRAM(3500)の所定の格納領域に格納する(ステップS24)。なお、hは巡回群Gの元、即ちh∈Gであることに留意する。このhは、署名装置で生成される固有臨時公開鍵生成因子に等しい。
【0115】
次に、検証装置(3000)のA生成部(7010)は、RAM(3500)からラベルL、メッセージmをそれぞれ読み込み、A=H’(L,m)を演算し、この演算結果AをRAM(3500)の所定の格納領域に格納する(ステップS25)。なお、Aは巡回群Gの元、即ちA∈Gであることに留意する。このAは、署名装置で生成される撹乱因子生成因子に等しい。
【0116】
次に、検証装置(3000)のσ生成部(7030)は、RAM(3500)からA、A、nをそれぞれ読み込み、σ=A(A^f)〔但しf=1,2,・・・,nとする。〕を演算し、この演算結果σ(={σ,σ,・・・,σ})をRAM(3500)の所定の格納領域に格納する(ステップS26)。なお、σ(={σ,σ,・・・,σ})はそれぞれ巡回群Gの元、即ちσ∈Gであることに留意する。このσは、署名装置の固有臨時公開鍵および署名装置で生成される撹乱臨時公開鍵を合わせた臨時公開鍵である。
【0117】
続いて、検証装置(3000)のa生成部(7070)は、RAM(3500)からn、g、c、z、yをそれぞれ読み込み、a=(g^z)×(y^c)〔但しf=1,2,・・・,nとする。〕を演算し、この演算結果a(={a,a,・・・,a})をRAM(3500)の所定の格納領域に格納する(ステップS27)。なお、a(={a,a,・・・,a})はそれぞれ巡回群Gの元、即ちa∈Gであることに留意する。
【0118】
続いて、検証装置(3000)のb生成部(7080)は、RAM(3500)からn、h、c、z、σをそれぞれ読み込み、b=(h^z)×(σ^c)〔但しf=1,2,・・・,nとする。〕を演算し、この演算結果b(={b,b,・・・,b})をRAM(3500)の所定の格納領域に格納する(ステップS28)。なお、b(={b,b,・・・,b})はそれぞれ巡回群Gの元、即ちb∈Gであることに留意する。
【0119】
続いて、検証装置(3000)の判定部(7090)は、RAM(3500)からL、m、A、A、a、b、cをそれぞれ読み込み、Σf∈N (mod q)=H”(L,m,A,A,a,b) (mod q)が成立するか否かを判定し、この判定結果RをRAM(3500)の所定の格納領域に格納する(ステップS29)。このハッシュ関数H”の入力は、ステップS14の処理におけるハッシュ関数H”の入力と同じになるようにする。
この判定が成立しなかった場合(判定不成立)、署名ξは不正な署名であることが判明して検証処理を終了する(ステップS51)。ステップS51の終了処理は、不正署名の検出に成功したことに起因する終了である。
この判定が成立した場合(判定成立)、制御部(711)は、以下の署名者追跡処理を実行するように制御する。なお、以下の署名者追跡処理では、単に重複署名者の追跡をするだけでなく、同一の署名装置で作られた同一のメッセージに対する署名のコピーも検出する処理も行っている。また、説明の便宜上、重複署名ないしコピー署名は1つであるとする(つまり、二重署名ないし1個のコピー署名が存在する場合とする。)。
【0120】
[署名者追跡]
検証装置(3000)は、制御部(7110)の制御によって、その通信部(3300)を通じて、情報公開サーバ(1000)にアクセスし、情報公開サーバ(1000)の通信部(1300)を通じて送信された(ステップS4s)、情報公開サーバ(1000)の外部記憶装置(1700)に記憶される全ての署名ξ並びに各署名に対応したラベルLおよびメッセージmを受信し、これらを検証装置(3000)の外部記憶装置(3700)に保存記憶する(ステップS30)。
【0121】
次に、検証装置(3000)は、制御部(7110)の制御によって、外部記憶装置(3700)から読み込まれてRAM(3500)に記憶される各署名のうち、2つの署名(各署名に対応したラベルLおよびメッセージmも含む。)からなるペア〔後述の重複署名者追跡およびコピー署名の検出がまだ行われていないペアとする。〕を選択して、以下の処理を行う。ここでは、選択したペアを構成する、一方の署名並びにこの署名に対応したラベルLおよびメッセージmと、他方の署名並びにこの署名に対応したラベルLおよびメッセージmとを区別するために、〈L,m,ξ={A、c、z}〉、〈L,m’,ξ’={A’、c’、z’}〉とする〔ラベルLは共通であることに留意する。〕(ステップS31)。
【0122】
まず、検証装置(3000)のA生成部(7010)は、RAM(3500)からラベルL、メッセージm、m’をそれぞれ読み込み、A=H’(L,m)、A’=H’(L,m’)を演算し、この演算結果A、A’をRAM(3500)の所定の格納領域に格納する(ステップS32)。
【0123】
次に、検証装置(3000)のσ生成部(7030)は、RAM(3500)からA、A、A’、A’、nをそれぞれ読み込み、σ=A(A^f)〔但しf=1,2,・・・,nとする。〕およびσ’=A’(A’^f)〔但しf=1,2,・・・,nとする。〕を演算し、この演算結果σ(=(σ,σ,・・・,σ))およびσ’(=(σ’,σ’,・・・,σ’))をRAM(3500)の所定の格納領域に格納する(ステップS33)。
【0124】
次に、検証装置(3000)の重複臨時公開鍵検証部(7160)は、RAM(3500)からσ=A(A^f)〔但しf=1,2,・・・,nとする。〕およびσ’=A’(A’^f)〔但しf=1,2,・・・,nとする。〕をそれぞれ読み込み、σ=σ’が成立するか否かをf=1,2,・・・,nについて比較する(ステップS34)。
f=1,2,・・・,nの全てについてσ=σ’が成立した場合、ステップS31で選択された2つの署名は、同一の署名装置によって同一のメッセージmに対して署名生成されたものであることが判明し、少なくともいずれか一方は本来1つであるはずの署名のコピーであると特定される。そこで、重複臨時公開鍵検証部(7160)は、コピー署名を検出したことを示す情報ΩをRAM(3500)の所定の格納領域に格納する(コピー署名の検出;ステップS35)。
また、ある1つのpについてσ=σ’が成立する場合、このpに対応する署名者pが重複使用者として特定される。そこで、重複臨時公開鍵検証部(7160)は、重複署名者を示すpをRAM(3500)の所定の格納領域に格納する(重複使用者追跡;ステップS36)。
もし、f=1,2,・・・,nの全てについてσ=σ’が成立せず、かつ、ある1つのpについてσ=σ’が成立しない場合には、検証装置(3000)は、制御部(7110)の制御によって、ステップS31以降の処理を繰り返す(ステップS37)。
【0125】
既述のとおり、二重署名ないし1個のコピー署名が存在する場合としたので、f=1,2,・・・,nの全てについてσ=σ’が成立するか、あるいは、ある1つのpについてσ=σ’が成立した場合には、署名者追跡処理を終了できる。もちろん、このような限定をしない場合には、全てのペアで署名者追跡処理を行えばよい。
【0126】
このように、署名ξから得られた臨時公開鍵σ〔f=1,2,・・・,n〕には署名装置pに固有の臨時公開鍵σが含まれるので、この臨時公開鍵σが異なる署名ξ’から得られた臨時公開鍵のp番目の臨時公開鍵σ’と一致する場合、この臨時公開鍵σを生成した署名者が重複使用者であると特定することができる。このことによって、署名の重複使用を防止することが可能となる。
【0127】
また、撹乱臨時公開鍵は、メッセージmおよび固有臨時公開鍵を変数とした関数として表されることから、署名ξから得られた臨時公開鍵σと、署名ξ’から得られた臨時公開鍵σ’とが、f=1,2,・・・,nについて全て一致する場合は、署名ξおよび署名ξ’は、同一の署名装置によって同一のメッセージに対して生成されたものと言える。従って、どの署名装置によって生成された署名であるかは判別できないものの、全てのf=1,2,・・・,nについてσ=σ’が成立する関係にある複数の署名は、実質的に1個の署名として取り扱うことができる。
【0128】
以上に説明した重複使用者追跡可能署名方式は、例えば電子投票や電子現金方式に適用可能である。詳しい情報処理(例えば具体的な演算手段、送信手段、記憶手段などの情報処理の主体や、各主体の行う情報処理の具体的内容など)については以上に説明した重複使用者追跡可能署名方式を参照すべきであるから、以下、上記の重複使用者追跡可能署名方式の適用例を簡単に説明する。
【0129】
<適用例1:電子投票>
重複使用者追跡可能署名方式における署名者(署名装置)が投票者(電子投票装置;以下、単に投票装置という。)になり、検証者(検証装置)が集計者(開票装置)になる。投票者の集合をN={1,2,・・・,n}とする。
【0130】
[鍵生成]
まず、情報公開サーバ(1000)には、選挙名(例えば、「平成○○年××月市長リコール選挙」とする。)、投票内容(例えば、市長のリコールに「賛成」あるいは「反対」とする。)を特定する情報Lを公開する。
【0131】
投票者iの投票装置iは、重複使用者追跡可能署名方式において説明したように鍵生成を行い、公開鍵yをPKIに登録し、情報公開サーバ(1000)で公開鍵yが公開される。
【0132】
情報公開サーバ(1000)のラベル生成部が、情報Lおよび投票者の公開鍵のリストyからラベルL=(L,y)を生成して公開する。このラベルLは、各投票装置に提供される。
【0133】
[投票]
投票者iは、投票内容mを決定し、投票装置iを用いて投票を行う。ここで、投票装置iは、情報公開サーバ(1000)から取得したラベルLおよび投票内容mから、重複使用者追跡可能署名方式において説明した署名ξを生成し、ラベルL、投票内容m、署名ξを(認証のない)匿名通信路を通じて情報公開サーバ(1000)に送信する。
【0134】
[開票]
開票装置は、情報公開サーバ(1000)からある投票内容(例えば「賛成」を表す投票内容とする。)の全署名を取得し、重複使用者追跡可能署名方式において説明した署名検証によって、各署名を検証する。検証に不合格の投票は全て不正として破棄する(不正な署名の付いた投票を計数しない。)。
【0135】
次に、開票装置は、重複使用者追跡可能署名方式において説明した署名者追跡によって、重複署名者を検出する。もし重複署名者を検出した場合には、この投票装置から投票された署名付き投票を破棄し(不正な重複署名の付いた投票を計数しない。)、この重複署名者のIDを情報公開サーバ(1000)に送信して、情報公開サーバ(1000)において重複署名者のIDや公開鍵を公開する。さらに、投票のコピー(つまり、同一の投票者が、同一の投票内容を複数回投票したものである。)を検出するようにして、コピーが検出された場合には、1つを除き残りのコピーを破棄する。投票のコピーの検出は、投票に付された署名について上記ステップS35の処理を行うことで実現される。
【0136】
そして、開票装置は、投票内容mごとに上記の処理を行い、開票装置の集計手段〔所定のプログラムがCPUで解釈・実行されて実現される。〕は、投票内容mごとに投票数を計数して、これを情報公開サーバ(1000)に送信し、情報公開サーバ(1000)において投票内容mごとの投票数を公開する。
【0137】
<適用例2:電子現金方式>
重複使用者追跡可能署名方式における署名者(署名装置)が利用者(利用者装置)になり、検証者(検証装置)が店舗(店舗装置)および銀行(銀行の検証装置)になり、PKIの運営者が銀行になる。また、銀行が情報公開サーバを管理し、重複使用者の検出は、銀行の検証装置で行うとする。
利用者の集合をN={1,2,・・・,n}とする。
【0138】
[鍵生成:口座開設]
利用者iの利用者装置iは、重複使用者追跡可能署名方式において説明したように鍵生成を行い、公開鍵yを例えば銀行の公開鍵登録サーバ装置に登録し、情報公開サーバ(1000)で公開鍵yが公開される。
【0139】
[引出]
以下、引出、振込、払戻は、銀行の口座管理装置によって行うとする。引出、振込、払戻の具体的な処理や口座管理装置の構成は公知の電子現金システムなどで実現するから、これらの詳細な説明は省略し、重複使用者追跡可能署名方式の電子現金方式への適用に焦点を当てて説明する。
【0140】
銀行の口座管理装置は、銀行名、利用者iが電子現金として用いる金額(電子現金の額面額である。)、有効期限などを特定する情報Lを決定し、情報Lと利用者全員の公開鍵yとからラベルL=(L,y)を決定する。
【0141】
銀行の口座管理装置は、利用者iの口座からラベルLの定める(より具体的には、情報Lを構成する金額である。)金額を引き落とす。この引き落としも、公知の電子現金システムに拠ればよい(実際に現金を引き落とすのではなく、例えば、残高を示すデータを引き落とし後の金額に書き換えればよい。)。
【0142】
銀行の口座管理装置は、ラベルLおよびラベルLに対する銀行の署名Sig(L)を情報公開サーバで公開する。
【0143】
[支払]
利用者iから電子現金での支払いを受ける店舗装置は、店舗を特定する情報と、取引を特定する情報(例えば取引金額、取引日時などである。)とを含む取引情報mを決定し、利用者装置iに送信する。
【0144】
利用者装置iは、情報公開サーバからはラベルLおよびラベルLに対する署名Sig(L)を受信し、店舗装置からは取引情報mを受信し、ラベルLと取引情報mとから重複使用者追跡可能署名方式において説明した署名ξを生成する。そして、利用者装置iは、ラベルL,取引情報m、署名ξの組を電子現金とし、この電子現金(L,m,ξ)と銀行の署名Sig(L)を店舗装置に送信する。
【0145】
店舗装置は、重複使用者追跡可能署名方式において説明した署名検証によって、電子現金(L,m,ξ)を検証する。また、店舗装置は、公知の署名検証方法によって、銀行の署名Sig(L)を検証する(例えば、銀行の公開鍵が情報公開サーバに公開されているとして、この銀行の公開鍵を情報公開サーバから取得し、この銀行の公開鍵で署名Sig(L)を検証すればよい。)。
【0146】
上記の検証がいずれも成立すると、店舗装置は、電子現金(L,m,ξ)を銀行の検証装置に送信する。
【0147】
銀行の検証装置は、店舗装置から電子現金(L,m,ξ)を受信すると、重複使用者追跡可能署名方式において説明した署名検証によって、電子現金(L,m,ξ)を検証する。銀行の検証装置は、電子現金(L,m,ξ)の検証が成立した場合には、銀行の口座管理装置は、店舗の口座にラベルLの定める現金を振り込む。
【0148】
[電子現金の重複使用、電子現金のコピー検出]
銀行の検証装置は、電子現金(L,m,ξ)の検証が成立しなかった場合には、重複使用者追跡可能署名方式において説明した署名者追跡によって、電子現金の重複使用および電子現金のコピーを検出する。ここで電子現金の重複使用は、異なる取引において利用者が電子現金を重複使用したことを意味する。つまり、利用者による電子現金の不正利用である。また、電子現金のコピーは、店舗(装置)が、利用者(装置)から受信した電子現金を銀行に複数回送信したことを意味する。つまり、店舗による電子現金の不正利用である。
そこで、この検出によって電子現金の重複使用が行われたと判定できた場合には、重複利用した利用者のID等を情報公開サーバで公開し、銀行取引を停止すればよい。また、電子現金のコピーが検出された場合には、コピーを生成した店舗名(この店舗名は、取引情報mに含まれる。)を情報公開サーバで公開し、銀行取引を停止すればよい。
【0149】
[払戻]
利用者は、ラベルLの定める有効期限を経過した未使用の電子現金を保持している場合には、この未使用の電子現金を銀行の検証装置に対して送信して、払戻のための呈示を行う。
【0150】
利用者装置から未使用の電子現金を受信することによって払戻のための電子現金の呈示を受けた銀行の検証装置は、利用者装置から電子現金(L,m,ξ)を受信すると、重複使用者追跡可能署名方式において説明した署名検証、署名者追跡、コピー署名検出によって、電子現金(L,m,ξ)を検証する。銀行の検証装置が電子現金(L,m,ξ)のいずれの検証にも成功した場合には、銀行の口座管理装置は、利用者の口座に取引情報mの定める現金を振り込む(実際に現金を振り込むのではなく、例えば、残高を示すデータを振り込み後の金額に書き換えればよい。)。
振込みによる払戻については、公知の電子現金システムに拠ればよいので、詳細な説明を略して簡潔に記すに留める。
【0151】
重複に署名を行った者を特定可能な重複使用者追跡可能署名方式を、電子投票、電子現金に適用することで、例えば投票内容に添付するためのブラインド署名を発行する従来的な選挙管理者と云う信頼できるサーバ装置が不要になる。
【図面の簡単な説明】
【0152】
【図1】閾値つき電子署名システムの構成例と流れを示す図。
【図2】参加装置910−iの機能構成例を示す図。
【図3】鍵生成部911−iの処理フローを示す図。
【図4】乱数生成部912−iの処理フローを示す図。
【図5】署名生成部920の機能構成例を示す図。
【図6】署名生成部920の処理フローを示す図。
【図7】署名検証部930の機能構成例を示す図。
【図8】署名検証部930での署名σ(m)を検証するフローを示す図。
【図9】第1実施形態の閾値つき電子署名システムの構成例と流れを示す図。
【図10】参加者装置110−iの機能構成例を示す図。
【図11】署名生成部120の機能構成例を示す図。
【図12】署名検証部130の機能構成例を示す図。
【図13】第1実施形態での電子署名システムの処理フローを示す図。
【図14】第2実施形態の閾値つき電子署名システムの構成例と流れを示す図。
【図15】参加者装置210−iの機能構成例を示す図。
【図16】署名生成部220の機能構成例を示す図。
【図17】署名検証部230の機能構成例を示す図。
【図18】第2実施形態での電子署名システムの処理フローを示す図。
【図19】情報公開サーバ(1000)のハードウェア構成例を示す図。
【図20】署名装置(2000)のハードウェア構成例を示す図。
【図21】検証装置(3000)のハードウェア構成例を示す図。
【図22】重複使用者追跡可能方式におけるシステム構成例を示す図。
【図23】情報公開サーバ(1000)における処理フローを示す図。
【図24】署名装置(2000)の機能構成例を示す図。
【図25】署名装置(2000)における処理フローを示す図(その1)。
【図26】署名装置(2000)における処理フローを示す図(その2)。
【図27】署名後における状態を示す図。
【図28】検証装置(3000)の機能構成例を示す図。
【図29】検証装置(3000)における処理フローを示す図(その1)。
【図30】検証装置(3000)における処理フローを示す図(その2)。

【特許請求の範囲】
【請求項1】
離散対数問題が難しいと考えられている巡回群をG、Gの生成元をg、Gの位数をq、qを法とする剰余類{0,1,2,…,q−1}をZ、H’を0と1のビット列を群Gの元へ写像するハッシュ関数、H”を0と1のビット列をZの元へ写像するハッシュ関数、mをメッセージとし、n台(nは2以上の整数)の参加者装置(集合N)に含まれるs台の参加者装置(集合S)が署名を行った場合に、署名をした参加者装置がt台以上(集合T)t’台(集合T’)以下であることが確認できる電子署名方法であって、
集合Nの各参加者装置で、秘密鍵xと公開鍵yとを生成するステップと、
集合Nの各参加者装置で、公開鍵yを公開するステップと、
集合Sの各参加者装置で、T⊆S⊆T’⊆Nを満足する集合TとT’とを選定するための集合選定情報を生成し、集合Sの他の参加者装置および署名生成部に前記集合選定情報を送信するステップと、
署名生成部で、集合Sの各参加者装置からの前記集合選定情報をもとに、集合Tと集合T’の元となる参加者装置を選定し、集合Sの参加者装置に送信する集合選定ステップと、
集合Sの各参加者装置で、0と1のビット列であるrを選定するためのr選定情報を生成し、集合Sの他の参加者装置および署名生成部に送信するステップと、
署名生成部で、集合Sの各参加者装置からの前記r選定情報をもとに、rを選定し、集合Sの参加者装置に送信するr選定ステップと、
集合Sの各参加者装置で、使い捨て公開鍵を秘密鍵xから生成し、集合Sの他の参加者装置および署名生成部に送信するステップと、
集合Sの各参加者装置で、集合T’−Sの使い捨て公開鍵を選定するためのσ選定情報を生成し、集合Sの他の参加者装置および署名生成部に送信するステップと、
署名生成部で、集合Sの各参加者装置からの前記σ選定情報をもとに、集合T’−Sの使い捨て公開鍵を選定し、集合Sの参加者装置に送信する公開鍵選定ステップと、
={y}i∈N、集合T’の元を{k,…,kt’}とする場合に、署名生成部で、集合T’の使い捨て公開鍵から、
【数1】

として、A(i=0,…,t')を
=H’(n,t,t’,y,m,r)
【数2】

と定め、
【数3】

として集合N−T’の使い捨て公開鍵σを計算し、集合Sの参加者装置に送信する使い捨て公開鍵計算ステップと、
集合Sの各参加者装置で、任意のZの元wを選定するステップと、
集合Sの各参加者装置で、前記wからaとbとを生成し、集合Sの他の参加者装置および署名生成部に送信するステップと、
集合Sの各参加者装置で、任意のZの元zとcを選定するためのz・c選定情報を生成し、集合Sの他の参加者装置および署名生成部に送信するz・c選定情報生成ステップと、
署名生成部で、前記z・c選定情報をもとに、集合N−Sのzとcを選定し、集合N−Sのaとbとを生成し、生成したaとbとを集合Sの参加者装置に送信するステップと、
集合Sの各参加者装置で、任意のZの元cを選定するためのc選定情報を生成し、集合Sの他の参加者装置および署名生成部に送信するc選定情報生成ステップと、
署名生成部で、集合Sの各参加者装置の前記c選定情報生成ステップで生成されたc選定情報をもとに、集合S−Tのcを選定し、集合Sの参加者装置に送信するステップと、
署名生成部で、
β(0)=H”(n,t,t’,y,m,r,h,A,…,At’,a,b
β(i)=c ただし、i∈N−T
を満足するZの元であって、次数(n−t)の多項式β(x)を求め、集合Sの参加者装置に送信するステップと、
集合Sの各参加者装置で、Zの元zを、秘密鍵xを用いて計算し、集合Sの他の参加者装置および署名生成部に送信するステップと、
署名生成部で、署名を、r,A,…,At’,β(x),z,…,zを用いて生成するステップと、
を有することを特徴とする電子署名方法。
【請求項2】
離散対数問題が難しいと考えられている巡回群をG、Gの生成元をg、Gの位数をq、qを法とする剰余類{0,1,2,…,q−1}をZ、HとH’を0と1のビット列を群Gの元へ写像するハッシュ関数、H”を0と1のビット列をZの元へ写像するハッシュ関数、mをメッセージとし、n台(nは2以上の整数)の参加者装置(集合N)に含まれるs台の参加者装置(集合S)が署名を行った場合に、署名をした参加者装置がt台以上(集合T)t’台(集合T’)以下であることが確認できる電子署名の検証方法であって、
署名検証部で、
n,t,t’、集合Nの各参加者装置の公開鍵y={y,…,y}、メッセージm、署名σ=(r,A,…,At’,β(x),z,…,z)を受信し、
h=H(n,t,t’,y,m,r)、A=H’(n,t,t’,y,m,r)として、
rが0と1のビット列であること、h,A,…,At’が群Gの元であること、z,…,zがZの元であることを確認する群確認ステップと、
【数4】

で求められるσ(i=1,…,n)がGの元であることを確認するA確認ステップと
【数5】

としてa’={a’,…,a’},b’={b’,…,b’}を求め、
β(x)の各係数がZの元であること、β(x)がn−t次であること、およびβ(0)=H”(n,t,t’,y,m,r,h,A,…,At’ ,a’,b’)
であることを確認するβ(x)確認ステップと
を有することを特徴とする検証方法。
【請求項3】
離散対数問題が難しいと考えられている巡回群をG、Gの生成元をg、R、Gの位数をq、qを法とする剰余類{0,1,2,…,q−1}をZ、H’を0と1のビット列を群Gの元へ写像するハッシュ関数、H”を0と1のビット列をZの元へ写像するハッシュ関数、mをメッセージとし、n台(nは2以上の整数)の参加者装置(集合N)に含まれるs台の参加者装置(集合S)が署名を行った場合に、署名をした参加者装置がt台以上(集合T)t’台(集合T’)以下であることが確認できる電子署名方法であって、
集合Nの各参加者装置で、秘密鍵xと公開鍵yとを生成するステップと、
集合Nの各参加者装置で、公開鍵yを公開するステップと、
集合Sの各参加者装置で、T⊆S⊆T’⊆Nを満足する集合TとT’とを選定するための集合選定情報を生成し、集合Sの他の参加者装置および署名生成部に前記集合選定情報を送信するステップと、
署名生成部で、集合Sの各参加者装置からの前記集合選定情報をもとに、集合Tと集合T’の元となる参加者装置を選定し、集合Sの参加者装置に送信する集合選定ステップと、
集合Sの各参加者装置で、任意のZの元x’を選定するステップと、
集合Sの各参加者装置で、使い捨て公開鍵を秘密鍵xとx’から生成し、集合Sの他の参加者装置および署名生成部に送信するステップと、
集合Sの各参加者装置で、集合T’−Sの使い捨て公開鍵を選定するためのσ選定情報を生成し、集合Sの他の参加者装置および署名生成部に送信するステップと、
署名生成部で、集合Sの各参加者装置からの前記σ選定情報をもとに、集合T’−Sの使い捨て公開鍵を選定し、集合Sの参加者装置に送信する公開鍵選定ステップと、
={y}i∈N、集合T’の元を{k,…,kt’}とする場合に、署名生成部で、集合T’の使い捨て公開鍵から、
【数6】

として、A(i=0,…,t')を
=H’(n,t,t’,y,m)
【数7】

と定め、
【数8】

として集合N−T’の使い捨て公開鍵σを計算し、集合Sの参加者装置に送信する使い捨て公開鍵計算ステップと、
集合Sの各参加者装置で、任意のZの元wとw’を選定するステップと、
集合Sの各参加者装置で、前記wとw’からaとbとを生成し、集合Sの他の参加者装置および署名生成部に送信するステップと、
集合Sの各参加者装置で、任意のZの元zとz’とcを選定するためのz・z’・c選定情報を生成し、集合Sの他の参加者装置および署名生成部に送信するz・z’・c選定情報生成ステップと、
署名生成部で、前記z・z’・c選定情報をもとに、集合N−Sのz、z’、cを選定し、集合N−Sのaとbとを生成し、生成されたaとbとを集合Sの参加者装置に送信するステップと、
集合Sの各参加者装置で、任意のZの元cを選定するためのc選定情報を生成し、集合Sの他の参加者装置および署名生成部に送信するc選定情報生成ステップと、
署名生成部で、集合Sの各参加者装置の前記c選定情報生成ステップで生成されたc選定情報をもとに、集合S−Tのcを選定し、集合Sの参加者装置に送信するステップと、
署名生成部で、
β(0)=H”(n,t,t’,y,m,h,A,…,At’,a,b
β(i)=c ただし、i∈N−T
を満足するZの元であって、次数(n−t)の多項式β(x)を求め、集合Sの参加者装置に送信するステップと、
の元zとz’を、秘密鍵xとx’を用いて計算し、集合Sの他の参加者装置および署名生成部に送信するステップと、
署名生成部で、署名を、A,…,At’,β(x),z,…,z,z’,…,z’を用いて生成するステップと、
を有することを特徴とする電子署名方法。
【請求項4】
離散対数問題が難しいと考えられている巡回群をG、Gの生成元をg、R、Gの位数をq、qを法とする剰余類{0,1,2,…,q−1}をZ、HとH’を0と1のビット列を群Gの元へ写像するハッシュ関数、H”を0と1のビット列をZの元へ写像するハッシュ関数、mをメッセージとし、n台(nは2以上の整数)の参加者装置(集合N)に含まれるs台の参加者装置(集合S)が署名を行った場合に、署名をした参加者装置がt台以上(集合T)t’台(集合T’)以下であることが確認できる電子署名の検証方法であって、
署名検証部で、
n,t,t’、集合Nの各参加者装置の公開鍵y={y,…,y}、メッセージm、署名σ=(A,…,At’,β(x),z,…,z,z’,…,z’)を受信し、
h=H(n,t,t’,y,m)、A=H’(n,t,t’,y,m)として、
h,A,…,At’が群Gの元であること、z,…,z,z’,…,z’がZの元であることを確認する群確認ステップと、
【数9】

で求められるσ(i=1,…,n)がGの元であることを確認するA確認ステップと
【数10】

としてa’={a’,…,a’},b’={b’,…,b’}を求め、
β(x)の係数がZの元であること、β(x)がn−t次であること、およびβ(0)=H”(n,t,t’,y,m,h,A,…,At’ ,a’,b’)である
ことを確認するβ(x)確認ステップと
を有することを特徴とする検証方法。
【請求項5】
離散対数問題が難しいと考えられている巡回群をG、Gの生成元をg、Gの位数をq、qを法とする剰余類{0,1,2,…,q−1}をZ、H’を0と1のビット列を群Gの元へ写像するハッシュ関数、H”を0と1のビット列をZの元へ写像するハッシュ関数、mをメッセージとし、n台(nは2以上の整数)の参加者装置(集合N)に含まれるs台の参加者装置(集合S)が署名を行った場合に、署名をした参加者装置がt台以上(集合T)t’台(集合T’)以下であることが確認できる電子署名システムであって、
秘密鍵xと公開鍵yとを生成する鍵生成部と、
集合TとT’とを選定するための集合選定情報を生成する手段と、
0と1のビット列であるrを選定するためのr選定情報を生成する手段と、
使い捨て公開鍵を秘密鍵xから生成する手段と、
集合T’−Sの使い捨て公開鍵を選定するためのσ選定情報を生成する手段と、
任意のZの元wを選定する手段と、
前記wからaとbを生成する手段と、
任意のZの元zとcを選定するためのz・c選定情報を生成する手段と、
任意のZの元cを選定するためのc選定情報を生成する手段と、
の元zを、秘密鍵xを用いて計算する手段と、
前記公開鍵y、前記集合選定情報、前記r選定情報、前記使い捨て公開鍵、前記σ選定情報、前記a、前記b、前記z・c選定情報、前記c選定情報、zを、集合Sの他の参加者装置および署名生成部に送信する通信・公開手段と
を有する複数の各参加者装置と、
いずれかの参加者装置または単独の装置内に備えられ、
集合Sの各参加者装置からの集合選定情報をもとに、T⊆S⊆T’⊆Nを満足する集合Tと集合T’の元となる参加者装置を選定する手段と、
集合Sの各参加者装置からのr選定情報をもとに、前記rを選定するr選定手段と、
集合Sの各参加者装置からのσ選定情報をもとに、集合T’−Sの使い捨て公開鍵を選定する公開鍵選定手段と、
={y}i∈N、集合T’の元を{k,…,kt’}とする場合に、集合T’の使い捨て公開鍵から、
【数11】

として、A(i=0,…,t')を
=H’(n,t,t’,y,m,r)
【数12】

と定め、
【数13】

として集合N−T’の使い捨て公開鍵σを計算する使い捨て公開鍵計算手段と、
集合Sの各参加者装置からのz・c選定情報をもとに、集合N−Sのzとcを選定し、集合N−Sのaとbを生成する手段と、
集合Sの各参加者装置からのc選定情報をもとに、集合S−Tのcを選定する手段と、
β(0)=H”(n,t,t’,y,m,r,h,A,…,At’,a,b
β(i)=c ただし、i∈N−T
を満足するZの元であって、次数(n−t)の多項式β(x)を求める手段と、
署名を、r,A,…,At’,β(x),z,…,zを用いて生成する手段と、
前記集合Tと集合T’の情報、前記r、集合N−Sの使い捨て公開鍵、前記a、前記b、前記c、前記多項式β(x)を、集合Sの参加者装置に送信する通信手段と
を有する署名生成部と
を備えることを特徴とする電子署名システム。
【請求項6】
離散対数問題が難しいと考えられている巡回群をG、Gの生成元をg、Gの位数をq、qを法とする剰余類{0,1,2,…,q−1}をZとし、n台(nは2以上の整数)の参加者装置(集合N)に含まれるs台の参加者装置(集合S)が署名を行った場合に、署名をした参加者装置がt台以上(集合T)t’台(集合T’)以下であることが確認できる電子署名システムを構成する参加者装置であって、
秘密鍵xと公開鍵yとを生成する鍵生成部と、
集合TとT’とを選定するための集合選定情報を生成する手段と、
0と1のビット列であるrを選定するためのr選定情報を生成する手段と、
使い捨て公開鍵を秘密鍵xから生成する手段と、
集合T’−Sの使い捨て公開鍵を選定するためのσ選定情報を生成する手段と、
任意のZの元wを選定する手段と、
前記wからaとbを生成する手段と、
任意のZの元zとcを選定するためのz・c選定情報を生成する手段と、
任意のZの元cを選定するためのc選定情報を生成する手段と、
の元zを、秘密鍵xを用いて計算する手段と、
前記公開鍵y、前記集合選定情報、前記r選定情報、前記使い捨て公開鍵、前記σ選定情報、前記a、前記b、前記z選定情報、前記c選定情報、zを、集合Sの他の参加者装置および署名生成部に送信する通信・公開手段と
を備えることを特徴とする参加者装置。
【請求項7】
請求項6記載の参加者装置であって、
H’を0と1のビット列を群Gの元へ写像するハッシュ関数、H”を0と1のビット列をZの元へ写像するハッシュ関数、mをメッセージ、y={y}i∈N、集合T’の元を{k,…,kt’}とする場合に、
集合T’の使い捨て公開鍵から、
【数14】

として、A(i=0,…,t')を
=H’(n,t,t’,y,m,r)
【数15】

と定め、
【数16】

として集合N−T’の使い捨て公開鍵σを計算する使い捨て公開鍵計算手段と、
β(0)=H”(n,t,t’,y,m,r,h,A,…,At’,a,b
β(i)=c ただし、i∈N−T
を満足するZの元であって、次数(n−t)の多項式β(x)を求める手段と、
署名を、r,A,…,At’,β(x),z,…,zを用いて生成する手段と、
集合N−T’の使い捨て公開鍵、前記多項式β(x)を、集合Sの他の参加者装置および署名生成部に送信する前記通信・公開手段と、
を備えることを特徴とする参加者装置。
【請求項8】
請求項6または7記載の参加者装置であって、
集合Sの各参加者装置からの集合選定情報をもとに、T⊆S⊆T’⊆Nを満足する集合Tと集合T’の元となる参加者装置を選定する手段と、
集合Sの各参加者装置からのr選定情報をもとに、前記rを選定するr選定手段と、
集合Sの各参加者装置からのσ選定情報をもとに、集合T’−Sの使い捨て公開鍵を選定する公開鍵選定手段と、
集合Sの各参加者装置からのz・c選定情報をもとに、集合N−Sのzとcを選定し、集合N−Sのaとbを生成する手段と、
集合Sの各参加者装置からのc選定情報をもとに、集合S−Tのcを選定する手段、
前記集合Tと集合T’の情報、前記r、集合T’−Sの使い捨て公開鍵、前記a、前記b、前記cを、集合Sの他の参加者装置および署名生成部に送信する前記通信・公開手段と、
を備えることを特徴とする参加者装置。
【請求項9】
離散対数問題が難しいと考えられている巡回群をG、Gの生成元をg、Gの位数をq、qを法とする剰余類{0,1,2,…,q−1}をZ、rは0と1のビット列、zをZの元、H’を0と1のビット列を群Gの元へ写像するハッシュ関数、H”を0と1のビット列をZの元へ写像するハッシュ関数、mをメッセージとし、n台(nは2以上の整数)の参加者装置(集合N)に含まれるs台の参加者装置(集合S)が署名を行った場合に、署名をした参加者装置がt台以上(集合T)t’台(集合T’)以下であることが確認できる電子署名システムを構成する署名生成装置であって、
={y}i∈N、集合T’の元を{k,…,kt’}とする場合に、集合T’の使い捨て公開鍵から、
【数17】

として、A(i=0,…,t')を
=H’(n,t,t’,y,m,r)
【数18】

と定め、
【数19】

として集合N−T’の使い捨て公開鍵σを計算する使い捨て公開鍵計算手段と、
β(0)=H”(n,t,t’,y,m,r,h,A,…,At’,a,b
β(i)=c ただし、i∈N−T
を満足するZの元であって、次数(n−t)の多項式β(x)を求める手段と、
署名を、r,A,…,At’,β(x),z,…,zを用いて生成する手段と、
集合N−T’の使い捨て公開鍵、前記多項式β(x)を、集合Sの参加者装置に送信する通信手段と
を備えることを特徴とする署名生成装置。
【請求項10】
請求項9記載の署名生成装置であって、
集合Sの各参加者装置からの集合選定情報をもとに、T⊆S⊆T’⊆Nを満足する集合Tと集合T’の元となる参加者装置を選定する手段と、
集合Sの各参加者装置からのr選定情報をもとに、前記rを選定するr選定手段と、
集合Sの各参加者装置からのσ選定情報をもとに、集合T’−Sの使い捨て公開鍵を選定する公開鍵選定手段と、
集合Sの各参加者装置からのz・c選定情報をもとに、集合N−Sのzとcを選定し、集合N−Sのaとbを生成する手段と、
集合Sの各参加者装置からのc選定情報をもとに、集合S−Tのcを選定する手段、
前記集合Tと集合T’の情報、前記r、前記集合T’−Sの使い捨て公開鍵、前記a、前記b、前記cを、集合Sの参加者装置に送信する前記通信手段と
を備えることを特徴とする署名生成装置。
【請求項11】
離散対数問題が難しいと考えられている巡回群をG、Gの生成元をg、Gの位数をq、qを法とする剰余類{0,1,2,…,q−1}をZ、HとH’を0と1のビット列を群Gの元へ写像するハッシュ関数、H”を0と1のビット列をZの元へ写像するハッシュ関数、mをメッセージとし、n台(nは2以上の整数)の参加者装置(集合N)に含まれるs台の参加者装置(集合S)が署名を行った場合に、署名をした参加者装置がt台以上(集合T)t’台(集合T’)以下であることが確認できる電子署名の検証装置であって

n,t,t’、集合Nの各参加者装置の公開鍵y={y,…,y}、メッセージm、署名σ=(r,A,…,At’,β(x),z,…,z)を受信する通信手段と、
h=H(n,t,t’,y,m,r)、A=H’(n,t,t’,y,m,r)として、
rが0と1のビット列であること、h,A,…,At’が群Gの元であること、z,…,zがZの元であることを確認する群確認手段と、
【数20】

で求められるσ(i=1,…,n)がGの元であることを確認するA確認手段と
【数21】

としてa’={a’,…,a’},b’={b’,…,b’}を求め、
β(x)がZの元であり、かつn−t次であること、β(0)=H”(n,t,t’,y,m,r,h,A,…,At’ ,a’,b’)であることを確認するβ(
x)確認手段と
を有することを特徴とする検証装置。
【請求項12】
離散対数問題が難しいと考えられている巡回群をG、Gの生成元をg、R、群の位数をq、qを法とする剰余類{0,1,2,…,q−1}をZ、H’を0と1のビット列を群Gの元へ写像するハッシュ関数、H”を0と1のビット列をZの元へ写像するハッシュ関数、mをメッセージとし、n台(nは2以上の整数)の参加者装置(集合N)に含まれるs台の参加者装置(集合S)が署名を行った場合に、署名をした参加者装置がt台以上(集合T)t’台(集合T’)以下であることが確認できる電子署名システムであって、
秘密鍵xと公開鍵yとを生成する鍵生成部と、
集合TとT’とを選定するための集合選定情報を生成する手段と、
任意のZの元x’を選定する手段と、
使い捨て公開鍵を秘密鍵xとx’から生成する手段と、
集合T’−Sの使い捨て公開鍵を選定するためのσ選定情報を生成する手段と、
任意のZの元wとw’を選定する手段と、
前記wとw’からaとbを生成する手段と
任意のZの元z、z’、cを選定するためのz・z’・c選定情報を生成する手段と、
任意のZの元cを選定するためのc選定情報を生成する手段と、
の元zとz’を、秘密鍵xとx’を用いて計算する手段と
前記公開鍵y、前記集合選定情報、前記使い捨て公開鍵、前記σ選定情報、前記a、前記b、前記z選定情報、前記z’選定情報、前記c選定情報、z、z’を、集合Sの他の参加者装置および署名生成部に送信する通信・公開手段と
を有する複数の各参加者装置と、
いずれかの参加者装置または単独の装置内に備えられ、
集合Sの各参加者装置からの前記集合選定情報をもとに、T⊆S⊆T’⊆Nを満足する集合Tと集合T’の元となる参加者装置を選定する手段と、
集合Sの各参加者装置からの前記σ選定情報をもとに、集合T’−Sの使い捨て公開鍵
を選定する公開鍵選定手段と、
={y}i∈N、集合T’の元を{k,…,kt’}とする場合に、集合T’の使い捨て公開鍵から、
【数22】

として、A(i=0,…,t')を
=H’(n,t,t’,y,m)
【数23】

と定め、
【数24】

として集合N−T’の使い捨て公開鍵σを計算する使い捨て公開鍵計算手段と、
集合Sの各参加者装置からのz・z’・c選定情報をもとに、集合N−Sのz、z’、cを選定し、集合N−Sのaとbを生成する手段と、
集合Sの各参加者装置からのc選定情報をもとに、集合S−Tのcを選定する手段と、
β(0)=H”(n,t,t’,y,m,h,A,…,At’,a,b
β(i)=c ただし、i∈N−T
を満足するZの元であって、次数(n−t)の多項式β(x)を求める手段と、
署名を、A,…,At’,β(x),z,…,z,z’,…,z’を用いて生成する手段と、
前記集合Tと集合T’の情報、集合N−Sの使い捨て公開鍵、前記a、前記b、前記c、前記多項式β(x)を、集合Sの参加者装置に送信する通信手段と
を有する署名生成部と
を備えることを特徴とする電子署名システム。
【請求項13】
離散対数問題が難しいと考えられている巡回群をG、Gの生成元をg、R、群の位数をq、qを法とする剰余類{0,1,2,…,q−1}をZとし、n台(nは2以上の整数)の参加者装置(集合N)に含まれるs台の参加者装置(集合S)が署名を行った場合に、署名をした参加者装置がt台以上(集合T)t’台(集合T’)以下であることが確認できる電子署名システムを構成する参加者装置であって、
秘密鍵xと公開鍵yとを生成する鍵生成部と、
集合TとT’とを選定するための集合選定情報を生成する手段と、
任意のZの元x’を選定する手段と、
使い捨て公開鍵を秘密鍵xとx’から生成する手段と、
集合T’−Sの使い捨て公開鍵を選定するためのσ選定情報を生成する手段と、
任意のZの元wとw’を選定する手段と、
前記wとw’からaとbを生成する手段と
任意のZの元z、z’、cを選定するためのz・z’・c選定情報を生
成する手段と、
任意のZの元cを選定するためのc選定情報を生成する手段と、
の元zとz’を、秘密鍵xとx’を用いて計算する手段と
前記公開鍵y、前記集合選定情報、前記使い捨て公開鍵、前記σ選定情報、前記a、前記b、前記z選定情報、前記z’選定情報、前記c選定情報、z、z’を、集合Sの他の参加者装置および署名生成部に送信する通信・公開手段と
を備えることを特徴とする参加者装置。
【請求項14】
請求項13記載の参加者装置であって、
H’を0と1のビット列を群Gの元へ写像するハッシュ関数、H”を0と1のビット列をZの元へ写像するハッシュ関数、mをメッセージ、y={y}i∈N、集合T’の元を{k,…,kt’}とする場合に、
集合T’の使い捨て公開鍵から、
【数25】

として、A(i=0,…,t')を
=H’(n,t,t’,y,m)
【数26】

と定め、
【数27】

として集合N−T’の使い捨て公開鍵σを計算する使い捨て公開鍵計算手段と、
β(0)=H”(n,t,t’,y,m,h,A,…,At’,a,b
β(i)=c ただし、i∈N−T
を満足するZの元であって、次数(n−t)の多項式β(x)を求める手段と、
署名を、A,…,At’,β(x),z,…,z,z’,…,z’を用いて生成する手段と
集合N−T’の使い捨て公開鍵、前記多項式β(x)を、集合Sの他の参加者装置および署名生成部に送信する前記通信・公開手段と
を備えることを特徴とする参加者装置。
【請求項15】
請求項13または14記載の参加者装置であって、
集合Sの各参加者装置からの前記集合選定情報をもとに、T⊆S⊆T’⊆Nを満足する集合Tと集合T’の元となる参加者装置を選定する手段と、
集合Sの各参加者装置からの前記σ選定情報をもとに、集合T’−Sの使い捨て公開鍵を選定する公開鍵選定手段と、
集合Sの各参加者装置からのz・z’・c選定情報をもとに、集合N−Sのz、z’、cを選定し、集合N−Sのaとbを生成する手段と、
集合Sの各参加者装置からのc選定情報をもとに、集合S−Tのcを選定する手段と、
前記集合Tと集合T’の情報、集合T’−Sの使い捨て公開鍵、前記a、前記b、前記cを、集合Sの他の参加者装置および署名生成部に送信する前記通信・公開手段と
を備えることを特徴とする参加者装置。
【請求項16】
離散対数問題が難しいと考えられている巡回群をG、Gの生成元をg、R、群の位数をq、qを法とする剰余類{0,1,2,…,q−1}をZ、zとz’をZの元、H’を0と1のビット列を群Gの元へ写像するハッシュ関数、H”を0と1のビット列をZの元へ写像するハッシュ関数、mをメッセージとし、n台(nは2以上の整数)の参加者装置(集合N)に含まれるs台の参加者装置(集合S)が署名を行った場合に、署名をした参加者装置がt台以上(集合T)t’台(集合T’)以下であることが確認できる電子署名システムを構成するいずれかの参加者装置または単独の装置内に備えられる署名生成装置であって、
={y}i∈N、集合T’の元を{k,…,kt’}とする場合に、集合T’の使い捨て公開鍵から、
【数28】

として、A(i=0,…,t')を
=H’(n,t,t’,y,m)
【数29】

と定め、
【数30】

として集合N−T’の使い捨て公開鍵σを計算する使い捨て公開鍵計算手段と、
β(0)=H”(n,t,t’,y,m,h,A,…,At’,a,b
β(i)=c ただし、i∈N−T
を満足するZの元であって、次数(n−t)の多項式β(x)を求める手段と、
署名を、A,…,At’,β(x),z,…,z,z’,…,z’を用いて生成する手段と、
集合N−T’の使い捨て公開鍵、前記多項式β(x)を、集合Sの参加者装置に送信する通信手段と
を備えることを特徴とする署名生成装置。
【請求項17】
請求項16記載の署名生成装置であって、
集合Sの各参加者装置からの前記集合選定情報をもとに、T⊆S⊆T’⊆Nを満足する集合Tと集合T’の元となる参加者装置を選定する手段と、
集合Sの各参加者装置からの前記σ選定情報をもとに、集合T’−Sの使い捨て公開鍵を選定する公開鍵選定手段と、
集合Sの各参加者装置からのz・z’・c選定情報をもとに、集合N−Sのz、z’、cを選定し、集合N−Sのaとbを生成する手段と、
集合Sの各参加者装置からのc選定情報をもとに、集合S−Tのcを選定する手段と、
前記集合Tと集合T’の情報、集合N−T’の使い捨て公開鍵、前記a、前記b、前記cを、集合Sの参加者装置に送信する通信手段と
を備えることを特徴とする署名生成装置。
【請求項18】
離散対数問題が難しいと考えられている巡回群をG、Gの生成元をg、R、群の位数をq、qを法とする剰余類{0,1,2,…,q−1}をZ、HとH’を0と1のビット列を群Gの元へ写像するハッシュ関数、H”を0と1のビット列をZの元へ写像するハッシュ関数、mをメッセージとし、n台(nは2以上の整数)の参加者装置(集合N)に含まれるs台の参加者装置(集合S)が署名を行った場合に、署名をした参加者装置がt台以上(集合T)t’台(集合T’)以下であることが確認できる電子署名の検証装置であって、
n,t,t’、集合Nの各参加者装置の公開鍵y={y,…,y}、メッセージm、署名σ=(A,…,At’,β(x),z,…,z,z’,…,z’)を受信する通信手段と、
h=H(n,t,t’,y,m)、A=H’(n,t,t’,y,m)として、
h,A,…,At’が群Gの元であること、z,…,z,z’,…,z’がZの元であることを確認する群確認手段と、
【数31】

で求められるσ(i=1,…,n)がGの元であることを確認するA確認手段と
【数32】

としてa’={a’,…,a’},b’={b’,…,b’}を求め、
β(x)がZの元であり、かつn−t次であること、β(0)=H”(n,t,t’,y,m,h,A,…,At’ ,a’,b’)であることを確認するβ(x)
確認手段と
を備えることを特徴とする検証装置。
【請求項19】
署名者iに固有の秘密鍵xと、署名者iに固有の識別番号i、メッセージmと、全署名者に共通のラベルLとを記憶する記憶手段と、
記憶手段に記憶されるラベルLをハッシュ関数Hに入力して、署名者iに固有の固有臨時公開鍵σを生成するために用いられる固有臨時公開鍵生成因子hを生成する固有臨時公開鍵生成因子生成手段と、
固有臨時公開鍵生成因子生成手段によって生成された固有臨時公開鍵生成因子hと記憶手段に記憶される署名者iに固有の秘密鍵xとから署名者iに固有の固有臨時公開鍵σを生成する固有臨時公開鍵生成手段と、
記憶手段に記憶されるラベルLおよびメッセージmをハッシュ関数H’に入力して、撹乱因子Aを生成するために用いられる撹乱因子生成因子Aを生成する撹乱因子生成因子生成手段と、
撹乱因子生成因子生成手段によって生成された撹乱因子生成因子A、固有臨時公開鍵生成手段によって生成された固有臨時公開鍵σ、記憶手段に記憶される識別番号iとから撹乱因子A=(σ/A)^(1/i)を生成する撹乱因子生成手段と、
撹乱因子生成手段によって生成された撹乱因子Aおよび撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aから全署名者数nから1を引いた個数の撹乱臨時公開鍵σ=A〔j=1,2,・・・,i−1、i+1,・・・,n〕を生成する撹乱臨時公開鍵生成手段と、
署名者iに固有の秘密鍵xを用いて固有臨時公開鍵σを生成したことを非対話ゼロ知識証明によって証明するために用いる非対話ゼロ知識証明情報を生成する非対話ゼロ知識証明情報生成手段と、
非対話ゼロ知識証明情報生成手段によって生成された非対話ゼロ知識証明情報を生成可能な非対話ゼロ知識証明情報生成因子を生成する非対話ゼロ知識証明情報生成因子生成手段と、
撹乱因子生成手段によって生成された撹乱因子Aおよび非対話ゼロ知識証明情報生成因子生成手段によって生成された非対話ゼロ知識証明情報生成因子を、記憶手段に記憶されるラベルLおよびメッセージmに対する署名とする署名生成手段と
を備え、
固有臨時公開鍵生成手段によって生成された固有臨時公開鍵σおよび撹乱臨時公開鍵生成手段によって生成された撹乱臨時公開鍵σ〔j=1,2,・・・,i−1、i+1,・・・,n〕は、固有臨時公開鍵と撹乱臨時公開鍵との判別が不能に、撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aおよび撹乱因子生成手段によって生成された撹乱因子Aから生成可能である
ことを特徴とする署名装置。
【請求項20】
メッセージmと、全署名者に共通のラベルL、ラベルLおよびメッセージmに対する署名とを記憶する記憶手段と、
記憶手段に記憶されるラベルLおよびメッセージmをハッシュ関数H’に入力して、撹乱因子生成因子Aを生成する撹乱因子生成因子生成手段と、
記憶手段に記憶される署名に含まれる撹乱因子Aおよび撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aから全署名者数に相当するn個の臨時公開鍵σ=A〔f=1,2,・・・,n〕を生成する臨時公開鍵生成手段と、
記憶手段に記憶される署名に含まれる非対話ゼロ知識証明情報生成因子を用いて非対話ゼロ知識証明情報を生成する非対話ゼロ知識証明情報生成手段と、
撹乱因子生成因子生成手段によって生成された撹乱因子生成因子A、記憶手段に記憶される署名に含まれる撹乱因子A、非対話ゼロ知識証明情報生成手段によって生成された非対話ゼロ知識証明情報の間でゼロ知識証明の検証を行う判定手段と
を備えたことを特徴とする検証装置。
【請求項21】
各署名装置によって生成された署名および各署名に対応するメッセージmと、全署名者に共通のラベルLを記憶する記憶手段と、
記憶手段に記憶されるラベルLおよびメッセージmをハッシュ関数H’に入力して、撹乱因子生成因子Aを生成する撹乱因子生成因子生成手段と、
記憶手段に記憶される署名に含まれる撹乱因子Aおよび撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aから全署名者数に相当するn個の臨時公開鍵σ=A〔f=1,2,・・・,n〕を生成する臨時公開鍵生成手段と、
記憶手段に記憶される署名に含まれる非対話ゼロ知識証明情報生成因子を用いて非対話ゼロ知識証明情報を生成する非対話ゼロ知識証明情報生成手段と、
撹乱因子生成因子生成手段によって生成された撹乱因子生成因子A、記憶手段に記憶される署名に含まれる撹乱因子A、非対話ゼロ知識証明情報生成手段によって生成された非対話ゼロ知識証明情報の間でゼロ知識証明の検証を行う判定手段と、
記憶手段に記憶される各署名装置によって生成された署名から異なる2つの署名ξ、ξ’およびこれら署名に対応するメッセージm、m’を選択する選択制御手段と、
臨時公開鍵生成手段によって生成された、選択制御手段によって選択された異なる2つの署名ξ、ξ’ごとの臨時公開鍵σ、σ’〔f=1,2,・・・,n〕について、各fごとにσ=σ’が成立するか否かを判定する重複臨時公開鍵検証手段と
を備えたことを特徴とする検証装置。
【請求項22】
上記重複臨時公開鍵検証手段は、
上記選択制御手段によって選択された異なる2つの署名ξ、ξ’ごとの臨時公開鍵σ、σ’〔f=1,2,・・・,n〕について、各fごとにσ=σ’が成立するか否かを判定し、
f=1,2,・・・,nの全てについてσ=σ’が成立する場合には、2つの署名ξ、ξ’は同一署名装置による同一メッセージに対する署名(コピー署名)であると特定し、
1つのp〔但し、p∈{1,2,・・・,n}〕についてσ=σ’が成立する場合には、2つの署名ξ、ξ’は同一署名装置による異なるメッセージに対する署名(重複署名)であると特定する
ものであることを特徴とする請求項21に記載の検証装置。
【請求項23】
各署名装置によって生成された署名および各署名に対応するメッセージmと、全署名者に共通のラベルLを記憶する記憶手段と、
記憶手段に記憶される各署名装置によって生成された署名から異なる2つの署名ξ、ξ’およびこれら署名に対応するメッセージm、m’を選択する選択制御手段と、
選択制御手段によって選択された異なる2つの署名ξ、ξ’ごとに、各署名に対応したメッセージm、m’およびラベルLをハッシュ関数H’に入力して、撹乱因子生成因子AおよびA’を生成する撹乱因子生成因子生成手段と、
選択制御手段によって選択された異なる2つの署名ξ、ξ’ごとに、選択制御手段によって選択された異なる2つの署名ξ、ξ’に含まれる撹乱因子A、A’および撹乱因子生成因子生成手段によって生成された撹乱因子生成因子A、A’から全署名者数に相当するn個の臨時公開鍵σ、σ’〔f=1,2,・・・,n〕を生成する臨時公開鍵生成手段と、
臨時公開鍵生成手段によって生成された、異なる2つの署名ξ、ξ’ごとの臨時公開鍵σ、σ’〔f=1,2,・・・,n〕について、各fごとにσ=σ’が成立するか否かを判定する重複臨時公開鍵検証手段と
を備えたことを特徴とする重複署名コピー署名検出装置。
【請求項24】
上記重複臨時公開鍵検証手段は、
上記選択制御手段によって選択された異なる2つの署名ξ、ξ’ごとの臨時公開鍵σ、σ’〔f=1,2,・・・,n〕について、各fごとにσ=σ’が成立するか否かを判定し、
f=1,2,・・・,nの全てについてσ=σ’が成立する場合には、2つの署名ξ、ξ’は同一署名装置による同一メッセージに対する署名(コピー署名)であると特定し、
1つのp〔但し、p∈{1,2,・・・,n}〕についてσ=σ’が成立する場合には、2つの署名ξ、ξ’は同一署名装置による異なるメッセージに対する署名(重複署名)であると特定する
ものであることを特徴とする請求項23に記載の重複署名コピー署名検出装置。
【請求項25】
1つ以上の署名装置と、検証装置とが相互に通信可能に接続され、
上記署名装置は、
署名者iに固有の秘密鍵xと、署名者iに固有の識別番号i、メッセージmと、全署名者に共通のラベルLとを記憶する記憶手段と、
記憶手段に記憶されるラベルLをハッシュ関数Hに入力して、署名者iに固有の固有臨時公開鍵σを生成するために用いられる固有臨時公開鍵生成因子hを生成する固有臨時公開鍵生成因子生成手段と、
固有臨時公開鍵生成因子生成手段によって生成された固有臨時公開鍵生成因子hと記憶手段に記憶される署名者iに固有の秘密鍵xとから署名者iに固有の固有臨時公開鍵σを生成する固有臨時公開鍵生成手段と、
記憶手段に記憶されるラベルLおよびメッセージmをハッシュ関数H’に入力して、撹乱因子Aを生成するために用いられる撹乱因子生成因子Aを生成する撹乱因子生成因子生成手段と、
撹乱因子生成因子生成手段によって生成された撹乱因子生成因子A、固有臨時公開鍵生成手段によって生成された固有臨時公開鍵σ、記憶手段に記憶される識別番号iとから撹乱因子A=(σ/A)^(1/i)を生成する撹乱因子生成手段と、
撹乱因子生成手段によって生成された撹乱因子Aおよび撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aから全署名者数nから1を引いた個数の撹乱臨時公開鍵σ=A〔j=1,2,・・・,i−1、i+1,・・・,n〕を生成する撹乱臨時公開鍵生成手段と、
署名者iに固有の秘密鍵xを用いて固有臨時公開鍵σを生成したことを非対話ゼロ知識証明によって証明するために用いる非対話ゼロ知識証明情報を生成する非対話ゼロ知識証明情報生成手段と、
非対話ゼロ知識証明情報生成手段によって生成された非対話ゼロ知識証明情報を生成可能な非対話ゼロ知識証明情報生成因子を生成する非対話ゼロ知識証明情報生成因子生成手段と、
撹乱因子生成手段によって生成された撹乱因子Aおよび非対話ゼロ知識証明情報生成因子生成手段によって生成された非対話ゼロ知識証明情報生成因子を、記憶手段に記憶されるラベルLおよびメッセージmに対する署名とする署名生成手段と
検証装置に対して、ラベルL、メッセージm、ラベルLおよびメッセージmに対する署名を送信可能な対検証装置送信手段と
を備え、
固有臨時公開鍵生成手段によって生成された固有臨時公開鍵σおよび撹乱臨時公開鍵生成手段によって生成された撹乱臨時公開鍵σ〔j=1,2,・・・,i−1、i+1,・・・,n〕は、固有臨時公開鍵と撹乱臨時公開鍵との判別が不能に、撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aおよび撹乱因子生成手段によって生成された撹乱因子Aから生成可能であり、
上記検証装置は、
署名装置から、ラベルL、メッセージm、ラベルLおよびメッセージmに対する署名を受信可能な対署名装置受信手段と、
対署名装置受信手段によって受信したメッセージm、ラベルL、ラベルLおよびメッセージmに対する署名を記憶する記憶手段と、
記憶手段に記憶されるラベルLおよびメッセージmをハッシュ関数H’に入力して、撹乱因子生成因子Aを生成する撹乱因子生成因子生成手段と、
記憶手段に記憶される署名に含まれる撹乱因子Aおよび撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aから全署名者数に相当するn個の臨時公開鍵σ=A〔f=1,2,・・・,n〕を生成する臨時公開鍵生成手段と、
記憶手段に記憶される署名に含まれる非対話ゼロ知識証明情報生成因子を用いて非対話ゼロ知識証明情報を生成する非対話ゼロ知識証明情報生成手段と、
撹乱因子生成因子生成手段によって生成された撹乱因子生成因子A、記憶手段に記憶される署名に含まれる撹乱因子A、非対話ゼロ知識証明情報生成手段によって生成された非対話ゼロ知識証明情報の間でゼロ知識証明の検証を行う判定手段と
を備えたことを特徴とする署名検証システム。
【請求項26】
1つ以上の署名装置と、検証装置とが相互に通信可能に接続され、
上記署名装置は、
署名者iに固有の秘密鍵xと、署名者iに固有の識別番号i、メッセージmと、全署名者に共通のラベルLとを記憶する記憶手段と、
記憶手段に記憶されるラベルLをハッシュ関数Hに入力して、署名者iに固有の固有臨時公開鍵σを生成するために用いられる固有臨時公開鍵生成因子hを生成する固有臨時公開鍵生成因子生成手段と、
固有臨時公開鍵生成因子生成手段によって生成された固有臨時公開鍵生成因子hと記憶手段に記憶される署名者iに固有の秘密鍵xとから署名者iに固有の固有臨時公開鍵σを生成する固有臨時公開鍵生成手段と、
記憶手段に記憶されるラベルLおよびメッセージmをハッシュ関数H’に入力して、撹乱因子Aを生成するために用いられる撹乱因子生成因子Aを生成する撹乱因子生成因子生成手段と、
撹乱因子生成因子生成手段によって生成された撹乱因子生成因子A、固有臨時公開鍵生成手段によって生成された固有臨時公開鍵σ、記憶手段に記憶される識別番号iとから撹乱因子A=(σ/A)^(1/i)を生成する撹乱因子生成手段と、
撹乱因子生成手段によって生成された撹乱因子Aおよび撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aから全署名者数nから1を引いた個数の撹乱臨時公開鍵σ=A〔j=1,2,・・・,i−1、i+1,・・・,n〕を生成する撹乱臨時公開鍵生成手段と、
署名者iに固有の秘密鍵xを用いて固有臨時公開鍵σを生成したことを非対話ゼロ知識証明によって証明するために用いる非対話ゼロ知識証明情報を生成する非対話ゼロ知識証明情報生成手段と、
非対話ゼロ知識証明情報生成手段によって生成された非対話ゼロ知識証明情報を生成可能な非対話ゼロ知識証明情報生成因子を生成する非対話ゼロ知識証明情報生成因子生成手段と、
撹乱因子生成手段によって生成された撹乱因子Aおよび非対話ゼロ知識証明情報生成因子生成手段によって生成された非対話ゼロ知識証明情報生成因子を、記憶手段に記憶されるラベルLおよびメッセージmに対する署名とする署名生成手段と
検証装置に対して、ラベルL、メッセージm、ラベルLおよびメッセージmに対する署名を送信可能な対検証装置送信手段と
を備え、
固有臨時公開鍵生成手段によって生成された固有臨時公開鍵σおよび撹乱臨時公開鍵生成手段によって生成された撹乱臨時公開鍵σ〔j=1,2,・・・,i−1、i+1,・・・,n〕は、固有臨時公開鍵と撹乱臨時公開鍵との判別が不能に、撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aおよび撹乱因子生成手段によって生成された撹乱因子Aから生成可能であり、
上記検証装置は、
各署名装置から、各署名装置によって生成された署名および各署名に対応するメッセージmと、全署名者に共通のラベルLを受信可能な対署名装置受信手段と、
対署名装置受信手段によって受信した、各署名装置によって生成された署名、各署名に対応するメッセージmおよびラベルLを記憶する記憶手段と、
記憶手段に記憶されるラベルLおよびメッセージmをハッシュ関数H’に入力して、撹乱因子生成因子Aを生成する撹乱因子生成因子生成手段と、
記憶手段に記憶される署名に含まれる撹乱因子Aおよび撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aから全署名者数に相当するn個の臨時公開鍵σ=A〔f=1,2,・・・,n〕を生成する臨時公開鍵生成手段と、
記憶手段に記憶される署名に含まれる非対話ゼロ知識証明情報生成因子を用いて非対話ゼロ知識証明情報を生成する非対話ゼロ知識証明情報生成手段と、
撹乱因子生成因子生成手段によって生成された撹乱因子生成因子A、記憶手段に記憶される署名に含まれる撹乱因子A、非対話ゼロ知識証明情報生成手段によって生成された非対話ゼロ知識証明情報の間でゼロ知識証明の検証を行う判定手段と、
判定手段によるゼロ知識証明の検証に成功した場合に、記憶手段に記憶される各署名装置によって生成された署名から異なる2つの署名ξ、ξ’およびこれら署名に対応するメッセージを選択する選択制御手段と、
臨時公開鍵生成手段によって生成された、選択制御手段によって選択された異なる2つの署名ξ、ξ’ごとの臨時公開鍵σ、σ’〔f=1,2,・・・,n〕について、各fごとにσ=σ’が成立するか否かを判定する重複臨時公開鍵検証手段と
を備えたことを特徴とする、重複署名および/またはコピー署名を検出する署名検証システム。
【請求項27】
1つ以上の署名装置と、検証装置とが相互に通信可能に接続され、
署名者iに固有の秘密鍵xと、署名者iに固有の識別番号i、メッセージmと、全署名者に共通のラベルLとが署名装置の記憶手段に記憶され、
署名装置の固有臨時公開鍵生成因子生成手段が、署名装置の記憶手段に記憶されるラベルLをハッシュ関数Hに入力して、署名者iに固有の固有臨時公開鍵σを生成するために用いられる固有臨時公開鍵生成因子hを生成する固有臨時公開鍵生成因子生成ステップと、
署名装置の固有臨時公開鍵生成手段が、固有臨時公開鍵生成因子生成ステップにおいて生成された固有臨時公開鍵生成因子hと署名装置の記憶手段に記憶される署名者iに固有の秘密鍵xとから署名者iに固有の固有臨時公開鍵σを生成する固有臨時公開鍵生成ステップと、
署名装置の撹乱因子生成因子生成手段が、署名装置の記憶手段に記憶されるラベルLおよびメッセージmをハッシュ関数H’に入力して、撹乱因子Aを生成するために用いられる撹乱因子生成因子Aを生成する撹乱因子生成因子生成ステップと、
署名装置の撹乱因子生成手段が、撹乱因子生成因子生成ステップにおいて生成された撹乱因子生成因子A、固有臨時公開鍵生成ステップにおいて生成された固有臨時公開鍵σ、署名装置の記憶手段に記憶される識別番号iとから撹乱因子A=(σ/A)^(1/i)を生成する撹乱因子生成ステップと、
署名装置の撹乱臨時公開鍵生成手段が、撹乱因子生成ステップにおいて生成された撹乱因子Aおよび撹乱因子生成因子生成ステップにおいて生成された撹乱因子生成因子Aから全署名者数nから1を引いた個数の撹乱臨時公開鍵σ=A〔j=1,2,・・・,i−1、i+1,・・・,n〕を生成する撹乱臨時公開鍵生成ステップと、
署名装置の非対話ゼロ知識証明情報生成手段が、署名者iに固有の秘密鍵xを用いて固有臨時公開鍵σを生成したことを非対話ゼロ知識証明によって証明するために用いる非対話ゼロ知識証明情報を生成する非対話ゼロ知識証明情報生成ステップと、
署名装置の非対話ゼロ知識証明情報生成因子生成手段が、非対話ゼロ知識証明情報生成ステップにおいて生成された非対話ゼロ知識証明情報を生成可能な非対話ゼロ知識証明情報生成因子を生成する非対話ゼロ知識証明情報生成因子生成ステップと、
署名装置の署名生成手段が、撹乱因子生成ステップにおいて生成された撹乱因子Aおよび非対話ゼロ知識証明情報生成因子生成ステップにおいて生成された非対話ゼロ知識証明情報生成因子を、記憶手段に記憶されるラベルLおよびメッセージmに対する署名とする署名生成ステップと、
署名装置の対検証装置送信手段が、検証装置に対して、ラベルL、メッセージm、ラベルLおよびメッセージmに対する署名を送信する対検証装置送信ステップと、
検証装置の対署名装置受信手段が、署名装置から、ラベルL、メッセージm、ラベルLおよびメッセージmに対する署名を受信する対署名装置受信ステップと、
検証装置の記憶手段が、対署名装置受信ステップにおいて受信したメッセージm、ラベルL、ラベルLおよびメッセージmに対する署名を記憶する記憶ステップと、
検証装置の撹乱因子生成因子生成手段が、検証装置の記憶手段に記憶されるラベルLおよびメッセージmをハッシュ関数H’に入力して、撹乱因子生成因子Aを生成する第2撹乱因子生成因子生成ステップと、
検証装置の臨時公開鍵生成手段が、検証装置の記憶手段に記憶される署名に含まれる撹乱因子Aおよび第2撹乱因子生成因子生成ステップにおいて生成された撹乱因子生成因子Aから全署名者数に相当するn個の臨時公開鍵σ=A〔f=1,2,・・・,n〕を生成する臨時公開鍵生成ステップと、
検証装置の非対話ゼロ知識証明情報生成手段が、検証装置の記憶手段に記憶される署名に含まれる非対話ゼロ知識証明情報生成因子を用いて非対話ゼロ知識証明情報を生成する第2非対話ゼロ知識証明情報生成ステップと、
検証装置の判定手段が、撹乱因子生成因子生成ステップにおいて生成された撹乱因子生成因子A、検証装置の記憶手段に記憶される署名に含まれる撹乱因子A、第2非対話ゼロ知識証明情報生成ステップにおいて生成された非対話ゼロ知識証明情報の間でゼロ知識証明の検証を行う判定ステップと
を有することを特徴とする署名検証方法。
【請求項28】
1つ以上の署名装置と、検証装置とが相互に通信可能に接続され、
署名者iに固有の秘密鍵xと、署名者iに固有の識別番号i、メッセージmと、全署名者に共通のラベルLとが署名装置の記憶手段に記憶され、
署名装置の固有臨時公開鍵生成因子生成手段が、署名装置の記憶手段に記憶されるラベルLをハッシュ関数Hに入力して、署名者iに固有の固有臨時公開鍵σを生成するために用いられる固有臨時公開鍵生成因子hを生成する固有臨時公開鍵生成因子生成ステップと、
署名装置の固有臨時公開鍵生成手段が、固有臨時公開鍵生成因子生成ステップにおいて生成された固有臨時公開鍵生成因子hと署名装置の記憶手段に記憶される署名者iに固有の秘密鍵xとから署名者iに固有の固有臨時公開鍵σを生成する固有臨時公開鍵生成ステップと、
署名装置の撹乱因子生成因子生成手段が、署名装置の記憶手段に記憶されるラベルLおよびメッセージmをハッシュ関数H’に入力して、撹乱因子Aを生成するために用いられる撹乱因子生成因子Aを生成する撹乱因子生成因子生成ステップと、
署名装置の撹乱因子生成手段が、撹乱因子生成因子生成ステップにおいて生成された撹乱因子生成因子A、固有臨時公開鍵生成ステップにおいて生成された固有臨時公開鍵σ、署名装置の記憶手段に記憶される識別番号iとから撹乱因子A=(σ/A)^(1/i)を生成する撹乱因子生成ステップと、
署名装置の撹乱臨時公開鍵生成手段が、撹乱因子生成ステップにおいて生成された撹乱因子Aおよび撹乱因子生成因子生成ステップにおいて生成された撹乱因子生成因子Aから全署名者数nから1を引いた個数の撹乱臨時公開鍵σ=A〔j=1,2,・・・,i−1、i+1,・・・,n〕を生成する撹乱臨時公開鍵生成ステップと、
署名装置の非対話ゼロ知識証明情報生成手段が、署名者iに固有の秘密鍵xを用いて固有臨時公開鍵σを生成したことを非対話ゼロ知識証明によって証明するために用いる非対話ゼロ知識証明情報を生成する非対話ゼロ知識証明情報生成ステップと、
署名装置の非対話ゼロ知識証明情報生成因子生成手段が、非対話ゼロ知識証明情報生成ステップにおいて生成された非対話ゼロ知識証明情報を生成可能な非対話ゼロ知識証明情報生成因子を生成する非対話ゼロ知識証明情報生成因子生成ステップと、
署名装置の署名生成手段が、撹乱因子生成ステップにおいて生成された撹乱因子Aおよび非対話ゼロ知識証明情報生成因子生成ステップにおいて生成された非対話ゼロ知識証明情報生成因子を、記憶手段に記憶されるラベルLおよびメッセージmに対する署名とする署名生成ステップと、
署名装置の対検証装置送信手段が、検証装置に対して、ラベルL、メッセージm、ラベルLおよびメッセージmに対する署名を送信する対検証装置送信ステップと、
検証装置の対署名装置受信手段が、各署名装置から、各署名装置によって生成された署名、各署名に対応するメッセージmおよびラベルLを受信する対署名装置受信ステップと、
検証装置の記憶手段が、対署名装置受信ステップにおいて受信した、各署名装置によって生成された署名、各署名に対応するメッセージmおよびラベルLを記憶する記憶ステップと、
検証装置の撹乱因子生成因子生成手段が、検証装置の記憶手段に記憶されるラベルLおよびメッセージmをハッシュ関数H’に入力して、撹乱因子生成因子Aを生成する第2撹乱因子生成因子生成ステップと、
検証装置の臨時公開鍵生成手段が、検証装置の記憶手段に記憶される署名に含まれる撹乱因子Aおよび第2撹乱因子生成因子生成ステップにおいて生成された撹乱因子生成因子Aから全署名者数に相当するn個の臨時公開鍵σ=A〔f=1,2,・・・,n〕を生成する臨時公開鍵生成ステップと、
検証装置の非対話ゼロ知識証明情報生成手段が、検証装置の記憶手段に記憶される署名に含まれる非対話ゼロ知識証明情報生成因子を用いて非対話ゼロ知識証明情報を生成する第2非対話ゼロ知識証明情報生成ステップと、
検証装置の判定手段が、撹乱因子生成因子生成ステップにおいて生成された撹乱因子生成因子A、検証装置の記憶手段に記憶される署名に含まれる撹乱因子A、第2非対話ゼロ知識証明情報生成ステップにおいて生成された非対話ゼロ知識証明情報の間でゼロ知識証明の検証を行う判定ステップと、
検証装置の選択制御手段が、判定ステップにおいてゼロ知識証明の検証に成功した場合に、検証装置の記憶手段に記憶される各署名装置によって生成された署名から異なる2つの署名ξ、ξ’およびこれら署名に対応するメッセージを選択する選択制御ステップと、
検証装置の重複臨時公開鍵検証手段が、臨時公開鍵生成ステップにおいて生成された、選択制御ステップにおいて選択された異なる2つの署名ξ、ξ’ごとの臨時公開鍵σ、σ’〔f=1,2,・・・,n〕について、各fごとにσ=σ’が成立するか否かを判定する重複臨時公開鍵検証ステップと
を有することを特徴とする、重複署名および/またはコピー署名を検出する署名検証方法。
【請求項29】
1つ以上の電子投票装置と、開票装置と、情報公開サーバ装置とが相互に通信可能に接続され、
上記情報公開サーバ装置は、
選挙を特定する情報を含むラベルL、投票内容m、投票内容mに対する署名(投票署名)を記憶可能な記憶手段と、
電子投票装置に対して、記憶手段に記憶されるラベルLおよび投票内容mを送信可能な対電子投票装置送信手段と、
電子投票装置の対情報公開サーバ装置送信手段によって送信されたラベルL、投票内容mおよび投票署名を受信可能な対電子投票装置受信手段と、
開票装置に対して、記憶手段に記憶されるラベルL、投票内容m、投票内容mに対する投票署名を送信可能な対開票装置送信手段と
を備え、
上記電子投票装置は、
情報公開サーバ装置の対電子投票装置送信手段によって送信されたラベルLおよび投票内容mを受信する対情報公開サーバ装置受信手段と、
対情報公開サーバ装置受信手段によって受信した投票内容mおよびラベルL並びに投票者iに固有の秘密鍵xと、投票者iに固有の識別番号iとを記憶する記憶手段と、
記憶手段に記憶されるラベルLをハッシュ関数Hに入力して、投票者iに固有の固有臨時公開鍵σを生成するために用いられる固有臨時公開鍵生成因子hを生成する固有臨時公開鍵生成因子生成手段と、
固有臨時公開鍵生成因子生成手段によって生成された固有臨時公開鍵生成因子hと記憶手段に記憶される投票者iに固有の秘密鍵xとから投票者iに固有の固有臨時公開鍵σを生成する固有臨時公開鍵生成手段と、
記憶手段に記憶されるラベルLおよび投票内容mをハッシュ関数H’に入力して、撹乱因子Aを生成するために用いられる撹乱因子生成因子Aを生成する撹乱因子生成因子生成手段と、
撹乱因子生成因子生成手段によって生成された撹乱因子生成因子A、固有臨時公開鍵生成手段によって生成された固有臨時公開鍵σ、記憶手段に記憶される識別番号iとから撹乱因子A=(σ/A)^(1/i)を生成する撹乱因子生成手段と、
撹乱因子生成手段によって生成された撹乱因子Aおよび撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aから全投票者数nから1を引いた個数の撹乱臨時公開鍵σ=A〔j=1,2,・・・,i−1、i+1,・・・,n〕を生成する撹乱臨時公開鍵生成手段と、
投票者iに固有の秘密鍵xを用いて固有臨時公開鍵σを生成したことを非対話ゼロ知識証明によって証明するために用いる非対話ゼロ知識証明情報を生成する非対話ゼロ知識証明情報生成手段と、
非対話ゼロ知識証明情報生成手段によって生成された非対話ゼロ知識証明情報を生成可能な非対話ゼロ知識証明情報生成因子を生成する非対話ゼロ知識証明情報生成因子生成手段と、
撹乱因子生成手段によって生成された撹乱因子Aおよび非対話ゼロ知識証明情報生成因子生成手段によって生成された非対話ゼロ知識証明情報生成因子を、記憶手段に記憶されるラベルLおよび投票内容mに対する署名(投票署名)とする署名生成手段と、
情報公開サーバ装置に対して、ラベルL、投票内容m、ラベルLおよび投票内容mに対する投票署名を送信可能な対情報公開サーバ装置送信手段と
を備え、
固有臨時公開鍵生成手段によって生成された固有臨時公開鍵σおよび撹乱臨時公開鍵生成手段によって生成された撹乱臨時公開鍵σ〔j=1,2,・・・,i−1、i+1,・・・,n〕は、固有臨時公開鍵と撹乱臨時公開鍵との判別が不能に、撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aおよび撹乱因子生成手段によって生成された撹乱因子Aから生成可能であり、
上記開票装置は、
情報公開サーバ装置から、各電子投票装置によって生成された投票署名、各投票署名に対応する投票内容mおよびラベルLを受信可能な対情報公開サーバ装置受信手段と、
対情報公開サーバ装置受信手段によって受信した、各電子投票装置によって生成された投票署名、各投票署名に対応する投票内容mおよびラベルLを記憶する記憶手段と、
記憶手段に記憶されるラベルLおよび投票内容mをハッシュ関数H’に入力して、撹乱因子生成因子Aを生成する撹乱因子生成因子生成手段と、
記憶手段に記憶される投票署名に含まれる撹乱因子Aおよび撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aから全投票者数に相当するn個の臨時公開鍵σ=A〔f=1,2,・・・,n〕を生成する臨時公開鍵生成手段と、
記憶手段に記憶される投票署名に含まれる非対話ゼロ知識証明情報生成因子を用いて非対話ゼロ知識証明情報を生成する非対話ゼロ知識証明情報生成手段と、
撹乱因子生成因子生成手段によって生成された撹乱因子生成因子A、記憶手段に記憶される投票署名に含まれる撹乱因子A、非対話ゼロ知識証明情報生成手段によって生成された非対話ゼロ知識証明情報の間でゼロ知識証明の検証を行う判定手段と、
判定手段によるゼロ知識証明の検証に成功した場合に、記憶手段に記憶される各電子投票装置によって生成された投票署名から異なる2つの投票署名ξ、ξ’およびこれら投票署名に対応する投票内容を選択する選択制御手段と、
臨時公開鍵生成手段によって生成された、選択制御手段によって選択された異なる2つの投票署名ξ、ξ’ごとの臨時公開鍵σ、σ’〔f=1,2,・・・,n〕について、各fごとにσ=σ’が成立するか否かを判定する重複臨時公開鍵検証手段と
判定手段によるゼロ知識証明の検証および重複臨時公開鍵検証手段による重複投票署名および/またはコピー投票署名の検出に成功した場合に、重複投票署名に対応した投票内容ついてはその全ての個数を除いて、コピー投票署名に対応した投票内容についてはその総数から1を引いた個数を除いて、投票内容に投票された投票数を計数する集計手段と
を備えたことを特徴とする、重複投票署名および/またはコピー投票署名を検出する電子投開票システム。
【請求項30】
1つ以上の利用者装置と、1つ以上の店舗装置と、銀行の検証装置とが相互に通信可能に接続され、
上記利用者装置は、
店舗装置から取引を特定する情報である取引情報mを受信する対店舗装置受信手段と、
対店舗装置受信手段によって受信した取引情報m並びに、利用者iに固有の秘密鍵xと、利用者iに固有の識別番号iと、電子現金の金額の情報を含むラベルLとを記憶する記憶手段と、
記憶手段に記憶されるラベルLをハッシュ関数Hに入力して、利用者iに固有の固有臨時公開鍵σを生成するために用いられる固有臨時公開鍵生成因子hを生成する固有臨時公開鍵生成因子生成手段と、
固有臨時公開鍵生成因子生成手段によって生成された固有臨時公開鍵生成因子hと記憶手段に記憶される利用者iに固有の秘密鍵xとから利用者iに固有の固有臨時公開鍵σを生成する固有臨時公開鍵生成手段と、
記憶手段に記憶されるラベルLおよび取引情報mをハッシュ関数H’に入力して、撹乱因子Aを生成するために用いられる撹乱因子生成因子Aを生成する撹乱因子生成因子生成手段と、
撹乱因子生成因子生成手段によって生成された撹乱因子生成因子A、固有臨時公開鍵生成手段によって生成された固有臨時公開鍵σ、記憶手段に記憶される識別番号iとから撹乱因子A=(σ/A)^(1/i)を生成する撹乱因子生成手段と、
撹乱因子生成手段によって生成された撹乱因子Aおよび撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aから全利用者数nから1を引いた個数の撹乱臨時公開鍵σ=A〔j=1,2,・・・,i−1、i+1,・・・,n〕を生成する撹乱臨時公開鍵生成手段と、
利用者iに固有の秘密鍵xを用いて固有臨時公開鍵σを生成したことを非対話ゼロ知識証明によって証明するために用いる非対話ゼロ知識証明情報を生成する非対話ゼロ知識証明情報生成手段と、
非対話ゼロ知識証明情報生成手段によって生成された非対話ゼロ知識証明情報を生成可能な非対話ゼロ知識証明情報生成因子を生成する非対話ゼロ知識証明情報生成因子生成手段と、
撹乱因子生成手段によって生成された撹乱因子Aおよび非対話ゼロ知識証明情報生成因子生成手段によって生成された非対話ゼロ知識証明情報生成因子を、記憶手段に記憶されるラベルLおよび取引情報mに対する署名とする署名生成手段と
店舗装置に対して、ラベルL、取引情報m、ラベルLおよび取引情報mに対する署名を電子現金として送信する対店舗装置送信手段と
を備え、
固有臨時公開鍵生成手段によって生成された固有臨時公開鍵σおよび撹乱臨時公開鍵生成手段によって生成された撹乱臨時公開鍵σ〔j=1,2,・・・,i−1、i+1,・・・,n〕は、固有臨時公開鍵と撹乱臨時公開鍵との判別が不能に、撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aおよび撹乱因子生成手段によって生成された撹乱因子Aから生成可能であり、
上記店舗装置は、
利用者装置に対して取引情報mを送信する対利用者装置送信手段と、
利用者装置からラベルL、取引情報m、ラベルLおよび取引情報mに対する署名を受信する対利用者装置受信手段と、
対利用者装置受信手段によって受信した、利用者装置によって生成された署名、各署名に対応する取引情報mおよびラベルLを記憶する記憶手段と、
記憶手段に記憶されるラベルLおよび取引情報mをハッシュ関数H’に入力して、撹乱因子生成因子Aを生成する撹乱因子生成因子生成手段と、
記憶手段に記憶される署名に含まれる撹乱因子Aおよび撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aから全利用者数に相当するn個の臨時公開鍵σ=A〔f=1,2,・・・,n〕を生成する臨時公開鍵生成手段と、
記憶手段に記憶される署名に含まれる非対話ゼロ知識証明情報生成因子を用いて非対話ゼロ知識証明情報を生成する非対話ゼロ知識証明情報生成手段と、
撹乱因子生成因子生成手段によって生成された撹乱因子生成因子A、記憶手段に記憶される署名に含まれる撹乱因子A、非対話ゼロ知識証明情報生成手段によって生成された非対話ゼロ知識証明情報の間でゼロ知識証明の検証を行う判定手段と、
判定手段によってゼロ知識証明が成功した場合に、対利用者装置受信手段によって受信したラベルL、取引情報m、ラベルLおよび取引情報mに対する署名を銀行の検証装置に送信する対銀行検証装置送信手段と
を備え、
上記銀行の検証装置は、
各店舗装置からラベルL、取引情報m、ラベルLおよび取引情報mに対する署名を受信する対店舗装置受信手段と、
対店舗装置受信手段によって受信した、各利用者装置によって生成された署名、各署名に対応する投票内容mおよびラベルLを記憶する記憶手段と、
記憶手段に記憶されるラベルLおよび取引情報mをハッシュ関数H’に入力して、撹乱因子生成因子Aを生成する撹乱因子生成因子生成手段と、
記憶手段に記憶される署名に含まれる撹乱因子Aおよび撹乱因子生成因子生成手段によって生成された撹乱因子生成因子Aから全利用者数に相当するn個の臨時公開鍵σ=A〔f=1,2,・・・,n〕を生成する臨時公開鍵生成手段と、
記憶手段に記憶される署名に含まれる非対話ゼロ知識証明情報生成因子を用いて非対話ゼロ知識証明情報を生成する非対話ゼロ知識証明情報生成手段と、
撹乱因子生成因子生成手段によって生成された撹乱因子生成因子A、記憶手段に記憶される署名に含まれる撹乱因子A、非対話ゼロ知識証明情報生成手段によって生成された非対話ゼロ知識証明情報の間でゼロ知識証明の検証を行う判定手段と、
記憶手段に記憶される各利用者装置によって生成された署名から異なる2つの署名ξ、ξ’およびこれら署名に対応する取引情報m、m’を選択する選択制御手段と、
臨時公開鍵生成手段によって生成された、選択制御手段によって選択された異なる2つの署名ξ、ξ’ごとの臨時公開鍵σ、σ’〔f=1,2,・・・,n〕について、各fごとにσ=σ’が成立するか否かを判定する重複臨時公開鍵検証手段と、
判定手段によるゼロ知識証明の検証および重複臨時公開鍵検証手段による重複署名および/またはコピー署名の検出に成功した場合に、ラベルLに定まる金額を店舗の銀行口座に振り込む口座管理手段と、
を備えたことを特徴とする電子現金支払システム。
【請求項31】
請求項1、2、3、4、27、28のいずれかに記載の方法の各ステップをコンピュータにより実行するプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate


【公開番号】特開2007−6441(P2007−6441A)
【公開日】平成19年1月11日(2007.1.11)
【国際特許分類】
【出願番号】特願2006−8040(P2006−8040)
【出願日】平成18年1月16日(2006.1.16)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】