С помощью обобщенного алгоритма Евклида найдите числа х и у, удовлетворяющие уравнению 30х +12y = НОД(30,12). х=1, у=-2, НОД = 6. Где ошибка? |
Криптографические алгоритмы с открытым ключом и их использование
Атака на основе выбранного открытого текста
Алгоритмы с открытым ключом чувствительны к атакам по выбранному открытому тексту. Как известно, такая атака имеет место, если криптоаналитик имеет возможность не только использовать предоставленные ему пары "текст-шифротекст", но и сам формировать нужные ему тексты и шифровать их.
Факт возможности проведения атаки по выбранному открытому тексту объясняется следующим образом. Предположим, мы используем асимметричный алгоритм F для согласования общего секретного ключа. Пусть один из абонентов отправил другому 64-битовый сеансовый ключ K, зашифрованный открытым ключом y другого абонента C=F(K, y). Злоумышленник, перехватив зашифрованное сообщение С, не сможет его, конечно, дешифровать, так как не имеет закрытого ключа x. Однако нарушитель может поступить по-другому, а именно, попытаться подобрать подходящее значение К. Для этого нужно зашифровать все возможные 64-битовые комбинации открытых текстов открытым ключом y и сравнить результаты с С. Это возможно, так значения y и C передавались в открытом виде. Особенно актуальна угроза такой атаки, если число возможных исходных сообщений не очень велико, например, если длина исходного сообщения мала или если не все исходные тексты допустимы на практике.
Для того, чтобы избежать возможности такой атаки, используют рандомизированные (или вероятностные) алгоритмы шифрования и формирования ЭЦП с открытым ключом. Такие алгоритмы шифруют одно и то же сообщение при наличии одинакового ключа каждый раз по-разному, так как используют некоторый случайный элемент. Примерами рандомизированных алгоритмов с открытым ключом могут служить алгоритмы Эль-Гамаля и алгоритмы формирования ЭЦП по ГОСТ Р34.10.
Другим вариантом предотвращения атаки на основе выбранного открытого текста является добавление в шифруемое сообщение некоторой дополнительной "случайной" информации, например, метки даты времени.
Ключевые термины
Алгоритм RSA – алгоритм шифрования с открытым ключом. Название алгоритма составлено из первых букв фамилий авторов: Р.Райвеста (R.Rivest), А.Шамира (A.Shamir) и Л.Адлемана (L.Adleman). Алгоритм RSA основан на сложности задачи факторизации больших чисел. Данный алгоритм является, возможно, наиболее популярным и широко применяемым асимметричным алгоритмом в криптографических системах.
Алгоритм Диффи-Хеллмана – алгоритм шифрования с открытым ключом. Этот алгоритм основан на трудности вычислений дискретных логарифмов. Алгоритм Диффи-Хеллмана может использоваться для распределения ключей, которые могут быть использованы для симметричного шифрования.
Алгоритм Эль-Гамаля – алгоритм шифрования с открытым ключом, основанный на трудности вычислений дискретных логарифмов. Алгоритм Эль-Гамаля может быть использован для шифрования данных, для формирования цифровой подписи и для согласования общего ключа. Этот алгоритм фактически использует схему Диффи-Хеллмана, чтобы сформировать общий секретный ключ для абонентов, передающих друг другу сообщение, и затем сообщение шифруется путем умножения его на этот ключ.
Атака "человек-в-середине" (англ. "man-in-the-middle") – термин в криптографии, обозначающий ситуацию, когда атакующий способен читать и видоизменять по своей воле сообщения, которыми обмениваются корреспонденты, причём ни один из последних не может догадаться о его присутствии в канале связи.
Криптосистемы на эллиптических кривых – группа алгоритмов с открытым ключом, использующих в качестве математического аппарата свойства эллиптических кривых на плоскости.
Краткие итоги
Алгоритм RSA – алгоритм шифрования с открытым ключом. Алгоритм RSA основан на сложности задачи факторизации больших чисел. Математические основы алгоритма RSA следующие. Выбираются два больших простых числа Р и Q и вычисляется произведение N = PQ. После этого определяется вспомогательное число f = (Р - l)(Q - 1). Затем случайным образом выбирается число d < f и взаимно простое с f. Далее необходимо найти число е, такое, что еd mod f = 1. Числа d и N будут открытым ключом пользователя, а значение е – закрытым ключом. Шифруемое сообщение должно быть представлено в цифровом виде и разбито на блоки m1, m2, m3, ... , где mi < N. Зашифрованное сообщение будет состоять из блоков ci = mid mod N. Расшифровывание производится по формуле mi = ce mod N. Алгоритм RSA может использоваться для шифрования данных небольшого размера, формирования электронной цифровой подписи, а также и в протоколах обмена ключами для симметричных систем шифрования.
Алгоритм Диффи-Хеллмана – алгоритм шифрования с открытым ключом. Этот алгоритм основан на трудности вычислений дискретных логарифмов. Алгоритм Диффи-Хеллмана может использоваться для распределения ключей. Принцип работы алгоритма следующий. Вначале выбираются большое простое число Р и число А, 1 < A < P-1, такое, что все числа из интервала [1, 2, ..., Р-l] могут быть представлены как различные степени А mod Р. Это – общие параметры. Затем два пользователя выбирают себе закрытые ключи Х1 и Х2 (Xi<P). На основе закрытых ключей пользователи вычисляют открытые ключи , которыми они обмениваются. Из чисел Y1 и Y2, а также своих закрытых ключей каждый из абонентов может сформировать общий секретный ключ Z для сеанса симметричного шифрования: .
Алгоритм Эль-Гамаля может быть использован для шифрования данных, для формирования цифровой подписи и для согласования общего ключа. Этот алгоритм фактически использует схему Диффи-Хеллмана, чтобы сформировать общий секретный ключ для абонентов, передающих друг другу сообщение, и затем сообщение шифруется путем умножения его на этот ключ. Общими открытыми параметрами в криптосистеме системе Эль-Гамаля являются числа Р (большое простое число) и А (А< P). Закрытыми ключами абонентов являются числа Хi, 1 < Х i < Р-1, открытыми ключами – значения . Пользователь, передающий сообщение, выбирает случайное число k, взаимно простое с Р-1, и вычисляет числа . Пара чисел (r, е), являющаяся шифротекстом, передается другому пользователю. Для расшифрования сообщения необходимо вычислить . В результате получается исходное сообщение m.
Криптосистемы на эллиптических кривых – самая молодая группа алгоритмов с открытым ключом, использующих в качестве математического аппарата свойства эллиптических кривых на плоскости. Основное отличие таких систем состоит в том, что по сравнению с асимметричными криптосистемами, предложенными ранее, они обеспечивают существенно более высокую криптостойкость при равных затратах на обработку и вычисления. Это объясняется тем, что вычисление обратных функций на эллиптических кривых значительно сложнее, чем, например, вычисление дискретных логарифмов или решение задачи факторизации. В результате тот уровень стойкости, который достигается, скажем, в RSA при использовании 1024-битовых модулей, в системах на эллиптических кривых реализуется при размере модуля 160 бит, что обеспечивает более простую как программную, так и аппаратную реализацию.
Несмотря на достаточную надежность алгоритмов шифрования с открытым ключом, существует возможность проведения атак в системах, использующих асимметричное шифрование. Это связано с тем, что атака может быть направлена не на сам алгоритм шифрования, а на протокол, использующий этот алгоритм. Для исключения возможностей проведения различных атак в системах шифрования с открытым ключом применяют специальные меры, например, заверяют открытые ключи пользователей цифровыми подписями удостоверяющего центра или добавляют к шифруемым сообщениям некоторую случайную информацию.
Набор для практики
Вопросы для самопроверки
- Для каких целей может применяться алгоритм RSA?
- Опишите процесс шифрования с использованием алгоритма RSA.
- Для каких целей может применяться алгоритм Диффи-Хеллмана?
- Опишите последовательность действий при использовании алгоритма Диффи-Хеллмана.
- Для каких целей может применяться алгоритм Эль-Гамаля?.
- Опишите последовательность действий при использовании алгоритма Эль-Гамаля.
- Какие атаки возможны при использовании алгоритмов шифрования с открытым ключом?
Упражнения для самопроверки
- Пусть пользователь А хочет передать пользователю Б сообщение m=10, зашифрованное с помощью алгоритма RSA. Пользователь Б имеет следующие параметры: P=7, Q=11, d=47. Опишите процесс передачи сообщения m пользователю Б.
- Пользователю системы RSA с параметрами N = 33, d = 3 передано зашифрованное сообщение c = 13. Расшифруйте это сообщение, взломав систему RSA пользователя.
- Вычислите закрытые ключи Y1, Y2 и общий ключ Z для системы Диффи-Хеллмана с параметрами А=3, Р=7, Х1=3, Х2=6.
- В системе связи, применяющей шифр Эль-Гамаля, пользователь 1 желает передать сообщение m пользователю 2. Найдите недостающие параметры при следующих заданных параметрах P = 19, A = 2, Х2 = 3, k = 5, m = 10.