JP6189788B2 - Key generation device, re-encryption device, and program - Google Patents

Key generation device, re-encryption device, and program Download PDF

Info

Publication number
JP6189788B2
JP6189788B2 JP2014095054A JP2014095054A JP6189788B2 JP 6189788 B2 JP6189788 B2 JP 6189788B2 JP 2014095054 A JP2014095054 A JP 2014095054A JP 2014095054 A JP2014095054 A JP 2014095054A JP 6189788 B2 JP6189788 B2 JP 6189788B2
Authority
JP
Japan
Prior art keywords
key
ciphertext
algorithm
encryption
decryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014095054A
Other languages
Japanese (ja)
Other versions
JP2015213233A (en
Inventor
恵太 草川
恵太 草川
陵 西巻
陵 西巻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014095054A priority Critical patent/JP6189788B2/en
Publication of JP2015213233A publication Critical patent/JP2015213233A/en
Application granted granted Critical
Publication of JP6189788B2 publication Critical patent/JP6189788B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、暗号化技術に関し、特に、ある暗号化鍵で暗号化された暗号文を、その暗号化鍵に対応する復号鍵とは異なる復号鍵を用いて復号することを可能とする技術に関する。   The present invention relates to an encryption technique, and more particularly to a technique that enables a ciphertext encrypted with a certain encryption key to be decrypted using a decryption key different from the decryption key corresponding to the encryption key. .

公開鍵暗号方式では、ある暗号化鍵(公開鍵)で暗号化された暗号文を復号出来るのは、その公開鍵に対応する復号鍵(秘密鍵)を有する者にのみ限られる。例えば、ユーザhからユーザiに平文mを送信する場合、ユーザhはユーザiの暗号化鍵EKを用いて暗号文CTを生成し、iに送信する。暗号化鍵EKに対応する復号鍵DKを持つユーザのみがこのCTを復号できる。加えて、変換鍵を用いることによって、その暗号文を異なる復号鍵を用いて復号可能となる暗号文に変換する方式が、プロキシ再暗号化方式である。この方式は、復号権限を委譲するユーザ、復号権限を委譲されるユーザ、および暗号文を変換するプロキシから構成される。例えば、ユーザiがユーザjに復号権限を委譲する場合、変換鍵RKi,jを作成し、それをプロキシに委託する。変換鍵RKi,jを持つプロキシは、入力された暗号文CTを暗号文CTに変換して出力する。このとき、暗号化鍵EKに対応する復号鍵DKを持つユーザはこのCTを復号して平文を得ることができる。変換鍵RKi,jが、ユーザiからユーザjへの変換およびユーザjからユーザiへの変換を許すとき、変換鍵は双方向であるという。変換鍵RKi,jが、ユーザiからユーザjへの変換のみを許すとき、変換鍵は単方向であるという。プロキシ再暗号化方式は、非特許文献1で初めて提案された。それ以降、離散対数問題や楕円離散対数問題に基づいて様々なプロキシ再暗号化方式が提案されている。格子問題に基づくプロキシ再暗号化方式として、非特許文献2〜6に開示された方式がある。 In the public key cryptosystem, a ciphertext encrypted with a certain encryption key (public key) can be decrypted only by a person having a decryption key (secret key) corresponding to the public key. For example, when the plaintext m is transmitted from the user h to the user i, the user h generates the ciphertext CT i using the encryption key EK i of the user i and transmits it to i. Only a user having the decryption key DK i corresponding to the encryption key EK i can decrypt this CT i . In addition, a proxy re-encryption scheme is a scheme that uses a conversion key to convert the ciphertext into a ciphertext that can be decrypted using a different decryption key. This method is composed of a user who delegates decryption authority, a user who is delegated decryption authority, and a proxy that converts ciphertext. For example, when the user i delegates the decryption authority to the user j, the conversion key RK i, j is created and delegated to the proxy. The proxy having the conversion key RK i, j converts the input ciphertext CT i into the ciphertext CT j and outputs it. In this case, a user with the decryption key DK j corresponding to the encryption key EK j can obtain plaintext decodes the CT j. When the conversion key RK i, j allows conversion from user i to user j and from user j to user i, the conversion key is said to be bidirectional. When the conversion key RK i, j only allows conversion from user i to user j, the conversion key is said to be unidirectional. A proxy re-encryption scheme was first proposed in Non-Patent Document 1. Since then, various proxy re-encryption schemes have been proposed based on discrete logarithm problems and elliptic discrete logarithm problems. As proxy re-encryption methods based on the lattice problem, there are methods disclosed in Non-Patent Documents 2 to 6.

Matt Blaze, Gerrit Bleumer, and Martin Strauss. Divertible protocols and atomic proxy cryptography, in Kaisa Nyberg, editor, EUROCRYPT’98, volume 1403 of LNCS, pages 127-144, Springer, Heidelberg, 1998.Matt Blaze, Gerrit Bleumer, and Martin Strauss.Divertible protocols and atomic proxy cryptography, in Kaisa Nyberg, editor, EUROCRYPT’98, volume 1403 of LNCS, pages 127-144, Springer, Heidelberg, 1998. Yoshinori Aono, Xavier Boyen, Le Trieu Phong, and Lihua Wang. Key-private proxy re-encryption under LWE, in Goutam Paul and Paul Vaudenay, editors, INDOCRYPT 2013, volume 8250 of LNCS, pages 1-18, Springer, Heidelberg, 2013.Yoshinori Aono, Xavier Boyen, Le Trieu Phong, and Lihua Wang.Key-private proxy re-encryption under LWE, in Goutam Paul and Paul Vaudenay, editors, INDOCRYPT 2013, volume 8250 of LNCS, pages 1-18, Springer, Heidelberg, 2013. Nishanth Chandran, Melissa Chase, Feng-Hao Liu, Ryo Nishimaki, and Keita Xagawa. Re-encryption, functional re-encryption, and multi-hop re-encryption: A framework for achieving obfuscation-based security and instantiations from lattices. In Hugo Krawczyk, editor, PKC 2014, volume 8383 of LNCS, pages 95-112, Springer, Heidelberg, 2014.Nishanth Chandran, Melissa Chase, Feng-Hao Liu, Ryo Nishimaki, and Keita Xagawa.Re-encryption, functional re-encryption, and multi-hop re-encryption: A framework for achieving obfuscation-based security and instantiations from lattices.In Hugo Krawczyk, editor, PKC 2014, volume 8383 of LNCS, pages 95-112, Springer, Heidelberg, 2014. Elena Kirshanova, Proxy re-encryption from lattices, in Hugo Krawczyk, editor, PKC 2014, volume 8383 of LNCS, pages 77-94, Springer, Heidelberg, 2014.Elena Kirshanova, Proxy re-encryption from lattices, in Hugo Krawczyk, editor, PKC 2014, volume 8383 of LNCS, pages 77-94, Springer, Heidelberg, 2014. 草川恵太, 関連鍵攻撃に対する識別不可能性と双方向代理人再暗号化, SCIS 2011, 2011.Keita Kusagawa, Indistinguishability against related key attacks and two-way proxy re-encryption, SCIS 2011, 2011. Keita Xagawa and Keisuke Tanaka, Proxy re-encryption based on learning with errors, SCIS 2010, 2010.Keita Xagawa and Keisuke Tanaka, Proxy re-encryption based on learning with errors, SCIS 2010, 2010.

ユーザiからユーザjへの変換を行う単方向変換鍵RKi→jを考える。この単方向変換鍵からユーザiとjの情報が漏れない場合、鍵匿名性があるという。これまで提案されてきた格子問題に基づく単方向プロキシ再暗号化方式として非特許文献2,3,4に開示された方式がある。しかしながら、これらの方式には鍵匿名性が無い。例えば、非特許文献2および非特許文献3の方式では、変換鍵RKi→jが基本変換鍵rki→jと変換先のユーザjの暗号化鍵ekら構成される。公開鍵である暗号化鍵ekにはユーザjを特定するための情報(公開鍵証明書等)が紐付けられている。そのため、暗号化鍵ekを特定できればそれに対応するユーザを特定できる。よって、これらの方式では変換鍵RKi→jからユーザjを容易に特定することができる。 Consider a unidirectional conversion key RK i → j that performs conversion from user i to user j. If the information of users i and j does not leak from this unidirectional conversion key, it is said that there is key anonymity. Non-Patent Documents 2, 3 and 4 have been proposed as unidirectional proxy re-encryption schemes based on the lattice problem that has been proposed so far. However, these methods do not have key anonymity. For example, in the methods of Non-Patent Document 2 and Non-Patent Document 3, the conversion key RK i → j is composed of the basic conversion key rk i → j and the encryption key ek j of the conversion destination user j. Information (public key certificate or the like) for specifying the user j is associated with the encryption key ek j which is a public key. Therefore, if the encryption key ek j can be specified, the corresponding user can be specified. Therefore, in these methods, the user j can be easily specified from the conversion key RK i → j .

本発明はこのような点に鑑みてなされたものであり、変換鍵から変換先の情報が漏えいすることを抑制可能な技術を提供することを課題とする。   This invention is made | formed in view of such a point, and makes it a subject to provide the technique which can suppress that the information of a conversion destination leaks from a conversion key.

第1復号鍵および第2暗号化鍵を用い、第1暗号文を第2暗号文に変換するための基本変換鍵を得、第2暗号化鍵を用い、第2暗号化鍵をランダム化してランダム化鍵を得る。ただし、第1復号鍵が第1暗号文を復号するための鍵であり、第2復号鍵が第2暗号文を復号するための鍵であり、第2暗号化鍵が第2復号鍵に対応する鍵であり、ランダム化鍵を用いて暗号化された暗号文は第2復号鍵で復号可能である。   Using the first decryption key and the second encryption key, obtaining a basic conversion key for converting the first ciphertext into the second ciphertext, using the second encryption key, and randomizing the second encryption key Get a random key. However, the first decryption key is a key for decrypting the first ciphertext, the second decryption key is a key for decrypting the second ciphertext, and the second encryption key corresponds to the second decryption key The ciphertext encrypted using the randomizing key can be decrypted with the second decryption key.

以上のように生成した基本変換鍵およびランダム化鍵を変換鍵として利用することができる。ランダム化鍵は第2暗号化鍵をランダム化して得られたものである。これにより、攻撃者等の第三者はランダム化鍵から第2暗号化鍵を特定することができない。その結果、変換鍵から変換先の情報が漏えいすることを抑制できる。   The basic conversion key and the randomized key generated as described above can be used as the conversion key. The random key is obtained by randomizing the second encryption key. Thereby, a third party such as an attacker cannot specify the second encryption key from the randomization key. As a result, it is possible to suppress leakage of conversion destination information from the conversion key.

図1は、実施形態の再暗号化システムの機能構成を例示したブロック図である。FIG. 1 is a block diagram illustrating a functional configuration of the re-encryption system according to the embodiment. 図2は、実施形態の鍵生成装置12の機能構成を例示したブロック図である。FIG. 2 is a block diagram illustrating a functional configuration of the key generation device 12 according to the embodiment. 図3は、実施形態の再暗号化装置の機能構成を例示したブロック図である。FIG. 3 is a block diagram illustrating a functional configuration of the re-encryption apparatus according to the embodiment. 図4Aは、実施形態の鍵生成処理を例示するためのフロー図である。図4Bは、実施形態の再暗号化処理を例示するためのフロー図である。FIG. 4A is a flowchart for illustrating the key generation processing of the embodiment. FIG. 4B is a flowchart for illustrating the re-encryption process of the embodiment.

以下、本発明の実施形態を説明する。
[原理]
まず、原理を説明する。以下では第1暗号文を第2暗号文に再暗号化する。第1暗号文を生成するための鍵を第1暗号化鍵と呼び、第1暗号文を復号するための鍵を第1復号鍵と呼ぶ。また、第2暗号文を生成するための鍵を第2暗号化鍵と呼び、第2暗号文を復号するための鍵を第2復号鍵と呼ぶ。すなわち、第1暗号化鍵は第1復号鍵に対応し、第2暗号化鍵は第2復号鍵に対応する。第1暗号文を第1復号鍵で復号して得られる復号結果(平文)は、第2暗号文を第2復号鍵で復号して得られる復号結果と等しい。第1暗号文および第2暗号文は、非対称暗号化方式(例えば、公開鍵暗号方式、IDベース暗号方式、関数暗号方式等)に則って暗号化された暗号文である。第1暗号文の暗号化方式と第2暗号文の暗号化方式とは互いに同一であってもよいし、互いに異なっていてもよい。非対称暗号化方式の例は準同型性暗号方式である。少なくとも、第2暗号文は準同型性暗号方式に則って得られた暗号文であり、準同型性を持つ。第1暗号文は同型性暗号方式に則って得られた暗号文であってもなくてもよい。例えば、第1暗号文および第2暗号文が格子暗号方式またはNTRU暗号方式に則った暗号文である。
Embodiments of the present invention will be described below.
[principle]
First, the principle will be described. In the following, the first ciphertext is re-encrypted into the second ciphertext. A key for generating the first ciphertext is referred to as a first encryption key, and a key for decrypting the first ciphertext is referred to as a first decryption key. A key for generating the second ciphertext is called a second encryption key, and a key for decrypting the second ciphertext is called a second decryption key. That is, the first encryption key corresponds to the first decryption key, and the second encryption key corresponds to the second decryption key. The decryption result (plain text) obtained by decrypting the first ciphertext with the first decryption key is equal to the decryption result obtained by decrypting the second ciphertext with the second decryption key. The first ciphertext and the second ciphertext are ciphertexts encrypted according to an asymmetric encryption method (for example, a public key encryption method, an ID-based encryption method, a function encryption method, etc.). The encryption scheme for the first ciphertext and the encryption scheme for the second ciphertext may be the same or different from each other. An example of an asymmetric encryption scheme is a homomorphic encryption scheme. At least the second ciphertext is a ciphertext obtained according to the homomorphic encryption method, and has homomorphism. The first ciphertext may or may not be a ciphertext obtained according to a homomorphic encryption scheme. For example, the first ciphertext and the second ciphertext are ciphertexts conforming to the lattice cryptosystem or the NTRU cryptosystem.

鍵生成装置は、第1復号鍵および第2暗号化鍵を用い、第1暗号文を第2暗号文に変換するための基本変換鍵を得、第2暗号化鍵を用い、第2暗号化鍵をランダム化してランダム化鍵を得る。ただし、ランダム化鍵を用いて暗号化された暗号文が第2復号鍵で復号可能とされる。このように得られた基本変換鍵とランダム化鍵が、第1暗号文を第2暗号文に再暗号化するための変換鍵とされる。ランダム化鍵は第2暗号化鍵をランダム化して得られたものである。そのため、攻撃者等の第三者はランダム化鍵から第2暗号化鍵を特定することができない。これにより、変換鍵から変換先の情報が漏えいすることを抑制できる。   The key generation device uses the first decryption key and the second encryption key to obtain a basic conversion key for converting the first ciphertext into the second ciphertext, and uses the second encryption key to obtain the second encryption key. Randomize the key to get a randomized key. However, the ciphertext encrypted using the randomization key can be decrypted with the second decryption key. The basic conversion key and the randomization key thus obtained are used as a conversion key for re-encrypting the first ciphertext into the second ciphertext. The random key is obtained by randomizing the second encryption key. Therefore, a third party such as an attacker cannot specify the second encryption key from the randomization key. Thereby, it can suppress that the information of a conversion destination leaks from a conversion key.

再暗号化装置は、第1暗号文を入力とし、変換鍵の基本変換鍵を用いて第1暗号文を第2暗号文に変換し、変換鍵のランダム化鍵を用いて第1値を暗号化して準同型性を持つ撹乱暗号文を得、第2暗号文と撹乱暗号文とに対して所定の「演算」を行って変形済暗号文を得る。ただし、任意の第2値と第1値とに当該「演算」を行って得られる値は第2値に等しい。例えば、「第1値」は当該「演算」が定義された集合の単位元である。この「演算」が加法演算である場合、「第1値」は加法単位元(零元)である。例えば、この「演算」が加算である場合(変形済暗号文=第2暗号文+撹乱暗号文)、「第1値」は0である。或いは、この「演算」が乗法演算である場合、「第1値」は乗法単位元である。例えば、この「演算」が乗算である場合(変形済暗号文=第2暗号文×撹乱暗号文)、「第1値」は1である。   The re-encryption device receives the first ciphertext, converts the first ciphertext to the second ciphertext using the basic conversion key of the conversion key, and encrypts the first value using the randomization key of the conversion key. To obtain a disturbed ciphertext having homomorphism, and performing a predetermined “calculation” on the second ciphertext and the disturbed ciphertext to obtain a modified ciphertext. However, a value obtained by performing the “calculation” on an arbitrary second value and the first value is equal to the second value. For example, the “first value” is a unit element of the set in which the “operation” is defined. When this “operation” is an additive operation, the “first value” is an additive unit element (zero element). For example, when this “calculation” is addition (modified ciphertext = second ciphertext + disturbed ciphertext), the “first value” is 0. Alternatively, when this “operation” is a multiplicative operation, the “first value” is a multiplicative unit element. For example, when this “operation” is multiplication (modified ciphertext = second ciphertext × disturbed ciphertext), the “first value” is 1.

第2暗号文および撹乱暗号文の準同型性により、変形済暗号文を第2復号鍵で復号して得られる値は、第2暗号文の復号結果と撹乱暗号文の復号結果に対して上記の「演算」を行って得られる値に等しい。上述のように第2暗号文も撹乱暗号文も共に第2復号鍵で復号可能であり、第2暗号文の復号結果は平文であり、撹乱暗号文の復号結果は第1値である。上記の「演算」の性質より、平文と第1値とに当該「演算」を行って得られる値は平文となる。すなわち、変形済暗号文は第1暗号文を再暗号化した暗号文となる。   Due to the homomorphism of the second ciphertext and the disturbed ciphertext, the value obtained by decrypting the modified ciphertext with the second decryption key is the same as the above for the decryption result of the second ciphertext and the decryption result of the disturbed ciphertext. It is equal to the value obtained by performing "calculation" of As described above, both the second ciphertext and the disturbed ciphertext can be decrypted with the second decryption key, the decryption result of the second ciphertext is plaintext, and the decryption result of the disturbed ciphertext is the first value. Due to the nature of the above “calculation”, the value obtained by performing the “calculation” on the plaintext and the first value is plaintext. That is, the modified ciphertext is a ciphertext obtained by re-encrypting the first ciphertext.

[実施形態]
以下、図面を用いて実施形態を説明する。
<再変換可能暗号方式>
まず、再変換可能暗号方式π=(SU,G,E,D,RKG,Switch)を以下のように定義する。
[Embodiment]
Hereinafter, embodiments will be described with reference to the drawings.
<Reconvertible encryption method>
First, the reconvertible encryption method π = (SU, G, E, D, RKG, Switch) is defined as follows.

SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、共通パラメータppを出力する確率的アルゴリズムである(pp←SU(1κ))。ただし、κはセキュリティパラメータ(正の整数)である。1κはκビットの1の列である。 SU: The common parameter generation algorithm SU is a stochastic algorithm that takes κ as an input and outputs a common parameter pp (pp ← SU (1 κ )). Where κ is a security parameter (a positive integer). 1 κ is a sequence of 1 κ bits.

G:鍵生成アルゴリズムGは、ppを入力にとり、暗号化鍵と復号鍵の組(ek,dk)を出力する確率的アルゴリズムである((ek,dk)←G(pp))。   G: The key generation algorithm G is a probabilistic algorithm that takes pp as input and outputs a pair (ek, dk) of an encryption key and a decryption key ((ek, dk) ← G (pp)).

E:暗号化アルゴリズムEは、pp,ek,平文μを入力にとり、乱数を内部発生させ、暗号文cを出力する確率的アルゴリズムである(c=E(pp,ek,μ))。ただし、暗号化アルゴリズムEは、準同型暗号である非対称暗号方式に則ったものであり、暗号文cは準同型性を持つ。
D:復号アルゴリズムDは、pp,dk,暗号文cを入力にとり、平文μ’を出力するアルゴリズムである(μ’←D(pp,dk,c))。
E: The encryption algorithm E is a probabilistic algorithm that takes pp, ek, and plaintext μ as input, internally generates random numbers, and outputs ciphertext c (c = E (pp, ek, μ)). However, the encryption algorithm E is in accordance with an asymmetric cryptosystem that is a homomorphic cipher, and the ciphertext c has homomorphism.
D: The decryption algorithm D is an algorithm that takes pp, dk, and ciphertext c as input and outputs plaintext μ ′ (μ ′ ← D (pp, dk, c)).

RKG:変換鍵生成アルゴリズムRKGは、pp,dkα,ekβを入力にとり、基本変換鍵rkα→βを出力する確率的アルゴリズムである(rkα→β←RKG(pp,dkα,ekβ))。ただし、dkαはユーザαに対して得られた復号鍵(ユーザαが復号を行うための復号鍵)であり、ekβはユーザβに対して得られた暗号化鍵(ユーザβが復号を行うことが可能な暗号文を生成するための暗号化鍵)である。何れの鍵も鍵生成アルゴリズムGによって得られたものである。基本変換鍵rkα→βは、復号鍵dkαに対応する暗号化鍵ekαを用いて生成された第1暗号文を、暗号化鍵ekβに対応する復号鍵dkβで復号可能な第2暗号文に変換するための鍵である。 RKG: Conversion key generation algorithm RKG is a stochastic algorithm that takes pp, dk α and ek β as inputs and outputs a basic conversion key rk α → β (rk α → β ← RKG (pp, dk α , ek β )). However, dk α is a decryption key obtained for the user α (decryption key for the user α to perform decryption), and ek β is an encryption key obtained for the user β (the user β decrypts the decryption key). Encryption key for generating ciphertext that can be performed). All the keys are obtained by the key generation algorithm G. Basic conversion key rk α → β, the first ciphertext generated using the encryption key ek alpha corresponding to the decryption key dk alpha, the possible decoded by the decoding key dk beta corresponding to the encryption key ek beta 2 is a key for conversion to ciphertext.

RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβを入力にとり、ランダム化鍵(rppβ,rekβ)を出力する確率的アルゴリズムである((rppβ,rekβ)←RG(pp,ekβ))。 RG: Randomized key generation algorithm RG is a probabilistic algorithm that takes pp, ek β as input and outputs a randomized key (rpp β , rk β ) ((rpp β , rk β ) ← RG (pp, ek β )).

Switch:変換アルゴリズムSwitchは、pp,rkα→β,暗号文cαを入力にとり、暗号文cβを出力する確率的アルゴリズムである(cβ←Switch(pp,rkα→β,cα))。ただし、暗号文cαはユーザαの復号鍵dkαで復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβで復号可能な暗号文である。dkβは上述の暗号化鍵ekβに対応する。 Switch: The conversion algorithm Switch is a stochastic algorithm that takes pp, rk α → β and ciphertext c α as input and outputs ciphertext c β (c β ← Switch (pp, rk α → β , c α )). ). However, the ciphertext c α is a ciphertext that can be decrypted with the decryption key dk α of the user α, and the ciphertext c β is a ciphertext that can be decrypted with the decryption key dk β of the user β. dk β corresponds to the encryption key ek β described above.

<プロキシ再暗号化方式>
上記の再変換可能暗号方式πを用い、以下のように本形態のプロキシ再暗号化方式Π=(Setup,Gen,Enc1,Dec1,Enc2,Dec2,RekeyGen,ReEnc)を構成する。
<Proxy re-encryption method>
Using the above-described re-transformable encryption method π, the proxy re-encryption method Π = (Setup, Gen, Enc1, Dec1, Enc2, Dec2, RekeyGen, ReEnc) of this embodiment is configured as follows.

Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=ppを出力する。なお、「γ←η」は「ηによって得られた値をγとする(γ=η)」ことを意味する。 Setup: The algorithm Setup calculates pp ← SU (1 κ ) with κ as an input, and outputs PP = pp. “Γ ← η” means “a value obtained by η is γ (γ = η)”.

Gen:アルゴリズムGenは、PP=ppを入力とし、ユーザy∈{α,β}に対応する、再暗号化前の暗号化鍵と復号鍵の組(iek,idk)←G(pp)および再暗号化後の暗号化鍵と復号鍵の組(oek,odk)←G(pp)を得てこれらを出力する。ただし、再暗号化後の暗号文をさらに再暗号化できる方式(マルチホップ再暗号化方式)の場合には、iek=oekかつidk=odkでよく、(iek,idk)←G(pp)で得られた組をそのまま(oek,odk)とすればよい。 Gen y : Algorithm Gen y takes PP = pp as an input, and a pair of encryption key and decryption key before re-encryption corresponding to user y∈ {α, β} (ie k y , idk y ) ← G ( pp) and the re-encrypted encryption key / decryption key pair (oek y , odk y ) <-G (pp) are obtained and output. However, in the case of a scheme that can re-encrypt the ciphertext after re-encryption (multi-hop re-encryption scheme), iek y = oeky y and idk y = odky y may be used (ie k y , idk y ) ← G (pp) resulting set directly at (oek y, odk y) may be set.

Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。アルゴリズムEnciは、PP=pp,iek,平文μを入力とし、ict=E(pp,iek,μ)を計算し、ictを暗号文として出力する。 Enci: The algorithm Enci generates a ciphertext before re-encryption. Algorithm Enci is, PP = and pp, IEK y, an input plaintext μ, ict y = E (pp , iek y, μ) is calculated, and outputs the ict y as ciphertext.

Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。アルゴリズムDeciは、PP=pp,idk,暗号文ictを入力とし、μ’=D(pp,idk,ict)を計算し、μ’を平文として出力する。 Deci: The algorithm Deci decrypts the ciphertext before re-encryption. Algorithm Deci is, PP = and pp, idk y, an input ciphertext ict y, μ '= D ( pp, idk y, ict y) to calculate the, mu' outputs as a plaintext.

Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。アルゴリズムEncoは、PP=pp,oek,平文μを入力とし、oct=E(pp,oek,μ)を計算し、octを暗号文として出力する。 Enco: The algorithm Enco generates a ciphertext after re-encryption. Algorithm Enco is, PP = and pp, oek y, an input plaintext μ, oct y = E (pp , oek y, μ) is calculated, and outputs the oct y as ciphertext.

Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。アルゴリズムDecoは、PP=pp,odk,暗号文octを入力とし、μ’=D(pp,odk,oct)を計算し、μ’を平文として出力する。 Deco: Algorithm Deco decrypts the ciphertext after re-encryption. Algorithm Deco is, PP = pp, odk y, the ciphertext oct y as input, μ '= D (pp, odk y, oct y) to calculate the, mu' outputs as a plaintext.

RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα(第1復号鍵),oekβ(第2暗号化鍵)を入力とし、rkα→β←RKG(pp,idkα,oekβ)を計算してrkα→βを基本変換鍵とし、(rppβ,rekβ)←RG(pp,oekβ)を計算して(rppβ,rekβ)をランダム化鍵とし、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。ただし、ランダム化鍵(rppβ,rekβ)を用いて暗号化された暗号文はodkβ(第2復号鍵)で復号可能である。 RekeyGen: Algorithm RekeyGen takes PP = pp, idk α (first decryption key) and oek β (second encryption key) as inputs, and calculates rk α → β ← RKG (pp, idk α , oek β ). Rk α → β is a basic conversion key, (rpp β , rk β ) ← RG (pp, oek β ) is calculated and (rpp β , rk β ) is a randomized key, and RK α → β = (rk α → β , rpp β , rk β ) are output as conversion keys. However, the ciphertext encrypted using the randomized key (rpp β , rk β ) can be decrypted with odk β (second decryption key).

ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β,rppβ,rekβ),ictα(第1暗号文)を入力とし、以下を計算する。ただし、ictα=E(pp,iekα,μ)である。
1)c’←Switch(pp,rkα→β,ictα
2)c’’←E(rppβ,rekβ,0)
3)octβ←c’+c’’
アルゴリズムReEncは、octを変換済暗号文として出力する。なお、この例は「第1値」が0であり、「所定の演算」が加算である場合のものである。
ReEnc: Algorithm ReEnc takes PP = pp, RK α → β = (rk α → β , rpp β , rk β ), ict α (first ciphertext) and calculates the following. However, ict α = E (pp, iek α , μ).
1) c ′ ← Switch (pp, rk α → β , ict α )
2) c ″ ← E (rpp β , rek β , 0)
3) oct β ← c '+ c''
The algorithm ReEnc outputs oct B as the converted ciphertext. In this example, the “first value” is 0 and the “predetermined calculation” is addition.

<構成>
図1に例示するように、本形態の再暗号化システム1は、管理装置11、鍵生成装置12,13、暗号化装置14、復号装置15,16、および再暗号化装置17を有する。図2に例示するように、本形態の鍵生成装置12は、入力部121、出力部122、記憶部123、鍵ペア生成部124、基本変換鍵生成部125、ランダム化鍵生成部126、および変換鍵合成部127を有する。また、図3に例示するように、本形態の再暗号化装置17は、入力部171、出力部172、記憶部173、基本変換部174、撹乱暗号化部175、および演算部176を有する。なお、各装置は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)やRAM(random-access memory)等のメモリ等を備える汎用または専用のコンピュータに、所定のプログラムが読み込まれて構成される装置である。CPUは電子回路(circuitry)の一種であるが、装置を構成する一部またはすべての処理部がその他の電子回路(circuitry)によって構成されていてもよい。また、各装置は情報のやり取りが可能なように構成されている。例えば、各装置はインターネット等のネットワークを通じて通信可能に構成されている。
<Configuration>
As illustrated in FIG. 1, the re-encryption system 1 of this embodiment includes a management device 11, key generation devices 12 and 13, an encryption device 14, decryption devices 15 and 16, and a re-encryption device 17. As illustrated in FIG. 2, the key generation device 12 of this embodiment includes an input unit 121, an output unit 122, a storage unit 123, a key pair generation unit 124, a basic conversion key generation unit 125, a randomized key generation unit 126, and A conversion key synthesis unit 127 is included. In addition, as illustrated in FIG. 3, the re-encryption device 17 according to the present exemplary embodiment includes an input unit 171, an output unit 172, a storage unit 173, a basic conversion unit 174, a disturbance encryption unit 175, and a calculation unit 176. Each device has a predetermined program read into a general-purpose or dedicated computer including a processor (hardware processor) such as a CPU (central processing unit) and a memory such as a random-access memory (RAM). It is a device configured. The CPU is a kind of electronic circuit, but a part or all of the processing units constituting the device may be configured by other electronic circuits. Each device is configured to exchange information. For example, each device is configured to be able to communicate through a network such as the Internet.

<処理>
以下では、鍵生成装置12がユーザαに対応する鍵および変換鍵を生成し、鍵生成装置13がユーザβに対応する鍵を生成し、暗号化装置14がユーザαに対応する暗号化鍵を用いて暗号文を生成し、再暗号化装置17がこの暗号文をユーザβに対応する復号鍵で復号可能な変形済暗号文に変換する処理を例にとって説明する。
<Processing>
In the following, the key generation device 12 generates a key and a conversion key corresponding to the user α, the key generation device 13 generates a key corresponding to the user β, and the encryption device 14 generates an encryption key corresponding to the user α. An example will be described in which a ciphertext is generated using the re-encryption device 17 and converted into a modified ciphertext that can be decrypted with a decryption key corresponding to the user β.

≪管理装置11の処理≫
管理装置11は、1κを入力としてアルゴリズムSetupを実行し、共通パラメータppを出力する。共通パラメータppは、再暗号化システム1を構成する各装置に送られる。
<< Processing of Management Device 11 >>
The management apparatus 11 executes the algorithm Setup with 1 κ as an input, and outputs a common parameter pp. The common parameter pp is sent to each device constituting the re-encryption system 1.

≪鍵生成装置13の鍵生成処理≫
鍵生成装置13は、ユーザβに対応する鍵を生成する。この鍵生成処理の前提として、上述の共通パラメータppが鍵生成装置13に入力され、鍵生成装置13の記憶部(図示せず)に格納されているものとする。鍵生成装置13は、記憶部から共通パラメータppを抽出し、アルゴリズムGenβを実行して、再暗号化前の暗号化鍵と復号鍵の組(iekβ,idkβ)および再暗号化後の暗号化鍵と復号鍵の組(oekβ,odk)を得て出力する。ただし、マルチホップ再暗号化方式の場合にはiekβ=oekβとidk=odkβを得ればよい。復号鍵idkβおよびodkβはユーザβの秘密情報であり、ユーザβが利用する復号装置15に安全に送られ、復号装置15に安全に格納される。一方、暗号化鍵iekβおよびoekβは公開情報であり、必要に応じて鍵生成装置13から出力されてもよいし、各装置がアクセス可能な装置に格納されてもよい。
<< Key generation processing of the key generation device 13 >>
The key generation device 13 generates a key corresponding to the user β. As a premise of this key generation processing, it is assumed that the common parameter pp described above is input to the key generation device 13 and stored in a storage unit (not shown) of the key generation device 13. The key generation device 13 extracts the common parameter pp from the storage unit, executes the algorithm Gen β , sets the encryption key and decryption key (iek β , idk β ) before re-encryption, and after re-encryption A pair of encryption keys and decryption keys (oek β , odk B ) is obtained and output. However, in the case of the multi-hop re-encryption method, it is only necessary to obtain iek β = oek β and idk B = odk β . The decryption keys idk β and odk β are secret information of the user β, and are securely sent to the decryption device 15 used by the user β and stored securely in the decryption device 15. On the other hand, the encryption keys iek β and oek β are public information, and may be output from the key generation device 13 as necessary, or may be stored in a device accessible by each device.

≪鍵生成装置12の鍵生成処理≫
鍵生成装置12は、ユーザαに対応する鍵および変換鍵を生成する。図2および図4Aを用いて鍵生成装置12の鍵生成処理を説明する。この鍵生成処理の前提として、上述の共通パラメータppおよび暗号化鍵iekβおよびoekβが鍵生成装置12の入力部121に入力され、記憶部123に格納されているものとする。
<< Key generation process of key generation apparatus 12 >>
The key generation device 12 generates a key and a conversion key corresponding to the user α. The key generation processing of the key generation device 12 will be described with reference to FIGS. 2 and 4A. As a premise of this key generation process, it is assumed that the common parameter pp and the encryption keys iek β and oek β described above are input to the input unit 121 of the key generation device 12 and stored in the storage unit 123.

鍵ペア生成部124は、共通パラメータppを入力とし、アルゴリズムGenαを実行して、再暗号化前の暗号化鍵と復号鍵の組(iekα,idkα)および再暗号化後の暗号化鍵と復号鍵の組(oekα,odkα)を得て出力する。ただし、マルチホップ再暗号化方式の場合にはiekα=oekαとidkα=odkαを得ればよい。鍵ペア生成部124から出力された(iekα,idkα)および(oekα,odkα)は記憶部123に格納される(ステップS124)。復号鍵idkαおよびodkαはユーザαの秘密情報である。復号鍵idkαおよびodkαは出力部122から出力され、ユーザαが利用する復号装置16に安全に送られ、復号装置16に安全に格納される。一方、暗号化鍵iekαおよびoekαは公開情報であり、必要に応じて鍵生成装置12の出力部122から出力されてもよいし、各装置がアクセス可能な装置に格納されてもよい。 The key pair generation unit 124 receives the common parameter pp, executes the algorithm Gen α , sets the encryption key and decryption key (iek α , idk α ) before re-encryption, and encryption after re-encryption A key / decryption key pair (oek α , odk α ) is obtained and output. However, in the case of the multi-hop re-encryption scheme, it is only necessary to obtain iek α = oek α and idk α = odk α . The (iek α , idk α ) and (oek α , odk α ) output from the key pair generation unit 124 are stored in the storage unit 123 (step S124). The decryption keys idk α and odk α are secret information of the user α. The decryption keys idk α and odk α are output from the output unit 122, are securely sent to the decryption device 16 used by the user α, and are securely stored in the decryption device 16. On the other hand, the encryption keys iek α and oek α are public information, and may be output from the output unit 122 of the key generation device 12 as necessary, or may be stored in an accessible device.

基本変換鍵生成部125、ランダム化鍵生成部126、および変換鍵合成部127は、アルゴリズムRekeyGenを実行して変換鍵RKα→βを生成する。基本変換鍵生成部125は、共通パラメータpp、復号鍵idkα(第1復号鍵)、および暗号化鍵oekβ(第2暗号化鍵)を入力とし、復号鍵idkαに対応する暗号化鍵iekαを用いて得られた第1暗号文を、暗号化鍵oekβに対応する復号鍵odkβで復号可能な第2暗号文に変換するための基本変換鍵rkα→β←RKG(pp,idkα,oekβ)を得て出力する(ステップS125)。 The basic conversion key generation unit 125, the randomization key generation unit 126, and the conversion key synthesis unit 127 execute the algorithm RekeyGen to generate the conversion key RK α → β . The basic conversion key generation unit 125 receives the common parameter pp, the decryption key idk α (first decryption key), and the encryption key oek β (second encryption key), and an encryption key corresponding to the decryption key idk α. a first ciphertext obtained using IEK alpha, base conversion key rk for converting the second cipher text can be decrypted by decryption key odk beta corresponding to the encryption key oek β α → β ← RKG ( pp , Idk α , oek β ) are obtained and output (step S125).

ランダム化鍵生成部126は、共通パラメータppおよび暗号化鍵oek(第2暗号化鍵)を入力とし、(rppβ,rekβ)←RG(pp,oekβ)によって暗号化鍵oekβをランダム化してランダム化鍵(rppβ,rekβ)を得て出力する。このランダム化は、ランダム化鍵(rppβ,rekβ)を用いて任意値を暗号化して得られた暗号文が復号鍵odkβで復号可能なように行われる(ステップS126)。 Randomized key generating unit 126, common parameters pp, and encryption key Oek B (second encryption key) as input, the (rpp β, rek β) ← RG (pp, oek β) encryption key Oek beta by Randomize to obtain and output randomized keys (rpp β , rk β ). This randomization is performed so that the ciphertext obtained by encrypting the arbitrary value using the randomization key (rpp β , rk β ) can be decrypted with the decryption key odk β (step S126).

変換鍵合成部127は、基本変換鍵rkα→βおよびランダム化鍵(rppβ,rekβ)を入力とし、これらを含む変換鍵RKα→β=(rkα→β,rppβ,rekβ)を出力する。変換鍵RKα→βは出力部122に送られ、出力部122は変換鍵RKα→βを再暗号化装置17に送る(ステップS127)。 The conversion key composition unit 127 receives the basic conversion key rk α → β and the randomized key (rpp β , rk β ), and includes the conversion key RK α → β = (rk α → β , rpp β , rk β). ) Is output. The conversion key RK α → β is sent to the output unit 122, and the output unit 122 sends the conversion key RK α → β to the re-encryption device 17 (step S127).

≪暗号化装置14での暗号化処理≫
暗号化装置14は、PP=pp,iekα,平文μを入力とし、アルゴリズムEnciを実行してictα=E(pp,iekα,μ)を計算し、ictαを第1暗号文として出力する。
<< Encryption processing in the encryption device 14 >>
The encryption device 14 receives PP = pp, iek α and plaintext μ, executes the algorithm Enci to calculate ict α = E (pp, iek α , μ), and outputs ict α as the first ciphertext To do.

≪復号装置16での復号処理≫
復号装置16が再暗号化前の第1暗号文ictαを復号する処理を説明する。復号装置16に第1暗号文ictαが入力された場合、復号装置16はPP=pp,idkα(第1暗号文を復号するための第1復号鍵),第1暗号文ictαを用い、アルゴリズムDeciを実行してμ’=D(pp,idkα,ictα)を計算し、μ’を平文として出力する。
<< Decoding processing in the decoding device 16 >>
A process in which the decryption device 16 decrypts the first ciphertext ict α before re-encryption will be described. When the first ciphertext ict α is input to the decryption device 16, the decryption device 16 uses PP = pp, idk α (first decryption key for decrypting the first ciphertext) and the first ciphertext ict α . Then, the algorithm Deci is executed to calculate μ ′ = D (pp, idk α , ic t α ), and μ ′ is output as plain text.

≪再暗号化装置17での再暗号化処理≫
図3および図4Bを用い、再暗号化装置17が第1暗号文ictαを再暗号化する処理を説明する。この再暗号化処理の前提として、上述の共通パラメータpp、第1暗号文ictα、および変換鍵RKα→β=(rkα→β,rppβ,rekβ)が再暗号化装置17の入力部171に入力され、記憶部173に格納されているものとする。
<< Re-encryption process in re-encryption device 17 >>
A process in which the re-encryption device 17 re-encrypts the first ciphertext ict α will be described with reference to FIGS. 3 and 4B. As a premise of this re-encryption processing, the above-mentioned common parameter pp, first ciphertext ict α , and conversion key RK α → β = (rk α → β , rpp β , rk β ) are input to the re-encryption device 17. It is assumed that the data is input to the unit 171 and stored in the storage unit 173.

基本変換部174は、PP=pp,rkα→β(基本変換鍵),第1暗号文ictαを入力とし、変換アルゴリズムSwitchを実行してc’←Switch(pp,rkα→β,ictα)を計算し、c’を第2暗号文として出力する。なお、第2暗号文c’は準同型性を持つ(ステップS174)。 The basic conversion unit 174 receives PP = pp, rk α → β (basic conversion key) and the first ciphertext ict α , executes the conversion algorithm Switch, and c ′ ← Switch (pp, rk α → β , ict α )) and c ′ is output as the second ciphertext. The second ciphertext c ′ has homomorphism (step S174).

撹乱暗号化部175は、rppβ(ランダム化鍵),rekβ(ランダム化鍵)を入力とし、暗号化アルゴリズムEを実行してc’’←E(rppβ,rekβ,0)を計算し、c’’を0(第1値)の暗号文である撹乱暗号文として出力する。なお、撹乱暗号文c’’は準同型性を持つ(ステップS175)。 The disturbance encryption unit 175 receives rpp β (randomized key) and lek β (randomized key) as input, and executes the encryption algorithm E to calculate c ″ ← E (rpp β , rk β , 0) Then, c ″ is output as a disturbed ciphertext that is a ciphertext of 0 (first value). The disturbed ciphertext c ″ has homomorphism (step S175).

演算部176は、第2暗号文c’および撹乱暗号文c’’を入力とし、octβ←c’+c’’を計算し、octβを変形済暗号文として出力する。なお、任意の第2値と0(第1値)との加算を行って得られる値(第2値+0)は第2値に等しい(ステップS176)。 The calculation unit 176 receives the second ciphertext c ′ and the disturbed ciphertext c ″, calculates oct β ← c ′ + c ″, and outputs oct β as a modified ciphertext. Note that a value (second value + 0) obtained by adding the arbitrary second value and 0 (first value) is equal to the second value (step S176).

≪復号装置15での復号処理≫
復号装置15が再暗号化後の変形済暗号文octβを復号する処理を説明する。復号装置15に変形済暗号文octβが入力された場合、復号装置15はPP=pp,odkβ(第2暗号文を復号するための第2復号鍵),変形済暗号文octβを用い、アルゴリズムDecoを実行してμ’=D(pp,odkβ,octβ)を計算し、μ’を平文として出力する。
<< Decoding processing in the decoding device 15 >>
A process in which the decryption device 15 decrypts the re-encrypted modified ciphertext oct β will be described. When the modified ciphertext oct β is input to the decryption device 15, the decryption device 15 uses PP = pp, odk β (second decryption key for decrypting the second ciphertext) and the modified ciphertext oct β . Then, the algorithm Deco is executed to calculate μ ′ = D (pp, odk β , oct β ), and μ ′ is output as plain text.

