RU2199826C2 - Способ итеративного шифрования блоков цифровых данных - Google Patents

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

Info

Publication number
RU2199826C2
RU2199826C2 RU2000124484/09A RU2000124484A RU2199826C2 RU 2199826 C2 RU2199826 C2 RU 2199826C2 RU 2000124484/09 A RU2000124484/09 A RU 2000124484/09A RU 2000124484 A RU2000124484 A RU 2000124484A RU 2199826 C2 RU2199826 C2 RU 2199826C2
Authority
RU
Russia
Prior art keywords
operations
controlled
subblock
permutation
involution
Prior art date
Application number
RU2000124484/09A
Other languages
English (en)
Other versions
RU2000124484A (ru
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 RU2000124484/09A priority Critical patent/RU2199826C2/ru
Publication of RU2000124484A publication Critical patent/RU2000124484A/ru
Application granted granted Critical
Publication of RU2199826C2 publication Critical patent/RU2199826C2/ru

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

Изобретение относится к электросвязи и вычислительной технике, а конкретнее к криптографическим способам для шифрования данных. Способ итеративного шифрования блоков цифровых данных включает формирование секретного ключа в виде совокупности подключей, разбиение блока данных на два подблока и выполнение R≥2 раундов шифрования, каждый из которых включает преобразование первого подблока путем выполнения над ним последовательности операций 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 ил.

Description

Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области способов шифрования и криптографических устройств для защиты информации, передаваемой по каналам связи или хранимой в компьютерных системах.
В совокупности признаков заявляемого способа используются следующие термины:
- секретный ключ представляет из себя двоичную информацию, известную только законному пользователю;
- подключ - часть секретного ключа;
- шифрование есть процесс преобразования информации, который зависит от секретного ключа и преобразует исходный текст в шифртекст (криптограмму), представляющий собой псевдослучайную последовательность знаков, из которой получение информации без знания секретного ключа практически неосуществимо;
- дешифрование есть процесс, обратный процедуре шифрования; дешифрование обеспечивает восстановление информации по криптограмме при знании секретного ключа;
- шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием секретного ключа; шифр может быть реализован в виде программы для ЭВМ или в виде отдельного устройства;
- двоичный вектор - это некоторая последовательность нулевых и единичных битов, например (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-1V для всех возможных значений управляющего вектора; это означает, что для управляемой перестановочной инволюции справедливо равенство В=РVV(В)) при произвольном значении 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-битовое значение раундовой функции Е и полученное значение Е(А) накладывают на подблок В с помощью операции поразрядного суммирования по модулю два (⊕) в соответствии с формулой B := B⊕E(A). Вычисление раундовой функции осуществляется в соответствии со следующими шагами преобразования. По подблоку А формируется двоичный вектор F. Преобразуют двоичный вектор F путем наложения на него текущего подключа Ki, являющегося фиксированным для данного раунда и называемого раундовым подключом, с помощью операции сложения по модулю 232 (+) в соответствии с формулой F:= (R+Ki) mod 232, где 1≤i≤8, после чего над двоичным вектором F выполняют операцию подстановки (F:= S(F)), затем операцию циклического сдвига влево на одиннадцать бит, т.е. на одиннадцать двоичных разрядов в сторону старших разрядов (F:= F<<<11). После каждого раунда шифрования, за исключением последнего раунда, подблоки переставляются. Операция подстановки выполняется следующим образом. Двоичный вектор F разбивается на 8 двоичных векторов длиной по 4 бит. Каждый двоичный вектор заменяется двоичным вектором из таблицы подстановок. Выбранные из таблицы подстановок восемь 4-битовых векторов объединяются в преобразованный 32-битовый двоичный вектор F.
Однако способ-аналог имеет недостатки, а именно операции подстановок выполняются над двоичными векторами малой длины (4 бита), что создает предпосылки для атаки этого шифра методом дифференциального криптоанализа [B. Schneier, "Applied Cryptography", Second Eddition, John Wiley & Sons, Inc., New York, 1996, p. 285-290] . Поэтому для обеспечения высокой стойкости к дифференциальному криптоанализу требуется выполнить большое число раундов шифрования, что снижает скоростные показатели шифра.
Наиболее близким по своей технической сущности к заявляемому способу итеративного шифрования блоков цифровых данных является способ, описанный в патенте РФ N 2141729 [Молдовян А.А., Молдовян Н.А. Способ криптографического преобразования блоков двоичных данных // Патент РФ N 2141729, МПК6 Н 04 L 9/00, БИ N 32 от 20.11.1999]. Способ-прототип включает в себя формирование секретного ключа, разбиение блока данных на два подблока A и В и преобразование подблоков под управлением ключа шифрования путем выполнения над ними 16 раундов преобразования (итераций). Каждый раунд включает поочередное преобразование подблоков, причем над каждым из них выполняются не менее двух операций. В частном случае реализации способа-прототипа (см. пример 1 в описании патента N 2141729) один раунд включает следующие шаги преобразования:
1. С помощью операции поразрядного суммирования по модулю два (⊕) на подблок А накладывается подключ К1 в соответствии с формулой A := A⊕K1, где знак ":=" обозначает операцию присваивания.
2. С помощью операции сложения по модулю 232 (+) на подблок В накладывается подключ К2 в соответствии с формулой В:= В+К2.
3. Подблок В преобразуется в соответствии с выражением В:= РV(В), где PV- модификация управляемой перестановки, V - значение управляющего вектора, формируемого в зависимости от значений подблока А и подключа К3.
4. На подблок А накладывается подблок В: А:= (А+В), затем над А выполняется управляемая перестановка: А:= РV(А), где V формируется по подблоку В и по подключу К4.
5. Подблок В преобразуется в соответствии с формулой B := B⊕A.
Однако способ-прототип имеет недостатки, а именно при его реализации в виде электронных криптографических устройств для выполнения шифрования и дешифрования необходимо использовать две различные электронные схемы, что усложняет его реализацию.
В основу изобретения положена задача разработать способ итеративного шифрования блоков цифровых данных, в котором преобразование входных данных осуществлялось бы таким образом, чтобы процедуры шифрования и дешифрования могли осуществляться с помощью одной и той же электронной схемы, используя подключи в обратной очередности при выполнении дешифрования по отношению очередности использования подключей при шифровании, что упрощает схемотехническую реализацию.
Поставленная задача достигается тем, что в способе итеративного шифрования блоков цифровых данных, включающем формирование секретного ключа, разбиение блока данных на два подблока и выполнение R≥2 раундов шифрования, включающих преобразование первого подблока путем выполнения над ним последовательности операций L1, L2,...,Ln, где n>1, и преобразование второго подблока путем выполнения над ним последовательности операций H1, H2,...,Нm, где m>1, новым согласно изобретению является то, что m является четным числом, n является нечетным числом и дополнительно в первых (R-1) раундах шифрования после выполнения операций Ln и Нm осуществляют перестановку подблоков, а операции Hi являются обратными по отношению к операциям Hm-i+i, где 1≤i≤m/2, и операции Lj являются обратными по отношению к операциям Ln-j+i, где 1≤j≤(n-1)/2, причем операция
Figure 00000002
является инволюцией.
Благодаря такому решению выполнение последовательности операций L1,L2,.. . ,Ln и операций H1, H2,...,Hm, задает процедуру преобразования блока данных являющуюся инволюцией, что обеспечивает возможность осуществления дешифрования зашифрованного блока данных с помощью той же электронной схемы, которая использовалась при его шифровании. Это упрощает схемотехническую реализацию способа итеративного шифрования блоков цифровых данных.
Новым является также то, что в качестве операции
Figure 00000003
используется операция поразрядного суммирования по модулю два.
Благодаря такому решению обеспечивается дополнительное упрощение схемотехнической реализации способа итеративного шифрования блоков цифровых данных.
Новым является также и то, что перед выполнением операции
Figure 00000004
дополнительно формируют управляющий вектор в зависимости от второго подблока, а в качестве операции
Figure 00000005
используется управляемая перестановочная инволюция.
Благодаря такому решению, обеспечивается повышение стойкости к дифференциальному криптоанализу.
Кроме того, новым является то, что дополнительно перед выполнением каждой операции L1, L2,...,Ln, Н1, H2,...,Нm формируют управляющий вектор, а в качестве операций L1, L2,...,Ln, H1, H2,...,Нm используются управляемые перестановки и управляемые двуместные операции причем в качестве операции
Figure 00000006
используется управляемая перестановочная инволюция.
Благодаря такому решению, обеспечивается повышение криптостойкости к атакам, основанным на сбоях устройства шифрования.
Новым является и то, что перед выполнением операции Lj, 1≤j≤n над первым подблоком управляющий вектор формируют в зависимости от секретного ключа и от текущего значения второго подблока, а перед выполнением операции Hi, 1≤i≤m над вторым подблоком управляющий вектор формируют в зависимости от секретного ключа и от текущего значения первого подблока.
Благодаря такому решению, обеспечивается дополнительное повышение криптостойкости и возможность сокращения числа раундов шифрования, что обеспечивает повышение скорости шифрования.
Ниже сущность заявляемого изобретения более подробно разъясняется примерами его осуществления со ссылками на прилагаемые чертежи.
Обобщенная схема итеративного шифрования блоков данных на основе заявляемого способа представлена структурой раунда шифрования, показанной на фиг.1а, где А и В - подблоки преобразуемого блока данных.
Пример 1. Данный пример показан на фиг.1б и поясняет реализацию способа для случая n=5 и m=4 с использованием операции поразрядного суммирования по модулю два в качестве операции
Figure 00000007
. Блок данных Т имеет длину 64 бит и разбивается на два 32-битовых подблока А и В. На фиг.1б использованы следующие обозначения:
Р и Р-1 - управляемые операционные блоки с 32-битовым информационным входом и 64-битовым управляющим входом, реализующие взаимно обратные управляемые перестановки;
π и π-1 - взаимно обратные фиксированные перестановки, т.е. такие фиксированные перестановки, последовательное выполнение которых над любым операндом не изменяют значения последнего, т. е. имеют место соотношения: π(π-1(A)) = A и π-1(π(A)) = A. Фиксированные перестановки легко реализуются в электронных схемах и не вводят задержки в процесс преобразования данных;
"-" - операция вычитание по модулю 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⊕Kr.
4. Сформировать 64-битовый управляющий вектор
Figure 00000008
где знак "|" обозначает операцию конкатенации.
5. Выполнить над подблоком В операцию управляемой перестановки:
В:=РV(В).
6. Выполнить над подблоком А операцию фиксированной перестановки:
A := π(A).
7. Наложить подблок A на подблок В с помощью операции поразрядного суммирования по модулю 2:
B := B⊕A.
8. Выполнить над подблоком A обратную операцию фиксированной перестановки:
A := π-1(A).
9. Сформировать 64-битовый управляющий вектор
Figure 00000009

10. Выполнить над подблоком В обратную операцию управляемой перестановки:
В:=PV-1(В).
11. Наложить подключ Кr на подблок А с помощью операции вычитания по модулю 232:
А:= (A-Кr) mod 232.
12. Наложить подключ Wr на подблок В с помощью операции поразрядного суммирования по модулю 2:
B := B⊕Wr.
13. Если r<16, то прирастить r:= r+1, переставить подблоки А и В (т.е. взять двоичный вектор А в качестве двоичного вектора В, а двоичный вектор В - в качестве двоичного вектора А) и перейти к шагу 2.
14. СТОП.
Блок криптограммы С формируется путем объединения преобразованных двоичных векторов А и В:
Figure 00000010
. Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шагов 2 и 12 используется подключ K17-r вместо подключа Wr, а при выполнении шагов 3 и 11 - подключ W17-r вместо Кr. Поскольку шифрование и дешифрование осуществляются с помощью одного и того же алгоритма, то обе эти процедуры могут быть выполнены с помощью одной и той же электронной схемы.
Пример 2: шифрование 64-битового блока данных T.
В данном примере используется операция управляемой перестановочной инволюции. Операция управляемой перестановочной инволюции над двоичными векторами длины 2n легко строится на основе двух параллельно выполняемых операций управляемой перестановки над двоичными векторами длины n. Пример реализации управляемой перестановочной инволюции показан на фиг.2а, где Р - произвольная управляемая перестановка над двоичными векторами длины n, Р-1 - управляемая перестановка обратная по отношению к Р, V - двоичный вектор длины 2n, используемый в качестве управляющего вектора для операции управляемой перестановочной инволюции Р*. Двоичный вектор V служит управляющим вектором для операций Р и Р-1. На фиг.2а показана схема преобразований двоичного вектора А длины 2n, который разбивается на два n-битовых двоичных вектора А' и А'', которые соответственно преобразуются с помощью операций Р и Р-1. Их преобразованные n-битовые значения В'=РV(А') и В''=PV-1(А'') переставляются и объединяются в соответствии с формулой
Figure 00000011
Двоичный вектор В длины 2n является результатом преобразования PV* (А). На фиг.2 показаны преобразования двоичного вектора В с помощью операции Р* при том же значении управляющего вектора, которое он имел при выполнении преобразований двоичного вектора А. В результате формируется исходный двоичный вектор, т.е. А=PV*(В). Таким образом, имеет место соотношение PV*(PV*(А))=A, т.е. схема преобразований на фиг. 2а задает управляемую перестановочную инволюцию для любой управляемой перестановки Р (при этом выбор Р однозначно задает выбор Р-1). В примере 2 используется управляемая перестановочная инволюция с 32-битовым входом и 32-битовым управляющим входом.
Пример 2 поясняется на фиг.3а и соответствует случаю n=5 и m=4 и использованию операции перестановочной инволюции Р* в качестве операции
Figure 00000012
.
Шифрование в соответствии с примером 2 осуществляется следующим образом. Формируется секретный ключ в виде следующей совокупности 32-битовых раундовых подключей: K1, K2,...,K8 и W1, W2,...,W8. Разбить блок данных T на два 32-битовых подблока А и В. Шифрование блока данных выполнить в соответствии со следующим алгоритмом.
1. Установить счетчик числа раундов шифрования r:= 1.
2. Наложить подключ Кr на подблок А в соответствии с формулой:
A := A⊕Kr.
3. Выполнить над подблоком В операцию фиксированной перестановки:
B := π(B).
4. По подключу Wr и по подблоку В сформировать 64-битовый управляющий вектор
Figure 00000013

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-битовый управляющий вектор
Figure 00000014

11. Выполнить над подблоком А операцию обратной управляемой перестановки:
А:= PV-1(A).
12. Наложить подключ Wr на подблок А в соответствии с формулой:
A := A⊕Wr.
13. Выполнить над подблоком В операцию обратной фиксированной перестановки:
B := π-1(B).
14. Если r<8, то прирастить r:= r+1, переставить подблоки А и В и перейти к шагу 2.
15. СТОП.
В результате выполнения алгоритма формируется блок криптограммы
Figure 00000015
Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шагов 4, 6 и 12 используется подключ K9-r вместо подключа Wr, а при выполнении шагов 2, 9 и 10 - подключ W9-r вместо подключа Кr.
Пример 3: шифрование 64-битового блока данных T. Данный пример поясняется на фиг.3б, где Q - управляемая двуместная операция с 32-битовым управляющим входом и Q-1 - соответствующая обратная управляемая двуместная операция с 32-битовым управляющим входом. Пример 3 соответствует случаю n=3 и m=2 и использованию операций управляемых перестановок и управляемых двуместных операций в качестве операций L1, L2,...,Ln, H1, H2,...,Нm и операции управляемой перестановочной инволюции в качестве операции
Figure 00000016
.
Шифрование в соответствии с примером 3 осуществляется следующим образом. Формируется секретный ключ в виде следующей совокупности 32-битовых раундовых подключей: K1, K2,...,K16 и W1, W2,...,W16. Разбить блок данных T на два 32-битовых подблока А и В. Шифрование блока данных выполнить в соответствии со следующим алгоритмом.
1. Установить счетчик числа раундов шифрования r:= 1.
2. По подключу Wr и по подблоку А сформировать 32-битовый управляющий вектор V: V = Wr⊕A.
3. Наложить подключ Кr на подблок B в соответствии с формулой:
B:= QV(B,Kr).
4. По подключу Wr и по подблоку В сформировать 64-битовый управляющий вектор
Figure 00000017

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

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

9. Выполнить над подблоком А операцию обратной управляемой перестановки:
А:= РV-1(А).
10. По подключу Кr и по подблоку A сформировать 32-битовый управляющий вектор V в соответствии с формулой: V = Kr⊕A.
11. Наложить подключ Wr на подблок B в соответствии с формулой:
B:= QV-1(B,Wr).
12. Если r<16, то прирастить r:= r + 1, переставить подблоки А и В и перейти к шагу 2.
13. СТОП.
В результате выполнения алгоритма формируется блок криптограммы
Figure 00000020
Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шагов 2, 4, 6 и 11 используется подключ K17-r вместо подключа Wr, a при выполнении шагов 3, 6, 8 и 10 - подключ W17-r вместо Кr.
Приведенные примеры показывают, что предлагаемый способ итеративного шифрования блоков цифровых данных технически реализуем и позволяет решить поставленную задачу.

Claims (5)

1. Способ итеративного шифрования блоков цифровых данных, включающий формирование секретного ключа в виде совокупности подключей, разбиение блока данных на два подблока и выполнение R≥2 раундов шифрования, каждый из которых включает преобразование первого подблока путем выполнения над ним последовательности операций L1, L2, .... ,Ln, где n>1, и преобразование второго подблока путем выполнения над ним последовательности операций H1, Н2, . .., Нm, где m>1, причем, по крайней мере, одна из операций L1, L2, ...., Ln, H1, Н2, ..., Нm является управляемой операцией и перед выполнением этой операции формируют управляющий вектор, а при выполнении, по крайней мере, одной из операций L1, L2, ...., Ln, H1, H2, ..., Нm используют один из подключей, отличающийся тем, что m является четным числом, n является нечетным числом и дополнительно во всех раундах шифрования, кроме последнего, после выполнения операций Ln и Нm осуществляют перестановку подблоков, а операции Hi являются обратными по отношению к операциям Нm-i+1, где 1≤i≤m/2, и операции Lj являются обратными по отношению к операциям Ln-j+1, где 1≤j≤ (n-1)/2, причем операция L(n-1)/2+1 является инволюцией.
2. Способ по п.1, отличающийся тем, что в качестве операции L(n-1)/2+1 используется операция поразрядного суммирования по модулю два.
3. Способ по п.1, отличающийся тем, что в качестве операции L(n-1)/2+1 используется управляемая перестановочная инволюция.
4. Способ по п.1, отличающийся тем, что в качестве операций L1, L2 ,..., Ln, где n≥3, кроме операции L(n-1)/2+1, используют управляемые двуместные операции, выполняемые над первым подблоком и одним из подключей, в качестве операций H1, Н2, ..., Нm, где m≥2, используют управляемые перестановки, а в качестве операции L(n-1)/2+1 используется управляемая перестановочная инволюция.
5. Способ по п.1, отличающийся тем, что перед выполнением операций L1, L2, ...., Ln над первым подблоком управляющий вектор формируют в зависимости от секретного ключа и от текущего значения второго подблока, а перед выполнением операций H1, Н2, ..., Нm над вторым подблоком управляющий вектор формируют в зависимости от секретного ключа и от текущего значения первого подблока.
RU2000124484/09A 2000-09-25 2000-09-25 Способ итеративного шифрования блоков цифровых данных RU2199826C2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2000124484/09A RU2199826C2 (ru) 2000-09-25 2000-09-25 Способ итеративного шифрования блоков цифровых данных

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2000124484/09A RU2199826C2 (ru) 2000-09-25 2000-09-25 Способ итеративного шифрования блоков цифровых данных

Publications (2)

Publication Number Publication Date
RU2000124484A RU2000124484A (ru) 2002-09-20
RU2199826C2 true RU2199826C2 (ru) 2003-02-27

Family

ID=20240385

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2000124484/09A RU2199826C2 (ru) 2000-09-25 2000-09-25 Способ итеративного шифрования блоков цифровых данных

Country Status (1)

Country Link
RU (1) RU2199826C2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2494537C2 (ru) * 2006-02-17 2013-09-27 Франс Телеком Усовершенствованное кодирование/декодирование цифровых сигналов, в частности, при векторном квантовании с перестановочными кодами

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2494537C2 (ru) * 2006-02-17 2013-09-27 Франс Телеком Усовершенствованное кодирование/декодирование цифровых сигналов, в частности, при векторном квантовании с перестановочными кодами
RU2494536C2 (ru) * 2006-02-17 2013-09-27 Франс Телеком Усовершенствованное кодирование/декодирование цифровых сигналов, в частности, при векторном квантовании с перестановочными кодами

Similar Documents

Publication Publication Date Title
US8503670B2 (en) Parallelizable integrity-aware encryption technique
US7079651B2 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US7672455B2 (en) Method and apparatus for data encryption
JP2002366029A (ja) Dpaに対して安全な暗号化
JP2005215688A (ja) S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法
KR20070057797A (ko) 보안성을 향상시키는 순열 데이터 변환
RU2124814C1 (ru) Способ шифрования блоков цифровых данных
JP2000511755A (ja) バイナリーコード情報を暗号化する方法
RU2141729C1 (ru) Способ криптографического преобразования блоков двоичных данных
Ledda et al. Enhancing IDEA algorithm using circular shift and middle square method
RU2206961C2 (ru) Способ итеративного блочного шифрования двоичных данных
JP2002217898A (ja) 擬似乱数生成システム
RU2199826C2 (ru) Способ итеративного шифрования блоков цифровых данных
RU2186467C2 (ru) Способ блочного итеративного шифрования
RU2188513C2 (ru) Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки
RU2204212C2 (ru) Итеративный способ блочного шифрования
RU2186466C2 (ru) Способ итеративного шифрования блоков дискретных данных
RU2184423C2 (ru) Способ блочного итеративного шифрования цифровых данных
RU2172075C1 (ru) Итеративный способ блочного шифрования
KR100494560B1 (ko) Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법
RU2140714C1 (ru) Способ итеративного шифрования блоков данных
RU2144268C1 (ru) Способ итеративного шифрования блоков двоичных данных
Hassan New Approach for Modifying DES Algorithm Using 4-States Multi-keys
RU2140716C1 (ru) Способ криптографического преобразования блоков цифровых данных
Haunts et al. Symmetric Encryption

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20050926