密码学学习笔记(六):Hash Functions - 哈希函数2

news2024/11/26 2:44:03

哈希函数是怎么构成的?

Merkle–Damgård结构

  • 哈希函数需要能够处理任意长度的输入。
  • 许多散列函数,例如MD5、SHA-1、SHA-2,都是由构建块(称为压缩函数)组成的,这些构建块可以处理特定的块大小,并提供较短的输出,例如SHA-256:768位到256位
  • 输入被分解成块,并用1000…0填充,连接64位的输入长度
  • 如果h是抗冲突的,则哈希函数是抗冲突

如果压缩函数本身是抗碰撞的,那么我们可以证明Merkle–Damgård结构是抗碰撞的。这样一来,输入长度不固定的哈希函数的安全性就简化为输入长度固定的压缩函数的安全性。

Davies–Meyer结构

  • 给定一个分组密码,构造一个压缩函数
  • 消息块作为分组密码密钥
  • 以前的散列块作为分组密码输入
  • 从分组密码的密钥+分组长度到分组密码的分组长度的压缩
  • 如果分组密码是“理想”的分组密码,则该结构是抗冲突的
  • 用于MD5(损坏)、SHA-1(E=SHACAL-1)、SHA-2(E=SHACAL-2)

这个压缩函数的第一个输入块作为分组密码的密钥;第二个输入块作为分组密码的输入进行加密。然后,用第二个输入快与分组密码的输出进行异或操作。

Sponge Construction - 海绵结构

  • 最近的散列函数,比如SHA-3(Keccak),是基于一个叫做Sponge的构造。
  • 安全级别由容量c决定,r表示速率。
  • 与Merkle–Damgård不同,Sponge的输出大小是灵活的。

注:这三个构造只是简单介绍了一下,并没有详细的解释原理。以后有时间会把每个构造单独写一篇博客。

SHA-3 竞赛

  • 目标:替代SHA-2
  • 2007年:NIST宣布竞争
  • 2008年:提交截止日期,宣布了51名第一轮候选人
  • 2009年:宣布了14名第二轮候选人
  • 2010年:宣布了5名决赛选手:BLAKE、Grøstl、JH、Keccak、Skein
  • 2012年:Keccak宣布成为SHA-3冠军

Z

https://csrc.nist.gov/projects/hash-functions/sha-3-project
https://ehash.iaik.tugraz.at/wiki/The_SHA-3_Zoo

一个好的哈希函数能带来多强的安全性

Preimage Security - 第一原像性安全

  • 如果我们有一个完美的散列函数,比如说256位输出…
  • 执行图像前攻击(即给定输出,找到输入)的唯一方法是尝试逐一对不同输入进行彻底搜索(也称为暴力搜索 - brute-force)。
  • 我们很有可能通过尝试大约2256个输入来找到预图像(为什么?)。所以我们说它提供了256位的预映像安全性。
  • 具有d位输出的哈希函数可能提供的最大预映像安全级别是d位。

