Encryption

給定鍵的屬性對一次性鍵盤的攻擊

  • December 12, 2018

一個對手 $ A $ , 竊聽 $ n $ 密文, $ c_{1}, c_{2} …, c{n} $ . 它也知道一個值 $ v $ 和一個函式 $ f $ 這樣$$ f(k{1}, k_{2}, …, k_{n}) = v $$在哪裡, $ k_{i} $ 用於加密 $ m_{i} $ 獲得 $ c_{i} $ , $ \forall i| 1\leqslant i\leqslant n $ .

作為一個具體的例子說, $ A $ 聽三個密文, $ c_{1}, c_{2} \text{ and } c_{3} $ ,並且知道 $ k_{1} \oplus\ k_{2} \oplus\ k_{3} = 1^l $ , 其中密碼 $ c $ , 資訊 $ m $ 和鑰匙 $ k $ 具有相同的位長 $ l $ .

在具體情況下,怎麼可能 $ A $ 在猜測中使用此資訊 $ m_{1}, m_{2} \text{ and } m_{3} $ ? 在一般情況下,是否有任何我應該注意的眾所周知的方法?我在哪裡可以詳細了解這些通用技術?

假設,消息是隨機均勻繪製的(不可能進行頻率分析)。

我們先來看具體案例;

我們已經知道,當一個密鑰被多次使用時,這兩個問題和關於嬰兒床拖動的好答案會導致一次性鍵盤變得不安全。

但是,在您的情況下,鍵不一樣,只有一個關係由

$$ k_1 \oplus \ldots \oplus k_n = 1^l $$(消息長度 $ n $ 和鍵的數量在這裡混淆讓 $ l $ 是消息長度)

  • 現在,讓 $ n=2 $ 消息 $ m_1 $ 和 $ m_2 $ 比 $ k_1 \oplus k_2 \oplus 1^l $

如果我們 x-or 這兩個密文 $ c_1 $ 和 $ c_2 $ 的 $ m_1 $ 和 $ m_2 $ , 分別; $$ c_1 \oplus c_2 = m_1 \oplus k_1 \oplus m_2 \oplus k_2 = m_1 \oplus m_2 \oplus 1^l $$ 然後;

$$ c_1 \oplus c_2 \oplus 1^l = m_1 \oplus m_2 $$所以解決這個問題的方法就是通常的兩次墊。

  • 現在讓我們 $ n=3 $ 消息 $ m_1, m_2 $ 和 $ m_3 $ 比 $ k_1 \oplus k_2 \oplus k_3 \oplus 1^l $ . 比我們將擁有 $$ c_1 \oplus c_2 \oplus c_3 \oplus 1^l = m_1 \oplus m_2 \oplus m_3 $$

這也可能會受到攻擊,但會更難,因為我們必須猜測兩個詞並從第三條消息中看到它。預期時間是 $ n=2 $ 初始猜測的情況。

  • 什麼時候 $ n $ 變得更大,它將需要更多的猜測和試驗。

隨意的 $ f $

在這裡,我們只看案例 $ n=2 $ ,而且只有想法;

我們有 $ c_1 = m_1 \oplus k_1 $ , $ c_2 = m_2 \oplus k_2 $ , 和 $ f(k_1, k_2) = v $

我們不能在這裡應用嬰兒床拖動,因為

$$ c_1 \oplus c_2 = (m_1 \oplus m_2) \oplus (k_1 \oplus k_2) $$猜測 $ m_1 $ 不會提供任何資訊。可以通過猜測兩個單詞並驗證 $ k_1 $ 和 $ k_2 $ 滿足兩個關係;

$$ k_1 \oplus k_2 = m_1 \oplus m_2 \text{ and } f(k_1, k_2) = v $$

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