密码学学习笔记(十二):压缩函数 - Davies–Meyer结构

密码学中压缩函数是指将输入的任意长度消息压缩为固定长度输出的函数。压缩函数以两个特定长度的数据为输入,产生与其中一个输入大小相同的输出。简单来说就是它接受一些较长的数据,输出更短的数据。

压缩函数接收长度为X和Y的两个不同输入,并生成长度为X或Y的输出

在CRYPTO 2016,Cogliati和Seurin介绍了Encrypted Davies-Meyer(EDM)结构。

其中p1、p2是两个排列

Cogliati和Seurin证明了EDM^{p1,p2}的行为类似于复杂度为2^{2n/3}的随机函数,并实际上推测2^{n}是可能的。

构造方法

XOR操作

XOR异或操作是一种按位操作的运算。

1\oplus 0 = 1

1\oplus 1 = 0

0\oplus 1 = 1

0\oplus 0 = 0

XOR的操作对象是2个比特。除两个操作数都是1的情况外,XOR运算与OR运算的结果完全一样。

Davies–Meyer

Davies–Meyer构造方法是是一种很常见的构造压缩函数的方法。压缩函数的第一个和输入块作为分组密码的密钥;第二个输入块作为分组密码的输入进行加密。然后用第二个输入块与分组密码的输出进行异或XOR操作。

使用分组密码F的Davies-Meyer构造的示意图如下所示:

压缩函数的Davies-Meyer构造使用了n位密钥长度和l位块长度的分组密码。

压缩函数可以被定义为:

为了证明所得到的压缩函数的抗碰撞性,我们将F建模为理想密码(理想随机强置换)。任何用于实例化理想密码的分组密码都必须根据理想密码提出的以下更严格的要求进行评估。

  • 所有各方都可以访问一个用于随机密钥排列的预言机。

F : \left \{ 0,1 \right \}^{n} \times F : \left \{ 0,1 \right \}^{l} \rightarrow F : \left \{ 0,1 \right \}^{l}

以及它的逆F^{-1}

