数字签名./散列函数

散列函数(Hash Function),也称为哈希函数,是密码学中⼀个重要的⼯具。它能够将任意⻓度的输⼊ 数据转换为固定⻓度的输出(散列值或哈希值)。这种转换过程具有单向性,即很难从输出推断出输⼊,因此散列函数在数据完整性验证、数字签名、消息认证码、哈希表等⽅⾯有⼴泛的应⽤。
  • 特点:
    • 固定长度输出
    • 单向性
    • 确定性 相同输入总是会产生相同输出
    • 抗碰撞性:不能找到任意两个不同输入,输出一样
    • 雪崩效应:输入微小变化散列值都会显著变化
  • 常见散列算法
    • MD5 输出⻓度为128位(16字节)。存在碰撞攻击
    • SHA-1 为160位(20字节)存在碰撞攻击的⻛险,逐渐被淘汰。
    • SHA-2
    • SHA-3
    • SM3  中国国家密码管理局发布的⼀种安全哈希算法,输出⻓度为256位
  • 哈希函数的安全挑战
    • 碰撞攻击
    • 生日攻击  攻击者通过产⽣⼤量不同的输⼊并寻找在⼀个输出⻓度为 n位的哈希函数中,寻找两个不同输⼊具有相同哈希值(碰撞)的概率问题
      • 函数的输出⻓度为 128 位(如 MD5),攻击者在⼤约 2^64次尝试后就有可能找到碰撞,这显 然⽐预期的2^128 次要少得多。
      • 根据⽣⽇悖论,找到碰撞的尝试次数⼤约是 2^{64} 次,即输出⻓度的⼀半。

 数字签名

  • 基于非对称加密算法,私钥签名,公钥验证
  • 真实性,完整性,不可否认性
  • 生成数字签名
    • 哈希处理:对数据进行哈希处理,生成固定长度消息摘要
    • 签名生成:私钥加密消息摘要,生成数字签名
  • 验证数字签名
    • 哈希处理:对发过来的数据哈希处理,生成消息摘要
    • 签名验证:公钥解密数字签名,解密后的结果与消息摘要一致,则签名有效,数据未被篡改,且来自合法的发送方
  • 常见数字签名算法
    • RSA
    • DSA
    • ECDSA(椭圆曲线数字签名算法)
    • SM2签名算法 国密,基于椭圆曲线
  • 数字签名与PKI
    • 数字签名通常与公钥基础设施(PKI)结合使⽤,以确保公钥的真实性和完整性。PKI 通过数字证书验证公钥的持有者身份,并为签名验证提供信任基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值