Avalanche
用於檢查雪崩效應的明文形成
我開發了一種加密算法。現在我想通過在明文中更改一位並觀察密文中有多少位更改來檢查雪崩效應。但我的疑問是**“什麼是明文中的一位變化”**例如如果明文 P1= 11223344 那麼我們的意思是一位更改為 P2= 1122 9 344
不可以。您不能使用十進制數字(或 ASCII 字元)。你必須使用二進制。您的算法將像數字計算設備一樣以二進制執行。如果您像以前一樣使用 ASCII 字元,那麼您只會測試字節值的可列印範圍。您在測試輸入中會有巨大的差距並且沒有連續性。您可能只測試 50% 的可能範圍,這取決於您對可列印 ASCII 字元的解釋。如果您將 P1 和 P2 定義為整數,那麼差距會更大(= 10/256%),因為您現在將自己限制為整數可解析字元。
所以在 Java 語言中,P1=0b1110011,因此 P2=0b1 0 10011。你隨機翻轉它們。在 Java 中這很容易,因為您可以使用 BigInteger 來處理任意大小的整數及其隨機生成。
在this、this和this other answer中有更多關於測試過程的細節。祝你的正常曲線好運。