0:00:05.093,0:00:07.678 这个问题持续了四百年 0:00:07.678,0:00:11.770 Alice怎样才能设计一个密码 可以隐藏她的指纹 0:00:11.770,0:00:14.497 因而 停止泄漏信息 0:00:14.497,0:00:18.135 答案是随机性 0:00:18.135,0:00:21.210 假设Alice投掷了一个26面的骰子 0:00:21.210,0:00:23.525 来生成一列长长的随机位移 0:00:23.525,0:00:27.042 并与Bob分享 而不是一个码词 0:00:27.042,0:00:28.893 现在 给她的消息加密 0:00:28.893,0:00:31.987 Alice用了一列随机位移 0:00:31.987,0:00:35.890 重要的是 这个位移列表和消息一样长 0:00:35.890,0:00:38.628 以避免任何重复 0:00:38.628,0:00:41.093 然后她将消息发给Bob 他将消息解密 0:00:41.093,0:00:45.148 用她给他的同样的随机位移列表 0:00:47.025,0:00:48.574 现在Eve将会有个问题 0:00:48.574,0:00:50.875 因为加密的消息 0:00:50.875,0:00:53.509 有两个强大的特性 0:00:53.509,0:00:57.175 第一 位移没有重复的规律 0:00:59.083,0:01:03.874 第二 加密的消息将有一个均匀的频率分布 0:01:03.874,0:01:06.208 因为没有频率差异 0:01:06.208,0:01:08.172 因此 没有泄漏 0:01:08.172,0:01:11.206 那么 Eve不可能破解密码 0:01:14.052,0:01:17.668 这就是可能的方法中最强大的加密法 0:01:17.668,0:01:21.586 它出现在19世纪末期 0:01:21.586,0:01:24.198 现在被称为一次性码本 0:01:25.767,0:01:29.229 为了视觉化一次性码本的强度 0:01:29.229,0:01:34.784 我们必须了解所发生的组合爆炸 0:01:34.784,0:01:38.917 例如 凯撒密码对每一个字母进行了同样的位移 0:01:38.917,0:01:42.960 位移是1到26之间的某一个数 0:01:42.960,0:01:45.008 所以如果Alice要将她的名字加密 0:01:45.008,0:01:48.384 将会是26种可能的加密中的一种 0:01:48.384,0:01:52.251 可能的变化不多 容易全部排查 0:01:52.251,0:01:54.834 称为暴力搜索 0:01:54.834,0:01:56.844 这个和一次性码本相比 0:01:56.844,0:01:58.990 后者每个字母被移动 0:01:58.990,0:02:01.808 位移的大小是1到26之间的一个 0:02:01.808,0:02:03.934 想像一下可能的加密结果 0:02:03.934,0:02:07.908 将会是26乘以自己5次 0:02:07.908,0:02:09.920 几乎等于1千2百万 0:02:09.920,0:02:12.884 有时很难视觉化 0:02:12.884,0:02:15.949 假设她将名字写在一页纸上 0:02:15.949,0:02:20.854 上面叠放上每一种可能的加密结果 0:02:20.854,0:02:24.505 你想想可能有多高呢? 0:02:24.736,0:02:28.869 差不多有1千2百万个5字母组合 0:02:28.869,0:02:32.032 这一堆纸会很高 0:02:32.032,0:02:35.241 高于一公里 0:02:35.241,0:02:38.103 当Alice用一次性码本加密她的名字 0:02:38.103,0:02:42.375 就像从这个纸堆中随机抽一张纸 0:02:42.375,0:02:44.663 从密码破解者Eve的角度来看 0:02:44.663,0:02:47.397 她掌握的每个5字母密词 0:02:47.397,0:02:51.578 同等可能是这一堆词中的任何一个 0:02:51.578,0:02:54.645 所以 这是一个实践中的完美秘密