JP2010200065A - 署名検証システム、署名検証方法、ブラインド署名生成方法、利用者装置、及びブラインド署名生成プログラム - Google Patents

署名検証システム、署名検証方法、ブラインド署名生成方法、利用者装置、及びブラインド署名生成プログラム Download PDF

Info

Publication number
JP2010200065A
JP2010200065A JP2009043453A JP2009043453A JP2010200065A JP 2010200065 A JP2010200065 A JP 2010200065A JP 2009043453 A JP2009043453 A JP 2009043453A JP 2009043453 A JP2009043453 A JP 2009043453A JP 2010200065 A JP2010200065 A JP 2010200065A
Authority
JP
Japan
Prior art keywords
signature
generation
commitment
random number
knowledge proof
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009043453A
Other languages
English (en)
Other versions
JP5330858B2 (ja
Inventor
Miyako Okubo
美也子 大久保
Masayuki Abe
正幸 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2009043453A priority Critical patent/JP5330858B2/ja
Publication of JP2010200065A publication Critical patent/JP2010200065A/ja
Application granted granted Critical
Publication of JP5330858B2 publication Critical patent/JP5330858B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】利用者装置が検証装置に署名を渡さずに、利用者装置が署名を所有していることを検証可能にする。
【解決手段】素数qと、バイリニアペアリングe:G1×G2→GTが存在する位数qの群G1,G2,GTとを公開し、利用者装置は、コミットメント鍵ckを使って情報mに対するコミットメントCを演算し、署名要求メッセージMとして署名生成装置に送信し、署名生成装置は、群G1,G2の生成元g1、g2とZqに属する乱数x、y、rを使って署名要求メッセージMとの演算により複数の要素の組をMに対する署名σとして生成して利用者装置に送信し、利用者装置は署名σの要素に対し、ペアリング等式が成立するか検証し、コミットメントCと署名σに対する非対話ゼロ知識証明をそれぞれ生成し、情報mと共にブラインド署名として検証装置に与え、検証装置は、非対話ゼロ知識証明を検証する。
【選択図】図1

Description

本発明は、利用者装置が署名生成装置から署名を得て、検証装置にその署名を与えずに署名の正当性を検証させる署名検証システム、署名検証方法、ブラインド署名生成方法、利用者装置、及びブラインド署名生成プログラムに関する。
電子署名は電子現金やクレデンシャルシステムなど、様々な暗号プロトコルにおいて基本的な構成要素として利用されている。ブラインド署名方式は、利用者AがメッセージMの内容を秘匿にしたまま、署名者からメッセージMに対する署名σを得ることができる方法である。利用者は署名者から得た署名σを変換し、検証者に変換した署名sを提出する。提出された署名sは、確かにMに対する署名者の署名であることが検証可能であり、提出された署名sは、たとえ署名者であってもその署名sが、署名者が利用者Aに与えたものであることを識別できないという特徴がある。つまり、署名者と利用者間での直接的な署名sの授受関係を知られることがないので、安全性の点で優れている。しかしながら、署名sの検証のためには、利用者はメッセージMと共に署名sを検証者に渡す必要があるため、署名者から利用者に送信された署名σと、利用者から検証者に送信された署名sとメッセージMを盗聴することにより、σとs、Mの関係が知られてしまい、好ましくない。
Universal composable model上で安全性証明が可能なブラインド署名方式が非特許文献1に提案されている。ユニバーサルコンポーザブルモデルは、複数のプロトコルや暗号アルゴリズムが用いられて1つのシステムを成しているような場合の安全性証明に適したモデルであり、ランダムオラクルモデルに比べていくつもの暗号ツールが混ざっているような複雑なプロトコルなどを想定しているモデルである。このような複合的なシステムの場合、従来のランダムオラクルモデルでは、たとえ個々(例えば、ある暗号アルゴリズムとある署名アルゴリズムなど)の安全性が単独で証明できていたとしても、システム全体の安全性を保証するものにはならず、システムの安全性を示す場合には、システム全体を捉えて証明しなおさなければならない。
ユニバーサルコンポーザブルモデルでは、個々の安全性が個のモデル上で証明されていた場合、システム全体の安全性はその積み上げで示せることになり、個々の(暗号アルゴリズムや署名アルゴリズム)の安全性が示されていれば、システム全体の安全性はそこから導くことができる特徴を持っている。
Aggelos Kiayias, Hong-Sheng Zhou: "Equivocal Blind Signatures and Adaptie UC-Security", TCC 2008, pp.340-355.
非特許文献1で示されている従来のユニバーサルコンポーザブルモデルで安全性証明可能なブラインド署名を構成する要求条件は複雑・難解で、必要以上に過多な条件を、安全性の性質として求めるものであり、従って非効率的なものであった。この発明の目的は、利用者が検証者に署名を渡さずに、利用者がメッセージに対する署名を確かに所有していることを検証できる、ユニバーサルコンポーザブルモデル上で安全性証明可能で効率的なブラインド署名方法を用いた署名検証システム、署名検証方法、ブラインド署名生成方法、利用者装置、及びブラインド署名生成プログラムを提供することである。
この発明によれば、利用者装置と、署名生成装置と、検証装置とを含み、素数qと、バイリニアペアリングe:G1×G2→GTが存在する位数qの群G1,G2,GTとを公開した署名検証システムにおいて、
上記利用者装置は、上記G1の元g、h1とG2の元h2とを含むコミットメント鍵ckを使って情報mに対するコミットメントCを演算し、署名要求メッセージMとして上記署名生成装置に送信し、署名生成装置から受信した署名σの要素に対し、ペアリング等式が成立するか検証し、検証に成功した場合は、上記コミットメントCに対する非対話ゼロ知識証明と上記署名σに対する非対話ゼロ知識証明をそれぞれ生成し、上記情報mと共にブラインド署名として上記検証装置に与え、
上記署名生成装置は、上記群G1,G2の生成元g1、g2と位数qの剰余群Zqに属する乱数x、y、rを使って上記利用者装置から受信した署名要求メッセージMとの演算により群G1,G2,GTのいずれかの元となる複数の要素の組をMに対する署名σとして生成し、上記利用者装置にブラインド署名として送信し、
上記検証装置は、上記公開パラメータと上記コミットメント鍵を使って上記利用者装置から受信したコミットメントに対する非対話ゼロ知識証明と署名に対する非対話ゼロ知識証明とを検証し、検証に成功した場合は上記ブラインド署名を受け入れるように構成される。
本発明の署名検証システムによれば、利用者装置は公開されているバイリニアペアリングの群の任意の値を用いて情報mに対しコミットメントCを生成し、署名生成装置は前記群の任意の値を用いて署名要求メッセージM=Cに対し署名σを生成し、利用者装置はコミットメントCと署名σに対しそれぞれバイリニアペアリングeの群の値を知っていることを証明できる非対話ゼロ知識証明を生成して情報mと共にブラインド署名として検証装置に与える。従って、ユニバーサルコンポーザブルモデル上で安全性証明可能なブラインド署名方式が可能である。しかも、署名装置から利用者装置への署名と、利用者装置から検証装置へのブラインド署名を盗聴してもそれら間の対応関係を第3者は特定することができない。
この発明による署名検証システムを示すブロック図。 図1の署名検証システムによる処理手順の一例を示すフロー図。 実施例1における利用者装置の機能構成の一例を示すブロック図。 図3の利用者装置による処理手順の一例を示すフロー図。 実施例1における署名生成装置の機能構成の一例を示すブロック図。 図5の署名生成装置による処理手順の一例を示すフロー図。 実施例1における検証装置の機能構成の一例を示すブロック図。 図7の検証装置による処理手順の一例を示すフロー図。 実施例2における利用者装置の機能構成の一例を示すブロック図。 図9の利用者装置による処理手順の一例を示すフロー図。 実施例2における署名生成装置の機能構成の一例を示すブロック図。 図11の署名生成装置による処理手順の一例を示すフロー図。 実施例2における検証装置の機能構成の一例を示すブロック図。 図13の検証装置による処理手順の一例を示すフロー図。 実施例3における利用者装置の機能構成の一例を示すブロック図。 図15の利用者装置による処理手順の一例を示すフロー図。 実施例3における署名生成装置の機能構成の一例を示すブロック図。 図17の署名生成装置による処理手順の一例を示すフロー図。 実施例3における検証装置の機能構成の一例を示すブロック図。 図19の検証装置による処理手順の一例を示すフロー図。 この発明の署名検証システムにおける利用者装置のハードウェア構成を例示したブロック図。
図1はこの発明が実施される電子署名検証システム10の構成の概要を示し、図2は署名検証システムにおける処理手順を示す。電子署名検証システムは利用者装置100と、署名生成装置200と、検証装置300と、登録装置400とを含んでいる。登録装置400は予め大きな素数qと、バイリニアペアリングe:G1×G2→GTを満足する位数qの群G1、G2、GTとを決め、公開パラメータv=(q, G1, G2, GT, e)として保持している。G1、G2はそれらの任意の生成元をh1、h2とすると、任意の乱数tに対し、h1 tからh2 tを計算できるのは乱数tを知っている場合に限られるという性質を有する群である。なお、gbとは、g∈Gに対し、群Gで定義される演算をb回行うことを意味する。バイリニアペアリングeとしては、WeilペアリングやTateペアリングを使用することができる。
利用者装置100は予め公開パラメータvを登録装置400から取得し(S11)、公開パラメータvに基づいてコミットメント鍵ckを生成し、登録装置400に登録する(S12)。コミットメントを行うごとに公開パラメータvを要求しなくても、公開パラメータvを記憶しておき、それを使用してもよい。利用者装置100は更に、入力された情報mに対し、コミットメント鍵ck=(v, g, h1, h2)を使ってコミットメントCを生成し、署名要求メッセージMとして署名生成装置200に送る(S13)。なお、コミットメント鍵ckに公開パラメータvを含めないでもよく、以下の各実施例でも同様である。
署名生成装置200は、予め公開パラメータvを登録装置400から取得し(S21)、公開パラメータvに基づいて公開鍵pkと秘密鍵skを生成し、公開鍵pkを登録装置400に登録する(S22)。利用者装置100から受信したコミットメントCである署名要求メッセージMに対し秘密鍵skを使って署名σを生成し、利用者装置100に送信する(S23)。
利用者装置100は、登録装置400から公開鍵pkを取得し(S14)、それを使って受信した署名σを検証し(S15)、正当であればコミットメントCに対する非対話ゼロ知識証明Prf(C)とブラインド署名σに対する非対話ゼロ知識証明Prf(σ)を生成し、情報mと共にブラインド署名として検証装置300に送信する(S16)。検証装置300は、予め登録装置400から公開パラメータvを取得し(S31)、更に登録装置400からコミットメント鍵ckを取得する(S32)。受信した非対話ゼロ知識証明Prf(C)と非対話ゼロ知識証明Prf(σ)を、公開パラメータvとコミットメント鍵ckと情報mを使って検証する(S33)。検証に成功すれば、利用者装置100が確かに情報mに対応するコミットメントCに対する署名σを所有しており、従って、情報mに対するコミットメントCを所有していることが確認できたことになる。
コミットメントC及びブラインド署名σに対する非対話ゼロ知識証明は、例えば Jens Groth, Amit Sahai, "Efficient Non-interractive Proof Systems for Bilinear Groups", EUROCRYPT 2008, pp.415-432に開示されているペアリングの群の要素に対する非対話ゼロ知識証明を使用することができる。
上述のシステムの概要は以下の実施例に共通である。以下に各実施例の詳細を説明する。なお、上述では利用者装置100がコミットメント鍵ck=(v, g, h1, h2)を生成し、登録装置400に登録する場合を説明したが、登録装置400がコミットメント鍵ckを生成し、利用者装置100及び検証装置300に与えるようにしてもよい。その場合は図3の利用者装置100中のコミットメント鍵生成部110は不要であり、また図4中のステップS12は登録装置400からのコミットメント鍵取得ステップに置き換えられる。以下の各実施例においても利用者装置100がコミットメント鍵ckを生成する場合を示すが、登録装置400がコミットメント鍵を生成してもよい。
[登録装置]
登録装置400は信頼できる第三者等が管理し、公開パラメータvを登録及び公開している。例えば、登録装置400は、図示してない通信部と、記憶部と、制御部を有し、通信部を介して、利用者装置100、署名生成装置200及び検証装置300に公開パラメータvを送信する。また、署名生成装置200から公開鍵pkを受信し、記憶部に登録し、要求に応じて利用者装置100に公開鍵pkを送信する。以下、特に記述しなくとも、これら装置との通信は通信部を介して行われるものとする。通信部は、例えば、LANアダプタ等により構成され、LANやインターネット等からなるネットワークと接続される。但し、利用者装置100、署名生成装置200、検証装置300は必ずしも通信部を有さずともよく、例えば、キーボード等の入力装置から公開パラメータvを入力してもよいし、また、USBメモリ等の可搬媒体に公開パラメータvを記憶し、それを入力してもよい。以下、同様に各装置(利用者装置、署名生成装置及び検証装置)は送信部を有さずともよく、装置間のデータの入出力は、通信以外の方法であってもよい。登録装置400の図示してない記憶部は、公開パラメータv、コミットメント鍵ck、公開鍵pk等を記憶する。なお、上記「登録」とは、記憶部に記憶することを意味してもよい。また、「公開」とは、利用者の求めに応じて、情報(例えば、公開パラメータv、コミットメント鍵ck、公開鍵pk等)を閲覧可能、または、取得可能とすることを意味する。制御部は、各処理を制御する。
[利用者装置]
図3は、利用者装置100の構成例を示し、図4は、利用者装置100の処理手順S100の一例を示す。利用者装置100は、通信部101と、記憶部102と、制御部103と、コミットメント鍵生成部110と、乱数生成部120と、コミットメント生成部130と、開封情報生成部140と、署名検証部150と、署名変形部160と、ゼロ知識証明生成部170とを含んでいる。
本実施例の利用者装置100は、制御部103の制御のもと各処理を実行する。利用者装置100は、登録装置400から公開パラメータvを受け取る。例えば、通信部101は、署名生成装置200、登録装置400及び検証装置300と通信を行い、登録装置400から公開パラメータvを受信し、記憶部102に記憶する(S110)。以下、特に記述しなくとも、署名生成装置200、登録装置400及び検証装置300と通信する際には、通信部101を介して行われるものとする。
また、特に示さない限り、入出力される各データや演算過程の各データは、逐一、記憶部102に格納・読み出され、各演算処理が進められる。但し、必ずしも記憶部102に記憶しなければならないわけではなく、各部間で直接データを受け渡してもよい。
コミットメント鍵生成部110は、記憶部102から公開パラメータv=(q, G1, G2, GT, e)が入力され、G1から生成元g及びhを、G2から生成元h2を無作為に選択し、これら生成元を用いてコミットメント鍵ck=(v, g, h1, h2)を生成し,登録装置400に登録する。また、生成元h1をコミットメント生成部130へ出力し、生成元h2を開封情報算出部140へ出力する(S120)。
乱数生成部120は、Zqに属する任意の乱数t及びηを生成し、記憶部102に保存すると共に乱数tを開封情報算出部140及びコミットメント生成部130へ出力する(S130)。開封情報算出部140は、Gの生成元h及び乱数tが入力され、開封情報H=h2 tを算出する(S140)。これにより開封情報Hが離散対数問題が困難な元となる。開放情報算出部140は、開封情報H=h2 tをゼロ知識証明生成部170に出力する。
コミットメント生成部130は、乱数生成部120から乱数tを、コミットメント鍵生成部120からG1の生成元g、h1を、さらに情報mを入力され、コミットメントC=g1 tを生成し、署名要求メッセージM=Cとして署名生成装置200に送信する(S150)。また、コミットメントCを署名検証部150とゼロ知識証明生成部170に与える。なお、情報m∈Zqであり、補助記憶装置やメモリ上のデータ等、もしくは、入力インターフェース、キーボード、マウス等から入力されるデータである。
署名検証部150と署名変形部160と、ゼロ知識証明生成部170の説明は次の署名生成装置200の説明の後に行う。
[署名生成装置]
図5は、署名生成装置200の構成例を示す図である。図6は、署名生成装置200の処理手順S200の一例を示す図である。署名生成装置200は、通信部201と、記憶部202と、制御部203と、生成元選択部210と、乱数生成部220と、公開鍵生成部230と、電子署名生成部240を有する。
本実施例の署名生成装置200は、制御部203の制御のもと各処理を実行する。署名生成装置200は、以下、特に記述しなくとも、登録装置400及び利用者装置100と通信する際には、通信部201を介して行われるものとする。また、特に示さない限り、入出力される各データや演算過程の各データは、逐一、記憶部202に格納・読み出され、各演算処理が進められる。但し、必ずしも記憶部202に記憶しなければならないわけではなく、各部間で直接データを受け渡してもよい。署名生成装置200は、登録装置400から公開パラメータvを受信し、記憶部202に保存する(S210)。
生成元選択部210は、与えられた公開パラメータv中の群G及びGからそれぞれ生成元g及びgを無作為に選択し、公開パラメータvを入力され、生成元g及びgを公開鍵生成部230及び電子署名生成部240へ出力する(S220)。乱数生成部220は、Zqに属する乱数r、x及びyを生成し、乱数x、yを公開鍵生成部230へ、乱数r、x、yを電子署名生成部240へ出力し(S230)。乱数生成部220は更に乱数x、yを秘密鍵sk=(x, y)として記憶部202に秘密に保存する(S240)。なお、秘密鍵skには、対応する公開鍵pkを含め、sk=(pk, x, y)としてもよい。他の実施例においても同様である。公開鍵pkについての詳細は後述する。
公開鍵生成部230は、x、y、g1及びg2が入力され、X'=g2 x、Y'=g2 yを計算し、公開鍵pk=(v, g1, g2, X', Y')を生成し、通信部201を介して、登録装置400へ送られ、登録される(S250)。ただし、ここではXDH仮定を前提としている。XDHはThe External Diffie-Hellman (XDH) assumptionの略であり、いわゆる楕円のペアリングなどが存在する場合に、以下の3つの性質を持つことを想定した仮定である。
・The discrete logarithm problem (DLP)→離散対数問題
・The computational Diffie-Hellman problem (CDH)→いわゆるDH問題
・The computational co-Diffie-Hellman problem (co-DH)
上記のうち、co-DHとは以下のように双対の片方のグループの情報を与えられて、与えられたのとは別のグループのDHを計算する問題であり、これを解くのが難しいことを仮定している。具体的には、以下の通りである。
(G1; G2)上のThe co-Diffie-Hellman (co-DH) problemは:
G1, G2をそれぞれP1, P2により生成した位数Lの巡回群とする。(G1,G2)上のco-DH問題は(P1; aP1; P2)が与えられaP2を計算することである。
公開鍵pkには、利用した公開パラメータvの代わりに、それを表す鍵情報iを含めpk=(i, g1, g2, X', Y')としてもよい。この場合には、以下で説明する検証装置300は、鍵情報iに基づいて、登録装置400に対応する公開パラメータviを要求する。また、登録装置400の記憶している公開パラメータの中から対応する公開パラメータvを特定することができる場合には、公開鍵pkに公開パラメータvや、公開パラメータを表示する鍵情報i等を含まなくともよく、検証装置300は、情報m及び電子署名σを受け付けた際に、登録装置400に公開パラメータvを要求する。これらのことは、後述の他の実施例にも当てはまる。
電子署名生成部240は、g1、g2、r、x、y及び利用者装置100から受信したコミットメントCである署名要求メッセージM∈G1が入力され、署名要求メッセージMに対し、以下の5つの式
1=g1 r (1)
2=Mr (2)
3=g1 rxrxy (3)
4=Mry (4)
5=g2 ry (5)
を計算し、これら5つの値の組を署名要求メッセージMに対する電子署名σ=(a1, a2, a3, a4, a5)∈G1 5×G2とし、利用者装置100に送信する(S260)。
以下、利用者装置100の説明に戻る。
署名検証部150は署名生成装置200の公開鍵pk=(v, g1, g2, X', Y')を登録装置400から取得し(S160)、署名生成装置200から受信した署名σ=(a1, a2, a3, a4, a5)と署名要求メッセージM(即ちコミットメントC)の組に対する検証を、次の4つのペアリング等式が成立するか検査することにより行う(S170)。
e(g1,a5)=e(a1,g2) (6)
e(M,a5)=e(a2,g2) (7)
e(a2,Y')=e(a4,g2) (8)
e(a3,g2)=e(a14,X') (9)
<検証の妥当性>
式(6)は式(1)及び(5)を用いて、以下のように表すことができる。
e(g1,g2 r)=e (g1 r,g2) (6)'
これが成立することにより、バイリニアペアリングの性質から、両辺中の利用者装置100に知らされていない乱数rが同一であることを確認することができる。同様に、式(7)は式(1)及び(2)を用いて、以下のように表すことができる。
e(M,g2 r)=e(Mr,g2) (7)'
式(6)'でrの同一性が確認されたので、式(7)'が成立することにより、送信したM=Cと署名の対象となったMが同一であることを確認することができる。式(8)は式(2)、(4)、Y'=g2 yを用いて、以下のように表すことができる。
e(Mr,g2 y)=e(Mry,g2) (8)’
式(6)'と(7)'で乱数rの同一性とメッセージMの同一性が確認されたので、式(8)'が成り立つ場合には、乱数yが正しいことが確認できる。式(9)は、式(1)、(3)、(4)、X'=g2 xを用いて、以下のように表すことができる。
e(g1 rxrxy,g2)=e(g1 rry,g2 x) (9)’
式(6)', (7)', (8)'で乱数r、メッセージM、及び乱数yが正しいことが確認できたので、式(9)'が成り立つ場合には、乱数xが正しいことが確認できる。これらの処理により、電子署名σを作成できるのは、秘密鍵sk=(x,y)を知っている署名者のみであることが確認できる。
署名検証部150で署名σの検証に成功すると、署名に対する非対話ゼロ知識証明を生成し、検証装置300に送信するが、その署名σの一部の要素を後述のように検証用情報としてそのまま検証装置300に送信しなければならないので、署名σそのものに対し非対話ゼロ知識証明を生成すると、盗聴した署名の要素から署名装置と利用者装置間のどのセッションで生成された署名が現在利用者装置から出力されたブラインド署名のデータにリンクしているのか特定される危険がある。そこで、安全性を高めるため、署名変形部160は乱数生成部120で生成した乱数ηを使って署名σの各要素に対し演算処理することにより署名σを署名σ'=(a'1, a'2, a'3, a'4, a'5)に変形する。ここでは演算処理a'i=ai η、i=1,…,5、により署名σ'に変形する(S180)。ゼロ知識証明生成部170は開封情報Hを使って情報mに関するコミットメントCに対する非対話ゼロ知識証明Prf(C)を以下のように生成する。
Prf(C):NIZK{(C,H): e(C/gm, h2)e(h1 -1, H)=1} (10)
式(10)は、利用者装置100が検証装置300に対し(C,H)を隠したまま利用者装置100が(C,H)を確かに所有していることを、e(C/gm, h2)e(h1 -1, H)=1が成立することにより証明する非対話ゼロ知識証明を表す。
ゼロ知識証明生成部170は更に、変形された署名σ'中の要素a'2,a'3,a'4について同様に、以下の3つの非対話ゼロ知識証明を生成する。
Prf(σ'):NIZK{(C, a'2): e(C, a'5)e(a'2, g2 -1)=1} (11)
NIZK{(a'2, a'4): e(a'2, Y')e(a'4, g2 -1)=1} (12)
NIZK{(a'3, a'4): e(a'3, g2)e(a'1a'4, X'-1)=1} (13)
式(11), (12), (13)は利用者装置100が検証装置に対しそれぞれ(C, a'2), (a'2, a'4), (a'3, a'4)を隠したまま利用者装置100がこれらを確かに所有していることを、それぞれの等式が成立することにより証明する非対話ゼロ知識証明を表し、これら3つのゼロ知識証明をまとめてPrf(σ')と表すことにする。非対話ゼロ知識証明Prf(C)とPrf(σ')は情報mおよび検証用情報としての要素a'1,a'5と共に検証装置300に送信される(S180)。
非対話ゼロ知識証明としては、ペアリングの群の要素に対する非対話ゼロ知識証明であればどのようなものでもよく、例えば非特許文献2に示されている技術を使用してもよい。後述の他の実施例についても同様である。
[検証装置]
図7は検証装置300の構成を示し、図8はその検証処理手順S300の一例を示す。検証装置300は、通信部301と、記憶部302と、制御部303と、ゼロ知識証明検証部310とから構成されている。制御部303は通信部301、記憶部302、ゼロ知識証明検証部310の動作を制御する。検証装置300は、通信部301により利用者装置100及び登録装置400と通信し、登録装置400から公開パラメータv=(q, G1, G2, GT, e)を取得して記憶部302に保存し(S310)、更に登録装置400からコミットメント鍵ck=(v, g, h1, h2)を取得し、記憶部302に保存する(S320)。
検証装置300は通信部301により利用者装置100から情報m、署名σ'の要素a'1,a'5、コミットメントCに対する非対話ゼロ知識証明Rrf(C)、署名σ'に対する非対話ゼロ知識証明Prf(σ')を受信し、記憶部302に保存すると共にゼロ知識証明検証部310に与える(S330)。ゼロ知識証明検証部310は、Prf(C)について、式(10)が成立することをコミットメント鍵ckと公開パラメータvを使って検証する(S340)。また、Prf(σ')について署名σ'の要素a'1,a'5を使って、
e(g1, a'5)=e(a'1,g2) (14)
が成立するか検証し、成立すれば署名装置200が署名生成に使用した乱数rと、利用者装置から受信したa'1=a1 η,a'5=a5 ηに含まれる乱数r(式(1)と(5)を参照)が一致していることを確認できる。
Prf(σ')について更に各式(11),(12),(13)が成立することを、公開パラメータvを使って検証し、検証に成功すれば、Prf(C)、Prf(σ')、mの組を正当なブラインド署名として受け入れる(S350)。
実施例1では利用者装置100がコミットメント鍵ck=(v, g, h1, h2)を生成して登録装置400に登録する場合を示したが、前述のように、登録装置400がコミットメント鍵ckを生成し、要求に応じて利用者装置100及び検証装置300に与えるようにしてもよい。
実施例2は、実施例1における署名σの要素数を1つ減らして4つとし、署名σの検証式の数も1つ減らして3つとすることにより、処理情報量を減らし、従って処理時間を短縮可能にしたものである。実施例2による署名検証システムの基本構成と全体の処理手順は図1及び図2に示すものと同じであり、図及び説明を省略する。異なる点は利用者装置100、署名生成装置200、及び検証装置300のそれぞれの内部構成である。以下にこれらについて説明する。
実施例2においても、実施例1と同様に前提としてqを大きな素数とし、G1,G2,GTを位数qの群とし、eを効率的に計算可能なバイリニアペアリングe:G1×G2→GTとし、v=(q, G1, G2, GT, e)を公開パラメータとする。
[利用者装置]
図9は、実施例2による利用者装置100の構成例を示し、図10は、利用者装置100の処理手順S100の一例を示す。利用者装置100は、通信部101と、記憶部102と、制御部103と、コミットメント鍵生成部110と、乱数生成部120と、コミットメント生成部130と、開封情報生成部140と、署名検証部151と、署名変形部161と、ゼロ知識証明生成部171とを含んでいる。図9の利用者装置は、図3の利用者装置における署名検証部150と署名変形部160とゼロ知識証明生成部170が署名検証部151と署名変形部161とゼロ知識証明生成部171に変更されているだけである。また、図10の処理手順は図4の処理手順におけるステップS170, S180,S190がステップS171, S181,S191に変更されているだけである。
本実施例2の利用者装置100は、登録装置400から公開パラメータvを受信し、記憶部102に記憶する(S110)。コミットメント鍵生成部110は、記憶部102から公開パラメータv=(q,G1,G2,GT,e)が入力され、G1から生成元g及びhを、G2から生成元h2を無作為に選択し、これら生成元を用いてコミットメント鍵ck=(v,g,h1,h2)を生成し,登録装置400に登録する。また、生成元h1をコミットメント生成部130へ出力し、生成元h2を開封情報算出部140へ出力する(S120)。
乱数生成部120は、Zqに属する乱数t及びηを生成し、記憶部102に保存すると共に乱数tを開封情報算出部140及びコミットメント生成部130へ出力する(S130)。開封情報算出部140は、Gの生成元h及び乱数tが入力され、開封情報H=h2 tを算出する(S140)。これにより開封情報Hが離散対数問題が困難な元となる。開放情報算出部140は、開封情報H=h2 tをゼロ知識証明生成部171に出力する。 コミットメント生成部130は、乱数生成部120から乱数tを、コミットメント鍵生成部120からG1の生成元g、h1を、さらに情報mを入力され、コミットメントC=g1 tを生成し、署名要求メッセージM=Cとして署名生成装置200に送信する(S150)。また、コミットメントCを署名検証部150とゼロ知識証明生成部171に与える。
署名検証部151と署名変形部161とゼロ知識証明生成部171の説明は次の署名生成装置200の説明の後に行う。
[署名生成装置]
図11は、実施例2の署名生成装置200の構成例を示し、図12はその署名生成処理手順S200の一例を示す。署名生成装置200は、通信部201と、記憶部202と、制御部203と、生成元選択部210と、乱数生成部220と、公開鍵生成部230と、電子署名生成部241を有する。図11の署名生成装置は図5の署名生成装置における電子署名生成部240が電子署名生成部241に変更されているだけであり、また図12の処理手順は図6の処理手順におけるステップS260がステップS261に変更されているだけである。
実施例2の署名生成装置200は、登録装置400から公開パラメータvを受信し、記憶部202に保存する(S210)。生成元選択部210は、与えられた公開パラメータv中の群G及びGからそれぞれ生成元g及びgを無作為に選択し、公開パラメータvを入力され、生成元g及びgを公開鍵生成部230及び電子署名生成部240へ出力する(S220)。乱数生成部220は、Zqに属する乱数r、x及びyを生成し、乱数x、yを公開鍵生成部230へ、乱数r、x、yを電子署名生成部240へ出力し(S230)。乱数生成部220は更に乱数x、yを秘密鍵sk=(x, y)として記憶部202に秘密に保存する(S240)。なお、秘密鍵skには、対応する公開鍵pkを含め、sk=(pk, x, y)としてもよい。他の実施例においても同様である。公開鍵pkについての詳細は後述する。
公開鍵生成部230は、x、y、g1及びg2が入力され、X'=g2 x、Y'=g2 yを計算し、公開鍵pk=(v, g1, g2, X', Y')を生成し、通信部201を介して、登録装置400へ送られ、登録される(S250)。ただし、ここでも前述と同様にXDH仮定を前提とする。
電子署名生成部240は、g1、g2、r、x、y及び利用者装置100から受信したコミットメントCである署名要求メッセージM∈G1が入力され、署名要求メッセージMに対し、実施例1とは異なり、以下の4つの式
1=g1 r (15)
3=g1 rxrxy (16)
4=Mry (17)
5=g2 ry (18)
を計算し、これら4つの値の組を署名要求メッセージMに対する電子署名σ=(a1, a3, a4, a5)∈G1 4×G2とし、利用者装置100に送信する(S261)。
以下、図9の利用者装置100の説明に戻る。
署名検証部151は署名生成装置200の公開鍵pk=(v, g1, g2, X', Y')を登録装置400から取得し(S160)、署名生成装置200から受信した署名σ=(a1, a3, a4, a5)と署名要求メッセージM(即ちコミットメントC)の組に対する検証を、次の3つのペアリング等式が成立するか検査することにより行う(S171)。
e(a1,Y')=e(g1,a5) (19)
e(M,a5)=e(a4,g2) (20)
e(a3,g2)=e(a14,X') (21)
<検証の妥当性>
式(19)は式(15), (18)及びY'=g2 yを用いて、以下のように表すことができる。
e(gr 1,g2 y)=e(g1,g2 ry) (19)'
これが成立することにより、バイリニアペアリングの性質から、両辺中の利用者装置100に知らされていない乱数r及びyが同一であることを確認することができる。同様に、式(20)は式(18)及び(17)を用いて、以下のように表すことができる。
e(M,g2 ry)=e(Mry,g2) (20)'
式(19)'でr,yの同一性が確認されたので、式(18)'が成立することにより、送信したM=Cと署名の対象となったMが同一であることを確認することができる。式(21)は、式(15)、(18)、(17)、X'=g2 xを用いて、以下のように表すことができる。
e(g1 rxrxy,g2)=e(g1 rry,g2 x) (21)’
式(19)', (20)'で乱数r、y及びメッセージMが正しいことが確認できたので、式(21)'が成り立つ場合には、乱数xが正しいことが確認できる。これらの処理により、電子署名σを作成できるのは、秘密鍵sk=(x, y)を知っている署名者のみであることが確認できる。
署名検証部151で署名σの検証に成功すると、署名変形部161波乱趨勢西部120で生成された乱数ηを使って署名σを署名σ'=(a'1, a'3, a'4, a'5)、ただしa'i=ai η、i=1, 3, 4, 5、に変形する。ゼロ知識証明生成部171は開封情報Hを使って情報mに関するコミットメントCに対する非対話ゼロ知識証明Prf(C)を以下のように生成する。
Prf(C):NIZK{(C,H): e(C/gm, h2)e(h1 -1, H)=1} (22)
式(22)は、利用者装置100が検証装置300に対し(C,H)を隠したまま利用者装置100が(C,H)を確かに所有していることを、等式e(C/gm, h2)e(h1 -1, H)=1が成立することにより証明する非対話ゼロ知識証明を表す。
ゼロ知識証明生成部171は更に、変形された署名σ'中の要素a'3,a'4について同様に、以下の2つの非対話ゼロ知識証明を生成する。
Prf(σ'):NIZK{(C, a'4): e(C, a'5)e(a'4, g2 -1)=1} (23)
NIZK{(a'3, a'4): e(a'3, g2)e(a'1a'4, X'-1)=1} (24)
式(23), (24)は利用者装置100が検証装置に対しそれぞれ(C, a'4)、(a'3, a'4)を隠したまま利用者装置100がこれらを確かに所有していることを、それぞれの等式が成立することにより証明する非対話ゼロ知識証明を表し、これら2つのゼロ知識証明をまとめてPrf(σ')と表すことにする。非対話ゼロ知識証明Prf(C)とPrf(σ')は情報m及び要素a'1,a'5と共に検証装置300に送信される(S191)。
[検証装置]
図13は実施例2の検証装置300の構成を示し、図14はその検証処理手順S300を示す。検証装置300は、通信部301と、記憶部302と、制御部303と、ゼロ知識証明検証部311とから構成されている。図13の検証装置は、図7におけるゼロ知識証明検証部310がゼロ知識証明検証部311に変更されているだけである。また、図14の処理手順は、図8におけるステップS350がステップS351に変更されているだけである。
検証装置300は、登録装置400から公開パラメータv=(q, G1, G2, GT, e)を取得して記憶部302に保存し(S310)、更に登録装置400からコミットメント鍵ck=(v, g, h1, h2)を取得し、記憶部302に保存する(S320)。さらに、検証装置300は利用者装置100から情報m、署名σ'の要素a'1,a'5、コミットメントCに対する非対話ゼロ知識証明Rrf(C)、署名σ'に対する非対話ゼロ知識証明Prf(σ')を受信し、記憶部302に保存すると共にゼロ知識証明検証部311に与える(S330)。ゼロ知識証明検証部311は、Prf(C)について、式(22)が成立することをコミットメント鍵ckと公開パラメータvを使って検証する(S340)。また、Prf(σ')について署名σ'の要素a'1,a'5を使って、
e(a'1、Y')=e(g1,a'5) (25)
が成立するか検証し、成立すれば署名装置200が署名生成に使用した乱数rと、利用者装置から受信したa'1=a1 η,a'5=a5 ηに含まれる乱数r(式(15)と(18)を参照)が一致していることを確認できる。
Prf(σ')について更に各式(23),(24)が成立することを、公開パラメータvを使って検証し、検証に成功すれば、Prf(C)、Prf(σ')、mの組を正当なブラインド署名として受け入れる(S351)。
実施例2においても利用者装置100がコミットメント鍵ck=(G1, G2, GT, g, h1, h2)を生成して登録装置400に登録する場合を示したが、前述のように、登録装置400がコミットメント鍵ckを生成し、要求に応じて利用者装置100及び検証装置300に与えるようにしてもよい。
実施例3は、実施例1における署名σの要素数を2つ減らして3つとし、署名σの検証式の数も2つ減らして2つとすることにより、実施例2より処理情報量を更に減らし、従って処理時間を短縮可能にしたものである。実施例3による署名検証システムの基本構成と全体の処理手順は図1及び図2に示すものと同じであり、図及び説明を省略する。異なる点は利用者装置100、署名生成装置200、及び検証装置300のそれぞれの内部構成である。以下にこれらについて説明する。
実施例3においても、実施例1と同様に前提としてqを大きな素数とし、G1,G2,GTを位数qの群とし、eを効率的に計算可能なバイリニアペアリングe:G1×G2→GTとし、v=(q, G1, G2, GT, e)を公開パラメータとする。
[利用者装置]
図15は、実施例2による利用者装置100の構成例を示し、図16は、利用者装置100の処理手順S100の一例を示す。利用者装置100は、通信部101と、記憶部102と、制御部103と、コミットメント鍵生成部110と、乱数生成部120と、コミットメント生成部130と、開封情報生成部140と、署名検証部152と、署名変形部162と、ゼロ知識証明生成部172とを含んでいる。図15の利用者装置は、図3の利用者装置における署名検証部150と署名変形部160とゼロ知識証明生成部170が署名検証部152と署名変形部162とゼロ知識証明生成部172に変更されているだけである。また、図16の処理手順は、図4の処理手順におけるステップS170, S180,S190がステップS172, S182,S192に変更されているだけである。
本実施例3の利用者装置100は、登録装置400から公開パラメータvを受信し、記憶部102に記憶する(S110)。コミットメント鍵生成部110は、記憶部102から公開パラメータv=(q, G1, G2, GT, e)が入力され、G1から生成元g及びhを、G2から生成元h2を無作為に選択し、これら生成元を用いてコミットメント鍵ck=(v, g, h1, h2)を生成し,登録装置400に登録する。また、生成元h1をコミットメント生成部130へ出力し、生成元h2を開封情報算出部140へ出力する(S120)。
乱数生成部120は、Zqに属する乱数t及びηを生成し、記憶部102に保存すると共に乱数tを開封情報算出部140及びコミットメント生成部130へ出力する(S130)。開封情報算出部140は、Gの生成元h及び乱数tが入力され、開封情報H=h2 tを算出する(S140)。これにより開封情報Hが離散対数問題が困難な元となる。開放情報算出部140は、開封情報H=h2 tをゼロ知識証明生成部172に出力する。
コミットメント生成部130は、乱数生成部120から乱数tを、コミットメント鍵生成部120からG1の生成元g、h1を、さらに情報mを入力され、コミットメントC=g1 tを生成し、署名要求メッセージM=Cとして署名生成装置200に送信する(S150)。また、コミットメントCを署名検証部150とゼロ知識証明生成部172に与える。
署名検証部152と署名変形部162とゼロ知識証明生成部172の説明は次の署名生成装置200の説明の後に行う。
[署名生成装置]
図17は、実施例2の署名生成装置200の構成例を示し、図18はその署名生成処理手順S200の一例を示す。署名生成装置200は、通信部201と、記憶部202と、制御部203と、生成元選択部210と、乱数生成部220と、公開鍵生成部232と、電子署名生成部242を有する。図17の署名生成装置は、図5の署名生成装置における公開鍵生成部230と電子署名生成部240が公開鍵生成部232と電子署名生成部242に変更されているだけであり、また図18の処理手順は図6の処理手順におけるステップS250, S260がステップS252, S262に変更されているだけである。
実施例3の署名生成装置200は、登録装置400から公開パラメータvを受信し、記憶部202に保存する(S210)。生成元選択部210は、与えられた公開パラメータv中の群G及びGからそれぞれ生成元g及びgを無作為に選択し、公開パラメータvを入力され、生成元g及びgを公開鍵生成部230及び電子署名生成部240へ出力する(S220)。乱数生成部220は、Zqに属する乱数r、x及びyを生成し、乱数x、yを公開鍵生成部230へ、乱数r、x、yを電子署名生成部240へ出力し(S230)。乱数生成部220は更に乱数x、yを秘密鍵sk=(x, y)として記憶部202に秘密に保存する(S240)。なお、秘密鍵skには、対応する公開鍵pkを含め、sk=(pk, x, y)としてもよい。他の実施例においても同様である。公開鍵pkについての詳細は後述する。
公開鍵生成部232は、x、y、g1及びg2が入力され、X'=g2 x、Y'=g2 yを計算し、更にY=g1 yを計算し、公開鍵pk=(v, g1, g2, X', Y', Y)を生成し、通信部201を介して、登録装置400へ送られ、登録する(S252)。ただし、ここではSXDH(asymmetric XDH)仮定を前提とし、その仮定の下ではY'=g2 yとY=g1 yとが公開されていたとしても互いに独立であり、互いの情報を一切漏らさない。なお、SXDH仮定は前述のXDH仮定をペアリングの双方のグループに対して仮定しているものである。
電子署名生成部242は、g1、g2、r、x、y及び利用者装置100から受信したコミットメントCである署名要求メッセージM∈G1が入力され、署名要求メッセージMに対し、実施例1とは異なり、以下の3つの式
1=Mryr (26)
3=Yrxrxy (27)
5=g2 ry (28)
を計算し、これら3つの値の組を署名要求メッセージMに対する電子署名σ=(a1,a3,a5)∈G1 2×G2とし、利用者装置100に送信する(S262)。
以下、図15の利用者装置100の説明に戻る。
署名検証部152は署名生成装置200の公開鍵pk=(v, g1, g2, X', Y', Y)を登録装置400から取得し(S160)、署名生成装置200から受信した署名σ=(a1,a3,a5)と署名要求メッセージM(即ちコミットメントC)の組に対する検証を、次の2つのペアリング等式が成立するか検査することにより行う(S172)。
e(a1,g2)=e(Mg1,a5) (29)
e(a3,g2)=e(a1,X') (30)
<検証の妥当性>
式(29)は式(26), (28)及びY=g1 yを用いて、以下のように表すことができる。
e((Mg1)ry,g2)=e(Mg1,g2 ry) (29)'
これが成立することにより、バイリニアペアリングの性質から、両辺中の利用者装置100に知らされていない乱数r及びyが同一であることを確認することができる。式(30)は、式(27)、(26)及びX'=g2 x、Y=g1 yを用いて、以下のように表すことができる。
e((Yrry)x,g2)=e(Yrry,g2 x) (30)’
式(29)で乱数r、yが正しいことが確認できたので、式(30)が成り立つ場合には、メッセージMと乱数xが正しいことが確認できる。これらの処理により、電子署名σを作成できるのは、秘密鍵sk=(x,y)を知っている署名者のみであることが確認できる。
署名検証部152で署名σの検証に成功すると、署名変形部162は乱数生成部120で生成された乱数ηを使って署名σを署名σ'=(a'1, a'3, a'5)、ただしa'i=ai η、i=1, 3, 5、に変形する(S182)。ゼロ知識証明生成部172は開封情報Hを使って情報mに関するコミットメントCに対する非対話ゼロ知識証明Prf(C)を以下のように生成する。
Prf(C):NIZK{(C,H): e(C/gm, h2)e(h1 -1, H)=1} (31)
式(31)は、利用者装置100が検証装置300に対し(C,H)を隠したまま利用者装置100が(C,H)を確かに所有していることを、等式e(C/gm, h2)e(h1 -1, H)=1が成立することにより証明する非対話ゼロ知識証明を表す。
更に、変形された署名σ'中の要素a'1,a'3について同様に、以下の2つの非対話ゼロ知識証明を生成する。
Prf(σ'):NIZK{(C, a'1): e(C, a'5 -1)e(a'1, g2)=1} (32)
NIZK{(a'1, a'3): e(a'3, g2)e(a'1, X'-1)=1} (33)
式(32), (33)は利用者装置100が検証装置に対しそれぞれ(C, a'1)、(a'1, a'3)を隠したまま利用者装置100がこれらを確かに所有していることを、それぞれの等式が成立することにより証明する非対話ゼロ知識証明を表し、これら2つのゼロ知識証明をまとめてPrf(σ')と表すことにする。非対話ゼロ知識証明Prf(C)とPrf(σ')は情報m及び要素a'5と共に検証装置300に送信される(S192)。
[検証装置]
図19は実施例2の検証装置300の構成を示し、図20はその検証処理手順S300の一例を示す。検証装置300は、通信部301と、記憶部302と、制御部303と、ゼロ知識証明検証部312とから構成されている。図19の検証装置は、図7におけるゼロ知識証明検証部310がゼロ知識証明検証部312に変更されているだけである。また、図20の処理手順は、図8におけるステップS350がステップS352に変更されているだけである。
検証装置300は、登録装置400から公開パラメータv=(q, G1, G2, GT, e)を取得して記憶部302に保存し(S310)、更に登録装置400からコミットメント鍵ck=(v, g, h1, h2)を取得し、記憶部302に保存する(S320)。さらに、検証装置300は利用者装置100から情報m、署名σ'の要素a'5、コミットメントCに対する非対話ゼロ知識証明Rrf(C)、署名σ'に対する非対話ゼロ知識証明Prf(σ')を受信し、記憶部302に保存すると共にゼロ知識証明検証部312に与える(S330)。ゼロ知識証明検証部312は、Prf(C)について、式(31)が成立することをコミットメント鍵ckと公開パラメータvを使って検証する(S340)。
Prf(σ')について更に各式(32),(33)が成立することを、公開パラメータvを使って検証し、検証に成功すれば、Prf(C)、Prf(σ')、mの組を正当なブラインド署名として受け入れる(S350)。
実施例3においても利用者装置100がコミットメント鍵ck=(G1, G2, GT, g, h1, h2)を生成して登録装置400に登録する場合を示したが、前述のように、登録装置400がコミットメント鍵ckを生成し、要求に応じて利用者装置100及び検証装置300に与えるようにしてもよい。
<ハードウェア構成>
図21は、図1に示したこの発明による署名検証システムにおける利用者装置100のハードウェア構成を例示したブロック図である。署名生成装置200、検証装置300及び登録装置400も同様の構成とすることができる。
図21に例示するように、この例の利用者装置100は、CPU(Central Processing Unit)11、入力部12、出力部13、補助記憶装置14、ROM(Read Only Memory)15、RAM(Random Access Memory)16及びバス17を有している。
この例のCPU11は、制御部11a、演算部11b及びレジスタ11cを有し、レジスタ11cに読み込まれた各種プログラムに従って様々な演算処理を実行する。また、入力部12は、データが入力される入力インターフェース、キーボード、マウス等であり、出力部13は、データが出力される出力インターフェース等である。補助記憶装置14は、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、署名生成装置200、検証装置300及び登録装置400としてコンピュータを機能させるためのプログラムが格納されるプログラム領域14a及び各種データが格納されるデータ領域14bを有している。また、RAM16は、SRAM (Static Random Access Memory)、DRAM(Dynamic Random Access Memory)等であり、上記のプログラムが格納されるプログラム領域16a及び各種データが格納されるデータ領域16bを有している。また、バス17は、CPU11、入力部12、出力部13、補助記憶装置14、ROM15及びRAM16を通信可能に接続する。
なお、このようなハードウェアの具体例としては、例えば、パーソナルコンピュータの他、サーバ装置やワークステーション等を例示できる。
上述のように、プログラム領域14a,16aには、図4の処理手順で示される図3の利用者装置100のコミットメント鍵生成部110、乱数生成部120、コミットメント生成部130、開封情報算出部140、署名検証部150、署名変形部160、ゼロ知識証明生成部170等の処理を実行するためのプログラムが格納される。利用者装置100の処理手順(図4)を実行するプログラムは、単一のプログラム列として記載されていてもよく、また、少なくとも一部のプログラムが別個のモジュールとしてライブラリに格納されていてもよい。また、各プログラムが単体でそれぞれの機能を実現してもよいし、各プログラムがさらに他のライブラリを読み出して各機能を実現するものでもよい。
CPU11(図21)は、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置14のプログラム領域14aに格納されている上述のプログラムをRAM16のプログラム領域16aに書き込む。同様にCPU11は、補助記憶装置14のデータ領域14bに格納されている各種データを、RAM16のデータ領域16bに書き込む。そして、このプログラムやデータが書き込まれたRAM16上のアドレスがCPU11のレジスタ11cに格納される。CPU11の制御部11aは、レジスタ11cに格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM16上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部11bに順次実行させ、その演算結果をレジスタ11cに格納していく。
署名生成装置200、検証装置300、登録装置400もそれぞれ同様に構成できる。前述の図3、5、7は、このようにCPU11に上述のプログラムが読み込まれて実行されることにより構成される利用者装置100、署名生成装置200、検証装置300の機能構成を例示したブロック図である。
例えば図5の署名生成装置200の場合、記憶部202は、補助記憶装置14、RAM16、レジスタ11c、その他のバッファメモリやキャッシュメモリ等の何れか、あるいはこれらを併用した記憶領域に相当する。また、通信部201と、記憶部202と、制御部203と、生成元選択部210と、乱数生成部220と、公開鍵生成部230と、電子署名生成部240は、CPU11に署名生成プログラムを実行させることにより構成されるものである。利用者装置100、検証装置300についても同様である。
図21を参照性説明したこの発明をコンピュータで実施する構成は、実施例2及び3にも適用できる。

Claims (21)

  1. 利用者装置と、署名生成装置と、検証装置とを含み、素数qと、バイリニアペアリングe:G1×G2→GTが存在する位数qの群G1,G2,GTとを公開した署名検証システムであり、
    上記利用者装置は、上記G1の元g、h1とG2の元h2とを含むコミットメント鍵ckを使って情報mに対するコミットメントCを演算し、署名要求メッセージMとして上記署名生成装置に送信するコミットメント生成部と、
    署名生成装置から受信した署名σの要素に対し、ペアリング等式が成立するか検証する署名検証部と、
    検証に成功した場合は、上記コミットメントCに対する非対話ゼロ知識証明と上記署名σに対する非対話ゼロ知識証明をそれぞれ生成し、上記情報mと共にブラインド署名として上記検証装置に与えるゼロ知識証明生成部と、を含み、
    上記署名生成装置は、上記群G1,G2の生成元g1、g2とZqに属する乱数x、y、rを使って上記利用者装置から受信した署名要求メッセージMとの演算により群G1,G2,GTのいずれかの元となる複数の要素の組をMに対する署名σとして生成し、上記利用者装置にブラインド署名として送信する電子署名生成部と、を含み、
    上記検証装置は、上記公開パラメータと上記コミットメント鍵を使って上記利用者装置から受信したコミットメントに対する非対話ゼロ知識証明と署名に対する非対話ゼロ知識証明とを検証し、検証に成功した場合は上記ブラインド署名を受け入れるゼロ知識証明検証部を含むことを特徴とする署名検証システム。
  2. 請求項1記載の署名検証システムにおいて、
    上記利用者装置は、Zqに属する乱数tとηを生成する第1乱数生成部と、上記元h2と上記乱数tから開封情報H'=h2 tを計算する開封情報算出部と、署名変形部とを含み、上記コミットメント生成部は上記コミットメント鍵に含まれる上記元g、h1と上記乱数tとを使って上記情報mに対しコミットメントC=gm1 tを演算し、上記署名検証部は上記署名としてσ=(a1,a2,a3,a4,a5)を上記署名生成装置から受信し、上記コミットメントC=Mと、上記署名生成装置が生成した公開鍵に含まれるg1,g2,X',Y'を使って次の4つのペアリング等式
    e(g1,a5)=e(a1,g2)
    e(M,a5)=e(a2,g2)
    e(a2,Y')=e(a4,g2)
    e(a3,g2)=e(a14,X')
    が成立するか検証し、成立した場合は、上記署名変形部は上記署名σの各要素ai, i=1,…,5、を上記乱数ηでそれぞれ処理して変形された署名σ'=(a'1, a'2, a'3, a'4, a'5)を生成して上記ゼロ知識証明生成部に与え、上記ゼロ知識証明生成部は、上記開封情報H'を使って上記コミットメントCに対し非対話ゼロ知識証明Prf(C):
    NIZK{(C,H'): e(C/gm, h2)e(h1 -1, H')=1}
    と、上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ'):
    NIZK{(C, a'2): e(C, a'5)e(a'2, g2 -1)=1}
    NIZK{(a'2, a'4): e(a'2, Y')e(a'4, g2 -1)=1}
    NIZK{(a'3, a'4): e(a'3, g2)e(a'1a'4, X'-1)=1}
    とを生成して上記乱数η出処理された要素a'1,a'5と共にm、Prf(C)、Prf(σ')を上記ブラインド署名として出力し、
    上記署名生成装置は、上記乱数r、x、yを生成する第2乱数生成部と、上記群G1、G2から生成元g1、g2を選択する生成元選択部と、X'=g1 x,Y'=g2 yを計算し、g1、g2、X',Y'を含む公開鍵pkを公開する公開鍵生成部とを含み、上記電子署名生成部は、
    1=g1 r
    2=Mr
    3=g1 rxrxy
    4=Mry
    5=g2 ry
    を演算し、上記a1,a2,a3,a4,a5の組を上記署名σとして出力し、
    上記検証装置は、上記コミットメント鍵ckと上記乱数ηで処理された要素a'1,a'5を使って上記コミットメントCに対する非対話ゼロ知識証明Prf(C)と上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ')とを検証することを特徴とする署名検証システム。
  3. 請求項1記載の署名検証システムにおいて、
    上記利用者装置は、Zqに属する乱数tとηを生成する第1乱数生成部と、上記元h2と上記乱数tから開封情報H'=h2 tを計算する開封情報算出部と、署名変形部とを含み、上記コミットメント生成部は上記コミットメント鍵に含まれる上記元g、h1と上記乱数tとを使って上記情報mに対しコミットメントC=gm1 tを演算し、上記署名検証部は上記署名としてσ=(a1,a3,a4,a5)を上記署名生成装置から受信し、上記コミットメントC=Mと、上記署名生成装置が生成した公開鍵に含まれるg1,g2,X',Y'を使って次の3つのペアリング等式
    e(a1,Y')=e(g1,a5)
    e(M,a5)=e(a4,g2)
    e(a3,g2)=e(a14,X')
    が成立するか検証し、成立した場合は、上記署名変形部は上記署名σの各要素ai, i=1, 3, 4, 5、を上記乱数ηでそれぞれ処理して変形された署名σ'=(a'1, a'3, a'4, a'5)を生成して上記ゼロ知識証明生成部に与え、上記ゼロ知識証明生成部は、上記開封情報H'を使って上記コミットメントCに対し非対話ゼロ知識証明Prf(C):
    NIZK{(C,H'): e(C/gm, h2)e(h1 -1, H')=1}
    と、上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ'):
    NIZK{(C, a'4): e(C, a'5)e(a'4, g2 -1)=1}
    NIZK{(a'3, a'4): e(a'3, g2)e(a'1a'4, X'-1)=1}
    とを生成して上記乱数η出処理された要素a'1,a'5と共にm、Prf(C)、Prf(σ')を上記ブラインド署名として出力し、
    上記署名生成装置は、上記乱数r、x、yを生成する第2乱数生成部と、上記群G1、G2から生成元g1、g2を選択する生成元選択部と、X'=g1 x,Y'=g2 yを計算し、g1、g2、X',Y'を含む公開鍵pkを公開する公開鍵生成部とを含み、上記電子署名生成部は、
    1=g1 r
    3=g1 rxrxy
    4=Mry
    5=g2 ry
    を演算し、上記a1,a3,a4,a5の組を上記署名σとして出力し、
    上記検証装置は、上記コミットメント鍵ckと上記乱数η出処理された要素a'1,a'5を使って上記コミットメントCに対する非対話ゼロ知識証明Prf(C)と上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ')とを検証することを特徴とする署名検証システム。
  4. 請求項1記載の署名検証システムにおいて、
    上記利用者装置は、Zqに属する乱数tとηを生成する第1乱数生成部と、上記元h2と上記乱数tから開封情報H'=h2 tを計算する開封情報算出部と、署名変形部ととを含み、上記コミットメント生成部は上記コミットメント鍵に含まれる上記元g、h1と上記乱数tとを使って上記情報mに対しコミットメントC=gm1 tを演算し、上記署名検証部は上記署名としてσ=(a1,a3,a5)を上記署名生成装置から受信し、上記コミットメントC=Mと、上記署名生成装置が生成した公開鍵に含まれるg1,g2,X',Y',Yを使って次の2つのペアリング等式
    e(a1,g2)=e(Mg1,a5)
    e(a3,g2)=e(a1,X')
    が成立するか検証し、成立した場合は、上記署名変形部は上記署名σの各要素ai, i=1, 3, 5、を上記乱数ηでそれぞれ処理して変形された署名σ'=(a'1, a'3, a'5)を生成して上記ゼロ知識証明生成部に与え、上記ゼロ知識証明生成部は、上記開封情報H'を使って上記コミットメントCに対し非対話ゼロ知識証明Prf(C):
    NIZK{(C,H'): e(C/gm, h2)e(h1 -1, H')=1}
    と、上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ'):
    NIZK{(C, a'1): e(C, a'5 -1)e(a'1, g2)=1}
    NIZK{(a'1, a'3): e(a'3, g2)e(a'1, X'-1)=1}
    とを生成して上記乱数η出処理された要素a'5と共にm、Prf(C)、Prf(σ')を上記ブラインド署名として出力し、
    上記署名生成装置は、上記乱数r、x、yを生成する第2乱数生成部と、上記群G1、G2から生成元g1、g2を選択する生成元選択部と、X'=g1 x,Y'=g2 y,Y=g1 yを計算し、g1、g2、X',Y',Yを含む公開鍵pkを公開する公開鍵生成部とを含み、上記電子署名生成部は、
    1=Mryr
    3=Yrxrxy
    5=g2 ry
    を演算し、上記a1,a3,a5の組を上記署名σとして出力し、
    上記検証装置は、上記コミットメント鍵ckと上記乱数η出処理された要素a'5を使って上記コミットメントCに対する非対話ゼロ知識証明Prf(C)と上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ')とを検証することを特徴とする署名検証システム。
  5. 請求項1乃至4のいずれかに記載の署名検証システムにおいて、上記コミットメント鍵を予め生成し、要求に応じて上記利用者装置及び上記検証装置に与える登録装置が設けられていることを特徴とする署名検証システム。
  6. 請求項1乃至4のいずれかに記載の署名検証システムにおいて、登録装置が設けられており、上記利用者装置は、上記コミットメント鍵を生成し、上記登録装置に登録するコミットメント鍵生成部を含んでおり、上記登録装置は要求に応じて上記コミットメント鍵を上記検証装置に与えることを特徴とする署名検証システム。
  7. 素数qと、バイリニアペアリングe:G1×G2→GTが存在する位数qの群G1,G2,GTとが公開された署名検証システムに使用される、利用者装置と、署名生成装置と、検証装置とによる署名検証方法であり、
    上記利用者装置が、上記G1の元g、h1とG2の元h2とを含むコミットメント鍵ckを使って情報mに対するコミットメントCを演算し、署名要求メッセージMとして上記署名生成装置に送信するコミットメント生成段階と、
    上記署名生成装置が、上記群G1,G2の生成元g1、g2とZqに属する乱数x、y、rを使って上記利用者装置から受信した署名要求メッセージMとの演算により群G1,G2,GTのいずれかの元となる複数の要素の組をMに対する署名σとして生成し、上記利用者装置に送信する電子署名生成段階と、
    上記利用者装置が上記署名生成装置から受信した署名σの要素に対し、ペアリング等式が成立するか検証する署名検証段階と、
    検証に成功した場合は、上記利用者装置が上記コミットメントCに対する非対話ゼロ知識証明と上記署名σに対する非対話ゼロ知識証明をそれぞれ生成し、上記情報mと共にブラインド署名として上記検証装置に与えるゼロ知識証明生成段階と、
    上記検証装置が、上記公開パラメータと上記コミットメント鍵を使って、上記利用者装置から受信したコミットメントに対する非対話ゼロ知識証明と署名に対する非対話ゼロ知識証明とを検証し、検証に成功したら上記ブラインド署名を受け入れるゼロ知識証明検証段階を含むことを特徴とする署名検証方法。
  8. 請求項7記載の署名検証方法において、
    上記利用者装置が、Zqに属する乱数tとηを生成する第1乱数生成段階と、上記元h2と上記乱数tから開封情報H'=h2 tを計算する開封情報算出段階と、署名を変形する段階とを含み、上記コミットメント生成段階は上記コミットメント鍵に含まれる上記元g、h1と上記乱数tとを使って上記情報mに対しコミットメントC=gm1 tを演算し、上記署名検証段階は上記署名としてσ=(a1,a2,a3,a4,a5)を上記署名生成装置から受信し、上記コミットメントC=Mと、上記署名生成装置が生成した公開鍵に含まれるg1,g2,X',Y'を使って次の4つのペアリング等式
    e(g1,a5)=e(a1,g2)
    e(M,a5)=e(a2,g2)
    e(a2,Y')=e(a4,g2)
    e(a3,g2)=e(a14,X')
    が成立するか検証し、成立した場合は、上記署名を変形する段階は上記署名σの各要素ai, i=1,…,5、を上記乱数ηでそれぞれ処理して変形された署名σ'=(a'1, a'2, a'3, a'4, a'5)を生成して上記ゼロ知識証明生成段階に与え、上記ゼロ知識証明生成段階は、上記開封情報H'を使って上記コミットメントCに対し非対話ゼロ知識証明Prf(C):
    NIZK{(C,H'): e(C/gm, h2)e(h1 -1, H')=1}
    と、上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ'):
    NIZK{(C, a'2): e(C, a'5)e(a'2, g2 -1)=1}
    NIZK{(a'2, a'4): e(a'2, Y')e(a'4, g2 -1)=1}
    NIZK{(a'3, a'4): e(a'3, g2)e(a'1a'4, X'-1)=1}
    とを生成して上記乱数η出処理された要素a'1,a'5と共にm、Prf(C)、Prf(σ')を上記ブラインド署名として出力し、
    上記署名生成装置が、上記乱数r、x、yを生成する第2乱数生成段階と、上記群G1、G2から生成元g1、g2を選択する生成元選択段階と、X'=g1 x,Y'=g2 yを計算し、g1、g2、X',Y'を含む公開鍵pkを公開する公開鍵生成段階とを含み、上記電子署名生成段階は、
    1=g1 r
    2=Mr
    3=g1 rxrxy
    4=Mry
    5=g2 ry
    を演算し、上記a1,a2,a3,a4,a5の組を上記署名σとして出力し、
    上記検証装置による上記ゼロ知識証明検証段階は、上記コミットメント鍵ckと上記乱数ηで処理された要素a'1,a'5を使って上記コミットメントCに対する非対話ゼロ知識証明Prf(C)と上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ')とを検証することを特徴とする署名検証方法。
  9. 請求項7記載の署名検証方法において、
    上記利用者装置が、Zqに属する乱数tと乱数ηを生成する第1乱数生成段階と、上記元h2と上記乱数tから開封情報H'=h2 tを計算する開封情報算出段階と、署名変形段階とを含み、上記コミットメント生成段階は上記コミットメント鍵に含まれる上記元g、h1と上記乱数tとを使って上記情報mに対しコミットメントC=gm1 tを演算し、上記署名検証段階は上記署名としてσ=(a1,a3,a4,a5)を上記署名生成装置から受信し、上記コミットメントC=Mと、上記署名生成装置が生成した公開鍵に含まれるg1,g2,X',Y'を使って次の3つのペアリング等式
    e(a1,Y')=e(g1,a5)
    e(M,a5)=e(a4,g2)
    e(a3,g2)=e(a14,X')
    が成立するか検証し、成立した場合は、上記署名変形段階は上記署名σの各要素ai, i=1, 3, 4, 5、を上記乱数ηでそれぞれ処理して変形された署名σ'=(a'1, a'3, a'4, a'5)を生成して上記ゼロ知識証明生成段階に与え、上記ゼロ知識証明生成段階は、上記開封情報H'を使って上記コミットメントCに対し非対話ゼロ知識証明Prf(C):
    NIZK{(C,H'): e(C/gm, h2)e(h1 -1, H')=1}
    と、上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ'):
    NIZK{(C, a'4): e(C, a'5)e(a'4, g2 -1)=1}
    NIZK{(a'3, a'4): e(a'3, g2)e(a'1a'4, X'-1)=1}
    とを生成して上記乱数ηで処理された要素a'1,a'5と共にm、Prf(C)、Prf(σ')を上記ブラインド署名として出力し、
    上記署名生成装置が、上記乱数r、x、yを生成する第2乱数生成段階と、上記群G1、G2から生成元g1、g2を選択する生成元選択段階と、X'=g1 x,Y'=g2 yを計算し、g1、g2、X',Y'を含む公開鍵pkを公開する公開鍵生成段階とを含み、上記電子署名生成段階は、
    1=g1 r
    3=g1 rxrxy
    4=Mry
    5=g2 ry
    を演算し、上記a1,a3,a4,a5の組を上記署名σとして出力し、
    上記検証装置による上記ゼロ知識証明検証段階は、上記コミットメント鍵ckと上記乱数ηで処理された要素a'1,a'5を使って上記コミットメントCに対する非対話ゼロ知識証明Prf(C)と上記上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ')とを検証することを特徴とする署名検証方法。
  10. 請求項7記載の署名検証方法において、
    上記利用者装置が、Zqに属する乱数tとηを生成する第1乱数生成段階と、上記元h2と上記乱数tから開封情報H'=h2 tを計算する開封情報算出段階と、署名変形段階とを含み、上記コミットメント生成段階は上記コミットメント鍵に含まれる上記元g、h1と上記乱数tとを使って上記情報mに対しコミットメントC=gm1 tを演算し、上記署名検証段階は上記署名としてσ=(a1,a3,a5)を上記署名生成装置から受信し、上記コミットメントC=Mと、上記署名生成装置が生成した公開鍵に含まれるg1,g2,X',Y',Yを使って次の2つのペアリング等式
    e(a1,g2)=e(Mg1,a5)
    e(a3,g2)=e(a1,X')
    が成立するか検証し、成立した場合は、上記署名変形段階は上記署名σの各要素ai, i=1, 3, 5、を上記乱数ηでそれぞれ処理して変形された署名σ'=(a'1, a'3, a'5)を生成して上記ゼロ知識証明生成段階に与え、上記ゼロ知識証明生成段階は、上記開封情報H'を使って上記コミットメントCに対し非対話ゼロ知識証明Prf(C):
    NIZK{(C,H'): e(C/gm, h2)e(h1 -1, H')=1}
    と、上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ'):
    NIZK{(C, a'1): e(C, a'5 -1)e(a'1, g2)=1}
    NIZK{(a'1, a'3): e(a'3, g2)e(a'1, X'-1)=1}
    とを生成して上記乱数ηで処理された要素a'5と共にm、Prf(C)、Prf(σ')を上記ブラインド署名として出力し、
    上記署名生成装置が、上記乱数r、x、yを生成する第2乱数生成段階と、上記群G1、G2から生成元g1、g2を選択する生成元選択段階と、X'=g1 x,Y'=g2 y,Y=g1 yを計算し、g1、g2、X',Y',Yを含む公開鍵pkを公開する公開鍵生成段階とを含み、上記電子署名生成段階は、
    1=Mryr
    3=Yrxrxy
    5=g2 ry
    を演算し、上記a1,a3,a5の組を上記署名σとして出力し、
    上記検証装置による上記ゼロ知識証明検証段階は、上記コミットメント鍵ckと上記乱数ηで処理された要素a'5を使って上記コミットメントCに対する非対話ゼロ知識証明Prf(C)と上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ')とを検証することを特徴とする署名検証方法。
  11. 請求項7乃至10のいずれかに記載の署名検証方法において、登録装置が設けられており、上記登録装置が上記コミットメント鍵を予め生成し、要求に応じて上記利用者装置及び上記検証装置に与える段階を含むことを特徴とする署名検証方法。
  12. 請求項7乃至10のいずれかに記載の署名検証方法において、登録装置が設けられており、上記利用者装置が、上記コミットメント鍵を生成し、上記登録装置に登録するコミットメント鍵生成段階を含んでおり、上記登録装置が、要求に応じて上記コミットメント鍵を上記検証装置に与える段階を含んでいることを特徴とする署名検証方法。
  13. 素数qと、バイリニアペアリングe:G1×G2→GTが存在する位数qの群G1,G2,GTとが公開された署名検証システムに使用される、利用者装置と、署名生成装置とによるブラインド署名生成方法であり、
    上記利用者装置が、上記G1の元g、h1とG2の元h2とを含むコミットメント鍵ckを使って情報mに対するコミットメントCを演算し、署名要求メッセージMとして上記署名生成装置に送信するコミットメント生成段階と、
    上記署名生成装置が、上記群G1,G2の生成元g1、g2とZqに属する乱数x、y、rを使って上記利用者装置から受信した署名要求メッセージMとの演算により群G1,G2,GTのいずれかの元となる複数の要素の組をMに対する署名σとして生成し、上記利用者装置に送信する電子署名生成段階と、
    上記利用者装置が上記署名生成装置から受信した署名σの要素に対し、ペアリング等式が成立するか検証する署名検証段階と、
    検証に成功した場合は、上記利用者装置が上記コミットメントCに対する非対話ゼロ知識証明と上記署名σに対する非対話ゼロ知識証明をそれぞれ生成し、上記情報mと共にブラインド署名として出力するゼロ知識証明生成段階と、を含むことを特徴とするブラインド署名生成方法。
  14. 請求項13記載のブラインド署名生成方法において、
    上記利用者装置が、Zqに属する乱数tとηを生成する第1乱数生成段階と、上記元h2と上記乱数tから開封情報H'=h2 tを計算する開封情報算出段階と、署名を変形する段階とを含み、上記コミットメント生成段階は上記コミットメント鍵に含まれる上記元g、h1と上記乱数tとを使って上記情報mに対しコミットメントC=gm1 tを演算し、上記署名検証段階は上記署名としてσ=(a1,a2,a3,a4,a5)を上記署名生成装置から受信し、上記コミットメントC=Mと、上記署名生成装置が生成した公開鍵に含まれるg1,g2,X',Y'を使って次の4つのペアリング等式
    e(g1,a5)=e(a1,g2)
    e(M,a5)=e(a2,g2)
    e(a2,Y')=e(a4,g2)
    e(a3,g2)=e(a14,X')
    が成立するか検証し、成立した場合は、上記署名を変形する段階は上記署名σの各要素ai, i=1,…,5、を上記乱数ηでそれぞれ処理して変形された署名σ'=(a'1, a'2, a'3, a'4, a'5)を生成して上記ゼロ知識証明生成段階に与え、上記ゼロ知識証明生成段階は、上記開封情報H'を使って上記コミットメントCに対し非対話ゼロ知識証明Prf(C):
    NIZK{(C,H'): e(C/gm, h2)e(h1 -1, H')=1}
    と、上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ'):
    NIZK{(C, a'2): e(C, a'5)e(a'2, g2 -1)=1}
    NIZK{(a'2, a'4): e(a'2, Y')e(a'4, g2 -1)=1}
    NIZK{(a'3, a'4): e(a'3, g2)e(a'1a'4, X'-1)=1}
    とを生成して上記乱数ηで処理された要素a'1,a'5と共にm、Prf(C)、Prf(σ')を上記ブラインド署名として出力し、
    上記署名生成装置が、上記乱数r、x、yを生成する第2乱数生成段階と、上記群G1、G2から生成元g1、g2を選択する生成元選択段階と、X'=g1 x,Y'=g2 yを計算し、g1、g2、X',Y'を含む公開鍵pkを公開する公開鍵生成段階とを含み、上記電子署名生成段階は、
    1=g1 r
    2=Mr
    3=g1 rxrxy
    4=Mry
    5=g2 ry
    を演算し、上記a1,a2,a3,a4,a5の組を上記署名σとして出力することを特徴とするブラインド署名生成方法。
  15. 請求項13記載のブラインド署名生成方法において、
    上記利用者装置が、Zqに属する乱数tと乱数ηを生成する第1乱数生成段階と、上記元h2と上記乱数tから開封情報H'=h2 tを計算する開封情報算出段階と、署名変形段階とを含み、上記コミットメント生成段階は上記コミットメント鍵に含まれる上記元g、h1と上記乱数tとを使って上記情報mに対しコミットメントC=gm1 tを演算し、上記署名検証段階は上記署名としてσ=(a1,a3,a4,a5)を上記署名生成装置から受信し、上記コミットメントC=Mと、上記署名生成装置が生成した公開鍵に含まれるg1,g2,X',Y'を使って次の3つのペアリング等式
    e(a1,Y')=e(g1,a5)
    e(M,a5)=e(a4,g2)
    e(a3,g2)=e(a14,X')
    が成立するか検証し、成立した場合は、上記署名変形段階は上記署名σの各要素ai, i=1, 3, 4, 5、を上記乱数ηでそれぞれ処理して変形された署名σ'=(a'1, a'3, a'4, a'5)を生成して上記ゼロ知識証明生成段階に与え、上記ゼロ知識証明生成段階は、上記開封情報H'を使って上記コミットメントCに対し非対話ゼロ知識証明Prf(C):
    NIZK{(C,H'): e(C/gm, h2)e(h1 -1, H')=1}
    と、上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ'):
    NIZK{(C, a'4): e(C, a'5)e(a'4, g2 -1)=1}
    NIZK{(a'3, a'4): e(a'3, g2)e(a'1a'4, X'-1)=1}
    とを生成して上記乱数ηで処理された要素a'1,a'5と共にm、Prf(C)、Prf(σ')を上記ブラインド署名として出力し、
    上記署名生成装置が、上記乱数r、x、yを生成する第2乱数生成段階と、上記群G1、G2から生成元g1、g2を選択する生成元選択段階と、X'=g1 x,Y'=g2 yを計算し、g1、g2、X',Y'を含む公開鍵pkを公開する公開鍵生成段階とを含み、上記電子署名生成段階は、
    1=g1 r
    3=g1 rxrxy
    4=Mry
    5=g2 ry
    を演算し、上記a1,a3,a4,a5の組を上記署名σとして出力することを特徴とするブラインド署名生成方法。
  16. 請求項13記載のブラインド署名生成方法において、
    上記利用者装置が、Zqに属する乱数tとηを生成する第1乱数生成段階と、上記元h2と上記乱数tから開封情報H'=h2 tを計算する開封情報算出段階と、署名変形段階とを含み、上記コミットメント生成段階は上記コミットメント鍵に含まれる上記元g、h1と上記乱数tとを使って上記情報mに対しコミットメントC=gm1 tを演算し、上記署名検証段階は上記署名としてσ=(a1,a3,a5)を上記署名生成装置から受信し、上記コミットメントC=Mと、上記署名生成装置が生成した公開鍵に含まれるg1,g2,X',Y',Yを使って次の2つのペアリング等式
    e(a1,g2)=e(Mg1,a5)
    e(a3,g2)=e(a1,X')
    が成立するか検証し、成立した場合は、上記署名変形段階は上記署名σの各要素ai, i=1, 3, 5、を上記乱数ηでそれぞれ処理して変形された署名σ'=(a'1, a'3, a'5)を生成して上記ゼロ知識証明生成部に与え、上記ゼロ知識証明生成段階は、上記開封情報H'を使って上記コミットメントCに対し非対話ゼロ知識証明Prf(C):
    NIZK{(C,H'): e(C/gm, h2)e(h1 -1, H')=1}
    と、上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ'):
    NIZK{(C, a'1): e(C, a'5 -1)e(a'1, g2)=1}
    NIZK{(a'1, a'3): e(a'3, g2)e(a'1, X'-1)=1}
    とを生成して上記乱数ηで処理された要素a'5と共にm、Prf(C)、Prf(σ')を上記ブラインド署名として出力し、
    上記署名生成装置が、上記乱数r、x、yを生成する第2乱数生成段階と、上記群G1、G2から生成元g1、g2を選択する生成元選択段階と、X'=g1 x,Y'=g2 y,Y=g1 yを計算し、g1、g2、X',Y',Yを含む公開鍵pkを公開する公開鍵生成段階とを含み、上記電子署名生成段階は、
    1=Mryr
    3=Yrxrxy
    5=g2 ry
    を演算し、上記a1,a3,a5の組を上記署名σとして出力することを特徴とするブラインド署名生成方法。
  17. 素数qと、ペアリングeと、ペアリングe:G1×G2→GTが存在する位数qの群G1,G2,GTとが公開された署名検証システムに使用される利用者装置であり、
    上記G1の元g、h1とG2の元h2とを含むコミットメント鍵ckを使って情報mに対するコミットメントCを演算し、署名要求メッセージMとして署名生成装置に送信するコミットメント生成部と、
    上記署名生成装置から受信した署名σの要素に対し、ペアリング等式が成立するか検証する署名検証部と、
    検証に成功した場合は、上記コミットメントCに対する非対話ゼロ知識証明と上記署名σに対する非対話ゼロ知識証明をそれぞれ生成し、上記情報mと共にブラインド署名として出力するゼロ知識証明生成部と、を含むことを特徴とする利用者装置。
  18. 請求項17記載の利用者装置は、更に、Zqに属する乱数tとηを生成する第1乱数生成部と、上記元h2と上記乱数tから開封情報H'=h2 tを計算する開封情報算出部と、署名変更部とを含み、
    上記コミットメント生成部は上記コミットメント鍵に含まれる上記元g、h1と上記乱数tとを使って上記情報mに対しコミットメントC=gm1 tを演算し、上記署名検証部は上記署名として上記署名生成装置が
    1=g1 r
    2=Mr
    3=g1 rxrxy
    4=Mry
    5=g2 ry
    を演算して生成した生成した署名σ=(a1,a2,a3,a4,a5)を上記署名生成装置から受信し、上記コミットメントC=Mと、上記署名生成装置が生成した公開鍵に含まれるg1,g2,X',Y'を使って次の4つのペアリング等式
    e(g1,a5)=e(a1,g2)
    e(M,a5)=e(a2,g2)
    e(a2,Y')=e(a4,g2)
    e(a3,g2)=e(a14,X')
    が成立するか検証し、成立した場合は、上記署名変形部は上記署名σの各要素ai, i=1,…,5、を上記乱数ηでそれぞれ処理して変形された署名σ'=(a'1, a'2, a'3, a'4, a'5)を生成して上記ゼロ知識証明生成部に与え、上記ゼロ知識証明生成部は、上記開封情報H'を使って上記コミットメントCに対し非対話ゼロ知識証明Prf(C):
    NIZK{(C,H'): e(C/gm, h2)e(h1 -1, H')=1}
    と、上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ'):
    NIZK{(C, a'2): e(C, a'5)e(a'2, g2 -1)=1}
    NIZK{(a'2, a'4): e(a'2, Y')e(a'4, g2 -1)=1}
    NIZK{(a'3, a'4): e(a'3, g2)e(a'1a'4, X'-1)=1}
    とを生成して上記乱数ηで処理された要素a'1,a'5と共にm、Prf(C)、Prf(σ')を上記ブラインド署名として出力することを特徴とする利用者装置。
  19. 請求項17記載の利用者装置は、更に、Zqに属する乱数tとηを生成する第1乱数生成部と、上記元h2と上記乱数tから開封情報H'=h2 tを計算する開封情報算出部と、署名変形部とを含み、
    上記コミットメント生成部は上記コミットメント鍵に含まれる上記元g、h1と上記乱数tとを使って上記情報mに対しコミットメントC=gm1 tを演算し、上記署名検証部は上記署名として上記署名生成装置が
    1=g1 r
    3=g1 rxrxy
    4=Mry
    5=g2 ry
    を演算して生成した上記署名σ=(a1,a3,a4,a5)を上記署名生成装置から受信し、上記コミットメントC=Mと、上記署名生成装置が生成した公開鍵に含まれるg1,g2,X',Y'を使って次の3つのペアリング等式
    e(a1,Y')=e(g1,a5)
    e(M,a5)=e(a4,g2)
    e(a3,g2)=e(a14,X')
    が成立するか検証し、成立した場合は、上記署名変形部は上記署名σの各要素ai, i=1,…,5、を上記乱数ηでそれぞれ処理して変形された署名σ'=(a'1, a'2, a'3, a'4, a'5)を生成して上記ゼロ知識証明生成部に与え、上記ゼロ知識証明生成部は、上記開封情報H'を使って上記コミットメントCに対し非対話ゼロ知識証明Prf(C):
    NIZK{(C,H'): e(C/gm, h2)e(h1 -1, H')=1}
    と、上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ'):
    NIZK{(C, a'4): e(C, a'5)e(a'4, g2 -1)=1}
    NIZK{(a'3, a'4): e(a'3, g2)e(a'1a'4, X'-1)=1}
    とを生成して上記乱数ηで処理された要素a'1,a'5と共にm、Prf(C)、Prf(σ')を上記ブラインド署名として出力することを特徴とする利用者装置。
  20. 請求項17記載の利用者装置は、更に、Zqに属する乱数tとηを生成する第1乱数生成部と、上記元h2と上記乱数tから開封情報H'=h2 tを計算する開封情報算出部と、署名変形部とを含み、
    上記コミットメント生成部は上記コミットメント鍵に含まれる上記元g、h1と上記乱数tとを使って上記情報mに対しコミットメントC=gm1 tを演算し、上記署名検証部は上記署名として上記署名生成装置が
    1=Mryr
    3=Yrxrxy
    5=g2 ry
    を演算して生成した署名σ=(a1,a3,a5)を上記署名生成装置から受信し、上記コミットメントC=Mと、上記署名生成装置が生成した公開鍵に含まれるg1,g2,X',Y',Yを使って次の2つのペアリング等式
    e(a1,g2)=e(Mg1,a5)
    e(a3,g2)=e(a1,X')
    が成立するか検証し、成立した場合は、上記署名変形部は上記署名σの各要素ai, i=1, 3, 5、を上記乱数ηでそれぞれ処理して変形された署名σ'=(a'1, a'3, a'5)を生成して上記ゼロ知識証明生成部に与え、上記ゼロ知識証明生成部は、上記開封情報H'を使って上記コミットメントCに対し非対話ゼロ知識証明Prf(C):
    NIZK{(C,H'): e(C/gm, h2)e(h1 -1, H')=1}
    と、上記変形された署名σ'に対する非対話ゼロ知識証明Prf(σ'):
    NIZK{(C, a'1): e(C, a'5 -1)e(a'1, g2)=1}
    NIZK{(a'1, a'3): e(a'3, g2)e(a'1, X'-1)=1}
    とを生成して上記乱数ηで処理された要素a'5と共にm、Prf(C)、Prf(σ')を上記ブラインド署名として出力することを特徴とする利用者装置。
  21. 請求項17乃至20のいずれかに記載のブラインド署名を生成する利用者装置としてコンピュータを機能させるためのブラインド署名生成プログラム。
JP2009043453A 2009-02-26 2009-02-26 署名検証システム、署名検証方法、ブラインド署名生成方法、利用者装置、及びブラインド署名生成プログラム Expired - Fee Related JP5330858B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009043453A JP5330858B2 (ja) 2009-02-26 2009-02-26 署名検証システム、署名検証方法、ブラインド署名生成方法、利用者装置、及びブラインド署名生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009043453A JP5330858B2 (ja) 2009-02-26 2009-02-26 署名検証システム、署名検証方法、ブラインド署名生成方法、利用者装置、及びブラインド署名生成プログラム

Publications (2)

Publication Number Publication Date
JP2010200065A true JP2010200065A (ja) 2010-09-09
JP5330858B2 JP5330858B2 (ja) 2013-10-30

Family

ID=42824304

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009043453A Expired - Fee Related JP5330858B2 (ja) 2009-02-26 2009-02-26 署名検証システム、署名検証方法、ブラインド署名生成方法、利用者装置、及びブラインド署名生成プログラム

Country Status (1)

Country Link
JP (1) JP5330858B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013198133A (ja) * 2012-03-23 2013-09-30 Nippon Telegr & Teleph Corp <Ntt> 鍵交換システム、鍵交換方法、要求装置、応答装置、およびプログラム
JP2014515125A (ja) * 2011-04-29 2014-06-26 インターナショナル・ビジネス・マシーンズ・コーポレーション データの暗号化のための方法、コンピュータ・プログラム、および装置
JP2015216628A (ja) * 2014-05-09 2015-12-03 富士通株式会社 確認可能なノイズを使用した電気使用データ開示のための信頼できるプライバシィ保護方法およびプログラム
JPWO2014192086A1 (ja) * 2013-05-28 2017-02-23 株式会社日立製作所 生体署名システム、署名検証方法、登録端末、署名生成端末および署名検証装置
CN115277197A (zh) * 2022-07-27 2022-11-01 深圳前海微众银行股份有限公司 模型所有权验证方法、电子设备、介质及程序产品

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JPN6013023748; Marc Fischlin: 'Round-optimal composable blind signatures in the common reference string model' Lecture Notes in Computer Science Vol.4117, 2006, p.60-77 *
JPN6013023749; Matthew Green and Susan Hohenberger: 'Universally Composable Adaptive Oblivious Transfer' Cryptology ePrint Archive Report 2008/163, 20081028, The Internet *
JPN6013023750; 大久保美也子,阿部正幸: '大域的合成可能なブラインド署名の安全性に関する再考' 2009年暗号と情報セキュリティシンポジウム講演論文集 , 20090120 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014515125A (ja) * 2011-04-29 2014-06-26 インターナショナル・ビジネス・マシーンズ・コーポレーション データの暗号化のための方法、コンピュータ・プログラム、および装置
US9544144B2 (en) 2011-04-29 2017-01-10 International Business Machines Corporation Data encryption
JP2013198133A (ja) * 2012-03-23 2013-09-30 Nippon Telegr & Teleph Corp <Ntt> 鍵交換システム、鍵交換方法、要求装置、応答装置、およびプログラム
JPWO2014192086A1 (ja) * 2013-05-28 2017-02-23 株式会社日立製作所 生体署名システム、署名検証方法、登録端末、署名生成端末および署名検証装置
JP2015216628A (ja) * 2014-05-09 2015-12-03 富士通株式会社 確認可能なノイズを使用した電気使用データ開示のための信頼できるプライバシィ保護方法およびプログラム
CN115277197A (zh) * 2022-07-27 2022-11-01 深圳前海微众银行股份有限公司 模型所有权验证方法、电子设备、介质及程序产品
CN115277197B (zh) * 2022-07-27 2024-01-16 深圳前海微众银行股份有限公司 模型所有权验证方法、电子设备、介质及程序产品

Also Published As

Publication number Publication date
JP5330858B2 (ja) 2013-10-30

Similar Documents

Publication Publication Date Title
US7634085B1 (en) Identity-based-encryption system with partial attribute matching
JP5736816B2 (ja) 認証装置、認証方法、プログラム、及び署名生成装置
TW201733303A (zh) 決定用於資訊的安全交換的共同私密,及階層化的決定性加密金鑰
TWI813616B (zh) 用以獲取數位簽署資料之電腦實行方法及系統
WO2013031533A1 (ja) 情報処理装置、情報処理方法、及びプログラム
Chen et al. Light-weight and privacy-preserving authentication protocol for mobile payments in the context of IoT
WO2013031414A1 (ja) 署名検証装置、署名検証方法、プログラム、及び記録媒体
Al-Riyami Cryptographic schemes based on elliptic curve pairings
JPWO2010053036A1 (ja) データ参照システム、データベース提示分散システム、及びデータ参照方法
TW202029693A (zh) 用以分配數位簽署資料之份額的電腦實施系統及方法
CN114467280A (zh) 使用冷钱包生成数字签名
JP2004208263A (ja) バイリニアペアリングを用いた個人識別情報に基づくブラインド署名装置及び方法
WO2013031555A1 (ja) 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
KR20210139344A (ko) 데이터 기반 활동을 수행하는 방법 및 장치
JP5330858B2 (ja) 署名検証システム、署名検証方法、ブラインド署名生成方法、利用者装置、及びブラインド署名生成プログラム
TW202318833A (zh) 臨界簽章方案
WO2013129084A1 (ja) 情報処理装置、情報処理方法、及びプログラム
WO2013129119A1 (ja) 情報処理装置、情報処理方法、及びプログラム
JP5314449B2 (ja) 電子署名検証システム、電子署名装置、検証装置、電子署名検証方法、電子署名方法、検証方法、電子署名プログラム、検証プログラム
Liu et al. An efficient identity-based online/offline signature scheme without key escrow
CN117917041A (zh) 生成共享加密密钥
JP5227764B2 (ja) 電子署名検証システム、電子署名装置、検証装置、電子署名検証方法、電子署名方法、検証方法、電子署名プログラム、検証プログラム
US20220345312A1 (en) Zero-knowledge contingent payments protocol for granting access to encrypted assets
WO2023055371A1 (en) Replicated secret share generation for distributed symmetric cryptography
Chen et al. Blockchain as a CA: A provably secure signcryption scheme leveraging blockchains

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110228

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130628

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130716

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130726

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees