Brute-Force-Attack
暴力攻擊是否使用創建密文的程序?
我已經閱讀了幾篇關於暴力密碼分析攻擊的文章,但沒有明確說明每次嘗試執行什麼算法,也沒有明確說明使用什麼標準來宣布嘗試成功或失敗。如果要嘗試所有可能的鍵值,那麼將這些鍵輸入到什麼中?對密文塊的暴力攻擊意味著密碼分析者將密文視為黑匣子。密碼分析員是否有塊盒,他們是否能夠驅動黑盒?
例如,假設有人使用一個 GUI 應用程序,該應用程序將文件和密碼作為輸入,並生成一個加密文件作為輸出。預期用途是讓接收者使用加密文件和密碼來獲取明文文件作為輸出。這個相同的 GUI 應用程序是否由密碼分析員的蠻力應用程序以某種方式驅動以嘗試所有可能的密碼?大多數 GUI 程序都不夠快,無法在合理的時間內執行數十億次。除此之外,大多數加密都是計算密集型的,並且可以變慢以防止此類攻擊。
蠻力攻擊通常在自定義硬體或軟體中實現,以獲得最佳性能。
顯然,在實施攻擊之前必須確定加密方法。可以通過多種方式確定加密方法:
- 它是公開可用的,例如開原始碼或開放規範
- 它是秘密的,並被有權訪問內幕資訊的人洩露
- 它是逆向工程的,例如通過拆卸應用程序
顯然,您正在混合兩種不同的東西。密碼學和使用密碼學的應用程序。
在密碼學中,蠻力攻擊使用測試某個域的所有可能值以尋找匹配項的策略。例如,如果您有興趣對某個密碼的密鑰空間應用蠻力攻擊,則必須列舉所有可能的密鑰並使用一些低成本的測試算法測試其相關性。一般來說,測試算法和目標域都應該是公開的。這是因為密碼系統的安全性永遠不應依賴於對手對所採用的密碼算法的無知。這將是一種極其幼稚和脆弱的做法。
關於您的應用程序(有或沒有介面……),要使用暴力攻擊它,您需要擁有加密應用程序或知道哪種算法(以及它是如何實現的)以重建這種加密應用。一般來說,這不應被視為一項艱鉅的任務。