СПОСОБ БЛОЧНОГО ПРЕОБРАЗОВАНИЯ ЦИФРОВЫХ ДАННЫХ НА ОСНОВЕ РЕГИСТРА СДВИГА ДЛИНЫ ВОСЕМЬ С 32-БИТОВЫМИ ЯЧЕЙКАМИ И С ТРЕМЯ ОБРАТНЫМИ СВЯЗЯМИ Российский патент 2023 года по МПК H04L9/06 

Описание патента на изобретение RU2796629C1

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

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

Уровень техники

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

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

- классические сети Фейстеля (блочные шифры DES, ГОСТ 28147-89, ГОСТ 34.12-2018 (Магма));

- обобщенные/модифицированные сети Фейстеля (блочные шифры СГЕИА, CAST-256, RC6, MARS и др.);

- XSL-сети (блочные шифры AES, ГОСТ 34.12-2018 (Кузнечик) и др.).

Близкими аналогами заявленного способа являются алгоритм криптографического преобразования ГОСТ 28147-89 и блочный шифр «Магма» с длиной блока 64 бита, описанный в стандарте ГОСТ 34.12-2018 «Информационная технология. Криптографическая защита информации. Блочные шифры». Среди достоинств аналогов можно отметить хорошую изученность криптографических и эксплуатационных свойств и потенциал для создания эффективных реализаций в условиях ограниченных ресурсов. Вместе с тем, аналоги имеют следующие недостатки. Формирование расписания ключей осуществляется путем разбиения секретного ключа шифрования длиной 256 бит на 8 подключей длиной 32 бита. При этом при шифровании одного 64-битового блока данных каждый бит ключа используется в четырех раундах из 32-х, что снижает специальные свойства криптографического преобразования. Кроме того, размер блока в 64 бита ограничивает возможности высокоскоростного блочного шифрования больших объемов данных, удовлетворяющего современным требованиям к криптографической стойкости и эксплуатационным качествам блочных шифров.

Наиболее близкими по технической сущности к заявленному способу являются способы криптографического преобразования блоков цифровых данных, описанные в патенте RU 2359415 С2, МПК H04L 9/00, 20.06.2009, в которых применяется алгоритм шифрования блоков данных, заключающийся в разбиении этих данных на блоки, при этом первый блок текста зашифровывается с помощью секретного ключа, а остальные блоки зашифровываются с помощью ключа, который формируется из предыдущего блока текста и предыдущего ключа. Для зашифрования отдельного блока текста используется «классическая» сеть Фейстеля, оперирующая с двумя подблоками.

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

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

Однако в указанном патенте-прототипе отсутствует детальное описание узлов и параметров, от которых полностью зависит стойкость данных алгоритмов к криптографическому анализу, таких как:

- устройство функции обратной связи (усложнения) Ф в составе цикловой функции шифра Фейстеля;

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

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

- число раундов шифрования;

- длина секретного ключа;

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

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

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

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

Отсутствие указанных параметров и операций приводит к увеличению вычислительных затрат на выполнение процедуры обработки информационных блоков.

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

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

Раскрытие изобретения

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

Фиг. 1 - Схема генератора раундовых ключей.

Фиг. 2 - Схема ключевого запоминающего устройства.

Фиг. 3 - Схема раунда блочного преобразования.

Фиг. 4 - Блок подстановки.

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

1) Генератор раундовых ключей (фиг. 1), являющийся последовательным соединением линейного конгруэнтного генератора 100 и модифицированного аддитивного генератора 101, вырабатывающий из основного 256-битового ключа шифрования 102, обозначенного через k, последовательность 32-разрядных двоичных строк 103, обозначенную через {qi}. Основной ключ шифрования 102 является начальным заполнением восьми 32-разрядных ячеек, обозначенных Х0, Х1, …, Х6, K0. Символом обозначено сложение по модулю 232, α - фиксированное нечетное число из кольца вычетов по модулю 232, F - функция, обеспечивающая перемешивающие свойства генератора раундовых ключей, в частности, существенную нелинейную зависимость каждого бита выходной последовательности 103 от всех битов основного ключа 102, что затрудняет применение криптоаналитических атак дифференциального и линейного типов по отношению к заявленному блочному преобразованию.

2) Ключевое запоминающее устройство (фиг. 2) размером не менее 1536 битов, состоящее из 32-разрядных накопителей 200, обозначенных (K0, K1, …, KN), где N≥47, в которые записываются раундовые ключи 201, обозначенные R≥16, образующие нерегулярную выборку элементов из последовательности 103.

3) Регистр сдвига 301, состоящий из восьми 32-битовых ячеек (фиг. 3), в которые записываются исходные данные X - 300, подлежащие зашифрованию, разбитые на восемь подблоков: Х0 - 3001, Х1 - 3002, Х2 - 3003, Х3 - 3004, Х4 -3005, Х5 - 3006, Х6 - 3007, Х7 - 3008.

4) Регистр сдвига 303, состоящий из восьми 32-битовых ячеек (фиг. 3), в которые записываются данные Y - 302, подлежащие расшифрованию, разбитые на восемь подблоков: (Y0, Y1, …, Y7).

5) Три обратные связи регистра сдвига 301 (фиг. 3): f(S, q1) - 304, f(S, q2) - 305, f(S, q3) - 306, где S=X1+X3+X4+X6+X7(mod 232) - 307.

6) Четыре идентичных 32-разрядных сумматора по модулю 232 (фиг. 3): SUM0 - 308, SUM1 - 309, SUM2 - 310, SUM3 - 311;

7) Три идентичных блока подстановки (фиг. 3):

8) Три идентичных 32-битовых регистра циклического сдвига на девятнадцать шагов в сторону старшего разряда (фиг. 3):

9) Три идентичных 32-разрядных сумматора поразрядного суммирования по модулю 2 (фиг. 3): XOR1 - 318, XOR2 - 319, XOR3 - 320;

Каждый блок подстановки состоит из восьми узлов замены W1, …, W8: 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008 (фиг. 4) с памятью на 64 бита каждый. Поступающий на блок подстановки 32-разрядный вектор 401 разбивается на восемь последовательно идущих 4-разрядных векторов: 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, каждый из которых преобразуется в восемь 4-разрядных векторов 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028 соответствующим узлом замены 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, представляющим таблицу вида 400, состоящую из 16 строк, содержащих по 4 бита заполнения в строке, т.е. шестнадцатеричный символ вида 403. При этом соответствие между шестнадцатеричными символами и двоичными строками длины 4 задается естественным образом:

Каждый из входных 4-разрядных векторов 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018 определяет номер строки в таблице вида 400. Выходным вектором является заполнение данной строки, т.е. 4 бита, соответствующих шестнадцатеричному символу вида 403. Затем последовательность 4-разрядных выходных векторов 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028 соединяется в 32-разрядный вектор 402.

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

Способ блочного преобразования 256-битового блока 300 состоит из 16-ти идентичных раундовых функций, построенных на основе преобразования регистра сдвига 301 длины восемь с 32-битовыми заполнениями ячеек подблоками 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008 и с тремя обратными связями 304, 305, 306. В случае необходимости увеличения криптографической стойкости алгоритма число раундов может быть увеличено. Раунд блочного преобразования представлен на фиг. 3.

В каждом раунде для вычисления раундовой функции используются по три 32-битовых раундовых ключа 201 где R≥16, которые формируются в генераторе раундовых ключей из 256-битового ключа шифрования k 102 в соответствии с установленным ключевым расписанием. При практической реализации 32-битовые раундовые ключи 201 следует сгенерировать с использованием генератора раундовых ключей заранее и записать в ключевое запоминающее устройство. При записи 32-битовых раундовых ключей 201 в ключевое запоминающее устройство раундовый ключ 202 записывается в накопитель K0 203, раундовый ключ 204 - в накопитель 205, раундовый ключ 206 - в накопитель K2 207 и так далее, раундовый ключ 208 - в накопитель KN-2 209, раундовый ключ 210 - в накопитель KN-1 211, раундовый ключ 212 - в накопитель KN 213.

Предлагаемый способ блочного преобразования цифровых данных с помощью вариации обобщенных сетей Фейстеля на основе регистра сдвига 301 длины восемь с 32-битовыми заполнениями ячеек, в которые записываются входные данные 300, подлежащие зашифрованию, и с тремя обратными связями 304, 305, 306, заключается в том, что в генераторе раундовых ключей (фиг. 1) выполняется формирование раундовых ключей 201 из основного ключа шифрования 102 длины 256 бит (фиг. 1) с помощью комбинации линейного конгруэнтного генератора 100 и модифицированного аддитивного генератора 101. В каждом раунде используется уникальный раундовый ключ из 201 и входные данные, представленные в двоичном виде, разбивают на 256-битовые блоки данных, при этом если размер последнего блока меньше 256 битов и длина сообщения не кратна числу 256, то необходимо применить процедуру дополнения сообщения битами 1,0, …, 0 (в соответствии с п. 4.1.2 ГОСТ 34.13-2018) до длины, кратной числу 256, перед преобразованием каждый 256-битовый блок входных данных 300 разбивают на восемь 32-битовых подблока Х0 - 3001, X1 - 3002, Х2 - 3003, Х3 - 3004, Х4 - 3005, Х5 - 3006, Х6 - 3007, Х7 - 3008, которые с помощью регистров центрального процессора компьютера с 32-разрядной или 64-разрядной архитектурой операционной системы поочередно преобразуют в процессе выполнения не менее 16-ти раундов преобразования. При этом один раунд преобразования состоит в следующем - по подблокам Х1, Х3, Х4, Х6, Х7 и трем раундовым подключам q1, q2, q3, определенным в соответствии с расписанием ключей, вычисляются три 32-битовых значения функций обратной связи f(S, q1) - 304, f(S, q2) - 305, f(S, q3) - 306, где S=X1+X3+X4+X6+X7 (mod 232) - значение 307 из сумматора SUM0 - 308, и полученные значения складываются в сумматорах XOR1 - 318, XOR2 - 319, XOR3 - 320 с подблоками Х2, Х5, Х0 с помощью операции поразрядного суммирования по модулю 2, причем вычисление функции обратной связи (усложнения) осуществляют в соответствии со следующими шагами преобразования: формируют начальные значения f(S, q1), f(S, q2), f(S, q3) в сумматорах SUM1 - 309, SUM2 - 310, SUM3 - 311 путем суммирования по модулю 232 значений подблоков Х1, Х3, Х4, Х6, Х7 и раундовых подключей q1, q2, q3, после чего полученные двоичные строки преобразуют в ячейках памяти компьютера с помощью нелинейных биективных преобразований а затем с помощью регистров циклического сдвига выполняется операция циклического сдвига на девятнадцать позиций в сторону старших разрядов, после каждого раунда шифрования подблоки преобразуют в ячейках памяти компьютера, циклически сдвигая влево.

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

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

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

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

Способ блочного преобразования (зашифрования) открытых данных состоит в следующем:

1. В ключевое запоминающее устройство (фиг. 2) вводятся биты раундовых ключей 201:

2. Открытые данные, подлежащие блочному преобразованию, разбивают на блоки по 256 бит в каждом. Если длина сообщения не кратна числу 256 (то есть размер последнего блока меньше 256 битов), то необходимо применить процедуру дополнения сообщения битами 1,0, …, 0 (п. 4.1.2 ГОСТ 34.13-2018) до длины, кратной числу 256.

3. Осуществляется разбиение 256-битового входного блока X=(х255, …, х0) - 300 на подблоки Х0 - 3001, Х1 - 3002, Х2 - 3003, Х3 - 3004, Х4 - 3005, Х5 - 3006, Х6 - 3007, Х7 - 3008, где

Х0=(x255, …, x224), X1=(x223, …, x192), …, Х7=(х31, …, x0).

Подблоки X0, X1, …, Х7 поочередно преобразуются с помощью регистров центрального процессора компьютера с 32-разрядной или 64-разрядной архитектурой операционной системы в процессе раундов преобразования, каждый из которых состоит в следующем.

4. В первом цикле подблоки Х1, Х3, Х4, Х6, Х7 суммируются по модулю 232 в сумматоре SUM0 - 308. Полученное значение суммы пяти указанных подблоков обозначено через S.

5. Из ключевого запоминающего устройства считываются значения заполнения накопителей K0 - 203, K1 - 205, K1 - 207, соответственно.

6. Значение суммируется по модулю 232 со значением S в сумматоре SUM1 - 309.

7. Значение суммируется по модулю 232 со значением S в сумматоре SUM2 - 310.

8. Значение суммируется по модулю 232 со значением S в сумматоре SUM3 - 311.

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

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

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

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

13. Начальное заполнение Х1 записывается в Х0.

14. Начальное заполнение Х2 суммируется в соответствии с операцией XOR (поразрядное суммирование по модулю 2) со значением функции в сумматоре XOR1 - 318. Полученное значение записывается в Х1.

15. Начальное заполнение Х3 записывается в Х2.

16. Начальное заполнение Х4 записывается в Х3.

17. Начальное заполнение Х5 суммируется в соответствии с операцией XOR со значением функции в сумматоре XOR2 - 319. Полученное значение записывается в Х4.

18. Начальное заполнение Х6 записывается в Х5.

19. Начальное заполнение Х7 записывается в Х6.

20. Начальное заполнение Х0 суммируется в соответствии с операцией XOR со значением функции в сумматоре XOR3 - 320. Полученное значение записывается в Х7. Первый цикл вычислений завершается.

21. После дующие циклы осуществляются аналогично с учетом того, что во 2-м цикле из ключевого запоминающего устройства считываются значения являющиеся заполнениями накопителей K3, K4, K5, и так далее, а в R-м цикле считываются значения являющиеся заполнениями накопителей KN-2 - 209, KN-1 - 211, KN - 213.

22. 256-битовый блок зашифрованных данных 302 выводится из (Х0, Х1, …, Х7).

23.Остальные блоки открытых данных преобразовываются в компьютере аналогично.

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

1. Зашифрованные данные, подлежащие блочному преобразованию, разбивают на блоки по 256 бит в каждом.

2. Осуществляется разбиение 256-битового блока Y=(у255, …, y0) на восемь подблоков (Y0, Y1, …, Y7), где

Y0=(у255, …, y224), Y1=(y223, …, y192), …, Y7=(y31, …, y0).

Подблоки Y0, Y1, …, Y7 поочередно преобразуются с помощью регистров центрального процессора компьютера с 32-разрядной или 64-разрядной архитектурой операционной системы в процессе раундов преобразования, каждый из которых состоит в следующем.

3. В первом цикле начальные заполнения Y0, Y2,Y3, Y5,Y6 суммируются по модулю 232 в сумматоре SUM0. Полученное значение обозначено далее через S'.

4. Из ключевого запоминающего устройства считываются значения являющиеся заполнениями накопителей KN-2, KN-1, KN. При выполнении i-го раунда расшифрования, i=1, 2, …, R, раундовые ключи используются в порядке

5. Значение суммируется по модулю 232 со значением S' в сумматоре SUM1.

6. Значение суммируется по модулю 232 со значением S' в сумматоре SUM2.

7. Значение суммируется по модулю 232 со значением S' в сумматоре SUM3.

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

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

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

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

12. Начальное заполнение Y7 суммируется в соответствии с операцией X0R со значением функции в сумматоре XOR-1 и записывается в Y0.

13. Начальное заполнение Y0 записывается в Y1.

14. Начальное заполнение Y1 суммируется в соответствии с операцией XOR со значением функции в сумматоре XOR2 и записывается в Y2.

15. Начальное заполнение Y2 записывается в Y3.

16. Начальное заполнение Y3 записывается в Y4.

17. Начальное заполнение Y5 суммируется в соответствии с операцией XOR со значением функции в сумматоре XOR2. Полученное значение записывается в Y5.

18. Начальное заполнение Y5 записывается в Y6.

19. Начальное заполнение Y6 записывается в Y7. Первый цикл вычислений завершается.

20. Последующие циклы осуществляются аналогично, при этом во 2-м цикле из ключевого запоминающего устройства считываются значения являющиеся заполнениями накопителей KN-3, KN-4, KN-5, и так далее, в R-м цикле считываются значения являющиеся заполнениями накопителей K1, K2, K3.

21. 256-битовый блок расшифрованных данных выводится из (Y0, Y1,…, Y7),.

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

Проведено экспериментальное измерение производительности нового способа блочного преобразования и сравнение полученных величин с производительностью Российского стандарта блочного шифрования «Магма», описанного в ГОСТ 34.12-2018. Экспериментально установлено, что производительность нового способа блочного преобразования в одинаковых условиях реализации почти в 4 раза превышает производительность блочного шифра «Магма». Измерения проведены для 32-разрядной (win32) и 64-разрядной (х64) архитектуры ОС на компьютере с характеристиками: Intel(R) Core(TM) i-3550 CPU, 3.30 GHz. В таблице 1 приведены результаты измерений числа тактов т процессора и времени t в миллисекундах при шифровании файла размера 100 МБайт.

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

Пусть ключ шифрования равен:

k=2244a12922392521577cdc081bca5e2c6e022ace5d201c0f04b19a13781fe09d,

тогда начальное заполнение генератора раундовых ключей (ГРК) есть

