JP6649289B2 - 暗号システム、鍵生成装置、暗号化装置、復号装置、およびプログラム - Google Patents

暗号システム、鍵生成装置、暗号化装置、復号装置、およびプログラム Download PDF

Info

Publication number
JP6649289B2
JP6649289B2 JP2017001752A JP2017001752A JP6649289B2 JP 6649289 B2 JP6649289 B2 JP 6649289B2 JP 2017001752 A JP2017001752 A JP 2017001752A JP 2017001752 A JP2017001752 A JP 2017001752A JP 6649289 B2 JP6649289 B2 JP 6649289B2
Authority
JP
Japan
Prior art keywords
secret key
function
key
algorithm
ciphertext
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017001752A
Other languages
English (en)
Other versions
JP2018112613A (ja
Inventor
陵 西巻
陵 西巻
冬航 北川
冬航 北川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2017001752A priority Critical patent/JP6649289B2/ja
Publication of JP2018112613A publication Critical patent/JP2018112613A/ja
Application granted granted Critical
Publication of JP6649289B2 publication Critical patent/JP6649289B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、関数型暗号技術に関する。
関数型暗号において、鍵生成アルゴリズムによる鍵の発行回数が1回の場合には安全性が保たれるが、鍵の発行回数が2回以上の場合には安全性が保たれるとは限らない暗号方式(1-key方式)から、鍵生成アルゴリズムによる鍵の発行回数が事前に定められた回数(複数回数)以下の場合には安全性が保たれるが、鍵の発行回数が事前に定められた回数を超えた場合には安全性が保たれるとは限らない暗号方式(bounded-key方式)を構成する方法が知られている(例えば、非特許文献1参照)。また、非特許文献2,3には、公開鍵関数型暗号において、1-key方式から、鍵生成アルゴリズムによる鍵の発行回数にかかわらず、安全性が保たれる暗号方式(unbounded-key方式)を構成する方法が記載されている。
Sergey Gorbunov, Vinod Vaikuntanathan, and Hoeteck Wee, "Functional encryption with bounded collusions via multi-party computation," In Reihaneh Safavi-Naini and Ran Canetti, editors, CRYPTO 2012, volume 7417 of LNCS, pages 162-179. Springer, Heidelberg, August 2012. Baiyu Li and Daniele Micciancio, "Compactness vs collusion resistance in functional encryption," IACR Cryptology ePrint Archive, 2016:561, 2016. Sanjam Garg and Akshayaram Srinivasan, "Single-key to multi-key functional encryption with polynomial loss," IACR Cryptology ePrint Archive, 2016:524, 2016.
しかし、非特許文献2の方法を秘密鍵関数型暗号に適用するとbounded-key方式しか得ることができず、非特許文献3は秘密鍵関数型暗号には適用できない。このように、秘密鍵関数型暗号において、1-key方式から、鍵生成アルゴリズムによる鍵の発行回数にかかわらず、安全性が保たれる暗号方式(unbounded-key方式)を構成する方法は知られていない。
本発明はこのような点に鑑みてなされたものであり、秘密鍵関数型暗号において、1-key方式からunbounded-key方式を構成するための暗号方式を提供することを目的とする。
上記課題を解決するために、特許請求の範囲に記載された少なくともいずれかの発明が提供される。
本発明では、1-key方式からunbounded-key方式を構成するための各暗号方式を構成できるため、それらの各方式を用いて1-key方式からunbounded-key方式を構成できる。
図1は第1実施形態の暗号システムを例示したブロック図である。 図2は第2実施形態の暗号システムを例示したブロック図である。 図3は第3実施形態の暗号システムを例示したブロック図である。 図4は第4実施形態の暗号システムを例示したブロック図である。 図5は第5実施形態の暗号システムを例示したブロック図である。
以下、本発明の実施形態を説明する。
[前提]
まず実施形態の前提事項を説明する。
「難読化(obfuscation)」とは、入力されたプログラムを変換し、異なるプログラムに変換することをいう(例えば、Sanjam Garg, Craig Gentry, Shai Halevi, Mariana Raykova, Amit Sahai, and Brent Waters, “Candidate indistinguishability obfuscation and functional encryption for all circuits,” In 54th FOCS, pages 40-49. IEEE Computer Society Press, October 2013(参考文献1)等参照)。変換後のプログラムの機能は変換前のプログラムの機能と完全に同一である。変換後のプログラムは変換前のプログラムに関する情報を漏らさない。特に「識別不可能性難読化(Indistinguishability Obfuscation)」とは、同一の機能をもつ2つの異なるプログラムを変換したとき、変換後のプログラムがどちらのプログラムを変換して得られたものかを判別できない「難読化」を意味する。「難読化器(Obfuscator)」とは難読化を行う装置を意味し、「識別不可能性難読化器(Indistinguishability Obfuscator(iO))」とは識別不可能性難読化を行う装置を意味する。確率的多項式時間機械iOがプログラムによって記述される回路が属する回路族{Cλλ∈Nに対する「識別不可能性難読化器(Indistinguishability Obfuscator)」であるとは、「機能性」および「識別不可能性」を満たすことである。
「機能性」とは、任意のセキュリティパラメータλ∈N、任意のプログラムC∈{Cλλ∈N、任意の入力xに対して以下を満たすことを意味する。ただし、Nは自然数を表し、Pr[α]は事象αの確率を表し、iO(C)はiOによってCを難読化することを表し、α←βはβの結果をαとすることを表す。
Pr[C’(x)=C(x):C’←iO(C)]=1
すなわち、iOが機能性を満たすとは、確率的多項式時間機械iOで任意のプログラムCをプログラムC’に変換したとき、入力xに対するプログラムC’の出力C’(x)とプログラムCの出力C(x)とが等しくなることを意味する。
「識別不可能性」とは、任意の多項式サイズ識別器D’に対して、無視できる関数μ(・)が存在して、任意のセキュリティパラメータλ∈N,サイズが等しい任意のプログラム対(回路対)C,C∈Cλで任意の入力xについてC(x)=C(x)が成立するものに対し、以下を満たすことを意味する。
Pr[D’(iO(C0))=1]-Pr[D’(iO(C1))=1]≦μ(λ)
すなわち、iOが識別不可能性を満たすとは、iO(C)の判別結果D’(iO(C))(iO(C)がCを難読化して得られたものなのかCを難読化して得られたものなのかの判別結果)が1となる(例えば、iO(C)がCを難読化して得られたものであると判別される)確率と、iO(C)の判別結果D’(iO(C))が1となる(例えば、iO(C)がCを難読化して得られたものであると判別される)確率との違いが無視できることを意味する。
「秘密鍵関数型暗号(SKFE:Secret-Key Functional Encryption)」とは、マスター秘密鍵を用いて暗号化を行う関数型暗号(Functional Encryption)を意味する。以下に秘密鍵関数型暗号のアルゴリズム(Setup, KG, Enc, Dec)を示す(例えば、Nir Bitansky, Ryo Nishimaki, Alain Passel`egue, and Daniel Wichs, “From cryptomania to obfustopia through secret-key functional encryption,” IACR Cryptology ePrint Archive, 2016:558, 2016(参考文献2)等参照)。
セットアップアルゴリズム(Setup):鍵の長さ(ビット長)を表す任意のセキュリティパラメータλ∈Nを入力とし、マスター秘密鍵MSKを生成する。
MSK ←Setup(1λ)
鍵生成アルゴリズム(KG):マスター秘密鍵MSKおよび関数fを入力とし、関数fに対する秘密鍵skを生成する。関数fは任意の関数でよく、例えば、f(m)=mまたはf(m)=⊥を満たす関数である。ただし、⊥はエラーを表す。
skf ←KG(MSK,f)
暗号化アルゴリズム(Enc):マスター秘密鍵MSKとメッセージmを入力とし、暗号文cを生成する。
c ←Enc(MSK, m)
復号アルゴリズム(Dec):関数fに対する秘密鍵skと暗号文cを入力とし、メッセージmの関数値f(m)を生成する。
f(m) ←Dec(skf,c)
「1-key(single-key)方式」とは、鍵生成アルゴリズムによる鍵の発行回数(すなわち、攻撃者による鍵の入手回数)が1回の場合には安全性が保たれるが、鍵の発行回数が2回以上の場合には安全性が保たれるとは限らない暗号方式をいう。
「bounded-key方式」とは、鍵生成アルゴリズムによる鍵の発行回数が事前(セットアップアルゴリズムの実行時)に定められた回数(複数回数)以下の場合には安全性が保たれるが、鍵の発行回数が事前に定められた回数を超えた場合には安全性が保たれるとは限らない暗号方式をいう。特に、鍵生成アルゴリズムによる鍵の発行回数が事前に定められたq(ただし、q≧2)以下の場合安全性が保たれるが、鍵の発行回数がqを超えた場合には安全性が保たれるとは限らない暗号方式を「q-Key方式」という。
「unbounded-key方式」とは、鍵生成アルゴリズムによる鍵の発行回数にかかわらず、安全性が保たれる暗号方式をいう。
「1-ciphertext方式」とは、暗号化アルゴリズムによる暗号文の生成回数(すなわち、攻撃者による暗号文の入手回数)が1回の場合には安全性が保たれるが、暗号文の生成回数が2回以上の場合には安全性が保たれるとは限らない暗号方式をいう。
「unbounded-ciphertext方式」とは、暗号化アルゴリズムによる暗号文の生成回数にかかわらず、安全性が保たれる暗号方式をいう。
「non-succinct方式」とは、暗号化アルゴリズムによって記述される暗号化回路のサイズ|E|が以下の関係を満たす暗号方式をいう。ただし、poly(α)はαの多項式を表し、nはメッセージmの長さ(ビット長)を表し、|f|は上述の関数fのサイズを表す。
|E|=poly(λ,n,|f|)
「weakly-succinct方式」とは、暗号化アルゴリズムによって記述される暗号化回路のサイズ|E|が以下の関係を満たす暗号方式をいう。ただし、εは0<ε<1を満たす。
|E|=poly(λ,n)・|f|1-ε
「succinct(完全簡素性)方式」とは、暗号化アルゴリズムによって記述される暗号化回路のサイズ|E|が以下の関係を満たす暗号方式をいう。
|E|=poly(λ,n)
「q-key collusion-succinctness(q−key結託簡素性)方式」とは、暗号化アルゴリズムによって記述される暗号化回路のサイズ|E|が以下の関係を満たす暗号方式をいう。ただし、qは鍵生成アルゴリズムによる鍵の発行回数を表し、εは0<ε<1を満たす。
|E|=poly(λ,n,|f|)・q1-ε
上記で定義した「α方式」の関数型暗号を「α関数型暗号」と呼び、「α方式」の秘密鍵関数型暗号を「α秘密鍵関数型暗号」と呼ぶことにする。また、上記で定義した複数の方式の用語を組み合わせることで、それらの方式の性質を兼ね備える暗号方式を表現することにする。例えば、unbounded-key方式および1-ciphertext方式の両方の性質を備える秘密鍵関数型暗号を「unbounded-key 1-ciphertext 完全簡素性秘密鍵関数型暗号」と呼び、1-key方式およびunbounded-ciphertext方式の両方の性質を備える秘密鍵関数型暗号を「1-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号」と呼び、λ-key方式及びunbounded-ciphertext方式の両方の性質を備える秘密鍵関数型暗号を「λ-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号」と呼び、λt-key方式およびunbounded-ciphertext方式の両方の性質を備える秘密鍵関数型暗号を「λt-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号」と呼び、unbounded-key方式およびunbounded-ciphertext方式の両方の性質を備える秘密鍵関数型暗号を「unbounded-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号」と呼ぶ。
[原理]
次に原理を説明する。
<unbounded-key 1-ciphertext 完全簡素性秘密鍵関数型暗号SKFE1>
unbounded-key 1-ciphertext 完全簡素性秘密鍵関数型暗号であって暗号文サイズが高々λ1/t・φである方式SKFE1=(Setup1,KG1,Enc1,Dec1)の構成を説明する。
ただし、φ,n,t,λ∈Nが正整数であり、n≦λであり、w=λ1/tが正整数である。λは鍵長に対応するセキュリティパラメータであり、Cf1はn個の論理ゲートi∈[n]からなる論理回路であり、関数f1によって表される演算を行う。GC=(Garble,Eval)はGarbling方式を表す(例えば、Mihir Bellare, Viet Tung Hoang, and Phillip Rogaway, “Foundations of garbled circuits,” In Ting Yu, George Danezis, and Virgil D. Gligor, editors, ACM CCS 12, pages 784-796. ACM Press, October 2012(参考文献3)等参照)。i∈[n]はi∈{1,・・・,n}と同義である。GarbleはGarbling方式GCで論理回路Cf1を秘匿化してn個の論理ゲートi∈[n]の鍵情報Cと秘匿化ラベル情報{Li,αi∈[n],α∈{0,1}とを得る秘匿化アルゴリズムである。Evalは鍵情報Cと秘匿化ラベル情報{Li∈[n]を用い、Garbling方式GCに則り、関数f1によって表される演算を行う実行アルゴリズムである。SKE=(Gen,E,D)は鍵空間が{0,1}λである共通鍵暗号方式を表す(Jonathan Katz and Yehuda Lindell, “Introduction to Modern Cryptography,” Chapman & Hall/CRC Press, 2007(参考文献4)等参照)。Genは共通鍵暗号方式SKEに則った鍵生成アルゴリズムであり、Eは共通鍵暗号方式SKEに則った暗号化を行う暗号化アルゴリズムであり、Dは共通鍵暗号方式SKEに則った復号を行う復号アルゴリズムである。PRGは入力長Lの入力情報に対してその2倍の長さ2Lの擬似乱数を出力する擬似乱数生成器(擬似乱数生成アルゴリズム){PRG:{0,1}→{0,1}2LL∈Nを表す(参考文献4)。
セットアップアルゴリズムSetup1(1λ):
Setup1(1λ)は、セキュリティパラメータλを入力とし、i∈[n]およびα∈{0,1}についてKi,α←{0,1}を選択し、R←{0,1}λを選択し、マスター秘密鍵MSK1←({Ki,αi∈[n],α∈{0,1},R)を得て出力する。ただし、「α1←α2」は、α2をα1として設定することを意味する。
鍵生成アルゴリズムKG1(MSK1,f1):
KG1(MSK1,f1)は、関数f1およびマスター秘密鍵MSK1=({Ki,αi∈[n],α∈{0,1},R)を入力とし、以下の処理を行う。
まず、KG1(MSK1,f1)は、関数f1に対応する論理回路Cf1に対して秘匿化アルゴリズムGarbleを実行して(C,{Li,αi∈[n],α∈{0,1})←Garble(1λ,Cf1)を得る。KG1(MSK1,f1)は、Rのi∈[n]ビット目の値R[i]をi行α列の要素Zi,αとする2×n行列
Figure 0006649289
を得る。
次にKG1(MSK1,f1)は、各i∈[n]およびα∈{0,1}についてKi,αに擬似乱数生成アルゴリズムPRGを適用して擬似乱数Ki,α を得る。例えばKG1(MSK1,f1)は、νi,αの初期値をKi,αとした後、νi,αのビット長がλビットに達するまでνi,α←PRG(νi,α)の処理を繰り返し、λビットに達したνi,αを擬似乱数Ki,α とする。
KG1(MSK1,f1)は、暗号化アルゴリズムEを用い、各i∈[n]およびα∈{0,1}について、擬似乱数Ki,α を共通鍵として要素Zi,αを暗号化した暗号文ci,α←E(Ki,α ,Zi,α)を得、関数f1に対する秘密鍵(個別秘密鍵)skf1←(C,{ci,αi∈[n],α∈{0,1})を得て出力する。
暗号化アルゴリズムEnc1(MSK1,m1):
Enc1(MSK1,m1)は、マスター秘密鍵MSK1=({Ki,αi∈[n],α∈{0,1},R)およびメッセージm1∈{0,1}λを入力とし、以下の処理を行う。
まず、Enc1(MSK1,m1)は、MSK1から{Ki,αi∈[n],α∈{0,1}およびRを取り出し、m1とRとの排他的論理和値x∈{0,1}λを得る。
Figure 0006649289
次にEnc1(MSK1,m1)は、排他的論理和値xのi∈[n]ビット目の値をx[i]として暗号文CT1←{Ki,x[i]i∈[n]を得て出力する。
復号アルゴリズムDec1(skf1,CT1):
Dec1(skf1,CT1)は、秘密鍵skf1=(C,{ci,αi∈[n],α∈{0,1})および暗号文CT1={Ki∈[n]を入力とし、以下の処理を行う。
Dec1(skf1,CT1)は、各i∈[n]についてKに擬似乱数生成アルゴリズムPRGを適用して擬似乱数K を得る。ただし、擬似乱数生成アルゴリズムPRGの適用の仕方は前述したKG1(MSK1,f1)のものと同じである。例えば、例えばDec1(skf1,CT1)は、νの初期値をKとした後、νのビット長がλビットに達するまでν←PRG(ν)の処理を繰り返し、λビットに達したνを擬似乱数K とする。
Dec1(skf1,CT1)は、復号アルゴリズムDを用い、擬似乱数K を共通鍵として暗号文ci,0を復号できるのであれば(D(K ,ci,0)≠⊥)、擬似乱数K を共通鍵として暗号文ci,0を復号してL←D(K ,ci,0)を得る。そうでなければ、擬似乱数K を共通鍵として暗号文ci,1を復号してL←D(K ,ci,1)を得る。Dec1(skf1,CT1)は、この処理を各i∈[n]について行う。
Dec1(skf1,CT1)は、鍵情報Cと秘匿化ラベル情報{Li∈[n]について実行アルゴリズムEvalを実行し、復号値y←Eval(C,{Li∈[n])を得て出力する。
<λ-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号SKFE3>
上述したSKFE1(第1関数暗号)と1-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号を用い、λ-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号であって暗号文サイズが高々λ1/t・φ+poly(λ)である方式SKFE3=(Setup3,KG3,Enc3,Dec3)を構成する方法を説明する。
まず、1-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号から、λ-key unbounded-ciphertext完全簡素性秘密鍵関数型暗号SKFE2(第2関数暗号)で暗号文サイズが高々poly(λ,n)であるものを構成できることが知られている(例えば、非特許文献2等参照)。以下では、SKFE1とSKFE2とを用い、以下のSKFE3=(Setup3,KG3,Enc3,Dec3)を構成する。
ただし、SKFE1=(Setup1,KG1,Enc1,Dec1)はunbounded-key 1-ciphertext 完全簡素性秘密鍵関数型暗号である。Setup1は、マスター秘密鍵MSK1を得るSKFE1のセットアップアルゴリズムであり、KG1は、関数f1およびマスター秘密鍵MSK1を入力として関数f1に対する秘密鍵skf1を得るSKFE1の鍵生成アルゴリズムであり、Enc1は、マスター秘密鍵MSK1およびメッセージm1を入力とし、マスター秘密鍵MSK1でメッセージm1を暗号化して暗号文CT1を得るSKFE1の暗号化アルゴリズムであり、Dec1は、秘密鍵skf1および暗号文CT1を入力とし、秘密鍵skf1で暗号文CT1を復号するSKFE1の復号アルゴリズムである。
第2関数暗号SKFE2=(Setup2,KG2,Enc2,Dec2)は1-key unbounded-ciphertext 秘密鍵関数型暗号である。Setup2は、マスター秘密鍵MSK2を得るSKFE2のセットアップアルゴリズムであり、KG2は、関数f2、マスター秘密鍵MSK2、インデックスjを入力として関数f2に対する秘密鍵skf2を得るSKFE2の鍵生成アルゴリズムであり、Enc2は、マスター秘密鍵MSK2およびメッセージm2を入力とし、マスター秘密鍵MSK2でメッセージm2を暗号化して暗号文CT2を得るSKFE2の暗号化アルゴリズムであり、Dec2は、秘密鍵skf2および暗号文CT2を入力とし、秘密鍵skf2で暗号文CT2を復号するSKFE2の復号アルゴリズムである。
⊥は無意味な情報(例えば、ランダムな情報や予め定められた情報)を表し、λが正整数であるセキュリティパラメータであり、PRGが入力情報に対応する擬似乱数を出力する擬似乱数生成アルゴリズムを表す。
セットアップアルゴリズムSetup3(1λ):
Setup3は、セキュリティパラメータλを入力とし、Setup2を実行してマスター秘密鍵MSK2←Setup2(1λ)を得て出力する。
鍵生成アルゴリズムKG3(MSK2,f3,j):
KG3(MSK2,f3,j)は、マスター秘密鍵MSK2、関数f3、およびインデックスjを入力とし、以下の処理を行う。
KG3(MSK2,f3,j)は、θ∈{0,1}λを選択し、θに擬似乱数生成アルゴリズムPRGを適用して擬似乱数rθ←PRG(θ)を得る。
KG3(MSK2,f3,j)は、パラメータ(f,f,v,j,θ)が書き込まれている(設定されている)関数G[f,f,v,j,θ]を設定する。関数G[f,f,v,j,θ]は、マスター秘密鍵MSK1およびα∈{0,1}を入力としてMSK1=⊥ならばvを出力し、そうでなければKG1を実行して関数C[fα]に対する、擬似乱数rθでランダム化された秘密鍵sk←KG1(MSK1,C[fα];rθ)を得て秘密鍵skおよびインデックスjを出力する。ただし、C[f3]は関数f3が書き込まれた(設定された)関数であり、パラメータ(m,m,γ)(ただし、γ∈{0,1})を入力として関数f3の関数値f3(mγ)を出力する。
KG3(MSK2,f3,j)は、KG2を実行して、関数G[f3,⊥,⊥,j,θ]に対する秘密鍵(個別秘密鍵)sk←KG2(MSK2,G[f3,⊥,⊥,j,θ],j)を得て出力する。秘密鍵skは関数f3に対応する秘密鍵skf3である。
暗号化アルゴリズムEnc3(MSK2,m3):
Enc3(MSK2,m3)は、マスター秘密鍵MSK2およびメッセージm3を入力とし、以下の処理を実行する。
Enc3(MSK2,m3)は、セキュリティパラメータλを入力とし、Setup1を実行してマスター秘密鍵MSK1←Setup1(1λ)を得る。
Enc3(MSK2,m3)は、Enc1を実行し、マスター秘密鍵MSK1でメッセージ(m3,⊥,0)を暗号化して暗号文CT1←Enc1(MSK1,(m3,⊥,0))を得る。またEnc3(MSK2,m3)は、Enc2を実行し、マスター秘密鍵MSK2でメッセージ(MSK1,0)を暗号化して暗号文CT2←Enc2(MSK2,(MSK1,0))を得、暗号文CT3←(CT1,CT2)を得て出力する。
復号アルゴリズムDec3(sk,CT3):
Dec3(sk,CT3)は、秘密鍵skf3=skおよび暗号文CT3=(CT1,CT2)を入力とし、以下の処理を実行する。
Dec3(sk,CT3)は、Dec2を実行して秘密鍵skで暗号文CT2を復号することで秘密鍵sk←Dec2(sk,CT2)を得、Dec1を実行して秘密鍵skで暗号文CT1を復号することで復号値y←Dec1(sk,CT1)を得て出力する。
<q4q5-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号SKFE6>
q4-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号であって暗号文サイズが高々λ1/t・φ+poly(λ)である第4関数型暗号SKFE4=(Setup4,KG4,Enc4,Dec4)およびq5-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号であって暗号文サイズが高々λ1/t・φ+poly(λ)である第5関数型暗号SKFE5=(Setup5,KG5,Enc5,Dec5)を用い、q4q5-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号SKFE6=(Setup6,KG6,Enc6,Dec6)を構成(積構成)する方法を説明する。
ただし、λが正整数のセキュリティパラメータであり、SKFE4のメッセージ空間、関数空間、インデックス空間をそれぞれM,F,およびIとし、SKFE5のメッセージ空間、関数空間、インデックス空間をそれぞれM,F,およびIとする。つまり、|I|=q、|I|=qである。PRFを鍵空間が{0,1}λである擬似ランダム関数とする(参考文献4)。
は正整数であり、SKFE4=(Setup4,KG4,Enc4,Dec4)のSetup4は、マスター秘密鍵MSK4を得る第4関数型暗号SKFE4のセットアップアルゴリズムである。KG4は、関数f4、マスター秘密鍵MSK4、およびインデックスιを入力として関数f4に対する秘密鍵skf4を得るSKFE4の鍵生成アルゴリズムである。Enc4は、マスター秘密鍵MSK4およびメッセージm4を入力とし、マスター秘密鍵MSK4でメッセージm4を暗号化して暗号文CT4を得るSKFE4の暗号化アルゴリズムである。Dec4は、秘密鍵skf4および暗号文CT4を入力とし、秘密鍵skf4で暗号文CT4を復号するSKFE4の復号アルゴリズムである。
は正整数であり、SKFE5=(Setup5,KG5,Enc5,Dec5)のSetup5は、マスター秘密鍵MSK5を得る第5関数暗号SKFE5のセットアップアルゴリズムである。KG5は、関数f5、マスター秘密鍵MSK5、およびインデックスκを入力として関数f5に対する秘密鍵skf5を得るSKFE5の鍵生成アルゴリズムである。Enc5は、マスター秘密鍵MSK5およびメッセージm5を入力とし、マスター秘密鍵MSK5でメッセージm5を暗号化して暗号文CT5を得るSKFE5の暗号化アルゴリズムである。Dec5は、秘密鍵skf5および暗号文CT5を入力とし、秘密鍵skf5で暗号文CT5を復号するSKFE5の復号アルゴリズムである。
SKFE4およびSKFE5には前述のSKFE3を用いることができる。すなわち、Setup4およびSetup5としてSetup3を用い、KG4およびKG5としてKG3を用い、Enc4およびEnc5としてEnc3を用い、Dec4およびDec5としてDec3を用いることができる。
セットアップアルゴリズムSetup6(1λ):
Setup6(1λ)は、セキュリティパラメータλを入力とし、Setup4を実行してマスター秘密鍵MSK4←Setup4(1λ)を得、擬似ランダム関数PRFの鍵S←{0,1}λを選択し、マスター秘密鍵MSK6←(MSK4,S)を得て出力する。
鍵生成アルゴリズムKG6(MSK6,f6,(ι,κ)):
KG6(MSK6,f6,(ι,κ))は、マスター秘密鍵MSK6=(MSK4,S)、関数f6、およびインデックスι,κを入力とし、以下の処理を実行する。
KG6(MSK6,f6,(ι,κ))は、鍵Sおよびインデックスιに擬似ランダム関数PRFを適用して擬似乱数r5,ι←PRF(S,ι)を得、Setup5を実行して擬似乱数r5,ιでランダム化されたマスター秘密鍵MSK5ι←Setup5(1λ;r5,ι)を得る。
KG6(MSK6,f6,(ι,κ))は、擬似ランダム関数の鍵Sι←{0,1}λを選択し、鍵Sιおよびマスター秘密鍵MSK5ιが書き込まれた(設定された)関数eι[Sι,MSK5ι]を設定する。ただし、関数eι[Sι,MSK5ι]は、任意の(m,m,r,CT)を入力として擬似乱数rι←PRF(Sι,r)を得る処理と、Enc5を実行してマスター秘密鍵MSK5ιでmを暗号化して擬似乱数rιでランダム化された暗号文CT5ι←Enc5(MSK5ι,m;rι)を出力する処理と、を行う関数である。
KG6(MSK6,f6,(ι,κ))は、マスター秘密鍵MSK4、関数eι[Sι,MSK5ι]、およびインデックスιを入力としてKG4を実行して秘密鍵skeι←KG4(MSK4,eι[Sι,MSK5ι],ι)を得る。また、KG6(MSK6,f6,(ι,κ))は、マスター秘密鍵MSK5ι、関数f6を、およびインデックスκを入力としてKG5を実行して、関数f6に対応する秘密鍵skf6,ι←KG5(MSK5ι,f6,κ)を得る。KG6(MSK6,f6,(ι,κ))は、秘密鍵skf6←(skeι,skf6,ι)を得て出力する。
暗号化アルゴリズムEnc6(MSK6,m6):
Enc6(MSK6,m6)は、マスター秘密鍵MSK6=(MSK4,S)およびメッセージm6を入力とし、r←{0,1}λをランダムに選択し、Enc4を実行してマスター秘密鍵MSK4で(m6,⊥,r,⊥)を暗号化して暗号文CT4←Enc4(MSK4,(m6,⊥,r,⊥))を得て出力する。
復号アルゴリズムDec6(skf6,CT4):
Dec6(skf6,CT4)は、秘密鍵skf6=(skeι,skf6,ι)および暗号文CT4=Enc4(MSK4,(m6,⊥,r,⊥))を入力とし、Dec4を実行して秘密鍵skeιで暗号文CT4を復号して暗号文CT5ι←Dec4(skeι,CT4)を得、Dec5を実行して秘密鍵skf6,ιで暗号文CT5ιを復号して復号値y←Dec5(skf6,ι,CT5ι)を得て出力する。
<λt-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号>
上記においてq=q=λとすると、SKFE6はλ2-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号となる。得られたq=λのSKFE6をSKFE4として用い、q=λのSKFE5を用いて同様に構成すると新たなSKFE6はλ3-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号となる。同様な積構成を繰り返し、q=λt−1のSKFE6をSKFE4として用い、q=λのSKFE5を用いることで、自然数tについてλt-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号を構成できる。すなわち、q・q=λを満たすqおよびqについて上記の積構成を適用すると、λt-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号を構成できる。
<unbounded-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号>
また、Setup4およびSetup5がSetup3であり、KG4およびKG5がKG3であり、Enc4およびEnc5がEnc3であり、Dec4およびDec5がDec3であり、SKFE3の構成に用いられたSKFE1のKG1およびDec1で用いられる擬似乱数生成アルゴリズムPRGが、quasi exponentailly-secure 一方向性関数を利用して構成されている場合、t=loglogλとすることができる。この場合、λtは任意の多項式より大きくなり、上述のように構成されるλt-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号は、unbounded-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号となる。なお、quasi exponentailly-secure 一方向性関数は、楕円曲線上の離散対数問題を利用した一方向性関数である(例えば、森山大輔,西巻陵,岡本龍明,「公開鍵暗号の数理 (シリーズ応用数理2)」,2011年3月25日,共立出版,P12,P40〜P42(参考文献5)等参照)。
<unbounded-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号SKFE7>
また、quasi exponentailly-secure 一方向性関数を利用したPRGを用いない場合であっても、以下のようにすればunbounded-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号SKFE7=(Setup7,KG7,Enc7,Dec7)を構成できる。
ただし、λが正整数のセキュリティパラメータであり、η=loglogλであり(例えば、ηは正整数)、k∈[η]である。なお、「log」の底は2である。第6関数型暗号SKFE6=(Setup6,KG6,Enc6,Dec6)はλk-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号である。これはq=λの場合のSKFE6=(Setup6,KG6,Enc6,Dec6)である。SKFE6のメッセージ空間、関数空間、インデックス空間をそれぞれM、F、および[λ]とする。Setup6は、マスター秘密鍵MSK6を得るSKFE6のセットアップアルゴリズムである。KG6は、関数f6、マスター秘密鍵MSK6、およびインデックスβを入力として関数f6に対する秘密鍵skf6,kを得る第6関数暗号SKFE6の鍵生成アルゴリズムである。Enc6は、マスター秘密鍵MSK6およびメッセージm6を入力とし、マスター秘密鍵MSK6でメッセージm6を暗号化して暗号文CT6を得るSKFE6の暗号化アルゴリズムである。Dec6は、秘密鍵skf6,kおよび暗号文CT6を入力とし、秘密鍵skf6,kで暗号文CT6を復号するSKFE6の復号アルゴリズムである。
これを用いて構成されるSKFE7=(Setup7,KG7,Enc7,Dec7)のメッセージ空間、関数空間、インデックス空間は、それぞれM、F、および∪k∈[η]{(k,ρ)|ρ∈[λ]}である。
セットアップアルゴリズムSetup7(1λ):
Setup7(1λ)は、各k∈[η]についてSetup6を実行してマスター秘密鍵MSK6←Setup6(1λ)を得、これらを用いてマスター秘密鍵MSK7←(MSK6,…,MSK6η)を得て出力する。
鍵生成アルゴリズムKG7(MSK7,f7,(k,ρ)):
KG7(MSK7,f7,(k,ρ))は、マスター秘密鍵MSK7=(MSK6,…,MSK6η)、関数f7、およびインデックス(k,ρ)を入力とし、KG6を実行して秘密鍵skf6,k←KG6(MSK6,f7,ρ)を得、関数f7に対する秘密鍵skf7←(k,skf6,k)を得て出力する。
暗号化アルゴリズムEnc7(MSK7,m7):
Enc7(MSK7,m7)は、マスター秘密鍵MSK7=(MSK6,…,MSK6η)およびメッセージm7を入力とし、各k∈[η]についてEnc6を実行して、マスター秘密鍵MSK6でメッセージm7を暗号化した暗号文CT6←Enc6(MSK6,m7)を得る。Enc7(MSK7,m7)は、これらを用いて暗号文CT7←(CT6,…,CT6η)を得て出力する。
復号アルゴリズムDec7(skf7,CT7):
Dec7(skf7,CT7)は、秘密鍵skf7=(k,skf6,k)および暗号文CT7=(MSK6,…,MSK6η)を入力とし、Dec6を実行して秘密鍵skf6,kで暗号文MSK6を復号して復号値y←Dec6(skf6,k,MSK6)を得て出力する。
以上のように、unbounded-key 1-ciphertext 完全簡素性秘密鍵関数型暗号SKFE1を構成でき、これと1-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号を用いることでλ-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号SKFE3を構成できる。すなわち、1-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号からλ-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号SKFE3を構成できる。
またλ-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号SKFE3からq4q5-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号SKFE6を構成でき、これを用いることでλt-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号を構成できる。
また、λt-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号を用いることで、unbounded-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号を構成できる。
つまり、1-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号(1-key方式)から、unbounded-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号(unbounded-key方式)を構成できる。
<識別不可能性難読化器>
参考文献6(Nir Bitansky, Ryo Nishimaki, Alain Passel`egue, and Daniel Wichs, “From cryptomania to obfustopia through secret-key functional encryption,” IACR Cryptology ePrint Archive, 2016:558, 2016.)には、unbounded-key unbounded-ciphertext 秘密鍵関数型暗号と(標準的な)公開鍵暗号とを用いて、識別不可能性難読化器を構成できることが記載されている。上述のように、本形態では1-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号から、unbounded-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号を構成できるため、1-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号と(標準的な)公開鍵暗号とを用いて、識別不可能性難読化器も構成できる。
<第1実施形態>
次に、図面を用いて本発明の第1実施形態を説明する。
本形態は、前述した<unbounded-key 1-ciphertext 完全簡素性秘密鍵関数型暗号SKFE1>の具体例である(SKFE1=(Setup1,KG1,Enc1,Dec1))。
<構成>
図1に例示するように、本形態の暗号システム1は、セットアップ装置11、鍵生成装置12、暗号化装置13、および復号装置14を有する。セットアップ装置11は、例えば、メモリ111、通信部112、およびマスター鍵生成部113を有する。鍵生成装置12は、例えば、メモリ121、通信部122、秘匿化部123、行列生成部124、擬似乱数生成部125、暗号化部126、および秘密鍵生成部127を有する。暗号化装置13は、例えば、メモリ131、通信部132、排他的論理和部133、および暗号化部134を有する。復号装置14は、例えば、メモリ141、通信部142、擬似乱数生成部143、復号部144、および実行部145を有する。
セットアップ装置11、鍵生成装置12、暗号化装置13、および復号装置14は、入力情報、演算過程で保存する必要がある情報、演算結果の情報をメモリ111,121,131,141にそれぞれ格納し、必要に応じて読み出して利用する。また、セットアップ装置11、鍵生成装置12、暗号化装置13、および復号装置14は、それぞれ通信部112,122,132,142によって情報の送受信を行う。各装置から送信された情報は、例えばネットワークを通じて他の装置に送信される。
セットアップ装置11、鍵生成装置12、暗号化装置13、および復号装置14のそれぞれは、例えば、通信装置、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)、およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される装置である。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
なお、図1では、セットアップ装置11、鍵生成装置12、暗号化装置13、および復号装置14を1個ずつ例示するが、これらの少なくとも一部の装置が複数個存在していてもよい。
<処理>
次に本形態の処理を説明する。
≪セットアップアルゴリズムSetup1(1λ)の実行処理≫
セットアップ装置11のマスター鍵生成部113は、セキュリティパラメータλを入力とし、各i∈[n]およびα∈{0,1}についてKi,α←{0,1}を選択し、R←{0,1}λを選択し、マスター秘密鍵MSK1←({Ki,αi∈[n],α∈{0,1},R)を得て出力する。Ki,αおよびRの選択は、例えば、ランダムに行われる。マスター秘密鍵MSK1=({Ki,αi∈[n],α∈{0,1},R)はメモリ111に格納される。通信部112は、マスター秘密鍵MSK1を鍵生成装置12および暗号化装置13に送信する。
≪鍵生成アルゴリズムKG1(MSK1,f1)の実行処理≫
鍵生成装置12の通信部122には、復号装置14から送られた関数f1およびセットアップ装置11から送られたマスター秘密鍵MSK1=({Ki,αi∈[n],α∈{0,1},R)が入力される。関数f1およびマスター秘密鍵MSK1はメモリ121に格納される。
秘匿化部123は、関数f1に対応する論理回路Cf1に対して秘匿化アルゴリズムGarbleを実行して(C,{Li,αi∈[n],α∈{0,1})←Garble(1λ,Cf1)を得てメモリ121に格納する。
行列生成部124は、Rおよび{Li,αi∈[n],α∈{0,1}を入力として、Rのi∈[n]ビット目の値R[i]をi行α列の要素Zi,αとする2×n行列
Figure 0006649289
を得てメモリ121に格納する。
擬似乱数生成部125は、各i∈[n]およびα∈{0,1}についてKi,αに擬似乱数生成アルゴリズムPRGを適用して擬似乱数Ki,α を得る。例えば擬似乱数生成部125は、νi,αの初期値をKi,αとした後、νi,αのビット長がλビットに達するまでνi,α←PRG(νi,α)の処理を繰り返し、λビットに達したνi,αを擬似乱数Ki,α とする。擬似乱数Ki,α はメモリ121に格納される。
暗号化部126は、擬似乱数Ki,α 、および2×n行列(Zi,α)を入力とし、暗号化アルゴリズムEを用い、各i∈[n]およびα∈{0,1}について、擬似乱数Ki,α を共通鍵として要素Zi,αを暗号化した暗号文ci,α←E(Ki,α ,Zi,α)を得てメモリ121に格納する。
秘密鍵生成部127は、Cおよび暗号文ci,αを入力とし、関数f1に対する秘密鍵skf1←(C,{ci,αi∈[n],α∈{0,1})を得てメモリ121に格納する。通信部122は、秘密鍵skf1=(C,{ci,αi∈[n],α∈{0,1})を復号装置14に送信する。
≪暗号化アルゴリズムEnc1(MSK1,m1)の実行処理≫
暗号化装置13の通信部132は、マスター秘密鍵MSK1=({Ki,αi∈[n],α∈{0,1},R)を受信してメモリ131に格納する。排他的論理和部133は、メッセージm1およびマスター秘密鍵MSK1を入力とし、MSK1から{Ki,αi∈[n],α∈{0,1}およびRを取り出し、m1とRとの排他的論理和値x∈{0,1}λを得てメモリ131に格納する。
暗号化部134は、排他的論理和値xのi∈[n]ビット目の値をx[i]として暗号文CT1←{Ki,x[i]i∈[n]を得てメモリ131に格納する。通信部132は暗号文CT1を復号装置14に送信する。
≪復号アルゴリズムDec1(skf1,CT1)の実行処理≫
復号装置14の通信部142には、秘密鍵skf1=(C,{ci,αi∈[n],α∈{0,1})および暗号文CT1={Ki∈[n]={Ki,x[i]i∈[n]が入力される。秘密鍵skf1および暗号文CT1はメモリ141に格納される。
擬似乱数生成部143は、{Ki∈[n]を入力とし、各i∈[n]についてKに擬似乱数生成アルゴリズムPRGを適用して擬似乱数K を得てメモリ141に格納する。ただし、擬似乱数生成アルゴリズムPRGの適用の仕方は前述した擬似乱数生成部125での擬似乱数生成アルゴリズムPRGの適用の仕方と同じである。例えば、例えばDec1(skf1,CT1)は、νの初期値をKとした後、νのビット長がλビットに達するまでν←PRG(ν)の処理を繰り返し、λビットに達したνを擬似乱数K とする。
復号部144は、{K i∈[n]および{ci,αi∈[n],α∈{0,1}を入力とし、各i∈[n]について、復号アルゴリズムDを用い、擬似乱数K を共通鍵として暗号文ci,0を復号できるかを判定する。擬似乱数K を共通鍵として暗号文ci,0を復号できるのであれば(D(K ,ci,0)≠⊥)、復号部144は、擬似乱数K を共通鍵として暗号文ci,0を復号してL←D(K ,ci,0)を得、L=D(K ,ci,0)をメモリ141に格納する。そうでなければ(D(K ,ci,0)=⊥)、復号部144は、擬似乱数K を共通鍵として暗号文ci,1を復号してL←D(K ,ci,1)を得、L=D(K ,ci,1)をメモリ141に格納する。
実行部145は、鍵情報Cおよび秘匿化ラベル情報{Li∈[n]を入力とし、鍵情報Cと秘匿化ラベル情報{Li∈[n]について実行アルゴリズムEvalを実行し、復号値y←Eval(C,{Li∈[n])を得て出力する。
<第2実施形態>
次に、図面を用いて本発明の第2実施形態を説明する。
本形態は、前述した<λ-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号SKFE3>の具体例である。第1実施形態のSKFE1=(Setup1,KG1,Enc1,Dec1)と、1-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号から構成されるλ-key unbounded-ciphertext完全簡素性秘密鍵関数型暗号SKFE2(例えば、非特許文献2等参照)とを用い、SKFE3=(Setup3,KG3,Enc3,Dec3)を構成する。以降、既に説明した事項については同じ参照番号を用いて説明を省略する。
<構成>
図2に例示するように、本形態の暗号システム2は、セットアップ装置21、鍵生成装置22、暗号化装置23、および復号装置24を有する。セットアップ装置21は、例えば、メモリ111、通信部112、およびマスター鍵生成部213を有する。鍵生成装置22は、例えば、メモリ121、通信部122、選択部223、擬似乱数生成部224、関数設定部225、および秘密鍵生成部226を有する。暗号化装置23は、例えば、メモリ131、通信部132、セットアップ部233、および暗号化部234を有する。復号装置24は、例えば、メモリ141、通信部142、秘密鍵復号部243、および復号部244を有する。
セットアップ装置21、鍵生成装置22、暗号化装置23、および復号装置24は、入力情報、演算過程で保存する必要がある情報、演算結果の情報をメモリ111,121,131,141にそれぞれ格納し、必要に応じて読み出して利用する。また、セットアップ装置21、鍵生成装置22、暗号化装置23、および復号装置24は、それぞれ通信部112,122,132,142によって情報の送受信を行う。セットアップ装置21、鍵生成装置22、暗号化装置23、および復号装置24のそれぞれは、例えば、前述のコンピュータが所定のプログラムを実行することで構成される装置である。なお、図2では、セットアップ装置21、鍵生成装置22、暗号化装置23、および復号装置24を1個ずつ例示するが、これらの少なくとも一部の装置が複数個存在していてもよい。
<処理>
次に本形態の処理を説明する。
≪セットアップアルゴリズムSetup3(1λ)の実行処理≫
セットアップ装置21のマスター鍵生成部213は、セキュリティパラメータλを入力とし、Setup2を実行してマスター秘密鍵MSK2←Setup2(1λ)を得てメモリ111に格納する。通信部112は、MSK2を鍵生成装置22および暗号化装置23に送信する。
≪鍵生成アルゴリズムKG3(MSK2,f3,j)の実行処理≫
鍵生成装置22の通信部122には、復号装置24から送られた関数f3およびインデックスj、ならびにセットアップ装置21から送られたマスター秘密鍵MSK2が入力される。関数f3、インデックスj、およびマスター秘密鍵MSK2は、メモリ121に格納される。
選択部223は、θ∈{0,1}λを選択して出力し、擬似乱数生成部224は、このθに擬似乱数生成アルゴリズムPRGを適用して擬似乱数rθ←PRG(θ)を得てメモリ121に格納する。θの選択は、例えばランダムに行われる。
関数設定部225は、j,θ、関数f3、任意の関数f,f、および任意値vを入力とし、パラメータ(f,f,v,j,θ)が書き込まれている(設定されている)前述した関数G[f,f,v,j,θ]を設定し、関数G[f,f,v,j,θ]をメモリ121に格納する。
秘密鍵生成部226は、マスター秘密鍵MSK2、関数G[f3,⊥,⊥,j,θ]、およびインデックスjを入力とし、KG2を実行して、関数G[f3,⊥,⊥,j,θ]に対する秘密鍵sk←KG2(MSK2,G[f3,⊥,⊥,j,θ],j)を得てメモリ121に格納する。通信部122は、秘密鍵skf3=sk=KG2(MSK2,G[f3,⊥,⊥,j,θ],j)を復号装置24に送信する。
≪暗号化アルゴリズムEnc3(MSK2,m3)の実行処理≫
暗号化装置23の通信部132にはマスター秘密鍵MSK2が入力される。セットアップ部233は、セキュリティパラメータλを入力とし、Setup1を実行してマスター秘密鍵MSK1←Setup1(1λ)を得てメモリ131に格納する。
暗号化部234は、メッセージm3およびマスター秘密鍵MSK1を入力とし、Enc1を実行し、マスター秘密鍵MSK1でメッセージ(m3,⊥,0)を暗号化して暗号文CT1←Enc1(MSK1,(m3,⊥,0))を得てメモリ131に格納する。さらに暗号化部234は、マスター秘密鍵MSK1およびMSK2を入力とし、Enc2を実行し、マスター秘密鍵MSK2でメッセージ(MSK1,0)を暗号化して暗号文CT2←Enc2(MSK2,(MSK1,0))を得てメモリ131に格納する。その後、暗号化部234は、暗号文CT3←(CT1,CT2)を得てメモリ131に格納する。通信部132は、暗号文CT3=(CT1,CT2)を復号装置24に送信する。
≪復号アルゴリズムDec3(sk,CT3)の実行処理≫
復号装置24の通信部142には、秘密鍵skf3=skおよび暗号文CT3=(CT1,CT2)が入力される。
秘密鍵復号部243は、秘密鍵skf3=skおよびCT3=(CT1,CT2)を入力とし、暗号文CT3から暗号文CT2を取り出し、Dec2を実行して秘密鍵skで暗号文CT2を復号することで秘密鍵sk←Dec2(sk,CT2)を得てメモリ141に格納する。
復号部244は、秘密鍵skおよびCT3=(CT1,CT2)を入力とし、暗号文CT3から暗号文CT1を取り出し、Dec1を実行して秘密鍵skで暗号文CT1を復号することで復号値y←Dec1(sk,CT1)を得て出力する。
<第3実施形態>
次に、図面を用いて本発明の第3実施形態を説明する。
本形態は、前述した<q4q5-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号SKFE6>の具体例である。前述の第4関数型暗号SKFE4=(Setup4,KG4,Enc4,Dec4)および第5関数型暗号SKFE5=(Setup5,KG5,Enc5,Dec5)を用い、q4q5-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号SKFE6=(Setup6,KG6,Enc6,Dec6)を構成する。なお、第4関数型暗号SKFE4および第5関数型暗号SKFE5には、第2実施形態のKFE3=(Setu3,KG3,Enc3,Dec3)を利用できる。
<構成>
図3に例示するように、本形態の暗号システム3は、セットアップ装置31、鍵生成装置32、暗号化装置33、および復号装置34を有する。セットアップ装置31は、例えば、メモリ111、通信部112、マスター鍵生成部313、擬似乱数生成部314、およびマスター鍵生成部315を有する。鍵生成装置32は、例えば、メモリ121、通信部122、擬似乱数生成部323、鍵選択部324、関数設定部325、秘密鍵生成部326、およびセットアップ部327を有する。暗号化装置33は、例えば、メモリ131、通信部132、選択部333、および暗号化部334を有する。復号装置34は、例えば、メモリ141、通信部142、復号部343,344を有する。
セットアップ装置31、鍵生成装置32、暗号化装置33、および復号装置34は、入力情報、演算過程で保存する必要がある情報、演算結果の情報をメモリ111,121,131,141にそれぞれ格納し、必要に応じて読み出して利用する。また、セットアップ装置31、鍵生成装置32、暗号化装置33、および復号装置34は、それぞれ通信部112,122,132,142によって情報の送受信を行う。セットアップ装置31、鍵生成装置32、暗号化装置33、および復号装置34のそれぞれは、例えば、前述のコンピュータが所定のプログラムを実行することで構成される装置である。なお、図3では、セットアップ装置31、鍵生成装置32、暗号化装置33、および復号装置34を1個ずつ例示するが、これらの少なくとも一部の装置が複数個存在していてもよい。
<処理>
次に本形態の処理を説明する。
≪セットアップアルゴリズムSetup6(1λ)の実行処理≫
セットアップ装置31のマスター鍵生成部313は、セキュリティパラメータλを入力とし、Setup4を実行してマスター秘密鍵MSK4←Setup4(1λ)を得てメモリ111に格納する。
擬似乱数生成部314は、擬似ランダム関数PRFの鍵S←{0,1}λを選択し、マスター鍵生成部315は、マスター秘密鍵MSK6←(MSK4,S)を得てメモリ111に格納する。鍵Sの選択は例えばランダムに行われる。通信部112は、マスター秘密鍵MSK6=(MSK4,S)を鍵生成装置32および暗号化装置33に送信する。
≪鍵生成アルゴリズムKG6(MSK6,f6,(ι,κ))の実行処理≫
鍵生成装置32の通信部122には、セットアップ装置31から送信されたマスター秘密鍵MSK6=(MSK4,S)、ならびに復号装置34から送信された関数f6およびインデックス(ι,κ)が入力される。
擬似乱数生成部323は、鍵Sおよびインデックスιを入力とし、鍵Sおよびインデックスιに擬似ランダム関数PRFを適用して擬似乱数r5,ι←PRF(S,ι)を得てメモリ121に格納する。
セットアップ部327は、擬似乱数r5,ιを入力とし、Setup5を実行して擬似乱数r5,ιでランダム化されたマスター秘密鍵MSK5ι←Setup5(1λ;r5,ι)を得て、メモリ121に格納する。
鍵選択部324は、擬似ランダム関数の鍵Sι←{0,1}λを選択してメモリ121に格納する。鍵Sιは例えばランダムに選択される。関数設定部325は、SιおよびMSK5ιを入力とし、鍵Sιおよびマスター秘密鍵MSK5ιが書き込まれた(設定された)前述の関数eι[Sι,MSK5ι]を設定する。関数eι[Sι,MSK5ι]はメモリ121に格納される。
秘密鍵生成部326は、マスター秘密鍵MSK4、関数eι[Sι,MSK5ι]、およびインデックスιを入力としてKG4を実行して秘密鍵skeι←KG4(MSK4,eι[Sι,MSK5ι],ι)を得る。また秘密鍵生成部326は、マスター秘密鍵MSK5ι、関数f6を、およびインデックスκを入力としてKG5を実行して、関数f6に対応する秘密鍵skf6,ι←KG5(MSK5ι,f6,κ)を得る。秘密鍵生成部326は、関数f6に対応する秘密鍵skf6←(skeι,skf6,ι)を得てメモリ121に格納する。通信部122は、秘密鍵skf6を復号装置34に送信する。
≪暗号化アルゴリズムEnc6(MSK6,m6)の実行処理≫
暗号化装置33の通信部132には、マスター秘密鍵MSK6=(MSK4,S)が入力される。選択部333は、r←{0,1}λをランダムに選択してメモリ131に格納する。暗号化部334は、マスター秘密鍵MSK6=(MSK4,S)、メッセージm6、およびrを入力とし、Enc4を実行してマスター秘密鍵MSK4で(m6,⊥,r,⊥)を暗号化して暗号文CT4←Enc4(MSK4,(m6,⊥,r,⊥))を得てメモリ131に格納する。通信部132は、暗号文CT4=Enc4(MSK4,(m6,⊥,r,⊥))を復号装置34に送信する。
≪復号アルゴリズムDec6(skf6,CT4)の実行処理≫
復号装置34の通信部142には、秘密鍵skf6および暗号文CT4が入力される。復号部343は、秘密鍵skf6=(skeι,skf6,ι)および暗号文CT4=Enc4(MSK4,(m6,⊥,r,⊥))を入力とし、秘密鍵skf6から秘密鍵skeιを取り出し、Dec4を実行して秘密鍵skeιで暗号文CT4を復号して暗号文CT5ι←Dec4(skeι,CT4)を得てメモリ121に格納する。
復号部344は、秘密鍵skf6=(skeι,skf6,ι)および暗号文CT5ιを入力とし、秘密鍵skf6から秘密鍵skf6,ιを取り出し、Dec5を実行して秘密鍵skf6,ιで暗号文CT5ιを復号して復号値y←Dec5(skf6,ι,CT5ι)を得て出力する。
[第3実施形態の変形例]
前述のように、第3実施形態の積構成を繰り返し、最終的にq=λt−1のSKFE6をSKFE4として用い、q=λのSKFE5を用いることで、自然数tについてλt-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号SKFE6’=(Setup6’,KG6’,Enc6’,Dec6’)を構成できる。また、第1実施形態で用いられている擬似乱数生成アルゴリズムPRGが、quasi exponentailly-secure 一方向性関数を利用して構成されている場合、t=loglogλとすることができ、この場合には、unbounded-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号となる。
<第4実施形態>
次に、図面を用いて本発明の第4実施形態を説明する。
本形態は、前述した<unbounded-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号SKFE7>の具体例である。以下、本形態のSKFE7=(Setup7,KG7,Enc7,Dec7)について説明する。
<構成>
図4に例示するように、本形態の暗号システム4は、セットアップ装置41、鍵生成装置42、暗号化装置43、および復号装置44を有する。セットアップ装置41は、例えば、メモリ111、通信部112、およびマスター鍵生成部413,414、を有する。鍵生成装置42は、例えば、メモリ121、通信部122、および秘密鍵生成部424,424を有する。暗号化装置43は、例えば、メモリ131、通信部132、および暗号化部433、434を有する。復号装置44は、例えば、メモリ141、通信部142、復号部444を有する。
セットアップ装置41、鍵生成装置42、暗号化装置43、および復号装置44は、入力情報、演算過程で保存する必要がある情報、演算結果の情報をメモリ111,121,131,141にそれぞれ格納し、必要に応じて読み出して利用する。また、セットアップ装置41、鍵生成装置42、暗号化装置43、および復号装置44は、それぞれ通信部112,122,132,142によって情報の送受信を行う。セットアップ装置41、鍵生成装置42、暗号化装置43、および復号装置44のそれぞれは、例えば、前述のコンピュータが所定のプログラムを実行することで構成される装置である。なお、図4では、セットアップ装置41、鍵生成装置42、暗号化装置43、および復号装置44を1個ずつ例示するが、これらの少なくとも一部の装置が複数個存在していてもよい。
<処理>
次に本形態の処理を説明する。
≪セットアップアルゴリズムSetup7(1λ)の実行処理≫
セットアップ装置41のマスター鍵生成部413は、セキュリティパラメータλを入力とし、各k∈[η]についてSetup6を実行してマスター秘密鍵MSK6←Setup6(1λ)を得てメモリ111に格納する。マスター鍵生成部414は、これらMSK6を用いてマスター秘密鍵MSK7←(MSK6,…,MSK6η)を得てメモリ111に格納する。通信部112は、マスター秘密鍵MSK7=(MSK6,…,MSK6η)を、鍵生成装置42および暗号化装置43に送信する。
≪鍵生成アルゴリズムKG7(MSK7,f7,(k,ρ))の実行処理≫
鍵生成装置42の通信部122には、マスター秘密鍵MSK7=(MSK6,…,MSK6η)、ならびに復号装置44から送信された関数f7およびインデックス(k,ρ)が入力される。
秘密鍵生成部423は、マスター秘密鍵MSK7=(MSK6,…,MSK6η)、関数f7、およびインデックス(k,ρ)を入力とし、KG6を実行して秘密鍵skf6,k←KG6(MSK6,f7,ρ)を得てメモリ121に格納する。秘密鍵生成部424は、kおよびskf6,kを入力とし、関数f7に対する秘密鍵skf7←(k,skf6,k)を得てメモリ121に格納する。通信部122は、秘密鍵skf7を復号装置44に送信する。
≪暗号化アルゴリズムEnc7(MSK7,m7)の実行処理≫
暗号化装置43の通信部132には、マスター秘密鍵MSK7=(MSK6,…,MSK6η)が入力される。暗号化部433は、マスター秘密鍵MSK7=(MSK6,…,MSK6η)およびメッセージm7を入力とし、各k∈[η]についてEnc6を実行して、マスター秘密鍵MSK6でメッセージm7を暗号化した暗号文CT6←Enc6(MSK6,m7)を得てメモリ131に格納する。暗号化部434は、これらの暗号文CT6=Enc6(MSK6,m7)を用いて暗号文CT7←(CT6,…,CT6η)を得てメモリ131に格納する。通信部132は、暗号文CT7=(CT6,…,CT6η)を復号装置44に送信する。
≪復号アルゴリズムDec7(skf7,CT7)の実行処理≫
復号装置44の通信部142には、秘密鍵skf7=(k,skf6,k)および暗号文CT7=(CT6,…,CT6η)が入力される。復号部443は、秘密鍵skf7=(k,skf6,k)および暗号文CT7=(CT6,…,CT6η)を入力とし、Dec6を実行し、秘密鍵skf7から取り出した秘密鍵skf6,kで、秘密鍵skf7から取り出したkに対応するMSK6を復号して復号値y←Dec6(skf6,k,CT6)を得て出力する。
<第5実施形態>
次に、図面を用いて本発明の第5実施形態を説明する。
本形態は、unbounded-key unbounded-ciphertext 秘密鍵関数型暗号と(標準的な)公開鍵暗号とを用い、前述した<識別不可能性難読化器>を構成する例を示す。unbounded-key unbounded-ciphertext 秘密鍵関数型暗号としては、第3実施形態の変形例で示したSKFE6’を用いてもよいし、第4実施形態で示したSKFE7=(Setup7,KG7,Enc7,Dec7)を用いてもよい。以下では、unbounded-key unbounded-ciphertext 秘密鍵関数型暗号としてSKFE7を用いる例を説明する。
<構成>
図5に例示するように、本形態の暗号システム5は、セットアップ装置41、鍵生成装置42、難読化装置53、および実行装置54を有する。難読化装置53は、メモリ431、暗号化装置43、難読化部532、および通信部533を有する。実行装置54は、メモリ541、復号装置44、実行部542、および通信部543を有する。
難読化装置53および実行装置54は、入力情報、演算過程で保存する必要がある情報、演算結果の情報をメモリ531および541にそれぞれ格納し、必要に応じて読み出して利用する。また、難読化装置53および実行装置54は、それぞれ通信部533および543によって情報の送受信を行う。各装置から送信された情報は、例えばネットワークを通じて他の装置に送信される。難読化装置53および実行装置54は、それぞれ前述のコンピュータが所定のプログラムを実行することで構成される装置である。図5では、1個の難読化装置53および実行装置54を例示するが、これらの少なくとも一方が複数個存在してもよい。
<処理>
次に本形態の処理を説明する。
≪セットアップアルゴリズムSetup7(1λ)の実行処理≫
本形態のSetup7(1λ)の実行処理は、第4実施形態のものと同じである。
≪鍵生成アルゴリズムKG7(MSK7,f7,(k,ρ))の実行処理≫
本形態のKG7(MSK7,f7,(k,ρ))は、第4実施形態のものと同じである。
≪プログラムの難読化の実行処理≫
難読化装置53の難読化部532は、難読化対象のプログラムproを入力とし、暗号化アルゴリズムEnc7(MSK7,m7)を実行する暗号化装置43を用い、参考文献6、参考文献7(Prabhanjan Ananth and Abhishek Jain, “Indistinguishability obfuscation from compact functional encryption,” In Rosario Gennaro and Matthew J. B. Robshaw, editors, CRYPTO 2015, Part I, volume 9215 of LNCS, pages 308-326. Springer, Heidelberg, August 2015.)、参考文献8(Nir Bitansky and Vinod Vaikuntanathan, “Indistinguishability obfuscation from functional encryption,” In Guruswami [Gur15], pages 171-190.)などに記載された識別不可能性難読化によってプログラムproを難読化し、難読化プログラムiO(pro)を得てメモリ531に格納する。通信部533は、難読化プログラムiO(pro)を実行装置54に送信する。
≪難読化プログラムの実行処理≫
実行装置54の通信部543には難読化プログラムiO(pro)が入力され、これはメモリ541に格納される。実行部542は、難読化プログラムiO(pro)を入力とし、復号アルゴリズムDec7(skf7,CT7)を実行する復号装置44を用い、参考文献6,7,8などに記載された難読化プログラムiO(pro)の実行処理を行い、実行結果を得て出力する。
[変形例等]
なお、本発明は上述の実施の形態に限定されるものではない。例えば、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。或いは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。これらの装置の一部からなる組み合わせが、同一の装置であってもよい。例えば、難読化装置53が、セットアップアルゴリズムSetup7(1λ)および鍵生成アルゴリズムKG7(MSK7,f7,(k,ρ))を実行してもよい。この場合には、難読化装置53から実行装置54に送られる難読化プログラムiO(pro)に秘密鍵skf7が含まれる。また、実行部542が難読化プログラムiO(pro)と入力値xとを入力として、入力値xに対する難読化プログラムiO(pro)の実行処理を行ってもよい。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
1〜5 暗号システム

Claims (16)

  1. n,t,λが正整数であり、n≦λであり、w=λ1/tが正整数であり、Cf1がn個の論理ゲートi∈[n]からなる論理回路であり、前記論理回路Cf1は関数f1によって表される演算を行い、GarbleがGarbling方式で前記論理回路Cf1を秘匿化して前記n個の論理ゲートi∈[n]の鍵情報Cと秘匿化ラベル情報{Li,αi∈[n],α∈{0,1}とを得る秘匿化アルゴリズムであり、Evalが前記鍵情報Cと秘匿化ラベル情報{Li∈[n]を用い、前記Garbling方式に則り、前記関数f1によって表される演算を行う実行アルゴリズムであり、Eが共通鍵暗号方式に則った暗号化を行う暗号化アルゴリズムであり、Dが前記共通鍵暗号方式に則った復号を行う復号アルゴリズムであり、PRGが入力情報に対応する擬似乱数を出力する擬似乱数生成アルゴリズムであり、
    i∈[n]およびα∈{0,1}についてKi,α←{0,1}を選択し、R←{0,1}λを選択し、マスター秘密鍵MSK1←({Ki,αi∈[n],α∈{0,1},R)を得るセットアップアルゴリズムSetup1を実行するセットアップ装置と、
    前記関数f1および前記マスター秘密鍵MSK1=({Ki,αi∈[n],α∈{0,1},R)を入力とし、前記秘匿化アルゴリズムGarbleを実行して(C,{Li,αi∈[n],α∈{0,1})を得、前記Rのi∈[n]ビット目の値R[i]を要素Zi,αとする行列
    Figure 0006649289

    を得、各i∈[n]およびα∈{0,1}についてKi,αに前記擬似乱数生成アルゴリズムPRGを適用して擬似乱数Ki,α を得、前記暗号化アルゴリズムEを用い、前記擬似乱数Ki,α を共通鍵として前記要素Zi,αを暗号化した暗号文ci,α←E(Ki,α ,Zi,α)を得、前記関数f1に対する秘密鍵skf1←(C,{ci,αi∈[n],α∈{0,1})を得る鍵生成アルゴリズムKG1を実行する鍵生成装置と、
    前記マスター秘密鍵MSK1=({Ki,αi∈[n],α∈{0,1},R)およびメッセージm1∈{0,1}λを入力とし、m1とRとの排他的論理和値x∈{0,1}λを得、前記排他的論理和値xのi∈[n]ビット目の値をx[i]として暗号文CT1←{Ki,x[i]i∈[n]を得る暗号化アルゴリズムEnc1を実行する暗号化装置と、
    前記秘密鍵skf1=(C,{ci,αi∈[n],α∈{0,1})および前記暗号文CT1={Ki∈[n]を入力とし、各i∈[n]についてKに前記擬似乱数生成アルゴリズムPRGを適用して擬似乱数K を得、前記復号アルゴリズムDを用い、前記擬似乱数K を共通鍵として前記暗号文ci,0を復号できるのであれば、前記擬似乱数K を共通鍵として前記暗号文ci,0を復号してL←D(K ,ci,0)を得、そうでなければ、前記擬似乱数K を共通鍵として前記暗号文ci,1を復号してL←D(K ,ci,1)を得、前記鍵情報Cと前記秘匿化ラベル情報{Li∈[n]について前記実行アルゴリズムEvalを実行する復号アルゴリズムDec1を実行する復号装置と、
    を有する暗号システム。
  2. 第1関数暗号がunbounded-key 1-ciphertext 完全簡素性秘密鍵関数型暗号であり、Setup1が、マスター秘密鍵MSK1を得る前記第1関数暗号のセットアップアルゴリズムであり、KG1が、関数f1およびマスター秘密鍵MSK1を入力として前記関数f1に対する秘密鍵skf1を得る前記第1関数暗号の鍵生成アルゴリズムであり、Enc1が、前記マスター秘密鍵MSK1およびメッセージm1を入力とし、前記マスター秘密鍵MSK1で前記メッセージm1を暗号化して暗号文CT1を得る前記第1関数暗号の暗号化アルゴリズムであり、Dec1が、前記秘密鍵skf1および前記暗号文CT1を入力とし、前記秘密鍵skf1で前記暗号文CT1を復号する前記第1関数暗号の復号アルゴリズムであり、
    第2関数暗号がλ-key unbounded-ciphertext 秘密鍵関数型暗号であり、Setup2が、マスター秘密鍵MSK2を得る前記第2関数暗号のセットアップアルゴリズムであり、KG2が、関数f2、マスター秘密鍵MSK2、インデックスjを入力として前記関数f2に対する秘密鍵skf2を得る前記第2関数暗号の鍵生成アルゴリズムであり、Enc2が、前記マスター秘密鍵MSK2およびメッセージm2を入力とし、前記マスター秘密鍵MSK2で前記メッセージm2を暗号化して暗号文CT2を得る前記第2関数暗号の暗号化アルゴリズムであり、Dec2が、前記秘密鍵skf2および前記暗号文CT2を入力とし、前記秘密鍵skf2で前記暗号文CT2を復号する前記第2関数暗号の復号アルゴリズムであり、
    ⊥が無意味な情報を表し、λが正整数であり、PRGが入力情報に対応する擬似乱数を出力する擬似乱数生成アルゴリズムであり、
    前記Setup2を実行して前記マスター秘密鍵MSK2←Setup2(1λ)を得るセットアップアルゴリズムSetup3を実行するセットアップ装置と、
    前記マスター秘密鍵MSK2、前記関数f3、および前記インデックスjを入力とし、θ∈{0,1}λを選択し、θに前記擬似乱数生成アルゴリズムPRGを適用して擬似乱数rθ←PRG(θ)を得、パラメータ(m,m,γ)(ただし、γ∈{0,1})を入力として関数f3の関数値f3(mγ)を出力する関数をC[f3]とし、設定されたパラメータ(f,f,v,j,θ)について前記マスター秘密鍵MSK1およびα∈{0,1}を入力としてMSK1=⊥ならばvを出力し、そうでなければ前記KG1を実行して関数C[fα]に対する、前記擬似乱数rθでランダム化された秘密鍵sk←KG1(MSK1,C[fα];rθ)を得て秘密鍵skおよび前記インデックスjを出力する関数G[f,f,v,j,θ]を設定し、前記KG2を実行して、関数G[f3,⊥,⊥,j,θ]に対する秘密鍵sk←KG2(MSK2,G[f3,⊥,⊥,j,θ],j)を得る鍵生成アルゴリズムKG3を実行する鍵生成装置と、
    前記マスター秘密鍵MSK2およびメッセージm3を入力とし、前記Setup1を実行してマスター秘密鍵MSK1←Setup1(1λ)を得、前記Enc1を実行し、前記マスター秘密鍵MSK1でメッセージ(m3,⊥,0)を暗号化して暗号文CT1←Enc1(MSK1,(m3,⊥,0))を得、前記Enc2を実行し、前記マスター秘密鍵MSK2でメッセージ(MSK1,0)を暗号化して暗号文CT2←Enc2(MSK2,(MSK1,0))を得、暗号文CT3←(CT1,CT2)を得る暗号化アルゴリズムEnc3を実行する暗号化装置と、
    前記秘密鍵skおよび前記暗号文CT3=(CT1,CT2)を入力とし、前記Dec2を実行して前記秘密鍵skで前記暗号文CT2を復号することで前記秘密鍵sk←Dec2(sk,CT2)を得、前記Dec1を実行して前記秘密鍵skで前記暗号文CT1を復号することで復号値y←Dec1(sk,CT1)を得る復号アルゴリズムDec3を実行する復号装置と、
    を有する暗号システム。
  3. が正整数であり、第4関数型暗号がq4-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号であり、Setup4が、マスター秘密鍵MSK4を得る前記第4関数暗号のセットアップアルゴリズムであり、KG4が、関数f4、マスター秘密鍵MSK4、およびインデックスιを入力として前記関数f4に対する秘密鍵skf4を得る前記第4関数暗号の鍵生成アルゴリズムであり、Enc4が、前記マスター秘密鍵MSK4およびメッセージm4を入力とし、前記マスター秘密鍵MSK4で前記メッセージm4を暗号化して暗号文CT4を得る前記第4関数暗号の暗号化アルゴリズムであり、Dec4が、前記秘密鍵skf4および前記暗号文CT4を入力とし、前記秘密鍵skf4で前記暗号文CT4を復号する前記第4関数暗号の復号アルゴリズムであり、
    が正整数であり、第5関数型暗号がq5-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号であり、Setup5が、マスター秘密鍵MSK5を得る前記第5関数暗号のセットアップアルゴリズムであり、KG5が、関数f5、マスター秘密鍵MSK5、およびインデックスκを入力として前記関数f5に対する秘密鍵skf5を得る前記第5関数暗号の鍵生成アルゴリズムであり、Enc5が、前記マスター秘密鍵MSK5およびメッセージm5を入力とし、前記マスター秘密鍵MSK5で前記メッセージm5を暗号化して暗号文CT5を得る前記第5関数暗号の暗号化アルゴリズムであり、Dec5が、前記秘密鍵skf5および前記暗号文CT5を入力とし、前記秘密鍵skf5で前記暗号文CT5を復号する前記第5関数暗号の復号アルゴリズムであり、
    λが正整数であり、
    前記Setup4を実行して前記マスター秘密鍵MSK4←Setup4(1λ)を得、擬似ランダム関数PRFの鍵S←{0,1}λを選択し、マスター秘密鍵MSK6←(MSK4,S)を得るセットアップアルゴリズムSetup6を実行するセットアップ装置と、
    前記マスター秘密鍵MSK6=(MSK4,S)、関数f6、および前記インデックスι,κを入力とし、前記鍵Sおよび前記インデックスιに前記擬似ランダム関数PRFを適用して擬似乱数r5,ι←PRF(S,ι)を得、前記Setup5を実行して擬似乱数r5,ιでランダム化されたマスター秘密鍵MSK5ι←Setup5(1λ;r5,ι)を得、擬似ランダム関数の鍵Sι←{0,1}λを選択し、前記鍵Sιおよび前記マスター秘密鍵MSK5ιが設定された関数eι[Sι,MSK5ι]であって、任意の(m,m,r,CT)を入力として擬似乱数rι←PRF(Sι,r)を得る処理と、前記Enc5を実行して前記マスター秘密鍵MSK5ιでmを暗号化して前記擬似乱数rιでランダム化された暗号文CT5ι←Enc5(MSK5ι,m;rι)を出力する処理と、を行うものを設定し、前記マスター秘密鍵MSK4、前記関数eι[Sι,MSK5ι]、および前記インデックスιを入力として前記KG4を実行して秘密鍵skeι←KG4(MSK4,eι[Sι,MSK5ι],ι)を得、前記マスター秘密鍵MSK5ι、前記関数f6を、および前記インデックスκを入力として前記KG5を実行して前記関数f6に対応する秘密鍵skf6,ι←KG5(MSK5ι,f6,κ)を得、秘密鍵skf6←(skeι,skf6,ι)を得る鍵生成アルゴリズムKG6を実行する鍵生成装置と、
    前記マスター秘密鍵MSK6=(MSK4,S)およびメッセージm6を入力とし、r←{0,1}λを選択し、前記Enc4を実行して前記マスター秘密鍵MSK4で(m6,⊥,r,⊥)を暗号化して暗号文CT4←Enc4(MSK4,(m6,⊥,r,⊥))を得る暗号化アルゴリズムEnc6を実行する暗号化装置と、
    前記秘密鍵skf6=(skeι,skf6,ι)および前記暗号文CT4=Enc4(MSK4,(m6,⊥,r,⊥))を入力とし、前記Dec4を実行して前記秘密鍵skeιで前記暗号文CT4を復号して前記暗号文CT5ι←Dec4(skeι,CT4)を得、前記Dec5を実行して前記秘密鍵skf6,ιで前記暗号文CT5ιを復号して復号値y←Dec5(skf6,ι,CT5ι)を得る復号アルゴリズムDec6を実行する復号装置と、
    を有する暗号システム。
  4. 請求項の暗号システムであって、
    ・q=λである、暗号システム。
  5. λが正整数であり、η=loglogλであり、k∈[η]であり、第6関数型暗号SKFE6がλk-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号であり、Setup6が、マスター秘密鍵MSK6を得る前記第6関数暗号SKFE6のセットアップアルゴリズムであり、KG6が、関数f6、マスター秘密鍵MSK6、およびインデックスβを入力として前記関数f6に対する秘密鍵skf6,kを得る前記第6関数暗号SKFE6の鍵生成アルゴリズムであり、Enc6が、前記マスター秘密鍵MSK6およびメッセージm6を入力とし、前記マスター秘密鍵MSK6で前記メッセージm6を暗号化して暗号文CT6を得る前記第6関数暗号SKFE6の暗号化アルゴリズムであり、Dec6が、前記秘密鍵skf6,kおよび前記暗号文CT6を入力とし、前記秘密鍵skf6,kで前記暗号文CT6を復号する前記第6関数暗号SKFE6の復号アルゴリズムであり、
    各k∈[η]について前記Setup6を実行してマスター秘密鍵MSK6←Setup6(1λ)を得、マスター秘密鍵MSK7←(MSK6,…,MSK6η)を得るセットアップアルゴリズムSetup7を実行するセットアップ装置と、
    前記マスター秘密鍵MSK7=(MSK6,…,MSK6η)、関数f7、およびインデックス(k,ρ)を入力とし、前記KG6を実行して秘密鍵skf6,k←KG6(MSK6,f7,ρ)を得、前記関数f7に対する秘密鍵skf7←(k,skf6,k)を得る鍵生成アルゴリズムKG7を実行する鍵生成装置と、
    前記マスター秘密鍵MSK7=(MSK6,…,MSK6η)およびメッセージm7を入力とし、各k∈[η]について前記Enc6を実行して前記マスター秘密鍵MSK6で前記メッセージm7を暗号化した暗号文CT6←Enc6(MSK6,m7)を得、暗号文CT7←(CT6,…,CT6η)を得る暗号化アルゴリズムEnc7を実行する暗号化装置と、
    前記秘密鍵skf7=(k,skf6,k)および前記暗号文CT7=(CT6,…,CT6η)を入力とし、前記Dec6を実行して前記秘密鍵skf6,kで前記暗号文MSK6を復号して復号値y←Dec6(skf6,k,CT6)を得る復号アルゴリズムDec7を実行する復号装置と、
    を有する暗号システム。
  6. n,t,λが正整数であり、n≦λであり、w=λ1/tが正整数であり、Cf1がn個の論理ゲートi∈[n]からなる論理回路であり、前記論理回路Cf1は関数f1によって表される演算を行い、GarbleがGarbling方式で前記論理回路Cf1を秘匿化して前記n個の論理ゲートi∈[n]の鍵情報Cと秘匿化ラベル情報{Li,αi∈[n],α∈{0,1}とを得る秘匿化アルゴリズムであり、Evalが前記鍵情報Cと秘匿化ラベル情報{Li∈[n]を用い、前記Garbling方式に則り、前記関数f1によって表される演算を行う実行アルゴリズムであり、Eが共通鍵暗号方式に則った暗号化を行う暗号化アルゴリズムであり、Dが前記共通鍵暗号方式に則った復号を行う復号アルゴリズムであり、PRGが入力情報に対応する擬似乱数を出力する擬似乱数生成アルゴリズムであり、
    i∈[n]およびα∈{0,1}についてKi,α←{0,1}を選択し、R←{0,1}λを選択し、マスター秘密鍵MSK1←({Ki,αi∈[n],α∈{0,1},R)を得るセットアップアルゴリズムSetup1が実行されており、
    前記関数f1および前記マスター秘密鍵MSK1=({Ki,αi∈[n],α∈{0,1},R)が入力され、
    前記秘匿化アルゴリズムGarbleを実行して(C,{Li,αi∈[n],α∈{0,1})を得る秘匿化部と、
    前記Rのi∈[n]ビット目の値R[i]を要素Zi,αとする行列
    Figure 0006649289

    を得る行列生成部と、
    各i∈[n]およびα∈{0,1}についてKi,αに前記擬似乱数生成アルゴリズムPRGを適用して擬似乱数Ki,α を得る擬似乱数生成部と、
    前記暗号化アルゴリズムEを用い、前記擬似乱数Ki,α を共通鍵として前記要素Zi,αを暗号化した暗号文ci,α←E(Ki,α ,Zi,α)を得る暗号化部と、
    前記関数f1に対する秘密鍵skf1←(C,{ci,αi∈[n],α∈{0,1})を得る秘密鍵生成部と、
    を有する鍵生成装置。
  7. n,t,λが正整数であり、n≦λであり、w=λ1/tが正整数であり、Cf1がn個の論理ゲートi∈[n]からなる論理回路であり、前記論理回路Cf1は関数f1によって表される演算を行い、GarbleがGarbling方式で前記論理回路Cf1を秘匿化して前記n個の論理ゲートi∈[n]の鍵情報Cと秘匿化ラベル情報{Li,αi∈[n],α∈{0,1}とを得る秘匿化アルゴリズムであり、Evalが前記鍵情報Cと秘匿化ラベル情報{Li∈[n]を用い、前記Garbling方式に則り、前記関数f1によって表される演算を行う実行アルゴリズムであり、Eが共通鍵暗号方式に則った暗号化を行う暗号化アルゴリズムであり、Dが前記共通鍵暗号方式に則った復号を行う復号アルゴリズムであり、PRGが入力情報に対応する擬似乱数を出力する擬似乱数生成アルゴリズムであり、
    i∈[n]およびα∈{0,1}についてKi,α←{0,1}を選択し、R←{0,1}λを選択し、マスター秘密鍵MSK1←({Ki,αi∈[n],α∈{0,1},R)を得るセットアップアルゴリズムSetup1が実行されており、
    前記マスター秘密鍵MSK1=({Ki,αi∈[n],α∈{0,1},R)およびメッセージm∈{0,1}λが入力され、
    m1とRとの排他的論理和値x∈{0,1}λを得る排他的論理和部と、
    前記排他的論理和値xのi∈[n]ビット目の値をx[i]として暗号文CT1←{Ki,x[i]i∈[n]を得る暗号化部と、
    を有する暗号化装置。
  8. n,t,λが正整数であり、n≦λであり、w=λ1/tが正整数であり、Cf1がn個の論理ゲートi∈[n]からなる論理回路であり、前記論理回路Cf1は関数f1によって表される演算を行い、GarbleがGarbling方式で前記論理回路Cf1を秘匿化して前記n個の論理ゲートi∈[n]の鍵情報Cと秘匿化ラベル情報{Li,αi∈[n],α∈{0,1}とを得る秘匿化アルゴリズムであり、Evalが前記鍵情報Cと秘匿化ラベル情報{Li∈[n]を用い、前記Garbling方式に則り、前記関数f1によって表される演算を行う実行アルゴリズムであり、Eが共通鍵暗号方式に則った暗号化を行う暗号化アルゴリズムであり、Dが前記共通鍵暗号方式に則った復号を行う復号アルゴリズムであり、PRGが入力情報に対応する擬似乱数を出力する擬似乱数生成アルゴリズムであり、
    i∈[n]およびα∈{0,1}についてKi,α←{0,1}を選択し、R←{0,1}λを選択し、マスター秘密鍵MSK1←({Ki,αi∈[n],α∈{0,1},R)を得るセットアップアルゴリズムSetup1と、
    前記関数f1および前記マスター秘密鍵MSK1=({Ki,αi∈[n],α∈{0,1},R)を入力とし、前記秘匿化アルゴリズムGarbleを実行して(C,{Li,αi∈[n],α∈{0,1})を得、前記Rのi∈[n]ビット目の値R[i]を要素Zi,αとする行列
    Figure 0006649289

    を得、各i∈[n]およびα∈{0,1}についてKi,αに前記擬似乱数生成アルゴリズムPRGを適用して擬似乱数Ki,α を得、前記暗号化アルゴリズムEを用い、前記擬似乱数Ki,α を共通鍵として前記要素Zi,αを暗号化した暗号文ci,α←E(Ki,α ,Zi,α)を得、前記関数f1に対する秘密鍵skf1←(C,{ci,αi∈[n],α∈{0,1})を得る鍵生成アルゴリズムKG1と、
    前記マスター秘密鍵MSK1=({Ki,αi∈[n],α∈{0,1},R)およびメッセージm∈{0,1}λを入力とし、m1とRとの排他的論理和値x∈{0,1}λを得、前記排他的論理和値xのi∈[n]ビット目の値をx[i]として暗号文CT1←{Ki,x[i]i∈[n]を得る暗号化アルゴリズムEnc1と、が実行されており、
    前記秘密鍵skf1=(C,{ci,αi∈[n],α∈{0,1})および前記暗号文CT1={Ki∈[n]が入力され、
    各i∈[n]についてKに前記擬似乱数生成アルゴリズムPRGを適用して擬似乱数K を得る擬似乱数生成部と、
    前記復号アルゴリズムDを用い、前記擬似乱数K を共通鍵として前記暗号文ci,0を復号できるのであれば、前記擬似乱数K を共通鍵として前記暗号文ci,0を復号してL←D(K ,ci,0)を得、そうでなければ、前記擬似乱数K を共通鍵として前記暗号文ci,1を復号してL←D(K ,ci,1)を得る復号部と、
    前記鍵情報Cと前記秘匿化ラベル情報{Li∈[n]について前記実行アルゴリズムEvalを実行する実行部と、
    を有する復号装置。
  9. 第1関数暗号がunbounded-key 1-ciphertext 完全簡素性秘密鍵関数型暗号であり、Setup1が、マスター秘密鍵MSK1を得る前記第1関数暗号のセットアップアルゴリズムであり、KG1が、関数f1およびマスター秘密鍵MSK1を入力として前記関数f1に対する秘密鍵skf1を得る前記第1関数暗号の鍵生成アルゴリズムであり、Enc1が、前記マスター秘密鍵MSK1およびメッセージm1を入力とし、前記マスター秘密鍵MSK1で前記メッセージm1を暗号化して暗号文CT1を得る前記第1関数暗号の暗号化アルゴリズムであり、Dec1が、前記秘密鍵skf1および前記暗号文CT1を入力とし、前記秘密鍵skf1で前記暗号文CT1を復号する前記第1関数暗号の復号アルゴリズムであり、
    第2関数暗号がλ-key unbounded-ciphertext 秘密鍵関数型暗号であり、Setup2が、マスター秘密鍵MSK2を得る前記第2関数暗号のセットアップアルゴリズムであり、KG2が、関数f2、マスター秘密鍵MSK2、インデックスjを入力として前記関数f2に対する秘密鍵skf2を得る前記第2関数暗号の鍵生成アルゴリズムであり、Enc2が、前記マスター秘密鍵MSK2およびメッセージm2を入力とし、前記マスター秘密鍵MSK2で前記メッセージm2を暗号化して暗号文CT2を得る前記第2関数暗号の暗号化アルゴリズムであり、Dec2が、前記秘密鍵skf2および前記暗号文CT2を入力とし、前記秘密鍵skf2で前記暗号文CT2を復号する前記第2関数暗号の復号アルゴリズムであり、
    ⊥が無意味な情報を表し、λが正整数であり、PRGが入力情報に対応する擬似乱数を出力する擬似乱数生成アルゴリズムであり、
    前記Setup2を実行して前記マスター秘密鍵MSK2←Setup2(1λ)を得るセットアップアルゴリズムSetup3が実行されており、
    前記マスター秘密鍵MSK2、前記関数f3、および前記インデックスjが入力され、
    θ∈{0,1}λを選択する選択部と、
    θに前記擬似乱数生成アルゴリズムPRGを適用して擬似乱数rθ←PRG(θ)を得る擬似乱数生成部と、
    パラメータ(m,m,γ)(ただし、γ∈{0,1})を入力として関数f3の関数値f3(mγ)を出力する関数をC[f3]とし、設定されたパラメータ(f,f,v,j,θ)について前記マスター秘密鍵MSK1およびα∈{0,1}を入力としてMSK1=⊥ならばvを出力し、そうでなければ前記KG1を実行して関数C[fα]に対する、前記擬似乱数rθでランダム化された秘密鍵sk←KG1(MSK1,C[fα];rθ)を得て秘密鍵skおよび前記インデックスjを出力する関数G[f,f,v,j,θ]を設定する関数設定部と、
    前記KG2を実行して、関数G[f3,⊥,⊥,j,θ]に対する秘密鍵sk←KG2(MSK2,G[f3,⊥,⊥,j,θ],j)を得る秘密鍵生成部と、
    を有する鍵生成装置。
  10. 第1関数暗号がunbounded-key 1-ciphertext 完全簡素性秘密鍵関数型暗号であり、Setup1が、マスター秘密鍵MSK1を得る前記第1関数暗号のセットアップアルゴリズムであり、KG1が、関数f1およびマスター秘密鍵MSK1を入力として前記関数f1に対する秘密鍵skf1を得る前記第1関数暗号の鍵生成アルゴリズムであり、Enc1が、前記マスター秘密鍵MSK1およびメッセージm1を入力とし、前記マスター秘密鍵MSK1で前記メッセージm1を暗号化して暗号文CT1を得る前記第1関数暗号の暗号化アルゴリズムであり、Dec1が、前記秘密鍵skf1および前記暗号文CT1を入力とし、前記秘密鍵skf1で前記暗号文CT1を復号する前記第1関数暗号の復号アルゴリズムであり、
    第2関数暗号がλ-key unbounded-ciphertext 秘密鍵関数型暗号であり、Setup2が、マスター秘密鍵MSK2を得る前記第2関数暗号のセットアップアルゴリズムであり、KG2が、関数f2、マスター秘密鍵MSK2、インデックスjを入力として前記関数f2に対する秘密鍵skf2を得る前記第2関数暗号の鍵生成アルゴリズムであり、Enc2が、前記マスター秘密鍵MSK2およびメッセージm2を入力とし、前記マスター秘密鍵MSK2で前記メッセージm2を暗号化して暗号文CT2を得る前記第2関数暗号の暗号化アルゴリズムであり、Dec2が、前記秘密鍵skf2および前記暗号文CT2を入力とし、前記秘密鍵skf2で前記暗号文CT2を復号する前記第2関数暗号の復号アルゴリズムであり、
    ⊥が無意味な情報を表し、λが正整数であり、PRGが入力情報に対応する擬似乱数を出力する擬似乱数生成アルゴリズムであり、
    前記Setup2を実行して前記マスター秘密鍵MSK2←Setup2(1λ)を得るセットアップアルゴリズムSetup3が実行されており、
    前記マスター秘密鍵MSK2およびメッセージm3が入力され、
    前記Setup1を実行してマスター秘密鍵MSK1←Setup1(1λ)を得るセットアップ部と、
    前記Enc1を実行し、前記マスター秘密鍵MSK1でメッセージ(m3,⊥,0)を暗号化して暗号文CT1←Enc1(MSK1,(m3,⊥,0))を得、前記Enc2を実行し、前記マスター秘密鍵MSK2でメッセージ(MSK1,0)を暗号化して暗号文CT2←Enc2(MSK2,(MSK1,0))を得、暗号文CT3←(CT1,CT2)を得る暗号化部と、
    を有する暗号化装置。
  11. 第1関数暗号がunbounded-key 1-ciphertext 完全簡素性秘密鍵関数型暗号であり、Setup1が、マスター秘密鍵MSK1を得る前記第1関数暗号のセットアップアルゴリズムであり、KG1が、関数f1およびマスター秘密鍵MSK1を入力として前記関数f1に対する秘密鍵skf1を得る前記第1関数暗号の鍵生成アルゴリズムであり、Enc1が、前記マスター秘密鍵MSK1およびメッセージm1を入力とし、前記マスター秘密鍵MSK1で前記メッセージm1を暗号化して暗号文CT1を得る前記第1関数暗号の暗号化アルゴリズムであり、Dec1が、前記秘密鍵skf1および前記暗号文CT1を入力とし、前記秘密鍵skf1で前記暗号文CT1を復号する前記第1関数暗号の復号アルゴリズムであり、
    第2関数暗号がλ-key unbounded-ciphertext 秘密鍵関数型暗号であり、Setup2が、マスター秘密鍵MSK2を得る前記第2関数暗号のセットアップアルゴリズムであり、KG2が、関数f2、マスター秘密鍵MSK2、インデックスjを入力として前記関数f2に対する秘密鍵skf2を得る前記第2関数暗号の鍵生成アルゴリズムであり、Enc2が、前記マスター秘密鍵MSK2およびメッセージm2を入力とし、前記マスター秘密鍵MSK2で前記メッセージm2を暗号化して暗号文CT2を得る前記第2関数暗号の暗号化アルゴリズムであり、Dec2が、前記秘密鍵skf2および前記暗号文CT2を入力とし、前記秘密鍵skf2で前記暗号文CT2を復号する前記第2関数暗号の復号アルゴリズムであり、
    ⊥が無意味な情報を表し、λが正整数であり、PRGが入力情報に対応する擬似乱数を出力する擬似乱数生成アルゴリズムであり、
    前記Setup2を実行して前記マスター秘密鍵MSK2←Setup2(1λ)を得るセットアップアルゴリズムSetup3と、
    前記マスター秘密鍵MSK2、前記関数f3、および前記インデックスjを入力とし、θ∈{0,1}λを選択し、θに前記擬似乱数生成アルゴリズムPRGを適用して擬似乱数rθ←PRG(θ)を得、パラメータ(m,m,γ)(ただし、γ∈{0,1})を入力として関数f3の関数値f3(mγ)を出力する関数をC[f3]とし、設定されたパラメータ(f,f,v,j,θ)について前記マスター秘密鍵MSK1およびα∈{0,1}を入力としてMSK1=⊥ならばvを出力し、そうでなければ前記KG1を実行して関数C[fα]に対する、前記擬似乱数rθでランダム化された秘密鍵sk←KG1(MSK1,C[fα];rθ)を得て秘密鍵skおよび前記インデックスjを出力する関数G[f,f,v,j,θ]を設定し、前記KG2を実行して、関数G[f3,⊥,⊥,j,θ]に対する秘密鍵sk←KG2(MSK2,G[f3,⊥,⊥,j,θ],j)を得る鍵生成アルゴリズムKG3と、
    前記マスター秘密鍵MSK2およびメッセージm3を入力とし、前記Setup1を実行してマスター秘密鍵MSK1←Setup1(1λ)を得、前記Enc1を実行し、前記マスター秘密鍵MSK1でメッセージ(m3,⊥,0)を暗号化して暗号文CT1←Enc1(MSK1,(m3,⊥,0))を得、前記Enc2を実行し、前記マスター秘密鍵MSK2でメッセージ(MSK1,0)を暗号化して暗号文CT2←Enc2(MSK2,(MSK1,0))を得、暗号文CT3←(CT1,CT2)を得る暗号化アルゴリズムEnc3と、が実行されており、
    前記秘密鍵skおよび前記暗号文CT3=(CT1,CT2)が入力され、
    前記Dec2を実行して前記秘密鍵skで前記暗号文CT2を復号することで前記秘密鍵sk←Dec2(sk,CT2)を得る秘密鍵復号部と、
    前記Dec1を実行して前記秘密鍵skで前記暗号文CT1を復号することで復号値y←Dec1(sk,CT1)を得る復号部と、
    を有する復号装置。
  12. が正整数であり、第4関数型暗号がq4-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号であり、Setup4が、マスター秘密鍵MSK4を得る前記第4関数暗号のセットアップアルゴリズムであり、KG4が、関数f4、マスター秘密鍵MSK4、およびインデックスιを入力として前記関数f4に対する秘密鍵skf4を得る前記第4関数暗号の鍵生成アルゴリズムであり、Enc4が、前記マスター秘密鍵MSK4およびメッセージm4を入力とし、前記マスター秘密鍵MSK4で前記メッセージm4を暗号化して暗号文CT4を得る前記第4関数暗号の暗号化アルゴリズムであり、Dec4が、前記秘密鍵skf4および前記暗号文CT4を入力とし、前記秘密鍵skf4で前記暗号文CT4を復号する前記第4関数暗号の復号アルゴリズムであり、
    が正整数であり、第5関数型暗号がq5-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号であり、Setup5が、マスター秘密鍵MSK5を得る前記第5関数暗号のセットアップアルゴリズムであり、KG5が、関数f5、マスター秘密鍵MSK5、およびインデックスκを入力として前記関数f5に対する秘密鍵skf5を得る前記第5関数暗号の鍵生成アルゴリズムであり、Enc5が、前記マスター秘密鍵MSK5およびメッセージm5を入力とし、前記マスター秘密鍵MSK5で前記メッセージm5を暗号化して暗号文CT5を得る前記第5関数暗号の暗号化アルゴリズムであり、Dec5が、前記秘密鍵skf5および前記暗号文CT5を入力とし、前記秘密鍵skf5で前記暗号文CT5を復号する前記第5関数暗号の復号アルゴリズムであり、
    λが正整数であり、
    前記Setup4を実行して前記マスター秘密鍵MSK4←Setup4(1λ)を得、擬似ランダム関数PRFの鍵S←{0,1}λを選択し、マスター秘密鍵MSK6←(MSK4,S)を得るセットアップアルゴリズムSetup6が実行されており、
    前記マスター秘密鍵MSK6=(MSK4,S)、関数f6、および前記インデックスι,κが入力され、
    前記鍵Sおよび前記インデックスιに前記擬似ランダム関数PRFを適用して擬似乱数r5,ι←PRF(S,ι)を得る擬似乱数生成部と、
    前記Setup5を実行して擬似乱数r5,ιでランダム化されたマスター秘密鍵MSK5ι←Setup5(1λ;r5,ι)を得るセットアップ部と、
    擬似ランダム関数の鍵Sι←{0,1}λを選択する鍵選択部と、
    前記鍵Sιおよび前記マスター秘密鍵MSK5ιが設定された関数eι[Sι,MSK5ι]であって、任意の(m,m,r,CT)を入力として擬似乱数rι←PRF(Sι,r)を得る処理と、前記Enc5を実行して前記マスター秘密鍵MSK5ιでmを暗号化して前記擬似乱数rιでランダム化された暗号文CT5ι←Enc5(MSK5ι,m;rι)を出力する処理と、を行うものを設定する関数設定部と、
    前記マスター秘密鍵MSK4、前記関数eι[Sι,MSK5ι]、および前記インデックスιを入力として前記KG4を実行して秘密鍵skeι←KG4(MSK4,eι[Sι,MSK5ι],ι)を得、前記マスター秘密鍵MSK5ι、前記関数f6を、および前記インデックスκを入力として前記KG5を実行して前記関数f6に対応する秘密鍵skf6,ι←KG5(MSK5ι,f6,κ)を得、秘密鍵skf6←(skeι,skf6,ι)を得る秘密鍵生成部と、
    を有する鍵生成装置。
  13. が正整数であり、第4関数型暗号がq4-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号であり、Setup4が、マスター秘密鍵MSK4を得る前記第4関数暗号のセットアップアルゴリズムであり、KG4が、関数f4、マスター秘密鍵MSK4、およびインデックスιを入力として前記関数f4に対する秘密鍵skf4を得る前記第4関数暗号の鍵生成アルゴリズムであり、Enc4が、前記マスター秘密鍵MSK4およびメッセージm4を入力とし、前記マスター秘密鍵MSK4で前記メッセージm4を暗号化して暗号文CT4を得る前記第4関数暗号の暗号化アルゴリズムであり、Dec4が、前記秘密鍵skf4および前記暗号文CT4を入力とし、前記秘密鍵skf4で前記暗号文CT4を復号する前記第4関数暗号の復号アルゴリズムであり、
    が正整数であり、第5関数型暗号がq5-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号であり、Setup5が、マスター秘密鍵MSK5を得る前記第5関数暗号のセットアップアルゴリズムであり、KG5が、関数f5、マスター秘密鍵MSK5、およびインデックスκを入力として前記関数f5に対する秘密鍵skf5を得る前記第5関数暗号の鍵生成アルゴリズムであり、Enc5が、前記マスター秘密鍵MSK5およびメッセージm5を入力とし、前記マスター秘密鍵MSK5で前記メッセージm5を暗号化して暗号文CT5を得る前記第5関数暗号の暗号化アルゴリズムであり、Dec5が、前記秘密鍵skf5および前記暗号文CT5を入力とし、前記秘密鍵skf5で前記暗号文CT5を復号する前記第5関数暗号の復号アルゴリズムであり、
    λが正整数であり、
    前記Setup4を実行して前記マスター秘密鍵MSK4←Setup4(1λ)を得、擬似ランダム関数PRFの鍵S←{0,1}λを選択し、マスター秘密鍵MSK6←(MSK4,S)を得るセットアップアルゴリズムSetup6と、
    前記マスター秘密鍵MSK6=(MSK4,S)、関数f6、および前記インデックスι,κを入力とし、前記鍵Sおよび前記インデックスιに前記擬似ランダム関数PRFを適用して擬似乱数r5,ι←PRF(S,ι)を得、前記Setup5を実行して擬似乱数r5,ιでランダム化されたマスター秘密鍵MSK5ι←Setup5(1λ;r5,ι)を得、擬似ランダム関数の鍵Sι←{0,1}λを選択し、前記鍵Sιおよび前記マスター秘密鍵MSK5ιが設定された関数eι[Sι,MSK5ι]であって、任意の(m,m,r,CT)を入力として擬似乱数rι←PRF(Sι,r)を得る処理と、前記Enc5を実行して前記マスター秘密鍵MSK5ιでmを暗号化して前記擬似乱数rιでランダム化された暗号文CT5ι←Enc5(MSK5ι,m;rι)を出力する処理と、を行うものを設定し、前記マスター秘密鍵MSK4、前記関数eι[Sι,MSK5ι]、および前記インデックスιを入力として前記KG4を実行して秘密鍵skeι←KG4(MSK4,eι[Sι,MSK5ι],ι)を得、前記マスター秘密鍵MSK5ι、前記関数f6を、および前記インデックスκを入力として前記KG5を実行して前記関数f6に対応する秘密鍵skf6,ι←KG5(MSK5ι,f6,κ)を得、秘密鍵skf6←(skeι,skf6,ι)を得る鍵生成アルゴリズムKG6と、
    前記マスター秘密鍵MSK6=(MSK4,S)およびメッセージm6を入力とし、r←{0,1}λを選択し、前記マスター秘密鍵MSK4および(m6,⊥,r,⊥)を入力として前記Enc4を実行して暗号文CT4←Enc4(MSK4,(m6,⊥,r,⊥))を得る暗号化アルゴリズムEnc6と、が実行されており、
    前記秘密鍵skf6=(skeι,skf6,ι)および前記暗号文CT4=Enc4(MSK4,(m6,⊥,r,⊥))が入力され、
    前記Dec4を実行して前記秘密鍵skeιで前記暗号文CT4を復号して前記暗号文CT5ι←Dec4(skeι,CT4)を得る第1復号部と、
    前記Dec5を実行して前記秘密鍵skf6,ιで前記暗号文CT5ιを復号して復号値y←Dec5(skf6,ι,CT5ι)を得る第2復号部と、
    を有する復号装置。
  14. 請求項12何れかの鍵生成装置の機能をコンピュータに実行させるためのプログラム。
  15. 請求項7または10の暗号化装置の機能をコンピュータに実行させるためのプログラム。
  16. 請求項8,11,13の何れかの復号装置の機能をコンピュータに実行させるためのプログラム。
JP2017001752A 2017-01-10 2017-01-10 暗号システム、鍵生成装置、暗号化装置、復号装置、およびプログラム Active JP6649289B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017001752A JP6649289B2 (ja) 2017-01-10 2017-01-10 暗号システム、鍵生成装置、暗号化装置、復号装置、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017001752A JP6649289B2 (ja) 2017-01-10 2017-01-10 暗号システム、鍵生成装置、暗号化装置、復号装置、およびプログラム

Publications (2)

Publication Number Publication Date
JP2018112613A JP2018112613A (ja) 2018-07-19
JP6649289B2 true JP6649289B2 (ja) 2020-02-19

Family

ID=62911070

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017001752A Active JP6649289B2 (ja) 2017-01-10 2017-01-10 暗号システム、鍵生成装置、暗号化装置、復号装置、およびプログラム

Country Status (1)

Country Link
JP (1) JP6649289B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6759168B2 (ja) * 2017-09-11 2020-09-23 日本電信電話株式会社 難読化回路生成装置、難読化回路計算装置、難読化回路生成方法、難読化回路計算方法、プログラム
JP7024666B2 (ja) * 2018-08-28 2022-02-24 日本電信電話株式会社 Idベースハッシュ証明系構成装置、idベース暗号装置及びプログラム
CN117910024B (zh) * 2024-03-19 2024-05-24 深圳市纽创信安科技开发有限公司 密钥生成方法及装置、电子设备和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5337076B2 (ja) * 2010-02-24 2013-11-06 日本電信電話株式会社 秘密計算システム、秘密計算方法、不正使用防止方法
JP2012256008A (ja) * 2011-05-19 2012-12-27 Nippon Telegr & Teleph Corp <Ntt> 評価対象情報自己評価システム、評価対象情報自己評価方法、装置、プログラム
JP2015099961A (ja) * 2013-11-18 2015-05-28 三菱電機株式会社 情報配信システム、サーバ装置、情報生成装置、端末装置、情報配信方法及びプログラム

Also Published As

Publication number Publication date
JP2018112613A (ja) 2018-07-19

Similar Documents

Publication Publication Date Title
Gentry et al. Graph-induced multilinear maps from lattices
CN111510281B (zh) 一种同态加密方法及装置
JP2019531673A (ja) データ処理方法および装置
KR101600016B1 (ko) 동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치
JP4979068B2 (ja) 秘匿関数計算方法及び装置、並びにプログラム
Oliveira et al. Trusted storage over untrusted networks
KR101727312B1 (ko) 순서 보존 암호화 및 복호화 장치와 그 방법
CN114244507B (zh) 基于单路传输的量子直接通信方法、装置、设备和系统
Sokouti et al. Medical image encryption: an application for improved padding based GGH encryption algorithm
JP6649289B2 (ja) 暗号システム、鍵生成装置、暗号化装置、復号装置、およびプログラム
Wang et al. A faster fully homomorphic encryption scheme in big data
US11271743B2 (en) Plaintext equivalence proof techniques in communication systems
US9391770B2 (en) Method of cryption
JP5730804B2 (ja) 暗号化装置、再暗号化鍵難読化装置、再暗号化装置、復号装置、および再暗号化システム
Rastogi et al. Linear algorithm for imbricate cryptography using pseudo random number generator
Wang et al. Garbled computation in cloud
JP7119605B2 (ja) 暗号文変換システム、暗号文変換方法、及びプログラム
CN114257402B (zh) 加密算法确定方法、装置、计算机设备和存储介质
CN116436600A (zh) 一种信源联合编码加密方法、装置、设备及存储介质
JP6649288B2 (ja) 暗号システム、セットアップ装置、鍵生成装置、暗号化装置、復号装置、およびプログラム
Tayal et al. Analysis of various cryptography techniques: a survey
JP5489115B2 (ja) 原本性保証装置、原本性保証プログラム、及びこのプログラムを記録する記録媒体
Hu et al. A quantum encryption scheme featuring confusion, diffusion, and mode of operation
Krzywiecki et al. Coalition resistant anonymous broadcast encryption scheme based on PUF
JP6759168B2 (ja) 難読化回路生成装置、難読化回路計算装置、難読化回路生成方法、難読化回路計算方法、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191225

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200116

R150 Certificate of patent or registration of utility model

Ref document number: 6649289

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150