Способ блочного шифрования данных
Изобретение относится к электросвязи и вычислительной технике, а конкретнее к криптографическим способам и устройствам для шифрования данных. Цель: повышение скорости шифрования программных шифров. Способ включает формирование ключа шифрования в виде совокупности подключей, разбиение блока данных на подблоки и поочередное наложение подключей на подблоки с помощью бинарных операций. Отличается от известных способов тем, что дополнительно формируют двоичный вектор, а на i-й подблок Bi, где i=1,2,3,...N, N 2 - число подблоков, накладывают l-й подключ, где l=1,2,3,...,K, K
8 - число подключей, причем номер l подключа выбирают по значению двоичного вектора. Двоичный вектор формируют по структуре j-го подблока Bj, где j = 1,2,3,...N, причем i
j, или по структуре j-го подблока Bj, где i
j, и по значению номера подключа, наложенного на подблок на предыдущем шаге наложения. 1 с. и 2 з.п. ф-лы, 2 ил.
Изобретение относится к электросвязи и вычислительной техники, а конкретнее к криптографическим способам и устройствам для шифрования сообщений (информации). В совокупности признаков предлагаемого способа используются следующие термины: пароль представляет из себя комбинацию битов, известную только законному пользователю; шифрключ (ключ шифрования) представляет из себя комбинацию битов, используемую при шифровании информационных сигналов данных; шифрключ является сменным элементом шифра и используется для преобразования данного сообщения или данной совокупности сообщений; шифрключ является известным только законному пользователю или может быть выработан по детерминированным процедурам по паролю; шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием шифрключа; шифр может быть реализован в виде программы для ЭВМ или в виде отдельного устройства; подключ представляет собой часть ключа, используемую на отдельных элементарных шагах шифрования; расписание использования шифрключа (или подключей) представляет собой последовательность использования подключей в процессе шифрования; шифрование есть процесс, реализующий некоторый способ преобразования данных с использованием шифрключа, переводящий данные в криптограмму, представляющую собой псевдослучайную последовательность знаков, из которой получение информации без знания ключа практически невыполнимо; дешифрование есть процесс, обратный процедуре шифрования; дешифрование обеспечивает восстановление информации по криптограмме при знании шифрключа; криптостойкость является мерой надежности защиты информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без знания шифрключа.
двоичный вектор - это некоторая последовательность нулевых и единичных битов, например 101101011; конкретная структура двоичного вектора может быть интерпретирована как двоичное число, если считать, что позиция каждого бита соответствует двоичному разряду, т.е. двоичному вектору может быть сопоставлено численное значение, которое определяется однозначно структурой двоичного вектора. Известны способы блочного шифрования данных ( например стандарт США DES Диффи У., Хеллмэн М.Э. Защищенность и имитостойкость: Введение в криптографию. -ТИИЭР, 1979, т. 67. N.3, с. 87-89), способ шифрования (патент США N 5222139, от 22 июня 1993, шифр FEAL-1 и криптоалгоритм B-Crypt. Мафтик С. Механизмы защиты в сетях ЭВМ. - М.: Мир, 1993, с.49-52). В известных способах шифрование блоков данных выполняют путем формирования ключа шифрования в виде совокупности подключей, разбиения преобразуемого блока данных на подблоки и поочередного изменения последних с помощью операций подстановки, перестановки и арифметических операций, выполняемых над текущим подблоком и текущим подключом. Однако известные способы-аналоги не обладают достаточной стойкостью к дифференциальному криптоанализу (Berson T.A. Differential Cryptanalysis Mod 232 with application to MD5// EUROCRYPT'92. Hungary, May 24-28, 1992. Proceedings. р.67-68), так как расписание использования подключей является фиксированным для всех преобразуемых входных блоков. Наиболее близким по своей технической сущности к предлагаемому способу блочного шифрования является способ, описанный в Российском стандарте криптографической защиты данных (Стандарт СССР ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования). Способ-прототип включает в себя формирование ключа шифрования в виде последовательности из 8 подключей длиной 32 бита, разбиении входного 64-битового блока данных на два 32-битовых подблока B1 и B2 и поочередным преобразовании подблоков. Один шаг преобразования подблока, например подблока B2, заключается в наложении на него текущего подключа Qi,являющегося фиксированным для данного шага, с помощью операции сложения по модулю 232 (+) в соответствии с формулой B2:= B2 + Qi, где 1









блок 2 - блок генерации шифрключа;
блок 3 - блок памяти устройства шифрования;
блок 4 - операционный блок устройства шифрования, содержащий три или более регистра;
блок 5 - устройство шифрования;
6 - шина передачи информационных сигналов пароля пользователя;
7- шина передачи информационных сигналов шифрключа;
8 - шина передачи информационных сигналов подключей и передачи информационных сигналов входных данных и информационных сигналов преобразуемых подблоков;
9 - шина адресации;
10 - шина ввода входных данных;
11 - шина вывода шифртекста. Используя блок 1, вводят секретный ключ, информационные сигналы 6 которого подают на вход блока 2. В блоке 2 формируют шифрключ и соответствующие ему информационные сигналы по шине 7 передают в блок памяти 3. После этого устройство шифрования 5 содержит в памяти шифрключ и готово к выполнению операций шифрования. Данное инициализированное состояние устройства сохраняется в течение всего времени работы законного пользователя. Входной блок вводят по шине 10 в операционный блок 4 и затем по шине 8 в блок памяти 3. Входной блок данных представляют в виде совокупности подблоков, записанных по фиксированным адресам. Информационные сигналы подблока Bjпо шине 8 вводят в первый регистр операционного блока 4 (в случае ЭВМ - в один из регистров микропроцессора). Во втором регистре блока 4 формируют двоичный вектор, например, путем записи в регистр содержимого 8 младших разрядов подблока. В третий регистр вводят подблок Bi. Информационные сигналы двоичного вектора подают на шину адресации 9 и тем самым задают выбор номера l текущего подключа Ql по значению двоичного вектора. Подблок Bi преобразуют путем наложения на него подключа Ql с использованием команды, по которой операционный блок выполняет бинарную операцию, т.е. операцию над двумя двоичными векторами, например операцию сложения. Под наложением понимается выполнение бинарной операции между подблоком Bi и подключом Ql и замене исходной структуры подблока Bi на структуру двоичного вектора, являющегося результатом выполнения бинарной операции. Аналитически процедура наложения записывается в виде формулы Bi:= Bi*Ql, где знак * обозначает бинарную операцию, знак := - операцию присваивания. Схема наложения показана на фиг. 2, где
1 - подблок Bi с исходной структурой;
2 - подключ Ql;
3 - блок, выполняющий бинарную операцию*;
4 - подблок Bi с измененной структурой. В качестве бинарной операции могут быть использованы простые арифметические операции сложения (+) и вычитания (-) по модулю 232, поразрядного суммирования по модулю 2(




Использование в предлагаемом способе более сложных бинарных операций является допустимым, поскольку в этом случае также обеспечивается высокая скорость шифрования, а увеличение числа типов используемых операций повышает стойкость шифра. Предлагаемый способ криптографического преобразования блоков данных легко реализуем, например, на персональных ЭВМ и обеспечивает возможность создания на его основе скоростных программных модулей шифрования, что позволяет решить ряд острых проблем защиты компьютерной информации, а также заменить в большом числе практических приложений дорогостоящую специализированную аппаратуру шифрования персональной ЭВМ, снабженной программной системой скоростного шифрования.
Формула изобретения




3. Способ по п. 1, отличающийся тем, что двоичный вектор формируют по структуре j-го подблока, где j


РИСУНКИ
Рисунок 1, Рисунок 2