(X0, X1, …, Х6, K0).=

(2244а129, 22392521, 577cdc08, 1bca5e2c, 6е022асе, 5d201c0f, 04b19a13, 781fe09d)

Пусть параметр α в ГРК равен:

α=0000ffff

Пусть преобразование F в ГРК реализует циклический сдвиг на 1 шаг в сторону старших битов.

Раундовые ключи принимают следующие значения:

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

X=mi2222333344445555666677770000ffffeeeeddddccccbbbbaaaa99998888, тогда

0, Х1, Х2, Х3, Х4, Х5, Х6, Х7)=

(11112222, 33334444, 55556666, 77770000, ffffeeee, ddddcccc, bbbbaaaa, 99998888)

Результат шифрования 1 раунда

(33334444, 93e99e7f, 77770000, ffffeeee, 57467a38, bbbbaaaa, 99998888, b6357a91)

Результат шифрования 2 раунда

(93e99e7f, 12e98dea, ffffeeee, 57467a38, 0ea0b0af, 99998888, b6357a91, ddb00f4b)

Результат шифрования 3 раунда

(12e98dea, 0a60375b, 57467а38, 0ea0b0af, 3ce4d74c, b6357a91, ddb00f4b, b1231ce5)

Результат шифрования 4 раунда

(0a60375b, e34b7826, 0ea0b0af, 3ce4d74c, de21947d, ddb00f4b, b1231ce5, 397f3380)

Результат шифрования 5 раунда

(e34b7826, 7607e8f6, 3ce4d74c, de21947d, d584a5eb, b1231ce5, 397f3380, efa63040)

Результат шифрования 6 раунда

(7607e8f6, 62e612c3, de21947d, d584a5eb, 354e5b9d, 397f3380, efa63040, 2918ace4)

Результат шифрования 7 раунда

(62е612с3, 09763849, d584a5eb, 354e5b9d, 64bbac9d, efa63040, 2918ace4, 9d2fc115)

Результат шифрования 8 раунда

(09763849, be9f9ca8, 354e5b9d, 64bbac9d, f6d49384, 2918ace4, 9d2fc115, 7a1626fe)

Результат шифрования 9 раунда

(be9f9ca8, ec1694c1, 64bbac9d, f6d49384, ab3d9a55, 9d2fc115, 7a1626fe, c3ac9fa4)

Результат шифрования 10 раунда

(ec1694c1, 4ае46615, f6d49384, ab3d9a55, 86e400da, 7a1626fe, c3ac9fa4, 7175058e)

Результат шифрования 11 раунда

(4ae46615, 76927657, ab3d9a55, 86e400da, d6927289, c3ac9fa4, 7175058e, 73d8a8d6)

Результат шифрования 12 раунда

(76927657, 498b01ad, 86e400da, d6927289, ace6b435, 7175058e, 73d8a8d6, b3be55b0)

Результат шифрования 13 раунда

(498b01ad, 1f4f6ab4, d6927289, ace6b435, 411е6е6а, 73d8a8d6, b3be55b0, bb4f4314)

Результат шифрования 14 раунда

(1f4f6ab4, 89dd8e4f, ace6b435, 411e6e6a, 4f1fba02, b3be55b0, bb4f4314, b0c076f9)

Результат шифрования 15 раунда

(89dd8e4f, fd309c42, 411e6e6a, 4f1fba02, fb38c820, bb4f4314, b0c076f9, 24a7b80f)

Результат шифрования 16 раунда

(fd309c42, 54611af0, 4f1fba02, fb38c820, 5a263333, b0c076f9, 24a7b80f, 5881c0f4)

Результатом зашифрования является шифртекст:

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

Y=fd309c4254611af04f1fba02fb38c8205a263333b0c076f924a7b80f5881c0f4 тогда

(Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7)=

(fd309c42, 54611af0, 4f1fba02, fb38c820, 5a263333, b0c076f9, 24a7b80f, 5881c0f4)

Результат расшифрования 1 раунда

(89dd8e4f, fd309c42, 411e6e6a, 4f1fba02, fb38c820, bb4f4314, b0c076f9, 24a7b80f)

Результат расшифрования 2 раунда

(1f4f6ab4, 89dd8e4f, ace6b435, 411e6e6a, 4f1fba02, b3be55b0, bb4f4314, b0c076f9)

Результат расшифрования 3 раунда

