diff options
| author | J08nY | 2024-08-23 17:33:03 +0200 |
|---|---|---|
| committer | J08nY | 2024-08-23 17:33:03 +0200 |
| commit | d0ac8b2a760befbe6634fa0b7700ee34c648646b (patch) | |
| tree | b85c36a00d76a859b4a721e678111b3fd431a693 | |
| parent | 7c8569a7afe437beba603af77ca2c06f19860df5 (diff) | |
| download | pyecsca-d0ac8b2a760befbe6634fa0b7700ee34c648646b.tar.gz pyecsca-d0ac8b2a760befbe6634fa0b7700ee34c648646b.tar.zst pyecsca-d0ac8b2a760befbe6634fa0b7700ee34c648646b.zip | |
| -rw-r--r-- | docs/_static/pyecsca_ches24.pdf | bin | 0 -> 788757 bytes | |||
| -rw-r--r-- | docs/conf.py | 2 | ||||
| -rw-r--r-- | docs/index.rst | 1 | ||||
| -rw-r--r-- | docs/libraries.rst | 4 | ||||
| -rw-r--r-- | docs/papers.rst | 59 | ||||
| -rw-r--r-- | docs/references.rst | 4 |
6 files changed, 65 insertions, 5 deletions
diff --git a/docs/_static/pyecsca_ches24.pdf b/docs/_static/pyecsca_ches24.pdf Binary files differnew file mode 100644 index 0000000..06e64b2 --- /dev/null +++ b/docs/_static/pyecsca_ches24.pdf diff --git a/docs/conf.py b/docs/conf.py index 762f67c..d47f4fc 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -58,7 +58,7 @@ templates_path = ['_templates'] # You can specify multiple suffix as a list of string: # # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = {'.rst': 'restructuredtext'} # The master toctree document. master_doc = 'index' diff --git a/docs/index.rst b/docs/index.rst index 188d6f0..9ef1935 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -91,6 +91,7 @@ To learn more about the toolkit you can check out two tutorials on it. notebooks api libraries + papers references diff --git a/docs/libraries.rst b/docs/libraries.rst index abee51b..4b95132 100644 --- a/docs/libraries.rst +++ b/docs/libraries.rst @@ -1,6 +1,6 @@ -============================== +==================================== :fas:`server;fa-fw` ECC in Libraries -============================== +==================================== .. contents:: Table of Contents :backlinks: none diff --git a/docs/papers.rst b/docs/papers.rst new file mode 100644 index 0000000..11782a4 --- /dev/null +++ b/docs/papers.rst @@ -0,0 +1,59 @@ +============================ +:fas:`file-alt;fa-fw` Papers +============================ + +pyecsca: Reverse engineering black-box elliptic curve cryptography via side-channel analysis +============================================================================================ + +Jan Jancar, Vojtech Suchanek, Petr Svenda, Vladimir Sedlacek, Lukasz Chmielewski + +`CHES 2024, Halifax, Canada <https://ches.iacr.org/2024/>`_ + +.. grid:: + :margin: 2 0 0 2 + :padding: 2 0 0 2 + + .. grid-item:: + :columns: auto + + .. button-link:: _static/pyecsca_ches24.pdf + :color: primary + + :fas:`file-alt;fa-fw` Preprint + + .. grid-item:: + :columns: auto + + .. button-link:: https://github.com/J08nY/pyecsca-artifact + :color: primary + + :fas:`file-zipper;fa-fw` Artifact + +Abstract +-------- + +Side-channel attacks on elliptic curve cryptography (ECC) often assume a +white-box attacker who has detailed knowledge of the implementation choices taken +by the target implementation. Due to the complex and layered nature of ECC, there +are many choices that a developer makes to obtain a functional and interoperable +implementation. These include the curve model, coordinate system, addition formulas, +and the scalar multiplier, or lower-level details such as the finite-field multiplication +algorithm. This creates a gap between the attack requirements and a real-world +attacker that often only has black-box access to the target – i.e., has no access to +the source code nor knowledge of specific implementation choices made. Yet, when +the gap is closed, even real-world implementations of ECC succumb to side-channel +attacks, as evidenced by attacks such as TPM-Fail, Minerva, the Side Journey to +Titan, or TPMScan. + +We study this gap by first analyzing open-source ECC libraries for insight into real- +world implementation choices. We then examine the space of all ECC implementations +combinatorially. Finally, we present a set of novel methods for automated reverse +engineering of black-box ECC implementations and release a documented and usable +open-source toolkit for side-channel analysis of ECC called **pyecsca**. + +Our methods turn attacks around: instead of attempting to recover the private key, +they attempt to recover the implementation configuration given control over the +private and public inputs. We evaluate them on two simulation levels and study the +effect of noise on their performance. Our methods are able to 1) reverse-engineer +the scalar multiplication algorithm completely and 2) infer significant information +about the coordinate system and addition formulas used in a target implementation diff --git a/docs/references.rst b/docs/references.rst index c5ae1e1..9533448 100644 --- a/docs/references.rst +++ b/docs/references.rst @@ -1,6 +1,6 @@ -========================== +================================ :fas:`asterisk;fa-fw` References -========================== +================================ .. [STD] Standard Curve Database, https://neuromancer.sk/std/ .. [EFD] Explicit Formulas Database, https://hyperelliptic.org/EFD/ |
