解密關於正在使用的 k 的 el gamal 加密消息
我試圖了解在以下場景中使用 k 的差異,以更好地理解協議,最重要的是使用這種 k 的後果。
所以我想知道,一些使用者稱他為 A 使用 El gamal 向 B 發送兩條消息。一些使用者 C 不高興他沒有被邀請,所以他聽了這兩條消息。他工作非常努力,並得到了發送的第一條消息的解密。在這些情況下,他也可以是第二個嗎:
第一種情況:A 發送兩條消息 E(m) 和 E(2m),但每次使用不同的隨機 k。我認為她應該擔心,但第二條消息仍然是安全的。
第二種情況:A 發送兩條消息 E(m) 和 E(2m),但對兩條消息使用相同的隨機 k。然而,C 並不知道她沒有改變這個隨機值。
您能否詳細說明這兩種情況的安全性?我很確定在第二種情況下消息不是那麼自信並且可能被解密,因為他獲得了第一條消息的解密,並且相同的 k 被使用了兩次,所以他只需要過濾消息以使其有意義。
如果你能給出一個數學解釋來幫助我更好地理解材料,我將不勝感激。
A 發送兩條消息 E(m) 和 E(2m),但每次使用不同的隨機 k。我認為她應該擔心,但第二條消息仍然是安全的。
我們根本不必擔心(除非我們擔心恢復第一條消息的攻擊的可行性)。如果一條消息的解密允許您破壞一條不相關的消息,那麼 El Gamal 本身就被破壞了。也就是說,如果我們有一個魔盒(在密碼學中稱為 Oracle),給定一個公鑰、一個帶有解密的加密消息和第二個加密消息,並且該魔盒能夠產生對它的解密第二條消息,然後我們可以打破 El Gamal。
考慮一下:攻擊者(擁有這樣一個魔盒)得到了一個加密的消息 C 到 B,他想要解密該消息。攻擊者可以這樣做:他生成第二條消息,然後使用 B 的公鑰對其進行加密。然後,他將所有必要的輸入輸入到魔法盒中,魔法盒將生成 C 的明文。我們不相信有這樣一種可行的方法來僅使用公鑰來解密加密的消息,所以我們不’不相信有任何這樣的魔法盒子。
A 發送兩條消息 E(m) 和 E(2m),但對兩條消息使用相同的隨機 k。然而,C 並不知道她沒有改變這個隨機值。
實際上,C 可以很容易地看到相同的 $ k $ 使用了值;密文的一部分是值 $ G^k \bmod p $ ; 因為該值僅取決於 $ k $ (和組參數 $ G, p $ ),該值在兩個密文中都是相同的。
此外,假設這兩條消息來自同一個公鑰,如果他知道一條消息,他可以很容易地恢復另一條消息。
那是因為兩個密文的其他部分是 $ H^k \cdot M \bmod p $ 和 $ H^k \cdot M’ \bmod p $ (在哪裡 $ k $ 是共享的 $ k $ 值,和 $ M, M’ $ 是兩條消息)。如果他將兩者相除(模 $ p $ ,執行模除法的操作與實數除法有很大不同),並乘以消息 $ M $ 他知道,他得到 $ M \times (H^k \cdot M’) / (H^k \cdot M) \bmod p = M \cdot (M’ / M) \bmod p = M’ $