JP2013217970A - Hierarchical type inner product cipher system based on lattice problem, hierarchical type inner product cipher method, device based on lattice problem - Google Patents

Hierarchical type inner product cipher system based on lattice problem, hierarchical type inner product cipher method, device based on lattice problem Download PDF

Info

Publication number
JP2013217970A
JP2013217970A JP2012085734A JP2012085734A JP2013217970A JP 2013217970 A JP2013217970 A JP 2013217970A JP 2012085734 A JP2012085734 A JP 2012085734A JP 2012085734 A JP2012085734 A JP 2012085734A JP 2013217970 A JP2013217970 A JP 2013217970A
Authority
JP
Japan
Prior art keywords
algorithm
key
inner product
encryption
outputs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012085734A
Other languages
Japanese (ja)
Other versions
JP5730805B2 (en
Inventor
Keita Kusakawa
恵太 草川
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 JP2012085734A priority Critical patent/JP5730805B2/en
Publication of JP2013217970A publication Critical patent/JP2013217970A/en
Application granted granted Critical
Publication of JP5730805B2 publication Critical patent/JP5730805B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a hierarchical inner product cipher technology based on a lattice problem, whose key size and cipher text size are small.SOLUTION: Key size and cipher text size are suppressed by making a parameter R of inner product cipher into GF(q). As a result, the key size becomes Ω(μnlgq), and the cipher text size becomes Ω(μn lgq). Even when it is required that 1/|R| can be ignored, it becomes that 1/|R|=1/q, it can be ignored. Even in such a case, it can be put that q=poly(n), and thereby, the key size Ω(μnlgn), the cipher text size Ω(μn lgn) can be achieved.

Description

本発明は,格子問題に基づく階層型内積暗号技術に関する。   The present invention relates to a hierarchical inner product encryption technique based on a lattice problem.

公開鍵暗号方式では,或る公開鍵で暗号化された暗号文を復号できるのは,対応する秘密鍵を有する者にのみ限られる。例えば,ユーザ装置hからユーザ装置iに平文mを送信する場合,ユーザ装置hはユーザ装置iの暗号化鍵ekiを用いて,暗号文ciを生成し,ユーザ装置iに暗号文ciを送信する。暗号化鍵ekiに対応する復号鍵dkiを持つユーザ装置のみがこの暗号文ciを復号できる。 In the public key cryptosystem, a ciphertext encrypted with a certain public key can be decrypted only by a person having a corresponding secret key. For example, when the plaintext m is transmitted from the user device h to the user device i, the user device h generates the ciphertext c i using the encryption key ek i of the user device i, and the ciphertext c i is transmitted to the user device i. Send. Only a user equipment with a decryption key dk i corresponding to the encryption key ek i can decrypt this ciphertext c i.

IDベース暗号では鍵生成局とユーザ装置が分離される。セットアップ時に鍵生成局は(mpk,msk)を生成する。ユーザ装置は各々が一意のidを持っており,鍵生成局が各ユーザに対して秘密鍵dkidを発行する。IDベース暗号では,或るidで暗号化された暗号文を復号できるのは,秘密鍵dkidを持つユーザ装置だけである(ただし,鍵生成局も秘密鍵dkidを持てる点に注意のこと)。 In ID-based encryption, the key generation station and the user device are separated. During setup, the key generation station generates (mpk, msk). Each user apparatus has a unique id, and the key generation station issues a secret key dk id to each user. With ID-based encryption, the ciphertext encrypted with a certain id can be decrypted only by a user device having the secret key dk id (note that the key generation station can also have the secret key dk id. ).

ユーザ(装置)と暗号の組み合わせをより多様にするため,内積暗号が提案された。セットアップ時に鍵生成局は(mpk,msk)を生成する。ユーザ装置は各々が鍵属性ベクトルv^∈Rμを持っている。鍵生成局は各ユーザ装置に対してdkv^を発行する。暗号化の際には,暗号属性ベクトルw^∈Rμを用いて暗号化を行う。内積暗号では,或るw^で暗号化された暗号文を復号できるのは,内積w^Tv^=0となるdkv^を持つユーザ装置だけである。 Inner product cryptography has been proposed to increase the variety of combinations of users (devices) and ciphers. During setup, the key generation station generates (mpk, msk). Each user device has a key attribute vector v ^ ∈R μ . The key generation authority issues dk v ^ to each user apparatus. At the time of encryption, encryption is performed using the encryption attribute vector w ^ ∈R μ . In the inner product cipher, a ciphertext encrypted with a certain w ^ can be decrypted only by a user device having dk v ^ where the inner product w ^ T v ^ = 0.

内積暗号は非特許文献1で初めて提案された。それ以降,楕円離散対数問題に基づいて様々な内積暗号やその変種が提案されている。格子問題に基づく内積暗号として,非特許文献2がある。   Inner product encryption was first proposed in Non-Patent Document 1. Since then, various inner product ciphers and variants have been proposed based on the elliptic discrete logarithm problem. There is Non-Patent Document 2 as an inner product encryption based on the lattice problem.

また,内積暗号を階層化したものとして,階層型内積暗号がある。これは非特許文献3で初めて提案された。階層の深さを最大でdとする(d=1のとき内積暗号に一致する)。セットアップ時に鍵生成局は(mpk,msk=dk)を生成する。ユーザ装置は各々が鍵属性ベクトル(v^1,…,v^j)∈(Rμ)≦d=Rμ∪(Rμ)2∪(Rμ)3∪…∪(Rμ)d(1≦j≦d)を持っている。鍵生成局は各ユーザ装置に対してdk(v^1,…,v^j)を発行する。階層型内積暗号では,鍵生成機能の委譲が行える。すなわち鍵dk(v^1,…,v^j)を持つユーザ装置は,任意のv^j+1,…,v^sについて鍵dk(v^1,…,v^j,v^j+1,…,v^s)を生成できる。暗号化の際には,暗号属性ベクトル(w^1,…,w^h)∈(Rμ)≦dを用いて暗号化を行う。階層型内積暗号では,鍵属性ベクトルを(v^1,…,v^j),暗号属性ベクトル(w^1,…,w^h)としたとき,この暗号属性ベクトルで暗号化された暗号文を復号可能なのは,j≦hかつ1≦i≦jについてw^i Tv^i=0となるdk(v^1,…,v^j)を持つユーザ装置だけである。 A hierarchical inner product cipher is a layered inner product cipher. This was first proposed in Non-Patent Document 3. Let the depth of the hierarchy be d at the maximum (when d = 1, it matches the inner product cipher). Key generating stations at the time of setup to generate a (mpk, msk = dk ┬) . Each user device has a key attribute vector (v ^ 1 , ..., v ^ j ) ∈ (R μ ) ≦ d = R μ ∪ (R μ ) 2 ∪ (R μ ) 3 ∪… ∪ (R μ ) d ( 1 ≦ j ≦ d). The key generation station issues dk (v ^ 1, ..., v ^ j) to each user equipment. In hierarchical inner product cryptography, the key generation function can be delegated. That is the key dk (v ^ 1, ..., v ^ j) the user device with is, any of v ^ j + 1, ..., v ^ s for key dk (v ^ 1, ..., v ^ j, v ^ j +1, ..., v ^ s) can be generated. At the time of encryption, encryption is performed using the encryption attribute vector (w ^ 1 , ..., w ^ h ) ∈ ( ) ≤ d . In hierarchical inner product cryptography, when the key attribute vector is (v ^ 1 ,…, v ^ j ) and the cryptographic attribute vector (w ^ 1 ,…, w ^ h ), the cipher encrypted with this cryptographic attribute vector Only user devices with dk (v ^ 1, ..., v ^ j) for which w ^ i T v ^ i = 0 for j≤h and 1≤i≤j can decrypt the sentence.

特開2011-141472号公報JP 2011-141472 特開2011-128609号公報JP 2011-128609 特開2010-273317号公報JP 2010-273317 A

Jonathan Katz, Amit Sahai, and Brent Waters. Predicate encryption supporting disjunctions, polynomial equations, and inner products. In Nigel P. Smart, editor, EUROCRYPT 2008, volume 4965 of Lecture Notes in Computer Science, pages 146-162. Springer-Verlag, 2008. The full version is available at http://eprint.iacr.org/2007/404.Jonathan Katz, Amit Sahai, and Brent Waters.Predicate encryption supporting disjunctions, polynomial equations, and inner products.In Nigel P. Smart, editor, EUROCRYPT 2008, volume 4965 of Lecture Notes in Computer Science, pages 146-162.Springer-Verlag The full version is available at http://eprint.iacr.org/2007/404. Shweta Agrawal, David Mandell Freeman, and Vinod Vaikuntanathan. Functional encryption for inner product predicates from learning with errors. In Dong Hoon Lee and Xiaoyun Wang, editors, ASIACRYPT 2011, volume 7073 of Lecture Notes in Computer Science, pages 21-40. Springer-Verlag, 2011. The full version is available at http://eprint.iacr.org/2011/410.Shweta Agrawal, David Mandell Freeman, and Vinod Vaikuntanathan.Function encryption for inner product predicates from learning with errors.In Dong Hoon Lee and Xiaoyun Wang, editors, ASIACRYPT 2011, volume 7073 of Lecture Notes in Computer Science, pages 21-40. -Verlag, 2011. The full version is available at http://eprint.iacr.org/2011/410. Tatsuaki Okamoto and Katsuyuki Takashima. Hierarchical predicate encryption for inner-products. In Mitsuru Matsui, editor, ASIACRYPT 2009, volume 5912 of Lecture Notes in Computer Science, pages 214-231. Springer-Verlag, 2009.Tatsuaki Okamoto and Katsuyuki Takashima. Hierarchical predicate encryption for inner-products. In Mitsuru Matsui, editor, ASIACRYPT 2009, volume 5912 of Lecture Notes in Computer Science, pages 214-231. Springer-Verlag, 2009.

nをセキュリティパラメータとする。非特許文献1の格子問題に基づく内積暗号のベクトルの台はR=Zqである。このとき,鍵サイズはΩ(μn2 lg3q),暗号文サイズはΩ(μn lg3 q)となる。μは属性ベクトルの長さ,lgは2を底とする対数を表す。一部の応用では,1/|R|が無視できることが必要なため,q=2O(n)と取ることがある。この場合,鍵サイズはΩ(μn5),暗号文サイズはΩ(μn4)となり,非常に大きい。また,既存方式で格子問題に基づき階層型内積暗号を提案したものは存在しない。 Let n be a security parameter. The vector base of the inner product encryption based on the lattice problem of Non-Patent Document 1 is R = Z q . At this time, the key size is Ω (μn 2 lg 3 q), and the ciphertext size is Ω (μn lg 3 q). μ represents the length of the attribute vector, and lg represents the logarithm with base 2. Some applications require q = 2 O (n) because 1 / | R | must be negligible. In this case, the key size is Ω (μn 5 ) and the ciphertext size is Ω (μn 4 ), which is very large. In addition, there is no existing method that proposes a hierarchical inner product cipher based on the lattice problem.

本発明は,鍵サイズや暗号文サイズの小さい,格子問題に基づく階層型内積暗号技術を提供することを目的とする。   An object of the present invention is to provide a hierarchical inner product encryption technique based on a lattice problem with a small key size and ciphertext size.

本発明の階層型内積暗号技術は,内積暗号のパラメータRをGF(qn)とすることで,鍵サイズや暗号文サイズを抑える。具体的には,
κをセキュリティパラメータ,dを階層の最大の深さ,μを属性ベクトルの長さ,Lを平文のビット長,n,q,mをそれぞれ格子用のパラメータ,σ1,…,σdを鍵発行用のパラメータ,DΧをZq上の分布,b,k=┌logb q┐,m’=nkをそれぞれサイズ用のパラメータ,g=(1,b,…,bk-1)∈Zq k,gg=gg(x)∈Zq[x]をGF(qn)=Zq[x]/<gg>を定義するモニック既約多項式とし,自然数nについて{1,…,n}を[n]で表し,行列A∈Zq n×mについて格子を
Λq (A)={z∈Zm:z≡ATs (mod q)となるs∈Zq nが存在する}
とし,
セットアップアルゴリズムSetup(1κ,d,μ,L,n,q,m,m’,{σi}i∈[d],b,k,gg):
1. (A,T)←GenTrap(1κ,q,n,m),
2. δ∈[d]およびi∈[μ]について,Aδ,i←Zq n×m’をランダムに選び,
3. U←Zq n×Lをランダムに選ぶ
ことによって,予め共通パラメータpp=((κ,d,μ,L,n,q,m,m’,{σi}i∈[d],b,k,gg),A,{Aδ,i},U)とマスター秘密鍵msk=(T,pp)が与えられているとして,
鍵発行装置は,
鍵生成アルゴリズムGen(pp,msk,(v^1,…,v^j)):(v^1,…,v^j)を鍵属性ベクトル,1≦j≦dとし,δ∈[j]について,v^δ=(vvδ,1,…,vvδ,μ)∈GF(qn)μ,Cv^δi=1 μAδ,i・Hg(vvδ,i)∈Zq n×m’,F(v^1,…,v^j)=[A|Cv^1|…|Cv^j]∈Zq n×(m+jm’)として,T(v^1,…,v^j)←DelgBasis(T,F(v^1,…,v^j),σj),を実行し,秘密鍵dk(v^1,…,v^j)=T(v^1,…,v^j)を出力する鍵生成部
を含み,
暗号化装置は,
暗号化アルゴリズムEnc(pp,(w^1,…,w^h),m∈{0,1}L):(w^1,…,w^h)を暗号属性ベクトル,Inをn行n列の単位行列,(×)をクロネッカー積とし,δ∈[h]について,w^δ=(wwδ,1,…,wwδ,μ)∈GF(qn)μ,G←In(×)(1,b,…,bk-1)として,
s←Zq nをランダムに選び,e←DΧ mとf←DΧ Lをランダムに選ぶ選択部と,
c0←ATs+eを計算する第1暗号要素計算部と,
δ∈[h]とi∈[μ]について,Rδ,i←{-1,+1}m×m’をランダムに選び,cδ,i←(Aδ,i+H(wwδ,i)・G)Ts+Rδ,i Te∈Zq m’を計算する第2暗号要素計算部と,
c’←UTs+f+└q/2┘mを計算する第3暗号要素計算部と,
を含み,ct=(c0,{cδ,i}δ∈[h],i∈[μ],c’)を暗号文として出力する暗号文生成部と,
を含み,
復号装置は,
復号アルゴリズムDec(pp,dk(v^1,…,v^j),ct):
秘密鍵dk(v^1,…,v^j)=T(v^1,…,v^j)と暗号文ct=(c0,{cδ,i}δ∈[h],i∈[μ],c’)から,
δ∈[j]についてcv^δ←Σi=1 μHg(vvδ,i)・cδ,iを計算する第1計算部と,
c←[c0|cv^1|…|cv^j]として,s←Invert(F(v^1,…,v^j),T(v^1,…,v^j),c)を計算する第2計算部と,
d←c’-UTsを計算する第3計算部と,
を含み,(2/q)dの各要素を一番近い整数に丸め,各々偶奇を0/1と対応させた結果,得られたベクトルを復号された平文m∈{0,1}Lとして出力する復号部と
を含む階層型内積暗号システムを構成する。
ただし,
GenTrap(1κ,q,n,m):
行列A∈Zq n×m,Λq (A)の基底Tの組(A,T)∈Zq n×m×Zm×mを出力するアルゴリズムであり,
Invert(A,T,c):
TがΛq (A)の基底であるときc=ATs+eとなるs∈Zq nを出力するアルゴリズムであり,
Hgを,Hg:GF(qn)→Zq nk×nk,Hg(aa)=Dg(H(aa))∈Bnk×nk⊆Zq nk×nkと定義し,
正整数b≧2について,B={0,1,…,b-1}⊆Zq,g=(1,b,…,bk-1)∈Zq k,q≦bkが成立しているとして,a∈Zqについて,dg(a)=(a1,…,ak)T∈Bkを,a=Σi=1 kai・bi-1となるような関数として定義し,
Dgを,Dg:Zq→Bk×k,a → [dg(a)dg(ba)…dg(bk-1a)]∈Bk×kと定義し,
行列A={ai,j}∈Zq n×mについてDgの定義域を拡張したものを

Figure 2013217970

と定義し,
ηを,η:GF(qn)→Zq n,aa=a0+a1X+…+an-1Xn-1 → (a0,…,an-1)Tと定義し,
Hを,H:GF(qn)→Zq n×n,aa=a0+a1X+…+an-1Xn-1 → [η(aa)η(aX)…η(aXn-1)]と定義している。 The hierarchical inner product encryption technology of the present invention suppresses the key size and ciphertext size by setting the parameter R of the inner product encryption to GF (q n ). In particular,
Security parameters kappa, d a hierarchy of maximum depth, the length of the attribute vectors mu, the bit length of plaintext L, n, q, parameters for each grating m, sigma 1, ..., key a sigma d Issuing parameters, D Χ distribution on Z q , b, k = ┌log b q┐, m '= nk are size parameters, g = (1, b, ..., b k-1 ) ∈ Z q k, gg = gg the (x) ∈Z q [x] and GF (q n) = Z q [x] / monic irreducible polynomial that defines the <gg>, {1 for a natural number n, ..., n } the expressed as [n], the lattice lambda q for the matrix A∈Z q n × m (a) = {z∈Z m: there is s∈Z q n to be z≡A T s (mod q) Do}
age,
Setup algorithm Setup (1 κ , d, μ, L, n, q, m, m ′, {σ i } i∈ [d] , b, k, gg):
1. (A, T ┬) ← GenTrap (1 κ, q, n, m),
2. For δ∈ [d] and i∈ [μ], choose A δ, i ← Z q n × m ' at random,
3. By selecting U ← Z q n × L at random, the common parameters pp = ((κ, d, μ, L, n, q, m, m ′, {σ i } i∈ [d] , b, k, gg), A, {A δ, i }, U) and master secret key msk = (T ,, pp)
The key issuing device
Key generation algorithm Gen (pp, msk, (v ^ 1 , ..., v ^ j )): (v ^ 1 , ..., v ^ j ) is a key attribute vector, 1≤j≤d, and δ∈ [j] V ^ δ = (vv δ, 1 , ..., vv δ, μ ) ∈GF (q n ) μ , C v ^ δ = Σ i = 1 μ A δ, i · H g (vv δ, i ) ∈Z q n × m ' , F (v ^ 1,…, v ^ j) = [A | C v ^ 1 |… | C v ^ j ] ∈Z q n × (m + jm') (v ^ 1, ..., v ^ j) ← DelgBasis (T ┬, F (v ^ 1, ..., v ^ j), σ j), the execution, the secret key dk (v ^ 1, ..., v ^ j) includes a key generator that outputs = T (v ^ 1, ..., v ^ j) ,
The encryption device
Encryption algorithm Enc (pp, (w ^ 1 , ..., w ^ h), m∈ {0,1} L) :( w ^ 1, ..., w ^ h) the encryption attribute vector, the I n n rows An identity matrix of n columns, (×) is a Kronecker product, and for δ∈ [h], w ^ δ = (ww δ, 1 , ..., ww δ, μ ) ∈GF (q n ) μ , G ← I n (×) (1, b, ..., b k-1 )
a selection unit that randomly selects s ← Z q n , and selects e ← D Χ m and f ← D Χ L at random;
a first cryptographic element calculation unit for calculating c 0 ← A T s + e;
For δ∈ [h] and i∈ [μ], R δ, i ← {-1, + 1} m × m ' is chosen at random, and c δ, i ← (A δ, i + H (ww δ, i ) · G) T s + R δ, i T e∈Z q m ′
a third cryptographic element calculation unit for calculating c ′ ← U T s + f + └q / 2┘m;
A ciphertext generator that outputs ct = (c 0 , {c δ, i } δ∈ [h], i∈ [μ] , c ′) as ciphertext,
Including
The decryption device
Decoding algorithm Dec (pp, dk (v ^ 1, ..., v ^ j) , ct):
Secret key dk (v ^ 1, ..., v ^ j) = T (v ^ 1, ..., v ^ j) and ciphertext ct = (c 0 , {c δ, i } δ∈ [h], i∈ [μ] , c ')
δ∈ for [j] c v ^ δ ← Σ i = 1 μ H g (vv δ, i) · c δ, a first calculation unit for calculating a i,
c ← [c 0 | c v ^ 1 |… | c v ^ j ], s ← Invert (F (v ^ 1,…, v ^ j) , T (v ^ 1,…, v ^ j) , a second calculation unit for calculating c);
a third calculation unit for calculating d ← c'-U T s;
Rounded each element of (2 / q) d to the nearest integer, and made each even and odd correspond to 0/1, and the resulting vector is the decrypted plaintext m∈ {0,1} L A hierarchical inner product cryptosystem including an output decryption unit is configured.
However,
GenTrap (1 κ , q, n, m):
An algorithm that outputs a set of bases T (A, T) ∈Z q n × m × Z m × m of matrix A∈Z q n × m , Λ q (A),
Invert (A, T, c):
An algorithm that outputs s∈Z q n such that c = A T s + e when T is the basis of Λ q (A),
H g is defined as H g : GF (q n ) → Z q nk × nk , H g (aa) = D g (H (aa)) ∈B nk × nk ⊆Z q nk × nk
For positive integer b ≧ 2, B = {0,1, ..., b-1} ⊆Z q , g = (1, b, ..., b k-1 ) ∈Z q k , q ≦ b k For a∈Z q , d g (a) = (a 1 , ..., a k ) T ∈B k is a function such that a = Σ i = 1 k a i · b i-1 Defined as
D g is defined as D g : Z q → B k × k , a → [d g (a) d g (ba)… d g (b k−1 a)] ∈B k × k
An extension of the domain of D g for the matrix A = {a i, j } ∈Z q n × m
Figure 2013217970

Defined as
η is defined as η: GF (q n ) → Z q n , aa = a 0 + a 1 X +… + a n-1 X n-1 → (a 0 ,…, a n-1 ) T
H, GF (q n ) → Z q n × n , aa = a 0 + a 1 X +… + a n-1 X n-1 → [η (aa) η (aX)… η (aX n -1 )]].

