VHIRLPOOL初始化过程 在Vhirlpool中,T=2256-1,y=512 消息M是二进制串,M=L≤T,将L表示为一个256-bit二进制串,记为b2s6(L).进行消息 填充: M=M‖10I‖b2s6(L),L≥0 满足L'=M1是512的倍数.则有 L'=L+(1+)+256=L++257 L表示为 L=512. +L mod512 512 于是,我们有: 255-Lmod512, if255≥Lmod512, 255+(512-Lmod512),if255<Lmod512 L'是512的倍数,即L'=512N.记为 M'=M1M2..M 其中M是一个512-bit二进制串 《计算机网络安全的理论与实践(第2版)》·【美】王杰,高等教育出版社,2011年. 16
16 WHIRLPOOL初始化过程 在Whirlpool中, Γ = 2 256 – 1 , γ = 512 消息M 是二进制串, |M| = L ≤ Γ,将L 表示为一个 256-bit 二进制串, 记为b256(L). 进行消息 填充: M’ = M || 10l || b256(L), l ≥ 0 满足L’ = |M’| 是512的倍数. 则有 L ’ = L + (1 + l) + 256 = L + l + 257 L 表示为 于是, 我们有: L’ 是512的倍数, 即 L’ = 512N. 记为 M’ = M1M2…MN 其中Mi 是一个512-bit 二进制串 《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年
WHIRLPOOL压缩函数 ●VHIRLPOOL的压缩函数定义为: F(X,K)=W(X,K)⊕X ●W(X,)类似于AES的加密算法 ●输入:512-bit明文块X和512-bit密钥K ●输出:512-bit输出 。消息M的数字指纹H(M=Hw,是通过使用CBC模式得到的: Ho = 0512 H=H-1⊕F(M,H-1) =Hi-1⊕W(M,H-1)⊕M, i=1,2,.,N, 《计算机网络安全的理论与实践(第2版)》.【美】王杰,高等教育出版社,2011年. 17
17 WHIRLPOOL 压缩函数 WHIRLPOOL的压缩函数定义为: W(X, K) 类似于AES的加密算法 输入: 512-bit 明文块X和 512-bit密钥K 输出: 512-bit输出 消息M的数字指纹 H(M) = HN, 是通过使用CBC模式得到的: 《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年
W(X,K的构造 由密钥K共生成11个512-bit的轮密钥,记为K,K1,…,K10 ▣K0=K 口 K,(1≤i≤10)是由K.1经过4个基本运算得到的 。字节替代(sb) ● 列移位(shc) 。行混淆(mir) 。常数相加(arc) K;=arc(mir(shc(sub(Kj),RCi) 其中RC,是512-bit常数,由WHIRLOOL S盒产生: RC-8 8a-1)+,if0≤j≤7, 0000000,if8≤j≤63, 其中i=1,2,,10 《计算机网络安全的理论与实践(第2版)》·【美】王杰,高等教育出版社,2011年. 18
18 由密钥K共生成11个 512-bit 的轮密钥, 记为K0 , K1 , …, K10. K0 = K Ki (1≤i ≤10) 是由Ki-1 经过4个基本运算得到的 字节替代 (sub) 列移位 (shc) 行混淆 (mir) 常数相加 (arc) Ki = arc(mir(shc(sub(Ki-1 ))), RCi ) 其中RCi 是512-bit 常数,由WHIRLOOL S盒产生: 其中 i = 1, 2, …, 10 W(X, K)的构造 《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年
●字节替代(sub) ●VHIRLPOOL的字节替代使用16X16S盒 ● 设A=(a)8x8是8×8的字节状态矩阵 ● 设x=X1X2X3X4X5X6X7是8-bit字符串,其中每一个X∈{0,1} 。设T1(X)是二进制串XoXX2X3的十进制数值,T2(X)是二进制串x4X5X6X7的十进 制值 。定义替代函数S为 S(x)=Sπ1(x),π2(x) 其中suy是WHIRLPOOL'sS盒中第u行、第V列上的元素,Osu,Vs7 。VHIRLPOOL的字节替代操作定义为: sub(A)=(S(ai))8x8 ●3 列移位(shc) 类似于AES的行移位操作. 第j列将向下循环位移个字节. 《计算机网络安全的理论与实践(第2版)》·【美】王杰,高等教育出版社,2011年. 19
19 字节替代(sub) WHIRLPOOL的字节替代使用 16ⅹ16 S盒 设A = (ai,j) 8ⅹ8 是8ⅹ8 的字节状态矩阵 设x = x0x1x2x3x4x5x6x7 是8-bit字符串, 其中每一个xi∈{0,1} 设π1 (x) 是二进制串x0x1x2x3 的十进制数值,π2 (x) 是二进制串x4x5x6x7 的十进 制值 定义替代函数S 为 其中su,v 是WHIRLPOOL’s S盒中第u行、第 v列上的元素,0≤ u, v≤7 WHIRLPOOL的字节替代操作定义为: sub(A) = (S(ai,j)) 8ⅹ8 列移位(shc) 类似于AES的行移位操作. 第j列将向下循环位移j个字节. 《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年
●行混淆(mir) ●类似于AES中的列混淆 ●使用下面的常数矩阵: 0101040108050209 0901010401080502 0209010104010805 0502090101040108 4= 0805020901010401 0108050209010104 0401080502090101 。行混淆定义为 0104010805020901 mir(A)=A·△ ,常数加(arc)和轮密钥加(ark) 。类似于AES的轮密钥加 arc(A,RC)=A⊕RC ark(A,K)=A⊕K 《计算机网络安全的理论与实践(第2版)》·【美】王杰,高等教育出版社,2011年. 20
20 行混淆(mir) 类似于AES中的列混淆 使用下面的常数矩阵: 行混淆定义为: mir(A) = A•△ 常数加(arc) 和轮密钥加(ark) 类似于AES的轮密钥加 arc(A, RCi ) = A ⊕ RCi ark(A, Ki ) = A ⊕ Ki 《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年