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

现代密码学-认证、消息认证码

什么是单向散列函数

单向散列函数(one way hash function):一个输入:消息(message),一个固定长度的输出(散列值,hash value),根据散列值检查消息完整性(integrity)

单向散列函数也称为消息摘要函数(message digest function)\哈希函数、杂凑函数

输入成为原向pre-image

输出成为消息摘要(message digest)或指纹(fingerprint)


单向散列函数的实际应用

        检测软件是否被篡改

        基于口令的加密

        消息认证码:将发送者和接收者之间共享的密钥和消息混合后计算散列值。SSL/TLS

        数字签名

        伪随机数生成器

        一次性口令 


什么是消息认证码

消息认证码(message authentication code,MAC)确认完整性并进行认证。输入:任意长度的消息和收发之间的共享密钥,输出:固定长度数据

要计算MAC必须持有共享密钥,可以理解为:消息认证码是一种和密钥相关联的单向散列函数

密钥配送问题

可采用公钥密码、Diffie-Hellman密钥 交换,密钥分配中心 技术发送密钥

应用实例

SWIFT

IPsec

SSL/TLS

消息认证码实现方法

        使用单向散列函数

        使用分组密码

认证加密

将对称密码和消息认证码结合,同时满足机密性、完整性和认证。

Encrypt-then-MAC、Encrypt-and-MAC、MAC-then-encrypt

对消息认证码的攻击

重放攻击-防御措施:消息编号(序号)、时间戳、随机数

密钥推测攻击

消息认证码无法解决的问题

对第三方的证明:无法实现对第三方的证明。只有AB两个人通信时,可以断定是对方计算出的MAC(共享密钥双方),但对第三放C来说,A,B无法证明是对方计算了MAC而不是自己。

防止否认

http://www.lryc.cn/news/367046.html

相关文章:

  • 在Java中为什么对a赋值为10,在进行a++时还是等于10呢
  • 免费数据库同步软件
  • 如何轻松修改Windows远程连接的端口号
  • Leetcode 54. 螺旋矩阵(二维数组移动坐标)
  • 深度图的方法实现加雾,Synscapes数据集以及D455相机拍摄为例
  • QT: 读写ini配置文件(实现qml界面登录,修改)
  • DevOps 安全集成:从开发到部署,全生命周期安全守护
  • R语言数据分析15-xgboost模型预测
  • 重构大学数学基础_week04_从点积理解傅里叶变换
  • Shell以及Shell编程
  • 从记忆到想象:探索AI的智能未来
  • “安全生产月”专题报道:AI智能监控技术如何助力安全生产
  • 【转】ES, 广告索引
  • Unity学习要点
  • 简单使用phpqrcode 生成二维码图片
  • 软考架构-计算机网络考点
  • 渗透测试之内核安全系列课程:Rootkit技术初探(三)
  • 大模型日报2024-06-08
  • leetcode 1631.最小体力消耗路径
  • 【ARM64 常见汇编指令学习 19.2 -- ARM64 地址加载指令 ADR 详细介绍】
  • vscode输出控制台中文显示乱码最有效解决办法
  • springboot + Vue前后端项目(第十五记)
  • 如何在Windows 11中恢复丢失的快速访问菜单?这里提供解决办法
  • 变声器软件免费版有哪些?国内外12大热门变声器大盘点!(新)
  • 计算机网络 —— 数据链路层(无线局域网)
  • SpringBoot图书管理系统【附:资料➕文档】
  • shell简介
  • 使用 Scapy 库编写 ICMP 不可达攻击脚本
  • Electron qt开发教程
  • 尝试用 GPT-4o 写 2024高考语文作文