Twofish
Разработанный Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, и Niels Ferguson алгоритм шифрования Twofish был опубликован в 1998. Он использует 256 битный ключ и 128 битный блок и работает в XTS режиме (смотрите секцию Modes of Operation).
Twofish был одним из финалистов конкурса AES. Этот шифр использует зависящие от ключа S-box'ы. Twofish может быть представлен как коллекция 2128 разных криптосистем, где 128 бит полученные из 256 битного ключа контролируют выбор криптосистемы [4].. В [13], команда Twofish утверждает, что основанные на ключах S-box'ы составляют форму преимущества безопастности против неизвестных атак.
Отличительными особенностями алгоритма является использование предварительно вычисляемых и зависящих от ключа S-блоков и сложная схема разверстки подключей шифрования. Половина n-битного ключа шифрования используется как собственно ключ шифрования, другая — для модификации алгоритма (от нее зависят S-блоки). Twofish наследует некоторые принципы построения из других шифров, так он использует ту же сеть Фейстеля, что и DES, преобразование, подобное преобразованию Хадамарда (Pseudo Hadamard transform), из алгоритмов семейства Safer и т.д.
Алгоритм Twofish не запатентован и может быть использован кем-угодно без какой-либо платы или отчислений. Он используется во многих программах шифрования, хотя и получил меньшее распространение, чем Blowfish.
