説明

デジタル署名システム、装置及びプログラム

【課題】 リング署名方式で署名されたデジタル署名の利用・検証を署名者が希望する範囲のみで行うように制限する。
【解決手段】 署名者としてのユーザに固有の秘密鍵情報及び署名者が選択した他の複数のユーザの公開鍵情報及び署名者が指名した確認者の公開鍵情報を用いて、任意のデジタル情報に対するリング署名を生成するデジタル署名装置(10)と、リング署名を検証する際に、確認者の公開鍵情報に対応する秘密鍵情報に基づいて、当該リング署名を検証する確認者用署名検証装置(20)と、リング署名を検証する際に、確認者用署名検証装置との間の対話証明を介して、当該リング署名を検証する検証者用署名検証装置(30)とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタル署名方式の一種のリング署名方式を用いるデジタル署名システム、装置及びプログラムに係り、特に、署名者の匿名性と、検証者の制限とを両立し得るデジタル署名システム、装置及びプログラムに関する。
【背景技術】
【0002】
デジタル署名方式として、従来からリング署名方式が知られている(例えば、非特許文献1及び非特許文献2参照)。
【0003】
リング署名方式とは、以下の性質をもつデジタル署名方式である。
第1は、署名者がメンバを任意にN人選んで生成したグループの代表として署名を生成することが可能であるという性質である。
【0004】
第2は、N人に含まれているユーザを含めた任意の検証者はN人のうちの1人が署名した事実は検証可能だが、どの1人が署名者であるかを特定するのが困難な性質である。
【0005】
もう一つデジタル署名として、従来から指名確認者署名方式が知られている(例えば、非特許文献3参照)。
【0006】
指名確認者署名方式とは、以下の性質を持つデジタル署名方式である。
【0007】
第1は、署名者が任意に選んだユーザを確認者として指名し、その確認者は、署名の正当性を検証でき、それ以外のユーザは署名の正当性を検証できないという性質である。
【0008】
第2は、署名者に確認者として指名されていないユーザは一人では署名の正当性を検証できないが、署名者に確認者として指名されているユーザと指名されていないユーザが対話的に証明をすることによって、指名されていないユーザも署名の正当性を確認することができるという性質である。
【0009】
以上のようなリング署名方式及び指名確認者署名に関連する他の先行技術文献情報としては、後で引用する非特許文献4−8などがある。
【非特許文献1】R.リベスト、A.シャミア、Y.タウマン(R.Rivest, A.Shamir, Y.Tauman)著、「ハウ・トゥ・リーク・ア・シークレット(How to Leak a Secret)」、アジアクリプト2001(ASIACRYPT2001)、LNCS 2248、シュプリンガー・フェアラーク(Springer-Verlag)、pp.552−565、2001年
【非特許文献2】大久保、阿部、鈴木、辻井著、「証明長が短い 1−out−of−n証明」、暗号と情報セキュリティシンポジウム(SCIS2002)、pp.189−193、2002年
【非特許文献3】D.チャウム(D.Chaum)著、「デザイネイティッド・コンファーマー・シグニチャーズ(Designated Confirmer Signatures)」、ユーロクリプト'94(EUROCRYPT'94)、LNCS 950、シュプリンガー・フェアラーク(Springer-Verlag)、pp.86−91、1994年
【非特許文献4】M.ミヘルス、M.スタドラー(M. Michels, M. Stadler)著、「ジェネリック・コンストラクションズ・フォア・セキュア・アンド・エフィシェント・コンファーマー・シグネチャー・スキームズ(Generic Constructions for Secure and Efficient Confirmer Signature Schemes)」、ユーロクリプト'98(EUROCRYPT'98)、LNCS 1403、pp.406−421、1998年
【非特許文献5】M.阿部、M.大久保、K.鈴木(M. Abe, M. Ohkubo, K. Suzuki)著、「1−アウト−オブ−n・シグネチャーズ・フローム・ア・バラエティ・オブ・キーズ(1-out-of-n Signatures from a Variety of Keys)」、アジアクリプト2002(ASIACRYPT2002)、LNCS 2501、pp.415−432、2002年
【非特許文献6】A.フジオカ、T.オカモト、K.オオタ(A. Fujioka, T. Okamoto, K. Ohta)著、「インタラクティブ・バイ−プルーフ・システムズ・アンド・アンデナイアブル・シグネチャー・スキームズ(Interactive Bi-Proof Systems and Undeniable Signature Schemes)」、ユーロクリプト'91(EUROCRYPT'91)、LNCS 547、pp.243−256、1992年
【非特許文献7】M.ミヘルス、M.スタドラー(M. Michels, M. Stadler)著、「エフィシェント・コンバーチブル・アンデナイアブル・シグネチャー(エクステンデッド・アブストラクト)(Efficient Convertible Undeniable Signature (Extended Abstract)」、ピーアールオーシー・フォース・インターナショナル・ワークショップ・オン・セレクテッド・エリアズ・イン・クリプトグラフィー−エスエイシー'97(Proc. 4th International Workshop on selected Areas in Cryptography - SAC'97)、pp.231−244、1997年
【非特許文献8】米沢、花岡、今井 著、「検証者が多数の場合に適した検証者指定署名」、暗号と情報セキュリティシンポジウム−SCIS2003、pp.67−70、2003年
【発明の開示】
【発明が解決しようとする課題】
【0010】
しかしながら以上のようなデジタル署名システムでは、リング署名及び指名確認者署名のそれぞれについて以下のような不都合がある。
【0011】
リング署名は、公開されている情報を用いると、誰でも署名の正当性を検証できる。しかし、誰でも検証できるということは、署名者の意図しない範囲のメンバにも正当性を納得させてしまうことができて、署名の存在を悪用されてしまう可能性がある。
【0012】
例えば、リング署名を用いて社内の不正告発システムを構築したとする。このシステムを導入した企業を仮にA社とする。A社は告発システムを、自浄効果を期待して導入した。
【0013】
A社のある社員はこのシステムを用いて社内の不正を告発するリング署名付き文書を作成したとする。この署名は本来ならば社内にとどめて、内容を検討するために利用するものである。しかしながら、悪意や手違いから新聞社や放送メディアなどの第三者に渡ってしまい、署名が誰にでも検証が可能なことから署名の正当性を検証され、対処する前にA社の不正だけが取り上げられてしまう場合が考えられる。この場合、自浄効果の意味がなくなってしまう。
【0014】
一方、指名確認者署名においては、署名者が一人しか存在しないので、確認時、検証時には、その人が署名したか否かという正当性を検証することになるため、匿名性がない。
【0015】
まとめると、リング署名には、署名者が匿名性を持つ反面、署名の検証者が制限されないという不都合がある。指名確認者署名には、署名を検証可能な者を確認者又は確認者が対話する検証者に制限できる反面、署名者の匿名性が無いという不都合がある。
【0016】
本発明は上記実情を考慮してなされたもので、リング署名方式で署名されたデジタル署名の利用・検証を署名者が希望する範囲のみで行うように制限し得るデジタル署名システム、装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0017】
第1の発明は、署名者としてのユーザに固有の秘密鍵情報(xi)及び前記署名者が選択した他の複数のユーザの公開鍵情報(yj)及び前記署名者が指名した確認者の公開鍵情報(yC)を用いて、任意のデジタル情報(m)に対するリング署名を生成するデジタル署名装置と、前記リング署名を検証する際に、前記確認者の公開鍵情報に対応する秘密鍵情報(xC)に基づいて、当該リング署名を検証する確認者用署名検証装置と、前記リング署名を検証する際に、前記確認者用署名検証装置との間の対話証明を介して、当該リング署名を検証する検証者用署名検証装置とを備えたデジタル署名システムである。
【0018】
(作用)
第1の発明は、署名者としてのユーザに固有の秘密鍵情報(xi)及び署名者が選択した他の複数のユーザの公開鍵情報(yj)及び署名者が指名した確認者の公開鍵情報(yC)を用いて、任意のデジタル情報(m)に対するリング署名を生成する。
【0019】
これにより、署名者は、リング署名に含めたい他のユーザとの事前やりとり無しで他のユーザの公開鍵情報を任意に選ぶことができ、リング署名からは各ユーザのうちの誰が署名したかが検証者には全くわからないという特徴を持ったリング署名を生成できる。
【0020】
これに加え、署名者が署名時に指名した特定の確認者だけが検証でき、それ以外の検証者は一人では署名の正当性を検証できないが、先述の特定の確認者と対話を行うことで特定の確認者以外の検証者も署名の正当性を知ることができる署名を生成できる。
【0021】
従って、リング署名方式で署名されたデジタル署名の利用・検証を署名者が希望する範囲のみで行うように制限することができる。
【0022】
なお、第1の発明は、各装置からなる全体構成を「システム」として表現したが、これに限らず、全体構成又は各装置を「装置」、「プログラム」、「方法」又は「コンピュータ読み取り可能な記憶媒体」として表現してもよい。
【発明の効果】
【0023】
以上説明したように本発明によれば、リング署名方式で署名されたデジタル署名の利用・検証を署名者が希望する範囲のみで行うように制限できる。
【発明を実施するための最良の形態】
【0024】
以下、本発明の一実施形態につき図面を参照して説明する。始めに、従来方式を改良した指名確認者署名方式を示し、続いて、この改良した指名確認者署名方式を前提とした本発明方式の概要を述べる。しかる後、本発明方式の一実施形態について説明する。
【0025】
(1. 改良した指名確認者署名方式)
ここでは、従来の非特許文献4方式を本発明者により改良した指名確認者署名方式を示す。一般に、指名確認者署名は、署名者(Signer)、確認者(Confirmer)、一般的な検証者(Verifier)の三者で成立している。確認者は、署名者と対話、もしくは確認者のみで署名を検証できる。検証者は、確認者と対話することによってのみ、署名の検証が可能となる。
【0026】
(1.1 準備)
符号Sを署名者とする。符号Cを、署名者に指定された確認者とする。符号Vを、権限の無い一般の検証者とする。
【0027】
ここで、q|p−1を満たす大きな素数をp,qとする。位数がqであるpの部分群の生成元をgとする。署名者Sは、xS∈Zqを秘密鍵、yS=g{x_S} mod pを公開鍵として生成し、公開鍵ySを公開する。さらに、確認者の秘密鍵をxC∈Zq、公開鍵をyC=g{x_C}とする。また、符号h,hqを衝突困難性ハッシュ関数とする。
【0028】
(1.2 署名生成)
署名者Sは以下を計算する。
【数1】