以下では、上記の実施形態のプロキシ再暗号化方式Π=(Setup,Gen,Enc1,Dec1,Enc2,Dec2,RekeyGen,ReEnc)を構成可能な再変換可能暗号方式π=(SU,G,E,D,RKG,Switch)を具体的に説明する。実施例1から8では、非対称暗号化方式として格子暗号方式を用いる例を説明し、実施例9および10ではNTRU暗号方式を用いる例を説明する。格子暗号方式もNTRU暗号方式も公開鍵暗号方式であり、かつ、準同型性暗号方式である。なお、再暗号化システムの構成およびその処理も再変換可能暗号方式πが具体化されることによってプロキシ再暗号化方式Πが具体化される以外、上述の実施形態と同じである。そのため、以下では再変換可能暗号方式πおよびプロキシ再暗号化方式Πの具体的な構成を中心に説明する。   In the following, the re-convertible encryption method π = (SU, G, E, which can configure the proxy re-encryption method Π = (Setup, Gen, Enc1, Dec1, Enc2, Dec2, RekeyGen, ReEnc) of the above embodiment. D, RKG, Switch) will be specifically described. In the first to eighth embodiments, an example in which a lattice encryption scheme is used as an asymmetric encryption scheme will be described. In the ninth and tenth embodiments, an example in which an NTRU encryption scheme is used will be described. Both the lattice encryption method and the NTRU encryption method are public key encryption methods, and are homomorphic encryption methods. The configuration and processing of the re-encryption system are the same as those in the above-described embodiment except that the re-convertible encryption method π is embodied and the proxy re-encryption method Π is embodied. Therefore, the following description focuses on the specific configurations of the reconvertible encryption method π and the proxy re-encryption method Π.

実施例1では、上述の実施形態に参考文献1(Zvika Brakerski, Craig Gentry, and Vinod Vaikuntanathan. (leveled) fully homomorphic encryption without bootstrapping, in Shafi Goldwasser, editor, ITCS 2012, pages 309-325. ACM, 2012.)の方式を適用する例を示す。   In Example 1, Reference 1 (Zvika Brakerski, Craig Gentry, and Vinod Vaikuntanathan. (Leveled) fully homomorphic encryption without bootstrapping, in Shafi Goldwasser, editor, ITCS 2012, pages 309-325. ACM, 2012 An example of applying the method of.

<確定的アルゴリズムBD,P2の定義>
参考文献1に記載された確定的アルゴリズムBD,P2を以下のように定義する。
1以上の整数p,δ,q(例えば、素数)についてpδ−1≦q<pδを満たすとする。すなわち、qはp進δ桁の数として表現可能である。
<Definition of deterministic algorithms BD and P2>
The deterministic algorithms BD and P2 described in Reference 1 are defined as follows.
Assume that p δ−1 ≦ q <p δ is satisfied for integers p, δ, and q (for example, prime numbers) of 1 or more. That is, q can be expressed as a number of p-adic δ digits.

BD:アルゴリズムBDは、ベクトルx∈Z を入力にとり、k=1,・・・,δについて、ベクトルu∈Z

Figure 0006189788

を満たすように計算し、(u,・・・,uδ)∈Z nδを出力する。ただし、Zは整数p(例えばp≧2)を法とした整数の剰余類の集合である。Zの例はpを法とした整数の剰余類の代表元の集合である。例えば、Zは整数zに対するz mod pの集合、すなわちZ={0,・・・,p−1}である。また、nは1以上の整数であり、x∈Z はxがZのn個の元からなることを意味する。 BD: The algorithm BD takes a vector xεZ q n as an input, and for k = 1,..., Δ, a vector u k εZ p n
Figure 0006189788

Calculated so as to satisfy, and outputs (u 1, ···, u δ ) ∈Z p nδ. Here, Z p is a set of integer remainder classes modulo integer p (eg, p ≧ 2). Examples of Z p is a representative source of the set of integers of residue classes modulo to p. For example, Z p is a set of z mod p for an integer z, ie, Z p = {0,..., P−1}. Further, n is an integer equal to or greater than 1, and x∈Z pn means that x is composed of n elements of Z p .

P2:アルゴリズムP2は、ベクトルs∈Z を入力にとり、

Figure 0006189788

を出力する。ただし、
Figure 0006189788

は行列のクロネッカー積であり、[・]は[・]の転置を表す。アルゴリズムP2は、サイズn×gの行列S=[s,・・・,s]∈Z n×gを入力にとる場合に、サイズnδ×gの行列[P(s),・・・,P(s)]∈Z nδ×gを出力する。ただし、gは1以上の整数であり、S∈Z n×gはサイズn×gの行列Sの各要素がZの元であることを表す。これらのアルゴリズムの定義より、任意のベクトルx∈Z および行列S∈Z n×gについて、BD(x)P2(S)=xS∈Z を満たす。 P2: Algorithm P2 takes a vector sεZ q n as input,
Figure 0006189788

Is output. However,
Figure 0006189788

Is the Kronecker product of the matrix and [•] T represents the transpose of [•]. The algorithm P2 takes a matrix S = [s 1 ,..., S g ] ∈Z q n × g of size n × g and inputs a matrix [P (s 1 ),. .., P (s g )] εZ q nδ × g is output. However, g is an integer greater than or equal to 1, and SεZ q n × g represents that each element of the matrix S of size n × g is an element of Z q . From the definition of these algorithms, BD (x) P2 (S) = xSεZ q g is satisfied for an arbitrary vector xεZ q n and a matrix SεZ q n × g .

<再変換可能暗号方式>
本実施例の再変換可能暗号方式π=(SU,G,E,D,RKG,Switch)を説明する。SU,G,E,D,Switchは参考文献1に基づいている。
<Reconvertible encryption method>
The reconvertible encryption method π = (SU, G, E, D, RKG, Switch) of this embodiment will be described. SU, G, E, D, and Switch are based on Reference 1.

SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、行列A∈Z m×nをランダムに選び、共通パラメータpp=(κ,1,q,m,g,χ,A)を出力する(pp←SU(1κ))。ただし、n,m,gは1以上の整数である。また、平均0、分散σのガウス分布N(0,σ)は実数上の密度関数

Figure 0006189788

で定義される。ν∈(0,1)および整数q≧1について、ガウス分布N(0,ν/2π)に従って得られるサンプルxに対し、
Figure 0006189788

で表される分布をχとする。ただし、(0,1)は0より大きく1より小さな閉区間{ν|0<ν<1}を表し、
Figure 0006189788

は実数ωの天井関数を表し、実数ωに対してω以上の最小の整数を意味する。 SU: The common parameter generation algorithm SU takes κ as an input, randomly selects a matrix AεZ q m × n, and outputs a common parameter pp = (κ, 1 n , q, m, g, χ, A). (Pp ← SU ( )). However, n, m, and g are integers of 1 or more. In addition, a Gaussian distribution N (0, σ 2 ) having an average of 0 and a variance σ 2 is a real density function.
Figure 0006189788

Defined by For a sample x obtained according to a Gaussian distribution N (0, ν 2 / 2π) for ν∈ (0,1) and an integer q ≧ 1,
Figure 0006189788

Let χ be the distribution represented by However, (0,1) represents a closed interval {ν | 0 <ν <1} that is larger than 0 and smaller than 1.
Figure 0006189788

Represents the ceiling function of a real number ω, and means the smallest integer greater than or equal to ω with respect to the real number ω.

G:鍵生成アルゴリズムGは、ppを入力にとり、行列S∈Z n×gをランダムに選び、サイズm×gの行列X∈Z m×gを分布χm×gに従って選ぶ。すなわち、行列Xの各要素は分布χに従う。鍵生成アルゴリズムGは、B=AS+X∈Z m×gを計算し、ek=Bおよびdk=(S,B)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。 G: The key generation algorithm G takes pp as input, randomly selects a matrix SεZ q n × g , and selects a matrix XεZ q m × g of size m × g according to the distribution χ m × g . That is, each element of the matrix X follows the distribution χ. The key generation algorithm G calculates B = AS + XεZ q m × g , sets ek = B and dk = (S, B), and outputs a pair (ek, dk) of an encryption key and a decryption key (( ek, dk) <-G (pp)).

E:暗号化アルゴリズムEは、pp,ek=B∈Z m×g,平文μ∈Z を入力にとり、m個の要素からなるベクトルe∈{−1,+1}をランダムに選び、

Figure 0006189788

を計算し、暗号文c=(U,C)∈Z ×Z を出力する(c=E(pp,ek,μ))。 E: Encryption algorithm E is, pp, take ek = B∈Z q m × g, the input plaintext μ∈Z p g, the vector e∈ {-1, + 1} of m elements m randomly selects ,
Figure 0006189788

And ciphertext c = (U, C) εZ q n × Z q g is output (c = E (pp, ek, μ)).

D:復号アルゴリズムDは、pp,dk=(S,B),暗号文c=(U,C)を入力にとり、d=C−US mod qを計算し、

Figure 0006189788

を計算し、平文μ’∈Z を出力する(μ’←D(pp,dk,c))。なお、ベクトルψ=(ψ,・・・,ψ)とすると、ψ mod θは(ψ mod θ,・・・,ψ mod θ)を意味する。 D: The decryption algorithm D takes pp, dk = (S, B), ciphertext c = (U, C) as input, calculates d = C-US mod q,
Figure 0006189788

It was calculated, and outputs the plaintext μ'∈Z p g (μ '← D (pp, dk, c)). When the vector ψ = (ψ 1 ,..., Ψ I ), ψ mod θ means (ψ 1 mod θ,..., Ψ I mod θ).

RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(Sα,Bα),ekβ=Bβを入力とする。ただし、dkα=(Sα,Bα)はユーザαに対して得られた復号鍵であり、ekβ=Bβはユーザβに対して得られた暗号化鍵である。何れの鍵も鍵生成アルゴリズムGによって得られたものである。変換鍵生成アルゴリズムRKGは、サイズnδ×mの行列Y∈{−1,+1}nδ×mをランダムに選び、Mα→β=Y[A|Bβ]+[O|−P2(Sα)]∈Z nδ×(n+g)を計算し、基本変換鍵rkα→β=Mα→β∈Z nδ×(n+g)を出力する(rkα→β←RKG(pp,dkα,ekβ))。ただし、行列A∈Z m×nおよび行列Bβ∈Z m×gに対する[A|Bβ]∈Z m×(n+g)は、行列Aのn個の列の後に行列Bβのg個の列を連結したサイズm×(n+g)の行列である。また、Oはサイズnδ×mの零行列O∈Z nδ×mであり、すべての要素が0からなる。 RKG: The conversion key generation algorithm RKG receives pp, dk α = (S α , B α ), ek β = B β . However, dk α = (S α , B α ) is a decryption key obtained for the user α, and ek β = B β is an encryption key obtained for the user β. All the keys are obtained by the key generation algorithm G. The conversion key generation algorithm RKG randomly selects a matrix Yε {−1, + 1} nδ × m of size nδ × m, and M α → β = Y [A | B β ] + [O | −P2 (S α )] ΕZ q nδ × (n + g) and the basic transformation key rk α → β = M α → β εZ q nδ × (n + g) is output (rk α → β ← RKG (pp, dk α , ek β)). However, [A | B β ] ∈Z q m × (n + g) for the matrix A∈Z q m × n and the matrix B β ∈Z q m × g is equal to that of the matrix B β after n columns of the matrix A. It is a matrix of size m × (n + g) connecting g columns. O is a zero matrix OεZ q nδ × m of size nδ × m , and all elements are zero.

RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=Bβを入力にとり、サイズm×mの行列Y’∈{−1,+1}m×mをランダムに選び、[Tβ|Nβ]=Y’[A|Bβ]∈Z m×(n+g)を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈Z m×n×Z m×gを出力する((rppβ,rekβ)←RG(pp,ekβ))。 RG: The randomized key generation algorithm RG takes pp, ek β = B β as an input, randomly selects a matrix Y′∈ {−1, + 1} m × m of size m × m, and [T β | N β ] = Y ′ [A | B β ] εZ q m × (n + g) , and the randomized key (rpp β , rek β ) = (T β , N β ) εZ q m × n × Z q m × outputs the g ((rpp β, rek β ) ← RG (pp, ek β)).

Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈Z nδ×(n+g),暗号文cα=(Uα,Cα)∈Z ×Z を入力にとる。ただし、暗号文cα=(Uα,Cα)はユーザαの復号鍵dkα=(Sα,Bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(Sβ,Bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=Bβに対応する。変換アルゴリズムSwitchは、ベクトルUα∈Z を入力としたアルゴリズムBDを実行してベクトルBD(Uα)∈Z nδを得、U’|C’=BD(Uα)Mα→β∈Z n+gとする。ただし、U’∈Z かつC’∈Z であり、U’の後にC’を結合したベクトルがBD(Uα)Mα→βとなる。変換アルゴリズムSwitchは、さらに(Uβ,Cβ)=(U’,C’+Cα)を計算し、暗号文cβ=(Uβ,Cβ)∈Z ×Z を出力する(cβ←Switch(pp,rkα→β,cα))。 Switch: The conversion algorithm Switch receives pp, rk α → β = M α → β ∈ Z q nδ × (n + g) , ciphertext c α = (U α , C α ) ∈Z q n × Z q g Take. However, the ciphertext c α = (U α , C α ) is a ciphertext that can be decrypted with the decryption key dk α = (S α , B α ) of the user α, and the ciphertext c β is the decryption key dk of the user β. It is a ciphertext that can be decrypted with β = (S β , B β ). dk β corresponds to the encryption key ek β = B β described above. The transformation algorithm Switch executes an algorithm BD having the vector U α εZ q n as an input to obtain a vector BD (U α ) εZ q , and U ′ | C ′ = BD (U α ) M α → β Let ∈Z q n + g . However, U′∈Z q n and C′∈Z q g , and a vector obtained by combining C ′ after U ′ is BD (U α ) M α → β . The conversion algorithm Switch further calculates (U β , C β ) = (U ′, C ′ + C α ), and outputs the ciphertext c β = (U β , C β ) ∈Z q n × Z q g . (c β ← Switch (pp, rk α → β, c α)).

<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
<Proxy re-encryption method>
In the case of the re-convertible encryption method π, the proxy re-encryption method Π is as follows.

Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,1,q,m,g,χ,A)を出力する。 Setup: The algorithm Setup calculates pp ← SU (1 κ ) with κ as an input, and outputs PP = pp = (κ, 1 n , q, m, g, χ, A).

Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、行列S∈Z n×gをランダムに選び、サイズm×gの行列X∈Z m×gを分布χm×gに従って選ぶ。アルゴリズムGenは、B=AS+X∈Z m×gを計算し、iek=oek=Bおよびidk=odk=(S,B)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。 Gen y : Algorithm Gen y (where yε {α, β}) takes pp as input, randomly selects a matrix S y εZ q n × g, and has a matrix X y εZ q m of size m × g. × select g in accordance with the distribution χ m × g. The algorithm Gen y calculates B y = AS y + X y ∈Z q m × g , iek y = oek y = B y and idky y = odk y = (S y , B y ), and the encryption key and A set of decryption keys (iek y = oek y , idk y = odk y ) is output.

Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=B,平文μを入力とし、m個の要素からなるベクトルe∈{−1,+1}をランダムに選び、

Figure 0006189788

を計算し、c=(U,C)∈Z ×Z を暗号文ictとして出力する。 Enci: The algorithm Enci generates a ciphertext before re-encryption. When generating a ciphertext corresponding to the user yε {α, β}, the algorithm Enci receives PP = pp, iek y = B y , plaintext μ, and a vector e y ε {− 1, + 1} m is chosen at random,
Figure 0006189788

Was calculated, c y = (U y, C y) to ∈Z q n × Z q g is output as the ciphertext ict y.

Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(S,B),暗号文ict=c=(U,C)を入力とし、d=C−U mod qを計算し、

Figure 0006189788

を計算し、平文μ’∈Z を出力する。 Deci: The algorithm Deci decrypts the ciphertext before re-encryption. When the ciphertext corresponding to the user yε {α, β} is decrypted, the algorithm Deci is expressed as PP = pp, idk y = (S y , B y ), cipher text ic t y = c y = (U y , C as input y), calculates a d y = C y -U y S y mod q,
Figure 0006189788

The calculated, and outputs the plaintext μ'∈Z p g.

Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。   Enco: The algorithm Enco generates a ciphertext after re-encryption. The algorithm Enco in this embodiment is the same as the algorithm Enci.

Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。   Deco: Algorithm Deco decrypts the ciphertext after re-encryption. The algorithm Deco in this embodiment is the same as the algorithm Deci.

RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα=(Sα,Bα)(第1復号鍵),oekβ=Bβ(第2暗号化鍵)を入力とし、サイズnδ×mの行列Y∈{−1,+1}nδ×mをランダムに選び、Mα→β=Y[A|Bβ]+[O|−P2(Sα)]∈Z nδ×(n+g)を計算し、基本変換鍵rkα→β=Mα→β∈Z nδ×(n+g)を得る。アルゴリズムRekeyGenは、サイズm×mの行列Y’∈{−1,+1}m×mをランダムに選び、[Tβ|Nβ]=Y’[A|Bβ]∈Z m×(n+g)を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈Z m×n×Z m×gを得る。アルゴリズムRekeyGenは、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。 RekeyGen: The algorithm RekeyGen receives PP = pp, idk α = (S α , B α ) (first decryption key), oek β = B β (second encryption key), and a matrix Y of size nδ × m ∈ {−1, + 1} nδ × m is randomly selected, and M α → β = Y [A | B β ] + [O | −P2 (S α )] ∈Z q nδ × (n + g) is calculated, The basic conversion key rk α → β = M α → βεZ q nδ × (n + g) is obtained. The algorithm RekeyGen randomly selects a matrix of size m × m Y′ε {−1, + 1} m × m , and [T β | N β ] = Y ′ [A | B β ] εZ q m × (n + g ) To obtain a randomized key (rpp β , rk β ) = (T β , N β ) εZ q m × n × Z q m × g . The algorithm RekeyGen outputs RK α → β = (rk α → β , rpp β , rk β ) as a conversion key.

ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β=Mα→β,rppβ,rekβ),ictα=cα=(Uα,Cα)(第1暗号文)を入力とし、以下を計算する。
1)U’|C’=BD(Uα)Mα→β∈Z n+gを得、(Uβ,Cβ)=(U’,C’+Cα)を得、暗号文c’=(Uβ,Cβ)=(U’,C’+Cα)∈Z ×Z を得る。
2)rppβ=Tβ,rekβ=Nβ,平文とする零元を入力とし、m個の要素からなるベクトルeβ∈{−1,+1}をランダムに選び、暗号文c’’=(eββ,eββ)を得る。
3)octβ=(U’,C’+Cα)+(eββ,eββ)=(U’+eββ,C’+Cα+eββ)を変換済暗号文として出力する。
ReEnc: Algorithm ReEnc is PP = pp, RK α → β = (rk α → β = M α → β , rpp β , rk β ), ict α = c α = (U α , C α ) (first cipher) Sentence) as input and calculate:
1) U ′ | C ′ = BD (U α ) M α → βεZ q n + g is obtained, (U β , C β ) = (U ′, C ′ + C α ) is obtained, and the ciphertext c ′ = ( U β , C β ) = (U ′, C ′ + C α ) εZ q n × Z q g is obtained.
2) rpp β = T β , rek β = N β , a plaintext zero element as input, a vector e β ε {-1, + 1} m consisting of m elements is randomly selected, and a ciphertext c '' = obtain (e β T β, e β N β).
3) Oct β = (U ′, C ′ + C α ) + (e β T β , e β N β ) = (U ′ + e β T β , C ′ + C α + e β N β ) as converted ciphertext Output.

実施例2は実施例1の変形例である。本実施例で特記しない限り、記号の定義は実施例1と同じである。   The second embodiment is a modification of the first embodiment. Unless otherwise specified in the present embodiment, the definitions of symbols are the same as those in the first embodiment.

<確定的アルゴリズムBD,P2の定義>
実施例1と同じである。
<Definition of deterministic algorithms BD and P2>
Same as Example 1.

<再変換可能暗号方式>
本実施例の再変換可能暗号方式π=(SU,G,E,D,RKG,Switch)を説明する。
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、行列A∈Z m×nをランダムに選び、共通パラメータpp=(κ,1,q,m,g,χ,A)を出力する(pp←SU(1κ))。
<Reconvertible encryption method>
The reconvertible encryption method π = (SU, G, E, D, RKG, Switch) of this embodiment will be described.
SU: The common parameter generation algorithm SU takes κ as an input, randomly selects a matrix AεZ q m × n, and outputs a common parameter pp = (κ, 1 n , q, m, g, χ, A). (Pp ← SU ( )).

G:鍵生成アルゴリズムGは、ppを入力にとり、行列S∈Z n×gをランダムに選び、サイズm×gの行列X∈Z m×gを分布χm×gに従って選ぶ。行列Xの各要素は分布χに従う。鍵生成アルゴリズムGは、B=AS+pX∈Z m×gを計算し、ek=Bおよびdk=(S,B)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。 G: The key generation algorithm G takes pp as input, randomly selects a matrix SεZ q n × g , and selects a matrix XεZ q m × g of size m × g according to the distribution χ m × g . Each element of the matrix X follows the distribution χ. The key generation algorithm G calculates B = AS + pX∈Z q m × g , sets ek = B and dk = (S, B), and outputs a pair (ek, dk) of the encryption key and the decryption key (( ek, dk) <-G (pp)).

E:暗号化アルゴリズムEは、pp,ek=B∈Z m×g,平文μ∈Z を入力にとり、m個の要素からなるベクトルe∈{−1,+1}をランダムに選び、c=(U,C)=(eA,eB+μ)を計算し、暗号文c=(U,C)∈Z ×Z を出力する(c=E(pp,ek,μ))。 E: Encryption algorithm E is, pp, take ek = B∈Z q m × g, the input plaintext μ∈Z p g, the vector e∈ {-1, + 1} of m elements m randomly selects , C = (U, C) = (eA, eB + μ), and outputs ciphertext c = (U, C) εZ q n × Z q g (c = E (pp, ek, μ)) .

