Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
python-ecdsa — подпись/проверка ECDSA и согласование ключей ECDH на чистом Python | Kitploit
Инструменты/GitHubGitHub/tlsfuzzer/python-ecdsa
Инструменты шифрования/дешифрованияКриптографияУтилиты и фреймворкиАутентификацияОбучение и Образование
GitHubtlsfuzzer/python-ecdsa

python-ecdsa

подпись/проверка ECDSA и согласование ключей ECDH на чистом Python

Репозиторий
975342183 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

ECDSA и ECDH на чистом Python

GitHub CI Documentation Status Coverage Status condition coverage mutation score CodeQL Latest Version Code style: black

Это простая в использовании реализация ECC (эллиптической криптографии) с поддержкой ECDSA (алгоритма цифровой подписи на эллиптических кривых), EdDSA (алгоритма цифровой подписи на кривых Эдвардса) и ECDH (протокола Диффи—Хеллмана на эллиптических кривых), реализованная чисто на Python и распространяемая под лицензией MIT. С помощью этой библиотеки вы можете быстро создавать пары ключей (подписывающий ключ и проверяющий ключ), подписывать сообщения и проверять подписи. Вы также можете согласовать общий секретный ключ на основе обменянных открытых ключей. Ключи и подписи очень короткие, что упрощает их обработку и включение в другие протоколы.

ПРИМЕЧАНИЕ. Эту библиотеку не следует использовать в производственных средах; подробнее см. Security.

Возможности

Эта библиотека обеспечивает генерацию ключей, подписание, проверку и вывод общего секретного ключа для пяти популярных кривых NIST «Suite B» GF(p) (простого поля) с длиной ключа 192, 224, 256, 384 и 521 бит. «Короткие имена» этих кривых, известные инструменту OpenSSL (openssl ecparam -list_curves): prime192v1, secp224r1, prime256v1, secp384r1 и secp521r1. Также включена 256-битная кривая secp256k1, используемая в Bitcoin. Кроме того, поддерживаются обычные (не скрученные) варианты кривых Brainpool от 160 до 512 бит. «Короткие имена» этих кривых: brainpoolP160r1, brainpoolP192r1, brainpoolP224r1, brainpoolP256r1, brainpoolP320r1, brainpoolP384r1, brainpoolP512r1. Также включены некоторые небольшие кривые из стандарта SEC (в основном для ускорения тестирования библиотеки): secp112r1, secp112r2, secp128r1 и secp160r1. Генерация ключей, подписание и проверка также поддерживаются для кривых Ed25519 и Ed448. Другие кривые не включены, но добавить поддержку дополнительных кривых над простыми полями не составит труда.

Зависимости

Эта библиотека использует только Python и пакет 'six'. Она совместима с Python 2.6, 2.7 и 3.6+. Также поддерживается выполнение на альтернативных реализациях, таких как pypy и pypy3.

Если установлены gmpy2 или gmpy, они будут использоваться для более быстрых вычислений. Любой из них можно установить после установки этой библиотеки: python-ecdsa обнаружит их наличие при запуске и будет использовать автоматически. На Python3 для оптимальной производительности следует предпочитать gmpy2.

Для запуска тестов совместимости с OpenSSL инструмент 'openssl' должен быть в вашем PATH. Этот выпуск успешно протестирован с OpenSSL 0.9.8o, 1.0.0a, 1.0.2f, 1.1.1d и 3.0.1 (среди прочих).

Установка

Эта библиотека доступна на PyPI; для её установки рекомендуется использовать pip:``` pip install ecdsa

Если нужна более высокая производительность и использование нативного кода не является проблемой,
можно указать установку вместе с `gmpy2`:```
pip install ecdsa[gmpy2]

или (более медленный, устаревший вариант):``` pip install ecdsa[gmpy]

## Speed

В следующей таблице показано, сколько времени занимает эта библиотека для генерации пар ключей
(`keygen`), подписания данных (`sign`), проверки этих подписей (`verify`),
выведения общего секрета (`ecdh`) и
проверки подписей без специфичной для ключа предварительной обработки (`no PC verify`).
Все эти значения указаны в секундах.
Для удобства также приведены обратные величины:
сколько ключей в секунду можно сгенерировать (`keygen/s`), сколько подписей
можно создать в секунду (`sign/s`), сколько подписей можно проверить
в секунду (`verify/s`), сколько общих секретов можно вывести в секунду
(`ecdh/s`) и сколько подписей без специфичной для ключа
предварительной обработки можно проверить в секунду (`no PC verify/s`). Размер исходной
подписи (как правило, наименьший
способ кодирования подписи) также указан в столбце `siglen`.
Используйте `tox -e speed`, чтобы сгенерировать эту таблицу на своём компьютере.
На Intel Core i7 4790K @ 4.0GHz я получаю следующую производительность:```
                  siglen    keygen   keygen/s      sign     sign/s    verify   verify/s  no PC verify  no PC verify/s
        NIST192p:     48   0.00032s   3134.06   0.00033s   2985.53   0.00063s   1598.36       0.00129s         774.43
        NIST224p:     56   0.00040s   2469.24   0.00042s   2367.88   0.00081s   1233.41       0.00170s         586.66
        NIST256p:     64   0.00051s   1952.73   0.00054s   1867.80   0.00098s   1021.86       0.00212s         471.27
        NIST384p:     96   0.00107s    935.92   0.00111s    904.23   0.00203s    491.77       0.00446s         224.00
        NIST521p:    132   0.00210s    475.52   0.00215s    464.16   0.00398s    251.28       0.00874s         114.39
       SECP256k1:     64   0.00052s   1921.54   0.00054s   1847.49   0.00105s    948.68       0.00210s         477.01
 BRAINPOOLP160r1:     40   0.00025s   4003.88   0.00026s   3845.12   0.00053s   1893.93       0.00105s         949.92
 BRAINPOOLP192r1:     48   0.00033s   3043.97   0.00034s   2975.98   0.00063s   1581.50       0.00135s         742.29
 BRAINPOOLP224r1:     56   0.00041s   2436.44   0.00043s   2315.51   0.00078s   1278.49       0.00180s         556.16
 BRAINPOOLP256r1:     64   0.00053s   1892.49   0.00054s   1846.24   0.00114s    875.64       0.00229s         437.25
 BRAINPOOLP320r1:     80   0.00073s   1361.26   0.00076s   1309.25   0.00143s    699.29       0.00322s         310.49
 BRAINPOOLP384r1:     96   0.00107s    931.29   0.00111s    901.80   0.00230s    434.19       0.00476s         210.20
 BRAINPOOLP512r1:    128   0.00207s    483.41   0.00212s    471.42   0.00425s    235.43       0.00912s         109.61
       SECP112r1:     28   0.00015s   6672.53   0.00016s   6440.34   0.00031s   3265.41       0.00056s        1774.20
       SECP112r2:     28   0.00015s   6697.11   0.00015s   6479.98   0.00028s   3524.72       0.00058s        1716.16
       SECP128r1:     32   0.00018s   5497.65   0.00019s   5272.89   0.00036s   2747.39       0.00072s        1396.16
       SECP160r1:     42   0.00025s   3949.32   0.00026s   3894.45   0.00046s   2153.85       0.00102s         985.07
         Ed25519:     64   0.00076s   1324.48   0.00042s   2405.01   0.00109s    918.05       0.00344s         290.50
           Ed448:    114   0.00176s    569.53   0.00115s    870.94   0.00282s    355.04       0.01024s          97.69
Скачать инструмент