- •Теория алгоритмов (краткий курс лекций для самостоятельной работы)
- •Лекции по теории алгоритмов Введение
- •Предмет криптографии
- •Лекция №1
- •Краткие теоретические сведения
- •1 Шифр сцитала
- •2 Шифр вертикальной перестановки
- •3 Шифр поворотной решетки
- •4 Шифры с использованием магичных квадратов
- •5 Перестановка бит
- •Лекция №2
- •Краткие теоретические сведения
- •Варианты реализации шифров простой замены
- •1 Система шифрования Цезаря
- •2 Афинная система подстановок
- •3 Лозунговый шифр
- •4 Шифровальный квадрат Полибия
- •5 Шифровальная таблица Трисемуса
- •4Х8 «Сколько волка ни корми, он все в лес глядит »
- •Лекция №3
- •Краткие теоретические сведения
- •1 Биграммный шифр Плейфейера
- •2 Шифр с использованием омофонов
- •3 Шифр Гронсфельда
- •4 Система шифрования Вижинера
- •5 Шифр «Двойной квадрат Уитстона»
- •Общие сведения о блочных шифрах
- •Описание алгоритма des
- •Режимы реализации алгоритмов симметричного шифрования
- •Асимметричные криптоалгоритмы
- •Модулярная арифметика
- •Открытое распределение ключей
- •Криптосистема rsa
- •7 Самокорректирующиеся коды
- •7.1 Построение кодов Хемминга (описание алгоритма кодирования)
- •7.2 Обнаружение ошибок в кодах Хемминга
- •7.3 Декодирование
- •Примеры решения задач Задача № 3
- •Задача № 4
- •Алгоритм решения задачи следующий:
- •Литература
Режимы реализации алгоритмов симметричного шифрования
Для любого симметричного блочного алгоритма шифрования определено четыре режима выполнения.
1 ECB - Electronic Codebook - каждый блок из 64 битов незашифрованного текста шифруется независимо от остальных блоков, с применением одного и того же ключашифрования. Типичные приложения - безопасная передача одиночных значений (например, криптографического ключа).
2 CBC - Cipher Block Chaining - вход криптографического алгоритма является результатом применения операции XOR к следующему блоку незашифрованного текста и предыдущему блоку зашифрованного текста. Типичные приложения - общая блокоориентированная передача, аутентификация.
3 CFB - Cipher Feedback - при каждом вызове алгоритма обрабатывается J битов входного значения. Предшествующий зашифрованный блок используется в качестве входа в алгоритм; к J битам выхода алгоритма и следующему незашифрованному блоку из J битов применяется операция XOR, результатом которой является следующий зашифрованный блок из J битов. Типичные приложения - потокоориентированная передача, аутентификация.
4 OFB - Output Feedback - аналогичен CFB, за исключением того, что на вход алгоритма при шифровании следующего блока подается результат шифрования предыдущего блока; только после этого выполняется операция XOR с очередными J битами незашифрованного текста. Типичные приложения - потокоориентированная передача по зашумленному каналу (например, спутниковая связь).
ECB(ElectronicCodeBook) – электронная кодовая книга. Исходный текст разбит на блоки по 64 бита. Последний блок, если его длина не равна 64 бита, дополняют до 64 бит с помощью генератора ПСП (псевдослучайных последовательностей) или хеш–суммой передаваемого текста. Шифрование выполняется в соответствии с рисунком 1 последовательно каждого блока исходного текста одним из вариантов блочного шифра (напримерDES). В шифротексте зашифрованные блоки сохраняют свой порядок, причем при совпадении блоков исходного текста зашифрованные блоки тоже будут совпадать.
|
Рисунок 5 – Схема шифрования ECB |
Поэтому для усиления секретности при шифровании больших пакетов информации используют несколько обратимых схем сцепления блоков шифротекста. Все эти схемы основаны на зависимости результата шифрования отдельного блока не только от самого блока, но и от предыдущих блоков (см. схемы на рисунках 2 и 3) или от его номера в исходном тексте (см. схему на рис. 4). Это достигается с помощью вектора инициализации процесса шифрования (IV – initialvector) – ключа сеанса шифрования, длина которого равна длине блоков исходного (зашифрованного) текстов. Этот ключ генерируется для каждого сеанса связи и пересылается вместе с зашифрованным текстом (шифруется отдельно ассиметричным алгоритмом и помещается, как правило, в начало или конец шифротекста).
Схема CBC(CipherBlocChainin) – объединение в цепочку блоков шифротекста
Перед шифрованием первого блока его объединяют с вектором инициализации при помощи операции сложения по модулю 2 (XOR); последующие блоки с использованием той же операции объединяют с результатом шифрования предыдущих блоков (см. рис. 2). Схема дешифрования такая же, но на вход подается шифротекст иDES(или другой блочный шифр) работает в режиме дешифрования.
|
Рисунок 6 – Схема шифрования CBC |
CFB(CipherFeedBack) – обратная связь по шифроблоку
В этой схеме вначале шифруется вектор инициализации и результат для получения шифра первого блока объединяют по модулю 2 с первым блоком. После этого шифр первого блока шифруют блочным шифром, и результат для получения шифра второго блока объединяют по модулю 2 со вторым блоком и т.д. (см. рис. 3). Таким образом, шифр каждого блока зависит от вектора инициализации и результатов шифрования всех предыдущих блоков. Схема дешифрования такая же, но на вход подается шифротекст и DES(или другой блочный шифр) работает в режиме дешифрования.
|
Рисунок 7 – Схема шифрования CFB |
OFB(OutputFeedBack) – обратная связь по выходу
Шифрование по этой схеме представлено на рисунке 4. По сути, происходит многократное шифрование блочным шифром только вектора инициализации, результаты которого объединяются по модулю 2 с очередным блоком открытого текста. Результат шифрования каждого блока зависит только от его позиции в исходном тексте и не зависит предыдущих блоков. Дешифрование аналогично дешифрованию в CBCиCFB.
|
Рисунок 8 – Схема шифрования OFB
Сравнительные характеристики схем шифрования с помощью блочных шифров приведены в таблице 8. Таблица 8 – Сравнительные характеристики схем шифрования
|
Лекция 5




