Способ итеративного шифрования блоков цифровых данных
Изобретение относится к электросвязи и вычислительной технике, а конкретнее к криптографическим способам для шифрования данных. Способ итеративного шифрования блоков цифровых данных включает формирование секретного ключа в виде совокупности подключей, разбиение блока данных на два подблока и выполнение R2 раундов шифрования, каждый из которых включает преобразование первого подблока путем выполнения над ним последовательности операций L1, L2, ..., Ln, где n>1, и преобразование второго подблока путем выполнения над ним последовательности операций H1, H2,..., Нm, где m>1, причем, по крайней мере, одна из операций L1, L2,..., Ln, H1, Н2,..., Нm является управляемой операцией и перед выполнением этой операции формируют управляющий вектор, а при выполнении, по крайней мере, одной из операций L1, L2,..., Ln, H1, Н2,.. . , Нm используют один из подключей, при этом m является четным числом, n является нечетным числом, и дополнительно во всех раундах шифрования, кроме последнего, после выполнения операций Ln и Нm, осуществляют перестановку подблоков, а операции Нi являются обратными по отношению к операциям Hm-i+1, где 1
i
m/2, и операции Li являются обратными по отношению к операциям Ln-j+1, где 1
j
(n-1)/2, причем операция L(n-1)/2+1 является инволюцией, в качестве операции L(n-1)/2+1 используют операцию поразрядного суммирования по модулю два или управляемую перестановочную инволюцию, а также в качестве операций L1, L2, . . ., Ln, где n
3, кроме операции L(n-1)/2+1, используют управляемые двуместные операции, выполняемые над первым подблоком и одним из подключей, в качестве операций H1, H2,..., Нm, где m
2, используют управляемые перестановки, а в качестве L(n-1)/2+1 используют управляемую перестановочную инволюцию, кроме того, перед выполнением операций L1, L2,..., Ln над первым подблоком управляющий вектор формируют в зависимости от секретного ключа и от текущего значения второго подблока, а перед выполнением операций H1, Н2,..., Нm над вторым подблоком управляющий вектор формируют в зависимости от секретного ключа и от текущего значения первого подблока. Технический результат, достигаемый при осуществлении способа, состоит в упрощении его реализации благодаря осуществлению процедуры шифрования и дешифрования с помощью одной и той же электронной схемы. 4 з.п. ф-лы, 2 ил.
Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области способов шифрования и криптографических устройств для защиты информации, передаваемой по каналам связи или хранимой в компьютерных системах.
В совокупности признаков заявляемого способа используются следующие термины: - секретный ключ представляет из себя двоичную информацию, известную только законному пользователю; - подключ - часть секретного ключа; - шифрование есть процесс преобразования информации, который зависит от секретного ключа и преобразует исходный текст в шифртекст (криптограмму), представляющий собой псевдослучайную последовательность знаков, из которой получение информации без знания секретного ключа практически неосуществимо; - дешифрование есть процесс, обратный процедуре шифрования; дешифрование обеспечивает восстановление информации по криптограмме при знании секретного ключа; - шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием секретного ключа; шифр может быть реализован в виде программы для ЭВМ или в виде отдельного устройства; - двоичный вектор - это некоторая последовательность нулевых и единичных битов, например (101101011); двоичный вектор интерпретируется как двоичное число, т.е. двоичному вектору может быть сопоставлено численное значение; - криптоанализ - метод вычисления секретного ключа для получения несанкционированного доступа к зашифрованной информации; - криптостойкость является мерой надежности защиты зашифрованной информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без знания секретного ключа; - одноместная операция - это операция, выполняемая над одним операндом (блоком данных или двоичным вектором); значение подблока после выполнения некоторой данной одноместной операции зависит только от его начального значения; примером одноместных операций являются операции циклического сдвига;- двуместная операция - это операция, выполняемая над двумя операндами; результат выполнения некоторой данной двуместной операции зависит от значения каждого операнда; примером двуместных операций являются операции сложения, вычитания, умножения и др. - операнд - это двоичный вектор, над которым выполняется двуместная или одноместная операция;
- управляемая двуместная операция - это операция выполняемая над двумя операндами под управлением некоторого двоичного вектора, называемого управляющим вектором; результат выполнения некоторой управляемой двуместной операции при фиксированном управляющем векторе зависит от значения каждого операнда, а при фиксированных значениях операндов - от значения управляющего вектора; примеры реализации управляемых двуместных операций описаны в патенте N 2140716 [Молдовян А.А., Молдовян Н.А., Молдовяну П.А. Способ криптографического преобразования блоков цифровых данных // Патент РФ N 2140716, МПК6 H 04 L 9/28, БИ N 30 от 27.10.1999]; в формулах управляемую двуместную операцию будем обозначать записью Z=QV(A,B), где А, В - операнды, V - управляющий вектор;
- модификация управляемой двуместной операции - двуместная операция, соответствующая преобразованию двух операндов при фиксированном значении управляющего вектора;
- управляемая перестановка - это операция, выполняемая над одним операндом под управлением некоторого двоичного вектора, называемого управляющим вектором и заключающаяся в перестановке битов операнда в зависимости от значения управляющего вектора; примеры реализации управляемых перестановок описаны в патенте N 2140714 [Алексеев Л.Е., Белкин Т.Г., Молдовян А.А., Молдовян Н. А. Способ итеративного шифрования блоков данных // Патент РФ N 2140714, МПК6 Н 04 L 9/20, БИ N 30 от 27.10.1999]; в формулах управляемую перестановку будем обозначать записью РV, а преобразование операнда В путем выполнения над ним управляемой перестановки - записью В:= РV(В), где V - управляющий вектор; управляемая перестановка является частным случаем управляемой одноместной операции;
- модификация управляемой перестановки - фиксированная перестановка битов операнда, соответствующая заданному значению управляющего вектора;
- обратная управляемая перестановка (по отношению к некоторой данной управляемой перестановке) - это перестановка, все модификации PV -1 которой являются обратными по отношению к модификациям перестановки РV, т.е. для любого заданного значения управляющего вектора последовательное выполнение операций РV и PV -1 над двоичным вектором В не изменяют значение последнего, что аналитически можно записать в виде В=PV -1(PV(B)) или В=PV(PV -1(B)); варианты реализации двух взаимно обратных управляемых перестановок описаны в патенте РФ N 2140714. - обратная управляемая двуместная операция (по отношению к некоторой данной управляемой двуместной операции Q - это такая управляемая двуместная операция (обозначаемая как Q-1), которая для любого заданного значения управляющего вектора V и любого заданного значения операнда В удовлетворяет условию А= QV -1 (Z,B), если Z=QV(A,B); варианты реализации двух взаимно обратных управляемых двуместных операций описаны в работе [Гуц Н.Д., Молдовян А. А. , Молдовян Н.А. Гибкие аппаратно-ориентированные шифры на базе управляемых сумматоров // Вопросы защиты информации, 2000, N 1, с.8-15];
- инволюция - это такая операция или процедура преобразования I, которая является обратной самой себе, т.е. выполняется условие В=I(Z), если Z=I(B);
- управляемая перестановочная инволюция - это операция управляемой перестановки Р, для которой обратная по отношению к ней управляемая перестановка совпадает с ней самой, т.е. PV -1=РV для всех возможных значений управляющего вектора; это означает, что для управляемой перестановочной инволюции справедливо равенство В=РV(РV(В)) при произвольном значении V. Известны способы итеративного шифрования блоков цифровых данных, см. например, шифр DES [B.Schneier, "Applied Cryptography", Second Eddition, John Wiley & Sons, Inc., New York, 1996, p.270-277]. В этом способе данные разбиваются на блоки, шифрование которых выполняют путем формирования секретного ключа, разбиения преобразуемого блока данных на два подблока L и R и поочередного изменения последних путем выполнения операции поразрядного суммирования по модулю два над подблоком L и двоичным вектором, который формируется как выходное значение некоторой функции Е от значения подблока R. После этого подблоки переставляются местами. Функция Е в указанном способе реализуется путем выполнения операций перестановки и подстановки, выполняемых над подблоком R. Данный способ обладает высокой скоростью преобразований при реализации в виде специализированных электронных схем. Однако, известный способ-аналог использует секретный ключ малого размера (56 бит), что делает его уязвимым к криптоанализу на основе подбора ключа. Последнее связано с высокой вычислительной мощностью современных ЭВМ. Другим известным способом итеративного шифрования блоков цифровых данных является способ, описанный в Российском стандарте криптографической защиты данных [Стандарт СССР ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования]. Этот способ включает в себя формирование ключа шифрования в виде последовательности из 8 подключей длиной 32 бита, разбиение входной информации, представленной в виде двоичного кода, на участки длиной по 64 бит, формирование на их основе 64-битовых блоков данных и преобразование блоков под управлением ключа шифрования. Перед преобразованием каждый блок данных разбивается на два 32-битовых подблока A и В, которые поочередно преобразуются путем выполнения 32 раундов преобразования (итераций). Один раунд преобразования заключается в следующем. По подблоку А и одному из подключей вычисляется 32-битовое значение раундовой функции Е и полученное значение Е(А) накладывают на подблок В с помощью операции поразрядного суммирования по модулю два (




1. С помощью операции поразрядного суммирования по модулю два (



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















Р и Р-1 - управляемые операционные блоки с 32-битовым информационным входом и 64-битовым управляющим входом, реализующие взаимно обратные управляемые перестановки;






"-" - операция вычитание по модулю 232. Шифрование в соответствии с примером 1 осуществляется следующим образом. Сформировать секретный ключ в виде следующей совокупности 32-битовых раундовых подключей: K1, K2,...,K16 и W1, W2,...,W16. Разбить блок данных на два подблока А=T div 232 и В=T mod 232. Выполнить шифрование блока данных в соответствии со следующим алгоритмом. 1. Установить счетчик числа раундов шифрования r:= 1. 2. Наложить подключ Wr на подблок A с помощью операции суммирования по модулю 232:
А:= (A+Wr) mod 232. 3. Наложить подключ Кr на подблок В с помощью операции поразрядного суммирования по модулю 2:
B := B

4. Сформировать 64-битовый управляющий вектор

В:=РV(В). 6. Выполнить над подблоком А операцию фиксированной перестановки:
A :=

7. Наложить подблок A на подблок В с помощью операции поразрядного суммирования по модулю 2:
B := B

8. Выполнить над подблоком A обратную операцию фиксированной перестановки:
A :=

9. Сформировать 64-битовый управляющий вектор

10. Выполнить над подблоком В обратную операцию управляемой перестановки:
В:=PV -1(В). 11. Наложить подключ Кr на подблок А с помощью операции вычитания по модулю 232:
А:= (A-Кr) mod 232. 12. Наложить подключ Wr на подблок В с помощью операции поразрядного суммирования по модулю 2:
B := B

13. Если r<16, то прирастить r:= r+1, переставить подблоки А и В (т.е. взять двоичный вектор А в качестве двоичного вектора В, а двоичный вектор В - в качестве двоичного вектора А) и перейти к шагу 2. 14. СТОП. Блок криптограммы С формируется путем объединения преобразованных двоичных векторов А и В:



A := A

3. Выполнить над подблоком В операцию фиксированной перестановки:
B :=

4. По подключу Wr и по подблоку В сформировать 64-битовый управляющий вектор

5. Выполнить над подблоком А операцию управляемой перестановки:
А:= РV(А). 6. Наложить подключ Wr на подблок B в соответствии с выражением:
B:= (B+Wr) mod 232. 7. По подблоку А сформировать 64-битовый управляющий вектор V: V=А. 8. Выполнить над подблоком В операцию управляемой перестановочной инволюции:
В:= PV *(В). 9. Наложить подключ Кr на подблок B в соответствии с выражением:
В:= (В-Кr) mod 232. 10. По подключу Кr и по подблоку В сформировать 64-битовый управляющий вектор

11. Выполнить над подблоком А операцию обратной управляемой перестановки:
А:= PV -1(A). 12. Наложить подключ Wr на подблок А в соответствии с формулой:
A := A

13. Выполнить над подблоком В операцию обратной фиксированной перестановки:
B :=

14. Если r<8, то прирастить r:= r+1, переставить подблоки А и В и перейти к шагу 2. 15. СТОП. В результате выполнения алгоритма формируется блок криптограммы



3. Наложить подключ Кr на подблок B в соответствии с формулой:
B:= QV(B,Kr). 4. По подключу Wr и по подблоку В сформировать 64-битовый управляющий вектор

5. Выполнить над подблоком А операцию управляемой перестановки:
А:= PV(A). 6. В зависимости от подблока А и подключей Wr и Кr сформировать 32-битовый управляющий вектор V в соответствии с выражением:

7. Выполнить над подблоком В операцию управляемой перестановочной инволюции:
B:= PV *(В). 8. По подключу Кr и по подблоку В сформировать 64-битовый управляющий вектор

9. Выполнить над подблоком А операцию обратной управляемой перестановки:
А:= РV -1(А). 10. По подключу Кr и по подблоку A сформировать 32-битовый управляющий вектор V в соответствии с формулой: V = Kr

11. Наложить подключ Wr на подблок B в соответствии с формулой:
B:= QV -1(B,Wr). 12. Если r<16, то прирастить r:= r + 1, переставить подблоки А и В и перейти к шагу 2. 13. СТОП. В результате выполнения алгоритма формируется блок криптограммы

Формула изобретения







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