JP6259402B2 - 鍵配送管理装置、端末装置、鍵配送システム、およびプログラム - Google Patents

鍵配送管理装置、端末装置、鍵配送システム、およびプログラム Download PDF

Info

Publication number
JP6259402B2
JP6259402B2 JP2015009271A JP2015009271A JP6259402B2 JP 6259402 B2 JP6259402 B2 JP 6259402B2 JP 2015009271 A JP2015009271 A JP 2015009271A JP 2015009271 A JP2015009271 A JP 2015009271A JP 6259402 B2 JP6259402 B2 JP 6259402B2
Authority
JP
Japan
Prior art keywords
information
seed value
new
secret
key
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.)
Active
Application number
JP2015009271A
Other languages
English (en)
Other versions
JP2016134826A (ja
Inventor
一樹 米山
一樹 米山
麗生 吉田
麗生 吉田
鉄太郎 小林
鉄太郎 小林
祐人 川原
祐人 川原
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 JP2015009271A priority Critical patent/JP6259402B2/ja
Publication of JP2016134826A publication Critical patent/JP2016134826A/ja
Application granted granted Critical
Publication of JP6259402B2 publication Critical patent/JP6259402B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報セキュリティ技術の応用技術に関し、特に、共通鍵を共有する鍵配送方式に関する。
従来の動的鍵配送方式の一つにSTW方式がある(例えば、非特許文献1参照)。STW方式では、ユーザ集合に属する端末装置がピア・ツー・ピアで通信を行い、これらの端末装置が共通のセッション鍵(共通鍵)を共有する。既存のユーザ集合に新たな端末装置を追加した場合や、既存のユーザ集合から端末装置を削除した場合には、更新後のユーザ集合に応じた新たな共通鍵が生成される。
Michael Steiner, Gene Tsudik, Michael Waidner, "Diffie-Hellman Key Distribution Extended to Group Communication," ACM Conference on Computer and Communications Security 1996, 31-37.
上記の既存技術では、通信路の盗聴のみを行う攻撃者に対しては、共通鍵の情報が漏れないが、通信路上で改ざんを行うような攻撃者に対しては成りすましを防げない。また、鍵配送時に一部の端末装置がブロードキャストを行う必要があり、端末装置数が増大するとそれらの端末装置の計算・通信コストが増大するという問題がある。
本発明の課題は、通信路上での成り済ましに対する安全性が高く、端末装置の計算・通信コストが小さな鍵配送技術を提供することである。
鍵配送管理装置は、関数暗号方式に則って第1シード値を暗号化し、有効時間区間に属する時間に対応する情報を含む情報に対応する秘密鍵で復号可能な暗号文を得、暗号文と共有情報とを端末装置に出力する。端末装置は、前記有効時間区間に属する時間に対応する情報を含む情報に対応する秘密鍵を用い、前記関数暗号方式に則って前記暗号文を復号して第1シード値を得、前記共有情報と端末秘密値の逆元とに応じた秘匿化共有情報を得て出力する。鍵配送管理装置は、前記秘匿化共有情報と管理秘密値とに応じた第2シード値の秘匿化情報を得て出力する。端末装置は、前記第2シード値の秘匿化情報と前記端末秘密値とに応じた第2シード値を得、前記第1シード値を含む情報と前記第2シード値を含む情報とに対応する共通鍵を得る。
以上より、通信路上での成り済ましに対する安全性が高く、端末装置の計算・通信コストが小さな鍵配送が可能となる。
図1は、実施形態の鍵配送システムの機能構成を例示したブロック図である。 図2Aは、第1実施形態の鍵配送管理装置の機能構成を例示したブロック図であり、図2Bは、第1実施形態の端末装置の機能構成を例示したブロック図である。 図3は、第1実施形態の鍵配送処理を例示するためのシーケンス図である。 図4は、第1実施形態のユーザ追加処理を例示するためのシーケンス図である。 図5Aは、第1実施形態の有効時間区間の更新処理を例示するためのシーケンス図であり、図5Bは、第1実施形態のユーザ削除処理を例示するためのシーケンス図である。 図6は、第2実施形態の鍵配送管理装置の機能構成を例示したブロック図である。 図7は、第2実施形態の端末装置の機能構成を例示したブロック図である。 図8は、第2実施形態の秘密鍵配送処理を例示するためのシーケンス図である。 図9は、第2実施形態の鍵配送処理を例示するためのシーケンス図である。 図10は、第2実施形態の鍵配送処理を例示するためのシーケンス図である。 図11は、第2実施形態の鍵配送処理を例示するためのシーケンス図である。 図12は、第2実施形態の端末追加処理を例示するためのシーケンス図である。 図13は、第2実施形態の端末追加処理を例示するためのシーケンス図である。 図14は、第2実施形態の端末追加処理を例示するためのシーケンス図である。 図15は、第2実施形態の端末削除処理を例示するためのシーケンス図である。
以下、図面を参照して本発明の実施形態を説明する。
[第1実施形態]
まず、本発明の第1実施形態を説明する。
<構成>
図1に例示するように、本形態の鍵配送システム1は、端末装置12−1〜12−Nと鍵配送管理装置11とを有する。ただし、Nは3以上の整数である。端末装置12−1〜12−Nと鍵配送管理装置11とはインターネット等の安全ではない通信路を通じて通信可能に構成されている。
図2Aに例示するように、本形態の鍵配送管理装置11は、制御部110と配送処理部111,112と通信部118と記憶部119とを有する。図2Bに例示するように、本形態の端末装置12−hは、制御部120−hと処理部121−h〜124−hと通信部128−hと記憶部129−hとを有する。ただし、h∈[1,N]である。[1,N]は1以上N以下の整数からなる集合{1,・・・,N}を表す。各装置は、例えば、通信装置、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)やRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される装置である。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。また、各装置は自らが備える制御部110,120−hの制御に基づいて各処理を実行する。各装置の各処理で得られたデータは、逐一、それぞれが備える記憶部119,129−hに格納され、必要に応じて読み出されて使用される。
<鍵配送処理>
以下、端末装置12−1〜12−Nからなる集合の部分集合(ユーザ集合)である端末装置12−σ(1)〜12−σ(n)がセッションを立ち上げ、共通鍵を共有する処理を説明する。ただし、nは2以上N以下の整数であり、{σ(1),・・・,σ(n)}⊂{1,・・・,N}であるとする。以降、記述を簡単にするために、一般性を失うことなく(σ(1),・・・,σ(n))=(1,・・・,n)と仮定することにする。
図3に例示するように、まず鍵配送管理装置11(図2A)の配送処理部111が、関数暗号方式に則り、端末装置12−iの識別情報Uと有効時間区間(タイムフレーム)TFに属する時間time∈TFに対応する情報を含む情報V(U,time)に対応する秘密鍵uskを生成し、各秘密鍵uskを端末装置12−iに安全に配送する。ただし、i∈[1,n]である。「有効時間区間」は、所定の時間区間であり、所定の契機で更新される。秘密鍵uskは、端末装置12−iの公開鍵で暗号化されてから配送されてもよいし、安全な通信路を通じて配送されてもよいし、可搬型記録媒体に格納されて配送されてもよい。秘密鍵uskは端末装置12−i(図2B)で復号等によって取得され、記憶部129−iに安全に格納される。
「関数暗号方式」とは、「属性情報」と呼ばれる情報と「アクセス構造(または述語情報)」と呼ばれる情報との組み合わせが所定の論理式の真理値を「真」にする関係にある場合に暗号文が復号される方式である。関数暗号方式では、「属性情報」と「アクセス構造(または述語情報)」との一方の情報が秘密鍵に埋め込まれ、他方の情報が暗号文に埋め込まれる。秘密鍵に埋め込まれた「属性情報」または「アクセス構造(または述語情報)」と暗号文に埋め込まれた「アクセス構造(または述語情報)」または「属性情報」が上述の論理式の真理値を「真」にする関係にある場合、当該秘密鍵と暗号文とから復号結果が得られる。「関数暗号方式」は「関数型暗号方式」や「述語暗号方式」と呼ばれることもあり、例えば、参考文献1「T. Okamoto, K. Takashima, "Fully Secure Functional Encryption with General Relations from the Decisional Linear Assumption," Advances in Cryptology - CRYPTO 2010, Lecture Notes in Computer Science, 2010, Volume 6223/2010, 191-208」、参考文献2(J. Katz, A. Sahai, and B. Waters., "Predicate encryption supporting disjunctions, polynomial equations, and inner products," In EUROCRYPT, pp. 146-162, 2008.)、参考文献3(T. Okamoto and K. Takashima., "Hierarchical predicate encryption for inner-products," In ASIACRYPT, pp. 214-231, 2009.)等に具体的な方式が開示されている。ただし、本形態で使用可能な関数暗号方式はこれらの方式に限定されない。「情報V(U,time)」は、識別情報Uと時間time∈timeに対応する情報からなる情報であってもよいし、識別情報Uと時間time∈timeに対応する情報とその他の情報(公開パラメータやセッションID等)とからなる情報であってもよい。本形態では「情報V(U,time)」が「属性情報」である例を示す。「属性情報」や「アクセス構造(または述語情報)」の実装方法に限定はないが、例えば、「属性情報」や「述語情報」はベクトルまたはベクトルの集合として実装でき、「アクセス構造」は行列とその各行に対応するラベルとからなるラベル付き行列と写像(例えば、ベクトルを写す写像)とによって実装できる。例えば、「αがηである」という命題1と「αがηである」という命題2との論理和(α=η)∨(α=η)は(α−η)・(α−η)という多項式で表現できる。論理和(α=η)∨(α=η)が真である場合、(α−η)・(α−η)=0となり、論理和(α=η)∨(α=η)が偽である場合、(α−η)・(α−η)≠0となる。すなわち、論理和(α=η)∨(α=η)が真であることと、(α−η)・(α−η)=0となることとは等価である。また、「αがηである」という命題1と「αがηである」という命題2との論理積(α=η)∧(α=η)はι・(α−η)+ι・(α−η)という多項式で表現できる。ただし、ι及びιは乱数である。論理積(α=η)∧(α=η)が真である場合、ι・(α−η)+ι・(α−η)=0になり、論理積(α=η)∧(α=η)が偽である場合、ι・(x−η)+ι・(α−η)≠0となる。すなわち、論理積(α=η)∧(α=η)が真であることと、ι・(α−η)+ι・(α−η)=0となることとは等価である。このように、論理式は多項式によって表現することができる。また、論理式を表現する多項式は2つのベクトルの内積で表現できる。すなわち、論理式を表現する多項式は、各項の不定元成分と1とを各要素とするベクトルと、各項の係数成分を各要素とするベクトルとの内積に等しい。そのため、ベクトルまたはベクトルの集合を用いて「属性情報」や「述語情報」を実装でき、論理式の真理値が真であることを内積が0であることに置き換えることができる。同様にこのようなベクトル集合に対応する写像とラベル付き行列と用いて「アクセス構造」を実装できる。なお、time∈TFは、例えば、TF={tmin,・・・,tmax}とすれば、(time=tmin)∨・・・∨(time=tmax)のような論理和で表現できる(ステップS101)。
次に、鍵配送管理装置11および端末装置12−1〜12−nが協力して共有情報Cを生成する。この際、各端末装置12−iの端末秘密値xが用いられる。例えば、Gを位数pの乗法巡回群とし、g∈Gを群Gの生成元とし、x∈Zとし、鍵配送管理装置11および端末装置12−1〜12−nが協力してC:=gx1・x2・...・xnを生成する。ただし、「α:=β」はαがβを表すこと(αをβと定義すること)を意味する。上付き添え字の「xi」は「x」を表す。集合X={x,・・・,x}についてgx1・x2・...・xnをgΠXと表記する。Xが空集合の場合にはΠX=1となる。共有情報Cは、鍵配送管理装置11(図2A)の記憶部119に格納され、共有情報Cの生成に用いられた端末秘密値xは各端末装置12−i(図2B)の記憶部129−iに安全に格納される(ステップS102)。
鍵配送管理装置11(図2A)の配送処理部111は、第1シード値Kを生成し、関数暗号方式に則って第1シード値Kを暗号化し、端末装置12−iの識別情報Uと有効時間区間TFに属する時間に対応する情報を含む情報に対応する秘密鍵uskで復号可能な暗号文CT’を生成し、暗号文CT’(ただし、i∈[1,n])と共有情報Cとを出力する。この暗号文CT’は、秘密鍵uskに対応する識別情報Uおよび時間timeが論理式P:=(ID=U)∧(time∈TF)を真にする場合に、当該秘密鍵uskを用いて復号可能となる暗号文である。なお、第1シード値Kは記憶部119に格納される(ステップS103)。
暗号文CT’と共有情報Cは通信部118に送られ、通信部118はこれらを端末装置12−i(ただし、i∈[1,n])に送信する(ステップS104)。暗号文CT’と共有情報Cは、各端末装置12−i(ただし、i∈[1,n])の通信部128−iに入力され、記憶部129−iに格納される。各処理部121−iは、記憶部129−iから秘密鍵uskと暗号文CT’とを読み込み、入力された秘密鍵uskを用い、関数暗号方式に則って、入力された暗号文CT’を復号して第1シード値Kを生成し、第1シード値Kを記憶部129−iに格納する(ステップS105)。
各端末装置12−iの処理部122−iは、記憶部129−iから共有情報Cと端末秘密値xを読み込み、入力された共有情報Cと端末秘密値xの逆元1/xとに応じた秘匿化共有情報SCを生成し、秘匿化共有情報SCを出力する。例えば、処理部122−iは、SC:=C1/xiを生成する(ステップS106)。秘匿化共有情報SCは、通信部128−iに送られ、信部128−iは秘匿化共有情報SCを鍵配送管理装置11に送信する(ステップS107)。
秘匿化共有情報SC(ただし、i∈[1,n])は、鍵配送管理装置11(図2A)の通信部118に入力され、記憶部119に格納される。配送処理部112は、管理秘密値xを生成して記憶部119に格納する(ステップS108)。配送処理部112は、記憶部119から秘匿化共有情報SC(共有情報Cが秘匿化された秘匿化共有情報SC)と管理秘密値xを読み込み、入力された秘匿化共有情報SCと管理秘密値xとに応じた第2シード値の秘匿化情報SK2,iを生成し、第2シード値の秘匿化情報SK2,iを出力する。例えば、x∈Zとし、配送処理部112は、SK2,i:=SC xs=C(1/xi)・xsを生成する。ただし、上付き添え字の「xs」は「x」を表す。第2シード値の秘匿化情報SK2,iは通信部118に送られ、通信部118は第2シード値の秘匿化情報SK2,i(ただし、i∈[1,n])を端末装置12−iに送信する(ステップS109)。
第2シード値の秘匿化情報SK2,i(ただし、i∈[1,n])は、端末装置12−i(図2B)の通信部128−iに入力され、記憶部129−iに格納される。各処理部123−i(ただし、i∈[1,n])は、記憶部129−iから第2シード値の秘匿化情報SK2,iと端末秘密値xとを読み込み、入力された第2シード値の秘匿化情報SK2,iと端末秘密値xとに応じた第2シード値Kを生成して出力する。例えば、処理部123−iは、K:=SK2,i xi=C(1/xi)・xs・xi=Cxsを生成する。第2シード値Kは記憶部129−iに格納される(ステップS109)。
各処理部124−i(ただし、i∈[1,n])は、記憶部129−iから第1シード値Kおよび第2シード値Kを読み込み、第1シード値Kを含む情報と第2シード値Kを含む情報とに対応する共通鍵Kを得て出力する。これにより、端末装置12−1〜12−nで共通鍵Kを共有できる。なお、第1シード値Kを含む情報は、第1シード値Kのみからなる情報であってもよいし、第1シード値Kとその他の情報(公開パラメータやセッションID等)とからなる情報であってもよい。同様に、第2シード値Kを含む情報は、第2シード値Kのみからなる情報であってもよいし、第2シード値Kとその他の情報(公開パラメータやセッションID等)とからなる情報であってもよい。また共通鍵Kは、第1シード値Kを含む情報と第2シード値Kを含む情報とから一義的に決まる。安全性の観点から、共通鍵Kは、第1シード値Kに関する情報および第2シード値Kに関する情報が隠蔽された情報であることが望ましい。言い換えると、共通鍵Kから第1シード値Kに関する情報も第2シード値Kに関する情報も漏洩しないことが望ましい。これにより、攻撃者に共通鍵Kが漏洩した場合であっても、第1シード値Kまたは第2シード値Kの一方を更新し、それらに応じた共通鍵Kに更新するだけで、当該攻撃者からの攻撃を防ぐことができる(ステップS110)。
<端末装置追加処理>
端末装置12−1〜12−nからなるユーザ集合に新たな端末装置12−(n+1)を追加し、共通鍵Kを更新する処理を説明する。一般性を失うことなく、新たな端末装置を端末装置12−(n+1)とすることができる。
図4に例示するように、まず、鍵配送管理装置11(図2A)の配送処理部111が、関数暗号方式に則り、端末装置12−(n+1)の識別情報Un+1と有効時間区間TFに属する時間time∈TFに対応する情報を含む情報V(n+1,time)に対応する秘密鍵uskn+1を生成し、秘密鍵uskn+1を端末装置12−(n+1)に安全に配送する。秘密鍵uskn+1は端末装置12−(n+1)(図2B)の記憶部129−(n+1)に安全に格納される(ステップS111)。
次に配送処理部111は、記憶部119から第1シード値Kを読み込み、関数暗号方式に則って第1シード値Kを暗号化し、端末装置12−(n+1)の識別情報Un+1と有効時間区間TFに属する時間に対応する情報を含む情報に対応する秘密鍵uskn+1で復号可能な暗号文CT’n+1を生成し、記憶部119に格納する。暗号文CT’n+1は、秘密鍵uskn+1に対応する識別情報Un+1および時間timeが論理式Pn+1=(ID=Un+1)∧(time∈TF)を真にする場合に、当該秘密鍵uskn+1を用いて復号可能となる暗号文である(ステップS113)。
配送処理部112は、新たな管理秘密値x’を生成し、記憶部119に格納する。配送処理部112は、記憶部119から共有情報Cと新たな管理秘密値x’とを読み込み、入力された共有情報Cと新たな管理秘密値x’とに応じた新たな共有情報C’を生成し、記憶部119に格納する。例えば、x’∈Zとし、配送処理部112は、C’:=Cx’sを生成する。ただし、上付き添え字の「x’s」は「x’」を表す(ステップS114)。
暗号文CT’n+1、新たな共有情報C’、および秘匿化共有情報SC(ただし、i∈[1,n])が記憶部119から読み出されて通信部118に送られる。通信部118は、これらを端末装置12−(n+1)に送信する(ステップS115)。
暗号文CT’n+1、新たな共有情報C’、および秘匿化共有情報SC(ただし、i∈[1,n])は、端末装置12−(n+1)(図2B)の通信部128−(n+1)に入力され、記憶部129−(n+1)に格納される。処理部121−(n+1)は、記憶部129−(n+1)から暗号文CT’n+1と秘密鍵uskn+1とを読み込み、入力された秘密鍵uskn+1を用い、関数暗号方式に則って、入力された暗号文CT’n+1を復号して第1シード値Kを生成して出力する。第1シード値Kは記憶部129−(n+1)に格納される(ステップS116)。
処理部122−(n+1)は、端末秘密値xn+1を生成して記憶部129−(n+1)に格納する。処理部122−(n+1)は、記憶部129−(n+1)から秘匿化共有情報SC(ただし、i∈[1,n])と端末秘密値xn+1とを読み込み、入力された秘匿化共有情報SCと端末秘密値xn+1とに応じた新たな秘匿化共有情報SC’(ただし、i∈[1,n])を生成して記憶部129−(n+1)に格納する。例えば、xn+1∈Zとし、処理部122−(n+1)は、SC’:=SC xn+1=C(1/xi)・xn+1を生成する。ただし、上付き添え字の「xn+1」は「xn+1」を表す。新たな秘匿化共有情報SC’は記憶部129−(n+1)から読み出されて通信部128−(n+1)に送られ、通信部128−(n+1)は、新たな秘匿化共有情報SC’(ただし、i∈[1,n])を鍵配送管理装置11に送信する(ステップS118)。
処理部123−(n+1)は、記憶部129−(n+1)から新たな共有情報C’と端末秘密値xn+1とを読み込み、入力された新たな共有情報C’と端末秘密値xn+1とに応じた新たな第2シード値K’を生成して出力する。例えば、処理部123−(n+1)は、K’:=C’xn+1=Cx’s・xn+1を生成する。ただし、上付き添え字の「x’s・xn+1」は「x’・xn+1」を表す。新たな第2シード値K’は記憶部129−(n+1)に格納される(ステップS119)。
新たな秘匿化共有情報SC’(ただし、i∈[1,n])は、鍵配送管理装置11(図2A)の通信部118に入力され、記憶部119に格納される。配送処理部112は、記憶部119から新たな秘匿化共有情報SC’と新たな管理秘密値x’とを読み込み、入力された新たな秘匿化共有情報SC’と新たな管理秘密値x’とに応じた新たな第2シード値の秘匿化情報SK’2,i(ただし、i∈[1,n])を生成し、記憶部119に格納する。例えば、配送処理部112は、SK’2,i:=SC’ x’s=C(1/xi)・xn+1・x’sを生成する。新たな第2シード値の秘匿化情報SK’2,iが記憶部119から読み出されて通信部118に送られる。通信部118は、新たな第2シード値の秘匿化情報SK’2,iを端末装置12−i(ただし、i∈[1,n])に送信する(ステップS120)。
新たな第2シード値の秘匿化情報SK’2,iは、端末装置12−i(図2B)の通信部128−iに入力され、記憶部129−iに格納される。処理部123−iは、記憶部129−iから、新たな第2シード値の秘匿化情報SK’2,iと端末秘密値xとを読み込み、入力された新たな第2シード値の秘匿化情報SK’2,iと端末秘密値xとに応じた新たな第2シード値K’を生成して記憶部129−iに格納する。例えば、処理部123−iは、K’:=SK’2,i xi=Cx’s・xn+1を生成する。新たな第2シード値K’は記憶部129−(n+1)に格納される(ステップS121)。
端末装置12−i(ただし、i∈[1,n])の処理部124−iは、記憶部129−iから第1シード値Kおよび新たな第2シード値K’を読み込み、Kを含む情報とK’を含む情報とに対応する共通鍵K’を生成して出力する。同様に、端末装置12−(n+1)の124−(n+1)は、記憶部129−(n+1)から第1シード値Kおよび新たな第2シード値K’を読み込み、K:=K’とし、Kを含む情報とKを含む情報とに対応する共通鍵K’を生成して出力する(ステップS122)。
<有効期間更新処理>
端末装置12−1〜12−nからなるユーザ集合で共通鍵Kを共有した後、有効時間区間を更新する処理を説明する。
図5Aに例示するように、まず鍵配送管理装置11(図2A)の配送処理部111が、関数暗号方式に則り、端末装置12−iの識別情報Uと新たな有効時間区間TF’に属する時間time’∈TF’に対応する情報を含む情報V(i,time’)に対応する秘密鍵usk’を生成し、各秘密鍵usk’を端末装置12−iに安全に配送する。秘密鍵usk’は端末装置12−i(図2B)の記憶部129−iに安全に格納される(ステップS130)。
鍵配送管理装置11(図2A)の配送処理部111は、新たな第1シード値K’を生成し、関数暗号方式に則って新たな第1シード値K’を暗号化し、端末装置12−iの識別情報Uと新たな有効時間区間TF’に属する時間に対応する情報を含む情報に対応する秘密鍵usk’で復号可能な新たな暗号文CT”を生成し、新たな暗号文CT”(ただし、i∈[1,n])を出力する。この暗号文CT”は、秘密鍵usk’に対応する識別情報Uおよび時間time’が論理式P:=(ID=U)∧(time’∈TF’)を真にする場合に、当該秘密鍵usk’を用いて復号可能となる暗号文である(ステップS131)。
暗号文CT”は通信部118に送られ、通信部118はこれらを端末装置12−i(ただし、i∈[1,n])に送信する(ステップS132)。暗号文CT”は、各端末装置12−i(ただし、i∈[1,n])の通信部128−iに入力され、記憶部129−iに格納される。各処理部121−iは、記憶部129−iから秘密鍵usk’と暗号文CT”を読み込み、入力された秘密鍵usk’を用い、関数暗号方式に則って、入力された暗号文CT”を復号して新たな第1シード値K’を生成し、新たな第1シード値K’を記憶部129−iに格納する(ステップS133)。
端末装置12−i(ただし、i∈[1,n])の処理部124−iは、記憶部129−iから新たな第1シード値K’および第2シード値Kを読み込み、K:=K’とし、Kを含む情報とKを含む情報とに対応する共通鍵K”を生成して出力する(ステップS134)。
<端末装置削除処理>
共通鍵Kを共有した端末装置12−1〜12−nからなるユーザ集合から端末装置12−jを削除し、端末装置12−i(ただし、i∈[1,n]\j)で新たな共通鍵を共有する処理を説明する。i∈[1,n]\jは、集合[1,n]からjを除いた補集合を表す。
図5Bに例示するように、まず配送処理部112は、新たな管理秘密値x”を生成して記憶部119に格納する(ステップS135)。配送処理部112は、記憶部119から秘匿化共有情報SC(共有情報Cが秘匿化された秘匿化共有情報SC)と新たな管理秘密値x”とを読み込み、入力された秘匿化共有情報SCと新たな管理秘密値x”とに応じた新たな第2シード値の秘匿化情報SK”2,iを生成し、新たな第2シード値の秘匿化情報SK”2,iを出力する(ただし、i∈[1,n]\j)。例えば、x”∈Zとし、配送処理部112は、SK”2,i:=SC x”s=C(1/xi)・x”sを生成する。新たな第2シード値の秘匿化情報SK”2,iは通信部118に送られ、通信部118は新たな第2シード値の秘匿化情報SK”2,iを端末装置12−i(ただし、i∈[1,n]\j)に送信する(ステップS136)。
新たな第2シード値の秘匿化情報SK”2,iは、端末装置12−i(ただし、i∈[1,n]\j)(図2B)の通信部128−iに入力され、記憶部129−iに格納される。各処理部123−i(ただし、i∈[1,n]\j)は、記憶部129−iから新たな第2シード値の秘匿化情報SK”2,iと端末秘密値xとを読み込み、入力された新たな第2シード値の秘匿化情報SK”2,iと端末秘密値xとに応じた新たな第2シード値K”を生成して出力する。例えば、処理部123−iは、K”:=SK”2,i xi=C(1/xi)・x”s・xi=Cx”sを生成する。第2シード値K”は記憶部129−i(ただし、i∈[1,n]\j)に格納される(ステップS137)。
端末装置12−i(ただし、i∈[1,n]\j)の処理部124−iは、記憶部129−iから第1シード値Kおよび新たな第2シード値K”を読み込み、K:=K”とし、Kを含む情報とKを含む情報とに対応する共通鍵K”’を生成して出力する(ステップS138)。
<本形態の特徴>
本形態の鍵配送処理では、鍵配送管理装置11が、関数暗号方式に則って、端末装置12−iの識別情報Uと有効時間区間TFに属する時間time∈TFに対応する情報を含む情報V(U,time)に対応する秘密鍵uskで復号可能なように第1シード値Kを暗号化し、それによって得られた暗号文CT’を各端末装置12−i(ただし、i∈[1,n])に送信する。各端末装置12−iは、安全に格納しておいた秘密鍵uskを用いて暗号文CT’を復号して第1シード値Kを得る。秘密鍵uskを知らない通信路上の攻撃者は暗号文CT’を復号できないため第1シード値Kを得ることができない。これにより、通信路上の成り済ましによる共通鍵Kの改ざんを防止できる。また、秘密鍵uskは有効時間区間TFに属する時間timeだけではなく、各端末装置12−iの識別情報Uにも対応するため、他の端末装置に成り済ますことも防止できる。他の端末装置の成り済ましの問題がないのであれば、秘密鍵uskが有効時間区間TFに属する時間timeに対応し、識別情報Uに対応しないものであってもよい。
また、秘密鍵uskは有効時間区間TFに属する時間で生成された暗号文CT’のみを復号でき、有効時間区間TF以外の時間で生成された暗号文を復号できない。そのため、端末装置12−iの紛失等によって秘密鍵uskが漏洩した場合であっても、有効時間区間を更新することで秘密鍵を無効化できる。
さらに、本形態では鍵配送管理装置11が端末装置12−i(ただし、i∈[1,n])の間の通信を中継する。各端末装置12−iはユニキャストによって鍵配送管理装置11にデータを送信し、端末装置12−i同士は直接通信を行わない。ブロードキャストのように計算・通信コストが端末装置数に依存する処理は、鍵配送管理装置11のみによって行われる。これにより、端末装置数によらず、各端末装置12−iの計算・通信コストを一定にできる。
本形態の共通鍵Kは、第1シード値Kを含む情報と第2シード値Kを含む情報とに対応する。ここで、第1シード値Kの配信には比較的計算コストが大きな関数暗号方式を利用する必要があるが、第2シード値Kの配信には関数暗号方式を用いる必要がない。そのため、有効時間区間TF内であれば、関数暗号方式を利用することなく共通鍵Kを更新できる。例えば、有効時間区間TF内であれば、関数暗号方式を利用することなく、端末装置追加処理や端末装置削除処理を実行して共通鍵Kを更新できる。これにより、できるだけ小さな計算コストで、端末装置追加処理で新たに追加された端末装置が追加前に共有されていた共有鍵を取得することを防止したり、端末装置削除処理で削除された端末装置が取得できない共通鍵へ更新をしたりすることができる。
なお、秘密鍵を格納するデバイスとして例えば参考文献4(Java Card API and Export File for Card Specification v2.2.1 (org. global platform) v1.6, http://www.safenet-inc.jp/data-encryption/hardware-security-modules-hsms/luna-hsms-key-management/luna-sa-network-hsm/)に開示された装置が利用可能である。
その他、鍵配送管理装置11と端末装置12−h(ただし、h∈[1,N])との通信時に、送信側の装置が一般的な存在的偽造不可能性を満たす電子署名を生成して送信情報に添付し、受信側の装置が電子署名の検証を行い、検証に成功した場合にのみ処理を継続してもよい。これにより、通信路上での改ざんに対する耐性が向上する。存在的偽造不可能性を満たす電子署名は、例えば、参考文献5(Mihir Bellare, Phillip Rogaway: Random Oracles are Practical: A Paradigm for Designing Efficient Protocols. ACM Conference on Computer and Communications Security 1993: 62-73)に開示されている。
[第2実施形態]
次に、本発明の第2実施形態を説明する。なお、第1実施形態と共通する事項については第1実施形態と同じ参照記号を用い、説明を省略する。
<準備>
ある集合Setについて、Setから要素ωをランダムに選ぶことをω∈Setと表記する。あるアルゴリズムALGについて、入力xと乱数r(確定的アルゴリズムの場合は、乱数は空)に対してALGがyを出力することをy←ALG(x;r)またはALG(x;r)→yと表記する。「|Φ|」は値Φのビット長を表す。集合X={x,・・・,x}についてgx1・x2・...・xnをgΠXと表記する。Xが空集合の場合にはΠX=1となる。ただし、Gを位数pの乗法巡回群とし、g∈Gを群Gの生成元とする。
F={Fκ:Domκ×FSκ→Rngκκを、セキュリティパラメータκ上で定められた定義域{Domκκ、鍵空間{FSκκ、値域{Rngκκを持つ関数族とする。この時、もし多項式時間の識別者Dに対して、Fκと真性ランダム関数RFκ:Domκ→Rngκが見分けられなければ、F={Fκκを擬似ランダム関数族と呼ぶ。
公開鍵暗号アルゴリズムを(EGen,Enc,Dec)とする。鍵生成アルゴリズムEGenはκを入力とし、暗号化鍵ekと復号鍵dkを出力する。暗号化アルゴリズムEncは暗号化鍵ekと平文mを入力とし、暗号文CTを出力する。復号アルゴリズムDecは復号鍵dkと暗号文CTを入力とし、平文mを出力する。
電子署名アルゴリズムを(SGen,Sign,Ver)とする。鍵生成アルゴリズムSGenはκを入力とし、検証鍵vkと署名鍵skを出力する。署名生成アルゴリズムSignは署名鍵skと文書Mを入力とし、署名σを出力する。署名検証アルゴリズムVerは検証鍵vk、文書Mと署名σを入力とし、検証結果(検証成功/検証失敗)を出力する。
関数暗号アルゴリズムを(Setup,Der,FEnc,FDec)とする。セットアップアルゴリズムSetupはκを入力とし、マスタ秘密鍵mskと公開パラメータParamsを出力する。鍵導出アルゴリズムDerは公開パラメータParams、マスタ秘密鍵mskと属性情報Vを入力とし、秘密鍵uskを出力する。暗号化アルゴリズムFEncは公開パラメータParams、論理式Pに対応するアクセス構造と平文mを入力とし、暗号文CTを出力する。復号アルゴリズムFDecはユーザ秘密鍵uskと暗号文CTを入力とし、属性情報Vが論理式Pを真にする(論理式Pに対応するアクセス構造が属性情報を受け入れる)ならば平文mを出力する。
関数tPRF:{0,1}κ×FSκ×{0,1}κ×FSκ→Zを「ねじれ擬似ランダム関数(例えば「Atsushi Fujioka, Koutarou Suzuki, Keita Xagawa, Kazuki Yoneyama: Strongly Secure Authenticated Key Exchange from Factoring, Codes, and Lattices. IACR Cryptology ePrint Archive 2012: 211 (2012),http://eprint.iacr.org/2012/211」等参照)と呼び、擬似ランダム関数Fκを用いてtPRF(a,b,a’,b’):=Fκ(a,b)(+)Fκ(a’,b’)と定義する。ただし、a,a’∈{0,1}κであり、b’,b’∈FSκである。{0,1}κはκビット列を表し、「α(+)β」はαとβとの排他的論理和を表す。
<構成>
図1に例示するように、本形態の鍵配送システム2は、端末装置22−1〜22−Nと鍵配送管理装置21とを有する。ただし、Nは3以上の整数である。端末装置22−1〜22−Nと鍵配送管理装置21とはインターネット等の安全ではない通信路を通じて通信可能に構成されている。
図6に例示するように、本形態の鍵配送管理装置21は、制御部210と秘密鍵生成部2101と秘密鍵暗号化部2102と署名生成部2103と署名検証部2104と第1シード値生成部2111(第1,6配送処理部)と第1シード値暗号化部2112(第1,6配送処理部)と管理秘密値生成部2121(第2〜5配送処理部)と第2シード値秘匿化情報生成部2122(第2〜5配送処理部)と通信部218と記憶部219とを有する。
図7に例示するように、本形態の端末装置22−hは、制御部220−hと秘密鍵復号部2201−hと端末秘密値生成部2202−hと公開情報生成部2203−hと署名生成部2204−hと署名検証部2205−hと第1シード値復号部221−h(第1処理部)と秘匿化共有情報生成部222−h(第2,6処理部)と第2シード値生成部223−h(第3,5,7処理部)と共通鍵生成部224−h(第4処理部)と通信部228−hと記憶部229−hとを有する。ただし、h∈[1,N]である。
各装置は、例えば、上述のようなコンピュータが所定のプログラムを実行することで構成される装置であってもよいし、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、各装置は自らが備える制御部210,220−hの制御に基づいて各処理を実行する。各装置の各処理で得られたデータは、逐一、それぞれが備える記憶部219,229−hに格納され、必要に応じて読み出されて使用される。
<システムセットアップ>
鍵配送管理装置21(図6)の制御部210は、関数暗号のセットアップアルゴリズムSetupにより、公開パラメータParamsとマスタ秘密鍵mskを生成する。また制御部210は、公開鍵暗号の鍵生成アルゴリズムEGenにより、暗号化鍵ekと復号鍵dkを生成し、電子署名の鍵生成アルゴリズムSGenにより、検証鍵vkと署名鍵skを生成する。各端末装置22−h(図7)の制御部220−hは、公開鍵暗号の鍵生成アルゴリズムEGenにより、暗号化鍵ekと復号鍵dkを生成し、電子署名の鍵生成アルゴリズムSGenにより、検証鍵vkと署名鍵skを生成する。また制御部220−hは、秘密ストリング(st,st’)をそれぞれst∈FSκ、st’∈{0,1}κとして生成する。また、鍵配送管理装置21の識別情報Sおよび各端末装置22−hの識別情報Uが設定される。
S、U,・・・,U、Paramsは、鍵配送管理装置21の記憶部219および各端末装置22−hの記憶部229−h(ただし、h∈[1,N])に格納される。鍵配送管理装置21の記憶部219には、さらにmsk、sk、ek,・・・,ek、vk,・・・,vkが格納される。各端末装置22−hの記憶部229−hには、さらにdk、sk、st、st’、ek、vkが格納される。
<鍵配送処理>
以下、端末装置22−1〜22−Nからなる集合の部分集合(ユーザ集合)である端末装置22−σ(1)〜22−σ(n)がセッションを立ち上げ、共通鍵を共有する処理を説明する。ただし、nは2以上N以下の整数であり、{σ(1),・・・,σ(n)}⊂{1,・・・,N}であるとする。以降、記述を簡単にするために、一般性を失うことなく(σ(1),・・・,σ(n))=(1,・・・,n)と仮定することにする。セッションには、固有のセッション識別情報sidが付され、sidは鍵配送管理装置21の記憶部219および各端末装置22−iの記憶部229−i(ただし、i∈[1,n])に格納される。セッション識別情報sidは例えば、鍵配送管理装置21によって付される。
≪関数暗号方式に則った秘密鍵の配送≫
そのセッションが有効時間区間(タイムフレーム)TFにおける最初のセッションであった場合、関数暗号方式に則った秘密鍵の配送が行われる。この場合、図8に例示するように、まず鍵配送管理装置21(図6)の秘密鍵生成部2101が、記憶部219からParams、mskを読み込み、関数暗号方式に則り、端末装置22−iの識別情報Uと有効時間区間TFに属する時間time∈TFに対応する情報を含む属性情報V:=V(U,time)に対応する秘密鍵usk:=Der(Params,msk,V)(ただし、i∈[1,n])を生成して出力する。秘密鍵uskは記憶部219に格納される(ステップS2011)。秘密鍵暗号化部2102は、記憶部219から秘密鍵uskおよび暗号化鍵ekを読み込み、暗号化鍵ekを用いて秘密鍵uskを暗号化し、暗号文CT←Enceki(usk)を生成して出力する。ただし、下付き添え字の「eki」は「ek」を表す(ステップS2012)。暗号文CT(ただし、i∈[1,n])は通信部218に送られ、通信部218は暗号文CTを端末装置22−iに送信する。各暗号文CTは端末装置22−i(図7)の通信部228−iに入力され、記憶部229−iに格納される(ステップS2013)。秘密鍵復号部2201−iは、記憶部229−iから復号鍵dkおよび暗号文CTを読み込み、復号鍵dkを用いて暗号文CTを復号して秘密鍵usk←Decdki(CT)を生成して出力する。ただし、下付き添え字の「dki」は「dk」を表す。秘密鍵uskは、端末装置22−iの記憶部229−iに安全に格納される(ステップS2014)。なお、セッションが有効時間区間TFにおける最初のセッションでない場合には、ステップS2011からS2014の処理が省略されてもよい。
≪共有情報の生成≫
次に、鍵配送管理装置21および端末装置22−1〜22−nが協力して共有情報C=gΠ{xi|i∈[1,n]}を生成する。図9に例示するように、まず端末装置22−1(図7)の端末秘密値生成部2202−1は、記憶部229−1からstとst’を読み込み、r{0,1}κとr’FSκを生成し、端末秘密値x←tPRF(r,st,st’,r’)を生成して出力する。端末秘密値xは記憶部229−1に格納される(ステップS2022−1)。
公開情報生成部2203−1は、記憶部229−1から端末秘密値xを読み込んでgx1∈Gを生成する。署名生成部2203−1は、記憶部229−1から署名鍵skおよび識別情報S,U,・・・,Uを読み込み、署名σ←Sigsk1(U,(U,・・・,U),S,g,gx1)を生成する。(U,gx1,σ)は通信部228−1に送られ、通信部228−1は(U,gx1,σ)を鍵配送管理装置21に送信する(ステップS2023−1)。
その後、w∈[1,n−1]について、鍵配送管理装置21と端末装置22−iとの間で次のように通信を行う。ただし、w∈[1,n−1]の範囲では、実行する順序が前後してもかまわない。
端末装置22−iから送信された(U,gΠ{xk|k∈[1,i]},σ)は、鍵配送管理装置21(図6)の通信部218に入力され、記憶部219に格納される。署名検証部2104は、記憶部219から検証鍵vkおよび署名σを読み込み、検証鍵vkを用い、署名σをVervki((U,(U,・・・,U),S,gΠ{xk|k∈[1,i−1]},gΠ{xk|k∈[1,i]}),σ)として検証する。ただし、i=1でのgΠ{xk|k∈[1,i−1]}は公開情報gΠ{xk|k∈[1,0]}:=gであり、i∈[2,n−1]でのgΠ{xk|k∈[1,i−1]}は既に端末装置22−(i−1)から受け取っているものとする(ステップS2024−i)。ここで、署名σが正当でない(検証失敗)と判断された場合、セッションを終了する。一方、署名σが正当である(検証成功)と判断された場合、(U,gΠ{xk|k∈[1,i]})が通信部218に送られ、通信部218は(U,gΠ{xk|k∈[1,i]})を端末装置22−(i+1)に送信する(ステップS2021−(i+1))。(U,gΠ{xk|k∈[1,i]})は、端末装置22−(i+1)(図7)の通信部228−(i+1)に入力され、記憶部229−(i+1)に格納される。端末装置22−(i+1)の端末秘密値生成部2202−(i+1)は、記憶部229−(i+1)からsti+1とst’i+1を読み込み、ri+1{0,1}κとr’i+1FSκを生成し、端末秘密値xi+1←tPRF(ri+1,sti+1,st’i+1,r’i+1)を生成して出力する。端末秘密値xi+1は記憶部229−(i+1)に格納される(ステップS2022−(i+1))。公開情報生成部2203−(i+1)は、記憶部229−(i+1)から端末秘密値xi+1およびgΠ{xk|k∈[1,i]}を読み込み、gΠ{xk|k∈[1,i+1]}:=gΠ{xk|k∈[1,i]}・xi+1∈Gを生成する。gΠ{xk|k∈[1,i+1]}は記憶部229−(i+1)に格納される。署名生成部2204−(i+1)は、記憶部229−(i+1)から署名鍵ski+1および識別情報S,U,・・・,Uを読み込み、署名σi+1←Sigski+1(Ui+1,(U,・・・,U),S,gΠ{xk|k∈[1,i]},gΠ{xk|k∈[1,i+1]})を生成する。ただし、下付き添え字の「ski+1」は「ski+1」を表す。(Ui+1,gΠ{xk|k∈[1,i+1]},σi+1)は通信部228−(i+1)に送られ、通信部228−(i+1)は(Ui+1,gΠ{xk|k∈[1,i+1]},σi+1)を鍵配送管理装置21に送信する(ステップS2023−(i+1))。
上記の処理の結果、最後のステップS2023−nでは、共有情報C=gΠ{xi|i∈[1,n]}=gΠ{xk|k∈[1,n]}を含む(U,gΠ{xk|k∈[1,n]},σ)が鍵配送管理装置21に送信される。(U,gΠ{xk|k∈[1,n]},σ)は、鍵配送管理装置21(図6)の通信部218に入力され、記憶部219に格納される。署名検証部2104は、記憶部219から検証鍵vk、識別情報U,・・・,U,S、および署名σを読み込み、検証鍵vkを用い、署名σをVervki((U,(U,・・・,U),S,gΠ{xk|k∈[1,n−1]},gΠ{xk|k∈[1,n]}),σ)として検証する(ステップS2024−n)。ここで、署名σが正当でないと判断された場合、セッションを終了する。一方、署名σが正当であると判断された場合、シード値の共有処理に移る。
≪シード値の共有処理≫
図10に例示するように、シード値の共有処理では、まず鍵配送管理装置21(図6)の第1シード値生成部2111が第1シード値KFSκを生成し、記憶部219に格納する(ステップS2031)。次に、第1シード値暗号化部2112が記憶部219からParamsおよび第1シード値Kを読み込み、関数暗号方式に則って第1シード値Kを暗号化し、端末装置22−iの識別情報Uと有効時間区間TFに属する時間timeに対応する情報を含む属性情報P:=(ID=U)∧(time∈TF)に対応する秘密鍵で復号可能な暗号文CT’←FEnc(Params,P,K)を生成して記憶部219に格納する(ステップS2032)。署名生成部2103は、記憶部219から署名鍵sk、識別情報S、U,・・・,U、共有情報C=gΠ{xk|k∈[1,n]}、暗号文CT’を読み込み、w∈[1,n−1]について署名σsw←Sigsks(S,(U,・・・,U),S,gΠ{xk|k∈[1,n]},CT’)を生成する。また、nについて署名σsn←Sigsks(S,(U,・・・,U),S,CT’)を生成する。w∈[1,n−1]について(U,gΠ{xk|k∈[1,n]},CT’,σsw)が通信部218に送られ、通信部218は(U,gΠ{xk|k∈[1,n]},CT’,σsw)を端末装置22−wに送信する。(U,gΠ{xk|k∈[1,n]},CT’,σsw)は端末装置22−wの通信部228−wに入力され、記憶部229−wに格納される。nについて(U,CT’,σsn)が通信部218に送られ、通信部218は(U,CT’,σsn)を端末装置22−nに送信する。(U,CT’,σsn)は端末装置22−nの通信部228−nに入力され、記憶部229−nに格納される。なお、記憶部229−nには、前述のステップS2023−nの過程で既にgΠ{xk|k∈[1,n]}が格納されている(ステップS2031)。
端末装置22−w(ただし、w∈[1,n−1])の署名検証部2205−wは、記憶部229−wから検証鍵vk、識別情報S、U,・・・,U、共有情報C=gΠ{xk|k∈[1,n]}、暗号文CT’、および署名σswを読み込み、検証鍵vkを用い、署名σswをVervks((S,(U,・・・,U),S,gΠ{xk|k∈[1,n]},CT’),σsw)として検証する(ステップS2051−w)。ここで、署名σswが正当でないと判断された場合、セッションを終了する。一方、署名σswが正当であると判断された場合、ステップS2052−wの処理に進む。端末装置22−nの署名検証部2205−nは、記憶部から検証鍵vk、識別情報S、U,・・・,U、暗号文CT’を読み込み、検証鍵vkを用い、署名σsiをVervks((S,(U,・・・,U),S,CT’),σsn)として検証する(ステップS2051−n)。ここで、署名σsnが正当でないと判断された場合、セッションを終了する。一方、署名σsnが正当であると判断された場合、ステップS2052−nの処理に進む。
ステップS2052−i(ただし、i∈[1,n])では、端末装置22−i(図7)の第1シード値復号部221−iが、記憶部229−iから秘密鍵uskおよび暗号文CT’を読み込み、秘密鍵uskを用い、関数暗号方式に則って暗号文CT’をK←FDecuski(CT’,P)として復号して第1シード値Kを生成して出力する。第1シード値Kは記憶部229−iに格納される(ステップS2052−i)。
次に、秘匿化共有情報生成部222−i(ただし、i∈[1,n])は、記憶部229−iから共有情報C=gΠ{xk|k∈[1,n]}および端末秘密値xを読み込み、共有情報Cと端末秘密値の逆元1/xとに応じた秘匿化共有情報gΠ{xk|k∈[1,n]∧k≠i}:=gΠ{xk|k∈[1,n]}/xiを生成して出力する。秘匿化共有情報gΠ{xk|k∈[1,n]∧k≠i}は記憶部229−iに格納される(ステップS206−i)。
署名生成部2204−iは、記憶部229−iから、署名鍵sk、識別情報S,U,・・・,U、秘匿化共有情報gΠ{xk|k∈[1,n]∧k≠i}を読み込み、署名σ’←Sigski(U,(U,・・・,U),S,gΠ{xk|k∈[1,n]∧k≠i})を生成する。(U,gΠ{xk|k∈[1,n]∧k≠i},σ’)は通信部228−iに送られ、通信部228−iは(U,gΠ{xk|k∈[1,n]∧k≠i},σ’)を鍵配送管理装置21に送信する(ステップS207−i)。
図11に例示するように、各端末装置22−i(ただし、i∈[1,n])から送信された(U,gΠ{xk|k∈[1,n]∧k≠i},σ’)は、鍵配送管理装置21の通信部218に入力され、記憶部219に格納される。署名検証部2104は、記憶部219から検証鍵vk、識別情報U,・・・,U,S、秘匿化共有情報gΠ{xk|k∈[1,n]∧k≠i}、および署名σ’を読み込み、検証鍵vkを用い、署名σ’をVervki((U,(U,・・・,U),S,gΠ{xk|k∈[1,n]∧k≠i}),σ’)として検証する(ステップS2081)。ここで、何れかの署名σ’が正当でないと判断された場合、セッションを終了する。一方、すべての署名σ’が正当であると判断された場合、管理秘密値生成部2121が管理秘密値xを生成して記憶部219に格納する(ステップS2082)。第2シード値秘匿化共有情報部2122は、記憶部219から秘匿化共有情報gΠ{xk|k∈[1,n]∧k≠i}および管理秘密値xを読み込み、秘匿化共有情報gΠ{xk|k∈[1,n]∧k≠i}と管理秘密値xとに応じた第2シード値の秘匿化情報gΠ{xk|k∈[1,n]∧k≠i}・xs(ただし、i∈[1,n])を生成する。第2シード値の秘匿化情報gΠ{xk|k∈[1,n]∧k≠i}・xsは記憶部219に格納される(ステップS2091)。署名生成部2103は、記憶部219から署名鍵sk、識別情報S、U,・・・,U、および第2シード値の秘匿化情報gΠ{xk|k∈[1,n]∧k≠i}・xsを読み込み、i∈[1,n]について署名σ’si←Sigsks(S,(U,・・・,U),S,gΠ{xk|k∈[1,n]∧k≠i}・xs)を生成する。(U,gΠ{xk|k∈[1,n]∧k≠i}・xs,σ’si)は通信部218に送られ、通信部218は、(U,gΠ{xk|k∈[1,n]∧k≠i}・xs,σ’si)を端末装置22−iに送信する。(U,gΠ{xk|k∈[1,n]∧k≠i}・xs,σ’si)は、端末装置22−i(図7)の通信部228−iに入力され、記憶部229−iに格納される(ステップS2092)。
端末装置22−i(ただし、i∈[1,n])の署名検証部2205−iは、記憶部229−iから検証鍵vk、識別情報S、U,・・・,U、gΠ{xk|k∈[1,n]∧k≠i}・xs、および署名σ’siを読み込み、検証鍵vkを用い、署名σ’siをVervks((S,(U,・・・,U),S,gΠ{xk|k∈[1,n]∧k≠i}・xs),σ’si)として検証する(ステップS2101−i)。ここで、署名σ’siが正当でないと判断された場合、セッションを終了する。一方、署名σ’siが正当であると判断された場合、第2シード値生成部223−iが、記憶部229−iから第2シード値の秘匿化情報gΠ{xk|k∈[1,n]∧k≠i}・xsおよび端末秘密値xを読み込み、第2シード値の秘匿化情報gΠ{xk|k∈[1,n]∧k≠i}・xsと端末秘密値xとに応じた第2シード値K:=gΠ{xk|k∈[1,n]∧k≠i}・xs・xi=gΠ{xk|k∈[1,n]}・xsを生成して出力する。第2シード値Kは記憶部229−iに格納される(ステップS2102−i)。
共通鍵生成部224−i(ただし、i∈[1,n])は、記憶部229−iから、セッション識別情報sid、第1シード値K、および第2シード値Kを読み込み、擬似ランダム関数Fκを用い、第1シード値Kを含む情報と第2シード値Kを含む情報とに対応する共通鍵K=Fκ(sid,K)(+)Fκ(sid,K)を生成して出力する。このように生成された共通鍵Kは、第1シード値Kに関する情報および第2シード値Kに関する情報が隠蔽された情報となる(ステップS211)。
<端末装置追加処理>
端末装置22−1〜22−nにより既に確立されたセッションに、新たな端末装置22−(n+1)を追加し、共通鍵Kを更新する処理を説明する。本形態でも、一般性を失うことなく、新たな端末装置を端末装置22−(n+1)とすることができる。
上述した確立されたセッションでの有効時間区間が終了し、端末装置22−1〜22−nにとって新たな有効時間区間TFでセッションを行うことになる場合、前述した関数暗号方式に則った秘密鍵usk(ただし、i∈[1,n])の配送が行われる(図8:ステップS2011〜S2014)。この処理は既に説明したため、ここでの説明を省略する。
同様に、新たな端末装置22−(n+1)にとって新たな有効時間区間TFでセッションを行うことになる場合、端末装置22−(n+1)に対し、関数暗号方式に則った秘密鍵の配送uskn+1が行われる。この場合、図12に例示するように、まず鍵配送管理装置21(図6)の秘密鍵生成部2101が、記憶部219からParams、mskを読み込み、関数暗号方式に則り、端末装置22−iの識別情報Un+1と有効時間区間TFに属する時間time∈TFに対応する情報を含む属性情報V:=V(Un+1,time)に対応する秘密鍵uskn+1:=Der(Params,msk,Vn+1)を生成して出力する。秘密鍵uskn+1は記憶部219に格納される(ステップS2015)。秘密鍵暗号化部2102は、記憶部219から秘密鍵uskn+1および暗号化鍵ekn+1を読み込み、暗号化鍵ekn+1を用いて秘密鍵uskn+1を暗号化し、暗号文CTn+1←Encekn+1(uskn+1)を生成して出力する。ただし、下付き添え字の「ekn+1」は「ekn+1」を表す(ステップS2016)。暗号文CTn+1は通信部218に送られ、通信部218は暗号文CTn+1を端末装置22−(n+1)に送信する。暗号文CTn+1は端末装置22−(n+1)(図7)の通信部228−(n+1)に入力され、記憶部229−(n+1)に格納される(ステップS2017)。秘密鍵復号部2201−(n+1)は、記憶部229−(n+1)から復号鍵dkn+1および暗号文CTn+1を読み込み、復号鍵dkn+1を用いて暗号文CTn+1を復号して秘密鍵uskn+1←Decdkn+1(CTn+1)を生成して出力する。ただし、下付き添え字の「dki+1」は「dkn+1」を表す。秘密鍵uskn+1は、端末装置22−(n+1)の記憶部229−(n+1)に安全に格納される(ステップS2018)。なお、端末装置22−(n+1)にとって新たな有効時間区間TFでセッションを行うことにならない場合には、ステップS2015からS2017の処理が省略されてもよい。
新たな有効時間区間TFでセッションを行うことになる場合、鍵配送管理装置21(図6)の第1シード値生成部2111が新たな第1シード値K’FSκを生成し、K:=K’として記憶部219に格納し(ステップS2016)、ステップS2133に進む。そうでない場合、ステップS2016を行うことなく、ステップS2133に進む。
ステップS2133では、第1シード値暗号化部2112が記憶部219からParamsおよび第1シード値Kを読み込み、関数暗号方式に則って第1シード値Kを暗号化し、端末装置の識別情報Un+1と有効時間区間TFに属する時間timeに対応する情報を含む属性情報Pn+1:=(ID=Un+1)∧(time∈TF)に対応する秘密鍵で復号可能な暗号文CT’n+1←FEnc(Params,Pn+1,K)を生成して記憶部219に格納する(ステップS2133)。管理秘密値生成部2121が新たな管理秘密値x’を生成して記憶部219に格納する(ステップS2141)。第2シード値秘匿化共有情報部2122は、記憶部219から共有情報gΠ{xk|k∈[1,n]}および新たな管理秘密値x’を読み込み、共有情報gΠ{xk|k∈[1,n]}と新たな管理秘密値x’とに応じた新たな共有情報gΠ{xk|k∈[1,n]}・x’sを生成して出力する。新たな共有情報gΠ{xk|k∈[1,n]}・x’sは記憶部211に格納される(ステップS2142)。署名生成部2103は、記憶部219から、署名鍵sk、識別情報S、U,・・・,Un+1、新たな共有情報gΠ{xk|k∈[1,n]}・x’s、秘匿化共有情報{gΠ{xk|k∈[1,n]∧k≠i}i∈[1,n]、および暗号文CT’n+1を読み込み、署名σsn+1←Sigsks(S,(U,・・・,Un+1),S,gΠ{xk|k∈[1,n]}・x’s,{gΠ{xk|k∈[1,n]∧k≠i}i∈[1,n],CT’n+1)を生成する。(Un+1,gΠ{xk|k∈[1,n]}・x’s,{gΠ{xk|k∈[1,n]∧k≠i}i∈[1,n],CT’n+1,σsn+1)は通信部218に送られ、通信部218は、(Un+1,gΠ{xk|k∈[1,n]}・x’s,{gΠ{xk|k∈[1,n]∧k≠i}i∈[1,n],CT’n+1,σsn+1)を端末装置22−(n+1)に送信する。(Un+1,gΠ{xk|k∈[1,n]}・x’s,{gΠ{xk|k∈[1,n]∧k≠i}i∈[1,n],CT’n+1,σsn+1)は、端末装置22−(n+1)(図7)の通信部228−(n+1)に入力され、記憶部229−(n+1)に格納される(ステップS215)。
端末装置22−(n+1)の署名検証部2205−(n+1)は、記憶部229−(n+1)から検証鍵vk、識別情報S、U,・・・,Un+1、gΠ{xk|k∈[1,n]}・x’s,{gΠ{xk|k∈[1,n]∧k≠i}i∈[1,n]、暗号文CT’n+1、および署名σsn+1を読み込み、検証鍵vkを用い、署名σsn+1をVervks((S,(U,・・・,Un+1),S,gΠ{xk|k∈[1,n]}・x’s,{gΠ{xk|k∈[1,n]∧k≠i}i∈[1,n],CT’n+1),σsn+1)として検証する(ステップS2161)。ここで、署名σsn+1が正当でないと判断された場合、セッションを終了する。一方、署名σsn+1が正当であると判断された場合、端末装置22−i(図7)の第1シード値復号部221−(n+1)が、記憶部229−(n+1)から秘密鍵uskn+1および暗号文CT’n+1を読み込み、秘密鍵uskn+1を用い、関数暗号方式に則って暗号文CT’n+1をK←FDecuskn+1(CT’n+1,Pn+1)として復号して第1シード値Kを生成して出力する。第1シード値Kは記憶部229−(n+1)に格納される(ステップ2162)。
端末秘密値生成部2202−(n+1)は、記憶部229−(n+1)からstn+1とst’n+1を読み込み、rn+1{0,1}κとr’n+1FSκを生成し、端末秘密値xn+1←tPRF(rn+1,stn+1,st’n+1,r’n+1)を生成して出力する。端末秘密値xn+1は記憶部229−(n+1)に格納される(ステップS2171)。秘匿化共有情報生成部222−(n+1)は、記憶部229−(n+1)から秘匿化共有情報{gΠ{xk|k∈[1,n]∧k≠i}i∈[1,n]と端末秘密値xn+1とを読み込み、i∈[1,n]について、秘匿化共有情報gΠ{xk|k∈[1,n]∧k≠i}と端末秘密値xn+1とに応じた新たな秘匿化共有情報gΠ{xk|k∈[1,n+1]∧k≠i}:=gΠ{xk|k∈[1,n]∧k≠i}・xn+1を生成して出力する。新たな秘匿化共有情報{gΠ{xk|k∈[1,n+1]∧k≠i}i∈[1,n]は記憶部22−(n+1)に格納される(ステップS2172)。
署名生成部2204−(n+1)は、記憶部229−(n+1)から、署名鍵skn+1、識別情報S,U,・・・,Un+1、新たな秘匿化共有情報{gΠ{xk|k∈[1,n+1]∧k≠i}i∈[1,n]を読み込み、署名σn+1←Sigskn+1(Un+1,(U,・・・,Un+1),S,{gΠ{xk|k∈[1,n+1]∧k≠i}i∈[1,n])を生成する。(Un+1,{gΠ{xk|k∈[1,n+1]∧k≠i}i∈[1,n],σn+1)は通信部228−(n+1)に送られ、通信部228−(n+1)は(Un+1,{gΠ{xk|k∈[1,n+1]∧k≠i}i∈[1,n],σn+1)を鍵配送管理装置21に送信する(ステップS218)。
第2シード値生成部223−(n+1)は、記憶部229−(n+1)から新たな共有情報gΠ{xk|k∈[1,n]}・x’sおよび端末秘密値xn+1を読み込み、新たな共有情報gΠ{xk|k∈[1,n]}・x’sと端末秘密値xn+1とに応じた新たな第2シード値K’:=gΠ{xk|k∈[1,n]}・x’s・xn+1=gΠ{xk|k∈[1,n+1]}・x’sを生成して出力する。新たな第2シード値K’は記憶部229−(n+1)に格納される(ステップS219)。共通鍵生成部224−(n+1)は、記憶部229−(n+1)から、セッション識別情報sid、第1シード値K、および新たな第2シード値K’を読み込み、擬似ランダム関数Fκを用い、第1シード値Kを含む情報と新たな第2シード値K’を含む情報とに対応する共通鍵K’=Fκ(sid,K)(+)Fκ(sid,K’)を生成して出力する(ステップS222−(n+1))。
図14に例示するように、端末装置22−(n+1)から送信された(Un+1,{gΠ{xk|k∈[1,n+1]∧k≠i}i∈[1,n],σn+1)は、鍵配送管理装置21の通信部218に入力され、記憶部219に格納される。署名検証部2104は、記憶部219から検証鍵vkn+1、識別情報U,・・・,Un+1,S、新たな秘匿化共有情報{gΠ{xk|k∈[1,n+1]∧k≠i}i∈[1,n]、および署名σn+1を読み込み、検証鍵vkn+1を用い、署名σn+1をVervkn+1((Un+1,(U,・・・,Un+1),S,{gΠ{xk|k∈[1,n+1]∧k≠i}i∈[1,n]),σn+1)として検証する(ステップS2201)。ここで、署名σn+1が正当でないと判断された場合、セッションを終了する。一方、署名σn+1が正当であると判断された場合、制御部210がステップS2132で第1シード値Kが更新されたかを判定する。ここで、第1シード値Kが更新されていた場合、第1シード値暗号化部2112が記憶部219からParamsおよび第1シード値Kを読み込み、関数暗号方式に則って第1シード値Kを暗号化し、i∈[1,n]について、端末装置の識別情報Uと有効時間区間TFに属する時間timeに対応する情報を含む属性情報P:=(ID=U)∧(time∈TF)に対応する秘密鍵で復号可能な暗号文CT’←FEnc(Params,P,K)を生成して記憶部219に格納し(ステップS2203)、ステップS2205に進む。一方、第1シード値Kが更新されていない場合、第1シード値暗号化部2112はCT’:={}(空)として記憶部219に格納し(ステップS2204)、ステップS2205に進む。
ステップS2205では、第2シード値秘匿化共有情報部2122は、記憶部219から新たな秘匿化共有情報新たな秘匿化共有情報{gΠ{xk|k∈[1,n+1]∧k≠i}i∈[1,n]および新たな管理秘密値x’を読み込み、i∈[1,n]について、新たな秘匿化共有情報gΠ{xk|k∈[1,n+1]∧k≠i}と新たな管理秘密値x’とに応じた新たな第2シード値の秘匿化情報gΠ{xk|k∈[1,n+1]∧k≠i}・x’sを生成して出力する。新たな第2シード値の秘匿化情報gΠ{xk|k∈[1,n+1]∧k≠i}・x’sは記憶部211に格納される(ステップS2205)。
署名生成部2103は、記憶部219から、署名鍵sk、識別情報S、U,・・・,Un+1、新たな第2シード値の秘匿化情報gΠ{xk|k∈[1,n+1]∧k≠i}・x’s、および暗号文CT’を読み込み、署名σ”si←Sigsks(S,(U,・・・,Un+1),S,gΠ{xk|k∈[1,n+1]∧k≠i}・x’s,CT’)を生成する(ただし、i∈[1,n])。(U,gΠ{xk|k∈[1,n+1]∧k≠i}・x’s,CT’,σ”si)は通信部218に送られ、通信部218は、(U,gΠ{xk|k∈[1,n+1]∧k≠i}・x’s,CT’,σ”si)を端末装置22−iに送信する。(U,gΠ{xk|k∈[1,n+1]∧k≠i}・x’s,CT’,σ”si)は、端末装置22−i(図7)の通信部228−iに入力され、記憶部229−i(ただし、i∈[1,n])に格納される(ステップS2206)。
端末装置22−i(ただし、i∈[1,n])の署名検証部2205−iは、記憶部229−iから検証鍵vk、識別情報S、U,・・・,Un+1、新たな第2シード値の秘匿化情報gΠ{xk|k∈[1,n+1]∧k≠i}・x’s、暗号文CT’、および署名σ”siを読み込み、検証鍵vkを用い、署名σ”siをVervks((S,(U,・・・,Un+1),S,gΠ{xk|k∈[1,n+1]∧k≠i}・x’s,CT’),σ”si)として検証する(ステップS2211−i)。ここで、署名σ”siが正当でないと判断された場合、セッションを終了する。一方、署名σ”siが正当であると判断された場合、制御部220−iは記憶部229−iから暗号文CT’を読み込み、CT’={}であるかを判定する(ステップS2212−i)。ここで、CT’={}でなければ、第1シード値復号部221−iが、記憶部229−iから秘密鍵uskおよび暗号文CT’を読み込み、秘密鍵uskを用い、関数暗号方式に則って暗号文CT’をK←FDecuski(CT’,P)として復号して第1シード値Kを生成して出力する。第1シード値Kは記憶部229−iに格納され(ステップS2213−i)、ステップS2214−iに進む。一方、CT’={}であればステップS2213−iを実行することなく、ステップS2214−iに進む。
ステップS2214−i(ただし、i∈[1,n])では、第2シード値生成部223−iが、記憶部229−iから新たな第2シード値の秘匿化情報gΠ{xk|k∈[1,n+1]∧k≠i}・x’sおよび端末秘密値xを読み込み、新たな第2シード値の秘匿化情報gΠ{xk|k∈[1,n+1]∧k≠i}・x’sと端末秘密値xとに応じた新たな第2シード値K’:=gΠ{xk|k∈[1,n+1]∧k≠i}・x’s・xi=gΠ{xk|k∈[1,n+1]}・x’sを生成して出力する。新たな第2シード値K’は記憶部229−iに格納される(ステップS2214−i)。
共通鍵生成部224−i(ただし、i∈[1,n])は、記憶部229−iから、セッション識別情報sid、第1シード値K、および新たな第2シード値K’を読み込み、擬似ランダム関数Fκを用い、第1シード値Kを含む情報と新たな第2シード値K’を含む情報とに対応する共通鍵K=Fκ(sid,K)(+)Fκ(sid,K’)を生成して出力する(ステップS222−i)。
<端末装置削除処理>
既にセッションが確立された端末装置22−1〜22−nから任意の端末装置22−jを除き、端末装置22−i(ただし、i∈[1,n]\j)で新たな共通鍵を共有する処理を説明する
図15に例示するように、管理秘密値生成部2121が新たな管理秘密値x”を生成して記憶部219に格納する(ステップS235)。第2シード値秘匿化情報生成部2122は、記憶部219から秘匿化共有情報gΠ{xk|k∈[1,n]∧k≠i}および新たな管理秘密値x”を読み込み、秘匿化共有情報gΠ{xk|k∈[1,n]∧k≠i}と新たな管理秘密値x”とに応じた新たな第2シード値の秘匿化情報gΠ{xk|k∈[1,n]∧k≠i}・x”s(ただし、i∈[1,n]\j)を生成して出力する。新たな第2シード値の秘匿化情報gΠ{xk|k∈[1,n]∧k≠i}・x”sは記憶部211に格納される(ステップS2361)。
署名生成部2103は、記憶部219から、署名鍵sk、識別情報S、U,・・・,Uj−1,Uj+1,・・・,U、新たな第2シード値の秘匿化情報gΠ{xk|k∈[1,n]∧k≠i}・x”sを読み込み、署名σ’”si←Sigsks(S,(U,・・・,Uj−1,Uj+1,・・・,U),S,gΠ{xk|k∈[1,n]∧k≠i}・x”s)(ただし、i∈[1,n]\j)を生成する。(U,gΠ{xk|k∈[1,n]∧k≠i}・x”s,σ’”si)は通信部218に送られ、通信部218は、((U,gΠ{xk|k∈[1,n]∧k≠i}・x”s,σ’”si)を端末装置22−i(ただし、i∈[1,n]\j)に送信する。(U,gΠ{xk|k∈[1,n]∧k≠i}・x”s,σ’”si)は、端末装置22−i(ただし、i∈[1,n]\j)の通信部228−iに入力され、記憶部229−iに格納される(ステップS2362)。
端末装置22−i(ただし、i∈[1,n]\j)の署名検証部2205−iは、記憶部229−iから検証鍵vk、識別情報S、U,・・・,Uj−1,Uj+1,・・・,U、新たな第2シード値の秘匿化情報gΠ{xk|k∈[1,n]∧k≠i}・x”s、および署名σ’”siを読み込み、検証鍵vkを用い、署名σ’”siをVervks((S,(U,・・・,Uj−1,Uj+1,・・・,U),S,gΠ{xk|k∈[1,n]∧k≠i}・x”s),σ’”si)として検証する(ステップS2371−i)。ここで、署名σ’”siが正当でないと判断された場合、セッションを終了する。一方、σ’”siが正当であると判断された場合、第2シード値生成部223−iが、記憶部229−iから新たな第2シード値の秘匿化情報gΠ{xk|k∈[1,n]∧k≠i}・x”sおよび端末秘密値xを読み込み、新たな第2シード値の秘匿化情報gΠ{xk|k∈[1,n]∧k≠i}・x”sと端末秘密値xとに応じた新たな第2シード値K”:=gΠ{xk|k∈[1,n]∧k≠i}・x”s・xi=gΠ{xk|k∈[1,n]}・x”sを生成して出力する。新たな第2シード値K”は記憶部229−iに格納される(ステップS2372−i)。共通鍵生成部224−iは、記憶部229−iから、セッション識別情報sid、第1シード値K、および新たな第2シード値K”を読み込み、擬似ランダム関数Fκを用い、第1シード値Kを含む情報と新たな第2シード値K”を含む情報とに対応する共通鍵K”=Fκ(sid,K)(+)Fκ(sid,K”)を生成して出力する(ステップS238)。
[関数暗号方式の一例]
以下に関数暗号方式の一例を示す。本発明はこの方式に限定されない。また、[関数暗号方式の一例]の説明で使用する記号は上述で使用した記号と独立したものである。
<記号の定義>
(・)T:(・)Tは・の転置行列を表す。
(・)-1:(・)-1は・の逆行列を表す。
∧:∧は論理積(AND)を表す論理記号である。
∨:∨は論理和(OR)を表す論理記号である。
¬:¬は否定(NOT)を表す論理記号である。
命題変数:命題変数は命題の「真」,「偽」("false","true")を要素とする集合{真,偽}上の変数である。すなわち、命題変数の定義域は「真」,「偽」を要素とする集合である。命題変数及び命題変数の否定を総称してリテラル(literal)と呼ぶ。
Z:Zは整数集合を表す。
sec:secはセキュリティパラメータ(sec∈Z, sec>0)を表す。
0*:0*は*個の0からなる列を表す。
1*:1*は*個の1からなる列を表す。
Fq:Fqは位数qの有限体を表す。位数qは1以上の整数であり、例えば、素数や素数のべき乗値を位数qとする。
0F:0Fは有限体Fqの加法単位元を表す。
1F:1Fは有限体Fqの乗法単位元を表す。
δ(i,j):δ(i,j)はクロネッカーのデルタ関数を表す。i=jの場合にδ(i,j)=1Fを満たし、i≠jの場合にδ(i,j)=0Fを満たす。
E:Eは有限体Fq上で定義された楕円曲線を表す。
G1, G2,GT:G1, G2, GTは位数qの巡回群を表す。本形態では、巡回群G1, G2上で定義された演算を加法的に表現し、巡回群GT上で定義された演算を乗法的に表現する。
Ψ:Ψは1以上の整数を表す。
ψ:ψは0以上Ψ以下の整数ψ=0,...,Ψを表す。
λ:λは1以上Ψ以下の整数λ=1,...,Ψを表す。
n(ψ):n(ψ)は1以上の整数を表す。
ζ(ψ):ζ(ψ)は0以上の整数を表す。
G1 n(ψ)+ζ(ψ):G1 n(ψ)+ζ(ψ)はn(ψ)+ζ(ψ)個の巡回群G1の直積を表す。
G2 n(ψ)+ζ(ψ):G2 n(ψ)+ζ(ψ)はn(ψ)+ζ(ψ)個の巡回群G2の直積を表す。
g1, g2,gT:g1, g2, gTは巡回群G, G1, G2, GTの生成元を表す。
V(ψ):V(ψ)はn(ψ)+ζ(ψ)個の巡回群G1の直積からなるn(ψ)+ζ(ψ)次元のベクトル空間を表す。
V*(ψ):V*(ψ)はn(ψ)+ζ(ψ)個の巡回群G2の直積からなるn(ψ)+ζ(ψ)次元のベクトル空間を表す。
Σν=ν1 ν2 κ(ν):Σν=ν1 ν2κ(ν)は以下を意味する。
Figure 0006259402

Πν=ν1 ν2 κ(ν):Πν=ν1 ν2κ(ν)は以下を意味する。
Figure 0006259402
eψ:eψは直積G1 n(ψ)+ζ(ψ)と直積G2 n(ψ)+ζ(ψ)との直積G1 n(ψ)+ζ(ψ)×G2 n(ψ)+ζ(ψ)を巡回群GTに写す非退化な双線形写像(bilinear map)を表す。双線形写像eψは、巡回群G1のn(ψ)+ζ(ψ)個の元γβ(β=1,...,n(ψ)+ζ(ψ))と巡回群G2のn(ψ)+ζ(ψ)個の元γβ *(β=1,...,n(ψ)+ζ(ψ))とを入力とし、巡回群GTの1個の元を出力する。
eψ:G1 n(ψ)+ζ(ψ)×G2 n(ψ)+ζ(ψ)→GT …(1)
双線形写像eψは以下の性質を満たす。
[双線形性]双線形写像eψは、すべてのΓ1∈G1 n(ψ)+ζ(ψ),Γ2∈G2 n(ψ)+ζ(ψ)及びν,κ∈Fqについて以下の関係を満たす。
eψ(ν・Γ1,κ・Γ2)=eψ12)ν・κ …(2)
[非退化性]双線形写像eψは、すべてのΓ1∈G1 n(ψ)+ζ(ψ),Γ2∈G2 n(ψ)+ζ(ψ)を巡回群GTの単位元に写す写像ではない。
[計算可能性]あらゆる
Γ1∈G1 n(ψ)+ζ(ψ),Γ2∈G2 n(ψ)+ζ(ψ) …(3)
についてeψ12)を効率的に計算するアルゴリズムが存在する。
本形態では、以下のような、巡回群G1と巡回群G2との直積G1×G2を巡回群GTに写す非退化な双線形写像を用いて双線形写像eψを構成する。
Pair:G1×G2→GT …(4)
本形態の双線形写像eψは、巡回群G1のn(ψ)+ζ(ψ)個の元γβ (β=1,...,n(ψ)+ζ(ψ))からなるn(ψ)+ζ(ψ)次元ベクトル(γ1,...,γn(ψ)+ζ(ψ))と、巡回群G2のn(ψ)+ζ(ψ)個の元γβ *(β=1,...,n(ψ)+ζ(ψ))からなるn(ψ)+ζ(ψ)次元ベクトル(γ1 *,...,γn(ψ)+ζ(ψ) *)との入力に対し、巡回群GTの1個の元を出力する。
eψ:Πβ=1 n(ψ)+ζ(ψ)Pair(γβ, γβ *) …(5)
双線形写像Pairは、巡回群G1の1個の元と巡回群G2の1個の元との組を入力とし、巡回群GTの1個の元を出力する。双線形写像Pairは、以下の性質を満たす。
[双線形性]双線形写像Pairは、すべてのΩ1∈G1,Ω2∈G2及びν,κ∈Fqについて以下の関係を満たす。
Pair(ν・Ω1,κ・Ω2)=Pair(Ω12)ν・κ …(6)
[非退化性]双線形写像Pairは、すべての
Ω1∈G1,Ω2∈G2 …(7)
を巡回群GTの単位元に写す写像ではない。
[計算可能性]あらゆるΩ1∈G1,Ω2∈G2についてPair(Ω12)を効率的に計算するアルゴリズムが存在する。
ai(ψ)(i=1,...,n(ψ)+ζ(ψ)):ai(ψ)は巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルを表す。基底ベクトルai(ψ)の一例は、κ1・g1∈G1をi次元目の要素とし、残りのn(ψ)+ζ(ψ)-1個の要素を巡回群G1の単位元(加法的に「0」と表現)とするn(ψ)+ζ(ψ)次元の基底ベクトルである。この場合、n(ψ)+ζ(ψ)次元の基底ベクトルai(ψ)(i=1,...,n(ψ)+ζ(ψ))の各要素をそれぞれ列挙して表現すると、以下のようになる。
a1(ψ)=(κ1・g1,0,0,...,0)
a2(ψ)=(0,κ1・g1,0,...,0) …(8)
...
an(ψ)+ζ(ψ)(ψ)=(0,0,0,...,κ1・g1)
ここで、κ1は加法単位元0F以外の有限体Fqの元からなる定数であり、κ1∈Fqの具体例はκ1=1Fである。基底ベクトルai(ψ)は直交基底であり、巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするすべてのn(ψ)+ζ(ψ)次元ベクトルは、n(ψ)+ζ(ψ)次元の基底ベクトルai(ψ)(i=1,...,n(ψ)+ζ(ψ))の線形和によって表される。すなわち、n(ψ)+ζ(ψ)次元の基底ベクトルai(ψ)は前述のベクトル空間V(ψ)を張る。
ai *(ψ)(i=1,...,n(ψ)+ζ(ψ)):ai *(ψ)は巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルを表す。基底ベクトルai *(ψ)の一例は、κ2・g2∈G2をi次元目の要素とし、残りのn(ψ)+ζ(ψ)-1個の要素を巡回群G2の単位元(加法的に「0」と表現)とするn(ψ)+ζ(ψ)次元の基底ベクトルである。この場合、基底ベクトルai *(ψ)(i=1,...,n(ψ)+ζ(ψ))の各要素をそれぞれ列挙して表現すると、以下のようになる。
a1 *(ψ)=(κ2・g2,0,0,...,0)
a2 *(ψ)=(0,κ2・g2,0,...,0) …(9)
...
an(ψ)+ζ(ψ) *(ψ)=(0,0,0,...,κ2・g2)
ここで、κ2は加法単位元0F以外の有限体Fqの元からなる定数であり、κ2∈Fqの具体例はκ2=1Fである。基底ベクトルai *(ψ)は直交基底であり、巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするすべてのn(ψ)+ζ(ψ)次元ベクトルは、n(ψ)+ζ(ψ)次元の基底ベクトルai *(ψ)(i=1,...,n(ψ)+ζ(ψ))の線形和によって表される。すなわち、n(ψ)+ζ(ψ)次元の基底ベクトルai *(ψ)は前述のベクトル空間V*(ψ)を張る。
なお、基底ベクトルai(ψ)と基底ベクトルai *(ψ)とは、0Fを除く有限体Fqの元τ=κ1・κ2について以下の関係を満たす。
eψ(ai(ψ), aj *(ψ))=gT τ・δ(i,j) …(10)
すなわち、i=jの場合には、式(5)(6)の関係から、以下の関係が満たされる。
eψ(ai(ψ), aj *(ψ))=Pair(g1, g2)κ1・κ2=gT τ
上付き添え字κ1,κ2はそれぞれκ1,κ2を表す。一方、i≠jの場合には、eψ(ai(ψ), aj *(ψ))=Πi=1 n(ψ)+ζ(ψ) Pair(ai(ψ), aj *(ψ))の右辺は、Pair(κ1・g12・g2)を含まず、Pair(κ1・g1,0)と Pair(0,κ2・g2)とPair(0,0)との積になる。さらに、式(6)の関係からPair(g1, 0)=Pair(0, g2)=Pair(g1, g2)0を満たす。そのため、i≠jの場合には、以下の関係が満たされる。
eψ(ai(ψ), aj *(ψ))=eψ(g1, g2)0=gT 0
特に、τ=κ1・κ2=1Fである場合(例えば、κ12=1Fの場合)、以下の関係が満たされる。
e(ai(ψ), aj *(ψ))=gT δ(i,j) …(11)
gT 0=1は巡回群GTの単位元であり、gT 1=gTは巡回群GTの生成元である。
A(ψ):A(ψ)は、基底ベクトルai(ψ)(i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列を表す。例えば、基底ベクトルai(ψ)(i=1,...,n(ψ)+ζ(ψ))が式(8)によって表現される場合、行列A(ψ)は以下のようになる。
Figure 0006259402
A*(ψ):A*(ψ)は、基底ベクトルai *(ψ)(i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列を表す。例えば、基底ベクトルai *(ψ)(i=1,...,n(ψ)+ζ(ψ))が式(9)によって表現される場合、行列A*(ψ)は以下のようになる。
Figure 0006259402
X(ψ):X(ψ)は有限体Fqの元を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列を表す。行列X(ψ)は基底ベクトルai(ψ)の座標変換に用いられる。行列X(ψ)のi行j列(i=1,...,n(ψ)+ζ(ψ),j=1,...,n(ψ)+ζ(ψ))の要素をχi,j(ψ)∈Fqとすると、行列X(ψ)は以下のようになる。
Figure 0006259402
なお、行列X(ψ)の各要素χi,j(ψ)を変換係数と呼ぶ。
X*(ψ):X*(ψ)はX*(ψ)=τ'・(X(ψ)-1)Tの関係を満たす行列である。ただし、τ'∈Fqは有限体Fqに属する任意の定数であり、例えば、τ'=1Fである。X*(ψ)は基底ベクトルai *(ψ)の座標変換に用いられる。行列X*(ψ)のi行j列の要素をχi,j *(ψ)∈Fqとすると、行列X*(ψ)は以下のようになる。
Figure 0006259402

なお、行列X*(ψ)の各要素χi,j *(ψ)を変換係数と呼ぶ。
この場合、n(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の単位行列をI(ψ)とするとX(ψ)・(X*(ψ))T=τ'・I(ψ)を満たす。すなわち、単位行列を以下のように定義する。
Figure 0006259402

これについて以下が満たされる。
Figure 0006259402
ここで、n(ψ)+ζ(ψ)次元ベクトルを以下のように定義する。
χi (ψ)=(χi,1(ψ),...,χi,n(ψ)+ζ(ψ)(ψ)) …(18)
χj →*(ψ)=(χj,1 *(ψ),...,χj,n(ψ)+ζ(ψ) *(ψ)) …(19)
すると、式(17)の関係から、n(ψ)+ζ(ψ)次元ベクトルχi (ψ)とχj →*(ψ)との内積は、以下のようになる。
χi (ψ)・χj →*(ψ)=τ'・δ(i,j) …(20)
bi(ψ):bi(ψ)は巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルを表す。bi(ψ)は行列X(ψ)を用いて基底ベクトルai(ψ) (i=1,...,n(ψ)+ζ(ψ))を座標変換することで得られる。具体的には、基底ベクトルbi(ψ)は、以下の演算によって得られる。
bi(ψ)=Σj=1 n(ψ)+ζ(ψ)χi,j(ψ)・aj(ψ) …(21)
例えば、基底ベクトルaj(ψ)(j=1,...,n(ψ)+ζ(ψ))が式(8)によって表現される場合、基底ベクトルbi(ψ)の各要素をそれぞれ列挙して表現すると、以下のようになる。
bi(ψ)=(χi,1(ψ)・κ1・g1i,2(ψ)・κ1・g1,
...,χi,n(ψ)+ζ(ψ)(ψ)・κ1・g1) …(22)
巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするすべてのn(ψ)+ζ(ψ)次元ベクトルは、n(ψ)+ζ(ψ)次元の基底ベクトルbi(ψ)(i=1,...,n(ψ)+ζ(ψ))の線形和によって表される。すなわち、n(ψ)+ζ(ψ)次元の基底ベクトルbi(ψ)は前述のベクトル空間V(ψ)を張る。
bi *(ψ):bi *(ψ)は巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルを表す。bi *(ψ)は行列X*(ψ)を用いて基底ベクトルai *(ψ)(i=1,...,n(ψ)+ζ(ψ))を座標変換することで得られる。具体的には、基底ベクトルbi *(ψ)は、以下の演算によって得られる。
bi *(ψ)=Σj=1 n(ψ)+ζ(ψ)χi,j *(ψ)・aj *(ψ) …(23)
例えば、基底ベクトルaj *(ψ) (j=1,...,n(ψ)+ζ(ψ))が式(9)によって表現される場合、基底ベクトルbi *(ψ)の各要素をそれぞれ列挙して表現すると、以下のようになる。
bi *(ψ)=(χi,1 *(ψ)・κ2・g2i,2 *(ψ)・κ2・g2,
...,χi,n(ψ)+ζ(ψ) *(ψ)・κ2・g2) …(24)
巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするすべてのn(ψ)+ζ(ψ)次元ベクトルは、n(ψ)+ζ(ψ)次元の基底ベクトルbi *(ψ)(i=1,...,n(ψ)+ζ(ψ))の線形和によって表される。すなわち、n(ψ)+ζ(ψ)次元の基底ベクトルbi *(ψ)は前述のベクトル空間V*(ψ)を張る。
なお、基底ベクトルbi(ψ)と基底ベクトルbi *(ψ)とは、0Fを除く有限体Fqの元τ=κ1・κ2について以下の関係を満たす。
eψ(bi(ψ), bj *(ψ))=gT τ・τ'・δ(i,j) …(25)
すなわち、式(5)(20)(22)(24)の関係から、以下の関係が満たされる。
Figure 0006259402

特にτ=κ1・κ2=1F(例えば、κ12=1F)及びτ'=1Fである場合、以下の関係が満たされる。
eψ(bi(ψ), bj *(ψ))=gT δ(i,j) …(26)
基底ベクトルbi(ψ)と基底ベクトルbi *(ψ)とは、双対ペアリングベクトル空間(ベクトル空間V(ψ)とベクトル空間V*(ψ))の双対正規直交基底である。
なお、式(25)の関係を満たすのであれば、式(8)(9)で例示したもの以外の基底ベクトルai(ψ)及びai *(ψ)や、式(21)(23)で例示したもの以外の基底ベクトルbi(ψ)及びbi *(ψ)を用いてもよい。
B(ψ):B(ψ)は基底ベクトルbi(ψ) (i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列である。B(ψ)=X(ψ)・A(ψ)を満たす。例えば、基底ベクトルbi(ψ)が式(22)によって表現される場合、行列B(ψ)は以下のように表される。
Figure 0006259402
B*(ψ):B*(ψ)は基底ベクトルbi *(ψ) (i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列を表す。B*(ψ)=X*(ψ)・A*(ψ)を満たす。例えば、基底ベクトルbi *(ψ) (i=1,...,n(ψ)+ζ(ψ))が式(24)によって表現される場合、行列B*(ψ)は以下のように表される。
Figure 0006259402
v(λ):v(λ)は有限体Fqの元を要素とするn(λ)次元ベクトルを表す。
v(λ)=(v1(λ),...,vn(λ)(λ))∈Fq n(λ) …(29)
vμ(λ):vμ(λ)はn(λ)次元ベクトルv(λ)のμ(μ=1,...,n(λ))番目の要素を表す。
w(λ):w(λ)は有限体Fqの元を要素とするn(λ)次元ベクトルを表す。
w(λ)=(w1(λ),...,wn(λ)(λ))∈Fq n(λ) …(30)
wμ(λ):wμ(λ)はn(λ)次元ベクトルw(λ)のμ(μ=1,...,n(λ))番目の要素を表す。
Enc:Encは共通鍵暗号方式の暗号化処理を示す共通鍵暗号関数を表す。
EncK(M):EncK(M)は、共通鍵Kを用い、共通鍵暗号関数Encに従って平文Mを暗号化して得られた暗号文を表す。
Dec:Decは、共通鍵暗号方式の復号処理を示す共通鍵復号関数を表す。
DecK(C):DecK(C)は、共通鍵Kを用い、共通鍵復号関数Decに従って暗号文Cを復号して得られた復号結果を表す。
<関数暗号方式の基本的な構成>
次に、関数暗号方式の基本的な構成について例示する。ここで例示する関数暗号方式では秘密情報に応じた値が所定の論理式に応じた態様で階層的に秘密分散される。所定の論理式は、第1情報と第2情報との組み合わせによって真理値が定まる命題変数を含み、必要に応じてさらに論理記号∧,∨,¬の何れか又はすべてを含む。各命題変数の真理値が特定されることで定まる当該所定の論理式の真理値が「真」となる場合に秘密情報に応じた値が復元され、それに基づいて暗号文が復号される。
<論理式と階層的な秘密分散との関係>
上述した所定の論理式と階層的な秘密分散との関係を説明する。
秘密分散とは、しきい値Kt(Kt≧1)個以上のシェア情報が得られた場合にのみ秘密情報が復元されるように、秘密情報をN(N≧2)個のシェア情報に分散することである。Kt=Nを満たす秘密分散の方式(SSS: Secret Sharing Scheme)をN-out-of-N分散方式(或いは「N-out-of-Nしきい値分散方式」)といい、Kt<Nを満たす秘密分散の方式をKt-out-of-N分散方式(或いは「Kt-out-of-Nしきい値分散方式」)という。
N-out-of-N分散方式では、すべてのシェア情報share(1),...,share(N)が与えられれば秘密情報SEを復元できるが、任意のN-1個のシェア情報share(φ1),...,share(φN-1)が与えられても秘密情報SEの情報はまったく得られない。以下に、N-out-of-N分散方式の一例を示す。
・SH1,...,SHN-1をランダムに選択する。
・SHN=SE-(SH1+...+SHN-1)の計算を行う。
・SH1,...,SHNを各シェア情報share(1),...,share(N)とする。
・すべてのシェア情報share(1),...,share(N)が与えられれば、以下の復元処理によって秘密情報SEの復元が可能である。
SE=share(1)+...+share(N) …(31)
Kt-out-of-N分散方式では、任意の相違なるKt個のシェア情報share(φ1),...,share(φKt)が与えられれば秘密情報SEを復元できるが、任意のKt-1個のシェア情報share(φ1),...,share(φKt-1)が与えられても秘密情報SEの情報はまったく得られない。添え字のKtはKtを表す。以下にKt-out-of-N分散方式の一例を示す。
・f(0)=SEを満たすKt-1次の多項式f(x)=ξ01・x+ξ2・x2+...+ξKt-1・xKt-1をランダムに選ぶ。すなわち、ξ0=SEとし、ξ1,..., ξKt-1をランダムに選ぶ。シェア情報をshare(ρ)=(ρ, f(ρ))(ρ=1,...,N)とする。(ρ, f(ρ))からのρ及びf(ρ)の抽出が可能であり、(ρ, f(ρ))の例はρとf(ρ)とのビット結合値である。
・任意の相違なるKt個のシェア情報share(φ1),...,share(φKt)((φ1,...,φKt)⊂(1,...,N))が得られた場合、例えば、ラグランジェ(Lagrange)の補間公式を用い、以下のような復元処理によって秘密情報SEの復元が可能である。
SE=f(0)=LA1・f(φ1)+...+ LAKt・f(φKt) …(32)
Figure 0006259402

は先頭からρ番目の被演算子〔分母の要素(φρρ)、分子の要素(x-φρ)〕が存在しないことを意味する。すなわち、式(33)の分母は、以下のように表される。
ρ1)・...・(φρρ-1)・(φρρ+1)・...・(φρKt)
式(33)の分子は、以下のように表される。
(x-φ1)・...・(x-φρ-1)・(x-φρ+1)・...・(x-φKt)
上述した各秘密分散を拡張し、秘密情報SEに応じた値をシェア情報shareに応じた値に秘密分散することもできる。秘密情報SEに応じた値とは秘密情報SEそのものや秘密情報SEの関数値であり、シェア情報shareに応じた値とはシェア情報shareそのものやシェア情報の関数値である。例えば、有限体Fqの元である秘密情報SE∈Fqに応じた巡回群GTの元gT SE∈GTを秘密情報SEの各シェア情報share(1),share(2)に応じた巡回群GTの元gT share(1),gT share(2)∈GTに秘密分散することもできる。上述した秘密情報SEはシェア情報shareの線形結合となる(式(31)(32))。秘密情報SEがシェア情報shareの線形結合となる秘密分散方式を線形秘密分散方式と呼ぶ。
上述した所定の論理式は、秘密情報を階層的に秘密分散して得られる木構造データによって表現できる。すなわち、ド・モルガンの法則により、上述した所定の論理式はリテラルからなる論理式、又は、論理記号∧,∨の少なくとも一部とリテラルとからなる論理式(これらを「標準形論理式」と呼ぶことにする)によって表現でき、この標準形論理式は秘密情報を階層的に秘密分散して得られる木構造データによって表現できる。
標準形論理式を表現する木構造データは複数のノードを含み、少なくとも一部のノードは1個以上の子ノードの親ノードとされ、親ノードの1つはルートノードとされ、子ノードの少なくとも一部は葉ノードとされる。ルートノードの親ノードや、葉ノードの子ノードは存在しない。ルートノードには秘密情報に応じた値が対応し、各親ノードの子ノードには当該親ノードに対応する値を秘密分散したシェア情報に応じた値が対応する。各ノードでの秘密分散形態(秘密分散方式やしきい値)は標準形論理式に応じて定まる。また、各葉ノードには標準形論理式を構成する各リテラルが対応し、当該各リテラルの真理値は第1情報と第2情報との組み合わせによって定まる。
ここで、真理値が真となったリテラルに対応する葉ノードに対応するシェア情報に応じた値は得られるが、真理値が偽となったリテラルに対応する葉ノードに対応するシェア情報に応じた値は得られないものとする。また、上述した秘密分散の性質により、親ノードに対応するシェア情報に応じた値(その親ノードがルートノードであれば秘密情報に応じた値)は、その子ノードに対応するシェア情報に応じた値が当該親ノードに対応するしきい値以上の個数だけ得られた場合にのみ復元される。そのため、どの葉ノードに対応するリテラルの真理値が真になったのかと木構造データの構成(各ノードでの秘密分散の形態を含む)とに応じ、最終的にルートノードに対応する秘密情報に応じた値が復元できるか否かが定まる。そして、各葉ノードに対応する各リテラルの真理値が標準形論理式の真理値を真にする場合にのみ最終的にルートノードに対応する秘密情報に応じた値が復元できるように木構造データが構成されている場合、このような木構造データは標準形論理式を表現する。このような標準形論理式を表現する木構造データは容易に設定できる。
<アクセス構造>
上述のように秘密情報を階層的に秘密分散して得られる木構造データによって所定の論理式を表現した場合、第1情報と第2情報との組み合わせに対して得られる葉ノードでのシェア情報に応じた値から秘密情報に応じた値を復元できるか否かによって、第1情報と第2情報との組み合わせによって定まる論理式の真理値が「真」となるか「偽」となるかを判定できる。以下、第1情報と第2情報との組み合わせによって定まる論理式の真理値が「真」となる場合に第1情報と第2情報との組み合わせを受け入れ、「偽」となる場合に第1情報と第2情報との組み合わせを拒絶する仕組みをアクセス構造と呼ぶ。
上述のように所定の論理式を表現した木構造データの葉ノードの総数をΨとし、各葉ノードに対応する識別子をλ=1,...,Ψとする。各葉ノードに対応するn(λ)次元ベクトルv(λ)の集合{v(λ)}λ=1,...,Ψを第1情報とし、n(λ)次元ベクトルw(λ)の集合{w(λ)}λ=1,...,Ψを第2情報とする。また、上述した木構造データをラベル付き行列LMT(MT,LAB)として実装する。
ラベル付き行列LMT(MT,LAB)は、以下のΨ行COL列(COL≧1)の行列MTと、行列MTの各行λ=1,...,Ψに対応付けられたラベルLAB(λ)とを含む。
Figure 0006259402
行列MTの各要素mtλ,col(col=1,...,COL)は次の2つの要件を満たす。第1に、上述のように所定の論理式を表現した木構造データのルートノードに秘密情報SE∈Fqに応じた値が対応する場合、予め定められた有限体Fqの元を要素とするCOL次元ベクトルGVと秘密情報SEに応じた有限体Fqの元を要素とするCOL次元ベクトルCVとの間に以下の関係が成立する。
GV=(gv1,...,gvCOL)∈Fq COL …(35)
CV=(cv1,...,cvCOL)∈Fq COL …(36)
SE=GV・(CV)T …(37)
以下にCOL次元ベクトルGVの具体例を示す。
GV=(1F,...,1F)∈Fq COL …(38)
ただし、GV=(1F,0F,...,0F)∈Fq COLなどのその他のCOL次元ベクトルがGVであってもよい。第2に、識別子λに対応する葉ノードにシェア情報share(λ)∈Fqに応じた値が対応する場合、以下の関係が成立する。
(share(1),...,share(Ψ))T=MT・(CV)T …(39)
上述のように所定の論理式を表現した木構造データが定まれば、これら2つの要件を満たす行列MTを選択することは容易である。また、秘密情報SEやシェア情報share(λ)が変数であったとしても、これら2つの要件を満たす行列MTを選択することは容易である。すなわち、行列MTを定めた後で秘密情報SEやシェア情報share(λ)の値が定められてもよい。
また、行列MTの各行λ=1,...,Ψに対応付けられたラベルLAB(λ)は、識別子λに対応する葉ノードに対応するリテラル(PRO(λ)又は¬PRO(λ))に対応する。ここで、命題変数PRO(λ)の真理値が「真」であることと第1情報VSET1={λ,v(λ)|λ=1,...,Ψ}が含むv(λ)と第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}が含むw(λ)との内積v(λ)・w(λ)が0となることとが等価であると扱い、命題変数PRO(λ)の真理値が「偽」であることと内積v(λ)・w(λ)が0とならないこととが等価であると扱う。PRO(λ)に対応するラベルLAB(λ)がv(λ)を表し、¬PRO(λ)に対応するラベルLAB(λ)が¬v(λ)を表すものとする。なお、¬v(λ)はv(λ)の否定を表す論理式であり、¬v(λ)からv(λ)の特定が可能である。また、LAB(λ)がv(λ)を表すことを「LAB(λ)=v(λ)」と表記し、LAB(λ)が¬v(λ)を表すことを「LAB(λ)=¬v(λ)」と表記する。また、LAB(λ)(λ=1,...,Ψ)の集合{LAB(λ)}λ=1,...,ΨをLABと表記する。
さらに、Ψ次元ベクトルが以下のように定義される。
TFV=(tfv(1),...,tfv(Ψ)) …(40)
要素tfv(λ)は、内積v(λ)・w(λ)が0のときにtfv(λ)=1となり、0以外のときにtfv(λ)=0となる。
tfv(λ)=1 (PRO(λ)が真) if v(λ)・w(λ)=0 …(41)
tfv(λ)=0 (PRO(λ)が偽) if v(λ)・w(λ)≠0 …(42)
さらに、以下の論理式の真理値が「真」になるときLIT(λ)=1と表記し「偽」になるときLIT(λ)=0と表記する。
{(LAB(λ)=v(λ))∧(tfv(λ)=1)}∨{(LAB(λ)=¬v(λ))∧(tfv(λ)=0)} …(43)
すなわち、識別子λに対応する葉ノードに対応するリテラルの真理値が「真」になるときLIT(λ)=1と表記し「偽」になるときLIT(λ)=0と表記する。すると、行列MTが含む行ベクトルのうちLIT(λ)=1となる行ベクトルmtλ =(mtλ,1,...,mtλ,COL)のみからなる部分行列MTTFVは以下のように表記できる。
MTTFV=(MT)LIT(λ)=1 …(44)
上述した秘密分散方式が線形秘密分散方式である場合、識別子λに対応するシェア情報share(λ)に応じた値から秘密情報SEに応じた値が復元できることと、識別子λに対応する行ベクトルmtλ で張られるベクトル空間にCOL次元ベクトルGVが属することとは等価である。すなわち、識別子λに対応する行ベクトルmtλ で張られるベクトル空間にCOL次元ベクトルGVが属するか否かを判定することで、識別子λに対応するシェア情報share(λ)に応じた値から秘密情報SEに応じた値が復元できるか否かが判定できる。行ベクトルmtλ で張られるベクトル空間とは、行ベクトルmtλ の線形結合で表すことができるベクトル空間を意味する。
ここで、上述の部分行列MTTFVの各行ベクトルmtλ で張られるベクトル空間span<MTTFV>にCOL次元ベクトルGVが属する場合に第1情報と第2情報との組み合わせが受け入れられ、そうでない場合に第1情報と第2情報との組み合わせが拒絶されることにする。これにより、上述のアクセス構造が具体化される。なお、上述したようにラベル付き行列LMT(MT,LAB)が第1情報に対応する場合、アクセス構造が第1情報と第2情報との組み合わせを受け入れることを「アクセス構造が第2情報を受け入れる」といい、アクセス構造が第1情報と第2情報との組み合わせを受け入れないことを「アクセス構造が第2情報を拒絶する」という。
受け入れ if GV∈span<MTTFV>
拒絶 if ¬(GV∈span<MTTFV>)
また、GV∈span<MTTFV>の場合、以下を満たす係数const(μ)が存在し、このような係数const(μ)は行列MTのサイズのオーダーの多項式時間で求めることができる。
SE=Σμ∈SETconst(μ)・share(μ) …(45)
{const(μ)∈Fq|μ∈SET},SET⊆{1,...,λ|LIT(λ)=1}
<アクセス構造を用いた関数暗号方式の基本方式>
以下では、アクセス構造を用いた関数暗号方式によって鍵カプセル化メカニズムKEM (Key Encapsulation Mechanisms)を構成する場合の基本方式を例示する。この基本方式はSetup(1sec,(Ψ;n(1),...,n(Ψ))),GenKey(PK,MSK,LMT(MT,LAB)),Enc(PK,M,{λ,v(λ)|λ=1,...,Ψ})(v1(λ)=1F),Dec(PK,SKS,C)を含む。また、第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}の1番目の要素w1(λ)が1Fとされる。
[Setup(1sec,(Ψ;n(1),...,n(Ψ))):セットアップ]
−入力:1sec,(Ψ;n(1),...,n(Ψ))
−出力:マスタ秘密鍵MSK,公開パラメータPK
Setupでは各ψ=0,...,Ψについて以下の処理が実行される。
(Setup-1) 1secを入力としてセキュリティパラメータsecでの位数q、楕円曲線E、巡回群G1, G2, GT、双線形写像eψ(ψ=0,...,Ψ)が生成される(param=(q, E, G1, G2, GT, eψ))。
(Setup-2) τ'∈Fqが選択され、X*(ψ)=τ'・(X(ψ)-1)Tを満たす行列X(ψ),X*(ψ)が選択される。
(Setup-3) 基底ベクトルai(ψ) (i=1,...,n(ψ)+ζ(ψ))が式(21)に従って座標変換され、n(ψ)+ζ(ψ)次元の基底ベクトルbi(ψ) (i=1,...,n(ψ)+ζ(ψ))が生成される。基底ベクトルbi(ψ) (i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列B(ψ)が生成される。
(Setup-4) 基底ベクトルai *(ψ) (i=1,...,n(ψ)+ζ(ψ))が式(23)に従って座標変換され、n(ψ)+ζ(ψ)次元の基底ベクトルbi *(ψ)(i=1,...,n(ψ)+ζ(ψ))が生成される。基底ベクトルbi *(ψ) (i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列B*(ψ)が生成される。
(Setup-5) B*(ψ)^の集合{B*(ψ)^}ψ=0,...,Ψをマスタ秘密鍵MSK={B*(ψ)^}ψ=0,...,Ψとする。B(ψ)^の集合{B(ψ)^}ψ=0,...,Ψと1secとparamとを公開パラメータPKとする。ただし、B*(ψ)^は行列B*(ψ)又はその部分行列であり、B(ψ)^は行列B(ψ)又はその部分行列である。集合{B*(ψ)^}ψ=0,...,Ψは、少なくとも、b1 *(0),b1 *(λ) …,bn(λ) *(λ)(λ=1,...,Ψ)を含む。集合{B(ψ)^}ψ=0,...,Ψは、少なくとも、b1(0),b1(λ),…,bn(λ)(λ)(λ=1,...,Ψ)を含む。以下に一例を示す。
・n(0)+ζ(0)≧5, ζ(λ)=3・n(λ)
・B(0)^=(b1(0) b3(0) b5(0))T
・B(λ)^=(b1(λ) … bn(λ)(λ) b3・n(λ)+1(λ) … b4・n(λ)(λ))T(λ=1,...,Ψ)
・B*(0)^=(b1 *(0) b3 *(0) b4 *(0))T
・B*(λ)^=(b1 *(λ) … bn(λ) *(λ) b2・n(λ)+1 *(λ) … b3・n(λ) *(λ))T(λ=1,...,Ψ)
[GenKey(PK,MSK,LMT(MT,LAB)):秘密鍵生成]
−入力:公開パラメータPK,マスタ秘密鍵MSK,第1情報VSET1={λ,v(λ)|λ=1,...,Ψ}に対応するラベル付き行列LMT(MT,LAB)
−出力:秘密鍵SKS
(GenKey-1) 式(35)-(39)を満たす秘密情報SEに対して以下の処理が実行される。
D*(0)=-SE・b1 *(0)+Σι=2 Icoefι(0)・bι *(0) …(46)
ただし、Iは2以上n(0)+ζ(0)以下の定数である。coefι(0)∈Fqは定数又は乱数である。「乱数」とは真性乱数や擬似乱数を意味する。以下にD*(0)の一例を示す。なお、式(47)のcoef4(0)は乱数である。
D*(0)=-SE・b1 *(0)+b3 *(0)+coef4(0)・b4 *(0) …(47)
(GenKey-2) 式(35)-(39)を満たすshare(λ)(λ=1,...,Ψ)に対して以下の処理が実行される。
LAB(λ)=v(λ)となるλに対して、以下のD*(λ)が生成される。
D*(λ)=(share(λ)+coef(λ)・v1(λ))・b1 *(λ)
ι=2 n(λ)coef(λ)・vι(λ)・bι *(λ)
ι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)・bι *(λ) …(48)
LAB(λ)=¬v(λ)となるλに対して、以下のD*(λ)が生成される。
D*(λ)=share(λ)・Σι=1 n(λ)vι(λ)・bι *(λ)
ι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)・bι *(λ) …(49)
ただしcoef(λ),coefι(λ)∈Fqは定数又は乱数である。以下に一例を示す。
LAB(λ)=v(λ)となるλに対して、例えば以下のD*(λ)が生成される。
D*(λ)=(share(λ)+coef(λ)・v1(λ))・b1 *(λ)
ι=2 n(λ)coef(λ)・vι(λ)・bι *(λ)
ι=2・n(λ)+1 3・n(λ)coefι(λ)・bι *(λ) …(50)
LAB(λ)=¬v(λ)となるλに対して、例えば以下のD*(λ)が生成される。
D*(λ)=share(λ)・Σι=1 n(λ)vι(λ)・bι *(λ)
ι=2・n(λ)+1 3・n(λ)coefι(λ)・bι *(λ) …(51)
なお、式(50)(51)のcoef(λ)及びcoefι(λ)は乱数である。
(GenKey-3) 以下の秘密鍵が生成される。
SKS=(LMT(MT,LAB),D*(0),D*(1),...,D(Ψ)) …(52)
[Enc(PK,M,VSET2):暗号化]
−入力:公開パラメータPK,平文M,第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}(w1(λ)=1F)
−出力:暗号文C
(Enc-1) 以下の処理によって共通鍵Kの暗号文C(ψ)(ψ=0,...,Ψ)が生成される。
C(0)=υ・b1(0)+Σι=2 Iυι(0)・bι(0) …(53)
C(λ)=υ・Σι=1 n(λ)wι(λ)・bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι(λ)・bι(λ) …(54)
ただし、υ,υι(ψ)∈Fq(ψ=0,...,Ψ)は定数又は乱数であり、以下の関係が満たされる。
(coef2(0),...,coefI(0))・(υ2(0),...,υI(0))=υ' …(55)
coefι(λ)・υι(λ)=0F (ι=n(λ)+1,...,n(λ)+ζ(λ)) …(56)
υ'の例はυ2(0),...,υI(0)の何れか1個である。例えば、υ,υ3(0),υ5(0),υ3・n(λ)+1(λ),...,υ4・n(λ)(λ)が乱数であり、ζ(λ)=3・n(λ)、I=5であり、以下の関係が満たされる。
2(0),...,υI(0))=(0F3(0),0F5(0))
υ'=υ3(0)
n(λ)+1(λ),...,υ3・n(λ)(λ))=(0F,...,0F)
(Enc-2) 共通鍵
K=gT τ・τ'・υ'∈GT …(57)
が生成される。例えば、τ=τ'=1Fの場合、以下の関係が満たされる。
K=gT υ'∈GT …(58)
(Enc-3) 共通鍵Kを用いて平文Mの暗号文C(Ψ+1)が生成される。
C(Ψ+1)=EncK(M) …(59)
共通鍵暗号方式Encは、例えば共通鍵Kを用いて暗号化可能に構成されたカメリア(Camellia)(登録商標)やAESや共通鍵と平文との排他的論理和などでよいが、その他の簡単な例として以下のようにEncK(M)を生成してもよい。ただし、式(60)の例ではM∈GTとされる。
C(Ψ+1)=gT υ'・M …(60)
(Enc-4) 以下の暗号文が生成される。
C=(VSET2,C(0),{C(λ)}(λ,w(λ)→)∈VSET2,C(Ψ+1)) …(61)
ただし、下付き添え字の「w(λ)→」は「w(λ)」を表す。
[Dec(PK,SKS,C):復号]
−入力:公開パラメータPK,秘密鍵SKS,暗号文C
−出力:平文M'
(Dec-1) λ=1,...,Ψについて、秘密鍵SKSが含むラベル付き行列LMT(MT,LAB)の各ラベルLAB(λ)であるn(λ)次元ベクトルv(λ)と暗号文CのVSET2が含むn(λ)次元ベクトルw(λ)との内積v(λ)・w(λ)が0となるか否かが判定され、これとLMT(MT,LAB)の各ラベルLAB(λ)とによってGV∈span<MTTFV>であるか否かが判定される(式(40)-(45))。GV∈span<MTTFV>でなければ暗号文Cが拒絶され、GV∈span<MTTFV>であれば暗号文Cが受け入れられる。
(Dec-2) 暗号文Cが受け入れられると、SET⊆{1,...,λ|LIT(λ)=1}と式(45)を満たす係数const(μ)(μ∈SET)とが計算される。
(Dec-3) 以下の共通鍵が生成される。
Figure 0006259402
式(6)(25)(55)より、以下の関係が満たされる。
Figure 0006259402
式(6)(25)(41)(48)(54)(56)及びw1(λ)=1Fより、以下の関係が満たされる。
Figure 0006259402
式(6)(25)(42)(49)(54)(56)より以下の関係がみたされる。
Figure 0006259402
を満たす。
式(45)(63)-(65)より以下の関係が満たされる。
Figure 0006259402

例えば、τ=τ'=1Fの場合、以下の関係が満たされる。
K=gT υ'∈GT …(67)
(Dec-4) 共通鍵Kを用い、以下のように平文M'が生成される。
M'=DecK(C(Ψ+1))=DecK(C(Ψ+1)) …(68)
例えば、式(60)に例示した共通鍵暗号方式の場合、以下のように平文M'が生成される。
M'=C(Ψ+1)/K …(69)
なお、gTをGTの生成元とする代わりにgT τやgT τ'やgT τ・τ'をGTの生成元と扱ってもよい。秘密鍵SKSのλと暗号文のλとを対応関係を特定する写像を用いてC(λ)とD*(λ)との組み合わせを特定し、[Dec(PK,SKS,C):復号]の処理が実行されてもよい。第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}の1番目の要素w1(λ)が1Fとされるだけではなく、第1情報VSET1={λ,v(λ)|λ=1,...,Ψ}のn(λ)番目の要素vn(λ)(λ)が1Fとされてもよい。要素w1(λ)が1Fでない場合にはw(λ)の代わりにw(λ)/w1(λ)を用いてもよく、要素vn(λ)(λ)が1Fでない場合にはv(λ)の代わりにv(λ)/vn(λ)(λ)を用いてもよい。第1情報VSET1={λ,v(λ)|λ=1,...,Ψ}の代わりに第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}が用いられ、第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}の代わりに第1情報VSET1={λ,v(λ)|λ=1,...,Ψ}が用いられてもよい。この場合には第1情報VSET1={λ,v(λ)|λ=1,...,Ψ}の1番目の要素v1(λ)が1Fとされる。
[その他の変形例等]
なお、本発明は上述の実施形態に限定されるものではない。例えば、上記の実施形態の秘密鍵uskは、端末装置12,22−iの識別情報Uと有効時間区間TFに属する時間time∈TFに対応する情報を含む情報に対応するものであった。しかしながら、秘密鍵uskが識別情報Uに対応せず、有効時間区間TFに属する時間time∈TFに対応する情報を含む情報に対応するものであってもよい。また、共有情報Cが予め生成されていてもよいし、共有情報Cが定数であってもよい。さらに共有情報Cは第2実施形態で例示したものには限定されない。例えば、公知の鍵配送方式で鍵配送がなされる端末装置間で共有されるその他の情報を共有情報Cとしてもよい。また、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。或いは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。すなわち、これらの装置の一部からなる組み合わせが、同一の装置であってもよい。上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
1,2 鍵配送システム
11,21 鍵配送管理装置
12−k,22−k 端末装置

Claims (10)

  1. 関数暗号方式に則って第1シード値を暗号化し、有効時間区間に属する時間に対応する情報を含む情報に対応する秘密鍵で復号可能な暗号文を得、前記暗号文と共有情報とを出力する第1配送処理部と、
    前記共有情報が秘匿化された秘匿化共有情報が入力され、前記秘匿化共有情報と管理秘密値とに応じた第2シード値の秘匿化情報を得、前記第2シード値の秘匿化情報を出力する第2配送処理部と、
    を有する鍵配送管理装置。
  2. 請求項1の鍵配送管理装置であって、
    前記共有情報と新たな管理秘密値とに応じた新たな共有情報を得、前記新たな共有情報と前記秘匿化共有情報とを出力する第3配送処理部と、
    前記新たな共有情報が秘匿化された新たな秘匿化共有情報が入力され、前記新たな秘匿化共有情報と前記新たな管理秘密値とに応じた新たな第2シード値の秘匿化情報を得、前記新たな第2シード値の秘匿化情報を出力する第4配送処理部を有する、鍵配送管理装置。
  3. 請求項1の鍵配送管理装置であって、
    前記秘匿化共有情報と新たな管理秘密値とに応じた新たな第2シード値の秘匿化情報を得、前記新たな第2シード値の秘匿化情報を出力する第5配送処理部を有する、鍵配送管理装置。
  4. 請求個1から3の何れかの鍵配送管理装置であって、
    前記関数暗号方式に則って新たな第1シード値を暗号化し、新たな有効時間区間に属する時間に対応する情報を含む情報に対応する新たな秘密鍵で復号可能な新たな暗号文を得、前記新たな暗号文を出力する第6配送処理部を有する、鍵配送管理装置。
  5. 暗号文が入力され、有効時間区間に属する時間に対応する情報を含む情報に対応する秘密鍵を用い、関数暗号方式に則って前記暗号文を復号して第1シード値を得る第1処理部と、
    共有情報が入力され、前記共有情報と端末秘密値の逆元とに応じた秘匿化共有情報を得、前記秘匿化共有情報を出力する第2処理部と、
    第2シード値の秘匿化情報が入力され、前記第2シード値の秘匿化情報と前記端末秘密値とに応じた第2シード値を得る第3処理部と、
    前記第1シード値を含む情報と前記第2シード値を含む情報とに対応する共通鍵を得る第4処理部と、
    を有する端末装置。
  6. 請求項5の端末装置であって、
    前記共通鍵は、前記第1シード値に関する情報および前記第2シード値に関する情報が隠蔽された情報である、端末装置。
  7. 請求項5または6の端末装置であって、
    新たな第2シード値の秘匿化情報が入力され、前記新たな第2シード値の秘匿化情報と前記端末秘密値とに応じた新たな第2シード値を得る第5処理部を有する端末装置。
  8. 暗号文が入力され、有効時間区間に属する時間に対応する情報を含む情報に対応する秘密鍵を用い、関数暗号方式に則って前記暗号文を復号して第1シード値を得る第1処理部と、
    秘匿化共有情報が入力され、前記秘匿化共有情報と端末秘密値とに応じた新たな秘匿化共有情報を得、前記新たな秘匿化共有情報を出力する第6処理部と、
    新たな共有情報が入力され、前記新たな共有情報と前記端末秘密値とに応じた新たな第2シード値を得る第7処理部と、
    前記第1シード値を含む情報と前記第2シード値を含む情報とに対応する共通鍵を得る第4処理部と、
    を有する端末装置。
  9. 鍵配送管理装置と複数の端末装置とを有する鍵配送システムであって、
    前記鍵配送管理装置は、
    関数暗号方式に則って第1シード値を暗号化し、有効時間区間に属する時間に対応する情報を含む情報に対応する秘密鍵で復号可能な暗号文を得、前記暗号文と共有情報とを前記端末装置に出力する第1配送処理部を含み、
    前記端末装置は、
    前記暗号文が入力され、前記秘密鍵を用い、前記関数暗号方式に則って前記暗号文を復号して第1シード値を得る第1処理部と、
    前記共有情報が入力され、前記共有情報と端末秘密値の逆元とに応じた秘匿化共有情報を得、前記秘匿化共有情報を出力する第2処理部と、を含み、
    前記鍵配送管理装置は、
    前記秘匿化共有情報が入力され、前記秘匿化共有情報と管理秘密値とに応じた第2シード値の秘匿化情報を得、前記第2シード値の秘匿化情報を出力する第2配送処理部を含み、
    前記端末装置は、
    前記第2シード値の秘匿化情報が入力され、前記第2シード値の秘匿化情報と前記端末秘密値とに応じた第2シード値を得る第3処理部と、
    前記第1シード値を含む情報と前記第2シード値を含む情報とに対応する共通鍵を得る第4処理部とを含む、鍵配送システム。
  10. 請求項1から4の何れかの鍵配送管理装置または請求項5から8の何れかの端末装置としてコンピュータを機能させるためのプログラム。
JP2015009271A 2015-01-21 2015-01-21 鍵配送管理装置、端末装置、鍵配送システム、およびプログラム Active JP6259402B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015009271A JP6259402B2 (ja) 2015-01-21 2015-01-21 鍵配送管理装置、端末装置、鍵配送システム、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015009271A JP6259402B2 (ja) 2015-01-21 2015-01-21 鍵配送管理装置、端末装置、鍵配送システム、およびプログラム

Publications (2)

Publication Number Publication Date
JP2016134826A JP2016134826A (ja) 2016-07-25
JP6259402B2 true JP6259402B2 (ja) 2018-01-10

Family

ID=56464521

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015009271A Active JP6259402B2 (ja) 2015-01-21 2015-01-21 鍵配送管理装置、端末装置、鍵配送システム、およびプログラム

Country Status (1)

Country Link
JP (1) JP6259402B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10673629B2 (en) 2015-04-30 2020-06-02 Nippon Telegraph And Telephone Corporation Data transmission and reception method and system
EP3474486B1 (en) 2016-06-20 2021-01-27 Nippon Telegraph and Telephone Corporation Terminal device, key distribution management device, server-client system, communication method, and program
JP6456451B1 (ja) 2017-09-25 2019-01-23 エヌ・ティ・ティ・コミュニケーションズ株式会社 通信装置、通信方法、及びプログラム
JP6988912B2 (ja) 2017-11-29 2022-01-05 日本電信電話株式会社 鍵交換システム、端末装置、鍵交換方法、プログラム、および記録媒体

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002252607A (ja) * 2000-12-22 2002-09-06 Nippon Telegr & Teleph Corp <Ntt> 情報配送方法及びその実施装置並びにその処理プログラムと記録媒体
JP4823717B2 (ja) * 2006-02-28 2011-11-24 株式会社日立製作所 暗号通信システム、端末状態管理サーバ、暗号通信方法、および端末状態管理方法
KR101070473B1 (ko) * 2009-10-13 2011-10-06 아주대학교산학협력단 동적 그룹키 생성 방법
JP5755557B2 (ja) * 2011-12-19 2015-07-29 日本電信電話株式会社 時限暗号システム、時限暗号方法、装置、プログラム

Also Published As

Publication number Publication date
JP2016134826A (ja) 2016-07-25

Similar Documents

Publication Publication Date Title
JP5466763B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、プログラム、及び記録媒体
KR102116877B1 (ko) 오류를 갖는 페어링을 이용한 새로운 암호 시스템들
Sen Homomorphic encryption-theory and application
JP5130318B2 (ja) 証明書に基づく暗号化および公開鍵構造基盤
Gupta et al. Design of lattice‐based ElGamal encryption and signature schemes using SIS problem
JPWO2012011575A1 (ja) 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体
Gu et al. New public key cryptosystems based on non‐Abelian factorization problems
KR20110135962A (ko) 암호화 장치, 복호장치, 암호화 방법, 복호방법, 세큐러티 방법, 프로그램 및 기록매체
Abdalla et al. Identity-based traitor tracing
JP6259402B2 (ja) 鍵配送管理装置、端末装置、鍵配送システム、およびプログラム
Kuchta et al. Multi-authority distributed attribute-based encryption with application to searchable encryption on lattices
Seo et al. Revocable hierarchical identity-based encryption
Qin et al. Simultaneous authentication and secrecy in identity-based data upload to cloud
Dolev et al. Efficient private multi-party computations of trust in the presence of curious and malicious users
Wang et al. New identity-based key-encapsulation mechanism and its applications in cloud computing
Hong et al. A key-insulated CP-ABE with key exposure accountability for secure data sharing in the cloud
WO2015125293A1 (ja) 暗号システム及び暗号プログラム
Karati et al. Efficient and provably secure random oracle‐free adaptive identity‐based encryption with short‐signature scheme
Backes et al. Fully secure inner-product proxy re-encryption with constant size ciphertext
JP5612494B2 (ja) 関数暗号を用いた時限暗号システム、時限暗号方法、装置、プログラム
Koshiba et al. New assumptions on isogenous pairing groups with applications to attribute-based encryption
Ding et al. Ciphertext retrieval via attribute-based FHE in cloud computing
Yap et al. On the security of a lightweight authentication and encryption scheme for mobile ad hoc network
Karrothu et al. A systematic analysis of identity based encryption (IBE)
Kuchta et al. Multi-party (leveled) homomorphic encryption on identity-based and attribute-based settings

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171107

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171208

R150 Certificate of patent or registration of utility model

Ref document number: 6259402

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150