Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Защита Информации - лекции.docx
Скачиваний:
12
Добавлен:
21.09.2019
Размер:
1.97 Mб
Скачать

Режимы работы алгоритма des

Для наиболее полного удовлетворения всех требования, предъявляемых к коммерческим системам шифрования, организовано несколько режимов работы алгоритма DES.

Наибольшее распространение получили режимы:

ECB – электронный шифро-блокнот (Electronic Codebook)

CBC – цепочка цифровых блоков (Cipher Block Chaining)

CFB – цифровая обратная связь (Cipher Feedback)

OFB – внешняя обратная связь (Output Feedback)

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

Режим ECB хорошо подходит для шифрования ключей

Режимы CBC и CFB пригодны для аутентификации

Режим CFB также пригоден для шифрования отдельных символов

Режим OFB часто используется в спутниковых системах связи

DES-ECB

В этом режиме исходный файл M разбивается на 34-битовые блоки по 8 байт. Каждый из этих блоков кодируется независимо с использованием 1-го ключа шифрования.

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

DES-CBC

Исходный текст разбивается на 64 битовые блоки. 1-ый блок М1 складывается по модулю 2 с 64-битным начальным вектором, который меняется ежедневно и держится в секрете. Полученная сумма затем шифруется по алгоритму DES с использованием ключа, известного и отправителю и получателю. Полученный 64-битный блок складывается по модулю 2 со вторым блоком исходного текста и аналогично получают 2 блок зашифрованного текста и так далее. Процедура повторяется, пока не зашифруются все блоки исходного текста.

C(i) = DES (M(i) XOR C(i-1)) – шифрование

C(0) = IV

M(i) = C(i-1) XOR DES-1 (C(i)) - расшифрование

Достоинством данного режима является то, что он не позволяет накапливаться ошибке при передаче. Блок M(i) является функцией C(i) и C(i-1), поэтому ошибка при передаче приведет к потере только 2 блоков исходного текста.

DES-CFB

Размер блока может отличаться от 4.

Исходный файл М считывается последовательными t битными блоками (t<=64). Остаток дописывается нулями либо пробелами. 64 битный сдвиговый регистр в начале содержит вектор инициализации IV выровненный по правому краю (младшие регистры). Для каждого сеанса использования используется новый ключ.

Для всех i блоков шифр записывается

C(i) = M(i) XOR P(i-1)

где P(i-1) – старшие t битов операции DES(C(i-1))

С(0) = IV

Восстановление по обратному алгоритму M(i) = C(i) XOR P(i-1)

DES-OFB

Отличие от CFB состоит только в методе обновления сдвигового регистра. Осуществляется путем удаления его старших t бит и дописывания справа P(i-1)

Лекция 7

Алгоритм шифрования idea

Алгоритм шифрования IDEA является блочным шифром и оперирует 64-битовыми блоками открытого текста.

Достоинством алгоритма IDEA является использование 128-битового ключа. Один и тот же алгоритм используется для шифрования и дешифрования.

Алгоритм IDEA использует при шифровании процессы смешивания и рассеивания, которые хорошо реализуются аппаратными и программными методами.

В алгоритме используются следующие математические операции:

  1. Поразрядное сложение по модулю 2

(исключающее ИЛИ, обозначается (+) )

  1. Сложение беззнаковых целых по модулю 2^16( [+] )

  1. Умножение беззнаковых целых по модулю 2^16 +1 (.)

Все операции выполняются над 16-битовыми субблоками.

Эти 3 операции несовместимы в том случае, что никакая пара из этих 3х операций не удовлетворяет ассоциативному закону.

a[+](b(+)c) != (a[+]b)(+)с

Никакая пара не удовлетворяет дистрибутивному закону

a[+](b(.)c) != (a(+)b)(.)(a[+]c)

Использование этих 3х операций обеспечивают комплексное преобразование входных данных, существенно затрудняя криптоанализ IDEA по сравнению с DES, который использует только операции исключающее ИЛИ.

