Асимметричные криптосистемы шифрования

Асимметричные криптографические системы были разработаны в 1970-х годах. Принципиальное отличие асимметричной криптосистемы от криптосистемы симметричного шифрования состоит в том, что для шифрования информации и ее последующего расшифрования используются различные ключи:

¨ открытый ключ К: используется для шифрования информации, вычисляется из секретного ключа k;

¨ секретный ключ k: используется для расшифрования информации, зашифрованной с помощью парного ему открытого ключа К.

Эти ключи различаются таким образом, что с помощью вычислений нельзя вывести секретный ключ k из открытого ключа К. Поэтому открытый ключ К может свободно передаваться по каналам связи.

Асимметричные системы называют еще двухключевыми криптографическими системами или криптосистемами с открытым ключом.

Обобщенная схема асимметричной криптосистемы шифрования с открытым ключом показана на рис. 4.18.

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

Асимметричные криптосистемы шифрования - student2.ru

Рис. 4.18. Обобщенная схема асимметричной криптосистемы шифрования

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

Процесс передачи зашифрованной информации в асимметричной криптосистеме осуществляется следующим образом:

1. Подготовительный этап:

– абонент В генерирует пару ключей: секретный ключ kB и открытый ключ КB;

–открытый ключ КB посылается абоненту А и остальным абонентам (или делается доступным, например, на разделяемом ресурсе).

2. Использование – обмен информацией между абонентами А и В:

– абонент А зашифровывает сообщение с помощью открытого ключа КB абонента В и отправляет шифртекст абоненту B;

– абонент В расшифровывает сообщение с помощью своего секретного ключа kB. Никто другой (в том числе абонент А) не может расшифровать данное сообщение, так как не имеет секретного ключа абонента В. Защита информации в асимметричной криптосистеме основана на секретности ключа kB получателя сообщения.

Асимметричные криптосистемы обладают следующими характерными особенностями:

1. Открытый ключ КB и криптограмма С могут быть отправлены по незащищенным каналам, то есть противнику известны КB и С.

2. Алгоритмы шифрования и расшифрования ЕB: М ® С, DB: С ® М являются открытыми.

Безопасность асимметричной криптосистемы обеспечивает выполнение следующих требований:

1. Вычисление пары ключей (КB, kB) получателем В на основе начального условия должно быть простым.

2. Отправитель А, зная открытый ключ КB и сообщение М, может легко вычислить криптограмму

Асимметричные криптосистемы шифрования - student2.ru (4.8)

3. Получатель В, используя секретный ключ kB и криптограмму С, может легко восстановить исходное сообщение

Асимметричные криптосистемы шифрования - student2.ru (4.9)

4. Противник, зная открытый ключ КB, при попытке вычислить секретный ключ kB наталкивается на непреодолимую вычислительную проблему.

5. Противник, зная пару (КB, С), при попытке вычислить исходное сообщение М наталкивается на непреодолимую вычислительную проблему.

Концепция асимметричных криптографических систем с открытым ключом основана на применении однонаправленных функций. Неформально однонаправленную функцию можно определить следующим об разом. Пусть X и Y – некоторые произвольные множества. Функция f: X ® Y является однонаправленной, если для всех х Î X можно легко вычислить функцию Асимметричные криптосистемы шифрования - student2.ru , где у Î Y. В то же время для большинства у Î Y достаточно сложно получить значение х Î X, такое, что Асимметричные криптосистемы шифрования - student2.ru (при этом полагают, что существует по крайней мере одно такое значение х).

Основным критерием отнесения функции f к классу однонаправленных функций является отсутствие эффективных алгоритмов обратного преобразования Y ® X.

Примером однонаправленной функции является целочисленное умножение. Прямая задача – вычисление произведения двух очень больших целых чисел Р и Q, то есть нахождение значения N = Р ´ Q является относительно несложной задачей для компьютера.

Обратная задача – факторизация, или разложение на множители большого целого числа, то есть нахождение делителей Р и Q большого целого числа N = Р ´ Q, – является практически неразрешимой при достаточно больших значениях N. По современным оценкам теории чисел, при целом Асимметричные криптосистемы шифрования - student2.ru и Р = Q для разложение числа N потребуется около 1023 операций, то есть задача практически неразрешима для современных компьютеров.

Вторым важным классом функций, используемых при построении криптосистем с открытым ключом, являются однонаправленные функции с секретом. Функция f: X ® Y относится к классу однонаправленных функций с секретом в том случае, если она является однонаправленной и, кроме того, возможно эффективное вычисление обратной функции, если известен секрет (секретное число, строка или другая информация, ассоциирующаяся с данной функцией). В качестве примера однонаправленной функции с секретом можно указать используемую в криптосистеме RSA модульную экспоненту с фиксированными модулем и показателем степени. Переменное основание модульной экспоненты используется для представления числового значения сообщения М либо криптограммы С.

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

Асимметричные криптографические системы обладают следующими важными преимуществами перед симметричными криптосистемами:

¨ в асимметричных криптосистемах решена сложная проблема распределения ключей между пользователями, так как каждый пользователь может сгенерировать свою пару ключей сам, а открытые ключи пользователей могут свободно публиковаться и распространяться по сетевым коммуникациям;

¨ исчезает квадратическая зависимость числа ключей от числа пользователей; в асимметричной криптосистеме количество используемых ключей связано с количеством абонентов линейной зависимостью (в системе из N пользователей используются 2´N ключей), а не квадратичной, как в симметричных системах;

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

Асимметричные криптосистемы имеют следующие недостатки:

¨ на настоящий момент нет математического доказательства необратимости используемых в асимметричных алгоритмах функций;

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

¨ необходимо защищать открытые ключи от подмены.

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

Алгоритм шифрования RSA

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

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

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

