对SHAvite - 3 - 512的密码分析
1. SHAvite - 3 - 512的结构基础
SHAvite - 3 - 512的压缩函数的状态更新和消息扩展是其核心组成部分,下面将详细介绍这两部分内容。
1.1 状态更新
状态更新采用14轮广义Feistel结构。输入$h_{i - 1}$被分为四个128位的链接值$(A_0, B_0, C_0, D_0)$。在每一轮$i = 0, \cdots, 13$中,这些链接值通过Feistel结构使用非线性轮函数$F_i$和$F’ i$进行更新,具体公式如下:
$(A {i + 1}, B_{i + 1}, C_{i + 1}, D_{i + 1}) = (D_i, A_i + F_i(B_i), B_i, C_i + F’_i(D_i))$
非线性函数$F_i$和$F’ i$分别由512位的轮密钥$RK_i = (k^3 {0, i}, k^2_{0, i}, k^1_{0, i}, k^0_{0, i})$和$RK’ i = (k^3 {1, i}, k^2_{1, i}, k^1_{1, i}, k^0_{1, i})$进行密钥化。每个轮函数由四轮AES组成,子密钥$k^0_{0, i}$和$k^0_{1, i}$在第一轮AES之前用作密钥白化,最后一轮内部使用全零密钥$0^{128}$。因此,轮函数$F_i$和$F’ i$定义为:
$F_i(x) = AES(0^{128}, AES(k^3 {0, i}, AES(k^2_{0, i}, AES(k^1_{0, i}, k^0_{0, i}
SHAvite-3-512密码分析
超级会员免费看
订阅专栏 解锁全文
35

被折叠的 条评论
为什么被折叠?



