CN103946910A - 密码处理系统、密码处理方法、密码处理程序以及密钥生成装置 - Google Patents

密码处理系统、密码处理方法、密码处理程序以及密钥生成装置 Download PDF

Info

Publication number
CN103946910A
CN103946910A CN201280056310.4A CN201280056310A CN103946910A CN 103946910 A CN103946910 A CN 103946910A CN 201280056310 A CN201280056310 A CN 201280056310A CN 103946910 A CN103946910 A CN 103946910A
Authority
CN
China
Prior art keywords
vector
formula
substrate
value
key
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
CN201280056310.4A
Other languages
English (en)
Other versions
CN103946910B (zh
Inventor
高岛克幸
冈本龙明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Nippon Telegraph and Telephone Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp, Nippon Telegraph and Telephone Corp filed Critical Mitsubishi Electric Corp
Publication of CN103946910A publication Critical patent/CN103946910A/zh
Application granted granted Critical
Publication of CN103946910B publication Critical patent/CN103946910B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/601Broadcast encryption

Abstract

目的在于使公开参数、主秘密密钥的大小变小,并且缩短向用户提供的秘密密钥的生成的处理、加密的处理所花费的时间。密钥生成装置(100)使用在各行各列中至少一个具有0以外的值的稀疏矩阵,生成成为公开参数、主秘密密钥的基底B和基底B*。加密装置(200)生成基底B中的嵌入了规定的信息的矢量作为密码矢量,解密装置(300)将基底B*中的规定的矢量作为密钥矢量,对密码矢量和密钥矢量进行配对运算而对密码矢量进行解密。

Description

密码处理系统、密码处理方法、密码处理程序以及密钥生成装置
技术领域
本发明涉及内积密码(Inner-Product Encryption,IPE)。
背景技术
在非专利文献13、16、17中有关于内积密码的记载。
在非专利文献13、16、17记载的内积密码中,利用矢量空间的基底来提供公开参数、主秘密密钥。
非专利文献1:Abdalla,M.,Kiltz,E.,Neven,G.:Generalized key delegation for hierarchical identity-based encryption.ESORICS’07,LNCS4734,pp.139-154.Springer,(2007)
非专利文献2:Attrapadung,N.,Libert,B.:Functionalencryption for inner product:Achieving constant-size ciphertextswith adaptive security or support for negation.PKC2010.LNCS,vol.6056,pp.384-402.Springer Heidelberg(2010)
非专利文献3:Attrapadung,N.,Libert,B.,De Panafieu,E.:Expressive key-policy attribute-based encryption withconstant-size ciphertexts.PKC2011.LNCS,vol.6571,pp.90-108.Springer Heidelberg(2011)
非专利文献4:Bethencourt,J.,Sahai,A.,Waters,B.:Ciphertext-policy attribute-based encryption.In:2007IEEESymposium on Security and Privacy,pp.321-334.IEEE Press(2007)
非专利文献5:Boneh,D.,Hamburg,M.:Generalized identitybased and broadcast encryption scheme.In:Pieprzyk,J.(ed.)ASIACRYPT2008.LNCS,vol.5350,pp.455-470.SpringerHeidelberg(2008)
非专利文献6:Delerablee,C.:Identity-based broadcastencryption with constant size ciphertexts and private keys.In:ASIACRYPT2007,LNCS,pp.200-215.Springer-Verlag(2007)
非专利文献7:Emura,K.,Miyaji,A.,Nomura,A.,Omote,K.,Soshi,M.:A ciphertext-policy attribute-based encryption schemewith constant ciphertext length.Proceedings of ISPEC2009,LNCS,pp.13-23.Springer-Verlag(2009)
非专利文献8:Gentry,C.,Waters,B.:Adaptive security inbroadcast encryption systems(with short ciphertexts).In:Joux,A.(ed.)EUROCRYPT2009.LNCS,vol.5479,pp.171-188.Springer Heidelberg(2009)
非专利文献9:Goyal,V.,Pandey,O.,Sahai,A.,Waters,B.:Attribute-based encryption for fine-grained access control ofencrypted data.In:ACM Conference on Computer andCommunication Security2006,pp.89-98,ACM(2006)
非专利文献10:Herranz,J.,Laguillaumie,F.,Rafols,C.:Constant size ciphertexts in thereshold attribute-basedencryption,In Nguyen,P.Q.,Pointcheval,D.(eds.)PKC2010.LNCS,vol.6056,pp.19-34.Springer Heidelberg(2010)
非专利文献11:Katz,J.,Sahai,A.,Waters,B.:Predicateencryption supporting disjunctions,polynomial equations,andinner products.In:Smart,N.P.(ed.)EUROCRYPT2008.LNCS,vol.4965,pp.146-162.Springer Heidelberg(2008)
非专利文献12:Lewko,A.,Sahai,A.,Waters,B.:Revocation systems with very small private keys,In IEEESymposium on Security and Privacy2010(2010)
非专利文献13:Lewko,A.,Okamoto,T.,Sahai,A.,Takashima,K.,Waters,B.:Fully secure functional encryption:Attribute-based encryption and(hierarchical)inner productencryption,EUROCRYPT2010.LNCS,Springer Heidelberg(2010)Full version is available at http://eprint.iacr.org/2010/110
非专利文献14:Lewko,A.B.,Waters,B.:New techniquesfor dual system encryption and fully secure HIBE with shortciphertexts.In:Micciancio,D.(ed.)TCC2010.LNCS,vol.5978,pp.455-479.Springer Heidelberg(2010)
非专利文献15:Okamoto,T.,Takashima,K.:Homomorphicencryption and signatures from vector decomposition.In:Galbraith,S.D.,Paterson,K.G.(eds.)Pairing2008.LNCS,vol.5209,pp.57-74,Springer Heidelberg(2008)
非专利文献16:Okamoto,T.,Takashima,K.:Hierarchicalpredicate encryption for inner-products,In:Matsui,M.(ed.)ASIACRYPT2009.LNCS,vol.5912,pp.214-231.SpringerHeidelberg(2009)
非专利文献17:Okamoto,T.,Takashima,K.:Fully securefunctional encryption with general relations from the decisionallinear assumption.In:Rabin,T.(ed.)CRYPTO2010.LNCS,vol.6223,pp.191-208.Springer Heidelberg(2010).Full version isavailable at http://eprint.iacr.org/2010/563
非专利文献18:Sahai,A.,Waters,B.:Fuzzy identity-basedencryption.In:Cramer,R.(ed.)EUROCRYPT2005.LNCS,vol.3494,pp.457-473.Springer Heidelberg(2005)
非专利文献19:Sakai,R.,Furukawa,J.:Identity-basedbroadcast encryption,IACR ePrint Archive:Report2007/217http://eprint.iacr.org/2007/217(2007).
非专利文献20:Waters,B.:Dual system encryption:realizingfully secure IBE and HIBE under simple assumptions.In:Halevi,S.(ed.)CRYPTO2009.LNCS,vol.5677,pp.619-636.SpringerHeidelberg(2009)
发明内容
在非专利文献13、16、17记载的内积密码中,如果将内积密码中使用的矢量的长度设为N,则公开参数、主秘密密钥的大小与N2成比例,在向用户提供的秘密密钥的生成、加密的处理中花费与N2成比例的时间。
本发明的目的在于,使公开参数、主秘密密钥的大小变小,并且缩短向用户提供的秘密密钥的生成的处理、加密的处理所花费的时间。
本发明的密码处理系统,利用使用在各行各列中至少一个具有0以外的值的稀疏矩阵使规定的基底A变形而生成的基底B和基底B*,进行密码处理,其特征在于,具备:
加密装置,生成所述基底B中的嵌入了规定的信息的矢量而作为密码矢量;以及
解密装置,将所述基底B*中的规定的矢量作为密钥矢量,对所述加密装置所生成的密码矢量和所述密钥矢量进行配对运算而对所述密码矢量进行解密,抽出与所述规定的信息有关的信息。
在本发明的密码处理系统中,在为了生成成为公开参数、主秘密密钥的基底B和基底B*而使用的矩阵中使用稀疏矩阵。由此,公开参数、主秘密密钥的大小变小,并且向用户提供的秘密密钥的生成的处理、加密的处理所花费的时间变短。
附图说明
图1是执行零内积密码方式和非零内积密码方式的密码处理系统10的结构图。
图2是随机的线性变换X的特别的形式的说明图。
图3是实施方式2的密钥生成装置100的结构图。
图4是实施方式2的加密装置200的结构图。
图5是实施方式2的解密装置300的结构图。
图6是示出实施方式2的Setup算法的处理的流程图。
图7是示出实施方式2的KeyGen算法的处理的流程图。
图8是示出实施方式2的Enc算法的处理的流程图。
图9是示出实施方式2的Dec算法的处理的流程图。
图10是示出实施方式3的Setup算法的处理的流程图。
图11是示出实施方式3的KeyGen算法的处理的流程图。
图12是示出实施方式3的Enc算法的处理的流程图。
图13是示出实施方式3的Dec算法的处理的流程图。
图14是示出实施方式4的Setup算法的处理的流程图。
图15是示出实施方式4的KeyGen算法的处理的流程图。
图16是示出实施方式4的Enc算法的处理的流程图。
图17是示出实施方式4的Dec算法的处理的流程图。
图18是示出实施方式5的Setup算法的处理的流程图。
图19是示出实施方式5的KeyGen算法的处理的流程图。
图20是示出实施方式5的Enc算法的处理的流程图。
图21是示出实施方式5的Dec算法的处理的流程图。
图22是比较了在实施方式2-4中说明的非零内积密码方式以及零内积密码方式、和非专利文献2记载的非零内积密码方式以及零内积密码方式的图。
图23是示出密钥生成装置100、加密装置200、解密装置300、密钥移交装置400的硬件结构的一个例子的图。
(符号说明)
10:密码处理系统;100:密钥生成装置;110:主密钥生成部;111:空间生成部;112:矩阵生成部;113:基底生成部;114:密钥生成部;120:主密钥存储部;130:信息输入部;140:解密密钥生成部;141:随机数生成部;142:密钥要素生成部;150:密钥分发部;200:加密装置;210:公开参数取得部;220:信息输入部;230:密文生成部;231:随机数生成部;232:密码要素生成部;240:数据发送部;300:解密装置;310:解密密钥取得部;320:数据接收部;330:配对运算部;340:消息计算部。
具体实施方式
以下,根据附图,说明发明的实施方式。
在以下的说明中,处理装置是后述的CPU911等。存储装置是后述的ROM913、RAM914、磁盘920等。通信装置是后述的通信板915等。输入装置是后述的键盘902、通信板915等。输出装置是后述的RAM914、磁盘920、通信板915、LCD901等。即,处理装置、存储装置、通信装置、输入装置、输出装置是硬件。
说明以下的说明中的记法。
在A是随机的变量或者分布时,式101表示按照A的分布从A中随机地选择y。即,在式101中,y是随机数。
[式101]
在A是集合时,式102表示从A中均匀地选择y。即,在式102中,y是均匀随机数。
[式102]
矢量标记表示位数q的有限域Fq中的矢量显示。例如,是式103。
[式103]
x表示:
式104表示式105中示出的2个矢量x和v的式106所示的内积。
[式104]
x → · v →
[式105]
x → = ( x 1 , . . . , x n ) ,
v → = ( v 1 , . . . , v n )
[式106]
Σ i = 1 n x i v i
XT表示矩阵X的转置矩阵。
在bi(i=1,...,n)是空间V的矢量的要素时、即是式107时,式108表示通过式109生成的部分空间。
[式107]
[式108]
[式109]
b 1 , . . . , b L ( resp . x → 1 , . . . , x → L )
相对式110所示的基底B和基底B*,是式111。
[式110]
[式111]
针对j=1、...、n的n个矢量,e j表示式112所示的标准基底矢量。
[式112]
对于j=1,...,n
GL(n,Fq)表示有限域Fq中的次数n的一般线性群。
另外,在以下的说明中,在对下标文字或者上标文字附加了表示矢量的“→”的情况下,表示对于下标文字或者上标文字以上标方式附加该“→”。同样地,在对下标文字或者上标文字附加了基底B*中的“*”的情况下,表示对于下标文字或者上标文字以上标方式附加该“*”。另外,同样地,在对下标文字或者上标文字附加了空间Vt中的t的情况下,表示对于下标文字或者上标文字以下标方式附加该“t”。
另外,在以下的说明中,密码处理包括加密处理、解密处理、密钥生成处理。
实施方式1.
在该实施方式中,说明成为实现内积密码的基础的概念、和内积密码的结构。
第1,说明内积密码的概念。
第2,说明作为用于实现内积密码的空间的双重配对矢量空间(Dual Pairing Vector Spaces,DPVS)。
第3,说明在以下的实施方式中说明的内积密码方式的基本结构。
第4,说明执行在以下的实施方式中说明的内积密码方式的密码处理系统10的基本结构。
第5,说明在以下的实施方式中说明的内积密码方式的基本的观点。
<第1.内积密码的概念>
首先,说明函数型密码(Functional Encryption)。
函数型密码是进步了的密码的概念。另外,函数型密码是公开密钥密码(Public-Key Encryption,PKE)、基于ID的密码(Identity-Based Encryption,IBE)的一般化。在函数型密码系统中,如果对于确定密文的参数y适合地对应关联了参数x,则接收者能够使用与参数x对应的秘密密钥对密文进行解密。即,在解密中,针对某关系R(针对(x,y)成立的关系R),需要R(x,y)=1。
内积密码是函数型密码的一种。
在内积密码中,有零内积密码(Zero Inner Product Encryption,ZIPE)、和非零内积密码(Non-zero Inner Product Encryption,NIPE)。
在零内积密码中,对矢量x进行加密而得到的密文能够用与x·y=0的矢量y对应关联的秘密密钥来解密。即,仅限于是x·y=0的情况,需要是RZIPE(x,y)=1。
在非零内积密码中,对矢量x进行加密而得到的密文能够用与x·y≠0的矢量y对应关联的秘密密钥来解密。即,仅限于是x·y≠0的情况,需要是RNIPE(x,y)=1。
<第2.双重配对矢量空间>
首先,说明对称双线性配对群(Symmetric Bilinear PairingGroups)。
对称双线性配对群(q,G,GT,g,e)是素数q、位数q的循环加法群G、位数q的循环乘法群GT、要素g≠0∈G、以及可通过多项式时间来计算的非退化双线性配对(Nondegenerate BilinearPairing)e:G×G→GT的组。非退化双线性配对是e(sg,tg)=e(g,g)st,且是e(g,g)≠1。
在以下的说明中,关于Gbpg,设为如下算法:以1λ为输入,而输出将保密参数设为λ的双线性配对群的参数paramG:=(q,G,GT,g,e)的值。
接下来,说明双重配对矢量空间。
双重配对矢量空间(q,V,GT,A,e)能够通过对称双线性配对群(paramG:=(q,G,GT,g,e))的直积来构成。双重配对矢量空间(q,V,GT,A,e)是素数q、式113所示的有限域Fq上的N维矢量空间V、位数q的循环群GT、空间V的标准基底A:=(a1,...,aN)的组,具有以下的运算(1)(2)。此处,ai如式114所示。
[式113]
[式114]
运算(1):非退化双线性配对
空间V中的配对通过式115来定义。
[式115]
此处,是如下:
这是非退化双线性。即,e(sx,ty)=e(x,y)st,在针对所有的y∈V是e(x,y)=1的情况下,是x=0。另外,针对所有的i和j,是e(ai,aj)=e(g,g)δi,j(该δi,j表示δi,j)。此处,如果是i=j,则是δi,j=1,如果是i≠j,则是δi,j=0。另外,是e(g,g)≠1∈GT
运算(2):标准映射
式116所示的空间V中的线性变换φi,j能够通过式117来容易地实现。
[式116]
φi,j(aj)=ai
如果k≠j,则φi,j(ak)=0。
[式117]
此处,(g1,...gN):=x
此处,将线性变换φi,j称为标准映射。
在以下的说明中,关于Gdpvs,设为如下算法:将1λ(λ∈自然数)、N∈自然数作为输入,输出保密参数是λ、且作为N维的空间V的双重配对矢量空间的参数paramV:=(q,V,GT,A,e)的值。
另外,此处,说明通过上述对称双线性配对群来构成了双重配对矢量空间的情况。也可以通过非对称双线性配对群来构成双重配对矢量空间。容易将以下的说明应用于通过非对称双线性配对群来构成了双重配对矢量空间的情况。
<第3.内积密码方式的基本结构>
首先,说明零内积密码方式。
零内积密码方式中的关系RZIPE是在矢量x∈Fn q\{0}、和矢量v∈Fn q\{0}下被定义的。另外,仅限于x·v=0的情况,是关系RZIPE(x,v):=1。
同样地,非零内积密码方式中的关系RNIPE是在矢量x∈Fn q\{0}、和矢量v∈Fn q\{0}下被定义的。并且,仅限于x·v≠0的情况,是关系RNIPE(x,v):=1。
零内积密码方式和非零内积密码方式具备Setup、KeyGen、Enc、Dec这4个算法。
(Setup)
Setup算法是被输入保密参数λ、并输出公开参数pk和主秘密密钥sk的概率性的算法。
(KeyGen)
KeyGen算法是将矢量v、公开参数pk以及主秘密密钥sk作为输入而输出解密密钥skv→的概率性的算法。
(Enc)
Enc算法是将消息m、矢量x以及公开参数pk作为输入而输出密文ctx→的概率性的算法。
(Dec)
Dec算法是将在矢量x下加密了的密文ctx→、针对矢量v的解密密钥skv→、以及公开参数pk作为输入而输出消息m或者识别信息⊥的算法。识别信息⊥是表示未能解密的信息。
<第4.密码处理系统10的基本结构>
图1是执行零内积密码方式和非零内积密码方式的密码处理系统10的结构图。
密钥生成装置100将保密参数λ作为输入来执行Setup算法,生成公开参数pk和主秘密密钥sk。然后,密钥生成装置100公开所生成的公开参数pk。另外,密钥生成装置100将矢量v作为输入而执行KeyGen算法,生成解密密钥skv→并秘密地分发到解密装置300。
加密装置200将消息m、矢量x以及公开参数pk作为输入而执行Enc算法,生成密文ctx→。加密装置200将所生成的密文ctx→发送到解密装置300。
解密装置300将公开参数pk、解密密钥skv→以及密文ctx→作为输入而执行Dec算法,输出消息m’(=m)或者识别信息⊥。
<第5.密码方式的基本的观点>
在将双重配对矢量空间应用于密码处理的典型的应用程序中,生成双重基底(或者标准正交基底)的对即基底B和基底B*。使用从GL(N,Fq)均匀地选择的、完全随机的线性变换X(基底变换矩阵)来生成基底B和基底B*。特别是,通过线性变换X和(X-1)T对标准基底A进行变换而分别生成基底B和基底B*。另外,N是span<B>和span<B*>的维数。
另外,在将双重配对矢量空间应用于密码处理的典型的应用程序中,基底B的一部分(称为B^)被用作公开参数,与它对应的基底B*的一部分(称为B^*)被用作秘密密钥或者陷门。
在以下的实施方式中说明的内积密码中,代替上述完全随机的线性变换X,而使用X∈GL(N,Fq)的随机的线性变换X的特别的形式。通过该特别的形式的线性变换X,能够减小密文或者秘密密钥的大小,并且能够减少在处理中花费时间的配对运算的数量。
图2是特别的形式的线性变换X的说明图。
图2(a)示出完全随机的线性变换X,图2(b)示出特别的形式的线性变换X。在图2(a)、(b)中,方形所示的部分表示成分的值是0以外的随机数,在图2(b)中,空白部分表示成分的值是0。另外,在图2(b)中,划有斜线的方形所示的部分表示成分的值是相同的值。另外,此处设为N=5。
如图2(a)所示,以往的线性变换X是N2(此处,52=25)的大小。相对于此,如图2(b)所示,在以下的实施方式中说明的内积密码中使用的线性变换X(以下,新的线性变换X)是N+1(此处,5+1=6)的大小。
如上述那样,使用线性变换X对标准基底A进行变换来生成基底B和基底B*。因此,基底B和基底B*的大小与线性变换X的大小成比例。另外,如上述那样,关于基底B和基底B*,其一部分成为公开参数和秘密密钥。因此,公开参数和秘密密钥的大小与线性变换X的大小成比例。即,在使用了以往的线性变换X的情况下,公开参数和秘密密钥的大小与N2成比例。相对于此,在使用了新的线性变换X的情况下,公开参数和秘密密钥的大小与N+1成比例。
其结果,在使用了以往的线性变换X的情况下,在用户密钥的生成的处理、加密的处理中花费与N2成比例的时间。相对于此,在使用了新的线性变换X的情况下,在用户密钥的生成的处理、加密的处理中成为与N+1成比例的时间。即,在使用了新的线性变换X的情况下,计算时间成为N的等级。
接下来,以非零内积密码方式为例,说明实现常数大小的密文和高效的解密的具体的方法。
另外,在说明密文的大小的情况下,设为矢量的描述不包含于密文的一部分中。在说明解密密钥的大小的情况下,也同样地设为矢量的描述不包含于密文的一部分中。
使用将在以下的实施方式中说明的非零内积密码方式进行简化而得到的例子来进行说明。
简化了的非零内积密码方式中的密文由2个矢量要素(c0,c1)∈G5×Gn、以及c3∈GT构成。秘密密钥由2个矢量要素k* 0、k* 1∈G5×Gn构成。另外,(c0,c1)∈G5×Gn意味着,c0是G的5个要素,c1是G的n个要素。同样地,k* 0、k* 1∈G5×Gn意味着,k* 0是G的5个要素,k* 1是G的n个要素。
因此,为了使密文的大小成为常数大小,需要将c1∈Gn压缩为关于n的常数大小。
使用式118所示的特别的线性变换X。
[式118]
此处,μ、μ’1、...、μ’n是从有限域Fq均匀地选择的值,线性变换X中的空白表示是常数值0∈Fq。常数值0意味着,值被固定为0。即,μ、μ’1、...、μ’n是还能够取0的均匀随机数,相对于此,线性变换X中的空白的值被固定为0。另外,H(n,Fq)表示以有限域Fq为要素的N维的矩阵的集合。
系统参数或者DPVS的公开基底是式119所示的基底B。
[式119]
将与x:=(x1,...,xn)对应关联的密文设为式120所示的密文c1
[式120]
此处,ω是从有限域Fq均匀地选择的值。
于是,密文c1能够压缩为式121所示的2个群组的要素C1、C2、和矢量x
[式121]
C 1 : = &omega;&mu;g ,
C 2 : = &omega; ( &Sigma; i = 1 n x i &mu; i &prime; ) g
这是因为,密文c1是通过(x1C1,...,xn-1C1,C2)得到的。另外,关于i=1、...、n-1的各i,是xiC1=xiωμg。
因此,密文(除了矢量x以外的部分)能够设为2个群组的要素,成为关于n的常数大小。
将B*:=(b* i)设为B:=(bi)的双重标准正交基底,将基底B*设为是简化了的非零内积密码方式中的主秘密密钥。将(c0,k* 0,c3)规定为e(c0,k* 0)=gT ζ·gT ωδ、且c3:=gT ζm∈GT。另外,如k* 1:=(δv)B*=δ(v1b* 1+···+vnb* n)那样设定针对矢量v的秘密密钥。
通过基底B和基底B*的双重标准正交性,e(c1,k* 1)=gT ωδ(x→ ·v→)成立。因此,解密者仅限于x·v≠0的情况,能够计算gT ωδ。即,解密者能够通过式122得到消息m。
[式122]
c 3 &CenterDot; e ( c 0 , k 0 * ) - 1 &CenterDot; e ( c 1 , k 1 * ) ( x &RightArrow; &CenterDot; v &RightArrow; ) - 1
密文c1被表示为(x1C1,...,xn-1C1,C2)∈Gn,秘密密钥k* 1被分解为(K1,...,Kn)的n组。因此,e(c1,k* 1)的值是式123。
[式123]
&Pi; i = 1 n - 1 e ( x i C 1 , K i ) &CenterDot; e ( C 2 , K n ) = &Pi; i = 1 n - 1 e ( C 1 , x i K i ) &CenterDot; e ( C 2 , K n ) = e ( C 1 , &Sigma; 1 n - 1 x i K i ) &CenterDot; e ( C 2 , K n )
即,为了计算e(c1,k* 1),通过G中的n-1个标量乘法和2个配对运算就足够了。即,在解密中,仅需要少的数量(常数)的配对运算。一般,配对运算是花费处理时间的运算,所以通过减少配对运算的数量,能够缩短处理整体的处理时间。
另外,在简化了的非零内积密码方式中,密文c1仅具备设定矢量x的基底矢量(实际的编码部),秘密密钥k* 1仅具备设定矢量v的基底矢量(实际的编码部)。
在以下的实施方式中说明的非零内积密码方式中,为了提高安全性,对于密文c1和秘密密钥k* 1,除了实际的编码部以外,还追加用于隐匿部、秘密密钥随机化部、以及密文随机化部的基底矢量。
因此,如式124那样扩展线性变换X。
[式124]
X : = X 1,1 &CenterDot; &CenterDot; &CenterDot; X 1,4 &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; X 4,1 &CenterDot; &CenterDot; &CenterDot; X 4,4
此处,各Xi,j是式118所示的X∈H(n,Fq)。并且,矢量空间由4个正交的部分空间构成。即,矢量空间由用于编码部、隐匿部、秘密密钥随机化部、以及密文随机化部的4个正交的部分空间构成。
实施方式2.
在实施方式2中,说明将密文的大小设为常数大小的非零内积密码方式。
图3是实施方式2的密钥生成装置100的结构图。图4是实施方式2的加密装置200的结构图。图5是实施方式2的解密装置300的结构图。
图6和图7是示出实施方式2的密钥生成装置100的动作的流程图。另外,图6是示出实施方式2的Setup算法的处理的流程图,图7是示出实施方式2的KeyGen算法的处理的流程图。图8是示出实施方式2的加密装置200的动作的流程图,是示出实施方式2的Enc算法的处理的流程图。图9是示出实施方式2的解密装置300的动作的流程图,是示出实施方式2的Dec算法的处理的流程图。
另外,在以下的说明中,设为所输入的矢量x:=(x1,...,xn)关于L=1、...、n-1的各整数L是xL≠0,所输入的矢量v:=(v1,...,vn)是vn≠0。
说明密钥生成装置100。
如图3所示,密钥生成装置100具备主密钥生成部110、主密钥存储部120、信息输入部130、解密密钥生成部140、密钥分发部150。主密钥生成部110具备空间生成部111、矩阵生成部112、基底生成部113、密钥生成部114。解密密钥生成部140具备随机数生成部141、密钥要素生成部142。
根据图6,说明Setup算法的处理。
(S101:空间生成步骤)
空间生成部111将保密参数1λ作为输入,通过处理装置执行Gbpg,生成对称双线性配对群的参数paramG:=(q,G,GT,g,e)。
而且,空间生成部111设定N0:=5、N1:=4n。然后,空间生成部111针对t=0、1的各t,将保密参数1λ、Nt、以及对称双线性配对群的参数paramG作为输入,通过处理装置执行Gdpvs,生成双重配对矢量空间的参数paramVt:=(q,Vt,GT,At,e)。
(S102:线性变换生成步骤)
矩阵生成部112如式125所示,通过处理装置生成线性变换X0
[式125]
另外,式125中的(χ0,i,j)i,j=1,...,5是与矩阵χ0,i,j的下标i,j有关的矩阵这样的意思。
另外,矩阵生成部112如式126所示,通过处理装置生成线性变换X1
[式126]
式126中的L(N,Fq)如式127所示。
[式127]
另外,以下,{μi,j,μ’i,j,L}i,j=1,...,4;L=1,...,n表示线性变换X1中的常数值0以外的要素。
(S103:基底B生成步骤)
基底生成部113如式128所示,通过处理装置生成基底B0、变量Bi,j、以及变量B’i,j,L
[式128]
另外,基底生成部113如式129所示,通过处理装置生成基底B* 0和基底B* 1
[式129]
对于t=0,1
( &theta; t , i , j ) i , j = 1 , . . . , N t : &psi; &CenterDot; ( X t T ) - 1 ,
(S104:基底B^生成步骤)
密钥生成部114如式130所示,通过处理装置生成基底B^ 0、基底B^* 0、以及基底B^* 1
[式130]
(S105:主密钥生成步骤)
密钥生成部114通过处理装置,设公开参数pk:=(1λ,paramn,B^ 0,{Bi,j,B’i,j,L}i=1,4;j=1,...,4;L=1,...,n),设主秘密密钥sk:={B^* t}t=0,1。然后,密钥生成部114将公开参数pk和主秘密密钥sk存储到主密钥存储部120中。
另外,paramn:=({paramVt}t=0,1,gT)。
即,在S101至S105中,密钥生成装置100执行使用了式131所示的算法G(1) ob的、式132所示的Setup算法,生成公开参数pk和主秘密密钥sk。
[式131]
N0:=5,N1:=4n,
此后,
表示X1的非零项,
对于 t = 0,1 ( &theta; t , i , j ) i , j = 1 , . . . , N t : &psi; &CenterDot; ( X t T ) - 1 ,
返回
[式132]
Setup(iλ,n)
返回
另外,公开参数例如经由网络而被公开,成为加密装置200、解密装置300可取得的状态。
在S103中,不生成基底B1,取而代之生成了变量Bi,j。如果生成基底B1,则成为式133。
[式133]
对于i=1,...,4,
式133的矩阵中的空白部分表示成分的值是0∈G。基底B1是基底B* 1的标准正交基底。即,e(b1,i,b* 1,j)=gT,针对1≤i≠j≤4n的整数i、j,是e(b1,i,b* 1,j)=1。
根据图7,说明KeyGen算法的处理。
(S111:信息输入步骤)
信息输入部130通过输入装置来输入矢量v
(S112:随机数生成步骤)
随机数生成部141如式134所示,通过处理装置来生成随机数。
[式134]
(S113:要素k* 0生成步骤)
密钥要素生成部142如式135所示,通过处理装置,生成解密密钥skv→的要素即要素k* 0
[式135]
另外,如上述那样,针对式110所示的基底B和基底B*,是式111。因此,式135意味着,作为基底B* 0的基底矢量b* 0,1的系数而设定δ,作为基底矢量b* 0,2的系数而设定0,作为基底矢量b* 0,3的系数而设定1,作为基底矢量b* 0,4的系数而设定φ0,作为基底矢量b* 0,5的系数而设定0。
(S114:要素k* 1生成步骤)
密钥要素生成部142如式136所示,通过处理装置来生成解密密钥skv→的要素即要素k* 1
[式136]
式136意味着,与式135同样地,作为基底B* 1的基底矢量b* 11、...、b* 1,n的系数而设定δv1、...、δvn,作为基底矢量b* 1,n+1、...、b* 1,2n的系数而设定0,作为基底矢量b* 1,2n+1、...、b* 1,3n的系数而设定φ1v1、...、φ1vn,作为基底矢量b* 1,3n+1、...、b* 1,4n的系数而设定0。
(S115:密钥分发步骤)
密钥分发部150将以在S111中输入的矢量v、在S113中生成的要素k* 0、以及在S114中生成的要素k* 1为要素的解密密钥skv→通过例如通信装置经由网络而秘密地分发到解密装置300。当然,解密密钥skv→也可以通过其他方法而分发到解密装置300。
即,在S111至S114中,密钥生成装置100执行式137所示的KeyGen算法,生成解密密钥skv→。然后,在S115中,密钥生成装置100将所生成的解密密钥skv→分发到解密装置300。
[式137]
KeyGen ( pk , sk , v &RightArrow; ) :
返回 sk v &RightArrow; = ( v &RightArrow; , k 0 * , k 1 * ) .
说明加密装置200。
如图4所示,加密装置200具备公开参数取得部210、信息输入部220、密文生成部230、数据发送部240。密文生成部230具备随机数生成部231、密码要素生成部232。
根据图8,说明Enc算法的处理。
(S121:公开参数取得步骤)
公开参数取得部210通过例如通信装置,经由网络而取得密钥生成装置100生成的公开参数pk。
(S122:信息输入步骤)
信息输入部220通过输入装置来输入矢量x
另外,信息输入部220通过输入装置来输入消息m。
(S123:随机数生成步骤)
随机数生成部231如式138所示,通过处理装置来生成随机数。
[式138]
(S124:要素c0生成步骤)
密码要素生成部232如式139所示,通过处理装置来生成密文ctx→的要素即要素c0
[式139]
式139意味着,与式135同样地,作为基底B0的基底矢量b0,1的系数而设定-ω,作为基底矢量b0,2的系数而设定0,作为基底矢量b0,3的系数而设定ζ,作为基底矢量b0,4的系数而设定0,作为基底矢量b0,5的系数而设定η0
(S125:要素C生成步骤)
密码要素生成部232如式140所示,通过处理装置来生成密文ctx→的要素即要素C1,j和要素C2,j
[式140]
对于j=1,...,4
C1,j:=ωB1,j1B4j
C 2 , j : = &Sigma; L = 1 n x L ( &omega; B 1 , j , L &prime; + &eta; 1 B 4 , j , L &prime; )
(S126:要素c3生成步骤)
密码要素生成部232如式141所示,通过处理装置来生成密文ctx→的要素即要素c3
[式141]
c 3 : = g T &zeta; m
(S127:数据发送步骤)
数据发送部240将以在S122中输入的矢量x、在S124中生成的要素c0、在S125中生成的要素C1,j、C2,j、以及在S126中生成的要素c3为要素的密文ctx→通过例如通信装置经由网络而发送到解密装置300。当然,密文ctx→也可以通过其他方法来发送到解密装置300。
即,在S121至S126中,加密装置200执行式142所示的Enc算法,生成密文ctx→。然后,在S127中,加密装置200将所生成的密文ctx→发送到解密装置300。
[式142]
Enc ( pk , m , x &RightArrow; ) :
返回 ct x &RightArrow; : = ( x &RightArrow; , c 0 , { C 1 , j , C 2 , j } j = 1 , . . . , 4 , c 3 ) .
说明解密装置300。
如图5所示,解密装置300具备解密密钥取得部310、数据接收部320、配对运算部330、消息计算部340。
根据图9,说明Dec算法的处理。
(S131:解密密钥取得步骤)
解密密钥取得部310通过例如通信装置,经由网络而取得从密钥生成装置100分发的skv→
另外,解密密钥取得部310取得密钥生成装置100生成的公开参数pk。
(S132:数据接收步骤)
数据接收部320通过例如通信装置,经由网络而接收加密装置200发送的密文ctx→
(S133:值D* j计算步骤)
配对运算部330如式143所示,通过处理装置来计算值D* j
[式143]
对于j=l,...,4
D j * : = &Sigma; L - 1 n - 1 ( ( x &RightArrow; &CenterDot; v &RightArrow; ) - 1 x L ) K ( j - 1 ) n + L *
此处,要素k* 1被分解为(K* 1,...,K* 4n)∈G4n的4n组。
(S134:配对运算步骤)
配对运算部330如式144所示,通过处理装置来执行配对运算,计算值F。
[式144]
F : = e ( C 0 , K 0 * ) &CenterDot; &Pi; j = 1 4 ( e ( D 1 , j , K j * ) &CenterDot; e ( C 2 , j , K jn * ) )
(S135:消息计算步骤)
消息计算部340如式145所示,通过处理装置来计算消息m’。
[式145]
m′:=c3/F
即,在S131至S135中,解密装置300执行式146所示的Dec算法,而计算消息m’。
[式146]
Dec ( pk , sk v &OverBar; : = ( v &RightArrow; , k 0 * , k 1 * ) , ct x &RightArrow; : = ( x &RightArrow; , c 0 , { C 1 , j , C 2 , j } j = 1 , . . . , 4 , c 3 ) ) ;
被分解为的4n组,
F : = e ( C 0 , K 0 * ) &CenterDot; &Pi; j = 1 4 ( e ( C 1 , j , D j * ) &CenterDot; e ( C 2 , j , K jn * ) ) ,
返回m′:=c3/F
另外,根据式133,通过{Bi,j,B’i,j,L}i,j=1,...,4;L=1,...,n来确定B1:=(b1,1,...,b1,4n)。另外,Setup算法的输出中包含的{Bi,j,B’i,j,L}i=1,4;j=1,...,4;L=1,...,n是通过B^ 1:=(b1,1,...,b1,n,b1,3n+1,...,b1,4n)来确定的。
并且,能够如式147所示的Dec’算法那样描述Dec算法。
[式147]
' ( pk , sk v &OverBar; : = ( v &RightArrow; , k 0 * , k 1 * ) , ct x &RightArrow; : = ( x &RightArrow; , c 0 , { C 1 , j , C 2 , j } j = 1 , . . . , 4 , c 3 ) ) ;
即,
返回m′:=c3/F.
如式148所示,在使用了Dec'算法的情况下,如果是x·v≠0,则得到F=gζ T。因此,通过将c3=gζ Tm除以F,得到消息m’(=m)。
[式148]
在实施方式2中说明的非零内积密码方式中,密文ctx→包括由式139所示的要素c0得到的5个要素和由式140所示的关于j=1、...、4的各整数j的要素C1,j以及要素C2,j得到的8个要素合计13个的G的要素。另外,在式141所示的要素c3中包括1个GT的要素。即,密文ctx→关于n是常数大小。
另外,在实施方式2中说明的非零内积密码方式中,解密处理(Dec算法)仅执行由式144所示的e(c0,k* 0)得到的5个和由Πj=1 4(e(C1,j,D* j)·e(C2,j,K* jn))得到的8个合计13个的配对运算。即,解密处理仅需要少的数量的配对运算。
实施方式3.
在实施方式3中,说明将秘密密钥的大小设为常数大小的非零内积密码方式。
密钥生成装置100、加密装置200、解密装置300的结构分别与图3、图4、图5所示的实施方式2的密钥生成装置100、加密装置200、解密装置300的结构相同。
图10和图11是示出实施方式3的密钥生成装置100的动作的流程图。另外,图10是示出实施方式3的Setup算法的处理的流程图,图11是示出实施方式3的KeyGen算法的处理的流程图。图12是示出实施方式3的加密装置200的动作的流程图,是示出实施方式3的Enc算法的处理的流程图。图13是示出实施方式3的解密装置300的动作的流程图,是示出实施方式3的Dec算法的处理的流程图。
另外,在以下的说明中,设为所输入的矢量v:=(v1,...,vn)关于L=1、...、n-1的各整数L是vL≠0,所输入的矢量x:=(x1,...,xn)是xn≠0。
说明密钥生成装置100。
根据图10,说明Setup算法的处理。
S201至S202的处理与图6所示的S101至S102的处理相同。
(S203:基底B生成步骤)
基底生成部113与实施方式2中的基底B0和变量Bi,j同样地,如式149所示,通过处理装置来生成基底D0、变量Di,j、以及变量D’i,j,L
[式149]
另外,基底生成部113与实施方式2中的基底B* 0和基底B* 1同样地,如式150所示,通过处理装置来生成基底D* 0和基底D* 1
[式150]
对于t:O,1
( &theta; t , i , j ) i , j = 1 , . . . , N t : = &psi; &CenterDot; ( X t T ) - 1 ,
然后,基底生成部113将基底D* 0作为基底B0,将基底D0作为基底B* 0,将基底D* 1作为基底B1。另外,基底生成部113关于i、j=1、...、4的各整数i、j、和L=1、...、n的各整数L,将变量Di,j作为变量B* i,j,将变量D’i,j,L作为变量B’* i,j,L
(S204:基底B^生成步骤)
密钥生成部114如式151所示,通过处理装置来生成基底B^ 0、基底B^ 1、以及基底B^* 0
[式151]
(S205:主密钥生成步骤)
密钥生成部114通过处理装置,设为公开参数pk:=(1λ,paramn,{B^ t}t=0,1),设为主秘密密钥sk:=B^* 0,{B* i,j,B’* i,j,L}i=1,3;j=1,...,4; L=1,...,n。然后,密钥生成部114将公开参数pk、主秘密密钥sk存储到主密钥存储部120中。
另外,paramn:=({paramVt}t=0,1,gT)。
即,在S201至S205中,密钥生成装置100执行使用了式152所示的算法G(2) ob的、式153所示的Setup算法,生成公开参数pk和主秘密密钥sk。此处,如式152所示,在算法G(2) ob中使用式131所示的算法G(1) ob
[式152]
对于i,j=1,...4;L=1,...,n,
返回
[式153]
SetuP(1λ,n):
返回
另外,公开参数例如经由网络被公开,成为加密装置200、解密装置300可取得的状态。
根据图11,说明KeyGen算法的处理。
S211至S213的处理与图7所示的S111至S113的处理相同。
(S214:要素K*生成步骤)
密钥要素生成部142如式154所示,通过处理装置来生成解密密钥skv→的要素即要素K* 1,j和要素K* 2,j
[式154]
对于j=1,...,4
(S215:密钥分发步骤)
密钥分发部150将以在S211中输入的矢量v、在S213中生成的要素k* 0、以及在S214中生成的要素K* 1,j、K* 2,j为要素的解密密钥skv→通过例如通信装置经由网络而秘密地分发到解密装置300。当然,解密密钥skv→也可以通过其他方法而分发到解密装置300。
即,在S211至S214中,密钥生成装置100执行式155所示的KeyGen算法,生成解密密钥skv→。然后,在S215中,密钥生成装置100将所生成的解密密钥skv→分发到解密装置300。
[式155]
keyGen ( pk , sk , v &RightArrow; ) :
返回 sk v &RightArrow; : = ( v &RightArrow; , K 0 * , { K 1 , j * , K 2 , j * } j = 1 , . . . , 4 ) .
说明加密装置200。
根据图12,说明Enc算法的处理。
S221至S224的处理与图8所示的S121至S124的处理相同。
(S225:要素c1生成步骤)
密码要素生成部232如式156所示,通过处理装置,生成密文ctx→的要素即要素c1
[式156]
式156意味着,与式135同样地,作为基底B1的基底矢量b* 1,1、...、b* 1,n的系数而设定ωx1、...、ωxn,作为基底矢量b* 1,n+1、...、b* 1,3n的系数而设定0,作为基底矢量b* 1,3n+1、...、b* 1,4n的系数而设定η1x1、...、η1xn
S226的处理与图8所示的S126的处理相同。
(S227:数据发送步骤)
数据发送部240将以在S222中输入的矢量x、在S224中生成的要素c0、在S225中生成的要素c1、以及在S226中生成的要素c3为要素的密文ctx→通过例如通信装置经由网络而分发到解密装置300。当然,密文ctx→也可以通过其他方法而分发到解密装置300。
即,在S221至S226中,加密装置200执行式157所示的Enc算法,生成密文ctx→。然后,在S227中,加密装置200将所生成的密文ctx→发送到解密装置300。
[式157]
Enc ( pk , m , x &OverBar; ) :
c 3 : = g T &zeta; m ,
返回 ct x &OverBar; : = ( x &RightArrow; , c 0 , c 1 , c 3 ) .
说明解密装置300。
根据图13,说明Dec算法的处理。
S231至S232的处理与图9所示的S131至S132的处理相同。
(S233:值Dj计算步骤)
配对运算部330如式158所示,通过处理装置来计算值Dj
[式158]
对于j=1,...,4
D j : = &Sigma; L = 1 n - 1 v L ( ( x &RightArrow; &CenterDot; v &RightArrow; ) - 1 v L ) C ( j - 1 ) n + L
此处,要素c1被分解为(C1,...,C4n)∈G4n的4n组。
(S234:配对运算步骤)
配对运算部330如式159所示,通过处理装置来执行配对运算,计算值F。
[式159]
F : = e ( C 0 , K 0 * ) &CenterDot; &Pi; j = 1 4 ( e ( D j , K 1 , j * ) &CenterDot; e ( C jn , K 2 , j * ) )
S235的处理与图9所示的S135的处理相同。
即,在S231至S235中,解密装置300执行式160所示的Dec算法,计算消息m’。
[式160]
Dec ( pk , s k &RightArrow; v : = ( v &RightArrow; , K 0 * , { K 1 , j * , K 2 , j * } j = 1 , . . . , 4 ) , c t &RightArrow; x : = ( x &OverBar; , c , c 3 ) ) :
c1被分解为的4n组,
F : = e ( C 0 , K 0 * ) &CenterDot; &Pi; j = 1 4 ( e ( D j , K 1 , j * ) &CenterDot; e ( C jn , K 2 , j * ) ) ,
返回m′:=c3/F.
另外,通过{B* i,j,B’* i,j,L}i,j=1,...,4;L=1,...,n来确定B* 1:=(b* 1,1,...,b* 1,4n)。另外,Setup算法的输出中包含的{B* i,j,B’* i,j,L}i=1,3;j=1,..., 4;L=1,...,n是通过B^* 1:=(b* 1,1,...,b* 1,n,b* 1,2n+1,...,b* 1,3n)来确定的。
并且,能够如式161所示的Dec’算法那样描述Dec算法。
[式161]
Dec &prime; ( pk , s k &RightArrow; v : = ( v &RightArrow; , K 0 * , { K 1 , j * , K 2 , j * } j = 1 , . . . , 4 ) , c t &RightArrow; x : = ( x &OverBar; , c 0 , c 1 , c 3 ) ) :
返回m′:=c3/F.
在实施方式3中说明的非零内积密码方式中,解密密钥skv→包括由式135所示的要素k* 0得到的5个和由式154所示的关于j=1、...、4的各整数j的要素K* 1,j以及要素K* 2,j得到的8个合计13个的G的要素。即,解密密钥skv→关于n是常数大小。
另外,在实施方式3中说明的非零内积密码方式中,解密处理(Dec算法)仅执行由式159所示的e(c0,k* 0)得到的5个和由Πj=1 4(e(Dj,K* 1,j)·e(Cjn,K* 2,j))得到的8个合计13个的配对运算。即,解密处理仅需要少的数量的配对运算。
实施方式4.
在实施方式4中,说明将密文的大小设为常数大小的零内积密码方式。
密钥生成装置100、加密装置200、解密装置300的结构分别与图3、图4、图5所示的实施方式2的密钥生成装置100、加密装置200、解密装置300的结构相同。
图14和图15是示出实施方式4的密钥生成装置100的动作的流程图。另外,图14是示出实施方式4的Setup算法的处理的流程图,图15是示出实施方式4的KeyGen算法的处理的流程图。图16是示出实施方式4的加密装置200的动作的流程图,是示出实施方式4的Enc算法的处理的流程图。图17是示出实施方式4的解密装置300的动作的流程图,是示出实施方式4的Dec算法的处理的流程图。
另外,在以下的说明中,设为所输入的矢量x:=(x1,...,xn)关于L=1、...、n-1的各整数L是xL≠0,所输入的矢量v:=(v1,...,vn)是vn≠0。
说明密钥生成装置100。
根据图14,说明Setup算法的处理。
(S301:空间生成步骤)
空间生成部111将保密参数1λ作为输入,通过处理装置来执行Gbpg,生成对称双线性配对群的参数paramG:=(q,G,GT,g,e)。
而且,空间生成部111设定N:=4n+1。然后,空间生成部111将保密参数1λ、N、以及对称双线性配对群的参数paramG作为输入,通过处理装置来执行Gdpvs,生成双重配对矢量空间的参数paramVt:=(q,V,GT,A,e)。
(S302:线性变换生成步骤)
矩阵生成部112如式162所示,通过处理装置来生成线性变换X。
[式162]
式162中的L’(N,Fq)如式163所示。
[式163]
另外,以下,{χ0,0,χ0,j,χi,0,L,μi,j,μ’i,j,L}i,j=1,...,4;L=1,...,n表示线性变换X中的常数值0以外的要素。
(S303:基底B生成步骤)
基底生成部113如式164所示,通过处理装置来生成变量B0,0、变量B0,j、变量Bi,0,L、变量Bi,j、以及变量B’i,j,L
[式164]
对于i,j=1,...,4;L=1,...,n
B0,0:=X0,09,
B0,j:=X0,jg,
Bi,0,L:=Xi,0,Lg,
Bi,j:=μi,jg,
B′i,j,L:=μ′i,j,Lg
另外,基底生成部113如式165所示,通过处理装置来生成基底B*
[式165]
( &theta; i , j ) i , j = 0 , . . . , 4 n : = &psi; &CenterDot; ( X T ) - 1 ,
(S304:基底B^生成步骤)
密钥生成部114如式166所示,通过处理装置来生成基底B^*
[式166]
(S305:主密钥生成步骤)
密钥生成部114通过处理装置,设为公开参数pk:=(1λ,paramn,B^ 0,{B0,0,B0,j,Bi,0,L,Bi,j,B’i,j,L}i=1,4;j=1,...,4;L=1,...,n),设为主秘密密钥sk:=B^*。然后,密钥生成部114将公开参数pk和主秘密密钥sk存储到主密钥存储部120中。
另外,paramn:=(paramV,gT)。
即,在S301至S305中,密钥生成装置100执行使用了式167所示的算法G(3) ob的、式168所示的Setup算法,生成公开参数pk和主秘密密钥sk。
[式167]
此后,
{X0,0,X0,j,Xi,0,L,μi,j,μ′i,j,L}i,j=1,...,4;L=1,...,n表示X的非零项,
( &theta; i , j ) i , j = 0 , . . . , 4 n : = &psi; &CenterDot; ( X T ) - 1 ,
B0,0:=X0,0g,B0,j:=X0,jg,Bi,0,L:=Xi,0,Lg,Bi,j:=μi,jg,B′i,j,L:=μ′i,j,Lg
对于i,j=1,...,4;L=1,...,n,
返回
[式168]
SetuP(1λ,n):
返回pk:=(1λ,paramn,{B0,0,B0,j,Bi,0,L,Bi,j,B′ij,L}i=1,4;=1,..,,4;L=1..,n),
另外,公开参数例如经由网络而被公开,成为加密装置200、解密装置300可取得的状态。
根据图15,说明KeyGen算法的处理。
S311的处理与图7所示的S111的处理相同。
(S312:随机数生成步骤)
随机数生成部141如式169所示,通过处理装置来生成随机数。
[式169]
(S313:要素k*生成步骤)
密钥要素生成部142如式170所示,通过处理装置来生成作为解密密钥skv→的要素的要素k*
[式170]
式170意味着,与式135同样地,作为基底B*的基底矢量b* 0的系数而设定1,作为基底矢量b* 1、...、b* n的系数而设定δv1、...、δvn,作为基底矢量b* n+1、...、b* 2n的系数而设定0,作为基底矢量b* 2n+1、...、b* 3n的系数而设定φv1、...、φvn,作为基底矢量b* 3n+1、...、b* 4n的系数而设定0。
(S314:密钥分发步骤)
密钥分发部150将以在S313中生成的要素k*为要素的解密密钥skv→通过例如通信装置经由网络而秘密地分发到解密装置300。当然,解密密钥skv→也可以通过其他方法而分发到解密装置300。
即,在S311至S313中,密钥生成装置100执行式171所示的KeyGen算法,生成解密密钥skv→。然后,在S314中,密钥生成装置100将所生成的解密密钥skv→分发到解密装置300。
[式171]
KeyGen ( pk , psk , v &RightArrow; ) :
返回 sk v &RightArrow; : = k * .
说明加密装置200。
根据图16,说明Enc算法的处理。
S321至S322的处理与图8所示的S121至S122的处理相同。
(S323:随机数生成步骤)
随机数生成部231如式172所示,通过处理装置来生成随机数。
[式172]
(S324:要素C生成步骤)
密码要素生成部232如式173所示,通过处理装置来生成密文ctx→的要素即要素C0、要素C1,j、以及要素C2,j
[式173]
C 0 : = &zeta; B 0,0 + &Sigma; L = 1 n x L ( &omega; B 1,0 , L + &eta; B 4,0 , L ) ,
对于j=1,...,4
C1,j:=ωB1,j+ηB4,j
C 2 , j : = &zeta; B 0 , j + &Sigma; L = 1 n x L ( &omega; B 1 , j , L &prime; + &eta; B 4 , j 4 L &prime; )
S325的处理与图8所示的S126的处理相同。
(S326:数据发送步骤)
数据发送部240将以在S322中输入的矢量x、在S324中生成的要素C0、C1,j、C2,j以及在S325中生成的要素c3为要素的密文ctx→通过例如通信装置经由网络而分发到解密装置300。当然,密文ctx→也可以通过其他方法而发送到解密装置300。
即,在S321至S325中,加密装置200执行式174所示的Enc算法,生成密文ctx→。然后,在S326中,加密装置200将所生成的密文ctx→发送到解密装置300。
[式174]
Enc ( pk , m , x &RightArrow; ) :
C 0 : = &zeta; B 0,0 + &Sigma; L = 1 n x L ( &omega; B 1,0 , L + &eta; B 4,0 , L ) ,
c 3 : = g T &zeta; m ,
C1,j:=ωB1,j+ηB4,j
返回 ct x &RightArrow; : = ( x &RightArrow; , C 0 , { C 1 , j , C 2 , j } j = 1 , . . . , 4 , c 3 ) .
说明解密装置300。
根据图17,说明Dec算法的处理。
S331至S332的处理与图9所示的S131至S132的处理相同。
(S333:值D* j计算步骤)
配对运算部330如式175所示,通过处理装置来计算值D* j
[式175]
对于j=1,...,4
D j * : = &Sigma; L = 1 n - 1 x L K ( j - 1 ) n + L *
此处,要素k*被分解为(K* 0,...,K* 4n)∈G4n+1的(4n+1)组。
(S334:配对运算步骤)
配对运算部330如式176所示,通过处理装置来执行配对运算,计算值F。
[式176]
F : = e ( C 0 , K 0 * ) &CenterDot; &Pi; j = 1 4 ( e ( D 1 , j , K j * ) &CenterDot; e ( C 2 , j , K jn * ) )
S335的处理与图9所示的S135的处理相同。
即,在S331至S335中,解密装置300执行式177所示的Dec算法,计算消息m’。
[式177]
Dec ( pk , s k &RightArrow; v : = k * , ct x &RightArrow; ( x &RightArrow; , C 0 , { C 1 , j , C 2 , j } j = 1 , . . . , 4 , c 3 ) ) :
k*被分解为的(4n+1)组,
F : = e ( C 0 , K 0 * ) &CenterDot; &Pi; j = 1 4 ( e ( D j , K 1 , j * ) &CenterDot; e ( C jn , K 2 , j * ) ) ,
返回m′:=c3/F.
另外,通过{B0,0,B0,j,Bi,0,L,Bi,j,B’i,j,L}i,j=1,...,4;L=1,...,n来确定B:=(b0,...,b4n)。另外,Setup算法的输出中包含的{B0,0,B0,j,Bi,0,L,Bi,j,B’i,j,L}i=1,4;j=1,...,4;L=1,...,n是通过B^:=(b0,...,bn,b3n+1,...,b4n)来确定的。
另外,能够如式178所示的Dec’算法那样描述Dec算法。
[式178]
Dec ( pk , s k &RightArrow; v : = k * , ct x &RightArrow; ( x &RightArrow; , C 0 , { C 1 , j , C 2 , j } j = 1 , . . . , 4 , c 3 ) ) :
返回m′:=c3/F.
如式179所示,在使用了Dec'算法的情况下,如果是x·v=0,则得到F=gζ T。因此,通过将c3=gζ Tm除以F,得到消息m’(=m)。
[式179]
F = e ( c , k ) = g T &zeta; + &omega;&delta; x &RightArrow; &CenterDot; v &RightArrow; = g T &zeta; 如果 x &RightArrow; &CenterDot; v &RightArrow; = 0 .
在实施方式4中说明的零内积密码方式中,密文ctx→包括由式173所示的要素C0得到的1个和由关于j=1、...、4的各整数j的要素C1,j以及要素C2,j得到的8个合计9个的G的要素。另外,在要素c3中包括1个GT的要素。即,密文ctx→关于n是常数大小。
另外,在实施方式4中说明的零内积密码方式中,解密处理(Dec算法)仅执行由式176所示的e(C0,K* 0)得到的1个和由Πj=1 4(e(C1,j,D* j)·e(C2,j,K* jn))得到的8个合计9个的配对运算。即,解密处理仅需要少的数量的配对运算。
实施方式5.
在实施方式5中,说明将秘密密钥的大小设为常数大小的零内积密码方式。
密钥生成装置100、加密装置200、解密装置300的结构分别与图3、图4、图5所示的实施方式2的密钥生成装置100、加密装置200、解密装置300的结构相同。
图18和图19是示出实施方式5的密钥生成装置100的动作的流程图。另外,图18是示出实施方式5的Setup算法的处理的流程图,图19是示出实施方式5的KeyGen算法的处理的流程图。图20是示出实施方式5的加密装置200的动作的流程图,是示出实施方式5的Enc算法的处理的流程图。图21是示出实施方式5的解密装置300的动作的流程图,是示出实施方式5的Dec算法的处理的流程图。
另外,在以下的说明中,设为所输入的矢量v:=(v1,...,vn)关于L=1、...、n-1的各整数L是vL≠0,所输入的矢量x:=(x1,...,xn)是xn≠0。
说明密钥生成装置100。
根据图18,说明Setup算法的处理。
S401至S402的处理与图14所示的S301至S302的处理相同。
(S403:基底B生成步骤)
基底生成部113与实施方式4中的变量B0,0、变量B0,j、变量Bi,0,L、变量Bi,j、以及变量B’i,j,L同样地,如式180所示,通过处理装置来生成变量D0,0、变量D0,j、变量Di,0,L、变量Di,j、以及变量D’i,j,L
[式180]
对于i,j=1,...,4;L=1,...,n
D0,0:=X0,0g
D0,j:=X0,jg,
Di,O,L:=Xi,0,Lg,
Di,j:=μi,j9,
D′i,j,L:=μ′i,j,Lg
另外,基底生成部113与实施方式4中的基底B*同样地,如式181所示,通过处理装置来生成基底D*
[式181]
( &theta; i , j ) i , j = 0 , . . . , 4 n : = &psi; &CenterDot; ( X T ) - 1 ,
然后,基底生成部113将基底D*设为基底B。另外,基底生成部113针对i、j=1、...、4的各整数i、j、和L=1、...、n的各整数L,将变量D0,0设为变量B* 0,0,将变量D0,j设为变量B* 0,j,将变量Di,0,L设为变量B* i,0,L,将变量Di,j设为变量B* i,j,将变量D’i,j,L设为变量B’* i,j,L
(S404:基底B^生成步骤)
密钥生成部114如式182所示,通过处理装置来生成基底B^
[式182]
(S405:主密钥生成步骤)
密钥生成部114通过处理装置,设为公开参数pk:=(1λ,paramn,B^),设为主秘密密钥sk:=({B* 0,0,B* 0,j,B* i,0,L,B* i,j,B’* i,j,L}i=13;j=1,...,4;L=1,...,n)。然后,密钥生成部114将公开参数pk和主秘密密钥sk存储到主密钥存储部120中。
另外,paramn:=(paramV,gT)。
即,在S401至S405中,密钥生成装置100执行使用了式183所示的算法G(4) ob的、式184所示的Setup算法,生成公开参数pk和主秘密密钥sk。此处,如式183所示,算法G(4) ob使用式167所示的算法G(3) ob
[式183]
对于i,j=1,...4;L=1,...,n,
返回
[式184]
Setup(1λ,n):
返回
sk : = { B 0,0 * , B 0 , j * , B i , 0 , L * , B i , j * , B i , j , L &prime; * } i = 1,3 ; j = 1 , . . . , 4 ; L = 1 , . . . , n
另外,公开参数例如经由网络而被公开,成为加密装置200、解密装置300可取得的状态。
根据图19,说明KeyGen算法的处理。
S411至S412的处理与图15所示的S311至S312的处理相同。
(S413:要素K*生成步骤)
密钥要素生成部142如式185所示,通过处理装置来生成解密密钥skv→的要素即要素K* 0、要素K* 1,j、以及要素K* 2,j
[式185]
对于j=1,...,4
(S414:密钥分发步骤)
密钥分发部150将以在S411中输入的矢量v和在S313中生成的要素K* 0、K* 1,j、K* 2,j为要素的解密密钥skv→通过例如通信装置经由网络而秘密地分发到解密装置300。当然,解密密钥skv→也可以通过其他方法而分发到解密装置300。
即,在S411至S413中,密钥生成装置100执行式186所示的KeyGen算法,生成解密密钥skv→。然后,在S414中,密钥生成装置100将所生成的解密密钥skv→分发到解密装置300。
[式186]
Keygen ( pk , sk , v &RightArrow; ) :
对于j=1,...,4,
返回 sk v &RightArrow; : = &prime; ( v &RightArrow; , K 0 * , { K 1 , j * , K 2 , j * } j = 1 , . . . , 4 .
说明加密装置200。
根据图20,说明Enc算法的处理。
S421至S423的处理与图16所示的S321至S323的处理相同。
(S424:要素c生成步骤)
密码要素生成部232如式187所示,通过处理装置来生成密文ctx→的要素即要素c。
[式187]
式187意味着,与式135同样地,作为基底B的基底矢量b0的系数而设定ζ,作为基底矢量b1、...、bn的系数而设定ωx1、...、ωxn,作为基底矢量bn+1、...、b3n的系数而设定0,作为基底矢量b3n+1、...、b4n的系数而设定ηx1、...、ηxn
S425的处理与图16所示的S325的处理相同。
(S426:数据发送步骤)
数据发送部240将以在S422中输入的矢量x、在S424中生成的要素c、以及在S425中生成的要素c3为要素的密文ctx→通过例如通信装置经由网络而发送到解密装置300。当然,密文ctx→也可以通过其他方法而发送到解密装置300。
即,在S421至S425中,加密装置200执行式188所示的Enc算法,生成密文ctx→。然后,在S426中,加密装置200将所生成的密文ctx→发送到解密装置300。
[式188]
Enc ( pk , m , x &RightArrow; ) :
c 3 : = g T &zeta; m ,
返回 ct x &RightArrow; : = ( x &RightArrow; , c , c 3 ) .
说明解密装置300。
根据图21,说明Dec算法的处理。
S431至S432的处理与图17所示的S331至S332的处理相同。
(S433:值Dj计算步骤)
配对运算部330如式189所示,通过处理装置来计算值Dj
[式189]
对于j=1,...,4
D j : = &Sigma; L = 1 n - 1 v L C ( j - 1 ) n + L
此处,要素c被分解为(C* 0,...,C* 4n)∈G4n+1的(4n+1)组。
(S434:配对运算步骤)
配对运算部330如式190所示,通过处理装置来执行配对运算,计算值F。
[式190]
F : = e ( C 0 , K 0 * ) &CenterDot; &Pi; j = 1 4 ( e ( D j , K 1 , j * ) &CenterDot; e ( C jn , K 2 , j * ) )
S435的处理与图17所示的S335的处理相同。
即,在S431至S435中,解密装置300执行式191所示的Dec算法,计算消息m’。
[式191]
Dec ( pk , s k &RightArrow; v : = ( v &RightArrow; , K 0 * , { K 1 , j * , K 2 , j * } j = 1 , . . . , 4 ) , c t &RightArrow; x : = ( x &OverBar; , c , c 3 ) ) :
c被分解为的(4n+l)组,
F : = e ( C 0 , K 0 * ) &CenterDot; &Pi; j = 1 4 ( e ( D j , K 1 , j * ) &CenterDot; e ( C jn , K 2 , j * ) ) ,
返回m′:=c3/F.
另外,通过{B* 0,0,B* 0,j,B* i,0,L,B* i,j,B’* i,j,L}i,j=1,...,4;L=1,..., n来确定B*:=(b* 0,...,b* 4n)。另外,Setup算法的输出中包含的{B* 0,0,B* 0,j,B* i,0,L,B* i,j,B’* i,j,L}i=1,3;j=1,...,4;L=1,...,n是通过B^*:=(b* 0,...,b* n,b* 2n+1,...,b* 3n)来确定的。
并且,能够如式192所示的Dec’算法那样描述Dec算法。
[式192]
Dec &prime; ( pk , s k &RightArrow; v : = ( v &RightArrow; , K 0 * , { K 1 , j * , K 2 , j * } j = 1 , . . . , 4 ) , c t &RightArrow; x : = ( x &OverBar; , c , c 3 ) ) :
返回m′:=c3/F
在实施方式5中说明的零内积密码方式中,解密密钥skv→包括由式185所示的要素K* 0得到的1个和由关于j=1、...、4的各整数j的要素K* 1,j以及要素K* 2,j得到的8个合计9个的G的要素。即,解密密钥skv→关于n是常数大小。
另外,在实施方式5中说明的零内积密码方式中,解密处理(Dec算法)仅执行由式190所示的e(C0,K* 0)得到的1个和由Πj=1 4(e(Dj,K* 1,j)·e(Cjn,K* 2,j))得到的8个合计9个的配对运算。即,解密处理仅需要少的数量的配对运算。
另外,在以上的实施方式中,使用了图2(b)所示的线性变换X。但是,线性变换X不限于图2(b)所示的变换。例如,也可以将图2(b)中的划有斜线的方形表示的部分分别设为不同的值。另外,在图2(b)中,将N列中的所有的成分设为常数值0以外的随机数,但也可以并非是N列,而是将其他某个至少1列中的所有的成分设为常数值0以外的随机数。
更一般而言,关于线性变换X,是在各行各列中至少一个具有常数值0以外的值的稀疏矩阵即可。而且,关于线性变换X,在是n行n列的矩阵的情况下,作为常数值0以外的值而具有至少n个不同的值即可。而且,关于线性变换X,至少一个列中的所有的成分是常数值0以外的值即可。而且,关于线性变换X,对角成分和至少一个列中的所有的成分是常数值0以外的值即可。而且,关于线性变换X,除了所有成分是常数值0以外的值的列以外,对角成分的值相同即可。
在使用了这样的线性变换X的情况下,相比于使用了以往的线性变换X的情况,公开参数和秘密密钥的大小也变小。另外,用户密钥的生成、加密的处理的处理时间也变短。
但是,根据线性变换X的形式,还有无法减少配对运算的数量的情况。
在以上的实施方式中,矢量空间由用于编码部、隐匿部、秘密密钥随机化部、以及密文随机化部的4个正交的部分空间构成。并且,为了与其对应,如式124所示,使用n行n列的矩阵Xi,j(i,j=1,...,4)来构成了线性变换X。线性变换X的该结构的前提为,隐匿部、秘密密钥随机化部、以及密文随机化部的部分空间是与编码部的部分空间相同的n维。
但是,隐匿部、秘密密钥随机化部、以及密文随机化部的部分空间也可以并非是与编码部的部分空间相同的n维。例如,也可以如下:隐匿部的部分空间是n×u维、秘密密钥随机化部的部分空间是n×w维、密文随机化部的部分空间是n×z维(u,w,z是0以上的整数)。在该情况下,如式193所示,使用n行n列的矩阵Xi,j(i,j=1,...,1+u+w+z)来构成线性变换X即可。
[式193]
X : = X 1,1 &CenterDot; &CenterDot; &CenterDot; X 1,1 + u + w + z &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; X 1 + u + w + z , 1 &CenterDot; &CenterDot; &CenterDot; X 1 + u + w + z , 1 + u + w + z
作为函数型密码的一种,有基于ID的撤销(Identity-BasedRevocation,IBR)、基于ID的广播密码(Identity-Based BroadcastEncryption,IBBE)(参照非专利文献1、5、6、8、19、12)。
在基于ID的撤销中,密文针对标识符的集合S=(ID1,...,IDn)被加密,通过与并非ID∈S的ID对应关联的秘密密钥,对密文进行解密。即,在解密中,仅限于并非ID∈S的情况,需要RIBR(ID,S)=1。
在基于ID的广播密码中,密文针对标识符的集合S=(ID1,...,IDn)被加密,通过与是ID∈S的ID对应关联的秘密密钥,对密文进行解密。即,在解密中,仅限于是ID∈S的情况,需要RIBBE(ID,S)=1。
在S:={ID1,...,IDn}的情况下,设为S(X):=Σi=0 nviXi:=Πi=1 n(X-IDi)。并且,设为矢量v:=(v0,v1,...,vn),设为矢量x:=(1,ID,...,IDn)。
于是,在实施方式2、3中说明的非零内积密码方式成为基于ID的撤销方式,在实施方式4、5中说明的零内积密码方式成为基于ID的广播密码方式。
即,通过在以上的实施方式中说明的内积密码方式,能够实现基于ID的撤销方式以及基于ID的广播密码方式。在该情况下,也能够将密文或者解密密钥设为关于n的常数大小,能够通过少的数量的配对运算来进行解密。
除了在实施方式2-4中说明的具体的密码方式以外,通过在非专利文献13、15、16、17等中说明的密码方式中应用上述线性变换X,公开参数和秘密密钥的大小变小。另外,用户密钥的生成、加密的处理的处理时间也变短。
图22是比较了在实施方式2-4中说明的非零内积密码方式以及零内积密码方式、和非专利文献2记载的非零内积密码方式以及零内积密码方式的图。
另外,在图22中,|G|、|GT|、|Fq|、P、M分别表示G的大小、GT的大小、Fq的大小、配对运算、G中的标量积运算。另外,CT、SK、IP、DBDH分别表示密文、秘密密钥(解密密钥)、内积、决定性的双线性Diffie-Hellman。
实施方式6.
在以上的实施方式中,说明了在双重矢量空间中实现密码处理的方法。在实施方式6中,说明在双重加法群中实现密码处理的方法。
即,在以上的实施方式中,在素数位数q的循环群中实现了密码处理。但是,在使用合成数M如式194那样示出了环R的情况下,在以环R为系数的加法群中,也能够应用在上述实施方式中说明的密码处理。
[式194]
此处,
Z:整数;
M:合成数。
如果将在以上的实施方式中说明的算法中的Fq变更为R,则能够实现双重加法群中的密码处理。
接下来,说明实施方式中的密码处理系统10(密钥生成装置100、加密装置200、解密装置300)的硬件结构。
图23是示出密钥生成装置100、加密装置200、解密装置300、密钥移交装置400的硬件结构的一个例子的图。
如图23所示,密钥生成装置100、加密装置200、解密装置300、密钥移交装置400具备执行程序的CPU911(Central Processing Unit,还称为中央处理装置、处理装置、运算装置、微处理器、微型计算机、处理器)。CPU911经由总线912而与ROM913、RAM914、LCD901(Liquid Crystal Display,液晶显示器)、键盘902(K/B)、通信板915、磁盘装置920连接,并控制这些硬件设备。也可以代替磁盘装置920(固定盘装置),而是光盘装置、存储卡读写装置等存储装置。磁盘装置920经由规定的固定盘接口而被连接。
ROM913、磁盘装置920是非易失性存储器的一个例子。RAM914是易失性存储器的一个例子。ROM913、RAM914、以及磁盘装置920是存储装置(存储器)的一个例子。另外,键盘902、通信板915是输入装置的一个例子。另外,通信板915是通信装置的一个例子。而且,LCD901是显示装置的一个例子。
在磁盘装置920或者ROM913等中,存储有操作系统921(OS)、视窗系统922、程序群923、文件群924。程序群923的程序由CPU911、操作系统921、视窗系统922来执行。
在程序群923中,存储有执行在上述说明中说明为“主密钥生成部110”、“主密钥存储部120”、“信息输入部130”、“解密密钥生成部140”、“密钥分发部150”、“公开参数取得部210”、“信息输入部220”、“密文生成部230”、“数据发送部240”、“解密密钥取得部310”、“数据接收部320”、“配对运算部330”、“消息计算部340”等的功能的软件、程序、其他程序。程序由CPU911读出并执行。
在文件群924中,在上述说明中将“公开参数pk”、“主秘密密钥sk”、“解密密钥skv→”、“密文ctx→”等信息、数据、信号值、变量值、参数存储为“文件”、“数据库”的各项目。“文件”、“数据库”被存储到盘、存储器等记录介质中。盘、存储器等存储介质中存储的信息、数据、信号值、变量值、参数经由读写电路而由CPU911读出到主存储器、高速缓冲存储器中,用于抽出、检索、参照、比较、运算、计算、处理、输出、印刷、显示等CPU911的动作。在抽出、检索、参照、比较、运算、计算、处理、输出、印刷、显示的CPU911的动作的期间,信息、数据、信号值、变量值、参数被临时存储到主存储器、高速缓冲存储器、缓冲存储器中。
另外,上述说明中的流程图的箭头部分主要表示数据、信号的输入输出,数据、信号值记录在RAM914的存储器、其他光盘等记录介质、IC芯片中。另外,数据、信号通过总线912、信号线、电缆、其他传送介质、电波而被在线传送。
另外,在上述说明中说明为“~部”的部分既可以是“~电路”、“~装置”、“~仪器”、“~单元”、“~功能”,另外也可以是“~步骤”、“~过程”、“~处理”。另外,说明为“~装置”的部分既可以是“~电路”、“~仪器”、“~单元”、“~功能”,另外也可以是“~步骤”、“~过程”、“~处理”。而且,说明为“~处理”的部分也可以是“~步骤”。即,说明为“~部”的部分也可以通过在ROM913中存储的固件来实现。或者,也可以仅通过软件、或者仅通过元件、设备、基板、布线等硬件、或者通过软件和硬件的组合、进一步通过与固件的组合来实施。固件和软件作为程序而被存储到ROM913等记录介质中。程序由CPU911读出并由CPU911执行。即,程序使计算机等作为在上述中叙述的“~部”而发挥功能。或者,使计算机等执行在上述中叙述的“~部”的过程、方法。

Claims (15)

1.一种密码处理系统,利用使用在各行各列中至少一个具有常数值0以外的值的稀疏矩阵使规定的基底A变形而生成的基底B和基底B*,进行密码处理,其特征在于,具备:
加密装置,生成所述基底B中的嵌入了规定的信息的矢量而作为密码矢量;以及
解密装置,将所述基底B*中的规定的矢量作为密钥矢量,对所述加密装置所生成的密码矢量和所述密钥矢量进行配对运算而对所述密码矢量进行解密,抽出与所述规定的信息有关的信息。
2.根据权利要求1所述的密码处理系统,其特征在于,
所述稀疏矩阵是n行n列的矩阵,作为常数值0以外的值,具有至少n个不同的值,其中,n是2以上的整数。
3.根据权利要求2所述的密码处理系统,其特征在于,
在所述稀疏矩阵中,至少一个列中的所有成分是常数值0以外的值。
4.根据权利要求3所述的密码处理系统,其特征在于,
在所述稀疏矩阵中,对角成分和至少一个列中的所有的成分是常数值0以外的值。
5.根据权利要求4所述的密码处理系统,其特征在于,
在所述稀疏矩阵中,除了所有的成分是常数值0以外的值的列以外,对角成分的值相同。
6.根据权利要求5所述的密码处理系统,其特征在于,
所述稀疏矩阵是式1所示的矩阵,
[式1]
此处,μ、μ’1、...、μ’n是常数值0以外的规定的值,空栏是常数值0。
7.根据权利要求1所述的密码处理系统,其特征在于,
所述密码处理系统使用利用1行1列至n行n列的值是式2所示的稀疏矩阵的N行N列的线性变换X而如式3所示根据所述基底A生成的基底B和基底B*,其中,N是n以上的整数,
所述加密装置生成包含式4的矢量而作为所述密码矢量,
所述解密装置将包含式5的矢量k*作为所述密钥矢量,对所述密码矢量进行解密,
[式2]
此处,μ1、...、μn-1和μ’1、...、μ’n是常数值0以外的规定的值,空栏是常数值0,
[式3]
b i : = &Sigma; j = 1 N X i , j a j 对于i=1,...,N,
&theta; i , j : = &psi; &CenterDot; ( X T ) - 1 ,
b i * : = &Sigma; j = 1 N &theta; i , j a j 对于i=1...,N,
此处,χi,j是线性变换X的i行j列的成分,Ψ是规定的值,aj是基底A的第j个基底矢量,
[式4]
&Sigma; i = 1 n &omega;x i b i
此处,ω和x1、...、xn是规定的值,
[式5]
&Sigma; i = 1 n &delta;v i b i *
此处,δ和v1、...、vn是规定的值。
8.根据权利要求7所述的密码处理系统,其特征在于,
所述式2所示的稀疏矩阵的值Bi的值是同一值B,其中,i=1,...,n-1,
所述加密装置生成包括包含式6的矢量C1和包含式7的矢量C2的矢量而作为所述密码矢量,
所述解密装置计算式8所示的D*,进行式9所示的配对运算,
[式6]
C1:=ωB1
[式7]
C 2 : = &Sigma; i = 1 n x i ( &omega; B i &prime; )
[式8]
D * : = &Sigma; i = 1 n - 1 ( ( x &RightArrow; &CenterDot; v &RightArrow; ) - 1 x i ) K i *
此处,K* 1、...、K* n-1是将所述矢量k*分解为每个基底矢量的成分的情况下的关于基底矢量b* 1、...、b* n-1的成分,
[式9]
e ( C 1 , D * ) &CenterDot; e ( C 2 , K n * )
此处,K* n是将所述矢量k*分解为每个基底矢量的成分的情况下的关于基底矢量b* n的成分。
9.根据权利要求7所述的密码处理系统,其特征在于,
所述式2所示的稀疏矩阵的值Bi的值是同一值B,其中,i=1,...,n-1,
所述加密装置生成包括包含式10的矢量C1和包含式11的矢量C2的矢量而作为所述密码矢量,
所述解密装置计算式12所示的D*,进行式13所示的配对运算,
[式10]
C1:=ωB1
[式11]
C 2 : = &Sigma; i = 1 n x i ( &omega; B i &prime; )
[式12]
D * : = &Sigma; i = 1 n - 1 x i K i *
此处,K* 1、...、K* n-1是将所述矢量k*分解为每个基底矢量的成分的情况下的关于基底矢量b* 1、...、b* n-1的成分,
[式13]
e ( C 1 , D * ) &CenterDot; e ( C 2 , K n * )
此处,K* n是将所述矢量k*分解为每个基底矢量的成分的情况下的关于基底矢量b* n的成分。
10.根据权利要求1所述的密码处理系统,其特征在于,
所述密码处理系统利用使用1行1列至n行n列的值是式14所示的稀疏矩阵的N行N列的线性变换X而如式15所示根据所述基底A生成的基底B和基底B*,其中,N是n以上的整数,
所述加密装置生成包含式16的矢量c而作为所述密码矢量,
所述解密装置将包含式17的矢量作为所述密钥矢量,对所述密码矢量进行解密,
[式14]
此处,μ1、...、μn-1和μ’1、...、μ’n是常数值0以外的规定的值,空栏是常数值0,
[式15]
b i * : = &Sigma; j = 1 N X i , j a j 对于i=1,...,N,
&theta; i , j : = &psi; &CenterDot; ( X T ) - 1 ,
b i : = &Sigma; j = 1 N &theta; i , j a j 对于i=1,...,N,
此处,χi,j是线性变换X的i行j列的成分,Ψ是规定的值,aj是基底A的第j个基底矢量,
[式16]
&Sigma; i = 1 n &omega;x i b i
此处,ω和x1、...、xn是规定的值,
[式17]
&Sigma; i = 1 n &delta;v i b i *
此处,δ和v1、...、vn是规定的值。
11.根据权利要求10所述的密码处理系统,其特征在于,
所述式14所示的稀疏矩阵的值Bi的值是同一值B,其中,i=1,...,n-1,
所述解密装置将包括包含式18的矢量K* 1和包含式19的矢量K* 2的矢量作为所述密钥矢量,计算式20所示的D,进行式21所示的配对运算,
[式18]
K 1 * : = &delta; B 1
[式19]
K 2 * = &Sigma; i = 1 n - 1 v i ( &delta; B i &prime; )
[式20]
D : = &Sigma; i = 1 n - 1 ( ( x &RightArrow; &CenterDot; v &RightArrow; ) - 1 v i ) C i
此处,C1、...、Cn-1是将所述矢量c分解为每个基底矢量的成分的情况下的关于基底矢量b1、...、bn-1的成分,
[式21]
e ( D , K 1 * ) &CenterDot; e ( C n , K 2 * )
此处,Cn是将所述矢量c分解为每个基底矢量的成分的情况下的关于基底矢量bn的成分。
12.根据权利要求10所述的密码处理系统,其特征在于,
所述式14所示的稀疏矩阵的值Bi的值是同一值B,其中,i=1,...,n-1,
所述解密装置将包括包含式22的矢量K* 1和包含式23的矢量K* 2的矢量作为所述密钥矢量,计算式24所示的D,进行式25所示的配对运算,
[式22]
K 1 * : = &delta; B 1
[式23]
K 2 * = &Sigma; i = 1 n - 1 v i ( &delta; B i &prime; )
[式24]
D : = &Sigma; i = 1 n - 1 v i C i
此处,C1、...、Cn-1是将所述矢量c分解为每个基底矢量的成分的情况下的关于基底矢量b1、...、bn-1的成分,
[式25]
e ( D , K 1 * ) &CenterDot; e ( C n , K 2 * )
此处,Cn是将所述矢量c分解为每个基底矢量的成分的情况下的关于基底矢量bn的成分。
13.一种密码处理方法,利用使用在各行各列中至少一个具有0以外的值的稀疏矩阵使规定的基底A变形而生成的基底B和基底B*,进行密码处理,其特征在于,
加密装置生成所述基底B中的嵌入了规定的信息的矢量作为密码矢量,
解密装置将所述基底B*中的规定的矢量作为密钥矢量,对所述加密装置所生成的密码矢量和所述密钥矢量进行配对运算而对所述密码矢量进行解密,抽出与所述规定的信息有关的信息。
14.一种密码处理程序,利用使用在各行各列中至少一个具有0以外的值的稀疏矩阵使规定的基底A变形而生成的基底B和基底B*,进行密码处理,其特征在于,使计算机执行:
加密处理,生成所述基底B中的嵌入了规定的信息的矢量作为密码矢量;以及
解密处理,将所述基底B*中的规定的矢量作为密钥矢量,对在所述加密处理中所生成的密码矢量和所述密钥矢量进行配对运算而对所述密码矢量进行解密,抽出与所述规定的信息有关的信息。
15.一种密钥生成装置,生成公开密钥密码中的公开参数和秘密密钥,其特征在于,具备:
矩阵生成部,生成线性变换X,该线性变换X包括在各行各列中至少一个具有0以外的值的稀疏矩阵;
基底生成部,使用所述矩阵生成部所生成的线性变换X,根据规定的基底A如式26所示生成基底D和基底D*;以及
主密钥生成部,将所述基底生成部所生成的所述基底D和所述基底D*的一方的基底的至少一部分基底矢量作为公开参数,将另一方的基底的至少一部分基底矢量作为秘密密钥来生成,
[式26]
b i : = &Sigma; j = 1 N X i , j a j 对于i=1,...,N,
&theta; i , j : = &psi; &CenterDot; ( X T ) - 1 ,
b i * : = &Sigma; j = 1 N &theta; i , j a j 对于i=1,...,W,
此处,χi,j是线性变换X的i行j列的成分,Ψ是规定的值,aj是基底A的第j个基底矢量。
CN201280056310.4A 2011-11-18 2012-11-12 密码处理系统、密码处理方法以及密钥生成装置 Active CN103946910B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011-252244 2011-11-18
JP2011252244A JP5677273B2 (ja) 2011-11-18 2011-11-18 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置
PCT/JP2012/079210 WO2013073488A1 (ja) 2011-11-18 2012-11-12 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置

Publications (2)

Publication Number Publication Date
CN103946910A true CN103946910A (zh) 2014-07-23
CN103946910B CN103946910B (zh) 2017-05-31

Family

ID=48429548

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280056310.4A Active CN103946910B (zh) 2011-11-18 2012-11-12 密码处理系统、密码处理方法以及密钥生成装置

Country Status (8)

Country Link
US (1) US9203622B2 (zh)
EP (1) EP2782087B1 (zh)
JP (1) JP5677273B2 (zh)
KR (1) KR101581605B1 (zh)
CN (1) CN103946910B (zh)
ES (1) ES2613811T3 (zh)
IN (1) IN2014CN04110A (zh)
WO (1) WO2013073488A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106922210A (zh) * 2014-12-05 2017-07-04 三菱电机株式会社 解密条件追加装置、加密系统和解密条件追加程序
CN112236974A (zh) * 2018-06-11 2021-01-15 三菱电机株式会社 解密装置、加密装置以及密码系统

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104205863B (zh) * 2012-03-27 2017-10-27 三菱电机株式会社 数字广播接收装置和数字广播接收方法
JP6275536B2 (ja) * 2014-04-16 2018-02-07 日本放送協会 限定受信システム、ならびに、コンテンツ配信装置、コンテンツ受信装置およびそれらのプログラム
DE112014007235T5 (de) * 2014-12-05 2017-09-28 Mitsubishi Electric Corporation Kryptografisches System, Hauptschlüsselaktualisierungseinrichtung und Hauptschlüsselaktualisierungsprogramm
US9516000B2 (en) * 2015-03-27 2016-12-06 International Business Machines Corporation Runtime instantiation of broadcast encryption schemes
US10205713B2 (en) * 2017-04-05 2019-02-12 Fujitsu Limited Private and mutually authenticated key exchange
JP7024666B2 (ja) * 2018-08-28 2022-02-24 日本電信電話株式会社 Idベースハッシュ証明系構成装置、idベース暗号装置及びプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1281203A (zh) * 1999-07-16 2001-01-24 松下电器产业株式会社 用于求解有限域上方程系统的设备和用于逆运算外延域元素的设备
JP2003152703A (ja) * 2001-11-12 2003-05-23 Victor Co Of Japan Ltd 暗号化装置、暗号化方法、復号化装置、復号化方法、暗号化復号化装置及び暗号化復号化方法
US20050154912A1 (en) * 2004-01-09 2005-07-14 Samsung Electronics Co., Ltd. Firmware encrypting and decrypting method and an apparatus using the same
CN101329869A (zh) * 2008-07-31 2008-12-24 中国电信股份有限公司 适用矢量量化的语音编码的声源加密的系统和方法
CN101971186A (zh) * 2008-04-10 2011-02-09 日本电气株式会社 信息泄露防止装置和方法及其程序

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7634085B1 (en) 2005-03-25 2009-12-15 Voltage Security, Inc. Identity-based-encryption system with partial attribute matching
JP2007299088A (ja) * 2006-04-28 2007-11-15 Fujitsu Ltd データ保護システム、方法及びプログラム
US20090080658A1 (en) 2007-07-13 2009-03-26 Brent Waters Method and apparatus for encrypting data for fine-grained access control
JP5349261B2 (ja) * 2009-04-23 2013-11-20 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
KR101351789B1 (ko) * 2009-04-24 2014-01-15 니뽄 덴신 덴와 가부시키가이샤 암호 시스템, 암호 통신 방법, 암호화 장치, 키 생성 장치, 복호 장치, 콘텐츠 서버 장치, 프로그램, 기억매체
CN102396178B (zh) * 2009-04-24 2014-12-10 日本电信电话株式会社 信息生成装置、方法
JP5334873B2 (ja) * 2010-01-08 2013-11-06 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
US8615668B2 (en) * 2010-01-15 2013-12-24 Mitsubishi Electric Corporation Confidential search system and cryptographic processing system
JP5424974B2 (ja) * 2010-04-27 2014-02-26 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
JP5422053B2 (ja) * 2010-07-23 2014-02-19 日本電信電話株式会社 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体
US8977579B2 (en) * 2011-10-11 2015-03-10 Nec Laboratories America, Inc. Latent factor dependency structure determination

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1281203A (zh) * 1999-07-16 2001-01-24 松下电器产业株式会社 用于求解有限域上方程系统的设备和用于逆运算外延域元素的设备
JP2003152703A (ja) * 2001-11-12 2003-05-23 Victor Co Of Japan Ltd 暗号化装置、暗号化方法、復号化装置、復号化方法、暗号化復号化装置及び暗号化復号化方法
US20050154912A1 (en) * 2004-01-09 2005-07-14 Samsung Electronics Co., Ltd. Firmware encrypting and decrypting method and an apparatus using the same
CN101971186A (zh) * 2008-04-10 2011-02-09 日本电气株式会社 信息泄露防止装置和方法及其程序
CN101329869A (zh) * 2008-07-31 2008-12-24 中国电信股份有限公司 适用矢量量化的语音编码的声源加密的系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TATSUAKI OKAMOTO,KATSUYUKI TAKASHIMA: "Hierarchical Predicate Encryption for Inner-Products", 《LECTURE NOTES IN COMPUTER SCIENCE》, vol. 5912, 1 December 2009 (2009-12-01), pages 214 - 231 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106922210A (zh) * 2014-12-05 2017-07-04 三菱电机株式会社 解密条件追加装置、加密系统和解密条件追加程序
CN106922210B (zh) * 2014-12-05 2018-07-10 三菱电机株式会社 解密条件追加装置、加密系统和计算机可读介质
CN112236974A (zh) * 2018-06-11 2021-01-15 三菱电机株式会社 解密装置、加密装置以及密码系统
CN112236974B (zh) * 2018-06-11 2024-02-23 三菱电机株式会社 解密装置、加密装置以及密码系统

Also Published As

Publication number Publication date
US9203622B2 (en) 2015-12-01
JP5677273B2 (ja) 2015-02-25
EP2782087B1 (en) 2016-12-28
KR101581605B1 (ko) 2015-12-30
EP2782087A4 (en) 2015-09-09
US20140298028A1 (en) 2014-10-02
KR20140093281A (ko) 2014-07-25
IN2014CN04110A (zh) 2015-07-10
ES2613811T3 (es) 2017-05-26
WO2013073488A1 (ja) 2013-05-23
EP2782087A1 (en) 2014-09-24
CN103946910B (zh) 2017-05-31
JP2013109048A (ja) 2013-06-06

Similar Documents

Publication Publication Date Title
CN103946910A (zh) 密码处理系统、密码处理方法、密码处理程序以及密钥生成装置
CN102859571B (zh) 密码处理系统、密钥生成装置、加密装置、解密装置、签名处理系统、签名装置以及验证装置
KR101393899B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
JP5618881B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
CN103038805B (zh) 密码处理系统、密钥生成装置、密钥转让装置、加密装置、解密装置、密码处理方法以及密码处理程序
JP5334873B2 (ja) 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
CN104620305B (zh) 密码系统、密码方法、密码程序以及解密装置
CN104160437A (zh) 密码系统、密码方法以及密码程序
CN104718566B (zh) 密码系统
JP5606351B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム
JP6267657B2 (ja) 安全性強化方法、安全性強化システム、安全性強化装置、検証装置、およびプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant