Skip to main content

The DESILO FHE Library

Welcome to the DESILO FHE library!

The DESILO FHE library is a homomorphic encryption library that is fast and intuitive. It delivers state-of-the-art performance, maximum accuracy, and versatile usability. Designed to be accessible and efficient for everyone, from beginners unfamiliar with homomorphic encryption to experts developing advanced algorithms.

Built on C++ and CUDA, the DESILO FHE library is optimized for both CPUs and NVIDIA GPUs. It includes a Python wrapper for easy use and seamless integration into existing AI workflows. Additionally, it supports CPU parallelization for environments without GPU access.

Currently, the DESILO FHE library supports real and complex number operations based on the RNS-CKKS scheme, with plans to expand to various integer-based schemes in the future. It provides a powerful solution adaptable to diverse environments and requirements.

Documentation

Please refer to the official documentation for detailed installation instructions, examples, and documentation.

Quickstart

Encrypt / Decrypt

Encryption and decryption can be done with a secret key. You can encrypt and decrypt data as shown below. Note that CKKS is a real-number-based scheme, so a very small error is introduced during encryption and decryption.

from desilofhe import Engine

engine = Engine()

secret_key = engine.create_secret_key()

data = [1, 2, 3]
encrypted = engine.encrypt(data, secret_key)
decrypted = engine.decrypt(encrypted, secret_key)

print(decrypted[:3]) # [1. 2. 3.]

Encryption can also be done with a public key, which is genereated from a secret key.

from desilofhe import Engine

engine = Engine()

secret_key = engine.create_secret_key()
public_key = engine.create_public_key(secret_key)

data = [1, 2, 3]
encrypted = engine.encrypt(data, public_key)
decrypted = engine.decrypt(encrypted, secret_key)

print(decrypted[:3]) # [1. 2. 3.]

Add / Subtract

To add or subtract ciphertext, no additional keys are required beyond the public and secret keys. You can encrypt data separately and then perform addition and subtraction as follows:

from desilofhe import Engine

engine = Engine()

secret_key = engine.create_secret_key()

data1 = [1, 2, 3]
encrypted1 = engine.encrypt(data1, secret_key)

data2 = [4, 5, 6]
encrypted2 = engine.encrypt(data2, secret_key)

added = engine.add(encrypted1, encrypted2)
subtracted = engine.subtract(encrypted1, encrypted2)

decrypted1 = engine.decrypt(added, secret_key)
decrypted2 = engine.decrypt(subtracted, secret_key)

print(decrypted1[:3], decrypted2[:3]) # [5. 7. 9.] [-3. -3. -3.]

Multiply

To multiply ciphertexts, a special key called the relinearization key is required due to the nature of homomorphic encryption. You can encrypt data and perform multiplication as shown below. Note that ciphertexts in homomorphic encryption have a maximum multiplication depth, which will decrease after multiplication.

from desilofhe import Engine

engine = Engine()

secret_key = engine.create_secret_key()
relinearization_key = engine.create_relinearization_key(secret_key)

data1 = [1, 2, 3]
encrypted1 = engine.encrypt(data1, secret_key)

data2 = [4, 5, 6]
encrypted2 = engine.encrypt(data2, secret_key)

multiplied = engine.multiply(encrypted1, encrypted2, relinearization_key)

decrypted = engine.decrypt(multiplied, secret_key)

print(decrypted[:3]) # [~4 ~10 ~18]
print(encrypted1.level, encrypted2.level, multiplied.level) # 7 7 6

Contact

If you have any questions, please contact us at library@desilo.ai.

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

desilofhe-1.15.0-cp314-cp314-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

desilofhe-1.15.0-cp314-cp314-manylinux_2_34_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

