密码学与网络安全笔记整理-数据完整性技术

2023-11-08

1. 数据完整性

类似于通信中的校验码功能,在密码学领域数据完整性用于验证收到信息的正确性,校验收到的信息是否经过篡改,校验收到的信息是真实的发送者发送而非伪造。发送者通过编码为消息增加一些“冗余”,生成一个校验值,并将该校验值附在消息之后。接收者根据协商好的规则,利用附加的校验值来检测接收到消息的正确性。
这里写图片描述

2. 对称技术

  • 有效的变换f和g是对称算法,意味着f = g,并且Ke = Kv;
  • MAC(消息认证码):由对称密码技术生成的MDC;
  • MAC的生成验证可以使用:keyed hash函数,分组加密等;

3. Keyed hash函数与HMAC

  • 一个确定的函数,可以将任意长的比特串映射为一个固定长的比特串,该函数需要key作为参数;
  • 设h表示一个Keyed hash函数,其固定输出长度为|h|;
  • h应当是混合变换的;
  • h应当可以抵抗冲突攻击;
  • h应当可以抵抗原像攻击;
  • h应当具有实用有效性;
    使用keyed hash函数构造生成的MAC被称为HMAC,与发送者共享key的接收者收到M,并重新计算HMAC,检验与收到的HMAC是否一致,HMAC = h(key || M || key),用密钥包含信息的两端是阻止攻击者直接修改信息前缀或者消息后缀。

4. 基于分组加密算法的MAC

使用分组加密构造keyed hash函数,选择CBC模式,密钥为k,每一块加密函数为Ek(m):

  • 对信息M分组,分成若干长度相同(分组加密算法每一块的长度)的块M = m(1)m(2)……m(t),如果最后一块长度不够,则需要随机填充padding;
  • H(0) = IV,随机初始向量;
  • H(i) = Ek(m(i) ⊕ H(i-1)),i = 1, 2……t;
  • 将(IV, H(t))作为MAC;
    这里写图片描述
    说明:

  • CBC-MAC是一个单向变换,不可求其逆数据:因为MAC里面包含的只是分组加密得到的最后一块H(t)与IV,根据CBC的加密解密流程:无论是接收者还是中间的攻击者都无法根据最后一块H(t)和IV反推出全部的MAC值,因此这是一个单向变换;

  • MAC在MAC空间中分布均匀;
  • 发送者与接收者共享密钥k,发送者发送消息M与CBC-MAC,接收者收到M与MAC(IV, H(t)),进行再一次计算,验证是否相同;

5.生日攻击

生日攻击又称平方根攻击,攻击者利用生日现象,找到冲突的哈希函数值,伪造报文,从而进行攻击。为了实施攻击,攻击者通过计算若干message-hash数值对,直到找到冲突。
【例】

M = (price, description, R), h = h(price, description, R)
M1 = (price1, description, R1), h1 = h(price1, description, R1)
M ≠ M1, h = h1, use (M1 || h1) to forge(M || h)

生日攻击:攻击者计算 2|h|/2 的规模即可以一个非常大的概率得到冲突的哈希数值对。

【证明】
假设计算K次,能够找到冲突的哈希数值对的概率为P。
在证明生日攻击这个问题之前,我们回想这样一个简单的问题:一个黑色的盒子里装了N个颜色各不相同的小球,每一次我们摸一个球记录一下它的颜色,再放回去,那么我们摸了K次,都没有摸到重复颜色的球的概率为1-P。
那么K次都是独立的事件:
1p=(112|h|)(122|h|)(1K12|h|)
第一次肯定是100%不会相同,第二次只要和第一次颜色不同即可,所以分子是1,第三次要和前两次颜色不同,所以分子是2……以此类推。
回到我们的问题,两者是等同的,在我们的问题中,1-P代表了攻击者计算了K次,仍然还没有找到冲突的哈希数值对的概率(即不同的输入得到了相同的哈希值的情况)。因此,我们继续化简:
这里写图片描述

