説明

匿名署名生成装置、匿名署名検証装置、匿名署名追跡判定装置、追跡機能付き匿名署名システム、それらの方法及びプログラム

【課題】追跡機能付きのリング署名方式にランダムオラクルモデルによらずに安全性証明をつける。更に、グループの構成員数がNの場合に署名の情報量をO(√N)に抑制する。
【解決手段】追跡機能付きのリング署名方式のアルゴリズムを、SDH(Strong Diffie-Hellman)仮定に基づき構成する。また、RとCとの関連付け、ΣとLとの関連付け、ΣとRとの関連付けに際し、それぞれのパラメータを行列にマッピングした上で、証明を作成しそれを検証する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、グループの一員による署名であるが誰が署名をしたかは特定することができないグループ匿名署名を行うための、匿名署名生成装置、匿名署名検証装置、匿名署名追跡判定装置、追跡機能付き匿名署名システム、それらの方法及びプログラムに関する。
【背景技術】
【0002】
リング署名方式はグループ署名方式の一種であり、管理者を置くことなく、署名者が構成員を自由に選定してグループ(リング)を構成することができる。この方式では、グループのどの構成員も署名をすることができるが、検証者はグループのいずれかの構成員が署名したことは検証できるにとどまり、どの構成員が署名したのかは特定することはできない。そのため、基本的には完全な匿名性が保障される。
【0003】
しかしながら、このような完全な匿名性という性質により、例えば1つのメッセージテーマ(issue)に対して構成員ごとに1回の署名(メッセージ投稿)のみを認めるという制約を設けたくても、匿名であるが故、設けられないというような問題があった。
【0004】
そこで、そのような問題に対処すべく考案された追跡機能付きのリング署名方式(例えば、非特許文献1、2)が開示されている。非特許文献1、2の方式では、タグを利用してリング署名を構成する。署名者はタグごとに一度だけ署名を生成することができる。署名者が同じタグを用いて別のメッセージの署名生成を試みた場合、その署名者が暴露される。また、リング署名の構成員である署名者以外の者がそのリング署名の生成に用いたタグやメッセージに対して真の署名者に成りすまして署名を生成しようとしても、署名を作成することができない。このような方式は、例えば電子投票等に利用した場合、投票者の匿名性を保持した上で、「二重投票を追跡できる」「偽造投票を阻止できる」などの利点がある。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】E. Fujisaki and K. Suzuki、"Traceable ring signature"、Public Key Cryptography-PKC 2007、LNCS 4450、Springer-Verlag、2007年、p.181-200
【非特許文献2】E. Fujisaki and K. Suzuki、"Traceable ring signature"、IEICE TRANS. FUNDAMENTLS, E91-A(1)、2008年1月、p.83-93
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献1、2の追跡機能付きのリング署名方式は、安全性証明がランダムオラクルモデル(参考文献1参照)に基づいているが、ランダムオラクルによる安全性証明の場合、例えば参考文献2で示されているように、ランダムオラクルで安全であると証明された方式であっても、現実にはどう実装しても安全でない方式が存在する。そのため、より一層の安全性を担保するには数学的な根拠に基づき安全性証明がつくことが望ましい。
[参考文献1]M. Bellare and P. Rogaway、"Random Oracles are Practical: A Paradigm for Designing Efficient Protocols"、Proc. of the First ACM Conference on Computer and Communications Security 、1993年11月、p.62-73
[参考文献2]R. Canetti, O. Goldreich and S.Halevi、"The Random Oracle Methodology, Revisited"、Proc. of ACM STOC98、1998年、p.209-218
ランダムオラクルモデルを用いずに安全性証明を行う署名方式は、例えば参考文献3にて開示されている。参考文献3の署名方式の安全性証明は、q−SDH(Strong Diffie-Hellman)仮定に基づくものである。q−SDH仮定は大まかには、素数pを位数とする巡回群Gの生成元をgとし、x∈Z/pZ(Z/pZはpを法とする剰余類群)がランダムに与えられたとき、
【0007】
【数1】

が与えられても、
【0008】
【数2】

(c∈(Z/pZ)*、(Z/pZ)*はpと互いに素な剰余類群)を多項式時間内に求めることは困難であるという仮定であり、数学的に安全性を保証することができる。
【0009】
そこで、本発明の目的は、従来の追跡機能付きのリング署名方式を、参考文献3で開示された署名方式をベースにアルゴリズムを見直すことにより、ランダムオラクルモデルによらずに安全性証明をつけることが可能な追跡機能付きのリング署名方式を実現することにある。
[参考文献3]D. Boneh and X. Boyen、"Short Signatures Without Random Oracles"、Advances In Cryptology-EUROCRYPT 2004、LNCS 3027、Springer-Verlag、2004年、p.56-73
【0010】
また、非特許文献1、2の追跡機能付きのリング署名方式においては、署名の情報量がグループの構成員数Nに比例するO(N)であり、システムへの負荷や処理時間などへの影響が、構成員の増加に比例して大きくなってしまうという問題があった。この点、参考文献4では、追跡機能無しのリング署名方式において、署名の情報量を√Nに比例するO(√N)に抑制するアルゴリズムが開示されている。これは大まかには、例えばCがコミットするyIと同じ値をコミットする元がR={Y、Y、・・・、Y }の中に1つ存在することを証明するような場合に、Yiを√N×√Nの行列内にマッピングすることで、行又は列単位での署名の証明処理を可能とし、よって署名として必要な情報量の圧縮を図るものである。
【0011】
そこで本発明は、ランダムオラクルモデルによらずに安全性証明がつく追跡機能付きのリング署名方式において、更に参考文献4で開示されたアルゴリズムを応用することにより、署名の情報量をO(√N)に抑制することもあわせて目的とする。
[参考文献4]N. Chandran, J. Groth, and A. Sahai、"Ring Signatures of Sub-linear Size without Random Oracles"、Automata, Languages and Programming、LNCS 4596、Springer-Verlag、2007年、p.423-434
【課題を解決するための手段】
【0012】
本発明の追跡機能付き匿名署名システムは、匿名署名生成装置と匿名署名検証装置と匿名署名追跡判定装置とから構成される。当該システムは、位数nが大きな素数p、qの積である巡回群Gと、その生成元gと、h∈G(h≠g)と、zcrs∈Gと、位数nの巡回群Gと、ペアリング関数e:G×G→Gと、ハッシュ関数H:{0、1}*→Z/nZと、ハッシュ関数H´(≠H):{0、1}*→Z/nZと、ランダムな値xi∈Z/nZ(Z/nZはnを法とする剰余類群、i∈{1、2、・・・、N}は構成員の識別子)に基づき、
【0013】
【数3】

