RU2103828C1 - Способ блочного шифрования данных - Google Patents

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

Info

Publication number
RU2103828C1
RU2103828C1 RU97101622A RU97101622A RU2103828C1 RU 2103828 C1 RU2103828 C1 RU 2103828C1 RU 97101622 A RU97101622 A RU 97101622A RU 97101622 A RU97101622 A RU 97101622A RU 2103828 C1 RU2103828 C1 RU 2103828C1
Authority
RU
Russia
Prior art keywords
sub
block
encryption
binary vector
key
Prior art date
Application number
RU97101622A
Other languages
English (en)
Other versions
RU97101622A (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 RU97101622A priority Critical patent/RU2103828C1/ru
Application granted granted Critical
Publication of RU2103828C1 publication Critical patent/RU2103828C1/ru
Publication of RU97101622A publication Critical patent/RU97101622A/ru

Links

Images

Abstract

Изобретение относится к электросвязи и вычислительной технике, а конкретнее к криптографическим способам и устройствам для шифрования данных. Цель: повышение скорости шифрования программных шифров. Способ включает формирование ключа шифрования в виде совокупности подключей, разбиение блока данных на подблоки и поочередное наложение подключей на подблоки с помощью бинарных операций. Отличается от известных способов тем, что дополнительно формируют двоичный вектор, а на i-й подблок Bi, где i=1,2,3,...N, N ≥ 2 - число подблоков, накладывают l-й подключ, где l=1,2,3,...,K, K≥ 8 - число подключей, причем номер l подключа выбирают по значению двоичного вектора. Двоичный вектор формируют по структуре j-го подблока Bj, где j = 1,2,3,...N, причем i≠j, или по структуре j-го подблока Bj, где i≠j, и по значению номера подключа, наложенного на подблок на предыдущем шаге наложения. 1 с. и 2 з.п. ф-лы, 2 ил.

Description

Изобретение относится к электросвязи и вычислительной техники, а конкретнее к криптографическим способам и устройствам для шифрования сообщений (информации). В совокупности признаков предлагаемого способа используются следующие термины:
пароль представляет из себя комбинацию битов, известную только законному пользователю;
шифрключ (ключ шифрования) представляет из себя комбинацию битов, используемую при шифровании информационных сигналов данных; шифрключ является сменным элементом шифра и используется для преобразования данного сообщения или данной совокупности сообщений; шифрключ является известным только законному пользователю или может быть выработан по детерминированным процедурам по паролю;
шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием шифрключа; шифр может быть реализован в виде программы для ЭВМ или в виде отдельного устройства;
подключ представляет собой часть ключа, используемую на отдельных элементарных шагах шифрования;
расписание использования шифрключа (или подключей) представляет собой последовательность использования подключей в процессе шифрования;
шифрование есть процесс, реализующий некоторый способ преобразования данных с использованием шифрключа, переводящий данные в криптограмму, представляющую собой псевдослучайную последовательность знаков, из которой получение информации без знания ключа практически невыполнимо;
дешифрование есть процесс, обратный процедуре шифрования; дешифрование обеспечивает восстановление информации по криптограмме при знании шифрключа;
криптостойкость является мерой надежности защиты информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без знания шифрключа.
двоичный вектор - это некоторая последовательность нулевых и единичных битов, например 101101011; конкретная структура двоичного вектора может быть интерпретирована как двоичное число, если считать, что позиция каждого бита соответствует двоичному разряду, т.е. двоичному вектору может быть сопоставлено численное значение, которое определяется однозначно структурой двоичного вектора.
Известны способы блочного шифрования данных ( например стандарт США DES Диффи У., Хеллмэн М.Э. Защищенность и имитостойкость: Введение в криптографию. -ТИИЭР, 1979, т. 67. N.3, с. 87-89), способ шифрования (патент США N 5222139, от 22 июня 1993, шифр FEAL-1 и криптоалгоритм B-Crypt. Мафтик С. Механизмы защиты в сетях ЭВМ. - М.: Мир, 1993, с.49-52). В известных способах шифрование блоков данных выполняют путем формирования ключа шифрования в виде совокупности подключей, разбиения преобразуемого блока данных на подблоки и поочередного изменения последних с помощью операций подстановки, перестановки и арифметических операций, выполняемых над текущим подблоком и текущим подключом.
Однако известные способы-аналоги не обладают достаточной стойкостью к дифференциальному криптоанализу (Berson T.A. Differential Cryptanalysis Mod 232 with application to MD5// EUROCRYPT'92. Hungary, May 24-28, 1992. Proceedings. р.67-68), так как расписание использования подключей является фиксированным для всех преобразуемых входных блоков.
Наиболее близким по своей технической сущности к предлагаемому способу блочного шифрования является способ, описанный в Российском стандарте криптографической защиты данных (Стандарт СССР ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования). Способ-прототип включает в себя формирование ключа шифрования в виде последовательности из 8 подключей длиной 32 бита, разбиении входного 64-битового блока данных на два 32-битовых подблока B1 и B2 и поочередным преобразовании подблоков. Один шаг преобразования подблока, например подблока B2, заключается в наложении на него текущего подключа Qi,являющегося фиксированным для данного шага, с помощью операции сложения по модулю 232 (+) в соответствии с формулой B2:= B2 + Qi, где 1≤i≤8, после чего над полученным новым значением подблока B2 выполняют операцию подстановки, затем операцию циклического сдвига влево на одиннадцать бит, т.е. на одиннадцать двоичных разрядов в сторону старших разрядов, а затем на полученное значение B2 накладывают подблок B1 с помощью операции поразрядного суммирования по модулю два (⊕) в соответствии с формулой B2:=B2 ⊕ B1. Операция подстановки выполняется следующим образом.
Подблок разбивается на 8 двоичных вектора длиной по 4 бит. Каждый двоичный вектор заменяется двоичным вектором из таблицы подстановок. Выбранные из таблицы подстановок 8 4-битовых вектора объединяются в 32-битовый двоичный вектор, который и является выходным состоянием подблока после выполнения операции подстановки. Всего выполняется 32 аналогичных шага изменения подблоков, причем для всех преобразуемых входных блоков данных на фиксированном шаге преобразования подблоков используется подключ с фиксированным номером.
Однако способ-прототип имеет следующий недостаток: при программной реализации он не обеспечивает высокой скорости шифрования, необходимой для построения программных систем защиты компьютерной информации, работающих в масштабе реального времени. Например, для микропроцессора Intel 486/100 скорость шифрования не превышает 3 Мбит/с. Этот недостаток связан с тем, что для обеспечения стойкости к дифференциальному криптоанализу задано большое число операций подстановок, медленно выполняемых микропроцессором.
Цель изобретения - разработка способа блочного шифрования данных, обеспечивающего повышение скорости шифрования.
Поставленная цель достигается тем, что в известном способе блочного шифрования, заключающемся в формировании ключа шифрования в виде совокупности K подключей, разбиении блока данных на N подблоков и поочередном преобразовании подблоков, дополнительно формируют двоичный вектор, выбирают номер l, где l≤K, подключа по структуре двоичного вектора. После этого преобразуют текущий подблок, например i-й подблок, где i≤N, путем наложения на него l-го подключа.
Под формированием двоичного вектора понимается выделение в структуре подблока группы разрядов, численное значение которых берется в качестве номера подключа, накладываемого на подблок, или явное формирование двоичного вектора в отдельном регистре или ячейке памяти вычислительного устройства. Формирование двоичного вектора, по которому осуществляют выбор номера текущего подключа, может выполняться без явной записи в отдельный регистр или ячейку памяти содержимого нескольких разрядов подблока Bj в случае, когда подблок Bj записан в регистре, по которому выполняется адресация к памяти ЭВМ. В этом случае при использовании ЭВМ на базе микропроцессора Intel 486 значение 16 младших разрядов подблока Bj непосредственно берется в качестве номера l подключа.
Изменение структуры двоичного вектора в процессе шифрования блока данных не является предопределенным, а зависит от структуры блока данных и от ключа шифрования. Могут быть использованы следующие два варианта формирования двоичного вектора. В первом варианте двоичный вектор формируют по структуре j-го подблока Bj, где j≤N, причем i≠j. Во втором варианте двоичный вектор формируют по структуре j-го подблока Bj, где j≤N, причем i≠j, и по значению номера подключа, наложенного на подблок на предыдущем шаге наложения. Смысл выбора подключа, который накладывается на подблок на текущем шаге, по специально формируемому двоичному вектору, состоит в том, чтобы сделать выбор подключа непредопределенным для каждого шага преобразования подблоков. Перечисленная совокупность существенных признаков обеспечивает более высокую скорость шифрования благодаря следующему. Расписание использования подключей для каждого блока данных является непредопределенным и уникальным, что обеспечивает высокую стойкость ко всем известным способам криптоанализа, включая дифференциальный криптоанализ, при использовании даже простых арифметических операций, которые быстро выполняются микропроцессором.
Возможность технической реализации предлагаемого способа блочного шифрования поясняется следующим образом.
Предлагаемый способ ориентирован на шифрование входных блоков с помощью не повторяющихся комбинаций подключей, а именно на задание зависимости расписания использования подключей от структуры блока данных и от ключа шифрования, т.е. на задание псевдослучайной выборки подключей. Этот способ позволяет получить высокую скорость шифрования при использовании ключей шифрования длиной, например, от 256 до 2050 байт. Формирование шифрключа можно осуществить непосредственно вводя его в шифрующую систему, например, со съемного носителя информации. Формирование шифрключа можно также осуществить путем ввода пароля с клавиатуры или с машинного носителя информации в генератор псевдослучайных чисел, получая на выходе шифрключ необходимого размера. Известен ряд способов построения генераторов псевдослучайных чисел (например, Брикелл Э.Ф., Одлижко Э.М. Криптоанализ: Обзор новейших результатов. - ТИИЭР, 1988, т.76. N.5, с. 87-89). Сложность процедур формирования ключа не влияет на скорость шифрования, поскольку эту процедуру выполняют однократно при идентификации пользователя по паролю в момент включения шифрующего устройства или вызова шифрующей программы.
Предлагаемый способ может быть реализован с помощью ЭВМ или вычислительного устройства, представленного блок-схемой на фиг. 1, где
блок 1 - устройство ввода пароля пользователя;
блок 2 - блок генерации шифрключа;
блок 3 - блок памяти устройства шифрования;
блок 4 - операционный блок устройства шифрования, содержащий три или более регистра;
блок 5 - устройство шифрования;
6 - шина передачи информационных сигналов пароля пользователя;
7- шина передачи информационных сигналов шифрключа;
8 - шина передачи информационных сигналов подключей и передачи информационных сигналов входных данных и информационных сигналов преобразуемых подблоков;
9 - шина адресации;
10 - шина ввода входных данных;
11 - шина вывода шифртекста.
Используя блок 1, вводят секретный ключ, информационные сигналы 6 которого подают на вход блока 2. В блоке 2 формируют шифрключ и соответствующие ему информационные сигналы по шине 7 передают в блок памяти 3. После этого устройство шифрования 5 содержит в памяти шифрключ и готово к выполнению операций шифрования. Данное инициализированное состояние устройства сохраняется в течение всего времени работы законного пользователя. Входной блок вводят по шине 10 в операционный блок 4 и затем по шине 8 в блок памяти 3.
Входной блок данных представляют в виде совокупности подблоков, записанных по фиксированным адресам. Информационные сигналы подблока Bjпо шине 8 вводят в первый регистр операционного блока 4 (в случае ЭВМ - в один из регистров микропроцессора). Во втором регистре блока 4 формируют двоичный вектор, например, путем записи в регистр содержимого 8 младших разрядов подблока. В третий регистр вводят подблок Bi. Информационные сигналы двоичного вектора подают на шину адресации 9 и тем самым задают выбор номера l текущего подключа Ql по значению двоичного вектора. Подблок Bi преобразуют путем наложения на него подключа Ql с использованием команды, по которой операционный блок выполняет бинарную операцию, т.е. операцию над двумя двоичными векторами, например операцию сложения. Под наложением понимается выполнение бинарной операции между подблоком Bi и подключом Ql и замене исходной структуры подблока Bi на структуру двоичного вектора, являющегося результатом выполнения бинарной операции. Аналитически процедура наложения записывается в виде формулы Bi:= Bi*Ql, где знак * обозначает бинарную операцию, знак := - операцию присваивания. Схема наложения показана на фиг. 2, где
1 - подблок Bi с исходной структурой;
2 - подключ Ql;
3 - блок, выполняющий бинарную операцию*;
4 - подблок Bi с измененной структурой.
В качестве бинарной операции могут быть использованы простые арифметические операции сложения (+) и вычитания (-) по модулю 232, поразрядного суммирования по модулю 2(⊕), которые быстро исполняются микропроцессором. Могут быть использованы также более сложные бинарные операции, определенные на основе перечисленных простых бинарных операций и на основе быстро выполняемых унарных операций, т.е. операций над одним двоичным вектором, например, на основе операции циклического сдвига >d> на d бит, где 1≤d ≤b-1, где b - размер подблока в битах. Например, операцию * над 32-битовыми векторами можно определить в следующих вариантах, соответствующих формулам:
Figure 00000002

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

Claims (2)

1. Способ блочного шифрования данных, заключающийся в формировании ключа шифрования в виде совокупности К подключей, разбиении блока данных на N подблоков и поочередном преобразовании подблоков, отличающийся тем, что дополнительно формируют двоичный вектор, выбирают номер l, где l ≤ К, подключа по структуре двоичного вектора и преобразуют i-й подблок, где i ≤ N, путем наложения на него l-го подключа.
2. Способ по п. 1, отличающийся тем, что двоичный вектор формируют по структуре j-го подблока, где j ≤ N, причем i ≠ j.
3. Способ по п. 1, отличающийся тем, что двоичный вектор формируют по структуре j-го подблока, где j ≤ N, причем i ≠ j, и по значению номера подключа, наложенного на подблок на предыдущем шаге наложения.
RU97101622A 1997-02-10 1997-02-10 Способ блочного шифрования данных RU2103828C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU97101622A RU2103828C1 (ru) 1997-02-10 1997-02-10 Способ блочного шифрования данных

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU97101622A RU2103828C1 (ru) 1997-02-10 1997-02-10 Способ блочного шифрования данных

Publications (2)

Publication Number Publication Date
RU2103828C1 true RU2103828C1 (ru) 1998-01-27
RU97101622A RU97101622A (ru) 1998-05-20

Family

ID=20189594

Family Applications (1)

Application Number Title Priority Date Filing Date
RU97101622A RU2103828C1 (ru) 1997-02-10 1997-02-10 Способ блочного шифрования данных

Country Status (1)

Country Link
RU (1) RU2103828C1 (ru)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999044330A1 (fr) * 1998-02-24 1999-09-02 Otkrytoe Aktsionernoe Obschestvo 'moskovskaya Gorodskaya Telefonnaya Set' Procede de cryptage en bloc de donnees discretes
RU2518950C1 (ru) * 2013-05-06 2014-06-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный электротехнический университет "ЛЭТИ" им. В.И. Ульянова (Ленина)" СПОСОБ ШЛИФОВАНИЯ n-БИТОВОГО БЛОКА ДАННЫХ М
RU2542926C1 (ru) * 2014-04-14 2015-02-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный электротехнический университет "ЛЭТИ" им. В.И. Ульянова (Ленина)" Способ шифрования сообщения, представленного в виде многоразрядного двоичного числа
RU2542880C1 (ru) * 2014-03-31 2015-02-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный электротехнический университет"ЛЭТИ" им. В.И. Ульянова (Ленина)" Способ шифрования блока двоичных данных
RU2542929C1 (ru) * 2014-04-14 2015-02-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный электротехнический университет "ЛЭТИ" им. В.И. Ульянова (Ленина)" Способ шифрования блока данных, представленного в виде битовой строки
RU2580060C1 (ru) * 2015-05-20 2016-04-10 Федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский государственный электротехнический университет "ЛЭТИ" им. В.И. Ульнова (Ленина)" Способ шифрования сообщения, представленного в виде многоразрядного двоичного числа

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
2. Стандарт СССР ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999044330A1 (fr) * 1998-02-24 1999-09-02 Otkrytoe Aktsionernoe Obschestvo 'moskovskaya Gorodskaya Telefonnaya Set' Procede de cryptage en bloc de donnees discretes
RU2518950C1 (ru) * 2013-05-06 2014-06-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный электротехнический университет "ЛЭТИ" им. В.И. Ульянова (Ленина)" СПОСОБ ШЛИФОВАНИЯ n-БИТОВОГО БЛОКА ДАННЫХ М
RU2518950C9 (ru) * 2013-05-06 2014-09-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный электротехнический университет "ЛЭТИ" им. В.И. Ульянова (Ленина)" Способ шифрования n-битового блока данных м
RU2542880C1 (ru) * 2014-03-31 2015-02-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный электротехнический университет"ЛЭТИ" им. В.И. Ульянова (Ленина)" Способ шифрования блока двоичных данных
RU2542926C1 (ru) * 2014-04-14 2015-02-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный электротехнический университет "ЛЭТИ" им. В.И. Ульянова (Ленина)" Способ шифрования сообщения, представленного в виде многоразрядного двоичного числа
RU2542929C1 (ru) * 2014-04-14 2015-02-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный электротехнический университет "ЛЭТИ" им. В.И. Ульянова (Ленина)" Способ шифрования блока данных, представленного в виде битовой строки
RU2580060C1 (ru) * 2015-05-20 2016-04-10 Федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский государственный электротехнический университет "ЛЭТИ" им. В.И. Ульнова (Ленина)" Способ шифрования сообщения, представленного в виде многоразрядного двоичного числа

Similar Documents

Publication Publication Date Title
JP4596686B2 (ja) Dpaに対して安全な暗号化
CA2218148C (en) Generating unique and unpredictable values
KR100657062B1 (ko) 정보 암호화 방법 및 이 방법을 실현하는 장치
RU2103829C1 (ru) Способ шифрования информации, представленной двоичным кодом
RU2124814C1 (ru) Способ шифрования блоков цифровых данных
JP2011512562A (ja) アクセス及び通信に関するデータのランダム暗号化及び復号化方法
US6404888B1 (en) Confusion data generator
RU2103828C1 (ru) Способ блочного шифрования данных
Iftikhar et al. Evaluating the Performance Parameters of Cryptographic Algorithms for IOT-based Devices
RU2141729C1 (ru) Способ криптографического преобразования блоков двоичных данных
JP4470135B2 (ja) 擬似乱数生成システム
JP2000209195A (ja) 暗号通信システム
Ledda et al. Enhancing IDEA algorithm using circular shift and middle square method
RU2106753C1 (ru) Способ криптографического преобразования блоков данных
RU2188513C2 (ru) Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки
RU2111620C1 (ru) Способ шифрования блоков данных
RU2106752C1 (ru) Способ шифрования блоков данных
RU2359415C2 (ru) Способ криптографического преобразования блоков цифровых данных
RU2186467C2 (ru) Способ блочного итеративного шифрования
Labbi et al. Symmetric encryption algorithm for RFID systems using a dynamic generation of key
RU2140712C1 (ru) Способ блочного шифрования двоичной информации
RU2206961C2 (ru) Способ итеративного блочного шифрования двоичных данных
RU2140711C1 (ru) Способ блочного шифрования дискретной информации
KR100497130B1 (ko) 이진코드정보의암호화방법
RU2140710C1 (ru) Способ блочного шифрования дискретных данных