xiaoyuzhou1228

简述签名验签

0
阅读(1765)

相信很多开发者开发项目时初次遇到签名验签概念都会疑惑,签名是怎么实现的?如何验签?

要弄明白这两个过程首先需要明确以下几个基本概念:

1、密钥对:在非对称加密技术中,有两种密钥,即公钥和私钥。

2、公钥:公钥用来给数据加密,用公钥加密的数据只能使用私钥解密。

3、私钥:用私钥来解密公钥加密的数据。

4、摘要:对需要传输的文本,做HASH运算。

5、签名:使用私钥对需要传输的文本摘要进行加密,得到的密文即被称为该次传输过程的签名。

6、签名验证:数据接收端拿到传输文本,但是需要确认该文本是否就是发送方发出的内容,中途是否曾经被篡改。因此接收方拿自己持有的公钥对签名进行解密,得到了文本的摘要,然后使用与发送方同样的方法对文本计算摘要值,再与解密得到的摘要做对比,发现二者完全一致,则说明文本没有被篡改过。

签名验签过程简述如下:

小明给小丽发送消息,小明先计算出消息的摘要,然后使用自己的私钥加密消息摘要,被加密的消息摘要就是签名。

小丽收到消息后,也会使用和小明相同的方法提取消息摘要,然后用小明的公钥解密签名,并与自己计算出来的消息摘要进行比较(这个过程,叫做"验签")。如果相同则说明消息是小明发送给小丽的。同时,小明也无法否认自己发送消息给小丽的事实。

这个过程中我们可以发现签名验签过程的三个显著特点:

(1)鉴权。公钥加密系统允许任何人在发送信息时使用公钥进行加密,签名能够让信息接收者确认发送者的身份。

(2)完整性。发送方对要传输的数据做摘要,接收方接收到数据之后再做摘要并对比是否与发送方的结果一致,可以确定数据是否在线路上已经被篡改。

(3)不可抵赖。接收方可以通过数字签名来防止所有后续的抵赖行为,因为接收方可以出示签名给第三方来证明信息的来源。

数字签名技术的实现方法:

数字签名算法依靠公钥加密技术来实现的。在公钥加密技术里,每一个使用者有一对密钥:一把公钥和一把私钥。公钥可以自由发布,但私钥则秘密保存;还有一个要求就是要让通过公钥推算出私钥的做法不可能实现。

LKT系列加密芯片支持国际上通用的对称和非对称算法以及数字签名,还支持客户移植算法以及程序。对于数据加密以及嵌入式版权保护数字签名有需求的开发人员来说是一个的很好的选择。