发明内容
本发明的目的是提供一种基于有限域上二次多变量问题对消息匿名环签名的方法,解决现有的环签名体制在量子计算下不安全的缺陷。
本发明所采用的技术方案是,基于有限域上二次多变量问题对消息匿名环签名的方法,该方法按照以下步骤实施:
步骤1.生成系统参数
1)设置k=GF(q)是特征为p的有限域,其中q=pl,l是一个正整数;
2)令
是有限域k的n次扩张,这里n是一个正整数,g(x)是有限域k上的一个n次不可约多项式;
3)令m为多变量方程组中方程的个数,n为变量的个数;
4)选择H:{0,1}*→km为密码学安全的抗碰撞单向不可逆哈希函数,系统参数为(k,q,p,l,m,n,H);
步骤2.密钥生成
1)假设环中有t个用户,设为U={u0,u1,…,ut-1};
2)根据多变量公钥密码体制,每个用户ui(0≤i≤t-1)选择Fi是从kn到km的可逆映射,Fi满足:
a)Fi(x1,…,xn)=(fi1,…,fim),其中fij∈k[x1,…,xn],j=1,…,m;
b)任何方程
Fi(x1,…,xn)=(y′1,…,y′m)
都易于求解;
3)每个用户ui(0≤i≤t-1)随机选择L1i是从km到km的一个可逆仿射变换
L1i(x1,…,xm)=M1i·(x1,…,xm)T+a1i,
其中M1i是有限域k上的一个m×m的可逆矩阵,a1i是有限域k上的一个m×1的列向量;
4)每个用户ui(0≤i≤t-1)随机选择L2i是从kn到kn的一个可逆仿射变换
L2i(x1,…,xn)=M2i·(x1,…,xn)T+a2i,
其中M2i是有限域k上的一个n×n的可逆矩阵,a2i是有限域k上的一个n×1的列向量;
5)每个用户ui(0≤i≤t-1)公布其公钥![]()
F‾i(x1,···,xn)=(f‾i1,···,f‾im)]]>
其中每一个
都是k[x1,…,xn]中的多项式;
6)每个用户ui(0≤i≤t-1)保密其私钥SKi={L1i,Fi,L2i};
7)环中的t个用户的公钥集记为![]()
步骤3.环签名生成
假设成员uπ(0≤π≤t-1)代表环成员中所有成员U={u0,u1,…,ut-1}对消息M进行签名,环中的t个用户的公钥集记为
uπ的公钥为
私钥为SKπ={L1π,Fπ,L2π},签名者uπ计算环签名的步骤如下:
1)对于i=0,…,t-1且i≠π,随机选取两两互异的ri∈kn,计算
Ri=F‾i(ri);]]>
2)随机选取r∈kn,计算
h=H(M||L||r+Σi≠πri);]]>
3)计算
Rπ=h-Σi≠πRi;]]>
4)计算
![]()
若rπ与ri相同,则重新选取r;
5)令
V=r-rπ;
6)输出消息M关于环
的环签名δ=(r0,r1,…rt-1,V);
步骤4.环签名的验证
给定环
关于消息M的签名δ=(r0,r1,…rt-1,V),任何验证者验证
Σi=0t-1F‾i(ri)=H(M||L||Σi=0t-1ri+V)]]>
是否成立,若等式成立,则接受环签名,否则拒绝该环签名。
本发明的特点还在于,
其中步骤3中,签名者计算![]()
从而使得消息M关于环
的环签名δ=(r0,r1,…rt-1,V)构成了一个可以验证的封闭环。
基于传统密码体制的环签名方法,在量子计算机下其安全性受到威胁,而本发明基于有限域上二次多变量问题对消息匿名环签名的方法在量子计算下是安全的,本发明的方法既具有安全性又具有计算效率高的优点。
具体实施方式
本发明基于有限域上二次多变量问题对消息匿名环签名的方法,按照以下步骤实施:
步骤1.生成系统参数
1)设置k=GF(q)是特征为p的有限域,其中q=pl,l是一个正整数;
2)令
是有限域k的n次扩张,这里n是一个正整数,g(x)是有限域k上的一个n次不可约多项式;
3)令m为多变量方程组中方程的个数,n为变量的个数;
4)选择H:{0,1}*→km为密码学安全的抗碰撞单向不可逆哈希函数,系统参数为(k,q,p,l,m,n,H)。
步骤2.密钥生成
1)假设环中有t个用户,设为U={u0,u1,…,ut-1};
2)根据多变量公钥密码体制,每个用户ui(0≤i≤t-1)选择Fi是从kn到km的可逆映射,Fi满足:
a)Fi(x1,…,xn)=(fi1,…,fim),其中fij∈k[x1,…,xn],j=1,…,m;
b)任何方程
Fi(x1,…,xn)=(y′1,…,y′m)
都易于求解。
3)每个用户ui(0≤i≤t-1)随机选择L1i是从km到km的一个可逆仿射变换
L1i(x1,…,xm)=M1i·(x1,…,xm)T+a1i,
其中M1i是有限域k上的一个m×m的可逆矩阵,a1i是有限域k上的一个m×1的列向量;
4)每个用户ui(0≤i≤t-1)随机选择L2i是从kn到kn的一个可逆仿射变换
L2i(x1,…,xn)=M2i·(x1,…,xn)T+a2i,
其中M2i是有限域k上的一个n×n的可逆矩阵,a2i是有限域k上的一个n×1的列向量;
5)每个用户ui(0≤i≤t-1)公布其公钥![]()
F‾i(x1,···,xn)=(f‾i1,···,f‾im)]]>
其中每一个
都是k[x1,…,xn]中的多项式;
6)每个用户ui(0≤i≤t-1)保密其私钥SKi={L1i,Fi,L2i};
7)环中的t个用户的公钥集记为![]()
步骤3.环签名生成
假设成员uπ(0≤π≤t-1)代表环成员中所有成员U={u0,u1,…,ut-1}对消息M进行签名,环中的t个用户的公钥集记为
uπ的公钥为
私钥为SKπ={L1π,Fπ,L2π}。签名者uπ计算环签名的步骤如下:
1)对于i=0,…,t-1且i≠π,随机选取两两互异的ri∈kn,计算
Ri=F‾i(ri);]]>
2)随机选取r∈kn,计算
h=H(M||L||r+Σi≠πri);]]>
3)计算
Rπ=h-Σi≠πRi;]]>
4)计算
![]()
若rπ与ri相同,则重新选取r;
5)令
V=r-rπ;
6)输出消息M关于环
的环签名δ=(r0,r1,…rt-1,V)。
步骤4.环签名的验证
给定环
关于消息M的签名δ=(r0,r1,…rt-1,V),任何验证者验证
Σi=0t-1F‾i(ri)=H(M||L||Σi=0t-1ri+V)]]>
是否成立。若等式成立,则接受环签名,否则拒绝该环签名。
下面分别对本发明的基于多变量公钥密码体制的环签名的正确性、匿名性和不可伪造性进行分析:
●正确性
本发明所提出的基于多变量的环签名是正确的。
接收方收到环
关于消息M的签名δ=(r0,r1,…rt-1,V),若该签名是按如上步骤进行并且在传输的过程中没有改变,不难证明:
由于
所以
Rπ=F‾π(rπ),]]>
当i=0,…,t-1且i≠π时,Riπ=F‾i(ri),]]>因此
Σi=0t-1F‾i(ri)=Σi=0t-1Ri,]]>
又Rπ=h-Σi≠πRi,]]>则Σi=0t-1Ri=h,]]>
于是Σi=0t-1F‾i(ri)=h,]]>
而h=H(M||L||r+Σi≠πri)]]>
=H(M||L||r-rπ+Σi≠πri+rπ)]]>
=H(M||L||Σi=0t-1ri+V),]]>
所以
Σi=0t-1F‾i(ri)=H(M||L||Σi=0t-1ri+V).]]>
●签名者匿名性
本发明所提出的基于多变量的环签名满足签名人无条件匿名性。
只需证明,对任何一个外部攻击者A而言,即使他能获知这t个成员的私钥,A能猜中一个给定有效环签名的真正签名者的概率不超过1/t。
设签名δ=(r0,r1,…rt-1,V)是在消息M、环成员U={u1,u2,…,ut}及其公钥集
下的一个有效签名。下面计算按照本发明方案恰能计算出给定环签名δ=(r0,r1,…rt-1,V)的概率。
因为ri是在kn中随机选取的,i=0,…,t-1且i≠π,故依次选出r0,r1,…,rπ-1,rπ+1,…,rt-1的概率是
而r也是kn中随机选取的,通过本发明方案的步骤计算出rπ的概率为
这个值与具体的真实签名者uπ无关。另外,
即使攻击者非法获得了所有可能签名者的私钥,他依次用每个可能签名的私钥去试探,经过本发明方案步骤都可以完成环签名,所以环成员之外的任何人猜出真实签名者的概率都不超过1/t,环之内除真实签名者之外的成员猜出真实签名者的概率都不超过1/t-1。因此该方案满足无条件匿名性。
●签名不可伪造性
本发明提出的基于多变量多项式的环签名方案关于多变量公钥密码体制(MPKC)已知攻击是不可伪造的,如果在MPKC中已知攻击下,环签名方案中所选的多变量签名体制是安全的。这里MPKC中已知攻击包括代数攻击,线性化攻击,秩攻击和差分攻击等。
证明:假设由生成算法生成的密钥对
和公钥集
发送给攻击者A。A可以利用MPKC中已知攻击,如代数攻击,线性化攻击,秩攻击,差分攻击等等。A输出(R*,M*,σ*),如果
成立,攻击成功。在这个过程中,A不能询问(*,M*,σ*),并且
我们现在分析A输出伪造的环签名(R*,M*,σ*)的计算复杂度。我们假设攻击者A模仿签名者uπ伪造关于环R*的环签名(R*,M*,σ*),不是一般性,假设
攻击者A按照环签名生成中步骤1),2),3)进行计算,但是为了伪造某个消息M的签名,需要通过求得rπ,满足
Rπ=F‾π(rπ),]]>
来伪造环签名δ=(r0,r1,…rt-1,V)。这个问题的求解属于有限域上多变量二次多项式方程组的求解问题,也是多变量公钥密码体制所基于的困难问题。目前对多变量公钥密码体制的攻击有以下几个方法:
1)直接代数攻击:针对多变量公钥密码体制的代数攻击是指在不知道私钥的情况下直接从二次方程
中求解密文rπ。
基算法和XL算法是最有效的代数攻击方法。假如本方案中所选取的实际多变量公钥密码体制可以抵抗直接代数攻击,本发明中的环签名也可以抵抗直接代数攻击。
2)线性化方程攻击:一个线性化方程是指对给定的公钥![]()
总有下面的等式成立:
Σi,jaijrπ,iRπ,j+Σibirπ,i+ΣjcjRπ,j+d=0]]>
把Rπ∈km的具体值代入上式,我们得到Rπ和rπ的一个仿射(线性)关系。假如本方案中所选取的实际多变量公钥密码体制可以抵抗利用线性化方程攻击对进行攻击,本发明中的环签名也可以抵抗线性化方程攻击。
3)秩攻击:Goubin和Courtois指出最小秩攻击适用于三角-加-减体制。秩攻击的复杂度大约
其中k是Fπ分量中最小秩为r的线性组合的数目。
假如本方案中所选取的实际多变量公钥密码体制可以抵抗利用最小秩攻击,则本发明中的环签名也可以抵抗最小秩攻击。
4)差分攻击:给出一个多变量公钥密码体制的公钥
一组二次多项式,它的差分
定义为
这是一组关于x的函数。关键是利用差分中的隐藏结构来攻击多变量公钥密码体制。假如本方案中所选取的实际多变量公钥密码体制可以抵抗差分攻击,则本发明中的环签名也可以抵抗差分攻击。
由以上证明知,如若我们所选取多变量公钥密码体制在现有的对MPKC攻击下是安全的,则本发明的环签名在现有的对MPKC攻击下也是安全的。
实施例
基于多变量公钥密码oil-vinegar签名体制的环签名方案
步骤1.生成系统参数
1)设置k=GF(q)是特征为p=2的有限域,其中q=28;
2)令o=30,v=64,m=30为多变量方程组中方程的个数,n=o+v=94为变量的个数;
3)选择H:{0,1}*→k30为密码学安全的抗碰撞单向不可逆哈希函数。
步骤2.密钥生成
1)假设环中有t个用户,设为U={u0,u1,…,ut-1},根据多变量公钥密码体制,每个用户ui(0≤i≤t-1)随机选择Fi是从kn到km的可逆Oil-Vinegar多项式映射,Oil-Vinegar多项式
具有如下形式:
Fi=Σl=1oΣj=1vailjxlx^j+Σl=1vΣj=1vbiljx^lx^j+Σl=1ocilxl+Σj=1vdijx^j+ei]]>
其中ailj,bilj,cil,dij,ei∈k;
2)每个用户ui(0≤i≤t-1)随机选择Li是从kn到kn的一个可逆仿射变换
Li(x^1,···,x^v,x1,···,xo)=Mi·(x^1,···,x^v,x1,···,xo)T+ai,]]>
其中Mi是有限域k上的一个n×n的可逆矩阵,ai有限域k上的一个n×1的列向量;
3)每个用户ui(0≤i≤t-1)公布其公钥![]()
F‾i(x1,···,xn)=(f‾i1,···,f‾im)]]>
其中每一个
都是k[x1,…,xn]中的多项式;
4)每个用户ui(0≤i≤t-1)保密其私钥SKi={Fi,Li};
5)环中的t个用户的公钥集记为![]()
步骤3.环签名生成
假设成员uπ(0≤π≤t-1)代表环成员中所有成员U={u0,u1,…,ut-1}对消息M∈{0,1}*进行签名,环中的t个用户的公钥集记为
uπ的公钥为
私钥为SKπ={Fπ,Lπ}。签名者uπ计算环签名的步骤如下:
1)对于i=0,…,t-1且i≠π,随机选取两两互异的ri∈kn,计算
Ri=F‾i(ri);]]>
2)随机选取r∈kn,计算
h=H(M||L||r+Σi≠πri);]]>
3)计算
Rπ=h-Σi≠πRi∈ko;]]>
4)随机选择
以(x1,…,xo)为变量求解线性方程组
Fπ(x^1′,···,x^v′,x1,···,xo)=Rπ,]]>
若该方程组无解,另外选取一个
重新求解,
令所求得的解为
记为
r~π=Fπ-1(Rπ),]]>
计算
rπ=Lπ-1(r~π,x^1′,···,x^v′),]]>
若rπ与ri相同,则重新选取
重新计算;
5)令
V=r-rπ;
6)输出消息M关于环
的环签名δ=(r0,r1,…rt-1,V)。
步骤4.环签名的验证
给定环
的关于消息M的签名δ=(r0,r1,…rt-1,V),任何验证者验证:
Σi=0t-1F‾i(ri)=H(M||L||Σi=0t-1ri+V)]]>
是否成立。若等式成立,则接受环签名,否则拒绝该环签名。
本发明针对量子计算机的出现,传统密码体制受到威胁,利用基于多变量公钥密码在量子计算下安全的优势,解决现有的环签名体制在量子计算下将不再安全的缺陷。发明的基于多变量公钥密码体制的环签名方案,满足签名者的无条件匿名性和不可伪造性,在效率上优于传统密码体制。
本发明提供电子文档的环数字签名,可以用来保护电子文档在发布、存储或传输中的完整性、真实性的安全保护;同时,又可以保护签名者的匿名性,以保证签名用户的信息不暴露,在该签名通过验证的情况下,使签名的验证者可以确信该签名是由多个用户组成的一个环中的某个成员签名的,但是验证者不能确认该签名到底是由哪一个成员签名的,每个成员签名的概率是相等的。