ВУЗ:
Составители:
Выбор ключа итерации. Ключ итерации с номером i задается словами
из буфера расширенного ключа, начиная с W[Nb i] и до W[Nb (i + 1)] и состоит
из трех этапов: начального добавления подключа; Nr – 1 итераций; конеч-
ной итерации.
2.3.3. АЛГОРИТМ RC6
В качестве одного из кандидатов фирмой RSA Data Security, Inc. был
представлен алгоритм RC6, прошедший второй тур отбора. В нем преду-
сматривается использование четырех рабочих регистров, а также введена
операция целочисленного умножения, позволяющая существенно увели-
чить возмущения, вносимые каждым циклом шифрования, что приводит к
увеличению стойкости и/или возможности сократить число циклов.
RC6 является полностью параметризованным алгоритмом шифрова-
ния. Конкретная версия RC6 обозначается как RC6-w/r/b, где w обозначает
длину слова в битах, r – ненулевое количество итерационных циклов шиф-
рования, a b – длину ключа в байтах. Во всех вариантах RC6-w/r/b работает
с четырьмя w-битовыми словами, используя шесть базовых операций, обо-
значаемых следующим образом:
а + b – целочисленное сложение по модулю 2
w
;
a – b – целочисленное вычитание по модулю 2
w
;
a ⊕ b – побитовое "исключающее ИЛИ" w-битовых слов;
а × b – целочисленное умножение по модулю 2
w
;
a << b – циклический сдвиг w-битового слова влево на величину, за-
данную log
2
w младшими битами b;
a >> b – циклический сдвиг w-битового слова вправо на величину, за-
данную log
2
w младшими битами b;
Шифрование при помощи RC6-w/r/b описывается следующим обра-
зом:
Вход: Исходный текст, записанный в 4 w-битовых входных регистрах
А, В, С, D; число циклов шифрования r; ключевая таблица S[0; ..., 2r + 3] w-
битовых слов.
Выход: Шифрованный текст в регистрах А, В, С, D.
Процедура:
B=B + S[0]
D=D + S[1]
for i=1 to r do {
t=(B×(2B+1))<<log
2
w
u=(D×(2D+1))<<log
2
w
A=((A⊕t)<<u)+S[2i]
C=((C⊕u)<<t)+S[2i+1]
(A; B; C; D) = (В; С; D; A)
}
A=A + S[2r + 2]
C=C + S[2r +3]
Расшифрование в этих обозначениях выглядит очень похоже.
Вход: Шифрованный текст, записанный в 4 w-битовых входных реги-
страх А, В, С, D; число циклов шифрования r; ключевая таблица S[0; ..., 2r
+ 3] w-битовых слов.
Выход: Исходный текст в регистрах А, В, С, D.
Процедура:
C=C–S[2r +3]
A=A–S[2r + 2]
for i=r downto 1 do {
(A; B; C; D) = (D;A; B; C)
u=(D×(2D+1))<<log
2
w
t=(B×(2B+1))<<log
2
w
Страницы
- « первая
- ‹ предыдущая
- …
- 24
- 25
- 26
- 27
- 28
- …
- следующая ›
- последняя »
