Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lrzi.doc
Скачиваний:
108
Добавлен:
15.03.2015
Размер:
188.42 Кб
Скачать

Федеральное агеНтСтво связи

__________________________________________________________

Государственное образовательное Учреждение

Высшего профессионального образования

«САНКТ-ПЕТЕРБУРГСКИЙ

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНАЦИЙ

им. проф. М.А. БОНЧ-БРУЕВИЧА»

__________________________________________________________________________________________

В.П. Грибачев

Учебное пособие к лабораторным работам по защите информации.

Рекомендовано УМО по образованию в области телекоммуникаций в качестве учебного пособия по специальности 210406 «Сети связи и системы коммутации»

Санкт-Петербург

2008

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

Исследование криптоалгоритма шифрования RSA.

  1. Цель работы.

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

  1. Основные теоретические положения.

Криптосистема RSA разработана Рональдом Райвестом, Ади Шамиром и Леонардом Адлеманом в 1972г. Система была названа по первым буквам их фамилий. Несмотря на сообщения последних лет об отдельных попытках успешного криптоанализа этого алгоритма, RSA по-прежнему остается одним из самых распространенных криптоалгоритмов. Поддержка RSA встроена в большинство распространенных браузеров (Firefox, IE), существует плагины RSA для Total Commandera и некоторых других ftp-клиентов. В нашей стране алгоритм не сертифицирован.

RSA относится к классу двухключевых криптосистем. Это означает, что алгоритм использует два ключа – открытый (Public) и секретный (Private).

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

Криптостойкость RSA основана на задаче факторизации или разложения на множители двух больших чисел, произведение которых образует так называемый модуль RSA. Факторизация позволяет раскрыть секретный ключ, в результате чего появляется возможность расшифровки любого зашифрованного на этом ключе секретного сообщения. Однако в настоящее время считается математически не доказанным, что для восстановления открытого текста по зашифрованному необходимо непременно производить разложение модуля на сомножители. Возможно, в будущем найдется более эффективный способ криптоанализа RSA, основанный на других принципах.

Таким образом, криптостойкость RSA определяется используемым модулем.

Для обеспечения достаточной степени криптостойкости, в настоящее время рекомендуется выбирать длину RSA – модуля не менее 1024 бит, причем в связи с быстрым прогрессом компьютерной техники эта величина всё время растет.

  1. Схема алгоритма шифрования данных RSA

  1. Выбирают два случайных простых числа (p и q) и вычисляют модуль:

n = pq

  1. Вычисляется функция Эйлера: φ(n)=(p-1)(q-1);

  2. Случайным образом выбирается секретный ключ е, при этом должно выполняться условие взаимной простоты чисел е и φ(n).

  3. Вычисляют ключ дешифрования по формуле:

ed = 1 mod φ(n);

заметим, что d и n также должны быть взаимно простыми числами.

  1. Для шифрования необходимо разбить сообщение на блоки одинаковой длинны. Число двоичных разрядов в блоке должно соответствовать числу разрядов модуля n.

  2. Шифрование блока сообщения осуществляется по формуле:

Ci=Mie mod n

  1. Дешифрование каждого блока ci осуществляется по формуле:

Mi= Cid mod n

Выбор d в качестве открытого ключа, а e в качестве секретного совершенно условный. Оба ключа совершенно равноправны. В качестве открытого ключа можно взять е, а в качестве закрытого – d.

