Pseudo-Random-Generator

這個方案多消息安全嗎?

  • September 21, 2017

讓 $ G $ 是一個偽隨機生成器。

是帶加密的方案

$$ \text{Enc}_k(m) = s | \left( m\oplus G(k) \oplus s \right),\quad s\in{0,1}^n \text{ uniformly sampled}, $$ 和解密

$$ \text{Dec}_k(s,c) = c \oplus s \oplus G(k) $$ 多消息無法區分?

您所說的“多條消息無法區分”是什麼意思並不完全清楚。我將假設我能想到的最弱的解釋。

因此,請考慮攻擊者試圖在不知道任何其他密文的情況下區分兩個隨機消息對的加密的情況。即你的對手得到兩對隨機消息作為輸入 $ (m_0^0,m_0^1),(m_1^0,m_1^1) $ 也 $ ((s_0,c_0) =Enc_k(m_b^0),(s_1,c_1)=Enc_k(m_b^1)) $ 對於統一選擇的位 $ b $ 並且應該猜 $ b $ .

正如 SEJPM 所觀察到的,與 $ s $ 在您的建設中沒有任何目的,因為 $ s $ 是公開的,因此可以簡單地刪除。一旦你這樣做了,加密是確定性的,你可以完全取消密鑰並顯示兩條消息的異或。

所以我們的對手所做的只是檢查哪個 $ a\in{0,1} $ 它認為

$$ m_a^0\oplus m_a^1 = c_0\oplus s_0 \oplus c_1 \oplus s_1 $$和輸出 $ a $ . 這將以壓倒性的機率是正確的,因為我們有

$$ c_0\oplus s_0 \oplus c_1 \oplus s_1\ =m_b^0\oplus G(k) \oplus s_0 \oplus s_0 \oplus m_b^1 \oplus G(k) \oplus s_1 \oplus s_1\ =m_b^0\oplus m_b^1. $$ 剩下的唯一模棱兩可的是,如果發生這種情況 $ m_0^0\oplus m_0^1 = m_1^0\oplus m_1^1 $ 但這只會發生在機率上 $ 2^{-n} $ . 所以我們的對手至少有機率成功 $ 1-2^{-n} $ .

引用自:https://crypto.stackexchange.com/questions/51691