Способ поточного шифрования данных
Иллюстрации
Показать всеИзобретение относится к области электросвязи и вычислительной техники. Сущность способа поточного шифрования данных заключается в формировании ключа шифрования в виде двоичного вектора длиною n бит, формировании двух или более псевдослучайных последовательностей символов в виде двоичных векторов длиною k бит, разбиении потока данных на блоки-символы в виде двоичных векторов длиною k бит, преобразовании блоков-символов в зашифрованное сообщение путем использования псевдослучайных последовательностей символов и нелинейных криптографических преобразований и передачи по линии связи, причем одну из псевдослучайных последовательностей символов формируют в виде двоичных векторов длиною к бит путем снятия информации с к различных разрядов регистра сдвига, а другую псевдослучайную последовательность формируют в виде двоичных векторов длиною к бит путем использования символа "1" в нулевом разряде двоичного вектора, а для остальных разрядов - символы, снимаемые с к-1 различных разрядов регистра и используют для их преобразования операции сложения и умножения символов в кольце класса вычетов по модулю р=2k. Технический результат заключается в повышении скорости дешифрования данных и расширения диапазона изменения стойкости шифра к атакам на основе известных и подобранных исходных текстов. 2 ил.
Реферат
Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области способов и устройств криптографического преобразования данных.
В совокупности признаков заявляемого способа используются следующие термины:
секретный ключ (или пароль) представляет из себя комбинацию битов, известную только законному пользователю;
ключ шифрования - дешифрования (шифрключ) представляет из себя комбинацию битов, используемых при шифровании информационных сигналов; шифрключ является сменным элементом шифра и используется для преобразования данного сообщения или данной совокупности сообщений; шифрключ является известным только законному пользователю или может быть выработан по детерминированным процедурам по паролю;
шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием шифрключа; шифр может быть реализован в виде программы для ЭВМ или в виде отдельного устройства;
шифрование есть процесс криптографического преобразования данных с использованием шифрключа, переводящий данные в криптограмму, представляющую собой псевдослучайную последовательность знаков, из которой получение информации без знания ключа практически невыполнимо;
дешифрование есть процесс, обратный процедуре шифрования; дешифрование обеспечивает восстановление информации по криптограмме при знании шифрключа;
двоичный вектор - это сигнал в виде последовательности нулевых и единичных символов, соответствующий представлению числа в двоичной системе исчисления.
Известны способы поточного шифрования данных (см., например, Российский стандарт шифрования стандарт СССР ГОСТ 28147-89 [1], Британский алгоритм B-Grypt, Стандарт США DES, японский алгоритм шифрования данных FEAL [2] стр.48-52, а также патент Российской Федерации на изобретение №2239290, кл. 7 Н 04 L 9/00, Н 04 К 1/06 [3]).
В известных способах поточное шифрование данных осуществляется путем формирования ключа шифрования, генерирования псевдослучайной последовательности двоичных символов и преобразования потока данных, включающего операции сложения символов по модулю два.
Однако известные способы-аналоги поточного шифрования данных [1, 2] имеют недостаток. Несмотря на то, что шифр, основанный на сложении потока псевдослучайных битов с битами исходного текста по модулю 2 является в общем случае теоретически нераспознаваемым (см. [2], стр.128) сама криптосистема не отличается стойкостью и может быть раскрыта. Если структура регистра сдвига, имеющего n-разрядов известна, то для нахождения начального состояния регистра сдвига, надо знать n символов известного открытого текста, которые складываются по модулю 2 с соответствующими n-символами шифртекста. Полученные n-символов псевдослучайной последовательности определяют состояние регистра сдвига на некоторый момент времени. Моделируя работу регистра сдвига в обратном направлении, можно определить его исходное состояние, а следовательно и ключи, используемые пользователями сети при шифровании-дешифровании информации.
Если структура регистра сдвига, имеющего n-разрядов, является неизвестной, то достаточно 2·n-символов известного открытого текста и им соответствующих 2·n-символов шифрованного текста, чтобы сравнительно быстро (в течение нескольких секунд работы ЭВМ) определить состояние регистра сдвига и вычислить используемые ключи (см., например, [4] стр.93). А это приводит к снижению стойкости шифра к атакам на основе известных и подобранных исходных текстов.
Наиболее близким по своей технической сущности к заявленному способу поточного шифрования данных является способ, представленный патентом Российской Федерации на изобретение №2239290 по заявке №2001135708 от 24.12.2001 г.
Способ прототип включает в себя формирование ключа шифрования в виде двоичного вектора длиною n-бит, подачи его для начального заполнения регистра сдвига с обратной связью, имеющего n разрядов и вырабатывающего псевдослучайную последовательность максимальной длины, содержащую 2n-1 двоичных символов, формировании двух или более псевдослучайных последовательностей символов в виде двоичных векторов длиною k бит, разбиении потока данных на блоки-символы в виде двоичных векторов длиною k бит, поочередном преобразовании блоков-символов путем использования псевдослучайных последовательностей символов и нелинейных криптографических преобразований в конечном поле Fp, p=2k+1, k∈2, 4, 8, 16 и передачу зашифрованниго сообщения по линии связи другому пользователю сети.
Однако способ-прототип имеет низкую скорость дешифрования данных и слабо регулируемый диапазон изменения стойкости шифра к атакам на основе известных или подобранных исходных текстов. Низкая скорость дешифрования данных обусловлена тем, что для обеспечения высокой стойкости шифра к атакам на основе известных или подобранных исходных текстов используется операция умножения символов в конечном поле Fp, р=2k+1, k∈2, 4, 8, 16. В этом случае для дешифрования данных необходимо определить обратные элементы символов х псевдослучайной последовательности. Вычисление обратных элементов осуществляется путем возведения символов х псевдослучайной последовательности в степень р-2 в конечном поле Fp, х-1=xp-2(mod)p, что представляет собой трудоемкую операцию, так как число умножений в конечном поле будет большим. Поскольку число k ограничено значениями k∈2, 4, 8, 16, для которых модуль сравнения р должен быть простым числом р=2k+1, то это уменьшает регулировку диапазона изменения стойкости кода к атакам на основе известных и подобранных исходных текстов.
Изобретение направлено на повышение скорости дешифрования данных и расширения диапазона изменения стойкости шифра к атакам на основе известных и подобранных исходных текстов.
Это достигается тем, что в известном способе шифрования потока данных, заключающийся в том, что формируют ключ шифрования в виде двоичного вектора длиною n бит, подают его для начального заполнения регистра сдвига с обратной связью, имеющего n разрядов и вырабатывающего псевдослучайную последовательность максимальной длины, содержащую 2n-1 двоичных символов, формируют две псевдослучайные последовательности символов в виде двоичных векторов длиною k бит, разбивают поток данных на блоки-символы в виде двоичных векторов длиною k бит, поочередно преобразуют блоки-символы в зашифрованное сообщение путем использования псевдослучайных последовательностей символов и нелинейных криптографических преобразований и передают его по линии связи, согласно изобретению, одну из псевдослучайных последовательностей символов формируют в виде двоичных векторов длиною k бит путем снятия информации с k различных разрядов регистра сдвига, а другую псевдослучайную последовательность символов формируют в виде двоичных векторов длиною k бит путем использования символа "1" в нулевом разряде двоичного вектора, а для остальных разрядов двоичного вектора используют символы, снимаемые с k-1 различных разрядов регистра сдвига и поочередно преобразуют блоки-символы путем сложения их с символами первой псевдослучайной последовательности в кольце класса вычетов по модулю р=2k и умножения полученного результата на символы второй псевдослучайной последовательности в кольце класса вычетов по модулю р=2k.
Символы первой псевдослучайной последовательности имеют элементы 0, 1, 2, 3,..., р-1, представляют собой аддитивную группу кольца класса вычетов по модулю р=2k. К ним может применяться только операция сложения символов в кольце класса вычетов по модулю р=2k. Символы второй псевдослучайной последовательности имеют нечетные числа 1, 3, 5, 7,..., р-1 и представляют собой мультипликативную группу кольца класса вычетов по модулю р=2k. К ним может применяться операция умножения символов в кольце класса вычетов по модулю р=2k.
Перечисленная совокупность существенных признаков повышает скорость дешифрования данных. Это обусловлено тем, что для чисел р=2k функция Эйлера ϕ(р)=2(k-1), где k - целое число большее двух. В этом случае по отношению к числу х в кольце класса вычетов по модулю р существуют обратные элементы х-1 только для нечетных чисел. При этом могут быть вычислены обратные элементы для декодирования сообщения:
Для вычисления обратных величин число умножений в кольце класса вычетов по модулю р=2k уменьшается более чем в два раза по отношению к вычислению обратных величин в конечном поле Fp, р=2k+1, для которого функция Эйлера ϕ(р)=2k. В этом случае q<2k-1 более чем в два раза.
Поскольку число k для кольца класса вычетов по модулю р не ограничивается значениями k∈2, 4, 8, 16, а может принимать любые целые числа более двух, то это увеличивает возможность регулировки диапазона изменения стойкости кода к атакам на основе известных или подобранных исходных текстов.
Поскольку с помощью одного регистра сдвига формируют псевдослучайные последовательности символов х мультипликативной группы кольца класса вычетов по модулю р=2k в виде двоичных векторов длиною k бит, а также псевдослучайные последовательности символов у аддитивной группы кольца класса вычетов по модулю р в виде двоичных векторов длиною k бит, то могут быть реализованы нелинейные криптографические преобразования применительно к символам исходного текста а для получения зашифрованных символов β
Поскольку символы псевдослучайной последовательности х являются элементами мультипликативной группы кольца класса вычетов по модулю р=2k, то могут быть вычислены обратные величины
а для символов у аддитивной группы кольца класса вычетов по модулю р могут быть вычислены сопряженные элементы
которые позволяют реализовать криптографические преобразования для дешифрования символов шифртекста
Поскольку при шифровании символов исходного текста используются нелинейные преобразования двух псевдослучайных последовательностей, то нижняя граница линейной сложности результирующей псевдослучайной последовательности символов кольца класса вычетов по модулю р будет определяться числом сочетаний из числа разрядов регистра сдвига с которых может сниматься информация по число комбинирующих псевдослучайных последовательностей двоичных символов. Для регистра сдвига, состоящего из n=256 разрядов, и при использовании двух псевдослучайных последовательностей символов длиною 4 бита, нижняя граница линейной сложности результирующей псевдослучайной последовательности символов будет составлять . Если вскрытие состояния регистра сдвига будет осуществляться с помощью ЭВМ, имеющей тактовую частоту 10 ГГц, то число операций, выполняемых этой ЭВМ в течение года, будет составлять ·1019, а время вскрытия составит 1 год.
Возможность технической реализации заявленного способа поточного шифрования данных поясняется следующим образом. Формирование шифрключа можно осуществлять путем ввода пароля с клавиатуры или с магнитного носителя информации в генератор псевдослучайных чисел, получая на выходе шифрключ необходимого размера.
Формирование псевдослучайной последовательности максимальной длины, содержащей 2n-1 символов, можно осуществлять путем использования линейного регистра сдвига, имеющего n разрядов, обратную связь которого определяют по виду выбранного примитивного полинома степени n. Нахождение примитивных полиномов степени n изложено в [4] на стр.106-116.
Формирование псевдослучайных последовательностей символов мультипликативной группы кольца класса вычетов по модулю р=2k в виде двоичных векторов длиною k бит можно осуществить путем снятия информации с k-1 различных разрядов регистра сдвига и использовании символа "1" в нулевом разряде двоичного вектора, а формирование псевдослучайных последовательностей символов аддитивной группы кольца класса вычетов по модулю р в виде двоичных векторов длиною k бит можно осуществить путем снятия информации с k различных разрядов регистра сдвига.
Преобразование потока данных в зашифрованное сообщение можно осуществить путем разбиения потока исходных данных на блоки-символы α в виде двоичных векторов длиною k бит, вычислении в кольце класса вычетов по модулю р значений символов β зашифрованного текста в соответствии с выбранной функцией шифрования, например, , преобразовании полученного числа β в двоичный вектор и передачу его по линии связи.
Предлагаемый способ может быть реализован с помощью ЭВМ или устройства. На фиг.1 представлена структурная схема устройства, где
блок 1 - устройство формирования ключа шифрования;
блок 2 - регистр сдвига;
блок 3 - шифрующее устройство;
блок 4 - передающее устройство.
Для простоты описания работы устройства будем пользоваться малыми числами. Будем считать, что регистр сдвига имеет 6 разрядов (длина ключа 6 бит), а весь алфавит исходного текста содержит 16 символов, тогда для передачи одного символа может быть использован двоичный вектор длиною 4 бита, а в качестве модуля сравнения может быть выбрано число p=16.
Для определения структуры регистра сдвига выбирают примитивный многочлен шестой степени, например
Для выбранного примитивного многочлена, структурная схема регистра сдвига с обратной связью будет иметь вид, представленный на фиг.2, где блоки 5-10 - разряды 1-6 регистра сдвига, а блок 11 - сумматор по модулю два. Сформированный в блоке 1 фиг.1 с помощью генератора случайных чисел ключ шифрования длиною 6 бит
поступает в регистр сдвига и используется для начального заполнения разрядов регистра сдвига. Двоичные символы с 5 и 6 разряда регистра сдвига поступают в каждом такте работы на вход сумматора 11 по модулю два, а с выхода сумматора по модулю два символы ε поступают на вход первого разряда регистра сдвига (блок 5, фиг.2). При этом состояния разрядов для каждого такта в процессе работы регистра сдвига определяются выражением
Если символы будут сниматься с шестого разряда λ6 регистра сдвига (блок 10, фиг.2), то двоичная псевдослучайная последовательность максимального периода будет иметь вид
Если двоичные числа будем снимать со 2, 3 и 4 разряда регистра сдвига (блоки 6, 7, 8, фиг.2) и на каждом такте работы регистра сдвига и с набором будем сопоставлять двоичный вектор (число) , то последовательность двоичных чисел в процессе работы регистра можно рассматривать как последовательность х чисел (символов) {1, 3, ..., 15} мультипликативной группы кольца класса вычетов по модулю р=2k в виде
Если двоичные числа будем снимать одновременно с 1, 2, 5, 6 разряда регистра сдвига (блоки 5, 6, 9, 10, фиг.2) и на каждом такте работы регистра сдвига с набором будем сопоставлять число в виде , то последовательность двоичных чисел в процессе работы регистра сдвига можно рассматривать как последовательность символов у {0, 1, 2, ..., 15} аддитивной группы кольца класса вычетов по модулю р=2k в виде
Сформированные псевдослучайные последовательности символов конечного поля х и y в виде двоичных векторов подают в шифрующее устройство 3 фиг.1, где преобразуют поступающий поток данных в зашифрованное сообщение путем использования псевдослучайных последовательностей символов х и y в соответствии с выбранным криптографическим преобразованием в кольце класса вычетов по модулю р=2k, k=4, например
На приемном конце радиолинии осуществляют дешифрование принятой последовательности символов β в соответствии с установленным криптографическим преобразованием , при этом используют обратные элементы для псевдослучайной последовательности мультипликативной группы кольца класса вычетов по модулю р=2k, х-1≡x7(mod 16) и сопряженные элементы для псевдослучайной последовательности аддитивной группы кольца класса вычетов по модулю р=2k, y*=р-y, например:
Для повышения стойкости шифра к атакам на основе известных или подобранных исходных текстов и повышения скорости дешифрования информации используют дополнительную псевдослучайную последовательность в виде двоичных векторов, биты которых складывают по модулю два с битами двоичного вектора исходного текста. В этом случае операция сложения битов по модулю два является нелинейной по отношению к операциям, используемым в кольце класса вычетов по модулю р=2k и реализуется с максимальным быстродействием.
Реализация предлагаемого способа не вызывает затруднений, так как все блоки и узлы, входящие в устройство, реализующее способ, общеизвестны и широко описаны в технической литературе.
Источники информации
1. Российский стандарт шифрования стандарт СССР ГОСТ 28147-89 Системы обработки информции. Защита криптографическая. Алгоритм криптографического преобразования.
2. С.Мафтик. Механизмы защиты в сетях ЭВМ, М., 1993 г.
3. Способ поточного шифрования данных. Патент на изобретение №2239290 по заявке №2001135708 от 24.02.2001.
4. В.И.Тупота. Адаптивные средства защиты информации в вычислительных сетях, М.: Радио и связь, 2002 г.
Способ поточного шифрования данных, заключающийся в том, что формируют ключ шифрования в виде двоичного вектора длиною n бит, подают его для начального заполнения регистра сдвига с обратной связью, имеющего n разрядов и вырабатывающего псевдослучайную последовательность максимальной длины, содержащую 2n-1 двоичных символов, формируют две или более псевдослучайные последовательности символов в виде двоичных векторов длиною k бит, разбивают поток данных на блоки-символы в виде двоичных векторов длиною k бит, поочередно преобразуют блоки-символы в зашифрованное сообщение путем использования псевдослучайных последовательностей символов и нелинейных криптографических преобразований и передают его по линии связи, отличающийся тем, что одну из псевдослучайных последовательностей символов формируют в виде двоичных векторов длиною k бит путем снятия информации с k различных разрядов регистра сдвига, а другую псевдослучайную последовательность символов формируют в виде двоичных векторов длиною k бит путем использования символа "1" в нулевом разряде двоичного вектора, а для остальных разрядов двоичного вектора используют символы, снимаемые с k-1 различных разрядов регистра сдвига, и поочередно преобразуют блоки-символы путем сложения их с символами первой псевдослучайной последовательности в кольца класса вычетов по модулю р=2к и умножения полученного результата на символы второй псевдослучайной последовательности в кольце класса вычетов по модулю р=2к.