diff options
| author | J08nY | 2023-08-29 23:28:30 +0200 |
|---|---|---|
| committer | J08nY | 2023-08-29 23:28:30 +0200 |
| commit | a62beef76338fa2507f716bca03415933c2e48b5 (patch) | |
| tree | 9042284b904772ccb49366482f9a5984bec79167 | |
| parent | 7809d55dac443b09655866dd484f2e0c93ae8e9f (diff) | |
| download | pyecsca-a62beef76338fa2507f716bca03415933c2e48b5.tar.gz pyecsca-a62beef76338fa2507f716bca03415933c2e48b5.tar.zst pyecsca-a62beef76338fa2507f716bca03415933c2e48b5.zip | |
More docs.
| -rw-r--r-- | pyecsca/sca/attack/__init__.py | 2 | ||||
| -rw-r--r-- | pyecsca/sca/attack/leakage_model.py | 11 | ||||
| -rw-r--r-- | pyecsca/sca/re/zvp.py | 2 |
3 files changed, 15 insertions, 0 deletions
diff --git a/pyecsca/sca/attack/__init__.py b/pyecsca/sca/attack/__init__.py index 23e27cb..0748486 100644 --- a/pyecsca/sca/attack/__init__.py +++ b/pyecsca/sca/attack/__init__.py @@ -1 +1,3 @@ +"""Package for attacks.""" + from .leakage_model import * diff --git a/pyecsca/sca/attack/leakage_model.py b/pyecsca/sca/attack/leakage_model.py index f9adcff..87f32f0 100644 --- a/pyecsca/sca/attack/leakage_model.py +++ b/pyecsca/sca/attack/leakage_model.py @@ -1,3 +1,6 @@ +""" +Provides leakage models to simulate leakage. +""" import abc import sys from typing import Literal, ClassVar @@ -46,15 +49,18 @@ class NormalNoice(Noise): @public class LeakageModel(abc.ABC): + """An abstract leakage model.""" num_args: ClassVar[int] @abc.abstractmethod def __call__(self, *args, **kwargs) -> int: + """Get the leakage from the arg(s).""" raise NotImplementedError @public class Identity(LeakageModel): + """Identity leakage model, leaks the thing itself.""" num_args = 1 def __call__(self, *args, **kwargs) -> int: @@ -63,6 +69,7 @@ class Identity(LeakageModel): @public class Bit(LeakageModel): + """Bit leakage model, leaks a selected bit.""" num_args = 1 def __init__(self, which: int): @@ -77,6 +84,7 @@ class Bit(LeakageModel): @public class Slice(LeakageModel): + """Slice leakage model, leaks a slice of bits.""" num_args = 1 def __init__(self, begin: int, end: int): @@ -94,6 +102,7 @@ class Slice(LeakageModel): @public class HammingWeight(LeakageModel): + """Hamming-weight leakage model, leaks the Hamming-weight of the thing.""" num_args = 1 def __call__(self, *args, **kwargs) -> int: @@ -102,6 +111,7 @@ class HammingWeight(LeakageModel): @public class HammingDistance(LeakageModel): + """Hamming-distance leakage model, leaks the Hamming-distance between the two things.""" num_args = 2 def __call__(self, *args, **kwargs) -> int: @@ -110,6 +120,7 @@ class HammingDistance(LeakageModel): @public class BitLength(LeakageModel): + """Bit-length leakage model, leaks the bit-length of the thing.""" num_args = 1 def __call__(self, *args, **kwargs) -> int: diff --git a/pyecsca/sca/re/zvp.py b/pyecsca/sca/re/zvp.py index b6e5fd0..9a9902f 100644 --- a/pyecsca/sca/re/zvp.py +++ b/pyecsca/sca/re/zvp.py @@ -3,6 +3,8 @@ Provides functionality inspired by the Zero-value point attack. Zero-Value Point Attacks on Elliptic Curve Cryptosystem, Toru Akishita & Tsuyoshi Takagi , ISC '03 `<https://doi.org/10.1007/10958513_17>`_ + +Implements ZVP point construction from [FFD]_. """ from typing import List, Set from public import public |
