基于多变量数字签名对消息匿名环签名的方法转让专利

申请号 : CN201010544654.2

文献号 : CN102006168B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王尚平陈婷

申请人 : 西安理工大学

摘要 :

本发明公开了一种基于多变量数字签名对消息匿名环签名的方法,该方法按照以下步骤实施,生成系统参数,密钥生成,环签名生成,环签名的验证。基于传统密码体制的环签名方法,在量子计算机下其安全性受到威胁,而本发明基于多变量公钥密码体制的环签名方法解决了现有的环签名体制在量子计算下不安全的缺陷。本发明的方法既具有安全性又具有计算效率高的优点。

权利要求 :

1.一种基于多变量数字签名对消息匿名环签名的方法,其特征在于,该方法按照以下步骤实施:步骤1.生成系统参数

l

1)设置k=GF(q)是特征为p的有限域,其中q=p,l是一个正整数;

2)令 是有限域k的n次扩张,这里n是一个正整数,g(x)是有限域k上的一个n次不可约多项式;

3)令m为多变量方程组中方程的个数,n为变量的个数;

* m

4)选择H:{0,1} →k 为密码学安全的抗碰撞单向不可逆哈希函数,系统参数为(k,q,p,l,m,n,H);

步骤2.密钥生成

1)假设环中有t个用户,设为U={u0,u1,…,ut-1};

n m

2)根据多变量公钥密码体制,每个用户ui,其中0≤i≤t-1,选择Fi是从k 到k 的可逆映射,Fi满足:a)Fi(x1,…,xn)=(fi1,…,fim),其中fij∈k[x1,…,xn],j=1,…,m;

b)任何方程组

都易于求解;

n n

3)每个用户ui,其中0≤i≤t-1,随机选择Si是从k 到k 的一个可逆仿射变换TSi(x1,…,xn)=Ai·(x1,…,xn)+ai,其中Ai是有限域k上的一个n×n的可逆矩阵,ai是有限域k上的一个n×1的列向量;

m m

4)每个用户ui,其中0≤i≤t-1,随机选择Ti是从k 到k 的一个可逆仿射变换TTi(x1,…,xm)=Bi·(x1,…,xm)+bi,其中Bi是有限域k上的一个m×m的可逆矩阵,bi是有限域k上的一个m×1的列向量;

5)每个用户ui,其中0≤i≤t-1,公布其公钥其中每一个 都是k[x1,…,xn]中的多项式;

6)每个用户ui,其中0≤i≤t-1,保密其私钥SKi={Ti,Fi,Si};

7)环中的t个用户的公钥集记为步骤3.环签名生成

设假设成员ux,其中0≤x≤t-1,代表环成员中所有成员U={u0,u1,…,ut-1}对消息*M∈{0,1} 进行签名,环中的t个用户的公钥集记为 则签名者ux的私钥为SKx=(Tx,Fx,Sx),签名者ux计算环签名的步骤如下:n

1)签名者ux对于i∈(0,1,…,t-1)\x随机选择ai,bi∈Rk,计算m

2)签名者ux随机选择v∈Rk,计算vx+1=H(M,L,v);

3)签名者ux对于i=x+1,…,t-1,0,1,…,x-1,依次计算vi+1 mod t=H(M,L,vi+Ri)得到

vx=H(M,L,vx-1+Rx-1)签名者ux计算

Rx=v-vx;

n

4)随机选择ax∈Rk,计算得

5)输出关于消息M关于环 的环签名σ=(v0,a0,b0,a1,b1,…,at-1,bt-1);

步骤4.环签名的验证

对于给定消息M关于环 的环签名σ=(v0,a0,b0,a1,b1,…,at-1,bt-1),任何验证者对签名正确性的验证过程如下:

1)验证人对0≤i≤t-1,计算

2)验证人0≤i≤t-2依次计算vi+1=H(M,L,vi+Ri)得到vt-1;

3)验证等式

v0=H(M,L,vt-1+Rt-1)是否成立,若等式成立,则接受环签名,否则拒绝该环签名。

2.根据权利要求1所述的方法,其特征在于,该方法步骤3中,签名者计算从而使得消息M关于环的环签名σ=(v0,a0,b0,a1,b1,…,at-1,bt-1)构成了一个可以验证的封闭环。

