Асимметричное шифрование и пары ключей
Разберитесь в RSA и криптографии на эллиптических кривых, а также в том, как пары открытого и закрытого ключей обеспечивают безопасную связь без обмена секретами.
«Асимметричное шифрование и пары ключей» — бесплатный урок Cloud & IT Cert Prep на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cloud & IT Cert Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Как работает асимметричное шифрование
Асимметричное шифрование (также называемое криптографией с открытым ключом) использует математически связанные пары ключей: открытый ключ, который можно свободно распространять, и закрытый ключ, который необходимо хранить в секрете. Данные, зашифрованные открытым ключом, можно расшифровать только соответствующим закрытым ключом — и наоборот. Это элегантное решение устраняет проблему распределения ключей в симметричном шифровании: Вы можете открыто сообщить свой открытый ключ без ущерба для безопасности, поскольку расшифровать отправленные Вам сообщения можно только с помощью Вашего закрытого ключа.
RSA: самый распространённый алгоритм
RSA (Rivest-Shamir-Adleman) — наиболее широко используемый асимметричный алгоритм шифрования, изобретённый в 1977 году. Его безопасность основана на математической сложности разложения произведения двух больших простых чисел на множители. RSA поддерживает ключи длиной 1024, 2048 и 4096 бит — 2048-битный RSA является текущей минимальной рекомендацией, а 4096-битный вариант используется для долгосрочной безопасности. RSA применяется для обмена ключами в TLS (хотя его всё чаще заменяет ECDHE), создания цифровых подписей в сертификатах и шифрования электронной почты S/MIME.
# Generate an RSA 2048-bit key pair
openssl genrsa -out private.pem 2048
# Extract the public key
openssl rsa -in private.pem -pubout -out public.pem
# Encrypt with public key (only private key can decrypt)
openssl rsautl -encrypt -inkey public.pem -pubin -in message.txt -out encrypted.bin
# Decrypt with private key
openssl rsautl -decrypt -inkey private.pem -in encrypted.binКриптография на эллиптических кривых (ECC)
Криптография на эллиптических кривых (ECC) обеспечивает уровень безопасности, сопоставимый с RSA, используя значительно более короткие ключи. 256-битный ключ ECC обеспечивает защиту, сравнимую с 3072-битным ключом RSA. Благодаря этому ECC идеально подходит для сред с ограниченными ресурсами, таких как мобильные устройства, оборудование Интернета вещей и TLS-соединения, где важна производительность. ECC основана на математической сложности задачи дискретного логарифмирования на эллиптической кривой. К распространённым алгоритмам ECC относятся ECDSA (алгоритм цифровой подписи на эллиптических кривых) и ECDH (обмен ключами). TLS 1.3 требует обмена ключами на основе ECC.
# Generate an ECC key pair using the P-256 (secp256r1) curve
openssl ecparam -name prime256v1 -genkey -noout -out ec_private.pem
# Extract public key
openssl ec -in ec_private.pem -pubout -out ec_public.pem
# ECC 256-bit ~ RSA 3072-bit in security strength
# Much faster operations, smaller keys = faster TLS handshakesИспользование открытого ключа: направление шифрования
Понимание направления использования ключей крайне важно для экзамена Security+. Существуют два различных варианта применения, в которых роли ключей меняются местами. Для шифрования в целях обеспечения конфиденциальности: отправитель шифрует данные открытым ключом получателя, и только получатель может расшифровать их своим закрытым ключом. Для цифровых подписей в целях аутентификации: подписывающая сторона шифрует хеш своим закрытым ключом, а любой человек может Verify подпись с помощью открытого ключа подписывающей стороны. Перепутать эти направления — распространённая ошибка на экзамене. Запомните: открытый ключ шифрует, закрытый расшифровывает; закрытый ключ подписывает, открытый Verify подпись.
Цифровые подписи с асимметричными ключами
Цифровые подписи используют асимметричную криптографию для обеспечения аутентификации, целостности и неотказуемости. Процесс выглядит так: (1) отправитель вычисляет хеш сообщения, (2) шифрует хеш своим закрытым ключом, создавая подпись, (3) отправляет сообщение и подпись вместе. Получатель: (4) расшифровывает подпись с помощью открытого ключа отправителя, восстанавливая хеш, (5) самостоятельно вычисляет хеш полученного сообщения и (6) сравнивает два хеша — совпадение доказывает, что сообщение подлинное и не изменялось.
# Sign a document with ECDSA private key
openssl dgst -sha256 -sign ec_private.pem -out document.sig document.txt
# Verify the signature with the public key
openssl dgst -sha256 -verify ec_public.pem -signature document.sig document.txt
# Output: Verified OK (or Verification Failure)Почему асимметричное шифрование работает медленно
Асимметричное шифрование требует значительно больше вычислительных ресурсов, чем симметричное, и обычно работает в 100–1000 раз медленнее. Это связано с тем, что асимметричные алгоритмы выполняют сложные математические операции (возведение в степень по модулю для RSA, умножение точек на кривых для ECC) над большими числами. Поэтому асимметричное шифрование никогда не используется для непосредственного шифрования больших объёмов данных. Вместо этого оно применяется для безопасного обмена небольшим симметричным сеансовым ключом, а симметричный ключ затем шифрует сами данные. Такой гибридный подход объединяет преимущества обоих методов с точки зрения безопасности.
Создание и хранение пар ключей
Правильное управление парами ключей имеет решающее значение. Закрытые ключи следует создавать в аппаратном модуле безопасности (HSM) или хранить в зашифрованном хранилище ключей; их нельзя хранить в виде незащищённых текстовых файлов. Пары ключей имеют ограниченный срок действия, после которого их необходимо создать заново. Для пар ключей на основе сертификатов закрытый ключ ни в коем случае не должен покидать устройство или HSM, на котором он был создан. Компрометация закрытого ключа означает, что атакующий может выдавать себя за владельца ключа и расшифровывать все сообщения, зашифрованные соответствующим открытым ключом.
Контекст инфраструктуры открытых ключей
Асимметричные пары ключей обеспечивают безопасность только в том случае, если Вы можете доверять тому, что открытый ключ действительно принадлежит нужному Вам лицу или серверу. Без механизма доверия атакующий может подменить открытый ключ предполагаемого получателя своим ключом — это классическая атака «человек посередине». Инфраструктура открытых ключей (PKI) решает эту проблему: доверенный центр сертификации (CA) ставит цифровую подпись на сертификате, связывающем открытый ключ с подтверждённой личностью. Когда Вы посещаете веб-сайт HTTPS, браузер проверяет сертификат сервера по центру сертификации, которому он доверяет, подтверждая подлинность открытого ключа.
Сравнение RSA и ECC
При выборе между RSA и ECC учитывайте три фактора. Эффективность размера ключа: ECC 256 бит = RSA 3072 бит по уровню безопасности. Производительность: ECC значительно быстрее, особенно на мобильных устройствах и устройствах Интернета вещей. Распространённость: RSA имеет более широкую поддержку в устаревших системах, тогда как ECC требуется в TLS 1.3 и всё чаще предписывается современными стандартами безопасности. Оба алгоритма по-прежнему считаются безопасными при корректной реализации и использовании ключей рекомендованного размера. На экзамене Security+ необходимо знать эти компромиссы и понимать, когда уместен каждый алгоритм.
Квантовая вычислительная угроза асимметричному шифрованию
Асимметричное шифрование сталкивается с долгосрочной угрозой со стороны квантовых компьютеров. Алгоритм Шора, запущенный на достаточно мощном квантовом компьютере, может решить задачу факторизации (взломать RSA) и задачу дискретного логарифмирования (взломать ECC) за полиномиальное время, что делает уязвимыми ключи размеров, считавшихся безопасными. NIST уже выбрал постквантовые криптографические алгоритмы, включая CRYSTALS-Kyber (инкапсуляция ключей) и CRYSTALS-Dilithium (цифровые подписи), чтобы заменить RSA и ECC. Организациям, работающим с данными, которые должны оставаться конфиденциальными в течение длительного времени, следует уже сейчас начать планирование перехода на постквантовую криптографию.
Варианты применения асимметричного шифрования
Асимметричное шифрование лежит в основе многих механизмов безопасности, которыми Вы пользуетесь каждый день. HTTPS: рукопожатие TLS использует RSA или ECC для обмена ключами сеанса. SSH: аутентификация по открытому ключу заменяет пароли парами ключей. Подписание кода: поставщики программного обеспечения подписывают свой код закрытыми ключами, а Ваша OS проверяет подпись с помощью открытого ключа. Электронная почта S/MIME: сообщение шифруется открытым ключом получателя и подписывается Вашим закрытым ключом. Bitcoin и блокчейн: транзакции подписываются закрытыми ключами ECDSA. Понимание того, где эти механизмы применяются на практике, помогает лучше ориентироваться в экзаменационных вопросах.
# SSH public key authentication
# Generate ED25519 key pair (modern, faster than RSA)
ssh-keygen -t ed25519 -C 'alice@company.com'
# ED25519 is based on elliptic curves - fast and secure
# Public key goes to server: ~/.ssh/authorized_keys
# Private key stays local: ~/.ssh/id_ed25519 (protect with passphrase)Быстрая проверка
Проверьте своё понимание концепций CompTIA Security+ (SY0-701) из этого урока.
Итоги урока
В этом уроке Вы узнали, что асимметричное шифрование использует математически связанные пары ключей; RSA и ECC являются основными алгоритмами (ECC работает быстрее при меньшей длине ключа); открытые ключи шифруют данные для обеспечения конфиденциальности, а закрытые ключи подписывают данные для аутентификации; асимметричное шифрование работает медленно, но решает проблему распределения ключей. Далее мы рассмотрим хеширование и целостность данных.
Изучай Cloud & IT Cert Prep с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 150
- Уроки
- 600
Часто задаваемые вопросы
Урок «Асимметричное шифрование и пары ключей» бесплатный?
Да — полный текст урока «Асимметричное шифрование и пары ключей» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cloud & IT Cert Prep, подпишись на CoddyKit PRO. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Чему я научусь в уроке «Асимметричное шифрование и пары ключей»?
Разберитесь в RSA и криптографии на эллиптических кривых, а также в том, как пары открытого и закрытого ключей обеспечивают безопасную связь без обмена секретами. Ты практикуешь Cloud & IT Cert Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cloud & IT Cert Prep?
Предыдущий опыт не требуется. Cloud & IT Cert Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Асимметричное шифрование и пары ключей»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cloud & IT Cert Prep?
Да. Каждый урок Cloud & IT Cert Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Алгоритмы симметричного шифрования
- Асимметричное шифрование и пары ключей
- Хеширование и целостность данных
- Обмен ключами и гибридное шифрование