当前位置: 首页 > news >正文

数字签名./散列函数

散列函数(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 通过数字证书验证公钥的持有者身份,并为签名验证提供信任基础。


http://www.mrgr.cn/news/19760.html

相关文章:

  • 春节需备美酒:白酒与年味的整合
  • 解题--有关动态内存开辟 几道经典的笔试题
  • Xmind2024去除VIP会员解锁版
  • VS编译环境中printf() scanf()等文件操作函数不安全编译报错的解决方法
  • 数据结构排序之快排
  • 什么是网络安全?
  • 宠物空气净化器是智商税吗?希喂、IAM、范罗士哪款除毛效果更好?
  • 双向链表基本知识
  • C++11第一弹:简介 | 统一的列表初始化 | 声明
  • 2024/9/4 Canlink配置介绍与常见故障排查
  • pytest 常用的辅助函数和工具函数
  • js中的new Data操作归纳(会持续补充)
  • 第九届“创客中国”生成式人工智能中小企业创新创业大赛招商推介圆满落幕
  • 告别冗长 if...else 的多种方法
  • 如何在移动端app里嵌套web页面之react-native-webview
  • 1.第二阶段x86游戏实战2-前言
  • 前端常用的几种设计模式--观察者模式、单例模式等
  • 【openwrt-21.02】T750 openwrt MT7916 WPS PBC功能实现
  • FFmpeg源码:get_audio_frame_duration、av_get_audio_frame_duration2函数分析
  • 云计算之网络