重加密装置、加密系统、重加密方法和重加密程序与流程

文档序号:33197638发布日期:2023-02-04 15:17阅读:65来源:国知局
1.本发明涉及能够设定访问范围的函数型加密或基于属性的加密中的代理重加密(proxyre-encryption,pre)技术。
背景技术
::2.pre是不对密文进行解密而将密文的解密权限委托给他人的系统。3.在非专利文献1中,有关于基于属性的加密中的pre(attribute-basedpre,abpre)方式的记载。在非专利文献2中,有关于特定的用户能够任意地变更属性的基于属性的加密(adaptableattribute-basedencryption,ad-pre)方式的记载。在专利文献1中,记载有与非专利文献1、2相比抑制了重加密时密文的数据大小增加的pre方式。4.现有技术文献5.专利文献6.专利文献1:国际公开第2015-107620号7.非专利文献8.非专利文献1:songluo,jianbinhu,andzhongchen“ciphertextpolicyattribute-basedproxyre-encryption”9.非专利文献2:junzuolaiandroberth.dengandyanjiangyangandjianweng.“adaptableciphertext-policyattribute-basedencryption”技术实现要素:10.发明要解决的课题11.在非专利文献1记载的pre方式中存在如下课题:每当执行重加密时,密文的数据大小变大。具体而言,在执行n次重加密时,密文的数据大小变大与n成比例的大小。因此,存在如下的与便利性有关的课题:当反复执行重加密时,密文的数据大小可能超过由系统决定的大小。12.另外,如果一次性解密后再次重新进行加密,则能够删除增加的数据。但是,当一次性解密时,数据一次性返回明文,因此,存在安全性的课题。13.在非专利文献2记载的pre方式中,如果是具有特定高的权限的实体,则不管是什么样的密文的访问范围都能够自由地变更。但是,不管是什么样的密文都能够变更成任意的访问范围,因此,存在安全性的课题。14.在专利文献1记载的pre方式中,可抑制重加密时密文的数据大小增加。但是,与非专利文献1、2相同,密文的数据大小与重加密次数成比例地变大。15.本发明的目的在于,能够使进行重加密而生成的密文的数据大小不依赖于重加密次数。16.用于解决课题的手段17.本发明的重加密装置具有:密文取得部,其取得将确定能够解密的范围的属性信息s作为输入而通过加密算法生成的会话密钥k和对所述会话密钥k进行加密而得到的密文cts中的所述密文cts;密钥取得部,其取得重加密密钥rk,该重加密密钥rk包含对能够对所述密文cts进行解密的解密密钥skγ设定随机数r而生成的转换后解密密钥skγ~、将确定能够解密的范围的属性信息s’作为输入而通过所述加密算法生成的会话密钥k’和对所述会话密钥k’进行加密而得到的密文cts’、以及根据所述随机数r生成的转换信息;重加密密文生成部,其根据所述转换信息,从通过所述重加密密钥rk中包含的所述转换后解密密钥skγ~对所述密文cts进行解密而得到的解密信息k^中删除与所述随机数r有关的元素,生成所述会话密钥k,根据所述会话密钥k和所述会话密钥k’生成加密元素k~;以及输出部,其输出包含所述加密元素k~和所述密文cts’的重加密密文rcts’。18.发明效果19.在本发明中,重加密密文rcts’包含根据会话密钥k和会话密钥k’生成的加密元素k~以及密文cts’。利用解密密钥skγ’对密文cts’进行解密,由此生成会话密钥k’,能够根据加密元素k~和会话密钥k’生成会话密钥k。20.在将密文cts’作为密文cts进行处理而生成重加密密文rcts’的情况下也输出同样的重加密密文rcts’,同样能够生成会话密钥k。21.因此,能够使进行重加密而生成的密文的数据大小不依赖于重加密次数。附图说明22.图1是实施方式1的矩阵m^的说明图。23.图2是实施方式1的矩阵mδ的说明图。24.图3是实施方式1的s0的说明图。25.图4是实施方式1的s→t的说明图。26.图5是实施方式1的加密系统100的结构图。27.图6是实施方式1的公共参数生成装置10的结构图。28.图7是实施方式1的用户秘密密钥生成装置20的结构图。29.图8是实施方式1的加密装置30的结构图。30.图9是实施方式1的重加密密钥生成装置40的结构图。31.图10是实施方式1的重加密装置50的结构图。32.图11是实施方式1的解密装置60的结构图。33.图12是示出实施方式1的公共参数生成装置10的动作的流程图。34.图13是示出实施方式1的用户秘密密钥生成装置20的动作的流程图。35.图14是示出实施方式1的加密装置30的动作的流程图。36.图15是示出实施方式1的重加密密钥生成装置40的动作的流程图。37.图16是示出实施方式1的重加密装置50的动作的流程图。38.图17是示出实施方式1的对密文cts进行解密的情况下的解密装置60的动作的流程图。39.图18是示出实施方式1的对重加密密文rcts’进行解密的情况下的解密装置60的动作的流程图。具体实施方式40.实施方式141.***准备***42.《记法的说明》43.在a是随机的变量或分布时,数学式101表示按照a的分布而从a中随机地选择y。即,在数学式101中,y是随机数。44.【数学式101】[0045][0046]在a是集合时,数学式102表示从a中均匀地选择y。即,在数学式102中,y是均匀随机数。[0047]【数学式102】[0048][0049]数学式103表示y是由z定义的集合,或者y是代入了z的集合。[0050]【数学式103】[0051]y:=z[0052]在a是常数时,数学式104表示机器(算法)a针对输入x而输出a。[0053]【数学式104】[0054]a(x)→a[0055]例如,[0056]a(x)→1[0057]数学式105即fq表示位数q的有限体。[0058]【数学式105】[0059][0060]将数学式106表示为数学式107。[0061]【数学式106】[0062][0063]【数学式107】[0064][0065]向量标记表示有限体fq中的向量。即,是数学式108。[0066]【数学式108】[0067]表示[0068]xt表示矩阵x的转置矩阵。[0069]将数学式109的向量空间的元素表示为数学式110。[0070]【数学式109】[0071][0072]【数学式110】[0073][0074]在数学式111时,由bi,...,bn生成的部分空间表示为数学式112。[0075]【数学式111】[0076][0077]【数学式112】[0078][0079]数学式113表示数学式114所示的2个向量x→与v→的数学式115所示的内积。[0080]【数学式113】[0081][0082]【数学式114】[0083][0084][0085]【数学式115】[0086][0087]针对数学式116所示的基b和基b*,是数学式117。[0088]【数学式116】[0089][0090][0091]【数学式117】[0092][0093][0094]e→j表示数学式118所示的标准基向量。[0095]【数学式118】[0096][0097]gl(n,fq)表示维度n的有限体fq上的一般线性组。[0098]针对数学式119所示的矩阵w和数学式120所示的n维向量空间v中的元素g,定义为数学式121。[0099]【数学式119】[0100][0101]【数学式120】[0102]g:=(g1,...,gn)[0103]【数学式121】[0104][0105]《对称双线性配对组》[0106]对称双线性配对组(q,g,gt,g,e)是素数q、位数q的加法循环组g、位数q的乘法循环组gt、g≠0∈g、能够利用多项式时间计算的具有非退化性的双线性映射e:g×g→gt的组。双线性映射是e(sg,tg)=e(g,g)st,e(g,g)≠1。[0107]在以下的说明中,设gbpg为如下的算法:将1λ作为输入,输出将安全参数设为1λ的对称双线性配对组的参数paramg:=(q,g,gt,g,e)的值。[0108]《对偶配对向量空间》[0109]对偶配对向量空间(q,v,gt,a,e)能够通过对称双线性配对组(paramg:=(q,g,gt,g,e))的直积构成。对偶配对向量空间(q,v,gt,a,e)是素数q、数学式122所示的fq上的n维向量空间v、位数q的循环组gt、空间v的标准基a:=(a1,...,an)、数学式123所示的配对运算e的组。这里,ai如数学式124所示。[0110]【数学式122】[0111][0112]【数学式123】[0113][0114]【数学式124】[0115][0116]空间v中的配对由数学式125来定义。[0117]其具有非退化性。即,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=1,如果i≠j,则δi,j=0。此外,e(g,g)≠1∈gt。[0118]【数学式125】[0119][0120]其中,[0121][0122][0123]在以下的说明中,将gdpvs设为如下的算法:将1λ(λ∈自然数)、n∈自然数、双线性配对组的参数paramg:=(q,g,gt,g,e)的值作为输入,输出安全参数为λ且设为n维空间v的对偶配对向量空间的参数paramv:=(q,v,gt,a,e)。[0124]《针对非单调访问构造的基于属性的加密》[0125]基于属性的加密是对公开密钥加密或基于id(identifier:标识符)的加密的功能进行扩展而成的加密方式。abe是如下的公开密钥加密:对密文或解密密钥中的一方设定属性集合γ,对另一方设定针对属性整体的访问构造s,仅在属性集合γ满足访问构造s时能够解密。[0126]将对密文设定了访问构造的abe称作密文策略基于属性的加密(ciphertextpolicy(cp)-abe),将对解密密钥设定了访问构造的abe称作密钥策略基于属性的加密(keypolicy(kp)-abe)。在实施方式1中,对cp-abe进行说明。但是,容易将cp-abe转换成kp-abe。abe能够设定使用逻辑或(or)和逻辑与(and)的条件式作为访问构造。由此,能够设定“a部and课长以上”这样的访问权,因此,可认为cp-abe在企业内的安全文件共享等方面是有用的。[0127]《张成方案和非单调访问构造》[0128]参照图1对矩阵m^进行说明。[0129]将{p1,...,pn}设为变量的集合。m^:=(m,ρ)是带标签的矩阵。这里,矩阵m是fq上的(l行×r列)的矩阵。此外,ρ是对矩阵m的各行附加的标签,对应于{p1,...,pn,¬p1,...,¬pn}中的任意一个文本。另外,对m的全部行附加的标签ρi(i=1,...,l)对应于任意一个文本。即,ρ:{1,...,l}→{p1,...,pn,¬p1,...,¬pn}。[0130]针对全部的输入列δ∈{0,1}n定义矩阵m的部分矩阵mδ。矩阵mδ是由通过输入列δ将值“1”与标签ρ对应起来的矩阵m的行构成的部分矩阵。即,矩阵mδ是由δi=1这样的与pi对应的矩阵m的行和δi=0这样的与¬pi对应的矩阵m的行构成的部分矩阵。[0131]参照图2对矩阵mδ进行说明。另外,在图2中,设n=7、l=6、r=5。即,变量的集合为{p1,...,p7},矩阵m为(6行×5列)的矩阵。此外,在图2中,标签ρ设为ρ1对应于¬p2,ρ2对应于p1,ρ3对应于p4,ρ4对应于¬p5,ρ5对应于¬p3,ρ6对应于p5。[0132]这里,设输入列δ∈{0,1}7为δ1=1、δ2=0、δ3=1、δ4=0、δ5=0、δ6=1、δ7=1。该情况下,由与用虚线包围的文本(p1,p3,p6,p7,¬p2,¬p4,¬p5)对应的矩阵m的行构成的部分矩阵是矩阵mδ。即,由矩阵m的第1行(m1)、第2行(m2)、第4行(m4)构成的部分矩阵是矩阵mδ。[0133]换言之,设在映射γ:{1,...,l}→{0,1}为[ρ(j)=pi]∧[δi=1]或[ρ(j)=¬pi]∧[δi=0]的情况下,γ(j)=1,在其他情况下,γ(j)=0。该情况下,mδ:=(mj)γ(j)=1。这里,mj是矩阵m的第j行。[0134]即,在图2中,是映射γ(j)=1(j=1,2,4),是映射γ(j)=0(j=3,5,6)。因此,(mj)γ(j)=1为m1,m2,m4,是矩阵mδ。[0135]即,根据映射γ(j)的值是“0”还是“1”,决定矩阵m的第j行是否包含在矩阵mδ中。[0136]仅在1→∈span《mδ》的情况下,张成方案m^受理输入列δ,在其他情况下,拒绝输入列δ。即,仅在通过输入列δ对从矩阵m^得到的矩阵mδ的行进行线性结合而得到1→的情况下,张成方案m^受理输入列δ。另外,1→是各元素为值“1”的行向量。[0137]例如,如果是图2的例子,则仅在对由矩阵m的第1、2、4行构成的矩阵mδ的各行进行线性结合而得到1→的情况下,张成方案m^受理输入列δ。即,在存在成为α1(m1)+α2(m2)+α4(m4)=1→的α1、α2、α4的情况下,张成方案m^受理输入列δ。[0138]这里,在标签ρ仅对应于正的文本{p1,...,pn}的情况下,张成方案被称作单调。另一方面,在标签ρ对应于文本{p1,...,pn,¬p1,...,¬pn}的情况下,张成方案被称作非单调。这里,张成方案设为非单调。而且,使用非单调张成方案构成访问构造(非单调访问构造)。简单地讲,访问构造进行针对加密的访问控制。即,进行是否能够对密文进行解密的控制。[0139]《属性信息的内积和访问构造》[0140]这里,使用属性信息的内积计算上述的映射γ(j)。即,使用属性信息的内积决定将矩阵m的哪个行包含在矩阵mδ中。[0141]是部分全集合(sub-universe),是属性的集合。而且,ut分别包含部分全集合的识别信息(t)和n维向量(v→)。即,ut是(t,v→)。这里,t∈{1,...,d},v→∈fqn。[0142]将ut:=(t,v→)设为张成方案m^:=(m,ρ)中的变量p。即,p:=(t,v→)。而且,将设为变量(p:=(t,v→),(t,v’→),...)的张成方案m^:=(m,ρ)设为访问构造s。[0143]即,访问构造s:=(m,ρ),ρ:{1,...,l}→{(t,v→),(t,v’→),...,¬(t,v→),¬(t,v’→),...}。[0144]接着,将γ设为属性集合。即,γ:={(t,x→t)|x→t∈fqn,1≤t≤d}。[0145]在对访问构造s给出γ的情况下,如下定义针对张成方案m^:=(m,ρ)的映射γ:{1,...,l}→{0,1}。关于i=1,...,l的各整数i,在[ρ(i)=(t,v→i)]∧[(t,x→t)∈γ]∧[v→i·x→t=0]或[ρ(i)=¬(t,v→i)]∧[(t,x→t)∈γ]∧[v→i·x→t≠0]的情况下,γ(j)=1,在其他情况下,γ(j)=0。[0146]即,根据属性信息v→与x→的内积来计算映射γ。而且,如上所述,根据映射γ决定将矩阵m的哪个行包含在矩阵mδ中。即,根据属性信息v→与x→的内积决定将矩阵m的哪个行包含在矩阵mδ中,仅在1→∈span《(mi)γ(i)=1》的情况下,访问构造s:=(m,ρ)受理γ。[0147]《秘密分散方式》[0148]定义非单调访问构造(或张成方案)中的秘密分散。[0149]秘密分散方式是指,使秘密信息分散而成为没有意义的分散信息。例如,使秘密信息s分散成10个,生成10个分散信息。这里,10个分散信息分别不具有秘密信息s的信息。因此,即使得到某1个分散信息,关于秘密信息s,也无法得到任何信息。另一方面,如果得到全部10个分散信息,则能够复原秘密信息s。[0150]此外,还存在如下的秘密分散方式:即使未得到全部10个分散信息,只要得到一部分(例如8个),就能够复原秘密信息s。这样,将能够利用10个分散信息中的8个分散信息来复原秘密信息s的情况称作8-out-of-10。即,将能够利用n个分散信息中的t个分散信息来复原秘密信息s的情况称作t-out-of-n。将该t称作阈值。[0151]此外,还存在如下的秘密分散方式:在生成了d1,...,d10这10个分散信息的情况下,如果是d1,...,d8这8个分散信息,则能够复原秘密信息s,但是,如果是d3,...,d10这8个分散信息,则无法复原秘密信息s。即,还存在如下的秘密分散方式:不仅根据得到的分散信息的数量,还根据分散信息的组合来控制是否能够复原秘密信息s。[0152]参照图3对s0进行说明。参照图4对s→t进行说明。[0153]将矩阵m设为(l行×r列)的矩阵。将f→t设为数学式126所示的列向量。[0154]【数学式126】[0155][0156]将数学式127所示的s0设为被共享的秘密信息。[0157]【数学式127】[0158][0159]此外,将数学式128所示的s→t设为s0的l个分散信息的向量。[0160]【数学式128】[0161][0162]而且,设分散信息si属于ρ(i)。[0163]在访问构造s:=(m,ρ)受理γ的情况下,即,关于γ:{1,...,l}→{0,1},在1→∈span《(mi)γ(i)=1》的情况下,存在的常数{αi∈fq|i∈i}。[0164]在图2的例子中,说明了在存在成为α1(m1)+α2(m2)+α4(m4)=1→的α1、α2、α4的情况下,张成方案m^受理输入列δ,因此可以明确这点。即,在存在成为α1(m1)+α2(m2)+α4(m4)=1→的α1、α2、α4的情况下,如果张成方案m^受理输入列δ,则存在成为α1(m1)+α2(m2)+α4(m4)=1→的α1、α2、α4。[0165]而且,是数学式129。[0166]【数学式129】[0167]∑i∈iαisi:=s0[0168]另外,常数{αi}能够通过矩阵m的大小中的多项式时间来计算。[0169]***结构的说明***[0170]参照图5对实施方式1的加密系统100的结构进行说明。[0171]加密系统100具有公共参数生成装置10、多个用户秘密密钥生成装置20、多个加密装置30、重加密密钥生成装置40、重加密装置50和解密装置60。[0172]公共参数生成装置10、各用户秘密密钥生成装置20、重加密密钥生成装置40、各加密装置30、重加密装置50和解密装置60经由传输路径70连接。作为具体例,传输路径70是互联网或lan(localareanetwork:局域网)。[0173]参照图6对实施方式1的公共参数生成装置10的结构进行说明。[0174]公共参数生成装置10是计算机。[0175]公共参数生成装置10具有处理器11、内存12、存储器13和通信接口14这样的硬件。处理器11经由信号线与其他硬件连接,对这些其他硬件进行控制。[0176]公共参数生成装置10具有取得部111、参数生成部112和输出部113作为功能结构要素。公共参数生成装置10的各功能结构要素的功能通过软件实现。[0177]在存储器13中存储有实现公共参数生成装置10的各功能结构要素的功能的程序。该程序由处理器11读入到内存12,由处理器11来执行。由此,实现公共参数生成装置10的各功能结构要素的功能。[0178]参照图7对实施方式1的用户秘密密钥生成装置20的结构进行说明。[0179]用户秘密密钥生成装置20是计算机。[0180]用户秘密密钥生成装置20具有处理器21、内存22、存储器23和通信接口24这样的硬件。处理器21经由信号线与其他硬件连接,对这些其他硬件进行控制。[0181]用户秘密密钥生成装置20具有取得部211、用户秘密密钥生成部212和输出部213作为功能结构要素。用户秘密密钥生成装置20的各功能结构要素的功能通过软件实现。[0182]在存储器23中存储有实现用户秘密密钥生成装置20的各功能结构要素的功能的程序。该程序由处理器21读入到内存22,由处理器21来执行。由此,实现用户秘密密钥生成装置20的各功能结构要素的功能。[0183]参照图8对实施方式1的加密装置30的结构进行说明。[0184]加密装置30是计算机。[0185]加密装置30具有处理器31、内存32、存储器33和通信接口34这样的硬件。处理器31经由信号线与其他硬件连接,对这些其他硬件进行控制。[0186]加密装置30具有取得部311、密文生成部312和输出部313作为功能结构要素。加密装置30的各功能结构要素的功能通过软件实现。[0187]在存储器33中存储有实现加密装置30的各功能结构要素的功能的程序。该程序由处理器31读入到内存32,由处理器31来执行。由此,实现加密装置30的各功能结构要素的功能。[0188]参照图9对实施方式1的重加密密钥生成装置40的结构进行说明。[0189]重加密密钥生成装置40是计算机。[0190]重加密密钥生成装置40具有处理器41、内存42、存储器43和通信接口44这样的硬件。处理器41经由信号线与其他硬件连接,对这些其他硬件进行控制。[0191]重加密密钥生成装置40具有取得部411、重加密密钥生成部412和输出部413作为功能结构要素。重加密密钥生成装置40的各功能结构要素的功能通过软件实现。[0192]在存储器43中存储有实现重加密密钥生成装置40的各功能结构要素的功能的程序。该程序由处理器41读入到内存42,由处理器41来执行。由此,实现重加密密钥生成装置40的各功能结构要素的功能。[0193]参照图10对实施方式1的重加密装置50的结构进行说明。[0194]重加密装置50是计算机。[0195]重加密装置50具有处理器51、内存52、存储器53和通信接口54这样的硬件。处理器51经由信号线与其他硬件连接,对这些其他硬件进行控制。[0196]重加密装置50具有取得部511、重加密密文生成部512和输出部513作为功能结构要素。取得部511具有密文取得部514和密钥取得部515。重加密装置50的各功能结构要素的功能通过软件实现。[0197]在存储器53中存储有实现重加密装置50的各功能结构要素的功能的程序。该程序由处理器51读入到内存52,由处理器51来执行。由此,实现重加密装置50的各功能结构要素的功能。[0198]参照图11对实施方式1的解密装置60的结构进行说明。[0199]解密装置60是计算机。[0200]解密装置60具有处理器61、内存62、存储器63和通信接口64这样的硬件。处理器61经由信号线与其他硬件连接,对这些其他硬件进行控制。[0201]解密装置60具有取得部611、解密部612和输出部613作为功能结构要素。解密装置60的各功能结构要素的功能通过软件实现。[0202]在存储器63中存储有实现解密装置60的各功能结构要素的功能的程序。该程序由处理器61读入到内存62,由处理器61来执行。由此,实现解密装置60的各功能结构要素的功能。[0203]处理器11、21、31、41、51、61是进行处理的ic(integratedcircuit:集成电路)。作为具体例,处理器11、21、31、41、51、61是cpu(centralprocessingunit:中央处理单元)、dsp(digitalsignalprocessor:数字信号处理器)、gpu(graphicsprocessingunit:图形处理单元)。[0204]内存12、22、32、42、52、62是暂时存储数据的存储装置。作为具体例,内存12、22、32、42、52、62是sram(staticrandomaccessmemory:静态随机存取存储器)、dram(dynamicrandomaccessmemory:动态随机存取存储器)。[0205]存储器13、23、33、43、53、63是保管数据的存储装置。作为具体例,存储器13、23、33、43、53、63是hdd(harddiskdrive:硬盘驱动器)。此外,存储器13、23、33、43、53、63也可以是sd(注册商标,securedigital:安全数字)存储卡、cf(compactflash:致密闪存,注册商标)、nand闪存、软盘、光盘、高密度盘、蓝光(注册商标)盘、dvd(digitalversatiledisk:数字多功能盘)这样的移动记录介质。[0206]通信接口14、24、34、44、54、64是用于与外部的装置进行通信的接口。作为具体例,通信接口14、24、34、44、54、64是ethernet(以太网,注册商标)、usb(universalserialbus:通用串行总线)、hdmi(注册商标,high-definitionmultimediainterface:高清晰度多媒体接口)的端口。[0207]在图6中,仅示出1个处理器11。但是,处理器11也可以是多个,多个处理器11也可以协作执行实现各功能的程序。[0208]同样,处理器21、31、41、51、61也可以是多个,多个处理器21、31、41、51、61也可以协作执行实现各功能的程序。[0209]***动作的说明***[0210]参照图12~图18对实施方式1的加密系统100的动作进行说明。[0211]实施方式1的加密系统100实现ab-pre。这里,假设kem(keyencapsulationmechanism:密钥封装机制)-dem(dataencapsulationmechanism:数据封装机制)框架,对使用ab-pre作为kem的例子进行说明。[0212]ab-pre具有setup算法、kg算法、rkg算法、enc算法、renc算法和dec算法。[0213]setup算法是将安全参数1λ和空间信息n→作为输入而输出公开密钥pk和主秘密密钥msk的概率性算法。[0214]kg算法是将公开密钥pk、主秘密密钥msk和属性信息γ作为输入而输出解密密钥skγ的概率性算法。[0215]enc算法是将公开密钥pk和属性信息s作为输入而输出密文cts和会话密钥k的概率性算法。[0216]rkg算法是将公开密钥pk、解密密钥skγ和属性信息s’作为输入而输出重加密密钥rk的概率性算法。[0217]renc算法是将公开密钥pk、重加密密钥rk和密文cts作为输入而输出重加密密文rcts’的概率性算法。[0218]dec算法是将公开密钥pk、解密密钥skγ、密文cts或重加密密文rcts’作为输入而输出会话密钥k的确定性算法。[0219]在实施方式1中,属性信息s和属性信息s’相当于上述的访问构造s:=(m,ρ)。[0220]参照图12对实施方式1的公共参数生成装置10的动作进行说明。[0221]实施方式1的公共参数生成装置10的动作步骤相当于实施方式1的公共参数生成方法。此外,实现实施方式1的公共参数生成装置10的动作的程序相当于实施方式1的公共参数生成程序。[0222]公共参数生成装置10执行setup算法。[0223](步骤s11:取得处理)[0224]取得部111取得安全参数1λ和空间信息n→:=(d;n1,...,nd)。[0225]具体而言,取得部111经由通信接口14取得由加密系统100的管理者等输入的安全参数1λ和空间信息n→。取得部111将安全参数1λ和空间信息n→写入内存12中。空间信息n→是决定加密系统100使用的对偶配对向量空间的维数等结构的参数。[0226](步骤s12:参数生成处理)[0227]参数生成部112将在步骤s11中取得的安全参数1λ和空间信息n→作为输入,生成公开密钥pk和主秘密密钥msk。[0228]具体而言,参数生成部112将安全参数1λ和空间信息n→作为输入,执行数学式130所示的算法gob,生成paramn、元素gt和基{bt,b*t}t=0,...,d。[0229]【数学式130】[0230][0231]如数学式131所示,参数生成部112根据基{bt,b*t}t=0,...,d生成部分基{b^t,b^*t}t=0,...,d。[0232]【数学式131】[0233][0234][0235][0236][0237]如数学式132所示,参数生成部112生成元素a、元素a和元素c。[0238]【数学式132】[0239][0240][0241]参数生成部112将安全参数1λ、paramn、元素gt、部分基{b^t}t=0,...,d、元素a和元素c设定到公开密钥pk。此外,参数生成部112将部分基{b^*t}t=0,...,d、元素a和基向量b*0,6设定到主秘密密钥msk。[0242](步骤s13:输出处理)[0243]输出部113输出在步骤s12中生成的公开密钥pk和主秘密密钥msk。[0244]具体而言,输出部113将公开密钥pk经由通信接口14发送到各用户秘密密钥生成装置20、各加密装置30、重加密密钥生成装置40、重加密装置50和解密装置60。此外,输出部113将主秘密密钥msk经由通信接口14发送到各用户秘密密钥生成装置20。此时,输出部113通过使用现有的加密算法对主秘密密钥msk进行加密这样的方法进行隐匿后进行发送。[0245]另外,公开密钥pk和主秘密密钥msk也可以不经由通信接口14发送,而存储于存储介质进行邮寄。[0246]即,公共参数生成装置10执行数学式133所示的setup算法。[0247]【数学式133】[0248][0249]参照图13对实施方式1的用户秘密密钥生成装置20的动作进行说明。[0250]实施方式1的用户秘密密钥生成装置20的动作步骤相当于实施方式1的用户秘密密钥生成方法。此外,实现实施方式1的用户秘密密钥生成装置20的动作的程序相当于实施方式1的用户秘密密钥生成程序。[0251]用户秘密密钥生成装置20执行kg算法。[0252](步骤s21:取得处理)[0253]取得部211取得公开密钥pk、主秘密密钥msk和属性信息γ:={t,x→t|x→t∈fqnt\{0→},1≤t≤d}。[0254]具体而言,取得部211经由通信接口24接收由公共参数生成装置10发送的公开密钥pk和主秘密密钥msk。取得部211经由通信接口14取得由用户秘密密钥生成装置20的使用者等输入的属性信息γ。取得部211将公开密钥pk、主秘密密钥msk和属性信息γ写入内存22中。[0255]属性信息γ表示解密密钥skγ的使用者的所属目的地和职务这样的属性。例如,按照每个t分配属性的类别,分配给t的类别的属性被设定为x→t。作为具体例,对t=1分配所属目的地的公司,对t=2分配所属目的地的部,对t=3分配所属目的地的课,对t=4分配职务。然后,对x→1设定使用者所属的公司,对x→2设定使用者所属的部,对x→3设定使用者所属的课,对x→4设定使用者的职务。[0256](步骤s22:用户秘密密钥生成处理)[0257]用户秘密密钥生成部212将在步骤s21中取得的公开密钥pk、主秘密密钥msk和属性信息γ作为输入,生成解密密钥skγ。[0258]具体而言,如数学式134所示,用户秘密密钥生成部212生成随机数。[0259]【数学式134】[0260][0261]如数学式135所示,用户秘密密钥生成部212生成密钥元素k*0和与属性信息γ中包含的各t有关的密钥元素k*t。[0262]【数学式135】[0263][0264][0265](步骤s23:输出处理)[0266]输出部213输出属性信息γ、在步骤s22中生成的密钥元素k*0和各密钥元素k*t以及基向量b*0,6作为解密密钥skγ。[0267]具体而言,输出部213经由通信接口24将解密密钥skγ发送到重加密密钥生成装置40和解密装置60。此时,输出部213通过使用现有的加密算法对解密密钥skγ进行加密这样的方法进行隐匿后进行发送。[0268]另外,解密密钥skγ也可以不经由通信接口24发送,而存储于存储介质进行邮寄。[0269]即,用户秘密密钥生成装置20执行数学式136所示的kg算法。[0270]【数学式136】[0271][0272]参照图14对实施方式1的加密装置30的动作进行说明。[0273]实施方式1的加密装置30的动作步骤相当于实施方式1的加密方法。此外,实现实施方式1的加密装置30的动作的程序相当于实施方式1的加密程序。[0274]加密装置30执行enc算法。[0275](步骤s31:取得处理)[0276]取得部311取得公开密钥pk和属性信息s=(m,ρ)。[0277]具体而言,取得部311经由通信接口34接收由公共参数生成装置10发送的公开密钥pk。取得部311经由通信接口14取得由加密装置30的使用者等输入的属性信息s。取得部311将公开密钥pk和属性信息s写入内存32中。[0278]属性信息s表示能够对密文cts进行解密的属性的范围。具体而言,属性信息s表示能够通过使用逻辑或和逻辑与的条件式对密文cts进行解密的属性的范围。[0279](步骤s32:密文生成处理)[0280]密文生成部312将在步骤s31中取得的公开密钥pk和属性信息s作为输入,生成密文cts。[0281]具体而言,如数学式137所示,密文生成部312生成与i=1,...,l的各整数i有关的分散信息si和秘密信息s0。[0282]【数学式137】[0283][0284][0285][0286]如数学式138所示,密文生成部312生成随机数。[0287]【数学式138】[0288][0289]如数学式139所示,密文生成部312生成加密元素c0。[0290]【数学式139】[0291][0292]如数学式140所示,密文生成部312生成会话密钥k。[0293]【数学式140】[0294][0295]如数学式141所示,密文生成部312生成与i=1,...,l的各整数i有关的加密元素ci。[0296]【数学式141】[0297][0298](步骤s33:输出处理)[0299]输出部313输出包含属性信息s和在步骤s32中生成的与i=0,...,l的各整数i有关的加密元素ci的密文cts、以及在步骤s32中生成的会话密钥k。[0300]具体而言,输出部313经由通信接口34将密文cts发送到重加密装置50和解密装置60。此外,输出部313将会话密钥k写入内存32中。[0301]即,加密装置30执行数学式142所示的enc算法。[0302]【数学式142】[0303][0304]参照图15对实施方式1的重加密密钥生成装置40的动作进行说明。[0305]实施方式1的重加密密钥生成装置40的动作步骤相当于实施方式1的重加密密钥生成方法。此外,实现实施方式1的重加密密钥生成装置40的动作的程序相当于实施方式1的重加密密钥生成程序。[0306]重加密密钥生成装置40执行rkg算法。[0307](步骤s41:取得处理)[0308]取得部411取得公开密钥pk、解密密钥skγ和属性信息s’:=(m,ρ)。[0309]具体而言,取得部411经由通信接口44接收由公共参数生成装置10发送的公开密钥pk。取得部411经由通信接口44接收由用户秘密密钥生成装置20发送的解密密钥skγ。取得部411经由通信接口14取得由重加密密钥生成装置40的使用者等输入的属性信息s’。取得部411将公开密钥pk、解密密钥skγ和属性信息s’写入内存42中。[0310]属性信息s’表示能够对重加密密文rcts’进行解密的属性的范围。具体而言,与属性信息s同样,属性信息s’表示能够通过使用逻辑或和逻辑与的条件式对重加密密文rcts’进行解密的属性的范围。[0311](步骤s42:重加密密钥生成处理)[0312]重加密密钥生成部412将在步骤s41中取得的公开密钥pk、解密密钥skγ和属性信息s’作为输入,生成重加密密钥rk。[0313]具体而言,如数学式143所示,重加密密钥生成部412生成随机数。[0314]【数学式143】[0315][0316]如数学式144所示,重加密密钥生成部412生成转换后解密密钥skγ~。[0317]【数学式144】[0318][0319]由此,转换后解密密钥skγ~中包含的k*0如数学式145所示。[0320]【数学式145】[0321][0322]如数学式146所示,重加密密钥生成部412将公开密钥pk和属性信息s’作为输入,执行enc算法,生成密文cts’和会话密钥k’。[0323]【数学式146】[0324][0325]即,重加密密钥生成部412将公开密钥pk和属性信息s’作为输入,执行图14的步骤s32和步骤s33的处理,生成密文cts’和会话密钥k’。[0326](步骤s43:输出处理)[0327]输出部413输出转换后解密密钥skγ~、对根据公开密钥pk中包含的元素a和随机数r得到的元素ar乘以会话密钥k’而得到的元素ar·k’以及密文cts’作为重加密密钥rk。[0328]具体而言,输出部413经由通信接口44将重加密密钥rk发送到重加密装置50。[0329]即,重加密密钥生成装置40执行数学式147所示的rkg算法。[0330]【数学式147】[0331][0332]参照图16对实施方式1的重加密装置50的动作进行说明。[0333]实施方式1的重加密装置50的动作步骤相当于实施方式1的重加密方法。此外,实现实施方式1的重加密装置50的动作的程序相当于实施方式1的重加密程序。[0334]重加密装置50执行renc算法。[0335](步骤s51:密文取得处理)[0336]密文取得部514取得密文cts。即,密文取得部514取得将确定能够解密的范围的属性信息s作为输入而通过作为加密算法的enc算法生成的会话密钥k和对会话密钥k进行加密而得到的密文cts中的密文cts。[0337]具体而言,密文取得部514经由通信接口54接收由加密装置30发送的密文cts。密文取得部514将密文cts写入内存52中。[0338](步骤s52:密钥取得处理)[0339]密钥取得部515取得重加密密钥rk。即,密钥取得部515取得重加密密钥rk,该重加密密钥rk包含对能够对密文cts进行解密的解密密钥skγ设定随机数r而生成的转换后解密密钥skγ~、将确定能够解密的范围的属性信息s’作为输入而通过作为加密算法的enc算法生成的会话密钥k’和对所述会话密钥k’进行加密而得到的密文cts’、以及根据随机数r生成的转换信息ar。此外,密钥取得部515取得公开密钥pk。[0340]具体而言,密钥取得部515经由通信接口54接收由公共参数生成装置10发送的公开密钥pk和由重加密密钥生成装置40发送的重加密密钥rk。密钥取得部515将公开密钥pk和重加密密钥rk写入内存52中。[0341](步骤s53:判定处理)[0342]重加密密文生成部512判定密文cts中包含的访问构造即属性信息s是否受理重加密密钥rk中包含的属性信息γ。[0343]在受理的情况下,重加密密文生成部512使处理进入步骤s54。另一方面,在不受理的情况下,重加密密文生成部512设为不能生成重加密密文rcts’,结束处理。[0344](步骤s54:重加密密文生成处理)[0345]重加密密文生成部512将在步骤s51中取得的密文cts、在步骤s52中取得的公开密钥pk和重加密密钥rk作为输入,生成重加密密文rcts’。[0346]具体而言,重加密密文生成部512通过重加密密钥rk中包含的转换后解密密钥skγ~对密文cts进行解密,生成解密信息k^。重加密密文生成部512根据转换信息ar从解密信息k^中删除与随机数r有关的元素,设定会话密钥k’,生成加密元素k~。[0347]更加具体地进行说明。[0348]重加密密文生成部512计算数学式148所示的索引i和补全系数{αi}i∈i。[0349]【数学式148】[0350][0351][0352]这里,mi是矩阵m的第i行。[0353]如数学式149所示,重加密密文生成部512通过转换后解密密钥skγ~对密文cts进行解密,生成解密信息k^。[0354]【数学式149】[0355][0356]然后,重加密密文生成部512通过包含转换信息ar的元素ar·k’从解密信息k^中删除与随机数r有关的元素,设定会话密钥k’,生成加密元素k~。具体而言,重加密密文生成部512将解密信息k^除以元素ar·k’,生成加密元素k~。[0357](步骤s55:输出处理)[0358]输出部513输出密文cts’和加密元素k~作为重加密密文rcts’。[0359]具体而言,输出部513经由通信接口54将重加密密文rcts’发送到解密装置60。[0360]即,重加密装置50执行数学式150所示的renc算法。[0361]【数学式150】[0362][0363]这里,重加密装置50对由加密装置30生成的密文cts进行重加密,将能够解密的范围从属性信息s变更成属性信息s’。但是,重加密装置50还能够对重加密密文rcts’进行重加密,对能够解密的范围进行变更。[0364]该情况下,在步骤s51中,密文取得部514取得重加密密文rcts’中包含的密文cts’作为密文cts即可。以后的处理与对由加密装置30生成的密文cts进行重加密的情况相同。[0365]参照图17和图18对实施方式1的解密装置60的动作进行说明。[0366]实施方式1的解密装置60的动作步骤相当于实施方式1的解密方法。此外,实现实施方式1的解密装置60的动作的程序相当于实施方式1的解密程序。[0367]解密装置60执行dec算法。[0368]参照图17说明实施方式1的对密文cts进行解密的情况下的处理。[0369](步骤s61:取得处理)[0370]取得部611取得公开密钥pk、解密密钥skγ和密文cts。[0371]具体而言,取得部611经由通信接口64接收由公共参数生成装置10发送的公开密钥pk。取得部611经由通信接口64接收由用户秘密密钥生成装置20发送的解密密钥skγ。取得部611经由通信接口64取得由加密装置30发送的密文cts。取得部611将公开密钥pk、解密密钥skγ和密文cts写入内存62中。[0372](步骤s62:判定处理)[0373]解密部612判定密文cts中包含的访问构造即属性信息s是否受理解密密钥skγ中包含的属性信息γ。[0374]在受理的情况下,解密部612使处理进入步骤s63。另一方面,在不受理的情况下,解密部612设为不能对密文cts进行解密,结束处理。[0375](步骤s63:解密处理)[0376]解密部612利用解密密钥skγ对密文cts进行解密,生成会话密钥k。[0377]具体而言,解密部612计算数学式151所示的索引i和补全系数{αi}i∈i。[0378]【数学式151】[0379][0380][0381]这里,mi是矩阵m的第i行。[0382]解密部612计算数学式152,生成会话密钥k。[0383]【数学式152】[0384][0385]即,解密装置60执行数学式153所示的dec算法。[0386]【数学式153】[0387][0388]参照图18说明实施方式1的对重加密密文rcts’进行解密的情况下的处理。[0389](步骤s71:取得处理)[0390]取得部611取得公开密钥pk、解密密钥skγ’和重加密密文rcts’。这里,设作为属性信息s’的访问构造受理的属性信息为属性信息γ’,设将属性信息γ’作为输入而生成的解密密钥为解密密钥skγ’。[0391]具体而言,取得部611经由通信接口64接收由公共参数生成装置10发送的公开密钥pk。取得部611经由通信接口64接收由用户秘密密钥生成装置20发送的解密密钥skγ’。取得部611经由通信接口64取得由重加密装置50发送的重加密密文rcts’。取得部611将公开密钥pk、解密密钥skγ’和重加密密文rcts’写入内存62中。[0392](步骤s72:判定处理)[0393]解密部612判定重加密密文rcts’中包含的访问构造即属性信息s’是否受理解密密钥skγ’中包含的属性信息γ’。[0394]在受理的情况下,解密部612使处理进入步骤s73。另一方面,在不受理的情况下,解密部612设为不能对重加密密文rcts’进行解密,结束处理。[0395](步骤s73:解密处理)[0396]解密部612利用解密密钥skγ’对重加密密文rcts’进行解密,生成会话密钥k。[0397]具体而言,解密部612利用解密密钥skγ’对重加密密文rcts’中包含的密文cts’进行解密,生成会话密钥k’,根据重加密密文rcts’中包含的加密元素k~和会话密钥k’生成会话密钥k。[0398]更加具体地进行说明。[0399]利用解密密钥skγ’对重加密密文rcts’进行解密,生成会话密钥k。[0400]具体而言,解密部612计算数学式154所示的索引i和补全系数{αi}i∈i。[0401]【数学式154】[0402][0403][0404]这里,mi是矩阵m的第i行。[0405]解密部612计算数学式155,生成会话密钥k’。[0406]【数学式155】[0407][0408]解密部612对加密元素k~乘以会话密钥k’,生成会话密钥k。[0409]即,解密装置60执行数学式156所示的dec算法。[0410]【数学式156】[0411][0412]***实施方式1的效果***[0413]如上所述,实施方式1的加密系统100生成作为必须元素仅包含密文cts’和加密元素k~的重加密密文rcts’。在实施方式1的加密系统100中,在对重加密密文rcts’进行重加密的情况下,重加密密文rcts’的必须元素也仅为密文cts’和加密元素k~。即,即使反复进行重加密,必须元素也不会增加。[0414]因此,能够使进行重加密而生成的密文的数据大小不依赖于重加密次数。[0415]***其他结构***[0416]《变形例1》[0417]在实施方式1中,各功能结构要素通过软件实现。但是,作为变形例1,各功能结构要素也可以通过硬件实现。关于该变形例1,对与实施方式1不同之处进行说明。[0418]对变形例1的公共参数生成装置10的结构进行说明。[0419]在各功能结构要素通过硬件实现的情况下,公共参数生成装置10代替处理器11、内存12和存储器13而具有电子电路15。电子电路15是实现各功能结构要素、以及内存12和存储器13的功能的专用电路。[0420]对变形例1的用户秘密密钥生成装置20的结构进行说明。[0421]在各功能结构要素通过硬件实现的情况下,用户秘密密钥生成装置20代替处理器21、内存22和存储器23而具有电子电路25。电子电路25是实现各功能结构要素、以及内存22和存储器23的功能的专用电路。[0422]对变形例1的加密装置30的结构进行说明。[0423]在各功能结构要素通过硬件实现的情况下,加密装置30代替处理器31、内存32和存储器33而具有电子电路35。电子电路35是实现各功能结构要素、以及内存32和存储器33的功能的专用电路。[0424]对变形例1的重加密密钥生成装置40的结构进行说明。[0425]在各功能结构要素通过硬件实现的情况下,重加密密钥生成装置40代替处理器41、内存42和存储器43而具有电子电路45。电子电路45是实现各功能结构要素、以及内存42和存储器43的功能的专用电路。[0426]对变形例1的重加密装置50的结构进行说明。[0427]在各功能结构要素通过硬件实现的情况下,重加密装置50代替处理器51、内存52和存储器53而具有电子电路55。电子电路55是实现各功能结构要素、以及内存52和存储器53的功能的专用电路。[0428]对变形例1的解密装置60的结构进行说明。[0429]在各功能结构要素通过硬件实现的情况下,解密装置60代替处理器61、内存62和存储器63而具有电子电路65。电子电路65是实现各功能结构要素、以及内存62和存储器63的功能的专用电路。[0430]作为电子电路15、25、35、45、55、65,假设是单一电路、复合电路、程序化的处理器、并行程序化的处理器、逻辑ic、ga(gatearray:门阵列)、asic(applicationspecificintegratedcircuit:专用集成电路)、fpga(field-programmablegatearray:现场可编程门阵列)。[0431]可以通过1个电子电路15、25、35、45、55、65实现各功能结构要素,也可以分散于多个电子电路15、25、35、45、55、65来实现各功能结构要素。[0432]《变形例2》[0433]作为变形例2,也可以是,一部分的各功能结构要素通过硬件实现,其他的各功能结构要素通过软件实现。[0434]将处理器11、21、31、41、51、61、内存12、22、32、42、52、62、存储器13、23、33、43、53、63和电子电路15、25、35、45、55、65称作处理电路。即,各功能结构要素的功能通过处理电路实现。[0435]标号说明[0436]100:加密系统;10:公共参数生成装置;11:处理器;12:内存;13:存储器;14:通信接口;15:电子电路;111:取得部;112:参数生成部;113:输出部;20:用户秘密密钥生成装置;21:处理器;22:内存;23:存储器;24:通信接口;25:电子电路;211:取得部;212:用户秘密密钥生成部;213:输出部;30:加密装置;31:处理器;32:内存;33:存储器;34:通信接口;35:电子电路;311:取得部;312:密文生成部;313:输出部;40:重加密密钥生成装置;41:处理器;42:内存;43:存储器;44:通信接口;45:电子电路;411:取得部;412:重加密密钥生成部;413:输出部;50:重加密装置;51:处理器;52:内存;53:存储器;54:通信接口;55:电子电路;511:取得部;512:重加密密文生成部;513:输出部;514:密文取得部;515:密钥取得部;60:解密装置;61:处理器;62:内存;63:存储器;64:通信接口;65:电子电路;611:取得部;612:解密部;613:输出部。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1