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 PDF

Info

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
Application number
JP2017001751A
Other languages
Japanese (ja)
Other versions
JP6649288B2 (en
Inventor
陵 西巻
Ryo Nishimaki
陵 西巻
冬航 北川
Fuyuki Kitagawa
冬航 北川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2017001751A priority Critical patent/JP6649288B2/en
Publication of JP2018112612A publication Critical patent/JP2018112612A/en
Application granted granted Critical
Publication of JP6649288B2 publication Critical patent/JP6649288B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To configure a functional type encryption having a collusion simplicity.SOLUTION: A master public-key generation program Σ is generated by acquiring a key k0 of a pseudo-random function F ' and a random bit sequence ρ, and an unidentifiable and obfuscated obfuscation program sxi0(Σ) is defined as mpk 2, and (KO, ρ0) is defined as msk 2. Both mpk1and msk1randomized by F '(Ko,(ρ0,i) ) are obtained, and skf=(sk,i) are obtained with respect to msk1i and a function f2. In the encryption, a cipher text generation program η'is generated and the obfuscation program ct=sxi0(η') making it unidentifiable and obfuscated is obtained. In the decryption, ctis obtained with respect to i taken from a secrete key sk, thereby decoding ctby sk.SELECTED DRAWING: Figure 2

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 Non-Patent Documents 2 and 3, an indistinguishability obfuscator is configured using 1-keyweakly-succinct public key function type encryption. Further, in the configuration method described in Non-Patent Document 5, an indistinguishability obfuscator is configured by using unbounded-key non-succinct secret key function encryption and (standard) public key encryption. (Definition of terms will be described later).

Sanjam Garg, Craig Gentry, Shai Halevi, Mariana Raykova, Amit Sahai, and Brent Waters, “Candidate indistinguishability obfuscation and functional encryption for all circuits,” In 54th FOCS, pages 40-49. IEEE Computer Society Press, October 2013.Sanjam Garg, Craig Gentry, Shai Halevi, Mariana Raykova, Amit Sahai, and Brent Waters, “Candidate indistinguishability obfuscation and functional encryption for all circuits,” In 54th FOCS, pages 40-49. IEEE Computer Society Press, October 2013. Prabhanjan Ananth and Abhishek Jain, “Indistinguishability obfuscation from compact functional encryption,” In Rosario Gennaro and Matthew J. B. Robshaw, editors, CRYPTO 2015, Part I, volume 9215 of LNCS, pages 308-326. Springer, Heidelberg, August 2015.Prabhanjan Ananth and Abhishek Jain, “Indistinguishability obfuscation from compact functional encryption,” In Rosario Gennaro and Matthew J. B. Robshaw, editors, CRYPTO 2015, Part I, volume 9215 of LNCS, pages 308-326. Springer, Heidelberg, August 2015. Nir Bitansky and Vinod Vaikuntanathan, “Indistinguishability obfuscation from functional encryption,” In Guruswami [Gur15], pages 171-190.Nir Bitansky and Vinod Vaikuntanathan, “Indistinguishability obfuscation from functional encryption,” In Guruswami [Gur15], pages 171-190. Prabhanjan Ananth, Abhishek Jain, and Amit Sahai, “Indistinguishability obfuscation from functional encryption for simple functions,” Cryptology ePrint Archive, Report 2015/730, 2015.Prabhanjan Ananth, Abhishek Jain, and Amit Sahai, “Indistinguishability obfuscation from functional encryption for simple functions,” Cryptology ePrint Archive, Report 2015/730, 2015. Nir Bitansky, Ryo Nishimaki, Alain Passel`egue, and Daniel Wichs, “From cryptomania to obfustopia through secret-key functional encryption,” IACR Cryptology ePrint Archive, 2016:558, 2016.Nir Bitansky, Ryo Nishimaki, Alain Passel`egue, and Daniel Wichs, “From cryptomania to obfustopia through secret-key functional encryption,” IACR Cryptology ePrint Archive, 2016: 558, 2016.

従来の構成方法では、暗号化回路のサイズが秘密鍵に対応する関数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’の鍵Kとランダムビット列ρを得、(2)入力されたi∈[q]について擬似乱数r’=F’(K,(ρ,i))を得るステップと、PKFE1.setupを実行して擬似乱数r’でランダム化されたマスター公開鍵mpk1およびマスター秘密鍵msk1の組を生成するステップと、マスター公開鍵mpk1を出力するステップと、を実行するマスター公開鍵生成プログラムΣを生成し、(3)マスター公開鍵生成プログラムΣを識別不可能性難読化した難読化プログラムsxiO(Σ)をマスター公開鍵mpk2として得、(K,ρ)をマスター秘密鍵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’(K,(ρ,i))でランダム化されたマスター公開鍵mpk1およびマスター秘密鍵msk1を得、FE1.keygenを実行してマスター秘密鍵msk1および関数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(Σ)を実行してマスター公開鍵mpk1を得るステップと、入力されたi∈[q]について擬似乱数r=F(K,i)を生成するステップと、マスター公開鍵mpk1、メッセージm、および擬似乱数rを入力としてPKFE1.encを実行して擬似乱数rでランダム化された暗号文ctを得るステップと、を実行する暗号文生成プログラムη’を得、(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]について暗号文ctを得、秘密鍵skf2 (i)および暗号文ctを入力として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.

図1はq−key結託簡素性を持つ関数型暗号の暗号システムを例示したブロック図である。FIG. 1 is a block diagram exemplifying a functional cryptosystem having q-key collusion simplicity. 図2はq−key結託簡素性を持つ関数型暗号の暗号システムを例示したブロック図である。FIG. 2 is a block diagram illustrating a functional cryptographic system having q-key collusion simplicity. 図3は1−key完全簡素性を持つ関数型暗号の暗号システムを例示したブロック図である。FIG. 3 is a block diagram illustrating an example of a functional cryptosystem having 1-key complete simplicity. 図4は1−key完全簡素性公開鍵関数型暗号を利用した識別不可能性難読化装置を例示したブロック図である。FIG. 4 is a block diagram illustrating an indistinguishability obfuscation device using 1-key complete simplicity public key function type encryption.

