xiaoyuzhou1228

简述签名验签

0
阅读(232) 评论(22)

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

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

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

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

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

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

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

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

签名验签过程简述如下:

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

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

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

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

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

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

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

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

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


  1. 是啊,网上一搜好多LKT系列加密芯片,看来这个系列的加密芯片在嵌入式加密和版权保护方面应该做得不错,否则不会大力推广产品的

  2. 现在这个LKT系列的芯片很火啊,我听不少朋友谈到过

  3. 一般来说,加密行业常用的算法都会应用加密芯片来具体实现,而加密芯片对于加解密一般会有协处理器,提高加解密速度,当然数据越长需要的时间也越长,但是已经能满足绝大部分应用场景和需求

  4. 最近开发一款产品需要用到RSA运算,RSA加解密速度快吗?对加密数据长度有要求吗?

  5. 对的,因为私钥是唯一的,不公开的,所以能证明身份。

  6. 是不是只有非对称算法才能实现签名?

  7. 太专业了,刚接触数据加解密方面的知识。很有参考价值谢谢分享。

  8. 我做财务时用过一款加密狗,就是一个财务软件,采用的就是这种加密方式,真的很安全。

  9. 我之前用过他家的一款LKT 4304加密芯片性能还不错,支持SPI、 IIC接口,可以尝试使用一下

  10. 要用什么接口的?IIC、UART、SPI...

  11. 真是踏破铁鞋无觅处啊......我司正在开发一款产品,正好涉及到文中所说的嵌入式版权保护,求大神介绍一款适合的芯片?


  12. 理解的非常正确@dg336699   

    文中说用公钥加密的数据只能使用私钥解密,那用私钥加密的消息摘要是否只能用公钥解密?



  13. 文中说用公钥加密的数据只能使用私钥解密,那用私钥加密的消息摘要是否只能用公钥解密?


  14. 我对这个技术很感兴趣,我会一直关注的


  15. 这么专业,佩服佩服,还是默默的学习吧