Способ криптографического преобразования блоков цифровых данных

Иллюстрации

Показать все

Изобретение относится к области криптографиии. Технический результат заключается в повышении стойкости криптографического анализа. Сущность изобретения заключается в том, что подлежащие шифрованию цифровые данные разбивают на блоки и осуществляют совместное шифрование групп из нескольких блоков цифровых данных. Перед шифрованием из криптографического ключа осуществляют формирование раундовых подключей в соответствии с установленным расписанием ключей. При этом при шифровании первого блока данных в качестве раундовых подключей используют подключи, сформированные из криптографического ключа в соответствии с расписанием ключей, при шифровании всех последующих блоков данных в качестве раундовых подключей используют результаты шифрования предыдущего в группе блока данных на этой же итерации. 2 з.п. ф-лы, 11 ил.

Реферат

Изобретение относится к области техники шифрованной связи и может использоваться в системах и средствах хранения, обработки и передачи цифровых данных.

В совокупности заявленных признаков изобретения используются следующие термины:

шифрование - процесс зашифрования или расшифрования;

зашифрование - процесс преобразования открытых данных в зашифрованные при помощи шифра;

расшифрование - процесс преобразования зашифрованных данных в открытые при помощи шифра;

криптографическое преобразование (шифр) - совокупность шагов преобразования цифровых данных с использованием секретного ключа, обеспечивающих невозможность корректного выполнения криптографического преобразования без знания секретного ключа;

криптоанализ - метод вычисления секретного ключа для получения несанкционированного доступа к зашифрованной информации или разработка метода, обеспечивающего доступ к зашифрованной информации без вычисления секретного ключа;

устройство шифрования - устройство, реализующее преобразование цифровых данных в соответствии с заданным криптографическим преобразованием;

криптографические свойства криптографического преобразования (криптостойкость) - мера надежности защиты зашифрованной информации, представляющая собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для осуществления эффективного криптоанализа;

инженерно-криптографические свойства криптографического преобразования - способность криптографического преобразования к эффективной реализации в устройствах шифрования с обеспечением криптостойкости при учете реальных инженерных свойств аппаратуры устройства шифрования (например, возможность криптографического преобразования противостоять атакам на основе аппаратных ошибок);

специальные свойства криптографического преобразования - способность противостоять утечкам опасной информации по возможным побочным каналам при реализации криптографического преобразования в устройстве шифрования;

опасная информация - информация, раскрытие которой может облегчить задачу криптоанализа устройства шифрования;

побочные каналы - каналы передачи информации, непредусмотренные как штатные для передачи информации в конкретном устройстве шифрования (например, передача обрабатываемой в устройстве шифрования информации через электромагнитные колебания, возникающие в результате работы вычислительной техники);

расписание ключей - порядок использования в процессе шифрования подключей, сформированных из секретного ключа;

цикловая функция - совокупность элементарных преобразований шифруемых данных на одном раунде (итерации) криптографического преобразования;

симметричный блочный шифр - криптографическое преобразование, осуществляющее преобразование блоков цифровых данных и использующее для операций зашифрования и расшифрования криптографические ключи, легко восстановимые друг из друга;

отбеливание - операция добавления к зашифровываемому блоку цифровых данных криптографического ключа, например, это может быть сложение по модулю 2 зашифровываемого блока данных с криптографическим ключом;

левообратимая бинарная операция - бинарная операция ⊥ на Е называется левообратимой, если для любых b и с из Е существует и притом единственный х из Е такой, что x⊥b=c; операция, обратная операции ⊥, обозначается символом ┬, из определения следует, что х=с┬b.

В настоящее время известно множество способов криптографического преобразования блоков цифровых данных (далее блоков данных) - симметричных блочных шифров [1] (далее блочных шифров). Основные принципы построения блочных шифров заложены в работе [2]. В то же время существует ряд различных схем построения блочных шифров, учитывающих общие принципы работы [2], но отличающихся по способу их реализации. Например, известны следующие схемы построения блочных шифров:

- схема «Квадрат»;

- схема «Сеть Фейстеля», схема Фейстеля;

- схемы «Модифицированные сети Фейстеля».