(498b01ad, 1f4f6ab4, d6927289, ace6b435, 411e6e6a, 73d8a8d6, b3be55b0, bb4f4314)

Результат расшифрования 4 раунда

(76927657, 498b01ad, 86e400da, d6927289, ace6b435, 7175058e, 73d8a8d6, b3be55b0)

Результат расшифрования 5 раунда

(4ae46615, 76927657, ab3d9a55, 86e400da, d6927289, c3ac9fa4, 7175058e, 73d8a8d6)

Результат расшифрования 6 раунда

(ec1694c1, 4ae46615, f6d49384, ab3d9a55, 86e400da, 7a1626fe, c3ac9fa4, 7175058e)

Результат расшифрования 7 раунда

(be9f9ca8, ec1694c1, 64bbac9d, f6d49384, ab3d9a55, 9d2fc115, 7a1626fe, c3ac9fa4)

Результат расшифрования 8 раунда

(09763849, be9f9ca8, 354e5b9d, 64bbac9d, f6d49384, 2918ace4, 9d2fc115, 7a1626fe)

Результат расшифрования 9 раунда

(62е612с3, 09763849, d584a5eb, 354e5b9d, 64bbac9d, efa63040, 2918ace4, 9d2fc115)

Результат расшифрования 10 раунда

(7607e8f6, 62e612c3, de21947d, d584a5eb, 354e5b9d, 397f3380, efa63040, 2918ace4)

Результат расшифрования 11 раунда

(e34b7826, 7607e8f6, 3ce4d74c, de21947d, d584a5eb, b1231ce5, 397f3380, efa63040)

Результат расшифрования 12 раунда

(0a60375b, e34b7826, 0ea0b0af, 3ce4d74c, de21947d, ddb00f4b, b1231ce5, 397f3380)

Результат расшифрования 13 раунда

(12e98dea, 0a60375b, 57467а38, 0ea0b0af, 3ce4d74c, b6357a91, ddb00f4b, b1231ce5)

Результат расшифрования 14 раунда

(93e99e7f, 12e98dea, ffffeeee, 57467a38, 0ea0b0af, 99998888, b6357a91, ddb00f4b)

Результат расшифрования 15 раунда

(33334444, 93e99e7f, 77770000, ffffeeee, 57467а38, bbbbaaaa, 99998888, b6357a91)

Результат расшифрования 16 раунда

(11112222, 33334444, 55556666, 77770000, ffffeeee, ddddcccc, bbbbaaaa, 99998888)

Результатом расшифрования является открытый текст

Х=(X0, X1, …, Х7)=

11112222333344445555666677770000ffffeeeeddddccccbbbbaaaa99998888

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

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

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

Увеличение производительности шифрования достигается за счет увеличения размера обрабатываемого блока данных при относительно небольшом увеличении числа обратных связей регистра. Предлагаемое изобретение описывает новый способ блочного преобразования цифровых данных, который позволяет обрабатывать информационные блоки за меньшее число тактов на байт по сравнению с известными алгоритмами при использовании идентичных вычислителей. Производительность 16-раундового алгоритма шифрования в системах с 32-разрядной и 64-разрядной архитектурой операционной системы не превышает величины 13 тактов на байт на ПЭВМ с процессором Intel(R) Core(TM) i5-7600 с тактовой частотой 3,89 ГГц, что положительно характеризует эксплуатационные качества данного способа и представляет его перспективным для потенциального применения в программных и аппаратных средствах защиты информации.

Похожие патенты RU2796629C1

название год авторы номер документа
СПОСОБ КРИПТОГРАФИЧЕСКОГО ПРЕОБРАЗОВАНИЯ БЛОКОВ ЦИФРОВЫХ ДАННЫХ 2007
  • Амербаев Вильжан Мавлютинович
  • Романец Юрий Васильевич
  • Шарамок Александр Владимирович
RU2359415C2
СПОСОБ ИТЕРАТИВНОГО ШИФРОВАНИЯ БЛОКОВ ДВОИЧНЫХ ДАННЫХ 1999
  • Гуц Н.Д.
  • Левченко В.И.
  • Молдовян А.А.
  • Молдовян Н.А.
RU2144268C1
СПОСОБ ИТЕРАТИВНОГО КРИПТОГРАФИЧЕСКОГО ПРЕОБРАЗОВАНИЯ ДАННЫХ 2012
  • Иванов Михаил Александрович
  • Васильев Николай Петрович
  • Чугунков Илья Владимирович
