3.7.1. Описание алгоритма Blowfish

Blowfish представляет собой 64-битовый блочный алгоритм шифрования с ключом переменной длины. Алгоритм состоит из двух частей: расширения ключа и шифрования данных. Расширение ключа преобразует ключ длиной до 448 битов в несколько массивов подключей общим размером 4168 байт.

Шифрование данных заключается в последовательном исполнении простой функции 16 раз. На каждом раунде выполняются зависимая от ключа перестановка и зависимая от ключа и данных подстановка. Используются только операции сложения и XOR над 32-битовыми словами. Единственные дополнительные операции каждого раунда - четыре взятия данных из индексированного массива.

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

Рис 3. Алгоритм Blowfish

 

Р-массив состоит из восемнадцати 32-битовых подключей:

Р12,...,Р18

Каждый из четырех 32-битовых S-блоков содержит 256 элементов:

S1,0, S1,1,…, S1,255

S2,0, S2,2,…, S2,255

S3,0, S3,3,…, S3,255

S4,0, S4,4,…, S4,255

Алгоритм Blowfish представляет собой сеть Файстеля, состоящей из 16 раундов. На вход подается 64-битовый элемент данных х. Для зашифрования данных:

Разбить х на две 32-битовых половины: xL, xR

Для i от 1 до 16:

xL = xL Å Pi

xR = F(xL) Å xR

Переставить xLи xR

Переставить xL и xR (отнять последнюю перестановку)

xR = xR Å P17

xL = xL Å P18

Объединить xL и xR

 

Рис. 4. Функция F

Функция F рассчитывается следующим образом ( Рис. 4.):

Разделить xL на четыре 8-битовых фрагмента: а, b, с и d

F(xL) = ((S1,a + S2,bmod232)Å  S3,c) + S4,dmod232

Расшифрование выполняется точно так же, как и зашифрование, но Р12,...,Р18 используются в обратном порядке.

В реализациях Blowfish, в которых требуется очень высокая скорость, цикл должен быть развернут, а все ключи храниться в кэше.

Подключи рассчитываются с помощью самого алгоритма Blowfish. Вот какова точная последовательность действий.

1.   Сначала Р-массив, а затем четыре S-блока по порядку инициализируются фиксированной строкой. Эта строка состоит из шестнадцатеричных цифр π.

2.   Выполняется операция XOR над Р1 с первыми 32 битами ключа, XOR над Р2 со вторыми 32 битами ключа, и т.д. для всех битов ключа (вплоть до Р18). Операция XOR выполняется циклически над битами ключа до тех пор, пока весь Р-массив не будет инициализирован.

3.   Используя подключи, полученные на этапах 1 и 2, алгоритм Blowfish шифрует строку из одних нулей.

4.   Р1 и Р2 заменяются результатом этапа 3.

5.   Результат этапа 3 шифруется с помощью алгоритма Blowfish и модифицированных подключей.

6.   Р3 и Р4 заменяются результатом этапа 5.

7.   Далее по ходу процесса все элементы Р-массива, а затем все четыре S-блока по порядку заменяются выходом постоянно меняющегося алгоритма Blowfish.

Всего для генерации всех необходимых подключей требуется 521 итерация. Приложения могут сохранять подключи - нет необходимости выполнять процесс их получения многократно.

 

3.7.2. Стойкость алгоритма Blowfish

Серж Воденэ (Serge Vaudenay) исследовал алгоритм Blowfish с известными S-блоками и r раундами. Как оказалось, дифференциальный криптоанализ может восстановить Р-массив с помощью 28r+1 подобранных открытых текстов. Для некоторых слабых ключей, которые генерируют плохие S-блоки (вероятность выбора такого ключа составляет 1/214), эта же атака восстанавливает Р-массив с помощью всего 24г+1 подобранных открытых текстов. При неизвестных S-блоках эта атака может обнаружить использование слабого ключа, но не может восстановить сам ключ (и также S-блоки и Р-массив). Эта атака эффективна только против вариантов с уменьшенным числом раундов и совершенно безнадежна против 16-раундового алгоритма Blowfish. Разумеется, важно и открытие слабых ключей, хотя они, вероятно, использоваться не будут. Слабым называют ключ, для которого два элемента данного S-блока идентичны. До выполнения расширения ключа невозможно установить факт слабости ключа.

Не известны факты успешного криптоанализа алгоритма Blowfish. В целях безопасности не следует реализовывать Blowfish с уменьшенным числом раундов. Компания Kent Marsh Ltd. встроила алгоритм Blowfish в свой продукт FolderBolt, предназначенный для обеспечения защиты Microsoft Windows и Macintosh. Кроме того, алгоритм входит в Nautilus и PGPfone.


Информация о работе «Композиции шифров»
Раздел: Информатика, программирование
Количество знаков с пробелами: 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 комментариев


Наверх