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 所以 這是一個實踐中的完美秘密