以下、本発明の実施形態を説明する。
[前提]
まず実施形態の前提事項を説明する。
「難読化(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,サイズが等しい任意のプログラム対(回路対)C,C∈Cλで任意の入力xについてC(x)=C(x)が成立するものに対し、以下を満たすことを意味する。
Pr[D(iO(C0))=1]-Pr[D(iO(C1))=1]≦δ(λ)
すなわち、iOが識別不可能性を満たすとは、iO(C)の判別結果D(iO(C))(iO(C)がCを難読化して得られたものなのかCを難読化して得られたものなのかの判別結果)が1となる(例えば、iO(C)がCを難読化して得られたものであると判別される)確率と、iO(C)の判別結果D(iO(C))が1となる(例えば、iO(C)がCを難読化して得られたものであると判別される)確率との違いが無視できることを意味する。
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に対する秘密鍵skを生成する。関数fは任意の関数でよく、例えば、f(m)=mまたはf(m)=⊥を満たす関数である。ただし、⊥はエラーを表す。
skf ← FE.keygen(msk,f)
暗号化アルゴリズム(PKFE.enc):マスター公開鍵mpkとメッセージmを入力とし、暗号文cを生成する。
c ← PKFE.enc(mpk, m)
復号アルゴリズム(FE.dec):関数fに対する秘密鍵skと暗号文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に対する秘密鍵skを生成する。関数fは任意の関数でよく、例えば、f(m)=mまたはf(m)=⊥を満たす関数である。ただし、⊥はエラーを表す。
skf ← FE.keygen(msk,f)
暗号化アルゴリズム(SKFE.enc):マスター秘密鍵mskとメッセージmを入力とし、暗号文cを生成する。
c ← SKFE.enc(msk, m)
復号アルゴリズム(FE.dec):関数fに対する秘密鍵skと暗号文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を満たす。なお、2は暗号化アルゴリズムへの入力値の総数となる。
|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の実行時間が高々2・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 · 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を実行してマスター公開鍵mpk1およびマスター秘密鍵msk1の組を生成する。すなわち、PKFE2.setupは、q対の(mpk1,msk1)(ただし、i∈[q]であり、[q]は{1,2,…,q}を意味する)を生成する。
(mpk1i,msk1i)←PKFE1.setup(1λ) for i∈[q]
ただし、λは正整数のセキュリティパラメータであり、PKFE1.setupは、各i∈[q]についてランダム化した(mpk1,msk1)を得る。PKFE2.setupは、各i∈[q]について得られた(mpk1,msk1)から、マスター公開鍵(システムパラメータ)mpk2=(mpk1,…,mpk1)およびマスター秘密鍵msk2=(msk1,…,msk1)を得て出力する。
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]について擬似乱数rを生成するステップと、マスター公開鍵mpk1、メッセージm、および擬似乱数rを入力としてPKFE1.encを実行して擬似乱数rでランダム化された暗号文ct(ただし、ctはメッセージ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(η)を実行することで暗号文ctを得る。難読化の「機能性」により、難読化プログラムctにiを入力することで、暗号文生成プログラムηのiに対する出力である暗号文ctが得られる。さらにFE2.dec(skf2,ct)は、秘密鍵skf2から取りだした秘密鍵skf2 (i)および得られた暗号文ctを入力として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’の鍵Kとランダムビット列ρ∈{0,1}λを得る。鍵Kおよびランダムビット列ρは、例えば、ランダムに選択される。次に、PKFE2.setup(1λ)は、マスター公開鍵生成プログラムΣを生成する。ただし、PKFE2.setupのマスター公開鍵生成プログラムΣは、入力されたi∈[q]について擬似乱数r’=F’(K,(ρ,i))を得るステップと、PKFE1.setupを実行して擬似乱数r’でランダム化されたマスター公開鍵mpk1およびマスター秘密鍵msk1の組を生成するステップと、マスター公開鍵mpk1を出力するステップと、を実行するプログラムである。なお、擬似ランダム関数F’は、鍵Kおよびインデックス(ρ,i)を入力として、それらに対応する擬似乱数F’(K,(ρ,i))を出力する。インデックス(ρ,i)は(ρ,i)から一義的に決まり、例えばρとiとのビット結合値である。さらに、PKFE2.setup(1λ)は、マスター公開鍵生成プログラムΣを識別不可能性難読化した難読化プログラムsxiO(Σ)をマスター公開鍵mpk2として得て出力し、(K,ρ)をマスター秘密鍵msk2として得て出力する。
mpk2:=sxiO(Σ)
msk2:=(K00)
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=(K,ρ)、および所定の関数f2を入力とし、PKFE1.setupを実行して疑似乱数F’(K,(ρ,i))でランダム化されたマスター公開鍵mpk1およびマスター秘密鍵msk1を得る。
(mpk1i, msk1i)←PKFE1.setup(1λ;F’(K0,(ρ0,i)))
またFE2.keygen(msk2,f2,i)は、FE1.keygenを実行してマスター秘密鍵msk1および関数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(Σ)を実行してマスター公開鍵mpk1を得るステップと、入力されたi∈[q]について擬似乱数r=F(K,i)を生成するステップと、マスター公開鍵mpk1、メッセージm、および擬似乱数rを入力としてPKFE1.encを実行して擬似乱数rでランダム化された暗号文ct(ただし、ctはメッセージ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]について暗号文ctを得る。難読化の「機能性」により難読化プログラムctにiを入力することで、暗号文生成プログラムη’のiに対する出力である暗号文ctが得られる。
cti←ct(i)
またFE2.dec(skf2,ct)は、秘密鍵skf2から取り出した秘密鍵skf2 (i)および得られた暗号文ctを入力として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を実行してマスター秘密鍵msk1の組を生成する。すなわち、SKFE2.setupは、q個のmsk1(ただし、i∈[q]であり、[q]は{1,2,…,q}を意味する)を生成する。
msk1i←SKFE1.setup(1λ) for i∈[q]
ただし、λは正整数のセキュリティパラメータであり、SKFE1.setupは、各i∈[q]についてランダム化したmsk1を得る。SKFE2.setupは、各i∈[q]について得られたmsk1から、マスター秘密鍵msk2=(msk1,…,msk1)を得て出力する。
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]について擬似乱数rを生成するステップと、マスター秘密鍵msk1、メッセージm、および擬似乱数rを入力としてSKFE1.encを実行して擬似乱数rでランダム化された暗号文ctを得るステップと、を実行するプログラムである。なお、穴開け可能擬似ランダム関数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(μ)を実行することで暗号文ctを得る。さらにFE2.dec(skf2,ct)は、秘密鍵skf2から取り出した秘密鍵skf2 (i)および得られた暗号文ctを入力として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’の鍵Kとランダムビット列ρ∈{0,1}λを得る。鍵Kおよびランダムビット列ρは、例えば、ランダムに選択される。SKFE2.setup(1λ)は、マスター秘密鍵msk2=(K,ρ)を得て出力する。
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=(K,ρ)、および所定の関数f2を入力とし、以下の処理を実行する。
FE2.keygen(msk2,f2,i)は、鍵Kおよびインデックス(ρ,i)を入力として擬似乱数F’(K,(ρ,i))を得、SKFE1.setupを実行して疑似乱数F’(K,(ρ,i))でランダム化されたマスター秘密鍵msk1を得る。
msk1i←SKFE1.setup(1λ;F’(K0,(ρ0,i)))
次にFE2.keygen(msk2,f2,i)は、FE1.keygenを実行してマスター秘密鍵msk1および関数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=(K,ρ)およびi∈[q]を入力とし、入力されたi∈[q]についてSKFE1.setupを実行して疑似乱数F’(K,(ρ,i))でランダム化されたマスター秘密鍵msk1を得るステップと、擬似乱数r=F(K,i)を生成するステップと、マスター秘密鍵msk1、メッセージm、および擬似乱数rを入力としてSKFE1.encを実行して擬似乱数rでランダム化された暗号文ct(ただし、ctはメッセージ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, K00
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]について暗号文ctを得る。難読化の「機能性」により難読化プログラムctにiを入力することで、暗号文生成プログラムμ’のiに対する出力である暗号文ctが得られる。
cti←ct(i)
またFE2.dec(skf2,ct)は、秘密鍵skf2から取り出した秘密鍵skf2 (i)および得られた暗号文ctを入力として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(λ,|μ|)・2となる。ここで難読化プログラムctへの入力値であるi∈[q]の総数はq=2であるため、当該サイズは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. Non-Patent Documents 3 and 4 disclose a method of configuring a 1-key complete simplicity public key function encryption (third function encryption) using q-key collusion simplicity public key function encryption. .

これらにより、公開鍵暗号を用いて構成される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). Non-Patent Documents 2 and 3 describe that an indistinguishability obfuscator can be configured using 1-key complete simplicity public key function type encryption. Therefore, the indistinguishability obfuscator can be configured by using the 1-key complete simplicity public key function type encryption (third function type encryption having 1-key complete simplicity) configured as described above. Furthermore, an indistinguishability obfuscator can be constructed from the public key cryptography and γ-SXIO from the above PK-1 to PK-3. That is, in total, an indistinguishability obfuscator can be constructed from 1-key complete simplicity secret key function type cipher and public key cipher (public key cipher obviously implies a one-way function).

公開鍵関数型暗号は秘密鍵関数型暗号よりも強い安全仮定を満たす必要があり(公開鍵関数型暗号は自明に秘密鍵関数型暗号に変換できる)、秘密鍵関数型暗号のほうが公開鍵関数型暗号よりも要求条件が低く扱いやすい。そのため、公開鍵関数型暗号よりも秘密鍵関数型暗号を利用して識別不可能性難読化器を構成するほうが望ましい。また、鍵の発行回数が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. Non-Patent Documents 3 and 4 disclose a method of configuring a 1-key complete simplicity secret key function type encryption (third function type encryption) using q-key collusion simple secret key function type encryption. .

これらにより、一方向性関数を用いて構成される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 encryption system 1 of this embodiment includes a setup device 11, a key generation device 12, an encryption device 13, and a decryption device 14. The setup device 11 includes, for example, a memory 111, a master key generation unit 112, and a communication unit 113. The key generation device 12 includes, for example, a memory 121, a pseudo random number generation unit 122, a secret key generation unit 123, and a communication unit 124. The encryption device 13 includes, for example, a memory 131, a pseudo random number generation unit 132, a pseudo random number key generation unit 133, a program generation unit 134, an obfuscation unit 135, and a communication unit 136. The decryption device 14 includes, for example, a memory 141, a ciphertext generation unit 142, a decryption unit 143, and a communication unit 144.

セットアップ装置11、鍵生成装置12、暗号化装置13、および復号装置14は、入力情報、演算過程で保存する必要がある情報、演算結果の情報をメモリ111,121,131,141にそれぞれ格納し、必要に応じて読み出して利用する。また、セットアップ装置11、鍵生成装置12、暗号化装置13、および復号装置14は、それぞれ通信部113,124,136,144によって情報の送受信を行う。各装置から送信された情報は、例えばネットワークを通じて他の装置に送信される。   The setup device 11, the key generation device 12, the encryption device 13, and the decryption device 14 store input information, information that needs to be saved in the calculation process, and calculation result information in the memories 111, 121, 131, and 141, respectively. Read out and use as necessary. In addition, the setup device 11, the key generation device 12, the encryption device 13, and the decryption device 14 transmit and receive information through the communication units 113, 124, 136, and 144, respectively. Information transmitted from each device is transmitted to other devices through a network, for example.

セットアップ装置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 setup device 11, the key generation device 12, the encryption device 13, and the decryption device 14 includes, for example, a communication device, a processor (hardware processor) such as a CPU (central processing unit), and a RAM (random-access memory). ) A device configured by a general-purpose or dedicated computer having a memory such as a ROM (read-only memory) executing a predetermined program. The computer may include a single processor and memory, or may include a plurality of processors and memory. This program may be installed in a computer, or may be recorded in a ROM or the like in advance. In addition, some or all of the processing units are configured using an electronic circuit that realizes a processing function without using a program, instead of an electronic circuit (circuitry) that realizes a functional configuration by reading a program like a CPU. May be. In addition, an electronic circuit constituting one device may include a plurality of CPUs.

なお、図1では、セットアップ装置11、鍵生成装置12、暗号化装置13、および復号装置14を1個ずつ例示するが、これらの少なくとも一部の装置が複数個存在していてもよい。   1 illustrates one setup device 11, one key generation device 12, one encryption device 13, and one decryption device 14, but a plurality of at least some of these devices may exist.

