ВУЗ:
Составители:
Рубрика:
ЗАЩИТА ИНФОРМАЦИИ В КОМПЬЮТЕРНЫХ СЕТЯХ 87
Шифрование данных заключается в последовательном исполнении
простой функции 16 раз. На каждом раунде выполняются зависимая от
ключа перестановка и зависимая от ключа и данных подстановка. Ис-
пользуются только операции сложения и XOR над 32-битовыми словами.
Единственные дополнительные операции каждого раунда — четыре взятия
данных из индексированного массива.
В алгоритме используется множество подключей, которые должны
быть вычислены до начала шифрования и расшифрования данных.
Шифрование 64-битного блока входного текста включает в себя
(рис. 4.4):
1) разбиение блока на два 32-полублока x
0
и x
00
;
2) выполнение на каждом раунде i = 1, . . . , 16 следующих операций:
— левый полублок x
0
суммируется по модулю 2 с соответствующим
подключом K
i
;
— полученная сумма x разбивается на четыре 8-битных подбло-
ка a, b, c, d, каждый из которых является адресом элемента со-
ответствующей подстановки S
j
, 1 6 j 6 4. 32-битный резуль-
тат обработки полублока оператором F формируется по формуле:
F(x) = ((S
1,a
+ S
2,b
) ⊕ S
3,c
) + S
4,d
, где „⊕“ — сложение по модулю
2, „+“ — сложение по модулю 2
32
;
— компоненты левого зашифрованного полублока F(x
0
) суммируются
по модулю 2 с компонентами правого полублока x
00
;
— компоненты левого и правого полублоков меняются местами (на
последнем раунде этот шаг не выполняется).
3) после 16 раундов левая и правая половины полученного текста сумми-
руются по модулю 2 с подключами K
18
и K
17
соответственно.
Выходным зашифрованным текстом является конкатенация двух полу-
блоков, полученных на шаге 3.
Расшифрование осуществляется аналогично, с обратным порядком ис-
пользования подключей: K
18
, K
17
, . . . , K
1
.
Подключи K
1
, K
2
, . . . , K
18
и S-блоки S
1
, S
2
, S
3
, S
4
вырабатываются из
секретного ключа KS с использованием алгоритма шифрования, а именно:
1. Начальный массив K
i
подключей и S-блоков инициируются фиксиро-
ванной 128-битной строкой (дробной частью числа pi = 3, 14159 . . .
в шестнадцатиричном представлении).
2. K
1
суммируется по модулю 2 с первыми 32 битами ключа KS; K
2
сум-
мируется по модулю 2 со следующими 32 битами ключа KS и т.д. для
всех разрядов ключа. В случае короткого ключа KS для построения
массива K
i
используется конкатенация ключа вида: KSKS, KSKSKS
и т.д.
3. 64-битный блок 0 = (0, 0, . . . , 0) зашифровывается алгоритмом Blow-
fish на подключах, полученных на шагах 1 и 2.
4. K
1
и K
2
заменяются полученным на шаге 3 результатом шифрования
C0 = Blowf ish(0).
5. Шифротекст C0 зашифровывается алгоритмом Blowfish на модифи-
цированных подключах.
6. K
3
и K
4
заменяются полученным на шаге 5 реультатом шифрования
C1 = Blowf ish(C0).
Страницы
- « первая
- ‹ предыдущая
- …
- 85
- 86
- 87
- 88
- 89
- …
- следующая ›
- последняя »