考研复习 Day 48 | 密码学--第八章 数字签名与身份认证(上)

注:以下内容参考《新编密码学》范九伦 张雪锋 侯红霞 编著


第8章 数字签名与身份认证

8.1 数字签名原理

8.1.1 数字签名的基本概念

消息认证码无法防止通信双方之间的互相抵赖和欺骗。例如,Alice发送消息并附上消息认证码后,可以否认发送过该消息(因为Bob也能生成同样的消息认证码);Bob也可以伪造消息声称来自Alice。因此,需要数字签名技术来提供数据来源的真实性、数据内容的完整性、签名者的不可否认性以及匿名性等服务。

数字签名是以公钥密码理论为支撑的技术,它将算法作用于需要签名的消息,生成带有操作者身份信息的编码。签名者执行数字签名,验证者验证签名真伪。

数字签名与手书签名的差异

  • 手书签名与被签文件物理上不可分离;数字签名与消息是可分离的比特串

  • 手书签名通过物理比对验证;数字签名通过严格算法验证

  • 手书签名复制品易与原件区分;数字签名拷贝与原串完全相同

数字签名至少满足三个基本要求

  1. 签名者任何时候无法否认自己签发的签名(不可否认性

  2. 接收方能验证签名,但任何人无法伪造他人签名(真实性不可伪造性

  3. 发生争议时,仲裁机构可进行裁决

数字签名体制是一个五元组(M,S,K,SIG,VER):

  • M:消息空间

  • S:签名空间

  • K:密钥空间(签名密钥sksk、验证密钥vkvk)

  • SIG:签名算法,SIGsk(m)=s

  • VER:验证算法,VERvk(m,s)={ true,s=SIGsk(m) false,s≠SIGsk(m) }

8.1.2 数字签名的特性

功能特性

  1. 完整性:签名依赖于消息的具体比特模式

  2. 真实性:能够验证签名者身份

  3. 不可伪造性:伪造签名在计算上不可行

  4. 可用性:生成、验证过程简单,可在普通设备上快速完成

安全性特性

  1. 单向性:从消息和签名推导签名密钥不可行

  2. 不可抵赖性:不同消息的签名相等概率可忽略

  3. 无相关性:从一个消息的签名不能推导出另一个消息的签名

8.1.3 数字签名的实现方法

基于公钥密码的数字签名:发送方用自己的私钥加密消息(或消息摘要),接收方用发送方公钥解密验证。由于只有发送方拥有私钥,因此能证明消息来源。

直接数字签名体制:仅涉及通信双方,依赖于签名者私钥的安全性。弱点:私钥泄露后,泄露前的签名仍可被伪造;签名者可声称私钥泄露而否认签名。

可仲裁的数字签名体制:引入可信第三方作为仲裁者,发送方将签名发送给仲裁者验证后,再转给接收方。解决了否认问题,但增加了复杂性,仲裁者可能成为性能瓶颈。

实际应用中的优化:先对原始消息进行Hash处理,再对Hash码签名,提高效率(图8-3)。


8.2 RSA数字签名

8.2.1 RSA数字签名算法

系统参数与RSA公钥密码相同:选取大素数p,q,计算n=p×q,φ(n)=(p−1)(q−1),选取e满足gcd⁡(e,φ(n))=1,计算d=e^(−1) mod  φ(n)。公开(n,e)作为验证密钥,秘密保存(p,q,d)作为签名密钥。

  • 签名:s=SIGsk(m)=m^d mod  n

  • 验证:VERvk(m,s)=true  ⟺  m≡s^e mod  n

8.2.2 RSA数字签名的安全问题

RSA签名继承了RSA算法的可乘性缺陷,面临以下攻击:

  1. 消息破译:攻击者可通过选择签名请求恢复明文

  2. 截取仲裁签名:攻击者可修改消息,骗取仲裁签名后恢复目标消息签名

  3. 篡改用户签名:若获得两个消息的签名,可伪造它们乘积的签名

防范措施:不能对陌生人提交的消息直接签名,应先进行Hash处理。

另一种伪造攻击:攻击者选任意y,计算x=y^e mod  n,则y是合法用户对x的有效签名(因为x^d=y)。因此,应避免对无意义的随机消息签名。


8.3 ElGamal数字签名

ElGamal签名体制基于离散对数问题,是专门为数字签名设计的,已被NIST采纳为数字签名标准(DSS)的基础。

8.3.1 ElGamal数字签名算法

系统参数

  • 大素数p,使Zp∗上离散对数难解

  • Zp∗的生成元g

  • 签名者私钥a,公钥y=g^a mod  p

  • 密钥K=(p,g,a,y),公钥(p,g,y),私钥a

签名:对消息m∈Zp,随机选取k∈Zp∗且gcd⁡(k,φ(p))=1,计算

r=g^k mod  p

s=(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^s=g^ar⋅g^ks=g^ar+ks)=g\^(ar+k⋅(m−ar)k\^(−1)=g^m

8.3.2 针对ElGamal签名算法的可能攻击

安全性基础:依赖于离散对数问题的困难性。

使用不当造成的威胁

  1. 若随机数k泄露,攻击者可计算私钥a=(m−ks)r^(−1) mod  φ(p)

  2. 若重复使用k对不同消息签名,可由两个签名计算出k,进而得到a

伪造签名攻击

  1. 存在性伪造:选择i,j,构造r=g^i·y^j,计算s=r^(j−i),m=r^i·r^(j−i),得到有效签名

  2. 已知消息伪造:从已知签名出发,通过变换伪造新消息签名

  3. 选择性伪造:利用φ(p)的大素因子q构造签名

  4. 大r伪造:当r>p时,可伪造任意消息的签名

防范措施

  • 签名前对消息进行Hash处理

  • 验证时检查r不能被φ(p)的大素因子整除

  • 验证时检查r<p


注:以上内容的理解和计算,如果有任何错误,希望各位读者和大佬指出改正,非常感谢!!!

相关推荐
humors22118 小时前
四种字母密码表示法
安全·网络安全·密码学
如君愿18 小时前
考研复习 Day 47 | 密码学--第七章 公钥密码(下)
考研·密码学·课后习题
humors2211 天前
六位数字密码表示
安全·网络安全·密码学
酉鬼女又兒1 天前
零基础快速入门IP编址计算练习题详解:从基础到实战
网络·网络协议·tcp/ip·计算机网络·考研·职场和发展·分类
酉鬼女又兒2 天前
零基础入门计算机网络可靠传输:从基本概念到三大实现机制(停止 - 等待 / 回退 N 帧 / 选择重传)全解析
网络·网络协议·计算机网络·考研·职场和发展·计算机外设·求职招聘
酉鬼女又兒2 天前
零基础入门计算机网络数据链路层:从基本概念、封装成帧到差错检测核心原理全解析
服务器·网络·网络协议·tcp/ip·计算机网络·考研·职场和发展
05候补工程师2 天前
【408 数据结构】图论核心算法(拓扑/关键路径)与二叉搜索树精髓夺分笔记
数据结构·经验分享·笔记·考研·算法·图论
海兰2 天前
【小程序】考研英语词汇 Flashcard — 详细设计
考研·小程序
下午写HelloWorld3 天前
同态加密(Homomorphic Encryption, HE)
人工智能·算法·密码学·同态加密