<処理>
次に本形態の処理を説明する。
≪セットアップアルゴリズム(PKFE2.setup(1λ))の実行処理≫
セットアップ装置11のマスター鍵生成部112は、各i∈[q]についてPKFE1.setupを実行してマスター公開鍵mpk1およびマスター秘密鍵msk1の組を生成し、生成されたq対の(mpk1,msk1)(ただし、i∈[q])をメモリ111に格納する。ただし、(mpk1,msk1)はi∈[q]ごとに生成された疑似乱数によってランダム化されている。マスター鍵生成部112は、各i∈[q]について得られた(mpk1,msk1)から、マスター公開鍵mpk2=(mpk1,…,mpk1)およびマスター秘密鍵msk2=(msk1,…,msk1)を生成してメモリ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 key generation unit 112 of the setup device 11 performs PKFE1. Execute setup to generate a set of master public key mpk1 i and master secret key msk1 i , and store the generated q pair (mpk1 i , msk1 i ) (where i∈ [q]) in memory 111 . However, (mpk1 i , msk1 i ) is randomized by a pseudorandom number generated for each i∈ [q]. The master key generation unit 112 obtains the master public key mpk2 = (mpk1 1 ,..., Mpk1 q ) and the master secret key msk2 = (msk1 1 , mk1 i ) from (mpk1 i , msk1 i ) obtained for each i∈ [q]. .., Msk1 q ) are generated and stored in the memory 111. The communication unit 113 transmits the master public key mpk2 to the encryption device 13 and transmits the master secret key msk2 to the key generation device 12.