说明书 :

基于多变量数字签名对消息匿名环签名的方法

技术领域

[0001] 本发明属于信息安全技术领域,涉及一种基于多变量数字签名对消息匿名环签名的方法。

背景技术

[0002] 2001年,在如何匿名泄漏秘密的背景下,Rivest等人提出了一种新型签名技术,称为环签名(ring signature)。环签名可以被视为一种特殊的群签名,它没有可信中心,没有群的建立过程,这里的群是指由多个可能的签名者组成的集合,也称为环。该环的建立具有自发性,即环是由一个签名者在不需要和其它人商量的情况下建立的。对电子文档的环签名是由一个签名者代表环中全体成员签署的,但对于签名验证者来说签名者是完全匿名的。环签名提供了一种匿名泄露秘密的巧妙方法。环签名的这种无条件匿名性在对信息需要长期保护的一些特殊环境中非常有用。环签名可以实现无条件匿名,即无法追踪签名人的身份。环签名的这种无条件匿名性适用于信息需要长期保护的一些特殊环境。环签名引起了广泛关注,各种环签名方案相继被提出。2002年,Abe等人提出了第一个基于有限域上离散对数的环签名方案。最近,双线性对被用来设计环签名方案,然而,双线性对的运算效率很低。
[0003] 环签名因其特有的性质,如自发性、匿名性等,使得它可以广泛地应用于匿名电子选举、机密信息的匿名泄漏、电子政务、电子商务、重要新闻的匿名发布及无线传感器网络中的匿名认证。下面简要介绍几种应用:
[0004] 1)用于匿名泄漏信息。例如匿名举报一个官员腐败,为了防止官员的报复行为,保护举报者的隐私,举报者可以对举报电子文档进行环签名。反贪局在获得举报信息的真实性的同时还能不暴露举报者的真实身份。这时就可以使用环签名方案。
[0005] 2)用于ad-hoc、无线传感器网络中的匿名认证。ad-hoc和无线传感器网络的无中心、自组织等特点与环签名的构造有很多相似之处。因此对于ad-hoc网络中的诸多问题,如:成员的匿名认证等,往往要求参与实体的一方在应用过程中能够保持自己身份的隐私性,这种情况下都可以应用环签名来解决。
[0006] 随着量子计算机的出现,利用量子计算机可以在多项式时间内解决因子分解和离散对数问题,进而严重威胁到现有基于传统密码体制的环签名的安全性。构造新的公钥密码体制,使其能够替代基于数论的密码体制,抵御未来基于量子计算机的攻击已经迫在眉睫。多变量公钥密码体制可以抵御量子计算机的攻击,而且比基于数论的方案在计算上更有效,因此,多变量公钥密码学的研究成为密码学发展中很活跃的课题。
[0007] 多变量公钥密码体制至今已经经历了20年的发展历程,出现了MIA族、OV族、HFE族、TTM族、MFE族、lIC族等体制。由于多变量公钥密码体制的安全性和效率更高,所以最近得到了人们的广泛关注。
[0008] 多变量密码体制的发展为环签名的研究提供了新的思路,因为直到目前,还没有发现量子计算机对二次多变量方程组的求解有任何优势。
[0009] 到目前为止,已经提出了各种环签名方案,但这些方案都是基于传统密码体制,例如RSA等。面对量子计算机的出现,传统密码体制受到威胁,因此,现有的环签名体制在量子计算下将不再安全。

发明内容

