JP2013105065A - Security system, encryption device, decryption device, re-encryption device, obfuscation device, method thereof, and program - Google Patents

Security system, encryption device, decryption device, re-encryption device, obfuscation device, method thereof, and program Download PDF

Info

Publication number
JP2013105065A
JP2013105065A JP2011249441A JP2011249441A JP2013105065A JP 2013105065 A JP2013105065 A JP 2013105065A JP 2011249441 A JP2011249441 A JP 2011249441A JP 2011249441 A JP2011249441 A JP 2011249441A JP 2013105065 A JP2013105065 A JP 2013105065A
Authority
JP
Japan
Prior art keywords
rev
encryption
dimensional vector
ciphertext
elements
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.)
Pending
Application number
JP2011249441A
Other languages
Japanese (ja)
Inventor
Ryo Nishimaki
陵 西巻
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 JP2011249441A priority Critical patent/JP2013105065A/en
Publication of JP2013105065A publication Critical patent/JP2013105065A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a re-encryption method having an inner product predicate encryption function.SOLUTION: A method includes the steps of: generating W'=W(0,1)*(h(1)), Θ'=Θ(0,1)*(h(1)), Y'=Y(0,1)*h(1), U'=U(0,1)+(REV), Λ'=Λ(0,1)*h(1), Ψ=e(W',Z), Ψ=e(Θ',Z), Ψ=e(Y',Z), Ω=e(U',k) and Ω=e(Λ',k), from an encrypted text ct (0,1) including W(0,1)=(h(1)), Θ(0,1)=(h(1)), Y(0,1)=h(1)*m, U(0,1)=(CV)and Λ(0,1)=h(1); and generating a re-encrypted text ct (1,2) including E(1,2)=Ψ, F(1,2)=Ψ, G(1,2)=Ψ*Ω, Z(1,2)=Zand H(1,2)=Ω.

Description

本発明は、暗号化技術に関し、特に再暗号化可能な暗号化技術に関する。   The present invention relates to an encryption technique, and more particularly, to a re-encryptable encryption technique.

従来の再暗号化方式では、プロキシ装置が持っている再暗号化鍵を利用すれば、プロキシ装置は、無条件で、第1復号装置で復号可能な暗号文を第2復号装置で復号可能な暗号文に変換できる(例えば、非特許文献1,2参照)。   In the conventional re-encryption method, if the re-encryption key possessed by the proxy device is used, the proxy device can unconditionally decrypt the ciphertext that can be decrypted by the first decryption device by the second decryption device. It can be converted into ciphertext (for example, see Non-Patent Documents 1 and 2).

プロキシ再暗号化機能を有さない(内積)述語暗号や関数暗号として、非特許文献3,4に記載された内積述語暗号や、非特許文献5に記載された関数暗号などがある。   Examples of predicate encryption and function encryption that do not have a proxy re-encryption function include inner product predicate encryption described in Non-Patent Documents 3 and 4 and function encryption described in Non-Patent Document 5.

S. Hohenberger, G. N. Rothblum, A. Shelat, and V. Vaikuntanathan, “Securely Obfuscating Re-encryption,” In TCC, volume 4392 of Lecture Notes in Computer Science, pages 233-252, Springer, 2007.S. Hohenberger, G. N. Rothblum, A. Shelat, and V. Vaikuntanathan, “Securely Obfuscating Re-encryption,” In TCC, volume 4392 of Lecture Notes in Computer Science, pages 233-252, Springer, 2007. N. Chandran, M. Chase, and V. Vaikuntanathan, “Collusion Resistant Obfuscation and Functional Re-encryption,” [online], 22 Jun 2011, [平成23年10月27日検索]、インターネット<http://eprint.iacr.org/2011/337.>N. Chandran, M. Chase, and V. Vaikuntanathan, “Collusion Resistant Obfuscation and Functional Re-encryption,” [online], 22 Jun 2011, [October 27, 2011 search], Internet <http: // eprint .iacr.org / 2011/337.> J. Katz, A. Sahai, and B. Waters, “Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products,” In EUROCRYPT, volume 4965 of Lecture Notes in Computer Science, pages 146-162, Springer, 2008.J. Katz, A. Sahai, and B. Waters, “Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products,” In EUROCRYPT, volume 4965 of Lecture Notes in Computer Science, pages 146-162, Springer, 2008. A. B. Lewko, T. Okamoto, A. Sahai, K. Takashima, and B. Waters, “Fully Secure Functional Encryption: Attribute-Based Encryption and (Hierarchical) Inner Product Encryption,” In EUROCRYPT, volume 6110 of Lecture Notes in Computer Science, pages 62-91, Springer, 2010.AB Lewko, T. Okamoto, A. Sahai, K. Takashima, and B. Waters, “Fully Secure Functional Encryption: Attribute-Based Encryption and (Hierarchical) Inner Product Encryption,” In EUROCRYPT, volume 6110 of Lecture Notes in Computer Science , pages 62-91, Springer, 2010. T. Okamoto and K. Takashima, “Fully Secure Functional Encryption with General Relations from the Decisional Linear Assumption,” In CRYPTO, volume 6223 of Lecture Notes in Computer Science, pages 191-208, Springer, 2010.T. Okamoto and K. Takashima, “Fully Secure Functional Encryption with General Relations from the Decisional Linear Assumption,” In CRYPTO, volume 6223 of Lecture Notes in Computer Science, pages 191-208, Springer, 2010.

しかしながら、内積述語暗号の機能を有する再暗号化方式は存在しない。本発明はこのような点に鑑みてなされたものであり、内積述語暗号の機能を有する再暗号化方式を提供する。   However, there is no re-encryption method having the inner product predicate encryption function. The present invention has been made in view of these points, and provides a re-encryption method having a function of inner product predicate encryption.

本発明では、G, GTが巡回群であり、gが巡回群Gの生成元であり、Fqが位数qの有限体であり、Fq ×=Fq\{0}であり、nが1以上の整数であり、μが2以上の整数であり、bi∈Gn+μ(i=1,...,n+μ)のそれぞれが巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B=(b1,...,bn+μ)がn+μ個の基底ベクトルbi(i=1,...,n+μ)からなる基底であり、bi *∈Gn+μ(i=1,...,n+μ)のそれぞれが巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B*=(b1 *,...,bn+μ *)がn+μ個の基底ベクトルbi *(i=1,...,n+μ)からなる基底であり、基底Bと基底B*とは双対直交基底であり、n+μ次元ベクトルd=(d1,...,dn+μ)∈Fq n+μに対する(d)BがΣi=1 n+μdi・biであり、n+μ次元ベクトルf=(f1,...,fn+μ)∈Fq n+μに対する(f)B*がΣi=1 n+μfi・bi *であり、Γがn+1≦Γ<n+μの整数であり、{ι(1),...,ι(Γ)}⊂{1,...,n+μ}であり、B^=(bι(1),...,bι(Γ))であり、第1復号装置の秘密鍵がa(1), b(1), c(1), τ(1)∈Fq ×であり、第1復号装置の公開鍵が(h(1)=gτ(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1)=c(1)・τ(1)・B^)であり、第2復号装置の秘密鍵がa(2), b(2), c(2), τ(2)∈Fq ×であり、第2復号装置の公開鍵が(h(2)=gτ(2), h(2)a(2), h(2)b(2), h(2)c(2), B(2)=c(2)・τ(2)・B^)であり、z, ρ, σ∈Fq ×であり、vがn次元ベクトルv=(vι(1),...,vι(n))∈Fq nであり、B(1,2)*=(ρ/c(1))・c(2)・τ(2)・B*であり、再暗号化鍵がZ1=(h(2)a(2))z/a(1), Z2=(h(2)b(2))z/b(1), Z3=h(2)z, k0=h(2)ρ, k*=(RV)B(1,2)*を含み、RVがn+μ次元ベクトルRV=(RVι(1),...,RVι(n+μ))∈Fq n+μであり、ι(i)∈{1,...,n+μ}(i=1,...,n+μ)であり、{ι(1),...,ι(n)}⊂{1,...,n+μ}であり、(RVι(1),..., RVι(n))がn次元ベクトルσ・v=(σ・vι(1),...,σ・vι(n))であり、何れか1個のRVκ∈{RVι(n+1),...,RVι(Γ)}が1であり、ξが1以上の整数であり、eξが直積群Gξ×Gξの元に対して巡回群GTの元を得る双線形写像である。 In the present invention, G and G T are cyclic groups, g is a generator of the cyclic group G, F q is a finite field of order q, and F q × = F q \ {0}, n is an integer greater than or equal to 1, μ is an integer greater than or equal to 2, and each of b i ∈G n + μ (i = 1, ..., n + μ) is n + μ of the cyclic group G N + μ-dimensional basis vectors whose elements are elements, and B = (b 1 , ..., b n + μ ) is n + μ basis vectors b i (i = 1, ..., n + μ), and each of b i * ∈G n + μ (i = 1, ..., n + μ) is an element of n + μ elements of cyclic group G B * = (b 1 * , ..., b n + μ * ) from n + μ basis vectors b i * (i = 1, ..., n + μ) is comprised basis, * the base B and the basis B are dual orthogonal basis, n + mu dimensional vector d → = (d 1, ... , d n + μ) ∈F q n + for mu (d ) B is Σ i = 1 n + μ d i・ b i and (f ) for n + μ dimensional vector f = (f 1 , ..., f n + μ ) ∈F q n + μ B * is Σ i = 1 n + μ f i・ b i * , and Γ is n + 1 ≦ Γ <N + μ is an integer, {ι (1), ..., ι (Γ)} ⊂ {1, ..., n + μ}, and B ^ = (b ι (1),. .., b ι (Γ) ) and the first decryption device has a secret key a (1), b (1), c (1), τ (1) ∈F q × The public keys of (h (1) = g τ (1) , h (1) a (1) , h (1) b (1) , h (1) c (1) , B (1) = c ( 1) ・ τ (1) ・ B ^), and the secret key of the second decryption device is a (2), b (2), c (2), τ (2) ∈F q × The public key of the decryption device is (h (2) = g τ (2) , h (2) a (2) , h (2) b (2) , h (2) c (2) , B (2) = c (2) ・ τ (2) ・ B ^), z, ρ, σ∈F q × , and v is an n-dimensional vector v = (v ι (1) , ..., v ι (n) ) ∈F q n , B (1,2) * = (ρ / c (1)) ・ c (2) ・ τ (2) ・ B * , and the re-encryption key is Z 1 = (h (2) a (2) ) z / a (1) , Z 2 = (h (2) b (2) ) z / b (1) , Z 3 = h (2) z , k 0 = h (2) ρ , k * = (RV ) B (1,2) * , where RV is an n + μ-dimensional vector RV = (RV ι (1) , ..., RV ι (n + μ) ) ∈F q n + μ , ι (i) ∈ {1, ..., n + μ} (i = 1, ..., n + μ) and {ι (1), ..., ι (n)} ⊂ {1, ..., n + μ} and (RV ι (1),. .., RV ι (n) ) is an n-dimensional vector σ · v = (σ · v ι (1) , ..., σ · v ι (n) ), and any one RV κ ∈ {RV ι (n + 1) , ..., RV ι (Γ) } is 1, ξ is an integer equal to or greater than 1, and e ξ is a cyclic group for an element of the Cartesian product group G ξ × G ξ is a bilinear map to obtain the original G T.

暗号化装置は、r, s, ζ, ω∈Fqを選択し、第1復号装置の公開鍵(h(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1))とn次元ベクトルx=(xι(1),...,xι(n))∈Fq nとを用い、メッセージm∈Gの第1暗号文ct(0,1)を生成する。ただし、第1暗号文ct(0,1)がW(0,1)=(h(1)a(1))r, Θ(0,1)=(h(1)b(1))s, Y(0,1)=h(1)r+s・m,U(0,1)=(CV)B(1), Λ(0,1)=h(1)ζを含み、CVがn+μ次元ベクトルCV=(CVι(1),...,CVι(n+μ))∈Fq n+μであり、(CVι(1),...,CVι(n))がn次元ベクトルω・x=(ω・xι(1),...,ω・xι(n))であり、何れか1個のCVκ∈{CVι(n+1),...,CVι(Γ)}がζであり、CVι(n+1),...,CVι(Γ)からCVκを除いた要素からなるベクトルとRVι(n+1),...,RVι(Γ)からRVκを除いた要素からなるベクトルとの内積が0である。 The encryption device selects r, s, ζ, ωεF q, and the public keys (h (1), h (1) a (1) , h (1) b (1) , h (1) c (1) , B (1)) and n-dimensional vector x = (x ι (1) , ..., x ι (n) ) ∈F q n The first ciphertext ct (0,1) is generated. However, the first ciphertext ct (0,1) is W (0,1) = (h (1) a (1) ) r , Θ (0,1) = (h (1) b (1) ) s , Y (0,1) = h (1) r + s・ m, U (0,1) = (CV ) B (1) , Λ (0,1) = h (1) ζ and CV is an n + μ dimensional vector CV = (CV ι (1) , ..., CV ι (n + μ) ) ∈F q n + μ and (CV ι (1) , ..., CV ι (n) ) is an n-dimensional vector ω ・ x = (ω ・ x ι (1) , ..., ω ・ x ι (n) ), and any one of CV κ ∈ {CV ι ( n + 1) , ..., CV ι (Γ) } is ζ, and a vector composed of elements obtained by removing CV κ from CV ι (n + 1) , ..., CV ι (Γ) and RV ι (n + 1) ,..., RV ι (Γ) has an inner product of 0 with a vector composed of elements obtained by removing RV κ .

再暗号化装置は、r’, s’, ζ’∈Fqを選択し、W’=W(0,1)・(h(1)a(1))r’, Θ’=Θ(0,1)・(h(1)b(1))s’, Y’=Y(0,1)・h(1)r’+s’, U’=U(0,1)+(REV)B(1), Λ’=Λ(0,1)・h(1)ζ’を得、Ψ1=e1(W’,Z1), Ψ2=e1(Θ’,Z2), Ψ3=e1(Y’,Z3), Ω1=en+μ(U’,k*), Ω2=e1(Λ’,k0)を得、y, y’∈Fq ×に対するE(1,2)=Ψ1 y, F(1,2)=Ψ2 y, G(1,2)=Ψ3 y・Ω1 y’, Z(1,2)=Z3 y, H(1,2)=Ω2 y’を含む再暗号文ct(1,2)を生成する。REVはn+μ次元ベクトルREV=(REVι(1),...,REVι(n+μ))∈Fq n+μであり、何れか1個のREVκ∈{REVι(1),...,REVι(n+μ)}がζ’であり、REVκを除くREVι(1),...,REVι(n+μ)が0∈Fqである。 The re-encryption device selects r ′, s ′, ζ′∈F q , and W ′ = W (0,1) · (h (1) a (1) ) r ′ , Θ ′ = Θ (0 , 1) ・ (h (1) b (1) ) s' , Y '= Y (0,1) ・ h (1) r' + s' , U '= U (0,1) + (REV ) B (1) , Λ '= Λ (0,1) ・ h (1) ζ' , Ψ 1 = e 1 (W ', Z 1 ), Ψ 2 = e 1 (Θ', Z 2 ) , Ψ 3 = e 1 (Y ', Z 3 ), Ω 1 = e n + μ (U', k * ), Ω 2 = e 1 (Λ ', k 0 ), y, y'∈F E for q × (1,2) = Ψ 1 y, F (1,2) = Ψ 2 y, G (1,2) = Ψ 3 y · Ω 1 y ', Z (1,2) = Z 3 A re-ciphertext ct (1,2) including y , H (1,2) = Ω 2 y ′ is generated. REV is an n + μ-dimensional vector REV = (REV ι (1) , ..., REV ι (n + μ) ) ∈F q n + μ , and any one REV κ ∈ {REV ι (1) , ..., REV ι (n + μ) } is ζ ', and REV ι (1) , ..., REV ι (n + μ) excluding REV κ is 0∈F q .

第2復号装置は、e1(m’, Z(1,2))=G(1,2)/{H(1,2)c(2)・E(1,2)1/a(2)・F(1,2) 1/b(2)}を満たすm’∈Gを復号値として得る。 The second decoding device is e 1 (m ′, Z (1,2)) = G (1,2) / {H (1,2) c (2) · E (1,2) 1 / a (2 ) · F (1,2) 1 / b (2) } is obtained as a decoded value.

本発明では、内積述語暗号の機能を有する再暗号化方式を実現できる。   In the present invention, a re-encryption scheme having a function of inner product predicate encryption can be realized.

図1は実施形態のセキュリティシステムの全体構成を説明するための図である。FIG. 1 is a diagram for explaining the overall configuration of the security system of the embodiment. 図2は実施形態の暗号化装置の構成を説明するための図である。FIG. 2 is a diagram for explaining the configuration of the encryption apparatus according to the embodiment. 図3は実施形態の復号装置の構成を説明するための図である。FIG. 3 is a diagram for explaining the configuration of the decoding apparatus according to the embodiment. 図4は実施形態の復号装置の構成を説明するための図である。FIG. 4 is a diagram for explaining the configuration of the decoding apparatus according to the embodiment. 図5は実施形態の難読化装置の構成を説明するための図である。FIG. 5 is a diagram for explaining the configuration of the obfuscation apparatus according to the embodiment. 図6は実施形態の再暗号化装置の構成を説明するための図である。FIG. 6 is a diagram for explaining the configuration of the re-encryption apparatus according to the embodiment. 図7A及び7Bは復号装置の秘密鍵及び公開鍵の生成方法を説明するためのフローチャートであり、図7Cは再暗号化鍵の生成方法を説明するためのフローチャートである。7A and 7B are flowcharts for explaining a method for generating a secret key and a public key of the decryption apparatus, and FIG. 7C is a flowchart for explaining a method for generating a re-encryption key. 図8は実施形態の暗号化方法を説明するためのフローチャートである。FIG. 8 is a flowchart for explaining the encryption method of the embodiment. 図9は実施形態の再暗号化方法を説明するためのフローチャートである。FIG. 9 is a flowchart for explaining the re-encryption method of the embodiment. 図10A及び10Bは実施形態の復号方法を説明するためのフローチャートである。10A and 10B are flowcharts for explaining the decoding method of the embodiment.

実施形態を説明する。
〔定義〕
基本的な用語・表記を定義する。
secはセキュリティパラメータを表す1以上の整数である。qはsecビットの素数であり、G, GTは位数qの巡回群(巡回乗法群)であり、g∈Gは巡回群Gの生成元であり、gT∈GTは巡回群GTの生成元である。Fqは位数qの有限体であり、Fq ×=Fq\{0}は有限体Fqから零元(加法単位元)0を除いた集合である。
An embodiment will be described.
[Definition]
Define basic terms and notations.
sec is an integer of 1 or more representing a security parameter. q is a prime number of sec bits, G and G T are cyclic groups (cyclic multiplicative group) of order q, g∈G is a generator of cyclic group G, and g T ∈G T is cyclic group G. It is a generator of T. F q is a finite field of order q, and F q × = F q \ {0} is a set obtained by removing zero element (additive unit element) 0 from finite field F q .

実施形態では、原則、巡回群G, GTでの演算が乗法群として乗法的に表記される。ただし、記法の便宜上の例外として、巡回群Gの元を要素とするベクトル単位の演算(結果)、及び、巡回群Gの元を要素とする行列単位の演算(結果)のみが加法的に表現(以下「便宜的加法表現」)される。加法的に表現されたとしても、このようなベクトルや行列の各要素が巡回群Gの元(巡回乗法群の元)であることに注意されたい。 In the embodiment, in principle, operations in the cyclic groups G and G T are multiplicatively expressed as multiplicative groups. However, as an exception to the notation convenience, only vector unit operations (results) with elements of cyclic group G as elements and matrix unit operations (results) with elements of cyclic group G as elements are expressed additively. (Hereinafter referred to as “convenient additive expression”). Note that each element of such a vector or matrix is an element of a cyclic group G (an element of a cyclic multiplicative group) even if it is expressed additively.

nが1以上の整数であり、x=(x1,...,xn)∈Fq nがn個の有限体Fqの元xi∈Fqを要素とするn次元ベクトル(例えば属性ベクトル)であり、v=(v1,...,vn)∈Fq nがn個の有限体Fqの元vi∈Fqを要素とするn次元ベクトル(例えば述語ベクトル)である。2つのベクトルx,vに対するx・vは、内積x・vi=1 nxi・vi∈Fqを表す。1は単位ベクトル1=(1,...,1)を表す。INは有限体Fqの元を要素に持つN行N列の単位行列を表す。 n is an integer greater than or equal to 1, and x = (x 1 , ..., x n ) ∈F q n is an n-dimensional vector whose elements are elements x i ∈F q of n finite fields F q ( For example, an attribute vector), and v = (v 1 , ..., v n ) ∈F q n is an n-dimensional vector (eg, predicate) whose elements are elements v i ∈F q of n finite fields F q Vector). Two vectors x →, v x · for v represents the inner product x → · v → = Σ i = 1 n x i · v i ∈F q. 1 represents the unit vector 1 = (1, ..., 1). I N represents an N-by-N unit matrix having elements of the finite field F q as elements.

eξ(ξは1以上の整数)は、任意の直積群Gξ×Gξの元に対して巡回群GTの元を得る双線形写像(bilinear map)である。
eξ:Gξ×Gξ→GT …(1)
双線形写像eξは以下の性質を満たす。
[双線形性]双線形写像eξは、任意のλ1,λ2∈Gξ及びν1,ν2∈Fqについて以下の関係を満たす。
e(λ1 ν1, λ2 ν2)=e(λ1, λ2)ν1・ν2 …(2)
[非退化]eξ1, λ2)≠1∈GTを満たすλ1,λ2∈Gξが存在する。すべてのλ1∈Gξに対してeξ1, λ2)=1∈GTであるならλ2=0ξ∈Gξである。eξ(g, g)=gT∈GTを満たす。
[計算可能性]任意のλ1,λ2∈Gξに対してe(λ1, λ2)の効率的な(つまり多項式時間での)計算が可能である。
e ξ (ξ is an integer of 1 or more) is a bilinear map for obtaining an element of the cyclic group G T with respect to an element of an arbitrary product group G ξ × G ξ .
e ξ : G ξ × G ξ → G T … (1)
The bilinear map satisfies the following properties.
[Bilinearity] The bilinear map e ξ satisfies the following relationship for arbitrary λ 1 , λ 2 εG ξ and ν1, ν2εF q .
e (λ 1 ν1 , λ 2 ν2 ) = e (λ 1 , λ 2 ) ν1 ・ ν2 … (2)
[Non-degenerate] There exist λ 1 and λ 2 ∈G ξ satisfying e ξ1 , λ 2 ) ≠ 1∈G T. For all λ 1 ∈G ξ e ξ (λ 1, λ 2) is a = If a 1∈G T λ 2 = 0 ξ ∈G ξ. e ξ (g, g) = g T ∈G T is satisfied.
[Computability] E (λ 1 , λ 2 ) can be calculated efficiently (ie, in polynomial time) for any λ 1 , λ 2 ∈G ξ .

本形態の双線形写像eξは、任意のξ,γ=(γ1,...,γξ)∈Gξ,γ*=(γ1 *,...,γξ *)∈Gξ,γι∈G及びγι *∈G(ι=1,...,ξ)について、以下のように構成される。
eξ(γ, γ*)=Πι=1 ξe1ι, γι *) …(3)
双線形写像e1の具体例は、有限体Fq上で定義された楕円曲線上の2点に対して定義されるWeilペアリングやTateペアリングなどのペアリングである。したがって、例えば公知のペアリングを用いることで任意のξに対する双線形写像eξを定義できる。ペアリングなどの双線形写像についての詳細は、例えば、参考文献1「D. Boneh and M. K. Franklin, “Identity-Based Encryption from the Weil Pairing,” In CRYPTO’01, volume 2139 of Lecture Notes in Computer Science, pages 213-229, Springer, 2001.」や、参考文献2「黒澤馨著,“現代暗号への招待”,サイエンス社,2010年9月10日,ISBN 978-4-7819-1262-2,第13章」などを参照されたい。
The bilinear map e ξ of this form is an arbitrary ξ, γ = (γ 1 , ..., γ ξ ) ∈G ξ , γ * = (γ 1 * , ..., γ ξ * ) ∈G ξ , Γ ι ∈ G and γ ι * ∈ G (ι = 1,..., Ξ) are constructed as follows.
e ξ (γ, γ * ) = Π ι = 1 ξ e 1ι , γ ι * )… (3)
A specific example of the bilinear map e 1 is pairing such as Weil pairing or Tate pairing defined for two points on an elliptic curve defined on the finite field F q . Therefore, for example, a bilinear map e ξ with respect to an arbitrary ξ can be defined by using a known pairing. For details on bilinear mapping such as pairing, see Reference 1 “D. Boneh and MK Franklin,“ Identity-Based Encryption from the Weil Pairing, ”In CRYPTO'01, volume 2139 of Lecture Notes in Computer Science, pages 213-229, Springer, 2001. ”and Reference 2“ Akira Kurosawa, “Invitation to Contemporary Cryptography”, Science, September 10, 2010, ISBN 978-4-7819-1262-2, No. 2 Please refer to Chapter 13 etc.

ai∈GN (i=1,...,N)は、巡回群GのN個の元を要素とするN次元の基底ベクトルを表す。ただし、μが2以上の整数であり、N=n+μである。基底ベクトルaiの一例はg∈Gをi次元目の要素とし、残りのN-1個の要素を巡回群Gの単位元(乗法的に「1」と表現)とするN-1次元の基底ベクトルである。N次元の基底ベクトルai(i=1,...,N)の各要素をそれぞれ列挙して表記すると、以下のようになる。
a1=(g,1,1,...,1)
a2=(1,g,1,...,1) …(4)
...
aN=(1,1,1,...,g)
a i ∈ G N (i = 1,..., N) represents an N-dimensional basis vector having N elements of the cyclic group G as elements. However, μ is an integer of 2 or more, and N = n + μ. An example of a basis vector a i is an N-1 dimensional element with g∈G as the i-th element and the remaining N-1 elements as unit elements of the cyclic group G (multiplicatively expressed as “1”) It is a basis vector. Each element of the N-dimensional basis vector a i (i = 1,..., N) is listed and expressed as follows.
a 1 = (g, 1,1, ..., 1)
a 2 = (1, g, 1, ..., 1)… (4)
...
a N = (1,1,1, ..., g)

ai *∈GN (i=1,...,N)は、巡回群GのN個の元を要素とするN次元の基底ベクトルを表す。基底ベクトルai *の一例はg∈Gをi次元目の要素とし、残りのN-1個の要素を巡回群Gの単位元(乗法的に「1」と表現)とするN-1次元の基底ベクトルである。N次元の基底ベクトルai *(i=1,...,N)の各要素をそれぞれ列挙して表記すると、以下のようになる。
a1 *=(g,1,1,...,1)
a2 *=(1,g,1,...,1) …(5)
...
aN *=(1,1,1,...,g)
a i * ∈G N (i = 1,..., N) represents an N-dimensional basis vector having N elements of the cyclic group G as elements. An example of a basis vector a i * is an N-1 dimension where g∈G is an i-th element and the remaining N-1 elements are unit elements of the cyclic group G (multiplicatively expressed as “1”) Basis vectors. Each element of the N-dimensional basis vector a i * (i = 1,..., N) is listed and expressed as follows.
a 1 * = (g, 1,1, ..., 1)
a 2 * = (1, g, 1, ..., 1)… (5)
...
a N * = (1,1,1, ..., g)

N個の基底ベクトルai(i=1,...,N)からなる基底Aは直交基底であり、巡回群G上のN次元ベクトル空間V=G×...×Gを張る(V=span<a1,...,aN>)。N次元ベクトル空間V上の任意の元γ=(γ1,...,γN)∈Vは、基底ベクトルai(i=1,...,N)とdi∈Fq(i=1,...,N)とを用い、便宜上、以下のように加法的に表記できる(便宜的加法表現)。
γ=Σi=1 N di・ai …(6)
式(6)を乗法的に表記すると以下のようになる。
γ=(gd1,...,gdN) …(7)
ただし、上付き添え字の「d1」,...,「dN」は「d1」,...,「dN」を表す。
N個の基底ベクトルai(i=1,...,N)からなる基底AとN個のdi∈Fq(i=1,...,N)からベクトルd=(d1,...,dN)とを用い、N次元ベクトル空間V上の任意の元γを以下のように表記する。
γ=(d)A=(d1,...,dN)A …(8)
A basis A composed of N basis vectors a i (i = 1,..., N) is an orthogonal basis and spans an N-dimensional vector space V = G × ... × G on a cyclic group G (V = span <a 1 ,...,a N>) . An arbitrary element γ = (γ 1 , ..., γ N ) ∈V on the N-dimensional vector space V is expressed by the basis vectors a i (i = 1, ..., N) and d i ∈F q (i = 1, ..., N) and can be expressed additively as follows for convenience (convenient additive expression).
γ = Σ i = 1 N d i・ a i (6)
Expression (6) is expressed in a multiplicative manner as follows.
γ = (g d1 , ..., g dN )… (7)
However, the superscripts “d1”,..., “ DN ” represent “d 1 ”,.
A vector d = (d 1 from a basis A consisting of N basis vectors a i (i = 1, ..., N) and N d i ∈F q (i = 1, ..., N) , ..., d N ) and an arbitrary element γ on the N-dimensional vector space V is expressed as follows.
γ = (d ) A = (d 1 , ..., d N ) A … (8)

N個の基底ベクトルai *(i=1,...,N)からなる基底A*は直交基底であり、巡回群G上のN次元ベクトル空間V*=G×...×Gを張る(V*=span<a1 *,...,aN *>)。N次元ベクトル空間V*上の任意の元γ*=(γ1 *,...,γN *)∈V*は、基底ベクトルai * (i=1,...,N)とfi∈Fq(i=1,...,N)とを用い、便宜上、以下のように加法的に表記できる(便宜的加法表現)。
γ*i=1 N fi・ai * …(9)
式(9)を乗法的に表記すると以下のようになる。
γ*=(gf1,...,gfN) …(10)
ただし、上付き添え字の「f1」,...,「fN」は「f1」,...,「fN」を表す。
N個の基底ベクトルai *(i=1,...,N)からなる基底A*とN個のfi∈Fq(i=1,...,N)からベクトルf=(f1,...,fN)とを用い、N次元ベクトル空間V*上の任意の元γ*を以下のように表記する。
γ*=(f)A*=(f1,...,fN)A* …(11)
ただし、下付き添え字の「A*」はA*を表す。
A basis A * consisting of N basis vectors a i * (i = 1, ..., N) is an orthogonal basis, and an N-dimensional vector space V * = G × ... × G on a cyclic group G put (V * = span <a 1 * ,...,a N *>). Any original upper N-dimensional vector space V * γ * = (γ 1 *, ..., γ N *) ∈V * is basis vector a i * (i = 1, ..., N) and f Using i ∈ F q (i = 1, ..., N), it can be expressed additively as follows for convenience (convenient additive expression).
γ * = Σ i = 1 N f i・ a i * (9)
Expression (9) is expressed in a multiplicative manner as follows.
γ * = (g f1 , ..., g fN )… (10)
However, "f1" of the superscript, ..., "fN" is "f 1", ..., represents a "f N".
From the basis A * consisting of N basis vectors a i * (i = 1, ..., N) and N f i ∈F q (i = 1, ..., N), the vector f = ( An arbitrary element γ * on the N-dimensional vector space V * is expressed as follows using f 1 , ..., f N ).
γ * = (f ) A * = (f 1 , ..., f N ) A * … (11)
However, the subscript “A *” represents A * .

