随着现代科技的发展, 电子签名技术已广泛应用于人们的日常生活。环签名作为电子签名中的一种, 常用于电子现金、匿名电子投票、匿名举报和区块链应用等。环签名由密码学家RIVEST等人[1]于2001年提出, 其与群签名一样, 都为签名者提供匿名性签名方案。在环签名中, 没有管理者只有环成员, 环成员之间彼此独立, 无需相互合作。在签名过程中, 签名者首先选定1个临时签名者集合, 签名者也包含在该集合中, 然后签名者利用自己的私钥和集合成员的公钥就可单独对消息进行签名。任何1位环成员都能代表集合对消息进行签名, 且验证签名只需集合成员的公钥、消息和签名, 无需签名者的私钥, 从而确保环签名的匿名性。研究人员采用不同安全模型提出多种环签名方案, 其安全性主要基于大整数因子化[1-3]、离散对数[4-5]和双线性配对[6-8]等数论假设。随着量子计算机技术的进步, 大整数因子化和离散对数等问题可用Shor量子算法在概率多项式时间(Probabilistic Polynomial Time, PPT)内求解, 这给密码设置带来新的挑战, 上述环签名方案等传统安全保护方法在量子计算环境下已不再安全[9]。
基于格的密码构造能抵抗量子攻击, 且格中主要为线性运算和模运算, 相较传统密码指数运算速度更快, 因此其有望成为后量子传统公钥替代者之一, 基于格的密码方案设计也成为学者们的研究热点[10-11]。由于格中问题在一般情况和最坏情况下困难性相同, 因此格上任意实例的安全性都相同, 该特性吸引众多密码学家对基于格的环签名方案进行研究[12-13]。2010年, CASH等人[14]提出首个基于格的环签名方案, 并采用格基派生技术为环成员产生公私钥, 但是该方案签名长度较长, 计算费时不利于实施。2011年, WANG等人[15]提出基于格的环签名新方案, 但该方案缺少标准模型下的安全性证明。2012年, 田苗苗等人[16]利用GPV格点筛选算法[11]提出一种基于格的环签名高效方案, 但如果将该方案中验证矩阵的l+2个公钥和环签名向量代入签名验证公式, 则敌手最多试(l+2)2次就可找到满足签名验证公式的公钥从而找到签名者, 因此该方案不具备匿名性。2018年, 热娜等人[17]针对文献[15]方案中不满足不可伪造性的问题进行优化后, 提出基于格的环签名改进方案, 该方案在随机预言模型下证明满足环签名中的匿名性和不可伪造性, 并使用MP12陷门函数[10]生成陷门。虽然该方案已证明具有安全性, 但是在随机预言模型下证明安全的方案在实际应用中有可能不安全, 且该方案的签名密钥和签名长度较长。
2012年, HOFHEINZ等人[18-19]提出可编程哈希函数(Programmable Hash Function, PHF), 该函数是一种可模拟随机预言机某些可编程性质的特殊哈希函数[20], 并利用可编程哈希函数分别构造了基于双线性映射和基于RSA算法的签名方案, 这2种方案具有更短的签名长度, 且从理论上更容易证明其安全性。传统可编程哈希函数的定义与构造都存在特定于DL群之间的代数结构问题, 这也是几乎所有已知可编程哈希函数均由DL问题构造的原因。2016年, ZHANG等人[21]提出格上可编程哈希函数的概念, 利用格上可编程哈希函数重新构造了格上签名方案, 该方案继承了传统可编程哈希函数签名方案的优点, 改进了公钥过长的不足。虽然格和DL群之间代数结构差异较大, 传统可编程哈希函数定义看似不适合格, 且格上可编程哈希函数已超过传统可编程哈希函数的范围, 但由于格上可编程哈希函数继承了传统可编程哈希函数的概念, 并运用格上分区证明技巧[21], 因此仍将其归类于可编程哈希函数。
文献[21]指出在非齐次小整数解(Inhomogeneous Small Integer Solution, ISIS)假设下, 任何基于格上的可编程哈希函数均抗碰撞, 因此可直接应用于环签名方案。为缩短格上环签名方案的签名和密钥长度, 本文提出一种基于格上可编程哈希函数的环签名新方案, 利用可编程哈希函数的特殊性质和MP12陷门函数生成陷门, 将可编程哈希函数嵌入环签名的构造中, 并对本文方案在标准模型下自适应选择消息攻击的存在不可伪造性(Existential Unforgeability against Adaptive Chosen Messages Attack, EUF-CMA)安全进行分析。
1 预备知识 1.1 格格是由线性无关向量构成的整系数组合。假设向量b1, b2, …, bn属于ℝm且线性无关, 则向量b1, b2, …, bn是格的1组格基, 记作B=[b1, b2, …, bn]∈ℝm×n, 该格表示为:
$ \mathcal{L}\left( {{\mathit{\boldsymbol{b}}_1}, {\mathit{\boldsymbol{b}}_2}, \cdots , {\mathit{\boldsymbol{b}}_n}} \right)=\left\{ \sum\limits_{i=1}^{n}{{{x}_{i}}}{{\mathit{\boldsymbol{b}}_i}}\mid {{x}_{i}}\in \mathbb{Z}, 1\le i\le n \right\} $ | (1) |
其中:若m=n, 则称格
$ {\mathcal{L}}(\mathit{\boldsymbol{B}}) = {\mathcal{L}}\left( {{\mathit{\boldsymbol{b}}_1}, {\mathit{\boldsymbol{b}}_2}, \cdots , {\mathit{\boldsymbol{b}}_m}} \right) = \left\{ {\mathit{\boldsymbol{B}}x\mid x \in {\mathbb{Z}^m}} \right\} $ | (2) |
本文基于格上的小整数解(Small Integer Solution, SIS)问题和非齐次小整数解问题这2种困难问题研究格上可编程哈希函数环签名方案的安全性。
定义1(SIS问题) 若q为整数, β(n)为安全参数为n的函数, 则矩阵A∈
定义2(ISIS问题) 若q为整数, β(n)为安全参数为n的函数, 矩阵A∈
哈希函数
1) 句法。在PPT内算法(K′, td)←H.TrapGen(1k, A, B)输出密钥K′和陷门td。对于任意输入的X∈
2) 正确性。对于(K′, td)←H.TrapGen(1k, A, B), 所有X∈
3) 统计上更接近陷门密钥。对于全部密钥(K′, td)←H.TrapGen(1k, A, B)和K←H.Gen(1k), (A, K′)和(A, K)之间的统计距离最大为γ。
4) 分布均匀的隐藏矩阵。对于所有(K′, td)←H.TrapGen(1k, A, B), 任意输入X1, X2, …, Xu, Y1, Y2, …, Yv∈
若γ可忽略而δ不可忽略, 则称该哈希函数为(u, v, β)-PHF; 若u为k中随机选取的多项式, 则称该哈希函数为(poly, v, β)-PHF。
1.4 环签名环签名方案由KeyGen、Sign和Verify 3个概率多项式时间算法组成[3]。
1) KeyGen(1n)算法。输入系统安全参数n, KeyGen算法为每位环成员生成其签名密钥ski和验证密钥vki。
2) Sign(ski, ℝ, M)算法。输入环成员集合ℝ、消息M以及签名者的签名密钥ski, Sign算法得到的输出是环成员集合ℝ对消息M的签名σ。
3) Verify(ℝ, M, v)算法。输入环成员集合ℝ、消息M以及签名σ, 若验证满足签名条件, 则Verify算法输出为1, 否则输出为0。
1.5 环签名安全模型若环签名方案满足匿名性和不可伪造性2个条件, 则该环签名方案为安全的签名方案。
1) 匿名性。假设PPT内敌手A以优势Padv=Psuc-1/2赢得游戏, Psuc为敌手A赢得此游戏的概率, 若得到的Padv可忽略, 则该环签名方案满足匿名性。
(1) 输入系统安全参数k, 挑战者C运用陷门生成TrapGen(1n, 1m, q, In)算法, 挑战者C将系统参数发送给敌手A。
(2) 敌手A对签名进行询问, 挑战者C将所得签名结果返回给敌手A, 挑战者C向敌手A提交消息M∈{0, 1}n、环成员集合ℝ和用户i0、i1的身份, 挑战者C随机选取b∈{0, 1}, 最终敌手A得到签名σb。
(3) 敌手A输出身份猜测b′。
2) 不可伪造性。假设PPT内敌手A赢得游戏的概率Psuc可忽略, 则称该环签名方案在选择子环和适应性选择消息攻击下具有不可伪造性。
(1) 建立系统(KeyGen(1k))。输入系统安全参数k, 挑战者C采用陷门生成算法TrapGen(1n, 1m, q, In)将公钥集合ℝ={vk1, vk2, …, vkl}发送给敌手A, 而将其私钥ski保密。
(2) 签名询问(Sign Queries)。敌手A适应性选择子环ℝ={vk1, vk2, …, vkl}和消息M∈{0, 1}n, 挑战者C运行Sign算法将结果σ返回给敌手A。
(3) 伪造签名(Forgery)。敌手A输出环签名(ℝ′, M′, σ′), 若验证(ℝ′, M′, σ′)为有效且未在签名询问中被询问, 则敌手A赢得该游戏, 伪造成功。
2 方案描述本文方案中系统参数的生成:1, n, m′, v, q∈
1) KeyGen(1k)。输入安全参数k, 和用MP12陷门生成算法[10]计算得到(Ai, Ti)←TrapGen(1n, 1m, q, In), 其中
2) Sign(ski, K, M)。假设ℝ={vk1, vk2, …, vkl}为环成员集合, 给出私钥ski和消息M∈{0, 1}n, 随机选择t←r{0, 1}1, 计算Aℝ, M, t=(Aℝ‖(A0+H(0‖t)G)+HK(M))∈
3) Verify(K, M, σ)。给出环成员集合ℝ、消息M和签名σ=(e, t), 计算Aℝ, M, t=(Aℝ‖(A0+H(0‖t)G+HK(M))∈
Ti为敌手A的1个G陷门, 其通过零行填充可扩展到Aℝ, M, t的1个G陷门, 且s1(Ti)≤
定理1 本文格上可编程哈希函数的环签名方案满足完全匿名性。
证明 对本文方案匿名性的证明过程如下:
1) 假设存在PPT内的敌手A和挑战者C, 挑战者C运用方案中的陷门生成TrapGen(1n, 1m, q, In)算法, 输出公开验证密钥vki=(Ai, A0, u, K)和签名私钥ski=Ti, 挑战者C将系统参数发送给敌手A。
2) 敌手A向挑战者C提出环成员集合ℝ和消息M∈{0, 1}n的签名询问, 挑战者C执行签名方案的签名步骤, 即执行Sign(ski, ℝ, M), 挑战者C将得到的签名结果返回给敌手A。
3) 敌手A适应性选择询问用户i < l的相应私钥, 挑战者C返回Bi。
4) 挑战者C向敌手A提交消息M∈{0, 1}n、环成员集合ℝ和用户i0、i1的身份, 挑战者C随机选取b∈{0, 1}, 输入ib对应的私钥Tb, 并执行Sample(Ti, Aℝ, M, t, In, u, s)算法得到签名σb返回给敌手A。
5) 敌手A输出身份猜测b′。
上述匿名性证明过程中用户i0、i1的签名分别为σ1、σ2, 由于σ1和σ2为从DΛu⊥(Aℝ, M, t), S中利用高斯抽样算法得到, 具有相同分布且两者之间的统计距离可忽略不计, σ1和σ2不可区分, 敌手A赢得该游戏的优势可忽略, 因此本文方案满足完全匿名性。
3.2 不可伪造性分析为对本文方案进行不可伪造性分析,将系统参数设置为:1, m, n, q, v∈
证明 对本文方案不可伪造性的证明过程如下:
给出算法B的结构并模拟伪造者F的攻击环境, 有至少
1) 密钥生成(KeyGen)。给出ISISq, m, β问题的挑战实例(Ai, u)∈
2) 签名过程(Signing)。给出消息M, 通过算法B随机地选取标签t←r{0, 1}1, 如果t被用来回答超过v个消息的签名, 则算法B中止, 否则计算(TM, SM)=H.TrapEval(td, K′, M), 得到Aℝ, M, t=(Aℝ‖(A0+H(0‖t)G)+HK′(M))=(Aℝ‖Aℝ(T0+TM)+(H(0‖t)-H(0‖t′)+SM)G)。由于SM=bIn=H(b‖0), 其中b∈{-1, 0, 1}, 因此存在Ŝ=H(0‖t)-H(0‖t′)+SM=H(b‖(t-t′))。算法B需区分以下情况:
(1) t≠t′或者t=t′∧b≠0。在该情况下, Ŝ可逆,
(2) t=t′∧b=0:算法B停止。
3) 伪造(Forge)。在进行最多Q次签名询问后, 伪造者F输出消息M*∈{0, 1}n的伪造签名σ*=(e*, t*), 从而有‖e*‖≤
由ISISq, m, β问题的定义可知(Ai, u)均匀分布于
假设全部消息M1, M2, …, Mu在回答签名查询时, 通过算法B使用相同标签t=t′, 对于i∈{1, 2, …, u}使得(TMi, SMi)=H.TrapEval(td, K′, Mi), 给出2个条件:1)某些标签t用于回答超过v个消息的签名; 2)SMi对于某些i∈{1, 2, …, u}不可逆, 当SM*≠0或者t*≠t成立时, 模拟过程中止。
伪造者F最多进行Q=poly(n)次签名询问, 选择1=O(lb n)得到
证明ê=(Im‖
本文利用格上可编程哈希函数的特殊性质设计出一种在标准模型下可证明安全性的环签名方案, 并以验证密钥长度、签名密钥长度、签名长度以及基于格上的困难问题作为方案效率评价指标, 将本文方案与文献[15-17]中格上同类型环签名方案进行对比, 结果如表 1所示。
![]() |
下载CSV 表 1 4种格上环签名方案评价指标比较结果 Table 1 Evaluation index comparison results of four ring signature schemes on lattices |
在计算验证密钥长度、签名密钥长度和签名长度时, 文献[15]方案和文献[16]方案采用随机矩阵陷门函数[11], 而本文方案和文献[17]方案采用G矩阵陷门函数[10], 该陷门函数在生成过程中不涉及代价较高的矩阵求逆操作, 计算复杂度相当于2个随机矩阵的1次乘运算, 陷门生成过程较简单。此外, 由于陷门采用原像采样算法, 该算法支持并行运算且输入项为小整数, 对离散空间需求较低, 因此本文方案的验证密钥长度、签名密钥长度、签名长度均小于文献[15]方案和文献[16]方案。此外, 文献[15]方案和文献[16]方案的陷门参数
格上可编程哈希函数能模拟随机预言机部分可编程性质, 通过格上分区证明方式直接应用于签名构造和安全性验证。本文提出一种新的格上可编程哈希函数环签名方案, 利用MP12陷门函数生成陷门, 将可编程哈希函数应用到环签名构造中, 进而形成验证密钥、签名密钥和签名。分析结果表明, 该方案所得签名和密钥较其他格上环签名方案更短, 且在标准模型下满足EUF-CMA安全要求。后续将研究如何在保持签名密钥和签名长度不变的情况下, 缩短验证密钥长度并提高效率, 同时考虑将本文方案推广到基于身份的环签名方案中, 以得到更短的签名和密钥。
[1] |
RIVEST R L, SHAMIR A, TAUMAN Y.How to leak a secret[C]//Proceedings of the 7th International Conference on Theory and Application of Cryptology and Information Security.Berlin, Germany: Springer, 2001: 21-28.
|
[2] |
DODIS Y, KIAYIAS A, NICOLOSI A, et al.Anonymous identification in ad-hoc groups[C]//Proceedings of EUROCRYPT'04.Berlin, Germany: Springer, 2004: 609-626.
|
[3] |
BENDER A, KATZ J, MORSELLI R.Ring signatures: stronger definitions, and constructions without random oracles[EB/OL].[2019-08-10].https://www.iacr.org/cryptodb/data/paper.php?pubkey=12638.
|
[4] |
ABE M, OHKUBO M, SUZUKI K.L-out-of-n signatures from a variety of keys[C]//Proceedings of International Conference on the Theory and Application of Cryptology and Information Security.Berlin, Germany: Springer, 2002: 65-73.
|
[5] |
HERRANZ J, GERMAN S. Forking lemmas for ring signature schemes[J]. Journal of Management Studies, 2003, 2904(2): 266-279. |
[6] |
ZHANG F, SAFAVINAINI R, SUSILO W.An efficient signature scheme from bilinear pairings and its applications[C]//Proceedings of PKC'04.Berlin, Germany: Springer, 2004: 277-290.
|
[7] |
SHACHAM H, WATERS B. Efficient ring signatures without random oracles[J]. Public Key Cryptography, 2007, 3352(2): 166-180. |
[8] |
NGUYEN L.Accumulators from bilinear pairings and applications[C]//Proceedings of CT-RSA'05.Berlin, Germany: Springer, 2005: 275-292.
|
[9] |
SHOR P W. Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer[J]. SIAM Review, 1999, 41(2): 303-332. DOI:10.1137/S0036144598347011 |
[10] |
MICCIANCIO D, PEIKERT C.Trapdoors for lattices: simpler, tighter, faster, smaller[C]//Proceedings of EUROCRYPT'12.Berlin, Germany: Springer, 2012: 700-718.
|
[11] |
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.New York, USA: ACM Press, 2008: 32-37.
|
[12] |
LI Zichen, LIANG Lan, SUN Yafei. Digital certificate scheme based on lattice signature algorithm[J]. Journal of Cryptologic Research, 2018, 5(1): 13-20. (in Chinese) 李子臣, 梁斓, 孙亚飞. 一种基于格签名算法的数字证书方案[J]. 密码学报, 2018, 5(1): 13-20. |
[13] |
JIA Xiaoying, HE Debiao, XU Zhiyan, et al. An efficient identity-based ring signature scheme over a lattice[J]. Journal of Cryptologic Research, 2017, 4(4): 392-404. (in Chinese) 贾小英, 何德彪, 许芷岩, 等. 格上高效的基于身份的环签名体制[J]. 密码学报, 2017, 4(4): 392-404. |
[14] |
CASH D, HOFHEINZ D, KILTZ E, et al.Bonsai trees, or how to delegate a lattice basis[C]//Proceedings of 2010 International Conference on Theory and Applications of Cryptographic Techniques.Berlin, Germany: Springer, 2010: 62-68.
|
[15] |
WANG Jin, SUN Bo.Ring signature schemes from lattice basis delegation[C]//Proceedings of the 13th Conference on Information and Communications Security.Berlin, Germany: Springer, 2011: 15-28.
|
[16] |
TIAN Miaomiao, HUANG Liusheng, YANG Wei. Efficient lattice-based ring signature scheme[J]. Chinese Journal of Computers, 2012, 35(4): 712-718. (in Chinese) 田苗苗, 黄刘生, 杨威. 高效的基于格的环签名方案[J]. 计算机学报, 2012, 35(4): 712-718. |
[17] |
Rena Ehmet, ZHANG Juan, LI Wei, et al. An improvement of a ring signature scheme based on lattices[J]. Journal of Xiamen University(Natural Science Edtion), 2018, 57(2): 238-242. (in Chinese) 热娜·艾合买提, 张娟, 李伟, 等. 一个基于格的环签名方案的改进[J]. 厦门大学学报(自然科学版), 2018, 57(2): 238-242. |
[18] |
HOFHEINZ D, KILTZ E.Programmable Hash functions and their applications[EB/OL].[2019-08-10].https://link.springer.com/article/10.1007/s00145-011-9102-5.
|
[19] |
HOFHEINZ D, JAGER T, KILTZ E.Short signatures from weaker assumptions[C]//Proceedings of ASIACRYPT'11.Berlin, Germany: Springer, 2011: 647-666.
|
[20] |
WANG Zhiwei. Short signature based on programmable Hash functions[J]. SCIENTIA SINICA Informationis, 2013, 43(3): 335-342. (in Chinese) 王志伟. 基于可编程Hash函数的短签名[J]. 中国科学(信息科学), 2013, 43(3): 335-342. |
[21] |
ZHANG Jiang, CHEN Yu, ZHANG Zhenfeng.Programmable Hash functions from lattices: short signatures and IBEs with small key sizes[C]//Proceedings of CRYPTO'16.Berlin, Germany: Springer, 2016: 303-332.
|