格上的高效代理签名
江明明1, 胡予濮1, 王保仓1, 王凤和2, 来齐齐1    
1. 西安电子科技大学 综合业务网理论与关键技术国家重点实验室, 西安 710071;
2. 山东建筑大学 理学院, 济南 250101
摘要

为了提高格上代理签名的效率, 利用无陷门签名和小范数矩阵传递技术, 构造了一个代理签名方案.方案中的小范数矩阵传递技术可以控制代理签名私钥维数, 使得代理签名私钥的维数小于原始用户签名私钥的维数.方案的安全性基于格上的小整数解困难问题, 与原有结果相比, 降低了代理签名私钥和代理签名的尺寸.

关键词: 代理签名     格公钥密码     小整数解问题     盆景树    
中图分类号:TP309 文献标志码:A 文章编号:10.13190/j.jbupt.2014.03.018 DOI:10.13190/j.jbupt.2014.03.018
Efficient Proxy Signature over Lattices
JIANG Ming-ming1, HU Yu-pu1, WANG Bao-cang1, WANG Feng-he2, LAI Qi-qi1    
1. State Key Laboratory of Integrated Service Networks, Xidian University, Xi'an 710071, China;
2. Department of Mathematics and Physics, Shandong Jianzhu University, Jinan 250101, China
Abstract

In order to improve the efficiency of the proxy signature scheme based on lattice, the authors use the lattice signature, without trapdoors and transmission technology with matrix, with small norm to construct a proxy signature scheme. The transmission technology with matrix with small norm is also used to control the dimension of proxy signature secret key such that its dimension is smaller than that of original signature secret key. Its security is based on the hardness of small integer solution problem. Compared with other results over lattice, the size of proxy signature secret key and proxy signature is reduced.

Key words: proxy signature     lattice-based public key cryptography     small integer solution problem     bonsai tree    

1996年,Mambo、Usuda和Okamoto[1]提出了代理签名的概念.在代理签名方案中,原始签名者把他的签名权利委托给代理签名者,由代理签名者代替他来完成签名.在方案中验证者可以区分签名是代理签名还是原始签名.鉴于代理签名的这种性质,研究者把它应用到匿名投票、移动代理、网格计算、电子现金中.而目前利用量子算法可以在多项式时间内解决大整数分解和离散对数问题,那么基于这两种假设的方案在量子环境下将被攻破.因此,构造量子环境下安全的代理签名方案是非常有意义的.格公钥密码作为近年来发展最快、受关注程度最高的后量子密码之一,具有良好的密码学性质.目前,很多学者对基于格的代理签名进行了研究,取得了一些成果[2-5].笔者利用无陷门签名技术和小范数向量传递技术构造了一个基于格的代理签名方案,降低了代理签名私钥和代理签名的尺寸.

1 基础知识

是一个m×m阶矩阵,并且b1, …, bmRm是线性无关的向量.一个m维满秩格Λ定义为向量b1, …, bm的所有整系数线性组合所构成的集合,即

这里b1, …, bm构成了格Λ的一组基.

定义1  小整数解问题(SISq, m, β,small integer solution problem):给定一个随机的矩阵AZqn×m和一个实数β,找到一个非零向量e,使得Ae=0mod q且‖e‖≤β,‖·‖表示欧几里得范数.

引理1[6]  对于任意的矩阵AZqn×mm>64+nlog q/log (2d+1),对随机选择的s∈{-d, …, 0, …, d}m,以1-2-100的概率存在另一个s′∈{-d, …, 0, …, d}m使得As=As′.

对于任意c>0,实数σ>0,一个m维格Λ,定义格Λ上的离散高斯分布为

c=0时,简写为DΛ, σ.整数Z构成的格的高斯分布简写为Dσ, c.

引理2[7]  设q≥2,矩阵AZqn×mmn.设T是格Λq(A)的一组基,.那么对于cRmuZqn,有

negl(n)表示关于n的一个可忽略的量.