Пример шифрования:

  1. Выбираем р = 7, q = 13, модуль n = pq = 7·13 = 91;

  2. Вычисляем функцию Эйлера φ(n) = (p-1)(q-1) = (7-1)(13-1) = 72;

  3. С учетом условий НОД(e, φ(n)) = 1 и 1 < e φ(n), выбираем секретный ключ e = 5;

  4. Исходя из условия ed = 1 mod φ(n), вычисляем парный секретный ключ d = 1 mod 72, используя расширенный алгоритм Евклида, находим открытый ключ d = 29;

  5. Берем открытое сообшение m = 225367 и разбиваем его на блоки одинаковой длинны m1 = 22, m2 = 53, m3 = 67.

  6. Шифруем: С1 = 225 mod 91 = 29, C2 = 535 mod 91 = 79, C3 = 675 mod 91 = 58;

  7. Расшифровываем: M1 = 2929 mod 91 = 22, M2 = 7929 mod 91 = 53, M3 = 5829 mod 91 = 67;

  1. Методика выполнения работы.

Задание на выполнение работы выдается преподавателем после прохождения студентами собеседования по основам криптосистем с открытым ключом.

  1. Содержание отчета

    1. Цель и назначенные работы.

    2. Описание алгоритма работы криптосистемы RSA,

    3. Блок – схема алгоритма работы криптосистемы RSA,

    4. Выводы: преимущества и недостатки криптосистемы RSA.

Лабораторная работа №2.

Исследование электронной цифровой подписи (ЭЦП) RSA.

  1. Цель работы.

Исследование алгоритма электронной цифровой подписи (ЭЦП) RSA.

  1. Основные теоретические положения.

Схема электронной цифровой подписи предназначена для обеспечения в электронных сетях защищенного документооборота, аналогично тому, как в сфере традиционного документооборота для защиты бумажных документов используются подписи и печати. Таким образом, технология ЭЦП предполагает наличие группы абонентов, посылающих друг другу подписанные электронные документы. ЭЦП обладает всеми свойствами настоящей подписи. Для того, чтобы стать абонентом системы ЭЦП, каждый пользователь должен создать пару ключей – открытый и закрытый. Открытые ключи абонентов могут быть зарегистрированы в сертифицированном удостоверяющем центре, однако в общем случае это не является обязательным условием взаимодействия абонентов системы ЭЦП.

В настоящее время системы ЭЦП могут строиться на различных алгоритмах двухключевой криптографии. Одним из первых для этих целей стал применяться алгоритм RSA. Помимо криптографического алгоритма, схема ЭЦП требует применения так называемых однонаправленных или хеш – функций. Хеш-функция называется однонаправленной, поскольку позволяет легко вычислять значение хеша от любого документа. При этом обратная математическая операция, то есть вычисление исходного документа по его хеш – значению представляет значительные вычислительные трудности. Из других свойств хеш – функций следует отметить, что выходные значения (хеш) всегда имеют строго определенную длину для каждого вида функций, кроме того, алгоритм вычисления хеш – функции построен таким образом, что каждый бит входного сообщения влияет на все биты хеша. Хеш является как бы сжатым «дайджестом» входного сообщения. Разумеется, учитывая, что существует бесконечное множество всевозможных сообщений, и что хеш имеет фиксированную длину, возможно существование не менее двух различных входных документов, которые дают одинаковые значения хешей. Однако, стандартная длинна хеша задается таким образом, чтобы при существующих вычислительных мощностях компьютеров нахождение коллизий, то есть различных документов, дающих одинаковые значения функций было вычислительно сложной задачей.

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

Существует достаточно большое разнообразие вариантов построения хеш – функций. Обычно они строятся на основе итеративной формулы, например, Hi = h (Hi-1, Mi), где в качестве функции h может быть взята некоторая легко вычисляемая функция шифрования.

На рисунке 1. изображена обобщенная схема ЭЦП на основе криптографического алгоритма RSA.

Алгоритм электронной цифровой подписи (ЭЦП) RSA

    1. Действия абонента – отправителя сообщения.

      1. Выбираются два больших и взаимно-простых числа p и q;

      2. Вычисляем модуль RSA. n=p*q;

      3. Определяем функцию Эйлера: φ(n)=(p-1)(q-1);

      4. Выбираем секретный ключ e с учетом условий: 1<e≤φ(n),