復号装置は,
鍵生成アルゴリズムDelg(pp,dk(v^1,…,v^j),(v^j+1,…,v^s)):
dk(v^1,…,v^j)=T(v^1,…,v^j),δ∈[s]について,v^δ=(vvδ,1,…,vvδ,μ)∈GF(qn)μとして,
δ∈[s]についてCv^δi=1 μAδ,i・Hg(vvδ,i)∈Zq n×m’とし,F(v^1,…,v^j,v^j+1,…,v^s)=[A|Cv^1|…|Cv^s]∈Zq n×(m+sm’)として,T(v^1,…,v^j,v^j+1,…,v^s)←DelgBasis(T(v^1,…,v^j),F(v^1,…,v^j),σs)を実行し,dk(v^1,…,v^s)=T(v^1,…,v^s)を出力する鍵生成部をさらに含んでもよい。
ただし,
ExtBasis(T,A^=[A|C]):
TがΛq (A)の基底であるとき,Λq (A^)の基底T’を出力するアルゴリズムであり,
RandBasis(S,s):
Sが格子Λq (A)の基底であるとき,格子Λq (A)のランダムな基底S’を出力するアルゴリズムであり,
DelgBasis(T,A^=[A|C],s):
TがΛq (A)の基底であるとき,A^に対応する行列T’を出力するアルゴリズムであり,S←ExtBasis(T,A^),T’←RandBasis(S,s)で与えられる。
The decryption device
Key generation algorithm Delg (pp, dk (v ^ 1, ..., v ^ j) , (v ^ j + 1 , ..., v ^ s )):
For dk (v ^ 1, ..., v ^ j) = T (v ^ 1, ..., v ^ j) and δ∈ [s], v ^ δ = (vv δ, 1 , ..., vv δ, μ ) ∈GF (q n ) μ
For δ∈ [s], let C v ^ δ = Σ i = 1 μ A δ, i · H g (vv δ, i ) ∈Z q n × m ' and F (v ^ 1,…, v ^ j, v ^ j + 1,…, v ^ s) = [A | C v ^ 1 |… | C v ^ s ] ∈Z q n × (m + sm ') , T (v ^ 1,…, v ^ j, v ^ j + 1,…, v ^ s) ← DelgBasis (T (v ^ 1,…, v ^ j) , F (v ^ 1,…, v ^ j) , σ s ) , Dk (v ^ 1, ..., v ^ s) = T (v ^ 1, ..., v ^ s) may be further included.
However,
ExtBasis (T, A ^ = [A | C]):
When T is a base of the Λ q (A), an algorithm that outputs the base T 'of Λ q (A ^),
RandBasis (S, s):
When S is a basis of a lattice Λ q (A), an algorithm that outputs a random basis S 'of the lattice Λ q (A),
DelgBasis (T, A ^ = [A | C], s):
An algorithm that outputs a matrix T 'corresponding to A ^ when T is the basis of Λ q (A), given by S ← ExtBasis (T, A ^), T' ← RandBasis (S, s) It is done.