式(2)(3)(7)(10)より、γ=(d)A=(d1,...,dN)A∈V,γ*=(f)A*=(f1,...,fN)A*∈V*について、以下の関係が成り立つ。
eN(γ, γ*)=Πi=1 N e1i, γi *)
i=1 N e1(gdi, gfi)
=e1(g, g)d1・f1+...+dN・fN
=e1(g, g)d→・f→
=gT d→・f→ …(12)
ただし、上付き添え字の「d→」「f→」は、それぞれ「d」「f」を表す。
From equations (2) (3) (7) (10), γ = (d ) A = (d 1 , ..., d N ) A ∈V, γ * = (f ) A * = (f 1 , ..., f N ) For A * ∈ V * , the following relation holds:
e N (γ, γ * ) = Π i = 1 N e 1i , γ i * )
= Π i = 1 N e 1 (g di , g fi )
= e 1 (g, g) d1 ・ f1 + ... + dN ・ fN
= e 1 (g, g) d → ・ f →
= g T d → ・ f → … (12)
However, the superscripts “d ” and “f ” represent “d ” and “f ”, respectively.

また式(2)(3)より、基底ベクトルai(i=1,...,N)と基底ベクトルaj *(j=1,...,N)は以下の関係を満たす。すなわち、基底Aと基底A*とは互いに双対な直交基底(双対直交基底)である。
eN(ai, aj *)=gT δ(i,j) …(13)
ただし、δ(i,j)はクロネッカーのデルタ関数を表す。すなわち、i=jの場合にδ(i,j)=1∈Fqを満たし、i≠jの場合にδ(i,j)=0∈Fqを満たす。
Further, from the equations (2) and (3), the basis vectors a i (i = 1,..., N) and the basis vectors a j * (j = 1,..., N) satisfy the following relationship. That is, the base A and the base A * are mutually orthogonal orthogonal bases (dual orthogonal bases).
e N (a i , a j * ) = g T δ (i, j) … (13)
Here, δ (i, j) represents the Kronecker delta function. That, i = in the case of j δ (i, j) = meets 1∈F q, in the case of i ≠ j δ (i, j ) = satisfy 0∈F q.

双線形写像eNがペアリングによって構成される場合、上述のような位数q,N次元ベクトル空間V,V*,巡回群G, GT,生成元g,双線形写像eNの組を「対称ペアリング群による双対ペアリングベクトル空間(DPVS:Dual Paring Vector space))と呼ぶ。 When the bilinear map e N is constructed by pairing, the set of the order q, the N-dimensional vector space V, V * , the cyclic group G, G T , the generator g, and the bilinear map e N as described above It is called “Dual Paring Vector Space (DPVS) with Symmetric Pairing Group”.

N個の基底ベクトルai(i=1,...,N)からなる基底Aは、一様ランダムなN行N列の正則行列X=(χi,j) ←U GL(N, Fq)を用い、N次元ベクトル空間Vの基底B=(b1,...,bN)に変換可能である。GL(N, Fq)は有限体Fq上のN次元一般線形群を表し、(χi,j)は、χi,jをi行j列の要素とする行列を表す。「MENBER ←USET」は集合「SET」の要素「MENBER」を一様ランダムに選択することを意味する。基底Bの要素bi∈GN (i=1,...,N)のそれぞれは、巡回群GのN個の元を要素とするN次元の基底ベクトルであり、便宜上、以下のように加法的に表記できる(便宜的加法表現)。
bij=1 N χi,j・aj (i=1,...,N) …(14)
式(14)を乗法的に表記すると以下のようになる。
bi=(gχi,1,...,gχi,N) (i=1,...,N) …(15)
ただし、上付き添え字の「χi,j」は「χi,j」を表す。
すなわち、基底B=(b1,...,bN)は巡回群Gの元を要素とするN×Nの行列とみることができ、乗法的に以下のように表記することができる。
B=((gχi,j)i,j) …(16)
A basis A consisting of N basis vectors a i (i = 1, ..., N) is a uniform random N-by-N regular matrix X = (χ i, j ) ← U GL (N, F q ) can be used to convert to the basis B = (b 1 ,..., b N ) of the N-dimensional vector space V. GL (N, F q ) represents an N-dimensional general linear group on the finite field F q , and (χ i, j ) represents a matrix having χ i, j as elements of i rows and j columns. “MENBER ← U SET” means that the element “MENBER” of the set “SET” is uniformly selected at random. Each element b i ∈G N (i = 1, ..., N) of basis B is an N-dimensional basis vector whose elements are N elements of cyclic group G. Can be expressed additively (for convenience).
b i = Σ j = 1 N χ i, j・ a j (i = 1, ..., N)… (14)
Expression (14) is expressed in a multiplicative manner as follows.
b i = (g χi, 1 , ..., g χi, N ) (i = 1, ..., N)… (15)
However, of the superscript "χi, j" represents "χ i, j".
That is, the basis B = (b 1 ,..., B N ) can be regarded as an N × N matrix having elements of the cyclic group G as elements, and can be expressed as follows in a multiplicative manner.
B = ((g χi, j ) i, j )… (16)

N個の基底ベクトルai *(i=1,...,N)からなる基底A*は、正則行列(θi,j)=(XT)-1を用い、N次元ベクトル空間V*の直交基底B*=(b1 *,...,bN *)に変換可能である。ただし、ΞTはΞの転置を表し、Ξ-1はΞの逆行列を表し、(θi,j)はθi,j (i=1,...,N, j=1,...,N)をi行j列の要素とする行列を表す。直交基底B*の要素bi *∈GN (i=1,...,N)のそれぞれは、巡回群GのN個の元を要素とするN次元の基底ベクトルであり、便宜上、以下のように加法的に表記できる(便宜的加法表現)。
bi *j=1 N θi,j・aj * (i=1,...,N) …(17)
式(17)を乗法的に表記すると以下のようになる。
bi *=(gθi,1,...,gθi,N) (i=1,...,N) …(18)
ただし、上付き添え字の「θi,j」は「θi,j」を表す。
すなわち、基底B*=(b1,...,bN)は巡回群Gの元を要素とするN×Nの行列とみることができ、乗法的に以下のように表記することができる。
B*=((gθi,j)i,j) …(19)
A basis A * consisting of N basis vectors a i * (i = 1, ..., N) uses a regular matrix (θ i, j ) = (X T ) −1 and uses an N-dimensional vector space V *. Can be converted to an orthogonal basis B * = (b 1 * ,..., B N * ). Where Ξ T is the transpose of Ξ, Ξ -1 is the inverse of Ξ, and (θ i, j ) is θ i, j (i = 1, ..., N, j = 1, ... ., N) represents a matrix having i rows and j columns. Each of the elements b i * ∈ G N (i = 1, ..., N) of the orthogonal basis B * is an N-dimensional basis vector whose elements are the N elements of the cyclic group G. (Additive expression for convenience).
b i * = Σ j = 1 N θ i, j・ a j * (i = 1, ..., N)… (17)
Expression (17) is expressed in a multiplicative manner as follows.
b i * = (g θi, 1 , ..., g θi, N ) (i = 1, ..., N)… (18)
However, "θi, j" in the superscript represents a "θ i, j".
That is, the basis B * = (b 1 , ..., b N ) can be viewed as an N × N matrix with elements of the cyclic group G as elements, and can be expressed in the following multiplicative manner .
B * = ((g θi, j ) i, j )… (19)

i,j)=(XT)-1から(θi,j)・(Xi,j)T=INが成り立つことから、χi =(χi,1,...,χi,N),θj =(θj,1,...,θj,N)とおくと以下が成り立つ。
χi ・θj =(χi,1,...,χi,N)・(θj,1,...,θj,N)
=δ(i,j)∈Fq × …(20)
(θ i, j) = ( X T) from -1 (θ i, j) · (X i, j) from the fact that T = I N holds, χ i → = (χ i , 1, ..., χ i, N ), θ j = (θ j, 1 , ..., θ j, N ), the following holds.
χ i ・ θ j = (χ i, 1 , ..., χ i, N ) ・ (θ j, 1 , ..., θ j, N )
= δ (i, j) ∈F q × … (20)

式(3)(15)(18)(20)から以下が成り立つ。
eN(bi, bj *)=Πι=1 Ne1(gχi,ι, gθj,ι)
=e1(g, g)χi→・θj→
=e1(g, g)δ(i,j)
=gT δ(i,j) …(21)
すなわち、基底Bと基底B*とは互いに双対な直交基底(双対直交基底)である。基底Bは巡回群G上のN次元ベクトル空間V=G×...×Gを張り(V=span<b1,...,bN>)、基底B*は巡回群G上のN次元ベクトル空間V*=G×...×Gを張る(V*=span<b1 *,...,bN *>)。
From the equations (3), (15), (18), and (20), the following holds.
e N (b i , b j * ) = Π ι = 1 N e 1 (g χi, ι , g θj, ι )
= e 1 (g, g) χi → ・ θj →
= e 1 (g, g) δ (i, j)
= g T δ (i, j) … (21)
That is, the base B and the base B * are mutually orthogonal orthogonal bases (dual orthogonal bases). The base B stretches the N-dimensional vector space V = G × ... × G on the cyclic group G (V = span <b 1 , ..., b N >), and the base B * is N on the cyclic group G A dimensional vector space V * = G × ... × G is stretched (V * = span <b 1 * , ..., b N * >).

N次元ベクトル空間V上の任意の元γ=(γ1,...,γN)∈Vは、基底ベクトルbi(i=1,...,N)とdi∈Fq(i=1,...,N)とを用い、便宜上、以下のように加法的に表記できる(便宜的加法表現)。
γ=Σi=1 N di・bi …(22)
式(16)より、式(22)を乗法的に表記すると以下のようになる。

Figure 2013105065
基底Bとベクトルd=(d1,...,dN)とを用い、N次元ベクトル空間V*上の任意の元γを以下のように表記する。
γ=(d)B=(d1,...,dN)B …(24) An arbitrary element γ = (γ 1 , ..., γ N ) ∈V on the N-dimensional vector space V is expressed by the basis vectors b i (i = 1, ..., N) and d i ∈F q (i = 1, ..., N) and can be expressed additively as follows for convenience (convenient additive expression).
γ = Σ i = 1 N d i・ b i (22)
From equation (16), equation (22) is expressed in a multiplicative manner as follows.
Figure 2013105065
An arbitrary element γ on the N-dimensional vector space V * is expressed as follows using a base B and a vector d = (d 1 ,..., D N ).
γ = (d ) B = (d 1 , ..., d N ) B … (24)

N次元ベクトル空間V*上の任意の元γ*=(γ1 *,...,γN *)∈V*は、基底ベクトルbi * (i=1,...,N)とfi∈Fq(i=1,...,N)とを用い、便宜上、以下のように加法的に表記できる(便宜的加法表現)。
γ*i=1 N fi・bi * …(25)
式(19)より、式(25)を乗法的に表記すると以下のようになる。

Figure 2013105065
基底B*とベクトルf=(f1,...,fN)とを用い、N次元ベクトル空間V*上の任意の元γ*を以下のように表記する。
γ*=(f)B*=(f1,...,fN)B* …(27) Any original upper N-dimensional vector space V * γ * = (γ 1 *, ..., γ N *) ∈V * is basis vector b i * (i = 1, ..., N) and f Using i ∈ F q (i = 1, ..., N), it can be expressed additively as follows for convenience (convenient additive expression).
γ * = Σ i = 1 N f i・ b i * (25)
From equation (19), equation (25) is expressed in a multiplicative manner as follows.
Figure 2013105065
An arbitrary element γ * on the N-dimensional vector space V * is expressed as follows using a base B * and a vector f = (f 1 ,..., F N ).
γ * = (f ) B * = (f 1 , ..., f N ) B * … (27)

式(2)(3)(20)より、γ=(d)B=(γ1,...,γN)=(d1,...,dN)B∈V,γ*=(f)B*=(γ1 *,...,γN *)= (f1,...,fN)B*∈V*について、以下の関係が成り立つ。
eN(γ, γ*)=eN(b1, b1 *)d1・f1・...・eN(bN, bN *)dN・fN
=gT (d1・f1+...+dN・fN)
=gT d→・f→ …(28)
From equations (2) (3) (20), γ = (d ) B = (γ 1 , ..., γ N ) = (d 1 , ..., d N ) B ∈V, γ * = (f ) B * = (γ 1 * , ..., γ N * ) = (f 1 , ..., f N ) B * ∈V *
e N (γ, γ * ) = e N (b 1 , b 1 * ) d1 ・ f1・ ... ・ e N (b N , b N * ) dN ・ fN
= g T (d1 ・ f1 + ... + dN ・ fN)
= g T d → ・ f → … (28)

〔概要〕
次に、実施形態の概要を説明する。
実施形態のセキュリティシステムは、パラメータ生成装置、第1復号装置、第2復号装置、難読化装置、暗号化装置及び再暗号化装置を有する。
〔Overview〕
Next, an outline of the embodiment will be described.
The security system of the embodiment includes a parameter generation device, a first decryption device, a second decryption device, an obfuscation device, an encryption device, and a re-encryption device.

パラメータ生成装置は、セキュリティシステム全体に共通なシステムパラメータを生成する機能、及び、生成したシステムパラメータを出力する機能を有する。
パラメータ生成装置は、1sec(sec個の1)を入力として、セキュリティパラメータsecに対応する双線型写像パラメータparamV=(q, g, G, GT, eN),正則行列X=(χi,j),基底B=(b1,...,bN),B*=(b1 *,...,bN *)(N=n+μ)を生成する。パラメータ生成装置は、双線型写像パラメータparamVを記憶部に記憶する。
パラメータ生成装置は、n+μ個の基底ベクトルbi∈Gn+μ(i=1,...,n+μ)の一部であるΓ個の基底ベクトルbι(1),...,bι(Γ)からなるB^=(bι(1),...,bι(Γ))を生成する。ただし、{ι(1),...,ι(Γ)}⊂{1,...,n+μ}、n+1≦Γ<n+μである。例えば、μ=2・n+2であり、Γ=n+2であり、{ι(n+3),...,ι(3・n+2)}⊂{1,...,3・n+2}であり、B^=(bι(1),...,bι(n+2))である。より具体的な例を挙げると、B^=(b1,...,bn,b2・n+1,b3・n+2)である。
パラメータ生成装置は、以下のシステムパラメータcrsを公開パラメータとして出力する。
crs=(paramV, B^) …(29)
The parameter generation device has a function of generating system parameters common to the entire security system and a function of outputting the generated system parameters.
The parameter generator receives 1 sec (sec 1) as an input, bilinear mapping parameter param V = (q, g, G, G T , e N ) corresponding to security parameter sec, regular matrix X = (χ i, j ), basis B = (b 1 , ..., b N ), B * = (b 1 * , ..., b N * ) (N = n + μ). The parameter generation device stores the bilinear mapping parameter param V in the storage unit.
The parameter generator uses Γ basis vectors b ι (1) ,... That are part of n + μ basis vectors b i ∈G n + μ (i = 1, ..., n + μ). Generate B ^ = (b ι (1) , ..., b ι (Γ) ) consisting of., b ι (Γ) . However, {ι (1), ..., ι (Γ)} ⊂ {1, ..., n + μ}, n + 1 ≦ Γ <n + μ. For example, μ = 2 · n + 2, Γ = n + 2, {ι (n + 3), ..., ι (3 · n + 2)} ⊂ {1, ..., 3 N + 2} and B ^ = (b ι (1) , ..., b ι (n + 2) ). To give a more specific example, B ^ = (b 1 ,..., B n , b 2 · n + 1 , b 3 · n + 2 ).
The parameter generation device outputs the following system parameters crs as public parameters.
crs = (param V , B ^)… (29)

第1復号装置は、公開鍵と秘密鍵を生成する機能、公開鍵と秘密鍵を記憶部に記憶する機能、及び、公開鍵を出力する機能を有する。第1復号装置は、システムパラメータcrsを入力とし、a(1), b(1), c(1), τ(1)∈Fq ×を選択して秘密鍵sk(1)=(a(1), b(1), c(1), τ(1))及び公開鍵pk(1)=(h(1)=gτ(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1)=c(1)・τ(1)・B^)を生成する。秘密鍵sk(1)及び公開鍵pk(1)は第1復号装置の記憶部に記憶され、公開鍵pk(1)は任意の装置に送信可能とされる。
B(1)=c(1)・τ(1)・B^は、巡回群Gの元を要素とするベクトル単位の演算結果を表し、便宜上、加法的に表現されている(便宜的加法表現)。
式(16)より、B(1)=c(1)・τ(1)・B^を乗法的に表記すると以下のようになる。これはB^とc(1),τ(1)とから計算可能である。
B(1)=((gc(1)・τ(1)・χi,j)i,j) …(30)
ただし、i∈{ι(1),...,ι(Γ)}⊂{1,...,n+μ},j∈{1,...,n+μ}である。
The first decryption device has a function of generating a public key and a secret key, a function of storing the public key and the secret key in a storage unit, and a function of outputting the public key. The first decryption device receives the system parameter crs as input, selects a (1), b (1), c (1), τ (1) ∈F q × and selects the secret key sk (1) = (a ( 1), b (1), c (1), τ (1)) and public key pk (1) = (h (1) = g τ (1) , h (1) a (1) , h (1 ) b (1) , h (1) c (1) , B (1) = c (1) · τ (1) · B ^) are generated. The secret key sk (1) and the public key pk (1) are stored in the storage unit of the first decryption device, and the public key pk (1) can be transmitted to any device.
B (1) = c (1) ・ τ (1) ・ B ^ represents the operation result in vector units with elements of the cyclic group G as elements, and is expressed additively for convenience (convenient additive expression) ).
From equation (16), B (1) = c (1) · τ (1) · B ^ is expressed in a multiplicative manner as follows. This can be calculated from B ^, c (1), and τ (1).
B (1) = ((g c (1) ・ τ (1) ・ χi, j ) i, j )… (30)
However, i∈ {ι (1), ..., ι (Γ)} ⊂ {1, ..., n + μ}, j∈ {1, ..., n + μ}.

第2復号装置は、公開鍵と秘密鍵を生成する機能、公開鍵と秘密鍵を記憶部に記憶する機能、及び、公開鍵を出力する機能を有する。第2復号装置は、システムパラメータcrsを入力とし、a(2), b(2), c(2), τ(2)∈Fq ×を選択して秘密鍵sk(2)=(a(2), b(2), c(2), τ(2))及び公開鍵pk(2)=(h(2)=gτ(2), h(2)a(2), h(2)b(1), h(2)c(1), B(2)=c(2)・τ(2)・B^)を生成する。秘密鍵sk(2)及び公開鍵pk(2)は第2復号装置の記憶部に記憶され、公開鍵pk(2)は任意の装置に送信可能とされる。
B(2)=c(2)・τ(2)・B^は、巡回群Gの元を要素とするベクトル単位の演算結果を表し、便宜上、加法的に表現されている(便宜的加法表現)。
式(16)より、B(2)=c(2)・τ(2)・B^を乗法的に表記すると以下のようになる。これはB^とc(2),τ(2)とから計算可能である。
B(2)=((gc(2)・τ(2)・χi,j)i,j) …(31)
ただし、i∈{ι(1),...,ι(Γ)}⊂{1,...,n+μ},j∈{1,...,n+μ}である。
The second decryption device has a function of generating a public key and a secret key, a function of storing the public key and the secret key in a storage unit, and a function of outputting the public key. The second decryption apparatus receives the system parameter crs as input, selects a (2), b (2), c (2), τ (2) ∈F q × and selects the secret key sk (2) = (a ( 2), b (2), c (2), τ (2)) and public key pk (2) = (h (2) = g τ (2) , h (2) a (2) , h (2 ) b (1) , h (2) c (1) , B (2) = c (2) ・ τ (2) ・ B ^) are generated. The secret key sk (2) and the public key pk (2) are stored in the storage unit of the second decryption device, and the public key pk (2) can be transmitted to any device.
B (2) = c (2) ・ τ (2) ・ B ^ represents the result of vector unit operation with elements of cyclic group G as elements, and is expressed additively for convenience (convenient additive expression) ).
From equation (16), B (2) = c (2) · τ (2) · B ^ is multiplicatively expressed as follows. This can be calculated from B ^, c (2), and τ (2).
B (2) = ((g c (2) ・ τ (2) ・ χi, j ) i, j )… (31)
However, i∈ {ι (1), ..., ι (Γ)} ⊂ {1, ..., n + μ}, j∈ {1, ..., n + μ}.

難読化装置は、第1復号装置の秘密鍵sk(1)、第2復号装置の公開鍵pk(2)、n次元ベクトルv=(vι(1),...,vι(n))∈Fq n、及びシステムパラメータ生成時に生成された正則行列Xを入力とし、再暗号化鍵Obf(rk1→2)を生成する機能を有する。なお、正則行列Xは秘密情報であるため、パラメータ生成装置と難読化装置が同一であるか、難読化装置が何らかの安全な手段(専用回線や記録媒体を介した情報伝達等)を用いてパラメータ生成装置から正則行列Xを取得する必要がある。同様に秘密鍵sk(1)は秘密情報であるため、難読化装置が何らかの安全な手段を用いて第1復号装置から秘密鍵sk(1)を取得する必要がある。 The obfuscation device has a secret key sk (1) of the first decryption device, a public key pk (2) of the second decryption device, an n-dimensional vector v = (v ι (1) , ..., v ι (n ) ) ∈F q n and a regular matrix X generated at the time of system parameter generation, and a function of generating a re-encryption key Obf (rk 1 → 2 ). Since the regular matrix X is confidential information, the parameter generation device and the obfuscation device are the same, or the obfuscation device uses some safe means (information transmission via a dedicated line or recording medium, etc.) It is necessary to obtain the regular matrix X from the generator. Similarly, since the secret key sk (1) is secret information, it is necessary for the obfuscation device to acquire the secret key sk (1) from the first decryption device using some secure means.

難読化装置は、sk(1)=(a(1), b(1), c(1), τ(1))、pk(2)=(h(2)=gτ(2), h(2)a(2), h(2)b(1), h(2)c(1), B(2)=c(2)・τ(2)・B^)、v=(vι(1),...,vι(n))∈Fq n、及び正則行列Xを入力として、Z1=(h(2)a(2))z/a(1), Z2=(h(2)b(2))z/b(1), Z3=h(2)z, k0=h(2)ρ, k*=(RV)B(1,2)*を含む再暗号化鍵Obf(rk1→2)を生成する。
RVはn+μ次元ベクトルRV=(RVι(1),...,RVι(n+μ))∈Fq n+μであり、z, ρ, σ∈Fq ×は乱数であり、B(1,2)*=(ρ/c(1))・c(2)・τ(2)・B*であり、ι(i)∈{1,...,n+μ}(i=1,...,n+μ)であり、{ι(1),...,ι(n)}⊂{1,...,n+μ}であり、(RVι(1),..., RVι(n))はn次元ベクトルσ・v=(σ・vι(1),...,σ・vι(n))であり、何れか1個のRVκ∈{RVι(n+1),...,RVι(Γ)}が1∈Fqである。例えば、RVが3・n+2次元ベクトルRV=(RVι(1),...,RVι(3・n+2))であり、1個のRVκ∈{RVι(n+1), RVι(n+2)}が1∈Fqであり、RVκ以外の1個のRVφ∈{RVι(n+1), RVι(n+2)}が0∈Fqであり、n個のRVε(1),...,RVε(n)∈{RVι(n+3),...,RVι(3・n+2)}が乱数ηε(1),...,ηε(n)∈Fqであり、RVε(1),...,RVε(n)以外のn個のRVυ(1),...,RVυ(n)∈{RVι(n+3),...,RVι(3・n+2)}のそれぞれが0∈Fqである。これによりより高い安全性を確保できる。より具体的な例を挙げると、v=(v1,...,vn),(RV1,..., RVn)=(σ・v1,...,σ・vn)=σ・v,(RVn+1,...,RV2・n)=(0,...,0)=0n,RV2・n+1=1,(RV2・n+2,...,RV3・n+1)=(η2・n+2,...,η3・n+1)=η∈Fq n,RV3・n+2=0であり、RVの例は以下である。
RV=(σ・v,0n,1,η,0)∈Fq 3・n+2 …(32)
The obfuscation device is sk (1) = (a (1), b (1), c (1), τ (1)), pk (2) = (h (2) = g τ (2) , h (2) a (2) , h (2) b (1) , h (2) c (1) , B (2) = c (2) ・ τ (2) ・ B ^), v = (v ι (1) , ..., v ι (n) ) ∈F q n and regular matrix X as inputs, Z 1 = (h (2) a (2) ) z / a (1) , Z 2 = (h (2) b (2) ) z / b (1) , Z 3 = h (2) z , k 0 = h (2) ρ , k * = (RV ) B (1,2) * A re-encryption key Obf (rk 1 → 2 ) including is generated.
RV is an n + μ dimensional vector RV = (RV ι (1) , ..., RV ι (n + μ) ) ∈F q n + μ , z, ρ, σ∈F q × are random numbers And B (1,2) * = (ρ / c (1)) ・ c (2) ・ τ (2) ・ B * and ι (i) ∈ {1, ..., n + μ } (i = 1, ..., n + μ) and {ι (1), ..., ι (n)} ⊂ {1, ..., n + μ} and (RV ι (1) , ..., RV ι (n) ) is an n-dimensional vector σ · v = (σ · v ι (1) , ..., σ · v ι (n) ), any one RV κ ∈ {RV ι (n + 1) , ..., RV ι (Γ) } is 1∈F q . For example, RV is a 3 · n + 2 dimensional vector RV = (RV ι (1) , ..., RV ι (3 · n + 2) ), and one RV κ ∈ {RV ι (n +1) , RV ι (n + 2) } is 1∈F q , and one RV φ ∈ {RV ι (n + 1) , RV ι (n + 2) } other than RV κ is 0∈ F q and n RV ε (1) , ..., RV ε (n) ∈ {RV ι (n + 3) , ..., RV ι (3 ・ n + 2) } are random numbers η ε (1) , ..., η ε (n) ∈F q , and n RV υ (1) , ..., other than RV ε (1) , ..., RV ε (n) Each of RV υ (n) ∈ {RV ι (n + 3) ,..., RV ι (3 · n + 2) } is 0∈F q . Thereby, higher safety can be secured. To give a more specific example, v = (v 1 , ..., v n ), (RV 1 , ..., RV n ) = (σ · v 1 , ..., σ · v n ) = σ ・ v , (RV n + 1 , ..., RV 2 ・ n ) = (0, ..., 0) = 0 n , RV 2 ・ n + 1 = 1, (RV 2 ・ n +2 , ..., RV 3 ・ n + 1 ) = (η 2 ・ n + 2 , ..., η 3 ・ n + 1 ) = η ∈F q n , RV 3 ・ n + 2 = 0 An example of RV is as follows.
RV = (σ ・ v , 0 n , 1, η , 0) ∈F q 3 ・ n + 2 (32)

B(1,2)*=(ρ/c(1))・c(2)・τ(2)・B*は、巡回群Gの元を要素とするベクトル単位の演算結果を表し、便宜上、加法的に表現されている(便宜的加法表現)。式(19)より、B(1,2)*=(ρ/c(1))・c(2)・τ(2)・B*を乗法的に表記し、変形すると以下のようになる。
B(1,2)*=((gθi,j・(ρ/c(1))・c(2)・τ(2))i,j)
=((gχi,j・c(2)・τ(2)・(ρ・θi,j /c(1)・χi,j))i,j) …(33)
B (1, 2) * = (ρ / c (1)), c (2), τ (2), B * represents the operation result in vector units with elements of the cyclic group G as elements, It is expressed additively (convenient additive expression). From equation (19), B (1,2) * = (ρ / c (1)) · c (2) · τ (2) · B * is expressed in a multiplicative manner and transformed as follows.
B (1,2) * = ((g θi, j ・ (ρ / c (1)) ・ c (2) ・ τ (2) ) i, j )
= ((g χi, j ・ c (2) ・ τ (2) ・ (ρ ・ θi, j / c (1) ・ χi, j) ) i, j )… (33)

難読化装置は、B(2)=((gc(2)・τ(2)・χi,j)i,j)(i∈{ι(1),...,ι(Γ)},j∈{1,...,n+μ})と正則行列Xを用いることで、gc(2)・τ(2)・χi’,j’=(gc(2)・τ(2)・χi,j)χi’,j’/χi,j(i≠i’,j≠j’)を計算でき、以下のB(2)’を生成できる。
B(2)’=((gχi,j・c(2)・τ(2))i,j) (i,j∈{1,...,n+μ}) …(34)
式(33)(34)より、難読化装置はB(2)’を用いてB(1,2)*を計算することができることが分かる。
The obfuscation device is B (2) = ((g c (2) · τ (2) · χ i, j ) i, j ) (i∈ {ι (1), ..., ι (Γ)}, j∈ {1, ..., n + μ}) and regular matrix X, g c (2) ・ τ (2) ・ χi ', j' = (g c (2) ・ τ (2 ) · Χi, j ) χi ′, j ′ / χi, j (i ≠ i ′, j ≠ j ′) can be calculated, and the following B (2) ′ can be generated.
B (2) '= ((g χi, j ・ c (2) ・ τ (2) ) i, j ) (i, j∈ {1, ..., n + μ})… (34)
From equations (33) and (34), it can be seen that the obfuscation device can calculate B (1,2) * using B (2) ′.

暗号化装置は、システムパラメータcrs、第1復号装置の公開鍵(h(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1))又は第2復号装置の公開鍵(h(2), h(2)a(2), h(2)b(2), h(2)c(2), B(2))、モード選択パラメータβ、n次元ベクトルx=(xι(1),...,xι(n))∈Fq n、及びメッセージm∈Gを入力とし、メッセージm∈Gの暗号文を生成する機能、及び、暗号文を出力する機能を有する。 The encryption device has system parameters crs, the public key of the first decryption device (h (1), h (1) a (1) , h (1) b (1) , h (1) c (1) , B (1)) or the public key of the second decryption device (h (2), h (2) a (2) , h (2) b (2) , h (2) c (2) , B (2)) , Mode selection parameter β, n-dimensional vector x = (x ι (1) , ..., x ι (n) ) ∈F q n and message m∈G and ciphertext of message m∈G And a function of outputting ciphertext.

暗号化装置が第1復号装置で復号可能な暗号文を生成する場合、暗号化装置は、暗号文ct(0,1)(第1暗号文)及び暗号文ct(1,1)(第2暗号文)の何れかを生成する。暗号文ct(0,1)は再暗号化可能なモード(以下「第1モード」という)の暗号文であり、暗号文ct(1,1)は再暗号化不可能なモード(以下「第2モード」という)の暗号文である。本形態の再暗号化方式は「単方向単一ホップ型」であり、第1モードの暗号文が再暗号化されると第2モードの暗号文となる。モード選択パラメータβは、第1モードであるか第2モードであるかを表す。第1モードの場合、モード選択パラメータβが第1値とされ、第2モードの場合、モード選択パラメータβが第2値(≠第1値)とされる。本形態の例では、第1値を「0」とし、第2値を「1」とする(β∈{0,1})。   When the encryption device generates a ciphertext that can be decrypted by the first decryption device, the encryption device uses the ciphertext ct (0,1) (first ciphertext) and the ciphertext ct (1,1) (second One of the ciphertexts). The ciphertext ct (0,1) is a ciphertext in a re-encryptable mode (hereinafter referred to as “first mode”), and the ciphertext ct (1,1) is a non-re-encryptable mode (hereinafter “first”). 2 mode "). The re-encryption scheme of this embodiment is a “unidirectional single-hop type”, and when the ciphertext in the first mode is re-encrypted, it becomes a ciphertext in the second mode. The mode selection parameter β represents whether the mode is the first mode or the second mode. In the first mode, the mode selection parameter β is set to the first value, and in the second mode, the mode selection parameter β is set to the second value (≠ first value). In the example of this embodiment, the first value is “0”, and the second value is “1” (β∈ {0,1}).

