[发明专利]基于多变量、多安全属性的多接收者签密方法在审
申请号: | 201410821537.4 | 申请日: | 2014-12-25 |
公开(公告)号: | CN104539425A | 公开(公告)日: | 2015-04-22 |
发明(设计)人: | 李慧贤;韩冬棋;范天琪;张晓莉 | 申请(专利权)人: | 西北工业大学 |
主分类号: | H04L9/32 | 分类号: | H04L9/32 |
代理公司: | 西北工业大学专利中心 61204 | 代理人: | 王鲜凯 |
地址: | 710072 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于多变量、多安全属性的多接收者签密方法,用于解决现有多接收者签密方法解签密公平性差的技术问题。技术方案是包含生成系统参数和每个用户的密钥对的算法KeyGen、签密算法Signcrypt和解签密算法Designcrypt。签密算法基于特征为q的有限域F,系统中共有N+τ个参与者,从实际签密者中选择一个领导L,领导L计算出干扰数据,干扰数据与真实数据混在一起,让接收者无法判断实际签密者的身份。本发明采用门限技术保证了发送者匿名性;在通信数据中不再直接给出接收者的身份列表,保证了接收者匿名性和提前判断性;将解签密的关键信息和授权接收者的信息融合到一个参数列表中,保证了解签密公平性。 | ||
搜索关键词: | 基于 多变 安全 属性 接收者 方法 | ||
【主权项】:
一种基于多变量、多安全属性的多接收者签密方法,其特征在于包括以下步骤:步骤一、通过KeyGen算法产生用户i的公钥pki和用户i的私钥ski,其中i=1,…,N;系统在实际的t个签密者组成的群体中选择一个领导者L,将整个明文消息M分为t块;选择一个Com函数和五个Hash函数,Com:Fn||Fm→Fo,n>m,||是级联符号,Com函数满足统计隐藏和计算绑定属性,选择o=128;H0:{0,1}*→{0,1}l,H1:{0,1}*→{0,1,2,3}k,H2:{0,1}l+m→Zq*,H3:Zq*→Zq*,H4:Zq*→{0,1}n+M/t;得到系统参数为params=(H0,H1,H2,H3,H4,q,Com);函数的具体过程如下,Com函数的隐藏统计属性表示不同的输入参数经过Com函数计算后得到的输出结果不同,且结果对于接收者不可区分;Com函数的计算绑定属性表示输入数据经过Com函数计算得到输出结果后,发送者无法否认输入数据的值;发送者确定Com函数的输入参数的长度;Com函数的输入参数的长度为n+m,Com函数的输入参数包括两个参数,第一个参数是基于有限域F的n维向量,第二个参数是基于F的m维向量;定义输入参数为Χ;定义ω为Com函数的安全参数,定义φ=2ω+2(n+m)+4;选择一个碰撞避免的Hash函数h5:{0,1}φ→{0,1}ω,已知一个碰撞避免的函数群H6:{0,1}φ→{0,1,}n+m;Com的输出包含两部分,记为c和d;发送者将c和d发送给接收者;h5是公开的Hash函数;a)发送者随机选择r∈{0,1}φ,计算y=h5(r).b)发送者从H6的Hash函数群中选择一个h6∈H6,满足h6(r)=X;c)Com的输出为c=(h6,y),d=r;接收者验证y=h5(r)和h6(r)=X,由于h6和h5都是碰撞避免的函数,故不存在一个满足h6(r′)=X和y=h5(r′)的r′;发送者无法否认X;用户i选择一个变换方程组同时选择两个可逆仿射变换Γi∈Fn和△i∈Fm;要求用户i选择随机向量si∈Fn,用户i的私钥为满足且中不含常数项,具体方法如下;保证且方程中不包含常数项,此算法默认的单项式系数为1;a)系统在用户i的向量si=(s1i,s2i,…,sni)中从右往左寻找第一个不为0的分量,将该分量的下标值赋给变量x;系统为用户i随机选择一个具有n个变量和m个方程的多项式方程组该方程组没有常数项;计算现在的值不一定为0,需要按照过程b)改变方程组中方程的系数,直到的每个分量值等于0为止;b)依次从方程组中选择方程fj,j=1,…,m;选择的第j个分量如果的值不为0,按照以下公式对fj做修改,直到的值为0为止;以下公式中表示方程fj中的第x个单变量项的系数,sx是si=(s1i,s2i,…,sni)中下标值为x的分量:的值变为0之后,选择下一个方程,采用公式(4)的方法改变方程的系数,直到方程组中所有方程都满足要求后,停止上述操作;只要si=0就能满足方便领导者L为非实际签密者模拟操作;用户i的公钥包括两部分,第一部分为其中о是映射的复合符号,第二部分为zi=Pi(si);用户i的公钥为(Pi,zi);步骤二、利用Signcrypt签密过程,共分为六步;step1:计算签密者的承诺值;实际签密者i选择k个参数元组(ri,tj,em),其中i=0,1,j=0,1,m=0,1,每个参数元组的值都不相同,满足si=r0(j)+r1(j),r0(j)=t1(j)+t0(j),e0(j)=Pi(r0(j))-e1(j),]]>如下所示;r0(1),t1(1),e1(1)r1(1),t1(1),e1(1)r1(1),t0(1),e0(1)r0(2),t1(2),e1(2)r1(2),t1(2),e1(2)r1(2),t0(2),e0(2)...r0(k),t1(k),e1(k)r1(k),t1(k),e1(k)r1(k),t0(k),e0(k)]]>每个实际签密者使用k组参数元组计算承诺值,使用第i组参数元组得到承诺值为和计算方法如下所示:c0(i)=Com(r1(i),Gi(t0(i),r1(i))+e0(i))]]>c1(i)=Com(t0(i),e0(i))]]>c2(i)=Com(t1(i),e1(i))]]>签密者i选择γi={0,1}n,然后对消息块Mi进行计算,得到li=H0(γi||Mi);最后签密者i将θi=(c0(1),c0(2),...,c0(k)),]]>πi=(c2(1),c2(2),...,c2(k))]]>发送给L;step2:领导L计算主承诺和挑战值;领导L收到另外t‑1名签密者的承诺值;领导L计算自己的承诺值并根据的原则为N‑t名非签密者模拟承诺值;领导L收集每个签密用户的承诺之后计算主承诺由于所有签密用户共享同一个挑战值所以领导L必须针对每一个挑战值分量,将所有签密用户相应位置的承诺值整理到一起;同样的,响应值也是根据挑战值的分量被整理到一起的;Φj、Ψj和Λj是将所有签密用户的第j组承诺值分类整理在一起;即所有签密用户的θi=(c0(1),c0(2),...,c0(k)),]]>πi=(c2(1),c2(2),...,c2(k))]]>中的被整理到一起得到Φ1,被整理到一起得到Φ2,依次类推,直到所有签密用户的被整理到一起得到Λk;γ是所有签密用户的消息块li(i=1,...,t)的整理结果;θi,j是签密用户i的θi的第j个分量,即签密用户i的是签密用户i的的第j个分量,即签密用户i的πi,j是签密用户i的πi的第j个分量,即签密用户i的其中j=1,…,k,i=1,…,N;Φj=H0(θ1,j||...||θN,j)Λj=H0(π1,j||...||πN,j)γ=H0(l1||...||lt)所有发送者的主承诺领导L使用H1对收到的承诺和γ进行Hash计算,得到挑战向量即为k维向量空间上的向量;领导L将发送给其余t‑1个签密者;step3:签密者计算响应值;签密者i的响应值为的第j位分量1≤j≤k是根据挑战值的第j位分量计算得到的;根据的值,的第j位分量为0、1和2,则签密用户i需要使用自己的第j组参数元组构造响应值分量计算过程如下:如果如果如果当为3的时候表示跳过计算该组响应;最后签密者i把发送给领导L,此处有k个分量,这是挑战值中不存在元素3时的情况,因为当等于3时,需要跳过计算该组响应分量;如果中存在x个值为3的分量,的分量个数则为k‑x;在本发明中默认有k个分量;step4:L计算主响应值并指定接收者;领导L计算自己的响应值,并收集其他t‑1个签名者发来的响应值;模拟N‑t名非实际签密用户的响应值;领导L计算主响应是的第j个分量,根据挑战值的第j个分量计算得到的;如果如果如果如果不计算相应的响应值;假设存在τ个接收者;对于接收者i,L随机选择Qi∈Fm,1≤i≤τ,并进行如下计算:Ri=H3(Si)这里Si和Ri是针对每个授权接收者计算的,接收者只能根据Si和Ri才能判断自己是否被授权;领导L将发送者和接收者的身份信息整理到一起,记为U;step5:实际签密者计算密文和接收者的身份信息;实际签密者i,i=1,…,t,选择一个秘密参数ui∈Zq*,该秘密参数用来加密消息,只有授权接收者才能获得此秘密参数;实际签密者i使用ui加密消息,加密过程如下:Wi=H4(ui)⊕(γi||Mi)]]>为了达到只有授权接收者才能获得秘密参数,实际签密者i将所有授权解签密用户的信息和该秘密参数通过下面的方式隐藏起来;f(x)=Π1τ(x-Sj)+uimodq=ι1(i)+ι2(i)x+...+ιτ(i)xτ-1+xτ]]>实际签密者i获得参数列表ηi=(ι1(i),...,ιτ(i));实际签密者i将(Wi,ηi)发送给领导L;step6:领导L整理所有签密用户的签密信息并发送给验证者;领导L将收集到的所有签密消息合并在一起,最后得到消息密文C;有:W=(W1,…,Wt)R=(R1,…,Rτ)C=(R,U,η1,…,ηt,W)步骤三、利用Designcypt算法解签密过程,共分为两步;step1:验证接收者的合法性;接收者V收到密文C之后,根据挑战值分量j=1,…,k,得到N组承诺值和i=1,…,N;计算过程分三类:当挑战值的第j位分量值为0时,V只能从主响应的第j位分量中求出N组参数r0(i),t1(i),e1(i),主响应中包括k个分量,每个分量包含N个发送者的响应值;接收者V使用第i组数据r0(i),t1(i),e1(i)进行如下计算得到签密用户i的的承诺值和c‾1(i)=Com(r0(i)-t1(i),Pi(r0(i))-e1(i))]]>c‾2(i)=Com(t1(i),e1(i))]]>V形成所有签密用户的响应值,Ψ′j是根据对所有的计算结果;Λ′j是根据对所有的计算结果;Ψj′=H0(c‾1(1)||...||c‾1(N))]]>Λj′=H0(c‾2(1)||...||c‾2(N))]]>当值为1时,V只能从中求出N组参数r1(i),t1(i),e1(i);V使用签密用户i的数据r1(i),t1(i),e1(i)进行如下计算得到签密用户i的的承诺值和c‾0(i)=Com(r1(i),zi-Pi(r1(i))-Gi(t1(i),r1(i))-e1(i))]]>c‾2(i)=Com(t1(i),e1(i))]]>V形成所有签密用户的响应值,Φ′j是根据对所有的计算结果;Λ′j是根据对所有的计算结果;Φj′=H0(c‾0(1)||...||c‾0(N))]]>Λj′=H0(c‾0(1)||...||c‾2(N))]]>当值为2时,V只能从中求出N组参数r1(i),t0(i),e0(i),V使用签密用户i的数据r1(i),t0(i),e0(i)进行如下计算得到签密用户i的承诺值和计算如下:c‾0(i)=Com(r1(i),Gi(t0(i),r1(i))+e0(i))]]>c‾1(i)=Com(t0(i),e0(i))]]>V形成所有签密用户的响应值,Φ′j是根据对所有的计算结果;Ψ′j是根据对所有的计算结果;Φj′=H0(c‾0(1)||...||c‾0(N))]]>Ψj′=H0(c‾1(1)||...||c‾1(N))]]>当值为3时,接收者停止验证判断下一位值,直到找到一个值不为3的时才继续验证得到主承诺V验证自己是否为授权接收者,以下i表示发送者,j表示接收者:V判断等式Rj=H3(S′j)是否成立;如果成立,V则是授权接收者中的一员,否则V放弃解签密;step2:验证消息的正确性并获得消息;对于实际签密者i,1≤i≤t,授权接收者V通过如下方程:f(x)=ι1(i)+ι2(i)x+...+ιτ(i)xτ‑1+xτ得到实际签密者i的秘密参数f(S′j)=u′i,而非授权接收者由于不能获得正确的S′j而无法获得解密的秘密参数;V通过如下计算:(γi′||Mi′)=H4(ui′)⊕Wi]]>得到签密用户i签密的明文信息M′i,但此时还不能验证消息是否正确;V计算l′i=H0(γ′i||M′i),并验证γ=H0(l′1||…||l′t)是否成立;如果成立,V接受该密文消息,明文消息为M=M′1||M′2||…||M′t;否则V拒绝该密文。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北工业大学;,未经西北工业大学;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410821537.4/,转载请声明来源钻瓜专利网。
- 上一篇:一种定位国密证书的方法和装置及系统
- 下一篇:用于无线广域网技术的硬件加速