首页> 中国专利> 基于IP签名的代理重签名方法

基于IP签名的代理重签名方法

摘要

本发明公开了一种基于IP签名的代理重签名方法,用于解决现有代理重签名方法抗量子攻击性差的技术问题。技术方案是对受托者与委托者的私钥进行秘密仿射变换构造重签名密钥,并基于多项式同构(IP)问题设计代理重签名及其验证过程,从而保证了代理重签名方法具有抗量子攻击性;另外,二次多变量多项式组的仿射变换主要执行乘法运算,运算量小,这使得代理重签名方法具有较高的计算效率。

著录项

  • 公开/公告号CN106789066A

    专利类型发明专利

  • 公开/公告日2017-05-31

    原文格式PDF

  • 申请/专利权人 西北工业大学;

    申请/专利号CN201611136103.6

  • 发明设计人 李慧贤;邵璐;韩智鹏;庞辽军;

    申请日2016-12-12

  • 分类号H04L9/32;H04L9/08;

  • 代理机构西北工业大学专利中心;

  • 代理人王鲜凯

  • 地址 710072 陕西省西安市友谊西路127号

  • 入库时间 2023-06-19 02:28:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-09-24

    授权

    授权

  • 2017-06-23

    实质审查的生效 IPC(主分类):H04L9/32 申请日:20161212

    实质审查的生效

  • 2017-05-31

    公开

    公开

说明书

技术领域

本发明涉及一种代理重签名方法,特别是涉及一种基于IP(Isomorphisms ofPolynomials,多项式同构)签名的代理重签名方法。

背景技术

随着计算机科学技术的不断发展,数字签名技术也随之飞速发展。许多具有不同功能的签名类型被陆续提出,如代理签名、群签名、多重签名等。近年来,代理重签名也成为了该领域的一个新兴研究方向。代理重签名技术需要一个拥有重签名密钥的半可信的代理,它可以将受托者针对某一消息的签名转换为委托者对同一消息的签名。代理重签名在特定路径的遍历证明、透明认证、管理群组签名以及数字证书的共享与转换等方面有较好的应用前景。

