- 数字政府网络安全合规性建设指南:密码应用与数据安全
- 姜海舟 王学进等
- 962字
- 2024-06-27 15:57:32
1.3.5 数字签名算法
数字签名算法是实现电子文档或数据的完整性、真实性和抗抵赖性的重要密码技术。数字签名算法使用公钥密码算法的原理,结合数字证书和密码杂凑算法,实现身份验证和消息完整性保护,在网络安全通信的密钥分配、消息鉴别以及电子商务系统中具有重要作用。
《中华人民共和国电子签名法》以法律形式确立了电子签名的法律效力。数字签名是一类基于密码技术的电子签名,具有以下特点。
1)完整性:数字签名提供了对文档的完整性验证,任何对文档内容的篡改都会使签名失效。
2)真实性:数字签名提供了对签名者的身份验证,确保签名来自合法的实体,防止冒名顶替和伪造签名。
3)抗抵赖性:数字签名提供了对签名者的抗抵赖性,即签名者无法否认他已经进行了签名的事实。
4)安全性:数字签名使用了公钥密码技术,确保签名和验证过程中信息的安全性。
一个数字签名体制由以下6部分构成。
1)明文消息空间M:所有待签名消息的集合。
2)签名空间S:所有可能的签名结果的集合。
3)密钥空间K:所有用于签名与验签的密钥对集合。
4)密钥生成算法(sk, pk)←Gen(1λ):给定安全参数λ,能有效生成密钥空间K中的一对公私钥对(sk, pk),其中私钥sk用于签名,公钥pk用于验签。
5)签名算法s=Sign(m,sk):给定消息m∈M及签名私钥sk,能有效计算签名结果s∈S。
6)验签算法{True, False}←Verify(s,pk):给定签名值s及验签公钥pk,能有效验证签名结果的正确性,若签名正确则返回True,若签名错误则返回False。
数字签名体制的安全性基于公私钥对的安全性,即根据公钥难以推出私钥,以及根据消息m及其签名s难以推出签名私钥,伪造一个签名(m',s')使Verify(m',pk)=True是困难的。即使拥有大量的签名信息,攻击者也难以伪造一个新的签名。
数字签名几乎总是和密码杂凑算法结合使用,用于缩短签名长度。首先,使用密码杂凑算法H将待签名消息m转换成消息摘要z=H(m),然后再对消息摘要z进行签名。因密码杂凑算法的抗碰撞特性,即寻找m'使H(m')=(m)是困难的,所以对消息的杂凑值签名,攻击者也难以伪造签名。
为了将验签的公钥与用户身份信息绑定,数字签名体制通常与数字证书结合使用。数字证书由证书认证机构颁发,将签名者公钥与签名者身份进行绑定。验签者通过检查与签名者公钥相关联的数字证书来确保其有效性、完整性和吊销状态等,从而保证该公钥确实属于签名者本人。