Skip to main content

Python CFFI bindings for Kyber post-quantum cryptography

Project description

KyberCFFI

Python CFFI привязки для пост-квантовой криптографии Kyber

Python Version License PyPI

Описание

KyberCFFI предоставляет Python привязки для эталонной реализации криптографического алгоритма Kyber - победителя конкурса NIST по пост-квантовой криптографии. Библиотека использует CFFI для эффективного взаимодействия с оригинальным C кодом Kyber.

Поддерживаемые варианты

  • Kyber512 - Уровень безопасности 1 (эквивалент AES-128)
  • Kyber768 - Уровень безопасности 3 (эквивалент AES-192)
  • Kyber1024 - Уровень безопасности 5 (эквивалент AES-256)

Установка

pip install kybercffi

Требования

  • Python >= 3.8
  • CFFI >= 1.15.0
  • C компилятор (автоматически используется при установке)

Быстрый старт

import kybercffi

# Создание экземпляра Kyber768
kyber = kybercffi.Kyber768()

# Генерация пары ключей
public_key, secret_key = kyber.generate_keypair()

# Инкапсуляция (создание общего секрета)
ciphertext, shared_secret = kyber.encapsulate(public_key)

# Декапсуляция (восстановление общего секрета)
recovered_secret = kyber.decapsulate(ciphertext, secret_key)

# Проверка
assert shared_secret == recovered_secret
print("Kyber работает корректно!")

Удобные функции

from kybercffi import generate_keypair, encapsulate, decapsulate

# Генерация ключей с указанием уровня безопасности
pk, sk = generate_keypair(security_level=3)  # Kyber768

# Инкапсуляция
ct, ss = encapsulate(pk, security_level=3)

# Декапсуляция
ss2 = decapsulate(ct, sk, security_level=3)

Фабричный метод

# Создание экземпляра через фабрику
kyber512 = kybercffi.KyberKEM.create(security_level=1)   # Kyber512
kyber768 = kybercffi.KyberKEM.create(security_level=3)   # Kyber768
kyber1024 = kybercffi.KyberKEM.create(security_level=5)  # Kyber1024

Информация о вариантах

# Получение информации о всех вариантах
info = kybercffi.get_kyber_info()
print(info)

# Получение информации о версии
version_info = kybercffi.get_version_info()
print(version_info)

Размеры ключей и зашифрованного текста

Вариант Открытый ключ Секретный ключ Зашифрованный текст Общий секрет
Kyber512 800 байт 1632 байта 768 байт 32 байта
Kyber768 1184 байта 2400 байт 1088 байт 32 байта
Kyber1024 1568 байт 3168 байт 1568 байт 32 байта

Особенности

  • Высокая производительность - использует оптимизированную C реализацию
  • 🛡️ Пост-квантовая безопасность - устойчив к атакам квантовых компьютеров
  • 🌐 Кроссплатформенность - работает на Windows, Linux, macOS
  • 📦 Простая установка - автоматическая сборка при установке
  • 🔒 Криптографически безопасен - основан на эталонной реализации NIST

Лицензия

Проект распространяется под лицензией MIT. См. файл LICENSE для подробностей.

Автор

Denis Magnitov

Ссылки

Поддержка

Если у вас возникли проблемы или вопросы, пожалуйста:

  1. Проверьте существующие Issues
  2. Создайте новый Issue с подробным описанием проблемы
  3. Укажите версию Python, ОС и версию kybercffi

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

kybercffi-0.1.2.tar.gz (103.9 kB view details)

Uploaded Source

Built Distribution

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

kybercffi-0.1.2-cp310-cp310-win_amd64.whl (177.8 kB view details)

Uploaded CPython 3.10Windows x86-64

File details

Details for the file kybercffi-0.1.2.tar.gz.

File metadata

  • Download URL: kybercffi-0.1.2.tar.gz
  • Upload date:
  • Size: 103.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for kybercffi-0.1.2.tar.gz
Algorithm Hash digest
SHA256 158204519b39bcbb336dadbf4798562763854894bf6435f901b60ee666e26dca
MD5 9a237cf1cf54a0b6cbcc85f582a83aab
BLAKE2b-256 a4d42e4719e1cddaedc8abdbdfd160730248ea2bdb7a57d91c48543956751260

See more details on using hashes here.

File details

Details for the file kybercffi-0.1.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: kybercffi-0.1.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 177.8 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for kybercffi-0.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b06700b83abc9e6b66d5843f3f3b20e5906f617b947998fe535a2fa6acc4ab92
MD5 b4fc6a93b149ac915fb17fb07a909921
BLAKE2b-256 2872a03d1f66e8ea8c0a8813955416c22a4f33dbb30538b83d3ce47e9f81e438

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