安全性與抗碰撞性?
我一直在做一些關於安全性的研究,我對安全性與抗碰撞性的位點感到困惑,我想知道是否有人可以澄清我的理解。
例如,如果您有一個 128 位塊,與 256 位密鑰一起使用,則提供 256 位安全性,因為在這種情況下,密鑰長度決定了安全性位。
但如果你有 SHA-256,它提供 256/2 = 128 位的抗碰撞性。這是否意味著 SHA256 的安全位是 128 位?還是說抗碰撞性與安全性完全不同?
我寫下了我認為根據所使用的原語類型擷取安全性的內容:
- 分組密碼的安全位取決於密鑰長度(就像上面使用 256 位密鑰的 AES 128 的範例)
- MAC的安全位是最小的(安全的關鍵位,安全的雜湊位)
- 雜湊函式的安全位是 l/2 還是 l 位?
我的問題是我們的目標是碰撞位(如果適用)而不是安全位嗎?
任何幫助表示讚賞!謝謝!
我對安全性與抗碰撞性的位感到困惑
好吧,這就是“安全性”的含義;我們說原始提供 $ \ell $ 如果針對該原語的最廣為人知的攻擊需要大約 $ 2^\ell $ 操作。是的,這有點不精確(什麼是“粗略”,什麼是操作?),但通常足以進行討論。
- 分組密碼的安全位取決於密鑰長度(就像上面使用 256 位密鑰的 AES 128 的範例)
差不多(假設分組密碼本身沒有任何非通用攻擊,如果我們不談論生日綁定攻擊或針對密碼模式的攻擊)。
Nit:一般來說,“AES 128”是具有 128 位密鑰的 AES;我們將使用 256 位密鑰“AES 256”呼叫 AES
- MAC的安全位是最小的(安全的關鍵位,安全的雜湊位)
好吧,這就是一般的“安全性”有點崩潰的地方。做任何操作都是不切實際的 $ 2^{64} $ 連續的步驟(即使每一步都需要一納秒,我們談論的是超過 500 年)。在大多數情況下(例如,對密鑰進行暴力攻擊),這不是問題;我們可以輕鬆地並行執行(例如租用大量雲電腦,或使用 GPU 農場),因此大型組織在執行方面幾乎沒有問題,例如, $ 2^{64} $ 聚合操作。然而,針對“MAC 大小”的通用攻擊將是“生成我們想要的消息,插入 MAC 的猜測,並將其發送到受到攻擊的設備”。由於受到攻擊的設備需要連續處理每個猜測,我們無法並行化它(除非我們有大量設備,所有設備都具有有效密鑰;通常情況並非如此),因此在實踐中,針對“雜湊長度”(如您所說)比對密鑰的攻擊要困難得多。
- 雜湊函式的安全位是 l/2 還是 l 位?
取決於你需要強大的攻擊。如果是碰撞攻擊(也就是說,如果攻擊者能夠找到兩條雜湊值相同的消息,則攻擊者“獲勝”),它最多為 l/2(因為有通用攻擊適用於 $ 2^{l/2} $ 時間。另一方面,如果您不關心碰撞攻擊,而只關心原像或第二次原像攻擊,則它可能多達 l 位(因為最好的通用攻擊需要 $ 2^l $ 時間