数字签名

                                                                                                     数字签名

本文将讨论为什么需要数字签名,数字签名怎么实现,数字签名的主要目标是什么,数字证书最主要的目标就是实现不可抵赖性,其次同时实现了防篡改和防伪造性

不可抵赖性

先来解释一下什么是不可抵赖性,结合下图来做讲解,ServerA,ClientB,ClientC,B,C都拥有A的公钥,所以在向A发送数据的时候可以使用A的公钥将其加密再发送,这可以确保消息的机密性,但是当A接受到这两份数据后,无法确定这两份消息分别是由谁发出的,这就是为什么需要不可抵赖性,我们需要区分出哪个消息由谁发出

不可篡改性

假设ABC三者使用同一把对称加密算法密钥,A向B发消息“123”时,B接收到了“456”,B以为自己正在和A会话,实际上C在AB当中扮演了中间人的角色,拦截了A发出的“123”,并将消息篡改为“456”再发送给B,正因为ABC三者用的是同一把对称加密算法密钥,所以C可以在AB不知不觉中,篡改双方发送的信息

数字签名原理

RSA公开密钥算法中,公钥可以向所有人公开,而私钥只能创建人自己拥有,数字签名的原理就是依靠这个规则,在发送者发送一组数据时,先将明文进行HASH运算,再使用私钥结合数字签名算法(HASH值+私钥+数字签名算法)得出的值就是数字签名值,再将数字签名值与明文结合,便实现了数字签名,而接收端将数字签名通过发送者的公钥与数字签名算法,反解出原始的HASH值,再将发送的明文通过同样的HASH算法得出一个HASH值,如果前后的HASH值相同,则表示无内鬼,反之则说明有内鬼

数字签名实现流程

签名生成流程:
1.发送者对消息计算摘要值
2.发送者用私钥对摘要值进行签名得到签名值
3.发送者将原始消息和签名值一同发送给接收者

签名验证流程:
1.接收者接收到消息后,拆分出消息和消息签名值A
2.接收者使用公钥对消息进行运算得出摘要值B
3.接收者对摘要值B和签名值A进行比较,如果相同则表示签名验证成功,反之则失败

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游离态De猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值