5.1.2 Криптографические функции для обеспечения конфиденциальности и целостности Побитовое шифрование потока данных В этом случае цифровой ключ используется в качестве базы (начального значения) генератора псевдослучайных чисел, а выходной поток битов суммируется по модулю 2 с исходным текстом, чтобы сформулировать зашифрованное сообщение (рис.5.1) Генератор Ключ ------------случайных чисел Ё Ё Исходный текст--------+------------------>IV+Шифрованное сообщение Рис.5.1. Схема побитового шифрования потока данных. Такие криптографические функции часто применяются по некоторым причинам. Если в каждый данный момент времени должен быть зашифрован только один бит исходного текста, то сложение по модулю 2 - единственный способ построить обратимую функцию шифрования. IV (Initializing Value) задает инициализирующее значение или ключ сообщения, который предшествует сообщению и предназначен для запуска генератора случайных чисел. В частном случае, когда генератор случайных чисел не используется, ключ является потоком непрерывных случайных битов, которые непосредственно суммируются по модулю 2 с исходным текстом. При условии, что поток используется только один раз, такой шифр оказывается теоретически нераспознаваемым. На практике несколько битов, например один байт (8 бит), могутбыть использованы в качестве ключа. Пока используется функция поразрядного сложения по модулю 2, между этими случаями нет принципиальной разницы. То же справедливо и для систем, использующих функцию поразрядного сложения по модулю 256. Основное свойство этих функций - линейность. В таких ситемах отсутствует свойство распространения ошибок. К этому классу относится, например, DES-алгоритм в режиме шифрования ключей с обратной связью (ШКОС). Побитовое шифрование потока данных с обратной связью по шифрованному сообщению Эта система аналогична предыдущей, за исключением того что шифрованный текст возвращается в качестве параметра в генератор случайных чисел (рис.5.2). Генератор Ключ------------> случайных <--------------чисел Ё Ё Ё Ё Ё Ё Ё Исходный---------------+---------------------->IV+Шифрованное текст сообщение Рис. 5.2. Схема побитового шифрования потока данных с обратной связью по зашифрованному сообщению. Такие системы имеют широкое применение, но для них характерно свойсвто распространения ошибки. Область распространения ошибки зависит от структуры генератора случайных чисел. К этому классу относится DES-алгоритм в режиме побитовой обратной связи по шифрованному сообщению. Генератор Ключ------------> случайных -----> чисел Ё Ё Ё Ё Ё Ё Исходный---------------+---------------------->IV+Шифрованное текст сообщение Рис. 5.3. Схема побитового шифрования потока данных с обратной связью по исходному сообщению. Побитовое шифрование потока данных с обратной связью по исходному сообщению В этом случае инициализирующим параметром генератора случайных чисел является исходный текст (5.3). Такие системы не имеют широкого применения, поскольку для них характерно свойство неаграниченного распространения ошибки. Возможны схемы шифрования, совмещающие схемы 2 и 3. Поблочное (нелинейное) шифрование потока данных В этих системах реализуется нелинейная подстановка (возможно, с перестановками) блока исходного текста. Шифрование последовательных блоков зависит от генератора случайных чисел, управляемого ключом, и оказывается различным даже для одинаковых блоков исходного текста. Распространение ошибки ограничивается размером блока, где возникла ошибка (рис.5.4). Генератор Ключ------------> случайных чисел Ё Ё Ё Ё Ё Ё Ё Ё Ё Исходный----------> Блок -------------------->IV+Шифрованное текст сообщение Рис. 5.4. Схема поблочного шифрования потока данных. Поблочное шифрование потока данных с обратной связью Как и в линейных схемах, здесь возможно использование ключа, управляемого шифрованным или исходным текстом или обоим вместе (рис.5.5). Генератор Ключ------------> случайных <--------чисел Ё Ё Ё Ё Ё Ё Ё Ё Ё Ё Ё Ё Ё Исходный----------> Блок -------------------->IV+Шифрованное текст сообщение Рис. 5.5. Схема поблочного шифрования c обратной связью. Шифрование блоками При шифровании блоками несколько битов исходного текста шифруются одновременно с помощью некоторой нелинейной функции и каждый бит исходного текста влияет на каждый бит шифрованного текста внутри блока. Однако взаимного влияния блоков не проявляется, т.е. два одинаковыхз блока исходного текста будут представлены одинаковыми шифрованными блоками. Дешифрование можно выполнять с каждым отдельным блоком в произвольном порядке. В этом случае нет необходимости сопровождать шифрованное сообщение ключом. Распространение ошибки возможно только в пределах блока, в котором возникла ошибка (рис.5.6). Ключ------------>Шифрование Исходный-------->блоками -------------->Шифрованное текст сообщение Рис. 5.6. Схема шифрования блоками. По существу это DES-алгоритм в наиболее простой форме электронной кодировочной книги. Системы с открытыми ключами относятся к этой же категории, но поскольку ключ шифрования известен, его шифрование не имеет смысла. В свою очередь, цифровые сигнатуры обеспечивают подлинность, но не гарантируют конфиденциальность сообщения. Шифрование блоками с обратной связью Поскольку шифрование выполняется блоками, то обычно обратная связь использует предыдущий шифрованный блок. В качестве первого блока в цепи обратной связи используется начальное число или инициализирующее значение. Ошибка в одном бите влияет на два блока исходного текста - ошибочный блок и следующий за ним. Один из способов формирования обратной связи - побитовое сложение блока исходного текста по модулю 2 с предыдущим блоком шифрованного текста. В этом случае ошибка в одном бите влияет на текущий блок, а затем только на соответствующий бит в следующем блоке (рис.5.7). Это DES-алгоритм в режиме поблочного шифрования с обратной связью. Ключ------------>Шифрование<-----Исходный-------->блоками -------Ё------->IV+ Шифрованное текст сообщение Рис. 5.7. Схема шифрования блоками c обратной связью. Информация о распространении ошибки для различных схем шифрования влияет на выбор способа обработки сообщений. Погрешность другого типа, которая нарушает функционирование большинства систем шифрования, связана с потерей синхронизации шифрования из-за ошибок, обусловленных потерей или добавлением битов информации. Эта погрешность обычно приводит к непрерывной ошибке дешифрования. Только повторная синхронизация сообщений позволяет восстановить порядок. Такие ситуации возможны для генераторов случайных чисел с внутренней памятью и для схем поблочного шифрования при нарушении границ блоков. Один из приемов самосинхронизирующего шифра - DES-алгоритм в режиме шифрования потока с обратной связью (ШПОС). Работа генератора случайных чисел здесь зависит не только от ключа, но и от шифрованного текста, поэтому после прохождения правильного шифрованного текста система самосинхронизируется. Не существует единого определения для поточных и блочных шифров. Мы под поточными шифрами понимаем шифры, зависящие отвремени (нестационарные шифры), т.е. шифрование бита или байта выполняется с помощью случайной последовательности, генерируемой алгоритмом и полностью определяемой ключом и начальным значением. Обычно используется сложение по модулю 2, но если выполняется побитовое шифрование, могут использоваться подстановки более общего вида. Понятие "обратная связь" означает, что сообщение некоторым образом влияет на функционирование генератора случайных чисел. Шифрование блоками в отличие от шифрования потока не зависит от времени (стационарный шифр), поскольку шифрование определяется только ключоми блоками исходного текста. Если спомощью обратной связи реализовано взаимовлияние блоков друг на друга, различие между двумя видами шифрования становится несущественным. Согласно другому определению, поточное шифрование использует операции сложения по модулю 2 ( в то время как блочное шифрование не использует ее) и возможно применение обратной связи.