Способ шифрования блоков данных

Реферат

 

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

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

Известен способ шифрования двоичной информации и устройство для осуществления способа - "Албер" [1], в котором для осуществления криптографического преобразования текста используется набор из информационного и ключевого р-разрядных регистров. Входные данные разбиваются на блоки переменной длины из m ячеек, включающей по р разрядов в каждой. Далее, содержимое этих ячеек преобразуется с помощью n-кратного сложения по модулю 2 или по модулю 2p с содержимым второй р-разрядной ячейки информационного регистра, к полученной сумме прибавляют по модулю 2 или по модулю 2р содержимое очередной р-разрядной ячейки ключевого регистра, результат преобразуют блоком р-разрядного функционального преобразования f, к полученному результату прибавляют по модулю 2 или по модулю 2р содержимое r-й (3rm-1) ячейки информационного регистра.

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

Известен также способ шифрования блоков данных [2], который ориентирован на шифрование входных блоков данных с помощью неповторяющихся комбинаций генерируемых подключей, а именно на задание зависимости расписания использования подключей от структуры блока данных и от ключа шифрования, т.е. на задание псевдослучайной выборки подключей. Данный способ проявляет хорошую работоспособность при условии достаточного количества операций, производимых генерируемым исполняемым машинным кодом программы шифрования, определяющей способ зашифрования блоков данных.

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

Наиболее близким по технической сущности к предлагаемому является способ защиты информации от несанкционированного доступа [3], принятый за прототип, заключающийся в том, что на передающей стороне блок данных искажается с помощью ключевой последовательности путем его разбиения на фрагменты переменной длины с последующим шифрованием каждого из фрагментов с помощью криптографического преобразования, а на принимающей стороне искаженный блок данных восстанавливается с помощью той же ключевой последовательности.

Недостатками прототипа являются низкая стойкость к несанкционированному расшифрованию зашифрованной с его помощью информации; необходимость хранить ключевую последовательность большого объема, определяющую длину каждого шифруемого блока; сохранение статистических свойств открытого текста, что позволяет получить дополнительную информацию о защищаемой информации, а в ряде случаев расшифровать ее. Кроме того, к зашифрованному этим способом тексту могут быть эффективно применены способы криптоанализа на основе подобранных входных фрагментов открытого текста.

Технический результат, получаемый от внедрения изобретения, заключается в уменьшении зависимости статистических характеристик зашифрованных данных от входных данных и увеличении сложности расшифрования зашифрованных данных за приемлемое время при отсутствии должной ключевой последовательности, а также в затруднении получения приемлемых результатов применения атак дифференциального и линейного методов криптоанализа зашифрованных данных с целью их расшифрования.

Данный технический результат получают за счет того, что в известном способе шифрования блоков данных, заключающемся в том, что на передающей стороне блок данных искажается с помощью ключевой последовательности путем его разбиения на фрагменты переменной длины с последующим шифрованием каждого из фрагментов с помощью криптографического преобразования, а на принимающей стороне искаженный блок данных восстанавливается с помощью той же ключевой последовательности, для шифрования каждого из фрагментов переменной длины применяется функция криптографического преобразования f с дополнительной псевдослучайной последовательностью, зависящей от заданной ключевой последовательности, а также зацепление элементов блока данных с параметром зацепления р внутри каждого фрагмента, при этом в качестве функции криптографического преобразования f используют функцию линейного конгруэнтного преобразования вида f(x)=ax+b mod с, где a, b, с - постоянные коэффициенты, а параметр зацепления р вычисляется с помощью той же функции криптографического преобразования f из ключевой последовательности.

