密码学概述-数字签名
- 格式:ppt
- 大小:900.00 KB
- 文档页数:39
《密码学》课程设计实验报告实验序号:06 实验项目名称:数字签名RSA签名RSA签名核心代码说明由于在实验报告5中已经对RSA的相关代码进行了分析,这里主要给出签名和验签的代码。
在对某个二进制文件进行签名之前,我们首先需要计算其数据摘要,这里我们采用md5哈希算法,其对应的代码如下md5哈希算法在RSA的签名中,其实就是用私钥进行解密的过程,其对应的代码如下RSA签名其中解密对应的代码如下,pow函数提供了快速幂的功能RSA解密在RSA验签的过程中,其实就是用公钥进行加密的过程,其对应的代码如下RSA验签其中加密对应的算法如下RSA加密RSA签名实验结果演示首先是计算待签名文件的md5值md5结果对得到的md5值进行签名,可以得到如下的结果RSA签名结果对签名进行验签,可以发现成功验证签名验证签名ECC签名代码整体说明相关文件(ecc.py)由于在前面的ECC加解密(实验报告5)中已经对ECC的相关接口进行了介绍,这里我们不再重复。
这里主要给出签名和验签的主要流程签名的主要流程如下1.选择一个随机数k,k∈{1,2,⋯,n−1}2.计算点R(x R,y R)=kG,并记r=x R3.利用保密的解密钥d计算s=(Hasℎ(m)−dr)k−1 (mod n)4.以<r,s>作为消息m的签名,并以<m,r,s>的形式传输或者存储验签的主要流程如下1.计算s−1 (mod n)2.利用公开的加密钥Q计算U(x U,y U)=s−1(Hasℎ(m)G−rQ)3.如果x U=r,则<r,s>是用户A对m的签名ECC签名核心代码说明由于在实验报告5中已经对ECC的相关代码进行了分析,这里主要给出签名和验签的代码。
进行签名的代码主要如下,可以发现和我们上面提到的签名步骤是一一对应的ECC签名进行验签的代码如下,和上述我们提到的验签步骤也是一一对应的ECC验签ECC签名实验结果演示同RSA签名一样,我们首先需要计算文件对应的数据摘要,这里我们使用md5哈希算法md5数据摘要接着对数据摘要进行签名,得到如下的签名结果ECC签名结果对得到的签名进行验签,可以发现成功验证ECC验签五、分析与讨论1)与ECC的签名相比,RSA的签名和验签显得更为优雅,即解密对应签名,加密对应验签2)和RSA签名相比,ECC引入了随机数k,使得即使对同一个数据进行签名,产生的结果也可能不一样,这在一定程度上增加了ECC签名的安全性3)与传统的分组密码相比,使用公钥密码实现数字签名非常方便且更加安全。
密码学中的公钥加密和数字签名随着互联网与人工智能技术的蓬勃发展,我们的数字信息被广泛传播并储存在云端,安全问题也随之受到了广泛关注。
密码学是一门研究保护信息安全,以及与数据传输和计算机安全相关的学科。
公钥加密和数字签名是现代密码学领域中最重要的技术之一,能够有效保护我们的数字信息安全。
一、公钥加密公钥加密是一种在密码学中广泛使用的方法,简单来说就是使用两个相互关联的密钥来进行信息加密和解密。
其中一个密钥为公钥,另一个则为私钥。
我们常说的RSA算法就是一个公钥加密算法。
公钥加密中,发送方使用接收方的公钥对信息进行加密。
只有接收方拥有私钥才能够解密该信息,其他人都无法解密。
相应的,接收方也可以使用自己的私钥对信息进行加密,只有拥有接收方的公钥的人才能够解密。
公钥加密的优点是信息安全性高,信息的传输过程中公钥是公开的,而私钥仅限于接收方保存,大大降低了信息泄露的概率。
同时,公钥加密预防了一些中间人攻击,保证了信息的完整性。
二、数字签名数字签名是一种将数字信息与签名者身份关联起来的技术,可以用于验证信息的完整性和真实性,常用于经济、贸易等领域。
公钥加密中使用数字签名来保证信息的安全性。
数字签名的基本原理是:发送方使用自己的私钥对信息进行加密,接收方使用发送方的公钥进行解密,同时使用发送方的公钥对数字签名进行验证,确保信息的完整性和真实性。
数字签名的优点在于验证信息的完整性和真实性,减小了信息篡改和窜改的概率。
同时,数字签名是一种匿名性质的对称加密方案,可以保护签名者的身份。
三、公钥加密与数字签名的联系公钥加密和数字签名可以完成互相独立的任务,但是它们也是密切相关的。
公钥加密可以实现信息的安全传输,保证信息不被窥探、篡改和窜改,数字签名则用于保证信息的真实性和完整性。
在实际应用中,公钥加密和数字签名应该同时使用,以保证信息的安全性和完整性。
四、应用案例公钥加密和数字签名技术的应用非常广泛,比如电子商务(如付款相关信息)、银行(如转账、客户数据)、医院(如患者医疗记录)等等都需要应用这些技术来保护隐私。