对一个模糊身份格基签名方案的改进
路秀华1,2, 温巧燕2, 金正平2, 王励成3, 杨春丽3    
1. 廊坊师范学院 数学与信息科学学院, 廊坊 065000;
2. 北京邮电大学 网络与交换技术国家重点实验室, 北京 100876;
3. 北京邮电大学 信息安全中心, 北京 100876
摘要

对第一个基于格理论构造的模糊身份签名方案进行了深入分析, 指出了它的安全性证明中存在的两个问题: 1) 对私钥提取查询的应答会导致Hash函数碰撞的产生; 2) 对于和挑战目标相同比特位数大于门限值的身份的签名查询无法应答.针对这些问题, 给出了相应的改进方法, 并且利用格上固定维数的格基代理方法, 避免了原方案中维数的扩张, 给出了一个私钥维数和签名维数更短的模糊身份格基签名方案.最后, 给出了新方案的安全性证明.

关键词: 格基密码     模糊身份     固定维数格基代理     签名    
中图分类号:TP309 文献标志码:A 文章编号:1007-5321(2015)02-0055-04 DOI:10.13190/j.jbupt.2015.02.009
Improvement of a Fuzzy Identity-Based Lattice Signature Scheme
LU Xiu-hua1,2, WEN Qiao-yan2, JIN Zheng-ping2, WANG Li-cheng3, YANG Chun-li3    
1. Faculty of Mathematics and Information Science, Langfang Teachers University, Langfang 065000, China;
2. State Key Laboratory of Networking and Switching Technology, Beijing University of Posts and Telecommunications, Beijing 100876, China;
3. Information Security Center, Beijing University of Posts and Telecommunications, Beijing 100876, China
Abstract

A fuzzy identity-based signature scheme based on short integer solution problem was designed. in 2013. Two weaknesses about its security proof are illustrated as follows: 1) the response to private key extraction queries leads to hash function collision; 2) for identities who have same bits with the target identity, and the number of same bits is larger than the threshold value, the challenger couldn't response to signature queries. The modifications were given to improve the above mentioned items. In addition, the lattice basis delegation with fixed dimension was used. A new fuzzy identity-based lattice signature scheme was obtained with smaller lattice dimension. The security proof of new signature scheme was proposed as well.

Key words: lattice-based cryptography     fuzzy identity     lattice basis delegation with fixed dimension     signature    

Yang等[1]给出了模糊身份签名的概念.为了保证量子环境下的安全性,人们引入了基于格理论的密码体制[2-3]. Yao等[4]首次提出了基于格的模糊身份签名方案,但是它的安全性证明存在一些问题.笔者对这些问题进行了分析,给出了相应的改进方法, 并使用文献[3]中固定维数的格基代理技术,避免了文献[4]中格的维数扩展,构造了一个更高效的模糊身份签名方案.

1 文献[4]安全性证明的分析

1) 关于Extract Query,也就是私钥提取查询,文献[4]描述如下:给定id满足|id*∩id| < k查询E-列表寻找满足|id′∩id|≥k的id′.

① 如果(id′, (H1(id′‖id1′‖1), …, H1(id′‖idll)), (S1, id1′, …, Sl, idl))存在,返回S1, id1′, …, Sl, idl.

② 否则,执行对id的Hash查询. 在id-列表中寻找满足|id′∩id|≥k的id′.

a.如果id′存在,对所有的i∈[l],计算Si, idi←RandBasis(ExtBasis(Si, idi, Ai, idiH1(id′‖idii)), s′)把(id′, (H1(id′‖id1′‖1), …, H1(id′‖idll)), (S1, id1′, …, Sl, idl))存在E-列表,把S1, id1′, …, Sl, idl返回给敌手

b.否则,对所有的i∈[l],运行GenBasis(1n; 1m; pq)算法产生矩阵 和格Λpq(Wi, idi)的一个短基Si, idi.然后,计算

把(id, (W1, id1, …, Wl, idl))存在id-列表中,把(id, (W1, id1, …, Wl, idl), (S1, id1, …, Sl, idl))存在E-列表中,返回(S1, id1, …, Sl, idl)给敌手

这里对id的私钥提取查询,除了步骤② 的b之外,返回的都是某个id′的私钥,二者具有关系|id∩id′|≥k.因此id和id′具有相同的私钥S1, id1′, …, Sl, idl.因此

(1)
(2)

Ai, idiH1(id′‖idii)≠Ai, idiH1(id‖idii),在式(1) 成立的情况下,式(2) 是不成立的.即使是考虑id和id′相同的部分,也就是Ai, idi=Ai, idi的时候,因为H1(id′‖idii)≠H1(id‖idii) (若二者相同,则构成哈希函数的一个碰撞),在式(1) 成立的情况下,式(2) 也是不成立的.

