海绵结构:Hash as RO

参考文献:

  1. [BDPA07] Bertoni G, Daemen J, Peeters M, et al. Sponge functions[C]//ECRYPT hash workshop. 2007, 2007(9).
  2. [GPP11] Guo J, Peyrin T, Poschmann A. The PHOTON family of lightweight hash functions[C]//Advances in Cryptology–CRYPTO 2011: 31st Annual Cryptology Conference, Santa Barbara, CA, USA, August 14-18, 2011. Proceedings 31. Springer Berlin Heidelberg, 2011: 222-239.
  3. Secure Hash Algorithm-3 (SHA-3) family

文章目录

  • Hash as RO
  • Sponge Function
  • Collisions
  • Random Sponge
  • Extended Sponge Functions

[BDPA07] 提出了海绵结构(sponge),这是 MD 结构之外的另一种 Hash 构造方法。

Hash as RO

Merkle-Damgard Construction

  • compression function:压缩函数是一个 block cipher,使用 message block 作为秘钥,去加密 chaining value
  • feedforward loop:将输入的消息切分为 message blocks,迭代计算压缩函数,将它的输出作为当前的 chaining value
  • message 被填充到分组密码的秘钥长度的整数倍,digest 就是最后一次迭代得到的 chaining value
  • 只要 compression function 抗碰撞,那么 MD Construction 就抗碰撞

但是在不同的应用中,我们要求 Hash 实例具有多种不同的安全性(不仅仅是抗碰撞性)。事实上很多密码方案中要求 Hash 表现的像是一个 Random Orcale(预期会满足任意的安全性要求)。确切地说,RO 将一个变长的输入映射为一个无限长的完全随机串,而 Hash 应当表现为某个 RO 的截断。

所有的 Iterated hash functions(例如 MD 结构)都存在 state collisions(有限的状态)。假如 M 1 ≠ M 2 ∈ Σ ∗ M_1 \neq M_2 \in \Sigma^* M1=M2Σ 会导致 chaining value 出现碰撞,那么对于任意的后缀 N ∈ Σ ∗ N \in \Sigma^* NΣ,总有 M 1 ∥ N ≠ M 2 ∥ N M_1\|N \neq M_2\|N M1N=M2N 具有相同的 digits,这个性质是 RO 不应该具有的。其实状态碰撞是被允许的,但它不应该表现出外部可见的行为。因此 Iterated hash functions 都不是好的 RO 实例

有两种解决办法,

  1. 避免迭代过程,例如 non-streamable hash functions
  2. 依旧使用迭代结构,但是需要消除状态碰撞的坏影响。根据这个策略,[BDPA07] 提出了海绵结构

Sponge Function

首先,定义字母表、内部状态集、编码函数:

在这里插入图片描述

[BDPA07] 定义了如下的海绵函数,

在这里插入图片描述

定义两个参数,比率和容量,

在这里插入图片描述

由于上述的 Sponge Function 被映射 f f f 确定,状态被输入 p p p 确定,我们简记 S f = ( S A , f , S C , f ) S_f=(S_{\mathcal A,f}, S_{\mathcal C,f}) Sf=(SA,f,SC,f) 是对应的海绵函数, S f [ p ] S_f[p] Sf[p] 是吸收后的状态,并将 p p p 称为到达此状态的路径。定义 S + a = ( S A + a , S C ) S+a = (S_\mathcal A + a, S_\mathcal C) S+a=(SA+a,SC),那么海绵函数可以递归地定义:
S f [ ∅ ] = ( 0 , 0 ) S f [ x ∥ a ] = f ( S f [ x ] + a ) z j = S A , f [ p ∥ 0 j ] \begin{aligned} S_f[\empty] &= (0,0)\\ S_f[x\|a] &= f(S_f[x] + a)\\ z_j &= S_{\mathcal A,f}[p\|0^j] \end{aligned} Sf[]Sf[xa]zj=(0,0)=f(Sf[x]+a)=SA,f[p0j]
注意,

  • 字母表 A \mathcal A A 可以是任意的有限集合,不仅仅是布尔值
  • 内部状态集 C \mathcal C C 是有限的,因此必然会发生碰撞
  • 编码函数将消息 m ∈ Σ ∗ m \in \Sigma^* mΣ 编码到字母 p ( m ) ∈ A p(m) \in \mathcal A p(m)A
    • 由于它是单的,且最后一个字符非凡,这导致 ( m 1 , j ) ≠ ( m 2 , k ) ⇒ p ( m 1 ) ∥ 0 j ≠ p ( m 2 ) ∥ 0 k (m_1,j) \neq (m_2,k) \Rightarrow p(m_1)\|0^j \neq p(m_2)\|0^k (m1,j)=(m2,k)p(m1)0j=p(m2)0k,于是它们的成为了不同的路径
    • 由于编码长度非凡(包括空串 m = ∅ m=\empty m= 的编码),因此海绵函数中的 f f f 至少执行一次,于是输出总是依赖于 f f f 的选取
  • 根据 Squeezing 过程的定义,海绵函数的输出是无限长的(具有和 RO 一样的接口),可以作为 stream cipher

