(57)【特許請求の範囲】
【請求項１】
銀行の装置（以下、銀行装置と記す）と、電子コインを発行してもらう者（以下、利用者と記す）の装置（以下、利用者装置と記す）と、電子コインを発行する機関（以下、発行機関と記す）の装置（以下、発行機関装置と記す）とによる電子現金を実施する電子現金方法において、
利用者装置はランダムな引換番号Ｒｃを用いて署名対象Ｃを計算し、署名対象Ｃを秘密情報Ｒｂにより攪乱してＺを得、そのＺおよび引き下ろし額ｗｉを銀行装置へ送付し、
銀行装置はＺに対して引き下ろし額ｗｉ相当の署名Ｑを付けて利用者装置へ返送し、
利用者装置は秘密情報Ｒｂを用いて署名Ｑから署名対象Ｃに対する署名ＳＣを計算して引換証ＳＣを得、ｗｉ，Ｒｃ，ＳＣを引換情報として記憶し、
利用者装置は引換証ＳＣと引き下ろし額ｗｉと引換番号Ｒｃを発行機関装置に送り、
発行機関装置は署名対象Ｃを計算し、署名ＳＣを検証して引換番号Ｒｃが引換履歴ＨＣに既に記憶されていないことに基づき、引換証ＳＣが有効であることを確認した後、引換番号Ｒｃを記憶し、コイン番号Ｒｆを生成して記憶し、コイン番号Ｒｆに基づく電子コインＦを発行し、コイン番号Ｒｆを発行履歴ＨＦに記憶し、
決済時に、前記銀行装置又は他の銀行装置は入金された電子コインＦを発行機関装置に送り、
発行機関装置はこれが有効であることを確認した後、コイン番号Ｒｆに関する記憶を発行履歴ＨＦから削除することを特徴とする発行機関分離型番号登録式電子現金方法。
【請求項２】
請求項１記載の番号登録式電子現金方法において、
公開情報Ｄを前記引換情報に加え、公開情報Ｄは適当な時期に更新することを特徴とする電子現金方法。
【請求項３】
電子現金を受領するもの（以下、受領者と記す）の装置（以下、受領者装置と記す）を含めて電子現金を実施する方法であり、
銀行装置は秘密鍵情報Ｓ１、公開鍵情報Ｐ１，Ｐ２、および公開情報Ｄを保持し、発行機関装置は秘密鍵情報Ｓ２、公開鍵情報Ｐ１，Ｐ２、および引換証の有効日付を示す有効判定情報ＪＤを保持し、
利用者装置は公開鍵情報Ｐ１，Ｐ２、および公開情報Ｄを保持し、
利用者装置はＲｃを生成し、これをハッシュ演算して前記署名対象Ｃを得、
公開情報Ｄおよび引き下ろし金額ｗｉにより公開鍵指数部ｅ１を計算し、秘密情報Ｒｂとして乱数Ｒｂを用い、Ｃ，ＲｂおよびＰ１，ｅ１を用いてＣをブラインド署名前処理して前記Ｃに対する攪乱Ｚを得、
銀行装置はｗｉおよび秘密鍵情報Ｓ１、公開情報Ｄを用いて秘密鍵指数部ｄ１を計算し、Ｓ１，ｄ１，Ｚを用いてＺに対するｗｉ相当の署名演算を行って前記署名Ｑを得、
利用者装置はＱ，Ｒｂ、および公開鍵情報Ｐ１を用いてＱに対しブラインド署名後処理を行って前記引換証ＳＣを得、
発行機関装置は受信したＤと有効判定情報ＪＤとを比較してＤが有効であることを確認し、これも電子コインＦの発行条件とし、Ｄおよび引き下ろし金額ｗｉを用いて公開鍵指数部ｅ１を計算し、ＳＣ，Ｒｃ，Ｐ１，ｅ１を用いてＳＣの署名検証器の検証を行い、これも電子コインＦの発行条件とし、利用者装置はＦ，Ｒｆ，ｗｉを受領者装置へ送って支払を行い、
受領者装置はＦ，Ｒｆおよびｗｉを決済のために銀行装置へ送信し、
これらを受領した銀行装置は発行機関装置にこれらを送信し、
発行機関装置はＲｆが発行履歴ＨＦに記憶されていることを確認し、Ｆ，Ｒｆ，ｗｉ，Ｐ２によりＦが正当であるかを検証して前記有効であることの確認を行うことを特徴とする請求項２記載の番号登録式電子現金方法。
【請求項４】
銀行装置の秘密鍵情報Ｓ１は２つの大きな素数ｐ１，ｑ１であり、公開鍵情報Ｐ１はＮ１であり、Ｎ１とｐ１，ｑ１はＮ１＝ｐ１×ｑ１の関係にあり、発行機関装置の秘密鍵情報Ｓ２はｐ２，ｑ２および整数ｄ２であり、公開鍵情報Ｐ２はｅ２およびＮ２であり、Ｎ２とｐ２，ｑ２はＮ２＝ｐ２×ｑ２の関係にあり、ｄ２とｅ２はｄ２＝１／ｅ２ mod  ＬＣＭ（ｐ２−１，ｑ２−１）なる関係にあり（ＬＣＭ（ａ，ｂ）はａとｂの最小公約数を表わす）、前記公開鍵指数部ｅ１の生成をｆ（Ｄ，ｗｉ）の計算で行い、前記ハッシュ演算はｇ( ) を一方向性関数としてｇ（Ｒｃ）を計算し、
前記ブラインド署名前処理を
Ｃ×Ｒｂe1 mod  Ｎ１
の計算により行い、
前記秘密鍵指数部ｄ１の生成を、
１／ｆ（Ｄ，ｗｉ） mod  ＬＣＭ（ｐ１−１，ｑ１−１）
の計算で行い、前記署名Ｑを得る演算を、
Ｚd1 mod  Ｎ１
の計算により行い、
前記ブラインド署名後処理を、
Ｑ／Ｒｂ mod  Ｎ１
の計算により行い、
発行機関装置での前記ＳＣに対する署名検証を、
ｇ（Ｒｃ）＝ＳＣe1 mod  Ｎ１
が成立することで確認し、前記ｗｉ，Ｒｆに対する署名Ｆの生成を、
ｇ（ｗｉ，Ｒｆ）d2 mod  Ｎ２
の計算により行って前記電子コインＦを得、
発行機関装置での前記Ｆの正当性の検証を、
ｇ（ｗｉ，Ｒｆ）＝Ｆe2  mod Ｎ２
が成立することにより確認することを特徴とする請求項３記載の番号登録式電子現金方法。
【請求項５】
請求項１に記載の番号登録式電子現金方法において、
銀行装置は預金引き下ろし時に、公開情報ＤおよびＤに対するその銀行の署名ＳＤを利用者装置に送信し、利用者装置は署名対象Ｃの計算に際し、ランダムな引換番号Ｒｃに加え、ＤおよびＳＤを用いることを特徴とする電子現金方法。
【請求項６】
請求項５記載の電子現金方法において、
電子現金を受領するものの装置（以下受領者装置と記す）も含み電子現金を実施する方法であり、
銀行装置は秘密鍵情報Ｓ１、公開鍵情報Ｐ１，Ｐ２、公開情報Ｄ，ＳＤおよび、額面ｗｉ（ｉ＝１…ｎ）に対応する公開鍵情報Ｐｗｉと秘密鍵情報Ｓｗｉの金額対鍵対応表を保持し、
ＳＤは秘密鍵情報Ｓ１による公開鍵情報Ｄに対するディジタル署名であり、
発行機関装置は秘密鍵情報Ｓ２、公開鍵情報Ｐ１，Ｐ２、公開情報Ｄ、有効判定情報ＪＤおよび、額面ｗｉ（ｉ＝１…ｎ）に対応する公開鍵情報Ｐｗｉと金額対鍵対応表を保持し、
利用者装置は公開鍵情報Ｐ１，Ｐ２および、額面ｗｉ（ｉ＝１…ｎ）に対応する公開鍵情報Ｐｗｉとの金額対鍵対応表を保持し、
利用者装置は受領したＳＤ，Ｄを公開鍵情報Ｐ１により署名検証を行い、正しければ、引換番号Ｒｃを生成し、署名対象ＣをＤ，ＳＤおよびＲｃのハッシュ演算により求め、
秘密情報Ｒｂを乱数の生成により求め、
ＣおよびＲｂをブラインド署名前処理して前記Ｃに対するＲｂの攪乱を行い、
銀行装置はｗｉに対応する秘密鍵情報ＳｗｉによりＺに対する署名を行って前記署名Ｑを求め、
利用者装置はＱ，Ｒｂ，Ｐｗｉを用いてブラインド署名後処理を行って前記引換証ＳＣを得る計算を行い、ｗｉ，Ｄ，ＳＤ，Ｒｃ，ＳＣを引換情報として保持し、利用者装置は発行機関装置へＳＣ，ｗｉ，Ｒｃの他にＤ，ＳＤも送信し、
発行機関装置は受信したＤ，ＳＤの公開鍵情報Ｐ１を用いてＳＤの署名検証を行ってＳＤの正当性を確認し、Ｄと有効判定情報ＪＤを比較して、Ｄが有効であることを確認し、その後、前記署名対象Ｃの計算およびＳＣの検証を、Ｄ，ＤＳ，Ｒｃを用いて署名対象Ｃを計算し、そのＣと、Ｐｗｉとを用いてＳＣの署名検証を行ってＳＣの正当性を検証して行い、前記電子コインＦの発行を、ｗｉ，Ｒｆに対するＳ２による署名により求め、
利用者装置は支払のためにＦ，Ｒｆ，ｗｉを受領者装置へ送り、
受領者装置は受信したＦ，Ｒｆおよびｗｉを銀行装置へ送信し、
これらを受信した銀行装置はそのＦ，Ｒｆ，ｗｉを発行機関装置に送信し、
発行機関装置は発行履歴ＨＦを検索してこれに存在していることによりＲｆが有効であることを確認し、ｗｉ，Ｐ２を用いてＦ，Ｒｆに対する署名検証を行ってＦが正当であることを確認することを特徴とする電子現金方法。
【請求項７】
請求項６記載の番号登録式電子現金方法において、
銀行装置の秘密鍵情報Ｓ１は２つの大きな素数ｐ１，ｑ１および整数ｄ１であり、公開鍵情報Ｐ１はｅ１およびＮ１であり、Ｎ１とｐ１，ｑ１はＮ１＝ｐ１×ｑ１の関係にあり、ｄ１とｅ１はｄ１＝１／ｅ１ mod  ＬＣＭ（ｐ１−１，ｑ１−１）なる関係にあり、
発行機関装置の秘密鍵情報Ｓ２はｐ２，ｑ２および整数ｄ２であり、公開鍵情報Ｐ２はｅ２およびＮ２であり、Ｎ２とｐ２、ｑ２はＮ２＝ｐ２×ｑ２の関係にあり、ｄ２とｅ２はｄ２＝１／ｅ２ mod  ＬＣＭ（ｐ２−１，ｑ２−１）なる関係にあり、
銀行装置の秘密鍵情報Ｓｗｉはｐｗｉ，ｑｗｉおよび整数ｄｗｉであり、公開鍵情報ｐｗｉはｅｗｉおよびＮｗｉであり、Ｎｗｉとｐｗｉ、ｑｗｉはＮｗｉ＝ｐｗｉ×ｑｗｉの関係にあり、ｄｗｉとｅｗｉはｄｗｉ＝１／ｅｗｉ  mod ＬＣＭ（ｐｗｉ−１，ｑｗｉ−１）なる関係にあり、
公開情報Ｄは日付であり、ＳＤはＳＤ＝Ｄd1  mod Ｎ１の関係を満たすＤに対する署名であり、
利用者装置でのＳＤに対する検証は
Ｄ＝ＳＤe1  mod Ｎ１
が成立することの確認により行い、
Ｄ，ＳＤ、および引換番号Ｒｃのハッシュ演算は、ｇ( ) を一方向性関数として
ｇ（Ｄ，ＳＤ，Ｒｃ）
の計算により行い、ブラインド署名前処理を
Ｃ×Ｒｂewi  mod  Ｎｗｉ
の計算により行い、銀行装置でのＺに対する署名生成を、
Ｚdwi mod Ｎｗｉ
の計算により行い、
利用者装置でのブラインド署名後処理を、
Ｑ／Ｒｂ mod  Ｎｗｉ
の計算により行い、発行機関装置でのＳＤの検証を、
Ｄ＝ＳＤe1 mod  Ｎ１
が成り立つことの確認により行い、Ｄと有効判定情報ＪＤの比較からＤが有効期限内にあることを確認し、ＳＣの署名検証を、
ｇ（Ｄ，ＳＤ，Ｒｃ）＝ＳＣewi  mod  Ｎｗｉ
が成立つことの確認により行い、ｗｉ，Ｒｆに対する署名を、
ｇ（ｗｉ，Ｒｆ）d2 mod  Ｎ２
の計算により行い、
発行機関装置ではＦの検証を、
ｇ（ｗｉ，Ｒｆ）＝Ｆe2 mod  Ｎ２
が成立つことの確認により行うことを特徴とする電子現金方法。
【請求項８】
請求項２記載の番号登録式電子現金方法において、
電子現金を受領するものの装置（以下受領者装置と記す）および、信託機関装置も含み電子現金を実施する方法であり、
信託機関装置の秘密鍵と公開鍵を（ｄｊ，Ｎｊ）と（ｅｊ，Ｎｊ）とし、利用者装置の秘密鍵と公開鍵を（ｄｕ，Ｎｕ）と（ｅｕ，Ｎｕ）とし、発行機関装置の秘密鍵と公開鍵を（ｄ２，Ｎ２）と（ｅ２，Ｎ２）とし、銀行装置が使用する署名用の鍵の法はＮ１（＝ＬＣＭ（ｐ１−１，ｑ１−１））であり、銀行装置の秘密鍵（ｄ１，Ｎ１）と公開鍵（ｅ１，Ｎ１）中のｄ１とｅ１は日付と額面金額をもとにその都度生成され、
利用者装置は鍵中の匿名公開情報Ｎｕを信託機関装置へ送信し、
信託機関装置は有効期限の情報Ｉを生成し、ＮｕおよびＩに対する署名Ｂを計算し、ＢとＩを利用者装置へ送信する。利用者装置はＢ，Ｉ，Ｎｕを利用許可証（Ｂ，Ｉ，Ｎｕ）として保持し、
利用者装置は日付情報Ｄと引出額ｗｉを公開鍵指数部生成器に入力し、金額署名用公開鍵ｅ１を計算し、
乱数Ｒｃを生成して記憶し、ＲｃとＢに対しハッシュ演算ｇを施し、ｇ（Ｂ‖Ｒｃ）を計算し、秘密情報Ｒｂとし乱数を生成し、引出額ｗｉとｅｌとＮｌを用いて
Ｚ＝ｇ（Ｂ‖Ｒｃ）Ｒｂe1 mod  Ｎ１
を計算して、ブラインド署名前処理を行い、Ｚ，ｗｉ，Ｄを銀行装置へ送信し、
銀行装置はｐ１，ｑ１および受信したＤ，ｗｉを用いて、秘密鍵指数部生成器により秘密鍵ｄ１を計算し、
ｄ１とＮ１，Ｚを用いて
Ｑ＝Ｚd1  mod  Ｎ１
を計算して、仮署名Ｑを求め、Ｑを利用者装置へ送信し、
利用者装置はＲｂ，Ｎ１とＱを用いて、
ＳＣ＝Ｑ／Ｒｂ mod  Ｎ１
を計算して引換証ＳＣを求め、ＳＣ，ｗｉ，Ｂ，Ｄ，Ｒｃを発行機関装置へ送信し、
発行機関装置はＤと保持している引換証の有効日付ＪＤとを比較し、Ｄが有効であることを確認するとＲｃが引換履歴に記録されていないことを確認し、受信したＤおよびｗｉを用いてｅ１を計算し、ｅ１と受信したＢ，Ｒｃ，ＳＣとＮ１を用いて、
ｇ（Ｂ，Ｒｃ）＝ＳＣe1  mod  Ｎ１
が成立することを確認し、
確認ができたら、Ｒｃを引換履歴に記憶し、乱数Ｒｆをコイン番号Ｒｆとして生成し、ｗｉ，Ｒｆ，Ｂを発行履歴に記憶し、Ｂ，Ｒｆ，ｗｉ，ｄ２，Ｎ２を用いて、
Ｆ＝ｇ（Ｂ，ｗｉ，Ｒｆ）d2  mod  Ｎ２
を計算して、電子コインＦを生成し、Ｆ，Ｒｆを利用者装置へ返送し、
利用者装置は受信したＦ、ｗｉ、ＲｆとＩ、Ｎｕ、Ｂを受領者装置へ送信し、
受領者装置は受信したＩ、Ｎｕとｅｊ、Ｎｊを用いて、
ｇ（Ｎｕ，Ｉ）＝Ｂej  mod  Ｎｊ
を計算し、この式が成立することによりＢが正当性であることを確認し、
受信したＢ、ｗｉ、Ｒｆ、Ｆとｅ２、Ｎ２を用いて、
ｇ（Ｂ、ｗｉ、Ｒｆ）＝Ｆe2  mod  Ｎ２
を計算し、この式が成立することにより、Ｆの正当性を検証することを特徴とする番号登録式電子現金方法。
【請求項９】
請求項５記載の番号登録式電子現金方法において、
銀行装置は秘密鍵情報Ｓ１、公開鍵情報Ｐ１，Ｐ２、公開情報Ｄ，ＳＤ、額面ｗｉ（ｉ＝１，…ｎ）に対応する公開鍵情報Ｐｗｉと秘密鍵情報Ｓｗｉの対応表を保持し、ＳＤはＳ１によるＤに対するディジタル署名であり、発行機関装置は秘密鍵情報Ｓ２、公開鍵情報Ｐ１，Ｐ２、公開情報Ｄ、有効判定情報ＪＤ、額面ｗｉに対応する公開鍵情報Ｐｗｉとの対応表を保持し、
利用者装置は公開鍵情報Ｐ１，Ｐ２、額ｗｉに対応する公開鍵情報との対応表を保持し、
電子現金を受領するものの装置（以下、受領者装置と記す）を備え、
銀行装置は公開情報Ｄ、その署名ＳＤを発行機関装置へ送信し、発行機関装置は受信した各銀行装置のＤ，ＳＤを保持し、
利用者装置は受信したＳＤ，ＤをＰ１により署名検証を行い、正しければ引換番号Ｒｃを生成し、
前記署名対象ＣをＤ，ＳＤ，Ｒｃのハッシュ演算により求め、
秘密情報Ｒｂを乱数の生成により求め、ＣおよびＲｂをブラインド署名前処理して前記Ｃに対するＲｂの攪乱を行い、
銀行装置はｗｉに対応する秘密鍵情報によりＺに対する署名を行って前記署名Ｑを求め、
利用者装置はＱ，Ｒｂ，Ｐｗｉを用いてブラインド署名後処理を行って前記引換証ＳＣを得る計算を行い、
ｗｉ，Ｄ，ＳＤ，Ｒｃ，ＳＣを引換情報として保持し、発行機関装置へＳＣ，ｗｉ，Ｒｃの他にＤ，ＳＤを送信し、
発行機関装置は受信したＤ，ＳＤを保持していたＤ，ＳＤと一致するかの比較により正当性を確認し、
Ｄと有効判定情報ＪＤを比較してＤが有効であることを確認し、
その後前記署名対象Ｃの計算およびＳＣの検証を、受信したＤ，ＤＳ，Ｒｃを用いて署名対象Ｃを計算し、そのＣとＰｗｉとを用いてＳＣの署名検証を行ってＳＣの正当性を検証することにより行い、
前記電子コインＦの発行を、ｗｉ，Ｒｆに対するＳ２による署名により求め、
利用者装置は支払のために、Ｆ，Ｒｆ，ｗｉを受領者装置へ送り、
受領者装置は受領したＦ，Ｒｆ，ｗｉを銀行装置へ送信し、
これらを受信した銀行装置はその受信したＦ，Ｒｆ，ｗｉを発行機関装置へ送信し、
発行機関装置は発行履歴ＨＦを検索して、これに存在していることによりＲｆが有効であることを確認し、
ｗｉ，Ｐ２を用いてＦ，Ｒｆに対する署名検証を行ってＦが正当であることを確認することを特徴とする電子現金方法。
【請求項１０】
請求項４、５、７、８、９の何れかに記載の番号登録式電子現金方法において、
発行機関装置は外部記憶装置を備え、決済時にＲｆに関する記憶を発行履歴から削除したものを外部記憶装置へ移動することを特徴とする電子現金方法。
【請求項１１】
請求項４又は５の番号登録式電子現金方法において、
発行機関装置は一定期間後に保持している有効判定情報ＪＤをＪＤ′へ更新し、その結果、無効となった以前のＤに関連して登録されたＲｃに関する情報を引換履歴ＨＣから削除することを特徴とする電子現金方法。
【請求項１２】
銀行装置の公開鍵情報Ｐ１、額面ｗｉ（ｉ＝１，…，ｎ）と対応する公開鍵情報Ｐｗｉとの対応表を記憶する記憶装置と、
銀行装置から受信した日付情報とその署名ＳＤと、上記Ｐ１とを入力してＤが所定の日付であり、かつＳＤが正しい署名であることを検証する第１署名検証手段と、
ランダムな引換番号Ｒｃを生成する引換番号生成手段と、
検証済みの上記Ｄ，ＳＤと上記Ｒｃが入力され、署名対象Ｃを演算するハッシュ演算手段と、
乱数Ｒｂを生成する乱数生成手段と、
額面ｗｉと対応する公開鍵情報Ｐｗｉと、ＲｂとＣが入力されてブラインド署名前処理を演算した結果Ｚを出力するブラインド署名前処理手段と、
銀行装置より受信した署名Ｑと、上記ＲｂとＰｗｉが入力され、ブラインド署名後処理を演算して引換証ＳＣを出力するブラインド署名後処理手段と、
発行機関装置より受信した電子コインＦ、コイン番号Ｒｆとｗｉが入力され、Ｆ，Ｒｆの署名検証を行う第２署名検証手段と、
上記ハッシュ演算手段に入力したＲｃ，Ｄ，ＳＤ、これらと対応するブラインド署名前処理に用いたＰｗｉのｗｉ、また対応するＳＣを引換情報として、第２署名検証手段で正当と認められたＦ，Ｒｆ及びその検証に用いたｗｉをコイン情報として、支払により受領したコイン情報ｗｉ，Ｆ，Ｒｆを記憶する手段と、
上記ブラインド署名前処理結果Ｚと対応するｗｉ、上記支払として受領したコイン情報ｗｉ，Ｆ，Ｒｆとをそれぞれ銀行装置へ送信する手段と、
上記引換情報を発行機関装置へ送信する手段と、
上記コイン情報を支払のために受領者装置へ送信する手段と、
を具備する利用者装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、電気通信システムやＩＣカードを利用してディジタル情報の授受により電子的な現金を実現する電子現金方法に関する。
【０００２】
【従来の技術】
電子現金はＩＣカードを電子現金の財布（電子財布）とするような形で広く使われるようになる。その際には、電子現金はいかなる物理媒体にも依存しないで、情報そのものが電子現金となるような形で電子財布に格納される形態が望ましい。
【０００３】
電子現金の一つの実現策は、物理的な手段によって安全性を保証する方法である。例えば、テレホンカード等の磁気カードによるプリペイドカードは、カード上の磁気状態を他のカードに物理的にコピーすることが困難であるということを安全性の要として成り立っている。しかしながら、この安全性の前提は世の中の製造技術レベルの推移により大きく変化する。さらに、この方式は、常に物理媒体（磁気カード等）と一体で実現されるため、情報の形の電子現金のように通信回線で転送するようなことはできない。
【０００４】
別の実現策は、クレジットカードのような電子的ＩＤカード（電子クレジットカードもしくは電子小切手）を用いて、後日決済する方法である。電子クレジットカードでは、手書きの署名の代わりにディジタル署名を用いることにより、処理の完全電子化（情報化）を実現でき、その決済用情報を通信回線で転送できる。しかし、この方式の欠点は、利用者のプライバシを保証できない点である（これは、現行のクレジットカードや小切手においても同様である）。つまり、クレジットカードを発行・決済する機関は、自由に利用者の購買履歴を入手できるのはもとより、また、小売店までも利用者のクレジットカード番号や署名を知ることができる。
【０００５】
一方、ブラインド署名（詳細は後述する）と支払い時でのオンラインチェック（小売店が、利用者の提示した情報が二重／不正使用されていないかを、管理センタにオンラインで問い合わせること。）を組み合わせることにより、上述した情報化、安全性、プライバシの問題を解決できる。しかし、各小売店が各利用者の購買時に必ずセンタにアクセスすることは、処理時間（利用者の待ち時間）、通信コスト、管理センタでのオンライン処理コスト及びデータベース維持管理コスト等を考えると、現実的な解とは言えない。従って、現金支払い時の処理はオフラインで処理できることが望ましい。
【０００６】
プライバシを重視し、オフライン処理可能な電子現金方式としては、例えば、Ｄ．Ｃｈａｕｍ，  Ａ．Ｆｉａｔ  ａｎｄ  Ｍ．Ｎａｏｒ，  “Ｕｎｔｒａｃｅａｂｌｅ  Ｅｌｅｃｔｒｏｎｉｃ  Ｃａｓｈ，”Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ−Ｃｒｙｐｔｏ’８８，  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  ４０３，  ｐｐ．３１９−３２７，  Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，  Ｂｅｒｌｉｎ（１９８８）やＴ．Ｏｋａｍｏｔｏ  ｅｔａｌ．  “Ｄｉｓｐｏｓａｂｌｅ  Ｚｅｒｏ−Ｋｎｏｗｌｅｄｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎｓ  ａｎｄ  Ｔｈｅｉｒ  Ａｐｐｌｉｃａｔｉｏｎｓ  ｔｏ  Ｕｎｔｒａｃｅａｂｌｅ  Ｅｌｅｃｔｒｏｎｉｃ  Ｃａｓｈ，”Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ−Ｃｒｙｔｏ’８９，  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  ４３５，  ｐｐ．４８１−４９６，  Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，  Ｂｅｒｌｉｎ（１９８９）、特願平２−８８８３８号「電子現金実施方法及びその装置」などがある。
【０００７】
まず、利用者のプライバシを保証するための基本技術であるブラインド署名について説明する。ブラインド署名では、署名者に文書の内容を秘密にしたままで署名を付けてもらう。ＲＳＡ法に基づいた方式が文献  Ｄ．Ｃｈａｕｍ，  “Ｓｅｃｕｒｉｔｙ    ｗｉｔｈｏｕｔ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ：  Ｔｒａｎｓａｃｔｉｏｎ  Ｓｙｓｔｅｍｓ  ｔｏ  Ｍａｋｅ  Ｂｉｇ  Ｂｒｏｔｈｅｒ  Ｏｂｓｏｌｅｔｅ，  ”Ｃｏｍｍ．  ｏｆ  ｔｈｅ  ＡＣＭ，  ２８，  １０，  ｐｐ．１０３０−１０４４（１９８５）で、ゼロ知識対話証明に基づいたブラインド署名が文献Ｔ．Ｏｋａｍｏｔｏ  ｅｔａｌ．  “Ｄｉｖｅｒｔｉｂｌｅ  Ｚｅｒｏ−Ｋｎｏｗｌｅｄｇｅ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｐｒｏｏｆｓ  ａｎｄ  Ｃｏｍｍｕｔａｔｉｖｅ  Ｒａｎｄｏｍ  Ｓｅｌｆ−Ｒｅｄｕｃｉｂｌｅ，  ”Ｔｈｅ  Ｐｒｏｃ．  ｏｆ  Ｅｕｒｏｃｒｙｐｔ’８９（１９８９）  で示されている。
【０００８】
署名の要求者は、ブラインド署名前処理によって文書（ｍ）を乱数（ｒ）で攪乱してブラインドメッセージ（ｘ）を生成する。署名者は、秘密鍵を用いてｘに対応する仮の署名（ｙ）を計算する。このとき、ｍはｒによって攪乱されているので、署名者は文書（ｍ）を知ることはできない。要求者は、ブラインド署名後処理によってｙから乱数（ｒ）の影響を除去して、本来の文書（ｍ）に対する真の署名（ｙ′）を求めて、ｍとｙ′の組を検証者に送信する。検証者は、署名者の公開鍵を用いてｙ′がｍの署名であることを確認する。ここで、検証者はｙとｙ′の対応関係を知ることはできない。
ブラインド署名の手順
Ａを署名者、Ｐを署名要求者、ｅＡ  を署名者Ａの公開情報とする。Ｆをブラインド署名前処理アルゴリズム、Ｄを多重ブラインド署名アルゴリズム、Ｇをブラインド署名後処理アルゴリズムとする。これらの関数の使用法は、ＦｅＡとＤｅＡから作成した仮の署名Ω（＝ＤｅＡ（ＦｅＡ（ｍ１  ），…，ＦｅＡ（ｍｋ  ）））  にＧｅＡを施して、ｋ個のメッセージｍ１  ，…，ｍｋ  に対するＡの真の署名Ｂ＝ＤｅＡ（ｍ１  ，…，ｍｋ  ）を算出する。署名者Ａと要求者Ｐは以下の手順に従って多重ブラインド署名を作成する。
【０００９】
ステップ１：Ｐはブラインド署名前処理により、ｋ個のメッセージ｛ｍｉ  ｜ｉ＝１，２，…，ｋ｝からｋ個のブラインドメッセージｘｉ  ＝｛ＦｅＡ（ｍｉ  ）｜ｉ＝１，２，…，ｋ｝を生成して、Ａに送信する。ここで、それぞれのｘｉ  ＝ＦｅＡ（ｍｉ  ）は独立に計算されており、関数ＦｅＡは乱数を使用してｍｉ  を隠す。
ステップ２：Ａは仮の署名Ω＝ＤｅＡ（ＦｅＡ（ｍ１  ），…，ＦｅＡ（ｍｋ  ））をｋ個のブラインドメッセージＦｅＡ（ｍ１  ），…，ＦｅＡ（ｍｋ  ）から生成して、Ｐに送信する。
【００１０】
ステップ３：Ｐは、ＧｅＡを用いたブラインド署名後処理により、ｍ１  ，…，ｍｋ  に対応したＡの真のディジタル署名Ｂ＝ＤｅＡ（ｍ１  ，…，ｍｋ  ）を算出する。（ブラインド署名の手順終わり）
ＲＳＡ法をブラインド署名に使用する場合には、ブラインドメッセージ（ブラインド署名前処理）を、ｘｉ  ＝ＦｅＡ（ｍｉ  ）＝ｒｉ  ｅＡ×ｍｉ  ｍｏｄ  ｎ、ここでｒｉ  は攪乱するための乱数、仮の署名を、
【００１１】
【数１】
0003599493.tif 000002
【００１２】
ブラインド署名後処理を、
【００１３】
【数２】
0003599493.tif 000003
【００１４】
とそれぞれおいて、署名は、
【００１５】
【数３】
0003599493.tif 000004
【００１６】
となる。このとき、検証式ＶｅＡ（ｍ１  ，…，ｍｋ  ，Ｂ）は
【００１７】
【数４】
0003599493.tif 000005
【００１８】
のとき合格（ＯＫ）を出力する。ここで、（ｅＡ  ，ｎ）はＡの使用するＲＳＡ法の公開鍵であり、次の式をみたす。
ｎ＝Ｐ×Ｑ
ｅＡ  ×ｄＡ  ≡１（ｍｏｄ  Ｌ）
ただしＬ＝ＬＣＭ｛（Ｐ−１），（Ｑ−１）｝
ここで、Ｌ＝ＬＣＭ｛ａ，ｂ｝はａとｂの最小公倍数を、ａ≡ｂ（ｍｏｄ  ｎ）は（ａ−ｂ）がｎの倍数であることを表す。以降ではｄＡ  を１／ｅＡ  と表すこともある。以下の  Ｃｈａｕｍ・Ｆｉａｔ・Ｎａｏｒ法ではｋ＞１の場合を、後述する実施例では、ｋ＝１の場合を想定する。
【００１９】
ＲＳＡ暗号の構成例は、文献  Ｒｉｖｅｓｔ，  Ｒ．Ｌ．  ｅｔａｌ．  “Ａ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｏｂｔａｉｎｉｎｇ  Ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅｓ  ａｎｄ  Ｐｕｂｌｉｃ−Ｋｅｙ  Ｃｒｙｐｔｏｓｙｓｔｅｍｓ”，Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｏｆ  ｔｈｅ  ＡＣＭ，  Ｖｏｌ．  ２１，  Ｎｏ．２，  ｐｐ．１２０−１２６，（１９７８）に示されている。
ブラインド署名の構成法は、例えば、Ｃｈａｕｍ，  Ｄ．  “Ｂｌｉｎｄ  Ｓｉｇｎａｔｕｒｅ  Ｓｙｓｔｅｍｓ  ”，ＵＳ  Ｐａｔｅｎｔ  Ｎｏ．：４，７５９，０６３  や  Ｏｈｔａ，  Ｋ．  ｅｔａｌ．  “Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｓｙｓｔｅｍ  ａｎｄ  Ａｐｐａｒａｔｕｓ  Ｔｈｅｒｅｆｏｒ”，ＵＳ  ｐａｔｅｎｔ  Ｎｏ．：４，９６９，１８９  に示されている。
【００２０】
ところで、利用者のブライバシは、ブラインド署名を用いることで、利用者だけの責任において保証できる。すなわち、攪乱用の乱数ｒの付加と除去を利用者が実行するので、ｒを秘密にする限りは、誰もがｙ＝Ωとｙ′＝Ｂの対応関係を知ることはできないことに注意しよう。
ここで、代表的な電子現金方式である  Ｃｈａｕｍ・Ｆｉａｔ・Ｎａｏｒ法での、銀行と利用者間での電子現金の発行処理、利用者の小売店での電子現金の支払い、小売店と銀行間の決裁処理について述べる。
電子現金の発行処理
利用者Ｐが、銀行Ａから電子現金Ｃを発行してもらう手順を示す。ここで、ＩＤは利用者Ｐの識別情報、ｅＡ  は、利用者が指定する電子現金の金額（例えば１万円）に対応する銀行のディジタル署名用の公開鍵とする。利用者が銀行から電子現金を発行してもらう手順は、以下の通りである。
【００２１】
ステップ１：利用者Ｐは、乱数ａｉ  （ただし、ｉ＝１，…，Ｋ）を生成して、公開された一方向関数ｇを用いて、
ｘｉ  ＝ｇ（ａｉ  ）
ｙｉ  ＝ｇ（ａｉ  （＋）ＩＤ）
を求める。（＋）は排他的論理和を示す。
【００２２】
ステップ２：Ｐは、公開された一方向関数ｆとブラインド署名前処理関数ＦｅＡを用いて、
Ｗｉ  ＝ＦｅＡ（ｆ（ｘｉ  ，ｙｉ  ））
を計算して、銀行に提示する。
ステップ３：銀行Ａは、１からＫの中からランダムにＫ／２個の部分集合Ｕ＝｛ｉｊ  ｝、（ただし１＜ｊ＜Ｋ／２に対して１＜ｉｊ  ＜Ｋ）を選び、それを開示要求として利用者に送信する。（以下では、表記を簡単にするために、Ｕ＝｛Ｋ／２＋１，Ｋ／２＋２，…，Ｋ）｝が開示要求として指定されたと仮定して説明する。）Ｋ個の中からランダムにＫ／２個の部分集合の開示を要求する手順を「抜き打ち検査」とよぶ。
【００２３】
ステップ４：利用者Ｐは、銀行Ａから開示要求を受信すると、指定されたＫ／２個のａｉ  とＷｉ  を作成するために関数ＦｅＡの中で用いた乱数をＡに開示する。ステップ５：銀行Ａは、開示されたＫ／２組のすべてについて正当性の検証を行ない、いずれかの検査に不合格のときには、以降の処理を中止する。すべての検査に合格のときには、銀行Ａは開示対象でないｉ（ここでは、ｉ＝１，２，…，Ｋ／２）に対して、次の手順を行なう。
【００２４】
ステップ６：銀行Ａは、
Ω＝ＤｅＡ（Ｗ１  ，…，ＷＫ／２  ）
を計算して、利用者Ｐに送信する。
ステップ７：利用者Ｐは、銀行からの受信データΩから電子現金Ｃを以下のように計算する。
【００２５】
Ｃ＝ＧｅＡ（Ω）＝ＤｅＡ（ｆ（ｘ１  ，ｙ１  ），…，ｆ（ｘＫ／２，ｙＫ／２  ））
電子現金による支払
つぎに、利用者Ｐが銀行Ａより発行された電子現金Ｃを用いて小売店Ｖで支払をする場合について説明する。それぞれのｉ（ただしｉ＝１，２，…，Ｋ／２）に対して、次の処理を実行する。
【００２６】
ステップ１：利用者Ｐは、電子現金（Ｃ）を小売店Ｖへ送信する。
ステップ２：小売店Ｖは乱数ビットｅｉ  を生成して、利用者Ｐへ送信する。
ステップ３：利用者Ｐは、ｅｉ  ＝１のときａｉ  とｙｉ  を、ｅｉ  ＝０のときｘｉ  とａｉ  （＋）ＩＤを小売店Ｖへ送信する。
ステップ４：小売店Ｖは、銀行Ａの公開鍵ｅＡ  を用いて、Ｃがメッセージｆ（ｘ１  ，ｙ１  ），…，ｆ（ｘＫ／２  ，ｙＫ／２  ）の正しい署名であることを検査する。決済
最後に、小売店Ｖと銀行Ａの間の決済方法について説明する。小売店Ｖは、利用者との電子現金使用時の交信履歴Ｈを銀行に提出する。銀行はＨの正当性を検査し、検査に合格すれば、Ｈを記憶しておくと共に小売店の口座に該当する金額を払い込む（もしくは、何らかの手段で該当する金額を小売店に支払う）。銀行は、電子現金の不正使用を見つけると、Ｈとすでに記憶している交信履歴からＣに対応して記憶しているａｉ  とａｉ  （＋）ＩＤを探し出して、不正者の識別情報ＩＤを確定する。
【００２７】
以上が  Ｃｈａｕｍ・Ｆｉａｔ・Ｎａｏｒ法であるが利用者が不正にＣを２回使用すると、ｅｉ  ＝１のときａｉ  ，ｅｉ  ＝０のときａｉ  （＋）ＩＤが銀行に記憶されているので、１回目と２回目のｅｉ  が異なる場合には、ａｉ  （＋）（ａｉ  （＋）ＩＤ）＝ＩＤが成り立つので、銀行はこれを計算してＩＤを検出できる。銀行は、Ｋ／２ビットを問い合わせるので、Ｃの二重使用を検出できない確率は２−Ｋ／２となる（通常、Ｋ＝２０程度が推奨されている）。
【００２８】
【発明が解決しようとする課題】
前述の電子現金方法は、複数の銀行が電子現金を発行した場合、利用者はそれぞれの銀行公開鍵を保有することが必要となるほか、銀行も他行発行の電子現金を受け取った場合、不正使用の有無を検査するために発行元の銀行に戻す仕組みが必要となるなど、それぞれ管理負担が大きい。さらに、電子現金を払い出す銀行は、必ず発行電子現金を負債として会計処理する発行銀行となる必要があり、ある程度の信用力をもち、電子現金の発行管理負担等を担う能力のある銀行でないと事実上電子現金を利用できないほか、電子現金の発行機関を１つに限りこれを一元的に管理することが不可能であった。
【００２９】
また、前述の電子現金方法は、不正にコピーされた電子現金の使用者を特定する目的で、過去に使用された全ての電子現金の使用履歴を銀行が保持しなければならず、かつ決済時にはこれら全ての使用履歴を検索する必要があり、即時決済を行うには大容量かつ高速なデータベースが必要になるという問題がある。銀行が保持すべき電子コインの履歴を削減する一つの方法は、銀行が利用者に対し預金引き下ろし時に引換証を発行し、一定期間内に利用者はこの引換証と交換に電子コインを発行して貰い、この時銀行はコイン番号を記憶しておき、決済終了後に使用済コインの番号情報を削除することである。しかしながら、この方法では、利用者にとって引き下ろしの手続きが２回に分割されて不便なほか、この引換証を受け取ってから電子現金を発行して貰うまでの一定の期間に規則性がみられたり、引き出し回数が多い等の目立った行動パターンがあると、銀行によって容易に身元が特定され、コイン番号と紐づけられる可能性があり、匿名性が完全ではない。
【００３０】
この発明の目的は、銀行と電子現金の発行機関を分離することによって、複数の銀行が同一の発行機関を利用することができ、利用者はどの銀行から引き出した電子現金かを意識することなく区別せずに扱うことができ、発行機関は電子現金の発行・還収を一元的に管理することが可能な電子現金方法およびその装置であって、利用者のプライバシーを保ちつつ、電子現金の発行に伴い保持すべきデータを削減し、即時決済が容易な電子現金方法およびその装置を提供することにある。
【００３１】
【課題を解決するための手段】
この発明の一例によれば、まず、利用者装置は引換番号Ｒｃからなる署名対象Ｃを作成する。ブラインド署名を用いてこの署名対象Ｃに対する日付情報付の銀行署名ＳＣを入手し、このＳＣを引換証とし、
その後、利用者装置はＲｃおよびＳＣを発行機関装置へ送付し、発行機関装置はＳＣに付けられた日付情報付銀行署名ＳＣから、発行されてから一定期間内にあることを検証するとともに、引換番号Ｒｃが引換履歴ＨＣに記憶されていないことを確認し、更に、利用者装置と同じ手順でＲｃよりＣを計算し、ＳＣがＣに対する銀行署名であることを確認する。その後、コイン番号Ｒｆを発行し、Ｒｆに基づいて電子コインＦを発行し、引換番号Ｒｃを引換履歴ＨＣに、コイン番号Ｒｆに関する情報を発行履歴ＨＦへそれぞれ記憶する。前記確認のいずれかを満たさなかった場合は電子コインの発行を中止する。
【００３２】
支払に使用された電子コインＦは決済時に銀行Ｂへ送信され、銀行Ｂはこれをさらに発行機関装置に送信し、発行機関装置はコイン番号Ｒｆが記憶されていることを確認した後、Ｒｆに関する情報を発行履歴ＨＦから削除する。
また、Ｒｃの署名に含まれる日付から一定期間の後、Ｒｃに関する情報を引換履歴ＨＣから削除する。削除したＲｃ、Ｒｆに関する情報を外部記憶装置へ保存することもできる。
【００３３】
【発明の実施の形態】
実施例１
以下では、この発明の一実施例について説明する。図１はこの発明の実施に必要とする要素を示し、引換証の発行及び電子現金の決済を行う銀行Ａ及びＢの各装置（以下、銀行装置と記す）１００及び５００と、電子現金を発行してもらう利用者Ｕの装置（以下、利用者装置と記す）２００と、電子現金を発行する機関（以下、発行機関Ｏと記す）の装置（以下、発行機関装置と記す）３００と電子現金を受領する受領者Ｍの装置（以下、受領者装置と記す）４００とよりなり、これらは例えば通信回線を介して接続されているが、情報を記録できるＩＣカード等を介しての接続であってもよい。
準備
まず、銀行装置１００は署名アルゴリズムＤ１および、この署名法に対応する秘密情報Ｓ１および公開情報Ｐ１を記憶装置１０１に保持し、Ｓ１を用いて本日の日付Ｄに対する署名ＳＤを生成する。Ｄ，ＳＤを発行機関装置３００に送信すると共に、記憶する。ＳＤ作成に使用する署名アルゴリズムＤ１がＲＳＡの場合、秘密情報Ｓ１は２つの大きな素数ｐ１，ｑ１および整数ｄ１であり、公開情報Ｐ１はｅ１およびＮ１であり、Ｎ１とｐ１，ｑ１はＮ１＝ｐ１×ｑ１の関係にあり、ｄ１とｅ１はｄ１＝１／ｅ１  ｍｏｄ    ＬＣＭ（ｐ１−１，ｑ１−１）なる関係を満たす。ＬＣＭ（ａ，ｂ）はａとｂの最小公約数を示す。また、署名ＳＤはＳＤ＝Ｄｄ１  ｍｏｄ    Ｎ１を実行する署名生成器によって生成し、検証式Ｖ１はＤがＳＤｅ１  ｍｏｄ    Ｎ１に等しいことを検証する署名検証器によって検証する。
【００３４】
また、銀行装置１００は電子コインの額面ｗｉ（ｉ＝１，…，ｎ）毎に異なる公開情報Ｐｗｉと秘密情報Ｓｗｉを保持し、金額対鍵対応表として記憶しているものとする。ここで、秘密情報Ｓｗｉは２つの大きな素数ｐｗｉ，ｑｗｉおよび整数ｄｗｉであり、公開情報ＰｗｉはｅｗｉおよびＮｗｉであり、Ｎｗｉとｐｗｉ，ｑｗｉはＮｗｉ＝ｐｗｉ×ｑｗｉの関係にあり、ｄｗｉとｅｗｉはｄｗｉ＝１／ｅｗｉ  ｍｏｄＬＣＭ（ｐｗｉ−１，ｑｗｉ−１）なる関係を満たす。
【００３５】
発行機関装置３００は署名アルゴリズムＤ２および、この署名法に対応する秘密情報Ｓ２および公開情報Ｐ２を保持する。例えば、署名アルゴリズムＤ２がＲＳＡの場合、秘密情報Ｓ２は２つの大きな素数ｐ２，ｑ２および整数ｄ２であり、公開情報Ｐ２はｅ２およびＮ２であり、Ｎ２とｐ２，ｑ２はＮ２＝ｐ２×ｑ２の関係にあり、ｄ２とｅ２はｄ２＝１／ｅ２  ｍｏｄ    ＬＣＭ（ｐ２−１，ｑ２−１）なる関係を満たす。また、署名アルゴリズムＤ２は署名対象Ｘに対してＹ＝Ｘｄ２  ｍｏｄ    Ｎ２を計算する署名生成器によって実行し、検証式Ｖ２はＸがＹｅ２  ｍｏｄＮ２に等しいことを検証する署名検証器によって検証する。また額面ｗｉに対応する公開情報Ｐｗｉの金額対鍵対応表を記憶している。
【００３６】
利用者装置２００は、銀行が公開した公開情報Ｐ１、額面ｗｉに対応する公開情報Ｐｗｉの金額対鍵対応表および発行機関が公開したＰ２を保持する。
引換証発行処理
利用者Ｕが引換証を銀行Ａから発行してもらう手順は以下のとおりである（図２、図３、図８参照）。
【００３７】
ステップ１：利用者装置２００は銀行装置１００よりＤおよびＳＤを入手し（Ｓ１）、これと公開情報Ｐ１を署名検証器２０２へ入力する。署名検証器２０２は入力Ｄが本日の日付であることを確認した後、署名アルゴリズムＤ１に基づく検証式
Ｄ＝ＳＤｅ１  ｍｏｄ    Ｎ１          …（Ｖ１）
が成り立つことを検証する（Ｓ２）。
【００３８】
検証が正しければ、引換番号生成器２０３を駆動して引換番号Ｒｃを生成し、Ｄ、ＳＤ、および引換番号Ｒｃをハッシュ演算器２０４へ入力する。ハッシュ演算器２０４は
Ｃ＝ｇ（Ｄ，ＳＤ，Ｒｃ）
を計算する。ただし、ｇ（  ）を一方向性関数とする。
【００３９】
続いて、乱数生成器２０５を駆動して乱数Ｒｂを生成し、
引き下ろし金額ｗｉに対応する公開情報Ｐｗｉを記憶装置２０１内の金額対鍵対応表より読み出し、
Ｐｗｉ，ＣおよびＲｂをブラインド署名前処理器２０６へ入力する。ブラインド署名前処理器２０６は
Ｚ＝Ｃ×Ｒｂｅｗｉ  ｍｏｄ  Ｎｗｉ
を計算し（Ｓ３）、この処理結果Ｚおよび引き下ろし金額情報ｗｉを銀行装置１００に送付する（Ｓ４）。
【００４０】
ステップ２：銀行装置１００は受信したｗｉに対応する秘密情報Ｓｗｉを記憶装置１０１内の金額対鍵対応表より読み出し、ＳｗｉおよびＺを署名生成器１０２へ入力して
Ｑ＝Ｚｄｗｉ  ｍｏｄ  Ｎｗｉ
を計算して、ブラインド署名し（Ｓ５）、この署名処理結果Ｑを利用者装置２００へ返信する（Ｓ６）とともに会計処置装置１２１は適当な会計処理を講じる。例えば利用者Ｕの口座を金額ｗｉだけ減額し、これを銀行Ａの引換証発行見合いの特別な管理勘定へ移転する記帳を実施。
【００４１】
ステップ３：利用者装置は受信した署名Ｑを
Ｚ＝Ｑｅｗｉ    ｍｏｄ    Ｎｗｉ
の検証式で検証し（Ｓ７）、検証が正しければブラインド署名後処理器２０７へＲｂ、公開鍵情報Ｐｗｉおよび受信したＱを入力し、
ＳＣ＝Ｑ／Ｒｂ  ｍｏｄ    Ｎｗｉ
を計算してブラインド署名後処理を行い、引換証ＳＣを得る（Ｓ８）。この引換証ＳＣおよびｗｉ，Ｄ，ＳＤ，Ｒｃを引換情報として、記憶装置２０１へ記憶する（Ｓ９）。
引換処理
つぎに、利用者Ｕが銀行Ａより発行された引換情報と引換に発行機関Ｏから電子コインを発行してもらう手順について説明する（図４、図５、図９参照）。なお、この引換処理は、引換証発行処理に引き続き実施しても良いため、利用者Ｕは実際にはこれら２つの処理を意識せず一連の処理とみなすことができる。また、発行機関Ｏおよび銀行Ａがそれぞれ保有する会計処理装置３２１、１２１は利用者Ｕの電子コイン引き出しに際し、適当な会計処理を講じる。例えば銀行装置１００の会計処理装置は発行機関装置３００からの連絡を受け、引換証発行見合いの特別な管理勘定から金額ｗｉだけ減額する記帳を行い、同額を発行機関装置３００へ送金し、発行機関装置３００の会計処理装置３２１は、これを電子コイン発行見合い金の管理勘定に記帳して管理する。
【００４２】
ステップ１：利用者装置２００は電子コインの引換のために、発行機関装置３００へｗｉ，Ｄ，ＳＤ，ＲｃおよびＳＣを送信する（Ｓ１）。
ステップ２：発行機関装置３００は受信したＤ，ＳＤおよび、記憶装置３０１内のＤ，ＳＤを比較器３０２へ入力してＤ，ＳＤが一致することを確認する（署名検証器により検証式Ｖ１を確認しても構わない）（Ｓ２）。Ｄ，ＳＤが一致した場合は、Ｒｃを検索器３０３へ入力して引換履歴ＨＣを検索しＲｃが過去に使用されていないことを確認する（Ｓ３）。Ｒｃが過去に使用されていない場合は、Ｄ，ＳＤ，Ｒｃ，ＳＣ，Ｐｗｉを署名検証器３０４へ入力して
ｇ（Ｄ，ＳＤ，Ｒｃ）＝ＳＣｅｗｉ  ｍｏｄ  Ｎｗｉ
を満たすことにより、ＳＣが正しいことを確認する（Ｓ４）。署名検証結果が正しければＲｃを引換履歴ＨＣに記憶し（Ｓ５）、コイン番号生成器３０５を駆動してコイン番号Ｒｆを生成する。ｗｉ，Ｒｆを発行履歴ＨＦとし記憶装置３０１へ記憶した後（Ｓ７）、ｗｉ、ＲｆおよびＳ２を署名生成器３０６へ入力して、アルゴリズムＤ２により、
Ｆ＝ｇ（ｗｉ，Ｒｆ）ｄ２    ｍｏｄ  Ｎ２
を計算して電子コインＦを生成する（Ｓ７）。このコイン生成処理結果ＦおよびＲｆを利用者装置２００へ返送する（Ｓ８）。
【００４３】
ステップ３：利用者装置は受信したＦ，Ｒｆおよび、ｗｉ，Ｐ２を署名検証器２０８へ入力し、アルゴリズムＤ２に基づく検証式
ｇ（ｗｉ，Ｒｆ）＝Ｆｅ２  ｍｏｄ    Ｎ２        …（Ｖ２）
が成り立つことを検証する（Ｓ９）。検証結果が正しければ、ｗｉ，Ｆ，Ｒｆを電子コイン情報として記憶装置２０１へ格納する（Ｓ１０）。
決済処理
受領者Ｍと銀行Ｂの間の決済方法について説明する（図１０参照）。ただし、支払時に利用者Ｕは受領者ＭへＦ，ｗｉ，Ｒｆを送付し、支払いが終了した状態では、受領者装置４００の記憶装置４０１にＦ，ｗｉ，Ｒｆが格納されているものとする。
【００４４】
ステップ１：受領者装置４００は決済時に銀行装置５００へＦ，ｗｉ，Ｒｆを送付する。
ステップ２：銀行装置５００はＦ，ｗｉ，Ｒｆをさらに発行機関装置３００へ送付する。
ステップ３：発行機関装置３００は記憶装置３０１から発行履歴ＨＦを読み出し、Ｒｆと共に検索器３０７へ入力してＲｆが記憶されていることを確認する。
続いて署名検証器３０８へＦ，Ｒｆ，ｗｉおよびＰ２を入力し、アルゴリズムＤ２に基づく検証式
ｇ（ｗｉ，Ｒｆ）＝Ｆｅ２    ｍｏｄ  Ｎ２      …（Ｖ２）
が成り立つことを検証する。検証が正しければ、発行履歴ＨＦからＲｆ，ｗｉに関する情報を削除、または外部記憶装置３０９へ移動する。なお、発行機関装置３００および銀行装置５００がそれぞれ保有する会計処理装置３２１，５２１は受領者装置４００からの電子コインの預入に際し適当な会計処理を講じる。例えば、まず銀行装置５００の会計処理装置５２１は電子コインと引換に、受領者Ｍの口座を金額ｗｉだけ増額するとともに銀行Ｂの保有電子コインの管理勘定を増額記帳し、次に、発行機関装置３００の会計処理装置３２１は銀行装置５００から電子コインを受取るのと引換に、電子コイン発行見合い金の管理勘定から金額ｗｉを減額記帳し、同額を銀行装置５００へ送金。銀行装置５００の会計処理装置は送金された金額を自己勘定に繰入れるとともに保有電子コインの管理勘定を同額だけ減額記帳する。
引換履歴更新処理
公開情報Ｄは一定期間後に新たな公開情報Ｄ′に更新され、以前の日付情報Ｄに基づいて発行した引換証ＳＣは期限切れとなり、無効となる。この公開情報Ｄの更新処理について説明する（図６、図７参照）。
【００４５】
ステップ１：銀行装置１００はＤ，ＳＤの期限切れ検査を行い（Ｓ１）、一定期間経過していれば記憶装置１０１内の公開情報ＤをＤ′へ更新するとともに（Ｓ２）、Ｄ′に対する署名ＳＤ′を計算して、Ｄ′，ＳＤ′を発行機関装置３００に通知する（Ｓ３）。
ステップ２：発行機関装置３００は記憶装置３０１内のＤ，ＳＤを通知された日付情報Ｄ′，ＳＤ′に更新すると共に（Ｓ４）、以前の日付情報Ｄに基づく引換履歴ＨＣを削除、または外部記憶装置３０９へ移動する（Ｓ５）。引換処理において、以前の日付情報Ｄが利用者装置２００から発行機関装置３００に送付されてきた場合、対応する日付情報を記憶装置３０１から読み出せないため、比較器３０３での比較結果が不良となり、引換処理は中断される。
【００４６】
図８中の引換番号発生器２０３の具体例を図１２に示す。乱数発生器２０９より乱数を発生させ、この乱数ａとその利用者固有情報ＩＤＵとをハッシュ演算器２１０に入れて、ｇ（  ）を一方向性関数とする演算ｇ（ａ‖ＩＤＵ）を行いその演算結果を引換番号Ｒｃとする。
図９中のコイン番号生成器３０５の具体例を図１３に示す。コイン番号初期値が記憶装置３１０にまず格納され、記憶装置３１０の記憶内容がコイン番号Ｒｆとして取出されるごとに、そのコイン番号Ｒｆは加算器３１１で＋１されて新たなコイン番号として記憶装置３１０に格納される。
実施例２
ここでは、特願平７−２８７４５７〔信託機関付き電子現金方法〕にこの発明を適用した実施例を示す。
【００４７】
まず、発明の実施に必要とする要素は、図１４に示すように信託機関装置６００、利用者装置７００、銀行装置８００、発行機関装置９００、受領者装置１０００、および銀行装置１１００よりなり、これらは例えば通信回線を介して接続されているが、情報を記録できるＩＣカード等を介しての接続であってもよい。準備
この実施例２の電子現金方法では、電子現金の利用者Ｕは、まず最初に、信託機関Ｊと呼ぶ機関により、利用許可証を発行してもらう。銀行Ａは利用者Ｕの要求に従い、利用者Ｕにある金額の電子現金の引換証を発行する。発行機関Ｏは、利用者Ｕから提示された電子現金の引換証と交換に電子現金（または、電子コインと呼ぶ）を発行する。利用者Ｕは、その電子コインを額面金額になるまで何回でも各種小売店等の支払いに用いる。最後に、各小売店等は、利用者の各支払い毎に銀行で決済を行う。
【００４８】
この実施例２では、信託機関装置６００、利用者装置７００、銀行装置８００、発行機関装置９００の署名アルゴリズムは全てＲＳＡ方式とする。信託機関装置６００、利用者装置７００、発行機関装置９００、それぞれの秘密鍵と公開鍵は、（ｄｊ，Ｎｊ）と（ｅｊ，Ｎｊ）、（ｄｕ，Ｎｕ）と（ｅｕ，Ｎｕ）、（ｄ２，Ｎ２）と（ｅ２，Ｎ２）（利用者装置７００の公開鍵は匿名公開情報である）である。銀行Ａが使用する署名用の鍵の法はＮ１（＝ＬＣＭ（ｐ１−１，ｑ１−１））であり、ｅ１，ｄ１は日付と額面金額をもとに公開鍵指数部生成関数ｆ等によって、その都度生成される。公開鍵指数部生成関数は、一定のアルゴリズムをもち、以下の条件を満たすものであれば何でもよい。例えば、ｆ（・ｍ１）  をｍ１番目の素数へのマッピング関数とすること等が考えられる。
【００４９】
▲１▼ｆ（・ｍ１）  ≠ｆ（・ｍ  ）・Ｐ（ｆ（・ｋ  ））  ｍｏｄ    Ｎ１
ただし、ｍ１≠ｍ，  Ｐ（ｆ（・ｋ  ））はｆ（・ｋ  ）（ｋ＝１，２，…ｎ）の多項式  ▲２▼ＧＣＤ（ｆ（・），ＬＣＭ（ｐ１−１，ｑ１−１））＝１
なお、秘密鍵ｄ１は１／ｆ（・）  ｍｏｄ    ＬＣＭ（ｐ１−１，ｑ１−１）を計算することによって求められる。
【００５０】
信託機関装置６００の署名、銀行装置８００の署名、発行機関装置９００の署名、利用者装置７００の署名はそれぞれ、利用許可証の正当性の検査、引換証の正当性の検査、電子コインの正当性の検査、支払・譲渡行為確認の検査に使用する。
利用者装置の署名では、公開鍵中のｅｕは共通としても良いが、Ｎｕは利用者ごとに定める。また、署名時に使用する一方向性関数ｇ，ｈもあわせて定め、公開しておく。
利用許可証の発行処理
利用者Ｕは、利用許可証を信託機関Ｊから発行してもらう（図１４参照）。この手順は、それぞれの利用者が、Ｎｕの登録時に１度だけ行う。
【００５１】
ステップ１：利用者装置７００はＮｕを信託機関装置６００に送信する。
ステップ２：信託機関装置６００は、利用者装置７００の身元を何らかの方法で確認をしたのちに、有効期限等の情報Ｉを生成し、ＮｕおよびＩに対する署名Ｂを演算する。その後、この署名ＢとＩを利用者装置７００に送信する。
ステップ３：利用者装置７００は、信託機関装置６００からの受信データＢ，Ｉと匿名公開情報Ｎｕとを利用許可証（Ｂ，Ｉ，Ｎｕ）として、記憶装置７０１に記憶する。
電子現金の引換証の発行処理
つぎに、利用者Ｕが銀行Ａから電子現金の引換証を発行してもらう手順を示す（図１５参照）。ここで、Ｎ１は取引を行う銀行に対応する公開鍵の法である。
【００５２】
ステップ１：利用者装置７００は、日付情報Ｄと引出額ｗｉ（金額情報：例えば１万円）を公開鍵指数部生成器７０２に入力し、金額署名用の公開鍵ｅ１を計算する。続いて、乱数発生器７０３を用いて乱数Ｒｃを生成して、記憶装置７０１に記憶し、一方、その乱数Ｒｃと記憶装置７０１から読みだしたＢより、ハッシュ演算器７０４を用いてｇ（Ｂ‖Ｒｃ）を計算する。続いて、乱数生成器７０３を駆動して乱数ｒを生成し、引出額ｗｉと先に計算したｅ１および公開鍵の法Ｎ１とともにブラインド署名前処理器７０５へ入力し、次式の処理を行う。
【００５３】
Ｚ＝ｇ（Ｂ‖Ｒｃ）ｒｅ１  ｍｏｄ    Ｎ１      （３）
この処理結果Ｚを電子コインの金額情報ｗｉ、日付情報Ｄと共に銀行装置８００に送信する。
ステップ２：銀行装置８００は、秘密鍵作成用情報ｐ１，ｑ１、およびＤ，ｗｉを秘密鍵指数部生成器８０２に入力し、金額署名用の秘密鍵ｄ１を計算する。このｄ１と公開鍵の法Ｎ１を署名生成器８０３へ入力し、受信情報Ｚに対して次の仮署名処理を行う。
【００５４】
Ｑ＝Ｚｄ１    ｍｏｄ  Ｎ１                    （４）
この仮署名Ｑを利用者装置７００に送信する。同時に利用者Ｕの口座から該当する金額を引き落とす等の適当な会計処理を講じる。
ステップ３：利用者装置は、乱数ｒ、公開鍵の法Ｎ１と受信情報Ｑとをブラインド署名後処理器７０６へ入力し、次式の処理を行って指定した金額の引換証ＳＣを得る。
【００５５】
ＳＣ＝Ｑ／ｒ  ｍｏｄ    Ｎ１                （５）
ここで、ＳＣ＝ｇ（Ｂ‖Ｒｃ）ｄ１    ｍｏｄ  Ｎ１となることになる。
引換証と電子現金の交換処理
引き続き、利用者装置７００は引換証を発行機関装置９００に送り、電子コインに引換える。以下では、この引換処理の手順を示す（図１６参照）。
【００５６】
ステップ１：利用者装置７００は、発行機関装置９００へ引換証ＳＣおよびｗｉ，Ｂ，Ｄ，Ｒｃを送信する。
ステップ２：発行機関装置９００は受信したＤおよび、記憶装置９０１に記憶されている引換証の有効日付ＪＤを比較器９０２へ入力してＤが有効であることを確認する。Ｄが有効な場合は、Ｒｃを検索器９０３へ入力してＲｃが引換履歴ＨＣに記録されていないことを確認する。Ｒｃが過去に使用されていない場合は、Ｄおよびｗｉを公開鍵指数部生成器９０４に入力してｅ１を計算し、これとＢ，Ｒｃ，ＳＣ，Ｎ１を署名検証器９０５へ入力して、
ｇ（Ｂ‖Ｒｃ）＝ＳＣｅ１    ｍｏｄ  Ｎ１
を満たすことを確認する。
【００５７】
署名検証結果が正しければ、Ｒｃを引換履歴ＨＣへ記憶する。
更に、乱数発生器９０６を用いてＲｆを生成し、ｗｉ，Ｒｆ，Ｂを発行履歴ＨＦへ記憶する。その後、Ｂ，Ｒｆ，ｗｉおよび（ｄ２，Ｎ２）を署名生成器９０７へ入力して、
Ｆ＝ｇ（Ｂ‖ｗｉ‖Ｒｆ）ｄ２  ｍｏｄ    Ｎ２
を計算し、Ｆ，Ｒｆを利用者装置７００へ返送する。この時、発行機関装置９００と銀行装置８００との間で適当な会計処理を講じる。
【００５８】
ステップ３：利用者装置７００は受信したＦおよび、ｗｉ，Ｒｆを電子コイン情報として記憶装置７０１へ格納する。
電子コインによる支払
つぎに、利用者Ｕが発行機関Ｏにより発行された電子コインＦを用いて、受領者Ｍに支払いを行う場合について説明する（図１７参照）。
【００５９】
ステップ１：利用者装置７００は、Ｉ，Ｎｕ，Ｂ，Ｒｆ，Ｆ，ｗｉを受領者装置１０００に送る。
ステップ２：受領者装置１０００は、受信したＩ，Ｎｕおよび、記憶装置１００１から読み出したｅｊ，Ｎｊを署名検証器１００２へ入力し、Ｉ，Ｎｕに対する署名Ｂの正当性を、次式を検証することにより確認する。
【００６０】
ｇ（Ｎｕ‖Ｉ）≡Ｂｅｊ  ｍｏｄ    Ｎｊ          （６）
続いて、Ｂ，Ｒｆに対する署名Ｆの正当性、つまり電子コインＦの正当性を検証するため、受信したＢ，ｗｉ，Ｒｆ，Ｆおよび、記憶装置１００１から読み出したｅ２，Ｎ２を署名検証器１００３へ入力し、次式を満たすことを確認する。
ｇ（Ｂ‖ｗｉ‖Ｒｆ）≡Ｆｅ２  ｍｏｄ    Ｎ２    （７）
この検査の何れかが不合格のときは以降の処理を中止する。
【００６１】
ステップ３：この両検査に合格する場合、受領者装置１０００は乱数生成器１００４を用いて乱数Ｅ′を生成し、それを受領者装置１０００の識別子ＩＤｖ及びタイマー１００５が出力する時刻印Ｔと共に利用者装置７００に送る。
ステップ４：利用者装置７００は、電子コインＦのうち金額ｘを使用することを決め、署名生成器７０７へｘ，ｄｕ，Ｎｕと受信情報Ｔ，Ｅ′，ＩＤｖを入力し、次式により署名を行う。
【００６２】
Ｓ＝ｇ（ｘ‖ｈ（ＩＤｖ‖Ｔ‖Ｅ′））ｄｕ    ｍｏｄ  Ｎｕ    （８）
この署名Ｓ、公開鍵ｅｕ、およびｘを受領者装置１０００に送る。
ステップ５：受領者装置１０００は、署名検証器１００６へＳ，ｅｕ，Ｎｕ，ｘ，Ｔ，Ｅ′，ＩＤｖを入力し、次式が成り立つことを検証する。
ｇ（ｘ‖ｈ（ＩＤｖ‖Ｔ‖Ｅ′））≡Ｓｅｕ  ｍｏｄ    Ｎｕ    （９）
この検証に合格すれば、受領者装置１０００は、利用者装置７００のｘに該当する金額の支払いを正当なものとみなして受領し、記憶装置１００１に格納する。
決済
受領者装置１０００と銀行装置１１００の間の決済方法について説明する（図１８参照）。簡単のため、支払額ｘと引き下ろし額ｗｉは同じ値である。すなわち、一つの電子コインが一度に使い切られる場合について説明する。
【００６３】
ステップ１：受領者装置１０００は、利用者装置７００との電子コイン使用時の交信履歴ＨＦ、すなわちＸ，Ｓ，Ｔ，Ｅ′，ＩＤｖ，ｅｕ，Ｉ，Ｎｕ，Ｂ，Ｒｆ，Ｆ，ｗｉを銀行装置１１００に提出する。
ステップ２：銀行装置１１００は検証器１１０２を用いて、電子コインによる支払時の検査と同様に、つまり、式（６）、（７）、（９）の各検証を行うことによってＨＦの正当性を検査する。検証結果が異常ならばＦを不正コインとみなし、処理を中断する。正常ならば、さらに交信履歴Ｈを発行機関装置９００に送信する。
【００６４】
ステップ３：発行機関装置９００は、銀行装置１１００と同様にＨＦの正当性を検証する。検証結果が異常ならば、Ｆを不正コインとみなし、処理を中断する。正常ならばさらに、Ｒｆを元に発行履歴ＨＦを検索し、Ｒｆが存在すれば二重使用の不正行為はないと判断し、Ｒｆに関する情報を発行履歴から削除し、これを必要に応じて外部記憶装置に保持する。
【００６５】
なお、発行機関装置および銀行装置がそれぞれ保有する会計処理装置は、受領者装置からの電子コインの預入に際し適当な会計処理を講じる。
引換履歴更新処理
公開情報Ｄの更新は実施例１と同様に行う。
上述において各装置内に示すブロック構成は機能を示し、必ずしも１つの機器として存在するものではない。
【００６６】
以上の説明から理解されるように、この発明による利用者装置は、図９中の記憶装置２０１、匿名検証器２０２、２０８、引換番号発生器２０３、ハッシュ演算器２０４、乱数生成器２０５、ブラインド署名前処理器２０６、ブラインド署名後処理器２０７、を備え、この装置は当然電子現金の受領を可能とされるから図１０中の記憶装置４０１を備えかつ、銀行装置、発行機関装置、受領者装置に対し、それぞれ送信する手段を有している。
【００６７】
【発明の効果】
以上述べたこの発明の効果は以下のとおり。
１．銀行と電子現金発行機関の分離
銀行は電子現金の発行機関にならずとも、利用者に対して電子現金サービスを提供することが可能。発行機関が全ての電子現金の発行・還収を一元的に管理するため、各銀行がそれぞれ個別に電子現金の発行管理業務、不正使用のチェックなどを行う必要はない。
２．複数の銀行による円滑な電子現金サービスの提供
複数の銀行が同一の電子現金発行機関を利用することにより、利用者はどの銀行から引き出した電子現金かを意識することなく扱うことができる。すなわち、利用者は各銀行の公開鍵を保有する必要はなく、自分が現金を引き出す取引銀行の公開鍵以外は、発行機関の公開鍵を持てばすむことになる。
３．プライバシーと二重使用チェック用データベースの容量について
銀行と発行機関を分離したため、利用者はいかなる時も発行機関とは匿名で接することが可能となった。そのため、二重使用チェック用データベースの容量を逓減する番号登録式電子現金方式（発行時に電子コインの情報を登録し、還流時にこれを削除する方式）を、利用者のプライバシーを完全に保ちつつ実現することが可能。
【図面の簡単な説明】
【図１】この発明方法が適用されるシステムの原理構成を示すブロック図。
【図２】実施例１の引換証発行処理における利用者装置の動作手順を示す流れ図。
【図３】実施例１の引換証発行処理における銀行装置の動作手順を示す流れ図。
【図４】実施例１の電子現金引換処理における利用者装置の動作手順を示す流れ図。
【図５】実施例１の電子現金引換処理における発行機関装置の動作手順を示す流れ図。
【図６】実施例１の引換履歴削除における銀行装置の処理を示す流れ図。
【図７】実施例１の引換履歴削除における発行機関装置の処理を示す流れ図。
【図８】実施例１の利用者装置と銀行装置の引換証発行処理における機能構成例を示すブロック図。
【図９】実施例１の利用者装置と銀行装置の引換処理における機能構成例を示すブロック図。
【図１０】実施例１の受領者装置と銀行装置および発行機関装置の決済処理における機能構成例を示すブロック図。
【図１１】実施例１の銀行装置における履歴情報更新処理の機能構成例を示すブロック図。
【図１２】引換番号生成器の構成例を示すブロック図。
【図１３】コイン番号生成器の構成例を示すブロック図。
【図１４】実施例２が適用されるシステム構成例を示すブロック図。
【図１５】実施例２の引換証の発行処理における機能構成例を示すブロック図。
【図１６】実施例２の引換処理における機能構成例を示すブロック図。
【図１７】実施例２の電子コインによる支払における機能構成例を示すブロック図。
【図１８】実施例２の決済における機能構成例を示すブロック図。
【図１】
0003599493.tif 000006
【図２】
0003599493.tif 000007
【図３】
0003599493.tif 000008
【図４】
0003599493.tif 000009
【図５】
0003599493.tif 000010
【図６】
0003599493.tif 000011
【図７】
0003599493.tif 000012
【図８】
0003599493.tif 000013
【図９】
0003599493.tif 000014
【図１０】
0003599493.tif 000015
【図１１】
0003599493.tif 000016
【図１２】
0003599493.tif 000017
【図１３】
0003599493.tif 000018
【図１４】
0003599493.tif 000019
【図１５】
0003599493.tif 000020
【図１６】
0003599493.tif 000021
【図１７】
0003599493.tif 000022
【図１８】
0003599493.tif 000023