Известен способ криптографического преобразования блоков данных, описанный в стандарте США «Federal Information Processing Standards Publication 197, Specification for the advanced encryption standard (AES)» [3], позволяющий осуществлять криптографическое преобразование блоков данных, заключающийся в разбиении потока данных на блоки длиной 128, 192 или 256 бит и преобразовании блоков данных путем итеративного выполнения цикловой функции, состоящей из трех типов слоев: слой линейного перемешивания, нелинейный слой и слой добавления ключа. При этом перед первым и после последнего цикла используют операцию отбеливания, добавления секретного ключа к зашифровываемым данным. Известный способ относится к шифрам схемы квадрат.

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

Известно устройство преобразования блоков данных, описанное в патенте США №5214703, класс МПК7 Н04К 1/04 [4]. Устройство включает формирование расписания ключей на основе ключа шифрования длиной 128 бит путем его разбиения на 8 подключей длиной 16 бит и формированием дополнительных подключей путем циклического сдвига в сторону старших разрядов на 25 бит и разбиения результата на 8 подключей длиной 16 бит. Далее операции циклического сдвига и разбиения повторяют до получения 52 подключей. Входные данные разбивают на 64-битовые блоки данных и преобразуют под управлением ключа шифрования. Перед преобразованием каждый блок данных разбивают на четыре 16-битовых подблока X1, Х2, Х3 и Х4, которые используют как входы первого раунда шифрования, всего осуществляется восемь раундов шифрования. На каждом раунде четыре подблока подвергают операциям поразрядного сложения по модулю 2, сложения по модулю 216 и умножения по модулю 216+1 друг с другом и шестью 16-битовыми раундовыми подключами. Между раундами второй и третий подблоки обменивают местами. Выходная функция реализует операцию отбеливания и состоит в умножении по модулю 216+1 первого и четвертого подблоков с соответствующими подключами и сложении по модулю 216 второго и третьего подблоков с соответствующими подключами. Известное устройство относится к модифицированным сетям Фейстеля.

Указанное устройство имеет недостатки. В указанном устройстве в качестве нелинейной операции используется операция умножения по модулю 216+1, которая имеет худшие свойства по сравнению с операциями замен (подстановки) с использованием специально сформированных таблиц замен. Это обстоятельство может существенно облегчить задачу криптоанализа указанного устройства.

Известен способ преобразования блоков данных, описанный в патенте Российской Федерации №2140709, класс МПК7 H04L 9/00, H04K 1/00, G09C 1/02 [5], позволяющий осуществлять криптографическое преобразование блоков данных, заключающееся в разбиении блока данных на два или более подблоков, поочередном преобразовании подблоков путем выполнения над подблоком по крайней мере одной операции преобразования, которая зависит от значения входного блока и состоит в выполнении над k двоичными разрядами подблока операции замены (подстановки). При осуществлении операции замены используют значение входного двоичного вектора, что обуславливает зависимость выходного значения преобразуемого блока от значения двоичного вектора. Для этого используют операционный блок, осуществляющий преобразование двоичного вектора, используя значение подблока, преобразованного на предыдущем шаге, т.е. операционный подблок формирует двоичный вектор по структуре одного из преобразуемых подблоков и по значению двоичного вектора, которое он имел на предыдущем шаге преобразования подблока. Блок замены для выполнения операции замены использует таблицу замены, выбираемую из нескольких возможных в зависимости от значения двоичного вектора. Формирование двоичного вектора в зависимости от одного из преобразуемых подблоков обуславливает операции подстановки от преобразуемых данных. В известном способе в качестве таблиц замен используются секретные таблицы. Известный способ относится к модифицированным сетям Фейстеля.

Известный способ имеет недостатки. Использование в управляемых операциях замены секретных таблиц замены существенно увеличивает размер секретного ключа, последовательное выполнение операций преобразования подблоков в зависимости от результата преобразования предыдущего подблока уменьшает скорость преобразования блоков данных.