Collision Security - 碰撞性安全

  • 让我们在具有256位输出的哈希函数中强制执行冲突
  • •当我们尝试例如第i个输入时x_{i}, 我们可以检查一下𝐻(x_{i}) 与之前的任何一个相同,比如𝐻(x_{0}),𝐻(x_{1}),...,𝐻(x_{i-1}
  • 因此,在第i步中,我们有成功的概率𝑖/2^{256}
  • 所以总的概率是:

  • 这意味着,通过大约2^{128}次尝试,我们可以很有可能发现碰撞
  • 具有d位输出的哈希函数可能提供的最大冲突安全级别为d/2位

Birthday Bound - 生日边界

  • 对于很多人来说,找到一对生日相同的情侣的概率是多少?
  • 只有23人,约50%的机会
  • 一般来说,如果有𝑛个可能性,随机选择将有50%的机会碰撞后大致\sqrt{n}尝试。

Merkle哈希树

  • 哈希可以排列在一个称为Merkle哈希树的二叉树中。
  • 只有最高级哈希(根哈希)才需要保持安全,以检测记录中的任何更改。
  • 用于例如BitTorrent、Git、比特币

Membership Proof

  • 为了证明记录在数据库中具有给定的根哈希,只需要给定与路由到根哈希相邻的哈希。
  • 其余数据不需要,可以保持隐私。

HMAC

  • 修改Merkle–Damgård结构,从压缩函数h构建安全的MAC
  • ipad和opad是固定常数
  • 如果h具有抗碰撞性,则HMAC为UF-CMA
  • 比CBC-MAC快得多

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SSM 整合 Shiro 安全框架【快速入门】

一、搭建ssm工程&#x1f349; 1.创建工程&#x1f95d; 更改web路径 创建所需目录 2.引入依赖&#x1f95d; <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"h…

LVS+Keepalived负载均衡高可用群集

目录 一、Keepalived高可用详解 1.应用场景 2.介绍和原理简介 3.主要模块和作用 二、LVSkeepalived配置实例&#xff08;抢占模式&#xff09; 1.配置NFS共享存储器 2.配置节点web服务&#xff08;两台的配置相同&#xff09; 3.配置主备LVSkeepalived负载调度器 三、非…

JAVA判断当前时间是否为节假日、周末、工作日,简单有效!

JAVA判断当前时间是否为节假日、周末、工作日 需求 有这么个需求&#xff0c;需要判断拿到的这个日期是否为节假日&#xff0c;周末&#xff0c;工作日&#xff0c;然后做剩下的操作。 话不多说&#xff0c;上代码 1.首先需要拿到节假日api 节假日API地址 2.拿到接口&…

Open3d计算点云切片

computePlane()给出三个点计算平面方程参数 设通过P1&#xff0c;P2&#xff0c;P3三点的平面方程为A(x - x1) B(y - y1) C(z - z1) 0 。化简为一般式&#xff1a;Ax By Cz D 0。 将P1(x1,y1,z1)点数值代入方程Ax By Cz D 0。 即可得到&#xff1a;Ax1 By 1 Cz1 D…

css之文字宽度自适应、width、fit、content

文章目录 效果图htmlcss解析width 效果图 html <div><div class"width_600"><div class"d_f ai_c bc_1296db padding_7 radius_8 cursor_pointer" style"width: fit-content;"><img class"width_26 height_26" …

ps通道抠图

相信我们在抠图的时候都遇到过这种问题&#xff1a; 在扣取一些像树木、毛发等类似图像的时候&#xff0c;用魔棒或者快速选择工具根本抠不完整&#xff08;图1&#xff09;&#xff0c;而且就算抠出来也是毛毛刺刺的&#xff0c;使用效果很拉跨。而通道抠图&#xff08;图2&a…

真的不想知道文档翻译在线翻译怎么弄才简单吗

从前有一个小明&#xff0c;他是一名国际商人。他需要将公司的商业计划书翻译成多种语言&#xff0c;以便在海外市场推销。但是&#xff0c;他并不会所有需要的语言&#xff0c;于是他开始寻找一种方法来进行文档翻译。终于&#xff0c;他找到了一种文档翻译的有效方法&#xf…

Dynamsoft Barcode Reader crack

Dynamsoft Barcode Reader crack SDK经过重构&#xff0c;与DynamsoftCaptureVision(DCV)体系结构集成&#xff0c;该体系结构包括&#xff1a; ImageSourceAdapter(ISA)-标准输入接口&#xff0c;用于将来自不同来源的图像数据转换为标准输入图像数据。此外&#xff0c;ISA结合…

2023第七届河南省高等学校信息安全对抗大赛-御网杯-ISCC2023线下赛-misc(详解-思路-脚本)

芜湖~ 是真累呀 原本一天的时间 硬打了一天半 还是那句话 不评价 各位道友心中自有公论 我misc手又发现一个小小的非预期 哎 没想到线下也有这种情况 欧克 以下是我自己的一些思路和解析 有什么问题或者建议随时都可以联系我 2023第七届河南省高等学校信息安全对抗大赛-御…

医疗设备中的直线导轨使用哪种润滑脂?

直线导轨属于滚动功能部件&#xff0c;看似普通&#xff0c;却是大多数医疗设备的核心功能部件之一&#xff0c;也是保障医疗设备精度的基础&#xff0c;需要具备高精度、高耐磨、高顺畅等性能&#xff0c;对生产企业的研发实力、制造工艺及技术水平提出相当大的挑战&#xff0…

计算机体系结构基础知识介绍之缓存性能的十大进阶优化之关键词优先和提前重启以减少失误处罚、合并写入缓冲区以减少惩罚(五)

优化五&#xff1a;关键词优先&#xff0c;提前重启&#xff0c;减少漏判 处理器通常一次只需要缓存块中的一个字&#xff08;word&#xff09;。不要等待整个块被加载&#xff0c;而是在请求的字到达后就立即发送给处理器&#xff0c;并让处理器继续执行&#xff0c;同时填充…

安装TESSY测试软件,装D盘就没问题,装C盘就报这个错误了

环境&#xff1a; Win10 专业版 TESSY4.3 问题描述&#xff1a; 安装TESSY测试软件&#xff0c;装D盘就没问题&#xff0c;装C盘就报这个错误了 解决方案&#xff1a; 1.看了报错说明&#xff0c;之前安装的文件夹名字有空格 2.在C盘重新建立一个文件夹&#xff0c;文件夹…

android设备树理解

一、根据lunch 查找具体的dts文件 比如&#xff1a;lunch msm8953_64-userdebug 下面的1 和 2 借鉴自&#xff1a; 如何找到kernel所用的dtsi_百度知道 1、找具体本系统需要的dts文件 然后在out/target/product/msm8953_64/obj/KERNEL_OBJ的.config 里去找这个CONFIG_ARC…

Mybatis XML文件转换SQL

toSQL Mybatis XML 转换为 SQL语句 源码地址: https://github.com/huxuekuo/toSQL 使用方法 可以在IDEA plugin 中搜索 toSQL使用源码编译后的jar, 在IDEA plugin 中添加在releases中下载jar文件 转换效果展示 <select id"findPage" parameterType"map&…

【正点原子STM32连载】 第五十章 FATFS实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html# 第五…

国产显卡主机也能畅玩游戏,支持8K分辨率售价8K

NVIDIA RTX 40 系列显卡上至 4090&#xff0c;下至 4060&#xff0c;不同定位代表型号如今基本都已发售。 要说性能强劲提升明显的买不起&#xff0c;买得起的又毫无诚意&#xff0c;大写的发布了个寂寞。 还真就应了网友口中那句&#xff1a;整个 40 系纯纯一「天使」&#…

node包管理器nvm的安装与使用,以及安装遇到的问题和解决方案

前言 随着vue3.0的普及&#xff0c;公司的新项目也都开始使用vue3.0typescriptvite的模式了&#xff0c;但是有的老项目还在有vue2.0&#xff0c;所以在开发不同项目的时候就会遇到因为node版本不同带来的各种不兼容&#xff0c;这个时候就需要用到nvm管理node版本&#xff0c;…

STL好难(4):list的使用

和列表很像 1.list的介绍 点击这里查看 list 的官方文档 list类似数据结构中的链表 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。2. list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独…

分布式操作系统期末复习(辽宁大学王龙主讲)包含往年期末题

目录 一、题目 1.1 简答题 1.2 综合题 二、题目答案 2.1 简答题目答案 2.2 综合题目答案 三、期末题型分值分布 3.2 题型和分值 一、题目 1.1 简答题 1什么是中间件 22.1&#xff08;22年期末考试第一题&#xff09; 2 什么是名称解析 23.1 3 描述一下客户和服务器…

【NLP】Word2Vec原理和认识

一、介绍 Word2Vec是NLP领域的最新突破。Tomas Mikolov是捷克计算机科学家&#xff0c;目前是CIIRC&#xff08;捷克信息学&#xff0c;机器人和控制论研究所&#xff09;的研究员&#xff0c;是word2vec研究和实施的主要贡献者之一。词嵌入是解决NLP中许多问题不可或缺的一部分…