- 数据完整性保护之数字签名技术
数字签名先签名后加密与先加密后签名
数字签名是用户对文档的摘要,使用自己的私钥进行加密。
加密之后生成的数字签名,包含对签名者的确认,能够保证数据未被篡改,因为如果篡改了签名,那么使用签名者的公钥解密后得到的是乱码。这就牵涉到摘要是数据的散列函数,散列函数使摘要中一半以上的数字都能反应原数据中的每一位,这样即使只更改了摘要的一位,那么解析出的数据必将与原数据有极大的差别。如果包含时间戳,那就更加不可能被篡改了。
先签名能够保证数据在传输过程中即使被截获,也不能对数据进行更改。签名后使用目标的公钥进行加密,然后传送出去。接收者就能确定这条消息是唯一的发送者发送的,而且消息没有被更改。
数字签名先加密后签名
先加密后签名有一个问题,签名的是加密后的文件,那么如果这条消息被截获,黑客虽然不能对数据进行更改,但可以用签名者的公钥进行解密,取消数字签名。然后用自己的私钥进行签名,伪装这条消息是黑客发的,而不是原来的发送者发的。