(57)【要約】【課題】取引をまとめて決済した場合でも、通信量、計算量が取引回数に依存しない。【解決手段】裁定者装置が暗号化鍵apk、復号鍵askを生成する。署名者装置が検証鍵vk、署名鍵skを生成し、メッセージmiに対する署名σiと部分署名ωiとを生成する。検証者装置が部分署名ωiを検証する。署名者装置が集約メッセージmに対する集約署名σを生成する。検証者装置が集約メッセージmに対する集約部分署名ωを生成する。署名者装置が集約署名σを検証者装置へ送信する。検証者装置が署名者装置から集約署名σを受信しなかった場合に集約部分署名ωを裁定者装置へ送信する。裁定者装置が集約部分署名ωを検証し、集約署名σを復元する。検証者装置が集約署名σを検証する。【選択図】図５
2016127532.tif 000002
【特許請求の範囲】
【請求項１】
kを任意の整数とし、iを1以上k以下の各整数とし、miをi番目の要素が1であり残りの要素が0であるk個以上のベクトルとし、τを一意のトランザクションIDとし、
裁定者装置が、準同型性をもつ検証可能暗号化署名の暗号化鍵apkおよび復号鍵askを生成し、上記暗号化鍵apkを公開する裁定者鍵生成ステップと、
署名者装置が、準同型性をもつ検証可能暗号化署名の検証鍵vkおよび署名鍵skを生成し、上記検証鍵vkを公開する署名者鍵生成ステップと、
上記署名者装置が、上記署名鍵skを用いて、上記トランザクションIDτに紐付けられた上記メッセージmiに対する準同型性をもつ検証可能暗号化署名の署名σiを生成する署名生成ステップと、
上記署名者装置が、上記署名鍵skおよび上記暗号化鍵apkを用いて、上記メッセージmiに対する準同型性をもつ検証可能暗号化署名の部分署名ωiを生成し、上記メッセージmiと上記部分署名ωiとを検証者装置へ送信する部分署名生成ステップと、
上記検証者装置が、上記検証鍵vkおよび上記暗号化鍵apkを用いて、上記部分署名ωiを検証する部分署名検証ステップと、
上記署名者装置が、上記検証鍵vkを用いて、上記メッセージm1,…,miの総和である集約メッセージmに対する集約署名σを生成する署名集約ステップと、
上記検証者装置が、上記検証鍵vkおよび上記暗号化鍵apkを用いて、上記集約メッセージmに対する集約部分署名ωを生成する部分署名集約ステップと、
上記署名者装置が、上記集約署名σを上記検証者装置へ送信する署名送信ステップと、
上記検証者装置が、上記署名者装置から上記集約署名σを受信しなかった場合に、上記トランザクションIDτ、上記集約メッセージm、および上記集約部分署名ωを上記裁定者装置へ送信する署名復元依頼ステップと、
上記裁定者装置が、上記検証鍵vkおよび上記暗号化鍵apkを用いて、上記集約部分署名ωを検証する集約部分署名検証ステップと、
上記裁定者装置が、上記検証鍵vk、上記復号鍵ask、および上記暗号化鍵apkを用いて、上記トランザクションIDτ、上記集約メッセージm、および上記集約部分署名ωから上記集約署名σを復元し、上記集約署名σを上記検証者装置へ送信する集約署名復元ステップと、
上記検証者装置が、上記検証鍵vkを用いて、上記署名者装置もしくは上記裁定者装置から受信した上記集約署名σを検証する集約署名検証ステップと、
を含む楽観的公平交換方法。
【請求項２】
請求項１に記載の楽観的公平交換方法であって、
nをk以上の任意の整数とし、
上記トランザクションIDτは、取引内容を特定する情報を含むものであり、
上記メッセージmiは、i番目の要素が1であり、残りの要素が0であるn個のベクトルである
楽観的公平交換方法。
【請求項３】
請求項１に記載の楽観的公平交換方法であって、
nをk以上の任意の整数とし、
上記メッセージmiは、i番目の要素が1であり、n+i番目の要素がi番目の取引内容を特定する情報であり、残りの要素が0である2n個のベクトルである
楽観的公平交換方法。
【請求項４】
署名者装置、検証者装置、および裁定者装置を含む楽観的公平交換システムであって、
kを任意の整数とし、iを1以上k以下の各整数とし、miをi番目の要素が1であり残りの要素が0であるk個以上のベクトルとし、τを一意のトランザクションIDとし、
上記署名者装置は、
準同型性をもつ検証可能暗号化署名の検証鍵vkおよび署名鍵skを生成し、上記検証鍵vkを公開する署名者鍵生成部と、
上記署名鍵skを用いて、上記トランザクションIDτに紐付けられた上記メッセージmiに対する準同型性をもつ検証可能暗号化署名の署名σiを生成する署名生成部と、
上記署名鍵skおよび準同型性をもつ検証可能暗号化署名の暗号化鍵apkを用いて、上記メッセージmiに対する準同型性をもつ検証可能暗号化署名の部分署名ωiを生成し、上記メッセージmiと上記部分署名ωiとを上記検証者装置へ送信する部分署名生成部と、
上記検証鍵vkを用いて、上記メッセージm1,…,miの総和である集約メッセージmに対する集約署名σを生成する署名集約部と、
上記集約署名σを上記検証者装置へ送信する署名送信部と、
を含み、
上記検証者装置は、
上記検証鍵vkおよび上記暗号化鍵apkを用いて、上記部分署名ωiを検証する部分署名検証部と、
上記検証鍵vkおよび上記暗号化鍵apkを用いて、上記集約メッセージmに対する集約部分署名ωを生成する部分署名集約部と、
上記署名者装置から上記集約署名σを受信しなかった場合に、上記トランザクションIDτ、上記集約メッセージm、および上記集約部分署名ωを上記裁定者装置へ送信する署名復元依頼部と、
上記検証鍵vkを用いて、上記署名者装置もしくは上記裁定者装置から受信した上記集約署名σを検証する集約署名検証部と、
を含む
上記裁定者装置は、
上記暗号化鍵apkおよび準同型性をもつ検証可能暗号化署名の復号鍵askを生成し、上記暗号化鍵apkを公開する裁定者鍵生成部と、
上記検証鍵vkおよび上記暗号化鍵apkを用いて、上記集約部分署名ωを検証する集約部分署名検証部と、
上記検証鍵vk、上記復号鍵ask、および上記暗号化鍵apkを用いて、上記トランザクションIDτ、上記集約メッセージm、および上記集約部分署名ωから上記集約署名σを復元し、上記集約署名σを上記検証者装置へ送信する集約署名復元部と、
を含む楽観的公平交換システム。
【請求項５】
kを任意の整数とし、iを1以上k以下の各整数とし、miをi番目の要素が1であり残りの要素が0であるk個以上のベクトルとし、τを一意のトランザクションIDとし、
準同型性をもつ検証可能暗号化署名の検証鍵vkおよび署名鍵skを生成し、上記検証鍵vkを公開する署名者鍵生成部と、
上記署名鍵skを用いて、上記トランザクションIDτに紐付けられた上記メッセージmiに対する準同型性をもつ検証可能暗号化署名の署名σiを生成する署名生成部と、
上記署名鍵skおよび準同型性をもつ検証可能暗号化署名の暗号化鍵apkを用いて、上記メッセージmiに対する準同型性をもつ検証可能暗号化署名の部分署名ωiを生成し、上記メッセージmiと上記部分署名ωiとを検証者装置へ送信する部分署名生成部と、
上記検証鍵vkを用いて、上記メッセージm1,…,miの総和である集約メッセージmに対する集約署名σを生成する署名集約部と、
上記集約署名σを上記検証者装置へ送信する署名送信部と、
を含む署名者装置。
【請求項６】
kを任意の整数とし、iを1以上k以下の各整数とし、miをi番目の要素が1であり残りの要素が0であるk個以上のベクトルとし、τを一意のトランザクションIDとし、
準同型性をもつ検証可能暗号化署名の検証鍵vkおよび暗号化鍵apkを用いて、上記メッセージmiに対する準同型性をもつ検証可能暗号化署名の部分署名ωiを検証する部分署名検証部と、
上記検証鍵vkおよび上記暗号化鍵apkを用いて、上記メッセージm1,…,miの総和である集約メッセージmに対する集約部分署名ωを生成する部分署名集約部と、
署名者装置から上記集約メッセージmに対する集約署名σを受信しなかった場合に、上記トランザクションIDτ、上記集約メッセージm、および上記集約部分署名ωを裁定者装置へ送信する署名復元依頼部と、
上記検証鍵vkを用いて、上記署名者装置もしくは上記裁定者装置から受信した上記集約署名σを検証する集約署名検証部と、
を含む検証者装置。
【請求項７】
kを任意の整数とし、iを1以上k以下の各整数とし、miをi番目の要素が1であり残りの要素が0であるk個以上のベクトルとし、τを一意のトランザクションIDとし、
準同型性をもつ検証可能暗号化署名の暗号化鍵apkおよび復号鍵askを生成し、上記暗号化鍵apkを公開する裁定者鍵生成部と、
準同型性をもつ検証可能暗号化署名の検証鍵vkおよび上記暗号化鍵apkを用いて、上記メッセージm1,…,miの総和である集約メッセージmに対する集約部分署名ωを検証する集約部分署名検証部と、
上記検証鍵vk、上記復号鍵ask、および上記暗号化鍵apkを用いて、上記トランザクションIDτ、上記集約メッセージm、および上記集約部分署名ωから上記集約メッセージmに対する集約署名σを復元し、上記集約署名σを検証者装置へ送信する集約署名復元部と、
を含む裁定者装置。
【請求項８】
請求項５に記載の署名者装置、請求項６に記載の検証者装置、または請求項７に記載の裁定者装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報セキュリティの応用技術に関するものであり、電子商取引においてクライアントとショップ間で取引内容を証明する電子署名を公平に交換する技術に関するものである。
【背景技術】
【０００２】
非特許文献１に、検証可能暗号化署名を用いた電子署名の公平交換方式であるDLY方式が記載されている。DLY方式は楽観的公平交換と呼ばれる種類の方式であり、公平性が失われる状況（例えば、クライアントが取引終了後に正しい電子署名を送ってこない場合）になると、ショップは裁定者に通信履歴を提示することで正しい電子署名を得て公平な状況を回復できる。また、双方が正しく振る舞う限りは、裁定者を必要としない。
【０００３】
以下、非特許文献１に記載のDLY方式について詳しく説明する。
【０００４】
＜準備＞
検証可能暗号化署名は、公開鍵暗号で電子署名を暗号化し、かつ暗号文のままで元の電子署名の正しさが検証できるような方式である。特に暗号化された署名のことを部分署名と呼ぶ。署名者と検証者の他に裁定者がおり、裁定者は正しい部分署名を元の署名に戻すことができる。
【０００５】
検証可能暗号化署名は以下のアルゴリズムからなる。
・セットアップSetup(1к)：セキュリティパラメータкに対して、公開パラメータPPを出力する。以後で説明する各アルゴリズムの入力にはPPが必ず含まれるが、読みやすさのために省略する。
・裁定者鍵生成AdjGen：裁定者の暗号化鍵と復号鍵のペア(apk,ask)を生成する。
・鍵生成Gen：署名者の検証鍵と署名鍵のペア(vk,sk)を生成する。
・署名生成Sig(sk,τ,m)：トランザクションIDτに紐付けられたメッセージmに対する署名σを、署名鍵skを用いて生成する。
・署名検証Ver(vk,τ,m,σ)：トランザクションIDτに紐付けられたメッセージmに対する署名σを入力として、検証鍵vkを用いて検証する。署名σが正しければ1を、正しくなければ0を出力する。
・部分署名生成PSig(sk,apk,τ,m)：トランザクションIDτに紐付けられたメッセージmに対する部分署名ωを、署名鍵skと暗号化鍵apkとを用いて生成する。
・部分署名検証PVer(vk,apk,τ,m,ω)：トランザクションIDτに紐付けられたメッセージmに対する部分署名ωを入力として、検証鍵vkと暗号化鍵apkとを用いて検証する。部分署名ωが正しければ1を、正しくなければ0を出力する。
・裁定者署名復元Adj(vk,ask,apk,τ,m,ω)：トランザクションIDτに紐付けられたメッセージmに対する部分署名ωを入力として、元の署名σを、検証鍵vkと復号鍵askと暗号化鍵apkとを用いて生成する。
【０００６】
＜システムセットアップ＞
裁定者は、公開パラメータPP←Setup(1к)と、裁定者の暗号化鍵と復号鍵のペア(apk,ask)←AdjGenとを生成し、公開パラメータPPと裁定者暗号化鍵apkとを公開する。
【０００７】
＜ユーザ鍵生成＞
クライアントA（署名者）は、署名者の検証鍵と署名鍵のペア(vkA,skA)←Genを生成し、検証鍵vkAを公開する。
【０００８】
＜取引フェイズ＞
クライアントAとショップB（検証者）が取引を行い、取引内容を証明する部分署名ωを以下のように交換する。クライアントAは、トランザクションIDτで識別される取引内容に対応するメッセージmの署名σ←Sig(skA,τ,m)と部分署名ω←PSig(skA,apk,τ,m)とを生成し、メッセージmと部分署名ωとをショップBに送る。ショップBは、クライアントAから部分署名ωを受け取ったら、1←PVer(vkA,apk,τ,m,ω)が成り立つか否かを検証する。成り立たなければ、取引不成立として停止する。
【０００９】
＜決済フェイズ＞
クライアントAとショップBは、署名σを以下のように交換する。クライアントAは、トランザクションIDτで識別される取引内容に対応するメッセージmの署名σをショップBに送る。ショップBは、クライアントAの検証鍵vkAを用いて、1←Ver(vkA,τ,m,σ)が成り立つか否かを検証する。成り立てば決済を行う。
【００１０】
＜裁定フェイズ＞
決済フェイズにおいて、ショップBがクライアントAから署名σを受け取れなかった場合、ショップBは裁定者に署名σの復元を以下のように依頼する。ショップBは、裁定者にトランザクションIDτ、メッセージm、および部分署名ωを送る。裁定者は、クライアントAの検証鍵vkAと裁定者の暗号化鍵apkとを用いて、1←PVer(vkA,apk,τ,m,ω)が成り立つか否かを検証する。成り立てば、クライアントAの検証鍵vkAと裁定者の暗号化鍵apkと復号鍵askとを用いて署名σ←Adj(vkA,ask,apk,τ,m,ω)を復元し、ショップBに返す。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】Yevgeniy Dodis, Pil Joong Lee, Dae Hyun Yum, “Optimistic Fair Exchange in a Multi-user Setting”, Public Key Cryptography 2007, pp. 118-133.
【発明の概要】
【発明が解決しようとする課題】
【００１２】
非特許文献１の従来技術では、取引一回毎に決済を行うことを前提として構成されているため、もし何回かの取引をまとめて決済しようとすると、取引回数に依存した通信量や計算量が決済フェイズで必要になる。現実のシステム運用を考えると、決済は、例えば月末など短期間に集中するため、効率が悪い。
【００１３】
この発明の目的は、このような点に鑑みて、取引をまとめて決済した場合でも、決済フェイズにおける通信量、計算量が取引回数に依存しない楽観的公平交換技術を実現することである。
【課題を解決するための手段】
【００１４】
上記の課題を解決するために、この発明の楽観的公平交換方法は、kを任意の整数とし、iを1以上k以下の各整数とし、miをi番目の要素が1であり残りの要素が0であるk個以上のベクトルとし、τを一意のトランザクションIDとし、裁定者装置が、準同型性をもつ検証可能暗号化署名の暗号化鍵apkおよび復号鍵askを生成し、暗号化鍵apkを公開する裁定者鍵生成ステップと、署名者装置が、準同型性をもつ検証可能暗号化署名の検証鍵vkおよび署名鍵skを生成し、検証鍵vkを公開する署名者鍵生成ステップと、署名者装置が、署名鍵skを用いて、トランザクションIDτに紐付けられたメッセージmiに対する準同型性をもつ検証可能暗号化署名の署名σiを生成する署名生成ステップと、署名者装置が、署名鍵skおよび暗号化鍵apkを用いて、メッセージmiに対する準同型性をもつ検証可能暗号化署名の部分署名ωiを生成し、メッセージmiと部分署名ωiとを検証者装置へ送信する部分署名生成ステップと、検証者装置が、検証鍵vkおよび暗号化鍵apkを用いて、部分署名ωiを検証する部分署名検証ステップと、署名者装置が、検証鍵vkを用いて、メッセージm1,…,miの総和である集約メッセージmに対する集約署名σを生成する署名集約ステップと、検証者装置が、検証鍵vkおよび暗号化鍵apkを用いて、集約メッセージmに対する集約部分署名ωを生成する部分署名集約ステップと、署名者装置が、集約署名σを検証者装置へ送信する署名送信ステップと、検証者装置が、署名者装置から集約署名σを受信しなかった場合に、トランザクションIDτ、集約メッセージm、および集約部分署名ωを裁定者装置へ送信する署名復元依頼ステップと、裁定者装置が、検証鍵vkおよび暗号化鍵apkを用いて、集約部分署名ωを検証する集約部分署名検証ステップと、裁定者装置が、検証鍵vk、復号鍵ask、および暗号化鍵apkを用いて、トランザクションIDτ、集約メッセージm、および集約部分署名ωから集約署名σを復元し、集約署名σを検証者装置へ送信する集約署名復元ステップと、検証者装置が、検証鍵vkを用いて、署名者装置もしくは裁定者装置から受信した集約署名σを検証する集約署名検証ステップと、を含む。
【発明の効果】
【００１５】
この発明の楽観的公平交換技術は、準同型性をもつ検証可能暗号化署名を用いることで、取引フェイズで発生した複数の署名と部分署名を集約することができる。そのため、取引をまとめて決済した場合でも、決済フェイズにおける通信量、計算量が取引回数に依存しない。したがって、効率が良い。
【図面の簡単な説明】
【００１６】
【図１】図１は、楽観的公平交換システムの機能構成を例示する図である。
【図２】図２は、署名者装置の機能構成を例示する図である。
【図３】図３は、検証者装置の機能構成を例示する図である。
【図４】図４は、裁定者装置の機能構成を例示する図である。
【図５】図５は、楽観的公平交換方法の処理フローを例示する図である。
【発明を実施するための形態】
【００１７】
この発明では、取引をまとめて決済した場合でも、決済フェイズにおける通信量、計算量が取引回数に依存しない楽観的公平交換を実現する。
【００１８】
非特許文献１に記載の従来技術では、通常の検証可能暗号化署名を利用していた。この発明の楽観的公平交換技術では、準同型性を持つ検証可能暗号化署名を利用する。準同型性とは、例えば、文書m1に対する署名σ1（または、部分署名ω1）と文書m2に対する署名σ2（または、部分署名ω2）が与えられたときに、文書m1+m2に対する署名がσ1+σ2（または、部分署名がω1+ω2）となる性質である。準同型性を利用することで、一回の取引フェイズで発生した署名と部分署名を既存の署名と部分署名に加算することで集約することができ、決済フェイズにおけるコストを取引回数と独立にすることができる。
【００１９】
準同型性を持つ検証可能暗号化署名は、準同型性を持つ公開鍵暗号と準同型性を持つ電子署名との組み合わせから作ることができる。準同型性を持つ公開鍵暗号は、例えば下記参考文献１に記載されている。準同型性を持つ電子署名は、例えば下記参考文献２に記載されている。
〔参考文献１〕Taher ElGamal, “A public key cryptosystem and a signature scheme based on discrete logarithms”, IEEE Transactions on Information Theory, vol. 31(4), pp. 469-472, 1985.
〔参考文献２〕Nuttapong Attrapadung, Beno^t Libert, Thomas Peters, “Computing on Authenticated Data: New Privacy Definitions and Constructions”, ASIACRYPT 2012, pp. 367-385.
【００２０】
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００２１】
［第一実施形態］
第一実施形態では、定額の商品を繰り返し取引するのに適した方式を示す。トランザクションIDτに取引する商品に関する情報を含め、メッセージmは取引した回数を判別するベクトルとする。これにより、決済フェイズにおけるコストを取引回数と独立にできる。例えば、トランザクションIDτには取引を行うユーザ名、商品名、金額、決済期限などを含める。メッセージmは、一決済あたりの最大取引回数をnとして、n個の1ビットベクトルとして表す。本形態では、i回目の取引に対応するメッセージmiは、次式で定義される。
【００２２】
【数１】
2016127532.tif 000003
【００２３】
準同型性を持つ検証可能暗号化署名は、検証可能暗号化署名のアルゴリズムに加えて準同型性を利用した集約操作のために用いる２つのアルゴリズムを有する。
・署名集約Derive(vk,τ,{mk,σk}k=1λ)：トランザクションIDτで識別される取引内容に対応するメッセージmkと署名σkの組の集合{mk,σk}k=1λを入力として、集約メッセージm=Σk=1λmkに対する集約署名σを、署名者の検証鍵vkを用いて生成する。λは集約する署名の総数である。
・部分署名集約PDerive(vk,apk,τ,{mk,ωk}k=1λ)：トランザクションIDτで識別される取引内容に対応するメッセージmkと部分署名ωkの集合{mk,ωk}k=1λを入力として、集約メッセージm=Σk=1λmkに対する集約部分署名ωを、署名者の検証鍵vkと裁定者の暗号化鍵apkを用いて生成する。
【００２４】
以下、図１〜４を参照して、第一実施形態の楽観的公平交換システムの機能構成を説明する。
【００２５】
第一実施形態の楽観的公平交換システムは、例えば、図１に示すように、署名者装置１、検証者装置２、および裁定者装置３を含む。署名者装置１、検証者装置２、および裁定者装置３は通信網９を介して相互に通信可能に接続される。通信網９は、例えば、インターネットやWAN（Wide Area Network）、LAN（Local Area Network）、専用線、公衆交換電話網、携帯電話通信網などで構成することができる。
【００２６】
署名者装置１は、例えば、図２に示すように、署名者鍵生成部１１、署名生成部１２、部分署名生成部１３、署名集約部１４、および署名送信部１５を含む。
【００２７】
検証者装置２は、例えば、図３に示すように、部分署名検証部２１、部分署名集約部２２、署名復元依頼部２３、および集約署名検証部２４を含む。
【００２８】
裁定者装置３は、例えば、図４に示すように、裁定者鍵生成部３１、集約部分署名検証部３２、および集約署名復元部３３を含む。
【００２９】
署名者装置１、検証者装置２、および裁定者装置３は、例えば、中央演算処理装置（CPU: Central Processing Unit）、主記憶装置（RAM: Random Access Memory）などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。署名者装置１、検証者装置２、および裁定者装置３は、例えば、中央演算処理装置の制御のもとで各処理を実行する。署名者装置１、検証者装置２、および裁定者装置３に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて読み出されて他の処理に利用される。また、署名者装置１、検証者装置２、および裁定者装置３の各処理部の少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
【００３０】
以下、図５を参照して、第一実施形態の楽観的公平交換方法の処理手続きを説明する。
【００３１】
ステップＳ３１において、裁定者装置３の裁定者鍵生成部３１は、公開パラメータPP←Setup(1к)と、裁定者の暗号化鍵と復号鍵のペア(apk,ask)←AdjGenとを生成し、公開パラメータPPと暗号化鍵apkを公開する。
【００３２】
ステップＳ１１において、署名者装置１の署名者鍵生成部１１は、署名者の検証鍵vkと署名鍵skのペア(vk,sk)←Genを生成し、検証鍵vkを公開する。
【００３３】
ステップＳ１２〜Ｓ１４、Ｓ２１〜Ｓ２２は、取引が実行されるたびに繰り返し実行される。以下では、k回の取引を行った後に決済を行うものとし、取引回数をi（=1,…,k）で表す。ステップＳ１５以降の処理は、ステップＳ１２〜Ｓ１４、Ｓ２１〜Ｓ２２の処理をk回繰り返した後に一回実行される。
【００３４】
最初の取引を行う前に、各装置は初期化処理を行う。初期化処理では、署名者装置１は集約メッセージm=(0,…,0)と、集約署名σ=⊥を初期化する。また、検証者装置２は集約メッセージm=(0,…,0)と、集約部分署名ω=⊥を初期化する。集約メッセージm、集約署名σ、および集約部分署名ωについては後述する。
【００３５】
ステップＳ１２において、署名者装置１の署名生成部１２は、トランザクションIDτに紐付けるメッセージmiを、i番目の要素を1とし、その他の要素を0として、次式のように生成する。
【００３６】
【数２】
2016127532.tif 000004
【００３７】
続いて、署名生成部１２は、署名者装置１の署名鍵skを用いて、メッセージmiに対する署名σi←Sig(sk,τ,mi)を生成する。
【００３８】
ステップＳ１３において、署名者装置１の部分署名生成部１３は、署名者装置１の署名鍵skと裁定者装置３の暗号化鍵apkとを用いて、メッセージmiに対する部分署名ωi←PSig(sk,apk,τ,mi)を生成する。署名者装置１は、メッセージmiと部分署名ωiを検証者装置２へ送信する。
【００３９】
ステップＳ２１において、検証者装置２の部分署名検証部２１は、署名者装置１から受信したメッセージmiがi番目の要素が1であり、その他の要素が0であることを確認する。続いて、部分署名検証部２１は、署名者装置１の検証鍵vkと裁定者装置３の暗号化鍵apkとを用いて、1←PVer(vk,apk,τ,mi,ωi)が成り立つか否かを検証する。成り立たなければ、取引不成立として停止する。
【００４０】
ステップＳ１４において、署名者装置１の署名集約部１４は、i=1の場合には、集約メッセージm=m1と、集約署名σ=σ1とを生成する。i>1の場合には、集約メッセージm=m+miと、集約署名σ←Derive(vk,τ,{(m,σ),(mi,σi)})とを生成する。
【００４１】
ステップＳ２２において、検証者装置２の部分署名集約部２２は、i=1の場合には、集約メッセージm=m1と、集約部分署名ω=ω1とを生成する。i>1の場合には、集約メッセージm=m+miと、集約部分署名ω←PDerive(vk,apk,τ,{(m,ω),(mi,ωi)})とを生成する。
【００４２】
ステップＳ１５において、署名者装置１の署名送信部１５は、集約署名σを検証者装置２へ送信する。
【００４３】
ステップＳ２３ａにおいて、検証者装置２の署名復元依頼部２３は、集約署名σを署名者装置１から受信した場合には、ステップＳ２４へ処理を進める。集約署名σを署名者装置１から受信しなかった場合には、ステップＳ２３ｂへ処理を進める。
【００４４】
ステップＳ２３ｂにおいて、検証者装置２の署名復元依頼部２３は、トランザクションIDτ、集約メッセージm、および集約部分署名ωを裁定者装置３へ送信する。
【００４５】
ステップＳ３２において、裁定者装置３の集約部分署名検証部３２は、検証者装置２から受信した集約メッセージmが、次式のように、1番目の要素からk番目の要素までが1であり、その他の要素が0であることを確認する。
【００４６】
【数３】
2016127532.tif 000005
【００４７】
続いて、集約部分署名検証部３２は、署名者装置１の検証鍵vkと裁定者装置３の暗号化鍵apkとを用いて、1←PVer(vk,apk,τ,m,ω)が成り立つか否かを検証する。成り立たなければ、取引不成立として停止する。
【００４８】
ステップＳ３３において、裁定者装置３の集約署名復元部３２は、署名者装置１の検証鍵vkと裁定者装置３の暗号化鍵apkおよび復号鍵askとを用いて、集約署名σ←Adj(vk,ask,apk,τ,m,ω)を復元する。裁定者装置３は、復元した集約署名σを検証者装置２へ送信する。
【００４９】
ステップＳ２４において、検証者装置２の集約署名検証部２４は、集約メッセージmが、1番目の要素からk番目の要素までが１であり、その他の要素が０であることを確認する。続いて、集約署名検証部２４は、署名者装置１の検証鍵vkを用いて、1←Ver(vk,τ,m,σ)が成り立つか否かを検証する。成り立たなければ、取引不成立として停止する。成り立てば決済を行う。
【００５０】
上記のように構成することにより、本形態の楽観的公平交換システムおよび方法は、取引ごとに生成するメッセージ、署名、および部分署名を準同型性のある検証可能暗号化署名により生成することで集約することができ、複数回の取引をまとめて決済することが可能となっている。決済時に送受信されるメッセージ、署名、および部分署名のデータ量は従来と変わらないため、決済時に必要となる計算量、通信量は取引回数に依存しない。したがって、効率が良い。
【００５１】
［第二実施形態］
第一実施形態の楽観的公平交換システムは、トランザクションIDτに取引内容に関する情報を含めており、定額の商品を繰り返し取引する場合に適した方式を示した。第二実施形態では、取引するごとに商品や金額が変動する場合に適した方式を示す。
【００５２】
本形態では、トランザクションIDτに取引する商品や金額などの情報は含めず、メッセージベクトルの一部に商品や金額の情報を埋め込む。これにより、取引ごとに異なる商品や金額を指定することができる。例えば、トランザクションIDτには取引を行うユーザ名、決済期限などを含める。また、商品や金額などの取引内容に関する情報のハッシュ値hiを取引ごとに用意する。メッセージmは、一決済あたりの最大取引回数をnとして、2n個の1ビットベクトルとして表す。本形態では、i回目の取引に対応するメッセージmiは、次式で定義される。
【００５３】
【数４】
2016127532.tif 000006
【００５４】
以下、第二実施形態の楽観的公平交換方法の処理手続きを説明する。以下では、上述の第一実施形態との相違点を中心に説明する。
【００５５】
ステップＳ１２において、署名者装置１の署名生成部１２は、取引内容を示す情報のハッシュ値hiを計算し、トランザクションIDτに紐付けるメッセージmiを、i番目の要素を1とし、n+i番目の要素をハッシュ値hiとし、その他の要素を0として、次式のように生成する。
【００５６】
【数５】
2016127532.tif 000007
【００５７】
続いて、署名生成部１２は、署名者装置１の署名鍵skを用いて、メッセージmiに対する署名σi←Sig(sk,τ,mi)を生成する。
【００５８】
ステップＳ２１において、検証者装置２の部分署名検証部２１は、取引内容を示す情報のハッシュ値hiを計算し、署名者装置１から受信したメッセージmiがi番目の要素が1であり、n+i番目の要素がハッシュ値hiであり、その他の要素が0であることを確認する。続いて、部分署名検証部２１は、署名者装置１の検証鍵vkと裁定者装置３の暗号化鍵apkとを用いて、1←PVer(vk,apk,τ,mi,ωi)が成り立つか否かを検証する。成り立たなければ、取引不成立として停止する。
【００５９】
ステップＳ３２において、裁定者装置３の集約部分署名検証部３２は、検証者装置２から受信した集約メッセージmが、次式のように、1番目の要素からk番目の要素までが1であり、n+1番目の要素からn+k番目の要素までがハッシュ値h1,…,hkであり、その他の要素が0であることを確認する。
【００６０】
【数６】
2016127532.tif 000008
【００６１】
続いて、集約部分署名検証部３２は、署名者装置１の検証鍵vkと裁定者装置３の暗号化鍵apkとを用いて、1←PVer(vk,apk,τ,m,ω)が成り立つか否かを検証する。成り立たなければ、取引不成立として停止する。
【００６２】
上記のように構成することにより、本形態の楽観的公平交換システムおよび方法は、商品や値段などの取引内容に関する情報をメッセージベクトルに含めることで、複数回の取引内容が異なる場合でも、まとめて決済することが可能となっている。
【００６３】
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【００６４】
［プログラム、記録媒体］
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００６５】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００６６】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００６７】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００６８】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【００６９】
１  署名者装置
２  検証者装置
３  裁定者装置
１１  署名者鍵生成部
１２  署名生成部
１３  部分署名生成部
１４  署名集約部
１５  署名送信部
２１  部分署名検証部
２２  部分署名集約部
２３  署名復元依頼部
２４  集約署名検証部
３１  裁定者鍵生成部
３２  集約部分署名検証部
３３  集約署名復元部
【図１】
2016127532.tif 000009
【図２】
2016127532.tif 000010
【図３】
2016127532.tif 000011
【図４】
2016127532.tif 000012
【図５】
2016127532.tif 000013