210
потому что даже при наименьших изменениях ключа (например, только в одном
бите) должен изменяться (и довольно существенно) каждый блок материала
ключа. [16]
Операции, в которых в качестве параметра V используется материал ключа,
называют перемешиванием с ключом или добавлением ключа (никакой связи с
арифметической операцией этот термин не имеет). Таких операций во время
шифрования одного блока выполняются довольно много. Таким образом,
решается одно из главных требований к шифрам — невосстановимость ключа.
Действительно, если к блоку данных добавлять одну и ту же информацию, но
неоднократно и разными способами, то такая информация будет необратима
относительно добавленной информации, хотя обратимость относительно первого
операнда останется.
Например, пусть X и К — четырехбитное исходное число и ключ соот-
ветственно (диапазон возможных значений 0...15 у каждого). Тогда формула
X' = ((x + k)X OR (k + 7))AND1111
2
где нижний индекс указывает на систему счисления, является обратимой от-
носительно X — по известным X' и К всегда можно восстановить X, однако
необратимой относительно К по известной паре X и X'.
Не существует аналитической формулы, которая бы вычисляла К через X и X'.
Конечно, всегда можно составить табличную зависимость, перебрав при
известном X все K и записав все полученные X', однако это легко сделать только
в гипотетическом примере из 16 возможных значений. На практике, при длине
ключа в 128 бит для решения этой задачи не хватит ни ресурсов памяти для
хранения, ни вычислительных возможностей ЭВМ. Таким образом,
многократное сложение материала ключа по сложной схеме является надежным
средством защиты блочных шифров от атаки по известным парам
"открытый/зашифрованный текст".
Третьим возможным значением параметра V является значение, вычисленное
от независимой части шифруемого блока. Этот метод лежит в основе схемы
блочного шифрования и носит название сети Файштеля. Операции,
задействованные в качестве второго параметра для значения шифруемого блока,
обратимые только тогда, когда они оперируют независимыми частями блока.
Например, на каком-то промежуточном этапе на первый байт операцией XOR
накладывается значение пятого байта и т.д. Обратимость обеспечивается на том
основании, что на принимающей стороне алгоритм, подходя к дешифровке этого
места, уже "знает" значение пятого байта, которым производится наложение, и
повторным выполнением операции XOR восстанавливает первый байт.
Проблема возникла бы в том случае, если бы на первый байт наложили функцию
от этого же первого байта. Тогда, даже несмотря на потенциальную обратимость
операции, дешифрирующая сторона не смогла бы вычислить значение V зашла
бы в тупик.
Одной из наиболее распространенных схем блочных шифров является сеть.
Блочный шифр, построенный по такой схеме, состоит из многократных