Наиболее близким по технической сущности к заявленному способу является способ, описанный в стандарте криптографической защиты данных Советского Союза ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования» [6]. Способ включает в себя формирование расписания ключей на основе ключа шифрования длиной 256 бит путем его разбиения на 8 подключей длиной 32 бита и использовании каждого подключа 4 раза в расписании ключей. Входные данные, представленные в виде двоичного кода, разбивают на 64-битовые блоки данных и преобразуют под управлением ключа шифрования. Перед преобразованием каждый блок данных разбивают на два 32-битовых подблока L и R, которые поочередно преобразуют в процессе выполнения 32-х раундов преобразования. Один раунд преобразования заключается в следующем. По подблоку R и одному из подключей, определенному в соответствии с расписанием ключей, вычисляется 32-битовое значение функции усложнения Ф, и полученное значение складывается с подблоком L с помощью операции поразрядного суммирования по модулю 2. Вычисление функции усложнения осуществляют в соответствии со следующими шагами преобразования. Формируют начальное значение Ф путем сложения значения подблока R и подключа Ki, определенного в соответствии с расписанием ключей, по модулю 232 в соответствии с формулой Ф=(R+Ki)mod232, где 1≤i≤8, после чего над двоичным вектором Ф выполняют операцию замены (подстановки), затем операцию циклического сдвига на одиннадцать бит в сторону старших разрядов. После каждого раунда шифрования, за исключением последнего, подблоки переставляются. Способ-прототип относится к сетям Фейстеля.

Способ-прототип имеет недостатки. Как отмечено выше, в способе-прототипе осуществляется формирование расписания ключей на основе ключа шифрования длиной 256 бит путем его разбиения на 8 подключей длиной 32 бита. При этом при шифровании одного 64-битового блока данных каждый подключ используется 4 раза в расписании ключей, что существенно снижает специальные свойства криптографического преобразования, так как приводит к многократному обращению к криптографическим ключам. Для устранения указанного недостатка в реальных устройствах используют частую смену криптографического ключа или используют выработку сеансовых криптографических ключей, что приводит к известным инженерно-криптографическим ограничениям [1]. Дополнительно существующие ограничения производительности вычислительной техники не позволяют реализовывать с использованием способа-прототипа сверхскоростные устройства шифрования и требуют адаптации способа-прототипа для разработки подобных устройств, например разработки ключевых систем, позволяющих с использованием способа-прототипа организовывать конвейерную обработку данных.

Целью настоящего изобретения является разработка способа криптографического преобразования блоков данных, обеспечивающего стойкость к возможному криптоанализу (криптографические свойства), эффективную реализацию конвейерной обработки данных (инженерно-криптографические свойства), исключение многократного использования секретных ключей (специальные свойства).

Техническим результатом заявленного способа является разработка способа криптографического преобразования блоков данных, обеспечивающего высокие криптографические, инженерно-криптографические и специальные свойства.

Изобретение иллюстрируется чертежами.

Фиг.1 иллюстрирует криптографическую схему типа сети Фейстеля.

Фиг.2 иллюстрирует левообратимую бинарную операцию ⊥ на примере двух раундов сети Фейстеля.

Фиг.3 иллюстрирует заявленный способ криптографического преобразования.

Фиг.4 иллюстрирует устройство, реализующее зашифрование в соответствии с заявленным способом криптографического преобразования с использованием операции отбеливания (режим зашифрования по прямоугольному полю).

Фиг.5 иллюстрирует устройство, реализующее расшифрование в соответствии с заявленным способом криптографического преобразования с использованием операции отбеливания (режим расшифрования по прямоугольному полю).

Фиг.6 иллюстрирует устройство, реализующее зашифрование в соответствии с заявленным способом криптографического преобразования без использования операции отбеливания (режим зашифрования по треугольному полю).

Фиг.7 иллюстрирует устройство, реализующее расшифрование в соответствии с заявленным способом криптографического преобразования без использования операции отбеливания (режим расшифрования по треугольному полю).

Фиг.8 иллюстрирует устройство, реализующее зашифрование в соответствии с заявленным способом криптографического преобразования с секретным выбором результата шифрования (режим зашифрования по избранному маршруту).

Фиг.9 иллюстрирует блок, определяющий порядок выбора результата шифрования на основании криптографического ключа.

Фиг.10 иллюстрирует устройство, реализующее расшифрование в соответствии с заявленным способом криптографического преобразования с секретным выбором результата шифрования (режим расшифрования по избранному маршруту).

Фиг.11 иллюстрирует блок, определяющий направление шифрования в режиме расшифрования по избранному маршруту.

