JP2008098933A - 鍵生成装置、匿名署名生成装置、署名検証装置、管理装置、匿名署名方法及びプログラム - Google Patents

鍵生成装置、匿名署名生成装置、署名検証装置、管理装置、匿名署名方法及びプログラム Download PDF

Info

Publication number
JP2008098933A
JP2008098933A JP2006277964A JP2006277964A JP2008098933A JP 2008098933 A JP2008098933 A JP 2008098933A JP 2006277964 A JP2006277964 A JP 2006277964A JP 2006277964 A JP2006277964 A JP 2006277964A JP 2008098933 A JP2008098933 A JP 2008098933A
Authority
JP
Japan
Prior art keywords
signature
anonymous signature
unit
anonymous
value
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
JP2006277964A
Other languages
English (en)
Other versions
JP4875448B2 (ja
Inventor
Fumisato Hoshino
文学 星野
Kotaro Suzuki
幸太郎 鈴木
Tetsutaro Kobayashi
鉄太郎 小林
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 JP2006277964A priority Critical patent/JP4875448B2/ja
Publication of JP2008098933A publication Critical patent/JP2008098933A/ja
Application granted granted Critical
Publication of JP4875448B2 publication Critical patent/JP4875448B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】署名者が任意にグループを指定可能でありながら、グループ管理者が悪意のメンバーを追跡でき、なおかつ安全性要件を満たす匿名署名技術を提供する。
【解決手段】各匿名署名生成装置に公開鍵y(w),秘密鍵x(w),追跡鍵t(w)を生成する。x(w)は任意整数、y(w)は楕円スカラー倍算値y(w)=x(w)・g1∈G1、t(w)は楕円スカラー倍算値y(w)=x(w)・g2∈G2である。匿名署名生成装置は、自らの秘密鍵x(i)と署名グループを構成する他の匿名署名生成装置の公開鍵y(j)とを用い、巡回群G1の4つの元(g1,y(i),h,σ(i))∈G14の組のみがDDH tupleの集合となるように、署名グループを構成する全ての匿名署名生成装置についての(g1,y(k),h,σ(k))を生成し、これらを含む匿名署名σを生成する。管理装置30がその匿名署名σの匿名性を無効にする場合は、すべてのk∈Lの追跡鍵t(k)を用い、e(h,t(k))=e(σ(k),g2)=1となるk=iを検出し、真の匿名署名生成装置を検出する。
【選択図】図5

Description

本発明は、計算量理論に基づく情報セキュリティ技術に関し、特に、匿名署名技術に関する。
近年、公衆電話通信網の発達に従い、情報セキュリティ技術に注目が集まっている。情報セキュリティ技術は、情報理論や計算量理論など様々な背景技術に基づき構成されうる。中でも計算量理論に基づくものが効率等の面から最も実用的と考えられており、現在盛んに研究が行われている。
このような計算量理論に基づく情報セキュリティ技術の1つに、署名者の匿名性を守りつつ電子署名を行う匿名署名がある。この匿名署名には大別して以下の2つの方法がある。
1つは1991年にChaumらが提案した「グループ署名」の概念である(例えば、非特許文献1参照)。この方法には以下の性質がある。
・署名が確かにグループのメンバーによって作成されたことを第三者が検証できる。
・署名がメンバーの誰によって作成されたかに関する情報を第三者は得ることができない。
・グループ管理者は署名がメンバーの誰によって作成されたかを知ることができる。
・署名のグループを決定する為に予めグループ管理者と通信する必要がある。
なお、この最後の性質は、グループからメンバーを排除したり新たにメンバーを加えたり、グループメンバの一部だけを含む子グループを作成する場合にもグループ管理者と通信する必要があることを意味している。
一方、もう1つの匿名署名方法は、2001年にRivestらが提案した「リング署名」の概念である(例えば、非特許文献2参照)。この方法には以下の性質がある。
・署名が確かにグループのメンバーによって作成されたことを第三者が検証できる。
・署名がメンバーの誰によって作成されたかに関する情報を第三者は得ることができない。
・グループ管理者は存在しない。グループは公開鍵リストの中から署名者が任意に指定できる。
この方法にはグループ管理者が存在しない。署名者は、自身が所有する公開鍵リストから任意に公開鍵を選び、自分の公開鍵、秘密鍵、及び選んだ公開鍵から自分を含む任意のグループに関して匿名署名を生成できる。
David Chaum, Eugene van Heyst: Group Signatures. EUROCRYPT 1991: 257-265 Ronald L. Rivest, Adi Shamir, Yeal Tauman: How to Leak a Secret. ASIACRYPT 2001: 552-565
従来のグループ署名によって署名を行う場合、予めグループを登録しておかなければならない。しかし、n人からなる集合の部分集合は2個存在する。そのため、nが大きい場合、それらの部分集合すべてに対して予めグループを登録しておくのは現実的ではない。
一方、従来のリング署名の場合、グループ管理者が存在しないので署名者の匿名性が完全に保たれてしまう。そのため、例えば、悪意を持ったメンバーが勝手にグループを作って匿名署名を発行してしまう等の不正行為が行われても、その悪意のメンバーを追跡することができず、そのような不正行為を防止することができない。
このように、従来は、予めグループを登録しておくことなく、署名者が任意にグループを指定可能でありながら、グループ管理者が悪意のメンバーを追跡でき、なおかつ安全性要件を満たす匿名署名は存在しなかった。
本発明はこのような点に鑑みてなされたものであり、予めグループを登録しておくことなく、署名者が任意にグループを指定可能でありながら、グループ管理者が悪意のメンバーを追跡でき、なおかつ安全性要件を満たす匿名署名技術を提供することを目的とする。
本発明では上記課題を解決するために、以下のような、署名クループを構成するu個(u≧2)の匿名署名生成装置の1つであるi番目(i∈L,L={0,…,u−1})の匿名署名生成装置が匿名署名を生成し、署名検証装置がその匿名署名を検証し、必要に応じて管理装置がその匿名署名の匿名性を無効にする匿名署名方法が提供される。
この方法では、まず、鍵生成装置が、整数の任意値x(w)をw番目(w∈N,N={0,…,n−1})の匿名署名生成装置の秘密鍵x(w)として生成し、有限体F上に定義された楕円曲線E/F上の点からなる位数pの巡回群G1の生成元をg1とした場合における、当該楕円曲線E/F上での楕円スカラー倍算y(w)=x(w)・g1∈G1を行い、各演算結果y(w)をw番目の匿名署名生成装置の公開鍵y(w)し、上記楕円曲線E/F上の点からなる位数pの巡回群G2の生成元をg2とした場合における、当該楕円曲線E/F上での楕円スカラー倍算t(w)=x(w)・g2を行い、各演算結果t(w)をw番目の匿名署名生成装置の追跡鍵t(w)とする。なお、Nは、署名グループを構成し得る匿名署名生成装置に対応する番号wの集合を示す。
このように生成された秘密鍵x(w)は、それぞれ、w番目(w∈N)の匿名署名生成装置のみに格納される。また、匿名署名を生成するi番目(i∈L)の匿名署名生成装置には、少なくとも、署名グループを構成する匿名署名生成装置のうち、i番目(i∈L)の匿名署名生成装置を除く匿名署名生成装置に対応する公開鍵y(j)(j∈L,j≠i)が格納される。また、署名検証装置及び管理装置には、少なくとも、指定された署名グループを構成する各匿名署名生成装置に対応するすべての公開鍵y(k)(k∈L)が格納される。さらに、管理装置には、少なくとも、各匿名署名生成装置に対応するすべての追跡鍵t(k)が格納される。なお、本発明の場合、署名グループは署名者が公開鍵y(j)を選択することによって任意に指定できる。よって、本発明では、署名グループの事前登録は不要である。
i番目(i∈L)の匿名署名生成装置が匿名署名を生成する場合、その第1楕円スカラー倍算部が、楕円曲線E/F上での楕円スカラー倍算σ(i)=x(i)・h∈G1を行い、その演算結果σ(i)を出力する。なお、hは、署名対象のメッセージmを含む値に対し、当該値を巡回群G1の元へ写す関数Hを作用させた演算結果h∈G1である。また、第1任意値生成部が、各j∈L(j≠i)に対し、任意値σ(j)∈G1を生成し、第2任意値生成部が、整数の任意値r(i)を生成し、第2楕円スカラー倍算部が、楕円曲線E/F上での楕円スカラー倍算a(i)=r(i)・g1∈G1を行い、第3楕円スカラー倍算部が、楕円曲線E/F上での楕円スカラー倍算b(i)=r(i)・h∈G1を行う。また、第3任意値生成部が、各j∈L(j≠i)に対し、整数の任意値z(j),c(j)を生成し、第1楕円演算部が、各j∈L(j≠i)に対し、それぞれ、楕円曲線E/F上での楕円スカラー倍算z(j)・g1及びc(j)・y(j)∈G1と、楕円加算a(j)=z(j)・g1+c(j)・y(j)∈G1とを行い、第2楕円演算部が、各j∈L(j≠i)に対し、それぞれ、楕円曲線E/F上での楕円スカラー倍算z(j)・h及びc(j)・σ(j)∈G1と、楕円加算b(j)=z(j)・h+c(j)・σ(j)∈G1とを行う。次に、第1H’関数演算部が、すべてのk∈Lについてのσ(k),a(k),b(k)の各要素とメッセージmとを含む入力値に対し、当該入力値を整数へ写すハッシュ関数H’を作用させ、その演算結果cを求める。そして、第1整数演算部が、c(i)=c−Σj≠ic(j) mod pの演算を行い、第2整数演算部が、z(i)=r(i)−c(i)・x(i) mod pの演算を行い、匿名署名出力部が、すべてのk∈Lについてのσ(k),c(k),z(k)を含む情報をメッセージmの匿名署名σとし、当該匿名署名σをメッセージmとともに出力する。
このように生成された匿名署名σを署名検証装置において検証する場合、署名検証装置は、まず、その第3楕円演算部が、すべてのk∈Lに対し、それぞれ、楕円曲線E/F上での楕円スカラー倍算z(k)・g1及びc(k)・y(k)∈G1と、楕円加算a(k)=z(k)・g1+c(k)・y(k)∈G1とを行い、第4楕円演算部が、すべてのk∈Lに対し、それぞれ、楕円曲線E/F上での楕円スカラー倍算z(k)・h及びc(k)・σ(k)∈G1と、楕円加算b(k)=z(k)・h+c(k)・σ(k)∈G1とを行う。なお、hは、メッセージmを含む値に対して上記関数Hを作用させた演算結果h∈G1である。また、σ(k),c(k),z(k)は、匿名署名σから抽出した情報である。また、g1は例えば本システムでの共有情報である。次に、第2H’関数演算部が、すべてのk∈Lについてのσ(k),a(k),b(k)の各要素とメッセージmとを含む入力値に対し、ハッシュ関数H’を作用させ、その演算結果cを求める。そして、比較部が、c=Σk∈Lc(k)mod pを満たすか否かを判断する。検証結果出力部は、c=Σk∈Lc(k)mod pを満たすことを条件に、匿名署名σが合格である旨を出力する。
ここで、真に署名を行ったのはi番目(i∈L)の匿名署名生成装置である。i番目(i∈L)の匿名署名生成装置は、自らに対応するiについては、楕円スカラー倍算a(i)=r(i)・g1及びb(i)=r(i)・hによってa(i),b(i)を求め、それ以外のjについては、楕円スカラー倍算・加算a(j)=z(j)・g1+c(j)・y(j)及びb(j)=z(j)・h+c(j)・σ(j)によってa(j),b(j)を求める。そして、i番目(i∈L)の匿名署名生成装置は、自らの秘密鍵x(i)を用い、z(i)=r(i)−c(i)・x(i) mod pとしている。このz(i)により、a(i),b(i)も、a(i)=z(i)・g1+c(i)・y(i)及びb(i)=z(i)・h+c(i)・σ(i)と変換でき、i以外のjに対応するa(j),b(j)と同様の構成とできる。これにより、真に署名を行ったのがi番目の匿名署名生成装置であることを知らない署名検証装置でも、匿名署名σ及びメッセージmから、署名グループを構成する匿名署名生成装置に対応するすべてのk∈Lに対し、a(k),b(k)を算出することができcを算出することが可能となり、c=Σk∈Lc(k)mod pの検証を行うことが可能となる。
また、i番目(i∈L)の匿名署名生成装置は、自らの秘密鍵x(i)を用い、z(i)=r(i)−c(i)・x(i) mod pを生成している。ここで、c(i)はc(i)=c−Σj≠ic(j) mod pを満たすが、秘密鍵x(i)を知らない第三者は、このような関係を充足するz(i)を算出することができない。すなわち、秘密鍵x(i)を知らない第三者は、z(i)=r(i)−c(i)・x(i) mod pを正しく算出できず、また、cはハッシュ値であり、第三者はその逆元を知ることができないため、z(i)=r(i)−c(i)・x(i) mod pとc(i)=c−Σj≠ic(j) mod pとの関係からz(i)を求めることもできないからである。これにより、署名検証装置は、c=Σk∈Lc(k)mod pが成立するか否かを判定することにより、署名グループを構成する何れかの匿名署名生成装置が真に署名生成を行ったか否かを判定することが可能となる。ただし、署名検証装置は、どの匿名署名生成装置が署名を生成したかを知ることはできない。
また、真に匿名署名σを生成したi番目(i∈L)の匿名署名生成装置については、楕円曲線E/F上でα・g1=y(i)、h=β・g1、σ(i)=γ・g1(α,β,γは整数)とした場合に、γ=α・βが成立する。以下にその理由を示す。まず、y(i),h,σ(i)∈G1であるため、α・g1=y(i)、h=β・g1、σ(i)=γ・g1を満たす整数α,β,γは必ず存在する。ここで、y(i)=x(i)・g1であるためα=x(i)である。また、σ(i)=x(i)・hであるため、h=β・g1を用い、σ(i)=γ・g1は、x(i)・β・g1=γ・g1と変形でき、さらにx(i)・β=γと変形できる。そして、α=x(i)だからα・β=γと変形できる。これに対し、真に署名を生成していない匿名署名生成装置に対するσ(j)は任意数であり、γ=α・βは高い確率で成立しない。
よって、第三者が取得し得る巡回群G1の元(g1,y(k),h,σ(k))(k∈L)の組から、楕円曲線E/F上でα・g1=y(i)、h=β・g1、σ(i)=γ・g1(α,β,γは整数)とした場合に、γ=α・βが成立するi∈Lを検出することは、第三者が真に署名を生成した匿名署名生成装置を知ることを意味する。このようなi∈Lを検出する問題は、DDH問題を解くことに相当する(DDH問題については後述する)。現在、一般的なDDH問題を多項式時間で解く方法は知られていない。よって、DDH問題を解くことが困難であるとの仮定のもとでは、第三者は、真に匿名署名σを生成した匿名署名生成装置を知ることはできない。これにより署名者の匿名性が担保される。
一方、本発明の場合、追跡鍵t(k)を知る管理装置によって、匿名署名σの匿名性を無効にすることができる。管理装置において匿名署名σの匿名性を無効にする場合、まず、その第1ペアリング演算部が、すべてのk∈Lについて、演算結果hと追跡鍵t(k)との組をペアリング関数e:G1×G2→G3に代入し、各演算結果e(h,t(k))を求め、第2ペアリング演算部が、σ(k)と生成元g2との組をペアリング関数eに代入し、各演算結果e(σ(k),g2)を求め、判定部が、k∈Lごとに、演算結果e(h,t(k))と演算結果e(σ(k),g2)とが一致するか否かを判定し、これらが一致すると判定されたkを、真の匿名署名生成装置を示す情報として出力する。なお、hは、メッセージmを含む値に対して上記関数Hを作用させた演算結果h∈G1である。また、σ(k)は匿名署名σから抽出した情報である。
ここで、演算結果e(h,t(k))と演算結果e(σ(k),g2)とが一致するか否かを判定することは、楕円曲線E/F上でα・g1=y(i)、h=β・g1、σ(i)=γ・g1(α,β,γは整数)とした場合に、γ=α・βが成立するか否かを判定できることを意味する。すなわち、追跡鍵t(k)を知る管理装置は、DDH問題を解くことができ、真に署名を生成した匿名署名生成装置を追跡することができることを意味する。以下、この理由を説明する。
まず、h,σ(k)∈G1であるためh=β・g1、σ(k)=γ・g1とおける。また、α・g1=y(i)とおいた場合α=x(k)となるため、t(k)=x(k)・g2=α・g2とおける。また、ペアリング関数e:G1×G2→G3には、点P1,P2∈G1,Q1,Q2∈G2に対し、e(P+P,Q)=e(P,Q)・e(P,Q)及びe(P,Q+Q)=e(P,Q)・e(P,Q)との関係が成り立つ。そのため、第1ペアリング演算部が算出した演算結果e(h,t(k))は、e(β・g1,α・g2)=α・β・e(g1,g2)と変形でき、第2ペアリング演算部が算出する演算結果e(σ(k),g2)は、e(γ・g1,g2)=γ・e(g1,g2)と変形できる。よって、判定部が、k∈Lごとに、演算結果e(h,t(k))と演算結果e(σ(k),g2)とが一致するか否かを判定することは、α・β=γが成立するか否かを判定することと同じである。これは追跡鍵t(k)を用いればDDH問題を解くことができ、α・β=γが成立した際のkを、真に署名生成を行った匿名署名生成装置に対応するiとして特定できることを意味する。
また、本発明において好ましくは、巡回群G1と巡回群G2とで重複する元が存在しない。ペアリング関数e:G1×G2→G3の他の性質として、点P1∈G1,Q1∈G2に対してP1=Q1であった場合、P1,Q1の値に拘らずe(P1,Q1)=1となる性質がある。そのため、巡回群G1とG2とで重複する元が存在する場合、h=t(k)となったり、σ(k)=g2となったりすることも起こり得、その場合、e(h,t(k))とe(σ(k),g2)とが一致するか否かによってDDH問題を解くことができなくなる。よって、巡回群G1とG2とで重複する元が存在しないことが望ましい。
また、本発明において好ましくは、匿名署名生成装置は、整数の任意値rを生成する第4任意値生成部をさらに有する。そして、関数Hは、入力値を巡回群G1の元へ写すハッシュ関数であり、演算結果hは、メッセージmと任意値rとからなる値に対し、ハッシュ関数Hを作用させた演算結果である。さらに、各H’関数演算部は、任意値rとすべてのk∈Lについてのσ(k),a(k),b(k)の各要素とメッセージmとからなる入力値に対し、当該入力値を整数へ写すハッシュ関数H’を作用させ、その演算結果をcとする。そして、匿名署名σは、任意値rとすべてのk∈Lについてのσ(k),c(k),z(k)とからなる情報である。
ここで、真に署名を生成した匿名署名生成装置に対するσ(i)は楕円スカラー倍算値x(i)・hである。そのため、hがメッセージmに対して一義的に決まるものであった場合、同一のメッセージmに対するσ(i)は常に同じ値となる。これに対し、真に署名を生成していない匿名署名生成装置に対するσ(j)は任意値である。よって、同じメッセージmに対する匿名署名σが2つ以上生成された場合、それぞれの匿名署名σが具備するσ(i)は変化しないが、σ(j)は変化するといった事態が生じる。これは、同じメッセージmに対して2以上の匿名署名σが生成され、第三者に取得された場合、この第三者は、匿名署名σが具備するσ(k)が変化したか否かによって真の匿名署名生成装置を検出できることを意味する。よって、メッセージmが同一であっても、匿名署名σが生成されるたびにhが変化することが望ましい。そのため、例えば、メッセージmと任意値rとからなる値に対し、ハッシュ関数Hを作用させた演算結果をhとすることが望ましい。
以上のように、本発明の匿名署名では、予めグループを登録しておくことなく、署名者が任意にグループを指定可能でありながら、グループ管理者が悪意のメンバーを追跡でき、なおかつ安全性要件を満たすことができる。
以下、本発明を実施するための最良の形態を図面を参照して説明する。
〔原理〕
本発明では、署名クループを構成し得るn個(n≧2)の匿名署名生成装置w∈N(N={0,…,n−1})が存在し、そのうちu(2≦u≦n)個の匿名署名生成装置k∈L(L={0,…,u−1})で署名クループを構成し、当該署名グループに属するi番目(i∈L,L={0,…,u−1})の匿名署名生成装置が匿名署名を生成し、署名検証装置がその匿名署名を検証し、必要に応じてグループ管理者の管理装置がその匿名署名の匿名性を無効にする。なお、匿名署名生成装置wとは、w番目の匿名署名生成装置を意味する。まず、本発明の原理について説明する。
<Revocableリング署名方式>
本発明は、Revocableリング署名方式の一種である。この方式には2種類の非公開の鍵x,tと1種類の公開鍵yとが存在する。非公開な鍵xは署名者が匿名署名であるリング署名を生成するときに用いる秘密鍵xであり、他の非公開な鍵tはグループ管理者が真に署名を生成したものを特定するときに用いる追跡鍵tである。
まず、鍵生成装置が(公開鍵,秘密鍵,追跡鍵)=(y(w),x(w),t(w))(w∈N)を生成する。この鍵生成は、各匿名署名生成装置wがそれぞれ具備する鍵生成装置を用い、各匿名署名生成装置wが自ら行ってもよいし、匿名署名生成装置とは別の鍵生成装置が行ってもよい。生成された秘密鍵x(w)は、それぞれ対応する名匿名署名生成装置wに格納され、生成されたすべての公開鍵y(w)及び追跡鍵t(w)は、グループ管理者の管理装置に格納される。管理装置は、格納した各公開鍵y(w)のリストを公開する。
署名生成を行う匿名署名生成装置iは、署名グループを構成する匿名署名生成装置を選択し、選択した各匿名署名生成装置に対応する公開鍵y(j)(j∈L,k≠i)を、管理装置で公開された公開鍵y(w)のリストから取得して格納する。匿名署名生成装置iは、自らの秘密鍵x(i)と取得した各公開鍵y(j)と署名対象のメッセージmとを用い、メッセージmの匿名署名σを生成し、メッセージmと匿名署名σとを出力する。この際、必要に応じて署名グループを構成する匿名署名生成装置の集合を示すL⊆Nも出力してもよい。
署名検証装置が署名検証を行い場合、メッセージmと匿名署名σ(必要に応じてL⊆N)とが署名検証装置に入力され、署名検証装置は、管理装置から取得した各公開鍵y(k)(k∈L)を用い、匿名署名σを検証する。
また、管理装置が署名者を追跡する場合、メッセージmと匿名署名σ(必要に応じてL⊆N)とが管理装置に入力され、管理装置は、これらと各追跡鍵t(k)及び各公開鍵y(k)(k∈L)とを用い、匿名署名σを生成した匿名署名生成装置に対応するiの集合S⊂Lを検出し、出力する。
すなわち、Revocableリング署名方式は、以下の4つのアルゴリズムの組Σ=(Gen,Sig,Ver,Rev)のことである。
[Gen]
鍵生成アルゴリズムGenは、確率的多項式時間アルゴリズムであり、自然数のセキュリティパラメータκ(及びランダムテープ)を入力とし、それぞれビット長κの(公開鍵,秘密鍵,追跡鍵)=(y(w),x(w),t(w))を出力する。
Gen(1κ)→(y(w),x(w),t(w))
[Sig]
署名生成アルゴリズムSigは、確率的多項式時間アルゴリズムであり、秘密鍵x(i)(i∈L)と各公開鍵y(j)(j∈L,j≠i)の集合と署名対象のメッセージm∈{0,1}とを入力とし、匿名署名σを出力する。なお、(y(j))j∈L,j≠iは、j∈L,j≠iを満たすy(j)を要素とするベクトルである。
Sig(x(i),(y(j))j∈L,j≠i,m)→σ
[Ver]
署名検証アルゴリズムVerは、確率的多項式時間アルゴリズムであり、公開鍵y(k)(k∈L)の集合とメッセージm∈{0,1}と匿名署名σとを入力とし、1bitの0又は1を出力する。
Ver(y(k)k∈L,m,σ)→0又は1
[Rev]
追跡アルゴリズムRevは、確率的多項式時間アルゴリズムであり、追跡鍵t(k)(k∈L)の集合と公開鍵y(k)(k∈L)の集合とメッセージm∈{0,1}と匿名署名σとを入力とし、匿名署名σを生成した匿名署名生成装置に対応するiの集合S⊂Lを出力する。
Rev(t(k)k∈L,y(k)k∈L,m,σ)→S
<Revocableリング署名方式の安全性の定義>
上記のようなアルゴリズムの4つ組みならばどのような組でも形式的にはRevocableリング署名である。しかし、安全なRevocableリング署名であるためには、さらに次の4つの安全性要件(完全性、匿名性、偽造不可能性、Exculpability)が必要である。
[完全性]
Revocableリング署名の完全性は次のように定義される。
・∀L⊂N,∀w∈N,∀m∈{0,1}に対して圧倒的確率で
Ver((y(k))k∈L,m,Sig(x(i),(y(j))j∈L,j≠i,m))=1を満たす。
・∀L⊂N,∀w∈N,∀m∈{0,1}に対して圧倒的確率で
Rev(t(k)k∈L,y(k)k∈L,m,Sig(x(i),(y(j))j∈L,j≠i,m)={i}を満たす。
[匿名性]
Revocableリング署名の匿名性は次のように定義される。
まず、以下の形式的な確率的多項式時間アルゴリズムDに関するゲームを考察する。ゲームの始めにGen(1κ)→(y(w),x(w),t(w))(w∈N)が生成され、ランダムなビットb∈{0,1}が選ばれる。確率的多項式時間アルゴリズムDは、入力としてy(0),y(1)及び(y(w’),x(w’),t(w’))(w’=2,...,n−1)を受け取り、以下のステップを実行する。
確率的多項式時間アルゴリズムDは、i,L,mを署名オラクルSOへ送信し、匿名署名σ←Sig(x(i),(y(j))j∈L,j≠i,m)を手に入れることができる。確率的多項式時間アルゴリズムDは、この手続きを任意のタイミングで多項式回数実行できる。その後、確率的多項式時間アルゴリズムDは、ある時点で都合のよい集合L({0,1}⊂L)及びmをチャレンジオラクルCOに送り、匿名署名σ←Sig(x(i),(y(j))j∈L ,j≠i,m)を受け取る。確率的多項式時間アルゴリズムDは、この手続きを1回だけ実行できる。以上の手続きの後、確率的多項式時間アルゴリズムDは、1ビットの情報b’を出力する。なお、このゲームがランダムオラクルモデルのもとで定義されている場合、確率的多項式時間アルゴリズムDは、任意のタイミングで多項式回、当該ランダムオラクルモデルにアクセスできる。
以上の条件のもと、確率的多項式時間アルゴリズムDのRevocableリング署名アルゴリズムΣに対する優位性AΣ anon(D)を以下のように定義する。なお、Pr[*]は事象*の確率を示し、DSO,CO(*)は、*と署名オラクルSO及びチャレンジオラクルCOから得た情報を元に出力する値を意味する。
Figure 2008098933
ここで、もし、あらゆる確率的多項式時間アルゴリズムDに対して優位性AΣ anon(D)が無視しうるほど小さいなら、Revocableリング署名アルゴリズムΣは匿名性を持つという。
[偽造不可能性]
Revocableリング署名の偽造不可能性は次のように定義される。
まず、以下の形式的な確率的多項式時間アルゴリズムFに関するゲームを考察する。ゲームの始めにGen(1κ)→(y(w),x(w),t(w))(w∈N)が生成され、確率的多項式時間アルゴリズムFは入力として(y(w),t(w))w=0,...,n−1を受け取り、以下のステップを実行する。
確率的多項式時間アルゴリズムFは、i,L,mを署名オラクルSOへ送信し、匿名署名σ←Sig(x(i),(y(j))j∈L,j≠i,m)を手に入れることができる。確率的多項式時間アルゴリズムFは、この手続きを任意のタイミングで多項式回数実行できる。その後、確率的多項式時間アルゴリズムFは、(L,m,σ)を出力する。もし、Ver(y(k)k∈L ,m,σ)→1でかつmが署名オラクルSOへ送信されていなかったのであれば、確率的多項式時間アルゴリズムFが勝利した(匿名署名を偽造できた)とする。なお、このゲームがランダムオラクルモデルのもとで定義されている場合、確率的多項式時間アルゴリズムFは、任意のタイミングで多項式回、当該ランダムオラクルモデルにアクセスできる。
以上の条件のもと、確率的多項式時間アルゴリズムFのRevocableリング署名アルゴリズムΣに対する優位性AΣ unforg(F)を以下のように定義する。
Figure 2008098933
ここで、もし、あらゆる確率的多項式時間アルゴリズムFに対して優位性AΣ unforg(F)が無視しうるほど小さいなら、Revocableリング署名アルゴリズムΣは偽造不可能性を持つという。
[Exculpability]
Revocableリング署名のExculpabilityは次のように定義される。
まず、以下の形式的な確率的多項式時間アルゴリズムAに関するゲームを考察する。ゲームの始めにGen(1κ)→(y(w),x(w),t(w))(w∈N)が生成され、確率的多項式時間アルゴリズムAは、入力としてy(0),t(0)及び(y(w’’),x(w’’),t(w’’))(w’’=1,...,n−1)を受け取り、以下のステップを実行する。
確率的多項式時間アルゴリズムAは、i,L,mを署名オラクルSOへ送信し、匿名署名σ←Sig(x(i),(y(j))j∈L,j≠i,m)を手に入れることができる。確率的多項式時間アルゴリズムAは、この手続きを任意のタイミングで多項式回数実行できる。その後、確率的多項式時間アルゴリズムAは、(L,m,σ)を出力する。もし、Rev(t(k)k∈L ,y(k)k∈L ,m,σ)→{0}でかつ、確率的多項式時間アルゴリズムAがi=0,L,mを署名オラクルSOへ送信していなかったのであれば、確率的多項式時間アルゴリズムAが勝利したとする。なお、このゲームがランダムオラクルモデルのもとで定義されている場合、確率的多項式時間アルゴリズムAは、任意のタイミングで多項式回、当該ランダムオラクルモデルにアクセスできる。
以上の条件のもと、確率的多項式時間アルゴリズムAのRevocableリング署名アルゴリズムΣに対する優位性AΣ exculp(A)を以下のように定義する。
Figure 2008098933
ここで、もし、あらゆる確率的多項式時間アルゴリズムAに対して優位性AΣ exculp(A)が無視しうるほど小さいなら、Revocableリング署名アルゴリズムΣはExculpabilityを持つという。
<CDH仮定付きTrapdoor DDH Group>
本発明では、上述のように定義した安全性を有するRevocableリング署名方式を、CDH仮定付きTrapdoor DDH Groupを用いて実現する。
[Trapdoor DDH Group]
Trapdoor DDH Groupとは、以下の性質を満たす巡回群Gのことである。
・巡回群Gの元に対してトラップドアと呼ぶ値が存在する。
・トラップドアを具備しない者は、巡回群Gの元に関するDDH問題を多項式時間で解くことができない。
・トラップドアを具備する者は、巡回群Gの元に関するDDH問題を多項式時間で解くことができる。しかし、トラップドアを具備する者であっても、巡回群Gの元に関するCDH問題や離散対数問題を多項式時間で解くことはできない。
なお、DDH問題とは、巡回群Gの4つの元(g,y,h,σ)に対し(ただしgは巡回群Gの生成元)、d∈{0,1}を求める問題である。ここで、Gが乗法群ならばy=gα,h=gβ,σ=gγに対して(Gが加法群ならばy=α・g,h=β・g,σ=γ・gに対して)γ=α・βを満たすのであればd=1が正解となり、γ=α・βを満たさないのであればd=0が正解となる。なお、巡回群Gの4つの元(g,y,h,σ)をrandom tupleの集合と呼び、そのうちγ=α・βを満たす巡回群Gの4つの元(g,y,h,σ)をDDH tupleの集合と呼ぶ。
また、CDH問題とは、巡回群Gの3つの元(g,y,h)に対し、巡回群Gの元σを求める問題である。ここで、Gが乗法群ならばy=gα,h=gβに対するσ=gα・βが正解となり、Gが加法群ならばy=α・g,h=β・gに対するσ=α・β・gが正解となる。
また、離散対数問題とは、巡回群Gの2つの元(g,y)に対し、xを求める問題である。ここで、Gが乗法群ならばy=gを満たすxが正解となり、Gが加法群ならばy=x・gを満たすxが正解となる。
[CDH仮定付きTrapdoor DDH Group]
巡回群Gが以下の条件を満たす場合に限り、その巡回群GをCDH仮定付きTrapdoor DDH Groupと呼ぶ。
・2つの多項式時間アルゴリズム(GenTD,SolveDDH)が存在する。ここで、GenTDはトラップドア生成アルゴリズムであり、g’∈G’及びx∈Zを入力としてトラップドアtを出力する確率的多項式時間アルゴリズム(GenTD(g’,x)=t)である。また、SolveDDHは、DDH解決アルゴリズムであり、t及び(g,y,h,σ)∈Gを入力とし、(g,y,h,σ)に対するDDH問題を解き、0又は1を出力するアルゴリズム(SolveDDH(t,g,y,h,σ)=0又は1)である。
・トラップドアtを用いる場合、SolveDDHは(g,y,h,σ)∈Gに対するDDH問題を多項式時間で解くことができる。すなわち、∀g∈G,x∈Z,t=GenTD(g,x)で、SolveDDH(t,g,y,h,σ)=1ならば、Gが乗法群ならばy=gα,h=gβ,σ=gγに対して(Gが加法群ならばy=α・g,h=β・g,σ=γ・gに対して)γ=α・βを高い確率で満たす。このような(g,y,h,σ)は、高い確率でDDH tupleの集合である。
・一方、トラップドアtを用いない場合、(g,y,h,σ)∈Gに対するDDH問題を多項式時間で解くことは困難である。すなわち、このDDH問題に対するあらゆる多項式時間攻撃アルゴリズムBの優位性
AdvDDH(B)=|Pr[b∈U{0,1},X∈Db:B(X)=b]-1/2|
は無視しうるほど小さい。なお、D=(g(b),y(b),h(b),σ(b))であり、b∈{0,1}は、bが{0,1}から任意に選択された数であることを示す。
・また、トラップドアtを用いてもなお(g,y,h)∈Gに対するCDH問題を多項式時間で解くことは困難である。すなわち、このCDH問題に対するあらゆる多項式時間攻撃アルゴリズムCの優位性
AdvCDH(C)=Pr[g,x∈UZp,t=GenTD(g,x):C(t,g,y,h)=σ]
は無視しうるほど小さい。
なお、CDH問題を多項式時間で解くことは困難である場合、(g,y)∈G及び(g,h)∈Gに対する離散対数問題を多項式時間で解くことも困難である。このようにトラップドアtを用いてもなお離散対数問題を多項式時間で解くことが困難であるとの条件を考慮したものをDL仮定付きTrapdoor DDH Groupと呼ぶ。CDH仮定付きTrapdoor DDH Groupならば、必ずDL仮定付きTrapdoor DDH Groupである。
<本発明におけるTrapdoor DDH Group>
本発明では、楕円曲線を用いてTrapdoor DDH Groupを構成する。楕円曲線を用いるとbilinear groupと呼ばれる以下の同型写像e,ψをもつ巡回群の組G1,G2,G3を作れることがよく知られている(参考文献1:「T.Saito, F.Hoshino, S.Uchiyama, "Candidate One-Way Functions on Non-Supersingular Elliptic Curves," Technical Report of IEICE. ISEC 2003-65 (2003-09)」)。
・eは非退化双線形写像e:G1×G2→G3
・ψは同型写像ψ:G2→G1
eをペアリング(pairing)関数と呼ぶ(詳細は後述)。本発明では、このような巡回群G1,G2を用いてTrapdoor DDH Groupを構成し、前述のように定義した安全性を有するRevocableリング署名方式を構成する。以下、巡回群G1,G2の構成方法を例示する。
[楕円曲線]
まず、位数q(一般的にqは素数)の有限体F上で定義された楕円曲線について説明する。
一般に、有限体F上で定義された楕円曲線E/Fとは、a,a,a,a,a∈E/Fとして、等式
E/Fq: y2+a1・x・y+a3・y=x3+a2・x2+a4・x+a6 …(1)
を満たす点(x,y)の集合に無限遠点と呼ばれる特別な点Oを付加したものである。有限体F上に定義された楕円曲線E/F上の任意の2点に対して楕円加算と呼ばれる二項演算+及び楕円曲線E/F上の任意の1点に対して楕円逆元と呼ばれる単項演算−がそれぞれ定義できる。また、この楕円加算に関して群をなすこと及び楕円加算を用いて楕円スカラー倍算と呼ばれる演算が定義できることはよく知られている。
また、楕円曲線E/F上の点のうち、x,y∈Fとなる元の集合に無限遠点Oを付加したものをE(F)と記述する。また、x,y∈F となる元の集合に無限遠点Oを付加したものをE(F )と記述する。楕円加算に関してE(F )はE/Fの部分群であり、E(F)はE(F )の部分群である。
ここでpを素数とし、楕円曲線E/F上の点Rのうち、楕円曲線E/F上での楕円スカラー倍算値p・Rがp・R=Oを満たす点Rの集合を楕円曲線E/Fのp等分点と呼び、E[p]と記述する。E[p]はE/Fの部分群である。
なお、本発明に用いる楕円曲線E/Fは、非trace-2の非超特異楕円曲線であることが望ましい。trace-2の楕円曲線及び超特異楕円曲線では、巡回群上のDDH問題を多項式時間で解くアルゴリズムが知られており、署名の安全性要件を満たさなくなるからである。
[楕円曲線のフロベニウス写像]
次に、楕円曲線のフロベニウス写像について説明する。
楕円曲線E/F上の任意の点R=(x,y)及び無限遠点Oに対し、q乗のフロベニウス写像φは、
Figure 2008098933
と定義される。
参考文献2:「イアン・F・ブラケ,ガディエル・セロッシ,ナイジェル・P・スマート=著、鈴木治郎=訳,「楕円曲線暗号」,出版=ピアソン・エデュケーション,ISBN4-89471-431-0,p112」にあるように、フロベニウス写像φは楕円曲線E/F上の点R=(x,y)∈E(F )に対して、
2‐t・φ+q)・R=O …(3)
を満たす(ただし、tは、q,a,a,a,a,aによって一意に決定される整数であり、トレースと呼ばれる)。ここで、フロベニウス写像φに関する多項式φ2‐t・φ+qを特性多項式と呼ぶ。楕円曲線をE[p]に限定すると、楕円スカラー倍はZ/pZで考えればよい。Z/pZ係数の特性多項式は分解体上で、
φ2‐t・φ+q=(φ‐λ)(φ‐λ2) …(4)
と分解でき、λ、λをフロベニウス写像φの固有値と呼ぶ。以下においては、λ、λ∈Z/pZでかつλ≠λである場合を考える。線形空間であるE[p]の線形変換関数ψλ1,ψλ2(ただし、下付き添え字のλ1及びλ2は、それぞれλ及びλを表す。)を
ψλ1=(λ1‐λ2)-1(φ‐λ2) …(5)
ψλ2=(λ2‐λ1)-1(φ‐λ1) …(6)
と定義すると、任意のE[p]上の点Rに対して、
P=ψλ1R=(λ1‐λ2)-1(φR‐λ2R) …(7)
Q=ψλ2R=(λ2‐λ1)-1(φR‐λ1R) …(8)
なるE[p]上の点P,Qが存在する。
ここで、E[p]の線形変換関数ψλ1による像ψλ1(E[p])を、「フロベニウス写像φの固有値λに関する固有空間」と呼ぶ。この固有空間ψλ1(E[p])は、点Pを生成元とした位数pの巡回群<P>となる。また、線形空間E[p]の線形変換関数ψλ2による像ψλ2(E[p])を、「フロベニウス写像φの固有値λに関する固有空間」と呼ぶ。この固有空間ψλ2(E[p])は、点Qを生成元とした位数pの巡回群<Q>となる。例えば、E[p]かつE(F)であるE(F)[p]は、フロベニウス写像φの固有値λ=1に関する固有空間である。また、固有値λ=1に対するもう一方の固有値はλ=q mod pとなり、これに対する固有空間はE[p]かつE(F )であるE(F )[p]に存在する。また、E[p]は、これらの巡回群<P>,<Q>の直積で表現できる。そして、E[p]上の任意の点Rはε,μ∈Z/pZとすると必ずR=ε・P+μ・Qと書け、Rを生成元とする巡回群<R>が構成できる。
[ペアリング関数]
次に、ペアリング(pairing)関数について説明する。
μを、楕円曲線の定義体の代数閉体上の乗法単位元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]=μ …(9)
なる関数であり、次の性質を持つ。
[1]E[p]上の任意の点Rに対して、e(R,R)=1が成り立つ。
[2]E[p]上の任意の2点R、Rに対して、e(R,R)=e(R,R−1が成り立つ。
[3]E[p]上の任意の3点R,R,Rに対して、e(R+R,R)=e(R,R)e(R,R)であり、e(R,R+R)=e(R,R)e(R,R)が成り立つ。
[4]E[p]上の任意の点Rに対して、e(R,O)=1が成り立つ。
[5]E[p]上のある点RがE[p]上のすべての点Rに対して、e(R,R)=1を満たすなら、R=Oが成り立つ。
なお、ペアリング関数eの具体例としては、参考文献2に示されるWeilペアリングやTateペアリングなどを挙げることができる。また、ペアリング関数が効率的に計算可能な非超特異楕円曲線(non-supersingular curve)の生成方法については、以下の参考文献などに開示されている。
参考文献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/F上の点からなるいずれかの巡回群G1をCDH仮定付きTrapdoor DDH Groupとする。また、本発明では、楕円曲線E/F上の点からなる巡回群G2も用いる。例えば、前述の[楕円曲線]の欄で示した巡回群<P>,<Q>,<R>から、重複しないように2つの巡回群を選びそれぞれ巡回群G1,G2とする。
[本発明のGenTD,SolveDDH]
本発明のGenTD:
(1)巡回群G2の生成元g2とx∈Zとの入力。
(2)楕円曲線E/F上での楕円スカラー倍算t=GenTD(g2, x)=x・g2∈G2。
(3)演算結果tの出力。
本発明のSolveDDH:
(1)トラップドアt∈G2と(g1,y,h,σ)∈G1の入力。ただし、y=x・g2、σ=x・h。
(2)e(h,t)=e(σ,g2)であるか否かを検証。
(3)e(h,t)=e(σ,g2)であれば1を出力し、e(h,t)=(σ,g2)でなければ0を出力。
本発明のGenTD,SolveDDHが機能する理由:
演算結果e(h,t)と演算結果e(σ,g2)とが一致するか否かを判定することは、楕円曲線E/F上でα・g1=y、h=β・g1、σ=γ・g1(α,β,γは整数)とした場合に、γ=α・βが成立するか否かを判定できることを意味し、これはSolveDDHを解くことができることを意味する。以下、この理由を説明する。
まず、h,σ∈G1であるためh=β・g1、σ=γ・g1とおける。また、α・g1=yとおいた場合α=xとなるため、t=x・g2=α・g2とおける。また、ペアリング関数eは前述した性質[3]を満たすため、点P1,P2∈G1,Q1,Q2∈G2に対し、e(P+P,Q)=e(P,Q)・e(P,Q)及びe(P,Q+Q)=e(P,Q)・e(P,Q)との関係が成り立つ。そのため、e(h,t)=e(β・g1,α・g2)=α・β・e(g1,g2)と変形でき、e(σ,g2)=e(γ・g1,g2)=γ・e(g1,g2)と変形できる。よって、e(h,t)=e(σ,g2)であるか否かを検証することは、α・β=γであるか否かを検証することと同じである。これはtを用いればDDH問題を解くことができることを意味する。
なお、ペアリング関数eは前述した性質[1]をもつため、巡回群G1と巡回群G2とは重複する元を持たないことが望ましい。巡回群G1と巡回群G2とが重複する元を持つ場合、h=tとなったりσ=g2となったりし、ペアリング関数の値が常に1となり、e(h,t)=e(σ,g2)であるか否かによってα・β=γであるか否かを検証できなくなるからである。なお、λ≠λであれば、フロベニウス写像φの固有値λに関する固有空間と、フロベニウス写像φの固有値λに関する固有空間とは、相互に属する元を持たない。よって、前述の[楕円曲線]の欄で示した巡回群<P>,<Q>,<R>から重複しないように2つの巡回群を選び、それらをそれぞれ巡回群G1,G2とする場合、λ≠λであれば、巡回群G1と巡回群G2とは重複する元を持たない。
また、tを用いなければ巡回群G1に関するDDH問題を多項式時間で解くことが困難であり、tを用いてもなお巡回群G1に対するCDH問題を多項式時間で解くことは困難である。よって、巡回群G1は、CDH仮定付きTrapdoor DDH Groupである。
<本発明のCDH仮定付きTrapdoor DDH Groupを用いたRevocableリング署名方式の概要>
まず、匿名署名生成装置ごとに公開鍵y(w),秘密鍵x(w),追跡鍵t(w)(w∈N,N={0,…,n−1})が生成される。ここで、秘密鍵x(w)は任意の整数であり、公開鍵y(w)は、楕円スカラー倍算y(w)=x(w)・g1によって生成され、追跡鍵t(w)は、t(w)=GenTD(g2,x(w))によって生成される。そして、すべての公開鍵y(w)は一般に公開され、各秘密鍵x(w)は対応するw番目の匿名署名生成装置にのみ格納され、すべての追跡鍵t(w)は管理装置のみに格納される。
匿名署名の生成を行う場合、まず、真に署名を生成するi番目(i∈N)の匿名署名生成装置が、署名クループを構成し得るn個の匿名署名生成装置w∈Nから署名クループL={0,…,u−1}を任意に選択する。そして、i番目の匿名署名生成装置は、秘密鍵x(i)と公開鍵y(j)(j∈L,j≠i)とを用い、高い確率で、巡回群G1の4つの元(g1,y(i),h,σ(i))∈G1の組のみがDDH tupleの集合となるように(当該巡回群G1の4つに対するDDH問題の解が1となるように)、すべてのk∈Lについての(g1,y(k),h,σ(k))を生成し、(g1,y(k),h,σ(k))を含む匿名署名σを生成する。
署名検証者は、(g1,y(k),h,σ(k))を含む匿名署名σを検証し、署名クループのいずれかの匿名署名生成装置によって匿名署名σが生成されたことを検証できる(完全性1)。しかし、DDH問題の求解困難性により、署名検証者は、DDH tupleの集合となる(g1,y(i),h,σ(i))の組を見つけることができず、i番目の匿名署名生成装置が真に匿名署名σを生成したことを知ることができない(匿名性)。
一方、必要に応じて管理装置がその匿名署名σの匿名性を無効にする場合、管理装置は、すべてのk∈Lの追跡鍵t(k)を用い、SolveDDH(t(k),g1,y(k),h,σ(k))を実行し、e(h,t(k))=e(σ(k),g2)=1となるk=iを検出し、真の匿名署名生成装置を検出する(完全性2)。なお、CDH仮定付きTrapdoor DDH Groupならば、必ずDL仮定付きTrapdoor DDH Groupであり、追跡鍵t(k)を用いてもなお巡回群G1に対する離散対数問題を多項式時間で解くことは困難である。よって、管理装置は、匿名署名生成装置の秘密鍵x(k)までは知ることができない。そのため、追跡鍵t(k)を持つものであったとしても匿名署名を偽造することができず(偽造不可能性)、他の匿名署名生成装置が署名者であると偽った匿名署名を生成することもできない(Exculpability)。
〔第1実施形態〕
次に、本発明の第1実施形態について説明する。
<全体構成>
図1は、第1実施形態の匿名署名システム1の全体構成を示した概念図である。
図1に示すように、本形態の匿名署名システム1は、署名クループを構成し得るn個(n≧2)の匿名署名生成装置10−0〜(n−1)、署名検証を行なう署名検証装置20及び匿名署名の匿名性を無効化する管理装置30を有しており、匿名署名生成装置10−0〜(n−1)、署名検証装置20及び管理装置30は、相互にネットワーク40を通じて接続可能に構成されている。
なお、匿名署名生成装置10−w(w∈N,N={0,...,n−1})を、それぞれw番目の匿名署名生成装置10−wと呼ぶこととし、匿名署名生成装置10−w(w∈N)の集合を集合N=(0,...,n−1)と呼ぶものとする。また、本形態では、集合N=(0,...,n−1)に属する匿名署名生成装置10−wの1つであるi番目の匿名署名生成装置10−iが、u個の匿名署名生成装置10−k(k∈L,L={0,...,u−1}⊆N)からなる集合L(署名グループ)を構成して匿名署名を生成し、署名検証装置20がその匿名署名を検証し、必要に応じて管理装置30がその匿名署名の匿名性を無効にする例を説明する。
<匿名署名生成装置の構成>
次に、匿名署名生成装置の構成について説明する。なお、以下では匿名署名生成装置10−iを例にとって説明する。その他の匿名署名生成装置の構成も匿名署名生成装置10−iと同様である。
[ハードウェア構成]
図2は、第1実施形態における匿名署名生成装置10−iのハードウェア構成を例示したブロック図である。
図2に例示するように、この例の匿名署名生成装置10−iは、CPU(Central Processing Unit)11、入力部12、出力部13、補助記憶装置14、ROM(Read Only Memory)15、RAM(Random Access Memory)16、バス17及び通信部18を有している。
この例のCPU11は、制御部11a、演算部11b及びレジスタ11cを有し、レジスタ11cに読み込まれた各種プログラムに従って様々な演算処理を実行する。また、この例の入力部12は、データが入力される入力ポート、キーボード、マウス等であり、出力部13は、データを出力する出力ポート、外部記録媒体へのデータ記憶装置、印刷装置、ディスプレイなどである。補助記憶装置14は、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、各種プログラムを格納したプログラム領域14a及び各種データが格納されるデータ領域14bを有している。また、RAM16は、例えば、SRAM (Static Random Access Memory)、DRAM (Dynamic Random Access Memory)等であり、上記のプログラムが書き込まれるプログラム領域16a及び各種データが書き込まれるデータ領域16bを有している。また、通信部18は、ネットワークカードなどである。また、この例のバス17は、CPU11、入力部12、出力部13、補助記憶装置14、ROM15、RAM16及び通信部18を、データのやり取りが可能なように接続する。
[ハードウェアとプログラムとの協働]
CPU11(図2)は、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置14のプログラム領域14aに格納されているプログラムをRAM16のプログラム領域16aに書き込む。同様にCPU11は、補助記憶装置14のデータ領域14bに格納されている各種データを、RAM16のデータ領域16bに書き込む。そして、このプログラムやデータが書き込まれたRAM16上のアドレスがCPU11のレジスタ11cに格納される。CPU11の制御部11bは、レジスタ11cに格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM16上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部11bに順次実行させ、その演算結果をレジスタ11cに格納していく。なお、各プログラムは、単一のプログラム列として記載されていてもよく、また、少なくとも一部のプログラムが別個のモジュールとしてライブラリに格納されていてもよい。
図3は、CPU11にプログラムが読み込まれることにより構成される第1実施形態における匿名署名生成装置10−iの機能構成を例示したブロック図である。なお、図3における矢印はデータの流れを示すが、一時メモリ10r−iや制御部10s−iに入出力されるデータの流れは省略してある。
図3に例示するように、第1実施形態における匿名署名生成装置10−iは、鍵生成部10a−i(「鍵生成装置」に対応)と、入力部10b−iと、任意値生成部10c−1と、H関数演算部10d−iと、楕円スカラー倍算部10e−i,10g−iと、任意値生成部10h−iと、楕円演算部10i−i,10j−iと、H’関数演算部10k−iと、整数演算部10m−i,10n−iと、署名構成部10p−iと、通信部10q−i(「匿名署名出力部」に対応)と、制御部10r−iと、一時メモリ10s−iと、記憶部10t−iとを有する。また、鍵生成部10a−iは、秘密鍵生成部10aa−iと公開鍵生成部10ab−iと追跡鍵生成部10ac−iとを有する。また、楕円演算部10i−iは、楕円スカラー倍算部10ia−i,10ib−iと楕円加算部10ic−iとを有する。また、楕円演算部10j−iは、楕円スカラー倍算部10ja−i,10jb−iと楕円加算部10jc−iとを有する。
なお、記憶部10t−iおよび一時メモリ10s−iは、例えば、図2に記載したレジスタ11c、補助記憶装置14、RAM16、或いはこれらを結合した記憶領域に相当する。また、鍵生成部10a−i、任意値生成部10c−1、H関数演算部10d−i、楕円スカラー倍算部10e−i,10g−i、任意値生成部10h−i、楕円演算部10i−i,10j−i、H’関数演算部10k−i、整数演算部10m−i,10n−i、署名構成部10p−i及び制御部10r−iは、それぞれ処理を実現するためのプログラムがCPU11に読み込まれることにより構成されるものである。また、入力部10b−iは、所定のプログラムが読み込まれたCPU11の制御のもと駆動する入力部12であり、通信部10q−iは、所定のプログラムが読み込まれたCPU11の制御のもと駆動する通信部18である。また、匿名署名生成装置10−iは、制御部10r−iの制御のもと各処理を実行する。さらに、特に明示しない限り、演算過程の各データは逐一一時メモリ10s−iに読み書きされる。
また、上記のプログラムは単体でその機能を実現できるものでもよいし、当該プログラムがさらに他のライブラリ(記載していない)を読み出して各機能を実現するものでもよい。すなわち、各プログラムの少なくとも一部が、匿名署名生成装置10−iの機能をコンピュータに実行させるためのプログラムに相当する。
<署名検証装置の構成>
次に、署名検証装置の構成について説明する。
[ハードウェア構成]
図2に例示したのと同様なコンピュータによって構成される。
[ハードウェアとプログラムとの協働]
匿名署名生成装置の場合と同様、署名検証装置20は、コンピュータにプログラムが読み込まれることにより構成される。図4は、第1実施形態における署名検証装置20の機能構成を例示したブロック図である。なお、図4における矢印はデータの流れを示すが、記憶部20kや一時メモリ20jに入出力されるデータの流れは省略してある。
図4に例示するように、第1実施形態における署名検証装置20は、通信部20aと、検査部20bと、H関数演算部20cと、楕円演算部20d,20eと、H’関数演算部20fと、比較部20gと、検証結果出力部20hと、制御部20iと、一時メモリ20jと、記憶部20kとを有する。また、楕円演算部20dは、楕円スカラー倍算部20da,20dbと楕円加算部20dcとを有し、楕円演算部20eは、楕円スカラー倍算部20ea,20ebと楕円加算部20ecとを有する。
なお、記憶部20kおよび一時メモリ20jは、例えば、レジスタ、補助記憶装置、RAM、或いはこれらを結合した記憶領域に相当する。また、検査部20b、H関数演算部20c、楕円演算部20d,20e、H’関数演算部20f、比較部20g及び制御部20iは、それぞれ処理を実現するためのプログラムがCPUに読み込まれることにより構成されるものである。また、通信部20aは、所定のプログラムが読み込まれたCPUの制御のもと駆動する通信部であり、検証結果出力部20hは、所定のプログラムが読み込まれたCPUの制御のもと駆動する出力部である。また、署名検証装置20は、制御部20iの制御のもと各処理を実行する。さらに、特に明示しない限り、演算過程の各データは逐一一時メモリ20jに読み書きされる。
また、上記のプログラムは単体でその機能を実現できるものでもよいし、当該プログラムがさらに他のライブラリ(記載していない)を読み出して各機能を実現するものでもよい。すなわち、各プログラムの少なくとも一部が、署名検証装置20の機能をコンピュータに実行させるためのプログラムに相当する。
<管理装置の構成>
次に、管理装置30の構成について説明する。
[ハードウェア構成]
図2に例示したのと同様なコンピュータによって構成される。
[ハードウェアとプログラムとの協働]
匿名署名生成装置の場合と同様、管理装置30は、コンピュータにプログラムが読み込まれることにより構成される。図5は、第1実施形態における管理装置30の機能構成を例示したブロック図である。なお、図5における矢印はデータの流れを示すが、一時メモリ30nや制御部30mに入出力されるデータの流れは省略してある。
図5に例示するように、第1実施形態における管理装置30は、通信部30aと、検査部30bと、H関数演算部30cと、楕円演算部30d,30eと、H’関数演算部30fと、比較部30gと、ペアリング演算部30h,30iと、判定部30jと、出力部30kと、制御部30mと、一時メモリ30nと、記憶部30pとを有する。また、楕円演算部30dは、楕円スカラー倍算部30da,30dbと楕円加算部30dcとを有し、楕円演算部30eは、楕円スカラー倍算部30ea,30ebと楕円加算部30ecとを有する。
なお、記憶部30pおよび一時メモリ30nは、例えば、レジスタ、補助記憶装置、RAM、或いはこれらを結合した記憶領域に相当する。また、検査部30b、H関数演算部30c、楕円演算部30d,30e、H’関数演算部30f、比較部30g、ペアリング演算部30h,30i、判定部30j、制御部30mは、それぞれ処理を実現するためのプログラムがCPUに読み込まれることにより構成されるものである。また、通信部30aは、所定のプログラムが読み込まれたCPUの制御のもと駆動する通信部であり、出力部30kは、所定のプログラムが読み込まれたCPUの制御のもと駆動する出力部である。また、署名検証装置30は、制御部30mの制御のもと各処理を実行する。さらに、特に明示しない限り、演算過程の各データは逐一一時メモリ30nに読み書きされる。
また、上記のプログラムは単体でその機能を実現できるものでもよいし、当該プログラムがさらに他のライブラリ(記載していない)を読み出して各機能を実現するものでもよい。すなわち、各プログラムの少なくとも一部が、署名検証装置20の機能をコンピュータに実行させるためのプログラムに相当する。
<処理>
次に、第1実施形態の匿名署名システム1の処理について説明する。
[前処理]
まず、楕円曲線E/Fが選択される。前述のように、楕円曲線E/Fは、非trace-2の非超特異楕円曲線であることが望ましい。また、楕円曲線E/F上の点からなる位数がpである2つの巡回群G1,G2(G1≠G2)が選択される。例えば、前述の[楕円曲線]の欄で示した巡回群<P>,<Q>,<R>から、重複しないように2つの巡回群を選び、それぞれを巡回群G1,G2とする。そして、巡回群G1,G2の各生成元g1∈G1,g2∈G2が選択される。なお、安全性の面から、pは素数や因数分解が困難な合成数であることが望ましいが、pがその他の整数であってもよい。また、巡回群G1,G2の各群のビット長がセキュリティパラメータとなる。そして、各匿名署名生成装置10−w(∀w∈N)の記憶部10t−wには、生成元g1∈G1,g2∈G2とpとが格納される。また、署名検証装置20の記憶部20kには、生成元g1∈G1とpとが格納される。さらに、管理装置30の記憶部30pには、生成元g1∈G1,g2∈G2とpとが格納される。
また、2つの別個のハッシュ関数H:{0,1}→G1及びH’:{0,1}→Zが設定される。ここで、ハッシュ関数H:{0,1}→G1は、任意のビット値を巡回群G1の元に写すハッシュ関数を意味する。また、H’:{0,1}→Zは、任意のビット値を剰余類Zの元に写すハッシュ関数を意味する。このようなハッシュ関数H,H’は、SHA−1やMD5等を応用して容易に構成できる。このようなハッシュ関数H,H’は、匿名署名生成装置10−w(∀w∈N)、署名検証装置20及び管理装置30をそれぞれ構成するための各プログラムに書き込まれる。これにより、匿名署名生成装置10−w(∀w∈N)、署名検証装置20及び管理装置30では、共通のハッシュ関数H,H’によるハッシュ演算が可能となる。
[鍵生成処理]
次に、本形態の鍵生成処理について説明する。
図6は、第1実施形態の鍵生成処理を説明するためのフローチャートである。以下、図6に沿って、第1実施形態の鍵生成処理について説明する。なお、以下では、i番目(i∈L)の匿名署名生成装置の鍵生成処理のみを説明するが、同様な処理はすべての匿名署名生成装置10−w(∀w∈N)で実行される。
まず、匿名署名生成装置10−i(図3)の秘密鍵生成部10aa−iが、記憶部10t−iからpを読み込む。秘密鍵生成部10aa−iは、任意値x(i)∈を匿名署名生成装置10−iの秘密鍵x(i)として生成し、生成した秘密鍵x(i)を記憶部10t−iに出力し、記憶部10t−iに格納する(ステップS11)。なお、任意値の具体例としては、擬似乱数を例示できる。また、擬似乱数の生成は、例えば、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズムなどを用いて行う。また、擬似乱数ではなく、例えば、乱数表や利用者が設定した秘密情報などを用い、匿名署名生成装置間で重複しないように秘密鍵x(i)を設定してもよい。
次に、公開鍵生成部10ab−iが、記憶部10t−iから秘密鍵x(i)∈Zと生成元g1∈G1とを読み込む。公開鍵生成部10ab−iは、このように入力された秘密鍵x(i)∈Zと生成元g1∈G1とを用い、楕円曲線E/F上での楕円スカラー倍算y(i)=x(i)・g1∈G1を行い、演算結果y(i)を匿名署名生成装置10−iの公開鍵y(i)として記憶部10t−iに出力し、記憶部10t−iに格納する(ステップS12)。
次に、追跡鍵生成部10ac−iが、記憶部10t−iから秘密鍵x(i)∈Zと生成元g2∈G2とを読み込む。追跡鍵生成部10ac−iは、このように入力された秘密鍵x(i)∈Zと生成元g2∈G2とを用い、楕円曲線E/F上での楕円スカラー倍算t(i)=x(i)・g2∈G2を行い、演算結果t(i)を匿名署名生成装置10−iの追跡鍵t(i)として記憶部10t−iに出力し、記憶部10t−iに格納する(ステップS13)。
その後、制御部10r−iの制御のもと、通信部10q−iが、公開鍵y(i)と追跡鍵t(i)とをネットワーク40を通じ、管理装置30に送信する(ステップS14)。なお、少なくとも追跡鍵t(i)は、追跡鍵t(i)が第三者に漏洩しないよう、暗号化等の技術を用いて管理装置30に配送される。
最初に述べたように、ステップS11〜S14と同様な処理はすべての匿名署名生成装置10−w(∀w∈N)で実行される。管理装置30は、各匿名署名生成装置10−w(∀w∈N)から送信された公開鍵y(w)と追跡鍵t(w)とを通信部30aで受信し、記憶部30pに格納する。そして、管理装置30は、公開鍵y(w)を公開鍵リストとして公開する。具体的には、例えば、各匿名署名生成装置10−w(∀w∈N)及び署名検証装置20が、管理装置30から各公開鍵y(w)をダウンロードすることが可能なように管理装置30へのアクセス権限を設定する。一方、追跡鍵t(w)は非公開とする。すなわち、例えば、何れの装置にも管理装置30から追跡鍵t(w)をダウンロードする権限が与えられない。
[署名生成処理]
次に、本形態の署名生成処理について説明する。
図7,8は、第1実施形態における署名生成処理を説明するためのフローチャートである。以下、図7,8に従って、第1実施形態の署名生成処理について説明する。なお、以下では、i番目の匿名署名生成装置10−iが、u個の匿名署名生成装置10−k(k∈L,L={0,...,u−1}⊆N)からなる集合L(署名グループ)を構成して匿名署名を生成する例を説明する。
まず、匿名署名生成装置10−i(図3)の入力部10b−iに署名グループを構成する集合L(L={0,...,u−1}⊆N)が入力され、記憶部10t−iに格納される(ステップS21)。次に、制御部10r−iの制御のもと、通信部10q−iが集合Lを特定する情報を、ネットワーク40を通じて管理装置30に送信する。管理装置30(図5)は、通信部30aでこの情報を受信する。管理装置30の制御部30mは、すべてのk∈Lに対応する公開鍵y(k)∈G1(∀k∈L)を記憶部30pから読み出し、それらを通信部30aから匿名署名生成装置10−iに返送する。匿名署名生成装置10−iの通信部10q−iは、管理装置30から送信された公開鍵y(k)∈G1(∀k∈L)を受信し、公開鍵y(k)∈G1(∀k∈L)は、記憶部10t−iに格納される(ステップS22)。なお、匿名署名生成装置10−iは、必ずしもすべてのk∈Lに対応する公開鍵y(k)∈G1(∀k∈L)を取得する必要はなく、自らの公開鍵y(i)以外の公開鍵y(j)∈G1(j∈L,j≠i)のみを管理装置30から取得することとしてもよい。
次に、匿名署名生成装置10−i(図3)の入力部10b−iに署名対象のメッセージmが入力され、記憶部10t−iに格納される(ステップS23)。また、任意値生成部10c−iが、記憶部10t−iからpを読み込んで任意値r∈を生成し、生成した任意値r∈を記憶部10t−iに格納する(ステップS24)。なお、任意値の具体例としては、擬似乱数を例示できる。また、H関数演算部10d−iが、記憶部10t−iから任意値r∈Zとメッセージmとを読み込み、このように入力された任意値r∈Zとメッセージmとのビット結合値(r,m)に対して前述のハッシュ関数Hを作用させたh=H(r,m)∈G1を算出し、算出された演算結果h∈G1を記憶部10t−iに格納する(ステップS25)。次に楕円スカラー倍算部10e−iが、記憶部10t−iから演算結果h∈G1と秘密鍵x(i)とを読み込む。楕円スカラー倍算部10e−iは、このように入力された情報を用いて楕円曲線E/F上での楕円スカラー倍算σ(i)=x(i)・h∈G1を行い、その演算結果σ(i)を記憶部10t−iに出力し、記憶部10t−iに格納する(ステップS26)。
次に、任意値生成部10h−iが、記憶部10t−iから集合Lと生成元g1∈G1を読み込む。そして、任意値生成部10h−iは、各j∈L(j≠i)に対し、任意値σ(j)∈G1を生成し、生成した各任意値σ(j)∈G1を記憶部10t−iに出力して当該記憶部10t−iに格納する(ステップS27)。なお、任意値の具体例としては、擬似乱数の組を例示できる。
次に、任意値生成部10c−iが、記憶部10t−iからpを読み込んで任意値r(i)∈を生成し、生成した任意値r(i)∈Zを記憶部10t−iに格納する(ステップS28)。なお、任意値の具体例としては、擬似乱数を例示できる。次に、楕円スカラー倍算部10f−iが、記憶部10t−iから任意値r(i)∈Zと生成元g1∈G1とを読み込む。楕円スカラー倍算部10f−iは、入力されたこれらの情報を用い、楕円曲線E/F上での楕円スカラー倍算a(i)=r(i)・g1∈G1を行い、その演算結果a(i)を記憶部10t−iに出力して記憶部10t−iに格納する(ステップS29)。また、楕円スカラー倍算部10g−iが、記憶部10t−iから任意値r(i)∈Zと演算結果h∈G1とを読み込む。楕円スカラー倍算部10g−iは、入力されたこれらの情報を用い、楕円曲線E/F上での楕円スカラー倍算b(i)=r(i)・h∈G1を行い、その演算結果b(i)を記憶部10t−iに出力して記憶部10t−iに格納する(ステップS30)。
次に、任意値生成部10c−iが、記憶部10t−iからpを読み込んで、各j∈L(j≠i)に対し、任意値z(j),c(j)∈を生成し、生成した任意値z(j),c(j)∈Zを記憶部10t−iに格納する(ステップS31)。
次に、楕円演算部10i−iの楕円スカラー倍算部10ia−iが、記憶部10t−iから任意値z(j)(∀j∈L(j≠i):集合Lに属するi以外のすべての元j)と生成元g1∈G1とを読み込む。楕円スカラー倍算部10ia−iは、入力されたこれらの情報を用い、各j∈L(j≠i)に対し、それぞれ、楕円曲線E/F上での楕円スカラー倍算z(j)・g1∈G1を行い、その演算結果z(j)・g1∈G1を記憶部10t−iに格納する(ステップS32)。また、楕円演算部10i−iの楕円スカラー倍算部10ib−iが、記憶部10t−iから任意値c(j)と公開鍵y(j)∈G1(∀j∈L(j≠i))とを読み込む。楕円スカラー倍算部10ib−iは、入力されたこれらの情報を用い、各j∈L(j≠i)に対し、それぞれ、楕円曲線E/F上での楕円スカラー倍算c(j)・y(j)∈G1を行い、その演算結果c(j)・y(j)∈G1を記憶部10t−iに格納する(ステップS33)。次に、楕円演算部10i−iの楕円加算部10ic−iが、記憶部10t−iから演算結果z(j)・g1∈G1と演算結果c(j)・y(j)∈G1とを読み込む。楕円加算部10ic−iは、入力されたこれらの情報を用い、楕円曲線E/F上での楕円加算a(j)=z(j)・g1+c(j)・y(j)∈G1を行い、当該演算結果a(j)を記憶部10t−iに出力し、記憶部10t−iに格納する(ステップS34)。
次に、楕円演算部10j−iの楕円スカラー倍算部10ja−iが、記憶部10t−iから任意値z(j)∈Z(∀j∈L(j≠i))と演算結果h∈G1とを読み込む。楕円スカラー倍算部10ja−iは、入力されたこれらの情報を用い、各j∈L(j≠i)に対し、それぞれ、楕円曲線E/F上での楕円スカラー倍算z(j)・h∈G1を行い、その演算結果z(j)・h∈G1を記憶部10t−iに格納する(ステップS35)。また、楕円演算部10j−iの楕円スカラー倍算部10jb−iが、記憶部10t−iから任意値c(j)∈Zと任意値σ(j)∈G1(∀j∈L(j≠i))とを読み込む。楕円スカラー倍算部10jb−iは、入力されたこれらの情報を用い、各j∈L(j≠i)に対し、それぞれ、楕円曲線E/F上での楕円スカラー倍算c(j)・σ(j)∈G1を行い、その演算結果c(j)・σ(j)∈G1を記憶部10t−iに格納する(ステップS36)。次に、楕円演算部10j−iの楕円加算部10jc−iが、記憶部10t−iから演算結果z(j)・h∈G1と演算結果c(j)・σ(j)∈G1とを読み込む。楕円加算部10jc−iは、入力されたこれらの情報を用い、楕円曲線E/F上での楕円加算b(j)=z(j)・h+c(j)・σ(j)∈G1を行い、当該演算結果b(j)を記憶部10t−iに出力し、記憶部10t−iに格納する(ステップS37)。
次に、H’関数演算部10k−iが、記憶部10t−iから、任意値r∈Zとメッセージmとすべてのk∈Lについてのσ(k),a(k),b(k)∈G1とを読み込む。H’関数演算部10k−iは、任意値r∈Zとメッセージmとすべてのk∈Lについてのσ(k),a(k),b(k)∈G1の各要素とを含む入力値に対し、ハッシュ関数H’を作用させ、その演算結果
c=H’(r,m,(σ(k))k∈L,(a(k))k∈L,(b(k))k∈L)∈Z
を記憶部10t−iに出力し、記憶部10t−iに格納する(ステップS38)。なお、(σ(k))k∈Lは、σ(k)=(σ(k),σ(k))∈E/Fとした場合における、(σ(1),σ(1),σ(2),σ(2),...,σ(L),σ(L))を意味する。(a(k))k∈L,(b(k))k∈Lについても同様である。
次に、整数演算部10m−iが、記憶部10t−iから、pと演算結果c∈Zと任意値c(j)∈Z(∀j∈L(j≠i))とを読み込む。整数演算部10m−iは、入力されたこれらの情報を用い、
c(i)=c−Σj≠ic(j) mod p
の演算を行い、その演算結果c(i)∈Zを記憶部10t−iに出力し、記憶部10t−iに格納する(ステップS39)。なお、Σj≠ic(j)は、∀j∈L(j≠i)に対応するc(j)の総和を意味する。
次に、整数演算部10n−iが、記憶部10t−iから任意値r(i)∈Zと演算結果c(i)∈Zと秘密鍵x(i)∈Zとpとを読み込む。整数演算部10n−iは、入力されたこれらの情報を用い、
z(i)=r(i)−c(i)・x(i) mod p
の演算を行い、その演算結果z(i)を記憶部10t−iに出力し、記憶部10t−iに格納する(ステップS40)。
次に、署名構成部10p−iが、記憶部10t−iから、任意値r∈Zとすべてのk∈Lについてのσ(k),c(k),z(k)とを読み込み、それらのビット結合である
匿名署名σ=(r,(σ(k))k∈L,(c(k))k∈L,(z(k))k∈L
を構成し、記憶部10t−iに格納する(ステップS41)。そして、記憶部10t−iから通信部10q−iに、集合Lと匿名署名σとメッセージmとが送られ、通信部10q−iは、匿名署名σを集合Lとメッセージmとともに送信する(ステップS42)。
[署名検証処理]
次に、本形態の署名検証処理について説明する。
図9は、第1実施形態における署名検証処理を説明するためのフローチャートである。以下、図9に従って、第1実施形態の署名検証処理について説明する。
まず、署名検証装置20(図4)の通信部20aが、匿名署名σ=(r,(σ(k))k∈L,(c(k))k∈L,(z(k))k∈L)と集合Lとメッセージmとを受信する(ステップS51)。このように通信部20aに入力された匿名署名σと集合Lとメッセージmは、記憶部20kに格納される。
次に、制御部20iの制御のもと、記憶部20kに格納された集合Lを特定する情報が通信部20aに送られ、通信部20aは、この情報をネットワーク40を通じて管理装置30に送信する。管理装置30(図5)は、通信部30aでこの情報を受信する。管理装置30の制御部30mは、すべてのk∈Lに対応する公開鍵y(k)∈G1(∀k∈L)を記憶部30pから読み出し、それらを通信部30aから署名検証装置20に返送する。署名検証装置20の通信部20aは、管理装置30から送信された公開鍵y(k)∈G1(∀k∈L)を受信し、公開鍵y(k)∈G1(∀k∈L)は、記憶部20kに格納される(ステップS52)。
次に、検査部20bが、記憶部20kからpとg1とすべてのk(∀k∈L)についてのy(k),σ(k),c(k),z(k)とを読み込み、すべてのk(∀k∈L)について
y(k)∈G1 …(10)
σ(k)∈G1 …(11)
c(k)∈Z …(12)
z(k)∈Z …(13)
を満たすか否かを判定し、その判定結果を制御部20iに送る(ステップS53)。ここで、何れかのk(∃k∈L)について式(10)〜(13)の何れかが満たされなかった場合、制御部20iは、検証結果出力部20hに0(拒絶:匿名署名σが不合格である旨)を出力させ(ステップS64)、処理を終了させる。
一方、すべてのk(∀k∈L)について式(10)〜(13)のすべてが満たされた場合、制御部20iは、H関数演算部20cに演算指示を与える。これを受けたH関数演算部20cは、記憶部20kからrとmとを読み込む。H関数演算部20cは、入力されたこれらの情報を用い、ハッシュ演算h=H(r.m)∈G1を実行し、その演算結果hを記憶部20kに格納する(ステップS54)。
次に、楕円演算部20dの楕円スカラー倍算部20daが、記憶部20kからz(k)(∀k∈L)と生成元g1∈G1とを読み込む。楕円スカラー倍算部20daは、入力されたこれらの情報を用い、各k∈Lに対し、それぞれ、楕円曲線E/F上での楕円スカラー倍算z(k)・g1∈G1を行い、その演算結果z(k)・g1∈G1を記憶部20kに格納する(ステップS55)。また、楕円演算部20dの楕円スカラー倍算部20dbが、記憶部20kからc(k)と公開鍵y(k)∈G1(∀k∈L)とを読み込む。楕円スカラー倍算部20dbは、入力されたこれらの情報を用い、各k∈Lに対し、それぞれ、楕円曲線E/F上での楕円スカラー倍算c(k)・y(k)∈G1を行い、その演算結果c(k)・y(k)∈G1を記憶部20kに格納する(ステップS56)。次に、楕円演算部20dの楕円加算部20dcが、記憶部20kから演算結果z(k)・g1∈G1と演算結果c(k)・y(k)∈G1とを読み込む。楕円加算部20dcは、入力されたこれらの情報を用い、楕円曲線E/F上での楕円加算a(k)=z(k)・g1+c(k)・y(k)∈G1を行い、当該演算結果a(k)を記憶部20kに出力し、記憶部20kに格納する(ステップS57)。
次に、楕円演算部20eの楕円スカラー倍算部20eaが、記憶部20kからz(k)∈Z(∀k∈L)と演算結果h∈G1とを読み込む。楕円スカラー倍算部20eaは、入力されたこれらの情報を用い、各k∈Lに対し、それぞれ、楕円曲線E/F上での楕円スカラー倍算z(k)・h∈G1を行い、その演算結果z(k)・h∈G1を記憶部20kに格納する(ステップS58)。また、楕円演算部20eの楕円スカラー倍算部20ebが、記憶部20kからc(k)∈Zとσ(k)∈G1(∀k∈L)とを読み込む。楕円スカラー倍算部20ebは、入力されたこれらの情報を用い、各k∈Lに対し、それぞれ、楕円曲線E/F上での楕円スカラー倍算c(k)・σ(k)∈G1を行い、その演算結果c(k)・σ(k)∈G1を記憶部20kに格納する(ステップS59)。次に、楕円演算部20eの楕円加算部20ecが、記憶部20kから演算結果z(k)・h∈G1と演算結果c(k)・σ(k)∈G1とを読み込む。楕円加算部20ecは、入力されたこれらの情報を用い、楕円曲線E/F上での楕円加算b(k)=z(k)・h+c(k)・σ(k)∈G1を行い、当該演算結果b(k)を記憶部20kに出力し、記憶部20kに格納する(ステップS60)。
次に、H’関数演算部20fが、記憶部20kから、r∈Zとメッセージmとすべてのk∈Lについてのσ(k),a(k),b(k)∈G1とを読み込む。H’関数演算部20fは、r∈Zとメッセージmとすべてのk∈Lについてのσ(k),a(k),b(k)∈G1の各要素とを含む入力値に対し、ハッシュ関数H’を作用させ、その演算結果
c=H’(r,m,(σ(k))k∈L,(a(k))k∈L,(b(k))k∈L)∈Z
を記憶部20kに出力し、記憶部20kに格納する(ステップS61)。
次に、比較部20gが、記憶部20kからpと匿名署名σのc(k)(∀k∈L)と演算結果cとを読み込む。比較部20gは読み込んだこれらの情報を用い、
c=Σk∈Lc(k)mod p …(14)
を満たすか否かを判定し、その判定結果を制御部20iに出力する(ステップS62)。なお、Σk∈Lc(j)は、∀k∈Lに対応するc(k)の総和を意味する。
ここで、式(14)を満たした場合、制御部20iは、検証結果出力部20hに1(受理:匿名署名σが合格である旨)を出力させ(ステップS63)、処理を終了させる。一方、式(14)を満たさなかった場合、制御部20iは、検証結果出力部20hに0(拒絶:匿名署名σが不合格である旨)を出力させ(ステップS64)、処理を終了させる。
[匿名性無効化処理]
次に、管理装置30が匿名署名σの匿名性を無効にする処理について説明する。
図10,図11は、第1実施形態における匿名性無効化処理を説明するためのフローチャートである。以下、図10,図11に従って、第1実施形態の匿名性無効化処理について説明する。
まず、管理装置30(図5)の通信部30aが、匿名署名σ=(r,(σ(k))k∈L,(c(k))k∈L,(z(k))k∈L)と集合Lとメッセージmとを受信する(ステップS71)。このように通信部30aに入力された匿名署名σと集合Lとメッセージmは、記憶部30pに格納される。
次に、検査部30bが、記憶部30pからpとg1とすべてのk(∀k∈L)についてのy(k),σ(k),c(k),z(k)とを読み込み、すべてのk(∀k∈L)について、前述の式(10)〜(13)を満たすか否かを判定し、その判定結果を制御部30mに送る(ステップS73)。ここで、何れかのk(∃k∈L)について式(10)〜(13)の何れかが満たされなかった場合、制御部30mは、出力部30kに{}(空集合:匿名署名σが適切ではない旨を示す)を出力させ(ステップS100)、処理を終了させる。
一方、すべてのk(∀k∈L)について式(10)〜(13)のすべてが満たされた場合、制御部30mは、H関数演算部30cに演算指示を与える。これを受けたH関数演算部30cは、記憶部30pからrとmとを読み込む。H関数演算部30cは、入力されたこれらの情報を用い、ハッシュ演算h=H(r.m)∈G1を実行し、その演算結果hを記憶部30pに格納する(ステップS74)。
次に、楕円演算部30dの楕円スカラー倍算部30daが、記憶部30pからz(k)(∀k∈L)と生成元g1∈G1とを読み込む。楕円スカラー倍算部30daは、入力されたこれらの情報を用い、各k∈Lに対し、それぞれ、楕円曲線E/F上での楕円スカラー倍算z(k)・g1∈G1を行い、その演算結果z(k)・g1∈G1を記憶部30pに格納する(ステップS75)。また、楕円演算部30dの楕円スカラー倍算部30dbが、記憶部30pからc(k)と公開鍵y(k)∈G1(∀k∈L)とを読み込む。楕円スカラー倍算部30dbは、入力されたこれらの情報を用い、各k∈Lに対し、それぞれ、楕円曲線E/F上での楕円スカラー倍算c(k)・y(k)∈G1を行い、その演算結果c(k)・y(k)∈G1を記憶部30pに格納する(ステップS76)。次に、楕円演算部30dの楕円加算部30dcが、記憶部30pから演算結果z(k)・g1∈G1と演算結果c(k)・y(k)∈G1とを読み込む。楕円加算部30dcは、入力されたこれらの情報を用い、楕円曲線E/F上での楕円加算a(k)=z(k)・g1+c(k)・y(k)∈G1を行い、当該演算結果a(k)を記憶部30pに出力し、記憶部30pに格納する(ステップS77)。
次に、楕円演算部30eの楕円スカラー倍算部30eaが、記憶部30pからz(k)∈Z(∀k∈L)と演算結果h∈G1とを読み込む。楕円スカラー倍算部30eaは、入力されたこれらの情報を用い、各k∈Lに対し、それぞれ、楕円曲線E/F上での楕円スカラー倍算z(k)・h∈G1を行い、その演算結果z(k)・h∈G1を記憶部30pに格納する(ステップS78)。また、楕円演算部30eの楕円スカラー倍算部30ebが、記憶部30pからc(k)∈Zとσ(k)∈G1(∀k∈L)とを読み込む。楕円スカラー倍算部30ebは、入力されたこれらの情報を用い、各k∈Lに対し、それぞれ、楕円曲線E/F上での楕円スカラー倍算c(k)・σ(k)∈G1を行い、その演算結果c(k)・σ(k)∈G1を記憶部30pに格納する(ステップS79)。次に、楕円演算部30eの楕円加算部30ecが、記憶部30pから演算結果z(k)・h∈G1と演算結果c(k)・σ(k)∈G1とを読み込む。楕円加算部30ecは、入力されたこれらの情報を用い、楕円曲線E/F上での楕円加算b(k)=z(k)・h+c(k)・σ(k)∈G1を行い、当該演算結果b(k)を記憶部30pに出力し、記憶部30pに格納する(ステップS80)。
次に、H’関数演算部30fが、記憶部30pから、r∈Zとメッセージmとすべてのk∈Lについてのσ(k),a(k),b(k)∈G1とを読み込む。H’関数演算部10k−iは、r∈Zとメッセージmとすべてのk∈Lについてのσ(k),a(k),b(k)∈G1の各要素とを含む入力値に対し、ハッシュ関数H’を作用させ、その演算結果
c=H’(r,m,(σ(k))k∈L,(a(k))k∈L,(b(k))k∈L)∈Z
を記憶部30pに出力し、記憶部30pに格納する(ステップS81)。
次に、比較部30gが、記憶部30pからpと匿名署名σのc(k)(∀k∈L)と演算結果cとを読み込む。比較部30gは読み込んだこれらの情報を用い、前述の式(14)を満たすか否かを判定し、その判定結果を制御部30mに出力する(ステップS82)。ここで、前述の式(14)を満たされなかった場合、制御部30mは、出力部30kに{}(空集合:匿名署名σが適切ではない旨を示す)を出力させ(ステップS100)、処理を終了させる。
一方、前述の式(14)を満たした場合、制御部30mは、kに1を代入し、集合Sを{}(空集合)とし、当該kとSとを一時メモリ30nに格納する(ステップs83)。
次に、ペアリング演算部30hが、演算結果h∈G1と追跡鍵t(k)∈G2とを記憶部30pから読み込む。ペアリング演算部30hは、入力された演算結果hと追跡鍵t(k)との組をペアリング関数e:G1×G2→G3に代入し、その演算結果e(h,t(k))を記憶部30pに出力し、記憶部30pに格納する(ステップS84)。また、ペアリング演算部30iが、σ(k)∈G1と生成元g2∈G2とを記憶部30pから読み込む。ペアリング演算部30iは、入力されたσ(k)と生成元g2との組をペアリング関数eに代入し、その演算結果e(σ(k),g2)を記憶部30pに出力し、記憶部30pに格納する(ステップS85)。
次に、判定部30jが、記憶部30pから演算結果e(h,t(k))及びe(σ(k),g2)を読み込む。判定部30jは、入力されたe(h,t(k))とe(σ(k),g2)とが一致するか否かを判定する(ステップS86)。ここで、e(h,t(k))とe(σ(k),g2)とが一致すると判定された場合、制御部30mは、一時メモリ30nに格納されているkを集合Sに追加したものを新たな集合S(S=S∪k)とし、当該集合Sを一時メモリ30nに格納し(ステップS87)、処理をステップS88へ移す。一方、e(h,t(k))とe(σ(k),g2)とが一致しないと判定された場合、制御部30mは、集合Sを更新することなく、処理をステップS88に移す。
ステップS88では、制御部30mが一時メモリ30nに格納されたkと記憶部30pに格納されたLとを参照し、k=Lであるか否か否かを判定する(ステップS88)。ここで、k=Lでなければ、制御部30mは、k+1を新たなkとして一時メモリ30nに格納し(ステップS89)、処理をステップS84に戻す。一方、k=Lであれば、制御部30mは、一時メモリ30nに格納されている最新の集合Sを出力部30kに出力させ(ステップS90)、処理を終了させる。この集合Sの何れかの元に対応する匿名署名生成装置が真に署名を生成した匿名署名生成装置である。通常、出力される集合Sには真に署名を生成した1つの匿名署名生成装置に対応する元のみが含まれる。
〔第2実施形態〕
次に、本発明の第2実施形態について説明する。第2実施形態は第1実施形態の変形例であり、匿名署名生成装置が鍵生成を行うのではなく、鍵生成装置がすべての匿名署名生成装置の鍵生成を行う構成である。以下では、第1実施形態との相違点を中心に説明し、第1実施形態と共通する事項については第1実施形態と同じ符号を付して説明を省略する。
<全体構成>
図12は、第2実施形態の匿名署名システム100の全体構成を示した概念図である。
図12に示すように、本形態の匿名署名システム100は、署名クループを構成し得るn個(n≧2)の匿名署名生成装置110−0〜(n−1)、署名検証を行なう署名検証装置20、匿名署名の匿名性を無効化する管理装置30及び鍵生成装置140を有しており、匿名署名生成装置110−0〜(n−1)、署名検証装置20、管理装置30及び鍵生成装置140は、相互にネットワーク40を通じて接続可能に構成されている。
<匿名署名生成装置の構成>
次に、匿名署名生成装置の構成について説明する。なお、以下では匿名署名生成装置110−iを例にとって説明する。その他の匿名署名生成装置の構成も匿名署名生成装置110−iと同様である。
[ハードウェア構成]
第1の実施形態と同じである。
[ハードウェアとプログラムとの協働]
第2実施形態の匿名署名生成装置もコンピュータに所定のプログラムが読み込まれることにより構成される。図13は、このように構成される第2実施形態における匿名署名生成装置110−iの機能構成を例示したブロック図である。なお、図13における矢印はデータの流れを示すが、一時メモリ110r−iや制御部110s−iに入出力されるデータの流れは省略してある。また、図13において第1実施形態の匿名署名生成装置10−i(図3)と共通する部分については、図3と同じ符号を付した。
図13に例示するように、第2実施形態の匿名署名生成装置110−iの匿名署名生成装置10−i(図3)との相違点は、匿名署名生成装置110−iが鍵生成部10a−iを有しない点のみである。
<鍵生成装置>
次に、鍵生成装置の構成について説明する。
[ハードウェア構成]
第1の実施形態の匿名署名生成装置と同様である。
[ハードウェアとプログラムとの協働]
第2実施形態の鍵生成装置はコンピュータに所定のプログラムが読み込まれることにより構成される。図14は、このように構成される第2実施形態における鍵生成装置140の機能構成を例示したブロック図である。なお、図14における矢印はデータの流れを示すが、一時メモリ140fや制御部140eに入出力されるデータの流れは省略してある。
図14に示すように、本形態の鍵生成装置140は、通信部140aと、秘密鍵生成部140bと、公開鍵生成部140cと、追跡鍵生成部140dと、制御部140eと、一時メモリ140fと、記憶部140gとを有する。また、鍵生成装置140は、制御部140eの制御のもと各処理を実行する。さらに、特に明示しない限り、演算過程の各データは逐一一時メモリ140fに読み書きされる。
また、上記のプログラムは単体でその機能を実現できるものでもよいし、当該プログラムがさらに他のライブラリ(記載していない)を読み出して各機能を実現するものでもよい。すなわち、各プログラムの少なくとも一部が、鍵生成装置140の機能をコンピュータに実行させるためのプログラムに相当する。
<処理>
次に、第2実施形態の匿名署名システム100の処理について説明する。第2実施形態の処理と第1実施形態の処理との相違点は前処理と鍵生成処理のみである。以下では、相違点である前処理と鍵生成処理のみを説明する。
[前処理]
第1実施形態の前処理との相違点は、第1実施形態の前処理に加え、鍵生成装置140の記憶部140gにも、生成元g1∈G1,g2∈G2とpとが格納される点である。その他は、第1実施形態と同じである。
[鍵生成処理]
図15は、第2実施形態の鍵生成処理を説明するためのフローチャートである。以下、図15に沿って、第2実施形態の鍵生成処理について説明する。
まず、鍵生成装置140(図14)の秘密鍵生成部140bが、記憶部140gからpを読み込む。秘密鍵生成部140bは、任意値x(w)∈をw番目(w∈N(N={0,…,n−1}))の匿名署名生成装置110−wの秘密鍵x(w)として生成し、生成した各秘密鍵x(w)を記憶部140gに出力し、記憶部140gに格納する(ステップS101)。なお、任意値の具体例としては、擬似乱数を例示できる。また、擬似乱数ではなく、例えば、乱数表や利用者が設定した秘密情報などを用い、匿名署名生成装置間で重複しないように秘密鍵x(w)を設定してもよい。
次に、公開鍵生成部140cが、記憶部140gから∀w∈Nに対応する秘密鍵x(w)∈Zと生成元g1∈G1とを読み込む。公開鍵生成部140cは、このように入力された秘密鍵x(w)∈Zと生成元g1∈G1とを用い、楕円曲線E/F上での楕円スカラー倍算y(w)=x(w)・g1∈G1を行い、各演算結果y(w)を各匿名署名生成装置110−wの公開鍵y(w)として記憶部140gに出力し、記憶部140gに格納する(ステップS102)。
次に、追跡鍵生成部140dが、記憶部140gから∀w∈Nに対応する秘密鍵x(w)∈Zと生成元g2∈G2とを読み込む。追跡鍵生成部140dは、このように入力された秘密鍵x(w)∈Zと生成元g2∈G2とを用い、楕円曲線E/F上での楕円スカラー倍算t(w)=x(w)・g2∈G2を行い、各演算結果t(w)を匿名署名生成装置110−wの追跡鍵t(w)として記憶部140gに出力し、記憶部140gに格納する(ステップS103)。
その後、制御部140eの制御のもと、通信部140aが、各秘密鍵x(w)をそれぞれ対応する匿名署名生成装置110−wへ送信し、すべてのw∈Nについての公開鍵y(w)と追跡鍵t(w)とを管理装置30に送信する(ステップS14)。なお、少なくとも秘密鍵x(w)と追跡鍵t(i)とは、それらの情報が第三者に漏洩しないよう、暗号化等の技術を用いて配送される。
管理装置30は、送信された公開鍵y(w)と追跡鍵t(w)とを通信部30aで受信し、記憶部30pに格納する。そして、管理装置30は、公開鍵y(w)を公開鍵リストとして公開する。また、各匿名署名生成装置110−wは、送信された秘密鍵x(w)を通信部10q−iで受信し、記憶部10t−iに格納する。
鍵生成以降の処理は第1実施形態と同じである。
〔変形例〕
なお、本発明は上述の各実施の形態に限定されるものではない。例えば、上述の各実施の形態では、生成元g1∈G1,g2∈G2を事前に装置間で共有する構成であった。しかし、生成元g1∈G1,g2∈G2を事前に装置間で共有せず、y(w)とg1∈G1との組を公開鍵とし、t(w)とg2∈G2との組を追跡鍵としてもよい。この場合、生成元g1∈G1,g2∈G2を事前に装置間で共有する必要がなくなり、さらに、匿名署名生成装置毎に、生成元g1∈G1とg2∈G2とを独立に選択することも可能となる。また、g1,g2,pの情報を各装置の記憶部に格納するのではなく、各装置にインストールされるプログラムがこれらの情報を保持していてもよい。
また、各実施形態では、h=H(r,m)∈G1としたが、装置間で統一されているのであれば、r,mのビット結合配置はどのようなものでもよい。また、装置間で共用される他の情報とr,mとのビット結合値のハッシュ値をhとしてもよい。さらに、h=H(m)∈G1としてもよいが、前述のように、この場合には安全性に多少問題が生じる。
その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェアで実現してもよい。
本発明は、グループ署名を用いるあらゆる利用分野に適用可能である。
図1は、第1実施形態の匿名署名システムの全体構成を示した概念図である。 図2は、第1実施形態における匿名署名生成装置のハードウェア構成を例示したブロック図である。 図3は、第1実施形態における匿名署名生成装置の機能構成を例示したブロック図である。 図4は、第1実施形態における署名検証装置の機能構成を例示したブロック図である。 図5は、第1実施形態における管理装置の機能構成を例示したブロック図である。 図6は、第1実施形態の鍵生成処理を説明するためのフローチャートである。 図7は、第1実施形態における署名生成処理を説明するためのフローチャートである。 図8は、第1実施形態における署名生成処理を説明するためのフローチャートである。 図9は、第1実施形態における署名検証処理を説明するためのフローチャートである。 図10は、第1実施形態における匿名性無効化処理を説明するためのフローチャートである。 図11は、第1実施形態における匿名性無効化処理を説明するためのフローチャートである。 図12は、第2実施形態の匿名署名システムの全体構成を示した概念図である。 図13は、第2実施形態における匿名署名生成装置の機能構成を例示したブロック図である。 図14は、第2実施形態における鍵生成装置の機能構成を例示したブロック図である。 図15は、第2実施形態の鍵生成処理を説明するためのフローチャートである。
符号の説明
1,100 匿名署名システム
10,110 匿名署名生成装置
20 署名検証装置
30 管理装置
140 鍵生成装置

Claims (13)

  1. 匿名署名処理に必要な鍵を生成する鍵生成装置であって、
    整数の任意値x(w)をw番目(w∈N(N={0,…,n−1}))の匿名署名生成装置の秘密鍵x(w)として生成し、生成した各秘密鍵x(w)を出力する秘密鍵生成部と、
    各w∈Nに対応する各秘密鍵x(w)を入力とし、有限体F上に定義された楕円曲線E/F上の点からなる位数pの巡回群G1の生成元をg1とした場合における、当該楕円曲線E/F上での楕円スカラー倍算y(w)=x(w)・g1∈G1を行い、各演算結果y(w)をk番目の匿名署名生成装置の公開鍵y(w)として出力する公開鍵生成部と、
    各w∈Nに対応する各秘密鍵x(w)を入力とし、上記楕円曲線E/F上の点からなる位数pの巡回群G2の生成元をg2とした場合における、当該楕円曲線E/F上での楕円スカラー倍算t(w)=x(w)・g2を行い、各演算結果t(w)をw番目の匿名署名生成装置の追跡鍵t(w)として出力する追跡鍵生成部と、
    を有することを特徴とする鍵生成装置。
  2. 請求項1に記載の鍵生成装置であって、
    上記巡回群G1と上記巡回群G2とで重複する元が存在しない、
    ことを特徴とする鍵生成装置。
  3. 署名クループを構成するu個(u≧2)の匿名署名生成装置の1つであるi番目(i∈L,L={0,…,u−1})の匿名署名生成装置であって、
    整数である自らの秘密鍵x(i)を格納する第1記憶部と、
    有限体F上に定義された楕円曲線E/F上の点からなる位数pの巡回群G1の生成元をg1とし、j番目(j∈L,j≠i)の匿名署名生成装置の秘密鍵をx(j)とした場合における、当該楕円曲線E/F上での楕円スカラー倍算値y(j)=x(j)・g1∈G1であるj番目の匿名署名生成装置の公開鍵y(j)を、すべてのjについて格納する第2記憶部と、
    署名対象であるメッセージmを格納する第3記憶部と、
    上記メッセージmを含む値に対し、当該値を上記巡回群G1の元へ写す関数Hを作用させた演算結果h∈G1と、上記秘密鍵x(i)とを入力とし、上記楕円曲線E/F上での楕円スカラー倍算σ(i)=x(i)・h∈G1を行い、その演算結果σ(i)を出力する第1楕円スカラー倍算部と、
    各j∈L(j≠i)に対し、任意値σ(j)∈G1を生成して出力する第1任意値生成部と、
    整数の任意値r(i)を生成して出力する第2任意値生成部と、
    上記任意値r(i)を入力とし、上記楕円曲線E/F上での楕円スカラー倍算a(i)=r(i)・g1∈G1を行い、その演算結果a(i)を出力する第2楕円スカラー倍算部と、
    上記任意値r(i)と上記演算結果hとを入力とし、上記楕円曲線E/F上での楕円スカラー倍算b(i)=r(i)・h∈G1を行い、その演算結果b(i)を出力する第3楕円スカラー倍算部と、
    各j∈L(j≠i)に対し、整数の任意値z(j),c(j)を生成して出力する第3任意値生成部と、
    上記任意値z(j),c(j)と上記公開鍵y(j)とを入力とし、各j∈L(j≠i)に対し、それぞれ、上記楕円曲線E/F上での楕円スカラー倍算z(j)・g1及びc(j)・y(j)∈G1と、楕円加算a(j)=z(j)・g1+c(j)・y(j)∈G1とを行い、当該演算結果a(j)を出力する第1楕円演算部と、
    上記演算結果h及び上記任意値z(j),c(j),σ(j)を入力とし、各j∈L(j≠i)に対し、それぞれ、上記楕円曲線E/F上での楕円スカラー倍算z(j)・h及びc(j)・σ(j)∈G1と、楕円加算b(j)=z(j)・h+c(j)・σ(j)∈G1とを行い、当該演算結果b(j)を出力する第2楕円演算部と、
    すべてのk∈Lについてのσ(k),a(k),b(k)の各要素と上記メッセージmとを含む入力値に対し、当該入力値を整数へ写すハッシュ関数H’を作用させ、その演算結果cを出力するH’関数演算部と、
    上記任意値c(j)と演算結果cとを入力とし、
    c(i)=c−Σj≠ic(j) mod p
    の演算を行い、その演算結果c(i)を出力する第1整数演算部と、
    上記任意値r(i)と上記演算結果c(i)と秘密鍵x(i)とpを入力とし、
    z(i)=r(i)−c(i)・x(i) mod p
    の演算を行い、その演算結果z(i)を出力する第2整数演算部と、
    すべてのk∈Lについてのσ(k),c(k),z(k)を含む情報を上記メッセージmの匿名署名σとし、当該匿名署名σを上記メッセージmとともに出力する匿名署名出力部と、
    を有することを特徴とする匿名署名生成装置。
  4. 請求項3に記載の匿名署名生成装置であって、
    整数の任意値rを生成する第4任意値生成部をさらに有し、
    上記関数Hは、
    入力値を上記巡回群G1の元へ写すハッシュ関数であり、
    上記演算結果hは、
    上記メッセージmと上記任意値rとからなる値に対し、上記ハッシュ関数Hを作用させた演算結果であり、
    上記H’関数演算部は、
    上記任意値rとすべてのk∈Lについてのσ(k),a(k),b(k)の各要素と上記メッセージmとからなる入力値に対し、当該入力値を整数へ写すハッシュ関数H’を作用させ、その演算結果cを出力し、
    上記匿名署名出力部は、
    上記任意値rとすべてのk∈Lについてのσ(k),c(k),z(k)とからなる情報を上記メッセージmの匿名署名σとし、当該匿名署名σを上記メッセージmとともに出力する、
    ことを特徴とする匿名署名生成装置。
  5. 匿名署名を検証する署名検証装置であって、
    有限体F上に定義された楕円曲線E/F上の点からなる位数pの巡回群G1の生成元をg1とし、k番目(k∈L)の匿名署名生成装置の秘密鍵をx(k)とした場合における、当該楕円曲線E/F上での楕円スカラー倍算値y(k)=x(k)・g1∈G1であるk番目の匿名署名生成装置の公開鍵y(k)を、すべてのk∈Lについて格納する第1記憶部と、
    すべてのk∈Lについてのσ(k),c(k),z(k)を含む匿名署名σとメッセージmとを格納する第2記憶部と、
    上記公開鍵y(k)と上記匿名署名σのz(k),c(k)とを入力とし、すべてのk∈Lに対し、それぞれ、上記楕円曲線E/F上での楕円スカラー倍算z(k)・g1及びc(k)・y(k)∈G1と、楕円加算a(k)=z(k)・g1+c(k)・y(k)∈G1とを行い、当該演算結果a(k)を出力する第1楕円演算部と、
    上記メッセージmを含む値に対し、当該値を上記巡回群G1の元へ写す関数Hを作用させた演算結果h∈G1と、上記匿名署名σのσ(k),c(k),z(k)とを入力とし、すべてのk∈Lに対し、それぞれ、上記楕円曲線E/F上での楕円スカラー倍算z(k)・h及びc(k)・σ(k)∈G1と、楕円加算b(k)=z(k)・h+c(k)・σ(k)∈G1とを行い、当該演算結果b(k)を出力する第2楕円演算部と、
    すべてのk∈Lについてのσ(k),a(k),b(k)の各要素と上記メッセージmとを含む入力値に対し、当該入力値を整数へ写すハッシュ関数H’を作用させ、その演算結果cを出力するH’関数演算部と、
    上記匿名署名σのc(k)と上記演算結果cとを入力とし、
    c=Σk∈Lc(k)mod p
    を満たすか否かを判断する比較部と、
    c=Σk∈Lc(k)mod pを満たすことを条件に上記匿名署名σが合格である旨を出力する検証結果出力部と、
    を有することを特徴とする署名検証装置。
  6. 請求項5に記載の署名検証装置であって、
    上記匿名署名σは、
    任意値rとすべてのk∈Lについてのσ(k),c(k),z(k)とからなり、
    上記関数Hは、
    入力値を上記巡回群G1の元へ写すハッシュ関数であり、
    上記演算結果hは、
    上記メッセージmと上記任意値rとからなる値に対し、上記ハッシュ関数Hを作用させた演算結果であり、
    上記H’関数演算部は、
    上記任意値rとすべてのk∈Lについてのσ(k),a(k),b(k)の各要素と上記メッセージmとからなる入力値に対し、当該入力値を整数へ写すハッシュ関数H’を作用させ、その演算結果cを出力する、
    ことを特徴とする署名検証装置。
  7. 匿名署名システムを管理する管理装置であって、
    有限体F上に定義された楕円曲線E/F上の点からなる位数pの巡回群G1の生成元をg1とし、k番目(k∈L,k={0,...,u−1})の匿名署名生成装置の秘密鍵をx(k)とした場合における、当該楕円曲線E/F上での楕円スカラー倍算値y(k)=x(k)・g1∈G1である匿名署名生成装置の公開鍵y(k)を、すべてのk∈Lについて格納する第1記憶部と、
    上記楕円曲線E/F上の点からなる位数pの巡回群G2の生成元をg2とした場合における、当該楕円曲線E/F上での楕円スカラー倍算値t(k)=x(k)・g2である匿名署名生成装置の追跡鍵t(k)を、すべてのk∈Lについて格納する第2記憶部と、
    すべてのk∈Lについてのσ(k),c(k),z(k)を含む匿名署名σとメッセージmとを格納する第3記憶部と、
    上記メッセージmを含む値に対し、当該値を上記巡回群G1の元へ写す関数Hを作用させた演算結果h∈G1と、上記追跡鍵t(k)∈G2とを入力とし、すべてのk∈Lについて、当該演算結果hと追跡鍵t(k)との組をペアリング関数e:G1×G2→G3に代入し、各演算結果e(h,t(k))を出力する第1ペアリング演算部と、
    上記匿名署名σのσ(k)を入力とし、すべてのk∈Lについて、当該σ(k)と上記生成元g2との組を上記ペアリング関数eに代入し、各演算結果e(σ(k),g2)を出力する第2ペアリング演算部と、
    上記演算結果e(h,t(k))と上記演算結果e(σ(k),g2)とを入力とし、k∈Lごとに、上記演算結果e(h,t(k))と上記演算結果e(σ(k),g2)とが一致するか否かを判定し、これらが一致すると判定されたkを、真の匿名署名生成装置を示す情報として出力する判定部と、
    を有することを特徴とする管理装置。
  8. 請求項7に記載の管理装置であって、
    上記匿名署名σは、
    任意値rとすべてのk∈Lについてのσ(k),c(k),z(k)とからなり、
    上記関数Hは、
    入力値を上記巡回群G1の元へ写すハッシュ関数であり、
    上記演算結果hは、
    上記メッセージmと上記任意値rとからなる値に対し、上記ハッシュ関数Hを作用させた演算結果である、
    ことを特徴とする管理装置。
  9. 署名クループを構成するu個(u≧2)の匿名署名生成装置の1つであるi番目(i∈L,L={0,…,u−1})の匿名署名生成装置が匿名署名を生成し、署名検証装置がその匿名署名を検証し、必要に応じて管理装置がその匿名署名の匿名性を無効にする匿名署名方法であって、
    i番目(i∈L)の匿名署名生成装置において、
    (a1)整数である自らの秘密鍵x(i)を第1記憶部に格納するステップと、
    (a2)有限体F上に定義された楕円曲線E/F上の点からなる位数pの巡回群G1の生成元をg1とし、j番目(j∈L,j≠i)の匿名署名生成装置の秘密鍵をx(j)とした場合における、当該楕円曲線E/F上での楕円スカラー倍算値y(j)=x(j)・g1∈G1であるj番目の匿名署名生成装置の公開鍵y(j)を、すべてのjについて第2記憶部に格納するステップと、
    (a3)署名対象であるメッセージmを第3記憶部に格納するステップと、
    (a4)上記メッセージmを含む値に対し、当該値を上記巡回群G1の元へ写す関数Hを作用させた演算結果h∈G1と、上記秘密鍵x(i)とを入力とし、第1楕円スカラー倍算部が、上記楕円曲線E/F上での楕円スカラー倍算σ(i)=x(i)・h∈G1を行い、その演算結果σ(i)を出力するステップと、
    (a5)第1任意値生成部が、各j∈L(j≠i)に対し、任意値σ(j)∈G1を生成して出力するステップと、
    (a6)第2任意値生成部が、整数の任意値r(i)を生成して出力するステップと、
    (a7)上記任意値r(i)を入力とし、第2楕円スカラー倍算部が、上記楕円曲線E/F上での楕円スカラー倍算a(i)=r(i)・g1∈G1を行い、その演算結果a(i)を出力するステップと、
    (a8)上記任意値r(i)と上記演算結果hとを入力とし、第3楕円スカラー倍算部が、上記楕円曲線E/F上での楕円スカラー倍算b(i)=r(i)・h∈G1を行い、その演算結果b(i)を出力するステップと、
    (a9)第3任意値生成部が、各j∈L(j≠i)に対し、整数の任意値z(j),c(j)を生成して出力するステップと、
    (a10)上記任意値z(j),c(j)と上記公開鍵y(j)とを入力とし、第1楕円演算部が、各j∈L(j≠i)に対し、それぞれ、上記楕円曲線E/F上での楕円スカラー倍算z(j)・g1及びc(j)・y(j)∈G1と、楕円加算a(j)=z(j)・g1+c(j)・y(j)∈G1とを行い、当該演算結果a(j)を出力するステップと、
    (a11)上記演算結果h及び上記任意値z(j),c(j),σ(j)を入力とし、第2楕円演算部が、各j∈L(j≠i)に対し、それぞれ、上記楕円曲線E/F上での楕円スカラー倍算z(j)・h及びc(j)・σ(j)∈G1と、楕円加算b(j)=z(j)・h+c(j)・σ(j)∈G1とを行い、当該演算結果b(j)を出力するステップと、
    (a12)第1H’関数演算部が、すべてのk∈Lについてのσ(k),a(k),b(k)の各要素と上記メッセージmとを含む入力値に対し、当該入力値を整数へ写すハッシュ関数H’を作用させ、その演算結果cを出力するステップと、
    (a13)上記任意値c(j)と演算結果cとを入力とし、第1整数演算部が、c(i)=c−Σj≠ic(j) mod pの演算を行い、その演算結果c(i)を出力するステップと、
    (a14)上記任意値r(i)と上記演算結果c(i)と秘密鍵x(i)とpを入力とし、第2整数演算部が、z(i)=r(i)−c(i)・x(i) mod pの演算を行い、その演算結果z(i)を出力するステップと、
    (a15)匿名署名出力部が、すべてのk∈Lについてのσ(k),c(k),z(k)を含む情報を上記メッセージmの匿名署名σとし、当該匿名署名σを上記メッセージmとともに出力するステップと、を実行し、
    署名検証装置において、
    (b1)上記楕円曲線E/F上での楕円スカラー倍算値y(k)=x(k)・g1∈G1であるk番目の匿名署名生成装置の公開鍵y(k)を、すべてのk∈Lについて、第4記憶部に格納するステップと、
    (b2)入力された上記匿名署名σと上記メッセージmとを第5記憶部に格納するステップと、
    (b3)上記公開鍵y(k)と上記匿名署名σのz(k),c(k)とを入力とし、第3楕円演算部が、すべてのk∈Lに対し、それぞれ、上記楕円曲線E/F上での楕円スカラー倍算z(k)・g1及びc(k)・y(k)∈G1と、楕円加算a(k)=z(k)・g1+c(k)・y(k)∈G1とを行い、当該演算結果a(k)を出力するステップと、
    (b4)上記メッセージmを含む値に対して上記関数Hを作用させた演算結果h∈G1と、上記匿名署名σのσ(k),c(k),z(k)とを入力とし、第4楕円演算部が、すべてのk∈Lに対し、それぞれ、上記楕円曲線E/F上での楕円スカラー倍算z(k)・h及びc(k)・σ(k)∈G1と、楕円加算b(k)=z(k)・h+c(k)・σ(k)∈G1とを行い、当該演算結果b(k)を出力するステップと、
    (b5)第2H’関数演算部が、すべてのk∈Lについてのσ(k),a(k),b(k)の各要素と上記メッセージmとを含む入力値に対し、上記ハッシュ関数H’を作用させ、その演算結果cを出力するステップと、
    (b6)上記匿名署名σのc(k)と上記演算結果cとを入力とし、比較部が、c=Σk∈Lc(k)mod pを満たすか否かを判断するステップと、
    (b7)検証結果出力部が、c=Σk∈Lc(k)mod pを満たすことを条件に上記匿名署名σが合格である旨を出力するステップと、を実行し、
    管理装置において、
    (c1)すべてのk∈Lについてのσ(k),c(k),z(k)を含む匿名署名σとメッセージmとを第6記憶部に格納するステップと、
    (c2)上記楕円曲線E/F上での楕円スカラー倍算値y(k)=x(k)・g1∈G1である匿名署名生成装置の公開鍵y(k)を、すべてのk∈Lについて第7記憶部に格納するステップと、
    (c3)上記楕円曲線E/F上の点からなる位数pの巡回群G2の生成元をg2とした場合における、当該楕円曲線E/F上での楕円スカラー倍算値t(k)=x(k)・g2である匿名署名生成装置の追跡鍵t(k)を、すべてのk∈Lについて第8記憶部に格納するステップと、
    (c4)上記メッセージmを含む値に対して上記関数Hを作用させた演算結果h∈G1と、上記追跡鍵t(k)∈G2とを入力とし、第1ペアリング演算部が、すべてのk∈Lについて、当該演算結果hと追跡鍵t(k)との組をペアリング関数e:G1×G2→G3に代入し、各演算結果e(h,t(k))を出力するステップと、
    (c5)上記匿名署名σのσ(k)を入力とし、第2ペアリング演算部が、すべてのk∈Lについて、当該σ(k)と上記生成元g2との組を上記ペアリング関数eに代入し、各演算結果e(σ(k),g2)を出力するステップと、
    (c6)上記演算結果e(h,t(k))と上記演算結果e(σ(k),g2)とを入力とし、判定部が、k∈Lごとに、上記演算結果e(h,t(k))と上記演算結果e(σ(k),g2)とが一致するか否かを判定し、これらが一致すると判定されたkを、真の匿名署名生成装置を示す情報として出力するステップと、を実行する、
    ことを特徴とする匿名署名方法。
  10. 請求項1に記載の鍵生成装置としてコンピュータを機能させるためのプログラム。
  11. 請求項3に記載の匿名署名生成装置としてコンピュータを機能させるためのプログラム。
  12. 請求項5に記載の署名検証装置としてコンピュータを機能させるためのプログラム。
  13. 請求項7に記載の管理装置としてコンピュータを機能させるためのプログラム。
JP2006277964A 2006-10-11 2006-10-11 鍵生成装置、匿名署名システム、管理装置、匿名署名方法及びプログラム Expired - Fee Related JP4875448B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006277964A JP4875448B2 (ja) 2006-10-11 2006-10-11 鍵生成装置、匿名署名システム、管理装置、匿名署名方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006277964A JP4875448B2 (ja) 2006-10-11 2006-10-11 鍵生成装置、匿名署名システム、管理装置、匿名署名方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2008098933A true JP2008098933A (ja) 2008-04-24
JP4875448B2 JP4875448B2 (ja) 2012-02-15

Family

ID=39381324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006277964A Expired - Fee Related JP4875448B2 (ja) 2006-10-11 2006-10-11 鍵生成装置、匿名署名システム、管理装置、匿名署名方法及びプログラム

Country Status (1)

Country Link
JP (1) JP4875448B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010013699A1 (ja) * 2008-07-28 2010-02-04 日本電気株式会社 署名システム
JP2011145361A (ja) * 2010-01-13 2011-07-28 Nippon Telegr & Teleph Corp <Ntt> 署名生成装置、署名検証装置、再リンク鍵生成装置、及びプログラム
CN111052206A (zh) * 2017-08-22 2020-04-21 日本电信电话株式会社 秘密计算装置、秘密计算方法、程序以及记录介质
CN111758127A (zh) * 2018-02-20 2020-10-09 日本电信电话株式会社 秘密计算装置、秘密计算认证系统、秘密计算方法以及程序

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010013699A1 (ja) * 2008-07-28 2010-02-04 日本電気株式会社 署名システム
US8495362B2 (en) 2008-07-28 2013-07-23 Nec Corporation Signature systems
JP5327223B2 (ja) * 2008-07-28 2013-10-30 日本電気株式会社 署名システム
JP2011145361A (ja) * 2010-01-13 2011-07-28 Nippon Telegr & Teleph Corp <Ntt> 署名生成装置、署名検証装置、再リンク鍵生成装置、及びプログラム
CN111052206A (zh) * 2017-08-22 2020-04-21 日本电信电话株式会社 秘密计算装置、秘密计算方法、程序以及记录介质
CN111052206B (zh) * 2017-08-22 2023-06-06 日本电信电话株式会社 秘密计算装置、秘密计算方法以及记录介质
CN111758127A (zh) * 2018-02-20 2020-10-09 日本电信电话株式会社 秘密计算装置、秘密计算认证系统、秘密计算方法以及程序
CN111758127B (zh) * 2018-02-20 2023-08-08 日本电信电话株式会社 秘密计算装置及其方法、秘密计算认证系统以及记录介质

Also Published As

Publication number Publication date
JP4875448B2 (ja) 2012-02-15

Similar Documents

Publication Publication Date Title
Gao et al. Privacy-preserving Naive Bayes classifiers secure against the substitution-then-comparison attack
Suhail et al. On the role of hash-based signatures in quantum-safe internet of things: Current solutions and future directions
Bootle et al. Arya: Nearly linear-time zero-knowledge proofs for correct program execution
Faust et al. Protecting circuits from leakage: the computationally-bounded and noisy cases
US9860058B2 (en) Secret computation system, arithmetic unit, secret computation method and program
JP2023068139A (ja) ブロックチェーンベースのスマートコントラクトの複数当事者生成のためのシステム及び方法
JP2021510954A (ja) デジタル署名されたデータを取得するためのコンピュータにより実施される方法及びシステム
Zhao et al. SOCI: A toolkit for secure outsourced computation on integers
JP4875448B2 (ja) 鍵生成装置、匿名署名システム、管理装置、匿名署名方法及びプログラム
Zhang et al. {FLASH}: Towards a high-performance hardware acceleration architecture for cross-silo federated learning
Zhang et al. IPad: ID-based public auditing for the outsourced data in the standard model
Hu et al. Efficient parallel secure outsourcing of modular exponentiation to cloud for IoT applications
Cao et al. A based on blinded CP‐ABE searchable encryption cloud storage service scheme
US11329808B2 (en) Secure computation device, secure computation authentication system, secure computation method, and program
Hong et al. Constructing conditional PKEET with verification mechanism for data privacy protection in intelligent systems
Gayoso Martínez et al. Secure elliptic curves in cryptography
JP4773941B2 (ja) 代理署名装置、署名者装置、署名検証装置及びそれらのプログラム
JP4528114B2 (ja) 鍵生成装置、暗号化装置、検査装置、復号化装置並びに鍵生成プログラム、暗号化プログラム、検査プログラム、復号化プログラム
Roio et al. Reflow: Zero knowledge multi party signatures with application to distributed authentication
US20090279689A1 (en) System and method of authentication
US20220345312A1 (en) Zero-knowledge contingent payments protocol for granting access to encrypted assets
Pedersen et al. Secure delegation of isogeny computations and cryptographic applications
JP4758814B2 (ja) 匿名暗号文通信システム、鍵生成装置、通信装置、それらの方法、プログラム及び記録媒体
Ye et al. Comparable encryption scheme supporting multiple users in cloud computing
Satheesh et al. AB-DAM: attribute-based data access model in blockchain for healthcare applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110927

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: 20111115

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: 20111125

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141202

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4875448

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