diff options
| author | J08nY | 2024-06-17 16:38:34 +0200 |
|---|---|---|
| committer | J08nY | 2024-06-17 16:38:34 +0200 |
| commit | 2dfb1fd23ea8e9ac7146fd46ec21f7d53a3b513a (patch) | |
| tree | 990c97cc17db2f587661133bc7debb0f7d595a90 /docs | |
| parent | 2e9b227ba65a8de32bcc2fa6b5a222b33b8ff200 (diff) | |
| download | pyecsca-2dfb1fd23ea8e9ac7146fd46ec21f7d53a3b513a.tar.gz pyecsca-2dfb1fd23ea8e9ac7146fd46ec21f7d53a3b513a.tar.zst pyecsca-2dfb1fd23ea8e9ac7146fd46ec21f7d53a3b513a.zip | |
Make docs beautiful again.
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/api.rst | 12 | ||||
| -rw-r--r-- | docs/index.rst | 158 | ||||
| -rw-r--r-- | docs/installation.rst | 112 | ||||
| -rw-r--r-- | docs/libraries.rst | 6 | ||||
| -rw-r--r-- | docs/notebooks.rst | 21 | ||||
| -rw-r--r-- | docs/references.rst | 8 |
6 files changed, 161 insertions, 156 deletions
diff --git a/docs/api.rst b/docs/api.rst new file mode 100644 index 0000000..b9e6700 --- /dev/null +++ b/docs/api.rst @@ -0,0 +1,12 @@ +========================= +:fas:`code;fa-fw` API reference +========================= + +.. toctree:: + :titlesonly: + :maxdepth: 3 + + api/pyecsca.ec + api/pyecsca.misc + api/pyecsca.sca + api/pyecsca.codegen diff --git a/docs/index.rst b/docs/index.rst index 9680bb5..d51915b 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -55,6 +55,10 @@ It currently provides: Communication via PCSC/LEIA with a smartcard target (see :doc:`notebook/smartcards`) +.. card:: Reverse-engineering + + Reverse-engineering of black-box ECC via RPA-RE and ZVP-RE methods (see :doc:`notebook/re/rpa` and :doc:`notebook/re/zvp`) + **pyecsca** consists of three repositories: .. grid:: 3 @@ -74,123 +78,18 @@ It currently provides: The `notebook <https://github.com/J08nY/pyecsca-notebook>`_ repository contains example notebooks that showcase functionality of the toolkit. - -:fas:`book` Notebooks -========================= -The notebooks below contain a showcase of what is possible using **pyecsca** and -are the best source of documentation on how to use **pyecsca**. - .. toctree:: - :caption: Notebooks + :hidden: :titlesonly: - :maxdepth: 1 - - notebook/configuration_space - notebook/simulation - notebook/codegen - notebook/emulator - notebook/measurement - notebook/visualization - notebook/smartcards - notebook/re/formulas - notebook/re/rpa - notebook/re/zvp - notebook/re/epa - - -:fas:`code` API reference -========================= - -.. toctree:: - :caption: API reference - :titlesonly: - :maxdepth: 3 - - api/pyecsca.ec - api/pyecsca.misc - api/pyecsca.sca - api/pyecsca.codegen - -:fas:`file` Miscellaneous -========================= - -.. toctree:: - :caption: Miscellaneous - :titlesonly: - :maxdepth: 1 + :maxdepth: 2 + installation + notebooks + api libraries references -Requirements -============ - -.. dropdown:: General - - - Numpy_ - - Scipy_ - - sympy_ - - pandas_ - - atpublic_ - - fastdtw_ - - asn1crypto_ - - h5py_ - - holoviews_ - - bokeh_ - - datashader_ - - matplotlib_ - - xarray_ - - astunparse_ - - numba_ - - - **Optionally**: - - - **Oscilloscope support:** - - - picosdk_ - - picoscope_ - - chipwhisperer_ - - **Smartcard support:** - - - pyscard_ - - **LEIA support:** - - - leia_ - - **Faster arithmetic:** - - - gmpy2_ (and also GMP library) - - cypari2_ (and also PARI library) - - *pyecsca* contains data from the `Explicit-Formulas Database`_ by Daniel J. Bernstein and Tanja Lange. - The data was partially changed, to make working with it easier. It is available on Github at `crocs-muni/efd`_. - - It uses `ChipWhisperer`_ as one of its targets. It also supports working with Riscure_ Inspector trace sets, which are of a proprietary format. - - -.. dropdown:: Testing & Development - - See the Makefile for tests, performance measurement, codestyle and type checking commands. - Use black_ for code-formatting. - - - pytest_ - - mypy_ - - flake8_ - - coverage_ - - interrogate_ - - pyinstrument_ - - pre-commit_ - - black_ - - -.. dropdown:: Docs - - - sphinx_ - - sphinx-autodoc-typehints_ - - nbsphinx_ - - sphinx-paramlinks_ - - sphinx-design_ - License ======= @@ -222,42 +121,3 @@ Thanks alot to contributors: Tomas Jusko, Andrej Batora, Vojtech Suchanek and to ChipWhisperer/NewAE. Development was supported by the Masaryk University grant `MUNI/C/1707/2018 <https://www.muni.cz/en/research/projects/46834>`_. - -.. _Numpy: https://www.numpy.org -.. _Scipy: https://www.scipy.org -.. _sympy: https://sympy.org/ -.. _pandas: https://pandas.pydata.org/ -.. _matplotlib: https://matplotlib.org/ -.. _atpublic: https://public.readthedocs.io/ -.. _fastdtw: https://github.com/slaypni/fastdtw -.. _asn1crypto: https://github.com/wbond/asn1crypto -.. _h5py: https://www.h5py.org/ -.. _holoviews: https://holoviews.org -.. _bokeh: https://bokeh.org -.. _datashader: https://datashader.org -.. _xarray: https://xarray.pydata.org/en/stable/ -.. _astunparse: https://astunparse.readthedocs.io/ -.. _numba: https://numba.pydata.org/ -.. _picosdk: https://github.com/picotech/picosdk-python-wrappers/ -.. _picoscope: https://github.com/colinoflynn/pico-python -.. _pyscard: https://pyscard.sourceforge.io/ -.. _leia: https://pypi.org/project/smartleia/ -.. _gmpy2: https://gmpy2.readthedocs.io/ -.. _cypari2: https://cypari2.readthedocs.io/ -.. _pytest: https://pytest.org -.. _mypy: http://mypy-lang.org/ -.. _flake8: https://flake8.pycqa.org/ -.. _coverage: https://coverage.readthedocs.io/ -.. _interrogate: https://interrogate.readthedocs.io/ -.. _pyinstrument: https://github.com/joerick/pyinstrument/ -.. _pre-commit: https://pre-commit.com -.. _black: https://github.com/psf/black -.. _sphinx: https://www.sphinx-doc.org/ -.. _sphinx-autodoc-typehints: https://pypi.org/project/sphinx-autodoc-typehints/ -.. _nbsphinx: https://nbsphinx.readthedocs.io/ -.. _sphinx-paramlinks: https://pypi.org/project/sphinx-paramlinks/ -.. _sphinx-design: https://pypi.org/project/sphinx_design/ -.. _Explicit-Formulas Database: https://www.hyperelliptic.org/EFD/index.html -.. _crocs-muni/efd: https://github.com/crocs-muni/efd -.. _ChipWhisperer: https://chipwhisperer.com -.. _Riscure: https://www.riscure.com/ diff --git a/docs/installation.rst b/docs/installation.rst new file mode 100644 index 0000000..d973a02 --- /dev/null +++ b/docs/installation.rst @@ -0,0 +1,112 @@ +============================================ +:fas:`screwdriver-wrench;fa-fw` Installation +============================================ + +Requirements +============ + +.. dropdown:: General + :open: + + - Numpy_ + - Scipy_ + - sympy_ + - pandas_ + - atpublic_ + - fastdtw_ + - asn1crypto_ + - h5py_ + - holoviews_ + - bokeh_ + - datashader_ + - matplotlib_ + - xarray_ + - astunparse_ + - numba_ + + - **Optionally**: + + - **Oscilloscope support:** + + - picosdk_ + - picoscope_ + - chipwhisperer_ + - **Smartcard support:** + + - pyscard_ + - **LEIA support:** + + - leia_ + - **Faster arithmetic:** + + - gmpy2_ (and also GMP library) + - cypari2_ (and also PARI library) + + *pyecsca* contains data from the `Explicit-Formulas Database`_ by Daniel J. Bernstein and Tanja Lange. + The data was partially changed, to make working with it easier. It is available on Github at `crocs-muni/efd`_. + + It uses `ChipWhisperer`_ as one of its targets. It also supports working with Riscure_ Inspector trace sets, which are of a proprietary format. + + +.. dropdown:: Testing & Development + + See the Makefile for tests, performance measurement, codestyle and type checking commands. + Use black_ for code-formatting. + + - pytest_ + - mypy_ + - flake8_ + - coverage_ + - interrogate_ + - pyinstrument_ + - pre-commit_ + - black_ + + +.. dropdown:: Docs + + - sphinx_ + - sphinx-autodoc-typehints_ + - nbsphinx_ + - sphinx-paramlinks_ + - sphinx-design_ + + +.. _Numpy: https://www.numpy.org +.. _Scipy: https://www.scipy.org +.. _sympy: https://sympy.org/ +.. _pandas: https://pandas.pydata.org/ +.. _matplotlib: https://matplotlib.org/ +.. _atpublic: https://public.readthedocs.io/ +.. _fastdtw: https://github.com/slaypni/fastdtw +.. _asn1crypto: https://github.com/wbond/asn1crypto +.. _h5py: https://www.h5py.org/ +.. _holoviews: https://holoviews.org +.. _bokeh: https://bokeh.org +.. _datashader: https://datashader.org +.. _xarray: https://xarray.pydata.org/en/stable/ +.. _astunparse: https://astunparse.readthedocs.io/ +.. _numba: https://numba.pydata.org/ +.. _picosdk: https://github.com/picotech/picosdk-python-wrappers/ +.. _picoscope: https://github.com/colinoflynn/pico-python +.. _pyscard: https://pyscard.sourceforge.io/ +.. _leia: https://pypi.org/project/smartleia/ +.. _gmpy2: https://gmpy2.readthedocs.io/ +.. _cypari2: https://cypari2.readthedocs.io/ +.. _pytest: https://pytest.org +.. _mypy: http://mypy-lang.org/ +.. _flake8: https://flake8.pycqa.org/ +.. _coverage: https://coverage.readthedocs.io/ +.. _interrogate: https://interrogate.readthedocs.io/ +.. _pyinstrument: https://github.com/joerick/pyinstrument/ +.. _pre-commit: https://pre-commit.com +.. _black: https://github.com/psf/black +.. _sphinx: https://www.sphinx-doc.org/ +.. _sphinx-autodoc-typehints: https://pypi.org/project/sphinx-autodoc-typehints/ +.. _nbsphinx: https://nbsphinx.readthedocs.io/ +.. _sphinx-paramlinks: https://pypi.org/project/sphinx-paramlinks/ +.. _sphinx-design: https://pypi.org/project/sphinx_design/ +.. _Explicit-Formulas Database: https://www.hyperelliptic.org/EFD/index.html +.. _crocs-muni/efd: https://github.com/crocs-muni/efd +.. _ChipWhisperer: https://chipwhisperer.com +.. _Riscure: https://www.riscure.com/ diff --git a/docs/libraries.rst b/docs/libraries.rst index 63a8c66..abee51b 100644 --- a/docs/libraries.rst +++ b/docs/libraries.rst @@ -1,6 +1,6 @@ -================ -ECC in Libraries -================ +============================== +:fas:`server;fa-fw` ECC in Libraries +============================== .. contents:: Table of Contents :backlinks: none diff --git a/docs/notebooks.rst b/docs/notebooks.rst new file mode 100644 index 0000000..e4d3466 --- /dev/null +++ b/docs/notebooks.rst @@ -0,0 +1,21 @@ +===================== +:fas:`hand-pointer;fa-fw` Notebooks +===================== +The notebooks below contain a showcase of what is possible using **pyecsca** and +are the best source of documentation on how to use **pyecsca**. + +.. toctree:: + :titlesonly: + :maxdepth: 1 + + notebook/configuration_space + notebook/simulation + notebook/codegen + notebook/emulator + notebook/measurement + notebook/visualization + notebook/smartcards + notebook/re/formulas + notebook/re/rpa + notebook/re/zvp + notebook/re/epa diff --git a/docs/references.rst b/docs/references.rst index 675a13a..c5ae1e1 100644 --- a/docs/references.rst +++ b/docs/references.rst @@ -1,6 +1,6 @@ -========== -References -========== +========================== +:fas:`asterisk;fa-fw` References +========================== .. [STD] Standard Curve Database, https://neuromancer.sk/std/ .. [EFD] Explicit Formulas Database, https://hyperelliptic.org/EFD/ @@ -17,4 +17,4 @@ References .. [DJB02] D.J. Bernstein: Pippenger's Exponentiation Algorithm, https://cr.yp.to/papers/pippenger.pdf .. [SG14] Shay Gueron & Vlad Krasnov. Fast prime field elliptic-curve cryptography with 256-bit primes, https://link.springer.com/article/10.1007/s13389-014-0090-x .. [B51] Andrew D. Booth. A signed binary multiplication technique. -.. [M61] O. L. Macsorley. High-speed arithmetic in binary computers. +.. [M61] O.L. Macsorley. High-speed arithmetic in binary computers. |