D:復号アルゴリズムDは、pp,dk=(S,B),暗号文c=(U,C)を入力にとり、d=C−US mod qを計算し、μ’=d mod pを計算し、平文μ’∈Z を出力する(μ’←D(pp,dk,c))。 D: The decryption algorithm D takes pp, dk = (S, B), ciphertext c = (U, C) as input, calculates d = C-US mod q, and calculates μ ′ = d mod p. , and outputs the plaintext μ'∈Z p g (μ '← D (pp, dk, c)).

RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(Sα,Bα),ekβ=Bβを入力とする。変換鍵生成アルゴリズムRKGは、サイズnδ×mの行列Y∈{−1,+1}nδ×mをランダムに選び、Mα→β←Y[A|Bβ]+[O|−P2(Sα)]∈Z nδ×(n+g)を計算し、基本変換鍵rkα→β=Mα→β∈Z nδ×(n+g)を出力する(rkα→β←RKG(pp,dkα,ekβ))。 RKG: The conversion key generation algorithm RKG receives pp, dk α = (S α , B α ), ek β = B β . The conversion key generation algorithm RKG randomly selects a matrix Yε {−1, + 1} nδ × m of size nδ × m, and M α → β ← Y [A | B β ] + [O | −P2 (S α )] ΕZ q nδ × (n + g) and the basic transformation key rk α → β = M α → β εZ q nδ × (n + g) is output (rk α → β ← RKG (pp, dk α , ek β)).

RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=Bβを入力にとり、サイズm×mの行列Y’∈{−1,+1}m×mをランダムに選び、[Tβ|Nβ]=Y’[A|Bβ]∈Z m×(n+g)を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈Z m×n×Z m×gを出力する((rppβ,rekβ)←RG(pp,ekβ))。 RG: The randomized key generation algorithm RG takes pp, ek β = B β as an input, randomly selects a matrix Y′∈ {−1, + 1} m × m of size m × m, and [T β | N β ] = Y ′ [A | B β ] εZ q m × (n + g) , and the randomized key (rpp β , rek β ) = (T β , N β ) εZ q m × n × Z q m × outputs the g ((rpp β, rek β ) ← RG (pp, ek β)).

Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈Z nδ×(n+g),暗号文cα=(Uα,Cα)∈Z ×Z を入力にとる。ただし、暗号文cα=(Uα,Cα)はユーザαの復号鍵dkα=(Sα,Bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(Sβ,Bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=Bβに対応する。変換アルゴリズムSwitchは、ベクトルUα∈Z を入力としたアルゴリズムBDを実行してベクトルBD(Uα)∈Z nδを得、U’|C’←BD(Uα)Mα→β∈Z n+gとする。ただし、U’∈Z かつC’∈Z であり、U’の後にC’を結合したベクトルがBD(Uα)Mα→βとなる。変換アルゴリズムSwitchは、さらに(Uβ,Cβ)=(U’,C’+Cα)を計算し、暗号文cβ=(Uβ,Cβ)∈Z ×Z を出力する(cβ←Switch(pp,rkα→β,cα))。 Switch: The conversion algorithm Switch receives pp, rk α → β = M α → β ∈ Z q nδ × (n + g) , ciphertext c α = (U α , C α ) ∈Z q n × Z q g Take. However, the ciphertext c α = (U α , C α ) is a ciphertext that can be decrypted with the decryption key dk α = (S α , B α ) of the user α, and the ciphertext c β is the decryption key dk of the user β. It is a ciphertext that can be decrypted with β = (S β , B β ). dk β corresponds to the encryption key ek β = B β described above. The transformation algorithm Switch executes an algorithm BD having the vector U α εZ q n as an input to obtain a vector BD (U α ) εZ q , and U ′ | C ′ ← BD (U α ) M α → β Let ∈Z q n + g . However, U′∈Z q n and C′∈Z q g , and a vector obtained by combining C ′ after U ′ is BD (U α ) M α → β . The conversion algorithm Switch further calculates (U β , C β ) = (U ′, C ′ + C α ), and outputs the ciphertext c β = (U β , C β ) ∈Z q n × Z q g . (c β ← Switch (pp, rk α → β, c α)).

<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
<Proxy re-encryption method>
In the case of the re-convertible encryption method π, the proxy re-encryption method Π is as follows.

Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,1,q,m,g,χ,A)を出力する。 Setup: The algorithm Setup calculates pp ← SU (1 κ ) with κ as an input, and outputs PP = pp = (κ, 1 n , q, m, g, χ, A).

Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、行列S∈Z n×gをランダムに選び、サイズm×gの行列X∈Z m×gを分布χm×gに従って選ぶ。アルゴリズムGenは、B=AS+pX∈Z m×gを計算し、iek=oek=Bおよびidk=odk=(S,B)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。 Gen y : Algorithm Gen y (where yε {α, β}) takes pp as input, randomly selects a matrix S y εZ q n × g, and has a matrix X y εZ q m of size m × g. × select g in accordance with the distribution χ m × g. The algorithm Gen y calculates B y = AS y + pX y ∈Z q m × g , and iek y = oek y = B y and idk y = odk y = (S y , B y ), and the encryption key and A set of decryption keys (iek y = oek y , idk y = odk y ) is output.

Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=B,平文μを入力とし、m個の要素からなるベクトルe∈{−1,+1}をランダムに選び、c=(U,C)=(eA,e+μ)を計算し、c=(U,C)∈Z ×Z を暗号文ictとして出力する。 Enci: The algorithm Enci generates a ciphertext before re-encryption. When generating a ciphertext corresponding to the user yε {α, β}, the algorithm Enci receives PP = pp, iek y = B y , plaintext μ, and a vector e y ε {− 1, + 1} m randomly selected, c y = (U y, C y) = (e y a, e y B y + μ) was calculated, c y = (U y, C y) ∈Z q n × outputs the Z q g as ciphertext ict y.

Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(S,B),暗号文ict=c=(U,C)を入力とし、d=C−U mod qを計算し、μ’=d mod pを計算し、平文μ’∈Z を出力する。 Deci: The algorithm Deci decrypts the ciphertext before re-encryption. When the ciphertext corresponding to the user yε {α, β} is decrypted, the algorithm Deci is expressed as PP = pp, idk y = (S y , B y ), cipher text ic t y = c y = (U y , C as input y), calculates a d y = C y -U y S y mod q, μ '= calculates the d y mod p, and outputs the plaintext μ'∈Z p g.

Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。   Enco: The algorithm Enco generates a ciphertext after re-encryption. The algorithm Enco in this embodiment is the same as the algorithm Enci.

Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。   Deco: Algorithm Deco decrypts the ciphertext after re-encryption. The algorithm Deco in this embodiment is the same as the algorithm Deci.

RekeyGen:実施例1と同じである。   RekeyGen: Same as Example 1.

ReEnc:実施例1と同じである。   ReEnc: Same as in Example 1.

実施例3も実施例1の変形例である。本実施例で特記しない限り、記号の定義は実施例1と同じである。   The third embodiment is also a modification of the first embodiment. Unless otherwise specified in the present embodiment, the definitions of symbols are the same as those in the first embodiment.

<確定的アルゴリズムBD,P2の定義>
実施例1と同じである。
<Definition of deterministic algorithms BD and P2>
Same as Example 1.

<再変換可能暗号方式>
本実施例の再変換可能暗号方式π=(SU,G,E,D,RKG,Switch)を説明する。
<Reconvertible encryption method>
The reconvertible encryption method π = (SU, G, E, D, RKG, Switch) of this embodiment will be described.

SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、行列A∈Z n×nをランダムに選び、共通パラメータpp=(κ,1,q,g,χ,A)を出力する(pp←SU(1κ))。 SU: The common parameter generation algorithm SU takes κ as an input, randomly selects a matrix AεZ q n × n , and outputs a common parameter pp = (κ, 1 n , q, g, χ, A) (pp ← SU (1 κ )).

G:鍵生成アルゴリズムGは、ppを入力にとり、サイズn×gの行列S∈Z n×gを分布χn×gに従って選び、サイズn×gの行列X∈Z n×gを分布χn×gに従って選ぶ。鍵生成アルゴリズムGは、B=AS+X∈Z n×gを計算し、ek=Bおよびdk=(S,B)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。 G: key generation algorithm G takes the input of pp, the matrix S∈Z q n × g size n × g to select according to the distribution chi n × g, the distribution matrix X∈Z q n × g size n × g Choose according to χ n × g . The key generation algorithm G calculates B = AS + XεZ q n × g , sets ek = B and dk = (S, B), and outputs a pair (ek, dk) of an encryption key and a decryption key (( ek, dk) <-G (pp)).

E:暗号化アルゴリズムEは、pp,ek=B∈Z n×g,平文μ∈Z を入力にとり、n個の要素からなるベクトルe,e∈Z およびg個の要素からなるベクトルe∈Z の各要素を分布χに従って選び、

Figure 0006189788



を計算し、暗号文c=(U,C)∈Z ×Z を出力する(c=E(pp,ek,μ))。 E: Encryption algorithm E is, pp, ek = B∈Z q n × g, taken up in the input plaintext μ∈Z p g, consisting of n element vector e 1, e 2 ∈Z q n and g-number of Select each element of a vector e 3 ∈Z q g consisting of elements according to the distribution χ,
Figure 0006189788



And ciphertext c = (U, C) εZ q n × Z q g is output (c = E (pp, ek, μ)).

D:復号アルゴリズムDは、pp,dk=(S,B),暗号文c=(U,C)を入力にとり、d=C−US mod qを計算し、

Figure 0006189788

を計算し、平文μ’∈Z を出力する(μ’←D(pp,dk,c))。 D: The decryption algorithm D takes pp, dk = (S, B), ciphertext c = (U, C) as input, calculates d = C-US mod q,
Figure 0006189788

It was calculated, and outputs the plaintext μ'∈Z p g (μ '← D (pp, dk, c)).

RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(Sα,Bα),ekβ=Bβを入力とする。変換鍵生成アルゴリズムRKGは、サイズnδ×nの行列Y,Y∈Z nδ×nおよびサイズサイズnδ×gの行列Y∈Z nδ×gの各要素を分布χに従って選び、Mα→β=Y[A|Bβ]+[Y|Y]+[O|−P2(Sα)]∈Z nδ×(n+g)を計算し、基本変換鍵rkα→β=Mα→β∈Z nδ×(n+g)を出力する(rkα→β←RKG(pp,dkα,ekβ))。 RKG: The conversion key generation algorithm RKG receives pp, dk α = (S α , B α ), ek β = B β . The transformation key generation algorithm RKG selects each element of a matrix Y 1 , Y 2 εZ q nδ × n of size nδ × n and a matrix Y 3 εZ q nδ × g of size nδ × g according to the distribution χ, and M α → β = Y 1 [A | B β ] + [Y 2 | Y 3 ] + [O | −P2 (S α )] ∈Z q nδ × (n + g) is calculated, and the basic conversion key rk α → β = M α → β ∈Z q nδ × (n + g) is output (rk α → β ← RKG (pp, dk α , ek β )).

RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=Bβを入力にとり、サイズn×nの行列Y’,Y’∈Z n×nおよびサイズn×gの行列Y’∈Z n×gの各要素を分布χに従って選び、[Tβ|Nβ]=Y’[A|Bβ]+[Y’|Y’]∈Z n×(n+g)を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈Z n×n×Z n×gを出力する((rppβ,rekβ)←RG(pp,ekβ))。 RG: Randomized key generation algorithm RG is, pp, taking to the input ek β = B β, matrix Y 1 size n × n ', Y 2' ∈Z q n × n and the size n × g matrix Y 3 'of each element of ∈ Z q n × g to select according to the distribution χ, [T β | n β ] = Y 1 '[a | B β] + [Y 2' | Y 3 '] ∈Z q n × (n + g) And a randomized key (rpp β , rk β ) = (T β , N β ) ∈Z q n × n × Z q n × g is output ((rpp β , rk β ) ← RG (pp, ek β)).

Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈Z nδ×(n+g),暗号文cα=(Uα,Cα)∈Z ×Z を入力にとる。ただし、暗号文cα=(Uα,Cα)はユーザαの復号鍵dkα=(Sα,Bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(Sβ,Bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=Bβに対応する。変換アルゴリズムSwitchは、ベクトルUα∈Z を入力としたアルゴリズムBDを実行してベクトルBD(Uα)∈Z nδを得、U’|C’=BD(Uα)Mα→β∈Z n+gとする。ただし、U’∈Z かつC’∈Z であり、U’の後にC’を結合したベクトルがBD(Uα)Mα→βとなる。変換アルゴリズムSwitchは、さらに(Uβ,Cβ)=(U’,C’+Cα)を計算し、暗号文cβ=(Uβ,Cβ)∈Z ×Z を出力する(cβ←Switch(pp,rkα→β,cα))。 Switch: The conversion algorithm Switch receives pp, rk α → β = M α → β ∈ Z q nδ × (n + g) , ciphertext c α = (U α , C α ) ∈Z q n × Z q g Take. However, the ciphertext c α = (U α , C α ) is a ciphertext that can be decrypted with the decryption key dk α = (S α , B α ) of the user α, and the ciphertext c β is the decryption key dk of the user β. It is a ciphertext that can be decrypted with β = (S β , B β ). dk β corresponds to the encryption key ek β = B β described above. The transformation algorithm Switch executes an algorithm BD having the vector U α εZ q n as an input to obtain a vector BD (U α ) εZ q , and U ′ | C ′ = BD (U α ) M α → β Let ∈Z q n + g . However, U′∈Z q n and C′∈Z q g , and a vector obtained by combining C ′ after U ′ is BD (U α ) M α → β . The conversion algorithm Switch further calculates (U β , C β ) = (U ′, C ′ + C α ), and outputs the ciphertext c β = (U β , C β ) ∈Z q n × Z q g . (c β ← Switch (pp, rk α → β, c α)).

<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
<Proxy re-encryption method>
In the case of the re-convertible encryption method π, the proxy re-encryption method Π is as follows.

Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,1,q,g,χ,A)を出力する。 Setup: The algorithm Setup calculates pp ← SU (1 κ ) with κ as an input, and outputs PP = pp = (κ, 1 n , q, g, χ, A).

Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、サイズn×gの行列S∈Z n×gを分布χn×gに従って選び、サイズn×gの行列X∈Z n×gを分布χn×gに従って選ぶ。アルゴリズムGenは、B=AS+X∈Z n×gを計算し、iek=oek=Bおよびidk=odk=(S,B)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。 Gen y : Algorithm Gen y (where yε {α, β}) takes pp as input, selects a matrix S y εZ q n × g of size n × g according to the distribution χ n × g , and size n × Choose the matrix X y ∈ Z q n × g of g according to the distribution χ n × g . The algorithm Gen y calculates B y = AS y + X y ∈Z q n × g , iek y = oek y = B y and idky y = odk y = (S y , B y ), and the encryption key and A set of decryption keys (iek y = oek y , idk y = odk y ) is output.

Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=B,平文μを入力とし、n個の要素からなるベクトル∈Z およびg個の要素からなるベクトル∈Z の各要素を分布χに従って選び、

Figure 0006189788

を計算し、c=(U,C)∈Z ×Z を暗号文ictとして出力する。 Enci: The algorithm Enci generates a ciphertext before re-encryption. When generating a ciphertext corresponding to the user yε {α, β}, the algorithm Enci receives PP = pp, iek y = B y , plaintext μ, and a vector y e 1 , y consisting of n elements. choose each element of a vector y e 3 ∈Z q g consisting of e 2 ∈Z q n and g elements according to the distribution χ,
Figure 0006189788

Was calculated, c y = (U y, C y) to ∈Z q n × Z q g is output as the ciphertext ict y.

Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(S,B),暗号文ict=c=(U,C)を入力とし、d=C−U mod qを計算し、

Figure 0006189788

を計算し、平文μ’∈Z を出力する。 Deci: The algorithm Deci decrypts the ciphertext before re-encryption. When the ciphertext corresponding to the user yε {α, β} is decrypted, the algorithm Deci is expressed as PP = pp, idk y = (S y , B y ), cipher text ic t y = c y = (U y , C as input y), calculates a d y = C y -U y S y mod q,
Figure 0006189788

The calculated, and outputs the plaintext μ'∈Z p g.

Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。   Enco: The algorithm Enco generates a ciphertext after re-encryption. The algorithm Enco in this embodiment is the same as the algorithm Enci.

Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。   Deco: Algorithm Deco decrypts the ciphertext after re-encryption. The algorithm Deco in this embodiment is the same as the algorithm Deci.

RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα=(Sα,Bα)(第1復号鍵),oekβ=Bβ(第2暗号化鍵)を入力とし、サイズnδ×nの行列Y,Y∈Z nδ×nおよびサイズサイズnδ×gの行列Y∈Z nδ×gの各要素を分布χに従って選び、Mα→β=Y[A|Bβ]+[Y|Y]+[O|−P2(Sα)]∈Z nδ×(n+g)を計算し、基本変換鍵rkα→β=Mα→β∈Z nδ×(n+g)を得る。アルゴリズムRekeyGenは、サイズn×nの行列Y’,Y’∈Z n×nおよびサイズn×gの行列Y’∈Z n×gの各要素を分布χに従って選び、[Tβ|Nβ]=Y’[A|Bβ]+[Y’|Y’]∈Z n×(n+g)を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈Z n×n×Z n×gを得る。アルゴリズムRekeyGenは、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。 RekeyGen: The algorithm RekeyGen receives PP = pp, idk α = (S α , B α ) (first decryption key), oek β = B β (second encryption key), and a matrix Y of size nδ × n 1 , Y 2 εZ q nδ × n and a size Y of nδ × g matrix Y 3 εZ q nδ × g are selected according to the distribution χ, and M α → β = Y 1 [A | B β ] + [ Y 2 | Y 3 ] + [O | −P 2 (S α )] εZ q nδ × (n + g) is calculated, and the basic conversion key rk α → β = M α → βεZ q nδ × (n + g) is calculated . obtain. Algorithm RekeyGen the matrix Y 1 size n × n ', Y 2' ∈Z q n × matrix of n and the size n × g Y 3 'wish accordance ∈ Z q n × distribution of each element of g chi, [T β | n β] = Y 1 '[a | B β] + [Y 2' | Y 3 '] ∈Z q n to calculate the × (n + g), a random key (rpp β, rek β) = (T beta, obtaining n β) ∈Z q n × n × Z q n × g. The algorithm RekeyGen outputs RK α → β = (rk α → β , rpp β , rk β ) as a conversion key.

ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β=Mα→β,rppβ,rekβ),ictα=cα=(Uα,Cα)(第1暗号文)を入力とし、以下を計算する。
1)U’|C’=BD(Uα)Mα→β∈Z n+gを得、(Uβ,Cβ)=(U’,C’+Cα)を得、暗号文c’=(Uβ,Cβ)=(U’,C’+Cα)∈Z ×Z を得る。
2)rppβ=Tβ,rekβ=Nβ,平文とする零元を入力とし、n個の要素からなるベクトルe,e∈Z およびg個の要素からなるベクトルe∈Z の各要素を分布χに従って選び、c’’=(eβ+e,eβ+e)を得る。
3)octβ=(U’,C’+Cα)+(eβ+e,eβ+e)=(U’+eβ+e,C’+Cα+eβ+e)を変換済暗号文として出力する。
ReEnc: Algorithm ReEnc is PP = pp, RK α → β = (rk α → β = M α → β , rpp β , rk β ), ict α = c α = (U α , C α ) (first cipher) Sentence) as input and calculate:
1) U ′ | C ′ = BD (U α ) M α → βεZ q n + g is obtained, (U β , C β ) = (U ′, C ′ + C α ) is obtained, and the ciphertext c ′ = ( U β , C β ) = (U ′, C ′ + C α ) εZ q n × Z q g is obtained.
2) rpp β = T β , rek β = N β , a zero element as plain text, and a vector e 1 , e 2 εZ q n consisting of n elements and a vector e 3 ε consisting of g elements Each element of Z q g is selected according to the distribution χ to obtain c ″ = (e 1 T β + e 2 , e 1 N β + e 3 ).
3) oct β = (U ′, C ′ + C α ) + (e 1 T β + e 2 , e 1 N β + e 3 ) = (U ′ + e 1 T β + e 2 , C ′ + C α + e 1 N β + e 3 ) is output as converted ciphertext.

実施例4は実施例3の変形例である。本実施例で特記しない限り、記号の定義は実施例1と同じである。   The fourth embodiment is a modification of the third embodiment. Unless otherwise specified in the present embodiment, the definitions of symbols are the same as those in the first embodiment.

<確定的アルゴリズムBD,P2の定義>
実施例1と同じである。
<Definition of deterministic algorithms BD and P2>
Same as Example 1.

<再変換可能暗号方式>
本実施例の再変換可能暗号方式π=(SU,G,E,D,RKG,Switch)を説明する。
<Reconvertible encryption method>
The reconvertible encryption method π = (SU, G, E, D, RKG, Switch) of this embodiment will be described.

SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、行列A∈Z n×nをランダムに選び、共通パラメータpp=(κ,1,q,g,χ,A)を出力する(pp←SU(1κ))。 SU: The common parameter generation algorithm SU takes κ as an input, randomly selects a matrix AεZ q n × n , and outputs a common parameter pp = (κ, 1 n , q, g, χ, A) (pp ← SU (1 κ )).

G:鍵生成アルゴリズムGは、ppを入力にとり、サイズn×gの行列S∈Z n×gを分布χn×gに従って選び、行列S∈Z n×gを分布χn×gに従って選ぶ。鍵生成アルゴリズムGは、B=AS+pX∈Z n×gを計算し、ek=Bおよびdk=(S,B)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。 G: The key generation algorithm G takes pp as input, selects a matrix S y εZ q n × g of size n × g according to the distribution χ n × g , and selects the matrix SεZ q n × g as distribution χ n × g Choose according to. The key generation algorithm G calculates B = AS + pXεZ q n × g , sets ek = B and dk = (S, B), and outputs a pair (ek, dk) of the encryption key and the decryption key (( ek, dk) <-G (pp)).

