diff options
| author | J08nY | 2025-11-19 19:04:20 +0100 |
|---|---|---|
| committer | J08nY | 2025-11-19 19:04:20 +0100 |
| commit | c569e11243d5888967fa0d34a55a93ab798a7d02 (patch) | |
| tree | 066878f3d796e1e8b9da9a20e86712e42cead4c5 /pyecsca/ec/mult/window.py | |
| parent | 1fd95b25b8afde7d7afcf49c71a08c25e8639c5b (diff) | |
| download | pyecsca-c569e11243d5888967fa0d34a55a93ab798a7d02.tar.gz pyecsca-c569e11243d5888967fa0d34a55a93ab798a7d02.tar.zst pyecsca-c569e11243d5888967fa0d34a55a93ab798a7d02.zip | |
Avoid unnecessary precomputation in window mults.
Diffstat (limited to '')
| -rw-r--r-- | pyecsca/ec/mult/window.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/pyecsca/ec/mult/window.py b/pyecsca/ec/mult/window.py index ed0cd05..e46179a 100644 --- a/pyecsca/ec/mult/window.py +++ b/pyecsca/ec/mult/window.py @@ -104,7 +104,8 @@ class SlidingWindowMultiplier( double_point = self._dbl(point) for i in range(0, 2 ** (self.width - 1)): self._points[2 * i + 1] = current_point - current_point = self._add(current_point, double_point) + if i != 2 ** (self.width - 1) - 1: + current_point = self._add(current_point, double_point) action.exit(self._points) def multiply(self, scalar: int) -> Point: @@ -232,7 +233,8 @@ class FixedWindowLTRMultiplier( converted = convert_base(scalar, self.m) q = copy(self._params.curve.neutral) for digit in reversed(converted): - q = self._mult_m(q) + if q != self._params.curve.neutral: + q = self._mult_m(q) if digit != 0: q = self._accumulate(q, self._points[digit]) if "scl" in self.formulas: |
