Twofish(雙魚)是布魯斯·施奈爾帶領的項目組於1998年研發的分組密碼算法。美國國家標準技術研究所(NIST)公開招募的高級加密標準(AES)決賽算法之一,但最終並未當選高級加密標準。Twofish的標誌性特點是它採用了和密鑰相關的替換盒(S盒)。密鑰輸入位的一半被用於「真正的」加密流程進行編排並作為Feistel的輪密鑰使用,而另一半用於修改算法所使用的S盒。Twofish的密鑰編排非常複雜。

Twofish
Twofish算法
概述
設計者布魯斯·施奈爾
首次發布1998年,​26年前​(1998
衍生自BlowfishSAFER英語SAFERSquare英語Square (cipher)
相關算法Threefish英語Threefish
認證AES決賽算法
密碼細節
密鑰長度128、192、256位
分組長度128位
結構Feistel network
重複回數16
最佳公開破解
Truncated differential cryptanalysis英語Truncated differential cryptanalysis requiring roughly 251 chosen plaintexts.[1] Impossible differential attack英語Impossible differential attack that breaks 6 rounds out of 16 of the 256-bit key version using 2256 steps.[2]

軟件實現的128位Twofish在大多數平台上的運行速度不及最終勝出AES評選的128位Rijndael算法,不過,256位的Twofish運行速度卻較AES-256稍快。

概要

Twofish有128、192、256位三種密鑰長度可供選擇,塊大小為128位,可以看作是布魯斯·施奈爾1993年開發的Blowfish算法的延伸版本。技術上使用與Blowfish類似的計算方法,但是考慮到主要面向於網絡應用,提高了更大密鑰算法的速度。[3]

與Blowfish算法一樣,Twofish無須授權即可使用。

參考資料

  1. ^ Shiho Moriai; Yiqun Lisa Yin. Cryptanalysis of Twofish (II) (PDF). 2000 [2013-01-14]. (原始內容 (PDF)存檔於2012-06-01). 
  2. ^ Niels Ferguson. Impossible differentials in Twofish (PDF). 1999-10-05 [2013-01-14]. (原始內容存檔於2013-03-08). 
  3. ^ Bruce Schneier. Twofish. 1998 [2011-09-13]. (原始內容存檔於2011-09-06).