Skip to main content

Гомоморфное шифрование на основе матричных полиномов

Project description

Гомоморфное шифрование на основе матричных полиномов

Описание

Библиотека содержит алгоритм гомоморфного шифрования на основе матричных полиномов. Подходит для создания систем, в которых необходимо выполнить вычисления над зашифрованными данными без их расшифровки.

Возможности

Библиотека "FHEMP" поддерживает функции:

  1. Генерация ключей: секртеный ключ, секретный вектор, ключ вычислений;
  2. Шифрование целых чисел;
  3. Расшифровка с использованием секретного ключа и вектора;
  4. Гомоморфне операции: сложение и умножение зашифрованных данных.

Установка

Для установки необходимо выполнить команду

pip install FHEMP

Для обновления версии до последней необходиом выполнить команду

pip install --upgrade FHEMP

Инструкция по использованию

Перед началом работы необходимо определится с параметрами криптосистемы, такими как N, размерность матрицы, p, модуль по которому будут проходить вычисления, и 4 переменные λ, γ, δ и ψ, они влиют на степень матричных полиномов.

Важное примечение. p — должно быть больше максимального возможного значения результата после гомоморфных операций, иначе расшифровка будет приводить к некоректному резульату.

Для хранения данных, таких как ключи шфирования и шифртексты, будет использоваться папки "key" и "cipher", которые будут созданы в папке "FHEMP_data"

Описание использования функций

  1. generate_keys, данная функция геерирует секртеный ключ, вектор и ключ вычислений
generate_keys(N, p, lam, omega, delta, sk_name, k_name, evk_name)

В ней необходимо указать значение переменных N, p, lam, omega, delta, так же необходимо указать навзание файлов в которые будут сохранены секретный ключ, вектор и ключ вычислений.

Пример вызова функции генерации ключей

generate_keys(5, 97, 3, 3, 3, "secret_key", "vector", "evk")
  1. encrypt, данная функция выполняет шифрование открытого текста.
encrypt(message, filename, N, p, lam, psi, name_secret_key_file, name_vector_file)

Для работы функции шифрования необходимо указать сообщение (целое число), которое нужно зашифровать, название файла в который сохранится зашифрованное сообщение, значение переменных N, p, lam, psi, и название файлов содержащих секретный ключ и вектор.

Пример вызова функции шифрования

encrypt(10, "cipher1", 5, 97, 3, 3, "secret_key", "vector")
  1. operate_add, данная функция выполняет сложение двух шфиртекстов
operate(ciphertext_file1, ciphertext_file2, p, filename)

В ней необходимо указать названия двух файлов с которыми нужно выполнить операцию сложения, и значение p, модуля и название

Пример вызова функции выполнения операции сложения

operate_add("cipher1", "cipher2", 97, "multi")
  1. operate_multi, данная функция вычисляет произведение двух шфиртекстов
operate_multi(ciphertext_file1, ciphertext_file2, p, evk, filename)

В ней необходимо указать названия двух файлов, которые необходимо перемножить между собой, значение p, модуля, и название файла, в который сохранится результат.

Пример вызова функции выполнения операции умножения

operate_multi("cipher1", "cipher2", 97, "evk", "multi")
  1. decrypt, данная функция выполняет расшифровку шифртекста
decrypt(ciphertext_file, secret_key_file, vector_file, p)

В ней необходимо указать название файлов содрежащих зашифрованный текст, секретный ключ, секретный вектор и значение p, модуля.

Пример вызова функции расшифровки

decrypt("multi", "secret_key", "vector", 97)

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

fhemp-0.6.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

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

fhemp-0.6.0-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file fhemp-0.6.0.tar.gz.

File metadata

  • Download URL: fhemp-0.6.0.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for fhemp-0.6.0.tar.gz
Algorithm Hash digest
SHA256 c8a1ac2947413af611601c3cf6eb4155f5bae920ce01078da2ff7f6fd6737c16
MD5 be84c731a87439f64eed516380acc8cc
BLAKE2b-256 246ed03172a78d4708c65f5925c8231ca0d0a8328d91b4cf7b1fa036fc73578b

See more details on using hashes here.

File details

Details for the file fhemp-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: fhemp-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for fhemp-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2916f3b6531f3761742ea14ac574a0fef7a1b444f2efc16caa9283c7c9f60622
MD5 88bd81ec73602c0030d2f2f14af594c9
BLAKE2b-256 414548b2fa822d2d1d7ff6376f9fa8c7d2b04b163a9242082e32eb6c0a957da7

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