EdDSA (Ed25519) Зашифровать

Бесплатный онлайн-инструмент EdDSA (Ed25519) Зашифровать. 100% локальная обработка — ваши данные никогда не покидают устройство.

National Standards
Other
Вывод

Результат будет отображен здесь...

Ввод Зашифровать

Usage Guide

Об EdDSA (Ed25519)

EdDSA (алгоритм цифровой подписи на кривых Эдвардса) с Curve25519 — современная высокопроизводительная схема цифровой подписи, стандартизированная в RFC 8032. Это стандартный алгоритм подписи для SSH (по умолчанию в OpenSSH), широко используемый в клиентских сертификатах TLS 1.3, подключах GPG, криптовалютных кошельках (Solana, Cardano) и подписи JWT. Ed25519 обеспечивает 128-битную безопасность с удивительно малыми ключами (по 32 байта) и исключительной производительностью (~100 000 операций подписи/верификации в секунду на одном ядре).

Алгоритм подписи — не шифрования: Ed25519 — это алгоритм цифровой подписи. Он доказывает, что сообщение было подписано владельцем конкретного закрытого ключа — он не шифрует данные. Для обеспечения конфиденциальности данных объединяйте подписи Ed25519 с симметричным шифром, например ChaCha20-Poly1305 или AES-256-GCM.

Шаги использования

Этот инструмент поддерживает генерацию пар ключей Ed25519, подпись сообщений и верификацию подписей:

1. Генерация пары ключейНажмите «Сгенерировать пару ключей», чтобы создать связанную пару закрытый/открытый ключ. Закрытый ключ: 64 шестнадцатеричных символа (32-байтовый seed). Открытый ключ: 64 шестнадцатеричных символа (32-байтовая сжатая точка на Curve25519).
2. Подпись сообщенияВыберите режим «Зашифровать (Подписать)». Введите текст сообщения в поле ввода и вставьте закрытый ключ (64 hex-символа) в параметр ключа. Нажмите «Зашифровать» — на выходе получится Base64-кодированная 64-байтовая подпись.
3. Верификация подписиВыберите режим «Расшифровать (Верифицировать)». Введите данные в формате «сообщение|подпись_Base64» (разделитель — вертикальная черта). Вставьте открытый ключ (64 hex-символа) в параметр ключа. Нажмите «Расшифровать» — на выходе будет «✓ Подпись верифицирована» или сообщение об ошибке.
4. Безопасное хранение ключейСохраните закрытый ключ в надёжном месте (менеджер паролей, зашифрованное хранилище). Открытый ключ можно свободно распространять. Утрата закрытого ключа означает безвозвратную потерю способности подписывать — восстановление невозможно.
Только в браузере: Все операции генерации ключей и подписи выполняются полностью в вашем браузере с использованием WebCrypto API. Ключи и сообщения никогда не передаются на сервер.

Формат ключей

Ключи Ed25519 в этом инструменте используют компактный шестнадцатеричный формат:

Закрытый ключ64 hex-символа = 32 байта. Это seed, из которого детерминированно выводится полный ключ подписи. Должен храниться в секрете. Пример: a3f1e2d4c5b6...
Открытый ключ64 hex-символа = 32 байта. Это сжатая точка на Curve25519, соответствующая закрытому ключу. Можно свободно распространять. Пример: 5b8c9d0e1f2a...
ПодписьBase64-кодированное 64-байтовое значение (512 бит). Подписи Ed25519 детерминированы — подпись одного и того же сообщения одним и тем же закрытым ключом всегда даёт одинаковую подпись.
Формат входных данных для верификацииПри верификации поле ввода должно содержать сообщение и подпись, разделённые символом вертикальной черты: сообщение|подпись_Base64

Ed25519 vs RSA

Ed25519 и RSA оба используются для цифровых подписей, но обладают очень разными характеристиками:

Размер ключаEd25519: 32 байта (256 бит). RSA-3072 достигает эквивалентной безопасности с ключом 384 байта — в 12 раз больше. Меньший размер ключей означает более быструю передачу и меньшие накладные расходы на хранение.
ПроизводительностьEd25519 подписывает и верифицирует приблизительно в 100 раз быстрее, чем RSA-2048 на том же железе. Это важно для высоконагруженных систем, таких как серверы аутентификации.
Модель безопасностиEd25519 использует детерминированную подпись — случайный nonce не нужен. RSA-PSS требует безопасного источника случайности; слабая случайность может ослабить подписи RSA. Ed25519 полностью устраняет этот класс рисков.
РекомендацияПредпочтительно использовать Ed25519 для всех новых систем. Используйте RSA только при необходимости совместимости с устаревшими системами (например, старые TLS-клиенты или аппаратные токены без поддержки ECC).
Квантовая стойкость: Как и RSA и ECDSA, Ed25519 уязвим для достаточно мощного квантового компьютера, выполняющего алгоритм Шора. Для постквантовой безопасности рассмотрите алгоритмы, стандартизированные NIST, такие как ML-DSA (CRYSTALS-Dilithium). Однако Ed25519 остаётся лучшим практическим выбором для классических (неквантовых) моделей угроз на сегодняшний день.

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 на серверах.

