217
Тривиум использует спаренные нелинейные FSR, обозначенные как A, B и C ,
а также имеет степень 93, 84 и 111, соответственно. (См. Рисунок 6.2.) Состояние
st шифра Тривиум - это просто 288 бит, содержащие значения во всех регистрах
этих FSR. Алгоритм GetBits для шифра Тривиум работает следующим образом:
На каждом тике часов вывод каждого из FSR - это XOR его самого правого и од-
ного дополнительного регистра; вывод шифра Тривиум - это XOR вывода битов
трех FSR. FSR являются спаренными : при каждом тике часов новое значение
самого левого регистра каждого FSR вычисляется в качестве функции одного из
регистров в том же FSR и подмножества регистров второго FSR. (Функция об-
ратной связи для A зависит от одного регистра A и четырех регистров C; функция
обратной связи для B зависит от регистра B и четырез регистров A; и функция об-
ратной связи для C зависит от одного регистра C и четырех регистров B.) Функ-
ция обратной связи в каждом лсучае является нелинейной.
Алгоритм Init шифра Тривиум принимает 80-битный ключ и 80-битный IV .
Ключ загружается в 80 самых левых регистров A, а IV загружается в 80 самых
левых регистров B. Оставшиеся регистры устанавливаются на 0, кроме трех са-
мых правых регистров C, которые устанавливаются на 1. Затем GetBits запуска-
ется 4 • 288 раз (с отброшенным выводом), и итоговое состояние берется как st0.
На сегодняшний день нет известных
криптографических атак лучше, чем
полный
перебор ключей, действующих против полного шифра Тривиум.
6.1.4 RC4
LFSR эффективны, когда внедрены в оборудование, но имеют низкую производитель-
ность в программном обеспечении. По этой причине были изучены альтернативные раз-
работки потоковых шифров. Прекрасный пример - это RC4, который был разработан Ро-
ном Ривестом (Ron Rivest) в 1987 году. RC4 примечателен своей скоростью и простотой,
а также выдерживал серьезную атаку много лет. Он сегодня широко применяется, и по-
этому мы опишем его; предупреждаем читателя, однако, что самые новые атаки показали
серьезные криптографические слабости RC4 и больше его использовать нельзя.
Состояние RC4 - это 256-байтный массив S, который всегда содержит пере-
становку элементов 0, . . . , 255 вместе с двумя значениями i, j ∈{0, . . . , 255}.
Алгоритм Init для RC4 представлен как Алгоритм 6.1.
Для упрощения мы возь-
мем что 16-байтный (128-битный) ключ k, хотя алгоритм может обрабатывать
ключи длиной от 1 байта до 256. Мы обозначим байты S как S[0], . . . , S[255], а
байты ключа как k[0], . . . , k[15].