2 方案介绍与安全性证明

该方案使用了3个Hash函数:

H1:{0, 1}*DH1={c:c∈{-1, 0, 1}k, ‖c1κ1}

H2:{0, 1}*DH2={c:c∈{-1, 0, 1}l, ‖c1κ2}

H3:id→{-1, 0, 1}k×lH1, H2被看做随机预言机,lkmκi满足, i=1, 2.

1) 密钥生成:随机选择矩阵AZqn×mSS1∈{-d, …, 0, …, d}m×k,计算T=ASmod qT1=AS1mod q.原始签名者的公、私钥对为(A, T, S),代理者自己的公、私钥对为(A, T1, S1).

2) 代理签名密钥生成:对于代理签名者id,计算Uid=H3(id)∈{-1, 0, 1}k×lS2=SUidZm×lT2=TUidmod q,代理签名密钥为S2,对应的公钥为T2.原始签名者通过安全信道把代理签名密钥S2发送给代理者.

3) 代理者验证:代理者收到代理签名密钥后,检查AS2=TUidmod q是否成立,若成立,则接受代理签名密钥,否则拒绝.

4) 代理签名:输入一个消息μ,代理者自己的私钥S1,代理签名密钥S2,签名如下:

① 选择两个向量y1, y2Dσm

② 计算c1=H1(Ay1, μ),c2=H2(Ay2, μ);

③ 计算z1=S1c1+y1Zqmz2=S2c2+y2Zqm

④ 以的概率输出(z1, c1),以的概率输出(z2, c2);

5) 验证:输入消息μ及其对应的签名(z1, c1),(z2, c2),矩阵AT1T2,验证ci=Hi(Azi-Tici, μ),i=1, 2是否同时成立,若成立,则接受;否则,拒绝.

下面给出方案的正确性验证与安全性证明.在定理1中,详细给出代理签名的正确性验证.定理2的不可伪造性说明了任何人都不能伪造代理签名者的签名,保证了代理签名者的安全性.定理3证明了任何人都不能伪造原始签名者的签名或者委托代理签名的权利,保证了原始签名者的安全性.

定理1(正确性)

对于消息μ及其对应的代理签名(z1, c1),(z2, c2),需要验证ci=Hi(Azi-Tici, μ),i=1, 2,同时成立.首先

其次  Azi-Tici=A(Sici+yi)-Tici=Ayi

因此ci=H1(Ayi, μ)=H1(Azi-Tici, μ),i=1, 2.

定理2(不可伪造性)

假设存在一个概率多项式时间敌手能够以不可忽略的概率ε产生一个有效的伪造代理签名,那么就存在一个算法,对于一个随机矩阵AZqn×m,能够以至少

的概率,找到一个非零向量v,使得,且Av=0.

证明  需要分两种情况来讨论代理签名的不可伪造性.其一,恶意的原始签名者(拥有代理签名密钥,但没有代理签名者的密钥)不能伪造代理签名;其二,恶意的第三方(没有代理签名密钥,也没有代理签名者的密钥)不能够伪造代理签名.由于恶意的第三方的攻击能力弱于恶意的原始签名者,所以只需讨论恶意的原始签名者的不可伪造性.设存在一个概率多项式时间敌手(恶意的原始签名者),在进行了qH2次随机预言机H2询问和qs次签名询问之后,可以以不可忽略的概率ε伪造一个有效的代理签名.由于敌手已经知道了代理签名密钥,那么它需要产生一个代理签名者本身签名的伪造,即产生一个伪造签名(μ, z, c).需要构造一个多项式时间算法,利用的优势来攻破小整数解问题SISq, m, β. 需要模拟随机预言机H2和签名预言机,模拟如下.

1) 随机预言机H2询问:维持一个列表(μj, zj, cj),当敌手询问消息μj的随机预言机H2值时,先检查列表中是否有μj,若有,则输出cj;否则,从DH2中随机选择一个cj,并选择一个zjDσm,令cj=H2(Azj-Tcj, μj). 存储(μj, zj, cj),并返回cj作为对μj的随机预言机H2询问.