Заявленный способ основан на следующих свойствах левообратимых бинарных операций.

Пусть имеется левообратимая бинарная операция ⊥ над элементами из множества Е, такая что:

х⊥b=с, и обратная к ней операция ┬, такая что:

х=с┬b.

На этом свойстве, возможности восстановления х по результату с бинарной операции и второму аргументу b, в частности, основаны шифры Фейстеля, состоящие в многократном повторении над входными значениями x1 и х2 бинарной операции ⊥ и использовании в каждом цикле функции усложнения Ф над одним из входных значений и используемым подключом. Цикловая функция шифра Фейстеля описывается следующим уравнением:

y12⊥Ф(х1, k),

y2=x1.

При этом в каждой цикловой функции используют раундовый подключ k, сформированный в соответствии с принятым для данного шифра расписанием ключей.

Расшифрование осуществляют в соответствии со следующим уравнением:

х2=y1┬Ф(y2, k),

x1=y2.

При расшифровании используют раундовый подключ, определяемый расписанием ключей. На Фиг.1 представлена схема типового шифра Фейстеля, осуществляющая i раундов над входным блоком данных X и использующая ключ К.

Две последовательных цикловых функции шифра Фейстеля описываются следующим уравнением:

y1=x1⊥Ф(x2, k1),

y22⊥Ф(x1⊥Ф(х2, k1), k2).

или:

y1=x1⊥Ф(x2, k1),

y22⊥Ф(у1, k2).

Последнее преобразование можно понимать как новую левообратимую операцию ╧ над Е×Е:

(y1, y2)=(х12)╧(k1, k2),

(x1, x2)=(y1, y2)╤(k1, k2),

или:

y=х╧k,

х=y╤k,

что проиллюстрировано на Фиг.2.

На Фиг.2 представлен блок 01 левообратимой бинарной операции, который имеет два входа и один выход и состоит из шести блоков регистров хранения данных 0101, 0102, 0103, 0106, 0109 и 0110, двух блоков функции усложнения 0104 и 0107 и двух блоков сложения по модулю два 0105 и 0108. Для выполнения левообратимой бинарной операции на входы 1 и 2 подают подлежащие преобразованию данные, с выхода снимают результат преобразования. Данные с входа 1 разбивают на две части и подают их на блоки 0101 и 0102 соответственно, данные с входа 2 разбивают на две части и подают их на блоки 0103 и 0106 соответственно. Данные с блоков 0102 и 0103 подают на входы блока 0104 функции усложнения. Результат преобразования в блоке 0104 и значение с блока 0102 подают на входы блока 0105 соложения по модулю два. Значение с блока 0106 и результат сложения в блоке 0105 подают на входы блока 0108 сложения по модулю два. Дополнительно результат сложения в блоке 0105 подают на блок 0109. Результат сложения в блоке 0108 подают на блок 0110. Значения с блоков 0109 и 0110 объединяют и подают на выход блока 01 левообратимой бинарной операции. Порядок функционирования блока левообратимой бинарной операции на основе двух раундов сети Фейстеля описан в способе-прототипе.

Если в качестве представленной на Фиг.2 левообратимой бинарной операции ╧ использовать, например, два цикла способа-прототипа, то указанная левообратимая бинарная операция ╧ будет криптографически стойкой в силу известных свойств способа-прототипа. Дополнительно, два цикла способа-прототипа будут обратными операциями по отношению к ╧, при условии обратного порядка использования подключей. Далее блок, реализующий обратную левообратимую операцию, будем обозначать 02.

Далее для простоты записи левообратимую бинарную операцию будем обозначать символом ⊥, для обозначения обратной операции будем использовать символ ┬.

Учитывая сказанное выше, в заявленном способе процесс зашифрования входных данных в режиме по прямоугольному полю выполняют следующим образом.

Входные данные разбивают на М блоков. При зашифровании М блоков данных (x1,…хм) используют криптографический ключ К. Из криптографического ключа К формируют N подключей в соответствии с установленным для зашифрования расписанием ключей. Зашифрование первого блока данных осуществляют в соответствии со следующими уравнениями:

x1,11⊥k1,

x1,2=x1,1⊥k2,

и т.д.,

