RU2683689C1 - Способ нелинейного трехмерного многораундового преобразования данных - Google Patents

Способ нелинейного трехмерного многораундового преобразования данных Download PDF

Info

Publication number
RU2683689C1
RU2683689C1 RU2017142328A RU2017142328A RU2683689C1 RU 2683689 C1 RU2683689 C1 RU 2683689C1 RU 2017142328 A RU2017142328 A RU 2017142328A RU 2017142328 A RU2017142328 A RU 2017142328A RU 2683689 C1 RU2683689 C1 RU 2683689C1
Authority
RU
Russia
Prior art keywords
round
layer
layers
block
mixlayer
Prior art date
Application number
RU2017142328A
Other languages
English (en)
Inventor
Михаил Александрович Иванов
Андрей Викторович Стариковский
Original Assignee
федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) filed Critical федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ)
Priority to RU2017142328A priority Critical patent/RU2683689C1/ru
Application granted granted Critical
Publication of RU2683689C1 publication Critical patent/RU2683689C1/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • H04L9/0668Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

Изобретение относится к области вычислительной техники. Техническим результатом является повышение криптостойкости и быстродействия нелинейного многораундового преобразования данных. Раскрыт способ нелинейного трехмерного многораундового преобразования данных, включающий представление входного, выходного блоков данных, всех промежуточных результатов преобразования в виде кубического массива; формирование из исходного ключа последовательности раундовых ключей K, K, K; введение понятия слоя (Layer); формирование по входному блоку М разрядностью 512 бит блока данных S той же разрядности в соответствии с выражением S:=М, после чего выполнение трех раундов преобразования соответственно вдоль осей x, y, z; деление каждого i-го раундового ключа K(i=1, 2, 3) на раундовые подключи; стохастическое преобразование (MixLayer) каждого слоя вдоль оси x, объединение преобразованных слоев в преобразованный блок S в первом раунде; стохастическое преобразование (MixLayer) каждого слоя вдоль оси y, объединение преобразованных слоев в преобразованный блок S во втором раунде; стохастическое преобразование (MixLayer) каждого слоя вдоль оси z, объединение преобразованных слоев в преобразованный блок S в третьем раунде; при этом все блоки данных представляются в виде кубического массива бит 8×8×8; операции преобразования (перемешивания) слоя (MixLayer) реализуются в виде n итераций, при этом число итераций n должно обеспечивать полное рассеивание и перемешивание информации; при выполнении преобразований первого раунда блок данных S делится на восемь слоев S, S, …, Sвдоль оси x; каждый слой S, k=0, 1, …, 7, условно представляется в виде квадратного массива битов 8×8, после чего подвергается преобразованию MixLayer, затем преобразованные слои объединяются в преобразованный блок S; при выполнении преобразований второго раунда блок данных S делится на восемь слоев S, S, …, Sвдоль оси y; каждый слой S, k=0, 1, …, 7, условно представляется в виде квадратного массива битов 8×8, после чего подвергается преобразованию MixLayer, затем преобразованные слои объединяются в преобразованный блок S; при выполнении преобразований третьего раунда блок данных S делится на восемь слоев S, S, …, Sвдоль оси z, каждый слой S, k=0, 1, …, 7, условно представляется в виде квадратного массива битов 8×8, после чего подвергается преобразованию MixLayer, затем преобразованные слои объединяются в преобразованный блок S; выбирается секретная таблица замен размерностью 4×8×256 (в случае использования четырех 8-разрядных S-блоков) или 8×4×16 (в случае использования восьми 4-разрядных 5-блоков); каждый i-й раундовый ключ K(i=1, 2, 3) делится на восемь раундовых подключей K, K, …, K, разрядностью L×n бит каждый; где K=K|| K|| … || K, |K|=L, i=1, 2, 3, k=0, 1, …, 7; L- разрядность раундового ключа исходного базового стохастического преобразования); каждый k-й подключ Kиспользуется для преобразования соответствующего k-го слоя в i-м раунде (слоя S); каждый j-й подключ Kиспользуется в j-й итерации (j=0, 1, …, (n-1)) преобразования соответствующего k-го слоя в i-м раунде. 3 ил.

Description