本発明に拠れば,詳細は後述の実施形態に譲るが,具体的には,鍵サイズΩ(μn2 lg2q),暗号文サイズΩ(μn lg2 q)となる。1/|R|が無視できることが必要な応用であっても,1/|R|=1/qnとなるため,これは無視できる。そのような応用でもq=poly(n)と置くことができ,鍵サイズΩ(μn2 lg2n),暗号文サイズΩ(μn lg2 n)を達成できる。 According to the present invention, details will be given to the embodiment described later. Specifically, the key size is Ω (μn 2 lg 2 q), and the ciphertext size is Ω (μn lg 2 q). Even applications that require 1 / | R | to be negligible, this is negligible because 1 / | R | = 1 / q n . Even in such an application, q = poly (n) can be set, and the key size Ω (μn 2 lg 2 n) and the ciphertext size Ω (μn lg 2 n) can be achieved.

実施形態に関わる階層型内積暗号システムのシステム構成並びにその構成要素である鍵発行装置,暗号化装置,復号装置の機能構成を示す図。The figure which shows the function structure of the key issuing apparatus, encryption apparatus, and decryption apparatus which are the system configuration | structure of the hierarchical inner product encryption system in connection with embodiment, and its component.

<準備>
自然数nについて{1,…,n}を[n]で表す。行列A∈Zq n×mについて格子を
Λq (A)={z∈Zm:z≡ATs (mod q)となるs∈Zq nが存在する}
で定義する。行列やベクトルの右肩の記号Tは転置を表す。
<Preparation>
For natural number n, {1, ..., n} is represented by [n]. For a matrix A∈Z q n × m , Λ q (A) = {There exists s∈Z q n such that z∈Z m : z≡A T s (mod q)}
Define in. The symbol T on the right shoulder of a matrix or vector represents transposition.

また,以下のアルゴリズムを用いる。
(1)GenTrap(1κ,q,n,m):
(A,T)∈Zq n×m×Zm×mを出力するアルゴリズムである。TはΛq (A)の基底である。この具体例は,参考文献1,参考文献2,参考文献3に記載されている。
(参考文献1)Craig Gentry, Chris Peikert, and Vinod Vaikuntanathan. Trapdoors for hard lattices and new cryptographic constructions. In Richard E. Ladner and Cynthia Dwork, editors, STOC 2008, pages 197-206. ACM, 2008.
(参考文献2)Joel Alwen and Chris Peikert. Generating shorter bases for hard random lattices. In Susanne Albers and Jean-Yves Marion, editors, STACS 2009, volume 3 of LIPIcs, pages 75-86, Germany, 2009.
Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Germany
(参考文献3)Daniele Micciancio and Chris Peikert. Trapdoors for lattices: Simpler, tighter, faster, smaller. Cryptology ePrint Archive, Report 2011/501, 2011. To appear in EUROCRYPT 2012. Available at http://eprint.iacr.org/2011/501.
(2)ExtBasis(T,A^=[A|C]):
TがΛq (A)の基底であるとき,Λq (A^)の基底T’を出力するアルゴリズムである。具体例は参考文献4に記載されている。
(参考文献4)David Cash, Dennis Hofheinz, Eike Kiltz, and Chris Peikert. Bonsai trees, or how to delegate a lattice basis. In Gilbert [6], pages 523-552.
(3)RandBasis(S,s):
Sが格子Λq (A)の基底であるとき,格子Λq (A)のランダムな基底S’を出力するアルゴリズムである。具体例は参考文献4に記載されている。
(4)Invert(A,T,c):
TがΛq (A)の基底であるときc=ATs+eとなるs∈Zq nを出力するアルゴリズムである。
The following algorithm is used.
(1) GenTrap (1 κ , q, n, m):
This is an algorithm that outputs (A, T) ∈Z q n × m × Z m × m . T is the basis of Λ q (A). Specific examples are described in Reference 1, Reference 2, and Reference 3.
(Reference 1) Craig Gentry, Chris Peikert, and Vinod Vaikuntanathan. Trapdoors for hard lattices and new cryptographic constructions. In Richard E. Ladner and Cynthia Dwork, editors, STOC 2008, pages 197-206. ACM, 2008.
(Reference 2) Joel Alwen and Chris Peikert. Generating shorter bases for hard random lattices. In Susanne Albers and Jean-Yves Marion, editors, STACS 2009, volume 3 of LIPIcs, pages 75-86, Germany, 2009.
Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, Germany
(Reference 3) Daniele Micciancio and Chris Peikert. Trapdoors for lattices: Simpler, tighter, faster, smaller. Cryptology ePrint Archive, Report 2011/501, 2011. To appear in EUROCRYPT 2012. Available at http: //eprint.iacr. org / 2011/501.
(2) ExtBasis (T, A ^ = [A | C]):
When T is a base of the Λ q (A), it is an algorithm that outputs the base T 'of Λ q (A ^). Specific examples are described in Reference 4.
(Reference 4) David Cash, Dennis Hofheinz, Eike Kiltz, and Chris Peikert. Bonsai trees, or how to delegate a lattice basis. In Gilbert [6], pages 523-552.
(3) RandBasis (S, s):
When S is a basis of a lattice Λ q (A), it is an algorithm that outputs a random basis S 'of the lattice Λ q (A). Specific examples are described in Reference 4.
(4) Invert (A, T, c):
T is an algorithm that outputs s∈Z q n to be c = A T s + e when a base of the Λ q (A).

さらに,参考文献4に開示されるアルゴリズムを抽象化した以下のアルゴリズムを定義する。
(5)DelgBasis(T,A^=[A|C],s):
TがΛq (A)の基底であるとき,A^に対応する行列T’を出力するアルゴリズムである。具体的には,
1. S←ExtBasis(T,A^)とする。
2. T’←RandBasis(S,s)を出力する。
Furthermore, the following algorithm that abstracts the algorithm disclosed in Reference 4 is defined.
(5) DelgBasis (T, A ^ = [A | C], s):
This algorithm outputs the matrix T 'corresponding to A ^ when T is the basis of Λ q (A). In particular,
1. Set S ← ExtBasis (T, A ^).
2. Output T '← RandBasis (S, s).

参考文献5(Shweta Agrawal, Dan Boneh, and Xavier Boyen. Efficient lattice (H)IBE in the standard model. In Gilbert [6], pages 553-572.)などに記載されている,関数H:GF(qn)→Zq n×nを以下で定義する。<gg>は,多項式gg∈Zq[X]で生成される単項イデアルを表す。GF(qn)はn次既約多項式gg∈Zq[X]を用いてGF(qn)=Zq[X]/<gg>として定義されているとする。
まず,写像ηを,η:GF(qn)→Zq n,aa=a0+a1X+…+an-1Xn-1 → (a0,…,an-1)Tで定義する。
次に,写像Hを,H:GF(qn)→Zq n×n,aa=a0+a1X+…+an-1Xn-1 → [η(aa)η(aaX)…η(aaXn-1)]で定義する。
Reference 5 (Shweta Agrawal, Dan Boneh, and Xavier Boyen. Efficient lattice (H) IBE in the standard model. In Gilbert [6], pages 553-572.) n ) → Z q n × n is defined below. <gg> represents a unary ideal generated by the polynomial gg∈Z q [X]. GF (q n) is assumed to be defined as GF (q n) = Z q [X] / <gg> using n order irreducible polynomial gg∈Z q [X].
First, the mapping η is expressed as η: GF (q n ) → Z q n , aa = a 0 + a 1 X +… + a n-1 X n-1 → (a 0 ,…, a n-1 ) T Define.
Next, map H is expressed as H: GF (q n ) → Z q n × n , aa = a 0 + a 1 X +… + a n−1 X n−1 → [η (aa) η (aaX)… η (aaX n-1 )].