HOD(e, φ(n))=1;

      1. Определяем открытый ключ d, с учетом условий: d<n, e*d ≡ 1(mod φ(n)).

    1. Формирование ЭЦП

      1. Вычисляем хеш сообщения М: m = h(M).

      2. Шифруем хеш сообщения на секретном ключе абонента – отправителя и отправляем полученную ЭЦП, S = me(mod n), абоненту – получателю вместе с открытым текстом документа М.

    1. Проверка подлинности подписи на стороне абонента - получателя

      1. Расшифровываем ЭЦП S c помощью открытого ключа d и получаем таким образом, доступ к хеш – значению, присланному абонентом – отправителем,.

      2. Вычисляем хеш открытого документа m’= h(M).

      3. Сравниваем хеш – значения m и m’, и делаем вывод, что ЭЦП достоверна, если m = m’.

  1. Методика выполнения работы.

Задание на выполнение лабораторной работы выдается преподавателем после прохождения студентами собеседования по основам аутентификации данных и концепции формирования электронной цифровой подписи.

Порядок выполнения работы соответствует приведенному ниже практическому примеру формирования и проверки ЭЦП.

    1. Пример вычисления и проверки ЭЦП.

      1. Выбираются два больших и взаимно-простых числа 7 и 17;

      2. Вычисляем модуль RSA. n=7*17=119;

      3. Определяем функцию Эйлера: φ(n)=(7-1)(17-1)=96;

      4. Выбираем секретный ключ e с учетом условий: 1<e≤φ(n), HOD(e, φ(n))=1; e = 11;

      5. Определяем открытый ключ d, с учетом условий: d<n, e*d ≡ 1(mod φ(n)); d=35;

      6. В качестве открытого сообщения возъмем некоторую случайную последовательность чисел. М = 139. Разобъем его на блоки. M1 = 1, M2 = 3, M3 = 9;

      7. Для вычисления хеш-значения применим формулу вычисления хеш – функции. Для упрощения расчетов предположим, что инициализационный вектор хеш - функции H0 =5, а в качестве функции шифрования h будем использовать тот же RSA.

      8. Вычислим хеш сообщения. H 1=( H0 + M1)e mod n =(5+1)11 mod 119=90; H 2=( H1 + M2)e mod n =(90+3)11 mod 119=53; H 3= ( H2 + M3)e mod n =(53+9)11 mod 119=97; Таким образом, хеш данного открытого сообщения m = 97;

      9. Создаем ЭЦП путем зашифровывания полученного хеш – значения. S = He mod n = 9711 mod 119 = 6;

      10. Передаем по каналу связи открытый ключ d, текст сообщения М, модуль n и электронную цифровую подпись S.

      1. Проверка ЭЦП на стороне получателя сообщения.

      1. На стороне абонента – получателя подписанного сообщения с помощью открытого ключа получаем хеш – значение переданного документа. m´ = Sd mod n =635 mod 119 =97;

      2. Вычисляем хеш переданного открытого сообщения, аналогично тому, как это значение вычислялось на стороне абонента – отправителя. H 1=( H0 + M1)e mod n =(5+1)11 mod 119=90; H 2=( H1 + M2)e mod n =(90+3)11 mod 119=53; H 3= ( H2 + M3)e mod n =(53+9)11 mod 119=97; m = 97;

      3. Сравниваем хеш-значение, вычисленное по переданному открытому документу и хеш-значение, извлеченное из ЭЦП. m = m´ =97. Значение вычисленного хеша совпадает со значением хеша, полученным из ЭЦП, следовательно, получатель сообщения делает вывод, что полученное сообщение является подлинным.

  1. Содержание отчета.

    1. Цель и назначение работы.

    2. Описание алгоритма формирования ЭЦП RSA.

    3. Блок – схема алгоритма формирования ЭЦП RSA.

    4. Выводы: преимущества и недостатки ЭЦП RSA.

Соседние файлы в предмете Защита информации