Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vector_crypt-0.1.0.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vector_crypt-0.1.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

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

Hashes for vector_crypt-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ea83cbd46d75fc3c04861a6f0cf06f182ccf8275175d288b5f3c2659af8daa00
MD5 67d2c3f93c362d54d0ef156671dde016
BLAKE2b-256 efcf105bcc10c84d6d9a41227bcf86459aa6d181c909eb11f4c805237a91c280

See more details on using hashes here.

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

Hashes for vector_crypt-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8cc0279ee89cfefba10931f2d8bd8bfa4e122320e0965fbf5b68e193514bcb9e
MD5 357efaa461f0de287e30411267ba8c60
BLAKE2b-256 7a30ac920ed356e8b93d9db393a6500b2e7d560789124e4e8af44f0c766eb9fd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page