“一次一密是 完美保密 的典型实现,并达到 Shannon 密钥下界 的密钥长度极限;代价是必须预先安全分发并存储与消息等量的独立密钥材料。流密码 可视为用短密钥生成伪随机长密钥流的计算安全替…”
形式陈述
完美保密需要足够多的秘密不确定性,公开算法不能把少量真正随机的密钥无损扩成无限的信息论保密能力。 设
这里
因此,要完美保密地传输任意
直觉
密文没有消除的不确定性,密钥必须消除
仅看密文时,攻击者对明文的知识不应改变;给合法接收者再补上密钥,明文又必须完全确定。两句要求可以分别写成
它们一相减,就得到一个短证明:
中间的条件互信息
注意证明没有假设明文均匀,也没有要求加密确定。只要接收者凭
密钥个数为何也不能太少
把明文在整个
也可以固定一个可能出现的密文
例子与边界
一次一密恰好达到下界
对三比特消息,一次一密取独立均匀密钥
这不是说“观察密文后明文一定均匀”。若明文原本偏向 000,后验仍保持同样的偏向;密文没有额外改变它。密钥均匀和明文均匀承担不同角色:前者是这个方案的安全条件,后者只是证明最坏消息空间下界时可选的测试分布。
有偏消息不自动兑现更短的固定密钥
若某个先验下
压缩、可变长编码或允许忽略小概率消息可以改变模型,但要重新核对是否仍要求每条消息零错误恢复,以及密文长度是否暴露信息。不能把无损压缩的平均码长结论直接当成固定长度完美保密的可达密钥长度。
重复使用和伪随机扩展改变了什么
两条消息若重复使用同一段一次一密密钥,便有
即使单独观察每一条密文都像随机串,联合观察仍泄露两条明文的关系。若要求整组消息完美保密,就应把
流密码把短种子扩展成长密钥流,追求的是有计算限制的攻击者无法区分,而不是长流真的获得了更多熵。一个确定性生成器的输出熵至多等于种子熵;它绕开的不是 Shannon 证明,而是把安全目标改成了计算安全。
推论与应用
这个下界给密钥分发提供了明确账本:若目标是任意消息的零错误、信息论完美保密,预共享秘密的熵必须覆盖需要隐藏的消息规模。增加公开随机性、重复运行公开算法或更换复杂编码,都不能替代这份秘密资源。
下界也只讨论保密,不自动提供完整性。一次一密达到最优密钥长度,却允许攻击者按位翻转明文;认证需要另外的条件和机制。
参考资料
- [1] Dan Boneh and Victor Shoup, A Graduate Course in Applied Cryptography, version 0.6, 2023,Ch. 2:完美保密、一次一密及 Shannon 密钥空间下界。
- Claude E. Shannon, “Communication Theory of Secrecy Systems,” Bell System Technical Journal 28(4), 1949, pp. 656–715:完美保密的信息论框架。
- Jonathan Katz and Yehuda Lindell, Introduction to Modern Cryptography, 3rd ed., CRC Press, 2020,Ch. 2:完美安全的定义与局限。