From 4d6afba9dd8da64a279d031432baaaf6ee2141be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20P=C3=A9r=C3=A9?= Date: Mon, 9 Dec 2024 10:44:28 +0100 Subject: [PATCH] chore(common): add 132 bits security curves --- .../v0-parameters/ref/v0_last_132 | 278 ++++++++++++++ .../v0-parameters/ref/wop_pbs_last_132 | 338 ++++++++++++++++++ docs/guides/configure.md | 3 + .../concrete/fhe/compilation/configuration.py | 14 + .../concrete/fhe/compilation/server.py | 2 + .../tests/compilation/test_configuration.py | 47 ++- .../include/concrete/curves.gen.h | 3 +- .../src/gaussian/curves_gen.rs | 19 +- 8 files changed, 700 insertions(+), 4 deletions(-) create mode 100644 compilers/concrete-optimizer/v0-parameters/ref/v0_last_132 create mode 100644 compilers/concrete-optimizer/v0-parameters/ref/wop_pbs_last_132 diff --git a/compilers/concrete-optimizer/v0-parameters/ref/v0_last_132 b/compilers/concrete-optimizer/v0-parameters/ref/v0_last_132 new file mode 100644 index 0000000000..9686cc3f30 --- /dev/null +++ b/compilers/concrete-optimizer/v0-parameters/ref/v0_last_132 @@ -0,0 +1,278 @@ +security level: 132 +target p_error: 6.3e-5 +per precision and log norm2: + + - 1: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error + - 0 : 5, 8, 613, 1, 14, 3, 3, 31, 5.7e-5 + - 1 : 5, 8, 645, 1, 14, 3, 3, 32, 6.3e-5 + - 2 : 6, 8, 616, 1, 17, 3, 3, 37, 5.6e-5 + - 3 : 6, 8, 620, 1, 17, 3, 3, 37, 6.1e-5 + - 4 : 6, 8, 656, 1, 17, 3, 3, 39, 6.3e-5 + - 5 : 5, 8, 630, 2, 9, 3, 3, 45, 6.1e-5 + - 6 : 4, 9, 623, 1, 23, 3, 3, 53, 6.1e-5 + - 7 : 4, 9, 624, 1, 23, 3, 3, 53, 5.4e-5 + - 8 : 4, 9, 625, 1, 23, 3, 3, 53, 5.8e-5 + - 9 : 4, 9, 631, 1, 23, 3, 3, 53, 6.1e-5 + - 10: 4, 9, 686, 1, 23, 3, 4, 57, 5.9e-5 + - 11: 6, 8, 621, 3, 9, 3, 3, 71, 5.6e-5 + - 12: 6, 8, 609, 3, 9, 5, 2, 74, 6.3e-5 + - 13: 4, 9, 623, 2, 16, 3, 3, 76, 6.1e-5 + - 14: 4, 9, 624, 2, 16, 3, 3, 76, 5.3e-5 + - 15: 4, 9, 624, 2, 16, 3, 3, 76, 6.3e-5 + - 16: 4, 9, 629, 2, 16, 3, 3, 76, 5.7e-5 + - 17: 4, 9, 610, 2, 16, 5, 2, 79, 6.0e-5 + - 18: 4, 9, 591, 3, 12, 5, 2, 98, 5.7e-5 + - 19: 4, 9, 592, 3, 12, 5, 2, 99, 5.7e-5 + - 20: 4, 9, 596, 3, 12, 5, 2, 99, 6.1e-5 + - 21: 4, 9, 630, 3, 12, 5, 2, 104, 6.0e-5 + - 22: 4, 9, 596, 4, 9, 5, 2, 121, 5.7e-5 + - 23: 4, 9, 625, 4, 9, 5, 2, 127, 6.1e-5 + - 24: 4, 9, 601, 5, 8, 5, 2, 144, 5.4e-5 + - 25: 4, 9, 603, 6, 7, 5, 2, 167, 5.7e-5 + - 26: 4, 9, 606, 7, 6, 5, 2, 190, 5.7e-5 + - 27: 4, 9, 661, 8, 5, 6, 2, 233, 6.3e-5 + - 28: 4, 9, 621, 11, 4, 5, 2, 285, 6.2e-5 + - 29: 4, 9, 651, 15, 3, 6, 2, 396, 6.2e-5 + - 30: 4, 9, 633, 44, 1, 11, 1, 1070, 6.1e-5 + # no solution starting from log norm2 = 31 + + - 2: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error + - 0 : 4, 8, 699, 2, 7, 4, 3, 41, 6.2e-5 + - 1 : 6, 8, 702, 1, 17, 3, 4, 42, 6.0e-5 + - 2 : 6, 8, 709, 1, 17, 3, 4, 42, 6.0e-5 + - 3 : 3, 9, 716, 1, 17, 3, 4, 45, 6.0e-5 + - 4 : 5, 8, 711, 2, 9, 4, 3, 52, 6.3e-5 + - 5 : 4, 9, 694, 1, 23, 3, 4, 58, 6.0e-5 + - 6 : 4, 9, 695, 1, 23, 3, 4, 58, 5.0e-5 + - 7 : 4, 9, 696, 1, 23, 3, 4, 58, 5.2e-5 + - 8 : 4, 9, 701, 1, 23, 3, 4, 59, 5.4e-5 + - 9 : 4, 9, 712, 1, 23, 4, 3, 62, 6.2e-5 + - 10: 6, 8, 676, 3, 9, 4, 3, 79, 6.3e-5 + - 11: 4, 9, 663, 2, 16, 4, 3, 83, 5.4e-5 + - 12: 4, 9, 663, 2, 16, 4, 3, 83, 5.4e-5 + - 13: 4, 9, 663, 2, 16, 4, 3, 83, 5.7e-5 + - 14: 4, 9, 664, 2, 16, 4, 3, 83, 5.4e-5 + - 15: 4, 9, 667, 2, 16, 4, 3, 83, 5.8e-5 + - 16: 4, 9, 687, 2, 16, 4, 3, 85, 6.0e-5 + - 17: 4, 9, 645, 3, 12, 5, 2, 107, 5.8e-5 + - 18: 4, 9, 647, 3, 12, 5, 2, 107, 5.6e-5 + - 19: 4, 9, 669, 3, 12, 4, 3, 108, 6.2e-5 + - 20: 4, 9, 688, 3, 12, 6, 2, 116, 6.3e-5 + - 21: 4, 9, 654, 4, 9, 5, 2, 132, 6.2e-5 + - 22: 4, 9, 680, 4, 9, 6, 2, 140, 6.2e-5 + - 23: 4, 9, 648, 5, 8, 6, 2, 157, 5.8e-5 + - 24: 4, 9, 651, 6, 7, 6, 2, 182, 5.5e-5 + - 25: 4, 9, 654, 7, 6, 6, 2, 206, 6.0e-5 + - 26: 4, 9, 662, 9, 5, 6, 2, 257, 5.8e-5 + - 27: 4, 9, 674, 11, 4, 6, 2, 311, 6.3e-5 + - 28: 5, 9, 682, 15, 3, 6, 2, 529, 6.3e-5 + - 29: 4, 9, 708, 45, 1, 13, 1, 1228, 6.3e-5 + # no solution starting from log norm2 = 30 + + - 3: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error + - 0 : 3, 9, 747, 1, 17, 3, 4, 47, 6.3e-5 + - 1 : 3, 9, 757, 1, 17, 3, 4, 48, 6.2e-5 + - 2 : 4, 9, 755, 1, 23, 3, 4, 62, 6.0e-5 + - 3 : 4, 9, 755, 1, 23, 3, 4, 62, 6.0e-5 + - 4 : 4, 9, 755, 1, 23, 3, 4, 62, 6.2e-5 + - 5 : 4, 9, 756, 1, 23, 3, 4, 63, 5.9e-5 + - 6 : 4, 9, 759, 1, 23, 3, 4, 63, 5.8e-5 + - 7 : 4, 9, 774, 1, 23, 3, 4, 64, 6.1e-5 + - 8 : 3, 9, 715, 3, 9, 4, 3, 87, 6.0e-5 + - 9 : 3, 9, 726, 3, 9, 4, 3, 88, 5.9e-5 + - 10: 4, 9, 722, 2, 16, 4, 3, 89, 6.3e-5 + - 11: 4, 9, 723, 2, 16, 4, 3, 89, 5.7e-5 + - 12: 4, 9, 723, 2, 16, 4, 3, 89, 6.0e-5 + - 13: 4, 9, 725, 2, 16, 4, 3, 90, 5.8e-5 + - 14: 4, 9, 733, 2, 16, 4, 3, 91, 6.1e-5 + - 15: 2, 10, 765, 2, 15, 5, 3, 110, 6.2e-5 + - 16: 4, 9, 723, 3, 12, 4, 3, 116, 6.2e-5 + - 17: 4, 9, 726, 3, 12, 4, 3, 116, 5.9e-5 + - 18: 4, 9, 740, 3, 12, 4, 3, 118, 6.3e-5 + - 19: 4, 9, 726, 4, 9, 4, 3, 143, 5.8e-5 + - 20: 4, 9, 739, 4, 9, 4, 3, 145, 6.1e-5 + - 21: 4, 9, 701, 5, 8, 6, 2, 169, 5.9e-5 + - 22: 4, 9, 734, 5, 8, 6, 2, 177, 6.2e-5 + - 23: 4, 9, 733, 6, 7, 7, 2, 207, 6.3e-5 + - 24: 4, 9, 718, 8, 5, 6, 2, 252, 6.2e-5 + - 25: 4, 9, 709, 11, 4, 6, 2, 327, 6.2e-5 + - 26: 4, 9, 726, 14, 3, 7, 2, 417, 6.2e-5 + - 27: 4, 9, 737, 22, 2, 7, 2, 639, 6.3e-5 + # no solution starting from log norm2 = 28 + + - 4: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error + - 0 : 2, 10, 794, 1, 23, 4, 3, 78, 6.3e-5 + - 1 : 2, 10, 831, 1, 23, 3, 4, 78, 6.2e-5 + - 2 : 2, 10, 831, 1, 23, 3, 4, 78, 6.2e-5 + - 3 : 2, 10, 795, 1, 23, 4, 3, 78, 6.3e-5 + - 4 : 2, 10, 798, 1, 23, 4, 3, 78, 6.3e-5 + - 5 : 2, 10, 838, 1, 23, 3, 5, 79, 6.3e-5 + - 6 : 2, 10, 789, 1, 23, 5, 3, 81, 6.2e-5 + - 7 : 2, 10, 766, 2, 15, 5, 3, 110, 5.9e-5 + - 8 : 2, 10, 766, 2, 15, 5, 3, 110, 5.9e-5 + - 9 : 2, 10, 766, 2, 15, 5, 3, 110, 6.0e-5 + - 10: 2, 10, 766, 2, 15, 5, 3, 110, 6.1e-5 + - 11: 2, 10, 767, 2, 15, 5, 3, 110, 5.7e-5 + - 12: 2, 10, 769, 2, 15, 5, 3, 110, 6.0e-5 + - 13: 2, 10, 781, 2, 15, 5, 3, 112, 6.1e-5 + - 14: 2, 10, 766, 3, 12, 5, 3, 141, 6.2e-5 + - 15: 2, 10, 768, 3, 12, 5, 3, 142, 5.6e-5 + - 16: 2, 10, 773, 3, 12, 5, 3, 143, 5.7e-5 + - 17: 2, 10, 797, 3, 12, 7, 2, 153, 6.3e-5 + - 18: 2, 10, 742, 4, 9, 7, 2, 173, 5.9e-5 + - 19: 2, 10, 759, 4, 9, 7, 2, 177, 6.3e-5 + - 20: 2, 10, 749, 5, 8, 7, 2, 206, 6.2e-5 + - 21: 2, 10, 752, 6, 7, 7, 2, 237, 6.1e-5 + - 22: 2, 10, 756, 7, 6, 7, 2, 270, 6.0e-5 + - 23: 2, 10, 792, 8, 5, 7, 2, 315, 6.3e-5 + - 24: 2, 10, 779, 11, 4, 7, 2, 405, 6.2e-5 + - 25: 2, 10, 766, 21, 2, 7, 2, 713, 6.3e-5 + - 26: 2, 10, 782, 45, 1, 15, 1, 1522, 6.3e-5 + # no solution starting from log norm2 = 27 + + - 5: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error + - 0 : 1, 11, 809, 1, 23, 5, 3, 105, 5.9e-5 + - 1 : 1, 11, 809, 1, 23, 5, 3, 105, 5.9e-5 + - 2 : 1, 11, 809, 1, 23, 5, 3, 105, 6.2e-5 + - 3 : 1, 11, 811, 1, 23, 5, 3, 106, 5.8e-5 + - 4 : 1, 11, 818, 1, 23, 5, 3, 107, 5.8e-5 + - 5 : 1, 11, 809, 2, 15, 5, 3, 150, 5.9e-5 + - 6 : 1, 11, 809, 2, 15, 5, 3, 150, 5.9e-5 + - 7 : 1, 11, 809, 2, 15, 5, 3, 150, 5.9e-5 + - 8 : 1, 11, 809, 2, 15, 5, 3, 150, 5.9e-5 + - 9 : 1, 11, 809, 2, 15, 5, 3, 150, 6.1e-5 + - 10: 1, 11, 810, 2, 15, 5, 3, 150, 6.0e-5 + - 11: 1, 11, 814, 2, 15, 5, 3, 151, 6.1e-5 + - 12: 1, 11, 845, 2, 15, 5, 3, 156, 6.2e-5 + - 13: 1, 11, 810, 3, 11, 5, 3, 194, 5.7e-5 + - 14: 1, 11, 812, 3, 11, 5, 3, 195, 6.2e-5 + - 15: 1, 11, 826, 3, 11, 5, 3, 198, 6.3e-5 + - 16: 1, 11, 786, 4, 9, 7, 2, 238, 6.1e-5 + - 17: 1, 11, 794, 4, 9, 7, 2, 240, 5.9e-5 + - 18: 1, 11, 792, 5, 8, 7, 2, 283, 6.2e-5 + - 19: 1, 11, 794, 6, 7, 7, 2, 327, 6.2e-5 + - 20: 1, 11, 796, 7, 6, 7, 2, 371, 6.3e-5 + - 21: 1, 11, 804, 8, 5, 7, 2, 419, 6.0e-5 + - 22: 1, 11, 821, 10, 4, 8, 2, 521, 6.2e-5 + - 23: 1, 11, 815, 14, 3, 8, 2, 695, 6.3e-5 + - 24: 1, 11, 793, 43, 1, 15, 1, 1956, 6.1e-5 + # no solution starting from log norm2 = 25 + + - 6: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error + - 0 : 1, 12, 909, 1, 22, 4, 4, 243, 5.9e-5 + - 1 : 1, 12, 910, 1, 22, 4, 4, 243, 6.2e-5 + - 2 : 1, 12, 917, 1, 22, 4, 4, 245, 6.3e-5 + - 3 : 1, 12, 886, 2, 15, 5, 3, 348, 6.0e-5 + - 4 : 1, 12, 886, 2, 15, 5, 3, 348, 6.0e-5 + - 5 : 1, 12, 886, 2, 15, 5, 3, 348, 6.0e-5 + - 6 : 1, 12, 886, 2, 15, 5, 3, 348, 6.0e-5 + - 7 : 1, 12, 886, 2, 15, 5, 3, 348, 6.1e-5 + - 8 : 1, 12, 887, 2, 15, 5, 3, 348, 6.3e-5 + - 9 : 1, 12, 893, 2, 15, 5, 3, 350, 6.3e-5 + - 10: 1, 12, 899, 2, 15, 6, 3, 360, 6.3e-5 + - 11: 1, 12, 887, 3, 11, 5, 3, 452, 6.0e-5 + - 12: 1, 12, 890, 3, 11, 5, 3, 454, 6.1e-5 + - 13: 1, 12, 859, 3, 11, 8, 2, 459, 6.3e-5 + - 14: 1, 12, 850, 4, 9, 8, 2, 553, 6.0e-5 + - 15: 1, 12, 856, 4, 9, 8, 2, 557, 5.9e-5 + - 16: 1, 12, 856, 5, 8, 8, 2, 658, 6.0e-5 + - 17: 1, 12, 858, 6, 7, 8, 2, 760, 5.9e-5 + - 18: 1, 12, 860, 7, 6, 8, 2, 862, 5.9e-5 + - 19: 1, 12, 864, 8, 5, 8, 2, 967, 6.1e-5 + - 20: 1, 12, 881, 10, 4, 8, 2, 1193, 6.2e-5 + - 21: 1, 12, 880, 14, 3, 9, 2, 1611, 6.1e-5 + - 22: 1, 12, 863, 42, 1, 17, 1, 4466, 6.3e-5 + # no solution starting from log norm2 = 23 + + - 7: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error + - 0 : 1, 13, 946, 1, 22, 6, 3, 564, 6.1e-5 + - 1 : 1, 13, 978, 1, 22, 6, 3, 582, 6.2e-5 + - 2 : 1, 13, 941, 2, 15, 6, 3, 796, 5.9e-5 + - 3 : 1, 13, 941, 2, 15, 6, 3, 796, 5.9e-5 + - 4 : 1, 13, 941, 2, 15, 6, 3, 796, 5.9e-5 + - 5 : 1, 13, 941, 2, 15, 6, 3, 796, 6.1e-5 + - 6 : 1, 13, 942, 2, 15, 6, 3, 797, 5.9e-5 + - 7 : 1, 13, 945, 2, 15, 6, 3, 799, 6.1e-5 + - 8 : 1, 13, 966, 2, 15, 6, 3, 817, 6.3e-5 + - 9 : 1, 13, 941, 3, 11, 6, 3, 1031, 6.2e-5 + - 10: 1, 13, 943, 3, 11, 6, 3, 1034, 6.0e-5 + - 11: 1, 13, 950, 3, 11, 6, 3, 1041, 6.3e-5 + - 12: 1, 13, 943, 4, 9, 6, 3, 1269, 5.9e-5 + - 13: 1, 13, 949, 4, 9, 6, 3, 1277, 6.2e-5 + - 14: 1, 13, 922, 5, 8, 9, 2, 1516, 6.2e-5 + - 15: 1, 13, 924, 6, 7, 9, 2, 1750, 6.3e-5 + - 16: 1, 13, 927, 7, 6, 9, 2, 1987, 6.1e-5 + - 17: 1, 13, 931, 8, 5, 9, 2, 2228, 6.1e-5 + - 18: 1, 13, 944, 10, 4, 9, 2, 2731, 6.3e-5 + - 19: 1, 13, 959, 14, 3, 10, 2, 3748, 6.3e-5 + - 20: 1, 13, 930, 42, 1, 19, 1, 10276, 6.3e-5 + # no solution starting from log norm2 = 21 + + - 8: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error + - 0 : 1, 14, 1040, 2, 15, 5, 4, 1819, 6.0e-5 + - 1 : 1, 14, 1040, 2, 15, 5, 4, 1819, 6.0e-5 + - 2 : 1, 14, 1040, 2, 15, 5, 4, 1819, 6.1e-5 + - 3 : 1, 14, 1040, 2, 15, 5, 4, 1819, 6.2e-5 + - 4 : 1, 14, 1041, 2, 15, 5, 4, 1820, 6.1e-5 + - 5 : 1, 14, 1045, 2, 15, 5, 4, 1827, 6.2e-5 + - 6 : 1, 14, 1035, 2, 15, 7, 3, 1875, 6.2e-5 + - 7 : 1, 14, 1008, 3, 11, 7, 3, 2363, 6.1e-5 + - 8 : 1, 14, 1010, 3, 11, 7, 3, 2368, 5.8e-5 + - 9 : 1, 14, 1016, 3, 11, 7, 3, 2382, 6.3e-5 + - 10: 1, 14, 1010, 4, 9, 7, 3, 2904, 5.9e-5 + - 11: 1, 14, 1017, 4, 9, 7, 3, 2924, 6.1e-5 + - 12: 1, 14, 990, 5, 8, 10, 2, 3467, 6.2e-5 + - 13: 1, 14, 991, 6, 6, 10, 2, 3997, 6.3e-5 + - 14: 1, 14, 996, 7, 6, 10, 2, 4546, 6.2e-5 + - 15: 1, 14, 1001, 8, 5, 10, 2, 5100, 6.1e-5 + - 16: 1, 14, 1016, 10, 4, 10, 2, 6255, 6.3e-5 + - 17: 1, 14, 1004, 20, 2, 10, 2, 11516, 6.2e-5 + - 18: 1, 14, 1004, 42, 1, 20, 1, 23564, 6.3e-5 + # no solution starting from log norm2 = 19 + + - 9: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error + - 0 : 1, 15, 1074, 2, 15, 7, 3, 4089, 6.0e-5 + - 1 : 1, 15, 1074, 2, 15, 7, 3, 4089, 6.1e-5 + - 2 : 1, 15, 1075, 2, 15, 7, 3, 4092, 6.1e-5 + - 3 : 1, 15, 1079, 2, 15, 7, 3, 4107, 6.3e-5 + - 4 : 1, 15, 1122, 2, 15, 7, 3, 4266, 6.3e-5 + - 5 : 1, 15, 1074, 3, 11, 7, 3, 5297, 6.2e-5 + - 6 : 1, 15, 1076, 3, 11, 7, 3, 5306, 6.0e-5 + - 7 : 1, 15, 1084, 3, 11, 7, 3, 5345, 6.2e-5 + - 8 : 1, 15, 1076, 4, 9, 7, 3, 6517, 6.2e-5 + - 9 : 1, 15, 1086, 4, 9, 7, 3, 6576, 6.3e-5 + - 10: 1, 15, 1083, 5, 7, 7, 3, 7777, 6.2e-5 + - 11: 1, 15, 1084, 6, 6, 7, 3, 9003, 6.2e-5 + - 12: 1, 15, 1068, 7, 6, 11, 2, 10341, 6.2e-5 + - 13: 1, 15, 1075, 8, 5, 11, 2, 11618, 6.2e-5 + - 14: 1, 15, 1109, 10, 4, 12, 2, 14546, 6.3e-5 + - 15: 1, 15, 1068, 20, 2, 11, 2, 25961, 6.2e-5 + - 16: 1, 15, 1098, 42, 1, 23, 1, 54687, 6.3e-5 + # no solution starting from log norm2 = 17 + + - 10: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error + - 0 : 1, 16, 1176, 2, 14, 6, 4, 9224, 6.0e-5 + - 1 : 1, 16, 1180, 2, 14, 6, 4, 9254, 6.1e-5 + - 2 : 1, 16, 1170, 2, 14, 8, 3, 9471, 6.3e-5 + - 3 : 1, 16, 1141, 3, 11, 8, 3, 11952, 6.2e-5 + - 4 : 1, 16, 1143, 3, 11, 8, 3, 11973, 6.1e-5 + - 5 : 1, 16, 1152, 3, 11, 8, 3, 12065, 6.2e-5 + - 6 : 1, 16, 1144, 4, 9, 8, 3, 14700, 6.0e-5 + - 7 : 1, 16, 1156, 4, 9, 8, 3, 14851, 6.3e-5 + - 8 : 1, 16, 1148, 5, 7, 8, 3, 17477, 6.2e-5 + - 9 : 1, 16, 1124, 6, 6, 11, 2, 20209, 6.2e-5 + - 10: 1, 16, 1146, 7, 6, 12, 2, 23464, 6.3e-5 + - 11: 1, 16, 1163, 8, 5, 12, 2, 26571, 6.3e-5 + - 12: 1, 16, 1127, 13, 3, 12, 2, 39139, 6.2e-5 + - 13: 1, 16, 1137, 20, 2, 12, 2, 58387, 6.3e-5 + # no solution starting from log norm2 = 14 diff --git a/compilers/concrete-optimizer/v0-parameters/ref/wop_pbs_last_132 b/compilers/concrete-optimizer/v0-parameters/ref/wop_pbs_last_132 new file mode 100644 index 0000000000..b1c88bba59 --- /dev/null +++ b/compilers/concrete-optimizer/v0-parameters/ref/wop_pbs_last_132 @@ -0,0 +1,338 @@ +security level: 132 +target p_error: 6.3e-5 +per precision and log norm2: + + - 1: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cb_l,cb_b, pp_l,pp_b, cost, p_error + - 0 : 2, 10, 633, 2, 15, 3, 3, 1, 10, 1, 24, 103, 5.5e-5 + - 1 : 2, 10, 664, 2, 15, 4, 3, 1, 10, 1, 24, 110, 6.3e-5 + - 2 : 2, 10, 611, 2, 15, 5, 2, 1, 11, 2, 16, 129, 5.9e-5 + - 3 : 2, 10, 598, 3, 12, 5, 2, 1, 13, 2, 16, 152, 5.3e-5 + - 4 : 2, 10, 676, 3, 12, 4, 3, 1, 12, 2, 16, 163, 6.3e-5 + - 5 : 2, 10, 619, 4, 9, 5, 2, 1, 14, 3, 12, 205, 6.1e-5 + - 6 : 2, 10, 618, 6, 7, 5, 2, 1, 15, 3, 12, 256, 5.9e-5 + - 7 : 2, 10, 599, 3, 12, 5, 2, 2, 8, 2, 16, 294, 6.3e-5 + - 8 : 2, 10, 598, 4, 9, 5, 2, 2, 9, 2, 16, 342, 5.9e-5 + - 9 : 2, 10, 661, 4, 9, 6, 2, 2, 9, 2, 16, 371, 6.2e-5 + - 10: 2, 10, 621, 5, 8, 5, 2, 2, 10, 3, 12, 451, 6.1e-5 + - 11: 2, 10, 615, 7, 6, 5, 2, 2, 10, 3, 12, 549, 6.0e-5 + - 12: 2, 10, 605, 5, 8, 5, 2, 3, 7, 3, 12, 659, 6.1e-5 + - 13: 2, 10, 617, 7, 6, 5, 2, 3, 8, 3, 12, 819, 5.9e-5 + - 14: 2, 10, 604, 8, 5, 11, 1, 3, 8, 4, 10, 967, 6.2e-5 + - 15: 2, 10, 652, 7, 6, 12, 1, 4, 6, 3, 12, 1152, 6.3e-5 + - 16: 2, 10, 610, 7, 6, 11, 1, 5, 5, 4, 10, 1481, 6.1e-5 + - 17: 2, 10, 614, 7, 6, 11, 1, 7, 4, 4, 10, 2072, 6.0e-5 + - 18: 2, 10, 633, 10, 4, 11, 1, 7, 4, 4, 10, 2660, 6.3e-5 + - 19: 2, 10, 609, 14, 3, 11, 1, 7, 4, 5, 8, 3453, 6.0e-5 + - 20: 2, 10, 618, 14, 3, 11, 1, 10, 3, 5, 8, 4976, 6.2e-5 + - 21: 2, 10, 650, 22, 2, 12, 1, 11, 3, 9, 5, 9091, 6.3e-5 + - 22: 2, 10, 646, 44, 1, 12, 1, 16, 2, 7, 6, 21708, 6.2e-5 + # no solution starting from log norm2 = 23 + + - 2: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cb_l,cb_b, pp_l,pp_b, cost, p_error + - 0 : 2, 10, 646, 3, 12, 5, 2, 1, 12, 2, 16, 435, 5.7e-5 + - 1 : 2, 10, 677, 3, 12, 4, 3, 1, 12, 2, 16, 443, 6.3e-5 + - 2 : 2, 10, 657, 4, 9, 6, 2, 1, 13, 2, 16, 529, 5.9e-5 + - 3 : 2, 10, 669, 2, 15, 6, 2, 2, 7, 2, 16, 622, 5.9e-5 + - 4 : 2, 10, 638, 3, 12, 6, 2, 2, 8, 2, 16, 733, 6.3e-5 + - 5 : 2, 10, 657, 3, 12, 6, 2, 2, 8, 2, 16, 749, 5.7e-5 + - 6 : 2, 10, 653, 4, 9, 6, 2, 2, 9, 2, 16, 879, 5.5e-5 + - 7 : 2, 10, 685, 4, 9, 6, 2, 2, 9, 3, 12, 1009, 6.1e-5 + - 8 : 2, 10, 660, 4, 9, 6, 2, 3, 7, 2, 16, 1242, 6.3e-5 + - 9 : 2, 10, 680, 4, 9, 6, 2, 3, 7, 3, 12, 1415, 6.2e-5 + - 10: 2, 10, 686, 5, 8, 6, 2, 3, 7, 3, 12, 1621, 6.1e-5 + - 11: 2, 10, 664, 5, 8, 6, 2, 4, 6, 3, 12, 2042, 6.1e-5 + - 12: 2, 10, 653, 7, 6, 6, 2, 4, 6, 3, 12, 2500, 5.9e-5 + - 13: 2, 10, 675, 8, 5, 6, 2, 4, 6, 4, 10, 3006, 6.1e-5 + - 14: 2, 10, 679, 8, 5, 12, 1, 5, 5, 4, 10, 3749, 6.2e-5 + - 15: 2, 10, 659, 8, 5, 12, 1, 7, 4, 4, 10, 5001, 6.1e-5 + - 16: 2, 10, 654, 11, 4, 12, 1, 7, 4, 5, 8, 6517, 6.2e-5 + - 17: 2, 10, 689, 11, 4, 13, 1, 10, 3, 5, 8, 9503, 6.3e-5 + - 18: 2, 10, 658, 22, 2, 12, 1, 10, 3, 5, 8, 15411, 6.3e-5 + - 19: 2, 10, 686, 22, 2, 13, 1, 16, 2, 6, 7, 25877, 6.3e-5 + # no solution starting from log norm2 = 20 + + - 3: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cb_l,cb_b, pp_l,pp_b, cost, p_error + - 0 : 2, 10, 747, 4, 9, 7, 2, 1, 13, 2, 16, 980, 6.3e-5 + - 1 : 2, 10, 736, 5, 8, 7, 2, 1, 14, 3, 12, 1190, 6.3e-5 + - 2 : 2, 10, 687, 3, 12, 6, 2, 2, 8, 2, 16, 1223, 6.3e-5 + - 3 : 2, 10, 756, 3, 12, 7, 2, 2, 8, 2, 16, 1331, 6.3e-5 + - 4 : 2, 10, 726, 4, 9, 7, 2, 2, 9, 2, 16, 1528, 6.0e-5 + - 5 : 2, 10, 708, 5, 8, 6, 2, 2, 10, 3, 12, 1860, 6.0e-5 + - 6 : 2, 10, 692, 4, 9, 6, 2, 3, 7, 3, 12, 2225, 6.1e-5 + - 7 : 2, 10, 693, 5, 8, 6, 2, 3, 7, 3, 12, 2540, 5.8e-5 + - 8 : 2, 10, 739, 6, 7, 7, 2, 3, 7, 3, 12, 3013, 6.2e-5 + - 9 : 2, 10, 696, 6, 7, 6, 2, 4, 6, 3, 12, 3659, 6.2e-5 + - 10: 2, 10, 730, 7, 6, 7, 2, 4, 6, 3, 12, 4229, 6.1e-5 + - 11: 2, 10, 708, 7, 6, 7, 2, 5, 5, 4, 10, 5383, 6.1e-5 + - 12: 2, 10, 699, 7, 6, 13, 1, 7, 4, 4, 10, 7332, 6.2e-5 + - 13: 2, 10, 724, 9, 5, 14, 1, 7, 4, 5, 8, 9406, 6.2e-5 + - 14: 2, 10, 694, 14, 3, 13, 1, 7, 4, 5, 8, 12381, 5.8e-5 + - 15: 2, 10, 702, 14, 3, 13, 1, 10, 3, 5, 8, 17408, 6.1e-5 + - 16: 2, 10, 732, 22, 2, 14, 1, 11, 3, 7, 6, 29696, 6.3e-5 + - 17: 2, 10, 721, 44, 1, 14, 1, 16, 2, 7, 6, 74494, 6.3e-5 + # no solution starting from log norm2 = 18 + + - 4: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cb_l,cb_b, pp_l,pp_b, cost, p_error + - 0 : 2, 10, 732, 4, 9, 6, 2, 1, 14, 3, 12, 1881, 6.2e-5 + - 1 : 2, 10, 673, 3, 12, 6, 2, 2, 8, 2, 16, 2287, 5.2e-5 + - 2 : 2, 10, 683, 3, 12, 6, 2, 2, 8, 2, 16, 2313, 5.4e-5 + - 3 : 2, 10, 681, 4, 9, 6, 2, 2, 9, 2, 16, 2727, 5.3e-5 + - 4 : 2, 10, 692, 4, 9, 6, 2, 2, 9, 3, 12, 3050, 6.1e-5 + - 5 : 2, 10, 732, 5, 8, 7, 2, 2, 10, 3, 12, 3652, 6.3e-5 + - 6 : 2, 10, 691, 4, 9, 6, 2, 3, 7, 3, 12, 4293, 6.1e-5 + - 7 : 2, 10, 692, 5, 8, 6, 2, 3, 7, 3, 12, 4894, 6.2e-5 + - 8 : 2, 10, 712, 7, 6, 7, 2, 3, 8, 3, 12, 6249, 6.2e-5 + - 9 : 2, 10, 700, 6, 7, 6, 2, 4, 6, 3, 12, 7140, 5.9e-5 + - 10: 2, 10, 714, 7, 6, 7, 2, 4, 6, 4, 10, 8641, 6.3e-5 + - 11: 2, 10, 735, 7, 6, 14, 1, 5, 5, 4, 10, 10994, 6.3e-5 + - 12: 2, 10, 677, 8, 5, 12, 1, 7, 4, 4, 10, 15305, 5.7e-5 + - 13: 2, 10, 689, 11, 4, 13, 1, 7, 4, 4, 10, 19344, 6.1e-5 + - 14: 2, 10, 724, 14, 3, 14, 1, 7, 4, 5, 8, 25164, 6.2e-5 + - 15: 2, 10, 728, 15, 3, 14, 1, 10, 3, 5, 8, 37267, 6.3e-5 + - 16: 2, 10, 719, 22, 2, 14, 1, 15, 2, 5, 8, 73666, 6.2e-5 + - 17: 2, 10, 712, 44, 1, 13, 1, 32, 1, 7, 6, 287668, 6.3e-5 + # no solution starting from log norm2 = 18 + + - 5: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cb_l,cb_b, pp_l,pp_b, cost, p_error + - 0 : 2, 10, 732, 4, 9, 6, 2, 1, 14, 3, 12, 1881, 6.2e-5 + - 1 : 2, 10, 673, 3, 12, 6, 2, 2, 8, 2, 16, 2287, 5.2e-5 + - 2 : 2, 10, 683, 3, 12, 6, 2, 2, 8, 2, 16, 2313, 5.4e-5 + - 3 : 2, 10, 681, 4, 9, 6, 2, 2, 9, 2, 16, 2727, 5.3e-5 + - 4 : 2, 10, 692, 4, 9, 6, 2, 2, 9, 3, 12, 3050, 6.1e-5 + - 5 : 2, 10, 732, 5, 8, 7, 2, 2, 10, 3, 12, 3652, 6.3e-5 + - 6 : 2, 10, 691, 4, 9, 6, 2, 3, 7, 3, 12, 4293, 6.1e-5 + - 7 : 2, 10, 692, 5, 8, 6, 2, 3, 7, 3, 12, 4894, 6.2e-5 + - 8 : 2, 10, 712, 7, 6, 7, 2, 3, 8, 3, 12, 6249, 6.2e-5 + - 9 : 2, 10, 700, 6, 7, 6, 2, 4, 6, 3, 12, 7140, 5.9e-5 + - 10: 2, 10, 714, 7, 6, 7, 2, 4, 6, 4, 10, 8641, 6.3e-5 + - 11: 2, 10, 735, 7, 6, 14, 1, 5, 5, 4, 10, 10994, 6.3e-5 + - 12: 2, 10, 677, 8, 5, 12, 1, 7, 4, 4, 10, 15305, 5.7e-5 + - 13: 2, 10, 689, 11, 4, 13, 1, 7, 4, 4, 10, 19344, 6.1e-5 + - 14: 2, 10, 724, 14, 3, 14, 1, 7, 4, 5, 8, 25164, 6.2e-5 + - 15: 2, 10, 728, 15, 3, 14, 1, 10, 3, 5, 8, 37267, 6.3e-5 + - 16: 2, 10, 719, 22, 2, 14, 1, 15, 2, 5, 8, 73666, 6.2e-5 + - 17: 2, 10, 712, 44, 1, 13, 1, 32, 1, 7, 6, 287668, 6.3e-5 + # no solution starting from log norm2 = 18 + + - 6: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cb_l,cb_b, pp_l,pp_b, cost, p_error + - 0 : 2, 10, 692, 2, 15, 6, 2, 2, 7, 2, 16, 2276, 5.9e-5 + - 1 : 2, 10, 673, 3, 12, 6, 2, 2, 8, 2, 16, 2729, 5.8e-5 + - 2 : 2, 10, 685, 3, 12, 6, 2, 2, 8, 2, 16, 2766, 6.2e-5 + - 3 : 2, 10, 683, 4, 9, 6, 2, 2, 9, 2, 16, 3264, 5.6e-5 + - 4 : 2, 10, 699, 4, 9, 6, 2, 2, 9, 3, 12, 3661, 5.9e-5 + - 5 : 2, 10, 687, 4, 9, 6, 2, 3, 7, 2, 16, 4560, 6.3e-5 + - 6 : 2, 10, 697, 4, 9, 6, 2, 3, 7, 3, 12, 5116, 6.2e-5 + - 7 : 2, 10, 699, 5, 8, 6, 2, 3, 7, 3, 12, 5843, 6.0e-5 + - 8 : 2, 10, 690, 5, 8, 6, 2, 4, 6, 3, 12, 7439, 6.0e-5 + - 9 : 2, 10, 711, 6, 7, 6, 2, 4, 6, 3, 12, 8537, 6.2e-5 + - 10: 2, 10, 746, 7, 6, 7, 2, 4, 6, 4, 10, 10541, 6.3e-5 + - 11: 2, 10, 688, 8, 5, 12, 1, 5, 5, 4, 10, 13391, 6.3e-5 + - 12: 2, 10, 680, 8, 5, 13, 1, 7, 4, 4, 10, 18081, 6.2e-5 + - 13: 2, 10, 700, 11, 4, 13, 1, 7, 4, 4, 10, 23040, 6.3e-5 + - 14: 2, 10, 741, 15, 3, 14, 1, 7, 4, 5, 8, 31765, 6.3e-5 + - 15: 2, 10, 755, 15, 3, 15, 1, 10, 3, 7, 6, 48439, 6.3e-5 + - 16: 2, 10, 715, 22, 2, 13, 1, 15, 2, 6, 7, 88381, 6.3e-5 + - 17: 2, 10, 740, 45, 1, 14, 1, 32, 1, 9, 5, 365739, 6.3e-5 + # no solution starting from log norm2 = 18 + + - 7: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cb_l,cb_b, pp_l,pp_b, cost, p_error + - 0 : 2, 10, 739, 2, 15, 6, 2, 2, 7, 2, 16, 2769, 6.3e-5 + - 1 : 2, 10, 684, 3, 12, 6, 2, 2, 8, 2, 16, 3210, 6.3e-5 + - 2 : 2, 10, 711, 3, 12, 6, 2, 2, 8, 2, 16, 3306, 5.9e-5 + - 3 : 2, 10, 704, 4, 9, 6, 2, 2, 9, 2, 16, 3887, 5.8e-5 + - 4 : 2, 10, 724, 3, 12, 6, 2, 3, 6, 2, 16, 4637, 6.2e-5 + - 5 : 2, 10, 717, 4, 9, 6, 2, 3, 7, 2, 16, 5456, 6.1e-5 + - 6 : 2, 10, 760, 4, 9, 14, 1, 3, 7, 3, 12, 6600, 6.3e-5 + - 7 : 2, 10, 766, 5, 8, 14, 1, 3, 7, 3, 12, 7549, 6.3e-5 + - 8 : 2, 10, 721, 5, 8, 7, 2, 4, 6, 3, 12, 8897, 6.3e-5 + - 9 : 2, 10, 705, 7, 6, 6, 2, 4, 6, 3, 12, 10855, 5.9e-5 + - 10: 2, 10, 737, 8, 5, 7, 2, 4, 6, 4, 10, 13167, 6.3e-5 + - 11: 2, 10, 737, 8, 5, 14, 1, 5, 5, 5, 8, 17285, 6.3e-5 + - 12: 2, 10, 724, 8, 5, 13, 1, 7, 4, 4, 10, 21781, 6.3e-5 + - 13: 2, 10, 713, 11, 4, 13, 1, 7, 4, 5, 8, 28228, 6.1e-5 + - 14: 2, 10, 685, 14, 3, 13, 1, 10, 3, 5, 8, 45381, 6.1e-5 + - 15: 2, 10, 718, 22, 2, 14, 1, 10, 3, 5, 8, 67166, 6.2e-5 + - 16: 2, 10, 706, 43, 1, 13, 1, 16, 2, 6, 7, 187560, 6.0e-5 + # no solution starting from log norm2 = 17 + + - 8: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cb_l,cb_b, pp_l,pp_b, cost, p_error + - 0 : 2, 10, 748, 2, 15, 7, 2, 2, 7, 2, 16, 3225, 6.3e-5 + - 1 : 2, 10, 685, 3, 12, 6, 2, 2, 8, 2, 16, 3661, 6.0e-5 + - 2 : 2, 10, 719, 3, 12, 6, 2, 2, 8, 2, 16, 3799, 6.1e-5 + - 3 : 2, 10, 709, 4, 9, 6, 2, 2, 9, 2, 16, 4457, 6.1e-5 + - 4 : 2, 10, 729, 3, 12, 7, 2, 3, 6, 2, 16, 5335, 6.2e-5 + - 5 : 2, 10, 721, 4, 9, 7, 2, 3, 7, 2, 16, 6267, 6.1e-5 + - 6 : 2, 10, 689, 5, 8, 6, 2, 3, 7, 3, 12, 7587, 5.6e-5 + - 7 : 2, 10, 714, 6, 7, 6, 2, 3, 7, 3, 12, 8758, 6.3e-5 + - 8 : 2, 10, 740, 5, 8, 7, 2, 4, 6, 3, 12, 10278, 6.2e-5 + - 9 : 2, 10, 711, 7, 6, 6, 2, 4, 6, 3, 12, 12385, 5.9e-5 + - 10: 2, 10, 719, 7, 6, 7, 2, 5, 5, 3, 12, 15253, 6.2e-5 + - 11: 2, 10, 741, 9, 5, 7, 2, 5, 5, 5, 8, 20882, 6.3e-5 + - 12: 2, 10, 722, 8, 5, 13, 1, 7, 4, 5, 8, 26077, 6.3e-5 + - 13: 2, 10, 735, 11, 4, 14, 1, 7, 4, 5, 8, 32693, 6.3e-5 + - 14: 2, 10, 688, 14, 3, 13, 1, 10, 3, 5, 8, 51399, 6.3e-5 + - 15: 2, 10, 708, 22, 2, 13, 1, 10, 3, 6, 7, 77042, 6.0e-5 + - 16: 2, 10, 703, 44, 1, 13, 1, 16, 2, 6, 7, 215009, 6.1e-5 + # no solution starting from log norm2 = 17 + + - 9: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cb_l,cb_b, pp_l,pp_b, cost, p_error + - 0 : 2, 10, 724, 5, 8, 7, 2, 1, 14, 3, 12, 4244, 6.3e-5 + - 1 : 2, 10, 687, 3, 12, 6, 2, 2, 8, 2, 16, 4443, 5.5e-5 + - 2 : 2, 10, 734, 3, 12, 7, 2, 2, 8, 2, 16, 4727, 6.1e-5 + - 3 : 2, 10, 724, 4, 9, 6, 2, 2, 9, 2, 16, 5487, 6.3e-5 + - 4 : 2, 10, 704, 5, 8, 6, 2, 2, 10, 3, 12, 6730, 6.0e-5 + - 5 : 2, 10, 734, 6, 7, 7, 2, 2, 10, 3, 12, 7874, 6.1e-5 + - 6 : 2, 10, 691, 5, 8, 6, 2, 3, 7, 3, 12, 9233, 6.3e-5 + - 7 : 2, 10, 726, 6, 7, 7, 2, 3, 7, 3, 12, 10822, 6.1e-5 + - 8 : 2, 10, 694, 6, 7, 6, 2, 4, 6, 3, 12, 13320, 6.2e-5 + - 9 : 2, 10, 720, 7, 6, 7, 2, 4, 6, 3, 12, 15257, 6.2e-5 + - 10: 2, 10, 753, 7, 6, 7, 2, 5, 5, 3, 12, 19250, 6.3e-5 + - 11: 2, 10, 695, 7, 6, 13, 1, 7, 4, 4, 10, 26687, 5.8e-5 + - 12: 2, 10, 756, 9, 5, 14, 1, 7, 4, 4, 10, 33641, 6.3e-5 + - 13: 2, 10, 690, 14, 3, 13, 1, 7, 4, 5, 8, 45038, 6.1e-5 + - 14: 2, 10, 697, 14, 3, 13, 1, 10, 3, 5, 8, 63317, 5.9e-5 + - 15: 2, 10, 726, 22, 2, 14, 1, 10, 3, 7, 6, 98608, 6.3e-5 + - 16: 2, 10, 710, 44, 1, 13, 1, 16, 2, 7, 6, 268933, 6.1e-5 + # no solution starting from log norm2 = 17 + + - 10: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cb_l,cb_b, pp_l,pp_b, cost, p_error + - 0 : 2, 10, 757, 3, 12, 7, 2, 2, 8, 2, 16, 4980, 6.1e-5 + - 1 : 2, 10, 746, 4, 9, 7, 2, 2, 9, 2, 16, 5841, 6.2e-5 + - 2 : 2, 10, 790, 3, 12, 7, 2, 3, 6, 2, 16, 7030, 6.3e-5 + - 3 : 2, 10, 767, 4, 9, 7, 2, 3, 7, 2, 16, 8161, 6.3e-5 + - 4 : 2, 10, 726, 5, 8, 7, 2, 3, 7, 3, 12, 9824, 6.3e-5 + - 5 : 2, 10, 752, 6, 7, 7, 2, 3, 7, 3, 12, 11355, 6.1e-5 + - 6 : 2, 10, 729, 6, 7, 7, 2, 4, 6, 3, 12, 14106, 5.8e-5 + - 7 : 2, 10, 748, 7, 6, 7, 2, 4, 6, 3, 12, 15986, 6.3e-5 + - 8 : 2, 10, 766, 7, 6, 7, 2, 5, 5, 3, 12, 19779, 6.2e-5 + - 9 : 2, 10, 768, 8, 5, 15, 1, 6, 5, 4, 10, 27685, 6.3e-5 + - 10: 2, 10, 757, 9, 5, 14, 1, 7, 4, 4, 10, 34022, 6.3e-5 + - 11: 2, 10, 725, 14, 3, 13, 1, 7, 4, 5, 8, 47330, 6.2e-5 + - 12: 2, 10, 729, 14, 3, 14, 1, 10, 3, 5, 8, 66151, 6.1e-5 + - 13: 2, 10, 757, 22, 2, 14, 1, 10, 3, 6, 7, 100136, 6.3e-5 + - 14: 2, 10, 749, 44, 1, 14, 1, 16, 2, 6, 7, 279322, 6.3e-5 + # no solution starting from log norm2 = 15 + + - 11: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cb_l,cb_b, pp_l,pp_b, cost, p_error + - 0 : 2, 10, 701, 3, 12, 6, 2, 2, 8, 2, 16, 5425, 6.1e-5 + - 1 : 2, 10, 699, 4, 9, 6, 2, 2, 9, 2, 16, 6416, 5.9e-5 + - 2 : 2, 10, 712, 4, 9, 6, 2, 2, 9, 3, 12, 7137, 5.8e-5 + - 3 : 2, 10, 745, 5, 8, 7, 2, 2, 10, 3, 12, 8514, 6.3e-5 + - 4 : 2, 10, 711, 4, 9, 6, 2, 3, 7, 3, 12, 9882, 5.9e-5 + - 5 : 2, 10, 712, 5, 8, 6, 2, 3, 7, 3, 12, 11294, 5.9e-5 + - 6 : 2, 10, 705, 5, 8, 6, 2, 4, 6, 3, 12, 14324, 6.1e-5 + - 7 : 2, 10, 715, 6, 7, 7, 2, 4, 6, 3, 12, 16324, 5.8e-5 + - 8 : 2, 10, 729, 7, 6, 7, 2, 4, 6, 4, 10, 19643, 6.1e-5 + - 9 : 2, 10, 762, 7, 6, 7, 2, 5, 5, 4, 10, 24720, 6.3e-5 + - 10: 2, 10, 693, 8, 5, 13, 1, 7, 4, 4, 10, 34504, 5.7e-5 + - 11: 2, 10, 705, 11, 4, 13, 1, 7, 4, 4, 10, 43624, 6.1e-5 + - 12: 2, 10, 735, 14, 3, 14, 1, 7, 4, 5, 8, 56401, 6.3e-5 + - 13: 2, 10, 739, 15, 3, 14, 1, 10, 3, 5, 8, 83029, 6.3e-5 + - 14: 2, 10, 731, 22, 2, 14, 1, 15, 2, 5, 8, 163693, 6.1e-5 + - 15: 2, 10, 726, 44, 1, 14, 1, 32, 1, 7, 6, 637654, 6.2e-5 + # no solution starting from log norm2 = 16 + + - 12: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cb_l,cb_b, pp_l,pp_b, cost, p_error + - 0 : 2, 10, 728, 3, 12, 7, 2, 2, 8, 2, 16, 6124, 6.3e-5 + - 1 : 2, 10, 723, 4, 9, 7, 2, 2, 9, 2, 16, 7218, 6.2e-5 + - 2 : 2, 10, 786, 4, 9, 7, 2, 2, 9, 3, 12, 8402, 6.3e-5 + - 3 : 2, 10, 733, 4, 9, 7, 2, 3, 7, 2, 16, 9988, 6.0e-5 + - 4 : 2, 10, 794, 4, 9, 8, 2, 3, 7, 3, 12, 11734, 6.3e-5 + - 5 : 2, 10, 787, 5, 8, 7, 2, 3, 7, 3, 12, 13262, 6.3e-5 + - 6 : 2, 10, 742, 5, 8, 7, 2, 4, 6, 3, 12, 16154, 6.2e-5 + - 7 : 2, 10, 724, 7, 6, 7, 2, 4, 6, 3, 12, 19780, 6.2e-5 + - 8 : 2, 10, 754, 8, 5, 7, 2, 4, 6, 4, 10, 23818, 6.3e-5 + - 9 : 2, 10, 767, 8, 5, 7, 2, 5, 5, 5, 8, 31033, 6.3e-5 + - 10: 2, 10, 741, 8, 5, 14, 1, 7, 4, 4, 10, 39244, 6.3e-5 + - 11: 2, 10, 732, 11, 4, 14, 1, 7, 4, 5, 8, 50963, 6.3e-5 + - 12: 2, 10, 708, 14, 3, 13, 1, 10, 3, 5, 8, 82105, 6.0e-5 + - 13: 2, 10, 737, 22, 2, 14, 1, 10, 3, 5, 8, 121122, 6.1e-5 + - 14: 2, 10, 771, 22, 2, 15, 1, 16, 2, 11, 4, 228912, 6.3e-5 + # no solution starting from log norm2 = 15 + + - 13: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cb_l,cb_b, pp_l,pp_b, cost, p_error + - 0 : 2, 10, 732, 3, 12, 7, 2, 2, 8, 2, 16, 6496, 5.8e-5 + - 1 : 2, 10, 726, 4, 9, 7, 2, 2, 9, 2, 16, 7645, 5.7e-5 + - 2 : 2, 10, 743, 3, 12, 7, 2, 3, 6, 2, 16, 9026, 6.1e-5 + - 3 : 2, 10, 737, 4, 9, 7, 2, 3, 7, 2, 16, 10633, 6.0e-5 + - 4 : 2, 10, 715, 5, 8, 6, 2, 3, 7, 3, 12, 13004, 6.1e-5 + - 5 : 2, 10, 729, 6, 7, 7, 2, 3, 7, 3, 12, 14911, 6.0e-5 + - 6 : 2, 10, 750, 5, 8, 7, 2, 4, 6, 3, 12, 17308, 6.2e-5 + - 7 : 2, 10, 727, 7, 6, 7, 2, 4, 6, 3, 12, 21085, 5.9e-5 + - 8 : 2, 10, 770, 8, 5, 7, 2, 4, 6, 4, 10, 25728, 6.3e-5 + - 9 : 2, 10, 751, 9, 5, 14, 1, 5, 5, 4, 10, 33871, 6.3e-5 + - 10: 2, 10, 759, 8, 5, 14, 1, 7, 4, 4, 10, 42603, 6.3e-5 + - 11: 2, 10, 741, 11, 4, 14, 1, 7, 4, 5, 8, 54839, 6.3e-5 + - 12: 2, 10, 710, 14, 3, 13, 1, 10, 3, 5, 8, 87840, 5.9e-5 + - 13: 2, 10, 724, 22, 2, 14, 1, 10, 3, 6, 7, 130900, 6.3e-5 + - 14: 2, 10, 732, 43, 1, 14, 1, 16, 2, 6, 7, 364287, 6.3e-5 + # no solution starting from log norm2 = 15 + + - 14: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cb_l,cb_b, pp_l,pp_b, cost, p_error + - 0 : 2, 10, 739, 3, 12, 7, 2, 2, 8, 2, 16, 7517, 6.1e-5 + - 1 : 2, 10, 730, 4, 9, 7, 2, 2, 9, 2, 16, 8823, 6.3e-5 + - 2 : 2, 10, 759, 3, 12, 7, 2, 3, 6, 2, 16, 10503, 6.3e-5 + - 3 : 2, 10, 747, 4, 9, 7, 2, 3, 7, 2, 16, 12306, 6.3e-5 + - 4 : 2, 10, 717, 5, 8, 6, 2, 3, 7, 3, 12, 14908, 5.8e-5 + - 5 : 2, 10, 735, 6, 7, 7, 2, 3, 7, 3, 12, 17172, 6.2e-5 + - 6 : 2, 10, 769, 5, 8, 14, 1, 4, 6, 3, 12, 20753, 6.3e-5 + - 7 : 2, 10, 732, 7, 6, 7, 2, 4, 6, 3, 12, 24214, 6.1e-5 + - 8 : 2, 10, 746, 7, 6, 7, 2, 5, 5, 3, 12, 29865, 6.1e-5 + - 9 : 2, 10, 764, 9, 5, 14, 1, 5, 5, 5, 8, 41206, 6.3e-5 + - 10: 2, 10, 735, 9, 5, 14, 1, 7, 4, 4, 10, 51300, 6.2e-5 + - 11: 2, 10, 770, 11, 4, 15, 1, 7, 4, 6, 7, 67274, 6.3e-5 + - 12: 2, 10, 714, 14, 3, 13, 1, 10, 3, 5, 8, 100351, 6.0e-5 + - 13: 2, 10, 735, 22, 2, 14, 1, 10, 3, 6, 7, 150759, 6.3e-5 + - 14: 2, 10, 730, 44, 1, 14, 1, 16, 2, 6, 7, 421304, 6.1e-5 + # no solution starting from log norm2 = 15 + + - 15: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cb_l,cb_b, pp_l,pp_b, cost, p_error + - 0 : 2, 10, 757, 4, 9, 7, 2, 2, 9, 2, 16, 8667, 6.3e-5 + - 1 : 2, 10, 772, 3, 12, 7, 2, 3, 6, 2, 16, 10105, 6.2e-5 + - 2 : 2, 10, 767, 4, 9, 7, 2, 3, 7, 2, 16, 11942, 6.2e-5 + - 3 : 2, 10, 745, 5, 8, 7, 2, 3, 7, 3, 12, 14653, 6.0e-5 + - 4 : 2, 10, 797, 5, 8, 15, 1, 3, 7, 3, 12, 16132, 6.3e-5 + - 5 : 2, 10, 780, 5, 8, 7, 2, 4, 6, 3, 12, 19297, 6.2e-5 + - 6 : 2, 10, 759, 7, 6, 7, 2, 4, 6, 3, 12, 23634, 6.0e-5 + - 7 : 2, 10, 789, 8, 5, 8, 2, 4, 6, 4, 10, 28468, 6.2e-5 + - 8 : 2, 10, 783, 8, 5, 15, 1, 5, 5, 5, 8, 36876, 6.3e-5 + - 9 : 2, 10, 775, 8, 5, 15, 1, 7, 4, 4, 10, 46697, 6.3e-5 + - 10: 2, 10, 766, 11, 4, 15, 1, 7, 4, 5, 8, 60657, 6.3e-5 + - 11: 2, 10, 742, 14, 3, 14, 1, 10, 3, 5, 8, 97796, 6.2e-5 + - 12: 2, 10, 769, 22, 2, 15, 1, 10, 3, 5, 8, 144138, 6.3e-5 + - 13: 2, 10, 780, 44, 1, 15, 1, 15, 2, 7, 6, 402764, 6.2e-5 + # no solution starting from log norm2 = 14 + + - 16: # bits + -ln2: k, N, n, br_l,br_b, ks_l,ks_b, cb_l,cb_b, pp_l,pp_b, cost, p_error + - 0 : 2, 10, 726, 4, 9, 7, 2, 2, 9, 2, 16, 9362, 5.5e-5 + - 1 : 2, 10, 735, 4, 9, 7, 2, 2, 9, 3, 12, 10321, 5.9e-5 + - 2 : 2, 10, 766, 5, 8, 7, 2, 2, 10, 3, 12, 12184, 6.2e-5 + - 3 : 2, 10, 735, 4, 9, 7, 2, 3, 7, 3, 12, 14227, 5.7e-5 + - 4 : 2, 10, 735, 5, 8, 7, 2, 3, 7, 3, 12, 16247, 6.0e-5 + - 5 : 2, 10, 731, 5, 8, 7, 2, 4, 6, 3, 12, 20612, 5.7e-5 + - 6 : 2, 10, 740, 6, 7, 7, 2, 4, 6, 3, 12, 23381, 6.3e-5 + - 7 : 2, 10, 753, 7, 6, 7, 2, 4, 6, 4, 10, 28054, 6.0e-5 + - 8 : 2, 10, 775, 7, 6, 7, 2, 5, 5, 4, 10, 34866, 6.3e-5 + - 9 : 2, 10, 721, 8, 5, 13, 1, 7, 4, 4, 10, 49452, 6.2e-5 + - 10: 2, 10, 730, 11, 4, 14, 1, 7, 4, 4, 10, 62491, 6.2e-5 + - 11: 2, 10, 753, 14, 3, 14, 1, 7, 4, 5, 8, 79981, 6.3e-5 + - 12: 2, 10, 756, 15, 3, 14, 1, 10, 3, 5, 8, 117503, 6.3e-5 + - 13: 2, 10, 750, 22, 2, 14, 1, 15, 2, 5, 8, 232256, 6.2e-5 + - 14: 2, 10, 748, 44, 1, 14, 1, 32, 1, 7, 6, 907811, 6.2e-5 + # no solution starting from log norm2 = 15 diff --git a/docs/guides/configure.md b/docs/guides/configure.md index 49e7470a12..c7238d097e 100644 --- a/docs/guides/configure.md +++ b/docs/guides/configure.md @@ -218,3 +218,6 @@ When options are specified both in the `configuration` and as kwargs in the `com - Automatic scheduling behavior can be override locally by calling directly a variant of `run`: - `run_sync`: forces the fhe function to occur in the current thread, not in the background, - `run_async`: forces the fhe function to occur in a background thread, returning immediately a `Future[Value]` + +#### security_level: int = 128 +- Set the level of security used to perform the optimization of crypto-parameters. diff --git a/frontends/concrete-python/concrete/fhe/compilation/configuration.py b/frontends/concrete-python/concrete/fhe/compilation/configuration.py index 5cfe97b721..5d239c1597 100644 --- a/frontends/concrete-python/concrete/fhe/compilation/configuration.py +++ b/frontends/concrete-python/concrete/fhe/compilation/configuration.py @@ -22,6 +22,15 @@ DEFAULT_GLOBAL_P_ERROR = 1 / 100_000 +class SecurityLevel(int, Enum): + """ + Security level used to optimize the circuit parameters. + """ + + SECURITY_128_BITS = 128 + SECURITY_132_BITS = 132 + + class ParameterSelectionStrategy(str, Enum): """ ParameterSelectionStrategy, to set optimization strategy. @@ -998,6 +1007,7 @@ class Configuration: range_restriction: Optional[RangeRestriction] keyset_restriction: Optional[KeysetRestriction] auto_schedule_run: bool + security_level: SecurityLevel def __init__( self, @@ -1070,6 +1080,7 @@ def __init__( range_restriction: Optional[RangeRestriction] = None, keyset_restriction: Optional[KeysetRestriction] = None, auto_schedule_run: bool = False, + security_level: SecurityLevel = SecurityLevel.SECURITY_128_BITS, ): self.verbose = verbose self.compiler_debug_mode = compiler_debug_mode @@ -1181,6 +1192,8 @@ def __init__( self.auto_schedule_run = auto_schedule_run + self.security_level = security_level + self._validate() class Keep: @@ -1259,6 +1272,7 @@ def fork( range_restriction: Union[Keep, Optional[RangeRestriction]] = KEEP, keyset_restriction: Union[Keep, Optional[KeysetRestriction]] = KEEP, auto_schedule_run: Union[Keep, bool] = KEEP, + security_level: Union[Keep, SecurityLevel] = KEEP, ) -> "Configuration": """ Get a new configuration from another one specified changes. diff --git a/frontends/concrete-python/concrete/fhe/compilation/server.py b/frontends/concrete-python/concrete/fhe/compilation/server.py index 05f747fd5f..2a79696ea8 100644 --- a/frontends/concrete-python/concrete/fhe/compilation/server.py +++ b/frontends/concrete-python/concrete/fhe/compilation/server.py @@ -186,6 +186,8 @@ def create( if configuration.range_restriction: options.set_range_restriction(configuration.range_restriction) + options.set_security_level(configuration.security_level) + try: if configuration.compiler_debug_mode: # pragma: no cover set_llvm_debug_flag(True) diff --git a/frontends/concrete-python/tests/compilation/test_configuration.py b/frontends/concrete-python/tests/compilation/test_configuration.py index 86e3ad9f02..ec85e4b45f 100644 --- a/frontends/concrete-python/tests/compilation/test_configuration.py +++ b/frontends/concrete-python/tests/compilation/test_configuration.py @@ -5,10 +5,12 @@ import os import sys +import numpy as np import pytest from concrete import fhe -from concrete.fhe.compilation import Configuration +from concrete.fhe.compilation import Configuration, server +from concrete.fhe.compilation.configuration import SecurityLevel from ..conftest import USE_MULTI_PRECISION @@ -301,3 +303,46 @@ def test_configuration_show_bit_width_constraints_and_assignment( """.strip(), ) + + +def test_set_security_level(): + + @fhe.module() + class Module: + @fhe.function({"x": "encrypted", "y": "clear"}) + def inc(x, y): + return (x + y + 1) % 20 + + composition = fhe.Wired( + { + fhe.Wire(fhe.Output(inc, 0), fhe.AllInputs(inc)), + } + ) + + inputset = [ + (np.random.randint(1, 20, size=()), np.random.randint(1, 20, size=())) for _ in range(100) + ] + + module1 = Module.compile( + {"inc": inputset}, + security_level=SecurityLevel.SECURITY_128_BITS, + ) + + module2 = Module.compile( + {"inc": inputset}, + security_level=SecurityLevel.SECURITY_128_BITS, + ) + + module3 = Module.compile( + {"inc": inputset}, + security_level=SecurityLevel.SECURITY_132_BITS, + ) + + assert ( + module1.server.client_specs.program_info.get_keyset_info() + == module2.server.client_specs.program_info.get_keyset_info() + ) + assert ( + module1.server.client_specs.program_info.get_keyset_info() + != module3.server.client_specs.program_info.get_keyset_info() + ) diff --git a/tools/parameter-curves/concrete-security-curves-cpp/include/concrete/curves.gen.h b/tools/parameter-curves/concrete-security-curves-cpp/include/concrete/curves.gen.h index 92d7597d2f..b9350f49ea 100644 --- a/tools/parameter-curves/concrete-security-curves-cpp/include/concrete/curves.gen.h +++ b/tools/parameter-curves/concrete-security-curves-cpp/include/concrete/curves.gen.h @@ -1,5 +1,6 @@ SecurityCurve curves[] = { SecurityCurve(128, -0.025696778711484593, 2.675931372549016, 450, KeyFormat::BINARY), + SecurityCurve(132, -0.024891456582633045, 2.65734593837534, 450, KeyFormat::BINARY), }; -size_t curvesLen = 1; +size_t curvesLen = 2; diff --git a/tools/parameter-curves/concrete-security-curves-rust/src/gaussian/curves_gen.rs b/tools/parameter-curves/concrete-security-curves-rust/src/gaussian/curves_gen.rs index b173b549b3..8d1453dddb 100644 --- a/tools/parameter-curves/concrete-security-curves-rust/src/gaussian/curves_gen.rs +++ b/tools/parameter-curves/concrete-security-curves-rust/src/gaussian/curves_gen.rs @@ -1,4 +1,19 @@ use super::security_weights::SecurityWeights; -pub const SECURITY_WEIGHTS_ARRAY: [(u64, SecurityWeights); 1] = [ - (128, SecurityWeights { slope: -0.025696778711484593, bias: 2.675931372549016, minimal_lwe_dimension: 450 }), +pub const SECURITY_WEIGHTS_ARRAY: [(u64, SecurityWeights); 2] = [ + ( + 128, + SecurityWeights { + slope: -0.025696778711484593, + bias: 2.675931372549016, + minimal_lwe_dimension: 450, + }, + ), + ( + 132, + SecurityWeights { + slope: -0.024891456582633045, + bias: 2.65734593837534, + minimal_lwe_dimension: 450, + }, + ), ];