Encryption

將 32 位 ARX 密碼轉換為 64 位密碼,是否應該增加輪數?

  • January 16, 2022

我閱讀了有關在 PRF 函式中使用 64 位字的資訊。

我想將 32 位 ARX 密碼 Chacha 轉換為 64 位版本,密鑰/塊大小為 1024 位(512*2=1024 位)

我的問題是:

我應該添加更多輪次以實現類似的安全性嗎?

通常,當 ARX 算法的變體從 32 位字變為 64 位字時,我們確實會增加輪數。正如 DannyNu 所說,BLAKE2 是 ChaCha 的變體,而 BLAKE2s(32 位版本)使用 10 輪,而 BLAKE2b(64 位版本)使用 12 輪。一輪 BLAKE2 相當於兩輪 ChaCha,因此我們可能希望使用 64 位 ChaCha 的 24 輪變體。

同樣,SHA-256 和 SHA-512 是 ARX 設計,基於追溯命名為 SHACAL 的分組密碼,SHA-512 有 80 輪,而 SHA-256 有 64 輪。 Keccak,它不是ARX 設計,但在某種程度上工作類似的方式,在其 32 位和 64 位變體之間也有更多輪次。

在這種情況下我們會添加輪次的典型原因是,如果位越多,我們必須做更多的工作來確保每個關鍵位或輸入位以正確的方式對所有輸出位產生影響。

應該添加多少輪取決於密碼的特性,例如雪崩效應的指標以及對線性和差分密碼學的抵抗力。如果我們設計的算法是 ChaCha 的 64 位變體,我們將研究這些標準,並可能嘗試將最知名的對 ChaCha 的攻擊擴展到我們的變體,以查看正確的額外回合級別將是類似的安全級別。

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