5. 非对称技术

这里写图片描述

5.1. RSA

这里写图片描述
密钥建立:
p,q:两个长度差不多的大素数,公钥(N, e),N=pq,e满足gcd(e, Φ(N))=1,私钥d,满足ed≡1 (mod Φ(N));
签名生成:
对于消息m∈Z, Alice生成签名s=Sign_d (m)←m^d (mod N);
验证:
公钥(N,e),消息m,签名对(m,s),Bob验证Verify_((N,e) ) (m,s)=true ⇔m≡s^e (mod N);

5.2. Rabin

密钥建立:
p,q:两个不同的奇素数(p=q=3 mod 4),公钥 N,N=pq,私钥(p, q);
签名生成:
对于消息m∈Z, Alice生成签名s=m^(1/2) (mod N);
验证:
公钥N,消息m,签名对(m, s),Bob验证Verify_((N,e) ) (m,s)=true ⇔m≡s^2 (mod N);

5.3. Elgamal

这里写图片描述
【例】
这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

密码学与网络安全笔记整理-数据完整性技术 的相关文章

  • JDBC详解

    前期准备 mysql下载安装 mysql下载链接 安装成功验证 cmd 命令行输入命令如下图 登录 远程连接别人的mysql 这里的 h127 0 0 1表示远程连接数据库所在计算机的ip 启动和关闭mysql服务 JDBC的概念和本质 概
  • upload-labs文件上传漏洞(Pass-01~Pass-21)

    目录 pass 1 js前端绕过 pass 2 MiMe绕过 pass 3 黑名单绕过 pass 04 htaccess文件上传 pass 05 pass 06 大小写绕过 pass 07 空格绕过 pass 08 windows特性加点绕
  • 自动化测试 - 如何自动提取手机短信验证码

    在自动化测试中 除了之前博客介绍的各种图形验证码 以及滑块验证外 经常会碰到当遇到有手机短信验证的问题 可能有人会想到 通常验证码有效期都会在一定的时间内 当再次测试时 可以把手机收到的验证码写在代码里 显然这方法好像可行 但却在整个测试中
  • Hadoop:HDFS--分布式文件存储系统

    目录 HDFS的基础架构 VMware虚拟机部署HDFS集群 HDFS集群启停命令 HDFS Shell操作 hadoop 命令体系 创建文件夹 mkdir 查看目录内容 ls 上传文件到hdfs put 查看HDFS文件内容 cat 下载
  • Python使用XPath解析HTML:从入门到精通

    引言 XPath是一种用于选择XML文档中节点的语言 它可以通过路径表达式来定位节点 由于HTML文档的结构与XML文档类似 XPath也可以用于解析HTML文档 Python是一种非常流行的编程语言 它提供了许多库用于解析HTML文档 本
  • VScode常见用法

    1 VScode中通过快捷键ctrl shift p 打开配置文件 2 VScode可以通过shift alt F进行代码格式化 3 自动保存 在设置按钮弹出的菜单中 选择 Settings 选项 此处是整个vscode的设置入口 打开 s
  • 数据结构学习系列之两个单向链表的合并

    两个单向链表的合并 创建两个单向链表p1和p2 合并p1和p2即可 代码如下 示例代码 int merge 2 link list node t p1 node t p2 if NULL p1 NULL p2 NULL p2 printf
  • OpenCV:模型训练与验证

    一 过拟合 欠拟合 1 概念 过拟合是指所选模型的复杂度比真模型更高 学习时选择的模型所包含的参数过多 对已经数据预测得很好 但是对未知数据预测得很差得现象 欠拟合是指所选模型得复杂度比真模型更低 学习时选择的模型所包含的参数过少 2 如何
  • 目标检测中PR曲线和mAP

    目标检测中的PR曲线绘制与mAP 1 基本概念 1 交并比 Intersection Over Union IOU 2 TP FP FN TN 3 查准率 查全率 4 AP mAP 2 PR曲线的绘制与mAP的计算 原文链接 目标检测中的m
  • 分治法基本思想(汉诺塔问题 Tower of Hanoi)

    文章目录 前言 基本思想 适用的问题 求解步骤 分治法要点 时间复杂性分析 举例 汉罗塔问题 Tower of Hanoi 问题描述 解决步骤 java代码 前言 分治法来源于孙子兵法谋攻篇中写道 十则围之 五则攻之 倍则战之 敌则能分支
  • 6款真正好用的播放器推荐

    GOM player GOM player 是一款本身装有视频播放所需的解码 及占用系统资源少 并且能以最优秀的画质来观看多种格式影片的播放程序 可以支持播放大多数当前流行的视频格式 如 MP4 AVI WMV MKV MOV FLV 等
  • 上帝模式下的shellcode

    github https github com Wker666 讲解视频 https www bilibili com video BV1oY411E7hX p 1 share medium iphone share plat ios sh