Изобретение относится к вычислительной технике и электросвязи, предназначено для решения задач защиты компьютерной информации. Наиболее предпочтительной областью использования изобретения является построение генераторов псевдослучайных чисел (ГПСЧ), а также криптографических примитивов хеширования, блочного и поточного шифрования.
В совокупности признаков заявленного изобретения используются следующие термины:
Стохастическое преобразование (Stochastic Transformation) - непредсказуемое преобразование данных; примером стохастического преобразования может являться криптографическое преобразование;
Генератор псевдослучайных чисел (Pseudo-Random Number Generator) - генератор последовательности чисел, статистически не отличимой от последовательности случайных чисел с равномерным законом распределения; наиболее жесткие требования предъявляются к ГПСЧ, ориентированным на решение задач криптографической защиты информации;
Ключ (Key) - секретный параметр стохастического преобразования, представляет собой двоичную информацию, известную только законному пользователю;
Подключ (SubKey) - часть ключа;
Раунд (Round) - последовательность шагов, образующих одну итерацию итеративного (многораундового) преобразования;
Раундовый ключ (RoundKey) - ключевая информация, использующаяся при выполнении одного раунда преобразования, существует два способа формирования раундовых ключей: раундовый ключ может являться частью секретного ключа (пример - Российский стандарт криптозащиты ГОСТ 28147-89), последовательность раундовых ключей может получаться в результате работы процедуры разворачивания исходного ключа (пример - американский стандарт криптозащиты AES);
Раундовый подключ (SubRoundKey) - часть раундового ключа;
Двоичный вектор - некоторая последовательность нулевых и единичных бит, например (01101010), двоичный вектор разрядности n может быть интерпретирован как элемент конечного поля GF(2n);
Замена (Substitution) - операция, выполняемая над двоичным вектором i∈GF(2n), при этом результат операции равен содержимому ячейки с индексом i таблицы замен размерности n×2n;
Перемешивание (Mix) - операция, выполняемая над двоичным вектором разрядности n, результат разрядности n которой зависит от всех входных бит и от их взаимного расположения.
Базовое стохастическое преобразование - n раундов произвольного блочного шифра, работающего с 64-разрядными блоками данных (примеры таких шифров - DES, ГОСТ 26147-89, Blowfish, Магма (ГОСТ Р 34.12-2015)). Величина n выбирается таким образом, чтобы соответствующее число раундов шифрования обеспечивали полное рассеивание и перемешивание информации (например, для ГОСТ 26147-89 n≥6).
Важнейшим элементом любой системы защиты информации (СЗИ) являются ГПСЧ. Функциями ГПСЧ СЗИ являются:
- генерация ключевой информации и паролей пользователей;
- формирование гаммы при поточном шифровании данных;
- формирование случайных запросов при аутентификации субъектов информационного взаимодействия;
- внесение неопределенности в работу средств и объектов защиты и др.
Непредсказуемые ГПСЧ являются основой стохастических методов, с использованием которых решаются такие задачи, как обеспечение секретности и конфиденциальности информации, подтверждение подлинности субъектов информационного взаимодействия, контроль хода выполнения программ, обеспечение целостности объектов (сообщений, массивов данных) информационного взаимодействия. Стохастическими являются все протоколы защищенного взаимодействия удаленных абонентов. К ГПСЧ, ориентированным на решение задач защиты информации, предъявляются наиболее жесткие требования по непредсказуемости, статистической безопасности и периоду формируемых последовательностей.
Основной проблемой при проектировании ГПСЧ является трудно разрешимое противоречие между качеством формируемых псевдослучайных последовательностей, с одной стороны, и эффективностью программной и аппаратной реализации, определяющей быстродействие генераторов, с другой стороны. Наиболее рациональным решением с точки зрения этих критериев следует признать ГПСЧ, нелинейные функции обратной связи или выхода которых суть функции шифрования итерационных блочных шифров.
Одним из путей решения проблемы построения качественного генератора является использование гибридных вычислительных технологий при программной реализации ГПСЧ. Наиболее подходящей для реализации на GPU являются архитектуры Квадрат и Куб.
Известен способ нелинейного многораундового преобразования данных, специфицированный в ГОСТ 28147-89, который включает
разбиение 256-разрядного ключа на восемь 32-разрядных подключей;
выполнение 32-раундового преобразования;
при этом каждый i-й раунд, i=1, 2, …, 31, выполняется следующим образом:
происходит разбиение 64-разрядного входного блока на старшую L (Left) и младшую R (Right) половины; новые значения L и R вычисляются следующим образом: L=R, R=L XOR F(RKi R), где RKi - подключ i-го раунда, a F - раундовая функция;
32-й раунд выполняется следующим образом:
происходит разбиение 64-разрядного входного блока на старшую L и младшую R половины; новые значения L и R вычисляются следующим образом: L=L XOR F(RK32, R), R=R, где RK32 - подключ 32-го раунда;
раундовая функция включает в себя следующие преобразования:
сложение 32-разрядного входного блока с раундовым подключом по модулю 232; замену с использованием восьми 4-разрядных элементов замены, циклический сдвиг на 11 разрядов влево.
Недостатком данного способа является низкая криптостойкость и низкое быстродействие.
Наиболее близким по своей технической сущности к заявленному способу нелинейного многораундового преобразования данных является принятый за прототип способ трехмерного преобразования данных DOZEN (Патент РФ на изобретение №2503994). Этот способ включает
представление входного, выходного блоков данных, всех промежуточных результатов преобразования в виде кубического массива байтов 4×4×4;
введение понятие слоя (Layer) - квадратного массива байтов 4×4;
формирование из исходного ключа последовательности раундовых ключей K0, K1, K2, K3 разрядностью 512 бит каждый и секретной таблицы замен размерностью 8×256;
формирование по входному блоку М разрядностью 512 бит блок данных S той же разрядности в соответствии с выражением S:=М, после чего выполняется начальное поразрядное сложение по модулю два (XOR) блока S и раундового ключа (AddRoundKey) K0 в соответствии с выражением S:=S ⊕ K0, после чего выполняются 3 раунда преобразования вдоль осей x, у, z;
каждый i-й раундовый ключ Ki (i=1, 2, 3) делится на четыре раундовых подключа Ki0, Ki1, Ki2, Ki3 разрядностью 128 бит каждый;
раундовые подключи Ki0, Ki1, Ki2, Ki3, представляются в виде квадратного массива байтов 4×4;
при выполнении преобразований первого раунда блок данных S делится на 4 слоя Lx0, Lx1, Lx2, Lx3 вдоль оси x; каждый слой Lxk, k=0, 1, 2, 3, представляется в виде квадратного массива байтов 4×4, после чего подвергается двумерному преобразованию T_Layer, после чего преобразованные слои объединяются в преобразованный блок S;
при выполнении преобразований второго раунда блок данных S делится на 4 слоя Ly0, Ly1, Ly2, Ly3 вдоль оси x; каждый слой Lyk, k=0, 1, 2, 3, представляется в виде квадратного массива байтов 4×4, после чего подвергается двумерному преобразованию T_Layer, после чего преобразованные слои объединяются в преобразованный блок S;
при выполнении преобразований третьего раунда блок данных S делится на 4 слоя Lz0, Lz1, Lz2, Lz3 вдоль оси x, каждый слой, k=0, 1, 2, 3, представляется в виде квадратного массива байтов 4×4, после чего подвергается двумерному преобразованию T_Layer, после чего преобразованные слои объединяются в преобразованный блок S.
В состав операции двумерного преобразования T_Layer слоя L включаются четыре последовательно выполняемых шага - замены байтов (SubBytes), перемешивания строк (MixRows), перемешивания столбцов (MixColumns) и сложения (XOR) с соответствующим раундовым подключом (AddRoundSubKey) Kik;
Операция замены байтов SubBytes выполняется следующим образом:
- слой L разбивается на 16 байтов, каждый байт заменяется байтом из фиксированной таблицы замен размерностью 8×256;
- выбранные из таблицы замен 16 байтов объединяются в преобразованный слой L;
операция перемешивания строк MixRows выполняется следующим образом:
- слой L разбивается на 4 строки;
- байты каждой k-й строки (k=0, 1, 2, 3) при выполнении преобразования рассматриваются как коэффициенты многочлена А(x) степени 3 над полем GF(28), суть операции перемешивания строки - умножение по модулю х4+1 многочлена А(x) на многочлен 03х32+х+02;
- перемешанные строки объединяются в преобразованный слой L;
операция перемешивания столбцов MixColumns выполняется следующим образом:
- слой L разбивается на 4 столбца;
- байты каждого k-го столбца (k=0, 1, 2, 3) при выполнении преобразования рассматриваются как коэффициенты многочлена А(x) степени 3 над полем GF(28), суть операции перемешивания столбца - умножение по модулю х4+1 многочлена А(x) на многочлен 03х32+х+02;
- перемешанные столбцы объединяются в преобразованный слой L.
Недостатком известного решения является низкое быстродействие и назкая криптостойкость. К причинам, препятствующим достижению указанного ниже результата является недостаточно высокая степень параллелизма на уровне элементарных операций и простая алгебраическая структура преобразования.
В основе изобретения лежит задача построения нелинейного многораундового преобразования, имеющего повышенную криптостойкость за счет использование хорошо зарекомендовавших себя операций, реализованных в 64-разрядных блочных шифрах (самым простым из которых является вышеупомянутый шифр, специфицированный в ГОСТ 28147-89), и в то же время обладающего максимальной степенью параллелизма на уровне элементарных операций за счет перехода от одномерной архитектуры сразу к 3D.
Технический результат достигается тем, что в многораундовом трехмерном преобразовании, включающем
представление входного, выходного блоков данных, всех промежуточных результатов преобразования в виде кубического массива;
формирование из исходного ключа последовательности раундовых ключей K1 K2, K3;
введение понятие слоя (Layer);
формирование по входному блоку М разрядностью 512 бит блока данных S той же разрядности в соответствии с выражением S:=М, после чего выполнение трех раундов преобразования соответственно вдоль осей x, у, z;
деление каждого i-го раундового ключа Ki (i=1, 2, 3) на раундовые подключи;
стохастическое преобразование (MixLayer) каждого слоя вдоль оси х, объединение преобразованных слоев в преобразованный блок S в первом раунде;
стохастическое преобразование (MixLayer) каждого слоя вдоль оси у, объединение преобразованных слоев в преобразованный блок S во втором раунде;
стохастическое преобразование (MixLayer) каждого слоя вдоль оси z, объединение преобразованных слоев в преобразованный блок S в третьем раунде;
дополнительно
все блоки данных представляются в виде кубического массива бит 8×8×8;
операции преобразования (перемешивания) слоя (MixLayer) реализуются в виде n итераций, при этом число итераций n должно обеспечивать полное рассеивание и перемешивание информации;
при выполнении преобразований первого раунда блок данных S делится на восемь слоев Sx0, Sx1, …, Sx7 вдоль оси x; каждый слой Sxk, k=0, 1, …, 7, условно представляется в виде квадратного массива битов 8×8, после чего подвергается преобразованию MixLayer, затем преобразованные слои объединяются в преобразованный блок S;
при выполнении преобразований второго раунда блок данных S делится на восемь слоев Sy0, Sy1, …, Sy7 вдоль оси у; каждый слой Syk, k=0, 1, …, 7, условно представляется в виде квадратного массива битов 8×8, после чего подвергается преобразованию MixLayer, затем преобразованные слои объединяются в преобразованный блок S;
при выполнении преобразований третьего раунда блок данных S делится на восемь слоев Sz0, Sz1, …, Sz7 вдоль оси z, каждый слой Szk, k=0, 1, …, 7, условно представляется в виде квадратного массива битов 8×8, после чего подвергается преобразованию MixLayer, затем преобразованные слои объединяются в преобразованный блок S;
выбирается секретная таблица замен размерностью 4×8×256 (в случае использования четырех 8-разрядных S-блоков) или 8×4×16 (в случае использования восьми 4-разрядных S-блоков);
каждый i-й раундовый ключ Ki (i=1, 2, 3) делится на восемь раундовых подключей Ki0, Ki1, …, Ki7 разрядностью LRK × n бит каждый; где
Figure 00000001
каждый k-й подключ Kik используется для преобразования соответствующего k-го слоя в i-м раунде (слоя Sik);
каждый j-й подключ Kikj - используется при выполнении j-й итерации (j=0, 1, …, (n-1)) преобразования соответствующего k-го слоя в i-м раунде.
LRK - разрядность раундового ключа исходного 64-разрядного блочного шифра (разрядность раундового ключа исходного базового преобразования). Например, при использовании ГОСТ 28147-89, LRK=32.
Каждая из n итераций преобразования MixLayer может являться раундом ГОСТ 28147-89, предполагающим деление входного 64-разрядного блока данных на левую L (Left) и правую R (Right) половины, последовательное выполнение операций Т=(R+SK)mod 232, Т=S(T), Т=ROL11 (T), Т=Т XOR L, L=R, R=Т, объединение новых значений L и R в преобразованный 64-разрядный блок данных, где Т (Temporary) - временная переменная, SK (SubKey) - 32-разрядный подключ, S() - операция замены (Substitution), ROLm() - операция циклического сдвига влево (Rotate Left) на m разрядов, XOR - операция поразрядного сложения по модулю два.
Суть предлагаемого способа иллюстрируют фиг. 1-3.
На фиг. 1 показаны блок 1 данных (иначе говоря, формат состояния) и принцип разделения блока 1 данных на слои вдоль оси x, у, z и отдельные слои 2 Sxk, 3 Syk, 4 Szk блока данных, где S1k=Sxk, S2k=Syk, S3k=Szk.
На фиг. 2 показан пример реализации преобразования перемешивания слоя MixLayer (базового стохастического преобразования) на основе преобразований ГОСТ 28147-89. На фиг. 2 показаны входной 5 слой блока данных, выходной (преобразованный) 6 слой блока данных; раундовые подключи Kik0, Kik1, …, Kik(n-1) (соответственно 7ik0, 7ik1, …, 7ik(n-1)); i=1, 2, 3, k=0, 1, …, 7; раунды (итерации) 81 82, …, 8n базового стохастического преобразования слоя; n (по числу итераций базового преобразования) блоков 9 выполнения операции XOR, n блоков 10 циклического сдвига на 11 разрядов влево, n блоков 11 замены, n блоков 12 сложения по модулю 232, а, также условные графические обозначения блоков 9-12.
На фиг. 3 показана последовательность трехмерного преобразования на основе ГОСТ 28147-89 (далее 3DGOST). Для ГОСТ 28147-89 четное значение n должно удовлетворять условию n≥6. На фиг. 3 показаны исходный 512-разрядный блок 13 данных М; преобразованный 512-разрядный блок 14 данных С=3DGOST(M); ключ 15; раундовые ключи 71, 72, 73 (K1 K2, K3), раундовые подключи 710, 711, …, 717 первого раунда (соответственно K10, K11, …, K17), раундовые подключи 720, 721, …, 727 второго раунда (соответственно K20, K21, …, K27), раундовые подключи 730, 731, …, 737 третьего раунда (соответственно K30, K31, …, K37); операции 16 перешивания слоев Mixlayer (базовые стохастическое преобразования) - операции 16х0, 16х1, …, 16x7 перемешивания слоев первого раунда (Mixlay-ersX), операции 16y0, 16y1, …, 16у7 перемешивания слоев второго раунда (MixlayersY), операции 16z0, 16z1, …, 16z7 перемешивания слоев третьего раунда (MixLayersZ); раундовые подключи 7ik0, 7ik1, …, 7ik(n-1) (соответственно Kik0, Kik1, …, Kik(n-1)), используемые при выполнении отдельных итераций 18 операции 16 MixLayer; операция 17 разворачивания ключа (Key Expansion); раунды (итерации) 181 182, …, 18n базового стохастического преобразования.
Рассмотрим предлагаемое трехмерное многораундовое преобразование с архитектурой Куб, которое может использоваться в качестве нелинейной функции ГПСЧ (функции выхода в случае использования режима CTR или функции обратной связи в случае использования режима OFB).
Основные идеи, лежащие в основе предлагаемого способа:
- представление входных и выходных блоков данных, всех промежуточных результатов преобразований и раундовых ключей в виде кубического массива бит 8×8×8 (фиг. 1);
- определение понятия слоя (Layer) - квадратного массива битов 8×8 (фиг. 1);
- восьмикратное (по числу слоев) преобразование блока данных по слоям последовательно вдоль осей x, у и z (фиг. 1, 3);
- реализация каждой операции перемешивания слоя (MixLayer) на основе базового стохастического преобразования, в качестве которого используется n раундов 64-разрядного блочного шифра (фиг. 3). Последовательность преобразования блока 13 входных данных М размером 512 бит (8×8×8), имеющего структуру, показанную на фиг. 1:
1) первый раунд: разбиение получившегося блока данных на слои (Layers) 2 (Sx0, Sx1, …, Sx7) вдоль оси x (фиг. 1); преобразование перемешивания слоев (MixLayersX) Sx0, Sx1, …, Sx7 (соответственно операции 16x0, 16х1, …, 16х7) путем выполнения для каждого слоя 2 базового стохастического преобразования (фиг. 2, 3);
2) второй раунд: разбиение получившегося блока данных на слои (Layers) 3 (Sy0, Sy1, …, Sy7) вдоль оси у (фиг. 1); преобразование перемешивания слоев (MixLayersX) Sy0, Sy1, …, Sy7 (соответственно операции 16y0, 16у1, …, 16y7) путем выполнения для каждого слоя 3 базового стохастического преобразования (фиг. 2, 3);
3) третий раунд: разбиение получившегося блока данных на слои (Layers) 4 (Sz0, Szl, …, Sz7) вдоль оси z (фиг. 1); преобразование перемешивания слоев (MixLayersX) Sz0, Sz1, …, Sz7 (соответственно операции 16z0, 16z1, …, 16z7) путем выполнения для каждого слоя 4 базового стохастического преобразования (фиг. 2, 3).
Раундовые ключи 71 72, 73 формируются с помощью процедуры 17 разворачивания исходного ключа (Key Expansion). Раундовые подключи 710 … 737 первого уровня (на фиг. 3) являются частью соответствующих раундовых ключей. Раундовые подключи 710 … 727 являются частью ключа 71 раундовые подключи 720 … 727 являются частью ключа 72, раундовые подключи 730 … 737 являются частью ключа 73.
Figure 00000002
Figure 00000003
>
Figure 00000004
где
Figure 00000005
- операция конкатенации.
Раундовые подключи 7100 … 710(n-1) являются частью ключа 710, раундовые подключи 7110 … 711(n-1) являются частью ключа 711, … раундовые подключи 7370 … 737(n-1) являются частью ключа 737 (фиг. 3).
Таким образом, последовательность трехмерного нелинейного много-раундового преобразования состоит из 24-х последовательно выполняемых операций MixLayer (фиг. 3):
- Преобразование 16x0 слоя 2x0 (MixLayer Sx0);
- Преобразование 16x1 слоя 2x1 (MixLayer Sx1);
- …
- Преобразование 16x7 слоя 2x7 (MixLayer Sx7);
- Преобразование 16y0 слоя 3у0 (MixLayer Sy0);
- Преобразование 16y1 слоя 3y1 (MixLayer Sy1);
- …
- Преобразование 16y7 слоя 3y7 (MixLayer Sy7);
- Преобразование 16z0 слоя 4z0 (MixLayer Sz0);
- Преобразование 16z1 слоя 4z1 (MixLayer Sz1);
- …
- Преобразование 16z7 слоя 4z7 (MixLayer Sz7).
В зависимости от шифра, на основе которого строится базовое стохастическое преобразование (БСП), возможны три ситуации:
1) Если БСП начинается с фиксированной, не зависящей от ключа, операции, то до начального шага преобразования (как это происходит в прототипе), выполняется дополнительная операция сложения (XOR) состояния с дополнительным раундовым ключом (операция "отбеливания", т.е. внесения неопределенности в результат последующих преобразований);
2) Если БСП заканчивается фиксированной, не зависящей от ключа, операции, то после последнего шага преобразования выполняется дополнительная операция сложения (XOR) состояния с дополнительным раундовым ключом;
3) Если в начале и в конце БСП присутствуют операции, зависящие от ключа, дополнительная операция сложения не требуется.
Учитывая, что в прототипе слоев в каждом раунде четыре, а в предлагаемом - восемь, а разрядности слоев соответственно находятся в соотношении 128/64, а значит операция MixLayer в прототипе сложнее, повышается быстродействие. Кроме того, особенностью предлагаемого решения является более высокая степень параллелизма на уровне элементарных преобразований за счет возможности параллельного выполнения операций MixLayer вдоль каждой из осей. Очевидно, что в пределах каждого раунда преобразования все восемь слоев могут быть обработаны параллельно, поэтому применение технологии CUDA позволит существенно упростить процесс разработки ПО.
Учитывая, что базовое стохастическое преобразование имеет разрядность 64, а результирующее - разрядность 64×8=512, повышается криптойкость результирующего преобразования, так как достигается 512-битовый уровень безопасности. Иначе говоря, предлагаемое решение позволит продлить жизнь многим качественным 64-разрядным криптоалгоритмам, не "дотягивающим" до требуемого сейчас 256-битного уровня безопасности для блочных шифров и 512-битного уровня безопасности для криптографических хеш-функций.

