Pyecsca: Python Elliptic Curve Side-Channel Analysis toolkit

Project Name: pyecsca
Keywords: ecc, sca, PicoScope, ChipWhisperer, Inspector
Brief Description:

Python Elliptic Curve cryptography Side-Channel Analysis toolkit.

pyecsca aims to fill a gap in SCA tooling for Elliptic Curve Cryptography, it focuses on black-box implementations of ECC and presents a way to extract implementation information about a black-box implementation of ECC through side-channels.

It currently provides:

Enumeration

Enumeration of millions of possible ECC implementation configurations (see Configuration space)

Simulation

Simulation and execution tracing of key generation, ECDH and ECDSA (see Simulation)

Code generation

Synthesis of C implementations of ECC for embedded devices, given any implementation configuration (see Code generation), CPU-level emulation of implementations (see Emulation and leakage simulation)

Trace acquisition

Trace acquisition using PicoScope/ChipWhisperer oscilloscopes (see Measurement)

Trace processing

Trace processing capabilities, e.g. signal-processing, filtering, averaging, cutting, aligning (pyecsca.sca package)

Trace visualization

Trace visualization using holoviews and datashader (see Visualization)

Smartcard communication

Communication via PCSC/LEIA with a smartcard target (see Smartcards)

Reverse-engineering

Reverse-engineering of black-box ECC via RPA-RE and ZVP-RE methods (see RPA-based reverse-engineering and ZVP-based reverse-engineering)

Link to Repository: https://pyecsca.org/