相信不少开发者开发项目时初次遇到签名验签概念都会疑惑,签名是怎么实现的?如何验签?算法
要弄明白这两个过程首先须要明确如下几个基本概念:加密
一、密钥对:在非对称加密技术中,有两种密钥,即公钥和私钥。开发
二、公钥:公钥用来给数据加密,用公钥加密的数据只能使用私钥解密。程序
三、私钥:用私钥来解密公钥加密的数据。方法
四、摘要:对须要传输的文本,作HASH运算。技术
五、签名:使用私钥对须要传输的文本摘要进行加密,获得的密文即被称为该次传输过程的签名。数据
六、签名验证:数据接收端拿到传输文本,可是须要确认该文本是否就是发送方发出的内容,中途是否曾经被篡改。所以接收方拿本身持有的公钥对签名进行解密,获得了文本的摘要,而后使用与发送方一样的方法对文本计算摘要值,再与解密获得的摘要作对比,发现两者彻底一致,则说明文本没有被篡改过。项目
签名验签过程简述以下:开发者
小明给小丽发送消息,小明先计算出消息的摘要,而后使用本身的私钥加密消息摘要,被加密的消息摘要就是签名。嵌入式
小丽收到消息后,也会使用和小明相同的方法提取消息摘要,而后用小明的公钥解密签名,并与本身计算出来的消息摘要进行比较(这个过程,叫作"验签")。若是相同则说明消息是小明发送给小丽的。同时,小明也没法否定本身发送消息给小丽的事实。
这个过程当中咱们能够发现签名验签过程的三个显著特色:
(1)鉴权。公钥加密系统容许任何人在发送信息时使用公钥进行加密,签名可以让信息接收者确认发送者的身份。
(2)完整性。发送方对要传输的数据作摘要,接收方接收到数据以后再作摘要并对比是否与发送方的结果一致,能够肯定数据是否在线路上已经被篡改。
(3)不可抵赖。接收方能够经过数字签名来防止全部后续的抵赖行为,由于接收方能够出示签名给第三方来证实信息的来源。
数字签名技术的实现方法:
数字签名算法依靠公钥加密技术来实现的。在公钥加密技术里,每个使用者有一对密钥:一把公钥和一把私钥。公钥能够自由发布,但私钥则秘密保存;还有一个要求就是要让经过公钥推算出私钥的作法不可能实现。
LKT系列加密芯片支持国际上通用的对称和非对称算法以及数字签名,还支持客户移植算法以及程序。对于数据加密以及嵌入式版权保护数字签名有需求的开发人员来讲是一个的很好的选择。