事实上,对id (满足|id*∩id| < k)的私钥提取查询,不需要借助|id′∩id|≥k的id′,直接对id进行私钥提取查询即可.具体操作如下: 查询E-列表寻找id.

① 如果(id, (W1, id1, …, Wl, idl), (S1, id1, …, Sl, idl))存在于列表中,把(S1, id1, …, Sl, idl)返回给敌手

② 否则,执行对id的Hash查询. 在id-列表中寻找id.

a.如果(id, (W1, id1, …, Wl, idl))存在id-列表中,对所有的i∈[l],计算

把(id, (W1, id1, …, Wl, idl), (S1, id1, …, Sl, idl))存在E-列表中,返回(S1, id1, …, Sl, idl)给敌手

b.否则,对所有的i∈[l],运行GenBasis(1n; 1m; pq)算法产生矩阵和格Λpq(Wi, idi)的一个短基Si, idi.然后,计算Si, idi←RandBasis(ExtBasis(Si, idi, Ai, idiWi, idi), s′). 把(id, (W1, id1, …, Wl, idl))存在id-列表中,把(id, (W1, id1, …, Wl, idl), (S1, id1, …, Sl, idl))存在E-列表中,返回(S1, id1, …, Sl, idl)给敌手

2) 关于Sign Query,也就是签名查询,在文献[4]中,因为与id*满足|id*∩id|≥k的id不允许进行私钥提取查询,所以与id*满足|id*∩id|≥k的id不可能在E-列表中,因此无法进行签名操作.

在对id*与某个消息M进行签名查询时,需要先随机选取一个身份id,使之满足|id*∩id|≥k,然后执行如下操作:

① 如果(id, (W1, id1, …, Wl, idl))存在于id-列表中,对所有的i∈[l],计算

然后,运行算法Fuzzy. Sign((Si, idi)i∈[l], M))获得签名σid, M=(M, (e1, …, el), id)并返回.

② 如果(id, (W1, id1, …, Wl, idl))不存在id-列表中,对所有的i∈[l],运行GenBasis(1n; 1m; pq)算法产生矩阵和格Λpq(Wi, idi)的一个短基Si, idi,把(id, (W1, id1, …, Wl, idl))存在id-列表中.然后,计算

运行算法Fuzzy. Sign((Si, idi)i∈[l], M)获得签名σid, M=(M, (e1, …, el), id)并返回.

2 新方案2.1 系统设置

这里只列出与原方案不同的设置.

1) 参数ss′被ω(log2m)和取代.

2)Dm×m.

2.2 私钥提取

输入主私钥MK={Ti, b}i∈[l], b∈{0, 1},身份串id=(id1, …, idl)∈{0, 1}l,执行以下操作:

1) 对i∈[l],令

2) 输出id的私钥为skid=(T1, id1, …, Tl, idl).

2.3 签名过程

输入身份id及其私钥skid=(T1, id1, …, Tl, idl)和消息M,执行以下操作:

1) 令u=H2(M).

2) 随机选择一个最高次数为k-1的多项式向量,且p满足等式p(0)=u.对j=1, …, l,令.由Shamir的(k, l)门限方案,对J⊆[l]满足,这里的Lj是相应的拉格朗日系数.

3) 对i∈[l],计算

4) 输出签名σid, M=(M, (e1, …, el), id).

2.4 验证过程

输入身份id′、消息M和签名σid, M

1) 令J⊆[l]表示id′和id相匹配位数的集合.如果|J| < k,输出⊥并终止;否则,执行下列步骤.

2) 验证是否对所有的j∈[l]都成立.如果不都成立,输出⊥并终止.

3) ΣjJLj(Aj, idjH1(id‖idjj)-1)ej=qH2(M)(mod p)如果成立,验证通过;否则,输出⊥并终止.

3 方案分析3.1 正确性分析

对所有的i∈[l],因为

所以,并且‖ei‖≤以很大的概率成立.

又由Shair的(k, l)门限方案,对J⊆[l]满足|J|≥k,因此

3.2 安全性证明

定理1 令,如果SISn, 2ml, q, β问题是难解的,则新方案具有自适应选择消息和身份攻击下的存在不可伪造性.换句话说,令是一个PPT敌手,则存在一个PPT算法可以解决SISn, 2ml, q, β问题,且的成功概率之间具有如下关系:negl(n),这里的QidQeQs是敌手H1查询,私钥提取和签名查询的次数.

证明 令A=U1X1‖…‖UlXl.算法首先设置系统参数,操作如下:

1) 对i∈[l],随机选取,运用中国剩余定理计算,使之满足

2) 对i∈[l],随机抽取矩阵,令Ai,0=UiRi,0*,Ai,1=XiRi,1*.

3) 随机选取J0←{1, 2, …, Qid+Qe+Qs+1}.

4) 输出主公钥{Ai, b}i∈[l], b∈{0, 1}.

H1查询 询问H1(id)时,算法如下操作:

1) 如果id已经被查询过,直接返回之前查询结果.