暗号文ct(0,1)は、W(0,1)=(h(1)a(1))r, Θ(0,1)=(h(1)b(1))s, Y(0,1)=h(1)r+s・m,U(0,1)=(CV)B(1), Λ(0,1)=h(1)ζを含む。本形態では暗号文ct(0,1)がさらに第1値のモード選択パラメータβ=0を含む例を示す。しかしながら、モード選択パラメータを用いることなく、何れのモードが用いられたかが他の装置で特定可能なのであれば、暗号文ct(0,1)がモード選択パラメータを含まなくてもよい。
CVはn+μ次元ベクトルCV=(CVι(1),...,CVι(n+μ))∈Fq n+μであり、(CVι(1),...,CVι(n))はn次元ベクトルω・x=(ω・xι(1),...,ω・xι(n))であり、r, s, ω∈Fqは乱数であり、何れか1個のCVκ∈{CVι(n+1),...,CVι(Γ)}が乱数ζ∈Fqである。CVι(n+1),...,CVι(Γ)からCVκを除いた要素からなるベクトルと上述のRVι(n+1),...,RVι(Γ)からRVκを除いた要素からなるベクトルとの内積が0となる。例えば、CVが3・n+2次元ベクトルCV=(CVι(1),...,CVι(3・n+2))であり、(CVι(1),...,CVι(n))がn次元ベクトルω・x=(ω・xι(1),...,ω・xι(n))であり、1個のCVκ∈{CVι(n+1), CVι(n+2)}が乱数ζであり、CVκ以外の1個のCVφ∈{CVι(n+1), CVι(n+2)}が暗号化装置によって選択された乱数ψ∈Fqであり、2・n個のCVι(n+3),...,CVι(3・n+2)のそれぞれが0である。これによりより高い安全性を確保できる。より具体的な例を挙げると、x=(x 1,...,x n),(CV1,...,CVn)=(ω・x1,...,ω・xn)=ω・x,(CVn+1,...,CV2・n)=(0,...,0)=0n,CV2・n+1=ζ,(CV2・n+2,...,CV3・n+1)=(0,...,0)=0n,CV3・n+2=ψであり、CVの例は例えば以下である。
CV=(ω・x,0n,ζ,0n,ψ)∈Fq 3・n+2 …(35)
The ciphertext ct (0,1) is W (0,1) = (h (1) a (1) ) r , Θ (0,1) = (h (1) b (1) ) s , Y ( 0,1) = h (1) r + s · m, U (0,1) = (CV ) B (1) , Λ (0,1) = h (1) ζ . In the present embodiment, an example is shown in which the ciphertext ct (0,1) further includes the first value mode selection parameter β = 0. However, the ciphertext ct (0, 1) does not have to include the mode selection parameter as long as it is possible to identify which mode has been used without using the mode selection parameter.
CV is an n + μ dimensional vector CV = (CV ι (1) , ..., CV ι (n + μ) ) ∈F q n + μ , and (CV ι (1) , ..., CV ι (n) ) is an n-dimensional vector ω ・ x = (ω ・ x ι (1) , ..., ω ・ x ι (n) ), and r, s, ω∈F q are random numbers Any one of CV κ ∈ {CV ι (n + 1) ,..., CV ι (Γ) } is a random number ζεF q . CV ι (n + 1) , ..., CV ι (Γ) minus CV κ vector and RV ι (n + 1) , ..., RV ι (Γ) to RV κ The dot product with a vector consisting of elements excluding is 0. For example, CV is a 3 ・ n + 2 dimensional vector CV = (CV ι (1) , ..., CV ι (3 ・ n + 2) ), and (CV ι (1) , ..., CV ι (n) ) is an n-dimensional vector ω ・ x = (ω ・ x ι (1) , ..., ω ・ x ι (n) ), and one CV κ ∈ {CV ι (n +1) , CV ι (n + 2) } is a random number ζ, and one CV φ ∈ {CV ι (n + 1) , CV ι (n + 2) } other than CV κ is obtained by the encryption device. The selected random number ψ∈F q , and each of 2 · n CV ι (n + 3) ,..., CV ι (3 · n + 2) is 0. Thereby, higher safety can be secured. To give a more specific example, x = (x 1 , ..., x n ), (CV 1 , ..., CV n ) = (ω ・ x 1 , ..., ω ・ x n ) = ω ・ x , (CV n + 1 , ..., CV 2 ・ n ) = (0, ..., 0) = 0 n , CV 2 ・ n + 1 = ζ, (CV 2 ・ n +2 ,..., CV 3 · n + 1 ) = (0,..., 0) = 0 n , CV 3 · n + 2 = ψ, and an example of CV is as follows.
CV = (ω ・ x , 0 n , ζ, 0 n , ψ) ∈F q 3 ・ n + 2 (35)

暗号文ct(1,1)は、E(1,1)=e1((h(1)a(1))r, t),F(1,1)=e1((h(1)b(1))s, t),G(1,1)=e1((h(1)r+s・m, t))・e1(t~, (h(1)c(1))ζ), Z(1,1)=t, H(1,1)=e1(t~, h(1)ζ)を含む。t, t~∈Gは乱数である。本形態では暗号文ct(1,1)がさらに第2値のモード選択パラメータβ=1を含む例を示す。しかしながら、モード選択パラメータを用いることなく、何れのモードが用いられたかが他の装置で特定可能なのであれば、暗号文ct(1,1)がモード選択パラメータを含まなくてもよい。 The ciphertext ct (1,1) is E (1,1) = e 1 ((h (1) a (1) ) r , t), F (1,1) = e 1 ((h (1) b (1) ) s , t), G (1,1) = e 1 ((h (1) r + s・ m, t)) ・ e 1 (t ~ , (h (1) c (1) ) zeta), including Z (1,1) = t, H (1,1) = e 1 (t ~, h a (1) ζ). t and t ~ ∈G are random numbers. In the present embodiment, an example is shown in which the ciphertext ct (1,1) further includes a second value mode selection parameter β = 1. However, the ciphertext ct (1,1) does not have to include the mode selection parameter as long as other devices can identify which mode is used without using the mode selection parameter.

暗号化装置が第2復号装置で復号可能な暗号文を生成する場合、暗号化装置は、第1モードの暗号文ct(0,2)及び第2モードの暗号文ct(1,2)’の何れかを生成する。
暗号文ct(0,2)は、W(0,2)=(h(2)a(2))r, Θ(0,2)=(h(2)b(2))s, Y(0,2)=h(2)r+s・m,U(0,2)=(CV)B(1), Λ(0,2)=h(2)ζを含む。本形態では暗号文ct(0,2)がさらに第1値のモード選択パラメータβ=0を含む例を示す。しかしながら、モード選択パラメータを用いることなく、何れのモードが用いられたかが他の装置で特定可能なのであれば、暗号文ct(0,2)がモード選択パラメータを含まなくてもよい。
暗号文ct(1,2)’は、E(1,2)’=e1((h(2)a(2))r, t),F(1,2)’=e1((h(2)b(2))s, t),G(1,2)’=e1((h(2)r+s・m, t))・e1(t~, (h(2)c(2))ζ), Z(1,2)’=t, H(1,2)’=e1(t~, h(2)ζ)を含む。本形態では暗号文ct(1,2)’がさらに第2値のモード選択パラメータβ=1を含む例を示す。しかしながら、モード選択パラメータを用いることなく、何れのモードが用いられたかが他の装置で特定可能なのであれば、暗号文ct(1,2)’がモード選択パラメータを含まなくてもよい。
When the encryption device generates a ciphertext that can be decrypted by the second decryption device, the encryption device uses the first mode ciphertext ct (0,2) and the second mode ciphertext ct (1,2) ′. One of the above is generated.
The ciphertext ct (0,2) is W (0,2) = (h (2) a (2) ) r , Θ (0,2) = (h (2) b (2) ) s , Y ( 0,2) = h (2) r + s · m, U (0,2) = (CV ) B (1) , Λ (0,2) = h (2) ζ . In the present embodiment, an example is shown in which the ciphertext ct (0,2) further includes the first value mode selection parameter β = 0. However, the ciphertext ct (0, 2) does not have to include the mode selection parameter as long as it is possible to identify which mode has been used without using the mode selection parameter.
The ciphertext ct (1,2) 'is E (1,2)' = e 1 ((h (2) a (2) ) r , t), F (1,2) '= e 1 ((h (2) b (2) ) s , t), G (1,2) '= e 1 ((h (2) r + s・ m, t)) ・ e 1 (t ~ , (h (2) c (2)) ζ), Z (1,2) '= t, H (1,2)' = e 1 (t ~, including h (2) ζ). In the present embodiment, an example is shown in which the ciphertext ct (1,2) ′ further includes the second value mode selection parameter β = 1. However, the ciphertext ct (1,2) ′ does not have to include the mode selection parameter as long as other devices can identify which mode is used without using the mode selection parameter.

再暗号化装置は、第1復号装置の公開鍵pk(1)=(h(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1))、暗号文ct(0,1)、及び再暗号化鍵Obf(rk1→2)を入力とし、第2復号装置が復号可能な暗号文ct(1,2)(再暗号文)を生成する機能、及び、暗号文ct(1,2)を出力する機能を有する。
再暗号化装置は、乱数r’, s’, ζ’∈Fqを用い、W’=W(0,1)・(h(1)a(1))r’, Θ’=Θ(0,1)・(h(1)b(1))s’, Y’=Y(0,1)・h(1)r’+s’, U’=U(0,1)+(REV)B(1), Λ’=Λ(0,1)・h(1)ζ’を得、Ψ1=e1(W’,Z1), Ψ2=e1(Θ’,Z2), Ψ3=e1(Y’,Z3), Ω1=en+μ(U’,k*), Ω2=e1(Λ’,k0)を得、乱数y, y’∈Fq ×に対するE(1,2)=Ψ1 y, F(1,2)=Ψ2 y, G(1,2)=Ψ3 y・Ω1 y’, Z(1,2)=Z3 y, H(1,2)=Ω2 y’を含む暗号文ct(1,2)を生成する。REVはn+μ次元ベクトルREV=(REVι(1),...,REVι(n+μ))∈Fq n+μであり、何れか1個のREVκ∈{REVι(1),...,REVι(n+μ)}が乱数ζ’であり、REVκを除くREVι(1),...,REVι(n+μ)が0∈Fqである。例えば、REVは3・n+2次元ベクトルREV=(REVι(1),...,REVι(3・n+2))∈Fq n+μであり、何れか1個のREVκ∈{REVι(1),...,REVι(3・n+2)}が乱数ζ’であり、REVκを除くREVι(1),...,REVι(3・n+2)が0∈Fqである。より具体的な例を挙げると、(REV1,...,REV2・n)=(0,...,0)=02・n,REV2・n+1=ζ’ ,(REV2・n+2,...,REV3・n+2)=(0,...,0)=0n+1であり、REVの例は以下である。
REV=(0n,0n,ζ’,0n,0)∈Fq 3・n+2 …(36)
前述のように、暗号文ct(1,2)は第2モードの暗号文となる。本形態では暗号文ct(1,2)がさらに第2値のモード選択パラメータβ=1を含む例を示す。しかしながら、モード選択パラメータを用いることなく、何れのモードが用いられたかが他の装置で特定可能なのであれば、暗号文ct(1,2)がモード選択パラメータを含まなくてもよい。
The re-encryption device has the public key pk (1) = (h (1), h (1) a (1) , h (1) b (1) , h (1) c (1) of the first decryption device , B (1)), ciphertext ct (0,1), and re-encryption key Obf (rk 1 → 2 ) as input, ciphertext ct (1,2) (re-encoded by the second decryption device) A ciphertext) and a ciphertext ct (1,2) output function.
The re-encryption device uses random numbers r ′, s ′, ζ′∈F q , and W ′ = W (0,1) · (h (1) a (1) ) r ′ , Θ ′ = Θ (0 , 1) ・ (h (1) b (1) ) s' , Y '= Y (0,1) ・ h (1) r' + s' , U '= U (0,1) + (REV ) B (1) , Λ '= Λ (0,1) ・ h (1) ζ' , Ψ 1 = e 1 (W ', Z 1 ), Ψ 2 = e 1 (Θ', Z 2 ) , Ψ 3 = e 1 (Y ', Z 3 ), Ω 1 = e n + μ (U', k * ), Ω 2 = e 1 (Λ ', k 0 ), random numbers y, y'∈ E (1,2) = Ψ 1 y , F (1,2) = Ψ 2 y , G (1,2) = Ψ 3 y・ Ω 1 y ' , Z (1,2) = Z for F q × 3 Generates ciphertext ct (1,2) including y , H (1,2) = Ω 2 y ′ . REV is an n + μ-dimensional vector REV = (REV ι (1) , ..., REV ι (n + μ) ) ∈F q n + μ , and any one REV κ ∈ {REV ι (1) , ..., REV ι (n + μ) } is a random number ζ ', and REV ι (1) , ..., REV ι (n + μ) excluding REV κ is 0∈F q is there. For example, REV is a 3 · n + 2 dimensional vector REV = (REV ι (1) , ..., REV ι (3 · n + 2) ) ∈F q n + μ , one of which REV kappa ∈ a {REV ι (1), ... , REV ι (3 · n + 2)} is a random number ζ ', REV ι (1) excluding the REV κ, ..., REV ι ( 3 · n + 2) is 0∈F q . To give a more specific example, (REV 1 , ..., REV 2 · n ) = (0, ..., 0) = 0 2 · n , REV 2 · n + 1 = ζ ′, (REV 2 · n + 2 , ..., REV 3 · n + 2 ) = (0, ..., 0) = 0 n + 1 , and an example of REV is as follows.
REV = (0 n , 0 n , ζ ′, 0 n , 0) ∈F q 3 · n + 2 (36)
As described above, the ciphertext ct (1,2) is the ciphertext in the second mode. In this embodiment, an example is shown in which the ciphertext ct (1,2) further includes a second value mode selection parameter β = 1. However, the ciphertext ct (1, 2) does not have to include the mode selection parameter as long as it is possible to identify which mode was used without using the mode selection parameter.