Асимметричные криптосистемы шифрования - student2.ru , (4.10)

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

Асимметричные криптосистемы шифрования - student2.ru . (4.11)

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

Множество Асимметричные криптосистемы шифрования - student2.ru с операциями сложения и умножения по модулю N образует арифметику по модулю N.

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

Асимметричные криптосистемы шифрования - student2.ru , (4.12)

Асимметричные криптосистемы шифрования - student2.ru . (4.13)

где Асимметричные криптосистемы шифрования - student2.ru – функция Эйлера.

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

Условие (4.13) означает, что открытый ключ КB и функция Эйлера Асимметричные криптосистемы шифрования - student2.ru должны быть взаимно простыми.

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

Асимметричные криптосистемы шифрования - student2.ru (4.14)

или

Асимметричные криптосистемы шифрования - student2.ru . (4.15)

Это можно осуществить, так как получатель В знает пару простых чисел (Р, Q) и может легко найти Асимметричные криптосистемы шифрования - student2.ru . Заметим, что kB и N должны быть взаимно простыми.

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

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

Асимметричные криптосистемы шифрования - student2.ru . (4.16)

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

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

Асимметричные криптосистемы шифрования - student2.ru . (4.17)

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

Пользователи В и А должны выполнить следующие действия:

1. Пользователь В выбирает два произвольных больших простых числа Р и Q.

2. Пользователь В вычисляет значение модуля Асимметричные криптосистемы шифрования - student2.ru .

3. Пользователь В вычисляет функцию Эйлера

Асимметричные криптосистемы шифрования - student2.ru

и выбирает случайным образом значение открытого ключа КB с учетом выполнения условий

Асимметричные криптосистемы шифрования - student2.ru .

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

Асимметричные криптосистемы шифрования - student2.ru .

5. Пользователь В пересылает пользователю А пару чисел (N, КB) по незащищенному каналу.

Если пользователь А хочет передать пользователю В сообщение М, он выполнить следующие действия:

6. Пользователь А разбивает исходный открытый текст М на блоки, каждый из которых может быть представлен в виде числа

Асимметричные криптосистемы шифрования - student2.ru .

7. Пользователь А шифрует текст, представленный в виде последовательности чисел Асимметричные криптосистемы шифрования - student2.ru , по формуле

Асимметричные криптосистемы шифрования - student2.ru

и отправляет криптограмму

Асимметричные криптосистемы шифрования - student2.ru

пользователю В.

8. Пользователь В расшифровывает принятую криптограмму

Асимметричные криптосистемы шифрования - student2.ru

используя секретный ключ kB, по формуле

Асимметричные криптосистемы шифрования - student2.ru .

В результате будет получена последовательность чисел Асимметричные криптосистемы шифрования - student2.ru , которые представляют собой исходное сообщение М. При практической реализации алгоритма RSA необходимо иметь возможность без существенных затрат генерировать большие простые числа, уметь оперативно вычислять значения ключей КB и kB.

Пример: Шифрование сообщения CAB. Для простоты вычислений будут использоваться небольшие числа. На практике применяются очень большие числа (длиной 250÷300 десятичных разрядов).

Действия пользователя В:

1. Выбирает Р = 3 и Q = 11.

2. Вычисляет модуль Асимметричные криптосистемы шифрования - student2.ru .

3. Вычисляет значение функции Эйлера для N = 33:

Асимметричные криптосистемы шифрования - student2.ru .

Выбирает в качестве открытого ключа КB произвольное число с учетом выполнения условий

Асимметричные криптосистемы шифрования - student2.ru

т.е. ключ должен быть взаимно простым с Асимметричные криптосистемы шифрования - student2.ru (целым числом, которое не имеет общих делителей с Асимметричные криптосистемы шифрования - student2.ru – 3, 7, 9 и т.д.). Пусть Асимметричные криптосистемы шифрования - student2.ru .

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

Асимметричные криптосистемы шифрования - student2.ru ;

Асимметричные криптосистемы шифрования - student2.ru ;

Асимметричные криптосистемы шифрования - student2.ru

Решение дает Асимметричные криптосистемы шифрования - student2.ru .

5. Пересылает пользователю А пару чисел (N = 33, КB = 7).

Действия пользователя А:

6. Представляет шифруемое сообщение как последовательность целых чисел в диапазоне 0...32. Пусть буква А представляется как число 1, буква В – как число 2, буква С – как число 3. Тогда сообщение CAB можно представить как последовательность чисел 312, то есть М1 = 3, М2 = 1, М3 = 2.

7. Шифрует текст, представленный в виде последовательности чисел М1, М2 и М3 используя ключ КB = 7 и N = 33, по формуле

Асимметричные криптосистемы шифрования - student2.ru .

Получает

Асимметричные криптосистемы шифрования - student2.ru ,

Асимметричные криптосистемы шифрования - student2.ru ,

Асимметричные криптосистемы шифрования - student2.ru .

Отправляет пользователю В криптограмму

С1, С2, С3 = 9, 1, 29.

Действия пользователя В:

8. Расшифровывает принятую криптограмму С1, С2, С3 используя секретный ключ kB = 3, по формуле

Асимметричные криптосистемы шифрования - student2.ru .

Получает

Асимметричные криптосистемы шифрования - student2.ru ,

Асимметричные криптосистемы шифрования - student2.ru ,

Асимметричные криптосистемы шифрования - student2.ru .

Таким образом, восстановлено исходное сообщение: CAB

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

Нетрудно видеть, что в асимметричной криптосистеме RSA количество ис­пользуемых ключей связано с количеством абонентов линейной зависимостью (в системе из N пользователей используются 2 ´ N ключей), а не квадратичной, как в симметричных системах.

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

Наши рекомендации