Автоматическая система контроля

Автоматизация технологических процессов

Симметричные алгоритмы шифрования

Из-за малой длины ключа (56 бит), имеется всего 256 различных ключей, что при нынешнем развитии техники недопустимо по причине низкого времени взлома атакой типа Brute Force (всего несколько часов). Также вызывает сомнение его надежность, так как в основе алгоритма DES лежат 8 таблиц подстановки (S-boxes), применяемые в каждом раунде.

На сегодняшний день такая длина ключа недостаточна, поскольку допускает успешное применение атак типа Brute Force. Альтернативой DES можно считать тройной DES. Существует опасность, что эти S-boxes конструировались таким образом, что криптоанализ возможен для взломщика, который знает слабые места S-boxes. В течение многих лет обсуждалось как стандартное, так и неожиданное поведение S-boxes, но все-таки никому не удалось обнаружить их фатально слабые места.

Всё это привело к тому, что в У. Тачмен предложил идею шифровать блок открытого текста P три раза с помощью двух ключей K1 и K2

С=ЕK1(DK2(EK2(P))) (2.2)

То есть блок открытого текста Р сначала шифруется ключом K1, затем расшифровается ключом K2 и окончательно шифруется ключом K1.

Это позволило вывести стойкость алгоритма на современный уровень.

Advanced Encryption Standard (AES)(Rijndael)Encryption Standard (AES), также известный, как Rijndael симметричный алгоритм блочного шифрования (размер блока 128 бит, ключ 128/192/256 бит), финалист конкурса AES, принятый в качестве американского стандарта шифрования правительством США. Выбор был сделан с расчётом на повсеместное использование и активный анализ алгоритма, как это было с его предшественником, DES. Государственный институт стандартов и технологий (англ. National Institute of Standards and Technology, NIST) США опубликовал предварительную спецификацию AES 26 ноября 2001 года, после пятилетней подготовки. 26 мая 2002 года AES был объявлен стандартом шифрования. По состоянию на 2006 год AES является одним из самых распространённых алгоритмов симметричного шифрования.

Этот алгоритм представляет собой симметричный блочный шифр, который работает с блоками данных длиной 128 бит и использует ключи длиной 128, 192 и 256 бит (версии AES-28; AES-192 и AES-256). Сам алгоритм может работать и с другими длинами блоков данных и ключей, но эта возможность в стандарт не вошла.

Состояние можно представить в виде прямоугольного массива байтов. Этот массив имеет 4 строки, а число столбцов обозначено как Nb и равно длине блока, деленной на 32.

Ключ шифрования также представлен в виде прямоугольного массива с четырьмя строками. Число столбцов обозначено как Nk и равно длине ключа, деленной на 32. Это показано на рисунке 1.

В некоторых случаях ключ шифрования показан как линейный массив 4-байтовых слов. Слова состоят из 4 байтов, которые находятся в одном столбце (при представлении в виде прямоугольного массива).

Рис. 2.7 Пример представления состояния (Nb=6) и ключа шифрования (Nk=4)

Входные данные для шифра ( "открытый текст", если используется режим шифрования ECB) обозначаются как байты состояния в порядке a0,0, a1,0, a3,0, a0,1, a1,1, a3,1 ,a4,1 . После завершения действия шифра выходные данные получаются из байтов состояния в том же порядке.

Число циклов обозначено как Nr и зависит от значений Nb и Nk. Оно приведено в Таблице 2.1.

Таблица № 2.1 Число циклов (Nr) как функция от длины ключа и длины блока

Цикловое преобразование состоит из четырех различных преобразований. На псевдо-Си это выглядит следующим образом:

(State, RoundKey)

{(State); // замена байт(State); // сдвиг строк(State); // замешивание столбцов(State, RoundKey); // добавление циклового ключа

}

Последний цикл шифра немного отличается. Он выглядит так:(State, RoundKey)

{(State); // замена байт(State); // сдвиг строк(State, RoundKey); // добавление циклового ключа

}

В приведенной записи, "функции" - Round, ByteSub и т.д. выполняют свои действия над массивами, переданными указателями (State, RoundKey).

Как можно заметить, последний цикл отличается от простого цикла только отсутствием замешивания столбцов. Каждое из приведенных преобразований разобрано далее.

Преобразование ByteSub представляет собой нелинейную замену байт, выполняемую независимо с каждым байтом состояния. Таблицы замены (или S-блоки) являются инвертируемыми и построены из композиции двух преобразований:

. Первое - получение обратного элемента относительно умножения в поле GF(28), описанного в разделе 2.1. '00' переходит сам в себя.

. Применение афинного преобразования (над GF(2)), определенного как:

Таблица 2.2 Схема аффинного преобразования

y0

=

1

1

1

1

1

0

0

0

x0

+

0

y1

0

1

1

1

1

1

0

0

x1

1

y2

0

0

1

1

1

1

1

0

x2

1

y3

0

0

0

1

1

1

1

1

x3

0

y4

1

0

0

0

1

1

1

1

x4

0

y5

1

1

0

0

0

1

1

1

x5

0

y6

1

1

1

0

0

0

1

1

x6

1

y7

1

1

1

1

0

0

0

1

x7

1

Перейти на страницу: 1 2 3 4 5 6 7

Другие статьи по теме

Исследование цилиндрического резонатора с коаксиальной апертурой Современная наука и производство немыслимы без точных, экспресс-методов измерения физических параметров материалов и сред. Прецизионные измерения и исследование их характеристик актуаль ...

Измерение параметров радиолокационного сигнала Исходные соотношения. Критерий оптимальной оценки параметров сигнала: Пусть на вход приемника поступает аддитивная смесь сигнала и шума: ; где: - вектор случайных ...

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