aboutsummaryrefslogtreecommitdiffhomepage
path: root/pyecsca/ec/mult/window.py
diff options
context:
space:
mode:
authorJ08nY2025-11-19 19:04:20 +0100
committerJ08nY2025-11-19 19:04:20 +0100
commitc569e11243d5888967fa0d34a55a93ab798a7d02 (patch)
tree066878f3d796e1e8b9da9a20e86712e42cead4c5 /pyecsca/ec/mult/window.py
parent1fd95b25b8afde7d7afcf49c71a08c25e8639c5b (diff)
downloadpyecsca-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.py6
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: