对称加密:块密码与流密码详解
1. 块密码攻击与相关知识
在块密码的攻击中,有一种攻击方式平均对每个 16 字节需要向预言机进行 128 次查询,总共约 2000 次查询(每次查询必须使用相同的初始值)。在实际实现填充预言机攻击时,会比描述的更复杂,因为在第一步要处理错误猜测。密文可能有有效的填充,不一定是因为 P2 以单个 01 结尾,也可能是以两个 02 字节或三个 03 字节结尾,但可以通过测试更多字节被修改的密文的有效性来解决。
块密码的算法和攻击方式有很多。例如,Feistel 网络和替代置换网络(SPN)并非构建块密码的唯一方式。IDEA 和 FOX 块密码使用 Lai–Massey 结构,Threefish 使用 ARX 网络,即加法、字旋转和异或的组合。除了 ECB、CBC 和 CTR 模式外,还有更多模式。有些模式如 CFB 和 OFB 是很少使用的传统技术,而有些模式则用于特定应用,如 XTS 用于可调整加密,GCM 用于认证加密。除了 AES 的获胜者 Rijndael,还有 14 种其他算法参与了竞争,如 CAST - 256、CRYPTON 等。此外,NSA 的设计(Skipjack、SIMON 和 SPECK)以及一些近期的“轻量级”块密码如 KATAN、PRESENT 或 PRINCE 也值得研究。
2. 流密码概述
对称密码可分为块密码和流密码。块密码将明文位块与密钥位混合,生成相同大小的密文块,通常为 64 或 128 位。而流密码不混合明文和密钥位,而是从密钥生成伪随机位,通过与伪随机位进行异或运算来加密明文,类似于一次性密码本。
历史上,流密码比块密码更脆弱,更容易被破解,包括业余爱好者设计的实验性
超级会员免费看
订阅专栏 解锁全文
1660

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