Collisions

[BDPA07] 定义了两种碰撞类型,

  1. 状态碰撞(state collision):不同的路径 p ≠ q p \neq q p=q,使得 S f [ p ] = S f [ q ] S_f[p] = S_f[q] Sf[p]=Sf[q]
    • 它将导致 S f [ p ∥ 0 j ] = S f [ q ∥ 0 j ] , ∀ j ≥ 0 S_f[p\|0^j] = S_f[q\|0^j], \forall j \ge 0 Sf[p0j]=Sf[q0j],j0
    • 假如 q = p ∥ 0 k , ∃ k ≥ 1 q=p\|0^k, \exist k\ge1 q=p0k,k1,则会输出周期序列 S f [ p ∥ 0 j ] = S f [ p ∥ 0 k + j ] , ∀ j ≥ 0 S_f[p\|0^{j}] = S_f[p\|0^{k+j}], \forall j \ge 0 Sf[p0j]=Sf[p0k+j],j0
  2. 内部碰撞(inner collision):不同的路径 p ≠ q p \neq q p=q,使得 S C , f [ p ] = S C , f [ q ] S_{\mathcal C,f}[p] = S_{\mathcal C,f}[q] SC,f[p]=SC,f[q]
    • 很明显,状态碰撞导致了内部碰撞,反之不成立
    • 但是,假如发生了内部碰撞,那么可以构造 p ∥ a ≠ q ∥ b p\|a \neq q\|b pa=qb,使得 a , b a,b a,b 满足 S A , f [ p ] + a = S A , f [ q ] + b S_{\mathcal A,f}[p]+a = S_{\mathcal A,f}[q]+b SA,f[p]+a=SA,f[q]+b(公开计算,没有秘密),这就是一个状态碰撞

Random Sponge

假设 ∣ A ∣ = A |\mathcal A| = A A=A 以及 ∣ C ∣ = C |\mathcal C| = C C=C,由于转换函数 f f f 的定义域和值域都是 A × C \mathcal A \times \mathcal C A×C

  • 共有 ( A C ) A C (AC)^{AC} (AC)AC 个不同的转换函数
  • 共有 ( A C ) ! (AC)! (AC)! 个不同的置换函数

[BDPA07] 定义了两族随机的海绵函数,

在这里插入图片描述

接着,他们证明了:在黑盒归约下,唯一的区分 Random Sponge 以及 Random Oracle 的方式,就是内部碰撞的存在与否

在这里插入图片描述

只要容量 c c c 足够大,那么它就和 RO 统计不可区分(从而抵御各种的攻击)。注意到比率 r r r 对于安全性没有影响。经典的 MD 结构是假设了底层原语(也就是 block cipher)抵御某些攻击,从而给出安全归约。然而 Sponge 结构则是自身就不存在可被敌手利用的属性。[BDPA07] 还分析了 Sponge 对于多种攻击的抵抗性,包括:抗碰撞、抗原像、抗第二原像、抗长度延展、输入输出的相关性免疫。

当然,这里的安全性是关于 Random Sponge Function 的,但是 SHA3 标准使用的是一些固定的 Keccak 置换函数。如果存在设计缺陷(比如可以将 Keccak 对应的多元高次多项式的次数严重降低),那么它也将不是安全的 Hash 函数。注意,给定对称密码的某个实例,它的安全性分析只能利用已有的攻击方法,给出安全强度的上界,但无法给出其安全强度的下界。而公钥密码中的安全归约,在困难假设下,它给出的是安全强度的下界。

Extended Sponge Functions

[GPP11] 为了轻量化 Hash 函数,给出了扩展的海绵结构,