(gxは楕円曲線上の点gのスカラー倍(x倍)演算を表す、以下の乗算表記につき同様。)
として得られた各構成員のBB署名検証鍵yiのコミットメント
【0014】
【数4】

(diはランダムな値(di∈Z/nZ)。y・hは楕円曲線上の点yと点hとの楕円加算を表す、以下の積算表記につき同様。)
の集合R={Y、Y、・・・、Y}と、が公開され、上記各構成員が自身のBB署名検証鍵yiとそれに対応する秘密のBB署名鍵xiとを保有するという条件下で用いる。
【0015】
匿名署名生成装置は、OT署名鍵生成器と、ハッシュ関数演算器と、BB署名生成器と、四則演算器と、乱数生成器と、コミットメント生成器と、証明生成器と、OT署名生成器とから構成される。
OT署名鍵生成器は、OT署名鍵skと、それと対応するOT署名検証鍵vkと、を生成して出力する。
【0016】
ハッシュ関数演算器は、署名対象事項を特定する情報issueと署名対象のメッセージmと上記Rと上記OT署名検証鍵vkとが入力され、タグT=(issue‖Y‖Y‖・・・‖Y)(‖はビット結合を表す。)を生成し、ハッシュ値H(T)、H´(T)、H(T‖m)、及びH(vk)を演算して出力する。
【0017】
BB署名生成器は、gと、リングの構成員である署名者I∈{1、2、・・、N}のBB署名鍵xIと、ハッシュ値H(T)、H(vk)、及びH´(T)と、が入力され、BB署名鍵xIを用いて当該H(T) 、H(vk)、及びH´(T)のBB署名σI、σvk、及びzをそれぞれ、
【0018】
【数5】

により生成し出力する。
四則演算器は、BB署名σIと、gと、hと、ハッシュ値H(T‖m)とが入力され、Qを、
【0019】
【数6】

により演算するとともに、ハッシュ値H(T‖m)とQとから、i=I以外の全てのi(1≦i≦n)についてσを、σi=gH(T,m)・Qにより演算し、各演算結果を出力する。
乱数生成器は、ランダムな値η、dI、s、b、f、r∈Z/nZをそれぞれ生成して出力するとともに、
【0020】
【数7】

について、
【0021】
【数8】

をランダムに生成して出力する。
【0022】
コミットメント生成器は、hと、BB署名検証鍵yIと、BB署名σI、σvk、及びzと、値dI、s、b、及びfとが入力され、BB署名検証鍵yIのコミットメントC、BB署名σIのコミットメントL、BB署名σvkのコミットメントLvk、及びBB署名zのコミットメントLzを、それぞれ、
【0023】
【数9】

により生成して出力する。
【0024】
証明生成器は、gと、hと、BB署名鍵xIと、BB署名検証鍵yIと、ハッシュ値H(T)、H(vk)、H(T‖m)、及びH´(T)と、BB署名zと、コミットメントL、Lvk、及びLzと、値s、r、η、f、tτ、λτ、wτ、tτ´、λτ´、及びwτ´(1≦τ≦√N)と、上記集合R={Y、Y、・・・、Y}と、上記σ(1≦i≦n、i=Iを含む)と、が入力され、Qがgχという形をしていることの証明πを、
【0025】
【数10】

により生成し、署名者IのH(T)のBB署名σが署名者IのBB署名検証鍵yに対応する署名であることの証明πC,Lを、
πC,L=(gH(T)・y)・L
により生成し、署名者IのH(vk)のBB署名σvkが署名者IのBB署名検証鍵yに対応する署名であることの証明
【0026】
【数11】

により生成し、また、zがgχという形をしていることの証明πを、
【0027】
【数12】

により生成し、Lがzかzcrsのいずれかをコミットしたものであることの証明
【0028】
【数13】

により生成し、署名者IのH´(T)のBB署名zが署名者IのBB署名検証鍵yに対応する署名であることの証明
【0029】
【数14】

により生成し、CとしてコミットされたBB署名検証鍵yIと同じ値がコミットされた元がR={Y、Y、・・・、Y}の中に一つ存在することを示す証明ΠR,Cを、
【0030】
【数15】

の組として生成し、LとしてコミットされたBB署名σIと同じ値がΣ={σ、σ、・・・、σ}の中に一つ存在することを示す証明ΠL,Σを、
【0031】
【数16】

の組として生成し、証明ΠR,CでリングRの中に一つ存在した要素をY、証明ΠL,ΣでΣの中に一つ存在した要素をσE´としたとき、E=E´であることを示す証明ΠR,Σを、
【0032】
【数17】

の組として生成し、生成した各証明を出力する。
【0033】
OT署名生成器は、OT署名検証鍵vkと、OT署名鍵skと、タグTと、メッセージmと、コミットメントC、L、Lvk、及びLzと、BB署名zと、δと、δcrsと、Qと、証明
【0034】
【数18】

とが入力され、OT署名鍵skを用いて
【0035】
【数19】

の署名sig0を生成し、タグ付き文書(T、m)のRに関する匿名署名
【0036】
【数20】

を生成し出力する。
【0037】
匿名署名検証装置は、OT署名検証器と、ハッシュ関数演算器と、署名検証器とから構成される。
OT署名検証器は、OT署名検証鍵vkと、匿名署名
【0038】
【数21】

とが入力され、OT署名検証鍵vkを用いてsig0から
【0039】
【数22】

