数字签名的原理与设计

3.3.1密钥产生的实现

将RSA 算法反向使用(私钥加密公钥解密),对消息摘要加密,可以实现数字签名的功能。这里通过筛选法求素数, 选择素数编号(3和7)后得到素数5和17,生成公钥(85,3),私钥(85,43),通过加密数字80,得到密文45,明文80。

3.3.2 产生消息摘要的设计实现

这里信息摘要函数(Hash函数)对字符串lly进行MD5计算,得到消息摘要MD:c2566a313284b796abcb658e6fc31f16。

3.3.3数字签名的设计实现

数字签名的理论实现流程,数字签名,就是通过在数据单元上附加数据,或对数据单元进行加密变换,从而使接收者可以确认数据来源和完整性。数字签名是防止他人对传输的文件进行破坏,以及确定发信人的身份的手段。数字签名中的加密算法就是应用的RSA加密原理,而它的验证算法则是应用的RSA解密原理。

3.3.4 验证数字签名的设计与实现

验证数字签名的正确与成功性,主要是比较得到的两次消息摘要是否一样,如果验证方用签名方的公钥解密得到消息摘要(即是本设计中得到的解密信息)和他自己计算得到的消息摘要(在本系统中为第一次计算得到的消息摘要)是一样的,则证明签名是正确的,没有被篡改或是冒充,验证签名的原理则是根据RSA的解密算法。得到的解密信息是:c2566a313284b796abcb658e6fc31f16。与消息摘要一样,证明签名正确。
3.3.5运行结果

在本代码中得到二个消息摘要:根据写入的消息(明文信息)计算出来的消息摘要、解密数字签名得到的消息摘要(即是本设计中的解密信息)。如果两个消息摘要是一样的则证明RSA数字签名者的身份的真实性,从而实现了RSA数字签名。该系统的运行结果如图3-5所示。产生的消息摘要和解密得到的消息摘要(在此处是解密信息)是完全一样的,则证明了数字签名的真实性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值