Claims (19)

  1. Способ нелинейного трехмерного многораундового преобразования
  2. данных, включающий представление входного, выходного блоков данных, всех промежуточных результатов преобразования в виде кубического массива;
  3. формирование из исходного ключа последовательности раундовых ключей K1, K2, K3;
  4. введение понятия слоя (Layer);
  5. формирование по входному блоку М разрядностью 512 бит блока данных S той же разрядности в соответствии с выражением S:=М, после чего выполнение трех раундов преобразования соответственно вдоль осей x, y, z;
  6. деление каждого i-го раундового ключа Ki (i=1, 2, 3) на раундовые подключи;
  7. стохастическое преобразование (MixLayer) каждого слоя вдоль оси x, объединение преобразованных слоев в преобразованный блок S в первом раунде;
  8. стохастическое преобразование (MixLayer) каждого слоя вдоль оси y, объединение преобразованных слоев в преобразованный блок S во втором раунде;
  9. стохастическое преобразование (MixLayer) каждого слоя вдоль оси z, объединение преобразованных слоев в преобразованный блок S в третьем раунде;
  10. отличающийся тем, что
  11. все блоки данных представляются в виде кубического массива бит 8×8×8;
  12. операции преобразования (перемешивания) слоя (MixLayer) реализуются в виде n итераций, при этом число итераций n должно обеспечивать полное рассеивание и перемешивание информации;
  13. при выполнении преобразований первого раунда блок данных S делится на восемь слоев Sx0, Sx1, …, Sx7 вдоль оси x; каждый слой Sxk, k=0, 1, …, 7, условно представляется в виде квадратного массива битов 8×8, после чего подвергается преобразованию MixLayer, затем преобразованные слои объединяются в преобразованный блок S;
  14. при выполнении преобразований второго раунда блок данных S делится на восемь слоев Sy0, Sy1, …, Sy7 вдоль оси y; каждый слой Syk, k=0, 1, …, 7, условно представляется в виде квадратного массива битов 8×8, после чего подвергается преобразованию MixLayer, затем преобразованные слои объединяются в преобразованный блок S;
  15. при выполнении преобразований третьего раунда блок данных S делится на восемь слоев Sz0, Sz1, …, Sz7 вдоль оси z, каждый слой Szk, k=0, 1, …, 7, условно представляется в виде квадратного массива битов 8×8, после чего подвергается преобразованию MixLayer, затем преобразованные слои объединяются в преобразованный блок S;
  16. выбирается секретная таблица замен размерностью 4×8×256 (в случае использования четырех 8-разрядных S-блоков) или 8×4×16 (в случае использования восьми 4-разрядных 5-блоков);
  17. каждый i-й раундовый ключ Ki (i=1, 2, 3) делится на восемь раундовых подключей Ki0, Ki1, …, Ki7, разрядностью LRK×n бит каждый; где Kik=Kik0 || Kik1 || … || Kik(n-1), |Kikj|=LRK, i=1, 2, 3, k=0, 1, …, 7; LRK - разрядность раундового ключа исходного базового стохастического преобразования);
  18. каждый k-й подключ Kik используется для преобразования соответствующего k-го слоя в i-м раунде (слоя Sik);
  19. каждый j-й подключ Kikj используется в j-й итерации (j=0, 1, …, (n-1)) преобразования соответствующего k-го слоя в i-м раунде.
