现代密码学5.1--哈希函数定义

  • 密码学的假设
  • 抗碰撞哈希函数定义
    • 与数据结构中定义的哈希函数的不同
  • 哈希函数的密钥
  • 安全性:抗碰撞哈希函数>抗二次原像/抗目标碰撞哈希函数>抗原像哈希函数
    • 抗碰撞的
    • 抗二次原像/抗目标碰撞的
    • 抗原像的
    • 安全性强弱
  • 安全性与攻击难度

博主正在学习INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些笔记供自己回忆,如有错误请指正。整理成一个系列现代密码学,方便检索。

  • 第二章定义了完美安全及其对应的密码方案“一次一密”,
  • 第三章介绍了
    • 3.1-3.3 计算安全,PRG和基于PRG构造的满足计算安全的密码方案;
    • 3.4-3.5 CPA安全,PRF和基于PRF构造的满足CPA安全的密码方案
    • 3.6 基于PRG和PRF构造的流密码和分组密码;
    • 3.7 CCA安全,对非CCA安全密码方案的攻击
  • 第五章将介绍哈希函数,而5.1节先介绍哈希函数的定义。

密码学的假设

密码学是基于假设的一门学科

  • 最基础的假设是P≠NPP\neq NPP​=NP
  • 更强一点的是单向函数存在
  • 更强一点的是PRFPRFPRF存在
  • 更强一点的是抗碰撞哈希函数存在
  • 更强的是公钥加密算法存在

抗碰撞哈希函数定义

  • 任意长度长的输入字符串映射到固定长度短的输出字符串
  • 抗碰撞:x≠x′x\neq x'x​=x′,H(x)=H(x′)H(x)=H(x')H(x)=H(x′)

与数据结构中定义的哈希函数的不同

    • 数据结构中的哈希函数:最小化碰撞;
    • 密码学中的哈希函数:抗碰撞是一个必要条件
    • 数据结构中的哈希函数:元素选择独立于哈希函数,也不需要考虑是否会导致碰撞;
    • 密码学中的哈希函数:元素选择需要考虑哈希函数以及是否会导致碰撞