を復号する。
【0040】
ハッシュ関数演算器は、タグTと、OT署名検証鍵vkと、メッセージmとが入力され、ハッシュ関数H(T)、H(vk)、H´(T)、及びH(T‖m)を演算して出力する。
証明検証器は、上記gと、上記hと、上記ハッシュ値H(T)、H(vk)、H´(T)、及びH(T‖m)と、R={Y、Y、・・・、Y}と、OT署名検証器で復号された
【0041】
【数23】

とが入力され、全てのi(1≦σi≦N)についてσ=gH(T,m)・QによりΣ={σ、σ、・・・、σ}を復元し、
【0042】
【数24】

を検証し、更にΠR,Cに関し、
【0043】
【数25】

がすべて成立すること、更にΠL,Σに関し、
【0044】
【数26】

がすべて成立すること、更にΠR,Σに関し、
【0045】
【数27】

がすべて成立することをそれぞれ検証し、すべての検証が成功した場合に、sigをタグ付き文書(T、m)のリングRに関する正当な匿名署名とみなす。
【0046】
匿名署名追跡判定装置は、同一のタグTで文書が異なる2つのタグ付き文書(T、m)及び(T、m´)と、これら2つのタグ付き文書についての、各構成員のBB署名検証鍵のコミットメントの集合R={Y、Y、・・・、Y}に係る2つの正しい匿名署名
【0047】
【数28】

