特許第6053983号(P6053983)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱電機株式会社の特許一覧
特許6053983暗号システム、署名システム、暗号プログラム及び署名プログラム
<>
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6053983
(24)【登録日】2016年12月9日
(45)【発行日】2016年12月27日
(54)【発明の名称】暗号システム、署名システム、暗号プログラム及び署名プログラム
(51)【国際特許分類】
   G09C 1/00 20060101AFI20161219BHJP
   H04L 9/08 20060101ALI20161219BHJP
【FI】
   G09C1/00 620Z
   G09C1/00 650Z
   H04L9/00 601B
【請求項の数】11
【全頁数】89
(21)【出願番号】特願2016-503892(P2016-503892)
(86)(22)【出願日】2014年2月24日
(86)【国際出願番号】JP2014054280
(87)【国際公開番号】WO2015125293
(87)【国際公開日】20150827
【審査請求日】2016年3月25日
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】100099461
【弁理士】
【氏名又は名称】溝井 章司
(74)【代理人】
【識別番号】100151220
【弁理士】
【氏名又は名称】八巻 満隆
(72)【発明者】
【氏名】高島 克幸
【審査官】 金沢 史明
(56)【参考文献】
【文献】 特開2014−029415(JP,A)
【文献】 Y. Han et al.,Attribute-Based Signcryption Scheme with Non-monotonic Access Structure,Proceedings of 5th International Conference on Intelligent Networking and Collaborative Systems (INCoS 2013),IEEE,2013年,pp. 796-802
【文献】 Q. Li et al.,An Expressive Decentralizing KP-ABE Scheme with Constant-Size Ciphertext,International Journal of Network Security,2013年 5月,Vol. 15, No. 3,,pp. 161-170
【文献】 N. Attrapadung et al.,Expressive Key-Policy Attribute-Based Encryption with Constant-Size Ciphertexts,Lecture Notes in Computer Science,Springer,2011年,Vol. 6571,pp. 90-108
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
H04L 9/08
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
基底B及び基底Bを利用し、暗号処理を行う暗号システムであり、
属性情報x(i=1,...,n’,n’は1以上n−1以下の整数,nは2以上の整数)を根とする多項式の係数y(j=1,...,n)からなる数1に示す第1ベクトルと、述語情報vのべき乗v(i=0,...,n−1)からなる数2に示す第2ベクトルとのうちの前記第1ベクトルを用いて、前記基底Bにおけるベクトルである数3に示す送信側ベクトルcを含む暗号文ctΓを生成する暗号化装置と、
記第2ベクトルを用いて生成された、前記基底Bにおけるベクトルである数4に示す受信側ベクトルkを含む復号鍵skを取得し、前記受信側ベクトルと前記送信側ベクトルとに関してペアリング演算を行うことによって、前記暗号文ctΓを復号する復号装置と
を備えることを特徴とする暗号システム。
【数1】
[この文献は図面を表示できません]
【数2】
[この文献は図面を表示できません]
【数3】
[この文献は図面を表示できません]
【数4】
[この文献は図面を表示できません]
【請求項2】
基底B及び基底Bを利用し、暗号処理を行う暗号システムであり、
属性情報x(i=1,...,n’,n’は1以上n−1以下の整数,nは2以上の整数)を根とする多項式の係数y(j=1,...,n)からなる数5に示す第1ベクトルと、述語情報vのべき乗v(i=0,...,n−1)からなる数6に示す第2ベクトルとのうちの前記第2ベクトルを用いて、前記基底Bにおけるベクトルである数7に示す送信側ベクトルcを含む暗号文ctを生成する暗号化装置と、
前記第1ベクトルを用いて生成された、前記基底Bにおけるベクトルである数8に示す受信側ベクトルkを含む復号鍵skΓを取得し、前記受信側ベクトルと前記送信側ベクトルとに関してペアリング演算を行うことによって、前記暗号文ctを復号する復号装置と
を備えることを特徴とする暗号システム。
【数5】
[この文献は図面を表示できません]
【数6】
[この文献は図面を表示できません]
【数7】
[この文献は図面を表示できません]
【数8】
[この文献は図面を表示できません]
【請求項3】
基底B及び基底Bを利用し、暗号処理を行う暗号システムであり、
属性情報x(i=1,...,n’,n’は1以上n−1以下の整数,nは2以上の整数)を根とする多項式の係数y(j=1,...,n)からなる数9に示す第1ベクトルと、述語情報vのべき乗v(i=0,...,n−1)からなる数10に示す第2ベクトルとのうちの前記第1ベクトルを用いて、前記基底Bにおけるベクトルである数11に示す送信側ベクトルc1.tを含む暗号文ctΓを生成する暗号化装置と、
記第2ベクトルを用いて生成された、前記基底Bにおけるベクトルである数12に示す受信側ベクトルkを含む復号鍵skを取得し、前記受信側ベクトルと前記送信側ベクトル1.tとに関してペアリング演算を行うことによって、前記暗号文ctΓを復号する復号装置と
を備えることを特徴とする暗号システム。
【数9】
[この文献は図面を表示できません]
【数10】
[この文献は図面を表示できません]
【数11】
[この文献は図面を表示できません]
【数12】
[この文献は図面を表示できません]
【請求項4】
基底B及び基底Bを利用し、暗号処理を行う暗号システムであり、
属性情報x(i=1,...,n’,n’は1以上n−1以下の整数,nは2以上の整数)を根とする多項式の係数y(j=1,...,n)からなる数13に示す第1ベクトルと、述語情報vのべき乗v(i=0,...,n−1)からなる数14に示す第2ベクトルとのうちの前記第2ベクトルを用いて、前記基底Bにおけるベクトルである数15に示す送信側ベクトルcを含む暗号文ctを生成する暗号化装置と、
前記第1ベクトルを用いて生成された、前記基底Bにおけるベクトルである数16に示す受信側ベクトルk1.tを含む復号鍵skΓを取得し、前記受信側ベクトル1.tと前記送信側ベクトルとに関してペアリング演算を行うことによって、前記暗号文ctΓを復号する復号装置と
を備えることを特徴とする暗号システム。
【数13】
[この文献は図面を表示できません]
【数14】
[この文献は図面を表示できません]
【数15】
[この文献は図面を表示できません]
【数16】
[この文献は図面を表示できません]
【請求項5】
基底B及び基底Bを利用し、署名処理を行う署名システムであり、
属性情報x(i=1,...,n’,n’は1以上n−1以下の整数,nは2以上の整数)を根とする多項式の係数y(j=1,...,n)からなる数17に示す第1ベクトルと、述語情報vのべき乗v(i=0,...,n−1)からなる数18に示す第2ベクトルとのうちの前記第1ベクトルを用いて、前記基底Bにおけるベクトルである数19に示す送信側ベクトルsを含む署名Sigを生成する署名装置と、
記第2ベクトルを用いて、前記基底Bにおけるベクトルである数20に示す受信側ベクトルcを含む検証鍵vkを取得し、前記受信側ベクトルと前記送信側ベクトルとに関してペアリング演算を行うことによって、前記署名Sigを検証する検証装置と
を備えることを特徴とする署名システム。
【数17】
[この文献は図面を表示できません]
【数18】
[この文献は図面を表示できません]
【数19】
[この文献は図面を表示できません]
【数20】
[この文献は図面を表示できません]
【請求項6】
前記基底B及び前記基底Bは、各行各列に少なくとも1つは定数値0以外の値を有する疎行列を用いて基底Aを変形して生成された基底である
ことを特徴とする請求項1から5のいずれか1項に記載の暗号システム。
【請求項7】
基底B及び基底Bを利用し、暗号処理を行う暗号プログラムであり、
属性情報x(i=1,...,n’,n’は1以上n−1以下の整数,nは2以上の整数)を根とする多項式の係数y(j=1,...,n)からなる数21に示す第1ベクトルと、述語情報vのべき乗v(i=0,...,n−1)からなる数22に示す第2ベクトルとのうちの前記第1ベクトルを用いて、前記基底Bにおけるベクトルである数23に示す送信側ベクトルcを含む暗号文ctΓを生成する暗号化処理と、
記第2ベクトルを用いて生成された、前記基底Bにおけるベクトルである数24に示す受信側ベクトルkを含む復号鍵skを取得し、前記受信側ベクトルと前記送信側ベクトルとに関してペアリング演算を行うことによって、前記暗号文ctΓを復号する復号処理と
をコンピュータに実行させることを特徴とする暗号プログラム。
【数21】
[この文献は図面を表示できません]
【数22】
[この文献は図面を表示できません]
【数23】
[この文献は図面を表示できません]
【数24】
[この文献は図面を表示できません]
【請求項8】
基底B及び基底Bを利用し、暗号処理を行う暗号プログラムであり、
属性情報x(i=1,...,n’,n’は1以上n−1以下の整数,nは2以上の整数)を根とする多項式の係数y(j=1,...,n)からなる数25に示す第1ベクトルと、述語情報vのべき乗v(i=0,...,n−1)からなる数26に示す第2ベクトルとのうちの前記第2ベクトルを用いて、前記基底Bにおけるベクトルである数27に示す送信側ベクトルcを含む暗号文ctを生成する暗号化処理と、
前記第1ベクトルを用いて生成された、前記基底Bにおけるベクトルである数28に示す受信側ベクトルkを含む復号鍵skΓを取得し、前記受信側ベクトルと前記送信側ベクトルとに関してペアリング演算を行うことによって、前記暗号文ctを復号する復号処理と
をコンピュータに実行させることを特徴とする暗号プログラム。
【数25】
[この文献は図面を表示できません]
【数26】
[この文献は図面を表示できません]
【数27】
[この文献は図面を表示できません]
【数28】
[この文献は図面を表示できません]
【請求項9】
基底B及び基底Bを利用し、暗号処理を行う暗号プログラムであり、
属性情報x(i=1,...,n’,n’は1以上n−1以下の整数,nは2以上の整数)を根とする多項式の係数y(j=1,...,n)からなる数29に示す第1ベクトルと、述語情報vのべき乗v(i=0,...,n−1)からなる数30に示す第2ベクトルとのうちの前記第1ベクトルを用いて、前記基底Bにおけるベクトルである数31に示す送信側ベクトルc1.tを含む暗号文ctΓを生成する暗号化処理と、
記第2ベクトルを用いて生成された、前記基底Bにおけるベクトルである数32に示す受信側ベクトルkを含む復号鍵skを取得し、前記受信側ベクトルと前記送信側ベクトル1.tとに関してペアリング演算を行うことによって、前記暗号文ctΓを復号する復号処理と
をコンピュータに実行させることを特徴とする暗号プログラム。
【数29】
[この文献は図面を表示できません]
【数30】
[この文献は図面を表示できません]
【数31】
[この文献は図面を表示できません]
【数32】
[この文献は図面を表示できません]
【請求項10】
基底B及び基底Bを利用し、暗号処理を行う暗号プログラムであり、
属性情報x(i=1,...,n’,n’は1以上n−1以下の整数,nは2以上の整数)を根とする多項式の係数y(j=1,...,n)からなる数33に示す第1ベクトルと、述語情報vのべき乗v(i=0,...,n−1)からなる数34に示す第2ベクトルとのうちの前記第2ベクトルを用いて、前記基底Bにおけるベクトルである数35に示す送信側ベクトルcを含む暗号文ctを生成する暗号化処理と、
前記第1ベクトルを用いて生成された、前記基底Bにおけるベクトルである数36に示す受信側ベクトルk1.tを含む復号鍵skΓを取得し、前記受信側ベクトル1.tと前記送信側ベクトルとに関してペアリング演算を行うことによって、前記暗号文ctΓを復号する復号処理と
をコンピュータに実行させることを特徴とする暗号プログラム。
【数33】
[この文献は図面を表示できません]
【数34】
[この文献は図面を表示できません]
【数35】
[この文献は図面を表示できません]
【数36】
[この文献は図面を表示できません]
【請求項11】
基底B及び基底Bを利用し、署名処理を行う署名プログラムであり、
属性情報x(i=1,...,n’,n’は1以上n−1以下の整数,nは2以上の整数)を根とする多項式の係数y(j=1,...,n)からなる数37に示す第1ベクトルと、述語情報vのべき乗v(i=0,...,n−1)からなる数38に示す第2ベクトルとのうちの前記第1ベクトルを用いて、前記基底Bにおけるベクトルである数39に示す送信側ベクトルsを含む署名Sigを生成する署名処理と、
記第2ベクトルを用いて、前記基底Bにおけるベクトルである数40に示す受信側ベクトルcを含む検証鍵vkを取得し、前記受信側ベクトルと前記送信側ベクトルとに関してペアリング演算を行うことによって、前記署名Sigを検証する検証処理と
をコンピュータに実行させることを特徴とする署名プログラム。
【数37】
[この文献は図面を表示できません]
【数38】
[この文献は図面を表示できません]
【数39】
[この文献は図面を表示できません]
【数40】
[この文献は図面を表示できません]
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、関数型暗号(Functional Encryption,FE)方式に関するものである。
【背景技術】
【0002】
特許文献1には、関数型暗号(Functional Encryption,FE)方式に関する記載がある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2012−133214号公報
【非特許文献】
【0004】
【非特許文献1】Attrapadung, N., Libert, B., de Panafieu, E.: Expressive key−policy attribute−based encryption with constant−size ciphertexts. In: Catalano et al. [6], pp. 90.108
【非特許文献2】Okamoto, T., Takashima, K.: Achieving Short Ciphertexts or Short Secret−Keys for Adaptively Secure General Inner−Product Encryption. CANS 2011, LNCS, vol. 7092, pp. 138−159 Springer Heidelberg (2011).
【非特許文献3】Okamoto, T Takashima, K.:Decentralized Attribute−Based Signatures.ePrint http://eprint.iacr.org/2011/701
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載された関数型暗号方式では、属性のカテゴリt毎に、暗号文を構成するベクトルあるいは復号鍵を構成するベクトルを生成する必要があり、暗号文のサイズが大きく、復号等にも処理時間がかかる。
この発明は、暗号文、復号鍵、署名等のサイズを小さくすることを目的とする。
【課題を解決するための手段】
【0006】
この発明に係る暗号システムは、
基底B及び基底Bを利用し、暗号処理を行う暗号システムであり、
を根とする多項式の係数yからなる第1ベクトルと、vのべき乗vからなる第2ベクトルとの一方のベクトルを用いて生成された送信側ベクトルであって、前記基底Bにおけるベクトルである送信側ベクトルを生成する送信装置と、
前記第1ベクトルと前記第2ベクトルとの他方のベクトルを用いて生成された受信側ベクトルであって、前記基底Bにおけるベクトルである受信側ベクトルと、前記送信側ベクトルとについて、ペアリング演算を行う受信装置と
を備えることを特徴とする。
【発明の効果】
【0007】
この発明に係る暗号システムは、送信側ベクトルや受信側ベクトルを生成するために用いるベクトルの構成を工夫したことにより、暗号文、復号鍵、署名等のサイズを小さくできる。
【図面の簡単な説明】
【0008】
図1】行列M^の説明図。
図2】行列Mδの説明図。
図3】sの説明図。
図4】s→Tの説明図。
図5】実施の形態1に係るKP−ABE方式を実現する暗号システム10の構成図。
図6】実施の形態1に係る鍵生成装置100の構成図。
図7】実施の形態1に係る暗号化装置200の構成図。
図8】実施の形態1に係る復号装置300の構成図。
図9】実施の形態1に係るSetupアルゴリズムの処理を示すフローチャート。
図10】実施の形態1に係るKeyGenアルゴリズムの処理を示すフローチャート。
図11】実施の形態1に係るEncアルゴリズムの処理を示すフローチャート。
図12】実施の形態1に係るDecアルゴリズムの処理を示すフローチャート。
図13】実施の形態2に係るCP−ABE方式を実現する暗号システム10の構成図。
図14】実施の形態2に係る鍵生成装置100の構成図。
図15】実施の形態2に係る暗号化装置200の構成図。
図16】実施の形態2に係るKeyGenアルゴリズムの処理を示すフローチャート。
図17】実施の形態2に係るEncアルゴリズムの処理を示すフローチャート。
図18】実施の形態4に係るABS方式を実現する暗号システム10の構成図。
図19】実施の形態4に係る鍵生成装置100の構成図。
図20】実施の形態4に係る署名装置400の構成図。
図21】実施の形態4に係る検証装置500の構成図。
図22】実施の形態4に係るSetupアルゴリズムの処理を示すフローチャート。
図23】実施の形態4に係るKeyGenアルゴリズムの処理を示すフローチャート。
図24】実施の形態4に係るSigアルゴリズムの処理を示すフローチャート。
図25】実施の形態4に係るVerアルゴリズムの処理を示すフローチャート。
図26】実施の形態1〜5に示した暗号システム10の各装置のハードウェア構成の例を示す図。
【発明を実施するための形態】
【0009】
実施の形態1.
以下の説明における記法について説明する。
Aがランダムな変数または分布であるとき、数101は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数101において、yは乱数である。
【数101】
[この文献は図面を表示できません]
Aが集合であるとき、数102は、Aからyを一様に選択することを表す。つまり、数102において、yは一様乱数である。
【数102】
[この文献は図面を表示できません]
数103は、yにzが設定されたこと、yがzにより定義されたこと、又はyがzを代入されたことを表す。
【数103】
[この文献は図面を表示できません]
aが定数であるとき、数104は、機械(アルゴリズム)Aが入力xに対しaを出力することを表す。
【数104】
[この文献は図面を表示できません]
数105、つまりFは、位数qの有限体を示す。
【数105】
[この文献は図面を表示できません]
ベクトル表記は、有限体Fにおけるベクトル表示を表す。つまり、数106である。
【数106】
[この文献は図面を表示できません]
数107は、数108に示す2つのベクトルxとvとの数109に示す内積を表す。
【数107】
[この文献は図面を表示できません]
【数108】
[この文献は図面を表示できません]
【数109】
[この文献は図面を表示できません]
は、行列Xの転置行列を表す。
数110に示す基底Bと基底Bとに対して、数111である。
【数110】
[この文献は図面を表示できません]
【数111】
[この文献は図面を表示できません]
は、数112に示す正規基底ベクトルを示す。
【数112】
[この文献は図面を表示できません]
【0010】
また、以下の説明において、Vt,nt,ut,wt,zt,nu,wu,zuが下付き又は上付きで示されている場合、このVt,nt,ut,wt,zt,nu,wu,zuはV,u,n,w,z,n,w,zを意味する。同様に、δi,jが上付きで示されている場合、このδi,jは、δi,jを意味する。同様に、φjが上付きで示されている場合、このφjは、φを意味する。同様に、s0が下付き又は上付きで示されている場合、このs0は、sを意味する。
また、ベクトルを意味する→が下付き文字又は上付き文字に付されている場合、この→は下付き文字又は上付き文字に上付きで付されていることを意味する。
【0011】
また、以下の説明において、暗号処理、暗号方式は、情報を第三者から秘匿するための狭義の暗号処理だけでなく、署名処理をも含むものであり、鍵生成処理、暗号化処理、復号処理、署名処理、検証処理を含む。
【0012】
実施の形態1では、暗号方式を実現する基礎となる概念を説明した上で、実施の形態1に係る暗号方式の構成について説明する。
第1に、暗号方式を実現するための空間である双対ペアリングベクトル空間(Dual Pairing Vector Spaces,DPVS)という豊かな数学的構造を有する空間について説明する。
第2に、暗号方式を実現するための概念について説明する。ここでは、スパンプログラム、アクセス構造、秘密分散方式(秘密共有方式)について説明する。
第3に、実施の形態1に係る暗号方式の基本構成について説明する。実施の形態1では、鍵ポリシーの属性ベース暗号(Key−Policy Attribute−Based Encryption,KP−ABE)方式について説明する。
第4に、実施の形態1に係る暗号方式を実現する暗号システム10の基本構成について説明する。
第5に、実施の形態1に係る暗号方式のキーテクニック及び簡略化した暗号方式について説明する。
第6に、実施の形態1に係る暗号方式について詳細に説明する。
【0013】
<第1.双対ペアリングベクトル空間>
まず、対称双線形ペアリング群について説明する。
対称双線形ペアリング群(q,G,G,g,e)は、素数qと、位数qの巡回加法群Gと、位数qの巡回乗法群Gと、g≠0∈Gと、多項式時間で計算可能な非退化双線形ペアリング(Nondegenerate Bilinear Pairing)e:G×G→Gとの組である。非退化双線形ペアリングは、e(sg,tg)=e(g,g)stであり、e(g,g)≠1である。
以下の説明において、Gbpgを、1λを入力として、セキュリティパラメータをλとする双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を出力するアルゴリズムとする。
【0014】
次に、双対ペアリングベクトル空間について説明する。
双対ペアリングベクトル空間(q,V,G,A,e)は、対称双線形ペアリング群(param:=(q,G,G,g,e))の直積によって構成することができる。双対ペアリングベクトル空間(q,V,G,A,e)は、素数q、数113に示すF上のN次元ベクトル空間V、位数qの巡回群G、空間Vの標準基底A:=(a,...,a)の組であり、以下の演算(1)(2)を有する。ここで、aは、数114に示す通りである。
【数113】
[この文献は図面を表示できません]
【数114】
[この文献は図面を表示できません]
【0015】
演算(1):非退化双線形ペアリング
空間Vにおけるペアリングは、数115によって定義される。
【数115】
[この文献は図面を表示できません]
これは、非退化双線形である。つまり、e(sx,ty)=e(x,y)stであり、全てのy∈Vに対して、e(x,y)=1の場合、x=0である。また、全てのiとjとに対して、e(a,a)=e(g,g)δi,jである。ここで、i=jであれば、δi,j=1であり、i≠jであれば、δi,j=0である。また、e(g,g)≠1∈Gである。
【0016】
演算(2):ディストーション写像
数116に示す空間Vにおける線形変換φi,jは、数117を行うことができる。
【数116】
[この文献は図面を表示できません]
【数117】
[この文献は図面を表示できません]
ここで、線形変換φi,jをディストーション写像と呼ぶ。
【0017】
以下の説明において、Gdpvsを、1λ(λ∈自然数)、N∈自然数、双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を入力として、セキュリティパラメータがλであり、N次元の空間Vとする双対ペアリングベクトル空間のパラメータparam:=(q,V,G,A,e)の値を出力するアルゴリズムとする。
【0018】
なお、ここでは、上述した対称双線形ペアリング群により、双対ペアリングベクトル空間を構成した場合について説明する。なお、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成することも可能である。以下の説明を、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成した場合に応用することは容易である。
【0019】
<第2.暗号方式を実現するための概念>
<第2−1.スパンプログラム>
図1は、行列M^の説明図である。
{p,...,p}を変数の集合とする。M^:=(M,ρ)は、ラベル付けされた行列である。ここで、行列Mは、F上の(L行×r列)の行列である。また、ρは、行列Mの各行に付されたラベルであり、{p,...,p,¬p,...,¬p}のいずれか1つのリテラルへ対応付けられる。なお、Mの全ての行に付されたラベルρi(i=1,...,L)がいずれか1つのリテラルへ対応付けられる。つまり、ρ:{1,...,L}→{p,...,p,¬p,...,¬p}である。
【0020】
全ての入力列δ∈{0,1}に対して、行列Mの部分行列Mδは定義される。行列Mδは、入力列δによってラベルρに値“1”が対応付けられた行列Mの行から構成される部分行列である。つまり、行列Mδは、δ=1であるようなpに対応付けられた行列Mの行と、δ=0であるような¬pに対応付けられた行列Mの行とからなる部分行列である。
図2は、行列Mδの説明図である。なお、図2では、n=7,L=6,r=5としている。つまり、変数の集合は、{p,...,p}であり、行列Mは(6行×5列)の行列である。また、図2において、ラベルρは、ρが¬pに、ρがpに、ρがpに、ρが¬pに、ρが¬pに、ρがpにそれぞれ対応付けられているとする。
ここで、入力列δ∈{0,1}が、δ=1,δ=0,δ=1,δ=0,δ=0,δ=1,δ=1であるとする。この場合、破線で囲んだリテラル(p,p,p,p,¬p,¬p,¬p)に対応付けられている行列Mの行からなる部分行列が行列Mδである。つまり、行列Mの1行目(M),2行目(M),4行目(M)からなる部分行列が行列Mδである。
【0021】
言い替えると、写像γ:{1,...,L}→{0,1}が、[ρ(j)=p]∧[δ=1]又は[ρ(j)=¬p]∧[δ=0]である場合、γ(j)=1であり、他の場合、γ(j)=0であるとする。この場合に、Mδ:=(Mγ(j)=1である。ここで、Mは、行列Mのj番目の行である。
つまり、図2では、写像γ(j)=1(j=1,2,4)であり、写像γ(j)=0(j=3,5,6)である。したがって、(Mγ(j)=1は、M,M,Mであり、行列Mδである。
すなわち、写像γ(j)の値が“0”であるか“1”であるかによって、行列Mのj番目の行が行列Mδに含まれるか否かが決定される。
【0022】
∈span<Mδ>である場合に限り、スパンプログラムM^は入力列δを受理し、他の場合には入力列δを拒絶する。つまり、入力列δによって行列M^から得られる行列Mδの行を線形結合して1が得られる場合に限り、スパンプログラムM^は入力列δを受理する。なお、1とは、各要素が値“1”である行ベクトルである。
例えば、図2の例であれば、行列Mの1,2,4行目からなる行列Mδの各行を線形結合して1が得られる場合に限り、スパンプログラムM^は入力列δを受理する。つまり、α(M)+α(M)+α(M)=1となるα,α,αが存在する場合には、スパンプログラムM^は入力列δを受理する。
【0023】
ここで、ラベルρが正のリテラル{p,...,p}にのみ対応付けられている場合、スパンプログラムはモノトーンと呼ばれる。一方、ラベルρがリテラル{p,...,p,¬p,...,¬p}に対応付けられている場合、スパンプログラムはノンモノトーンと呼ばれる。ここでは、スパンプログラムはノンモノトーンとする。そして、ノンモノトーンスパンプログラムを用いて、アクセスストラクチャ(ノンモノトーンアクセスストラクチャ)を構成する。アクセスストラクチャとは、簡単に言うと暗号へのアクセス制御を行うものである。つまり、暗号文を復号できるか否かの制御を行うものである。
スパンプログラムがモノトーンではなく、ノンモノトーンであることにより、スパンプログラムを利用して構成する暗号方式の利用範囲が広がる。
【0024】
<第2−2.アクセスストラクチャ>
U(⊂{0,1})は、全集合(universe)であり、属性の集合である。そして、Uは、属性の値、つまり、v∈F(:=F\{0})によって表される。
【0025】
属性がM^:=(M,ρ)における変数pになるように定義する。つまり、p:=vである。アクセスストラクチャSは、変数p:=v,p’:=v’,...であるスパンプログラムM^:=(M,ρ)である。つまり、アクセスストラクチャSは、ρ:{1,...,L}→{v,v’,...,¬v,¬v’,...}であるS:=(M,ρ)である。
【0026】
次に、Γを属性の集合とする。つまり、Γ:={x1≦j≦n’}である。
アクセスストラクチャSにΓが与えられた場合、スパンプログラムM^:=(M,ρ)に対する写像γ:{1,...,L}→{0,1}は、以下のように定義される。i=1,...,Lの各整数iについて、[ρ(i)=v]∧[v∈Γ]、又は、[ρ(i)=¬v]∧[v∈Γ]である場合、γ(j)=1であり、他の場合、γ(j)=0とする。
∈span<(Mγ(i)=1>である場合に限り、アクセスストラクチャS:=(M,ρ)はΓを受理する。
【0027】
<第2−3.秘密分散方式>
アクセスストラクチャS:=(M,ρ)に対する秘密分散方式について説明する。
なお、秘密分散方式とは、秘密情報を分散させ、意味のない分散情報にすることである。例えば、秘密情報sを10個に分散させ、10個の分散情報を生成する。ここで、10個の分散情報それぞれは、秘密情報sの情報を有していない。したがって、ある1個の分散情報を手に入れても秘密情報sに関して何ら情報を得ることはできない。一方、10個の分散情報を全て手に入れれば、秘密情報sを復元できる。
また、10個の分散情報を全て手に入れなくても、一部だけ(例えば、8個)手に入れれば秘密情報sを復元できる秘密分散方式もある。このように、10個の分散情報のうち8個で秘密情報sを復元できる場合を、8−out−of−10と呼ぶ。つまり、n個の分散情報のうちt個で秘密情報sを復元できる場合を、t−out−of−nと呼ぶ。このtを閾値と呼ぶ。
また、d,...,d10の10個の分散情報を生成した場合に、d,...,dまでの8個の分散情報であれば秘密情報sを復元できるが、d,...,d10までの8個の分散情報であれば秘密情報sを復元できないというような秘密分散方式もある。つまり、手に入れた分散情報の数だけでなく、分散情報の組合せに応じて秘密情報sを復元できるか否かを制御する秘密分散方式もある。
【0028】
図3は、sの説明図である。図4は、s→Tの説明図である。
行列Mを(L行×r列)の行列とする。f→Tを数118に示す列ベクトルとする。
【数118】
[この文献は図面を表示できません]
数119に示すsを共有される秘密情報とする。
【数119】
[この文献は図面を表示できません]
また、数120に示すs→TをsのL個の分散情報のベクトルとする。
【数120】
[この文献は図面を表示できません]
そして、分散情報sをρ(i)に属するものとする。
【0029】
アクセスストラクチャS:=(M,ρ)がΓを受理する場合、つまりγ:{1,...,L}→{0,1}について1∈span<(Mγ(i)=1>である場合、I⊆{i∈{1,...,L}|γ(i)-=1}である定数{α∈F|i∈I}が存在する。
これは、図2の例で、α(M)+α(M)+α(M)=1となるα,α,αが存在する場合には、スパンプログラムM^は入力列δを受理すると説明したことからも明らかである。つまり、α(M)+α(M)+α(M)=1となるα,α,αが存在する場合には、スパンプログラムM^が入力列δを受理するのであれば、α(M)+α(M)+α(M)=1となるα,α,αが存在する。
そして、数121である。
【数121】
[この文献は図面を表示できません]
なお、定数{α}は、行列Mのサイズにおける多項式時間で計算可能である。
【0030】
<第3.暗号方式(KP−ABE方式)の基本構成>
KP−ABE方式の構成を簡単に説明する。なお、KP(鍵ポリシー)とは、暗号文にPolicyが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
【0031】
KP−ABE方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλと、暗号文に対する属性の数の上限nとを入力として、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、公開パラメータpkと、マスター鍵skと、アクセスストラクチャS:=(M,ρ)とを入力として、復号鍵skを出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、公開パラメータpkと、メッセージmと、属性集合Γ:={x1≦j≦n’とを入力として、暗号文ctΓを出力する確率的アルゴリズムである。
(Dec)
Decアルゴリズムは、公開パラメータpkと、復号鍵skと、暗号文ctΓとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
【0032】
<第4.暗号システム10の基本構成>
KP−ABE方式のアルゴリズムを実現する暗号システム10について説明する。
図5は、実施の形態1に係るKP−ABE方式を実現する暗号システム10の構成図である。
暗号システム10は、鍵生成装置100、暗号化装置200(送信装置の一例)、復号装置300(受信装置の一例)を備える。
【0033】
鍵生成装置100は、セキュリティパラメータλと暗号文に対する属性の数の上限nとを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。
そして、鍵生成装置100は、公開パラメータpkを公開する。また、鍵生成装置100は、アクセスストラクチャSを入力としてKGアルゴリズムを実行して、復号鍵skを生成して復号装置300へ秘密裏に送信する。
【0034】
暗号化装置200は、公開パラメータpkと、メッセージmと、属性集合Γとを入力としてEncアルゴリズムを実行して、暗号文ctΓを生成する。暗号化装置200は、暗号文ctΓを復号装置300へ送信する。
【0035】
復号装置300は、公開パラメータpkと、復号鍵skと、暗号文ctΓとを入力としてDecアルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
【0036】
<第5.キーテクニック及び簡略化した暗号方式>
<第5−1.エンコーディング>
特許文献1に記載された関数型暗号方式では、各属性カテゴリに識別子tが割り当てられ、識別子t毎に暗号文(あるいは復号鍵)の要素であるベクトルが生成された。
実施の形態1では、属性情報のエンコード方法を工夫することにより、属性カテゴリの識別子tをなくし、暗号文の要素であるベクトルを1つにする。
【0037】
実施の形態1では、属性情報xを根とする多項式の係数yからなるベクトルy:=(y,...,y)(第1ベクトル)の各要素を基底Bの各基底ベクトルの係数に設定して、暗号文の要素である(1つの)ベクトルを生成する。つまり、f(z)=(z−x)(z−x)・・・(z−x)=y+・・・+yn−1z+yであるベクトルy:=(y,...,y)を基底Bの各基底ベクトルの係数に設定して、暗号文の要素であるベクトルを生成する。
【0038】
また、i=1,...,Lの各整数iについて、vのべき乗vからなるベクトルv:=(vn−1,...,v,1)(第2ベクトル)を基底Bの各基底ベクトルの係数に設定して、復号鍵の要素である(1つ以上の)ベクトルを生成する。
【0039】
これにより、暗号文の要素であるベクトルと、復号鍵の要素であるベクトルとについてペアリング演算を行うと、vがf(z)に代入され、vがx,...,xのいずれかと等しければ、f(v)=0となり、vがx,...,xのいずれかとも等しくなければ、f(v)≠0となるように制御することが可能になる。
【0040】
<第5−2.疎行列>
特許文献1に記載された関数型暗号方式では、双対基底のペアである基底Bと基底Bとが生成される。基底Bと基底Bとは、GL(N,F)から一様に選択された、完全にランダムな線形変換X(基底変換行列)を用いて生成される。特に、基底Bと基底Bとは、それぞれ、線形変換Xと、(X−1とにより、標準基底Aを変換して生成される。なお、Nは、span<B>とspan<B>との次元数である。
そして、双対ペアリングベクトル空間を暗号処理に適用した典型的なアプリケーションでは、基底Bの一部(B^という)が公開パラメータとして用いられ、これに対応する基底Bの一部(B^という)が秘密鍵又はトラップドアとして用いられる。
【0041】
実施の形態1では、上述した完全にランダムな線形変換Xに代えて、X∈GL(N,F)であるランダムな線形変換Xの特別な形式(疎行列)を用いる。
【0042】
<第5−3.簡略化した暗号方式>
簡略化したKP−ABE方式について説明する。
簡略化したKP−ABE方式における暗号文は、2個のベクトル要素(c,c)∈G×Gと、c∈Gとからなる。秘密鍵は、アクセスストラクチャS:=(M,,ρ)に対するL+1個のベクトル要素(k,k,...,k∈G×(G)からなる。ここで、行列Mの行数はLであり、各ベクトル要素kは、行列Mの各行に対応している。なお、(c,c)∈G×Gとは、cがGの5個の要素であり、cがGのn個の要素であることを意味する。同様に、(k,k,...,k∈G×(Gとは、kがGの5個の要素であり、k,...,kがGのn個の要素であることを意味する。
そのため、暗号文のサイズを定数サイズにするには、c∈Gをnについての定数サイズに圧縮する必要がある。
【0043】
実施の形態1では、数122に示す特別な線形変換Xを用いる。
【数122】
[この文献は図面を表示できません]
ここで、μ,μ’,...,μ’は有限体Fから一様に選択された値であり、線形変換Xにおける空白は0∈Fであることを示す。また、H(n,F)とは、有限体Fを要素とするn次元の行列の集合を意味する。
【0044】
公開鍵(DPVSの基底)は、数123に示す基底Bである。
【数123】
[この文献は図面を表示できません]
【0045】
属性集合Γ:=(x,...,xn’)に関連付けられた暗号文を、数123に示す暗号文cとする。
【数123】
[この文献は図面を表示できません]
ここで、ωは有限体Fから一様に選択された値である。また、y:=(y,...,y)は、数124に示すベクトルである。
【数124】
[この文献は図面を表示できません]
【0046】
すると、暗号文cは、数125に示す2つのグループの要素C,Cと、ベクトルyとに圧縮できる。
【数125】
[この文献は図面を表示できません]
暗号文cは、(y,...,yn−1,C)によって得られるためである。なお、i=1,...,n−1の各iについて、y=yωμgである。
したがって、暗号文(ベクトルyを除いた部分)は、2つのグループの要素とすることができ、nについての定数サイズとなる。
【0047】
:=(b)を、B:=(b)の双対正規直交基底とし、基底Bを、簡略化したKP−ABE方式におけるマスター秘密鍵であるとする。
(c,k,c)を、e(c,k)=gζ−ωs0であり、c:=gζm∈Gであるとする。ここで、s0(s)は、アクセスストラクチャSに関連付けられた共有情報{si=1,...,Lのセンターシークレットである。
共有情報{si=1,...,Lを用いて、アクセスストラクチャSに対する秘密鍵の集合を数126のように設定する。
【数126】
[この文献は図面を表示できません]
【0048】
基底Bと基底Bとの双対正規直交性から、アクセスストラクチャSが属性集合Γを受理するなら、数127となる補完係数{αi∈Iが存在する。
【数127】
[この文献は図面を表示できません]
そのため、アクセスストラクチャSが属性集合Γを受理する場合に限り、復号者はgωs0を計算でき、メッセージmが得られる。
【0049】
また、暗号文cは、(y,...,yn−1,C)∈Gとして表され、秘密鍵k〜*は、(D,...,D)のn組に分解される。そのため、e(c,k〜*)の値は、数128である。
【数128】
[この文献は図面を表示できません]
つまり、e(c,k〜*)を計算するには、Gにおけるn−1個のスカラー乗法と、2つのペアリング演算とで十分である。すなわち、復号には、少ない数(定数)のペアリング演算だけが必要となる。一般に、ペアリング演算は、処理時間がかかる演算であるため、ペアリング演算の数を減らすことにより、処理全体としての処理時間を短くすることができる。
【0050】
なお、簡略化したKP−ABE方式では、暗号文cはベクトルyが設定される基底ベクトル(実際の符号化部)のみを備え、秘密鍵kはベクトルvが設定される基底ベクトル(実際の符号化部)のみを備えた。
以下に説明するKP−ABE方式では、安全性を高めるため、暗号文cと秘密鍵kとに、実際の符号化部に加え、秘匿部と、秘密鍵ランダム化部と、暗号文ランダム化部とのための基底ベクトルを加える。
そのため、線形変換Xを数129のように6倍に拡張する。そして、実際の符号化部と、秘匿部と、秘密鍵ランダム化部と、暗号文ランダム化部とにそれぞれ、n、2n、2n、n次元ずつ割り当てる。
【数129】
[この文献は図面を表示できません]
ここで、各Xi,jは、数122に示すX∈H(n,F)である。そして、ベクトル空間は、4つの直交する部分空間で構成される。つまり、ベクトル空間は、符号化部と、秘匿部と、秘密鍵ランダム化部と、暗号文ランダム化部とのための4つの直交する部分空間で構成される。
【0051】
<第6.暗号方式>
図6は、実施の形態1に係る鍵生成装置100の構成図である。図7は、実施の形態1に係る暗号化装置200の構成図である。図8は、実施の形態1に係る復号装置300の構成図である。
図9図10とは、実施の形態1に係る鍵生成装置100の動作を示すフローチャートである。なお、図9は、実施の形態1に係るSetupアルゴリズムの処理を示すフローチャートであり、図10は、実施の形態1に係るKeyGenアルゴリズムの処理を示すフローチャートである。図11は、実施の形態1に係る暗号化装置200の動作を示すフローチャートであり、実施の形態1に係るEncアルゴリズムの処理を示す。図12は、実施の形態1に係る復号装置300の動作を示すフローチャートであり、実施の形態1に係るDecアルゴリズムの処理を示す。
【0052】
鍵生成装置100の機能と動作とについて説明する。
図6に示すように、鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵送信部150を備える。マスター鍵生成部110は、空間生成部111、行列生成部112、基底生成部113、鍵生成部114を備える。復号鍵生成部140は、fベクトル生成部141、sベクトル生成部142、乱数生成部143、鍵要素生成部144を備える。
【0053】
図9に基づき、Setupアルゴリズムの処理について説明する。
(S101:空間生成ステップ)
空間生成部111は、セキュリティパラメータ1λを入力として、処理装置によりGbpgを実行して、対称双線形ペアリング群のパラメータparam:=(q,G,G,g,e)を生成する。
さらに、空間生成部111は、N:=5、N:=6nを設定する。そして、空間生成部111は、t=0,1の各整数tについて、セキュリティパラメータ1λと、Nと、対称双線形ペアリング群のパラメータparamとを入力として、処理装置によりGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,V,G,A,e)を生成する。
【0054】
(S102:線形変換生成ステップ)
行列生成部112は、処理装置により、線形変換Xを数130に示すように生成する。
【数130】
[この文献は図面を表示できません]
なお、数130における(χ0,i,ji,j=1,...,5は、行列χ0,i,jの添え字i,jに関する行列という意味である。
また、行列生成部112は、処理装置により、線形変換Xを数131に示すように生成する。
【数131】
[この文献は図面を表示できません]
数131におけるL(6,n,F)は、数132に示す通りである。
【数132】
[この文献は図面を表示できません]
なお、以下、{μi,j,μ’i,j,Li,j=1,...,6;L=1,...,nは、線形変換Xにおける0以外の要素を示す。
【0055】
(S103:基底B生成ステップ)
基底生成部113は、処理装置により、基底Bと変数Bi,jと変数B’i,j,Lとを数133に示すように生成する。
【数133】
[この文献は図面を表示できません]
また、基底生成部113は、処理装置により、基底Bと基底Bとを数134に示すように生成する。
【数134】
[この文献は図面を表示できません]
【0056】
(S104:基底B^生成ステップ)
鍵生成部114は、処理装置により、基底B^と、基底B^と、基底B^と、基底B^とを数135に示すように生成する。
【数135】
[この文献は図面を表示できません]
【0057】
(S105:マスター鍵生成ステップ)
鍵生成部114は、処理装置により、公開パラメータpk:=(1λ,param,{B^t=0,1)とし、マスター秘密鍵sk:={B^t=0,1とする。そして、鍵生成部114は、公開パラメータpkと、マスター秘密鍵skとをマスター鍵記憶部120に記憶する。
なお、param:=({paramVtt=0,1,g:=e(g,g)φ)である。
【0058】
つまり、(S101)から(S105)において、鍵生成装置100は、数136に示すアルゴリズムGABE(1)obを用いた、数137に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター秘密鍵skとを生成する。
【数136】
[この文献は図面を表示できません]
【数137】
[この文献は図面を表示できません]
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
【0059】
S103では、基底Bを生成せず、代わりに変数Bi,jを生成した。基底Bを生成するのであれば、数138のようになる。
【数138】
[この文献は図面を表示できません]
数138の行列における空白部分は成分の値が0∈Gであることを示している。基底Bは、基底Bの正規直交基底である。つまり、e(b1,i,b1,i)=gであり、1≦i≠j≦6nの整数i,jに対して、e(b1,i,b1,j)=1である。
【0060】
図10に基づき、KeyGenアルゴリズムの処理について説明する。
(S201:情報入力ステップ)
情報入力部130は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、アクセスストラクチャSの行列Mの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャSのρは、例えば、復号鍵skの使用者の属性情報が設定されている。
【0061】
(S202:fベクトル生成ステップ)
fベクトル生成部141は、処理装置により、ベクトルfを数139に示すようにランダムに生成する。
【数139】
[この文献は図面を表示できません]
【0062】
(S203:sベクトル生成ステップ)
sベクトル生成部142は、処理装置により、ベクトルs→T:=(s,...,sを数140に示すように生成する。
【数140】
[この文献は図面を表示できません]
また、sベクトル生成部142は、処理装置により、値sを数141に示すように生成する。
【数141】
[この文献は図面を表示できません]
【0063】
(S204:乱数生成ステップ)
乱数生成部143は、処理装置により、乱数を数142に示すように生成する。
【数142】
[この文献は図面を表示できません]
【0064】
(S205:鍵要素生成ステップ)
鍵要素生成部144は、処理装置により、復号鍵skの要素kを数143に示すように生成する。
【数143】
[この文献は図面を表示できません]
また、鍵要素生成部144は、処理装置により、i=1,...,Lの各整数iについて、復号鍵skの要素kを数144に示すように生成する。
【数144】
[この文献は図面を表示できません]
【0065】
(S206:鍵送信ステップ)
鍵送信部150は、(S201)で入力したアクセスストラクチャSと、(S205)で生成されたk,k,...,kとを要素とする復号鍵skを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ送信する。もちろん、復号鍵skは、他の方法により復号装置300へ送信されてもよい。
【0066】
つまり、(S201)から(S205)において、鍵生成装置100は、数145に示すKeyGenアルゴリズムを実行して、復号鍵skを生成する。そして、(S206)で、鍵生成装置100は、生成した復号鍵skを復号装置300へ送信する。
【数145】
[この文献は図面を表示できません]
【0067】
暗号化装置200の機能と動作とについて説明する。
図7に示すように、暗号化装置200は、公開パラメータ受信部210、情報入力部220、暗号化データ生成部230、データ送信部240を備える。また、暗号化データ生成部230は、乱数生成部231、暗号要素生成部232を備える。
【0068】
図11に基づき、Encアルゴリズムの処理について説明する。
(S301:公開パラメータ受信ステップ)
公開パラメータ受信部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを受信する。
【0069】
(S302:情報入力ステップ)
情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。また、情報入力部220は、入力装置により、属性集合Γ:={x,...,xn’|x∈Fq,n’≦n−1}を入力する。また、属性集合Γは、例えば、復号可能なユーザの属性情報が設定されている。
【0070】
(S303:乱数生成ステップ)
乱数生成部231は、処理装置により、乱数を数146に示すように生成する。
【数146】
[この文献は図面を表示できません]
【0071】
(S304:暗号要素生成ステップ)
暗号要素生成部232は、処理装置により、暗号文ctΓの要素cを数147に示すように生成する。
【数147】
[この文献は図面を表示できません]
また、暗号要素生成部232は、処理装置により、暗号文ctΓの要素C1,j,C2,jを数148に示すように生成する。
【数148】
[この文献は図面を表示できません]
また、暗号要素生成部232は、処理装置により、暗号文ctΓの要素cを数149に示すように生成する。
【数149】
[この文献は図面を表示できません]
【0072】
(S305:データ送信ステップ)
データ送信部240は、(S302)で入力した属性集合Γと、(S304)で生成されたc,C1,j,C2,j,cとを要素とする暗号文ctΓを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctΓは、他の方法により復号装置300へ送信されてもよい。
【0073】
つまり、(S301)から(S304)において、暗号化装置200は、数150に示すEncアルゴリズムを実行して、暗号文ctΓを生成する。そして、(S305)で、暗号化装置200は生成した暗号文ctΓを復号装置300へ送信する。
【数150】
[この文献は図面を表示できません]
【0074】
復号装置300の機能と動作とについて説明する。
図8に示すように、復号装置300は、復号鍵受信部310、データ受信部320、スパンプログラム計算部330、補完係数計算部340、復号部350を備える。
【0075】
図12に基づき、Decアルゴリズムの処理について説明する。
(S401:復号鍵受信ステップ)
復号鍵受信部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から送信された復号鍵skを受信する。また、復号鍵受信部310は、鍵生成装置100が生成した公開パラメータpkを受信する。
【0076】
(S402:データ受信ステップ)
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号文ctΓを受信する。
【0077】
(S403:スパンプログラム計算ステップ)
スパンプログラム計算部330は、処理装置により、(S401)で受信した復号鍵skに含まれるアクセスストラクチャSが、(S402)で受信した暗号文ctΓに含まれるΓを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、「第2.暗号方式を実現するための概念」で説明した通りである。
スパンプログラム計算部330は、アクセスストラクチャSがΓを受理する場合(S403で受理)、処理を(S404)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S403で拒絶)、暗号文ctΓを復号鍵skで復号できないとして処理を終了する。
【0078】
(S404:補完係数計算ステップ)
補完係数計算部340は、処理装置により、数151となるIと、定数(補完係数){αi∈Iとを計算する。
【数151】
[この文献は図面を表示できません]
【0079】
(S405:復号要素生成ステップ)
復号部350は、処理装置により、復号要素D,...,D6n,Eを数152に示すように生成する。
【数152】
[この文献は図面を表示できません]
【0080】
(S406:ペアリング演算ステップ)
復号部350は、処理装置により、数153を計算して、セッション鍵K=gζを生成する。
【数153】
[この文献は図面を表示できません]
【0081】
(S407:メッセージ計算ステップ)
復号部350は、処理装置により、m’=c/Kを計算して、メッセージm’(=m)を生成する。
【0082】
つまり、(S401)から(S407)において、復号装置300は、数154に示すDecアルゴリズムを実行して、メッセージm’(=m)を生成する。
【数154】
[この文献は図面を表示できません]
【0083】
なお、数138からB:=(b1,1,...,b1,6n)は、{Bi,j,B’i,j,Li,j=1,...,6;L=1,...,nによって特定される。また、Setupアルゴリズムの出力に含まれる{Bi,j,B’i,j,Li=1,6;j=1,...,6;L=1,...,nは、B^:=(b1,1,...,b1,n,b1,5n+1,...,b1,6n)によって特定される。
そして、Decアルゴリズムは、数155に示すDec’アルゴリズムのように記述することができる。
【数155】
[この文献は図面を表示できません]
【0084】
数156に示すように、Dec'アルゴリズムを用いた場合、K:=gζが得られる。そのため、c=gζmをKで除することにより、メッセージm’(=m)が得られる。
【数156】
[この文献は図面を表示できません]
【0085】
実施の形態1で説明したKP−ABE方式では、暗号文ctΓは、要素cで5個と、j=1,...,6の各整数jについての要素C1,j及び要素C2,jで12個との合計17個のGの要素と、要素cで1個のGの要素とから構成される。つまり、暗号文ctΓは、nについて定数サイズである。
【0086】
また、実施の形態1で説明したKP−ABE方式では、復号処理(Decアルゴリズム)は、数153に示すe(c,k)で5個と、Πj=1(e(C1,j,E)・e(C2,j,Djn))で12個との合計17個のみペアリング演算を実行する。つまり、復号処理で必要となるペアリング演算は少ない。
【0087】
実施の形態2.
実施の形態2では、秘密鍵のサイズを定数サイズとした暗号文ポリシーの属性ベース暗号(Ciphertext−Policy ABE,CP−ABE)方式について説明する。
実施の形態2では、実施の形態1と同じ部分については説明を省略し、実施の形態1と異なる部分について説明する。
【0088】
第1に、実施の形態2に係る暗号方式の基本構成について説明する。
第2に、実施の形態2に係る暗号方式を実現する暗号システム10の構成について説明する。
第3に、実施の形態2に係る暗号方式について詳細に説明する。
【0089】
<第1.暗号方式の基本構成>
CP−ABE方式の構成を簡単に説明する。なお、Ciphertext−Policyとは、暗号文にPolicyが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
CP−ABE方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλと、暗号文に対する属性の数の上限nとが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、公開パラメータpkと、マスター鍵skと、属性集合Γ:={x1≦j≦n’とを入力として、復号鍵skΓを出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、公開パラメータpkと、メッセージmと、アクセスストラクチャS:=(M,ρ)とを入力として、暗号文ctを出力する確率的アルゴリズムである。
(Dec)
Decアルゴリズムは、公開パラメータpkと、復号鍵skΓと、暗号文ctとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
【0090】
<第2.CP−ABE方式を実現する暗号システム10の構成>
図13は、実施の形態2に係るCP−ABE方式を実現する暗号システム10の構成図である。
暗号システム10は、鍵生成装置100、暗号化装置200(送信装置の一例)、復号装置300(受信装置の一例)を備える。
鍵生成装置100は、セキュリティパラメータλと暗号文に対する属性の数の上限nとを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、属性集合Γを入力としてKeyGenアルゴリズムを実行して、復号鍵skΓを生成して復号装置300へ秘密裡に送信する。
暗号化装置200は、公開パラメータpkと、メッセージmと、アクセスストラクチャSとを入力としてEncアルゴリズムを実行して、暗号文ctを生成する。暗号化装置200は、生成した暗号文ctを復号装置300へ送信する。
復号装置300は、公開パラメータpkと、復号鍵skΓと、暗号文ctとを入力としてDecアルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
【0091】
<第3.暗号方式>
図14は、実施の形態2に係る鍵生成装置100の構成図である。図15は、実施の形態2に係る暗号化装置200の構成図である。復号装置300の構成は、図8に示す実施の形態1に係る復号装置300の構成と同じである。
図16は、実施の形態2に係るKeyGenアルゴリズムの処理を示すフローチャートである。図17は、実施の形態2に係るEncアルゴリズムの処理を示すフローチャートである。Setupアルゴリズムの処理とDecアルゴリズムの処理とは、それぞれ図9図12に示す実施の形態1に係るSetupアルゴリズムの処理とDecアルゴリズムの処理と同じ流れである。
【0092】
鍵生成装置100の機能と動作とについて説明する。
図14に示すように、鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵送信部150を備える。マスター鍵生成部110は、空間生成部111、行列生成部112、基底生成部113、鍵生成部114を備える。復号鍵生成部140は、乱数生成部143、鍵要素生成部144を備える。
【0093】
図9に基づき、Setupアルゴリズムの処理について説明する。
(S101)から(S102)までの処理は、実施の形態1と同じである。
【0094】
(S103:基底B生成ステップ)
基底生成部113は、処理装置により、実施の形態1における基底Bと変数Bi,jと変数B’i,j,Lと同様に、基底Dと変数Di,jと変数D’i,j,Lとを数157に示すように生成する。
【数157】
[この文献は図面を表示できません]
また、基底生成部113は、処理装置により、実施の形態1における基底Bと基底Bと同様に、基底Dと基底Dとを数158に示すように生成する。
【数158】
[この文献は図面を表示できません]
そして、基底生成部113は、基底Dを基底Bとし、基底Dを基底Bとし、基底Dを基底Bとする。また、基底生成部113は、i,j=1,...,6の各整数i,jと、L=1,...,nの各整数Lとについて、変数Di,jを変数Bi,jとし、変数D’i,j,Lを変数B’i,j,Lとする。
【0095】
(S104:基底B^生成ステップ)
鍵生成部114は、処理装置により、基底B^と、基底B^と、基底B^と、基底B^とを数159に示すように生成する。
【数159】
[この文献は図面を表示できません]
【0096】
(S105)の処理は、実施の形態1と同じである。
【0097】
つまり、(S101)から(S105)において、鍵生成装置100は、数160に示すアルゴリズムGABE(2)obを用いた、数161に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター秘密鍵skとを生成する。ここで、数160に示すように、アルゴリズムGCP−ABE(2)obは、数136に示すアルゴリズムGABE(1)obを用いる。
【数160】
[この文献は図面を表示できません]
【数161】
[この文献は図面を表示できません]
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
【0098】
図16に基づき、KeyGenアルゴリズムの処理について説明する。
(S501:情報入力ステップ)
情報入力部130は、入力装置により、属性集合Γ:={x,...,xn’|x∈Fq,n’≦n−1}を入力する。なお、属性集合Γは、例えば、復号鍵skΓの使用者の属性情報が設定されている。
【0099】
(S502:乱数生成ステップ)
乱数生成部143は、処理装置により、乱数を数162に示すように生成する。
【数162】
[この文献は図面を表示できません]
【0100】
(S503:鍵要素生成ステップ)
鍵要素生成部144は、処理装置により、復号鍵skΓの要素kを数163に示すように生成する。
【数163】
[この文献は図面を表示できません]
また、鍵要素生成部144は、処理装置により、復号鍵skΓの要素K1,j,K2,jを数164に示すように生成する。
【数164】
[この文献は図面を表示できません]
【0101】
(S504:鍵送信ステップ)
鍵送信部150は、(S501)で入力した属性の集合Γと、(S503)で生成されたk,K1,j,K2,jとを要素とする復号鍵skΓを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ送信する。もちろん、復号鍵skΓは、他の方法により復号装置300へ送信されてもよい。
【0102】
つまり、(S501)から(S503)において、鍵生成装置100は、数165に示すKeyGenアルゴリズムを実行して、復号鍵skΓを生成する。そして、(S504)で、鍵生成装置100は、生成した復号鍵skΓを復号装置300へ送信する。
【数165】
[この文献は図面を表示できません]
【0103】
暗号化装置200の機能と動作とについて説明する。
図15に示すように、暗号化装置200は、公開パラメータ受信部210、情報入力部220、暗号化データ生成部230、データ送信部240を備える。また、暗号化データ生成部230は、乱数生成部231、暗号要素生成部232、fベクトル生成部233、sベクトル生成部234を備える。
【0104】
図17に基づき、Encアルゴリズムの処理について説明する。
(S601)の処理は、図11に示す(S301)の処理と同じである。
【0105】
(S602:情報入力ステップ)
情報入力部220は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、アクセスストラクチャSの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャSのρは、例えば、復号可能なユーザの属性情報が設定されている。
また、情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。
【0106】
(S603:fベクトル生成ステップ)
fベクトル生成部233は、処理装置により、ベクトルfを数166に示すようにランダムに生成する。
【数166】
[この文献は図面を表示できません]
【0107】
(S604:sベクトル生成ステップ)
sベクトル生成部234は、処理装置により、ベクトルs→T:=(s,...,sを数167に示すように生成する。
【数167】
[この文献は図面を表示できません]
また、sベクトル生成部234は、処理装置により、値sを数168に示すように生成する。
【数168】
[この文献は図面を表示できません]
【0108】
(S605:乱数生成ステップ)
乱数生成部231は、処理装置により、乱数を数169に示すように生成する。
【数169】
[この文献は図面を表示できません]
【0109】
(S606:暗号要素生成ステップ)
暗号要素生成部232は、処理装置により、暗号文ctの要素cを数170に示すように生成する。
【数170】
[この文献は図面を表示できません]
また、暗号要素生成部232は、処理装置により、i=1,...,Lの各整数iについて、暗号文ctの要素cを数171に示すように生成する。
【数171】
[この文献は図面を表示できません]
また、暗号要素生成部232は、処理装置により、暗号文ctの要素cを数172に示すように生成する。
【数172】
[この文献は図面を表示できません]
【0110】
(S607:データ送信ステップ)
データ送信部240は、(S602)で入力したアクセスストラクチャSと、(S606)で生成されたc,c,...,c,cとを要素とする暗号文ctを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctは、他の方法により復号装置300へ送信されてもよい。
【0111】
つまり、(S601)から(S606)において、暗号化装置200は、数173に示すEncアルゴリズムを実行して、暗号文ctを生成する。そして、(S607)で、暗号化装置200は生成した暗号文ctを復号装置300へ送信する。
【数173】
[この文献は図面を表示できません]
【0112】
復号装置300の機能と動作とについて説明する。
図12に基づき、Decアルゴリズムの処理について説明する。
(S401:復号鍵受信ステップ)
復号鍵受信部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から送信された復号鍵skΓを受信する。また、復号鍵受信部310は、鍵生成装置100が生成した公開パラメータpkを受信する。
【0113】
(S402:データ受信ステップ)
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号文ctを受信する。
【0114】
(S403:スパンプログラム計算ステップ)
スパンプログラム計算部330は、処理装置により、(S402)で受信した暗号文ctに含まれるアクセスストラクチャSが、(S401)で受信した復号鍵skΓに含まれるΓを受理するか否かを判定する。
スパンプログラム計算部330は、アクセスストラクチャSがΓを受理する場合(S403で受理)、処理を(S404)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S403で拒絶)、暗号文ctΓを復号鍵skで復号できないとして処理を終了する。
【0115】
(S404)の処理は、実施の形態1と同じである。
【0116】
(S405:復号要素生成ステップ)
復号部350は、処理装置により、暗号要素D,...,D6n,Eを数174に示すように生成する。
【数174】
[この文献は図面を表示できません]
【0117】
(S406:ペアリング演算ステップ)
復号部350は、処理装置により、数175を計算して、セッション鍵K=gζを生成する。
【数175】
[この文献は図面を表示できません]
【0118】
(S407)の処理は、実施の形態1と同じである。
【0119】
つまり、(S401)から(S407)において、復号装置300は、数176に示すDecアルゴリズムを実行して、メッセージm’(=m)を生成する。
【数176】
[この文献は図面を表示できません]
【0120】
実施の形態2で説明したCP−ABE方式では、復号鍵skΓは、要素kで5個と、j=1,...,6の各整数jについての要素C1,j及び要素C2,jで12個との合計17個のGの要素から構成される。つまり、復号鍵skΓは、nについて定数サイズである。
【0121】
実施の形態2で説明したCP−ABE方式では、実施の形態1で説明したKP−ABE方式と同様に、復号処理(Decアルゴリズム)は、合計17個のみペアリング演算を実行する。つまり、復号処理で必要となるペアリング演算は少ない。
【0122】
実施の形態3.
実施の形態3では、実施の形態1,2で説明したABE方式を応用したFE方式について説明する。
実施の形態3では、実施の形態1,2と同じ部分については説明を省略し、実施の形態1,2と異なる部分について説明する。
【0123】
ここでは、実施の形態1で説明したKP−ABE方式を応用したKP−FE方式について説明する。
実施の形態1で説明したKP−ABE方式では、暗号文の要素(C1,j,C2,j)と、復号鍵の要素{ki=1,...,Lとが対応していた。KP−FE方式では、カテゴリt毎に、暗号文の要素(C1,j,t,C2,j,t)と、復号鍵の要素{ki.ti=1,...,Lとが生成される。そして、暗号文の要素(C1,j,t,C2,j,t)と、復号鍵の要素{ki,ti=1,...,Lとが対応する。
【0124】
鍵生成装置100、暗号化装置200、復号装置300の構成は、それぞれ図6図8に示す実施の形態1に係る鍵生成装置100、暗号化装置200、復号装置300の構成と同じである。
また、各アルゴリズムの処理は、図9図12に示す実施の形態1に係る各アルゴリズムの処理と同じ流れである。
【0125】
図9に基づき、Setupアルゴリズムの処理について説明する。
(S101:空間生成ステップ)
空間生成部111は、実施の形態1と同様に、パラメータparam:=(q,G,G,g,e)を生成する。
さらに、空間生成部111は、N:=5、t=1,...,dの各整数tについて、N1,t:=6nを設定する。ここで、dは属性カテゴリの数を表す値であり、1以上の整数である。また、nは1以上の整数である。そして、空間生成部111は、セキュリティパラメータ1λと、Nと、対称双線形ペアリング群のパラメータparamとを入力として、処理装置によりGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamV0:=(q,V,G,A,e)を生成する。また、空間生成部111は、t=1,...,dの各整数tについて、セキュリティパラメータ1λと、N1,tと、対称双線形ペアリング群のパラメータparamとを入力として、処理装置によりGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamV1,t:=(q,V1,t,G,A,e)を生成する。
【0126】
(S102:線形変換生成ステップ)
行列生成部112は、処理装置により、線形変換Xと線形変換{X1,tt=1,...,dとを生成する。
線形変換Xは、実施の形態1と同じである。線形変換{X1,tt=1,...,dは数177のように生成される。
【数177】
[この文献は図面を表示できません]
なお、以下、{μi,j,t,μ’i,j,L,ti,j=1,...,6;L=1,...,nは、線形変換X1,tにおける0以外の要素を示す。
【0127】
(S103:基底B生成ステップ)
基底生成部113は、処理装置により、基底Bと変数Bi,j,tと変数B’i,j,L,tとを数178に示すように生成する。
【数178】
[この文献は図面を表示できません]
また、基底生成部113は、処理装置により、基底Bと基底B1,tとを数179に示すように生成する。
【数179】
[この文献は図面を表示できません]
【0128】
(S104:基底B^生成ステップ)
鍵生成部114は、処理装置により、基底B^と、基底B^1,tと、基底B^と、基底B^1,tとを数180に示すように生成する。
【数180】
[この文献は図面を表示できません]
【0129】
(S105:マスター鍵生成ステップ)
鍵生成部114は、処理装置により、公開パラメータpk:=(1λ,param,B^,{B^1,tt=1,...,d)とし、マスター秘密鍵sk:=(B^,{B^1,tt=1,...,dとする。そして、鍵生成部114は、公開パラメータpkと、マスター秘密鍵skとをマスター鍵記憶部120に記憶する。
なお、param:=(paramV0,{paramV1,tt=1,...,d,g)である。
【0130】
つまり、(S101)から(S105)において、鍵生成装置100は、数181に示すアルゴリズムGFE(1)obを用いた、数182に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター秘密鍵skとを生成する。
【数181】
[この文献は図面を表示できません]
【数182】
[この文献は図面を表示できません]
【0131】
図10に基づき、KeyGenアルゴリズムの処理について説明する。
(S201)から(S202)までの処理は、実施の形態1と同じである。
【0132】
(S203:sベクトル生成ステップ)
sベクトル生成部142は、処理装置により、ベクトルs→T:=(s,...,sを数183に示すように生成する。
【数183】
[この文献は図面を表示できません]
また、sベクトル生成部142は、処理装置により、値sを数184に示すように生成する。
【数184】
[この文献は図面を表示できません]
【0133】
(S204:乱数生成ステップ)
乱数生成部143は、処理装置により、乱数を数185に示すように生成する。
【数185】
[この文献は図面を表示できません]
【0134】
(S205:鍵要素生成ステップ)
鍵要素生成部144は、処理装置により、復号鍵skの要素kを実施の形態1と同様に生成する。
また、鍵要素生成部144は、処理装置により、i=1,...,Lの各整数i及び集合Ivi→に含まれるインデックスtについて、復号鍵skの要素kを数186に示すように生成する。
【数186】
[この文献は図面を表示できません]
【0135】
(S206)の処理は、実施の形態1と同じである。
【0136】
つまり、(S201)から(S205)において、鍵生成装置100は、数187に示すKeyGenアルゴリズムを実行して、復号鍵skを生成する。そして、(S206)で、鍵生成装置100は、生成した復号鍵skを復号装置300へ送信する。
【数187】
[この文献は図面を表示できません]
【0137】
図11に基づき、Encアルゴリズムの処理について説明する。
(S301)の処理は、実施の形態1と同じである。
【0138】
(S302:情報入力ステップ)
情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。また、情報入力部220は、入力装置により、属性集合Γ:={x1,t,...,xnt,t,n’≦n−1,t=1,...,d}を入力する。
【0139】
(S303:乱数生成ステップ)
乱数生成部231は、処理装置により、乱数を数188に示すように生成する。
【数188】
[この文献は図面を表示できません]
【0140】
(S304:暗号要素生成ステップ)
暗号要素生成部232は、処理装置により、暗号文ctΓの要素c及び要素cを実施の形態1と同様に生成する。
また、暗号要素生成部232は、処理装置により、暗号文ctΓの要素C1,j,t,C2,j,tを数189に示すように生成する。
【数189】
[この文献は図面を表示できません]
【0141】
(S305)の処理は、実施の形態1と同じである。
【0142】
つまり、(S301)から(S304)において、暗号化装置200は、数190に示すEncアルゴリズムを実行して、暗号文ctΓを生成する。そして、(S305)で、暗号化装置200は生成した暗号文ctΓを復号装置300へ送信する。
【数190】
[この文献は図面を表示できません]
【0143】
図12に基づき、Decアルゴリズムの処理について説明する。
(S401)から(S404)までの処理は、実施の形態1と同じである。
【0144】
(S405:復号要素生成ステップ)
復号部350は、処理装置により、復号要素D1,t,...,D6n,t,Ej,tを数191に示すように生成する。
【数191】
[この文献は図面を表示できません]
【0145】
(S406:ペアリング演算ステップ)
復号部350は、処理装置により、数192を計算して、セッション鍵K=gζを生成する。
【数192】
[この文献は図面を表示できません]
【0146】
(S407)の処理は、実施の形態1と同じである。
【0147】
つまり、(S401)から(S407)において、復号装置300は、数193に示すDecアルゴリズムを実行して、メッセージm’(=m)を生成する。
【数193】
[この文献は図面を表示できません]
【0148】
ここでは、実施の形態1で説明したKP−ABE方式を応用したKP−FE方式について説明した。実施の形態2で説明したCP−ABE方式を応用したCP−FE方式についても、同様の考え方により構成できる。実施の形態2で説明したCP−ABE方式を応用したCP−FE方式の各アルゴリズムは、数194から数198に示す通りである。
【数194】
[この文献は図面を表示できません]
【数195】
[この文献は図面を表示できません]
【数196】
[この文献は図面を表示できません]
【数197】
[この文献は図面を表示できません]
【数198】
[この文献は図面を表示できません]
【0149】
以上のように、実施の形態1,2に係るABE方式を応用してFE方式を構成することができる。
【0150】
実施の形態4.
実施の形態4では、実施の形態2で説明したCP−ABE方式を応用した属性ベース署名(Attribute−Based Signeture ABS)方式について説明する。
実施の形態4では、実施の形態2と同じ部分については説明を省略し、実施の形態1と異なる部分について説明する。
【0151】
第1に、実施の形態4に係る署名方式の基本構成について説明する。
第2に、実施の形態4に係る署名方式を実現する暗号システム10の構成について説明する。
第3に、実施の形態4に係る署名方式について詳細に説明する。
【0152】
<第1.暗号方式の基本構成>
ABS方式の構成を簡単に説明する。ABS方式は、Setup、KeyGen、Sig、Verの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλと、暗号文に対する属性の数の上限nとが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、公開パラメータpkと、マスター鍵skと、属性集合Γ:={x1≦j≦n’とを入力として、署名鍵skΓを出力する確率的アルゴリズムである。
(Sig)
Sigアルゴリズムは、公開パラメータpkと、メッセージmと、アクセスストラクチャS:=(M,ρ)と、署名鍵skΓとを入力として、署名σを出力する確率的アルゴリズムである。
(Ver)
Verアルゴリズムは、公開パラメータpkと、メッセージmと、アクセスストラクチャS:=(M,ρ)と、署名σとを入力として、署名の検証に成功したことを示す値“1”、又は、署名の検証に失敗したことを示す値“0”を出力するアルゴリズムである。
【0153】
<第2.ABS方式を実現する暗号システム10の構成>
図18は、実施の形態4に係るABS方式を実現する暗号システム10の構成図である。
暗号システム10は、鍵生成装置100、署名装置400(送信装置の一例)、検証装置500(受信装置の一例)を備える。
鍵生成装置100は、セキュリティパラメータλと、暗号文に対する属性の数の上限nとを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、属性集合Γを入力としてKeyGenアルゴリズムを実行して、署名鍵skΓを生成して署名装置400へ秘密裡に送信する。
署名装置400は、公開パラメータpkと、メッセージmと、アクセスストラクチャSと、署名鍵skΓとを入力としてSigアルゴリズムを実行して、署名σを生成する。署名装置400は、生成した署名σと、メッセージmと、アクセスストラクチャSと、を検証装置500へ送信する。
検証装置500は、公開パラメータpkと、メッセージmと、アクセスストラクチャSと、署名σとを入力としてVerアルゴリズムを実行して、値“1”、又は、値“0”を出力する。
【0154】
<第3.署名方式>
図19は、実施の形態4に係る鍵生成装置100の構成図である。図20は、実施の形態4に係る署名装置400の構成図である。図21は、実施の形態4に係る検証装置500の構成図である。
図22図23とは、実施の形態4に係る鍵生成装置100の動作を示すフローチャートである。なお、図22は、実施の形態4に係るSetupアルゴリズムの処理を示すフローチャートであり、図23は、実施の形態4に係るKeyGenアルゴリズムの処理を示すフローチャートである。図24は、実施の形態4に係る署名装置400の動作を示すフローチャートであり、実施の形態4に係るSigアルゴリズムの処理を示す。図25は、実施の形態4に係る検証装置500の動作を示すフローチャートであり、実施の形態4に係るVerアルゴリズムの処理を示す。
【0155】
なお、以下の説明において、H:=(KHλ,Hhkλ,D)は、衝突困難ハッシュ関数である(非特許文献30参照)。衝突困難ハッシュ関数とは、出力が同じになる2つの入力を見つけることが困難なハッシュ関数である。
具体的には、アルゴリズムGbpgに関する衝突困難ハッシュ関数系Hと、多項式poly(λ)とについて以下の2つのことが言える。
1.鍵空間系は、λによって索引付けされる。各鍵空間は、KHλによって示されるビット列における確率空間である。1λを入力とした場合の出力分布がKHλと等しい確率的多項式時間アルゴリズムが存在する。
2.ハッシュ関数系は、λと、KHλからランダムに選択されたhkと、D:={0,1}poly(λ)とによって索引付けされる。ここで、各関数Hhkλ,Dは、Dの要素からFへの写像である。なお、qは、アルゴリズムGbpg(1λ)の出力paramの最初の要素である。1λとhkとd∈Dとを入力として、Hhkλ,D(d)を出力する決定的多項式時間アルゴリズムがある。
【0156】
鍵生成装置100の機能と動作とについて説明する。
図19に示すように、鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵送信部150を備える。マスター鍵生成部110は、空間生成部111、行列生成部112、基底生成部113、鍵生成部114を備える。復号鍵生成部140は、乱数生成部143、鍵要素生成部144を備える。
図22に基づき、Setupアルゴリズムの処理について説明する。
(S701:空間生成ステップ)
空間生成部111は、図9の(S101)と同様に、パラメータparam:=(q,G,G,g,e)を生成する。
さらに、空間生成部111は、N:=4、N:=6n、N:=7を設定する。そして、空間生成部111は、t=0,1,2の各整数tについて、セキュリティパラメータ1λと、Nと、対称双線形ペアリング群のパラメータparamとを入力として、処理装置によりGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,V,G,A,e)を生成する。
【0157】
(S702:線形変換生成ステップ)
行列生成部112は、処理装置により、t=0,2の各整数tについて、線形変換Xを数199に示すように生成する。
【数199】
[この文献は図面を表示できません]
また、行列生成部112は、処理装置により、線形変換Xを数200に示すように生成する。
【数200】
[この文献は図面を表示できません]
なお、以下、{μi,j,μ’i,j,Li,j=1,...,6;L=1,...,nは、線形変換Xにおける0以外の要素を示す。
【0158】
(S703:基底B生成ステップ)
基底生成部113は、処理装置により、基底Bと基底Bと変数Bi,jと変数B’i,j,Lとを数201に示すように生成する。
【数201】
[この文献は図面を表示できません]
また、基底生成部113は、処理装置により、基底Bと基底Bと基底Bとを数202に示すように生成する。
【数202】
[この文献は図面を表示できません]
【0159】
(S704:基底B^生成ステップ)
鍵生成部114は、処理装置により、基底B^と、基底B^と、基底B^と、基底B^と、基底B^と、基底B^とを数203に示すように生成する。
【数203】
[この文献は図面を表示できません]
【0160】
(S705:ハッシュキー生成ステップ)
マスター鍵生成部110は、処理装置により、数204を計算して、ハッシュキーhkをランダムに生成する。
【数204】
[この文献は図面を表示できません]
【0161】
(S706:マスター鍵生成ステップ)
鍵生成部114は、処理装置により、公開パラメータpk:=(1λ,hk,param,{B^t=0,1,2,{B^t=1,2,b0,3)とし、マスター秘密鍵sk:=b0,1とする。そして、鍵生成部114は、公開パラメータpkと、マスター秘密鍵skとをマスター鍵記憶部120に記憶する。
なお、param:=({paramVtt=0,1,2,g:=e(g,g)φ)である。
【0162】
つまり、(S701)から(S706)において、鍵生成装置100は、数205に示すアルゴリズムGABSobを用いた、数206に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター秘密鍵skとを生成する。
【数205】
[この文献は図面を表示できません]
【数206】
[この文献は図面を表示できません]
【0163】
図23に基づき、KeyGenアルゴリズムの処理について説明する。
(S801)の処理は、図16の(S501)の処理と同じである。但し、アクセスストラクチャSのρは、例えば、署名鍵skΓの使用者の属性情報が設定されている。
【0164】
(S802:乱数生成ステップ)
乱数生成部143は、処理装置により、乱数を数207に示すように生成する。
【数207】
[この文献は図面を表示できません]
【0165】
(S803:鍵要素生成ステップ)
鍵要素生成部144は、処理装置により、署名鍵skΓの要素kを数208に示すように生成する。
【数208】
[この文献は図面を表示できません]
また、鍵要素生成部144は、処理装置により、署名鍵skΓの要素L1,j,L2,jを数209に示すように生成する。
【数209】
[この文献は図面を表示できません]
また、鍵要素生成部144は、処理装置により、署名鍵skΓの要素k2,1,k2,2を数210に示すように生成する。
【数210】
[この文献は図面を表示できません]
【0166】
(S804:鍵送信ステップ)
鍵送信部150は、(S801)で入力した属性の集合Γと、(S803)で生成されたk,L1,j,L2,j,k2,1,k2,2とを要素とする署名鍵skΓを、例えば通信装置によりネットワークを介して秘密裡に署名装置400へ送信する。もちろん、署名鍵skΓは、他の方法により署名装置400へ送信されてもよい。
【0167】
つまり、(S801)から(S803)において、鍵生成装置100は、数211に示すKeyGenアルゴリズムを実行して、復号鍵skΓを生成する。そして、(S804)で、鍵生成装置100は、生成した復号鍵skΓを復号装置300へ送信する。
【数211】
[この文献は図面を表示できません]
【0168】
なお、{L1,j,L2,jj=1,...,6と、ベクトルyとから、要素kは数212のように定義される。
【数212】
[この文献は図面を表示できません]
【0169】
署名装置400の機能と動作とについて説明する。
図20に示すように、署名装置400は、署名鍵受信部410、情報入力部420、補完係数計算部430、署名データ生成部440、データ送信部450を備える。また、署名データ生成部440は、乱数生成部441、署名要素生成部442を備える。
【0170】
図24に基づき、Sigアルゴリズムの処理について説明する。
(S901:署名鍵受信ステップ)
署名鍵受信部410は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した署名鍵skΓを受信する。また、署名鍵受信部410は、鍵生成装置100が生成した公開パラメータpkを受信する。
【0171】
(S902:情報入力ステップ)
情報入力部420は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。また、情報入力部420は、入力装置により、署名を付すメッセージmを入力する。
【0172】
(S903:スパンプログラム計算ステップ)
補完係数計算部430は、処理装置により、(S902)で入力したアクセスストラクチャSが、(S901)で受信した署名鍵skΓに含まれる属性集合Γを受理するか否かを判定する。
補完係数計算部430は、アクセスストラクチャSが属性集合Γを受理する場合(S903で受理)、処理を(S904)へ進める。一方、アクセスストラクチャSが属性集合Γを拒絶する場合(S903で拒絶)、処理を終了する。
【0173】
(S904:補完係数計算ステップ)
補完係数計算部430は、処理装置により、数213となるベクトルyと、数214となるIと、Iに含まれる各整数iについて定数(補完係数)αとを計算する。
【数213】
[この文献は図面を表示できません]
【数214】
[この文献は図面を表示できません]
【0174】
(S905:乱数生成ステップ)
乱数生成部441は、処理装置により、乱数を数215に示すように生成する。
【数215】
[この文献は図面を表示できません]
【0175】
(S906:署名要素生成ステップ)
署名要素生成部442は、処理装置により、署名σの要素sを数216に示すように生成する。
【数216】
[この文献は図面を表示できません]
ここで、rは、数217である。
【数217】
[この文献は図面を表示できません]
また、署名要素生成部442は、処理装置により、i=1,...,Lの各整数iについて、署名σの要素sを数218に示すように生成する。
【数218】
[この文献は図面を表示できません]
ここで、rは、数219である。
【数219】
[この文献は図面を表示できません]
また、γとu:=(ui,i’(i’=1,...,n)とは、数220である。
【数220】
[この文献は図面を表示できません]
また、署名要素生成部442は、処理装置により、署名σの要素sL+1を数221に示すように生成する。
【数221】
[この文献は図面を表示できません]
ここで、rL+1は、数222である。
【数222】
[この文献は図面を表示できません]
【0176】
(S907:データ送信ステップ)
データ送信部450は、要素s,s,sL+1と、メッセージmと、アクセスストラクチャS:=(M,ρ)とを含む署名σを、例えば通信装置によりネットワークを介して検証装置500へ送信する。もちろん、署名σは、他の方法により検証装置500へ送信されてもよい。
【0177】
つまり、(S901)から(S906)において、署名装置400は、数223に示すSigアルゴリズムを実行して、署名σを生成する。そして、(S907)で、署名装置400は、生成した署名σを検証装置500へ送信する。
【数223-1】
[この文献は図面を表示できません]
【数223-2】
[この文献は図面を表示できません]
【0178】
検証装置500の機能と動作とについて説明する。
図21に示すように、検証装置500は、公開パラメータ受信部510、データ受信部520、検証データ生成部530、検証部540を備える。また、検証データ生成部530は、fベクトル生成部531、sベクトル生成部532、乱数生成部533、検証要素生成部534を備える。
【0179】
図25に基づき、Verアルゴリズムの処理について説明する。
(S1001:公開パラメータ受信ステップ)
公開パラメータ受信部510は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを受信する。
【0180】
(S1002:署名受信ステップ)
データ受信部520は、例えば、通信装置によりネットワークを介して、署名装置400が送信した署名σを受信する。
【0181】
(S1003:fベクトル生成ステップ)
fベクトル生成部531は、処理装置により、ベクトルfを数224に示すようにランダムに生成する。
【数224】
[この文献は図面を表示できません]
【0182】
(S1004:sベクトル生成ステップ)
sベクトル生成部532は、処理装置によりベクトルs→T:=(s,...,sを数225に示すように生成する。
【数225】
[この文献は図面を表示できません]
また、sベクトル生成部532は、処理装置により、値sを数226に示すように生成する。
【数226】
[この文献は図面を表示できません]
【0183】
(S1005:乱数生成ステップ)
乱数生成部533は、処理装置により、乱数を数227に示すように生成する。
【数227】
[この文献は図面を表示できません]
【0184】
(S1006:検証要素生成ステップ)
検証要素生成部534は、処理装置により、検証鍵の要素cを数228に示すように生成する。
【数228】
[この文献は図面を表示できません]
また、検証要素生成部534は、処理装置により、i=1,...,Lの各整数iについて、検証鍵の要素cを数229に示すように生成する。
【数229】
[この文献は図面を表示できません]
また、検証要素生成部534は、処理装置により、検証鍵の要素cL+1を数230に示すように生成する。
【数230】
[この文献は図面を表示できません]
【0185】
(S1007:第1ペアリング演算ステップ)
検証部540は、処理装置により、ペアリング演算e(b0,1,s)を計算する。
ペアリング演算e(b0,1,s)を計算した結果が値1であれば、検証部540は、署名の検証に失敗したことを示す値0を出力して、処理を終了する。一方、ペアリング演算e(b0,1,s)を計算した結果が値1でなければ、検証部540は、処理をS1008へ進める。
【0186】
(S1008:第2ペアリング演算ステップ)
検証部540は、処理装置により、数231に示すペアリング演算を計算する。
【数231】
[この文献は図面を表示できません]
数231に示すペアリング演算を計算した結果が値1であれば、検証部540は、署名の検証に成功したことを示す値1を出力する。一方、その他の値であれば、検証部540は、署名の検証に失敗したことを示す値0を出力する。
【0187】
つまり、(S1001)から(S1008)において、検証装置500は、数232に示すVerアルゴリズムを実行して、署名σを検証する。
【数232】
[この文献は図面を表示できません]
【0188】
以上のように、実施の形態2で説明したCP−ABE方式を応用したABS方式を構成することができる。
実施の形態2で説明したCP−ABE方式で復号鍵skΓのサイズを小さくできたのと同様に、実施の形態4で説明したABS方式では、署名鍵skΓのサイズを小さくすることができる。
【0189】
なお、ここでは、実施の形態2で説明したCP−ABE方式を応用したABS方式について説明した。実施の形態3で説明したCP−FE方式を応用したABS方式についても、実施の形態4で説明したABS方式に対して、実施の形態3の考え方を応用することにより構成できる。
【0190】
実施の形態5.
以上の実施の形態では、双対ベクトル空間において暗号処理を実現する方法について説明した。実施の形態5では、双対加群において暗号処理を実現する方法について説明する。
【0191】
つまり、以上の実施の形態では、素数位数qの巡回群において暗号処理を実現した。しかし、合成数Mを用いて数233のように環Rを表した場合、環Rを係数とする加群においても、上記実施の形態で説明した暗号処理を適用することができる。
【数233】
[この文献は図面を表示できません]
【0192】
以上の実施の形態で説明したアルゴリズムにおけるFをRに変更すれば、双対加群における暗号処理を実現することができる。
【0193】
なお、以上の実施の形態では、符号化部、秘匿部、秘密鍵ランダム化部、暗号文ランダム化部の次元をそれぞれ、n、2n、2n、n次元とし、基底B及び基底Bの次元を6n次元とした。しかし、これに限らず、秘匿部、秘密鍵ランダム化部、暗号文ランダム化部の次元をそれぞれ、nに依存しない、u,w,z次元とし、基底B及び基底Bの次元をn+u+w+z次元としてもよい。なお、u,w,zは、0以上の整数である。
【0194】
また、上記説明では、KPの場合には、暗号文のサイズが小さくなるように、第1ベクトルを用いて暗号文の要素を生成し、第2ベクトルを用いて復号鍵の要素を生成した。しかし、KPの場合に、復号鍵のサイズが小さくなるように、第1ベクトルを用いて復号鍵の要素を生成し、第2ベクトルを用いて暗号文の要素を生成してもよい。
同様に、上記説明では、CPの場合には、復号鍵のサイズが小さくなるように、第1ベクトルを用いて復号鍵の要素を生成し、第2ベクトルを用いて暗号文の要素を生成した。しかし、CPの場合に、暗号文のサイズが小さくなるように、第1ベクトルを用いて暗号文の要素を生成し、第2ベクトルを用いて復号鍵の要素を生成してもよい。
【0195】
また、以上の実施の形態では、1台の鍵生成装置100が復号鍵を生成するとした。しかし、以上の実施の形態のアルゴリズムを、非特許文献3に記載された分散多管理者の方式と組み合わせて、複数の鍵生成装置100により1つの復号鍵が生成されるようにすることも可能である。
【0196】
なお、以上の実施の形態において、安全性の証明の観点から、i=1,...,Lの各整数iについてのρ(i)は、それぞれ異なる識別情報tについての肯定形の組(t,v)又は否定形の組¬(t,v)であると限定してもよい。
言い替えると、ρ(i)=(t,v)又はρ(i)=¬(t,v)である場合に、関数ρ~を、ρ~(i)=tである{1,...,L}→{1,...d}の写像であるとする。この場合、ρ~が単射であると限定してもよい。なお、ρ(i)は、上述したアクセスストラクチャS:=(M,ρ(i))のρ(i)である。
【0197】
図26は、実施の形態1〜5に示した暗号システム10の各装置(鍵生成装置100、暗号化装置200、復号装置300、署名装置400、検証装置500)のハードウェア構成の例を示す図である。
暗号システム10の各装置はコンピュータであり、暗号システム10の各装置の各要素をプログラムで実現することができる。
暗号システム10の各装置のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
【0198】
演算装置901は、プログラムを実行するCPU(Central Processing Unit)等である。外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置等である。主記憶装置903は、例えばRAM(Random Access Memory)等である。通信装置904は、例えば通信ボード等である。入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
【0199】
プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
プログラムは、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵送信部150、公開パラメータ受信部210、情報入力部220、暗号化データ生成部230、データ送信部240、復号鍵受信部310、データ受信部320、スパンプログラム計算部330、補完係数計算部340、復号部350、署名鍵受信部410、情報入力部420、補完係数計算部430、署名データ生成部440、データ送信部450、公開パラメータ受信部510、データ受信部520、検証データ生成部530、検証部540として説明している機能を実現するプログラムである。
更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、上記プログラムを実行する。
また、実施の形態1〜5の説明において、「公開パラメータpk」、「マスター秘密鍵sk」、「復号鍵skΓ,sk」、「暗号文ct,ctΓ」、「署名鍵skΓ」、「検証鍵」、「アクセスストラクチャS」、「属性集合Γ」、「メッセージm」、「署名σ」等として説明している情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
【0200】
なお、図26の構成は、あくまでも暗号システム10の各装置のハードウェア構成の一例を示すものであり、暗号システム10の各装置のハードウェア構成は図26に記載の構成に限らず、他の構成であってもよい。
【符号の説明】
【0201】
100 鍵生成装置、110 マスター鍵生成部、111 空間生成部、112 行列生成部、113 基底生成部、114 鍵生成部、120 マスター鍵記憶部、130 情報入力部、140 復号鍵生成部、141 fベクトル生成部、142 sベクトル生成部、143 乱数生成部、144 鍵要素生成部、150 鍵送信部、200 暗号化装置、210 公開パラメータ受信部、220 情報入力部、230 暗号化データ生成部、231 乱数生成部、232 暗号要素生成部、233 fベクトル生成部、234 sベクトル生成部、240 データ送信部、300 復号装置、310 復号鍵受信部、320 データ受信部、330 スパンプログラム計算部、340 補完係数計算部、350 復号部、400 署名装置、410 署名鍵受信部、420 情報入力部、430 補完係数計算部、440 署名データ生成部、441 乱数生成部、442 署名要素生成部、450 データ送信部、500 検証装置、510 公開パラメータ受信部、520 データ受信部、530 検証データ生成部、531 fベクトル生成部、532 sベクトル生成部、533 乱数生成部、534 検証要素生成部、540 検証部。
図1
[この文献は図面を表示できません]
図2
[この文献は図面を表示できません]
図3
[この文献は図面を表示できません]
図4
[この文献は図面を表示できません]
図5
[この文献は図面を表示できません]
図6
[この文献は図面を表示できません]
図7
[この文献は図面を表示できません]
図8
[この文献は図面を表示できません]
図9
[この文献は図面を表示できません]
図10
[この文献は図面を表示できません]
図11
[この文献は図面を表示できません]
図12
[この文献は図面を表示できません]
図13
[この文献は図面を表示できません]
図14
[この文献は図面を表示できません]
図15
[この文献は図面を表示できません]
図16
[この文献は図面を表示できません]
図17
[この文献は図面を表示できません]
図18
[この文献は図面を表示できません]
図19
[この文献は図面を表示できません]
図20
[この文献は図面を表示できません]
図21
[この文献は図面を表示できません]
図22
[この文献は図面を表示できません]
図23
[この文献は図面を表示できません]
図24
[この文献は図面を表示できません]
図25
[この文献は図面を表示できません]
図26
[この文献は図面を表示できません]