Difference between revisions of "Криптографический алгоритм Blowfish"

From CryptoWiki
Jump to: navigation, search
(Created page with "Blowfish – это криптографический алгоритм, разработанный в 1993 году Брюсом Шнайером (Bruce Schneier). Blowfish...")
 
Line 1: Line 1:
Blowfish – это криптографический алгоритм, разработанный в 1993 году Брюсом Шнайером (Bruce Schneier).  
+
'''Blowfish''' – это криптографический алгоритм, разработанный в 1993 году Брюсом Шнайером (Bruce Schneier).  
  
 
Blowfish представляет собой 64-битовый блочный шифр с ключом переменной длины. Алгоритм состоит из двух частей: развертывание ключа и шифрование данных.  
 
Blowfish представляет собой 64-битовый блочный шифр с ключом переменной длины. Алгоритм состоит из двух частей: развертывание ключа и шифрование данных.  

Revision as of 15:49, 6 December 2013

Blowfish – это криптографический алгоритм, разработанный в 1993 году Брюсом Шнайером (Bruce Schneier).

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

Развертывание ключа преобразует ключ длиной до 448 битов в несколько массивов подключей, общим объемом 4168 байтов.

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

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

P-массив состоит из 18 32-битовых подключей: P1, P2, … , P18.

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

Blow1.png

Blow2.png

Метод вычисления подключей

Blowfish является сетью Фейстела (Feistel), состоящий из 16 этапов (см. рисунок Blowfish). На вход подается 64-битовый элемент данных X.

Рисунок. Blowfish.

Blow3.png