JP4773941B2 - 代理署名装置、署名者装置、署名検証装置及びそれらのプログラム - Google Patents
代理署名装置、署名者装置、署名検証装置及びそれらのプログラム Download PDFInfo
- Publication number
- JP4773941B2 JP4773941B2 JP2006333269A JP2006333269A JP4773941B2 JP 4773941 B2 JP4773941 B2 JP 4773941B2 JP 2006333269 A JP2006333269 A JP 2006333269A JP 2006333269 A JP2006333269 A JP 2006333269A JP 4773941 B2 JP4773941 B2 JP 4773941B2
- Authority
- JP
- Japan
- Prior art keywords
- signature
- unit
- signer
- function
- cyclic group
- 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.)
- Expired - Fee Related
Links
Images
Description
このような計算量理論に基づく情報セキュリティ技術の1つに署名技術がある。
計算量理論に基づく署名技術としては、RSA署名や楕円ElGamal署名などが知られている。
また、署名者の匿名性を守りつつ電子署名を行う匿名署名技術も存在する。この匿名署名には大別して以下の2つの方法がある。
・署名が確かにグループのメンバーによって作成されたことを第三者が検証できる。
・署名がメンバーの誰によって作成されたかに関する情報を第三者は得ることができない。
・グループ管理者は署名がメンバーの誰によって作成されたかを知ることができる。
・署名のグループを決定する為に予めグループ管理者と通信する必要がある。
なお、この最後の性質は、グループからメンバーを排除したり新たにメンバーを加えたり、グループメンバの一部だけを含む子グループを作成する場合にもグループ管理者と通信する必要があることを意味している。
・署名が確かにグループのメンバーによって作成されたことを第三者が検証できる。
・署名がメンバーの誰によって作成されたかに関する情報を第三者は得ることができない。
・グループ管理者は存在しない。グループは公開鍵リストの中から署名者が任意に指定できる。
この方法にはグループ管理者が存在しない。署名者は、自身が所有する公開鍵リストから任意に公開鍵を選び、自分の公開鍵、秘密鍵、及び選んだ公開鍵から自分を含む任意のグループに関して匿名署名を生成できる。
通常の電子署名は、署名者のみが知り得る秘密鍵を用い、公開鍵暗号方式によって署名対象のメッセージを暗号化した暗号文の一種である。署名検証者は、署名者の公開鍵を用いてその暗号文が復号できることを根拠に、確かにその電子署名を生成したのは秘密鍵を知り得る署名者であると納得する。
まず、署名検証装置は受信部で、署名対象のメッセージmと署名σ=(t,w,c,z)と公開鍵pkとを受信し、これらを記憶部に格納する。署名検証装置は、第1関数演算部で関数値h’=H(m,t)を算出し、第1ペアリング演算部でa’=e(z,g2)・e(g1,pk)cを算出し、第2ペアリング演算部でb’=e(z,h’)・e(g1,w)cを算出し、第2関数演算部でH’(m,t,w,a’,b’)を算出する。そして、署名検証装置の署名判定部は、c=H’(m,t,w,a’,b’)を満たすか否かを判定し、これが成立した場合に署名σを受理する旨を出力し、これが成立しなかった場合に署名σを拒絶する旨を出力する。
上述のように正当に署名生成が代理署名装置に委託された場合、h=H(m,t)を満たす。また、f=e(g1,h)であり、g3=e(g1,g2)∈G3であるため、代理署名装置が生成するa=(g3)r∈G3及びb=fr∈G3は、
a=e(g1,g2)r∈G3 …(1)
b=e(g1,h)r∈G3 …(2)
と変形できる。
a’=e((g1)r-sk・c,g2)・e(g1,(g2)sk)c∈G3 …(3)
b’=e((g1)r-sk・c,h)・e(g1,hsk)c∈G3 …(4)
と変形できる。後述のようにペアリング関数eには、楕円曲線上の任意の3点R1,R2,R3に対して、e(R1・R2,R3)=e(R1,R3)・e(R2,R3)とe(R1,R2・R3)=e(R1,R2)・e(R1,R3)との関係が成り立つ。なお、ここでのR1・R2やR2・R3は、楕円曲線上の有理点のなす巡回群での演算であり、これらの演算は楕円加算である。一方、e(R1,R3)・e(R2,R3)やe(R1,R2)・e(R1,R3)は、有限体の乗法群での演算であり、これらの演算は乗算である。
a’=e((g1)r-sk・c,g2)・e(g1,(g2)sk)c∈G3
=e(g1,g2)r-sk・c・e(g1,g2)sk・c
=e(g1,g2)r ∈G3 …(5)
b’=e((g1)r-sk・c,h)・e(g1,h)sk・c
=e(g1,h)r-sk・c・e(g1,h)sk・c
=e(g1,h)r …(6)
(1)(2)(5)(6)から分かるように、正当に署名生成が代理署名装置に委託され署名が生成された場合、a=a’,b=b’となり、H’(m,t,w,a’,b’)=H’(m,t,w,a,b)=cとなるため、署名σは署名検証装置に受理される。
e(rk,g2)=e((g1)sk,g2)=e(g1,g2)sk…(7)
e(g1,pk)=e(g1,(g2)sk)=e(g1,g2)sk…(8)
一方、署名生成鍵rk及び公開鍵pkの少なくとも一方が不正であり、pk=(g2)sk∈G2或いはrk=(g1)sk∈G1を満たさない場合、e(rk,g2)≠e(g1,pk)となり、署名生成鍵rk及び公開鍵pkは受理されない。これにより、代理署名装置が不正な鍵によって署名を生成することを防止できる。
e(rk,h’’)=e(rk,h’’)=e(g1,h)sk …(9)
e(g1,w)=e(g1,hsk)=e(g1,h)sk…(10)
一方、t及びwのいずれかが不正であり、w=hsk∈G2或いはh=H(m,t)=h’’∈G2を満たさない場合、e(rk,h’’)≠e(g1,w)となり、wやtは受理されない。これにより、代理署名装置が不正なwやtによって署名を生成することを防止できる。
まず、署名検証装置は受信部で署名対象のメッセージm(i)と署名σ=(t(i),(w(k))∀k∈L,(c(k))∀k∈L,(z(k))∀k∈L)と各公開鍵pk(k)とを受信し、これらを記憶部に格納する。次に署名検証装置は、第1関数演算部で関数値h(i)’=H(m(i),t(i))を算出し、第1ペアリング演算部でa(k)’=e(z(k),g2)・e(g1,pk(k))c(k)を算出し、第2ペアリング演算部でb(k)’=e(z(k),h(i)’)・e(g1,w(k))c(k)を算出し、第2関数演算部でH’(m(i),t(i),(w(k))∀k∈L,(a(k)’)∀k∈L,(b(k)’)∀k∈L)算出する。そして、署名検証装置は、署名判定部でH’(m(i),t(i),(w(k))∀k∈L,(a(k)’)∀k∈L,(b(k)’)∀k∈L)=Σk∈Lc(k) mod pを満たすか否かを判定し、これが成立した場合に署名σを受理する旨を出力し、これが成立しなかった場合に署名σを拒絶する旨を出力する。
真の署名者はi番目(i∈L)の署名者装置である。代理署名装置は、i番目の署名者装置に対応するiについては、a(i)=(g3)r∈G3,b(i)=fr∈G3,f=e(g1,h(i))∈G3によってa(i),b(i)を求め、それ以外のj∈L(j≠i)については、任意にz(j)とw(j)を選択し、a(j)=e(z(j),g2)・e(g1,pk(j))c(j)∈G3,b(j)=e(z(j),h(i))・e(g1,w(j))c(j)∈G3によってa(j),b(j)を求める。そして、代理署名装置は、i番目の署名者装置の署名生成鍵rk(i)を用い、z(i)=(g1)r/{rk(i)}c(i)∈G1としている。このz(i)により、a(i),b(i)も、a(i)=e(z(i),g2)・e(g1,pk(i))c(i)∈G3,b(i)=e(z(i),h(i))・e(g1,w(i))c(i)∈G3と変換でき、jに対応するa(j),b(j)と同様の構成とできる。これにより、真の署名者装置に対応するiを知らない署名検証装置でも、署名σ及びメッセージm(i)から、署名グループを構成する署名者装置に対応するすべてのk∈Lに対し、a(k)’,b(k)’を算出することができ、H’(m(i),t(i),(w(k))∀k∈L,(a(k)’)∀k∈L,(b(k)’)∀k∈L)=Σk∈Lc(k) mod pの判定を行うことができる。
〔前提事項〕
まず、本形態の前提事項について説明する。
[bilinear group]
ペアリング可能な楕円曲線を用いるとbilinear groupと呼ばれる以下の同型写像e,ψをもつ巡回群の組G1,G2,G3を作れることがよく知られている(参考文献1:星野文学,鈴木幸太郎,小林鉄太郎,“Pairingを用いたRevocable DDHとその応用”,SCIS 2005, 1609-1612)。
・eは非退化双線形写像e:G1×G2→G3
・ψは同型写像ψ:G2→G1
次に、位数q(一般的にqは素数)の有限体Fq上で定義された楕円曲線について説明する。
一般に、有限体Fq上で定義された楕円曲線E/Fqとは、a1,a2,a3,a4,a6∈E/Fqとして、等式
E/Fq: y2+a1・x・y+a3・y=x3+a2・x2+a4・x+a6 …(11)
を満たす点(x,y)の集合に無限遠点と呼ばれる特別な点Oを付加したものである。有限体Fq上に定義された楕円曲線E/Fq上の任意の2点に対して楕円加算と呼ばれる二項演算+及び楕円曲線E/Fq上の任意の1点に対して楕円逆元と呼ばれる単項演算−がそれぞれ定義できる。また、この楕円加算に関して群をなすこと及び楕円加算を用いて楕円スカラー倍算と呼ばれる演算が定義できることはよく知られている。
なお、本形態に用いる楕円曲線E/Fqは、非trace-2の非超特異楕円曲線であることが望ましい。trace-2の楕円曲線及び超特異楕円曲線では、巡回群上のDDH問題を多項式時間で解くアルゴリズムが知られており、署名の安全性要件を満たさなくなるからである。
(φ2‐t・φ+q)・R=O …(13)
を満たす(ただし、tは、q,a1,a2,a3,a4,a6によって一意に決定される整数であり、トレースと呼ばれる)。ここで、フロベニウス写像φに関する多項式φ2‐t・φ+qを特性多項式と呼ぶ。楕円曲線をE[p]に限定すると、楕円スカラー倍はZ/pZで考えればよい。Z/pZ係数の特性多項式は分解体上で、
φ2‐t・φ+q=(φ‐λ1)(φ‐λ2) …(14)
と分解でき、λ1、λ2をフロベニウス写像φの固有値と呼ぶ。以下においては、λ1、λ2∈Z/pZでかつλ1≠λ2である場合を考える。線形空間であるE[p]の線形変換関数ψλ1,ψλ2(ただし、下付き添え字のλ1及びλ2は、それぞれλ1及びλ2を表す。)を
ψλ1=(λ1‐λ2)-1(φ‐λ2) …(15)
ψλ2=(λ2‐λ1)-1(φ‐λ1) …(16)
と定義すると、任意のE[p]上の点Rに対して、
P=ψλ1R=(λ1‐λ2)-1(φR‐λ2R) …(17)
Q=ψλ2R=(λ2‐λ1)-1(φR‐λ1R) …(18)
なるE[p]上の点P,Qが存在する。
次に、ペアリング(pairing)関数について説明する。
μpを、楕円曲線の定義体の代数閉体上の乗法単位元1のp乗根の作る乗法群とする。参考文献3:「Alfred. J. Menezes,ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS, KLUWER ACADEMIC PUBLISHERS, ISBN0-7923-9368-6,pp. 61-81」に示すように、ペアリング関数eとは、
e:E[p]×E[p]=μp …(19)
なる関数であり、次の性質を持つ。
[1]E[p]上の任意の点R1に対して、e(R1,R1)=1が成り立つ。
[2]E[p]上の任意の2点R1、R2に対して、e(R1,R2)=e(R2,R1)−1が成り立つ。
[3]E[p]上の任意の3点R1,R2,R3に対して、e(R1・R2,R3)=e(R1,R3)・e(R2,R3)であり、e(R1,R2・R3)=e(R1,R2)・e(R1,R3)が成り立つ。なお、「R1・R2」及び「R2・R3」の「・」は、E[p]上で定義された楕円加算を意味する。また、「e(R1,R3)・e(R2,R3)」及び「e(R1,R2)・e(R1,R3)」は有限体上の乗算を意味する。
[4]E[p]上の任意の点R1に対して、e(R1,O)=1が成り立つ。
[5]E[p]上のある点R1がE[p]上のすべての点R2に対して、e(R1,R2)=1を満たすなら、R1=Oが成り立つ。
参考文献4:「A. Miyaji, M. Nakabayashi, S.Takano, "New explicit conditions of elliptic curve Traces for FR-Reduction," IEICE Trans. Fundamentals, vol. E84-A, no05, pp. 1234-1243, May 2001」
参考文献5:「M. Scott, P. S. L. M. Barreto, "Generating more NMT elliptic curve s," http://eprint .iacr. org/2004/058/」
参考文献6:「P.S.L.M. Barreto, B. Lynn, M. Scott, "Constructing elliptic curves with prescribed embedding degrees," Proc. SCN '2002, LNCS 2576, pp.257-267, Springer-Verlag. 2003」
参考文献7:「R. Dupont, A. Enge, F. Morain, "Building curves with arbitrary small MOV degree over finite prime fields," http://eprint.iacr.org/2002/094/」
本形態では、楕円曲線E/Fq上の点からなるいずれかの巡回群G1,G2を用いる。また、上述のペアリング関数の性質「[1]E[p]上の任意の点R1に対して、e(R1,R1)=1」より、巡回群G1,G2は重複しないことが望ましい。例えば、前述の[楕円曲線]の欄で示した巡回群<P>,<Q>,<R>から、重複しないように2つの巡回群を選びそれぞれ巡回群G1,G2とする。
次に、本発明の第1実施形態について説明する。
<全体構成>
図1は、第1実施形態の署名システム1の全体構成を示した概念図である。
図1に示すように、本形態の署名システム1は、署名生成を依託する署名者装置10、依託された署名を生成する代理署名装置20、署名検証を行う署名検証装置30及び公開鍵サーバ装置40を有し、これらはネットワーク50を通じて通信可能に接続されている。なお、各装置は、CPU(Central Processing Unit)やメモリを具備する公知のコンピュータに、所定のプログラムが読み込まれることにより構成される。また、署名者装置10や代理署名装置20や署名検証装置30や公開鍵サーバ装置40は、図1に示す数以上存在してもよいが、本形態では説明の簡略化のため、それぞれ1つずつ存在する場合を例示する。
次に、署名者装置10の構成について説明する。
[ハードウェア構成]
図2は、第1実施形態における署名者装置10のハードウェア構成を例示したブロック図である。
図2に例示するように、この例の署名者装置10は、CPU11、入力部12、出力部13、補助記憶装置14、ROM(Read Only Memory)15、RAM(Random Access Memory)16、バス17及び通信部18を有している。
CPU11(図2)は、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置14のプログラム領域14aに格納されているプログラムをRAM16のプログラム領域16aに書き込む。同様にCPU11は、補助記憶装置14のデータ領域14bに格納されている各種データを、RAM16のデータ領域16bに書き込む。そして、このプログラムやデータが書き込まれたRAM16上のアドレスがCPU11のレジスタ11cに格納される。CPU11の制御部11bは、レジスタ11cに格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM16上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部11bに順次実行させ、その演算結果をレジスタ11cに格納していく。なお、各プログラムは、単一のプログラム列として記載されていてもよく、また、少なくとも一部のプログラムが別個のモジュールとしてライブラリに格納されていてもよい。
次に、代理署名装置20の構成について説明する。
[ハードウェア構成]
代理署名装置20は、図2に例示したのと同様なコンピュータによって構成される。
[ハードウェアとプログラムとの協働]
署名者装置10の場合と同様、代理署名装置20は、コンピュータにプログラムが読み込まれることにより構成される。図4は、第1実施形態における代理署名装置20の機能構成を例示したブロック図である。なお、図4における矢印はデータの流れを示すが、制御部20jや一時メモリ20kに入出力されるデータの流れは省略してある。
次に、署名検証装置30の構成について説明する。
[ハードウェア構成]
署名検証装置30は、図2に例示したのと同様なコンピュータによって構成される。
[ハードウェアとプログラムとの協働]
署名者装置10の場合と同様、署名検証装置30は、コンピュータにプログラムが読み込まれることにより構成される。図5は、第1実施形態における署名検証装置30の機能構成を例示したブロック図である。なお、図5における矢印はデータの流れを示すが、一時メモリ30jや制御部30iに入出力されるデータの流れは省略してある。
次に、第1実施形態の署名システム1の処理について説明する。
[前処理]
まず、楕円曲線E/Fqが選択される。前述のように、楕円曲線E/Fqは、非trace-2の非超特異楕円曲線であることが望ましい。また、楕円曲線E/Fq上の点からなる位数がpである2つの巡回群G1,G2(G1≠G2)が選択される。例えば、前述の[楕円曲線]の欄で示した巡回群<P>,<Q>,<R>から、重複しないように2つの巡回群を選び、それぞれを巡回群G1,G2とする。そして、巡回群G1,G2の各生成元g1∈G1,g2∈G2が選択される。なお、安全性の面から、pは素数や因数分解が困難な合成数であることが望ましいが、pがその他の整数であってもよい。また、巡回群G1,G2の各群のビット長がセキュリティパラメータとなる。また、また、ペアリング関数e:G1×G2→G3が選択される。そして、署名者装置10の記憶部10iには、生成元g1∈G1,g2∈G2とpとが格納される。また、代理署名装置20の記憶部20nには、生成元g1∈G1,g2∈G2とpとg3=e(g1,g2)≠1∈G3とが格納される。また、署名検証装置30の記憶部30kには、生成元g1∈G1,g2∈G2とpとが格納される。
次に、本形態の鍵生成処理について説明する。
図6(a)は、第1実施形態の鍵生成処理を説明するためのフローチャートである。以下、図6(a)に沿って、第1実施形態の鍵生成処理について説明する。
まず、署名者装置10(図3)の秘密鍵生成部10aaが、記憶部10iからpを読み込む。秘密鍵生成部10aaは、任意値x(i)∈UZpを署名者装置10の秘密鍵sk∈Zpとして選択し、選択した秘密鍵sk∈Zpを記憶部10iに格納する(ステップS1)。なお、任意値の具体例としては、擬似乱数を例示できる。また、擬似乱数の生成は、例えば、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズムなどを用いて行う。また、擬似乱数ではなく、例えば、乱数表や利用者が設定した秘密情報などを用い、他の署名者装置と重複しないように秘密鍵skを設定してもよい。
次に、署名者装置10が代理署名装置20に署名生成を依託する際に、署名者装置10が実行する処理を説明する。
図6(b)は、この署名者装置10による署名委託処理を説明するためのフローチャートである。以下、図6(b)に沿って、第1実施形態の署名委託処理について説明する。
次に、署名者装置10から署名生成を依託された代理署名装置20の署名生成処理について説明する。
図7,8は、第1実施形態の署名生成処理を説明するためのフローチャートである。以下、図7,8に従って、第1実施形態の署名生成処理について説明する。
次に、本形態の署名検証処理について説明する。
図9は、第1実施形態の署名検証処理を説明するためのフローチャートである。以下、図9に従って、第1実施形態の署名検証処理について説明する。
まず、署名検証装置30の通信部30h(図5)が、署名対象のメッセージmと署名σ=(t,w,c,z)とを受信し、これらを記憶部30kに格納する(ステップS41)。次に、本形態の署名検証装置30は、これをトリガとし、公開鍵サーバ装置40に対して署名者装置10の公開鍵pkの送信を依頼し、公開鍵サーバ装置40から送信された公開鍵pkを通信部30hで受信し、記憶部30kに格納する(ステップS42)。なお、予め署名検証装置30が公開鍵pkを取得しておく構成であってもよい。
次に、本発明の第2実施形態について説明する。本形態は、本発明をグループ署名に適用した実施形態である。なお、以下において第1実施形態と共通する事項については説明を簡略化する。
図10は、第2実施形態の署名システム100の全体構成を示した概念図である。
図10に示すように、本形態の署名システム100は、署名クループを構成し得るn個(n≧2)の署名者装置110−0〜(n−1)、何れかの署名者装置110−0〜(n−1)から委託を受けてグループ署名を生成する代理署名装置120、署名検証を行う署名検証装置130及び公開鍵サーバ装置140を有し、署名者装置110−0〜(n−1)、代理署名装置120、署名検証装置130及び公開鍵サーバ装置140は、相互にネットワーク150を通じて接続可能に構成されている。
次に、署名者装置110の構成について説明する。なお、以下では署名者装置110−iを例にとって説明する。その他の署名者装置の構成も署名者装置110−iと同様である。
[ハードウェア構成]
署名者装置110は、図2に例示したのと同様なコンピュータによって構成される。
[ハードウェアとプログラムとの協働]
第1実施形態の署名者装置10の場合と同様、本形態の署名者装置110は、コンピュータにプログラムが読み込まれることにより構成される。図11は、署名者装置110の機能構成を例示したブロック図である。なお、図11における矢印はデータの流れを示すが、一時メモリ110h−iや制御部110g−iに入出力されるデータの流れは省略してある。
次に、代理署名装置120の構成について説明する。
[ハードウェア構成]
代理署名装置120は、図2に例示したのと同様なコンピュータによって構成される。
[ハードウェアとプログラムとの協働]
代理署名装置120は、コンピュータにプログラムが読み込まれることにより構成される。図12は、第2実施形態における代理署名装置120の機能構成を例示したブロック図である。なお、図12における矢印はデータの流れを示すが、制御部120jや一時メモリ120kに入出力されるデータの流れは省略してある。
次に、署名検証装置130の構成について説明する。
[ハードウェア構成]
署名検証装置130は、図2に例示したのと同様なコンピュータによって構成される。
[ハードウェアとプログラムとの協働]
署名検証装置130は、コンピュータにプログラムが読み込まれることにより構成される。図13は、第2実施形態における署名検証装置130の機能構成を例示したブロック図である。なお、図13における矢印はデータの流れを示すが、一時メモリ130jや制御部130iに入出力されるデータの流れは省略してある。
次に、第2実施形態の署名システム100の処理について説明する。
[前処理]
第1実施形態と同様、署名者装置110−iの記憶部110i−iには、生成元g1∈G1,g2∈G2とpとが格納される(他の署名者装置についても同様)。また、代理署名装置120−iの記憶部20nには、生成元g1∈G1,g2∈G2とpとg3=e(g1,g2)≠1∈G3とが格納される。また、署名検証装置130−iの記憶部130k−iには、生成元g1∈G1,g2∈G2とpとが格納される。
次に、本形態の鍵生成処理について説明する。
図14(a)は、第2実施形態の鍵生成処理を説明するためのフローチャートである。この処理は第1実施形態の鍵生成処理と同様であり、各署名者装置110−wがそれぞれ鍵生成を行う点のみが第1実施形態と相違する。
署名者装置110−iでの処理を例にとると、まず、署名者装置110−i(図11)の秘密鍵生成部110aa−iが、記憶部110iからpを読み込む。秘密鍵生成部110aa−iは、任意値x(i)∈UZpを署名者装置110−iの秘密鍵sk(i)∈Zpとして選択し、選択した秘密鍵sk(i)∈Zpを記憶部110i−iに格納する(ステップS101)。任意値の具体例は第1実施形態と同様、例えば、擬似乱数等である。
次に、公開鍵生成部110ac−iが、記憶部110i−iから秘密鍵sk(i)∈Zpと生成元g2∈G2とを読み込む。公開鍵生成部110ac−iは、このように入力された秘密鍵sk(i)∈Zpと生成元g2∈G2とを用い、公開鍵pk(i)=g2sk∈G2を算出し、記憶部110i−iに格納する(ステップS103)。
次に、署名生成を委託する署名者装置110−iが代理署名装置120に署名生成を依託する際に、署名者装置110−iが実行する処理を説明する。
図14(b)は、この署名者装置10による署名委託処理を説明するためのフローチャートである。この処理の第1実施形態との相違点は、署名者装置110−iが、署名グループである署名者装置110−iを含むu個の署名者装置110−k(k∈L,L={0,...,u−1}⊆N)からなる集合Lを特定する情報を代理署名装置120に送信する点である。
次に、署名者装置110−iから署名生成を依託された代理署名装置120の署名生成処理について説明する。
図15,16は、第2実施形態の署名生成処理を説明するためのフローチャートである。以下、図15,16に従って、第2実施形態の署名生成処理について説明する。
次に、本形態の署名検証処理について説明する。
図17は、第2実施形態の署名検証処理を説明するためのフローチャートである。以下、図17に従って、第2実施形態の署名検証処理について説明する。
まず、署名検証装置130の通信部130h(図13)が、署名対象のメッセージm(i)と署名σ=(t(i),(w(k))∀k∈L,(c(k))∀k∈L,(z(k))∀k∈L)とを受信し、これらを記憶部130kに格納する(ステップS151)。次に、本形態の署名検証装置130は、これをトリガとし、公開鍵サーバ装置140に対して、全てのk∈Lに対する公開鍵pk(k)の送信を署名者装置110に依頼し、公開鍵サーバ装置140から送信された公開鍵pk(k)を通信部130hで受信し、記憶部130kに格納する(ステップS152)。なお、予め署名検証装置130が公開鍵pk(k)を取得しておく構成であってもよい。
なお、本発明は上述の各実施の形態に限定されるものではない。例えば、上述の各実施形態では、署名者装置が代理署名装置に署名生成を委託する際にhやh(i)を代理署名装置に送信する構成であった。しかし、署名者装置が代理署名装置に署名生成を委託する際にhやh(i)を代理署名装置に送信せず、代理署名装置がh=H(m,t)やh(i)=H(m(i),t(i))によってhやh(i)を算出する構成であってもよい。
また、各実施形態では、2つの別個のハッシュ関数H:{0,1}*→G2及びH’:{0,1}*→Zqを用いたが、ハッシュ関数以外の関数H:{0,1}*→G2及びH’:{0,1}*→Zqを用いてもよい。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
10,110 署名者装置
20,120 代理署名装置
30,130 署名検証装置
Claims (10)
- 署名者装置に代わって署名生成を行う代理署名装置であって、
g1が巡回群G1の生成元であり、g2が巡回群G2の生成元であり、eが巡回群G1の元と巡回群G2の元とを入力として巡回群G3の元を出力するペアリング関数e:G1×G2→G3であり、g3=e(g1,g2)∈G3であり、上記署名者装置の秘密鍵が整数skであり、上記署名者装置の公開鍵がpk=(g2)sk∈G2であり、上記署名者装置の署名生成鍵がrk=(g1)sk∈G1であり、mが署名対象のメッセージであり、tが署名者装置で選択された任意値であり、Hが巡回群G2の元を値域とする関数H:{0,1}*→G2であり、hが関数値h=H(m,t)∈G2であり、H’が値域を整数とする関数であり、w=hsk∈G2であり、
少なくとも上記メッセージmと上記任意値tと上記wと上記署名生成鍵rkと上記公開鍵pkとを受信する受信部と、
少なくとも上記メッセージmと上記任意値tと上記wと上記署名生成鍵rkと上記公開鍵pkとを格納する記憶部と、
f=e(g1,h)∈G3を算出する第1ペアリング演算部と、
整数である任意値rを選択する任意値選択部と、
a=(g3)r∈G3を算出する第1G3演算部と、
b=fr∈G3を算出する第2G3演算部と、
c=H’(m,t,w,a,b)を算出する第1関数演算部と、
z=(g1)r/(rk)c∈G1を算出するG1演算部と、
上記メッセージmと署名σ=(t,w,c,z)とを送信する送信部と、
を有することを特徴とする代理署名装置。 - 請求項1に記載の代理署名装置であって、
e(rk,g2)∈G3を算出する第2ペアリング演算部と、
e(g1,pk)∈G3を算出する第3ペアリング演算部と、
e(rk,g2)=e(g1,pk)が成立するか否かを判定し、これが成立した場合に上記署名生成鍵rkと上記公開鍵pkとを受理する旨を出力し、これが成立しなかった場合に上記署名生成鍵rkと上記公開鍵pkとを拒絶する旨を出力する鍵判定部を有する、
ことを特徴とする代理署名装置。 - 請求項1又は2に記載の代理署名装置であって、
h’’=H(m,t)∈G2を算出する第2関数演算部と、
e(rk,h’’)∈G3を算出する第4ペアリング演算部と、
e(g1,w)∈G3を算出する第5ペアリング演算部と、
e(rk,h’’)=e(g1,w)が成立するか否かを判定し、これが成立した場合に上記任意値tと上記wとを受理する旨を出力し、これが成立しなかった場合に上記任意値tと上記wとを拒絶する旨を出力する署名可能化子判定部を有する、
ことを特徴とする代理署名装置。 - 代理署名装置に署名を生成させる署名者装置であって、
整数の秘密鍵skを格納する第1記憶部と、
g1が巡回群G1の生成元である場合における、署名生成鍵rk=(g1)sk∈G1を格納する第2記憶部と、
署名対象のメッセージmを格納する第3記憶部と、
任意値tを選択する任意値選択部と、
G2が巡回群であり、HがG2の元を値域とする関数H:{0,1}*→G2である場合における、関数値h=H(m,t)∈G2を算出する関数演算部と、
w=hsk∈G2を算出するG2演算部と、
少なくとも上記メッセージmと上記任意値tと上記演算結果wと上記署名生成鍵rkとを上記代理署名装置に送信する送信部と、
を有することを特徴とする署名者装置。 - 署名検証を行う署名検証装置であって、
g1が巡回群G1の生成元であり、g2が巡回群G2の生成元であり、eが巡回群G1の元と巡回群G2の元とを入力として巡回群G3の元を出力するペアリング関数e:G1×G2→G3であり、Hが巡回群G2の元を値域とする関数H:{0,1}*→G2であり、H’が値域を整数とする関数であり、署名者装置の秘密鍵が整数skであり、当該署名者装置の公開鍵がpk=(g2)sk∈G2であり、
署名対象のメッセージmと署名σ=(t,w,c,z)と上記公開鍵pkとを受信する受信部と、
上記メッセージmと上記署名σ=(t,w,c,z)と上記公開鍵pkとを格納する記憶部と、
関数値h’=H(m,t)を算出する第1関数演算部と、
a’=e(z,g2)・e(g1,pk)c∈G3を算出する第1ペアリング演算部と、
b’=e(z,h’)・e(g1,w)c∈G3を算出する第2ペアリング演算部と、
H’(m,t,w,a’,b’)を算出する第2関数演算部と、
c=H’(m,t,w,a’,b’)を満たすか否かを判定し、これが成立した場合に上記署名σを受理する旨を出力し、これが成立しなかった場合に上記署名σを拒絶する旨を出力する署名判定部とを有する、
ことを特徴とする署名検証装置。 - 署名クループを構成するu個(u≧2)の署名者装置の1つであるi番目(i∈L,L={0,…,u−1})の署名者装置に代わって署名生成を行う代理署名装置であって、
g1が巡回群G1の生成元であり、g2が巡回群G2の生成元であり、eが巡回群G1の元と巡回群G2の元とを入力として巡回群G3の元を出力するペアリング関数e:G1×G2→G3であり、g3=e(g1,g2)∈G3であり、i番目の署名者装置の秘密鍵が整数sk(i)であり、各j番目(∀j∈L,j≠i)の署名者装置の秘密鍵が整数sk(j)であり、各j番目の署名者装置の公開鍵がpk(j)=(g2)sk(j)∈G2であり、i番目の署名者装置の署名生成鍵rk(i)がrk(i)=(g1)sk(i)∈G1であり、m(i)が署名対象のメッセージであり、t(i)がi番目の署名者装置で選択された任意値であり、Hが巡回群G2の元を値域とする関数H:{0,1}*→G2であり、h(i)が関数値h(i)=H(m(i),t(i))∈G2であり、H’が値域を整数とする関数であり、w(i)={h(i)}sk(i)∈G2であり、
少なくとも上記メッセージm(i)と上記任意値t(i)と上記w(i)と上記署名生成鍵rk(i)と上記各公開鍵pk(j)とを受信する受信部と、
少なくとも上記メッセージm(i)と上記任意値t(i)と上記w(i)と上記署名生成鍵rk(i)と上記各公開鍵pk(j)とを格納する記憶部と、
f=e(g1,h(i))∈G3を算出する第1ペアリング演算部と、
整数である任意値rを選択する第1任意値選択部と、
a(i)=(g3)r∈G3を算出する第1G3演算部と、
b(i)=fr∈G3を算出する第2G3演算部と、
各jに対して任意値w(j)∈G2を選択する第2任意値選択部と、
各jに対して任意値z(j)∈G1を選択する第3任意値選択部と、
各jに対して整数の任意値c(j)を選択する第4任意値選択部と、
a(j)=e(z(j),g2)・e(g1,pk(j))c(j)∈G3を算出する第2ペアリング演算部と、
b(j)=e(z(j),h(i))・e(g1,w(j))c(j)∈G3を算出する第3ペアリング演算部と、
c=H’(m(i),t(i),(w(k))∀k∈L,(a(k))∀k∈L,(b(k))∀k∈L)を算出する関数演算部と、
c(i)=c−Σj≠ic(j) mod pを算出する整数演算部と、
z(i)=(g1)r/{rk(i)}c(i)∈G1を算出するG1演算部と、
上記メッセージm(i)と署名σ=(t(i),(w(k))∀k∈L,(c(k))∀k∈L,(z(k))∀k∈L)とを送信する送信部と、
を有することを特徴とする代理署名装置。 - 署名クループを構成するu個(u≧2)の署名者装置の1つであるi番目(i∈L,L={0,…,u−1})の署名者装置に代わって代理署名装置が生成した署名を検証する署名検証装置であって、
g1が巡回群G1の生成元であり、g2が巡回群G2の生成元であり、eが巡回群G1の元と巡回群G2の元とを入力として巡回群G3の元を出力するペアリング関数e:G1×G2→G3であり、Hが巡回群G2の元を値域とする関数H:{0,1}*→G2であり、H’が値域を整数とする関数であり、各k番目(∀k∈L)の署名者装置の秘密鍵が整数sk(k)であり、各k番目の署名者装置の公開鍵がpk(k)=(g2)sk(k)∈G2であり、
署名対象のメッセージm(i)と署名σ=(t(i),(w(k))∀k∈L,(c(k))∀k∈L,(z(k))∀k∈L)と上記各公開鍵pk(k)とを受信する受信部と、
上記メッセージm(i)と署名σ=(t(i),(w(k))∀k∈L,(c(k))∀k∈L,(z(k))∀k∈L)と上記各公開鍵pk(k)とを格納する記憶部と、
関数値h(i)’=H(m(i),t(i))を算出する第1関数演算部と、
a(k)’=e(z(k),g2)・e(g1,pk(k))c(k)∈G3を算出する第1ペアリング演算部と、
b(k)’=e(z(k),h(i)’)・e(g1,w(k))c(k)∈G3を算出する第2ペアリング演算部と、
H’(m(i),t(i),(w(k))∀k∈L,(a(k)’)∀k∈L,(b(k)’)∀k∈L)を算出する第2関数演算部と、
H’(m(i),t(i),(w(k))∀k∈L,(a(k)’)∀k∈L,(b(k)’)∀k∈L)=Σk∈Lc(k) mod pを満たすか否かを判定し、これが成立した場合に上記署名σを受理する旨を出力し、これが成立しなかった場合に上記署名σを拒絶する旨を出力する署名判定部とを有する、
ことを特徴とする署名検証装置。 - 請求項1,2,3、6のいずれかに記載の代理署名装置としてコンピュータを機能させるためのプログラム。
- 請求項4記載の署名者装置としてコンピュータを機能させるためのプログラム。
- 請求項5又は7に記載の署名検証装置としてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006333269A JP4773941B2 (ja) | 2006-12-11 | 2006-12-11 | 代理署名装置、署名者装置、署名検証装置及びそれらのプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006333269A JP4773941B2 (ja) | 2006-12-11 | 2006-12-11 | 代理署名装置、署名者装置、署名検証装置及びそれらのプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008148033A JP2008148033A (ja) | 2008-06-26 |
JP4773941B2 true JP4773941B2 (ja) | 2011-09-14 |
Family
ID=39607712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006333269A Expired - Fee Related JP4773941B2 (ja) | 2006-12-11 | 2006-12-11 | 代理署名装置、署名者装置、署名検証装置及びそれらのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4773941B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5513255B2 (ja) * | 2010-05-20 | 2014-06-04 | 日本電信電話株式会社 | 代理署名システム、方法 |
JP5494603B2 (ja) | 2011-09-29 | 2014-05-21 | 沖電気工業株式会社 | セキュリティ処理代行システム |
CN114448623A (zh) * | 2022-01-24 | 2022-05-06 | 中国银联股份有限公司 | 代理签名及验证方法、代理秘钥生成方法、装置和系统 |
-
2006
- 2006-12-11 JP JP2006333269A patent/JP4773941B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2008148033A (ja) | 2008-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10277395B2 (en) | Cryptographic key-generation with application to data deduplication | |
Liu et al. | An efficient privacy-preserving outsourced computation over public data | |
WO2012132136A1 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
US20220045840A1 (en) | Methods and systems for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger/blockchain technology | |
WO2012011565A1 (ja) | 秘密分散システム、分散装置、分散管理装置、取得装置、秘密分散方法、プログラム、及び記録媒体 | |
WO2010123114A1 (ja) | 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム及び記録媒体 | |
Basu et al. | Privacy preserving collaborative filtering for SaaS enabling PaaS clouds | |
Mishra et al. | Dynamic large branching hash tree based secure and efficient dynamic auditing protocol for cloud environment | |
Drucker et al. | Achieving trustworthy Homomorphic Encryption by combining it with a Trusted Execution Environment. | |
ALmarwani et al. | An effective, secure and efficient tagging method for integrity protection of outsourced data in a public cloud storage | |
US20220413807A1 (en) | Secure random number generation system, secure computation apparatus, secure random number generation method, and program | |
JP4773941B2 (ja) | 代理署名装置、署名者装置、署名検証装置及びそれらのプログラム | |
Hedabou | Cloud Key Management Based on Verifiable Secret Sharing | |
JP4875448B2 (ja) | 鍵生成装置、匿名署名システム、管理装置、匿名署名方法及びプログラム | |
JP2010160235A (ja) | 検索システム、端末装置、データベース装置、検索方法及びプログラム | |
JP4528114B2 (ja) | 鍵生成装置、暗号化装置、検査装置、復号化装置並びに鍵生成プログラム、暗号化プログラム、検査プログラム、復号化プログラム | |
Thirumalai et al. | Modelling a side channel resistant CHAN-PKC cryptomata for medical data security | |
Hong et al. | Constructing conditional PKEET with verification mechanism for data privacy protection in intelligent systems | |
JP4758814B2 (ja) | 匿名暗号文通信システム、鍵生成装置、通信装置、それらの方法、プログラム及び記録媒体 | |
Bickson et al. | Peer-to-peer secure multi-party numerical computation facing malicious adversaries | |
Kim et al. | An efficient public key functional encryption for inner product evaluations | |
Wang et al. | Faster fog-aided private set intersectionwith integrity preserving | |
JP2009130872A (ja) | 鍵共有方法、第1装置、第2装置、及び、それらのプログラム | |
JP2005084568A (ja) | セキュリティ方法、セキュリティ装置及びセキュリティプログラム | |
Patsakis et al. | Private aggregation with custom collusion tolerance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090105 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110603 |
|
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: 20110614 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110624 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140701 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4773941 Country of ref document: JP 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 |