E:暗号化アルゴリズムEは、pp,ek=B∈Z n×g,平文μ∈Z を入力にとり、n個の要素からなるベクトルe,e∈Z およびg個の要素からなるベクトルe∈Z の各要素を分布χに従って選び、c=(U,C)=(eA+pe,eB+e+μ)を計算し、暗号文c=(U,C)∈Z ×Z を出力する(c=E(pp,ek,μ))。 E: Encryption algorithm E is, pp, ek = B∈Z q n × g, taken up in the input plaintext μ∈Z p g, consisting of n element vector e 1, e 2 ∈Z q n and g-number of Each element of the vector e 3 ∈Z q g consisting of elements is selected according to the distribution χ, and c = (U, C) = (e 1 A + pe 2 , e 1 B + e 3 + μ) is calculated, and the ciphertext c = (U, C) εZ q n × Z q g is output (c = E (pp, ek, μ)).

D:復号アルゴリズムDは、pp,dk=(S,B),暗号文c=(U,C)を入力にとり、d=C−US mod qを計算し、μ’=d mod pを計算し、平文μ’∈Z を出力する(μ’←D(pp,dk,c))。 D: The decryption algorithm D takes pp, dk = (S, B), ciphertext c = (U, C) as input, calculates d = C-US mod q, and calculates μ ′ = d mod p. , and outputs the plaintext μ'∈Z p g (μ '← D (pp, dk, c)).

RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(Sα,Bα),ekβ=Bβを入力とする。変換鍵生成アルゴリズムRKGは、サイズnδ×nの行列Y,Y∈Z nδ×nおよびサイズサイズnδ×gの行列Y∈Z nδ×gの各要素を分布χに従って選び、Mα→β=Y[A|Bβ]+p[Y|Y]+[O|−P2(Sα)]∈Z nδ×(n+g)を計算し、基本変換鍵rkα→β=Mα→β∈Z nδ×(n+g)を出力する(rkα→β←RKG(pp,dkα,ekβ))。 RKG: The conversion key generation algorithm RKG receives pp, dk α = (S α , B α ), ek β = B β . The transformation key generation algorithm RKG selects each element of a matrix Y 1 , Y 2 εZ q nδ × n of size nδ × n and a matrix Y 3 εZ q nδ × g of size nδ × g according to the distribution χ, and M α → β = Y 1 [A | B β ] + p [Y 2 | Y 3 ] + [O | −P2 (S α )] ∈Z q nδ × (n + g) is calculated, and the basic conversion key rk α → β = M α → β ∈Z q nδ × (n + g) is output (rk α → β ← RKG (pp, dk α , ek β )).

RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=Bβを入力にとり、サイズn×nの行列Y’,Y’∈Z n×nおよびサイズn×gの行列Y’∈Z n×gの各要素を分布χに従って選び、[Tβ|Nβ]=Y’[A|Bβ]+p[Y’|Y’]∈Z n×(n+g)を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈Z n×n×Z n×gを出力する((rppβ,rekβ)←RG(pp,ekβ))。 RG: Randomized key generation algorithm RG is, pp, taking to the input ek β = B β, matrix Y 1 size n × n ', Y 2' ∈Z q n × n and the size n × g matrix Y 3 'of each element of ∈ Z q n × g to select according to the distribution χ, [T β | n β ] = Y 1 '[a | B β] + p [Y 2' | Y 3 '] ∈Z q n × (n + g) And a randomized key (rpp β , rk β ) = (T β , N β ) ∈Z q n × n × Z q n × g is output ((rpp β , rk β ) ← RG (pp, ek β)).

Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈Z nδ×(n+g),暗号文cα=(Uα,Cα)∈Z ×Z を入力にとる。ただし、暗号文cα=(Uα,Cα)はユーザαの復号鍵dkα=(Sα,Bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(Sβ,Bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=Bβに対応する。変換アルゴリズムSwitchは、ベクトルUα∈Z を入力としたアルゴリズムBDを実行してベクトルBD(Uα)∈Z nδを得、U’|C’=BD(Uα)Mα→β∈Z n+gとする。変換アルゴリズムSwitchは、さらに(Uβ,Cβ)=(U’,C’+Cα)を計算し、暗号文cβ=(Uβ,Cβ)∈Z ×Z を出力する(cβ←Switch(pp,rkα→β,cα))。 Switch: The conversion algorithm Switch receives pp, rk α → β = M α → β ∈ Z q nδ × (n + g) , ciphertext c α = (U α , C α ) ∈Z q n × Z q g Take. However, the ciphertext c α = (U α , C α ) is a ciphertext that can be decrypted with the decryption key dk α = (S α , B α ) of the user α, and the ciphertext c β is the decryption key dk of the user β. It is a ciphertext that can be decrypted with β = (S β , B β ). dk β corresponds to the encryption key ek β = B β described above. The transformation algorithm Switch executes an algorithm BD having the vector U α εZ q n as an input to obtain a vector BD (U α ) εZ q , and U ′ | C ′ = BD (U α ) M α → β Let ∈Z q n + g . The conversion algorithm Switch further calculates (U β , C β ) = (U ′, C ′ + C α ), and outputs the ciphertext c β = (U β , C β ) ∈Z q n × Z q g . (c β ← Switch (pp, rk α → β, c α)).

<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
<Proxy re-encryption method>
In the case of the re-convertible encryption method π, the proxy re-encryption method Π is as follows.

Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,1,q,g,χ,A)を出力する。 Setup: The algorithm Setup calculates pp ← SU (1 κ ) with κ as an input, and outputs PP = pp = (κ, 1 n , q, g, χ, A).

Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、サイズn×gの行列S∈Z n×gを分布χn×gに従って選び、サイズn×gの行列X∈Z n×gを分布χn×gに従って選ぶ。アルゴリズムGenは、B=AS+pX∈Z n×gを計算し、iek=oek=Bおよびidk=odk=(S,B)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。 Gen y : Algorithm Gen y (where yε {α, β}) takes pp as input, selects a matrix S y εZ q n × g of size n × g according to the distribution χ n × g , and size n × Choose the matrix X y ∈ Z q n × g of g according to the distribution χ n × g . The algorithm Gen y calculates B y = AS y + pX y ∈Z q n × g , iek y = oek y = B y and idk y = odk y = (S y , B y ), and the encryption key and A set of decryption keys (iek y = oek y , idk y = odk y ) is output.

Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=B,平文μを入力とし、n個の要素からなるベクトル∈Z およびg個の要素からなるベクトル∈Z の各要素を分布χに従って選び、c=(U,C)=(A+p+μ)を計算し、c=(U,C)∈Z ×Z を暗号文ictとして出力する。 Enci: The algorithm Enci generates a ciphertext before re-encryption. When generating a ciphertext corresponding to the user yε {α, β}, the algorithm Enci receives PP = pp, iek y = B y , plaintext μ, and a vector y e 1 , y consisting of n elements. Each element of a vector y e 3 ∈Z q g consisting of e 2 ∈Z q n and g elements is selected according to the distribution χ, and c y = (U y , C y ) = ( y e 1 A + p y e 2 , y e 1 B y + y e 3 + μ) is calculated, and c y = (U y , C y ) εZ q n × Z q g is output as the ciphertext tic y .

Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(S,B),暗号文ict=c=(U,C)を入力とし、d=C−U mod qを計算し、μ’=d mod pを計算し、平文μ’∈Z を出力する。 Deci: The algorithm Deci decrypts the ciphertext before re-encryption. When the ciphertext corresponding to the user yε {α, β} is decrypted, the algorithm Deci is expressed as PP = pp, idk y = (S y , B y ), cipher text ic t y = c y = (U y , C as input y), calculates a d y = C y -U y S y mod q, μ '= calculates the d y mod p, and outputs the plaintext μ'∈Z p g.

Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。   Enco: The algorithm Enco generates a ciphertext after re-encryption. The algorithm Enco in this embodiment is the same as the algorithm Enci.

Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。   Deco: Algorithm Deco decrypts the ciphertext after re-encryption. The algorithm Deco in this embodiment is the same as the algorithm Deci.

RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα=(Sα,Bα)(第1復号鍵),oekβ=Bβ(第2暗号化鍵)を入力とし、サイズnδ×nの行列Y,Y∈Z nδ×nおよびサイズサイズnδ×gの行列Y∈Z nδ×gの各要素を分布χに従って選び、Mα→β=Y[A|Bβ]+p[Y|Y]+[O|−P2(Sα)]∈Z nδ×(n+g)を計算し、基本変換鍵rkα→β=Mα→β∈Z nδ×(n+g)を得る。アルゴリズムRekeyGenは、サイズn×nの行列Y’,Y’∈Z n×nおよびサイズn×gの行列Y’∈Z n×gの各要素を分布χに従って選び、[Tβ|Nβ]=Y’[A|Bβ]+p[Y’|Y’]∈Z n×(n+g)を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈Z n×n×Z n×gを得る。アルゴリズムRekeyGenは、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。 RekeyGen: The algorithm RekeyGen receives PP = pp, idk α = (S α , B α ) (first decryption key), oek β = B β (second encryption key), and a matrix Y of size nδ × n 1 , Y 2 εZ q nδ × n and a matrix Y 3 εZ q nδ × g of size size nδ × g are selected according to the distribution χ, and M α → β = Y 1 [A | B β ] + p [ Y 2 | Y 3 ] + [O | −P 2 (S α )] εZ q nδ × (n + g) is calculated, and the basic conversion key rk α → β = M α → βεZ q nδ × (n + g) is calculated . obtain. Algorithm RekeyGen the matrix Y 1 size n × n ', Y 2' ∈Z q n × matrix of n and the size n × g Y 3 'wish accordance ∈ Z q n × distribution of each element of g chi, [T β | n β] = Y 1 '[a | B β] + p [Y 2' | Y 3 '] ∈Z q n to calculate the × (n + g), a random key (rpp β, rek β) = (T beta, obtaining n β) ∈Z q n × n × Z q n × g. The algorithm RekeyGen outputs RK α → β = (rk α → β , rpp β , rk β ) as a conversion key.

ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β=Mα→β,rppβ,rekβ),ictα=cα=(Uα,Cα)(第1暗号文)を入力とし、以下を計算する。
1)U’|C’=BD(Uα)Mα→β∈Z n+gを得、(Uβ,Cβ)=(U’,C’+Cα)を得、暗号文c’=(Uβ,Cβ)=(U’,C’+Cα)∈Z ×Z を得る。
2)rppβ=Tβ,rekβ=Nβ,平文とする零元を入力とし、n個の要素からなるベクトルe,e∈Z およびg個の要素からなるベクトルe∈Z の各要素を分布χに従って選び、c’’=(eβ+pe,eβ+e)を得る。
3)octβ=(U’,C’+Cα)+(eβ+pe,eβ+e)=(U’+eβ+pe,C’+Cα+eβ+e)を変換済暗号文として出力する。
ReEnc: Algorithm ReEnc is PP = pp, RK α → β = (rk α → β = M α → β , rpp β , rk β ), ict α = c α = (U α , C α ) (first cipher) Sentence) as input and calculate:
1) U ′ | C ′ = BD (U α ) M α → βεZ q n + g is obtained, (U β , C β ) = (U ′, C ′ + C α ) is obtained, and the ciphertext c ′ = ( U β , C β ) = (U ′, C ′ + C α ) εZ q n × Z q g is obtained.
2) rpp β = T β , rek β = N β , a zero element as plain text, and a vector e 1 , e 2 εZ q n consisting of n elements and a vector e 3 ε consisting of g elements Each element of Z q g is selected according to the distribution χ to obtain c ″ = (e 1 T β + pe 2 , e 1 N β + e 3 ).
3) oct β = (U ′, C ′ + C α ) + (e 1 T β + pe 2 , e 1 N β + e 3 ) = (U ′ + e 1 T β + pe 2 , C ′ + C α + e 1 N β + e 3 ) is output as converted ciphertext.

実施例5では、実施例1と同様な構成を多項式環上で実現する。   In the fifth embodiment, the same configuration as that of the first embodiment is realized on a polynomial ring.

<確定的アルゴリズムBD,P2の定義>
参考文献1に記載された確定的アルゴリズムBD,P2を以下のように定義する。
k(κ)を整数関数とし、n(κ)=2k(κ)とする。f(x)=x+1とする。ただし、nは1以上の整数である。q(κ)を整数関数とし、q=q(κ)を素数とする。環R=Z[x]/(f(x))とし、R=R/qRとする。1以上の整数p,δについてpδ−1≦q<pδを満たすとする。
<Definition of deterministic algorithms BD and P2>
The deterministic algorithms BD and P2 described in Reference 1 are defined as follows.
k (κ) is an integer function, and n (κ) = 2 k (κ) . Let f (x) = x n +1. However, n is an integer of 1 or more. Let q (κ) be an integer function and q = q (κ) be a prime number. Let R = Z [x] / (f (x)) and R q = R / qR. It is assumed that p δ−1 ≦ q <p δ is satisfied for integers p and δ of 1 or more.

BD:アルゴリズムBDは、x∈Rを入力にとり、k=1,・・・,δについて、u∈R

Figure 0006189788

を満たすように計算し、(u,・・・,uδ)∈R δを出力する。(u,・・・,uδ)∈R δは(u,・・・,uδ)がδ個の環Rの元からなるとを意味する。 BD: The algorithm BD takes xεR q as input and sets u k εR p for k = 1,.
Figure 0006189788

And (u 1 ,..., U δ ) ∈R p δ is output. (U 1 ,..., U δ ) ∈R p δ means that (u 1 ,..., U δ ) is made up of δ rings R.

P2:アルゴリズムP2は、s∈Rを入力にとり、

Figure 0006189788

を出力する。これらのアルゴリズムの定義より、任意のx,s∈Rについて、BD(x)P2(s)=xs∈Rを満たす。 P2: Algorithm P2 takes sεR q as input,
Figure 0006189788

Is output. The definition of these algorithms, any x, the s∈R q, BD (x) P2 (s) = satisfy xs∈R q.

<再変換可能暗号方式>
本実施例の再変換可能暗号方式π=(SU,G,E,D,RKG,Switch)を説明する。SU,G,E,Dは参考文献1や参考文献2(Vadim Lyubashevsky, Chris Peikert, and Oded Regev, On ideal lattices and learning with errors over rings, in Henri Gilbert, editor, EUROCRYPT 2010, volume 6110 of LNCS, pages 1-23, Springer, Heidelberg, 2010.)に基づいている。Switchは参考文献1に基づいている。
<Reconvertible encryption method>
The reconvertible encryption method π = (SU, G, E, D, RKG, Switch) of this embodiment will be described. SU, G, E, and D are reference 1 and reference 2 (Vadim Lyubashevsky, Chris Peikert, and Oded Regev, On ideal lattices and learning with errors over rings, in Henri Gilbert, editor, EUROCRYPT 2010, volume 6110 of LNCS, pages 1-23, Springer, Heidelberg, 2010.). Switch is based on Reference 1.

SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、行列A∈R m×1をランダムに選び、共通パラメータpp=(κ,1,q,m,g,χ,A)を出力する(pp←SU(1κ))。ただし、n,m,gは1以上の整数である。分布χおよび天井関数の定義は実施例1と同じである。 SU: The common parameter generation algorithm SU takes κ as an input, selects a matrix AεR q m × 1 at random, and outputs a common parameter pp = (κ, 1 n , q, m, g, χ, A). (Pp ← SU ( )). However, n, m, and g are integers of 1 or more. The definitions of the distribution χ and the ceiling function are the same as those in the first embodiment.

G:鍵生成アルゴリズムGは、ppを入力にとり、s∈Rをランダムに選び、サイズm×1の行列X∈R m×1を分布χm×1に従って選ぶ。すなわち、行列Xの各要素は分布χに従う。鍵生成アルゴリズムGは、B=As+X∈R m×1を計算し、ek=Bおよびdk=(s,B)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。 G: The key generation algorithm G takes pp as an input, randomly selects sεR q , and selects a matrix XεR q m × 1 of size m × 1 according to the distribution χ m × 1 . That is, each element of the matrix X follows the distribution χ. The key generation algorithm G calculates B = As + XεR q m × 1 , sets ek = B and dk = (s, B), and outputs a pair (ek, dk) of an encryption key and a decryption key (( ek, dk) <-G (pp)).

E:暗号化アルゴリズムEは、pp,ek=B∈R m×1,平文μ∈Rを入力にとり、m個の要素からなるe∈R をランダムに選び、

Figure 0006189788

を計算し、暗号文c=(U,C)∈R×Rを出力する(c=E(pp,ek,μ))。 E: The encryption algorithm E takes pp, ek = B∈R q m × 1 , plaintext μ∈R p as input, and randomly selects e∈R q m consisting of m elements,
Figure 0006189788

And ciphertext c = (U, C) εR q × R q is output (c = E (pp, ek, μ)).

D:復号アルゴリズムDは、pp,dk=(s,B),暗号文c=(U,C)を入力にとり、d=C−Us mod qを計算し、

Figure 0006189788

を計算し、平文μ’∈Rを出力する(μ’←D(pp,dk,c))。 D: The decryption algorithm D takes pp, dk = (s, B), ciphertext c = (U, C) as input, calculates d = C-Us mod q,
Figure 0006189788

And plaintext μ′∈R p is output (μ ′ ← D (pp, dk, c)).

RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(sα,Bα),ekβ=Bβを入力とする。ただし、dkα=(sα,Bα)はユーザαに対して得られた復号鍵であり、ekβ=Bβはユーザβに対して得られた暗号化鍵である。何れの鍵も鍵生成アルゴリズムGによって得られたものである。変換鍵生成アルゴリズムRKGは、サイズδ×mの行列Y∈R δ×mをランダムに選び、Mα→β=Y[A|Bβ]+[O|−P2(sα)]∈R δ×2を計算し、基本変換鍵rkα→β=Mα→β∈R δ×2を出力する(rkα→β←RKG(pp,dkα,ekβ))。ただし、行列A∈R m×1および行列Bβ∈R m×1に対する[A|Bβ]∈R m×2は、行列Aの1個の列の後に行列Bβの1個の列を連結したサイズm×2の行列である。また、Oはδ個の零要素からなる列O∈R δであり、すべての要素がRの0からなる。 RKG: The conversion key generation algorithm RKG receives pp, dk α = (s α , B α ), ek β = B β . However, dk α = (s α , B α ) is a decryption key obtained for the user α, and ek β = B β is an encryption key obtained for the user β. All the keys are obtained by the key generation algorithm G. The transformation key generation algorithm RKG randomly selects a matrix YεR 2 δ × m of size δ × m, and M α → β = Y [A | B β ] + [O | −P2 (s α )] εR q δ × 2 is calculated, and the basic conversion key rk α → β = M α → β ∈ R q δ × 2 is output (rk α → β ← RKG (pp, dk α , ek β )). However, for the matrix A∈R q m × 1 and matrix B β ∈R q m × 1 [ A | B β] ∈R q m × 2 is one of the matrix B beta after one column of the matrix A Matrix of size m × 2 obtained by concatenating the columns. Further, O is the column O∈R q δ consisting of [delta] number of zero elements, all elements are 0 and R q.

RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=Bβを入力にとり、サイズm×mの行列Y’∈R m×mをランダムに選び、[Tβ|Nβ]=Y’[A|Bβ]∈R m×2を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈R m×1×R m×1を出力する((rppβ,rekβ)←RG(pp,ekβ))。 RG: The randomized key generation algorithm RG takes pp, ek β = B β as an input, randomly selects a matrix Y′∈R 2 m × m of size m × m, and [T β | N β ] = Y ′. [A | B β ] ∈R q m × 2 is calculated, and a randomized key (rpp β , rek β ) = (T β , N β ) ∈R q m × 1 × R q m × 1 is output ( (Rpp β , rk β ) ← RG (pp, ek β )).

Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈R δ×2,暗号文cα=(Uα,Cα)∈R×Rを入力にとる。ただし、暗号文cα=(Uα,Cα)はユーザαの復号鍵dkα=(sα,Bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(sβ,Bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=Bβに対応する。変換アルゴリズムSwitchは、Uα∈Rを入力としたアルゴリズムBDを実行してBD(Uα)∈R δを得、(U’,C’)=BD(Uα)Mα→β∈R×Rとする。変換アルゴリズムSwitchは、さらに(Uβ,Cβ)=(U’,C’+Cα)を計算し、暗号文cβ=(Uβ,Cβ)∈R×Rを出力する(cβ←Switch(pp,rkα→β,cα))。 Switch: The conversion algorithm Switch takes pp, rk α → β = M α → β ∈ R q δ × 2 and ciphertext c α = (U α , C α ) ∈R q × R q as inputs. However, the ciphertext c α = (U α , C α ) is a ciphertext that can be decrypted with the decryption key dk α = (s α , B α ) of the user α, and the ciphertext c β is the decryption key dk of the user β. It is a ciphertext that can be decrypted with β = (s β , B β ). dk β corresponds to the encryption key ek β = B β described above. The transformation algorithm Switch executes an algorithm BD with U α εR q as an input to obtain BD (U α ) εR q δ , and (U ′, C ′) = BD (U α ) M α → β ε Let R q × R q . The conversion algorithm Switch further calculates (U β , C β ) = (U ′, C ′ + C α ), and outputs the ciphertext c β = (U β , C β ) ∈R q × R q (c β ← Switch (pp, rk α → β , c α )).

<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
<Proxy re-encryption method>
In the case of the re-convertible encryption method π, the proxy re-encryption method Π is as follows.

Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,1,q,m,g,χ,A)を出力する。 Setup: The algorithm Setup calculates pp ← SU (1 κ ) with κ as an input, and outputs PP = pp = (κ, 1 n , q, m, g, χ, A).

Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、s∈Rをランダムに選び、サイズm×1の行列X∈R m×1を分布χm×1に従って選ぶ。アルゴリズムGenは、B=As+X∈R m×1を計算し、iek=oek=Bおよびidk=odk=(s,B)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。 Gen y : Algorithm Gen y (where yε {α, β}) takes pp as input, randomly selects s y εR q , and distributes a matrix X y εR q m × 1 of size m × 1 Choose according to χ m × 1 . The algorithm Gen y calculates B y = As y + X y ∈R q m × 1 and sets iek y = oek y = B y and idky y = odk y = (s y , B y ) A set of decryption keys (iek y = oek y , idk y = odk y ) is output.

Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=B,平文μ∈Rを入力とし、m個の要素からなるe∈R をランダムに選び、

Figure 0006189788

を計算し、c=(U,C)∈R×Rを暗号文ictとして出力する。 Enci: The algorithm Enci generates a ciphertext before re-encryption. When generating a ciphertext corresponding to the user yε {α, β}, the algorithm Enci receives PP = pp, iek y = B y , plaintext μεR p , and e y ε consisting of m elements. Choose R q m at random,
Figure 0006189788

Was calculated, c y = (U y, C y) a ∈R q × R q is output as the ciphertext ict y.

Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(s,B),暗号文ict=c=(U,C)を入力とし、d=C−U mod qを計算し、

Figure 0006189788

を計算し、平文μ’∈Rを出力する。 Deci: The algorithm Deci decrypts the ciphertext before re-encryption. When the ciphertext corresponding to the user yε {α, β} is decrypted, the algorithm Deci is expressed as PP = pp, idk y = (s y , B y ), cipher text ic t y = c y = (U y , C as input y), calculates a d y = C y -U y s y mod q,
Figure 0006189788

And plaintext μ′∈R p is output.

Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。   Enco: The algorithm Enco generates a ciphertext after re-encryption. The algorithm Enco in this embodiment is the same as the algorithm Enci.

Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。   Deco: Algorithm Deco decrypts the ciphertext after re-encryption. The algorithm Deco in this embodiment is the same as the algorithm Deci.

RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα=(sα,Bα)(第1復号鍵),oekβ=Bβ(第2暗号化鍵)を入力とし、サイズδ×mの行列Y∈R δ×mをランダムに選び、Mα→β=Y[A|Bβ]+[O|−P2(sα)]∈R δ×2を計算し、基本変換鍵rkα→β=Mα→β∈R δ×2を得る。アルゴリズムRekeyGenは、サイズm×mの行列Y’∈R m×mをランダムに選び、(Tβ,Nβ)=Y’[A|Bβ]∈R m×1×R m×1を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈R m×1×R m×1を得る。アルゴリズムRekeyGenは、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。 RekeyGen: The algorithm RekeyGen receives PP = pp, idk α = (s α , B α ) (first decryption key), oek β = B β (second encryption key), and a matrix Y of size δ × m ∈ R 2 δ × m is selected at random, and M α → β = Y [A | B β ] + [O | −P2 (s α )] ∈R q δ × 2 is calculated, and the basic conversion key rk α → β = M α → β ∈ R q δ × 2 is obtained. The algorithm RekeyGen randomly selects a matrix Y′εR 2 m × m of size m × m, and (T β , N β ) = Y ′ [A | B β ] εR q m × 1 × R q m × 1 is calculated, and the randomized key (rpp β , rk β ) = (T β , N β ) εR q m × 1 × R q m × 1 is obtained. The algorithm RekeyGen outputs RK α → β = (rk α → β , rpp β , rk β ) as a conversion key.

ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β=Mα→β,rppβ,rekβ),ictα=cα=(Uα,Cα)(第1暗号文)を入力とし、以下を計算する。
1)(U’,C’)=BD(Uα)Mα→β∈R×Rを得、(Uβ,Cβ)=(U’,C’+Cα)を得、暗号文c’=(Uβ,Cβ)=(U’,C’+Cα)∈R×Rを得る。
2)rppβ=Tβ,rekβ=Nβ,平文とする零元を入力とし、m個の要素からなるeβ∈R をランダムに選び、暗号文c’’=(eββ,eββ)∈R×Rを得る。
3)octβ=(U’,C’+Cα)+(eββ,eββ)=(U’+eββ,C’+Cα+eββ)∈R×Rを変換済暗号文として出力する。
ReEnc: Algorithm ReEnc is PP = pp, RK α → β = (rk α → β = M α → β , rpp β , rk β ), ict α = c α = (U α , C α ) (first cipher) Sentence) as input and calculate:
1) (U ', C' ) = give BD (U α) M α → β ∈R q × R q, give (U β, C β) = (U ', C' + C α), the ciphertext c ′ = (U β , C β ) = (U ′, C ′ + C α ) ∈R q × R q is obtained.
2) rpp β = T β , rek β = N β , a zero element as a plaintext is input, e β ∈R q m consisting of m elements is randomly selected, and a ciphertext c ″ = (e β T β , e β N β ) ∈R q × R q is obtained.
3) oct β = (U ' , C' + C α) + (e β T β, e β N β) = (U '+ e β T β, C' + C α + e β N β) ∈R q × R q Is output as converted ciphertext.

実施例6は実施例5の変形例である。本実施例で特記しない限り、記号の定義は実施例5と同じである。   The sixth embodiment is a modification of the fifth embodiment. Unless otherwise specified in the present embodiment, the definitions of symbols are the same as those in the fifth embodiment.

<確定的アルゴリズムBD,P2の定義>
実施例5と同じである。
<Definition of deterministic algorithms BD and P2>
Same as Example 5.

<再変換可能暗号方式>
本実施例の再変換可能暗号方式π=(SU,G,E,D,RKG,Switch)を説明する。
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、行列A∈R m×1をランダムに選び、共通パラメータpp=(κ,1,q,m,g,χ,A)を出力する(pp←SU(1κ))。
<Reconvertible encryption method>
The reconvertible encryption method π = (SU, G, E, D, RKG, Switch) of this embodiment will be described.
SU: The common parameter generation algorithm SU takes κ as an input, selects a matrix AεR q m × 1 at random, and outputs a common parameter pp = (κ, 1 n , q, m, g, χ, A). (Pp ← SU ( )).

G:鍵生成アルゴリズムGは、ppを入力にとり、s∈Rをランダムに選び、サイズm×1の行列X∈R m×1を分布χm×1に従って選ぶ。鍵生成アルゴリズムGは、B=As+pX∈R m×1を計算し、ek=Bおよびdk=(s,B)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。 G: The key generation algorithm G takes pp as an input, randomly selects sεR q , and selects a matrix XεR q m × 1 of size m × 1 according to the distribution χ m × 1 . The key generation algorithm G calculates B = As + pXεR q m × 1 , sets ek = B and dk = (s, B), and outputs a pair (ek, dk) of an encryption key and a decryption key (( ek, dk) <-G (pp)).

E:暗号化アルゴリズムEは、pp,ek=B∈R m×1,平文μ∈Rを入力にとり、m個の要素からなるe∈R をランダムに選び、c=(U,C)=(eA,eB+μ)を計算し、暗号文c=(U,C)∈R×Rを出力する(c=E(pp,ek,μ))。 E: The encryption algorithm E takes pp, ek = B∈R q m × 1 , plaintext μ∈R p as input, and randomly selects e∈R q m consisting of m elements, and c = (U, C) = (eA, eB + μ) is calculated and ciphertext c = (U, C) ∈R q × R q is output (c = E (pp, ek, μ)).

D:復号アルゴリズムDは、pp,dk=(s,B),暗号文c=(U,C)を入力にとり、d=C−Us mod qを計算し、μ’=d mod pを計算し、平文μ’∈Rを出力する(μ’←D(pp,dk,c))。 D: The decryption algorithm D takes pp, dk = (s, B) and ciphertext c = (U, C) as input, calculates d = C−Us mod q, and calculates μ ′ = d mod p. , Plaintext μ′εR p is output (μ ′ ← D (pp, dk, c)).

RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(sα,Bα),ekβ=Bβを入力とする。変換鍵生成アルゴリズムRKGは、サイズδ×mの行列Y∈R δ×mをランダムに選び、Mα→β=Y[A|Bβ]+[O|−P2(sα)]∈R δ×2を計算し、基本変換鍵rkα→β=Mα→β∈R δ×2を出力する(rkα→β←RKG(pp,dkα,ekβ))。 RKG: The conversion key generation algorithm RKG receives pp, dk α = (s α , B α ), ek β = B β . The transformation key generation algorithm RKG randomly selects a matrix YεR 2 δ × m of size δ × m, and M α → β = Y [A | B β ] + [O | −P2 (s α )] εR q δ × 2 is calculated, and the basic conversion key rk α → β = M α → β ∈ R q δ × 2 is output (rk α → β ← RKG (pp, dk α , ek β )).

RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=Bβを入力にとり、サイズm×mの行列Y’∈R m×mをランダムに選び、[Tβ|Nβ]=Y’[A|Bβ]∈R m×2を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈R m×1×R m×1を出力する((rppβ,rekβ)←RG(pp,ekβ))。 RG: The randomized key generation algorithm RG takes pp, ek β = B β as an input, randomly selects a matrix Y′∈R 2 m × m of size m × m, and [T β | N β ] = Y ′. [A | B β ] ∈R q m × 2 is calculated, and a randomized key (rpp β , rek β ) = (T β , N β ) ∈R q m × 1 × R q m × 1 is output ( (Rpp β , rk β ) ← RG (pp, ek β )).

Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈R δ×2,暗号文cα=(Uα,Cα)∈R×Rを入力にとる。ただし、暗号文cα=(Uα,Cα)はユーザαの復号鍵dkα=(sα,Bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(sβ,Bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=Bβに対応する。変換アルゴリズムSwitchは、Uα∈Rを入力としたアルゴリズムBDを実行してBD(Uα)∈R δを得、(U’,C’)=BD(Uα)Mα→β∈R×Rとする。変換アルゴリズムSwitchは、さらに(Uβ,Cβ)=(U’,C’+Cα)を計算し、暗号文cβ=(Uβ,Cβ)∈R×Rを出力する(cβ←Switch(pp,rkα→β,cα))。 Switch: The conversion algorithm Switch takes pp, rk α → β = M α → β ∈ R q δ × 2 and ciphertext c α = (U α , C α ) ∈R q × R q as inputs. However, the ciphertext c α = (U α , C α ) is a ciphertext that can be decrypted with the decryption key dk α = (s α , B α ) of the user α, and the ciphertext c β is the decryption key dk of the user β. It is a ciphertext that can be decrypted with β = (s β , B β ). dk β corresponds to the encryption key ek β = B β described above. The transformation algorithm Switch executes an algorithm BD with U α εR q as an input to obtain BD (U α ) εR q δ , and (U ′, C ′) = BD (U α ) M α → β ε Let R q × R q . The conversion algorithm Switch further calculates (U β , C β ) = (U ′, C ′ + C α ), and outputs the ciphertext c β = (U β , C β ) ∈R q × R q (c β ← Switch (pp, rk α → β , c α )).

<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
<Proxy re-encryption method>
In the case of the re-convertible encryption method π, the proxy re-encryption method Π is as follows.

Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,1,q,m,g,χ,A)を出力する。 Setup: The algorithm Setup calculates pp ← SU (1 κ ) with κ as an input, and outputs PP = pp = (κ, 1 n , q, m, g, χ, A).

Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、s∈Rをランダムに選び、サイズm×1の行列X∈R m×1を分布χm×1に従って選ぶ。アルゴリズムGenは、B=As+pX∈R m×1を計算し、iek=oek=Bおよびidk=odk=(s,B)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。 Gen y : Algorithm Gen y (where yε {α, β}) takes pp as input, randomly selects s y εR q , and distributes a matrix X y εR q m × 1 of size m × 1 Choose according to χ m × 1 . The algorithm Gen y calculates B y = As y + pX y ∈R q m × 1 , iek y = oek y = B y and idk y = odk y = (s y , B y ), and the encryption key A set of decryption keys (iek y = oek y , idk y = odk y ) is output.

Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=B,平文μを入力とし、m個の要素からなるe∈R をランダムに選び、c=(U,C)=(eA,e+μ)を計算し、c=(U,C)∈R×Rを暗号文ictとして出力する。 Enci: The algorithm Enci generates a ciphertext before re-encryption. When generating a ciphertext corresponding to the user yε {α, β}, the algorithm Enci receives PP = pp, iek y = B y , plaintext μ, and e y εR q m consisting of m elements. the chosen randomly, c y = (U y, C y) = (e y a, e y B y + μ) to calculate the, c y = (U y, C y) ciphertext ∈R q × R q and outputs it as ict y.

Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(s,B),暗号文ict=c=(U,C)を入力とし、d=C−U mod qを計算し、μ’=d mod pを計算し、平文μ’∈Rを出力する。 Deci: The algorithm Deci decrypts the ciphertext before re-encryption. When the ciphertext corresponding to the user yε {α, β} is decrypted, the algorithm Deci is expressed as PP = pp, idk y = (s y , B y ), cipher text ic t y = c y = (U y , C as input y), calculates a d y = C y -U y s y mod q, μ '= calculates the d y mod p, and outputs the plaintext μ'∈R p.

Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。   Enco: The algorithm Enco generates a ciphertext after re-encryption. The algorithm Enco in this embodiment is the same as the algorithm Enci.

Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。   Deco: Algorithm Deco decrypts the ciphertext after re-encryption. The algorithm Deco in this embodiment is the same as the algorithm Deci.

RekeyGen:実施例5と同じである。   RekeyGen: Same as Example 5.

ReEnc:実施例5と同じである。   ReEnc: Same as in Example 5.

実施例7のSU,G,E,Dは、参考文献2に基づき、Switchは参考文献3(Zvika Brakerski and Vinod Vaikuntanathan, Fully homomorphic encryption from ring-LWE and security for key dependent messages, in Phillip Rogaway, editor, CRYPTO 2011, volume 6841 of LNCS, pages 505-524, Springer, Heidelberg, 2011.)に基づく。本実施例で特記しない限り、記号の定義は実施例5と同じである。   In Example 7, SU, G, E, and D are based on Reference 2 and Switch is based on Reference 3 (Zvika Brakerski and Vinod Vaikuntanathan, Fully homomorphic encryption from ring-LWE and security for key dependent messages, in Phillip Rogaway, editor , CRYPTO 2011, volume 6841 of LNCS, pages 505-524, Springer, Heidelberg, 2011.). Unless otherwise specified in the present embodiment, the definitions of symbols are the same as those in the fifth embodiment.

<確定的アルゴリズムBD,P2の定義>
実施例5と同じである。
<Definition of deterministic algorithms BD and P2>
Same as Example 5.

<再変換可能暗号方式>
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、a∈Rをランダムに選び、共通パラメータpp=(κ,n,q,χ,a)を出力する(pp←SU(1κ))。
<Reconvertible encryption method>
SU: The common parameter generation algorithm SU takes κ as an input, randomly selects a∈R q , and outputs a common parameter pp = (κ, n, q, χ, a) (pp ← SU (1 κ )) .

G:鍵生成アルゴリズムGは、ppを入力にとり、s,x∈Rを分布χに従って選ぶ。鍵生成アルゴリズムGは、b=as+x∈Rを計算し、ek=bおよびdk=(s,b)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。 G: The key generation algorithm G takes pp as input and selects s, xεR q according to the distribution χ. The key generation algorithm G calculates b = as + xεR q , sets ek = b and dk = (s, b), and outputs a pair (ek, dk) of the encryption key and the decryption key ((ek, dk) ) ← G (pp)).

E:暗号化アルゴリズムEは、pp,ek=b∈R,平文μ∈Rを入力にとり、e,e,e∈Rを分布χに従って選び、

Figure 0006189788

を計算し、暗号文c=(U,C)∈R×Rを出力する(c=E(pp,ek,μ))。 E: The encryption algorithm E takes pp, ek = b∈R q , plaintext μ∈R p as input, and selects e 1 , e 2 , e 3 ∈R q according to the distribution χ,
Figure 0006189788

And ciphertext c = (U, C) εR q × R q is output (c = E (pp, ek, μ)).

D:復号アルゴリズムDは、pp,dk=(s,b),暗号文c=(U,C)を入力にとり、d=C−Us mod qを計算し、

Figure 0006189788

を計算し、平文μ’∈Rを出力する(μ’←D(pp,dk,c))。 D: The decryption algorithm D takes pp, dk = (s, b), ciphertext c = (U, C) as input, and calculates d = C-Us mod q,
Figure 0006189788

And plaintext μ′∈R p is output (μ ′ ← D (pp, dk, c)).

RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(sα,bα),ekβ=bβを入力とする。変換鍵生成アルゴリズムRKGは、Y,Y,Y∈R 1×δを分布χ1×δに従って選び、Mα→β=Y[a|bβ]+[Y|Y]+[O|−P2(sα)]∈R 2×δを計算し、基本変換鍵rkα→β=Mα→β∈R 2×δを出力する(rkα→β←RKG(pp,dkα,ekβ))。 RKG: The conversion key generation algorithm RKG receives pp, dk α = (s α , b α ), ek β = b β . The conversion key generation algorithm RKG selects Y 1 , Y 2 , Y 3 ∈ R q 1 × δ according to the distribution χ 1 × δ , and M α → β = Y 1 [a | b β ] + [Y 2 | Y 3 ] + [O | −P2 (s α )] ∈R q 2 × δ is calculated, and a basic conversion key rk α → β = M α → β∈R q 2 × δ is output (rk α → β ← RKG (Pp, dk α , ek β )).

RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=bβを入力にとり、Y’,Y’,Y’∈Rを分布χに従って選び、(Tβ,Nβ)=Y’[a|bβ]+[Y’|Y’]∈R を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈R×Rを出力する((rppβ,rekβ)←RG(pp,ekβ))。 RG: The randomized key generation algorithm RG takes pp, ek β = b β as input, selects Y 1 ′, Y 2 ′, Y 3 ′ ∈R q according to the distribution χ, and (T β , N β ) = Y 1 ′ [a | b β ] + [Y 2 ′ | Y 3 ′] ∈R q 2 is calculated, and the randomized key (rpp β , rk β ) = (T β , N β ) ∈R q × R q Is output ((rpp β , rk β ) ← RG (pp, ek β )).

Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈R δ×2,暗号文cα=(Uα,Cα)∈R×Rを入力にとる。ただし、暗号文cα=(Uα,Cα)はユーザαの復号鍵dkα=(sα,bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(sβ,bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=bβに対応する。変換アルゴリズムSwitchは、Uα∈Rを入力としたアルゴリズムBDを実行してBD(Uα)∈R δを得、(U’,C’)=BD(Uα)Mα→β∈R×Rとする。変換アルゴリズムSwitchは、さらに(Uβ,Cβ)=(U’,C’+Cα)を計算し、暗号文cβ=(Uβ,Cβ)∈R×Rを出力する(cβ←Switch(pp,rkα→β,cα))。 Switch: The conversion algorithm Switch takes pp, rk α → β = M α → β ∈ R q δ × 2 and ciphertext c α = (U α , C α ) ∈R q × R q as inputs. However, the ciphertext c α = (U α , C α ) is a ciphertext that can be decrypted with the decryption key dk α = (s α , b α ) of the user α, and the ciphertext c β is the decryption key dk of the user β. It is a ciphertext that can be decrypted with β = (s β , b β ). dk β corresponds to the encryption key ek β = b β described above. The transformation algorithm Switch executes an algorithm BD with U α εR q as an input to obtain BD (U α ) εR q δ , and (U ′, C ′) = BD (U α ) M α → β ε Let R q × R q . The conversion algorithm Switch further calculates (U β , C β ) = (U ′, C ′ + C α ), and outputs the ciphertext c β = (U β , C β ) ∈R q × R q (c β ← Switch (pp, rk α → β , c α )).

<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
<Proxy re-encryption method>
In the case of the re-convertible encryption method π, the proxy re-encryption method Π is as follows.

Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,n,q,χ,a)を出力する。 Setup: The algorithm Setup calculates pp ← SU (1 κ ) with κ as an input, and outputs PP = pp = (κ, n, q, χ, a).

Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、s,x∈Rを分布χに従って選ぶ。アルゴリズムGenは、b=as+x∈Rを計算し、iek=oek=bおよびidk=odk=(s,b)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。 Gen y : Algorithm Gen y (where yε {α, β}) takes pp as input and selects s y , x y εR q according to the distribution χ. Algorithm Gen y calculates a b y = as y + x y ∈R q, iek y = oek y = b y and idk y = odk y = (s y, b y) and, for encryption and decryption keys A set (iek y = oek y , idk y = odk y ) is output.

Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=b,平文μを入力とし、∈Rをランダムに選び、

Figure 0006189788

を計算し、c=(U,C)∈R×Rを暗号文ictとして出力する。 Enci: The algorithm Enci generates a ciphertext before re-encryption. When generating a ciphertext corresponding to the user yε {α, β}, the algorithm Enci receives PP = pp, iek y = b y , plaintext μ, and y e 1 , y e 2 , y e 3 ε select the R q at random,
Figure 0006189788

Was calculated, c y = (U y, C y) a ∈R q × R q is output as the ciphertext ict y.

Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(s,b),暗号文ict=c=(U,C)を入力とし、d=C−U mod qを計算し、

Figure 0006189788

を計算し、平文μ’∈Rを出力する。 Deci: The algorithm Deci decrypts the ciphertext before re-encryption. When the ciphertext corresponding to the user yε {α, β} is decrypted, the algorithm Deci has the following formula: PP = pp, idk y = (s y , b y ), cipher text ic t y = c y = (U y , C as input y), calculates a d y = C y -U y s y mod q,
Figure 0006189788

And plaintext μ′∈R p is output.

Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。   Enco: The algorithm Enco generates a ciphertext after re-encryption. The algorithm Enco in this embodiment is the same as the algorithm Enci.

Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。   Deco: Algorithm Deco decrypts the ciphertext after re-encryption. The algorithm Deco in this embodiment is the same as the algorithm Deci.

RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα=(sα,bα)(第1復号鍵),oekβ=bβ(第2暗号化鍵)を入力とし、Y,Y,Y∈R 1×δを分布χ1×δに従って選び、Mα→β=Y[a|bβ]+[Y|Y]+[O|−P2(sα)]∈R 2×δを計算し、基本変換鍵rkα→β=Mα→β∈R 2×δを得る。アルゴリズムRekeyGenは、Y’,Y’,Y’∈Rを分布χに従って選び、(Tβ,Nβ)=Y’[a|bβ]+[Y’|Y’]∈R を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈R ×R を得る。アルゴリズムRekeyGenは、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。 RekeyGen: The algorithm RekeyGen receives PP = pp, idk α = (s α , b α ) (first decryption key), oek β = b β (second encryption key), and inputs Y 1 , Y 2 , Y 3 ∈ R q 1 × δ is selected according to the distribution χ 1 × δ , and M α → β = Y 1 [a | b β ] + [Y 2 | Y 3 ] + [O | −P2 (s α )] ∈R q 2 × δ is calculated, and the basic conversion key rk α → β = M α → β ∈ R q 2 × δ is obtained. Algorithm RekeyGen is, Y 1 ', Y 2' , Y 3 ' and ∈R q select according to the distribution χ, (T β, N β ) = Y 1' [a | b β] + [Y 2 '| Y 3' ] ΕR q 2 is calculated, and the randomized key (rpp β , rek β ) = (T β , N β ) εR q m × R q m is obtained. The algorithm RekeyGen outputs RK α → β = (rk α → β , rpp β , rk β ) as a conversion key.

ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β=Mα→β,rppβ,rekβ),ictα=cα=(Uα,Cα)(第1暗号文)を入力とし、以下を計算する。
1)(U’,C’)=BD(Uα)Mα→β∈R×Rを得、(Uβ,Cβ)=(U’,C’+Cα)を得、暗号文c’=(Uβ,Cβ)=(U’,C’+Cα)∈R×Rを得る。
2)rppβ=Tβ,rekβ=Nβ,平文とする零元を入力とし、βββ∈Rを分布χに従って選び、暗号文c’’=(Tββ,Nβ ββ)∈R×Rを得る。
3)octβ=(U’,C’+Cα)+(Tββ,Nβ ββ)=(U’+ Tββ,C’+Cα+Nβ ββ)∈R×Rを変換済暗号文として出力する。
ReEnc: Algorithm ReEnc is PP = pp, RK α → β = (rk α → β = M α → β , rpp β , rk β ), ict α = c α = (U α , C α ) (first cipher) Sentence) as input and calculate:
1) (U ', C' ) = give BD (U α) M α → β ∈R q × R q, give (U β, C β) = (U ', C' + C α), the ciphertext c ′ = (U β , C β ) = (U ′, C ′ + C α ) ∈R q × R q is obtained.
2) rpp β = T β , rek β = N β , the zero element as plain text is input, β e 1 , β e 2 , β e 3 ∈R q are selected according to the distribution χ, and the ciphertext c ″ = ( obtaining T β e 1 + β e 2 , N β β e 1 + β e 3) ∈R q × R q.
3) oct β = (U ' , C' + C α) + (T β e 1 + β e 2, N β β e 1 + β e 3) = (U '+ T β e 1 + β e 2, C '+ C α + N β β e 1 + β e 3 ) εR q × R q is output as the converted ciphertext.

