mirror of
https://github.com/luxfhe/torus.git
synced 2026-10-30 17:07:26 +00:00
Forked from upstream concrete (BSD-3-Clause-Clear, © 2024 ZAMA) at HEAD
ecb729bb. Modifications copyright © 2026 Lux Industries Inc.
Rebranding scope:
- Python module concrete → torus (across frontends/torus-python)
- Rust module concrete-* → torus-* (across frontends/torus-rust)
- MLIR dialect concretelang → toruslang (across compilers/torus-compiler)
- Compiler optimizer concrete-optimizer → torus-optimizer
- Backend concrete-cpu / concrete-cuda → torus-cpu / torus-cuda
- Wire protocol concrete-protocol → torus-protocol
- Parameter-curves concrete-security-curves-* → torus-security-curves-*
- Public symbols concretelib → toruslib, ConcreteLang → TorusLang
- URLs github.com/zama-ai/concrete → github.com/luxfhe/torus
- URLs docs.zama.ai/concrete → docs.luxfhe.com/torus
Legal compliance:
- LICENSE.txt retains original Copyright © 2024 ZAMA verbatim (§1-§2)
- LICENSE.txt adds modifications copyright © 2026 Lux Industries Inc.
- §3 endorsement clause: Torus is marketed exclusively as a Lux product;
no Zama name used in README, docs, or marketing
- NOTICE file provides factual attribution per legal best practice
(not endorsement; required by upstream BSD-3-Clause-Clear)
README + NOTICE rewritten from scratch with Lux brand:
- Quick-start in Python (torus.fhe)
- Architecture diagram showing the gen-1 vtbl integration path
(luxcpp/gpu → lux-private/gpu-kernels for CUDA/Metal/WebGPU)
- Scheme coverage table: TFHE (luxfi/fhe), CKKS/BGV/BFV (luxfi/lattice)
- Lux FHE family table: Torus / TorusVM / TorusEVM / TorusML / TorusNet
Known limitations (phase-2A scope):
- PyPI package torus-fhe not yet published; the torus Python module
is renamed structurally but pip-installable distribution is a
follow-up (Phase 2A.1)
- MLIR dialect rename is text-level; the compiler-internal LLVM
rebuild (concrete-compiler-internal-llvm-project submodule) is
structural and works; tablegen files renamed concrete→torus but the
generated .inc files in the source tree will regenerate at build
time
- backends/torus-cuda/implementation/ is an upstream submodule
pointer to the tfhe-rs source (not fetched in the staging clone);
the CUDA backend body is delivered out-of-tree
- ~100 test-fixture variable names like concrete_encoded_sample
retain "concrete" as a math term (vs symbolic); these are inside
tests/, not the public API; cleanup is a follow-up commit
- 295 Python `from concrete import ...` residuals in luxfhe/ml-sdk
consumer remain; that repo's import update is Phase 2B
This commit is the seed for the luxfhe/torus repo. Push as the first
commit to a fresh GitHub repo; do not re-import upstream Zama git
history.
230 lines
12 KiB
Plaintext
230 lines
12 KiB
Plaintext
security level: 192
|
|
target p_error: 2.9e-39
|
|
per precision and log norm2:
|
|
|
|
- 1: # bits
|
|
-ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error
|
|
- 0 : 4, 9, 1070, 1, 17, 3, 4, 85, 2.7e-39
|
|
- 1 : 4, 9, 1109, 1, 17, 5, 3, 97, 2.8e-39
|
|
- 2 : 5, 9, 1070, 1, 21, 3, 4, 107, 2.2e-39
|
|
- 3 : 5, 9, 1071, 1, 21, 3, 4, 107, 1.7e-39
|
|
- 4 : 5, 9, 1074, 1, 21, 3, 4, 107, 2.2e-39
|
|
- 5 : 5, 9, 1091, 1, 21, 3, 4, 109, 2.6e-39
|
|
- 6 : 4, 9, 1050, 2, 11, 4, 3, 126, 2.8e-39
|
|
- 7 : 6, 9, 1110, 1, 23, 3, 4, 133, 2.2e-39
|
|
- 8 : 5, 9, 1027, 2, 14, 4, 3, 156, 2.8e-39
|
|
- 9 : 5, 9, 1028, 2, 14, 4, 3, 156, 1.2e-39
|
|
- 10: 5, 9, 1028, 2, 14, 4, 3, 156, 2.9e-39
|
|
- 11: 5, 9, 1032, 2, 14, 4, 3, 157, 2.0e-39
|
|
- 12: 5, 9, 1052, 2, 14, 4, 3, 160, 2.6e-39
|
|
- 13: 6, 9, 1038, 2, 16, 4, 3, 192, 2.2e-39
|
|
- 14: 6, 9, 1047, 2, 16, 4, 3, 194, 1.8e-39
|
|
- 15: 5, 9, 1039, 3, 11, 4, 3, 206, 1.9e-39
|
|
- 16: 6, 9, 1037, 3, 12, 4, 3, 252, 1.2e-39
|
|
- 17: 6, 9, 1039, 3, 12, 4, 3, 253, 2.6e-39
|
|
- 18: 6, 9, 1053, 3, 12, 4, 3, 256, 2.6e-39
|
|
- 19: 6, 9, 1040, 4, 10, 4, 3, 313, 2.5e-39
|
|
- 20: 6, 9, 1060, 4, 10, 4, 3, 319, 1.8e-39
|
|
- 21: 6, 9, 1006, 5, 8, 6, 2, 374, 1.9e-39
|
|
- 22: 6, 9, 1033, 5, 8, 6, 2, 383, 2.1e-39
|
|
- 23: 6, 9, 1043, 6, 7, 6, 2, 447, 2.6e-39
|
|
- 24: 6, 9, 1045, 7, 6, 7, 2, 515, 2.1e-39
|
|
- 25: 6, 9, 1066, 9, 5, 14, 1, 693, 2.9e-39
|
|
- 26: 3, 10, 1027, 14, 3, 6, 2, 934, 1.9e-39
|
|
- 27: 6, 9, 1035, 22, 2, 7, 2, 1412, 2.2e-39
|
|
# no solution starting from log norm2 = 28
|
|
|
|
- 2: # bits
|
|
-ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error
|
|
- 0 : 1, 11, 1104, 1, 16, 5, 3, 141, 2.1e-39
|
|
- 1 : 2, 10, 1090, 2, 11, 4, 3, 149, 2.2e-39
|
|
- 2 : 2, 10, 1091, 2, 11, 4, 3, 149, 1.6e-39
|
|
- 3 : 2, 10, 1093, 2, 11, 4, 3, 149, 1.8e-39
|
|
- 4 : 2, 10, 1103, 2, 11, 4, 3, 151, 2.1e-39
|
|
- 5 : 3, 10, 1189, 1, 23, 3, 5, 153, 1.5e-39
|
|
- 6 : 3, 10, 1235, 1, 23, 3, 5, 159, 2.8e-39
|
|
- 7 : 2, 10, 1095, 3, 8, 5, 3, 199, 2.9e-39
|
|
- 8 : 3, 10, 1127, 2, 15, 4, 3, 218, 2.2e-39
|
|
- 9 : 3, 10, 1127, 2, 15, 4, 3, 218, 2.4e-39
|
|
- 10: 3, 10, 1093, 2, 15, 5, 3, 219, 2.4e-39
|
|
- 11: 3, 10, 1094, 2, 15, 5, 3, 219, 2.1e-39
|
|
- 12: 3, 10, 1098, 2, 15, 5, 3, 220, 1.7e-39
|
|
- 13: 3, 10, 1119, 2, 15, 5, 3, 224, 2.5e-39
|
|
- 14: 3, 10, 1093, 3, 12, 5, 3, 283, 2.8e-39
|
|
- 15: 3, 10, 1095, 3, 12, 5, 3, 283, 1.5e-39
|
|
- 16: 3, 10, 1101, 3, 12, 5, 3, 285, 1.8e-39
|
|
- 17: 3, 10, 1158, 3, 12, 5, 3, 299, 2.6e-39
|
|
- 18: 3, 10, 1099, 4, 9, 5, 3, 349, 2.4e-39
|
|
- 19: 3, 10, 1131, 4, 9, 5, 3, 358, 2.6e-39
|
|
- 20: 3, 10, 1070, 5, 8, 7, 2, 415, 1.9e-39
|
|
- 21: 3, 10, 1073, 6, 7, 7, 2, 479, 2.3e-39
|
|
- 22: 3, 10, 1077, 7, 6, 7, 2, 544, 2.6e-39
|
|
- 23: 3, 10, 1144, 8, 5, 8, 2, 651, 2.8e-39
|
|
- 24: 3, 10, 1100, 11, 4, 7, 2, 813, 2.9e-39
|
|
- 25: 3, 10, 1102, 21, 2, 7, 2, 1460, 2.2e-39
|
|
- 26: 3, 10, 1095, 44, 1, 14, 1, 2972, 2.8e-39
|
|
# no solution starting from log norm2 = 27
|
|
|
|
- 3: # bits
|
|
-ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error
|
|
- 0 : 1, 11, 1133, 2, 11, 5, 3, 207, 1.1e-39
|
|
- 1 : 1, 11, 1133, 2, 11, 5, 3, 207, 1.6e-39
|
|
- 2 : 1, 11, 1135, 2, 11, 5, 3, 207, 1.1e-39
|
|
- 3 : 1, 11, 1142, 2, 11, 5, 3, 208, 1.4e-39
|
|
- 4 : 1, 11, 1176, 2, 11, 8, 2, 228, 2.8e-39
|
|
- 5 : 1, 11, 1137, 3, 8, 5, 3, 270, 2.5e-39
|
|
- 6 : 1, 11, 1159, 3, 8, 5, 3, 275, 1.9e-39
|
|
- 7 : 1, 11, 1112, 4, 7, 7, 2, 333, 1.9e-39
|
|
- 8 : 2, 11, 1161, 2, 15, 5, 3, 347, 2.1e-39
|
|
- 9 : 2, 11, 1162, 2, 15, 5, 3, 347, 1.2e-39
|
|
- 10: 2, 11, 1163, 2, 15, 5, 3, 347, 2.9e-39
|
|
- 11: 2, 11, 1172, 2, 15, 5, 3, 350, 2.2e-39
|
|
- 12: 2, 11, 1161, 3, 12, 5, 3, 449, 2.7e-39
|
|
- 13: 2, 11, 1163, 3, 12, 5, 3, 449, 1.2e-39
|
|
- 14: 2, 11, 1168, 3, 12, 5, 3, 451, 1.7e-39
|
|
- 15: 2, 11, 1206, 3, 12, 5, 3, 465, 2.7e-39
|
|
- 16: 2, 11, 1165, 4, 9, 5, 3, 553, 1.3e-39
|
|
- 17: 2, 11, 1178, 4, 9, 5, 3, 559, 2.6e-39
|
|
- 18: 2, 11, 1173, 5, 8, 5, 3, 659, 2.4e-39
|
|
- 19: 2, 11, 1176, 6, 7, 5, 3, 764, 2.4e-39
|
|
- 20: 2, 11, 1153, 7, 6, 7, 2, 869, 2.8e-39
|
|
- 21: 2, 11, 1155, 8, 5, 8, 2, 981, 2.9e-39
|
|
- 22: 2, 11, 1157, 11, 4, 8, 2, 1288, 2.6e-39
|
|
- 23: 2, 11, 1222, 14, 3, 9, 2, 1691, 2.9e-39
|
|
- 24: 2, 11, 1152, 43, 1, 16, 1, 4594, 2.5e-39
|
|
# no solution starting from log norm2 = 25
|
|
|
|
- 4: # bits
|
|
-ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error
|
|
- 0 : 1, 12, 1262, 1, 22, 4, 4, 331, 1.5e-39
|
|
- 1 : 1, 12, 1263, 1, 22, 4, 4, 331, 2.6e-39
|
|
- 2 : 1, 12, 1271, 1, 22, 4, 4, 333, 1.5e-39
|
|
- 3 : 1, 12, 1286, 1, 22, 6, 3, 357, 2.8e-39
|
|
- 4 : 1, 12, 1224, 2, 15, 5, 3, 475, 2.8e-39
|
|
- 5 : 1, 12, 1224, 2, 15, 5, 3, 475, 2.9e-39
|
|
- 6 : 1, 12, 1225, 2, 15, 5, 3, 475, 1.4e-39
|
|
- 7 : 1, 12, 1225, 2, 15, 5, 3, 475, 1.8e-39
|
|
- 8 : 1, 12, 1226, 2, 15, 5, 3, 475, 1.9e-39
|
|
- 9 : 1, 12, 1231, 2, 15, 5, 3, 477, 1.8e-39
|
|
- 10: 1, 12, 1263, 2, 15, 5, 3, 489, 2.7e-39
|
|
- 11: 1, 12, 1225, 3, 11, 5, 3, 618, 2.5e-39
|
|
- 12: 1, 12, 1228, 3, 11, 5, 3, 620, 2.0e-39
|
|
- 13: 1, 12, 1241, 3, 11, 5, 3, 626, 2.8e-39
|
|
- 14: 1, 12, 1227, 4, 9, 5, 3, 763, 2.0e-39
|
|
- 15: 1, 12, 1236, 4, 9, 5, 3, 769, 1.9e-39
|
|
- 16: 1, 12, 1247, 4, 9, 8, 2, 805, 2.9e-39
|
|
- 17: 1, 12, 1248, 5, 8, 8, 2, 952, 2.9e-39
|
|
- 18: 1, 12, 1195, 7, 6, 8, 2, 1192, 1.8e-39
|
|
- 19: 1, 12, 1199, 8, 5, 8, 2, 1336, 2.2e-39
|
|
- 20: 1, 12, 1213, 10, 4, 8, 2, 1636, 2.2e-39
|
|
- 21: 1, 12, 1216, 14, 3, 8, 2, 2210, 2.9e-39
|
|
- 22: 1, 12, 1267, 22, 2, 9, 2, 3500, 2.8e-39
|
|
# no solution starting from log norm2 = 23
|
|
|
|
- 5: # bits
|
|
-ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error
|
|
- 0 : 1, 13, 1310, 1, 22, 6, 3, 769, 2.1e-39
|
|
- 1 : 1, 13, 1336, 1, 22, 6, 3, 783, 2.4e-39
|
|
- 2 : 1, 13, 1305, 2, 15, 6, 3, 1092, 1.2e-39
|
|
- 3 : 1, 13, 1305, 2, 15, 6, 3, 1092, 1.3e-39
|
|
- 4 : 1, 13, 1305, 2, 15, 6, 3, 1092, 1.3e-39
|
|
- 5 : 1, 13, 1305, 2, 15, 6, 3, 1092, 1.6e-39
|
|
- 6 : 1, 13, 1306, 2, 15, 6, 3, 1093, 1.4e-39
|
|
- 7 : 1, 13, 1309, 2, 15, 6, 3, 1095, 2.2e-39
|
|
- 8 : 1, 13, 1328, 2, 15, 6, 3, 1111, 2.7e-39
|
|
- 9 : 1, 13, 1305, 3, 11, 6, 3, 1418, 2.0e-39
|
|
- 10: 1, 13, 1307, 3, 11, 6, 3, 1420, 1.5e-39
|
|
- 11: 1, 13, 1314, 3, 11, 6, 3, 1428, 2.7e-39
|
|
- 12: 1, 13, 1351, 3, 11, 19, 1, 1742, 2.9e-39
|
|
- 13: 1, 13, 1313, 4, 9, 6, 3, 1755, 2.5e-39
|
|
- 14: 1, 13, 1338, 4, 9, 9, 2, 1851, 2.9e-39
|
|
- 15: 1, 13, 1280, 6, 7, 9, 2, 2412, 2.6e-39
|
|
- 16: 1, 13, 1283, 7, 6, 9, 2, 2738, 1.7e-39
|
|
- 17: 1, 13, 1286, 8, 5, 9, 2, 3066, 2.8e-39
|
|
- 18: 1, 13, 1297, 10, 4, 9, 2, 3740, 2.8e-39
|
|
- 19: 1, 13, 1308, 14, 3, 9, 2, 5080, 2.9e-39
|
|
- 20: 1, 13, 1282, 42, 1, 18, 1, 14134, 2.2e-39
|
|
# no solution starting from log norm2 = 21
|
|
|
|
- 6: # bits
|
|
-ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error
|
|
- 0 : 1, 14, 1400, 2, 15, 6, 3, 2470, 1.7e-39
|
|
- 1 : 1, 14, 1400, 2, 15, 6, 3, 2470, 1.7e-39
|
|
- 2 : 1, 14, 1400, 2, 15, 6, 3, 2470, 1.8e-39
|
|
- 3 : 1, 14, 1400, 2, 15, 6, 3, 2470, 2.1e-39
|
|
- 4 : 1, 14, 1401, 2, 15, 6, 3, 2472, 2.4e-39
|
|
- 5 : 1, 14, 1407, 2, 15, 6, 3, 2482, 1.9e-39
|
|
- 6 : 1, 14, 1463, 2, 15, 5, 4, 2533, 2.1e-39
|
|
- 7 : 1, 14, 1400, 3, 11, 6, 3, 3214, 2.5e-39
|
|
- 8 : 1, 14, 1402, 3, 11, 6, 3, 3218, 2.9e-39
|
|
- 9 : 1, 14, 1413, 3, 11, 6, 3, 3243, 2.7e-39
|
|
- 10: 1, 14, 1433, 3, 11, 10, 2, 3467, 2.9e-39
|
|
- 11: 1, 14, 1414, 4, 9, 6, 3, 3996, 2.8e-39
|
|
- 12: 1, 14, 1431, 4, 9, 21, 1, 4715, 2.9e-39
|
|
- 13: 1, 14, 1367, 6, 6, 10, 2, 5489, 2.5e-39
|
|
- 14: 1, 14, 1372, 7, 6, 10, 2, 6238, 1.7e-39
|
|
- 15: 1, 14, 1375, 8, 5, 10, 2, 6982, 2.9e-39
|
|
- 16: 1, 14, 1386, 10, 4, 10, 2, 8510, 2.7e-39
|
|
- 17: 1, 14, 1407, 14, 3, 10, 2, 11628, 2.9e-39
|
|
- 18: 1, 14, 1387, 41, 1, 20, 1, 31792, 2.8e-39
|
|
# no solution starting from log norm2 = 19
|
|
|
|
- 7: # bits
|
|
-ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error
|
|
- 0 : 1, 15, 1524, 2, 15, 5, 4, 5557, 2.1e-39
|
|
- 1 : 1, 15, 1524, 2, 15, 5, 4, 5557, 2.5e-39
|
|
- 2 : 1, 15, 1525, 2, 15, 5, 4, 5561, 2.9e-39
|
|
- 3 : 1, 15, 1531, 2, 15, 5, 4, 5582, 2.3e-39
|
|
- 4 : 1, 15, 1508, 2, 15, 7, 3, 5689, 2.5e-39
|
|
- 5 : 1, 15, 1477, 3, 11, 7, 3, 7236, 2.7e-39
|
|
- 6 : 1, 15, 1479, 3, 11, 7, 3, 7246, 2.1e-39
|
|
- 7 : 1, 15, 1486, 3, 11, 7, 3, 7280, 2.8e-39
|
|
- 8 : 1, 15, 1540, 3, 11, 12, 2, 8021, 2.9e-39
|
|
- 9 : 1, 15, 1488, 4, 9, 7, 3, 8963, 2.9e-39
|
|
- 10: 1, 15, 1486, 5, 7, 7, 3, 10623, 1.8e-39
|
|
- 11: 1, 15, 1504, 5, 7, 11, 2, 11127, 2.9e-39
|
|
- 12: 1, 15, 1540, 6, 6, 11, 2, 13122, 2.9e-39
|
|
- 13: 1, 15, 1466, 8, 5, 11, 2, 15796, 2.8e-39
|
|
- 14: 1, 15, 1479, 10, 4, 11, 2, 19263, 2.9e-39
|
|
- 15: 1, 15, 1505, 14, 3, 22, 1, 27408, 2.9e-39
|
|
- 16: 1, 15, 1495, 41, 1, 11, 2, 71608, 2.5e-39
|
|
# no solution starting from log norm2 = 17
|
|
|
|
- 8: # bits
|
|
-ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error
|
|
- 0 : 1, 16, 1579, 2, 14, 7, 3, 12494, 2.0e-39
|
|
- 1 : 1, 16, 1584, 2, 14, 7, 3, 12533, 2.8e-39
|
|
- 2 : 1, 16, 1634, 2, 14, 6, 4, 12716, 2.4e-39
|
|
- 3 : 1, 16, 1578, 3, 11, 7, 3, 16234, 2.2e-39
|
|
- 4 : 1, 16, 1581, 3, 11, 7, 3, 16264, 2.2e-39
|
|
- 5 : 1, 16, 1575, 3, 11, 8, 3, 16401, 2.0e-39
|
|
- 6 : 1, 16, 1582, 4, 9, 7, 3, 20032, 2.3e-39
|
|
- 7 : 1, 16, 1578, 4, 9, 8, 3, 20179, 2.3e-39
|
|
- 8 : 1, 16, 1571, 5, 7, 8, 3, 23822, 2.5e-39
|
|
- 9 : 1, 16, 1610, 5, 7, 8, 3, 24407, 2.6e-39
|
|
- 10: 1, 16, 1577, 6, 6, 12, 2, 28447, 2.7e-39
|
|
- 11: 1, 16, 1566, 8, 5, 11, 2, 35493, 2.4e-39
|
|
- 12: 1, 16, 1580, 10, 4, 12, 2, 43510, 2.8e-39
|
|
- 13: 1, 16, 1551, 20, 2, 11, 2, 79359, 2.7e-39
|
|
- 14: 1, 16, 1574, 41, 1, 24, 1, 161595, 2.7e-39
|
|
# no solution starting from log norm2 = 15
|
|
|
|
- 9: # bits
|
|
-ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error
|
|
- 0 : 1, 17, 1715, 2, 14, 6, 4, 27954, 2.7e-39
|
|
- 1 : 1, 17, 1651, 3, 11, 8, 3, 36011, 2.3e-39
|
|
- 2 : 1, 17, 1653, 3, 11, 8, 3, 36054, 2.5e-39
|
|
- 3 : 1, 17, 1664, 3, 11, 8, 3, 36290, 2.0e-39
|
|
- 4 : 1, 17, 1654, 4, 9, 8, 3, 44345, 2.4e-39
|
|
- 5 : 1, 17, 1669, 4, 9, 8, 3, 44743, 2.2e-39
|
|
- 6 : 1, 17, 1657, 5, 7, 8, 3, 52710, 2.4e-39
|
|
- 7 : 1, 17, 1695, 5, 7, 8, 3, 53907, 2.7e-39
|
|
- 8 : 1, 17, 1664, 6, 6, 12, 2, 62916, 2.7e-39
|
|
- 9 : 1, 17, 1665, 8, 5, 12, 2, 79603, 2.6e-39
|
|
- 10: 1, 17, 1629, 13, 3, 12, 2, 118618, 2.3e-39
|
|
- 11: 1, 17, 1639, 20, 2, 12, 2, 176708, 2.6e-39
|
|
# no solution starting from log norm2 = 12
|
|
|
|
- 10: # bits
|
|
# no solution at all
|