Brute-Force-Attack

通過混淆降低蠻力攻擊的效率?

  • June 29, 2017

這個頁面在維基百科上,免費的百科全書

“通過混淆要編碼的數據,使攻擊者更難辨識程式碼何時被破解,或者通過讓攻擊者做更多的工作來測試每個猜測,可以降低蠻力攻擊的有效性。”

這可能是有道理的,但有沒有廣泛使用的加密軟體做這種事情的例子?

由於談論任何軟體都沒有顯示任何內容,因此我將討論他們是如何做到的以及他們在哪裡做的。

當密碼發揮作用時,這種“混淆”通常會發生。有很多很好的密碼散列函式,通過“混淆”它來減慢攻擊者的速度,然後蠻力必須使用相同的“混淆”,它被設計為很慢。這樣做是因為使用者總是會生成弱密碼,這不是我們可以修復的。但這對於修復本質上被破壞的東西仍然是徒勞的(使用者總是會設計出糟糕而短的密碼)。將密碼設置為兩倍的時間比讓“密碼檢查”花費兩倍的時間要有效得多。將密鑰增加一位使安全性加倍。將檢查時間增加 2 倍會使安全性加倍。

除了密碼,我們幾乎從不使用這種“混淆”,因為它們不能有效地阻止攻擊者。使密鑰加倍長度會以難以想像的因素增加安全性,加倍加密只會使安全性加倍!

如果我是在發明東西而不是問問題,我會讓我的軟體對純數據進行分組密碼,並將密鑰附加到新加密的數據中。我至少會這樣做兩次,現在數據看起來像均勻分佈的隨機數據(因為密鑰和加密消息都是),並且攻擊者必須對每個消息進行至少 1 次完整解密蠻力嘗試。

這對你沒有幫助。我只需要兩倍的時間來解密您的消息。這不是很多,因為計算能力增長得非常快,所以最壞的情況我會等一年來打破你的計劃。另一方面,您將不得不花費兩倍的時間來加密該消息。我們最終受到同樣的打擊。

歷史喜歡重演。德國人試圖通過使用越來越複雜的編碼方案來修復謎團,但沒有幫助。RC4 通過刪除前 X 個字節來“修復”,但從長遠來看並沒有幫助(修復之前的所有內容都受到了損害,修復之後的所有內容在幾年內都是安全的)。很容易陷入“我稍微改一下,它就會再次安全”的陷阱,事實是我們不知道它會安全多久,所以最好把壞的留在後面,變得更好,更有效的算法。

但他們仍然將系統設計為能夠抵禦暴力攻擊,這就是人們不斷製作密鑰的原因。

問題是,您甚至沒有使密鑰更長。僅當將密鑰增加 X 將比 X 增加更大的安全性時,密鑰才有意義。相反,您將其設置為您和攻擊者需要兩倍的時間。從長遠來看,它對攻擊者沒有影響。RSA 是一種特殊情況,因為 RSA 本質上比 bruteforce 具有更好的因式分解算法,而我們現在遠離 RSA,因為它不夠高效。但是,如果 RSA 被破解,從而開發出更好的算法,我們可能會完全遠離 RSA,因為我們無法使密鑰大到足以讓攻擊者無能為力。RSA 也與對稱密碼有很大不同,因為效率、破壞方法等,所以比較兩者是不正確的。

混淆可能只是描述不同概念的一種老式方式,它以某種方式擴展了對純文字進行預處理的想法,並在目前的密碼系統中使用,例如All-or-nothing 轉換和AES 中的初始化向量,給定它的描述是:

幾種模式使用的比特塊來隨機化加密,因此即使相同的明文被多次加密,也會產生不同的密文

在使用加密系統的其餘部分之前通過隨機化純文字而受益的密碼列表可以通過查找任何在選定或已知的純文字攻擊(如PKZIP 流密碼)的幫助下被破壞的密碼來找到。

建議的方法可能存在缺陷,實際上可能會通過以純文字形式發送密鑰和密碼來削弱系統,因為如果與此答案相關,這可能會洩漏資訊。

因此,總而言之,像 AES 這樣的加密不需要額外的步驟,因為替換置換網路會隨機化純文字,並且攻擊者重複檢查每個密鑰的成本也很高,易受已知純文字攻擊的早期加密可能已經從這樣的一步中受益。

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