数字签名:原理、方案与安全考量
1. 数字签名基础
在公钥密码学中,主体可以使用其私钥“加密”消息,生成的“密文”可以使用该主体的公钥“解密”回原始消息。这个“密文”可以作为伴随“加密”消息的操作检测码(MDC),为消息提供数据完整性保护。公钥“解密”过程构成了对 MDC 的验证步骤。
由于公钥是公开的,任何人都可以验证 MDC,但只有使用相应私钥的公钥所有者才能创建该 MDC。因此,公钥密码学可以精确模拟签名的属性,即数字签名,用于证明消息的作者身份。数字签名的实现基于单向陷门函数,Diffie 和 Hellman 最早提出了数字签名的概念。
数字签名方案由以下属性组成:
- 明文消息空间 M:一组基于某个字母表的字符串。
- 签名空间 S:一组可能的签名。
- 签名密钥空间 K:用于创建签名的可能密钥集合。
- 验证密钥空间 K’:用于验证签名的可能密钥集合。
- 高效的密钥生成算法 Gen:生成私钥和公钥。
- 高效的签名算法 Sign:将消息和签名密钥映射到签名空间。
- 高效的验证算法 Verify:根据消息、签名和验证密钥返回验证结果(True 或 False)。
2. 数字签名的教科书安全概念
类似于第 8 章中基本公钥加密算法的教科书安全概念,我们考虑一种非常弱的数字签名方案安全概念。即,如果攻击者无法“从头开始”伪造有效的消息 - 签名对,则认为数字签名是安全的。这里的攻击者是非自适应的,不利用其他可用的消息 - 签名对,也不与目标签名者交互以获取签名。
然而,这种安全概念在实际应用中是不够的。在现实中,消息 - 签名对很容易获取
超级会员免费看
订阅专栏 解锁全文
798

被折叠的 条评论
为什么被折叠?



