aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorJ08nY2024-08-23 17:33:03 +0200
committerJ08nY2024-08-23 17:33:03 +0200
commitd0ac8b2a760befbe6634fa0b7700ee34c648646b (patch)
treeb85c36a00d76a859b4a721e678111b3fd431a693 /docs
parent7c8569a7afe437beba603af77ca2c06f19860df5 (diff)
downloadpyecsca-d0ac8b2a760befbe6634fa0b7700ee34c648646b.tar.gz
pyecsca-d0ac8b2a760befbe6634fa0b7700ee34c648646b.tar.zst
pyecsca-d0ac8b2a760befbe6634fa0b7700ee34c648646b.zip
Diffstat (limited to 'docs')
-rw-r--r--docs/_static/pyecsca_ches24.pdfbin0 -> 788757 bytes
-rw-r--r--docs/conf.py2
-rw-r--r--docs/index.rst1
-rw-r--r--docs/libraries.rst4
-rw-r--r--docs/papers.rst59
-rw-r--r--docs/references.rst4
6 files changed, 65 insertions, 5 deletions
diff --git a/docs/_static/pyecsca_ches24.pdf b/docs/_static/pyecsca_ches24.pdf
new file mode 100644
index 0000000..06e64b2
--- /dev/null
+++ b/docs/_static/pyecsca_ches24.pdf
Binary files differ
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/