正整数b≧2について,B={0,1,…,b-1}⊆Zqとする。g=(1,b,…,bk-1)∈Zq kとし,q≦bkが成立しているとする。a∈Zqについて,dg(a)=(a1,…,ak)T∈Bkをa=Σi=1 kai・bi-1となるような関数として定義する。写像Dgを,Dg:Zq→Bk×k,a → [dg(a)dg(ba)…dg(bk-1a)]∈Bk×kで定義する。 For a positive integer b ≧ 2, let B = {0, 1, ..., b-1} ⊆Z q . Assume that g = (1, b,..., b k−1 ) ∈Z q k, and q ≦ b k holds. For a∈Z q, we define d g (a) = (a 1 ,..., a k ) T ∈B k as a function such that a = Σ i = 1 k a i · b i−1 . The mapping D g is defined as D g : Z q → B k × k , a → [d g (a) d g (ba)... D g (b k−1 a)] ∈B k × k .

また,適当な行列A={ai,j}∈Zq n×mについてDgの定義域を拡張して

Figure 2013217970

と定義する。 In addition, the domain of D g is expanded for an appropriate matrix A = {a i, j } ∈Z q n × m.
Figure 2013217970

It is defined as

以上を用いて,写像Hg:GF(qn)→Zq nk×nkをHg(aa)=Dg(H(aa))∈Bnk×nk⊆Zq nk×nkと定義する。 Using the above, mapping H g: GF (q n) → Z q nk × nk the H g (aa) = D g (H (aa)) ∈B nk × nk ⊆Z q nk × nk to define.

[実施例]
上述の準備に基づいて,階層型内積暗号Π=(Setup; Gen; Enc; Dec; Delg)を構成する。
階層型内積暗号Π=(Setup; Gen; Enc; Dec; Delg)に基づく階層型内積暗号システム1は,鍵発行装置100と,暗号化装置200と,復号装置300を含む。
=パラメータの説明=
κ: セキュリティパラメータ
d: 階層の最大の深さを設定するパラメータ
μ: 属性ベクトルの長さ
L: 平文のビット長
n,q,m: 格子用のパラメータ。ただし,qは素数である。
σ1,…,σd: 鍵発行用のパラメータ
DΧ: 体Zq上の分布
b,k=┌logb q┐,m’=nk: サイズ用パラメータ(記号┌・┐は天井関数を表す)
(1,b,…,bk-1)∈Zq k
gg=gg(x)∈Zq[x]: GF(qn)=Zq[x]/<gg>を定義するモニック既約多項式
[Example]
Based on the above preparation, the hierarchical inner product cipher Π = (Setup; Gen; Enc; Dec; Delg) is constructed.
The hierarchical inner product encryption system 1 based on the hierarchical inner product cipher Π = (Setup; Gen; Enc; Dec; Delg) includes a key issuing device 100, an encryption device 200, and a decryption device 300.
= Explanation of parameters =
κ: Security parameter
d: Parameter that sets the maximum depth of the hierarchy μ: Length of attribute vector
L: Bit length of plaintext
n, q, m: Parameters for the grid. However, q is a prime number.
σ 1 , ..., σ d : Parameters for key issuance
D Χ : Distribution on the body Z q
b, k = ┌log b q┐, m '= nk: Size parameters (symbols ┌ and ┐ represent ceiling functions)
(1, b, ..., b k-1 ) ∈Z q k
gg = gg (x) ∈Z q [x]: Monic irreducible polynomial defining GF (q n ) = Z q [x] / <gg>

Setup(1κ,d,μ,L,n,q,m,m’,{σi}i∈[d],b,k,gg):
1. (A,T)←GenTrap(1κ,q,n,m)
2. δ∈[d]およびi∈[μ]について,Aδ,i←Zq n×m’をランダムに選ぶ。
3. U←Zq n×Lをランダムに選ぶ。
そして,pp=((κ,d,μ,L,n,q,m,m’,{σi}i∈[d],b,k,gg),A,{Aδ,i},U)とmsk=(T,pp)を出力する。
Setup (1 κ , d, μ, L, n, q, m, m ′, {σ i } i∈ [d] , b, k, gg):
1. (A, T ┬) ← GenTrap (1 κ, q, n, m)
2. For δ∈ [d] and i∈ [μ], choose A δ, i ← Z q n × m ′ at random.
3. Select U ← Z q n × L at random.
And pp = ((κ, d, μ, L, n, q, m, m ′, {σ i } i∈ [d] , b, k, gg), A, {A δ, i }, U ) And msk = (T ,, pp).