RU2017142328A 2017-12-05 2017-12-05 Способ нелинейного трехмерного многораундового преобразования данных RU2683689C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2017142328A RU2683689C1 (ru) 2017-12-05 2017-12-05 Способ нелинейного трехмерного многораундового преобразования данных

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2017142328A RU2683689C1 (ru) 2017-12-05 2017-12-05 Способ нелинейного трехмерного многораундового преобразования данных

Publications (1)

Publication Number Publication Date
RU2683689C1 true RU2683689C1 (ru) 2019-04-01

Family

ID=66089666

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2017142328A RU2683689C1 (ru) 2017-12-05 2017-12-05 Способ нелинейного трехмерного многораундового преобразования данных

Country Status (1)

Country Link
RU (1) RU2683689C1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2747517C1 (ru) * 2020-03-05 2021-05-06 федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ хеширования информации

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838794A (en) * 1996-01-11 1998-11-17 Teledyne Electronic Technologies Method and apparatus for inter-round mixing in iterated block substitution systems
RU2503994C1 (ru) * 2012-07-17 2014-01-10 федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ нелинейного трехмерного многораундового преобразования данных dozen
RU2504911C1 (ru) * 2012-07-17 2014-01-20 федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ итеративного криптографического преобразования данных
RU2519004C2 (ru) * 2012-07-17 2014-06-10 федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ трехмерного нелинейного преобразования замены

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838794A (en) * 1996-01-11 1998-11-17 Teledyne Electronic Technologies Method and apparatus for inter-round mixing in iterated block substitution systems
RU2503994C1 (ru) * 2012-07-17 2014-01-10 федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ нелинейного трехмерного многораундового преобразования данных dozen
RU2504911C1 (ru) * 2012-07-17 2014-01-20 федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ итеративного криптографического преобразования данных
RU2519004C2 (ru) * 2012-07-17 2014-06-10 федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ трехмерного нелинейного преобразования замены

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2747517C1 (ru) * 2020-03-05 2021-05-06 федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ хеширования информации

