简化轮数SMS4的线性密码分析
1. SMS4算法概述
1.1 符号说明
主要使用32位字进行操作,在特定字节操作时会有明确说明。左旋转和右旋转操作分别表示为 x<<<b 和 x>>>b ,其他符号遵循密码学文献中的标准表示。
1.2 加密与解密
SMS4是一个32轮的分组密码算法,密钥和分组长度均为128位,属于非平衡Feistel密码,重复使用一个8位S盒S。定义了L函数和γ函数:
- (L(x) = x \oplus (x<<<2) \oplus (x<<<10) \oplus (x<<<18) \oplus (x<<<24))
- (\gamma(x) = (S[x_{31}…x_{24}] || S[x_{23}…x_{15}] || S[x_{15}…x_{8}] || S[x_{7}…x_{0}]))
第i轮的轮函数(f)对输入(X_{i - 1})的作用为(f(X_{i - 1}) = L(\gamma(X_{i - 1} \oplus k_{i})))。
1.3 SMS4的S盒
| -0 | -1 | -2 | -3 | -4 | -5 | -6 | -7 |
|---|
超级会员免费看
订阅专栏 解锁全文
2961

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



