密码学-1-数字签名体制 |
密码学-2-RSA签名验签方案 |
写在前面
1 数字签名
1.1 什么是数字签名
1.2 数字签名的作用
1.3 数字签名的特性
1.4 数字签名的算法
2 数字签名的原理
2.1 签名过程:创建数字签名
2.2 验证过程:验证数字签名
写在前面
本文详细解释了数字签名的体制,原理及其应用场景。
1 数字签名
1.1 什么是数字签名
数字签名,是只有信息的sender才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术来实现,用于电子信息世界中,鉴别数字信息真实性的方法。
数字签名体制(见文章开头图)定义两种算法,签名+验证。数字签名是基于非对称密钥加密技术与数字摘要技术的应用。
1.2 数字签名的作用
上例子:消息加密和数字签名
消息加密:对传输的信息进行加密,能够保证数据的保密性,但如果sender在发送某个信息之后,抵赖说不是其发送的,一般的通信消息还好,如果是合同之类的重要文件,造成的影响是十分巨大的。因此,为了防止这种情况,引出了数字签名。
数字签名:作用跟手写签名其实是一样的,用来证明某个消息或者文件是其本人发出/认同的。我国在2005年就已经施行《电子签名法》,确立了电子签名(包括但不限于数字签名)的法律效力。
1.3 数字签名的特性
不可伪造 | 除了签名者外,任何人都不能伪造签名着的合法签名 |
不可修改性 | 一个消息在签名后,不能再次被修改 |
不可抵赖 | 签名者事后不能否认自己的签名 |
1.4 数字签名的算法
从1.1节中得知:数字签名是基于非对称密钥加密技术与数字摘要技术的应用。那么算法也将从这种技术进行分析,扩展算法信息之后的数字签名体制如下:
2 数字签名的原理
2.1 签名过程:创建数字签名
2.2 验证过程:验证数字签名
写在最后:本文中的内容仅仅是通用数字签名流程,所以有些内容可能会和大家实际的实现方案有一定差距。对于相应算法具体的方案实现,将在后续的文章中进行详解。