另一种认为这一点的方法是,每个密钥k\in \left \{ 0,1 \right \}^{n}在l个比特串上指定了一个独立的、一致的置换F(k,·)。 计算F(或F^{-1})的唯一方法是用(k,x)显式查询预言机并接收回F(k,x)。

  • 理想的密码模型意味着不存在相关的密钥攻击。即,排列F(k,·)和F(k',·)必须独立地表现,即使例如,k和k'仅在一个比特上不同。
  • 不可能存在一种弱密钥k(例如,全0密钥),因为F(k,·)很容易与随机区分。
  • 即使在已知k的情况下,F(k,·)也应该是随机的。

如果F被建模为理想密码,那么Davies-Meyer构造产生了抗碰撞压缩函数。具体地说,任何对其理想密码预言机进行q< 2^{n/2}查询的攻击者都会发现概率最大为q^{2}/2^{l}的冲突。

  • SHA-2算法的压缩函数采用的就是Davies–Meyer构造方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/41817.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

青岛大学_王卓老师【数据结构与算法】Week05_14_队列的顺序表示和实现2_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c; 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础…

回归预测 | MATLAB实现基于ELM-Adaboost极限学习机结合AdaBoost多输入单输出回归预测

回归预测 | MATLAB实现基于ELM-Adaboost极限学习机结合AdaBoost多输入单输出回归预测 目录 回归预测 | MATLAB实现基于ELM-Adaboost极限学习机结合AdaBoost多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于ELM-Adaboost极限学…

Java线程相关

线程优先级 在Java线程中&#xff0c;通过一个整型成员变量priority来控制优先级&#xff0c;优先级的范围从1~10&#xff0c;在线程构建的时候可以通过setPriority(int)方法来修改优先级&#xff0c;默认优先级是5&#xff0c;优先级高的线程分配时间片的数量要多于优先级低的…

【基于 GitLab 的 CI/CD 实践】01、GitLab CI/CD 基础概念

目录 一、为什么要做 CI/CD &#xff1f; 1.1 背景-传统的应用开发发布模式 问题 1.2 持续集成与持续交付 持续集成&#xff08;CI&#xff09; 持续交付&#xff08;CD&#xff09; 持续部署&#xff08;CD&#xff09; 1.3 CI/CD 的价值体现 1.4 推荐常用的 CI/CD 工…

Linux内核结构与特性简介

系统调用接口&#xff1a;位于最上层&#xff0c;实现了一些基本的功能&#xff0c;如read和write等系统调用。这是用户空间程序与内核交互的接口&#xff0c;提供了对内核功能的访问。 内核代码&#xff1a;位于系统调用接口之下&#xff0c;可以看作是独立于体系结构的通用内…

linux之Ubuntu系列(四)用户管理 用户和权限 chmod 超级用户root, R、W、X、T、S 软链接和硬链接 shell

r(Read&#xff0c;读取)&#xff1a;对文件而言&#xff0c;具有读取文件内容的权限&#xff1b;对目录来说&#xff0c;具有浏览目 录的权限。 w(Write,写入)&#xff1a;对文件而言&#xff0c;具有新增、修改文件内容的权限&#xff1b;对目录来说&#xff0c;具有删除、移…

基于单片机快递柜的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;液晶显示当前信息&#xff0c;最多可存储几十个&#xff1b;按下存储按键液晶显示当前快递柜剩余数量&#xff1b;继电器打开&#xff0c;表示用来放物品&#xff1b;正次按下存储按键将取消存快递&#xff0c;继电器关闭快递柜可用…

Spark编程-使用SparkCore求TopN,Max_Min_Value

简介 使用SparkCore求top5值编程&#xff0c;最大最小值 求订单前五的TOP5值 数据 数据字段如下&#xff1a;orderid,userid,payment,productid 需求如下&#xff1a;从文本文件中读取数据&#xff0c;并计算出前5个payment(订单的付款金额)值 //字段 orderid,userid,payme…

在 3ds Max 中对二战球形炮塔进行建模

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 实际上被称为“斯佩里球炮塔”&#xff0c;它被用于二战的B-17和B-24轰炸机。 本教程介绍如何在 3ds Max 中对球形转塔进行建模。建模时&#xff0c;您将使用背景图片作为辅助。首先创建一个低多边形球体。…

视频融合平台EasyCVR登录后通道数据及菜单栏页面显示异常的排查与解决

EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等&#xff0c;以及厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等&#xff0c;能对外分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。 有用…

Windows11 C盘瘦身

1.符号链接 将大文件夹移动到其他盘&#xff0c;创建成符号链接 2.修改Android Studio路径设置 1.SDK路径 2.Gradle路径 3.模拟器路径 设置环境变量 ANDROID_SDK_HOME

存量市场下,雅迪的高端化之路举步维艰?

为了让自家的高端产品成功“突围”&#xff0c;雅迪在营销上无所不用其极。 继在央视大楼高调发布后&#xff0c;近日雅迪冠能探索E10完成了力战70吨游艇、无惧24吨雨水冲刷、制霸百公里全地形等极限挑战&#xff0c;“树立起新一代两轮电动车豪华标杆旗舰”。 图源&#xff1…

字节跳动后端面试,笔试部分

var code "7022f444-ded0-477c-9afe-26812ca8e7cb" 背景 笔者在刷B站的时候&#xff0c;看到了一个关于面试的实录&#xff0c;前半段是八股文&#xff0c;后半段是笔试部分&#xff0c;感觉笔试部分的题目还是挺有意思的&#xff0c;特此记录一下。 笔试部分 问…

Jmeter性能测试,通过插件监控服务器资源使用情况

Jmeter作为性能测试的首选工具&#xff0c;那么在性能测试过程中如何方便快捷的监测服务器资源使用情况&#xff1f; 可以通过jmeter 安装"PerfMon(Servers Performance Monitoting)"插件并配合服务端资源监控工具进行实现&#xff0c;详细操作流程如下&#xff1a;…

【微信机器人开发

现在并没有长期免费的微信群机器人&#xff0c;很多都是前期免费试用&#xff0c;后期进行收费&#xff0c;或者核心功能需要付费使用的。 这时如果需要群机器人帮助我们管理群聊&#xff0c;建议大家使有条件的可以自己开发微信管理系统。了解微信群机器人的朋友都知道&#x…

教程 | 如何10秒内一键生成高质量PPT

Hi! 大家好&#xff0c;我是赤辰&#xff01; 近期新进的学员不少职场小白&#xff0c;对AI工具提效办公很感兴趣&#xff0c;今天火速给大家安排&#xff0c;ChatGPTMindShow强强联合&#xff0c;30秒内快速生成PPT&#xff0c;对于策划小白来说简直是福音呀&#xff01; 市…

第三方api对接怎么做?淘宝1688api接口怎么对接?

在今天的互联网上&#xff0c;第三方API对接是必不可少的。这种技术将不同的应用程序/服务连接在一起&#xff0c;创造了无限的可能性。 第三方api对接怎么做&#xff1f; 1、与支付公司签约 首先&#xff0c;通过正规的渠道&#xff0c;如支付公司官网或正规服务商&#xf…

Echarts 修改背景颜色、全屏自适应屏幕

修改背景色&#xff1a; 全屏自适应屏幕 首先拿到外面的div的高度 通过DOM获取clientHeight即为无论全屏与否都是DIV的整个高度 在通过高度去做自适应就好了

Redis可视化工具(Redis Desktop Manager)

redis是我们平时开发工作中经常用到的非关系型数据库&#xff0c;常用于做数据缓存&#xff0c;分布式锁等。 为了更方便的使用redi&#xff0c;这里给大家推荐一款可视化工具&#xff1a;Redis Desktop Manager。 1.下载与安装 直接到gihub下载&#xff0c;地址 Release 0.…

搭建Redis主从集群和哨兵

说明&#xff1a;单机的Redis存在许多的问题&#xff0c;如数据丢失问题、高并发问题、故障恢复问题、海量数据的存储能力问题&#xff0c;针对这四个问题&#xff0c;对应解决方式有&#xff1a;数据持久化&#xff08;参考&#xff1a;http://t.csdn.cn/SSyBi&#xff09;、搭…