RU2140711C1 - Способ блочного шифрования дискретной информации - Google Patents
Способ блочного шифрования дискретной информации Download PDFInfo
- Publication number
- RU2140711C1 RU2140711C1 RU98104851A RU98104851A RU2140711C1 RU 2140711 C1 RU2140711 C1 RU 2140711C1 RU 98104851 A RU98104851 A RU 98104851A RU 98104851 A RU98104851 A RU 98104851A RU 2140711 C1 RU2140711 C1 RU 2140711C1
- Authority
- RU
- Russia
- Prior art keywords
- sub
- encryption
- block
- key
- subkey
- Prior art date
Links
Landscapes
- Storage Device Security (AREA)
Abstract
Изобретение относится к электросвязи и вычислительной технике, а конкретнее к криптографическим способам и устройствам для шифрования данных. Техническим результатом, достигаемым изобретением, является повышение скорости шифрования. Способ включает формирование ключа шифрования в виде совокупности подключей, разбиение блока данных на N ≥ 2 подблоков и поочередное преобразование подблоков путем выполнения двуместной операции над подблоком и подключом. Отличается от известных способов тем, что перед выполнением двуместной операции над i-м подблоком и подключом над подключом выполняют операцию циклического сдвига, зависящую от j-го подблока, где j ≠ i. 1 ил.
Description
Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области криптографических способов и устройств для шифрования сообщений (информации). В совокупности признаков заявляемого способа используются следующие термины:
- секретный ключ представляет собой комбинацию битов, известную только законному пользователю;
- ключ шифрования представляет собой комбинацию битов, используемую при шифровании информационных сигналов данных; ключ шифрования является сменным элементом шифра и используется для преобразования данного сообщения или данной совокупности сообщений; ключ шифрования формируется по детерминированным процедурам по секретному ключу; в ряде шифров в качестве ключа шифрования используется непосредственно секретный ключ;
- шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием шифрключа; шифр может быть реализован в виде программы для ЭВМ или в виде отдельного электронного устройства;
- подключ представляет собой часть ключа шифрования, используемую на отдельных элементарных шагах шифрования;
- шифрование есть процесс, реализующий некоторый способ преобразования данных с использованием шифрключа, переводящий данные в криптограмму, представляющую собой псевдослучайную последовательность знаков, из которой получение информации без знания ключа шифрования практически невыполнимо;
- дишефрование есть процесс, обратный процедуре шифрования; дешифрование обеспечивает восстановление информации по криптограмме при знании ключа шифрования;
- криптостойкость является мерой надежности защиты информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без знания ключа шифрования.
- секретный ключ представляет собой комбинацию битов, известную только законному пользователю;
- ключ шифрования представляет собой комбинацию битов, используемую при шифровании информационных сигналов данных; ключ шифрования является сменным элементом шифра и используется для преобразования данного сообщения или данной совокупности сообщений; ключ шифрования формируется по детерминированным процедурам по секретному ключу; в ряде шифров в качестве ключа шифрования используется непосредственно секретный ключ;
- шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием шифрключа; шифр может быть реализован в виде программы для ЭВМ или в виде отдельного электронного устройства;
- подключ представляет собой часть ключа шифрования, используемую на отдельных элементарных шагах шифрования;
- шифрование есть процесс, реализующий некоторый способ преобразования данных с использованием шифрключа, переводящий данные в криптограмму, представляющую собой псевдослучайную последовательность знаков, из которой получение информации без знания ключа шифрования практически невыполнимо;
- дишефрование есть процесс, обратный процедуре шифрования; дешифрование обеспечивает восстановление информации по криптограмме при знании ключа шифрования;
- криптостойкость является мерой надежности защиты информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без знания ключа шифрования.
Известны способы блочного шифрования данных, см., например, стандарт США 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. P. 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 аналогичных шага изменения подблоков, причем для всех преобразуемых входных блоков данных на фиксированном шаге преобразования подблоков используется один и тот же подключ с неизменным значением.
Однако способ-прототип имеет недостатки, а именно при программной реализации он не обеспечивает скорость шифрования более 1 Мбит/с [Андреев Н.Н. О некоторых направлениях исследований в области защиты информации // Сборник материалов международной конференции "Безопасность информации". Москва, 14-18 апреля 1997. М. 1997. С. 96], что не позволяет использовать его для шифрования данных в средствах защиты реального масштаба времени. Этот недостаток связан с тем, что для обеспечения стойкости к дифференциальному криптоанализу в способе-прототипе используется большое число операций подстановки над 4-битовыми подблоками преобразуемого блока данных, для выполнения каждой из которых (при программной реализации) микропроцессор осуществляет много элементарных команд, что обусловлено несоответствием подстановок такого типа с форматом представления данных в ЭВМ.
В основу изобретения положена задача разработать способ шифрования, в котором преобразование входных данных осуществлялось бы таким образом, чтобы обеспечивалось уменьшение числа элементарных операций преобразования, приходящихся на один бит входных данных, при одновременном обеспечении высокой стойкости к дифференциальному криптоанализу, благодаря чему повышается скорость шифрования при программной реализации.
Поставленная задача достигается тем, что в способе блочного шифрования дискретной информации, включающем формирование ключа шифрования в виде совокупности подключей, разбиение блока данных на N ≥ 2 подблоков и поочередное преобразование подблоков путем выполнения двуместной операции над подблоком и подключом, новым согласно изобретению является то, что перед выполнением двуместной операции над i-тым подблоком и подключом над подключом выполняют операцию циклического сдвига, зависящую от j-того подблока, где j ≠ i.
Благодаря такому решению структура подключей, используемых на заданном шаге шифрования, зависит от преобразуемых данных и тем самым на данном шаге преобразования для различных входных блоков используются различные модифицированные значения подключей, благодаря чему обеспечивается высокая стойкость к дифференциальному криптоанализу при одновременном уменьшении числа выполняемых операций преобразования, что и обеспечивает повышение скорости криптографического преобразования.
Ниже сущность заявляемого изобретения более подробно разъясняется примерами его осуществления со ссылками на прилагаемые чертежи.
Изобретение поясняется обобщенной схемой криптографического преобразования блоков данных на основе заявляемого способа, которая представлена фиг. 1, где операционный блок ОЦС - блок управляемой операции циклического сдвига; A и B - преобразуемые n-битовые подблоки; K2r, K2r-1 - элементы ключа шифрования (подключи); знак ⊕ обозначает операцию поразрядного суммирования по модулю два, знак + - операцию суммирования по модулю 2n. Жирные сплошные линии обозначают шину передачи n-битовых сигналов, а жирные пунктирные линии - шину передачи n управляющих сигналов, в качестве которых используются биты преобразуемых подблоков.
Чертеж показывает один (r-тый) раунд шифрования. В зависимости от требуемой скорости преобразований могут быть заданы от 8 до 30 и более раундов.
Рассмотрим конкретный пример реализации заявляемого способа криптографических преобразований блоков двоичных данных.
Пример.
В данном примере поясняется шифрование 64-битовых блоков данных. Ключ шифрования формируется в виде 16 подключей K1, K2, K3, ..., K32, каждый из которых имеет длину 32 бита. Входной блок данных разбивается на два 32-битовых подблока A и B. Шифрование входного блока описывается следующим алгоритмом:
1. Установить счетчик числа раундов r = 1.
1. Установить счетчик числа раундов r = 1.
2. Преобразовать подблок B в соответствии с выражением
B:= B⊕(K2r ≪< A),
где K2r <<< A обозначает операцию циклического сдвига влево на A бит, выполняемую над подключом K2r.
B:= B⊕(K2r ≪< A),
где K2r <<< A обозначает операцию циклического сдвига влево на A бит, выполняемую над подключом K2r.
3. Преобразовать подблок A в соответствии с выражением
A := A + B,
где + - операция суммирования по модулю 232.
A := A + B,
где + - операция суммирования по модулю 232.
4. Преобразовать подблок A в соответствии с выражением
A:= A⊕(K2r-1 ≪< B),
где K2r-1 <<< B обозначает операцию циклического сдвига влево на B бит, выполняемую над подключом K2r-1.
A:= A⊕(K2r-1 ≪< B),
где K2r-1 <<< B обозначает операцию циклического сдвига влево на B бит, выполняемую над подключом K2r-1.
5. Преобразовать подблок B в соответствии с выражением
B := B + A.
B := B + A.
Если r ≠ 16, то прирастить счетчик r := r + 1 и перейти к шагу 2, в противном случае СТОП.
Современные микропроцессоры быстро осуществляют операцию циклического сдвига в зависимости от значения переменной, хранящейся в одном из регистров. Благодаря этому описанный алгоритм обеспечивает скорость шифрования около 30 Мбит/с для массового микропроцессора Pentium/200.
Приведенные примеры показывают, что предлагаемый способ блочного шифрования дискретной информации технически реализуем и позволяет решить поставленную задачу.
Заявляемый способ может быть реализован, например, в виде программ для ЭВМ, обеспечивающих скоростное шифрование данных.
Claims (1)
- Способ блочного шифрования дискретной информации, включающий формирование ключа шифрования в виде совокупности подключей, разбиение блока данных на N≥ 2 подблоков и поочередное преобразование подблоков путем выполнения двуместной операции над подблоком и подключом, отличающийся тем, что перед выполнением двуместной операции над i-м подблоком и подключом над подключом выполняют операцию циклического сдвига, зависящую от j-го подблока, где j ≠ i.
Priority Applications (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU98104851A RU2140711C1 (ru) | 1998-03-20 | 1998-03-20 | Способ блочного шифрования дискретной информации |
UA2000095323A UA51836C2 (ru) | 1998-02-24 | 1998-06-19 | Способ блочного кодирования цифровых данных |
CNB988137909A CN1281023C (zh) | 1998-02-24 | 1998-06-19 | 离散数据分块加密方法 |
PCT/RU1998/000181 WO1999044330A1 (fr) | 1998-02-24 | 1998-06-19 | Procede de cryptage en bloc de donnees discretes |
PL98342617A PL342617A1 (en) | 1998-02-24 | 1998-06-19 | Discrete data block-type encoding method |
EP98935435A EP1059760A4 (en) | 1998-02-24 | 1998-06-19 | BLOCK ENCRYPTION OF DISCRETE DATA |
KR10-2000-7009280A KR100411912B1 (ko) | 1998-02-24 | 1998-06-19 | 이산 데이터 블록 암호화 방법 |
JP2000533977A JP2002505452A (ja) | 1998-02-24 | 1998-06-19 | 個々のデータをブロック暗号化するための方法 |
SI9820092A SI20498A (sl) | 1998-02-24 | 1998-06-19 | Postopek blokovnega šifriranja zaupnih podatkov |
SK1247-2000A SK12472000A3 (sk) | 1998-02-24 | 1998-06-19 | Spôsob blokového kódovania diskrétnych dát |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU98104851A RU2140711C1 (ru) | 1998-03-20 | 1998-03-20 | Способ блочного шифрования дискретной информации |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2140711C1 true RU2140711C1 (ru) | 1999-10-27 |
Family
ID=20203467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU98104851A RU2140711C1 (ru) | 1998-02-24 | 1998-03-20 | Способ блочного шифрования дискретной информации |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2140711C1 (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2598784C1 (ru) * | 2015-07-17 | 2016-09-27 | Закрытое акционерное общество Научно-технический центр "Модуль" | Способ шифрования сообщений, передаваемых с помощью шумоподобных сигналов |
-
1998
- 1998-03-20 RU RU98104851A patent/RU2140711C1/ru active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2598784C1 (ru) * | 2015-07-17 | 2016-09-27 | Закрытое акционерное общество Научно-технический центр "Модуль" | Способ шифрования сообщений, передаваемых с помощью шумоподобных сигналов |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0839418B1 (en) | Cryptographic method and apparatus for non-linearly merging a data block and a key | |
US5623549A (en) | Cipher mechanisms with fencing and balanced block mixing | |
US7110539B1 (en) | Method and apparatus for encrypting and decrypting data | |
RU2103829C1 (ru) | Способ шифрования информации, представленной двоичным кодом | |
Reyad et al. | Key-based enhancement of data encryption standard for text security | |
RU2459275C1 (ru) | Способ блочного шифрования сообщения м, представленного в двоичном виде | |
Prajwal et al. | User defined encryption procedure for IDEA algorithm | |
RU2141729C1 (ru) | Способ криптографического преобразования блоков двоичных данных | |
Ledda et al. | Enhancing IDEA algorithm using circular shift and middle square method | |
RU2103828C1 (ru) | Способ блочного шифрования данных | |
RU2140711C1 (ru) | Способ блочного шифрования дискретной информации | |
RU2140712C1 (ru) | Способ блочного шифрования двоичной информации | |
RU2140710C1 (ru) | Способ блочного шифрования дискретных данных | |
CN111740818A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
RU2206961C2 (ru) | Способ итеративного блочного шифрования двоичных данных | |
RU2186467C2 (ru) | Способ блочного итеративного шифрования | |
KR100494560B1 (ko) | Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법 | |
JP2000047580A (ja) | 暗号変換装置、復号変換装置、暗号通信装置および自動料金徴収装置 | |
Hassan et al. | NETWORK SECURITY BY BLOCK CIPHERS | |
Djordjevic et al. | Conventional Cryptography Fundamentals | |
JP2000004223A (ja) | 暗号・認証システム | |
Saudagar et al. | File Encryption-Decryption using Java | |
RU2140714C1 (ru) | Способ итеративного шифрования блоков данных | |
RU2199826C2 (ru) | Способ итеративного шифрования блоков цифровых данных | |
JPH0918468A (ja) | 暗号通信装置及び暗号化装置 |