Gen(pp,msk,(v^1,…,v^j)):(v^1,…,v^j)は鍵属性ベクトル。ただし,1≦j≦d。
1. δ∈[j]について,v^δ=(vvδ,1,…,vvδ,μ)∈GF(qn)μとよみ,Cv^δi=1 μAδ,i・Hg(vvδ,i)∈Zq n×m’とおく。
2. F(v^1,…,v^j)=[A|Cv^1|…|Cv^j]∈Zq n×(m+jm’)とおく。
3. 鍵発行装置100の鍵生成部101は,T(v^1,…,v^j)←DelgBasis(T,F(v^1,…,v^j),σj)とする。
そして,dk(v^1,…,v^j)=T(v^1,…,v^j)を出力する。
Gen (pp, msk, (v ^ 1 , ..., v ^ j )): (v ^ 1 , ..., v ^ j ) is a key attribute vector. However, 1 ≦ j ≦ d.
1. For δ∈ [j], we call v ^ δ = (vv δ, 1 , ..., vv δ, μ ) ∈GF (q n ) μ and C v ^ δ = Σ i = 1 μ A δ, i Let H g (vv δ, i ) ∈Z q n × m ′ .
2. Let F (v ^ 1, ..., v ^ j) = [A | C v ^ 1 | ... | C v ^ j ] ∈Z q n × (m + jm ') .
3. The key generation unit 101 of the key issuing apparatus 100, T (v ^ 1, ... , v ^ j) ← DelgBasis (T ┬, F (v ^ 1, ..., v ^ j), σ j) and.
Then, dk (v ^ 1, ..., v ^ j) = T (v ^ 1, ..., v ^ j) is output.

Enc(pp,(w^1,…,w^h),m∈{0,1}L):(w^1,…,w^h)は暗号属性ベクトル。
δ∈[h]について,w^δ=(wwδ,1,…,wwδ,μ)∈GF(qn)μとする。
1. G←In(×)(1,b,…,bk-1)とおく。Inはn行n列の単位行列である。(×)はクロネッカー積を表す。
2. 暗号化装置200の選択部201は,s←Zq nをランダムに選ぶ。
3. 暗号化装置200の選択部201は,e←DΧ mとf←DΧ Lをランダムに選択する。
4. 暗号化装置200の第1暗号要素計算部202aは,c0←ATs+eを計算する。
5. 暗号化装置200の第2暗号要素計算部202bは,δ∈[h]とi∈[μ]について,Rδ,i←{-1,+1}m×m’をランダムに選び,cδ,i←(Aδ,i+H(wwδ,i)・G)Ts+Rδ,i Te∈Zq m’を計算する。
6. 暗号化装置200の第3暗号要素計算部202cは,c’←UTs+f+└q/2┘mを計算する(記号└・┘は床関数を表す)。
そして,暗号文生成部202は,ct=(c0,{cδ,i}δ∈[h],i∈[μ],c’)を出力する。
Enc (pp, (w ^ 1 , ..., w ^ h ), m∈ {0,1} L ): (w ^ 1 , ..., w ^ h ) is a cryptographic attribute vector.
For δ∈ [h], let w ^ δ = (ww δ, 1 , ..., ww δ, μ ) ∈GF (q n ) μ .
1. Let G ← I n (×) (1, b, ..., b k-1 ). I n is a unit matrix of n rows and n columns. (×) represents the Kronecker product.
2. The selection unit 201 of the encryption device 200 randomly selects s ← Z q n .
3. selection unit 201 of the encryption device 200 selects the e ← D chi m and f ← D chi L randomly.
4. The first cryptographic element calculation unit 202a of the encryption device 200 calculates c 0 ← A T s + e.
5. The second cryptographic element calculation unit 202b of the encryption device 200 randomly selects R δ, i ← {-1, + 1} m × m ′ for δ∈ [h] and i∈ [μ], c δ, i ← (A δ, i + H (ww δ, i ) · G) Calculate T s + R δ, i T e∈Z q m ′ .
6. The third cryptographic element calculation unit 202c of the encryption device 200 calculates c ′ ← U T s + f + └q / 2┘m (the symbols └ and ┘ represent floor functions).
Then, the ciphertext generation unit 202 outputs ct = (c 0 , {c δ, i } δε [h], iε [μ] , c ′).

Dec(pp,dk(v^1,…,v^j),ct):
dk(v^1,…,v^j)=T(v^1,…,v^j)と暗号文ct=(c0,{cδ,i}δ∈[h],i∈[μ],c’)から,
1. 復号装置300の第1計算部301aは,δ∈[j]についてcv^δ←Σi=1 μHg(vvδ,i)・cδ,iを計算する。
2. c←[c0|cv^1|…|cv^j]とおく。
3. 復号装置300の第2計算部301bは,s←Invert(F(v^1,…,v^j),T(v^1,…,v^j),c)を計算する。
4. 復号装置300の第3計算部301cは,d←c’-UTsを計算する。
5. 復号装置300の復号部301は,(2/q)dの各要素を一番近い整数に丸め,各々偶奇を0/1と対応させる。この結果,得られたベクトルをm∈{0,1}Lとして出力する。
Dec (pp, dk (v ^ 1, ..., v ^ j) , ct):
dk (v ^ 1, ..., v ^ j) = T (v ^ 1, ..., v ^ j) and ciphertext ct = (c 0 , {c δ, i } δ∈ [h], i∈ [μ ] , C '),
1. The first calculating unit 301a of the decoding device 300, Deruta∈ for [j] c v ^ δ ← Σ i = 1 μ H g (vv δ, i) · c δ, computes the i.
2. Set c ← [c 0 | c v ^ 1 |… | c v ^ j ].
3. The second calculation unit 301b of the decoding device 300 calculates s ← Invert (F (v ^ 1, ..., v ^ j) , T (v ^ 1, ..., v ^ j) , c).
4. The third calculation unit 301c of the decoding device 300 calculates d ← c′−U T s.
5. The decoding unit 301 of the decoding device 300 rounds each element of (2 / q) d to the nearest integer and associates even / odd with 0/1. As a result, the obtained vector is output as m∈ {0, 1} L.

Delg(pp,dk(v^1,…,v^j),(v^j+1,…,v^s)):
dk(v^1,…,v^j)=T(v^1,…,v^j)である。δ∈[s]について,v^δ=(vvδ,1,…,vvδ,μ)∈GF(qn)μとする。
1. δ∈[s]についてCv^δi=1 μAδ,i・Hg(vvδ,i)∈Zq n×m’とおく。
2. F(v^1,…,v^j,v^j+1,…,v^s)=[A|Cv^1|…|Cv^s]∈Zq n×(m+sm’)とおく。
3. 復号装置300の鍵生成部302は,T(v^1,…,v^j,v^j+1,…,v^s)←DelgBasis(T(v^1,…,v^j),F(v^1,…,v^j),σs)とする。
そして,dk(v^1,…,v^s)=T(v^1,…,v^s)を出力する。
Delg (pp, dk (v ^ 1, ..., v ^ j) , (v ^ j + 1 , ..., v ^ s )):
dk (v ^ 1, ..., v ^ j) = T (v ^ 1, ..., v ^ j) . For δ∈ [s], let v ^ δ = (vv δ, 1 , ..., vv δ, μ ) ∈GF (q n ) μ .
1. For δ∈ [s], let C v ^ δ = Σ i = 1 μA δ, i · H g (vv δ, i ) ∈Z q n × m ′ .
2. F (v ^ 1,…, v ^ j, v ^ j + 1,…, v ^ s) = [A | C v ^ 1 |… | C v ^ s ] ∈Z q n × (m + sm ') .
3. The key generation unit 302 of the decryption apparatus 300 uses T (v ^ 1, ..., v ^ j, v ^ j + 1, ..., v ^ s) ← DelgBasis (T (v ^ 1, ..., v ^ j ) , F (v ^ 1,…, v ^ j) , σ s ).
Then, dk (v ^ 1, ..., v ^ s) = T (v ^ 1, ..., v ^ s) is output.

<補記>
階層型内積暗号システムに含まれうるハードウェアエンティティ(鍵発行装置,暗号化装置,復号装置)は,キーボードなどが接続可能な入力部,液晶ディスプレイなどが接続可能な出力部,ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部,CPU(Central Processing Unit)〔キャッシュメモリやレジスタなどを備えていてもよい。〕,メモリであるRAMやROM,ハードディスクである外部記憶装置並びにこれらの入力部,出力部,通信部,CPU,RAM,ROM,外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて,ハードウェアエンティティに,CD−ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては,汎用コンピュータなどがある。
<Supplementary note>
Hardware entities (key issuing device, encryption device, decryption device) that can be included in a hierarchical inner product encryption system are an input unit that can be connected to a keyboard, an output unit that can be connected to a liquid crystal display, etc. A communication unit that can be connected to a communication device (for example, a communication cable), a CPU (Central Processing Unit) [a cache memory, a register, or the like may be provided. ], A RAM or ROM that is a memory, an external storage device that is a hard disk, and a bus that connects the input unit, output unit, communication unit, CPU, RAM, ROM, and external storage device so that data can be exchanged between them. have. If necessary, a hardware entity may be provided with a device (drive) that can read and write a recording medium such as a CD-ROM. A physical entity having such hardware resources includes a general-purpose computer.

ハードウェアエンティティの外部記憶装置には,上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず,例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくなどでもよい)。また,これらのプログラムの処理によって得られるデータなどは,RAMや外部記憶装置などに適宜に記憶される。   The external storage device of the hardware entity stores a program necessary for realizing the above functions and data necessary for processing the program (not limited to the external storage device, for example, reading a program) It may be stored in a ROM that is a dedicated storage device). Data obtained by the processing of these programs is appropriately stored in a RAM or an external storage device.

ハードウェアエンティティでは,外部記憶装置〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて,適宜にCPUで解釈実行・処理される。その結果,CPUが所定の機能(例えば,鍵生成部,選択部,暗号文生成部,復号部など)を実現する。   In the hardware entity, each program stored in an external storage device (or ROM, etc.) and data necessary for processing each program are read into the memory as necessary, and are interpreted and executed by the CPU as appropriate. . As a result, the CPU implements predetermined functions (for example, a key generation unit, a selection unit, a ciphertext generation unit, a decryption unit, etc.).

各実施形態で説明したハードウェアエンティティの細部においては,数論における数値計算処理が必要となる場合があるが,数論における数値計算処理自体は,周知技術と同様にして達成されるので,その演算処理方法などの詳細な説明は省略した(この点の技術水準を示す数論における数値計算処理が可能なソフトウェアとしては,例えばPARI/GP,KANT/KASHなどが挙げられる。PARI/GPについては,例えばインターネット〈URL: http://pari.math.u-bordeaux.fr/〉[平成24年3月21日検索]を参照のこと。KANT/KASHについては,例えばインターネット〈URL: http://page.math.tu-berlin.de/~kant/kash.html〉[平成24年3月21日検索]を参照のこと。)。
また,この点に関する文献として,参考文献Aを挙げることができる。
(参考文献A)H. Cohen,"A Course in Computational Algebraic Number Theory",GTM 138,Springer-Verlag,1993.
In the details of the hardware entity described in each embodiment, numerical calculation processing in number theory may be required, but numerical calculation processing in number theory itself is achieved in the same manner as well-known techniques. A detailed description of the arithmetic processing method and the like has been omitted (software that can perform numerical calculation processing in number theory indicating the technical level of this point includes, for example, PARI / GP, KANT / KASH, etc. About PARI / GP For example, see the Internet <URL: http://pari.math.u-bordeaux.fr/> [searched on March 21, 2012] For KANT / KASH, for example, the Internet <URL: http: / /page.math.tu-berlin.de/~kant/kash.html> [Search on March 21, 2012].
Reference literature A can be cited as a literature relating to this point.
(Reference A) H. Cohen, “A Course in Computational Algebraic Number Theory”, GTM 138, Springer-Verlag, 1993.

本発明は上述の実施形態に限定されるものではなく,本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また,上記実施形態において説明した処理は,記載の順に従って時系列に実行されるのみならず,処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。上述の実施例では,情報処理に用いられるデータ等の情報の装置間での送受信に関わる説明を省略したが,当然のこととして,或る装置Xにおける或る情報処理に用いられる情報Yは,当該装置Xが当該情報Yを保有していない場合,当該情報処理の実行前に,当該装置Xによって当該情報Yを保有する装置から取得されていることに留意されたい。なお,データ等の情報の装置間での送受信は周知技術を利用して実施される。   The present invention is not limited to the above-described embodiment, and can be modified as appropriate without departing from the spirit of the present invention. In addition, the processing described in the above embodiment may be executed not only in time series according to the order of description but also in parallel or individually as required by the processing capability of the device that executes the processing. . In the above-described embodiment, the description related to transmission / reception of information such as data used for information processing between devices is omitted. However, as a matter of course, information Y used for certain information processing in a certain device X is: Note that if the device X does not have the information Y, it is acquired by the device X from the device that has the information Y before the information processing is executed. In addition, transmission / reception of information such as data between devices is performed using a known technique.

また,上記実施形態において説明したハードウェアエンティティにおける処理機能をコンピュータによって実現する場合,ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして,このプログラムをコンピュータで実行することにより,上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。   When the processing functions in the hardware entity described in the above embodiment are realized by a computer, the processing contents of the functions that the hardware entity should have are described by a program. Then, by executing this program on a computer, the processing functions in the hardware entity are realized on the computer.

この処理内容を記述したプログラムは,コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては,例えば,磁気記録装置,光ディスク,光磁気記録媒体,半導体メモリ等どのようなものでもよい。具体的には,例えば,磁気記録装置として,ハードディスク装置,フレキシブルディスク,磁気テープ等を,光ディスクとして,DVD(Digital Versatile Disc),DVD−RAM(Random Access Memory),CD−ROM(Compact Disc Read Only Memory),CD−R(Recordable)/RW(ReWritable)等を,光磁気記録媒体として,MO(Magneto-Optical disc)等を,半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。   The program describing the processing contents can be recorded on a computer-readable recording medium. As a computer-readable recording medium, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used. Specifically, for example, as a magnetic recording device, a hard disk device, a flexible disk, a magnetic tape or the like, and as an optical disk, a DVD (Digital Versatile Disc), a DVD-RAM (Random Access Memory), a CD-ROM (Compact Disc Read Only). Memory), CD-R (Recordable) / RW (ReWritable), etc., magneto-optical recording medium, MO (Magneto-Optical disc), etc., semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory), etc. Can be used.

また,このプログラムの流通は,例えば,そのプログラムを記録したDVD,CD−ROM等の可搬型記録媒体を販売,譲渡,貸与等することによって行う。さらに,このプログラムをサーバコンピュータの記憶装置に格納しておき,ネットワークを介して,サーバコンピュータから他のコンピュータにそのプログラムを転送することにより,このプログラムを流通させる構成としてもよい。   The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Further, 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)型のサービスによって,上述の処理を実行する構成としてもよい。なお,本形態におけるプログラムには,電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。   For example, a computer that executes such a program first stores 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, the computer reads the program stored in the recording medium of the computer and executes the process according to the read program. As another execution form of the program, the computer may directly read the program from the 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, a configuration in which the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes a processing function only by an execution instruction and result acquisition without transferring a program from the server computer to the computer. It is good. Note that the program in this embodiment includes information provided for processing by an electronic computer and equivalent 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, a hardware entity is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized in hardware.

Claims (7)

鍵発行装置と,暗号化装置と,復号装置とを含み,格子問題に基づく階層型内積暗号システムであって,
κをセキュリティパラメータ,dを階層の最大の深さ,μを属性ベクトルの長さ,Lを平文のビット長,n,q,mをそれぞれ格子用のパラメータ,σ1,…,σdを鍵発行用のパラメータ,DΧをZq上の分布,b,k=┌logb q┐,m’=nkをそれぞれサイズ用のパラメータ,g=(1,b,…,bk-1)∈Zq k,gg=gg(x)∈Zq[x]をGF(qn)=Zq[x]/<gg>を定義するモニック既約多項式とし,自然数nについて{1,…,n}を[n]で表し,行列A∈Zq n×mについて格子を
Λq (A)={z∈Zm:z≡ATs (mod q)となるs∈Zq nが存在する}
とし,
セットアップアルゴリズムSetup(1κ,d,μ,L,n,q,m,m’,{σi}i∈[d],b,k,gg):
1. (A,T)←GenTrap(1κ,q,n,m),
2. δ∈[d]およびi∈[μ]について,Aδ,i←Zq n×m’をランダムに選び,
3. U←Zq n×Lをランダムに選ぶ
ことによって,予め共通パラメータpp=((κ,d,μ,L,n,q,m,m’,{σi}i∈[d],b,k,gg),A,{Aδ,i},U)とマスター秘密鍵msk=(T,pp)が与えられているとして,
鍵発行装置は,
鍵生成アルゴリズムGen(pp,msk,(v^1,…,v^j)):(v^1,…,v^j)を鍵属性ベクトル,1≦j≦dとし,δ∈[j]について,v^δ=(vvδ,1,…,vvδ,μ)∈GF(qn)μ,Cv^δi=1 μAδ,i・Hg(vvδ,i)∈Zq n×m’,F(v^1,…,v^j)=[A|Cv^1|…|Cv^j]∈Zq n×(m+jm’)として,T(v^1,…,v^j)←DelgBasis(T,F(v^1,…,v^j),σj),を実行し,秘密鍵dk(v^1,…,v^j)=T(v^1,…,v^j)を出力する鍵生成部
を含み,
暗号化装置は,
暗号化アルゴリズムEnc(pp,(w^1,…,w^h),m∈{0,1}L):(w^1,…,w^h)を暗号属性ベクトル,Inをn行n列の単位行列,(×)をクロネッカー積とし,δ∈[h]について,w^δ=(wwδ,1,…,wwδ,μ)∈GF(qn)μ,G←In(×)(1,b,…,bk-1)として,
s←Zq nをランダムに選び,e←DΧ mとf←DΧ Lをランダムに選ぶ選択部と,
c0←ATs+eを計算する第1暗号要素計算部と,
δ∈[h]とi∈[μ]について,Rδ,i←{-1,+1}m×m’をランダムに選び,cδ,i←(Aδ,i+H(wwδ,i)・G)Ts+Rδ,i Te∈Zq m’を計算する第2暗号要素計算部と,
c’←UTs+f+└q/2┘mを計算する第3暗号要素計算部と,
を含み,ct=(c0,{cδ,i}δ∈[h],i∈[μ],c’)を暗号文として出力する暗号文生成部と,
を含み,
復号装置は,
復号アルゴリズムDec(pp,dk(v^1,…,v^j),ct):
秘密鍵dk(v^1,…,v^j)=T(v^1,…,v^j)と暗号文ct=(c0,{cδ,i}δ∈[h],i∈[μ],c’)から,
δ∈[j]についてcv^δ←Σi=1 μHg(vvδ,i)・cδ,iを計算する第1計算部と,
c←[c0|cv^1|…|cv^j]として,s←Invert(F(v^1,…,v^j),T(v^1,…,v^j),c)を計算する第2計算部と,
d←c’-UTsを計算する第3計算部と,
を含み,(2/q)dの各要素を一番近い整数に丸め,各々偶奇を0/1と対応させた結果,得られたベクトルを復号された平文m∈{0,1}Lとして出力する復号部と
を含む階層型内積暗号システム。
ただし,
GenTrap(1κ,q,n,m):
行列A∈Zq n×m,Λq (A)の基底Tの組(A,T)∈Zq n×m×Zm×mを出力するアルゴリズムであり,
Invert(A,T,c):
TがΛq (A)の基底であるときc=ATs+eとなるs∈Zq nを出力するアルゴリズムであり,
Hgを,Hg:GF(qn)→Zq nk×nk,Hg(aa)=Dg(H(aa))∈Bnk×nk⊆Zq nk×nkと定義し,
正整数b≧2について,B={0,1,…,b-1}⊆Zq,g=(1,b,…,bk-1)∈Zq k,q≦bkが成立しているとして,a∈Zqについて,dg(a)=(a1,…,ak)T∈Bkを,a=Σi=1 kai・bi-1となるような関数として定義し,
Dgを,Dg:Zq→Bk×k,a → [dg(a)dg(ba)…dg(bk-1a)]∈Bk×kと定義し,
行列A={ai,j}∈Zq n×mについてDgの定義域を拡張したものを
Figure 2013217970

