Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информ. без. Met_IS_3 в 1.doc
Скачиваний:
3
Добавлен:
08.05.2019
Размер:
443.9 Кб
Скачать

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

М-последовательности также популярны, благодаря относительной легкости их реализации.

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

Строго это можно представить в виде следующих отношений:

r1:=r0 r2:=r1 ... rk-1:=rk-2

r0:=a0 r1 a1 r2 ... ak-2 rk-1

Гi:= rk-

Здесь r0 r1 ... rk-1 - k однобитных регистров, a0 a1 ... ak-1 - коэффициенты непpиводимого двоичного полинома степени k-1. Гi - i-е значение выходной гаммы.

Период М-последовательности, исходя из ее свойств равен 2k-1.

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

k

5

6

7

8

9

10

16

объем ансамбля

6

8

18

16

48

60

2048

Очевидно, что такие объемы ансамблей последовательности неприемлемы.

Поэтому на практике часто используют последовательности Голда, образующиеся суммированием нескольких М-последовательностей. Объем ансамблей этих последовательностей на несколько порядков превосходят объемы ансамблей порождающих М-последовательности. Так, при k=10 ансамбль увеличивается от 1023 (М-последовательности) до 388000.

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

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

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

Задание на лабораторную работу

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

  1. Используя алгоритм шифрования данных методом гаммирования с ПСП на основе М-последовательности, написать программу шифрования и дешифрования произвольного набора символов на любом языке программирования.

Порядок выполнения работы

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

  2. функцию шифрования, в которую в качестве параметров передается ключ (очередное число ПСП) и символ (или строка символов) исходного текста.

  3. функцию дешифрования, в которую в качестве параметров передается ключ (очередное число ПСП) и символ (или строка символов) зашифрованного текста.

  4. главную функцию, которая организует ввод/вывод исходного текста и по запросу пользователя шифрует исходный или дешифрует зашифрованный текст.

Оформление отчета

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

Контрольные вопросы

  1. Что понимают под гаммированием?

  2. В чем состоит отличие между случайной и псевдослучайной последовательностями чисел?

  3. В чем похожи моно и многоалфавитные системы шифрования и системы гаммирования?

  4. Что такое период ПСП?

Лабораторная работа №4

Шифрование данных в асимметричной криптосистеме RSA

Цель работы: изучить методы шифрования данных в криптосистеме RSA и освоить их практическое применение.

Теоретическое введение

Алгоритм RSA предложен в 1978 г. тремя авторами: Р. Райвестом, А. Шамиром и А. Адлеманом. Это первый полноценный алгоритм работы с открытым ключом, который может работать как в режиме шифрования данных, так и в режиме цифровой подписи.

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

В криптосистеме RSA открытый ключ КВ, секретный ключ kB, сообщение М и криптограмма С принадлежат множеству целых чисел

ZN={0,1,2,…,N-1}

где N – модуль:

N=PQ

В данном случае P и Q – случайные большие простые числа. Для обеспечения максимальной безопасности выбирают P и Q равной длины и хранят в секрете.

Множество ZN с операциями сложения и умножения по модулю N образует арифметику по модулю N.

Открытый ключ КВ выбирают случайным образом так, чтобы выполнялись следующие условия:

где – функция Эйлера.

Функция Эйлера указывает количество положительных целых чисел в интервале от 1 до N, которые взаимно просты с N.

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

Далее, используя расширенный алгоритм Евклида, вычисляют секретный ключ kB такой, что

или

Это можно осуществить, так как получатель сообщения В знает пару простых чисел P и Q и может легко найти . Заметим, что следует произвести проверку на взаимную простоту kB и KB.

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

Шифрование определяет криптограмму С через пару (открытый ключ КВ, сообщение М) в соответствии со следующей формулой:

В качестве алгоритма быстрого вычисления значения С используется ряд последовательных возведений в квадрат целого М и умножений на М с приведением по модулю N.

Определение значения М по известным С, КВ и N практически не осуществимо при .

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

.

Подставляя в данную формулу значение для С, получаем:

Величина имеет важное значение в теории Эйлера, которая утверждает, что если НОД(x,N)=1, то

или в несколько более общей форме

.

Учитывая вышесказанное, получаем:

Таким образом, если криптограмму

возвести в степень kB, то в результате получим исходное открытое сообщение М, так как

Таким образом, получатель В, создавая криптограмму С, защищает два параметра: секретный ключ kB, пару чисел (P, Q), произведение которых дает значение модуля N.

Противнику известны лишь значения КВ и N. Если бы он смог разложить число N на множители, то, узнав тройку чисел (P, Q, KB), вычислил значение и вычислил секретный ключ. Однако, разложение достаточно большого числа на множители вычислительно не осуществимо, что и определяет криптостойкость алгоритма RSA.

Для алгоритма RSA этап создания ключей состоит из следующих операций:

  1. Выбираются два простых числа p и q

  2. Вычисляется их произведение n=(pq)

  3. Выбирается произвольное число e (e<n), такое, что НОД(e,(p-1)(q-1))=1, то есть e должно быть взаимно простым с числом (p-1)(q-1).

  4. Методом Евклида решается в целых числах уравнение ed+(p-1)(q-1) y=1. Здесь неизвестными являются переменные d и y – метод Евклида как раз и находит множество пар (d,y), каждая из которых является решением уравнения в целых числах.

  5. Два числа (e,n) – публикуются как открытый ключ.

  6. Число d хранится в строжайшем секрете – это и есть закрытый ключ, который позволит читать все послания, зашифрованные с помощью пары чисел (e,n).