Криптография с открытым ключом, также известная как асимметричная криптография, является основополагающим элементом современной кибербезопасности. Он предполагает использование двух разных ключей: открытого ключа и закрытого ключа. Эти ключи математически связаны, однако с вычислительной точки зрения невозможно получить закрытый ключ исключительно из открытого ключа. Это свойство важно для различных криптографических функций, включая шифрование, дешифрование и цифровые подписи, которые необходимы для безопасной связи и аутентификации.
Аутентификация — это процесс проверки личности пользователя, устройства или объекта в компьютерной системе. Криптография с открытым ключом может использоваться для аутентификации с помощью таких механизмов, как цифровые подписи и инфраструктуры открытых ключей (PKI). Роль открытого ключа в этих процессах является решающей, и понимание его применения требует понимания нескольких принципов криптографии и теории чисел.
Цифровые подписи и аутентификация
Цифровая подпись — это криптографический метод, который позволяет объекту подписывать часть данных, обеспечивая получателю гарантию происхождения и целостности данных. Схема цифровой подписи обычно включает три основных алгоритма:
1. Генерация ключей: генерирует пару ключей, открытый ключ и закрытый ключ.
2. Подписание: для создания подписи данных используется закрытый ключ.
3. Проверка: используется открытый ключ для проверки подлинности подписи.
Как работают цифровые подписи
1. Генерация ключей: человек генерирует пару ключей. Закрытый ключ хранится в секрете, а открытый ключ широко распространяется.
2. подписание: человек использует свой закрытый ключ для подписи сообщения. Это делается путем создания хеша сообщения, а затем его шифрования с помощью закрытого ключа для создания подписи.
3. Проверка: Любой, у кого есть доступ к открытому ключу, может проверить подпись. Они расшифровывают подпись, используя открытый ключ, чтобы получить хэш, а затем сравнивают его с хешем полученного сообщения. Если оба хеша совпадают, подпись действительна, что доказывает, что сообщение было подписано владельцем закрытого ключа и что сообщение не было изменено.
Пример цифровой подписи для аутентификации
Рассмотрим Алису, которая хочет отправить Бобу подписанное сообщение. Алиса выполняет следующие шаги:
1. Алиса генерирует пару ключей (открытый ключ и закрытый ключ).
2. Алиса записывает сообщение и создает хеш этого сообщения.
3. Алиса шифрует хэш своим секретным ключом для создания подписи.
4. Алиса отправляет сообщение вместе с подписью Бобу.
5. Боб получает сообщение и подпись. Затем он использует открытый ключ Алисы для расшифровки подписи и получения хеша.
6. Боб хеширует полученное сообщение и сравнивает его с расшифрованным хешем. Если они совпадают, Боб может быть уверен, что сообщение действительно было подписано Алисой и не было подделано.
Инфраструктура открытых ключей (PKI)
PKI — это платформа, которая управляет ключами и сертификатами, обеспечивая масштабируемый и безопасный метод распространения открытых ключей. В него входят такие компоненты, как:
– Центры сертификации (CA): Доверенные организации, выдающие цифровые сертификаты, которые представляют собой электронные документы, связывающие открытый ключ с личностью организации.
– Регистрационные органы (РА): организации, которые проверяют личность физических лиц или организаций перед выдачей сертификата.
– Сертификаты: цифровые документы, содержащие открытый ключ и личность владельца ключа, подписанные центром сертификации.
– Списки отзыва сертификатов (CRL): Списки сертификатов, которые были отозваны до истечения срока их действия.
Аутентификация с использованием сертификатов
В PKI аутентификация может выполняться с использованием цифровых сертификатов. Когда организация представляет сертификат, получатель может проверить действительность сертификата, проверив подпись ЦС и убедившись, что сертификат не был отозван. Получатель может затем использовать открытый ключ в сертификате для проверки цифровой подписи или установления безопасного канала связи.
Математические основы
Безопасность криптографии с открытым ключом основана на теоретико-числовых принципах, таких как сложность факторизации больших целых чисел или вычисления дискретных логарифмов. Двумя фундаментальными концепциями в этом контексте являются алгоритм Евклида и теорема Эйлера.
Евклидов алгоритм
Алгоритм Евклида используется для нахождения наибольшего общего делителя (НОД) двух целых чисел. Это важно для генерации ключей в криптосистемах RSA (Ривест-Шамир-Адлеман). Алгоритм основан на том принципе, что НОД двух чисел также делит их разницу.
Фи-функция Эйлера
Фи-функция Эйлера, обозначаемая как φ(n), подсчитывает количество целых чисел до n, которые являются относительно простыми с n. Для простого числа p φ(p) = p – 1. Для двух взаимно простых чисел m и n φ(mn) = φ(m)φ(n).
Теорема Эйлера
Теорема Эйлера утверждает, что для любых целых чисел a и n, взаимно простых:
![]()
Эта теорема важна для алгоритма RSA, поскольку она гарантирует, что шифрование и дешифрование являются обратными друг другу.
Алгоритм RSA
RSA — одна из наиболее широко используемых криптосистем с открытым ключом. Он включает в себя три основных этапа:
1. Генерация ключей: выберите два больших простых числа: p и q. Вычислите n = pq и φ(n) = (p-1)(q-1). Выберите целое число e такое, что 1 < e < φ(n) и НОД(e, φ(n)) = 1. Вычислите d такое, что ed ≡ 1 (mod φ(n)). Открытый ключ — (e, n), а закрытый ключ — (d, n).
2. Шифрование: Учитывая сообщение m, вычислите зашифрованный текст c = m^e mod n.
3. дешифрование: Учитывая зашифрованный текст c, вычислите сообщение m = c^d mod n.
Аутентификация в RSA
В RSA аутентификация может быть достигнута путем изменения ролей шифрования и дешифрования:
1. Отправитель (Алиса) шифрует хэш сообщения своим закрытым ключом, создавая цифровую подпись.
2. Получатель (Боб) расшифровывает подпись с помощью открытого ключа Алисы для проверки хеша.
Пример RSA для аутентификации
1. Алиса генерирует ключи RSA: открытый ключ (e, n) и закрытый ключ (d, n).
2. Алиса пишет сообщение и создает хэш.
3. Алиса шифрует хэш своим секретным ключом для создания подписи.
4. Алиса отправляет сообщение и подпись Бобу.
5. Боб использует открытый ключ Алисы для расшифровки подписи и получения хеша.
6. Боб хеширует полученное сообщение и сравнивает его с расшифрованным хешем. Если они совпадают, подпись действительна.
Открытые ключи играют важную роль в аутентификации в криптографии с открытым ключом. Цифровые подписи и PKI используют открытые ключи для обеспечения подлинности и целостности сообщений. Математическая основа, такая как алгоритм Евклида и теорема Эйлера, обеспечивает необходимые гарантии безопасности для этих криптографических процессов. Понимая эти принципы, можно оценить надежность и надежность механизмов аутентификации на основе открытого ключа при обеспечении безопасности цифровых коммуникаций.
Другие недавние вопросы и ответы, касающиеся Основы классической криптографии EITC/IS/CCF:
- Была ли введена криптография с открытым ключом для использования в шифровании?
- Называется ли набор всех возможных ключей конкретного криптографического протокола пространством ключей в криптографии?
- Заменяются ли в шифре сдвига буквы в конце алфавита буквами из начала алфавита в соответствии с модульной арифметикой?
- Что, по мнению Шеннона, должен включать в себя блочный шифр?
- Был ли протокол DES введен для повышения безопасности криптосистем AES?
- Зависит ли безопасность блочных шифров от многократного объединения операций смешения и диффузии?
- Необходимо ли хранить функции шифрования и дешифрования в секрете, чтобы криптографический протокол оставался безопасным?
- Можно ли использовать криптоанализ для безопасной связи по незащищенному каналу связи?
- Относятся ли Интернет, GSM и беспроводные сети к незащищенным каналам связи?
- Эффективен ли исчерпывающий поиск ключа против шифров подстановки?
Дополнительные вопросы и ответы см. в разделе Основы классической криптографии EITC/IS/CCF.