在这里插入图片描述
对于某个 n n n-bit extended sponge hash function with capacity c , c ′ c, c' c,c and bitrate r , r ′ r, r' r,r,在最著名的通用攻击下,安全强度为

在这里插入图片描述
其中 t = c + r = c ′ + r ′ t=c+r=c'+r' t=c+r=c+r 是内部状态的大小。随着比率 r ′ r' r 的增加,挤压阶段的运行时间减小,同时抗原像的能力减弱,两者有个权衡。为了完美的抗(第二)原像,可以要求 c ≥ 2 n c \ge 2n c2n,此时 r ′ r' r 就不再影响安全性。

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

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

相关文章

MBD_入门篇_19_Simulink数学运算模块

19.Simulink数学运算模块 19.1 概述 数学运算模块,包含了一些数学运算,比如最常用的加减乘除等。 19.2 Add加法模块 设置加法模块的形状,默认是方形的,推荐使用方形的。 运算符设置。 设置符号为-,可以理解为本来是0,…

CSS 设置空格原样显示 white-space:pre-wrap;

CSS 设置空格原样显示 问题描述 html 渲染内容时,对于 空格、回车、Tab 键的 默认处理方式是 : 无论存在多少个连续的空格,都只会保留一个。 结论 由于以上的特性,导致了我们无法直接渲染出原格式的文本。pre 标签 了解一下 &…

今日刷三题(day4):简写单词+dd爱框框+除2!

题目一:简写单词 题目描述: 比如 “College English Test”可以简写成“CET”,“Computer Science”可以简写为“CS”,“I am Bob”简写为“IAB” 输入输出描述: 输入:一个复合单词 输出:输…

20240330-1-词嵌入模型w2v+tf-idf

Word2Vector 1.什么是词嵌入模型? 把词映射为实数域向量的技术也叫词嵌⼊ 2.介绍一下Word2Vec 谷歌2013年提出的Word2Vec是目前最常用的词嵌入模型之一。Word2Vec实际是一种浅层的神经网络模型,它有两种网络结构,分别是连续词袋&#xff…

C++ stl容器stack,queue,priority_queue的底层模拟实现

目录 前言: 文档借鉴:Reference - C Reference 1.deque a.deque的结构特点: b.deque的迭代器结构: c.面试题: 2.stack 3.queue 4.仿函数 5.priority_queue 总结: 前言: 本篇一共简单…

Hive 中常用的函数以及数据类型

数据类型 1.基本数据类型: 数据类型大小范围示例TINYINT1byte-128 ~ 127100YSMALLINT2byte-32768 ~ 32767100SINT4byte-2^32~ 2^32-1100BIGINT8byte-2^64~ 2^64-1100LFLOAT4byte单精度浮点数5.21DOUBLE8byte双精度浮点数5.21DECIMAL-高精度浮点数DECIMAL(9,8)BOOLEAN-布尔型tr…

VF02 XBLNR增强将不可编辑状态改为可编辑状态

VF02 XBLNR增强将不可编辑状态改为可编辑状态 一、业务界面展示 二、在程序SAPMV60A的INCLUDE程序MV60AF0F_FELDAUSWAHL_SONDERREG增强 *$*$-Start: ZEN_POINT_TEST1---------------------------------------------------------------------$*$* ENHANCEMENT 1 ZFI_TEST01.…

C语言 | 自定义类型:联合和枚举

目录: ----前言 1. 联合体 1.1 联合体类型的声明 1.2 联合体的特点 1.3 相同成员的结构体和联合体对比 1.4 联合体大小的计算 1.5 联合的使用 1.6联合体的练习 2. 枚举 2.1 枚举类型的声明 2.2 枚举类型的优点 2.3 枚举类型的使用 --前言: c语言中内…

代码随想录刷题随记24-回溯

代码随想录刷题随记24-回溯 491. 非递减子序列 leetcode链接 与之前的集合问题不同&#xff0c;而本题求自增子序列&#xff0c;是不能对原数组进行排序的&#xff0c;排完序的数组都是自增子序列了。所以不能通过排序的问题去重 class Solution {List<List<Integer…

超越GPT-4V,苹果多模态大模型上新,神经形态计算加速MLLM(二)

