EdDSA (Ed25519) Зашифровать
Бесплатный онлайн-инструмент EdDSA (Ed25519) Зашифровать. 100% локальная обработка — ваши данные никогда не покидают устройство.
Результат будет отображен здесь...
Ввод → Зашифровать
Usage Guide
Об EdDSA (Ed25519)
EdDSA (алгоритм цифровой подписи на кривых Эдвардса) с Curve25519 — современная высокопроизводительная схема цифровой подписи, стандартизированная в RFC 8032. Это стандартный алгоритм подписи для SSH (по умолчанию в OpenSSH), широко используемый в клиентских сертификатах TLS 1.3, подключах GPG, криптовалютных кошельках (Solana, Cardano) и подписи JWT. Ed25519 обеспечивает 128-битную безопасность с удивительно малыми ключами (по 32 байта) и исключительной производительностью (~100 000 операций подписи/верификации в секунду на одном ядре).
Шаги использования
Этот инструмент поддерживает генерацию пар ключей Ed25519, подпись сообщений и верификацию подписей:
Формат ключей
Ключи Ed25519 в этом инструменте используют компактный шестнадцатеричный формат:
Ed25519 vs RSA
Ed25519 и RSA оба используются для цифровых подписей, но обладают очень разными характеристиками:
FAQ
Q: В чём разница между EdDSA и ECDSA?
A: Оба алгоритма — схемы подписи на эллиптических кривых, но имеют важные различия. ECDSA (используется с кривыми NIST P-256, P-384) требует случайного nonce (k) для каждой подписи — если nonce повторно используется или слаб, закрытый ключ может быть полностью восстановлен. Именно так в 2010 году был извлечён закрытый ключ PlayStation 3 компании Sony. EdDSA использует детерминированный nonce, выведенный из закрытого ключа и хэша сообщения, делая повторное использование nonce математически невозможным. EdDSA также использует более безопасные кривые Twisted Edwards (Curve25519 для Ed25519), разработанные для сопротивления определённым атакам по сторонним каналам. Для новых реализаций EdDSA настоятельно предпочтительнее ECDSA.
Q: Почему детерминированная подпись более безопасна?
A: В ECDSA безопасность каждой подписи зависит от свежего, криптографически случайного nonce. Если злоумышленник получит две подписи, использующие один и тот же nonce (повторное использование nonce), или если nonce имеет недостаточную энтропию (слабая случайность), закрытый ключ можно алгебраически восстановить с помощью простых уравнений. Это не теория — это уже взламывало реальные системы (PS3, кошельки Bitcoin). Детерминированная подпись Ed25519 выводит nonce из хэша seed закрытого ключа и сообщения, поэтому он всегда уникален и не может быть подвержен влиянию внешних источников случайности. В пути подписи нет генератора случайных чисел — устраняется целый класс уязвимостей.
Q: Можно ли использовать EdDSA для шифрования данных?
A: Нет. EdDSA (Ed25519) — это исключительно алгоритм цифровой подписи — он не может шифровать или дешифровать данные. Подпись доказывает подлинность (кто создал сообщение), но не обеспечивает конфиденциальность (любой может прочитать сообщение). Для шифрования данных используйте симметричный шифр, например ChaCha20-Poly1305 или AES-256-GCM. Примечание: X25519 (связанный, но отличный алгоритм на основе Curve25519) может использоваться для обмена ключами (Diffie-Hellman), но это не то же самое, что Ed25519, и ключи несовместимы.
Q: Как сгенерировать SSH-ключ Ed25519?
A: Используйте встроенный инструмент генерации ключей OpenSSH:ssh-keygen -t ed25519 -C "your_email@example.com"
Это сгенерирует ~/.ssh/id_ed25519 (закрытый ключ) и ~/.ssh/id_ed25519.pub (открытый ключ). Ed25519 является рекомендуемым типом SSH-ключа с OpenSSH 6.5 (2014) и теперь является стандартным в большинстве дистрибутивов. Ключи, сгенерированные OpenSSH, используют другую кодировку (формат PEM/OpenSSH), нежели hex-формат этого инструмента, но основаны на том же криптографическом алгоритме.
Q: Что содержится в 64-байтовой подписи Ed25519?
A: Подпись Ed25519 состоит из двух 32-байтовых значений: R (сжатая точка на эллиптической кривой, выведенная из детерминированного nonce) и S (скалярное значение, вычисленное из nonce, закрытого ключа и хэша сообщения). Вместе R и S образуют 64-байтовую подпись. Верификация восстанавливает R, используя открытый ключ, сообщение и S, и проверяет соответствие R из подписи. Вся верификация включает только быструю полевую арифметику на Curve25519 — никакого модульного возведения в степень, как в RSA.
Q: Устойчив ли Ed25519 к квантовым компьютерам?
A: Нет — против достаточно мощного квантового компьютера. Квантовый компьютер, выполняющий алгоритм Шора, мог бы взломать Ed25519, решив задачу дискретного логарифма на эллиптических кривых. Та же угроза применима к RSA и ECDSA. Однако квантовый компьютер, способный взломать 128-битную безопасность эллиптических кривых, потребовал бы тысяч логических кубитов с очень низкими частотами ошибок — далеко за пределами возможностей современных технологий. Для постквантовых подписей NIST стандартизировал ML-DSA (ранее CRYSTALS-Dilithium) и SLH-DSA (SPHINCS+). Ed25519 остаётся лучшим практическим выбором для классических моделей угроз и широко развёрнут в производственных системах.
Use Cases
Рекомендовано: Ключи аутентификации SSH
Ed25519 является рекомендуемым типом SSH-ключа с OpenSSH 6.5 и теперь является стандартным в большинстве дистрибутивов Linux и macOS. По сравнению с RSA-2048, SSH-ключи Ed25519 намного короче (68 символов против 400+), быстрее генерируются, быстрее аутентифицируются и не уязвимы для атак со слабой случайностью. Используйте ssh-keygen -t ed25519 для всех новых SSH-ключей. Добавьте открытый ключ в ~/.ssh/authorized_keys на серверах.
- ✅ Использовать ssh-keygen -t ed25519 для новых SSH-ключей
- ✅ Защитить закрытый ключ сильной парольной фразой
- ✅ Свободно распространять открытый ключ на серверы
- ❌ Не использовать RSA-1024; предпочитать Ed25519 перед RSA-2048
Рекомендовано: Подпись кода и распространение ПО
Ed25519 идеально подходит для подписи выпусков ПО, образов контейнеров и обновлений прошивки. Свойство детерминированной подписи гарантирует, что одна и та же версия всегда даёт одну и ту же подпись — делая верификацию воспроизводимых сборок надёжной. Инструменты Sigstore, minisign и signify используют Ed25519. GPG поддерживает подписывающие подключи Ed25519. Компактная 64-байтовая подпись легко встраивается в файлы метаданных или манифестов.
- ✅ Подписывать артефакты выпуска и контрольные суммы с помощью Ed25519
- ✅ Использовать minisign или signify для простой подписи файлов
- ✅ Включать файлы подписей вместе с артефактами выпуска
- ❌ Не распространять ПО без криптографической подписи
Рекомендовано: Подпись JWT (алгоритм EdDSA)
JSON Web Tokens (JWT) поддерживают Ed25519 через идентификатор алгоритма EdDSA (RFC 8037). Использование EdDSA для JWT безопаснее, чем HMAC-SHA256 (требует совместного использования секретного ключа), и эффективнее, чем RS256 (RSA). Сервер подписывает токены закрытым ключом Ed25519; клиенты и серверы ресурсов верифицируют открытым ключом. Это обеспечивает масштабируемую аутентификацию без состояния — общий секрет между сервером аутентификации и серверами ресурсов не нужен.
- ✅ Использовать EdDSA (Ed25519) для JWT в новых проектах
- ✅ Публиковать открытый ключ на endpoint /.well-known/jwks.json
- ✅ Периодически ротировать ключи подписи
- ❌ Не использовать HS256 (симметричный), когда несколько сервисов должны верифицировать
Рекомендовано: Аутентификация API-запросов
Ed25519 может аутентифицировать API-запросы, подписывая полезную нагрузку запроса (метод + путь + временная метка + хэш тела) закрытым ключом. API-сервер верифицирует подпись, используя зарегистрированный открытый ключ клиента. Это безопаснее, чем API-ключи (секреты, которые могут утечь), поскольку закрытый ключ никогда не покидает клиент. В отличие от HMAC-SHA256, серверу не нужно хранить секрет — если сервер скомпрометирован, это не затрагивает всех клиентов.
- ✅ Подписывать полезные нагрузки запросов с временными метками для защиты от атак воспроизведения
- ✅ Регистрировать открытые ключи клиентов на стороне сервера (не требуется совместный секрет)
- ✅ Использовать Ed25519 вместо HMAC, когда сервер не должен знать секреты клиентов
- 💡 Включать nonce или временную метку в подписываемую полезную нагрузку
Допустимо: Подписи в криптовалютных кошельках
Ed25519 является нативным алгоритмом подписи для нескольких криптовалют, включая Solana, Cardano, Stellar и Near Protocol. Адреса кошельков выводятся из открытых ключей Ed25519. Транзакции подписываются соответствующим закрытым ключом. Это законный и важный сценарий использования, но учтите, что закрытые ключи криптовалют требуют особо тщательного хранения (аппаратные кошельки, защищённые анклавы) — утраченный или похищенный закрытый ключ означает безвозвратную потерю средств.
- ✅ Использовать аппаратные кошельки (Ledger, Trezor) для ключей с высокой стоимостью
- ✅ Делать резервные копии мнемонических фраз в безопасном офлайн-хранилище
- ❌ Не хранить закрытые ключи криптовалют в обычных текстовых файлах
- ❌ Не использовать этот браузерный инструмент для производственных ключей кошелька
Не рекомендовано: Шифрование данных
Ed25519 не может шифровать данные — попытка использовать его для шифрования является принципиальным злоупотреблением алгоритмом. Ed25519 — алгоритм подписи: он принимает сообщение и производит подпись, доказывающую подлинность. Он не преобразует сообщение в шифротекст. Для конфиденциальной связи используйте ChaCha20-Poly1305 или AES-256-GCM. Если нужно асимметричное шифрование, используйте RSA.
- ❌ Не использовать Ed25519 для шифрования данных
- ✅ Использовать AES-256-GCM или ChaCha20-Poly1305 для симметричного шифрования
- ✅ Использовать RSA-OAEP для асимметричного шифрования
- 💡 Подпись ≠ Шифрование — они служат разным целям безопасности
Сводка лучших практик
- Ed25519 — алгоритм подписи: доказывает подлинность, но не шифрует. Для конфиденциальности используйте AES-256-GCM или ChaCha20-Poly1305.
- Предпочитайте Ed25519 перед RSA и ECDSA для всех новых сценариев подписи: меньший размер ключей, более быстрые операции, детерминированная подпись.
- Закрытый ключ (64 hex-символа) должен храниться в секрете. Открытый ключ (64 hex-символа) можно свободно распространять.
- Верифицируйте подписи, используя формат ввода «сообщение|подпись_Base64». Разделитель «|» обязателен.
- Для SSH используйте ssh-keygen -t ed25519. Ed25519 — современный стандарт, рекомендованный OpenSSH, NIST и ведущими руководствами по безопасности.