- •Содержание
- •Аннотация
- •Лабораторная работа №1
- •Теоретическое введение
- •Задание на лабораторную работу
- •Порядок выполнения работы
- •Аффинная система подстановок Цезаря.
- •Задание на лабораторную работу
- •Порядок выполнения работы
- •Датчики псч
- •А) Конгруэнтные датчики
- •Б) Датчики м-последовательностей
- •Задание на лабораторную работу
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Список литературы
- •210200 – «Автоматизация технологических процессов и производств»
- •071900 – «Информационные системы и технологии»
- •220400 – «Программное обеспечение вычислительной техники
Б) Датчики м-последовательностей
М-последовательности также популярны, благодаря относительной легкости их реализации.
М-последовательности представляют собой линейные рекуррентные последовательности максимального периода, формируемые 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. Используя алгоритм шифрования данных методом гаммирования с ПСП на основе линейного конгруэнтного датчика, написать программу шифрования и дешифрования произвольного набора символов на любом языке программирования.
Используя алгоритм шифрования данных методом гаммирования с ПСП на основе М-последовательности, написать программу шифрования и дешифрования произвольного набора символов на любом языке программирования.
Порядок выполнения работы
написать на языке программирования функцию вычисления псевдослучайной последовательности чисел по определенным соотношениям.
функцию шифрования, в которую в качестве параметров передается ключ (очередное число ПСП) и символ (или строка символов) исходного текста.
функцию дешифрования, в которую в качестве параметров передается ключ (очередное число ПСП) и символ (или строка символов) зашифрованного текста.
главную функцию, которая организует ввод/вывод исходного текста и по запросу пользователя шифрует исходный или дешифрует зашифрованный текст.
Оформление отчета
В отчете следует привести краткие теоретические сведения. Кроме того, должны быть представлены: краткая блок-схема, текст программы, шифруемый набор символов, результаты выполнения программы.
Контрольные вопросы
Что понимают под гаммированием?
В чем состоит отличие между случайной и псевдослучайной последовательностями чисел?
В чем похожи моно и многоалфавитные системы шифрования и системы гаммирования?
Что такое период ПСП?
Лабораторная работа №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 этап создания ключей состоит из следующих операций:
Выбираются два простых числа p и q
Вычисляется их произведение n=(pq)
Выбирается произвольное число e (e<n), такое, что НОД(e,(p-1)(q-1))=1, то есть e должно быть взаимно простым с числом (p-1)(q-1).
Методом Евклида решается в целых числах уравнение ed+(p-1)(q-1) y=1. Здесь неизвестными являются переменные d и y – метод Евклида как раз и находит множество пар (d,y), каждая из которых является решением уравнения в целых числах.
Два числа (e,n) – публикуются как открытый ключ.
Число d хранится в строжайшем секрете – это и есть закрытый ключ, который позволит читать все послания, зашифрованные с помощью пары чисел (e,n).