(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】暗号システム、鍵生成装置、暗号化装置、復号装置、方法及びプログラム
(51)【国際特許分類】
G09C 1/00 20060101AFI20241112BHJP
【FI】
G09C1/00 620Z
(21)【出願番号】P 2023039565
(22)【出願日】2023-03-14
(62)【分割の表示】P 2021530426の分割
【原出願日】2019-07-10
【審査請求日】2023-03-14
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】富田 潤一
【審査官】青木 重徳
(56)【参考文献】
【文献】特開2014-095847(JP,A)
【文献】市川 幸宏 ほか,関数型暗号アプリケーションにおける適切な述語付与方式の検討,情報処理学会研究報告 2012(平成24)年度▲6▼ [DVD-ROM],日本,一般社団法人情報処理学会,2013年04月15日,Vol.2013-DPS-15 No.5,p. 1-6
【文献】高島 克幸,高効率な適応的安全属性ベース暗号を設計するための新しい照明技法,SCIS2016 [USB],2016年01月19日,2E4-3,pp. 1-7
【文献】Allison Lewko et al.,New Proof Methods for Attribute-Based Encryption: Achieving Full Security through Selective Techniques,LNSC, Advances in Cryptology - CRYPTO 2012,2012年,volume 7417,pp. 180-198
【文献】Katsuyuki Takashima,New Proof Techniques for DLIN-Based Adaptively Secure Attribute-Based Encryption,Cryptology ePrint Archive,[オンライン],2017年04月18日,Paper 2015/1021,<URL: https://eprint.iacr.org/2015/1021.pdf>,[2024年 3月11日検索]、インターネット
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
THE ACM DIGITAL LIBRARY
(57)【特許請求の範囲】
【請求項1】
属性ベース暗号に用いられる公開鍵と、属性と前記属性に関する任意の条件式で表されたポリシーとのうちのいずれか一方とを少なくとも入力として、前記属性と前記ポリシーとのうちのいずれか一方が埋め込まれた暗号文を生成する暗号化手段と、
前記公開鍵と、前記属性ベース暗号に用いられるマスター秘密鍵と、前記属性と前記ポリシーとのうちの前記一方とは異なる他方とを入力として、前記他方が埋め込まれた秘密鍵を生成する鍵生成手段と、
前記公開鍵と、前記暗号文と、前記秘密鍵とを入力として、前記暗号文を復号する復号手段と、
を有し、
前記条件式は、非単調論
理式を含む任意の論理式で表現され、
前記鍵生成手段は、
前記暗号化手段によって前記ポリシーが埋め込まれた暗号文が生成された場合、前記ポリシー中の同じ属性ラベルの出現回数に依存しない鍵サイズの前記秘密鍵を生成し、
前記暗号化手段は、
前記鍵生成手段によって前記ポリシーが埋め込まれる秘密鍵が生成される場合、前記ポリシー中の同じ属性ラベルの出現回数に依存しない暗号文サイズの前記暗号文を生成する、ことを特徴とする暗号システム。
【請求項2】
属性ベース暗号に用いられる公開鍵及びマスター秘密鍵と、属性と前記属性に関する任意の条件式で表されたポリシーとのうちのいずれか一方とを入力として、前記属性と前記ポリシーとのうちのいずれか一方が埋め込まれた秘密鍵を生成する鍵生成手段、
を有し、
前記条件式は、非単調論
理式を含む任意の論理式で表現され、
前記鍵生成手段は、
前記ポリシー中の同じ属性ラベルの出現回数に依存しない鍵サイズの前記秘密鍵を生成する、ことを特徴とする鍵生成装置。
【請求項3】
属性ベース暗号に用いられる公開鍵と、属性と前記属性に関する任意の条件式で表されたポリシーとのうちのいずれか一方とを少なくとも入力として、前記属性と前記ポリシーとのうちのいずれか一方が埋め込まれた暗号文を生成する暗号化手段、
を有し、
前記条件式は、非単調論
理式を含む任意の論理式で表現され、
前記暗号化手段は、
前記ポリシー中の同じ属性ラベルの出現回数に依存しない暗号文サイズの前記暗号文を生成する、ことを特徴とする暗号化装置。
【請求項4】
属性ベース暗号に用いられる公開鍵と、属性と前記属性に関する任意の条件式で表されたポリシーとのうちのいずれか一方が埋め込まれた暗号文と、前記属性と前記ポリシーとのうちのいずれか一方とは異なる他方が埋め込まれた秘密鍵とを入力として、前記暗号文を復号する復号手段、
を有し、
前記条件式は、非単調論
理式を含む任意の論理式で表現され、
前記ポリシーが前記暗号文又は前記秘密鍵のいずれに埋め込まれているかに応じて、前記秘密鍵又は前記暗号文のいずれかのサイズが前記ポリシー中の同じ属性ラベルの出現回数の最大値に依存しない、ことを特徴とする復号装置。
【請求項5】
暗号化装置が、属性ベース暗号に用いられる公開鍵と、属性と前記属性に関する任意の条件式で表されたポリシーとのうちのいずれか一方とを少なくとも入力として、前記属性と前記ポリシーとのうちのいずれか一方が埋め込まれた暗号文を生成する暗号化手順と、
鍵生成装置が、前記公開鍵と、前記属性ベース暗号に用いられるマスター秘密鍵と、前記属性と前記ポリシーとのうちの前記一方とは異なる他方とを入力として、前記他方が埋め込まれた秘密鍵を生成する鍵生成手順と、
復号装置が、前記公開鍵と、前記暗号文と、前記秘密鍵とを入力として、前記暗号文を復号する復号手順と、
を実行し、
前記条件式は、非単調論
理式を含む任意の論理式で表現され、
前記鍵生成手順は、
前記暗号化手順で前記ポリシーが埋め込まれた暗号文が生成された場合、前記ポリシー中の同じ属性ラベルの出現回数に依存しない鍵サイズの前記秘密鍵を生成し、
前記暗号化手順は、
前記鍵生成手順で前記ポリシーが埋め込まれる秘密鍵が生成される場合、前記ポリシー中の同じ属性ラベルの出現回数に依存しない暗号文サイズの前記暗号文を生成する、ことを特徴とする方法。
【請求項6】
コンピュータを、請求項1に記載の暗号システムにおける各手段、請求項2に記載の鍵生成装置における各手段、請求項3に記載の暗号化装置における各手段又は請求項4に記載の復号装置における各手段、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号システム、鍵生成装置、暗号化装置、復号装置、方法及びプログラムに関する。
【背景技術】
【0002】
複雑な復号制御が可能な暗号方式として属性ベース暗号が知られている。属性ベース暗号は、主に、鍵ポリシー属性ベース暗号と暗号文ポリシー属性ベース暗号との2つに分けられる。鍵ポリシー属性ベース暗号では、暗号文には平文の他に属性の情報が埋め込まれており、秘密鍵にはポリシー(属性に対する条件式のようなもの)が埋め込まれる。暗号文を秘密鍵で復号する場合には、暗号文に埋め込まれている属性が、秘密鍵に埋め込まれているポリシーを満たすときのみ復号することができる。他方で、暗号文ポリシー属性ベース暗号は、鍵ポリシー属性ベース暗号の対になるもので、暗号文にポリシーが埋め込まれ、秘密鍵に属性の情報が埋め込まれる。
【0003】
属性ベース暗号の重要な性質の1つにポリシーの表現力がある。ポリシーの表現力とは、概ね、どの程度きめ細かく復号条件を記述できるかということを指す。きめ細かく復号条件を記述できるほどポリシーの表現力が高いことを表す。一般に、ポリシーは論理式で表現されることが多い。例えば、「(役職=部長)かつ(部署=総務部)」等のように表される。これは、役職として部長という属性を持っており、かつ、部署として総務部という属性を持っている場合のみ復号を許すというポリシーである。
【0004】
ポリシーの表現力に関する項目の1つとして、条件式の中で否定を扱えるかどうかというものがある。すなわち、例えば、「(役職=部長)かつ(部署≠総務部)」というような条件式を扱えるかどうかというものである。このような形で否定を含む条件式を表現でき、かつ、方式の中で属性集合やポリシーの大きさの制限が掛からない暗号方式として、OT方式が知られている(例えば非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0005】
【文献】Okamoto T., Takashima K. (2012) Fully Secure Unbounded Inner-Product and Attribute-Based Encryption. In: Wang X., Sako K. (eds) Advances in Cryptology - ASIACRYPT 2012. ASIACRYPT 2012. Lecture Notes in Computer Science, vol 7658. Springer, Berlin, Heidelberg
【発明の概要】
【発明が解決しようとする課題】
【0006】
OT方式は表現力の高さや、属性集合やポリシーの大きさに制限が掛からないという点で優れている一方で、動作が非効率的であり、鍵生成処理や暗号化処理、復号処理等に時間を要する場合がある。属性ベース暗号はスマートフォン等にも応用可能性があり、比較的計算リソースの小さな機器でも実用的な時間で動作することが望ましい。
【0007】
また、同じ属性ラベルを多数含むようなポリシーを扱えるようにするためには、OT方式では属性を埋め込む側の要素数を、同じ属性ラベルの出現回数の最大値に比例して増大させる必要がある。例えば、「((役職=部長)かつ(部署=総務部))または((役職=課長)かつ(部署=経理部))」という条件式を考えると、この条件式の中には役職という属性ラベルと部署という属性ラベルとがそれぞれ2回ずつ含まれている。このような条件式を扱えるようにするためには、もとのOT方式に対して鍵ポリシー属性ベース暗号では暗号文(暗号文ポリシー属性ベース暗号では秘密鍵)の大きさ(サイズ)を2倍にする必要がある。同じ属性ラベルの出現回数がより多い条件式を扱えるようにするためには、暗号文又は秘密鍵のサイズをより大きくしなければならない。
【0008】
本発明の実施形態は、上記の点に鑑みてなされたもので、暗号文や秘密鍵のサイズを増大させずに任意の条件式をポリシーとして利用可能で、効率的な属性ベース暗号を実現することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本実施形態に係る暗号システムは、属性ベース暗号に用いられる公開鍵とマスター秘密鍵とを生成するセットアップ手段と、前記公開鍵と、属性と前記属性に関する任意の条件式で表されたポリシーとのうちのいずれか一方とを少なくとも入力として、前記属性と前記ポリシーとのうちのいずれか一方が埋め込まれた暗号文を少なくとも生成する暗号化手段と、前記公開鍵と、前記マスター秘密鍵と、前記属性と前記ポリシーとのうちの前記一方とは異なる他方とを入力として、前記他方が埋め込まれた秘密鍵を生成する鍵生成手段と、前記公開鍵と、前記暗号文と、前記秘密鍵とを入力として、前記暗号文を復号する復号手段と、を有することを特徴とする。
【発明の効果】
【0010】
暗号文や秘密鍵のサイズを増大させずに任意の条件式をポリシーとして利用可能で、効率的な属性ベース暗号を実現することができる。
【図面の簡単な説明】
【0011】
【
図1】本実施形態に係る暗号システムの全体構成の一例を示す図である。
【
図2】本実施形態に係る鍵生成装置、暗号化装置及び復号装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態(以降、「本実施形態」とも表す。)について説明する。本実施形態では、暗号文や秘密鍵のサイズを増大させずに任意の条件式をポリシーとして利用可能で、かつ、効率的に動作する属性ベース暗号を実現する暗号システム1について説明する。
【0013】
<準備>
まず、本実施形態の説明に必要な記法や概念等について説明する。
【0014】
・記法
pを素数として、体Z/pZをZpと表す。有限の長さの全てのビット列の集合を{0,1}*と表す。例えば、nを自然数として、長さnの全てのビット列の集合を{0,1}nと表す。
【0015】
自然数nに対して、{1,・・・,n}を[n]と表す。Sを集合として、集合Sから一様にsを選択することをs←Sと表す。同一行数の行列A1及びA2に対して、A1及びA2の連結(concatenation)を
【0016】
【数1】
と表す。行列Aの列全体で張られる空間(つまり、行列Aを構成する各列ベクトルを基底とする空間)をspan(A)と表す。
【0017】
i∈{1,2,T}として、Zp上の行列A:=(aj,l)j,lに対して、位数pの巡回群Gi上の行列で、その(j,l)成分が
【0018】
【数2】
である行列を[A]
iと表す。なお、この記法は、ベクトルやスカラーに対しても同様に適用する。また、([A]
1,[A]
2)を[A]
1,2と表す。
【0019】
【数3】
が定義された行列A及びBに対して、記法の濫用ではあるが、ペアリングを
【0020】
【0021】
【0022】
・論理式
論理式とは、ブール変数を「かつ(AND)」、「または(OR)」、「否定(NOT)」で繋いだ式である。論理式は、ファンイン2、ファンアウト1の論理回路に簡単に変換することができる。否定(NOT)を含まない論理式を単調論理式(monotone Boolean formula)と呼び、否定(NOT)を含む論理式を非単調論理式(non-monotone Boolean formula)と呼ぶ。本実施形態では、論理式は論理回路で表されているものとする。
【0023】
・属性とポリシー
本実施形態では、属性の集合を以下の式(1)で定義する。
【0024】
【数6】
ここで、Φ
iは全ての単射関数φ:[i]→{0,1}
*で構成される集合である。
【0025】
また、ポリシーの集合を以下の式(2)で定義する。
【0026】
【0027】
【0028】
本実施形態で説明する属性ベース暗号では、各属性は上記の式(1)で定義される集合の要素であり、各ポリシーは上記の式(2)で定義される集合の要素である。
【0029】
また、属性
【0030】
【0031】
【数10】
を満たすとは、以下の式(3)で定義されるbに対してf(b)=1となることを指す。すなわち、f(b)=1である場合に限り復号が可能である。
【0032】
属性x及びポリシーyに対して、b=(b1,・・・,bn)∈{0,1}nを以下の式(3)で定義する。
【0033】
【0034】
【数12】
は否定排他的論理和(XNOR)を表し、tureは真理値を表す。また、x
jは
【0035】
【0036】
【0037】
なお、上記の式(1)及び式(2)は鍵ポリシー属性ベース暗号における場合の表記であり、暗号文ポリシー属性ベース暗号では、属性の集合とポリシーの集合との定義内容が逆になる。
【0038】
・線形秘密分散
本実施形態では線形秘密分散法を用いる。線形秘密分散法は或る関数f:{0,1}n→{0,1}に従って、秘密ベクトルkを割り当てσ1,・・・,σnに分散する方法である。分散された割り当てのうち、f(b)=1となるようなビット列bのビットが1である部分に対応する割り当てを集めると元の秘密ベクトルkを復元することができる。すなわち、fとbとから簡単に計算できる集合Sが存在し、
【0039】
【数15】
という単純に割り当てを足し合わせるだけで復元できる。一方で、f(b)=0となるようなビット列bのビットが1である部分に対応する割り当てを集めてもkを復元することができない。
【0040】
線形秘密分散法は、以下の(S1)~(S4)に示すアルゴリズムより実現される。ここで、線形秘密分散法の入力は、単調論理式f:{0,1}n→{0,1}と秘密ベクトル
【0041】
【数16】
である。以降では、この線形秘密分散法のアルゴリズムをShareとも表す。
【0042】
(S1)論理回路で表されている単調論理式fの出力線(つまり、当該論理回路の出力線)にベクトルσout:=kを設定する。
【0043】
(S2)当該論理回路の各ANDゲートの入力線をa及びb、出力線をcとして、出力線cにベクトルσcが設定されている各ANDゲートについて、ベクトル
【0044】
【数17】
を選択した上で、ベクトルσ
a:=σ
c-u
gとベクトルσ
b:=u
gとを入力線aと入力線bとにそれぞれ設定する。
【0045】
(S3)当該論理回路の各ORゲートの入力線をa及びb、出力線をcとして、出力線cにベクトルσcが設定されている各ORゲートについて、ベクトルσa:=σcとσb:=σcとを入力線aと入力線bとにそれぞれ設定する。
【0046】
(S4)単調論理式fの入力線1,・・・,n(つまり、当該論理回路の入力線1,・・・,n)に設定されたσ1,・・・,σnを秘密ベクトルkの割り当てとして出力する。
【0047】
なお、この線形秘密分散のアルゴリズムShareは、群要素のベクトルに対しても同様に適用可能である。
【0048】
<本実施形態に係る属性ベース暗号>
本実施形態に係る属性ベース暗号として、本実施形態に係る鍵ポリシー属性ベース暗号と本実施形態に係る暗号文ポリシー属性ベース暗号とについて説明する。属性ベース暗号は4つのアルゴリズム(つまり、セットアップアルゴリズムSetup、暗号化アルゴリズムEnc、鍵生成アルゴリズムKeyGen及び復号アルゴリズムDec)で構成される。本実施形態では、素数位数pの巡回群G1、G2及びGTとして、双線形写像e:G1×G2→GTを持つものを用いる。これらの巡回群及び双線形写像をあわせて双線形群と呼ぶ。双線形群は既知のものを利用してもよいし、セットアップアルゴリズムSetupで生成されてもよい。
【0049】
・行列の記法
まず、属性ベース暗号の各アルゴリズムの説明と、後述する属性ベースKEM(Key Encapsulation Mechanism)の各アルゴリズムの説明とで用いる行列の記法について説明する。
【0050】
kを任意の自然数として、
【0051】
【数18】
をZ
p上の(k+1)×kで最大階数の適当な行列の集合とする。このとき、
【0052】
【数19】
に対して、A
*、a
R及びa
⊥を次のように定義する。すなわち、或る決まった方法により行列Aから確定的に計算されるベクトルであって、
【0053】
【0054】
【数21】
の左からk個の列(つまり、第1列目から第k列目までの列)で構成される行列をA
*、
【0055】
【数22】
の最も右側にある列をベクトルa
⊥とする。これらのA
*、a
R及びa
⊥には以下の関係が成り立つ。
【0056】
【数23】
ここで、I
kはk×kの単位行列、I
k+1は(k+1)×(k+1)の単位行列である。
【0057】
また、行列B、ベクトルb1及びベクトルb2を、それぞれ、行列
【0058】
【数24】
の左からk個の列で構成される行列、第k+1列目の列を表すベクトル及び最も右側にある列(つまり、第k+2列目の列)を表すベクトルとする。ここで、GL
k+2(Z
p)は、Z
p上の(k+2)×(k+2)の正則行列全体の集合(つまり、サイズk+2のZ
p上の一般線型群)である。
【0059】
同様に、行列B*、ベクトルb1
*及びベクトルb2
*を、それぞれ、行列
【0060】
【数25】
の左からk個の列で構成される行列、第k+1列目の列を表すベクトル及び最も右側にある列を表すベクトルとする。
【0061】
また、簡単のため、
【0062】
【数26】
をB
12とも表す。この表記は他の場合(例えば、行列の場合等)にも同様に適用する。
【0063】
・本実施形態に係る鍵ポリシー属性ベース暗号
以降では、本実施形態に係る鍵ポリシー属性ベース暗号の各アルゴリズムについて説明する。kを任意の自然数として、
【0064】
【0065】
【0066】
【数29】
をKの添字空間とする。このとき、本実施形態に係る鍵ポリシー属性ベース暗号のセットアップアルゴリズムSetup、暗号化アルゴリズムEnc、鍵生成アルゴリズムKeyGen及び復号アルゴリズムDecは、以下のように構成される。
【0067】
Setup():セットアップアルゴリズムSetupは、以下により公開鍵pkとマスター秘密鍵mskとを出力する。
【0068】
【数30】
ここで、Gは双線形群であり、G:=(p,G
1,G
2,G
T,g
1,g
2,e)である。また、g
1及びg
2はそれぞれG
1及びG
2の生成元である。上述したように、双線形群Gは既知のものを利用してもよいし、セットアップアルゴリズムSetupで生成されてもよい。
【0069】
Enc(pk,x,M):暗号化アルゴリズムEncは、公開鍵pkと、属性
【0070】
【数31】
と、メッセージM∈G
Tとを入力して、以下により暗号文ct
x(属性付き暗号文ct
x)を出力する。
【0071】
【数32】
KeyGen(pk,msk,y):鍵生成アルゴリズムKeyGenは、公開鍵pkと、マスター秘密鍵mskと、ポリシー
【0072】
【数33】
とを入力して、以下により秘密鍵sk
y(ポリシー付き秘密鍵sk
y)を出力する。
【0073】
【数34】
ここで、π:[n]→{n|nは自然数}はπ(i):=|{j|ψ(j)=ψ(i),j≦i}|となる関数であり、dはfにおける同じ属性ラベルの出現回数の最大値(つまり、d:=max
i∈[n]π(i))である。
【0074】
Dec(pk,ctx,sky):復号アルゴリズムDecは、公開鍵pkと、暗号文ctxと、秘密鍵skyとを入力して、上記の式(3)によってx及びyからbを計算した上で、f(b)=0である場合は復号失敗を示す⊥を出力する。一方で、f(b)≠0である場合は
【0075】
【数35】
を満たす集合S⊆{i|b
i=1}を計算し、以下によりM´を出力する。
【0076】
【数36】
ここで、S
1:=S∩{i|t(i)=1}、S
0:=S∩{i|t(i)=0}である。
【0077】
・本実施形態に係る暗号文ポリシー属性ベース暗号
以降では、本実施形態に係る暗号文ポリシー属性ベース暗号の各アルゴリズムについて説明する。kを任意の自然数として、GLk(Zp)をサイズkのZp上の一般線型群、
【0078】
【0079】
【0080】
【数39】
をKの添字空間とする。このとき、本実施形態に係る暗号文ポリシー属性ベース暗号のセットアップアルゴリズムSetup、暗号化アルゴリズムEnc、鍵生成アルゴリズムKeyGen及び復号アルゴリズムDecは、以下のように構成される。
【0081】
Setup():セットアップアルゴリズムSetupは、以下により公開鍵pkとマスター秘密鍵mskとを出力する。
【0082】
【数40】
ここで、Gは双線形群であり、G:=(p,G
1,G
2,G
T,g
1,g
2,e)である。上述したように、双線形群Gは既知のものを利用してもよいし、セットアップアルゴリズムSetupで生成されてもよい。
【0083】
Enc(pk,x,M):暗号化アルゴリズムEncは、公開鍵pkと、ポリシー
【0084】
【数41】
と、メッセージM∈G
Tとを入力して、以下により暗号文ct
x(ポリシー付き暗号文ct
x)を出力する。
【0085】
【数42】
ここで、π:[n]→{n|nは自然数}はπ(i):=|{j|ψ(j)=ψ(i),j≦i}|となる関数であり、dはfにおける同じ属性ラベルの出現回数の最大値(つまり、d:=max
i∈[n]π(i))である。
【0086】
KeyGen(pk,msk,y):鍵生成アルゴリズムKeyGenは、公開鍵pkと、マスター秘密鍵mskと、属性
【0087】
【数43】
とを入力して、以下により秘密鍵sk
y(属性付き秘密鍵sk
y)を出力する。
【0088】
【数44】
Dec(pk,ct
x,sk
y):復号アルゴリズムDecは、公開鍵pkと、暗号文ct
xと、秘密鍵sk
yとを入力して、上記の式(3)によってx及びyからbを計算した上で、f(b)=0である場合は復号失敗を示す⊥を出力する。一方で、f(b)≠0である場合は
【0089】
【数45】
を満たす集合S⊆{i|b
i=1}を計算し、以下によりM´を出力する。
【0090】
【数46】
ここで、S
1:=S∩{i|t(i)=1}、S
0:=S∩{i|t(i)=0}である。
【0091】
<本実施形態に係る属性ベースKEM>
上述した本実施形態に係る鍵ポリシー属性ベース暗号及び暗号文ポリシー属性ベース暗号は、KEM方式にも応用可能である。一般的に公開鍵暗号技術は動作が遅いため、大容量のデータを暗号化する場合は、公開鍵暗号で共通鍵暗号に用いる秘密鍵を安全に配送し、データの方は共通鍵暗号で暗号化することが多い。共通鍵暗号の秘密鍵(以降、「共通鍵」とも表す。)を安全に配送するために用いられる方式がKEMと呼ばれる。
【0092】
そこで、本実施形態に係る鍵ポリシー属性ベース暗号をKEMに応用した鍵ポリシー属性ベースKEMと、本実施形態に係る暗号文ポリシー属性ベース暗号をKEMに応用した暗号文ポリシー属性ベースKEMとについて説明する。
【0093】
・本実施形態に係る鍵ポリシー属性ベースKEM
以降では、本実施形態に係る鍵ポリシー属性ベースKEMの各アルゴリズムについて説明する。関数H及び関数族FKは、上記で説明した「本実施形態に係る鍵ポリシー属性ベース暗号」と同様として、
【0094】
【0095】
【数48】
は共通鍵暗号の秘密鍵空間である。このとき、本実施形態に係る鍵ポリシー属性ベースKEMのセットアップアルゴリズムSetup、暗号化アルゴリズムEnc、鍵生成アルゴリズムKeyGen及び復号アルゴリズムDecは、以下のように構成される。
【0096】
Setup():セットアップアルゴリズムSetupは、以下により公開鍵pkとマスター秘密鍵mskとを出力する。
【0097】
【数49】
ここで、Gは双線形群であり、G:=(p,G
1,G
2,G
T,g
1,g
2,e)である。上述したように、双線形群Gは既知のものを利用してもよいし、セットアップアルゴリズムSetupで生成されてもよい。
【0098】
Enc(pk,x):暗号化アルゴリズムEncは、公開鍵pkと、属性
【0099】
【数50】
とを入力して、以下により暗号文ct
x(属性付き暗号文ct
x)と、共通鍵Lとを出力する。
【0100】
【数51】
KeyGen(pk,msk,y):鍵生成アルゴリズムKeyGenは、公開鍵pkと、マスター秘密鍵mskと、ポリシー
【0101】
【数52】
とを入力して、以下により秘密鍵sk
y(ポリシー付き秘密鍵sk
y)を出力する。
【0102】
【数53】
ここで、π:[n]→{n|nは自然数}はπ(i):=|{j|ψ(j)=ψ(i),j≦i}|となる関数であり、dはfにおける同じ属性ラベルの出現回数の最大値(つまり、d:=max
i∈[n]π(i))である。
【0103】
Dec(pk,ctx,sky):復号アルゴリズムDecは、公開鍵pkと、暗号文ctxと、秘密鍵skyとを入力して、上記の式(3)によってx及びyからbを計算した上で、f(b)=0である場合は復号失敗を示す⊥を出力する。一方で、f(b)≠0である場合は
【0104】
【数54】
を満たす集合S⊆{i|b
i=1}を計算し、以下により共通鍵L´を出力する。
【0105】
【数55】
ここで、S
1:=S∩{i|t(i)=1}、S
0:=S∩{i|t(i)=0}である。
【0106】
・本実施形態に係る暗号文ポリシー属性ベースKEM
以降では、本実施形態に係る暗号文ポリシー属性ベースKEMの各アルゴリズムについて説明する。関数H及び関数族FKは、上記で説明した「本実施形態に係る暗号文ポリシー属性ベース暗号」と同様として、
【0107】
【0108】
【数57】
は共通鍵暗号の秘密鍵空間である。このとき、本実施形態に係る暗号文ポリシー属性ベースKEMのセットアップアルゴリズムSetup、暗号化アルゴリズムEnc、鍵生成アルゴリズムKeyGen及び復号アルゴリズムDecは、以下のように構成される。
【0109】
Setup():セットアップアルゴリズムSetupは、以下により公開鍵pkとマスター秘密鍵mskとを出力する。
【0110】
【数58】
ここで、Gは双線形群であり、G:=(p,G
1,G
2,G
T,g
1,g
2,e)である。上述したように、双線形群Gは既知のものを利用してもよいし、セットアップアルゴリズムSetupで生成されてもよい。
【0111】
Enc(pk,x):暗号化アルゴリズムEncは、公開鍵pkと、ポリシー
【0112】
【数59】
とを入力して、以下により暗号文ct
x(ポリシー付き暗号文ct
x)と、共通鍵Lとを出力する。
【0113】
【数60】
ここで、π:[n]→{n|nは自然数}はπ(i):=|{j|ψ(j)=ψ(i),j≦i}|となる関数であり、dはfにおける同じ属性ラベルの出現回数の最大値(つまり、d:=max
i∈[n]π(i))である。
【0114】
KeyGen(pk,msk,y):鍵生成アルゴリズムKeyGenは、公開鍵pkと、マスター秘密鍵mskと、属性
【0115】
【数61】
とを入力して、以下により秘密鍵sk
y(属性付き秘密鍵sk
y)を出力する。
【0116】
【数62】
Dec(pk,ct
x,sk
y):復号アルゴリズムDecは、公開鍵pkと、暗号文ct
xと、秘密鍵sk
yとを入力して、上記の式(3)によってx及びyからbを計算した上で、f(b)=0である場合は復号失敗を示す⊥を出力する。一方で、f(b)≠0である場合は
【0117】
【数63】
を満たす集合S⊆{i|b
i=1}を計算し、以下により共通鍵L´を出力する。
【0118】
【数64】
ここで、S
1:=S∩{i|t(i)=1}、S
0:=S∩{i|t(i)=0}である。
【0119】
<暗号システム1の全体構成>
次に、上記で説明した「本実施形態に係る鍵ポリシー属性ベース暗号」、「本実施形態に係る暗号文ポリシー属性ベース暗号」、「本実施形態に係る鍵ポリシー属性ベースKEM」及び「本実施形態に係る暗号文ポリシー属性ベースKEM」を実現する暗号システム1の全体構成について、
図1を参照しながら説明する。
図1は、本実施形態に係る暗号システム1の全体構成の一例を示す図である。
【0120】
図1に示すように、本実施形態に係る暗号システム1には、鍵生成装置10と、暗号化装置20と、復号装置30とが含まれる。これらの各装置は、例えばインターネット等の通信ネットワークNを介して通信可能に接続される。なお、
図1に示す例では、暗号化装置20及び復号装置30がそれぞれ1台ずつである場合を示しているが、これらの装置はそれぞれ複数台存在してもよい。また、鍵生成装置10も複数台存在してもよい。
【0121】
鍵生成装置10は、セットアップアルゴリズムSetupや鍵生成アルゴリズムKeyGenを実行して鍵を生成するコンピュータ又はコンピュータシステムである。ここで、鍵生成装置10は、セットアップ処理部101と、鍵生成処理部102と、記憶部103とを有する。なお、セットアップ処理部101及び鍵生成処理部102は、鍵生成装置10にインストールされた1以上のプログラムがプロセッサ等に実行させる処理により実現される。また、記憶部103は、例えば、補助記憶装置等の各種メモリを用いて実現可能である。
【0122】
セットアップ処理部101は、セットアップアルゴリズムSetupを実行する。鍵生成処理部102は、鍵生成アルゴリズムKeyGenを実行する。記憶部103には、各種データ(例えば、セットアップアルゴリズムSetupで出力された公開鍵pkやマスター秘密鍵msk等)が記憶される。
【0123】
暗号化装置20は、暗号化アルゴリズムEncを実行して暗号文を生成するコンピュータ又はコンピュータシステムである。ここで、暗号化装置20は、暗号化処理部201と、記憶部202とを有する。暗号化処理部201は、暗号化装置20にインストールされた1以上のプログラムがプロセッサ等に実行させる処理により実現される。また、記憶部202は、例えば、補助記憶装置等の各種メモリを用いて実現可能である。
【0124】
暗号化処理部201は、暗号化アルゴリズムEncを実行する。記憶部202には、各種データ(例えば、暗号化アルゴリズムEncに入力されるデータ等)が記憶される。
【0125】
復号装置30は、復号アルゴリズムDecを実行して暗号文を復号するコンピュータ又はコンピュータシステムである。ここで、復号装置30は、復号処理部301と、記憶部302とを有する。復号処理部301は、復号装置30にインストールされた1以上のプログラムがプロセッサ等に実行させる処理により実現される。また、記憶部302は、例えば、補助記憶装置等の各種メモリを用いて実現可能である。
【0126】
復号処理部301は、復号アルゴリズムDecを実行する。記憶部302には、各種データ(例えば、復号アルゴリズムDecに入力されるデータや復号アルゴリズムDecにより出力されるデータ等)が記憶される。
【0127】
なお、
図1に示す暗号システム1の構成は一例であって、他の構成であってもよい。例えば、暗号化装置20と復号装置30とが同一の装置で実現されていてもよい。この場合、当該装置は、例えば、暗号化処理部201と、復号処理部301と、記憶部とを有することなる。
【0128】
<暗号システム1が実行する処理の流れ>
以降では、本実施形態に係る暗号システム1が実行する処理の流れについて説明する。
【0129】
・本実施形態に係る鍵ポリシー属性ベース暗号
本実施形態に係る暗号システム1が「本実施形態に係る鍵ポリシー属性ベース暗号」を実現する場合には、以下のStep1-1~Step1-4が実行される。
【0130】
Step1-1)鍵生成装置10のセットアップ処理部101は、本実施形態に係る鍵ポリシー属性ベース暗号のセットアップアルゴリズムSetupを実行する。これにより、公開鍵pkとマスター秘密鍵mskとが生成及び出力される。これらの公開鍵pk及びマスター秘密鍵mskは記憶部103に記憶される。また、公開鍵pkは公開される。
【0131】
Step1-2)暗号化装置20の暗号化処理部201は、公開鍵pkと属性xとメッセージMとを入力として、本実施形態に係る鍵ポリシー属性ベース暗号の暗号化アルゴリズムEncを実行する。これにより、属性付き暗号文ctxが出力される。属性付き暗号文ctxは、例えば、通信ネットワークNを介して復号装置30に送信される。属性付き暗号文ctxは記憶部202に記憶されてもよい。
【0132】
Step1-3)鍵生成装置10の鍵生成処理部102は、公開鍵pkとマスター秘密鍵mskとポリシーyとを入力として、本実施形態に係る鍵ポリシー属性ベース暗号の鍵生成アルゴリズムKeyGenを実行する。これにより、ポリシー付き秘密鍵skyが生成される。ポリシー付き秘密鍵skyは、例えば、通信ネットワークNを介して復号装置30に送信される。
【0133】
Step1-4)復号装置30の復号処理部301は、公開鍵pkと属性付き暗号文ctxとポリシー付き秘密鍵skyとを入力として、本実施形態に係る鍵ポリシー属性ベース暗号の復号アルゴリズムDecを実行する。これにより、復号失敗を示す⊥又はメッセージM´のいずれかが出力される。この出力結果は、例えば、記憶部302に記憶される。
【0134】
・本実施形態に係る暗号文ポリシー属性ベース暗号
本実施形態に係る暗号システム1が「本実施形態に係る暗号文ポリシー属性ベース暗号」を実現する場合には、以下のStep2-1~Step2-4が実行される。
【0135】
Step2-1)鍵生成装置10のセットアップ処理部101は、本実施形態に係る暗号文ポリシー属性ベース暗号のセットアップアルゴリズムSetupを実行する。これにより、公開鍵pkとマスター秘密鍵mskとが生成及び出力される。これらの公開鍵pk及びマスター秘密鍵mskは記憶部103に記憶される。また、公開鍵pkは公開される。
【0136】
Step2-2)暗号化装置20の暗号化処理部201は、公開鍵pkとポリシーxとメッセージMとを入力として、本実施形態に係る暗号文ポリシー属性ベース暗号の暗号化アルゴリズムEncを実行する。これにより、ポリシー付き暗号文ctxが出力される。ポリシー付き暗号文ctxは、例えば、通信ネットワークNを介して復号装置30に送信される。ポリシー付き暗号文ctxは記憶部202に記憶されてもよい。
【0137】
Step2-3)鍵生成装置10の鍵生成処理部102は、公開鍵pkとマスター秘密鍵mskと属性yとを入力として、本実施形態に係る暗号文ポリシー属性ベース暗号の鍵生成アルゴリズムKeyGenを実行する。これにより、属性付き秘密鍵skyが生成される。属性付き秘密鍵skyは、例えば、通信ネットワークNを介して復号装置30に送信される。
【0138】
Step2-4)復号装置30の復号処理部301は、公開鍵pkとポリシー付き暗号文ctxと属性付き秘密鍵skyとを入力として、本実施形態に係る暗号文ポリシー属性ベース暗号の復号アルゴリズムDecを実行する。これにより、復号失敗を示す⊥又はメッセージM´のいずれかが出力される。この出力結果は、例えば、記憶部302に記憶される。
【0139】
・本実施形態に係る鍵ポリシー属性ベースKEM
本実施形態に係る暗号システム1が「本実施形態に係る鍵ポリシー属性ベースKEM」を実現する場合には、以下のStep3-1~Step3-4が実行される。
【0140】
Step3-1)鍵生成装置10のセットアップ処理部101は、本実施形態に係る鍵ポリシー属性ベースKEMのセットアップアルゴリズムSetupを実行する。これにより、公開鍵pkとマスター秘密鍵mskとが生成及び出力される。これらの公開鍵pk及びマスター秘密鍵mskは記憶部103に記憶される。また、公開鍵pkは公開される。
【0141】
Step3-2)暗号化装置20の暗号化処理部201は、公開鍵pkと属性xとを入力として、本実施形態に係る鍵ポリシー属性ベースKEMの暗号化アルゴリズムEncを実行する。これにより、属性付き暗号文ctxと共通鍵Lとが出力される。属性付き暗号文ctxは、例えば、通信ネットワークNを介して復号装置30に送信される。属性付き暗号文ctxは記憶部202に記憶されてもよい。また、共通鍵Lは記憶部202に記憶される。
【0142】
Step3-3)鍵生成装置10の鍵生成処理部102は、公開鍵pkとマスター秘密鍵mskとポリシーyとを入力として、本実施形態に係る鍵ポリシー属性ベースKEMの鍵生成アルゴリズムKeyGenを実行する。これにより、ポリシー付き秘密鍵skyが生成される。ポリシー付き秘密鍵skyは、例えば、通信ネットワークNを介して復号装置30に送信される。
【0143】
Step3-4)復号装置30の復号処理部301は、公開鍵pkと属性付き暗号文ctxとポリシー付き秘密鍵skyとを入力として、本実施形態に係る鍵ポリシー属性ベースKEMの復号アルゴリズムDecを実行する。これにより、復号失敗を示す⊥又は共通鍵K´のいずれかが出力される。この出力結果は、例えば、記憶部302に記憶される。
【0144】
・本実施形態に係る暗号文ポリシー属性ベースKEM
本実施形態に係る暗号システム1が「本実施形態に係る暗号文ポリシー属性ベースKEM」を実現する場合には、以下のStep4-1~Step4-4が実行される。
【0145】
Step4-1)鍵生成装置10のセットアップ処理部101は、本実施形態に係る暗号文ポリシー属性ベースKEMのセットアップアルゴリズムSetupを実行する。これにより、公開鍵pkとマスター秘密鍵mskとが生成及び出力される。これらの公開鍵pk及びマスター秘密鍵mskは記憶部103に記憶される。また、公開鍵pkは公開される。
【0146】
Step4-2)暗号化装置20の暗号化処理部201は、公開鍵pkとポリシーxとを入力として、本実施形態に係る暗号文ポリシー属性ベースKEMの暗号化アルゴリズムEncを実行する。これにより、ポリシー付き暗号文ctxと共通鍵Lとが出力される。ポリシー付き暗号文ctxは、例えば、通信ネットワークNを介して復号装置30に送信される。ポリシー付き暗号文ctxは記憶部202に記憶されてもよい。また、共通鍵Lは記憶部202に記憶される。
【0147】
Step4-3)鍵生成装置10の鍵生成処理部102は、公開鍵pkとマスター秘密鍵mskと属性yとを入力として、本実施形態に係る暗号文ポリシー属性ベースKEMの鍵生成アルゴリズムKeyGenを実行する。これにより、属性付き秘密鍵skyが生成される。属性付き秘密鍵skyは、例えば、通信ネットワークNを介して復号装置30に送信される。
【0148】
Step4-4)復号装置30の復号処理部301は、公開鍵pkとポリシー付き暗号文ctxと属性付き秘密鍵skyとを入力として、本実施形態に係る暗号文ポリシー属性ベースKEMの復号アルゴリズムDecを実行する。これにより、復号失敗を示す⊥又は共通鍵L´のいずれかが出力される。この出力結果は、例えば、記憶部302に記憶される。
【0149】
<鍵生成装置10、暗号化装置20及び復号装置30のハードウェア構成>
次に、本実施形態に係る暗号システム1に含まれる鍵生成装置10、暗号化装置20及び復号装置30のハードウェア構成について、
図2を参照しながら説明する。
図2は、本実施形態に係る鍵生成装置10、暗号化装置20及び復号装置30のハードウェア構成の一例を示す図である。なお、本実施形態に係る鍵生成装置10、暗号化装置20及び復号装置30は同様のハードウェア構成で実現可能であるため、以降では、主に、鍵生成装置10のハードウェア構成について説明する。
【0150】
図2に示すように、本実施形態に係る鍵生成装置10は、入力装置501と、表示装置502と、RAM(Random Access Memory)503と、ROM(Read Only Memory)504と、プロセッサ505と、外部I/F506と、通信I/F507と、補助記憶装置508とを有する。これら各ハードウェアは、それぞれがバス509を介して通信可能に接続されている。
【0151】
入力装置501は、例えばキーボードやマウス、タッチパネル等である。表示装置502は、例えばディスプレイ等である。なお、鍵生成装置10、暗号化装置20及び復号装置30は、入力装置501及び表示装置502のうちの少なくとも一方を有していなくてもよい。
【0152】
RAM503は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM504は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。プロセッサ505は、例えばCPU(Central Processing Unit)等であり、ROM504や補助記憶装置508等からプログラムやデータをRAM503上に読み出して処理を実行する演算装置である。
【0153】
外部I/F506は、外部装置とのインタフェースである。外部装置には、例えば、CD(Compact Disc)やDVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等の記録媒体506a等がある。
【0154】
通信I/F507は、通信ネットワークに接続して他の装置と通信を行うためのインタフェースである。補助記憶装置508は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等の不揮発性の記憶装置である。
【0155】
本実施形態に係る鍵生成装置10、暗号化装置20及び復号装置30は、
図2に示すハードウェア構成を有することにより、上述した各アルゴリズムを実行して各種処理を実現することができる。なお、
図2では、本実施形態に係る鍵生成装置10、暗号化装置20及び復号装置30が1台の装置(コンピュータ)で実現されている場合を示したが、これに限られない。本実施形態に係る鍵生成装置10、暗号化装置20及び復号装置30は、複数台の装置(コンピュータ)で実現されていてもよい。また、1台の装置(コンピュータ)には、複数のプロセッサ505や複数のメモリ(RAM503やROM504、補助記憶装置508等)が含まれていてもよい。
【0156】
<まとめ>
以上のように、本実施形態に係る暗号システム1では、「本実施形態に係る鍵ポリシー属性ベース暗号」、「本実施形態に係る暗号文ポリシー属性ベース暗号」、「本実施形態に係る鍵ポリシー属性ベースKEM」及び「本実施形態に係る暗号文ポリシー属性ベースKEM」を実現することができる。これらの暗号方式及びKEM方式は、効率的である一方で表現力はOT方式に比べると低いFAMEと呼ばれる方式の構成技術をベースにしている。なお、FAMEの詳細については、例えば、文献「S. Agrawal and M. Chase. FAME: Fast attribute-based message encryption. In ACM CCS, 2017.」を参照されたい。
【0157】
FAMEは効率的な構成である一方でポリシーを表現する条件式の中で否定を使うことができなかった。これに対して、本実施形態に係る暗号方式(及びこの暗号方式を応用したKEM方式)では、FAMEの構造を参考に効率的に動作する性質を保ちながら、条件式の否定と属性ラベルの複数回出現とを可能にするように設計している。これにより、本実施形態に係る暗号システム1は、暗号文や秘密鍵のサイズを増大させずに任意の条件式をポリシーとして利用可能で、かつ、効率的な属性ベース暗号(及びこの属性ベース暗号を応用したKEM)を実現することができる。
【0158】
より具体的には、本実施形態に係る暗号システム1が実現する属性ベース暗号(及びこの属性ベース暗号を応用したKEM)では、第一に、OT方式と比較して暗号文と秘密鍵の群要素の数が減っているため、暗号化及び鍵生成時の比較的重い計算であるべき乗計算の回数を大きく減らすことができる。したがって、暗号化及び鍵生成の計算時間を削減することができる。
【0159】
また、第二に、復号時に必要な重い計算であるペアリング演算の回数も大きく減るため、復号もOT方式に比べて高速である。特に、ペアリング演算の回数は利用されるポリシーにもよるが、高速なケースではそのポリシーの変数の数倍以上の速さの復号が可能である。例えば、20個の変数からなるポリシーを持つ暗号文又は秘密鍵を用いて復号処理を行う場合、20倍以上の高速化が可能である。
【0160】
更に、本実施形態に係る暗号システム1が実現する属性ベース暗号(及びこの属性ベース暗号を応用したKEM)では、暗号文や鍵のサイズを増大させることなく、任意の条件式をポリシーとして利用可能である。すなわち、条件式の中に属性ラベルが任意の回数出てきてもよい。
【0161】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、請求の範囲の記載から逸脱することなく、種々の変形や変更等が可能である。
【符号の説明】
【0162】
1 暗号システム
10 鍵生成装置
20 暗号化装置
30 復号装置
101 セットアップ処理部
102 鍵生成処理部
103 記憶部
201 暗号化処理部
202 記憶部
301 復号処理部
302 記憶部