Согласно способу выбор длины фрагментов внутри блока данных производится с помощью функции f преобразования ключевой последовательности в целое значение n, в зависимости от которого выбирается n элементов блока, начиная с текущей позиции i (i=1, 2, 3,...). После этого, текущей позицией становится i+n позиция. Для каждого фрагмента генерируется последовательность псевдослучайных чисел h длиной n элементов в зависимости от заданной ключевой последовательности. Выбранный фрагмент затем преобразуется следующим образом. К каждому k-му элементу (k=1, 2, 3,..., n) фрагмента прибавляется значение k-го элемента последовательности h по модулю 2. Далее происходит зацепление элементов внутри фрагмента, то есть каждый r-й элемент (r=2, 3,..., n) фрагмента суммируется по модулю 2 с n-р элементом в случае, когда rр, и суммируется по модулю 2 с s-м (s=1, 2, 3,..., n) элементом, когда r<р. Параметр р является параметром зацепления и вычисляется с помощью функции криптографического преобразования f из ключевой последовательности.

Таким образом, r-й элемент блока данных преобразовывается в соответствии с правилом: yr=xr+hk,rn-р, если rр yr=xr+hk,r+ys, при r<р,r - результирующий r-й элемент, xr- r-й элемент фрагмента данных, hk,r - r-й элемент последовательности псевдослучайных чисел h, зависящей от ключевой последовательности, уn-р и ys - уже вычисленные n-i и s элементы соответственно.

Причем s принимается равным целому числу, полученному округлением результата выражения r/2.

Функция преобразования f ключевой последовательности выбирается так, чтобы множество ее значений было ограничено некоторой константой с (с=2, 3, 4,...), определяемой исходя из экспериментальных данных в зависимости от типа шифруемой информации и длины исходного файла. В качестве функции преобразования f выбирают произвольную вычислительно-необратимую или труднообратимую функцию, например функцию линейного конгруэнтного преобразования вида f(x)= ax+b mod с, с начальным значением, зависящим от заданной ключевой последовательности. Константы а и b выбираются так, чтобы генерируемая последовательность не обладала периодом максимальной длины (как описано, например, в [4]), а константа с выбирается равной максимальной длине фрагментов, на которые должен разбиваться блок данных. В общем случае, значение константы с выбирается на порядок меньше длины исходного файла данных.

При обратном криптографическом преобразовании последовательность действий сохраняется, преобразования производятся аналогично, но уn-р и ys принимаются из блока зашифрованных данных.

Способ может быть реализован с помощью ЭВМ или вычислительного устройства, представленного в виде блок-схемы на фиг.1. На фиг.2 представлена схема преобразования каждого r-го элемента текущего фрагмента данных.

Устройство для реализации способа состоит из блока 1 ввода ключевой последовательности; блока 2 ввода данных исходного файла; блока 3 разбиения исходного файла на фрагменты варьируемой длины; операционного блока 4, реализующего преобразование f; блока 5 памяти устройства шифрования; устройства 6 выработки псевдослучайной последовательности h; операционного блока 7, реализующего зацепление элементов в текущем фрагменте; блока 8 выходных данных. Через блок 9 обозначен соответствующий элемент ключевой последовательности, блок 10 - операционный блок, реализующий преобразование f; 11 - элемент соответствующей текущему фрагменту данных последовательности псевдослучайных чисел h; 12 - текущий фрагмент данных. Фрагмент данных 12 состоит из n элементов. На фиг.2 показаны первый элемент фрагмента данных 12i, r-й элемент фрагмента данных 121, n-p элемент фрагмента данных 12n-р, n-1 и n-й элементы фрагмента данных 12n-i и 12n.

