Инструмент подписи ECDSA
Алгоритм цифровой подписи на эллиптических кривых
Генерация ключевой пары ECDSA
Генерация новой случайной ключевой пары ECDSA для выбранной кривой. Закрытый ключ должен храниться в секрете; открытый ключ можно передавать.
Вывести открытый ключ из закрытого
Введите существующий закрытый ключ для вычисления соответствующего открытого ключа.
Документация
ECDSA (Алгоритм цифровой подписи на эллиптических кривых) — широко используемая схема цифровой подписи, основанная на криптографии эллиптических кривых. Обеспечивает тот же уровень безопасности, что и RSA, но с гораздо меньшими размерами ключей, что делает его идеальным для сред с ограниченными ресурсами, таких как мобильные устройства и блокчейн-сети.
Ключевые особенности
- Малый размер ключа: 256-битный ECDSA обеспечивает безопасность сравнимую с 3072-битным RSA
- Быстрые операции: Подпись и проверка значительно быстрее чем RSA
- Компактные подписи: Подписи ECDSA намного меньше подписей RSA
- Множество кривых: Поддержка кривых secp256k1, P-256, P-384 и P-521
- Отраслевой стандарт: Используется в Bitcoin, Ethereum, TLS и многих других протоколах
Поддерживаемые кривые
- secp256k1: Кривая, используемая Bitcoin и Ethereum. 256-битная безопасность, оптимизирована для эффективной реализации.
- P-256 (secp256r1): Стандартная кривая NIST, широко используется в TLS, государственных приложениях и WebCrypto API.
- P-384 (secp384r1): Стандартная кривая NIST обеспечивающая 192-битный уровень безопасности, используется в приложениях высокой безопасности.
- P-521 (secp521r1): Стандартная кривая NIST обеспечивающая 256-битный уровень безопасности, кривая ECDSA с наивысшей безопасностью.
Алгоритмы хеширования
- SHA-256: Стандартный выбор для большинства приложений. Используется с кривыми P-256 и secp256k1.
- SHA-384: Рекомендуется для кривой P-384 для соответствия уровню безопасности.
- SHA-512: Рекомендуется для кривой P-521. Обеспечивает 256-битную безопасность.
- Keccak-256: Используется Ethereum для подписи транзакций. Не SHA-3, а оригинальный Keccak с 256-битным выводом.
Типичные случаи использования
- Bitcoin и блокчейн: secp256k1 с двойным хешем SHA-256 для подписи транзакций.
- Ethereum: secp256k1 с Keccak-256 для подписи транзакций и сообщений.
- Сертификаты TLS/SSL: Кривая P-256 для подписей сертификатов HTTPS.
- Подпись кода: Подписание релизов программного обеспечения для обеспечения подлинности и целостности.
- Аутентификация API: Подпись API-запросов для предотвращения подделки и проверки личности.
Лучшие практики безопасности
- Защита закрытых ключей: Никогда не раскрывайте и не передавайте свой закрытый ключ. Используйте HSM для критических приложений.
- Использование безопасных случайных чисел: ECDSA требует криптографически безопасных случайных чисел. Этот инструмент использует Web Crypto API.
- Проверка открытых ключей: Всегда проверяйте открытые ключи через доверенный канал перед принятием подписей.
- Клиентская обработка: Этот инструмент полностью работает в вашем браузере. Ваши ключи никогда не покидают ваше устройство.
- Изменчивость подписи: Подписи ECDSA могут быть изменяемыми. Используйте канонические (low-S) подписи при необходимости.
ECDSA против других схем подписи
| Характеристика | ECDSA (P-256) | RSA-2048 | Ed25519 |
|---|---|---|---|
| Размер закр. ключа | 32 байта | 256 байт | 32 байта |
| Размер откр. ключа | 64 байта | 256 байт | 32 байта |
| Размер подписи | 64 байта | 256 байт | 64 байта |
| Скорость подписи | Быстро | Медленно | Очень быстро |
| Скорость проверки | Средне | Быстро | Очень быстро |
| Детерминистическая | RFC 6979 | Да | Да |
Связанные инструменты
Инструмент подписи Ed25519
Создание пар ключей Ed25519, подпись сообщений и проверка подписей с использованием алгоритма цифровой подписи на кривой Эдвардса
RSA Шифрование/Дешифрование
Использование асимметричного шифрования RSA для шифрования открытым ключом, дешифрования закрытым ключом, цифровой подписи и проверки
SHA Генератор хешей
Онлайн-генератор SHA хешей с поддержкой алгоритмов SHA-1, SHA-256, SHA-384, SHA-512
JWT Кодировщик/Декодер
Декодирование, проверка и генерация JSON Web Tokens с поддержкой нескольких алгоритмов подписи