Hash
創建一個新的加密雜湊函式會有什麼好處嗎?
創建加密雜湊函式以提高安全性是否有益。加密散列函式幾乎是一種偽隨機字元串生成算法,通過增加可以生成的可能散列的數量,它很容易被破解。
為什麼要創建另一個加密雜湊函式
我想對數據庫中的密碼進行雜湊處理,以使攻擊者無法找到其原始值。我可以在生成雜湊時使用胡椒和/或鹽,但我想讓它更安全。當我要創建一個公眾無法使用的專有雜湊函式時,攻擊者甚至如何為密碼生成彩虹表。
雖然您可以創建自己的雜湊函式、對稱密碼、公鑰加密方案等,這樣沒人會知道它的設計,但依靠默默無聞(正如@kelalaka 評論的那樣)來獲得安全性可能是個壞主意。
在 19 世紀,Auguste Kerckhoffs 提出了一個我們稱之為“Kerckhoffs 原理”的原理:
一個密碼系統應該是安全的,即使系統的一切,除了密鑰,都是公共知識。
此外,香農格言也是在 20 世紀制定的,它指出:
設計系統時應該假設敵人會立即完全熟悉它們
或者換句話說——當你設計一個安全系統時,你必須假設攻擊者知道系統是如何執行的。
在您的專有散列函式範例中,攻擊者可能會以某種方式訪問計算此類散列函式的軟體或硬體,並使用加密分析或反向工程,它將設法找到諸如碰撞攻擊或原像恢復之類的漏洞技巧。
不依賴專有或秘密技術的另一個原因是消費者信任:如果您承認安全性來自於不了解實現,為什麼消費者會相信您會確保他們(散列)密碼的安全?
這就是為什麼在工業中,密碼原語(散列函式、密碼、簽名方案等)通常只有在經過科學界的嚴格審查後才被採用。然後,正在起草 RFC 和標準,以便供應商和服務提供商可以通過說明他們遵守的標準來量化他們的安全性。