と定義し,
ηを,η:GF(qn)→Zq n,aa=a0+a1X+…+an-1Xn-1 → (a0,…,an-1)Tと定義し,
Hを,H:GF(qn)→Zq n×n,aa=a0+a1X+…+an-1Xn-1 → [η(aa)η(aX)…η(aXn-1)]と定義している。
A hierarchical inner product cryptosystem based on a lattice problem, including a key issuing device, an encryption device, and a decryption device,
Security parameters kappa, d a hierarchy of maximum depth, the length of the attribute vectors mu, the bit length of plaintext L, n, q, parameters for each grating m, sigma 1, ..., key a sigma d Issuing parameters, D Χ distribution on Z q , b, k = ┌log b q┐, m '= nk are size parameters, g = (1, b, ..., b k-1 ) ∈ Z q k, gg = gg the (x) ∈Z q [x] and GF (q n) = Z q [x] / monic irreducible polynomial that defines the <gg>, {1 for a natural number n, ..., n } the expressed as [n], the lattice lambda q for the matrix A∈Z q n × m (a) = {z∈Z m: there is s∈Z q n to be z≡A T s (mod q) Do}
age,
Setup algorithm Setup (1 κ , d, μ, L, n, q, m, m ′, {σ i } i∈ [d] , b, k, gg):
1. (A, T ┬) ← GenTrap (1 κ, q, n, m),
2. For δ∈ [d] and i∈ [μ], choose A δ, i ← Z q n × m ' at random,
3. By selecting U ← Z q n × L at random, the common parameters pp = ((κ, d, μ, L, n, q, m, m ′, {σ i } i∈ [d] , b, k, gg), A, {A δ, i }, U) and master secret key msk = (T ,, pp)
The key issuing device
Key generation algorithm Gen (pp, msk, (v ^ 1 , ..., v ^ j )): (v ^ 1 , ..., v ^ j ) is a key attribute vector, 1≤j≤d, and δ∈ [j] V ^ δ = (vv δ, 1 , ..., vv δ, μ ) ∈GF (q n ) μ , C v ^ δ = Σ i = 1 μ A δ, i · H g (vv δ, i ) ∈Z q n × m ' , F (v ^ 1,…, v ^ j) = [A | C v ^ 1 |… | C v ^ j ] ∈Z q n × (m + jm') (v ^ 1, ..., v ^ j) ← DelgBasis (T ┬, F (v ^ 1, ..., v ^ j), σ j), the execution, the secret key dk (v ^ 1, ..., v ^ j) includes a key generator that outputs = T (v ^ 1, ..., v ^ j) ,
The encryption device
Encryption algorithm Enc (pp, (w ^ 1 , ..., w ^ h), m∈ {0,1} L) :( w ^ 1, ..., w ^ h) the encryption attribute vector, the I n n rows An identity matrix of n columns, (×) is a Kronecker product, and for δ∈ [h], w ^ δ = (ww δ, 1 , ..., ww δ, μ ) ∈GF (q n ) μ , G ← I n (×) (1, b, ..., b k-1 )
a selection unit that randomly selects s ← Z q n , and selects e ← D Χ m and f ← D Χ L at random;
a first cryptographic element calculation unit for calculating c 0 ← A T s + e;
For δ∈ [h] and i∈ [μ], R δ, i ← {-1, + 1} m × m ' is chosen at random, and c δ, i ← (A δ, i + H (ww δ, i ) · G) T s + R δ, i T e∈Z q m ′
a third cryptographic element calculation unit for calculating c ′ ← U T s + f + └q / 2┘m;
A ciphertext generator that outputs ct = (c 0 , {c δ, i } δ∈ [h], i∈ [μ] , c ′) as ciphertext,
Including
The decryption device
Decoding algorithm Dec (pp, dk (v ^ 1, ..., v ^ j) , ct):
Secret key dk (v ^ 1, ..., v ^ j) = T (v ^ 1, ..., v ^ j) and ciphertext ct = (c 0 , {c δ, i } δ∈ [h], i∈ [μ] , c ')
δ∈ for [j] c v ^ δ ← Σ i = 1 μ H g (vv δ, i) · c δ, a first calculation unit for calculating a i,
c ← [c 0 | c v ^ 1 |… | c v ^ j ], s ← Invert (F (v ^ 1,…, v ^ j) , T (v ^ 1,…, v ^ j) , a second calculation unit for calculating c);
a third calculation unit for calculating d ← c'-U T s;
Rounded each element of (2 / q) d to the nearest integer, and made each even and odd correspond to 0/1, and the resulting vector is the decrypted plaintext m∈ {0,1} L A hierarchical inner product cryptosystem including an output decryption unit.
However,
GenTrap (1 κ , q, n, m):
An algorithm that outputs a set of bases T (A, T) ∈Z q n × m × Z m × m of matrix A∈Z q n × m , Λ q (A),
Invert (A, T, c):
An algorithm that outputs s∈Z q n such that c = A T s + e when T is the basis of Λ q (A),
H g is defined as H g : GF (q n ) → Z q nk × nk , H g (aa) = D g (H (aa)) ∈B nk × nk ⊆Z q nk × nk
For positive integer b ≧ 2, B = {0,1, ..., b-1} ⊆Z q , g = (1, b, ..., b k-1 ) ∈Z q k , q ≦ b k For a∈Z q , d g (a) = (a 1 , ..., a k ) T ∈B k is a function such that a = Σ i = 1 k a i · b i-1 Defined as
D g is defined as D g : Z q → B k × k , a → [d g (a) d g (ba)… d g (b k−1 a)] ∈B k × k
An extension of the domain of D g for the matrix A = {a i, j } ∈Z q n × m
Figure 2013217970

Defined as
η is defined as η: GF (q n ) → Z q n , aa = a 0 + a 1 X +… + a n-1 X n-1 → (a 0 ,…, a n-1 ) T
H, GF (q n ) → Z q n × n , aa = a 0 + a 1 X +… + a n-1 X n-1 → [η (aa) η (aX)… η (aX n -1 )]].
請求項1に記載の階層型内積暗号システムにおいて,
復号装置は,
鍵生成アルゴリズムDelg(pp,dk(v^1,…,v^j),(v^j+1,…,v^s)):
dk(v^1,…,v^j)=T(v^1,…,v^j),δ∈[s]について,v^δ=(vvδ,1,…,vvδ,μ)∈GF(qn)μとして,
δ∈[s]についてCv^δi=1 μAδ,i・Hg(vvδ,i)∈Zq n×m’とし,F(v^1,…,v^j,v^j+1,…,v^s)=[A|Cv^1|…|Cv^s]∈Zq n×(m+sm’)として,T(v^1,…,v^j,v^j+1,…,v^s)←DelgBasis(T(v^1,…,v^j),F(v^1,…,v^j),σs)を実行し,dk(v^1,…,v^s)=T(v^1,…,v^s)を出力する鍵生成部
をさらに含むことを特徴とする階層型内積暗号システム。
ただし,
ExtBasis(T,A^=[A|C]):
TがΛq (A)の基底であるとき,Λq (A^)の基底T’を出力するアルゴリズムであり,
RandBasis(S,s):
Sが格子Λq (A)の基底であるとき,格子Λq (A)のランダムな基底S’を出力するアルゴリズムであり,
DelgBasis(T,A^=[A|C],s):
TがΛq (A)の基底であるとき,A^に対応する行列T’を出力するアルゴリズムであり,S←ExtBasis(T,A^),T’←RandBasis(S,s)で与えられる。
In the hierarchical inner product cryptosystem according to claim 1,
The decryption device
Key generation algorithm Delg (pp, dk (v ^ 1, ..., v ^ j) , (v ^ j + 1 , ..., v ^ s )):
For dk (v ^ 1, ..., v ^ j) = T (v ^ 1, ..., v ^ j) and δ∈ [s], v ^ δ = (vv δ, 1 , ..., vv δ, μ ) ∈GF (q n ) μ
For δ∈ [s], let C v ^ δ = Σ i = 1 μ A δ, i · H g (vv δ, i ) ∈Z q n × m ' and F (v ^ 1,…, v ^ j, v ^ j + 1,…, v ^ s) = [A | C v ^ 1 |… | C v ^ s ] ∈Z q n × (m + sm ') , T (v ^ 1,…, v ^ j, v ^ j + 1,…, v ^ s) ← DelgBasis (T (v ^ 1,…, v ^ j) , F (v ^ 1,…, v ^ j) , σ s ) , Dk (v ^ 1,..., V ^ s) = T (v ^ 1,..., V ^ s) is further included.
However,
ExtBasis (T, A ^ = [A | C]):
When T is a base of the Λ q (A), an algorithm that outputs the base T 'of Λ q (A ^),
RandBasis (S, s):
When S is a basis of a lattice Λ q (A), an algorithm that outputs a random basis S 'of the lattice Λ q (A),
DelgBasis (T, A ^ = [A | C], s):
An algorithm that outputs a matrix T 'corresponding to A ^ when T is the basis of Λ q (A), given by S ← ExtBasis (T, A ^), T' ← RandBasis (S, s) It is done.
鍵発行装置と,暗号化装置と,復号装置とを含み,格子問題に基づく階層型内積暗号システムにおける階層型内積暗号方法であって,
κをセキュリティパラメータ,dを階層の最大の深さ,μを属性ベクトルの長さ,Lを平文のビット長,n,q,mをそれぞれ格子用のパラメータ,σ1,…,σdを鍵発行用のパラメータ,DΧをZq上の分布,b,k=┌logb q┐,m’=nkをそれぞれサイズ用のパラメータ,g=(1,b,…,bk-1)∈Zq k,gg=gg(x)∈Zq[x]をGF(qn)=Zq[x]/<gg>を定義するモニック既約多項式とし,自然数nについて{1,…,n}を[n]で表し,行列A∈Zq n×mについて格子を
Λq (A)={z∈Zm:z≡ATs (mod q)となるs∈Zq nが存在する}
とし,
セットアップアルゴリズムSetup(1κ,d,μ,L,n,q,m,m’,{σi}i∈[d],b,k,gg):
1. (A,T)←GenTrap(1κ,q,n,m),
2. δ∈[d]およびi∈[μ]について,Aδ,i←Zq n×m’をランダムに選び,
3. U←Zq n×Lをランダムに選ぶ
ことによって,予め共通パラメータpp=((κ,d,μ,L,n,q,m,m’,{σi}i∈[d],b,k,gg),A,{Aδ,i},U)とマスター秘密鍵msk=(T,pp)が与えられているとして,
鍵発行装置の鍵生成部が,
鍵生成アルゴリズムGen(pp,msk,(v^1,…,v^j)):(v^1,…,v^j)を鍵属性ベクトル,1≦j≦dとし,δ∈[j]について,v^δ=(vvδ,1,…,vvδ,μ)∈GF(qn)μ,Cv^δi=1 μAδ,i・Hg(vvδ,i)∈Zq n×m’,F(v^1,…,v^j)=[A|Cv^1|…|Cv^j]∈Zq n×(m+jm’)として,T(v^1,…,v^j)←DelgBasis(T,F(v^1,…,v^j),σj),を実行し,秘密鍵dk(v^1,…,v^j)=T(v^1,…,v^j)を出力する鍵生成ステップと,
暗号化装置において,
暗号化アルゴリズムEnc(pp,(w^1,…,w^h),m∈{0,1}L):(w^1,…,w^h)を暗号属性ベクトル,Inをn行n列の単位行列,(×)をクロネッカー積とし,δ∈[h]について,w^δ=(wwδ,1,…,wwδ,μ)∈GF(qn)μ,G←In(×)(1,b,…,bk-1)として,
選択部が,s←Zq nをランダムに選び,e←DΧ mとf←DΧ Lをランダムに選ぶ選択ステップと,
第1暗号要素計算部が,c0←ATs+eを計算する第1暗号要素計算ステップと,
第2暗号要素計算部が,δ∈[h]とi∈[μ]について,Rδ,i←{-1,+1}m×m’をランダムに選び,cδ,i←(Aδ,i+H(wwδ,i)・G)Ts+Rδ,i Te∈Zq m’を計算する第2暗号要素計算ステップと,
第3暗号要素計算部が,c’←UTs+f+└q/2┘mを計算する第3暗号要素計算ステップと,
を有し,暗号文生成部が,ct=(c0,{cδ,i}δ∈[h],i∈[μ],c’)を暗号文として出力する暗号文生成ステップと,
復号装置において,
復号アルゴリズムDec(pp,dk(v^1,…,v^j),ct):
秘密鍵dk(v^1,…,v^j)=T(v^1,…,v^j)と暗号文ct=(c0,{cδ,i}δ∈[h],i∈[μ],c’)から,
第1計算部が,δ∈[j]についてcv^δ←Σi=1 μHg(vvδ,i)・cδ,iを計算する第1計算ステップと,
第2計算部が,c←[c0|cv^1|…|cv^j]として,s←Invert(F(v^1,…,v^j),T(v^1,…,v^j),c)を計算する第2計算ステップと,
第3計算部が,d←c’-UTsを計算する第3計算ステップと,
を有し,復号部が,(2/q)dの各要素を一番近い整数に丸め,各々偶奇を0/1と対応させた結果,得られたベクトルを復号された平文m∈{0,1}Lとして出力する復号ステップと
を有する階層型内積暗号方法。
ただし,
GenTrap(1κ,q,n,m):
行列A∈Zq n×m,Λq (A)の基底Tの組(A,T)∈Zq n×m×Zm×mを出力するアルゴリズムであり,
Invert(A,T,c):
TがΛq (A)の基底であるときc=ATs+eとなるs∈Zq nを出力するアルゴリズムであり,
Hgを,Hg:GF(qn)→Zq nk×nk,Hg(aa)=Dg(H(aa))∈Bnk×nk⊆Zq nk×nkと定義し,
正整数b≧2について,B={0,1,…,b-1}⊆Zq,g=(1,b,…,bk-1)∈Zq k,q≦bkが成立しているとして,a∈Zqについて,dg(a)=(a1,…,ak)T∈Bkを,a=Σi=1 kai・bi-1となるような関数として定義し,
Dgを,Dg:Zq→Bk×k,a → [dg(a)dg(ba)…dg(bk-1a)]∈Bk×kと定義し,
行列A={ai,j}∈Zq n×mについてDgの定義域を拡張したものを
Figure 2013217970