Входной 64-битный текст делится на 4 16-битовых блока. Эти 4 субблока становятся входами в 1ый цикл алгоритма. Всего выполняется 8 циклов. Между циклами 2ой и 3ий блоки меняются местами.

В каждом цикле выполняются следующие операции:

  1. – умножение субблока x1 и 1го подключа (Z)

2 – сложение субблока x2 и второго подключа

3 – сложение субблока x3 и 3го подключа

4 – умножение субблока 4 и 4го подключа

5 – сложение результатов шагов 1 и 3

6 – сложение результатов шагов 2 и 4

7 - умножение 5го подключа и результатов 5го шага

Всего 14 шагов.

Выходом являются 4 субблока, которые получаются как результат выполнения шагом 11,12,13,14.

В завершении цикла 2ой и 3ий субблоки меняются местами, за исключением последнего цикла.

После 8го цикла осуществляется заключительное формирование выхода.

Полученные субблоки y1,y2,y3,y4 объединяются в блок шифра текста (64битный).

Алгоритм создания поключей.

Алгоритм использует всего 52 подключа, по 6 для каждого из 8 циклов, и 4 для преобразования выхода.

Сначала 128битовый ключ делится на 8 16-битовых подключей. Это первые 8 подключей для алгоритма. 6 подключей для 1го цикла, и 2 для второго. Далее 128 битовый ключ циклически сдвигается влево на 25 бит и снова делится на 8 подключей (4 для 2го цикла, и 4 для 3го). Дешифрование осуществляется аналогичным образом, но в обратном порядке. И порядок использования ключей тоже становится обратным.

Преимущество по сравнению с DES:

- значительно безопаснее DES, так как 128 битовый ключ больше ключа DES.

- внутренняя структура обеспечивает лучшую устойчивость к криптоанализу.

- существующие программные реализации примерно вдвое быстрее DES

ГОСТ 28147-89

В России в качестве стандарта на блочные алгоритмы шифрования закрытым ключом был принят ГОСТ в 1989 году.

Построен по тем же принципам, что и DES, но удобнее для программной реализации. В отличие от DES используется более длинный ключ (256 бит) и использует 32 раунда шифрования в отличие от 16 у DES. Алгоритм представляет собой классическую сеть Фейштеля.

Шифруемый блок разбивается на 2 одинаковые части, правую и левую. Правая часть складывается с подключом данного раунда и шифрует левую часть. Перед следующим раундом правая и левая часть меняется местами.

Такая структура позволяет использовать один и тот же алгоритм как для шифрования, так и для дешифрования.

В алгоритме шифрования используются следующие операции:

- сложение по модулю 2

- замена по таблице

- циклический сдвиг влево

- и снова побитовое сложение по модулю 2.

Шифруемый блок разбивается на 2 части, которые затем обрабатываются как отдельные 32-битовые целые числа без знака.

Правая половина и подключ соответствующего раунда складываются по модулю 2. Затем осуществляется поблочная подстановка. 32-битовое значение интерпретируется как массив из 8 4-битовых блоков. Далее значения каждого из 8и блоков заменяется на новое по таблице замены. В качестве замены для значения блока выбирается элемент с номером строки равный номеру занимаемого блока и номером столбца равным значению заменяемого блока как 4х-битового целого числа.

После выполнения подстановки все 4х-битовые блоки снова объединяются в единое 32 битовое число, которое сдвигается на 12 бит влево и складывается по модулю 2 с левой частью. И из этого получается новая часть правого блока. Левая же часть берется равной младшей части предыдущего блока. Таких раундов 32.

Процесс создания ключей

256-битовый ключ разбивается на 8 32-битных. К0, К1…К7. Алгоритм включает 32 раунда, поэтому каждый подключ используется 4 раза в последовательности, определяемой соответствующей таблицей.

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

Лекция 8