Гомоморфное шифрование на основе матричных полиномов
Project description
Гомоморфное шифрование на основе матричных полиномов
Описание
Библиотека содержит алгоритм гомоморфного шифрования на основе матричных полиномов. Подходит для создания систем, в которых можно выполнятьвычисления над зашифрованными данными без их расшифровки.
Возможности
Библиотека "FHEMP" поддерживает функции:
- Генерация ключей: секртеный ключ, секретный вектор, ключ вычислений;
- Шифрование целых чисел;
- Расшифровка с использованием секретного ключа и вектора;
- Гомоморфне операции: сложение и умножение зашифрованных данных.
Установка
Для установки необходимо выполнить команду
pip install FHEMP
Для обновления версии до последней нужно выполнить команду
pip install --upgrade FHEMP
Инструкция по использованию
Перед началом работы необходимо определится с параметрами криптосистемы, такими как N, размерность матрицы, p, модуль по которому будут проходить вычисления, и 4 переменные λ, γ, δ и ψ, они влиют на степень матричных полиномов.
Важное примечение. p — должно быть больше максимального возможного значения результата после гомоморфных операций, иначе расшифровка будет приводить к некоректному резульату.
Для сохранения данных, во время первого выполнения функций, создаться папка "FHEMP_data", содержащая папку "key", для сгенерированных ключей, и папку "cipher", для хранения зашифрованных данных.
В начале необходимо создать секретный ключ, секретный вектор и ключ вычислений, это можно выполнить вызовом функции
generate_keys(N, p, lam, omega, delta, sk_name, k_name, evk_name)
В ней необходимо указать значение переменных, выбранных ранее, так же необходимо указать навзание файлов в которые будут сохранены секретный ключ, вектор и ключ вычислений.
Пример вызова функции генерации ключей
generate_keys(5, 97, 3, 3, 3, "secret_key", "vector", "evk")
Для выполнения шифрования необходимо вызвать функцию
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")
Для выполнения операций сложений и умножения необходимо вызвать функию
operate(ciphertext_file1, operation, ciphertext_file2, p name_evaluation_key_file, filename)
В ней необходимо указать названия двух файлов с которыми нужно выполнить операцию, далее нужно указать операцию "add", для сложения, и "mul", для умножения, далее прописываем значение p, модуля, и название файла содержащего ключ вычисления.
Пример вызова функции выполнения операции
operate("cipher1", mul, "cipher2", 97, "evk", "multi")
Последней функцией является функция расшифровки
decrypt(ciphertext_file, secret_key_file, vector_file, p)
В ней необходимо указать название файлов содрежащих зашифрованный текст, секретный ключ, секретный вектор и значение модуля.
Пример вызова функции расшифровки
decrypt("multi", "secret_key", "vector", 97)
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 fhemp-0.5.2.tar.gz.
File metadata
- Download URL: fhemp-0.5.2.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe96705a382204f1e25a70e344b4945513d650459d374811583942ee330f142d
|
|
| MD5 |
858f181a2555d9be7a69e6c8a6e3788b
|
|
| BLAKE2b-256 |
761a35469e8e32bda8279c80ab4d3a2faf8b8e468c6ff0711d47fb5774e05ac3
|
File details
Details for the file fhemp-0.5.2-py3-none-any.whl.
File metadata
- Download URL: fhemp-0.5.2-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84c374f931247e3b60485e557ec1a58325913f0b7b4e5f20cd0a12d81c9de47e
|
|
| MD5 |
78bea2de90d4f614cc16d201ca28f206
|
|
| BLAKE2b-256 |
806b61d9077c6a56736c1097ae25825d5e243a15940eefde031202507c7595b3
|