К системам шифрования предъявляются повышенные требования по надежности, скорости и простоте реализации и использования. Однако почти все системы шифрования обладают условной надежностью, поскольку могут быть раскрыты при наличии достаточных вычислительных ресурсов. Единственным надежным шифром является одноразовая система шифрования. В статье рассматривается система криптозащиты, сочетающая достоинства одноразового шифрования с открытым распространением ключей.
Одноразовую систему шифрования разработали еще в 1917 году Дж. Моборн и Г. Вернам [2]. Ее характерная особенность — одноразовое использование ключевой последовательности. Такая система шифрует исходный открытый текст Х в шифротекст Y с использованием одноразовой случайной ключевой последовательности К. Для ее реализации иногда используют одноразовый блокнот, составленный из отрывных страниц; на каждой из них напечатана таблица со случайными числами (ключами) Ki. Блокнот выполняется в двух экземплярах: один используется отправителем, а другой — получателем. Для каждого символа Хi сообщения имеется свой ключ Ki из таблицы получателя. После того, как таблица использована, ее необходимо удалить из блокнота и уничтожить. Шифрование нового сообщения начинается с новой страницы.
Абсолютная надежность одноразовой системы доказана Клодом Шенноном в его известной работе «Теория связи в секретных системах», отрывок из которой приведен в [3]. Одноразовые системы нераскрываемы, поскольку их шифротекст не содержит достаточной информации для восстановления открытого текста. Однако возможности использования одноразовых систем на практике ограничены. Ключевая последовательность длиной не менее длины сообщения должна передаваться получателю сообщения заранее или отдельно по некоторому секретному каналу, что практически неосуществимо в современных информационных системах, где требуется шифровать многие миллионы символов и обеспечивать засекреченную связь для множества абонентов. Эти недостатки устранены в способе синтеза одноразовых систем шифрования с открытым распространением ключа [5].
Синтез одноразовой системы с открытой передачей ключей
Рассмотрим процесс передачи информации по линии связи, соединяющей пользователей А и В. Предлагаемый способ построения одноразовой системы дает возможность передавать практически неограниченный объем информации с использованием случайной перестановки только одной таблицы ключей.
В качестве базового шифрующего элемента для системы с открытой передачей ключей разработан одноразовый многоалфавитный кодер (ОМК). Система содержит ОМК, датчик случайных чисел, схему формирования случайной перестановки на стороне А и многоалфавитный декодер на стороне В (рис. 1). ОМК реализует процесс стохастического кодирования [4].
В состав ОМК входит базовая таблица одноразовых ключей, регистр перестановки интерфейса, регистры случайной и псевдослучайной перестановок строк и столбцов базовой таблицы. Аналогичный состав имеет и многоалфавитный декодер. Регистры случайных и псевдослучайных перестановок строк и таблицы интерфейса декодера содержат комбинации, обратные по отношению к соответствующим перестановкам кодера.
Базовая таблица одноразовых ключей на стороне А и на стороне В имеет размер n x n. Каждая i-я строка таблицы содержит случайную ключевую комбинацию, в которую входят все возможные различные значения Кij длиной m бит. (Для таблицы кодов ASCII m = 8, n = 256, поэтому для шифрования текста используют таблицу размером 256 x 256.)
Кi = К i0, Кi1, ..., К in-1 (i = 1,... n)
В результате работы датчика случайных чисел и схемы формирования случайной перестановки генерируется соответствующая перестановка. В полученной перестановке столбцы задают соответствие между входными значениями (верхняя строка) и выходными (нижняя строка).
Базовая таблица одноразовых ключей на стороне А выполняет две функции:
- генерацию виртуальной переменной таблицы одноразовых ключей со случайной перестановкой столбцов и строк;
- реализацию логического вывода, обеспечивающего преобразования секретной перестановки в несекретную, применяемую для открытой передачи ключа.
С этой целью каждый столбец базовой таблицы можно представить в виде вертикально расположенной перестановки. При этом регистр псевдослучайной перестановки, подключенный к данной таблице, в сочетании с предыдущей случайной перестановкой, которая передана на сторону В, обеспечивает выбор столбцов таблицы для формирования их одноразовых комбинаций. Названные комбинации столбцов применяются в процессе логического вывода. Всего может быть сформировано N = n! различных комбинаций столбцов. Логический вывод, схематично представленный на рис. 2, реализует однонаправленную функцию Y = F(x), которая позволяет на основе секретной перестановки, записанной в левый регистр базовой таблицы одноразовых ключей, получить несекретную перестановку, формируемую в выходном блоке ОМК. Здесь x — значение секретной перестановки, F — функциональные связи, формируемые в процессе логического вывода с использованием очередной комбинации столбцов-перестановок, Y — относительная несекретная перестановка. Зная х и формируя функциональные связи F, легко получить Y. Однако по известному значению Y, не зная всей схемы функциональных связей базовой таблицы, нельзя восстановить исходную секретную перестановку. Для этого необходимо произвести полный перебор на множестве V = n! всех значений результирующих перестановок, получаемых в ходе логического вывода, — своего рода эффект лабиринта, в центр которого помещают человека с завязанными глазами и, сняв повязку, предлагают путем случайного перебора всех возможных вариантов прохода найти выход.
Таким образом, одновременно с передачей и шифрованием информации на стороне пользователя А генерируется очередная случайная перестановка. Затем с помощью описанного алгоритма логического вывода формируется соответствующая ей несекретная перестановка. Она передается на сторону В в начале обмена информацией и после передачи по линии связи n блоков шифротекста длиной n символов каждый. На основе этой перестановки на стороне В с помощью базовой таблицы, идентичной базовой таблице А, выполняется процедура обратного логического вывода с целью получения соответствующей секретной перестановки (рис. 2). Эта процедура описывается выражением х = F-1 (Y), где F-1 — функция обратного логического вывода, реализуемого с помощью базовой таблицы стороны В. Сформированная секретная перестановка записывается в регистры случайных перестановок столбцов и строк многоалфавитного декодера. Путем использования указанных регистров в декодере происходит образование виртуальных таблиц одноразовых ключей в соответствии с полученной случайной перестановкой. В результате на сторонах А и В каждый раз будут одновременно сформированы новые случайные виртуальные таблицы одноразовых ключей, идентичных по содержанию. Эти таблицы применяются при передаче зашифрованной информации.
Рассмотрим этот процесс подробнее. Исходный текст поступает на вход регистра перестановки интерфейса ОМК, который обеспечивает перестановку таблицы кодов ASCII. Так осуществляется первый этап преобразования исходной информации. Затем преобразованный текст проходит через регистр случайной перестановки строк, которая в сочетании со случайной перестановкой столбцов реализует очередную виртуальную таблицу одноразового ключа. При этом применение случайных и псевдослучайных перестановок обеспечивает для каждой очередной комбинации исходного текста Хi = (Хi0, Хi1, ..., Хi,n-1) (i = 1,... n) формирование уникальной одноразовой ключевой последовательности Кi = Кi0, Кi1, ..., Кin-1 (i = 1,... n). Всего для данной виртуальной таблицы, определяемой очередной случайной перестановкой, может быть образовано n таких ключевых последовательностей. В результате произведенных перестановок и замен в многоалфавитном кодере символов каждой очередной последовательности Хi, а также циклических сдвигов столбцов таблицы, процесс шифрования аналогичен классической одноразовой системе. В декодере сначала реализуется процедура идентификации символов шифротекста путем включения соответствующих столбцов базовой таблицы, а затем производятся соответствующие циклические сдвиги столбцов и с помощью регистров перестановок строк выполняются обратные перестановки, обеспечивающие преобразование шифротекста в исходный текст.
После передачи i = n очередных комбинаций шифротекста реализуется описанный процесс открытой передачи ключа (очередной секретной перестановки). За счет этого производится постоянная (с заданным периодом) случайная модификация виртуальной таблицы многоалфавитных кодера и декодера для получения новых таблиц одноразовых ключей. Затем продолжается передача, шифрование и дешифрование информации с использованием новых таблиц одноразовых ключей. При этом передача несекретной перестановки реализует функцию открытой передачи ключей, производимой после выдачи каждых n блоков зашифрованной информации. В результате обеспечивается гарантированная надежность шифрования. Действительно, сами базовые таблицы одноразовых ключей противнику неизвестны при любых видах атак на данную систему шифрования (в явном виде они не участвуют в процессе шифрования информации), поэтому формируемые виртуальные таблицы одноразовых ключей случайны и непредсказуемы. Учитывая однонаправленность функции Y = F(x) получения несекретной перестановки, множество вариантов модификации виртуальных таблиц на сторонах А и В путем случайной перестановки столбцов и строк измеряется числом V = n! Так, при использовании таблицы кодов ASCII с указанными параметрами m и n получим величину V > 10500. Для больших значений n данный способ позволяет передавать практически неограниченные объемы зашифрованной информации в режиме одноразового ключа с гарантированным уровнем надежности, определяемым числом V = n! всех возможных значений результирующих перестановок, которые получают в ходе логического вывода. Отметим, что в данном случае применяется одна таблица одноразовых ключей размером n x n и функция открытой передачи ключей с использованием случайной несекретной перестановки длиной n байт. Трудно даже указать, сколько времени потребуется на переборы всех вариантов перестановок на реальном компьютере. При этом функция открытой передачи ключей может периодически использоваться для обновления базовой таблицы путем передачи новых значений ее столбцов (перестановок). Указанные значения столбцов генерируются с помощью датчика случайных чисел и схемы формирования случайных перестановок. В результате после n циклов обновления на сторонах А и В будут получены новые базовые таблицы, используемые далее при шифровании.
Процесс кодирования в ОМК практически не снижает скорость передачи информации по каналу связи. Это позволяет реализовать скоростные одноразовые шифры для работы в компьютерных сетях. Имеются эффективные технологии обеспечения целостности информации, а также идентификации и аутентификации пользователей, проверки подлинности сообщений.
Система с открытым распределением ключей
В состав системы с открытым распределением ключей [5] входят центр сертификации, формирования и распределения ключей (ЦСФРК), серверы распределенной обработки и пользовательские устройства. В качестве шифрующего элемента применяется ОМК.
Основными задачами ЦСФРК являются подключение пользовательских устройств и серверов к системе защиты, их сертификация, формирование и распределение закрытых и открытых ключей между пользовательскими устройствами и серверами распределенной обработки данных. В ЦСФРК генерируется и хранится главный ключ системы (мастер-ключ), который представляет собой случайно заполненную кодами таблицу размером n x n.
На основе таблицы главного секретного ключа в ЦСФРК путем случайной перестановки столбцов и строк формируется множество различных таблиц начальных секретных ключей для пользователей. При этом каждой полученной таблице начального секретного ключа ставится в соответствие примененная перестановка столбцов и строк таблицы главного секретного ключа. Затем для каждой таблицы начального секретного ключа путем случайных перестановок его столбцов и строк создаются таблицы внутреннего секретного ключа и внешнего секретного ключа. Каждой полученной таблице ставятся в соответствие использованные случайные перестановки столбцов и строк таблицы начального секретного ключа.
Полученные таблицы начального ключа и случайные перестановки столбцов и строк для формирования таблиц внутреннего секретного ключа, а также внешнего секретного ключа применяются при подготовке носителей для сертифицированных пользователей. Формируется носитель данных — смарт-карта, копия которой хранится в центре сертификации. Она содержит полную таблицу начального ключа, а также набор секретных ключей-перестановок для таблиц внутреннего и внешнего ключей пользователя. Также в смарт-карту записывается PIN-код и значение хэш-функции пароля данного пользователя.
Чтобы получить систему ключей, пользователь вводит информацию со смарт-карты; при доступе к функциям системы защиты по команде пользователя в пользовательском устройстве на основе таблицы начального ключа и секретных перестановок, введенных со смарт-карты, производится формирование таблиц внутреннего секретного ключа, а затем таблицы внешнего секретного ключа. Аналогичные процедуры выполняются и на сервере. При этом таблица внешнего секретного ключа применяется для заполнения базовой таблицы одноразовых ключей ОМК, который служит для организации внешней зашифрованной связи с другими пользователями или серверами сети.
После завершения процесса формирования ключевых таблиц пользователь может обратиться с запросом к ЦСФРК для организации закрытой связи с требуемым сервером распределенной обработки или с другим пользователем. Этому должна предшествовать соответствующая договоренность, достигнутая по открытой связи. В соответствии с данным запросом ЦСФРК обеспечивает генерацию и распределение открытых ключей между пользователями.
Формирование открытых ключей основано на применении описанной однонаправленной функции, использующей логический вывод на перестановках. В ЦСФРК хранятся все ключи-перестановки столбцов и строк, позволяющие из таблицы главного ключа сформировать для каждого пользователя таблицы начального, внутреннего и внешнего секретных ключей. После загрузки системы все эти таблицы, включая таблицу внешних секретных ключей, для разных пользователей будут асимметричны. С целью организации закрытой связи между пользователями А и В необходимо привести их таблицы внешних секретных ключей в симметричное состояние. Это достигается благодаря наличию в ЦСФРК всех указанных функционально связанных секретных перестановок таблиц. При этом с помощью логического вывода на последовательности транзитивной связи между строками таблиц секретных перестановок определяются относительные перестановки для пользователей А и В, которые позволяют привести таблицы внешних секретных ключей в идентичное состояние. Указанные относительные перестановки являются открытыми ключами; с их помощью пользователи могут перевести таблицы внешних секретных ключей в идентичное состояние для организации симметричной закрытой связи.
Отметим, что функция формирования открытых ключей с использованием относительной перестановки является однонаправленной для любого пользователя системы. На основе полученных открытых ключей в пользовательском устройстве А и сервере В распределенной обработки создают таблицы симметричных внешних секретных ключей. Эти таблицы записываются в одноразовый многоалфавитный кодер (декодер) с целью установления закрытой симметричной связи между пользователями. При этом в процессе шифрования на основе генерации случайных перестановок таблиц внешних секретных ключей реализуется описанный режим одноразовой системы с открытой передачей ключей, который обеспечивает требуемый гарантированный уровень защиты информации. После завершения сеанса закрытой связи ЦСФРК посылает пользователям А и В открытые ключи перестановки для генерации новых асимметричных таблиц внешних секретных ключей.
Предложенная в [5] система обеспечивает возможность эффективного, с гарантированной надежностью обмена зашифрованной информацией. Каждый сертифицированный пользователь, обратившись к ЦСФРК, сможет обмениваться закрытой информацией с любым сервером или пользователем компьютерной сети.
Литература
- Молдовян А.А. и др. Криптография: скоростные шифры. СПб.: БХВ-Петербург, 2002.
- Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях. // М.: Радио и связь, 1999.
- Введение в криптографию / Под общ. ред. В.В. Ященко. // М.: МЦНМО: "ЧеРо", 1999.
- Насыпный В.В. Комплексная защита процесса обработки информации в компьютерных системах от несанкционированного доступа, программных закладок и вирусов. // М.: МГГУ, 2000.
- Насыпный В.В. Способ комплексной защиты процесса обработки информации в компьютерных системах и система для осуществления способа. Международная заявка на изобретение № PCT/RU 01/00272 от 05.07.2001.
Владимир Насыпный (nasypny@stocona.ru) — научный директор НПФ «Стокона» (Москва).