ECDH X25519
Python-биндинги для x25519-dalek на Rust через PyO3. Используется алгоритм X25519 для безопасного обмена ключами (ECDH).
🧠 Что такое ECDH (X25519)?
X25519 — это алгоритм обмена ключами на основе эллиптических кривых (Elliptic Curve Diffie-Hellman, ECDH). Он широко применяется в современных криптопротоколах: TLS, SSH, Signal, WireGuard и других.
Основные характеристики:
-
Эллиптические кривые
- Основан на кривой Монтгомери Curve25519.
- Обеспечивает высокую скорость и безопасность.
- Оптимизирован под программную реализацию.
-
Эффективность
- Быстрый обмен ключами даже на слабом железе.
- Ключи занимают всего 32 байта (256 бит).
- Поддерживается многими языками и библиотеками (OpenSSL, libsodium и др.).
-
Безопасность
- Защищён от большинства классических атак.
- Устойчив к атакам по времени выполнения.
- Не устойчив к квантовым атакам (алгоритм Шора).
-
Стандартизация
- Описан в RFC 7748.
- Рекомендован IETF как современный метод обмена ключами.
🚀 Как использовать?
import ecdh_x25519
# Алиса
alice = ecdh_x25519.EcdhX25519()
alice_pk = alice.generate_keypair()
# Боб
bob = ecdh_x25519.EcdhX25519()
bob_pk = bob.generate_keypair()
# Обмен
shared_secret_alice = alice.generate_shared_secret(bob_pk)
shared_secret_bob = bob.generate_shared_secret(alice_pk)
assert shared_secret_alice == shared_secret_bob
📦 Установка
1. Установка через PyPI
pip install ecdh_x25519
2. Ручная установка (через git + maturin)
git clone https://github.com/kostya2023/ecdh_x25519.git
cd ecdh_x25519
pip install -r requirements.txt
maturin build --release
pip install target/wheels/*
👥 Авторы
🔒 Лицензия
Release files for ecdh-x25519 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ecdh_x25519-0.1.1.tar.gz | 6.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ecdh_x25519-0.1.1-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
Total release size: 170.4 kB
Release files / ecdh_x25519-0.1.1.tar.gz
| Download URL | ecdh_x25519-0.1.1.tar.gz |
|---|---|
| Size | 6.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1b6f5eee9f0e8535ebdc9a4e519fab406e56341f211b389eac14a32a0562b0ec
|
|
BLAKE2b-256 checksum How to use checksums |
7bcff0b470c2c1c73c8c7607baa4eb8c2896db57768774c85fa5073330e9a78f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.0
|
Release files / ecdh_x25519-0.1.1-cp312-cp312-win_amd64.whl
| Download URL | ecdh_x25519-0.1.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 163.6 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ab5cc8f1a63205cc51ce80b8de20c9b3cc9893e2a37bf2c0664c0b610e95f32f
|
|
BLAKE2b-256 checksum How to use checksums |
afa592e53bfad013aea858a5471b4682f796f09277cfd6864b2efab765c1e490
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.0
|