A toy cryptographic library encoding data as applied vector sets.
Project description
Applied-Vector Crypto (vector_crypt)
A lightweight Python library demonstrating a novel cryptographic principle: represent both plaintext and keys as sets of applied vectors and perform encryption simply by vector addition. The package is intended as an educational toy, a research starting point, or a playful experiment rather than a drop-in replacement for real-world ciphers.
🚀 Основная идея
Каждый байт (или символ, блок) сообщения кодируется как
AppliedVector — отрезок с фиксированным началом и направлением. Ключ
тоже является набором таких векторов. Шифрование сводится к поэлементному
сложению двух наборов (похожим на операцию XOR для чисел), а расшифровка –
к вычитанию.
В отличие от большинства алгоритмов, здесь информация представлена геометрически, что даёт визуализацию, естественное расширение на многомерность и простой потоковый интерфейс.
Почему это уникально?
-
Геометрическое представление. Традиционные симметричные схемы оперируют на битах и байтах. Мы работаем с векторами, что позволяет легко вводить масштабирование, вращения, линейные преобразования и работать в произвольных пространствах (включая конечные поля).
-
Простота. Всего пара строк кода даёт шифрование/дешифровку. Нет S‑боксов, нет ключевого расписания, только алгебра над векторами.
-
Потоковая обработка. Код поддерживает генераторы, чтение/запись файлов по кускам и пакетные операции, что пригодится для больших данных.
-
Проверяемость. Отображение вектор‑множества на экран, графы, SVG… Приятно для обучения и визуальных демо.
🔍 Схожие идеи в криптографии
-
One‑time pad / Vernam cipher. Байт сообщения прибавляется к байту ключа по модулю 2⁸; наша операция аналогична, но мы «вырастаем» в векторное пространство и сохраняем абсолютную информацию в промежуточном виде (можно наложить дополнительные операции).
-
Кодировка векторов в стойкие каналы. В теории информации часто рассматривают передаваемые сигналы как точки в \Rⁿ; в этом смысле наше шифрование — частный случай линейного кодирования.
-
Графовые шифры. В гомоморфных системах используются линейные операции; наш механизм легко расширяется до гомоморфизма над векторным пространством.
Однако: мы не претендуем на криптостойкость, а скорее демонстрируем новый формальный подход. Внедрить в реальную систему потребует серьёзного криптоанализа и, вероятно, модификаций (например, работа в конечных полях, нелинейные слои и т. д.).
🧩 Структура проекта
vector_crypt/ # репозиторий
├── vector_crypt/ # собственно пакет Python
│ ├── __init__.py
│ ├── classes.py
│ ├── endecode.py
│ ├── keygen.py
│ └── vector_codec.py
├── tests/ # простые тесты (пока минимум)
├── README.md # вы читаете
├── LICENSE # MIT
└── pyproject.toml # сборка/метаданные
⚙️ Установка и использование
pip install vector_crypt
from vector_crypt import encrypt_text, decrypt_text, key_for_data
key = key_for_data(b"secret message")
cipher = encrypt_text("hello", key)
print(decrypt_text(cipher, key)) # hello
Для потокового шифрования используйте encrypt_bytes_stream вместе с
generate_random_key_stream.
📝 Где использовать
Библиотека подходит для:
- учебных примеров и лекций по основам криптографии;
- прототипирования альтернативных представлений данных (векторов вместо скаляров);
- демонстраций визуализации шифрования в 2D/3D;
- утилит, где требуется совместное хранение геометрической информации и шифрования (например, защитить набор координат).
Не рекомендуется применять vector_crypt для защиты реальных данных без
дополнительного анализа.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vector_crypt-0.1.0.tar.gz.
File metadata
- Download URL: vector_crypt-0.1.0.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea83cbd46d75fc3c04861a6f0cf06f182ccf8275175d288b5f3c2659af8daa00
|
|
| MD5 |
67d2c3f93c362d54d0ef156671dde016
|
|
| BLAKE2b-256 |
efcf105bcc10c84d6d9a41227bcf86459aa6d181c909eb11f4c805237a91c280
|
File details
Details for the file vector_crypt-0.1.0-py3-none-any.whl.
File metadata
- Download URL: vector_crypt-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8cc0279ee89cfefba10931f2d8bd8bfa4e122320e0965fbf5b68e193514bcb9e
|
|
| MD5 |
357efaa461f0de287e30411267ba8c60
|
|
| BLAKE2b-256 |
7a30ac920ed356e8b93d9db393a6500b2e7d560789124e4e8af44f0c766eb9fd
|