x1, N-1=x1, N-2⊥kN-1,

x1, N=x1, N-1⊕kN,

где ⊕ - операция отбеливания, например, побитное сложение по модулю 2 [7].

Значение x1, N является результатом зашифрования блока данных х1.

Зашифрование второго блока данных осуществляют в соответствии со следующими уравнениями:

x2,1=x2⊥x1,1,

х2,22,1⊥x1,2,

и т.д.,

x2, N-1=x2, N-2⊥x1, N-1,

x2, N=x2, N-1⊕x1, N-1.

Значение x2, N является результатом зашифрования блока данных х2.

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

В общем случае функция зашифрования i-го блока данных на j-ом раунде в режиме шифрования по прямоугольному полю имеет следующий вид:

xi, ji,j-1⊥хi-1, j,

при этом

x0, j:=kj, 1≤j≤N,

xi, 0:=xi, 1≤i≤M,

последний шаг - отбеливание:

xi, N=xi, N-1⊕xi-1, N-1.

При этом первый индекс - номер столбца, второй индекс - номер строки. Зашифрование осуществляют по столбцам, т.е. при фиксированном i и переменном j.

Процесс зашифрования М блоков данных на N подключах проиллюстрирован на Фиг.3.

Расшифрование зашифрованных данных в режиме по прямоугольному полю осуществляют следующим образом. При расшифровании М зашифрованных блоков данных (y1, …, yм) используют криптографический ключ К, ранее использованный для зашифрования.

При этом из ключа К формируют N подключей в соответствии с установленным для расшифрования расписанием ключей. В силу левообратимости бинарной операции ⊥ расшифрование первого блока данных осуществляют в соответствии со следующими уравнениями:

x1, N=y1,

x1, N-1=x1, N⊗kN,

x1, N-2=x1, N-1┬kN-1,

и т.д.,

х1,1=x1,2┬k2,

x1=x1,1┬k1,

где ⊗ - операция, обратная к операции отбеливания.

Значение x1 является результатом расшифрования блока данных x1,N.

Расшифрование второго блока данных осуществляется в соответствии со следующими уравнениями:

x2, N=y2,

x2, N-1=x2, N⊗x1, N-1,

x2, N-2=x2, N-1┬x1, N-1,

и т.д.,

x2,12,2┬x1,2,

x22,1┬x1,1.

Значение x2 является результатом расшифрования блока данных x2,N.

То есть, при расшифровании первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при расшифровании всех последующих блоков данных в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на предыдущем раунде.

В общем случае функция расшифрования i-го блока данных на j-ом раунде в режиме шифрования по прямоугольному полю имеет следующий вид:

xi, j=xi,j+1┬xi-1, j+1,

при этом

xi, N:=yi, 1≤i≤М,

x0,j:=kj, 1≤j≤N,

хi:=xi,0, 1≤i≤M,

первый шаг - операция, обратная к операции отбеливания:

xi, N-1=xi, N⊗xi-1, N-1.

Дополнительно, в заявленном способе процесс шифрования блоков данных могут выполнять без использования операции отбеливания - режим шифрования по треугольному полю. При этом процесс шифрования выполняют следующим образом.

Выбирают левообратимую операцию ⊥ и определяют число раундов М операции ⊥ над преобразуемым блоком данных, обеспечивающих необходимую криптографическую стойкость, например, при использовании в качестве левообратимой операции ⊥ двух раундов способа-прототипа М=16.

Шифрование входных данных осуществляют группами по М блоков. Для зашифрования М блоков данных (х1, …, хм) из криптографического ключа К формируют 2·М подключей в соответствии с установленным для зашифрования расписанием ключей. Зашифрование первого блока данных осуществляют в соответствии со следующими уравнениями:

x1,11⊥k1,

x1,2=x1,1⊥k2

и т.д.,

х1,2М-11,2М-2⊥k2M-1,

х1,2М1,2М-1⊥k2M.

Значение х1,2M является результатом зашифрования блока данных х1.

Зашифрование второго блока данных осуществляют в соответствии со следующими уравнениями:

х2,12⊥х0,1,

х2,22,1⊥x1,2,

и т.д.,

х2,2М-22,2М-3⊥х1,2М-2,

