Salt
如何讓我的密碼顯示雪崩效應?
我是密碼學的初學者。我設計了一種基於密碼的加密解密算法,它使用隨機鹽和密碼來加密消息。我使用 SHA-512 進行散列,矩陣運算用於混洗,按位 XOR 用於混合數據和檢索。salt和密文的長度是256個字母。
據我所知,雪崩效應意味著以下任何一項的輕微變化:
- 密碼
- 密碼
- 鹽
必須徹底改變輸出。
在我的實現中,如果我更改鹽或密碼,我看不到我的輸出有任何大的變化。但是,當密碼稍有變化時,輸出就會發生巨大變化。
所以,我的問題:
- 我對雪崩效應的理解一般正確嗎?如果不是,應該是什麼?
- 我該怎麼做才能最好地在我的(或任何)密碼中產生雪崩效應?我應該減少鹽長度並生成更小的密文以產生雪崩效應嗎?如果沒有,那麼我該如何實現呢?
不要為改變實際的密碼算法而煩惱。閱讀Kerckhoffs 的原則:您應該只更改密鑰和 IV 之類的東西,而不是實際的算法。
為了測試你的雪崩,在你的鑰匙上翻轉一點。這應該會改變輸出中大約一半的位。
對於密碼設計,已經提出了*應用密碼學。*除此之外,您還需要考慮在算法中引入 Diffusion 和 Confusion。此外,研究現有算法以了解它們如何處理事情也是非常值得的。我從設計自己的簡單Feistel 密碼開始,這樣你就已經完成了很多周圍的結構。它還簡化了設計,因為 F 函式不必是可逆的。這使您在該領域具有更大的靈活性。
除了學習練習之外,不要將自己的設計用於其他任何事情的警告是一個很好的警告。