我有一个考试的问题;
我们用循环流化床加密了一个大小为100字节的消息。在传输中,字节号12被叛变。解密中会有多少位被叛变。答案是72位,我不明白为什么?
发布于 2019-02-10 12:54:43
CFB模式的解密如下;
P_i = E_k(C_{i-1}) \oplus C_i C_0= \operatorname{IV}
循环流化床中的Bit翻转攻击
如果在密文中有一点翻转攻击,那么我们就有两个案例。

\color{red}{\textbf{Red case:}},最后一个密文位被翻转。这只会影响相应的明文块。因此,攻击者可以在不影响任何其他位的情况下更改明文位。
<#>\color{ForestGreen}{\textbf{Green case:}}假设i第四个密文位被更改,其中n是块的总数,那么这一次两个明文块会受到影响。我们也可以从方程中看到;
P_i = E_k(C_{i-1}) \oplus \color{blue}{C_i} P_{i+1} = E_k(\color{blue}{C_{i}}) \oplus C_{i+1}
注:与CBC模式相比,循环流化床模式下的比特翻转没有很好的效果。
Your问题
由于您有100个字节,64位块密码有8字节块大小,所以第12个字节数属于第二个密文。如果它落入最后一个字节,那么只有一个字节,\color{red}{\textbf{red case}}。
现在,由于我们在\color{ForestGreen}{\textbf{green case}}中,对于有缺陷的单字节C_i,我们将看到两个明文受影响P_i和P_{i+1}。P_i有一个字节缺陷,P_{i+1}有完整块缺陷。
Fgrieu在评论中给出了叛变的概率。如前所述,对于有多少比特被翻转并不清楚。它可能是1或8。而且,受影响的完整块不受控制。例如,如果我们假设密码有雪崩准则,我们期望每个密文比特有50%的概率发生翻转。因此我们可以说是1到64之间。因此,受影响比特的总数在2到72之间。
Let以缓和的方式结束这一过程:
攻击/叛逃是可能的,因为数据上没有完整性。MAC或HMAC可用于防止或更好地使用提供机密性、完整性和真实性的认证加密。在TLS1.3中,CCM和GCM是标准化的认证加密模式。
https://crypto.stackexchange.com/questions/67207
复制相似问题