第1復号装置は、さらに、入力暗号文を復号して復号値m’を得る機能、及び、復号値m’を出力する機能を有する。第1復号装置は、入力暗号文として暗号文ct(0,1)(第1値を表すモード選択パラメータβ=0を含む入力暗号文)が得られた場合にm’=Y(0,1)/(W(0,1)1/a(1)・Θ(0,1)1/b(1))を復号値として得る。第1復号装置は、入力暗号文として暗号文ct(1,1)(第2値を表すモード選択パラメータβ=1を含む入力暗号文)が得られた場合にe1(m’, Z(1,1))=G(1,1)/{H(1,1)c(1)・E(1,1)1/a(1)・F(1,1)1/b(1)}を満たすm’∈Gを復号値として得る。e1(m’, Z(1,1))=G(1,1)/{H(1,1)c(1)・E(1,1)1/a(1)・F(1,1)1/b(1)}を満たすm’∈Gの探索は、例えば、有限体Gの元を全数探索することによって行われる。 The first decryption device further has a function of decrypting the input ciphertext to obtain a decrypted value m ′ and a function of outputting the decrypted value m ′. When the ciphertext ct (0,1) (the input ciphertext including the mode selection parameter β = 0 representing the first value) is obtained as the input ciphertext, the first decryption device m ′ = Y (0,1 ) / (W (0,1) 1 / a (1) · Θ (0,1) 1 / b (1) ) is obtained as a decoded value. When the ciphertext ct (1,1) (the input ciphertext including the mode selection parameter β = 1 representing the second value) is obtained as the input ciphertext, the first decryption device e 1 (m ′, Z ( 1,1)) = G (1,1) / {H (1,1) c (1)・ E (1,1) 1 / a (1)・ F (1,1) 1 / b (1) } Is obtained as a decrypted value. e 1 (m ', Z (1,1)) = G (1,1) / {H (1,1) c (1)・ E (1,1) 1 / a (1)・ F (1, 1) The search for m′∈G that satisfies 1 / b (1) } is performed by, for example, searching all elements of the finite field G.

第2復号装置も、さらに、入力暗号文を復号して復号値m’を得る機能、及び、復号値m’を出力する機能を有する。第2復号装置は、入力暗号文として暗号文ct(0,2)(第1値を表すモード選択パラメータβ=0を含む入力暗号文)が得られた場合にm’=Y(0,2)/(W(0,2)1/a(2)・Θ(0,2)1/b(2))を復号値として得る。第2復号装置は、入力暗号文として暗号文ct(1,2)(第2値を表すモード選択パラメータβ=1を含む入力暗号文)が得られた場合にe1(m’, Z(1,2))=G(1,2)/{H(1,2)c(2)・E(1,2)1/a(2)・F(1,2) 1/b(2)}を満たすm’∈Gを復号値として得る。e1(m’, Z(1,2))=G(1,2)/{H(1,2)c(2)・E(1,2)1/a(2)・F(1,2) 1/b(2)}を満たすm’∈Gの探索は、例えば、有限体Gの元を全数探索することによって行われる。暗号文ct(1,2)’が得られた場合も同様に、第2復号装置は、e1(m’, Z(1,2)’)=G(1,2)’/{H(1,2)’c(2)・E(1,2)’1/a(2)・F(1,2)’1/b(2)}を満たすm’∈Gを復号値として得る。 The second decryption device also has a function of decrypting the input ciphertext to obtain a decrypted value m ′ and a function of outputting the decrypted value m ′. When the ciphertext ct (0,2) (the input ciphertext including the mode selection parameter β = 0 representing the first value) is obtained as the input ciphertext, the second decryption device m ′ = Y (0,2 ) / (W (0,2) 1 / a (2) · Θ (0,2) 1 / b (2) ) is obtained as a decoded value. When the ciphertext ct (1,2) (the input ciphertext including the mode selection parameter β = 1 representing the second value) is obtained as the input ciphertext, the second decryption device e 1 (m ′, Z ( 1,2)) = G (1,2) / {H (1,2) c (2)・ E (1,2) 1 / a (2)・ F (1,2) 1 / b (2) } Is obtained as a decrypted value. e 1 (m ', Z (1,2)) = G (1,2) / (H (1,2) c (2)・ E (1,2) 1 / a (2)・ F (1, 2) The search for m′∈G that satisfies 1 / b (2) } is performed by, for example, searching all elements of the finite field G. Similarly, when the ciphertext ct (1,2) ′ is obtained, the second decryption device e 1 (m ′, Z (1,2) ′) = G (1,2) ′ / {H ( 1, 2) ′ c (2) · E (1,2) ′ 1 / a (2) · F (1,2) ′ 1 / b (2) } m′∈G satisfying the condition is obtained as a decoded value.

<復号結果の導出>
以下に復号結果の導出を行う。
[再暗号化前の暗号文ct(0,1)の場合]
以下より正しい復号値が得られることが分かる。
m’=Y(0,1)/(W(0,1)1/a(1)・Θ(0,1)1/b(1))
=h(1)r+s・m/h(1)(r+s)
=m
[再暗号化前の暗号文ct(1,1)の場合]
式(3)より、復号時の探索用の式には以下の関係が成り立つ。
e1(m’, Z(1,1))=e1(m’, t)
G(1,1)/{H(1,1)c(1)・E(1,1)1/a(1)・F(1,1)1/b(1)}
=e1((h(1)r+s・m, t))・e1(t~, (h(1)c(1))ζ)/{e1(t~, h(1)ζ)c(1)・e1((h(1)a(1))r, t)1/a(1)・e1((h(1)b(1))s, t)1/b(1)}
=e1((m, t))・e1(h(1), t)(r+s)・e1(t~, h(1))c(1)・ζ/{e1(t~, h(1))c(1)・ζ・e1(h(1), t)(r+s)}
=e1((m, t))
したがって、正しい復号値が得られることが分かる。
同様に、再暗号化前の暗号文ct(0,2), ct(1,2)’についても正しく復号値が得られることが分かる。
<Derivation of decryption result>
Decoding results are derived below.
[For ciphertext ct (0,1) before re-encryption]
From the following, it can be seen that a correct decoded value can be obtained.
m '= Y (0,1) / (W (0,1) 1 / a (1)・ Θ (0,1) 1 / b (1) )
= h (1) r + s・ m / h (1) (r + s)
= m
[For ciphertext ct (1,1) before re-encryption]
From equation (3), the following relationship holds for the equation for search at the time of decoding.
e 1 (m ', Z (1,1)) = e 1 (m', t)
G (1,1) / {H (1,1) c (1)・ E (1,1) 1 / a (1)・ F (1,1) 1 / b (1) }
= e 1 ((h (1) r + s・ m, t)) ・ e 1 (t ~ , (h (1) c (1) ) ζ ) / (e 1 (t ~ , h (1) ζ ) c (1)・ e 1 ((h (1) a (1) ) r , t) 1 / a (1)・ e 1 ((h (1) b (1) ) s , t) 1 / b (1) }
= e 1 ((m, t)) ・ e 1 (h (1), t) (r + s)・ e 1 (t ~ , h (1)) c (1) ・ ζ / {e 1 (t ~ , h (1)) c (1) ・ ζ・ e 1 (h (1), t) (r + s) }
= e 1 ((m, t))
Therefore, it can be seen that a correct decoded value can be obtained.
Similarly, it can be seen that decrypted values can be obtained correctly for the ciphertexts ct (0,2) and ct (1,2) ′ before re-encryption.

[再暗号化によって得られた暗号文ct(1,2)の場合]
式(2)より、暗号文ct(1,2)が含むE(1,2)は以下のように変形できる。
E(1,2)=e1((gτ(1)・a(1))r・(gτ(1)・a(1))r’,(gτ(2)・a(2))z/a(1))y
=e1(gτ(1)・(r+r’),gτ(2)・a(2)・z)y
=e1(g(τ(1)/τ(2))・τ(2)・a(2)・(r+r’),gτ(2)・y・z)
=e1(h(2)(τ(1)/τ(2))・a(2)・(r+r’), h(2)y・z) …(37)
L=τ(2)/τ(1),r-=(r+r’)/L及びt-=h(2)y・zとおくと、式(37)は以下のように表記できる。
E(1,2)=e1(h(2)a(2)・r-, t-) …(38)
ただし、上付き添え字の「r-」は「r-」を表す。
[For ciphertext ct (1,2) obtained by re-encryption]
From equation (2), E (1,2) included in the ciphertext ct (1,2) can be modified as follows.
E (1,2) = e 1 ((g τ (1) ・ a (1) ) r・ (g τ (1) ・ a (1) ) r ' , (g τ (2) ・ a (2) ) z / a (1) ) y
= e 1 (g τ (1) ・ (r + r ') , g τ (2) ・ a (2) ・ z ) y
= e 1 (g (τ (1) / τ (2)) ・ τ (2) ・ a (2) ・ (r + r ') , g τ (2) ・ y ・ z )
= e 1 (h (2) (τ (1) / τ (2)) ・ a (2) ・ (r + r ') , h (2) y ・ z )… (37)
If L = τ (2) / τ (1), r = (r + r ′) / L and t = h (2) y · z , then expression (37) can be expressed as follows.
E (1,2) = e 1 ( h (2) a (2) · r-, t -) ... (38)
However, "r-" in the superscript represents - "r".

式(2)より、暗号文ct(1,2)が含むF(1,2)は以下のように変形できる。
F(1,2)=e1((gτ(1)・b(1))s・(gτ(1)・b(1))s’,(gτ(2)・b(2))z/b(1))y
=e1(gτ(1)・(s+s’),gτ(2)・b(2)・z)y
=e1(gτ(1)・b(2)・(s+s’),gτ(2)・y・z)
=e1(g(τ(1)/τ(2))・τ(2)・b(2)・(s+s’),gτ(2)・y・z)
=e1(h(2)b(2)・(τ(1)/τ(2))・(s+s’), h(2)y・z) …(39)
L=τ(2)/τ(1),s-=(s+s’)/L及びt-=h(2)y・zとおくと、式(39)は以下のように表記できる。
F(1,2)=e1(h(2)b(2)・s-, t-) …(40)
ただし、上付き添え字の「s-」は「s-」を表す。
From Equation (2), F (1,2) included in the ciphertext ct (1,2) can be modified as follows.
F (1,2) = e 1 ((g τ (1) ・ b (1) ) s・ (g τ (1) ・ b (1) ) s' , (g τ (2) ・ b (2) ) z / b (1) ) y
= e 1 (g τ (1) ・ (s + s') , g τ (2) ・ b (2) ・ z ) y
= e 1 (g τ (1) ・ b (2) ・ (s + s') , g τ (2) ・ y ・ z )
= e 1 (g (τ (1) / τ (2)) ・ τ (2) ・ b (2) ・ (s + s') , g τ (2) ・ y ・ z )
= e 1 (h (2) b (2) ・ (τ (1) / τ (2)) ・ (s + s') , h (2) y ・ z )… (39)
If L = τ (2) / τ (1), s = (s + s ′) / L and t = h (2) y · z , then equation (39) can be expressed as follows.
F (1,2) = e 1 ( h (2) b (2) · s-, t -) ... (40)
However, "s-" in the superscript represents - the "s".

式(2)(21)(28)(30)(33)より、暗号文ct(1,2)が含むG(1,2)は以下のように変形できる。
G(1,2)
=e1(gτ(1)・(r+s)・m・gτ(1)・(r’+s’), gτ(2)・z)y・en+μ((CV+REV)B(1), (RV)B(1,2)*)y’
=e1(gτ(1)・(r+s+r’+s’)・m,gτ(2)・z)y・en+μ((c(1)・τ(1)・CV’)B, ((ρ/c(1))・c(2)・τ(2)・RV)B*)y’
=e1(h(2)(τ(1)/τ(2))・(r+s+r’+s’)・m,h(2)y・z)・e1(g,g)c(2)・τ(1)・τ(2)・ρ・y’・(CV’→・RV→)…(41)
ただし、上付き添え字の「CV’→」は「CV’」を表し、「RV→」は「RV」を表す。CV’はCV’=CV+REVを満たすn+μ次元ベクトルである。n+μ次元ベクトルCVが含む1個の要素CVκ=ζをζ+ζ’に置換したものがCV’となる。
ここで、RV=(RVι(1),...,RVι(n+μ))を構成する(RVι(1),..., RVι(n))がn次元ベクトルσ・v=(σ・vι(1),...,σ・vι(n))であり、1個のRVκが1である。CV=(CVι(1),...,CVι(n+μ))を構成する(CVι(1),...,CVι(n))がn次元ベクトルω・x=(ω・xι(1),...,ω・xι(n))であり、1個のCVκがζである。(CVι(n+1),...,CVι(Γ))からCVκを除いた要素からなるベクトルとRV=(RVι(n+1),...,RVι(Γ))からRVκを除いた要素からなるベクトルとの内積が0となる。そのため、CV’・RV=ζ+ζ’+ω・σ・x・vとなる。式(32)(35)(36)の具体例を用いて導出すると以下のようになる。
CV’=(ω・x,0n,ζ+ζ’,0n,ψ)
CV’・RV=(ω・x,0n,ζ+ζ’,0n,ψ)・(σ・v,0n,1,η,0)
=ζ+ζ’+ω・σ・x・v
したがって式(41)は以下のように変形できる。
G(1,2)
=e1(h(2)(τ(1)/τ(2))・(r+s+r’+s’)・m,h(2)y・z)・e1(g,g)c(2)・τ(1)・τ(2)・ρ・y’・(ζ+ζ’+ω・σ・x→・v→)
=e1(h(2)(τ(1)/τ(2))・(r+s+r’+s’)・m,h(2)y・z)・e1(h(1)L・ρ・y’, h(2)c(2)・(ζ+ζ’+ω・σ・x→・v→)/L) …(42)
ここで、L=τ(2)/τ(1),ζ-=(ζ+ζ’)/L,ν=(ω・σ・x・v)/L,r-=(r+r’)/L,s-=(s+s’)/L,t-=h(2)y・z及びt-’=h(1)L・ρ・y’とおくと、式(42)は以下のように表記できる。
G(1,2)=e1(h(2)((r-)+(s-))・m,t-)・e1(t-’, h(2)c(2)・((ζ-)+ν)) …(43)
ただし、上付き添え字の「r-」は「r-」を表し、「s-」は「s-」を表し、「ζ-」は「ζ-」を表す。
From equations (2), (21), (28), (30), and (33), G (1,2) included in the ciphertext ct (1,2) can be modified as follows.
G (1,2)
= e 1 (g τ (1) ・ (r + s)・ m ・ g τ (1) ・ (r '+ s') , g τ (2) ・ z ) y・ e n + μ ((CV + REV ) B (1) , (RV ) B (1,2) * ) y '
= e 1 (g τ (1) ・ (r + s + r '+ s')・ m, g τ (2) ・ z ) y・ e n + μ ((c (1) ・ τ (1) ・CV ' ) B , ((ρ / c (1)) ・ c (2) ・ τ (2) ・ RV ) B * ) y'
= e 1 (h (2) (τ (1) / τ (2)) ・ (r + s + r '+ s')・ m, h (2) y ・ z ) ・ e 1 (g, g) c (2) ・ τ (1) ・ τ (2) ・ ρ ・ y '・ (CV' → ・ RV →) … (41)
However, of the superscript "CV '→" is "CV' represents a →", "RV →" represents "RV →". CV ′ is an n + μ-dimensional vector that satisfies CV ′ = CV + REV . CV ′ is obtained by replacing one element CV κ = ζ included in the n + μ-dimensional vector CV with ζ + ζ ′.
Where RV = (RV ι (1) , ..., RV ι (n + μ ) ) is an n-dimensional vector σ (RV ι (1) , ..., RV ι (n) ) V = (σ · v ι (1) , ..., σ · v ι (n) ), and one RV κ is 1. CV = (CV ι (1) , ..., CV ι (n + μ) ) (CV ι (1) , ..., CV ι (n) ) is an n-dimensional vector ω ・ x = (ω · x ι (1) , ..., ω · x ι (n) ), and one CV κ is ζ. A vector consisting of the elements of (CV ι (n + 1) , ..., CV ι (Γ) ) minus CV κ and RV = (RV ι (n + 1) , ..., RV ι (Γ ) ) The inner product with the vector consisting of the elements excluding RV κ is 0. Therefore, CV ′ · RV = ζ + ζ ′ + ω · σ · x · v . It is as follows when it derives using the specific example of Formula (32) (35) (36).
CV ' = (ω ・ x , 0 n , ζ + ζ', 0 n , ψ)
CV ' ・ RV = (ω ・ x , 0 n , ζ + ζ ′, 0 n , ψ) ・ (σ ・ v , 0 n , 1, η , 0)
= ζ + ζ '+ ω ・ σ ・ x ・ v
Therefore, equation (41) can be modified as follows.
G (1,2)
= e 1 (h (2) (τ (1) / τ (2)) ・ (r + s + r '+ s')・ m, h (2) y ・ z ) ・ e 1 (g, g) c (2) ・ τ (1) ・ τ (2) ・ ρ ・ y '・ (ζ + ζ' + ω ・ σ ・ x → ・ v →)
= e 1 (h (2) (τ (1) / τ (2)) ・ (r + s + r '+ s')・ m, h (2) y ・ z ) ・ e 1 (h (1) L ・ ρ ・ y ' , h (2) c (2) ・ (ζ + ζ' + ω ・ σ ・ x → ・ v →) / L )… (42)
Here, L = τ (2) / τ (1), ζ - = (ζ + ζ ') / L, ν = (ω · σ · x → · v →) / L, r - = (r + r ') / L, s - = (s + s') / L, t - = h (2) y · z and t - putting a '= h (1) L · ρ · y', formula (42) Can be written as:
G (1,2) = e 1 ( h (2) ((r -) + (s-)) · m, t -) · e 1 (t - ', h (2) c (2) · (( ζ-) + ν) )… (43)
However, the superscript “r-” represents “r ”, “s-” represents “s ”, and “ζ-” represents “ζ ”.

t-=h(2)y・zとおくと、暗号文ct(1,2)が含むZ(1,2)は以下のように表記できる。
Z(1,2)=Z3 y=h(2)y・z=t- …(44)
式(2)より、暗号文ct(1,2)が含むH(1,2)は以下のように変形できる。
H(1,2)=e1(h(1)(ζ+ζ’), h(2)ρ)y’
=e1(h(1)ρ・y’, h(2)L・(ζ+ζ’)/L) …(45)
ここでζ-=(ζ+ζ’)/L及びt-’=h(1)L・ρ・y’とおくと、式(45)は以下のように表記できる。
H(1,2)=e1(t-’, h(2)ζ-) …(46)
If t = h (2) y · z , Z (1,2) included in the ciphertext ct (1,2) can be expressed as follows.
Z (1,2) = Z 3 y = h (2) y · z = t - ... (44)
From equation (2), H (1,2) included in the ciphertext ct (1,2) can be modified as follows.
H (1,2) = e 1 (h (1) (ζ + ζ ') , h (2) ρ ) y'
= e 1 (h (1) ρ ・ y ' , h (2) L ・ (ζ + ζ') / L )… (45)
Here, if ζ = (ζ + ζ ′) / L and t ′ = h (1) L · ρ · y ′ , the equation (45) can be expressed as follows.
H (1,2) = e 1 ( t - ', h (2) ζ-) ... (46)

式(38)(40)(43)(44)(46)より、復号時の探索用の式には以下の関係がなりたつ。
e1(m’, Z(1,2))=e1(m’, t-)
G(1,2)/{H(1,2)c(2)・E(1,2)1/a(2)・F(1,2)1/b(2)}
=e1(h(2)((r-)+(s-))・m,t-)・e1(t-’, h(2)c(2)・((ζ-)+ν))/{e1(t-’, h(2)ζ-)c(2)・e1(h(2)a(2)・r-, t-)1/a(2)・e1(h(2)b(2)・s-, t-)1/b(2)}
=e1(m, t-)・e1(h(2), t-)((r-)+(s-))・e1(t-’, h(2))c(2)・((ζ-)+ν)/{e1(t-’, h(2))c(2)・ζ-・e1(h(2), t-)((r-)+(s-))}
=e1(m, t-)・e1(t-’, h(2))c(2)・((ζ-)+ν)/e1(t-’, h(2))c(2)・ζ- …(47)
式(47)はν=0すなわち、内積x・v=0の場合にはe1(m, t-)となり、m’=mとなり正しく復号がなされる。一方、内積x・v≠0の場合には式(47)はe1(m, t-)とならず、正しく復号できない。以上より、n次元ベクトルxとn次元ベクトルvとの内積が0のときに復号が可能となる内積述語暗号において、再暗号化方式が実現されたことが分かる。このように本実施形態では、暗号文にn次元ベクトルxを、再暗号化鍵にn次元ベクトルvをそれぞれ埋め込み、x・v=0が成立するか否かによって正しく再暗号化が行われるかを制御することができる。
From the expressions (38), (40), (43), (44), and (46), the following expression is established for the expression for searching at the time of decoding.
e 1 (m ', Z ( 1,2)) = e 1 (m', t -)
G (1,2) / {H (1,2) c (2)・ E (1,2) 1 / a (2)・ F (1,2) 1 / b (2) }
= e 1 (h (2) ((r -) + (s-)) · m, t -) · e 1 (t - ', h (2) c (2) · ((ζ -) + ν) ) / {e 1 (t - ', h (2) ζ-) c (2) · e 1 (h (2) a (2) · r-, t -) 1 / a (2) · e 1 ( h (2) b (2) · s-, t -) 1 / b (2)}
= e 1 (m, t - ) · e 1 (h (2), t -) ((r -) + (s-)) · e 1 (t - ', h (2)) c (2) · ((ζ -) + ν) / {e 1 (t - ', h (2)) c (2) · ζ- · e 1 (h (2), t -) ((r -) + (s- )) }
= e 1 (m, t - ) · e 1 (t - ', h (2)) c (2) · ((ζ -) + ν) / e 1 (t -', h (2)) c ( 2) ・ ζ- … (47)
In the equation (47), when ν = 0, that is, when the inner product x · v = 0, it becomes e 1 (m, t ), and m ′ = m, so that decoding is performed correctly. On the other hand, when the inner product x · v ≠ 0, equation (47) does not become e 1 (m, t ) and cannot be correctly decoded. From the above, it can be seen that the re-encryption scheme is realized in the inner product predicate encryption that can be decrypted when the inner product of the n-dimensional vector x and the n-dimensional vector v is zero. As described above, in this embodiment, the n-dimensional vector x is embedded in the ciphertext and the n-dimensional vector v is embedded in the re-encryption key, and re-encryption is correctly performed depending on whether x · v = 0 holds Can be controlled.

<述語秘匿性>
実施形態のセキュリティシステムは述語秘匿性を有する。述語秘匿性とは、述語暗号方式における鍵に対応するn次元ベクトルvの秘匿性を意味する。「述語秘匿性」という呼び名は、鍵に述語ベクトルが対応し、暗号文に属性ベクトルが対応することを前提としたものである。しかしながら、鍵に属性ベクトルが対応し、暗号文に述語ベクトルが対応してもよい。鍵に対応するn次元ベクトルvが属性ベクトルである場合には「述語秘匿性」とは属性の秘匿性を意味する。これまでの述語暗号方式に述語秘匿性を持つものは存在しない。これは従来の述語暗号方式では、攻撃者が任意のn次元ベクトルv’を用いて鍵を生成し、その鍵で暗号文を復号して正しいメッセージが得られるか否かを探索することで、n次元ベクトルvに関する情報を得ることができるからである。これに対し、本実施形態では、暗号文にn次元ベクトルxを埋め込み、再暗号化鍵にn次元ベクトルvを埋め込む。そのため、攻撃者が任意のn次元ベクトルv’を用いて再暗号化鍵を生成し、その再暗号化鍵で暗号文を再暗号化しても、それによって得られるのは暗号文であり、当該攻撃者はその暗号文が正しく再暗号化されたかを判断することができない。よって、本実施形態では述語秘匿性を実現できる。
<Predicate confidentiality>
The security system of the embodiment has predicate confidentiality. The predicate confidentiality means the confidentiality of the n-dimensional vector v corresponding to the key in the predicate encryption method. The name “predicate confidentiality” is based on the premise that a predicate vector corresponds to a key and an attribute vector corresponds to a ciphertext. However, an attribute vector may correspond to the key, and a predicate vector may correspond to the ciphertext. When the n-dimensional vector v corresponding to the key is an attribute vector, “predicate secrecy” means secrecy of the attribute. There is no predicate secrecy in the predicate encryption methods so far. This is because in the conventional predicate encryption method, an attacker generates a key using an arbitrary n-dimensional vector v ′ and decrypts the ciphertext with the key to search whether a correct message can be obtained. This is because information about the n-dimensional vector v can be obtained. In contrast, in this embodiment, the n-dimensional vector x is embedded in the ciphertext, and the n-dimensional vector v is embedded in the re-encryption key. Therefore, even if an attacker generates a re-encryption key using an arbitrary n-dimensional vector v ′ and re-encrypts the ciphertext with the re-encryption key, the ciphertext is obtained by that, The attacker cannot determine whether the ciphertext has been correctly re-encrypted. Therefore, predicate confidentiality can be realized in this embodiment.

<再暗号化鍵の難読化>
再暗号化鍵Obf(rk1→2)を含む再暗号化コードが難読化された情報となることを説明する。
[難読化の定義]
入力値INに対してOUT=CODE(IN)を出力するコードCODE、コードCODEに対応する情報Obf(CODE)、任意の入力値INに対して出力値OUT=CODE(IN)を出力するオラクル、仮想的な攻撃者ADV、シミュレータSIM、及び識別器DISを仮定する。攻撃者ADVには情報Obf(CODE)が与えられるが、シミュレータSIMには情報Obf(CODE)が与えられない。攻撃者ADV、シミュレータSIM及び識別器DISは、オラクルORAからコードCODEを与えられないが、オラクルORAに任意の入力値INを与えてそれに対する出力値OUT=CODE(IN)を得ることができる。攻撃者ADVは、情報Obf(CODE)とオラクルORAを用いて得られた情報を識別器DISに与える。シミュレータSIMは、オラクルORAを用いて得られた情報を識別器DISに与える。識別器DISは、オラクルORA及び与えられた情報を用いて当該情報を与えたものが攻撃者ADVであるかシミュレータSIMであるかを識別する。識別器DISは、情報を与えたものが攻撃者ADVであると識別した場合に1を出力し、シミュレータSIMであると識別した場合に0を出力する。以下の条件(I)〜(III)が成り立つ場合、Obf(CODE)はCODEが難読化された情報である。
(I) 任意の入力値INについて、CODE(IN)=Obf(CODE(IN))を満たす。
(II) Obf(CODE(IN))が任意の入力値INのサイズに対する多項式時間で計算可能である。
(III) 任意の攻撃者ADV及び識別器DISに対して以下を満たすシミュレータSIMが存在する。
Pr[DISORA(ADVORA(Obf(CODE)))→1]-Pr[DISORA(SIMORA)→1]<NEGL(sec) …(48)
ただし、Pr[DISORA(ADVORA(Obf(CODE)))→1]は、攻撃者ADVから情報が与えられた識別器DISが当該情報を与えたものが攻撃者ADVであると識別して1を出力する確率を表す。Pr[DISORA(SIMORA)→1]は、シミュレータSIMから情報が与えられた識別器DISが当該情報を与えたものが攻撃者ADVであると識別して1を出力する確率を表す。NEGL(sec)は、無視することができる値を出力する関数である。NEGL(sec)の出力値はセキュリティパラメータsecが大きいほど小さい。
<Obfuscation of re-encryption key>
It will be described that the re-encryption code including the re-encryption key Obf (rk 1 → 2 ) becomes obfuscated information.
[Definition of obfuscation]
Code CODE that outputs OUT = CODE (IN) for input value IN, information Obf (CODE) corresponding to code CODE, Oracle that outputs output value OUT = CODE (IN) for any input value IN, Assume a virtual attacker ADV, a simulator SIM, and a classifier DIS. The attacker ADV is given the information Obf (CODE), but the simulator SIM is not given the information Obf (CODE). The attacker ADV, the simulator SIM, and the discriminator DIS are not given a code CODE from the Oracle ORA, but can give an arbitrary input value IN to the Oracle ORA and obtain an output value OUT = CODE (IN) corresponding thereto. The attacker ADV gives information obtained by using the information Obf (CODE) and Oracle ORA to the discriminator DIS. The simulator SIM gives the information obtained using the Oracle ORA to the discriminator DIS. The discriminator DIS identifies whether the information given by the Oracle ORA and the given information is an attacker ADV or a simulator SIM. The discriminator DIS outputs 1 when it is identified that the given information is the attacker ADV, and outputs 0 when it is identified as the simulator SIM. Obf (CODE) is information in which CODE is obfuscated when the following conditions (I) to (III) are satisfied.
(I) for any input value IN, satisfy CODE (IN) = Obf (CODE (IN)).
(II) Obf (CODE (IN)) can be calculated in polynomial time for the size of an arbitrary input value ∀IN .
(III) Arbitrary attackers There are simulators SIM that satisfy the following conditions for ADV and discriminator DIS.
Pr [DIS ORA (ADV ORA (Obf (CODE))) → 1] -Pr [DIS ORA (SIM ORA ) → 1] <NEGL (sec)… (48)
However, Pr [DIS ORA (ADV ORA (Obf (CODE))) → 1] identifies that the discriminator DIS to which information is given from the attacker ADV identifies that the attacker is ADV. Represents the probability of outputting 1. Pr [DIS ORA (SIM ORA ) → 1] represents a probability that the discriminator DIS to which information is given from the simulator SIM recognizes that the information given by the simulator is an attacker ADV and outputs 1. NEGL (sec) is a function that outputs a value that can be ignored. The output value of NEGL (sec) is smaller as the security parameter sec is larger.

[再暗号化鍵Obf(rk1→2)を含む再暗号化コードの難読化]
再暗号化鍵Obf(rk1→2)は、Z1=(h(2)a(2))z/a(1), Z2=(h(2)b(2))z/b(1), Z3=h(2)z, k0=h(2)ρ, k*=(RV)B(1,2)*を含む。式(38)(40)(43)(44)(46)より、たとえzやρが定数(例えばz=1、ρ=1)であったとしても再暗号化された暗号文ct(1,2)を生成することはできる。しかし、z及びρを乱数とすることで再暗号化鍵Obf(rk1→2)を含む再暗号化コードが難読化される。比較のため、まずz=1の場合を想定する。
z=1の場合、再暗号化鍵Obf(rk1→2)はZ1=h(2)a(2)/a(1), Z2=h(2)b(2)/b(1), Z3=h(2), k0=h(2)ρ, k*=(RV)B(1,2)*を含む。攻撃者ADVは、再暗号化鍵Obf(rk1→2)及び第1復号装置の公開鍵を用い、以下を計算することができる。
e1(h(2)a(2)/a(1),h(1)a(1))=e1(h(2)a(2),h(1))=Υ …(49)
そのため攻撃者ADVは、Υ=e1(h(2)KEY,h(1))を満たすKEYを探索して秘密鍵a(2)に関する情報を得ることができる。一方、再暗号化鍵Obf(rk1→2)を持たないシミュレータSIMは式(49)の計算によってΥを求めることができず、KEYを探索して秘密鍵a(2)に関する情報を得ることができない。従って式(48)が満たされず、再暗号化鍵Obf(rk1→2)を含む再暗号化コードは難読化されたといえない。
[Obfuscation of re-encryption code including re-encryption key Obf (rk 1 → 2 )]
The re-encryption key Obf (rk 1 → 2 ) is Z 1 = (h (2) a (2) ) z / a (1) , Z 2 = (h (2) b (2) ) z / b ( 1) , Z 3 = h (2) z , k 0 = h (2) ρ , k * = (RV ) B (1,2) * . From equations (38), (40), (43), (44), and (46), even if z and ρ are constants (for example, z = 1, ρ = 1), the re-encrypted ciphertext ct (1, 2) can be generated. However, by using z and ρ as random numbers, the re-encryption code including the re-encryption key Obf (rk 1 → 2 ) is obfuscated. For comparison, assume that z = 1.
When z = 1, the re-encryption key Obf (rk 1 → 2 ) is Z 1 = h (2) a (2) / a (1) , Z 2 = h (2) b (2) / b (1 ) , Z 3 = h (2), k 0 = h (2) ρ , k * = (RV ) B (1,2) * . The attacker ADV can calculate the following using the re-encryption key Obf (rk 1 → 2 ) and the public key of the first decryption device.
e 1 (h (2) a (2) / a (1) , h (1) a (1) ) = e 1 (h (2) a (2) , h (1)) = Υ… (49)
Therefore, the attacker ADV can obtain information on the secret key a (2) by searching for a KEY satisfying Υ = e 1 (h (2) KEY , h (1)). On the other hand, a simulator SIM that does not have the re-encryption key Obf (rk 1 → 2 ) cannot find Υ by the calculation of Equation (49), and searches for the KEY to obtain information on the secret key a (2). I can't. Therefore, Equation (48) is not satisfied, and it cannot be said that the re-encryption code including the re-encryption key Obf (rk 1 → 2 ) has been obfuscated.

次に、zが乱数であると仮定する。乱数zに対するZ1=(h(2)a(2))z/a(1), Z2=(h(2)b(2))z/b(1), Z3=h(2)z, k0=h(2)ρ, k*=(RV)B(1,2)*を含む再暗号化鍵Obf(rk1→2)の場合、攻撃者ADVは、再暗号化鍵Obf(rk1→2)及び第1復号装置の公開鍵を用い、以下を計算することができる。
e1(h(2)a(2)・z/a(1),h(1)a(1))=e1(h(2)a(2)・z,h(1))=Υ’ …(50)
攻撃者ADVは、Υ’=e1(h(2)KEY・z,h(1))を満たすKEY・zを探索することはできるが、zが乱数であるため、Computational Diffie-Hellman仮定が真なのであれば、秘密鍵a(2)に関する情報を得ることができない。同様に攻撃者ADVは、z及びρが乱数で或る場合には、再暗号化鍵Obf(rk1→2)のその他の要素について秘密鍵b(2)やn次元ベクトルvなどの秘密情報を得ることができない。従ってz及びρが乱数である場合には式(48)が満たされ、条件(III)が満たされる。再暗号化鍵Obf(rk1→2)を含む再暗号化コードは、その他の条件(I)(II)も満たすため、難読化されたといえる。
Now assume that z is a random number. Z 1 = (h (2) a (2) ) z / a (1) , Z 2 = (h (2) b (2) ) z / b (1) , Z 3 = h (2) For a re-encryption key Obf (rk 1 → 2 ) containing z , k 0 = h (2) ρ , k * = (RV ) B (1,2) * , the attacker ADV Using Obf (rk 1 → 2 ) and the public key of the first decryption device, the following can be calculated:
e 1 (h (2) a (2) ・ z / a (1) , h (1) a (1) ) = e 1 (h (2) a (2) ・ z , h (1)) = Υ '… (50)
The attacker ADV can search for KEY · z that satisfies Υ '= e 1 (h (2) KEY · z , h (1)), but z is a random number, so the Computational Diffie-Hellman assumption If true, it is not possible to obtain information about the private key a (2). Similarly, the attacker ADV, if z and ρ are random numbers, has a secret key b (2) or n-dimensional vector v for other elements of the re-encryption key Obf (rk 1 → 2 ). I can't get information. Therefore, when z and ρ are random numbers, the equation (48) is satisfied and the condition (III) is satisfied. It can be said that the re-encryption code including the re-encryption key Obf (rk 1 → 2 ) is obfuscated because it satisfies other conditions (I) and (II).

<安全性>
本実施形態では高い安全性を有する再暗号化方式を実現できる。特に、RV=(RVι(1),...,RVι(3・n+2))であり、1個のRVκ∈{RVι(n+1), RVι(n+2)}が1∈Fqであり、RVκ以外の1個のRVφ∈{RVι(n+1), RVι(n+2)}が0∈Fqであり、RVε(1),...,RVε(n)∈{RVι(n+3),...,RVι(3・n+2)}が乱数ηε(1),...,ηε(n)∈Fqであり、RVε(1),...,RVε(n)以外のn個のRVυ(1),...,RVυ(n)∈{RVι(n+3),...,RVι(3・n+2)}のそれぞれが0∈Fqであり、CV=(CVι(1),...,CVι(3・n+2))であり、(CVι(1),...,CVι(n))がn次元ベクトルω・x=(ω・xι(1),...,ω・xι(n))であり、1個のCVκ∈{CVι(n+1), CVι(n+2)}が乱数ζであり、CVκ以外の1個のCVφ∈{CVι(n+1), CVι(n+2)}が暗号化装置によって選択された乱数ψ∈Fqであり、2・n個のCVι(n+3),...,CVι(3・n+2)のそれぞれが0であり、REV=(REVι(1),...,REVι(3・n+2))∈Fq n+μであり、何れか1個のREVκ∈{REVι(1),...,REVι(3・n+2)}が乱数ζ’であり、REVκを除くREVι(1),...,REVι(3・n+2)が0∈Fqである場合(例えば式(32)(35)(36)を満たす場合)、判定線形仮定(DLIN仮定)及び強Diffe-Hellman識別仮定(SDHI仮定)が真であれば、IND-CPA安全であるといえる。
<Safety>
In this embodiment, a re-encryption method having high security can be realized. In particular, RV = (RV ι (1) , ..., RV ι (3 ・ n + 2) ), and one RV κ ∈ {RV ι (n + 1) , RV ι (n + 2 ) } Is 1∈F q , and one RV φ ∈ {RV ι (n + 1) , RV ι (n + 2) } other than RV κ is 0∈F q and RV ε (1) , ..., RV ε (n) ∈ {RV ι (n + 3) , ..., RV ι (3 ・ n + 2) } is a random number η ε (1) , ..., η ε (n ) ∈F q and n RV υ (1) , ..., RV υ (n) ∈ {RV ι (n + 3 ) other than RV ε (1) , ..., RV ε (n) ) , ..., RV ι (3 ・ n + 2) } is 0∈F q and CV = (CV ι (1) , ..., CV ι (3 ・ n + 2) ) (CV ι (1) , ..., CV ι (n) ) is an n-dimensional vector ω ・ x = (ω ・ x ι (1) , ..., ω ・ x ι (n) ) And one CV κ ∈ {CV ι (n + 1) , CV ι (n + 2) } is a random number ζ, and one CV φ ∈ {CV ι (n + 1) other than CV κ , CV ι (n + 2) } is the random number ψ∈F q selected by the encryption device, and 2 · n CV ι (n + 3) , ..., CV ι (3 · n + 2 ) Is 0, REV = (REV ι (1) , ..., REV ι (3 ・ n + 2) ) ∈F q n + μ , and any one REV κ ∈ { REV ι (1), ..., REV ι (3 · n + 2)} A random number zeta ', REV except REV κ ι (1), ... , when REV ι (3 · n + 2 ) is 0∈F q (e.g. formula (32) (35) (36) If satisfied), if the decision linear assumption (DLIN assumption) and strong Diffe-Hellman identification assumption (SDHI assumption) are true, then it can be said to be IND-CPA safe.

〔実施形態〕
次に、図面を参照して実施形態を説明する。
<構成>
図1に例示するように、本形態のセキュリティシステム1は、例えば、パラメータ生成装置11、暗号化装置12、復号装置13,14(第1,2復号装置)、難読化装置15及び再暗号化装置16を有し、これらはネットワークを通じて通信可能に構成されている。本形態では、説明の便宜上、1個のパラメータ生成装置、暗号化装置、難読化装置及び再暗号化装置並びに2個の復号装置を有するセキュリティシステムを例示するが、セキュリティシステムが、より多くのパラメータ生成装置、暗号化装置、難読化装置、再暗号化装置及び復号装置を有していてもよい。或いは、パラメータ生成装置と難読化装置が同一の装置であってもよいし、難読化装置と何れかの復号装置とが同一の装置であってもよい。パラメータ生成装置11、暗号化装置12、復号装置13,14(第1,2復号装置)、難読化装置15及び再暗号化装置16のそれぞれは、例えば、CPU(central processing unit), RAM(random-access memory), ROM(read-only memory)等から構成される公知又は専用のコンピュータに特別なプログラムが読み込まれることで構成される特別な装置である。
Embodiment
Next, embodiments will be described with reference to the drawings.
<Configuration>
As illustrated in FIG. 1, the security system 1 of this embodiment includes, for example, a parameter generation device 11, an encryption device 12, decryption devices 13 and 14 (first and second decryption devices), an obfuscation device 15, and re-encryption. The apparatus 16 is comprised so that these can communicate through a network. In this embodiment, for convenience of explanation, a security system having one parameter generation device, encryption device, obfuscation device, re-encryption device, and two decryption devices is illustrated, but the security system has more parameters. You may have a production | generation apparatus, an encryption apparatus, an obfuscation apparatus, a re-encryption apparatus, and a decryption apparatus. Alternatively, the parameter generation device and the obfuscation device may be the same device, or the obfuscation device and any of the decoding devices may be the same device. Each of the parameter generation device 11, the encryption device 12, the decryption devices 13 and 14 (first and second decryption devices), the obfuscation device 15 and the re-encryption device 16 includes, for example, a CPU (central processing unit), a RAM (random -access memory), ROM (read-only memory), etc., a special device configured by reading a special program into a known or dedicated computer.

[暗号化装置12]
図2に例示するように、本形態の暗号化装置12は、入力部12a、インタフェース部12b、一時メモリ12c、記憶部12d、制御部12e、モード切り替え部21f、選択部12g,12h、及び、暗号化部12i,12jを有する。暗号化装置12は制御部12eの制御のもとで各処理を実行する。各処理過程で得られたデータは一時メモリ12cに格納され、一時メモリ12cに格納されたデータは必要に応じて読み出されて他の処理過程で使用される。
[Encryption device 12]
As illustrated in FIG. 2, the encryption device 12 according to the present embodiment includes an input unit 12a, an interface unit 12b, a temporary memory 12c, a storage unit 12d, a control unit 12e, a mode switching unit 21f, selection units 12g and 12h, and It has encryption parts 12i and 12j. The encryption device 12 executes each process under the control of the control unit 12e. The data obtained in each process is stored in the temporary memory 12c, and the data stored in the temporary memory 12c is read out as necessary and used in other processes.

[復号装置13]
図3に例示するように、本形態の復号装置13は、出力部13a、インタフェース部13b、一時メモリ13c、記憶部13d、制御部13e、選択部13f、公開鍵生成部13g〜13k、モード切り替え部13m、及び、復号部13n,13pを有する。復号装置13は制御部13eの制御のもとで各処理を実行する。各処理過程で得られたデータは一時メモリ13cに格納され、一時メモリ13cに格納されたデータは必要に応じて読み出されて他の処理過程で使用される。
[Decoding device 13]
As illustrated in FIG. 3, the decryption device 13 of this embodiment includes an output unit 13 a, an interface unit 13 b, a temporary memory 13 c, a storage unit 13 d, a control unit 13 e, a selection unit 13 f, public key generation units 13 g to 13 k, and mode switching. 13m and decoding units 13n and 13p. The decryption device 13 executes each process under the control of the control unit 13e. The data obtained in each process is stored in the temporary memory 13c, and the data stored in the temporary memory 13c is read as necessary and used in other processes.

[復号装置14]
図4に例示するように、本形態の復号装置14は、出力部14a、インタフェース部14b、一時メモリ14c、記憶部14d、制御部14e、選択部14f、公開鍵生成部14g〜14k、モード切り替え部14m、及び、復号部14n,14pを有する。復号装置14は制御部14eの制御のもとで各処理を実行する。各処理過程で得られたデータは一時メモリ14cに格納され、一時メモリ14cに格納されたデータは必要に応じて読み出されて他の処理過程で使用される。
[Decoding device 14]
As illustrated in FIG. 4, the decryption device 14 of this embodiment includes an output unit 14 a, an interface unit 14 b, a temporary memory 14 c, a storage unit 14 d, a control unit 14 e, a selection unit 14 f, public key generation units 14 g to 14 k, and mode switching. 14m and decoding units 14n and 14p. The decryption device 14 executes each process under the control of the control unit 14e. Data obtained in each process is stored in the temporary memory 14c, and the data stored in the temporary memory 14c is read out as necessary and used in other processes.

[難読化装置15]
図5に例示するように、本形態の難読化装置15は、入力部15a、インタフェース部15b、一時メモリ15c、記憶部15d、制御部15e、選択部15f,15g、及び、再暗号化鍵生成部15h,15i,15jを有する。難読化装置15は制御部15eの制御のもとで各処理を実行する。各処理過程で得られたデータは一時メモリ15cに格納され、一時メモリ15cに格納されたデータは必要に応じて読み出されて他の処理過程で使用される。
[Obfuscation device 15]
As illustrated in FIG. 5, the obfuscation apparatus 15 of this embodiment includes an input unit 15a, an interface unit 15b, a temporary memory 15c, a storage unit 15d, a control unit 15e, selection units 15f and 15g, and re-encryption key generation. Parts 15h, 15i, and 15j. The obfuscation apparatus 15 executes each process under the control of the control unit 15e. The data obtained in each process is stored in the temporary memory 15c, and the data stored in the temporary memory 15c is read out as necessary and used in other processes.

[再暗号化装置16]
図6に例示するように、本形態の再暗号化装置16は、インタフェース部16a,16b、一時メモリ16c、記憶部16d、制御部16e、選択部16f,16i、群演算部16ga〜16ge、双線形写像演算部16ha〜16he、及び、再暗号化部16ja〜16jeを有する。再暗号化装置16は制御部16eの制御のもとで各処理を実行する。各処理過程で得られたデータは一時メモリ16cに格納され、一時メモリ16cに格納されたデータは必要に応じて読み出されて他の処理過程で使用される。
[Re-encryption device 16]
As illustrated in FIG. 6, the re-encryption device 16 of the present embodiment includes an interface unit 16a, 16b, a temporary memory 16c, a storage unit 16d, a control unit 16e, a selection unit 16f, 16i, a group calculation unit 16ga-16ge, The linear mapping operation units 16ha to 16he and the re-encryption units 16ja to 16je are included. The re-encryption device 16 executes each process under the control of the control unit 16e. The data obtained in each process is stored in the temporary memory 16c, and the data stored in the temporary memory 16c is read as necessary and used in other processes.

<処理>
本形態の処理を説明する。本形態では、暗号化装置12が復号装置13で復号可能な暗号文が作成される例を説明する。暗号化装置12で作成された暗号文は、そのまま復号装置13で復号されるか、再暗号化装置16で復号装置14が復号可能な暗号文に再暗号化された後、復号装置14で復号される。
[パラメータ生成]
本形態のパラメータ生成装置11は、前述のようにシステムパラメータcrsを生成し、ネットワークを通じて送信する。システムパラメータcrsは、暗号化装置12、復号装置13,14、難読化装置15及び再暗号化装置16それぞれのインタフェース部12b,13b,14b,15b,16bで受信され、それぞれの記憶部12d,13d,14d,15d,16dに格納される。暗号化装置12、復号装置13,14、難読化装置15及び再暗号化装置16のそれぞれは、必要に応じて記憶部12d,13d,14d,15d,16dに格納されたシステムパラメータcrsを読み出して利用する。難読化装置15の記憶部15dには、さらにシステムパラメータ生成時に生成された正則行列Xが格納される。
<Processing>
The processing of this embodiment will be described. In this embodiment, an example will be described in which a ciphertext that can be decrypted by the decryption device 13 is created by the encryption device 12. The ciphertext created by the encryption device 12 is decrypted as it is by the decryption device 13 or re-encrypted by the re-encryption device 16 into a ciphertext that can be decrypted by the decryption device 14 and then decrypted by the decryption device 14. Is done.
[Parameter generation]
The parameter generation device 11 according to the present embodiment generates the system parameter crs as described above and transmits it through the network. The system parameter crs is received by the interface units 12b, 13b, 14b, 15b, and 16b of the encryption device 12, the decryption devices 13 and 14, the obfuscation device 15, and the re-encryption device 16, respectively, and the storage units 12d and 13d. , 14d, 15d, and 16d. Each of the encryption device 12, the decryption devices 13, 14, the obfuscation device 15, and the re-encryption device 16 reads the system parameters crs stored in the storage units 12d, 13d, 14d, 15d, and 16d as necessary. Use. The storage unit 15d of the obfuscation apparatus 15 further stores a regular matrix X generated at the time of system parameter generation.

[秘密鍵及び公開鍵の生成]
図7Aに例示するように、復号装置13(図3)の選択部13fが、乱数a(1), b(1), c(1), τ(1)←U Fq ×を一様ランダムに選択し、これらを復号装置13の秘密鍵sk(1)=(a(1), b(1), c(1), τ(1))として記憶部13dに格納する(ステップS101)。
公開鍵生成部13g〜13kは、記憶部13dに格納された秘密鍵sk(1)及びシステムパラメータcrsを用い、それぞれh(1)=gτ(1)∈G, h(1)a(1), h(1)b(1), h(1)c(1), B(1)=c(1)・τ(1)・B^を計算し、それらを復号装置13の公開鍵pk(1)=(h(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1))として記憶部13dに格納する(ステップS102〜S106)。公開鍵pk(1)は、必要に応じてインタフェース部13bから他の装置に対して送信される。秘密鍵sk(1)は一般に公開されないが、難読化装置15のみに対して秘密鍵sk(1)が与えられ、秘密鍵sk(1)が難読化装置15の記憶部15dに格納される。
[Generate private and public keys]
As illustrated in FIG. 7A, the selection unit 13f of the decoding device 13 (FIG. 3) uniformly randomizes a (1), b (1), c (1), τ (1) ← U F q ×. These are stored in the storage unit 13d as the secret key sk (1) = (a (1), b (1), c (1), τ (1)) of the decryption device 13 (step S101).
The public key generation units 13g to 13k use the secret key sk (1) and the system parameter crs stored in the storage unit 13d, respectively, and h (1) = g τ (1) εG, h (1) a (1 ) , h (1) b (1) , h (1) c (1) , B (1) = c (1) · τ (1) · B ^ and calculate them as the public key pk of the decryption device 13 (1) = (h (1), h (1) a (1) , h (1) b (1) , h (1) c (1) , B (1)) is stored in the storage unit 13d ( Steps S102 to S106). The public key pk (1) is transmitted from the interface unit 13b to other devices as necessary. Although the secret key sk (1) is not publicly disclosed, the secret key sk (1) is given only to the obfuscation device 15 and the secret key sk (1) is stored in the storage unit 15d of the obfuscation device 15.

図7Bに例示するように、復号装置14(図4)の選択部14fが、乱数a(2), b(2), c(2), τ(2)←U Fq ×を一様ランダムに選択し、これらを復号装置14の秘密鍵sk(2)=(a(2), b(2), c(2), τ(2))として記憶部14dに格納する(ステップS111)。
公開鍵生成部14g〜14kは、記憶部14dに格納された秘密鍵sk(2)及びシステムパラメータcrsを用い、それぞれh(2)=gτ(2)∈G, h(2)a(2), h(2)b(2), h(2)c(2), B(2)=c(2)・τ(2)・B^を計算し、それらを復号装置14の公開鍵pk(2)=(h(2), h(2)a(2), h(2)b(2), h(2)c(2), B(2))として記憶部14dに格納する(ステップS112〜S116)。公開鍵pk(2)は、必要に応じてインタフェース部14bから他の装置に対して送信される。
As illustrated in FIG. 7B, the selection unit 14f of the decoding device 14 (FIG. 4) uniformly randomizes the random numbers a (2), b (2), c (2), τ (2) ← U F q ×. These are stored in the storage unit 14d as the secret key sk (2) = (a (2), b (2), c (2), τ (2)) of the decryption device 14 (step S111).
The public key generation units 14g to 14k use the secret key sk (2) and the system parameter crs stored in the storage unit 14d, respectively, and h (2) = g τ (2) ∈ G and h (2) a (2 ) , h (2) b (2) , h (2) c (2) , B (2) = c (2) · τ (2) · B ^ and calculate them as the public key pk of the decryption device 14 (2) = (h (2), h (2) a (2) , h (2) b (2) , h (2) c (2) , B (2)) is stored in the storage unit 14d ( Steps S112 to S116). The public key pk (2) is transmitted from the interface unit 14b to other devices as necessary.

[再暗号化鍵の生成]
難読化装置15(図5)は、ネットワーク及びインタフェース部13bを介して公開鍵pk(2)を取得し、それを記憶部15dに格納する。さらにn次元ベクトルv=(vι(1),...,vι(n))∈Fq nが入力部15aに入力される。図7Cに例示するように、難読化装置15の選択部15fが、乱数z, ρ, σ←U Fq ×を一様ランダムに選択し(ステップS121)、選択部15gが、乱数ηε(1),...,ηε(n)∈←U Fqを一様ランダムに選択する。前述のように、乱数η=(ηε(1),...,ηε(n))の一例はη=(η2・n+2,...,η3・n+1)である(ステップS122)。再暗号化鍵生成部15hは、記憶部15dに格納されたシステムパラメータcrsと正則行列Xと公開鍵pk(2)とを用い、前述のB(2)’=c(2)・τ(2)・B(前述の式(34)では乗法的に表記)を生成する(ステップS123)。B(2)’は再暗号化鍵生成部15iに入力される。再暗号化鍵生成部15iは、B(2)’と記憶部15dに格納されたシステムパラメータcrsと正則行列Xと秘密鍵sk(1)とを用い、前述のように(式(33)(34)参照)B(1,2)*=(ρ/c(1))・c(2)・τ(2)B*を計算する(ステップS124)。再暗号化鍵生成部15jは、入力されたn次元ベクトルvと乱数z, ρ, σと乱数ηと、記憶部15dに格納されたシステムパラメータcrsと公開鍵pk(2)とを用い、前述のように、Z1=(h(2)a(2))z/a(1), Z2=(h(2)b(2))z/b(1), Z3=h(2)z, k0=h(2)ρ, k*=(RV)B(1,2)*からなる再暗号化鍵Obf(rk1→2)を生成する。前述のように、RVの一例はRV=(σ・v,0n,1,η,0)である(ステップS125)。
生成された再暗号化鍵Obf(rk1→2)は、インタフェース部15bに送られ、ネットワークを介して再暗号化装置16に送られる。再暗号化鍵Obf(rk1→2)は、再暗号化装置16(図6)のインタフェース部16bで受信され、記憶部16dに格納される。
[Generate re-encryption key]
The obfuscation apparatus 15 (FIG. 5) acquires the public key pk (2) via the network and interface unit 13b and stores it in the storage unit 15d. Further, an n-dimensional vector v = (v ι (1) ,..., V ι (n) ) εF q n is input to the input unit 15a. As illustrated in FIG. 7C, the selection unit 15f of the obfuscation apparatus 15 selects random numbers z, ρ, σ ← U F q × uniformly and randomly (Step S121), and the selection unit 15g selects the random number η ε ( 1) , ..., η ε (n) ∈ ← U F q is chosen uniformly at random. As mentioned above, an example of random numbers η = (η ε (1) , ..., η ε (n) ) is η = (η 2 ・ n + 2 , ..., η 3 ・ n + 1 (Step S122). The re-encryption key generation unit 15h uses the system parameter crs, the regular matrix X, and the public key pk (2) stored in the storage unit 15d, and uses the aforementioned B (2) ′ = c (2) · τ (2 ) · B (represented in a multiplicative manner in the above equation (34)) is generated (step S123). B (2) ′ is input to the re-encryption key generation unit 15i. The re-encryption key generation unit 15i uses B (2) ′, the system parameter crs stored in the storage unit 15d, the regular matrix X, and the secret key sk (1) as described above (Formula (33) ( 34)) B (1,2) * = (ρ / c (1)) · c (2) · τ (2) B * is calculated (step S124). The re-encryption key generation unit 15j uses the input n-dimensional vector v , random numbers z, ρ, σ, random number η , the system parameter crs stored in the storage unit 15d, and the public key pk (2). , Z 1 = (h (2) a (2) ) z / a (1) , Z 2 = (h (2) b (2) ) z / b (1) , Z 3 = h (2) A re-encryption key Obf (rk 1 → 2 ) composed of z , k 0 = h (2) ρ , k * = (RV ) B (1,2) * is generated. As described above, an example of the RV the RV → = (σ · v → , 0 n, 1, η →, 0) is (step S125).
The generated re-encryption key Obf (rk 1 → 2 ) is sent to the interface unit 15b and sent to the re-encryption device 16 via the network. The re-encryption key Obf (rk 1 → 2 ) is received by the interface unit 16b of the re-encryption device 16 (FIG. 6) and stored in the storage unit 16d.

[暗号化処理]
暗号化装置12(図2)は、ネットワーク及びインタフェース部12bを介して公開鍵pk(1)を取得し、それを記憶部12dに格納する。図8に例示するように、暗号化装置12の入力部12aに、モード選択パラメータβ∈{0,1}、n次元ベクトルx=(xι(1),...,xι(n))∈Fq n、及びメッセージm∈Gが入力される(ステップS131)。選択部12gは、乱数r,s,ζ,ω,ψ←U Fqを一様ランダムに選択する(ステップS132)。モード切り替え部12fは、入力されたモード選択パラメータβに応じて暗号化方法を選択する(ステップS133)。β=0であった場合、モード切り替え部12fは第1モードの暗号化方法を選択する。この場合、暗号化部12iが、記憶部12dに格納されたシステムパラメータcrsと公開鍵pk(1)と、入力されたn次元ベクトルx=(xι(1),...,xι(n))とメッセージmと乱数r,s,ζ,ω,ψとを用い、暗号文ct(0,1)=[0, W(0,1)=(h(1)a(1))r, Θ(0,1)=(h(1)b(1))s, Y(0,1)=h(1)r+s・m,U(0,1)=(CV)B(1), Λ(0,1)=h(1)ζ]を生成する。前述のようにCVの一例は、CV=(ω・x,0n,ζ,0n,ψ)である(ステップS134)。β=1であった場合、モード切り替え部12fは第2モードの暗号化方法を選択する。この場合、まず、選択部12hが乱数t, t~U Gを一様ランダムに選択する(ステップS135)。次に、暗号化部12jが、記憶部12dに格納されたシステムパラメータcrsと公開鍵pk(1)と、入力されたn次元ベクトルx=(xι(1),...,xι(n))とメッセージmと乱数r,s,ζ,t, t~とを用い、暗号文ct(1,1)=[1, E(1,1)=e1((h(1)a(1))r, t),F(1,1)=e1((h(1)b(1))s, t),G(1,1)=e1((h(1)r+s・m, t))・e1(t~, (h(1)c(1))ζ), Z(1,1)=t, H(1,1)=e1(t~, h(1)ζ)] を生成する(ステップS136)。生成された暗号文ct(β,1)(β∈{0,1})はインタフェース部13に送られ、そこから送信(出力)される。β=0の場合に生成された暗号文ct(0,1)は、ネットワークを介して復号装置13又は再暗号化装置16に送信され、若しくは、復号装置13に送信された後に再暗号化装置16に転送される。β=1の場合に生成された暗号文ct(1,1)は、ネットワークを介して復号装置13に送信される(ステップS137)。
[Encryption processing]
The encryption device 12 (FIG. 2) acquires the public key pk (1) via the network and interface unit 12b and stores it in the storage unit 12d. As illustrated in FIG. 8, a mode selection parameter βε {0,1}, an n-dimensional vector x = (x ι (1) , ..., x ι (n ) ) ΕF q n and message mεG are input (step S131). The selection unit 12g uniformly selects random numbers r, s, ζ, ω, ψ ← U F q (step S132). The mode switching unit 12f selects an encryption method according to the input mode selection parameter β (step S133). When β = 0, the mode switching unit 12f selects the first mode encryption method. In this case, the encryption unit 12i includes the system parameter crs and the public key pk (1) stored in the storage unit 12d, and the input n-dimensional vector x = (x ι (1) , ..., x ι (n) ), message m and random numbers r, s, ζ, ω, ψ, and ciphertext ct (0,1) = [0, W (0,1) = (h (1) a (1) ) r , Θ (0,1) = (h (1) b (1) ) s , Y (0,1) = h (1) r + s・ m, U (0,1) = (CV ) B (1) , Λ (0,1) = h (1) ζ ] is generated. An example of a CV As described above, CV = a (ω · x →, 0 n , ζ, 0 n, ψ) ( step S134). If β = 1, the mode switching unit 12f selects the second mode encryption method. In this case, first, the selection unit 12h is a random number t, t ~U G to select uniformly random (step S135). Next, the encryption unit 12j receives the system parameter crs and the public key pk (1) stored in the storage unit 12d and the input n-dimensional vector x = (x ι (1) , ..., x ι (n) ), message m and random numbers r, s, ζ, t, t ~, and ciphertext ct (1,1) = [1, E (1,1) = e 1 ((h (1) a (1) ) r , t), F (1,1) = e 1 ((h (1) b (1) ) s , t), G (1,1) = e 1 ((h (1) r + s・ m, t)) ・ e 1 (t ~ , (h (1) c (1) ) ζ ), Z (1,1) = t, H (1,1) = e 1 (t ~ , h (1) ζ )] is generated (step S136). The generated ciphertext ct (β, 1) (β∈ {0,1}) is sent to the interface unit 13 and transmitted (output) therefrom. The ciphertext ct (0,1) generated when β = 0 is transmitted to the decryption device 13 or the re-encryption device 16 via the network, or after being transmitted to the decryption device 13, the re-encryption device 16 is transferred. The ciphertext ct (1,1) generated when β = 1 is transmitted to the decryption device 13 via the network (step S137).

[再暗号化処理]
暗号文ct(0,1)が再暗号化装置16(図6)に送信又は転送された場合、図9に示すように、インタフェース部12bで暗号文ct(0,1)が受信され(暗号文ct(0,1)の入力を受け付け)、暗号文ct(0,1)が記憶部16dに格納される。さらに再暗号化装置16は、ネットワーク及びインタフェース部12bを介して公開鍵pk(1)を取得し、それを記憶部16dに格納する(ステップS141)。選択部16fが、乱数r’, s’, ζ’←U Fqを一様ランダムに選択する(ステップS142)。群演算部16ga〜16geは、入力された乱数r’, s’, ζ’と、記憶部16に格納されたシステムパラメータcrsと暗号文ct(0,1)と公開鍵pk(1)とを用い、W’=W(0,1)・(h(1)a(1))r’,Θ’=Θ(0,1)・(h(1)b(1))s’,Y’=Y(0,1)・h(1)r’+s’,U’=U(0,1)+(REV)B(1),Λ’=Λ(0,1)・h(1)ζ’をそれぞれ計算する(ステップS143〜147)。双線形写像演算部16ha〜16heが、入力されたW’,Θ’,Y’,U’,Λ’と、記憶部16dに格納されたシステムパラメータcrsと再暗号化鍵Obf(rk1→2)とを用い、Ψ1=e1(W’,Z1), Ψ2=e1(Θ’,Z2), Ψ3=e1(Y’,Z3), Ω1=en+μ(U’,k*), Ω2=e1(Λ’,k0)をそれぞれ計算する(ステップS148〜S152)。選択部16iは、乱数y, y’←U Fq ×を一様ランダムに選択する(ステップS153)。再暗号化部16ja〜16jeは、入力されたΨ1=, Ψ2, Ψ3, Ω1, Ω2と乱数y, y’とを用い、E(1,2)=Ψ1 y, F(1,2)=Ψ2 y, G(1,2)=Ψ3 y・Ω1 y’, Z(1,2)=Z3 y, H(1,2)=Ω2 y’をそれぞれ計算する(ステップS153〜S159)。インタフェース部16aは、暗号文ct(1,2)=[1, E(1,2), F(1,2), G(1,2), Z(1,2), H(1,2)]を送信(出力)する。暗号文ct(1,2)はネットワークを介して復号装置14に送信される(ステップS160)。
[Re-encryption process]
When the ciphertext ct (0,1) is transmitted or transferred to the re-encryption device 16 (FIG. 6), the ciphertext ct (0,1) is received by the interface unit 12b as shown in FIG. The ciphertext ct (0,1) is stored in the storage unit 16d. Further, the re-encryption device 16 acquires the public key pk (1) via the network and interface unit 12b, and stores it in the storage unit 16d (step S141). The selection unit 16f selects random numbers r ′, s ′, ζ ′ ← U F q uniformly and randomly (step S142). The group calculation units 16ga to 16ge receive the input random numbers r ′, s ′, ζ ′, the system parameter crs stored in the storage unit 16, the ciphertext ct (0,1), and the public key pk (1). W '= W (0,1) ・ (h (1) a (1) ) r' , Θ '= Θ (0,1) ・ (h (1) b (1) ) s' , Y' = Y (0,1) ・ h (1) r '+ s' , U '= U (0,1) + (REV ) B (1) , Λ' = Λ (0,1) ・ h (1 ) ζ ′ is calculated (steps S143 to 147). The bilinear mapping arithmetic units 16ha to 16he receive the input W ′, Θ ′, Y ′, U ′, Λ ′, the system parameter crs stored in the storage unit 16d, and the re-encryption key Obf (rk 1 → 2 ) And Ψ 1 = e 1 (W ', Z 1 ), Ψ 2 = e 1 (Θ', Z 2 ), Ψ 3 = e 1 (Y ', Z 3 ), Ω 1 = e n + μ (U ′, k * ) and Ω 2 = e 1 (Λ ′, k 0 ) are respectively calculated (steps S148 to S152). The selection unit 16i selects random numbers y, y ′ ← U F q × uniformly and randomly (step S153). The re-encryption units 16ja to 16je use the inputted Ψ 1 =, Ψ 2 , Ψ 3 , Ω 1 , Ω 2 and random numbers y, y ′, and E (1,2) = Ψ 1 y , F ( 1,2) = Ψ 2 y , G (1,2) = Ψ 3 y・ Ω 1 y ' , Z (1,2) = Z 3 y , H (1,2) = Ω 2 y' (Steps S153 to S159). The interface unit 16a uses the ciphertext ct (1,2) = [1, E (1,2), F (1,2), G (1,2), Z (1,2), H (1,2 )] Is sent (output). The ciphertext ct (1,2) is transmitted to the decryption device 14 via the network (step S160).

[復号処理]
暗号文ct(β,1)(β∈{0,1})が復号装置13(図3)に送信されると、図10Aに例示するように、暗号文ct(β,1)が復号装置13のインタフェース部13bに受信(入力)される(ステップS161)。モード切り替え部13mは、暗号文ct(β,1)=[β,....]の先頭に位置する「β」が0であるかを判定する(ステップS162)。β=0であれば、復号部13nは、入力された暗号文ct(0,1)と記憶部13dに格納された秘密鍵sk(1)とを用い、m’=Y(0,1)/(W(0,1)1/a(1)・Θ(0,1)1/b(1))を復号値として計算し(ステップS163)、出力部13aが復号値m’を出力する(ステップS165)。β=1であれば、復号部13pは、入力された暗号文ct(1,1)と記憶部13dに格納された秘密鍵sk(1)とを用い、e1(m’, Z(1,1))=G(1,1)/{H(1,1)c(1)・E(1,1)1/a(1)・F(1,1)1/b(1)}を満たすm’∈Gを復号値として計算し(ステップS164)、出力部13aが復号値m’を出力する(ステップS165)。
[Decryption process]
When the ciphertext ct (β, 1) (β∈ {0,1}) is transmitted to the decryption device 13 (FIG. 3), the ciphertext ct (β, 1) is decrypted as illustrated in FIG. 10A. Are received (input) to the 13 interface units 13b (step S161). The mode switching unit 13m determines whether “β” located at the head of the ciphertext ct (β, 1) = [β,...] Is 0 (step S162). If β = 0, the decryption unit 13n uses the input ciphertext ct (0,1) and the secret key sk (1) stored in the storage unit 13d, and m ′ = Y (0,1) / (W (0,1) 1 / a (1) · Θ (0,1) 1 / b (1) ) is calculated as a decoded value (step S163), and the output unit 13a outputs the decoded value m ′. (Step S165). If β = 1, the decryption unit 13p uses the input ciphertext ct (1,1) and the secret key sk (1) stored in the storage unit 13d, and uses e 1 (m ′, Z (1 , 1)) = G (1,1) / {H (1,1) c (1)・ E (1,1) 1 / a (1)・ F (1,1) 1 / b (1) } M′∈G that satisfies the condition is calculated as a decoded value (step S164), and the output unit 13a outputs the decoded value m ′ (step S165).

[復号処理]
暗号文ct(β,2)(β∈{0,1})が復号装置14(図4)に送信されると、図10Bに例示するように、暗号文ct(β,2)が復号装置14のインタフェース部14bに受信(入力)される(ステップS171)。モード切り替え部14mは、暗号文ct(β,2)=[β,....]の先頭に位置する「β」が0であるかを判定する(ステップS172)。β=0であれば、復号部14nは、入力された暗号文ct(0,2)=[0, W(0,2)=(h(2)a(2))r, Θ(0,2)=(h(2)b(2))s, Y(0,2)=h(2)r+s・m,U(0,2)=(CV)B(1), Λ(0,2)=h(2)ζ]と、記憶部14dに格納された秘密鍵sk(2)とを用い、m’=Y(0,2)/(W(0,2)1/a(2)・Θ(0,2)1/b(2))を復号値として計算し(ステップS173)、出力部14aが復号値m’を出力する(ステップS175)。β=1であれば、復号部14pは、入力された暗号文ct(1,2)と記憶部14dに格納された秘密鍵sk(2)とを用い、e1(m’, Z(1,2))=G(1,2)/{H(1,2)c(2)・E(1,2)1/a(2)・F(1,2)1/b(2)}を満たすm’∈Gを復号値として計算し(ステップS174)、出力部14aが復号値m’を出力する(ステップS175)。
[Decryption process]
When the ciphertext ct (β, 2) (β∈ {0,1}) is transmitted to the decryption device 14 (FIG. 4), the ciphertext ct (β, 2) is decrypted as illustrated in FIG. 10B. 14 interface units 14b (step S171). The mode switching unit 14m determines whether “β” located at the head of the ciphertext ct (β, 2) = [β,...] Is 0 (step S172). If β = 0, the decryption unit 14n receives the input ciphertext ct (0,2) = [0, W (0,2) = (h (2) a (2) ) r , Θ (0, 2) = (h (2) b (2) ) s , Y (0,2) = h (2) r + s・ m, U (0,2) = (CV ) B (1) , Λ ( 0,2) = h (2) ζ ] and the secret key sk (2) stored in the storage unit 14d, m ′ = Y (0,2) / (W (0,2) 1 / a (2) · Θ (0,2) 1 / b (2) ) is calculated as a decoded value (step S173), and the output unit 14a outputs the decoded value m ′ (step S175). If β = 1, the decryption unit 14p uses the input ciphertext ct (1,2) and the secret key sk (2) stored in the storage unit 14d, and uses e 1 (m ′, Z (1 , 2)) = G (1,2) / {H (1,2) c (2)・ E (1,2) 1 / a (2)・ F (1,2) 1 / b (2) } M′∈G that satisfies the condition is calculated as a decoded value (step S174), and the output unit 14a outputs the decoded value m ′ (step S175).

〔変形例等〕
本発明は上述の実施形態に限定されるものではない。例えば、上述の実施形態では、安全性の観点から乱数として一様ランダムな値が用いられたが、用途や利用環境によっては一様ランダムではない乱数が用いられてもよい。また、乱数とは真性乱数及び擬似乱数の両方を含む概念であり、乱数として真性乱数が用いられてもよいし、擬似乱数が用いられてもよい。さらに上述の実施形態で扱った乱数(例えば、t, t~,ρ, σ, r, s, ζ, ω, r’, s’, ζ’, y, y’, z, ηε(1),...,ηε(n))の少なくとも一部が、予め定められた候補の中から選択された値であったり、定数であったりしてもよい。上述のように巡回群G, GTの位数が有限体Fqの位数qと同一である場合に高い安全性を確保できるが、用途によっては巡回群G, GTの位数が有限体Fqの位数と異なっていてもよい。上述の実施形態では、qが素数であって有限体Fqが素体である例を示したが、有限体Fqが拡大体であってもよい。上記の実施形態では、各装置がネットワークを経由して情報を通信する例を示したが、装置間の情報通信の少なくとも一部が、可搬型記録媒体を介した情報のやり取りに置換されてもよい。上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
[Modifications, etc.]
The present invention is not limited to the above-described embodiment. For example, in the above-described embodiment, a uniform random value is used as a random number from the viewpoint of safety. However, a random number that is not uniform random may be used depending on the application and usage environment. The random number is a concept including both a true random number and a pseudo random number, and a true random number may be used as the random number, or a pseudo random number may be used. Further random number covered in the above embodiments (e.g., t, t ~, ρ, σ, r, s, ζ, ω, r ', s', ζ ', y, y', z, η ε (1) ,..., .eta..epsilon. (n) ) may be a value selected from predetermined candidates or a constant. Cyclic group G as described above, can ensure high safety when order of the G T is the same as the order q of the finite field F q, the cyclic group G in some applications, the order of the G T Co. The order of the field F q may be different. In the above-described embodiment, an example in which q is a prime number and the finite field F q is a prime field is shown, but the finite field F q may be an extension field. In the above embodiment, an example is shown in which each device communicates information via a network. However, at least part of information communication between devices may be replaced with exchange of information via a portable recording medium. Good. 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. The processing functions are realized on the computer by executing the program 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 the program stored in its own recording device and executes the process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. Note that the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).

この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。   In this embodiment, the present apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.

1 セキュリティシステム
11 パラメータ生成装置
12 暗号化装置
13,14 復号装置
15 難読化装置
16 再暗号化装置
DESCRIPTION OF SYMBOLS 1 Security system 11 Parameter production | generation apparatus 12 Encryption apparatus 13,14 Decryption apparatus 15 Obfuscation apparatus 16 Reencryption apparatus

Claims (25)

暗号化装置と第1復号装置と第2復号装置と再暗号化装置とを有するセキュリティシステムであって、
G, GTが巡回群であり、gが前記巡回群Gの生成元であり、Fqが位数qの有限体であり、Fq ×=Fq\{0}であり、nが1以上の整数であり、μが2以上の整数であり、bi∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B=(b1,...,bn+μ)がn+μ個の前記基底ベクトルbi(i=1,...,n+μ)からなる基底であり、bi *∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B*=(b1 *,...,bn+μ *)がn+μ個の前記基底ベクトルbi *(i=1,...,n+μ)からなる基底であり、前記基底Bと前記基底B*とは双対直交基底であり、n+μ次元ベクトルd=(d1,...,dn+μ)∈Fq n+μに対する(d)BがΣi=1 n+μdi・biであり、n+μ次元ベクトルf=(f1,...,fn+μ)∈Fq n+μに対する(f)B*がΣi=1 n+μfi・bi *であり、Γがn+1≦Γ<n+μの整数であり、{ι(1),...,ι(Γ)}⊂{1,...,n+μ}であり、B^=(bι(1),...,bι(Γ))であり、前記第1復号装置の秘密鍵がa(1), b(1), c(1), τ(1)∈Fq ×であり、前記第1復号装置の公開鍵が(h(1)=gτ(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1)=c(1)・τ(1)・B^)であり、前記第2復号装置の秘密鍵がa(2), b(2), c(2), τ(2)∈Fq ×であり、前記第2復号装置の公開鍵が(h(2)=gτ(2), h(2)a(2), h(2)b(2), h(2)c(2), B(2)=c(2)・τ(2)・B^)であり、z, ρ, σ∈Fq ×であり、vがn次元ベクトルv=(vι(1),...,vι(n))∈Fq nであり、B(1,2)*=(ρ/c(1))・c(2)・τ(2)・B*であり、再暗号化鍵がZ1=(h(2)a(2))z/a(1), Z2=(h(2)b(2))z/b(1), Z3=h(2)z, k0=h(2)ρ, k*=(RV)B(1,2)*を含み、RVがn+μ次元ベクトルRV=(RVι(1),...,RVι(n+μ))∈Fq n+μであり、ι(i)∈{1,...,n+μ}(i=1,...,n+μ)であり、{ι(1),...,ι(n)}⊂{1,...,n+μ}であり、(RVι(1),..., RVι(n))がn次元ベクトルσ・v=(σ・vι(1),...,σ・vι(n))であり、何れか1個のRVκ∈{RVι(n+1),...,RVι(Γ)}が1であり、ξが1以上の整数であり、eξが直積群Gξ×Gξの元に対して前記巡回群GTの元を得る双線形写像であり、
前記暗号化装置は、
r, s, ζ, ω∈Fqを選択する第1選択部と、
前記第1復号装置の公開鍵(h(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1))とn次元ベクトルx=(xι(1),...,xι(n))∈Fq nとを用い、メッセージm∈Gの第1暗号文ct(0,1)を生成する第1暗号化部と、を含み、
前記第1暗号文ct(0,1)がW(0,1)=(h(1)a(1))r, Θ(0,1)=(h(1)b(1))s, Y(0,1)=h(1)r+s・m,U(0,1)=(CV)B(1), Λ(0,1)=h(1)ζを含み、CVがn+μ次元ベクトルCV=(CVι(1),...,CVι(n+μ))∈Fq n+μであり、(CVι(1),...,CVι(n))がn次元ベクトルω・x=(ω・xι(1),...,ω・xι(n))であり、何れか1個のCVκ∈{CVι(n+1),...,CVι(Γ)}が前記ζであり、CVι(n+1),...,CVι(Γ)からCVκを除いた要素からなるベクトルとRVι(n+1),...,RVι(Γ)からRVκを除いた要素からなるベクトルとの内積が0であり、
前記再暗号化装置は、
r’, s’, ζ’∈Fqを選択する第2選択部と、
W’=W(0,1)・(h(1)a(1))r’, Θ’=Θ(0,1)・(h(1)b(1))s’, Y’=Y(0,1)・h(1)r’+s’, U’=U(0,1)+(REV)B(1), Λ’=Λ(0,1)・h(1)ζ’を得る群演算部と、
Ψ1=e1(W’,Z1), Ψ2=e1(Θ’,Z2), Ψ3=e1(Y’,Z3), Ω1=en+μ(U’,k*), Ω2=e1(Λ’,k0)を得る双線形写像演算部と、
y, y’∈Fq ×に対するE(1,2)=Ψ1 y, F(1,2)=Ψ2 y, G(1,2)=Ψ3 y・Ω1 y’, Z(1,2)=Z3 y, H(1,2)=Ω2 y’を含む再暗号文ct(1,2)を生成する再暗号化部と、を含み、
REVがn+μ次元ベクトルREV=(REVι(1),...,REVι(n+μ))∈Fq n+μであり、何れか1個のREVκ∈{REVι(1),...,REVι(n+μ)}が前記ζ’であり、REVκを除くREVι(1),...,REVι(n+μ)が0∈Fqであり、
前記第2復号装置は、
e1(m’, Z(1,2))=G(1,2)/{H(1,2)c(2)・E(1,2)1/a(2)・F(1,2) 1/b(2)}
を満たすm’∈Gを復号値として得る第2復号部を含む、セキュリティシステム。
A security system having an encryption device, a first decryption device, a second decryption device, and a re-encryption device,
G and G T are cyclic groups, g is a generator of the cyclic group G, F q is a finite field of order q , F q × = F q \ {0}, and n is 1 N is an integer greater than or equal to 2 , and each of b i ∈G n + μ (i = 1, ..., n + μ) represents n + μ elements of the cyclic group G. N + μ dimensional basis vectors as elements, and B = (b 1 , ..., b n + μ ) is n + μ basis vectors b i (i = 1, ..., n + μ), and each of b i * ∈ G n + μ (i = 1, ..., n + μ) is an element of n + μ elements of the cyclic group G Dimensional basis vectors, B * = (b 1 * , ..., b n + μ * ) is n + μ basis vectors b i * (i = 1, ..., n + μ) The basis B and the basis B * are dual orthogonal basis, and the n + μ dimensional vector d = (d 1 , ..., d n + μ ) ∈F q n + μ (d ) B is Σ i = 1 n + μ d i・ b i , and n + μ dimension vector f = (f 1 , ..., f n + μ ) ∈F q n + μ f →) B * is Σ i = 1 n + μ f i · b i * Γ is an integer n + 1 ≦ Γ <n + μ, {ι (1), ..., ι (Γ)} ⊂ {1, ..., n + μ}, and B ^ = (b ι (1) , ..., b ι (Γ) ) and the secret key of the first decryption device is a (1), b (1), c (1), τ (1) ∈ F q × and the public key of the first decryption device is (h (1) = g τ (1) , h (1) a (1) , h (1) b (1) , h (1) c (1) , B (1) = c (1) · τ (1) · B ^), and the secret key of the second decryption device is a (2), b (2), c (2), τ (2) ∈F q × and the public key of the second decryption device is (h (2) = g τ (2) , h (2) a (2) , h (2) b (2) , h (2) c (2) , B (2) = c (2) ・ τ (2) ・ B ^), z, ρ, σ∈F q × , and v is an n-dimensional vector v = (v ι (1) , ..., v ι (n) ) ∈F q n , B (1,2) * = (ρ / c (1)) ・ c (2) ・ τ (2)・ B * and the re-encryption key is Z 1 = (h (2) a (2) ) z / a (1) , Z 2 = (h (2) b (2) ) z / b (1) , Z 3 = h (2) z , k 0 = h (2) ρ , k * = (RV ) B (1,2) * , RV is an n + μ dimensional vector RV = (RV ι (1) , ..., RV ι (n + μ) ) ∈F q n + μ , ι (i) ∈ {1, ..., n + μ} (i = 1, ..., n + μ) and {ι (1) ,. .., ι (n)} ⊂ {1, ..., n + μ}, and (RV ι (1) , ..., RV ι (n) ) is an n-dimensional vector σ · v = ( σ ・ v ι (1) , ..., σ ・ v ι (n) ), and any one RV κ ∈ {RV ι (n + 1) , ..., RV ι (Γ) } There is 1, xi] is an integer of 1 or more, a bilinear mapping e xi] to obtain the original said cyclic group G T with respect to the original direct product group G ξ × G ξ,
The encryption device is:
a first selector for selecting r, s, ζ, ω∈F q ;
Public key (h (1), h (1) a (1) , h (1) b (1) , h (1) c (1) , B (1)) and n-dimensional vector of the first decryption device x = (x ι (1) , ..., x ι (n) ) ∈F q n and the first ciphertext ct (0,1) of message m∈G is generated. And
The first ciphertext ct (0,1) is W (0,1) = (h (1) a (1) ) r , Θ (0,1) = (h (1) b (1) ) s , Y (0,1) = h (1) r + s・ m, U (0,1) = (CV ) B (1) , Λ (0,1) = h (1) ζ , CV Is an n + μ dimensional vector CV = (CV ι (1) , ..., CV ι (n + μ) ) ∈F q n + μ and (CV ι (1) , ..., CV ι (n) ) is an n-dimensional vector ω ・ x = (ω ・ x ι (1) , ..., ω ・ x ι (n) ), and any one CV κ ∈ {CV ι (n +1) , ..., CV ι (Γ) } is ζ, and a vector composed of elements obtained by removing CV κ from CV ι (n + 1) , ..., CV ι (Γ) and RV ι (n + 1) , ..., RV ι (Γ) and the inner product with a vector consisting of elements obtained by removing RV κ is 0,
The re-encryption device is
a second selector for selecting r ′, s ′, ζ′∈F q ;
W '= W (0,1) ・ (h (1) a (1) ) r' , Θ '= Θ (0,1) ・ (h (1) b (1) ) s' , Y' = Y (0,1) ・ h (1) r '+ s' , U '= U (0,1) + (REV ) B (1) , Λ' = Λ (0,1) ・ h (1) ζ A group operation unit to obtain '
Ψ 1 = e 1 (W ', Z 1 ), Ψ 2 = e 1 (Θ', Z 2 ), Ψ 3 = e 1 (Y ', Z 3 ), Ω 1 = e n + μ (U', k * ), Ω 2 = e 1 (Λ ', k 0 )
E (1,2) = Ψ 1 y , F (1,2) = Ψ 2 y , G (1,2) = Ψ 3 y・ Ω 1 y ' , Z (1 for y, y'∈F q × , 2) = Z 3 y , H (1,2) = Ω 2 y ′ to generate a re-ciphertext ct (1,2), and a re-encryption unit,
REV is an n + μ-dimensional vector REV = (REV ι (1) , ..., REV ι (n + μ) ) ∈F q n + μ , and any one REV κ ∈ {REV ι (1) , ..., REV ι (n + μ) } is ζ ′, and REV ι (1) , ..., REV ι (n + μ) excluding REV κ is 0∈F q Yes,
The second decoding device
e 1 (m ', Z (1,2)) = G (1,2) / (H (1,2) c (2)・ E (1,2) 1 / a (2)・ F (1, 2) 1 / b (2) }
A security system including a second decryption unit that obtains m′∈G that satisfies
請求項1のセキュリティシステムであって、
前記z及びρが乱数である、セキュリティシステム。
The security system of claim 1,
A security system, wherein z and ρ are random numbers.
請求項1又は2のセキュリティシステムであって、
前記暗号化装置は、さらに、
t, t~∈Gを選択する第3選択部と、
E(1,1)=e1((h(1)a(1))r, t), F(1,1)=e1((h(1)b(1))s, t), G(1,1)=e1((h(1)r+s・m, t))・e1(t~, (h(1)c(1))ζ), Z(1,1)=t, H(1,1)=e1(t~, h(1)ζ)を含む第2暗号文ct(1,1)を生成する第2暗号化部と、を含む、セキュリティシステム。
The security system according to claim 1 or 2,
The encryption device further includes:
a third selector for selecting t, t ~ ∈G;
E (1,1) = e 1 ((h (1) a (1) ) r , t), F (1,1) = e 1 ((h (1) b (1) ) s , t), G (1,1) = e 1 ((h (1) r + s・ m, t)) ・ e 1 (t ~ , (h (1) c (1) ) ζ ), Z (1,1) = including t, H (1,1) = e 1 (t ~, h (1) ζ) and a second encryption unit for generating a second encrypted text ct (1, 1) including, a security system.
請求項3のセキュリティシステムであって、
前記第1復号装置は、入力暗号文として前記第1暗号文ct(0,1)が得られた場合にm’=Y(0,1)/(W(0,1)1/a(1)・Θ(0,1)1/b(1))を復号値として得、入力暗号文として前記第2暗号文ct(1,1)が得られた場合にe1(m’, Z(1,1))=G(1,1)/{H(1,1)c(1)・E(1,1)1/a(1)・F(1,1)1/b(1)}を満たすm’∈Gを復号値として得る第1復号部を含む、セキュリティシステム。
The security system according to claim 3,
When the first ciphertext ct (0,1) is obtained as the input ciphertext, the first decryption device m ′ = Y (0,1) / (W (0,1) 1 / a (1 ) · Θ (0,1) 1 / b (1) ) as a decrypted value, and e 2 (m ′, Z () when the second ciphertext ct (1,1) is obtained as an input ciphertext. 1,1)) = G (1,1) / {H (1,1) c (1)・ E (1,1) 1 / a (1)・ F (1,1) 1 / b (1) }, A security system including a first decryption unit that obtains m′∈G that satisfies} as a decrypted value.
請求項3又は4のセキュリティシステムであって、
t, t~∈Gが乱数である、セキュリティシステム。
The security system according to claim 3 or 4,
Security system where t and t ~ ∈G are random numbers.
請求項1から5の何れかのセキュリティシステムであって、
前記ρ, σ, r, s, ζ, ω, r’, s’, ζ’, y, y’が乱数である、セキュリティシステム。
The security system according to any one of claims 1 to 5,
A security system, wherein the ρ, σ, r, s, ζ, ω, r ′, s ′, ζ ′, y, y ′ are random numbers.
請求項1から6の何れかのセキュリティシステムであって、
前記巡回群G, GTの位数がqである、セキュリティシステム。
The security system according to any one of claims 1 to 6,
The cyclic group G, the order of the G T is q, the security system.
請求項1から7の何れかのセキュリティシステムであって、
μ=2・n+2であり、Γ=n+2であり、B^=(bι(1),...,bι(n+2))であり、{ι(n+3),...,ι(3・n+2)}⊂{1,...,3・n+2}であり、RVが3・n+2次元ベクトルRV=(RVι(1),...,RVι(3・n+2))であり、1個のRVκ∈{RVι(n+1), RVι(n+2)}が1であり、RVκ以外の1個のRVφ∈{RVι(n+1), RVι(n+2)}が0であり、n個のRVε(1),...,RVε(n)∈{RVι(n+3),...,RVι(3・n+2)}が乱数ηε(1),...,ηε(n)∈Fqであり、RVε(1),...,RVε(n)以外のn個のRVυ(1),...,RVυ(n)∈{RVι(n+3),...,RVι(3・n+2)}のそれぞれが0であり、CVが3・n+2次元ベクトルCV=(CVι(1),...,CVι(3・n+2))であり、1個のCVκ∈{CVι(n+1), CVι(n+2)}が前記ζであり、CVκ以外の1個のCVφ∈{CVι(n+1), CVι(n+2)}が乱数ψ∈Fqであり、2・n個のCVι(n+3),...,CVι(3・n+2)のそれぞれが0である、セキュリティシステム。
The security system according to any one of claims 1 to 7,
μ = 2 ・ n + 2, Γ = n + 2, B ^ = (b ι (1) , ..., b ι (n + 2) ), {ι (n + 3) , ..., ι (3 ・ n + 2)} ⊂ {1, ..., 3 ・ n + 2}, RV is a 3 ・ n + 2 dimensional vector RV = (RV ι (1) , ..., RV ι (3 ・ n + 2) ), and one RV κ ∈ {RV ι (n + 1) , RV ι (n + 2) } is 1, and other than RV κ One RV φ ∈ {RV ι (n + 1) , RV ι (n + 2) } is 0, and n RV ε (1) , ..., RV ε (n) ∈ {RV ι (n + 3) , ..., RV ι (3 ・ n + 2) } is a random number η ε (1) , ..., η ε (n) εF q , and RV ε (1) ,. .., RV ε (n) other than the n-number of RV υ (1), ..., RV υ (n) ∈ {RV ι (n + 3), ..., RV ι (3 · n + 2 ) } Is 0, and CV is a 3 · n + 2 dimensional vector CV = (CV ι (1) , ..., CV ι (3 · n + 2) ), and one CV κ ∈ {CV ι (n + 1) , CV ι (n + 2) } is the ζ, and one CV φ ∈ {CV ι (n + 1) , CV ι (n + 2 ) other than CV κ ) } Is a random number ψ∈F q , and each of 2 · n CV ι (n + 3) , ..., CV ι (3 · n + 2) is 0.
選択部と暗号化部とを有する暗号化装置であって、
Gが巡回群であり、gが前記巡回群Gの生成元であり、Fqが位数qの有限体であり、Fq ×=Fq\{0}であり、nが1以上の整数であり、μが2以上の整数であり、bi∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B=(b1,...,bn+μ)がn+μ個の前記基底ベクトルbi(i=1,...,n+μ)からなる基底であり、n+μ次元ベクトルd=(d1,...,dn+μ)∈Fq nに対する(d)BがΣi=1 n+μdi・biであり、Γがn+1≦Γ<n+μの整数であり、{ι(1),...,ι(Γ)}⊂{1,...,n+μ}であり、B^=(bι(1),...,bι(Γ))であり、第1復号装置の秘密鍵がa(1), b(1), c(1), τ(1)∈Fq ×であり、前記第1復号装置の公開鍵が(h(1)=gτ(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1)=c(1)・τ(1)・B^)であり、
前記選択部が、r, s, ζ, ω∈Fqを選択し、
前記暗号化部が、前記第1復号装置の公開鍵(h(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1))とn次元ベクトルx=(xι(1),...,xι(n))∈Fq nとを用い、メッセージm∈Gの第1暗号文ct(0,1)を生成し、前記第1暗号文ct(0,1)がW(0,1)=(h(1)a(1))r, Θ(0,1)=(h(1)b(1))s, Y(0,1)=h(1)r+s・m,U(0,1)=(CV)B(1), Λ(0,1)=h(1)ζを含み、CVがn+μ次元ベクトルCV=(CVι(1),...,CVι(n+μ))∈Fq n+μであり、(CVι(1),...,CVι(n))がn次元ベクトルω・x=(ω・xι(1),...,ω・xι(n))であり、何れか1個のCVκ∈{CVι(n+1),...,CVι(Γ)}が前記ζである、暗号化装置。
An encryption device having a selection unit and an encryption unit,
G is a cyclic group, g is a generator of the cyclic group G, F q is a finite field of order q , F q × = F q \ {0}, and n is an integer of 1 or more , Μ is an integer of 2 or more, and each of b i ∈G n + μ (i = 1,..., N + μ) has n + μ elements of the cyclic group G as elements. n + μ dimensional basis vectors, and B = (b 1 , ..., b n + μ ) is obtained from n + μ basis vectors b i (i = 1, ..., n + μ). (D ) B for n + μ dimensional vector d = (d 1 , ..., d n + μ ) ∈F q n is Σ i = 1 n + μ d i・ b i Γ is an integer n + 1 ≦ Γ <n + μ, {ι (1), ..., ι (Γ)} ⊂ {1, ..., n + μ}, and B ^ = (b ι (1) , ..., b ι (Γ) ) and the secret key of the first decryption device is a (1), b (1), c (1), τ (1) ∈F q × , and the public key of the first decryption device is (h (1) = g τ (1) , h (1) a (1) , h (1) b (1) , h (1) c ( 1) , B (1) = c (1) ・ τ (1) ・ B ^)
The selection unit selects r, s, ζ, ω∈F q ,
The encryption unit includes public keys (h (1), h (1) a (1) , h (1) b (1) , h (1) c (1) , B (1 )) And the n-dimensional vector x = (x ι (1) , ..., x ι (n) ) ∈F q n and the first ciphertext ct (0,1) of message m∈G And the first ciphertext ct (0,1) is W (0,1) = (h (1) a (1) ) r , Θ (0,1) = (h (1) b (1) ) s , Y (0,1) = h (1) r + s・ m, U (0,1) = (CV ) B (1) , Λ (0,1) = h (1) ζ included , CV is an n + μ dimensional vector CV = (CV ι (1) , ..., CV ι (n + μ) ) ∈F q n + μ and (CV ι (1) , ... , CV ι (n) ) is an n-dimensional vector ω · x = (ω · x ι (1) , ..., ω · x ι (n) ), and any one CV κ ∈ {CV ι (n + 1) , ..., CV ι (Γ) } is the ζ.
インタフェース部と復号部とを有する復号装置であって、
G, GTが巡回群であり、gが前記巡回群Gの生成元であり、Fqが位数qの有限体であり、Fq ×=Fq\{0}であり、nが1以上の整数であり、μが2以上の整数であり、bi∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B=(b1,...,bn+μ)がn+μ個の前記基底ベクトルbi(i=1,...,n+μ)からなる基底であり、bi *∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B*=(b1 *,...,bn+μ *)がn+μ個の前記基底ベクトルbi *(i=1,...,n+μ)からなる基底であり、前記基底Bと前記基底B*とは双対直交基底であり、n+μ次元ベクトルd=(d1,...,dn+μ)∈Fq n+μに対する(d)BがΣi=1 n+μdi・biであり、n+μ次元ベクトルf=(f1,...,fn+μ)∈Fq n+μに対する(f)B*がΣi=1 n+μfi・bi *であり、Γがn+1≦Γ<n+μの整数であり、{ι(1),...,ι(Γ)}⊂{1,...,n+μ}であり、B^=( bι(1),...,bι(Γ))であり、当該復号装置の秘密鍵がa(1), b(1), c(1), τ(1)∈Fq ×であり、当該復号装置の公開鍵が(h(1)=gτ(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1)=c(1)・τ(1)・B^)であり、他の復号装置の秘密鍵がa(2), b(2), c(2), τ(2)∈Fq ×であり、前記他の復号装置の公開鍵が(h(2)=gτ(2), h(2)a(2), h(2)b(2), h(2)c(2), B(2)=c(2)・τ(2)・B^)であり、z, ρ, σ∈Fq ×であり、vがn次元ベクトルv=(vι(1),...,vι(n))∈Fq nであり、B(1,2)*=(ρ/c(1))・c(2)・τ(2)・B*であり、再暗号化鍵がZ1=(h(2)a(2))z/a(1), Z2=(h(2)b(2))z/b(1), Z3=h(2)z, k0=h(2)ρ, k*=(RV)B(1,2)*を含み、RVがn+μ次元ベクトルRV=(RVι(1),...,RVι(n+μ))∈Fq n+μであり、ι(i)∈{1,...,n+μ}(i=1,...,n+μ)であり、{ι(1),...,ι(n)}⊂{1,...,n+μ}であり、(RVι(1),..., RVι(n))がn次元ベクトルσ・v=(σ・vι(1),...,σ・vι(n))であり、何れか1個のRVκ∈{RVι(n+1),...,RVι(Γ)}が1であり、ξが1以上の整数であり、eξが直積群Gξ×Gξの元に対して前記巡回群GTの元を得る双線形写像であり、
前記インタフェース部が、W(0,1)=(h(1)a(1))r, Θ(0,1)=(h(1)b(1))s, Y(0,1)=h(1)r+s・m,U(0,1)=(CV)B(1), Λ(0,1)=h(1)ζを含む第1暗号文ct(0,1)、又は、E(1,1)=e1((h(1)a(1))r, t), F(1,1)=e1((h(1)b(1))s, t), G(1,1)=e1((h(1)r+s・m, t))・e1(t~, (h(1)c(1))ζ), Z(1,1)=t, H(1,1)=e1(t~, h(1)ζ)を含む第2暗号文ct(1,1)である入力暗号文の入力を受け付け、CVがn+μ次元ベクトルCV=(CVι(1),...,CVι(n+μ))∈Fq n+μであり、(CVι(1),...,CVι(n))がn次元ベクトルω・x=(ω・xι(1),...,ω・xι(n))であり、何れか1個のCVκ∈{CVι(n+1),...,CVι(Γ)}が前記ζであり、CVι(n+1),...,CVι(Γ)からCVκを除いた要素からなるベクトルとRVι(n+1),...,RVι(Γ)からRVκを除いた要素からなるベクトルとの内積が0であり、
前記復号部が、入力暗号文として前記第1暗号文ct(0,1)が前記インタフェース部に入力された場合にm’=Y(0,1)/(W(0,1)1/a(1)・Θ(0,1)1/b(1))を復号値として得、入力暗号文として前記第2暗号文ct(1,1)が前記インタフェース部に入力された場合にe1(m’, Z(1,1))=G(1,1)/{H(1,1)c(1)・E(1,1)1/a(1)・F(1,1)1/b(1)}を満たすm’∈Gを復号値として得る、復号装置。
A decoding device having an interface unit and a decoding unit,
G and G T are cyclic groups, g is a generator of the cyclic group G, F q is a finite field of order q , F q × = F q \ {0}, and n is 1 N is an integer greater than or equal to 2 , and each of b i ∈G n + μ (i = 1, ..., n + μ) represents n + μ elements of the cyclic group G. N + μ dimensional basis vectors as elements, and B = (b 1 , ..., b n + μ ) is n + μ basis vectors b i (i = 1, ..., n + μ), and each of b i * ∈ G n + μ (i = 1, ..., n + μ) is an element of n + μ elements of the cyclic group G Dimensional basis vectors, B * = (b 1 * , ..., b n + μ * ) is n + μ basis vectors b i * (i = 1, ..., n + μ) The basis B and the basis B * are dual orthogonal basis, and the n + μ dimensional vector d = (d 1 , ..., d n + μ ) ∈F q n + μ (d ) B is Σ i = 1 n + μ d i・ b i , and n + μ dimension vector f = (f 1 , ..., f n + μ ) ∈F q n + μ f →) B * is Σ i = 1 n + μ f i · b i * Γ is an integer n + 1 ≦ Γ <n + μ, {ι (1), ..., ι (Γ)} ⊂ {1, ..., n + μ}, and B ^ = (b ι (1) , ..., b ι (Γ) ) and the secret key of the decryption device is a (1), b (1), c (1), τ (1) ∈F q X and the public key of the decryption device is (h (1) = g τ (1) , h (1) a (1) , h (1) b (1) , h (1) c (1) , B (1) = c (1) ・ τ (1) ・ B ^) and the secret key of the other decryption device is a (2), b (2), c (2), τ (2) ∈F q × and the public key of the other decryption device is (h (2) = g τ (2) , h (2) a (2) , h (2) b (2) , h (2) c ( 2) , B (2) = c (2) ・ τ (2) ・ B ^), z, ρ, σ∈F q × , and v is an n-dimensional vector v = (v ι (1 ) , ..., v ι (n) ) ∈F q n and B (1,2) * = (ρ / c (1)) ・ c (2) ・ τ (2) ・ B * , The re-encryption key is Z 1 = (h (2) a (2) ) z / a (1) , Z 2 = (h (2) b (2) ) z / b (1) , Z 3 = h (2) z , k 0 = h (2) ρ , k * = (RV ) B (1,2) * , RV is an n + μ dimensional vector RV = (RV ι (1),. .., RV ι (n + μ) ) ∈F q n + μ , and ι (i) ∈ {1, ..., n + μ} (i = 1, ..., n + μ) Yes, {ι (1), ..., ι (n)} ⊂ {1, .. ., n + μ} and (RV ι (1) , ..., RV ι (n) ) is an n-dimensional vector σ ・ v = (σ ・ v ι (1) , ..., σ ・v ι (n) ), any one RV κ ∈ {RV ι (n + 1) , ..., RV ι (Γ) } is 1, ξ is an integer greater than or equal to 1 , e ξ is a bilinear map for obtaining the element of the cyclic group G T with respect to the element of the direct product group G ξ × G ξ ,
The interface unit is W (0,1) = (h (1) a (1) ) r , Θ (0,1) = (h (1) b (1) ) s , Y (0,1) = h (1) r + s · m, U (0,1) = (CV ) B (1) , Λ (0,1) = h (1) First ciphertext ct (0,1) containing ζ Or E (1,1) = e 1 ((h (1) a (1) ) r , t), F (1,1) = e 1 ((h (1) b (1) ) s , t), G (1,1) = e 1 ((h (1) r + s・ m, t)) ・ e 1 (t ~ , (h (1) c (1) ) ζ ), Z (1 , 1) = t, H (1,1) = e 1 (t ~ , h (1) ζ ), the second ciphertext ct (1,1) is received, and CV n + μ dimensional vector CV = (CV ι (1) , ..., CV ι (n + μ) ) ∈F q n + μ and (CV ι (1) , ..., CV ι ( n) ) is an n-dimensional vector ω · x = (ω · x ι (1) , ..., ω · x ι (n) ), and any one of CV κ ∈ {CV ι (n + 1) , ..., CV ι (Γ) } is the ζ, and a vector composed of elements obtained by removing CV κ from CV ι (n + 1) , ..., CV ι (Γ) and RV ι ( n + 1) , ..., RV ι (Γ) and the inner product with the vector consisting of the elements excluding RV κ is 0,
When the decryption unit inputs the first ciphertext ct (0,1) as an input ciphertext to the interface unit, m ′ = Y (0,1) / (W (0,1) 1 / a (1) · Θ (0,1) 1 / b (1) ) is obtained as a decrypted value, and e 1 when the second ciphertext ct (1,1) is input to the interface unit as an input ciphertext. (m ', Z (1,1)) = G (1,1) / {H (1,1) c (1)・ E (1,1) 1 / a (1)・ F (1,1) A decoding device that obtains m′∈G satisfying 1 / b (1) } as a decoded value.
インタフェース部と復号部とを有する復号装置であって、
G, GTが巡回群であり、gが前記巡回群Gの生成元であり、Fqが位数qの有限体であり、Fq ×=Fq\{0}であり、nが1以上の整数であり、μが2以上の整数であり、bi∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B=(b1,...,bn+μ)がn+μ個の前記基底ベクトルbi(i=1,...,n+μ)からなる基底であり、bi *∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B*=(b1 *,...,bn+μ *)がn+μ個の前記基底ベクトルbi *(i=1,...,n+μ)からなる基底であり、前記基底Bと前記基底B*とは双対直交基底であり、n+μ次元ベクトルd=(d1,...,dn+μ)∈Fq n+μに対する(d)BがΣi=1 n+μdi・biであり、n+μ次元ベクトルf=(f1,...,fn+μ)∈Fq n+μに対する(f)B*がΣi=1 n+μfi・bi *であり、Γがn+1≦Γ<n+μの整数であり、{ι(1),...,ι(Γ)}⊂{1,...,n+μ}であり、B^=(bι(1),...,bι(Γ))であり、当該復号装置の秘密鍵がa(2), b(2), c(2), τ(2)∈Fq ×であり、当該復号装置の公開鍵が(h(2)=gτ(2), h(2)a(2), h(2)b(2), h(2)c(2), B(2)=c(2)・τ(2)・B^)であり、他の復号装置の秘密鍵がa(1), b(1), c(1), τ(1)∈Fq ×であり、前記他の復号装置の公開鍵が(h(1)=gτ(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1)=c(1)・τ(1)・B^)であり、z, ρ, σ∈Fq ×であり、vがn次元ベクトルv=(vι(1),...,vι(n))∈Fq nであり、B(1,2)*=(ρ/c(1))・c(2)・τ(2)・B*であり、再暗号化鍵がZ1=(h(2)a(2))z/a(1), Z2=(h(2)b(2))z/b(1), Z3=h(2)z, k0=h(2)ρ, k*=(RV)B(1,2)*を含み、RVがn+μ次元ベクトルRV=(RVι(1),...,RVι(n+μ))∈Fq n+μであり、ι(i)∈{1,...,n+μ}(i=1,...,n+μ)であり、{ι(1),...,ι(n)}⊂{1,...,n+μ}であり、(RVι(1),..., RVι(n))がn次元ベクトルσ・v=(σ・vι(1),...,σ・vι(n))であり、何れか1個のRVκ∈{RVι(n+1),...,RVι(Γ)}が1であり、ξが1以上の整数であり、eξが直積群Gξ×Gξの元に対して前記巡回群GTの元を得る双線形写像であり、W’=W(0,1)・(h(1)a(1))r’, Θ’=Θ(0,1)・(h(1)b(1))s’, Y’=Y(0,1)・h(1)r’+s’, U’=U(0,1)+(REV)B(1), Λ’=Λ(0,1)・h(1)ζ’であり、Ψ1=e1(W’,Z1), Ψ2=e1(Θ’,Z2), Ψ3=e1(Y’,Z3), Ω1=en+μ(U’,k*), Ω2=e1(Λ’,k0)であり、REVがn+μ次元ベクトルREV=(REVι(1),...,REVι(n+μ))∈Fq n+μであり、何れか1個のREVκ∈{REVι(1),...,REVι(n+μ)}が前記ζ’であり、REVκを除くREVι(1),...,REVι(n+μ)が0∈Fqであり、
前記インタフェース部が、E(1,2)=Ψ1 y, F(1,2)=Ψ2 y, G(1,2)=Ψ3 y・Ω1 y’, Z(1,2)=Z3 y, H(1,2)=Ω2 y’を含む再暗号文ct(1,2)の入力を受け付け、
前記復号部が、e1(m’, Z(1,2))=G(1,2)/{H(1,2)c(2)・E(1,2)1/a(2)・F(1,2) 1/b(2)}
を満たすm’∈Gを復号値として得る、復号装置。
A decoding device having an interface unit and a decoding unit,
G and G T are cyclic groups, g is a generator of the cyclic group G, F q is a finite field of order q , F q × = F q \ {0}, and n is 1 N is an integer greater than or equal to 2 , and each of b i ∈G n + μ (i = 1, ..., n + μ) represents n + μ elements of the cyclic group G. N + μ dimensional basis vectors as elements, and B = (b 1 , ..., b n + μ ) is n + μ basis vectors b i (i = 1, ..., n + μ), and each of b i * ∈ G n + μ (i = 1, ..., n + μ) is an element of n + μ elements of the cyclic group G Dimensional basis vectors, B * = (b 1 * , ..., b n + μ * ) is n + μ basis vectors b i * (i = 1, ..., n + μ) The basis B and the basis B * are dual orthogonal basis, and the n + μ dimensional vector d = (d 1 , ..., d n + μ ) ∈F q n + μ (d ) B is Σ i = 1 n + μ d i・ b i , and n + μ dimension vector f = (f 1 , ..., f n + μ ) ∈F q n + μ f →) B * is Σ i = 1 n + μ f i · b i * Γ is an integer n + 1 ≦ Γ <n + μ, {ι (1), ..., ι (Γ)} ⊂ {1, ..., n + μ}, and B ^ = (b ι (1) , ..., b ι (Γ) ) and the secret key of the decryption device is a (2), b (2), c (2), τ (2) ∈F q × , and the public key of the decryption device is (h (2) = g τ (2) , h (2) a (2) , h (2) b (2) , h (2) c (2) , B (2) = c (2) ・ τ (2) ・ B ^) and the secret key of the other decryption device is a (1), b (1), c (1), τ (1) ∈F q × , and the public keys of the other decryption devices are (h (1) = g τ (1) , h (1) a (1) , h (1) b (1) , h (1) c ( 1) , B (1) = c (1) ・ τ (1) ・ B ^), z, ρ, σ∈F q × , and v is an n-dimensional vector v = (v ι (1 ) , ..., v ι (n) ) ∈F q n and B (1,2) * = (ρ / c (1)) ・ c (2) ・ τ (2) ・ B * , The re-encryption key is Z 1 = (h (2) a (2) ) z / a (1) , Z 2 = (h (2) b (2) ) z / b (1) , Z 3 = h (2) z , k 0 = h (2) ρ , k * = (RV ) B (1,2) * , where RV is an n + μ dimensional vector RV = (RV ι (1),. .., RV ι (n + μ) ) ∈F q n + μ , and ι (i) ∈ {1, ..., n + μ} (i = 1, ..., n + μ) Yes, {ι (1), ..., ι (n)} ⊂ {1, ... , n + μ} and (RV ι (1) , ..., RV ι (n) ) is an n-dimensional vector σ ・ v = (σ ・ v ι (1) , ..., σ ・ v ι (n) ), any one RV κ ∈ {RV ι (n + 1) , ..., RV ι (Γ) } is 1, ξ is an integer greater than or equal to 1 , e ξ is a bilinear map for obtaining an element of the cyclic group G T with respect to an element of the direct product group G ξ × G ξ , and W ′ = W (0,1) · (h (1) a (1) ) r ' , Θ' = Θ (0,1) ・ (h (1) b (1) ) s' , Y '= Y (0,1) ・ h (1) r' + s' , U '= U ( 0,1) + (REV ) B (1) , Λ '= Λ (0,1) ・ h (1) ζ' , Ψ 1 = e 1 (W ', Z 1 ), Ψ 2 = e 1 (Θ ', Z 2 ), Ψ 3 = e 1 (Y', Z 3 ), Ω 1 = e n + μ (U ', k * ), Ω 2 = e 1 (Λ', k 0 ) REV is an n + μ-dimensional vector REV = (REV ι (1) , ..., REV ι (n + μ) ) ∈F q n + μ , and any one REV κ ∈ { REV ι (1) , ..., REV ι (n + μ) } is ζ ', and REV ι (1) , ..., REV ι (n + μ) excluding REV κ is 0∈F q ,
Wherein the interface unit is, E (1,2) = Ψ 1 y, F (1,2) = Ψ 2 y, G (1,2) = Ψ 3 y · Ω 1 y ', Z (1,2) = Accept re-ciphertext ct (1,2) input including Z 3 y , H (1,2) = Ω 2 y '
The decoding unit is e 1 (m ′, Z (1,2)) = G (1,2) / {H (1,2) c (2) · E (1,2) 1 / a (2)・ F (1,2) 1 / b (2) }
A decoding apparatus that obtains m′∈G satisfying the condition as a decoded value.
選択部と群演算部と双線形写像演算部と再暗号化部とを有する再暗号化装置であって、
G, GTが巡回群であり、gが前記巡回群Gの生成元であり、Fqが位数qの有限体であり、Fq ×=Fq\{0}であり、nが1以上の整数であり、μが2以上の整数であり、bi∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B=(b1,...,bn+μ)がn+μ個の前記基底ベクトルbi(i=1,...,n+μ)からなる基底であり、bi *∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B*=(b1 *,...,bn+μ *)がn+μ個の前記基底ベクトルbi *(i=1,...,n+μ)からなる基底であり、前記基底Bと前記基底B*とは双対直交基底であり、n+μ次元ベクトルd=(d1,...,dn+μ)∈Fq n+μに対する(d)BがΣi=1 n+μdi・biであり、n+μ次元ベクトルf=(f1,...,fn+μ)∈Fq n+μに対する(f)B*がΣi=1 n+μfi・bi *であり、Γがn+1≦Γ<n+μの整数であり、{ι(1),...,ι(Γ)}⊂{1,...,n+μ}であり、B^=(bι(1),...,bι(Γ))であり、第1復号装置の秘密鍵がa(1), b(1), c(1), τ(1)∈Fq ×であり、前記第1復号装置の公開鍵が(h(1)=gτ(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1)=c(1)・τ(1)・B^)であり、第2復号装置の秘密鍵がa(2), b(2), c(2), τ(2)∈Fq ×であり、前記第2復号装置の公開鍵が(h(2)=gτ(2), h(2)a(2), h(2)b(2), h(2)c(2), B(2)=c(2)・τ(2)・B^)であり、z, ρ, σ∈Fq ×であり、vがn次元ベクトルv=(vι(1),...,vι(n))∈Fq nであり、B(1,2)*=(ρ/c(1))・c(2)・τ(2)・B*であり、再暗号化鍵がZ1=(h(2)a(2))z/a(1), Z2=(h(2)b(2))z/b(1), Z3=h(2)z, k0=h(2)ρ, k*=(RV)B(1,2)*を含み、RVがn+μ次元ベクトルRV=(RVι(1),...,RVι(n+μ))∈Fq n+μであり、ι(i)∈{1,...,n+μ}(i=1,...,n+μ)であり、{ι(1),...,ι(n)}⊂{1,...,n+μ}であり、(RVι(1),..., RVι(n))がn次元ベクトルσ・v=(σ・vι(1),...,σ・vι(n))であり、何れか1個のRVκ∈{RVι(n+1),...,RVι(Γ)}が1であり、ξが1以上の整数であり、eξが直積群Gξ×Gξの元に対して前記巡回群GTの元を得る双線形写像であり、
前記選択部が、r’, s’, ζ’∈Fqを選択し、
前記群演算部が、W(0,1), Θ(0,1), Y(0,1), U(0,1), Λ(0,1)を含む第1暗号文ct(0,1)に対して、W’=W(0,1)・(h(1)a(1))r’, Θ’=Θ(0,1)・(h(1)b(1))s’, Y’=Y(0,1)・h(1)r’+s’, U’=U(0,1)+(REV)B(1), Λ’=Λ(0,1)・h(1)ζ’を得、REVがn+μ次元ベクトルREV=(REVι(1),...,REVι(n+μ))∈Fq n+μであり、何れか1個のREVκ∈{REVι(1),...,REVι(n+μ)}が前記ζ’であり、REVκを除くREVι(1),...,REVι(n+μ)が0∈Fqであり、
前記双線形写像演算部が、Ψ1=e1(W’,Z1), Ψ2=e1(Θ’,Z2), Ψ3=e1(Y’,Z3), Ω1=en+μ(U’,k*), Ω2=e1(Λ’,k0)を得、
前記再暗号化部が、y, y’∈Fq ×に対するE(1,2)=Ψ1 y, F(1,2)=Ψ2 y, G(1,2)=Ψ3 y・Ω1 y’, Z(1,2)=Z3 y, H(1,2)=Ω2 y’を含む再暗号文ct(1,2)を生成する、再暗号化装置。
A re-encryption device having a selection unit, a group operation unit, a bilinear mapping operation unit, and a re-encryption unit,
G and G T are cyclic groups, g is a generator of the cyclic group G, F q is a finite field of order q , F q × = F q \ {0}, and n is 1 N is an integer greater than or equal to 2 , and each of b i ∈G n + μ (i = 1, ..., n + μ) represents n + μ elements of the cyclic group G. N + μ dimensional basis vectors as elements, and B = (b 1 , ..., b n + μ ) is n + μ basis vectors b i (i = 1, ..., n + μ), and each of b i * ∈ G n + μ (i = 1, ..., n + μ) is an element of n + μ elements of the cyclic group G Dimensional basis vectors, B * = (b 1 * , ..., b n + μ * ) is n + μ basis vectors b i * (i = 1, ..., n + μ) The basis B and the basis B * are dual orthogonal basis, and the n + μ dimensional vector d = (d 1 , ..., d n + μ ) ∈F q n + μ (d ) B is Σ i = 1 n + μ d i・ b i , and n + μ dimension vector f = (f 1 , ..., f n + μ ) ∈F q n + μ f →) B * is Σ i = 1 n + μ f i · b i * Γ is an integer n + 1 ≦ Γ <n + μ, {ι (1), ..., ι (Γ)} ⊂ {1, ..., n + μ}, and B ^ = (b ι (1) , ..., b ι (Γ) ) and the secret key of the first decryption device is a (1), b (1), c (1), τ (1) ∈F q × , and the public key of the first decryption device is (h (1) = g τ (1) , h (1) a (1) , h (1) b (1) , h (1) c ( 1) , B (1) = c (1) · τ (1) · B ^) and the secret key of the second decryption device is a (2), b (2), c (2), τ (2 ) ∈F q × and the public key of the second decryption device is (h (2) = g τ (2) , h (2) a (2) , h (2) b (2) , h (2 ) c (2) , B (2) = c (2) ・ τ (2) ・ B ^), z, ρ, σ∈F q × , and v is an n-dimensional vector v = (v ι (1) , ..., v ι (n) ) ∈F q n and B (1,2) * = (ρ / c (1)) ・ c (2) ・ τ (2) ・ B * And the re-encryption key is Z 1 = (h (2) a (2) ) z / a (1) , Z 2 = (h (2) b (2) ) z / b (1) , Z 3 = h (2) z , k 0 = h (2) ρ , k * = (RV ) B (1,2) * , where RV is an n + μ dimensional vector RV = (RV ι (1 ) , ..., RV ι (n + μ) ) ∈F q n + μ , and ι (i) ∈ {1, ..., n + μ} (i = 1, ..., n + μ) and {ι (1), ..., ι (n)} ⊂ {1, ..., n + μ}, and (RV ι (1) , ..., RV ι (n) ) is an n-dimensional vector σ ・ v = (σ ・ v ι (1),. .., σ ・ v ι (n) ), and any one RV κ ∈ {RV ι (n + 1) , ..., RV ι (Γ) } is 1, and ξ is 1 or more E ξ is a bilinear map for obtaining an element of the cyclic group G T with respect to an element of the Cartesian product group G ξ × G ξ ,
The selection unit selects r ′, s ′, ζ′∈F q ,
The group operation unit includes a first ciphertext ct (0,1) including W (0,1), Θ (0,1), Y (0,1), U (0,1), Λ (0,1). 1), W '= W (0,1) ・ (h (1) a (1) ) r' , Θ '= Θ (0,1) ・ (h (1) b (1) ) s ' , Y' = Y (0,1) ・ h (1) r '+ s' , U '= U (0,1) + (REV ) B (1) , Λ' = Λ (0,1)・ H (1) ζ ' is obtained, REV is an n + μ dimensional vector REV = (REV ι (1) , ..., REV ι (n + μ) ) ∈F q n + μ Or REV κ ∈ {REV ι (1) , ..., REV ι (n + μ) } is the ζ ′, and REV ι (1) , ..., REV ι ( excluding REV κ n + μ) is 0∈F q ,
The bilinear map calculation unit includes Ψ 1 = e 1 (W ′, Z 1 ), Ψ 2 = e 1 (Θ ′, Z 2 ), Ψ 3 = e 1 (Y ′, Z 3 ), Ω 1 = e n + μ (U ', k * ), Ω 2 = e 1 (Λ', k 0 )
The re-encryption unit is configured such that E (1,2) = Ψ 1 y , F (1,2) = Ψ 2 y , G (1,2) = Ψ 3 y · Ω for y, y′∈F q × 1 y ′ , Z (1,2) = Z 3 y , H (1,2) = Ω 2 Re-encryption device that generates re-ciphertext ct (1,2) including y ′ .
選択部と再暗号化鍵生成部とを有する難読化装置であって、
G, GTが巡回群であり、gが前記巡回群Gの生成元であり、Fqが位数qの有限体であり、Fq ×=Fq\{0}であり、nが1以上の整数であり、μが2以上の整数であり、bi∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B=(b1,...,bn+μ)がn+μ個の前記基底ベクトルbi(i=1,...,n+μ)からなる基底であり、bi *∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B*=(b1 *,...,bn+μ *)がn+μ個の前記基底ベクトルbi *(i=1,...,n+μ)からなる基底であり、前記基底Bと前記基底B*とは双対直交基底であり、n+μ次元ベクトルd=(d1,...,dn+μ)∈Fq n+μに対する(d)BがΣi=1 n+μdi・biであり、n+μ次元ベクトルf=(f1,...,fn+μ)∈Fq n+μに対する(f)B*がΣi=1 n+μfi・bi *であり、Γがn+1≦Γ<n+μの整数であり、{ι(1),...,ι(Γ)}⊂{1,...,n+μ}であり、B^=(bι(1),...,bι(Γ))であり、第1復号装置の秘密鍵がa(1), b(1), c(1), τ(1)∈Fq ×であり、前記第1復号装置の公開鍵が(h(1)=gτ(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1)=c(1)・τ(1)・B^)であり、第2復号装置の秘密鍵がa(2), b(2), c(2), τ(2)∈Fq ×であり、前記第2復号装置の公開鍵が(h(2)=gτ(2), h(2)a(2), h(2)b(2), h(2)c(2), B(2)=c(2)・τ(2)・B^)であり、
前記選択部が、z, ρ, σ∈Fq ×を生成し、
前記再暗号化鍵生成部が、n次元ベクトルv=(vι(1),...,vι(n))∈Fq nに対して、Z1=(h(2)a(2))z/a(1), Z2=(h(2)b(2))z/b(1), Z3=h(2)z, k0=h(2)ρ, k*=(RV)B(1,2)*を含む再暗号化鍵を生成し、B(1,2)*=(ρ/c(1))・c(2)・τ(2)・B*であり、RVがn+μ次元ベクトルRV=(RVι(1),...,RVι(n+μ))∈Fq n+μであり、ι(i)∈{1,...,n+μ}(i=1,...,n+μ)であり、{ι(1),...,ι(n)}⊂{1,...,n+μ}であり、(RVι(1),..., RVι(n))がn次元ベクトルσ・v=(σ・vι(1),...,σ・vι(n))であり、何れか1個のRVκ∈{RVι(n+1),...,RVι(Γ)}が1である、難読化装置。
An obfuscation device having a selection unit and a re-encryption key generation unit,
G and G T are cyclic groups, g is a generator of the cyclic group G, F q is a finite field of order q , F q × = F q \ {0}, and n is 1 N is an integer greater than or equal to 2 , and each of b i ∈G n + μ (i = 1, ..., n + μ) represents n + μ elements of the cyclic group G. N + μ dimensional basis vectors as elements, and B = (b 1 , ..., b n + μ ) is n + μ basis vectors b i (i = 1, ..., n + μ), and each of b i * ∈ G n + μ (i = 1, ..., n + μ) is an element of n + μ elements of the cyclic group G Dimensional basis vectors, B * = (b 1 * , ..., b n + μ * ) is n + μ basis vectors b i * (i = 1, ..., n + μ) The basis B and the basis B * are dual orthogonal basis, and the n + μ dimensional vector d = (d 1 , ..., d n + μ ) ∈F q n + μ (d ) B is Σ i = 1 n + μ d i・ b i , and n + μ dimension vector f = (f 1 , ..., f n + μ ) ∈F q n + μ f →) B * is Σ i = 1 n + μ f i · b i * Γ is an integer n + 1 ≦ Γ <n + μ, {ι (1), ..., ι (Γ)} ⊂ {1, ..., n + μ}, and B ^ = (b ι (1) , ..., b ι (Γ) ) and the secret key of the first decryption device is a (1), b (1), c (1), τ (1) ∈F q × , and the public key of the first decryption device is (h (1) = g τ (1) , h (1) a (1) , h (1) b (1) , h (1) c ( 1) , B (1) = c (1) · τ (1) · B ^) and the secret key of the second decryption device is a (2), b (2), c (2), τ (2 ) ∈F q × and the public key of the second decryption device is (h (2) = g τ (2) , h (2) a (2) , h (2) b (2) , h (2 ) c (2) , B (2) = c (2) ・ τ (2) ・ B ^)
The selection unit generates z, ρ, σ∈F q × ,
The re-encryption key generation unit performs Z 1 = (h (2) a ( ) for an n-dimensional vector v = (v ι (1) , ..., v ι (n) ) ∈F q n . 2) ) z / a (1) , Z 2 = (h (2) b (2) ) z / b (1) , Z 3 = h (2) z , k 0 = h (2) ρ , k * = (RV →) B (1,2 ) * generate re-encryption key containing, B (1,2) * = ( ρ / c (1)) · c (2) · τ (2) · B * And RV is an n + μ dimensional vector RV = (RV ι (1) , ..., RV ι (n + μ) ) ∈F q n + μ and ι (i) ∈ {1 , ..., n + μ} (i = 1, ..., n + μ) and {ι (1), ..., ι (n)} ⊂ {1, ..., n + μ}, and (RV ι (1) , ..., RV ι (n) ) is an n-dimensional vector σ ・ v = (σ ・ v ι (1) , ..., σ ・ v ι (n ) ), And any one RV κ ∈ {RV ι (n + 1) ,..., RV ι (Γ) } is 1.
請求項13の難読化装置であって、
前記z及びρが乱数である、難読化装置。
The obfuscation device of claim 13,
An obfuscation device, wherein z and ρ are random numbers.
暗号化装置で、r, s, ζ, ω∈Fqを選択するステップと、
前記暗号化装置で、第1復号装置の公開鍵(h(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1))とn次元ベクトルx=(xι(1),...,xι(n))∈Fq nとを用い、メッセージm∈Gの第1暗号文ct(0,1)を生成するステップと、
再暗号化装置で、r’, s’, ζ’∈Fqを選択するステップと、
前記再暗号化装置で、W’=W(0,1)・(h(1)a(1))r’, Θ’=Θ(0,1)・(h(1)b(1))s’, Y’=Y(0,1)・h(1)r’+s’, U’=U(0,1)+(REV)B(1), Λ’=Λ(0,1)・h(1)ζ’を得るステップと、
前記再暗号化装置で、Ψ1=e1(W’,Z1), Ψ2=e1(Θ’,Z2), Ψ3=e1(Y’,Z3), Ω1=en+μ(U’,k*), Ω2=e1(Λ’,k0)を得るステップと、
前記再暗号化装置で、y, y’∈Fq ×に対するE(1,2)=Ψ1 y, F(1,2)=Ψ2 y, G(1,2)=Ψ3 y・Ω1 y’, Z(1,2)=Z3 y, H(1,2)=Ω2 y’を含む再暗号文ct(1,2)を生成するステップと、
第2復号装置で、e1(m’, Z(1,2))=G(1,2)/{H(1,2)c(2)・E(1,2)1/a(2)・F(1,2) 1/b(2)}を満たすm’∈Gを復号値として得るステップと、を有し、
G, GTが巡回群であり、gが前記巡回群Gの生成元であり、Fqが位数qの有限体であり、Fq ×=Fq\{0}であり、nが1以上の整数であり、μが2以上の整数であり、bi∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B=(b1,...,bn+μ)がn+μ個の前記基底ベクトルbi(i=1,...,n+μ)からなる基底であり、bi *∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B*=(b1 *,...,bn+μ *)がn+μ個の前記基底ベクトルbi *(i=1,...,n+μ)からなる基底であり、前記基底Bと前記基底B*とは双対直交基底であり、n+μ次元ベクトルd=(d1,...,dn+μ)∈Fq n+μに対する(d)BがΣi=1 n+μdi・biであり、n+μ次元ベクトルf=(f1,...,fn+μ)∈Fq n+μに対する(f)B*がΣi=1 n+μfi・bi *であり、Γがn+1≦Γ<n+μの整数であり、{ι(1),...,ι(Γ)}⊂{1,...,n+μ}であり、B^=(bι(1),...,bι(Γ))であり、前記第1復号装置の秘密鍵がa(1), b(1), c(1), τ(1)∈Fq ×であり、前記第1復号装置の公開鍵が(h(1)=gτ(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1)=c(1)・τ(1)・B^)であり、前記第2復号装置の秘密鍵がa(2), b(2), c(2), τ(2)∈Fq ×であり、前記第2復号装置の公開鍵が(h(2)=gτ(2), h(2)a(2), h(2)b(2), h(2)c(2), B(2)=c(2)・τ(2)・B^)であり、z, ρ, σ∈Fq ×であり、vがn次元ベクトルv=(vι(1),...,vι(n))∈Fq nであり、B(1,2)*=(ρ/c(1))・c(2)・τ(2)・B*であり、再暗号化鍵がZ1=(h(2)a(2))z/a(1), Z2=(h(2)b(2))z/b(1), Z3=h(2)z, k0=h(2)ρ, k*=(RV)B(1,2)*を含み、RVがn+μ次元ベクトルRV=(RVι(1),...,RVι(n+μ))∈Fq n+μであり、ι(i)∈{1,...,n+μ}(i=1,...,n+μ)であり、{ι(1),...,ι(n)}⊂{1,...,n+μ}であり、(RVι(1),..., RVι(n))がn次元ベクトルσ・v=(σ・vι(1),...,σ・vι(n))であり、何れか1個のRVκ∈{RVι(n+1),...,RVι(Γ)}が1であり、ξが1以上の整数であり、eξが直積群Gξ×Gξの元に対して前記巡回群GTの元を得る双線形写像であり、前記第1暗号文ct(0,1)がW(0,1)=(h(1)a(1))r, Θ(0,1)=(h(1)b(1))s, Y(0,1)=h(1)r+s・m,U(0,1)=(CV)B(1), Λ(0,1)=h(1)ζを含み、CVがn+μ次元ベクトルCV=(CVι(1),...,CVι(n+μ))∈Fq n+μであり、(CVι(1),...,CVι(n))がn次元ベクトルω・x=(ω・xι(1),...,ω・xι(n))であり、何れか1個のCVκ∈{CVι(n+1),...,CVι(Γ)}が前記ζであり、CVι(n+1),...,CVι(Γ)からCVκを除いた要素からなるベクトルとRVι(n+1),...,RVι(Γ)からRVκを除いた要素からなるベクトルとの内積が0であり、REVがn+μ次元ベクトルREV=(REVι(1),...,REVι(n+μ))∈Fq n+μであり、何れか1個のREVκ∈{REVι(1),...,REVι(n+μ)}が前記ζ’であり、REVκを除くREVι(1),...,REVι(n+μ)が0∈Fqである、セキュリティ方法。
Selecting r, s, ζ, ω∈F q in the encryption device;
In the encryption device, the public key (h (1), h (1) a (1) , h (1) b (1) , h (1) c (1) , B (1) of the first decryption device ) And n-dimensional vector x = (x ι (1) , ..., x ι (n) ) ∈F q n to generate the first ciphertext ct (0,1) of message m∈G And steps to
Selecting r ′, s ′, ζ′∈F q in the re-encryption device;
In the re-encryption device, W ′ = W (0,1) · (h (1) a (1) ) r ′ , Θ ′ = Θ (0,1) · (h (1) b (1) ) s ' , Y' = Y (0,1) ・ h (1) r '+ s' , U '= U (0,1) + (REV ) B (1) , Λ' = Λ (0,1 ) ・ H (1) ζ '
In the re-encryption device, Ψ 1 = e 1 (W ′, Z 1 ), Ψ 2 = e 1 (Θ ′, Z 2 ), Ψ 3 = e 1 (Y ′, Z 3 ), Ω 1 = e obtaining n + μ (U ', k * ), Ω 2 = e 1 (Λ', k 0 ),
In the re-encryption device, E (1,2) = Ψ 1 y , F (1,2) = Ψ 2 y , G (1,2) = Ψ 3 y · Ω for y, y′∈F q × Generating a re-ciphertext ct (1,2) including 1 y ′ , Z (1,2) = Z 3 y , H (1,2) = Ω 2 y ′ ;
In the second decoding device, e 1 (m ′, Z (1,2)) = G (1,2) / {H (1,2) c (2) · E (1,2) 1 / a (2 ) · F (1,2) 1 / b (2) } satisfying m′∈G as a decoded value,
G and G T are cyclic groups, g is a generator of the cyclic group G, F q is a finite field of order q , F q × = F q \ {0}, and n is 1 N is an integer greater than or equal to 2 , and each of b i ∈G n + μ (i = 1, ..., n + μ) represents n + μ elements of the cyclic group G. N + μ dimensional basis vectors as elements, and B = (b 1 , ..., b n + μ ) is n + μ basis vectors b i (i = 1, ..., n + μ), and each of b i * ∈ G n + μ (i = 1, ..., n + μ) is an element of n + μ elements of the cyclic group G Dimensional basis vectors, B * = (b 1 * , ..., b n + μ * ) is n + μ basis vectors b i * (i = 1, ..., n + μ) The basis B and the basis B * are dual orthogonal basis, and the n + μ dimensional vector d = (d 1 , ..., d n + μ ) ∈F q n + μ (d ) B is Σ i = 1 n + μ d i・ b i , and n + μ dimension vector f = (f 1 , ..., f n + μ ) ∈F q n + μ f →) B * is Σ i = 1 n + μ f i · b i * Γ is an integer n + 1 ≦ Γ <n + μ, {ι (1), ..., ι (Γ)} ⊂ {1, ..., n + μ}, and B ^ = (b ι (1) , ..., b ι (Γ) ) and the secret key of the first decryption device is a (1), b (1), c (1), τ (1) ∈ F q × and the public key of the first decryption device is (h (1) = g τ (1) , h (1) a (1) , h (1) b (1) , h (1) c (1) , B (1) = c (1) · τ (1) · B ^), and the secret key of the second decryption device is a (2), b (2), c (2), τ (2) ∈F q × and the public key of the second decryption device is (h (2) = g τ (2) , h (2) a (2) , h (2) b (2) , h (2) c (2) , B (2) = c (2) ・ τ (2) ・ B ^), z, ρ, σ∈F q × , and v is an n-dimensional vector v = (v ι (1) , ..., v ι (n) ) ∈F q n , B (1,2) * = (ρ / c (1)) ・ c (2) ・ τ (2)・ B * and the re-encryption key is Z 1 = (h (2) a (2) ) z / a (1) , Z 2 = (h (2) b (2) ) z / b (1) , Z 3 = h (2) z , k 0 = h (2) ρ , k * = (RV ) B (1,2) * , RV is an n + μ dimensional vector RV = (RV ι (1) , ..., RV ι (n + μ) ) ∈F q n + μ , ι (i) ∈ {1, ..., n + μ} (i = 1, ..., n + μ) and {ι (1) ,. .., ι (n)} ⊂ {1, ..., n + μ}, and (RV ι (1) , ..., RV ι (n) ) is an n-dimensional vector σ · v = ( σ ・ v ι (1) , ..., σ ・ v ι (n) ), and any one RV κ ∈ {RV ι (n + 1) , ..., RV ι (Γ) } Is 1 and ξ is an integer equal to or greater than 1, e ξ is a bilinear map for obtaining an element of the cyclic group G T with respect to an element of the direct product group G ξ × G ξ , and the first ciphertext ct (0,1) is W (0,1) = (h (1) a (1) ) r , Θ (0,1) = (h (1) b (1) ) s , Y (0,1) = h (1) r + s・ m, U (0,1) = (CV ) B (1) , Λ (0,1) = h (1) ζ , CV is n + μ dimensional vector CV = (CV ι (1) , ..., CV ι (n + μ) ) ∈F q n + μ , and (CV ι (1) , ..., CV ι (n) ) is n Dimension vector ω ・ x = (ω ・ x ι (1) , ..., ω ・ x ι (n) ), and any one of CV κ ∈ {CV ι (n + 1) , ... ., CV ι (Γ) } is the ζ, and CV ι (n + 1) , ..., CV ι (Γ) is a vector composed of elements excluding CV κ and RV ι (n + 1) , ..., RV iota inner product of the (gamma) and vector of element except RV kappa is 0, REV the n + mu dimensional vector REV = (REV ι (1), ..., REV ι (n + μ)) ∈F q n + a mu, any one REV κ ∈ {REV ι (1 ), ..., REV ι (n + μ) } is the ζ ′, and REV ι (1) ,..., REV ι (n + μ) excluding REV κ is 0∈F q .
選択部と暗号化部とを有する暗号化装置が実行する暗号化方法であって、
Gが巡回群であり、gが前記巡回群Gの生成元であり、Fqが位数qの有限体であり、Fq ×=Fq\{0}であり、nが1以上の整数であり、μが2以上の整数であり、bi∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B=(b1,...,bn+μ)がn+μ個の前記基底ベクトルbi(i=1,...,n+μ)からなる基底であり、n+μ次元ベクトルd=(d1,...,dn+μ)∈Fq n+μに対する(d)BがΣi=1 n+μdi・biであり、Γがn+1≦Γ<n+μの整数であり、{ι(1),...,ι(Γ)}⊂{1,...,n+μ}であり、B^=(bι(1),...,bι(Γ))であり、第1復号装置の秘密鍵がa(1), b(1), c(1), τ(1)∈Fq ×であり、前記第1復号装置の公開鍵が(h(1)=gτ(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1)=c(1)・τ(1)・B^)であり、
前記選択部で、r, s, ζ, ω∈Fqを選択するステップと、
前記暗号化部で、前記第1復号装置の公開鍵(h(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1))とn次元ベクトルx=(xι(1),...,xι(n))∈Fq nとを用い、メッセージm∈Gの第1暗号文ct(0,1)を生成するステップと、を有し、
前記第1暗号文ct(0,1)がW(0,1)=(h(1)a(1))r, Θ(0,1)=(h(1)b(1))s, Y(0,1)=h(1)r+s・m,U(0,1)=(CV)B(1), Λ(0,1)=h(1)ζを含み、CVがn+μ次元ベクトルCV=(CVι(1),...,CVι(n+μ))∈Fq n+μであり、(CVι(1),...,CVι(n))がn次元ベクトルω・x=(ω・xι(1),...,ω・xι(n))であり、何れか1個のCVκ∈{CVι(n+1),...,CVι(Γ)}が前記ζである暗号化方法。
An encryption method executed by an encryption device having a selection unit and an encryption unit,
G is a cyclic group, g is a generator of the cyclic group G, F q is a finite field of order q , F q × = F q \ {0}, and n is an integer of 1 or more , Μ is an integer of 2 or more, and each of b i ∈G n + μ (i = 1,..., N + μ) has n + μ elements of the cyclic group G as elements. n + μ dimensional basis vectors, and B = (b 1 , ..., b n + μ ) is obtained from n + μ basis vectors b i (i = 1, ..., n + μ). (D ) B is Σ i = 1 n + μ d i・ b for n + μ dimensional vector d = (d 1 , ..., d n + μ ) ∈F q n + μ i , Γ is an integer n + 1 ≦ Γ <n + μ, {ι (1), ..., ι (Γ)} ⊂ {1, ..., n + μ}, B ^ = (b ι (1) , ..., b ι (Γ) ) and the secret key of the first decryption device is a (1), b (1), c (1), τ (1) ∈ F q × , and the public key of the first decryption device is (h (1) = g τ (1) , h (1) a (1) , h (1) b (1) , h (1) c (1) , B (1) = c (1) ・ τ (1) ・ B ^)
Selecting r, s, ζ, ω∈F q in the selection unit;
In the encryption unit, the public key (h (1), h (1) a (1) , h (1) b (1) , h (1) c (1) , B (1 )) And the n-dimensional vector x = (x ι (1) , ..., x ι (n) ) ∈F q n and the first ciphertext ct (0,1) of message m∈G Generating, and
The first ciphertext ct (0,1) is W (0,1) = (h (1) a (1) ) r , Θ (0,1) = (h (1) b (1) ) s , Y (0,1) = h (1) r + s・ m, U (0,1) = (CV ) B (1) , Λ (0,1) = h (1) ζ , CV Is an n + μ dimensional vector CV = (CV ι (1) , ..., CV ι (n + μ) ) ∈F q n + μ and (CV ι (1) , ..., CV ι (n) ) is an n-dimensional vector ω ・ x = (ω ・ x ι (1) , ..., ω ・ x ι (n) ), and any one CV κ ∈ {CV ι (n +1) , ..., CV ι (Γ) } is the encryption method.
インタフェース部と復号部とを有する復号装置が実行する復号方法であって、
G, GTが巡回群であり、gが前記巡回群Gの生成元であり、Fqが位数qの有限体であり、Fq ×=Fq\{0}であり、nが1以上の整数であり、μが2以上の整数であり、bi∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B=(b1,...,bn+μ)がn+μ個の前記基底ベクトルbi(i=1,...,n+μ)からなる基底であり、bi *∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B*=(b1 *,...,bn+μ *)がn+μ個の前記基底ベクトルbi *(i=1,...,n+μ)からなる基底であり、前記基底Bと前記基底B*とは双対直交基底であり、n+μ次元ベクトルd=(d1,...,dn+μ)∈Fq n+μに対する(d)BがΣi=1 n+μdi・biであり、n+μ次元ベクトルf=(f1,...,fn+μ)∈Fq n+μに対する(f)B*がΣi=1 n+μfi・bi *であり、Γがn+1≦Γ<n+μの整数であり、{ι(1),...,ι(Γ)}⊂{1,...,n+μ}であり、B^=(bι(1),...,bι(Γ))であり、当該復号装置の秘密鍵がa(1), b(1), c(1), τ(1)∈Fq ×であり、当該復号装置の公開鍵が(h(1)=gτ(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1)=c(1)・τ(1)・B^)であり、他の復号装置の秘密鍵がa(2), b(2), c(2), τ(2)∈Fq ×であり、前記他の復号装置の公開鍵が(h(2)=gτ(2), h(2)a(2), h(2)b(2), h(2)c(2), B(2)=c(2)・τ(2)・B^)であり、z, ρ, σ∈Fq ×であり、vがn次元ベクトルv=(vι(1),...,vι(n))∈Fq nであり、B(1,2)*=(ρ/c(1))・c(2)・τ(2)・B*であり、再暗号化鍵がZ1=(h(2)a(2))z/a(1), Z2=(h(2)b(2))z/b(1), Z3=h(2)z, k0=h(2)ρ, k*=(RV)B(1,2)*を含み、RVがn+μ次元ベクトルRV=(RVι(1),...,RVι(n+μ))∈Fq n+μであり、ι(i)∈{1,...,n+μ}(i=1,...,n+μ)であり、{ι(1),...,ι(n)}⊂{1,...,n+μ}であり、(RVι(1),..., RVι(n))がn次元ベクトルσ・v=(σ・vι(1),...,σ・vι(n))であり、何れか1個のRVκ∈{RVι(n+1),...,RVι(Γ)}が1であり、ξが1以上の整数であり、eξが直積群Gξ×Gξの元に対して前記巡回群GTの元を得る双線形写像であり、
前記インタフェース部で、W(0,1)=(h(1)a(1))r, Θ(0,1)=(h(1)b(1))s, Y(0,1)=h(1)r+s・m,U(0,1)=(CV)B(1), Λ(0,1)=h(1)ζを含む第1暗号文ct(0,1)、又は、E(1,1)=e1((h(1)a(1))r, t), F(1,1)=e1((h(1)b(1))s, t), G(1,1)=e1((h(1)r+s・m, t))・e1(t~, (h(1)c(1))ζ), Z(1,1)=t, H(1,1)=e1(t~, h(1)ζ)を含む第2暗号文ct(1,1)である入力暗号文の入力を受け付けるステップと、
入力暗号文として前記第1暗号文ct(0,1)が前記インタフェース部に入力された場合に、前記復号部で、m’=Y(0,1)/(W(0,1)1/a(1)・Θ(0,1)1/b(1))を復号値として得、入力暗号文として前記第2暗号文ct(1,1)が前記インタフェース部に入力された場合に、前記復号部で、e1(m’, Z(1,1))=G(1,1)/{H(1,1)c(1)・E(1,1)1/a(1)・F(1,1)1/b(1)}を満たすm’∈Gを復号値として得るステップと、を有し、
CVがn+μ次元ベクトルCV=(CVι(1),...,CVι(n+μ))∈Fq n+μであり、(CVι(1),...,CVι(n))がn次元ベクトルω・x=(ω・xι(1),...,ω・xι(n))であり、何れか1個のCVκ∈{CVι(n+1),...,CVι(Γ)}が前記ζであり、CVι(n+1),...,CVι(Γ)からCVκを除いた要素からなるベクトルとRVι(n+1),...,RVι(Γ)からRVκを除いた要素からなるベクトルとの内積が0である、復号方法。
A decoding method executed by a decoding device having an interface unit and a decoding unit,
G and G T are cyclic groups, g is a generator of the cyclic group G, F q is a finite field of order q , F q × = F q \ {0}, and n is 1 N is an integer greater than or equal to 2 , and each of b i ∈G n + μ (i = 1, ..., n + μ) represents n + μ elements of the cyclic group G. N + μ dimensional basis vectors as elements, and B = (b 1 , ..., b n + μ ) is n + μ basis vectors b i (i = 1, ..., n + μ), and each of b i * ∈ G n + μ (i = 1, ..., n + μ) is an element of n + μ elements of the cyclic group G Dimensional basis vectors, B * = (b 1 * , ..., b n + μ * ) is n + μ basis vectors b i * (i = 1, ..., n + μ) The basis B and the basis B * are dual orthogonal basis, and the n + μ dimensional vector d = (d 1 , ..., d n + μ ) ∈F q n + μ (d ) B is Σ i = 1 n + μ d i・ b i , and n + μ dimension vector f = (f 1 , ..., f n + μ ) ∈F q n + μ f →) B * is Σ i = 1 n + μ f i · b i * Γ is an integer n + 1 ≦ Γ <n + μ, {ι (1), ..., ι (Γ)} ⊂ {1, ..., n + μ}, and B ^ = (b ι (1) , ..., b ι (Γ) ) and the secret key of the decryption device is a (1), b (1), c (1), τ (1) ∈F q X and the public key of the decryption device is (h (1) = g τ (1) , h (1) a (1) , h (1) b (1) , h (1) c (1) , B (1) = c (1) ・ τ (1) ・ B ^) and the secret key of the other decryption device is a (2), b (2), c (2), τ (2) ∈F q × and the public key of the other decryption device is (h (2) = g τ (2) , h (2) a (2) , h (2) b (2) , h (2) c ( 2) , B (2) = c (2) ・ τ (2) ・ B ^), z, ρ, σ∈F q × , and v is an n-dimensional vector v = (v ι (1 ) , ..., v ι (n) ) ∈F q n and B (1,2) * = (ρ / c (1)) ・ c (2) ・ τ (2) ・ B * , The re-encryption key is Z 1 = (h (2) a (2) ) z / a (1) , Z 2 = (h (2) b (2) ) z / b (1) , Z 3 = h (2) z , k 0 = h (2) ρ , k * = (RV ) B (1,2) * , where RV is an n + μ dimensional vector RV = (RV ι (1),. .., RV ι (n + μ) ) ∈F q n + μ , and ι (i) ∈ {1, ..., n + μ} (i = 1, ..., n + μ) Yes, {ι (1), ..., ι (n)} ⊂ {1, ... , n + μ} and (RV ι (1) , ..., RV ι (n) ) is an n-dimensional vector σ ・ v = (σ ・ v ι (1) , ..., σ ・ v ι (n) ), any one RV κ ∈ {RV ι (n + 1) , ..., RV ι (Γ) } is 1, ξ is an integer greater than or equal to 1 , e ξ is a bilinear map for obtaining an element of the cyclic group G T with respect to an element of the direct product group G ξ × G ξ ,
In the interface unit, W (0,1) = (h (1) a (1) ) r , Θ (0,1) = (h (1) b (1) ) s , Y (0,1) = h (1) r + s · m, U (0,1) = (CV ) B (1) , Λ (0,1) = h (1) First ciphertext ct (0,1) containing ζ Or E (1,1) = e 1 ((h (1) a (1) ) r , t), F (1,1) = e 1 ((h (1) b (1) ) s , t), G (1,1) = e 1 ((h (1) r + s・ m, t)) ・ e 1 (t ~ , (h (1) c (1) ) ζ ), Z (1 , 1) = t, H (1,1) = e 1 (t ~ , h (1) ζ ), and receiving an input ciphertext that is the second ciphertext ct (1,1);
When the first ciphertext ct (0,1) is input to the interface unit as an input ciphertext, m ′ = Y (0,1) / (W (0,1) 1 / a (1) · Θ (0,1) 1 / b (1) ) as a decrypted value, and when the second ciphertext ct (1,1) is input to the interface unit as an input ciphertext, In the decoding unit, e 1 (m ′, Z (1,1)) = G (1,1) / {H (1,1) c (1) · E (1,1) 1 / a (1) Obtaining m′∈G satisfying F (1,1) 1 / b (1) } as a decoded value,
CV is an n + μ dimensional vector CV = (CV ι (1) , ..., CV ι (n + μ) ) ∈F q n + μ and (CV ι (1) , ..., CV ι (n) ) is an n-dimensional vector ω · x = (ω · x ι (1) , ..., ω · x ι (n) ), and any one of CV κ ∈ {CV ι (n + 1) , ..., CV ι (Γ) } is ζ, and a vector composed of elements obtained by removing CV κ from CV ι (n + 1) , ..., CV ι (Γ) A decoding method in which an inner product with a vector composed of elements obtained by removing RV κ from RV ι (n + 1) ,.
インタフェース部と復号部とを有する復号装置が実行する復号方法であって、
G, GTが巡回群であり、gが前記巡回群Gの生成元であり、nが1以上の整数であり、μが2以上の整数であり、bi∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B=(b1,...,bn+μ)がn+μ個の前記基底ベクトルbi(i=1,...,n+μ)からなる基底であり、bi *∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B*=(b1 *,...,bn+μ *)がn+μ個の前記基底ベクトルbi *(i=1,...,n+μ)からなる基底であり、前記基底Bと前記基底B*とは双対直交基底であり、n+μ次元ベクトルd=(d1,...,dn+μ)∈Fq n+μに対する(d)BがΣi=1 n+μdi・biであり、n+μ次元ベクトルf=(f1,...,fn+μ)∈Fq n+μに対する(f)B*がΣi=1 n+μfi・bi *であり、Γがn+1≦Γ<n+μの整数であり、{ι(1),...,ι(Γ)}⊂{1,...,n+μ}であり、B^=(bι(1),...,bι(Γ))であり、当該復号装置の秘密鍵がa(2), b(2), c(2), τ(2)∈Fq ×であり、当該復号装置の公開鍵が(h(2)=gτ(2), h(2)a(2), h(2)b(2), h(2)c(2), B(2)=c(2)・τ(2)・B^)であり、他の復号装置の秘密鍵がa(1), b(1), c(1), τ(1)∈Fq ×であり、前記他の復号装置の公開鍵が(h(1)=gτ(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1)=c(1)・τ(1)・B^)であり、z, ρ, σ∈Fq ×であり、vがn次元ベクトルv=(vι(1),...,vι(n))∈Fq nであり、B(1,2)*=(ρ/c(1))・c(2)・τ(2)・B*であり、再暗号化鍵がZ1=(h(2)a(2))z/a(1), Z2=(h(2)b(2))z/b(1), Z3=h(2)z, k0=h(2)ρ, k*=(RV)B(1,2)*を含み、RVがn+μ次元ベクトルRV=(RVι(1),...,RVι(n+μ))∈Fq n+μであり、ι(i)∈{1,...,n+μ}(i=1,...,n+μ)であり、{ι(1),...,ι(n)}⊂{1,...,n+μ}であり、(RVι(1),..., RVι(n))がn次元ベクトルσ・v=(σ・vι(1),...,σ・vι(n))であり、何れか1個のRVκ∈{RVι(n+1),...,RVι(Γ)}が1であり、ξが1以上の整数であり、eξが直積群Gξ×Gξの元に対して前記巡回群GTの元を得る双線形写像であり、W’=W(0,1)・(h(1)a(1))r’, Θ’=Θ(0,1)・(h(1)b(1))s’, Y’=Y(0,1)・h(1)r’+s’, U’=U(0,1)+(REV)B(1), Λ’=Λ(0,1)・h(1)ζ’であり、REVがn+μ次元ベクトルREV=(REVι(1),...,REVι(n+μ))∈Fq n+μであり、何れか1個のREVκ∈{REVι(1),...,REVι(n+μ)}が前記ζ’であり、REVκを除くREVι(1),...,REVι(n+μ)が0∈Fqであり、Ψ1=e1(W’,Z1), Ψ2=e1(Θ’,Z2), Ψ3=e1(Y’,Z3), Ω1=en+μ(U’,k*), Ω2=e1(Λ’,k0)であり、
前記インタフェース部で、E(1,2)=Ψ1 y, F(1,2)=Ψ2 y, G(1,2)=Ψ3 y・Ω1 y’, Z(1,2)=Z3 y, H(1,2)=Ω2 y’を含む再暗号文ct(1,2)の入力を受け付けるステップと、
前記復号部で、e1(m’, Z(1,2))=G(1,2)/{H(1,2)c(2)・E(1,2)1/a(2)・F(1,2) 1/b(2)}
を満たすm’∈Gを復号値として得るステップと、を有する復号方法。
A decoding method executed by a decoding device having an interface unit and a decoding unit,
G and G T are cyclic groups, g is a generator of the cyclic group G, n is an integer of 1 or more, μ is an integer of 2 or more, and b i ∈G n + μ (i = 1, ..., n + μ) are n + μ-dimensional basis vectors whose elements are n + μ elements of the cyclic group G, and B = (b 1 , ..., b n + μ ) is a basis composed of n + μ basis vectors b i (i = 1, ..., n + μ), and b i * ∈G n + μ (i = 1, ..., n + μ) are n + μ-dimensional basis vectors whose elements are n + μ elements of the cyclic group G, and B * = (b 1 * , ..., b n + μ * ) Is a basis composed of n + μ basis vectors b i * (i = 1,..., N + μ), the base B and the base B * are dual orthogonal bases, and n + μ Dimension vector d = (d 1 , ..., d n + μ ) ∈F q n + μ , (d ) B is Σ i = 1 n + μ d i・ b i , n + μ dimension (F ) B * for the vector f = (f 1 , ..., f n + μ ) ∈F q n + μ is Σ i = 1 n + μ f i・ b i * and Γ is n + 1 ≦ Γ <n + μ and {ι (1), ..., ι ( )} ⊂ {1, ..., a n + μ}, B ^ = (b ι (1), ..., a b ι (Γ)), the secret key of the decryption apparatus has a (2 ), b (2), c (2), τ (2) ∈F q × , and the public key of the decryption device is (h (2) = g τ (2) , h (2) a (2) , h (2) b (2) , h (2) c (2) , B (2) = c (2) ・ τ (2) ・ B ^), and the secret key of the other decryption device is a ( 1), b (1), c (1), τ (1) ∈F q × , and the public key of the other decryption device is (h (1) = g τ (1) , h (1) a (1) , h (1) b (1) , h (1) c (1) , B (1) = c (1) ・ τ (1) ・ B ^), z, ρ, σ∈F q × and v is an n-dimensional vector v = (v ι (1) , ..., v ι (n) ) ∈F q n and B (1,2) * = (ρ / c (1)) ・ c (2) ・ τ (2) ・ B * and the re-encryption key is Z 1 = (h (2) a (2) ) z / a (1) , Z 2 = (h (2) b (2) ) z / b (1) , Z 3 = h (2) z , k 0 = h (2) ρ , k * = (RV ) B (1,2) * RV is an n + μ dimensional vector RV = (RV ι (1) , ..., RV ι (n + μ) ) ∈F q n + μ , ι (i) ∈ {1, ... , n + μ} (i = 1, ..., n + μ) and {ι (1), ..., ι (n)} ⊂ {1, ..., n + μ} , (RV ι (1), ..., RV ι (n)) is an n-dimensional vector · V → = (σ · v ι (1), ..., σ · v ι (n)) is, any one of the RV κ ∈ {RV ι (n + 1), ..., RV ι (Γ) } is 1, ξ is an integer equal to or greater than 1, e ξ is a bilinear map for obtaining an element of the cyclic group G T with respect to an element of the direct product group G ξ × G ξ , and W '= W (0,1) ・ (h (1) a (1) ) r' , Θ '= Θ (0,1) ・ (h (1) b (1) ) s' , Y' = Y ( 0,1) ・ h (1) r '+ s' , U' = U (0,1) + (REV ) B (1) , Λ '= Λ (0,1) ・ h (1) ζ' REV is an n + μ-dimensional vector REV = (REV ι (1) , ..., REV ι (n + μ) ) ∈F q n + μ , and any one REV κ ∈ {REV ι (1) , ..., REV ι (n + μ) } is the ζ ′, and REV ι (1) , ..., REV ι (n + μ) excluding REV κ is 0∈ F q , Ψ 1 = e 1 (W ', Z 1 ), Ψ 2 = e 1 (Θ', Z 2 ), Ψ 3 = e 1 (Y ', Z 3 ), Ω 1 = e n + μ (U ', k * ), Ω 2 = e 1 (Λ', k 0 )
In the interface section, E (1,2) = Ψ 1 y , F (1,2) = Ψ 2 y , G (1,2) = Ψ 3 y · Ω 1 y ′ , Z (1,2) = Receiving a re-ciphertext ct (1,2) containing Z 3 y , H (1,2) = Ω 2 y ′ ;
In the decoding unit, e 1 (m ′, Z (1,2)) = G (1,2) / {H (1,2) c (2) · E (1,2) 1 / a (2)・ F (1,2) 1 / b (2) }
Obtaining m′∈G satisfying the above as a decoded value.
選択部と群演算部と双線形写像演算部と再暗号化部とを有する再暗号化装置が実行する再暗号化方法であって、
G, GTが巡回群であり、gが前記巡回群Gの生成元であり、Fqが位数qの有限体であり、Fq ×=Fq\{0}であり、nが1以上の整数であり、μが2以上の整数であり、bi∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B=(b1,...,bn+μ)がn+μ個の前記基底ベクトルbi(i=1,...,n+μ)からなる基底であり、bi *∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B*=(b1 *,...,bn+μ *)がn+μ個の前記基底ベクトルbi *(i=1,...,n+μ)からなる基底であり、前記基底Bと前記基底B*とは双対直交基底であり、n+μ次元ベクトルd=(d1,...,dn+μ)∈Fq n+μに対する(d)BがΣi=1 n+μdi・biであり、n+μ次元ベクトルf=(f1,...,fn+μ)∈Fq n+μに対する(f)B*がΣi=1 n+μfi・bi *であり、Γがn+1≦Γ<n+μの整数であり、{ι(1),...,ι(Γ)}⊂{1,...,n+μ}であり、B^=(bι(1),...,bι(Γ))であり、第1復号装置の秘密鍵がa(1), b(1), c(1), τ(1)∈Fq ×であり、前記第1復号装置の公開鍵が(h(1)=gτ(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1)=c(1)・τ(1)・B^)であり、第2復号装置の秘密鍵がa(2), b(2), c(2), τ(2)∈Fq ×であり、前記第2復号装置の公開鍵が(h(2)=gτ(2), h(2)a(2), h(2)b(2), h(2)c(2), B(2)=c(2)・τ(2)・B^)であり、z, ρ, σ∈Fq ×であり、vがn次元ベクトルv=(vι(1),...,vι(n))∈Fq nであり、B(1,2)*=(ρ/c(1))・c(2)・τ(2)・B*であり、再暗号化鍵がZ1=(h(2)a(2))z/a(1), Z2=(h(2)b(2))z/b(1), Z3=h(2)z, k0=h(2)ρ, k*=(RV)B(1,2)*を含み、RVがn+μ次元ベクトルRV=(RVι(1),...,RVι(n+μ))∈Fq n+μであり、ι(i)∈{1,...,n+μ}(i=1,...,n+μ)であり、{ι(1),...,ι(n)}⊂{1,...,n+μ}であり、(RVι(1),..., RVι(n))がn次元ベクトルσ・v=(σ・vι(1),...,σ・vι(n))であり、何れか1個のRVκ∈{RVι(n+1),...,RVι(Γ)}が1であり、ξが1以上の整数であり、eξが直積群Gξ×Gξの元に対して前記巡回群GTの元を得る双線形写像であり、
前記選択部で、r’, s’, ζ’∈Fqを選択するステップと、
前記群演算部で、W(0,1), Θ(0,1), Y(0,1), U(0,1), Λ(0,1)を含む第1暗号文ct(0,1)に対して、W’=W(0,1)・(h(1)a(1))r’, Θ’=Θ(0,1)・(h(1)b(1))s’, Y’=Y(0,1)・h(1)r’+s’, U’=U(0,1)+(REV)B(1), Λ’=Λ(0,1)・h(1)ζ’を得るステップと、
前記双線形写像演算部で、Ψ1=e1(W’,Z1), Ψ2=e1(Θ’,Z2), Ψ3=e1(Y’,Z3), Ω1=en+μ(U’,k*), Ω2=e1(Λ’,k0)を得るステップと、
前記再暗号化部で、y, y’∈Fq ×に対するE(1,2)=Ψ1 y, F(1,2)=Ψ2 y, G(1,2)=Ψ3 y・Ω1 y’, Z(1,2)=Z3 y, H(1,2)=Ω2 y’を含む再暗号文ct(1,2)を生成するステップと、
を有する再暗号化方法。
A re-encryption method executed by a re-encryption device having a selection unit, a group operation unit, a bilinear mapping operation unit, and a re-encryption unit,
G and G T are cyclic groups, g is a generator of the cyclic group G, F q is a finite field of order q , F q × = F q \ {0}, and n is 1 N is an integer greater than or equal to 2 , and each of b i ∈G n + μ (i = 1, ..., n + μ) represents n + μ elements of the cyclic group G. N + μ dimensional basis vectors as elements, and B = (b 1 , ..., b n + μ ) is n + μ basis vectors b i (i = 1, ..., n + μ), and each of b i * ∈ G n + μ (i = 1, ..., n + μ) is an element of n + μ elements of the cyclic group G Dimensional basis vectors, B * = (b 1 * , ..., b n + μ * ) is n + μ basis vectors b i * (i = 1, ..., n + μ) The basis B and the basis B * are dual orthogonal basis, and the n + μ dimensional vector d = (d 1 , ..., d n + μ ) ∈F q n + μ (d ) B is Σ i = 1 n + μ d i・ b i , and n + μ dimension vector f = (f 1 , ..., f n + μ ) ∈F q n + μ f →) B * is Σ i = 1 n + μ f i · b i * Γ is an integer n + 1 ≦ Γ <n + μ, {ι (1), ..., ι (Γ)} ⊂ {1, ..., n + μ}, and B ^ = (b ι (1) , ..., b ι (Γ) ) and the secret key of the first decryption device is a (1), b (1), c (1), τ (1) ∈F q × , and the public key of the first decryption device is (h (1) = g τ (1) , h (1) a (1) , h (1) b (1) , h (1) c ( 1) , B (1) = c (1) · τ (1) · B ^) and the secret key of the second decryption device is a (2), b (2), c (2), τ (2 ) ∈F q × and the public key of the second decryption device is (h (2) = g τ (2) , h (2) a (2) , h (2) b (2) , h (2 ) c (2) , B (2) = c (2) ・ τ (2) ・ B ^), z, ρ, σ∈F q × , and v is an n-dimensional vector v = (v ι (1) , ..., v ι (n) ) ∈F q n and B (1,2) * = (ρ / c (1)) ・ c (2) ・ τ (2) ・ B * And the re-encryption key is Z 1 = (h (2) a (2) ) z / a (1) , Z 2 = (h (2) b (2) ) z / b (1) , Z 3 = h (2) z , k 0 = h (2) ρ , k * = (RV ) B (1,2) * , where RV is an n + μ dimensional vector RV = (RV ι (1 ) , ..., RV ι (n + μ) ) ∈F q n + μ , and ι (i) ∈ {1, ..., n + μ} (i = 1, ..., n + μ) and {ι (1), ..., ι (n)} ⊂ {1, ..., n + μ}, and (RV ι (1) , ..., RV ι (n) ) is an n-dimensional vector σ ・ v = (σ ・ v ι (1),. .., σ ・ v ι (n) ), and any one RV κ ∈ {RV ι (n + 1) , ..., RV ι (Γ) } is 1, and ξ is 1 or more E ξ is a bilinear map for obtaining an element of the cyclic group G T with respect to an element of the Cartesian product group G ξ × G ξ ,
Selecting r ′, s ′, ζ′∈F q in the selection unit;
In the group operation unit, the first ciphertext ct (0,1) including W (0,1), Θ (0,1), Y (0,1), U (0,1), Λ (0,1) 1), W '= W (0,1) ・ (h (1) a (1) ) r' , Θ '= Θ (0,1) ・ (h (1) b (1) ) s ' , Y' = Y (0,1) ・ h (1) r '+ s' , U '= U (0,1) + (REV ) B (1) , Λ' = Λ (0,1) Obtaining h (1) ζ ' ;
In the bilinear mapping operation unit, Ψ 1 = e 1 (W ′, Z 1 ), Ψ 2 = e 1 (Θ ′, Z 2 ), Ψ 3 = e 1 (Y ′, Z 3 ), Ω 1 = obtaining e n + μ (U ', k * ), Ω 2 = e 1 (Λ', k 0 ),
In the re-encryption unit, E (1,2) = Ψ 1 y , F (1,2) = Ψ 2 y , G (1,2) = Ψ 3 y · Ω for y, y′∈F q × Generating a re-ciphertext ct (1,2) including 1 y ′ , Z (1,2) = Z 3 y , H (1,2) = Ω 2 y ′ ;
A re-encryption method.
選択部と再暗号化鍵生成部とを有する難読化装置が実行する鍵難読化方法であって、
G, GTが巡回群であり、gが前記巡回群Gの生成元であり、Fqが位数qの有限体であり、Fq ×=Fq\{0}であり、nが1以上の整数であり、μが2以上の整数であり、bi∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B=(b1,...,bn+μ)がn+μ個の前記基底ベクトルbi(i=1,...,n+μ)からなる基底であり、bi *∈Gn+μ(i=1,...,n+μ)のそれぞれが前記巡回群Gのn+μ個の元を要素とするn+μ次元の基底ベクトルであり、B*=(b1 *,...,bn+μ *)がn+μ個の前記基底ベクトルbi *(i=1,...,n+μ)からなる基底であり、前記基底Bと前記基底B*とは双対直交基底であり、n+μ次元ベクトルd=(d1,...,dn+μ)∈Fq n+μに対する(d)BがΣi=1 n+μdi・biであり、n+μ次元ベクトルf=(f1,...,fn+μ)∈Fq n+μに対する(f)B*がΣi=1 n+μfi・bi *であり、Γがn+1≦Γ<n+μの整数であり、{ι(1),...,ι(Γ)}⊂{1,...,n+μ}であり、B^=(bι(1),...,bι(Γ))であり、第1復号装置の秘密鍵がa(1), b(1), c(1), τ(1)∈Fq ×であり、前記第1復号装置の公開鍵が(h(1)=gτ(1), h(1)a(1), h(1)b(1), h(1)c(1), B(1)=c(1)・τ(1)・B^)であり、第2復号装置の秘密鍵がa(2), b(2), c(2), τ(2)∈Fq ×であり、前記第2復号装置の公開鍵が(h(2)=gτ(2), h(2)a(2), h(2)b(2), h(2)c(2), B(2)=c(2)・τ(2)・B^)であり、
前記選択部で、z, ρ, σ∈Fq ×を生成するステップと、
前記再暗号化鍵生成部で、n次元ベクトルv=(vι(1),...,vι(n))∈Fq nに対して、Z1=(h(2)a(2))z/a(1), Z2=(h(2)b(2))z/b(1), Z3=h(2)z, k0=h(2)ρ, k*=(RV)B(1,2)*を含む再暗号化鍵を生成するステップと、を有し、
B(1,2)*=(ρ/c(1))・c(2)・τ(2)・B*であり、RVがn+μ次元ベクトルRV=(RVι(1),...,RVι(n+μ))∈Fq n+μであり、ι(i)∈{1,...,n+μ}(i=1,...,n+μ)であり、{ι(1),...,ι(n)}⊂{1,...,n+μ}であり、(RVι(1),..., RVι(n))がn次元ベクトルσ・v=(σ・vι(1),...,σ・vι(n))であり、何れか1個のRVκ∈{RVι(n+1),...,RVι(Γ)}が1である、難読化方法。
A key obfuscation method executed by an obfuscation apparatus having a selection unit and a re-encryption key generation unit,
G and G T are cyclic groups, g is a generator of the cyclic group G, F q is a finite field of order q , F q × = F q \ {0}, and n is 1 N is an integer greater than or equal to 2 , and each of b i ∈G n + μ (i = 1, ..., n + μ) represents n + μ elements of the cyclic group G. N + μ dimensional basis vectors as elements, and B = (b 1 , ..., b n + μ ) is n + μ basis vectors b i (i = 1, ..., n + μ), and each of b i * ∈ G n + μ (i = 1, ..., n + μ) is an element of n + μ elements of the cyclic group G Dimensional basis vectors, B * = (b 1 * , ..., b n + μ * ) is n + μ basis vectors b i * (i = 1, ..., n + μ) The basis B and the basis B * are dual orthogonal basis, and the n + μ dimensional vector d = (d 1 , ..., d n + μ ) ∈F q n + μ (d ) B is Σ i = 1 n + μ d i・ b i , and n + μ dimension vector f = (f 1 , ..., f n + μ ) ∈F q n + μ f →) B * is Σ i = 1 n + μ f i · b i * Γ is an integer n + 1 ≦ Γ <n + μ, {ι (1), ..., ι (Γ)} ⊂ {1, ..., n + μ}, and B ^ = (b ι (1) , ..., b ι (Γ) ) and the secret key of the first decryption device is a (1), b (1), c (1), τ (1) ∈F q × , and the public key of the first decryption device is (h (1) = g τ (1) , h (1) a (1) , h (1) b (1) , h (1) c ( 1) , B (1) = c (1) · τ (1) · B ^) and the secret key of the second decryption device is a (2), b (2), c (2), τ (2 ) ∈F q × and the public key of the second decryption device is (h (2) = g τ (2) , h (2) a (2) , h (2) b (2) , h (2 ) c (2) , B (2) = c (2) ・ τ (2) ・ B ^)
Generating z, ρ, σ∈F q × in the selection unit;
In the re-encryption key generation unit, for an n-dimensional vector v = (v ι (1) , ..., v ι (n) ) ∈F q n , Z 1 = (h (2) a ( 2) ) z / a (1) , Z 2 = (h (2) b (2) ) z / b (1) , Z 3 = h (2) z , k 0 = h (2) ρ , k * Generating a re-encryption key including = (RV ) B (1,2) * ,
B (1,2) * = (ρ / c (1)) ・ c (2) ・ τ (2) ・ B * , where RV is an n + μ dimensional vector RV = (RV ι (1) , ..., RV ι (n + μ) ) ∈F q n + μ and ι (i) ∈ {1, ..., n + μ} (i = 1, ..., n + μ) {Ι (1), ..., ι (n)} ⊂ {1, ..., n + μ} and (RV ι (1) , ..., RV ι (n) ) Is an n-dimensional vector σ · v = (σ · v ι (1) , ..., σ · v ι (n) ), and any one of RV κ ∈ {RV ι (n + 1) , ..., RV ι (Γ) } is 1, obfuscation method.
請求項20の難読化方法であって、
前記z及びρが乱数である、難読化方法。
The obfuscation method of claim 20,
An obfuscation method wherein z and ρ are random numbers.
請求項9の暗号化装置としてコンピュータを機能させるためのプログラム。   A program for causing a computer to function as the encryption apparatus according to claim 9. 請求項10又は11の復号装置としてコンピュータを機能させるためのプログラム。   The program for functioning a computer as a decoding apparatus of Claim 10 or 11. 請求項12の再暗号化装置としてコンピュータを機能させるためのプログラム。   A program for causing a computer to function as the re-encryption device according to claim 12. 請求項13又は14の難読化装置としてコンピュータを機能させるためのプログラム。   A program for causing a computer to function as the obfuscation device according to claim 13 or 14.
JP2011249441A 2011-11-15 2011-11-15 Security system, encryption device, decryption device, re-encryption device, obfuscation device, method thereof, and program Pending JP2013105065A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011249441A JP2013105065A (en) 2011-11-15 2011-11-15 Security system, encryption device, decryption device, re-encryption device, obfuscation device, method thereof, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011249441A JP2013105065A (en) 2011-11-15 2011-11-15 Security system, encryption device, decryption device, re-encryption device, obfuscation device, method thereof, and program

Publications (1)

Publication Number Publication Date
JP2013105065A true JP2013105065A (en) 2013-05-30

Family

ID=48624624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011249441A Pending JP2013105065A (en) 2011-11-15 2011-11-15 Security system, encryption device, decryption device, re-encryption device, obfuscation device, method thereof, and program

Country Status (1)

Country Link
JP (1) JP2013105065A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015052799A1 (en) * 2013-10-09 2015-04-16 三菱電機株式会社 Cipher system, encryption device, re-encryption key generation device, re-encryption device, and cipher program
WO2015107620A1 (en) * 2014-01-14 2015-07-23 三菱電機株式会社 Crypt-system, re-encryption key generation apparatus, re-encryption apparatus, and crypt-program

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015052799A1 (en) * 2013-10-09 2015-04-16 三菱電機株式会社 Cipher system, encryption device, re-encryption key generation device, re-encryption device, and cipher program
CN105637799A (en) * 2013-10-09 2016-06-01 三菱电机株式会社 Cipher system, encryption device, re-encryption key generation device, re-encryption device, and cipher program
JP6022073B2 (en) * 2013-10-09 2016-11-09 三菱電機株式会社 Cryptographic system, re-encryption key generation device, and re-encryption device
US9979536B2 (en) 2013-10-09 2018-05-22 Mitsubishi Electric Corporation Cryptographic system, encryption device, re-encryption key generation device, re-encryption device, and cryptographic program
CN105637799B (en) * 2013-10-09 2019-06-25 三菱电机株式会社 Encryption system, encryption device, re-encrypted private key generating means and re-encryption device
WO2015107620A1 (en) * 2014-01-14 2015-07-23 三菱電機株式会社 Crypt-system, re-encryption key generation apparatus, re-encryption apparatus, and crypt-program
JP6053966B2 (en) * 2014-01-14 2016-12-27 三菱電機株式会社 Cryptographic system and re-encryption device

Similar Documents

Publication Publication Date Title
CN106534313B (en) The frequency measuring method and system of facing cloud end data publication protection safety and privacy
JP5618881B2 (en) Cryptographic processing system, key generation device, encryption device, decryption device, cryptographic processing method, and cryptographic processing program
KR101456579B1 (en) Secret sharing system, sharing apparatus, share management apparatus, acquisition apparatus, secret sharing method, program and recording medium
KR101600016B1 (en) method of encrypting data using Homomorphic Encryption and Computing device performing the method
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
JP5432736B2 (en) Keyword search system for encrypted information, keyword search method, search request device, search agent device, program, recording medium
JP2018502320A (en) Public key encryption system
KR20160131798A (en) Method and system for additive homomorphic encryption scheme with error detection functionality
WO2018043049A1 (en) Encryption system, encryption method, and encryption program
JP2019215391A (en) Decryption device, encryption device and encryption system
JP2016015571A (en) Key generation device, encryption device, encryption decoder, program thereof, and individual information protection system
KR20130024143A (en) Proxy re-encryption method from lattices and apparatus therefor
KR101533950B1 (en) Broadcast encryption method and system
CN112819058A (en) Distributed random forest evaluation system and method with privacy protection attribute
WO2020070973A1 (en) Decryption device, cryptosystem, decryption method, and decryption program
JP2013105065A (en) Security system, encryption device, decryption device, re-encryption device, obfuscation device, method thereof, and program
JP5679344B2 (en) Signature key obfuscation system, signature key obfuscation method, encryption signature system using obfuscated signature key, encryption signature method and program using obfuscated signature key
JP6189788B2 (en) Key generation device, re-encryption device, and program
WO2017203743A1 (en) Cipher apparatus, decoding apparatus, and cipher system
JP6949276B2 (en) Re-encrypting device, re-encrypting method, re-encrypting program and cryptosystem
JP6093719B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, AND PROGRAM
JP5612494B2 (en) Timed cryptographic system, timed cryptographic method, apparatus, and program using function encryption
JP2017038336A (en) Decryption method
JP6649288B2 (en) Encryption system, setup device, key generation device, encryption device, decryption device, and program
JP4143036B2 (en) Key generation system, key generation server, and key generation method