desilofhe-1.15.0-cp314-cp314-macosx_11_0_x86_64.whl (844.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ x86-64

desilofhe-1.15.0-cp314-cp314-macosx_11_0_arm64.whl (766.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

desilofhe-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

desilofhe-1.15.0-cp313-cp313-manylinux_2_34_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

desilofhe-1.15.0-cp313-cp313-macosx_11_0_x86_64.whl (844.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

desilofhe-1.15.0-cp313-cp313-macosx_11_0_arm64.whl (766.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

desilofhe-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

desilofhe-1.15.0-cp312-cp312-manylinux_2_34_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

desilofhe-1.15.0-cp312-cp312-macosx_11_0_x86_64.whl (844.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

desilofhe-1.15.0-cp312-cp312-macosx_11_0_arm64.whl (765.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

desilofhe-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

desilofhe-1.15.0-cp311-cp311-manylinux_2_34_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

desilofhe-1.15.0-cp311-cp311-macosx_11_0_x86_64.whl (843.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

desilofhe-1.15.0-cp311-cp311-macosx_11_0_arm64.whl (763.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

desilofhe-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

desilofhe-1.15.0-cp310-cp310-manylinux_2_34_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

desilofhe-1.15.0-cp310-cp310-macosx_11_0_x86_64.whl (841.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

desilofhe-1.15.0-cp310-cp310-macosx_11_0_arm64.whl (760.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file desilofhe-1.15.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 622442a34a6c24216834c75b4d818036b195a73befc669571ea6a5df0fe4cfc2
MD5 62b47bdeaee89823dd14e3eed2410da1
BLAKE2b-256 8cb18f197b2ecb7921469a7449c95851ce7a99f20ae963e635f53ddf5ff3a32b

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 3845dd7d7835cd049dd8427156a7899cbb8df9907137ca9f7973dfef90e4e712
MD5 faab80b8c2a40cbbe4275fd48093d967
BLAKE2b-256 af66373c72446fa1635e8796bd9d87f3afc639fda76aa495e9b15de29391e3e8

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp314-cp314-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp314-cp314-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 8e5af034bf383566dbcb854fba43632014f22f55af7bf1fc7d882c0ee4ec133d
MD5 7247ca3bec91e6ae3f5dc00a674578c1
BLAKE2b-256 e6cbfdb10c429d79d81a9c4ebff7b41e8bd78d49afb09bf8af3ade2256ae4d7b

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7677fe6b7eecf99fcfcbd72b6019e361d0edf3e2aa6ff1549196f96830e2e3de
MD5 0a49582a44cf3e4d45442b26d78e5858
BLAKE2b-256 b8b78197eb1c2ba91b9197ca1047c29ae56acf83e0449de95bce3dc04ae36554

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c0cf6fbf1d0e6b5df7a811c368c3e354616b938c6ad6ae4bd5bad0d683e41297
MD5 e470221d2331d0f570152a269007eb6e
BLAKE2b-256 fdb05912081b657d0f80697486ea61bced97ba7ae6d34e501aa8993cf9258d68

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4cfad89b76867385a0387c678d67930b61644d7c1f1ae30c9ec6a3468b8e492e
MD5 4729bd8ee426c376b22c0214179752fc
BLAKE2b-256 ed39275bbf46603d573164a79cc635f90b90113234d26371e28cbf048d266493

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d859084970aa1df51c7112a64297959e4f4f031818368807c611aa6505e4b599
MD5 7a5589d6cb86f8ac5f817a6282d3a480
BLAKE2b-256 8d6c1de612d6214da88f580d45056f3b8eed9b9a730c125a02d2c27af86e0cf4

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c4fcc7c70f729ba8279fc98c40b3aa47097353feb5e743e6f7dc06ff315310fb
MD5 9086a76623143878983fa660a083f861
BLAKE2b-256 7fc638265686c016727136295aa49fe01fd39d624843033ed470be61d398ac53

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8b2da8234b114378fb98c0c0f52c0685b41807e9ad0a48c3ef1bd1503add1e50
MD5 c0ba10d40dab0665bc89ac8ff4db96a0
BLAKE2b-256 2703a0db00d259670100e54ac5627a0f12c312bb71f88dcf52c9d76afaee9468

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d51a1f8320ab9b910e079914cb2ef0a1e4d0ccb50854f9bf20b18c4d1e1dbf8a
MD5 4f6572200aff5206cc49a9471e06942c
BLAKE2b-256 b32d61d9f75f1be2d7e5e6f1a7eff7968fa209cb9e999309787276969199f60c

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 a087abe05844028c6ce9cba7a37c4bd1a51efe298964286a35ca3ebb9502eca4
MD5 9dbb5c94dab094b4041bfaedfd19a93a
BLAKE2b-256 099c443f298060b735ff0e4f42dc5fceb7b0324107e0f134cca810593a2e407e

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e7238e175ed9beb8e53038750d31dd931ef6d79416d1bbd07485e05a0ac470c9
MD5 0081be36cb2544eb064326ab91908b2c
BLAKE2b-256 ec51c3520e8367a496f3a3e322aa129ad1b0a76df50f7722f92d2d9b8db07fec

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 34a4fe710f2de77490c92d78d83cfe9f35e98d346de6e7ce46ff9954a9c5a56a
MD5 70f22c0c70a3c9254742bfcbad566010
BLAKE2b-256 3cc71f287f1fcf26c922c4e92d1550fa950b394b6b024d153a154949c70219cc

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 7f5ca1359edb8c0266804ca19980db978ee496a8d58480c1307193195ed45b93
MD5 159ab97054e093ec4c14352196c3239c
BLAKE2b-256 e828af14dc8423b1343c4165b32b29eb1c636cb4b561bba61b92403b60d63d9f

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 9ac54ccdf8113c4d8a6ac66cc2552e57d636ac1ae9293e0ad2a80a5059a958d6
MD5 2a82208197cdacefb2d5b71476b60497
BLAKE2b-256 41d8718eda02f25cc658efab35421046c4e60b39e9198fcbde33be1c1792d337

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a7e383474edbe6c2c73668de50d46d501f03df1157d1d38c7eb76d4e53061409
MD5 d2271abf17fec121393b23b9d1c9ee2d
BLAKE2b-256 2109b3d4c642a4cb4bfd63760b86286c7e7acf602d7148eaa5d45acd43a2666c

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e8ea4bb23b995e75e6720a6c26f328087080bd1cd518ff32c72835fbf4a27959
MD5 de394d37aaf92064b6deba7284cc3110
BLAKE2b-256 4b535d9a191cd994c113a3feb2ce3488e6115bbe81f74d5f6bfd77780f77d54c

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1d1529d04f3d983b18272763114759849e37fe914fb0eaf828e34df403289093
MD5 00ea83e970387cc9317d65e26980c989
BLAKE2b-256 c29f76339dc9acdfa45f522ebcafbf1ec5ebc08e8a911a2178e9dd59076b2326

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 e4e451bd7a7ebc2b0be702cd9216fe78f909a2f31590d0e7452af45728ad6919
MD5 1840745f7c6e1e51ca335ce576cff876
BLAKE2b-256 f54b9605481f79b566ab7fe3484975310077257077798188134b1dabf062e002

See more details on using hashes here.

File details

Details for the file desilofhe-1.15.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for desilofhe-1.15.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 58fe2888029c4bdd974dcd927386ca2dd22790add1b490887cde9c17ff56b4dc
MD5 195f7d93007d772aab598448fb018d4c
BLAKE2b-256 f6b832025b322830da320f551fb52f5a2eca68267a5c2e1ff8c61d5b81b00894

See more details on using hashes here.

Release history Release notifications | RSS feed

1.16.0

20 files

1.15.1

20 files

This release

1.15.0 This release

20 files

1.14.1

20 files

1.14.0

20 files

1.13.0

20 files

1.12.0

20 files

1.11.2

20 files

1.11.1

20 files

1.11.0

20 files

1.10.0

20 files

1.9.0

20 files

1.8.0

20 files

1.7.0

20 files

1.6.0

20 files

1.5.1

20 files

1.5.0

20 files

1.4.0

20 files

1.3.0

20 files

1.2.0

20 files

1.1.1

20 files

1.1.0

20 files

1.0.3

20 files

1.0.2

20 files

1.0.1

5 files

1.0.0

5 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page