【0029】
但し、α,k∈Zqとし、σ(m)=(T,s,d1,d2)をmに対する署名として出力する。
【0030】
(1.3 署名検証(確認者Cによる))
確認者Cは、以下を検証する。
【数2】

【0031】
確認者Cは、2つの検証結果が合格であれば署名を受理し、そうでなければ署名を棄却する。
【0032】
(1.4 署名検証(検証者Vによる))
ステップ1:
検証者Vは、署名情報が次式を満たすかを確認者Cとの対話証明により間接的に検証する。補足すると、次の対数の検証式は直接には計算されず、成り立つことが対話証明により確認される。
【数3】

【0033】
検証者Vは、2つの検証結果が合格であれば署名を受理し、そうでなければ署名を棄却する。
【0034】
(2. 本発明方式の概要)
図7は本発明方式の概略を示す模式図である。本発明方式は、上述した「改良した指名確認者署名方式」を連鎖的に行なう形式となっている。従来の非特許文献4の方式は、確認者Cは署名者Sと対話せずに署名検証が可能であるため、署名者の匿名性を保証できるリング署名の性質は損なわれない。また、非特許文献4の方式をそのままリング署名に適用すると、確認者Cによるメッセージmに対するコミットメントの検証や、確認者Cの検証者Vに対するメッセージmについてのコミットメントの知識証明(Interactive bi-proof)の計算量がグループサイズnに比例してしまう。そこで、本発明方式では、コミットメントの検証が1回で済むように効率を改善している。
【0035】
(2.1 準備)
符号Gをグループメンバの集合とする。Uj(j=1,…,n)をメンバ集合Gに属するメンバ、Uiを署名者とする。メンバUjはxj∈Zqを秘密鍵、yj=g{x_j} mod pとし、公開鍵yjを公開する。その他のエンティティとパラメータは、前述した指名確認者署名方式と同様とする。
【0036】
(2.2 リング署名生成)
署名者Uiは、確認者Cの公開鍵に関連付けたメッセージmに対するコミットメント(d1,d2)及びコミットメントに対するリング署名(d1,d2)(c1,s1,…,sn)を以下のように生成する。
【0037】
ステップ1:
署名者Uiは、以下のTi,d1,d2,ci+1を求める。但し、α,k∈Zqとする。
【数4】

【0038】
ステップ3:
署名者Uiは、ciについて、以下のsiを計算する。
【0039】
i=α−xii mod q
ステップ4:
署名者Uiは、以上の計算結果からσ(m)=(c1,s1,…,sn,d1,d2)をメッセージmに対する署名として出力する。
【0040】
(2.3 リング署名検証(確認者Cによる))
確認者Cは、コミットメントの正当性を下式により検証する。
【数5】

【0041】
ここで、確認者Cは、c1=cn+1となることを検証することにより、コミットメントに対するリング署名の正当性を検証する。確認者Cは、全ての検証結果が合格であれば署名を受理し、そうでなければ署名を棄却する。
【0042】
(2.4 リング署名検証(検証者Vによる))
ステップ1:
検証者Vは、まず、j=1,…,nまで以下を繰り返す。
【数6】

【0043】
検証者Vは、c1=cn+1となることを検査することにより、コミットメントに対するリング署名の正当性を検証する。
【0044】
ステップ2:
また、検証者Vは、署名情報が次式を満たすかを確認者Cとの対話証明により検査し、メッセージに対するコミットコミットメントの正当性を検証する。検証の手順は、前述した「改良した指名確認者署名方式」と同様である。
【数7】