と定義し,
ηを,η:GF(qn)→Zq n,aa=a0+a1X+…+an-1Xn-1 → (a0,…,an-1)Tと定義し,
Hを,H:GF(qn)→Zq n×n,aa=a0+a1X+…+an-1Xn-1 → [η(aa)η(aX)…η(aXn-1)]と定義している。
A hierarchical inner product encryption method in a hierarchical inner product encryption system based on a lattice problem, comprising a key issuing device, an encryption device, and a decryption device,
Security parameters kappa, d a hierarchy of maximum depth, the length of the attribute vectors mu, the bit length of plaintext L, n, q, parameters for each grating m, sigma 1, ..., key a sigma d Issuing parameters, D Χ distribution on Z q , b, k = ┌log b q┐, m '= nk are size parameters, g = (1, b, ..., b k-1 ) ∈ Z q k, gg = gg the (x) ∈Z q [x] and GF (q n) = Z q [x] / monic irreducible polynomial that defines the <gg>, {1 for a natural number n, ..., n } the expressed as [n], the lattice lambda q for the matrix A∈Z q n × m (a) = {z∈Z m: there is s∈Z q n to be z≡A T s (mod q) Do}
age,
Setup algorithm Setup (1 κ , d, μ, L, n, q, m, m ′, {σ i } i∈ [d] , b, k, gg):
1. (A, T ┬) ← GenTrap (1 κ, q, n, m),
2. For δ∈ [d] and i∈ [μ], choose A δ, i ← Z q n × m ' at random,
3. By selecting U ← Z q n × L at random, the common parameters pp = ((κ, d, μ, L, n, q, m, m ′, {σ i } i∈ [d] , b, k, gg), A, {A δ, i }, U) and master secret key msk = (T ,, pp)
The key generation unit of the key issuing device
Key generation algorithm Gen (pp, msk, (v ^ 1 , ..., v ^ j )): (v ^ 1 , ..., v ^ j ) is a key attribute vector, 1≤j≤d, and δ∈ [j] V ^ δ = (vv δ, 1 , ..., vv δ, μ ) ∈GF (q n ) μ , C v ^ δ = Σ i = 1 μ A δ, i · H g (vv δ, i ) ∈Z q n × m ' , F (v ^ 1,…, v ^ j) = [A | C v ^ 1 |… | C v ^ j ] ∈Z q n × (m + jm') (v ^ 1, ..., v ^ j) ← DelgBasis (T ┬, F (v ^ 1, ..., v ^ j), σ j), the execution, the secret key dk (v ^ 1, ..., v ^ j) a key generation step for outputting = T (v ^ 1, ..., v ^ j) ;
In the encryption device,
Encryption algorithm Enc (pp, (w ^ 1 , ..., w ^ h), m∈ {0,1} L) :( w ^ 1, ..., w ^ h) the encryption attribute vector, the I n n rows An identity matrix of n columns, (×) is a Kronecker product, and for δ∈ [h], w ^ δ = (ww δ, 1 , ..., ww δ, μ ) ∈GF (q n ) μ , G ← I n (×) (1, b, ..., b k-1 )
A selection step in which the selection unit randomly selects s ← Z q n, and randomly selects e ← D Χ m and f ← D Χ L ;
A first cryptographic element calculation unit for calculating c 0 ← A T s + e;
The second cryptographic element calculation unit randomly selects R δ, i ← {-1, + 1} m × m ′ for δ∈ [h] and i∈ [μ], and c δ, i ← (A δ , I + H (ww δ, i ) · G) T s + R δ, i T e∈Z q m ′ ;
A third cryptographic element calculation unit for calculating c ′ ← U T s + f + └q / 2┘m;
A ciphertext generation unit that outputs ct = (c 0 , {c δ, i } δ∈ [h], i∈ [μ] , c ′) as ciphertext, and
In the decoding device,
Decoding algorithm Dec (pp, dk (v ^ 1, ..., v ^ j) , ct):
Secret key dk (v ^ 1, ..., v ^ j) = T (v ^ 1, ..., v ^ j) and ciphertext ct = (c 0 , {c δ, i } δ∈ [h], i∈ [μ] , c ')
The first calculation unit, Deruta∈ for [j] c v ^ δ ← Σ i = 1 μ H g (vv δ, i) · c δ, a first calculation step of calculating a i,
The second calculation unit sets c ← [c 0 | c v ^ 1 | ... | c v ^ j ] and s ← Invert (F (v ^ 1, ..., v ^ j) , T (v ^ 1, ... , V ^ j) , c), a second calculation step,
A third calculation unit for calculating d ← c′−U T s;
And the decryption unit rounds each element of (2 / q) d to the nearest integer and associates even / odd with 0/1, resulting in the decrypted plaintext m∈ {0 , 1} A hierarchical inner product encryption method having a decryption step of outputting as L.
However,
GenTrap (1 κ , q, n, m):
An algorithm that outputs a set of bases T (A, T) ∈Z q n × m × Z m × m of matrix A∈Z q n × m , Λ q (A),
Invert (A, T, c):
An algorithm that outputs s∈Z q n such that c = A T s + e when T is the basis of Λ q (A),
H g is defined as H g : GF (q n ) → Z q nk × nk , H g (aa) = D g (H (aa)) ∈B nk × nk ⊆Z q nk × nk
For positive integer b ≧ 2, B = {0,1, ..., b-1} ⊆Z q , g = (1, b, ..., b k-1 ) ∈Z q k , q ≦ b k For a∈Z q , d g (a) = (a 1 , ..., a k ) T ∈B k is a function such that a = Σ i = 1 k a i · b i-1 Defined as
D g is defined as D g : Z q → B k × k , a → [d g (a) d g (ba)… d g (b k−1 a)] ∈B k × k
An extension of the domain of D g for the matrix A = {a i, j } ∈Z q n × m
Figure 2013217970

Defined as
η is defined as η: GF (q n ) → Z q n , aa = a 0 + a 1 X +… + a n-1 X n-1 → (a 0 ,…, a n-1 ) T
H, GF (q n ) → Z q n × n , aa = a 0 + a 1 X +… + a n-1 X n-1 → [η (aa) η (aX)… η (aX n -1 )]].
請求項3に記載の階層型内積暗号方法において,
復号装置において,
鍵生成アルゴリズムDelg(pp,dk(v^1,…,v^j),(v^j+1,…,v^s)):
dk(v^1,…,v^j)=T(v^1,…,v^j),δ∈[s]について,v^δ=(vvδ,1,…,vvδ,μ)∈GF(qn)μとして,
鍵生成部が,δ∈[s]についてCv^δi=1 μAδ,i・Hg(vvδ,i)∈Zq n×m’とし,F(v^1,…,v^j,v^j+1,…,v^s)=[A|Cv^1|…|Cv^s]∈Zq n×(m+sm’)として,T(v^1,…,v^j,v^j+1,…,v^s)←DelgBasis(T(v^1,…,v^j),F(v^1,…,v^j),σs)を実行し,dk(v^1,…,v^s)=T(v^1,…,v^s)を出力する鍵生成ステップ
をさらに有することを特徴とする階層型内積暗号方法。
ただし,
ExtBasis(T,A^=[A|C]):
TがΛq (A)の基底であるとき,Λq (A^)の基底T’を出力するアルゴリズムであり,
RandBasis(S,s):
Sが格子Λq (A)の基底であるとき,格子Λq (A)のランダムな基底S’を出力するアルゴリズムであり,
DelgBasis(T,A^=[A|C],s):
TがΛq (A)の基底であるとき,A^に対応する行列T’を出力するアルゴリズムであり,S←ExtBasis(T,A^),T’←RandBasis(S,s)で与えられる。
The hierarchical inner product encryption method according to claim 3,
In the decoding device,
Key generation algorithm Delg (pp, dk (v ^ 1, ..., v ^ j) , (v ^ j + 1 , ..., v ^ s )):
For dk (v ^ 1, ..., v ^ j) = T (v ^ 1, ..., v ^ j) and δ∈ [s], v ^ δ = (vv δ, 1 , ..., vv δ, μ ) ∈GF (q n ) μ
The key generator sets C v ^ δ = Σ i = 1 μA δ, i · H g (vv δ, i ) ∈Z q n × m ' for δ∈ [s], and F (v ^ 1, ... , V ^ j, v ^ j + 1,…, v ^ s) = [A | C v ^ 1 |… | C v ^ s ] ∈Z q n × (m + sm ') , T (v ^ 1, ..., v ^ j, v ^ j + 1, ..., v ^ s) ← DelgBasis (T (v ^ 1, ..., v ^ j) , F (v ^ 1, ..., v ^ j) , σ s ), and a key generation step of outputting dk (v ^ 1, ..., v ^ s) = T (v ^ 1, ..., v ^ s) .
However,
ExtBasis (T, A ^ = [A | C]):
When T is a base of the Λ q (A), an algorithm that outputs the base T 'of Λ q (A ^),
RandBasis (S, s):
When S is a basis of a lattice Λ q (A), an algorithm that outputs a random basis S 'of the lattice Λ q (A),
DelgBasis (T, A ^ = [A | C], s):
An algorithm that outputs a matrix T 'corresponding to A ^ when T is the basis of Λ q (A), given by S ← ExtBasis (T, A ^), T' ← RandBasis (S, s) It is done.
請求項1または請求項2に記載の階層型内積暗号システムに含まれる暗号化装置。       An encryption device included in the hierarchical inner product encryption system according to claim 1 or 2. 請求項1または請求項2に記載の階層型内積暗号システムに含まれる復号装置。       A decryption device included in the hierarchical inner product cryptosystem according to claim 1 or 2. 請求項1または請求項2に記載の階層型内積暗号システムに含まれる鍵発行装置。       A key issuing device included in the hierarchical inner product encryption system according to claim 1 or 2.
JP2012085734A 2012-04-04 2012-04-04 Hierarchical inner product encryption system based on lattice problem, hierarchical inner product encryption method and apparatus based on lattice problem Active JP5730805B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012085734A JP5730805B2 (en) 2012-04-04 2012-04-04 Hierarchical inner product encryption system based on lattice problem, hierarchical inner product encryption method and apparatus based on lattice problem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012085734A JP5730805B2 (en) 2012-04-04 2012-04-04 Hierarchical inner product encryption system based on lattice problem, hierarchical inner product encryption method and apparatus based on lattice problem

