diff options
| author | J08nY | 2019-03-12 16:43:35 +0100 |
|---|---|---|
| committer | J08nY | 2019-03-21 11:00:14 +0100 |
| commit | a9b7c026b0714bfa0aacf504e6b9dde65fccc2aa (patch) | |
| tree | d32461cfbf5f275508779f5a4966c24cf020d21a | |
| parent | 7fa186f42d17942192f8b23be8a2fb1b731b0641 (diff) | |
| download | pyecsca-a9b7c026b0714bfa0aacf504e6b9dde65fccc2aa.tar.gz pyecsca-a9b7c026b0714bfa0aacf504e6b9dde65fccc2aa.tar.zst pyecsca-a9b7c026b0714bfa0aacf504e6b9dde65fccc2aa.zip | |
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | pyecsca/ec/context.py | 2 | ||||
| -rw-r--r-- | pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g | 4 | ||||
| -rw-r--r-- | pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g-2 | 4 | ||||
| -rw-r--r-- | pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g-2.op3 | 4 | ||||
| -rw-r--r-- | pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g.op3 | 4 | ||||
| -rw-r--r-- | pyecsca/ec/efd/edwards/yz/diffadd/mdadd-2006-g-2 | 4 | ||||
| -rw-r--r-- | pyecsca/ec/efd/edwards/yz/diffadd/mdadd-2006-g-2.op3 | 4 | ||||
| -rw-r--r-- | pyecsca/ec/efd/edwards/yzsquared/diffadd/dadd-2006-g | 4 | ||||
| -rw-r--r-- | pyecsca/ec/efd/edwards/yzsquared/diffadd/dadd-2006-g.op3 | 4 | ||||
| -rw-r--r-- | pyecsca/ec/efd/edwards/yzsquared/diffadd/mdadd-2006-g | 4 | ||||
| -rw-r--r-- | pyecsca/ec/efd/edwards/yzsquared/diffadd/mdadd-2006-g.op3 | 4 | ||||
| -rw-r--r-- | pyecsca/ec/formula.py | 4 | ||||
| -rw-r--r-- | pyecsca/ec/model.py | 5 |
14 files changed, 28 insertions, 24 deletions
@@ -11,6 +11,7 @@ - [fastdtw](https://github.com/slaypni/fastdtw) *pyecsca* contains data from the [Explicit-Formulas Database](https://www.hyperelliptic.org/EFD/index.html) by Daniel J. Bernstein and Tanja Lange. +The data was partially changed, to make working with it easier. It also supports working with [Riscure](https://www.riscure.com) Inspector trace sets, which are of a proprietary format. diff --git a/pyecsca/ec/context.py b/pyecsca/ec/context.py index 7fafadc..0bb86d8 100644 --- a/pyecsca/ec/context.py +++ b/pyecsca/ec/context.py @@ -30,7 +30,7 @@ class Context(object): locals[op.result] = op_result result = [] for i in range(formula.num_outputs): - ind = str(i + 3) + ind = str(i + formula.output_index) resulting = {variable: locals[variable + ind] for variable in formula.coordinate_model.variables if variable + ind in locals} diff --git a/pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g b/pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g index 0b5f17a..6ab2f30 100644 --- a/pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g +++ b/pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g @@ -3,5 +3,5 @@ parameter s assume s = (1+r)/(1-r) compute V = s(r Z2^2-Y2^2)(r Z3^2-Y3^2) compute W = (r Z2^2+Y2^2)(r Z3^2+Y3^2) -compute Y5 = r Z1(W-V) -compute Z5 = Y1(W+V) +compute Y4 = r Z1(W-V) +compute Z4 = Y1(W+V) diff --git a/pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g-2 b/pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g-2 index b611b34..d7bb994 100644 --- a/pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g-2 +++ b/pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g-2 @@ -7,5 +7,5 @@ compute YY3 = Y3^2 compute ZZ3 = r Z3^2 compute V = s(ZZ2-YY2)(ZZ3-YY3) compute W = (ZZ2+YY2)(ZZ3+YY3) -compute Y5 = (r Z1)(W-V) -compute Z5 = Y1(W+V) +compute Y4 = (r Z1)(W-V) +compute Z4 = Y1(W+V) diff --git a/pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g-2.op3 b/pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g-2.op3 index 3433bd8..0686bc1 100644 --- a/pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g-2.op3 +++ b/pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g-2.op3 @@ -13,6 +13,6 @@ t6 = ZZ3+YY3 W = t5*t6 t7 = r*Z1 t8 = W-V -Y5 = t7*t8 +Y4 = t7*t8 t9 = W+V -Z5 = Y1*t9 +Z4 = Y1*t9 diff --git a/pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g.op3 b/pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g.op3 index b7a2ed7..584ce61 100644 --- a/pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g.op3 +++ b/pyecsca/ec/efd/edwards/yz/diffadd/dadd-2006-g.op3 @@ -19,6 +19,6 @@ t16 = t13+t12 W = t15*t16 t17 = W-V t18 = Z1*t17 -Y5 = r*t18 +Y4 = r*t18 t19 = W+V -Z5 = Y1*t19 +Z4 = Y1*t19 diff --git a/pyecsca/ec/efd/edwards/yz/diffadd/mdadd-2006-g-2 b/pyecsca/ec/efd/edwards/yz/diffadd/mdadd-2006-g-2 index 53d3fd7..2ddd828 100644 --- a/pyecsca/ec/efd/edwards/yz/diffadd/mdadd-2006-g-2 +++ b/pyecsca/ec/efd/edwards/yz/diffadd/mdadd-2006-g-2 @@ -8,5 +8,5 @@ compute YY3 = Y3^2 compute ZZ3 = r Z3^2 compute V = s(ZZ2-YY2)(ZZ3-YY3) compute W = (ZZ2+YY2)(ZZ3+YY3) -compute Y5 = r(W-V) -compute Z5 = Y1(W+V) +compute Y4 = r(W-V) +compute Z4 = Y1(W+V) diff --git a/pyecsca/ec/efd/edwards/yz/diffadd/mdadd-2006-g-2.op3 b/pyecsca/ec/efd/edwards/yz/diffadd/mdadd-2006-g-2.op3 index 1a10347..c888d1f 100644 --- a/pyecsca/ec/efd/edwards/yz/diffadd/mdadd-2006-g-2.op3 +++ b/pyecsca/ec/efd/edwards/yz/diffadd/mdadd-2006-g-2.op3 @@ -12,6 +12,6 @@ t5 = ZZ2+YY2 t6 = ZZ3+YY3 W = t5*t6 t7 = W-V -Y5 = r*t7 +Y4 = r*t7 t8 = W+V -Z5 = Y1*t8 +Z4 = Y1*t8 diff --git a/pyecsca/ec/efd/edwards/yzsquared/diffadd/dadd-2006-g b/pyecsca/ec/efd/edwards/yzsquared/diffadd/dadd-2006-g index 1353955..ab03316 100644 --- a/pyecsca/ec/efd/edwards/yzsquared/diffadd/dadd-2006-g +++ b/pyecsca/ec/efd/edwards/yzsquared/diffadd/dadd-2006-g @@ -3,5 +3,5 @@ parameter s assume s = (1+r)/(1-r) compute V = s(Z2-Y2)(Z3-Y3) compute W = (Z2+Y2)(Z3+Y3) -compute Y5 = Z1(W-V)^2 -compute Z5 = Y1(W+V)^2 +compute Y4 = Z1(W-V)^2 +compute Z4 = Y1(W+V)^2 diff --git a/pyecsca/ec/efd/edwards/yzsquared/diffadd/dadd-2006-g.op3 b/pyecsca/ec/efd/edwards/yzsquared/diffadd/dadd-2006-g.op3 index 9194932..40d57b8 100644 --- a/pyecsca/ec/efd/edwards/yzsquared/diffadd/dadd-2006-g.op3 +++ b/pyecsca/ec/efd/edwards/yzsquared/diffadd/dadd-2006-g.op3 @@ -7,7 +7,7 @@ t4 = Z3+Y3 W = t3*t4 t5 = W-V t6 = t5^2 -Y5 = Z1*t6 +Y4 = Z1*t6 t7 = W+V t8 = t7^2 -Z5 = Y1*t8 +Z4 = Y1*t8 diff --git a/pyecsca/ec/efd/edwards/yzsquared/diffadd/mdadd-2006-g b/pyecsca/ec/efd/edwards/yzsquared/diffadd/mdadd-2006-g index f6fc535..2c6e1ac 100644 --- a/pyecsca/ec/efd/edwards/yzsquared/diffadd/mdadd-2006-g +++ b/pyecsca/ec/efd/edwards/yzsquared/diffadd/mdadd-2006-g @@ -4,5 +4,5 @@ parameter s assume s = (1+r)/(1-r) compute V = s(Z2-Y2)(Z3-Y3) compute W = (Z2+Y2)(Z3+Y3) -compute Y5 = (W-V)^2 -compute Z5 = Y1(W+V)^2 +compute Y4 = (W-V)^2 +compute Z4 = Y1(W+V)^2 diff --git a/pyecsca/ec/efd/edwards/yzsquared/diffadd/mdadd-2006-g.op3 b/pyecsca/ec/efd/edwards/yzsquared/diffadd/mdadd-2006-g.op3 index 530c50f..8e82aa3 100644 --- a/pyecsca/ec/efd/edwards/yzsquared/diffadd/mdadd-2006-g.op3 +++ b/pyecsca/ec/efd/edwards/yzsquared/diffadd/mdadd-2006-g.op3 @@ -6,7 +6,7 @@ t3 = Z2+Y2 t4 = Z3+Y3 W = t3*t4 t5 = W-V -Y5 = t5^2 +Y4 = t5^2 t6 = W+V t7 = t6^2 -Z5 = Y1*t7 +Z4 = Y1*t7 diff --git a/pyecsca/ec/formula.py b/pyecsca/ec/formula.py index c4aa77b..e6d8d9f 100644 --- a/pyecsca/ec/formula.py +++ b/pyecsca/ec/formula.py @@ -19,6 +19,10 @@ class Formula(object): def __repr__(self): return f"{self.__class__.__name__}({self.name} for {self.coordinate_model})" + @property + def output_index(cls): + return max(cls.num_inputs + 1, 3) + class EFDFormula(Formula): diff --git a/pyecsca/ec/model.py b/pyecsca/ec/model.py index cc474f5..397b0ee 100644 --- a/pyecsca/ec/model.py +++ b/pyecsca/ec/model.py @@ -29,11 +29,10 @@ class EFDCurveModel(CurveModel): _loaded: bool = False def __init__(self, efd_name: str): - self._efd_name = efd_name if self._loaded: return - else: - self.__class__._loaded = True + self._efd_name = efd_name + self.__class__._loaded = True self.__class__.coordinates = {} self.__class__.parameter_names = [] self.__class__.coordinate_names = [] |
