2. 武警部队网络与信息安全保密重点实验室 西安 710086
2. Key laboratory of Network and Information Security, Chinese People's Armed Police Force, Xi'an Shaanxi 710086, China
LIU Mingye, born in 1991. M. S. candidate. His research interests include public key cryptography.
HAN Yiliang, born in 1977. Ph. D., associate professor. His research interests include cryptography.
YANG Xiaoyuan, born in 1959. M. S., professor. His research interests include cryptography, trusted computing.
现在广泛使用的密码方案,如RSA(Rivest-Shamir-Adleman)、Elgamal、椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm, ECDSA),容易受到量子计算机的攻击威胁,使用其他密码系统代替现有的公钥密码系统已经非常迫切。在众多的抗量子密码体制中,基于编码的公钥密码体制被认为是最有希望的方案之一。
McEliece公钥密码[1]是第一个基于编码的公钥密码体制,其安全性依赖于编码学当中的一般译码问题,这是一个NPC(Nondeterministic Polynomial Completeness)问题。与RSA方案相比,该密码体制能抵抗量子计算机攻击而且加解密速度快;但该方案也有很明显的弱点,一是它的公钥量太大,二是其信息率较低,大约只有50%[2]。
针对原始McEliece体制的弱点,为了推动基于编码密码体制的应用,密码学家在减少McEliece密码的公钥量方面作了很多尝试。一个可行的办法是使用其他的编码代替原始方案中的Goppa码,其中低密度奇偶检验(Low-Density Parity-Check,LDPC)码受到了较多的关注[3-5]。
随着量子计算机的快速发展,广泛使用的数字签名算法(Digital Signature Algorithm, DSA)签名和RSA签名也变得不安全,目前替代方案较少,例如基于哈希函数的签名。基于编码的签名是另一个能代替DSA签名和RSA签名的抗量子签名方案,目前高效的基于编码的签名方案较少,所以具有较大的研究空间。
2013年,Baldi提出了一个基于LDGM码的签名方案[6],在这之前,基于编码的签名方案主要是CFS签名[7]及其相应的延伸方案。该方案具有易于实现和公钥量低的优点,克服了CFS签名方案的两个弱点:一是难于实现,即对于任意一个哈希值,把它作为一个伴随式不一定能译出相应的错误向量作为数字签名;二是签名的公钥量太大。
然而,Baldi提出的这个签名方案并不是可证明安全的。本文对基于LDGM码签名方案的密钥进行改造,并结合签密理论,提出了一个可证明安全的基于LDGM码的签密方案。安全性分析表明,方案满足随机预言模型下的适应性选择密文攻击下的不可区分性(INDistinguishability under Adaptive Chosen Ciphertext Attacks, IND-CCA2)安全和选择消息攻击下存在性不可伪造(Existential UnForgeability under Chosen Message Attacks, EUF-CMA)安全,并且密文量和公钥量比传统的“先加密后签名”有较大的下降。
1 预备知识随着量子计算机的快速发展,基于大整数分解的密码体制如RSA和基于离散对数的密码体制如Elgamal的安全性受到了巨大的挑战。而基于编码的密码体制所基于的困难问题是NPC问题,具有抗量子攻击的天然优势。
1.1 困难性假设线性码的一般译码问题(Genenral Decoding):
输入:正整数n, k, t;一个二元[n, k]线性码C⊆F2n,由其生成矩阵G∈F2k×n定义;一个向量c⊆F2n。
问题:是否存在一个向量m⊆F2k,满足c=mG+e,且w(e)≤t?
伴随式译码问题(Syndrome Decoding):输入:正整数n, k, t;一个二元[n, k]线性码C⊆F2n,由其校验矩阵H∈F2r×n定义,其中r=n-k;一个向量s∈F2r。
问题:是否存在一个向量e⊆F2n,满足HeT=sT, 并且w(e)≤t?
这是编码问题中两个著名的NPC问题[8],基于编码密码体制的安全性可以归约到这两个困难问题上。
1.2 基于LDGM码的签名方案 1.2.1 LDGM码LDGM码是一类特殊的编码,它和LDPC码有着紧密的联系,它们之间的区别在于LDGM码要求由稀疏的生成矩阵来定义,而对校验矩阵则没有稀疏的要求,LDPC码则刚好相反。LDGM码被应用于通信传输由来已久[9],当用于级联码方案时,可以实现很好的纠错能力[10-11]。
码长为n,维度为k的LDGM码,其生成矩阵的形式为:
$ \boldsymbol{G} = \left[ {{\boldsymbol{I}_k}|\boldsymbol{D}} \right] $ |
其中:Ik为k×k阶单位矩阵,D是一个稀疏的k×r阶矩阵。按照这种方式定义的LDGM码是系统码,其校验矩阵为:
$ \boldsymbol{H} = \left[ {{\boldsymbol{D}^T}|{\boldsymbol{I}_r}} \right] $ |
也具备系统码的形式,其中T表示对矩阵的转置,Ir是一个r×r阶的单位矩阵,r=n-k。
LDGM码的生成矩阵G的行重与列重相等,行与列当中元素“1”的个数很小(稀疏性要求),并且任意两行或列之间对应位相同的“1”的个数不超过1(行列约束条件)。其生成矩阵G的行是k个长度为n,Hamming重量wg < < n的线性无关的向量。
1.2.2 基于LDGM码的签名方案Baldi等[6]提出了第一个基于LDGM码的数字签名方案。该数字签名方案基于一个事实,即对于任意一个r维向量s,在一个系统码中,把它作为一个伴随式,总能找到一个错误向量与之相对应。这是因为系统码的校验矩阵总能写成系统的形式,即H=[P|I]。其中P是一个r×k阶矩阵,I是一个r维单位矩阵,所以任意的伴随式s可以利用H与错误向量es相乘得到,即HesT=s,其中es=[01×k|sT],01×k是一个k维零向量。
基于这个结论,文献[6]中的签名方案如下:
1) 选择一个公开的哈希函数,h:{0, 1}*→F2r,将任意长度的消息m转化为一个r维向量s。
2) 签名者选择一个秘密的LDGM码C(n, k),通过其稀疏矩阵Gk×n来定义,并计算出其相应的校验矩阵H。
3) 签名者选择两个可逆矩阵Q和S,其阶分别为r×r和n×n。H、Q和S均为私钥,其公钥为H′=Q-1HS-1。
4) 计算出s′=Qs,由于H是系统形式的,因此签名者很容易找到其相应的错误向量,设为e,满足HeT=s′。
5) 签名者随机选择码字c∈C,最终,得到签名:e′=(e+c)ST。
6) 验证者计算H′e′T=Q-1HS-1·S·(eT+cT)=Q-1H·(eT+cT)=Q-1HeT=Q-1s′=s,将H′e′T与h(m)作对比,若相等,则接受此消息,否则拒绝此消息。
该签名算法能克服CFS签名算法实现困难、公钥量大的缺点,同时又保留了基于编码密码系统的安全性,是抗量子密码系统的一个重大突破。
1.3 基于LDGM码签密的定义与安全模型定义1 对于指定的安全参数1k,一个签密算法包含以下3个步骤:
密钥生成(Kg): (pk, sk)←Kg(1k),使用安全参数k生成相应的公私钥对(pk, sk)。
签密(SC):σ←SC(1k, m, skS, pkR),一个概率多项式时间(Probabilistic Polynomial Time, PPT)算法,输入安全参数k.,消息m∈M,发送者私钥skS,接收者公钥pkR,输出签密文。
解签密(DeSC): ((m, s), Accept)/Reject←DeSC(1k, σ, skR, pkS),包含以下两个阶段。
阶段1 输入k、签密文σ、skR,进行解签密,得到被签名的消息m,可验证的签名s(从σ中提取出来)。
阶段2 输入阶段1中得到的m和σ,用发送方公钥pkS进行验证,输出Accept或者Reject。
基于LDGM码的签密方案的安全模型由机密性攻击游戏和不可伪造性攻击游戏组成。
定义2 机密性。如果不存在能以不可忽略的优势赢得以下游戏的PPT敌手
2)
签密预言机:
解签密预言机:
3)
4)
5) 最后,
定义3 不可伪造性。如果不存在PPT算法
1) 前两步与机密性游戏类似。
2) 伪造算法
①DeSC(σ, skR, pkU)返回一个元组(m, s),在用验证密钥pkU对该元组进行验证时,它可以通过验证;
②σ不是签密预言机的输出。
2 基于LDGM码的签密方案借鉴“一石二鸟”方案[12]的设计思想,使用共用随机数的方法,提出本文的基于LDGM码的签密方案。
2.1 参数选择安全参数设为(
1) 选取一个[n, k, 2t+1]的二元LDGM码,其中n, k由安全参数
2) 定义n′=n-k+1。
3) 抗碰撞的哈希函数
对于用户U,密钥生成包含以下步骤:
1) 选取二元(n, k, t)LDGM码生成矩阵Gk×n,并计算出相应的校验矩阵H(n-k)×n。
2) 随机选取一个n×n阶置换矩阵PU。
3) 选取bU∈R F2n。
4) 随机选取H′U∈F2(n-k)×n′,Q′U∈F2n′×(n-k), Q′U是满秩的,然后计算QU=H′UQ′U。
5) 选取一个向量aU,使得H′UaUT=0。
6) 计算公钥
私钥:HU, PU, QU, H′U;公钥:
SC(m, HS, PS, QS, H′S,
对一个消息m∈{0, 1}n进行签密,发送方记为S,接收方记为R。
m′1←
m1←H′Sm1T;
s1←PSTDecodeHS(QS-1m1T);
由于HS是一个具有系统形式的LDGM码,因此,对于任意的Qs-1m1,总能译码相应的错误向量,不需要进行重复的尝试,且有m′1=H′Ss1T。
U←
V←m⊕
发送签密文σ=(U, V, s1)。
DeSC(σ, HR, PR, QR, H′R,
收到签密文之后,接收方R进行如下的操作:
U′←H′RUT;
r′←PRTDecodeHR(QR-1U′T);
如果U≠
如果
签密方案的验证思路是先用接收方的私钥解密出明文,再用发送方的公钥进行数据完整性认证。
1) 先验证m′1=
首先由s1T←PSTDecodeHS(Qs-1m1T),可得QSHSPSs1T=H′Sm′1T; 对于m′1=
H′S(Q′SHSPS⊕aTb)s1T=(H′SQ′SHSPS⊕aTb)s1T=QSHSPSs1T⊕H′SaTb s1T=QSHSPSs1T(H′SaT=0)=H′Sm′1T 证毕。
2) 收到签密文后,先解密出随机向量r′,而后验证如果r′=r,则有UT=′
QR-1H′R
即如果UT=
3) 在解密出随机向量r′之后,就要可以利用公开的哈希函数进行简单的异或运算解密出明文m′,再验证
本方案的安全性证明以定义2和定义3所给出的安全模型为基础,并在随机预言机下进行证明。
定理1 机密性。如果伴随式译码(Syndrome Decoding, SD)是困难的,则在随机预言机模型下,本方案在适应性选择密文攻击下具有不可区分性,即能够满足IND-CCA2安全。
证明 通过一系列的挑战游戏Game0, Game1, …, 构造一个挑战者
用
为了应对敌手对四个预言机的访问,建立四张表
1)
2)
3) σlist包含形如(m, σ=(U, V, s))的条目。
4) 表Λ包含的是特定随机向量r的目录,这些随机向量与(m,
Game0 这是标准的IND-CCA2挑战游戏。通过运行方案中的密钥生成算法,生成私钥(QU, HU, PU, H′U), 其中HU←LDGM(n, t),公钥为
Game1 在这个游戏中,对哈希预言机
对于
输入:一个元组(m, r,
输出:一个伴随式x。
if r≠Λ(m,
if s1≠⊥then
x←
end
return
else
if x=⊥then
x←
end
return
end
对于预言机
Game2 模拟签密预言机,过程如下:
输入:元组(m,
输出:一个签密文σ=(U, V, s1)。
if Λ(m,
end
((x, s1), s1)←
if (s1=⊥) then abort
else
r←Λ(m,
V=m⊕
end
Return σ=(U, V, s1)。
s1其实是在公钥
Game3 模拟解签密预言机。对(s1, U, V,
1) 挑战者在表
2) m′←V⊕X。
3) 挑战者在表
4) 挑战者验证
在上述的游戏中,如果挑战者终止服务,则表明敌手伪造了一个签密文并且没有对哈希预言机进行询问。因此,挑战者终止服务的概率为qd/2l。这个情况不会在Game2中出现。因此,对于事件X3,可以得到:
$ \left| {\Pr \left[ {{X_3}} \right] - \Pr \left\{ {{X_2}} \right\}} \right| \leqslant {q_d}/{2^l} $ |
Game4 挑战密钥生成算法。敌手可以获得除了U之外所有用户的私钥。因此,对于其他的用户,密钥生成如方案所示,并将其传送给敌手。对于用户U,
$ \left| {\Pr \left[ {{X_3}} \right] - \Pr \left\{ {{X_4}} \right\}} \right| \leqslant negl\left( n \right) $ |
其中X4表示
Game5 挑战密文。挑战者选取消息mb,按照如下操作进行挑战,这有助于敌手破解SD问题的实例。挑战者希望找到r∈F2n,且w(r)≤t,使得RrT=RsT。挑战者生成挑战密文:
1)
2) 敌手询问
3) 挑战者
同样地,挑战者需要通过以下的方式来改变对哈希函数询问的应答:
1) 对
2) 对
如果用X5表示敌手
Game6 挑战密文。在这个游戏中,挑战者
综上所述,
定理2 不可伪造性。如果伴随式译码问题是NPC问题,则在随机预言机模型下,基于LDGM码的签密方案可归约到SD问题,在适应性选择消息攻击下满足不可伪造性(即满足EUF-CMA安全)。
证明 同样通过构造攻击游戏来证明不可伪造性。用
为了记录哈希询问和签名询问,建立列表
1)
2) 签名列表σlist包含形如(m, σ=(s, r))的记录。
3) 表Λ包含的是特定随机向量r的目录,这些随机向量与(m, r)一一对应,相应的r记为r=Λ(m),应满足
Game0 挑战者根据EUF-CMA游戏来运行实际的方案。公私钥对通过运行密钥生成算法取得,私钥(QS, HS, PS, H′S),其中H←LDGM(n, k),公钥
Game1 模拟哈希预言机。在这个游戏中,模拟预言机
对
输入:一个元组(m, r)。
输出:一个伴随式x。
if r≠Λ(m) then
if s=⊥ then
x←
s←⊥
end
return
else
if x=⊥then
x←
s←s1,
end
return
end
当在Game1中模拟预言机时,预言机输出的分布和Game1中的输出分布相同。因此Pr[X1]=Pr[X0]。
Game2 模拟签名预言机。签密预言机的模拟如下:
输入:长为l的消息m。
输出:一个签名σ=(s1, r)。
if Λ(m)=⊥ then
Λ(m)←r
end
((x, s1), s1)←
if (s1=⊥) then abort
else
r←Λ(m)
Λ(m)←⊥
return σ=(s1, r)
根据验证算法,由签名预言机生成的签名是有效的,因此满足
在游戏2中,当访问到某些r被赋值为Λ(m)的元组(m, r)时,会发生碰撞,这种事件发生的概率为qS/2n。用X2表示敌手
Game3 改变密钥生成算法。将伴随式译码问题需要求解的校验矩阵R,作为私钥即H=R。公钥是
Game4 在这个游戏中,挑战者改变赢得游戏的条件。挑战者首先选择
$ \Pr \left[ {{X_4}} \right] = \frac{{\Pr \left[ {{X_3}} \right]}}{{{q_s} + {q_{\mathscr{G}}} + 1}}. $ |
Game5 在这个游戏中,挑战者更改随机预言机,为了在第c次询问时获得一个随机伴随式c′=R′sT(w(s)≥t)。用X5表示敌手
综合以上5个攻击游戏,可得:
$ Suc{c^{{\text{euf}} - {\text{cma}}}}\left( {\mathscr{F}} \right) \leqslant {q_s}/{2^n} + \left( {qs + {q_{\mathscr{G}}} + 1} \right)Adv_C^{SD}\left( {n,k} \right). $ |
因此,敌手伪造签名的概率受到挑战者求解伴随式译码问题的限制,这意味着只要相应的伴随式译码问题是难以求解的,签名是不可伪造的,即满足EUF-CMA安全。
4 效率分析本方案使用低密度生成矩阵码(LDGM)进行签名,能同时保证消息的机密性和完整性,比传统的先签名后加密的方法效率更高。签密方案的设计主要在于其中的签名部分,本方案的签名部分使用的是LDGM码,与使用Goppa码的CFS签名相比,可以直接译码,不需要多次尝试即可译出相应的错误向量作为签名;而且密钥量得到了很大的降低,签密在保证机密性和可认证性方面使用的是相同的一个密钥对,可以减少先签名后加密带来的密钥量增加。
1) 签名计算复杂度。
签名的基本思路是将明文的哈希值当作一个伴随式(校验子),对其进行译码,找出相对应的错误向量,将其作为签名。由于CFS签名方案使用的是Goppa码,因此平均需要进行t!次译码尝试,才能找到可译码的伴随式,而本签名方案使用基于LDGM码的签名算法,对任意的伴随式都可以直接译出相对应的错误向量,因此,仅需进行1次译码操作。
2) 数据量。
在CFS签名方案中,为了使伪造攻击的计算复杂度达到O(280),需要使用的Goppa码码长为n=221,校验位r=21×10=210,于是每位用户的公钥量为1 152 KB[6];而在本方案中,为了达到相同的安全级别,每位用户所需要的公钥的公钥量为117 KB[6]。因此,本方案的数据量大大减少。
目前在基于编码的密码体系中,为了同时保证消息机密性和完整性,所使用的是先签名后加密的方法,即先使用CFS签名再使用McEliece加密。表 1是就数据量进行比较的结果。
就签密和解签密运算量,与“一石二鸟”方案[12]和SCS方案[13]进行对比,其中,E为模指数运算,H为哈希函数运算,S为对称加(解)密运算,M为矩阵乘运算,D为快速译码算法运算,r为“一石二鸟”方案选取的参数,方案的比较结果如表 2所示。
上述方案中,哈希运算的计算量很小,运算量主要集中在模指数运算、对称加解密和矩阵乘法运算上。在计算机上,矩阵运算速度要远远高于模幂运算。若选取(524,1 024)的矩阵,幂为16、模为1 024 b的模指数,矩阵乘法运算量约为模指数的1/47。因此,本方案比“一石二鸟”和SCS方案[13]计算效率更高。
5 结语基于编码的公钥密钥具有抗量子攻击的特性,量子计算机的快速发展使它备受关注。本文的基于LDGM码的签密方案是在随机预言机模型下构造的,计算机复杂度和数据量有大幅度的降低。但是,设计出标准模型下可证明安全的方案是运用方案的必要条件。并且,基于编码的密码体制将信道编码和加密紧密结合在一起,与通信技术有本质的联系,如何在标准模型下设计可证明安全的签密方案,并应用到移动智能设备上是值得研究的课题。
[1] | MCELIECE R J. A public-key cryptosystem based on algebraic coding theory [EB/OL]. [2015-10-24]. https://www.cs.colorado.edu/~jrblack/class/csci7000/f03/papers/mceliece.pdf. (0) |
[2] | BALDI M. QC-LDPC code-based cryptosystems [M]// BALDI M. QC-LDPC Code-based Cryptography. Berlin: Springer, 2014: 91-117. (0) |
[3] | GEORGIEVA M, DE PORTZAMPARC F. Toward secure imple-mentation of McEliece decryption [C]// MANGARD S, POSCHMANN A Y. Constructive Side-Channel Analysis and Secure Design, LNCS 9064. Berlin: Springer, 2015: 141-156. (0) |
[4] | ZHANGY, YUED W. Public key cryptography based on algebraic geometric codes[J]. Journal on Communications, 2008, 29 (6) : 75-81. (0) |
[5] | BALDI M, BIANCHI M, MATURO N, et al. Improving the efficiency of the LDPC code-based McEliece cryptosystem through irregular codes [C]// Proceedings of the 2013 IEEE Symposium on Computers and Communications. Washington, DC: IEEE Computer Society, 2013: 197-202. (0) |
[6] | BALDI M, BIANCHI M, CHIARALUCE F, et al. Using LDGM codes and sparse syndromes to achieve digital signatures [C]// GABORIT P. Post-Quantum Cryptography, LNCS 7932. Berlin: Springer, 2013: 1-15. (0) |
[7] | COURTOIS N T, FINIASZ M, SENDRIER N. How to achieve a McEliece-based digital signature scheme [C]// BOYD C. Advances in Cryptology—ASIACRYPT 2001, LNCS 2248. Berlin: Springer, 2001: 157-174. (0) |
[8] | BERLEKAMP E R, MCELIECE R J, VAN TILBORG H C A. On the inherent intractability of certain coding problems[J]. IEEE Transactions on Information Theory, 1978, 24 (3) : 384-386. doi: 10.1109/TIT.1978.1055873 (0) |
[9] | CHENG J F, MCELIECE R J. Some high-rate near capacity codecs for the Gaussian channel [EB/OL]. [2015-11-14]. http://xueshu.baidu.com/s?wd=paperuri%3A%282738fdc6421751d8f7b9827de8cdfe23%29&filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Bjsessionid%3DECAFAC735A595F2AB5705FB3150963F3%3Fdoi%3D10.1.1.57.6071%26rep%3Drep1%26type%3Dpdf&ie=utf-8&sc_us=13201804057768292757. (0) |
[10] | GARCIA-FRIAS J, ZHONG W. Approaching Shannon performance by iterative decoding of linear codes with low-density generator matrix[J]. IEEE Communications Letters, 2003, 7 (6) : 266-268. doi: 10.1109/LCOMM.2003.813816 (0) |
[11] | GONZÁLEZ-LÓPEZ M, VAZQUEZ-ARAUJO F J, CASTEDO L, et al. Serially-Concatenated Low-Density Generator Matrix (SCLDGM) codes for transmission over AWGN and Rayleigh fading channels[J]. IEEE Transactions on Wireless Communications, 2007, 6 (8) : 2753-2758. doi: 10.1109/TWC.2007.05283 (0) |
[12] | MALONELEE J, MAO W. Two birds one stone: signcryption using RSA [C]// Topics in Cryptology — CT-RSA 2003. Berlin: Springer, 2003: 211-226. (0) |
[13] | ZHENG Y. Digital signcryption or how to achieve cost (signature & encryption) < < cost (signature)+ cost (encryption) [C]// Advances in Cryptology—Crypto'97, LNCS 1294. Berlin: Springer, 1997: 165-179. (0) |