2) 签名询问:当敌手询问消息μj的签名,假设对所有要进行签名询问的消息已经进行过随机预言机H2询问. 从列表中取回(μj, zj, cj),并返回(zj, cj)给敌手.

3) 伪造:当敌手决定结束这些询问之后,输出一个伪造(μ, z, c). 要利用这个伪造签名(μ, z, c)来解决小整数解问题.由于签名询问的消息已经在签名询问中询问过了,那么敌手至多进行t=qs+qH2次随机预言机H2询问,随机选择c1, …, ctDH2.这个伪造的签名满足,且c=H2(Az-Tc, μ).对于给定u=Az-Tc,敌手产生一个c使得c=H2(u, μ)的概率为1/|DH2|,因此c以1-1/|DH2|的概率是消息μ在随机预言机H2询问时得到的,即c∈{c1, …, ct},那么敌手产生一个有效的伪造,并且c∈{c1, …, ct}的概率为ε-1/|DH2|.不妨设c=cj.这里cj有两种可能,一种是cj是在签名询问中产生的,另一种是在随机预言机H2询问中产生的.

cj在签名询问中产生.由于c=cj,则H2(Az-Tc, μ)=H2(Azj-Tc, μj).如果μμjAz-TcAzj-Tc,则意味着敌手找到了cj的一个原像.所以μ=μjAz-Tc=Azj-Tc,那么A(z-zj)=0.又由于z-zj≠0,且,那么有.

现在考虑cj是在随机预言机H2询问中产生的.在这种情况下,记录敌手对消息μ的伪造签名(z, cj),并产生新的随机的c1, …, ctDH2.那么由一般的分支引理可知,敌手产生一个关于消息μ的新的伪造签名(z′, cj)(cjcj)的概率为,即敌手产生消息μ的伪造签名(z, cj)和(z′, cj)的概率.由于Az-Tcj=Az′-Tcj,把T=AS代入,得到A(z-z′+Scj-Scj)=0,由于,所以.

现在要说明z-z′+Scj-Scj≠0.由引理1可知,以至少1-2-100的概率存在另一个私钥S′使得AS=AS′,所以若z-zj+S(cj-cj)=0,则z-zj+S′(cj-cj)≠0.由于在整个模拟过程中并没有出现S,所以不知道使用的是哪一个,这就说明得到非零向量的概率至少为1/2.

定理3  代理签名者不能得到原始签名者的私钥,且任何人(包括代理签名者)在不拥有原始签名者私钥的情况下,都不能够伪造代理签名密钥.

证明  首先证明代理签名者不能得到原始签名者的私钥,只需要证明如果代理签名者能够得到原始签名者的私钥,那么就可以利用代理签名者的能力解决SISq, m, β问题,即对于一个随机矩阵AZqn×m,找到一个非零向量v,使得‖v‖≤β,且Av=0.令敌手为恶意的代理签名者,假设敌手在进行了qprk(lqprkk)次代理签名密钥询问之后,可以以不可忽略的概率ε得到原始签名者的私钥.需要构造一个算法利用的优势来解决SISq, m, β问题.对于一个随机矩阵AZqn×m随机选择一个矩阵S∈{-d, …, 0, …, d}m×k,计算T=ASmod qZqn×k发送(A, T)给. 需要模拟代理签名密钥预言机,模拟如下.

1) 代理签名密钥询问:对于代理签名用户id,计算Uid=H3(id),Sid=SUidZqm×lSid发送给作为用户id的代理签名密钥.

当敌手在结束询问之后,输出矩阵S′,使得AS′=Tmod q,且S′∈{-d, …, 0, …, d}m×k.要利用S′解决SISq, m, β问题.这里需要说明S′≠S.由引理1可知,至少以1-2-100的概率存在另一个私钥S′(至少有一列与S不同),使得AS′=AS.那么敌手输出的私钥与原私钥不同的概率至少是1/2,所以得到非零向量S-S′,且,使得A(S-S′)=0 mod q的概率至少是1/2.这样就解决了随机的SISq, m, β问题.