Similar Documents

Publication Publication Date Title
KR101328618B1 (ko) 보안성을 향상시키는 순열 데이터 변환
Liu et al. Cryptanalysis and improvement in a plaintext-related image encryption scheme based on hyper chaos
RU2591015C1 (ru) Способ нелинейного трехмерного многораундового преобразования данных rdozen
JP2017107195A (ja) ハードウェア支援型の擬似乱数の高速生成
CN117411618B (zh) 应用于国际赛事的密钥生成方法、装置及加密方法
CN109861809B (zh) 一种实用化的分组随机加解密方法
CN112199696B (zh) 基于白盒分组密码的加解密方法
Agrawal et al. Elliptic curve cryptography with hill cipher generation for secure text cryptosystem
RU2504911C1 (ru) Способ итеративного криптографического преобразования данных
Ahmed et al. Strongest AES with S-Boxes bank and dynamic key MDS matrix (SDK-AES)
RU2459275C1 (ru) Способ блочного шифрования сообщения м, представленного в двоичном виде
Joshy et al. Text to image encryption technique using RGB substitution and AES
Gabr et al. A combination of decimal-and bit-level secure multimedia transmission
CN109714154B (zh) 一种代码体积困难白盒安全模型下的白盒密码算法的实现方法
RU2683689C1 (ru) Способ нелинейного трехмерного многораундового преобразования данных
CN116796345A (zh) 加解密方法、装置、设备及存储介质
CN104954118B (zh) 一种基于向量网络编码和des的拟态加密方法及系统
RU2503994C1 (ru) Способ нелинейного трехмерного многораундового преобразования данных dozen
CN107493164B (zh) 一种基于混沌系统的des加密方法和系统
CN115987490A (zh) 一种适用于arx结构的轻量级分组密码算法白盒化构造方法
Xian et al. Image encryption algorithm based on chaos and S-boxes scrambling
Bhat et al. Information Security using Adaptive Multidimensional Playfair Cipher.
Hassan et al. Henon chaotic map-based image encryption scheme using bit-level circular shift
Chugunkov et al. Issues of increasing the efficiency of replacement blocks for cryptoalgorithms round functions
Paul et al. An advanced gray image encryption scheme by using discrete logarithm with logistic and HEH64 chaotic functions