Publications (2)

Publication Number Publication Date
JP2013217970A true JP2013217970A (en) 2013-10-24
JP5730805B2 JP5730805B2 (en) 2015-06-10

Family

ID=49590161

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012085734A Active JP5730805B2 (en) 2012-04-04 2012-04-04 Hierarchical inner product encryption system based on lattice problem, hierarchical inner product encryption method and apparatus based on lattice problem

Country Status (1)

Country Link
JP (1) JP5730805B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2016162941A1 (en) * 2015-04-07 2017-06-01 三菱電機株式会社 Cryptographic system and key generation device
JP2018182736A (en) * 2017-04-05 2018-11-15 富士通株式会社 Private and mutually authenticated key exchange
CN112236974A (en) * 2018-06-11 2021-01-15 三菱电机株式会社 Decryption device, encryption device, and encryption system
US11257399B2 (en) * 2016-12-12 2022-02-22 Nec Corporation Decoding apparatus, decoding method, and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010273317A (en) * 2009-04-23 2010-12-02 Mitsubishi Electric Corp Encryption processing system, key generator, key transfer device, encryption device, decoder, encryption processing method and encryption processing program
JP2011128609A (en) * 2009-11-20 2011-06-30 Mitsubishi Electric Corp Cipher processing system, key generating device, key delegating device, encrypting device, decrypting device, cipher processing method, and cipher processing program
JP2011141472A (en) * 2010-01-08 2011-07-21 Mitsubishi Electric Corp Encryption processing system, key generating device, key transfer device, encrypting device, decrypting device, encryption processing method, and encryption processing program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010273317A (en) * 2009-04-23 2010-12-02 Mitsubishi Electric Corp Encryption processing system, key generator, key transfer device, encryption device, decoder, encryption processing method and encryption processing program
JP2011128609A (en) * 2009-11-20 2011-06-30 Mitsubishi Electric Corp Cipher processing system, key generating device, key delegating device, encrypting device, decrypting device, cipher processing method, and cipher processing program
JP2011141472A (en) * 2010-01-08 2011-07-21 Mitsubishi Electric Corp Encryption processing system, key generating device, key transfer device, encrypting device, decrypting device, encryption processing method, and encryption processing program

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JPN7015000809; Agrawal, S. et al.: 'Functional Encryption for Inner Product Predicates from Learning with Errors' Lecture Notes in Computer Science Vol.7073, 2011, p.21-40, International Association for Cryptologic Research *
JPN7015000812; Agrawal, S.: 'Efficient lattice (H)IBE in the standard model' Lecture Notes in Computer Science Vol.6110, 2010, p.553-572 *
JPN7015000836; Agrawal, S. et al.: 'Lattice Basis Delegation in Fixed Dimension and Shorter-Ciphertext Hierarchical IBE' Lecture Notes in Computer Science Vol.6223, 2010, p.98-115 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2016162941A1 (en) * 2015-04-07 2017-06-01 三菱電機株式会社 Cryptographic system and key generation device
US11257399B2 (en) * 2016-12-12 2022-02-22 Nec Corporation Decoding apparatus, decoding method, and program
JP2018182736A (en) * 2017-04-05 2018-11-15 富士通株式会社 Private and mutually authenticated key exchange
JP7024563B2 (en) 2017-04-05 2022-02-24 富士通株式会社 Confidential and mutually authenticated key exchange
CN112236974A (en) * 2018-06-11 2021-01-15 三菱电机株式会社 Decryption device, encryption device, and encryption system
EP3767874A4 (en) * 2018-06-11 2021-06-30 Mitsubishi Electric Corporation Decrypting device, encrypting device, and encryption system
US11533176B2 (en) 2018-06-11 2022-12-20 Mitsubishi Electric Corporation Decryption device, encryption device, and cryptographic system
CN112236974B (en) * 2018-06-11 2024-02-23 三菱电机株式会社 Decryption device, encryption device, and encryption system

Also Published As

Publication number Publication date
JP5730805B2 (en) 2015-06-10

Similar Documents

Publication Publication Date Title
JP5422053B2 (en) Encryption system, encryption communication method, encryption device, key generation device, decryption device, content server device, program, storage medium
JP6059258B2 (en) Split storage device, secret key split storage method
KR102423885B1 (en) Method and system for additive homomorphic encryption scheme with error detection functionality
US20130083921A1 (en) Encryption device, decryption device, encryption method, decryption method, program, and recording medium
KR101606317B1 (en) Encryption system, encryption method, encryption program and decryption device
JP5730805B2 (en) Hierarchical inner product encryption system based on lattice problem, hierarchical inner product encryption method and apparatus based on lattice problem
JP6059347B2 (en) Decoding device, decoding capability providing device, method and program thereof
JP5755557B2 (en) Timed cryptographic system, timed cryptographic method, apparatus, and program
KR20130024143A (en) Proxy re-encryption method from lattices and apparatus therefor
JP6294882B2 (en) Key storage device, key storage method, and program thereof
JP2012256008A (en) Evaluation target information self-evaluation system, evaluation target information self-evaluation method, device, 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
JP2012237881A (en) Information provision system, mediation device, information provision device, mediation method, information provision method, and program
JP5806689B2 (en) Three-way key sharing system, three-way key sharing method, user device, program
Eltayieb et al. Fine-grained attribute-based encryption scheme supporting equality test
JP5612494B2 (en) Timed cryptographic system, timed cryptographic method, apparatus, and program using function encryption
KR101327980B1 (en) ID-based additive homomorphic encryption method
JP5912281B2 (en) Decryption result verification apparatus, method, system, and program
Jia et al. Cryptanalysis of an ElGamal-Like cryptosystem based on matrices over group rings
JP6189788B2 (en) Key generation device, re-encryption device, and program
Bhirud et al. Data Security Using Elliptic Curve Cryptography
Patsakis et al. A new SETUP for factoring based algorithms
JP6885325B2 (en) Cryptographic device, decryption device, encryption method, decryption method, program
Akleylek et al. New methods for public key cryptosystems based on XTR
JP5752751B2 (en) Decryption system, terminal device, signature system, method thereof, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140813

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150318

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150331

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150408

R150 Certificate of patent or registration of utility model

Ref document number: 5730805

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150