考研复习 Day 48 | 密码学--第八章 数字签名与身份认证(上)
注以下内容参考《新编密码学》范九伦 张雪锋 侯红霞 编著第8章 数字签名与身份认证8.1 数字签名原理8.1.1 数字签名的基本概念消息认证码无法防止通信双方之间的互相抵赖和欺骗。例如Alice发送消息并附上消息认证码后可以否认发送过该消息因为Bob也能生成同样的消息认证码Bob也可以伪造消息声称来自Alice。因此需要数字签名技术来提供数据来源的真实性、数据内容的完整性、签名者的不可否认性以及匿名性等服务。数字签名是以公钥密码理论为支撑的技术它将算法作用于需要签名的消息生成带有操作者身份信息的编码。签名者执行数字签名验证者验证签名真伪。数字签名与手书签名的差异手书签名与被签文件物理上不可分离数字签名与消息是可分离的比特串手书签名通过物理比对验证数字签名通过严格算法验证手书签名复制品易与原件区分数字签名拷贝与原串完全相同数字签名至少满足三个基本要求签名者任何时候无法否认自己签发的签名不可否认性接收方能验证签名但任何人无法伪造他人签名真实性与不可伪造性发生争议时仲裁机构可进行裁决数字签名体制是一个五元组(M,S,K,SIG,VER)M消息空间S签名空间K密钥空间签名密钥sksk、验证密钥vkvkSIG签名算法SIGsk(m)sVER验证算法VERvk(m,s){ true,sSIGsk(m) false,s≠SIGsk(m) }8.1.2 数字签名的特性功能特性完整性签名依赖于消息的具体比特模式真实性能够验证签名者身份不可伪造性伪造签名在计算上不可行可用性生成、验证过程简单可在普通设备上快速完成安全性特性单向性从消息和签名推导签名密钥不可行不可抵赖性不同消息的签名相等概率可忽略无相关性从一个消息的签名不能推导出另一个消息的签名8.1.3 数字签名的实现方法基于公钥密码的数字签名发送方用自己的私钥加密消息或消息摘要接收方用发送方公钥解密验证。由于只有发送方拥有私钥因此能证明消息来源。直接数字签名体制仅涉及通信双方依赖于签名者私钥的安全性。弱点私钥泄露后泄露前的签名仍可被伪造签名者可声称私钥泄露而否认签名。可仲裁的数字签名体制引入可信第三方作为仲裁者发送方将签名发送给仲裁者验证后再转给接收方。解决了否认问题但增加了复杂性仲裁者可能成为性能瓶颈。实际应用中的优化先对原始消息进行Hash处理再对Hash码签名提高效率图8-3。8.2 RSA数字签名8.2.1 RSA数字签名算法系统参数与RSA公钥密码相同选取大素数p,q计算np×qφ(n)(p−1)(q−1)选取e满足gcd(e,φ(n))1计算de^(−1) mod φ(n)。公开(n,e)作为验证密钥秘密保存(p,q,d)作为签名密钥。签名sSIGsk(m)m^d mod n验证VERvk(m,s)true ⟺ m≡s^e mod n8.2.2 RSA数字签名的安全问题RSA签名继承了RSA算法的可乘性缺陷面临以下攻击消息破译攻击者可通过选择签名请求恢复明文截取仲裁签名攻击者可修改消息骗取仲裁签名后恢复目标消息签名篡改用户签名若获得两个消息的签名可伪造它们乘积的签名防范措施不能对陌生人提交的消息直接签名应先进行Hash处理。另一种伪造攻击攻击者选任意y计算xy^e mod n则y是合法用户对x的有效签名因为x^dy。因此应避免对无意义的随机消息签名。8.3 ElGamal数字签名ElGamal签名体制基于离散对数问题是专门为数字签名设计的已被NIST采纳为数字签名标准DSS的基础。8.3.1 ElGamal数字签名算法系统参数大素数p使Zp∗上离散对数难解Zp∗的生成元g签名者私钥a公钥yg^a mod p密钥K(p,g,a,y)公钥(p,g,y)私钥a签名对消息m∈Zp随机选取k∈Zp∗且gcd(k,φ(p))1计算rg^k mod ps(m−ar)⋅k^(−1) mod φ(p)签名为(r,s)签名空间为Zp×Zp。验证VER(m,r,s)true ⟺ y^r⋅r^s≡g^m (mod p)正确性若签名正确则y^r⋅r^sg^ar⋅g^ksg^[arks)g^(ark⋅(m−ar)k^(−1)]g^m8.3.2 针对ElGamal签名算法的可能攻击安全性基础依赖于离散对数问题的困难性。使用不当造成的威胁若随机数k泄露攻击者可计算私钥a(m−ks)r^(−1) mod φ(p)若重复使用k对不同消息签名可由两个签名计算出k进而得到a伪造签名攻击存在性伪造选择i,j构造rg^i·y^j计算sr^(j−i)mr^i·r^(j−i)得到有效签名已知消息伪造从已知签名出发通过变换伪造新消息签名选择性伪造利用φ(p)的大素因子q构造签名大r伪造当rp时可伪造任意消息的签名防范措施签名前对消息进行Hash处理验证时检查r不能被φ(p)的大素因子整除验证时检查rp注以上内容的理解和计算如果有任何错误希望各位读者和大佬指出改正非常感谢