2007年,Shao等人提出了一个代理重签名方案(Jun Shao,Zhenfu Cao,LichengWang,et al.Proxy Re-signature Schemes Without Random Oracles[C]//Progress inCryptology-Indocrypt 2007:197-209,India,Chennai.),该方案采用了Waters的签名方案进行签名,利用双线性对的性质保证代理重签名转换的正确性,并且依靠CDH(Computational Diffie-Hellman,计算性Diffie-Hellman)问题保证了方案的安全性。

2008年,Libert等提出了一个可以提高代理者的重签名密钥安全性的代理重签名方案(Libert,Beno,Vergnaud D.Multi-use unidirectional proxy re-signatures[C]//ACM Conference on Computer and Communications Security.2008:511-520.)。该方案利用双线性对的性质首次提出具有两层签名结构的代理重签名方案。第一层签名用于代理者进行签名验证与转换,第二层签名为代理者进行重签名转换后的签名。该方案依靠FlexDH(Flexible Diffie-Hellman,灵活性Diffie-Hellman)问题设计出了相比Shao的方案具有更高安全性的代理重签名方案。但现有的方案主要存在以下缺陷:(1)现有的代理重签名方案大部分都是基于大整数分解、离散对数和椭圆曲线离散对数等难题设计的,然而这些难题很难抵抗量子计算的攻击,这就意味着现有的代理重签名方案在量子攻击下是不安全的。(2)基于大数分解、离散对数等问题的方案计算量较大,计算复杂度较高,需要有较高计算能力的设备才能完成,这使得当前的代理重签名方案计算效率较低。

发明内容

为了克服现有代理重签名方法抗量子攻击性差的不足,本发明提供一种基于IP签名的代理重签名方法。该方法对受托者与委托者的私钥进行秘密仿射变换构造重签名密钥,并基于多项式同构(IP)问题设计代理重签名及其验证过程,从而保证了代理重签名方法具有抗量子攻击性;另外,二次多变量多项式组的仿射变换主要执行乘法运算,运算量小,这使得代理重签名方法具有较高的计算效率。

本发明解决其技术问题所采用的技术方案是:一种基于IP签名的代理重签名方法,其特点是包括以下步骤:

步骤一、系统参数生成。

系统管理者选择阶为2p的有限域K,系统管理者选择三个正整数n、u和q。

其中,p表示系统管理者选取的正整数,K表示运算所在的有限域,u表示二次多项式方程组阶数的正整数,n表示二次多项式方程组变量个数的正整数,q表示哈希函数H(x)运算后的二进制值的位数。

系统管理者选择密码学中的一个抗碰撞的哈希函数H(x):{0,1}*→{0,1}q

系统管理者选择具有n个变量的u阶二次多项式方程组Q,其形式为:

其中,xi,xj表示多项式方程组的变量,γijk表示二次项的系数,μik表示一次项的系数,δk表示常数项。

系统管理者公布系统生成的参数(n,u,q,K,Q,H(x))。

步骤二、密钥生成。

根据初始化赋值阶段由步骤一给定的二次多项式方程组Q,受托者选择秘密可逆仿射变换(Ma,Na),委托者选择秘密可逆仿射变换(Mb,Nb),其形式如下:

其中,Ma表示受托者选择的具有u个变量的可逆仿射变换,Na表示受托者选择的具有n个变量的可逆仿射变换;Mb表示委托者选择的具有u个变量的可逆仿射变换,Nb表示委托者选择的具有n个变量的可逆仿射变换;是可逆仿射变换Ma和Mb的初始变量,是可逆仿射变换Na和Nb进行计算后生成的值。

受托者计算Aa=MaοQοNa,委托者计算Ab=MbοQοNb。其中,Aa表示受托者的部分公钥,Ab表示委托者的部分公钥;ο表示映射合成运算。

受托者选择秘密可逆仿射变换ska=(Sa,Ta)为签名私钥、委托者选择秘密可逆仿射变换skb=(Sb,Tb)为签名私钥,具体形式如下:

Sa:Sa(y1,y2,…,yu)=(y1′,y2′,…,yu′),

Ta:Ta(x1′,x2′,…,xn′)=(x1,x2,…,xn),

Sb:Sb(y1,y2,…,yu)=(y1′,y2′,…,yu′),

Tb:Tb(x1′,x2′,…,xn′)=(x1,x2,…,xn).

其中,ska表示受托者的私钥,Sa表示受托者选择的具有u个变量的可逆仿射变换的部分私钥,Ta表示受托者选择的具有n个变量的可逆仿射变换的部分私钥;skb表示委托者的私钥,Sb表示委托者选择的具有u个变量的可逆仿射变换的部分私钥,Tb表示委托者选择的具有n个变量的可逆仿射变换的部分私钥;yi(i=1,2,…,n)是可逆仿射变换Sa和Sb的初始变量,xi′(i=1,2,…,n)是可逆仿射变换Ta和Tb的初始变量,yi′(i=1,2,…,u)是可逆仿射变换Sa和Sb进行计算后生成的值,xi(i=1,2,…,u)是可逆仿射变换Ta和Tb进行计算后生成的值。

受托者通过计算Ba=SaοAaοTa得到受托者的另一部分公钥Ba,委托者通过计算Bb=SbοAbοTb得到委托者的另一部分公钥Bb。则受托者的公钥为pka=(Aa,Ba),委托者的公钥为pkb=(Ab,Bb)。

其中,Ba表示与Aa同构的受托者的部分公钥;Bb表示与Ab同构的委托者的部分公钥;pka表示受托者的公钥,pkb表示委托者的公钥。

步骤三、重签名密钥生成。

重签名密钥为rka→b=(rk1,rk2,rk3,rk4),重签名密钥生成过程如下:

代理者随机选择四个秘密可逆仿射变换C、D、E、F发送给受托者,受托者计算一组值:

Z1=CοMa,

Z2=NaοD,

Z3=EοSaοMa,

Z4=NaοTaοF.

其中,C表示形如Ma的可逆仿射变换,E表示形如Sa的可逆仿射变换,D表示形如Na的可逆仿射变换,F表示形如Ta的可逆仿射变换。

受托者将计算结果(Z1,Z2,Z3,Z4)发送给委托者。委托者收到后计算一组值:

Z1′=Z1οMb-1=CοMaοMb-1,

Z2′=Nb-1οZ2=Nb-1οNaοD,

Z3′=Z3οMb-1οSb-1=EοSaοMaοMb-1οSb-1,

Z4′=Tb-1οNb-1οZ4=Tb-1οNb-1οNaοTaοF.

其中的“-1”为求逆运算。委托者将计算结果(Z1′,Z2′,Z3′,Z4′)发送给代理者。

代理者收到后计算一组值:

rk1=C-1οZ1′=C-1οCοMaοMb-1,

rk2=Z2′οD-1=Nb-1οNaοDοD-1,

rk3=E-1οZ3′=E-1οEοSaοMaοMb-1οSb-1,

rk4=Z4′οF-1=Tb-1οNb-1οNaοTaοFοF-1.

则得到重签名密钥为(rk1,rk2,rk3,rk4)=(MaοMb-1,Nb-1οNa,SaοMaοMb-1οSb-1,Tb-1οNb-1οNaοTa)。其中rka→b表示重签名密钥,rk1、rk2、rk3、rk4表示重签名的四个部分密钥。

步骤四、签名。

受托者输入待签名消息m,他的公钥对(Aa,Ba)、私钥对(Sa,Ta)。受托者随机选择q对可逆仿射变换((S1′,T1′),(S2′,T2′),…,(Sq′,Tq′)),计算Si′(y1,y2,…,yu)=(y1(i),y2(i),…,yu(i)),Ti′(x1(i),x2(i),…,xn(i))=(x1,x2,…,xn),i=1,2,…,q。其中,yj(j=1,2,…,u)是可逆仿射变换Si′的初始变量,xj(i)(j=1,2,…,n)是可逆仿射变换Ti′的初始变量,yj(i)(j=1,2,…,u)是可逆仿射变换Si′进行计算后生成的值,xj(j=1,2,…,n)是可逆仿射变换Ti′进行计算后生成的值。

其次,受托者计算Ci=Si′οAaοTi′,i=1,2,…,q。

受托者计算哈希值并计算(Si,Ti)值如下:

其中H[i]表示的二进制值中第i位比特位的二进制值,这里二进制位顺序采取从低位到高位的顺序;表示受托者计算出的签名中的哈希值部分;||表示链接运算。

最后受托者计算其中,Va表示消息m对应的受托者的签名。输出生成的签名Va

步骤五、重签名。

代理者输入:签名Va,重签名密钥rka→b=(rk1,rk2,rk3,rk4),受托者的公钥(Aa,Ba),消息m。

验证签名正确性:代理者输入m,Va,(Aa,Ba),代理者首先对签名进行验证运算,计算:计算哈希值H′=H(m||C1′||C2′||…||Cq′)后,代理者将H′与签名Va值进行对比。当时,签名通过验证,代理者进行下一步重签名生成;否则,输出⊥,结束运算。其中,⊥表示拒绝。

重签名生成:代理者输入签名Va和重签名密钥rka→b=(rk1,rk2,rk3,rk4),代理者进行计算:

代理者输出签名其中,Vb表示经过代理者转换后的对应消息m的委托者的签名。

步骤六、验证。

任意验证者输入待签名消息m,委托者的公钥(Ab,Bb),转换后的签名Vb。验证者进行计算:计算哈希值Hb′=H(m||C1b′||C2b′||…||Cqb′)后,将Hb′与签名Vb值进行对比。当时,签名通过验证,即代理重签名验证成功;否则,输出⊥。

本发明的有益效果是:该方法对受托者与委托者的私钥进行秘密仿射变换构造重签名密钥,并基于多项式同构(IP)问题设计代理重签名及其验证过程,从而保证了代理重签名方法具有抗量子攻击性;另外,二次多变量多项式组的仿射变换主要执行乘法运算,运算量小,这使得代理重签名方法具有较高的计算效率。

下面结合具体实施方式对本发明作详细说明。

具体实施方式

具体实施方式中变量及运算符号的含义对照表。

本实施例基于IP签名的代理重签名方法,选择Alice为受托者,即原始签名者;Bob为委托者,即被转换后的签名所属者。具体步骤如下:

步骤一、系统参数生成。

系统管理者选择阶为2p的有限域K,p为系统管理者选取的正整数。系统管理者选择三个正整数n、u和q;

系统管理者选择密码学中的一个抗碰撞的哈希函数H(x):{0,1}*→{0,1}q

系统管理者选择具有n个变量的u阶二次多项式方程组Q,其形式为:

系统管理者公布系统生成的参数(n,u,q,K,Q,H(x))。

步骤二、密钥生成。

根据本方案初始化赋值阶段由上步给定的方程组Q,Alice选择秘密可逆仿射变换(Ma,Na),Bob选择秘密可逆仿射变换(Mb,Nb),其形式如下:

其中,是可逆仿射变换Ma和Mb的初始变量,是可逆仿射变换Na和Nb进行计算后生成的值。Alice计算Aa=MaοQοNa,Bob计算Ab=MbοQοNb,则Alice的部分公钥为Aa,Bob的部分公钥为Ab

Alice选择秘密可逆仿射变换ska=(Sa,Ta)为签名私钥、Bob选择秘密可逆仿射变换skb=(Sb,Tb)为签名私钥,它们的具体形式如下:

Sa:Sa(y1,y2,…,yu)=(y1′,y2′,…,yu′),

Ta:Ta(x1′,x2′,…,xn′)=(x1,x2,…,xn),

Sb:Sb(y1,y2,…,yu)=(y1′,y2′,…,yu′),

Tb:Tb(x1′,x2′,…,xn′)=(x1,x2,…,xn).

其中,yi′(i=1,2,…,u)是可逆仿射变换Sa和Sb进行计算后生成的值,xi′(i=1,2,…,n)是可逆仿射变换Ta和Tb的初始变量。Alice过计算Ba=SaοAaοTa得到Alice的部分公钥Ba,Bob通过计算Bb=SbοAbοTb得到Bob的部分公钥Bb。则Alice的公钥为pka=(Aa,Ba),Bob的公钥为pkb=(Ab,Bb)。

步骤三、重签名密钥生成。

重签名密钥为rka→b=(rk1,rk2,rk3,rk4),重签名密钥生成过程如下:

代理者随机秘密选择形如Ma的可逆仿射变换C,形如Sa的可逆仿射变换E,形如Na的可逆仿射变换D,形如Ta的可逆仿射变换F。

代理者将C、D、E、F发送给Alice,Alice计算一组值:

Z1=CοMa,

Z2=NaοD,

Z3=EοSaοMa,

Z4=NaοTaοF.

Alice将计算结果(Z1,Z2,Z3,Z4)发送给Bob。Bob收到后计算一组值:

Z1′=Z1οMb-1=CοMaοMb-1,

Z2′=Nb-1οZ2=Nb-1οNaοD,

Z3′=Z3οMb-1οSb-1=EοSaοMaοMb-1οSb-1,

Z4′=Tb-1οNb-1οZ4=Tb-1οNb-1οNaοTaοF.

其中的“-1”为求逆运算。Bob将计算结果(Z1′,Z2′,Z3′,Z4′)发送给代理者。

代理者收到后计算一组值:

rk1=C-1οZ1′=C-1οCοMaοMb-1,

rk2=Z2′οD-1=Nb-1οNaοDοD-1,

rk3=E-1οZ3′=E-1οEοSaοMaοMb-1οSb-1,

rk4=Z4′οF-1=Tb-1οNb-1οNaοTaοFοF-1.

则得到重签名密钥为(rk1,rk2,rk3,rk4)=(MaοMb-1,Nb-1οNa,SaοMaοMb-1οSb-1,Tb-1οNb-1οNaοTa)。

步骤四、签名。

Alice输入待签名消息m,他的公钥对(Aa,Ba)、私钥对(Sa,Ta)。Alice随机选择q对可逆仿射变换((S1′,T1′),(S2′,T2′),…,(Sq′,Tq′)),计算Si′(y1,y2,…,yu)=(y1(i),y2(i),…,yu(i)),Ti′(x1(i),x2(i),…,xn(i))=(x1,x2,…,xn),i=1,2,…,q。

其次,Alice计算Ci=Si′οAaοTi′,i=1,2,…,q。

Alice计算哈希值并如下计算(Si,Ti)的值:

其中H[i]表示的二进制值中第i位比特位的二进制值(这里二进制位顺序采取从低位到高位的顺序)。

最后Alice计算输出生成的签名Va

步骤五、重签名。

代理者输入:签名Va,重签名密钥rka→b=(rk1,rk2,rk3,rk4),Alice的公钥(Aa,Ba),消息m。

验证签名正确性:代理者输入m,Va,(Aa,Ba),代理者首先对签名进行验证运算,计算:计算哈希值H′=H(m||C1′||C2′||…||Cq′)后,代理者将H′与签名Va值进行对比。当时,签名通过验证,代理者进行下一步重签名生成;否则,输出⊥,结束运算。

重签名生成:代理者输入签名Va和重签名密钥rka→b=(rk1,rk2,rk3,rk4),代理者进行计算:

代理者输出签名

步骤六、验证。

任意验证者输入待签名消息m,Bob的公钥(Ab,Bb),转换后的签名Vb。验证者进行计算:计算哈希值Hb′=H(m||C1b′||C2b′||…||Cqb′)后,将Hb′与签名Vb值进行对比。当时,签名通过验证,即代理重签名验证成功;否则,输出⊥。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号