现在要证明任何人(包括代理签名者)在不拥有原始签名者私钥的情况下,不能够伪造代理签名密钥.现在需要利用敌手的能力解决SISq, m, β问题,对于一个随机矩阵AZqn×m随机选择一个矩阵S∈{-d, …, 0, …, d}m×k,计算T=ASmod q.由于证明过程与上述类似,所以下面仅作简单的论述.如果敌手可以伪造代理签名用户id的代理签名密钥Sid,那么Tid=ASidmod qTid=TUidmod q,即ASidmod q=TUidmod q.而则可以计算Sid=SUid,那么

所以ASidmod q=ASidmod q.由上面的讨论可知Sid-Sid是SISq, m, β的一个小整数解.

3 方案对比

下面来比较相关文献的代理私钥(不包括代理者自己的私钥以及所产生的签名)和代理签名的尺寸,结果如表 1所示.

表 1 相关方案比较

其中,.对于参数dσ,取d=1,.

4 方案优化

在优化方案中,把原来的2个随机预言机合并为一个随机预言机,其输出长度为原来长度的和,如H2:{0, 1}*→{c:c∈{-1, 0, 1}k+l, ‖c1κ},lkm.优化后可以提高近1倍的计算效率.其过程仅在代理签名上与初始方案不同.这里只给出代理签名过程.

代理签名:输入一个消息μ,代理者自己的私钥S1,代理签名密钥S2,签名如下:

① 选择一个向量yDσm

② 计算c=H2(Ay, μ)∈{-1, 0, 1}k+l

③ 计算z=(S1S2)c+yZqm

④ 以的概率输出(z, c).

5 结束语

公、私钥尺寸过大是目前格密码发展的一个瓶颈,而现有格上的代理签名方案中代理签名私钥的尺寸比原始签名者的私钥尺寸大得多.笔者提出了一个基于格上小整数问题的代理签名方案,通过降低代理签名私钥的维数来降低代理签名私钥的尺寸.但是在实际应用中,公、私钥尺寸还比较大,需要进一步降低尺寸.该方案在计算上主要使用的是矩阵乘法,与基于离散对数和分解大整数问题的方案相比,既不使用模指数运算,也没有配对运算,计算复杂度更低.

参考文献
[1] Mambo M, Usuda K, Okamoto K. Proxy signatures: delegation of the power to sign messages[J].IEICE Transactions on Fundamentals, 1996, E79-A(9): 1338–1353.
[2] Jiang Yali, Kong Fanyu, Ju Xiuling. Lattice-based proxy signature[C]//CIS 2010. Nanning: [s.n.], 2010: 382-385.
[3] 夏峰, 杨波, 马莎, 等. 基于格的代理签名方案[J]. 湖南大学学报:自然科学版, 2011, 38(6): 84–88.
Xia Feng, Yang Bo, Ma Sha, et al. Lattice-based proxy signature scheme[J].Journal of Hunan University Natural Sciences, 2011, 38(6): 84–88.
[4] Wang Chunxiao, Qi Mingnan. Lattice-based proxy signature scheme[J].Journal of Information and Computational Science, 2011, 12(8): 2451–2458.
[5] Kim K S, Hong D, Jeong I R. Identity-based proxy signature from lattices[J].Journal of Communications and Networks, 2013, 15(1): 1–7.
[6] Lyubashevsky V. Lattice signatures without trapdoors[C]// Pointcheval D, Johansson T (eds.). Eurocrypt 2012. LNCS. Berlin: Springer-Verlag, 2012: 738-755.
[7] Gentry C, Peikert C, Vaikuntanathan V. How to use a short basis: trapdoors for hard lattices and new cryptographic constructions[C]//Cynthia D(ed.), STOC 2008. New York: [s.n.], 2008: 197-206.