哈希函数的密钥

  • keyed哈希函数/有密钥的哈希函数

    • Hs(x)=defH(s,x)H^s(x)\overset{def}{=}H(s,x)Hs(x)=defH(s,x)
    • 这里的密钥与其他密钥至少有两个不同:
      • 不是所有字符串都对应有效密钥,HsH^sHs可能不是一个抗碰撞哈希函数(所以往往有一个专门的keyGen函数生成有效密钥)
      • 密钥sss是公开的
  • unkeyed哈希函数/无密钥的哈希函数
    • 从理论上来说,这种哈希函数不是抗碰撞的:没有密钥,则一定存在一个破解算法知道这个固定的key,硬编码这种碰撞对(x,x′)(x,x')(x,x′)到破解算法中
    • 从实践上来说,还是抗碰撞的:虽然有这样一个破解算法,但在多项式时间内找不到

安全性:抗碰撞哈希函数>抗二次原像/抗目标碰撞哈希函数>抗原像哈希函数

抗碰撞的

给定密钥sss,PPT敌手不能找到一个碰撞对(x,x′)(x,x')(x,x′),x′≠xx'\neq xx′​=x使得Hs(x′)=Hs(x)H^s(x')=H^s(x)Hs(x′)=Hs(x),则称Hs(x)H^s(x)Hs(x)是抗碰撞的。

抗二次原像/抗目标碰撞的

给定密钥sss和一个均匀xxx,PPT敌手不能找到一个x′≠xx'\neq xx′​=x使得Hs(x′)=Hs(x)H^s(x')=H^s(x)Hs(x′)=Hs(x),则称Hs(x)H^s(x)Hs(x)是抗二次原像的 / 抗目标碰撞的 / target-collision resistance / Second-preimage resistance。

抗原像的

给定密钥sss和一个均匀随机字符串yyy,PPT敌手找不到一个xxx使得Hs(x)=yH^s(x)=yHs(x)=y,则称Hs(x)H^s(x)Hs(x)是抗原像的 / preimage resistance。

安全性强弱

  • 如果一个哈希函数是抗碰撞的,则一定是抗目标碰撞的

    • 给定x′x'x′,如果敌手能找到x≠x′x\neq x'x​=x′,使得H(x)=H(x′)H(x)=H(x')H(x)=H(x′)(不抗目标碰撞的)
    • 则敌手找到碰撞对(x,x′)(x,x')(x,x′)(不抗碰撞的)
    • 逆否命题:如果一个哈希函数不抗目标碰撞,则一定不抗碰撞
  • 如果一个哈希函数是抗目标碰撞的,则一定是抗原像的

    • 给定yyy,如果敌手能找到xxx,使得Hs(x)=yH^s(x)=yHs(x)=y(不抗原像的)
    • 则对于给定的x′x'x′,计算y=Hs(x′)y=H^s(x')y=Hs(x′),能找到xxx,使得Hs(x)=yH^s(x)=yHs(x)=y(不抗目标碰撞的)
    • 逆否命题:如果一个哈希函数不抗原像,则一定不抗目标碰撞

安全性与攻击难度

  • 如果一个哈希函数

    • 是抗目标碰撞的,
    • 不是抗碰撞的
  • 则敌手在抗目标碰撞层面不能攻击它
  • 在抗碰撞层面可以攻击它

现代密码学5.1--哈希函数定义相关推荐

  1. 现代密码学5.4--对哈希函数的攻击

    现代密码学5.4--对哈希函数的攻击 生日攻击 生日问题 博主正在学习INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan K ...

  2. 【现代密码学原理】——哈希函数(学习笔记)

  3. 变色龙哈希函数-区块链

    变色龙哈希调研 1. 调研背景 1.1哈希函数定义 哈希函数是一类具有以下特征的函数:将任意长度输入的字串可转换成一个固定长度的字串,通过原始字串可以很容易地算出转换后的字串,通过转换后的字串很难还原 ...

  4. 变色龙哈希函数Chameleon Hash Functions

    变色龙哈希函数Chameleon Hash Functions 一.哈希函数 1.1 哈希函数定义 1.2 哈希函数性质 1.3 哈希函数存在的问题 二. 变色龙哈希函数 2.1 变色龙哈希函数定义 ...

  5. python 密码学计算_python 密码学示例——理解哈希(Hash)算法

    Hash 是密码学安全性的基石,它引入了单向函数(one-way function)和指纹(fingerprint)的概念.即: 对于任意输入,都可以产生相同的.唯一的输出值 输出值中不包含输入值的任 ...

  6. 密码学数学基础,群,阿贝尔群,阶,双线性对,哈希函数,消息认证码概述

    目录 抽象代数基础 群 阿贝尔群(Abelian Group) 阶(Order) 循环群(Cyclic Group) 双线性对 哈希函数H 消息认证码MAC 抽象代数基础 群 定义 群(Group), ...

  7. 密码学小知识(6):变色龙哈希函数(Chameleon Hash)

    本篇博文将介绍变色龙哈希函数. 在介绍变色龙哈希函数之前,我们先简单回顾一下经典的哈希函数,这样就能对比它们之间的差别. 文章目录预览 本篇博文将介绍变色龙哈希函数. 一.哈希函数 二.变色龙哈希函数 ...

  8. 1.1 密码学哈希函数

    我们需要理解的第一个密码学的基础知识是密码学哈希函数,哈希函数是一个数学函数,具有以下三个特性: ● 其输入可为任意大小的字符串. ● 它产生固定大小的输出.为使本章讨论更具体,我们假设输出值大小为2 ...

  9. 哈希函数在密码学中的应用

    本文出自 AC.HASH 团队,AC<=>Adaptive Creator,适应性创作者,旨在于能够在未来新领域下创造出新的哈希算法以应对未来局面. 产出本文的成员: 中原工学院大二在校生 ...

最新文章

  1. Sublime Text 3 及Package Control 安装(附上一个3103可用的Key)
  2. 介绍一下你对浏览器内核的理解?
  3. 快速启动程序的工具软件都比不了Win+R-转
  4. 卡常神器——register 与 快速读入输出
  5. AngularJS中的表达式
  6. win10磁盘100官方解释_win10磁盘分区管理工具大变脸,现代磁盘管理工具喷薄而出...
  7. Vijos——T 1016 北京2008的挂钟 || 洛谷—— P1213 时钟
  8. 单元测试自动生成测试用例
  9. typora下载安装步骤
  10. 计算机的次要功能,FRM考试时所用计算器的操作指南
  11. 数据抽样方式:概率抽样、非概率抽样
  12. D630,vista sp2,4GB Turbo Memory,ITMService.exe(SmartPinService),Posses lots of CPU Resources
  13. ios 扫码枪外设 键盘模式_iPadOS 显威力,苹果 iPad Pro 终于用上带触控板的外接键盘...
  14. 下载b站视频方法,pr去水印
  15. oracle数据库课程描述,《ORACLE数据库简介》课件.ppt
  16. vue点击定位到指定位置_vue页面内部定位到锚点位置
  17. Linux ffs()函数
  18. 微信小程序名片3:0大战纸质名片,你应该知道如何选择了吧
  19. word计算机桌面加密,如何给电脑的Word文件加密
  20. 招标投标中各流程时间期限的规定

热门文章

  1. Uncaught TypeError: Cannot read property 'style' of null
  2. 怎样通过css控制table的部分td
  3. Address already in use: JVM_Bind 端口被占用解决办法
  4. mysql 隐式锁和显示锁_锁的类型以及粒度,两段锁协议,隐式和显示锁
  5. 计算营业额python_用python教你计算定投能获得多少收益
  6. 串行和并行的区别_入门参考:从Go中的协程理解串行和并行
  7. 电脑显示器变色_两千元档超强电竞小金刚:180hz的泰坦军团T27QR显示器
  8. 成功解决Error while trying to retrieve text for error ORA-12154
  9. CV之FD之HOG:图像检测之基于HOG算法、简介、代码实现(计算图像相似度)之详细攻略
  10. DL之LeNet-5:LeNet-5算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略