Анимация
JavaScript
|
Главная Библионтека Одним из хороших конгруэнтных генераторов является линейный конгруэнтный датчик ПСЧ. Он вырабатывает последовательности псевдослучайных чисел T(i), описываемые соотношением T(i+1) = (A*T(i)+C) mod m, где A и С - константы, Т(0) - исходная величина, выбранная в качестве порождающего числа. Очевидно, что эти три величины и образуют ключ. Такой датчик ПСЧ генерирует псевдослучайные числа с определенным периодом повторения, зависящим от выбранных значений А и С. Значение т обычно устанавливается равным 2п , где п - длина машинного слова в битах. Датчик имеет максимальный период М до того, как генерируемая последовательность начнет повторяться. По причине, отмеченной ранее, необходимо выбирать числа А и С такие, чтобы период М был максимальным. Как показано Д. Кнутом, линейный конгруэнтный датчик ПСЧ имеет максимальную длину М тогда и только тогда, когда С - нечетное, и А mod 4=1. Для шифрования данных с помощью датчика ПСЧ может быть выбран ключ любого размера. Например, пусть ключ состоит из набора чисел x(j) размерностью Ь, где j=l, 2, п. Тогда создаваемую гамму шифра G можно представить как объединение непересекающихся множеств H(j). Датчики М-последовательностей М-последовательности также популярны, благодаря относительной легкости их реализации. М-последовательности представляют собой линейные рекуррентные последовательности максимального периода, формируемые А:-разрядными генераторами на основе регистров сдвига. На каждом такте поступивший бит сдвигает к предыдущих и к нему добавляется их сумма по модулю 2. Вытесняемый бит добавляется к гамме. Строго это можно представить в виде следующих отношений: Го:=ао Г1 © ai Гг © ... © ак-2 Гы ri:=rk Здесь Го Г1... Гк 1 - к однобитных регистров, ао ai... аы - коэффициенты неприводимого двоичного полинома степени к-1. Fj - i-e значение выходной гаммы. Период М-последовательности исходя из ее свойств равен 2*-1. Другим важным свойством М-последовательности является объем ансамбля, т.е. количество различных М-последовательностей для заданного к. Эта характеристика приведена в таблице:
Материал предоставлен Ю. Г. Писаревым
Очевидно, что такие объемы ансамблей последовательности неприемле- Поэтому на практике часто используют последовательности Голда, образующиеся суммированием нескольких М-последовательностей. Объем ансамблей этих последовательностей на несколько порядков превосходят объемы ансамблей порождающих М-последовательностей. Так при 10 ансамбль увеличивается от 1023 (М-последовательности) до 388000. Также перспективными представляются нелинейные датчики ПСП (например сдвиговые регистры с элементом И в цепи обратной связи), однако их свойства еще недостаточно изучены. Возможны и другие, более сложные варианты выбора порождающих чисел для гаммы шифра. Шифрование с помощью датчика ПСЧ является довольно распространенным криптографическим методом. Во многом качество шифра, построенного на основе датчика ПСЧ, определяется не только и не столько характеристиками датчика, сколько алгоритмом получения гаммы. Один из фундаментальных принципов криптологической практики гласит, даже сложные шифры могут быть очень чувствительны к простым воздействиям. Стандарт шифрования данных ГОСТ 28147-89 Важной задачей в обеспечении гарантированной безопасности информации в ИС является разработка и использования стандартных алгоритмов шифрования данных. Первым среди подобных стандартов стал американский DES, представляющий собой последовательное использование замен и перестановок. В настоящее время все чаще говорят о неоправданной сложности и невысокой криптостойкости. На практике приходится использовать его модификации. Более эффективным является отечественный стандарт шифрования данных. Он рекомендован к использованию для защиты любых данных, представленных в виде двоичного кода, хотя не исключаются и другие методы шифрования. Данный стандарт формировался с учетом мирового опыта, и в частности, были приняты во внимание недостатки и нереализованные возможности гост 28147-89 закрыт грифом ДСП поэтому дальнейшее изложение сделано по изданию Спесивцев А.В. и др. «Защита информации в персональных ЭВМ», М., Радио и связь, 1992. алгоритма DES, поэтому использовапие стандарта ГОСТ предпочтительнее. Алгоритм достаточно сложен и ниже будет описана в основном его концепция. Введем ассоциативную операцию конкатенации, используя для нее мультипликативную запись. Кроме того будем использовать следующие операции сложения: • А©В - побитовое сложение по модулю 2; • А[+]В - сложение по модулю 2 ; • А{ + }В - сложение по модулю 2 -1;. Алгоритм криптографического преобразования предусматривает несколько режимов работы. Во всех режимах используется ключ W длиной 256 бит, представляемый в виде восьми 32-разрядных чисел x(i). W=X(7)X(6)X(5)X(4)X(3)X(2)X( 1 )Х(0) Для дешифрования используется тот же ключ, но процесс дешифрования является инверсным по отношению к исходному. Самый простой из возможных режимов - замена. Пусть открытые блоки разбиты на блоки по 64 бит в каждом, которые обозначим как T(j). Очередная последовательность бит T(j) разделяется на две последовательности В(0) и А(0) по 32 бита (правый и левый блоки). Далее выполняется итеративный процесс шифрования описываемый следующими формулами, вид который зависит от :i: • Для1=1,2,24,j=(i-l)mod8; A(i) =/(A(i-l) [+] xa))©B(i-l) B(i) = A(i-l) Для i=25, 26,31, j=32-i; A(i) =/(A(i-l) [+] xa))©B(i-l) B(i) = A(i-l) Для i=32 A(32) = A(31) B(32)=/(A(31)[+] x(0))©B(31). Здесь i обозначает номер итерации. Функция/- функция шифрования. Функция шифрования включает две операции над 32-разрядным аргументом. Первая операция является подстановкой К. Блок подстановки К состоит из 8 узлов замены К(1)...К(8) с памятью 64 бита каждый. Поступающий на блок подстановки 32-разрядный вектор разбивается на 8 последовательно идущих 4-разрядных вектора, каждый из который преобразуется в 4-разрядный вектор соответствующим узлом замены, представляющим из себя таблицу из 16 целых чисел в диапазоне 0...15. Входной вектор определяет адрес строки в таблице, число из которой является выходным вектором. Затем 4-разрядные векторы последовательно объединяются в 32-разрядный выходной. 0 1 2 3 [ 4 ] 5 6 7 8 9 10 11 12 13 |