Войти на сайт

или
Регистрация

Навигация


3.8. Алгоритм RC5

RC5 представляет собой блочный шифр с множеством параметров: размером блока, размером ключа и числом раундов. Он изобретен Роном Ривестом и проанализирован в RSA Laboratories.

В алгоритме RC5 предусмотрены три операции: XOR, сложение и циклические сдвиги. На большинстве процессоров операции циклического сдвига выполняются за постоянное время, переменные циклические сдвиги представляют собой нелинейную функцию. Эти циклические сдвиги, зависящие как от ключа, так и от данных - интересная операция.

В RC5 используется блок переменной длины, но в приводимом примере будет рассмотрен 64-битовый блок данных. Шифрование использует 2r+2 зависящих от ключа 32-битовых слов - S0, S1, S2,... S2r+1 - где r - число раундов. Для зашифрования сначала нужно разделить блок открытого текста на два 32-битовых слова: А и В. (При упаковке байтов в слова в алгоритме RC5 соблюдается соглашение о прямом порядке (little-endian) байтов: первый байт занимает младшие биты регистра А и т.д.) Затем:

A=A + S0

B = B + S0

Для i от 1 до r:

A = ((AÅ B) <<< B) + S2i

В = ((ВÅ А) <<< А) + S2i+1

Выход находится в регистрах А и В.

Расшифрование тоже несложно. Нужно разбить блок открытого текста на два слова, А и В, а затем:

Для i от r до 1 с шагом -1:

B = ((B - S2i+1) >>> A)Å A

A = ((A - S2i) >>> B)Å B

B = B – Si

A = A - S0

Символом «>>>» обозначен циклический сдвиг вправо. Конечно же, все сложения и вычитания выполняются по модулю 232.

Создание массива ключей сложнее, но тоже прямолинейно. Сначала байты ключа копируются в массив L из с 32-битовых слов, дополняя при необходимости заключительное слово нулями. Затем массив S инициализируется при помощи линейного конгруэнтного генератора по модулю 232:

S0 = Р  

Для i от 1 до 2(r + 1) - 1:

Si= (Si-1 + Q) mod 232

где P = 0xb7e15163 и Q = 0x9e3779b9, эти константы основываются на двоичном представлении е и phi.

Наконец, нужно подставить L в S:

i = j = 0

A = B = 0

Выполнить 3n раз (где п - максимум от 2(r + 1) и с):

A = S i= (Si + A + B) <<< 3

B= Li = (Li + A + B) <<< (A + B)

i = (i + 1) mod 2(r +1)

i = (j +1) mod с

В действительности RC5 представляет собой семейство алгоритмов. Выше был определен RC5 с 32-битовым словом и 64-битовым блоком, но нет причин, запрещающих использовать этот же алгоритм с 64-битовым словом и 128-битовым блоком. Для w=64, Р и Q равны 0xb7e151628aed2a6b и 0x9e3779b97f4a7c15, соответственно. Ривест обозначил различные реализации RC5 как RC5-w/r/b, где w - размер слова, r - число раундов, a b - длина ключа в байтах.

RC5 - новый алгоритм, но RSA Laboratories потратила достаточно много времени, анализируя его работу с 64-битовым блоком. После 5 раундов статистика выглядит очень убедительно. После 8 раундов каждый бит открытого текста влияет не менее чем на один циклический сдвиг. Дифференциальная атака требует 224 подобранных открытых текстов для 5 раундов, 2 - для 10 раундов, 253 - для 12 раундов и 268 - для 15 раундов. Конечно же, существует только 264 возможных открытых текстов, поэтому такая атака неприменима к алгоритму с 15 и более раундами. Оценка возможности линейного криптоанализа показывает, что алгоритм устойчив к нему после 6 раундов. Ривест рекомендует использовать не менее 12, а лучше 16, раундов. Это число может меняться.

Компания RSADSI в настоящее время патентует RC5, и его название заявлено как торговая марка. Компания утверждает, что плата за лицензию будет очень мала, но эти данные нуждаются в проверке.


4. Объединение блочных шифров

Известно множество путей объединения блочных алгоритмов для получения новых алгоритмов. Создание подобных схем стимулируется желанием повысить безопасность, избежав трудности проектирования нового алгоритма. Так, алгоритм DES относится к надежным алгоритмам, он подвергался криптоанализу добрых 20 лет и, тем не менее, наилучшим способом взлома остается лобовое вскрытие. Однако ключ DES слишком короток. Разве не плохо было бы использовать DES в качестве компонента другого алгоритма с более длинным ключом? Это позволило бы воспользоваться преимуществами обоих систем: устойчивостью, гарантированной двумя десятилетиям криптоанализа, и длинным ключом.

Один из методов объединения - многократное шифрование. В этом случае для шифрования одного и того же блока открытого текста алгоритм шифрования используется несколько раз с несколькими ключами. Каскадное шифрование подобно многократному шифрованию, но использует различные алгоритмы. Известны и другие методы.

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


Информация о работе «Композиции шифров»
Раздел: Информатика, программирование
Количество знаков с пробелами: 90088
Количество таблиц: 7
Количество изображений: 7

Похожие работы

Скачать
59220
0
0

... на генералізований пародонтит / О. І. Кутельмах // Вісник стоматології. – 2007. - № 4. – С. 137-139. АНОТАЦІЯ Кутельмах О.І. Обґрунтування застосування лікарських композицій на основі нанорозмірного кремнезему в комплексному лікуванні генералізованого пародонтиту. – Рукопис. Дисертація на здобуття наукового ступеня кандидата медичних наук за спеціальністю 14.01.22-стоматологія. – Державна ...

Скачать
45010
19
22

... X1, X2 – необходимое количество рекламных заказов 2X1+2X2 ≤ 7 X1 = 1 X2 = 2 F(X1, X2) = 7 1.4. Выбор и обоснование технических средств, программ и информационных средств для реализации математического моделирования. Для реализации математического моделирования в целях данной курсовой работы выбрана система проектирования и оценки качества и устойчивости экономических объектов – СДКМС. ...

Скачать
245524
1
0

... ічного університету, доктором технічних наук, професором М-П.Зборщиком. Висновок установи, в якій виконано дисертацію, с першою і дуже важливою її експертизою з точки зору відповідності дисертації вимогам “Порядку”. Висновок затверджується ректором (директором) або проректором (заступником директора) з наукової роботи, які несуть персональну відповідальність за якість, об'єктивність і строки пі ...

Скачать
146019
0
0

... . – СПб., Изд-во “Профессия”, 2000. – С. 54-90. Раздел II Методические указания по выполнению практических работ Введение Практические занятия по дисциплине “Патентоведение и основы научных исследований” для студентов специальности 271200 “Технология продуктов общественного питания”, направления 655700 “Технология продуктов специального назначения и общественного питания” предназначены ...

0 комментариев


Наверх