免责声明
这里都是自己搓或者手写的。
里面不少题目感觉有问题或者我的理解有偏颇,请大佬批评指正!
不带思考抄作业的请自动退出,我的并非全对,仅仅提供思维!
题目

逐题解析
6.1
直接看表得
0x18 0xAD 0xF8 0x25
6.2
一样的看表,不过前两位看S0,中间两位看S1,最后两位看S0(S0S1错开来看,不要问为什么,问就是ZUC特性)
0x34BA12
6.3
就是S盒反过来看
0x12345678
6.4
输出结果是0xaa4e9357,参考答案是0xab4d9357
信我还是信参考答案,回答我!
python
def rotate_left(x, shift, width=32):
"""对x进行循环左移,默认为32位"""
shift %= width
return ((x << shift) | (x >> (width - shift))) & ((1 << width) - 1)
def L(x):
"""线性变换 L(x) = x ^ (x<<<2) ^ (x<<<10) ^ (x<<<18) ^ (x<<<24)"""
return x ^ rotate_left(x, 2) ^ rotate_left(x, 10) ^ rotate_left(x, 18) ^ rotate_left(x, 24)
# 示例
x = 0x12345678
result = L(x)
print(f"L({hex(x)}) = {hex(result)}")
6.5(偷懒)
老师的参考答案:C= 0x23456789⊕0x87654321 =0xa42024a8
我不想学ZUC也不想写代码,因为这东西说实话比较偏门,考的概率不大。
允许博主偷个懒吧