ВУЗ:
Составители:
Рубрика:
88 Д. С. КУЛЯБОВ
7. Процесс продолжается циклически до тех пор, пока не будут получе-
ны сначала все пары подключей (9 пар), а затем все пары элементов
S-блоков (512 пар). Таким образом, всего выполняется 521 раунд
шифрования, на каждом из которых происходит модификация под-
ключей.
Полученные массивы подключей и S-блоков используются для шифро-
вания данных.
АЛГОРИТМ RC5. RC5 представляет собой блочный шифр с множеством
параметров: размером блока, размером ключа, и числом раундов. В RC5
предусмотрены три операции: XOR, сложение и циклические сдвиги. Пе-
ременные циклические сдвиги представляют собой нелинейную функцию.
Секретный b-байтный (0 6 b 6 255) ключ KS преобразуется в расши-
ренный ключ K = K
0
K
1
. . . K
2R+1
, где R — число циклов, а размер W слова
K
i
может быть 16, 32 или 64 бита.
Построение расширенного ключа включает в себя следующие опера-
ции:
— представление b-байтного ключа в виде последовательности W -
битных слов L = L
0
L
1
. . . L
r−1
, где r =
8(b−1)
W +1
;
— построение фиксированной (не зависящей от ключа KS) псевдо-
случайной последовательности S = S
0
S
1
. . . S
2R+1
на основе чисел
e = 2.71828 (основание натурального логарифма) и ϕ = 1.67803 (зо-
лотое сечение);
— получение расширенного ключа K из последовательности L и S по
алгоритму, аналогичному алгоритму шифрования, в котором на каж-
дом шаге: a ← (S
i
+ a + b) ≪ 3; S
i
← a; b ← (L
j
+ a + b) ≪ (a + b);
L
j
← b, где „+“ — сложение по модулю 2
W
, „≪ x“ — циклический
сдвиг влево на x бит.
Исходными значениями для a, b, i, j являются нули, а число итераций
определяется размером ключа KS.
Алгоритм шифрования:
1. блок входного открытого текста длины 2W бит разбивается на два
полублока A и B по W бит;
2. первые два слова расширенного ключа K
0
и K
1
суммируются по мо-
дулю 2
W
с полублоками A и B соответственно;
3. выполняется циклическая итерация: A ← ((A ⊕ B) ≪ W
B
) + K
2i
,
B ← ((B ⊕ A) ≪ W
A
) + K
2i+1
, i = 1, . . . , R, где „+“ — сложение по
модулю 2
W
, „≪ W
X
“ — циклический сдвиг влево на X, т.е. сдвиг на
X(modW).
Выходным зашифрованным текстом является конкатенация итоговых
значений полублоков A и B после R циклов.
При расшифровании операции выполняются в обратном порядке с тем
же расширенным ключом.
Страницы
- « первая
- ‹ предыдущая
- …
- 86
- 87
- 88
- 89
- 90
- …
- следующая ›
- последняя »