х2,2М-12,2М-2⊥х1,2М-1.

Значение х2,2М-1 является результатом зашифрования блока данных х2.

То есть, при зашифровании первого блока данных над блоком данных выполняют 2·М раундов левообратимой операции ⊥, при этом в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при зашифровании всех последующих блоков данных в качестве раундовых подключей используют результаты зашифрования предыдущего блока данных на этом же раунде, при этом над каждым последующим зашифровываемым блоком данных выполняют на один раунд левообратимой операции ⊥ меньше по сравнению с предыдущим блоком данных. Т.е. над первым блоком данных выполняют 2·М раундов левообратимой операции ⊥, над М-ым блоком данных выполняют М раундов левообратимой операции ⊥.

В общем случае функция зашифрования i-го блока данных на j-ом раунде в режиме шифрования по треугольному полю имеет следующий вид:

xi, j=xi,j-1⊥xi-1, j,

при этом

x0, j:=kj, 1≤j≤2М,

xi,0:=xi, 1≤i≤N,

j≤2M+1-i.

Расшифрование данных, зашифрованных в режиме шифрования по треугольному полю, осуществляют следующим образом.

При расшифровании М зашифрованных блоков данных (y1, …, yм) используют криптографический ключ К, ранее использованный для зашифрования.

При этом из ключа К формируют 2·М подключей в соответствии с установленным для расшифрования расписанием ключей. В силу левообратимости бинарной операции ⊥ расшифрование первого блока данных осуществляют в соответствии со следующими уравнениями:

x1,2М=y1,

x1,2M-1=x1,2М┬k2M,

х1,2M-21,2M-1┬k2M-1,

и т.д.,

х1,11,2┬k2,

х11,1┬k1.

Значение x1 является результатом расшифрования блока данных x1,2M.

Расшифрование второго блока данных осуществляется в соответствии со следующими уравнениями:

х2,2М-1=y2,

х2,2М-22,2М-1┬x1,2М-1,

х2,2М-32,2М-2┬x1,2М-2,

и т.д.,

х2,12,2┬х1,2,

х2=x2,1┬х1,1.

Значение х2 является результатом расшифрования блока данных х2,2М-1.

То есть, при расшифровании первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при расшифровании всех последующих блоков данных в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на раунде, номер которого больше номера текущего раунда на порядковый номер расшифровываемого блока данных в текущей М-блоковой группе, при этом над каждым последующим расшифровываемым блоком данных выполняют на один раунд обратной операции ┬ меньше по сравнению с предыдущим блоком данных. То есть, над первым блоком данных выполняют 2·М раундов обратной операции ┬, над М-ым блоком данных выполняют М раундов обратной операции ┬.

В общем случае функция расшифрования i-го блока данных на j-ом раунде в режиме шифрования по треугольному полю имеет следующий вид:

xi, j=xi, j+1┬xi-1, j+1,

при этом

xi, 2M+1-i:=yj, 1≤i≤М,

x0,j:=kj, 1≤j≤2M,

xi:=xi,0, 1≤i≤M,

j≤2M+1-i.

Дополнительно, в заявленном способе процесс шифрования блоков данных могут выполнять с использованием секретного выбора зашифрованных выходных значений - режим шифрования по избранному (секретному) маршруту.

В этом случае входные данные разбивают на М блоков, из криптографического ключа К формируют N подключей в соответствии с установленным для зашифрования расписанием ключей. Дополнительно используют криптографический ключ R, определяющий порядок случайного выбора зашифрованных выходных значений, и определяют число L раундов зашифрования, обеспечивающих требуемую криптографическую стойкость процесса шифрования, при этом L<N. Зашифрование первого блока данных осуществляют в соответствии со следующими уравнениями:

x1,1=x1⊥k1,

х1,21,1⊥k2,

и т.д.,

x1,N-1=x1, N-2⊥kN-1,

x1,N=x1, N-1⊥kN.

Далее на основании значения R детерминированно получают значение R1, такое, что L<R1≤N. Значение x1,R1 определяют результатом зашифрования блока данных x1.

Зашифрование второго блока данных осуществляют в соответствии со следующими уравнениями:

х2,12⊥x1,1,

х2,22,1⊥x1,2,

и т.д.,