実施例8は実施例7の変形例である。本実施例で特記しない限り、記号の定義は実施例5と同じである。   The eighth embodiment is a modification of the seventh embodiment. Unless otherwise specified in the present embodiment, the definitions of symbols are the same as those in the fifth embodiment.

<確定的アルゴリズムBD,P2の定義>
実施例5と同じである。
<Definition of deterministic algorithms BD and P2>
Same as Example 5.

<再変換可能暗号方式>
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、a∈Rをランダムに選び、共通パラメータpp=(κ,n,q,χ,a)を出力する(pp←SU(1κ))。
<Reconvertible encryption method>
SU: The common parameter generation algorithm SU takes κ as an input, randomly selects a∈R q , and outputs a common parameter pp = (κ, n, q, χ, a) (pp ← SU (1 κ )) .

G:鍵生成アルゴリズムGは、ppを入力にとり、s,x∈Rを分布χに従って選ぶ。鍵生成アルゴリズムGは、b=as+px∈Rを計算し、ek=bおよびdk=(s,b)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。 G: The key generation algorithm G takes pp as input and selects s, xεR q according to the distribution χ. The key generation algorithm G calculates b = as + pxεR q , sets ek = b and dk = (s, b), and outputs a pair (ek, dk) of the encryption key and the decryption key ((ek, dk) ) ← G (pp)).

E:暗号化アルゴリズムEは、pp,ek=b∈R,平文μ∈Rを入力にとり、e,e,e∈Rを分布χに従って選び、

Figure 0006189788

を計算し、暗号文c=(U,C)∈R×Rを出力する(c=E(pp,ek,μ))。 E: The encryption algorithm E takes pp, ek = b∈R q , plaintext μ∈R p as input, and selects e 1 , e 2 , e 3 ∈R q according to the distribution χ,
Figure 0006189788

And ciphertext c = (U, C) εR q × R q is output (c = E (pp, ek, μ)).

D:復号アルゴリズムDは、pp,dk=(s,b),暗号文c=(U,C)を入力にとり、d=C−Us mod qを計算し、μ’=d mod pを計算し、平文μ’∈Rを出力する(μ’←D(pp,dk,c))。 D: The decryption algorithm D takes pp, dk = (s, b) and ciphertext c = (U, C) as input, calculates d = C−Us mod q, and calculates μ ′ = d mod p. , Plaintext μ′εR p is output (μ ′ ← D (pp, dk, c)).

RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(sα,bα),ekβ=bβを入力とする。変換鍵生成アルゴリズムRKGは、Y,Y,Y∈R 1×δを分布χ1×δに従って選び、Mα→β=Y[a|bβ]+p[Y|Y]+[O|−P2(sα)]∈R 2×δを計算し、基本変換鍵rkα→β=Mα→β∈R 2×δを出力する(rkα→β←RKG(pp,dkα,ekβ))。 RKG: The conversion key generation algorithm RKG receives pp, dk α = (s α , b α ), ek β = b β . The conversion key generation algorithm RKG selects Y 1 , Y 2 , Y 3 ∈ R q 1 × δ according to the distribution χ 1 × δ , and M α → β = Y 1 [a | b β ] + p [Y 2 | Y 3 ] + [O | −P2 (s α )] ∈R q 2 × δ is calculated, and a basic conversion key rk α → β = M α → β∈R q 2 × δ is output (rk α → β ← RKG (Pp, dk α , ek β )).

RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=bβを入力にとり、Y’,Y’,Y’∈Rを分布χに従って選び、(Tβ,Nβ)=Y’[a|bβ]+p[Y’|Y’]∈R を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈R×Rを出力する((rppβ,rekβ)←RG(pp,ekβ))。 RG: The randomized key generation algorithm RG takes pp, ek β = b β as input, selects Y 1 ′, Y 2 ′, Y 3 ′ ∈R q according to the distribution χ, and (T β , N β ) = Y 1 ′ [a | b β ] + p [Y 2 ′ | Y 3 ′] ∈R q 2 is calculated, and the randomized key (rpp β , rk β ) = (T β , N β ) ∈R q × R q Is output ((rpp β , rk β ) ← RG (pp, ek β )).

Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈R δ×2,暗号文cα=(Uα,Cα)∈R×Rを入力にとる。ただし、暗号文cα=(Uα,Cα)はユーザαの復号鍵dkα=(sα,bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(sβ,bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=bβに対応する。変換アルゴリズムSwitchは、Uα∈Rを入力としたアルゴリズムBDを実行してBD(Uα)∈R δを得、(U’,C’)=BD(Uα)Mα→β∈R×Rとする。変換アルゴリズムSwitchは、さらに(Uβ,Cβ)=(U’,C’+Cα)を計算し、暗号文cβ=(Uβ,Cβ)∈R×Rを出力する(cβ←Switch(pp,rkα→β,cα))。 Switch: The conversion algorithm Switch takes pp, rk α → β = M α → β ∈ R q δ × 2 and ciphertext c α = (U α , C α ) ∈R q × R q as inputs. However, the ciphertext c α = (U α , C α ) is a ciphertext that can be decrypted with the decryption key dk α = (s α , b α ) of the user α, and the ciphertext c β is the decryption key dk of the user β. It is a ciphertext that can be decrypted with β = (s β , b β ). dk β corresponds to the encryption key ek β = b β described above. The transformation algorithm Switch executes an algorithm BD with U α εR q as an input to obtain BD (U α ) εR q δ , and (U ′, C ′) = BD (U α ) M α → β ε Let R q × R q . The conversion algorithm Switch further calculates (U β , C β ) = (U ′, C ′ + C α ), and outputs the ciphertext c β = (U β , C β ) ∈R q × R q (c β ← Switch (pp, rk α → β , c α )).

<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
<Proxy re-encryption method>
In the case of the re-convertible encryption method π, the proxy re-encryption method Π is as follows.

Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,n,q,χ,a)を出力する。 Setup: The algorithm Setup calculates pp ← SU (1 κ ) with κ as an input, and outputs PP = pp = (κ, n, q, χ, a).

Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、s,x∈Rを分布χに従って選ぶ。アルゴリズムGenは、b=as+px∈Rを計算し、iek=oek=bおよびidk=odk=(s,b)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。 Gen y : Algorithm Gen y (where yε {α, β}) takes pp as input and selects s y , x y εR q according to the distribution χ. Algorithm Gen y calculates a b y = as y + px y ∈R q, iek y = oek y = b y and idk y = odk y = (s y, b y) and, for encryption and decryption keys A set (iek y = oek y , idk y = odk y ) is output.

Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=b,平文μを入力とし、∈Rをランダムに選び、

Figure 0006189788

を計算し、c=(U,C)∈R×Rを暗号文ictとして出力する。 Enci: The algorithm Enci generates a ciphertext before re-encryption. When generating a ciphertext corresponding to the user yε {α, β}, the algorithm Enci receives PP = pp, iek y = b y , plaintext μ, and y e 1 , y e 2 , y e 3 ε select the R q at random,
Figure 0006189788

Was calculated, c y = (U y, C y) a ∈R q × R q is output as the ciphertext ict y.

Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(s,b),暗号文ict=c=(U,C)を入力とし、d=C−U mod qを計算し、μ’=d mod pを計算し、平文μ’∈Rを出力する。 Deci: The algorithm Deci decrypts the ciphertext before re-encryption. When the ciphertext corresponding to the user yε {α, β} is decrypted, the algorithm Deci has the following formula: PP = pp, idk y = (s y , b y ), cipher text ic t y = c y = (U y , C as input y), calculates a d y = C y -U y s y mod q, μ '= calculates the d y mod p, and outputs the plaintext μ'∈R p.

Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。   Enco: The algorithm Enco generates a ciphertext after re-encryption. The algorithm Enco in this embodiment is the same as the algorithm Enci.

Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。   Deco: Algorithm Deco decrypts the ciphertext after re-encryption. The algorithm Deco in this embodiment is the same as the algorithm Deci.

RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα=(sα,bα)(第1復号鍵),oekβ=bβ(第2暗号化鍵)を入力とし、Y,Y,Y∈R δを分布χδに従って選び、Mα→β=Y[a|bβ]+p[Y|Y]+[O|−P2(sα)]∈R 2×δを計算し、基本変換鍵rkα→β=Mα→β∈R 2×δを得る。アルゴリズムRekeyGenは、Y’,Y’,Y’∈Rを分布χに従って選び、(Tβ,Nβ)=Y’[a|bβ]+p[Y’|Y’]∈R を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈R ×R を得る。アルゴリズムRekeyGenは、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。 RekeyGen: The algorithm RekeyGen receives PP = pp, idk α = (s α , b α ) (first decryption key), oek β = b β (second encryption key), and inputs Y 1 , Y 2 , Y 3 ∈ R q δ is selected according to the distribution χ δ , and M α → β = Y 1 [a | b β ] + p [Y 2 | Y 3 ] + [O | −P2 (s α )] ∈R q 2 × δ To obtain the basic conversion key rk α → β = M α → β ∈ R q 2 × δ . Algorithm RekeyGen is, Y 1 ', Y 2' , Y 3 ' and ∈R q select according to the distribution χ, (T β, N β ) = Y 1' [a | b β] + p [Y 2 '| Y 3' ] ΕR q 2 is calculated, and the randomized key (rpp β , rek β ) = (T β , N β ) εR q m × R q m is obtained. The algorithm RekeyGen outputs RK α → β = (rk α → β , rpp β , rk β ) as a conversion key.

ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β=Mα→β,rppβ,rekβ),ictα=cα=(Uα,Cα)(第1暗号文)を入力とし、以下を計算する。
1)(U’,C’)=BD(Uα)Mα→β∈R×Rを得、(Uβ,Cβ)=(U’,C’+Cα)を得、暗号文c’=(Uβ,Cβ)=(U’,C’+Cα)∈R×Rを得る。
2)rppβ=Tβ,rekβ=Nβ,平文とする零元を入力とし、βββ∈Rを分布χに従って選び、暗号文c’’=(Tβ+p β,Nβ ββ)∈R×Rを得る。
3)octβ=(U’,C’+Cα)+(Tβ+p β,Nβ ββ)=(U’+ Tβ+pβ,C’+Cα+Nβ ββ)∈R×Rを変換済暗号文として出力する。
ReEnc: Algorithm ReEnc is PP = pp, RK α → β = (rk α → β = M α → β , rpp β , rk β ), ict α = c α = (U α , C α ) (first cipher) Sentence) as input and calculate:
1) (U ', C' ) = give BD (U α) M α → β ∈R q × R q, give (U β, C β) = (U ', C' + C α), the ciphertext c ′ = (U β , C β ) = (U ′, C ′ + C α ) ∈R q × R q is obtained.
2) rpp β = T β , rek β = N β , the zero element as plain text is input, β e 1 , β e 2 , β e 3 ∈R q are selected according to the distribution χ, and the ciphertext c ″ = ( obtaining T β e 1 + p β e 2, N β β e 1 + β e 3) ∈R q × R q.
3) oct β = (U ' , C' + C α) + (T β e 1 + p β e 2, N β β e 1 + β e 3) = (U '+ T β e 1 + p β e 2, C '+ C α + N β β e 1 + β e 3 ) εR q × R q is output as the converted ciphertext.

実施例9のSwitchは参考文献3に基づく。本実施例で特記しない限り、記号の定義は実施例5と同じである。   The switch of Example 9 is based on Reference 3. Unless otherwise specified in the present embodiment, the definitions of symbols are the same as those in the fifth embodiment.

<確定的アルゴリズムBD,P2の定義>
実施例5と同じである。
<Definition of deterministic algorithms BD and P2>
Same as Example 5.

<再変換可能暗号方式>
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、共通パラメータpp=(κ,n,q,χ)を出力する(pp←SU(1κ))。
<Reconvertible encryption method>
SU: The common parameter generation algorithm SU takes κ as an input and outputs a common parameter pp = (κ, n, q, χ) (pp ← SU (1 κ )).

G:鍵生成アルゴリズムGは、ppを入力にとり、f’,g∈Rを分布χに従って選び、f=pf’+1 mod qとする。ただし、fがRで逆元を持たない場合には、f’∈Rを選択し直して新たにfを計算する。このやり直しはfがRで逆元を持つまで行われる。鍵生成アルゴリズムGは、Rで逆元を持つfを用い、b=pgf−1 mod qを計算し、ek=bおよびdk=(f,b)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。 G: The key generation algorithm G takes pp as input, selects f ′, gεR q according to the distribution χ, and sets f = pf ′ + 1 mod q. However, when f is R q and does not have an inverse element, f′εR q is selected again and f is newly calculated. This redo is performed until f has an inverse element at Rq . The key generation algorithm G uses f having an inverse element in R q , calculates b = pgf −1 mod q, sets ek = b and dk = (f, b), and sets of encryption key and decryption key ( ek, dk) is output ((ek, dk) ← G (pp)).

E:暗号化アルゴリズムEは、pp,ek=b∈R,平文μ∈Rを入力にとり、e,e∈Rを分布χに従って選び、

Figure 0006189788

を計算し、暗号文c=C∈Rを出力する(c=E(pp,ek,μ))。 E: The encryption algorithm E takes pp, ek = bεR q , plaintext μεR p as input, and selects e 1 , e 2 εR q according to the distribution χ,
Figure 0006189788

And ciphertext c = CεR q is output (c = E (pp, ek, μ)).

D:復号アルゴリズムDは、pp,dk=(f,b),暗号文c=Cを入力にとり、d=fC mod qを計算し、

Figure 0006189788

を計算し、平文μ’∈Rを出力する(μ’←D(pp,dk,c))。 D: The decryption algorithm D takes pp, dk = (f, b), ciphertext c = C as input, calculates d = fC mod q,
Figure 0006189788

And plaintext μ′∈R p is output (μ ′ ← D (pp, dk, c)).

RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(fα,bα),ekβ=bβを入力とする。変換鍵生成アルゴリズムRKGは、Y,Y∈R 1×δを分布χ1×δに従って選び、Mα→β=Yβ+Y−P2(fα)∈R 1×δを計算し、基本変換鍵rkα→β=Mα→β∈R 1×δを出力する(rkα→β←RKG(pp,dkα,ekβ))。 RKG: The conversion key generation algorithm RKG receives pp, dk α = (f α , b α ), ek β = b β . The transformation key generation algorithm RKG selects Y 1 , Y 2 εR q 1 × δ according to the distribution χ 1 × δ , and M α → β = Y 1 b β + Y 2 −P2 (f α ) εR q 1 × δ And the basic conversion key rk α → β = M α → β ∈ R q 1 × δ is output (rk α → β ← RKG (pp, dk α , ek β )).

RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=bβを入力にとり、Y’,Y’∈Rを分布χに従って選び、Nβ=Y’bβ+Y’を計算し、ランダム化鍵(rppβ,rekβ)=(pp,Nβ)を出力する((rppβ,rekβ)←RG(pp,ekβ))。 RG: Randomized key generation algorithm RG takes pp, ek β = b β as input, selects Y 1 ′, Y 2 ′ ∈R q according to distribution χ, and calculates N β = Y 1 ′ b β + Y 2 ′ Then, the randomized key (rpp β , rk β ) = (pp, N β ) is output ((rpp β , rk β ) ← RG (pp, ek β )).

Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈R 1×δ,暗号文cα=Cα∈Rを入力にとる。ただし、暗号文cα=Cαはユーザαの復号鍵dkα=(fα,bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(fβ,bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=bβに対応する。変換アルゴリズムSwitchは、Cα∈Rを入力としたアルゴリズムBDを実行してBD(Cα)∈R δを得、C’=BD(Cα)Mα→β∈Rとする。変換アルゴリズムSwitchは、暗号文cβ=C’∈Rを出力する(cβ←Switch(pp,rkα→β,cα))。 Switch: The conversion algorithm Switch takes pp, rk α → β = M α → β ∈ R q 1 × δ and cipher text c α = C α ∈ R q as inputs. However, the ciphertext c α = C α is a ciphertext that can be decrypted with the decryption key dk α = (f α , b α ) of the user α, and the ciphertext c β is a decryption key dk β = (f β , B β ). dk β corresponds to the encryption key ek β = b β described above. The conversion algorithm Switch executes an algorithm BD with C α εR q as an input to obtain BD (C α ) εR q δ , and C ′ = BD (C α ) M α → β εR q . The conversion algorithm Switch outputs the ciphertext c β = C′εR q (c β ← Switch (pp, rk α → β , c α )).

<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
<Proxy re-encryption method>
In the case of the re-convertible encryption method π, the proxy re-encryption method Π is as follows.

Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,n,q,χ)を出力する。 Setup: The algorithm Setup calculates pp ← SU (1 κ ) with κ as an input, and outputs PP = pp = (κ, n, q, χ).

Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、f’,g∈Rを分布χに従って選び、f=pf’+1 mod qとする。ただし、fがRで逆元を持たない場合には、f’∈Rを選択し直して新たにfを計算する。このやり直しはfがRで逆元を持つまで行われる。アルゴリズムGenは、Rで逆元を持つfを用い、b=pg −1 mod qを計算し、iek=oek=bおよびidk=odk=(f,b)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。 Gen y : Algorithm Gen y (where y∈ {α, β}) takes pp as input, selects f y ′, g y ∈ R q according to the distribution χ, and sets f y = pf y ′ +1 mod q. . However, if fy is R q and does not have an inverse element, fy′εR q is selected again and fy is newly calculated. This redo is performed until fy has an inverse element at R q . Algorithm Gen y uses the f y with inverse with R q, b y = pg y f y -1 The mod q calculated, iek y = oek y = b y and idk y = odk y = (f y , B y ), and outputs a pair of encryption key and decryption key (ie k y = oek y , idk y = odk y ).

Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=b,平文μを入力とし、∈Rを分布χに従って選び、

Figure 0006189788

を計算し、c=C∈Rを暗号文ictとして出力する。 Enci: The algorithm Enci generates a ciphertext before re-encryption. When generating a ciphertext corresponding to the user yε {α, β}, the algorithm Enci receives PP = pp, iek y = b y , plaintext μ, and distributes y e 1 , y e 2 εR q Choose according to χ,
Figure 0006189788

Was calculated, and outputs the c y = C y ∈R q as ciphertext ict y.

Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(f,b),暗号文ict=c=Cを入力とし、d=f mod qを計算し、

Figure 0006189788

を計算し、平文μ’∈Rを出力する。 Deci: The algorithm Deci decrypts the ciphertext before re-encryption. When the ciphertext corresponding to the user yε {α, β} is decrypted, the algorithm Deci takes PP = pp, idk y = (f y , b y ), and cipher text ic t y = c y = C y as input. , D y = f y C y mod q,
Figure 0006189788

And plaintext μ′∈R p is output.

Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。   Enco: The algorithm Enco generates a ciphertext after re-encryption. The algorithm Enco in this embodiment is the same as the algorithm Enci.

Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。   Deco: Algorithm Deco decrypts the ciphertext after re-encryption. The algorithm Deco in this embodiment is the same as the algorithm Deci.

RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα=(fα,bα)(第1復号鍵),oekβ=bβ(第2暗号化鍵)を入力とし、Y,Y∈R 1×δを分布χ1×δに従って選び、Mα→β=Yβ+Y−P2(fα)∈R 1×δを計算し、基本変換鍵rkα→β=Mα→β∈R 1×δを得る。アルゴリズムRekeyGenは、Y’,Y’∈Rを分布χに従って選び、Nβ=Y’bβ+Y’∈Rを計算し、ランダム化鍵(rppβ,rekβ)=(pp,Nβ)を得る。アルゴリズムRekeyGenは、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。 RekeyGen: The algorithm RekeyGen receives PP = pp, idk α = (f α , b α ) (first decryption key), oek β = b β (second encryption key) and inputs Y 1 , Y 2 εR q 1 × δ is selected according to the distribution χ 1 × δ , M α → β = Y 1 b β + Y 2 −P 2 (f α ) ∈R q 1 × δ is calculated, and the basic conversion key rk α → β = M α → β ∈ R q 1 × δ is obtained. Algorithm RekeyGen is, Y 1 ', Y 2' to ∈R q select according to the distribution chi, calculate the N β = Y 1 'b β + Y 2' ∈R q, random key (rpp β, rek β) = ( pp, ) is obtained. The algorithm RekeyGen outputs RK α → β = (rk α → β , rpp β , rk β ) as a conversion key.

ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β=Mα→β,rppβ,rekβ),ictα=cα=Cα(第1暗号文)を入力とし、以下を計算する。
1)C’=BD(Cα)Mα→β∈Rを得、暗号文c’=Cβ=C’∈Rとする。
2)rppβ=pp,rekβ=Nβ,平文とする零元を入力とし、ββ∈Rを分布χに従って選び、暗号文c’’=Nβ ββ∈Rを得る。
3)octβ=C’+Nβ ββ∈Rを変換済暗号文として出力する。
ReEnc: Algorithm ReEnc takes PP = pp, RK α → β = (rk α → β = M α → β , rpp β , rk β ), ict α = c α = C α (first ciphertext) as input. Calculate the following:
1) C '= give BD (C α) M α → β ∈R q, the ciphertext c' and = C β = C'∈R q.
2) rpp β = pp, rek β = N β , zero element as plain text is input, β e 1 , β e 2 ∈R q are selected according to distribution χ, and ciphertext c ″ = N β β e 1 + β e 2 ∈ R q is obtained.
3) Output oct β = C ′ + N β β e 1 + β e 2 ∈R q as the converted ciphertext.