【0045】
(3. 安全性)
ここでは、安全な指名確認者リング署名が満たす条件を示し、本発明方式がこれらの条件(i)〜(vi)を満たしていることを証明する。
【0046】
(i)署名の完全性(Completeness of Signature)
署名者が正しい動作をした場合には、確認者が検証可能な署名を構成できること。
【0047】
(ii)署名の偽造不可能性(Unforgeability of Signature)
リング署名を構成するグループのメンバ以外が署名を偽造できないこと。
【0048】
(iii)署名者の曖昧性(Signer Ambiguity)
署名の情報から署名者の情報が漏れないこと。
【0049】
(iv)署名の不可視性(Invisibility of Signature)
確認者C、又は確認者Cと対話証明を行なう検証者Vは、署名の正当性を検証できるが、それ以外のユーザは署名の正当性を検証できないこと。
【0050】
(v)検証の一貫性(Consistency of Verification)
確認者Cや検証者Vが正しい動作をした場合は、正しく検証ができること。
【0051】
(vi)検証の非伝達性(Non-transferability of Verification)
確認者Cの秘密鍵に関する情報が対話証明において、検証者Vにほとんど漏れないこと。
【0052】
本発明方式は、以上の要求条件に対して以下の定理が成り立つ。
【0053】
(定理1:署名の完全性)
正しい秘密鍵をもつ署名者Uiがアルゴリズムに従い生成したリング署名は、確認者Cの署名検証に常に成功する。
証明:プロトコルから明らかである。
【0054】
(定理2:署名の偽造不可能性)
本発明方式は、ランダムオラクルモデルと離散対数問題の困難性を仮定すると、グループメンバ以外の任意の敵が署名の偽造に成功する確率は無視できるほど小さい。
【0055】
証明(Sketch):d,dがDDH仮定の下に不可視(invisible)であることは非特許文献4で証明されている。このとき、仮に本発明方式が偽造可能であると仮定すると、非特許文献5により提案されたリング署名を偽造可能な敵を構成することができる。
【0056】
(定理3:署名者の曖昧性)
任意のメッセージに対するリング署名から署名者を特定できる確率は1/nである。
【0057】
証明(Sketch):siを除くsjはZqから一様にランダムに選ばれ、siはαがZq上から一様にランダムに選ばれるので、siもZq上に一様に分布する。また、d1,d2はメンバ公開鍵には関係しない。従って、グループメンバと(m)を固定すると、(s1,…,sn,d1,d2)は、署名者が誰であるかに関わらず、同様にnqのバリエーションをもつ。残りのc1は、グループメンバのリスト、(m)及び(s1,…,sn,d1,d2)より一意に決定できる。よって、署名者を特定できる確率は1/nである。
【0058】
(定理4:署名の不可視性)
任意の敵に対して正しい署名とシミュレータの出力する署名を優位な確率で区別することが不可能なシミュレータを構成できる。
【0059】
証明(Sketch):メッセージmに対するコミットメントは、不可視(invisible)であることが証明されている(非特許文献4参照)。また、本発明方式の署名偽造不可能性から、本発明方式の不可視性(invisibility)は、メッセージmに対するコミットメントと等価であることを示すことが可能であり、よって定理4が成り立つ。
【0060】
(定理5:検証の一貫性)
確認者Cと検証者Vの間で行われるリング署名検証プロトコルにおいて、正しいリング署名が検証に失敗する確率及び不正なリング署名が検証に成功する確率は任意の確認者Cに対して無視できる。
【0061】
(定理6:検証の非伝達性)
確認者Cと検証者Vの間で行われるリング署名検証プロトコルは、最小知識対話証明(minimum knowledge bi-proof)である(非特許文献6参照)。
【0062】
証明(定理5,6):前述した「改良した指名確認者署名方式」は、非特許文献7に記載の対話証明システム(bi-proof system)を用いている。対話証明システムの完全性(completeness)、安定性(Soundness)、零知識証明性(Zero-Knowledgeness)は、非特許文献7によって証明されており、この性質から一貫性、非伝達性は明らかである。これは本発明方式でも成り立つ。
【0063】
(効率の比較)
図8は従来方式と本発明方式とを比較して示す図である。具体的には従来方式と本発明方式とに関し、署名長、確認者Cによるコミットメントに対する検証コストと、リング署名の検証コスト、確認者Cと検証者V間での対話証明(bi-proof)とリング署名の検証コストに関しての比較結果を示している。|p|は素数pのビット長を表している。
【0064】
ここでは、リング署名方式(非特許文献2)と、非特許文献2及び非特許文献4を組み合わせただけのナイーブ(素朴)なプロトコルと、本発明方式とを比較した。
【0065】
ナイーブなプロトコルは、本発明方式と比較して署名長がおよそ3倍となり、コミットメントの検証と対話証明の検証コストがO(n)となる。これは、リング署名生成フェーズで、公開鍵yCに関するコミットメントをn回生成するためである。特に、確認者Cと検証者V間での対話証明が対話的に行われるため、このプロトコルの効率悪化は影響が大きい。本発明方式では、n個のコミットメントの計算を一回にして検証可能となるように改良しているため、これらの検証コストがO(1)に抑制されている。
すなわち、本発明方式は、非特許文献4の方式をそのままリング署名に適用した場合に比べ、知識証明に関する効率を向上させることができる。
【0066】
(応用)
ここでは、本発明方式の応用について述べる。非特許文献8では、複数の確認者Cを用いても、署名長が確認者Cの数に依存しない指名確認者署名方式が提案されている。これは、信頼できる機関(TA)を仮定し、この機関TAが確認者Cの秘密鍵を多数使用放送暗号化スキーム(Multiple use broadcast encryption scheme)の技術を用いて配布することにより、確認者Cの集合が同じ鍵を共有できるようにしたものである。同様にこの技術を本発明方式に適用することにより、正しく秘密鍵を入手できる確認者Cは、誰でも署名を検証することができる。確認者Cと検証者V間の検証が頻繁に発生する場合には確認者の負荷を分散できるため、有用である。
以上が本発明方式の概要である。続いて、本発明の一実施形態について説明する。
【0067】
(一実施形態)
図1は本発明の一実施形態に係るデジタル署名システムの構成を示すブロック図であり、図2は図1における情報の流れを示す模式図である。このシステムは、複数のユーザ端末10及び各1台のユーザ端末20,30を備えている。各ユーザ端末10,20,30は、コンピュータにより実現される場合、それぞれ各端末10,20,30の機能を実現するためのプログラムが予め記憶媒体又はネットワークから各端末のコンピュータにインストールされて実現される。
【0068】
ユーザ端末は、ユーザ端末10,20,30に分類される。
複数のユーザ端末10は、署名者Sとしてのユーザuのユーザ端末10と、リング署名に用いられるグループメンバとしての各ユーザk,…のユーザ端末10,…とを含む。
【0069】
各ユーザ端末10は、秘密鍵記憶装置11及び署名生成部12を備えている。
【0070】
ここで、秘密鍵記憶装置11は、署名者としてのユーザに固有の秘密鍵情報が記憶されるメモリであり、署名生成部12から読出可能となっている。
【0071】
署名生成部12は、署名者としてのユーザに固有の秘密鍵情報(xi)及び署名者が選択した他の複数のユーザの公開鍵情報(yj、但しj = 1, ・・・ , i-1, i+1, ・・・, n)及び署名者が指名した確認者の公開鍵情報(yC)を用いて、任意のデジタル情報(m)に対するリング署名を生成するものであり、具体的には図3及び図4に示すステップST12〜ST17の処理を実行する機能をもっている。
【0072】
これらの機能としては、例えば、デジタル署名装置としてのユーザ端末10のコンピュータを、適切な第1乱数情報(α)に基づいて、第1リング要素関連情報(Ti)を生成する機能と、デジタル情報(m)、適切な第2乱数情報(k)、及びハッシュ関数に基づいて、第1コミットメント情報(d1)を生成する機能と、確認者の公開鍵情報(yC)、適切な第2乱数情報(k)に基づいて、第2コミットメント情報(d2)を生成する機能と、第1及び第2コミットメント情報(d1,d2)、第1リング要素関連情報(T)及びハッシュ関数に基づいて、リング要素情報(ci+1、但し i = n の場合、ci+1=c{(i+1) mod n}とする)を生成する機能と、他のユーザに関する適切なメンバ乱数情報(sj)をランダムに生成する機能と、他のユーザの公開鍵情報(yj)、メンバ乱数情報(s)、及びリング要素情報に基づいて、第2リング要素関連情報(T)を生成する機能と、第1及び第2コミットメント情報(d1,d2)、第2リング要素関連情報(T)及びハッシュ関数に基づいて、リング要素情報(cj+1、但し j = n の場合、cj+1=c{(j+1) mod n})を生成する機能と、署名者の秘密鍵情報(xi)及び署名者に対応するリング要素情報(ci)に基づいて、署名者関連情報(si)を生成する機能と、1番目のリング要素情報(c1)、署名者関連情報(si)、メンバ乱数情報(sj=s1,…,si-1,si+1,…,sn)、第1及び第2コミットメント情報(d1,d2)を含むリング署名{σ(m)=(c1,s1,…,sn,d1,d2)}を生成する機能とが含まれる。
【0073】
ユーザ端末20は、指定された確認者Cとしてのユーザcに操作されるものであり、秘密鍵記憶装置21、確認者用署名検証部22及び対話証明部23を備えている。
【0074】
秘密鍵記憶装置21は、確認者としてのユーザに固有の秘密鍵情報が記憶されるメモリであり、確認者用署名検証部22及び対話証明部23から読出可能となっている。
【0075】
確認者用署名検証部22は、リング署名を検証する際に、確認者の公開鍵情報(yC)、この公開鍵情報に対応する秘密鍵情報(xC)及びデジタル情報(m)に基づいて、当該リング署名を検証する第1検証機能と、リング署名を検証する際に、署名者の秘密鍵情報に対応する公開鍵情報(yi)及び他の複数のユーザの公開鍵情報(yj)からなる各ユーザの公開鍵情報(y1, ・・・ , yi, ・・・ , yn)に基づいて、当該リング署名を検証する第2検証機能と、第1及び第2検証機能による検証に合格したとき、リング署名を受理するリング署名受理機能とを有し、具体的には図3及び図5のステップST20〜ST25に示す処理を実行する機能をもっている。
【0076】
対話証明部23は、検証者用の対話証明部32による対話証明の際に動作するものであり、図6のステップST33,ST34,ST36〜ST38に示す処理を実行する機能をもっている。
【0077】
ユーザ端末30は、検証者Vとしてのユーザvに操作されるものであり、検証者用署名検証部31及び対話証明部32を備えている。
【0078】
検証者用署名検証部31は、リング署名を検証する際に、署名者の秘密鍵情報に対応する公開鍵情報(yi)及び他の複数のユーザの公開鍵情報(yj)からなる各ユーザの公開鍵情報(y1, ・・・ , yi, ・・・ , yn)に基づいて、当該リング署名を検証する第1検証機能と、この第1検証機能及び対話証明部32の第2検証機能による検証に合格したとき、リング署名を受理するリング署名受理機能とを有し、具体的には図6のステップST31,ST40〜ST42に示す処理を実行する機能をもっている。
【0079】
対話証明部32は、リング署名を検証する際に、確認者の公開鍵情報(yC)に基づき、確認者のユーザ端末20との間の対話証明を介して、当該リング署名を検証する第2検証機能を有し、具体的には図6のステップST32,ST35,ST39に示す処理を実行する機能をもっている。
【0080】
また前提条件として、公開鍵基盤などにより、公開情報を安全に公開するための手段、例えば公開掲示板サーバ40などが存在するとする。
【0081】
公開掲示板サーバ40は、公開される情報を記憶する公開情報記憶装置41を有する。この公開掲示板サーバ40によって実現される情報公開(掲載)手段を公開情報掲示板と呼ぶ。公開情報掲示板は全てのユーザがアクセスでき、かつ改ざんなどの不正が行われないように適切に管理されているとする。また、全てのユーザはインターネットなどのネットワーク50に接続されているものとする。特に匿名性を必要とする場合は匿名ネットワークに接続されていてもよいが、その限りではない。
【0082】
次に、以上のように構成されたデジタル署名システムの動作を図3のシーケンス図及び図4乃至図6の各フローチャートを用いて述べる。なお、本実施形態では、例えばべき乗を ^ で表し、下付添字を _ で表し、文字の真上の波形符号を \tilde で表す等というように1行で済む数式表現を用いている。この数式表現は、前述した本発明方式の概要説明におけるイメージ読込を要する数式表現とは異なるが、数式の内容は対応している。
【0083】
(準備):
本実施形態では、前提条件として、ユーザの公開鍵や公開情報は予め公開掲示板サーバ40により公開されているものとする。公開の方法としては例えば公開鍵基盤などがあるが、ここでは限定しない。
【0084】
まず、公開掲示板サーバ40は、素数位数qの巡回群Gとその生成元gを選び公開する。ここでは、一例として、q|p-1 を満たす十分大きな素数p,qを選び、位数がqとなるZp*の部分群をGとし、p,q,gを公開するとする。
【0085】
さらに、公開掲示板サーバ40は、衝突困難性ハッシュ関数h:{0,1}^*→{0,1}^q,
h_q:{0,1}^*→{0,1}^qを任意に選び公開する。
【0086】
また前提条件に従い各ユーザ端末10,20は、それぞれユーザu,k,cの操作により、x_u,x_k,x_c ∈ Zqをランダムに選び、以下を計算する。なお、記号^はべき乗を表す。
y_u=g^{x_u},
y_k=g^{x_k},
y_c=g^{x_c}
そして、各ユーザu,k,cのユーザ端末10,20は、y_u,y_k,y_cを公開鍵として公開する。
ステップST10:リング署名の生成(図3、図4)
ユーザuとなるべきユーザは複数いると仮定する。その中でも特に署名者となるユーザuをユーザu_iとする。ユーザu_iは署名時に任意のグループを作成する。このグループに含まれるユーザuをユーザu_jとする。(j=1,...,n,j≠i)
ユーザu_iのユーザ端末10は、署名生成部11において、ユーザ秘密鍵x_i、メッセージm、及び公開情報掲示板14から取得可能な公開情報PUBI(ユーザu_jの公開鍵を含む)を入力として(ST11)、以下のステップST12〜ST17の手順によりmに対するリング署名σを生成し、(m,σ)を出力する。
【0087】
ステップST12:α,k ∈Z_qをランダムに選ぶ。
【0088】
ステップST13:衝突困難性ハッシュ関数hとh_qを用いて以下の値を計算する。
T_i = g^α mod p,
d_1 = g^{k+h_q(m)} mod p,
d_2 = {y_C}^k mod p,
c_{i+1} = h(d_1‖ d_2 ‖ T_i)
但し、i = n の場合には c_{i+1} = c_{(i+1)mod n}とする。また、“‖”はデータの連結を表す。
【0089】
ステップST14: j=i+1,...,n,1,..., i-1について、s_j∈Z_qをランダムに選ぶ。
【0090】
ステップST15:j=i+1,...,n,1,..., i-1について、以下の値を計算する。
T_j = g^{s_j}{y_j}^{c_j} mod p,
c_{(j+1)mod n} = h(d_1 ‖ d_2 ‖ T_j)
但し、j = n の場合には c_{j+1} = c_{(j+1)mod n}とする。
【0091】
ステップST16:s_i = α - {x_i}{c_i} mod qを計算する。
【0092】
ステップST17:j=1,...,nについて、以下の値をリング署名σとして確認者ユーザcのユーザ端末20、または検証者ユーザvのユーザ端末30に送信する。
σ(m) = (c_1,s_j, d_1 ,d_2)
ステップST20:リング署名の確認者による検証(図3、図5)
署名確認者であるユーザcのユーザ端末20は、署名検証部22において、メッセージmとmに対するリング署名σのペア(m,σ)及び公開掲示板サーバ40から取得可能な公開情報PUBIを用いて、以下のステップST21〜ST25の手順でリング署名の正当性とメッセージmに対するコミットメントの正当性を検証する。
【0093】
ステップST21:メッセージm及びリング署名σから、公開情報である衝突困難性ハッシュ関数h_q及び確認者の秘密鍵x_Cを用い、以下の式が成り立つことを検証する。
d_1^{x_C}/d_2 = {y_C}^{{h_q}(m)}
ステップST22:j = 1, ..., nについて、公開情報である衝突困難性ハッシュ関数hを用いて以下の値を計算する。
T_j = g^{s_j}{y_j}^{c_j} mod p,
c_{j+1} = h(d_1 ‖ d_2 ‖ T_j)
ここで、c_1=c_{n+1}が成り立つことを検証する。
【0094】
ステップST23〜ST25:上記ST21,22が共に成り立つ場合は検証合格(OKを出力してリング署名σ(m)を受理し、成り立たない場合は検証不合格(NG)を出力してリング署名σ(m)を棄却する。
【0095】
ステップST30:リング署名の検証者による検証(図3、図6)
署名検証者であるユーザvのユーザ端末30は、メッセージmとmに対するリング署名σのペア(m,σ)と公開掲示板サーバ40から取得可能な公開情報PUBIとを予め記憶装置(図示せず)に記憶しておく。そして、ユーザ端末30は、記憶装置内のリング署名σのペア(m,σ)及び公開情報PUBIを用いて、署名検証部31においてコミットメントに対するリング署名の正当性の検証と、対話証明部32において確認者ユーザcのユーザ端末20の対話証明部23との対話的証明により、リング署名に含まれるメッセージmに対するコミットメントの正当性を検証する。
【0096】
ステップST31:検証者のユーザ端末30は、j = 1, ... , nについて、メッセージm、リング署名σ及び衝突困難性ハッシュ関数hより以下の値を計算する。
T_j = g^{s_j}{y_j}^{c_j} mod p,
c_{j+1} = h(d_1 ‖ d_2 ‖ T_j)
c_1=c_{n+1}となることを検査することにより、コミットメントに対するリング署名の正当性を検証する。
【0097】
ステップST32:検証者のユーザ端末30は、署名情報がlog_g (y_C) = log_{d_1}({d_2}{y_C}^{{h_q}(m)}であるかを、以下のST33〜ST39に示すように、確認者との対話証明により検証する。
【0098】
始めに、検証者のユーザ端末30は、u,v ∈ Z_qをランダムに選び、a = {g^u}{y_C}^vを計算して、aを確認者のユーザ端末20に送る。
【0099】
ステップST33:確認者のユーザ端末33は、t, \tilde t, w ∈ Z_qをランダムに選択する。
【0100】
ステップST34:確認者のユーザ端末33は、
r_1 = g^t, r_2 = {d_1}^t,
{{\tilde r}_1} = g^{\tilde t},
{{\tilde r}_2} = {d_1}^{\tilde t}
を計算し、検証者にr_1,r_2,{{\tilde r}_1},{{\tilde r}_2}を送信する。
【0101】
ステップST35:検証者のユーザ端末20は、u,vを確認者のユーザ端末30に送信することによりコミットメントaを開示する。
【0102】
ステップST36〜ST38:確認者のユーザ端末30は、もしa ≠ {g^u}{{y_C}^v}ならば、プロトコルを中止し、そうでない場合は、
s = t -(v+w)x_P,
{\tilde s} = {\tilde t}-(v+w)t
を計算し、sと{\tilde s}を検証者に送信する。
【0103】
ステップST39:検証者のユーザ端末30は、最初に、
{g^s}{y_C}^{v+w} = r_1,
{g^{\tilde s}}{{r_1}^{v+w}} = {\tilde r}_1,
{d_1}^{\tilde s}{{r_2}^{v+w}} = {\tilde r}_2
であるかを確認した後、
d_1^{s}({d_2}{y_C}^{{h_q}(m)})^{v+w} = r_2
を検査する。これにより、log_g (y_C) =log_{d_1}({d_2}{y_C}^{{h_q}(m)})
であることを間接的に検証する。
【0104】
ステップST40〜ST42:検証者のユーザ端末30は、ステップST31のc_1=c_{n+1}と、ステップST32〜ST39の対話証明によるlog_g (y_C) =log_{d_1}({d_2}{y_C}^{{h_q}(m)})との二つの検証が成り立つ場合は検証合格(OK)を出力してリング署名σ(m)を受理し、成り立たない場合は検証不合格(NG)を出力してリング署名σ(m)を棄却する。
【0105】
ステップST20及びST30の検証で、N人のうちの誰かは確実に署名をしているという事実を確かめることはできるが、どのメンバが署名したかということはわからない。
【0106】
また、確認者は自分の秘密鍵xCを用いて直接署名の正当性を検証できるが、検証者は確認者と対話を行うことで検証に必要な秘密情報を知らないまま、署名の正当性を確認できる。
【0107】
上述したように本実施形態によれば、署名者としてのユーザに固有の秘密鍵情報(xi)及び署名者が選択した他の複数のユーザの公開鍵情報(yj)及び署名者が指名した確認者の公開鍵情報(yC)を用いて、任意のデジタル情報(m)に対するリング署名を生成する。
【0108】
これにより、署名者は、リング署名に含めたい他のユーザとの事前やりとり無しで他のユーザの公開鍵情報を任意に選ぶことができ、リング署名からは各ユーザのうちの誰が署名したかが検証者には全くわからないという特徴を持ったリング署名を生成できる。
【0109】
これに加え、署名者が署名時に指名した特定の確認者だけが検証でき、それ以外の検証者は一人では署名の正当性を検証できないが、先述の特定の確認者と対話を行うことで特定の確認者以外の検証者も署名の正当性を知ることができる署名を生成できる。
【0110】
従って、リング署名方式で署名されたデジタル署名の利用・検証を署名者が希望する範囲のみで行うように制限することができる。
【0111】
補足すると、リング署名の検証を署名者が指名した確認者が介在したときのみ行えるようにする。詳しくは、一般的な安全性の仮定に基づいた方式を用いたリング署名の署名情報を、メッセージmに対するコミットメントと、コミットメントに対するリング署名に分けることで、署名の正当性を確認者は検証できるが、検証者はメッセージmに対するコミットメントを確認者との対話証明を行うことで検証可能となる。これにより、署名の流通範囲を制限することができる。
【0112】
また、署名者装置としてのユーザ端末10は、リング署名として、ユーザ秘密鍵xSについて零知識であることが証明可能なデジタル署名を生成する。このため、デジタル署名の匿名性の安全性を数学的に困難な問題に帰着させること、つまり匿名性の安全性を証明することが可能となる。
【0113】
更に、図8に示したように、デジタル署名技術であるリング署名に確認者指名署名方式を単純に組み合わせると、計算量と署名データの大きさの増加量が大きい。本実施形態では、リング署名と確認者指名署名方式を単純に組み合わせるのではなく、計算量と署名データを大幅に削減できる方式となっている。具体的にはコミットメントの検証を1回で済ませる方式としたことにより、本実施形態は、効率の向上を実現させることができる。
【0114】
なお、上記各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0115】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0116】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行しても良い。
【0117】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0118】
また、記憶媒体は1つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0119】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0120】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0121】
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
【図面の簡単な説明】
【0122】
【図1】本発明の一実施形態に係るデジタル署名システムの構成を示すブロック図である。
【図2】図1における情報の流れを示す模式図である。
【図3】同実施形態における全体の動作を示すシーケンス図である。
【図4】同実施形態における署名生成の動作を説明するためのフローチャートである。
【図5】同実施形態における確認者による署名検証の動作を説明するためのフローチャートである。
【図6】同実施形態における検証者等による署名検証の動作を説明するためのフローチャートである。
【図7】本発明方式の概略を示す模式図である。
【図8】従来方式と本発明方式とを比較して示す図である。
【符号の説明】
【0123】
10,20,30…ユーザ端末、11,21…秘密鍵記憶装置、12…署名生成部、22…確認者用署名検証部、23,32…対話証明部、31…検証者用署名検証部、40…公開掲示板サーバ、41…公開情報記憶装置、50…ネットワーク。

【特許請求の範囲】
【請求項1】
署名者としてのユーザに固有の秘密鍵情報(xi)及び前記署名者が選択した他の複数のユーザの公開鍵情報(yj)及び前記署名者が指名した確認者の公開鍵情報(yC)を用いて、任意のデジタル情報(m)に対するリング署名を生成するデジタル署名装置と、
前記リング署名を検証する際に、前記確認者の公開鍵情報に対応する秘密鍵情報(xC)に基づいて、当該リング署名を検証する確認者用署名検証装置と、
前記リング署名を検証する際に、前記確認者用署名検証装置との間の対話証明を介して、当該リング署名を検証する検証者用署名検証装置と、
を備えたことを特徴とするデジタル署名システム。
【請求項2】
署名者としてのユーザに固有の秘密鍵情報(xi)及び前記署名者が選択した他の複数のユーザの公開鍵情報(yj、但しj = 1, ・・・ ,i-1, i+1, ・・・, n)及び前記署名者が指名した確認者の公開鍵情報(yC)を用いて、任意のデジタル情報(m)に対するリング署名を生成するデジタル署名装置であって、
第1乱数情報(α)に基づいて、第1リング要素関連情報(Ti)を生成する手段と、
前記デジタル情報(m)、第2乱数情報(k)、及びハッシュ関数に基づいて、第1コミットメント情報(d1)を生成する手段と、
前記確認者の公開鍵情報(yC)、前記第2乱数情報(k)に基づいて、第2コミットメント情報(d2)を生成する手段と、
前記第1及び第2コミットメント情報(d1,d2)、前記第1リング要素関連情報(T)及びハッシュ関数に基づいて、リング要素情報(ci+1、但し i = n の場合、ci+1=c{(i+1) mod n}とする)を生成する手段と、
前記他のユーザに関するメンバ乱数情報(s)をランダムに生成する手段と、
前記他のユーザの公開鍵情報(yj)、前記メンバ乱数情報(s)、及びリング要素情報に基づいて、第2リング要素関連情報(T)を生成する手段と、
前記第1及び第2コミットメント情報(d1,d2)、前記第2リング要素関連情報(T)及びハッシュ関数に基づいて、リング要素情報(cj+1、但し j = n の場合、cj+1=c{(j+1) mod n}とする)を生成する手段と、
前記署名者の秘密鍵情報(xi)及び署名者に対応するリング要素情報(ci)に基づいて、署名者関連情報(si)を生成する手段と、
1番目のリング要素情報(c1)、前記署名者関連情報(si)、前記メンバ乱数情報(sj)、前記第1及び第2コミットメント情報(d1,d2)を含むリング署名{σ(m)=(c1,s1, ・・・ , sn,d1,d2)}を生成する手段と、
を備えたことを特徴とするデジタル署名装置。
【請求項3】
公開されているシステムパラメータg、素数p,q及び各ユーザの公開鍵情報y1, ・・・ , yi, ・・・ , yn, yC, ・・・に関し、署名者としてのユーザに固有の秘密鍵情報xi=log(yi)及び前記署名者が選択した他の複数のユーザの公開鍵情報yj(但しj = 1, ・・・ ,i-1, i+1, ・・・, n)及び前記署名者が指名した確認者の公開鍵情報yCを用いて、任意のデジタル情報mに対するリング署名を生成するデジタル署名装置であって、
前記システムパラメータg及び第1乱数情報αに基づいて、式 Ti = gα mod p により、第1リング要素関連情報Tiを生成する手段と、
前記システムパラメータg、前記デジタル情報m、第2乱数情報k及びハッシュ関数hqに基づいて、式 d1 = g{k+h_q(m)} mod p により(但し、_は下付文字を表す)、第1コミットメント情報d1を生成する手段と、
前記確認者の公開鍵情報yC及び前記第2乱数情報kに基づいて、式 d2 = yC mod p により、第2コミットメント情報d2を生成する手段と、
前記第1及び第2コミットメント情報d1,d2、前記第1リング要素関連情報T及びハッシュ関数hに基づいて、式 ci+1 = h(d1‖d2‖Ti) により、リング要素情報ci+1 を生成する手段(但し、i = n の場合、ci+1=c{(i+1) mod n}とする。また、‖はデータの連結を表す)と、
前記他のユーザに関するメンバ乱数情報sをランダムに生成する手段と、
前記システムパラメータg、前記他のユーザの公開鍵情報yj、前記メンバ乱数情報s及びリング要素情報cjに基づいて、式 Tj = g{s_j}j{c_j} mod p により、第2リング要素関連情報Tを生成する手段と、
前記第1及び第2コミットメント情報d1,d2、前記第2リング要素関連情報T及びハッシュ関数hに基づいて、式 cj+1 = h(d1‖d2‖Tj) により、リング要素情報cj+1 を生成する手段(但し、j = n の場合、cj+1=c{(j+1) mod n}とする)と、
前記第1乱数情報α、前記署名者の秘密鍵情報xi及び署名者に対応するリング要素情報ciに基づいて、式 si = α − xii mod q により、署名者関連情報siを生成する手段と、
1番目のリング要素情報c1、前記署名者関連情報si、前記メンバ乱数情報sj、前記第1及び第2コミットメント情報d1,d2を含むリング署名σ(m)=(c1,s1, ・・・ , sn,d1,d2)を生成する手段と、
を備えたことを特徴とするデジタル署名装置。
【請求項4】
署名者としてのユーザに固有の秘密鍵情報(xi)及び前記署名者が選択した他の複数のユーザの公開鍵情報(yj、但しj = 1, ・・・ , i-1, i+1, ・・・, n)及び前記署名者が指名した確認者の公開鍵情報(yC)を用いて生成された任意のデジタル情報(m)に対するリング署名に関し、当該リング署名を検証する確認者用署名検証装置であって、
前記リング署名を検証する際に、前記確認者の公開鍵情報(yC)、この公開鍵情報に対応する秘密鍵情報(xC)及び前記デジタル情報(m)に基づいて、当該リング署名を検証する第1検証手段と、
前記リング署名を検証する際に、前記署名者の秘密鍵情報に対応する公開鍵情報(yi)及び前記他の複数のユーザの公開鍵情報(yj)からなる各ユーザの公開鍵情報(y1, ・・・ , yi, ・・・ , yn)に基づいて、当該リング署名を検証する第2検証手段と、
前記第1及び第2検証手段による検証に合格したとき、前記リング署名を受理するリング署名受理手段と、
を備えたことを特徴とする確認者用署名検証装置。
【請求項5】
公開されているシステムパラメータg、素数p,q及び各ユーザの公開鍵情報y1, ・・・ , yi, ・・・ , yn, yC, ・・・を用いると共に、署名者としてのユーザに固有の秘密鍵情報xi=log(yi)及び前記署名者が選択した他の複数のユーザの公開鍵情報yj、(但しj = 1, ・・・ , i-1, i+1, ・・・, n)及び前記署名者が指名した確認者の公開鍵情報yCや第1乱数情報α、第2乱数情報k、ハッシュ関数h,h及び前記他のユーザに関するメンバ乱数情報sを用いて任意のデジタル情報mに対し、以下のA式乃至G式:
A式 Ti = gα mod p,
B式 d1 = g{k+h_q(m)} mod p, (但し、_は下付文字を表す)、
C式 d2 = yC mod p,
D式 ci+1 = h(d1‖d2‖Ti), (但し、i = n の場合、ci+1=c{(i+1) mod n}とする。また、‖はデータの連結を表す)、
E式 Tj = g{s_j}j{c_j} mod p,
F式 cj+1 = h(d1‖d2‖Tj), (但し、j = n の場合、cj+1=c{(j+1) mod n}とする)、
G式 si = α − xii mod q,
の計算により生成されたリング署名σ(m)=(c1,s1, ・・・ , sn,d1,d2)に関し、当該リング署名σ(m)を検証する確認者用署名検証装置であって、
前記リング署名σ(m)を検証する際に、前記確認者の公開鍵情報yC、この公開鍵情報に対応する秘密鍵情報xC、前記デジタル情報m及び前記ハッシュ関数hqに基づいて、式 d1{x_C} / d2 = yC{{h_q}(m)} が成り立つことにより、当該リング署名σ(m)を検証する第1検証手段と、
前記リング署名σ(m)を検証する際に、前記署名者の秘密鍵情報に対応する公開鍵情報yi及び前記他の複数のユーザの公開鍵情報yjからなる各ユーザの公開鍵情報y1, ・・・ , yi, ・・・ , ynに基づいて、当該各ユーザに関してJ= 1, ・・・ , i, ・・・ , n まで(但し、Jは j, i を読み替えた添字)以下のH式及びI式:
H式 TJ = g{s_J}J{c_J} mod p,
I式 cJ+1 = h(d1‖d2‖TJ)
を繰り返し、このI式の結果からc1=cn+1が成り立つことにより、当該リング署名σ(m)を検証する第2検証手段と、
前記第1及び第2検証手段による検証に合格したとき、前記リング署名を受理するリング署名受理手段と、
を備えたことを特徴とする確認者用署名検証装置。
【請求項6】
署名者としてのユーザに固有の秘密鍵情報(xi)及び前記署名者が選択した他の複数のユーザの公開鍵情報(yj、但しj = 1, ・・・ ,i-1, i+1, ・・・, n)及び前記署名者が指名した確認者の公開鍵情報(yC)を用いて生成された任意のデジタル情報(m)に対するリング署名に関し、当該リング署名を検証する検証者用署名検証装置であって、
前記リング署名を検証する際に、前記署名者の秘密鍵情報に対応する公開鍵情報(yi)及び前記他の複数のユーザの公開鍵情報(yj)からなる各ユーザの公開鍵情報(y1, ・・・ , yi, ・・・ , yn)に基づいて、当該リング署名を検証する第1検証手段と、
前記リング署名を検証する際に、前記確認者の公開鍵情報(yC)に基づき、前記確認者の確認者用署名検証装置との間の対話証明を介して、当該リング署名を検証する第2検証手段と、
前記第1及び第2検証手段による検証に合格したとき、前記リング署名を受理するリング署名受理手段と、
を備えたことを特徴とする検証者用署名検証装置。
【請求項7】
公開されているシステムパラメータg、素数p,q及び各ユーザの公開鍵情報y1, ・・・ , yi, ・・・ , yn, yC, ・・・を用いると共に、署名者としてのユーザに固有の秘密鍵情報xi=log(yi)及び前記署名者が選択した他の複数のユーザの公開鍵情報yj(但しj = 1, ・・・ ,i-1, i+1, ・・・, n)及び前記署名者が指名した確認者の公開鍵情報yCや第1乱数情報α、第2乱数情報k、ハッシュ関数h,h及び前記他のユーザに関するメンバ乱数情報sを用いて以下のA式乃至G式:
A式 Ti = gα mod p,
B式 d1 = g{k+h_q(m)} mod p, (但し、_は下付文字を表す)、
C式 d2 = yC mod p,
D式 ci+1 = h(d1‖d2‖Ti), (但し、i = n の場合、ci+1=c{(i+1) mod n}とする。また、‖はデータの連結を表す)、
E式 Tj = g{s_j}j{c_j} mod p,
F式 cj+1 = h(d1‖d2‖Tj), (但し、j = n の場合、cj+1=c{(j+1) mod n}とする)、
G式 si = α − xii mod q,
の計算により生成されたリング署名σ(m)=(c1,s1, ・・・ , sn,d1,d2)に関し、当該リング署名σ(m)を検証する検証者用署名検証装置であって、
前記リング署名σ(m)を検証する際に、前記署名者の秘密鍵情報に対応する公開鍵情報yi及び前記他の複数のユーザの公開鍵情報yjからなる各ユーザの公開鍵情報y1, ・・・ , yi, ・・・ , ynに基づいて、当該各ユーザに関してJ= 1, ・・・ , i, ・・・ , n まで(但し、Jは j, i を読み替えた添字)以下のH式及びI式:
H式 TJ = g{s_J}J{c_J} mod p,
I式 cJ+1 = h(d1‖d2‖TJ)
を繰り返し、このI式の結果からc1=cn+1が成り立つことにより、当該リング署名σ(m)を検証する第1検証手段と、
前記リング署名σ(m)を検証する際に、前記確認者の公開鍵情報yCに基づき、前記確認者の確認者用署名検証装置との間の対話証明を介して、式 log(yC) = log{d_1}(d2C{{h_q}(m)}) が成り立つことにより、当該リング署名σ(m)を検証する第2検証手段と、
前記第1及び第2検証手段による検証に合格したとき、前記リング署名を受理するリング署名受理手段と、
を備えており、
前記第2検証手段は、
第3及び第4乱数情報u,vを生成する手段と、
前記システムパラメータg、前記第3及び第4乱数情報u,vに基づいて、式 a = gC により、コミットメント情報aを計算する手段と、
このコミットメント情報aを前記確認者用署名検証装置に送信する手段と、
前記確認者用署名検証装置から第1演算パラメータr1, r2, {{\tilde r}_1}, {{\tilde r}_2}を受信する手段(但し、\tildeは波形ダッシュ符号を表す、r1 = gt, r2 = d1t, {{\tilde r}_1} = g{\tilde t}, {{\tilde r}_2} = d1{\tilde t} 、tは第5乱数情報、\tilde tは第6乱数情報)と、
前記第1演算パラメータr1, r2, {{\tilde r}_1}, {{\tilde r}_2}を受信すると、前記第3及び第4乱数情報u,vを前記確認者用署名検証装置に送信することにより、前記コミットメント情報aを開示する手段と、
前記コミットメント情報aが前記確認者用署名検証装置により式a=gCに基づいて検証されたとき、前記確認者用署名検証装置から第2演算パラメータs, {\tilde s}を受信する手段(但し、s = t −(v+w)xC、 {\tilde s} = {\tilde t}−(v+w)t、wは第7乱数情報)と、
前記第2演算パラメータs, {\tilde s}を受信すると、以下のJ式乃至L式:
J式 gC(v+w) = r1,
K式 g{\tilde s}1{v+w} = {\tilde r}_1,
L式 d1{\tilde s}2{v+w} = {\tilde r}_2
を確認する手段と、
前記確認に加え、式 d1(d2C{{h_q}(m)}){v+w} = r2 を検査することにより、式 log(yC) = log{d_1}(d2C{{h_q}(m)})であることを間接的に検証する手段と、
を備えたことを特徴とする検証者用署名検証装置。
【請求項8】
署名者としてのユーザに固有の秘密鍵情報(xi)が記憶された記憶装置を有し、前記署名者が選択した他の複数のユーザの公開鍵情報(yj、但しj = 1, ・・・ ,i-1, i+1, ・・・, n)及び前記署名者が指名した確認者の公開鍵情報(yC)を用いて、任意のデジタル情報(m)に対するリング署名を生成するデジタル署名装置に用いられるプログラムであって、
前記デジタル署名装置のコンピュータを、
第1乱数情報(α)に基づいて、第1リング要素関連情報(Ti)を生成する手段、
前記デジタル情報(m)、第2乱数情報(k)、及びハッシュ関数に基づいて、第1コミットメント情報(d1)を生成する手段、
前記確認者の公開鍵情報(yC)、第2乱数情報(k)に基づいて、第2コミットメント情報(d2)を生成する手段、
前記第1及び第2コミットメント情報(d1,d2)、前記第1リング要素関連情報(T)及びハッシュ関数に基づいて、リング要素情報(ci+1、但し、i = n の場合、ci+1=c{(i+1) mod n}とする)を生成する手段、
前記他のユーザに関するメンバ乱数情報(s)をランダムに生成する手段、
前記他のユーザの公開鍵情報(yj)、前記メンバ乱数情報(s)、及びリング要素情報に基づいて、第2リング要素関連情報(T)を生成する手段、
前記第1及び第2コミットメント情報(d1,d2)、前記第2リング要素関連情報(T)及びハッシュ関数に基づいて、リング要素情報(cj+1、但し j = n の場合、cj+1=c{(j+1) mod n}とする)を生成する手段、
前記署名者の秘密鍵情報(xi)及び署名者に対応するリング要素情報(ci)に基づいて、署名者関連情報(si)を生成する手段、
1番目のリング要素情報(c1)、前記署名者関連情報(sj)、前記メンバ乱数情報(sj)、前記第1及び第2コミットメント情報(d1,d2)を含むリング署名{σ(m)=(c1,s1, ・・・ , sn,d1,d2)}を生成する手段、
として機能させるためのプログラム。
【請求項9】
公開されているシステムパラメータg、素数p,q及び各ユーザの公開鍵情報y1, ・・・ , yi, ・・・ , yn, yC, ・・・や、署名者としてのユーザに固有の秘密鍵情報xi=log(yi)が記憶される記憶装置を有し、この記憶装置を参照しつつ、前記署名者が選択した他の複数のユーザの公開鍵情報yj(但しj = 1, ・・・ ,i-1, i+1, ・・・, n)及び前記署名者が指名した確認者の公開鍵情報yCを用いて、任意のデジタル情報mに対するリング署名を生成するデジタル署名装置に用いられるプログラムであって、
前記デジタル署名装置のコンピュータを、
前記システムパラメータg及び第1乱数情報αに基づいて、式 Ti = gα mod p により、第1リング要素関連情報Tiを生成する手段、
前記システムパラメータg、前記デジタル情報m、第2乱数情報k及びハッシュ関数hqに基づいて、式 d1 = g{k+h_q(m)} mod p により(但し、_は下付文字を表す)、第1コミットメント情報d1を生成する手段、
前記確認者の公開鍵情報yC及び前記第2乱数情報kに基づいて、式 d2 = yC mod p により、第2コミットメント情報d2を生成する手段、
前記第1及び第2コミットメント情報d1,d2、前記第1リング要素関連情報T及びハッシュ関数hに基づいて、式 ci+1 = h(d1‖d2‖Ti) により、リング要素情報ci+1 を生成する手段(但し、i = n の場合、ci+1=c{(i+1) mod n}とする。また、‖はデータの連結を表す)、
前記他のユーザに関するメンバ乱数情報sをランダムに生成する手段、
前記システムパラメータg、前記他のユーザの公開鍵情報yj、前記メンバ乱数情報s及びリング要素情報cjに基づいて、式 Tj = g{s_j}j{c_j} mod p により、第2リング要素関連情報Tを生成する手段、
前記第1及び第2コミットメント情報d1,d2、前記第2リング要素関連情報T及びハッシュ関数hに基づいて、式 cj+1 = h(d1‖d2‖Tj) により、リング要素情報cj+1 を生成する手段(但し、j = n の場合、cj+1=c{(j+1) mod n}とする)、
前記第1乱数情報α、前記署名者の秘密鍵情報xi及び署名者に対応するリング要素情報ciに基づいて、式 si = α − xii mod q により、署名者関連情報siを生成する手段、
1番目のリング要素情報c1、前記署名者関連情報si、前記メンバ乱数情報sj、前記第1及び第2コミットメント情報d1,d2を含むリング署名σ(m)=(c1,s1, ・・・ , sn,d1,d2)を生成する手段、
として機能させるためのプログラム。
【請求項10】
署名者としてのユーザに固有の秘密鍵情報(xi)及び前記署名者が選択した他の複数のユーザの公開鍵情報(yj、但しj = 1, ・・・ ,i-1, i+1, ・・・, n)及び前記署名者が指名した確認者の公開鍵情報(yC)を用いて生成された任意のデジタル情報(m)に対するリング署名に関し、予め記憶装置に記憶された前記確認者の公開鍵情報に対応する秘密鍵情報(xC)に基づいて、当該リング署名を検証する確認者用署名検証装置に用いられるプログラムであって、
前記確認者用署名検証装置のコンピュータを、
前記リング署名を検証する際に、前記確認者の公開鍵情報(yC)、前記記憶装置内の前記秘密鍵情報(xC)及び前記デジタル情報(m)に基づいて、当該リング署名を検証する第1検証手段、
前記リング署名を検証する際に、前記署名者の秘密鍵情報に対応する公開鍵情報(yi)及び前記他の複数のユーザの公開鍵情報(yj)からなる各ユーザの公開鍵情報(y1, ・・・ , yi, ・・・ , yn)に基づいて、当該リング署名を検証する第2検証手段、
前記第1及び第2検証手段による検証に合格したとき、前記リング署名を受理するリング署名受理手段、
として機能させるためのプログラム。
【請求項11】
公開されているシステムパラメータg、素数p,q及び各ユーザの公開鍵情報y1, ・・・ , yi, ・・・ , yn, yC, ・・・を用いると共に、署名者としてのユーザに固有の秘密鍵情報xi=log(yi)及び前記署名者が選択した他の複数のユーザの公開鍵情報yj、(但しj = 1, ・・・ , i-1, i+1, ・・・, n)及び前記署名者が指名した確認者の公開鍵情報yCや第1乱数情報α、第2乱数情報k、ハッシュ関数h,h及び前記他のユーザに関するメンバ乱数情報sを用いて任意のデジタル情報mに対し、以下のA式乃至G式:
A式 Ti = gα mod p,
B式 d1 = g{k+h_q(m)} mod p, (但し、_は下付文字を表す)、
C式 d2 = yC mod p,
D式 ci+1 = h(d1‖d2‖Ti), (但し、i = n の場合、ci+1=c{(i+1) mod n}とする。また、‖はデータの連結を表す)、
E式 Tj = g{s_j}j{c_j} mod p,
F式 cj+1 = h(d1‖d2‖Tj), (但し、j = n の場合、cj+1=c{(j+1) mod n}とする)、
G式 si = α − xii mod q,
の計算により生成されたリング署名σ(m)=(c1,s1, ・・・ , sn,d1,d2)に関し、当該リング署名σ(m)を検証する確認者用署名検証装置に用いられるプログラムであって、
前記確認者用署名検証装置のコンピュータを、
前記リング署名σ(m)を検証する際に、前記確認者の公開鍵情報yC及びこの公開鍵情報に対応する秘密鍵情報xCが記憶された記憶装置を参照しつつ、前記デジタル情報m及び前記ハッシュ関数hqに基づいて、式 d1{x_C} / d2 = yC{{h_q}(m)} が成り立つことにより、当該リング署名σ(m)を検証する第1検証手段、
前記リング署名σ(m)を検証する際に、前記署名者の秘密鍵情報に対応する公開鍵情報yi及び前記他の複数のユーザの公開鍵情報yjからなる各ユーザの公開鍵情報y1, ・・・ , yi, ・・・ , ynに基づいて、当該各ユーザに関してJ= 1, ・・・ , i, ・・・ , n まで(但し、Jは j, i を読み替えた添字)以下のH式及びI式:
H式 TJ = g{s_J}J{c_J} mod p,
I式 cJ+1 = h(d1‖d2‖TJ)
を繰り返し、このI式の結果からc1=cn+1が成り立つことにより、当該リング署名σ(m)を検証する第2検証手段、
前記第1及び第2検証手段による検証に合格したとき、前記リング署名を受理するリング署名受理手段、
として機能させるためのプログラム。
【請求項12】
署名者としてのユーザに固有の秘密鍵情報(xi)及び前記署名者が選択した他の複数のユーザの公開鍵情報(yj、但しj = 1, ・・・ , i-1, i+1, ・・・, n)及び前記署名者が指名した確認者の公開鍵情報(yC)を用いて生成された任意のデジタル情報(m)に対するリング署名に関し、当該リング署名を検証する検証者用署名検証装置に用いられるプログラムであって、
前記検証者用署名検証装置のコンピュータを、
前記リング署名を検証する際に、前記署名者の秘密鍵情報に対応する公開鍵情報(yi)及び前記他の複数のユーザの公開鍵情報(yj)からなる各ユーザの公開鍵情報(y1, ・・・ , yi, ・・・ , yn)に基づいて、当該リング署名を検証する第1検証手段、
前記リング署名を検証する際に、前記確認者の公開鍵情報(yC)に基づき、前記確認者の確認者用署名検証装置との間の対話証明を介して、当該リング署名を検証する第2検証手段、
前記第1及び第2検証手段による検証に合格したとき、前記リング署名を受理するリング署名受理手段、
として機能させるためのプログラム。
【請求項13】
公開されているシステムパラメータg、素数p,q及び各ユーザの公開鍵情報y1, ・・・ , yi, ・・・ , yn, yC, ・・・を用いると共に、署名者としてのユーザに固有の秘密鍵情報xi=log(yi)及び前記署名者が選択した他の複数のユーザの公開鍵情報yj(但しj = 1, ・・・ ,i-1, i+1, ・・・, n)及び前記署名者が指名した確認者の公開鍵情報yCや第1乱数情報α、第2乱数情報k、ハッシュ関数h,h及び前記他のユーザに関するメンバ乱数情報sを用いて以下のA式乃至G式:
A式 Ti = gα mod p,
B式 d1 = g{k+h_q(m)} mod p, (但し、_は下付文字を表す)、
C式 d2 = yC mod p,
D式 ci+1 = h(d1‖d2‖Ti), (但し、i = n の場合、ci+1=c{(i+1) mod n}とする。また、‖はデータの連結を表す)、
E式 Tj = g{s_j}j{c_j} mod p,
F式 cj+1 = h(d1‖d2‖Tj), (但し、j = n の場合、cj+1=c{(j+1) mod n}とする)、
G式 si = α − xii mod q,
の計算により生成されたリング署名σ(m)=(c1,s1, ・・・ , sn,d1,d2)に関し、当該リング署名σ(m)を検証する検証者用署名検証装置に用いられるプログラムであって、
前記検証者用署名検証装置のコンピュータを、
前記リング署名σ(m)を検証する際に、前記署名者の秘密鍵情報に対応する公開鍵情報yi及び前記他の複数のユーザの公開鍵情報yjからなる各ユーザの公開鍵情報y1, ・・・ , yi, ・・・ , ynが記憶された記憶装置を参照しつつ、当該各ユーザに関してJ= 1, ・・・ , i, ・・・ , n まで(但し、Jは j, i を読み替えた添字)以下のH式及びI式:
H式 TJ = g{s_J}j{c_J} mod p,
I式 cJ+1 = h(d1‖d2‖TJ)
を繰り返し、このI式の結果からc1=cn+1が成り立つことにより、当該リング署名σ(m)を検証する第1検証手段、
前記リング署名σ(m)を検証する際に、前記確認者の公開鍵情報yCに基づき、前記確認者の確認者用署名検証装置との間の対話証明を介して、式 log(yC) = log{d_1}(d2C{{h_q}(m)}) が成り立つことにより、当該リング署名σ(m)を検証する第2検証手段、
前記第1及び第2検証手段による検証に合格したとき、前記リング署名を受理するリング署名受理手段、
として機能させ、
前記第2検証手段は、
第3及び第4乱数情報u,vを生成する手段と、
前記システムパラメータg、前記第3及び第4乱数情報u,vに基づいて、式 a = gC により、コミットメント情報aを計算する手段と、
このコミットメント情報aを前記確認者用署名検証装置に送信する手段と、
前記確認者用署名検証装置から第1演算パラメータr1, r2, {{\tilde r}_1}, {{\tilde r}_2}を受信する手段(但し、\tildeは波形ダッシュ符号を表す、r1 = gt, r2 = d1t, {{\tilde r}_1} = g{\tilde t}, {{\tilde r}_2} = d1{\tilde t} 、tは第5乱数情報、\tilde tは第6乱数情報)と、
前記第1演算パラメータr1, r2, {{\tilde r}_1}, {{\tilde r}_2}を受信すると、前記第3及び第4乱数情報u,vを前記確認者用署名検証装置に送信することにより、前記コミットメント情報aを開示する手段と、
前記コミットメント情報aが前記確認者用署名検証装置により式a=gCに基づいて検証されたとき、前記確認者用署名検証装置から第2演算パラメータs, {\tilde s}を受信する手段(但し、s = t −(v+w)xC、 {\tilde s} = {\tilde t}−(v+w)t、wは第7乱数情報)と、
前記第2演算パラメータs, {\tilde s}を受信すると、以下のJ式乃至L式:
J式 gC(v+w) = r1,
K式 g{\tilde s}1{v+w} = {\tilde r}_1,
L式 d1{\tilde s}2{v+w} = {\tilde r}_2
を確認する手段と、
前記確認に加え、式 d1(d2C{{h_q}(m)}){v+w} = r2 を検査することにより、式 log(yC) = log{d_1}(d2C{{h_q}(m)})であることを間接的に検証する手段と、
を含んでいることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2006−203826(P2006−203826A)
【公開日】平成18年8月3日(2006.8.3)
【国際特許分類】
【出願番号】特願2005−16145(P2005−16145)
【出願日】平成17年1月24日(2005.1.24)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】