RU2504911C1
СПОСОБ ИТЕРАТИВНОГО ШИФРОВАНИЯ БЛОКОВ ДАННЫХ 1999
  • Алексеев Л.Е.
  • Белкин Т.Г.
  • Молдовян А.А.
  • Молдовян Н.А.
RU2140714C1
ИТЕРАТИВНЫЙ СПОСОБ БЛОЧНОГО ШИФРОВАНИЯ 1999
  • Гуц Н.Д.
  • Изотов Б.В.
  • Молдовян А.А.
  • Молдовян Н.А.
RU2172075C1
СПОСОБ КРИПТОГРАФИЧЕСКОГО ПРЕОБРАЗОВАНИЯ ЦИФРОВЫХ ДАННЫХ 2003
  • Молдовян Александр Андреевич
  • Молдовян Николай Андреевич
RU2309549C2
СПОСОБ БЛОЧНОГО ИТЕРАТИВНОГО ШИФРОВАНИЯ ЦИФРОВЫХ ДАННЫХ 2000
  • Алексеев Л.Е.
  • Изотов Б.В.
  • Молдовян А.А.
  • Молдовян Н.А.
RU2184423C2
СПОСОБ БЛОЧНОГО КРИПТОГРАФИЧЕСКОГО ПРЕОБРАЗОВАНИЯ ДВОИЧНОЙ ИНФОРМАЦИИ 1998
  • Молдовян А.А.
  • Молдовян Н.А.
  • Молдовяну П.А.
RU2140713C1
СПОСОБ ФОРМИРОВАНИЯ ПЕРЕМЕННОГО КЛЮЧА ДЛЯ БЛОЧНОГО ШИФРОВАНИЯ И ПЕРЕДАЧИ ШИФРОВАННЫХ ДАННЫХ 2010
  • Кабак Илья Самуилович
  • Суханова Наталия Вячеславовна
  • Позднеев Борис Михайлович
RU2459367C2
ШИФРУЮЩИЙ БЛОК 1998
  • Зима В.М.
  • Молдовян Н.А.
  • Молдовян А.А.
  • Савлуков Н.В.
RU2140715C1

Иллюстрации к изобретению RU 2 796 629 C1

Реферат патента 2023 года СПОСОБ БЛОЧНОГО ПРЕОБРАЗОВАНИЯ ЦИФРОВЫХ ДАННЫХ НА ОСНОВЕ РЕГИСТРА СДВИГА ДЛИНЫ ВОСЕМЬ С 32-БИТОВЫМИ ЯЧЕЙКАМИ И С ТРЕМЯ ОБРАТНЫМИ СВЯЗЯМИ

Изобретение относится к области защиты информации.

Техническим результатом является снижение вычислительных затрат на выполнение процедуры обработки информационных блоков, повышение скорости шифрования и повышение стойкости к методам последовательного опробования, дифференциального криптоанализа и другим ассоциированным с ними методам. В генераторе раундовых ключей выполняется формирование раундовых ключей, и в каждом раунде используют уникальный раундовый ключ. Входные данные разбивают на 256-битовые блоки данных. Перед преобразованием каждый 256-битовый блок данных разбивают на восемь 32-битовых подблоков X0, X1, …, Х7, которые поочередно преобразуют в процессе выполнения не менее 16-ти раундов преобразования, при этом раунд преобразования состоит в следующем - по подблокам Х1, Х3, Х4, Х6, Х7 и трем раундовым подключам q1, q2, q3, определенным в соответствии с расписанием ключей, вычисляются три значения функций обратной связи f(S, q1), f(S, q2), f(S, q3), где S=X1+X3+X4+X6+X7 (mod 232), и полученные значения функций обратной связи складываются с подблоками Х2, Х5, Х0 с помощью операции поразрядного суммирования по модулю 2, причем формируют начальные значения f(S, q1), f(S, q2), f(S, q3) путем суммирования по модулю 232 значений подблоков Х1, Х3, Х4, Х6, Х7 и раундовых подключей q1, q2, q3, после чего с помощью регистров циклического сдвига выполняется операция циклического сдвига на девятнадцать позиций в сторону старших разрядов, после каждого раунда шифрования подблоки преобразуют, циклически сдвигая влево. 4 ил., 2 табл.

Формула изобретения RU 2 796 629 C1

