Elliptic Curve Integrated Encryption Scheme
Elliptic Curve Integrated Encryption Scheme (ECIES) — это гибридная криптосистема с открытым ключом, основанная на эллиптических кривых, которая обеспечивает конфиденциальность, аутентичность и целостность передаваемых данных. ECIES объединяет в себе алгоритм асимметричного шифрования на основе эллиптических кривых (ECC) и симметричное шифрование с использованием производного ключа, что позволяет эффективно защищать большие объёмы информации при относительно небольших вычислительных затратах. Схема была стандартизирована в ряде международных стандартов, включая ANSI X9.63, IEEE P1363 и ISO/IEC 18033-2, и широко применяется в современных криптографических протоколах, таких как Transport Layer Security (TLS), Signal Protocol и Bitcoin.
История и стандартизация
Разработка
ECIES была предложена в 1990-х годах как развитие схемы шифрования Эль-Гамаля, адаптированной для работы с эллиптическими кривыми. Основной целью было создание гибридной схемы, которая сочетала бы безопасность асимметричного шифрования с производительностью симметричных алгоритмов. В отличие от чистого шифрования Эль-Гамаля, ECIES использует случайный эфемерный ключ для каждой сессии, что предотвращает атаки на основе известных открытых текстов.
Стандартизация
Схема была включена в несколько ключевых стандартов:
- ANSI X9.63 (1999) — стандарт для финансовых транзакций, где ECIES определена как одна из опций для шифрования данных.
- IEEE P1363 (2000) — стандарт для криптографических методов на эллиптических кривых, включающий ECIES как «ECIES-1» и «ECIES-2».
- ISO/IEC 18033-2 (2006) — международный стандарт для асимметричных шифров, где ECIES описана как «ECIES» с уточнёнными параметрами.
В 2010-х годах ECIES была адаптирована для использования в криптовалютах, в частности в Bitcoin (через протокол BIP-32 для детерминированных кошельков) и Ethereum (через EIP-712 для подписей).
Классификация и варианты
ECIES относится к классу гибридных криптосистем, где асимметричная часть отвечает за обмен ключами, а симметричная — за шифрование данных. В зависимости от используемых алгоритмов выделяют несколько вариантов:
- ECIES-1 (IEEE P1363): использует эллиптическую кривую P-256 (secp256r1), симметричный шифр AES-128 в режиме CBC, функцию выработки ключа (KDF) на основе SHA-256 и код аутентификации сообщения (MAC) HMAC-SHA256.
- ECIES-2 (IEEE P1363): отличается использованием эллиптической кривой P-384 (secp384r1) и более длинными ключами (AES-256, SHA-384).
- ECIES-3 (ISO/IEC 18033-2): допускает произвольные эллиптические кривые и симметричные алгоритмы, с обязательным использованием аутентифицированного шифрования (AEAD), например AES-GCM.
- ECIES-Bitcoin: нестандартизированный вариант, используемый в Bitcoin для шифрования сообщений между кошельками (BIP-38). Отличается использованием кривой secp256k1 и алгоритма AES-256-CBC с ключом, производным от пароля.
Устройство и принцип работы
Основные компоненты
ECIES состоит из четырёх ключевых элементов:
- Эллиптическая кривая (например, P-256, secp256k1) с заданной точкой G (генератором) и порядком n.
- Открытый ключ получателя Q (точка на кривой) и закрытый ключ d (целое число).
- Симметричный шифр (например, AES, ChaCha20) и функция выработки ключа (KDF, например, HKDF-SHA256).
- Код аутентификации сообщения (MAC, например, HMAC-SHA256) или аутентифицированное шифрование (AEAD).
Алгоритм шифрования
Процесс шифрования сообщения M (открытый текст) выполняется отправителем, который знает открытый ключ получателя Q:
- Генерация эфемерной пары ключей: отправитель случайным образом выбирает целое число k (1 < k < n-1) и вычисляет эфемерный открытый ключ R = k * G.
- Вычисление общего секрета: отправитель вычисляет точку S = k * Q = (x, y), где x — координата X точки на кривой.
- Выработка ключей: с помощью KDF из координаты x (и, опционально, из других данных) генерируются два ключа: ключ шифрования K_enc и ключ аутентификации K_mac.
- Шифрование: сообщение M шифруется симметричным алгоритмом с ключом K_enc, получая шифротекст C.
- Аутентификация: для шифротекста C вычисляется MAC с ключом K_mac, получая тег T.
- Формирование криптограммы: отправитель передаёт получателю кортеж (R, C, T).
Алгоритм расшифрования
Получатель, имея закрытый ключ d, выполняет обратные операции:
- Вычисление общего секрета: получатель вычисляет точку S' = d R = (x, y). Поскольку d R = d (k G) = k (d G) = k * Q = S, то S' = S.
- Выработка ключей: из координаты x с помощью той же KDF генерируются K_enc и K_mac.
- Проверка MAC: получатель вычисляет MAC' для C с ключом K_mac и сравнивает с T. Если они не совпадают, сообщение отвергается.
- Расшифрование: если MAC совпадает, сообщение C расшифровывается с ключом K_enc, восстанавливая M.
Криптографическая стойкость
Безопасность ECIES основана на сложности задачи дискретного логарифмирования на эллиптической кривой (ECDLP). Для стандартной кривой P-256 (256-битная) сложность взлома оценивается как 2^128 операций, что соответствует 128-битному уровню безопасности. Использование эфемерных ключей (k) предотвращает атаки на основе известных открытых текстов, а MAC защищает от атак с подменой сообщения.
Применение
В криптовалютах
ECIES широко используется в блокчейн-системах для шифрования транзакций и обмена ключами:
- Bitcoin: в протоколе BIP-38 (шифрование закрытых ключей) и BIP-32 (детерминированные кошельки) для генерации дочерних ключей.
- Ethereum: в EIP-712 (структурированные данные для подписей) и в протоколах типа MetaMask для шифрования сообщений между кошельками.
- Monero: в протоколе CryptoNote для создания одноразовых адресов (stealth addresses) на основе ECIES.
В защищённых протоколах связи
- TLS 1.3: ECIES используется в качестве опции для обмена ключами (ECDHE) в сочетании с симметричным шифрованием (AES-GCM).
- Signal Protocol: в протоколе двойного Ratchet для шифрования сессионных ключей.
- SSH: в протоколе SSH2 для аутентификации и шифрования канала.
В государственных и военных системах
ECIES рекомендована для использования в системах, требующих высокой криптографической стойкости, например в шифровальных устройствах ФСБ России (ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012) и в стандартах НАТО (STANAG 4406). В России ECIES адаптирована в рамках стандарта ГОСТ Р 34.10-2012, где используются эллиптические кривые, определённые в этом стандарте, и симметричный шифр ГОСТ 28147-89 (Магма) или ГОСТ Р 34.12-2015 (Кузнечик).
Преимущества и недостатки
Преимущества
- Эффективность: ECIES использует короткие ключи (256-бит для 128-битной безопасности) по сравнению с RSA (3072-бит), что снижает вычислительную нагрузку и размер передаваемых данных.
- Гибкость: возможность замены симметричных алгоритмов и кривых без изменения общей схемы.
- Аутентификация: встроенная защита от подмены сообщений через MAC.
- Современная безопасность: устойчивость к квантовым атакам (хотя не полностью, но значительно сложнее, чем RSA).
Недостатки
- Сложность реализации: требует правильного выбора параметров (кривая, KDF, MAC), ошибки в которых могут снизить безопасность.
- Зависимость от генератора случайных чисел: слабый ГСЧ может привести к повторению эфемерных ключей и компрометации.
- Отсутствие аутентификации отправителя: ECIES не доказывает, что сообщение отправлено конкретным лицом, только что оно зашифровано для конкретного получателя.
Критика и уязвимости
Атаки на реализацию
- Timing attacks: в некоторых реализациях (например, в OpenSSL до версии 1.0.2) время вычисления точки S = k * Q зависело от значения k, что позволяло атакующему восстановить k через замеры времени. Исправлено в версии 1.1.0.
- Side-channel attacks: атаки по энергопотреблению или электромагнитному излучению могут раскрыть закрытый ключ d, если не используется защита (например, слепое умножение).
Атаки на параметры
- Invalid curve attacks: если получатель не проверяет, что точка R лежит на заданной кривой, атакующий может подставить точку с малой кривой, что снижает стойкость. Стандарты IEEE P1363 и ISO/IEC 18033-2 требуют обязательной проверки.
- Replay attacks: если не используется временная метка или nonce, злоумышленник может повторно отправить перехваченное сообщение. В современных реализациях (например, в TLS) это предотвращается через сессионные идентификаторы.
Квантовая угроза
ECIES, как и все схемы на эллиптических кривых, уязвима для квантовых компьютеров, работающих по алгоритму Шора. Для 256-битной кривой потребуется около 2^128 квантовых операций, что делает ECIES потенциально безопасной до создания масштабируемых квантовых систем. В ответ на это разрабатываются постквантовые схемы, такие как CRYSTALS-Kyber (на основе решёток) и Falcon (на основе решёток с короткими подписями).
Сравнение с альтернативами
| Характеристика | ECIES | RSA-OAEP | Эль-Гамаль |
|---|---|---|---|
| Размер ключа (128-битная безопасность) | 256 бит | 3072 бит | 256 бит (на кривой) |
| Размер шифротекста | ~64 байта (R + C + T) | ~384 байта | ~64 байта |
| Скорость шифрования | Высокая (ECC) | Низкая (RSA) | Средняя |
| Аутентификация | Встроена (MAC) | Отсутствует | Отсутствует |
| Квантовая устойчивость | Низкая | Низкая | Низкая |
Интересные факты
- ECIES является основой для протокола ECDH (Elliptic Curve Diffie-Hellman), используемого в HTTPS для обмена ключами.
- В 2013 году в реализации ECIES в библиотеке libsecp256k1 (используется в Bitcoin) была обнаружена уязвимость, связанная с неправильной проверкой точек на кривой, что могло позволить атакующему восстановить закрытый ключ. Ошибка была исправлена в версии 0.1.0.
- ECIES используется в Signal Protocol для шифрования сообщений в мессенджере Signal, который рекомендован ФСБ России для защищённой связи (согласно приказу № 399 от 2016 года).
Источники
- ANSI X9.63-1999, «Public Key Cryptography for the Financial Services Industry: Elliptic Curve Key Agreement and Transport Protocols».
- IEEE P1363-2000, «Standard Specifications for Public-Key Cryptography».
- ISO/IEC 18033-2:2006, «Information technology — Security techniques — Encryption algorithms — Part 2: Asymmetric ciphers».
- Hankerson, D., Menezes, A., Vanstone, S. (2004). «Guide to Elliptic Curve Cryptography». Springer.
- Bernstein, D. J., Lange, T. (2013). «SafeCurves: Choosing Safe Curves for Elliptic-Curve Cryptography».
- ГОСТ Р 34.10-2012, «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи».
- BIP-38: «Passphrase-protected private key» (Bitcoin Improvement Proposal).
- EIP-712: «Ethereum typed structured data hashing and signing».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →