JPH0752460B2 - 電子現金実施方法及びその装置 - Google Patents

電子現金実施方法及びその装置

Info

Publication number
JPH0752460B2
JPH0752460B2 JP8883890A JP8883890A JPH0752460B2 JP H0752460 B2 JPH0752460 B2 JP H0752460B2 JP 8883890 A JP8883890 A JP 8883890A JP 8883890 A JP8883890 A JP 8883890A JP H0752460 B2 JPH0752460 B2 JP H0752460B2
Authority
JP
Japan
Prior art keywords
information
user
party
bank
sentence
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
JP8883890A
Other languages
English (en)
Other versions
JPH0373065A (ja
Inventor
和夫 太田
龍明 岡本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP8883890A priority Critical patent/JPH0752460B2/ja
Publication of JPH0373065A publication Critical patent/JPH0373065A/ja
Publication of JPH0752460B2 publication Critical patent/JPH0752460B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、電子通信システムを利用して電子的な現金を
実現する電子現金実施方法及びそのための装置に関す
る。
〔従来の技術〕
電子通信システムを使用した電子資金移動が普及しつつ
ある。一般に金融機関(以下の説明ではすべて銀行で代
表する)で換金可能な、例えば手形、小切手等の証書
は、証書のは象徴的機能(証書を保持している人に対し
て証書に記載してある権利が供与されること)を備えて
いる。証書を電気通信システムで取り扱う場合、証書は
ディジタル化されたデータであり、容易にコピーを作成
して複数回の換金が可能となる。プリペイドカードのよ
うな電子的現金を実現する時にも、このような問題が生
じる。すなわち、プリペイドカードをコピーすること
で、不正に複数回の換金または商品の購入が可能とな
る。
この問題の解決策として、計算機能を備えたカードで換
金時にカード読み取り装置とカードとの間のデータのや
り取りを工夫することで、カードの二重使用を検出する
方式が提案されている(例えば、Chaum,Fiat,Naor:‘Un
traceable Electric Cath'Proc of CRYPTO'88)。
上述したchaum等の方式の概要は次の通りである。な
お、以降では利用者の識別情報(口座番号等)をIDで表
わす。
まず、利用者が銀行から一定額面の電子現金を発行して
もらう手順は以下の通りである。
ステップ1:利用者は、k個の乱数ai(i=1,・・・,k)
を生成して公開された一方向性関数gを用いて次式 xi=g(ai) yi=g(aiID),i=1,・・・,k によりxiとyiを求める。
ここでは排他的論理和を表わす。
ステップ2:利用者は、公開された一方向性関数fを使用
して計算した値f(xi,yi)と乱数riのe乗との積Bi
次式 Bi=▲re i▼×f(xi,yi)mod n,i=1,・・・,kで計算
し銀行に提示する。この処理はf(xi,yi)の内容を銀
行読まれないようにして結果的にf(xi,yi)に銀行の
署名を得るブラインド署名のための前処理である。ここ
で一般にa mod bは整数aを整数bで割った余りを表わ
す。
ステップ3:銀行は、利用者にIDとそれぞれk/2個のaiとr
iを開示させて利用者がステップ1および2を正しく実
行していることを確認する(以下では、i=1,・・・,k
/2が未開示と仮定して説明する)。
ステップ4:銀行は、未公開のk/2個のBiの積を取り、d
乗して署名Dを次式のように計算する。同時に、利用者
の口座から対応する金額を引き落とす。
ステップ5:利用者は、Dから乱数riの影響を取り除いた
電子現金Cを次式で計算する。
この時次式が成立する。
この処理により得られる電子現金Cはf(xi,yi)に直
接銀行の署名を付けたものと等価である。ここで、e,d
およびnは銀行によって生成され、次式を満たす。
n=P×Q(PとQは素数) e×d=1(mod l) 但し、l=LCM{(P−1),(Q−1)}であり、LCM
{a,b}はaとbとの最小公倍数を表わす。銀行は電子
現金の額面に対応する情報eと鍵nを公開し、鍵dを秘
密に管理する。
利用者が、小売店で電子現金Cを利用して支払う手順は
次の通りである。
ステップ6:利用者は、Cを小売店に提出する。
ステップ7:小売店は、ランダムなビット列E1,・・・,
Ek/2を生成して利用者に送信する。
ステップ8:利用者は、1≦i≦k/2なる未開示対象のi
に対して Ei=1のとき、aiとyiを、 Ei=0のとき、xiと(aiID)を小売店に提示する。
ステップ9:小売店は利用者の応答、公開情報eおよびn
を用いてCの正当性が次式により成り立つことを確認す
る。
但し、、xi=g(ai) yi=g(aiID) 小売店と銀行の間の決済方法は次の通りである。
ステップ10:小売店は、後日、C,ビット列E1,・・・,E
k/2と利用者からの応答(aiとyi、またはxiと(aiI
D)を銀行に提示して、銀行から該当する金額の支払い
を受ける。
ステップ11:銀行はC、ビット列E1,・・・,Ek/2とai
(Ei=1のとき)または(aiID)(Ei=0のとき)を
記憶する。
ここで示した方式は、利用者のプライバシィを保障で
き、二重使用を検出できるという特徴を備えている。
まず、利用者のプライバシィの保障について説明する。
情報Bはf(x,y)を乱数で攪乱したものなので、銀行
および第3者はBからf(x,y)を推定できない。ま
た、銀行と小売店が結託しても、電子現金Cと署名Dの
対応を知ることができない。従って、誰がCを発行した
かを知ることができない。これによりChaum等の方式で
は、電子現金Cの発行元(利用者)を推定できないの
で、利用者の消費動向等のプライバシィを守ることがで
きる。以降では、ここで使用した署名の技法を「ブライ
ンド署名」と称することにする。
ブラインド署名の技法としては例えばChaumが米国特許N
o.4,759,063においてRSA暗号方式を用いた次のようなブ
ラインド署名技法を提案している。
利用者は文書Mに対して攪乱乱数rを使って次式(1) W=FeA(M)=reA×M mod n ・・・(1) で表わされる一方向性関数FeAにより文書Mを攪乱して
攪乱文書Wを作成し、銀行に送る。この関数による処理
をブラインド署名前処理と呼ぶ。
銀行は次式(2)で表わされる署名関数DeAにより攪乱
文書Wに署名して署名付攪乱文書Ωを得て、利用者に送
る。
Ω=DeA(W)=WdA mod n ・・・(2) 利用者は次式(3)で表わされるブラインド署名後処理
関数HeAにより署名付攪乱文書Ωを処理する。
HeA(Ω)=Ω/r mod n ・・・(3) ただし式(1)、(2)、(3)におけるeA,dA,nは次
の条件を満すものとする。
eA×dA≡1(mod l) l=LCM{(P−1),(Q−1)} n=P×Q, PとQは素数であり、LCM{a,b}はaとbの最小公倍数
を表わす。dAは秘密鍵であり、eA及びnは公開鍵であ
る。
上式(3)は次のように変形できる。
HeA(Ω)=HeA{DeA(FeA(M))} ≡(reA×M)dA/r ≡reA×dA×MdA/r ≡MdA(mod n) ・・・(4) 式(5)の右辺は明らかに式(2)の中のWをMに置き
替えたものである。従って次式 HeA(Ω)=DeA(M) ・・・(5) が成立する。これら式(1)、(2)、(3)がブライ
ンド署名の手順を示しており、そのブラインド署名が可
能てあることを式(4)が証明している。即ち署名付攪
乱文書Ωをブラインド署名後処理関数HeAにより処理す
ることによって署名付攪乱文書Ωから撹拌乱数rの影響
を除去することができ、従って銀行が文書Mを直接署名
関数DeAにより署名したものと同じ署名付文書DeA(M)
が得られる。
次に二重使用の検出について説明する。銀行は小売店か
ら送られてきたCをすでにメモリに蓄積されているすべ
てのCと比較し、同じCが2回使用されてないかチェッ
クする。利用者が不正にCを2回使用すると、1回目の
Cに対応してEi=1の時aiがEi=0の時(aiID)が銀
行のメモリ内に記憶されているので、1回目のEiと2回
目のEiが異なる場合には、ai(aiID)を計算してID
が求まる。銀行はk/2ビットの問い合わせをするので、
1回目と2回目のEiが全ビット(i=1〜k/2)で一致
する確率、即ち二重使用されたCからそれを使用した利
用者のIDを計算できない確率は2-k/2となる。
〔発明が解決しようとする課題〕
上述したChaum等の方式では、二重使用に対する安全性
を保障するために関数fとgが一方向性であることに加
えて、2成分の不干渉性、即ちZ=f(x,y)=f
(x′,y′)を満たす(x,y)と(x′,y′)と見つけ
ることが困難なことが必要である。ところが、このよう
な2成分の不干渉性を満足する一方向性関数の構成方法
については現在知られていない。
本発明は、上記に鑑みてなされたもので、その目的とす
るところは、特殊な条件を備えた関数fを用いることな
く、二重使用を検出することができるとともに、また利
用者のプライバシィを保障することができる電子現金実
施方法とその装置を提供することにある。
〔課題を解決するための手段〕
本発明の電子現金方式は、銀行が発行する電子現金を利
用者が使用し、この電子現金を小売店が受領して銀行と
の間で決済する電子現金処理における電子現金実施方法
であって、 利用者は、利用者の識別情報(IDP)を裸のまま含んだ
秘密情報(Si)から利用者情報(Vi)を生成し、その利
用者情報(Vi)又はそれを含む情報(Mi)をブラインド
署名前処理器により攪乱して攪乱利用者情報(Wi)を生
成し、銀行に送信する。
銀行は、署名器を使って攪乱利用者情報(Wi)に署名
し、その署名付攪乱利用者情報(Ωi)を利用者に送信
する。
利用者は、ブラインド署名後処理器を使用して銀行から
受信した署名付攪乱利用者情報から攪乱を除去すること
により銀行の署名が付いた署名付利用者情報(Bvi又はB
i又はB)を得る。
利用者は乱数情報(Ri)から第1通信文計算器を使用し
て認証用情報(Xi)を生成し、その認証用情報又はそれ
を含む情報mをブラインド署名前処理器により攪乱して
攪乱認証用情報(Zi又はZ)を生成し、銀行に送る。
銀行は署名器を使って攪乱認証用情報(Zi又はZ)に署
名し、その署名付攪乱認証情報(Θi又はΘ)を利用者
に送る。
利用者はブラインド後処理器を使って署名付攪乱認証用
情報から攪乱を除去することにより銀行の署名が付いた
署名付認証用情報(Bxi又はC)を得る。
利用者は小売店での支払い時に利用者情報、認証用情
報、署名付利用者情報、及び署名付認証用情報を電子現
金として提示する。
小売店は、検査器を使用して署名付利用者情報と署名付
認証用情報の妥当性を検査する。また小売店自身の情報
により作成した問い合わせ文qiを利用者に送る。利用者
は小売店からの問い合わせに対して秘密情報(Si)と乱
数情報(Ri)を問い合わせ文とを使って応答文(Yi)を
作成し、小売店に提示する。
小売店は応答文を検査することによって利用者情報と認
証用情報が利用者自身のものであることを確認し、電子
現金を正当なものであると判定する。小売店は決済のた
めに銀行に利用者の提示した情報と共に問い合わせ文と
それに対する応答文を送信する。
銀行は、検査器を使用して署名付利用者情報と署名付認
証用情報の妥当性を検査して、合格の時には受信した利
用者情報と認証用情報の組と同じものが既にメモリ内に
蓄積されている情報の中にないか検査し、あった場合は
それら2組の利用者情報と認証用情報に対応する問い合
わせ文と応答文から利用者の秘密情報を算出して利用者
を同定し、同じ組がなかった場合は小売店から受信した
情報をメモリに蓄積する。
〔作用〕
このようにこの発明によれば識別情報を含んだ秘密情報
から作られた利用者情報と乱数情報から作られた認証用
情報とに対し、それぞれ別々にブラインド署名をするよ
うにしたため利用者情報及び認証用情報を作成するため
の関数には成分の不干渉性の問題は生じない。従って所
望の関数を構成することができる。
更に1度得た署名付利用者情報を銀行が発行した利用許
可証(Bi又はB)として使い、必要毎にに認証用情報Xi
と利用許可証を連結した情報に対し、銀行にブラインド
署名させて得た前記署名付認証用情報を銀行が発行した
電子コインとして使うようにすれば電子コインの発行処
理手順を簡略化でき、しかも電子コインを譲渡したり及
び/又は複数回使用したりすることも可能となる。
以下、図面を用いて本発明の実施例を説明する。
第1図は本発明の各実施例に係わる電子現金方式が適用
される銀行(BANK)、利用者(USER)および小売店(SH
OP)の関係を示す構成図である。第1図において、銀行
100、利用者200および小売店300は例えば通信回線等を
介して接続されているが、情報を記録できる例えばICカ
ードを介しての接続であってもよい。
〔第1実施例〕 銀行100は、利用者200の電子現金発行要求に応じて利用
者200の身元を確認して利用者の口座から電子現金に対
応する金額を引き落とすか、又は利用者200から現金を
受領した後に、そのことを証明する証拠(電子現金を構
成する情報の一部である後述する署名付利用者情報と署
名付認証用情報)を利用者200にブラインド署名の技法
を用いて発行する。
利用者200は、小売店300に対する支払い時に証拠を小売
店300に提出し、かつ小売店300からの問い合わせに対し
て利用者情報と認証用情報をそれぞれ生成する時に用い
た秘密情報と乱数情報から応答文を生成して小売店に提
出して支払いを済ます。
次に、利用者識別情報としてIDPを用いる利用者200が電
子現金を銀行100から発行してもらう場合について詳細
に説明する。
まず、銀行は電子現金発行手順において使用されるブラ
インド署名の技法にここではRSA暗号を使うため、必要
な各種パラメータを次の条件を満たすように決定する。
n=P×Q e×d≡1(mod l) 但し、l=LCM{(P−1),(Q−1)}でe,dおよび
nを計算して、鍵eおよび鍵nを公開し、鍵dを秘密に
管理する。銀行が発行する電子現金の額面は一定であ
り、公開鍵eはその金額に対応している。
ここで、LCM(a,b)は整数aとbとの最小公倍数を表わ
し、PおよびQは相異なる2つの大きな素数とする。ま
た、a≡b(mod l)は、a−bがlの整数倍であるこ
とを表わす。このような各種パラメータの決め方は、例
えばR.L.Rivest etal.“A Method jor Obtaining Digit
al Signatures and Publickey Cryptosystems",Communi
cations of the ACM Vol.21,No.2.pp120-126,1978に記
載されている。
次に利用者200は、自分の識別情報IDPを裸のまま埋め込
んだ秘密情報Siから利用者情報Viをあらかじめ決めた第
1の一方向性関数に従って生成し、乱数情報Riからに認
証用情報Xiを前記第2の一方向性関数に従って生成す
る。利用者は銀行にブラインド署名の技法を用いてVi
Xiに署名をつけさせる。ここで、ブラインド署名を用い
ている理由は、小売店と銀行が結託しても利用者のプラ
イバシィを保障できるようにするためである。この発明
で重要なことの1つは秘密情報Siが未加工の識別情報ID
Pを含んでいることである。
以下に説明する銀行と利用者間の処理におけるブライン
ド署名はChaumの米国特許No.4,759,063に開示されてい
るブラインド署名技法と同様に、RSA暗号(前述したRiv
est等の論文参照)を利用した場合であるが、対話型の
認証方式を用いるブラインド署名(例えば、米国出願N
o.367,650(1989年6月19日出願)参照)を使ってもよ
い。
利用者が銀行から電子現金を発行してもらう手順を第2
図Aに示し、利用者200及び銀行100の構成を示すブロッ
ク図をそれぞれ第3図及び第4図に示す。なお、以下の
説明ではi=1,…,kとする。
ステップS1:利用者は、乱数発生器(RANDOMGEN)211を
用いて乱数aiを生成し、識別情報IDPとともに署名器(S
LG EQ)212に供給する。署名器212はaiとIDPの連結に利
用者の署名を付けるものであり、その署名付出力giはgi
=G(ai‖IDP)と表わされ、Gは署名関数である。記
号‖は連結を表わし、例えば01110‖110=01110110であ
る。
ステップS2:乱数発生器211の出力aiと署名器212の出力
giをIDPとともに連結器(CONC)213に入力して、秘密情
報Siを作成する。秘密情報Siは次式で示すようにIDP
乱数ai及び署名giの連結であり、従って識別情報IDP
裸のまま含んでする。
Si=IDP‖ai‖gi …(6) また素数発生器(PRIM GEN)221を用いて、2つの素数P
i,Qiを生成し、乗算器222を用いて素数PiとQiの積Ni
求める。
ステップS3:素数Li,連結器213の出力Siと乗算器(MU
L)222の出力である素数積Niから、剰余付きべき乗計算
器(MOD-POWER)223を用いて第1の一方向性関数である
次式で与えられる利用者情報 Vi=▲SLi i▼ mod Ni …(7) を計算する。
一方乱数発生器(RANDOM GEN)224を用いて生成した秘
密の乱数情報R1、乗算器222の出力Nおよび素数Lか
ら、剰余付きべき乗計算器(MOD-POWER)225を用いて第
2の一方向性関数である次式で与えられる認証用情報 Xi=▲RLi i▼ mod Ni …(8) を計算する。LiとNiは式(7),(8)で表わせる一方
向性関数を構成するパラメータとして使われるのでパラ
メータ情報と呼ぶ。
ステップS4:ブラインド署名前処理としてViとXiをそれ
ぞれ攪乱乱数riとr′iで攪乱するための前処理関数は
それぞれ一方向性関数であり一般に下で次のように表わ
すが必ずしも同じ形である必要はない。
Wi=Fe{ri,Vi} …(9) Zi=Fe{r′i,Xi} …(10) 第2A図及び第3図に示す実施例においてはこの前処理を
次のように行う。即ち乱数発生器(RANDOM GEN)226の
生成した攪乱乱数riと剰余付きべき乗計算器223の生成
したViと公開鍵eとnから剰余乗算・べき乗計算器(MO
DMUL/POWER)227を用いて、次式で表わされる攪乱利用
者情報 Wi=Fe{ri,Vi}=▲re i▼×Vi mod n …(11) を計算する。
一方乱数発生器226の生成した攪乱乱数r′iと剰余付き
べき乗計算器225の生成したXiと公開鍵eとnから、剰
余乗算・べき乗計算器(MOD-MUL/POWER)228を用いて、
次式で表わされる攪乱認証用情報 Zi=Fe{r′i,Xi}=▲r′e i▼×Xi mod n …(12) を計算する。
計算したWiとZiを銀行に送信する。
ここで、乱数発生器226、剰余乗算・べき乗計算器227,2
28はブラインド署名前処理器20Aを構成している。
ステップS5:銀行は利用者200からWiとZiを受信する
と、メモリ(MEM)101,102にそれぞれ記憶する(第4図
参照)。
次に銀行100は利用者にk/2組の(Si,Ri,ri,r′i,Li,
Ni)を開示させて、利用者が各秘密情報Siに本人の識別
情報IDPを正しく入れていることを認識し、かつステッ
プS1からステップS4を正しく実行していることを以下の
手順により確認する。
ステップS6:銀行は利用者に対し開示要求するk/2組の
情報(Si,Ri,ri,r′i,Li,Ni)を指定するijグループU
=(j=1,…k/2)を決め、そのijグループU={ijj
=1,…,k/2}を利用者に送る(以下ではi=1,…,k/2)
が未開示と仮定して説明する)。
ステップS7:利用者は、銀行から開示要求を受信する
と、銀行の指定するiに対応するk/2組の{Si,Ri,ri,
r′i,Li,Ni}を銀行に送る。
銀行は、iが開示対象の時、次のステップS8〜S10の手
順を行う。
ステップS8:iを開示対象とした時、Si中の所定の位置に
IDpが入っていることを確認し、利用者200から受信した
{Si,Ri,Li,Ni}から、剰余べき乗計算器(MOD-POWER)
111及び121を用いて、 V′i=▲SLi i▼ mod Ni X′i=▲RLi i▼ mod Ni を計算する。
ステップS9:剰余べき乗計算器111,121の出力V′i,X′
i、受信したri,r′iと公開鍵eとnから、剰余乗算・べ
き乗計算器(MOD-MUL/POWER)112,122を用いて、 W′i=▲re i▼×V′i mod n Z′i=▲re i▼×X′i mod n を計算する。
ステップS10:メモリ101内の値Wiと剰余乗算・べき乗計
算器112の出力W′iを比較器(COMP)113において比較
する。またメモリ102内の値Ziと剰余乗算・べき乗計算
器122の出力Z′iを比較器(COMP)123において比較す
る。
このように銀行は、k/2個のすべてのiについて検査し
て、いずれかの検査に不合格のときには、以降の処理を
中止する。すべての検査に合格のときには、銀行は利用
者の口座から該当する金額を引き落とすか、利用者から
該当する金額を受領すると、開示対象でないiに対して
次の手順を行う。
ステップS11:公開鍵nと秘密鍵dとメモリ101,102上の
Wi,Ziから、剰余べき乗計算器(MOD-POWER)131,141を
用いて、次式で表わされる署名付攪乱利用者情報Ωi
署名付攪乱認証用情報Θiをそれぞれ計算し、ΩiとΘi
を利用者に送る。
Ωi=De(Wi)=▲Wd i▼ mod n …(13) Θi=De(Zi)=▲Zd i▼ mod n …(14) ここで、式(13),(14)で表わされる処理が銀行がWi
とZiに対し行った署名であり、Deを署名関数と呼ぶ。剰
余すべき乗計算器131,141は署名器10Aを構成する。
ステップS12:利用者は、銀行からΩiとΘiを受信する
と、ΩiとΘiから攪乱乱数riとr′iの影響を取り除い
て、銀行の署名の跡が残っている署名付利用者情報Bvi
と署名付認証用情報Bxiを計算するために銀行から受信
したΩi,Θiと乱数発生器226の生成した攪乱乱数ri,
r′iと公開鍵nから、剰余除算器(MOD-DIV)231,232を
用いて、 Bvi=He{ri,Ωi}=Ωi/ri mod n …(15) Bxi=He{r′i,Θi}=Θi/r′i mod n …(16) を計算する。
ここで式(15)に式(11)と(13)を代入し、式(16)
に式(12)と(14)をそれぞれ代入すると次式が成立す
る。
Bvi=He{ri,Ωi}≡▲re×d ▼×▲Vd i▼/ri
▲Vd i▼ mod n=De(Vi) Bxi=He{r′i,Θi}≡▲r′e×d ▼×▲Xd i▼/
r′i≡▲Xd i▼ mod n=De(Xi) 上記2つの式は銀行から受信した署名付攪乱利用者情報
Ωiと署名付攪乱認証用情報Θiを関数Heで処理すると、
銀行がVi,Xiに対し直接署名関数Deにより処理を行った
結果De(Vi),De(Xi)が得られることを示している。
即ち、関数HeはΩi,Θiから攪乱乱数ri,r′iの影響を
除去する。この攪乱乱数ri,r′iの影響を除去する処理
をブラインド署名後処理と呼び、関数Heを後処理関数と
呼ぶ。除算器231と232はブラインド署名後処理器20Bを
構成している。利用者は情報の組{Vi,Bvi,Xi,Bvi}を
電子現金として使用する。
次に、利用者が電子現金を用いて小売店で支払いをする
場合について説明する。利用者と小売店との間の処理手
順例を第2B図に示す。また、小売店200のブロック構成
を第5図に示す。
ステップS13:利用者は電子現金{Vi,Bvi,Xi,Bxi}とパ
ラメータ情報{Ni,Li}を小売店に送る。
ステップS14:小売店は電子現金{Vi,Bvi,Xi,Bxi}と情
報{Ni,Li}を受信すると、それらをメモリ(MEM)301
に記憶すると共に剰余べき乗計算器(MOD-POWER)311,3
12を使用して次の検証式VHe V′i=VFe{Bvi}=▲Be vi▼ mod n X′i=VFe{Bxi}=▲Be xi▼ mod n を計算する。
ステップS15:比較器(COMP)313,314によりそれぞれk/
2個の計算結果V′i,X′iと利用者から受けたVi,Xiがそ
れぞれ互いに等しいか検査する(i=1,…,k/2)。これ
によって署名付利用者情報Bvi及び署名付認証用情報Bxi
に付けられている署名は確かに銀行の署名であるか判定
できる。
ステップS16:k/2個の検出に合格すると、乱数発生器(R
ANDOM GEN)321を使用して乱数γiをk/2個生成してメモ
リ301に記憶して、店のIDv、時間t、乱数γiを問い合
わせ文qiとして利用者に送信する。同時に、公開された
一方向性関数fを計算するf−計算器(f−CAL)322を
用いて、 Ei=f(IDv,t,γi) を計算する。以後では0<Ei<Liが成り立つものとす
る。
ステップS17:利用者は、小売店からqi={IDv,t,γi
を受信すると、公開された一方向性関数f−計算器(f
−CAL)241を用いて、 Ei=f(qi)=f(IDv,t,γi) を計算する。
ステップS18:連結器213の出力Si、乗算器222の出力
Ni、乱数発生器224の出力Riおよびf−計算器241の出力
Eiを剰余乗算・べき乗計算器(MOD-POWER)242に入力し
て一方向性関数である次式により Yi=Ri×▲SEi i▼ mod Ni …(17) 応答文Yiを計算して、小売店に送信する(i=1,…,k/
2)。
ステップS19:小売店は利用者から応答文Yiを受信する
と、Yiの正当性を、剰余乗算・べき乗計算器(MOD-MUL/
POWER)331を用いて、 Ai=Xi×▲VEi i▼ mod Ni …(18) を計算し剰余べき乗計算器(MOD-POWER)332を用いて、 A′i=▲YLi i▼ mod Ni …(19) を計算する。
ステップS20:比較器(COMP)333を用いてAiとA′i
一致することを確認する。(i=1,…,k/2)。
ここで、剰余べき乗計算器311,312、比較器313,314は利
用者情報Viと認証用情報Xiの正当性を検査する検査器30
Aを構成し、f−計算器322、剰余乗算・べき乗計算器33
1、剰余べき乗計算器332及び比較器333は応答文Yiの妥
当性を検査する検査器30Bを構成する。上述では各ステ
ップS16〜S20においてすべてのi(i=1,…,k/2)につ
いての処理を行うように説明したが、各iについてステ
ップS16〜S20を繰返すように処理を行ってもよい。
最後に、小売店と銀行との間の決済方法について説明す
る。小売店と銀行との間の処理手順例を第2C図に示す。
ステップS21:小売店は、後日、メモリ301内の電子現金
情報{Vi,Xi,Bvi,Bxi}と、パラメータ情報{Ni,Li
と、問い合せ文{IDv,t,γi}と応答文Yiを銀行に提出
する(i=1,…,k/2)。
ステップS22:銀行は小売店から{Ni,Li,Vi,Xi,Bxi,
Bvi,IDv,t,γi,Yi}を受信すると、公開鍵eとnを剰余
べき乗計算器(MOD-POWER)151,152に入力して、 次の検証式VFe V′i=VFe{Bvi}=▲Be vi▼ mod n X′i=VFe{Bxi}=▲Be xi▼ mod n を計算する。
ステップS23:計算したV′i,X′iが受信したVi,Xiとそ
れぞれ等しいか比較器(COMP)156,157により検査する
(i=1,…,k/2)。これらが等しければBvi,Bxiに示さ
れている署名は確かに銀行のものであると判定する。従
って署名が付けられている情報Vi,Xiも信頼できるもの
であると判定する。
ステップS24:すべての検査に合格すると、公開された
一方向性関数fを計算するf−計算器(f−CAL)153を
用いて、 Ei=f(IDv,t,γi) を計算して、剰余乗算・べき乗計算器(MOD-MUL/POWE
R)154を用いて、 Ai=Xi×▲VEi i▼ mod Ni を計算し、剰余べき乗計算器(MOD-POWER)155を用い
て、 A′i=▲YLi i▼ mod Ni を計算する。
ステップS25:比較器(COMP)158を用いてAiとA′i
一致することを確認する(i=1,…,k/2)。これによっ
てEiとYiも信用できるものであることがわかる。
ステップS26:小売店から提出された{Ni,Li,Vi,Xi,Ei,
Yi}(i=1,…,k/2)をメモリ(MEM)161に記憶して、
店IDvの口座へ該当する金額を払い込む。
以上では、高次根のべき乗根の計算の困難性に基づく対
話型の認証方式に基づく方式について実現例を説明した
が、M.Tompa and H.Wollの“Randam Self-Reducibility
and Zero Knowledge Interactive Proofs of Prossess
ion of Information"The Proc.of FOCS,1987 pp.472-48
2で示されているような他の対話型の証明方式において
も同様の方式が実現できる。
なお、一般に対話型の認証方式は、健全性(1組のVi
Xiに対して2組の正しいEiとYiが求まるとき、Viに対応
する秘密情報Siが計算できる)を満たすので、ViとXi
同じ組を2回以上使用すると、利用者のIDpが露見す
る。
次に電子現金の不正な二重使用の検出について証明す
る。
前述のように利用者200が小売店300に対し電子現金を使
用すると、小売店300は問い合わせ文qi={IDv,t,γi
を利用者200に与える。この問い合わせ文qiの内容とし
ては識別情報IDv,時間t及び乱数γiが使われているの
で、異なる小売店ではIDvが異なり、同じ小売店でも時
間が異なればtが異なる。従って利用者が同一電子現金
を不正に2回使用するとそれらに対し小売店から与えら
れる問い合わせ文{IDv,t,γi}の内容のいずれかは必
ず異っているのでEi=f(IDv,t,γi)も異なると期待
できる。従って式(17)から明らかなようにそれに対す
る応答文Yiも異なる。その結果、電子現金が2回使用さ
れると銀行は1回目と2回目の同一のViとXiの組に対し
異なる2組のEiとYiを得ることになる。これら2組を
(Ei,Yi)、(E′i,Y′i)とするとこれらはいずれも
ステップS19,S20の検査式(18),(19)を満足したの
で次式 ▲YLi i▼≡Xi・▲VEi i▼(mod Ni) …(20) ▲Y′Li i▼≡Xi・▲VE′i i▼(mod Ni) …(21) が成り立つ。これらから が得られ、更に▲SLi i▼≡Vi(mod Ni)が成立つので
次式が得られる。
ここで、Liが素数なのでLiとEi−E′iが互いに素とな
り α×L+β×(Ei−E′i)=1 …(24) を満足する整数αとβを、ユークリッドの互除法を用い
て計算することができる。従って となるのでSiを計算できる。秘密情報Siは裸のIDpを含
んでいるので、電子現金を不正使用した利用者を特定す
ることができる。
上述の二重使用検出手順は例えば第2C図のステップS25
とS26の間に挿入され、その手順を第2D図と第4図を参
照して説明する。
ステップSC1:銀行は受信した(Vi,Xi)と同じものがメ
モリ161の中にあるか探して、無ければ第2C図のステッ
プS26に行き、有れば次に進む。
ステップSC2:既にメモリ161内に記憶されている(Vi,X
i)と対応する(E′i,Y′i)を読出す。
ステップSC3:ユークリッドの互除法計算器(EUCLID'S
ALGORITHM)172を用いて式(19)を満足するαとβを求
める。
α×L+β(Ei−E′i)=1 ステップSC4:剰余除算器(MOD-DIV)171にYi,Y′i及び
Niを入力してYi/Y′i mod Niを計算し、その結果をα,
β及びNiを剰余乗算・べき乗器(MOD-MUL/POWER)173に
入力して前式(25)を計算してSiを得る。
ステップSC5:Siの中からIDpを取出す。
以上説明したようにこの発明によれば利用者のIDpを裸
のまま含む秘密情報Siをもとに作成した情報Viと乱数情
報Riをもとに作成された情報Xiは互いに別々にブライン
ド署名前処理(第2A図のステップS4)を受けるのでChau
m等の一方向性関数f(xi,yi)に要求されるような2成
分の不干渉性条件の問題が無い。逆に言えばChaum等の
電子現金スキームにおいては同一の一方向性関数fに乱
数にもとづく情報xiとIDにもとづく情報yiの両方のパラ
メータを含んでいる事と、しかも情報yiはその乱数によ
ってIDと関連づけられている事、即ちyiはxiに関連づけ
られている事が不干渉性の問題を作り出していると言え
る。
ところで今述べたように{Vi,Wi}と{Xi,Zi}は互いに
独立して処理されており、また式(13)及び(14)によ
るブラインド署名の結果得られる情報ΩiとΘiも互いに
独立して処理されている。更にこれらに対し式(15),
(16)により後処理をして得られる署名付情報BviとBxi
も互いに独立して処理されている。つまり利用者が電子
現金の発行を要求してから電子現金を得るまでの処理過
程においては情報系列{Vi,Wi,Ωi,Bvi}と情報系列
{Xi,Zi,Θi,Bxi}は互いに独立して処理されている。
利用者が第2B図の電子現金を使用する処理過程におい
て、小売店からの質問に応答するための応答文Yiをステ
ップS17で作成する段階で初めて秘密情報Siと乱数情報R
iが1つの関数で関係づけられる。この事実は第2A図に
示す処理過程における情報系列{Vi,Wi,Ωi,Bvi}に関
する処理と情報系列{Xi,Zi,Θi,Bxi}に関する処理を
互いに分離し、互いに異なる時間及び状況において実行
してもよいことを意味している。このことを利用したの
が次に第6A〜6D図及び第7A〜7D図を参照して説明する第
2の実施例である。
〔第2実施例〕 第2の実施例においては利用者からの要求により銀行は
利用許可証を1回発行し、利用者は電子現金を銀行に発
行してもらう場合は、いつでもその利用許可証と乱数情
報から生成した情報を銀行に提示してそれに証明させる
ことにより電子現金発行の処理手順を簡素化している。
この利用許可証の発行手順において先に述べた秘密情報
Siに関連する情報系列{Vi,Wi,Ωi,Bvi}に対応する情
報系列が生成され、こうして発行された利用許可証にも
とづいて電子現金を発行する手順において先に述べた乱
数情報Riに関連する情報系列{Xi,Zi,Θi,Bxi}に対応
する情報系列が生成される。ここでは簡便化された手順
により発行される電子現金を電子コインと呼びCで表わ
すことにする。
まず、第6A図の処理フローと第7A図の装置機能ブロック
図を参照して銀行100に口座を開設した利用者200が、利
用許可証を銀行100より発行してもらう場合について説
明する。ここでIDpは利用者200の口座番号等の識別情報
とする。
銀行100は利用許可証に対応する情報として、ブライン
ド署名で用いる秘密鍵dAおよび公開鍵eAの対を作成して
おき、eAを公開しておく。ここで、すでに証明したよう
にブラインド署名によれば、ある文書Mに銀行100のブ
ラインド署名をつけてもらいたい利用者200が銀行100の
ブラインド署名用の公開鍵eAと攪乱乱数rを用いたブラ
インド署名前処理関数W=FeA(r,M)によって文書Mを
攪乱して他人に読めない攪乱文書Wとし、それを銀行10
0に送る。銀行100は秘密鍵dAを用いたブラインド署名作
成処理Ω=DeA(W)により攪乱文書Wに署名(ブライ
ンド署名)し、その署名付攪乱文書Ωを利用者200に送
る。Ωを受け取った利用者200は、Wを作成するときに
用いた攪乱乱数rを使って乱数除去関数HeA(Ω)によ
りΩの中の攪乱乱数rの影響を除去することにより銀行
の署名の跡が付いた文書である署名付文書DeA(M)を
得ることができる。ここで、攪乱処理のためのFeAは一
方向性関数であるブラインド署名前処理関数、DeAはブ
ラインド署名作成関数、乱数成分除去処理のためのHeA
はブラインド署名後処理関数、DeA(M)は公開鍵eA
対応した銀行の署名付文書を意味する。ブラインド署名
の実現方法は、前述のRSA暗号を用いたChaumの方法およ
びこの出願の発明者等の特願昭63-156020に示されてい
る方法のいずれのブラインド署名を用いてもよい。
利用者200は自分の識別情報IDpを裸のまま埋め込んだ秘
密情報Siからこの実施例で利用者情報と呼ぶViを生成
し、利用者200は銀行100にブラインド署名技法を用いて
Viに署名をつけさせる。この署名の付いたVi、即ちDeA
(Vi)を利用許可証と呼ぶ。ここで、ブラインド署名を
用いる理由は、小売店300と銀行100が結託しても利用者
200のプライバシィを保障できるようにするためであ
る。
第6A図に示す利用者200が銀行100から利用許可証を発行
してもらう手順をその処理手順に係わる第7A図に示す利
用者200と銀行100のブロック構成図を参照して説明す
る。以下では、i=1,…,kとする。
ステップS1:利用者200は乱数発生器(RANDOM GEN)203
を用いて乱数aiを生成してIDpと共に連結器(CONC)204
に入力し、その出力IDp‖aiを署名生成器(DIG SIG GE
N)218に入力し、 gi=G(IDp‖ai) …(26) を求める。
ステップS2:署名生成器218の出力を(IDp‖ai)と共に
連結器204に入力して秘密情報 Si=IDp‖ai‖gi …(27) を求めてメモリ211に記憶する。また素数発生器(PRIME
GEM)201を用いてk対の素数(Pi,Qi)を生成して、乗
算器(MUL)202を用いてPiとQiの積Niを求めて記憶す
る。
ステップS3:素数発生器(PRIME GEN)213により素数Li
(例えば3以上の素数)を発生し、LiとSi,Niから剰余
べき乗器(MOD-POWER)205を用いて、利用者情報 Vi=▲SLi i▼ mod Ni …(28) を計算してLiとViをメモリ(MEM)211に記憶する。
ステップS4:Ni,Vi,Liを連結器(CONC)206に入力し、
その出力Mi=(Ni‖Vi‖Li)を銀行100が公開した利用
許可証作成のための鍵eAと共にブラインド署名前処理器
(BSPRE-PROCESS)207に入力し、攪乱利用者情報 Wi=FeA(ri,Mi) …(29) を求め、銀行100に送る。ここでブラインド署名前処理
関数FeAはRSA暗号方式を使ったChaumの式(1)と同様
でもよく、この出願の発明者等の特願昭63-156020に提
案したものでもよい。
次に、銀行100は利用者200にk/2組の{Si,Li,Pi,Qi,
ri}を開示させて、利用者200が各秘密情報Siに本人の
識別情報IDpを正しく入れていることを確認し、かつス
テップS1からステップS4を正しく実行していることを以
下の手順で確認する。
ステップS5:銀行100はランダム選択器(RANDOM SEL)1
01を用いて1乃至kのi中からランダムにk/2個の異な
るiを選び、そのiの組を開示要求U={ij|j=1,…,k
/2}として利用者200に送信する。ここでは、表記を簡
単にするため銀行100がk/2+1,k/2+2,…,kをiとして
選んだとする。従ってi=1,…,k/2は開示対象でない。
ステップS6:利用者200は銀行100から開示要求Uを受信
すると、開示制御器(DISCLOSURECONT)208を用いて銀
行100の指示するk/2組の{Si,Li,Pi,Qi,ri}を開示す
る。ここで、riはステップS4でWiを作成するためにブラ
インド署名前処理関数FeAに用いた攪乱乱数である。
ステップS7:銀行100はiが開示対象の時、つまりk/2+
1≦i≦kの時、Si中の所定の位置にIDpが入っている
ことを確認し、利用者200より受信した{Si,Li,Pi,Qi,r
i}から乗算器(MUL)102を用いてNi=Pi×Qiを求め、
剰余べき乗計算器(MOD-POWER)105を用いて、 Vi=▲SLi i▼ mod Ni …(30) でViを計算する。
ステップS8:剰余べき乗計算器105の出力Vi、受信したr
iと公開鍵eAから連結器(CONC)104およびブラインド署
名前処理器(BS PREPROCESS)107を用いて W′i=FeA{ri,(Ni‖Vi‖Li)} でW′を計算する。
ステップS9:前に受信したWiの値とW′iの値を比較器
(COMP)106で比較し、一致すれば合格とし、不合格の
場合は処理を中断する。
銀行100は個のようにしてk/2個のすべてのiについて上
記の検査を行い、いずれかの検査に不合格のときには以
降の処理を中止する。すべての検査に合格のときは、銀
行100は開示対象でないi(i=1,…,k/2)に対して次
の署名手順を行う。
ステップS10:Wiと銀行100のブラインド署名用の秘密鍵
dAをブラインド署名生成器(BSGEN)108に入力し、次式
のブラインド署名 Ωi=DeA(Wi) …(31) を求めて利用者200に送る。関数DeAは銀行の署名関数で
あり、例えばRSA暗号方式を使ったChaumの式(2)と同
様のものでよい。
ステップS11:利用者200は銀行100からブラインド署名
Ωiを受信すると、そのブラインド署名Ωiとブラインド
署名前処理(ステップS4)において使用した攪乱乱数ri
と公開鍵eAからブラインド署名後処理器(BS POST-PROC
ESS)209を用いて Bi=HeA(ri,Ωi) …(32) を計算することによりΩiから攪乱乱数riの影響を除去
する。この関数HeAはChaumの式(3)と同様のものでよ
い。式(32)により得られる署名付利用者情報Biは次式 Bi=DeA(Mi) …(33) を満足しているのはChaumの式(5)と同様である。従
って式(32)で得られるBiは銀行が公開鍵eAに対応する
秘密鍵dAを使って利用者情報Viを含む文書Mi=(Ni‖Vi
‖Li)に直接署名したものと同じである。利用者200は
このようにして得られた署名付利用者情報Biを電子コイ
ンの利用許可証として以後何回でも使用することができ
る。
尚上述のステップS10ではk/2個のWiについてそれぞれ別
々のΩiを得て、ステップS11においてk/2個のBiを得た
が、次のようにメッセージM1,…,Mk/2に対し一括して
署名を付けるように処理することも可能である。即ち、 ステップS′10:銀行100は、開示対象でないk/2個のi
(i=1,…,k/2)のすべての攪乱利用者情報Wiを多重化
した多重化攪乱利用者情報に対し1つのブラインド署名
Ωを次式 Ω=DeA(W1,…,Wk/2) …(31′) により計算して利用者200に送る。
ステップS′11:利用者200は銀行100から受けたΩと乱
数riと公開鍵eAとからブラインド署名後処理器209を用
いて1つの署名付利用者情報Bを次式 B=HeA(r1,…,rk/2,Ω) …(32′) により計算する。この式(32′)によって得られる署名
付利用者情報は次式 B=DeA(M1,…,Mk/2) …(33′) を満足する。
式(31′),(32′),(33′)が成立するような関数
DeA,HeAは例えばRSA暗号方式を使ったChaumのブライン
ド署名における前述の式(1),(2)及び(3)を次
のようにそれぞれ変形することによって実現できる。
このように関数をそれぞれ求めると次式が成立する。
以下の説明において上述のように利用許可証が一括署名
により作られた1つのピースBから成る場合についての
式にはその番号にダッシュをつけて示すが、図に示す処
理手順及び機能ブロック図はk/2ピースのBiから成る利
用許可証を使用する場合のみを示してある。
次に利用者200が銀行100から電子コインを発行してもら
う手順を示す。この手順においては、利用者200は乱数
情報Riにもとづく認証用情報Xiを作成し、これに利用許
可証Biを連結した情報に対し銀行100の署名を付けても
らい電子コインとして使用する。この場合にもその署名
にはブラインド署名技法を使う。まず、銀行100は電子
コインの金額に対応する情報として、ブラインド署名で
用いる秘密鍵d′Aおよび公開鍵e′Aの対を作成してお
き、公開鍵e′Aを公開しておく。ここで、銀行100と利
用者200の間の処理手順例を第6図B図に示す。利用者2
00および銀行100のブロック構成図を第7B図に示す。以
下ではi=1,…,k/2とする。
ステップS12:利用者200は乱数発生器(RANDOM GEN)21
4を用いて生成した乱数情報Riとメモリ(MEM)211より
取り出したパラメータ情報NiとLiから剰余べき乗器(MO
D-POWER)215を用いて、認証用情報 Xi=▲RLi i▼ mod Ni …(34) を計算し、XiとRiをメモリ211に記憶する。
ステップS13:i=1,…,k/2のすべてについて、Xiとメモ
リ211より取り出した利用許可証Biを連結器(CONC)216
に入力して連結し、その出力 m=X1‖…‖Xk/2‖B1‖…‖Bk/2 …(35) 又は一括署名による1ピース利用許可証Bを用いる場合
に m−Xi‖…‖Xk/2‖B …(35′) を電子コインの金額に対応する公開鍵e′Aと乱数rpと
共にブラインド署名前処理器(BS PRE-PROCESS)217に
入力し、その出力である攪乱認識用情報 Z=Fe′A(rp,m) …(36) を計算し、電子コインの金額情報と共に銀行100へ送
る。
ステップS14:Zを受信した銀行100は、Zと電子コインの
金額に対応する秘密鍵d′Aとをブラインド署名生成器
(BS GEN)109に入力し、署名付攪乱認証用情報 Θ=De′A(Z) …(37) を求め、それを利用者200に送付する。同時に利用者200
の口座から該当する金額を引き落すか、利用者200から
該当する金額を受領する。
ステップS15:銀行100より署名付攪乱認証用情報Θを受
信した利用者200はブラインド署名前処理器217で用いた
攪乱乱数rpと銀行100より受信した情報Θおよび公開鍵
e′Aをブラインド署名後処理器(BS POST-PROCESS)21
9に入力し、次式 C=He′A(rp,Θ) …(38) を計算し、メモリ211に記憶する。式(38)の計算結果
は、次式 He′A(rp,Θ)=De′A(m) …(39) を満足する。即ちCは銀行が情報mに直接署名を付けた
ものと等価である。このようにして得られたCを電子コ
インとして使用する。
次に、利用者200が電子コインCを用いて小売店300で支
払いをする場合について説明する。利用者200と小売店3
00の間の処理手順例を第6C図に示す。小売店300と利用
者200のブロック構成図を第7C図に示す。以下ではi=
1,…,k/2とする。
ステップS16:利用者200はメモリ(MEM)211より取り出
した電子コインC、利用許可証Bi、利用者情報Vi、認証
用情報Xi、パラメータ情報Ni,Liを小売店300に送信す
る。
ステップS17:小売店300はディジタル署名検査器(DIG
SIG VERIFIER)319A,319Bを用いて公開鍵e′Aにより利
用許可証Biに示されているMi=(Ni‖Vi‖Li)に対する
銀行の署名の正当性と、公開鍵e′Aにより電子コイン
Cに示されているm=(X1‖…‖Xk/2‖B1‖…‖Bk/2
に対する銀行の署名の正当性をそれぞれ次の検証式VFeA
が成立するか計算して検査する。この検査が不合格の時
は以降の処理を中止する。
(Ni‖Vi‖Li)=VFeA{Bi}=▲BeA i▼ mod n …(4
0) (X1‖…‖Kk/2‖B1‖…‖Bk/2)= VFe′A{C}=Ce′A mod n …(41) (X1‖…‖Xk/2‖B)=VFe′A{C}=Ce′A mod n
…(41′) ステップS18:小売店300はタイマ(TIMER)321より取り
出した時刻t、乱数発生器(RANDOM GEN)303より取り
出した乱数値γiおよび小売店300の識別情報IDvを問い
合せ文qiとして利用者200に送付し、これらの情報にも
とづく所定の応答を要求する。それと共にそれらの情報
を使って一方向性関数器(f−CAL)322により Ei=f(qi)=f(IDv,t,γi) …(42) を計算する。
ステップS19:利用者200は受信したIDv,t,γiを一方向
性関数器(f−CAL)221へ入力して同様の計算f(IDv,
t,γi)をし、その出力値Eiとメモリ211より取り出した
情報Si,Niを使って剰余べき乗器(MOD-POWER)222によ
りyi=▲SEi i▼ mod Niを計算し、その結果yiとメモリ
211から読出したRi,Niを使ってYi=yi×Ri mod Niを剰
余乗算器(MOD-MUL)223を用いて計算し Yi=Ri・▲SEi i▼ mod Ni …(43) を得る。このYiを応答文として小売店に送信する。
ステップS20:小売店300は一方向性関数器322の出力値E
iと先に利用者200から与えられたNi,Viから剰余べき乗
器(MOD-POWER)304によりyi=▲VEi i▼ mod Niを計算
し、更にその結果yiとXi mod Niの剰余乗算を剰余乗算
器(MOD-MUL)313によって行いXi×▲VEi i▼ mod Ni
得る。一方、受信したYiおよびLi,Niを剰余べき乗器(M
OD-POWER)305に入力し、▲YLi i▼ mod Niを計算し、
その結果と剰余乗算器313の出力を比較器(COMP)306に
入力し、 ▲YLi i▼≡Xi・▲VEi i▼(mod Ni) …(44) が成立するかどうかを検査する。この検査に合格すれば
小売店300はその電子コインCを正当なものとみなしそ
れを受け取る。
最後に、小売店300と銀行100の間の決済方法について説
明する。小売店300と銀行100間の処理手順例を第6D図に
示す。銀行100と小売店300のブロック構成図を第7D図に
示す。
ステップS21:小売店300は、後日メモリ(MEM)311内の
{Ni,Li,Vi,Xi,Bi,Yi,C,IDv,t,γi}(i=1,…,k/2)
を銀行100に提出して、銀行100から該当する金額の支払
いを受ける。
ステップS22:銀行100は小売店300からの情報を受ける
とディジタル署名検査器(DIG SIG VERIFIER)119A,119
Bを用いて公開鍵eAにより利用許可証Biに示されているM
i=(Ni‖Li‖Vi)に対する銀行の署名の正当性を、ま
た公開鍵e′Aにより電子コインCに示されているm=
(X1‖…‖Xk/2‖B1‖…‖Bk/2)に対する銀行の署名の
正当性をそれぞれ式(40)及び(41)が成立するかによ
り検査する。又は1ピース利用許可証Bを使う場合は式
(40′)及び(41′)で検査する。この検査にパスした
時のみ次のステップに進む。
ステップS23:IDv,t,γiを一方向性関数器(f−CAL)1
12へ入力し、その出力値Ei=f(IDv,t,γi)を求め
る。剰余べき乗器(MOD-POWER)113を使ってYi,Ni,Li
ら▲YLi i▼ mod Niを計算する。また剰余べき乗算器
(MOD-POWER)114を使ってEi,Vi,Niから▲VEi i▼ mod
Niを計算し、更に剰余乗算器(MOD-MUL)115を使って剰
余べき乗器114の出力とNi,XiからXi・▲VEi i▼ mod Ni
を計算する。剰余べき乗器113及び剰余乗算器115の出力
結果は比較器(COMP)116に入力され、 ▲YLi i▼≡Xi・▲VEi i▼(mod Ni) が成立するかどうかを検査する。
ステップS24:以上の検査に合格すれば利用者200から提
出された{Ni,Li,Vi,Xi,Bi,i,C,IDv,t,γi}(i=1,
…,k/2)をメモリ(MEM)111に記憶して、小売店300の
口座(IDv)へ該当する金額を払い込む。
以上では、高次根のべき乗根の計算の困難性に基づく対
話型の認証方式(特願昭63-36391号)に基づく方法につ
いて実施例を説明したが、他の対話型の認証方式におい
ても同様の方式が実現できる。
なお、対話型の認証方式は健全性(同一のViとXiの組に
対して2個の正しいYiが求まるとき、Viに対応する秘密
情報Siが計算できる)をみたすので、同一の電子コイン
を2回以上使用すると利用者のIDpが露見する。つま
り、利用者が不正に電子コインを2回使用すると第1実
施例における第2D図で説明した場合と同様に同一のVi
Xiの組に対して検査式(44)を満たす2組の(EiとYi
と(E′i,Y′i)が得られるので、 (Yi/Y′iLi≡Vi Ei−E′i(mod Ni) が成立し、これより (Yi/Y′i)≡Si Ei−E′i(mod Ni) が得られる。一方、 ▲SLi i▼=Vi mod Ni が成り立つ。ここでLiは素数でありLiとEi−E′iが互
いに素となるのでSiが計算できる。Siは利用者200のIDp
を裸のまま含んでいるので、不正な利用者がばれる。
以上詳細に説明したように、第2の実施例も第1の実施
例と同様に、(a)利用者のプライバシィを保障でき
る、(b)二重使用を検出できる、とう特徴を備えてい
る。(a)についてはブラインド署名を利用しているの
で、利用者の消費動向等のプライバシィを守ることがで
きる。(b)については電子コインが2回以上使用され
ると対話型の認証方式の性質によって利用許可証を生成
するときに用いた秘密情報が露見する。
ところで、利用許可証を発行する時にはk個のデータを
銀行に送り、銀行はその中からk/2個のものを選びそれ
らをそれぞれ作成するのに使用したk/2組のパラメータ
を開示させるという手段が必要であり、処理上の負担が
大きい。しかし、この発明ではこの処理は利用者が口座
を開設する時のみである。それに対し、電子コインを発
行する処理は比較的頻度が多いと思われるが、その発行
処理は基本的に1回のブラインド署名作成手順を行うの
みでよく、処理上の負担が少ない。ところが、第1の実
施例では利用許可証と電子コインが一体化した電子現金
として扱われているので、各電子現金の発行手順におい
てk個のデータを銀行に送り、その中からk/2個のもの
を選び開示させるという手順が必要であり処理上の負担
が大きい。
上述のように第2の実施例においては銀行が最初に発行
した利用許可証Bi(i=1,…,k/2)又はBを使って任意
の時に電子コインCの発行を簡便に何回でも実行でき
る。このように利用許可証の発行と電子コインの発行を
分離したこの発明の方法による電子コインは更に便利な
いくつかの使用形態が可能である。第1の使用形態は電
子コインを他の利用者に譲渡することである。第2の使
用形態は同じ電子コインを複数回使用することである。
第3の使用形態は電子コインを他の利用者に譲渡したり
複数回使用したりすることである。以下に第2の実施例
においてこれらの機能を実施する電子コインについて説
明する。
〔電子コインの譲渡〕
利用者200aが第6B図の処理手順で発行された電子コイン
Cを利用者200bに譲渡する場合について説明する。ただ
し利用者200bも利用者200aと同様な手順で銀行から得た
利用許可証を有しているものとする。利用者200aと利用
者200bの間の処理手順の例を第8A図に示す。利用者200a
と利用者200bのブロック構成図を第9A図に示す。以下で
は、i=1,2,…,k/2とする。なお、以下で記号の上に∧
のついた変数はすべて譲り受け人である利用者200bに関
するものである。また、変数の意味は特に断わらない限
り、これまでに定義した意味に従うものとする。
ステップS1:利用者200aはメモリ(MEM)211より取り出
した利用許可証Bi又はB,電子コインC,利用者情報Vi,認
証用情報Xi,パラメータ情報Ni,Liを利用者200bに送信
する。
ステップS2:利用者200bはディジタル署名検査器(DIG
SIG VERIFIER)519A,519Bを用いて公開鍵eAにより利用
許可証Biに示されているMi=(Ni‖Vi‖Li)に対する銀
行の署名の正当性を、また公開鍵e′Aにより電子コイ
ンCにて示されているm=(X1‖…‖Xk/2‖B1‖…‖B
k/2)に対する銀行の署名の正当性をそれぞれ次式の検
証式(45),(46)が成立するか計算して検査する。1
ピース利用許可証Bを使う場合は式(45′)及び(4
6′)により検査する。この検査が不合格のときは以降
の処理を中止する。
(Ni‖Vi‖Li)=VFeA{Bi}=▲BeA i▼ mod n …(4
5) (X1‖…‖Xk/2‖B1‖…‖Bk/2)=VFe′A{C}=C
e′A mod n …(46) (X1‖…‖Xk/2‖B)=VFe′A{C}=Ce′A mod n
…(46′) ステップS3:譲渡人である利用者200aから送ってきた利
用者情報Vi及び認証用情報Xiが確かに譲渡人自身のもの
であるかを確認するため利用者200bは乱数発生器(RAND
OM GEN)503より取り出した値εiを質問文として利用者
200aへ送付する。
ステップS4:利用者200aは受信したεiとメモリ(MEM)
211より取り出した自分の情報Si,Niより剰余べき乗器
(MOD-POWER)222を使って▲Sεi i▼ mod Niを計算
し、その結果とメモリ211から読出したRi,Niから剰余乗
算器(MOD-MUL)223を用いて Yi=Ri・▲Sεi i▼ mod Ni を求め、Yiを応答文として利用者200bに送信する。
ステップS5:利用者200bはεiと受信したVi,Niを剰余べ
き乗器(MOD-POWER)504に入力して ▲Vεi i▼ mod Ni を計算し、この結果と受信したXiとNiを剰余乗算器(MO
D-MUL)513に入力して Xi・▲Vεi i▼ mod Ni を計算し、一方、受信したYi,LiとNiを剰余べき乗器(M
OD-POWER)505に入力して ▲YLi i▼ mod Ni を計算し、この結果と剰余乗算器513の出力を比較器(C
OMP)506に入力して、一致するかどうかを検査する。一
致すればVi,Xiは譲渡人200a自身のものであると判定す
る。
ステップS6:譲り受人である利用者200bは自分の利用許
可証1,…,k/2(又は)に譲渡人200aの署名を付
けてもらうために1,…,k/2(又は)を利用者20
0aに送る。
ステップS7:譲渡人200aは送られてきた1,…,k/2
(又は)に例えば次式(47)又は(47′)のディジタ
ル署名関数を計算する署名器(DIG SIG GEN)233を使っ
て自分の署名を付けて譲渡証Tとして譲り受人200bに送
り返す。
T=(1‖…‖k/21/3 mod Ni …(47) T=1/3 mod Ni (47′) ただしNiは1≦i≦k/2の範囲のあらかじめ決めた1つ
のiについての値を使用する。
ステップS8:利用者200bは利用者200aの公開鍵Niと受信
したTをディジタル署名検査器(DIG SIG VERIFIER)51
9Cに入力してTの正当性を次式が成立するかにより検査
する。ただしNiは上述のあらかじめ決めた1つのiに対
する値である。
1‖…‖k/2)=T3 mod Ni …(48) =T3 mod Ni …(48′) この検査に合格すれば利用者200bはその電子コインCを
正当なものとみなしそれを受け取る。
次に、両者200bが利用者200aより譲渡された電子コイン
を用いて小売店300で支払いをする場合について説明す
る。利用者200bと小売店300の間の処理手順例を第8B図
に示す。小売店300と利用者200bのブロック構成図を第9
B図に示す。以下ではi=1,…,k/2とする。
ステップS9:利用者200bはメモリ(MEM)511より取り出
した受信情報グループ{Ni,Li,Vi,Xi,Bi,Yi,C,T,}とメ
モリ511より取り出した自分の情報グループ{i
iii,εi}を小売店300に送信する。
ステップS10:小売店300はディジタル署名検査器(DIG
SIG VERIFIER)319A,319Bを用いて公開鍵eAにより利用
者200aの利用許可証Biに示された(Ni‖Vi‖Li)に対す
る銀行の署名の正当性を、また、公開鍵e′Aにより電
子コインCに示された(X1‖…‖Xk/2‖B1‖…‖Bk/2
に対する銀行の署名の正当性を前式(45),(46)に従
って検査する。1ピース利用許可証Bを使用する場合は
(45′)と(46′)により検査する。さらに譲渡証Tに
示されている(1‖…‖k/2)に対する利用者200aの
署名の正当性を前式(48)に従ったディジタル署名検査
器(DIG SIG VERIFIER)319Cにより検査する。Bを使う
場合は式(48′)を使って検査する。
ステップS11:小売店300は更に、受信したεi,Vi,Ni
剰余べき乗器(MOD-POWER)314に入力して▲Vεi i
mod Niを計算し、その結果と受信したXi,Niを剰余乗算
器(MOD-MUL)313に入力してXi・▲Vεi i▼ mod Ni
計算する。一方受信したYi,Ni,Liを剰余べき乗器(MOD-
POWER)315に入力して▲YLi i▼ mod Niを計算し、その
結果と剰余乗算器313の出力とを比較器(COMP)316に入
力し、 ▲YLi i▼≡Xi・▲Vεi i▼(mod Ni) …(49) が成立するかどうかを検査する。この式が成立すれば受
信した情報Vi,Xiは確かに譲渡人である利用者200a自身
のものであると判定する。
ステップS12:小売店300は更にディジタル署名検査器
(DIG SIG VERIFIER)319Dを用いて公開鍵eAにより譲り
受人である利用者200bの利用許可証iに示されたi
iii)に対する銀行の署名の正当性を前式
(45)と同様の次式(50)に従って検査する。1ピース
利用許可証Bの場合は(50′)を使う。
iii)=VFeAi} =▲eA i▼ mod n …(50) この検査が不合格の時は以降の処理を中止する。
ステップS13:小売店300は譲り受人である利用者200bの
利用者情報iが確かに譲り受人200b自身のものである
かを確認するため、タイマ(TIMER)321より取り出した
時刻も、乱数発生器(RANDOM GEN)303より取り出した
値γiおよび小売店300の識別情報IDvを問い合せ文qi
して利用者200bに送付する。それと共に一方向性関数器
(f−CAL)322に問い合せ文qiの成分IDv,t,γiを入力
してE=f(qi)=f(IDv,t,γi)を計算する。
ステップS14:利用者200bは受信したqi={IDv,t,γi
を一方向性関数器(f−CAL)522へ入力し、その出力値
Ei=f(IDv,t,γi)とメモリ511より取り出した自身の
情報iiより剰余べき乗器(MOD-POWER)523を使っ
て▲Ei i mod iを計算し、その結果とメモリ511から
読出した iから剰余乗算器(MOD-MUL)524を用いて、 を求め、iを応答文として小売店に送信する。なお、 は次式(52)の関係を満足する値であり、利用者200aか
ら電子コインCを譲り受けた後に事前に計算してメモリ
511に格納しておく。
ここで1/iは剰余Niにおけるiの指数成分としての逆
元であり、次式 (1/ii)≡1 mod LCM{(Pi−1),(Qi
1)} …(53) を満す。Pi,Qiiから逆元計算により1/iが計算さ
れる。
ステップS15:小売店300は一方向性関数器322の出力値E
iと受信したiiを剰余べき乗器(MOD-POWER)304
に入力して▲Ei i▼ mod iを計算し、その結果と
Xiiを剰余乗算器(MOD-MUL)313に入力してXi・▲
Ei i▼ mod iを得る。一方受信したiii
剰余べき乗器(MOD-POWER)305に入力して▲ i
mod iを計算し、その結果と剰余乗算器313の出力を比
較器(COMP)306に入力し、 ▲ i▼≡Xi・▲Ei i▼(mod i) …(54) が成立するかどうかを検査する。この検査に合格すれば
情報iは譲り受人である利用者200b自身のものである
と認め、小売店300はその電子コインCを正当なものと
みなしそれを受け取る。
このように利用者200bはステップS14において自分自身
の乱数情報iを使うかわりにXiの関数である式(52)
で与えられる を使って(45)の応答文iを作成するので、小売店300
が行うステップS15の検査式(54)の計算には利用者200
aの認証用情報Xiを使うことができる。つまり譲渡され
た電子コインを使用する利用者200bは自分の認証用情報
iを小売店300に提示する必要がない。
最後に、小売店300と銀行100の間の決済方法について説
明する。小売店300と銀行100間の処理手順例を第8C図に
示す。銀行100と小売店300のブロック構成図を第9C図に
示す。
ステップS16:小売店300は、後日、メモリ(MEM)111内
の利用者200aに関する情報グループ{Ni,Li,Vi,Xi,Bi,Y
i,C,T}および利用者200bと小売店300に関する情報グル
ープ{iiiii,εi,IDv,t,γi}を
銀行100に提出する(i=1,…,k/2)。
ステップS17:銀行100はディジタル署名検査器(DIG SI
G VERIFIER)119A,119Bを用いて公開鍵eAにより利用者2
00aの利用許可証Biに示された(Ni‖Vi‖Li)に対する
銀行の署名の正当性を、また公開鍵e′Aにより電子コ
インCに示された(X1‖…‖Xk/2‖Bi‖…‖Bk/2)に対
する銀行の署名の正当性を前式(45),(46)に従って
検査する。さらに、譲渡証Tに示されている(1‖…
k/2)に対する利用者200aの署名の正当性を前式(4
8)に従ったディジタル署名検査器(DIG SIG VERIFIE
R)119Cにより検査する。1ピース利用許可証Bの場合
はそれぞれ式(45′),(46′)及び(48′)を使って
検査する。
ステップS18:εi,Vi,Niを剰余べき乗器(MOD-POWER)1
17に入力して▲Vεi i▼ mod Niを計算し、その結果と
Ni,Xiを剰余乗算器(MOD-MUL)118に入力してXi・▲V
εi i▼ mod Niを計算する。一方Yi,Ni,Liを剰余べき乗
器(MOD-POWER)103に入力して▲VLi i▼ mod Niを計算
し、その結果と剰余乗算器118の出力を比較器(COMP)1
21に入力し、前式49と同じ次式 ▲YLi i▼≡Xi・▲Vεi i▼(mod Ni) が成立するかどうかを検査する。この式が成立すれば情
報Vi,Xiは確かに譲渡人200a自身のものであると判定す
る。
ステップS19:ディジタル署名検査器119Dを用いて公開
鍵eAにより譲り受人200bの利用許可証iに示された
iii)に対する銀行の署名の正当性を前式
(50)と同じ式により検査する。1ピース利用許可証B
の場合は式(50′)を使って検査する。またqi={IDv,
t,γi}を一方向性関数器(f−CAL)112へ入力し、Ei
=f(IDv,t,γi)を計算する。その出力値をEii
iを剰余べき乗器(MOD-POWER)114に入力して▲Ei i
▼ mod iを計算し、その結果とXiiを剰余乗算器
(MOD-MUL)115に入力してXi・▲Ei i▼ mod iを得
る。一方iiiを剰余べき乗器(MOD-POWER)11
3に入力して▲ i▼ mod iを計算する。剰余乗算
器115と剰余べき乗器113の出力を比較器(COMP)116に
入力し、前式(54)と同じ次式 ▲ i▼≡Xi・▲Ei i▼(mod i) が成立するかどうかを検査する。この式が成立すれば情
i確かに譲り受人200b自身のものであると判定す
る。
ステップS20:以上の検査に合格すれば利用者200aから
提出された情報{Ni,Li,Vi,Xi,Bi,Yi,C,T}および利用
者200bと小売店300に関する情報{iii
ii,εi,IDv,t,γi}(i=1,…,k/2)をメモリ1
11に配置して、小売店300の口座IDvへ該当する金額を払
い込む。
尚、上述の電子コインの譲渡で説明した利用者200aが電
子コインを不正に二重使用すれば前に説明したのと同様
に同じ(Vi,Xi)の組が2つ存在することになり、銀行1
00における第2D図の処理フローにより二重使用が検出さ
れ、かつその使用者が特定される。それに対し、電子コ
インを譲渡された利用者200bが電子コインを不正に二重
使用したのを検出するためには、銀行は受信した(i,
Xi)の組に対し同じ値のものがすでにメモリ111内に記
憶されているか検出すればよい。もし同じ値の(i,
Xi)があった場合には、メモリ内にあるその組に対応す
iiiを第22D図の処理手順に使って、次式▲
α i▼×(i/′iβi
α×i+β×(εi−ε′i)i(mod i) からiを計算することができる。
〔電子コインの繰返し使用〕
第2の実施例における第6B図の手順に従って利用者200
が得た電子コインを複数回使用する方法について説明す
る。ここでは利用者200がK回の利用が許されている電
子コインをj回目(j≦K)に利用する際の利用手順を
示す。これは、他の利用者200に譲渡する場合でも、小
売店300に支払う場合でも可能であるが、ここでは小売
店300での支払いに利用する場合を例にとり説明する。
ここで、利用者200と小売店300の間の処理手順例を第10
図に示し、利用者200及び小売店300のブロック構成図を
第11図に示す。以下ではi=1,…,k/2とする。
ステップS1:利用者200はメモリ211より取り出した
{Ni,Li,Vi,Bi,Xi,C}を小売店300に送信する。
ステップS2:小売店300ディジタル署名検査器(DIG SIG
VERIFIER)319A及び319Bを用いて公開鍵eAにより利用
者200の利用許可証Biに示されている(i‖Vi‖Li)に対
する銀行の署名の正当性を、また公開鍵e′Aにより電
子コインCに示されている(X1‖…‖Xk/2‖B1‖…‖B
k/2)に対する銀行の署名の正当性を前式(40)及び(4
1)に従って検査する。1ピース利用許可証Bを使う場
合は式(40′)及び(41′)を使って検査する。この検
査が不合格のときは以降の処理を中止する。
ステップS3:小売店300はタイマ(TIMER)321より取り
出した時刻t,.乱数発生器(RANDOM GEN)303より取り出
した乱数値γiおよび小売店の識別情報IDvを問い合せ文
qiとして利用者200に送付する。それと共にそれらの情
報を一方向性関数器(f−CAL)322に入力してEi=f
(IDv,t,γi)を計算する。
ステップ4:利用者200は受信したIDv,t,γiを一方向性
関数(f−CAL)221へ入力し、その出力値Ei=f(IDv,
t,γi)メモリ211より取り出した情報Si,Niを剰余べき
乗器(MOD-POWER)222に入力して▲SEi i▼ mod Niを計
算する。その計算結果Ni及び後述の情報▲Ψ<j> i▼を剰
余乗算器(MOD-MUL)223を用いて、 Yi=▲Ψ<j> i▼・▲SEi i▼mod Ni …(55) を求め、jと共にYiを小売店の問い合わせに対する応答
文として小売店300に送信する。ここで、▲Ψ<j> i▼は
以下の関係を満足する値であり、剰余べき乗器(MOD-PO
WER)253を使って事前に計算しておく(事前に計算して
メモリに格納しておいてもよい)。
▲Ψ<j> i▼=fj(Xi)1/Li mod Ni …(56) 1/Liは、剰余NiにおけるLiの指数成分としての逆元であ
り、次式 (1/Li)×Li≡1 mod LCM{(Pi−1),(Qi−1〕}
…(57) を満たす。Pi、Qi,Liをメモリ(MEM)211から読出して逆
元計算器(INV ELEM CAL)252に入力して1/Liを計算す
る。またXiの関数fj(Xi)は一方向性関数器(f−CA
L)251によって実行されるjをパラメータとする一方向
性関数であり、例えば次のような実現例がある。ここで
fは適当な一方向性関数とする。
fj(X)=f(x‖j) …(58) ステップS5:小売店300は受信したjとメモリ(MEM)31
1から読出したXiとを一方向性関数器f−(CAL)350に
入力し、jをパラメータとする式(58)と同様な関数fj
(Xi)を計算する。一方向性関数器322の出力値Eiと受
信したVi,Niを剰余べき乗器(MOD-POWER)304に入力し
て▲VEi i▼ mod Niを計算し、その結果とfj(Xi)及び
Niを剰余乗算器(MOD-MUL)313に入力してfj(Xi)・▲
Ei i▼(mod Ni)を得る。またYi、Ni,Liを剰余べき乗
器(MOD-POWER)305に入力して▲YLi i▼ mod Niを計算
する。剰余べき乗器305と剰余乗算器313の出力を比較器
(COMP)306に入力し、次式 ▼YLi i▼≡fj(Xi)・▲VEi i▼(mod Ni) …(59) が成立するかどうかを検査する。この式が成立すれば利
用者200は確かに自分の秘密情報Siを使って応答文Yi
正しく作成したと判断し、小売店300はその電子コイン
を正当なものとみなしそれを受け取る。
小売店300と銀行100の間の処理手順と機能ブロック図は
それぞれ第6D図及び第7D図とほとんど同じなのでその詳
細な説明は省略する。第6D図の処理手順と異なる点はス
テップS21において小売店300から銀行100に送られる情
報の中に電子コインCの使用回数jを追加している点で
ある。又、銀行100において電子コインの不正二重使用
を検出するには、第2D図のステップSC1において受信し
た(Vi,Xi,j)と同じ値の組がメモリ111内に既に記憶さ
れているか探し(ただし1≦j≦K)、以下の処理はS
C2〜SC5と同じである。即ち同一電子コインCに対し同
じ値の情報(Vi,Xi,j)の組が2つあった場合、それら
に対応する異なる他の情報の組(Ei,Yi)及び(E′i,
Y′i)が存在することになり、前述のように対応する秘
密情報Siを計算で求めることが可能となる。Siには識別
情報IDpが入っているので二重使用者を特定することが
できる。
〔j回目の使用における電子コインの譲渡〕
第2実施例によれば前述の電子コインの譲渡と複数回使
用を組合せて実施することも可能である。
以下に利用者200aが使用j回目において電子コインCを
利用者200bに譲渡し、利用者200bが小売店300での支払
いに利用する場合について説明する。
譲渡人である利用者200aと譲り受人である利用者200bと
の間の処理手順を第12A図に、またその場合の利用者200
aと200bの機能ブロック図を第13A図に示す。以下ではi
=1,…,k/2とする。
ステップS1:まず譲渡人200aはメモリ(MEM)211から読
出した自分の有している情報{Ni,Li,Vi,Bi,Xi,C}を譲
受人200bに送信する。
ステップS2:譲受人200bはディジタル署名検査器(DIG
SIG VERIFIER)519A,519Bを用いて、公開鍵eAにより譲
渡人200aの利用許可証Bi(又はB)に示されているMi
Ni‖Vi‖Li又はMi,…,Mk/2に対する銀行の署名の正当
性を、前検証式(45)及び(45′)を使って、また公開
鍵e′Aにより電子コインCに示されているX1‖…‖X
k/2‖B1‖…‖Bk/2又はX1‖…‖Xk/2‖Bに対する銀行
の署名の正当性を前検証式(46)又は(46′)を使って
それぞれ検査する。この検査が不合格の場合は以降の処
理を中止する。
ステップS3:譲受人200bは乱数発生器(RANDOM GEN)50
3より発生した乱数εiを問い合わせ文として譲渡人200a
に送る。
ステップS4:譲渡人200aは受信したεiとメモリ211から
読出した自分の情報Si,Niを剰余べき乗器(MOD-POWER)
222に入力して▲Sεi i▼ mod Niを計算する。その計
算器結果とメモリ211から読出したNi及び▲Ψ<j> i▼と
剰余乗算器(MOD-MUL)223に入力して Yi=▲Ψ<j> i▼・▲Sεi ▼ mo Ni を計算し、jと共にYiを応答文として譲受人200bに返送
する。ここで▲Ψ<j> i▼は第11図を参照に説明したもの
と同じであり、式(56),(57),(58)を満足する▲
Ψ<j> i▼をあらかじめ計算してメモリ211に記憶してあ
る。
ステップS5:譲受人200bは受信したjとメモリ(MEM)5
11から読出したXiとを一方向性関数器(f−CAL)521に
入力し、jをパラメータとする前述の式(58)と同様な
関数fj(Xi)を計算する。一方乱数発生器503から発生
された乱数εiと受信したVi,Niを剰余べき乗器(MOD-PO
WER)504に入力して▲Vεi i▼ mod Niを計算し、その
結果と一方向性関数器521の出力fj(Xi)及びNiを剰余
乗算器(MOD-MUL)513に入力してfj(Xi)・▲Vεi i
▼ mod Niを得る。また受信した応答文Yiをメモリ511か
ら読出したNi,Liを剰余べき乗器(MOD-POWER)505に入
力して▲YLi i▼ mod Niを計算する。これら剰余べき乗
器505と剰余乗算器513の出力を比較器(COMP)506に入
力し ▲YLi i▼≡fj(Xi)・▲Vεi i▼(mod Ni)…(60) が成立するか検査する。この式が成立すれば譲渡人200a
が確かに自分の秘密情報Siを使って正しく応答文Yiを作
成したと判断する。
ステップS6:譲受人200bはそこで自分の利用許可証
1,…,k/2(又は)をメモリ511から読出して譲
渡人200aに送る。
ステップS7:譲渡人200aは受けた1,…,k/2(又は
)に対し、例えば前式(47)のディジタル署名関数を
計算する署名器(DIG SIG GEN)233を使って自分の署名
を付けて、その結果Tを譲渡証として譲受人200bに送り
返す。
ステップS8:譲受人200bは譲渡人200aの公開鍵Niと受信
した譲渡証Tをディジタル署名検査器(DIG SIG VERIFI
ER)519Cに入力して前式(48)が成立するか検査する。
1ピース利用許可証の場合は式(48′)により検査す
る。この検査に合格すれば、譲受人200bはj回目使用の
電子コインCを適当なものとみなして受け取る。
次に譲受人である利用者200bが利用者200aから譲渡され
た電子コインCを用いて小売店300で支払いをする場合
について説明する。利用者200bと小売店300の間の処理
手順例を第12B図に示す。又、利用者200bと小売店300の
機能ブロック図を第13B図に示す。以下ではi=1,…,k/
2とする。
ステップ9:利用者200bはメモリ(MEM)511から読出し
た受信情報グループ{Ni,Li,Vi,Xi,Bi,Yi,C,T,j}と自
分の情報グループ{iiii,εi}を小売
店300に送信する。
ステップ位置S10:小売店300はディジタル署名検査器
(DIG SIG VERIFIER)319Aと319Bを用いて公開鍵eAによ
り譲渡人200aの利用許可証Biに示された(Ni‖Vi‖Li
に対する銀行の署名の正当性を、また公開鍵e′Aによ
り電子コインCに示された(X1‖…Xk/2‖B1‖…‖Bk/2
に対する銀行の署名の正当性を前式(45),(46)に従
って検査する。1ピース利用許可証Bの場合は式(4
5′),(46′)を使って検査する。さらに譲渡証Tに
示された(i‖…‖k/2)に対する譲渡人200aの署名
の正当性を前式(48)に従ったディジタル署名検査器
(DIG SIG VERIFIER)319Cにより検査する。1ピース利
用許可証Bの場合は式(48′)を使う。
ステップS11:小売店300は更に、受信したεi,Vi,Ni
剰余べき乗器(MOD-POWER)314に入力して▲Vε i▼ mo
d Niを計算し、その結果と受信したNi,Xiを剰余乗算器
(MOF-MUL)313に入力してXi・▲Vεi i▼ Niを計算
する。一方、受信したYi,Ni,Liを剰余べき乗器(MOD-PO
WER)315に入力して▲YLi i▼ mdo Niを計算し、その結
果と剰余乗算器313の出力とを比較器(COMP)316に入力
し、次式 ▲YLi i▼≡Xi・▲Vεi i▼(mod Ni) が成立するか検査する。この式が成立すれば、受信した
情報Vi,Xiは確かに譲渡人である利用者200a自身のもの
であると判定する。
ステップS12:小売店300は更にディジタル署名検査器
(DIG SIG VERIFIER)319Dを用いて公開鍵eAにより利用
者200bの利用許可証iに示された(iii)に
対する銀行の署名の正当性を前式(50)と同様の式に従
って検査する。1ピース利用許可証を使う場合は式
(50′)と同様な式を使って検査する。この検査が不合
格の時は以降の処理を中止する。
ステップS13:小売店は譲受人である利用者200bの利用
者情報iの正当性を検査するためのタイマ(TIMER)32
1の出力時刻t,乱数発生器(RANDOM GEN)303から出力さ
れた乱数γi及び小売店の識別情報IDvを問い合わせ文qi
として利用者200bに送る。それと共に一方向性関数器
(f−CAL)322にIDv,t,γiを入力してEi=f(IDv,t,
γiを計算する。
ステップS14:利用者200bは受信したIDv、t,γiを一方
向性関数器(f−CAL)522へ入力し、その出力Ei=f
(IDv,t,γi)とメモリ(MEM)511から読出した自分の
情報iiを剰余べき乗器(MOD-POWER)523に入力し
て▲Ei i▼ mod iを計算する。その計算結果とメモ
リ511から読出された iを剰余乗算器(MOD-MUL)524に入力して次式 を計算し、iを応答文としてjと共に小売店300に送
る。尚、 は先に説明した と同様に次式を満足し、あらかじめ計算してメモリ511
内に記憶されている。
ステップ位置S15:小売店300は一方向性関数器322の出
力Eiと受信したiiを剰余べき乗器(MOD-POWER)3
04に入力して▲Ei i▼ mod iを計算する。一方、受
信したjとメモリ(MEM)311から読出したXiを一方向性
関数器(f−CAL)350に入力してfj(Xi)を計算し、そ
の結果とNi及び剰余べき乗器304の出力を剰余乗算器(M
OD-MUL)313に入力してfj(Xi)・▲Ei i▼ mod i
得る。また受信したiiiは剰余べき乗器(MOD
-POWER)305に与えられて▲ i▼ mod Niが計算さ
れる。この計算結果と剰余乗算器313の出力を比較器(C
OMP)306に入力し、次式 ▲ i▼≡fj(Xi)・▲Ei i▼(mod i) が成立するかを検査する。この式が成立すれば情報i
は譲受人200b自身のものであると判定し、小売店300は
その電子コインCを正当なものとみなして受け取る。
銀行100と小売店300との間の処理手順及びそれらの機能
ブロック図は第8C図及び第9C図とほとんど同じなので図
示してない。異なる点は第8C図のステップS16において
銀行100に送信する情報のグループには利用者200bから
受信した使用回数情報jも付加されている点である。銀
行100は不正二重使用を検出するために受信した情報(V
i,Xi,j)と同じ値の組がメモリ111内にあるかを第2D図
のステップSC1で探し、以下の処理はステップSC2〜SC5
と同じである。このようにして同じ情報(Vi,Xi,j)の
組が2つあった場合、それらに対応する異なる値の情報
の組(Ei,Yi)及び(E′i,Y′i)が存在することにな
り、前述のように対応する秘密情報Siを計算することが
可能となるので、二重使用者を特定できる。
〔発明の効果〕
以上より、この発明では、銀行,利用者と小売店のプロ
トコルを工夫することで従来方式で問題であった関数f
の2成分の不干渉性を仮定しなくても従来方式と同等の
機能を有する電子現金を実施できる。
またあらかじめ利用許可証を発行し、その利用許可証を
使って電子コインを発行するようにすれば、電子コイン
の発行処理は1回のブラインド署名作成手順を行うのみ
でよく処理上の負担が少ない。
さらに、この発明では従来方法では不可能であった利用
者間の電子コインの譲渡を可能としている。つまり、電
子コインを発行された利用者が他の利用者にその電子コ
インを譲渡することができる。ここで、利用者が使用済
の電子コインを他の利用者に譲渡する場合や、複数利用
者に同一電子コインを譲渡する場合は、同一コインを2
回使用の場合と同様に電子コインを不正に処理した利用
者の秘密情報が露見する。
また、1つの電子コインを一定回数以内で複数回利用で
きる方式も可能となる。この方式を用いると利用は保持
情報量を少なくして(1個のコインを保持する時の同等
の情報量で)、多数のコインを保持することと同等の効
果を得ることができる。
【図面の簡単な説明】
第1図はこの発明が適用される銀行100、利用者200及び
小売店300の関係を示す図、第2A図はこの発明の第1実
施例における銀行100と利用者200間の電子現金の発行処
理手順を示すフロー図、第2B図は第1実施例における利
用者200と小売店300との間の電子現金の使用処理手順を
示すフロー図、第2C図は第1実施例における銀行100と
小売店300の間の処理手順を示すフロー図、第2D図は第2
C図において銀行100が行う二重使用検出手順を示すフロ
ー図、第3図は第1実施例における利用者200の機能ブ
ロック図、第4図は第1実施例における銀行100の機能
ブロック図、第5図は第1実施例における小売店300の
機能ブロック図、第6A図はこの発明の第2実施例におけ
る銀行100と利用者200の間の利用許可証発行の処理手順
を示すフロー図、第6B図は第2実施例における銀行100
と利用者200の間の電子コインの発行処理手順を示すフ
ロー図、第6C図は第2実施例における利用者200と小売
店300との間の電子コイン使用処理手順を示すフロー
図、第6D図は第2実施例における銀行100と小売店300の
間の処理手順を示すフロー図、第7A図は第6A図における
銀行100と利用者200の機能ブロック図、第7B図は第6B図
における銀行100と利用者200の機能ブロック図、第7C図
は第6C図における利用者200と小売店300の機能ブロック
図、第7D図は第6D図における銀行100と小売店300の機能
ブロック図、第8A図は第2実施例における利用者200aと
200b間の電子コインの譲渡処理手順を示すフロー図、第
8B図は譲受人200bと小売店300の間の譲渡された電子コ
インの使用手順を示すフロー図、第8C図は銀行100と小
売店300の間の譲渡された電子コインの処理手順を示す
フロー図、第9A図は第8A図における利用者200aと200bの
機能ブロック図、第9B図は第8B図における利用者200bと
小売店300の機能ブロック図、第9C図は第8C図における
銀行100と小売店300の機能ブロック図、第10図は第2実
施例における複数回使用電子コインの利用者200と小売
店300の間の使用手順を示すフロー図、第11図は第10図
における利用者200と小売店300の機能ブロック図、第12
A図は第2実施例における複数回使用の電子コインの譲
渡手順を表わす利用者200aと200bの間の処理フロー図、
第12B図は譲渡された複数回使用の電子コインの使用手
順を示すフロー図、第13A図は第12A図における利用者20
0aと200bの機能ブロック図、及び第13B図は第12B図にお
ける利用者200bと小売店300の機能ブロック図である。

Claims (54)

    【特許請求の範囲】
  1. 【請求項1】銀行が利用者に対し電子現金を発行し、利
    用者はその電子現金を使って第3者に支払いをし、銀行
    は使用された電子現金を持っている最後のパーティとの
    間で決済をする電子現金実施方法であり次の工程を含
    む: 利用者は (a) 自分の識別情報を含んだ秘密情報から第1の一
    方向性関数により利用者情報を作成し、 (b) 銀行に対し前記利用者情報を含む情報にブライ
    ンド署名をさせて署名付利用者情報を得、 (c) 乱数情報から第2の一方向性関数により認証用
    情報を作成し、 (d) 銀行に対し前記認証用情報を含む情報にブライ
    ンド署名をさせて署名付認証用情報を得、 (e) 前記利用者情報と、前記署名付利用者情報と、
    前記認証用情報と、及び前記署名付認証用情報とを含む
    電子現金情報を前記銀行が発行した電子現金として第3
    者に渡し、 前記第三者は (f) 受け取った前記電子現金情報中の前記署名付利
    用者情報と前記署名付認証用情報の正当性を検証し、 (g) 前記正当性が検証されたならば問い合せ文を作
    成して前記利用者に与え、 前記利用者は (h) 少くとも自分の作成した前記秘密情報と前記第
    3者から受け取った前記問い合せ文とを使って応答文を
    作成して前記第三者に与え、 前記第3者は (i) 受け取った前記電子現金情報中の前記利用者情
    報と前記認証用情報とを使って前記応答文の正当性を検
    査し、前記応答文が正当であれば前記電子現金を正当な
    ものとして受け、 (j) 必要に応じて少くとも前記電子現金情報と、前
    記第3者の前記問い合せ文と、前記利用者の前記応答文
    とを第4者に渡す。
  2. 【請求項2】前記銀行は、 使用された前記電子現金を保有する最後のパーティから
    前記電子現金情報と、前記第3者の作成した前記問い合
    せ文と、前記利用者が作成した前記応答文とを含む情報
    を決済のため受けると、前記電子現金情報中の前記署名
    付利用者情報と前記署名付認証用情報の正当性と前記第
    3者の前記問い合せ文に対する前記利用者の前記応答文
    の正当性を検査する工程を含む請求項1項記載の電子現
    金実施方法。
  3. 【請求項3】前記決済のための工程は前記電子現金情報
    中の前記利用者情報と前記認証用情報の組と同じ値の組
    が前記銀行の有するメモリに蓄積されている情報の中に
    あるか検査することにより前記利用者による前記電子現
    金の不正使用の検出を行い、 前記電子現金情報と前記問い合せ文及び前記応答文とを
    含む情報を前記メモリに蓄積する工程を含む請求項2項
    記載の電子現金実施方法。
  4. 【請求項4】前記利用者は前記署名付利用者情報を前記
    銀行が発行した利用許可証として保持し、前記利用者は
    必要毎に前記認証用情報と前記利用許可証を含む情報に
    対し前記銀行にブラインド署名をさせ、それによって得
    た前記署名付認証用情報を前記銀行が発行した電子コイ
    ンとして用い、前記利用者は前記電子コインの使用に際
    し前記第3者に対し少くとも前記利用許可証と、前記電
    子コインと、前記利用者情報と、前記認証用情報を含む
    情報の組を前記電子現金として与え、各前記第3者及び
    前記銀行は前記署名付利用者情報と前記署名付認証用情
    報の正当性の検証を前記利用許可証と前記電子コインの
    正当性の検証として行う工程を含む請求項2項記載の電
    子現金実施方法。
  5. 【請求項5】前記最後のパーティは前記第3者であり、
    第4者は前記銀行であり、前記第3者の作成した前記問
    い合せ文は前記第3者の識別情報と時刻情報を含んでい
    る請求項4項記載の電子現金実施方法。
  6. 【請求項6】前記第3者は自分の秘密情報と自分の利用
    許可証を有しており、前記利用者からの前記応答文が正
    当であれば前記第3者は自分の利用許可証を前記利用者
    に与え、前記利用者は前記第3者の利用許可証に対し署
    名をし、その署名付利用用許可証を譲渡証として前記第
    3者に与える工程を含む請求項4項記載の電子現金実施
    方法。
  7. 【請求項7】前記最後のパーティは前記第4者であり、
    前記第4者は前記第3者から少くとも前記利用者が出し
    た利用許可証と、前記電子コインと、前記利用者情報
    と、前記認証用情報と、前記応答文と、前記第3者が出
    した自分の前記利用許可証と、自分の利用者情報と、前
    記問い合せ文とを受け取り、 前記第4者は: 前記利用者の利用許可証と、前記電子コインのそれぞれ
    の正当性を検証し、 前記第3者の前記問い合せ文に対する前記利用者の前記
    応答文の正当性を検証し、 前記第3者の利用許可証の正当性を検証し、 前記第4者自身の問い合せ文を作成して前記第3者に与
    え、 前記第3者は: 前記第4者から受けた前記問い合せ文と、前記第3者自
    身の前記秘密情報と、前記利用者の前記認証用情報から
    作成した情報と、を使って応答文を作成し、前記第4者
    に与え、 前記第4者は: 前記第3者の前記利用者情報と、前記第4者の問い合せ
    文と、前記利用者の前記認証用情報を使って前記第3者
    の前記応答文の正当性を検証し、 前記第4者は: 前記第3者の前記利用者情報と、前記第4者の前記問い
    合せ文と、前記利用者の前記認証用情報とを使って前記
    第3者の前記応答文の正当性を検証し、前記電子現金情
    報と、前記第3者の問い合せ文と、前記利用者の応答文
    と、前記第3者の利用許可証と、前記第3者の利用者情
    報と、前記第4者の問い合せ文と前記第3者の応答文
    と、を含む情報を前記銀行に与える請求項6項記載の電
    子現金実施方法。
  8. 【請求項8】前記銀行は更に前記第4者の問い合せ文に
    対する前記第3者の応答文の正当性を検証する工程を含
    み、前記銀行は前記利用者の前記認証用情報と前記第3
    者の前記利用者情報の組と同じ値の組が前記銀行の有す
    る前記メモリに蓄積されている情報の中にあるか検査す
    ることにより前記第3者による前記電子コインの不正使
    用の検出を行う工程を含む請求項7項記載の電子現金実
    施方法。
  9. 【請求項9】前記銀行はあらかじめ決めた複数回kの前
    記電子コインの使用を許可しており、前記利用者は前記
    電子コインのj回目、ただしi≦j≦k、の使用におい
    て前記第3者からの前記問い合せ文に対し、前記利用者
    の前記秘密情報と前記値jをパラメータとして変化する
    一方向性関数により前記利用者の前記認証用情報から計
    算した情報とから前記応答文を作成し、前記応答文を前
    記値jと共に前記第3者に与え、前記第3者は前記問い
    合せ文と、前記利用者の前記認証用情報と、前記利用者
    の前記利用者情報と前記値jを使って前記応答文の正当
    性を検証し、前記第4者へ与える情報中に前記値jを含
    めて与える工程を含む請求項4項記載の電子現金実施方
    法。
  10. 【請求項10】前記第3者は前記利用者からの応答文が
    正当であると検証すると前記第3者の利用許可証を前記
    利用者に与え、前記利用者は受けた前記第3者の利用許
    可証に署名をして譲渡証として前記第3者に与え、前記
    第3者は前記譲渡証の正当性を検証する工程を含む請求
    項9項記載の電子現金実施方法。
  11. 【請求項11】前記銀行は前記最後のパーティから前記
    値jも受け取り、前記銀行は前記利用者情報と前記認証
    用情報と前記値jとの組と同じ値の組が前記銀行の前記
    メモリに蓄積されている情報の中にあるか検査すること
    によって前記利用者による前記電子コインの不正使用を
    検出する工程を含む請求項9又は10項記載の電子現金実
    施方法。
  12. 【請求項12】前記利用者情報を含む情報に前記ブライ
    ンド署名させる工程は: 前記利用者が前記利用者情報を含む情報を撹乱乱数を変
    数とする一方向性のブラインド署名前処理関数により処
    理して撹乱利用者情報として前記銀行に与える工程と、 前記銀行が前記撹乱利用者情報の一部に署名関数により
    署名し、署名付撹乱利用者情報として前記利用者に返す
    工程と、 前記利用者は受けた前記署名付撹乱利用者情報からブラ
    インド署名後処理関数により前記撹乱乱数の影響を除去
    することにより前記署名付利用者情報を得る工程、 とを含む請求項1,2又は4項記載の電子現金実施方法。
  13. 【請求項13】前記利用者は前記秘密情報をk個、kは
    2以上の整数を作成し、またそれらk個の前記秘密情報
    にそれぞれ対応して前記利用者情報及び前記撹乱利用者
    情報をそれぞれk個作成し、 前記銀行はk個の前記撹乱利用者情報を受けると、その
    うちあらかじめ決めた個数の前記銀行が選択した前記撹
    乱利用者情報の作成にそれぞれ使われた前記秘密情報と
    前記撹乱乱数を含む作成データの組を与えるよう前記利
    用者に要求し、それによって前記利用者から得た作成デ
    ータの組により対応する撹乱利用者情報を計算し、それ
    ら計算結果が前記利用者から受けた前記撹乱利用者情報
    の対応するものとそれぞれ一致することを検証する工程
    を含む請求項12項記載の電子現金実施方法。
  14. 【請求項14】前記撹乱利用者情報の前記一部は前記銀
    行が前記利用者から受けたk個の前記撹乱利用者情報の
    うち前記検証で使用した以外のあらかじめ決めた第2の
    個数の前記撹乱利用者情報であり、前記銀行は前記署名
    関数により前記あらかじめ決めた第2の個数の前記撹乱
    利用者情報に対して署名を付け、前記署名付撹乱利用者
    情報を作成し前記利用者に与える工程を含む請求項13項
    記載の電子現金実施方法。
  15. 【請求項15】前記利用者情報を含む情報に前記ブライ
    ンド署名させる工程と前記認証用情報を含む情報にブラ
    インド署名をさせる工程は次の工程を含む: 前記利用者は:それぞれが前記識別情報IDPを含む前記
    秘密の情報Siをk個、kは2以上の整数を作成し、前記
    乱数情報Riをk個作成し、k個の前記秘密情報とk個の
    前記乱数情報から前記第1及び第2一方向性関数により
    それぞれk個の前記利用者情報Viとk個の前記認証用情
    報Xiを作成し、k個の前記利用者情報Viをそれぞれ変数
    として一方向性の第1ブラインド署名前処理関数に与え
    ることによりそれぞれ撹乱処理された対応するk個の前
    記撹乱利用者情報Wiを作成し、k個の前記認証用情報Xi
    をそれぞれ変数として一方向性の第2ブラインド署名前
    処理関数に与えることによりそれぞれ撹乱処理された対
    応するk個の前記撹乱認証用情報Ziを作成し、これらk
    個の前記撹乱利用者情報Wiとk個の前記撹乱認証用情報
    Ziを前記銀行に与え、 前記銀行は:各k組の前記撹乱利用情報Wiと前記撹乱認
    証用情報Ziを受け取ると、それらの中からそれぞれk個
    より少ないあらかじめ決めた第1の個数k1の前記撹乱利
    用者情報と前記撹乱認証用情報を選択し、選択した前記
    撹乱利用者情報と前記撹乱認証用情報の作成に前記利用
    者によってそれぞれ使われた前記秘密情報Siと前記乱数
    情報Riとをそれぞれ含む前記第1の個数k1の情報の組を
    指定して前記利用者に対し要求し、 前記利用者は:前記銀行の指定した前記第1の数の前記
    情報の組を前記銀行に与え、 前記銀行は:受け取った前記情報の組により前記第1の
    数k1の対応する撹乱利用者情報Wiと前記第1の数に対応
    する撹乱認証用情報Ziをそれぞれ計算し、それら計算さ
    れた撹乱利用者情報Wiと計算された撹乱認証用情報Z′
    iがそれぞれ選択した前記撹乱利用者情報Wi及び前記撹
    乱認証用情報Ziのそれぞれ対応するものと一致すること
    を検証し、受け取った前記情報の組の中のすべての前記
    秘密情報Siの中に前記利用者の前記識別情報IDPが含ま
    れていることを確認し、前記利用者から受け取ったk個
    の前記撹乱利用者情報Wiのうち前記選択したk個以外の
    あらかじめ決めた第2の個数k2の前記撹乱利用者情報に
    対しそれぞれ第1署名関数により署名して前記第2の個
    数k2の署名付撹乱利用者情報Ωiを作成して前記利用者
    に与え、前記利用者から受け取ったk個の前記撹乱認証
    用情報Ziのうち前記選択したk1個以外の前記第2の個数
    k2の前記撹乱認証用情報に対しそれぞれ第2署名関数に
    より署名して前記第2の個数の署名付撹乱認証用情報Θ
    iを作成して前記利用者に与え、 前記利用者は:受け取った前記署名付撹乱利用者情報Ω
    iと前記署名付撹乱認証用情報Θiに対しそれぞれ第1及
    び第2ブラインド署名後処理関数により撹乱除去処理を
    してそれぞれk2個の前記署名付利用者情報Bviと前記署
    名付認証用情報Bxiを得る、 工程を含み、前記電子現金の使用における前記署名付利
    用者情報と前記署名付認証用情報に係わる処理はすべて
    前記第2の数k2の署名付利用者情報と前記第2の数k2
    署名付認証用情報に対して実行される請求項1項記載の
    電子現金実施方法。
  16. 【請求項16】前記利用者はk個の素数Liと、k対の秘
    密の素数Pi,Qiと、k個の素数積Pi×Qi=Niを作成し、
    前記秘密情報Siと前記乱数情報Riから前記利用者情報Vi
    と前記認証用情報Xiをそれぞれ次式で表される前記第1
    及び第2一方向性関数 により計算する工程を含む請求項15項記載の電子現金実
    施方法。
  17. 【請求項17】前記最後のパーティは前記第3者であ
    り、前記第4者は前記銀行であり、前記利用者は前記電
    子現金を前記第3者に対し使用するにあたってk2組の
    {Vi,Bvi,Xi,Bxi}を電子現金情報としてNiとLiと共に
    前記第3者に与え、前記第3者は前記問い合せ文qiを前
    記利用者に与えると共に問い合せ文関数Ei=f(qi)に
    より問い合せ文情報Eiをk2個のiについて計算し、前記
    利用者は受け取った前記問い合せ文qiから前記問い合せ
    文関数Ei=f(qi)によりk2個の問い合せ文情報Eiを計
    算し、次式で表わせる応答文 Yi=Ri・▲SEi i▼ mod Ni をk2個作成して前記第3者に与え、 前記第3者は受け取った応答文Yiを使って次式で表わさ
    れる検証式、 ▲YLi i▼≡Xi・▲VEi i▼(mod Ni) がk2個のすべてのiについて成立することにより前記応
    答文Yiの正当性を検証する工程を含む請求項16項記載の
    電子現金実施方法。
  18. 【請求項18】前記第3者は前記電子現金を決済するた
    めのk2個のすべてのiについての前記電子現金情報
    {Vi,Bvi,Xi,Bxi}と、前記問い合せ文qiと前記応答文Y
    iとLi及びNiを前記銀行に与え、 前記銀行は前記第3者から受けた情報を使って、次式で
    表わされる検証式 ▲YLi i▼≡Xi・▲VEi i▼(mod Ni) がk2個のすべてのiについて成立することにより前記問
    い合せ文qiに対する前記応答文Yiの正当性を検証する工
    程を含む請求項17項記載の電子現金実施方法。
  19. 【請求項19】前記銀行は前記第3者から受け取った前
    記利用者情報と前記認証用情報の組{Vi,Xi}と同じ値
    の組が前記銀行の前記メモリ内にあるか検査し、なかっ
    た場合は前記第3者から受けた情報を前記メモリに記憶
    し、あった場合は前記メモリ内に記憶されている対応す
    る問い合せ文q′iと応答文Y′iを読出し、前記読出し
    た問い合せ文q′iから問い合せ情報E′i=f
    (q′i)を計算し、次式 α・Li+β(Ei−E′i)=1 を満たす整数αとβをユークリッド互除法により解き、
    更に次式 ▲Vα i▼・(Yi/Y′iβmod Ni=Si より秘密情報Siを計算し、前記計算した秘密情報Siの中
    から前記電子現金を不正使用した前記利用者の識別情報
    IDPを得る工程を含む請求項18項記載の電子現金実施方
    法。
  20. 【請求項20】前記利用許可証を得る工程は 前記利用者が:それぞれが前記識別情報を含む前記秘密
    情報Siをk個、kは2以上の整数、作成し、k個の前記
    秘密情報Siから前記第1の一方向性関数により前記利用
    者情報Viをk個作成し、各前記利用者情報Viを含む情報
    Miを変数として一方向性の第1ブラインド署名前処理関
    数に与えることによりそれぞれ撹乱処理された対応する
    k個の前記撹乱利用者情報Wiを作成し、それを前記銀行
    に与え、 前記銀行が:k個の前記撹乱利用者情報Wiを受け取ると、
    それらの中からk個より少ないあらかじめ決めた第1の
    個数k1の前記撹乱利用者情報を選択し、選択した前記撹
    乱利用者情報の作成に前記利用者によってそれぞれ使わ
    れた前記秘密情報Siを含む情報の組を指定して前記利用
    者に対し要求し、 前記利用者が:前記銀行の指定した前記第1の個数k1
    前記情報の組を前記銀行に与え、 前記銀行が:受け取った前記情報の組により前記第1の
    個数k1の対応する撹乱利用者情報Wiを計算し、それら計
    算された撹乱利用者情報W′iが前記選択した撹乱利用
    者情報Wiの対応するものと一致することを検証し、受け
    取った前記情報の組の中の全ての前記秘密情報Siの中に
    前記利用者の前記識別情報IDPが含まれていることを確
    認し、 前記利用者から受け取ったk個の前記撹乱利用者情報Wi
    のうち前記選択したk1個以外のあらかじめ決めた第2の
    個数k2の前記撹乱利用者情報に対しそれぞれ第1署名関
    数により署名してk2個の署名付撹乱利用者情報Ωiを作
    成して前記利用者に与え、 前記利用者が:受け取ったk2個の前記署名付撹乱利用者
    情報Ωiに対しそれぞれ第1ブラインド署名後処理関数
    により撹乱除去処理をしてk2個の前記署名付利用者情報
    Bviを得る、 工程を含み、前記利用者はk2個の前記署名付利用者情報
    を前記銀行が発行した前記利用許可証として使用する請
    求項4項記載の電子現金実施方法。
  21. 【請求項21】前記電子コインの発行は、 前記利用者が前記乱数情報Riをk2個作成し、前記第2の
    個数k2の前記乱数情報Riから前記第2一方向性関数によ
    りk2個の前記認証用情報Xiを作成し、k2個の前記利用許
    可証Biとk2個の前記認証用情報Xiを含む情報mを変数と
    して一方向性の第2ブラインド署名前処理関数に与える
    ことにより前記撹乱認証用情報Zを作成して前記銀行に
    与え、 前記銀行は与えられた前記撹乱認証用情報Zに対し第2
    署名関数により署名をして前記署名付撹乱認証用情報Θ
    を作成して前記利用者に与え、 前記利用者は前記署名付撹乱認証用情報Θに対し第2ブ
    ラインド後処理関数を使って撹乱除去処理をして前記署
    名塚認証用情報を前記電子コインCとして得る工程を含
    む請求項20項記載の電子現金実施方法。
  22. 【請求項22】前記利用者はk個の素数Liと、k対の秘
    密の素数Pi,Qiと、k個の素数積Ni=Pi×Qiを作成し、
    k個の前記秘密情報Siからk個の前記利用者情報Viを次
    式で表わされる 前記第1の一方向性関数 Vi=▲SLi i▼ mod Ni,i=l,…,k により計算する工程を含む請求項21項記載の電子現金実
    施方法。
  23. 【請求項23】以下において前記k2個のiをi=l,…,
    k2とすると、前記利用者は前記認証用情報Xiを次式 Xi=▲RLi i▼ mod Ni,i=l,…,k2 で表わされる前記第2一方向性関数によってk2個作成す
    る工程を含む請求項22項記載の電子現金実施方法。
  24. 【請求項24】前記最後のパーティは前記第3者であ
    り、前記第4者は前記銀行であり、前記利用者は前記電
    子コインCの使用において、前記電子コインCとk2個の
    前記利用許可証Biと、k2個の前記利用者情報Viと、k2
    の前記認証用情報Xiとを含む前記電子現金情報とk2個の
    前記素数Liと、k2個のNiとを前記第3者に与え、前記第
    3者はk2個の前記問い合せ文qiを作成して前記利用者に
    与えると共に問い合せ文関数Ei=f(qi)によりk2個の
    問い合せ文情報Eiを計算し、前記利用者は与えられた前
    記問い合せ文qiから前記問い合せ文関数により問い合せ
    文情報Eiを作成し、その問い合せ文情報Eiと前記秘密情
    報Siと前記乱数情報Riとを使って次式 Yi=Ri・▲SEi i▼ mod Ni,i=l,…,k2 によりk2個の前記応答文Yiを作成して前記第3者に与
    え、前記第3者は自分で作成した問い合せ文情報Eiと、
    前記利用者から与えられた前記利用者情報Viと、前記認
    証用情報Xiとを使って次式 ▲YLi i▼≡Xi・▲VEi i▼(mod Ni),i=l,…,k2 が成立することにより前記応答文Yiの正当性を検証し、
    前記電子コインを正当なものとして認証する工程を含む
    請求項23項記載の電子現金実施方法。
  25. 【請求項25】前記第3者は前記電子コインの決済のた
    め前記電子現金情報Vi,Xi,Bi,CとNiと前記素数Liと、前
    記問い合せ文qiと、前記応答文Yiとを含む情報を前記銀
    行に与え、 前記銀行は次式で表わされる検証式 ▲YLi i▼≡Xi・▲VEi i▼(mod Ni),i=l,…,k2 が成立することによって前記問い合せ文qiに対する前記
    応答文Yiの正当性を検証する工程を含む請求項24項記載
    の電子現金実施方法。
  26. 【請求項26】前記銀行は前記第4者から受け取った前
    記利用者情報と前記認証用情報の組{Vi,Xi}と同じ値
    の組が前記銀行の前記メモリ内にあるか検査し、なかっ
    た場合は前記第4者から受けた情報を前記メモリに記憶
    し、あった場合は前記メモリ内に記憶されている対応す
    る問い合せ文q′iと応答文Y′iを読出し、前記読出し
    た問い合せ文q′iから問い合せ情報E′i=f
    (q′i)を計算し、次式 α・Li+β(Ei−E′i)=1 を満たす整数αとβをユークリッド互除去法により解
    き、更に次式 ▲Vα i▼・(Yi/Y′iβ mod Ni=Si より秘密情報Siを計算し、前記計算した秘密情報Siの中
    から前記電子コインを不正使用した前記利用者の識別情
    報IDPを得る工程を含む請求項25項記載の電子現金実施
    方法。
  27. 【請求項27】前記最後のパーティは前記第4者であ
    り、前記利用者は前記第3者に対し前記電子コインを与
    えるにあたって前記電子現金情報{Vi,Xi,Bi,C}と、Ni
    と、前記素数Liとを含む情報を前記第3者に与え、 前記第3者は前記問い合せ文εiをk2個作成して前記利
    用者に与え、 前記利用者は前記問い合せ文εiと前記乱数情報Riと前
    記秘密情報Siとを使って次式 Yi=Ri・▲Sεi i▼ mod Ni,i=l,…,k2 によりk2個の前記応答文Yiを作成して前記第3者に与
    え、前記第3者は次式 ▲YLi i▼≡Xi・▲Vεi i▼(mod Ni),i=l,…,k2 が成立することによって前記応答文Yiの正当性を検証
    し、自分の持っているk2個の利用許可証iを前記利用
    者に与え、前記利用者は受け取った前記第3者の利用許
    可証1,…,k2に対し署名を付けて譲渡証Tを作成
    し、前記第3者に与える工程を含む請求項23項記載の電
    子現金実施方法。
  28. 【請求項28】前記第3者は前記電子コインの使用にあ
    たって、Niと、Liと、前記電子現金情報{Vi,Xi,Bi,C}
    と、前記譲渡証Tと、前記問い合せ文εiと、前記応答
    文Yiと、前記第3者の利用許可証iと、前記第3者の
    利用許可証iの作成に係わった前記第3者の公開素数
    i、素数i、利用者情報iとを前記第4者に与
    え、 前記第4者は次式 ▲YLi i▼≡Xi・▲Vεi i(mod Ni),i=l,…,k2 が成立することによって前記利用者の応答文Yiの正当性
    を検証し、問い合せ文qiを作成して前記第3者に与える
    と共に問い合せ文関数Ei=f(qi)により問い合せ文情
    報Eiを計算し、 前記第3者は与えられた問い合せ文qiから前記問い合せ
    文関数Ei=f(qi)により問い合せ文情報Eiを計算して
    次式 から応答文iを作成し、前記第4者に与え、前記第4
    者は前記利用者の認証用情報Xiを使って次式 ▲ i▼≡Xi・▲Ei i▼(mod i),i=l,…,k2 が成立することにより前記第3者の応答文iの正当性
    を検証する工程を含む請求項27項記載の電子現金実施方
    法。
  29. 【請求項29】前記第4者は前記電子コインの決済のた
    め前記銀行に対し前記電子現金情報{Vi,Xi,Bi,C}と、
    前記利用者の情報Ni,Li,Yiと、前記譲渡証Tと、前記第
    3者の情報{iiii,εii}と前記第
    4者の問い合せ文qiを前記銀行に与え、前記銀行は次式
    で表わされる検証式 ▲YLi i▼≡Xi・▲Vεi i▼(mod Ni),i=l,…,k2 i▼≡Xi・▲Ei i▼(mod i) が成立することによって前記利用者の応答文Yiと前記第
    3者の応答文iの正当性を検証する工程を含む請求項2
    8項記載の電子現金実施方法。
  30. 【請求項30】前記銀行は前記第4者から受け取った前
    記利用者情報と前記認証用情報の組{Vi,Xi}と同じ値
    の組が前記銀行の前記メモリ内にあるか検査し、なかっ
    た場合は前記第4者から受けた情報を前記メモリに記憶
    し、あった場合は前記メモリ内に記憶されている対応す
    る問い合せ文q′iと応答文Y′iを読出し、前記読出し
    た問い合せ文q′iから問い合せ情報E′i=f
    (q′i)を計算し、次式 α・Li+β(Ei−E′i)=1 を満す整数αとβをユークリッド互除法により解き、更
    に次式 ▲Vα i▼・(Yi/Y′iβmod Ni=Si より秘密情報Siを計算し、前記計算した秘密情報Siの中
    から前記電子コインを不正使用した前記利用者の識別情
    報IDPを得る工程を含む請求項29項記載の電子現金実施
    方法。
  31. 【請求項31】前記銀行は前記第4者から受け取った前
    記第3者の前記利用者情報iと前記利用者の前記認証
    用情報Xiの組{i,Xi}と同じ値の組が前記銀行の前
    記メモリ内に記憶されているか検査し、なかった場合は
    受け取った情報を前記メモリ内に記憶し、あった場合は
    前記メモリ内に記憶されている対応する前記第4者の問
    い合せ文q′iとそれに対する前記第3者の応答文´i
    を読み出し、前記読出した問い合せ文q′iから問い合
    せ情報E′i=f(q′i)を計算し、次式 α・i+β・(Ei−E′i)=1 を満足する整数αとβをユークリッドの互除法により解
    き、更に次式 ▲α i▼・(i/′iβmod ii から秘密情報iを計算し、前記計算した秘密情報i
    中から電子コインを不正使用した前記第3者の識別情報
    を得る工程を含む請求項29又は30項記載の電子現金実施
    方法。
  32. 【請求項32】前記銀行はあらかじめ決めた複数K回の
    前記電子コインの使用を許可しており、前記最後のパー
    ティは前記第3者であり、前記第4者は前記銀行であ
    り、 前記利用者は前記電子コインのj回目、ただし1≦j≦
    k、の使用において前記第3者に前記電子現金情報
    {Vi,Xi,Bi,C}と情報{Ni,Li}を与え、 前記第3者は前記問い合せ文qiを作成して前記利用者に
    与えると共に問い合せ文関数Ei=f(qi)によって問い
    合せ文情報Eiを計算し、 前記利用者は前記問い合せ文qiから前記問い合せ文関数
    Ei=f(qi)により問い合せ文情報Eiを計算して次式 ▲Ψ<j> i▼=fj(Xi1/Limod Ni,i=l,…,k2 Yi=▲Ψ<j> i▼・▲SEi i▼mod Ni から前記応答文Yiを作成して前記第3者にjと共に与
    え、ここでfj(Xi)はjをパラメータとして変化するXi
    関数であり、 前記第3者は次式 ▲YLi i▼≡fj(Xi)・▲VEi i▼(mod Ni),i=l,…,k2 が成立することによって前記応答文Yiの正当性を検証す
    る工程を含む請求項23項記載の電子現金実施方法。
  33. 【請求項33】前記銀行はあらかじめ決めた複数K回の
    前記電子コインの使用を許可しており、 前記利用者は前記電子コインのj回目、1≦j≦k、の
    使用において前記第3者に前記電子現金情報{Vi,Xi,
    Bi,C}と情報{Ni,Li}を与え、 前記第3者は前記問い合せ文εiを作成して前記利用者
    に与え、 前記利用者は前記問い合せ文εiを使って次式 ▲Ψ<j> i▼=fj(Xi)1/Limod Ni,i=l,…,k2 Yi=▲Ψ<j> i▼・▲Sεi i▼ mod Ni により前記応答文Yiを作成して前記第3者にjと共に与
    え、ここでfj(Xi)はjをパラメータとして変化するXi
    関数であり、 前記第3者は次式 ▲YLi i▼≡fj(Xi)・▲Vεi i▼(mod Ni),i=l,…,
    k2 が成立することによって前記応答文Yiの正当性を検証
    し、前記第3者が持っている利用許可証i,i=l,…,k
    2、を前記利用者に与え、 前記利用者は自分の素数積Niを使って前記第3者の利用
    許可証iに対し署名を付けて譲渡証Tとして前記第3
    者に与える工程を含む請求項23項記載の電子現金実施方
    法。
  34. 【請求項34】前記最後のパーティは前記第4者であ
    り、前記第3者は前記電子コインの使用にあたって前記
    電子現金情報{Vi,Xi,Bi,C}と前記利用者の情報{Ni,L
    i,T,Yi,j}と前記第3の情報{iii,εi}を
    前記第4者に与え 前記第4者は次式 ▲YLi i▼≡Xi・▲Vεi i▼(mod Ni) が成立することにより前記利用者の応答文Yiの正当性を
    検証し、問い合せ文qiを作成して第3者へ与えると共に
    問い合せ文関数Ei=f(qi)により問い合せ文情報Ei
    計算し、 前記第3者は前記第4者からの問い合せ文qiから前記問
    い合せ文関数Ei=f(qi)により問い合せ文情報Eiを計
    算して次式 ▲Ψ<j> i▼=fj(Xi)1/imod i,i=l,…,k2 i =▲Ψ<j> i▼・▲Ei i▼ mod i により応答文iを作成してして前記第4者に与え、 前記第4者は次式 ▲ i▼=fj(Xi)・▼Ei i(mod i),i=l,…,k
    2 が成立することにより前記第3者の応答文iの正当性
    を検証する工程を含む請求項33項記載の電子現金実施方
    法。
  35. 【請求項35】前記銀行は前記電子コインの決済のため
    前記最後のパーティから前記電子現金情報{Vi,Xi,Bi,
    C}と、前記利用者の情報{Ni,Li,Yi,j}と、前記第3
    者の問い合せ文qiを含む情報を受け取ると、前記問い合
    せ文関数Ei=f(qi)により問い合せ文情報Eiを計算
    し、前記利用者情報Viと前記認証用情報Xiと前記jの組
    {Vi,Xi,j}と同じ値の組が前記銀行の前記メモリ内に
    記憶されているか検査し、同じ値の組があった場合は前
    記メモリ内から対応する前記第3者の問い合せ文qiとそ
    れに対する前記利用者の応答文Yiを読出し、前記読出し
    た問い合せ文q′iから問い合せ文情報E′i=f(q′
    i)を計算して次式 α・Li+β・(Ei−E′i)=1,i=l,…,k2 を満足する整数αとβをユークリッドの互除法により解
    いて更に次式 ▲Vα i▼・(Yi/Y′iβmod Ni=Si,i=l,…,k2 から秘密情報Siを計算し、その計算した秘密情報Siの中
    から前記電子コインを不正使用した前記利用者の識別情
    報IDPを得る工程を含む請求項32項記載の電子現金実施
    方法。
  36. 【請求項36】前記利用者情報を含む情報に前記ブライ
    ンド署名をさせる工程は、 前記利用者が、それぞれが前記識別情報を含むk個の前
    記秘密情報Si、kは2以上の整数、を作成し、k個の前
    記秘密情報Siから前記第1の一方向性関数により前記利
    用者情報Viをk個作成し、各前記利用者情報Viを含む情
    報Miを変数として一方向性の第1ブラインド署名前処理
    関数に与えることによりそれぞれ撹乱処理された対応す
    るk個の前記撹乱利用者情報Wiを作成し、それを前記銀
    行に与え、 前記銀行がk個の前記撹乱利用者情報Wiを受け取るとそ
    れらの中からk個より少ないあらかじめ決めた第1の個
    数k1の前記撹乱利用情報を選択し、選択した前記撹乱利
    用者情報の作成に前記利用者によってそれぞれ使われた
    前記秘密情報Siを含む情報の組を指定して前記利用者に
    対し要求し、 前記利用者が前記銀行の指定した前記第1の個数k1の前
    記情報の組を前記銀行に与え、 前記銀行が受け取った前記情報の組により前記第1の個
    数k1の対応する撹乱利用者情報W′iを計算し、それら
    計算された撹乱利用者情報W′iが前記選択した撹乱利
    用者情報Wiの対応するものと一致することを検証し、受
    け取った前記情報の組の中のすべての前記秘密情報Si
    中に前記利用者の前記識別情報IDPが含まれていること
    を確認し、前記利用者から受け取ったk個の前記撹乱利
    用者情報Wiのうち前記選択したk1個以外のあらかじめ決
    めた第2の個数k2の前記撹乱利用者情報から得た多重撹
    乱利用者情報に対し第1署名関数により署名をして署名
    付撹乱利用者情報Ωを作成して前記利用者に与え、 前記利用者が受け取った前記署名付撹乱利用者情報Ωに
    対し第1ブラインド署名後処理関数により撹乱除去処理
    をして前記署名付利用者情報Bを得る工程を含み、前記
    利用者は前記署名付利用者情報Bを前記銀行が発行した
    前記利用許可証として使用する請求項4項記載の電子現
    金実施方法。
  37. 【請求項37】前記電子コインの発行は、 前記利用者が前記乱数情報Riをk2個作成し、それらから
    第2一方向性関数によりk2個の前記認証用情報Xiを作成
    し、k2個の前記認証用情報Xiと前記利用許可証Bを含む
    情報mを変数として一方向性の第2ブラインド署名前処
    理関数に与えることにより前記撹乱認証用情報Zを作成
    して前記銀行に与え、 前記銀行は与えられた前記撹乱認証用情報Zに対し第2
    署名関数により署名をして前記署名付撹乱認証用情報Θ
    を作成して前記利用者に与え、 前記利用者は前記署名付撹乱認証用情報Θに対し第2ブ
    ラインド署名後処理関数を使って撹乱除去処理をして前
    記署名付認証用情報を前記電子コインCとして得る工程
    を含む請求項36項記載の電子現金実施方法。
  38. 【請求項38】前記利用者はk個の素数Liと,k対の秘密
    の素数Pi,Qiと、k個の素数積Ni=Pi×Qiを作成し、k
    個の前記秘密情報Siからk個の前記利用者情報Viを次式 Vi=▲SLi i▼ mod Ni,i=l,…,k で表わされる前記第1の一方向性関数により計算する工
    程を含む請求項37項記載の電子現金実施方法。
  39. 【請求項39】以下において前記k2個のiをi=l,…,
    k2とすると、前記利用者は前記認証用情報Xiを次式 Xi=▲RLi i▼ mod Ni,i=l,…,k2 で表わされる前記第2一方向性関数によって作成する工
    程を含む請求項38項記載の電子現金実施方法。
  40. 【請求項40】前記最後のパーティは前記第3者であ
    り、前記第4者は前記銀行であり、前記利用者は前記電
    子コインCの使用において、前記電子コインCと前記利
    用許可証Bと、k2個の前記利用者情報Viと、k2個の前記
    認証用情報Xiとを含む前記電子現金情報とk2個の前記素
    数Liとk2個のNiとを前記第3者に与え、 前記第3者は前記問い合せ文qiを作成して前記利用者に
    与えると共に問い合せ文関数Ei=f(qi)によりk2個の
    問い合せ文情報Eiを計算し、前記利用者は与えられた前
    記問い合せ文qiから前記問い合せ文関数により問い合せ
    文情報Eiを作成し、その問い合せ文情報Eiと前記秘密情
    報Siと前記秘密乱数情報Riとを使って次式 Yi=Ri・▲SEi i▼ mod Ni,i=l,…,k2 によりk2個の前記応答文Yiを作成して前記第3者に与
    え、 前記第3者は自分で作成した問い合せ文情報Eiと、前記
    利用者から与えられた前記利用者情報Viと、前記認証用
    情報Xiとを使って次式 ▲YLi i▼≡Xi・▲VEi i▼(mod Ni),i=l,…,k2 が成立することにより前記応答文Yiの正当性を検証する
    工程を含む請求項39項記載の電子現金実施方法。
  41. 【請求項41】前記第3者は前記電子コインの決済のた
    め前記電子現金情報Vi,Xi,B,Cと、Niと、前記問い合せ
    文qiと、前記応答文Yiとを含む情報を前記銀行に与え、 前記銀行は次の検証式 ▲YLi i▼≡Xi・▲VEi i▼(mod Ni),i=l,…,k2 が成立することによって前記問い合せ文qiに対する前記
    応答文Yiの正当性を検証する工程を含む請求項40記載の
    電子現金実施方法。
  42. 【請求項42】前記銀行は前記第4者から受け取った前
    記利用者情報と前記認証用情報の組{Vi,Xi}と同じ値
    の組が前記銀行の前記メモリ内にあるか検査し、なかっ
    た場合は前記第4者から受けた情報を前記メモリに記憶
    し、あった場合は前記メモリ内に記憶されている対応す
    る問い合せ文q′iと応答文Y′iを読出し、前記読出し
    た問い合せ文q′iから問い合せ文情報E′i=f(q′
    i)を計算し、次式、 α・Li+β(Ei−E′i)=1 を満す整数のα,βをユーリッド互除法により解き、更
    に次式 ▲Vα i▼・(Yi/Y′iβmod Ni=Si より秘密情報Siを計算し、前記計算した秘密情報Siの中
    から前記電子コインを不正使用した前記利用者の識別情
    報IDPを得る工程を含む請求項41項記載の電子現金実施
    方法。
  43. 【請求項43】前記最後のパーティは前記第4者であ
    り、前記利用者は前記第3者に対し前記電子コインを与
    えるにあたって前記電子現金情報{Vi,Xi,B,C}と、Ni
    と、前記素数Liとを含む情報を前記第3者に与え、 前記第3者は前記問い合せ文εiをk2個作成して前記利
    用者に与え、 前記利用者は前記問い合せ文εiと前記秘密乱数情報Ri
    と前記秘密情報Siとを使って次式 Yi=Ri・▲Sεi i▼ mod Ni,i=l,…,k2 によりk2個の前記応答文を作成して前記第3者に与え、 前記第3者は次式 ▲YLi i▼≡Xi・▲Vεi i▼(mod Ni),i=l,…,k2 が成立することによって前記応答文の正当性を検証し、
    自分の持っている利用許可証を前記利用者に与え、前
    記利用者は受け取った前記第3者の利用許可証に対し
    署名を付けて譲渡証Tを作成し、前記第3者に与える工
    程を含む請求項39項記載の電子現金実施方法。
  44. 【請求項44】前記第3者は前記電子コインの使用にあ
    たってNiと、Liと、前記電子現金情報{Vi,Xi,B,C}
    と、前記譲渡証Tと、前記問い合せ文εiと、前記応答
    文Yiと、前記第3者の利用許可証と、前記第3者の利
    用許可証の作成に係わった前記第3者の素数積i
    素数i、利用者情報iとを前記第4者に与え、 前記第4者は次式 ▲YLi i▼≡Xi・▲Vεi i▼(mod Ni),i=l,…,k2 が成立することによって前記利用者の応答文Yiの正当性
    を検証し、問い合せ文qiを作成して前記第3者に与える
    と共に問い合せ文関数Ei=f(qi)により問い合せ文情
    報Eiを計算し、 前記第3者は与えられた問い合せ文qiから前記問い合せ
    文関数Ei=f(qi)により問い合せ文情報Eiを計算して
    次式 から応答文iを作成し、前記第4者に与え、 前記第4者は前記利用者の認証用情報Xiを使って次式 ▲ i▼≡Xi・▲Ei i▼(mod i),i=l,…,k2 が成立することにより前記第3者の応答文iの正当性
    を検証する工程を含む請求項43項記載の電子現金実施方
    法。
  45. 【請求項45】前記第4者は前記電子コインの決済のた
    め前記銀行に対し前記電子現金情報{Vi,Xi,B,C}と、
    前記利用者の情報Ni,Li,Xiと、前記譲渡証Tと、前記第
    3者の情報{iii,,εii}と前記第
    4者の情報を前記銀行に与え、前記銀行は次式 ▲YLi i▼≡Xi・▲Vεi i▼(mod Ni),i=l,…,k2 i▼≡Xi・▲Ei i▼(mod i) が成立することによって前記利用者の応答文Yiと前記第
    3者の応答文iの正当性を検証する工程を含む請求項4
    4項記載の電子現金実施方法。
  46. 【請求項46】前記銀行は前記第4者から受け取った前
    記利用者情報と前記認証用情報の組{Vi,Xi}と同じ値
    の組が前記銀行の前記メモリ内にあるか検査し、なかっ
    た場合は前記第4者から受けた情報を前記メモリに記憶
    し、あった場合は前記メモリ内に記憶されている対応す
    る問い合せ文q′iと応答文Y′iを読出し、前記読出し
    た問い合せ文q′iから問い合せ情報E′i=f
    (q′i)を計算し、次式 α・Li+β(Ei−E′i)=1 を満たす整数αとβをユーリッド互除法により解き、更
    に次式 ▲Vα i▼・(Yi/Y′iβmod Ni=Si より秘密情報Siを計算し、前記計算した秘密情報Siの中
    から前記電子コインを不正使用した前記利用者の識別情
    報IDPを得る工程を含む請求項45項記載の電子現金実施
    方法。
  47. 【請求項47】前記銀行は前記第4者から受け取った前
    記第3者の前記利用者情報iと前記利用者の前記認証
    用情報Xiの組{i,Xi}と同じ値の組が前記銀行の前記
    メモリ内に記憶されているか検査し、なかった場合は受
    け取った情報を前記メモリ内に記憶し、あった場合は前
    記メモリ内に記憶されている対応する前記第4者の問い
    合せ文q′iとそれに対する前記第3者の応答文´i
    読出し、前記読出した問い合せ文q′iから問い合せ情
    報E′i=f(q′i)を計算し、次式 α・i+β・(Ei−E′i)=1 を満足する整数αとβをユークリッドの互除法により解
    き、更に次式 ▲α i▼・(i/′iβmod ii から秘密情報iを計算し、前記計算した秘密情報i
    中から前記電子コインを不正使用した前記第3者の識別
    情報を得る工程を含む請求項45又は46項記載の電子現金
    実施方法。
  48. 【請求項48】前記銀行はあらかじめ決めた複数K回の
    前記電子コインの使用を許可しており、前記最後のパー
    ティは前記第3者であり、前記第4者は前記銀行であ
    り、 前記利用者は前記電子コインのj回目、ただし1≦j≦
    K、の使用において前記第3者に前記電子現金情報
    {Vi,Xi,B,C}と情報{Ni,Li}を与え、 前記第3者は前記問い合せ文qiを作成して前記利用者に
    与えると共に問い合せ文関数Ei=f(qi)によって問い
    合せ文情報Eiを計算し、 前記利用者は前記問い合せ文qiから前記問い合せ文関数
    Ei=f(qi)により問い合せ文情報Eiを計算して次式 ▲Ψ<j> i▼=fj(Xi)1/Limod Ni,i=l,…,k2 Yi=▲Ψ<j> i▼・▲SEi i▼ mod Ni から前記応答文Yiを作成して前記第3者にjと共に与
    え、ここでfj(Xi)はjをパラメータとして変化するXi
    関数であり、 前記第3者は次式 ▲YLi i▼≡fj(Xi)・▲VEi i▼(mod Ni),i=l,…,k2 が成立することによって前記応答文Yiの正当性を検証す
    る工程を含む請求項39項記載の電子現金実施方法。
  49. 【請求項49】前記銀行はあらかじめ決めた複数K回の
    前記電子コインの使用を許可しており、 前記利用者は前記電子コインのj回目、1≦j≦K、の
    使用において前記第3者に前記電子現金情報{Vi,Xi,B,
    C}と情報{Ni,Li}を与え、 前記第3者は前記問い合せ文情報εiを作成して前記利
    用に与え、 前記利用者は前記問い合せ文情報εiを使って次式 ▲Ψ<j> i▼=fj(Xi)1/Limod Ni,i=l,…,k2 Yi=▲Ψ<j> i▼・▲SEi i▼ mod Ni により前記応答文Yiを作成して前記第3者にjと共に与
    え、ここでfj(Xi)はjをパラメータとして変化するXi
    関数であり、 前記第3者は次式 ▲YLi i▼≡fj(Xi)・▲Vεi i▼(mod Ni),i=l,…,
    k2 が成立することにより前記応答文Yiの正当性を検証し、
    前記第3者が持っている利用許可証を前記利用者に与
    え、 前記利用者は自分の素数積Niを使って前記第3者の利用
    許可証に対し署名を付けて譲渡証Tとして前記第3者
    に与える工程を含む請求項39項記載の電子現金実施方
    法。
  50. 【請求項50】前記最後のパーティは前記第4者であ
    り、前記第3者は前記電子コインの使用にあたって前記
    電子現金情報{Vi,Xi,B,C}と前記利用者の情報{Ni,
    Li,T,Yi,j}と前記第3者の情報{ii,,εi
    を前記第4者に与え、 前記第4者は次式 ▲YLi i▼≡Xi,▲Vεi i▼(mod Ni) が成立することにより前記利用者の応答文Yiの正当性を
    検証し、問い合せ文qiを作成して前記第3者へ与えると
    共に問い合せ文関数Ei=f(qi)により問い合せ文情報
    Eiを計算し、 前記第3者は前記第4者からの問い合せ文qiから前記問
    い合せ文関数Ei=f(qi)により問い合せ文情報Eiを計
    算して次式 i=▲Ψ<j> i▼・▲Ei i▼ mod i により応答文iを作成して前記第4者に与え、 前記第4者は次式 ▲ i▼≡Xi,▲Ei i▼(mod i),i=l,…,k2 が成立することにより前記第3者の応答文iの正当性
    を検証する工程を含む請求項49項記載の電子現金実施方
    法。
  51. 【請求項51】前記銀行は前記電子コインの決済のため
    前記最後のパーティから前記電子現金情報{Vi,Xi,B,
    C}と、前記利用者の情報{Ni,Li,Yi,j}と、前記第3
    者の問い合せ文qiを含む情報を受け取ると、前記問い合
    せ文関数Ei=f(qi)により問い合せ文情報Eiを計算
    し、前記利用者情報Viと前記認証用情報Xiと前記jの組
    {Vi,Xi,j}と同じ値の組が前記銀行の前記メモリ内に
    記憶されているか検査し、同じ値の組があった場合は前
    記メモリ内から対応する前記第3者の問い合せ文q′i
    とそれに対する前記利用者の応答文Yiを読出し、前記読
    出した問い合せ文から問い合せ文情報E′i=f
    (q′i)を計算して次式 α・Li+β・(Ei−E′i)=1 i=l,…,k2 を満足する整数α,βをユークリッドの互除法により解
    いて更に次式 ▲Vα i▼・(Yi/Y′iβ mod Ni=Si から秘密情報Siを計算し、その計算した秘密情報Siの中
    から前記電子コインを不正使用した前記利用者の識別情
    報IDPを得る工程を含む請求項48項記載の電子現金実施
    方法。
  52. 【請求項52】銀行が利用者に対し電子現金を発行し、
    利用者がその電子現金を使って第3者に支払をする電子
    現金を実施する利用者装置において、 識別情報を含む秘密情報を作成する秘密情報作成手段
    と、 前記秘密情報作成手段から出力された前記秘密情報から
    第1一方向性関数を使って利用者情報を作成する利用者
    情報作成手段と、 前記利用者情報作成手段から出力された前記利用者情報
    を含む情報に対し一方向性のブラインド署名前処理をし
    て撹乱利用者情報を作る第1ブラインド署名前処理手段
    と、 前記銀行が前記撹乱利用者情報に署名した署名付撹乱利
    用者情報から撹乱を除去して署名付利用者情報を作るブ
    ラインド署名後処理手段と、 秘密乱数情報を発生する秘密乱数情報発生手段と、 前記秘密乱数情報発生手段から出力された前記秘密乱数
    情報から第2一方向性関数を使って認証用情報を作成す
    る認証用情報作成手段と、 前記認証用情報作成手段から出力された前記認証用情報
    を含む情報に対し一方向性のブラインド署名前処理をし
    て撹乱認証用情報を作る第2ブラインド署名前処理手段
    と、 前記銀行が前記撹乱認証用情報に署名した署名付撹乱認
    証用情報から撹乱を除去して署名付認証用情報を作る第
    2ブラインド署名後処理手段と、 前記第3者の問い合せ文に対し少くとも前記秘密情報を
    使って応答文を作成する応答文作成手段とを含む利用者
    装置。
  53. 【請求項53】前記第2ブラインド署名前処理手段は前
    記認証用情報と前記署名付利用者情報を連結して連結文
    を作るための連結手段と、前記連結文を撹乱数で撹乱し
    て前記撹乱利用者情報を作成する一方向性前処理関数器
    とを含む請求項52項記載の利用者装置。
  54. 【請求項54】前記第3者から与えられた前記第3者の
    署名付利用者情報に前記利用者が署名を付けるための一
    方向性署名関数器を含む請求項53項記載の利用者装置。
JP8883890A 1989-04-03 1990-04-03 電子現金実施方法及びその装置 Expired - Fee Related JPH0752460B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8883890A JPH0752460B2 (ja) 1989-04-03 1990-04-03 電子現金実施方法及びその装置

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
JP8157189 1989-04-03
JP12294489 1989-05-18
JP1-122944 1989-05-18
JP1-81571 1989-05-18
JP1-122945 1989-05-18
JP12294589 1989-05-18
JP8883890A JPH0752460B2 (ja) 1989-04-03 1990-04-03 電子現金実施方法及びその装置

Publications (2)

Publication Number Publication Date
JPH0373065A JPH0373065A (ja) 1991-03-28
JPH0752460B2 true JPH0752460B2 (ja) 1995-06-05

Family

ID=27466591

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8883890A Expired - Fee Related JPH0752460B2 (ja) 1989-04-03 1990-04-03 電子現金実施方法及びその装置

Country Status (1)

Country Link
JP (1) JPH0752460B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018205966A (ja) * 2017-06-01 2018-12-27 株式会社 エヌティーアイ データ構造、送信装置、受信装置、決済装置、方法、コンピュータプログラム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2631776B2 (ja) * 1991-06-14 1997-07-16 日本電信電話株式会社 電子現金実施方法
US5453601A (en) * 1991-11-15 1995-09-26 Citibank, N.A. Electronic-monetary system
EP0720102A4 (en) * 1994-07-18 1997-09-03 Ntt Data Tsushin Kk ELECTRONIC ACCOUNT BOOK AND CASH PROCESSING SYSTEM USING THE SAME
DE69829938T2 (de) 1997-12-26 2006-02-23 Nippon Telegraph And Telephone Corp. Verfahren zum Einführen von elektronischem Geld für einen Emittent mit elektronischen Saldo-Zählern, entsprechende Vorrichtung und Speicherelement mit gespeichertem Programm zur Durchführung des Verfahrens
JP4510392B2 (ja) * 2002-03-15 2010-07-21 パナソニック株式会社 個人情報認証を行うサービス提供システム
KR20060034464A (ko) * 2004-10-19 2006-04-24 삼성전자주식회사 사용자의 익명성을 보장하는 디지털 티켓을 이용한전자상거래 방법 및 장치
GB201806112D0 (en) * 2018-04-13 2018-05-30 Nchain Holdings Ltd Computer-implemented system and method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018205966A (ja) * 2017-06-01 2018-12-27 株式会社 エヌティーアイ データ構造、送信装置、受信装置、決済装置、方法、コンピュータプログラム
WO2018221725A3 (ja) * 2017-06-01 2019-01-24 株式会社エヌティーアイ データ構造、送信装置、受信装置、決済装置、方法、コンピュータプログラム

Also Published As

Publication number Publication date
JPH0373065A (ja) 1991-03-28

Similar Documents

Publication Publication Date Title
CN110781521B (zh) 基于零知识证明的智能合约认证数据隐私保护方法及系统
EP0391261B1 (en) Method and apparatus for implementing electronic cash
Franklin et al. Secure and efficient off-line digital money
US5511121A (en) Efficient electronic money
US6766306B1 (en) Electronic cash system
EP0348812A2 (en) Authentication method and apparatus therefor
Hwang et al. A simple micro-payment scheme
EP0755136A2 (en) Method and apparatus for implementing traceable electronic cash
JP3102692B2 (ja) カードの真性を証明する方法
JPH0752460B2 (ja) 電子現金実施方法及びその装置
Simmons et al. Zero-knowledge proofs of identity and veracity of transaction receipts
Wang et al. A consumer scalable anonymity payment scheme with role based access control
JP2805493B2 (ja) 認証方法及びそれに用いる装置
CN108090751A (zh) 电子现金系统
JP3171227B2 (ja) 信託機関付き電子紙幣実施方法
JP2879792B2 (ja) 電子現金の分割使用方法およびその装置
JP3859983B2 (ja) ブラインド署名方法、その装置、そのプログラム及びその記録媒体
JP2631781B2 (ja) 電子現金実施方法
JPH1020781A (ja) 電子署名方法、その検証方法および装置
JP3435677B2 (ja) 追跡可能な電子現金実施方法及びその装置
JP3599493B2 (ja) 発行機関分離型番号登録式電子現金方法および利用者装置
JPH10171903A (ja) 電子現金方法及びこれに用いる装置
JP2805494B2 (ja) 認証方法及びそれに用いる装置
Lee et al. Smart card based off-line micropayment framework using mutual authentication scheme
JP3171228B2 (ja) 複数信託機関を利用した電子紙幣実施方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees