Stream-Cipher

查找消息加密為給定密文的機率

  • February 28, 2017

我一直在看一個加密課程,當他們想證明 OTP 是一種安全密碼時,他們指的是機率,而到目前為止我無法理解的是對這個符號的理解?

$$ P(E_k(m)=c) $$ 消息加密為密碼的機率?那個怎麼樣?

一般公式為:

$$ P(m=m∗|E_k(m)=c)=P(m=m∗) $$ 在哪裡

  • $ m $ 是要加密的消息
  • $ m∗ $ 是攻擊者猜測的消息
  • $ c $ 是密文
  • $ E_k $ 是加密函式

您的部分困惑來自於忽略隨機變數之間的區別(例如, $ K $ )及其值(例如, $ k $ ).

讓 $ p $ 是鍵的機率分佈 $ k\in {\cal K} $ 然後讓 $ q $ 是消息的機率分佈 $ m \in {\cal M}, $ 假設兩組 $ \cal K $ 和 $ \cal M $ 是有限的。加密映射 $ E_K(M):=E(K,M) $ 是一個映射

$$ E:{\cal K} \times {\cal M} \rightarrow {\cal M} $$ 我們假設密文空間也是 $ \cal M $ 為簡單起見。顯然,一個定義良好的密碼將獨立於消息選擇密鑰。 然後,使用條件機率的定義可以評估所有數量。特別是,密文分佈是直接從其他兩個分佈中獲得的,因為它完全由它們決定。

一般來說,一個可以有 $ m $ 映射到 $ c $ 在不同的鍵值下 $ k $ 這些都需要相加,每個可接受的選擇權重為 $ p(k)q(m). $

清楚地, $ P(m=m_1)=q(m_1), $ 儘管 $ P(m=m_1|E_k(m)=c) $ 是

$$ P(m=m_1|E_k(m)=c)=\frac{\sum_{k\in {\cal K}:E_k(m_1)=c}p(k)q(m_1)}{\sum_{k\in {\cal K},m\in {\cal M}:E_k(m)=c}p(k)q(m)} $$ 如果總和為空,則分子為零,並且 $ c $ 是固定的。

OTP 對純密文攻擊非常安全,因為

$$ P(m=m_1|E_k(m)=c)=P(m=m_1) $$ 換句話說:條件機率 $ m_1 $ 是明文,假設密文是 $ c $ , 等於無條件機率 $ m_1 $ 是明文;這意味著,知道密文絕對不會揭示有關明文的資訊。 如果你不知道什麼是條件機率,你最好先上機率論課程。

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