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.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...