25、假设一个带密钥的函数族 � 的所有映射 �� 都是线性的。攻击者如何轻松赢得伪随机函数可区分性实验?这表明 � 不是伪随机函数。提示:选择全零输入。
由于函数族 $ f $ 的映射 $ f_k $ 是线性的,选择全零输入时,线性函数对全零输入的输出具有特定规律。而随机函数对全零输入的输出是随机的。攻击者通过输入全零值,根据输出是否符合线性函数对全零输入的特性,就能判断使用的是线性函数 $ f_k $ 还是随机函数,从而轻松赢得可区分性实验,证明 $ f $ 不是伪随机函数。
26、考虑Feistel密码。证明解密函数��能恢复明文。
对于Feistel密码,加密过程经过 $ r $ 轮和最终置换后得到密文块 $ (R_r, L_r) $,即
$$ E_k(R_0, L_0) = (R_r, L_r) $$
解密时,定义
$$ (R_{i-1}, L_{i-1}) = (R_i, L_i \oplus F(R_i, K_i)) $$
其中 $ i $ 从 $ r $ 递减到 1。
由于加密和解密使用相同的变换,经过 $ r $ 轮Feistel网络和最终置换,就能恢复出明文 $ (R_0, L_0) $,即
$$ D_k(R_r, L_r) = (R_0, L_0) $$
27、使用四元轮映射给出Salsa20中列轮操作的明确描述。
列轮函数是行轮函数的转置,即先对状态矩阵进行转置,对转置后的矩阵应用行轮操作(对每行进行四元轮操作,操作前后有单词置换和逆置换),最后再对结果进行转置。设S为状态矩阵,则
$$ \text{column-round}(S) = (\text{row-round}(S^T))^T $$
其中,行轮操作对矩阵每行应用四元轮操作,如 $\text{row-round}(S)$ 中,
$$ (z_0, z_1, z_2, z_3) = \text{quarter-round}(y_0, y_1, y_2, y_3) $$
等;四元轮操作对4字序列 $(a, b, c, d)$ 更新规则为:
$$
\begin{aligned}
b &= b \oplus ((a + d) \lll 7), \\
c &= c \oplus ((b + a) \lll 9), \\
d &= d \oplus ((c + b) \lll 13), \\
a &= a \oplus ((d + c) \lll 18).
\end{aligned}
$$
28、证明对于Merkle - Damgård哈希函数和任意长度消息,��(�) = �(�‖ �)不是安全的消息认证码(MAC)。为什么HMAC构造不受此攻击影响?
对于Merkle-Damgård哈希函数,若使用
$$
\text{MAC}_k(m) = H(k \Vert m)
$$
作为MAC,存在长度扩展攻击问题,因此不安全。而HMAC基于两次嵌套哈希运算,能抵御长度扩展攻击,所以不受此影响。
29、使用Sage验证多项式�^128 + �^7 + �^2 + � + 1在��(2)[�]中是不可约的。
可以使用以下Sage代码进行验证:
R = PolynomialRing(GF(2), 'x')
f = R('x^128 + x^7 + x^2 + x + 1')
f.is_irreducible()
如果输出结果为 True ,则表明该多项式在 GF(2)[x] 中是不可约的。
30、描述当明文由一个128位块组成且附加认证数据(AAD)为空时,GCM标签的计算过程。
当明文由一个128位块且AAD为空时,以下是GCM标签的计算步骤:
- 选择一个均匀初始化向量(IV),从
{0, 1}^96中随机选取。 - 定义128位计数器
ctr = IV ‖ 0^31 ‖ 1。 - 应用CTR模式进行加密:由于明文仅一个128位块
m1,c1 = Ek(ctr + 1) ⊕ m1,密文c = IV ‖ c1。 - 定义128位哈希密钥
H = Ek(0^128),因AAD为空,A为空。 - 计算
X1 = A ⋅ H = 0(A为空)。 - 计算
X2 = (X1 ⊕ c1) ⋅ H = c1 ⋅ H。 - 计算
X3 = (X2 ⊕ (|A| ‖ |c|)) ⋅ H,因A为空,|A| = 0,|c|为c的位长度,用64位大端整数表示,这里|c| = 96 + 128 = 224位,X3 = (X2 ⊕ (0 ‖ 224)) ⋅ H。 - 计算认证标签
t = X3 ⊕ Ek(ctr)。
最终完整的认证密文为 (c, t, AAD) ,这里 AAD 为空。
31、攻击者能够修改RSA密文。他们想将未知明文模N进行平方运算。为什么这种攻击对于普通RSA是可行的,但对于RSA - OAEP却不可行?
普通RSA加密具有可延展性,密文易被操纵。若攻击者把密文
c = mᵉ mod N
替换为
sᵉc mod N ,
对应明文变为
sm mod N ,
也能使密文对应明文满足乘法同态性,所以可实现将未知明文模N平方的攻击。
而RSA-OAEP是在随机预言模型和RSA假设下,对自适应选择密文攻击(CCA2)安全的,且实现时只给出一种解密错误消息,运行时间与错误类型无关,攻击者无法获取有用信息和篡改密文,因此这种攻击不可行。
32、设 (� = 5, � = 10057) 是一个 RSA 密码系统的公钥。使用普通 RSA 方案对消息 � = 2090 进行加密。对 � 进行因式分解并求出解密指数 �。
1. 加密消息:
- 根据普通 RSA 加密算法 $ c = m^e \mod n $,已知 $ e = 5 $,$ n = 10

最低0.47元/天 解锁文章
126

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



