法律状态公告日
法律状态信息
法律状态
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个变量的可逆仿射变换;
受托者计算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。
受托者计算哈希值
其中H[i]表示
最后受托者计算
步骤五、重签名。
代理者输入:签名Va,重签名密钥rka→b=(rk1,rk2,rk3,rk4),受托者的公钥(Aa,Ba),消息m。
验证签名正确性:代理者输入m,Va,(Aa,Ba),代理者首先对签名进行验证运算,计算:
重签名生成:代理者输入签名Va和重签名密钥rka→b=(rk1,rk2,rk3,rk4),代理者进行计算:
代理者输出签名
步骤六、验证。
任意验证者输入待签名消息m,委托者的公钥(Ab,Bb),转换后的签名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),其形式如下:
其中,
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计算哈希值
其中H[i]表示
最后Alice计算
步骤五、重签名。
代理者输入:签名Va,重签名密钥rka→b=(rk1,rk2,rk3,rk4),Alice的公钥(Aa,Ba),消息m。
验证签名正确性:代理者输入m,Va,(Aa,Ba),代理者首先对签名进行验证运算,计算:
重签名生成:代理者输入签名Va和重签名密钥rka→b=(rk1,rk2,rk3,rk4),代理者进行计算:
代理者输出签名
步骤六、验证。
任意验证者输入待签名消息m,Bob的公钥(Ab,Bb),转换后的签名Vb。验证者进行计算:
机译: m个基于n个多重签名的证书提供服务的方法,以及使用该方法的服务器
机译: m个基于n个多重签名的证书提供服务的方法,以及使用该方法的服务器
机译: m个基于n个多重签名的证书提供服务的方法,以及使用该方法的服务器