Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Тема 4. Асимметричные криптосистемы




Цели и задачи изучения темы

Целью данной темы является рассмотрение вопросов построения асимметричных криптосистем, хэш-функций и электронных цифровых подписей.

Алгоритмы шифрования с открытым ключом

Одной из основных проблем при практическом использовании рассмотренных симметричных систем шифрования является проблема распределения секретных ключей между абонентами и проблема хранения этих ключей.

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

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

Рассмотрим в общем виде принцип использования односторонних функций с секретом для шифрования сообщений. Каждый абонент криптосистемы выбирает некоторую одностороннюю функцию с секретом k. Функции всех абонентов заносятся в общедоступный справочник, но значение секрета k каждый абонент, как и следует из названия, держит в секрете. Если абонент B хочет переслать сообщение M абоненту A, он извлекает из справочника функцию абонента A и с ее помощью вычисляет C = Fk (M). Шифртекст C пересылается абоненту A, который по нему вычисляет исходное сообщение M, обратив функцию с помощью секрета k. Расшифровать сообщение может только абонент A, поскольку кроме него никто не знает секрет k.

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

Наиболее известными криптосистемами с открытым ключом являются RSA, Диффи-Хеллмана, Эль Гамаля и криптосистема на основе эллиптических кривых.

Криптосистема RSA

Алгоритм RSA предложили в 1978 г. три автора: Р.Райвест (Rivest), А.Шамир (Shamir) и А.Адлеман (Adleman). Алгоритм получил свое название по первым буквам фамилий его авторов. Алгоритм RSA стал первым полноценным алгоритмом с открытым ключом, который может работать как в режиме шифрования данных, так и в режиме электронной цифровой подписи.

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

В криптосистеме RSA открытый ключ e, секретный ключ d открытый текст М и шифртекст С принадлежат множеству целых чисел

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

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

Число e выбирают случайным образом так, чтобы выполнялись условия:

,

,

где – функция Эйлера, НОД (a,b) – наибольший общий делитель чисел a и b. Функция Эйлера указывает количество положительных целых чисел в интервале от 1 до N, которые взаимно просты с N. Второе из указанных выше условий означает, что e и функция Эйлера должны быть взаимно простыми. Это гарантирует существование величины d, такой, что

или .

В RSA число e рассматривают как открытый ключ и используют для шифрования данных, а d – как секретный ключ для расшифрования.

Вычислить секретный ключ d по известным значениям e и можно с помощью расширенного алгоритма Евклида, который позволяет решить следующую задачу: даны целые неотрицательные числа a и b (), найти целые x, y, c, такие, что ax + by = c, где c = НОД(a,b).

Приведем его описание.

НА ВХОДЕ: два неотрицательных числа a и b:

НА ВЫХОДЕ: c = НОД (a, b) и целые x, y: ax + by = c.

1. Положить x2:=1, x1:=0, y2:=0, y1:=1

2. Пока b > 0 выполнят шаги 2.1 и 2.2

2.1. q:= a div b, r:= aqb, x:= x2qx1, y:= y2 – qy1

2.2. a:= b, b:= r, x2:= x1, x1:= x, y2:= y1, y1:= y

3. Положить c:= a, x:= x2, y:= y2 и возвратить (c, x, y). Конец.

Нахождение d сводится к выполнению указанного алгоритма при значениях входных параметров a = и b = e. В этом случае искомое значение d есть выходной параметр y.

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

.

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

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

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

.

Рассмотрим конкретный пример:

1) Выбрать два простых числа: P = 7, Q = 17;

2) Вычислить ;

3) Вычислить ;

4) Выбрать е так, чтобы е было взаимнопростым с и меньше, чем : пусть е = 5;

5) Определить d так, чтобы и d < 96: d = 77, т.к.
77×5 = 385 = 4×96 + 1;

6) Зашифровать сообщение М = 19:
;

7) Расшифровать C = 66: .

Общая процедура шифрования/расшифрования в криптосистеме RSA представляет собой следующую последовательность действий.

1. Получатель сообщения формирует значения , e и d, так, как было описано выше. Параметры N и e являются общедоступными, и могут быть распространенны по незащищенному каналу связи. Параметры P, Q и d являются секретными.

2. Отправитель сообщения, зная N и e, осуществляет шифрование сообщения. Если открытый текст представляет собой число , то он разбивается на блоки, каждый из которых может быть представлен в виде числа . Каждый такой блок подвергается преобразованию:

.

В итоге получается шифртекст , который отправляется получателю.

3. Получатель расшифровывает принятый шифртекст , используя секретный ключ d по формуле:

.

В результате получается последовательность чисел , которые представляют собой открытый текст M.





Поделиться с друзьями:


Дата добавления: 2016-10-06; Мы поможем в написании ваших работ!; просмотров: 491 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Бутерброд по-студенчески - кусок черного хлеба, а на него кусок белого. © Неизвестно
==> читать все изречения...

2414 - | 2335 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.