追跡機能を有する部分ブラインド署名方法及びシステム
【課題】追跡機能を有するブラインド署名(FBS)を部分ブラインド署名(PBS)に拡張し、FBSのより柔軟な運用を可能とする。
【解決手段】ブラインド署名の発行及び検証手続きで用いる固定値の一部を署名装置と署名依頼装置の双方に入力されている情報Infoから一意的に生成することで、Infoを含み、かつ追跡機能を有する部分ブラインド署名に拡張する。また、Infoを用いて固定値の一部を構成するかわりに、事前に決定されたInfoを定数として署名発行及び署名検証で該Infoを利用するようにプロトコルを変更する。
【解決手段】ブラインド署名の発行及び検証手続きで用いる固定値の一部を署名装置と署名依頼装置の双方に入力されている情報Infoから一意的に生成することで、Infoを含み、かつ追跡機能を有する部分ブラインド署名に拡張する。また、Infoを用いて固定値の一部を構成するかわりに、事前に決定されたInfoを定数として署名発行及び署名検証で該Infoを利用するようにプロトコルを変更する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は電子署名の応用技術であり、特にブラインド署名方式と呼ばれる、署名者に対して署名対象文書の秘匿を目的とする署名方式の機能拡張技術に関する。
【背景技術】
【0002】
署名依頼者のプライバシ保護および不正防止を両立させるための署名技術として、署名依頼者の追跡機能を有するブラインド署名方式が知られている(例えば非特許文献1)。これはFair Blind Signature(FBS)と呼ばれ、署名依頼者が署名者に対して署名依頼文書を伏せたまま署名付与してもらうことができる、ブラインド署名と呼ばれる技術の拡張であり、ある権限者(開示機関)だけは、ブラインド署名によって生成された特定の署名付き文書から署名依頼者を識別する、あるいは特定の署名依頼者に対応する署名付き文書を識別することが可能な技術である。また最近では、FBSのある種の安全性が証明された方式も提案されている(非特許文献2)。
【0003】
さらに、署名者をCA(Certificate Aithority)、署名依頼文書を署名公開鍵とし、署名依頼者はCAに対してFBSを用いて該署名公開鍵を知られることなく鍵証明書を発行してもらうことで、CAは開示機関と協力しない限りは、署名依頼者と署名公開鍵との対応関係を知ることができないような方式も提案されている(非特許文献3)。このような権限分散手法を用いることで、ユーザ(=署名依頼者)からみたサービス提供者(=CA、開示機関)に対する信頼性向上、およびサービス提供者の情報漏洩防止といった効果が期待できる。
【0004】
【非特許文献1】M.Stadler,J.M.Piveteau,and J.Camenisch,“Fair blind signatures,”EUROCRYPT ’95,LNCS 921,pp.209−219,Spinger Verlag,1995
【非特許文献2】M.Abe and M.Ohkubo,“Provably secure fair blind signatures with tight revocation,”ASIACRYOT ’01,LNCS 2248,pp.583−601,Spinger Verlag,2001
【非特許文献3】千田、谷口、塩野入、金井 「代理アクセスを利用した匿名認証方式」 情報処理学会研究報告 Vol.2005,No.33,pp.235−240,2005
【発明の開示】
【発明が解決しようとする課題】
【0005】
上述のようなFBSを鍵証明書の発行に応用した方式は、該鍵証明書に有効期限やユーザ属性等のオープンな情報を記述できることが望ましいと考えられる。例えばITU(国際電気通信連合)が定めた鍵証明書の仕様であるX.509v3の証明書フォーマットでは、バージョン情報や証明書番号、署名アルゴリズムといった情報が含まれる。以降、この種の鍵証明書に埋め込むオープンな情報をInfoと表記する。しかしながら、署名者、署名依頼者及び検証者に対してオープンな情報を署名依頼文書に埋め込み、かつ追跡機能を有するようなブラインド署名方式は、現在まで提案されていない。
【0006】
本発明は、このような状況に鑑みてなされたもので、追跡機能を有するブラインド署名(FBS)を部分ブラインド署名(PBS;Partially Blind Signature)に拡張し、署名者がInfoを鍵証明書にオープンな情報として記述することが可能な、追跡機能を有する部分ブラインド署名方法及びシステムを提供することにある。
【課題を解決するための手段】
【0007】
部分ブラインド署名(PBS)は、署名者に対して部分的に伏せた文書を署名依頼することが可能な技術である。これについては、例えば文献「M.Abe and T.Okamato,“Provably secure partially blind signatures,“CRYPTO,‘00,LNCS 1880,pp.271−286,Springer Verlag,2000」(以下、非特許文献4)に詳述されている。
【0008】
本発明は、FBSをPBSに拡張し、任意のブラインド署名で用いる群の元を、オープンな情報Infoを用いて生成する。例えば非特許文献4で提案されているFBSでは、p,qを素数とし、H1(・)を任意のビット列から群Zp*に写すハッシュ関数とし、g,h,yをZp*の元として、署名者はz=H1(p‖q‖g‖h‖y)を生成するが(‖はデータの連結を表す)、本発明では、z=H1(p‖q‖g‖h‖y‖Info)とする、あるいはg,h,yの何れかを同様の操作により生成することで、非特許文献4のFBSをPBSとできる。
【0009】
また、本発明は、上記のようにInfoを含めて群の元を構成するのではなく、事前に決定されたInfoを定数として署名発行処理及び署名検証処理で該Infoを利用するようにプロトコルを変更することで、FBSをPBSに拡張する。
【発明の効果】
【0010】
本発明によれば、署名者などが指定したオープンな情報を含み、かつ追跡機能を有するようなブラインド署名を生成することができる。これにより、追跡機能を有するブラインド署名を応用した鍵証明書発行方式のより柔軟な運用が可能となる。
【発明を実施するための最良の形態】
【0011】
以下、本発明の実施の形態について図面を参照して詳述する。なお、本発明は追跡機能を有するブラインド署名(FBS)を部分ブラインド署名(PBS)に拡張するものであるが、高いセキュリティを有することが望ましいという理由から、以下の第1,2の実施の形態ともに、非特許文献2で提案された(ある種の安全性が保証された)FBSを元にPBSへ拡張する例について説明する。但し、本発明の拡張は非特許文献2のFBSに限ったものではなく、他のFBSに容易に適用できることは言うまでもない。
【0012】
[第1の実施の形態]
本実施の形態は、署名者が指定したオープンな情報Infoを含み、かつ追跡機能を有するようなブラインド署名を生成するもので、以下では、非特許文献2で提案されているFBSに対して、非特許文献4で提案されているPBSの技術を適用することでPBSの機能を追加する方法について、図面を用いて説明する。
【0013】
図1は本実施の形態のシステム構成を示す図であり、署名依頼装置10、署名装置20、検証装置30、開示装置(管理装置)40、及びこれら装置を結ぶネットワーク50からなる。署名依頼装置10には、パソコン、携帯端末、携帯電話、その他、利用者が操作する任意の機器(利用者端末装置)が含まれる。署名装置20、検証装置30、開示装置40はサーバ装置であり、その具体的構成は所謂コンピュータシステムと同様である。
【0014】
署名依頼装置10、署名装置20、検証装置30開示装置40では、FBSのシステムパラメータprm=(p,q,g,h)が生成、共有されているものとする。ここでp,qはq|p−1となる素数、g,hは乗法群Zp*の位数qの部分群Gの元である。
【0015】
<鍵生成>
署名装置20は秘密鍵xを生成・保管し、公開鍵y=gxmodpを計算する。また、開示装置40は秘密鍵rsk=(xt,dk)を生成・保管し、公開鍵rpk=(yt=gxtmodp,ek)を計算する。ここで、xtはq以下のランダムな自然数、ek,dkはそれぞれある検証可能暗号(VE;Verifiable Encryption)の公開鍵および秘密鍵である。なお、VEの説明および具体例は非特許文献2に示されている。全ての装置10〜40がy,rpkを共有する。署名依頼装置10はRSA署名やSchnorr署名など、任意の署名方式の秘密鍵、公開鍵の組(Sk,PK)を作成する。図1に、ここまでの各装置10〜40が保持する情報を示す。
【0016】
<ブラインド署名>
署名依頼装置10は、署名装置20にPKの鍵証明書生成を依頼する。鍵証明書生成の処理は非特許文献2のFBSとほぼ等しいが、Gの元zの生成が異なる。非特許文献2FBSでは、以下のようにしてzを生成している。
z=H1(p‖q‖g‖h‖y)
ここでH1はGに写す一方向性ハッシュ関数である。本実施の形態では、該FBSにPBSの機能を追加するために、zを以下のようにして生成する。
【0017】
ここでInfoは署名装置20が指定したオープンな情報z=H1(p‖q‖g‖h‖y‖Info)である。なお、Infoの埋め込みについて、基本的には一意的に生成されない元であれば、上記同様の方法によりZ以外の値に対してもInfoの埋め込みが可能である。
【0018】
以上を踏まえ、署名依頼装置10がPKの鍵証明書を取得する手順について説明する。図2に、本実施の形態における鍵証明書生成の詳細な処理フローを示す。
署名依頼装置10は署名装置20に鍵証明書の生成を依頼する(ステップ101)。署名装置20は特定の文字列Infoを署名依頼装置10に返す(ステップ102)。また、署名装置20は署名依頼装置10(または署名依頼者)を識別する情報(ID)を登録する(ステップ103)。
【0019】
署名依頼装置10では、以下の処理を行う。
(a)q以下のランダムな自然数γをブラインド係数として選ぶ(ステップ104)。
(b)z=H1(p‖q‖g‖h‖y‖Info),zu=z1/γ,ξ=gγ,E=εek(γ),P=Ρ((zu,ξ),γ,ek)を計算する(ステップ105)。ここで、εは検証可能暗号(VE)の暗号化関数であり、E=εek(γ)は該VEの関数を用いて公開鍵ekによりγを暗号化した暗号文である。ΡはEに対応する平分(=γ)が1/logzzu(=γ)およびloggξ(=γ)と等しいことを署名装置20に証明するための関数であり、Pは該証明のための述語(predicate)である。
(c)(zu,ξ,E,P)を署名装置20に送信する(ステップ106)。
【0020】
署名依頼装置10から(zu,ξ,E,P)を受信した署名装置20は以下の処理を行う。
(a)z=H1(p‖q‖g‖h‖y‖Info)を計算し、(zu,ξ,E,P)が正しい結果かどうか検証する(ステップ107)。検証OKであれば次に進み、NGであれば署名依頼装置10の不正として処理を終了する。
(b)q以下のランダムな自然数v,u,s1,s2,dを選ぶ(ステップ108)。
(c)zl=ytv,z2=zu/zl,Ps=Ρ(zl,yt,v),a=gu,b1=gs1z1d,b2=hs2z2dを計算する(ステップ109)。ここで、Psはlogytz1(=v)の値を知っていることを署名依頼装置10に証明するための述語である。
(d)(Ps,zl,a,b1,b2)を署名依頼装置に送信する(ステップ110)。
(e)ξvを計算する(ステップ111)。
(f)IDとξvの対応を示す(ID,ξv)の組を保存する(ステップ112)。
【0021】
署名装置20から(Ps,zl,a,b1,b2)を受信した署名依頼装置10は以下の処理を行う。
(a)(zl,b1,b2)がGの元かどうか、および(z1,yt,Ps)が正しい結果かどうか検証する(ステップ113)。両方とも検証OKであれば次に進み、どちらか一方でもNGであれば署名装置の不正として処理を終了する。
(b)q以下のランダムな自然数t1,t2,t3,t4,t5を選ぶ(ステップ114)。
(c)ζ1=z1γ,ζ2=z/ζ1,α=agt1yt2,β1=b1γgt3ζ1t5,β2=b2γht4ζ2t5,ε=H2(ζ1‖α‖β1‖β2‖PK),e=ε−t2−t5を計算する(ステップ115)。ここでH2は任意の文字列をq以下の自然数に写す一方向性ハッシュ関数とする。
(d)eを署名装置20に送信する(ステップ116)。
【0022】
署名依頼装置10からeを受信した署名装置10は以下の処理を行う。
(a)c=e−d,r=u−cxを計算する(ステップ117)。
(b)(r,c,s1,s2,d)を署名依頼装置10に送信する(ステップ118)。
【0023】
署名装置20から(r,c,s1,s2,d)を受信した署名依頼装置10は以下の処理を行う。
(a)ρ=r+t1,ω=c+t2,σl=γs1+t3,σ2=γs2+t4,δ=d+t5を計算する(ステップ119)。
(b)ω+δ=H2(ζ1‖gρyω‖gσ1ζ1δ‖hσ2ζ2δ‖PK)が成り立つかどうか検証する(ステップ120)。検証OKであれば次に進み、NGであれば署名装置20の不正として処理を終了する。
(c)Σ=(ζ1,ρ,ω,σl,σ2,δ)をPKの証明書として出力する(ステップ121)。
【0024】
<署名検証>
署名装置20よりPKの証明書Σ=(ζ1,ρ,ω,σl,σ2,δ)を得た署名依頼装置10は、(SK,PK)を用いてメッセージmsgに対する署名Sを生成し、T=(S,PK,Info,Σ)を鍵証明書を含んだ署名の組とする。
【0025】
署名検証は、PKの鍵証明書の正当性検証とメッセージmsgの署名Sの正当性検証からなるとする。図3に、本実施の形態における署名検証の処理フローを示す。
署名依頼装置10は、msg,Tを検証装置30へ送信する(ステップ201)。ここで、T=(S,PK,Info,Σ)であり、Σ=(ζ1,ρ,ω,σl,σ2,δ)である。
【0026】
署名依頼装置10から(msg,T)を受信した検証装置30は以下の処理を行う。
(a)Infoが所定の条件を満たすものであるか確認する(ステップ202)。OKであれば次に進み、NGであれば処理を終了する。
(b)z=H1(p‖q‖g‖h‖y‖Info)を計算する(ステップ203)。
(c)ω+δ=H2(ζ1‖gρyω‖gσ1ζ1δ‖hσ2(z/ζ1δ)‖PKが成り立つかどうか検証する(ステップ204)。検証OKであれば次に進み、NGであれば署名装置20の不正として処理を終了する。
(d)PKに対応する署名方式の検証アルゴリズムを用いて、Sがmsgの正しい署名であるか検証する(ステップ205)。検証NGであれば署名装置20の不正とする。
【0027】
上記処理において、ステップ202〜204はPKの鍵証明書の正当性検証であり、ステップ205はメッシセージmsgの署名Sの正当性検証である。
【0028】
<署名追跡>
これは、例えば、メッセージmsgが不正なメッセージだとして、メッセージmsgの署名Sの生成者を特定したい場合に実施する。図4に、本実施の形態における署名追跡の処理フローを示す。
1.検証装置30は、msg,Tを開示装置40、署名装置20に送信する(ステップ301)。
2.開示装置40および署名装置20は検証装置30と同様の検証処理(図3)を行い、検証OKとなることを確認する(ステップ302)。もしNGであれば処理を終了する。
【0029】
3.開示装置40は以下の処理を行う。
(a)I=ζ11/xtを計算する(ステップ303)。
(b)Iを署名装置20に送信する(ステップ304)。
【0030】
4.開示装置40からIを受信した署名装置20は以下の処理を行う。
(a)保持してある(ID,ξv)からI=ξvとなるようなξvを見つける(ステップ305)。
(b)該ξvに対応するIDから、msgの署名Sを生成した署名依頼装置(または署名依頼者)を特定する(ステップ306)。ここでは署名依頼者とする。
(c)特定した署名依頼者を開示装置40に送信する(ステップ307)。
5.開示装置40は署名装置20から送られた署名依頼者を検証装置30に送信する(ステップ308)。
【0031】
これにより、開示装置20及び署名装置40が協力した場合に限り、メッセージmsgの署名Sを生成した署名依頼装置(又は署名依頼者)を特定することができる。
【0032】
[第2の実施の形態]
本実施の形態では、非特許文献2で提案されているFBSに対して、署名装置と署名依頼装置が事前に合意して得られる共通情報Infoを、署名発行処理および署名検証処理で定数として用いる必要があるようにすることで、PBSの機能を追加する方法について説明する。
【0033】
本実施の形態のシステム構成は、第1の実施の形態と同様であり、図1に示すように、署名依頼装置10、署名装置20、検証装置30、開示装置40、及びこれら装置を結ぶネットワークからなる。署名依頼装置10、署名装置20、検証装置30、開示装置40では、第1の実施の形態と同様に、FBSのシステムパラメータprm=(p,q,g,h)が生成、共有されているものとする。ここでp,qはq|p−1となる素数、g,hは乗法群Zp*の位数qの部分群Gの元である。
【0034】
<鍵生成>
署名装置20は秘密鍵xを生成・保管し、y=gxmodpを計算する。開示装置40は秘密鍵rsk=(xt,dk)を生成・保管し、rpk=(yt=gxt(modp),ek)を計算する。ここでxtはq以下のランダムな自然数、ek,dkはそれぞれある検証可能暗号(VE;Verifiable Encryption)の公開鍵および秘密鍵である。全ての装置10〜40がy,rpkを共有する。署名依頼装置10はRSA署名やSchnorr署名など、任意の署名方式の秘密鍵、公開鍵の組(SK,PK)を作成する。ここまでは、第1の実施の形態と同じである。
【0035】
<ブラインド署名>
署名依頼装置10は、署名装置20にPKの鍵証明書生成を依頼する。鍵証明書生成の処理は、第1の実施の形態と同様であるが、非特許文献2のFBSの署名発行処理において、以下の変更を行えば良い。
z2=zu/z1 → zu/z1Info
ζ2=z/ζ1 → z/ζ1Info
ω+δ=H((ζ1‖gρyω‖gσ1ζ1δ‖hσ2(z/ζ1)δ‖msg)
→ H((ζ1‖gρyω‖gσ1ζ1δ‖hσ2(z/ζ1info)δ‖msg)
【0036】
以下では、署名依頼装置10がPKの鍵証明書を取得する手順を上記の変更を踏まえて説明する。処理フローは図2と同様であるので省略する。
署名依頼装置10は署名装置20に鍵証明書の生成を依頼する。署名装置20は特定の文字列Infoを署名依頼装置10に返す。ここで、Infoはq以下の自然数とする。また、署名装置20は署名依頼装置10(または署名依頼者)を識別する情報(ID)を登録する。
【0037】
署名依頼装置10は以下の処理を行う。
(a)q以下のランダムな自然数γ(ブラインド係数)を選ぶ。
(b)z=H1(p‖q‖g‖h‖y),zu=z1/γ,ξ=gγ,E=εek(γ),P=ΡP((zu,ξ),γ,ek)を計算する。ここでεはVEの暗号化関数であり、特にE=εek(γ)は該VEの関数を用いて公開鍵ekによりγを暗号化した暗号文である。ΡはEに対応する平文(=γ)が1/logzzu(=γ)およびloggξ(=γ)と等しいことを署名装置20に証明するための関数であり、特にPは該証明のための述語(predicate)である。
【0038】
(c)(zu,ξ,E,P)を署名装置20に送信する。
【0039】
署名依頼装置10から(zu,ξ,E,P)を受信した署名装置20は以下の処理を行う。
(a)z=H1(p‖q‖g‖h‖y)を計算し、(zu,ξ,E,P)が正しい結果かどうか検証する。検証OKであれば次に進み、NGであれば署名依頼装置10の不正として処理を終了する。
(b)q以下のランダムな自然数v,u,s1,s2,dを選ぶ。
(c)z1=ytv,z2=zu/z1Info,Ps=Ρ(z1,yt,v),a=gu,b1=gs1z1d,b2=hs2z2dを計算する。ここでPはlogytz1(=v)の値を知っていることを署名依頼装置10に証明するための述語である。
(d)(Ps,z1,a,b1,b2)を署名依頼装置10に送信する。
(e)ξvを計算する。
(f)(ID,ξv)の組を保存する。
【0040】
署名装置20から(Ps,z1,a,b1,b2)を受信した署名依頼装置10は以下の処理を行う。
(a)(z1,b1,b2)がGの元かどうか、および(z1,yt,Ps)が正しい結果かどうか検証する。両方とも検証OKであれば次に進み、どちらか一方でもNGであれば署名装置20の不正として処理を終了する。
(b)q以下のランダムな自然数t1,t2,t3,t4,t5を選ぶ。
(c)ζ1=z1γ,ζ2=z/ζ1Info,α=agt1yt2,β1=b1γgt3ζ1t5,β2=b2γht4ζ2t5,ε=(ζ1‖α‖β1‖β2‖PK),e=ε−t2−t5を計算する。ここでH2は任意の文字列をq以下の自然数に写す一方向性ハッシュ関数とする。
(d)eを署名装置20に送信する。
【0041】
署名依頼装置10からeを受信した署名装置20は以下の処理を行う。
(a)c=e−d,r=u−cxを計算する。
(b)(r,c,s1,s2,d)を署名依頼装置10に送信する。
【0042】
署名装置20から(r,c,s1,s2,d)を受信した署名依頼装置10は以下の処理を行う。
(a)ρ=r+t1,ω=c+t2,σ1=γs1+t3,σ2=γs2+t4,δ=d+t5を計算する。
(b)ω+δ=H2(ζ1‖gρyω‖gσ1ζ1δ‖hσ2ζ2δ‖PK)が成り立つかどうか検証する。検証OKであれば次に進み、NGであれば署名装置20の不正として処理を終了する。
(c)Σ=(ζ1,ρ,ω,σ1,σ2,δ)をPKの証明書として出力する。
【0043】
<署名検証>
本実施の形態における署名検証の処理フローを図5に示す。署名装置20よりPKの証明書Σ=(ζ1,ρ,ω,σ1,σ2,δ)を得た署名依頼装置10は、次に(SK,PK)を用いてメッセージmsgに対する署名Sを生成し、T=(S,PK,Info,Σ)を鍵証明書を含んだ署名の組とする。
【0044】
署名依頼装置10は、メッセージmsg,T=(s,PK,info,Σ)を検証装置30に送信する(ステップ401)。
【0045】
署名依頼装置10から,msg,Tを受信した検証装置30は、以下の処理を行う。
(a)Infoが所定の条件を満たすものであるか確認する(ステップ402)。OKであれば次に進み、NGであれば処理を終了する。
(b)z=H1(p‖q‖g‖h‖y)を計算する(ステップ403)。
(c)ω+δ=H2(ζ1‖gρyω‖gσ1ζ1δ‖hσ2(z/ζ1Info)δ‖PK)が成り立つかどうか検証する(ステップ404)。検証OKであれば次に進み、NGであれば署名装置20の不正として処理を終了する。
(d)PKに対応する署名方式の検証アルゴリズムを用いて、Sがmsgの正しい署名であるか検証する(ステップ405)。検証NGであれば署名装置20の不正とする。
【0046】
上記処理において、ステップ402〜404はPKの鍵証明書の正当性検証であり、ステップ405はmsgの署名Sの正当性検証である。
【0047】
<署名追跡>
メッセージmsgは不正なメッセージだとして、該msgの署名Sの生成者を特定したい場合、検証装置30は開示装置40および署名装置20にmsg,Tを送付にする。開示装置40および署名装置20はmsg,Tを入力して以下の処理を行う。
【0048】
1.開示装置40および署名装置20は検証装置30と同様の検証の処理(図5)を行い、検証OKとなることを確認する。もしNGであれば処理を終了する。
2.開示装置40は以下の処理を行う。
(a)I=ζ11/xtを計算する。
(b)Iを署名装置20に送信する。
3.開示装置40からIを受信した署名装置20は以下の処理を行う。
(a)(ID,ξv)I=ξvとなるようなξvを見つける。
(b)該ξvに対応するIDから、メッセージmsgの署名Sを生成した署名依頼装置(または署名依頼者)を特定する。
【0049】
上記処理は図4と同様である。これにより、開示装置40および署名装置30が協力した場合に限り、メッセージmsgの署名Sを生成した署名依頼装置(または署名依頼者)を特定することが出来る。
【0050】
なお、図1で示したシステム構成における各装置の一部もしくは全部の処理機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータを用いて実行して本発明を実現することができること、あるいは、図2〜図5で示した処理手順をコンピュータのプログラムで構成し、そのプログラムをコンピュータに実行させることができることは言うまでもない。また、コンピュータでその処理機能を実現するためのプログラム、あるいは、コンピュータにその処理手順を実行させるためのプログラムを、そのコンピュータが読み取り可能な記録媒体、例えば、FD、MO、ROM、メモリカード、CD、DVD、リムーバブルディスクなどに記録して、保存したり、提供したりすることができるとともに、インターネット等のネットワークを通してそのプログラムを配布したりすることが可能である。
【図面の簡単な説明】
【0051】
【図1】本発明の実施の形態のシステム構成を示す図。
【図2】第1の実施の形態における鍵証明書生成の処理フロー図。
【図3】第1の実施の形態における署名検証の処理フロー図。
【図4】第1の実施の形態における署名追跡の処理フロー図。
【図5】第2の実施の形態における署名検証の処理フロー図。
【符号の説明】
【0052】
10 署名依頼装置
20 署名装置
30 検証装置
40 開示装置
50 ネットワーク
【技術分野】
【0001】
本発明は電子署名の応用技術であり、特にブラインド署名方式と呼ばれる、署名者に対して署名対象文書の秘匿を目的とする署名方式の機能拡張技術に関する。
【背景技術】
【0002】
署名依頼者のプライバシ保護および不正防止を両立させるための署名技術として、署名依頼者の追跡機能を有するブラインド署名方式が知られている(例えば非特許文献1)。これはFair Blind Signature(FBS)と呼ばれ、署名依頼者が署名者に対して署名依頼文書を伏せたまま署名付与してもらうことができる、ブラインド署名と呼ばれる技術の拡張であり、ある権限者(開示機関)だけは、ブラインド署名によって生成された特定の署名付き文書から署名依頼者を識別する、あるいは特定の署名依頼者に対応する署名付き文書を識別することが可能な技術である。また最近では、FBSのある種の安全性が証明された方式も提案されている(非特許文献2)。
【0003】
さらに、署名者をCA(Certificate Aithority)、署名依頼文書を署名公開鍵とし、署名依頼者はCAに対してFBSを用いて該署名公開鍵を知られることなく鍵証明書を発行してもらうことで、CAは開示機関と協力しない限りは、署名依頼者と署名公開鍵との対応関係を知ることができないような方式も提案されている(非特許文献3)。このような権限分散手法を用いることで、ユーザ(=署名依頼者)からみたサービス提供者(=CA、開示機関)に対する信頼性向上、およびサービス提供者の情報漏洩防止といった効果が期待できる。
【0004】
【非特許文献1】M.Stadler,J.M.Piveteau,and J.Camenisch,“Fair blind signatures,”EUROCRYPT ’95,LNCS 921,pp.209−219,Spinger Verlag,1995
【非特許文献2】M.Abe and M.Ohkubo,“Provably secure fair blind signatures with tight revocation,”ASIACRYOT ’01,LNCS 2248,pp.583−601,Spinger Verlag,2001
【非特許文献3】千田、谷口、塩野入、金井 「代理アクセスを利用した匿名認証方式」 情報処理学会研究報告 Vol.2005,No.33,pp.235−240,2005
【発明の開示】
【発明が解決しようとする課題】
【0005】
上述のようなFBSを鍵証明書の発行に応用した方式は、該鍵証明書に有効期限やユーザ属性等のオープンな情報を記述できることが望ましいと考えられる。例えばITU(国際電気通信連合)が定めた鍵証明書の仕様であるX.509v3の証明書フォーマットでは、バージョン情報や証明書番号、署名アルゴリズムといった情報が含まれる。以降、この種の鍵証明書に埋め込むオープンな情報をInfoと表記する。しかしながら、署名者、署名依頼者及び検証者に対してオープンな情報を署名依頼文書に埋め込み、かつ追跡機能を有するようなブラインド署名方式は、現在まで提案されていない。
【0006】
本発明は、このような状況に鑑みてなされたもので、追跡機能を有するブラインド署名(FBS)を部分ブラインド署名(PBS;Partially Blind Signature)に拡張し、署名者がInfoを鍵証明書にオープンな情報として記述することが可能な、追跡機能を有する部分ブラインド署名方法及びシステムを提供することにある。
【課題を解決するための手段】
【0007】
部分ブラインド署名(PBS)は、署名者に対して部分的に伏せた文書を署名依頼することが可能な技術である。これについては、例えば文献「M.Abe and T.Okamato,“Provably secure partially blind signatures,“CRYPTO,‘00,LNCS 1880,pp.271−286,Springer Verlag,2000」(以下、非特許文献4)に詳述されている。
【0008】
本発明は、FBSをPBSに拡張し、任意のブラインド署名で用いる群の元を、オープンな情報Infoを用いて生成する。例えば非特許文献4で提案されているFBSでは、p,qを素数とし、H1(・)を任意のビット列から群Zp*に写すハッシュ関数とし、g,h,yをZp*の元として、署名者はz=H1(p‖q‖g‖h‖y)を生成するが(‖はデータの連結を表す)、本発明では、z=H1(p‖q‖g‖h‖y‖Info)とする、あるいはg,h,yの何れかを同様の操作により生成することで、非特許文献4のFBSをPBSとできる。
【0009】
また、本発明は、上記のようにInfoを含めて群の元を構成するのではなく、事前に決定されたInfoを定数として署名発行処理及び署名検証処理で該Infoを利用するようにプロトコルを変更することで、FBSをPBSに拡張する。
【発明の効果】
【0010】
本発明によれば、署名者などが指定したオープンな情報を含み、かつ追跡機能を有するようなブラインド署名を生成することができる。これにより、追跡機能を有するブラインド署名を応用した鍵証明書発行方式のより柔軟な運用が可能となる。
【発明を実施するための最良の形態】
【0011】
以下、本発明の実施の形態について図面を参照して詳述する。なお、本発明は追跡機能を有するブラインド署名(FBS)を部分ブラインド署名(PBS)に拡張するものであるが、高いセキュリティを有することが望ましいという理由から、以下の第1,2の実施の形態ともに、非特許文献2で提案された(ある種の安全性が保証された)FBSを元にPBSへ拡張する例について説明する。但し、本発明の拡張は非特許文献2のFBSに限ったものではなく、他のFBSに容易に適用できることは言うまでもない。
【0012】
[第1の実施の形態]
本実施の形態は、署名者が指定したオープンな情報Infoを含み、かつ追跡機能を有するようなブラインド署名を生成するもので、以下では、非特許文献2で提案されているFBSに対して、非特許文献4で提案されているPBSの技術を適用することでPBSの機能を追加する方法について、図面を用いて説明する。
【0013】
図1は本実施の形態のシステム構成を示す図であり、署名依頼装置10、署名装置20、検証装置30、開示装置(管理装置)40、及びこれら装置を結ぶネットワーク50からなる。署名依頼装置10には、パソコン、携帯端末、携帯電話、その他、利用者が操作する任意の機器(利用者端末装置)が含まれる。署名装置20、検証装置30、開示装置40はサーバ装置であり、その具体的構成は所謂コンピュータシステムと同様である。
【0014】
署名依頼装置10、署名装置20、検証装置30開示装置40では、FBSのシステムパラメータprm=(p,q,g,h)が生成、共有されているものとする。ここでp,qはq|p−1となる素数、g,hは乗法群Zp*の位数qの部分群Gの元である。
【0015】
<鍵生成>
署名装置20は秘密鍵xを生成・保管し、公開鍵y=gxmodpを計算する。また、開示装置40は秘密鍵rsk=(xt,dk)を生成・保管し、公開鍵rpk=(yt=gxtmodp,ek)を計算する。ここで、xtはq以下のランダムな自然数、ek,dkはそれぞれある検証可能暗号(VE;Verifiable Encryption)の公開鍵および秘密鍵である。なお、VEの説明および具体例は非特許文献2に示されている。全ての装置10〜40がy,rpkを共有する。署名依頼装置10はRSA署名やSchnorr署名など、任意の署名方式の秘密鍵、公開鍵の組(Sk,PK)を作成する。図1に、ここまでの各装置10〜40が保持する情報を示す。
【0016】
<ブラインド署名>
署名依頼装置10は、署名装置20にPKの鍵証明書生成を依頼する。鍵証明書生成の処理は非特許文献2のFBSとほぼ等しいが、Gの元zの生成が異なる。非特許文献2FBSでは、以下のようにしてzを生成している。
z=H1(p‖q‖g‖h‖y)
ここでH1はGに写す一方向性ハッシュ関数である。本実施の形態では、該FBSにPBSの機能を追加するために、zを以下のようにして生成する。
【0017】
ここでInfoは署名装置20が指定したオープンな情報z=H1(p‖q‖g‖h‖y‖Info)である。なお、Infoの埋め込みについて、基本的には一意的に生成されない元であれば、上記同様の方法によりZ以外の値に対してもInfoの埋め込みが可能である。
【0018】
以上を踏まえ、署名依頼装置10がPKの鍵証明書を取得する手順について説明する。図2に、本実施の形態における鍵証明書生成の詳細な処理フローを示す。
署名依頼装置10は署名装置20に鍵証明書の生成を依頼する(ステップ101)。署名装置20は特定の文字列Infoを署名依頼装置10に返す(ステップ102)。また、署名装置20は署名依頼装置10(または署名依頼者)を識別する情報(ID)を登録する(ステップ103)。
【0019】
署名依頼装置10では、以下の処理を行う。
(a)q以下のランダムな自然数γをブラインド係数として選ぶ(ステップ104)。
(b)z=H1(p‖q‖g‖h‖y‖Info),zu=z1/γ,ξ=gγ,E=εek(γ),P=Ρ((zu,ξ),γ,ek)を計算する(ステップ105)。ここで、εは検証可能暗号(VE)の暗号化関数であり、E=εek(γ)は該VEの関数を用いて公開鍵ekによりγを暗号化した暗号文である。ΡはEに対応する平分(=γ)が1/logzzu(=γ)およびloggξ(=γ)と等しいことを署名装置20に証明するための関数であり、Pは該証明のための述語(predicate)である。
(c)(zu,ξ,E,P)を署名装置20に送信する(ステップ106)。
【0020】
署名依頼装置10から(zu,ξ,E,P)を受信した署名装置20は以下の処理を行う。
(a)z=H1(p‖q‖g‖h‖y‖Info)を計算し、(zu,ξ,E,P)が正しい結果かどうか検証する(ステップ107)。検証OKであれば次に進み、NGであれば署名依頼装置10の不正として処理を終了する。
(b)q以下のランダムな自然数v,u,s1,s2,dを選ぶ(ステップ108)。
(c)zl=ytv,z2=zu/zl,Ps=Ρ(zl,yt,v),a=gu,b1=gs1z1d,b2=hs2z2dを計算する(ステップ109)。ここで、Psはlogytz1(=v)の値を知っていることを署名依頼装置10に証明するための述語である。
(d)(Ps,zl,a,b1,b2)を署名依頼装置に送信する(ステップ110)。
(e)ξvを計算する(ステップ111)。
(f)IDとξvの対応を示す(ID,ξv)の組を保存する(ステップ112)。
【0021】
署名装置20から(Ps,zl,a,b1,b2)を受信した署名依頼装置10は以下の処理を行う。
(a)(zl,b1,b2)がGの元かどうか、および(z1,yt,Ps)が正しい結果かどうか検証する(ステップ113)。両方とも検証OKであれば次に進み、どちらか一方でもNGであれば署名装置の不正として処理を終了する。
(b)q以下のランダムな自然数t1,t2,t3,t4,t5を選ぶ(ステップ114)。
(c)ζ1=z1γ,ζ2=z/ζ1,α=agt1yt2,β1=b1γgt3ζ1t5,β2=b2γht4ζ2t5,ε=H2(ζ1‖α‖β1‖β2‖PK),e=ε−t2−t5を計算する(ステップ115)。ここでH2は任意の文字列をq以下の自然数に写す一方向性ハッシュ関数とする。
(d)eを署名装置20に送信する(ステップ116)。
【0022】
署名依頼装置10からeを受信した署名装置10は以下の処理を行う。
(a)c=e−d,r=u−cxを計算する(ステップ117)。
(b)(r,c,s1,s2,d)を署名依頼装置10に送信する(ステップ118)。
【0023】
署名装置20から(r,c,s1,s2,d)を受信した署名依頼装置10は以下の処理を行う。
(a)ρ=r+t1,ω=c+t2,σl=γs1+t3,σ2=γs2+t4,δ=d+t5を計算する(ステップ119)。
(b)ω+δ=H2(ζ1‖gρyω‖gσ1ζ1δ‖hσ2ζ2δ‖PK)が成り立つかどうか検証する(ステップ120)。検証OKであれば次に進み、NGであれば署名装置20の不正として処理を終了する。
(c)Σ=(ζ1,ρ,ω,σl,σ2,δ)をPKの証明書として出力する(ステップ121)。
【0024】
<署名検証>
署名装置20よりPKの証明書Σ=(ζ1,ρ,ω,σl,σ2,δ)を得た署名依頼装置10は、(SK,PK)を用いてメッセージmsgに対する署名Sを生成し、T=(S,PK,Info,Σ)を鍵証明書を含んだ署名の組とする。
【0025】
署名検証は、PKの鍵証明書の正当性検証とメッセージmsgの署名Sの正当性検証からなるとする。図3に、本実施の形態における署名検証の処理フローを示す。
署名依頼装置10は、msg,Tを検証装置30へ送信する(ステップ201)。ここで、T=(S,PK,Info,Σ)であり、Σ=(ζ1,ρ,ω,σl,σ2,δ)である。
【0026】
署名依頼装置10から(msg,T)を受信した検証装置30は以下の処理を行う。
(a)Infoが所定の条件を満たすものであるか確認する(ステップ202)。OKであれば次に進み、NGであれば処理を終了する。
(b)z=H1(p‖q‖g‖h‖y‖Info)を計算する(ステップ203)。
(c)ω+δ=H2(ζ1‖gρyω‖gσ1ζ1δ‖hσ2(z/ζ1δ)‖PKが成り立つかどうか検証する(ステップ204)。検証OKであれば次に進み、NGであれば署名装置20の不正として処理を終了する。
(d)PKに対応する署名方式の検証アルゴリズムを用いて、Sがmsgの正しい署名であるか検証する(ステップ205)。検証NGであれば署名装置20の不正とする。
【0027】
上記処理において、ステップ202〜204はPKの鍵証明書の正当性検証であり、ステップ205はメッシセージmsgの署名Sの正当性検証である。
【0028】
<署名追跡>
これは、例えば、メッセージmsgが不正なメッセージだとして、メッセージmsgの署名Sの生成者を特定したい場合に実施する。図4に、本実施の形態における署名追跡の処理フローを示す。
1.検証装置30は、msg,Tを開示装置40、署名装置20に送信する(ステップ301)。
2.開示装置40および署名装置20は検証装置30と同様の検証処理(図3)を行い、検証OKとなることを確認する(ステップ302)。もしNGであれば処理を終了する。
【0029】
3.開示装置40は以下の処理を行う。
(a)I=ζ11/xtを計算する(ステップ303)。
(b)Iを署名装置20に送信する(ステップ304)。
【0030】
4.開示装置40からIを受信した署名装置20は以下の処理を行う。
(a)保持してある(ID,ξv)からI=ξvとなるようなξvを見つける(ステップ305)。
(b)該ξvに対応するIDから、msgの署名Sを生成した署名依頼装置(または署名依頼者)を特定する(ステップ306)。ここでは署名依頼者とする。
(c)特定した署名依頼者を開示装置40に送信する(ステップ307)。
5.開示装置40は署名装置20から送られた署名依頼者を検証装置30に送信する(ステップ308)。
【0031】
これにより、開示装置20及び署名装置40が協力した場合に限り、メッセージmsgの署名Sを生成した署名依頼装置(又は署名依頼者)を特定することができる。
【0032】
[第2の実施の形態]
本実施の形態では、非特許文献2で提案されているFBSに対して、署名装置と署名依頼装置が事前に合意して得られる共通情報Infoを、署名発行処理および署名検証処理で定数として用いる必要があるようにすることで、PBSの機能を追加する方法について説明する。
【0033】
本実施の形態のシステム構成は、第1の実施の形態と同様であり、図1に示すように、署名依頼装置10、署名装置20、検証装置30、開示装置40、及びこれら装置を結ぶネットワークからなる。署名依頼装置10、署名装置20、検証装置30、開示装置40では、第1の実施の形態と同様に、FBSのシステムパラメータprm=(p,q,g,h)が生成、共有されているものとする。ここでp,qはq|p−1となる素数、g,hは乗法群Zp*の位数qの部分群Gの元である。
【0034】
<鍵生成>
署名装置20は秘密鍵xを生成・保管し、y=gxmodpを計算する。開示装置40は秘密鍵rsk=(xt,dk)を生成・保管し、rpk=(yt=gxt(modp),ek)を計算する。ここでxtはq以下のランダムな自然数、ek,dkはそれぞれある検証可能暗号(VE;Verifiable Encryption)の公開鍵および秘密鍵である。全ての装置10〜40がy,rpkを共有する。署名依頼装置10はRSA署名やSchnorr署名など、任意の署名方式の秘密鍵、公開鍵の組(SK,PK)を作成する。ここまでは、第1の実施の形態と同じである。
【0035】
<ブラインド署名>
署名依頼装置10は、署名装置20にPKの鍵証明書生成を依頼する。鍵証明書生成の処理は、第1の実施の形態と同様であるが、非特許文献2のFBSの署名発行処理において、以下の変更を行えば良い。
z2=zu/z1 → zu/z1Info
ζ2=z/ζ1 → z/ζ1Info
ω+δ=H((ζ1‖gρyω‖gσ1ζ1δ‖hσ2(z/ζ1)δ‖msg)
→ H((ζ1‖gρyω‖gσ1ζ1δ‖hσ2(z/ζ1info)δ‖msg)
【0036】
以下では、署名依頼装置10がPKの鍵証明書を取得する手順を上記の変更を踏まえて説明する。処理フローは図2と同様であるので省略する。
署名依頼装置10は署名装置20に鍵証明書の生成を依頼する。署名装置20は特定の文字列Infoを署名依頼装置10に返す。ここで、Infoはq以下の自然数とする。また、署名装置20は署名依頼装置10(または署名依頼者)を識別する情報(ID)を登録する。
【0037】
署名依頼装置10は以下の処理を行う。
(a)q以下のランダムな自然数γ(ブラインド係数)を選ぶ。
(b)z=H1(p‖q‖g‖h‖y),zu=z1/γ,ξ=gγ,E=εek(γ),P=ΡP((zu,ξ),γ,ek)を計算する。ここでεはVEの暗号化関数であり、特にE=εek(γ)は該VEの関数を用いて公開鍵ekによりγを暗号化した暗号文である。ΡはEに対応する平文(=γ)が1/logzzu(=γ)およびloggξ(=γ)と等しいことを署名装置20に証明するための関数であり、特にPは該証明のための述語(predicate)である。
【0038】
(c)(zu,ξ,E,P)を署名装置20に送信する。
【0039】
署名依頼装置10から(zu,ξ,E,P)を受信した署名装置20は以下の処理を行う。
(a)z=H1(p‖q‖g‖h‖y)を計算し、(zu,ξ,E,P)が正しい結果かどうか検証する。検証OKであれば次に進み、NGであれば署名依頼装置10の不正として処理を終了する。
(b)q以下のランダムな自然数v,u,s1,s2,dを選ぶ。
(c)z1=ytv,z2=zu/z1Info,Ps=Ρ(z1,yt,v),a=gu,b1=gs1z1d,b2=hs2z2dを計算する。ここでPはlogytz1(=v)の値を知っていることを署名依頼装置10に証明するための述語である。
(d)(Ps,z1,a,b1,b2)を署名依頼装置10に送信する。
(e)ξvを計算する。
(f)(ID,ξv)の組を保存する。
【0040】
署名装置20から(Ps,z1,a,b1,b2)を受信した署名依頼装置10は以下の処理を行う。
(a)(z1,b1,b2)がGの元かどうか、および(z1,yt,Ps)が正しい結果かどうか検証する。両方とも検証OKであれば次に進み、どちらか一方でもNGであれば署名装置20の不正として処理を終了する。
(b)q以下のランダムな自然数t1,t2,t3,t4,t5を選ぶ。
(c)ζ1=z1γ,ζ2=z/ζ1Info,α=agt1yt2,β1=b1γgt3ζ1t5,β2=b2γht4ζ2t5,ε=(ζ1‖α‖β1‖β2‖PK),e=ε−t2−t5を計算する。ここでH2は任意の文字列をq以下の自然数に写す一方向性ハッシュ関数とする。
(d)eを署名装置20に送信する。
【0041】
署名依頼装置10からeを受信した署名装置20は以下の処理を行う。
(a)c=e−d,r=u−cxを計算する。
(b)(r,c,s1,s2,d)を署名依頼装置10に送信する。
【0042】
署名装置20から(r,c,s1,s2,d)を受信した署名依頼装置10は以下の処理を行う。
(a)ρ=r+t1,ω=c+t2,σ1=γs1+t3,σ2=γs2+t4,δ=d+t5を計算する。
(b)ω+δ=H2(ζ1‖gρyω‖gσ1ζ1δ‖hσ2ζ2δ‖PK)が成り立つかどうか検証する。検証OKであれば次に進み、NGであれば署名装置20の不正として処理を終了する。
(c)Σ=(ζ1,ρ,ω,σ1,σ2,δ)をPKの証明書として出力する。
【0043】
<署名検証>
本実施の形態における署名検証の処理フローを図5に示す。署名装置20よりPKの証明書Σ=(ζ1,ρ,ω,σ1,σ2,δ)を得た署名依頼装置10は、次に(SK,PK)を用いてメッセージmsgに対する署名Sを生成し、T=(S,PK,Info,Σ)を鍵証明書を含んだ署名の組とする。
【0044】
署名依頼装置10は、メッセージmsg,T=(s,PK,info,Σ)を検証装置30に送信する(ステップ401)。
【0045】
署名依頼装置10から,msg,Tを受信した検証装置30は、以下の処理を行う。
(a)Infoが所定の条件を満たすものであるか確認する(ステップ402)。OKであれば次に進み、NGであれば処理を終了する。
(b)z=H1(p‖q‖g‖h‖y)を計算する(ステップ403)。
(c)ω+δ=H2(ζ1‖gρyω‖gσ1ζ1δ‖hσ2(z/ζ1Info)δ‖PK)が成り立つかどうか検証する(ステップ404)。検証OKであれば次に進み、NGであれば署名装置20の不正として処理を終了する。
(d)PKに対応する署名方式の検証アルゴリズムを用いて、Sがmsgの正しい署名であるか検証する(ステップ405)。検証NGであれば署名装置20の不正とする。
【0046】
上記処理において、ステップ402〜404はPKの鍵証明書の正当性検証であり、ステップ405はmsgの署名Sの正当性検証である。
【0047】
<署名追跡>
メッセージmsgは不正なメッセージだとして、該msgの署名Sの生成者を特定したい場合、検証装置30は開示装置40および署名装置20にmsg,Tを送付にする。開示装置40および署名装置20はmsg,Tを入力して以下の処理を行う。
【0048】
1.開示装置40および署名装置20は検証装置30と同様の検証の処理(図5)を行い、検証OKとなることを確認する。もしNGであれば処理を終了する。
2.開示装置40は以下の処理を行う。
(a)I=ζ11/xtを計算する。
(b)Iを署名装置20に送信する。
3.開示装置40からIを受信した署名装置20は以下の処理を行う。
(a)(ID,ξv)I=ξvとなるようなξvを見つける。
(b)該ξvに対応するIDから、メッセージmsgの署名Sを生成した署名依頼装置(または署名依頼者)を特定する。
【0049】
上記処理は図4と同様である。これにより、開示装置40および署名装置30が協力した場合に限り、メッセージmsgの署名Sを生成した署名依頼装置(または署名依頼者)を特定することが出来る。
【0050】
なお、図1で示したシステム構成における各装置の一部もしくは全部の処理機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータを用いて実行して本発明を実現することができること、あるいは、図2〜図5で示した処理手順をコンピュータのプログラムで構成し、そのプログラムをコンピュータに実行させることができることは言うまでもない。また、コンピュータでその処理機能を実現するためのプログラム、あるいは、コンピュータにその処理手順を実行させるためのプログラムを、そのコンピュータが読み取り可能な記録媒体、例えば、FD、MO、ROM、メモリカード、CD、DVD、リムーバブルディスクなどに記録して、保存したり、提供したりすることができるとともに、インターネット等のネットワークを通してそのプログラムを配布したりすることが可能である。
【図面の簡単な説明】
【0051】
【図1】本発明の実施の形態のシステム構成を示す図。
【図2】第1の実施の形態における鍵証明書生成の処理フロー図。
【図3】第1の実施の形態における署名検証の処理フロー図。
【図4】第1の実施の形態における署名追跡の処理フロー図。
【図5】第2の実施の形態における署名検証の処理フロー図。
【符号の説明】
【0052】
10 署名依頼装置
20 署名装置
30 検証装置
40 開示装置
50 ネットワーク
【特許請求の範囲】
【請求項1】
署名依頼装置、署名装置、検証装置および開示装置を備え、開示装置および署名装置が協力する場合に限り署名依頼装置あるいは署名依頼者を特定できる追跡機能を有するブラインド署名を部分ブラインド署名に拡張する方法であって、
ブラインド署名の発行及び検証手続きで用いられる固定値の一部を、署名装置と署名依頼装置の双方に入力されている情報Infoを含めて一意的に生成することで、追跡機能を有するようなブラインド署名を部分ブラインド署名に拡張することを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項2】
請求項1記載の追跡機能を有する部分ブラインド署名方法において、
H(・,・)を任意のビット列からある群の元に写す一方向性ハッシュ関数とし、z=H(Info,・)を生成することを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項3】
署名依頼装置、署名装置、検証装置および開示装置を備え、開示装置および署名装置が協力する場合に限り署名依頼装置あるいは署名依頼者を特定できる追跡機能を有するブラインド署名を部分ブラインド署名に拡張する方法であって、
署名装置と署名依頼装置が事前に合意して得られる共通情報Infoを、署名発行処理および署名発行処理で定数として用いることで、追跡機能を有するようなブラインド署名を部分ブラインド署名に拡張することを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項4】
署名依頼装置、署名装置、検証装置および開示装置を備え、開示装置および署名装置が協力する場合に限り署名依頼装置あるいは署名依頼者を特定できる追跡機能を有するブラインド署名を部分ブラインド署名に拡張する方法であって、
p,qをq|p−1となる素数、g,hを群Zp*の位数qの部分群Gの元とし、署名依頼装置、署名装置、検証装置および開示装置は、ブラインド署名のシステムパラメータprm=(p,q,g,h)を生成し、共存し、
署名装置は、秘密鍵xを生成・保管し、公開鍵y=gxmodpを計算し、開示装置は秘密鍵rsk=(xt,dk)を生成・保管し、公開鍵rpk=(yt=gxtmodp,ek)を計算し、署名依頼装置、署名装置、検証装置および開示装置の全てがy,rpkを共有し、
署名依頼装置は署名のための秘密鍵、公開鍵の組(Sk,PK)を作成し、署名装置にPKの鍵証明書生成を依頼し、
署名装置は、特定の文字列Infoを署名依頼装置に返し、署名依頼装置又は署名依頼者を識別する情報(ID)を登録し、
署名依頼装置は、g以下の自然数γをランダムに選び、z=H1(p‖q‖g‖h‖y‖Info)(H1はGに写す一方向性ハッシュ関数)、zu=z1/γ,ξ=gγ,E=εek(γ)(εekはekでγを暗号化する関数),P=Ρ((zu,ξ),γ,ek)(ΡはEに対応する平分(=γ)が1/logzzu(=γ)およびloggξ(=γ)と等しいことを署名装置に証明するための関数)を計算し、(zu,ξ,E,P)を署名装置に送信し、
署名装置は、z=H1(p‖q‖g‖h‖y‖Info)を計算して、(zu,ξ,E,P)が正しいか検証し、検証成功の場合、q以下の自然数v,u,s1,s2,dをランダムに選び、zl=ytv,z2=zu/zl,Ps=Ρ(zl,yt,v)(Pはlogytz1(=v)の値を知っていることを署名依頼装置に証明するための関数)、a=gu,b1=gs1z1d,b2=hs2z2d,ξvを計算し、(Ps,zl,a,b1,b2)を署名依頼装置に送信し、(ID,ξv)を保存し、
署名依頼装置は(zl,b1,b2)がGの元かどうか、(z1,yt,Ps)が正しいか検証し、両方検証成功の場合、q以下の自然数t1,t2,t3,t4,t5をランダムに選び、ζ1=z1γ,ζ2=z/ζ1,α=agt1yt2,β1=b1γgt3ζ1t5,β2=b2γht4ζ2t5,ε=H2(ζ1‖α‖β1‖β2‖PK)(H2は任意の文字列をq以下の自然数に写す一方向性ハッシュ関数)、e=ε−t2−t5を計算し、eを署名装置に送信し、
署名装置は、c=e−d,r=u−cxを計算し、(r,c,s1,s2,d)を署名依頼装置に送信し、
署名依頼装置は、ρ=r+t1,ω=c+t2,σl=γs1+t3,σ2=γs2+t4,δ=d+t5を計算し、ω+δ=H2(ζ1‖gρyω‖gσ1ζ1δ‖hσ2ζ2δ‖PK)が成り立つか検証し、検証成功の場合、Σ=(ζ1,ρ,ω,σl,σ2,δ)をPKの証明書として出力する、
ことを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項5】
請求項4記載の追跡機能を有する部分ブラインド署名方法において、
署名依頼装置は、(SK,PK)を用いてメッセージmsgに対する署名Sを生成し、T=(S,PK,Info,Σ)を鍵証明書を含んだ署名の組とし、msg,Tを出力し、
検証装置は、msg,Tを入力として、Infoが所定の条件を満たすか確認し、満たす場合、z=H1(p‖q‖g‖h‖y‖Info)を計算し、ω+δ=H2(ζ1‖gρyω‖gσ1ζ1δ‖hσ2(z/ζ1)δ‖PKが成り立つか検証し、検証成功の場合、Sがmsgの正しい署名であるか検証する、
ことを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項6】
請求項5記載の追跡機能を有する部分ブラインド署名方法において、
開示装置および署名装置はmsg,Tを入力し、
開示装置は、I=ζ11/xtを計算し、Iを署名装置に送信し、
署名装置は、(ID,ξv)の組からI=ξvとなるようなξvを見つけ、該ξvに対応するIDから、msgの署名Sを生成した署名依頼装置または署名依頼者を特定する、
ことを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項7】
署名依頼装置、署名装置、検証装置および開示装置を備え、開示装置および署名装置が協力する場合に限り署名依頼装置あるいは署名依頼者を特定できる追跡機能を有するブラインド署名を部分ブラインド署名に拡張する方法であって、
p,qをq|p−1となる素数、g,hを群Zp*の位数qの部分群Gの元とし、署名依頼装置、署名装置、検証装置および開示装置は、ブラインド署名のシステムパラメータprm=(p,q,g,h)を生成し、共存し、
署名装置は、秘密鍵xを生成・保管し、公開鍵y=gxmodpを計算し、開示装置は秘密鍵rsk=(xt,dk)を生成・保管し、公開鍵rpk=(yt=gxtmodp,ek)を計算し、署名依頼装置、署名装置、検証装置および開示装置の全てがy,rpkを共有し、
署名依頼装置は署名のための秘密鍵、公開鍵の組(Sk,PK)を作成し、署名装置にPKの鍵証明書生成を依頼し、
署名装置は、特定の文字列Info(Infoはg以下の自然数)を署名依頼装置に返し、署名依頼装置又は署名依頼者を識別する情報(ID)を登録し、
署名依頼装置は、g以下の自然数γをランダムに選び、z=H1(p‖q‖g‖h‖y)(H1はGに写す一方向性ハッシュ関数)、zu=z1/γ,ξ=gγ,E=εek(γ)(εekはekでγを暗号化する関数),P=Ρ((zu,ξ),γ,ek)(ΡはEに対応する平分(=γ)が1/logzzu(=γ)およびloggξ(=γ)と等しいことを署名装置に証明するための関数)を計算し、(zu,ξ,E,P)を署名装置に送信し、
署名装置は、z=H1(p‖q‖g‖h‖y)を計算して、(zu,ξ,E,P)が正しい結果か検証し、検証成功の場合、q以下の自然数v,u,s1,s2,dをランダムに選び、zl=ytv,z2=zu/zlInfo,Ps=Ρ(zl,yt,v)(Pはlogytz1(=v)の値を知っていることを署名依頼装置に証明するための関数)、a=gu,b1=gs1z1d,b2=hs2z2d,ξvを計算し、(Ps,zl,a,b1,b2)を署名依頼装置に送信し、(ID,ξv)を保存し、
署名依頼装置は(zl,b1,b2)がGの元かどうか、(z1,yt,Ps)が正しいか検証し、両方検証成功の場合、q以下の自然数t1,t2,t3,t4,t5をランダムに選び、ζ1=z1γ,ζ2=z/ζ1Info,α=agt1yt2,β1=b1γgt3ζ1t5,β2=b2γht4ζ2t5,ε=H2(ζ1‖α‖β1‖β2‖PK)(H2は任意の文字列をq以下の自然数に写す一方向性ハッシュ関数)、e=ε−t2−t5を計算し、eを署名装置に送信し、
署名装置は、c=e−d,r=u−cxを計算し、(r,c,s1,s2,d)を署名依頼装置に送信し、
署名依頼装置は、ρ=r+t1,ω=c+t2,σl=γs1+t3,σ2=γs2+t4,δ=d+t5を計算し、ω+δ=H2(ζ1‖gρyω‖gσ1ζ1δ‖hσ2ζ2δ‖PK)が成り立つか検証し、検証成功の場合、Σ=(ζ1,ρ,ω,σl,σ2,δ)をPKの証明書として出力する、
ことを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項8】
請求項7記載の追跡機能を有する部分ブラインド署名方法において、
署名依頼装置は、(SK,PK)を用いてメッセージmsgに対する署名Sを生成し、T=(S,PK,Info,Σ)を鍵証明書を含んだ署名の組とし、msg,Tを出力し、
検証装置は、msg,Tを入力として、Infoが所定の条件を満たすか確認し、満たす場合、z=H1(p‖q‖g‖h‖y)を計算し、ω+δ=H2(ζ1‖gρyω‖gσ1ζ1δ‖hσ2(z/ζ1Info)δ‖PKが成り立つか検証し、検証成功の場合、Sがmsgの正しい署名であるか検証する、
ことを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項9】
請求項8記載の追跡機能を有する部分ブラインド署名方法において、
開示装置および署名装置はmsg,Tを入力し、
開示装置は、I=ζ11/xtを計算し、Iを署名装置に送信し、
署名装置は、(ID,ξvの組からI=ξvとなるようなξvを見つけ、該ξvに対応するIDから、msgの署名Sを生成した署名依頼装置または署名依頼者を特定する、
ことを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項10】
署名依頼装置、署名装置、検証装置および開示装置を備え、請求項4乃至9のいずれか1項に記載の追跡機能を有する部分ブラインド署名方法を実施することを特徴とす部分ブラインド署名システム。
【請求項1】
署名依頼装置、署名装置、検証装置および開示装置を備え、開示装置および署名装置が協力する場合に限り署名依頼装置あるいは署名依頼者を特定できる追跡機能を有するブラインド署名を部分ブラインド署名に拡張する方法であって、
ブラインド署名の発行及び検証手続きで用いられる固定値の一部を、署名装置と署名依頼装置の双方に入力されている情報Infoを含めて一意的に生成することで、追跡機能を有するようなブラインド署名を部分ブラインド署名に拡張することを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項2】
請求項1記載の追跡機能を有する部分ブラインド署名方法において、
H(・,・)を任意のビット列からある群の元に写す一方向性ハッシュ関数とし、z=H(Info,・)を生成することを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項3】
署名依頼装置、署名装置、検証装置および開示装置を備え、開示装置および署名装置が協力する場合に限り署名依頼装置あるいは署名依頼者を特定できる追跡機能を有するブラインド署名を部分ブラインド署名に拡張する方法であって、
署名装置と署名依頼装置が事前に合意して得られる共通情報Infoを、署名発行処理および署名発行処理で定数として用いることで、追跡機能を有するようなブラインド署名を部分ブラインド署名に拡張することを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項4】
署名依頼装置、署名装置、検証装置および開示装置を備え、開示装置および署名装置が協力する場合に限り署名依頼装置あるいは署名依頼者を特定できる追跡機能を有するブラインド署名を部分ブラインド署名に拡張する方法であって、
p,qをq|p−1となる素数、g,hを群Zp*の位数qの部分群Gの元とし、署名依頼装置、署名装置、検証装置および開示装置は、ブラインド署名のシステムパラメータprm=(p,q,g,h)を生成し、共存し、
署名装置は、秘密鍵xを生成・保管し、公開鍵y=gxmodpを計算し、開示装置は秘密鍵rsk=(xt,dk)を生成・保管し、公開鍵rpk=(yt=gxtmodp,ek)を計算し、署名依頼装置、署名装置、検証装置および開示装置の全てがy,rpkを共有し、
署名依頼装置は署名のための秘密鍵、公開鍵の組(Sk,PK)を作成し、署名装置にPKの鍵証明書生成を依頼し、
署名装置は、特定の文字列Infoを署名依頼装置に返し、署名依頼装置又は署名依頼者を識別する情報(ID)を登録し、
署名依頼装置は、g以下の自然数γをランダムに選び、z=H1(p‖q‖g‖h‖y‖Info)(H1はGに写す一方向性ハッシュ関数)、zu=z1/γ,ξ=gγ,E=εek(γ)(εekはekでγを暗号化する関数),P=Ρ((zu,ξ),γ,ek)(ΡはEに対応する平分(=γ)が1/logzzu(=γ)およびloggξ(=γ)と等しいことを署名装置に証明するための関数)を計算し、(zu,ξ,E,P)を署名装置に送信し、
署名装置は、z=H1(p‖q‖g‖h‖y‖Info)を計算して、(zu,ξ,E,P)が正しいか検証し、検証成功の場合、q以下の自然数v,u,s1,s2,dをランダムに選び、zl=ytv,z2=zu/zl,Ps=Ρ(zl,yt,v)(Pはlogytz1(=v)の値を知っていることを署名依頼装置に証明するための関数)、a=gu,b1=gs1z1d,b2=hs2z2d,ξvを計算し、(Ps,zl,a,b1,b2)を署名依頼装置に送信し、(ID,ξv)を保存し、
署名依頼装置は(zl,b1,b2)がGの元かどうか、(z1,yt,Ps)が正しいか検証し、両方検証成功の場合、q以下の自然数t1,t2,t3,t4,t5をランダムに選び、ζ1=z1γ,ζ2=z/ζ1,α=agt1yt2,β1=b1γgt3ζ1t5,β2=b2γht4ζ2t5,ε=H2(ζ1‖α‖β1‖β2‖PK)(H2は任意の文字列をq以下の自然数に写す一方向性ハッシュ関数)、e=ε−t2−t5を計算し、eを署名装置に送信し、
署名装置は、c=e−d,r=u−cxを計算し、(r,c,s1,s2,d)を署名依頼装置に送信し、
署名依頼装置は、ρ=r+t1,ω=c+t2,σl=γs1+t3,σ2=γs2+t4,δ=d+t5を計算し、ω+δ=H2(ζ1‖gρyω‖gσ1ζ1δ‖hσ2ζ2δ‖PK)が成り立つか検証し、検証成功の場合、Σ=(ζ1,ρ,ω,σl,σ2,δ)をPKの証明書として出力する、
ことを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項5】
請求項4記載の追跡機能を有する部分ブラインド署名方法において、
署名依頼装置は、(SK,PK)を用いてメッセージmsgに対する署名Sを生成し、T=(S,PK,Info,Σ)を鍵証明書を含んだ署名の組とし、msg,Tを出力し、
検証装置は、msg,Tを入力として、Infoが所定の条件を満たすか確認し、満たす場合、z=H1(p‖q‖g‖h‖y‖Info)を計算し、ω+δ=H2(ζ1‖gρyω‖gσ1ζ1δ‖hσ2(z/ζ1)δ‖PKが成り立つか検証し、検証成功の場合、Sがmsgの正しい署名であるか検証する、
ことを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項6】
請求項5記載の追跡機能を有する部分ブラインド署名方法において、
開示装置および署名装置はmsg,Tを入力し、
開示装置は、I=ζ11/xtを計算し、Iを署名装置に送信し、
署名装置は、(ID,ξv)の組からI=ξvとなるようなξvを見つけ、該ξvに対応するIDから、msgの署名Sを生成した署名依頼装置または署名依頼者を特定する、
ことを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項7】
署名依頼装置、署名装置、検証装置および開示装置を備え、開示装置および署名装置が協力する場合に限り署名依頼装置あるいは署名依頼者を特定できる追跡機能を有するブラインド署名を部分ブラインド署名に拡張する方法であって、
p,qをq|p−1となる素数、g,hを群Zp*の位数qの部分群Gの元とし、署名依頼装置、署名装置、検証装置および開示装置は、ブラインド署名のシステムパラメータprm=(p,q,g,h)を生成し、共存し、
署名装置は、秘密鍵xを生成・保管し、公開鍵y=gxmodpを計算し、開示装置は秘密鍵rsk=(xt,dk)を生成・保管し、公開鍵rpk=(yt=gxtmodp,ek)を計算し、署名依頼装置、署名装置、検証装置および開示装置の全てがy,rpkを共有し、
署名依頼装置は署名のための秘密鍵、公開鍵の組(Sk,PK)を作成し、署名装置にPKの鍵証明書生成を依頼し、
署名装置は、特定の文字列Info(Infoはg以下の自然数)を署名依頼装置に返し、署名依頼装置又は署名依頼者を識別する情報(ID)を登録し、
署名依頼装置は、g以下の自然数γをランダムに選び、z=H1(p‖q‖g‖h‖y)(H1はGに写す一方向性ハッシュ関数)、zu=z1/γ,ξ=gγ,E=εek(γ)(εekはekでγを暗号化する関数),P=Ρ((zu,ξ),γ,ek)(ΡはEに対応する平分(=γ)が1/logzzu(=γ)およびloggξ(=γ)と等しいことを署名装置に証明するための関数)を計算し、(zu,ξ,E,P)を署名装置に送信し、
署名装置は、z=H1(p‖q‖g‖h‖y)を計算して、(zu,ξ,E,P)が正しい結果か検証し、検証成功の場合、q以下の自然数v,u,s1,s2,dをランダムに選び、zl=ytv,z2=zu/zlInfo,Ps=Ρ(zl,yt,v)(Pはlogytz1(=v)の値を知っていることを署名依頼装置に証明するための関数)、a=gu,b1=gs1z1d,b2=hs2z2d,ξvを計算し、(Ps,zl,a,b1,b2)を署名依頼装置に送信し、(ID,ξv)を保存し、
署名依頼装置は(zl,b1,b2)がGの元かどうか、(z1,yt,Ps)が正しいか検証し、両方検証成功の場合、q以下の自然数t1,t2,t3,t4,t5をランダムに選び、ζ1=z1γ,ζ2=z/ζ1Info,α=agt1yt2,β1=b1γgt3ζ1t5,β2=b2γht4ζ2t5,ε=H2(ζ1‖α‖β1‖β2‖PK)(H2は任意の文字列をq以下の自然数に写す一方向性ハッシュ関数)、e=ε−t2−t5を計算し、eを署名装置に送信し、
署名装置は、c=e−d,r=u−cxを計算し、(r,c,s1,s2,d)を署名依頼装置に送信し、
署名依頼装置は、ρ=r+t1,ω=c+t2,σl=γs1+t3,σ2=γs2+t4,δ=d+t5を計算し、ω+δ=H2(ζ1‖gρyω‖gσ1ζ1δ‖hσ2ζ2δ‖PK)が成り立つか検証し、検証成功の場合、Σ=(ζ1,ρ,ω,σl,σ2,δ)をPKの証明書として出力する、
ことを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項8】
請求項7記載の追跡機能を有する部分ブラインド署名方法において、
署名依頼装置は、(SK,PK)を用いてメッセージmsgに対する署名Sを生成し、T=(S,PK,Info,Σ)を鍵証明書を含んだ署名の組とし、msg,Tを出力し、
検証装置は、msg,Tを入力として、Infoが所定の条件を満たすか確認し、満たす場合、z=H1(p‖q‖g‖h‖y)を計算し、ω+δ=H2(ζ1‖gρyω‖gσ1ζ1δ‖hσ2(z/ζ1Info)δ‖PKが成り立つか検証し、検証成功の場合、Sがmsgの正しい署名であるか検証する、
ことを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項9】
請求項8記載の追跡機能を有する部分ブラインド署名方法において、
開示装置および署名装置はmsg,Tを入力し、
開示装置は、I=ζ11/xtを計算し、Iを署名装置に送信し、
署名装置は、(ID,ξvの組からI=ξvとなるようなξvを見つけ、該ξvに対応するIDから、msgの署名Sを生成した署名依頼装置または署名依頼者を特定する、
ことを特徴とする追跡機能を有する部分ブラインド署名方法。
【請求項10】
署名依頼装置、署名装置、検証装置および開示装置を備え、請求項4乃至9のいずれか1項に記載の追跡機能を有する部分ブラインド署名方法を実施することを特徴とす部分ブラインド署名システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図2】
【図3】
【図4】
【図5】
【公開番号】特開2007−20060(P2007−20060A)
【公開日】平成19年1月25日(2007.1.25)
【国際特許分類】
【出願番号】特願2005−201556(P2005−201556)
【出願日】平成17年7月11日(2005.7.11)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成19年1月25日(2007.1.25)
【国際特許分類】
【出願日】平成17年7月11日(2005.7.11)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]