Home
Services
Shop
Pages
About Us
Services Details
Shop Details
Blog Details
Contact
Blog
(+86) 13108958693
Mon-Fri: 17:00 - 22:00 Sat/Sun: 09:00 - 22:00
(+86) 13108958693
Mon-Fri: 17:00 - 22:00 Sat/Sun: 09:00 - 22:00
扫一扫加站长微信
您的鼓励是我最大的动力
微信打赏
2元
4元
10元
微信
支付宝
首页
标准&法规
ISO-21434
R155
R156
密码工具
对称密码
非对称密码
摘要函数
消息认证码
数字签名
数字证书
随机数
密钥
软件安全
AUTOSAR
QNX
Linux
硬件安全
SecureZone
HSM
TEE
攻击手段
Dos 攻击
中间人攻击
...
...
防御措施
最小权限原则
安全启动
安全升级
安全通信
安全诊断
安全日志
防火墙
安全测试
模糊测试
渗透测试
漏洞扫描
关于
扫一扫加站长微信
您的鼓励是我最大的动力
2元
4元
10元
微信
支付宝
数字签名
主页
密码工具
对称密码
对称密码介绍
DES
Triple DES
AES
Rabbit
RC4
异或
非对称密码
非对称密码介绍
RSA
SM2
ECC
摘要函数算法
摘要函数介绍
MD4
MD5
SHA
SM3
CRC
消息认证码
消息认证码介绍
CMAC
HMAC
数字签名
> 数字签名介绍 <
RSA-Signature
ECDSA
数字证书
数字证书介绍
X.509
X.509 证书解析
X.509 证书生成
X.509 证书验证
SSL
SSL 证书解析
...
...
...
CSR 生成
随机数
随机数介绍
PRNG
TRNG
密钥
密钥介绍
Diffie-Hellman 密钥交换
口令
数字签名 ——
消息到底是谁写的
介绍:
数字签名(Digital signature)
是一种将相当于现实世界中的签字的功能在计算机世界中实现的技术。使用数字签名可以识别篡改和伪装,还可以防止否认。接下来我们可以简单对比一下两者的区别。
现实世界中的签名
实际世界中的签名通常是由个人手写的姓名或符号,用于验证文件的真实性和认可。手写签名通常是通过比对签名本或纸质文件上的签名和原始文档上的签名来验证完整性。简单来讲,就是我们在认可了某份文件 后通过签上自己的名字来表示我们确认了这份文件的内容准确无误且接受了这份文件的具体内容,而别人通过验证该签名的字迹来确认我们是否有对这份文件的认可。
计算机世界中的数字签名
在计算机世界中,被签署的文件变成了
二进制的数据
,为了保证数据的完整性,通常我们会采用摘要算法将其进行压缩,然后对压缩后的
Summery Data
用
私钥进行加密得到数字签名
。然 后将原始数据和数字签名
合并成新的数据包
。接收方在拿到这个新的数据包后会将其拆分成原始数据和数字签名,用
公钥对数字签名进行解密
,以及采用同样的摘要算法对原始数据进行压缩。得到
两个Summery Data
,最后对它们进行简单的对比,如果两者一致那么就证明了数据是完整的
没有被篡改过
,同时也证明了该
数据是来自于所期望的源头
,且
数据内容被源头所认可
。
我们假设一下,数据的内容是一个具体的软件,那么在发布软件的时候,通常会附上软件的签名,同时给出所采用的摘要算法和公钥。用户在下载该软件的时候会将其数字签名一并下载下来,用户将软件的内容用摘要算 法得到一个散列值也就是Summery Data,然后使用软件厂商提供的公钥对数字签名进行解密,用软件厂商采用的同样的摘要算法对软件进行压缩,对比得到的两个Summery Data以确认软件的来源和完整性。
数字签名与公钥密码的区别
公钥密码(非对称密码)和数字签名的结构非常相似。
在公钥密码中,密钥分为加密密钥和解密密钥,用加密密钥无法进行解密
。此外,
解密密钥只能由需要解密的人持有,而加密密钥则是任何需要加密的 人都可以持有
。实际上,
数字签名
就是通过将公钥密码“反过来用”而实现的。下面我们将密钥的使用方式总结成一张表。
公钥密码
包括一个由公钥和私钥组成的密钥对,其中公钥用于加密,私钥用于解密。
数字签名
中也同样会使用公钥和私钥组成的密钥对,不过这两个密钥的用法和公钥密码是相反的,即
用私钥加密
相当于生成签名,而
用公钥解密
则相当于
验证签名
。
+