Способ реализуется следующим образом. Используя блок 1 (алфавитно-цифровое устройство ввода информации, как, например, описанное в [5]), в устройство вводят секретную ключевую последовательность, которая передается на вход блока 3 (операционный блок, организованный согласно [6]). С помощью блока 2 (аналогичного по устройству блоку 1) в устройство вводят данные, предназначенные для зашифрования, после чего данные помещаются в блок 4 (длинный сдвиговой регистр, описанный, например, в [7]), где разбиваются на фрагменты варьируемой длины. Длина каждого фрагмента определяется с помощью выходных значений блока 3 (операционный блок-дешифратор, описанный в [7]). После этого производится поочередная последовательная выборка каждого из фрагментов из блока 4 (как описано, к примеру, в [7]). Выбранный фрагмент данных помещается в блок 6 (реализованный, например, в виде сумматора). Одновременно с этим, на вход блока 5 (операционный блок, описанный, например, в [6] ) подаются выходные значения блока 3, а на выходе блока 5 генерируется последовательность псевдослучайных чисел, которая затем передается в блок 6. В блоке 6 к каждому k-му элементу (k=1, 2, 3,..., n) фрагмента данных прибавляется значение k-го элемента последовательности h по модулю 2. Далее фрагмент передается в блок 7 (дешифратор согласно описанному также в [7]), где происходит операция зацепления элементов фрагмента, то есть каждый r-й элемент (r = 2, 3,.... n) фрагмента суммируется по модулю 2 с n-p элементом в случае, когда rр, и суммируется по модулю 2 с s-м (s=1, 2, 3,..., n) элементом в противном случае. Параметр р берется как одно из выходных значений блока 2. Таким образом, r-й элемент блока данных преобразовывается в соответствии с правилом: yr=xr+hk,r+yn-р, если rр yr=xr+hk,r+ys, при r<р,r - результирующий r-й элемент, xr - r-й элемент фрагмента данных, hk,r - r-й элемент последовательности псевдослучайных чисел h, зависящей от ключевой последовательности, уn-р и ys - уже вычисленные n-i и s элементы соответственно. Причем s принимается равным целому числу, полученному округлением результата выражения r/2. Затем преобразованный описанным выше способом фрагмент данных передается в блок 8 (алфавитно-цифровое устройство вывода описанное, например, в [8]), где размещается соответственно тому, как был размещен в блоке 1 устройства. Процесс шифрования завершается, как только обработан последний фрагмент исходного файла данных. Зашифрованные данные извлекаются из блока 8.

При обратном криптографическом преобразовании для расшифрования данных используется устройство, идентичное данному. Расшифрование данных происходит в том же порядке.

Источники информации 1. Патент РФ 2099890 С1, кл. Н 04 L 9/00.

2. Патент РФ 2106752 С1, кл. Н 04 L 9/00.

3. Патент РФ 2130641 C1, кл. G 06 F 13/00, G 09 С 1/00, Н 04 L 9/00 - прототип.

4. Д. Кнут. Искусство программирования для ЭВМ. - М.: Мир, 1977, т.2.

5. Л. З. Бобровников. Радиотехника и электроника, 4-е изд-ие. - М.: Недра, 1990.

6. Э. Клингман. Проектирование специализированных микропроцессорных систем. - М.: Мир, 1985.

7. Й. Янсен. Курс цифровой электроники. - М.: Мир, 1987, т.2.

8. Г. Зангер. Электронные системы. Теория и применение. - М.: Мир, 1980.

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

Способ шифрования блоков данных, заключающийся в том, что на передающей стороне блок данных разбивают на фрагменты, выбор длины которых внутри блока данных производят с помощью криптографического преобразования ключевой последовательности, затем каждый из фрагментов поочередно зашифровывают, а на приемной стороне блок данных восстанавливают, отличающийся тем, что для каждого фрагмента генерируют псевдослучайную последовательность в зависимости от заданной ключевой последовательности, затем фрагмент преобразуют путем суммирования его элементов с соответствующими им элементами псевдослучайной последовательности, а затем проводят зацепление элементов внутри фрагмента с параметром зацепления р, при этом в качестве криптографического преобразования f используют функцию вида f(x)=ax+b mod с, где с=2, 3, 4..., а и b выбираются так, чтобы псевдослучайная последовательность не обладала периодом максимальной длины, а параметр p вычисляют с помощью функции преобразования f из ключевой последовательности.

РИСУНКИ

Рисунок 1, Рисунок 2