x2, N-1=x2, N-2⊥x1, N-1,

x2, N=x2, N-1⊥x1, N-1.

Далее на основании значения R детерминированно получают значение R2, такое, что L<R2≤N. Значение x2,R2 определяют результатом зашифрования блока данных х2.

То есть, при зашифровании первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при зашифровании всех последующих блоков данных в качестве раундовых подключей используют результаты зашифрования предыдущего блока данных на этом же раунде. В качестве результата зашифрования определяют значение xi,Ri, выбираемое из значений xi,L+1, …, x1,N, на основании значения Ri, детерминированно сформированного из криптографического ключа R.

В общем случае, функция зашифрования i-го блока данных на j-ом раунде в режиме шифрования по избранному маршруту имеет следующий вид:

xi,j=xi, j-1⊥xi-1, j,

при этом

x0,j:=kj, 1≤j≤N,

xi,0:=xi, 1≤i≤M.

Далее, на основании значения R детерминированно получают значение Ri, такое, что L<Ri≤N. Значение xi, Ri определяют результатом зашифрования блока данных xi. При этом значения Ri формируют из значения R независимо друг от друга.

Расшифрование данных, зашифрованных в режиме шифрования по избранному (секретному) маршруту, осуществляют следующим образом.

При расшифровании М зашифрованных блоков данных (y1, …,.yМ) используют криптографические ключи К и R, ранее использованные для зашифрования.

При этом из ключа К формируют N подключей в соответствии с установленным для расшифрования расписанием ключей. На основании значения R по ранее определенному правилу детерминированно получают значение R1, такое, что L<R1≤N. Значению x1, R1 присваивают значение y1. В силу левообратимости бинарной операции ⊥ расшифрование первого блока данных осуществляют в соответствии со следующими уравнениями:

x1,R1-1=x1,R1┬kR1,

и т.д.,

х1,1=x1,2┬k2,

x1=x1,1┬k1.

Значение x1 является результатом расшифрования блока данных y1. Дополнительно вычисляют значения

x1, R1+1=x1,R1⊥kR1+1,

и т.д.,

x1, N-1=x1,N-2⊥kN-1,

x1, N=x1, N-1⊥kN,

которые могут использоваться при расшифровании следующего блока данных.

На основании значения R по ранее определенному правилу детерминированно получают значение R2, такое, что L<R2≤N. Значению x2,R2 присваивают значение y2. Расшифрование второго блока данных осуществляется в соответствии со следующими уравнениями:

x2, R2-1=x2, R2┬x1, R2,

и т.д.,

x2,1=x2,2┬x1,2,

х2=x2,1┬х1,1.

Значение х2 является результатом расшифрования блока данных y2.

Дополнительно вычисляют значения

x2, R2+1=x2,R2⊥x1, R2+1,

и т.д.,

x2, N-1=x2, N-2⊥x1, N-1,

x2, N=x2, N-1⊥x1, N,

которые могут использоваться при расшифровании следующего блока данных.

То есть, при расшифровании i-го блока данных на основании значения R по ранее определенному правилу детерминированно получают значение Ri, такое, что L<Ri≤N. Значению xi,Ri присваивают значение i-го блока данных. Далее осуществляют восстановление всех промежуточных значений зашифрования блока данных. При этом для расшифрования первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при расшифровании всех последующих блоков данных в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на этом же раунде.

В общем случае функция расшифрования i-го блока данных на j-ом раунде в режиме шифрования по избранному маршруту имеет следующий вид:

xi,j=xi,j+1┬xi-1, j+1, 1≤j≤Ri-1,

xi,j=xi,j-1⊥xi-1, j, Ri+1≤j≤N,

при этом,

xi,Ri:=yi, 1≤i≤M,

x0,j:=kj, 1≤j≤N,

xi:=xi,0, 1≤i≤M.

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

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

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

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

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

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

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

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

При расшифровании в режиме шифрования по избранному маршруту блоков данных из дополнительного криптографического ключа для каждого блока данных в группе определяют, сколько раундов расшифрования необходимо выполнить над каждым блоком данных и последовательно, начиная с первого блока, осуществляют расшифрование блоков данных в соответствии с определенным для них числом раундов, дополнительно осуществляют формирование промежу