密碼的簡單位測量安全性的替代方案
對於加密原語,我們通常會看到以位為單位測量的安全級別,其中 n 位安全意味著攻擊者必須執行 $ 2^n $ 操作來打破它。
對於密鑰派生函式,我們經常看到故意使用大量計算或記憶體的函式,以使它們的計算成本很高。
然而,在比較密碼的安全級別時,似乎很少討論計算費用。
我的假設:與可以並行執行的密碼相比,不能並行執行的密碼(在某些方面)更安全,這似乎是合乎邏輯的。或者,如果其中一個在超級電腦上執行速度快十億倍,那麼兩個具有相同安全級別的密碼並不真正相等。
問題
- 我的假設是否被誤導了?
- 考慮到算法的計算費用,是否有任何替代方法來衡量密碼安全性?如果不是,為什麼不呢?
我的假設:與可以並行執行的密碼相比,不能並行執行的密碼(在某些方面)更安全,這似乎是合乎邏輯的。或者,如果其中一個在超級電腦上執行速度快十億倍,那麼兩個具有相同安全級別的密碼並不真正相等。
我的假設是否被誤導了?
一個密碼 $ n $ -位安全意味著有 $ 2^n $ 選擇作為加密密鑰的密鑰。如果我們可以迭代密鑰,那總是可能的,那麼我們就可以開始並行蠻力。因此,這不是一個好的前提。
密碼可以比其他密碼更快,例如 Rijndael 比 MARS 更快,這也是選擇 Rijndael 作為 AES 的原因之一。我們仍然認為 $ n $ -位安全性作為可能的密鑰數量。在比較對密碼的攻擊時,我們考慮攻擊如何比暴力破解更快。因此,我們比較了暴力破解時間——一次加密的執行時間乘以密鑰數量——與攻擊時間。第一個很容易,但仍然取決於平台,第二個可能很難,因為攻擊可能取決於許多參數並且測量可能並不容易。
例如,在改進 AES 的 Biclique 密碼分析文章 Tao et 中。al 考慮了在所有細節上執行蠻力的實際計算,並在相同的細節級別上比較了他們的攻擊,以比較攻擊的成功率。另一方面,因式分解攻擊使用朗道符號來表達它們的複雜性。
如果有更快的攻擊,我們認為這是因為加密算法被破壞了。這仍然不意味著它實際上被破壞了。考慮 AES256 有攻擊,但它們是不可行的。此外,攻擊可能需要過多的隨機記憶體訪問,這會嚴重影響計算時間。因此,它完全依賴於攻擊。
考慮到算法的計算費用,是否有任何替代方法來衡量密碼安全性?如果不是,為什麼不呢?
我們不認為算法的計算成本是一個弱點,實際上它是偉大的。誰不想要一個快速而安全的算法而不是緩慢而安全的算法?時間就是金錢,面積成本就是金錢。我們希望密碼能夠抵抗所有攻擊以確保安全 $ n $ 位密碼。
如果我們考慮對所有可能攻擊的安全性,那麼這是一個巨大的攻擊列表
- 線性攻擊安全
- 差分攻擊安全
- 代數攻擊安全
- 所需的已知明文數
- 所需選擇明文的數量
- 多目標安全。
- 並行執行的可能性
- 量子安全
- 記憶體要求
- …
考慮對 DES 的線性和差分攻擊。它們在計算要求上更快,但攻擊所需的已知明文和選擇明文非常龐大,以至於它們不實用。即使在今天,對 DES 實施的最快攻擊也是基於暴力破解。
因此,放置一個指標並不是一件容易的事。真正的衡量標準是實施和與蠻力的比較。如果這是不可能的,而且大多數情況下不是這樣,那麼要麼首選複雜性分析,要麼像 AES 攻擊中那樣詳細分析。