Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекції ТМЗІ.doc
Скачиваний:
103
Добавлен:
23.02.2016
Размер:
1.07 Mб
Скачать

1. Конгруэнтные датчики

Для этого класса генераторов можно сделать математически строгое заключение о том, какими свойствами обладают выходные сигналы этих генераторов с точки зрения периодичности и случайности. Одним из хороших конгруэнтных генераторов является линейный конгруэнтный датчик ПСЧ. Он вырабатывает последовательности псевдослучайных чисел T(i), описываемые соотношением

T(i+1) = (A*T(i)+C) mod m,

где А и С - константы, Т(0) - исходная величина, выбранная в качестве порождающего числа. Очевидно, что эти три величины и образуют ключ.

Такой датчик ПСЧ генерирует псевдослучайные числа с определенным периодом повторения, зависящим от выбранных значений А и С. Значение m обычно устанавливается равным 2n , где n - длина машинного слова в битах. Датчик имеет максимальный период М до того, как генерируемая последовательность начнет повторяться. Необходимо выбирать числа А и С такие, чтобы период М был максимальным. Как показано Д. Кнутом, линейный конгруэнтный датчик ПСЧ имеет максимальную длину М тогда и только тогда, когда С - нечетное, и А mod 4 = 1.

2. Датчики м-последовательностей

М-последовательности также популярны, благодаря относительной легкости их реализации. М-последовательности представляют собой линейные рекуррентные последовательности максимального периода, формируемые k-разрядными генераторами на основе регистров сдвига. На каждом такте поступивший бит сдвигает k предыдущих и к нему добавляется их сумма по модулю 2. Вытесняемый бит добавляется к гамме. Период М-последовательности, исходя из ее свойств, равен 2k-1.

Другим важным свойством М-последовательности является объем ансамбля, т.е. количество различных М-последовательностей для заданного k. Объемы ансамблей последовательности неприемлемы для практической работы, поэтому на практике часто используют последовательности Голда, образующиеся суммированием нескольких М-последовательностей. Объем ансамблей этих последовательностей на несколько порядков превосходят объемы ансамблей порождающих М-последовательностей.

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

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

Шифрование с помощью датчика ПСЧ является довольно распространенным криптографическим методом. Во многом качество шифра, построенного на основе датчика ПСЧ, определяется не только и не столько характеристиками датчика, сколько алгоритмом получения гаммы.

      1. Шифрование с помощью аналитических преобразований.

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

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

Приведем пример использования такого метода, взяв в качестве ключа квадратную матрицу третьего порядка

Заменим буквы алфавита цифрами, соответствующими их порядковому номеру в алфавите: А-О, Б-1, В-2, и т.д. Тогда отрывку текста ВАТАЛА... (текст взят произвольно) будет соответствовать последовательность 3, 0, 19, 0, 12, 0. По принятому алгоритму шифрования выполним необходимые действия:

*=

При этом зашифрованный текст будет иметь вид: 99, 62, 28, 96, 60, 24.

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

Тогда в условиях нашего примера процесс раскрытия будет выглядеть так:

*==

*==.

Таким образом, получили следующую последовательность знаков раскрытого текста: 3; 0; 19; 0; 12; 0; ..., что соответствует исходному тексту. Нетрудно видеть, что и этот метод шифрования является формализованным, что позволяет легко реализовать его программными средствами.