Recommended Configuration:
  • ✅ Использовать ssh-keygen -t ed25519 для новых SSH-ключей
  • ✅ Защитить закрытый ключ сильной парольной фразой
  • ✅ Свободно распространять открытый ключ на серверы
  • ❌ Не использовать RSA-1024; предпочитать Ed25519 перед RSA-2048
Рекомендовано: Подпись кода и распространение ПО

Ed25519 идеально подходит для подписи выпусков ПО, образов контейнеров и обновлений прошивки. Свойство детерминированной подписи гарантирует, что одна и та же версия всегда даёт одну и ту же подпись — делая верификацию воспроизводимых сборок надёжной. Инструменты Sigstore, minisign и signify используют Ed25519. GPG поддерживает подписывающие подключи Ed25519. Компактная 64-байтовая подпись легко встраивается в файлы метаданных или манифестов.

Recommended Configuration:
  • ✅ Подписывать артефакты выпуска и контрольные суммы с помощью Ed25519
  • ✅ Использовать minisign или signify для простой подписи файлов
  • ✅ Включать файлы подписей вместе с артефактами выпуска
  • ❌ Не распространять ПО без криптографической подписи
Рекомендовано: Подпись JWT (алгоритм EdDSA)

JSON Web Tokens (JWT) поддерживают Ed25519 через идентификатор алгоритма EdDSA (RFC 8037). Использование EdDSA для JWT безопаснее, чем HMAC-SHA256 (требует совместного использования секретного ключа), и эффективнее, чем RS256 (RSA). Сервер подписывает токены закрытым ключом Ed25519; клиенты и серверы ресурсов верифицируют открытым ключом. Это обеспечивает масштабируемую аутентификацию без состояния — общий секрет между сервером аутентификации и серверами ресурсов не нужен.

Recommended Configuration:
  • ✅ Использовать EdDSA (Ed25519) для JWT в новых проектах
  • ✅ Публиковать открытый ключ на endpoint /.well-known/jwks.json
  • ✅ Периодически ротировать ключи подписи
  • ❌ Не использовать HS256 (симметричный), когда несколько сервисов должны верифицировать
Рекомендовано: Аутентификация API-запросов

Ed25519 может аутентифицировать API-запросы, подписывая полезную нагрузку запроса (метод + путь + временная метка + хэш тела) закрытым ключом. API-сервер верифицирует подпись, используя зарегистрированный открытый ключ клиента. Это безопаснее, чем API-ключи (секреты, которые могут утечь), поскольку закрытый ключ никогда не покидает клиент. В отличие от HMAC-SHA256, серверу не нужно хранить секрет — если сервер скомпрометирован, это не затрагивает всех клиентов.

Recommended Configuration:
  • ✅ Подписывать полезные нагрузки запросов с временными метками для защиты от атак воспроизведения
  • ✅ Регистрировать открытые ключи клиентов на стороне сервера (не требуется совместный секрет)
  • ✅ Использовать Ed25519 вместо HMAC, когда сервер не должен знать секреты клиентов
  • 💡 Включать nonce или временную метку в подписываемую полезную нагрузку
Допустимо: Подписи в криптовалютных кошельках

Ed25519 является нативным алгоритмом подписи для нескольких криптовалют, включая Solana, Cardano, Stellar и Near Protocol. Адреса кошельков выводятся из открытых ключей Ed25519. Транзакции подписываются соответствующим закрытым ключом. Это законный и важный сценарий использования, но учтите, что закрытые ключи криптовалют требуют особо тщательного хранения (аппаратные кошельки, защищённые анклавы) — утраченный или похищенный закрытый ключ означает безвозвратную потерю средств.

Recommended Configuration:
  • ✅ Использовать аппаратные кошельки (Ledger, Trezor) для ключей с высокой стоимостью
  • ✅ Делать резервные копии мнемонических фраз в безопасном офлайн-хранилище
  • ❌ Не хранить закрытые ключи криптовалют в обычных текстовых файлах
  • ❌ Не использовать этот браузерный инструмент для производственных ключей кошелька
Не рекомендовано: Шифрование данных

Ed25519 не может шифровать данные — попытка использовать его для шифрования является принципиальным злоупотреблением алгоритмом. Ed25519 — алгоритм подписи: он принимает сообщение и производит подпись, доказывающую подлинность. Он не преобразует сообщение в шифротекст. Для конфиденциальной связи используйте ChaCha20-Poly1305 или AES-256-GCM. Если нужно асимметричное шифрование, используйте RSA.

Recommended Configuration:
  • ❌ Не использовать 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 и ведущими руководствами по безопасности.

Обсуждение и отзывы

0 комментариев
Я