7.2 数字签名

1.数字签名简介

2.数字签名工作流程


1.数字签名简介

a.数字签名解决: "我收到的这个东西, 到底是谁发的? 中途有没有被人掉包?"

b.数字签名的核心三要素:

- 身份认证: 确认信息发送者的真实身份

- 完整性校验: 确保信息在传输过程中没有被修改

- 不可否认性: 发送者事后不能抵赖说"我没发过这条信息"

2.数字签名工作流程

数字签名的过程依赖于一对密钥: 私钥和公钥, 这被称为"非对称加密"

a.私钥: 绝对保密, 只有主人自己持有; 它就是你的"网络玉玺"

b.公钥: 完全公开,可以发给任何人; 它就像玉玺的"官方印鉴图谱", 用来核对印章真伪
1).发送方"签名"

假设Alice要发一份电子合同给Bob, 并要签名

a.计算"数字指纹": Alice的电脑用一个叫"哈希函数"的数学算法, 对合同文件进行计算, 生成一串固定长度、独一无二的

指纹; 哪怕文件只改了一个标点, 指纹也会完全不同

b.用私钥加密指纹: Alice用她自己严格保密的私钥, 去加密这个"数字指纹"

c.生成最终包裹: 将原始合同和这个加密后的指纹("数字签名")一起发送给Bob

小老师点睛: 签名过程并没有加密合同内容本身(除非额外做加密), 而是加密了它的"指纹", 这保证了效率和安全性的平衡

2).接收方"验签"

Bob收到了合同和签名

a.分离: Bob把收到的信息分开, 得到原始合同和数字签名

b.重现指纹: Bob用同样的哈希函数, 对自己收到的这份原始合同进行计算, 得到一个新的"数字指纹A"

c.解密签名: Bob用Alice公开的公钥, 去解密收到的"数字签名", 如果能成功解开, 就证明这个签名一定是用对应的私钥加

密的; 解密后, 得到了签名里包含的"数字指纹B"

c.对比指纹: Bob对比自己算出的指纹A和解密出的指纹B

d.如果完全一致: 万岁!这证明:

- 身份真实: 签名是用Alice的私钥加密的, 所以发送者一定是Alice

- 内容完整: 两份指纹一致, 说明合同在传输中未被篡改

e.如果不一致: 警报!要么发送者不是Alice(私钥不对), 要么合同被篡改过(指纹对不上)
Q1: 为什么不直接用私钥加密整个文件

因为非对称加密计算很慢, 对大文件效率极低; 而哈希指纹很短小, 加密它速度非常快, 且能达到同样的防篡改和认证效果

Q2: 公钥是公开的, 那坏人不能用公钥伪造签名吗

绝对不可能!这是非对称加密的核心魔法: 用公钥加密的东西, 只有私钥能解开; 用私钥加密(即签名)的东西, 公钥只能用

来验证它, 但不能用它来反向伪造签名; 只要私钥不泄露, 签名就无法伪造

Q3: 我怎么相信一个公钥就是Alice的?会不会有人冒充?

简单说, 有一个大家都信任的权威机构(CA,如DigiCert, GlobalSign), 它用自己的私钥给Alice的公钥(和她的身份信息)

签了个名, 生成了一个"数字证书"; 就像公安局给你的身份证盖章一样, 我们电脑里预存了这些权威机构的根公钥, 可以用

来验证Alice的证书是否真实; 这样, 信任链就建立起来了(需要一个可信的第三方来为公钥做担保)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值