(57)【要約】      （修正有）【課題】プライバシー安全性を付加した、ブランド秘密鍵発行技術及びブラインドデータ検索技術を提供する。【解決手段】ブラインド内積暗号システムの復号装置４は、(αg,βg,(αv1,ig)i=1,…,n,(βv2,ig)i=1,…,n,(v3,ig)i=1,…,n)を計算して復号装置に送信する第一計算部と、鍵生成サーバ２に対して５−ラウンドのゼロ知識証明を行うゼロ知識証明部と、skv→:=α-1k1*+β-1k2*+k3*=(1,δγv→,02n,η→,0)B*を計算して、skv→を秘密述語ベクトルv→に対する秘密鍵とする第二計算部と、を含む。鍵生成サーバは、k1*,k2*,k3*を計算して復号装置に送信する第一計算部を含む。【選択図】図１
2016114901.tif 000002
【特許請求の範囲】
【請求項１】
復号装置から依頼を受けた鍵生成サーバが、内積暗号方式に用いられる秘密鍵を発行するブラインド秘密鍵発行システムにおいて、
qを素数とし、Fqを要素の数がq個の有限体とし、nを所定の正の整数とし、gを位数qの巡回加法群Gの要素とし、gTを位数qの巡回加法群GTの要素とし、I⊆[n]とし、秘密述語ベクトルをv→=(v1,…,vn)∈Fqn s.t. vi≠0 for i∈Iとし、B*を上記内積暗号方式の基底とし、GL(n,Fq)を要素がFqのn×n正則行列の集合とし、X*:=ψ・(XT)-1 （ψ∈Fq,X=(χi,j)∈GL(4n+1,Fq)）とし、(v1g,…,vLg)・(Mi,j)i,j=1,…,L=(Σi=1LviMi,1g,…,Σi=1LviMi,Lg)として、
上記復号装置は、α,β,γ←UFq, v1→=(v1,1,…,v1,n),v2→=(v2,1,…,v2,n)←UFqn, v3→=(v3,1,…,v3,n):=γv→-(v1→+v2→)として、(αg,βg,(αv1,ig)i=1,…,n, (βv2,ig)i=1,…,n, (v3,ig)i=1,…,n)を計算して上記復号装置に送信する第一計算部と、上記鍵生成サーバに対してゼロ知識証明ZKPoK{(α,β,(v1,i)i=1,…,n, (v2,i) i=1,…,n, (v3,i) i=1,…,n, (πi)∈I)| αg,βg, (αv1,ig)i=1,…,n, (βv2,ig)i=1,…,n, (v3,ig)i=1,…,n, πi(v1,i+v2,i+v3,i)g=g for i∈I}を行うゼロ知識証明部と、η→=α-1η1→+β-1η2→+η3→として、skv→:=α-1k1*+β-1k2*+k3*=(1,δγv→,02n,η→,0)B*を計算して、e(b0,skv→)=gT, e(bi,skv→)=e(b1,skv→)vi/v1(i=1,…,n), e(b4n+1,skv→)=1を満たす場合には、skv→を上記秘密述語ベクトルv→に対する秘密鍵とする第二計算部と、を含み、
上記鍵生成サーバは、δ←UFq, r1→=(r1,1,…,r1,n),r2→=(r2,1,…,r2,n),η1→=(η1,1,…,η1,n),η2→=(η2,1,…,η2,n),η3→=(η3,1,…,η3,n)←UFqnとして、以下に定義されるk1*, k2*, k3*を計算して上記復号装置に送信する第一計算部を含む、
k1*:=(0,αδv1→+αr1→, 02n, η1→, 0)B*=(0g, δ(αv1,1g)+r1,1(αg),…,δ(αv1,ng)+r1,n(αg), 02ng, η1,1g,…,η1,ng, 0g)・X*
k2*:=(0,βδv2→+βr2→, 02n, η2→, 0)B*=(0g, δ(βv2,1g)+r2,1(βg),…,δ(βv2,ng)+r2,n(βg), 02ng, η2,1g,…,η2,ng, 0g)・X*
k3*:=(1,δv3→-(r1→+r2→), 02n, η3→, 0)B*=(1g, δ(v3,1g)+ (r1,1+r2,1)g,…, δ(v3,1g)+(r1,n+r2,n)g, 02ng, η3,1g,…,η3,ng, 0g)・X*
ブラインド秘密鍵発行システム。
【請求項２】
請求項１のブラインド秘密鍵発行システムの鍵生成サーバ。
【請求項３】
請求項１のブラインド秘密鍵発行システムの復号装置。
【請求項４】
復号装置から依頼を受けた鍵生成サーバが、内積暗号方式に用いられる秘密鍵を発行するブラインド秘密鍵発行方法において、
qを素数とし、Fqを要素の数がq個の有限体とし、nを所定の正の整数とし、gを位数qの巡回加法群Gの要素とし、gTを位数qの巡回加法群GTの要素とし、I⊆[n]とし、秘密述語ベクトルをv→=(v1,…,vn)∈Fqn s.t. vi≠0 for i∈Iとし、B*を上記内積暗号方式の基底とし、GL(n,Fq)を要素がFqのn×n正則行列の集合とし、X*:=ψ・(XT)-1 （ψ∈Fq,X=(χi,j)∈GL(4n+1,Fq)）とし、(v1g,…,vLg)・(Mi,j)i,j=1,…,L=(Σi=1LviMi,1g,…,Σi=1LviMi,Lg)として、
上記復号装置の第一計算部が、は、α,β,γ←UFq, v1→=(v1,1,…,v1,n),v2→=(v2,1,…,v2,n)←UFqn, v3→=(v3,1,…,v3,n):=γv→-(v1→+v2→)として、(αg,βg,(αv1,ig)i=1,…,n, (βv2,ig)i=1,…,n, (v3,ig)i=1,…,n)を計算して上記復号装置に送信する第一計算ステップと、
上記復号装置のゼロ知識証明部が、上記鍵生成サーバに対してゼロ知識証明ZKPoK{(α,β,(v1,i)i=1,…,n, (v2,i) i=1,…,n, (v3,i) i=1,…,n, (πi)∈I)| αg,βg, (αv1,ig)i=1,…,n, (βv2,ig)i=1,…,n, (v3,ig)i=1,…,n, πi(v1,i+v2,i+v3,i)g=g for i∈I}を行うゼロ知識証明ステップと、
上記鍵生成サーバの第一計算部が、δ←UFq, r1→=(r1,1,…,r1,n),r2→=(r2,1,…,r2,n),η1→=(η1,1,…,η1,n),η2→=(η2,1,…,η2,n),η3→=(η3,1,…,η3,n)←UFqnとして、以下に定義されるk1*, k2*, k3*を計算して上記復号装置に送信する第一計算ステップと、
k1*:=(0,αδv1→+αr1→, 02n, η1→, 0)B*=(0g, δ(αv1,1g)+r1,1(αg),…,δ(αv1,ng)+r1,n(αg), 02ng, η1,1g,…,η1,ng, 0g)・X*
k2*:=(0,βδv2→+βr2→, 02n, η2→, 0)B*=(0g, δ(βv2,1g)+r2,1(βg),…,δ(βv2,ng)+r2,n(βg), 02ng, η2,1g,…,η2,ng, 0g)・X*
k3*:=(1,δv3→-(r1→+r2→), 02n, η3→, 0)B*=(1g, δ(v3,1g)+ (r1,1+r2,1)g,…, δ(v3,1g)+(r1,n+r2,n)g, 02ng, η3,1g,…,η3,ng, 0g)・X*
上記復号装置の第二計算部が、η→=α-1η1→+β-1η2→+η3→として、skv→:=α-1k1*+β-1k2*+k3*=(1,δγv→,02n,η→,0)B*を計算して、e(b0,skv→)=gT, e(bi,skv→)=e(b1,skv→)vi/v1(i=1,…,n), e(b4n+1,skv→)=1を満たす場合には、skv→を上記秘密述語ベクトルv→に対する秘密鍵とする第二計算ステップと、
を含むブラインド秘密鍵発行方法。
【請求項５】
ベクトルv1→,…,vk→を保持する復号装置が、検索用ベクトルw1→,…,wN→及びデータM1,…,MNを保持する鍵生成サーバに対してva→・wi→=0(a=1,…,k)を満たすデータMiの検索を行うブラインドデータ検索システムにおいて、
kを所定の正の整数とし、nを所定のk以上の正の整数とし、qを素数とし、Fqを要素の数がq個の有限体とし、gを位数qの巡回加法群Gの要素とし、gTを位数qの巡回加法群GTの要素とし、B,B*を上記内積暗号方式の基底とし、
上記復号装置は、上記鍵生成サーバに対してゼロ知識証明ZKPoK{(χi,j)|bi=(χi,jg,…,χi,4n+2g)∈B^ (i=0,1,…,n,4n+1)} (B^:=(b0,…,bn,b4n+1))及びZKPoK{(ζi,ωi,wi→,φi)|ci,1=(ζi,ωi,wi→,03n,φi)B^} for ci,1を行う第一ゼロ知識証明部と、a=1,…,k, α,β,γ←UFq, u1→:=(u1,1,…,u1,n), u2→:=(u2,1,…,u2,n)←UFqn, u3→:=(u3,1,…,u3,n):=γva→-(u1→+u2→)として、(αg,βg,αu1→g,βu2→g,u3→g)∈G3n+2を計算して上記鍵生成サーバに送信する第一計算部と、a=1,…,kとして、上記鍵生成サーバに対してゼロ知識証明ZKPoK{(α,β,αu1→,βu2→,u3→,(πp)p∈Ia)|(αg,βg,αu1→g,βu2→g,u3→g), πp(u1,p+u2,p+u3,p)=1 for p∈Ia⊆[n]}を行う第二ゼロ知識証明部と、k0*:=α-1k1*+β-1k2*を計算する第二計算部と、a=1,…,k, j=1,…,n+1, ε=0,1, zj(ε), tj(ε), φj(ε)←UFq, x→(ε), xj→(ε)←U{x→∈Fqn|x→・va→=0}, yj→(ε)←UFqn (j=1,…,n), yn+1→(ε):=-Σj=1nyj→(ε)として、ci,j(ε):=zj(ε)・(ci,1+(tj(ε),xj→(ε)+yj→(ε),03n,φj(ε))B)の計算を行い{ci,j(0)|j=1,…,n+1},{ci,j(1)|j=1,…,n+1}を上記鍵生成サーバに送信する第三計算部と、上記鍵生成サーバに対してゼロ知識証明ZKPoK{(0i-1,zj(ε),0N-i,zj(ε)・(tj(ε),xj→(ε)+yj(ε)),φj(ε))|ci,j(ε)=0・c1,1+…+zj(ε)・ci,1+…+0・cN,1+(zj(ε)・(tj(ε),xj→(ε)+yj→(ε)),03n,φj(ε))B} (ε=0,1, j=1,…,n,n+1)}を行う第三ゼロ知識証明部と、ε=0,1として、以下のKi(ε)を計算して、Ki(0)=Ki(1)を満たす場合には、Mi′:=ci,2/Ki(0)を計算して出力する第四計算部と、を含み、
【数７】
2016114901.tif 000009
上記鍵生成サーバは、内積暗号のマスター公開鍵mpk及びマスター秘密鍵mskを生成して上記マスター公開鍵mpkを上記復号装置に送信する鍵生成部と、暗号文Ci:=(ci,1,ci,2):=Enc(mpk,wi→,Mi) (i=1,…,N)を生成し(C1,…,CN)を上記復号装置に送信する暗号文生成部と、δ←UFq, r1→,r2→, η1→,η2→,η3→←UFqnとして、以下に定義されるk1*, k2*, k3*を計算してk1*,k2*を上記復号装置に送信する第一計算部と、
k1*:=(0,αδu1→+αr1→,02n,η1→,0)B*
k2*:=(0,βδu2→+βr2→,02n,η2→,0)B*
k3*:=(1,δu3→-(r1→+r2→),02n,η3→,0)B*
gi,j(ε):=e(k3*,ci,j(ε)) (ε=0,1, j=1,…,n,n+1)を計算して復号装置４に送信する第二計算部と、を含む、
ブラインドデータ検索システム。
【請求項６】
請求項５のブラインドデータ検索システムの鍵生成サーバ。
【請求項７】
請求項５のブラインドデータ検索システムの復号装置。
【請求項８】
ベクトルv1→,…,vk→を保持する復号装置が、検索用ベクトルw1→,…,wN→及びデータM1,…,MNを保持する鍵生成サーバに対してva→・wi→=0(a=1,…,k)を満たすデータMiの検索を行うブラインドデータ検索システムにおいて、
kを所定の正の整数とし、nを所定のk以上の正の整数とし、qを素数とし、Fqを要素の数がq個の有限体とし、gを位数qの巡回加法群Gの要素とし、gTを位数qの巡回加法群GTの要素とし、B,B*を上記内積暗号方式の基底とし、
上記鍵生成サーバの鍵生成部が、内積暗号のマスター公開鍵mpk及びマスター秘密鍵mskを生成して上記マスター公開鍵mpkを上記復号装置に送信する鍵生成ステップと、
上記鍵生成サーバの暗号文生成部が、暗号文Ci:=(ci,1,ci,2):=Enc(mpk,wi→,Mi) (i=1,…,N)を生成し(C1,…,CN)を上記復号装置に送信する暗号文生成ステップと、
上記復号装置の第一ゼロ知識証明部が、上記鍵生成サーバに対してゼロ知識証明ZKPoK{(χi,j)|bi=(χi,jg,…,χi,4n+2g)∈B^ (i=0,1,…,n,4n+1)} (B^:=(b0,…,bn,b4n+1))及びZKPoK{(ζi,ωi,wi→,φi)|ci,1=(ζi,ωi,wi→,03n,φi)B^} for ci,1を行う第一ゼロ知識証明ステップと、
上記復号装置の第一計算部が、a=1,…,k, α,β,γ←UFq, u1→:=(u1,1,…,u1,n), u2→:=(u2,1,…,u2,n)←UFqn, u3→:=(u3,1,…,u3,n):=γva→-(u1→+u2→)として、(αg,βg,αu1→g,βu2→g,u3→g)∈G3n+2を計算して上記鍵生成サーバに送信する第一計算ステップと、
上記復号装置の第二ゼロ知識証明部が、a=1,…,kとして、上記鍵生成サーバに対してゼロ知識証明ZKPoK{(α,β,αu1→,βu2→,u3→,(πp)p∈Ia)|(αg,βg,αu1→g,βu2→g,u3→g), πp(u1,p+u2,p+u3,p)=1 for p∈Ia⊆[n]}を行う第二ゼロ知識証明ステップと、
上記鍵生成サーバの第一計算部が、δ←UFq, r1→,r2→, η1→,η2→,η3→←UFqnとして、以下に定義されるk1*, k2*, k3*を計算してk1*,k2*を上記復号装置に送信する第一計算ステップと、
k1*:=(0,αδu1→+αr1→,02n,η1→,0)B*
k2*:=(0,βδu2→+βr2→,02n,η2→,0)B*
k3*:=(1,δu3→-(r1→+r2→),02n,η3→,0)B*
上記復号装置の第二計算部が、k0*:=α-1k1*+β-1k2*を計算する第二計算ステップと、
上記復号装置の第三計算部が、a=1,…,k, j=1,…,n+1, ε=0,1, zj(ε), tj(ε), φj(ε)←UFq, x→(ε), xj→(ε)←U{x→∈Fqn|x→・va→=0}, yj→(ε)←UFqn (j=1,…,n), yn+1→(ε):=-Σj=1nyj→(ε)として、ci,j(ε):=zj(ε)・(ci,1+(tj(ε),xj→(ε)+yj→(ε),03n,φj(ε))B)の計算を行い{ci,j(0)|j=1,…,n+1},{ci,j(1)|j=1,…,n+1}を上記鍵生成サーバに送信する第三計算ステップと、
上記復号装置の第三ゼロ知識証明部が、上記鍵生成サーバに対してゼロ知識証明ZKPoK{(0i-1,zj(ε),0N-i,zj(ε)・(tj(ε),xj→(ε)+yj(ε)),φj(ε))|ci,j(ε)=0・c1,1+…+zj(ε)・ci,1+…+0・cN,1+(zj(ε)・(tj(ε),xj→(ε)+yj→(ε)),03n,φj(ε))B} (ε=0,1, j=1,…,n,n+1)}を行う第三ゼロ知識証明ステップと、
上記鍵生成サーバの第二計算部が、gi,j(ε):=e(k3*,ci,j(ε)) (ε=0,1, j=1,…,n,n+1)を計算して復号装置４に送信する第二計算ステップと、
上記復号装置の第四計算部が、ε=0,1として、以下のKi(ε)を計算して、Ki(0)=Ki(1)を満たす場合には、Mi′:=ci,2/Ki(0)を計算して出力する第四計算ステップと、
【数８】
2016114901.tif 000010
を含むブラインドデータ検索方法。
【請求項９】
請求項２の鍵生成装置、請求項３の復号装置、請求項６の鍵生成装置又は請求項７の復号装置の各部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報セキュリティ技術の応用技術に関する。
【背景技術】
【０００２】
非特許文献１から３に記載された関数型暗号方式が知られている（例えば、非特許文献１から３参照。）。
【０００３】
プライバシー安全性を付加したデータ検索方式としては、キーワード検索のような単純な検索方式が従来から提案されている（例えば、非特許文献４参照。）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】M. Green and S. Hohenberger. Blind identity‐based encryption and simulatable oblivious transfer. ASIACRYPT, volume 4833 of Lecture Notes in Computer Science, pages 265-282. Springer, 2007.
【非特許文献２】T. Okamoto and K. Takashima. Adaptively attribute‐hiding (hierarchical) inner product encryption. EUROCRYPT, volume 7237 of Lecture Notes in Computer Science, pages 591-608. Springer, 2012.
【非特許文献３】T. Okamoto and K. Takashima. Fully secure unbounded inner‐product and attributebased encryption. ASIACRYPT 2012, volume 7658 of Lecture Notes in Computer Science, pages 349-366. Springer, 2012.
【非特許文献４】W. Ogata and K. Kurosawa. Oblivious keyword search. J. Complexity, 20(2‐3):356-371, 2004.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来から様々な関数型暗号方式が提案されているが、秘密鍵発行機能にプライバシー安全性を付加したブラインド秘密鍵発行機能をもつ関数型暗号方式は提案されていなかった。
【０００６】
また、プライバシー安全性を付加したデータ検索方式としては、キーワード検索のような単純な検索方式が従来から提案されていたが、より高度な論理関係を用いた検索方式（ここでは、そのような検索方式を関数型検索と呼ぶ。）では、プライバシー安全性を付加した関数型データ検索方式は提案されていなかった。
【０００７】
この発明は、プライバシー安全性を付加した、ブラインド秘密鍵発行システム、ブラインドデータ検索システム、これらの方法、鍵生成サーバ、復号装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様によるブラインド内積暗号システムは、復号装置から依頼を受けた鍵生成サーバが、内積暗号方式に用いられる秘密鍵を発行するブラインド秘密鍵発行システムにおいて、qを素数とし、Fqを要素の数がq個の有限体とし、nを所定の正の整数とし、gを位数qの巡回加法群Gの要素とし、gTを位数qの巡回加法群GTの要素とし、I⊆[n]とし、秘密述語ベクトルをv→=(v1,…,vn)∈Fqn s.t. vi≠0 for i∈Iとし、B*を内積暗号方式の基底とし、GL(n,Fq)を要素がFqのn×n正則行列の集合とし、X*:=ψ・(XT)-1 （ψ∈Fq,X=(χi,j)∈GL(4n+1,Fq)）とし、(v1g,…,vLg)・(Mi,j)i,j=1,…,L=(Σi=1LviMi,1g,…,Σi=1LviMi,Lg)として、復号装置は、α,β,γ←UFq, v1→=(v1,1,…,v1,n),v2→=(v2,1,…,v2,n)←UFqn, v3→=(v3,1,…,v3,n):=γv→-(v1→+v2→)として、(αg,βg,(αv1,ig)i=1,…,n, (βv2,ig)i=1,…,n, (v3,ig)i=1,…,n)を計算して復号装置に送信する第一計算部と、鍵生成サーバに対してゼロ知識証明ZKPoK{(α,β,(v1,i)i=1,…,n, (v2,i) i=1,…,n, (v3,i) i=1,…,n, (πi)∈I)| αg,βg, (αv1,ig)i=1,…,n, (βv2,ig)i=1,…,n, (v3,ig)i=1,…,n, πi(v1,i+v2,i+v3,i)g=g for i∈I}を行うゼロ知識証明部と、η→=α-1η1→+β-1η2→+η3→として、skv→:=α-1k1*+β-1k2*+k3*=(1,δγv→,02n,η→,0)B*を計算して、e(b0,skv→)=gT, e(bi,skv→)=e(b1,skv→)vi/v1(i=1,…,n), e(b4n+1,skv→)=1を満たす場合には、skv→を秘密述語ベクトルv→に対する秘密鍵とする第二計算部と、を含み、鍵生成サーバは、δ←UFq, r1→=(r1,1,…,r1,n),r2→=(r2,1,…,r2,n),η1→=(η1,1,…,η1,n),η2→=(η2,1,…,η2,n),η3→=(η3,1,…,η3,n)←UFqnとして、以下に定義されるk1*, k2*, k3*を計算して復号装置に送信する第一計算部を含む。
【０００９】
k1*:=(0,αδv1→+αr1→, 02n, η1→, 0)B*=(0g, δ(αv1,1g)+r1,1(αg),…,δ(αv1,ng)+r1,n(αg), 02ng, η1,1g,…,η1,ng, 0g)・X*
k2*:=(0,βδv2→+βr2→, 02n, η2→, 0)B*=(0g, δ(βv2,1g)+r2,1(βg),…,δ(βv2,ng)+r2,n(βg), 02ng, η2,1g,…,η2,ng, 0g)・X*
k3*:=(1,δv3→-(r1→+r2→), 02n, η3→, 0)B*=(1g, δ(v3,1g)+ (r1,1+r2,1)g,…, δ(v3,1g)+(r1,n+r2,n)g, 02ng, η3,1g,…,η3,ng, 0g)・X*
【００１０】
本発明の一態様によるブラインドデータ検索システムは、ベクトルv1→,…,vk→を保持する復号装置が、検索用ベクトルw1→,…,wN→及びデータM1,…,MNを保持する鍵生成サーバに対してva→・wi→=0(a=1,…,k)を満たすデータMiの検索を行うブラインドデータ検索システムにおいて、kを所定の正の整数とし、nを所定のk以上の正の整数とし、qを素数とし、Fqを要素の数がq個の有限体とし、gを位数qの巡回加法群Gの要素とし、gTを位数qの巡回加法群GTの要素とし、B,B*を内積暗号方式の基底とし、復号装置は、鍵生成サーバに対してゼロ知識証明ZKPoK{(χi,j)|bi=(χi,jg,…,χi,4n+2g)∈B^ (i=0,1,…,n,4n+1)} (B^:=(b0,…,bn,b4n+1))及びZKPoK{(ζi,ωi,wi→,φi)|ci,1=(ζi,ωi,wi→,03n,φi)B^} for ci,1を行う第一ゼロ知識証明部と、a=1,…,k, α,β,γ←UFq, u1→:=(u1,1,…,u1,n), u2→:=(u2,1,…,u2,n)←UFqn, u3→:=(u3,1,…,u3,n):=γva→-(u1→+u2→)として、(αg,βg,αu1→g,βu2→g,u3→g)∈G3n+2を計算して鍵生成サーバに送信する第一計算部と、a=1,…,kとして、鍵生成サーバに対してゼロ知識証明ZKPoK{(α,β,αu1→,βu2→,u3→,(πp)p∈Ia)|(αg,βg,αu1→g,βu2→g,u3→g), πp(u1,p+u2,p+u3,p)=1 for p∈Ia⊆[n]}を行う第二ゼロ知識証明部と、k0*:=α-1k1*+β-1k2*を計算する第二計算部と、a=1,…,k, j=1,…,n+1, ε=0,1, zj(ε), tj(ε), φj(ε)←UFq, x→(ε), xj→(ε)←U{x→∈Fqn|x→・va→=0}, yj→(ε)←UFqn (j=1,…,n), yn+1→(ε):=-Σj=1nyj→(ε)として、ci,j(ε):=zj(ε)・(ci,1+(tj(ε),xj→(ε)+yj→(ε),03n,φj(ε))B)の計算を行い{ci,j(0)|j=1,…,n+1},{ci,j(1)|j=1,…,n+1}を鍵生成サーバに送信する第三計算部と、鍵生成サーバに対してゼロ知識証明ZKPoK{(0i-1,zj(ε),0N-i,zj(ε)・(tj(ε),xj→(ε)+yj(ε)),φj(ε))|ci,j(ε)=0・c1,1+…+zj(ε)・ci,1+…+0・cN,1+(zj(ε)・(tj(ε),xj→(ε)+yj→(ε)),03n,φj(ε))B} (ε=0,1, j=1,…,n,n+1)}を行う第三ゼロ知識証明部と、ε=0,1として、以下のKi(ε)を計算して、Ki(0)=Ki(1)を満たす場合には、Mi′:=ci,2/Ki(0)を計算して出力する第四計算部と、を含み、
【００１１】
【数１】
2016114901.tif 000003
【００１２】
鍵生成サーバは、内積暗号のマスター公開鍵mpk及びマスター秘密鍵mskを生成してマスター公開鍵mpkを復号装置に送信する鍵生成部と、暗号文Ci:=(ci,1,ci,2):=Enc(mpk,wi→,Mi) (i=1,…,N)を生成し(C1,…,CN)を復号装置に送信する暗号文生成部と、δ←UFq, r1→,r2→, η1→,η2→,η3→←UFqnとして、以下に定義されるk1*, k2*, k3*を計算してk1*,k2*を復号装置に送信する第一計算部と、
k1*:=(0,αδu1→+αr1→,02n,η1→,0)B*
k2*:=(0,βδu2→+βr2→,02n,η2→,0)B*
k3*:=(1,δu3→-(r1→+r2→),02n,η3→,0)B*
gi,j(ε):=e(k3*,ci,j(ε)) (ε=0,1, j=1,…,n,n+1)を計算して復号装置４に送信する第二計算部と、を含む。
【発明の効果】
【００１３】
プライバシー安全性が確保される。
【図面の簡単な説明】
【００１４】
【図１】ブラインド内積暗号システム及びブラインド秘密鍵発行システムの例の機能ブロック図。
【図２】ブラインド秘密鍵発行システムの鍵生成サーバの例の機能ブロック図。
【図３】ブラインド秘密鍵発行システムの復号装置の例の機能ブロック図。
【図４】ブラインドデータ検索システムの例の機能ブロック図。
【図５】ブラインドデータ検索システムの鍵生成サーバの例の機能ブロック図。
【図６】ブラインドデータ検索システムの復号装置の例の機能ブロック図。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について説明する。
【００１６】
双線形写像を多重に用いて高次の線形空間を構成するDPVS(Dual Pairing Vector Space: 双対双線形ベクトル空間）という手法を用いて、従来より提案されていた岡本-高島内積暗号方式において新たな「ブラインド秘密鍵発行プロトコルBlindKeyGen」を考案した。このブラインド秘密鍵発行プロトコルBlindKeyGenでは、述語ベクトルをもつ復号装置４は、秘密鍵の発行者である鍵生成サーバ２に述語ベクトルを隠して（ブラインド化して）鍵発行を依頼し、鍵生成サーバ２はブラインド化された述語ベクトル情報に対して秘密鍵を作成し、それを受け取った復号装置４は、受け取った情報を復元する（アンブラインド化する）ことで、述語ベクトルに関する秘密鍵を得ることができる。
【００１７】
[記法]
まず、最初に以下の記述で用いる記号の説明をする。
【００１８】
Aが集合のとき、y←UAは、yが集合Aからランダムに選ばれることを意味する。Fqは、要素の数がq個の有限体を意味する。また、Fq＼{0}（Fqから0を除いたもの）をFq×と記す。x→はFq上のベクトルを意味する。つまり、(x1,…,xn)∈Fqnである。２つのベクトルx→=(x1,…,xn)とv→=(v1,…,vn)の間の内積演算Σni=1nxiviをx→・v→と記す。Xが行列のとき、XTはXの転置行列を意味する。
【００１９】
[双対双線形ベクトル空間: DPVS (Dual Pairing Vector Space)]
双対双線形ベクトル空間（DPVS)は、双線形写像群の上で構成される。そこで、まず双線形写像群について説明する。
【００２０】
[双線形写像群]
双線形写像群(q,G,GT,g,e)は、位数が素数qの巡回加法群Gと位数がqの巡回乗法群GTおよびその要素g≠0∈G、ならびに、双線形写像e:G×G→GTからなる。ここで、e(sg,tg)=e(g,g)stおよびe(g,g)≠1が成立する。e(g,g)=gTとする。Gbpgは、安全係数（パラメータサイズ）λを入力として双線形写像群のパラメータ(q,G,GT,g,e)を出力するアルゴリズムである。
【００２１】
[双対双線形ベクトル空間（DPVS)]
双線形写像群(q,G,GT,g,e)上の双対双線形ベクトル空間(q,V,GT,A,e)は、素数q,Fq上のN-次元のベクトル空間V（群Gの要素をN 個並べたもの）、
【００２２】
【数２】
2016114901.tif 000004
【００２３】
位数がqの巡回群GT、Vの標準基底A:=(a1,…,aN)（ここで、
【００２４】
【数３】
2016114901.tif 000005
【００２５】
）、および、双線形写像e:V×V→GTからなる。ここで、x:=(g1,…,gN)∈Vとy:=(H1,…,HN)∈Vの間の双線形写像eは、e(x,y):=Πi=1Ne(gi,Hi)∈GTで定義される。このとき、以下が成立する。e(sx,ty)=e(x,y)st、e(ai,aj)=e(g,g)δ(i,j)、ここで、δ(i,j)は、いわゆるクロネッカーのデルタであり、i=jならばδ(i,j)=1であり、i≠jならばδ(i,j)=0である。
【００２６】
Gdpvsは、安全係数λと所定の整数である次元Nを入力として、双対双線形ベクトル空間（DPVS)のパラメータparamV:=(q,V,GT,A,e)を出力するアルゴリズムである。このアルゴリズムの内部で、Gbpgを利用する。
【００２７】
Vの基底B:=(b1,…,bN)と基底B*:=(b1*,…,bN*)に関して、(x1,…,xN)B:=Σi=1Nxibiおよび(y1,…,yN)B*:=Σi=1Nxibi*と定義する。ここで、bi,bi*は、双対双線形ベクトル空間Vの要素とする。すなわち、bi,bi*∈Vである。GL(n,Fq)は、Fq上の次数がnの一般線形群（要素がFqのn×n正則行列の集合）を意味する。
【００２８】
[岡本・高島内積暗号]
今回の発明のベースとなる内積暗号（岡本・高島内積暗号）を説明する。この内積暗号は、後述する４つのアルゴリズム（セットアップSetup、秘密鍵生成KeyGen、暗号化Enc、復号Dec）から構成される。内積暗号システムは、図１に示すように、セットアップサーバ１、鍵生成サーバ２、暗号化装置３及び復号装置４を備えている。
【００２９】
内積暗号では、最初に、セットアップサーバ１が、セットアップSetupを用いて、マスター公開鍵（公開パラメータ）mpkとマスター秘密鍵mskを作成し、マスター公開鍵mpk をシステムパラメータとして公開する。
【００３０】
また、鍵生成サーバ２が、秘密鍵生成KeyGenを用いて、述語ベクトルv→に対して秘密鍵skv→を作成する。生成された秘密鍵skv→は、復号装置４に送信される。
【００３１】
暗号化装置３が、平文mと属性ベクトルx→に対してマスター公開鍵（公開パラメータ）mpkを用いて暗号化Encを行い暗号文cx→を作る。生成された暗号文cx→は、復号装置４に送信される。
【００３２】
復号装置４は、復号Decを用いて、暗号文cx→を秘密鍵skv→で復号する。
【００３３】
ここで、v→・x→=0（v→・x→はベクトルの内積を意味する）でありその時に限り、平文m が復号できるとする。
【００３４】
セットアップSetupは、以下の通りである。
【００３５】
Setup(1λ,n):
(paramV,B:=(b0,…,b4n+1),B*:=(b0*,…,b4n+1*))←Gob(1λ,4n+2),
B^:=(b0,…,bn,b4n+1),B^*:=(b0*,…,bn*,b3n+1*,…,b4n*),
return mpk:=(1λ,paramV,B^), msk:=B^*
【００３６】
秘密鍵生成KeyGenは、以下の通りである。
【００３７】
KeyGen(mpk, msk, v→∈Fqn＼{0→}):σ←UFq,η←UFqn,
【００３８】
【数４】
2016114901.tif 000006
【００３９】
return skv→:=k*
【００４０】
Gobは、以下のように定義される確率的アルゴリズムである。
【００４１】
Gob(1λ,N): param’V:=(q,V,GT,A,e)←RGdpvs(1λ,N), ψ←UFq×, gT:=e(g,g)ψ,
X:=(χi,j)←UGL(N,Fq), (νi,j):=ψ・(XT)-1, paramV:=(param’V, gT),
bi:=Σj=1Nχi,jaj, B:=(b1,…,bN), bi*:=Σj=1Nνi,jaj, B*:=(b0*,…,bN*),
return (paramV, B, B*)
【００４２】
暗号化Encは、以下の通りである。
【００４３】
Enc(mpk, 平文m∈GT,x→∈Fqn＼{0→}): ω,φ,ζ←UFq,
【００４４】
【数５】
2016114901.tif 000007
【００４５】
return ctx→:=(c1,c2)
【００４６】
復号Decは、以下の通りである。
【００４７】
Dec(mpk,skv→:=k*, ctx→:=(c1,c2)): m′:=c2/e(c1,k*), return m′
【００４８】
[ブラインド秘密鍵発行プロトコルBlindKeyGen]
「ブラインド秘密鍵発行プロトコルBlindKeyGen」の一例の説明を行う。このプロトコルでは、岡本・高島内積暗号の秘密鍵生成KeyGen の代わりにブラインド秘密鍵発行プロトコルBlindKeyGenを用いて秘密鍵生成が行われる。ブラインド秘密鍵発行プロトコルBlindKeyGenは、鍵生成サーバ２及び復号装置４から成るブラインド秘密鍵発行システムにより行われる。鍵生成サーバ２は、図２に示すように、第一計算部２１を例えば備えている。復号装置４は、図３に示すように、第一計算部４１、ゼロ知識証明部４２及び第二計算部４３を例えば備えている。
【００４９】
このブラインド秘密鍵発行プロトコルを用いたブラインド内積暗号方式Π=(Setup, BlindKeyGen, Enc, Dec)は、以下のように構成される。
【００５０】
KeyGen,Enc,Dec は、岡本・高島内積暗号と同じである。Setup は、以下の点を除いて、岡本・高島内積暗号のSetup と同じである。異なる点は、(mpk, msk) が岡本・高島内積暗号の(mpk, msk) に加えて更に以下の情報を含むことである。
【００５１】
mpkとして、{di*}i=1,…,2nを更に含む。ここで、di*:=(0,γi←,02n,ωi←,0)B*(i=1,…,2n)、γi←,ωi←∈Fqnである。
【００５２】
mskとして、X*を更に含む。ここで、X*:=ψ・(XT)-1（ψ∈Fq,X=(χi,j)∈GL(4n+1,Fq)）である。
【００５３】
以下、「ブラインド秘密鍵発行プロトコルBlindKeyGen」の説明をする。
【００５４】
<入力> 共通入力：秘密鍵発行者である鍵生成サーバ２と依頼者である復号装置４は、マスター公開鍵mpk=(1λ,paramV,B^,{di*}i=1,…,2n)及びインデックス集合I⊆[n]を共有する。ここで、[n]は、[n]={1,…,n}であり、１からｎまでの整数の集合である。マスター公開鍵mpk=(1λ,paramV,B^,{di*}i=1,…,2n)は、セットアップサーバ１により生成されたものである。
【００５５】
秘密入力: 鍵生成サーバ２は、マスター秘密鍵msk:=(B^*,X*)を保有する。マスター秘密鍵msk:=(B^*,X*)は、セットアップサーバ１により生成されたものである。
【００５６】
復号装置４は、秘密述語ベクトルv→=(v1,…,vn)∈Fqn s.t. vi≠0 for i∈Iを保持する。
【００５７】
<記号> 以下では、(v1g,…,vLg)・(Mi,j)i,j=1,…,L=(Σi=1LviMi,1g,…,Σi=1LviMi,Lg)とする。
【００５８】
<鍵生成フェーズ>鍵生成サーバ２と復号装置４は、以下のプロトコルを実行する。
【００５９】
1. 復号装置４は、以下の値を生成する。
【００６０】
α,β,γ←UFq, v1→,v2→←UFqn, v3→:=γv→-(v1→+v2→)
【００６１】
復号装置４の第一計算部４１は、以下の計算を行い、鍵生成サーバ２に送信する。
【００６２】
(αg,βg,(αv1,ig)i=1,…,n, (βv2,ig)i=1,…,n, (v3,ig)i=1,…,n)
【００６３】
2. 復号装置４のゼロ知識証明部４２は、鍵生成サーバ２に対して以下のゼロ知識証明プロトコルZKPoKを実行する。ZKPoK は、5-ラウンドのゼロ知識証明プロトコルである。
【００６４】
ZKPoK{(α,β,(v1,i)i=1,…,n, (v2,i) i=1,…,n, (v3,i) i=1,…,n, (πi)∈I)| αg,βg, (αv1,ig)i=1,…,n, (βv2,ig)i=1,…,n, (v3,ig)i=1,…,n, πi(v1,i+v2,i+v3,i)g=g for i∈I}
ここで、上記証明πiは、i∈Iに対して、vi≠0 であることを保証する。もし、ZKPoKが受理されなければ、鍵生成サーバ２はプロトコルを中止する。
【００６５】
ゼロ知識証明プロトコルZKPoK{A|B}は、情報Bを用いて情報Aを知っていることを情報Aを明かさずに証明するプロトコルである。言い換えれば、ゼロ知識証明プロトコルZKPoK{A|B}は、条件Bを満たす情報Aを知っていることを情報Aを明かさずに証明するプロトコルである。
【００６６】
ゼロ知識証明プロトコルについては、例えば参考文献１を参照のこと。
【００６７】
〔参考文献１〕I.Damgard, “Practical and provably secure release of a secret and exchange of signatures”, In EUROCRYPT’93, pages 200-217, 1994
【００６８】
3. 鍵生成サーバ２は、鍵生成サーバ２の配下の以下の値を選ぶ。
【００６９】
δ←UFq, r1→,r2→,η1→,η2→,η3→←UFqn
【００７０】
つぎに鍵生成サーバ２の第一計算部２１は、以下の値k1*, k2*, k3*を計算し、復号装置４に送信する。
【００７１】
k1*:=(0,αδv1→+αr1→, 02n, η1→, 0)B*=(0g, δ(αv1,1g)+r1,1(αg),…,δ(αv1,ng)+r1,n(αg), 02ng, η1,1g,…,η1,ng, 0g)・X*
k2*:=(0,βδv2→+βr2→, 02n, η2→, 0)B*=(0g, δ(βv2,1g)+r2,1(βg),…,δ(βv2,ng)+r2,n(βg), 02ng, η2,1g,…,η2,ng, 0g)・X*
k3*:=(1,δv3→-(r1→+r2→), 02n, η3→, 0)B*=(1g, δ(v3,1g)+ (r1,1+r2,1)g,…, δ(v3,1g)+(r1,n+r2,n)g, 02ng, η3,1g,…,η3,ng, 0g)・X*
【００７２】
4. 復号装置４の第二計算部４３は、以下の手順で秘密鍵skv→を計算する。ここで、η→=α-1η1→+β-1η2→+η3→である。
【００７３】
skv→:=α-1k1*+β-1k2*+k3*=(1,δγv→,02n,η→,0)B*,
【００７４】
復号装置４の第二計算部４３は、以下の関係が満たされるかを確認する。もし、関係が満たされない場合には、プロトコルを中止する。
【００７５】
e(b0,skv→)=gT, e(bi,skv→)=e(b1,skv→)vi/v1(i=1,…,n), e(b4n+1,skv→)=1
【００７６】
<出力> 復号装置４は、ベクトルv→に対する秘密鍵skv→を得る。
【００７７】
[ブラインドデータ検索方式]
内積述語の関数型データ検索方式であるブラインドデータ検索方式について説明する。このブラインドデータ検索方式とは、鍵生成サーバ５が保持する検索用ベクトルw1→,…,wn→∈FqnおよびデータM1,…,MNに対して、これを検索する復号装置６がベクトルv1→,…,vk→∈Fqnを用いて検索を行う。ここで、kは所定の正の整数であり、Nは所定のk以上の正の整数である。
【００７８】
ブラインドデータ検索方式は、図４に例示する鍵生成サーバ５及び復号装置６から成るブラインドデータ検索システムにより行われる。鍵生成サーバ５は、図５に示すように、鍵生成部５１、暗号文生成部５２、第一計算部５３及び第二計算部５４を例えば備えている。復号装置６は、図６に示すように、第一ゼロ知識証明部６１、第一計算部６２、第二ゼロ知識証明部６３、第二計算部６４、第三計算部６４、第三ゼロ知識証明部６６及び第四計算部６７を例えば備えている。
【００７９】
復号装置６は、内積述語関係を満足する、つまりva→・wi→=0(a=1,…,k)を満たすデータMiのみを検索することができる。
【００８０】
<入力> 共有入力: 鍵生成サーバ５と復号装置６の共有情報は、インデックス集合Ia⊆[n](a=1,…,k)である。
【００８１】
固有入力: 鍵生成サーバ５の固有入力は、ベクトルw1→:=(w1,1,…,w1,n),…, wN→:=(wN,1,…,wN,n)∈FqnおよびデータM1,…,MNである。ここで、Mi∈G’⊆GT#G’/#GT<ε(λ)およびwi,n=1 (i=1,…,N)とする。#Aは、群Aの要素の数である。ε(λ)は、セキュリティパラメータλのネグリジブルな関数である。
【００８２】
復号装置６の固有入力Σは、ベクトルv1→:=(v1,1,…,v1,n),…,vk→:=(vk,1,…,vk,n)∈Fqnである。ここで、va,i≠0 for a=1,…,k, i∈I
【００８３】
<初期フェーズ>
1. 鍵生成サーバ５の鍵生成部５１は、前に示した岡本・高島内積暗号のセットアップSetupを用いて、(mpk, msk):=Setup(1λ,n)を生成し、マスター公開鍵mpkを復号装置６に送る。
【００８４】
2. 鍵生成サーバ５の暗号文生成部５２は、暗号文Ci:=(ci,1,ci,2):=Enc(mpk,wi→,Mi) (i=1,…,N)を生成し、(C1,…,CN)を復号装置６に送る。
【００８５】
3. 証明者としての復号装置６及び検証者としての鍵生成サーバ５は、ゼロ知識証明プロトコルZKPoK{(χi,j)|bi=(χi,jg,…,χi,4n+2g)∈B^ (i=0,1,…,n,4n+1)} (B^:=(b0,…,bn,b4n+1))及びZKPoK{(ζi,ωi,wi→,φi)|ci,1=(ζi,ωi,wi→,03n,φi)B^} for ci,1を実行する。もし、検証に失敗すれば、復号装置６はこのプロトコルの実行を中止する。
【００８６】
言い換えれば、復号装置６の第一ゼロ知識証明部６１は、鍵生成サーバ５に対してゼロ知識証明ZKPoK{(χi,j)|bi=(χi,jg,…,χi,4n+2g)∈B^ (i=0,1,…,n,4n+1)} (B^:=(b0,…,bn,b4n+1))及びZKPoK{(ζi,ωi,wi→,φi)|ci,1=(ζi,ωi,wi→,03n,φi)B^} for ci,1を行う。
【００８７】
<検索フェーズ>
鍵生成サーバ５及び復号装置６は、順次、以下の検索プロトコルをk回実行する。
【００８８】
そのa回目の検索プロトコル(1≦a≦k)で、鍵生成サーバ５は、va→に対して、すべてのi(1≦i≦N)のCiとの間で検索（復号）プロトコルを実行する。
【００８９】
1. 復号装置６の第一計算部６２は、乱数α,β,γ←UFq、ランダムベクトルu1→:=(u1,1,…,u1,n), u2→:=(u2,1,…,u2,n)←UFqnを選び、u3→:=(u3,1,…,u3,n):=γva→-(u1→+u2→)とする。
【００９０】
復号装置６の第一計算部６２は、(αg,βg,αu1→g,βu2→g,u3→g)∈G3n+2を計算し、それらを鍵生成サーバ５に送る。
【００９１】
2. 復号装置６の第二ゼロ知識証明部６３は、鍵生成サーバ５に対して、知識(α,β,αu1→,βu2→,u3→,(πp)p∈Ia)に関する、次の値に対するゼロ知識証明ZKPoKを実行する。
【００９２】
(αg,βg,αu1→g,βu2→g,u3→g)およびπp(u1,p+u2,p+u3,p)=1 for p∈Ia⊆[n]
【００９３】
すなわち、ゼロ知識証明ZKPoKは、ZKPoK{(α,β,αu1→,βu2→,u3→,(πp)p∈Ia)|(αg,βg,αu1→g,βu2→g,u3→g), πp(u1,p+u2,p+u3,p)=1 for p∈Ia⊆[n]}である。
【００９４】
もし、ゼロ知識証明ZKPoKの検証に失敗すれば、鍵生成サーバ５は検索処理を中止する。
【００９５】
3. 鍵生成サーバ５の第一計算部５３は、δ←UFqおよびr1→,r2→, η1→,η2→,η3→←UFqnを選び、以下の値k1*, k2*, k3*を計算する。
【００９６】
k1*:=(0,αδu1→+αr1→,02n,η1→,0)B*
k2*:=(0,βδu2→+βr2→,02n,η2→,0)B*
k3*:=(1,δu3→-(r1→+r2→),02n,η3→,0)B*
【００９７】
鍵生成サーバ５の第一計算部５３は、k1*とk2*を復号装置４に送り、k3*を秘密に保存する。
【００９８】
4. 復号装置６の第二計算部６４は、以下の値k0*を計算する。
【００９９】
k0*:=α-1k1*+β-1k2*
【０１００】
5. 復号装置６が鍵であるベクトルva→でCi(1≦i≦N)を復号しようとするときは、復号装置６の第三計算部６５は、以下のci,j(ε)を計算する。
【０１０１】
ci,j(ε):=zj(ε)・(ci,1+(tj(ε),xj→(ε)+yj→(ε),03n,φj(ε))B)
【０１０２】
ここで、j=1,…,n+1, ε=0,1, zj(ε), tj(ε), φj(ε)←UFq, x→(ε), xj→(ε)←U{x→∈Fqn|x→・va→=0}, yj→(ε)←UFqn (j=1,…,n), yn+1→(ε):=-Σj=1nyj→(ε)(つまり、Σj=1n+1yj→(ε)=0→)とする。
【０１０３】
復号装置６の第三計算部６５は、鍵生成サーバ５に以下を送る。
【０１０４】
{ci,j(0)|j=1,…,n+1},{ci,j(1)|j=1,…,n+1}
【０１０５】
また、復号装置６の第三ゼロ知識証明部６６は、鍵生成サーバ５に対して以下のゼロ零知識証明ZKPoKを実行する。
ZKPoK{(0i-1,zj(ε),0N-i,zj(ε)・(tj(ε),xj→(ε)+yj(ε)),φj(ε))|ci,j(ε)=0・c1,1+…+zj(ε)・ci,1+…+0・cN,1+(zj(ε)・(tj(ε),xj→(ε)+yj→(ε)),03n,φj(ε))B} (ε=0,1, j=1,…,n,n+1)}
【０１０６】
もし、ZKPoK の検証に失敗すれば、鍵生成サーバ５は検索処理を中止する。さもなければ、鍵生成サーバ５の第二計算部５４は、gi,j(ε):=e(k3*,ci,j(ε)) (ε=0,1, j=1,…,n,n+1)を計算し、それらを復号装置６に送る。
【０１０７】
7. 復号装置６の第四計算部６７は、以下の値を計算する。
【０１０８】
【数６】
2016114901.tif 000008
【０１０９】
さらに、復号装置６の第四計算部６７は、Ki(0)=Ki(1)をチェックして、満足しなければ処理を中止し、満足すれば、Mi′:=ci,2/Ki(0)を計算する。もし、Mi′∈G’ならば、復号装置６の第四計算部６７はそれを出力する。さもなくば、処理を中止する旨の信号を出力する。
【０１１０】
［変形例等］
上記装置及び方法において説明した処理は、記載の順にしたがって時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【０１１１】
また、上記各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【０１１２】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【０１１３】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。
【０１１４】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【０１１５】
また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2016114901.tif 000011
【図２】
2016114901.tif 000012
【図３】
2016114901.tif 000013
【図４】
2016114901.tif 000014
【図５】
2016114901.tif 000015
【図６】
2016114901.tif 000016