[0010] 本发明的目的是提供一种基于多变量数字签名对消息匿名环签名的方法,解决现有的环签名体制在量子计算下不安全的缺陷。
[0011] 本发明所采用的技术方案是,一种基于多变量数字签名对消息匿名环签名的方法,该方法按照以下步骤实施:
[0012] 步骤1.生成系统参数
[0013] 1)设置k=GF(q)是特征为p的有限域,其中q=pl,l是一个正整数;
[0014] 2)令 是有限域k的n次扩张,这里n是一个正整数,g(x)是有限域k上的一个n次不可约多项式;
[0015] 3)令m为多变量方程组中方程的个数,n为变量的个数;* m
[0016] 4)选择H:{0,1} →k 为密码学安全的抗碰撞单向不可逆哈希函数,系统参数为(k,q,p,l,m,n,H);
[0017] 步骤2.密钥生成
[0018] 1)假设环中有t个用户,设为U={u0,u1,…,ut-1};n m
[0019] 2)根据多变量公钥密码体制,每个用户ui(0≤i≤t-1)选择Fi是从k 到k 的可逆映射,Fi满足:
[0020] a)Fi(x1,…,xn)=(fi1,…,fim),其中fij∈k[x1,…,xn],j=1,…,m;
[0021] b)任何方程组
[0022] Fi(x1,…,xn)=(y′1,…,y′m)
[0023] 都易于求解;n n
[0024] 3)每个用户ui(0≤i≤t-1)随机选择Si是从k 到k 的一个可逆仿射变换T
[0025] Si(x1,…,xn)=Ai·(x1,…,xn)+ai,
[0026] 其中Ai是有限域k上的一个n×n的可逆矩阵,ai是有限域k上的一个n×1的列向量;m m
[0027] 4)每个用户ui(0≤i≤t-1)随机选择Ti是从k 到k 的一个可逆仿射变换T
[0028] Ti(x1,…,xm)=Bi·(x1,…,xm)+bi,
[0029] 其中Bi是有限域k上的一个m×m的可逆矩阵,bi是有限域k上的一个m×1的列向量;
[0030] 5)每个用户ui(0≤i≤t-1)公布其公钥
[0031]
[0032] 其中每一个 都是k[x1,…,xn]中的多项式;
[0033] 6)每个用户ui(0≤i≤t-1)保密其私钥SKi={Ti,Fi,Si};
[0034] 7)环中的t个用户的公钥集记为
[0035] 步骤3.环签名生成
[0036] 设假设成员ux(0≤x≤t-1)代表环成员中所有成员U={u0,u1,…,ut-1}对消*息M∈{0,1} 进行签名,环中的t个用户的公钥集记为 则签名者ux的私钥
为SKx=(Tx,Fx,Sx),签名者ux计算环签名的步骤如下:
[0037] 1)签名者ux对于i∈(0,1,…,t-1)\x随机选择ai,bi∈Rkn,计算
[0038]
[0039] 2)签名者ux随机选择v∈Rkm,计算
[0040] vx+1=H(M,L,v);
[0041] 3)签名者ux对于i=x+1,…,t-1,0,1,…,x-1,依次计算
[0042] vi+1m0dt=H(M,L,vi+Ri)
[0043] 得到
[0044] vx=H(M,L,vx-1+Rx-1)
[0045] 签名者ux计算
[0046] Rx=v-vx;
[0047] 4)随机选择ax∈Rkn,计算得
[0048]
[0049] 5)输出关于消息M关于环 的环签名
[0050] σ=(v0,a0,b0,a1,b1,…,at-1,bt-1);
[0051] 步骤4.环签名的验证
[0052] 对于给定消息M关于环 的环签名σ=(v0,a0,b0,a1,b1,…,at-1,bt-1),任何验证者对签名正确性的验证过程如下:
[0053] 1)验证人对0≤i≤t-1,计算
[0054]
[0055] 2)验证人0≤i≤t-2依次计算
[0056] vi+1=H(M,L,vi+Ri)
[0057] 得到vt-1;
[0058] 3)验证等式
[0059] v0=H(M,L,vt-1+Rt-1)
[0060] 是否成立,若等式成立,则接受环签名,否则拒绝该环签名。
[0061] 本发明的特点还在于,
[0062] 其中步骤3中,签名者计算Rx=v-vx,从而使得消息M关于环
的环签名σ=(v0,a0,b0,a1,b1,…,at-1,bt-1)构成了一个可以验证的封闭环。
[0063] 基于传统密码体制的环签名方法,在量子计算机下其安全性受到威胁,而本发明基于多变量数字签名对消息匿名环签名的方法在量子计算下是安全的,本发明的方法既具有安全性又具有计算效率高的优点。

具体实施方式

