支付系列【2】 支付安全之签名

信息摘要通过哈希算法生成固定长度的Hash值,用于验证数据未被篡改。但仅靠摘要无法防止中间人攻击,因此引入数字签名,结合非对称加密确保消息来源认证、不可否认性和完整性。数字签名包括签名和验证过程,使用私钥加密摘要,公钥解密验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

信息摘要

信息摘要就是一段数据的特征信息,当数据发生改变,信息摘要也会发生改变,发送方会将数据和信息摘要一起传给接收方,接收方会根据接收到的数据重新生成一个信息摘要,若此摘要和接收到的摘要相同,则说明数据正确。

信息摘要原数据通过某个算法生成一个固定长度的单向Hash散列值。

  • 固定长度:不论原文内容多大,其生成的信息摘要都是固定长度的。
  • 不可重:任何不同的输入数据,都会产生不同的信息摘要。
  • 单向性:只能由数据生成信息摘要,不能由信息摘要还原数据。

摘要算法

摘要算法又称哈希算法、散列算法。通过哈希函数,计算出数据的哈希值。

常用的算法如下;

  • MD:消息摘要算法
  • SHA:安全散列算法
  • Mac:消息认证码算法
算法输出长度(位)输出长度(字节)
SM3256 bits32 bytes
MD5128 bits16 bytes
SHA-1160 bits20 bytes
RipeMD-160160 bits20 bytes
SHA-256256 bits32 bytes
SHA-512512 bits64 bytes

数据完整性

可以使用信息摘要保证数据完整性,防止被篡改。

工作流程:

  1. 发送方将信息进行摘要计算,将摘要标记在发送的内容中发送
  2. 接收方收到数据后,对信息计算摘要,对比自己计算的摘要是否和发送方的摘要一致,若不一致,则说明被篡改过,内容不可信

数字签名

上述流程还存在缺陷,如果信息被非法拦截,将篡改后的摘要附在信息上,对方收到后,使用被篡改的摘要进行对比,结果始终会一致,并不能发现数据已被篡改。此时需要加入非对称加密,使用数字签名技术。

数字签名(Digital Signature),一般是附加在某一电子文档中的一组特定的符号或代码,用于表示签发者的身份以及签发者对电子文档的认可,并能被接收者用来验证改电子文档在传输过程中是否被篡改或伪造。

一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。签名算法或签名密钥是秘密的,只有签名人掌握。验证算法是公开的,以便他人进行验证。

基于密码学的数字签名有着如下的优势:

  • 消息源认证性:数字签名可以表示签发者的身份,也就是说具有消息源认证性。
  • 不可否认性:数字签名生成时需要输入签名者私钥。换句话说,数字签名对应唯一签名主体,并且签名者需要承担不可推卸的责任,即数字签名可以实现不可否认性。
  • 消息完整性:数字签名可以检查电子文档在传输过程中是否被篡改或伪造,即保障消息完整性。

签名流程

  1.  生成非对称密钥
  2.  使用摘要算法对原文进行摘要计算,生成数据指纹(摘要)
  3.  使用私钥将摘要进行加密,得到数字签名,并将其附在文档中,发送

验证流程

  1.  接收方取出签名,使用公钥解密签名,得到发送方的摘要
  2. 对文档进行摘要计算,对比两个摘要是否一致

如果第三方冒充发送方发送了一个文件,因为接收方在对数字签名进行解密时使用的是发送方的公开密钥,只要第三方不知道发送方的私有密钥,解密出来的数字摘要与计算机计算出来的新摘要必然是不同的,这就提供了一个安全的确认发送方身份的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

guochunyun

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

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

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

打赏作者

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

抵扣说明:

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

余额充值