数字签名介绍
一、概念
- 数字签名: 也称为公钥数字签名,是一种通过公钥加密领域的技术来鉴别数字信息的方法
- 作用: 区块链使用公钥、私钥加密解密信息,数字签名在其中保证发送的信息不被篡改
二、分类
- 数字签名算法包括:RSA(RSA加密算法 + 哈希算法)、DSA、ECDSA
- 双向算法——加密(解密)算法
- 包括对称加密(单秘钥加密)——DES、3DES、AES
- 非对称加密(公开秘钥加密)——RSA、ECC
- 单向算法——加密算法
- 哈希算法——MD5、SHA-1、SHA-256、SHA-512
三、数字签名的两种运算过程
1、签名过程
- 签名:即指使用私钥处理信息或因信息的哈希值而产生签名的过程
- 签名使用解密公式
2、验证过程
- 验证:指使用公钥验证签名的真实性
- 验证使用加密公式
RSA数字签名算法
-
场景假设:小明向小红借了一笔钱,需要写一张借条,纸质版的借条我们可以使用笔迹签名来鉴定签名者的身份是小明,然后通过肉眼观察确保文件内容,但如果是电子版的借条就需要使用数字签名来保证了
-
具体过程:
-
(1)小明完成对文件的数字签名:
- 小明通过RSA算法生成自己的私钥和公钥,对文件进行哈希运算,得出文件哈希值H,
- 使用私钥根据RSA解密公式对文件哈希值进行签名运算,得出数字签名S
-
(2)公钥、文件及数字签名发送到互联网上
-
(3)小红完成签名验证
- 小红使用公钥根据RSA加密共识对数字签名进行验证运算,得出文件哈希值H
- 同时对文件进行哈希运算,得出文件哈希值
- 将者两个文件哈希值进行对比,若两者相同,则证明签名成立,不同则签名不成立
-
-
如何保证数据文件没被篡改?
- 若文件被篡改,则文件的哈希值就会发生变化,两个文件哈希值就会不相同,签名验证也就不能通过
-
如何保证文件是小明本人签署的?
- 数字签名只能由私钥拥有者生成,也就确保了签字者身份一定是私钥拥有者的,但不能确定私钥拥有者一定是小明
- 因为其他人自己也可生成一套私钥公钥,并进行数字签名冒充成小明签名,小红使用冒充者的私钥和公钥同样可以验证通过
- 需要数字证书来保证私钥公钥生成者是小明
- 小明将公钥及部分个人身份信息发送到某个权威公正的证书颁发(简称CA)机构
- CA机构在核实小明身份后,将颁发一个数字证书
- 该证书内包含了小明的身份信息和其公钥数据,也就证明了该公钥生成者的身份为小明
- 小明将该证书放到互联网上,然后小红通过该证书可以确定哪一个公钥是小明的
- 其他人的数字签名使用小明公钥验证出的结果会发生变化,也就不能通过数字签名验证
- 数字签名只能由私钥拥有者生成,也就确保了签字者身份一定是私钥拥有者的,但不能确定私钥拥有者一定是小明
文章来源:https://www.toymoban.com/news/detail-829412.html
-
如何确保数字签名不被伪造?
- 数字证书是经过CA机构数字签名的
- CA机构自己也生成一套公钥私钥
- 使用私钥对“小明身份信息及其公钥数据”这一文件内容进行数字签名,并放到数字证书中
- 数字证书相当于文件和数字签名的组合体
- 在每个人电脑或手机系统里,默认安装了根证书
- 根证书里记录了可以信赖的CA机构信息及其公钥
- 根证书预先安装在系统中可以杜绝CA机构公钥被伪造的可能
- 通过CA机构公钥就可以验证数字证书里的数字签名,从而确保了数字证书的不可伪造性
- 使用私钥对“小明身份信息及其公钥数据”这一文件内容进行数字签名,并放到数字证书中
文章来源地址https://www.toymoban.com/news/detail-829412.html
四、比特币签名的具体过程描述
- 大体过程:由比特币转账的转出方生成的一段防伪造的字符串,可以用来验证签名者的身份和签名时间,从而保证被签信息是否真实正确
-
假设用户A要给用户B转账具体流程:
- 用户A在转账前需要先将交易信息缩短成一段字符串,用自己的私钥进行加密以形成数字签名
- 用户A将交易信息、数字签名和公钥都广播出去,矿工会将这些信息记录下来,并用A的公钥进行验证
在转账前需要先将交易信息缩短成一段字符串,用自己的私钥进行加密以形成数字签名
到了这里,关于数字签名介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!