СПОСОБ КРИПТОГРАФИЧЕСКОГО ПРЕОБРАЗОВАНИЯ БЛОКОВ ЦИФРОВЫХ ДАННЫХ
METHOD FOR CRYPTOGRAPHIC TRANSFORMATION OF DIGITAL DATA UNITS

Изобретение относится к области техники шифрованной связи и может использоваться в системах и средствах хранения, обработки и передачи цифровых данных.
В совокупности заявленных признаков изобретения используются следующие термины:
шифрование - процесс зашифрования или расшифрования;
зашифрование - процесс преобразования открытых данных в зашифрованные при помощи шифра;
расшифрование - процесс преобразования зашифрованных данных в открытые при помощи шифра;
криптографическое преобразование (шифр) - совокупность шагов преобразования цифровых данных с использованием секретного ключа, обеспечивающих невозможность корректного выполнения криптографического преобразования без знания секретного ключа;
криптоанализ - метод вычисления секретного ключа для получения несанкционированного доступа к зашифрованной информации или разработка метода, обеспечивающего доступ к зашифрованной информации без вычисления секретного ключа;
устройство шифрования - устройство, реализующее преобразование цифровых данных в соответствии с заданным криптографическим преобразованием;
криптографические свойства криптографического преобразования (криптостойкость) - мера надежности защиты зашифрованной информации, представляющая собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для осуществления эффективного криптоанализа;
инженерно-криптографические свойства криптографического преобразования - способность криптографического преобразования к эффективной реализации в устройствах шифрования с обеспечением криптостойкости при учете реальных инженерных свойств аппаратуры устройства шифрования (например, возможность криптографического преобразования противостоять атакам на основе аппаратных ошибок);
специальные свойства криптографического преобразования - способность противостоять утечкам опасной информации по возможным побочным каналам при реализации криптографического преобразования в устройстве шифрования;
опасная информация - информация, раскрытие которой может облегчить задачу криптоанализа устройства шифрования;
побочные каналы - каналы передачи информации, непредусмотренные как штатные для передачи информации в конкретном устройстве шифрования (например, передача обрабатываемой в устройстве шифрования информации через электромагнитные колебания, возникающие в результате работы вычислительной техники);
расписание ключей - порядок использования в процессе шифрования подключей, сформированных из секретного ключа;
цикловая функция - совокупность элементарных преобразований шифруемых данных на одном раунде (итерации) криптографического преобразования;
симметричный блочный шифр - криптографическое преобразование, осуществляющее преобразование блоков цифровых данных и использующее для операций зашифрования и расшифрования криптографические ключи, легко восстановимые друг из друга;
отбеливание - операция добавления к зашифровываемому блоку цифровых данных криптографического ключа, например, это может быть сложение по модулю 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 бит и преобразовании блоков данных путем итеративного выполнения цикловой функции, состоящей из трех типов слоев: слой линейного перемешивания, нелинейный слой и слой добавления ключа. При этом перед первым и после последнего цикла используют операцию отбеливания, добавления секретного ключа к зашифровываемым данным. Известный способ относится к шифрам схемы квадрат.
Известный способ имеет недостатки. В известном способе используют относительно сложную процедуру формирования расписания ключей, что может существенно снизить скорость шифрования данных в случае необходимости частой смены криптографических ключей.
7
16
16
16
16
1
2
3
4
Известно устройство преобразования блоков данных, описанное в патенте США №5214703, класс МПК Н04К 1/04 [4]. Устройство включает формирование расписания ключей на основе ключа шифрования длиной 128 бит путем его разбиения на 8 подключей длиной 16 бит и формированием дополнительных подключей путем циклического сдвига в сторону старших разрядов на 25 бит и разбиения результата на 8 подключей длиной 16 бит. Далее операции циклического сдвига и разбиения повторяют до получения 52 подключей. Входные данные разбивают на 64-битовые блоки данных и преобразуют под управлением ключа шифрования. Перед преобразованием каждый блок данных разбивают на четыре 16-битовых подблока X, Х, Х и Х, которые используют как входы первого раунда шифрования, всего осуществляется восемь раундов шифрования. На каждом раунде четыре подблока подвергают операциям поразрядного сложения по модулю 2, сложения по модулю 2 и умножения по модулю 2+1 друг с другом и шестью 16-битовыми раундовыми подключами. Между раундами второй и третий подблоки обменивают местами. Выходная функция реализует операцию отбеливания и состоит в умножении по модулю 2+1 первого и четвертого подблоков с соответствующими подключами и сложении по модулю 2 второго и третьего подблоков с соответствующими подключами. Известное устройство относится к модифицированным сетям Фейстеля.
16
Указанное устройство имеет недостатки. В указанном устройстве в качестве нелинейной операции используется операция умножения по модулю 2+1, которая имеет худшие свойства по сравнению с операциями замен (подстановки) с использованием специально сформированных таблиц замен. Это обстоятельство может существенно облегчить задачу криптоанализа указанного устройства.
7
Известен способ преобразования блоков данных, описанный в патенте Российской Федерации №2140709, класс МПК H04L 9/00, H04K 1/00, G09C 1/02 [5], позволяющий осуществлять криптографическое преобразование блоков данных, заключающееся в разбиении блока данных на два или более подблоков, поочередном преобразовании подблоков путем выполнения над подблоком по крайней мере одной операции преобразования, которая зависит от значения входного блока и состоит в выполнении над k двоичными разрядами подблока операции замены (подстановки). При осуществлении операции замены используют значение входного двоичного вектора, что обуславливает зависимость выходного значения преобразуемого блока от значения двоичного вектора. Для этого используют операционный блок, осуществляющий преобразование двоичного вектора, используя значение подблока, преобразованного на предыдущем шаге, т.е. операционный подблок формирует двоичный вектор по структуре одного из преобразуемых подблоков и по значению двоичного вектора, которое он имел на предыдущем шаге преобразования подблока. Блок замены для выполнения операции замены использует таблицу замены, выбираемую из нескольких возможных в зависимости от значения двоичного вектора. Формирование двоичного вектора в зависимости от одного из преобразуемых подблоков обуславливает операции подстановки от преобразуемых данных. В известном способе в качестве таблиц замен используются секретные таблицы. Известный способ относится к модифицированным сетям Фейстеля.
Известный способ имеет недостатки. Использование в управляемых операциях замены секретных таблиц замены существенно увеличивает размер секретного ключа, последовательное выполнение операций преобразования подблоков в зависимости от результата преобразования предыдущего подблока уменьшает скорость преобразования блоков данных.
i
i
32
32
Наиболее близким по технической сущности к заявленному способу является способ, описанный в стандарте криптографической защиты данных Советского Союза ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования» [6]. Способ включает в себя формирование расписания ключей на основе ключа шифрования длиной 256 бит путем его разбиения на 8 подключей длиной 32 бита и использовании каждого подключа 4 раза в расписании ключей. Входные данные, представленные в виде двоичного кода, разбивают на 64-битовые блоки данных и преобразуют под управлением ключа шифрования. Перед преобразованием каждый блок данных разбивают на два 32-битовых подблока L и R, которые поочередно преобразуют в процессе выполнения 32-х раундов преобразования. Один раунд преобразования заключается в следующем. По подблоку R и одному из подключей, определенному в соответствии с расписанием ключей, вычисляется 32-битовое значение функции усложнения Ф, и полученное значение складывается с подблоком L с помощью операции поразрядного суммирования по модулю 2. Вычисление функции усложнения осуществляют в соответствии со следующими шагами преобразования. Формируют начальное значение Ф путем сложения значения подблока R и подключа K, определенного в соответствии с расписанием ключей, по модулю 2 в соответствии с формулой Ф=(R+K)mod2, где 1≤i≤8, после чего над двоичным вектором Ф выполняют операцию замены (подстановки), затем операцию циклического сдвига на одиннадцать бит в сторону старших разрядов. После каждого раунда шифрования, за исключением последнего, подблоки переставляются. Способ-прототип относится к сетям Фейстеля.
Способ-прототип имеет недостатки. Как отмечено выше, в способе-прототипе осуществляется формирование расписания ключей на основе ключа шифрования длиной 256 бит путем его разбиения на 8 подключей длиной 32 бита. При этом при шифровании одного 64-битового блока данных каждый подключ используется 4 раза в расписании ключей, что существенно снижает специальные свойства криптографического преобразования, так как приводит к многократному обращению к криптографическим ключам. Для устранения указанного недостатка в реальных устройствах используют частую смену криптографического ключа или используют выработку сеансовых криптографических ключей, что приводит к известным инженерно-криптографическим ограничениям [1]. Дополнительно существующие ограничения производительности вычислительной техники не позволяют реализовывать с использованием способа-прототипа сверхскоростные устройства шифрования и требуют адаптации способа-прототипа для разработки подобных устройств, например разработки ключевых систем, позволяющих с использованием способа-прототипа организовывать конвейерную обработку данных.
Целью настоящего изобретения является разработка способа криптографического преобразования блоков данных, обеспечивающего стойкость к возможному криптоанализу (криптографические свойства), эффективную реализацию конвейерной обработки данных (инженерно-криптографические свойства), исключение многократного использования секретных ключей (специальные свойства).
Техническим результатом заявленного способа является разработка способа криптографического преобразования блоков данных, обеспечивающего высокие криптографические, инженерно-криптографические и специальные свойства.
Изобретение иллюстрируется чертежами.
Фиг.1 иллюстрирует криптографическую схему типа сети Фейстеля.
Фиг.2 иллюстрирует левообратимую бинарную операцию ⊥ на примере двух раундов сети Фейстеля.
Фиг.3 иллюстрирует заявленный способ криптографического преобразования.
Фиг.4 иллюстрирует устройство, реализующее зашифрование в соответствии с заявленным способом криптографического преобразования с использованием операции отбеливания (режим зашифрования по прямоугольному полю).
Фиг.5 иллюстрирует устройство, реализующее расшифрование в соответствии с заявленным способом криптографического преобразования с использованием операции отбеливания (режим расшифрования по прямоугольному полю).
Фиг.6 иллюстрирует устройство, реализующее зашифрование в соответствии с заявленным способом криптографического преобразования без использования операции отбеливания (режим зашифрования по треугольному полю).
Фиг.7 иллюстрирует устройство, реализующее расшифрование в соответствии с заявленным способом криптографического преобразования без использования операции отбеливания (режим расшифрования по треугольному полю).
Фиг.8 иллюстрирует устройство, реализующее зашифрование в соответствии с заявленным способом криптографического преобразования с секретным выбором результата шифрования (режим зашифрования по избранному маршруту).
Фиг.9 иллюстрирует блок, определяющий порядок выбора результата шифрования на основании криптографического ключа.
Фиг.10 иллюстрирует устройство, реализующее расшифрование в соответствии с заявленным способом криптографического преобразования с секретным выбором результата шифрования (режим расшифрования по избранному маршруту).
Фиг.11 иллюстрирует блок, определяющий направление шифрования в режиме расшифрования по избранному маршруту.
Заявленный способ основан на следующих свойствах левообратимых бинарных операций.
Пусть имеется левообратимая бинарная операция ⊥ над элементами из множества Е, такая что:
х⊥b=с, и обратная к ней операция ┬, такая что:
х=с┬b.
1
2
На этом свойстве, возможности восстановления х по результату с бинарной операции и второму аргументу b, в частности, основаны шифры Фейстеля, состоящие в многократном повторении над входными значениями x и х бинарной операции ⊥ и использовании в каждом цикле функции усложнения Ф над одним из входных значений и используемым подключом. Цикловая функция шифра Фейстеля описывается следующим уравнением:
1
2
1
y=х⊥Ф(х, k),
2
1
y=x.
При этом в каждой цикловой функции используют раундовый подключ k, сформированный в соответствии с принятым для данного шифра расписанием ключей.
Расшифрование осуществляют в соответствии со следующим уравнением:
2
1
2
х=y┬Ф(y, k),
1
2
x=y.
При расшифровании используют раундовый подключ, определяемый расписанием ключей. На Фиг.1 представлена схема типового шифра Фейстеля, осуществляющая i раундов над входным блоком данных X и использующая ключ К.
Две последовательных цикловых функции шифра Фейстеля описываются следующим уравнением:
1
1
2
1
y=x⊥Ф(x, k),
2
2
1
2
1
2
y=х⊥Ф(x⊥Ф(х, k), k).
или:
1
1
2
1
y=x⊥Ф(x, k),
2
2
1
2
y=х⊥Ф(у, k).
Последнее преобразование можно понимать как новую левообратимую операцию ╧ над Е×Е:
1
2
1
2
1
2
(y, y)=(х,х)╧(k, k),
1
2
1
2
1
2
(x, x)=(y, y)╤(k, k),
или:
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.
Далее для простоты записи левообратимую бинарную операцию будем обозначать символом ⊥, для обозначения обратной операции будем использовать символ ┬.
Учитывая сказанное выше, в заявленном способе процесс зашифрования входных данных в режиме по прямоугольному полю выполняют следующим образом.
1
м
Входные данные разбивают на М блоков. При зашифровании М блоков данных (x,…х) используют криптографический ключ К. Из криптографического ключа К формируют N подключей в соответствии с установленным для зашифрования расписанием ключей. Зашифрование первого блока данных осуществляют в соответствии со следующими уравнениями:
1,1
1
1
x=х⊥k,
1,2
1,1
2
x=x⊥k,
и т.д.,
1, N-1
1, N-2
N-1
x=x⊥k,
1, N
1, N-1
N
x=x⊕k,
где ⊕ - операция отбеливания, например, побитное сложение по модулю 2 [7].
1, N
1
Значение x является результатом зашифрования блока данных х.
Зашифрование второго блока данных осуществляют в соответствии со следующими уравнениями:
2,1
2
1,1
x=x⊥x,
2,2
2,1
1,2
х=х⊥x,
и т.д.,
2, N-1
2, N-2
1, N-1
x=x⊥x,
2, N
2, N-1
1, N-1
x=x⊕x.
2, N
2
Значение x является результатом зашифрования блока данных х.
То есть, при зашифровании первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при зашифровании всех последующих блоков данных в качестве раундовых подключей используют результаты зашифрования предыдущего блока данных на этом же раунде.
В общем случае функция зашифрования i-го блока данных на j-ом раунде в режиме шифрования по прямоугольному полю имеет следующий вид:
i, j
i,j-1
i-1, j
x=х⊥х,
при этом
0, j
j,
x:=k1≤j≤N,
i, 0
i
x:=x, 1≤i≤M,
последний шаг - отбеливание:
i, N
i, N-1
i-1, N-1
x=x⊕x.
При этом первый индекс - номер столбца, второй индекс - номер строки. Зашифрование осуществляют по столбцам, т.е. при фиксированном i и переменном j.
Процесс зашифрования М блоков данных на N подключах проиллюстрирован на Фиг.3.
1
м
Расшифрование зашифрованных данных в режиме по прямоугольному полю осуществляют следующим образом. При расшифровании М зашифрованных блоков данных (y, …, y) используют криптографический ключ К, ранее использованный для зашифрования.
При этом из ключа К формируют N подключей в соответствии с установленным для расшифрования расписанием ключей. В силу левообратимости бинарной операции ⊥ расшифрование первого блока данных осуществляют в соответствии со следующими уравнениями:
1, N
1
x=y,
1, N-1
1, N
N
x=x⊗k,
1, N-2
1, N-1
N-1
x=x┬k,
и т.д.,
1,1
1,2
2
х=x┬k,
1
1,1
1
x=x┬k,
где ⊗ - операция, обратная к операции отбеливания.
1
1,N
Значение xявляется результатом расшифрования блока данных x.
Расшифрование второго блока данных осуществляется в соответствии со следующими уравнениями:
2, N
2
x=y,
2, N-1
2, N
1, N-1
x=x⊗x,
2, N-2
2, N-1
1, N-1
x=x┬x,
и т.д.,
2,1
2,2
1,2
x=х┬x,
2
2,1
1,1
x=х┬x.
2
2,N
Значение x является результатом расшифрования блока данных x.
То есть, при расшифровании первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при расшифровании всех последующих блоков данных в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на предыдущем раунде.
В общем случае функция расшифрования i-го блока данных на j-ом раунде в режиме шифрования по прямоугольному полю имеет следующий вид:
i, j
i,j+1
i-1, j+1
x=x┬x,
при этом
i, N
i
x:=y, 1≤i≤М,
0,j
j
x:=k, 1≤j≤N,
i
i,0
х:=x, 1≤i≤M,
первый шаг - операция, обратная к операции отбеливания:
i, N-1
i, N
i-1, N-1
x=x⊗x.
Дополнительно, в заявленном способе процесс шифрования блоков данных могут выполнять без использования операции отбеливания - режим шифрования по треугольному полю. При этом процесс шифрования выполняют следующим образом.
Выбирают левообратимую операцию ⊥ и определяют число раундов М операции ⊥ над преобразуемым блоком данных, обеспечивающих необходимую криптографическую стойкость, например, при использовании в качестве левообратимой операции ⊥ двух раундов способа-прототипа М=16.
1
м
Шифрование входных данных осуществляют группами по М блоков. Для зашифрования М блоков данных (х, …, х) из криптографического ключа К формируют 2·М подключей в соответствии с установленным для зашифрования расписанием ключей. Зашифрование первого блока данных осуществляют в соответствии со следующими уравнениями:
1,1
1
1
x=х⊥k,
1,2
1,1
2
x=x⊥k
и т.д.,
1,2М-1
1,2М-2
2M-1
х=х⊥k,
1,2М
1,2М-1
2M
х=х⊥k.
1,2M
1
Значение х является результатом зашифрования блока данных х.
Зашифрование второго блока данных осуществляют в соответствии со следующими уравнениями:
2,1
2
0,1
х=х⊥х,
2,2
2,1
1,2
х=х⊥x,
и т.д.,
2,2М-2
2,2М-3
1,2М-2
х=х⊥х,
2,2М-1
2,2М-2
1,2М-1
х=х⊥х.
2,2М-1
2
Значение х является результатом зашифрования блока данных х.
То есть, при зашифровании первого блока данных над блоком данных выполняют 2·М раундов левообратимой операции ⊥, при этом в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при зашифровании всех последующих блоков данных в качестве раундовых подключей используют результаты зашифрования предыдущего блока данных на этом же раунде, при этом над каждым последующим зашифровываемым блоком данных выполняют на один раунд левообратимой операции ⊥ меньше по сравнению с предыдущим блоком данных. Т.е. над первым блоком данных выполняют 2·М раундов левообратимой операции ⊥, над М-ым блоком данных выполняют М раундов левообратимой операции ⊥.
В общем случае функция зашифрования i-го блока данных на j-ом раунде в режиме шифрования по треугольному полю имеет следующий вид:
i, j
i,j-1
i-1, j,
x=x⊥x
при этом
0, j
j
x:=k, 1≤j≤2М,
i,0
i
x:=x, 1≤i≤N,
j≤2M+1-i.
Расшифрование данных, зашифрованных в режиме шифрования по треугольному полю, осуществляют следующим образом.
1
м
При расшифровании М зашифрованных блоков данных (y, …, y) используют криптографический ключ К, ранее использованный для зашифрования.
При этом из ключа К формируют 2·М подключей в соответствии с установленным для расшифрования расписанием ключей. В силу левообратимости бинарной операции ⊥ расшифрование первого блока данных осуществляют в соответствии со следующими уравнениями:
1,2М
1
x=y,
1,2M-1
1,2М
2M
x=x┬k,
1,2M-2
1,2M-1
2M-1
х=х┬k,
и т.д.,
1,1
1,2
2
х=х┬k,
1
1,1
1
х=х┬k.
1
1,2M
Значение x является результатом расшифрования блока данных x.
Расшифрование второго блока данных осуществляется в соответствии со следующими уравнениями:
2,2М-1
2
х=y,
2,2М-2
2,2М-1
1,2М-1
х=х┬x,
2,2М-3
2,2М-2
1,2М-2
х=х┬x,
и т.д.,
2,1
2,2
1,2
х=х┬х,
2
2,1
1,1
х=x┬х.
2
2,2М-1
Значение х является результатом расшифрования блока данных х.
То есть, при расшифровании первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при расшифровании всех последующих блоков данных в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на раунде, номер которого больше номера текущего раунда на порядковый номер расшифровываемого блока данных в текущей М-блоковой группе, при этом над каждым последующим расшифровываемым блоком данных выполняют на один раунд обратной операции ┬ меньше по сравнению с предыдущим блоком данных. То есть, над первым блоком данных выполняют 2·М раундов обратной операции ┬, над М-ым блоком данных выполняют М раундов обратной операции ┬.
В общем случае функция расшифрования i-го блока данных на j-ом раунде в режиме шифрования по треугольному полю имеет следующий вид:
i, j
i, j+1
i-1, j+1,
x=x┬x
при этом
i, 2M+1-i
j
x:=y, 1≤i≤М,
0,j
j
x:=k, 1≤j≤2M,
i
i,0
x:=x, 1≤i≤M,
j≤2M+1-i.
Дополнительно, в заявленном способе процесс шифрования блоков данных могут выполнять с использованием секретного выбора зашифрованных выходных значений - режим шифрования по избранному (секретному) маршруту.
В этом случае входные данные разбивают на М блоков, из криптографического ключа К формируют N подключей в соответствии с установленным для зашифрования расписанием ключей. Дополнительно используют криптографический ключ R, определяющий порядок случайного выбора зашифрованных выходных значений, и определяют число L раундов зашифрования, обеспечивающих требуемую криптографическую стойкость процесса шифрования, при этом L<N. Зашифрование первого блока данных осуществляют в соответствии со следующими уравнениями:
1,1
1
1
x=x⊥k,
1,2
1,1
2
х=х⊥k,
и т.д.,
1,N-1
1, N-2
N-1
x=x⊥k,
1,N
1, N-1
N
x=x⊥k.
1
1
1,R1
1
Далее на основании значения R детерминированно получают значение R, такое, что L<R≤N. Значение x определяют результатом зашифрования блока данных x.
Зашифрование второго блока данных осуществляют в соответствии со следующими уравнениями:
2,1
2
1,1
х=х⊥x,
2,2
2,1
1,2
х=х⊥x,
и т.д.,
2, N-1
2, N-2
1, N-1
x=x⊥x,
2, N
2, N-1
1, N-1
x=x⊥x.
2
2
2,R2
2
Далее на основании значения R детерминированно получают значение R, такое, что L<R≤N. Значение x определяют результатом зашифрования блока данных х.
i,Ri
i,L+1
1,N
i
То есть, при зашифровании первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при зашифровании всех последующих блоков данных в качестве раундовых подключей используют результаты зашифрования предыдущего блока данных на этом же раунде. В качестве результата зашифрования определяют значение x, выбираемое из значений x, …, x, на основании значения R, детерминированно сформированного из криптографического ключа R.
В общем случае, функция зашифрования i-го блока данных на j-ом раунде в режиме шифрования по избранному маршруту имеет следующий вид:
i,j
i, j-1
i-1, j,
x=x⊥x
при этом
0,j
j
x:=k, 1≤j≤N,
i,0
i
x:=x, 1≤i≤M.
i
i
i, Ri
i
i
Далее, на основании значения R детерминированно получают значение R, такое, что L<R≤N. Значение x определяют результатом зашифрования блока данных x. При этом значения R формируют из значения R независимо друг от друга.
Расшифрование данных, зашифрованных в режиме шифрования по избранному (секретному) маршруту, осуществляют следующим образом.
1
М
При расшифровании М зашифрованных блоков данных (y, …,.y) используют криптографические ключи К и R, ранее использованные для зашифрования.
1
1
1, R1
1
При этом из ключа К формируют N подключей в соответствии с установленным для расшифрования расписанием ключей. На основании значения R по ранее определенному правилу детерминированно получают значение R, такое, что L<R≤N. Значению x присваивают значение y. В силу левообратимости бинарной операции ⊥ расшифрование первого блока данных осуществляют в соответствии со следующими уравнениями:
1,R1-1
1,R1
R1
x=x┬k,
и т.д.,
1,1
1,2
2
х=x┬k,
1
1,1
1
x=x┬k.
1
1
Значение xявляется результатом расшифрования блока данных y. Дополнительно вычисляют значения
1, R1+1
1,R1
R1+1
x=x⊥k,
и т.д.,
1, N-1
1,N-2
N-1
x=x⊥k,
1, N
1
N-1
N
x=x,⊥k,
которые могут использоваться при расшифровании следующего блока данных.
2
2
2,R2
2
На основании значения R по ранее определенному правилу детерминированно получают значение R, такое, что L<R≤N. Значению x присваивают значение y. Расшифрование второго блока данных осуществляется в соответствии со следующими уравнениями:
2, R2-1
2, R2
1, R2
x=x┬x,
и т.д.,
2,1
2,2
1,2
x=x┬x,
2
2,1
1,1
х=x┬х.
2
2
Значение х является результатом расшифрования блока данных y.
Дополнительно вычисляют значения
2, R2+1
2,R2
1, R2+1
x=x⊥x,
и т.д.,
2, N-1
2, N-2
1, N-1
x=x⊥x,
2, N
2, N-1
1, N
x=x⊥x,
которые могут использоваться при расшифровании следующего блока данных.
i
i
i,Ri
То есть, при расшифровании i-го блока данных на основании значения R по ранее определенному правилу детерминированно получают значение R, такое, что L<R≤N. Значению x присваивают значение i-го блока данных. Далее осуществляют восстановление всех промежуточных значений зашифрования блока данных. При этом для расшифрования первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при расшифровании всех последующих блоков данных в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на этом же раунде.
В общем случае функция расшифрования i-го блока данных на j-ом раунде в режиме шифрования по избранному маршруту имеет следующий вид:
i,j
i,j+1
i-1, j+1
i
x=x┬x, 1≤j≤R-1,
i,j
i,j-1
i-1, j
i
x=x⊥x, R+1≤j≤N,
при этом,
i,Ri
i
x:=y, 1≤i≤M,
0,j
j
x:=k, 1≤j≤N,
i
i,0
x:=x, 1≤i≤M.
Технический результат заявленного способа достигается тем, что преобразуемые цифровые данные разбивают на блоки, при этом используют секретный криптографический ключ, из которого в соответствии с установленным расписанием ключей формируют раундовые подключи, используемые в раундах шифрования, при этом шифрование блоков данных осуществляют итеративно с использованием левообратимой бинарной операции, подлежащие шифрованию блоки данных группируют по несколько блоков данных, и шифрование группы блоков данных осуществляют совместно.
При зашифровании в режиме шифрования по прямоугольному полю первого в группе блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при зашифровании всех последующих блоков данных в качестве раундовых подключей используют результаты зашифрования предыдущего блока данных на этом же раунде, при этом в каждом раунде используют левообратимую бинарную операцию за исключением последнего раунда, на котором используют операцию отбеливания.
При расшифровании в режиме шифрования по прямоугольному полю первого блока зашифрованных данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при расшифровании всех последующих блоков данных в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на предыдущем раунде, при этом в каждом раунде используют обратную левообратимую операцию за исключением первого раунда, на котором используют обратную операцию отбеливания.
При шифровании в режиме шифрования по треугольному полю, выбирают левообратимую бинарную операцию и определяют число раундов левообратимой бинарной операции над преобразуемыми блоками данных, обеспечивающих требуемую криптографическую стойкость, и определяют число раундов левообратимой бинарной операции, выполняемых над первым блоком данных в группе, как число раундов, обеспечивающих требуемую криптографическую стойкость, плюс число блоков данных в группе.
При зашифровании в режиме шифрования по треугольному полю первого в группе блока данных над блоком данных выполняют определенное ранее число раундов левообратимой бинарной операции, над каждым последующим зашифровываемым в группе блоком данных выполняют на один раунд левообратимой бинарной операции меньше по сравнению с предыдущим блоком данных.
При расшифровании в режиме шифрования по треугольному полю первого в группе блока данных над блоком данных выполняют определенное ранее число раундов обратной левообратимой бинарной операции, при этом над каждым последующим расшифровываемым в группе блоком данных выполняют на один раунд обратной левообратимой бинарной операции меньше по сравнению с предыдущим блоком данных, при расшифровании первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при расшифровании всех последующих блоков данных в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на раунде, номер которого больше номера текущего раунда на порядковый номер расшифровываемого блока данных в группе.
При шифровании в режиме шифрования по избранному маршруту, выбирая левообратимую бинарную операцию, определяют число раундов левообратимой бинарной операции над преобразуемыми блоками данных, обеспечивающих требуемую криптографическую стойкость, и максимальное число раундов, выполняемых над преобразуемыми блоками данных (это число должно быть больше числа раундов, обеспечивающих требуемую криптографическую стойкость), и используют дополнительное секретное значение (дополнительный криптографический ключ),
При зашифровании в режиме шифрования по избранному маршруту блоков данных из дополнительного криптографического ключа для каждого блока данных в группе независимо друг от друга формируют номер раунда, не меньший, чем число раундов, обеспечивающих требуемую криптографическую стойкость, результат зашифрования после этого раунда назначают результатом зашифрования этого блока данных.
При расшифровании в режиме шифрования по избранному маршруту блоков данных из дополнительного криптографического ключа для каждого блока данных в группе определяют, сколько раундов расшифрования необходимо выполнить над каждым блоком данных и последовательно, начиная с первого блока, осуществляют расшифрование блоков данных в соответствии с определенным для них числом раундов, дополнительно осуществляют формирование промежуточных результатов шифрования, как если бы блоки данных зашифровывались с выполнением максимального числа раундов, эти промежуточные результаты используют при расшифровании последующих блоков данных.
Техническая возможность реализации заявленного способа иллюстрируется устройствами, реализующими зашифрование и расшифрование в соответствии с заявленным способом.
Устройства, реализующие заявленный способ, работают следующим образом.
Устройство, осуществляющее зашифрование блоков данных в режиме шифрования по прямоугольному полю (Фиг.4), имеет М+1 входов, на входы 1, … М подают зашифровываемые блоки данных, М выходов, с которых снимают результат зашифрования блоков данных. При этом до начала шифрования на вход 0 устройства подают криптографический ключ. В качестве левообратимой бинарной операции в устройстве могут использовать, например, два раунда зашифрования способа-прототипа (Фиг.2), реализуемого блоком 01.
В случае использования в качестве левообратимой операции двух раундов способа-прототипа входные блоки данных, подлежащие зашифрованию, и выходные блоки, результат зашифрования входных блоков, имеют разрядность 64 бита. Криптографический ключ имеет разрядность 256 бит. В качестве блока 40 формирования расписания ключей используют блок, формирующий раундовые ключи в соответствии с порядком расширения ключа способа-прототипа для режима зашифрования. Раундовые подключи имеют разрядность 64 бита и являются подключами способа-прототипа, используемыми в двух последовательных раундах. Число раундов N равно 16, число М одновременно зашифровываемых блоков данных определяется из условий конкретного применения заявленного способа.
Как было показано выше, устройство, реализующее зашифрование в режиме шифрования по прямоугольному полю в соответствии с заявленным способом (Фиг.4), имеет вход 0, на который до начала зашифрования подают криптографический ключ, который с входа 0 устройства подают на вход блока 40 формирования расписания ключей, где в соответствии с установленным порядком осуществляют формирование раундовых ключей и подают их на соответствующие выходы блока 40 формирования расписания ключей. При этом первый блок зашифровываемых данных подают на вход 1 устройства, с которого блок данных подают на регистр 1,0 хранения первого блока данных, с которого блок данных подают на вход 1 блока 01 левообратимой операции, при этом на вход 2 блока 01 левообратимой операции подают раундовый подключ с выхода 1 блока 40 формирования расписания ключей, результат преобразования в блоке 01 левообратимой операции с выхода блока 01 левообратимой операции подают на регистр 1,1 хранения результата преобразования после первого раунда зашифрования.
Далее блок данных с выхода регистра 1,1 хранения результата преобразования после первого раунда зашифрования подают на вход 1 блока 01 левообратимой операции, при этом на вход 2 блока 01 левообратимой операцию подают раундовый подключ с выхода 2 блока 40 формирования расписания ключей, и т.д.
На j-ом раунде с выхода регистра 1, j-1 блок данных подают на вход 1 блока 01 левообратимой операции, при этом на вход 2 блока 01 левообратимой операции подают раундовый подключ с выхода j блока 40 формирования расписания ключей, и т.д.
На N-ом раунде с выхода регистра 1, N-1 блок данных подают на вход блока 4,1 операции отбеливания, при этом на другой вход блока 4,1 операции отбеливания подают раундовый подключ с выхода N блока 40 формирования расписания ключей, результат преобразования в блоке 4,1 операции отбеливания с выхода блока 4,1 операции отбеливания подают на регистр 1,N хранения результата зашифрования первого блока данных, с выхода регистра 1,N блок данных подают на выход 1 устройства.
Для зашифрования второго блока данных его подают на вход 2 устройства, с которого блок данных подают на регистр 2,0 хранения второго блока данных, с которого блок данных подают на вход 1 блока 01 левообратимой операции, при этом на вход 2 блока 01 левообратимой операции подают результат преобразования первого блока данных после первого раунда, результат преобразования в блоке 01 левообратимой операции с выхода блока 01 левообратимой операции подают на регистр 2,1 хранения результата преобразования второго блока данных после первого раунда зашифрования. Далее блок данных с выхода регистра 2,1 хранения результата преобразования второго блока данных после первого раунда зашифрования подают на вход 1 блока 01 левообратимой операции, при этом на вход 2 блока 01 левообратимой операции подают результат преобразования первого блока данных после второго раунда преобразования и т.д.
На j-ом раунде с выхода регистра 2, j-1 блок данных подают на вход 1 блока 01 левообратимой операции, при этом на вход 2 блока 01 левообратимой операции подают результат преобразования первого блока данных после j-го раунда и т.д.
На N-ом раунде с выхода регистра 2, N-1 блок данных подают на вход блока 4,2 операции отбеливания, при этом на другой вход блока 4,2 операции отбеливания подают значение с выхода регистра 1, N-1, результат преобразования в блоке 4,2 операции отбеливания с выхода блока 4,2 операции отбеливания подают на регистр 2,N хранения результата зашифрования второго блока данных, с выхода регистра 2,N блок данных подают на выход 2 устройства.
При зашифровании i-го блока данных на j-ом раунде с выхода регистра i, j-1 блок данных подают на вход 1 блока 01 левообратимой операции, при этом на вход 2 блока 01 левообратимой операции подают значение с регистра i-1, j и т.д, за исключением последнего раунда, на котором с выхода регистра i, N-1 блок данных подают на вход блока 4,i операции отбеливания, при этом на другой вход блока 4,i операции отбеливания подают значение с выхода регистра i-1, N-1.
При зашифровании М-го блока данных на N-ом раунде с выхода регистра M, N-1 блок данных подают на вход блока 4,М операции отбеливания, при этом на другой вход блока 4,М операции отбеливания подают значение с регистра M-1, N-1, результат преобразования в блоке 4,М операции отбеливания с выхода блока 4,М операции отбеливания подают на регистр M, N хранения результата зашифрования М-го блока данных, с выхода регистра M, N блок данных подают на выход М устройства.
Устройство, осуществляющее расшифрование блоков данных в режиме шифрования по прямоугольному полю (Фиг.5), имеет М+1 входов, на входы 1, … М подают расшифровываемые блоки данных, и М выходов, с которых снимают результат расшифрования блоков данных. При этом до начала шифрования на вход 0 устройства подают криптографический ключ. В качестве левообратимой бинарной операции в устройстве могут использоваться, например, два раунда расшифрования способа-прототипа (Фиг.2).
В случае использования в качестве левообратимой операции двух раундов способа-прототипа входные блоки данных, подлежащие расшифрованию, и выходные блоки, результат расшифрования входных блоков, имеют разрядность 64 бита. Криптографический ключ имеет разрядность 256 бит. В качестве блока формирования расписания ключей используют блок, формирующий раундовые ключи в соответствии с порядком расширения ключа способа-прототипа для режима расшифрования. Раундовые подключи имеют разрядность 64 бита и являются подключами способа-прототипа, используемыми в двух последовательных раундах. Число раундов N равно 16, число М одновременно расшифровываемых блоков данных определяется из условий конкретного применения заявленного способа.
Как было показано выше, устройство, реализующее расшифрование в режиме шифрования по прямоугольному полю в соответствии с заявленным способом, имеет вход 0, на который до начала расшифрования подают криптографический ключ, который с входа 0 устройства подают на вход блока 40 формирования расписания ключей, где в соответствии с установленным порядком осуществляют формирование раундовых подключей и подают их на соответствующие выходы блока 40 формирования расписания ключей. При этом первый блок данных подают на вход 1 устройства, с которого блок данных подают на регистр 1,N хранения первого блока данных, с которого блок данных подают на первый вход блока 4,1 операции отбеливания, при этом на второй вход блока 4,1 операции отбеливания подают раундовый подключ с выхода N блока формирования расписания ключей, результат преобразования в блоке 4,1 операции отбеливания с выхода блока 4,1 операции отбеливания подают на регистр 1, N-1 хранения результата преобразования после первого раунда расшифрования. Далее блок данных с выхода регистра 1, N-1 хранения результата преобразования после первого раунда расшифрования подают на вход 1 блока 02 обратной левообратимой операции, при этом на вход 2 блока 02 обратной левообратимой операции подают раундовый подключ с выхода N-1 блока формирования расписания ключей, и т.д.
На j-ом раунде с выхода регистра 1,N+1-j блок данных подают на вход 1 блока 02 обратной левообратимой операции, при этом на вход 2 блока 02 обратной левообратимой операции подают раундовый подключ с выхода N+1-j блока формирования расписания ключей, и т.д. На N-ом раунде с выхода регистра 1,1 блок данных подают на вход 1 блока 02 обратной левообратимой операции, при этом на вход 2 блока 02 обратной левообратимой операции подают раундовый подключ с выхода 1 блока 40 формирования расписания ключей, результат преобразования в блоке 02 обратной левообратимой операции с выхода блока 02 обратной левообратимой операции подают на регистр 1,0 хранения результата расшифрования первого блока данных, с выхода регистра 1,0 блок данных подают на выход 1 устройства.
Для расшифрования второго блока данных его подают на вход 2 устройства, с которого блок данных подают на регистр 2,N хранения второго блока данных, с которого блок данных подают на первый вход блока 4,2 операции отбеливания, при этом на второй вход блока 4,2 операции отбеливания подают значение с выхода блока 4,1 операции отбеливания, результат преобразования в блоке 4,2 операции отбеливания с выхода блока 4,2 операции отбеливания подают на регистр 2,N-1 хранения результата преобразования второго блока данных после первого раунда расшифрования. Далее блок данных с выхода регистра 2,N-1 хранения результата преобразования второго блока данных после первого раунда расшифрования подают на вход 1 блока 02 обратной левообратимой операции, при этом на вход 2 блока 02 обратной левообратимой операции подают значение с выхода регистра 1,N-1 и т.д.
На j-ом раунде с выхода регистра 2,N+1-j блок данных подают на вход 1 блока 02 обратной левообратимой операции, при этом на вход 2 блока 02 обратной левообратимой операции подают значение с выхода регистра 2,j-1, и т.д.
На N-ом раунде с выхода регистра 2,1 блок данных подают на вход 1 блока 02 обратной левообратимой операции, при этом на вход 2 блока 02 обратной левообратимой операции подают значение с выхода регистра 1,1, результат преобразования в блоке 02 обратной левообратимой операции с выхода блока 02 обратной левообратимой операции подают на регистр 2,0 хранения результата расшифрования второго блока данных, с выхода регистра 2,0 блок данных подают на выход 2 устройства.
При расшифровании i-го блока данных на j-ом раунде с выхода регистра i,N+1-j блок данных подают на вход 1 блока 02 обратной левообратимой операции, при этом на вход 2 блока 02 обратной левообратимой операции подают значение с выхода регистра i-1, N+1-j и т.д, за исключением первого раунда, на котором с выхода регистра i,N блок данных подают на первый вход блока 4,i операции отбеливания, при этом на второй вход блока 4,i операции отбеливания подают значение с выхода блока 4,i-1 операции отбеливания.
При расшифровании М-го блока данных на N-ом раунде с выхода регистра М,1 блок данных подают на вход 1 блока 02 обратной левообратимой операции, при этом на вход 2 блока 02 обратной левообратимой операции подают значение с регистра М-1,1, результат преобразования в блоке 02 обратной левообратимой операции с выхода блока 02 обратной левообратимой операции подают на регистр М,0 хранения результата расшифрования М-го блока данных, с выхода регистра М,0 блок данных подают на выход М устройства.
Техническая возможность реализации заявленного способа в режиме шифрования по треугольному полю иллюстрируется устройствами, реализующими зашифрование и расшифрование в соответствии с заявленным способом.
Устройство, осуществляющее зашифрование блоков данных в режиме шифрования по треугольному полю (Фиг.6), имеет М+1 входов, на входы 1, …, М подают зашифровываемые блоки данных, М выходов, с которых снимают результат зашифрования блоков данных. При этом до начала шифрования на вход 0 устройства подают криптографический ключ. В качестве левообратимой бинарной операции в устройстве могут использовать, например, два раунда зашифрования способа-прототипа (Фиг.2).
Устройство, осуществляющее зашифрование блоков данных в режиме шифрования по треугольному полю, отличается от устройства, осуществляющего зашифрование в режиме шифрования по прямоугольному полю, тем, что при зашифровании первого блока данных над блоком данных выполняют 2·М раундов левообратимой операции, при этом над каждым последующим зашифровываемым блоком данных выполняют на один раунд левообратимой операции меньше по сравнению с предыдущим блоком данных.
Устройство, осуществляющее расшифрование блоков данных в режиме шифрования по треугольному полю (Фиг.7), имеет М+1 входов, на входы 1, …, М подают расшифровываемые блоки данных, и М выходов, с которых снимают результат расшифрования блоков данных. При этом до начала шифрования на вход 0 устройства подают криптографический ключ. В качестве обратной левообратимой бинарной операции в устройстве могут использовать, например, два раунда расшифрования способа-прототипа (Фиг.2).
Устройство, осуществляющее расшифрование блоков данных в режиме шифрования по треугольному полю, отличается от устройства, осуществляющего расшифрование в режиме шифрования по прямоугольному полю, тем, что при расшифровании всех блоков данных, за исключением первого, в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на раунде, номер которого больше на порядковый номер расшифровываемого блока данных в текущей М-блоковой группе, при этом над каждым последующим расшифровываемым блоком данных выполняют на один раунд обратной операции меньше по сравнению с предыдущим блоком данных.
Техническая возможность реализации заявленного способа в режиме шифрования по избранному маршруту иллюстрируется устройствами, реализующими зашифрование и расшифрование в соответствии с заявленным способом.
Устройство, осуществляющее зашифрование блоков данных в режиме шифрования по избранному маршруту (Фиг.8), имеет М+2 входов, на входы 1, …, М подают зашифровываемые блоки данных, М выходов, с которых снимают результат зашифрования блоков данных. При этом до начала шифрования на вход 0 устройства подают криптографический ключ, используемый для формирования раундовых подключей, на вход 62 устройства подают криптографический ключ, определяющий порядок случайного выбора результата шифрования. В качестве левообратимой бинарной операции в устройстве могут использовать, например, два раунда зашифрования способа-прототипа (Фиг.2).
Устройство, осуществляющее зашифрование блоков данных в режиме шифрования по избранному маршруту, отличается от устройства, осуществляющего зашифрование в режиме шифрования по прямоугольному полю, тем, что при зашифровании значение с входа 62 устройства подают на вход блока 62, значения с выходов 1, …, М блока 62, определяющего порядок случайного выбора, подают на управляющие входы мультиплексоров 61,i (Фиг.8), на информационные входы мультиплексоров 61,i подают результаты (N-L) последних раундов шифрования, из которых осуществляют выбор выходного значения в соответствии со значением управляющего входа мультиплексора 61,i.
2
Блок 62, определяющий порядок случайного выбора результата шифрования на основании криптографического ключа R, например, может быть реализован следующим образом (Фиг.9). В этом случае криптографический ключ R имеет размер M·S бит (где S=(Целая часть (log(N-L))), М - число одновременно шифруемых блоков данных), и блок имеет один вход и М выходов 1, …, М. На вход 62 блока с входа 62 устройства подают криптографический ключ R, который в блоке разбивают на М частей, при этом первую часть, состоящую их S младших бит криптографического ключа R, подают на выход 1 блока 62, вторую часть, состоящую из младших битов с S-го по (2·S-1)-ый, подают на выход 2 блока 62, и т.д., на выход М блока 62 подают S старших бит ключа R.
Устройство, осуществляющее расшифрование блоков данных в режиме шифрования по избранному маршруту (Фиг.10), имеет М+2 входов, на входы 1, …, М подают расшифровываемые блоки данных, и М выходов, с которых снимают результат расшифрования блоков данных. При этом до начала шифрования на вход 0 устройства подают криптографический ключ, используемый для формирования раундовых подключей, и на вход 62 устройства подают криптографический ключ, определяющий порядок случайного выбора результата шифрования. В качестве обратной левообратимой бинарной операции в устройстве могут использовать, например, два раунда расшифрования способа-прототипа (Фиг.2).
Устройство, осуществляющее расшифрование блоков данных в режиме шифрования по избранному маршруту, отличается от устройства, осуществляющего расшифрование в режиме шифрования по прямоугольному полю, тем, что при расшифровании значение с входа 62 устройства подают на вход блока 62, значениия с выходов 1, …, М блока 62, определяющего порядок случайного выбора, подают на управляющие входы демультиплексоров 63,i (Фиг.10), на информационные входы демультиплексоров 63,i с входов i устройства подают подлежащие расшифрованию блоки данных. В соответствии со значениями, поданными на управляющие входы демультиплексоров 63,i, значения с выходов демультиплексоров подают на входы 1 соответствующих блоков i,j, определяющих направление шифрования. Дополнительно значения с выходов 1, …, М блока 62 подают на входы дешифраторов 64,i, в соответствии с поступившим входным значением с выходов дешифраторов подают соответствующие управляющие значения на входы 2 блоков i,j, определяющих направление шифрования, причем на все блоки i,j, определяющие направление шифрования, номер j которых меньше числа раундов зашифрования минус значение, поступившее с выхода i блока 62, подают управляющее значение, разрешающее зашифрование блоков данных, на все другие блоки i,j, определяющие направление шифрования, подают управляющее значение, разрешающее расшифрование блоков данных. При этом на входы 3 блоков 1,j, определяющих направление шифрования, подают раундовые подключи, сформированные в блоке 60 в соответствии с ключевым расписанием, на входы 3 блоков  i,j, определяющих направление шифрования, подают результаты расшифроания предыдущих блоков данных на этом же раунде. Далее во всех блоках  i,j, определяющих направление шифрования, номер j которых меньше числа раундов зашифрования минус значение, поступившее с выхода i блока 62, последовательно, начиная с блока i,N-R1, определяющего направление шифрования, и заканчивая блоком i,N, определяющего направление шифрования, осуществляют зашифрование блоков данных, во всех остальных блоках i,j, определяющих направление шифрования, и блоках 02 обратной левообратимой операции осуществляют расшифрование блоков данных, результат расшифрования подают на выходы 1, … М. Значения с выходов 1 блоков i,j, определяющих направление шифрования, подают на входы 3 блоков i+1,j, определяющих направление шифрования, где они используются как раундовые подключи.
Блоки, определяющие направление шифрования в режиме шифрования по избранному маршруту, функционируют следующим образом (Фиг.11). Каждый блок, определяющий направление шифрования, имеет пять входов и три выхода. На вход 5 блока подают блок данных для зашифрования от предыдущего блока, определяющего направление шифрования. На вход 4 подают блок данных для расшифрования от последующего блока, определяющего направление шифрования. С выхода 3 блока выдают блок данных для дальнейшего расшифрования. С выхода 2 на предыдущий блок, определяющий направление шифрования, выдают блок данных для зашифрования. На вход 3 блока подают раундовый подключ, с выхода 1 блока выдают раундовый подключ, используемый для шифрования следующего блока данных. На вход 2 блока подают управляющее значение, определяющее расшифрование или зашифрование должен осуществлять блок. Если номер j блока равен числу раундов зашифрования минус значение, поступившее с выхода i блока 62, то на вход 1 блока подают блок данных, поступивший на вход устройства для расшифрования.
Блоки, определяющие направление шифрования, состоят из блоков регистров 71 и 72, блоков вентилей 75 и 76, блока дешифратора 74, мультиплексора 73, блока левообратимой бинарной операции 01 и блока обратной левообратимой бинарной операции 02. Регистры 71 и 72 выполняют функции хранения промежуточных результатов. Первый вход регистра 71 соединен с входом 4 блока, второй вход блока 71 соединен с входом 1 блока, выход регистра 71 соединен с входом 1 блока 02 и вторым информационным входом блока 73. Первый вход регистра 72 соединен с информационным выходом блока 01, второй вход регистра 72 соединен с входом 1 блока, выход регистра 72 соединен с выходом 2 блока и первым информационным входом блока 73. Блок 73 выполняет функции мультиплексора. Управляющий вход блока 73 соединен с входом 2 блока. Выход блока 73 соединен с выходом 1 блока. Блоки 75 и 76 выполняют функции вентилей, разрешающих или запрещающих прохождение через них информации. Информационный вход блока 75 соединен с выходом блока 02, выход блока 75 соединен с выходом 3 блока, управляющий вход блока 75 соединен с первым выходом блока 74. Информационный вход блока 76 соединен с входом 5 блока, выход блока 76 соединен с информационным входом блока 01, управляющий вход блока 76 соединен со вторым выходом блока 74. Блок 74 выполняет функции дешифратора. Управляющий вход блока 74 соединен с входом 2 блока. Входы 2 блоков 01 и 02 предназначены для ввода раундовых подключей и соединены с входом 3 блока.
Блоки, определяющие направление шифрования, функционируют следующим образом. В зависимости от поданного на вход 2 управляющего значения осуществляется расшифрование или зашифрование блока данных. При зашифровании дешифратор 74 подает на блок 75 значение, блокирующее передачу через блок 75, и подает на блок 76 значение, разрешающее передачу через блока 76, при этом мультиплексор 73 на выход 1 блока подает значение с блока 72. При расшифровании дешифратор 74 подает на блок 76 значение, блокирующее передачу через блок 76, и подает на блок 75 значение, разрешающее передачу через блок 75, при этом мультиплексор 73 на выход 1 блока подает значение с блока 71. В зависимости от значения, поступившего с выхода i блока 62, на вход 1 блока могут подавать блок данных, предназначенный для расширфрования.
Таким образом, заявленный способ позволяет осуществлять зашифрование и расшифрование блоков данных.
При этом шифрование первого блока данных осуществляют с использованием раундовых подключей, сформированных из криптографического ключа в соответствии с принятым расписанием ключей, шифрование последующих блоков данных осуществляют с использованием в качестве раундовых подключей промежуточных результатов шифрования предыдущих блоков данных.
Литература
[1] Б.Шнайер, Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. - М.: Издательство ТРИУМФ, 2002 - 816 с: ил.
[2] К.Шеннон «Работы по теории информации и кибернетике», М., ИЛ, 1963, с.333-369.
[3] Federal Information Processing Standards Publication 197, Specification for the advanced encryption standard (AES).
[4] Патент №US 5214703, H04K 1/04, 25.05.1993, Device for the conversion of a digital block and use of same.
[5] Патент №RU 2140709, H04L 9/00, H04K 1/00, G09C 1/02, 27.10.1999, Способ криптографического преобразования блоков цифровых данных.
[6] ГОСТ 28147-89 Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования.
[7] Фомичев В.М. Дискретная математика и криптология. Курс лекций / Под общ. ред. д-ра физ.-мат.н. Н.Д.Подуфалова. - М.: ДИАЛОГ-МИФИ, 2003 - 400 с.