Add ECC docs

This commit is contained in:
gbucchino
2026-02-18 12:36:14 +01:00
parent 16efeaec2d
commit 11041d3180
17 changed files with 1779 additions and 180 deletions
+11 -9
View File
@@ -52,6 +52,8 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../ecc/">Elliptic Curve Cryptography</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Public Keys</span></p>
<ul>
@@ -115,7 +117,7 @@
<div class="doc doc-children">
<div class="doc doc-children">
@@ -198,7 +200,7 @@ And for each 1 bit, we compute the exponent.</p>
</tbody>
</table>
<details class="quote">
<details class="mkdocstrings-source">
<summary>Source code in <code>Cryptotools/Utils/utils.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">35</span>
<span class="normal">36</span>
@@ -227,7 +229,7 @@ And for each 1 bit, we compute the exponent.</p>
<span class="normal">59</span>
<span class="normal">60</span>
<span class="normal">61</span>
<span class="normal">62</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">bin_expo</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<span class="normal">62</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">bin_expo</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> This function perform an binary exponentiation, also known as Exponentiation squaring.</span>
<span class="sd"> A binary exponentiation is the process for computing an integer power of a number, such as a ** n.</span>
@@ -309,7 +311,7 @@ https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm</p>
</tbody>
</table>
<details class="quote">
<details class="mkdocstrings-source">
<summary>Source code in <code>Cryptotools/Utils/utils.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">18</span>
<span class="normal">19</span>
@@ -326,7 +328,7 @@ https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm</p>
<span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">egcd</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">):</span>
<span class="normal">33</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">egcd</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> This function compute the Extended Euclidean algorithm</span>
<span class="sd"> https://user.eng.umd.edu/~danadach/Cryptography_20/ExtEuclAlg.pdf</span>
@@ -399,7 +401,7 @@ https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm</p>
</tbody>
</table>
<details class="quote">
<details class="mkdocstrings-source">
<summary>Source code in <code>Cryptotools/Utils/utils.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">64</span>
<span class="normal">65</span>
@@ -421,7 +423,7 @@ https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm</p>
<span class="normal">81</span>
<span class="normal">82</span>
<span class="normal">83</span>
<span class="normal">84</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">exponent_squaring</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">e</span><span class="p">):</span>
<span class="normal">84</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">exponent_squaring</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">e</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> This function perform an exponentiation squaring, which compute an integer power of a number based on the following algorithm:</span>
<span class="sd"> n ** e = {</span>
@@ -470,7 +472,7 @@ Args:
<p>the GCD</p>
</details>
<details class="quote">
<details class="mkdocstrings-source">
<summary>Source code in <code>Cryptotools/Utils/utils.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 3</span>
<span class="normal"> 4</span>
@@ -485,7 +487,7 @@ Args:
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">gcd</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">):</span>
<span class="normal">16</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">gcd</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> This function calculate the GCD (Greatest Common Divisor of the number a of b</span>
<span class="sd"> Args:</span>