В чем принципиальные различия между классической криптографией с симметричными ключами и криптографией с асимметричными ключами; опишите сценарии их совместного использования (hybrid crypto) и укажите возможные уязвимости на практике
Кратко и по существу. Принципиальные различия - Математическая модель: - Симметричная криптография: одна и та же секретная ключевая строка используется для шифрования и расшифровки. Обычно примеры: AES, ChaCha20. - Асимметричная: пара ключей — открытый (public) и приватный (private). Открытый — для шифрования/проверки подписи, приватный — для расшифровки/подписания. Примеры: RSA, ECC. - Распределение и доверие: - Симметричная требует предварительно согласованного секретного ключа или защищённого канала для его передачи. - Асимметричная позволяет распространять открытый ключ публично; доверие задаётся через PKI/сертификаты или веб‑of‑trust. - Производительность и размеры: - Симметричные алгоритмы значительно быстрее и экономнее по ресурсам (шифрование больших потоков/файлов). - Асимметричные медленнее и требуют больших ключей для равной безопасности: например, \( \text{RSA-2048} \approx \text{AES-112} \), \( \text{ECC-256} \approx \text{AES-128} \). - Безопасностные свойства: - Симметричный: основная цель — конфиденциальность (плюс MAC/AEAD для целостности). - Асимметричный: обеспечивает также удобства аутентификации, цифровой подписи, обмена ключами. - Криптостойкость против квантовых атак: - Асимметричные схемы (RSA, ECC) ломаются алгоритмом Шора (полиномиальное время). - Симметричные устойчивы сильнее; Grover сокращает безопасность с \(n\) бит до приблизительно \(\frac{n}{2}\) бит (поэтому нужно удвоить длину ключа). Сценарии совместного использования (hybrid crypto) - Общая идея: использовать асимметрию для безопасной установки/аутентификации симметрического сессионного ключа, а симметричный ключ — для основного обмена/стримового шифрования (высокая скорость). - Типичная схема KEM+DEM: - KEM (Key Encapsulation Mechanism): асимметрично зашифровать/обменять случайный сессионный ключ. - DEM (Data Encapsulation/Encryption Mechanism): симметрично зашифровать данные с этим ключом. - Примеры: - TLS: асимметричный обмен / ECDHE для установления сессионного ключа + AES‑GCM для трафика. ECDSA или RSA используются для аутентификации сервера/клиента. - Защищённая электронная почта: отправитель шифрует симметрический ключ открытым ключом получателя и подписывает сообщение приватным ключом. - Файловое шифрование: генерация случайного ключа для AES, этот ключ “заворачивается” (encrypted/wrapped) асимметричным ключом владельца. - Усиления и практики: - Использование AEAD (например AES‑GCM, ChaCha20‑Poly1305) для целостности + конфиденциальности. - KDF/HKDF для деривации ключей, ephemeral ключи для PFS (forward secrecy). Возможные уязвимости на практике - Управление ключами: - Утечка или компрометация приватных/секретных ключей (физически, через бэкапы, insider). - Ненадёжное хранение — ключи в текстовых файлах, слабая защита HSM/TPM. - Аутентификация открытых ключей / PKI: - Компрометация CA, поддельные сертификаты, отсутствие или задержки в CRL/OCSP — MITM. - Неправильная проверка цепочек сертификатов. - Недостаточная случайность: - Плохо сгенерированные ключи (слабый RNG) приводят к лёгкой атаке (например, повтор ключей в ECC/RSA). - Известные примеры: устройства с предсказуемым RNG. - Протокольные ошибки: - Отсутствие аутентификации ключа — MITM при обмене. - Повторное использование IV/nonce в режимах, где это критично (например, повтор nonce в AES‑GCM или в потоковых шифрах) — раскодирование/подмена. - Padding oracle атаки (Bleichenbacher для RSA PKCS#1 v1.5, padding oracle для CBC). - Слабые параметры/алгоритмы: - Малые ключи (RSA-1024), устаревшие режимы (ECB), лёгкие кривые ECC, небезопасные хеши. - Отсутствие алгоритмической гибкости (agility) — сложно перейти при компрометации. - Побочные (side‑channel) и реализация: - Тайминги, потребление энергии, электромагнитные утечки, ошибки в реализации (буферные переполнения). - Примеры: атаки по времени на RSA, атаки на реализацию AES в HW/SW. - Выбор‑шифра/атак на шифротекст: - Chosen‑ciphertext атаки против незашифрованных/неаутентифицированных схем. - Магия повторного использования ключей MAC, неправильная комбинация шифрования+MAC. - Квантовая угроза: - RSA/ECC уязвимы к Шору; нужно планировать переход на пост‑квантовые KEM или гибридные KEM (PQ + ECC) для долгосрочной секретности. - Для симметричных схем достаточно увеличить длину ключа (например, перейти с \(n\) на \(\approx 2n\) против Grover'а). Краткие рекомендации (практические меры) - Использовать hybrid: асимметричный KEM (желательно эпхемерный для PFS) + AEAD для данных. - Надёжный RNG, безопасное хранение ключей (HSM/TPM), регулярная ротация и управление жизненным циклом ключей. - Проверка параметров (длины ключа, режимы), защита от side‑channel, корректная проверка сертификатов/ревокаций. - Планирование миграции на пост‑квантовые решения для долгосрочной секретности. Если нужно — приведу конкретную последовательность шагов протокола (KEM+DEM) с формулами/KaTeX.
Принципиальные различия
- Математическая модель:
- Симметричная криптография: одна и та же секретная ключевая строка используется для шифрования и расшифровки. Обычно примеры: AES, ChaCha20.
- Асимметричная: пара ключей — открытый (public) и приватный (private). Открытый — для шифрования/проверки подписи, приватный — для расшифровки/подписания. Примеры: RSA, ECC.
- Распределение и доверие:
- Симметричная требует предварительно согласованного секретного ключа или защищённого канала для его передачи.
- Асимметричная позволяет распространять открытый ключ публично; доверие задаётся через PKI/сертификаты или веб‑of‑trust.
- Производительность и размеры:
- Симметричные алгоритмы значительно быстрее и экономнее по ресурсам (шифрование больших потоков/файлов).
- Асимметричные медленнее и требуют больших ключей для равной безопасности: например, \( \text{RSA-2048} \approx \text{AES-112} \), \( \text{ECC-256} \approx \text{AES-128} \).
- Безопасностные свойства:
- Симметричный: основная цель — конфиденциальность (плюс MAC/AEAD для целостности).
- Асимметричный: обеспечивает также удобства аутентификации, цифровой подписи, обмена ключами.
- Криптостойкость против квантовых атак:
- Асимметричные схемы (RSA, ECC) ломаются алгоритмом Шора (полиномиальное время).
- Симметричные устойчивы сильнее; Grover сокращает безопасность с \(n\) бит до приблизительно \(\frac{n}{2}\) бит (поэтому нужно удвоить длину ключа).
Сценарии совместного использования (hybrid crypto)
- Общая идея: использовать асимметрию для безопасной установки/аутентификации симметрического сессионного ключа, а симметричный ключ — для основного обмена/стримового шифрования (высокая скорость).
- Типичная схема KEM+DEM:
- KEM (Key Encapsulation Mechanism): асимметрично зашифровать/обменять случайный сессионный ключ.
- DEM (Data Encapsulation/Encryption Mechanism): симметрично зашифровать данные с этим ключом.
- Примеры:
- TLS: асимметричный обмен / ECDHE для установления сессионного ключа + AES‑GCM для трафика. ECDSA или RSA используются для аутентификации сервера/клиента.
- Защищённая электронная почта: отправитель шифрует симметрический ключ открытым ключом получателя и подписывает сообщение приватным ключом.
- Файловое шифрование: генерация случайного ключа для AES, этот ключ “заворачивается” (encrypted/wrapped) асимметричным ключом владельца.
- Усиления и практики:
- Использование AEAD (например AES‑GCM, ChaCha20‑Poly1305) для целостности + конфиденциальности.
- KDF/HKDF для деривации ключей, ephemeral ключи для PFS (forward secrecy).
Возможные уязвимости на практике
- Управление ключами:
- Утечка или компрометация приватных/секретных ключей (физически, через бэкапы, insider).
- Ненадёжное хранение — ключи в текстовых файлах, слабая защита HSM/TPM.
- Аутентификация открытых ключей / PKI:
- Компрометация CA, поддельные сертификаты, отсутствие или задержки в CRL/OCSP — MITM.
- Неправильная проверка цепочек сертификатов.
- Недостаточная случайность:
- Плохо сгенерированные ключи (слабый RNG) приводят к лёгкой атаке (например, повтор ключей в ECC/RSA).
- Известные примеры: устройства с предсказуемым RNG.
- Протокольные ошибки:
- Отсутствие аутентификации ключа — MITM при обмене.
- Повторное использование IV/nonce в режимах, где это критично (например, повтор nonce в AES‑GCM или в потоковых шифрах) — раскодирование/подмена.
- Padding oracle атаки (Bleichenbacher для RSA PKCS#1 v1.5, padding oracle для CBC).
- Слабые параметры/алгоритмы:
- Малые ключи (RSA-1024), устаревшие режимы (ECB), лёгкие кривые ECC, небезопасные хеши.
- Отсутствие алгоритмической гибкости (agility) — сложно перейти при компрометации.
- Побочные (side‑channel) и реализация:
- Тайминги, потребление энергии, электромагнитные утечки, ошибки в реализации (буферные переполнения).
- Примеры: атаки по времени на RSA, атаки на реализацию AES в HW/SW.
- Выбор‑шифра/атак на шифротекст:
- Chosen‑ciphertext атаки против незашифрованных/неаутентифицированных схем.
- Магия повторного использования ключей MAC, неправильная комбинация шифрования+MAC.
- Квантовая угроза:
- RSA/ECC уязвимы к Шору; нужно планировать переход на пост‑квантовые KEM или гибридные KEM (PQ + ECC) для долгосрочной секретности.
- Для симметричных схем достаточно увеличить длину ключа (например, перейти с \(n\) на \(\approx 2n\) против Grover'а).
Краткие рекомендации (практические меры)
- Использовать hybrid: асимметричный KEM (желательно эпхемерный для PFS) + AEAD для данных.
- Надёжный RNG, безопасное хранение ключей (HSM/TPM), регулярная ротация и управление жизненным циклом ключей.
- Проверка параметров (длины ключа, режимы), защита от side‑channel, корректная проверка сертификатов/ревокаций.
- Планирование миграции на пост‑квантовые решения для долгосрочной секретности.
Если нужно — приведу конкретную последовательность шагов протокола (KEM+DEM) с формулами/KaTeX.