From d6fc40ce9540900da91c0ac815cd4399dcd84658 Mon Sep 17 00:00:00 2001 From: jadep Date: Mon, 16 Oct 2017 11:46:03 -0400 Subject: bugfixes from messy rebase; remade json files --- generate_parameters.py | 8 ++--- src/Specific/CurveParameters/remake_curves.sh | 24 +++++++++++++++ .../CurveParameters/solinas32_2e130m5.json | 4 +-- .../CurveParameters/solinas32_2e140m27.json | 4 +-- .../CurveParameters/solinas32_2e141m9.json | 4 +-- .../CurveParameters/solinas32_2e150m3.json | 4 +-- .../CurveParameters/solinas32_2e150m5.json | 4 +-- .../CurveParameters/solinas32_2e152m17.json | 4 +-- .../CurveParameters/solinas32_2e158m15.json | 4 +-- .../CurveParameters/solinas32_2e171m19.json | 2 +- .../CurveParameters/solinas32_2e174m3.json | 4 +-- .../CurveParameters/solinas32_2e189m25.json | 4 +-- .../CurveParameters/solinas32_2e190m11.json | 4 +-- .../CurveParameters/solinas32_2e192m2e64m1.json | 23 ++++++++++++-- .../CurveParameters/solinas32_2e194m33.json | 4 +-- .../CurveParameters/solinas32_2e196m15.json | 4 +-- .../CurveParameters/solinas32_2e198m17.json | 2 +- .../solinas32_2e205m45x2e198m1.json | 23 +++++++++++++- .../CurveParameters/solinas32_2e212m29.json | 4 +-- .../CurveParameters/solinas32_2e216m2e108m1.json | 23 ++++++++++++-- .../CurveParameters/solinas32_2e224m2e96p1.json | 23 ++++++++++++-- .../CurveParameters/solinas32_2e226m5.json | 4 +-- .../CurveParameters/solinas32_2e230m27.json | 2 +- .../CurveParameters/solinas32_2e235m15.json | 4 +-- .../CurveParameters/solinas32_2e243m9.json | 4 +-- .../CurveParameters/solinas32_2e255m19.json | 4 +-- .../CurveParameters/solinas32_2e255m2e4m2e1m1.json | 23 +++++++++++++- .../CurveParameters/solinas32_2e255m765.json | 4 +-- .../solinas32_2e256m2e224p2e192p2e96m1.json | 29 +++++++++++++++++- .../CurveParameters/solinas32_2e256m2e32m977.json | 29 ++++++++++++++++-- .../CurveParameters/solinas32_2e285m9.json | 2 +- .../CurveParameters/solinas32_2e322m2e161m1.json | 29 ++++++++++++++++-- .../CurveParameters/solinas32_2e336m17.json | 2 +- .../CurveParameters/solinas32_2e336m3.json | 4 +-- .../CurveParameters/solinas32_2e338m15.json | 4 +-- .../solinas32_2e384m2e128m2e96p2e32m1.json | 35 ++++++++++++++++++++-- .../CurveParameters/solinas32_2e414m17.json | 2 +- .../CurveParameters/solinas32_2e416m2e208m1.json | 31 +++++++++++++++++-- .../CurveParameters/solinas32_2e448m2e224m1.json | 31 +++++++++++++++++-- .../CurveParameters/solinas32_2e450m2e225m1.json | 32 ++++++++++++++++++-- .../CurveParameters/solinas32_2e452m3.json | 4 +-- .../CurveParameters/solinas32_2e468m17.json | 4 +-- .../CurveParameters/solinas32_2e480m2e240m1.json | 31 +++++++++++++++++-- .../CurveParameters/solinas32_2e495m31.json | 4 +-- .../CurveParameters/solinas32_2e512m569.json | 4 +-- .../CurveParameters/solinas64_2e129m25.json | 4 +-- .../CurveParameters/solinas64_2e130m5.json | 4 +-- .../CurveParameters/solinas64_2e140m27.json | 2 +- .../CurveParameters/solinas64_2e141m9.json | 4 +-- .../CurveParameters/solinas64_2e150m3.json | 4 +-- .../CurveParameters/solinas64_2e150m5.json | 4 +-- .../CurveParameters/solinas64_2e152m17.json | 2 +- .../CurveParameters/solinas64_2e165m25.json | 4 +-- .../CurveParameters/solinas64_2e166m5.json | 4 +-- .../CurveParameters/solinas64_2e171m19.json | 4 +-- .../CurveParameters/solinas64_2e174m17.json | 4 +-- .../CurveParameters/solinas64_2e174m3.json | 4 +-- .../CurveParameters/solinas64_2e189m25.json | 4 +-- .../CurveParameters/solinas64_2e190m11.json | 4 +-- .../CurveParameters/solinas64_2e192m2e64m1.json | 19 ++++++++++-- .../CurveParameters/solinas64_2e194m33.json | 4 +-- .../CurveParameters/solinas64_2e196m15.json | 4 +-- .../CurveParameters/solinas64_2e198m17.json | 4 +-- .../solinas64_2e205m45x2e198m1.json | 21 +++++++++++-- .../CurveParameters/solinas64_2e206m5.json | 4 +-- .../CurveParameters/solinas64_2e212m29.json | 4 +-- .../CurveParameters/solinas64_2e213m3.json | 4 +-- .../CurveParameters/solinas64_2e216m2e108m1.json | 21 +++++++++++-- .../CurveParameters/solinas64_2e221m3.json | 4 +-- .../CurveParameters/solinas64_2e222m117.json | 4 +-- .../CurveParameters/solinas64_2e224m2e96p1.json | 21 +++++++++++-- .../CurveParameters/solinas64_2e226m5.json | 4 +-- .../CurveParameters/solinas64_2e230m27.json | 4 +-- .../CurveParameters/solinas64_2e235m15.json | 2 +- .../CurveParameters/solinas64_2e251m9.json | 4 +-- .../CurveParameters/solinas64_2e255m19.json | 4 +-- .../CurveParameters/solinas64_2e255m2e4m2e1m1.json | 21 +++++++++++-- .../CurveParameters/solinas64_2e255m765.json | 4 +-- .../CurveParameters/solinas64_2e256m189.json | 4 +-- .../solinas64_2e256m2e224p2e192p2e96m1.json | 22 +++++++++++++- .../CurveParameters/solinas64_2e256m2e32m977.json | 21 +++++++++++-- .../CurveParameters/solinas64_2e266m3.json | 4 +-- .../CurveParameters/solinas64_2e285m9.json | 4 +-- .../CurveParameters/solinas64_2e291m19.json | 4 +-- .../CurveParameters/solinas64_2e321m9.json | 4 +-- .../CurveParameters/solinas64_2e322m2e161m1.json | 22 ++++++++++++-- .../CurveParameters/solinas64_2e336m17.json | 4 +-- .../CurveParameters/solinas64_2e336m3.json | 4 +-- .../CurveParameters/solinas64_2e338m15.json | 4 +-- .../CurveParameters/solinas64_2e379m19.json | 4 +-- .../solinas64_2e384m2e128m2e96p2e32m1.json | 27 +++++++++++++++-- .../CurveParameters/solinas64_2e384m317.json | 2 +- .../CurveParameters/solinas64_2e413m21.json | 4 +-- .../CurveParameters/solinas64_2e414m17.json | 2 +- .../CurveParameters/solinas64_2e416m2e208m1.json | 23 ++++++++++++-- .../CurveParameters/solinas64_2e444m17.json | 4 +-- .../CurveParameters/solinas64_2e448m2e224m1.json | 23 ++++++++++++-- .../CurveParameters/solinas64_2e450m2e225m1.json | 25 ++++++++++++++-- .../CurveParameters/solinas64_2e452m3.json | 4 +-- .../CurveParameters/solinas64_2e468m17.json | 4 +-- .../CurveParameters/solinas64_2e480m2e240m1.json | 25 ++++++++++++++-- .../CurveParameters/solinas64_2e489m21.json | 4 +-- .../CurveParameters/solinas64_2e495m31.json | 4 +-- .../CurveParameters/solinas64_2e511m187.json | 4 +-- .../CurveParameters/solinas64_2e511m481.json | 4 +-- .../CurveParameters/solinas64_2e512m569.json | 4 +-- 106 files changed, 768 insertions(+), 207 deletions(-) diff --git a/generate_parameters.py b/generate_parameters.py index 8d7995fe5..9728e0ec5 100644 --- a/generate_parameters.py +++ b/generate_parameters.py @@ -81,10 +81,6 @@ class LimbPickingException(Exception): pass class NonBase2Exception(Exception): pass class UnexpectedPrimeException(Exception): pass -# exception to be raised if we can't find an appropriate number of limbs -class NoBaseFoundException(Exception): - pass - # given a string representing one term or "tap" in a prime, returns a pair of # integers representing the weight and coefficient of that tap # "2 ^ y" -> [1, y] @@ -172,7 +168,7 @@ def get_num_limbs(p, bitwidth): choices.append((n, num_bits(p) / n)) break if len(choices) == 0: - raise NoBaseFoundException("Unable to pick a number of limbs for prime %s and bitwidth %s in range %s-%s limbs" %(p,bitwidth,min_limbs,5*min_limbs)) + raise LimbPickingException("Unable to pick a number of limbs for prime %s and bitwidth %s in range %s-%s limbs" %(p,bitwidth,min_limbs,5*min_limbs)) # print (p,choices,min_limbs) return choices[0][0] @@ -210,7 +206,7 @@ def get_params_solinas(prime, bitwidth): if len(p) > 2: # do interleaved carry chains, starting at where the taps are - starts = [(int(t[1] / base) - 1) % sz for t in p[1:]] + starts = [(int(t[1] / (num_bits(p) / sz)) - 1) % sz for t in p[1:]] chain2 = [] for n in range(1,sz): for j in starts: diff --git a/src/Specific/CurveParameters/remake_curves.sh b/src/Specific/CurveParameters/remake_curves.sh index d9de432d6..8ec4baa06 100755 --- a/src/Specific/CurveParameters/remake_curves.sh +++ b/src/Specific/CurveParameters/remake_curves.sh @@ -304,3 +304,27 @@ ${MAKE} "$@" montgomery32_2e205m45x2e198m1.json ../montgomery32_2e205m45x2e198m1 ${MAKE} "$@" montgomery64_2e205m45x2e198m1.json ../montgomery64_2e205m45x2e198m1/ ${MAKE} "$@" solinas32_2e205m45x2e198m1.json ../solinas32_2e205m45x2e198m1/ ${MAKE} "$@" solinas64_2e205m45x2e198m1.json ../solinas64_2e205m45x2e198m1/ +${MAKE} "$@" montgomery32_2e256m88x2e240m1.json ../montgomery32_2e256m88x2e240m1/ +${MAKE} "$@" montgomery64_2e256m88x2e240m1.json ../montgomery64_2e256m88x2e240m1/ +${MAKE} "$@" solinas64_2e256m88x2e240m1.json ../solinas64_2e256m88x2e240m1/ +${MAKE} "$@" montgomery32_2e254m127x2e240m1.json ../montgomery32_2e254m127x2e240m1/ +${MAKE} "$@" montgomery64_2e254m127x2e240m1.json ../montgomery64_2e254m127x2e240m1/ +${MAKE} "$@" montgomery32_2e384m79x2e376m1.json ../montgomery32_2e384m79x2e376m1/ +${MAKE} "$@" montgomery64_2e384m79x2e376m1.json ../montgomery64_2e384m79x2e376m1/ +${MAKE} "$@" solinas32_2e384m79x2e376m1.json ../solinas32_2e384m79x2e376m1/ +${MAKE} "$@" solinas64_2e384m79x2e376m1.json ../solinas64_2e384m79x2e376m1/ +${MAKE} "$@" montgomery32_2e384m5x2e368m1.json ../montgomery32_2e384m5x2e368m1/ +${MAKE} "$@" montgomery64_2e384m5x2e368m1.json ../montgomery64_2e384m5x2e368m1/ +${MAKE} "$@" solinas32_2e384m5x2e368m1.json ../solinas32_2e384m5x2e368m1/ +${MAKE} "$@" solinas64_2e384m5x2e368m1.json ../solinas64_2e384m5x2e368m1/ +${MAKE} "$@" montgomery32_2e512m491x2e496m1.json ../montgomery32_2e512m491x2e496m1/ +${MAKE} "$@" montgomery64_2e512m491x2e496m1.json ../montgomery64_2e512m491x2e496m1/ +${MAKE} "$@" solinas64_2e512m491x2e496m1.json ../solinas64_2e512m491x2e496m1/ +${MAKE} "$@" montgomery32_2e510m290x2e496m1.json ../montgomery32_2e510m290x2e496m1/ +${MAKE} "$@" montgomery64_2e510m290x2e496m1.json ../montgomery64_2e510m290x2e496m1/ +${MAKE} "$@" solinas32_2e510m290x2e496m1.json ../solinas32_2e510m290x2e496m1/ +${MAKE} "$@" solinas64_2e510m290x2e496m1.json ../solinas64_2e510m290x2e496m1/ +${MAKE} "$@" solinas32_2e256m88x2e240m1.json ../solinas32_2e256m88x2e240m1/ +${MAKE} "$@" solinas32_2e254m127x2e240m1.json ../solinas32_2e254m127x2e240m1/ +${MAKE} "$@" solinas64_2e254m127x2e240m1.json ../solinas64_2e254m127x2e240m1/ +${MAKE} "$@" solinas32_2e512m491x2e496m1.json ../solinas32_2e512m491x2e496m1/ diff --git a/src/Specific/CurveParameters/solinas32_2e130m5.json b/src/Specific/CurveParameters/solinas32_2e130m5.json index a377b75f6..2344e8f02 100644 --- a/src/Specific/CurveParameters/solinas32_2e130m5.json +++ b/src/Specific/CurveParameters/solinas32_2e130m5.json @@ -1,5 +1,5 @@ { - "base": "16.25", + "base": "26.0", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "8" + "sz": "5" } diff --git a/src/Specific/CurveParameters/solinas32_2e140m27.json b/src/Specific/CurveParameters/solinas32_2e140m27.json index 19dd861d3..97098b5f6 100644 --- a/src/Specific/CurveParameters/solinas32_2e140m27.json +++ b/src/Specific/CurveParameters/solinas32_2e140m27.json @@ -1,5 +1,5 @@ { - "base": "20", + "base": "23 + 1/3", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "7" + "sz": "6" } diff --git a/src/Specific/CurveParameters/solinas32_2e141m9.json b/src/Specific/CurveParameters/solinas32_2e141m9.json index 0c2afdfd6..31937e469 100644 --- a/src/Specific/CurveParameters/solinas32_2e141m9.json +++ b/src/Specific/CurveParameters/solinas32_2e141m9.json @@ -1,5 +1,5 @@ { - "base": "20 + 1/7", + "base": "23.5", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "7" + "sz": "6" } diff --git a/src/Specific/CurveParameters/solinas32_2e150m3.json b/src/Specific/CurveParameters/solinas32_2e150m3.json index 330e4de11..4e1a6cdb6 100644 --- a/src/Specific/CurveParameters/solinas32_2e150m3.json +++ b/src/Specific/CurveParameters/solinas32_2e150m3.json @@ -1,5 +1,5 @@ { - "base": "25", + "base": "30.0", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "6" + "sz": "5" } diff --git a/src/Specific/CurveParameters/solinas32_2e150m5.json b/src/Specific/CurveParameters/solinas32_2e150m5.json index a14b85bc5..d4de66c0e 100644 --- a/src/Specific/CurveParameters/solinas32_2e150m5.json +++ b/src/Specific/CurveParameters/solinas32_2e150m5.json @@ -1,5 +1,5 @@ { - "base": "15", + "base": "25.0", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "10" + "sz": "6" } diff --git a/src/Specific/CurveParameters/solinas32_2e152m17.json b/src/Specific/CurveParameters/solinas32_2e152m17.json index 475d87ac2..7af8e37e1 100644 --- a/src/Specific/CurveParameters/solinas32_2e152m17.json +++ b/src/Specific/CurveParameters/solinas32_2e152m17.json @@ -1,5 +1,5 @@ { - "base": "19", + "base": "25 + 1/3", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "8" + "sz": "6" } diff --git a/src/Specific/CurveParameters/solinas32_2e158m15.json b/src/Specific/CurveParameters/solinas32_2e158m15.json index 31005a999..3fd3c966d 100644 --- a/src/Specific/CurveParameters/solinas32_2e158m15.json +++ b/src/Specific/CurveParameters/solinas32_2e158m15.json @@ -1,5 +1,5 @@ { - "base": "13 + 1/6", + "base": "26 + 1/3", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "12" + "sz": "6" } diff --git a/src/Specific/CurveParameters/solinas32_2e171m19.json b/src/Specific/CurveParameters/solinas32_2e171m19.json index 6bc59a012..ff0754cf6 100644 --- a/src/Specific/CurveParameters/solinas32_2e171m19.json +++ b/src/Specific/CurveParameters/solinas32_2e171m19.json @@ -1,5 +1,5 @@ { - "base": "19", + "base": "19.0", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", diff --git a/src/Specific/CurveParameters/solinas32_2e174m3.json b/src/Specific/CurveParameters/solinas32_2e174m3.json index ade8c2900..7f26c5bb1 100644 --- a/src/Specific/CurveParameters/solinas32_2e174m3.json +++ b/src/Specific/CurveParameters/solinas32_2e174m3.json @@ -1,5 +1,5 @@ { - "base": "19 + 1/3", + "base": "29.0", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "9" + "sz": "6" } diff --git a/src/Specific/CurveParameters/solinas32_2e189m25.json b/src/Specific/CurveParameters/solinas32_2e189m25.json index b07607e07..110a959f8 100644 --- a/src/Specific/CurveParameters/solinas32_2e189m25.json +++ b/src/Specific/CurveParameters/solinas32_2e189m25.json @@ -1,5 +1,5 @@ { - "base": "21", + "base": "27.0", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "9" + "sz": "7" } diff --git a/src/Specific/CurveParameters/solinas32_2e190m11.json b/src/Specific/CurveParameters/solinas32_2e190m11.json index b97d754a2..660beb1b3 100644 --- a/src/Specific/CurveParameters/solinas32_2e190m11.json +++ b/src/Specific/CurveParameters/solinas32_2e190m11.json @@ -1,5 +1,5 @@ { - "base": "21 + 1/9", + "base": "27 + 1/7", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "9" + "sz": "7" } diff --git a/src/Specific/CurveParameters/solinas32_2e192m2e64m1.json b/src/Specific/CurveParameters/solinas32_2e192m2e64m1.json index 8bcb98cc2..8e9801749 100644 --- a/src/Specific/CurveParameters/solinas32_2e192m2e64m1.json +++ b/src/Specific/CurveParameters/solinas32_2e192m2e64m1.json @@ -1,7 +1,26 @@ { - "base": "24", + "base": "24.0", "bitwidth": 32, - "carry_chains": "default", + "carry_chains": [ + [ + 1, + 7 + ], + [ + 2, + 0, + 3, + 1, + 4, + 5, + 6, + 7 + ], + [ + 2, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "modulus": "2^192 - 2^64 - 1", diff --git a/src/Specific/CurveParameters/solinas32_2e194m33.json b/src/Specific/CurveParameters/solinas32_2e194m33.json index bffbf87a7..a313ab148 100644 --- a/src/Specific/CurveParameters/solinas32_2e194m33.json +++ b/src/Specific/CurveParameters/solinas32_2e194m33.json @@ -1,5 +1,5 @@ { - "base": "16 + 1/6", + "base": "24.25", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "12" + "sz": "8" } diff --git a/src/Specific/CurveParameters/solinas32_2e196m15.json b/src/Specific/CurveParameters/solinas32_2e196m15.json index bef2deb50..f2dcb7d03 100644 --- a/src/Specific/CurveParameters/solinas32_2e196m15.json +++ b/src/Specific/CurveParameters/solinas32_2e196m15.json @@ -1,5 +1,5 @@ { - "base": "24.5", + "base": "28.0", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "8" + "sz": "7" } diff --git a/src/Specific/CurveParameters/solinas32_2e198m17.json b/src/Specific/CurveParameters/solinas32_2e198m17.json index a57680127..7ea0a3fbe 100644 --- a/src/Specific/CurveParameters/solinas32_2e198m17.json +++ b/src/Specific/CurveParameters/solinas32_2e198m17.json @@ -1,5 +1,5 @@ { - "base": "22", + "base": "22.0", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", diff --git a/src/Specific/CurveParameters/solinas32_2e205m45x2e198m1.json b/src/Specific/CurveParameters/solinas32_2e205m45x2e198m1.json index a8b50169d..ad8a83e9e 100644 --- a/src/Specific/CurveParameters/solinas32_2e205m45x2e198m1.json +++ b/src/Specific/CurveParameters/solinas32_2e205m45x2e198m1.json @@ -1,7 +1,28 @@ { "base": "20.5", "bitwidth": 32, - "carry_chains": "default", + "carry_chains": [ + [ + 8, + 9 + ], + [ + 9, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ], + [ + 9, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "modulus": "2^205 - 45*2^198 - 1", diff --git a/src/Specific/CurveParameters/solinas32_2e212m29.json b/src/Specific/CurveParameters/solinas32_2e212m29.json index 3d1ee2745..92361858c 100644 --- a/src/Specific/CurveParameters/solinas32_2e212m29.json +++ b/src/Specific/CurveParameters/solinas32_2e212m29.json @@ -1,5 +1,5 @@ { - "base": "21.2", + "base": "26.5", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "10" + "sz": "8" } diff --git a/src/Specific/CurveParameters/solinas32_2e216m2e108m1.json b/src/Specific/CurveParameters/solinas32_2e216m2e108m1.json index 2f3061743..92957dd1d 100644 --- a/src/Specific/CurveParameters/solinas32_2e216m2e108m1.json +++ b/src/Specific/CurveParameters/solinas32_2e216m2e108m1.json @@ -1,7 +1,26 @@ { - "base": "27", + "base": "27.0", "bitwidth": 32, - "carry_chains": "default", + "carry_chains": [ + [ + 3, + 7 + ], + [ + 4, + 0, + 5, + 1, + 6, + 2, + 7, + 3 + ], + [ + 4, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "goldilocks": true, diff --git a/src/Specific/CurveParameters/solinas32_2e224m2e96p1.json b/src/Specific/CurveParameters/solinas32_2e224m2e96p1.json index 77223727e..d1e45400a 100644 --- a/src/Specific/CurveParameters/solinas32_2e224m2e96p1.json +++ b/src/Specific/CurveParameters/solinas32_2e224m2e96p1.json @@ -1,7 +1,26 @@ { - "base": "28", + "base": "28.0", "bitwidth": 32, - "carry_chains": "default", + "carry_chains": [ + [ + 2, + 7 + ], + [ + 3, + 0, + 4, + 1, + 5, + 2, + 6, + 7 + ], + [ + 3, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "modulus": "2^224 - 2^96 + 1 ", diff --git a/src/Specific/CurveParameters/solinas32_2e226m5.json b/src/Specific/CurveParameters/solinas32_2e226m5.json index 8ca7543f9..2b34c1bfb 100644 --- a/src/Specific/CurveParameters/solinas32_2e226m5.json +++ b/src/Specific/CurveParameters/solinas32_2e226m5.json @@ -1,5 +1,5 @@ { - "base": "25 + 1/9", + "base": "28.25", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "9" + "sz": "8" } diff --git a/src/Specific/CurveParameters/solinas32_2e230m27.json b/src/Specific/CurveParameters/solinas32_2e230m27.json index 857d13036..842bf3d79 100644 --- a/src/Specific/CurveParameters/solinas32_2e230m27.json +++ b/src/Specific/CurveParameters/solinas32_2e230m27.json @@ -1,5 +1,5 @@ { - "base": "23", + "base": "23.0", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", diff --git a/src/Specific/CurveParameters/solinas32_2e235m15.json b/src/Specific/CurveParameters/solinas32_2e235m15.json index dfd782f0b..3c383b797 100644 --- a/src/Specific/CurveParameters/solinas32_2e235m15.json +++ b/src/Specific/CurveParameters/solinas32_2e235m15.json @@ -1,5 +1,5 @@ { - "base": "23.5", + "base": "26 + 1/9", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "10" + "sz": "9" } diff --git a/src/Specific/CurveParameters/solinas32_2e243m9.json b/src/Specific/CurveParameters/solinas32_2e243m9.json index cf2f1219e..438579596 100644 --- a/src/Specific/CurveParameters/solinas32_2e243m9.json +++ b/src/Specific/CurveParameters/solinas32_2e243m9.json @@ -1,5 +1,5 @@ { - "base": "22 + 1/11", + "base": "27.0", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "11" + "sz": "9" } diff --git a/src/Specific/CurveParameters/solinas32_2e255m19.json b/src/Specific/CurveParameters/solinas32_2e255m19.json index e93da44f5..048a61053 100644 --- a/src/Specific/CurveParameters/solinas32_2e255m19.json +++ b/src/Specific/CurveParameters/solinas32_2e255m19.json @@ -1,5 +1,5 @@ { - "base": "21.25", + "base": "25.5", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "12" + "sz": "10" } diff --git a/src/Specific/CurveParameters/solinas32_2e255m2e4m2e1m1.json b/src/Specific/CurveParameters/solinas32_2e255m2e4m2e1m1.json index 8f89daefd..0fea0b5a6 100644 --- a/src/Specific/CurveParameters/solinas32_2e255m2e4m2e1m1.json +++ b/src/Specific/CurveParameters/solinas32_2e255m2e4m2e1m1.json @@ -1,7 +1,28 @@ { "base": "28 + 1/3", "bitwidth": 32, - "carry_chains": "default", + "carry_chains": [ + [ + 8, + 8, + 8 + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + [ + 0, + 0, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "modulus": "2^255 - 2^4 - 2^1 - 1", diff --git a/src/Specific/CurveParameters/solinas32_2e255m765.json b/src/Specific/CurveParameters/solinas32_2e255m765.json index c5109ec09..1f38e48f4 100644 --- a/src/Specific/CurveParameters/solinas32_2e255m765.json +++ b/src/Specific/CurveParameters/solinas32_2e255m765.json @@ -1,5 +1,5 @@ { - "base": "17", + "base": "21.25", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "15" + "sz": "12" } diff --git a/src/Specific/CurveParameters/solinas32_2e256m2e224p2e192p2e96m1.json b/src/Specific/CurveParameters/solinas32_2e256m2e224p2e192p2e96m1.json index a7ad6bf55..5aa485112 100644 --- a/src/Specific/CurveParameters/solinas32_2e256m2e224p2e192p2e96m1.json +++ b/src/Specific/CurveParameters/solinas32_2e256m2e224p2e192p2e96m1.json @@ -1,7 +1,34 @@ { "base": "21 + 1/3", "bitwidth": 32, - "carry_chains": "default", + "carry_chains": [ + [ + 9, + 8, + 3, + 11 + ], + [ + 10, + 9, + 4, + 0, + 11, + 5, + 1, + 6, + 2, + 7, + 3, + 8 + ], + [ + 10, + 9, + 4, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "modulus": "2^256 - 2^224 + 2^192 + 2^96 - 1 ", diff --git a/src/Specific/CurveParameters/solinas32_2e256m2e32m977.json b/src/Specific/CurveParameters/solinas32_2e256m2e32m977.json index 504c52533..304b1ee8e 100644 --- a/src/Specific/CurveParameters/solinas32_2e256m2e32m977.json +++ b/src/Specific/CurveParameters/solinas32_2e256m2e32m977.json @@ -1,7 +1,30 @@ { - "base": "17 + 1/15", + "base": "21 + 1/3", "bitwidth": 32, - "carry_chains": "default", + "carry_chains": [ + [ + 0, + 11 + ], + [ + 1, + 0, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ], + [ + 1, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "modulus": "2^256 - 2^32 - 977 ", @@ -10,5 +33,5 @@ "fesquare", "freeze" ], - "sz": "15" + "sz": "12" } diff --git a/src/Specific/CurveParameters/solinas32_2e285m9.json b/src/Specific/CurveParameters/solinas32_2e285m9.json index bfbb5e769..af78c7509 100644 --- a/src/Specific/CurveParameters/solinas32_2e285m9.json +++ b/src/Specific/CurveParameters/solinas32_2e285m9.json @@ -1,5 +1,5 @@ { - "base": "19", + "base": "19.0", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", diff --git a/src/Specific/CurveParameters/solinas32_2e322m2e161m1.json b/src/Specific/CurveParameters/solinas32_2e322m2e161m1.json index 30eac9b8a..808c16955 100644 --- a/src/Specific/CurveParameters/solinas32_2e322m2e161m1.json +++ b/src/Specific/CurveParameters/solinas32_2e322m2e161m1.json @@ -1,7 +1,32 @@ { - "base": "23", + "base": "23.0", "bitwidth": 32, - "carry_chains": "default", + "carry_chains": [ + [ + 6, + 13 + ], + [ + 7, + 0, + 8, + 1, + 9, + 2, + 10, + 3, + 11, + 4, + 12, + 5, + 13, + 6 + ], + [ + 7, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "goldilocks": true, diff --git a/src/Specific/CurveParameters/solinas32_2e336m17.json b/src/Specific/CurveParameters/solinas32_2e336m17.json index f57366b30..9ec18a2de 100644 --- a/src/Specific/CurveParameters/solinas32_2e336m17.json +++ b/src/Specific/CurveParameters/solinas32_2e336m17.json @@ -1,5 +1,5 @@ { - "base": "24", + "base": "24.0", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", diff --git a/src/Specific/CurveParameters/solinas32_2e336m3.json b/src/Specific/CurveParameters/solinas32_2e336m3.json index 60e72084f..f5fdc071c 100644 --- a/src/Specific/CurveParameters/solinas32_2e336m3.json +++ b/src/Specific/CurveParameters/solinas32_2e336m3.json @@ -1,5 +1,5 @@ { - "base": "24", + "base": "28.0", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "14" + "sz": "12" } diff --git a/src/Specific/CurveParameters/solinas32_2e338m15.json b/src/Specific/CurveParameters/solinas32_2e338m15.json index c2b941b0a..9a7a4254e 100644 --- a/src/Specific/CurveParameters/solinas32_2e338m15.json +++ b/src/Specific/CurveParameters/solinas32_2e338m15.json @@ -1,5 +1,5 @@ { - "base": "24 + 1/7", + "base": "26.0", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "14" + "sz": "13" } diff --git a/src/Specific/CurveParameters/solinas32_2e384m2e128m2e96p2e32m1.json b/src/Specific/CurveParameters/solinas32_2e384m2e128m2e96p2e32m1.json index dedba3d8a..a0a50ce3e 100644 --- a/src/Specific/CurveParameters/solinas32_2e384m2e128m2e96p2e32m1.json +++ b/src/Specific/CurveParameters/solinas32_2e384m2e128m2e96p2e32m1.json @@ -1,7 +1,38 @@ { - "base": "24", + "base": "24.0", "bitwidth": 32, - "carry_chains": "default", + "carry_chains": [ + [ + 4, + 3, + 0, + 15 + ], + [ + 5, + 4, + 1, + 0, + 6, + 2, + 7, + 3, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ], + [ + 5, + 4, + 1, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "modulus": "2^384 - 2^128 - 2^96 + 2^32 - 1 ", diff --git a/src/Specific/CurveParameters/solinas32_2e414m17.json b/src/Specific/CurveParameters/solinas32_2e414m17.json index c52ba4e9b..3a2cce375 100644 --- a/src/Specific/CurveParameters/solinas32_2e414m17.json +++ b/src/Specific/CurveParameters/solinas32_2e414m17.json @@ -1,5 +1,5 @@ { - "base": "23", + "base": "23.0", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", diff --git a/src/Specific/CurveParameters/solinas32_2e416m2e208m1.json b/src/Specific/CurveParameters/solinas32_2e416m2e208m1.json index 06ace711e..d1594ebc5 100644 --- a/src/Specific/CurveParameters/solinas32_2e416m2e208m1.json +++ b/src/Specific/CurveParameters/solinas32_2e416m2e208m1.json @@ -1,7 +1,34 @@ { - "base": "26", + "base": "26.0", "bitwidth": 32, - "carry_chains": "default", + "carry_chains": [ + [ + 7, + 15 + ], + [ + 8, + 0, + 9, + 1, + 10, + 2, + 11, + 3, + 12, + 4, + 13, + 5, + 14, + 6, + 15, + 7 + ], + [ + 8, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "goldilocks": true, diff --git a/src/Specific/CurveParameters/solinas32_2e448m2e224m1.json b/src/Specific/CurveParameters/solinas32_2e448m2e224m1.json index 2298300c4..85efceaad 100644 --- a/src/Specific/CurveParameters/solinas32_2e448m2e224m1.json +++ b/src/Specific/CurveParameters/solinas32_2e448m2e224m1.json @@ -1,7 +1,34 @@ { - "base": "28", + "base": "28.0", "bitwidth": 32, - "carry_chains": "default", + "carry_chains": [ + [ + 7, + 15 + ], + [ + 8, + 0, + 9, + 1, + 10, + 2, + 11, + 3, + 12, + 4, + 13, + 5, + 14, + 6, + 15, + 7 + ], + [ + 8, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "goldilocks": true, diff --git a/src/Specific/CurveParameters/solinas32_2e450m2e225m1.json b/src/Specific/CurveParameters/solinas32_2e450m2e225m1.json index db2bdcb60..95aeb37fa 100644 --- a/src/Specific/CurveParameters/solinas32_2e450m2e225m1.json +++ b/src/Specific/CurveParameters/solinas32_2e450m2e225m1.json @@ -1,7 +1,33 @@ { - "base": "28.125", + "base": "30.0", "bitwidth": 32, - "carry_chains": "default", + "carry_chains": [ + [ + 6, + 14 + ], + [ + 7, + 0, + 8, + 1, + 9, + 2, + 10, + 3, + 11, + 4, + 12, + 5, + 13, + 6, + 14 + ], + [ + 7, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "goldilocks": true, @@ -11,5 +37,5 @@ "fesquare", "freeze" ], - "sz": "16" + "sz": "15" } diff --git a/src/Specific/CurveParameters/solinas32_2e452m3.json b/src/Specific/CurveParameters/solinas32_2e452m3.json index 7a7196f6a..a1b1da43f 100644 --- a/src/Specific/CurveParameters/solinas32_2e452m3.json +++ b/src/Specific/CurveParameters/solinas32_2e452m3.json @@ -1,5 +1,5 @@ { - "base": "25 + 1/9", + "base": "28.25", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "18" + "sz": "16" } diff --git a/src/Specific/CurveParameters/solinas32_2e468m17.json b/src/Specific/CurveParameters/solinas32_2e468m17.json index c8dd27a79..c29698db9 100644 --- a/src/Specific/CurveParameters/solinas32_2e468m17.json +++ b/src/Specific/CurveParameters/solinas32_2e468m17.json @@ -1,5 +1,5 @@ { - "base": "19.5", + "base": "26.0", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "24" + "sz": "18" } diff --git a/src/Specific/CurveParameters/solinas32_2e480m2e240m1.json b/src/Specific/CurveParameters/solinas32_2e480m2e240m1.json index 2b81855e1..8df034edb 100644 --- a/src/Specific/CurveParameters/solinas32_2e480m2e240m1.json +++ b/src/Specific/CurveParameters/solinas32_2e480m2e240m1.json @@ -1,7 +1,34 @@ { - "base": "30", + "base": "30.0", "bitwidth": 32, - "carry_chains": "default", + "carry_chains": [ + [ + 7, + 15 + ], + [ + 8, + 0, + 9, + 1, + 10, + 2, + 11, + 3, + 12, + 4, + 13, + 5, + 14, + 6, + 15, + 7 + ], + [ + 8, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "goldilocks": true, diff --git a/src/Specific/CurveParameters/solinas32_2e495m31.json b/src/Specific/CurveParameters/solinas32_2e495m31.json index 8e22f1ef8..071bfd940 100644 --- a/src/Specific/CurveParameters/solinas32_2e495m31.json +++ b/src/Specific/CurveParameters/solinas32_2e495m31.json @@ -1,5 +1,5 @@ { - "base": "22.5", + "base": "26 + 1/19", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "22" + "sz": "19" } diff --git a/src/Specific/CurveParameters/solinas32_2e512m569.json b/src/Specific/CurveParameters/solinas32_2e512m569.json index 84408234b..86ece4ed5 100644 --- a/src/Specific/CurveParameters/solinas32_2e512m569.json +++ b/src/Specific/CurveParameters/solinas32_2e512m569.json @@ -1,5 +1,5 @@ { - "base": "17 + 1/15", + "base": "21 + 1/3", "bitwidth": 32, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "30" + "sz": "24" } diff --git a/src/Specific/CurveParameters/solinas64_2e129m25.json b/src/Specific/CurveParameters/solinas64_2e129m25.json index 71d0d3227..eb7e9070c 100644 --- a/src/Specific/CurveParameters/solinas64_2e129m25.json +++ b/src/Specific/CurveParameters/solinas64_2e129m25.json @@ -1,5 +1,5 @@ { - "base": "32.25", + "base": "43.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "4" + "sz": "3" } diff --git a/src/Specific/CurveParameters/solinas64_2e130m5.json b/src/Specific/CurveParameters/solinas64_2e130m5.json index 36ce417bc..1534408e5 100644 --- a/src/Specific/CurveParameters/solinas64_2e130m5.json +++ b/src/Specific/CurveParameters/solinas64_2e130m5.json @@ -1,5 +1,5 @@ { - "base": "32.5", + "base": "43 + 1/3", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "4" + "sz": "3" } diff --git a/src/Specific/CurveParameters/solinas64_2e140m27.json b/src/Specific/CurveParameters/solinas64_2e140m27.json index 7bf235b2a..c1fcd6179 100644 --- a/src/Specific/CurveParameters/solinas64_2e140m27.json +++ b/src/Specific/CurveParameters/solinas64_2e140m27.json @@ -1,5 +1,5 @@ { - "base": "35", + "base": "35.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", diff --git a/src/Specific/CurveParameters/solinas64_2e141m9.json b/src/Specific/CurveParameters/solinas64_2e141m9.json index c004ac483..7e974c38c 100644 --- a/src/Specific/CurveParameters/solinas64_2e141m9.json +++ b/src/Specific/CurveParameters/solinas64_2e141m9.json @@ -1,5 +1,5 @@ { - "base": "35.25", + "base": "47.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "4" + "sz": "3" } diff --git a/src/Specific/CurveParameters/solinas64_2e150m3.json b/src/Specific/CurveParameters/solinas64_2e150m3.json index 72101130c..9fbb7d4ab 100644 --- a/src/Specific/CurveParameters/solinas64_2e150m3.json +++ b/src/Specific/CurveParameters/solinas64_2e150m3.json @@ -1,5 +1,5 @@ { - "base": "37.5", + "base": "50.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "4" + "sz": "3" } diff --git a/src/Specific/CurveParameters/solinas64_2e150m5.json b/src/Specific/CurveParameters/solinas64_2e150m5.json index f61bfe8c1..f3283ec68 100644 --- a/src/Specific/CurveParameters/solinas64_2e150m5.json +++ b/src/Specific/CurveParameters/solinas64_2e150m5.json @@ -1,5 +1,5 @@ { - "base": "37.5", + "base": "50.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "4" + "sz": "3" } diff --git a/src/Specific/CurveParameters/solinas64_2e152m17.json b/src/Specific/CurveParameters/solinas64_2e152m17.json index ffccea0f5..969f64b66 100644 --- a/src/Specific/CurveParameters/solinas64_2e152m17.json +++ b/src/Specific/CurveParameters/solinas64_2e152m17.json @@ -1,5 +1,5 @@ { - "base": "38", + "base": "38.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", diff --git a/src/Specific/CurveParameters/solinas64_2e165m25.json b/src/Specific/CurveParameters/solinas64_2e165m25.json index 51139ed62..e8e33e271 100644 --- a/src/Specific/CurveParameters/solinas64_2e165m25.json +++ b/src/Specific/CurveParameters/solinas64_2e165m25.json @@ -1,5 +1,5 @@ { - "base": "41.25", + "base": "55.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "4" + "sz": "3" } diff --git a/src/Specific/CurveParameters/solinas64_2e166m5.json b/src/Specific/CurveParameters/solinas64_2e166m5.json index 8698a4d47..0e41e5a50 100644 --- a/src/Specific/CurveParameters/solinas64_2e166m5.json +++ b/src/Specific/CurveParameters/solinas64_2e166m5.json @@ -1,5 +1,5 @@ { - "base": "41.5", + "base": "55 + 1/3", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "4" + "sz": "3" } diff --git a/src/Specific/CurveParameters/solinas64_2e171m19.json b/src/Specific/CurveParameters/solinas64_2e171m19.json index e80f34f24..fbce25001 100644 --- a/src/Specific/CurveParameters/solinas64_2e171m19.json +++ b/src/Specific/CurveParameters/solinas64_2e171m19.json @@ -1,5 +1,5 @@ { - "base": "34.2", + "base": "57.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "5" + "sz": "3" } diff --git a/src/Specific/CurveParameters/solinas64_2e174m17.json b/src/Specific/CurveParameters/solinas64_2e174m17.json index 04f979ea3..003d6539c 100644 --- a/src/Specific/CurveParameters/solinas64_2e174m17.json +++ b/src/Specific/CurveParameters/solinas64_2e174m17.json @@ -1,5 +1,5 @@ { - "base": "43.5", + "base": "58.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "4" + "sz": "3" } diff --git a/src/Specific/CurveParameters/solinas64_2e174m3.json b/src/Specific/CurveParameters/solinas64_2e174m3.json index a09683de8..7e066ed10 100644 --- a/src/Specific/CurveParameters/solinas64_2e174m3.json +++ b/src/Specific/CurveParameters/solinas64_2e174m3.json @@ -1,5 +1,5 @@ { - "base": "43.5", + "base": "58.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "4" + "sz": "3" } diff --git a/src/Specific/CurveParameters/solinas64_2e189m25.json b/src/Specific/CurveParameters/solinas64_2e189m25.json index 6028d3df9..0d06899cd 100644 --- a/src/Specific/CurveParameters/solinas64_2e189m25.json +++ b/src/Specific/CurveParameters/solinas64_2e189m25.json @@ -1,5 +1,5 @@ { - "base": "31.5", + "base": "47.25", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "6" + "sz": "4" } diff --git a/src/Specific/CurveParameters/solinas64_2e190m11.json b/src/Specific/CurveParameters/solinas64_2e190m11.json index 6d8e6bb73..0a90936ae 100644 --- a/src/Specific/CurveParameters/solinas64_2e190m11.json +++ b/src/Specific/CurveParameters/solinas64_2e190m11.json @@ -1,5 +1,5 @@ { - "base": "38", + "base": "47.5", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "5" + "sz": "4" } diff --git a/src/Specific/CurveParameters/solinas64_2e192m2e64m1.json b/src/Specific/CurveParameters/solinas64_2e192m2e64m1.json index d918d53f8..032204bd7 100644 --- a/src/Specific/CurveParameters/solinas64_2e192m2e64m1.json +++ b/src/Specific/CurveParameters/solinas64_2e192m2e64m1.json @@ -1,7 +1,22 @@ { - "base": "48", + "base": "48.0", "bitwidth": 64, - "carry_chains": "default", + "carry_chains": [ + [ + 0, + 3 + ], + [ + 1, + 0, + 2, + 3 + ], + [ + 1, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "modulus": "2^192 - 2^64 - 1", diff --git a/src/Specific/CurveParameters/solinas64_2e194m33.json b/src/Specific/CurveParameters/solinas64_2e194m33.json index cd3cc0a8c..79d18f1ef 100644 --- a/src/Specific/CurveParameters/solinas64_2e194m33.json +++ b/src/Specific/CurveParameters/solinas64_2e194m33.json @@ -1,5 +1,5 @@ { - "base": "32 + 1/3", + "base": "48.5", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "6" + "sz": "4" } diff --git a/src/Specific/CurveParameters/solinas64_2e196m15.json b/src/Specific/CurveParameters/solinas64_2e196m15.json index 65a64e9c8..7b1dbe9e8 100644 --- a/src/Specific/CurveParameters/solinas64_2e196m15.json +++ b/src/Specific/CurveParameters/solinas64_2e196m15.json @@ -1,5 +1,5 @@ { - "base": "39.2", + "base": "49.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "5" + "sz": "4" } diff --git a/src/Specific/CurveParameters/solinas64_2e198m17.json b/src/Specific/CurveParameters/solinas64_2e198m17.json index 558db5007..33c458b9f 100644 --- a/src/Specific/CurveParameters/solinas64_2e198m17.json +++ b/src/Specific/CurveParameters/solinas64_2e198m17.json @@ -1,5 +1,5 @@ { - "base": "33", + "base": "49.5", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "6" + "sz": "4" } diff --git a/src/Specific/CurveParameters/solinas64_2e205m45x2e198m1.json b/src/Specific/CurveParameters/solinas64_2e205m45x2e198m1.json index ba25676be..98bc1e22c 100644 --- a/src/Specific/CurveParameters/solinas64_2e205m45x2e198m1.json +++ b/src/Specific/CurveParameters/solinas64_2e205m45x2e198m1.json @@ -1,7 +1,22 @@ { - "base": "41", + "base": "51.25", "bitwidth": 64, - "carry_chains": "default", + "carry_chains": [ + [ + 2, + 3 + ], + [ + 3, + 0, + 1, + 2 + ], + [ + 3, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "modulus": "2^205 - 45*2^198 - 1", @@ -10,5 +25,5 @@ "fesquare", "freeze" ], - "sz": "5" + "sz": "4" } diff --git a/src/Specific/CurveParameters/solinas64_2e206m5.json b/src/Specific/CurveParameters/solinas64_2e206m5.json index 61ed2d273..46c12c022 100644 --- a/src/Specific/CurveParameters/solinas64_2e206m5.json +++ b/src/Specific/CurveParameters/solinas64_2e206m5.json @@ -1,5 +1,5 @@ { - "base": "41.2", + "base": "51.5", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "5" + "sz": "4" } diff --git a/src/Specific/CurveParameters/solinas64_2e212m29.json b/src/Specific/CurveParameters/solinas64_2e212m29.json index bb9d6a91e..53a0d02b9 100644 --- a/src/Specific/CurveParameters/solinas64_2e212m29.json +++ b/src/Specific/CurveParameters/solinas64_2e212m29.json @@ -1,5 +1,5 @@ { - "base": "35 + 1/3", + "base": "53.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "6" + "sz": "4" } diff --git a/src/Specific/CurveParameters/solinas64_2e213m3.json b/src/Specific/CurveParameters/solinas64_2e213m3.json index 58c1a7a8f..32b7bb667 100644 --- a/src/Specific/CurveParameters/solinas64_2e213m3.json +++ b/src/Specific/CurveParameters/solinas64_2e213m3.json @@ -1,5 +1,5 @@ { - "base": "35.5", + "base": "53.25", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "6" + "sz": "4" } diff --git a/src/Specific/CurveParameters/solinas64_2e216m2e108m1.json b/src/Specific/CurveParameters/solinas64_2e216m2e108m1.json index 518bc09b9..d4765720c 100644 --- a/src/Specific/CurveParameters/solinas64_2e216m2e108m1.json +++ b/src/Specific/CurveParameters/solinas64_2e216m2e108m1.json @@ -1,7 +1,22 @@ { - "base": "43.2", + "base": "54.0", "bitwidth": 64, - "carry_chains": "default", + "carry_chains": [ + [ + 1, + 3 + ], + [ + 2, + 0, + 3, + 1 + ], + [ + 2, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "goldilocks": true, @@ -11,5 +26,5 @@ "fesquare", "freeze" ], - "sz": "5" + "sz": "4" } diff --git a/src/Specific/CurveParameters/solinas64_2e221m3.json b/src/Specific/CurveParameters/solinas64_2e221m3.json index 1268c6326..ada5c5889 100644 --- a/src/Specific/CurveParameters/solinas64_2e221m3.json +++ b/src/Specific/CurveParameters/solinas64_2e221m3.json @@ -1,5 +1,5 @@ { - "base": "44.2", + "base": "55.25", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "5" + "sz": "4" } diff --git a/src/Specific/CurveParameters/solinas64_2e222m117.json b/src/Specific/CurveParameters/solinas64_2e222m117.json index 8c88f4f4f..654e4489e 100644 --- a/src/Specific/CurveParameters/solinas64_2e222m117.json +++ b/src/Specific/CurveParameters/solinas64_2e222m117.json @@ -1,5 +1,5 @@ { - "base": "37", + "base": "55.5", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "6" + "sz": "4" } diff --git a/src/Specific/CurveParameters/solinas64_2e224m2e96p1.json b/src/Specific/CurveParameters/solinas64_2e224m2e96p1.json index 4f8e21a44..d0da47d71 100644 --- a/src/Specific/CurveParameters/solinas64_2e224m2e96p1.json +++ b/src/Specific/CurveParameters/solinas64_2e224m2e96p1.json @@ -1,7 +1,22 @@ { - "base": "37 + 1/3", + "base": "56.0", "bitwidth": 64, - "carry_chains": "default", + "carry_chains": [ + [ + 0, + 3 + ], + [ + 1, + 0, + 2, + 3 + ], + [ + 1, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "modulus": "2^224 - 2^96 + 1 ", @@ -10,5 +25,5 @@ "fesquare", "freeze" ], - "sz": "6" + "sz": "4" } diff --git a/src/Specific/CurveParameters/solinas64_2e226m5.json b/src/Specific/CurveParameters/solinas64_2e226m5.json index 874850bb8..e6e6eb0f3 100644 --- a/src/Specific/CurveParameters/solinas64_2e226m5.json +++ b/src/Specific/CurveParameters/solinas64_2e226m5.json @@ -1,5 +1,5 @@ { - "base": "45.2", + "base": "56.5", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "5" + "sz": "4" } diff --git a/src/Specific/CurveParameters/solinas64_2e230m27.json b/src/Specific/CurveParameters/solinas64_2e230m27.json index 21bafecdb..0d8c08bd7 100644 --- a/src/Specific/CurveParameters/solinas64_2e230m27.json +++ b/src/Specific/CurveParameters/solinas64_2e230m27.json @@ -1,5 +1,5 @@ { - "base": "46", + "base": "57.5", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "5" + "sz": "4" } diff --git a/src/Specific/CurveParameters/solinas64_2e235m15.json b/src/Specific/CurveParameters/solinas64_2e235m15.json index 4954b9eb8..7dbde886b 100644 --- a/src/Specific/CurveParameters/solinas64_2e235m15.json +++ b/src/Specific/CurveParameters/solinas64_2e235m15.json @@ -1,5 +1,5 @@ { - "base": "47", + "base": "47.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", diff --git a/src/Specific/CurveParameters/solinas64_2e251m9.json b/src/Specific/CurveParameters/solinas64_2e251m9.json index 74b29e860..6bd77ba7a 100644 --- a/src/Specific/CurveParameters/solinas64_2e251m9.json +++ b/src/Specific/CurveParameters/solinas64_2e251m9.json @@ -1,5 +1,5 @@ { - "base": "25.1", + "base": "50.2", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "10" + "sz": "5" } diff --git a/src/Specific/CurveParameters/solinas64_2e255m19.json b/src/Specific/CurveParameters/solinas64_2e255m19.json index 769f83edf..45356bca1 100644 --- a/src/Specific/CurveParameters/solinas64_2e255m19.json +++ b/src/Specific/CurveParameters/solinas64_2e255m19.json @@ -1,5 +1,5 @@ { - "base": "42.5", + "base": "51.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "6" + "sz": "5" } diff --git a/src/Specific/CurveParameters/solinas64_2e255m2e4m2e1m1.json b/src/Specific/CurveParameters/solinas64_2e255m2e4m2e1m1.json index 5e075e4e8..886fa92a5 100644 --- a/src/Specific/CurveParameters/solinas64_2e255m2e4m2e1m1.json +++ b/src/Specific/CurveParameters/solinas64_2e255m2e4m2e1m1.json @@ -1,7 +1,24 @@ { - "base": "51", + "base": "51.0", "bitwidth": 64, - "carry_chains": "default", + "carry_chains": [ + [ + 4, + 4, + 4 + ], + [ + 0, + 1, + 2, + 3 + ], + [ + 0, + 0, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "modulus": "2^255 - 2^4 - 2^1 - 1", diff --git a/src/Specific/CurveParameters/solinas64_2e255m765.json b/src/Specific/CurveParameters/solinas64_2e255m765.json index bf0b3a798..5b9374e52 100644 --- a/src/Specific/CurveParameters/solinas64_2e255m765.json +++ b/src/Specific/CurveParameters/solinas64_2e255m765.json @@ -1,5 +1,5 @@ { - "base": "42.5", + "base": "51.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "6" + "sz": "5" } diff --git a/src/Specific/CurveParameters/solinas64_2e256m189.json b/src/Specific/CurveParameters/solinas64_2e256m189.json index 05756494d..2507b5657 100644 --- a/src/Specific/CurveParameters/solinas64_2e256m189.json +++ b/src/Specific/CurveParameters/solinas64_2e256m189.json @@ -1,5 +1,5 @@ { - "base": "32", + "base": "51.2", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "8" + "sz": "5" } diff --git a/src/Specific/CurveParameters/solinas64_2e256m2e224p2e192p2e96m1.json b/src/Specific/CurveParameters/solinas64_2e256m2e224p2e192p2e96m1.json index cc0495355..19f057cc3 100644 --- a/src/Specific/CurveParameters/solinas64_2e256m2e224p2e192p2e96m1.json +++ b/src/Specific/CurveParameters/solinas64_2e256m2e224p2e192p2e96m1.json @@ -1,7 +1,27 @@ { "base": "51.2", "bitwidth": 64, - "carry_chains": "default", + "carry_chains": [ + [ + 3, + 2, + 0, + 4 + ], + [ + 4, + 3, + 1, + 0, + 2 + ], + [ + 4, + 3, + 1, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "modulus": "2^256 - 2^224 + 2^192 + 2^96 - 1 ", diff --git a/src/Specific/CurveParameters/solinas64_2e256m2e32m977.json b/src/Specific/CurveParameters/solinas64_2e256m2e32m977.json index 97244ff6c..3b0cfeb0d 100644 --- a/src/Specific/CurveParameters/solinas64_2e256m2e32m977.json +++ b/src/Specific/CurveParameters/solinas64_2e256m2e32m977.json @@ -1,7 +1,22 @@ { - "base": "32", + "base": "51.2", "bitwidth": 64, - "carry_chains": "default", + "carry_chains": [ + [ + 4, + 4 + ], + [ + 0, + 1, + 2, + 3 + ], + [ + 0, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "modulus": "2^256 - 2^32 - 977 ", @@ -10,5 +25,5 @@ "fesquare", "freeze" ], - "sz": "8" + "sz": "5" } diff --git a/src/Specific/CurveParameters/solinas64_2e266m3.json b/src/Specific/CurveParameters/solinas64_2e266m3.json index 37f9b04d9..c7f9e50a6 100644 --- a/src/Specific/CurveParameters/solinas64_2e266m3.json +++ b/src/Specific/CurveParameters/solinas64_2e266m3.json @@ -1,5 +1,5 @@ { - "base": "44 + 1/3", + "base": "53.2", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "6" + "sz": "5" } diff --git a/src/Specific/CurveParameters/solinas64_2e285m9.json b/src/Specific/CurveParameters/solinas64_2e285m9.json index 3de75349d..8c008435b 100644 --- a/src/Specific/CurveParameters/solinas64_2e285m9.json +++ b/src/Specific/CurveParameters/solinas64_2e285m9.json @@ -1,5 +1,5 @@ { - "base": "47.5", + "base": "57.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "6" + "sz": "5" } diff --git a/src/Specific/CurveParameters/solinas64_2e291m19.json b/src/Specific/CurveParameters/solinas64_2e291m19.json index b4cf79bda..8a5504623 100644 --- a/src/Specific/CurveParameters/solinas64_2e291m19.json +++ b/src/Specific/CurveParameters/solinas64_2e291m19.json @@ -1,5 +1,5 @@ { - "base": "48.5", + "base": "58.2", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "6" + "sz": "5" } diff --git a/src/Specific/CurveParameters/solinas64_2e321m9.json b/src/Specific/CurveParameters/solinas64_2e321m9.json index 7e05c382c..fad098cf7 100644 --- a/src/Specific/CurveParameters/solinas64_2e321m9.json +++ b/src/Specific/CurveParameters/solinas64_2e321m9.json @@ -1,5 +1,5 @@ { - "base": "40.125", + "base": "53.5", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "8" + "sz": "6" } diff --git a/src/Specific/CurveParameters/solinas64_2e322m2e161m1.json b/src/Specific/CurveParameters/solinas64_2e322m2e161m1.json index e1739152b..36e6f3dca 100644 --- a/src/Specific/CurveParameters/solinas64_2e322m2e161m1.json +++ b/src/Specific/CurveParameters/solinas64_2e322m2e161m1.json @@ -1,7 +1,25 @@ { - "base": "46", + "base": "46.0", "bitwidth": 64, - "carry_chains": "default", + "carry_chains": [ + [ + 2, + 6 + ], + [ + 3, + 0, + 4, + 1, + 5, + 2, + 6 + ], + [ + 3, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "goldilocks": true, diff --git a/src/Specific/CurveParameters/solinas64_2e336m17.json b/src/Specific/CurveParameters/solinas64_2e336m17.json index e13f1732d..f08a05664 100644 --- a/src/Specific/CurveParameters/solinas64_2e336m17.json +++ b/src/Specific/CurveParameters/solinas64_2e336m17.json @@ -1,5 +1,5 @@ { - "base": "48", + "base": "56.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "7" + "sz": "6" } diff --git a/src/Specific/CurveParameters/solinas64_2e336m3.json b/src/Specific/CurveParameters/solinas64_2e336m3.json index 6da2fe4ed..d1c441d96 100644 --- a/src/Specific/CurveParameters/solinas64_2e336m3.json +++ b/src/Specific/CurveParameters/solinas64_2e336m3.json @@ -1,5 +1,5 @@ { - "base": "48", + "base": "56.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "7" + "sz": "6" } diff --git a/src/Specific/CurveParameters/solinas64_2e338m15.json b/src/Specific/CurveParameters/solinas64_2e338m15.json index 6fbe0c894..35f42f35d 100644 --- a/src/Specific/CurveParameters/solinas64_2e338m15.json +++ b/src/Specific/CurveParameters/solinas64_2e338m15.json @@ -1,5 +1,5 @@ { - "base": "42.25", + "base": "56 + 1/3", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "8" + "sz": "6" } diff --git a/src/Specific/CurveParameters/solinas64_2e379m19.json b/src/Specific/CurveParameters/solinas64_2e379m19.json index 4bf30eacd..337966d5d 100644 --- a/src/Specific/CurveParameters/solinas64_2e379m19.json +++ b/src/Specific/CurveParameters/solinas64_2e379m19.json @@ -1,5 +1,5 @@ { - "base": "42 + 1/9", + "base": "54 + 1/7", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "9" + "sz": "7" } diff --git a/src/Specific/CurveParameters/solinas64_2e384m2e128m2e96p2e32m1.json b/src/Specific/CurveParameters/solinas64_2e384m2e128m2e96p2e32m1.json index 14abeaece..5a982e7a6 100644 --- a/src/Specific/CurveParameters/solinas64_2e384m2e128m2e96p2e32m1.json +++ b/src/Specific/CurveParameters/solinas64_2e384m2e128m2e96p2e32m1.json @@ -1,7 +1,30 @@ { - "base": "48", + "base": "48.0", "bitwidth": 64, - "carry_chains": "default", + "carry_chains": [ + [ + 1, + 1, + 7, + 7 + ], + [ + 2, + 0, + 3, + 1, + 4, + 5, + 6, + 7 + ], + [ + 2, + 2, + 0, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "modulus": "2^384 - 2^128 - 2^96 + 2^32 - 1 ", diff --git a/src/Specific/CurveParameters/solinas64_2e384m317.json b/src/Specific/CurveParameters/solinas64_2e384m317.json index 1145b333f..d686f57b1 100644 --- a/src/Specific/CurveParameters/solinas64_2e384m317.json +++ b/src/Specific/CurveParameters/solinas64_2e384m317.json @@ -1,5 +1,5 @@ { - "base": "48", + "base": "48.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", diff --git a/src/Specific/CurveParameters/solinas64_2e413m21.json b/src/Specific/CurveParameters/solinas64_2e413m21.json index 7869e326a..5834ba0bd 100644 --- a/src/Specific/CurveParameters/solinas64_2e413m21.json +++ b/src/Specific/CurveParameters/solinas64_2e413m21.json @@ -1,5 +1,5 @@ { - "base": "29.5", + "base": "59.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "14" + "sz": "7" } diff --git a/src/Specific/CurveParameters/solinas64_2e414m17.json b/src/Specific/CurveParameters/solinas64_2e414m17.json index 14c9a4033..1bb11b05d 100644 --- a/src/Specific/CurveParameters/solinas64_2e414m17.json +++ b/src/Specific/CurveParameters/solinas64_2e414m17.json @@ -1,5 +1,5 @@ { - "base": "46", + "base": "46.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", diff --git a/src/Specific/CurveParameters/solinas64_2e416m2e208m1.json b/src/Specific/CurveParameters/solinas64_2e416m2e208m1.json index 3fd498519..37abb9d12 100644 --- a/src/Specific/CurveParameters/solinas64_2e416m2e208m1.json +++ b/src/Specific/CurveParameters/solinas64_2e416m2e208m1.json @@ -1,7 +1,26 @@ { - "base": "52", + "base": "52.0", "bitwidth": 64, - "carry_chains": "default", + "carry_chains": [ + [ + 3, + 7 + ], + [ + 4, + 0, + 5, + 1, + 6, + 2, + 7, + 3 + ], + [ + 4, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "goldilocks": true, diff --git a/src/Specific/CurveParameters/solinas64_2e444m17.json b/src/Specific/CurveParameters/solinas64_2e444m17.json index 82842b608..d04d61bd1 100644 --- a/src/Specific/CurveParameters/solinas64_2e444m17.json +++ b/src/Specific/CurveParameters/solinas64_2e444m17.json @@ -1,5 +1,5 @@ { - "base": "49 + 1/3", + "base": "55.5", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "9" + "sz": "8" } diff --git a/src/Specific/CurveParameters/solinas64_2e448m2e224m1.json b/src/Specific/CurveParameters/solinas64_2e448m2e224m1.json index 075f11b5f..aaf1f2138 100644 --- a/src/Specific/CurveParameters/solinas64_2e448m2e224m1.json +++ b/src/Specific/CurveParameters/solinas64_2e448m2e224m1.json @@ -1,7 +1,26 @@ { - "base": "56", + "base": "56.0", "bitwidth": 64, - "carry_chains": "default", + "carry_chains": [ + [ + 3, + 7 + ], + [ + 4, + 0, + 5, + 1, + 6, + 2, + 7, + 3 + ], + [ + 4, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "goldilocks": true, diff --git a/src/Specific/CurveParameters/solinas64_2e450m2e225m1.json b/src/Specific/CurveParameters/solinas64_2e450m2e225m1.json index 61e93c73a..65259dfea 100644 --- a/src/Specific/CurveParameters/solinas64_2e450m2e225m1.json +++ b/src/Specific/CurveParameters/solinas64_2e450m2e225m1.json @@ -1,7 +1,26 @@ { - "base": "50", + "base": "56.25", "bitwidth": 64, - "carry_chains": "default", + "carry_chains": [ + [ + 3, + 7 + ], + [ + 4, + 0, + 5, + 1, + 6, + 2, + 7, + 3 + ], + [ + 4, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "goldilocks": true, @@ -11,5 +30,5 @@ "fesquare", "freeze" ], - "sz": "9" + "sz": "8" } diff --git a/src/Specific/CurveParameters/solinas64_2e452m3.json b/src/Specific/CurveParameters/solinas64_2e452m3.json index 3d8f458b7..8f7a437c2 100644 --- a/src/Specific/CurveParameters/solinas64_2e452m3.json +++ b/src/Specific/CurveParameters/solinas64_2e452m3.json @@ -1,5 +1,5 @@ { - "base": "45.2", + "base": "56.5", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "10" + "sz": "8" } diff --git a/src/Specific/CurveParameters/solinas64_2e468m17.json b/src/Specific/CurveParameters/solinas64_2e468m17.json index cccf6402d..e44385178 100644 --- a/src/Specific/CurveParameters/solinas64_2e468m17.json +++ b/src/Specific/CurveParameters/solinas64_2e468m17.json @@ -1,5 +1,5 @@ { - "base": "52", + "base": "58.5", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "9" + "sz": "8" } diff --git a/src/Specific/CurveParameters/solinas64_2e480m2e240m1.json b/src/Specific/CurveParameters/solinas64_2e480m2e240m1.json index ca5e6d21e..ffe72ba58 100644 --- a/src/Specific/CurveParameters/solinas64_2e480m2e240m1.json +++ b/src/Specific/CurveParameters/solinas64_2e480m2e240m1.json @@ -1,7 +1,26 @@ { - "base": "53 + 1/3", + "base": "60.0", "bitwidth": 64, - "carry_chains": "default", + "carry_chains": [ + [ + 3, + 7 + ], + [ + 4, + 0, + 5, + 1, + 6, + 2, + 7, + 3 + ], + [ + 4, + 0 + ] + ], "coef_div_modulus": "2", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes", "goldilocks": true, @@ -11,5 +30,5 @@ "fesquare", "freeze" ], - "sz": "9" + "sz": "8" } diff --git a/src/Specific/CurveParameters/solinas64_2e489m21.json b/src/Specific/CurveParameters/solinas64_2e489m21.json index 419994433..5c9fb1f4b 100644 --- a/src/Specific/CurveParameters/solinas64_2e489m21.json +++ b/src/Specific/CurveParameters/solinas64_2e489m21.json @@ -1,5 +1,5 @@ { - "base": "27 + 1/6", + "base": "54 + 1/3", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "18" + "sz": "9" } diff --git a/src/Specific/CurveParameters/solinas64_2e495m31.json b/src/Specific/CurveParameters/solinas64_2e495m31.json index 6b6055948..08ce34fca 100644 --- a/src/Specific/CurveParameters/solinas64_2e495m31.json +++ b/src/Specific/CurveParameters/solinas64_2e495m31.json @@ -1,5 +1,5 @@ { - "base": "49.5", + "base": "55.0", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "10" + "sz": "9" } diff --git a/src/Specific/CurveParameters/solinas64_2e511m187.json b/src/Specific/CurveParameters/solinas64_2e511m187.json index c0e25a726..656b71861 100644 --- a/src/Specific/CurveParameters/solinas64_2e511m187.json +++ b/src/Specific/CurveParameters/solinas64_2e511m187.json @@ -1,5 +1,5 @@ { - "base": "36.5", + "base": "51.1", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "14" + "sz": "10" } diff --git a/src/Specific/CurveParameters/solinas64_2e511m481.json b/src/Specific/CurveParameters/solinas64_2e511m481.json index ce847d67a..1c07236d2 100644 --- a/src/Specific/CurveParameters/solinas64_2e511m481.json +++ b/src/Specific/CurveParameters/solinas64_2e511m481.json @@ -1,5 +1,5 @@ { - "base": "36.5", + "base": "51.1", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "14" + "sz": "10" } diff --git a/src/Specific/CurveParameters/solinas64_2e512m569.json b/src/Specific/CurveParameters/solinas64_2e512m569.json index d8055f1a2..0db9d94f7 100644 --- a/src/Specific/CurveParameters/solinas64_2e512m569.json +++ b/src/Specific/CurveParameters/solinas64_2e512m569.json @@ -1,5 +1,5 @@ { - "base": "32", + "base": "51.2", "bitwidth": 64, "carry_chains": "default", "coef_div_modulus": "2", @@ -10,5 +10,5 @@ "fesquare", "freeze" ], - "sz": "16" + "sz": "10" } -- cgit v1.2.3