実施例10は実施例9の変形例である。本実施例で特記しない限り、記号の定義は実施例5と同じである。   The tenth embodiment is a modification of the ninth embodiment. Unless otherwise specified in the present embodiment, the definitions of symbols are the same as those in the fifth embodiment.

<確定的アルゴリズムBD,P2の定義>
実施例5と同じである。
<Definition of deterministic algorithms BD and P2>
Same as Example 5.

<再変換可能暗号方式>
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、共通パラメータpp=(κ,n,q,χ)を出力する(pp←SU(1κ))。
<Reconvertible encryption method>
SU: The common parameter generation algorithm SU takes κ as an input and outputs a common parameter pp = (κ, n, q, χ) (pp ← SU (1 κ )).

G:鍵生成アルゴリズムGは、ppを入力にとり、f’,g∈Rを分布χに従って選び、f=pf’+1 mod qとする。ただし、fがRで逆元を持たない場合には、f’∈Rを選択し直して新たにfを計算する。このやり直しはfがRで逆元を持つまで行われる。鍵生成アルゴリズムGは、Rで逆元を持つfを用い、b=pgf−1 mod qを計算し、ek=bおよびdk=(f,b)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。 G: The key generation algorithm G takes pp as input, selects f ′, gεR q according to the distribution χ, and sets f = pf ′ + 1 mod q. However, when f is R q and does not have an inverse element, f′εR q is selected again and f is newly calculated. This redo is performed until f has an inverse element at Rq . The key generation algorithm G uses f having an inverse element in R q , calculates b = pgf −1 mod q, sets ek = b and dk = (f, b), and sets of encryption key and decryption key ( ek, dk) is output ((ek, dk) ← G (pp)).

E:暗号化アルゴリズムEは、pp,ek=b∈R,平文μ∈Rを入力にとり、e,e∈Rを分布χに従って選び、c=C=be+pe+μを計算し、暗号文c=C∈Rを出力する(c=E(pp,ek,μ))。 E: The encryption algorithm E takes pp, ek = bεR q , plaintext μεR p as input, selects e 1 , e 2 εR q according to the distribution χ, and c = C = be 1 + pe 2 + μ The ciphertext c = CεR q is output (c = E (pp, ek, μ)).

D:復号アルゴリズムDは、pp,dk=(f,b),暗号文c=Cを入力にとり、d=fC mod qを計算し、μ’=d mod pを計算し、平文μ’∈Rを出力する(μ’←D(pp,dk,c))。 D: The decryption algorithm D takes pp, dk = (f, b) and ciphertext c = C as input, calculates d = fC mod q, calculates μ ′ = d mod p, and plaintext μ′∈R p is output (μ ′ ← D (pp, dk, c)).

RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(fα,bα),ekβ=bβを入力とする。変換鍵生成アルゴリズムRKGは、Y,Y∈R 1×δを分布χ1×δに従って選び、Mα→β=Yβ+pY−P2(fα)∈R 1×δを計算し、基本変換鍵rkα→β=Mα→β∈R 1×δを出力する(rkα→β←RKG(pp,dkα,ekβ))。 RKG: The conversion key generation algorithm RKG receives pp, dk α = (f α , b α ), ek β = b β . The transformation key generation algorithm RKG selects Y 1 , Y 2 εR q 1 × δ according to the distribution χ 1 × δ , and M α → β = Y 1 b β + pY 2 −P2 (f α ) εR q 1 × δ And the basic conversion key rk α → β = M α → β ∈ R q 1 × δ is output (rk α → β ← RKG (pp, dk α , ek β )).

RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=bβを入力にとり、Y’,Y’∈Rを分布χに従って選び、Nβ=Y’bβ+pY’を計算し、ランダム化鍵(rppβ,rekβ)=(pp,Nβ)を出力する((rppβ,rekβ)←RG(pp,ekβ))。 RG: Randomized key generation algorithm RG takes pp, ek β = b β as input, selects Y 1 ′, Y 2 ′ ∈R q according to distribution χ, and calculates N β = Y 1 ′ b β + pY 2 ′ Then, the randomized key (rpp β , rk β ) = (pp, N β ) is output ((rpp β , rk β ) ← RG (pp, ek β )).

Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈R 1×δ,暗号文cα=Cα∈Rを入力にとる。ただし、暗号文cα=Cαはユーザαの復号鍵dkα=(fα,bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(fβ,bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=bβに対応する。変換アルゴリズムSwitchは、Cα∈Rを入力としたアルゴリズムBDを実行してBD(Cα)∈R δを得、C’=BD(Cα)Mα→β∈Rとする。変換アルゴリズムSwitchは、暗号文cβ=C’∈Rを出力する(cβ←Switch(pp,rkα→β,cα))。 Switch: The conversion algorithm Switch takes pp, rk α → β = M α → β ∈ R q 1 × δ and cipher text c α = C α ∈ R q as inputs. However, the ciphertext c α = C α is a ciphertext that can be decrypted with the decryption key dk α = (f α , b α ) of the user α, and the ciphertext c β is a decryption key dk β = (f β , B β ). dk β corresponds to the encryption key ek β = b β described above. The conversion algorithm Switch executes an algorithm BD with C α εR q as an input to obtain BD (C α ) εR q δ , and C ′ = BD (C α ) M α → β εR q . The conversion algorithm Switch outputs the ciphertext c β = C′εR q (c β ← Switch (pp, rk α → β , c α )).

<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
<Proxy re-encryption method>
In the case of the re-convertible encryption method π, the proxy re-encryption method Π is as follows.

Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,n,q,χ)を出力する。 Setup: The algorithm Setup calculates pp ← SU (1 κ ) with κ as an input, and outputs PP = pp = (κ, n, q, χ).

Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、f’,g∈Rを分布χに従って選び、f=pf’+1 mod qとする。ただし、fがRで逆元を持たない場合には、f’∈Rを選択し直して新たにfを計算する。このやり直しはfがRで逆元を持つまで行われる。アルゴリズムGenは、Rで逆元を持つfを用い、b=pg −1 mod qを計算し、iek=oek=bおよびidk=odk=(f,b)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。 Gen y : Algorithm Gen y (where y∈ {α, β}) takes pp as input, selects f y ′, g y ∈ R q according to the distribution χ, and sets f y = pf y ′ +1 mod q. . However, if fy is R q and does not have an inverse element, fy′εR q is selected again and fy is newly calculated. This redo is performed until fy has an inverse element at R q . Algorithm Gen y uses the f y with inverse with R q, b y = pg y f y -1 The mod q calculated, iek y = oek y = b y and idk y = odk y = (f y , B y ), and outputs a pair of encryption key and decryption key (ie k y = oek y , idk y = odk y ).

Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=b,平文μを入力とし、∈Rを分布χに従って選び、c=C=by y+p+μ
を計算し、c=C∈Rを暗号文ictとして出力する。
Enci: The algorithm Enci generates a ciphertext before re-encryption. When generating a ciphertext corresponding to the user yε {α, β}, the algorithm Enci receives PP = pp, iek y = b y , plaintext μ, and distributes y e 1 , y e 2 εR q select according χ, c y = C y = b y y e 1 + p y e 2 + μ
Was calculated, and outputs the c y = C y ∈R q as ciphertext ict y.

Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(f,b),暗号文ict=c=Cを入力とし、d=f mod qを計算し、μ’=d mod pを計算し、平文μ’∈Rを出力する。 Deci: The algorithm Deci decrypts the ciphertext before re-encryption. When the ciphertext corresponding to the user yε {α, β} is decrypted, the algorithm Deci takes PP = pp, idk y = (f y , b y ), and cipher text ic t y = c y = C y as input. , D y = f y C y mod q, μ y ′ = d y mod p, and output plaintext μ′∈R p .

Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。   Enco: The algorithm Enco generates a ciphertext after re-encryption. The algorithm Enco in this embodiment is the same as the algorithm Enci.

Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。   Deco: Algorithm Deco decrypts the ciphertext after re-encryption. The algorithm Deco in this embodiment is the same as the algorithm Deci.

RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα=(fα,bα)(第1復号鍵),oekβ=bβ(第2暗号化鍵)を入力とし、Y,Y∈R 1×δを分布χ1×δに従って選び、Mα→β=Yβ+pY−P2(fα)∈R 1×δを計算し、基本変換鍵rkα→β=Mα→β∈R 1×δを得る。アルゴリズムRekeyGenは、Y’,Y’∈Rを分布χに従って選び、Nβ=Y’bβ+pY’∈Rを計算し、ランダム化鍵(rppβ,rekβ)=(pp,Nβ)を得る。アルゴリズムRekeyGenは、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。 RekeyGen: The algorithm RekeyGen receives PP = pp, idk α = (f α , b α ) (first decryption key), oek β = b β (second encryption key) and inputs Y 1 , Y 2 εR q 1 × δ is selected according to the distribution χ 1 × δ , and M α → β = Y 1 b β + pY 2 −P2 (f α ) ∈R q 1 × δ is calculated, and the basic conversion key rk α → β = M α → β ∈ R q 1 × δ is obtained. Algorithm RekeyGen is, Y 1 ', Y 2' ∈R q select according to distribution chi, calculate the N β = Y 1 'b β + pY 2' ∈R q, random key (rpp β, rek β) = ( pp, ) is obtained. The algorithm RekeyGen outputs RK α → β = (rk α → β , rpp β , rk β ) as a conversion key.

ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β=Mα→β,rppβ,rekβ),ictα=cα=Cα(第1暗号文)を入力とし、以下を計算する。
1)C’=BD(Cα)Mα→β∈Rを得、暗号文c’=Cβ=C’∈Rとする。
2)rppβ=pp,rekβ=Nβ,平文とする零元を入力とし、ββ∈Rを分布χに従って選び、暗号文c’’=Nβ β+pβ∈Rを得る。
3)octβ=C’+Nβ β+pβ∈Rを変換済暗号文として出力する。
ReEnc: Algorithm ReEnc takes PP = pp, RK α → β = (rk α → β = M α → β , rpp β , rk β ), ict α = c α = C α (first ciphertext) as input. Calculate the following:
1) C '= give BD (C α) M α → β ∈R q, the ciphertext c' and = C β = C'∈R q.
2) rpp β = pp, rek β = N β , zero element as plain text is input, β e 1 , β e 2 ∈ R q are selected according to distribution χ, and ciphertext c ″ = N β β e 1 + p β e 2 ∈ R q is obtained.
3) Output oct β = C ′ + N β β e 1 + p β e 2 ∈R q as the converted ciphertext.

[変形例等]
なお、本発明は上述の実施の形態に限定されるものではない。例えば、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。或いは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。すなわち、これらの装置の一部からなる組み合わせが、同一の装置であってもよい。例えば、復号装置15がさらに鍵生成装置13として機能する装置であってもよいし、復号装置16がさらに鍵生成装置12として機能する装置であってもよい。
[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. That is, the combination which consists of a part of these apparatuses may be the same apparatus. For example, the decryption device 15 may be a device that further functions as the key generation device 13, and the decryption device 16 may be a device that further functions as the key generation device 12.

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

12 鍵生成装置
125 基本変換鍵生成部
126 ランダム化鍵生成部
17 再暗号化装置
174 基本変換部
175 撹乱暗号化部
12 Key generation device 125 Basic conversion key generation unit 126 Randomization key generation unit 17 Re-encryption device 174 Basic conversion unit 175 Disturbance encryption unit

Claims (6)

第1復号鍵が第1暗号文を復号するための鍵であり、第2復号鍵が準同型性を持つ第2暗号文を復号するための鍵であり、第2暗号化鍵が前記第2復号鍵に対応する鍵であり、
前記第1復号鍵および前記第2暗号化鍵を用い、前記第1暗号文を前記第2暗号文に変換するための基本変換鍵を得る基本変換鍵生成部と、
前記第2暗号化鍵を用い、前記第2暗号化鍵をランダム化してランダム化鍵を得るランダム化鍵生成部と、を有し、
前記第2暗号文と、前記ランダム化鍵を用いて第1値を暗号化して得られる準同型性を持つ撹乱暗号文と、に対して所定の演算を行って得られる変形済暗号文が前記第2復号鍵で復号可能であり、任意の第2値と前記第1値とに前記演算を行って得られる値は前記第2値に等しい、鍵生成装置。
The first decryption key is a key for decrypting the first ciphertext, the second decryption key is a key for decrypting the second ciphertext having homomorphism , and the second encryption key is the second ciphertext. A key corresponding to the decryption key,
A basic conversion key generating unit that obtains a basic conversion key for converting the first ciphertext into the second ciphertext using the first decryption key and the second encryption key;
A randomized key generation unit that uses the second encryption key to randomize the second encryption key to obtain a randomized key;
The modified ciphertext obtained by performing a predetermined operation on the second ciphertext and the disturbed ciphertext having homomorphism obtained by encrypting the first value using the randomization key is the Ri decodable der second decryption key, the value obtained by performing the operation on said first value and an optional second value is equal to the second value, the key generation device.
請求項1の鍵生成装置であり、
前記第1暗号文および第2暗号文が格子暗号方式またはNTRU暗号方式に則った暗号文である、鍵生成装置。
The key generation device according to claim 1 ,
The key generation device, wherein the first ciphertext and the second ciphertext are ciphertexts conforming to a lattice cryptosystem or an NTRU cryptosystem.
基本変換鍵が第1暗号文を第2暗号文に変換するための鍵であり、第2復号鍵が前記第2暗号文を復号するための鍵であり、第2暗号化鍵が前記第2復号鍵に対応する鍵であり、ランダム化鍵が前記第2暗号化鍵をランダム化した鍵であり、前記第2暗号文が準同型性を持ち、
前記基本変換鍵を用いて前記第1暗号文を前記第2暗号文に変換する基本変換部と、
前記ランダム化鍵を用いて第1値を暗号化して準同型性を持つ撹乱暗号文を得る撹乱暗号化部と、
前記第2暗号文と前記撹乱暗号文とに対して所定の演算を行って変形済暗号文を得る演算部と、を有し、
前記変形済暗号文が前記第2復号鍵で復号可能であり、任意の第2値と前記第1値とに前記演算を行って得られる値は前記第2値に等しい、再暗号化装置。
The basic conversion key is a key for converting the first ciphertext to the second ciphertext, the second decryption key is a key for decrypting the second ciphertext, and the second encryption key is the second ciphertext. a key corresponding to the decryption key, a key randomized key randomized said second encryption key, prior Symbol second ciphertext have homomorphism,
A basic conversion unit that converts the first ciphertext into the second ciphertext using the basic conversion key;
A disturbing encryption unit that obtains a disturbed ciphertext having homomorphism by encrypting a first value using the randomizing key;
An operation unit that performs a predetermined operation on the second ciphertext and the disturbed ciphertext to obtain a modified ciphertext,
The re-encryption apparatus, wherein the transformed ciphertext can be decrypted with the second decryption key, and a value obtained by performing the calculation on an arbitrary second value and the first value is equal to the second value.
請求項の再暗号化装置であり、
前記第1暗号文および第2暗号文が格子暗号方式またはNTRU暗号方式に則った暗号文である、再暗号化装置。
The re-encryption device according to claim 3 ,
The re-encryption device, wherein the first ciphertext and the second ciphertext are ciphertexts conforming to a lattice cryptosystem or an NTRU cryptosystem.
請求項1または2の鍵生成装置としてコンピュータを機能させるためのプログラム。 Program for causing a computer to function as a key generating apparatus according to claim 1 or 2. 請求項またはの再暗号化装置としてコンピュータを機能させるためのプログラム。 The program for functioning a computer as a re-encryption apparatus of Claim 3 or 4 .
JP2014095054A 2014-05-02 2014-05-02 Key generation device, re-encryption device, and program Active JP6189788B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014095054A JP6189788B2 (en) 2014-05-02 2014-05-02 Key generation device, re-encryption device, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014095054A JP6189788B2 (en) 2014-05-02 2014-05-02 Key generation device, re-encryption device, and program

Publications (2)

Publication Number Publication Date
JP2015213233A JP2015213233A (en) 2015-11-26
JP6189788B2 true JP6189788B2 (en) 2017-08-30

Family

ID=54697286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014095054A Active JP6189788B2 (en) 2014-05-02 2014-05-02 Key generation device, re-encryption device, and program

Country Status (1)

Country Link
JP (1) JP6189788B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4387155A1 (en) * 2022-12-12 2024-06-19 Tata Consultancy Services Limited Method and system for a lattice-based homomorphic proxy re-encryption scheme

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112019007236B4 (en) 2019-05-24 2023-02-16 Mitsubishi Electric Corporation RE-ENCRYPTION DEVICE, RE-ENCRYPTION METHOD, RE-ENCRYPTION PROGRAM AND CRYPTOGRAPHIC SYSTEM

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6857075B2 (en) * 2000-12-11 2005-02-15 Lucent Technologies Inc. Key conversion system and method
JP5144991B2 (en) * 2006-08-22 2013-02-13 株式会社エヌ・ティ・ティ・データ Ciphertext decryption authority delegation system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4387155A1 (en) * 2022-12-12 2024-06-19 Tata Consultancy Services Limited Method and system for a lattice-based homomorphic proxy re-encryption scheme

Also Published As

Publication number Publication date
JP2015213233A (en) 2015-11-26

Similar Documents

Publication Publication Date Title
JP5422053B2 (en) Encryption system, encryption communication method, encryption device, key generation device, decryption device, content server device, program, storage medium
Canetti et al. Chosen-ciphertext secure proxy re-encryption
CN102055760B (en) Message sending/receiving method and system
JP5291795B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION METHOD, DECRYPTION METHOD, SECURITY METHOD, PROGRAM, AND RECORDING MEDIUM
JP2016012111A (en) Encryption processing method, encryption processing device, and encryption processing program
US20130083921A1 (en) Encryption device, decryption device, encryption method, decryption method, program, and recording medium
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
US20170366338A1 (en) Method and system for providing encrypted data
Wang et al. Proxy re-encryption schemes with key privacy from LWE
Susilo et al. Lattice-based HRA-secure attribute-based proxy re-encryption in standard model
JP2014095847A (en) Functional encryption system, key generation device, encryption device, decryption device, functional encryption method, and program
KR101249394B1 (en) Proxy re-encryption method from lattices and apparatus therefor
Holz et al. Linear-complexity private function evaluation is practical
JP2008176192A (en) Code conversion method and device, and program
CN114095171A (en) Identity-based wearable proxy re-encryption method
JP6189788B2 (en) Key generation device, re-encryption device, and program
JP5730804B2 (en) Encryption device, re-encryption key obfuscation device, re-encryption device, decryption device, and re-encryption system
WO2020070973A1 (en) Decryption device, cryptosystem, decryption method, and decryption program
Sepehri et al. Secure and efficient data sharing with atribute-based proxy re-encryption scheme
JP5513444B2 (en) Vector configuration system, method, apparatus, program, and encryption system
JP2013207387A (en) Proxy encryption system, proxy encryption method, committing device, proxy device
Sravya et al. Secure Lattice-Based Ciphertext-Policy Attribute-Based Encryption from Module-LWE for Cloud Storage
JP5103407B2 (en) Encrypted numerical binary conversion system, encrypted numerical binary conversion method, encrypted numerical binary conversion program
WO2017170780A1 (en) Cryptogram collation system, node device, cryptogram collation method, and program
JP4143036B2 (en) Key generation system, key generation server, and key generation method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170314

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: 20170801

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170803

R150 Certificate of patent or registration of utility model

Ref document number: 6189788

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150