Способ блочного преобразования цифровых данных с помощью вариации обобщенной сети Фейстеля на основе регистра сдвига длины восемь с 32-битовыми заполнениями ячеек и с тремя обратными связями, заключающийся в том, что в генераторе раундовых ключей выполняется формирование раундовых ключей из основного ключа шифрования длины 256 бит с помощью комбинации линейного конгруэнтного генератора и модифицированного аддитивного генератора, и использовании в каждом раунде уникального раундового ключа, входные данные, представленные в двоичном виде, разбивают на 256-битовые блоки данных, при этом если размер последнего блока меньше 256 битов и длина сообщения не кратна числу 256, то необходимо применить процедуру дополнения сообщения битами 1,0, …, 0 до длины, кратной числу 256, перед преобразованием каждый 256-битовый блок данных разбивают на восемь 32-битовых подблоков X0, X1, …, Х7, которые с помощью регистров центрального процессора компьютера с 32-разрядной или 64-разрядной архитектурой операционной системы поочередно преобразуют в процессе выполнения не менее 16-ти раундов преобразования, при этом один раунд преобразования состоит в следующем - по подблокам Х1, Х3, Х4, Х6, Х7 и трем раундовым подключам q1, q2, q3, определенным в соответствии с расписанием ключей, вычисляются три 32-битовых значения функций обратной связи f(S, q1), f(S, q2), f(S, q3), где S=X1+X3+X4+X6+X7 (mod 232), и полученные значения функций обратной связи складываются с подблоками Х2, Х5, Х0 с помощью операции поразрядного суммирования по модулю 2, причем для вычисления функции обратной связи при помощи шагов преобразования формируют начальные значения f(S, q1), f(S, q2), f(S, q3) путем суммирования по модулю 232 значений подблоков Х1, Х3, Х4, Х6, Х7 и раундовых подключей q1, q2, q3, после чего полученные двоичные строки преобразуют в ячейках памяти компьютера с помощью нелинейных биективных преобразований, а затем с помощью регистров циклического сдвига выполняется операция циклического сдвига на девятнадцать позиций в сторону старших разрядов, после каждого раунда шифрования подблоки преобразуют в ячейках памяти компьютера, циклически сдвигая влево,

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

Документы, цитированные в отчете о поиске Патент 2023 года RU2796629C1

СПОСОБ КРИПТОГРАФИЧЕСКОГО ПРЕОБРАЗОВАНИЯ БЛОКОВ ЦИФРОВЫХ ДАННЫХ 2007
  • Амербаев Вильжан Мавлютинович
  • Романец Юрий Васильевич
  • Шарамок Александр Владимирович
RU2359415C2
УСТРОЙСТВО ШИФРОВАНИЯ ДАННЫХ ПО СТАНДАРТАМ ГОСТ 28147-89 И AES 2012
  • Архипкин Владимир Яковлевич
  • Иванов Александр Викторович
  • Ерохин Владимир Васильевич
RU2494471C1
УСТРОЙСТВО ШИФРОВАНИЯ ДАННЫХ ПО СТАНДАРТУ ГОСТ Р 34.12-2015 И АЛГОРИТМАМ "МАГМА" И AES 2017
RU2649429C1
УСТРОЙСТВО ОБРАБОТКИ ШИФРОВАНИЯ/ДЕШИФРОВАНИЯ, СПОСОБ ОБРАБОТКИ ШИФРОВАНИЯ/ДЕШИФРОВАНИЯ, УСТРОЙСТВО ОБРАБОТКИ ИНФОРМАЦИИ И КОМПЬЮТЕРНАЯ ПРОГРАММА 2007
  • Сираи Таизо
  • Сибутани Кёдзи
  • Акисито Тору
  • Мориаи Сихо
RU2502201C2
УСТРОЙСТВО ОБРАБОТКИ ШИФРОВАНИЯ, СПОСОБ ОБРАБОТКИ ШИФРОВАНИЯ И КОМПЬЮТЕРНАЯ ПРОГРАММА 2007
  • Сираи Таизо
  • Сибутани Кёдзи
  • Акисито Тору
  • Мориаи Сихо
RU2449482C2
EP 1098470 A1, 09.05.2001
US 6185679 B2, 06.02.2001
US 20120269342 A1, 25.10.2012.

RU 2 796 629 C1

Авторы

Задорожный Дмитрий Игоревич

Коренева Алиса Михайловна

Фомичев Владимир Михайлович

Даты

2023-05-29Публикация

2022-04-25Подача