≪鍵生成アルゴリズム(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 decryption device 14 are input to the communication unit 124 of the key generation device 12. These are stored in the memory 121. The pseudo random number generator 122 generates and outputs a pseudo random number. The secret key generation unit 123 receives iε [q], the function f2, the master secret key msk2 input to the communication unit 124, and the pseudorandom number generated by the pseudorandom number generation unit 122, and inputs FE1. The keygen is executed to generate a secret key sk f2 (i) for the function f2, and a secret key sk f2 = (sk f2 (i) , i) for the function f2 is obtained and stored in the memory 121. Note that the secret key sk f2 (i) is randomized by the pseudo random number. The communication unit 124 transmits the secret key sk f2 to the decryption device 14.

≪暗号化アルゴリズム(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 communication unit 136 of the encryption device 13, and the master public key mpk2 is stored in the memory 131. The pseudo random number generation unit 132 generates a pseudo random number and sends it to the pseudo random number key generation unit 133. The pseudo random number key generation unit 133 generates a key K of the puncturable pseudo random function F using the transmitted pseudo random number and stores the key K in the memory 131. The key K is randomized by this pseudo random number. The program generation unit 134 receives the message m, the master public key mpk2, and the key K and inputs the above-described PKFE2. The enc ciphertext generation program η is generated and stored in the memory 121. The obfuscation unit 135 generates an obfuscated program ct = sxiO (η) obtained by obfuscating the ciphertext generation program η with γ-SXIO and stores the generated obfuscation program in the memory 121. The communication unit 136 transmits the obfuscation program ct to the decryption device 14.

≪復号アルゴリズム(FE2.dec(skf2,ct))の実行処理≫
復号装置14の通信部144には、秘密鍵skf2および難読化プログラムctが入力され、これらはメモリ141に格納される。暗号文生成部142は、秘密鍵skf2=(skf2 (i),i)および難読化プログラムct=sxiO(η)を入力とし、秘密鍵skf2から取り出したi∈[q](鍵生成装置12に送信したi)をct=sxiO(η)に入力し、sxiO(η)を実行することで暗号文ctを生成し、当該暗号文ctをメモリ141に格納する。復号部143は、秘密鍵skf2から取り出した秘密鍵skf2 (i)および暗号文ctを入力としてFE1.decを実行し、秘密鍵skf2 (i)で暗号文ctを復号することで復元値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 communication unit 144 of the decryption device 14, and these are stored in the memory 141. The ciphertext generation unit 142 receives the secret key sk f2 = (sk f2 (i) , i) and the obfuscated program ct = sxiO (η) as input, and i∈ [q] (key generation) extracted from the secret key sk f2 The i) transmitted to the apparatus 12 is input to ct = sxiO (η), and the ciphertext ct i is generated by executing sxiO (η), and the ciphertext ct i is stored in the memory 141. Decoding unit 143, FE1 as input the secret key sk f2 (i) and the ciphertext ct i extracted from the secret key sk f2. Dec is executed, and the ciphertext ct i is decrypted with the secret key sk f2 (i) to obtain and output a restoration value m ′.

[第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 setup device 21, a key generation device 12, an encryption device 23, and a decryption device 14. The setup device 21 includes, for example, a memory 111, a master key generation unit 212, and a communication unit 113. The encryption device 23 includes, for example, a memory 131, a pseudo random number generation unit 132, a pseudo random number key generation unit 133, a program generation unit 234, an obfuscation unit 135, and a communication unit 136. The setup device 21 and the encryption device 23 store the input information, information that needs to be saved in the calculation process, and calculation result information in the memories 111 and 131, respectively, and read and use them as necessary. The setup device 21 and the encryption device 23 transmit and receive information through the communication units 113 and 136, respectively. The setup device 21 and the encryption device 23 are devices configured by the above-described computer executing a predetermined program, for example. In FIG. 1, one setup device 21 and encryption device 23 are illustrated, but at least one of the setup device 21 and the encryption device 23 may exist.

<処理>
次に本形態の処理を説明する
≪セットアップアルゴリズム(SKFE2.setup(1λ))の実行処理≫
セットアップ装置21のマスター鍵生成部212は、各i∈[q]についてSKFE1.setupを実行してマスター秘密鍵msk1を生成し、生成されたq個のmsk1(ただし、i∈[q])をメモリ111に格納する。ただし、msk1はi∈[q]ごとに生成された疑似乱数によってランダム化されている。マスター鍵生成部212は、各i∈[q]について得られたmsk1から、マスター秘密鍵msk2=(msk1,…,msk1)を生成してメモリ111に格納する。通信部113は、マスター秘密鍵msk2を鍵生成装置12および暗号化装置23に送信する。
<Processing>
«Execution of the setup algorithm (SKFE2.setup (1 λ))» described below a process of the present embodiment
The master key generation unit 212 of the setup device 21 performs SKFE1. Execute setup to generate a master secret key msk1 i and store the generated q msk1 i (where i∈ [q]) in the memory 111. However, msk1 i is randomized by a pseudo-random number generated for each i∈ [q]. The master key generation unit 212 generates a master secret key msk2 = (msk1 1 ,..., Msk1 q ) from msk1 i obtained for each i∈ [q] and stores it in the memory 111. The communication unit 113 transmits the master secret key msk2 to the key generation device 12 and the encryption device 23.

≪鍵生成アルゴリズム(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 setup device 21 is input to the communication unit 136 of the encryption device 23, and the master secret key msk2 is stored in the memory 131. The pseudo random number generation unit 132 generates a pseudo random number and sends it to the pseudo random number key generation unit 133. The pseudo random number key generation unit 133 generates a key K of the puncturable pseudo random function F using the transmitted pseudo random number and stores the key K in the memory 131. The key K is randomized by this pseudo random number. The program generation unit 234 receives the message m, the master secret key msk2, and the key K, and inputs the SKFE2. The enc ciphertext generation program μ is generated and stored in the memory 121. The obfuscation unit 135 generates an obfuscation program ct = sxiO (μ) obtained by obfuscating the ciphertext generation program μ with γ-SXIO and stores the generated obfuscation program in the memory 121. The communication unit 136 transmits the obfuscation program ct to the decryption device 14.

≪復号アルゴリズム(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 encryption device 23 instead of the obfuscation program ct transmitted from the encryption device 13 being input to the communication unit 144. Except that the obfuscation program ct transmitted from is input to the communication unit 144 and the obfuscation program ct is sxiO (μ) instead of the obfuscation program ct being sxiO (η). This is the same as that of the first embodiment.

[第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 encryption system 6 of this embodiment includes a setup device 61, a key generation device 62, an encryption device 63, and a decryption device 64. The setup device 61 includes, for example, a memory 111, a setting unit 612, a program generation unit 613, a master key generation unit 614, and a communication unit 113. The key generation device 62 includes, for example, a memory 121, a master key generation unit 622, a secret key generation unit 623, and a communication unit 124. The encryption device 63 includes, for example, a memory 131, a setting unit 632, a program generation unit 634, an obfuscation unit 635, and a communication unit 136. The decoding device 64 includes, for example, a memory 141, an execution unit 642, a decoding unit 643, and a communication unit 144.

セットアップ装置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 setup device 61, the key generation device 62, the encryption device 63, and the decryption device 64 store the input information, information that needs to be saved in the calculation process, and calculation result information in the memories 111, 121, 131, and 141, respectively. Read out and use as necessary. Further, the setup device 61, the key generation device 62, the encryption device 63, and the decryption device 64 perform transmission / reception of information by the communication units 113, 124, 136, and 144, respectively. Information transmitted from each device is transmitted to other devices through a network, for example. Each of the setup device 61, the key generation device 62, the encryption device 63, and the decryption device 64 is, for example, a device configured by the above-described computer executing a predetermined program. Although FIG. 2 illustrates one setup device 61, one key generation device 62, one encryption device 63, and one decryption device 64, a plurality of at least some of these devices may exist.

<処理>
次に本形態の処理を説明する。
≪セットアップアルゴリズム(PKFE2.setup(1λ))の実行処理≫
セットアップ装置61の設定部612は、λを入力として擬似ランダム関数F’の鍵Kとランダムビット列ρ∈{0,1}λを得てメモリ111に格納する。鍵Kおよびランダムビット列ρは、例えば、ランダムに選択される。次に、プログラム生成部613は、鍵Kおよびランダムビット列ρを入力とし、前述したPKFE2.setupのマスター公開鍵生成プログラムΣを生成してメモリ111に格納する。マスター鍵生成部614は、このマスター公開鍵生成プログラムΣを入力とし、マスター公開鍵生成プログラムΣを識別不可能性難読化した難読化プログラムsxiO(Σ)をマスター公開鍵mpk2として得て出力し、(K,ρ)をマスター秘密鍵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 setting unit 612 of the setup device 61 receives λ as an input, obtains a key K 0 and a random bit string ρ 0 ε {0, 1} λ of the pseudorandom function F ′, and stores them in the memory 111. The key K 0 and the random bit string ρ 0 are selected at random, for example. Next, the program generation unit 613 receives the key K 0 and the random bit string ρ 0 as input, and the PKFE2. A setup public public key generation program Σ is generated and stored in the memory 111. The master key generation unit 614 receives the master public key generation program Σ as an input, obtains and outputs the obfuscation program sxiO (Σ) obtained by obfuscating the master public key generation program Σ as the master public key mpk2, Obtain (K 0 , ρ 0 ) as the master secret key msk2 and output it. The master public key mpk2 and the master secret key msk2 are stored in the memory 111. The communication unit 113 transmits the master public key mpk2 to the encryption device 63 and transmits the master secret key msk2 to the key generation device 62.

≪鍵生成アルゴリズム(FE2.keygen(msk2,f2,i))の実行処理≫
鍵生成装置62の通信部124には、復号装置64から送信されたいずれかのi∈[q]および所定の関数f2、ならびにマスター秘密鍵msk2が入力される。これらはメモリ121に格納される。マスター鍵生成部622は、λ、いずれかのi∈[q]、マスター秘密鍵msk2=(K,ρ)、および関数f2を入力とし、PKFE1.setupを実行して疑似乱数F’(K,(ρ,i))でランダム化されたマスター公開鍵mpk1およびマスター秘密鍵msk1を得てメモリ121に格納する。秘密鍵生成部623は、マスター秘密鍵msk1および関数f2を入力とし、FE1.keygenを実行してマスター秘密鍵msk1および関数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 decryption device 64 are input to the communication unit 124 of the key generation device 62. These are stored in the memory 121. The master key generation unit 622 receives λ, one of i∈ [q], the master secret key msk2 = (K 0 , ρ 0 ), and the function f2, and inputs PKFE1. The setup is executed to obtain the master public key mpk1 i and the master secret key msk1 i randomized by the pseudo random number F ′ (K 0 , (ρ 0 , i)) and store them in the memory 121. The secret key generation unit 623 receives the master secret key msk1 i and the function f2, and inputs FE1. The keygen is executed to generate a master secret key msk1 i and a secret key sk f2 (i) for the function f2 and store them in the memory 121. Further, the secret key generation unit 623 receives any iε [q] transmitted from the decryption device 64 and the predetermined function f2, and uses the secret key sk f2 = (sk f2 (i) , i) for the function f2. Obtained and stored in the memory 121. The communication unit 124 transmits the secret key sk f2 to the decryption device 64.

≪暗号化アルゴリズム(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 communication unit 136 of the encryption device 63, and the master public key mpk2 is stored in the memory 131. The setting unit 632 generates a key K of the puncturable pseudorandom function F and stores it in the memory 131. For example, the key K is randomly generated. The program generation unit 634 receives the master public key mpk2 = sxiO (Σ), the message m, and the key K, and inputs the above-described PKFE2. An enc ciphertext generation program η ′ is generated. The obfuscation unit 635 receives the ciphertext generation program η ′ as an input, obtains an obfuscation program ct = sxiO (η ′) obtained by obfuscating the ciphertext generation program η ′ and stores it in the memory 131. The communication unit 136 transmits the obfuscation program ct to the decryption device 64.

≪復号アルゴリズム(FE2.dec(skf2,ct))の実行処理≫
復号装置64の通信部144には、秘密鍵skf2=(skf2 (i),i)および難読化プログラムctが入力され、これらはメモリ141に格納される。実行部642は、秘密鍵skf2=(skf2 (i),i)および難読化プログラムctを入力とし、秘密鍵skf2から取り出したi∈[q]について暗号文ctを得てメモリ141に格納する。難読化プログラムctにiを入力することで暗号文ctが得られる。復号部643は、秘密鍵skf2=(skf2 (i),i)から取り出した秘密鍵skf2 (i)および得られた暗号文ctを入力としてFE1.decを実行し、秘密鍵skf2 (i)で暗号文ctを復号して復元値m’を得て出力する。
<< Execution Process of Decoding Algorithm (FE2.dec (sk f2 , ct)) >>
The communication unit 144 of the decryption device 64 receives the secret key sk f2 = (sk f2 (i) , i) and the obfuscation program ct, which are stored in the memory 141. The execution unit 642 receives the secret key sk f2 = (sk f2 (i) , i) and the obfuscated program ct, obtains a ciphertext ct i for i∈ [q] extracted from the secret key sk f2, and stores the memory 141. To store. The ciphertext ct i is obtained by inputting i into the obfuscation program ct. Decoding unit 643, FE1 as input the secret key sk f2 = (sk f2 (i ), i) the private key was removed from sk f2 (i) and the resulting ciphertext ct i. Dec is executed, the ciphertext ct i is decrypted with the secret key sk f2 (i) , and a restored value m ′ is obtained and output.

[第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 encryption system 7 of this embodiment includes a setup device 71, a key generation device 72, an encryption device 73, and a decryption device 64. The setup device 71 includes, for example, a memory 111, a setting unit 612, a master key generation unit 714, and a communication unit 113. The key generation device 72 includes, for example, a memory 121, a master key generation unit 622, a secret key generation unit 623, and a communication unit 124. The encryption device 73 includes, for example, a memory 131, a setting unit 632, a program generation unit 734, an obfuscation unit 735, and a communication unit 136. The decoding device 64 includes, for example, a memory 141, an execution unit 642, a decoding unit 643, and a communication unit 144.

セットアップ装置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 setup device 71, the key generation device 72, the encryption device 73, and the decryption device 64 store the input information, information that needs to be saved in the calculation process, and calculation result information in the memories 111, 121, 131, and 141, respectively. Read out and use as necessary. In addition, the setup device 71, the key generation device 72, the encryption device 73, and the decryption device 64 transmit and receive information through the communication units 113, 124, 136, and 144, respectively. Information transmitted from each device is transmitted to other devices through a network, for example. Each of the setup device 71, the key generation device 72, the encryption device 73, and the decryption device 64 is an apparatus configured by, for example, the above-described computer executing a predetermined program. Although FIG. 2 illustrates one setup device 71, one key generation device 72, one encryption device 73, and one decryption device 64, a plurality of at least some of these devices may exist.

<処理>
次に本形態の処理を説明する。
≪セットアップアルゴリズム(SKFE2.setup(1λ))の実行処理≫
セットアップ装置71の設定部612は、λを入力とし、擬似ランダム関数F’の鍵Kとランダムビット列ρ∈{0,1}λを得てメモリ111に格納する。鍵Kおよびランダムビット列ρは、例えば、ランダムに選択される。マスター鍵生成部714は、鍵Kおよびランダムビット列ρを入力とし、マスター秘密鍵msk2=(K,ρ)を得てメモリ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 setting unit 612 of the setup device 71 receives λ as an input, obtains the key K 0 and the random bit string ρ 0 ε {0, 1} λ of the pseudorandom function F ′, and stores them in the memory 111. The key K 0 and the random bit string ρ 0 are selected at random, for example. The master key generation unit 714 receives the key K 0 and the random bit string ρ 0 , obtains a master secret key msk 2 = (K 0 , ρ 0 ), and stores it in the memory 111. The communication unit 113 transmits the master secret key msk2 to the key generation device 72 and the encryption device 73.

≪鍵生成アルゴリズム(FE2.keygen(msk2,f2,i))の実行処理≫
鍵生成装置72の通信部124には、復号装置64から送信されたいずれかのi∈[q]および所定の関数f2、ならびにマスター秘密鍵msk2=(K,ρ)が入力される。これらはメモリ121に格納される。マスター鍵生成部722は、鍵Kおよびインデックス(ρ,i)を入力として擬似乱数F’(K,(ρ,i))を得てメモリ121に格納する。さらにマスター鍵生成部722は、λおよび擬似乱数F’(K,(ρ,i))を入力とし、SKFE1.setupを実行して疑似乱数F’(K,(ρ,i))でランダム化されたマスター秘密鍵msk1を得てメモリ121に格納する。秘密鍵生成部623は、マスター秘密鍵msk1および関数f2を入力とし、E1.keygenを実行してマスター秘密鍵msk1および関数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 decryption device 64 and the master secret key msk2 = (K 0 , ρ 0 ) are input to the communication unit 124 of the key generation device 72. These are stored in the memory 121. The master key generation unit 722 receives the key K 0 and the index (ρ 0 , i) as input, obtains a pseudo random number F ′ (K 0 , (ρ 0 , i)), and stores it in the memory 121. Further, the master key generation unit 722 receives λ and a pseudo random number F ′ (K 0 , (ρ 0 , i)) as inputs, and SKFE 1. A setup is executed to obtain a master secret key msk1 i randomized with a pseudorandom number F ′ (K 0 , (ρ 0 , i)) and store it in the memory 121. The secret key generation unit 623 receives the master secret key msk1 i and the function f2 as inputs, and E1. The keygen is executed to generate a master secret key msk1 i and a secret key sk f2 (i) for the function f2 and store them in the memory 121. Further, the secret key generation unit 623 receives sk f2 (i) and i as inputs, obtains a secret key sk f2 = (sk f2 (i) , i) for the function f2, and stores it in the memory 121. The communication unit 124 transmits the secret key sk f2 to the decryption device 64.

≪暗号化アルゴリズム(SKFE2.enc(msk2,m))の実行処理≫
暗号化装置73の通信部136にはマスター秘密鍵msk2=(K,ρ)が入力され、このマスター公開鍵mpk2はメモリ131に格納される。設定部632は、穴開け可能擬似ランダム関数Fの鍵Kを得てメモリ131に格納する。例えば、鍵Kはランダムに生成される。プログラム生成部734は、鍵K、ランダムビット列ρ、鍵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 communication unit 136 of the encryption device 73, and this master public key mpk 2 is stored in the memory 131. The setting unit 632 obtains the key K of the puncturable pseudorandom function F and stores it in the memory 131. For example, the key K is randomly generated. The program generation unit 734 receives the key K 0 , the random bit string ρ 0 , the key K, and the message m, and inputs the above-described SKFE2. The enc ciphertext generation program μ ′ is obtained and stored in the memory 131. The obfuscation unit 735 receives the ciphertext generation program μ ′, obtains an obfuscation program ct = sxiO (μ ′) obtained by obfuscating the ciphertext generation program μ ′, and stores it in the memory 131. The communication unit 136 transmits the obfuscation program ct to the decryption device 64.

≪復号アルゴリズム(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 encryption device 73 instead of the obfuscation program ct transmitted from the encryption device 63 being input to the communication unit 144. The obfuscated program ct transmitted from the computer is input to the communication unit 144, and the obfuscated program ct is sxiO (μ ') instead of the obfuscated program ct being sxiO (η'). Is the same as that of the third embodiment.

[第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 encryption system 3 of the present embodiment includes a setup device 31, a key generation device 32, an encryption device 33, and a decryption device 34. The setup device 31 includes, for example, a memory 311, a master key generation unit 312, and a communication unit 313. The key generation device 32 includes, for example, a memory 321, a secret key generation unit 322, and a communication unit 323. The encryption device 33 includes, for example, a memory 331, an encryption unit 332, and a communication unit 333. The decoding device 34 includes, for example, a memory 341, a decoding unit 342, and a communication unit 343.

セットアップ装置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 setup device 31, the key generation device 32, the encryption device 33, and the decryption device 34 store the input information, information that needs to be saved in the calculation process, and calculation result information in the memories 311, 321, 331, and 341, respectively. Read out and use as necessary. In addition, the setup device 31, the key generation device 32, the encryption device 33, and the decryption device 34 transmit and receive information through the communication units 313, 323, 333, and 344, respectively. Information transmitted from each device is transmitted to other devices through a network, for example. Each of the setup device 31, the key generation device 32, the encryption device 33, and the decryption device 34 is, for example, a device configured by the above-described computer executing a predetermined program. Although FIG. 3 illustrates one setup device 31, one key generation device 32, one encryption device 33, and one decryption device 34, a plurality of at least some of these devices may exist.

<処理>
次に本形態の処理を説明する。本形態では、第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 Non-Patent Document 4. Each algorithm of the 1-key complete simplicity public key function type encryption (third function type encryption) shown below is executed.
≪Setup algorithm (PKFE3.setup) execution process≫
The master key generation unit 312 of the setup device 31 uses the setup algorithm (PKFE2.setup) of the first embodiment or the third embodiment, and uses the 1-key complete simplicity public key function type encryption described in Non-Patent Document 4. A setup algorithm (PKFE3.setup) of (third function type encryption) is executed, and a master public key mpk3 and a master secret key msk3 are generated and stored in the memory 311. The communication unit 313 transmits the master public key mpk3 to the encryption device 33 and transmits the master secret key msk3 to the key generation device 32.

≪鍵生成アルゴリズム(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 decryption device 34, and a predetermined function f3 are input to the communication unit 323 of the key generation device 32, and these are stored in the memory 321. The secret key generation unit 322 receives the master secret key msk3 and a predetermined function f3 as inputs, and uses the key generation algorithm (FE2.keygen) of the first embodiment or the third embodiment. The key generation algorithm (FE3.keygen) of the key complete simplicity public key function type encryption is executed, and the secret key sk f3 for the function f3 is generated and stored in the memory 321. The communication unit 323 transmits the secret key sk f3 to the decryption device 34.

≪暗号化アルゴリズム(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 communication unit 333 of the encryption device 33 and is stored in the memory 331. The encryption unit 332 receives the master public key mpk3 and the message m, uses the encryption algorithm (PKFE2.enc) of the first embodiment or the third embodiment, and uses the 1-key completeness described in Non-Patent Document 4. The encryption algorithm (PKFE3.enc) of the simple public key function type encryption is executed, and the ciphertext c3 of the message m is generated and stored in the memory 331. The communication unit 333 transmits the ciphertext c3 to the decryption device 34.

≪復号アルゴリズム(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 communication unit 343 of the decryption device 34, and these are stored in the memory 341. The decryption unit 342 receives the secret key sk f3 and the ciphertext c3, and uses the decryption algorithm FE2. Dec is used to execute the encryption algorithm (FE3.dec) of the 1-key complete simplicity public key function type encryption described in Non-Patent Document 4 to generate and output the function value f3 (m) of the message m To do.

[第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 encryption system 4 of this embodiment includes a setup device 41, a key generation device 32, an encryption device 43, and a decryption device 34. The setup device 41 includes, for example, a memory 311, a master key generation unit 412, and a communication unit 313. The encryption device 43 includes, for example, a memory 331, an encryption unit 332, and a communication unit 333.

セットアップ装置41および暗号化装置43は、入力情報、演算過程で保存する必要がある情報、演算結果の情報をメモリ311および331にそれぞれ格納し、必要に応じて読み出して利用する。また、セットアップ装置41および暗号化装置43は、それぞれ、通信部313および333によって情報の送受信を行う。各装置から送信された情報は、例えばネットワークを通じて他の装置に送信される。セットアップ装置41および暗号化装置43は、前述のコンピュータが所定のプログラムを実行することで構成される装置である。図3では、1個のセットアップ装置41および暗号化装置43を例示するが、セットアップ装置41および暗号化装置43の少なくとも一方が複数個存在していてもよい。   The setup device 41 and the encryption device 43 store input information, information that needs to be saved in the calculation process, and calculation result information in the memories 311 and 331, respectively, and read and use them as necessary. In addition, the setup device 41 and the encryption device 43 perform transmission / reception of information through the communication units 313 and 333, respectively. Information transmitted from each device is transmitted to other devices through a network, for example. The setup device 41 and the encryption device 43 are devices configured by the above-described computer executing a predetermined program. In FIG. 3, one setup device 41 and encryption device 43 are illustrated, but at least one of the setup device 41 and the encryption device 43 may exist.

<処理>
次に本形態の処理を説明する。本形態では、第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 Non-Patent Document 4. Each algorithm of the 1-key complete simplicity secret key function type encryption (third function type encryption) shown below is executed.

≪セットアップアルゴリズム(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 key generation unit 412 of the setup device 41 uses the setup algorithm (SKFE2.setup) of the second embodiment or the fourth embodiment, and uses the 1-key complete simplicity secret key function type encryption described in Non-Patent Document 4. A setup algorithm (SKFE3.setup) of (third function type encryption) is executed to generate a master secret key msk3 and store it in the memory 311. The communication unit 313 transmits the master secret key msk3 to the key generation device 32 and the encryption device 43.

≪鍵生成アルゴリズム(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 communication unit 333 of the encryption device 43 and stored in the memory 331. The encryption unit 332 receives the master secret key msk3 and the message m, uses the encryption algorithm (SKFE2.enc) of the second embodiment or the fourth embodiment, and uses the 1-key completeness described in Non-Patent Document 4. The encryption algorithm (SKFE3.enc) of the simple secret key function type encryption is executed, and the ciphertext c3 of the message m is generated and stored in the memory 331. The communication unit 333 transmits the ciphertext c3 to the decryption device 34.

≪復号アルゴリズム(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 encryption device 33 being input to the communication unit 344, the ciphertext c3 transmitted from the encryption device 43 is transmitted to the communication unit 343. Input, the decoding algorithm FE2. In place of dec, the decoding algorithm FE2. Except that dec is used, it is the same as that of the fifth embodiment.

[第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 Non-Patent Documents 2 and 3 is performed.

<構成>
図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 setup device 31, a key generation device 32, an obfuscation device 53, and an execution device 54. The obfuscation device 53 includes a memory 431, an encryption device 33, an obfuscation unit 532, and a communication unit 533. The execution device 54 includes a memory 541, a decryption device 34, an execution unit 542, and a communication unit 543.

難読化装置53および実行装置54は、入力情報、演算過程で保存する必要がある情報、演算結果の情報をメモリ531および541にそれぞれ格納し、必要に応じて読み出して利用する。また、難読化装置53および実行装置54は、それぞれ通信部533および543によって情報の送受信を行う。各装置から送信された情報は、例えばネットワークを通じて他の装置に送信される。難読化装置53および実行装置54は、それぞれ前述のコンピュータが所定のプログラムを実行することで構成される装置である。図4では、1個の難読化装置53および実行装置54を例示するが、これらの少なくとも一方が複数個存在してもよい。   The obfuscation device 53 and the execution device 54 store the input information, information that needs to be saved in the calculation process, and calculation result information in the memories 531 and 541, respectively, and read and use them as necessary. In addition, the obfuscation device 53 and the execution device 54 transmit and receive information through the communication units 533 and 543, respectively. Information transmitted from each device is transmitted to other devices through a network, for example. The obfuscation device 53 and the execution device 54 are devices each configured by the above-described computer executing a predetermined program. In FIG. 4, one obfuscation device 53 and execution device 54 are illustrated, but at least one of these may exist.

<処理>
次に本形態の処理を説明する。
≪セットアップアルゴリズム(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 obfuscation unit 532 of the obfuscation apparatus 53 uses the encryption apparatus 33 that receives the program pro to be obfuscated as input and executes the encryption algorithm (PKFE3.enc), and the identification described in Non-Patent Document 2 or 3 Program pro is obfuscated by impossibility obfuscation (that is, program pro is obfuscated using PKFE3.enc as an encryption algorithm executed in the process of indistinguishability obfuscation described in Patent Document 2 or 3) ), Obfuscation program iO (pro) is obtained and stored in memory 531. The communication unit 533 transmits the obfuscation program iO (pro) to the execution device 54.

≪難読化プログラムの実行処理≫
実行装置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 communication unit 543 of the execution device 54 and stored in the memory 541. The execution unit 542 receives the obfuscation program iO (pro) as an input and uses the decryption device 34 that executes the decryption algorithm (FE3.dec), and executes the obfuscation program iO (pro) described in Non-Patent Document 2 or 3. Perform the execution process (that is, execute the obfuscation program iO (pro) using FE3.dec as a decoding algorithm executed in the process of the obfuscation program execution process described in Patent Document 2 or 3) Get the execution result and output it.

[変形例等]
なお、本発明は上述の実施の形態に限定されるものではない。例えば、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。或いは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。これらの装置の一部からなる組み合わせが、同一の装置であってもよい。例えば、難読化装置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 obfuscation apparatus 53 may execute a setup algorithm (PKFE3.setup) and a key generation algorithm (FE3.keygen). In this case, the obfuscated program iO (pro) sent from the obfuscation device 53 to the execution device 54 includes the secret key sk f2 . Further, the execution unit 542 may receive the obfuscation program iO (pro) and the input value x as input, and execute the obfuscation program iO (pro) on the input value x.

上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。   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)

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関数型暗号の復号アルゴリズムであり、
(1)擬似ランダム関数F’の鍵Kとランダムビット列ρを得、(2)入力されたi∈[q]について擬似乱数r’=F’(K,(ρ,i))を得るステップと、前記PKFE1.setupを実行して前記擬似乱数r’でランダム化されたマスター公開鍵mpk1およびマスター秘密鍵msk1の組を生成するステップと、前記マスター公開鍵mpk1を出力するステップと、を実行するマスター公開鍵生成プログラムΣを生成し、(3)前記マスター公開鍵生成プログラムΣを識別不可能性難読化した難読化プログラムsxiO(Σ)をマスター公開鍵mpk2として得、(K,ρ)をマスター秘密鍵msk2として得る第2関数型暗号のセットアップアルゴリズムPKFE2.setupを実行するセットアップ装置と、
いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力とし、前記PKFE1.setupを実行して疑似乱数F’(K,(ρ,i))でランダム化されたマスター公開鍵mpk1およびマスター秘密鍵msk1を得、前記FE1.keygenを実行して前記マスター秘密鍵msk1および前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムFE2.keygenを実行する鍵生成装置と、
(1)穴開け可能擬似ランダム関数Fの鍵Kを得、(2)入力されたi∈[q]について難読化プログラムsxiO(Σ)を実行して前記マスター公開鍵mpk1を得るステップと、入力されたi∈[q]について擬似乱数r=F(K,i)を生成するステップと、前記マスター公開鍵mpk1、前記メッセージm、および前記擬似乱数rを入力として前記PKFE1.encを実行して前記擬似乱数rでランダム化された暗号文ctを得るステップと、を実行する暗号文生成プログラムη’を得、(3)前記暗号文生成プログラムη’を識別不可能性難読化した難読化プログラムct=sxiO(η’)を得る前記第2関数型暗号の暗号化アルゴリズムPKFE2.encを実行する暗号化装置と、
前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctを得、前記秘密鍵skf2 (i)および前記暗号文ctを入力として前記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.
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関数型暗号の復号アルゴリズムであり、
各i∈[q]について前記PKFE1.setupを実行してマスター公開鍵mpk1およびマスター秘密鍵msk1の組を生成し、マスター公開鍵mpk2=(mpk1,…,mpk1)およびマスター秘密鍵msk2=(msk1,…,msk1)を得る第2関数型暗号のセットアップアルゴリズムPKFE2.setupを実行するセットアップ装置と、
いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力として前記FE1.keygenを実行して前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムFE2.keygenを実行する鍵生成装置と、
入力されたi∈[q]について擬似乱数rを生成するステップと、前記マスター公開鍵mpk1、前記メッセージm、および前記擬似乱数rを入力として前記PKFE1.encを実行して前記擬似乱数rでランダム化された暗号文ctを得るステップと、を実行する暗号文生成プログラムηを得、前記暗号文生成プログラムηを識別不可能性難読化した難読化プログラムct=sxiO(η)を得る前記第2関数型暗号の暗号化アルゴリズムPKFE2.encを実行する暗号化装置と、
前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctを得、前記秘密鍵skf2 (i)および前記暗号文ctを入力として前記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.
qが1以上の整数であり、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関数型暗号の復号アルゴリズムであり、
擬似ランダム関数F’の鍵Kとランダムビット列ρを得、マスター秘密鍵msk2=(K,ρ)を得る第2関数型暗号のセットアップアルゴリズムSKFE2.setupを実行するセットアップ装置と、
いずれかのi∈[q]、前記マスター秘密鍵msk2=(K,ρ)、および所定の関数f2を入力とし、前記SKFE1.setupを実行して疑似乱数F’(K,(ρ,i))でランダム化されたマスター秘密鍵msk1を得、前記FE1.keygenを実行して前記マスター秘密鍵msk1および前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムFE2.keygenを実行する鍵生成装置と、
(1)穴開け可能擬似ランダム関数Fの鍵Kを得、(2)前記マスター秘密鍵msk2=(K,ρ)およびi∈[q]を入力とし、入力されたi∈[q]について前記SKFE1.setupを実行して疑似乱数F’(K,(ρ,i))でランダム化されたマスター秘密鍵msk1を得るステップと、擬似乱数r=F(K,i)を生成するステップと、前記マスター秘密鍵msk1、前記メッセージm、および前記擬似乱数rを入力として前記SKFE1.encを実行して前記擬似乱数rでランダム化された暗号文ctを得るステップと、を実行する暗号文生成プログラムμ’を得、(3)前記暗号文生成プログラムμ’を識別不可能性難読化した難読化プログラムct=sxiO(μ’)を得る前記第2関数型暗号の暗号化アルゴリズムSKFE2.encを実行する暗号化装置と、
前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctを得、前記秘密鍵skf2 (i)および前記暗号文ctを入力として前記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.
qが1以上の整数であり、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関数型暗号の復号アルゴリズムであり、
各i∈[q]について前記SKFE1.setupを実行してマスター秘密鍵msk1を生成し、マスター秘密鍵msk2=(msk1,…,msk1)を得る第2関数型暗号のセットアップアルゴリズムSKFE2.setupを実行するセットアップ装置と、
いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力として前記FE1.keygenを実行して前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムFE2.keygenを実行する鍵生成装置と、
入力されたi∈[q]について擬似乱数rを生成するステップと、前記マスター秘密鍵msk1、前記メッセージm、および前記擬似乱数rを入力として前記SKFE1.encを実行して前記擬似乱数rでランダム化された暗号文ctを得るステップと、を実行する暗号文生成プログラムμを得、前記暗号文生成プログラムμを識別不可能性難読化した難読化プログラムct=sxiO(μ)を得る前記第2関数型暗号の暗号化アルゴリズムSKFE2.encを実行する暗号化装置と、
前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctを得、前記秘密鍵skf2 (i)および前記暗号文ctを入力として前記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から4のいずれかの暗号システムであって、
前記第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.
請求項1から5のいずれかの暗号システムであって、
前記難読化プログラム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.
qが1以上の整数であり、PKFE1.setupが、マスター公開鍵mpk1およびマスター秘密鍵msk1を生成する第1関数型暗号のセットアップアルゴリズムであり、 擬似ランダム関数F’の鍵Kとランダムビット列ρを得る設定部と、
入力されたi∈[q]について擬似乱数r’=F’(K,(ρ,i))を得るステップと、前記PKFE1.setupを実行して前記擬似乱数r’でランダム化されたマスター公開鍵mpk1およびマスター秘密鍵msk1の組を生成するステップと、前記マスター公開鍵mpk1を出力するステップと、を実行するマスター公開鍵生成プログラムΣを生成するプログラム生成部と、
前記マスター公開鍵生成プログラムΣを識別不可能性難読化した難読化プログラムsxiO(Σ)をマスター公開鍵mpk2として得、(K,ρ)をマスター秘密鍵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.
qが1以上の整数であり、PKFE1.setupが、マスター公開鍵mpk1およびマスター秘密鍵msk1を生成する第1関数型暗号のセットアップアルゴリズムであり、FE1.keygenが、前記マスター秘密鍵msk1および所定の関数f1を入力とし、前記関数f1に対する秘密鍵skf1を生成する前記第1関数型暗号の鍵生成アルゴリズムであり、
(1)擬似ランダム関数F’の鍵Kとランダムビット列ρを得、(2)入力されたi∈[q]について擬似乱数r’=F’(K,(ρ,i))を得るステップと、前記PKFE1.setupを実行して前記擬似乱数r’でランダム化されたマスター公開鍵mpk1およびマスター秘密鍵msk1の組を生成するステップと、前記マスター公開鍵mpk1を出力するステップと、を実行するマスター公開鍵生成プログラムΣを生成し、(3)前記マスター公開鍵生成プログラムΣを識別不可能性難読化した難読化プログラムsxiO(Σ)をマスター公開鍵mpk2として得、(K,ρ)をマスター秘密鍵msk2として得る第2関数型暗号のセットアップアルゴリズムPKFE2.setupが実行されており、
いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力とし、前記PKFE1.setupを実行して疑似乱数F’(K,(ρ,i))でランダム化されたマスター公開鍵mpk1およびマスター秘密鍵msk1を得るマスター鍵生成部と、
前記FE1.keygenを実行して前記マスター秘密鍵msk1および前記関数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.
qが1以上の整数であり、PKFE1.setupが、マスター公開鍵mpk1およびマスター秘密鍵msk1を生成する第1関数型暗号のセットアップアルゴリズムであり、PKFE1.encが、前記マスター公開鍵mpk1およびメッセージmを入力とし、前記メッセージmの暗号文c1を生成する前記第1関数型暗号の暗号化アルゴリズムであり、
(1)擬似ランダム関数F’の鍵Kとランダムビット列ρを得、(2)入力されたi∈[q]について擬似乱数r’=F’(K,(ρ,i))を得るステップと、前記PKFE1.setupを実行して前記擬似乱数r’でランダム化されたマスター公開鍵mpk1およびマスター秘密鍵msk1の組を生成するステップと、前記マスター公開鍵mpk1を出力するステップと、を実行するマスター公開鍵生成プログラムΣを生成し、(3)前記マスター公開鍵生成プログラムΣを識別不可能性難読化した難読化プログラムsxiO(Σ)をマスター公開鍵mpk2として得、(K,ρ)をマスター秘密鍵msk2として得る第2関数型暗号のセットアップアルゴリズムPKFE2.setupが実行されており、
穴開け可能擬似ランダム関数Fの鍵Kを得る設定部と、
入力されたi∈[q]について難読化プログラムsxiO(Σ)を実行して前記マスター公開鍵mpk1を得るステップと、入力されたi∈[q]について擬似乱数r=F(K,i)を生成するステップと、前記マスター公開鍵mpk1、前記メッセージm、および前記擬似乱数rを入力として前記PKFE1.encを実行して前記擬似乱数rでランダム化された暗号文ctを得るステップと、を実行する暗号文生成プログラムη’を得るプログラム生成部と、
前記暗号文生成プログラムη’を識別不可能性難読化した難読化プログラム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.
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関数型暗号の復号アルゴリズムであり、
(1)擬似ランダム関数F’の鍵Kとランダムビット列ρを得、(2)入力されたi∈[q]について擬似乱数r’=F’(K,(ρ,i))を得るステップと、前記PKFE1.setupを実行して前記擬似乱数r’でランダム化されたマスター公開鍵mpk1およびマスター秘密鍵msk1の組を生成するステップと、前記マスター公開鍵mpk1を出力するステップと、を実行するマスター公開鍵生成プログラムΣを生成し、(3)前記マスター公開鍵生成プログラムΣを識別不可能性難読化した難読化プログラムsxiO(Σ)をマスター公開鍵mpk2として得、(K,ρ)をマスター秘密鍵msk2として得る第2関数型暗号のセットアップアルゴリズムPKFE2.setupが実行されており、
いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力とし、前記PKFE1.setupを実行して疑似乱数F’(K,(ρ,i))でランダム化されたマスター公開鍵mpk1およびマスター秘密鍵msk1を得、前記FE1.keygenを実行して前記マスター秘密鍵msk1および前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムFE2.keygenが実行されており、
(1)穴開け可能擬似ランダム関数Fの鍵Kを得、(2)入力されたi∈[q]について難読化プログラムsxiO(Σ)を実行して前記マスター公開鍵mpk1を得るステップと、入力されたi∈[q]について擬似乱数r=F(K,i)を生成するステップと、前記マスター公開鍵mpk1、前記メッセージm、および前記擬似乱数rを入力として前記PKFE1.encを実行して前記擬似乱数rでランダム化された暗号文ctを得るステップと、を実行する暗号文生成プログラムη’を得、(3)前記暗号文生成プログラムη’を識別不可能性難読化した難読化プログラムct=sxiO(η’)を得る前記第2関数型暗号の暗号化アルゴリズムPKFE2.encが実行されており、
前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctを得る実行部と、
前記秘密鍵skf2 (i)および前記暗号文ctを入力として前記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.
qが1以上の整数であり、PKFE1.setupが、マスター公開鍵mpk1およびマスター秘密鍵msk1を生成する第1関数型暗号のセットアップアルゴリズムであり、PKFE1.encが、前記マスター公開鍵mpk1およびメッセージmを入力とし、前記メッセージmの暗号文c1を生成する前記第1関数型暗号の暗号化アルゴリズムであり、
各i∈[q]について前記PKFE1.setupを実行してマスター公開鍵mpk1およびマスター秘密鍵msk1の組を生成し、マスター公開鍵mpk2=(mpk1,…,mpk1)およびマスター秘密鍵msk2=(msk1,…,msk1)を得る第2関数型暗号のセットアップアルゴリズムPKFE2.setupが実行されており、
入力されたi∈[q]について擬似乱数rを生成するステップと、前記マスター公開鍵mpk1、前記メッセージm、および前記擬似乱数rを入力として前記PKFE1.encを実行して前記擬似乱数rでランダム化された暗号文ctを得るステップと、を実行する暗号文生成プログラムηを得るプログラム生成部と、
前記暗号文生成プログラムηを識別不可能性難読化した難読化プログラム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.
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関数型暗号の復号アルゴリズムであり、
各i∈[q]について前記PKFE1.setupを実行してマスター公開鍵mpk1およびマスター秘密鍵msk1の組を生成し、マスター公開鍵mpk2=(mpk1,…,mpk1)およびマスター秘密鍵msk2=(msk1,…,msk1)を得る第2関数型暗号のセットアップアルゴリズムPKFE2.setupと、
いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力として前記FE1.keygenを実行して前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムFE2.keygenと、
入力されたi∈[q]について擬似乱数rを生成するステップと、前記マスター公開鍵mpk1、前記メッセージm、および前記擬似乱数rを入力として前記PKFE1.encを実行して前記擬似乱数rでランダム化された暗号文ctを得るステップと、を実行する暗号文生成プログラムηを得、前記暗号文生成プログラムηを識別不可能性難読化した難読化プログラムct=sxiO(η)を得る前記第2関数型暗号の暗号化アルゴリズムPKFE2.encと、が実行されており、
前記秘密鍵skf2および前記難読化プログラムctを入力とし、いずれかのi∈[q]について前記暗号文ctを得る暗号文生成部と、
前記秘密鍵skf2 (i)および前記暗号文ctを入力として前記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.
qが1以上の整数であり、SKFE1.setupが、マスター秘密鍵msk1を生成する第1関数型暗号のセットアップアルゴリズムであり、FE1.keygenが、前記マスター秘密鍵msk1および所定の関数f1を入力とし、前記関数f1に対する秘密鍵skf1を生成する前記第1関数型暗号の鍵生成アルゴリズムであり、
擬似ランダム関数F’の鍵Kとランダムビット列ρを得、マスター秘密鍵msk2=(K,ρ)を得る第2関数型暗号のセットアップアルゴリズムSKFE2.setupが実行されており、
いずれかのi∈[q]、前記マスター秘密鍵msk2=(K,ρ)、および所定の関数f2を入力とし、前記SKFE1.setupを実行して疑似乱数F’(K,(ρ,i))でランダム化されたマスター秘密鍵msk1を得るマスター鍵生成部と、
前記FE1.keygenを実行して前記マスター秘密鍵msk1および前記関数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.
qが1以上の整数であり、SKFE1.setupが、マスター秘密鍵msk1を生成する第1関数型暗号のセットアップアルゴリズムであり、SKFE1.encが、前記マスター秘密鍵msk1およびメッセージmを入力とし、前記メッセージmの暗号文c1を生成する前記第1関数型暗号の暗号化アルゴリズムであり、 擬似ランダム関数F’の鍵Kとランダムビット列ρを得、マスター秘密鍵msk2=(K,ρ)を得る第2関数型暗号のセットアップアルゴリズムSKFE2.setupが実行されており、
穴開け可能擬似ランダム関数Fの鍵Kを得る設定部と、
前記マスター秘密鍵msk2=(K,ρ)およびi∈[q]を入力とし、入力されたi∈[q]について前記SKFE1.setupを実行して疑似乱数F’(K,(ρ,i))でランダム化されたマスター秘密鍵msk1を得るステップと、擬似乱数r=F(K,i)を生成するステップと、前記マスター秘密鍵msk1、前記メッセージm、および前記擬似乱数rを入力として前記SKFE1.encを実行して前記擬似乱数rでランダム化された暗号文ctを得るステップと、を実行する暗号文生成プログラムμ’を得るプログラム生成部と、
前記暗号文生成プログラムμ’を識別不可能性難読化した難読化プログラム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.
qが1以上の整数であり、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関数型暗号の復号アルゴリズムであり、
擬似ランダム関数F’の鍵Kとランダムビット列ρを得、マスター秘密鍵msk2=(K,ρ)を得る第2関数型暗号のセットアップアルゴリズムSKFE2.setupと、
いずれかのi∈[q]、前記マスター秘密鍵msk2=(K,ρ)、および所定の関数f2を入力とし、前記SKFE1.setupを実行して疑似乱数F’(K,(ρ,i))でランダム化されたマスター秘密鍵msk1を得、前記FE1.keygenを実行して前記マスター秘密鍵msk1および前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムFE2.keygenと、
(1)穴開け可能擬似ランダム関数Fの鍵Kを得、(2)前記マスター秘密鍵msk2=(K,ρ)およびi∈[q]を入力とし、入力されたi∈[q]について前記SKFE1.setupを実行して疑似乱数F’(K,(ρ,i))でランダム化されたマスター秘密鍵msk1を得るステップと、擬似乱数r=F(K,i)を生成するステップと、前記マスター秘密鍵msk1、前記メッセージm、および前記擬似乱数rを入力として前記SKFE1.encを実行して前記擬似乱数rでランダム化された暗号文ctを得るステップと、を実行する暗号文生成プログラムμ’を得、(3)前記暗号文生成プログラムμ’を識別不可能性難読化した難読化プログラムct=sxiO(μ’)を得る前記第2関数型暗号の暗号化アルゴリズムSKFE2.encと、が実行されており、
前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctを得る実行部と、
前記秘密鍵skf2 (i)および前記暗号文ctを入力として前記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.
qが1以上の整数であり、SKFE1.setupが、マスター秘密鍵msk1を生成する第1関数型暗号のセットアップアルゴリズムであり、SKFE1.encが、前記マスター秘密鍵msk1およびメッセージmを入力とし、前記メッセージmの暗号文c1を生成する前記第1関数型暗号の暗号化アルゴリズムであり、
各i∈[q]について前記SKFE1.setupを実行してマスター秘密鍵msk1を生成し、マスター秘密鍵msk2=(msk1,…,msk1)を得る第2関数型暗号のセットアップアルゴリズムSKFE2.setupが実行されており、
入力されたi∈[q]について擬似乱数rを生成するステップと、前記マスター秘密鍵msk1、前記メッセージm、および前記擬似乱数rを入力として前記SKFE1.encを実行して前記擬似乱数rでランダム化された暗号文ctを得るステップと、を実行する暗号文生成プログラムμを得るプログラム生成部と、
前記暗号文生成プログラムμを識別不可能性難読化した難読化プログラム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.
qが1以上の整数であり、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関数型暗号の復号アルゴリズムであり、
各i∈[q]について前記SKFE1.setupを実行してマスター秘密鍵msk1を生成し、マスター秘密鍵msk2=(msk1,…,msk1)を得る第2関数型暗号のセットアップアルゴリズムSKFE2.setupと、
いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力として前記FE1.keygenを実行して前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムFE2.keygenと、
入力されたi∈[q]について擬似乱数rを生成するステップと、前記マスター秘密鍵msk1、前記メッセージm、および前記擬似乱数rを入力として前記SKFE1.encを実行して前記擬似乱数rでランダム化された暗号文ctを得るステップと、を実行する暗号文生成プログラムμを得、前記暗号文生成プログラムμを識別不可能性難読化した難読化プログラムct=sxiO(μ)を得る前記第2関数型暗号の暗号化アルゴリズムSKFE2.encと、が実行されており、
前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctを得る暗号文生成部と、
前記秘密鍵skf2 (i)および前記暗号文ctを入力として前記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.
qが1以上の整数であり、rが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関数型暗号の復号アルゴリズムであり、前記第1関数型暗号は公開鍵暗号を用いて構成されるr−key公開鍵関数型暗号であり、
PKFE2.setupが、各i∈[q]について前記PKFE1.setupを実行してマスター公開鍵mpk1およびマスター秘密鍵msk1の組を生成し、マスター公開鍵mpk2=(mpk1,…,mpk1)およびマスター秘密鍵msk2=(msk1,…,msk1)を得る第2関数型暗号のセットアップアルゴリズムであり、FE2.keygenが、いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力として前記FE1.keygenを実行して前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムであり、PKFE2.encが、入力されたi∈[q]について擬似乱数rを生成するステップと、前記マスター公開鍵mpk1、前記メッセージm、および前記擬似乱数rを入力として前記PKFE1.encを実行して前記擬似乱数rでランダム化された暗号文ctを得るステップと、を実行する暗号文生成プログラムηを得、前記暗号文生成プログラムηを識別不可能性難読化した難読化プログラムct=sxiO(η)を得る前記第2関数型暗号の暗号化アルゴリズムであり、FE2.decが、前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctを得、前記秘密鍵skf2 (i)および前記暗号文ctを入力として前記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.
qが1以上の整数であり、rが1以上の整数であり、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関数型暗号の復号アルゴリズムであり、前記第1関数型暗号は秘密鍵暗号を用いて構成されるr−key秘密鍵関数型暗号であり、
SKFE2.setupが、各i∈[q]について前記SKFE1.setupを実行してマスター秘密鍵msk1を生成し、マスター秘密鍵msk2=(msk1,…,msk1)を得る第2関数型暗号のセットアップアルゴリズムであり、FE2.keygenが、いずれかのi∈[q]、前記マスター秘密鍵msk2、および所定の関数f2を入力として前記FE1.keygenを実行して前記関数f2に対する秘密鍵skf2 (i)を生成し、秘密鍵skf2=(skf2 (i),i)を得る前記第2関数型暗号の鍵生成アルゴリズムであり、SKFE2.encが、入力されたi∈[q]について擬似乱数rを生成するステップと、前記マスター秘密鍵spk1、前記メッセージm、および前記擬似乱数rを入力として前記SKFE1.encを実行して前記擬似乱数rでランダム化された暗号文ctを得るステップと、を実行する暗号文生成プログラムμを得、前記暗号文生成プログラムμを識別不可能性難読化した難読化プログラムct=sxiO(μ)を得る前記第2関数型暗号の暗号化アルゴリズムであり、FE2.decが、前記秘密鍵skf2および前記難読化プログラムctを入力とし、前記秘密鍵skf2から取り出したi∈[q]について前記暗号文ctを得、前記秘密鍵skf2 (i)および前記暗号文ctを入力として前記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.
請求項18の前記暗号システムが有する前記暗号化装置を用い、入力されたプログラムを識別不可能性難読化して難読化プログラムを生成する難読化装置。   An obfuscation apparatus that generates an obfuscated program by obfuscating an input program using the encryption apparatus included in the encryption system according to claim 18. 請求項18の前記暗号システムが有する前記復号装置を用い、請求項20の前記難読化装置で生成された前記難読化プログラムを実行する実行装置。   An execution device that executes the obfuscation program generated by the obfuscation device of claim 20, using the decryption device included in the encryption system of claim 18. 請求項7のセットアップ装置、請求項8または13の鍵生成装置、請求項9、11、14、または16の暗号化装置、請求項10,12、15または17の復号装置、請求項20の難読化装置、もしくは請求項21の実行装置の機能をコンピュータに実行させるためのプログラム。   A setup device according to claim 7, a key generation device according to claim 8 or 13, an encryption device according to claim 9, 11, 14 or 16, a decryption device according to claim 10, 12, 15 or 17, and an obfuscation according to claim 20. 23. A program for causing a computer to execute the function of the computer or the execution device of claim 21.
JP2017001751A 2017-01-10 2017-01-10 Encryption system, setup device, key generation device, encryption device, decryption device, and program Active JP6649288B2 (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023238230A1 (en) * 2022-06-07 2023-12-14 日本電信電話株式会社 Encryption system

Citations (4)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
越中谷隼人ほか, 難読化技術を用いたサインディクリプション方式の構成, JPN6019044287, 24 January 2017 (2017-01-24), pages 1 - 5, ISSN: 0004153243 *

Cited By (1)

* Cited by examiner, † Cited by third party
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