Secure Hash Algorithm-3 (SHA-3) family
创始人
2024-05-22 06:21:51
0

参考文献:

  1. Bertoni G, Daemen J, Peeters M, et al. Keccak[C]//Advances in Cryptology–EUROCRYPT 2013: 32nd Annual International Conference on the Theory and Applications of Cryptographic Techniques, Athens, Greece, May 26-30, 2013. Proceedings 32. Springer Berlin Heidelberg, 2013: 313-314.
  2. Dworkin M J. SHA-3 standard: Permutation-based hash and extendable-output functions[J]. 2015.

文章目录

  • 置换函数
  • 海绵结构
  • Hash & XOF

2012年10月2日,Keccak 被选为 NIST(National Institute of Standards and Technology)散列函数竞赛的胜利者。SHA-3 并不是要取代 SHA-2,因为 SHA-2 并没有出现明显的弱点。由于对 MD5 和 SHA-1 出现成功的破解,NIST 感觉需要一个与之前算法不同的、可替换的加密散列算法,也就是 SHA-3。

置换函数

KECCAK−p[b,nr]KECCAK-p[b,n_r]KECCAK−p[b,nr​] 置换函数,这里的 nrn_rnr​ 是轮数(round), 而 b∈{25,50,100,200,400,800,1600}b \in \{25,50,100,200,400,800,1600\}b∈{25,50,100,200,400,800,1600} 是宽度(width)

在这里插入图片描述

状态 state 是大小 5×5×w5 \times 5 \times w5×5×w 的三维数组,它的两维的子数组叫做 sheets, planes, slices,一维子数组叫做 rows, columns, lanes.

在这里插入图片描述

KECCAK−p[b,nr]KECCAK-p[b,n_r]KECCAK−p[b,nr​] 包括 nrn_rnr​ 次迭代,每次迭代中对状态数组 AAA 依次执行 θ,ρ,π,χ,ι\theta,\rho,\pi,\chi,\iotaθ,ρ,π,χ,ι 变换,
Rnd(A,ir)=ι(χ(π(ρ(θ(A)))),ir)Rnd(A,i_r) = \iota(\chi(\pi(\rho(\theta(A)))),i_r) Rnd(A,ir​)=ι(χ(π(ρ(θ(A)))),ir​)

具体的各个变换本人没有探究,读者感兴趣可以自行查看 SHA-3 标准文档。

另外定义
KECCAK−f[b]=KECCAK−p[b,12+2l]KECCAK-f[b] = KECCAK-p[b,12+2l] KECCAK−f[b]=KECCAK−p[b,12+2l]

特别地,KECCAK−f[1600]=KECCAK−p[1600,24]KECCAK-f[1600] = KECCAK-p[1600,24]KECCAK−f[1600]=KECCAK−p[1600,24]

海绵结构

海绵结构(sponge construction)包括吸收(sbsorbing)和挤压(squeezing)两个步骤,定义为 SPONGE[f,pad,r](N,d)SPONGE[f,pad,r](N,d)SPONGE[f,pad,r](N,d),

  • 固定长度的置换函数 fff
  • 比率(rate)r
  • 填充规则 padpadpad
  • 输入的比特流 NNN
  • 输出的比特长度 ddd

在这里插入图片描述

如图所示,在吸收阶段,输入比特流 NNN 做填充后被分成 rrr 长的若干块,与链接变量异或后作为置换函数的输入;在挤压阶段,每次直接将链接变量作为输入,将输出的链接变量截取 rrr 比特作为一个输出块(block);最后,截取 ddd 比特的前缀作为最终的输出。

KECCAK 是一族 KECCAK−f[b]KECCAK-f[b]KECCAK−f[b] 置换下的海绵结构,填充规则使用 pad10∗1pad10^*1pad10∗1(即填充 1∥0⋯0∥11\|0\cdots0\|11∥0⋯0∥1 比特串)。它的 bbb 可以从 {25,50,100,200,400,800,1600}\{25,50,100,200,400,800,1600\}{25,50,100,200,400,800,1600} 中任意选择,如果设置 b=1600b=1600b=1600 那么有:
KECCAK[c](N,d)=SPONGE[KECCAK−p[1600,24],pad10∗1,1600−c](N,d)KECCAK[c](N,d) = SPONGE[KECCAK-p[1600,24],\,\, pad10^*1,\,\, 1600-c](N,d) KECCAK[c](N,d)=SPONGE[KECCAK−p[1600,24],pad10∗1,1600−c](N,d)

Hash & XOF

密码学哈希函数(cryptographic hash functions):SHA3-224, SHA3-256, SHA3-384, SHA3-512.

使用 KECCAK 函数,并设置 c=2dc=2dc=2d,再设置 N=M∥01N=M\|01N=M∥01(两比特后缀),

  • SHA3-224(M)=KECCAK[448](M∥01,224)\text{SHA3-224}(M) = KECCAK[448](M\|01,224)SHA3-224(M)=KECCAK[448](M∥01,224),摘要的长度为 224224224 比特
  • SHA3-256(M)=KECCAK[512](M∥01,256)\text{SHA3-256}(M) = KECCAK[512](M\|01,256)SHA3-256(M)=KECCAK[512](M∥01,256),摘要的长度为 256256256 比特
  • SHA3-384(M)=KECCAK[768](M∥01,384)\text{SHA3-384}(M) = KECCAK[768](M\|01,384)SHA3-384(M)=KECCAK[768](M∥01,384),摘要的长度为 384384384 比特
  • SHA3-512(M)=KECCAK[1024](M∥01,512)\text{SHA3-512}(M) = KECCAK[1024](M\|01,512)SHA3-512(M)=KECCAK[1024](M∥01,512),摘要的长度为 512512512 比特

可扩展输出函数(extendable-output functions, XOF):SHAKE128, SHAKE256.

使用 KECCAK 函数,并设置 N=M∥1111N=M\|1111N=M∥1111(四比特后缀),

  • SHAKE128(M,d)=KECCAK[256](M∥1111,d)\text{SHAKE128}(M,d) = KECCAK[256](M\|1111,d)SHAKE128(M,d)=KECCAK[256](M∥1111,d),参数为 b=1600,c=256b=1600,c=256b=1600,c=256,每个输出的 block 长度为 r=1344r=1344r=1344 比特
  • SHAKE256(M,d)=KECCAK[512](M∥1111,d)\text{SHAKE256}(M,d) = KECCAK[512](M\|1111,d)SHAKE256(M,d)=KECCAK[512](M∥1111,d),参数为 b=1600,c=512b=1600,c=512b=1600,c=512,每个输出的 block 长度为 r=1088r=1088r=1088 比特

相关内容

热门资讯

不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
安卓文字转语音tts没有声音 安卓文字转语音TTS没有声音的问题在应用中比较常见,通常是由于一些设置或者代码逻辑问题导致的。本文将...
APK正在安装,但应用程序列表... 这个问题可能是由于以下原因导致的:应用程序安装的APK文件可能存在问题。设备上已经存在同名的应用程序...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
报告实验.pdfbase.tt... 这个错误通常是由于找不到字体文件或者文件路径不正确导致的。以下是一些解决方法:确认字体文件是否存在:...