随机推荐

  • Mysql主从同步的坑,主库没问题、从库卡死

    Mysql主从同步的坑 主库没问题 从库卡死 mysql主从同步原理 什么是binlog日志 binlog的格式 问题 解决办法 mysql主从同步原理 mysql自带的主从同步机制 是主库定期给从库传输binlog日志 从库通过binlo
  • Java实现多人聊天室

    多人聊天室原理图 源码 工具类 该类用于关闭各种流 public class CloseUtil public static void CloseAll Closeable closeable for Closeable c closeab
  • linux中查几个看文件的命令[cat、more、less、tail、head]

    一 cat 显示文件连接文件内容的工具 cat 是一个文本文件 查看 和 连接 工具 通常与more搭配使用 与more不同的是cat可以合并文件 查看一个文件的内容 用cat比较简单 就是cat后面直接接文件名 如 cat etc pas
  • 杭州攻壳不维护服务器,[OL][公告] 《三国杀OL》合服热点问题FAQ(11月28日23点30更新)...

    自11月28日16点 三国杀OL 合服开服以来 我们陆陆续续收到来自社区 来自客服的玩家反馈 针对大家提出的问题我们在此统一回复下处理进度 1 游戏创建房间失败 提示 创建桌子错误 错误返回值为13 答 已修复 请刷新重登录游戏尝试 因频繁
  • 奥菲斯办公

    下载 运行 移除旧组件 移除之后重启电脑 部署 如图设置 下载 1 5GB 点击上方的开始部署 部署完成后 安装许可证 安装成功后才能安装许可证 找一个 KMS 主机输入 主机列表 点击上方激活 有效期179天
  • 笔记本电脑无法设置移动热点

    1 右击 此电脑 选择 属性 2 在弹出来的页面中 选择 设备管理器 3 点击 网络适配器 4 在 网络适配器 的下拉列表里 选择含有 WIFI 的一项 5 打开之后 点击 高级 选项 将属性 2 4GHz channel bandwidt
  • Java基础系列-《流程控制--循环结构》

    前言 张浩Java考试成绩未达到自己的目标 为了表明自己勤奋学习的决心 他决定写一百遍 好好学习 天天向上 根据前面学习的内容我们知道System out println 好好学习 天天向上 可以将这句话打印出来 但是现在是要打印100次
  • 攻防世界NaNNaNNaNNaN-Batman

    打开压缩包观察web100的内容 看起来好像代码是吧 改后缀html浏览器打开 这个东西没有用 继续 查教程 发现有大佬说因为前面有script 基本可以藕断这是js代码 然后大佬又告诉我说把乱码最后的那个 eval改为alert在用浏览器
  • 文件管理服务器数据库,会博通系统的海量数据库管理策略

    在会博通的用户中 有些用户的数据量已达100GB 200GB 甚至数TB以上 并且 数据量还在迅速增长之中 为了满组客户海量数据管理的需要 会博通从多数据库管理和数据库本身的存储管理两方面提出策略与建议 多数据库管理 会博通的企业版支持多数
  • 【设计模式】代理模式

    Java 的代理模式是一种设计模式 它可以让一个对象 代理对象 代替另一个对象 目标对象 去执行一些操作 并且可以在执行前后添加一些额外的功能 代理模式可以实现对目标对象的功能扩展和保护 Java 的代理模式有两种实现方式 静态代理和动态代
  • 表单传值

    PHP中接收数据的三种方式 GET 接收GET方式提交的数据 POST 提交POST方式提交的数据 REQUEST 接收POST或者GET提交的所有数据 这三种方式都是超全局预定义数组 表单元素的 name 属性的值作为数组的下标 而val
  • 关于快速排序

    关于快速排序的一些知识以及代码实现 快速排序算法通过多次比较和交换来实现排序 其排序流程如下 1 首先设定一个分界值 通过该分界值将数组分成左右两部分 2 将大于或等于分界值的数据集中到数组右边 小于分界值的数据集中到数组的左边 此时 左边
  • 【单片机基础】ADC0832详解

    文章目录 一 ADC0832介绍 1 功能特点 2 引脚说明 3 ADC0832与单片机接口 4 工作时序 二 例程 一 ADC0832介绍 ADC0832 是美国国家半导体公司生产的一种8 位分辨率 双通道A D转换芯片 由于它体积小 兼
  • cubemx+stm32 气体传感器开发

    一 气体传感器 MQ系列 MQ5 可燃气体传感器 检测空气中的可燃气体浓度 单位ppm 是百万分之1 如果一立方米的空气 有一立方厘米的可燃气体 则浓度为1ppm 可燃气体对人体有害的浓度是200ppm 查看手册 可以看到 当浓度为500时
  • 机器学习之电子商务网站用户行为分析及服务推荐案例

    项目概述 本项目案例根据某法律咨询服务网站的用户浏览记录 把用户划分为训练集的用户和测试集的用户 再根据找出相应用户的浏览记录划分为训练集数据和测试集数据 训练集用于后续构建用户物品矩阵 再根据用户物品矩阵构建物品相似度矩阵 根据杰卡德相似
  • js实现将字符串里包含手机号的中间四位替换为****

    var character sd13564349471中 字符 1 判断该字符串里是否包含数字 function getNum text var value text replace 0 9 ig return value 2 if包含数字
  • 外网访问VMware虚拟机

    目的 主机上安装了VMware VMware上安装了Linux虚拟机 我安装的是Centos7 我想让虚拟机向外提供Web服务 本文记录如何让我的主机和外网用户可以访问VM虚拟机上的Web 网络环境 单IP服务器1台 提供固定IP1个 固定
  • java 私有云_基于MOS9.0的OpenStack私有云部署

    本手册中私有云部署操作是在完成Mos9 0源搭建的基础上 如果没有可用的Mos9 0源 fuel 请先完成Mos9 0源的搭建 一 网络环境要求 1 1网络清单 序号 网络名称 用途 1 PXE网络 用于OpenStack集群中其他节点从m
  • [转]QNX与Linux OS比较优劣-QNX与Linux两家未来有望独霸车载电子操作系统

    如果你认为本系列文章对你有所帮助 请大家有钱的捧个钱场 点击此处赞助 赞助额0 1元起步 多少随意 声明 本文只用于个人学习交流 若不慎造成侵权 请及时联系我 立即予以改正 锋影 email 174176320 qq com 车载电子操作系
  • 密码学与网络安全笔记整理-数据完整性技术

    1 数据完整性 类似于通信中的校验码功能 在密码学领域数据完整性用于验证收到信息的正确性 校验收到的信息是否经过篡改 校验收到的信息是真实的发送者发送而非伪造 发送者通过编码为消息增加一些 冗余 生成一个校验值 并将该校验值附在消息之后 接