上文介绍基于MINOnets神经网络架构加速多模态大模型的策略&#xff0c;本文将以Spinnaker2多核神经网络芯片EGRU架构为起点&#xff0c;覆盖存内计算架构&#xff0c;介绍新型计算架构在加速大模型推理的作用。SpiNNaker 2是一个设计用于大规模异步处理的多核神经形态芯片&…

建议收藏 | 2023年中国SCI期刊影响因子最新预测

公众号&#xff1a;生信漫谈&#xff0c;获取最新科研信息&#xff01; 2023年中国SCI期刊影响因子最新预测 经过Web of Science 官网对引用前50和IF排名前50的中国&#xff08;包括香港、澳门和台湾&#xff09;期刊以及中国主办或中国人主编的高影响力期刊进行了2023年影响…

数据结构_时间复杂度

✨✨所属专栏&#xff1a;数据结构✨✨ ✨✨作者主页&#xff1a;嶔某✨✨ 什么是时间复杂度&#xff1f; 时间复杂度的定义&#xff1a;在计算机科学中&#xff0c;算法的时间复杂度是一个函数&#xff0c;它定量描述了该算法的运行时间。一个算法执行所耗费的时间&#xff0…

YOLO世界:实时开放词汇对象检测

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读&#xff1a;YOLO世界&#xff1a;实时开放词汇对象检测1、研究背景2、提出方法3、相关技术3.1、Re-parameterizable Vision-Language Path Ag…

MySQL中InnoDB存储引擎详细介绍

介绍 InnoDB是一种兼顾高可靠性高和高性能的通用存储引擎&#xff0c;在MySQL5.5之后&#xff0c;InnoDB是默认的MySQL存储引擎。 特点 DML(增删改)操作遵循ACID(事务四大特性)模型&#xff0c;支持事务&#xff1b;行级锁&#xff0c;提高并发访问性能支持外链FORELGN KEY约…

Jenkins服务器IP更换,Jenkins URL地址更换

服务器的网络地址发生变动&#xff0c;修改jenkins服务器IP地址后&#xff0c;jenkins网页能够打开&#xff0c;但是job中的配置钩子没有自动改变&#xff0c;如图所示&#xff1a; 经过查询资料了解&#xff0c;需要修改jenkins本地化配置地址才可以显示正确&#xff1a; 1、…

2024最好用的11个AI搜索引擎工具盘点!

0. 未来百科 未来百科&#xff0c;最大的 中文AI 产品导航网站 —— 为发现全球优质 AI 工具而生 。目前已 聚集全球 10000优质 AI 工具产品 &#xff0c;旨在帮助用户发现全球最好的 AI 工具&#xff0c;同时为研发 AI 垂直应用的创业公司提供展示窗口&#xff0c;迎接未来的…

如何在群晖NAS部署office系统办公服务并实现无公网IP远程编辑文件

文章目录 本教程解决的问题是&#xff1a;1. 本地环境配置2. 制作本地分享链接3. 制作公网访问链接4. 公网ip地址访问您的分享相册5. 制作固定公网访问链接 本教程解决的问题是&#xff1a; 1.Word&#xff0c;PPT&#xff0c;Excel等重要文件存在本地环境&#xff0c;如何在编…

【001_IoT/物联网通信协议基础: HTTP、Websocket、MQTT、AMQP、COAP、LWM2M一文搞懂】

001_IoT/物联网通信协议基础: HTTP、Websocket、MQTT、AMQP、COAP、LWM2M一文搞懂 文章目录 001_IoT/物联网通信协议基础: HTTP、Websocket、MQTT、AMQP、COAP、LWM2M一文搞懂创作背景通信模型ISO/OSI七层模型 和 TCP/IP四层模型网络通信数据包格式&#xff08;Ethernet II&…

Linux SDIO-WiFi 协议栈

Linux SDIO-WiFi 协议栈 1. 简介2. BCMDHD2.1 WiFi模组 1. 简介 2. BCMDHD BCMDHD&#xff1a;Broadcom Dongle Host DriverSIP&#xff1a;System In Package 2.1 WiFi模组

互连芯片浪潮席卷AI服务器:突破瓶颈,再创辉煌

改变AI服务器&#xff1a;互连芯片技术创新和突破 AI服务器崛起&#xff0c;引领未来创新根据TrendForce数据&#xff0c;AI服务器出货量达130,000台&#xff0c;占服务器总出货量的1%。主要制造商推出生成式AI产品&#xff0c;推动订单激增。ChatGPT等应用的需求持续增长&…