diff options
| author | J08nY | 2024-08-28 14:33:04 +0200 |
|---|---|---|
| committer | J08nY | 2024-08-28 14:33:04 +0200 |
| commit | 57b68a73b1c49b6eeb5b668bff4efb5ac1aef881 (patch) | |
| tree | f01704e1277a2e7da27edb050d313e294e5c2ab6 /test | |
| parent | 979d86979313de02c4dab71f99ce1c5dddd5877a (diff) | |
| download | pyecsca-57b68a73b1c49b6eeb5b668bff4efb5ac1aef881.tar.gz pyecsca-57b68a73b1c49b6eeb5b668bff4efb5ac1aef881.tar.zst pyecsca-57b68a73b1c49b6eeb5b668bff4efb5ac1aef881.zip | |
Remove SwapLadderMultiplier.
It is the same as LadderMultiplier. The swaps are not tracked.
Diffstat (limited to 'test')
| -rw-r--r-- | test/ec/test_key_agreement.py | 9 | ||||
| -rw-r--r-- | test/ec/test_mult.py | 76 | ||||
| -rw-r--r-- | test/sca/test_rpa.py | 4 | ||||
| -rw-r--r-- | test/sca/test_rpa_context.py | 41 |
4 files changed, 50 insertions, 80 deletions
diff --git a/test/ec/test_key_agreement.py b/test/ec/test_key_agreement.py index a045c49..aa09051 100644 --- a/test/ec/test_key_agreement.py +++ b/test/ec/test_key_agreement.py @@ -19,7 +19,6 @@ from pyecsca.ec.mod import Mod, mod from pyecsca.ec.mult import ( LTRMultiplier, LadderMultiplier, - SwapLadderMultiplier, DifferentialLadderMultiplier, ) import test.data.ec @@ -59,7 +58,7 @@ def test_ka(algo, mult, secp128r1, keypair_a, keypair_b): assert result_ab == result_ba -def test_ka_secg(): +def test_ecdh_secg(): with files(test.data.ec).joinpath("ecdh_tv.json").open("r") as f: secg_data = json.load(f) secp160r1 = get_params("secg", "secp160r1", "projective") @@ -102,10 +101,9 @@ def test_ka_secg(): "mult_args", [ (LadderMultiplier, "ladd-1987-m", "dbl-1987-m", "scale"), - (SwapLadderMultiplier, "ladd-1987-m", "dbl-1987-m", "scale"), (DifferentialLadderMultiplier, "dadd-1987-m", "dbl-1987-m", "scale"), ], - ids=["ladd", "swap", "diff"] + ids=["ladd", "diff"] ) @pytest.mark.parametrize("complete", [True, False], ids=["complete", ""]) @pytest.mark.parametrize("short_circuit", [True, False], ids=["shorted", ""]) @@ -167,10 +165,9 @@ def test_x25519( "mult_args", [ (LadderMultiplier, "ladd-1987-m", "dbl-1987-m", "scale"), - (SwapLadderMultiplier, "ladd-1987-m", "dbl-1987-m", "scale"), (DifferentialLadderMultiplier, "dadd-1987-m", "dbl-1987-m", "scale"), ], - ids=["ladd", "swap", "diff"] + ids=["ladd", "diff"] ) @pytest.mark.parametrize("complete", [True, False], ids=["complete", ""]) @pytest.mark.parametrize("short_circuit", [True, False], ids=["shorted", ""]) diff --git a/test/ec/test_mult.py b/test/ec/test_mult.py index e65dfdd..a7719dc 100644 --- a/test/ec/test_mult.py +++ b/test/ec/test_mult.py @@ -23,11 +23,9 @@ from pyecsca.ec.mult import ( BGMWMultiplier, CombMultiplier, WindowBoothMultiplier, - SwapLadderMultiplier, ) from pyecsca.ec.mult.fixed import FullPrecompMultiplier from pyecsca.ec.point import InfinityPoint, Point -from pyecsca.sca import MultipleContext def get_formulas(coords, *names): @@ -235,57 +233,29 @@ def test_simple_ladder(secp128r1, add, dbl, scale): 0x1000000000000000000000000000000014DEF9DEA2F79CD65812631A5CF5D3ED - 1, ], ) -@pytest.mark.parametrize("complete", [True, False]) -@pytest.mark.parametrize("short_circuit", [True, False]) -def test_ladder_swap(curve25519, num, complete, short_circuit): - ladder = LadderMultiplier( - curve25519.curve.coordinate_model.formulas["ladd-1987-m"], - curve25519.curve.coordinate_model.formulas["dbl-1987-m"], - curve25519.curve.coordinate_model.formulas["scale"], - complete=complete, - short_circuit=short_circuit, - ) - swap = SwapLadderMultiplier( - curve25519.curve.coordinate_model.formulas["ladd-1987-m"], - curve25519.curve.coordinate_model.formulas["dbl-1987-m"], - curve25519.curve.coordinate_model.formulas["scale"], - complete=complete, - short_circuit=short_circuit, - ) - ladder.init(curve25519, curve25519.generator) - res_ladder = ladder.multiply(num) - swap.init(curve25519, curve25519.generator) - res_swap = swap.multiply(num) - assert res_ladder == res_swap - assert curve25519.curve.neutral == swap.multiply(0) - - -@pytest.mark.parametrize( - "num", - [ - 15, - 2355498743, - 325385790209017329644351321912443757746, - 0x1000000000000000000000000000000014DEF9DEA2F79CD65812631A5CF5D3ED - 1, - ], -) -@pytest.mark.parametrize("complete", [True, False]) -@pytest.mark.parametrize("short_circuit", [True, False]) -def test_ladder_differential(curve25519, num, complete, short_circuit): - ladder = LadderMultiplier( - curve25519.curve.coordinate_model.formulas["ladd-1987-m"], - curve25519.curve.coordinate_model.formulas["dbl-1987-m"], - curve25519.curve.coordinate_model.formulas["scale"], - complete=complete, - short_circuit=short_circuit, - ) - differential = DifferentialLadderMultiplier( - curve25519.curve.coordinate_model.formulas["dadd-1987-m"], - curve25519.curve.coordinate_model.formulas["dbl-1987-m"], - curve25519.curve.coordinate_model.formulas["scale"], - complete=complete, - short_circuit=short_circuit, - ) +@pytest.mark.parametrize("complete", [True, False], ids=["complete", ""]) +@pytest.mark.parametrize("short_circuit", [True, False], ids=["shorted", ""]) +@pytest.mark.parametrize("full", [True, False], ids=["full", ""]) +def test_ladder_differential(curve25519, num, complete, short_circuit, full): + try: + ladder = LadderMultiplier( + curve25519.curve.coordinate_model.formulas["ladd-1987-m"], + curve25519.curve.coordinate_model.formulas["dbl-1987-m"], + curve25519.curve.coordinate_model.formulas["scale"], + complete=complete, + short_circuit=short_circuit, + full=full + ) + differential = DifferentialLadderMultiplier( + curve25519.curve.coordinate_model.formulas["dadd-1987-m"], + curve25519.curve.coordinate_model.formulas["dbl-1987-m"], + curve25519.curve.coordinate_model.formulas["scale"], + complete=complete, + short_circuit=short_circuit, + full=full + ) + except ValueError: + return ladder.init(curve25519, curve25519.generator) res_ladder = ladder.multiply(num) differential.init(curve25519, curve25519.generator) diff --git a/test/sca/test_rpa.py b/test/sca/test_rpa.py index 8924eae..d87e248 100644 --- a/test/sca/test_rpa.py +++ b/test/sca/test_rpa.py @@ -20,7 +20,6 @@ from pyecsca.ec.mult import ( CombMultiplier, WindowBoothMultiplier, LadderMultiplier, - SwapLadderMultiplier, DifferentialLadderMultiplier, ) from pyecsca.ec.params import DomainParameters @@ -215,11 +214,8 @@ def test_distinguish_ladders(curve25519): multipliers = [ LadderMultiplier(ladd, None, None, True, False, False), - SwapLadderMultiplier(ladd, None, None, True, False, False), LadderMultiplier(ladd, dbl, None, False, False, False), - SwapLadderMultiplier(ladd, dbl, None, False, False, False), LadderMultiplier(ladd, None, None, False, False, True), - SwapLadderMultiplier(ladd, None, None, False, False, True), DifferentialLadderMultiplier(dadd, dbl, None, True, False, False), DifferentialLadderMultiplier(dadd, dbl, None, False, False, True), DifferentialLadderMultiplier(dadd, dbl, None, False, False, False), diff --git a/test/sca/test_rpa_context.py b/test/sca/test_rpa_context.py index 78191bc..fdb4788 100644 --- a/test/sca/test_rpa_context.py +++ b/test/sca/test_rpa_context.py @@ -3,14 +3,19 @@ from typing import cast import pytest from pyecsca.ec.context import local -from pyecsca.ec.formula import LadderFormula, DifferentialAdditionFormula, DoublingFormula, \ - ScalingFormula +from pyecsca.ec.formula import ( + LadderFormula, + DifferentialAdditionFormula, + DoublingFormula, + ScalingFormula, +) +from pyecsca.ec.mod import Mod from pyecsca.ec.mult import ( LTRMultiplier, BinaryNAFMultiplier, WindowNAFMultiplier, LadderMultiplier, - DifferentialLadderMultiplier + DifferentialLadderMultiplier, ) from pyecsca.sca.re.rpa import MultipleContext @@ -35,17 +40,19 @@ def scale(secp128r1): return secp128r1.curve.coordinate_model.formulas["z"] -@pytest.mark.parametrize("name,scalar", - [ - ("5", 5), - ("10", 10), - ("2355498743", 2355498743), - ( - "325385790209017329644351321912443757746", - 325385790209017329644351321912443757746, - ), - ("13613624287328732", 13613624287328732), - ]) +@pytest.mark.parametrize( + "name,scalar", + [ + ("5", 5), + ("10", 10), + ("2355498743", 2355498743), + ( + "325385790209017329644351321912443757746", + 325385790209017329644351321912443757746, + ), + ("13613624287328732", 13613624287328732), + ], +) def test_basic(secp128r1, add, dbl, scale, name, scalar): mult = LTRMultiplier( add, @@ -77,9 +84,7 @@ def test_precomp(secp128r1, add, dbl, neg, scale): def test_window(secp128r1, add, dbl, neg): - mult = WindowNAFMultiplier( - add, dbl, neg, 3, precompute_negation=True - ) + mult = WindowNAFMultiplier(add, dbl, neg, 3, precompute_negation=True) with local(MultipleContext()): mult.init(secp128r1, secp128r1.generator) mult.multiply(5) @@ -92,12 +97,14 @@ def test_ladder(curve25519): dadd = cast(DifferentialAdditionFormula, coords.formulas["dadd-1987-m"]) dbl = cast(DoublingFormula, coords.formulas["dbl-1987-m"]) scale = cast(ScalingFormula, coords.formulas["scale"]) + ladd_mult = LadderMultiplier(ladd, dbl, scale) with local(MultipleContext()) as ctx: ladd_mult.init(curve25519, base) ladd_mult.multiply(1339278426732672313) muls = list(ctx.points.values()) assert muls[-2] == 1339278426732672313 + dadd_mult = DifferentialLadderMultiplier(dadd, dbl, scale) with local(MultipleContext()) as ctx: dadd_mult.init(curve25519, base) |
