TRIVIUM Stream cipher 它是如何工作的
您好,我是密碼學的新手,所以我發現 Trivium 流密碼 任何人都可以用基本語言解釋 Trivium 密碼的工作原理
基本。 在對稱密碼學中,明文的加密和解密是使用相同的密鑰完成的(與公鑰密碼學不同)。Trivium 是一種對稱密碼,更具體地說是一種流密碼,這意味著隨機(偽隨機)位流用於加密/解密(與將明文分成塊的塊密碼相反)。在加密階段,明文與所謂的密鑰流/輸出流進行異或運算,得到密文。解密是類似地完成的,即密文與密鑰流異或得到原始明文。
NLFSR。 Trivium 的一個主要建構塊是所謂的非線性回饋移位寄存器(NLFSR),它在硬體中實現非常高效。NLFSR 由一組寄存器組成,其中數組的大小稱為NLFSR 的度數。此外,回饋迴路由一組布爾回饋係數指定。NLFSR 的狀態在每個“時鐘滴答”中通過將所有寄存器中的值向右移動並將最左邊寄存器的新值設置為等於目前寄存器的某些子集的某個非線性函式來更新回饋係數。NLFSR 在每個時鐘節拍輸出最右邊寄存器的值。如果 NLFSR 有學位 $ n $ ,那麼第一個 $ n $ 輸出流的位正是初始狀態。
背景。 Trivium 流密碼被選為 eSTREAM 項目組合的一部分,該項目於 2008 年在歐洲完成,其目標是開發新的流密碼。它的設計旨在具有簡單的描述和緊湊的硬體描述。
瑣事。 Trivium 使用三個耦合的 NLFSR,稱它們為 $ A $ , $ B $ , 和 $ C $ , 有學位 $ 93 $ , $ 84 $ , 和 $ 111 $ , 分別。Trivium 的狀態就是 $ 288 $ 位組成三個 NLFSR 的所有寄存器中的值。在每個時鐘節拍,每個 NLFSR 的輸出與最右邊的寄存器和一個附加寄存器進行異或運算;Trivium 的輸出是三個 NLFSR 的輸出位的 XOR。在每個時鐘節拍,每個 NLFSR 的最左邊寄存器的新值被計算為同一 NLFSR 中的一個寄存器和來自第二個 NLFSR 的寄存器子集的函式。Trivium 使用 $ 80 $ -bit 密鑰和一個 $ 80 $ -位初始化向量(IV)。密鑰被載入到 $ 80 $ 最左邊的寄存器 $ A $ ,並且 IV 被載入到 $ 80 $ 最左邊的寄存器 $ B $ . 其餘寄存器設置為 $ 0 $ ,除了三個正確的寄存器 $ C $ , 設置為 $ 1 $ . 然後執行 NLFSR $ 4\cdot 288 $ 時鐘滴答,(丟棄輸出),結果狀態被視為初始狀態。密碼規範指出,至多 $ 2^{64} $ 可以從每個密鑰/IV 對生成密鑰流位。
參考
喬納森·卡茨和耶胡達·林德爾。2021.現代密碼學導論,第二版(第 3 版)。查普曼和霍爾/CRC。