One-Time-Pad

一次性密碼重用和隨機密鑰是否安全?

  • March 9, 2019

發送方和接收方共享兩個不同的密鑰:s1 和 s2 都是 y 位值。‘x’ 是隨機生成的 y 位值。閱讀器向標籤發送挑戰 y = x ⊕ s1,接收者在恢復 x = y ⊕ s1 後回复 z = x ⊕ s2。

s1 和 s2 永遠不會改變,x 是每個完整交易隨機生成的。你能通過單筆交易確定 s1 和 s2 嗎?多次後?

如果您的目標是確保只有合法發件人知道 $ s_1 $ 和 $ s_2 $ 可以回答挑戰,那麼此協議無法實現您的目標:竊聽單個挑戰/響應對 $ (y, z) $ 足以偽造任意數量的具有相同的後續響應對 $ s_1 $ 和 $ s_2 $ .

具體來說, $ z = y \oplus s_1 \oplus s_2 $ , 所以要偽造正確的響應 $ z’ = x’ \oplus s_2 $ 到隨後的挑戰 $ y’ = x’ \oplus s_1 $ 恢復就夠了 $ s_1 \oplus s_2 = z \oplus y $ 然後計算$$ z’ = y’ \oplus s_1 \oplus s_2 = x’ \oplus s_1 \oplus s_1 \oplus s_2 = x’ \oplus s_2 $$正如預期的那樣。

如果每個 $ x $ 是獨立均勻分佈的,則無法恢復 $ s_1 $ 或者 $ s_2 $ 從中(實際上,您已加密 $ s_1 $ 一次性墊 $ x $ 在這種情況下!),但最終您有興趣保護的對像很少是墊!

那麼你真正想在這裡完成什麼?

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