2) 如果是第J0次查询,对i∈[l],如果idi=0,返回H1(id‖idii)=Ri, 0*;如果idi=1,返回H1(id‖idii)=Ri, 1*;否则,执行步骤3.

3) 对i∈[l],调用算法SampleRwithBasis(Ai, idi),输出矩阵Ri, idi和格Λpq(Ai, idiRi, idi-1)的一个短基Si, idi.把(id, (Ri, idi)i∈[l], (Si, idi)i∈[l])保存在列表中,返回(H1(id‖idii)=Ri, idi)i∈[l].

H2查询 如果(M, H2(M))在列表中,直接返回H2(M).否则,随机选取,令H2(M)=u,将(M, u)存入列表,并返回u.

私钥提取查询 当询问身份id的私钥时,

1) 如果|id∩id′|≥k拒绝应答.

2) 如果|id∩id*| < k查询列表对身份id的查询结果(id, (Ri, idi)i∈[l], (Si, idi)i∈[l]),返回(Si, idi)i∈[l].如果身份id不在列表中,先对身份id执行查询.

签名查询 当询问对身份id和消息M的签名时,算法执行如下操作:随机选取id′满足|id∩id′|≥k,查询列表寻找身份id′.如果(id′, (Ri, idi)i∈[l], (Si, idi)i∈[l])存在,提取id′的私钥(Si, idi)i∈[l],运行2.3签名过程对消息M签名得(M, (e1, e2, …, el), id′)并返回.如果身份id′不存在列表中,先对身份id′执行H1查询.

伪造输出 当敌手输出一个合法的伪造(M*, (e1*, …, el*), id*)时,则对所有的i∈[l],ei*Dn,并且存在一个子集J⊆[l],|J|=k,满足ΣjJLj(Aj, idj*Rj, idj**-1)ej*=qH2(M).

不失一般性,假设J={1, 2, …, k},令D=(l!)2.对jJ,算法执行如下操作:如果idj*=0,ej**=[ej*; 0m×1];如果idj*=1,ej**=[0m×1; ej*].则e**=[DL1e1**; …; DLkek**; 0; …; 0]是SISn, 2ml, q, β问题的解.分析如下:

猜对id*是第J0H1查询的概率是1/(Qid+Qe+Qs+1).如果猜对了,而且(M*, (e1*, …, el*), id*)是一个合法的伪造,则ei*Dn,并且ΣjJLj(Aj, idj*Rj, idj**-1)ej*=qH2(M).等式两边关于q取模,对jJ,当idj*=0时,LjUjej=*0(mod q);当idj*=1时,LjXjej*=0(mod q).又已知idj*=0时,ej**=[ej*; 0m×1];idj*=1时,ej**=[0m×1; ej*].所以对jJ,有Lj(UjXj)ej**=0(mod q).也就是(U1X1‖…‖UlXl)[L1e1**; …; Lkek**; 0; …; 0]=0(mod q),亦即A[DL1e1**; …; DLkek**; 0; …; 0]=0(mod q).

② 因为对所有的i∈[l],有‖ei**‖=‖ei*‖≤,并且,,所以‖e**‖≤

③ 因为H2的结果服从均匀分布,H2(M)=0的概率是可以忽略的,所以e**=0的概率是可以忽略的.

综上所述,e**是SISn, 2ml, q, β问题的解,并且

3.3 与文献[4]的对比

新方案采用了与文献[4]不同的格基代理技术,避免了格维数的扩展,使每个身份对应的私钥维数和签名维数变为原来的1/2.参数如表 1所示.

表 1 不同方案的参数
4 结束语

分析了文献[4]格上模糊身份签名方案的安全性证明中存在的问题,并对其逐一进行了修正.引入文献[3]中固定维数的格基代理方法,避免了文献[4]中格维数的扩展,构造了一个私钥维数和签名维数更短的签名方案,并对其安全性作了严格的证明.

参考文献
[1] Yang P Y, Cao Z F, Dong X L. Fuzzy identity based signature[EB/OL]. Cryptology ePrint Archive, Report2008/002, http://eprint. iacr.org/eprint-bin/search.pl.
[2] Gentry C, Peikert C, Vaikuntanathan V. Trapdoors for hard lattices and new cryptographic constructions[C]//Proceedings of the 40th annual ACM symposium on theory of computing. Victoria: [s.n.], 2008: 197-206.
[3] Agrawal S, Boneh D, Boyen X. Lattice basis elegation in fixed dimension and shorter-ciphertext hierarchical IBE[C]//CRYPTO 2010. Santa Barbara. [s.n.], 2010, 6223: 98-115.
[4] Yao Y Q, Li Z J. A novel fuzzy identity based signature scheme based on the short integer solution problem[J].Computers and Electrical Engineering, 2014, 40(6): 1930–1939. doi: 10.1016/j.compeleceng.2013.09.005