[0064] 本发明所采用的技术方案是,基于多变量数字签名对消息匿名环签名的方法,该方法按照以下步骤实施:
[0065] 步骤1.生成系统参数
[0066] 1)设置k=GF(q)是特征为p的有限域,其中q=pl,l是一个正整数;
[0067] 2)令 是有限域k的n次扩张,这里n是一个正整数,g(x)是有限域k上的一个n次不可约多项式;
[0068] 3)令m为多变量方程组中方程的个数,n为变量的个数;* m
[0069] 4)选择H:{0,1} →k 为密码学安全的抗碰撞单向不可逆哈希函数。
[0070] 系统参数为(k,q,p,l,m,n,H);
[0071] 步骤2.密钥生成
[0072] 1)假设环中有t个用户,设为U={u0,u1,…,ut-1};n m
[0073] 2)根据多变量公钥密码体制,每个用户ui(0≤i≠t-1)选择Fi是从k 到k 的可逆映射,Fi满足:
[0074] a)Fi(x1,…,xn)=(fi1,…,fim),其中fij∈k[x1,…,xn],j=1,…,m;
[0075] b)任何方程组
[0076] Fi(x1,…,xn)=(y′1,…,y′m)
[0077] 都易于求解;n n
[0078] 3)每个用户ui(0≤i≤t-1)随机选择Si是从k 到k 的一个可逆仿射变换T
[0079] Si(x1,…,xn)=Ai·(x1,…,xn)+ai,
[0080] 其中Ai是有限域k上的一个n×n的可逆矩阵,ai是有限域k上的一个n×1的列向量;m m
[0081] 4)每个用户ui(0≤i≤t-1)随机选择Ti是从k 到k 的一个可逆仿射变换T
[0082] Ti(x1,…,xm)=Bi·(x1,…,xm)+bi,
[0083] 其中Bi是有限域k上的一个m×m的可逆矩阵,bi是有限域k上的一个m×1的列向量;
[0084] 5)每个用户ui(0≤i≤t-1)公布其公钥
[0085]
[0086] 其中每一个 都是k[x1,…,xn]中的多项式;
[0087] 6)每个用户ui(0≤i≤t-1)保密其私钥SKi={Ti,Fi,Si};
[0088] 7)环中的t个用户的公钥集记为
[0089] 步骤3.环签名生成
[0090] 设假设成员ux(0≤x≤t-1)代表环成员中所有成员U=u0,u1,...,ut-1}对消息*M∈{0,1} 进行签名,环中的t个用户的公钥集记为 则签名者ux的私钥为
SKx=(Tx,Fx,Sx)。签名者ux计算环签名的步骤如下:
[0091] 1)签名者ux对于i∈(0,1,…,t-1)\x随机选择ai,bi∈Rkn,计算
[0092]
[0093] 2)签名者ux随机选择v∈R km,计算
[0094] vx+1=H(M,L,v);
[0095] 3)签名者ux对于i=x+1,…,t-1,0,1,…,x-1,依次计算
[0096] vi+1modt=H(M,L,vi+Ri)
[0097] 得到
[0098] vx=H(M,L,vx-1+Rx-1)
[0099] 签名者ux计算
[0100] Rx=v-vx;
[0101] 4)随机选择ax∈Rkn,计算得
[0102]
[0103] 5)输出关于消息M关于环 的环签名
[0104] σ=(v0,a0,b0,a1,b1,…,at-1,bt-1)。
[0105] 步骤4.环签名的验证
[0106] 给定消息M关于环 环签名σ=(v0,a0,b0,a1,b1,…,at-1,bt-1),任何验证者对签名正确性的验证过程如下:
[0107] 1)验证人对0≤i≤t-1,计算
[0108]
[0109] 2)验证人0≤i≤t-2依次计算
[0110] vi+1=H(M,L,vi+Ri)
[0111] 得到vt-1;
[0112] 3)验证等式
[0113] v0=H(M,L,vt-1+Rt-1)
[0114] 是否成立。若等式成立,则接受环签名,否则拒绝该环签名。
[0115] 下面分别对本发明的基于多变量公钥密码体制的环签名的完备性、匿名性和不可伪造性进行分析:
[0116] ●完备性
[0117] 本发明所提出的基于多变量的环签名算法具有完备性。
[0118] 假设消息M关于环 的环签名为σ=(v0,a0,b0,a1,b1,...,at-1,bt-1),如果环签名过程严格执行以上的签名步骤,并且在传输过程中没有发生错误,则由签名过程可知:
[0119] 对 于 i ∈ (0,1, …,t-1)\x, 有 又 因 为得 即 有
因此,对i∈(0,1,…,t-1),有
[0120] 对于i=x+1,…,t-1,0,1,…,x-1时,有vi+1modt=H(M,L,vi+Ri);又知Rx=v-vx,即v=Rx+vx,那么有vx+1=H(M,L,v)=H(M,L,vx+Rx),即就是说当i=x时,也满足vi+1=H(M,L,vi+Ri);因此,对i∈(0,1,…,t-1),有vi+1modt=H(M,L,vi+Ri);那么,一定有v0=H(M,L,vt-1+Rt-1)成立,即验证式成立。
[0121] ●无条件匿名性
[0122] 本发明所提出的基于多变量的环签名是无条件匿名的。
[0123] 对于消息M关于环 的环签名σ=(v0,a0,b0,a1,b1,…,at-1,bt-1),我们先考虑{ai,bi}(i∈(0,1,…,t-1)\x)是随机选取的,因此没有提供实际签名者的任何信息。再来考虑{ax,bx},我们知道ax是由签名者随机选择的,而由知bx依赖Rx和ax,其中的Rx=v-vx,由
于v是随机选择的,所以Rx的分布是随机的,则经过计算得到的bx也是随机分布的。这样,对于固定的M和L,每组(a0,b0,a1,b1,…,at-1,bt-1)出现的概率都是|k|-2t,未泄露签名者的任何信息,对于敌手而言,他试图确定真实签名者身份的概率不会超过1/t,等同于暴力猜测。
[0124] ●环签名不可伪造性
[0125] 本发明提出的基于多变量多项式的环签名方案关于多变量公钥密码体制(MPKC)已知攻击是不可伪造的,如果在MPKC中已知攻击下,环签名方案中所选的多变量签名体制是安全的。这里MPKC中已知攻击包括代数攻击,线性化攻击,秩攻击和差分攻击等。
[0126] 证明:假设由生成算法生成的密钥对 和公钥集 发送给攻击者A。A可以利用MPKC中已知攻击,如代数攻击,线性化攻击,秩攻击,差分攻击等* * *
等。A输出(R,M,σ),如果 成立,攻击成功。在这个过程中,A不能询
* * * * *
问(*,M,σ),并且 我们现在分析A输出伪造的环签名(R,M,σ)的计算复杂度。
* * * *
我们假设攻击者A模仿签名者uπ伪造关于环R 的环签名(R,M,σ),不是一般性,假设攻击者A按照环签名生成中步骤1),2),3)进行计算,但是为了伪造某
个消息M的签名,需要通过求得bx,满足
[0127]
[0128] 来伪造环签名σ=(v0,a0,b0,a1,b1,..,at-1,bt-1),其中ax为攻击者自己选取的。这个问题的求解属于有限域上多变量二次多项式方程组的求解问题,也是多变量公钥密码体制所基于的困难问题。目前对多变量公钥密码体制的攻击有以下几个方法:
[0129] 1)代数攻击:针对多变量公钥密码体制的代数攻击是指在不知道私钥的情况下直接从二次方程 中求解密文bx。 基算法和XL算法是最有效的代数攻击方法。这相当于代数攻击环签名方案中所选的多变量签名体制,如果该方案安全,则环签名也安全。
[0130] 2)线性化方程攻击:一个线性化方程是指对给定的公钥 有下面的等式成立:
[0131]
[0132] 把 的具体值代入上式,我们得到bx和vx的一个仿射(线性)关系。假如本方案中所选取的实际多变量公钥密码体制可以抵抗利用线性化方程攻击对进行攻击,本发明中的环签名也可以抵抗线性化方程攻击。
[0133] 3)秩攻击:Goubin和Courtois指出最小秩攻击适用于三角-加-减体制。秩攻击的复杂度大约 其中k是Fx分量中最小秩为r的线性组合的数目。
[0134] 假如本方案中所选取的实际多变量公钥密码体制可以抵抗利用最小秩攻击,则本发明中的环签名也可以抵抗最小秩攻击。
[0135] 4)差分攻击:给出一个多变量公钥密码体制的公钥 一组二次多项式,它的差分 定义为 这是一组关于x∈kn的函数。关键是利用差分中的隐藏结构来攻击多变量公钥密码体制。假如本方案中所选取的实际多变量公钥密码体制可以抵抗差分攻击,则本发明中的环签名也可以抵抗差分攻击。
[0136] 由以上证明知,如若我们所选取多变量公钥密码体制在现有的对MPKC攻击下是安全的,则本发明的环签名在现有的对MPKC攻击下也是安全的。
[0137] 实施例
[0138] 基于多变量公钥密码pFLASH体制的匿名环签名方案
[0139] 步骤1.生成系统参数
[0140] 1)设置k=GF(q)是特征为2的有限域,其中q=24;
[0141] 2)令 是有限域k的n次扩张,这里n=74是一个正整数,g(x)是有限域k上的一个n次不可约多项式;
[0142] 3)令m=n-r=52为多变量方程组中方程的个数,n-s=73为变量的个数,其中r=22,s=1;
[0143] 4)选择H:{0,1}*→k52为密码学安全的抗碰撞单向不可逆哈希函数。
[0144] 步骤2.密钥生成
[0145] 1)假设环中有t个用户,设为U={u0,u1,…,ut-1};
[0146] 2)根据多变量公钥密码体制,每个用户ui(0≤i≤t-1)选择F是从kn到km的可逆映射:
[0147]
[0148] 其中f1,…,fn∈k[x1,…,xn],且K上的中心映射为
[0149]θ n
[0150] 其中θ=11是一个整数且满足gcd(q +1,q-1)=1(0<θ<n)。n
[0151] φ:K→k 是标准的k-线性同构且如下式被给出:n-1
[0152] φ(a0+a1x+…+an-1x )=(a0,a1,…,an-1)
[0153] F的逆由下式给出
[0154]
[0155] 其中
[0156]
[0157] t满足t(qθ+1)≡1mod qn-1;
[0158] 3)每个用户ui(0≤i≤t-1)选择其中Si是从k74到k74的随机选择的一个可逆仿射变换,
[0159] Si(x1,…,xn)=Ai(x1,…,xn)T+ai,
[0160] 其中Ai是有限域k上的一个74×74的可逆矩阵,ai有限域k上的一个74×1的列向量;
[0161] 4)每个用户ui(0≤i≤t-1)选择Ti是从k52到k52的随机选择的一个可逆仿射变换
[0162] Ti(x1,…,xm)=Bi(x1,…,xm)T+bi,
[0163] 其中Bi是有限域k上的一个52×52的可逆矩阵,bi有限域k上的一个52×1的列向量;
[0164] 5)令T-是T的前r=22个分量的投影,S-是最后s=1个分量上S的限制,限制为0。即
[0165]
[0166]
[0167]
[0168]
[0169] 每个用户ui(0≤i≤t-1)公布其公钥PKi为三个映射的复合
[0170]
[0171] 其中每一个 都是k[x1,…,xn]中的多项式;
[0172] 6)每个用户ui(0≤i≤t-1)保密其私钥SKi={Ti,Fi,Si};
[0173] 7)环中的t个用户的公钥集记为
[0174] 步骤3.环签名生成
[0175] 假设环成员ux(0≤x≤t-1)代表环成员中所有成员U={u0,u1,…,ut-1}对消*息M∈{0,1} 进行签名,环中的t个用户的公钥集记为 则签名者ux的私钥
为SKx=(Tx,Fx,Sx),签名者ux计算环签名的步骤如下:
[0176] 1)签名者ux对于i∈(0,1,…,t-1)\x随机选择ai,bi∈Rkn,计算
[0177]
[0178] 2)签名者ux随机选择v∈Rkm,计算
[0179] vx+1=H(M,K,v);
[0180] 3)签名者ux对于i=x+1,…,t-1,0,1,…,x-1,依次计算
[0181] vi+1modt=H(M,L,vi+Ri)
[0182] 得到vx=H(M,L,vx-1+Rx-1),签名者ux计算Rx=v-vx;
[0183] 4)签 名 者ux 随 机 选 择ax∈Rkn,计 算 签 名 者uxr -1 -1 -1
首先选择一个随机向量V′∈Rk,通过Sx оFx оTx 计算(V,V′)的原象
如果所得这个元素 的最后s=1个向量为0,那么它的
n-1
前n-s个向量bx∈k 就是一个有效签名。否则,抛弃这个元素并且选择其他的随机嵌入n-1
的向量V′。直到计算得bx∈k 是一个有效签名;