とが入力され、各タグ付き文書について、それぞれσ=gH(T,m)・Q、σ´=gH(T,m´)・Q´により、BB署名の集合Σ={σ、σ、・・・、σ}、Σ´={σ´、σ´、・・・、σ´}を復元し、ΣとΣ´とを対照してσI=σI´となる要素が発見された場合に署名者Iを出力する。
【発明の効果】
【0048】
本発明により、ランダムオラクルモデルを用いずに安全性証明がつく追跡機能付きのリング署名方式を実現することができ、なおかつ署名の情報量をO(√Nに抑制することができる。
【図面の簡単な説明】
【0049】
【図1】本発明の追跡機能付き匿名署名システム1の機能構成例を示す図。
【図2】本発明の追跡機能付き匿名署名システム1の処理フロー例を示す図。
【図3】Q、mに基づき生成したσi(1≦i≦N)を結んで得られる直線のイメージ図。
【図4】各証明の相関関係を示す図。
【発明を実施するための形態】
【0050】
以下、本発明の実施の形態について、詳細に説明する。
【実施例1】
【0051】
〔方式の基本要件〕
本発明においては、追跡機能付きのリング署名方式における以下の基本要件を満たすように構成した。
(1)匿名性
同じ署名者が施した署名は、それが各タグにおいて1度目である限り、誰が施したかを特定できない。
(2)タグによる関連付け
同じ署名者によって同じタグに施された署名は関連付けられる。言いかえれば、あるタグに施すことができる署名の数の上限はリングの構成員数である。
(3)追跡・公開性
同じ署名者が、あるタグについて2以上の異なるメッセージに署名を施した場合、その署名者は明らかにされる。
(4)偽造困難性
ある署名者になりすまして署名を偽造することは困難である。
【0052】
〔アルゴリズム〕
本システムで実現する追跡機能付きのリング署名方式は、準備、署名生成、署名検証、追跡判定の4つのアルゴリズムからなる。これらを追跡機能付き匿名署名システム10として構成した例を図1に示す。追跡機能付き匿名署名システム10は、匿名署名生成装置100と匿名署名検証装置200と匿名署名追跡判定装置300とから構成される。
【0053】
以下、各アルゴリズムについて説明する。
<準備>
位数nが大きな素数p、qの積である巡回群Gと、その生成元gと、h∈G(h≠g)と、zcrs∈Gと、位数nの巡回群Gと、ペアリング関数e:G×G→Gと、ハッシュ関数H:{0、1}*→Z/nZと、ハッシュ関数H´(≠H):{0、1}*→Z/nZ、を共通参照情報として公開する。ここで、ペアリング関数eとは、2入力1出力の関数で楕円曲線E上の2点P、Qについて、e(aP、bQ)=e(P、Q)ab=e(bP、aQ)というような双線形性を成立させる関数である。
【0054】
更に、ランダムな値xi∈Z/nZ(Z/nZはnを法とする剰余類群、i∈{1、2、・・・、N}は構成員の識別子)に基づき、
【0055】
【数29】

(gxは楕円曲線上の点gのスカラー倍(x倍)演算を表す、以下の乗算表記につき同様。)
として求めた各構成員のBB署名検証鍵yiについて、それぞれコミットメントを、
【0056】
【数30】

(diはランダムな値(di∈Z/nZ)。y・hは楕円曲線上の点yと点hとの楕円加算を表す、以下の積算表記につき同様。)
により生成し、その集合R={Y、Y、・・・、Y}を公開する。
また、上記各構成員は、自身のBB署名検証鍵yiとそれに対応する秘密のBB署名鍵xiとを予め保有する。
【0057】
<署名生成>
図1に署名生成アルゴリズムの処理を担う匿名署名生成装置100の機能構成ブロックの構成例を、図2に処理フロー例を示す。
匿名署名生成装置100は、OT署名鍵生成器101と、ハッシュ関数演算器102と、BB署名生成器103と、四則演算器104と、乱数生成器105と、コミットメント生成器106と、証明生成器107と、OT署名生成器108とから構成される。
【0058】
OT署名鍵生成器101は、OT署名鍵skとそれと対応するOT署名検証鍵vkとを生成して出力する(S1)。本発明においては、上記のBB署名鍵・検証鍵xi、yiと当該OT署名鍵・検証鍵sk、vkの2種類の鍵ペアを用いる。ランダムオラクルを用いずに安全性証明がつく参考文献3で開示された署名方式には、短い文書にしか署名がつけられないが、文書に対して署名が一意に決定するBB1署名と、文書に対して署名が一意に確定しないが長い文書に署名がつけられるBB2署名があり、BB2署名は使い捨ての署名鍵・検証鍵を生成し、BB1署名で使い捨て検証鍵に署名し、使い捨て署名鍵で長い文書に署名をする方式である。そこで本発明においては、この2つのBB署名を用途によって使い分けてアルゴリズムを構成する。以下、BB1署名に係る鍵をBB署名鍵・検証鍵と呼び、BB2署名に係る使い捨ての鍵をOT署名鍵・検証鍵と呼ぶ。なお、OT署名鍵・検証鍵はその都度使い捨てるため、一度の使用に耐えうる安全性を有する方式であれば、いかなる公開鍵暗号方式によるものでも構わない。
【0059】
ハッシュ関数演算器102には、議題や質問事項などの署名対象事項を特定する情報であるissueと、署名対象のメッセージmと、各構成員のBB署名検証鍵yiのコミットメントYiの集合であるR={Y、Y、・・・、Y}と、OT署名検証鍵vkとが入力される。そして、タグT=issue‖Y‖Y‖・・・‖Y(‖はビット結合を表す。)を生成し、ハッシュ値H(T)と、ハッシュ値H´(T)と、ハッシュ値H(T‖m)と、ハッシュ値H(vk)とを演算して出力する(S2)。
【0060】
BB署名生成器103は、gと、リングの構成員である署名者I∈{1、2、・・、N}のBB署名鍵xIと、ハッシュ値H(T)と、ハッシュ値H(vk)とハッシュ値H´(T)とが入力され、H(T)、H(vk)、H´(T)のBB署名σI、σvk、zをそれぞれ、
【0061】
【数31】

により生成し、生成した各署名を出力する(S3)。
四則演算器104は、BB署名σIとgとハッシュ値H(T‖m)とが入力され、Qを、
【0062】
【数32】

により演算して出力する(S4)。
【0063】
ここでQは、図3に示すような、logσIとH(T‖m)とを結ぶ直線の傾きとして観念されるものである。本発明では、このQとH(T‖m)とに基づき署名者I以外のグループのメンバi(1≦i≦N)のダミーの署名σiを生成、復元する(ただし復元の際には、署名者Iの署名は匿名状態にあるため、他と同様にQとH(T‖m)とに基づき復元する)。このN個のσiを結んだ傾きQの直線は、あるタグTについてメッセージmが異なると(例えばm´)図3に示すように傾きがQ´に変化するが、同じ署名者Iが署名している限り、2本の直線は1点(横軸が署名者Iの所)で交差する。そのため、検証側で復元されたタグTについてのメッセージmとm´に対する署名集合Σ={σ、σ、・・・、σ}とΣ´={σ´、σ´、・・・、σ´}とを照合することで、σ=σ´が発見された場合には、同じ署名者Iが同じタグTに対し異なる2つのメッセージに署名していると検出することができる。
【0064】
乱数生成器105は、ランダムな値η、dI、s、b、f、r∈Z/nZをそれぞれ生成して出力する(S5)。なお、S5の処理はS1〜S4と並行して行っても構わない。
【0065】
コミットメント生成器106は、hと、BB署名検証鍵yIと、BB署名σI、σvk、zと、ランダム値dI、s、b、fと、が入力され、BB署名検証鍵yIのコミットメントC、BB署名σIのコミットメントL、BB署名σvkのコミットメントLvk、BB署名zのコミットメントLzをそれぞれ、
【0066】
【数33】

により生成し出力する(S6)。このように各情報をコミットして署名生成・検証処理することにより、秘密情報の解読危険性を低減することができる。
【0067】
証明生成器107は、gと、hと、BB署名鍵xIと、BB署名検証鍵yIと、ハッシュ値H(T)、H(vk)、H(T‖m)、H´(T)と、BB署名zと、コミットメントL、Lvk、Lzと、ランダム値s、r、η、fと、が入力され、以下の各証明を生成し出力する(S7)。
・Qがgχという形をしていることの証明π
【0068】
【数34】

【0069】
・署名者IのH(T)のBB署名σが当該署名者IのBB署名検証鍵yに対応する署名であることの証明πC,L
πC,L=(gH(T)・y)・L
・署名者IのH(vk)のBB署名σvkが当該署名者IのBB署名検証鍵yに対応する署名であることの証明
【0070】
【数35】

・zがgχという形をしていることの証明π
【0071】
【数36】

・Lがzかzcrsのいずれかをコミットしたものであることの証明
【0072】
【数37】

・署名者IのH´(T)のBB署名zが当該署名者IのBB署名検証鍵yに対応する署名であることの証明
【0073】
【数38】

【0074】
・CとしてコミットされたBB署名検証鍵yIと同じ値がコミットされた元がR={Y、Y、・・・、Y}の中に一つ存在することを示す証明ΠR,C
・LとしてコミットされたBB署名σIと同じ値がΣ={σ、σ、・・・、σ}の中に一つ存在することを示す証明ΠL,Σ
・証明ΠR,CでリングRの中に一つ存在した要素をYE、証明ΠL,Σで上記Σの中に一つ存在した要素をσとしたとき、E=E´であることを示す証明ΠR,Σ
【0075】
本発明においては、ハッシュ関数H´(T)についてのBB署名zを生成し、更にこのzに係る証明を生成して検証するが、これは次の理由による。先に説明したように、同じ署名者IがあるタグTに対し2つの異なるメッセージm、m´に署名した場合、QとH(T‖m)に基づき生成したN個のσiを結んだ直線と、Q´とH(T‖m´)に基づき生成したN個のσi´を結んだ直線と、が1点(横軸が署名者Iの所)で交差することから、各メッセージについて生成された2つの署名集合Σ、Σ´において、σ=σ´なる要素が存在したことをもって、重複署名がされたと判定する。しかし、悪意を持った2名の構成員が結託することで、2名がそれぞれ生成した直線をIの所で交差させて誤判定に導くことができる可能性がある。そこで、各構成員のBB署名鍵xIとタグTとから、ハッシュHとは異なる別のハッシュH´を用いて各構成員ごとに一意に定まるBB署名zを生成し、このzについても検証することで、このような結託攻撃を防御することができる。
【0076】
また、ΠR,C、ΠL,Σ、ΠR,Σの各証明について、ここでは生成方法を特定しないが、これは非特許文献1、2などの従来技術によって生成することが可能なためである。この場合の署名の情報量は従来どおりO(N)となる。署名の情報量をO(√N)に抑制する新たなアルゴリズムについては、実施例2として後述する。
【0077】
OT署名生成器108には、上記OT署名検証鍵vkと、上記OT署名鍵skと、上記タグTと、上記メッセージmと、上記コミットメントC、L、Lvk、Lzと、上記BB署名zと、上記δと、上記δcrsと、上記Qと、上記証明
【0078】
【数39】

とが入力される。まず、OT署名鍵skを用いて
【0079】
【数40】

の署名sig0を生成する。そして、タグ付き文書(T、m)の上記Rに関する匿名署名
【0080】
【数41】

を生成して出力する(S8)。
【0081】
<署名検証>
図1に署名検証アルゴリズムの処理を担う匿名署名検証装置200の機能構成ブロックの構成例を、図2に処理フロー例を示す。
匿名署名検証装置200は、OT署名検証器201とハッシュ関数演算器202と証明検証器203とから構成される。
OT署名検証器201は、OT署名検証鍵vkと匿名署名
【0082】
【数42】

とが入力され、OT署名検証鍵vkを用いて、sig0から
【0083】
【数43】

を復号する。復号できなかった場合には、不正なOT署名であったと判定する(S11)。
【0084】
ハッシュ関数演算器202は、上記タグTと、上記OT署名検証鍵vkとが入力され、ハッシュ関数H(T)、H(vk)、及びH´(T)を演算して出力する(S12)。
証明検証器203は、gと、hと、ハッシュ値H(T)、H(vk)、及びH´(T)と、OT署名検証器201で復号された
【0085】
【数44】

【0086】
とが入力され、以下の各関係式の成立の確認により署名の正当性を検証する(S13)。
・Qがgχという形をしていることの確認
e(Q、h)=e(g、π)
・署名者IのH(T)のBB署名σが当該署名者IのBB署名検証鍵yに対応する署名であることの確認
e(gH(T)・C、L)=e(g、g) ・e(h、πC,L)
・署名者IのH(vk)のBB署名σvkが当該署名者IのBB署名検証鍵yに対応する署名であることの確認
【0087】
【数45】

【0088】
・zがgχという形をしていることの確認
e(z、h)=e(g、π)
・Lがzかzcrsのいずれかをコミットしたものであることの確認
δ・δcrs=g
e(δ、δ・g-1)=e(δcrs、δcrs・g-1)=e(h、πδ)
【0089】
【数46】

【0090】
・署名者IのH´(T)のBB署名zが当該署名者IのBB署名検証鍵yに対応する署名であることの確認
【0091】
【数47】

【0092】
なお、ΠR,C、ΠL,Σ、ΠR,Σの検証については、ここでは実施方法を特定しないが、これは非特許文献1、2などの従来技術によって実施することが可能なためである。証明生成器107において署名の情報量をO(√N)に抑制するアルゴリズムに基づき証明を生成した場合には、後述する実施例2に示すアルゴリズムにより検証する。
【0093】
以上の各証明の相関関係を図4に示す。
そして、証明検証器203におけるすべての検証が成功した場合に、sigをタグ付き文書(T、m)のリングRに関する正当な匿名署名とみなす。
【0094】
<追跡判定>
追跡判定アルゴリズムの処理を担う匿名署名追跡判定装置300の追跡機能付き匿名署名システム1内での位置づけを図1に、システム全体の処理フロー内での位置づけを図2に示す。
匿名署名追跡判定装置300は、同一のタグTで文書が異なる2つのタグ付き文書(T、m)、(T、m´)と、これら2つのタグ付き文書に対する各構成員のBB署名検証鍵のコミットメントの集合R={Y、Y、・・・、Y}に関する2つの正しい匿名署名
【0095】
【数48】

【0096】
とが入力され、各タグ付き文書について、それぞれσi=gH(T,m)・Q、σi´=gH(T,m´)・Q´により、BB署名の集合Σ={σ、σ、・・・、σ}、Σ´={σ´、σ´、・・・、σ´}を復元し、σI(∈Σ)=σI´(∈Σ´)となる要素が発見された場合に、重複署名がされたと判定し署名者Iを出力する(S21)。
【0097】
以上のようなアルゴリズムにより、ランダムオラクルモデルによらずに安全性証明がつく追跡機能付きのリング署名方式を実現することができる。
【実施例2】
【0098】
実施例2では、参考文献4で開示されたアルゴリズムを実施例1の追跡機能付きのリング署名方式に応用し、署名の情報量をO(N)からO(√N)に抑制するアルゴリズムを説明する。実施例1とは構成は共通であるが、匿名署名生成装置100については、四則演算器104、乱数生成器105、及び証明生成器107、また匿名署名検証装置200については、ハッシュ関数演算器202、及び証明検証器203につき、一部処理が追加される。そこで、ここでは追加部分についてのみ説明し、共通する部分の説明は省略する。
【0099】
四則演算器104は、更に、ハッシュ値H(T‖m)とQとから、i=I以外の全てのi(1≦i≦n)について、BB署名σiを、σi=gH(T,m)・Qにより演算して出力する。
乱数生成器105は、更に、
【0100】
【数49】

について、
【0101】
【数50】

【0102】
をランダムに生成して出力する。なお、I=(u−1)√N+vは、BB署名σ、BB署名検証鍵のコミットメントYをそれぞれ、√N×√Nの行列上のσu,v、Yu,vにマッピングする関係式である。
【0103】
証明生成器107は、更に、ランダム値tτ、λτ、wτ、tτ´、λτ´、wτ´(1≦τ≦√N)と、集合R={Y、Y、・・・、Y}と、BB署名σi(1≦i≦n、i=Iを含む)と、がそれぞれ入力され、証明ΠR,C、ΠL,Σ、ΠR,Σをそれぞれ以下のように生成し出力する。
【0104】
なお、生成にあたっては、σ、Y(1≦i≦N)を、i=(ε−1)√N+φの関係式により√N×√Nの行列上のσε,φ、Yε,φ(1≦ε、φ≦√N)にそれぞれマッピングする。
【0105】
【数51】

【0106】
【数52】

・証明ΠR,Σは、以下のπα,α´,ε、πγ,γ´,φの組からなる。
【0107】
【数53】

ハッシュ関数演算器202は、更に上記mが入力され、ハッシュ関数H(T‖m)を演算して出力する。
【0108】
証明検証器203は、更に上記ハッシュ関数H(T‖m)と、R={Y、Y、・・・、Y}とが入力され、まず全てのi(1≦σi≦N)について、σ=gH(T,m)・QによりΣ={σ、σ、・・・、σ}を復元する。そして、証明ΠR,C、ΠL,Σ、ΠR,Σについて、以下の各関係式の成立を確認することにより署名の正当性を検証する。
●証明ΠR,Cについて
・各α(又は各γ)がhχかg・hχのいずれかの形をしていることの確認
【0109】
【数54】

・各α(又は各γ)のうち1つがg・hχの形をしていることの確認
【0110】
【数55】

・その1つのα(又はγ)が、各Yのうちの1つに対応するものであることの確認
【0111】
【数56】

・その1つのYが、C(yのコミットメント)であることの確認
【0112】
【数57】

【0113】
●証明ΠL,Σについて、
・各α(又は各γ)がhχかg・hχのいずれかの形をしていることの確認
【0114】
【数58】

・各α(又は各γ)のうち1つがg・hχの形をしていることの確認
【0115】
【数59】

・その1つのα(又はγ)が、各σのうちの1つに対応するものであることの確認
【0116】
【数60】

・その1つのσが、σであることの確認
【0117】
【数61】

【0118】
●証明ΠR,Σについて、
・証明ΠR,CでリングRの中に1つ存在した要素をY、証明ΠL,Σで上記Σの中に1つ存在した要素をσE´としたとき、E=E´であることの確認
【0119】
【数62】

【0120】
以上のように、Yi、σiをそれぞれ√N×√Nの行列内にマッピングし、それに基づき証明を生成することで、行又は列単位での署名の証明処理を可能とし、よって署名として必要な情報量を√Nに比例するO(√N)に抑制することができる。
【0121】
本発明における匿名署名生成装置、匿名署名検証装置、匿名署名追跡判定装置、追跡機能付き匿名署名システム、それらの方法及びプログラムは、上記の実施形態に限定されるものではなく、本発明を逸脱しない範囲で適宜変更が可能である。また、上記に説明した処理は記載の順に従った時系列において実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行してもよい。
【0122】
また、匿名署名生成装置、匿名署名検証装置、匿名署名追跡判定装置、又は追跡機能付き匿名署名システムにおける処理機能をコンピュータによって実現する場合、匿名署名生成装置、匿名署名検証装置、匿名署名追跡判定装置、又は追跡機能付き匿名署名システムが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより上記匿名署名生成装置、匿名署名検証装置、匿名署名追跡判定装置、又は追跡機能付き匿名署名システムにおける処理機能がコンピュータ上で実現される。
【0123】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦自己の記録装置に格納する。そして、処理の実行時、このコンピュータは自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、更に、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータからこのコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって上記の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。また、この形態ではコンピュータ上で所定のプログラムを実行させることにより、匿名署名生成装置、匿名署名検証装置、匿名署名追跡判定装置、又は追跡機能付き匿名署名システムを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

【特許請求の範囲】
【請求項1】
位数nが大きな素数p、qの積である巡回群Gと、その生成元gと、h∈G(h≠g)と、zcrs∈Gと、位数nの巡回群Gと、ペアリング関数e:G×G→Gと、ハッシュ関数H:{0、1}*→Z/nZと、ハッシュ関数H´(≠H):{0、1}*→Z/nZと、ランダムな値xi∈Z/nZ(Z/nZはnを法とする剰余類群、i∈{1、2、・・・、N}は構成員の識別子)に基づき、
【数63】

(gxは楕円曲線上の点gのスカラー倍(x倍)演算を表す、以下の乗算表記につき同様。)
として得られた各構成員のBB署名検証鍵yiのコミットメント
【数64】

(diはランダムな値(di∈Z/nZ)。y・hは楕円曲線上の点yと点hとの楕円加算を表す、以下の積算表記につき同様。)
の集合R={Y、Y、・・・、Y}と、が公開され、上記各構成員が自身のBB署名検証鍵yiとそれに対応する秘密のBB署名鍵xiとを保有するという条件下で用いる匿名署名生成装置において、
OT署名鍵skと、それと対応するOT署名検証鍵vkと、を生成して出力するOT署名鍵生成器と、
署名対象事項を特定する情報issueと署名対象のメッセージmと上記Rと上記OT署名検証鍵vkとが入力され、タグT=(issue‖Y‖Y‖・・・‖Y)(‖はビット結合を表す。)を生成し、ハッシュ値H(T)、H´(T)、H(T‖m)、及びH(vk)を演算して出力するハッシュ関数演算器と、
上記gと、リングの構成員である署名者I∈{1、2、・・、N}の上記BB署名鍵xIと、上記ハッシュ値H(T)、H(vk)、及びH´(T)と、が入力され、上記BB署名鍵xIを用いて当該H(T) 、H(vk)、及びH´(T)のBB署名σI、σvk、及びzをそれぞれ、
【数65】

により生成し、生成した各署名を出力するBB署名生成器と、
上記BB署名σIと、上記gと、上記hと、上記ハッシュ値H(T‖m)とが入力され、Qを、
【数66】

により演算して出力する四則演算器と、
ランダムな値η、dI、s、b、f、r∈Z/nZをそれぞれ生成して出力する乱数生成器と、
上記BB署名検証鍵yIと、上記BB署名σI、σvk、及びzと、上記hと、上記値dI、s、b、及びfと、が入力され、上記BB署名検証鍵yIのコミットメントC、上記BB署名σIのコミットメントL、上記BB署名σvkのコミットメントLvk、及び上記BB署名zのコミットメントLzを、それぞれ、
【数67】

により生成して出力するコミットメント生成器と、
上記gと、上記hと、上記BB署名鍵xIと、上記BB署名検証鍵yIと、上記ハッシュ値H(T)、H(vk)、H(T‖m)、及びH´(T)と、上記BB署名zと、上記コミットメントL、Lvk、及びLzと、上記値s、r、η、及びfと、が入力され、Qがgχという形をしていることの証明πを、
【数68】

により生成し、当該署名者IのH(T)のBB署名σが当該署名者IのBB署名検証鍵yに対応する署名であることの証明πC,Lを、
πC,L=(gH(T)・y)・L
により生成し、当該署名者IのH(vk)のBB署名σvkが当該署名者IのBB署名検証鍵yに対応する署名であることの証明
【数69】

により生成し、また、zがgχという形をしていることの証明πを、
【数70】

により生成し、Lがzかzcrsのいずれかをコミットしたものであることの証明
【数71】

により生成し、当該署名者IのH´(T)のBB署名zが当該署名者IのBB署名検証鍵yに対応する署名であることの証明
【数72】

により生成し、更に、上記CとしてコミットされたBB署名検証鍵yIと同じ値がコミットされた元が上記R={Y、Y、・・・、Y}の中に一つ存在することを示す証明ΠR,Cを所定の演算により生成し、上記LとしてコミットされたBB署名σIと同じ値がΣ={σ、σ、・・・、σ}の中に一つ存在することを示す証明ΠL,Σを所定の演算により生成し、上記証明ΠR,CでリングRの中に一つ存在した要素をY、上記証明ΠL,Σで上記Σの中に一つ存在した要素をσE´としたとき、E=E´であることを示す証明ΠR,Σを所定の演算により生成し、生成した各証明を出力する証明生成器と、
上記OT署名検証鍵vkと、上記OT署名鍵skと、上記タグTと、上記メッセージmと、上記コミットメントC、L、Lvk、及びLzと、上記BB署名zと、上記δと、上記δcrsと、上記Qと、上記証明
【数73】

とが入力され、上記OT署名鍵skを用いて
【数74】

の署名sig0を生成し、タグ付き文書(T、m)の上記Rに関する匿名署名
【数75】

を生成し出力するOT署名生成器と、
を備える匿名署名生成装置。
【請求項2】
請求項1に記載の匿名署名生成装置において、
上記四則演算器は、更に、上記ハッシュ値H(T‖m)と上記Qとから、i=I以外の全てのi(1≦i≦n)についてσを、σi=gH(T,m)・Qにより演算して出力し、
上記乱数生成器は、更に、
【数76】

について、
【数77】

をランダムに生成して出力し、
上記証明生成器は、更に、上記値tτ、λτ、wτ、tτ´、λτ´、及びwτ´(1≦τ≦√N)と、上記集合R={Y、Y、・・・、Y}と、上記σ(1≦i≦n、i=Iを含む)と、がそれぞれ入力され、上記証明ΠR,Cを、
【数78】

の組として生成し、上記証明ΠL,Σを、
【数79】

の組として生成し、上記証明ΠR,Σを、
【数80】

の組として生成することを特徴とする匿名署名生成装置。
【請求項3】
OT署名検証鍵vkと、匿名署名
【数81】

とが入力され、OT署名検証鍵vkを用いてsig0から
【数82】

を復号するOT署名検証器と、
上記タグTと、上記OT署名検証鍵vkと、が入力され、ハッシュ関数H(T)、H(vk)、及びH´(T)を演算して出力するハッシュ関数演算器と、
上記gと、上記hと、上記ハッシュ値H(T)、H(vk)、及びH´(T)と、上記OT署名検証器で復号された
【数83】

とが入力され、
【数84】

を検証し、また、ΠR,C、ΠL,Σ、ΠR,Σについてはそれぞれ所定の演算により検証する証明検証器と、
を備え、上記証明検証器におけるすべての検証が成功した場合に、sigをタグ付き文書(T、m)のリングRに関する正当な匿名署名とみなす匿名署名検証装置。
【請求項4】
請求項3に記載の匿名署名検証装置において、
上記ΠR,Cは、
【数85】

であり、
上記ΠL,Σは、
【数86】

であり、
上記ΠR,Σは、
【数87】

であり、
上記ハッシュ関数演算器は、更に上記mが入力され、ハッシュ関数H(T‖m)を演算して出力し、
上記証明検証器は、更に上記ハッシュ関数H(T‖m)とR={Y、Y、・・・、Y}とが入力され、全てのi(1≦σi≦N)についてσ=gH(T,m)・QによりΣ={σ、σ、・・・、σ}を復元し、
証明ΠR,Cについて、
【数88】

がすべて成立すること、
証明ΠL,Σについて、
【数89】

がすべて成立すること、
証明ΠR,Σについて、
【数90】

がすべて成立すること、
を検証することを特徴とする匿名署名検証装置。
【請求項5】
同一のタグTで文書が異なる2つのタグ付き文書(T、m)及び(T、m´)と、これら2つのタグ付き文書についての、各構成員のBB署名検証鍵のコミットメントの集合R={Y、Y、・・・、Y}に係る2つの正しい匿名署名
【数91】

とが入力され、各タグ付き文書について、それぞれσ=gH(T,m)・Q、σ´=gH(T,m´)・Q´により、BB署名の集合Σ={σ、σ、・・・、σ}、Σ´={σ´、σ´、・・・、σ´}を復元し、ΣとΣ´とを対照してσI=σI´となる要素が発見された場合に署名者Iを出力する匿名署名追跡判定装置。
【請求項6】
請求項2に記載の匿名署名生成装置と、請求項4に記載の匿名署名検証装置と、請求項5に記載の匿名署名追跡判定装置とを備える追跡機能付き匿名署名システム。
【請求項7】
位数nが大きな素数p、qの積である巡回群Gと、その生成元gと、h∈G(h≠g)と、zcrs∈Gと、位数nの巡回群Gと、ペアリング関数e:G×G→Gと、ハッシュ関数H:{0、1}*→Z/nZと、ハッシュ関数H´(≠H):{0、1}*→Z/nZと、ランダムな値xi∈Z/nZ(Z/nZはnを法とする剰余類群、i∈{1、2、・・・、N}は構成員の識別子)に基づき、
【数92】

(gxは楕円曲線上の点gのスカラー倍(x倍)演算を表す、以下の乗算表記につき同様。)
として得られた各構成員のBB署名検証鍵yiのコミットメント
【数93】

(diはランダムな値(di∈Z/nZ)。y・hは楕円曲線上の点yと点hとの楕円加算を表す、以下の積算表記につき同様。)
の集合R={Y、Y、・・・、Y}と、が公開され、上記各構成員が自身のBB署名検証鍵yiとそれに対応する秘密のBB署名鍵xiとを保有するという条件下で用いる匿名署名生成方法において、
OT署名鍵生成器が、OT署名鍵skと、それと対応するOT署名検証鍵vkと、を生成するOT署名鍵生成ステップと、
ハッシュ関数演算器が、署名対象事項を特定する情報issueと上記RとからなるタグT=(issue‖Y‖Y‖・・・‖Y)(‖はビット結合を表す。)について、ハッシュ値H(T)、H´(T)、H(T‖m)、及びH(vk)を演算するハッシュ関数演算ステップと、
BB署名生成器が、上記構成員である署名者I∈{1、2、・・、N}のBB署名鍵xIを用いて、上記H(T) 、H(vk)、及びH´(T)のBB署名σI、σvk、及びzをそれぞれ、
【数94】

により生成するBB署名生成ステップと、
四則演算器がQを、
【数95】

により演算する四則演算ステップと、
乱数生成器が、ランダムな値η、dI、s、b、f、r∈Z/nZをそれぞれ生成する乱数生成ステップと、
コミットメント生成器が、上記BB署名検証鍵yIのコミットメントC、上記BB署名σIのコミットメントL、上記BB署名σvkのコミットメントLvk、及び上記BB署名zのコミットメントLzを、それぞれ、
【数96】

により生成するコミットメント生成ステップと、
証明生成器が、上記署名者IのもとにloggQが存在し、Qがgχという形をしていることの証明πを、
【数97】

により生成し、当該署名者IのH(T)のBB署名σが当該署名者IのBB署名検証鍵yに対応する署名であることの証明πC,Lを、
πC,L=(gH(T)・y)・L
により生成し、当該署名者IのH(vk)のBB署名σvkが当該署名者IのBB署名検証鍵yに対応する署名であることの証明
【数98】

により生成し、また、上記署名者Iのもとにloggzが存在し、zがgχという形をしていることの証明πを、
【数99】

により生成し、Lがzかzcrsのいずれかをコミットしたものであることの証明
【数100】

により生成し、当該署名者IのH´(T)のBB署名zが当該署名者IのBB署名検証鍵yに対応する署名であることの証明
【数101】

により生成し、更に、上記CとしてコミットされたBB署名検証鍵yIと同じ値がコミットされた元が上記R={Y、Y、・・・、Y}の中に一つ存在することを示す証明ΠR,Cを所定の演算により生成し、上記LとしてコミットされたBB署名σIと同じ値がΣ={σ、σ、・・・、σ}の中に一つ存在することを示す証明ΠL,Σを所定の演算により生成し、上記証明ΠR,CでリングRの中に一つ存在した要素をY、上記証明ΠL,Σで上記Σの中に一つ存在した要素をσE´としたとき、E=E´であることを示す証明ΠR,Σを所定の演算により生成する証明生成ステップと、
OT署名生成器が、上記OT署名鍵skを用いて
【数102】

の署名sig0を生成し、タグ付き文書(T、m)の上記Rに関する匿名署名
【数103】

を生成するOT署名生成ステップと、
を実行する匿名署名生成方法。
【請求項8】
請求項7に記載の匿名署名生成方法において、
上記四則演算ステップにおいては、更に、上記ハッシュ値H(T‖m)と上記Qとから、i=I以外の全てのi(1≦i≦n)についてσを、σi=gH(T,m)・Qにより演算し、
上記乱数生成ステップにおいては、更に、
【数104】

について、
【数105】

をランダムに生成し、
上記証明生成ステップにおいては、更に、上記証明ΠR,Cを、
【数106】

の組として生成し、上記証明ΠL,Σを、
【数107】

の組として生成し、上記証明ΠR,Σを、
【数108】

の組として生成することを特徴とする匿名署名生成方法。
【請求項9】
OT署名検証器が、匿名署名
【数109】

についてOT署名検証鍵vkを用いて、sig0から
【数110】

を復号するOT署名検証ステップと、
ハッシュ関数演算器が、ハッシュ関数H(T)、H(vk)、及びH´(T)を演算するハッシュ関数演算ステップと、
証明検証器が、
【数111】

を検証し、また、ΠR,C、ΠL,Σ、ΠR,Σについてはそれぞれ所定の演算により検証する証明検証ステップと、
を実行し、上記証明検証ステップにおけるすべての検証が成功した場合に、sigをタグ付き文書(T、m)のリングRに関する正当な匿名署名とみなす匿名署名検証方法。
【請求項10】
請求項9に記載の匿名署名検証方法において、
上記ΠR,Cは、
【数112】

であり、
上記ΠL,Σは、
【数113】

であり、
上記ΠR,Σは、
【数114】

であり、
上記ハッシュ関数演算ステップにおいては、更にハッシュ関数H(T‖m)を演算し、
上記証明検証ステップにおいては、更に、全てのi(1≦σi≦N)について、σ=gH(T,m)・QによりΣ={σ、σ、・・・、σ}を復元し、
証明ΠR,Cについて、
【数115】

がすべて成立すること、
証明ΠL,Σについて、
【数116】

がすべて成立すること、
証明ΠR,Σについて、
【数117】

がすべて成立すること、
を検証することを特徴とする匿名署名検証方法。
【請求項11】
匿名署名追跡判定装置が、同一のタグTで文書が異なる2つのタグ付き文書(T、m)及び(T、m´)について、それぞれσ=gH(T,m)・Q、σ´=gH(T,m´)・Q´によりBB署名の集合Σ={σ、σ、・・・、σ}、Σ´={σ´、σ´、・・・、σ´}を復元し、ΣとΣ´とを対照してσI=σI´となる要素が発見された場合に署名者Iを出力する匿名署名追跡判定方法。
【請求項12】
請求項1〜6のいずれかに記載した装置又はシステムとしてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2010−164927(P2010−164927A)
【公開日】平成22年7月29日(2010.7.29)
【国際特許分類】
【出願番号】特願2009−9380(P2009−9380)
【出願日】平成21年1月19日(2009.1.19)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】