這個問題持續了四百年 Alice怎樣才能設計一個密碼 可以隱藏她的指紋 因而 停止泄漏信息 答案是隨機性 假設Alice投擲了一個26面的骰子 來生成一列長長的隨機位移 並與Bob分享 而不是一個碼詞 現在 給她的消息加密 Alice用了一列隨機位移 重要的是 這個位移列表和消息一樣長 以避免任何重覆 然後她將消息發給Bob 他將消息解密 用她給他的同樣的隨機位移列表 現在Eve將會有個問題 因爲加密的消息 有兩個強大的特性 第一 位移沒有重覆的規律 第二 加密的消息將有一個均勻的頻率分布 因爲沒有頻率差異 因此 沒有泄漏 那麽 Eve不可能破解密碼 這就是可能的方法中最強大的加密法 它出現在19世紀末期 現在被稱爲一次性碼本 爲了視覺化一次性碼本的強度 我們必須了解所發生的組合爆炸 例如 凱撒密碼對每一個字母進行了同樣的位移 位移是1到26之間的某一個數 所以如果Alice要將她的名字加密 將會是26種可能的加密中的一種 可能的變化不多 容易全部排查 稱爲暴力搜索 這個和一次性碼本相比 後者每個字母被移動 位移的大小是1到26之間的一個 想像一下可能的加密結果 將會是26乘以自己5次 幾乎等於1千2百萬 有時很難視覺化 假設她將名字寫在一頁紙上 上面疊放上每一種可能的加密結果 你想想可能有多高呢? 差不多有1千2百萬個5字母組合 這一堆紙會很高 高於一公裏 當Alice用一次性碼本加密她的名字 就像從這個紙堆中隨機抽一張紙 從密碼破解者Eve的角度來看 她掌握的每個5字母密詞 同等可能是這一堆詞中的任何一個 所以 這是一個實踐中的完美秘密