aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jadep <jade.philipoom@gmail.com>2017-10-16 11:46:03 -0400
committerGravatar jadep <jade.philipoom@gmail.com>2017-10-16 11:46:03 -0400
commitd6fc40ce9540900da91c0ac815cd4399dcd84658 (patch)
tree8ccd35dd47fc4bf4c43093a2475261e4245891f8
parent69973c5d98cda7caa7d9de33017504544e120f16 (diff)
bugfixes from messy rebase; remade json files
-rw-r--r--generate_parameters.py8
-rwxr-xr-xsrc/Specific/CurveParameters/remake_curves.sh24
-rw-r--r--src/Specific/CurveParameters/solinas32_2e130m5.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e140m27.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e141m9.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e150m3.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e150m5.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e152m17.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e158m15.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e171m19.json2
-rw-r--r--src/Specific/CurveParameters/solinas32_2e174m3.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e189m25.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e190m11.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e192m2e64m1.json23
-rw-r--r--src/Specific/CurveParameters/solinas32_2e194m33.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e196m15.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e198m17.json2
-rw-r--r--src/Specific/CurveParameters/solinas32_2e205m45x2e198m1.json23
-rw-r--r--src/Specific/CurveParameters/solinas32_2e212m29.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e216m2e108m1.json23
-rw-r--r--src/Specific/CurveParameters/solinas32_2e224m2e96p1.json23
-rw-r--r--src/Specific/CurveParameters/solinas32_2e226m5.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e230m27.json2
-rw-r--r--src/Specific/CurveParameters/solinas32_2e235m15.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e243m9.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e255m19.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e255m2e4m2e1m1.json23
-rw-r--r--src/Specific/CurveParameters/solinas32_2e255m765.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e256m2e224p2e192p2e96m1.json29
-rw-r--r--src/Specific/CurveParameters/solinas32_2e256m2e32m977.json29
-rw-r--r--src/Specific/CurveParameters/solinas32_2e285m9.json2
-rw-r--r--src/Specific/CurveParameters/solinas32_2e322m2e161m1.json29
-rw-r--r--src/Specific/CurveParameters/solinas32_2e336m17.json2
-rw-r--r--src/Specific/CurveParameters/solinas32_2e336m3.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e338m15.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e384m2e128m2e96p2e32m1.json35
-rw-r--r--src/Specific/CurveParameters/solinas32_2e414m17.json2
-rw-r--r--src/Specific/CurveParameters/solinas32_2e416m2e208m1.json31
-rw-r--r--src/Specific/CurveParameters/solinas32_2e448m2e224m1.json31
-rw-r--r--src/Specific/CurveParameters/solinas32_2e450m2e225m1.json32
-rw-r--r--src/Specific/CurveParameters/solinas32_2e452m3.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e468m17.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e480m2e240m1.json31
-rw-r--r--src/Specific/CurveParameters/solinas32_2e495m31.json4
-rw-r--r--src/Specific/CurveParameters/solinas32_2e512m569.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e129m25.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e130m5.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e140m27.json2
-rw-r--r--src/Specific/CurveParameters/solinas64_2e141m9.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e150m3.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e150m5.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e152m17.json2
-rw-r--r--src/Specific/CurveParameters/solinas64_2e165m25.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e166m5.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e171m19.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e174m17.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e174m3.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e189m25.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e190m11.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e192m2e64m1.json19
-rw-r--r--src/Specific/CurveParameters/solinas64_2e194m33.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e196m15.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e198m17.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e205m45x2e198m1.json21
-rw-r--r--src/Specific/CurveParameters/solinas64_2e206m5.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e212m29.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e213m3.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e216m2e108m1.json21
-rw-r--r--src/Specific/CurveParameters/solinas64_2e221m3.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e222m117.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e224m2e96p1.json21
-rw-r--r--src/Specific/CurveParameters/solinas64_2e226m5.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e230m27.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e235m15.json2
-rw-r--r--src/Specific/CurveParameters/solinas64_2e251m9.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e255m19.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e255m2e4m2e1m1.json21
-rw-r--r--src/Specific/CurveParameters/solinas64_2e255m765.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e256m189.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e256m2e224p2e192p2e96m1.json22
-rw-r--r--src/Specific/CurveParameters/solinas64_2e256m2e32m977.json21
-rw-r--r--src/Specific/CurveParameters/solinas64_2e266m3.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e285m9.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e291m19.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e321m9.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e322m2e161m1.json22
-rw-r--r--src/Specific/CurveParameters/solinas64_2e336m17.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e336m3.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e338m15.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e379m19.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e384m2e128m2e96p2e32m1.json27
-rw-r--r--src/Specific/CurveParameters/solinas64_2e384m317.json2
-rw-r--r--src/Specific/CurveParameters/solinas64_2e413m21.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e414m17.json2
-rw-r--r--src/Specific/CurveParameters/solinas64_2e416m2e208m1.json23
-rw-r--r--src/Specific/CurveParameters/solinas64_2e444m17.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e448m2e224m1.json23
-rw-r--r--src/Specific/CurveParameters/solinas64_2e450m2e225m1.json25
-rw-r--r--src/Specific/CurveParameters/solinas64_2e452m3.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e468m17.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e480m2e240m1.json25
-rw-r--r--src/Specific/CurveParameters/solinas64_2e489m21.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e495m31.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e511m187.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e511m481.json4
-rw-r--r--src/Specific/CurveParameters/solinas64_2e512m569.json4
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"
}