Block-Cipher

Twofish 如何將 Reed-Solomon MDS 矩陣乘法的結果展平為 32 位結果?

  • September 29, 2020

我很難理解 Reed-Solomon 編碼如何產生與輸入相同數量的輸出位。

Twofish 使用這種技術。我已經閱讀了論文,但仍然不太了解展平是如何工作的。在我的理解中,RS應該添加冗餘位,並且輸出必須大於輸入。我錯過了什麼?

另外,如何從RS編碼構造MDS矩陣?它似乎是使用巧妙的啟發式方法建構的。

在加密擴散層設計中,MDS 矩陣通常以下列形式使用:

$$ X_{n+1}=M X_n, $$ 實際的程式碼字在哪裡 $ (X_n | X_{n+1}). $ 所以這是一個比率 $ 1/2 $ MDS 程式碼。它不一定是 Reed Solomon,並且在速度和其他考慮方面進行了優化。這也是在 Twofish 中完成的。

尤其是 $ X_n $ 由 4 個單片語成,它們是 sboxes 的輸出 $ (S_0,S_1,S_2,S_3) $ 和 $ X_{n+1} $ 是這個向量與 MDS 矩陣相乘的結果 $ M $ .

請參閱此問題的答案。

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