CryptoLayer Mini
Мини-версия CryptoLayer: криптографический слой поверх мессенджеров.
⚠️ Это учебный проект. Он написан для изучения криптографии, а не для защиты реальных секретов. Не используйте его в серьёзных задачах — в нём есть упрощения и нет защиты от многих атак (replay, MITM, компрометация ключей и т.д.).
Автор: Богдан, 12 лет.
Что умеет
- AES-256-GCM — шифрование сообщений (с проверкой целостности)
- ECDSA (SECP256R1) — цифровые подписи
- ECDH (SECP256R1) + HKDF — обмен ключами между пользователями
- pack_message / unpack_message — упаковка шифротекста и подписи
- ConsoleTransport — транспорт-заглушка (имитация отправки через мессенджер)
Установка
pip install -e .
Пример
python demo.py
Пример вывода:
Алиса и Боб сгенерировали ключи.
ECDH: общий ключ успешно выведен.
[Мессенджер] отправлено 168 байт:
0047304502201577f2bfb214603b6538db1552242907343438c2e45c420b4d1fd919a5769d130221...
[Мессенджер] получено 168 байт
Подпись верна.
Расшифровано: Привет, Боб! Это секретное сообщение.
Как это работает
- Алиса и Боб создают по два ключа: для подписи и для обмена.
- Обмениваются публичными ключами обмена и выводят общий секрет через ECDH + HKDF.
- Алиса шифрует сообщение общим ключом (AES-256-GCM) и подписывает своим приватным ключом (ECDSA).
- Шифротекст и подпись упаковываются в один пакет и «отправляются».
- Боб распаковывает, расшифровывает и проверяет подпись Алисы.
Структура проекта
cryptolayer_mini/
__init__.py — что экспортируется
crypto.py — шифрование, подписи, обмен ключами
transport.py — имитация транспорта
demo.py — пример использования
pyproject.toml — описание пакета
LICENSE — MIT
Лицензия
MIT — делай что хочешь, только укажи автора.
Release files for cryptolayer-mini 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 | |
|---|---|---|---|
| cryptolayer_mini-0.1.1.tar.gz | 6.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cryptolayer_mini-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.4 kB
Release files / cryptolayer_mini-0.1.1.tar.gz
| Download URL | cryptolayer_mini-0.1.1.tar.gz |
|---|---|
| Size | 6.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e7042e0341b55aebe8d2c02ecbff56a039f1cbb5d3653c23cb9c97f6e0ad889e
|
|
BLAKE2b-256 checksum How to use checksums |
c44d850784fe4764345c72bb30ec8314af34e274f9fd900212468235c7b8b22e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.13
|
Release files / cryptolayer_mini-0.1.1-py3-none-any.whl
| Download URL | cryptolayer_mini-0.1.1-py3-none-any.whl |
|---|---|
| Size | 6.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8e1a18850504a91ea765f88250f63e9a03ee5900780e59c265674b482b9fd3d1
|
|
BLAKE2b-256 checksum How to use checksums |
b8b623e1b266fdd0bbcd32d9ac9b05d569e983978b46fb113c843d00ffc4de59
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.13
|