Cryptanalysis
如果計算出密鑰以使密文僅包含“A”,則一次性密碼是否安全?
最近了解了一次性pad方法,如果滿足以下條件,則具有完美的安全性:
- 密鑰必須是真正隨機的。
- 密鑰必須至少與明文一樣長。
- 不得全部或部分重複使用密鑰。
- 密鑰必須完全保密。
作為一個思想實驗,我想知道:如果您選擇密鑰以使密文僅為“A”(或任何其他字母)怎麼辦?這將打破規則 n°1,因為明文不是隨機的,並且密鑰與其相關聯。這是否意味著這樣的密文可以被破解?
您錯過了一次性便箋簿的目標:它是在消息傳輸之前生成和分發的密鑰。
使用一次性墊時,更換墊的唯一安全時間是提前。消息本身是用pad加密的,以彌補安全通信渠道的不足。
通過計算“一次性填充”以使密文是固定內容,您正在將填充生成從“傳輸之前”(當我們有安全通道時)移動到“在傳輸時”(當我們沒有時)。
您現在需要發送“pad”而不是“all As”消息。這意味著您已將您的平板電腦變成了一條消息,並且沒有安全的通道來發送它。
一個人在這裡問的問題必須非常精確。您必須區分兩種解釋:
- 解釋 1: Alice 和 Bob 完全按照規定使用 OTP。我們知道每一個密文都有一定的機率是可能的。在這種情況下,我們觀察到密文恰好都是 A。
這完全沒問題,不需要特別關注。此事件不會向竊聽者洩露任何特殊資訊。“全 A 的密文”沒有什麼基本的東西,從某種意義上說,如果全 A 的密文在某種程度上是“有風險的”,那麼所有其他密文也將是有風險的。
- 解釋 2: Alice 和 Bob 以某種方式更改 OTP,以便他們總是得到所有 A 的密文。從某種意義上說,這是有問題的,因為我們必須更改 OTP 才能實現這一點:要麼密鑰取決於明文,要麼明文取決於密鑰。所以這應該讓我們感到緊張。另一方面,如果世界上的每個人都同意 Alice 總是將全 A 的密文發送給 Bob,那麼無論如何,你不能說任何資訊都洩露給了竊聽者。(事實上,鮑勃也沒有收到任何資訊!)
作為一般規則,“此事件偶然發生”與“我們改變事物以使此事件始終發生”之間的安全性可能存在很大差異。