Skip to main content

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

Project description

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

Описание

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

Возможности

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

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

Установка

Необходимо прописать команду с указанием версии, которую нужно скачать

pip install FHEMP=="version"

Пример использования

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

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

Для сохранения данных, во время первого выполнения функций, создаться папка "FHEMP_data", содержащая папку "key", для сгенерированных ключей, и папку "cipher", для хранения зашифрованных данных.

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

generate_keys(N, p, lam, omega, delta, sk_name, k_name, evk_name)

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

Для выполнения шифрования необходимо вызвать функцию

encrypt(message, filename, N, p, lam, psi, name_secret_key_file, name_vector_file)

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

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

operate(ciphertext_file1,  operation, ciphertext_file2, p name_evaluation_key_file, filename)

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

Последней функцией является функция расшифровки

decrypt(ciphertext_file, secret_key_file, vector_file, p)

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

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.4.4.tar.gz (8.1 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.4.4-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for fhemp-0.4.4.tar.gz
Algorithm Hash digest
SHA256 00da59d1d34ec370e7c18bb6cac24f9d3e0f818cd739a54018d15cb6e116785e
MD5 4c7f3a3df3e4b0daec493bc1afd8d78f
BLAKE2b-256 7533bbb8f3ea9868604276e057ac68cf57605b44e2262d36a9d08a26c01df406

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fhemp-0.4.4-py3-none-any.whl
  • Upload date:
  • Size: 8.7 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.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b548abecdaaf8a7c0c3bb14033c83987bf53a48ac6ffac1e152d347a4167c0b6
MD5 aa31a4d9babe5f22495c457750299501
BLAKE2b-256 d3d07cd9f3246cd45bb8ae62898ab6ff601536940c454b1c9bf25fc1b4787cd9

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