JP2018112612A - Encryption system, set up device, key generation device, encryption device, decryption device, obfuscation device, execution device, and program - Google Patents
Encryption system, set up device, key generation device, encryption device, decryption device, obfuscation device, execution device, and program Download PDFInfo
- Publication number
- JP2018112612A JP2018112612A JP2017001751A JP2017001751A JP2018112612A JP 2018112612 A JP2018112612 A JP 2018112612A JP 2017001751 A JP2017001751 A JP 2017001751A JP 2017001751 A JP2017001751 A JP 2017001751A JP 2018112612 A JP2018112612 A JP 2018112612A
- Authority
- JP
- Japan
- Prior art keywords
- secret key
- key
- master
- encryption
- setup
- 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.)
- Granted
Links
- 101100345685 Xenopus laevis mapk1 gene Proteins 0.000 claims description 87
- 101100291377 Xenopus laevis mapk14 gene Proteins 0.000 claims description 33
- 101150024075 Mapk1 gene Proteins 0.000 claims description 5
- 101100095907 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SLT2 gene Proteins 0.000 claims description 5
- 101000945096 Homo sapiens Ribosomal protein S6 kinase alpha-5 Proteins 0.000 claims description 4
- 102100033645 Ribosomal protein S6 kinase alpha-5 Human genes 0.000 claims description 4
- 101100355601 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RAD53 gene Proteins 0.000 claims 1
- 101150087667 spk1 gene Proteins 0.000 claims 1
- 230000006870 function Effects 0.000 description 221
- 238000000034 method Methods 0.000 description 95
- 230000015654 memory Effects 0.000 description 84
- 238000004891 communication Methods 0.000 description 68
- 238000004364 calculation method Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 4
- 239000003643 water by type Substances 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 108010054404 Adenylyl-sulfate kinase Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100402341 Caenorhabditis elegans mpk-1 gene Proteins 0.000 description 1
- 102100039024 Sphingosine kinase 1 Human genes 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Abstract
Description
本発明は、関数型暗号技術に関し、特に、識別不可能性難読化技術に関する。 The present invention relates to a functional encryption technique, and more particularly to an indistinguishability obfuscation technique.
「難読化(obfuscation)」とは、入力されたプログラムを変換し、異なるプログラムに変換することをいう。特に、同一の機能をもつ2つの異なるプログラムを変換したとき、変換後のプログラムがどちらのプログラムを変換して得られたものかを判別できない「難読化」を「識別不可能性難読化(Indistinguishability Obfuscation)」という(例えば、非特許文献1等参照)。このような難読化を行う識別不可能性難読化器の構成方法の一つに、一般的な暗号機能を用いた構成方法が知られている(例えば、非特許文献2から5等参照)。例えば、非特許文献2,3に記載された構成方法では、1-keyweakly-succinct 公開鍵関数型暗号を利用して識別不可能性難読化器を構成している。また、非特許文献5に記載された構成方法では、unbounded-key non-succinct 秘密鍵関数型暗号と(標準的な)公開鍵暗号を利用して識別不可能性難読化器を構成している(用語の定義は後述)。
“Obfuscation” refers to converting an input program into a different program. In particular, when two different programs with the same function are converted, “obfuscation” that cannot determine which program is obtained by converting which program is converted to “Indistinguishability (Indistinguishability) Obfuscation) "(see, for example, Non-Patent Document 1). A configuration method using a general encryption function is known as one of the configuration methods of an indistinguishability obfuscation device that performs such obfuscation (see, for example, Non-Patent Documents 2 to 5). For example, in the configuration methods described in
従来の構成方法では、暗号化回路のサイズが秘密鍵に対応する関数fのサイズに依存する関数型暗号(1-key weakly-succinct 公開鍵関数型暗号やunbounded-key non-succinct 秘密鍵関数型暗号など)を用いて識別不可能性難読化器を構成していた。しかし、暗号化回路のサイズの関数fのサイズへの依存性がより小さな結託簡素性を持つ関数型暗号を用いることができれば、識別不可能性難読化に必要な演算コストや記憶容量をさらに低減できる。
本発明はこのような点に鑑みてなされたものであり、結託簡素性を持つ関数型暗号を提供することを目的とする。
In the conventional configuration method, the function type encryption whose size of the encryption circuit depends on the size of the function f corresponding to the secret key (1-key weakly-succinct public key function type encryption or unbounded-key non-succinct secret key function type Cryptography) was used to construct an indistinguishability obfuscation device. However, if it is possible to use a functional encryption with a collusion simplicity that is less dependent on the size of the function f of the size of the encryption circuit, the calculation cost and storage capacity required for obfuscation of indistinguishability are further reduced. it can.
The present invention has been made in view of these points, and an object thereof is to provide a functional encryption having collusion simplicity.
第2関数型暗号のセットアップアルゴリズムPKFE2.setup、鍵生成アルゴリズムFE2.keygen、暗号化アルゴリズムPKFE2.enc、および復号アルゴリズムFE2.decを実行する。ただし、qが1以上の整数であり、PKFE1.setupが、マスター公開鍵mpk1およびマスター秘密鍵msk1を生成する第1関数型暗号のセットアップアルゴリズムであり、FE1.keygenが、マスター秘密鍵msk1および所定の関数f1を入力とし、関数f1に対する秘密鍵skf1を生成する第1関数型暗号の鍵生成アルゴリズムであり、PKFE1.encが、マスター公開鍵mpk1およびメッセージmを入力とし、メッセージmの暗号文c1を生成する第1関数型暗号の暗号化アルゴリズムであり、FE1.decが、秘密鍵skf1および暗号文c1を入力とし、メッセージmの関数値f1(m)を生成する第1関数型暗号の復号アルゴリズムである。 Second function type encryption setup algorithm PKFE2. setup, key generation algorithm FE2. keygen, encryption algorithm PKFE2. enc and the decoding algorithm FE2. Dec is executed. However, q is an integer greater than or equal to 1, and PKFE1. setup is a first functional encryption setup algorithm for generating a master public key mpk1 and a master secret key msk1, and FE1. keygen is a first function encryption key generation algorithm that receives a master secret key msk1 and a predetermined function f1, and generates a secret key sk f1 for the function f1, and PKFE1. enc is a first functional encryption algorithm that receives the master public key mpk1 and the message m and generates the ciphertext c1 of the message m, and includes FE1. Dec is a decryption algorithm of the first functional encryption that receives the secret key sk f1 and the ciphertext c1 and generates the function value f1 (m) of the message m.
セットアップアルゴリズムPKFE2.setupでは、(1)擬似ランダム関数F’の鍵K0とランダムビット列ρ0を得、(2)入力されたi∈[q]について擬似乱数ri’=F’(K0,(ρ0,i))を得るステップと、PKFE1.setupを実行して擬似乱数ri’でランダム化されたマスター公開鍵mpk1iおよびマスター秘密鍵msk1iの組を生成するステップと、マスター公開鍵mpk1iを出力するステップと、を実行するマスター公開鍵生成プログラムΣを生成し、(3)マスター公開鍵生成プログラムΣを識別不可能性難読化した難読化プログラムsxiO(Σ)をマスター公開鍵mpk2として得、(K0,ρ0)をマスター秘密鍵msk2として得る。 Setup algorithm PKFE2. In the setup, (1) a key K 0 and a random bit string ρ 0 of the pseudo random function F ′ are obtained, and (2) a pseudo random number r i ′ = F ′ (K 0 , (ρ 0 ) for the input i∈ [q]. , I)) and PKFE1. A master public that executes a setup to generate a set of a master public key mpk1 i and a master secret key msk1 i randomized with a pseudo-random number r i ′, and outputs a master public key mpk1 i A key generation program Σ is generated, and (3) an obfuscation program sxiO (Σ) obtained by obfuscating the master public key generation program Σ is obtained as a master public key mpk2, and (K 0 , ρ 0 ) is a master secret Obtained as key msk2.
FE2.keygenでは、いずれかのi∈[q]、マスター秘密鍵msk2、および所定の関数f2を入力とし、PKFE1.setupを実行して疑似乱数F’(K0,(ρ0,i))でランダム化されたマスター公開鍵mpk1iおよびマスター秘密鍵msk1iを得、FE1.keygenを実行してマスター秘密鍵msk1iおよび関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る。 FE2. In keygen, one of i∈ [q], master secret key msk2, and a predetermined function f2 is input, and PKFE1. Execute setup to obtain a master public key mpk1 i and a master secret key msk1 i randomized with pseudorandom numbers F ′ (K 0 , (ρ 0 , i)), and FE1. Keygen is executed to generate a master secret key msk1 i and a secret key sk f2 (i) for the function f2, and obtain a secret key sk f2 = (sk f2 (i) , i).
暗号化アルゴリズムPKFE2.encでは、(1)穴開け可能擬似ランダム関数Fの鍵Kを得、(2)入力されたi∈[q]について難読化プログラムsxiO(Σ)を実行してマスター公開鍵mpk1iを得るステップと、入力されたi∈[q]について擬似乱数ri=F(K,i)を生成するステップと、マスター公開鍵mpk1i、メッセージm、および擬似乱数riを入力としてPKFE1.encを実行して擬似乱数riでランダム化された暗号文ctiを得るステップと、を実行する暗号文生成プログラムη’を得、(3)暗号文生成プログラムη’を識別不可能性難読化した難読化プログラムct=sxiO(η’)を得る。 Encryption algorithm PKFE2. In enc, (1) obtaining a key K of a puncturable pseudorandom function F, and (2) executing an obfuscated program sxiO (Σ) on the input i∈ [q] to obtain a master public key mpk1 i And a step of generating a pseudo random number r i = F (K, i) for the input i∈ [q], and the master public key mpk1 i , the message m, and the pseudo random number r i as inputs. executing enc to obtain a ciphertext ct i randomized with a pseudo-random number r i , obtaining a ciphertext generation program η ′ for executing, and (3) reading the ciphertext generation program η ′ indistinguishable The obfuscated program ct = sxiO (η ′) is obtained.
復号アルゴリズムFE2.decでは、秘密鍵skf2および難読化プログラムctを入力とし、秘密鍵skf2から取り出したi∈[q]について暗号文ctiを得、秘密鍵skf2 (i)および暗号文ctiを入力としてFE1.decを実行して復元値を得る。 Decoding algorithm FE2. In dec, as input the secret key sk f2 and obfuscated program ct, resulting ciphertext ct i for i∈ was removed from the secret key sk f2 [q], enter the secret key sk f2 (i) and the ciphertext ct i As FE1. Dec is executed to obtain a restoration value.
これにより、結託簡素性を持つ関数型暗号を構成できる。 This makes it possible to configure a functional encryption with collusion simplicity.
以下、本発明の実施形態を説明する。
[前提]
まず実施形態の前提事項を説明する。
「難読化(obfuscation)」とは、入力されたプログラムを変換し、異なるプログラムに変換することをいう(例えば、非特許文献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を難読化して得られたものであると判別される)確率との違いが無視できることを意味する。
Embodiments of the present invention will be described below.
[Assumption]
First, the premise of the embodiment will be described.
“Obfuscation” refers to converting an input program into a different program (see, for example, Non-Patent Document 1). The function of the program after conversion is completely the same as the function of the program before conversion. The converted program does not leak information about the program before conversion. In particular, “Indistinguishability Obfuscation” means that when two different programs with the same function are converted, it is impossible to determine which program is obtained by converting the converted program. It means “obfuscated”. “Obfuscator” means an obfuscation device, and “Indistinguishability Obfuscator (iO)” means an indistinguishability obfuscation device. The “indistinguishability obfuscator” for the circuit family {C λ } λ∈N to which the circuit described by the program belongs is described as “functionality” and “identification”. Satisfying “impossibility”.
“Functionality” means that any security parameter λ∈N, any program C∈ {C λ } λ∈N , and any input x satisfy the following. Where N represents a natural number, Pr [α] represents the probability of event α, iO (C) represents obfuscation of C by iO, and α ← β represents that the result of β is α .
Pr [C '(x) = C (x): C' ← iO (C)] = 1
That is, iO satisfies the functionality means that when an arbitrary program C is converted into a program C ′ by a stochastic polynomial time machine iO, the output C ′ (x) of the program C ′ with respect to the input x and the output C of the program C (X) means equal.
“Indistinguishability” means that for any polynomial size discriminator D, there is a negligible function δ (•), an arbitrary security parameter λ∈N, an arbitrary program pair (circuit pair) having the same size. ) For C 0 , C 1 ∈ C λ and C 0 (x) = C 1 (x) for any input x, this means that:
Pr [D (iO (C 0 )) = 1] -Pr [D (iO (C 1 )) = 1] ≦ δ (λ)
That is, the iO satisfies the impossibility identification, iO determination result D (iO (C 0)) of the (C 0) (iO (C 0) or that such one obtained by obfuscating C 0 C 1 And the probability that iO (C 0 ) is obtained by obfuscating C 1 ) and iO (C 1 the determination result D of) (iO (C 1)) is 1 (e.g., iO (C 1) that is negligible difference between the discrimination to) the probability that the one obtained by obfuscating C 1 Means.
「公開鍵関数型暗号(PKFE:Public-Key Functional Encryption)」とは、マスター公開鍵を用いて暗号化を行う関数型暗号(Functional Encryption)を意味する。以下に公開鍵関数型暗号のアルゴリズム(PKFE.setup, FE.keygen, PKFE.enc, FE.dec)を示す(例えば、非特許文献5、参考文献1(Dan Boneh, Amit Sahai, Brent Waters, "Functional Encryption: Definitions and Challenges," Proceedings of Theory of Cryptography Conference (TCC) 2011)等参照)。
セットアップアルゴリズム(PKFE.setup):鍵の長さ(ビット長)を表す任意のセキュリティパラメータλ∈Nを入力とし、マスター公開鍵mpk(システムパラメータ)とマスター秘密鍵mskを生成する。
(mpk, msk) ← PKFE.setup(1λ)
鍵生成アルゴリズム(FE.keygen):マスター秘密鍵mskおよび関数fを入力とし、関数fに対する秘密鍵skfを生成する。関数fは任意の関数でよく、例えば、f(m)=mまたはf(m)=⊥を満たす関数である。ただし、⊥はエラーを表す。
skf ← FE.keygen(msk,f)
暗号化アルゴリズム(PKFE.enc):マスター公開鍵mpkとメッセージmを入力とし、暗号文cを生成する。
c ← PKFE.enc(mpk, m)
復号アルゴリズム(FE.dec):関数fに対する秘密鍵skfと暗号文cを入力とし、メッセージmの関数値f(m)を生成する。
f(m) ← FE.dec(skf,c)
“Public-Key Functional Encryption (PKFE)” means functional encryption that performs encryption using a master public key. The public key function type encryption algorithm (PKFE.setup, FE.keygen, PKFE.enc, FE.dec) is shown below (for example, Non-Patent Document 5, Reference Document 1 (Dan Boneh, Amit Sahai, Brent Waters, " Functional Encryption: Definitions and Challenges, "Proceedings of Theory of Cryptography Conference (TCC) 2011)).
Setup algorithm (PKFE.setup): An arbitrary security parameter λεN representing a key length (bit length) is input, and a master public key mpk (system parameter) and a master secret key msk are generated.
(mpk, msk) ← PKFE.setup (1 λ )
Key generation algorithm (FE.keygen): A master secret key msk and a function f are input, and a secret key sk f for the function f is generated. The function f may be an arbitrary function, for example, a function satisfying f (m) = m or f (m) = ⊥. However, ⊥ represents an error.
sk f ← FE.keygen (msk, f)
Encryption algorithm (PKFE.enc): A master public key mpk and a message m are input and a ciphertext c is generated.
c ← PKFE.enc (mpk, m)
Decryption algorithm (FE.dec): The function key f (m) of the message m is generated by inputting the secret key sk f and the ciphertext c for the function f.
f (m) ← FE.dec (sk f , c)
「秘密鍵関数型暗号(SKFE:Secret-Key Functional Encryption)」とは、マスター秘密鍵を用いて暗号化を行う関数型暗号を意味する。以下に秘密鍵関数型暗号のアルゴリズム(SKFE.setup, FE.keygen, SKFE.enc, FE.dec)を示す(例えば、非特許文献5等参照)。
セットアップアルゴリズム(SKFE.setup):鍵の長さ(ビット長)を表す任意のセキュリティパラメータλ∈Nを入力とし、マスター秘密鍵mskを生成する。
msk ← SKFE.setup(1λ)
鍵生成アルゴリズム(FE.keygen):マスター秘密鍵mskおよび関数fを入力とし、関数fに対する秘密鍵skfを生成する。関数fは任意の関数でよく、例えば、f(m)=mまたはf(m)=⊥を満たす関数である。ただし、⊥はエラーを表す。
skf ← FE.keygen(msk,f)
暗号化アルゴリズム(SKFE.enc):マスター秘密鍵mskとメッセージmを入力とし、暗号文cを生成する。
c ← SKFE.enc(msk, m)
復号アルゴリズム(FE.dec):関数fに対する秘密鍵skfと暗号文cを入力とし、メッセージmの関数値f(m)を生成する。
f(m) ← FE.dec(skf,c)
“Secret-key functional encryption (SKFE)” means functional encryption that performs encryption using a master secret key. The secret key function type encryption algorithm (SKFE.setup, FE.keygen, SKFE.enc, FE.dec) is shown below (see, for example, Non-Patent Document 5).
Setup algorithm (SKFE.setup): An arbitrary security parameter λεN representing a key length (bit length) is input and a master secret key msk is generated.
msk ← SKFE.setup (1 λ )
Key generation algorithm (FE.keygen): A master secret key msk and a function f are input, and a secret key sk f for the function f is generated. The function f may be an arbitrary function, for example, a function satisfying f (m) = m or f (m) = ⊥. However, ⊥ represents an error.
sk f ← FE.keygen (msk, f)
Encryption algorithm (SKFE.enc): A master secret key msk and a message m are input and a ciphertext c is generated.
c ← SKFE.enc (msk, m)
Decryption algorithm (FE.dec): The function key f (m) of the message m is generated by inputting the secret key sk f and the ciphertext c for the function f.
f (m) ← FE.dec (sk f , c)
「1-key(single-key)方式」とは、鍵生成アルゴリズムによる鍵の発行回数(すなわち、攻撃者による鍵の入手回数)が1回の場合には安全性が保たれるが、鍵の発行回数が2回以上の場合には安全性が保たれるとは限らない暗号方式をいう。
「bounded-key方式」とは、鍵生成アルゴリズムによる鍵の発行回数が事前(セットアップアルゴリズムの実行時)に定められた回数(複数回数)以下の場合には安全性が保たれるが、鍵の発行回数が事前に定められた回数を超えた場合には安全性が保たれるとは限らない暗号方式をいう。特に、鍵生成アルゴリズムによる鍵の発行回数が事前に定められたq(ただし、q≧2)以下の場合安全性が保たれるが、鍵の発行回数がqを超えた場合には安全性が保たれるとは限らない暗号方式を「q-Key方式」という。
「unbounded-key方式」とは、鍵生成アルゴリズムによる鍵の発行回数にかかわらず、安全性が保たれる暗号方式をいう。
The “1-key (single-key) method” means that the security is maintained when the number of times the key is issued by the key generation algorithm (that is, the number of times the attacker obtains the key) is one, This is an encryption method in which the security is not always maintained when the number of times of issuance is two or more.
The “bounded-key method” means that the security is maintained when the number of keys issued by the key generation algorithm is less than the number (multiple times) set in advance (when the setup algorithm is executed). An encryption method in which the security is not always maintained when the number of times of issuance exceeds a predetermined number. In particular, safety is maintained when the number of key issuances by the key generation algorithm is equal to or less than a predetermined q (where q ≧ 2), but safety is maintained when the number of key issuances exceeds q. An encryption method that is not always maintained is called a “q-Key method”.
The “unbounded-key scheme” refers to an encryption scheme that maintains security regardless of the number of times a key is issued by a key generation algorithm.
「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-ε
The “non-succinct method” refers to an encryption method in which the encryption circuit size | E | described by the encryption algorithm satisfies the following relationship. However, poly (α) represents a polynomial of α, n represents the length (bit length) of the message m, and | f | represents the size of the function f described above.
| E | = poly (λ, n, | f |)
The “weakly-succinct method” refers to an encryption method in which the size | E | of the encryption circuit described by the encryption algorithm satisfies the following relationship. However, ε satisfies 0 <ε <1.
| E | = poly (λ, n) ・ | f | 1-ε
The “succinct (complete simplicity) method” refers to an encryption method in which the size | E | of the encryption circuit described by the encryption algorithm satisfies the following relationship.
| E | = poly (λ, n)
The “q-key collusion-succinctness (q-key collusion simplicity) method” means an encryption method in which the size | E | of the encryption circuit described by the encryption algorithm satisfies the following relationship. However, q represents the number of key issuance times by the key generation algorithm, and ε satisfies 0 <ε <1.
| E | = poly (λ, n, | f |) ・ q 1-ε
上記で定義した「α方式」の関数型暗号を「α関数型暗号」と呼び、「α方式」の公開鍵関数型暗号を「α公開鍵関数型暗号」と呼び、「α方式」の秘密鍵関数型暗号を「α秘密鍵関数型暗号」と呼ぶことにする。例えば、1-key方式の関数型暗号を「1-key関数型暗号」と呼び、1-key方式の公開鍵関数型暗号を「1-key公開鍵関数型暗号」と呼び、1-key方式の秘密鍵関数型暗号を「1-key秘密鍵関数型暗号」と呼ぶ。また、上記で定義した複数の方式の用語を組み合わせることで、それらの方式の性質を兼ね備える暗号方式を表現することにする。例えば、1-key方式およびweakly-succinct方式の両方の性質を備える公開鍵関数型暗号を「1-key weakly-succinct 公開鍵関数型暗号」と呼び、bounded-key方式およびnon-succinct方式の両方の性質を備える秘密鍵関数型暗号を「bounded-key non-succinct 秘密鍵関数型暗号」と呼び、1-key方式およびsuccinct方式の両方の性質を備える秘密鍵関数型暗号を「1-key succinct 秘密鍵関数型暗号」と呼ぶ。 The “α method” function-type encryption defined above is called “α function type encryption”, the “α method” public key function type encryption is called “α public key function type encryption”, and the secret of “α method” The key function type encryption is called “α secret key function type encryption”. For example, a 1-key functional encryption is called a “1-key functional encryption”, a 1-key public key functional encryption is called a “1-key public key functional encryption”, and a 1-key method. Is called “1-key secret key function type encryption”. Also, by combining the terms of the plurality of methods defined above, an encryption method that combines the properties of those methods will be expressed. For example, a public key function cipher that has the properties of both the 1-key method and the weakly-succinct method is called `` 1-key weakly-succinct public key function cipher '', and both the bounded-key method and the non-succinct method The secret key function type cipher with the properties of `` slave key function cipher '' is called `` bounded-key non-succinct secret key function type cipher '' and the secret key function type cipher with the properties of both 1-key and succinct methods This is called “secret key function type encryption”.
「Strong Exponentially-Efficient Indistinguishability Obfuscator(SXIO)」とは、難読化アルゴリズムを実現する回路サイズ|iO|が以下を満たす識別不可能性難読化器iOをいう(例えば、非特許文献5等参照)。ただし、λはセキュリティパラメータを表し、|C|は難読化しようとするプログラムCによって記述される回路のサイズを表し、nは当該回路への入力値の大きさ(ビット数)を表し、εは0<ε<1を満たす。なお、2nは暗号化アルゴリズムへの入力値の総数となる。
|iO|=poly(λ,|C|)・2n(1-ε)
“Strong Exponentially-Efficient Indistinguishability Obfuscator (SXIO)” refers to an indistinguishability obfuscation device iO in which the circuit size | iO | for realizing the obfuscation algorithm satisfies the following (for example, see Non-Patent Document 5). Where λ represents a security parameter, | C | represents the size of the circuit described by the program C to be obfuscated, n represents the magnitude (number of bits) of the input value to the circuit, and ε represents 0 <ε <1 is satisfied. 2 n is the total number of input values to the encryption algorithm.
| iO | = poly (λ, | C |) ・ 2 n (1-ε)
「γ-compressingStrong Exponentially-Efficient Indistinguishability Obfuscator(γ-SXIO)」とは、任意のセキュリティパラメータλ∈NおよびプログラムC∈{Cλ}λ∈Nについて、入力(1λ,C)に対するSXIOの実行時間が高々2nγ・poly(λ,|C|)である(Non-trivial time efficiency)識別不可能性難読化器iOをいう(例えば、非特許文献5等参照)。ただし、γは0<γ<1を満たす。 “Γ-compressing Strong Exponentially-Efficient Indistinguishability Obfuscator (γ-SXIO)” is the execution time of SXIO for input (1 λ , C) for any security parameter λ∈N and program C∈ {C λ } λ∈N. Is at most 2 nγ · poly (λ, | C |) (Non-trivial time efficiency) an indistinguishability obfuscation device iO (see, for example, Non-Patent Document 5). However, γ satisfies 0 <γ <1.
[原理]
次に原理を説明する。
<q−key結託簡素性公開鍵関数型暗号(q-key collusion-succinctness PKFE)(I)>
1−key公開鍵関数型暗号である第1関数型暗号とγ−SXIOとを用い、以下のようにq−key結託簡素性公開鍵関数型暗号である第2関数型暗号(PKFE2.setup, FE2.keygen, PKFE2.enc, FE2.dec)を構成する。
ただし、qが1以上の整数(例えば、qは2以上の整数)であり、PKFE1.setupが、マスター公開鍵mpk1およびマスター秘密鍵msk1を生成する第1関数型暗号のセットアップアルゴリズムであり、FE1.keygenが、マスター秘密鍵msk1および所定の関数f1を入力とし、関数f1に対する秘密鍵skf1を生成する第1関数型暗号の鍵生成アルゴリズムであり、PKFE1.encが、マスター公開鍵mpk1およびメッセージmを入力とし、メッセージmの暗号文c1を生成する第1関数型暗号の暗号化アルゴリズムであり、FE1.decが、秘密鍵skf1および暗号文c1を入力とし、メッセージmの関数値f1(m)を生成する第1関数型暗号の復号アルゴリズムである。
参考文献2(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)には、公開鍵暗号からr−key公開鍵関数型暗号を構成する方法が開示されている(ただし、rは1以上の整数であり、例えば、rは2以上の整数である)。r−key公開鍵関数型暗号は1−key公開鍵関数型暗号でもあるため、参考文献2で得られるr−key公開鍵関数型暗号を第1関数型暗号として用いることができる。また、非特許文献5には、公知の1−key完全簡素性秘密鍵関数型暗号から1/2≦γ≦1を満たすγ−SXIOを構成する方法が開示されている。
[principle]
Next, the principle will be described.
<Q-key collusion-succinctness PKFE (I)>
Using the first function type cipher that is a 1-key public key function type cipher and γ-SXIO, the second function type cipher (PKFE2.setup, FE2.keygen, PKFE2.enc, FE2.dec).
However, q is an integer greater than or equal to 1 (for example, q is an integer greater than or equal to 2), and PKFE1. setup is a first functional encryption setup algorithm for generating a master public key mpk1 and a master secret key msk1, and FE1. keygen is a first function encryption key generation algorithm that receives a master secret key msk1 and a predetermined function f1, and generates a secret key sk f1 for the function f1, and PKFE1. enc is a first functional encryption algorithm that receives the master public key mpk1 and the message m and generates the ciphertext c1 of the message m, and includes FE1. Dec is a decryption algorithm of the first functional encryption that receives the secret key sk f1 and the ciphertext c1 and generates the function value f1 (m) of the message m.
Reference 2 (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) discloses a method for constructing an r-key public key functional cipher from public key cryptography (where r is an integer of 1 or more, for example, r is 2 or more). Is an integer). Since the r-key public key function encryption is also a 1-key public key function encryption, the r-key public key function encryption obtained in Reference 2 can be used as the first function encryption. Non-Patent Document 5 discloses a method of constructing γ-SXIO satisfying 1/2 ≦ γ ≦ 1 from a known 1-key complete simplicity secret key function type encryption.
セットアップアルゴリズム(PKFE2.setup(1λ)):
PKFE2.setup(1λ)は、λを入力として各i∈[q]についてPKFE1.setupを実行してマスター公開鍵mpk1iおよびマスター秘密鍵msk1iの組を生成する。すなわち、PKFE2.setupは、q対の(mpk1i,msk1i)(ただし、i∈[q]であり、[q]は{1,2,…,q}を意味する)を生成する。
(mpk1i,msk1i)←PKFE1.setup(1λ) for i∈[q]
ただし、λは正整数のセキュリティパラメータであり、PKFE1.setupは、各i∈[q]についてランダム化した(mpk1i,msk1i)を得る。PKFE2.setupは、各i∈[q]について得られた(mpk1i,msk1i)から、マスター公開鍵(システムパラメータ)mpk2=(mpk11,…,mpk1q)およびマスター秘密鍵msk2=(msk11,…,msk1q)を得て出力する。
Setup algorithm (PKFE2.setup (1 λ)):
PKFE2. setup (1 λ ) takes PKFE1... for each i∈ [q] with λ as input. Execute setup to generate a set of master public key mpk1 i and master secret key msk1 i . That is, PKFE2. setup generates q pairs of (mpk1 i , msk1 i ) (where i∈ [q], [q] means {1, 2,..., q}).
(mpk1 i , msk1 i ) ← PKFE1.setup (1 λ ) for i∈ [q]
Where λ is a positive integer security parameter and PKFE1. setup gets randomized (mpk1 i , msk1 i ) for each iε [q]. PKFE2. The setup is obtained from (mpk1 i , msk1 i ) obtained for each i∈ [q], and the master public key (system parameter) mpk2 = (mpk1 1 ,..., mpk1 q ) and the master secret key msk2 = (msk1 1 , ..., and outputs it to obtain a msk1 q).
鍵生成アルゴリズム(FE2.keygen(msk2,f2,i)):
FE2.keygen(msk2,f2,i)は、いずれかのi∈[q]、マスター秘密鍵msk2、および所定の関数f2を入力としてFE1.keygenを実行して関数f2に対する秘密鍵skf2 (i)を生成し、関数f2に対する秘密鍵skf2=(skf2 (i),i)を得て出力する。
skf2 (i)←FE1.keygen(msk1i,f2)
Key generation algorithm (FE2.keygen (msk2, f2, i)):
FE2. keygen (msk2, f2, i) is input to FE1... FE1... with any iε [q], master secret key msk2, and a predetermined function f2. The keygen is executed to generate the secret key sk f2 (i) for the function f2, and the secret key sk f2 = (sk f2 (i) , i) for the function f2 is obtained and output.
sk f2 (i) ← FE1.keygen (msk1 i , f2)
暗号化アルゴリズム(PKFE2.enc(mpk2,m)):
PKFE2.enc(mpk2,m)は、穴開け可能擬似ランダム関数Fの鍵Kを生成し、暗号文生成プログラムηを生成し、当該暗号文生成プログラムηを識別不可能性難読化した難読化プログラムct=sxiO(η)を得る。ただし、PKFE2.encの暗号文生成プログラムηは、入力されたi∈[q]について擬似乱数riを生成するステップと、マスター公開鍵mpk1i、メッセージm、および擬似乱数riを入力としてPKFE1.encを実行して擬似乱数riでランダム化された暗号文cti(ただし、ctiはメッセージmの暗号文)を得るステップと、を実行するプログラムである。なお、穴開け可能擬似ランダム関数Fは、鍵Kおよびインデックスiを入力として、それらに対応する擬似乱数F(K,i)を出力する。穴開け可能擬似ランダム関数の概念は、例えば、参考文献3(Amit Sahai, Brent Waters,“How to Use Indistinguishability Obfuscation: Deniable Encryption, and More,”Proceeding STOC '14 Proceedings of the 46th Annual ACM Symposium on Theory of Computing, Pages 475-484)等に開示されている。また穴開け可能擬似ランダム関数の具体的構成は、参考文献4(Dan Boneh, Brent Waters, “Constrained Pseudorandom Functions and Their Applications,” Advances in Cryptology - ASIACRYPT 2013, Volume 8270 of the series Lecture Notes in Computer Science pp 280-300)などに開示されている。なお、前述の擬似ランダム関数F’として穴開け可能擬似ランダム関数Fを用いてもよい。
Encryption algorithm (PKFE2.enc (mpk2, m)):
PKFE2. enc (mpk2, m) generates a key K of the puncturable pseudorandom function F, generates a ciphertext generation program η, and obfuscation program ct = Obtain sxiO (η). However, PKFE2. PKFE1 enc ciphertext generator η of the steps of generating a pseudo-random number r i for the inputted i ∈ [q], the master public key MPK1 i, message m, and a pseudo-random number r i as input. executing enc to obtain a ciphertext ct i randomized with a pseudo-random number r i (where ct i is a ciphertext of the message m). The punchable pseudo random function F receives the key K and the index i and outputs a pseudo random number F (K, i) corresponding to them. The concept of a puncturable pseudorandom function is described in, for example, Reference 3 (Amit Sahai, Brent Waters, “How to Use Indistinguishability Obfuscation: Deniable Encryption, and More,” Proceeding STOC '14 Proceedings of the 46th Annual ACM Symposium on Theory of Computing, Pages 475-484). The specific structure of the puncturable pseudorandom function is described in Reference 4 (Dan Boneh, Brent Waters, “Constrained Pseudorandom Functions and Their Applications,” Advances in Cryptology-ASIACRYPT 2013, Volume 8270 of the series Lecture Notes in Computer Science pp. 280-300). Note that a puncturable pseudorandom function F may be used as the above-described pseudorandom function F ′.
≪PKFE2.encの暗号文生成プログラムη≫
Hardwired:K, m, mpk11,…,mpk1q
Input:或るインデックスi∈[q]
1.ri=F(K,i)を計算する。
2.暗号文cti←PKFE1.enc(mpk1i,m;ri)を生成する。
3.暗号文ctiを出力する。
また、難読化プログラムct=sxiO(η)は、当該暗号文生成プログラムηをγ−SXIOで識別不可能性難読化したものである。
≪PKFE2. enc's ciphertext generation program η >>
Hardwired: K, m, mpk1 1 ,…, mpk1 q
Input: A certain index i∈ [q]
1. Calculate r i = F (K, i).
2. Ciphertext ct i <-PKFE1.enc (mpk1 i , m; r i ) is generated.
3. Output ciphertext ct i .
The obfuscated program ct = sxiO (η) is the ciphertext generation program η obfuscated by γ-SXIO.
復号アルゴリズム(FE2.dec(skf2,ct)):
FE2.dec(skf2,ct)は、秘密鍵skf2=(skf2 (i),i)および難読化プログラムct=sxiO(η)を入力とし、秘密鍵skf2から取り出したi∈[q]をct=sxiO(η)に入力してct=sxiO(η)を実行することで暗号文ctiを得る。難読化の「機能性」により、難読化プログラムctにiを入力することで、暗号文生成プログラムηのiに対する出力である暗号文ctiが得られる。さらにFE2.dec(skf2,ct)は、秘密鍵skf2から取りだした秘密鍵skf2 (i)および得られた暗号文ctiを入力としてFE1.decを実行して復元値m’を得て出力する。
m’←FE1.dec(skf2 (i),cti)
正しく復号が行われた場合にはm’=f2(m)となる。
Decoding algorithm (FE2.dec (sk f2 , ct)):
FE2. dec (sk f2 , ct) receives the secret key sk f2 = (sk f2 (i) , i) and the obfuscated program ct = sxiO (η) as input, and i∈ [q] extracted from the secret key sk f2 The ciphertext ct i is obtained by inputting ct = sxiO (η) and executing ct = sxiO (η). By inputting i into the obfuscated program ct due to the “functionality” of obfuscation, the ciphertext ct i that is the output of the ciphertext generation program η with respect to i is obtained. Furthermore, FE2. dec (sk f2, ct) is, FE1 as input a secret key sk f2 (i) and the resulting ciphertext ct i taken out from the secret key sk f2. Dec is executed to obtain and output a restoration value m ′.
m '← FE1.dec (sk f2 (i) , ct i )
When decoding is performed correctly, m ′ = f2 (m).
<q−key結託簡素性公開鍵関数型暗号 (II)>
q−key結託簡素性公開鍵関数型暗号の他の構成を示す。1−key公開鍵関数型暗号である第1関数型暗号とγ−SXIOとを用い、以下のようにq−key結託簡素性公開鍵関数型暗号である第2関数型暗号(PKFE2.setup, FE2.keygen, PKFE2.enc, FE2.dec)を構成する。
<Q-key collusion simplicity public key function type encryption (II)>
The other structure of q-key collusion simplicity public key functional encryption is shown. Using the first function type cipher that is a 1-key public key function type cipher and γ-SXIO, the second function type cipher (PKFE2.setup, FE2.keygen, PKFE2.enc, FE2.dec).
セットアップアルゴリズム(PKFE2.setup(1λ)):
PKFE2.setup(1λ)は、まず、λを入力として擬似ランダム関数F’の鍵K0とランダムビット列ρ0∈{0,1}λを得る。鍵K0およびランダムビット列ρ0は、例えば、ランダムに選択される。次に、PKFE2.setup(1λ)は、マスター公開鍵生成プログラムΣを生成する。ただし、PKFE2.setupのマスター公開鍵生成プログラムΣは、入力されたi∈[q]について擬似乱数ri’=F’(K0,(ρ0,i))を得るステップと、PKFE1.setupを実行して擬似乱数ri’でランダム化されたマスター公開鍵mpk1iおよびマスター秘密鍵msk1iの組を生成するステップと、マスター公開鍵mpk1iを出力するステップと、を実行するプログラムである。なお、擬似ランダム関数F’は、鍵K0およびインデックス(ρ0,i)を入力として、それらに対応する擬似乱数F’(K0,(ρ0,i))を出力する。インデックス(ρ0,i)は(ρ0,i)から一義的に決まり、例えばρ0とiとのビット結合値である。さらに、PKFE2.setup(1λ)は、マスター公開鍵生成プログラムΣを識別不可能性難読化した難読化プログラムsxiO(Σ)をマスター公開鍵mpk2として得て出力し、(K0,ρ0)をマスター秘密鍵msk2として得て出力する。
mpk2:=sxiO(Σ)
msk2:=(K0,ρ0)
Setup algorithm (PKFE2.setup (1 λ)):
PKFE2. The setup (1 λ ) first obtains a key K 0 and a random bit string ρ 0 ε {0, 1} λ of the pseudo-random function F ′ by using λ as an input. The key K 0 and the random bit string ρ 0 are selected at random, for example. Next, PKFE2. setup (1 λ ) generates a master public key generation program Σ. However, PKFE2. The setup master public key generation program Σ obtains a pseudo random number r i ′ = F ′ (K 0 , (ρ 0 , i)) for the input i∈ [q], and PKFE1. a program for executing a setup to generate a set of a master public key mpk1 i and a master secret key msk1 i randomized with a pseudorandom number r i ′, and outputting a master public key mpk1 i is there. The pseudo-random function F ′ receives the key K 0 and the index (ρ 0 , i) and outputs a pseudo-random number F ′ (K 0 , (ρ 0 , i)) corresponding to them. The index (ρ 0 , i) is uniquely determined from (ρ 0 , i), and is, for example, a bit combination value of ρ 0 and i. Furthermore, PKFE2. The setup (1 λ ) obtains and outputs the obfuscated program sxiO (Σ) obtained by obfuscating the master public key generation program Σ as the master public key mpk2, and outputs (K 0 , ρ 0 ) as the master secret key. Obtained as msk2 and output.
mpk2: = sxiO (Σ)
msk2: = (K 0 , ρ 0 )
≪PKFE2.setupのマスター公開鍵生成プログラムΣ≫
Hardwired:K0, ρ0
Input:或るインデックスi∈[q]
1.ri’=F’(K0,(ρ0,i))を計算する。
2.鍵対(mpk1i,msk1i)←PKFE1.setup(1λ;ri’)を生成する。
3.マスター公開鍵mpk1iを出力する。
≪PKFE2. setup master public key generation program Σ >>
Hardwired: K 0 , ρ 0
Input: A certain index i∈ [q]
1. Calculate r i '= F' (K 0 , (ρ 0 , i)).
2. A key pair (mpk1 i , msk1 i ) ← PKFE1.setup (1 λ ; r i ′) is generated.
3. Outputs master public key mpk1 i .
鍵生成アルゴリズム(FE2.keygen(msk2,f2,i)):
FE2.keygen(msk2,f2,i)は、λ、いずれかのi∈[q]、マスター秘密鍵msk2=(K0,ρ0)、および所定の関数f2を入力とし、PKFE1.setupを実行して疑似乱数F’(K0,(ρ0,i))でランダム化されたマスター公開鍵mpk1iおよびマスター秘密鍵msk1iを得る。
(mpk1i, msk1i)←PKFE1.setup(1λ;F’(K0,(ρ0,i)))
またFE2.keygen(msk2,f2,i)は、FE1.keygenを実行してマスター秘密鍵msk1iおよび関数f2に対する秘密鍵skf2 (i)を生成する。
skf2 (i)←FE1.keygen(msk1i,f2)
さらにFE2.keygen(msk2,f2,i)は、関数f2に対する秘密鍵skf2=(skf2 (i),i)を得て出力する。
skf2:=(skf2 (i),i)
Key generation algorithm (FE2.keygen (msk2, f2, i)):
FE2. keygen (msk2, f2, i) is input with λ, one of i∈ [q], the master secret key msk2 = (K 0 , ρ 0 ), and a predetermined function f2, and PKFE1. The setup is executed to obtain the master public key mpk1 i and the master secret key msk1 i randomized by the pseudorandom number F ′ (K 0 , (ρ 0 , i)).
(mpk1 i , msk1 i ) ← PKFE1.setup (1 λ ; F '(K 0 , (ρ 0 , i)))
Also, FE2. keygen (msk2, f2, i) is FE1. Execute keygen to generate a master secret key msk1 i and a secret key sk f2 (i) for function f2.
sk f2 (i) ← FE1.keygen (msk1 i , f2)
Furthermore, FE2. The keygen (msk2, f2, i) obtains and outputs the secret key sk f2 = (sk f2 (i) , i) for the function f2.
sk f2 : = (sk f2 (i) , i)
暗号化アルゴリズム(PKFE2.enc(mpk2,m)):
PKFE2.enc(mpk2,m)は、穴開け可能擬似ランダム関数Fの鍵Kを得る。例えば、鍵Kはランダムに生成される。またPKFE2.enc(mpk2,m)は、暗号文生成プログラムη’を生成する。ただし、PKFE2.encの暗号文生成プログラムη’は、入力されたi∈[q]について難読化プログラムsxiO(Σ)を実行してマスター公開鍵mpk1iを得るステップと、入力されたi∈[q]について擬似乱数ri=F(K,i)を生成するステップと、マスター公開鍵mpk1i、メッセージm、および擬似乱数riを入力としてPKFE1.encを実行して擬似乱数riでランダム化された暗号文cti(ただし、ctiはメッセージmの暗号文)を得るステップと、を実行するプログラムである。難読化の「機能性」より、或るi∈[q]について難読化プログラムsxiO(Σ)を実行して得られる値sxiO(Σ)(i)は、このi∈[q]についてマスター公開鍵生成プログラムΣを実行して得られる値Σ(i)に等しい。さらにPKFE2.enc(mpk2,m)は、暗号文生成プログラムη’を識別不可能性難読化した難読化プログラムct=sxiO(η’)を得て出力する。
Encryption algorithm (PKFE2.enc (mpk2, m)):
PKFE2. enc (mpk2, m) obtains the key K of the puncturable pseudorandom function F. For example, the key K is randomly generated. Also, PKFE2. enc (mpk2, m) generates a ciphertext generation program η ′. However, PKFE2. The enc ciphertext generation program η ′ executes the obfuscation program sxiO (Σ) for the input i∈ [q] to obtain the master public key mpk1 i , and the pseudo for the input i∈ [q]. A step of generating a random number r i = F (K, i), a master public key mpk1 i , a message m, and a pseudo-random number r i as inputs, executing enc to obtain a ciphertext ct i randomized with a pseudo-random number r i (where ct i is a ciphertext of the message m). From the “functionality” of obfuscation, the value sxiO (Σ) (i) obtained by executing the obfuscation program sxiO (Σ) for a certain i∈ [q] is the master public key for this i∈ [q]. It is equal to the value Σ (i) obtained by executing the generation program Σ. Furthermore, PKFE2. enc (mpk2, m) obtains and outputs an obfuscated program ct = sxiO (η ′) obtained by obfuscating the ciphertext generation program η ′.
≪PKFE2.encの暗号文生成プログラムη’≫
Hardwired:K, m, mpk2=sxiO(Σ)
Input:或るインデックスi∈[q]
1.mpk1i←sxiO(Σ)(i)
2.ri=F(K,i)を計算する。
3.暗号文cti←PKFE1.enc(mpk1i,m;ri)を生成する。
4.暗号文ctiを出力する。
≪PKFE2. enc's ciphertext generation program η '>>
Hardwired: K, m, mpk2 = sxiO (Σ)
Input: An index i∈ [q]
1. mpk1 i ← sxiO (Σ) (i)
2. Calculate r i = F (K, i).
3. Ciphertext ct i <-PKFE1.enc (mpk1 i , m; r i ) is generated.
4). Output ciphertext ct i .
復号アルゴリズム(FE2.dec(skf2,ct)):
FE2.dec(skf2,ct)は、秘密鍵skf2=(skf2 (i),i)および難読化プログラムctを入力とし、秘密鍵skf2から取り出したi∈[q]について暗号文ctiを得る。難読化の「機能性」により難読化プログラムctにiを入力することで、暗号文生成プログラムη’のiに対する出力である暗号文ctiが得られる。
cti←ct(i)
またFE2.dec(skf2,ct)は、秘密鍵skf2から取り出した秘密鍵skf2 (i)および得られた暗号文ctiを入力としてFE1.decを実行して復元値m’を得て出力する。
m’←FE1.dec(skf2 (i),cti)
Decoding algorithm (FE2.dec (sk f2 , ct)):
FE2. dec (sk f2 , ct) receives the secret key sk f2 = (sk f2 (i) , i) and the obfuscation program ct, and inputs the ciphertext ct i for i∈ [q] extracted from the secret key sk f2. obtain. By inputting i to the obfuscated program ct by the “functionality” of obfuscation, the ciphertext ct i that is the output of the ciphertext generation program η ′ for i is obtained.
ct i ← ct (i)
Also, FE2. dec (sk f2, ct) is, FE1 as input the secret key sk f2 (i) and the resulting ciphertext ct i extracted from the secret key sk f2. Dec is executed to obtain and output a restoration value m ′.
m '← FE1.dec (sk f2 (i) , ct i )
<q−key結託簡素性秘密鍵関数型暗号(q-key collusion-succinctness SKFE)(I)>
1−key秘密鍵関数型暗号である第1関数型暗号とγ−SXIOとを用い、以下のようにq−key結託簡素性秘密鍵関数型暗号である第2関数型暗号(SKFE2.setup, FE2.keygen, SKFE2.enc, FE2.dec)を構成する。
ただし、qが1以上の整数(例えば、qは2以上の整数)であり、SKFE1.setupが、マスター秘密鍵msk1を生成する第1関数型暗号のセットアップアルゴリズムであり、FE1.keygenが、マスター秘密鍵msk1および所定の関数f1を入力とし、関数f1に対する秘密鍵skf1を生成する第1関数型暗号の鍵生成アルゴリズムであり、SKFE1.encが、マスター秘密鍵msk1およびメッセージmを入力とし、メッセージmの暗号文c1を生成する第1関数型暗号の暗号化アルゴリズムであり、FE1.decが、秘密鍵skf1および暗号文c1を入力とし、メッセージmの関数値f1(m)を生成する第1関数型暗号の復号アルゴリズムである。参考文献2には、一方向性関数からr−key秘密鍵関数型暗号を構成する方法が開示されている。r−key秘密鍵関数型暗号は1−key秘密鍵関数型暗号でもあるため、参考文献2で得られるr−key秘密鍵関数型暗号を第1秘密型暗号として用いることができる。
<Q-key collusion-succinctness SKFE (I)>
Using the first function type cipher that is a 1-key secret key function type cipher and γ-SXIO, the second function type cipher (SKFE2.setup, FE2.keygen, SKFE2.enc, FE2.dec).
However, q is an integer greater than or equal to 1 (for example, q is an integer greater than or equal to 2), and SKFE1. setup is the first functional encryption setup algorithm for generating the master secret key msk1, FE1. keygen is a key generation algorithm of a first functional encryption that receives a master secret key msk1 and a predetermined function f1 as input and generates a secret key sk f1 for the function f1, SKFE1. enc is a first functional encryption algorithm that receives the master secret key msk1 and the message m and generates the ciphertext c1 of the message m, and includes FE1. Dec is a decryption algorithm of the first functional encryption that receives the secret key sk f1 and the ciphertext c1 and generates the function value f1 (m) of the message m. Reference 2 discloses a method of constructing an r-key secret key function type encryption from a one-way function. Since the r-key secret key function type cipher is also a 1-key secret key function type cipher, the r-key secret key function type cipher obtained in Reference 2 can be used as the first secret type cipher.
セットアップアルゴリズム(SKFE2.setup(1λ)):
SKFE2.setup(1λ)は、λを入力とし、各i∈[q]についてSKFE1.setupを実行してマスター秘密鍵msk1iの組を生成する。すなわち、SKFE2.setupは、q個のmsk1i(ただし、i∈[q]であり、[q]は{1,2,…,q}を意味する)を生成する。
msk1i←SKFE1.setup(1λ) for i∈[q]
ただし、λは正整数のセキュリティパラメータであり、SKFE1.setupは、各i∈[q]についてランダム化したmsk1iを得る。SKFE2.setupは、各i∈[q]について得られたmsk1iから、マスター秘密鍵msk2=(msk11,…,msk1q)を得て出力する。
Setup algorithm (SKFE2.setup (1 λ)):
SKFE2. setup (1 λ ) takes λ as an input, and for each i∈ [q], SKFE1. Execute setup to generate a set of master secret keys msk1 i . That is, SKFE2. setup generates q msk1 i (where i∈ [q], [q] means {1, 2,..., q}).
msk1 i ← SKFE1.setup (1 λ ) for i∈ [q]
Where λ is a positive integer security parameter and SKFE1. setup obtains a random msk1 i for each iε [q]. SKFE2. The setup obtains and outputs the master secret key msk2 = (msk1 1 ,..., msk1 q ) from msk1 i obtained for each i∈ [q].
鍵生成アルゴリズム(FE2.keygen(msk2,f2,i)):
FE2.keygen(msk2,f2,i)は、いずれかのi∈[q]、マスター秘密鍵msk2、および所定の関数f2を入力としてFE1.keygenを実行して関数f2に対する秘密鍵skf2 (i)を生成し、関数f2に対する秘密鍵skf2=(skf2 (i),i)を得て出力する。
skf2 (i)←FE1.keygen(msk1i,f2)
Key generation algorithm (FE2.keygen (msk2, f2, i)):
FE2. keygen (msk2, f2, i) is input to FE1... FE1... with any iε [q], master secret key msk2, and a predetermined function f2. The keygen is executed to generate the secret key sk f2 (i) for the function f2, and the secret key sk f2 = (sk f2 (i) , i) for the function f2 is obtained and output.
sk f2 (i) ← FE1.keygen (msk1 i , f2)
暗号化アルゴリズム(SKFE2.enc(msk2,m)):
SKFE2.enc(msk2,m)は、穴開け可能擬似ランダム関数Fの鍵Kを生成し、暗号文生成プログラムμを生成し、当該暗号文生成プログラムμを識別不可能性難読化した難読化プログラムct=sxiO(μ)を得る。ただし、SKFE2.encの暗号文生成プログラムμは、入力されたi∈[q]について擬似乱数riを生成するステップと、マスター秘密鍵msk1i、メッセージm、および擬似乱数riを入力としてSKFE1.encを実行して擬似乱数riでランダム化された暗号文ctiを得るステップと、を実行するプログラムである。なお、穴開け可能擬似ランダム関数Fは、鍵Kおよびインデックスiを入力として、それらに対応する擬似乱数F(K,i)を出力する。
≪SKFE2.encの暗号文生成プログラムμ≫
Hardwired:K, m, msk11,…,msk1q
Input:或るインデックスi∈[q]
1.ri=F(K,i)を計算する。
2.暗号文cti←SKFE1.enc(msk1i,m;ri)を生成する。
3.暗号文ctiを出力する。
また、難読化プログラムct=sxiO(μ)は、当該暗号文生成プログラムμをγ−SXIOで識別不可能性難読化したものである。
Encryption algorithm (SKFE2.enc (msk2, m)):
SKFE2. enc (msk2, m) generates a key K of the puncturable pseudorandom function F, generates a ciphertext generation program μ, and obfuscates the program ct = Obtain sxiO (μ). However, SKFE2. SKFE1 enc ciphertext generator μ of the steps of generating a pseudo-random number r i for the inputted i ∈ [q], the master secret key MSK1 i, message m, and a pseudo-random number r i as input. executing enc to obtain a ciphertext ct i randomized with a pseudo-random number r i . The punchable pseudo random function F receives the key K and the index i and outputs a pseudo random number F (K, i) corresponding to them.
≪SKFE2. enc's ciphertext generation program μ >>
Hardwired: K, m, msk1 1 ,…, msk1 q
Input: A certain index i∈ [q]
1. Calculate r i = F (K, i).
2. Cipher text ct i ← SKFE1.enc (msk1 i , m; r i ) is generated.
3. Output ciphertext ct i .
The obfuscated program ct = sxiO (μ) is obtained by obfuscating the ciphertext generation program μ with γ-SXIO.
復号アルゴリズム(FE2.dec(skf2,ct)):
FE2.dec(skf2,ct)は、秘密鍵skf2=(skf2 (i),i)および難読化プログラムct=sxiO(μ)を入力とし、秘密鍵skf2から取り出したi∈[q]をct=sxiO(μ)に入力してct=sxiO(μ)を実行することで暗号文ctiを得る。さらにFE2.dec(skf2,ct)は、秘密鍵skf2から取り出した秘密鍵skf2 (i)および得られた暗号文ctiを入力としてFE1.decを実行して復元値m’を得て出力する。
m’←FE1.dec(skf2 (i),cti)
正しく復号が行われた場合にはm’=f2(m)となる。
Decoding algorithm (FE2.dec (sk f2 , ct)):
FE2. dec (sk f2 , ct) receives the secret key sk f2 = (sk f2 (i) , i) and the obfuscated program ct = sxiO (μ) as input, and i∈ [q] extracted from the secret key sk f2 The ciphertext ct i is obtained by inputting ct = sxiO (μ) and executing ct = sxiO (μ). Furthermore, FE2. dec (sk f2, ct) is, FE1 as input the secret key sk f2 (i) and the resulting ciphertext ct i extracted from the secret key sk f2. Dec is executed to obtain and output a restoration value m ′.
m '← FE1.dec (sk f2 (i) , ct i )
When decoding is performed correctly, m ′ = f2 (m).
<q−key結託簡素性秘密鍵関数型暗号 (II)>
q−key結託簡素性秘密鍵関数型暗号の他の構成を示す。1−key秘密鍵関数型暗号である第1関数型暗号とγ−SXIOとを用い、以下のようにq−key結託簡素性秘密鍵関数型暗号である第2関数型暗号(SKFE2.setup, FE2.keygen, SKFE2.enc, FE2.dec)を構成する。
<Q-key collusion simplicity secret key function type encryption (II)>
The other structure of q-key collusion simplicity secret key function type | mold encryption is shown. Using the first function type cipher that is a 1-key secret key function type cipher and γ-SXIO, the second function type cipher (SKFE2.setup, FE2.keygen, SKFE2.enc, FE2.dec).
セットアップアルゴリズム(SKFE2.setup(1λ)):
SKFE2.setup(1λ)は、まず、λを入力とし、擬似ランダム関数F’の鍵K0とランダムビット列ρ0∈{0,1}λを得る。鍵K0およびランダムビット列ρ0は、例えば、ランダムに選択される。SKFE2.setup(1λ)は、マスター秘密鍵msk2=(K0,ρ0)を得て出力する。
Setup algorithm (SKFE2.setup (1 λ)):
SKFE2. The setup (1 λ ) first receives λ, and obtains a key K 0 and a random bit string ρ 0 ε {0, 1} λ of the pseudo-random function F ′. The key K 0 and the random bit string ρ 0 are selected at random, for example. SKFE2. The setup (1 λ ) obtains and outputs the master secret key msk2 = (K 0 , ρ 0 ).
鍵生成アルゴリズム(FE2.keygen(msk2,f2,i)):
FE2.keygen(msk2,f2,i)は、λ、いずれかのi∈[q]、マスター秘密鍵msk2=(K0,ρ0)、および所定の関数f2を入力とし、以下の処理を実行する。
FE2.keygen(msk2,f2,i)は、鍵K0およびインデックス(ρ0,i)を入力として擬似乱数F’(K0,(ρ0,i))を得、SKFE1.setupを実行して疑似乱数F’(K0,(ρ0,i))でランダム化されたマスター秘密鍵msk1iを得る。
msk1i←SKFE1.setup(1λ;F’(K0,(ρ0,i)))
次にFE2.keygen(msk2,f2,i)は、FE1.keygenを実行してマスター秘密鍵msk1iおよび関数f2に対する秘密鍵skf2 (i)を生成する。
skf2 (i)←FE1.keygen(msk1i,f2)
FE2.keygen(msk2,f2,i)は、関数f2に対する秘密鍵skf2=(skf2 (i),i)を得て出力する。
skf2:=(skf2 (i),i)
Key generation algorithm (FE2.keygen (msk2, f2, i)):
FE2. The keygen (msk2, f2, i) receives λ, one of i∈ [q], the master secret key msk2 = (K 0 , ρ 0 ), and a predetermined function f2, and executes the following processing.
FE2. keygen (msk2, f2, i) receives a key K 0 and an index (ρ 0 , i) as input and obtains a pseudo random number F ′ (K 0 , (ρ 0 , i)), and SKFE1. The setup is executed to obtain the master secret key msk1 i randomized with the pseudo random number F ′ (K 0 , (ρ 0 , i)).
msk1 i ← SKFE1.setup (1 λ ; F '(K 0 , (ρ 0 , i)))
Next, FE2. keygen (msk2, f2, i) is FE1. Execute keygen to generate a master secret key msk1 i and a secret key sk f2 (i) for function f2.
sk f2 (i) ← FE1.keygen (msk1 i , f2)
FE2. The keygen (msk2, f2, i) obtains and outputs the secret key sk f2 = (sk f2 (i) , i) for the function f2.
sk f2 : = (sk f2 (i) , i)
暗号化アルゴリズム(SKFE2.enc(msk2,m)):
SKFE2.enc(msk2,m)は、穴開け可能擬似ランダム関数Fの鍵Kを得る。例えば、鍵Kはランダムに生成される。またSKFE2.enc(msk2,m)は、暗号文生成プログラムμ’を得る。ただし、SKFE2.encの暗号文生成プログラムμ’は、マスター秘密鍵msk2=(K0,ρ0)およびi∈[q]を入力とし、入力されたi∈[q]についてSKFE1.setupを実行して疑似乱数F’(K0,(ρ0,i))でランダム化されたマスター秘密鍵msk1iを得るステップと、擬似乱数ri=F(K,i)を生成するステップと、マスター秘密鍵msk1i、メッセージm、および擬似乱数riを入力としてSKFE1.encを実行して擬似乱数riでランダム化された暗号文cti(ただし、ctiはメッセージmの暗号文)を得るステップと、を実行するプログラムである。
Encryption algorithm (SKFE2.enc (msk2, m)):
SKFE2. enc (msk2, m) obtains the key K of the puncturable pseudorandom function F. For example, the key K is randomly generated. Also, SKFE2. enc (msk2, m) obtains the ciphertext generation program μ ′. However, SKFE2. enc's ciphertext generation program μ ′ receives the master secret key msk2 = (K 0 , ρ 0 ) and i∈ [q] and inputs SKFE1. executing setup and obtaining a master secret key msk1 i randomized with a pseudorandom number F ′ (K 0 , (ρ 0 , i)), and generating a pseudorandom number r i = F (K, i) And the master secret key msk1 i , the message m, and the pseudorandom number r i as inputs. executing enc to obtain a ciphertext ct i randomized with a pseudo-random number r i (where ct i is a ciphertext of the message m).
≪SKFE2.encの暗号文生成プログラムμ’≫
Hardwired:K, m, K0,ρ0
Input:或るインデックスi∈[q]
1.msk1i←SKFE1.setup(1λ;F’(K0,(ρ0,i)))
2.ri=F(K,i)を計算する。
3.暗号文cti←SKFE1.enc(msk1i,m;ri)を生成する。
4.暗号文ctiを出力する。
≪SKFE2. enc's ciphertext generation program μ '>>
Hardwired: K, m, K 0 , ρ 0
Input: A certain index i∈ [q]
1. msk1 i ← SKFE1.setup (1 λ ; F '(K 0 , (ρ 0 , i)))
2. Calculate r i = F (K, i).
3. Cipher text ct i ← SKFE1.enc (msk1 i , m; r i ) is generated.
4). Output ciphertext ct i .
さらにSKFE2.enc(msk2,m)は、暗号文生成プログラムμ’を識別不可能性難読化した難読化プログラムct=sxiO(μ’)を得て出力する。
ct:=sxiO(μ’)
Furthermore, SKFE2. enc (msk2, m) obtains and outputs an obfuscated program ct = sxiO (μ ′) obtained by obfuscating the ciphertext generation program μ ′.
ct: = sxiO (μ ')
復号アルゴリズム(FE2.dec(skf2,ct)):
FE2.dec(skf2,ct)は、秘密鍵skf2=(skf2 (i),i)および難読化プログラムctを入力とし、以下の処理を実行する。
まずFE2.dec(skf2,ct)は、秘密鍵skf2から取り出したi∈[q]について暗号文ctiを得る。難読化の「機能性」により難読化プログラムctにiを入力することで、暗号文生成プログラムμ’のiに対する出力である暗号文ctiが得られる。
cti←ct(i)
またFE2.dec(skf2,ct)は、秘密鍵skf2から取り出した秘密鍵skf2 (i)および得られた暗号文ctiを入力としてFE1.decを実行して復元値m’を得て出力する。
m’←FE1.dec(skf2 (i),cti)
Decoding algorithm (FE2.dec (sk f2 , ct)):
FE2. Dec (sk f2 , ct) receives the secret key sk f2 = (sk f2 (i) , i) and the obfuscation program ct, and executes the following processing.
First, FE2. dec (sk f2 , ct) obtains ciphertext ct i for i∈ [q] extracted from the secret key sk f2 . By inputting i to the obfuscated program ct due to the obfuscation “functionality”, the ciphertext ct i that is the output of the ciphertext generation program μ ′ for i is obtained.
ct i ← ct (i)
Also, FE2. dec (sk f2, ct) is, FE1 as input the secret key sk f2 (i) and the resulting ciphertext ct i extracted from the secret key sk f2. Dec is executed to obtain and output a restoration value m ′.
m '← FE1.dec (sk f2 (i) , ct i )
<q−key結託簡素性>
上述した暗号化アルゴリズム(PKFE2.encおよびSKFE2.enc)は、各i∈[q]に対する暗号文を生成するのではなく、iに対する暗号文を生成する暗号文生成プログラムηまたはμをγ−SXIOで難読化した難読化プログラムct=sxiO(η)またはct=sxiO(μ)を生成する。前述したSXIOの性質より、当該暗号化アルゴリズムによって記述される暗号化回路のサイズはpoly(λ,|μ|)・2nγとなる。ここで難読化プログラムctへの入力値であるi∈[q]の総数はq=2nであるため、当該サイズはpoly(λ,|μ|)・qγと記述できる。また、γは0<γ<1を満たし、εは0<ε<1を満たすため、γ=1−εと置くことができ、当該暗号化アルゴリズムでの|μ|は|f|およびmの長さLに依存するため、q−key結託簡素性の要件を満たす。よって、上述のように構成される暗号方式は、q−key結託簡素性公開鍵関数型暗号およびq−key結託簡素性秘密鍵関数型暗号となる。このようなq−key結託簡素性方式の関数型暗号を識別不可能性難読化に用いることにより、識別不可能性難読化に必要な演算コストや記憶容量を削減できる。
<Q-key collusion simplicity>
The encryption algorithms (PKFE2.enc and SKFE2.enc) described above do not generate a ciphertext for each i∈ [q], but instead generate a ciphertext generation program η or μ that generates a ciphertext for i γ-SXIO. The obfuscated program ct = sxiO (η) or ct = sxiO (μ) obfuscated in (1) is generated. Due to the above-described property of SXIO, the size of the encryption circuit described by the encryption algorithm is poly (λ, | μ |) · 2nγ . Here, since the total number of iε [q] that are input values to the obfuscated program ct is q = 2n , the size can be described as poly (λ, | μ |) · q γ . Also, since γ satisfies 0 <γ <1 and ε satisfies 0 <ε <1, it can be set as γ = 1−ε, and | μ | in the encryption algorithm is | f | Since it depends on the length L, it satisfies the requirement of q-key collusion simplicity. Therefore, the encryption schemes configured as described above are q-key collusion simplicity public key function type encryption and q-key collusion simplicity secret key function type encryption. By using such a functional encryption of the q-key collusion simplicity method for indistinguishability obfuscation, the calculation cost and storage capacity required for indistinguishability obfuscation can be reduced.
<1−key完全簡素性公開鍵関数型暗号(1-key succinct PKFE)>
上述したq−key結託簡素性公開鍵関数型暗号を利用することで、以下のように1−key完全簡素性公開鍵関数型暗号を構成できる。
PK−1.前述のように参考文献2には、公開鍵暗号からr−key公開鍵関数型暗号を構成する方法が開示されている。
PK−2.前述したように、r−key公開鍵関数型暗号を1−key公開鍵関数型暗号(第1関数型暗号)として用い、さらにγ−SXIOを用いることでq−key結託簡素性公開鍵関数型暗号(第2関数型暗号)を構成できる。
PK−3.非特許文献3,4には、q−key結託簡素性公開鍵関数型暗号を用い、1−key完全簡素性公開鍵関数型暗号(第3関数型暗号)を構成する方法が開示されている。
<1-key succinct PKFE (1-key succinct PKFE)>
By using the q-key collusion simple public key function type encryption described above, the 1-key complete simplicity public key function type encryption can be configured as follows.
PK-1. As described above, Reference 2 discloses a method of constructing r-key public key function type encryption from public key encryption.
PK-2. As described above, the q-key collusion simplicity public key function type is obtained by using the r-key public key function type cipher as the 1-key public key function type cipher (first function type cipher) and further using γ-SXIO. A cipher (second functional cipher) can be configured.
PK-3.
これらにより、公開鍵暗号を用いて構成されるr−key公開鍵関数型暗号を「第1関数型暗号」とし、以下のような1−key完全簡素性公開鍵関数型暗号(1−key完全簡素性を持つ第3関数型暗号)を構成できる。
セットアップアルゴリズム(PKFE3.setup):
PKFE3.setupは、PKFE2.setupを用い、1−key完全簡素性公開鍵関数型暗号のマスター公開鍵mpk3およびマスター秘密鍵msk3を生成して出力する。
鍵生成アルゴリズム(FE3.keygen):
FE3.keygenは、マスター秘密鍵msk3および所定の関数f3を入力とし、FE2.keygenを用い、1−key完全簡素性公開鍵関数型暗号の秘密鍵skf3(関数f3に対する秘密鍵skf3)を生成して出力する。
暗号化アルゴリズム(PKFE3.enc):
PKFE3.encは、マスター公開鍵mpk3およびメッセージmを入力とし、PKFE2.encを用い、1−key完全簡素性公開鍵関数型暗号に則って、メッセージmの暗号文c3を生成して出力する。
復号アルゴリズム(FE3.dec):
FE3.decは、秘密鍵skf3および暗号文c3を入力とし、FE2.decを用い、1−key完全簡素性公開鍵関数型暗号に則って、メッセージmの関数値f3(m)を生成して出力する。
As a result, the r-key public key function type cipher configured using the public key cipher is referred to as “first function type cipher”, and the following 1-key complete simplicity public key function type cipher (1-key complete cipher) 3rd functional encryption with simplicity) can be constructed.
Setup algorithm (PKFE3.setup):
PKFE3. setup is PKFE2. Using setup, a master public key mpk3 and a master secret key msk3 of 1-key complete simplicity public key function type encryption are generated and output.
Key generation algorithm (FE3.keygen):
FE3. The keygen receives the master secret key msk3 and a predetermined function f3, and inputs FE2. Using keygen, a secret key sk f3 (secret key sk f3 for function f3 ) of 1-key complete simplicity public key function type encryption is generated and output.
Encryption algorithm (PKFE3.enc):
PKFE3. enc receives the master public key mpk3 and the message m and inputs PKFE2. Using enc, the ciphertext c3 of the message m is generated and output in accordance with the 1-key complete simplicity public key function type encryption.
Decoding algorithm (FE3.dec):
FE3. dec receives the private key sk f3 and the ciphertext c3, and inputs FE2. Dec is used to generate and output a function value f3 (m) of the message m in accordance with the 1-key complete simplicity public key function type encryption.
<識別不可能性難読化器>
前述のように、公知の1−key完全簡素性秘密鍵関数型暗号を用いてγ−SXIOを構成できる(非特許文献5参照)。また非特許文献2,3には、1−key完全簡素性公開鍵関数型暗号を用いて識別不可能性難読化器が構成できることが記載されている。よって、上述のように構成される1−key完全簡素性公開鍵関数型暗号(1−key完全簡素性を持つ第3関数型暗号)を用いて識別不可能性難読化器が構成できる。さらに、上記のPK−1〜3より、公開鍵暗号とγ−SXIOから識別不可能性難読化器が構成できる。つまり、総合すると1−key完全簡素性秘密鍵関数型暗号と公開鍵暗号とから識別不可能性難読化器が構成できる(公開鍵暗号は自明に一方向性関数を含意する)。
<Indistinguishability obfuscator>
As described above, γ-SXIO can be configured using a known 1-key complete simplicity secret key function type encryption (see Non-Patent Document 5).
公開鍵関数型暗号は秘密鍵関数型暗号よりも強い安全仮定を満たす必要があり(公開鍵関数型暗号は自明に秘密鍵関数型暗号に変換できる)、秘密鍵関数型暗号のほうが公開鍵関数型暗号よりも要求条件が低く扱いやすい。そのため、公開鍵関数型暗号よりも秘密鍵関数型暗号を利用して識別不可能性難読化器を構成するほうが望ましい。また、鍵の発行回数が1回の場合には安全性が保たれる1-key方式は、鍵の発行回数にかかわらず安全性が保たれるunbounded-key方式の暗号方式よりも要求条件が低く扱いやすい。そのため、1-key方式を利用するほうが望ましい。さらに完全簡素性方式は、暗号化回路のサイズが関数fのサイズに依存しないため、演算コストや記憶容量を削減できる。よって、完全簡素性方式を利用するほうが望ましい。また、標準的な公開鍵暗号は広く構成方法が知られているもっとも標準的な暗号機能の1つであり、要求条件としては十分低い。本形態では、1−key完全簡素性秘密鍵関数型暗号と公開鍵暗号とから識別不可能性難読化器が構成できるため、従来よりも弱い暗号仮定から識別不可能性難読化器を構成できるといえる。 Public key function type ciphers must satisfy stronger security assumptions than secret key function type ciphers (public key function type ciphers can be converted to secret key function type ciphers), and private key function type ciphers are more public key functions. The requirements are lower and easier to handle than type encryption. For this reason, it is desirable to configure an indistinguishability obfuscation device using secret key function type encryption rather than public key function type encryption. In addition, the 1-key method, which maintains security when the number of key issuance times is 1, has more requirements than the unbounded-key encryption method, which maintains security regardless of the number of key issuances. Low and easy to handle. Therefore, it is preferable to use the 1-key method. Furthermore, since the size of the encryption circuit does not depend on the size of the function f, the complete simplicity method can reduce the calculation cost and the storage capacity. Therefore, it is preferable to use the complete simplicity method. Standard public key cryptography is one of the most standard cryptographic functions whose configuration methods are widely known, and is sufficiently low as a requirement. In this embodiment, an indistinguishability obfuscator can be constructed from 1-key complete simplicity secret key function cipher and public key cipher, so an indistinguishability obfusator can be constructed from weaker cryptographic assumptions than in the past. It can be said.
<1−key完全簡素性秘密鍵関数型暗号(1-key succinct SKFE)>
加えて、上述したq−key結託簡素性秘密鍵関数型暗号を利用することで、以下のように1−key完全簡素性秘密鍵関数型暗号を構成できる。
SK−1.前述のように参考文献2には、一方向性関数からr−key秘密鍵関数型暗号を構成する方法が開示されている。
SK−2.前述したように、r−key秘密鍵関数型暗号を1−key秘密鍵関数型暗号(第1関数型暗号)として用い、さらにγ−SXIOを用いることでq−key結託簡素性秘密鍵関数型暗号(第2関数型暗号)を構成できる。
SK−3.非特許文献3,4には、q−key結託簡素性秘密鍵関数型暗号を用い、1−key完全簡素性秘密鍵関数型暗号(第3関数型暗号)を構成する方法が開示されている。
<1-key succinct SKFE (1-key succinct SKFE)>
In addition, by using the q-key collusion simple secret key function type encryption described above, a 1-key complete simplicity secret key function type encryption can be configured as follows.
SK-1. As described above, Reference 2 discloses a method of constructing an r-key secret key function type encryption from a one-way function.
SK-2. As described above, the r-key secret key function type cipher is used as the 1-key secret key function type cipher (first function type cipher), and the γ-SXIO is used to make the q-key collusion simple secret key function type. A cipher (second functional cipher) can be configured.
SK-3.
これらにより、一方向性関数を用いて構成されるr−key秘密鍵関数型暗号を「第1関数型暗号」とし、以下のような1−key完全簡素性秘密鍵関数型暗号(1−key完全簡素性を持つ第3関数型暗号)を構成できる。
セットアップアルゴリズム(SKFE3.setup):
SKFE3.setupは、SKFE2.setupを用い、1−key完全簡素性秘密鍵関数型暗号のマスター秘密鍵msk3を生成して出力する。
鍵生成アルゴリズム(FE3.keygen):
FE3.keygenは、マスター秘密鍵msk3および所定の関数f3を入力とし、FE2.keygenを用い、1−key完全簡素性秘密鍵関数型暗号の秘密鍵skf3(関数f3に対する秘密鍵skf3)を生成して出力する。
暗号化アルゴリズム(SKFE3.enc):
SKFE3.encは、マスター秘密鍵msk3およびメッセージmを入力とし、SKFE2.encを用い、1−key完全簡素性秘密鍵関数型暗号に則って、メッセージmの暗号文c3を生成して出力する。
復号アルゴリズム(FE3.dec):
FE3.decは、秘密鍵skf3および暗号文c3を入力とし、FE2.decを用い、1−key完全簡素性秘密鍵関数型暗号に則って、メッセージmの関数値f3(m)を生成して出力する。
As a result, the r-key secret key function cipher configured using the one-way function is referred to as “first function cipher”, and the following 1-key complete simplicity secret key function cipher (1-key) A third functional encryption with complete simplicity) can be constructed.
Setup algorithm (SKFE3.setup):
SKFE3. setup is SKFE2. Using setup, a master secret key msk3 of 1-key complete simplicity secret key function type encryption is generated and output.
Key generation algorithm (FE3.keygen):
FE3. The keygen receives the master secret key msk3 and a predetermined function f3, and inputs FE2. Using keygen, a secret key sk f3 (secret key sk f3 for function f3 ) of 1-key complete simplicity secret key function type encryption is generated and output.
Encryption algorithm (SKFE3.enc):
SKFE3. enc receives the master secret key msk3 and the message m, and inputs SKFE2. Using enc, the ciphertext c3 of the message m is generated and output in accordance with the 1-key complete simplicity secret key function type encryption.
Decoding algorithm (FE3.dec):
FE3. dec receives the private key sk f3 and the ciphertext c3, and inputs FE2. Dec is used to generate and output a function value f3 (m) of the message m in accordance with the 1-key complete simplicity secret key function type encryption.
[第1実施形態]
図面を用いて本発明の第1実施形態を説明する。
本形態は、前述した<q−key結託簡素性公開鍵関数型暗号(I)>の具体例である。
<構成>
図1に例示するように、本形態の暗号システム1は、セットアップ装置11、鍵生成装置12、暗号化装置13、および復号装置14を有する。セットアップ装置11は、例えば、メモリ111、マスター鍵生成部112、および通信部113を有する。鍵生成装置12は、例えば、メモリ121、疑似乱数生成部122、秘密鍵生成部123、および通信部124を有する。暗号化装置13は、例えば、メモリ131、疑似乱数生成部132、疑似乱数鍵生成部133、プログラム生成部134、難読化部135、および通信部136を有する。復号装置14は、例えば、メモリ141、暗号文生成部142、復号部143、および通信部144を有する。
[First Embodiment]
A first embodiment of the present invention will be described with reference to the drawings.
This embodiment is a specific example of <q-key collusion simplicity public key function encryption (I)> described above.
<Configuration>
As illustrated in FIG. 1, the
セットアップ装置11、鍵生成装置12、暗号化装置13、および復号装置14は、入力情報、演算過程で保存する必要がある情報、演算結果の情報をメモリ111,121,131,141にそれぞれ格納し、必要に応じて読み出して利用する。また、セットアップ装置11、鍵生成装置12、暗号化装置13、および復号装置14は、それぞれ通信部113,124,136,144によって情報の送受信を行う。各装置から送信された情報は、例えばネットワークを通じて他の装置に送信される。
The
セットアップ装置11、鍵生成装置12、暗号化装置13、および復号装置14のそれぞれは、例えば、通信装置、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)、およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される装置である。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
Each of the
なお、図1では、セットアップ装置11、鍵生成装置12、暗号化装置13、および復号装置14を1個ずつ例示するが、これらの少なくとも一部の装置が複数個存在していてもよい。
1 illustrates one
<処理>
次に本形態の処理を説明する。
≪セットアップアルゴリズム(PKFE2.setup(1λ))の実行処理≫
セットアップ装置11のマスター鍵生成部112は、各i∈[q]についてPKFE1.setupを実行してマスター公開鍵mpk1iおよびマスター秘密鍵msk1iの組を生成し、生成されたq対の(mpk1i,msk1i)(ただし、i∈[q])をメモリ111に格納する。ただし、(mpk1i,msk1i)はi∈[q]ごとに生成された疑似乱数によってランダム化されている。マスター鍵生成部112は、各i∈[q]について得られた(mpk1i,msk1i)から、マスター公開鍵mpk2=(mpk11,…,mpk1q)およびマスター秘密鍵msk2=(msk11,…,msk1q)を生成してメモリ111に格納する。通信部113は、マスター公開鍵mpk2を暗号化装置13に送信し、マスター秘密鍵msk2を鍵生成装置12に送信する。
<Processing>
Next, the processing of this embodiment will be described.
«Execution process of the setup algorithm (PKFE2.setup (1 λ))»
The master
≪鍵生成アルゴリズム(FE2.keygen(msk2,f2,i))の実行処理≫
鍵生成装置12の通信部124には、復号装置14から送信されたいずれかのi∈[q]および所定の関数f2、ならびにマスター秘密鍵msk2が入力される。これらはメモリ121に格納される。疑似乱数生成部122は疑似乱数を生成して出力する。秘密鍵生成部123は、通信部124に入力されたi∈[q]、関数f2、マスター秘密鍵msk2、および疑似乱数生成部122で生成された疑似乱数を入力とし、FE1.keygenを実行して関数f2に対する秘密鍵skf2 (i)を生成し、関数f2に対する秘密鍵skf2=(skf2 (i),i)を得てメモリ121に格納する。なお、秘密鍵skf2 (i)は当該疑似乱数によってランダム化されている。通信部124は、秘密鍵skf2を復号装置14に送信する。
<< Execution Process of Key Generation Algorithm (FE2.keygen (msk2, f2, i)) >>
Any iε [q], a predetermined function f2, and a master secret key msk2 transmitted from the
≪暗号化アルゴリズム(PKFE2.enc(mpk2,m))の実行処理≫
暗号化装置13の通信部136にはマスター公開鍵mpk2が入力され、このマスター公開鍵mpk2はメモリ131に格納される。疑似乱数生成部132は、疑似乱数を生成して疑似乱数鍵生成部133に送る。疑似乱数鍵生成部133は、送られた疑似乱数を用いて穴開け可能擬似ランダム関数Fの鍵Kを生成してメモリ131に格納する。鍵Kはこの疑似乱数によってランダム化されている。プログラム生成部134は、メッセージm、マスター公開鍵mpk2、および鍵Kを入力とし、前述したPKFE2.encの暗号文生成プログラムηを生成してメモリ121に格納する。難読化部135は、当該暗号文生成プログラムηをγ−SXIOで識別不可能性難読化した難読化プログラムct=sxiO(η)を生成してメモリ121に格納する。通信部136は、当該難読化プログラムctを復号装置14に送信する。
≪Encryption algorithm (PKFE2.enc (mpk2, m)) execution process≫
The master public key mpk2 is input to the
≪復号アルゴリズム(FE2.dec(skf2,ct))の実行処理≫
復号装置14の通信部144には、秘密鍵skf2および難読化プログラムctが入力され、これらはメモリ141に格納される。暗号文生成部142は、秘密鍵skf2=(skf2 (i),i)および難読化プログラムct=sxiO(η)を入力とし、秘密鍵skf2から取り出したi∈[q](鍵生成装置12に送信したi)をct=sxiO(η)に入力し、sxiO(η)を実行することで暗号文ctiを生成し、当該暗号文ctiをメモリ141に格納する。復号部143は、秘密鍵skf2から取り出した秘密鍵skf2 (i)および暗号文ctiを入力としてFE1.decを実行し、秘密鍵skf2 (i)で暗号文ctiを復号することで復元値m’を得て出力する。
<< Execution Process of Decoding Algorithm (FE2.dec (sk f2 , ct)) >>
A secret key sk f2 and an obfuscation program ct are input to the
[第2実施形態]
図面を用いて本発明の第2実施形態を説明する。
本形態は、前述した<q−key結託簡素性秘密鍵関数型暗号(I)>の具体例である。以下では、既に説明した事項について同じ参照番号を引用して説明を省略する。
<構成>
図1に例示するように、本形態の暗号システム2は、セットアップ装置21、鍵生成装置12、暗号化装置23、および復号装置14を有する。セットアップ装置21は、例えば、メモリ111、マスター鍵生成部212、および通信部113を有する。暗号化装置23は、例えば、メモリ131、疑似乱数生成部132、疑似乱数鍵生成部133、プログラム生成部234、難読化部135、および通信部136を有する。セットアップ装置21および暗号化装置23は、入力情報、演算過程で保存する必要がある情報、演算結果の情報をメモリ111および131にそれぞれ格納し、必要に応じて読み出して利用する。セットアップ装置21および暗号化装置23は、それぞれ、通信部113および136によって情報の送受信を行う。セットアップ装置21および暗号化装置23は、例えば、前述のコンピュータが所定のプログラムを実行することで構成される装置である。図1では、1個のセットアップ装置21および暗号化装置23を例示するが、セットアップ装置21および暗号化装置23の少なくとも一方が複数個存在していてもよい。
[Second Embodiment]
A second embodiment of the present invention will be described with reference to the drawings.
The present embodiment is a specific example of <q-key collusion simplicity secret key function type encryption (I)> described above. In the following, the same reference numerals are used for the matters already described, and the description is omitted.
<Configuration>
As illustrated in FIG. 1, the encryption system 2 of the present embodiment includes a
<処理>
次に本形態の処理を説明する
≪セットアップアルゴリズム(SKFE2.setup(1λ))の実行処理≫
セットアップ装置21のマスター鍵生成部212は、各i∈[q]についてSKFE1.setupを実行してマスター秘密鍵msk1iを生成し、生成されたq個のmsk1i(ただし、i∈[q])をメモリ111に格納する。ただし、msk1iはi∈[q]ごとに生成された疑似乱数によってランダム化されている。マスター鍵生成部212は、各i∈[q]について得られたmsk1iから、マスター秘密鍵msk2=(msk11,…,msk1q)を生成してメモリ111に格納する。通信部113は、マスター秘密鍵msk2を鍵生成装置12および暗号化装置23に送信する。
<Processing>
«Execution of the setup algorithm (SKFE2.setup (1 λ))» described below a process of the present embodiment
The master
≪鍵生成アルゴリズム(FE2.keygen(msk2,f2,i))の実行処理≫
本形態の鍵生成アルゴリズムの実行処理は、第1実施形態のものと同じである。
<< Execution Process of Key Generation Algorithm (FE2.keygen (msk2, f2, i)) >>
The execution process of the key generation algorithm of this embodiment is the same as that of the first embodiment.
≪暗号化アルゴリズム(SKFE2.enc(msk2,m))の実行処理≫
暗号化装置23の通信部136にはセットアップ装置21から送信されたマスター秘密鍵msk2が入力され、このマスター秘密鍵msk2はメモリ131に格納される。疑似乱数生成部132は、疑似乱数を生成して疑似乱数鍵生成部133に送る。疑似乱数鍵生成部133は、送られた疑似乱数を用いて穴開け可能擬似ランダム関数Fの鍵Kを生成してメモリ131に格納する。鍵Kはこの疑似乱数によってランダム化されている。プログラム生成部234は、メッセージm、マスター秘密鍵msk2、および鍵Kを入力とし、前述したSKFE2.encの暗号文生成プログラムμを生成してメモリ121に格納する。難読化部135は、当該暗号文生成プログラムμをγ−SXIOで識別不可能性難読化した難読化プログラムct=sxiO(μ)を生成してメモリ121に格納する。通信部136は、当該難読化プログラムctを復号装置14に送信する。
≪Encryption algorithm (SKFE2.enc (msk2, m)) execution process≫
The master secret key msk2 transmitted from the
≪復号アルゴリズム(FE2.dec(skf2,ct))の実行処理≫
本形態の復号アルゴリズム(FE2.dec(skf2,ct))の実行処理は、暗号化装置13から送信された難読化プログラムctが通信部144に入力されることに代えて、暗号化装置23から送信された難読化プログラムctが通信部144に入力されること、および、難読化プログラムctがsxiO(η)であることに代えて、難読化プログラムctがsxiO(μ)であることを除き、第1実施形態のものと同じである。
<< Execution Process of Decoding Algorithm (FE2.dec (sk f2 , ct)) >>
The decryption algorithm (FE2.dec (sk f2 , ct)) according to the present embodiment is executed by the
[第3実施形態]
図面を用いて本発明の第1実施形態を説明する。本形態は、前述した<q−key結託簡素性公開鍵関数型暗号(II)>の具体例である。以下では、既に説明した事項について同じ参照番号を引用して説明を省略する。
<構成>
図2に例示するように、本形態の暗号システム6は、セットアップ装置61、鍵生成装置62、暗号化装置63、および復号装置64を有する。セットアップ装置61は、例えば、メモリ111、設定部612、プログラム生成部613、マスター鍵生成部614、および通信部113を有する。鍵生成装置62は、例えば、メモリ121、マスター鍵生成部622、秘密鍵生成部623、および通信部124を有する。暗号化装置63は、例えば、メモリ131、設定部632、プログラム生成部634、難読化部635、および通信部136を有する。復号装置64は、例えば、メモリ141、実行部642、復号部643、および通信部144を有する。
[Third Embodiment]
A first embodiment of the present invention will be described with reference to the drawings. The present embodiment is a specific example of <q-key collusion simplicity public key function type encryption (II)> described above. In the following, the same reference numerals are used for the matters already described, and the description is omitted.
<Configuration>
As illustrated in FIG. 2, the
セットアップ装置61、鍵生成装置62、暗号化装置63、および復号装置64は、入力情報、演算過程で保存する必要がある情報、演算結果の情報をメモリ111,121,131,141にそれぞれ格納し、必要に応じて読み出して利用する。また、セットアップ装置61、鍵生成装置62、暗号化装置63、および復号装置64は、それぞれ通信部113,124,136,144によって情報の送受信を行う。各装置から送信された情報は、例えばネットワークを通じて他の装置に送信される。セットアップ装置61、鍵生成装置62、暗号化装置63、および復号装置64のそれぞれは、例えば、前述のコンピュータが所定のプログラムを実行することで構成される装置である。図2では、セットアップ装置61、鍵生成装置62、暗号化装置63、および復号装置64を1個ずつ例示するが、これらの少なくとも一部の装置が複数個存在していてもよい。
The
<処理>
次に本形態の処理を説明する。
≪セットアップアルゴリズム(PKFE2.setup(1λ))の実行処理≫
セットアップ装置61の設定部612は、λを入力として擬似ランダム関数F’の鍵K0とランダムビット列ρ0∈{0,1}λを得てメモリ111に格納する。鍵K0およびランダムビット列ρ0は、例えば、ランダムに選択される。次に、プログラム生成部613は、鍵K0およびランダムビット列ρ0を入力とし、前述したPKFE2.setupのマスター公開鍵生成プログラムΣを生成してメモリ111に格納する。マスター鍵生成部614は、このマスター公開鍵生成プログラムΣを入力とし、マスター公開鍵生成プログラムΣを識別不可能性難読化した難読化プログラムsxiO(Σ)をマスター公開鍵mpk2として得て出力し、(K0,ρ0)をマスター秘密鍵msk2として得て出力する。マスター公開鍵mpk2およびマスター秘密鍵msk2はメモリ111に格納される。通信部113は、マスター公開鍵mpk2を暗号化装置63に送信し、マスター秘密鍵msk2を鍵生成装置62に送信する。
<Processing>
Next, the processing of this embodiment will be described.
«Execution process of the setup algorithm (PKFE2.setup (1 λ))»
The
≪鍵生成アルゴリズム(FE2.keygen(msk2,f2,i))の実行処理≫
鍵生成装置62の通信部124には、復号装置64から送信されたいずれかのi∈[q]および所定の関数f2、ならびにマスター秘密鍵msk2が入力される。これらはメモリ121に格納される。マスター鍵生成部622は、λ、いずれかのi∈[q]、マスター秘密鍵msk2=(K0,ρ0)、および関数f2を入力とし、PKFE1.setupを実行して疑似乱数F’(K0,(ρ0,i))でランダム化されたマスター公開鍵mpk1iおよびマスター秘密鍵msk1iを得てメモリ121に格納する。秘密鍵生成部623は、マスター秘密鍵msk1iおよび関数f2を入力とし、FE1.keygenを実行してマスター秘密鍵msk1iおよび関数f2に対する秘密鍵skf2 (i)を生成してメモリ121に格納する。さらに秘密鍵生成部623は、復号装置64から送信されたいずれかのi∈[q]および所定の関数f2を入力とし、関数f2に対する秘密鍵skf2=(skf2 (i),i)を得てメモリ121に格納する。通信部124は、秘密鍵skf2を復号装置64に送信する。
<< Execution Process of Key Generation Algorithm (FE2.keygen (msk2, f2, i)) >>
Any iε [q], a predetermined function f2, and a master secret key msk2 transmitted from the
≪暗号化アルゴリズム(PKFE2.enc(mpk2,m))の実行処理≫
暗号化装置63の通信部136にはマスター公開鍵mpk2=sxiO(Σ)が入力され、このマスター公開鍵mpk2はメモリ131に格納される。設定部632は、穴開け可能擬似ランダム関数Fの鍵Kを生成してメモリ131に格納する。例えば、鍵Kはランダムに生成される。プログラム生成部634は、マスター公開鍵mpk2=sxiO(Σ)、メッセージm、および鍵Kを入力とし、前述したPKFE2.encの暗号文生成プログラムη’を生成する。難読化部635は、暗号文生成プログラムη’を入力とし、この暗号文生成プログラムη’を識別不可能性難読化した難読化プログラムct=sxiO(η’)を得てメモリ131に格納する。通信部136は、当該難読化プログラムctを復号装置64に送信する。
≪Encryption algorithm (PKFE2.enc (mpk2, m)) execution process≫
The master public key mpk2 = sxiO (Σ) is input to the
≪復号アルゴリズム(FE2.dec(skf2,ct))の実行処理≫
復号装置64の通信部144には、秘密鍵skf2=(skf2 (i),i)および難読化プログラムctが入力され、これらはメモリ141に格納される。実行部642は、秘密鍵skf2=(skf2 (i),i)および難読化プログラムctを入力とし、秘密鍵skf2から取り出したi∈[q]について暗号文ctiを得てメモリ141に格納する。難読化プログラムctにiを入力することで暗号文ctiが得られる。復号部643は、秘密鍵skf2=(skf2 (i),i)から取り出した秘密鍵skf2 (i)および得られた暗号文ctiを入力としてFE1.decを実行し、秘密鍵skf2 (i)で暗号文ctiを復号して復元値m’を得て出力する。
<< Execution Process of Decoding Algorithm (FE2.dec (sk f2 , ct)) >>
The
[第4実施形態]
図面を用いて本発明の第4実施形態を説明する。本形態は、前述した<q−key結託簡素性秘密鍵関数型暗号(II)>の具体例である。以下では、既に説明した事項について同じ参照番号を引用して説明を省略する。
<構成>
図2に例示するように、本形態の暗号システム7は、セットアップ装置71、鍵生成装置72、暗号化装置73、および復号装置64を有する。セットアップ装置71は、例えば、メモリ111、設定部612、マスター鍵生成部714、および通信部113を有する。鍵生成装置72は、例えば、メモリ121、マスター鍵生成部622、秘密鍵生成部623、および通信部124を有する。暗号化装置73は、例えば、メモリ131、設定部632、プログラム生成部734、難読化部735、および通信部136を有する。復号装置64は、例えば、メモリ141、実行部642、復号部643、および通信部144を有する。
[Fourth Embodiment]
A fourth embodiment of the present invention will be described with reference to the drawings. The present embodiment is a specific example of <q-key collusion simplicity secret key function type encryption (II)> described above. In the following, the same reference numerals are used for the matters already described, and the description is omitted.
<Configuration>
As illustrated in FIG. 2, the
セットアップ装置71、鍵生成装置72、暗号化装置73、および復号装置64は、入力情報、演算過程で保存する必要がある情報、演算結果の情報をメモリ111,121,131,141にそれぞれ格納し、必要に応じて読み出して利用する。また、セットアップ装置71、鍵生成装置72、暗号化装置73、および復号装置64は、それぞれ通信部113,124,136,144によって情報の送受信を行う。各装置から送信された情報は、例えばネットワークを通じて他の装置に送信される。セットアップ装置71、鍵生成装置72、暗号化装置73、および復号装置64のそれぞれは、例えば、前述のコンピュータが所定のプログラムを実行することで構成される装置である。図2では、セットアップ装置71、鍵生成装置72、暗号化装置73、および復号装置64を1個ずつ例示するが、これらの少なくとも一部の装置が複数個存在していてもよい。
The
<処理>
次に本形態の処理を説明する。
≪セットアップアルゴリズム(SKFE2.setup(1λ))の実行処理≫
セットアップ装置71の設定部612は、λを入力とし、擬似ランダム関数F’の鍵K0とランダムビット列ρ0∈{0,1}λを得てメモリ111に格納する。鍵K0およびランダムビット列ρ0は、例えば、ランダムに選択される。マスター鍵生成部714は、鍵K0およびランダムビット列ρ0を入力とし、マスター秘密鍵msk2=(K0,ρ0)を得てメモリ111に格納する。通信部113は、マスター秘密鍵msk2を鍵生成装置72および暗号化装置73に送信する。
<Processing>
Next, the processing of this embodiment will be described.
«Execution process of the setup algorithm (SKFE2.setup (1 λ))»
The
≪鍵生成アルゴリズム(FE2.keygen(msk2,f2,i))の実行処理≫
鍵生成装置72の通信部124には、復号装置64から送信されたいずれかのi∈[q]および所定の関数f2、ならびにマスター秘密鍵msk2=(K0,ρ0)が入力される。これらはメモリ121に格納される。マスター鍵生成部722は、鍵K0およびインデックス(ρ0,i)を入力として擬似乱数F’(K0,(ρ0,i))を得てメモリ121に格納する。さらにマスター鍵生成部722は、λおよび擬似乱数F’(K0,(ρ0,i))を入力とし、SKFE1.setupを実行して疑似乱数F’(K0,(ρ0,i))でランダム化されたマスター秘密鍵msk1iを得てメモリ121に格納する。秘密鍵生成部623は、マスター秘密鍵msk1iおよび関数f2を入力とし、E1.keygenを実行してマスター秘密鍵msk1iおよび関数f2に対する秘密鍵skf2 (i)を生成してメモリ121に格納する。さらに秘密鍵生成部623は、skf2 (i)およびiを入力として関数f2に対する秘密鍵skf2=(skf2 (i),i)を得てメモリ121に格納する。通信部124は、秘密鍵skf2を復号装置64に送信する。
<< Execution Process of Key Generation Algorithm (FE2.keygen (msk2, f2, i)) >>
Any iε [q] and a predetermined function f2 transmitted from the
≪暗号化アルゴリズム(SKFE2.enc(msk2,m))の実行処理≫
暗号化装置73の通信部136にはマスター秘密鍵msk2=(K0,ρ0)が入力され、このマスター公開鍵mpk2はメモリ131に格納される。設定部632は、穴開け可能擬似ランダム関数Fの鍵Kを得てメモリ131に格納する。例えば、鍵Kはランダムに生成される。プログラム生成部734は、鍵K0、ランダムビット列ρ0、鍵K、およびメッセージmを入力として、前述したSKFE2.encの暗号文生成プログラムμ’を得てメモリ131に格納する。難読化部735は、暗号文生成プログラムμ’を入力とし、暗号文生成プログラムμ’を識別不可能性難読化した難読化プログラムct=sxiO(μ’)を得てメモリ131に格納する。通信部136は、当該難読化プログラムctを復号装置64に送信する。
≪Encryption algorithm (SKFE2.enc (msk2, m)) execution process≫
The master secret key msk2 = (K 0 , ρ 0 ) is input to the
≪復号アルゴリズム(FE2.dec(skf2,ct))の実行処理≫
本形態の復号アルゴリズム(FE2.dec(skf2,ct))の実行処理は、暗号化装置63から送信された難読化プログラムctが通信部144に入力されることに代えて、暗号化装置73から送信された難読化プログラムctが通信部144に入力されること、および、難読化プログラムctがsxiO(η’)であることに代えて、難読化プログラムctがsxiO(μ’)であることを除き、第3実施形態のものと同じである。
<< Execution Process of Decoding Algorithm (FE2.dec (sk f2 , ct)) >>
The execution process of the decryption algorithm (FE2.dec (sk f2 , ct)) of this embodiment is performed by the
[第5実施形態]
図面を用いて本発明の第5実施形態を説明する。
本形態は、前述した<1−key完全簡素性公開鍵関数型暗号>の具体例である。
<構成>
図3に例示するように、本形態の暗号システム3は、セットアップ装置31、鍵生成装置32、暗号化装置33、および復号装置34を有する。セットアップ装置31は、例えば、メモリ311、マスター鍵生成部312、および通信部313を有する。鍵生成装32は、例えば、メモリ321、秘密鍵生成部322、および通信部323を有する。暗号化装置33は、例えば、メモリ331、暗号化部332、および通信部333を有する。復号装置34は、例えば、メモリ341、復号部342、および通信部343を有する。
[Fifth Embodiment]
A fifth embodiment of the present invention will be described with reference to the drawings.
This embodiment is a specific example of <1-key complete simplicity public key function type encryption> described above.
<Configuration>
As illustrated in FIG. 3, the
セットアップ装置31、鍵生成装置32、暗号化装置33、および復号装置34は、入力情報、演算過程で保存する必要がある情報、演算結果の情報をメモリ311,321,331,341にそれぞれ格納し、必要に応じて読み出して利用する。また、セットアップ装置31、鍵生成装置32、暗号化装置33、および復号装置34は、それぞれ通信部313,323,333,344によって情報の送受信を行う。各装置から送信された情報は、例えばネットワークを通じて他の装置に送信される。セットアップ装置31、鍵生成装置32、暗号化装置33、および復号装置34のそれぞれは、例えば、前述のコンピュータが所定のプログラムを実行することで構成される装置である。図3では、セットアップ装置31、鍵生成装置32、暗号化装置33、および復号装置34を1個ずつ例示するが、これらの少なくとも一部の装置が複数個存在していてもよい。
The
<処理>
次に本形態の処理を説明する。本形態では、第1実施形態または第3実施形態の何れか一方のq−key結託簡素性公開鍵関数型暗号(第2関数型暗号)を利用し、非特許文献4に記載された方法に従って、以下に示す1−key完全簡素性公開鍵関数型暗号(第3関数型暗号)の各アルゴリズムを実行する。
≪セットアップアルゴリズム(PKFE3.setup)の実行処理≫
セットアップ装置31のマスター鍵生成部312は、第1実施形態または第3実施形態のセットアップアルゴリズム(PKFE2.setup)を用い、非特許文献4に記載された1−key完全簡素性公開鍵関数型暗号(第3関数型暗号)のセットアップアルゴリズム(PKFE3.setup)を実行し、マスター公開鍵mpk3およびマスター秘密鍵msk3を生成してメモリ311に格納する。通信部313は、マスター公開鍵mpk3を暗号化装置33に送信し、マスター秘密鍵msk3を鍵生成装置32に送信する。
<Processing>
Next, the processing of this embodiment will be described. In this embodiment, the q-key collusion simplicity public key function type encryption (second function type encryption) of either the first embodiment or the third embodiment is used, and according to the method described in
≪Setup algorithm (PKFE3.setup) execution process≫
The master
≪鍵生成アルゴリズム(FE3.keygen)の実行処理≫
鍵生成装置32の通信部323にはマスター秘密鍵msk3および復号装置34から送信されたiおよび所定の関数f3が入力され、これらはメモリ321に格納される。秘密鍵生成部322は、マスター秘密鍵msk3および所定の関数f3を入力とし、第1実施形態または第3実施形態の鍵生成アルゴリズム(FE2.keygen)を用い、非特許文献4に記載された1−key完全簡素性公開鍵関数型暗号の鍵生成アルゴリズム(FE3.keygen)を実行し、関数f3に対する秘密鍵skf3を生成してメモリ321に格納する。通信部323は、秘密鍵skf3を復号装置34に送信する。
≪Key generation algorithm (FE3.keygen) execution process≫
A master secret key msk3, i transmitted from the
≪暗号化アルゴリズム(PKFE3.enc)の実行処理≫
暗号化装置33の通信部333にはマスター公開鍵mpk3が入力され、これはメモリ331に格納される。暗号化部332は、マスター公開鍵mpk3およびメッセージmを入力とし、第1実施形態または第3実施形態の暗号化アルゴリズム(PKFE2.enc)を用い、非特許文献4に記載された1−key完全簡素性公開鍵関数型暗号の暗号化アルゴリズム(PKFE3.enc)を実行し、メッセージmの暗号文c3を生成してメモリ331に格納する。通信部333は、暗号文c3を復号装置34に送信する。
≪Encryption algorithm (PKFE3.enc) execution process≫
The master public key mpk3 is input to the
≪復号アルゴリズム(FE3.dec)の実行処理≫
復号装置34の通信部343には秘密鍵skf3および暗号文c3が入力され、これらはメモリ341に格納される。復号部342は、秘密鍵skf3および暗号文c3を入力とし、第1実施形態または第3実施形態の復号アルゴリズムFE2.decを用い、非特許文献4に記載された1−key完全簡素性公開鍵関数型暗号の暗号化アルゴリズム(FE3.dec)を実行し、メッセージmの関数値f3(m)を生成して出力する。
<< Execution process of decryption algorithm (FE3.dec) >>
The secret key sk f3 and the ciphertext c3 are input to the
[第6実施形態]
図面を用いて本発明の第6実施形態を説明する。
本形態は、前述した<1−key完全簡素性秘密鍵関数型暗号>の具体例である。
<構成>
図3に例示するように、本形態の暗号システム4は、セットアップ装置41、鍵生成装置32、暗号化装置43、および復号装置34を有する。セットアップ装置41は、例えば、メモリ311、マスター鍵生成部412、および通信部313を有する。暗号化装置43は、例えば、メモリ331、暗号化部332、および通信部333を有する。
[Sixth Embodiment]
A sixth embodiment of the present invention will be described with reference to the drawings.
This embodiment is a specific example of the above-described <1-key complete simplicity secret key function type encryption>.
<Configuration>
As illustrated in FIG. 3, the
セットアップ装置41および暗号化装置43は、入力情報、演算過程で保存する必要がある情報、演算結果の情報をメモリ311および331にそれぞれ格納し、必要に応じて読み出して利用する。また、セットアップ装置41および暗号化装置43は、それぞれ、通信部313および333によって情報の送受信を行う。各装置から送信された情報は、例えばネットワークを通じて他の装置に送信される。セットアップ装置41および暗号化装置43は、前述のコンピュータが所定のプログラムを実行することで構成される装置である。図3では、1個のセットアップ装置41および暗号化装置43を例示するが、セットアップ装置41および暗号化装置43の少なくとも一方が複数個存在していてもよい。
The
<処理>
次に本形態の処理を説明する。本形態では、第2実施形態または第4実施形態の何れか一方のq−key結託簡素性秘密鍵関数型暗号(第2関数型暗号)を利用し、非特許文献4に記載された方法に従って、以下に示す1−key完全簡素性秘密鍵関数型暗号(第3関数型暗号)の各アルゴリズムを実行する。
<Processing>
Next, the processing of this embodiment will be described. In this embodiment, the q-key collusion simplicity secret key function type encryption (second function type encryption) of either the second embodiment or the fourth embodiment is used, and according to the method described in
≪セットアップアルゴリズム(SKFE3.setup)の実行処理≫
セットアップ装置41のマスター鍵生成部412は、第2実施形態または第4実施形態のセットアップアルゴリズム(SKFE2.setup)を用い、非特許文献4に記載された1−key完全簡素性秘密鍵関数型暗号(第3関数型暗号)のセットアップアルゴリズム(SKFE3.setup)を実行し、マスター秘密鍵msk3を生成してメモリ311に格納する。通信部313は、マスター秘密鍵msk3を鍵生成装置32および暗号化装置43に送信する。
≪Setup algorithm (SKFE3.setup) execution process≫
The master
≪鍵生成アルゴリズム(FE3.keygen)の実行処理≫
本形態の鍵生成アルゴリズム(FE3.keygen)の実行処理は、第5実施形態のものと同じである。
≪Key generation algorithm (FE3.keygen) execution process≫
The execution process of the key generation algorithm (FE3.keygen) of the present embodiment is the same as that of the fifth embodiment.
≪暗号化アルゴリズム(SKFE3.enc)の実行処理≫
暗号化装置43の通信部333にはマスター秘密鍵msk3が入力され、これはメモリ331に格納される。暗号化部332は、マスター秘密鍵msk3およびメッセージmを入力とし、第2実施形態または第4実施形態の暗号化アルゴリズム(SKFE2.enc)を用い、非特許文献4に記載された1−key完全簡素性秘密鍵関数型暗号の暗号化アルゴリズム(SKFE3.enc)を実行し、メッセージmの暗号文c3を生成してメモリ331に格納する。通信部333は、暗号文c3を復号装置34に送信する。
<< Encryption algorithm (SKFE3.enc) execution process >>
The master secret key msk3 is input to the
≪復号アルゴリズム(FE3.dec)の実行処理≫
本形態の復号アルゴリズムの実行処理は、暗号化装置33から送信された暗号文c3が通信部344に入力されることに代えて、暗号化装置43から送信された暗号文c3が通信部343に入力されること、第1実施形態または第3実施形態の復号アルゴリズムFE2.decに代えて、第2実施形態または第4実施形態の復号アルゴリズムFE2.decが用いられることを除き、第5実施形態のものと同じである。
<< Execution process of decryption algorithm (FE3.dec) >>
In the decryption algorithm execution processing of this embodiment, instead of the ciphertext c3 transmitted from the
[第7実施形態]
図面を用いて本発明の第7実施形態を説明する。
本形態では、第5実施形態の1−key完全簡素性公開鍵関数型暗号を用い、非特許文献2,3に記載された識別不可能性難読化を行う。
[Seventh Embodiment]
A seventh embodiment of the present invention will be described with reference to the drawings.
In this embodiment, the 1-key complete simplicity public key function encryption of the fifth embodiment is used, and the indistinguishability obfuscation described in
<構成>
図4に例示するように、本形態の暗号システム5は、セットアップ装置31、鍵生成装置32、難読化装置53、および実行装置54を有する。難読化装置53は、メモリ431、暗号化装置33、難読化部532、および通信部533を有する。実行装置54は、メモリ541、復号装置34、実行部542、および通信部543を有する。
<Configuration>
As illustrated in FIG. 4, the cryptographic system 5 of this embodiment includes a
難読化装置53および実行装置54は、入力情報、演算過程で保存する必要がある情報、演算結果の情報をメモリ531および541にそれぞれ格納し、必要に応じて読み出して利用する。また、難読化装置53および実行装置54は、それぞれ通信部533および543によって情報の送受信を行う。各装置から送信された情報は、例えばネットワークを通じて他の装置に送信される。難読化装置53および実行装置54は、それぞれ前述のコンピュータが所定のプログラムを実行することで構成される装置である。図4では、1個の難読化装置53および実行装置54を例示するが、これらの少なくとも一方が複数個存在してもよい。
The
<処理>
次に本形態の処理を説明する。
≪セットアップアルゴリズム(PKFE3.setup)の実行処理≫
本形態のセットアップアルゴリズム(PKFE3.setup)の実行処理は、第5実施形態のものと同じである。
<Processing>
Next, the processing of this embodiment will be described.
≪Setup algorithm (PKFE3.setup) execution process≫
The execution process of the setup algorithm (PKFE3.setup) of the present embodiment is the same as that of the fifth embodiment.
≪鍵生成アルゴリズム(FE3.keygen)の実行処理≫
本形態の鍵生成アルゴリズム(FE3.keygen)は、第5実施形態のものと同じである。
≪Key generation algorithm (FE3.keygen) execution process≫
The key generation algorithm (FE3.keygen) of this embodiment is the same as that of the fifth embodiment.
≪プログラムの難読化の実行処理≫
難読化装置53の難読化部532は、難読化対象のプログラムproを入力とし、暗号化アルゴリズム(PKFE3.enc)を実行する暗号化装置33を用い、非特許文献2または3に記載された識別不可能性難読化によってプログラムproを難読化し(すなわち、特許文献2または3に記載された識別不可能性難読化の過程で実行される暗号化アルゴリズムとしてPKFE3.encを用いてプログラムproを難読化し)、難読化プログラムiO(pro)を得てメモリ531に格納する。通信部533は、難読化プログラムiO(pro)を実行装置54に送信する。
≪Program obfuscation execution process≫
The
≪難読化プログラムの実行処理≫
実行装置54の通信部543には難読化プログラムiO(pro)が入力され、これはメモリ541に格納される。実行部542は、難読化プログラムiO(pro)を入力とし、復号アルゴリズム(FE3.dec)を実行する復号装置34を用い、非特許文献2または3に記載された難読化プログラムiO(pro)の実行処理を行い(すなわち、特許文献2または3に記載された難読化プログラムの実行処理の過程で実行される復号アルゴリズムとしてFE3.decを用いて難読化プログラムiO(pro)の実行処理を行い)、実行結果を得て出力する。
≪Obfuscated program execution process≫
The obfuscation program iO (pro) is input to the
[変形例等]
なお、本発明は上述の実施の形態に限定されるものではない。例えば、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。或いは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。これらの装置の一部からなる組み合わせが、同一の装置であってもよい。例えば、難読化装置53が、セットアップアルゴリズム(PKFE3.setup)および鍵生成アルゴリズム(FE3.keygen)を実行してもよい。この場合には、難読化装置53から実行装置54に送られる難読化プログラムiO(pro)に秘密鍵skf2が含まれる。また、実行部542が難読化プログラムiO(pro)と入力値xとを入力として、入力値xに対する難読化プログラムiO(pro)の実行処理を行ってもよい。
[Modifications, etc.]
The present invention is not limited to the embodiment described above. For example, instead of each device exchanging information via a network, at least some of the devices may exchange information via a portable recording medium. Alternatively, at least some of the devices may exchange information via a non-portable recording medium. The combination which consists of a part of these apparatuses may be the same apparatus. For example, the
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。 The various processes described above are not only executed in time series according to the description, but may also be executed in parallel or individually as required by the processing capability of the apparatus that executes the processes. Needless to say, other modifications are possible without departing from the spirit of the present invention.
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。 When the above configuration is realized by a computer, the processing contents of the functions that each device should have are described by a program. By executing this program on a computer, the above processing functions are realized on the computer. The program describing the processing contents can be recorded on a computer-readable recording medium. An example of a computer-readable recording medium is a non-transitory recording medium. Examples of such a recording medium are a magnetic recording device, an optical disk, a magneto-optical recording medium, a semiconductor memory, and the like.
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。 This program is distributed, for example, by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。 A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, this computer reads a program stored in its own recording device and executes a process according to the read program. As another execution form of the program, the computer may read the program directly from the portable recording medium and execute processing according to the program, and each time the program is transferred from the server computer to the computer. The processing according to the received program may be executed sequentially. The above-described processing may be executed by a so-called ASP (Application Service Provider) type service that realizes a processing function only by an execution instruction and result acquisition without transferring a program from the server computer to the computer. Good.
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。 In the above embodiment, the processing functions of the apparatus are realized by executing a predetermined program on a computer. However, at least a part of these processing functions may be realized by hardware.
1〜5 暗号システム 1-5 Cryptographic system
Claims (22)
(1)擬似ランダム関数F’の鍵K0とランダムビット列ρ0を得、(2)入力されたi∈[q]について擬似乱数ri’=F’(K0,(ρ0,i))を得るステップと、前記PKFE1.setupを実行して前記擬似乱数ri’でランダム化されたマスター公開鍵mpk1iおよびマスター秘密鍵msk1iの組を生成するステップと、前記マスター公開鍵mpk1iを出力するステップと、を実行するマスター公開鍵生成プログラムΣを生成し、(3)前記マスター公開鍵生成プログラムΣを識別不可能性難読化した難読化プログラムsxiO(Σ)をマスター公開鍵mpk2として得、(K0,ρ0)をマスター秘密鍵msk2として得る第2関数型暗号のセットアップアルゴリズムPKFE2.setupを実行するセットアップ装置と、
いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力とし、前記PKFE1.setupを実行して疑似乱数F’(K0,(ρ0,i))でランダム化されたマスター公開鍵mpk1iおよびマスター秘密鍵msk1iを得、前記FE1.keygenを実行して前記マスター秘密鍵msk1iおよび前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムFE2.keygenを実行する鍵生成装置と、
(1)穴開け可能擬似ランダム関数Fの鍵Kを得、(2)入力されたi∈[q]について難読化プログラムsxiO(Σ)を実行して前記マスター公開鍵mpk1iを得るステップと、入力されたi∈[q]について擬似乱数ri=F(K,i)を生成するステップと、前記マスター公開鍵mpk1i、前記メッセージm、および前記擬似乱数riを入力として前記PKFE1.encを実行して前記擬似乱数riでランダム化された暗号文ctiを得るステップと、を実行する暗号文生成プログラムη’を得、(3)前記暗号文生成プログラムη’を識別不可能性難読化した難読化プログラムct=sxiO(η’)を得る前記第2関数型暗号の暗号化アルゴリズムPKFE2.encを実行する暗号化装置と、
前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctiを得、前記秘密鍵skf2 (i)および前記暗号文ctiを入力として前記FE1.decを実行して復元値を得る前記第2関数型暗号の復号アルゴリズムFE2.decを実行する復号装置と、
を有する暗号システム。 q is an integer of 1 or more, and PKFE1. setup is a first functional encryption setup algorithm for generating a master public key mpk1 and a master secret key msk1, and FE1. keygen is the key generation algorithm of the first functional encryption that receives the master secret key msk1 and a predetermined function f1 and generates a secret key sk f1 for the function f1, PKFE1. enc is the first functional encryption algorithm that receives the master public key mpk1 and the message m and generates the ciphertext c1 of the message m, and FE1. dec is a decryption algorithm of the first functional encryption that receives the secret key sk f1 and the ciphertext c1 as input and generates a function value f1 (m) of the message m;
(1) A key K 0 and a random bit string ρ 0 of a pseudo random function F ′ are obtained, and (2) a pseudo random number r i ′ = F ′ (K 0 , (ρ 0 , i) for input i∈ [q]. ) And the PKFE1. executing a setup to generate a set of a master public key mpk1 i and a master secret key msk1 i randomized with the pseudo-random number r i ′, and outputting the master public key mpk1 i A master public key generation program Σ is generated, and (3) an obfuscation program sxiO (Σ) obtained by obfuscating the master public key generation program Σ is obtained as a master public key mpk2, and (K 0 , ρ 0 ) Is set up as a master secret key msk2, a second functional encryption setup algorithm PKFE2. a setup device for executing the setup;
Any of i∈ [q], the master secret key msk2, and a predetermined function f2 are input, and the PKFE1. Execute setup and obtain a master public key mpk1 i and a master secret key msk1 i randomized with a pseudo-random number F ′ (K 0 , (ρ 0 , i)). keygen is executed to generate a secret key sk f2 (i) for the master secret key msk1 i and the function f2 to obtain a secret key sk f2 = (sk f2 (i) , i) Key generation algorithm FE2. a key generation device that executes keygen;
(1) obtaining a key K of a puncturable pseudorandom function F, (2) executing the obfuscation program sxiO (Σ) for the input i∈ [q] to obtain the master public key mpk1 i ; Generating a pseudo-random number r i = F (K, i) for the input i∈ [q], and receiving the master public key mpk1 i , the message m, and the pseudo-random number r i as input, the PKFE1. executing enc to obtain a ciphertext ct i randomized with the pseudo-random number r i , and obtaining a ciphertext generation program η ′ for executing (3) the ciphertext generation program η ′ cannot be identified Encryption algorithm PKFE2 of the second functional encryption to obtain the obfuscated obfuscation program ct = sxiO (η ′). an encryption device for executing enc;
Using the secret key sk f2 and the obfuscated program ct as inputs, the ciphertext ct i is obtained for i∈ [q] extracted from the secret key sk f2 , and the secret key sk f2 (i) and the ciphertext ct are obtained. i as an input, the FE1. The second functional encryption decryption algorithm FE2. a decoding device for executing dec;
A cryptographic system.
各i∈[q]について前記PKFE1.setupを実行してマスター公開鍵mpk1iおよびマスター秘密鍵msk1iの組を生成し、マスター公開鍵mpk2=(mpk11,…,mpk1q)およびマスター秘密鍵msk2=(msk11,…,msk1q)を得る第2関数型暗号のセットアップアルゴリズムPKFE2.setupを実行するセットアップ装置と、
いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力として前記FE1.keygenを実行して前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムFE2.keygenを実行する鍵生成装置と、
入力されたi∈[q]について擬似乱数riを生成するステップと、前記マスター公開鍵mpk1i、前記メッセージm、および前記擬似乱数riを入力として前記PKFE1.encを実行して前記擬似乱数riでランダム化された暗号文ctiを得るステップと、を実行する暗号文生成プログラムηを得、前記暗号文生成プログラムηを識別不可能性難読化した難読化プログラムct=sxiO(η)を得る前記第2関数型暗号の暗号化アルゴリズムPKFE2.encを実行する暗号化装置と、
前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctiを得、前記秘密鍵skf2 (i)および前記暗号文ctiを入力として前記FE1.decを実行して復元値を得る前記第2関数型暗号の復号アルゴリズムFE2.decを実行する復号装置と、
を有する暗号システム。 q is an integer of 1 or more, and PKFE1. setup is a first functional encryption setup algorithm for generating a master public key mpk1 and a master secret key msk1, and FE1. keygen is the key generation algorithm of the first functional encryption that receives the master secret key msk1 and a predetermined function f1 and generates a secret key sk f1 for the function f1, PKFE1. enc is the first functional encryption algorithm that receives the master public key mpk1 and the message m and generates the ciphertext c1 of the message m, and FE1. dec is a decryption algorithm of the first functional encryption that receives the secret key sk f1 and the ciphertext c1 as input and generates a function value f1 (m) of the message m;
For each i∈ [q], the PKFE1. Execute setup to generate a set of a master public key mpk1 i and a master secret key msk1 i , and a master public key mpk2 = (mpk1 1 ,..., mpk1 q ) and a master secret key msk2 = (msk1 1 ,..., msk1 q ) To obtain the second functional encryption setup algorithm PKFE2. a setup device for executing the setup;
Any one of iε [q], the master secret key msk2, and a predetermined function f2 are input to the FE1. Keygen is executed to generate a secret key sk f2 (i) for the function f2 and obtain a secret key sk f2 = (sk f2 (i) , i). a key generation device that executes keygen;
Wherein the inputted i ∈ [q] and generating a pseudo-random number r i, the master public key MPK1 i, said message m, and the pseudo random number r i as input PKFE1. executing enc to obtain a ciphertext ct i randomized with the pseudo-random number r i , obtaining a ciphertext generation program η that executes the obfuscation that obfuscates the ciphertext generation program η Encryption algorithm PKFE2 of the second functional encryption to obtain the encryption program ct = sxiO (η). an encryption device for executing enc;
Using the secret key sk f2 and the obfuscated program ct as inputs, the ciphertext ct i is obtained for i∈ [q] extracted from the secret key sk f2 , and the secret key sk f2 (i) and the ciphertext ct are obtained. i as an input, the FE1. The second functional encryption decryption algorithm FE2. a decoding device for executing dec;
A cryptographic system.
擬似ランダム関数F’の鍵K0とランダムビット列ρ0を得、マスター秘密鍵msk2=(K0,ρ0)を得る第2関数型暗号のセットアップアルゴリズムSKFE2.setupを実行するセットアップ装置と、
いずれかのi∈[q]、前記マスター秘密鍵msk2=(K0,ρ0)、および所定の関数f2を入力とし、前記SKFE1.setupを実行して疑似乱数F’(K0,(ρ0,i))でランダム化されたマスター秘密鍵msk1iを得、前記FE1.keygenを実行して前記マスター秘密鍵msk1iおよび前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムFE2.keygenを実行する鍵生成装置と、
(1)穴開け可能擬似ランダム関数Fの鍵Kを得、(2)前記マスター秘密鍵msk2=(K0,ρ0)およびi∈[q]を入力とし、入力されたi∈[q]について前記SKFE1.setupを実行して疑似乱数F’(K0,(ρ0,i))でランダム化されたマスター秘密鍵msk1iを得るステップと、擬似乱数ri=F(K,i)を生成するステップと、前記マスター秘密鍵msk1i、前記メッセージm、および前記擬似乱数riを入力として前記SKFE1.encを実行して前記擬似乱数riでランダム化された暗号文ctiを得るステップと、を実行する暗号文生成プログラムμ’を得、(3)前記暗号文生成プログラムμ’を識別不可能性難読化した難読化プログラムct=sxiO(μ’)を得る前記第2関数型暗号の暗号化アルゴリズムSKFE2.encを実行する暗号化装置と、
前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctiを得、前記秘密鍵skf2 (i)および前記暗号文ctiを入力として前記FE1.decを実行して復元値を得る前記第2関数型暗号の復号アルゴリズムFE2.decを実行する復号装置と、
を有する暗号システム。 q is an integer of 1 or more, and SKFE1. setup is the first functional encryption setup algorithm for generating the master secret key msk1, FE1. keygen is a key generation algorithm of the first functional encryption that receives the master secret key msk1 and a predetermined function f1 and generates a secret key sk f1 for the function f1, and SKFE1. enc is the encryption algorithm of the first functional encryption that receives the master secret key msk1 and the message m and generates the ciphertext c1 of the message m, and FE1. dec is a decryption algorithm of the first functional encryption that receives the secret key sk f1 and the ciphertext c1 as input and generates a function value f1 (m) of the message m;
A second functional encryption setup algorithm SKFE2. That obtains a key K 0 and a random bit string ρ 0 of a pseudo-random function F ′ and obtains a master secret key msk 2 = (K 0 , ρ 0 ). a setup device for executing the setup;
Any one of iε [q], the master secret key msk2 = (K 0 , ρ 0 ), and a predetermined function f2 are input, and the SKFE1. Execute setup and obtain a master secret key msk1 i randomized with a pseudo-random number F ′ (K 0 , (ρ 0 , i)), and the FE1. keygen is executed to generate a secret key sk f2 (i) for the master secret key msk1 i and the function f2 to obtain a secret key sk f2 = (sk f2 (i) , i) Key generation algorithm FE2. a key generation device that executes keygen;
(1) A key K of a puncturable pseudorandom function F is obtained. (2) The master secret key msk2 = (K 0 , ρ 0 ) and i∈ [q] are input, and the input i∈ [q] is input. SKFE1. executing setup and obtaining a master secret key msk1 i randomized with a pseudorandom number F ′ (K 0 , (ρ 0 , i)), and generating a pseudorandom number r i = F (K, i) And the master secret key msk1 i , the message m, and the pseudorandom number r i as inputs. obtaining a ciphertext ct i randomized with the pseudo-random number r i by executing enc, and obtaining a ciphertext generation program μ ′ for executing (3) the ciphertext generation program μ ′ cannot be identified Encryption algorithm SKFE of the second functional encryption to obtain the obfuscated obfuscation program ct = sxiO (μ ′). an encryption device for executing enc;
Using the secret key sk f2 and the obfuscated program ct as inputs, the ciphertext ct i is obtained for i∈ [q] extracted from the secret key sk f2 , and the secret key sk f2 (i) and the ciphertext ct are obtained. i as an input, the FE1. The second functional encryption decryption algorithm FE2. a decoding device for executing dec;
A cryptographic system.
各i∈[q]について前記SKFE1.setupを実行してマスター秘密鍵msk1iを生成し、マスター秘密鍵msk2=(msk11,…,msk1q)を得る第2関数型暗号のセットアップアルゴリズムSKFE2.setupを実行するセットアップ装置と、
いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力として前記FE1.keygenを実行して前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムFE2.keygenを実行する鍵生成装置と、
入力されたi∈[q]について擬似乱数riを生成するステップと、前記マスター秘密鍵msk1i、前記メッセージm、および前記擬似乱数riを入力として前記SKFE1.encを実行して前記擬似乱数riでランダム化された暗号文ctiを得るステップと、を実行する暗号文生成プログラムμを得、前記暗号文生成プログラムμを識別不可能性難読化した難読化プログラムct=sxiO(μ)を得る前記第2関数型暗号の暗号化アルゴリズムSKFE2.encを実行する暗号化装置と、
前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctiを得、前記秘密鍵skf2 (i)および前記暗号文ctiを入力として前記FE1.decを実行して復元値を得る前記第2関数型暗号の復号アルゴリズムFE2.decを実行する復号装置と、
を有する暗号システム。 q is an integer of 1 or more, and SKFE1. setup is the first functional encryption setup algorithm for generating the master secret key msk1, FE1. keygen is a key generation algorithm of the first functional encryption that receives the master secret key msk1 and a predetermined function f1 and generates a secret key sk f1 for the function f1, and SKFE1. enc is the encryption algorithm of the first functional encryption that receives the master secret key msk1 and the message m and generates the ciphertext c1 of the message m, and FE1. dec is a decryption algorithm of the first functional encryption that receives the secret key sk f1 and the ciphertext c1 as input and generates a function value f1 (m) of the message m;
For each i∈ [q], the SKFE1. A second functional encryption setup algorithm SKFE2. which generates a master secret key msk1 i by executing setup and obtains a master secret key msk2 = (msk1 1 ,..., msk1 q ). a setup device for executing the setup;
Any one of iε [q], the master secret key msk2, and a predetermined function f2 are input to the FE1. Keygen is executed to generate a secret key sk f2 (i) for the function f2 and obtain a secret key sk f2 = (sk f2 (i) , i). a key generation device that executes keygen;
Wherein the inputted i ∈ [q] and generating a pseudo-random number r i, the master secret key MSK1 i, said message m, and the pseudo random number r i as input SKFE1. executing enc to obtain a ciphertext ct i randomized with the pseudo-random number r i , obtaining a ciphertext generation program μ for executing the obfuscation, wherein the ciphertext generation program μ is obfuscated Encryption algorithm SKFE2 .. of the second functional encryption for obtaining the encryption program ct = sxiO (μ). an encryption device for executing enc;
Using the secret key sk f2 and the obfuscated program ct as inputs, the ciphertext ct i is obtained for i∈ [q] extracted from the secret key sk f2 , and the secret key sk f2 (i) and the ciphertext ct are obtained. i as an input, the FE1. The second functional encryption decryption algorithm FE2. a decoding device for executing dec;
A cryptographic system.
前記第1関数型暗号が1−key関数型暗号である、暗号システム。 The cryptographic system according to any one of claims 1 to 4,
The cryptographic system, wherein the first functional encryption is a 1-key functional encryption.
前記難読化プログラムctは、前記暗号文生成プログラムηをγ−SXIOで識別不可能性難読化したものである、暗号システム。 The encryption system according to any one of claims 1 to 5,
The obfuscation program ct is an encryption system in which the ciphertext generation program η is obfuscated by γ-SXIO.
入力されたi∈[q]について擬似乱数ri’=F’(K0,(ρ0,i))を得るステップと、前記PKFE1.setupを実行して前記擬似乱数ri’でランダム化されたマスター公開鍵mpk1iおよびマスター秘密鍵msk1iの組を生成するステップと、前記マスター公開鍵mpk1iを出力するステップと、を実行するマスター公開鍵生成プログラムΣを生成するプログラム生成部と、
前記マスター公開鍵生成プログラムΣを識別不可能性難読化した難読化プログラムsxiO(Σ)をマスター公開鍵mpk2として得、(K0,ρ0)をマスター秘密鍵msk2として得るマスター鍵生成部と、
を有するセットアップ装置。 q is an integer of 1 or more, and PKFE1. setup is a first functional encryption setup algorithm for generating a master public key mpk1 and a master secret key msk1, a setting unit for obtaining a key K 0 and a random bit string ρ 0 of a pseudo-random function F ′;
Obtaining a pseudo-random number r i ′ = F ′ (K 0 , (ρ 0 , i)) for the input i∈ [q], and the PKFE1. executing a setup to generate a set of a master public key mpk1 i and a master secret key msk1 i randomized with the pseudo-random number r i ′, and outputting the master public key mpk1 i A program generation unit for generating a master public key generation program Σ;
A master key generator that obtains an obfuscated program sxiO (Σ) obtained by obfuscating the master public key generation program Σ as a master public key mpk2, and obtains (K 0 , ρ 0 ) as a master secret key msk2.
Having a setup device.
(1)擬似ランダム関数F’の鍵K0とランダムビット列ρ0を得、(2)入力されたi∈[q]について擬似乱数ri’=F’(K0,(ρ0,i))を得るステップと、前記PKFE1.setupを実行して前記擬似乱数ri’でランダム化されたマスター公開鍵mpk1iおよびマスター秘密鍵msk1iの組を生成するステップと、前記マスター公開鍵mpk1iを出力するステップと、を実行するマスター公開鍵生成プログラムΣを生成し、(3)前記マスター公開鍵生成プログラムΣを識別不可能性難読化した難読化プログラムsxiO(Σ)をマスター公開鍵mpk2として得、(K0,ρ0)をマスター秘密鍵msk2として得る第2関数型暗号のセットアップアルゴリズムPKFE2.setupが実行されており、
いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力とし、前記PKFE1.setupを実行して疑似乱数F’(K0,(ρ0,i))でランダム化されたマスター公開鍵mpk1iおよびマスター秘密鍵msk1iを得るマスター鍵生成部と、
前記FE1.keygenを実行して前記マスター秘密鍵msk1iおよび前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る秘密鍵生成部と、
を有する鍵生成装置。 q is an integer of 1 or more, and PKFE1. setup is a first functional encryption setup algorithm for generating a master public key mpk1 and a master secret key msk1, and FE1. keygen is a key generation algorithm of the first functional encryption that receives the master secret key msk1 and a predetermined function f1 and generates a secret key sk f1 for the function f1,
(1) A key K 0 and a random bit string ρ 0 of a pseudo random function F ′ are obtained, and (2) a pseudo random number r i ′ = F ′ (K 0 , (ρ 0 , i) for input i∈ [q]. ) And the PKFE1. executing a setup to generate a set of a master public key mpk1 i and a master secret key msk1 i randomized with the pseudo-random number r i ′, and outputting the master public key mpk1 i A master public key generation program Σ is generated, and (3) an obfuscation program sxiO (Σ) obtained by obfuscating the master public key generation program Σ is obtained as a master public key mpk2, and (K 0 , ρ 0 ) Is set up as a master secret key msk2, a second functional encryption setup algorithm PKFE2. setup is running,
Any of i∈ [q], the master secret key msk2, and a predetermined function f2 are input, and the PKFE1. a master key generation unit that executes setup and obtains a master public key mpk1 i and a master secret key msk1 i randomized with a pseudorandom number F ′ (K 0 , (ρ 0 , i));
The FE1. a secret key generation unit that executes keygen to generate the master secret key msk1 i and the secret key sk f2 (i) for the function f2, and obtains the secret key sk f2 = (sk f2 (i) , i);
A key generation device.
(1)擬似ランダム関数F’の鍵K0とランダムビット列ρ0を得、(2)入力されたi∈[q]について擬似乱数ri’=F’(K0,(ρ0,i))を得るステップと、前記PKFE1.setupを実行して前記擬似乱数ri’でランダム化されたマスター公開鍵mpk1iおよびマスター秘密鍵msk1iの組を生成するステップと、前記マスター公開鍵mpk1iを出力するステップと、を実行するマスター公開鍵生成プログラムΣを生成し、(3)前記マスター公開鍵生成プログラムΣを識別不可能性難読化した難読化プログラムsxiO(Σ)をマスター公開鍵mpk2として得、(K0,ρ0)をマスター秘密鍵msk2として得る第2関数型暗号のセットアップアルゴリズムPKFE2.setupが実行されており、
穴開け可能擬似ランダム関数Fの鍵Kを得る設定部と、
入力されたi∈[q]について難読化プログラムsxiO(Σ)を実行して前記マスター公開鍵mpk1iを得るステップと、入力されたi∈[q]について擬似乱数ri=F(K,i)を生成するステップと、前記マスター公開鍵mpk1i、前記メッセージm、および前記擬似乱数riを入力として前記PKFE1.encを実行して前記擬似乱数riでランダム化された暗号文ctiを得るステップと、を実行する暗号文生成プログラムη’を得るプログラム生成部と、
前記暗号文生成プログラムη’を識別不可能性難読化した難読化プログラムct=sxiO(η’)を得る難読化部と、
を有する暗号化装置。 q is an integer of 1 or more, and PKFE1. setup is a first functional encryption setup algorithm for generating a master public key mpk1 and a master secret key msk1, and PKFE1. enc is an encryption algorithm of the first functional encryption that receives the master public key mpk1 and the message m as input and generates a ciphertext c1 of the message m,
(1) A key K 0 and a random bit string ρ 0 of a pseudo random function F ′ are obtained, and (2) a pseudo random number r i ′ = F ′ (K 0 , (ρ 0 , i) for input i∈ [q]. ) And the PKFE1. executing a setup to generate a set of a master public key mpk1 i and a master secret key msk1 i randomized with the pseudo-random number r i ′, and outputting the master public key mpk1 i A master public key generation program Σ is generated, and (3) an obfuscation program sxiO (Σ) obtained by obfuscating the master public key generation program Σ is obtained as a master public key mpk2, and (K 0 , ρ 0 ) Is set up as a master secret key msk2, a second functional encryption setup algorithm PKFE2. setup is running,
A setting unit for obtaining a key K of the puncturable pseudorandom function F;
The obfuscation program sxiO (Σ) is executed for the input i∈ [q] to obtain the master public key mpk1 i , and the pseudorandom number r i = F (K, i for the input i∈ [q]. ) And the master public key mpk1 i , the message m, and the pseudorandom number r i as inputs. executing enc to obtain a ciphertext ct i randomized with the pseudo-random number r i , and a program generation unit for obtaining a ciphertext generation program η ′ for executing
An obfuscation unit that obtains an obfuscation program ct = sxiO (η ′) obtained by obfuscating the ciphertext generation program η ′;
An encryption device.
(1)擬似ランダム関数F’の鍵K0とランダムビット列ρ0を得、(2)入力されたi∈[q]について擬似乱数ri’=F’(K0,(ρ0,i))を得るステップと、前記PKFE1.setupを実行して前記擬似乱数ri’でランダム化されたマスター公開鍵mpk1iおよびマスター秘密鍵msk1iの組を生成するステップと、前記マスター公開鍵mpk1iを出力するステップと、を実行するマスター公開鍵生成プログラムΣを生成し、(3)前記マスター公開鍵生成プログラムΣを識別不可能性難読化した難読化プログラムsxiO(Σ)をマスター公開鍵mpk2として得、(K0,ρ0)をマスター秘密鍵msk2として得る第2関数型暗号のセットアップアルゴリズムPKFE2.setupが実行されており、
いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力とし、前記PKFE1.setupを実行して疑似乱数F’(K0,(ρ0,i))でランダム化されたマスター公開鍵mpk1iおよびマスター秘密鍵msk1iを得、前記FE1.keygenを実行して前記マスター秘密鍵msk1iおよび前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムFE2.keygenが実行されており、
(1)穴開け可能擬似ランダム関数Fの鍵Kを得、(2)入力されたi∈[q]について難読化プログラムsxiO(Σ)を実行して前記マスター公開鍵mpk1iを得るステップと、入力されたi∈[q]について擬似乱数ri=F(K,i)を生成するステップと、前記マスター公開鍵mpk1i、前記メッセージm、および前記擬似乱数riを入力として前記PKFE1.encを実行して前記擬似乱数riでランダム化された暗号文ctiを得るステップと、を実行する暗号文生成プログラムη’を得、(3)前記暗号文生成プログラムη’を識別不可能性難読化した難読化プログラムct=sxiO(η’)を得る前記第2関数型暗号の暗号化アルゴリズムPKFE2.encが実行されており、
前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctiを得る実行部と、
前記秘密鍵skf2 (i)および前記暗号文ctiを入力として前記FE1.decを実行して復元値を得る復号部と、
を有する復号装置。 q is an integer of 1 or more, and PKFE1. setup is a first functional encryption setup algorithm for generating a master public key mpk1 and a master secret key msk1, and FE1. keygen is the key generation algorithm of the first functional encryption that receives the master secret key msk1 and a predetermined function f1 and generates a secret key sk f1 for the function f1, PKFE1. enc is the first functional encryption algorithm that receives the master public key mpk1 and the message m and generates the ciphertext c1 of the message m, and FE1. dec is a decryption algorithm of the first functional encryption that receives the secret key sk f1 and the ciphertext c1 as input and generates a function value f1 (m) of the message m;
(1) A key K 0 and a random bit string ρ 0 of a pseudo random function F ′ are obtained, and (2) a pseudo random number r i ′ = F ′ (K 0 , (ρ 0 , i) for input i∈ [q]. ) And the PKFE1. executing a setup to generate a set of a master public key mpk1 i and a master secret key msk1 i randomized with the pseudo-random number r i ′, and outputting the master public key mpk1 i A master public key generation program Σ is generated, and (3) an obfuscation program sxiO (Σ) obtained by obfuscating the master public key generation program Σ is obtained as a master public key mpk2, and (K 0 , ρ 0 ) Is set up as a master secret key msk2, a second functional encryption setup algorithm PKFE2. setup is running,
Any of i∈ [q], the master secret key msk2, and a predetermined function f2 are input, and the PKFE1. Execute setup and obtain a master public key mpk1 i and a master secret key msk1 i randomized with a pseudo-random number F ′ (K 0 , (ρ 0 , i)). keygen is executed to generate a secret key sk f2 (i) for the master secret key msk1 i and the function f2 to obtain a secret key sk f2 = (sk f2 (i) , i) Key generation algorithm FE2. keygen is running,
(1) obtaining a key K of a puncturable pseudorandom function F, (2) executing the obfuscation program sxiO (Σ) for the input i∈ [q] to obtain the master public key mpk1 i ; Generating a pseudo-random number r i = F (K, i) for the input i∈ [q], and receiving the master public key mpk1 i , the message m, and the pseudo-random number r i as input, the PKFE1. executing enc to obtain a ciphertext ct i randomized with the pseudo-random number r i , and obtaining a ciphertext generation program η ′ for executing (3) the ciphertext generation program η ′ cannot be identified Encryption algorithm PKFE2 of the second functional encryption to obtain the obfuscated obfuscation program ct = sxiO (η ′). enc is running,
An execution unit that receives the secret key sk f2 and the obfuscation program ct and obtains the ciphertext ct i for iε [q] extracted from the secret key sk f2 ,
Using the secret key sk f2 (i) and the ciphertext ct i as inputs, the FE1. a decoding unit that executes dec to obtain a restored value;
A decoding device.
各i∈[q]について前記PKFE1.setupを実行してマスター公開鍵mpk1iおよびマスター秘密鍵msk1iの組を生成し、マスター公開鍵mpk2=(mpk11,…,mpk1q)およびマスター秘密鍵msk2=(msk11,…,msk1q)を得る第2関数型暗号のセットアップアルゴリズムPKFE2.setupが実行されており、
入力されたi∈[q]について擬似乱数riを生成するステップと、前記マスター公開鍵mpk1i、前記メッセージm、および前記擬似乱数riを入力として前記PKFE1.encを実行して前記擬似乱数riでランダム化された暗号文ctiを得るステップと、を実行する暗号文生成プログラムηを得るプログラム生成部と、
前記暗号文生成プログラムηを識別不可能性難読化した難読化プログラムct=sxiO(η)を得る前記第2関数型暗号の暗号化アルゴリズムPKFE2.encを実行する難読化部と、
を有する暗号化装置。 q is an integer of 1 or more, and PKFE1. setup is a first functional encryption setup algorithm for generating a master public key mpk1 and a master secret key msk1, and PKFE1. enc is an encryption algorithm of the first functional encryption that receives the master public key mpk1 and the message m as input and generates a ciphertext c1 of the message m,
For each i∈ [q], the PKFE1. Execute setup to generate a set of a master public key mpk1 i and a master secret key msk1 i , and a master public key mpk2 = (mpk1 1 ,..., mpk1 q ) and a master secret key msk2 = (msk1 1 ,..., msk1 q ) To obtain the second functional encryption setup algorithm PKFE2. setup is running,
Wherein the inputted i ∈ [q] and generating a pseudo-random number r i, the master public key MPK1 i, said message m, and the pseudo random number r i as input PKFE1. executing enc to obtain a ciphertext ct i randomized with the pseudo-random number r i ; and a program generation unit for obtaining a ciphertext generation program η for executing
An encryption algorithm PKFE2 of the second functional encryption that obtains an obfuscation program ct = sxiO (η) obtained by obfuscating the ciphertext generation program η. an obfuscation unit that executes enc;
An encryption device.
各i∈[q]について前記PKFE1.setupを実行してマスター公開鍵mpk1iおよびマスター秘密鍵msk1iの組を生成し、マスター公開鍵mpk2=(mpk11,…,mpk1q)およびマスター秘密鍵msk2=(msk11,…,msk1q)を得る第2関数型暗号のセットアップアルゴリズムPKFE2.setupと、
いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力として前記FE1.keygenを実行して前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムFE2.keygenと、
入力されたi∈[q]について擬似乱数riを生成するステップと、前記マスター公開鍵mpk1i、前記メッセージm、および前記擬似乱数riを入力として前記PKFE1.encを実行して前記擬似乱数riでランダム化された暗号文ctiを得るステップと、を実行する暗号文生成プログラムηを得、前記暗号文生成プログラムηを識別不可能性難読化した難読化プログラムct=sxiO(η)を得る前記第2関数型暗号の暗号化アルゴリズムPKFE2.encと、が実行されており、
前記秘密鍵skf2および前記難読化プログラムctを入力とし、いずれかのi∈[q]について前記暗号文ctiを得る暗号文生成部と、
前記秘密鍵skf2 (i)および前記暗号文ctiを入力として前記FE1.decを実行して復元値を得る前記第2関数型暗号の復号アルゴリズムFE2.decを実行する復号部と、
を有する復号装置。 q is an integer of 1 or more, and PKFE1. setup is a first functional encryption setup algorithm for generating a master public key mpk1 and a master secret key msk1, and FE1. keygen is the key generation algorithm of the first functional encryption that receives the master secret key msk1 and a predetermined function f1 and generates a secret key sk f1 for the function f1, PKFE1. enc is the first functional encryption algorithm that receives the master public key mpk1 and the message m and generates the ciphertext c1 of the message m, and FE1. dec is a decryption algorithm of the first functional encryption that receives the secret key sk f1 and the ciphertext c1 as input and generates a function value f1 (m) of the message m;
For each i∈ [q], the PKFE1. Execute setup to generate a set of a master public key mpk1 i and a master secret key msk1 i , and a master public key mpk2 = (mpk1 1 ,..., mpk1 q ) and a master secret key msk2 = (msk1 1 ,..., msk1 q ) To obtain the second functional encryption setup algorithm PKFE2. setup,
Any one of iε [q], the master secret key msk2, and a predetermined function f2 are input to the FE1. Keygen is executed to generate a secret key sk f2 (i) for the function f2 and obtain a secret key sk f2 = (sk f2 (i) , i). keygen,
Wherein the inputted i ∈ [q] and generating a pseudo-random number r i, the master public key MPK1 i, said message m, and the pseudo random number r i as input PKFE1. executing enc to obtain a ciphertext ct i randomized with the pseudo-random number r i , obtaining a ciphertext generation program η that executes the obfuscation that obfuscates the ciphertext generation program η Encryption algorithm PKFE2 of the second functional encryption to obtain the encryption program ct = sxiO (η). enc is executed,
A ciphertext generation unit that receives the secret key sk f2 and the obfuscation program ct and obtains the ciphertext ct i for any i∈ [q];
Using the secret key sk f2 (i) and the ciphertext ct i as inputs, the FE1. The second functional encryption decryption algorithm FE2. a decoding unit for executing dec;
A decoding device.
擬似ランダム関数F’の鍵K0とランダムビット列ρ0を得、マスター秘密鍵msk2=(K0,ρ0)を得る第2関数型暗号のセットアップアルゴリズムSKFE2.setupが実行されており、
いずれかのi∈[q]、前記マスター秘密鍵msk2=(K0,ρ0)、および所定の関数f2を入力とし、前記SKFE1.setupを実行して疑似乱数F’(K0,(ρ0,i))でランダム化されたマスター秘密鍵msk1iを得るマスター鍵生成部と、
前記FE1.keygenを実行して前記マスター秘密鍵msk1iおよび前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る秘密鍵生成部と、
を有する鍵生成装置。 q is an integer of 1 or more, and SKFE1. setup is the first functional encryption setup algorithm for generating the master secret key msk1, FE1. keygen is a key generation algorithm of the first functional encryption that receives the master secret key msk1 and a predetermined function f1 and generates a secret key sk f1 for the function f1,
A second functional encryption setup algorithm SKFE2. That obtains a key K 0 and a random bit string ρ 0 of a pseudo-random function F ′ and obtains a master secret key msk 2 = (K 0 , ρ 0 ). setup is running,
Any one of iε [q], the master secret key msk2 = (K 0 , ρ 0 ), and a predetermined function f2 are input, and the SKFE1. a master key generation unit that performs setup and obtains a master secret key msk1 i randomized with a pseudorandom number F ′ (K 0 , (ρ 0 , i));
The FE1. a secret key generation unit that executes keygen to generate the master secret key msk1 i and the secret key sk f2 (i) for the function f2, and obtains the secret key sk f2 = (sk f2 (i) , i);
A key generation device.
穴開け可能擬似ランダム関数Fの鍵Kを得る設定部と、
前記マスター秘密鍵msk2=(K0,ρ0)およびi∈[q]を入力とし、入力されたi∈[q]について前記SKFE1.setupを実行して疑似乱数F’(K0,(ρ0,i))でランダム化されたマスター秘密鍵msk1iを得るステップと、擬似乱数ri=F(K,i)を生成するステップと、前記マスター秘密鍵msk1i、前記メッセージm、および前記擬似乱数riを入力として前記SKFE1.encを実行して前記擬似乱数riでランダム化された暗号文ctiを得るステップと、を実行する暗号文生成プログラムμ’を得るプログラム生成部と、
前記暗号文生成プログラムμ’を識別不可能性難読化した難読化プログラムct=sxiO(μ’)を得る難読化部と、
を有する暗号化装置。 q is an integer of 1 or more, and SKFE1. setup is a first functional encryption setup algorithm for generating the master secret key msk1, and SKFE1. enc is the encryption algorithm of the first functional encryption that receives the master secret key msk1 and the message m and generates the ciphertext c1 of the message m, and the key K 0 and the random bit string of the pseudo-random function F ′ A second functional encryption setup algorithm SKFE2... obtaining ρ 0 and obtaining a master secret key msk2 = (K 0 , ρ 0 ). setup is running,
A setting unit for obtaining a key K of the puncturable pseudorandom function F;
The master secret key msk2 = (K 0 , ρ 0 ) and i∈ [q] are input, and the input SKFE1. executing setup and obtaining a master secret key msk1 i randomized with a pseudorandom number F ′ (K 0 , (ρ 0 , i)), and generating a pseudorandom number r i = F (K, i) And the master secret key msk1 i , the message m, and the pseudorandom number r i as inputs. a program generating section for obtaining the ciphertext generator mu 'to perform the steps of obtaining a random ciphertext ct i running enc in the pseudo-random number r i, a,
An obfuscation unit that obtains an obfuscation program ct = sxiO (μ ′) obtained by obfuscating the ciphertext generation program μ ′;
An encryption device.
擬似ランダム関数F’の鍵K0とランダムビット列ρ0を得、マスター秘密鍵msk2=(K0,ρ0)を得る第2関数型暗号のセットアップアルゴリズムSKFE2.setupと、
いずれかのi∈[q]、前記マスター秘密鍵msk2=(K0,ρ0)、および所定の関数f2を入力とし、前記SKFE1.setupを実行して疑似乱数F’(K0,(ρ0,i))でランダム化されたマスター秘密鍵msk1iを得、前記FE1.keygenを実行して前記マスター秘密鍵msk1iおよび前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムFE2.keygenと、
(1)穴開け可能擬似ランダム関数Fの鍵Kを得、(2)前記マスター秘密鍵msk2=(K0,ρ0)およびi∈[q]を入力とし、入力されたi∈[q]について前記SKFE1.setupを実行して疑似乱数F’(K0,(ρ0,i))でランダム化されたマスター秘密鍵msk1iを得るステップと、擬似乱数ri=F(K,i)を生成するステップと、前記マスター秘密鍵msk1i、前記メッセージm、および前記擬似乱数riを入力として前記SKFE1.encを実行して前記擬似乱数riでランダム化された暗号文ctiを得るステップと、を実行する暗号文生成プログラムμ’を得、(3)前記暗号文生成プログラムμ’を識別不可能性難読化した難読化プログラムct=sxiO(μ’)を得る前記第2関数型暗号の暗号化アルゴリズムSKFE2.encと、が実行されており、
前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctiを得る実行部と、
前記秘密鍵skf2 (i)および前記暗号文ctiを入力として前記FE1.decを実行して復元値を得る復号部と、
を有する復号装置。 q is an integer of 1 or more, and SKFE1. setup is the first functional encryption setup algorithm for generating the master secret key msk1, FE1. keygen is a key generation algorithm of the first functional encryption that receives the master secret key msk1 and a predetermined function f1 and generates a secret key sk f1 for the function f1, and SKFE1. enc is the encryption algorithm of the first functional encryption that receives the master secret key msk1 and the message m and generates the ciphertext c1 of the message m, and FE1. dec is a decryption algorithm of the first functional encryption that receives the secret key sk f1 and the ciphertext c1 as input and generates a function value f1 (m) of the message m;
A second functional encryption setup algorithm SKFE2. That obtains a key K 0 and a random bit string ρ 0 of a pseudo-random function F ′ and obtains a master secret key msk 2 = (K 0 , ρ 0 ). setup,
Any one of iε [q], the master secret key msk2 = (K 0 , ρ 0 ), and a predetermined function f2 are input, and the SKFE1. Execute setup and obtain a master secret key msk1 i randomized with a pseudo-random number F ′ (K 0 , (ρ 0 , i)), and the FE1. keygen is executed to generate a secret key sk f2 (i) for the master secret key msk1 i and the function f2 to obtain a secret key sk f2 = (sk f2 (i) , i) Key generation algorithm FE2. keygen,
(1) A key K of a puncturable pseudorandom function F is obtained. (2) The master secret key msk2 = (K 0 , ρ 0 ) and i∈ [q] are input, and the input i∈ [q] is input. SKFE1. executing setup and obtaining a master secret key msk1 i randomized with a pseudorandom number F ′ (K 0 , (ρ 0 , i)), and generating a pseudorandom number r i = F (K, i) And the master secret key msk1 i , the message m, and the pseudorandom number r i as inputs. obtaining a ciphertext ct i randomized with the pseudo-random number r i by executing enc, and obtaining a ciphertext generation program μ ′ for executing (3) the ciphertext generation program μ ′ cannot be identified Encryption algorithm SKFE of the second functional encryption to obtain the obfuscated obfuscation program ct = sxiO (μ ′). enc is executed,
An execution unit that receives the secret key sk f2 and the obfuscation program ct and obtains the ciphertext ct i for iε [q] extracted from the secret key sk f2 ,
Using the secret key sk f2 (i) and the ciphertext ct i as inputs, the FE1. a decoding unit that executes dec to obtain a restored value;
A decoding device.
各i∈[q]について前記SKFE1.setupを実行してマスター秘密鍵msk1iを生成し、マスター秘密鍵msk2=(msk11,…,msk1q)を得る第2関数型暗号のセットアップアルゴリズムSKFE2.setupが実行されており、
入力されたi∈[q]について擬似乱数riを生成するステップと、前記マスター秘密鍵msk1i、前記メッセージm、および前記擬似乱数riを入力として前記SKFE1.encを実行して前記擬似乱数riでランダム化された暗号文ctiを得るステップと、を実行する暗号文生成プログラムμを得るプログラム生成部と、
前記暗号文生成プログラムμを識別不可能性難読化した難読化プログラムct=sxiO(μ)を得る前記第2関数型暗号の暗号化アルゴリズムSKFE2.encを実行する難読化部と、
を有する暗号化装置。 q is an integer of 1 or more, and SKFE1. setup is a first functional encryption setup algorithm for generating the master secret key msk1, and SKFE1. enc is the encryption algorithm of the first functional encryption that receives the master secret key msk1 and the message m as input and generates the ciphertext c1 of the message m,
For each i∈ [q], the SKFE1. A second functional encryption setup algorithm SKFE2. which generates a master secret key msk1 i by executing setup and obtains a master secret key msk2 = (msk1 1 ,..., msk1 q ). setup is running,
Wherein the inputted i ∈ [q] and generating a pseudo-random number r i, the master secret key MSK1 i, said message m, and the pseudo random number r i as input SKFE1. executing enc to obtain a ciphertext ct i randomized with the pseudo-random number r i ; and a program generation unit for obtaining a ciphertext generation program μ for executing
An encryption algorithm SKFE for the second functional encryption that obtains an obfuscated program ct = sxiO (μ) obtained by obfuscating the ciphertext generation program μ. an obfuscation unit that executes enc;
An encryption device.
各i∈[q]について前記SKFE1.setupを実行してマスター秘密鍵msk1iを生成し、マスター秘密鍵msk2=(msk11,…,msk1q)を得る第2関数型暗号のセットアップアルゴリズムSKFE2.setupと、
いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力として前記FE1.keygenを実行して前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムFE2.keygenと、
入力されたi∈[q]について擬似乱数riを生成するステップと、前記マスター秘密鍵msk1i、前記メッセージm、および前記擬似乱数riを入力として前記SKFE1.encを実行して前記擬似乱数riでランダム化された暗号文ctiを得るステップと、を実行する暗号文生成プログラムμを得、前記暗号文生成プログラムμを識別不可能性難読化した難読化プログラムct=sxiO(μ)を得る前記第2関数型暗号の暗号化アルゴリズムSKFE2.encと、が実行されており、
前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctiを得る暗号文生成部と、
前記秘密鍵skf2 (i)および前記暗号文ctiを入力として前記FE1.decを実行して復元値を得る前記第2関数型暗号の復号アルゴリズムFE2.decを実行する復号部と、
を有する復号装置。 q is an integer of 1 or more, and SKFE1. setup is the first functional encryption setup algorithm for generating the master secret key msk1, FE1. keygen is a key generation algorithm of the first functional encryption that receives the master secret key msk1 and a predetermined function f1 and generates a secret key sk f1 for the function f1, and SKFE1. enc is the encryption algorithm of the first functional encryption that receives the master secret key msk1 and the message m and generates the ciphertext c1 of the message m, and FE1. dec is a decryption algorithm of the first functional encryption that receives the secret key sk f1 and the ciphertext c1 as input and generates a function value f1 (m) of the message m;
For each i∈ [q], the SKFE1. A second functional encryption setup algorithm SKFE2. which generates a master secret key msk1 i by executing setup and obtains a master secret key msk2 = (msk1 1 ,..., msk1 q ). setup,
Any one of iε [q], the master secret key msk2, and a predetermined function f2 are input to the FE1. Keygen is executed to generate a secret key sk f2 (i) for the function f2 and obtain a secret key sk f2 = (sk f2 (i) , i). keygen,
Wherein the inputted i ∈ [q] and generating a pseudo-random number r i, the master secret key MSK1 i, said message m, and the pseudo random number r i as input SKFE1. executing enc to obtain a ciphertext ct i randomized with the pseudo-random number r i , obtaining a ciphertext generation program μ for executing the obfuscation, wherein the ciphertext generation program μ is obfuscated Encryption algorithm SKFE2 .. of the second functional encryption for obtaining the encryption program ct = sxiO (μ). enc is executed,
A ciphertext generating unit that receives the secret key sk f2 and the obfuscation program ct and obtains the ciphertext ct i for i∈ [q] extracted from the secret key sk f2 ,
Using the secret key sk f2 (i) and the ciphertext ct i as inputs, the FE1. The second functional encryption decryption algorithm FE2. a decoding unit for executing dec;
A decoding device.
PKFE2.setupが、各i∈[q]について前記PKFE1.setupを実行してマスター公開鍵mpk1iおよびマスター秘密鍵msk1iの組を生成し、マスター公開鍵mpk2=(mpk11,…,mpk1q)およびマスター秘密鍵msk2=(msk11,…,msk1q)を得る第2関数型暗号のセットアップアルゴリズムであり、FE2.keygenが、いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力として前記FE1.keygenを実行して前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムであり、PKFE2.encが、入力されたi∈[q]について擬似乱数riを生成するステップと、前記マスター公開鍵mpk1i、前記メッセージm、および前記擬似乱数riを入力として前記PKFE1.encを実行して前記擬似乱数riでランダム化された暗号文ctiを得るステップと、を実行する暗号文生成プログラムηを得、前記暗号文生成プログラムηを識別不可能性難読化した難読化プログラムct=sxiO(η)を得る前記第2関数型暗号の暗号化アルゴリズムであり、FE2.decが、前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctiを得、前記秘密鍵skf2 (i)および前記暗号文ctiを入力として前記FE1.decを実行して復元値を得る前記第2関数型暗号の復号アルゴリズムであり、
前記PKFE2.setupを用いて1−key完全簡素性を持つ第3関数型暗号のセットアップアルゴリズムPKFE3.setupを実行し、マスター公開鍵mpk3およびマスター秘密鍵msk3を生成するセットアップ装置と、
前記マスター秘密鍵msk3および所定の関数f3を入力とし、前記FE2.keygenを用いて前記第3関数型暗号の鍵生成アルゴリズムFE3.keygenを実行し、前記関数f3に対する秘密鍵skf3を生成する鍵生成装置と、
前記マスター公開鍵mpk3および前記メッセージmを入力とし、前記PKFE2.encを用いて前記第3関数型暗号の暗号化アルゴリズムPKFE3.encを実行し、前記メッセージmの暗号文c3を生成する暗号化装置と、
前記秘密鍵skf3および前記暗号文c3を入力とし、前記FE2.decを用いて前記第3関数型暗号の復号アルゴリズムFE3.decを実行し、前記メッセージmの関数値f3(m)を生成する復号装置と、
を有する暗号システム。 q is an integer of 1 or more, r is an integer of 1 or more, and PKFE1. setup is a first functional encryption setup algorithm for generating a master public key mpk1 and a master secret key msk1, and FE1. keygen is the key generation algorithm of the first functional encryption that receives the master secret key msk1 and a predetermined function f1 and generates a secret key sk f1 for the function f1, PKFE1. enc is the first functional encryption algorithm that receives the master public key mpk1 and the message m and generates the ciphertext c1 of the message m, and FE1. dec is the decryption algorithm of the first functional cipher that receives the secret key sk f1 and the ciphertext c1 and generates the function value f1 (m) of the message m, and the first functional cipher is public R-key public key function type encryption configured using key encryption,
PKFE2. setup is said PKFE1. Execute setup to generate a set of a master public key mpk1 i and a master secret key msk1 i , and a master public key mpk2 = (mpk1 1 ,..., mpk1 q ) and a master secret key msk2 = (msk1 1 ,..., msk1 q ) To obtain a second functional encryption setup algorithm. The keygen receives any iε [q], the master secret key msk2, and the predetermined function f2 as inputs. a key generation algorithm of the second functional encryption, wherein keygen is executed to generate a secret key sk f2 (i) for the function f2 to obtain a secret key sk f2 = (sk f2 (i) , i), PKFE2 . enc is the generating a pseudo-random number r i for i ∈ [q] entered, the master public key MPK1 i, said message m, and the pseudo random number r i as input PKFE1. executing enc to obtain a ciphertext ct i randomized with the pseudo-random number r i , obtaining a ciphertext generation program η that executes the obfuscation that obfuscates the ciphertext generation program η The encryption algorithm of the second functional encryption that obtains the encryption program ct = sxiO (η), FE2. Dec receives the secret key sk f2 and the obfuscated program ct as input, obtains the ciphertext ct i for i∈ [q] extracted from the secret key sk f2 , and obtains the secret key sk f2 (i) and the secret key sk f2 (i) and Using the ciphertext ct i as an input, the FE1. a decryption algorithm of the second functional encryption that executes dec to obtain a restored value;
The PKFE2. A setup algorithm PKFE3. of a third functional encryption having 1-key complete simplicity using setup. a setup device that executes setup and generates a master public key mpk3 and a master secret key msk3;
The master secret key msk3 and a predetermined function f3 are input, and the FE2. the key generation algorithm FE3.3 of the third functional encryption using keygen. a key generation device that executes keygen and generates a secret key sk f3 for the function f3;
The master public key mpk3 and the message m are input, and the PKFE2. enc is used to encrypt the third functional encryption algorithm PKFE3. an encryption device that executes enc and generates ciphertext c3 of the message m;
The secret key sk f3 and the ciphertext c3 are input, and the FE2. dec, the decryption algorithm FE3. a decoding device that executes dec and generates a function value f3 (m) of the message m;
A cryptographic system.
SKFE2.setupが、各i∈[q]について前記SKFE1.setupを実行してマスター秘密鍵msk1iを生成し、マスター秘密鍵msk2=(msk11,…,msk1q)を得る第2関数型暗号のセットアップアルゴリズムであり、FE2.keygenが、いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力として前記FE1.keygenを実行して前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムであり、SKFE2.encが、入力されたi∈[q]について擬似乱数riを生成するステップと、前記マスター秘密鍵spk1i、前記メッセージm、および前記擬似乱数riを入力として前記SKFE1.encを実行して前記擬似乱数riでランダム化された暗号文ctiを得るステップと、を実行する暗号文生成プログラムμを得、前記暗号文生成プログラムμを識別不可能性難読化した難読化プログラムct=sxiO(μ)を得る前記第2関数型暗号の暗号化アルゴリズムであり、FE2.decが、前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctiを得、前記秘密鍵skf2 (i)および前記暗号文ctiを入力として前記FE1.decを実行して復元値を得る前記第2関数型暗号の復号アルゴリズムであり、
前記SKFE2.setupを用いて1−key完全簡素性を持つ第3関数型暗号のセットアップアルゴリズムSKFE3.setupを実行し、マスター秘密鍵msk3を生成するセットアップ装置と、
前記マスター秘密鍵msk3および所定の関数f3を入力とし、前記FE2.keygenを用いて前記第3関数型暗号の鍵生成アルゴリズムFE3.keygenを実行し、前記関数f3に対する秘密鍵skf3を生成する鍵生成装置と、
前記マスター秘密鍵msk3および前記メッセージmを入力とし、前記SKFE2.encを用いて前記第3関数型暗号の暗号化アルゴリズムPKFE3.encを実行し、前記メッセージmの暗号文c3を生成する暗号化装置と、
前記秘密鍵skf3および前記暗号文c3を入力とし、前記FE2.decを用いて前記第3関数型暗号の復号アルゴリズムFE3.decを実行し、前記メッセージmの関数値f3(m)を生成する復号装置と、
を有する暗号システム。 q is an integer of 1 or more, r is an integer of 1 or more, and SKFE1. setup is the first functional encryption setup algorithm for generating the master secret key msk1, FE1. keygen is a key generation algorithm of the first functional encryption that receives the master secret key msk1 and a predetermined function f1 and generates a secret key sk f1 for the function f1, and SKFE1. enc is the encryption algorithm of the first functional encryption that receives the master secret key msk1 and the message m and generates the ciphertext c1 of the message m, and FE1. dec is the decryption algorithm of the first functional cipher that receives the secret key sk f1 and the ciphertext c1 and generates the function value f1 (m) of the message m, and the first functional cipher is a secret R-key secret key function type encryption configured using key encryption,
SKFE2. setup is the SKFE1. This is a second functional encryption setup algorithm that executes setup and generates a master secret key msk1 i to obtain a master secret key msk2 = (msk1 1 ,..., msk1 q ), and FE2. The keygen receives any iε [q], the master secret key msk2, and the predetermined function f2 as inputs. SKFE2 is a key generation algorithm of the second function type encryption that executes keygen to generate a secret key sk f2 (i) for the function f2 and obtains a secret key sk f2 = (sk f2 (i) , i) . enc is the generating a pseudo-random number r i for i ∈ [q] entered, the master secret key SPK1 i, said message m, and the pseudo random number r i as input SKFE1. executing enc to obtain a ciphertext ct i randomized with the pseudo-random number r i , obtaining a ciphertext generation program μ for executing the obfuscation, wherein the ciphertext generation program μ is obfuscated The encryption algorithm of the second function type encryption to obtain the encryption program ct = sxiO (μ), FE2. Dec receives the secret key sk f2 and the obfuscated program ct as input, obtains the ciphertext ct i for i∈ [q] extracted from the secret key sk f2 , and obtains the secret key sk f2 (i) and the secret key sk f2 (i) and Using the ciphertext ct i as an input, the FE1. a decryption algorithm of the second functional encryption that executes dec to obtain a restored value;
The SKFE2. A setup algorithm SKFE3. of a third functional encryption having 1-key complete simplicity using setup. a setup device for executing setup and generating a master secret key msk3;
The master secret key msk3 and a predetermined function f3 are input, and the FE2. the key generation algorithm FE3.3 of the third functional encryption using keygen. a key generation device that executes keygen and generates a secret key sk f3 for the function f3;
The master secret key msk3 and the message m are input, and the SKFE2. enc is used to encrypt the third functional encryption algorithm PKFE3. an encryption device that executes enc and generates ciphertext c3 of the message m;
The secret key sk f3 and the ciphertext c3 are input, and the FE2. dec, the decryption algorithm FE3. a decoding device that executes dec and generates a function value f3 (m) of the message m;
A cryptographic system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017001751A JP6649288B2 (en) | 2017-01-10 | 2017-01-10 | Encryption system, setup device, key generation device, encryption device, decryption device, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017001751A JP6649288B2 (en) | 2017-01-10 | 2017-01-10 | Encryption system, setup device, key generation device, encryption device, decryption device, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018112612A true JP2018112612A (en) | 2018-07-19 |
JP6649288B2 JP6649288B2 (en) | 2020-02-19 |
Family
ID=62912080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017001751A Active JP6649288B2 (en) | 2017-01-10 | 2017-01-10 | Encryption system, setup device, key generation device, encryption device, decryption device, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6649288B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023238230A1 (en) * | 2022-06-07 | 2023-12-14 | 日本電信電話株式会社 | Encryption system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011097453A (en) * | 2009-10-30 | 2011-05-12 | Internatl Business Mach Corp <Ibm> | Message sending and receiving method |
JP2012079192A (en) * | 2010-10-05 | 2012-04-19 | Nippon Telegr & Teleph Corp <Ntt> | Retrievable cryptographic system, retrievable cryptographic method, storage device, retrieval device and registrant device |
WO2015087407A1 (en) * | 2013-12-11 | 2015-06-18 | 三菱電機株式会社 | File storage system, file storage apparatus, and user terminal |
US20160218872A1 (en) * | 2015-01-27 | 2016-07-28 | Arris Enterprises, Inc. | Obfuscation for protection of streaming media and other data flows |
-
2017
- 2017-01-10 JP JP2017001751A patent/JP6649288B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011097453A (en) * | 2009-10-30 | 2011-05-12 | Internatl Business Mach Corp <Ibm> | Message sending and receiving method |
JP2012079192A (en) * | 2010-10-05 | 2012-04-19 | Nippon Telegr & Teleph Corp <Ntt> | Retrievable cryptographic system, retrievable cryptographic method, storage device, retrieval device and registrant device |
WO2015087407A1 (en) * | 2013-12-11 | 2015-06-18 | 三菱電機株式会社 | File storage system, file storage apparatus, and user terminal |
US20160218872A1 (en) * | 2015-01-27 | 2016-07-28 | Arris Enterprises, Inc. | Obfuscation for protection of streaming media and other data flows |
Non-Patent Citations (1)
Title |
---|
越中谷隼人ほか, 難読化技術を用いたサインディクリプション方式の構成, JPN6019044287, 24 January 2017 (2017-01-24), pages 1 - 5, ISSN: 0004153243 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023238230A1 (en) * | 2022-06-07 | 2023-12-14 | 日本電信電話株式会社 | Encryption system |
Also Published As
Publication number | Publication date |
---|---|
JP6649288B2 (en) | 2020-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Abd El-Latif et al. | Secure data encryption based on quantum walks for 5G Internet of Things scenario | |
CN106533650B (en) | Interactive method for secret protection and system towards cloud | |
Huang et al. | Achieving accountable and efficient data sharing in industrial internet of things | |
US10630465B2 (en) | Key exchange method, key exchange system, communication device and storage medium therefore | |
KR101478766B1 (en) | Encryption device, decryption device, encryption method, decryption method, program, and recording medium | |
JP2019531673A (en) | Data processing method and apparatus | |
JP6194886B2 (en) | Encryption statistical processing system, decryption system, key generation device, proxy device, encrypted statistical data generation device, encryption statistical processing method, and encryption statistical processing program | |
US11677543B2 (en) | Key exchange method and key exchange system | |
Peng | Danger of using fully homomorphic encryption: A look at Microsoft SEAL | |
Sokouti et al. | Medical image encryption: an application for improved padding based GGH encryption algorithm | |
Lu et al. | Threshold quantum secret sharing based on single qubit | |
WO2015008607A1 (en) | Decoding device, decoding ability providing device, method thereof, and program | |
JP5578754B2 (en) | Encryption conversion method and apparatus, and program | |
WO2018043049A1 (en) | Encryption system, encryption method, and encryption program | |
JP6368047B2 (en) | Key exchange method, key exchange system, key distribution device, representative communication device, general communication device, and program | |
JP6649289B2 (en) | Encryption system, key generation device, encryption device, decryption device, and program | |
JP6259402B2 (en) | KEY DISTRIBUTION MANAGEMENT DEVICE, TERMINAL DEVICE, KEY DISTRIBUTION SYSTEM, AND PROGRAM | |
Gentry et al. | How to compress (reusable) garbled circuits | |
JP6649288B2 (en) | Encryption system, setup device, key generation device, encryption device, decryption device, and program | |
JP7119605B2 (en) | Ciphertext conversion system, ciphertext conversion method, and program | |
CN101321059B (en) | Method and system for encoding and decoding digital message | |
JP6189788B2 (en) | Key generation device, re-encryption device, and program | |
Jahan et al. | An algorithm to secure data for cloud storage | |
JP6759168B2 (en) | Obfuscation circuit generator, obfuscation circuit calculator, obfuscation circuit generation method, obfuscation circuit calculation method, program | |
Krzywiecki et al. | Coalition resistant anonymous broadcast encryption scheme based on PUF |
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 | Request for written amendment filed |
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: 6649288 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |