数字签名介绍

数字签名介绍

一、概念

  • 数字签名: 也称为公钥数字签名,是一种通过公钥加密领域的技术来鉴别数字信息的方法
  • 作用: 区块链使用公钥、私钥加密解密信息,数字签名在其中保证发送的信息不被篡改

二、分类

  • 数字签名算法包括: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机构在核实小明身份后,将颁发一个数字证书
      • 该证书内包含了小明的身份信息和其公钥数据,也就证明了该公钥生成者的身份为小明
      • 小明将该证书放到互联网上,然后小红通过该证书可以确定哪一个公钥是小明的
      • 其他人的数字签名使用小明公钥验证出的结果会发生变化,也就不能通过数字签名验证

在这里插入图片描述

  • 如何确保数字签名不被伪造?

    • 数字证书是经过CA机构数字签名的
    • CA机构自己也生成一套公钥私钥
      • 使用私钥对“小明身份信息及其公钥数据”这一文件内容进行数字签名,并放到数字证书中
        • 数字证书相当于文件和数字签名的组合体
      • 在每个人电脑或手机系统里,默认安装了根证书
        • 根证书里记录了可以信赖的CA机构信息及其公钥
      • 根证书预先安装在系统中可以杜绝CA机构公钥被伪造的可能
      • 通过CA机构公钥就可以验证数字证书里的数字签名,从而确保了数字证书的不可伪造性

在这里插入图片描述

四、比特币签名的具体过程描述

  • 大体过程:由比特币转账的转出方生成的一段防伪造的字符串,可以用来验证签名者的身份和签名时间,从而保证被签信息是否真实正确
  • 假设用户A要给用户B转账具体流程:
    • 用户A在转账前需要先将交易信息缩短成一段字符串,用自己的私钥进行加密以形成数字签名
    • 用户A将交易信息、数字签名和公钥都广播出去,矿工会将这些信息记录下来,并用A的公钥进行验证
      在转账前需要先将交易信息缩短成一段字符串,用自己的私钥进行加密以形成数字签名
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
国密SM2是中国自主研发的一种椭圆曲线公钥密码算法,广泛应用于数字签名、密钥交换、加密等领域。下面简单介绍一下基于国密SM2的数字签名技术。 数字签名是一种用于保证数字信息真实性、完整性和不可抵赖性的技术。基于国密SM2的数字签名技术采用了非对称加密算法,即使用一对公钥和私钥进行加密和解密。具体流程如下: 1. 密钥生成 首先,签名方需要生成一对公钥和私钥。公钥可以公开,私钥必须保密。在国密SM2算法中,公钥的长度为256位,私钥的长度为256位,其中一部分为随机数。 2. 数字签名 数字签名的过程可以分为四步: (1)计算消息的摘要值。使用SHA-256算法计算出消息的摘要值,摘要值的长度为256位。 (2)随机数生成。生成一个随机数k,保证其在区间[1,n-1]之间,n为SM2算法中的一个大素数。 (3)计算椭圆曲线上的点。根据摘要值和随机数k计算出椭圆曲线上的点R,其中R = [k]G,G为椭圆曲线上的基点。 (4)计算数字签名。根据摘要值、随机数k、私钥d和点R计算数字签名S,其中S = (hash(m) + x(R)*d)/(1+k)^(-1) mod n,x(R)表示点R的x坐标。 3. 数字签名验证 数字签名验证也可以分为四步: (1)计算消息的摘要值。使用SHA-256算法计算出消息的摘要值,摘要值的长度为256位。 (2)计算椭圆曲线上的点。根据签名中的点R和数字签名S计算出椭圆曲线上的点V,其中V = [h]P + [s]Q,h为摘要值的哈希值,P为公钥,Q为点R。 (3)验证数字签名。如果V的x坐标等于R的x坐标,则认为数字签名有效,否则认为数字签名无效。 (4)安全性检查。如果验证通过,还需要进行安全性检查,检查签名是否被篡改或重放攻击。 基于国密SM2的数字签名技术具有高强度、高安全性、高效率等优点,广泛应用于电子商务、金融支付、政府机构等领域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值