способ блочного шифрования информации
Классы МПК: | H04L9/06 шифровальные устройства, использующие регистры сдвига или запоминающие устройства для блочного кодирования, например системы на основе стандарта шифрования данных |
Автор(ы): | Осмоловский С.А. (RU) |
Патентообладатель(и): | Осмоловский Станислав Антонович (RU) |
Приоритеты: |
подача заявки:
2004-03-29 публикация патента:
20.12.2005 |
Изобретение относится к криптографии и средствам защиты информации. Техническим результатом является обеспечение высокой скорости обработки информации и обеспечение после шифрования квазислучайной последовательности сигналов, независимо от статистики отдельных букв в исходном тексте. Технический результат достигается тем что, способ шифрования и дешифрования информации включает использование блочных взаимообратных однозначных двухпараметрических шифрующего и дешифрующего преобразований на основе таблиц со случайным заполнением размером N строк каждая с участием последовательности гаммы от независимого от информации датчика случайных чисел, причем для блока шифрования длиной байт вырабатывают последовательность гаммы длиной байт, изменяющейся для каждого блока, при этом каждый байт преобразуют с помощью двухпараметрического преобразования байт vi =F(ui, i) с участием квазислучайных значений последовательность гаммы i длиной 1 байт, затем выполняется в два этапа операция формирования блока шифрования путем объединения байт, причем шифрующее преобразование объединения байт первой ступени с номерами i, имеющими значения от 1 до , выполняют суммированием определенных исходных ui и преобразованных значений vi байт: ai=v i+vi+1+ui для i=1,..., (-1), a =v +u1+u2+...+u , шифрующее преобразование объединения байт второй ступени ai с номерами i, имеющими значения от 1 до , выполняют в виде рекуррентных операций F следующим образом: i=F(ai, ai+1) для i=1,..., (-1), =a , дешифрующие преобразование байт выполняют в обратной последовательности, сначала выполняют дешифрующее преобразование второй ступени для значений каждого принятого байта ' i с номером i, имеющим значения от 1 до , в виде рекуррентных операций F-1 следующим образом: а' =' ; a'I=F-1(' i,a'i+1) для i=-1, -2,..., 1, затем выполняют дешифрующее преобразование первой ступени для значений каждого байта ai с номером i, имеющим значения от 1 до в виде рекуррентных операций F-1 следующим образом: , для i=1,..., . 3 з.п. ф-лы.
Формула изобретения
1. Способ шифрования и дешифрования информации, характеризуемый использованием блочных взаимообратных однозначных двухпараметрических шифрующего и дешифрующего преобразований на основе таблиц со случайным заполнением размером N строк каждая с участием последовательности гаммы от независимого от информации датчика случайных чисел, причем для блока шифрования длиной байт вырабатывают последовательность гаммы длиной байт, изменяющейся для каждого блока, при этом каждый байт преобразуют с помощью двухпараметрического преобразования байт vi =F(ui, i) с участием квазислучайных значений последовательность гаммы i длиной 1 байт, затем выполняется в два этапа операция формирования блока шифрования путем объединения байт, причем шифрующее преобразование объединения байт первой ступени с номерами i, имеющими значения от 1 до , выполняют суммированием определенных исходных ui и преобразованных значений vi байт:
ai =vi+vi+1+ui для i=1,..., (-1);
a =v +u1+u2+...+u ,
шифрующее преобразование объединения байт второй ступени ai с номерами i, имеющими значения от 1 до , выполняют в виде рекуррентных операций F следующим образом:
i=F(ai,ai+1) для i=1,..., (-1);
=а ,
дешифрующее преобразование байт выполняют в обратной последовательности, причем сначала выполняют дешифрующее преобразование второй ступени для значений каждого принятого байта ' i с номером i, имеющим значения от 1 до , в виде рекуррентных операций F-1 следующим образом:
a' =' ;
a'I=F-1 (' i, a'i+1) для i=-1, -2,..., 1,
затем выполняют дешифрующее преобразование первой ступени для значений каждого байта ai с номером i, имеющим значения от 1 до , в виде рекуррентных операций F1 следующим образом:
2. Способ по п.1, отличающийся тем, что шифрующее преобразование vi=F(ui, i) каждого из байт производят с помощью своей таблицы со случайным однозначным заполнением, при числе таблиц , путем поиска в таблице исходного значения ui и считывания результата преобразования vi, отстоящего на i строк "вниз" по модулю размера таблицы N.
3. Способ по п.1, отличающийся тем, что дешифрующее преобразование ui=F-1(vi, i) каждого из байт производят с помощью своей таблицы со случайным однозначным заполнением, при числе таблиц , путем поиска в таблице исходного значения vi и считывания результата преобразования ui, отстоящего на i строк "вверх" по модулю размера таблицы N.
4. Способ по п.1, отличающийся тем, что для повышения стойкости шифрования операции шифрования и дешифрования блока может повторяться М раундов.
Описание изобретения к патенту
Изобретение относится к криптографии и средствам защиты информации от несанкционированного ознакомления, изменения содержания (модификации) при хранении и передаче информации и может применяться при построении программных, аппаратных и программно-аппаратных средств криптографической защиты информации от ознакомления и контроля и восстановления целостности информации.
Известны способы шифрования информации, основанные на использовании криптографического преобразования информации с помощью случайных таблиц замены. Первый из известных способов такого шифрования, называемый полибианский квадрат, предполагает использование таблицы, в которой случайным образом записаны значения букв используемого алфавита. Значение шифруемой буквы используется как адрес, по которому считывается из таблицы записанная там буква, которая является результатом криптографического преобразования. С позиций современной криптографии, такое преобразование не изменяет вероятности появления отдельных букв в шифруемом тексте, а лишь меняет соотношение вероятностей отдельных букв в криптограмме. Если буква «а», в соответствии с таблицей замены, переходит а букву «т», то вероятность появления в исходном тексте буквы «а» будет равна вероятности появления в криптограмме буквы «т». Известно, что анализ статистики отдельных букв в тексте криптограммы дает возможность для дешифрования теста противником. Подобные таблицы замены, как одно параметрическая операция криптографического преобразования используется в различных криптографических алгоритмах, в том числе в отечественном стандарте шифрования ГОСТ 28147-89, в качестве одной из операций усложнения преобразования.
Известен способ криптографического блочного преобразования, реализованный в стандарте США AES (Advanced Encryption Standart), предназначенный для защиты информации от ознакомления, контроля целостности и подлинности.
Известны математические принципы построения абсолютно стойких шифров, сформулированные К.Шенноном. В соответствии с этими принципами абсолютно секретным может быть только шифр, обеспечивающий на выходе шифратора последовательность, близкую по своим статистическим свойствам к случайной равновероятной последовательности, вне зависимости от статистики появления отдельных букв в исходной шифруемой последовательности.
В соответствии с изобретением в способе шифрующего преобразования предполагается строить шифрование как двухпараметрическую операцию, где результат шифрующего преобразования зависит как от значения исходного шифруемой комбинации ui длиной L бит (в простейшем случае это буква или байт, в более общем - это q-ичный символ или блок, содержащий несколько байт) и квазислучайного параметра преобразования i длиной не менее L бит - F(ui, i). Знак i указывает на принадлежнось этих операндов, участвующих в преобразовании, к определенному интервалу времени. Для каждого очередного значения шифруемой комбинации ui вырабатывается новое значение i.
Для построения блочного шифра, сочетающего быструю реализацию с большой длиной блока L, величину которой можно было бы делать произвольной, процедуры шифрования и дешифрования выполняют как шифрование букв (байт) и операции объединения байт. Причем объединение байт выполняется в два этапа, целями которых является усложнение преобразования и «размножение» искажения любого двоичного символа блока на весь блок, то есть превращение значения блока после дешифрования в равновероятную последовательность на длине блока L. Операции объединения байт при шифровании и дешифровании позволяют применять их при любом числе букв (байт) в блоке шифрования, например от =2 (L=16 для применения в качестве q-ичного символа для стохастических q-ичных кодов) до =32 (L=256 для применения в процедурах хэширования для выработки и проверки электронной цифровой подписи (ЭЦП)).
Для реализации преобразования байт и одной из операций объединения байт способа строятся кодовые таблицы Тк (i), каждая объемом 2 l, где l - длина шифруемой за один такт последовательности (блока), а величина 2l=N - определяет размер алфавита обрабатываемых знаков. При длине блока байт используется до 2-1 таблица Тк, из которых таблиц используется для преобразования байт и -1 таблица - для второй операции объединения байт при шифровании.
В каждую таблицу Тк(i) до начала шифрования записывают без повторения случайным образом все возможные значения обрабатываемых в процессе шифрования знаков длиной l бит. Процесс заполнения может осуществляться одним из двух способов. В соответствии с первым в таблицу заносятся последовательно в порядке возрастания числа с 0 до 2l-1. Затем производится случайная перестановка записанных в таблицу значений без введения новых или исключения имеющихся значений букв. Число таких возможных перестановок равно (2l)!. Например, при l=8 число перестановок (2 8)! превышает 10300. Такая математическая интерпретация формирования таблицы Тк дает представление о числе вариантов заполнения таблицы, но не дает конкретного варианта реализации заполнения. Практически заполнения осуществляют с помощью следующих операций. Предварительное заполнение таблицы Тк выполняют с помощью датчика случайных чисел (ДСЧ) в следующем порядке, первое значение полученного от ДСЧ знака записывают в первую строку таблицы Тк с номером 0, полученное от ДСЧ второе значение знака сравнивают с ранее записанным первым знаком, при их несовпадении второе значение записывают во вторую ячейку таблицы с номером 1, в противном случае значение второго знака, полученного от ДСЧ, отбрасывается, вырабатывается третье значение знака, сравниваемое затем с записанным в таблице значением, для заполнения очередной строки таблицы Тк с номером i (i имеет значение от 1 до 2l-1) получают очередное значение знака от ДСЧ, сравнивают полученное значение с каждым из i-1 значением записанных в таблицу знаков, в случае несовпадения ни с одним из знаков этот знак записывается в строку с номером i, при совпадении с одним из ранее записанным в таблицу знаков полученное от ДСЧ значение отбрасывается и процесс заполнения таблицы повторяется до полного ее заполнения.
В шифровании очередного знака исходного текста ui, производимого с помощью двухпараметрической операции F(ui, i), участвует значение комбинации гаммы i, полученное от независимого от шифруемого сообщения источника гаммы, выполняющего роль датчика случайных чисел (ДСЧ). Полученное с помощью операции F(ui, i) значение зашифрованного знака vi в соответствии с изобретением получают следующим образом: находят таблице Т к значение исходного знака ui, причем в этой таблице любое возможное значение исходного знака присутствует обязательно в единственной строке таблицы, в результате этой операции получают адрес исходной комбинации в кодовой таблице А(ui). Затем отступают по строкам таблицы Тк на i строк "вниз", считая комбинацию i двоичным числом. Из строки таблицы Тк , отстоящей от строки с номером А(ui) на i строк "вниз", считывается результат преобразования vi. Операцию смещения «вниз» по таблице можно выразить через операцию с адресами, то есть адрес результата преобразования равен
A(vi)=A(ui)+ i mod N, где N - размер таблицы.
Дешифрование выполняется с помощью обратной относительно шифрования операцией. Эта операция состоит в поиске в кодовой таблице Тк подлежащей дешифрованию комбинации vi смещению по таблице «вверх» на число строк, определяемое комбинацией гаммы дешифрования i. To есть дешифрование выполняется с помощью вычисления адреса результата:
A(ui)=A(vi)- i mod N, где N - размер таблицы.
Для упрощения поиска строки в таблице Тк адреса исходной комбинации строится дополнительная таблица адресов Та на основании заполненной кодовой таблицы. Если в первой строке таблицы Т к с номером 0 записана комбинация g, то в строке таблицы Та с адресом g записано значение 0, если во второй строке таблицы Тк с адресом 1 хранится комбинация t, то в строке t таблицы Та хранится значение 1 и т.д. Тогда поиск исходной комбинации ui при шифровании и vi при дешифровании сводится к считыванию из таблицы Та значений комбинаций соответственно из строк с номерами ui и vi таблицы Та.
Зашифрованные с помощью операции vi=F(ui, i) каждого i-го из байт с использованием для каждого байта собственной таблицы Т к(i), число которых , подвергаются операции шифрующего преобразования объединения байт первой ступени с номерами i, имеющими значения от 1 до . Для этого выполняют суммирование определенных исходных u i и преобразованных значений vi:
a i=vi+vi+1+ui для i=1,..., (-1),
а =v +u1+u2+...+u
Для полученных после операции объединения байт первой ступени аi выполняют шифрующее преобразование объединения байт второй ступени. Для этого для значений аi с номером i, имеющим значения от 1 до , выполняют рекуррентные операции
i=F(ai,ai+1) для i=1,..., (-1),
=a .
Каждое их (-1) преобразований i=Р(аi,ai+1) выполняется с использованием собственной таблицы Тк(i).
Дешифрование принятого по каналу связи (или считанного из памяти компьютера) блока, состоящего из символов (байт) ' i, где i=1,..., , выполняются в обратном порядке операции над байтами.
Дешифрующее преобразование второй ступени выполняют для значений каждого байта ' i, с номером i, имеющем значения от 1 до , в виде рекуррентных операций
a' =' ;
a'i=F-1(' i,a'i+1) для i=-1, a-2,..., 1
Дешифрующее преобразование первой ступени выполняют для значений каждого байта аi с номером i, имеющим значения от 1 до в виде рекуррентных операций
Для =4 (преобразование 4 байт) это дешифрующее преобразование, с учетом обозначения операции обратного преобразования байт F-1 ( i, i) как операции деления, имеет вид:
Предложенный и описанный выше способ шифрования может рассматриваться как блочный шифр с длиной блока L=l, имеющий пространство ключей размером Vk=V +Vt, где V - размер ключа, используемого при преобразовании знаков (байт), равный длине блока L=l, a Vt - длина ключа, применяемого при заполнении случайных таблиц замены, равная в битах величине Vt=l(2-1)2 l.
Способ может применяться как блочный шифр, то есть при постоянных значениях ключа для каждого из последовательности шифруемых боков исходной информации, а также как блочно-поточный шифр, когда для очередного (i+1)-го блока изменяется значение ключа, используемого при шифровании знаков (байт), то есть последовательность значений i длиной L=l от независимого от шифруемой информации ДСЧ.
Способ может применяться для решения следующих задач:
- шифрования для обеспечения криптографической защиты от ознакомления и НСД;
- для контроля и восстановления целостности информации с помощью помехоустойчивого стохастического кодирования с обнаружением и исправлением естественных и преднамеренных искажений информации, когда операции шифрования выполняют роль стохастического преобразования q-ичных символов (n,k,q)-кода; в этом режиме способ может применяться только как блочно-поточный шифр со сменой ключа для каждого очередного q-ичного символа;
- для выполнения операции хэширования при формировании и проверки электронно-цифровой подписи (ЭЦП).
Описанный способ обладает следующими преимуществами:
- высокая скорость обработки информации;
- обеспечение после шифрования квазислучайной последовательности сигналов, независимо от статистики отдельных букв в исходном тексте;
- сложное нелинейное преобразование, не имеющее никакого другого формального описания, кроме описания заполнения кодовой таблицы Тк;
- возможность рассматривать начальное заполнение таблиц как ключ шифрования, кроме начального заполнения ДСЧ, вырабатывающего поток гаммы.
Источники информации
1. ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. - М.: ГК СССР по стандартам, 1989.
2. Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях. - М.: Радио и связь, 1999.
3. Зенин О.С., Иванов М.А. Стандарт криптографической защиты - AES. Конечные поля. - М.: КУДИЦ-ОБРАЗ, 2002.
4. Зима В.М., Молдовян А.А., Молдовян Н.А. Безопасность глобальных сетевых технологий. - СПб.; БХВ-Петербург, 2001.
5. Московский университет и развитие криптографии в России. Материалы конференции в МГУ 17-18 2002 г. - М.: МЦНМО, 2003. - 287 с.
Класс H04L9/06 шифровальные устройства, использующие регистры сдвига или запоминающие устройства для блочного кодирования, например системы на основе стандарта шифрования данных