- •Околов Андрей Ромуальдович Защита информации
- •Тема 1: Информационная безопасность
- •Аппаратно-программный (электронные устройства и специальные программы защиты)
- •Профиль защиты
- •Задание по безопасности
- •Простые криптосистемы
- •Организационные проблемы криптозащиты
- •Стандарт des (Data Encryption Standart)
- •Режимы работы алгоритма des
- •Алгоритм шифрования idea
- •Основные режимы шифрования
- •Концепция криптосистемы с открытым ключом rsa. Система распределения ключей Диффи-Хелмана. Электронная подпись в системах с открытым ключом
- •Система rsa
- •Электронная цифровая подпись (эцп)
- •Алгоритм безопасного хеширования sha
- •Российский стандарт хеш-функций
- •Алгоритмы ецп
- •Алгоритм цп rsa
- •Российский стандарт цп гост р.34.10-94
- •Защита от несанкционированного доступа
- •Протокол ssl и set
- •Протокол set
Режимы работы алгоритма 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 использует при шифровании процессы смешивания и рассеивания, которые хорошо реализуются аппаратными и программными методами.
В алгоритме используются следующие математические операции:
Поразрядное сложение по модулю 2
(исключающее ИЛИ, обозначается (+) )
Сложение беззнаковых целых по модулю 2^16( [+] )
Умножение беззнаковых целых по модулю 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ий блоки меняются местами.
В каждом цикле выполняются следующие операции:
– умножение субблока 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