Симметричное и асимметричное шифрование
AES и RSA
«Симметричное и асимметричное шифрование» — бесплатный урок Ethical Hacking Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ethical Hacking Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ethical Hacking Academy содержит 4 уроков всего.
Два семейства шифрования
Современное шифрование делится на два семейства в зависимости от принципа работы ключей:
- Симметричное: один и тот же ключ шифрует и расшифровывает данные. Пример: AES.
- Асимметричное: используется пара ключей, где один ключ шифрует, а другой расшифровывает данные. Пример: RSA.
В реальных системах применяются оба подхода. Понимание их преимуществ и ограничений необходимо для атак и защиты криптографических систем.
Симметричное шифрование
При симметричном шифровании обе стороны используют один секретный ключ. Один и тот же ключ запирает и отпирает данные.
- Преимущество: очень высокая скорость, идеально подходит для больших объёмов данных.
- Недостаток: сначала необходимо безопасно передать ключ. Это и есть проблема распределения ключей.
AES
AES (усовершенствованный стандарт шифрования) — основной симметричный шифр. Это блочный шифр, работающий с блоками размером 128 бит и ключами длиной 128, 192 или 256 бит.
AES работает быстро, поддерживает аппаратное ускорение на современных CPU и считается безопасным при правильном использовании. AES-256 — распространённый вариант для высокого уровня защиты.
openssl enc -aes-256-cbc -salt -in secret.txt -out secret.enc
# Prompts for a password used to derive the keyРежимы работы блочного шифра
Блочному шифру нужен режим работы, чтобы обрабатывать данные размером больше одного блока:
- ECB: небезопасен; одинаковые блоки дают одинаковый шифротекст, раскрывая закономерности. Не используйте его.
- CBC: связывает блоки с помощью вектора инициализации (IV). Лучше, но требует осторожности.
- GCM: обеспечивает и шифрование, и аутентификацию (AEAD). Современный рекомендуемый режим.
Пингвин в режиме ECB
Известная демонстрация: после шифрования изображения пингвина с помощью AES в режиме ECB контур пингвина всё ещё виден. ECB преобразует одинаковые блоки открытого текста в одинаковые блоки шифротекста, поэтому структура просматривается сквозь шифрование.
Именно поэтому при проверках безопасности следует распознавать ECB как уязвимость. Сам шифр надёжен — слабым местом является режим.
Асимметричное шифрование
Асимметричное шифрование использует математически связанную пару ключей:
- Открытый ключ: распространяется свободно. Любой может зашифровать данные для Вас с его помощью.
- Закрытый ключ: хранится в секрете. Только Вы можете расшифровать данные с его помощью.
Это решает проблему распределения ключей: Вы можете открыто публиковать открытый ключ, не снижая уровень безопасности.
RSA
RSA — классический асимметричный алгоритм. Его безопасность основана на сложности разложения произведения двух больших простых чисел на множители.
Сегодня часто используются ключи длиной 2048 бит; ключи длиной 3072 или 4096 бит обеспечивают больший запас прочности. RSA работает медленнее AES, поэтому его редко используют для непосредственного шифрования больших объёмов данных.
openssl genrsa -out private.pem 2048
openssl rsa -in private.pem -pubout -out public.pemШифрование и подпись
Асимметричные ключи выполняют две разные задачи:
- Конфиденциальность: шифруйте с помощью открытого ключа получателя; расшифровать данные можно только его закрытым ключом.
- Подлинность (подпись): подписывайте своим закрытым ключом; любой может проверить подпись с помощью Вашего открытого ключа и убедиться, что сообщение отправили Вы.
Обратите внимание: для этих двух целей ключи используются противоположным образом.
Гибридное шифрование
Реальные протоколы, такие как TLS, объединяют оба подхода. Процесс выглядит так:
- Медленная асимметричная криптография один раз используется для безопасного обмена случайным сеансовым ключом.
- Быстрый симметричный AES с этим сеансовым ключом используется для самих данных.
Так Вы получаете скорость симметричного шифрования и удобство распределения ключей, характерное для асимметричного шифрования.
Обмен ключами: Диффи — Хеллман
Диффи — Хеллман позволяет двум сторонам согласовать общий секрет по незащищённому каналу, ни разу не передав сам секрет. Этот протокол лежит в основе современного обмена ключами TLS.
Варианты на основе эллиптических кривых (ECDH, ECDSA) обеспечивают такую же безопасность, как RSA, но используют значительно меньшие ключи, благодаря чему работают быстрее и всё чаще применяются по умолчанию.
Распространённые слабые места криптографии
Надёжные алгоритмы дают сбой из-за неправильного использования. Обращайте внимание на следующие уязвимости:
- Режим ECB, раскрывающий закономерности открытого текста.
- Повторно используемые или предсказуемые IV/одноразовые значения в CBC или GCM.
- Жёстко заданные ключи в исходном коде или файлах конфигурации.
- Маленькие ключи RSA (512 или 1024 бита), которые можно разложить на множители.
- Поведение оракула дополнения, раскрывающее открытый текст по одному байту.
Математическая основа редко оказывается сломана; обычно проблема заключается в реализации.
Быстрая проверка
Примените свои знания об открытых и закрытых ключах.
Итоги
Вы сравнили два семейства шифрования:
- Симметричное (AES): один общий ключ, высокая скорость, но сложное распределение ключей. Используйте режим GCM и никогда не используйте ECB.
- Асимметричное (RSA, ECC): пара открытого и закрытого ключей, решающая проблему распределения, но низкая скорость.
- Шифруйте открытым ключом получателя, а подписывайте своим закрытым ключом.
- Гибридные системы и Диффи — Хеллман объединяют преимущества обоих подходов в TLS.
Далее: практическое распознавание и взлом хешей.
Часто задаваемые вопросы
Урок «Симметричное и асимметричное шифрование» бесплатный?
Да — полный текст урока «Симметричное и асимметричное шифрование» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ethical Hacking Academy, подпишись на CoddyKit PRO. Курс Ethical Hacking Academy содержит 4 уроков всего.
Чему я научусь в уроке «Симметричное и асимметричное шифрование»?
AES и RSA Ты практикуешь Ethical Hacking Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Ethical Hacking Academy?
Предыдущий опыт не требуется. Ethical Hacking Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Симметричное и асимметричное шифрование»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Ethical Hacking Academy?
Да. Каждый урок Ethical Hacking Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Кодирование и шифрование
- Хеширование
- Симметричное и асимметричное шифрование
- Взлом хешей