代理計算システム、端末装置、代理計算装置、代理計算方法、及びプログラム
【課題】端末装置外部への秘密情報の漏洩を抑制しつつ、端末装置が双線形写像の演算を行うことなく当該秘密情報に対する双線形写像を得る。
【解決手段】端末装置は、秘密情報dIDを秘密分散したK個のシェア情報share(k) (k=1,...,K; K≧2)を生成し、マスク値y(p) (p=1,...,P; K≧P≧1)を生成し、(t(1),...,t(P), t(P+1),...,t(K))=(y(1)・share(1),...,y(P)・share(P), share(P+1),...,share(K))を満たす出力情報t(k) (k=1,...,K)を出力する。代理計算装置は、出力情報t(k)と値Uとの組の双線形写像e(t(k), U)を生成し、双線形写像e(t(k), U)を出力する。端末装置は、復元値Πi=1Pe(t(i), U)-y(i)・Πi=P+1Ke(t(i), U)を生成する。
【解決手段】端末装置は、秘密情報dIDを秘密分散したK個のシェア情報share(k) (k=1,...,K; K≧2)を生成し、マスク値y(p) (p=1,...,P; K≧P≧1)を生成し、(t(1),...,t(P), t(P+1),...,t(K))=(y(1)・share(1),...,y(P)・share(P), share(P+1),...,share(K))を満たす出力情報t(k) (k=1,...,K)を出力する。代理計算装置は、出力情報t(k)と値Uとの組の双線形写像e(t(k), U)を生成し、双線形写像e(t(k), U)を出力する。端末装置は、復元値Πi=1Pe(t(i), U)-y(i)・Πi=P+1Ke(t(i), U)を生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、双線形写像を計算する技術に関する。
【背景技術】
【0002】
携帯電話などの演算機能を備えた携帯型の端末装置に装着されたICチップにIDベース暗号方式(例えば、非特許文献1等参照)の秘密鍵を格納しておき、リーダ装置を備えたパーソナルコンピュータなどの復号装置が当該ICチップから秘密鍵を読み込み、それを用いて暗号文を復号するシステムを想定する。このようなシステムは、端末装置の所持の有無によって暗号文の復号可否が決まる一種の認証システムである。しかしながら、このシステムでは秘密鍵自体が復号装置に送られるため、秘密鍵が漏洩するリスクがある。また、端末装置自体を紛失した場合には、端末装置から秘密鍵が漏洩するリスクもある。
【0003】
このようなリスクを低減する方法として、IDベース暗号方式の秘密鍵を秘密分散してシェア情報を生成し、それらを端末装置と復号装置とに分散して格納しておく方法がある。この方法では、暗号文の復号時に、端末装置と復号装置とがそれぞれ自らが格納するシェア情報を用いてペアリングなどの双線形写像の演算を行い、それらの演算結果を用いて秘密鍵に対する双線形写像を求めて暗号文を復号する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】D.Boneh, M. Franklin, "Identity based encryption from the Weil pairing," Crypto 2001, Lecture Notes in Computer Science, Vol. 2139, Springer-Verlag, pp.213-229, 2001.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、一般に双線形写像を求めるための演算量は大きく、端末装置の演算能力が低かった場合には復号処理に支障が生じる。また、端末装置よりも演算能力の高い復号装置にすべてのシェア情報を渡したのでは、復号装置はシェア情報から秘密鍵を復元できるため、秘密鍵が漏洩するリスクがある。このような問題は、IDベース暗号方式の秘密鍵を用いて復号を行う場合だけではなく、秘密情報に対する双線形写像を求める必要がある場合に共通するものである。
【0006】
本発明はこのような点に鑑みてなされたものであり、端末装置外部への秘密情報の漏洩を抑制しつつ、端末装置が双線形写像の演算を行うことなく当該秘密情報に対する双線形写像を得ることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
端末装置は、秘密情報dIDに対してdID=Σk=1K share (k)を満たすK個のシェア情報share(k) (k=1,...,K; K≧2)を生成し、マスク値y(p) (p=1,...,P; K≧P≧1)を生成し、(t(1),...,t(P), t(P+1),...,t(K))=(y(1)・share(1),...,y(P)・share(P), share(P+1),...,share(K))を満たす出力情報t(k) (k=1,...,K)を出力する。代理計算装置は、出力情報t(k)と値Uとの組の双線形写像e(t(k), U)を生成し、双線形写像e(t(k), U)を出力する。端末装置は、復元値
【0008】
【数1】
を生成する。
【発明の効果】
【0009】
復元値Keyは秘密情報dIDと値Uとの組に対する双線形写像e(dID, U)と等しい。このように、本発明では、端末装置外部への秘密情報の漏洩を抑制しつつ、端末装置が双線形写像の演算を行うことなく当該秘密情報に対する双線形写像を得ることができる。
【図面の簡単な説明】
【0010】
【図1】図1は、実施形態の代理計算システムの全体構成を説明するための図である。
【図2】図2は、第1実施形態の端末装置の機能構成を説明するための図である。
【図3】図3は、第1実施形態の復号装置の機能構成を説明するための図である。
【図4】図4は、第1実施形態の鍵生成号装置の機能構成を説明するための図である。
【図5】図5は、第1実施形態の登録処理を説明するためのフローチャートである。
【図6】図6は、第1実施形態の復号処理を説明するためのフローチャートである。
【図7】図7は、第2実施形態の端末装置の機能構成を説明するための図である。
【図8】図8は、第2実施形態の登録処理を説明するためのフローチャートである。
【図9】図9は、第2実施形態の復号処理を説明するためのフローチャートである。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施形態を説明する。
【0012】
〔定義〕
まず、各実施形態で使用する用語を定義する。
【0013】
{0,1}*:{0,1}*は任意ビット長のバイナリ系列を表す。その一例は、整数0及び1からなる系列である。
{0,1}n:{0,1}nはnビット(n≧1)のバイナリ系列を表す。その一例は、整数0及び1からなる系列である。
Zq:Zqは位数qのqを法とする剰余環(Z/qZ)表す。位数qは1以上の整数である。Zq*の例は0以上q-1以下の整数集合である。
Zq*:Zq*は位数qのqを法とする既約剰余類(Z/qZ)*表す。Zq*の例は1以上q-1以下の整数集合である。
Fq:Fqは位数qの有限体を表す。
E:Eは有限体Fq上で定義された楕円曲線を表す。Eはアフィン(affine)座標版のWeierstrass方程式
y2+a1・x・y+a3・y=x3+a2・x2+a4・x+a6 …(1)
(ただし、a1,a2,a3,a4,a6∈Fq)を満たすx,y∈Fqからなる点(x,y)の集合に無限遠点と呼ばれる特別な点Oを付加したもので定義される。楕円曲線E上の任意の2点に対して楕円加算と呼ばれる二項演算+及び楕円曲線E上の任意の1点に対して楕円逆元と呼ばれる単項演算−がそれぞれ定義できる。また、楕円曲線E上の有理点からなる有限集合が楕円加算に関して群をなすこと、楕円加算を用いて楕円スカラー倍算と呼ばれる演算が定義できること、及びコンピュータ上での楕円加算などの楕円演算の具体的な演算方法はよく知られている(例えば、参考文献1「RFC 5091: Identity-Based Cryptography Standard (IBCS) #1: Supersingular Curve Implementations of the BF and BB1 Cryptosystems」、参考文献2「イアン・F・ブラケ、ガディエル・セロッシ、ナイジェル・P・スマート=著、「楕円曲線暗号」、出版=ピアソン・エデュケーション、ISBN4-89471-431-0」等参照)。
【0014】
G1, G2,GT:G1, G2, GTは位数qの巡回群を表す。巡回群G1, G2の具体例は、楕円曲線Eのq等分点からなる有限集合E[q]やその部分群である。G1=G2であってもよいしG1≠G2であってもよい。また、巡回群GTの具体例は、有限体Fqを基礎体とする拡大体を構成する有限集合である。その一例は、有限体Fqの代数閉包における1のq乗根からなる有限集合である。
【0015】
なお、本形態では、巡回群G1, G2上で定義された演算を加法的に表現し、巡回群GT上で定義された演算を乗法的に表現する。すなわち、χ∈Zq及びΩ∈G1に対するχ・Ω∈G1は、Ω∈G1に対して巡回群G1で定義された演算をχ回施すことを意味し、Ω1, Ω2∈G1に対するΩ1+Ω2∈G1は、Ω1∈G1とΩ2∈G1とを被演算子として巡回群G1で定義された演算を行うことを意味する。同様に、χ∈Fq及びΩ∈G2に対するχ・Ω∈G2は、Ω∈G2に対して巡回群G2で定義された演算をχ回施すことを意味し、Ω1, Ω2∈G2に対するΩ1+Ω2∈G2は、Ω1∈G2とΩ2∈G2とを被演算子として巡回群G2で定義された演算を行うことを意味する。一方、χ∈Zq及びΩ∈GTに対するΩχ∈GTは、Ω∈GTに対して巡回群GTで定義された演算をχ回施すことを意味し、Ω1,Ω2∈GTに対するΩ1・Ω2∈GTは、Ω1∈GTとΩ2∈GTとを被演算子として巡回群GTで定義された演算を行うことを意味する。
【0016】
e:eは双線形写像を表す。双線形写像eは巡回群G1の1個の元と巡回群G2の1個の元との組を入力とし、巡回群GTの1個の元を出力する。双線形写像eは以下の性質を満たす。
【0017】
[双線形性]すべてのΩ1∈G1,Ω2∈G2及びν,κ∈Zqについて以下の関係を満たす。
e(ν・Ω1,κ・Ω2)=e(Ω1,Ω2)ν・κ …(2)
[非退化性]eはすべての
Ω1∈G1,Ω2∈G2 …(3)
を巡回群GTの単位元に写すものではない。
[計算可能性]あらゆるΩ1∈G1,Ω2∈G2についてe(Ω1,Ω2)を効率的に計算するアルゴリズムが存在する。
【0018】
なお、双線形写像の具体例は、WeilペアリングやTateペアリングなどのペアリング演算を行うための関数である(例えば、参考文献3「Alfred. J. Menezes,ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS, KLUWER ACADEMIC PUBLISHERS, ISBN0-7923-9368-6,pp. 61-81」等参照)。また、楕円曲線Eの種類に応じ、Tateペアリングなどのペアリング演算を行うための関数と所定の関数phiを組み合わせた変更ペアリング関数e(Ω1,phi(Ω2))(Ω1∈G1,Ω2∈G2)を双線形関数Pairとして用いてもよい(例えば、参考文献1等参照)。また、ペアリング演算をコンピュータ上で行うためのアルゴリズムとしては、周知のMiller のアルゴリズム(参考文献4「V. S. Miller, “Short Programs for functions on Curves,”1986,インターネット<http://crypto.stanford.edu/miller/miller.pdf>」などが存在する。
【0019】
〔第1実施形態〕
本発明の第1実施形態を説明する。
【0020】
<構成>
図1は、実施形態の代理計算システムの全体構成を説明するための図である。
【0021】
図1に例示するように、本形態の代理計算システム1は、端末装置110と復号装置120(代理計算装置)と鍵生成装置130と暗号化装置140とを有する。代理計算システム1では、端末装置110と鍵生成装置130との間の情報の受け渡しが可能であり、端末装置110と復号装置120との間の情報の受け渡しが可能であり、暗号化装置140から復号装置120への情報の提供が可能である。代理計算システム1は、無線通信、有線通信、ネットワークなどを介してこれらの情報の受け渡しや提供が可能なように構成されてもよいし、ICチップなどの可搬型記録媒体を介してこれらの情報の受け渡しや提供が可能なように構成されてもよい。
【0022】
[端末装置の構成]
図2は、第1実施形態の端末装置110の機能構成を説明するための図である。
【0023】
図2に例示するように、本形態の端末装置110は、本体111と可搬型記録媒体112とを有する。本体111は、入力部111aと出力部111bとインタフェース部111cと記憶部111dとメモリ111eと制御部111fとマスク値生成部111gと秘密分散部111hとマスク値適用部111iと復元部111jとを有する。可搬型記録媒体112は、本体111に装着可能に構成され、記憶部112aとインタフェース部112bとを有する。なお、図示表記の都合上、図2では複数の入力部111aや出力部111bを表記しているが、これは入力部111aや出力部111bの個数を限定するものではない。
【0024】
端末装置110は、例えば、演算機能を備えた携帯型情報端末や携帯電話などの装置である。本体111は、CPU(central processing unit),RAM(random-access memory),ROM(read-only memory)などを備え、CPUに特別なプログラムが読み込まれることによって構成される。入力部111aや出力部111bは、例えば、外部装置と通信するための通信装置である。インタフェース部111cは、例えば、可搬型記録媒体112と通信するための通信装置や入出力ポートなどである。記憶部111dやメモリ111eは、例えば、ハードディスク装置、RAM、キャッシュメモリ、レジスタ、又は、これらの少なくともを結合した記憶領域である。制御部111fやマスク値生成部111gや秘密分散部111hやマスク値適用部111iや復元部111jは、例えば、CPUが特別なプログラムを実行することで構成される処理部や集積回路によって構成される処理部である。本体111は、記憶部111dの制御のもと各処理を実行する。また、以下では説明を省略するが、本体111の入力部111aに入力された情報や各処理部から出力される情報は逐一メモリ111eに格納され、必要に応じて読み出される。
【0025】
可搬型記録媒体112は、例えば、FOMA(登録商標)チップなどのICチップやUSBメモリなどである。記憶部112aは、例えば、RAM、キャッシュメモリ、レジスタ、又は、これらの少なくともを結合した記憶領域である。インタフェース部112bは、本体111と通信するための通信装置である。
【0026】
[復号装置(代理計算装置)の構成]
図3は、第1実施形態の復号装置120の機能構成を説明するための図である。
【0027】
図3に例示するように、本形態の復号装置120は、入力部121と出力部122と記憶部123とメモリ124と制御部125と双線形写像演算部126と復号部127とを有する。復号装置120は、例えば、CPU,RAM,ROMなどを備えた公知又は専用のコンピュータに特別なプログラムが読み込まれて構成される装置である。入力部121や出力部122は、例えば、外部装置と通信するための通信装置である。記憶部123やメモリ124は、例えば、ハードディスク装置、RAM、キャッシュメモリ、レジスタ、又は、これらの少なくともを結合した記憶領域である。制御部125や双線形写像演算部126や復号部127は、例えば、CPUが特別なプログラムを実行することで構成される処理部や集積回路によって構成される処理部である。復号装置120は、例えば、制御部125の制御のもと各処理を実行する。また、以下では説明を省略するが、復号装置120の入力部121に入力された情報や各処理部から出力される情報は逐一メモリ124に格納され、必要に応じて読み出される。
【0028】
[鍵生成号装置の構成]
図4は、第1実施形態の鍵生成号装置130の機能構成を説明するための図である。
【0029】
図4に例示するように、鍵生成号装置130は、例えば、入力部131と出力部132と記憶部133とメモリ134と制御部135と写像部136と秘密鍵生成部137とを有する。鍵生成号装置130は、例えば、CPU,RAM,ROMなどを備えた公知又は専用のコンピュータに特別なプログラムが読み込まれて構成される装置である。例えば、入力部131や出力部132は外部装置と通信するための通信装置である。記憶部133やメモリ134は、例えば、ハードディスク装置、RAM、キャッシュメモリ、レジスタ、又は、これらの少なくともを結合した記憶領域である。制御部135や写像部136や秘密鍵生成部137は、例えば、CPUが特別なプログラムを実行することで構成される処理部や集積回路によって構成される処理部である。鍵生成号装置130は、制御部135の制御のもと各処理を実行する。また、以下では説明を省略するが、鍵生成号装置130の入力部131に入力された情報や各処理部から出力される情報は逐一メモリ134に格納され、必要に応じて読み出される。
【0030】
[暗号化装置の構成]
本形態の暗号化装置14は、CPU,RAM,ROMなどを備えた公知又は専用のコンピュータに特別なプログラムが読み込まれて構成される装置である。
【0031】
<処理>
次に、第1実施形態の処理について説明する。
【0032】
[事前処理]
事前処理として、鍵生成装置130(図4)の記憶部133にIDベース暗号方式のマスタ秘密鍵s∈Zq*が格納されている。また、端末装置110のユーザを識別する識別情報ID∈{0,1}*が端末装置110(図2)の可搬型記録媒体112の記憶部112aに格納されている。識別情報IDの例は、FOMA IDなどである。
【0033】
[登録処理]
図5は、第1実施形態の登録処理を説明するためのフローチャートである。
【0034】
登録処理では、識別情報IDに対応する秘密鍵dIDが生成され、それが秘密分散されてシェア情報の一部が復号装置120に格納される。以下、図5を用いて本形態の登録処理を説明する。
【0035】
まず、端末装置110(図2)の可搬型記録媒体112の記憶部112aから識別情報IDが読み出され、インタフェース112b,112cを介して本体111に送られる。識別情報IDは出力部111bに送られ、出力部111bは識別情報IDを出力する(ステップS101)。
【0036】
識別情報IDは、鍵生成装置130(図4)の入力部131に入力され、写像部136に送られる。写像部136は、識別情報IDを巡回群G1へ写像した識別写像QID∈G1を生成する。識別情報IDから識別写像QIDへの写像は、例えば、非特許文献1の"Map To Point"アルゴリズムを用いて行う。生成された識別写像QIDは秘密鍵生成部137に送られる(ステップS102)。秘密鍵生成部137は、記憶部133からマスタ秘密鍵sを読み出し、秘密鍵
dID=s・QID∈G1 …(4)
を生成する(ステップS103)。秘密鍵dID(秘密情報)は出力部132に送られ、出力部132は秘密鍵dIDを出力する(ステップS104)。
【0037】
秘密鍵dIDは端末装置110(図2)の入力部111aに入力され、秘密分散部111hに送られる。秘密分散部111hは、秘密鍵dIDに対して
dID=Σk=1K share(k)∈G1 …(5)
を満たすK個のシェア情報share(k)∈G1 (k=1,...,K; K≧2)を生成する。例えば、秘密分散部111hは、巡回群G1からランダムにK-1個の元を選択してそれらをシェア情報share(1),...,share(K-1)とし、シェア情報share(1),...,share(K-1)を式(5)に代入してshare(K)を定める。シェア情報share(1),...,share(P) (p=1,...,P; K≧P≧1)はマスク値適用部111iに送られ、シェア情報share(P+1),...,share(K)は出力部111bに送られる。ただし、K=Pの場合には、シェア情報share(P+1),...,share(K)は出力部111bに送られない。なお、K及びPは予め定められた定数であり、その例はK=2, P=1である(ステップS105)。
【0038】
その後、制御部111fは、メモリ111eに格納されている秘密鍵dIDを削除する(ステップS106)。さらに出力部111bが、シェア情報share(P+1),...,share(K)を出力情報t(P+1)=share(P+1),...,t(K)=share(K)として出力する(ステップS107)。出力情報t(P+1),...,t(K)は、復号装置120(図3)の入力部121に入力され、記憶部123に格納される(ステップS108)。端末装置110(図2)の制御部111fは、メモリ111eに格納されている出力情報t(P+1),...,t(K)を削除する(ステップS109)。ただし、K=Pの場合にはステップS107からS109の処理は実行されない。
【0039】
次に、マスク値生成部111gがマスク値y(p)∈Zq* (p=1,...,P)を生成する。本形態のマスク値y(p)の例はランダムに選択されたZq*の元である。生成されたマスク値y(1),...,y(P)は記憶部111dに格納されるとともに、マスク値適用部111iに送られる(ステップS110)。マスク値適用部111iは、y(1)・share(1),...,y(P)・share(P)を生成し、それらを出力情報t(1)=y(1)・share(1),...,t(P)=y(P)・share(P)としてインタフェース部111cに送る。インタフェース部111cは出力情報t(1),...,t(P)を出力し、出力情報t(1),...,t(P)はインタフェース112bを介して記憶部112aに格納される(ステップS111)。
【0040】
<復号処理>
図6は、第1実施形態の復号処理を説明するためのフローチャートである。
【0041】
暗号化装置140は、IDベース暗号方式の暗号文(U,V)を出力する。ただし、U∈G2, V∈{0,1}nである。本形態の例では、予め定められたパラメータP∈G2と乱数r∈Zqとから得られたr・P∈G2がUとされ、{e(QID, s・P)}r∈GTを共通鍵Key'として共通鍵暗号方式に則って平文M'を暗号化した暗号文Enc(Key', M')がVとされる。
【0042】
U=r・P …(6)
Key'={e(QID, s・P)}r …(7)
V=Enc(Key', M') …(8)
ただし、Encはカメリア(登録商標)やDESや排他的論理和などの共通鍵暗号方式の暗号化関数である(ステップS121)。暗号文(U,V)は、復号装置120(図3)の入力部121に入力される。暗号文(U,V)の値Uは双線形写像演算部126に送られ、値Vは復号部127に送られる(ステップS122)。
【0043】
復号装置120は共通鍵の提供を端末装置111に依頼する。これを受けた端末装置111(図2)の制御部111fは、記憶部112aから出力情報t(1)=y(1)・share(1),...,t(P)=y(P)・share(P)を読み出し、出力情報t(1),...,t(P)は、インタフェース部112b及び111cを介して出力部111bに送られる。出力部111bは、これらを出力する(ステップS123)。
【0044】
出力情報t(1),...,t(P)は、復号装置120(図3)の入力部121に入力され、双線形写像演算部126に送られる。双線形写像演算部126は、出力情報t(p)(p=1,...P)と値Uとの組の双線形写像e(t(p), U)(p=1,...P)、及び、出力情報t(k')(k'=P+1,...K)と値Uとの組の双線形写像e(t(k'), U)(k'=P+1,...K)を生成する(ステップS124)。生成された双線形写像e(t(1), U),...,e(t(P), U), e(t(P+1), U),...,e(t(K), U)は出力部122に送られる。出力部122は、双線形写像e(t(1), U),...,e(t(P), U), e(t(P+1), U),...,e(t(K), U)を出力する(ステップS125)。
【0045】
双線形写像e(t(1), U),...,e(t(P), U), e(t(P+1), U),...,e(t(K), U)は、端末装置110(図2)の入力部111bに入力され、復元部111jに送られる。復元部111jは、記憶部111dからマスク値y(1),...,y(P)を読み出し、復元値
【0046】
【数2】
を生成する。前述の式(2)(5)の関係により、式(9)は以下のように変形できる。
【0047】
【数3】
すなわち、端末装置110は双線形写像の計算を行うことなく、秘密鍵dIDと値Uとの組の双線形写像e(dID, U)を得ることができる。なお、本形態の例では、式(2)(4)(6)(7)の関係から、式(10)は以下のように変形できる。
【0048】
e(dID, U)=e(s・QID, r・P)=e(QID, P)s・r=e(QID, s・P)r=Key' …(11)
すなわち、本形態では式(10)によって共通鍵Key'が復元される(ステップS126)。共通鍵である復元値Key=Key'は出力部111bに送られ、出力部111bは復元値Keyを出力する(ステップS127)。復元値Keyは、復号装置120(図3)の入力部121に入力され、復号部127に送られる。復号部127は、復元値Keyを共通鍵とし、共通鍵暗号方式に則って暗号文(U,V)が含む値Vを復号し、復号結果M'を出力する。
【0049】
M=Dec(Key,V) …(12)
なお、DecはEncに対応する共通鍵暗号方式の復号関数である。Key=Key'となるため、M=M'となる(ステップS128)。
【0050】
<本形態の特徴>
本形態では、端末装置110から復号装置120に出力情報t(1)=y(1)・share(1),...,t(P)=y(P)・share(P)及びt(P+1)=share(P+1),...,t(K)=share(K)が与えられる。しかしながら、復号装置120はマスク値y(1),...,y(P)を知らないため、出力情報t(1)=y(1)・share(1),...,t(P)=y(P)・share(P)からシェア情報share(1),...,share(P)を得ることができない。よって、復号装置120には秘密鍵dID(秘密情報)が漏洩しない。また、式(10)のように、端末装置110は双線形写像の計算を行うことなく、秘密鍵dID(秘密情報)と値Uとの組の双線形写像e(dID, U)を得ることができる。
【0051】
双線形写像が楕円曲線上のペアリングであり、K=2,P=1である場合における演算コストを以下に示す。なお、PCはペアリング演算を示し、EC_MULは楕円スカラー倍演算を示し、EX_FIELD_MULは拡大体乗算を示し、EX_FIELD_POWは拡大体べき乗を示す。また、従来法とは、復号装置及び端末装置でそれぞれe(share(1), U)及びe(share(2), U)を計算する方法である。
【0052】
【表1】
また、演算コストとしてPC=44、EC_MUL=27、EX_FIELD_MUL=0.025、EX_FIELD_POW=5とした場合、以下のように本形態の方法では端末装置を約28%高速化できる。
【0053】
【表2】
〔第2実施形態〕
次に、本形態の第2実施形態を説明する。
【0054】
本形態は第1実施形態の変形例であり、端末装置の可搬型記録媒体から出力される識別情報からマスク値が定まる形態である。以下では、第1実施形態との相違点を中心に説明を行う。
【0055】
<構成>
図1に例示するように、本形態の代理計算システム2は、端末装置210と復号装置120(代理計算装置)と鍵生成装置130と暗号化装置140とを有する。すなわち、第1実施形態の代理計算システム1の端末装置110が端末装置210に置換されたものが代理計算システム2である。以下では、相違点である端末装置210の構成のみを説明する。
【0056】
[端末装置の構成]
図7は、第2実施形態の端末装置210の機能構成を説明するための図である。以下では、第1実施形態と共通する部分については第1実施形態と同じ参照番号を用い、説明を省略する。
【0057】
図7に例示するように、本形態の端末装置210は、本体211と可搬型記録媒体112とを有する。本体211は、入力部111aと出力部111bとインタフェース部111cとメモリ111eと制御部111fとマスク値生成部211gと秘密分散部111hとマスク値適用部111iと復元部111jとを有する。
【0058】
端末装置210は、例えば、演算機能を備えた携帯型情報端末や携帯電話などの装置である。本体211は、CPU,RAM,ROMなどを備え、CPUに特別なプログラムが読み込まれることによって構成される。可搬型記録媒体112は本体211に脱着可能である。
【0059】
<処理>
次に、第2実施形態の処理について説明する。
【0060】
[事前処理]
第1実施形態と同じである。
【0061】
[登録処理]
図8は、第2実施形態の登録処理を説明するためのフローチャートである。
【0062】
まず、端末装置210と鍵生成装置130と復号装置120との間で、第1実施形態で説明したステップS101からS109の処理が実行される。
【0063】
次に、端末装置210(図7)の記憶部112aから識別情報IDが読み出され、インタフェース112bは識別情報IDを出力する。識別情報IDはインタフェース111cに入力されてマスク値生成部211gに送られる。マスク値生成部211gは、予め定められた規則に従って識別情報IDから定まるマスク値y(p)∈Zq*(p=1,...,P)を生成する。例えば、y(p)=IDとしてもよいし、IDとPとのビット結合値をy(p)=ID|Pとしてもよい。生成されたマスク値y(1),...,y(P)はマスク値適用部111iに送られる(ステップS210)。マスク値適用部111iは、y(1)・share(1),...,y(P)・share(P)を生成し、それらを出力情報t(1)=y(1)・share(1),...,t(P)=y(P)・share(P)としてインタフェース部111cに送る。インタフェース部111cは出力情報t(1),...,t(P)を出力し、出力情報t(1),...,t(P)はインタフェース112bを介して記憶部112aに格納される(ステップS111)。その後、端末装置210(図7)の制御部111fは、メモリ111eのマスク値y(1),...,y(P)を削除する(ステップS212)。
【0064】
<復号処理>
図9は、第1実施形態の復号処理を説明するためのフローチャートである。
【0065】
まず、端末装置210と復号装置120と暗号化装置140との間で、第1実施形態で説明したステップS121からS125の処理が実行される。
【0066】
ステップS125で復号装置120(図3)から出力された双線形写像e(t(1), U),...,e(t(P), U), e(t(P+1), U),...,e(t(K), U)は、端末装置210(図7)の入力部111bに入力され、復元部111jに送られる。これを契機に、端末装置210の記憶部112aから識別情報IDが読み出され、インタフェース112bは識別情報IDを出力する。識別情報IDはインタフェース111cに入力されてマスク値生成部211gに送られる。マスク値生成部211gは、ステップS210と同じ規則に従って識別情報IDから定まるマスク値y(p)∈Zq*(p=1,...,P)を生成する(ステップS216)。識別情報IDが変化しないのであれば、ステップS210で生成されるマスク値y(p)とステップS216で生成されるマスク値y(p)とは同一である。マスク値y(p)∈Zq* (p=1,...,P)は復元部111jに入力される。復元部111jは、式(9)に従って復元値Keyを生成する(ステップS126)。その後、第1実施形態で説明したステップS127及びS128の処理が実行される。
【0067】
<本形態の特徴>
本形態でも復号装置120に秘密鍵dID(秘密情報)を漏洩せず、なおかつ、端末装置210が双線形写像の計算を行わずに端末装置210が秘密鍵dID(秘密情報)と値Uとの組の双線形写像e(dID, U)を得ることができる。
【0068】
さらに、本形態の端末装置210は、登録処理の終了前に端末装置210内のマスク値y(p)∈Zq*を削除する。そのため、登録処理の後、本体211から可搬型記録媒体112が取り外され、本体211のみが第三者に渡ったような場合であっても、本体211内にはマスク値y(p)∈Zq*が残っていないため、当該第三者や当該第三者と結託した復号装置120が秘密鍵dIDに関する情報を得ることはできない。そのため、より高い安全性を確保できる。
【0069】
〔その他の変形例等〕
本発明は上述の実施の形態に限定されるものではない。例えば、本形態ではIDベース暗号方法式中で使用される双線形写像を計算するために本発明を用いる例を説明したが、述語暗号方式、関数暗号方式、その他の双線形写像を計算する処理に本発明を適用してもよい。
【0070】
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0071】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0072】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0073】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0074】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0075】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【0076】
1,2 代理計算システム
110,210 端末装置
120 復号装置
130 鍵生成装置
140 暗号化装置
【技術分野】
【0001】
本発明は、双線形写像を計算する技術に関する。
【背景技術】
【0002】
携帯電話などの演算機能を備えた携帯型の端末装置に装着されたICチップにIDベース暗号方式(例えば、非特許文献1等参照)の秘密鍵を格納しておき、リーダ装置を備えたパーソナルコンピュータなどの復号装置が当該ICチップから秘密鍵を読み込み、それを用いて暗号文を復号するシステムを想定する。このようなシステムは、端末装置の所持の有無によって暗号文の復号可否が決まる一種の認証システムである。しかしながら、このシステムでは秘密鍵自体が復号装置に送られるため、秘密鍵が漏洩するリスクがある。また、端末装置自体を紛失した場合には、端末装置から秘密鍵が漏洩するリスクもある。
【0003】
このようなリスクを低減する方法として、IDベース暗号方式の秘密鍵を秘密分散してシェア情報を生成し、それらを端末装置と復号装置とに分散して格納しておく方法がある。この方法では、暗号文の復号時に、端末装置と復号装置とがそれぞれ自らが格納するシェア情報を用いてペアリングなどの双線形写像の演算を行い、それらの演算結果を用いて秘密鍵に対する双線形写像を求めて暗号文を復号する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】D.Boneh, M. Franklin, "Identity based encryption from the Weil pairing," Crypto 2001, Lecture Notes in Computer Science, Vol. 2139, Springer-Verlag, pp.213-229, 2001.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、一般に双線形写像を求めるための演算量は大きく、端末装置の演算能力が低かった場合には復号処理に支障が生じる。また、端末装置よりも演算能力の高い復号装置にすべてのシェア情報を渡したのでは、復号装置はシェア情報から秘密鍵を復元できるため、秘密鍵が漏洩するリスクがある。このような問題は、IDベース暗号方式の秘密鍵を用いて復号を行う場合だけではなく、秘密情報に対する双線形写像を求める必要がある場合に共通するものである。
【0006】
本発明はこのような点に鑑みてなされたものであり、端末装置外部への秘密情報の漏洩を抑制しつつ、端末装置が双線形写像の演算を行うことなく当該秘密情報に対する双線形写像を得ることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
端末装置は、秘密情報dIDに対してdID=Σk=1K share (k)を満たすK個のシェア情報share(k) (k=1,...,K; K≧2)を生成し、マスク値y(p) (p=1,...,P; K≧P≧1)を生成し、(t(1),...,t(P), t(P+1),...,t(K))=(y(1)・share(1),...,y(P)・share(P), share(P+1),...,share(K))を満たす出力情報t(k) (k=1,...,K)を出力する。代理計算装置は、出力情報t(k)と値Uとの組の双線形写像e(t(k), U)を生成し、双線形写像e(t(k), U)を出力する。端末装置は、復元値
【0008】
【数1】
を生成する。
【発明の効果】
【0009】
復元値Keyは秘密情報dIDと値Uとの組に対する双線形写像e(dID, U)と等しい。このように、本発明では、端末装置外部への秘密情報の漏洩を抑制しつつ、端末装置が双線形写像の演算を行うことなく当該秘密情報に対する双線形写像を得ることができる。
【図面の簡単な説明】
【0010】
【図1】図1は、実施形態の代理計算システムの全体構成を説明するための図である。
【図2】図2は、第1実施形態の端末装置の機能構成を説明するための図である。
【図3】図3は、第1実施形態の復号装置の機能構成を説明するための図である。
【図4】図4は、第1実施形態の鍵生成号装置の機能構成を説明するための図である。
【図5】図5は、第1実施形態の登録処理を説明するためのフローチャートである。
【図6】図6は、第1実施形態の復号処理を説明するためのフローチャートである。
【図7】図7は、第2実施形態の端末装置の機能構成を説明するための図である。
【図8】図8は、第2実施形態の登録処理を説明するためのフローチャートである。
【図9】図9は、第2実施形態の復号処理を説明するためのフローチャートである。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施形態を説明する。
【0012】
〔定義〕
まず、各実施形態で使用する用語を定義する。
【0013】
{0,1}*:{0,1}*は任意ビット長のバイナリ系列を表す。その一例は、整数0及び1からなる系列である。
{0,1}n:{0,1}nはnビット(n≧1)のバイナリ系列を表す。その一例は、整数0及び1からなる系列である。
Zq:Zqは位数qのqを法とする剰余環(Z/qZ)表す。位数qは1以上の整数である。Zq*の例は0以上q-1以下の整数集合である。
Zq*:Zq*は位数qのqを法とする既約剰余類(Z/qZ)*表す。Zq*の例は1以上q-1以下の整数集合である。
Fq:Fqは位数qの有限体を表す。
E:Eは有限体Fq上で定義された楕円曲線を表す。Eはアフィン(affine)座標版のWeierstrass方程式
y2+a1・x・y+a3・y=x3+a2・x2+a4・x+a6 …(1)
(ただし、a1,a2,a3,a4,a6∈Fq)を満たすx,y∈Fqからなる点(x,y)の集合に無限遠点と呼ばれる特別な点Oを付加したもので定義される。楕円曲線E上の任意の2点に対して楕円加算と呼ばれる二項演算+及び楕円曲線E上の任意の1点に対して楕円逆元と呼ばれる単項演算−がそれぞれ定義できる。また、楕円曲線E上の有理点からなる有限集合が楕円加算に関して群をなすこと、楕円加算を用いて楕円スカラー倍算と呼ばれる演算が定義できること、及びコンピュータ上での楕円加算などの楕円演算の具体的な演算方法はよく知られている(例えば、参考文献1「RFC 5091: Identity-Based Cryptography Standard (IBCS) #1: Supersingular Curve Implementations of the BF and BB1 Cryptosystems」、参考文献2「イアン・F・ブラケ、ガディエル・セロッシ、ナイジェル・P・スマート=著、「楕円曲線暗号」、出版=ピアソン・エデュケーション、ISBN4-89471-431-0」等参照)。
【0014】
G1, G2,GT:G1, G2, GTは位数qの巡回群を表す。巡回群G1, G2の具体例は、楕円曲線Eのq等分点からなる有限集合E[q]やその部分群である。G1=G2であってもよいしG1≠G2であってもよい。また、巡回群GTの具体例は、有限体Fqを基礎体とする拡大体を構成する有限集合である。その一例は、有限体Fqの代数閉包における1のq乗根からなる有限集合である。
【0015】
なお、本形態では、巡回群G1, G2上で定義された演算を加法的に表現し、巡回群GT上で定義された演算を乗法的に表現する。すなわち、χ∈Zq及びΩ∈G1に対するχ・Ω∈G1は、Ω∈G1に対して巡回群G1で定義された演算をχ回施すことを意味し、Ω1, Ω2∈G1に対するΩ1+Ω2∈G1は、Ω1∈G1とΩ2∈G1とを被演算子として巡回群G1で定義された演算を行うことを意味する。同様に、χ∈Fq及びΩ∈G2に対するχ・Ω∈G2は、Ω∈G2に対して巡回群G2で定義された演算をχ回施すことを意味し、Ω1, Ω2∈G2に対するΩ1+Ω2∈G2は、Ω1∈G2とΩ2∈G2とを被演算子として巡回群G2で定義された演算を行うことを意味する。一方、χ∈Zq及びΩ∈GTに対するΩχ∈GTは、Ω∈GTに対して巡回群GTで定義された演算をχ回施すことを意味し、Ω1,Ω2∈GTに対するΩ1・Ω2∈GTは、Ω1∈GTとΩ2∈GTとを被演算子として巡回群GTで定義された演算を行うことを意味する。
【0016】
e:eは双線形写像を表す。双線形写像eは巡回群G1の1個の元と巡回群G2の1個の元との組を入力とし、巡回群GTの1個の元を出力する。双線形写像eは以下の性質を満たす。
【0017】
[双線形性]すべてのΩ1∈G1,Ω2∈G2及びν,κ∈Zqについて以下の関係を満たす。
e(ν・Ω1,κ・Ω2)=e(Ω1,Ω2)ν・κ …(2)
[非退化性]eはすべての
Ω1∈G1,Ω2∈G2 …(3)
を巡回群GTの単位元に写すものではない。
[計算可能性]あらゆるΩ1∈G1,Ω2∈G2についてe(Ω1,Ω2)を効率的に計算するアルゴリズムが存在する。
【0018】
なお、双線形写像の具体例は、WeilペアリングやTateペアリングなどのペアリング演算を行うための関数である(例えば、参考文献3「Alfred. J. Menezes,ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS, KLUWER ACADEMIC PUBLISHERS, ISBN0-7923-9368-6,pp. 61-81」等参照)。また、楕円曲線Eの種類に応じ、Tateペアリングなどのペアリング演算を行うための関数と所定の関数phiを組み合わせた変更ペアリング関数e(Ω1,phi(Ω2))(Ω1∈G1,Ω2∈G2)を双線形関数Pairとして用いてもよい(例えば、参考文献1等参照)。また、ペアリング演算をコンピュータ上で行うためのアルゴリズムとしては、周知のMiller のアルゴリズム(参考文献4「V. S. Miller, “Short Programs for functions on Curves,”1986,インターネット<http://crypto.stanford.edu/miller/miller.pdf>」などが存在する。
【0019】
〔第1実施形態〕
本発明の第1実施形態を説明する。
【0020】
<構成>
図1は、実施形態の代理計算システムの全体構成を説明するための図である。
【0021】
図1に例示するように、本形態の代理計算システム1は、端末装置110と復号装置120(代理計算装置)と鍵生成装置130と暗号化装置140とを有する。代理計算システム1では、端末装置110と鍵生成装置130との間の情報の受け渡しが可能であり、端末装置110と復号装置120との間の情報の受け渡しが可能であり、暗号化装置140から復号装置120への情報の提供が可能である。代理計算システム1は、無線通信、有線通信、ネットワークなどを介してこれらの情報の受け渡しや提供が可能なように構成されてもよいし、ICチップなどの可搬型記録媒体を介してこれらの情報の受け渡しや提供が可能なように構成されてもよい。
【0022】
[端末装置の構成]
図2は、第1実施形態の端末装置110の機能構成を説明するための図である。
【0023】
図2に例示するように、本形態の端末装置110は、本体111と可搬型記録媒体112とを有する。本体111は、入力部111aと出力部111bとインタフェース部111cと記憶部111dとメモリ111eと制御部111fとマスク値生成部111gと秘密分散部111hとマスク値適用部111iと復元部111jとを有する。可搬型記録媒体112は、本体111に装着可能に構成され、記憶部112aとインタフェース部112bとを有する。なお、図示表記の都合上、図2では複数の入力部111aや出力部111bを表記しているが、これは入力部111aや出力部111bの個数を限定するものではない。
【0024】
端末装置110は、例えば、演算機能を備えた携帯型情報端末や携帯電話などの装置である。本体111は、CPU(central processing unit),RAM(random-access memory),ROM(read-only memory)などを備え、CPUに特別なプログラムが読み込まれることによって構成される。入力部111aや出力部111bは、例えば、外部装置と通信するための通信装置である。インタフェース部111cは、例えば、可搬型記録媒体112と通信するための通信装置や入出力ポートなどである。記憶部111dやメモリ111eは、例えば、ハードディスク装置、RAM、キャッシュメモリ、レジスタ、又は、これらの少なくともを結合した記憶領域である。制御部111fやマスク値生成部111gや秘密分散部111hやマスク値適用部111iや復元部111jは、例えば、CPUが特別なプログラムを実行することで構成される処理部や集積回路によって構成される処理部である。本体111は、記憶部111dの制御のもと各処理を実行する。また、以下では説明を省略するが、本体111の入力部111aに入力された情報や各処理部から出力される情報は逐一メモリ111eに格納され、必要に応じて読み出される。
【0025】
可搬型記録媒体112は、例えば、FOMA(登録商標)チップなどのICチップやUSBメモリなどである。記憶部112aは、例えば、RAM、キャッシュメモリ、レジスタ、又は、これらの少なくともを結合した記憶領域である。インタフェース部112bは、本体111と通信するための通信装置である。
【0026】
[復号装置(代理計算装置)の構成]
図3は、第1実施形態の復号装置120の機能構成を説明するための図である。
【0027】
図3に例示するように、本形態の復号装置120は、入力部121と出力部122と記憶部123とメモリ124と制御部125と双線形写像演算部126と復号部127とを有する。復号装置120は、例えば、CPU,RAM,ROMなどを備えた公知又は専用のコンピュータに特別なプログラムが読み込まれて構成される装置である。入力部121や出力部122は、例えば、外部装置と通信するための通信装置である。記憶部123やメモリ124は、例えば、ハードディスク装置、RAM、キャッシュメモリ、レジスタ、又は、これらの少なくともを結合した記憶領域である。制御部125や双線形写像演算部126や復号部127は、例えば、CPUが特別なプログラムを実行することで構成される処理部や集積回路によって構成される処理部である。復号装置120は、例えば、制御部125の制御のもと各処理を実行する。また、以下では説明を省略するが、復号装置120の入力部121に入力された情報や各処理部から出力される情報は逐一メモリ124に格納され、必要に応じて読み出される。
【0028】
[鍵生成号装置の構成]
図4は、第1実施形態の鍵生成号装置130の機能構成を説明するための図である。
【0029】
図4に例示するように、鍵生成号装置130は、例えば、入力部131と出力部132と記憶部133とメモリ134と制御部135と写像部136と秘密鍵生成部137とを有する。鍵生成号装置130は、例えば、CPU,RAM,ROMなどを備えた公知又は専用のコンピュータに特別なプログラムが読み込まれて構成される装置である。例えば、入力部131や出力部132は外部装置と通信するための通信装置である。記憶部133やメモリ134は、例えば、ハードディスク装置、RAM、キャッシュメモリ、レジスタ、又は、これらの少なくともを結合した記憶領域である。制御部135や写像部136や秘密鍵生成部137は、例えば、CPUが特別なプログラムを実行することで構成される処理部や集積回路によって構成される処理部である。鍵生成号装置130は、制御部135の制御のもと各処理を実行する。また、以下では説明を省略するが、鍵生成号装置130の入力部131に入力された情報や各処理部から出力される情報は逐一メモリ134に格納され、必要に応じて読み出される。
【0030】
[暗号化装置の構成]
本形態の暗号化装置14は、CPU,RAM,ROMなどを備えた公知又は専用のコンピュータに特別なプログラムが読み込まれて構成される装置である。
【0031】
<処理>
次に、第1実施形態の処理について説明する。
【0032】
[事前処理]
事前処理として、鍵生成装置130(図4)の記憶部133にIDベース暗号方式のマスタ秘密鍵s∈Zq*が格納されている。また、端末装置110のユーザを識別する識別情報ID∈{0,1}*が端末装置110(図2)の可搬型記録媒体112の記憶部112aに格納されている。識別情報IDの例は、FOMA IDなどである。
【0033】
[登録処理]
図5は、第1実施形態の登録処理を説明するためのフローチャートである。
【0034】
登録処理では、識別情報IDに対応する秘密鍵dIDが生成され、それが秘密分散されてシェア情報の一部が復号装置120に格納される。以下、図5を用いて本形態の登録処理を説明する。
【0035】
まず、端末装置110(図2)の可搬型記録媒体112の記憶部112aから識別情報IDが読み出され、インタフェース112b,112cを介して本体111に送られる。識別情報IDは出力部111bに送られ、出力部111bは識別情報IDを出力する(ステップS101)。
【0036】
識別情報IDは、鍵生成装置130(図4)の入力部131に入力され、写像部136に送られる。写像部136は、識別情報IDを巡回群G1へ写像した識別写像QID∈G1を生成する。識別情報IDから識別写像QIDへの写像は、例えば、非特許文献1の"Map To Point"アルゴリズムを用いて行う。生成された識別写像QIDは秘密鍵生成部137に送られる(ステップS102)。秘密鍵生成部137は、記憶部133からマスタ秘密鍵sを読み出し、秘密鍵
dID=s・QID∈G1 …(4)
を生成する(ステップS103)。秘密鍵dID(秘密情報)は出力部132に送られ、出力部132は秘密鍵dIDを出力する(ステップS104)。
【0037】
秘密鍵dIDは端末装置110(図2)の入力部111aに入力され、秘密分散部111hに送られる。秘密分散部111hは、秘密鍵dIDに対して
dID=Σk=1K share(k)∈G1 …(5)
を満たすK個のシェア情報share(k)∈G1 (k=1,...,K; K≧2)を生成する。例えば、秘密分散部111hは、巡回群G1からランダムにK-1個の元を選択してそれらをシェア情報share(1),...,share(K-1)とし、シェア情報share(1),...,share(K-1)を式(5)に代入してshare(K)を定める。シェア情報share(1),...,share(P) (p=1,...,P; K≧P≧1)はマスク値適用部111iに送られ、シェア情報share(P+1),...,share(K)は出力部111bに送られる。ただし、K=Pの場合には、シェア情報share(P+1),...,share(K)は出力部111bに送られない。なお、K及びPは予め定められた定数であり、その例はK=2, P=1である(ステップS105)。
【0038】
その後、制御部111fは、メモリ111eに格納されている秘密鍵dIDを削除する(ステップS106)。さらに出力部111bが、シェア情報share(P+1),...,share(K)を出力情報t(P+1)=share(P+1),...,t(K)=share(K)として出力する(ステップS107)。出力情報t(P+1),...,t(K)は、復号装置120(図3)の入力部121に入力され、記憶部123に格納される(ステップS108)。端末装置110(図2)の制御部111fは、メモリ111eに格納されている出力情報t(P+1),...,t(K)を削除する(ステップS109)。ただし、K=Pの場合にはステップS107からS109の処理は実行されない。
【0039】
次に、マスク値生成部111gがマスク値y(p)∈Zq* (p=1,...,P)を生成する。本形態のマスク値y(p)の例はランダムに選択されたZq*の元である。生成されたマスク値y(1),...,y(P)は記憶部111dに格納されるとともに、マスク値適用部111iに送られる(ステップS110)。マスク値適用部111iは、y(1)・share(1),...,y(P)・share(P)を生成し、それらを出力情報t(1)=y(1)・share(1),...,t(P)=y(P)・share(P)としてインタフェース部111cに送る。インタフェース部111cは出力情報t(1),...,t(P)を出力し、出力情報t(1),...,t(P)はインタフェース112bを介して記憶部112aに格納される(ステップS111)。
【0040】
<復号処理>
図6は、第1実施形態の復号処理を説明するためのフローチャートである。
【0041】
暗号化装置140は、IDベース暗号方式の暗号文(U,V)を出力する。ただし、U∈G2, V∈{0,1}nである。本形態の例では、予め定められたパラメータP∈G2と乱数r∈Zqとから得られたr・P∈G2がUとされ、{e(QID, s・P)}r∈GTを共通鍵Key'として共通鍵暗号方式に則って平文M'を暗号化した暗号文Enc(Key', M')がVとされる。
【0042】
U=r・P …(6)
Key'={e(QID, s・P)}r …(7)
V=Enc(Key', M') …(8)
ただし、Encはカメリア(登録商標)やDESや排他的論理和などの共通鍵暗号方式の暗号化関数である(ステップS121)。暗号文(U,V)は、復号装置120(図3)の入力部121に入力される。暗号文(U,V)の値Uは双線形写像演算部126に送られ、値Vは復号部127に送られる(ステップS122)。
【0043】
復号装置120は共通鍵の提供を端末装置111に依頼する。これを受けた端末装置111(図2)の制御部111fは、記憶部112aから出力情報t(1)=y(1)・share(1),...,t(P)=y(P)・share(P)を読み出し、出力情報t(1),...,t(P)は、インタフェース部112b及び111cを介して出力部111bに送られる。出力部111bは、これらを出力する(ステップS123)。
【0044】
出力情報t(1),...,t(P)は、復号装置120(図3)の入力部121に入力され、双線形写像演算部126に送られる。双線形写像演算部126は、出力情報t(p)(p=1,...P)と値Uとの組の双線形写像e(t(p), U)(p=1,...P)、及び、出力情報t(k')(k'=P+1,...K)と値Uとの組の双線形写像e(t(k'), U)(k'=P+1,...K)を生成する(ステップS124)。生成された双線形写像e(t(1), U),...,e(t(P), U), e(t(P+1), U),...,e(t(K), U)は出力部122に送られる。出力部122は、双線形写像e(t(1), U),...,e(t(P), U), e(t(P+1), U),...,e(t(K), U)を出力する(ステップS125)。
【0045】
双線形写像e(t(1), U),...,e(t(P), U), e(t(P+1), U),...,e(t(K), U)は、端末装置110(図2)の入力部111bに入力され、復元部111jに送られる。復元部111jは、記憶部111dからマスク値y(1),...,y(P)を読み出し、復元値
【0046】
【数2】
を生成する。前述の式(2)(5)の関係により、式(9)は以下のように変形できる。
【0047】
【数3】
すなわち、端末装置110は双線形写像の計算を行うことなく、秘密鍵dIDと値Uとの組の双線形写像e(dID, U)を得ることができる。なお、本形態の例では、式(2)(4)(6)(7)の関係から、式(10)は以下のように変形できる。
【0048】
e(dID, U)=e(s・QID, r・P)=e(QID, P)s・r=e(QID, s・P)r=Key' …(11)
すなわち、本形態では式(10)によって共通鍵Key'が復元される(ステップS126)。共通鍵である復元値Key=Key'は出力部111bに送られ、出力部111bは復元値Keyを出力する(ステップS127)。復元値Keyは、復号装置120(図3)の入力部121に入力され、復号部127に送られる。復号部127は、復元値Keyを共通鍵とし、共通鍵暗号方式に則って暗号文(U,V)が含む値Vを復号し、復号結果M'を出力する。
【0049】
M=Dec(Key,V) …(12)
なお、DecはEncに対応する共通鍵暗号方式の復号関数である。Key=Key'となるため、M=M'となる(ステップS128)。
【0050】
<本形態の特徴>
本形態では、端末装置110から復号装置120に出力情報t(1)=y(1)・share(1),...,t(P)=y(P)・share(P)及びt(P+1)=share(P+1),...,t(K)=share(K)が与えられる。しかしながら、復号装置120はマスク値y(1),...,y(P)を知らないため、出力情報t(1)=y(1)・share(1),...,t(P)=y(P)・share(P)からシェア情報share(1),...,share(P)を得ることができない。よって、復号装置120には秘密鍵dID(秘密情報)が漏洩しない。また、式(10)のように、端末装置110は双線形写像の計算を行うことなく、秘密鍵dID(秘密情報)と値Uとの組の双線形写像e(dID, U)を得ることができる。
【0051】
双線形写像が楕円曲線上のペアリングであり、K=2,P=1である場合における演算コストを以下に示す。なお、PCはペアリング演算を示し、EC_MULは楕円スカラー倍演算を示し、EX_FIELD_MULは拡大体乗算を示し、EX_FIELD_POWは拡大体べき乗を示す。また、従来法とは、復号装置及び端末装置でそれぞれe(share(1), U)及びe(share(2), U)を計算する方法である。
【0052】
【表1】
また、演算コストとしてPC=44、EC_MUL=27、EX_FIELD_MUL=0.025、EX_FIELD_POW=5とした場合、以下のように本形態の方法では端末装置を約28%高速化できる。
【0053】
【表2】
〔第2実施形態〕
次に、本形態の第2実施形態を説明する。
【0054】
本形態は第1実施形態の変形例であり、端末装置の可搬型記録媒体から出力される識別情報からマスク値が定まる形態である。以下では、第1実施形態との相違点を中心に説明を行う。
【0055】
<構成>
図1に例示するように、本形態の代理計算システム2は、端末装置210と復号装置120(代理計算装置)と鍵生成装置130と暗号化装置140とを有する。すなわち、第1実施形態の代理計算システム1の端末装置110が端末装置210に置換されたものが代理計算システム2である。以下では、相違点である端末装置210の構成のみを説明する。
【0056】
[端末装置の構成]
図7は、第2実施形態の端末装置210の機能構成を説明するための図である。以下では、第1実施形態と共通する部分については第1実施形態と同じ参照番号を用い、説明を省略する。
【0057】
図7に例示するように、本形態の端末装置210は、本体211と可搬型記録媒体112とを有する。本体211は、入力部111aと出力部111bとインタフェース部111cとメモリ111eと制御部111fとマスク値生成部211gと秘密分散部111hとマスク値適用部111iと復元部111jとを有する。
【0058】
端末装置210は、例えば、演算機能を備えた携帯型情報端末や携帯電話などの装置である。本体211は、CPU,RAM,ROMなどを備え、CPUに特別なプログラムが読み込まれることによって構成される。可搬型記録媒体112は本体211に脱着可能である。
【0059】
<処理>
次に、第2実施形態の処理について説明する。
【0060】
[事前処理]
第1実施形態と同じである。
【0061】
[登録処理]
図8は、第2実施形態の登録処理を説明するためのフローチャートである。
【0062】
まず、端末装置210と鍵生成装置130と復号装置120との間で、第1実施形態で説明したステップS101からS109の処理が実行される。
【0063】
次に、端末装置210(図7)の記憶部112aから識別情報IDが読み出され、インタフェース112bは識別情報IDを出力する。識別情報IDはインタフェース111cに入力されてマスク値生成部211gに送られる。マスク値生成部211gは、予め定められた規則に従って識別情報IDから定まるマスク値y(p)∈Zq*(p=1,...,P)を生成する。例えば、y(p)=IDとしてもよいし、IDとPとのビット結合値をy(p)=ID|Pとしてもよい。生成されたマスク値y(1),...,y(P)はマスク値適用部111iに送られる(ステップS210)。マスク値適用部111iは、y(1)・share(1),...,y(P)・share(P)を生成し、それらを出力情報t(1)=y(1)・share(1),...,t(P)=y(P)・share(P)としてインタフェース部111cに送る。インタフェース部111cは出力情報t(1),...,t(P)を出力し、出力情報t(1),...,t(P)はインタフェース112bを介して記憶部112aに格納される(ステップS111)。その後、端末装置210(図7)の制御部111fは、メモリ111eのマスク値y(1),...,y(P)を削除する(ステップS212)。
【0064】
<復号処理>
図9は、第1実施形態の復号処理を説明するためのフローチャートである。
【0065】
まず、端末装置210と復号装置120と暗号化装置140との間で、第1実施形態で説明したステップS121からS125の処理が実行される。
【0066】
ステップS125で復号装置120(図3)から出力された双線形写像e(t(1), U),...,e(t(P), U), e(t(P+1), U),...,e(t(K), U)は、端末装置210(図7)の入力部111bに入力され、復元部111jに送られる。これを契機に、端末装置210の記憶部112aから識別情報IDが読み出され、インタフェース112bは識別情報IDを出力する。識別情報IDはインタフェース111cに入力されてマスク値生成部211gに送られる。マスク値生成部211gは、ステップS210と同じ規則に従って識別情報IDから定まるマスク値y(p)∈Zq*(p=1,...,P)を生成する(ステップS216)。識別情報IDが変化しないのであれば、ステップS210で生成されるマスク値y(p)とステップS216で生成されるマスク値y(p)とは同一である。マスク値y(p)∈Zq* (p=1,...,P)は復元部111jに入力される。復元部111jは、式(9)に従って復元値Keyを生成する(ステップS126)。その後、第1実施形態で説明したステップS127及びS128の処理が実行される。
【0067】
<本形態の特徴>
本形態でも復号装置120に秘密鍵dID(秘密情報)を漏洩せず、なおかつ、端末装置210が双線形写像の計算を行わずに端末装置210が秘密鍵dID(秘密情報)と値Uとの組の双線形写像e(dID, U)を得ることができる。
【0068】
さらに、本形態の端末装置210は、登録処理の終了前に端末装置210内のマスク値y(p)∈Zq*を削除する。そのため、登録処理の後、本体211から可搬型記録媒体112が取り外され、本体211のみが第三者に渡ったような場合であっても、本体211内にはマスク値y(p)∈Zq*が残っていないため、当該第三者や当該第三者と結託した復号装置120が秘密鍵dIDに関する情報を得ることはできない。そのため、より高い安全性を確保できる。
【0069】
〔その他の変形例等〕
本発明は上述の実施の形態に限定されるものではない。例えば、本形態ではIDベース暗号方法式中で使用される双線形写像を計算するために本発明を用いる例を説明したが、述語暗号方式、関数暗号方式、その他の双線形写像を計算する処理に本発明を適用してもよい。
【0070】
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0071】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0072】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0073】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0074】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0075】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【0076】
1,2 代理計算システム
110,210 端末装置
120 復号装置
130 鍵生成装置
140 暗号化装置
【特許請求の範囲】
【請求項1】
秘密情報dIDに対してdID=Σk=1K share(k)を満たすK個のシェア情報share(k) (k=1,...,K; K≧2)を生成する秘密分散部と、マスク値y(p) (p=1,...,P; K≧P≧1)を生成するマスク値生成部と、(t(1),...,t(P), t(P+1),...,t(K))=(y(1)・share(1),...,y(P)・share(P), share(P+1),...,share(K))を満たす出力情報t(k) (k=1,...,K)を出力する第1出力部と、を含む端末装置と、
前記出力情報t(k)と値Uとの組の双線形写像e(t(k), U)を生成する双線形写像演算部と、前記双線形写像e(t(k), U)を出力する第2出力部と、を含む代理計算装置と、を有し、
前記端末装置は、復元値
【数4】
を生成する復元部をさらに有する、代理計算システム。
【請求項2】
請求項1の代理計算システムであって、
前記端末装置は、識別情報を出力する脱着可能な可搬型記録媒体を含み、
前記マスク値y(p)は、前記識別情報に対して定まる、
ことを特徴とする代理計算システム。
【請求項3】
秘密情報dIDに対してdID=Σk=1K share(k)を満たすK個のシェア情報share(k) (k=1,...,K; K≧2)を生成する秘密分散部と、
マスク値y(p) (p=1,...,P; K≧P≧1)を生成するマスク値生成部と、
(t(1),...,t(P), t(P+1),...,t(K))=(y(1)・share(1),...,y(P)・share(P), share(P+1),...,share(K))を満たす出力情報t(k) (k=1,...,K)を出力する第1出力部と、
出力情報t(k)と値Uとの組の双線形写像e(t(k), U)を用い、復元値
【数5】
を生成する復元部と、
を有する端末装置。
【請求項4】
請求項3の端末装置であって、
識別情報を出力する脱着可能な可搬型記録媒体をさらに有し、
前記マスク値y(p)は、前記識別情報に対して定まる、
ことを特徴とする端末装置。
【請求項5】
請求項1又は2の代理計算システムが有する代理計算装置。
【請求項6】
端末装置において秘密情報dIDに対してdID=Σk=1K share(k)を満たすK個のシェア情報share(k) (k=1,...,K; K≧2)を生成するステップと、
前記端末装置においてマスク値y(p) (p=1,...,P; K≧P≧1)を生成するステップと、
前記端末装置において(t(1),...,t(P), t(P+1),...,t(K))=(y(1)・share(1),...,y(P)・share(P), share(P+1),...,share(K))を満たす出力情報t(k) (k=1,...,K)を出力するステップと、
代理計算装置において前記出力情報t(k)と値Uとの組の双線形写像e(t(k), U)を生成するステップと、
前記代理計算装置において前記双線形写像e(t(k), U)を出力するステップと、
前記端末装置において復元値
【数6】
を生成するステップと、
を有する代理計算方法。
【請求項7】
請求項3又は4の端末装置としてコンピュータを機能させるためのプログラム。
【請求項8】
請求項5の代理計算装置としてコンピュータを機能させるためのプログラム。
【請求項1】
秘密情報dIDに対してdID=Σk=1K share(k)を満たすK個のシェア情報share(k) (k=1,...,K; K≧2)を生成する秘密分散部と、マスク値y(p) (p=1,...,P; K≧P≧1)を生成するマスク値生成部と、(t(1),...,t(P), t(P+1),...,t(K))=(y(1)・share(1),...,y(P)・share(P), share(P+1),...,share(K))を満たす出力情報t(k) (k=1,...,K)を出力する第1出力部と、を含む端末装置と、
前記出力情報t(k)と値Uとの組の双線形写像e(t(k), U)を生成する双線形写像演算部と、前記双線形写像e(t(k), U)を出力する第2出力部と、を含む代理計算装置と、を有し、
前記端末装置は、復元値
【数4】
を生成する復元部をさらに有する、代理計算システム。
【請求項2】
請求項1の代理計算システムであって、
前記端末装置は、識別情報を出力する脱着可能な可搬型記録媒体を含み、
前記マスク値y(p)は、前記識別情報に対して定まる、
ことを特徴とする代理計算システム。
【請求項3】
秘密情報dIDに対してdID=Σk=1K share(k)を満たすK個のシェア情報share(k) (k=1,...,K; K≧2)を生成する秘密分散部と、
マスク値y(p) (p=1,...,P; K≧P≧1)を生成するマスク値生成部と、
(t(1),...,t(P), t(P+1),...,t(K))=(y(1)・share(1),...,y(P)・share(P), share(P+1),...,share(K))を満たす出力情報t(k) (k=1,...,K)を出力する第1出力部と、
出力情報t(k)と値Uとの組の双線形写像e(t(k), U)を用い、復元値
【数5】
を生成する復元部と、
を有する端末装置。
【請求項4】
請求項3の端末装置であって、
識別情報を出力する脱着可能な可搬型記録媒体をさらに有し、
前記マスク値y(p)は、前記識別情報に対して定まる、
ことを特徴とする端末装置。
【請求項5】
請求項1又は2の代理計算システムが有する代理計算装置。
【請求項6】
端末装置において秘密情報dIDに対してdID=Σk=1K share(k)を満たすK個のシェア情報share(k) (k=1,...,K; K≧2)を生成するステップと、
前記端末装置においてマスク値y(p) (p=1,...,P; K≧P≧1)を生成するステップと、
前記端末装置において(t(1),...,t(P), t(P+1),...,t(K))=(y(1)・share(1),...,y(P)・share(P), share(P+1),...,share(K))を満たす出力情報t(k) (k=1,...,K)を出力するステップと、
代理計算装置において前記出力情報t(k)と値Uとの組の双線形写像e(t(k), U)を生成するステップと、
前記代理計算装置において前記双線形写像e(t(k), U)を出力するステップと、
前記端末装置において復元値
【数6】
を生成するステップと、
を有する代理計算方法。
【請求項7】
請求項3又は4の端末装置としてコンピュータを機能させるためのプログラム。
【請求項8】
請求項5の代理計算装置としてコンピュータを機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【公開番号】特開2012−98570(P2012−98570A)
【公開日】平成24年5月24日(2012.5.24)
【国際特許分類】
【出願番号】特願2010−247085(P2010−247085)
【出願日】平成22年11月4日(2010.11.4)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成24年5月24日(2012.5.24)
【国際特許分類】
【出願日】平成22年11月4日(2010.11.4)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]