Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
158
Добавлен:
19.02.2016
Размер:
5.19 Mб
Скачать

70 Глава 5. ОСОБЕННОСТИ ПРИМЕНЕНИЯ АЛГОРИТМА ГОСТ 28147-89

соответствующего узла Kj и циклическом сдвиге полученного подблока на 11 разрядов влево.

~

является циклически

Обратим внимание, что, таким образом, Ui1

сдвинутым выходом с блока подстановки K.

 

Расшифрование происходит в соответствии с алгоритмом зашифрования, однако выбор подключей производится в обратном порядке, по отношению к t(i). Подчеркнем, что это свойство не зависит от количества циклов и последовательности t(i), используемых в преобразовании GA.

Два последних наблюдения позволяют сделать некоторые выводы о связи между виртуальными таблицами замены рассматриваемого блочного шифра и ключами.

5.2. Влияние блока подстановки на последовательности выходов итераций

Влияние долговременного ключа K на выходы циклов (последовательность u) можно проследить, исходя из того, что блок U30||U31 поразрядно отличается от входного блока U-2||U-1, на слагаемое L||R, где подблоки L и R являются

 

 

~

~

~

 

 

 

 

линейными комбинациями вида V1 V2 K Vh .

 

 

 

 

 

 

~

=Ui (i = 0,1,K,31).

 

Действительно, по определению, Ui2 Ui1

 

Таким

 

~

=U1

 

и

~

следует

образом, из U1 U0

 

U1 U2 =U3

~

~

=U3 .

 

 

 

 

 

 

U1 U0

U2

 

 

 

 

 

 

 

 

~

~

~

 

,

(k = 0,1,K,15).

 

По индукции: U2k +1 =U1 U0

U2 K U2k

 

 

 

~

~

~

 

,

(k = 0,1,K,15).

 

Аналогично, U2k =U2 U1 U1K U2k 1

 

Итак, левый и правый подблоки открытого текста, фактически, шестнадцать раз гаммируются поразрядным сложением выходами с блока подстановки в нечетных и четных циклах соответственно. Следовательно,

и U1
1 2 +1 2(1 8)16 =1 2 +(1 2)49 .

Влияние блока подстановки на последовательность выходов итераций 71

определенную информацию о свойствах «псевдогаммы» L и R можно получить, исходя из свойств K, без учета остальных параметров.

Рассмотрим долговременный ключ K как таблицу, колонки которой являются правыми частями булевых функций от четырех переменных.

Очевидно, при преобладании, скажем, нулей в колонке, при случайном равновероятном и независимом выборе аргументов, на соответствующем месте выходного блока вероятность нуля также будет завышена. В данном случае появление нуля или единицы являются событиями, соответствующими схеме Бернулли с постоянными вероятностями.

Наименьшее (на два бита) возможное преобладание нулей в колонке соответствует распределению вероятностей единицы (p) и нуля (q), при котором q p =18.

Действительно, пусть количество нулей и единиц в колонке равно z и e соответственно.

Очевидно, сумма нулей и единиц равна z + e =16 , а их разность равна преобладанию: z e = h . Поэтому h - минимальное четное число большее нуля, т.е. h = 2, откуда q p = (z e) 16 =1 8 .

Легко получить формулу для вычисления вероятности нуля в сумме из k

битов при заданном преобладании q p =δ : P(0)=1 2 +1 2(δ)k .

Если h = 2, то после суммирования шестнадцати подблоков псевдогаммы бит на выходе GA совпадает с битом на входе с вероятностью

Следовательно, возможна генерация

ослабленной гаммы.

Например, если каждый узел замены Ki содержит лишь одинаковые тетрады, скажем mi, то блок L||R равен нулю, как поразрядная сумма шестнадцати одинаковых блоков m1|| K||m8. В этом случае U2 лишь меняются местами и все сеансовые ключи являются криптоэквивалентными.

72 Глава 5. ОСОБЕННОСТИ ПРИМЕНЕНИЯ АЛГОРИТМА ГОСТ 28147-89

Таким образом, качество псевдогаммы полностью зависит от свойств булевых функций, составляющих блок подстановки K. В частности, видно, по какой причине функции, для которых p q = 0 , предпочтительнее остальных.

5.2.1. Расшифрование в режиме простой замены

Процесс расшифрования в режиме простой замены является типичным для ряда блочных шифров. Остановимся на нем подробнее, т.к. его свойства мы существенно используем в дальнейшем.

Вспомним, что зашифрование в режиме простой замены

T = GA(S )

представляется в виде:

u = (U2 ,U1,U0 ,U1,U2 ,K,U30 ,U31 ), U2 || U1 = S ,

U31 || U30 =T .

 

 

 

 

 

При расшифровании используется

обратный порядок подключей,

а роль

U2 || U1

играет блок Т.

 

 

 

 

Суть

механизма

расшифрования

состоит в повторении

вычисления

 

 

 

 

 

 

 

~

значений цикловой функции на циклах 31, 30,..., 1, 0, т.е. подблоков вида Ui1 .

Если Ui

 

~

,

то из соотношения Ui2

~

 

поразрядно сложить с Ui1

Ui1 =Ui

следует,

что

результат будет равен

 

Ui2 . Таким образом,

исходя из

U31 || U30 =T , i = 31,

мы получим U29 . Аналогично, исходя из U30 || U29 ,

получим U28

и т.д.

 

 

 

 

 

При этом именно дополнительное преобразование выходного блока сводит

расшифрование к изменению порядка следования подключей.

 

 

Действительно,

расшифрование

представляется

в

виде

uˆ = (U31,U30 ,U29 ,U28 ,K,U0 ,U1,U2 ),

U31 || U30 =T , а U2 || U1 = S

(после дополнительного преобразования результата последнего цикла алгоритма).