JP6649289B2 - 暗号システム、鍵生成装置、暗号化装置、復号装置、およびプログラム - Google Patents
暗号システム、鍵生成装置、暗号化装置、復号装置、およびプログラム Download PDFInfo
- 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
Links
Images
Description
[前提]
まず実施形態の前提事項を説明する。
「難読化(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,サイズが等しい任意のプログラム対(回路対)C0,C1∈Cλで任意の入力xについてC0(x)=C1(x)が成立するものに対し、以下を満たすことを意味する。
Pr[D’(iO(C0))=1]-Pr[D’(iO(C1))=1]≦μ(λ)
すなわち、iOが識別不可能性を満たすとは、iO(C0)の判別結果D’(iO(C0))(iO(C0)がC0を難読化して得られたものなのかC1を難読化して得られたものなのかの判別結果)が1となる(例えば、iO(C0)がC1を難読化して得られたものであると判別される)確率と、iO(C1)の判別結果D’(iO(C1))が1となる(例えば、iO(C1)がC1を難読化して得られたものであると判別される)確率との違いが無視できることを意味する。
セットアップアルゴリズム(Setup):鍵の長さ(ビット長)を表す任意のセキュリティパラメータλ∈Nを入力とし、マスター秘密鍵MSKを生成する。
MSK ←Setup(1λ)
鍵生成アルゴリズム(KG):マスター秘密鍵MSKおよび関数fを入力とし、関数fに対する秘密鍵skfを生成する。関数fは任意の関数でよく、例えば、f(m)=mまたはf(m)=⊥を満たす関数である。ただし、⊥はエラーを表す。
skf ←KG(MSK,f)
暗号化アルゴリズム(Enc):マスター秘密鍵MSKとメッセージmを入力とし、暗号文cを生成する。
c ←Enc(MSK, m)
復号アルゴリズム(Dec):関数fに対する秘密鍵skfと暗号文cを入力とし、メッセージmの関数値f(m)を生成する。
f(m) ←Dec(skf,c)
「bounded-key方式」とは、鍵生成アルゴリズムによる鍵の発行回数が事前(セットアップアルゴリズムの実行時)に定められた回数(複数回数)以下の場合には安全性が保たれるが、鍵の発行回数が事前に定められた回数を超えた場合には安全性が保たれるとは限らない暗号方式をいう。特に、鍵生成アルゴリズムによる鍵の発行回数が事前に定められたq(ただし、q≧2)以下の場合安全性が保たれるが、鍵の発行回数がqを超えた場合には安全性が保たれるとは限らない暗号方式を「q-Key方式」という。
「unbounded-key方式」とは、鍵生成アルゴリズムによる鍵の発行回数にかかわらず、安全性が保たれる暗号方式をいう。
「unbounded-ciphertext方式」とは、暗号化アルゴリズムによる暗号文の生成回数にかかわらず、安全性が保たれる暗号方式をいう。
|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 完全簡素性秘密鍵関数型暗号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}i∈[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}L→{0,1}2L}L∈Nを表す(参考文献4)。
Setup1(1λ)は、セキュリティパラメータλを入力とし、i∈[n]およびα∈{0,1}についてKi,α←{0,1}wを選択し、R←{0,1}λを選択し、マスター秘密鍵MSK1←({Ki,α}i∈[n],α∈{0,1},R)を得て出力する。ただし、「α1←α2」は、α2をα1として設定することを意味する。
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行列
次に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)は、マスター秘密鍵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}λを得る。
Dec1(skf1,CT1)は、秘密鍵skf1=(C〜,{ci,α}i∈[n],α∈{0,1})および暗号文CT1={Ki}i∈[n]を入力とし、以下の処理を行う。
Dec1(skf1,CT1)は、各i∈[n]についてKiに擬似乱数生成アルゴリズムPRGを適用して擬似乱数Ki 〜を得る。ただし、擬似乱数生成アルゴリズムPRGの適用の仕方は前述したKG1(MSK1,f1)のものと同じである。例えば、例えばDec1(skf1,CT1)は、νiの初期値をKiとした後、νiのビット長がλビットに達するまでνi←PRG(νi)の処理を繰り返し、λビットに達したνiを擬似乱数Ki 〜とする。
Dec1(skf1,CT1)は、復号アルゴリズムDを用い、擬似乱数Ki 〜を共通鍵として暗号文ci,0を復号できるのであれば(D(Ki 〜,ci,0)≠⊥)、擬似乱数Ki 〜を共通鍵として暗号文ci,0を復号してLi←D(Ki 〜,ci,0)を得る。そうでなければ、擬似乱数Ki 〜を共通鍵として暗号文ci,1を復号してLi←D(Ki 〜,ci,1)を得る。Dec1(skf1,CT1)は、この処理を各i∈[n]について行う。
Dec1(skf1,CT1)は、鍵情報C〜と秘匿化ラベル情報{Li}i∈[n]について実行アルゴリズムEvalを実行し、復号値y←Eval(C〜,{Li}i∈[n])を得て出力する。
上述した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)を構成する。
第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は、セキュリティパラメータλを入力とし、Setup2を実行してマスター秘密鍵MSK2←Setup2(1λ)を得て出力する。
KG3(MSK2,f3,j)は、マスター秘密鍵MSK2、関数f3、およびインデックスjを入力とし、以下の処理を行う。
KG3(MSK2,f3,j)は、θ∈{0,1}λを選択し、θに擬似乱数生成アルゴリズムPRGを適用して擬似乱数rθ←PRG(θ)を得る。
KG3(MSK2,f3,j)は、パラメータ(f0,f1,v,j,θ)が書き込まれている(設定されている)関数G[f0,f1,v,j,θ]を設定する。関数G[f0,f1,v,j,θ]は、マスター秘密鍵MSK1およびα∈{0,1}を入力としてMSK1=⊥ならばvを出力し、そうでなければKG1を実行して関数C[fα]に対する、擬似乱数rθでランダム化された秘密鍵skC←KG1(MSK1,C[fα];rθ)を得て秘密鍵skCおよびインデックスjを出力する。ただし、C[f3]は関数f3が書き込まれた(設定された)関数であり、パラメータ(m0,m1,γ)(ただし、γ∈{0,1})を入力として関数f3の関数値f3(mγ)を出力する。
KG3(MSK2,f3,j)は、KG2を実行して、関数G[f3,⊥,⊥,j,θ]に対する秘密鍵(個別秘密鍵)skG←KG2(MSK2,G[f3,⊥,⊥,j,θ],j)を得て出力する。秘密鍵skGは関数f3に対応する秘密鍵skf3である。
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(skG,CT3)は、秘密鍵skf3=skGおよび暗号文CT3=(CT1,CT2)を入力とし、以下の処理を実行する。
Dec3(skG,CT3)は、Dec2を実行して秘密鍵skGで暗号文CT2を復号することで秘密鍵skC←Dec2(skG,CT2)を得、Dec1を実行して秘密鍵skCで暗号文CT1を復号することで復号値y←Dec1(skC,CT1)を得て出力する。
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)を構成(積構成)する方法を説明する。
q4は正整数であり、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の復号アルゴリズムである。
q5は正整数であり、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λ)は、セキュリティパラメータλを入力とし、Setup4を実行してマスター秘密鍵MSK4←Setup4(1λ)を得、擬似ランダム関数PRFの鍵S←{0,1}λを選択し、マスター秘密鍵MSK6←(MSK4,S)を得て出力する。
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)は、マスター秘密鍵MSK6=(MSK4,S)およびメッセージm6を入力とし、r←{0,1}λをランダムに選択し、Enc4を実行してマスター秘密鍵MSK4で(m6,⊥,r,⊥)を暗号化して暗号文CT4←Enc4(MSK4,(m6,⊥,r,⊥))を得て出力する。
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ι)を得て出力する。
上記においてq4=q5=λとすると、SKFE6はλ2-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号となる。得られたq4=λ2のSKFE6をSKFE4として用い、q5=λのSKFE5を用いて同様に構成すると新たなSKFE6はλ3-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号となる。同様な積構成を繰り返し、q4=λt−1のSKFE6をSKFE4として用い、q5=λのSKFE5を用いることで、自然数tについてλt-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号を構成できる。すなわち、q4・q5=λtを満たすq4およびq5について上記の積構成を適用すると、λt-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)等参照)。
また、quasi exponentailly-secure 一方向性関数を利用したPRGを用いない場合であっても、以下のようにすればunbounded-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号SKFE7=(Setup7,KG7,Enc7,Dec7)を構成できる。
ただし、λが正整数のセキュリティパラメータであり、η=loglogλであり(例えば、ηは正整数)、k∈[η]である。なお、「log」の底は2である。第6関数型暗号SKFE6k=(Setup6k,KG6k,Enc6k,Dec6k)はλk-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号である。これはq4q5=λkの場合のSKFE6=(Setup6,KG6,Enc6,Dec6)である。SKFE6kのメッセージ空間、関数空間、インデックス空間をそれぞれM、F、および[λk]とする。Setup6kは、マスター秘密鍵MSK6kを得るSKFE6kのセットアップアルゴリズムである。KG6kは、関数f6k、マスター秘密鍵MSK6k、およびインデックスβkを入力として関数f6kに対する秘密鍵skf6,kを得る第6関数暗号SKFE6kの鍵生成アルゴリズムである。Enc6kは、マスター秘密鍵MSK6kおよびメッセージm6を入力とし、マスター秘密鍵MSK6kでメッセージm6を暗号化して暗号文CT6kを得るSKFE6kの暗号化アルゴリズムである。Dec6kは、秘密鍵skf6,kおよび暗号文CT6kを入力とし、秘密鍵skf6,kで暗号文CT6をk復号するSKFE6kの復号アルゴリズムである。
これを用いて構成されるSKFE7=(Setup7,KG7,Enc7,Dec7)のメッセージ空間、関数空間、インデックス空間は、それぞれM、F、および∪k∈[η]{(k,ρ)|ρ∈[λk]}である。
Setup7(1λ)は、各k∈[η]についてSetup6kを実行してマスター秘密鍵MSK6k←Setup6k(1λ)を得、これらを用いてマスター秘密鍵MSK7←(MSK61,…,MSK6η)を得て出力する。
KG7(MSK7,f7,(k,ρ))は、マスター秘密鍵MSK7=(MSK61,…,MSK6η)、関数f7、およびインデックス(k,ρ)を入力とし、KG6kを実行して秘密鍵skf6,k←KG6k(MSK6k,f7,ρ)を得、関数f7に対する秘密鍵skf7←(k,skf6,k)を得て出力する。
Enc7(MSK7,m7)は、マスター秘密鍵MSK7=(MSK61,…,MSK6η)およびメッセージm7を入力とし、各k∈[η]についてEnc6kを実行して、マスター秘密鍵MSK6kでメッセージm7を暗号化した暗号文CT6k←Enc6k(MSK6k,m7)を得る。Enc7(MSK7,m7)は、これらを用いて暗号文CT7←(CT61,…,CT6η)を得て出力する。
Dec7(skf7,CT7)は、秘密鍵skf7=(k,skf6,k)および暗号文CT7=(MSK61,…,MSK6η)を入力とし、Dec6kを実行して秘密鍵skf6,kで暗号文MSK6kを復号して復号値y←Dec6k(skf6,k,MSK6k)を得て出力する。
またλ-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実施形態を説明する。
本形態は、前述した<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を有する。
次に本形態の処理を説明する。
≪セットアップアルゴリズムSetup1(1λ)の実行処理≫
セットアップ装置11のマスター鍵生成部113は、セキュリティパラメータλを入力とし、各i∈[n]およびα∈{0,1}についてKi,α←{0,1}wを選択し、R←{0,1}λを選択し、マスター秘密鍵MSK1←({Ki,α}i∈[n],α∈{0,1},R)を得て出力する。Ki,αおよびRの選択は、例えば、ランダムに行われる。マスター秘密鍵MSK1=({Ki,α}i∈[n],α∈{0,1},R)はメモリ111に格納される。通信部112は、マスター秘密鍵MSK1を鍵生成装置12および暗号化装置13に送信する。
鍵生成装置12の通信部122には、復号装置14から送られた関数f1およびセットアップ装置11から送られたマスター秘密鍵MSK1=({Ki,α}i∈[n],α∈{0,1},R)が入力される。関数f1およびマスター秘密鍵MSK1はメモリ121に格納される。
暗号化装置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に格納する。
復号装置14の通信部142には、秘密鍵skf1=(C〜,{ci,α}i∈[n],α∈{0,1})および暗号文CT1={Ki}i∈[n]={Ki,x[i]}i∈[n]が入力される。秘密鍵skf1および暗号文CT1はメモリ141に格納される。
次に、図面を用いて本発明の第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を有する。
次に本形態の処理を説明する。
≪セットアップアルゴリズムSetup3(1λ)の実行処理≫
セットアップ装置21のマスター鍵生成部213は、セキュリティパラメータλを入力とし、Setup2を実行してマスター秘密鍵MSK2←Setup2(1λ)を得てメモリ111に格納する。通信部112は、MSK2を鍵生成装置22および暗号化装置23に送信する。
鍵生成装置22の通信部122には、復号装置24から送られた関数f3およびインデックスj、ならびにセットアップ装置21から送られたマスター秘密鍵MSK2が入力される。関数f3、インデックスj、およびマスター秘密鍵MSK2は、メモリ121に格納される。
暗号化装置23の通信部132にはマスター秘密鍵MSK2が入力される。セットアップ部233は、セキュリティパラメータλを入力とし、Setup1を実行してマスター秘密鍵MSK1←Setup1(1λ)を得てメモリ131に格納する。
復号装置24の通信部142には、秘密鍵skf3=skGおよび暗号文CT3=(CT1,CT2)が入力される。
次に、図面を用いて本発明の第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を有する。
次に本形態の処理を説明する。
≪セットアップアルゴリズムSetup6(1λ)の実行処理≫
セットアップ装置31のマスター鍵生成部313は、セキュリティパラメータλを入力とし、Setup4を実行してマスター秘密鍵MSK4←Setup4(1λ)を得てメモリ111に格納する。
鍵生成装置32の通信部122には、セットアップ装置31から送信されたマスター秘密鍵MSK6=(MSK4,S)、ならびに復号装置34から送信された関数f6およびインデックス(ι,κ)が入力される。
暗号化装置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に送信する。
復号装置34の通信部142には、秘密鍵skf6および暗号文CT4が入力される。復号部343は、秘密鍵skf6=(skeι,skf6,ι)および暗号文CT4=Enc4(MSK4,(m6,⊥,r,⊥))を入力とし、秘密鍵skf6から秘密鍵skeιを取り出し、Dec4を実行して秘密鍵skeιで暗号文CT4を復号して暗号文CT5ι←Dec4(skeι,CT4)を得てメモリ121に格納する。
前述のように、第3実施形態の積構成を繰り返し、最終的にq4=λt−1のSKFE6をSKFE4として用い、q5=λのSKFE5を用いることで、自然数tについてλt-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号SKFE6’=(Setup6’,KG6’,Enc6’,Dec6’)を構成できる。また、第1実施形態で用いられている擬似乱数生成アルゴリズムPRGが、quasi exponentailly-secure 一方向性関数を利用して構成されている場合、t=loglogλとすることができ、この場合には、unbounded-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号となる。
次に、図面を用いて本発明の第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を有する。
次に本形態の処理を説明する。
≪セットアップアルゴリズムSetup7(1λ)の実行処理≫
セットアップ装置41のマスター鍵生成部413は、セキュリティパラメータλを入力とし、各k∈[η]についてSetup6kを実行してマスター秘密鍵MSK6k←Setup6k(1λ)を得てメモリ111に格納する。マスター鍵生成部414は、これらMSK6kを用いてマスター秘密鍵MSK7←(MSK61,…,MSK6η)を得てメモリ111に格納する。通信部112は、マスター秘密鍵MSK7=(MSK61,…,MSK6η)を、鍵生成装置42および暗号化装置43に送信する。
鍵生成装置42の通信部122には、マスター秘密鍵MSK7=(MSK61,…,MSK6η)、ならびに復号装置44から送信された関数f7およびインデックス(k,ρ)が入力される。
暗号化装置43の通信部132には、マスター秘密鍵MSK7=(MSK61,…,MSK6η)が入力される。暗号化部433は、マスター秘密鍵MSK7=(MSK61,…,MSK6η)およびメッセージm7を入力とし、各k∈[η]についてEnc6kを実行して、マスター秘密鍵MSK6kでメッセージm7を暗号化した暗号文CT6k←Enc6k(MSK6k,m7)を得てメモリ131に格納する。暗号化部434は、これらの暗号文CT6k=Enc6k(MSK6k,m7)を用いて暗号文CT7←(CT61,…,CT6η)を得てメモリ131に格納する。通信部132は、暗号文CT7=(CT61,…,CT6η)を復号装置44に送信する。
復号装置44の通信部142には、秘密鍵skf7=(k,skf6,k)および暗号文CT7=(CT61,…,CT6η)が入力される。復号部443は、秘密鍵skf7=(k,skf6,k)および暗号文CT7=(CT61,…,CT6η)を入力とし、Dec6kを実行し、秘密鍵skf7から取り出した秘密鍵skf6,kで、秘密鍵skf7から取り出したkに対応するMSK6kを復号して復号値y←Dec6k(skf6,k,CT6k)を得て出力する。
次に、図面を用いて本発明の第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を有する。
次に本形態の処理を説明する。
≪セットアップアルゴリズムSetup7(1λ)の実行処理≫
本形態のSetup7(1λ)の実行処理は、第4実施形態のものと同じである。
本形態の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)の実行処理を行ってもよい。
Claims (16)
- 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}i∈[n]を用い、前記Garbling方式に則り、前記関数f1によって表される演算を行う実行アルゴリズムであり、Eが共通鍵暗号方式に則った暗号化を行う暗号化アルゴリズムであり、Dが前記共通鍵暗号方式に則った復号を行う復号アルゴリズムであり、PRGが入力情報に対応する擬似乱数を出力する擬似乱数生成アルゴリズムであり、
i∈[n]およびα∈{0,1}についてKi,α←{0,1}wを選択し、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,αとする行列
を得、各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}i∈[n]を入力とし、各i∈[n]についてKiに前記擬似乱数生成アルゴリズムPRGを適用して擬似乱数Ki 〜を得、前記復号アルゴリズムDを用い、前記擬似乱数Ki 〜を共通鍵として前記暗号文ci,0を復号できるのであれば、前記擬似乱数Ki 〜を共通鍵として前記暗号文ci,0を復号してLi←D(Ki 〜,ci,0)を得、そうでなければ、前記擬似乱数Ki 〜を共通鍵として前記暗号文ci,1を復号してLi←D(Ki 〜,ci,1)を得、前記鍵情報C〜と前記秘匿化ラベル情報{Li}i∈[n]について前記実行アルゴリズムEvalを実行する復号アルゴリズムDec1を実行する復号装置と、
を有する暗号システム。 - 第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(θ)を得、パラメータ(m0,m1,γ)(ただし、γ∈{0,1})を入力として関数f3の関数値f3(mγ)を出力する関数をC[f3]とし、設定されたパラメータ(f0,f1,v,j,θ)について前記マスター秘密鍵MSK1およびα∈{0,1}を入力としてMSK1=⊥ならばvを出力し、そうでなければ前記KG1を実行して関数C[fα]に対する、前記擬似乱数rθでランダム化された秘密鍵skC←KG1(MSK1,C[fα];rθ)を得て秘密鍵skCおよび前記インデックスjを出力する関数G[f0,f1,v,j,θ]を設定し、前記KG2を実行して、関数G[f3,⊥,⊥,j,θ]に対する秘密鍵skG←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を実行する暗号化装置と、
前記秘密鍵skGおよび前記暗号文CT3=(CT1,CT2)を入力とし、前記Dec2を実行して前記秘密鍵skGで前記暗号文CT2を復号することで前記秘密鍵skC←Dec2(skG,CT2)を得、前記Dec1を実行して前記秘密鍵skCで前記暗号文CT1を復号することで復号値y←Dec1(skC,CT1)を得る復号アルゴリズムDec3を実行する復号装置と、
を有する暗号システム。 - q4が正整数であり、第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関数暗号の復号アルゴリズムであり、
q5が正整数であり、第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を実行する復号装置と、
を有する暗号システム。 - 請求項3の暗号システムであって、
q4・q5=λtである、暗号システム。 - λが正整数であり、η=loglogλであり、k∈[η]であり、第6関数型暗号SKFE6kがλk-key unbounded-ciphertext 完全簡素性秘密鍵関数型暗号であり、Setup6kが、マスター秘密鍵MSK6kを得る前記第6関数暗号SKFE6kのセットアップアルゴリズムであり、KG6kが、関数f6k、マスター秘密鍵MSK6k、およびインデックスβkを入力として前記関数f6kに対する秘密鍵skf6,kを得る前記第6関数暗号SKFE6kの鍵生成アルゴリズムであり、Enc6kが、前記マスター秘密鍵MSK6kおよびメッセージm6を入力とし、前記マスター秘密鍵MSK6kで前記メッセージm6を暗号化して暗号文CT6kを得る前記第6関数暗号SKFE6kの暗号化アルゴリズムであり、Dec6kが、前記秘密鍵skf6,kおよび前記暗号文CT6kを入力とし、前記秘密鍵skf6,kで前記暗号文CT6をk復号する前記第6関数暗号SKFE6kの復号アルゴリズムであり、
各k∈[η]について前記Setup6kを実行してマスター秘密鍵MSK6k←Setup6k(1λ)を得、マスター秘密鍵MSK7←(MSK61,…,MSK6η)を得るセットアップアルゴリズムSetup7を実行するセットアップ装置と、
前記マスター秘密鍵MSK7=(MSK61,…,MSK6η)、関数f7、およびインデックス(k,ρ)を入力とし、前記KG6kを実行して秘密鍵skf6,k←KG6k(MSK6k,f7,ρ)を得、前記関数f7に対する秘密鍵skf7←(k,skf6,k)を得る鍵生成アルゴリズムKG7を実行する鍵生成装置と、
前記マスター秘密鍵MSK7=(MSK61,…,MSK6η)およびメッセージm7を入力とし、各k∈[η]について前記Enc6kを実行して前記マスター秘密鍵MSK6kで前記メッセージm7を暗号化した暗号文CT6k←Enc6k(MSK6k,m7)を得、暗号文CT7←(CT61,…,CT6η)を得る暗号化アルゴリズムEnc7を実行する暗号化装置と、
前記秘密鍵skf7=(k,skf6,k)および前記暗号文CT7=(CT61,…,CT6η)を入力とし、前記Dec6kを実行して前記秘密鍵skf6,kで前記暗号文MSK6kを復号して復号値y←Dec6k(skf6,k,CT6k)を得る復号アルゴリズムDec7を実行する復号装置と、
を有する暗号システム。 - 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}i∈[n]を用い、前記Garbling方式に則り、前記関数f1によって表される演算を行う実行アルゴリズムであり、Eが共通鍵暗号方式に則った暗号化を行う暗号化アルゴリズムであり、Dが前記共通鍵暗号方式に則った復号を行う復号アルゴリズムであり、PRGが入力情報に対応する擬似乱数を出力する擬似乱数生成アルゴリズムであり、
i∈[n]およびα∈{0,1}についてKi,α←{0,1}wを選択し、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,αとする行列
を得る行列生成部と、
各i∈[n]およびα∈{0,1}についてKi,αに前記擬似乱数生成アルゴリズムPRGを適用して擬似乱数Ki,α 〜を得る擬似乱数生成部と、
前記暗号化アルゴリズムEを用い、前記擬似乱数Ki,α 〜を共通鍵として前記要素Zi,αを暗号化した暗号文ci,α←E(Ki,α 〜,Zi,α)を得る暗号化部と、
前記関数f1に対する秘密鍵skf1←(C〜,{ci,α}i∈[n],α∈{0,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}i∈[n]を用い、前記Garbling方式に則り、前記関数f1によって表される演算を行う実行アルゴリズムであり、Eが共通鍵暗号方式に則った暗号化を行う暗号化アルゴリズムであり、Dが前記共通鍵暗号方式に則った復号を行う復号アルゴリズムであり、PRGが入力情報に対応する擬似乱数を出力する擬似乱数生成アルゴリズムであり、
i∈[n]およびα∈{0,1}についてKi,α←{0,1}wを選択し、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]を得る暗号化部と、
を有する暗号化装置。 - 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}i∈[n]を用い、前記Garbling方式に則り、前記関数f1によって表される演算を行う実行アルゴリズムであり、Eが共通鍵暗号方式に則った暗号化を行う暗号化アルゴリズムであり、Dが前記共通鍵暗号方式に則った復号を行う復号アルゴリズムであり、PRGが入力情報に対応する擬似乱数を出力する擬似乱数生成アルゴリズムであり、
i∈[n]およびα∈{0,1}についてKi,α←{0,1}wを選択し、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,αとする行列
を得、各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}i∈[n]が入力され、
各i∈[n]についてKiに前記擬似乱数生成アルゴリズムPRGを適用して擬似乱数Ki 〜を得る擬似乱数生成部と、
前記復号アルゴリズムDを用い、前記擬似乱数Ki 〜を共通鍵として前記暗号文ci,0を復号できるのであれば、前記擬似乱数Ki 〜を共通鍵として前記暗号文ci,0を復号してLi←D(Ki 〜,ci,0)を得、そうでなければ、前記擬似乱数Ki 〜を共通鍵として前記暗号文ci,1を復号してLi←D(Ki 〜,ci,1)を得る復号部と、
前記鍵情報C〜と前記秘匿化ラベル情報{Li}i∈[n]について前記実行アルゴリズムEvalを実行する実行部と、
を有する復号装置。 - 第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(θ)を得る擬似乱数生成部と、
パラメータ(m0,m1,γ)(ただし、γ∈{0,1})を入力として関数f3の関数値f3(mγ)を出力する関数をC[f3]とし、設定されたパラメータ(f0,f1,v,j,θ)について前記マスター秘密鍵MSK1およびα∈{0,1}を入力としてMSK1=⊥ならばvを出力し、そうでなければ前記KG1を実行して関数C[fα]に対する、前記擬似乱数rθでランダム化された秘密鍵skC←KG1(MSK1,C[fα];rθ)を得て秘密鍵skCおよび前記インデックスjを出力する関数G[f0,f1,v,j,θ]を設定する関数設定部と、
前記KG2を実行して、関数G[f3,⊥,⊥,j,θ]に対する秘密鍵skG←KG2(MSK2,G[f3,⊥,⊥,j,θ],j)を得る秘密鍵生成部と、
を有する鍵生成装置。 - 第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)を得る暗号化部と、
を有する暗号化装置。 - 第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(θ)を得、パラメータ(m0,m1,γ)(ただし、γ∈{0,1})を入力として関数f3の関数値f3(mγ)を出力する関数をC[f3]とし、設定されたパラメータ(f0,f1,v,j,θ)について前記マスター秘密鍵MSK1およびα∈{0,1}を入力としてMSK1=⊥ならばvを出力し、そうでなければ前記KG1を実行して関数C[fα]に対する、前記擬似乱数rθでランダム化された秘密鍵skC←KG1(MSK1,C[fα];rθ)を得て秘密鍵skCおよび前記インデックスjを出力する関数G[f0,f1,v,j,θ]を設定し、前記KG2を実行して、関数G[f3,⊥,⊥,j,θ]に対する秘密鍵skG←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と、が実行されており、
前記秘密鍵skGおよび前記暗号文CT3=(CT1,CT2)が入力され、
前記Dec2を実行して前記秘密鍵skGで前記暗号文CT2を復号することで前記秘密鍵skC←Dec2(skG,CT2)を得る秘密鍵復号部と、
前記Dec1を実行して前記秘密鍵skCで前記暗号文CT1を復号することで復号値y←Dec1(skC,CT1)を得る復号部と、
を有する復号装置。 - q4が正整数であり、第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関数暗号の復号アルゴリズムであり、
q5が正整数であり、第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,ι)を得る秘密鍵生成部と、
を有する鍵生成装置。 - q4が正整数であり、第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関数暗号の復号アルゴリズムであり、
q5が正整数であり、第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復号部と、
を有する復号装置。 - 請求項6,9,12の何れかの鍵生成装置の機能をコンピュータに実行させるためのプログラム。
- 請求項7または10の暗号化装置の機能をコンピュータに実行させるためのプログラム。
- 請求項8,11,13の何れかの復号装置の機能をコンピュータに実行させるためのプログラム。
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)
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)
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 | 三菱電機株式会社 | 情報配信システム、サーバ装置、情報生成装置、端末装置、情報配信方法及びプログラム |
-
2017
- 2017-01-10 JP JP2017001752A patent/JP6649289B2/ja active Active
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 |