Add ECC docs
This commit is contained in:
parent
16efeaec2d
commit
11041d3180
3
docs/ecc.md
Normal file
3
docs/ecc.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Elliptic Curve Cryptography
|
||||||
|
|
||||||
|
::: Cryptotools.Groups.elliptic
|
||||||
@ -6,6 +6,7 @@
|
|||||||
* [Number Theory](/number-theory)
|
* [Number Theory](/number-theory)
|
||||||
* [Group Theory](/group-theory)
|
* [Group Theory](/group-theory)
|
||||||
* [Curves](/curves)
|
* [Curves](/curves)
|
||||||
|
* [Elliptic Curve Cryptography](/ecc)
|
||||||
* Public Keys:
|
* Public Keys:
|
||||||
* [RSA](/rsa)
|
* [RSA](/rsa)
|
||||||
* Utils
|
* Utils
|
||||||
|
|||||||
@ -12,6 +12,7 @@ nav:
|
|||||||
- Number theory: number-theory.md
|
- Number theory: number-theory.md
|
||||||
- Group theory: group-theory.md
|
- Group theory: group-theory.md
|
||||||
- Curves: curves.md
|
- Curves: curves.md
|
||||||
|
- Elliptic Curve Cryptography: ecc.md
|
||||||
- Public Keys:
|
- Public Keys:
|
||||||
- RSA: rsa.md
|
- RSA: rsa.md
|
||||||
- Utils:
|
- Utils:
|
||||||
|
|||||||
@ -45,6 +45,8 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="/curves/">Curves</a>
|
<li class="toctree-l1"><a class="reference internal" href="/curves/">Curves</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="/ecc/">Elliptic Curve Cryptography</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
|
|||||||
@ -74,6 +74,8 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../ecc/">Elliptic Curve Cryptography</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
@ -136,7 +138,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="doc doc-children">
|
<div class="doc doc-children">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -160,6 +162,7 @@
|
|||||||
<div class="doc doc-contents ">
|
<div class="doc doc-contents ">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p>This simple class represent the Point at the coordinate x and y in a plan</p>
|
<p>This simple class represent the Point at the coordinate x and y in a plan</p>
|
||||||
|
|
||||||
|
|
||||||
@ -200,7 +203,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<details class="quote">
|
<details class="quote">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/point.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/point.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 4</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 4</span>
|
||||||
@ -233,7 +235,7 @@
|
|||||||
<span class="normal">31</span>
|
<span class="normal">31</span>
|
||||||
<span class="normal">32</span>
|
<span class="normal">32</span>
|
||||||
<span class="normal">33</span>
|
<span class="normal">33</span>
|
||||||
<span class="normal">34</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span> <span class="nc">Point</span><span class="p">:</span>
|
<span class="normal">34</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Point</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This simple class represent the Point at the coordinate x and y in a plan</span>
|
<span class="sd"> This simple class represent the Point at the coordinate x and y in a plan</span>
|
||||||
|
|
||||||
@ -241,27 +243,27 @@
|
|||||||
<span class="sd"> x (Integer): Position at the x</span>
|
<span class="sd"> x (Integer): Position at the x</span>
|
||||||
<span class="sd"> y (Integer): Position at the y</span>
|
<span class="sd"> y (Integer): Position at the y</span>
|
||||||
<span class="sd"> """</span>
|
<span class="sd"> """</span>
|
||||||
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_x</span> <span class="o">=</span> <span class="n">x</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_x</span> <span class="o">=</span> <span class="n">x</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_y</span> <span class="o">=</span> <span class="n">y</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_y</span> <span class="o">=</span> <span class="n">y</span>
|
||||||
|
|
||||||
<span class="nd">@property</span>
|
<span class="nd">@property</span>
|
||||||
<span class="k">def</span> <span class="nf">x</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">x</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_x</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_x</span>
|
||||||
|
|
||||||
<span class="nd">@property</span>
|
<span class="nd">@property</span>
|
||||||
<span class="k">def</span> <span class="nf">y</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">y</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_y</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_y</span>
|
||||||
|
|
||||||
<span class="nd">@x</span><span class="o">.</span><span class="n">setter</span>
|
<span class="nd">@x</span><span class="o">.</span><span class="n">setter</span>
|
||||||
<span class="k">def</span> <span class="nf">x</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">x</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_x</span> <span class="o">=</span> <span class="n">x</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_x</span> <span class="o">=</span> <span class="n">x</span>
|
||||||
|
|
||||||
<span class="nd">@y</span><span class="o">.</span><span class="n">setter</span>
|
<span class="nd">@y</span><span class="o">.</span><span class="n">setter</span>
|
||||||
<span class="k">def</span> <span class="nf">y</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">y</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_y</span> <span class="o">=</span> <span class="n">y</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_y</span> <span class="o">=</span> <span class="n">y</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
|
||||||
<span class="nb">print</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_x</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
|
<span class="nb">print</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_x</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_x</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">x</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_y</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">y</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_x</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">x</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_y</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">y</span>
|
||||||
</code></pre></div></td></tr></table></div>
|
</code></pre></div></td></tr></table></div>
|
||||||
@ -269,7 +271,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="doc doc-children">
|
<div class="doc doc-children">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -286,6 +288,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@ -314,7 +317,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="doc doc-children">
|
<div class="doc doc-children">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -498,13 +501,13 @@
|
|||||||
<span class="normal">156</span>
|
<span class="normal">156</span>
|
||||||
<span class="normal">157</span>
|
<span class="normal">157</span>
|
||||||
<span class="normal">158</span>
|
<span class="normal">158</span>
|
||||||
<span class="normal">159</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span> <span class="nc">Curve</span><span class="p">:</span>
|
<span class="normal">159</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Curve</span><span class="p">:</span>
|
||||||
<span class="c1"># Curve</span>
|
<span class="c1"># Curve</span>
|
||||||
<span class="n">WEIERSTRASS</span> <span class="o">=</span> <span class="mi">0</span>
|
<span class="n">WEIERSTRASS</span> <span class="o">=</span> <span class="mi">0</span>
|
||||||
<span class="n">MONTGOMERY</span> <span class="o">=</span> <span class="mi">1</span>
|
<span class="n">MONTGOMERY</span> <span class="o">=</span> <span class="mi">1</span>
|
||||||
|
|
||||||
|
|
||||||
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</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="n">t</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</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="n">t</span><span class="p">):</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_a</span> <span class="o">=</span> <span class="n">a</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_a</span> <span class="o">=</span> <span class="n">a</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_b</span> <span class="o">=</span> <span class="n">b</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_b</span> <span class="o">=</span> <span class="n">b</span>
|
||||||
|
|
||||||
@ -519,7 +522,7 @@
|
|||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_points</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_points</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_pointsSym</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_pointsSym</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">f</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="o">==</span> <span class="n">Curve</span><span class="o">.</span><span class="n">WEIERSTRASS</span><span class="p">:</span>
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="o">==</span> <span class="n">Curve</span><span class="o">.</span><span class="n">WEIERSTRASS</span><span class="p">:</span>
|
||||||
<span class="n">y</span> <span class="o">=</span> <span class="nb">pow</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_a</span> <span class="o">*</span> <span class="n">x</span><span class="p">)</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_b</span>
|
<span class="n">y</span> <span class="o">=</span> <span class="nb">pow</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_a</span> <span class="o">*</span> <span class="n">x</span><span class="p">)</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_b</span>
|
||||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="o">==</span> <span class="n">Curve</span><span class="o">.</span><span class="n">MONTGOMERY</span><span class="p">:</span>
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="o">==</span> <span class="n">Curve</span><span class="o">.</span><span class="n">MONTGOMERY</span><span class="p">:</span>
|
||||||
@ -528,7 +531,7 @@
|
|||||||
<span class="k">return</span> <span class="n">sqrt</span><span class="p">(</span><span class="n">y</span><span class="p">)</span>
|
<span class="k">return</span> <span class="n">sqrt</span><span class="p">(</span><span class="n">y</span><span class="p">)</span>
|
||||||
<span class="k">return</span> <span class="kc">None</span>
|
<span class="k">return</span> <span class="kc">None</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">generatePoints</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">generatePoints</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_xtmp</span><span class="p">:</span>
|
<span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_xtmp</span><span class="p">:</span>
|
||||||
<span class="n">y</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
<span class="n">y</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
||||||
<span class="k">if</span> <span class="n">y</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
<span class="k">if</span> <span class="n">y</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||||
@ -547,24 +550,24 @@
|
|||||||
<span class="p">))</span>
|
<span class="p">))</span>
|
||||||
|
|
||||||
<span class="nd">@property</span>
|
<span class="nd">@property</span>
|
||||||
<span class="k">def</span> <span class="nf">x</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">x</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_x</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_x</span>
|
||||||
|
|
||||||
<span class="nd">@property</span>
|
<span class="nd">@property</span>
|
||||||
<span class="k">def</span> <span class="nf">y</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">y</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_y</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_y</span>
|
||||||
|
|
||||||
<span class="nd">@property</span>
|
<span class="nd">@property</span>
|
||||||
<span class="k">def</span> <span class="nf">yn</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">yn</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_yn</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_yn</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">getPoints</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">getPoints</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_points</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_points</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">getPointsSym</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">getPointsSym</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_pointsSym</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_pointsSym</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">P</span><span class="p">,</span> <span class="n">Q</span><span class="p">)</span> <span class="o">-></span> <span class="n">Point</span><span class="p">:</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">P</span><span class="p">,</span> <span class="n">Q</span><span class="p">)</span> <span class="o">-></span> <span class="n">Point</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function operathe addition operation on two points P and Q</span>
|
<span class="sd"> This function operathe addition operation on two points P and Q</span>
|
||||||
|
|
||||||
@ -611,7 +614,7 @@
|
|||||||
<span class="n">yr</span> <span class="o">=</span> <span class="p">(</span><span class="n">m</span> <span class="o">*</span> <span class="p">(</span><span class="n">P</span><span class="o">.</span><span class="n">x</span> <span class="o">-</span> <span class="n">xr</span><span class="p">))</span> <span class="o">-</span> <span class="n">P</span><span class="o">.</span><span class="n">y</span>
|
<span class="n">yr</span> <span class="o">=</span> <span class="p">(</span><span class="n">m</span> <span class="o">*</span> <span class="p">(</span><span class="n">P</span><span class="o">.</span><span class="n">x</span> <span class="o">-</span> <span class="n">xr</span><span class="p">))</span> <span class="o">-</span> <span class="n">P</span><span class="o">.</span><span class="n">y</span>
|
||||||
<span class="k">return</span> <span class="n">Point</span><span class="p">(</span><span class="n">xr</span><span class="p">,</span> <span class="n">yr</span><span class="p">)</span>
|
<span class="k">return</span> <span class="n">Point</span><span class="p">(</span><span class="n">xr</span><span class="p">,</span> <span class="n">yr</span><span class="p">)</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">scalar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">P</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span> <span class="o">-></span> <span class="n">Point</span><span class="p">:</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">scalar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">P</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span> <span class="o">-></span> <span class="n">Point</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function compute a Scalar Multiplication of P, n time. This algorithm is also known as Double and Add.</span>
|
<span class="sd"> This function compute a Scalar Multiplication of P, n time. This algorithm is also known as Double and Add.</span>
|
||||||
|
|
||||||
@ -635,7 +638,7 @@
|
|||||||
|
|
||||||
<span class="k">return</span> <span class="n">nP</span>
|
<span class="k">return</span> <span class="n">nP</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">find_reverse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">P</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">find_reverse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">P</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function return the reverse of the Point P</span>
|
<span class="sd"> This function return the reverse of the Point P</span>
|
||||||
<span class="sd"> Args:</span>
|
<span class="sd"> Args:</span>
|
||||||
@ -655,7 +658,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="doc doc-children">
|
<div class="doc doc-children">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -735,7 +738,7 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/curve.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/curve.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 74</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 74</span>
|
||||||
<span class="normal"> 75</span>
|
<span class="normal"> 75</span>
|
||||||
@ -782,7 +785,7 @@
|
|||||||
<span class="normal">116</span>
|
<span class="normal">116</span>
|
||||||
<span class="normal">117</span>
|
<span class="normal">117</span>
|
||||||
<span class="normal">118</span>
|
<span class="normal">118</span>
|
||||||
<span class="normal">119</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">P</span><span class="p">,</span> <span class="n">Q</span><span class="p">)</span> <span class="o">-></span> <span class="n">Point</span><span class="p">:</span>
|
<span class="normal">119</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">P</span><span class="p">,</span> <span class="n">Q</span><span class="p">)</span> <span class="o">-></span> <span class="n">Point</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function operathe addition operation on two points P and Q</span>
|
<span class="sd"> This function operathe addition operation on two points P and Q</span>
|
||||||
|
|
||||||
@ -872,7 +875,7 @@ Args:
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/curve.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/curve.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">145</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">145</span>
|
||||||
<span class="normal">146</span>
|
<span class="normal">146</span>
|
||||||
@ -888,7 +891,7 @@ Args:
|
|||||||
<span class="normal">156</span>
|
<span class="normal">156</span>
|
||||||
<span class="normal">157</span>
|
<span class="normal">157</span>
|
||||||
<span class="normal">158</span>
|
<span class="normal">158</span>
|
||||||
<span class="normal">159</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">find_reverse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">P</span><span class="p">):</span>
|
<span class="normal">159</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">find_reverse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">P</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function return the reverse of the Point P</span>
|
<span class="sd"> This function return the reverse of the Point P</span>
|
||||||
<span class="sd"> Args:</span>
|
<span class="sd"> Args:</span>
|
||||||
@ -978,7 +981,7 @@ Args:
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/curve.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/curve.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">121</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">121</span>
|
||||||
<span class="normal">122</span>
|
<span class="normal">122</span>
|
||||||
@ -1002,7 +1005,7 @@ Args:
|
|||||||
<span class="normal">140</span>
|
<span class="normal">140</span>
|
||||||
<span class="normal">141</span>
|
<span class="normal">141</span>
|
||||||
<span class="normal">142</span>
|
<span class="normal">142</span>
|
||||||
<span class="normal">143</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">scalar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">P</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span> <span class="o">-></span> <span class="n">Point</span><span class="p">:</span>
|
<span class="normal">143</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scalar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">P</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span> <span class="o">-></span> <span class="n">Point</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function compute a Scalar Multiplication of P, n time. This algorithm is also known as Double and Add.</span>
|
<span class="sd"> This function compute a Scalar Multiplication of P, n time. This algorithm is also known as Double and Add.</span>
|
||||||
|
|
||||||
@ -1037,6 +1040,7 @@ Args:
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@ -1052,7 +1056,7 @@ Args:
|
|||||||
</div><footer>
|
</div><footer>
|
||||||
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
|
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
|
||||||
<a href="../group-theory/" class="btn btn-neutral float-left" title="Group theory"><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
<a href="../group-theory/" class="btn btn-neutral float-left" title="Group theory"><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
||||||
<a href="../rsa/" class="btn btn-neutral float-right" title="RSA">Next <span class="icon icon-circle-arrow-right"></span></a>
|
<a href="../ecc/" class="btn btn-neutral float-right" title="Elliptic Curve Cryptography">Next <span class="icon icon-circle-arrow-right"></span></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr/>
|
<hr/>
|
||||||
@ -1078,7 +1082,7 @@ Args:
|
|||||||
<span><a href="../group-theory/" style="color: #fcfcfc">« Previous</a></span>
|
<span><a href="../group-theory/" style="color: #fcfcfc">« Previous</a></span>
|
||||||
|
|
||||||
|
|
||||||
<span><a href="../rsa/" style="color: #fcfcfc">Next »</a></span>
|
<span><a href="../ecc/" style="color: #fcfcfc">Next »</a></span>
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
1564
site/ecc/index.html
Normal file
1564
site/ecc/index.html
Normal file
File diff suppressed because it is too large
Load Diff
@ -52,6 +52,8 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
|
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../ecc/">Elliptic Curve Cryptography</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
|
|||||||
@ -52,6 +52,8 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
|
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../ecc/">Elliptic Curve Cryptography</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
|
|||||||
@ -122,6 +122,8 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
|
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../ecc/">Elliptic Curve Cryptography</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
@ -184,7 +186,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="doc doc-children">
|
<div class="doc doc-children">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -208,6 +210,7 @@
|
|||||||
<div class="doc doc-contents ">
|
<div class="doc doc-contents ">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p>This class generate a group self._g based on the operation (here denoted +)
|
<p>This class generate a group self._g based on the operation (here denoted +)
|
||||||
with the function ope: (a ** b) % n</p>
|
with the function ope: (a ** b) % n</p>
|
||||||
<p>In group theory, any group has an identity element (e), which with the binary operation, do not change the value and must satisfy the condition: $a + e = 0$</p>
|
<p>In group theory, any group has an identity element (e), which with the binary operation, do not change the value and must satisfy the condition: $a + e = 0$</p>
|
||||||
@ -274,7 +277,6 @@ with the function ope: (a ** b) % n</p>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<details class="quote">
|
<details class="quote">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/group.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/group.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 3</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 3</span>
|
||||||
@ -398,7 +400,7 @@ with the function ope: (a ** b) % n</p>
|
|||||||
<span class="normal">121</span>
|
<span class="normal">121</span>
|
||||||
<span class="normal">122</span>
|
<span class="normal">122</span>
|
||||||
<span class="normal">123</span>
|
<span class="normal">123</span>
|
||||||
<span class="normal">124</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span> <span class="nc">Group</span><span class="p">:</span>
|
<span class="normal">124</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Group</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This class generate a group self._g based on the operation (here denoted +)</span>
|
<span class="sd"> This class generate a group self._g based on the operation (here denoted +)</span>
|
||||||
<span class="sd"> with the function ope: (a ** b) % n</span>
|
<span class="sd"> with the function ope: (a ** b) % n</span>
|
||||||
@ -412,14 +414,14 @@ with the function ope: (a ** b) % n</p>
|
|||||||
<span class="sd"> identity (Integer): The identity of the group.</span>
|
<span class="sd"> identity (Integer): The identity of the group.</span>
|
||||||
<span class="sd"> reverse (Dict): For each elements of the Group of n, we have the reverse value</span>
|
<span class="sd"> reverse (Dict): For each elements of the Group of n, we have the reverse value</span>
|
||||||
<span class="sd"> """</span>
|
<span class="sd"> """</span>
|
||||||
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">g</span><span class="p">,</span> <span class="n">ope</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">g</span><span class="p">,</span> <span class="n">ope</span><span class="p">):</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_n</span> <span class="o">=</span> <span class="n">n</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_n</span> <span class="o">=</span> <span class="n">n</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_g</span> <span class="o">=</span> <span class="n">g</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_g</span> <span class="o">=</span> <span class="n">g</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_operation</span> <span class="o">=</span> <span class="n">ope</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_operation</span> <span class="o">=</span> <span class="n">ope</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_identity</span> <span class="o">=</span> <span class="mi">0</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_identity</span> <span class="o">=</span> <span class="mi">0</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_reverse</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">()</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_reverse</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">()</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">getG</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">():</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">getG</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">():</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function return the Group</span>
|
<span class="sd"> This function return the Group</span>
|
||||||
|
|
||||||
@ -428,7 +430,7 @@ with the function ope: (a ** b) % n</p>
|
|||||||
<span class="sd"> """</span>
|
<span class="sd"> """</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_g</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_g</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">closure</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">closure</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Check the closure law</span>
|
<span class="sd"> Check the closure law</span>
|
||||||
<span class="sd"> In a group, each element a, b belongs to G, such as a + b belongs to G</span>
|
<span class="sd"> In a group, each element a, b belongs to G, such as a + b belongs to G</span>
|
||||||
@ -444,7 +446,7 @@ with the function ope: (a ** b) % n</p>
|
|||||||
<span class="k">return</span> <span class="kc">False</span>
|
<span class="k">return</span> <span class="kc">False</span>
|
||||||
<span class="k">return</span> <span class="kc">True</span>
|
<span class="k">return</span> <span class="kc">True</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">associative</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">associative</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Check the associative law. </span>
|
<span class="sd"> Check the associative law. </span>
|
||||||
<span class="sd"> In a group, for any a, b and c belongs to G,</span>
|
<span class="sd"> In a group, for any a, b and c belongs to G,</span>
|
||||||
@ -467,7 +469,7 @@ with the function ope: (a ** b) % n</p>
|
|||||||
<span class="k">return</span> <span class="kc">False</span>
|
<span class="k">return</span> <span class="kc">False</span>
|
||||||
<span class="k">return</span> <span class="kc">True</span>
|
<span class="k">return</span> <span class="kc">True</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">identity</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">identity</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Check the identity law.</span>
|
<span class="sd"> Check the identity law.</span>
|
||||||
<span class="sd"> In a group, an identity element exist and must be uniq</span>
|
<span class="sd"> In a group, an identity element exist and must be uniq</span>
|
||||||
@ -484,7 +486,7 @@ with the function ope: (a ** b) % n</p>
|
|||||||
<span class="k">return</span> <span class="kc">True</span>
|
<span class="k">return</span> <span class="kc">True</span>
|
||||||
<span class="k">return</span> <span class="kc">False</span>
|
<span class="k">return</span> <span class="kc">False</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">getIdentity</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">getIdentity</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Return the identity element. The function identitu() must be called before.</span>
|
<span class="sd"> Return the identity element. The function identitu() must be called before.</span>
|
||||||
|
|
||||||
@ -493,7 +495,7 @@ with the function ope: (a ** b) % n</p>
|
|||||||
<span class="sd"> """</span>
|
<span class="sd"> """</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_identity</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_identity</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">reverse</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">reverse</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Check the inverse law</span>
|
<span class="sd"> Check the inverse law</span>
|
||||||
<span class="sd"> In a group, for each element belongs to G</span>
|
<span class="sd"> In a group, for each element belongs to G</span>
|
||||||
@ -511,7 +513,7 @@ with the function ope: (a ** b) % n</p>
|
|||||||
<span class="k">break</span>
|
<span class="k">break</span>
|
||||||
<span class="k">return</span> <span class="n">reverse</span>
|
<span class="k">return</span> <span class="n">reverse</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">getReverses</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">dict</span><span class="p">:</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">getReverses</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">dict</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function return the dictionary of all reverses elements. The key is the element in G and the value is the reverse element</span>
|
<span class="sd"> This function return the dictionary of all reverses elements. The key is the element in G and the value is the reverse element</span>
|
||||||
|
|
||||||
@ -525,7 +527,7 @@ with the function ope: (a ** b) % n</p>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="doc doc-children">
|
<div class="doc doc-children">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -575,7 +577,7 @@ they must respect this condition: (a + b) + c = a + (a + b)</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/group.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/group.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">49</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">49</span>
|
||||||
<span class="normal">50</span>
|
<span class="normal">50</span>
|
||||||
@ -598,7 +600,7 @@ they must respect this condition: (a + b) + c = a + (a + b)</p>
|
|||||||
<span class="normal">67</span>
|
<span class="normal">67</span>
|
||||||
<span class="normal">68</span>
|
<span class="normal">68</span>
|
||||||
<span class="normal">69</span>
|
<span class="normal">69</span>
|
||||||
<span class="normal">70</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">associative</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
<span class="normal">70</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">associative</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Check the associative law. </span>
|
<span class="sd"> Check the associative law. </span>
|
||||||
<span class="sd"> In a group, for any a, b and c belongs to G,</span>
|
<span class="sd"> In a group, for any a, b and c belongs to G,</span>
|
||||||
@ -664,7 +666,7 @@ In a group, each element a, b belongs to G, such as a + b belongs to G</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/group.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/group.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">33</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">33</span>
|
||||||
<span class="normal">34</span>
|
<span class="normal">34</span>
|
||||||
@ -680,7 +682,7 @@ In a group, each element a, b belongs to G, such as a + b belongs to G</p>
|
|||||||
<span class="normal">44</span>
|
<span class="normal">44</span>
|
||||||
<span class="normal">45</span>
|
<span class="normal">45</span>
|
||||||
<span class="normal">46</span>
|
<span class="normal">46</span>
|
||||||
<span class="normal">47</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">closure</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
<span class="normal">47</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">closure</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Check the closure law</span>
|
<span class="sd"> Check the closure law</span>
|
||||||
<span class="sd"> In a group, each element a, b belongs to G, such as a + b belongs to G</span>
|
<span class="sd"> In a group, each element a, b belongs to G, such as a + b belongs to G</span>
|
||||||
@ -738,7 +740,7 @@ In a group, each element a, b belongs to G, such as a + b belongs to G</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/group.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/group.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">24</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">24</span>
|
||||||
<span class="normal">25</span>
|
<span class="normal">25</span>
|
||||||
@ -747,7 +749,7 @@ In a group, each element a, b belongs to G, such as a + b belongs to G</p>
|
|||||||
<span class="normal">28</span>
|
<span class="normal">28</span>
|
||||||
<span class="normal">29</span>
|
<span class="normal">29</span>
|
||||||
<span class="normal">30</span>
|
<span class="normal">30</span>
|
||||||
<span class="normal">31</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">getG</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">():</span>
|
<span class="normal">31</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">getG</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">():</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function return the Group</span>
|
<span class="sd"> This function return the Group</span>
|
||||||
|
|
||||||
@ -798,7 +800,7 @@ In a group, each element a, b belongs to G, such as a + b belongs to G</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/group.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/group.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">89</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">89</span>
|
||||||
<span class="normal">90</span>
|
<span class="normal">90</span>
|
||||||
@ -807,7 +809,7 @@ In a group, each element a, b belongs to G, such as a + b belongs to G</p>
|
|||||||
<span class="normal">93</span>
|
<span class="normal">93</span>
|
||||||
<span class="normal">94</span>
|
<span class="normal">94</span>
|
||||||
<span class="normal">95</span>
|
<span class="normal">95</span>
|
||||||
<span class="normal">96</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">getIdentity</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
<span class="normal">96</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">getIdentity</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Return the identity element. The function identitu() must be called before.</span>
|
<span class="sd"> Return the identity element. The function identitu() must be called before.</span>
|
||||||
|
|
||||||
@ -858,7 +860,7 @@ In a group, each element a, b belongs to G, such as a + b belongs to G</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/group.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/group.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">116</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">116</span>
|
||||||
<span class="normal">117</span>
|
<span class="normal">117</span>
|
||||||
@ -868,7 +870,7 @@ In a group, each element a, b belongs to G, such as a + b belongs to G</p>
|
|||||||
<span class="normal">121</span>
|
<span class="normal">121</span>
|
||||||
<span class="normal">122</span>
|
<span class="normal">122</span>
|
||||||
<span class="normal">123</span>
|
<span class="normal">123</span>
|
||||||
<span class="normal">124</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">getReverses</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">dict</span><span class="p">:</span>
|
<span class="normal">124</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">getReverses</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">dict</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function return the dictionary of all reverses elements. The key is the element in G and the value is the reverse element</span>
|
<span class="sd"> This function return the dictionary of all reverses elements. The key is the element in G and the value is the reverse element</span>
|
||||||
|
|
||||||
@ -921,7 +923,7 @@ In a group, an identity element exist and must be uniq</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/group.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/group.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">72</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">72</span>
|
||||||
<span class="normal">73</span>
|
<span class="normal">73</span>
|
||||||
@ -938,7 +940,7 @@ In a group, an identity element exist and must be uniq</p>
|
|||||||
<span class="normal">84</span>
|
<span class="normal">84</span>
|
||||||
<span class="normal">85</span>
|
<span class="normal">85</span>
|
||||||
<span class="normal">86</span>
|
<span class="normal">86</span>
|
||||||
<span class="normal">87</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">identity</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
<span class="normal">87</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">identity</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Check the identity law.</span>
|
<span class="sd"> Check the identity law.</span>
|
||||||
<span class="sd"> In a group, an identity element exist and must be uniq</span>
|
<span class="sd"> In a group, an identity element exist and must be uniq</span>
|
||||||
@ -999,7 +1001,7 @@ they must have an inverse a ^ (-1) = e (identity)</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/group.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/group.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 98</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 98</span>
|
||||||
<span class="normal"> 99</span>
|
<span class="normal"> 99</span>
|
||||||
@ -1017,7 +1019,7 @@ they must have an inverse a ^ (-1) = e (identity)</p>
|
|||||||
<span class="normal">111</span>
|
<span class="normal">111</span>
|
||||||
<span class="normal">112</span>
|
<span class="normal">112</span>
|
||||||
<span class="normal">113</span>
|
<span class="normal">113</span>
|
||||||
<span class="normal">114</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">reverse</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
<span class="normal">114</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">reverse</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Check the inverse law</span>
|
<span class="sd"> Check the inverse law</span>
|
||||||
<span class="sd"> In a group, for each element belongs to G</span>
|
<span class="sd"> In a group, for each element belongs to G</span>
|
||||||
@ -1046,6 +1048,7 @@ they must have an inverse a ^ (-1) = e (identity)</p>
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@ -1074,7 +1077,7 @@ they must have an inverse a ^ (-1) = e (identity)</p>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="doc doc-children">
|
<div class="doc doc-children">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1100,6 +1103,7 @@ they must have an inverse a ^ (-1) = e (identity)</p>
|
|||||||
Bases: <code><a class="autorefs autorefs-internal" title="Group (Cryptotools.Groups.group.Group)" href="#Cryptotools.Groups.group.Group">Group</a></code></p>
|
Bases: <code><a class="autorefs autorefs-internal" title="Group (Cryptotools.Groups.group.Group)" href="#Cryptotools.Groups.group.Group">Group</a></code></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p>This object contain a list of the Group for a cyclic group. This class find all generator of the group.
|
<p>This object contain a list of the Group for a cyclic group. This class find all generator of the group.
|
||||||
This class is inherited from Group object</p>
|
This class is inherited from Group object</p>
|
||||||
|
|
||||||
@ -1165,7 +1169,6 @@ This class is inherited from Group object</p>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<details class="quote">
|
<details class="quote">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/cyclic.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/cyclic.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 6</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 6</span>
|
||||||
@ -1253,7 +1256,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="normal">88</span>
|
<span class="normal">88</span>
|
||||||
<span class="normal">89</span>
|
<span class="normal">89</span>
|
||||||
<span class="normal">90</span>
|
<span class="normal">90</span>
|
||||||
<span class="normal">91</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span> <span class="nc">Cyclic</span><span class="p">(</span><span class="n">Group</span><span class="p">):</span>
|
<span class="normal">91</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Cyclic</span><span class="p">(</span><span class="n">Group</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This object contain a list of the Group for a cyclic group. This class find all generator of the group.</span>
|
<span class="sd"> This object contain a list of the Group for a cyclic group. This class find all generator of the group.</span>
|
||||||
<span class="sd"> This class is inherited from Group object</span>
|
<span class="sd"> This class is inherited from Group object</span>
|
||||||
@ -1265,7 +1268,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="sd"> generators (list): contain all generators of the group </span>
|
<span class="sd"> generators (list): contain all generators of the group </span>
|
||||||
<span class="sd"> generatorChecked (boolean): Check if generators has been found</span>
|
<span class="sd"> generatorChecked (boolean): Check if generators has been found</span>
|
||||||
<span class="sd"> """</span>
|
<span class="sd"> """</span>
|
||||||
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">G</span><span class="p">:</span><span class="nb">list</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">ope</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">G</span><span class="p">:</span><span class="nb">list</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">ope</span><span class="p">):</span>
|
||||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">G</span><span class="p">,</span> <span class="n">ope</span><span class="p">)</span> <span class="c1"># Call the Group's constructor</span>
|
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">G</span><span class="p">,</span> <span class="n">ope</span><span class="p">)</span> <span class="c1"># Call the Group's constructor</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_G</span> <span class="o">=</span> <span class="n">G</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_G</span> <span class="o">=</span> <span class="n">G</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_n</span> <span class="o">=</span> <span class="n">n</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_n</span> <span class="o">=</span> <span class="n">n</span>
|
||||||
@ -1273,7 +1276,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_generators</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_generators</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_generatorChecked</span> <span class="o">=</span> <span class="kc">False</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_generatorChecked</span> <span class="o">=</span> <span class="kc">False</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">generator</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">generator</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function find all generators in the group G</span>
|
<span class="sd"> This function find all generators in the group G</span>
|
||||||
<span class="sd"> """</span>
|
<span class="sd"> """</span>
|
||||||
@ -1294,7 +1297,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_generators</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">g</span><span class="p">)</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_generators</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">g</span><span class="p">)</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_generatorChecked</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_generatorChecked</span> <span class="o">=</span> <span class="kc">True</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">getPrimitiveRoot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">getPrimitiveRoot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function return the primitive root modulo of n</span>
|
<span class="sd"> This function return the primitive root modulo of n</span>
|
||||||
|
|
||||||
@ -1317,7 +1320,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="k">return</span> <span class="n">g</span>
|
<span class="k">return</span> <span class="n">g</span>
|
||||||
<span class="k">return</span> <span class="kc">None</span>
|
<span class="k">return</span> <span class="kc">None</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">getGenerators</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">getGenerators</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function return all generators of that group</span>
|
<span class="sd"> This function return all generators of that group</span>
|
||||||
|
|
||||||
@ -1329,7 +1332,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_generatorChecked</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_generatorChecked</span> <span class="o">=</span> <span class="kc">True</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_generators</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_generators</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">isCyclic</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">isCyclic</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Check if the group is a cyclic group, means we have at least one generator</span>
|
<span class="sd"> Check if the group is a cyclic group, means we have at least one generator</span>
|
||||||
|
|
||||||
@ -1344,7 +1347,7 @@ This class is inherited from Group object</p>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="doc doc-children">
|
<div class="doc doc-children">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1369,7 +1372,7 @@ This class is inherited from Group object</p>
|
|||||||
<p>This function find all generators in the group G</p>
|
<p>This function find all generators in the group G</p>
|
||||||
|
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/cyclic.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/cyclic.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">26</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">26</span>
|
||||||
<span class="normal">27</span>
|
<span class="normal">27</span>
|
||||||
@ -1390,7 +1393,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="normal">42</span>
|
<span class="normal">42</span>
|
||||||
<span class="normal">43</span>
|
<span class="normal">43</span>
|
||||||
<span class="normal">44</span>
|
<span class="normal">44</span>
|
||||||
<span class="normal">45</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">generator</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="normal">45</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">generator</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function find all generators in the group G</span>
|
<span class="sd"> This function find all generators in the group G</span>
|
||||||
<span class="sd"> """</span>
|
<span class="sd"> """</span>
|
||||||
@ -1453,7 +1456,7 @@ This class is inherited from Group object</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/cyclic.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/cyclic.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">70</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">70</span>
|
||||||
<span class="normal">71</span>
|
<span class="normal">71</span>
|
||||||
@ -1465,7 +1468,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="normal">77</span>
|
<span class="normal">77</span>
|
||||||
<span class="normal">78</span>
|
<span class="normal">78</span>
|
||||||
<span class="normal">79</span>
|
<span class="normal">79</span>
|
||||||
<span class="normal">80</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">getGenerators</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
<span class="normal">80</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">getGenerators</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function return all generators of that group</span>
|
<span class="sd"> This function return all generators of that group</span>
|
||||||
|
|
||||||
@ -1518,7 +1521,7 @@ This class is inherited from Group object</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/cyclic.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/cyclic.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">47</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">47</span>
|
||||||
<span class="normal">48</span>
|
<span class="normal">48</span>
|
||||||
@ -1541,7 +1544,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="normal">65</span>
|
<span class="normal">65</span>
|
||||||
<span class="normal">66</span>
|
<span class="normal">66</span>
|
||||||
<span class="normal">67</span>
|
<span class="normal">67</span>
|
||||||
<span class="normal">68</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">getPrimitiveRoot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="normal">68</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">getPrimitiveRoot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function return the primitive root modulo of n</span>
|
<span class="sd"> This function return the primitive root modulo of n</span>
|
||||||
|
|
||||||
@ -1606,7 +1609,7 @@ This class is inherited from Group object</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/cyclic.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/cyclic.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">82</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">82</span>
|
||||||
<span class="normal">83</span>
|
<span class="normal">83</span>
|
||||||
@ -1617,7 +1620,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="normal">88</span>
|
<span class="normal">88</span>
|
||||||
<span class="normal">89</span>
|
<span class="normal">89</span>
|
||||||
<span class="normal">90</span>
|
<span class="normal">90</span>
|
||||||
<span class="normal">91</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">isCyclic</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
<span class="normal">91</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">isCyclic</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Check if the group is a cyclic group, means we have at least one generator</span>
|
<span class="sd"> Check if the group is a cyclic group, means we have at least one generator</span>
|
||||||
|
|
||||||
@ -1639,6 +1642,7 @@ This class is inherited from Group object</p>
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@ -1667,7 +1671,7 @@ This class is inherited from Group object</p>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="doc doc-children">
|
<div class="doc doc-children">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1691,6 +1695,7 @@ This class is inherited from Group object</p>
|
|||||||
<div class="doc doc-contents ">
|
<div class="doc doc-contents ">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p>This class contain the Galois Field (Finite Field)</p>
|
<p>This class contain the Galois Field (Finite Field)</p>
|
||||||
|
|
||||||
|
|
||||||
@ -1747,7 +1752,6 @@ This class is inherited from Group object</p>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<details class="quote">
|
<details class="quote">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 6</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 6</span>
|
||||||
@ -1971,7 +1975,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="normal">224</span>
|
<span class="normal">224</span>
|
||||||
<span class="normal">225</span>
|
<span class="normal">225</span>
|
||||||
<span class="normal">226</span>
|
<span class="normal">226</span>
|
||||||
<span class="normal">227</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span> <span class="nc">Galois</span><span class="p">:</span>
|
<span class="normal">227</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Galois</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This class contain the Galois Field (Finite Field)</span>
|
<span class="sd"> This class contain the Galois Field (Finite Field)</span>
|
||||||
|
|
||||||
@ -1983,7 +1987,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="sd"> identityAdd (Integer): it's the identity element in the GF(n) for the addition operation</span>
|
<span class="sd"> identityAdd (Integer): it's the identity element in the GF(n) for the addition operation</span>
|
||||||
<span class="sd"> identityMul (Integer): it's the identity element in the GF(n) for the multiplicative operation</span>
|
<span class="sd"> identityMul (Integer): it's the identity element in the GF(n) for the multiplicative operation</span>
|
||||||
<span class="sd"> """</span>
|
<span class="sd"> """</span>
|
||||||
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">q</span><span class="p">,</span> <span class="n">operation</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">q</span><span class="p">,</span> <span class="n">operation</span><span class="p">):</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_q</span> <span class="o">=</span> <span class="n">q</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_q</span> <span class="o">=</span> <span class="n">q</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_operation</span> <span class="o">=</span> <span class="n">operation</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_operation</span> <span class="o">=</span> <span class="n">operation</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_identityAdd</span> <span class="o">=</span> <span class="mi">0</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_identityAdd</span> <span class="o">=</span> <span class="mi">0</span>
|
||||||
@ -1997,7 +2001,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sub</span> <span class="o">=</span> <span class="p">[[</span><span class="mi">0</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">q</span><span class="p">)]</span> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">q</span><span class="p">)]</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_sub</span> <span class="o">=</span> <span class="p">[[</span><span class="mi">0</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">q</span><span class="p">)]</span> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">q</span><span class="p">)]</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_primitiveRoot</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_primitiveRoot</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">primitiveRoot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">primitiveRoot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> In this function, we going to find the primitive root modulo n of the galois field</span>
|
<span class="sd"> In this function, we going to find the primitive root modulo n of the galois field</span>
|
||||||
|
|
||||||
@ -2016,7 +2020,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_primitiveRoot</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_primitiveRoot</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
||||||
<span class="k">return</span> <span class="n">z</span>
|
<span class="k">return</span> <span class="n">z</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">getPrimitiveRoot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">getPrimitiveRoot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Return the list of primitives root</span>
|
<span class="sd"> Return the list of primitives root</span>
|
||||||
|
|
||||||
@ -2025,7 +2029,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="sd"> """</span>
|
<span class="sd"> """</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_primitiveRoot</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_primitiveRoot</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">isPrimitiveRoot</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">z</span><span class="p">,</span> <span class="n">length</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">isPrimitiveRoot</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">z</span><span class="p">,</span> <span class="n">length</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Check if z is a primitive root </span>
|
<span class="sd"> Check if z is a primitive root </span>
|
||||||
|
|
||||||
@ -2037,7 +2041,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="k">return</span> <span class="kc">True</span>
|
<span class="k">return</span> <span class="kc">True</span>
|
||||||
<span class="k">return</span> <span class="kc">False</span>
|
<span class="k">return</span> <span class="kc">False</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function do the operation + on the Galois Field</span>
|
<span class="sd"> This function do the operation + on the Galois Field</span>
|
||||||
|
|
||||||
@ -2049,7 +2053,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">y</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">x</span> <span class="o">+</span> <span class="n">y</span><span class="p">)</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_q</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">y</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">x</span> <span class="o">+</span> <span class="n">y</span><span class="p">)</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_q</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">_inverseModular</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">_inverseModular</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function find the reverse modular of a by n</span>
|
<span class="sd"> This function find the reverse modular of a by n</span>
|
||||||
|
|
||||||
@ -2062,7 +2066,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="k">break</span>
|
<span class="k">break</span>
|
||||||
<span class="k">return</span> <span class="n">inv</span>
|
<span class="k">return</span> <span class="n">inv</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">div</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">div</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function do the operation / on the Galois Field</span>
|
<span class="sd"> This function do the operation / on the Galois Field</span>
|
||||||
|
|
||||||
@ -2076,7 +2080,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_div</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">y</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">x</span> <span class="o">*</span> <span class="n">inv</span><span class="p">)</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_q</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_div</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">y</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">x</span> <span class="o">*</span> <span class="n">inv</span><span class="p">)</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_q</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_div</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_div</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">mul</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">mul</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function do the operation * on the Galois Field</span>
|
<span class="sd"> This function do the operation * on the Galois Field</span>
|
||||||
|
|
||||||
@ -2088,7 +2092,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_mul</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">y</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">x</span> <span class="o">*</span> <span class="n">y</span><span class="p">)</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_q</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_mul</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">y</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">x</span> <span class="o">*</span> <span class="n">y</span><span class="p">)</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_q</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_mul</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_mul</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">sub</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">sub</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function do the operation - on the Galois Field</span>
|
<span class="sd"> This function do the operation - on the Galois Field</span>
|
||||||
|
|
||||||
@ -2100,7 +2104,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sub</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">y</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">x</span> <span class="o">-</span> <span class="n">y</span><span class="p">)</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_q</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_sub</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">y</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">x</span> <span class="o">-</span> <span class="n">y</span><span class="p">)</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_q</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_sub</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_sub</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">check_closure_law</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arithmetic</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">check_closure_law</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arithmetic</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function check the closure law.</span>
|
<span class="sd"> This function check the closure law.</span>
|
||||||
<span class="sd"> By definition, every element in the GF is an abelian group, which respect the closure law: for a and b belongs to G, a + b belongs to G, the operation is a binary operation</span>
|
<span class="sd"> By definition, every element in the GF is an abelian group, which respect the closure law: for a and b belongs to G, a + b belongs to G, the operation is a binary operation</span>
|
||||||
@ -2139,7 +2143,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="k">else</span><span class="p">:</span>
|
<span class="k">else</span><span class="p">:</span>
|
||||||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"The group </span><span class="si">{</span><span class="n">arithmetic</span><span class="si">}</span><span class="s2"> does not respect closure law"</span><span class="p">)</span>
|
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"The group </span><span class="si">{</span><span class="n">arithmetic</span><span class="si">}</span><span class="s2"> does not respect closure law"</span><span class="p">)</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">check_identity_add</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">check_identity_add</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function check the identity element and must satisfy this condition: $a + 0 = a$ for each element in the GF(n)</span>
|
<span class="sd"> This function check the identity element and must satisfy this condition: $a + 0 = a$ for each element in the GF(n)</span>
|
||||||
<span class="sd"> In Group Theory, an identity element is an element in the group which do not change the value every element in the group</span>
|
<span class="sd"> In Group Theory, an identity element is an element in the group which do not change the value every element in the group</span>
|
||||||
@ -2154,7 +2158,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="s2">"do not satisfy $a + element = a$"</span>
|
<span class="s2">"do not satisfy $a + element = a$"</span>
|
||||||
<span class="p">)</span>
|
<span class="p">)</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">check_identity_mul</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">check_identity_mul</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function check the identity element and must satisfy this condition: $a * 1 = a$ for each element in the GF(n)</span>
|
<span class="sd"> This function check the identity element and must satisfy this condition: $a * 1 = a$ for each element in the GF(n)</span>
|
||||||
<span class="sd"> In Group Theory, an identity element is an element in the group which do not change the value every element in the group</span>
|
<span class="sd"> In Group Theory, an identity element is an element in the group which do not change the value every element in the group</span>
|
||||||
@ -2169,7 +2173,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="s2">"do not satisfy $a * element = a$"</span>
|
<span class="s2">"do not satisfy $a * element = a$"</span>
|
||||||
<span class="p">)</span>
|
<span class="p">)</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">printMatrice</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">printMatrice</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function print the GF(m)</span>
|
<span class="sd"> This function print the GF(m)</span>
|
||||||
|
|
||||||
@ -2198,7 +2202,7 @@ This class is inherited from Group object</p>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="doc doc-children">
|
<div class="doc doc-children">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -2245,7 +2249,7 @@ This class is inherited from Group object</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">72</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">72</span>
|
||||||
<span class="normal">73</span>
|
<span class="normal">73</span>
|
||||||
@ -2257,7 +2261,7 @@ This class is inherited from Group object</p>
|
|||||||
<span class="normal">79</span>
|
<span class="normal">79</span>
|
||||||
<span class="normal">80</span>
|
<span class="normal">80</span>
|
||||||
<span class="normal">81</span>
|
<span class="normal">81</span>
|
||||||
<span class="normal">82</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="normal">82</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function do the operation + on the Galois Field</span>
|
<span class="sd"> This function do the operation + on the Galois Field</span>
|
||||||
|
|
||||||
@ -2313,7 +2317,7 @@ By definition, every element in the GF is an abelian group, which respect the cl
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">135</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">135</span>
|
||||||
<span class="normal">136</span>
|
<span class="normal">136</span>
|
||||||
@ -2352,7 +2356,7 @@ By definition, every element in the GF is an abelian group, which respect the cl
|
|||||||
<span class="normal">169</span>
|
<span class="normal">169</span>
|
||||||
<span class="normal">170</span>
|
<span class="normal">170</span>
|
||||||
<span class="normal">171</span>
|
<span class="normal">171</span>
|
||||||
<span class="normal">172</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">check_closure_law</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arithmetic</span><span class="p">):</span>
|
<span class="normal">172</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_closure_law</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arithmetic</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function check the closure law.</span>
|
<span class="sd"> This function check the closure law.</span>
|
||||||
<span class="sd"> By definition, every element in the GF is an abelian group, which respect the closure law: for a and b belongs to G, a + b belongs to G, the operation is a binary operation</span>
|
<span class="sd"> By definition, every element in the GF is an abelian group, which respect the closure law: for a and b belongs to G, a + b belongs to G, the operation is a binary operation</span>
|
||||||
@ -2412,7 +2416,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
<p>Returns:</p>
|
<p>Returns:</p>
|
||||||
|
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">174</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">174</span>
|
||||||
<span class="normal">175</span>
|
<span class="normal">175</span>
|
||||||
@ -2427,7 +2431,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
<span class="normal">184</span>
|
<span class="normal">184</span>
|
||||||
<span class="normal">185</span>
|
<span class="normal">185</span>
|
||||||
<span class="normal">186</span>
|
<span class="normal">186</span>
|
||||||
<span class="normal">187</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">check_identity_add</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="normal">187</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_identity_add</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function check the identity element and must satisfy this condition: $a + 0 = a$ for each element in the GF(n)</span>
|
<span class="sd"> This function check the identity element and must satisfy this condition: $a + 0 = a$ for each element in the GF(n)</span>
|
||||||
<span class="sd"> In Group Theory, an identity element is an element in the group which do not change the value every element in the group</span>
|
<span class="sd"> In Group Theory, an identity element is an element in the group which do not change the value every element in the group</span>
|
||||||
@ -2463,7 +2467,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
<p>Returns:</p>
|
<p>Returns:</p>
|
||||||
|
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">189</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">189</span>
|
||||||
<span class="normal">190</span>
|
<span class="normal">190</span>
|
||||||
@ -2478,7 +2482,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
<span class="normal">199</span>
|
<span class="normal">199</span>
|
||||||
<span class="normal">200</span>
|
<span class="normal">200</span>
|
||||||
<span class="normal">201</span>
|
<span class="normal">201</span>
|
||||||
<span class="normal">202</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">check_identity_mul</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="normal">202</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_identity_mul</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function check the identity element and must satisfy this condition: $a * 1 = a$ for each element in the GF(n)</span>
|
<span class="sd"> This function check the identity element and must satisfy this condition: $a * 1 = a$ for each element in the GF(n)</span>
|
||||||
<span class="sd"> In Group Theory, an identity element is an element in the group which do not change the value every element in the group</span>
|
<span class="sd"> In Group Theory, an identity element is an element in the group which do not change the value every element in the group</span>
|
||||||
@ -2534,7 +2538,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 97</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 97</span>
|
||||||
<span class="normal"> 98</span>
|
<span class="normal"> 98</span>
|
||||||
@ -2548,7 +2552,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
<span class="normal">106</span>
|
<span class="normal">106</span>
|
||||||
<span class="normal">107</span>
|
<span class="normal">107</span>
|
||||||
<span class="normal">108</span>
|
<span class="normal">108</span>
|
||||||
<span class="normal">109</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">div</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="normal">109</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">div</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function do the operation / on the Galois Field</span>
|
<span class="sd"> This function do the operation / on the Galois Field</span>
|
||||||
|
|
||||||
@ -2603,7 +2607,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">51</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">51</span>
|
||||||
<span class="normal">52</span>
|
<span class="normal">52</span>
|
||||||
@ -2612,7 +2616,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
<span class="normal">55</span>
|
<span class="normal">55</span>
|
||||||
<span class="normal">56</span>
|
<span class="normal">56</span>
|
||||||
<span class="normal">57</span>
|
<span class="normal">57</span>
|
||||||
<span class="normal">58</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">getPrimitiveRoot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="normal">58</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">getPrimitiveRoot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Return the list of primitives root</span>
|
<span class="sd"> Return the list of primitives root</span>
|
||||||
|
|
||||||
@ -2672,7 +2676,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">60</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">60</span>
|
||||||
<span class="normal">61</span>
|
<span class="normal">61</span>
|
||||||
@ -2684,7 +2688,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
<span class="normal">67</span>
|
<span class="normal">67</span>
|
||||||
<span class="normal">68</span>
|
<span class="normal">68</span>
|
||||||
<span class="normal">69</span>
|
<span class="normal">69</span>
|
||||||
<span class="normal">70</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">isPrimitiveRoot</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">z</span><span class="p">,</span> <span class="n">length</span><span class="p">):</span>
|
<span class="normal">70</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">isPrimitiveRoot</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">z</span><span class="p">,</span> <span class="n">length</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Check if z is a primitive root </span>
|
<span class="sd"> Check if z is a primitive root </span>
|
||||||
|
|
||||||
@ -2737,7 +2741,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">111</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">111</span>
|
||||||
<span class="normal">112</span>
|
<span class="normal">112</span>
|
||||||
@ -2749,7 +2753,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
<span class="normal">118</span>
|
<span class="normal">118</span>
|
||||||
<span class="normal">119</span>
|
<span class="normal">119</span>
|
||||||
<span class="normal">120</span>
|
<span class="normal">120</span>
|
||||||
<span class="normal">121</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">mul</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="normal">121</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">mul</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function do the operation * on the Galois Field</span>
|
<span class="sd"> This function do the operation * on the Galois Field</span>
|
||||||
|
|
||||||
@ -2802,7 +2806,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">32</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">32</span>
|
||||||
<span class="normal">33</span>
|
<span class="normal">33</span>
|
||||||
@ -2821,7 +2825,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
<span class="normal">46</span>
|
<span class="normal">46</span>
|
||||||
<span class="normal">47</span>
|
<span class="normal">47</span>
|
||||||
<span class="normal">48</span>
|
<span class="normal">48</span>
|
||||||
<span class="normal">49</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">primitiveRoot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="normal">49</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">primitiveRoot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> In this function, we going to find the primitive root modulo n of the galois field</span>
|
<span class="sd"> In this function, we going to find the primitive root modulo n of the galois field</span>
|
||||||
|
|
||||||
@ -2883,7 +2887,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">204</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">204</span>
|
||||||
<span class="normal">205</span>
|
<span class="normal">205</span>
|
||||||
@ -2908,7 +2912,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
<span class="normal">224</span>
|
<span class="normal">224</span>
|
||||||
<span class="normal">225</span>
|
<span class="normal">225</span>
|
||||||
<span class="normal">226</span>
|
<span class="normal">226</span>
|
||||||
<span class="normal">227</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">printMatrice</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">):</span>
|
<span class="normal">227</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">printMatrice</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function print the GF(m)</span>
|
<span class="sd"> This function print the GF(m)</span>
|
||||||
|
|
||||||
@ -2974,7 +2978,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Groups/galois.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">123</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">123</span>
|
||||||
<span class="normal">124</span>
|
<span class="normal">124</span>
|
||||||
@ -2986,7 +2990,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
<span class="normal">130</span>
|
<span class="normal">130</span>
|
||||||
<span class="normal">131</span>
|
<span class="normal">131</span>
|
||||||
<span class="normal">132</span>
|
<span class="normal">132</span>
|
||||||
<span class="normal">133</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">sub</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="normal">133</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">sub</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function do the operation - on the Galois Field</span>
|
<span class="sd"> This function do the operation - on the Galois Field</span>
|
||||||
|
|
||||||
@ -3009,6 +3013,7 @@ In Group Theory, an identity element is an element in the group which do not cha
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -52,6 +52,8 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="curves/">Curves</a>
|
<li class="toctree-l1"><a class="reference internal" href="curves/">Curves</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="ecc/">Elliptic Curve Cryptography</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
@ -101,6 +103,7 @@
|
|||||||
<li><a href="/number-theory">Number Theory</a></li>
|
<li><a href="/number-theory">Number Theory</a></li>
|
||||||
<li><a href="/group-theory">Group Theory</a></li>
|
<li><a href="/group-theory">Group Theory</a></li>
|
||||||
<li><a href="/curves">Curves</a></li>
|
<li><a href="/curves">Curves</a></li>
|
||||||
|
<li><a href="/ecc">Elliptic Curve Cryptography</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>Public Keys:<ul>
|
<li>Public Keys:<ul>
|
||||||
@ -159,5 +162,5 @@
|
|||||||
|
|
||||||
<!--
|
<!--
|
||||||
MkDocs version : 1.6.1
|
MkDocs version : 1.6.1
|
||||||
Build Date UTC : 2026-02-15 08:18:57.856780+00:00
|
Build Date UTC : 2026-02-18 11:35:59.673884+00:00
|
||||||
-->
|
-->
|
||||||
|
|||||||
@ -56,6 +56,8 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
|
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../ecc/">Elliptic Curve Cryptography</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
|
|||||||
@ -54,6 +54,8 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
|
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../ecc/">Elliptic Curve Cryptography</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
|
|||||||
@ -82,6 +82,8 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
|
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../ecc/">Elliptic Curve Cryptography</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
||||||
<ul>
|
<ul>
|
||||||
@ -145,7 +147,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="doc doc-children">
|
<div class="doc doc-children">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -224,7 +226,7 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">153</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">153</span>
|
||||||
<span class="normal">154</span>
|
<span class="normal">154</span>
|
||||||
@ -242,7 +244,7 @@
|
|||||||
<span class="normal">166</span>
|
<span class="normal">166</span>
|
||||||
<span class="normal">167</span>
|
<span class="normal">167</span>
|
||||||
<span class="normal">168</span>
|
<span class="normal">168</span>
|
||||||
<span class="normal">169</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">are_coprime</span><span class="p">(</span><span class="n">p1</span><span class="p">,</span> <span class="n">p2</span><span class="p">):</span>
|
<span class="normal">169</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">are_coprime</span><span class="p">(</span><span class="n">p1</span><span class="p">,</span> <span class="n">p2</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function check if p1 and p2 are coprime</span>
|
<span class="sd"> This function check if p1 and p2 are coprime</span>
|
||||||
|
|
||||||
@ -339,7 +341,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">35</span>
|
<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>
|
<span class="normal">36</span>
|
||||||
@ -385,7 +387,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
<span class="normal">76</span>
|
<span class="normal">76</span>
|
||||||
<span class="normal">77</span>
|
<span class="normal">77</span>
|
||||||
<span class="normal">78</span>
|
<span class="normal">78</span>
|
||||||
<span class="normal">79</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">getPrimeNumber</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">safe</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
|
<span class="normal">79</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">getPrimeNumber</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">safe</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function generate a large prime number</span>
|
<span class="sd"> This function generate a large prime number</span>
|
||||||
<span class="sd"> based on "A method for Obtaining Digital Signatures</span>
|
<span class="sd"> based on "A method for Obtaining Digital Signatures</span>
|
||||||
@ -497,7 +499,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 81</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 81</span>
|
||||||
<span class="normal"> 82</span>
|
<span class="normal"> 82</span>
|
||||||
@ -524,7 +526,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
<span class="normal">103</span>
|
<span class="normal">103</span>
|
||||||
<span class="normal">104</span>
|
<span class="normal">104</span>
|
||||||
<span class="normal">105</span>
|
<span class="normal">105</span>
|
||||||
<span class="normal">106</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">getSmallPrimeNumber</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
<span class="normal">106</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">getSmallPrimeNumber</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function is deprecated</span>
|
<span class="sd"> This function is deprecated</span>
|
||||||
|
|
||||||
@ -617,7 +619,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">124</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">124</span>
|
||||||
<span class="normal">125</span>
|
<span class="normal">125</span>
|
||||||
@ -646,7 +648,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
<span class="normal">148</span>
|
<span class="normal">148</span>
|
||||||
<span class="normal">149</span>
|
<span class="normal">149</span>
|
||||||
<span class="normal">150</span>
|
<span class="normal">150</span>
|
||||||
<span class="normal">151</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">get_n_prime_numbers</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
<span class="normal">151</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_n_prime_numbers</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function return a list of n prime numbers</span>
|
<span class="sd"> This function return a list of n prime numbers</span>
|
||||||
|
|
||||||
@ -741,7 +743,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">108</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">108</span>
|
||||||
<span class="normal">109</span>
|
<span class="normal">109</span>
|
||||||
@ -757,7 +759,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
<span class="normal">119</span>
|
<span class="normal">119</span>
|
||||||
<span class="normal">120</span>
|
<span class="normal">120</span>
|
||||||
<span class="normal">121</span>
|
<span class="normal">121</span>
|
||||||
<span class="normal">122</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">get_prime_numbers</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
<span class="normal">122</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_prime_numbers</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function get all prime number of the n</span>
|
<span class="sd"> This function get all prime number of the n</span>
|
||||||
|
|
||||||
@ -840,7 +842,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 8</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 8</span>
|
||||||
<span class="normal"> 9</span>
|
<span class="normal"> 9</span>
|
||||||
@ -859,7 +861,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
<span class="normal">22</span>
|
<span class="normal">22</span>
|
||||||
<span class="normal">23</span>
|
<span class="normal">23</span>
|
||||||
<span class="normal">24</span>
|
<span class="normal">24</span>
|
||||||
<span class="normal">25</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">isPrimeNumber</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
<span class="normal">25</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">isPrimeNumber</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Check if the number p is a prime number or not. The function iterate until p is achieve.</span>
|
<span class="sd"> Check if the number p is a prime number or not. The function iterate until p is achieve.</span>
|
||||||
|
|
||||||
@ -944,7 +946,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">272</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">272</span>
|
||||||
<span class="normal">273</span>
|
<span class="normal">273</span>
|
||||||
@ -961,7 +963,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
<span class="normal">284</span>
|
<span class="normal">284</span>
|
||||||
<span class="normal">285</span>
|
<span class="normal">285</span>
|
||||||
<span class="normal">286</span>
|
<span class="normal">286</span>
|
||||||
<span class="normal">287</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">isSafePrime</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
<span class="normal">287</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">isSafePrime</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function has not been implemented yet, but check if the number n is a safe prime number. This function will test different properties of the possible prime number n</span>
|
<span class="sd"> This function has not been implemented yet, but check if the number n is a safe prime number. This function will test different properties of the possible prime number n</span>
|
||||||
|
|
||||||
@ -1044,7 +1046,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">171</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">171</span>
|
||||||
<span class="normal">172</span>
|
<span class="normal">172</span>
|
||||||
@ -1073,7 +1075,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
<span class="normal">195</span>
|
<span class="normal">195</span>
|
||||||
<span class="normal">196</span>
|
<span class="normal">196</span>
|
||||||
<span class="normal">197</span>
|
<span class="normal">197</span>
|
||||||
<span class="normal">198</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">sieveOfEratosthenes</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
<span class="normal">198</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">sieveOfEratosthenes</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function build a list of prime number based on the Sieve of Erastosthenes</span>
|
<span class="sd"> This function build a list of prime number based on the Sieve of Erastosthenes</span>
|
||||||
|
|
||||||
@ -1168,7 +1170,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Numbers/primeNumber.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">259</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">259</span>
|
||||||
<span class="normal">260</span>
|
<span class="normal">260</span>
|
||||||
@ -1181,7 +1183,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
<span class="normal">267</span>
|
<span class="normal">267</span>
|
||||||
<span class="normal">268</span>
|
<span class="normal">268</span>
|
||||||
<span class="normal">269</span>
|
<span class="normal">269</span>
|
||||||
<span class="normal">270</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">sophieGermainPrime</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
<span class="normal">270</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">sophieGermainPrime</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Check if the number p is a safe prime number: 2p + 1 is also a prime</span>
|
<span class="sd"> Check if the number p is a safe prime number: 2p + 1 is also a prime</span>
|
||||||
|
|
||||||
@ -1224,7 +1226,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="doc doc-children">
|
<div class="doc doc-children">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1296,7 +1298,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Numbers/numbers.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Numbers/numbers.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 4</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 4</span>
|
||||||
<span class="normal"> 5</span>
|
<span class="normal"> 5</span>
|
||||||
@ -1312,7 +1314,7 @@ https://dl.acm.org/doi/pdf/10.1145/359340.359342</p>
|
|||||||
<span class="normal">15</span>
|
<span class="normal">15</span>
|
||||||
<span class="normal">16</span>
|
<span class="normal">16</span>
|
||||||
<span class="normal">17</span>
|
<span class="normal">17</span>
|
||||||
<span class="normal">18</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">fibonacci</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
<span class="normal">18</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">fibonacci</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function generate the list of Fibonacci</span>
|
<span class="sd"> This function generate the list of Fibonacci</span>
|
||||||
|
|
||||||
|
|||||||
BIN
site/objects.inv
BIN
site/objects.inv
Binary file not shown.
@ -52,6 +52,8 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
|
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../ecc/">Elliptic Curve Cryptography</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
@ -115,7 +117,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="doc doc-children">
|
<div class="doc doc-children">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -139,6 +141,7 @@
|
|||||||
<div class="doc doc-contents ">
|
<div class="doc doc-contents ">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p>This class generate public key based on RSA algorithm</p>
|
<p>This class generate public key based on RSA algorithm</p>
|
||||||
|
|
||||||
|
|
||||||
@ -191,7 +194,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<details class="quote">
|
<details class="quote">
|
||||||
<summary>Source code in <code>Cryptotools/Encryptions/RSA.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Encryptions/RSA.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 45</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 45</span>
|
||||||
@ -323,7 +325,7 @@
|
|||||||
<span class="normal">171</span>
|
<span class="normal">171</span>
|
||||||
<span class="normal">172</span>
|
<span class="normal">172</span>
|
||||||
<span class="normal">173</span>
|
<span class="normal">173</span>
|
||||||
<span class="normal">174</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span> <span class="nc">RSA</span><span class="p">:</span>
|
<span class="normal">174</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">RSA</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This class generate public key based on RSA algorithm</span>
|
<span class="sd"> This class generate public key based on RSA algorithm</span>
|
||||||
|
|
||||||
@ -334,7 +336,7 @@
|
|||||||
<span class="sd"> private: Object of the RSAKey for the private key</span>
|
<span class="sd"> private: Object of the RSAKey for the private key</span>
|
||||||
<span class="sd"> """</span>
|
<span class="sd"> """</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Build a RSA Key</span>
|
<span class="sd"> Build a RSA Key</span>
|
||||||
<span class="sd"> """</span>
|
<span class="sd"> """</span>
|
||||||
@ -343,7 +345,7 @@
|
|||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_public</span> <span class="o">=</span> <span class="kc">None</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_public</span> <span class="o">=</span> <span class="kc">None</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_private</span> <span class="o">=</span> <span class="kc">None</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_private</span> <span class="o">=</span> <span class="kc">None</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">generateKeys</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="mi">512</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">generateKeys</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="mi">512</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function generate both public and private keys</span>
|
<span class="sd"> This function generate both public and private keys</span>
|
||||||
<span class="sd"> Args:</span>
|
<span class="sd"> Args:</span>
|
||||||
@ -376,26 +378,26 @@
|
|||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_private</span> <span class="o">=</span> <span class="n">RSAKey</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">getsizeof</span><span class="p">(</span><span class="n">d</span><span class="p">))</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_private</span> <span class="o">=</span> <span class="n">RSAKey</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">getsizeof</span><span class="p">(</span><span class="n">d</span><span class="p">))</span>
|
||||||
|
|
||||||
<span class="nd">@property</span>
|
<span class="nd">@property</span>
|
||||||
<span class="k">def</span> <span class="nf">e</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">e</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_public</span><span class="o">.</span><span class="n">key</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_public</span><span class="o">.</span><span class="n">key</span>
|
||||||
|
|
||||||
<span class="nd">@property</span>
|
<span class="nd">@property</span>
|
||||||
<span class="k">def</span> <span class="nf">d</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">d</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_private</span><span class="o">.</span><span class="n">key</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_private</span><span class="o">.</span><span class="n">key</span>
|
||||||
|
|
||||||
<span class="nd">@property</span>
|
<span class="nd">@property</span>
|
||||||
<span class="k">def</span> <span class="nf">n</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">n</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_public</span><span class="o">.</span><span class="n">modulus</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_public</span><span class="o">.</span><span class="n">modulus</span>
|
||||||
|
|
||||||
<span class="nd">@property</span>
|
<span class="nd">@property</span>
|
||||||
<span class="k">def</span> <span class="nf">p</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">p</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_p</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_p</span>
|
||||||
|
|
||||||
<span class="nd">@property</span>
|
<span class="nd">@property</span>
|
||||||
<span class="k">def</span> <span class="nf">q</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">q</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_q</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_q</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">encrypt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">encrypt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function return a list of data encrypted with the public key</span>
|
<span class="sd"> This function return a list of data encrypted with the public key</span>
|
||||||
|
|
||||||
@ -411,7 +413,7 @@
|
|||||||
<span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">dataEncoded</span>
|
<span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">dataEncoded</span>
|
||||||
<span class="p">)</span>
|
<span class="p">)</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">decrypt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">decrypt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function return a list decrypted with the private key</span>
|
<span class="sd"> This function return a list decrypted with the private key</span>
|
||||||
|
|
||||||
@ -427,7 +429,7 @@
|
|||||||
<span class="n">decrypted</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">chr</span><span class="p">(</span><span class="n">d</span><span class="p">))</span>
|
<span class="n">decrypted</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">chr</span><span class="p">(</span><span class="n">d</span><span class="p">))</span>
|
||||||
<span class="k">return</span> <span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">decrypted</span><span class="p">)</span>
|
<span class="k">return</span> <span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">decrypted</span><span class="p">)</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">_str2bin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">_str2bin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function convert a string into the unicode value</span>
|
<span class="sd"> This function convert a string into the unicode value</span>
|
||||||
|
|
||||||
@ -439,7 +441,7 @@
|
|||||||
<span class="sd"> """</span>
|
<span class="sd"> """</span>
|
||||||
<span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">ord</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">data</span><span class="p">)</span>
|
<span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">ord</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">data</span><span class="p">)</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">_inverseModular</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">_inverseModular</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function compute the modular inverse for finding d, the decryption key</span>
|
<span class="sd"> This function compute the modular inverse for finding d, the decryption key</span>
|
||||||
|
|
||||||
@ -458,7 +460,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="doc doc-children">
|
<div class="doc doc-children">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -483,7 +485,7 @@
|
|||||||
<p>Build a RSA Key</p>
|
<p>Build a RSA Key</p>
|
||||||
|
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Encryptions/RSA.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Encryptions/RSA.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">56</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">56</span>
|
||||||
<span class="normal">57</span>
|
<span class="normal">57</span>
|
||||||
@ -492,7 +494,7 @@
|
|||||||
<span class="normal">60</span>
|
<span class="normal">60</span>
|
||||||
<span class="normal">61</span>
|
<span class="normal">61</span>
|
||||||
<span class="normal">62</span>
|
<span class="normal">62</span>
|
||||||
<span class="normal">63</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="normal">63</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Build a RSA Key</span>
|
<span class="sd"> Build a RSA Key</span>
|
||||||
<span class="sd"> """</span>
|
<span class="sd"> """</span>
|
||||||
@ -567,7 +569,7 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Encryptions/RSA.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Encryptions/RSA.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">133</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">133</span>
|
||||||
<span class="normal">134</span>
|
<span class="normal">134</span>
|
||||||
@ -583,7 +585,7 @@
|
|||||||
<span class="normal">144</span>
|
<span class="normal">144</span>
|
||||||
<span class="normal">145</span>
|
<span class="normal">145</span>
|
||||||
<span class="normal">146</span>
|
<span class="normal">146</span>
|
||||||
<span class="normal">147</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">decrypt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
<span class="normal">147</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">decrypt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function return a list decrypted with the private key</span>
|
<span class="sd"> This function return a list decrypted with the private key</span>
|
||||||
|
|
||||||
@ -665,7 +667,7 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Encryptions/RSA.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Encryptions/RSA.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">117</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">117</span>
|
||||||
<span class="normal">118</span>
|
<span class="normal">118</span>
|
||||||
@ -681,7 +683,7 @@
|
|||||||
<span class="normal">128</span>
|
<span class="normal">128</span>
|
||||||
<span class="normal">129</span>
|
<span class="normal">129</span>
|
||||||
<span class="normal">130</span>
|
<span class="normal">130</span>
|
||||||
<span class="normal">131</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">encrypt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
<span class="normal">131</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">encrypt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function return a list of data encrypted with the public key</span>
|
<span class="sd"> This function return a list of data encrypted with the public key</span>
|
||||||
|
|
||||||
@ -718,7 +720,7 @@ Args:
|
|||||||
size: It's the size of the key and must be multiple of 64</p>
|
size: It's the size of the key and must be multiple of 64</p>
|
||||||
|
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Encryptions/RSA.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Encryptions/RSA.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">65</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">65</span>
|
||||||
<span class="normal">66</span>
|
<span class="normal">66</span>
|
||||||
@ -750,7 +752,7 @@ Args:
|
|||||||
<span class="normal">92</span>
|
<span class="normal">92</span>
|
||||||
<span class="normal">93</span>
|
<span class="normal">93</span>
|
||||||
<span class="normal">94</span>
|
<span class="normal">94</span>
|
||||||
<span class="normal">95</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">generateKeys</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="mi">512</span><span class="p">):</span>
|
<span class="normal">95</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">generateKeys</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="mi">512</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function generate both public and private keys</span>
|
<span class="sd"> This function generate both public and private keys</span>
|
||||||
<span class="sd"> Args:</span>
|
<span class="sd"> Args:</span>
|
||||||
@ -793,6 +795,7 @@ Args:
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="doc doc-object doc-class">
|
<div class="doc doc-object doc-class">
|
||||||
@ -809,6 +812,7 @@ Args:
|
|||||||
<div class="doc doc-contents ">
|
<div class="doc doc-contents ">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p>This class store the RSA key with the modulus associated
|
<p>This class store the RSA key with the modulus associated
|
||||||
The key is a tuple of the key and the modulus n</p>
|
The key is a tuple of the key and the modulus n</p>
|
||||||
|
|
||||||
@ -855,7 +859,6 @@ The key is a tuple of the key and the modulus n</p>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<details class="quote">
|
<details class="quote">
|
||||||
<summary>Source code in <code>Cryptotools/Encryptions/RSA.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Encryptions/RSA.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 9</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 9</span>
|
||||||
@ -892,7 +895,7 @@ The key is a tuple of the key and the modulus n</p>
|
|||||||
<span class="normal">40</span>
|
<span class="normal">40</span>
|
||||||
<span class="normal">41</span>
|
<span class="normal">41</span>
|
||||||
<span class="normal">42</span>
|
<span class="normal">42</span>
|
||||||
<span class="normal">43</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span> <span class="nc">RSAKey</span><span class="p">:</span>
|
<span class="normal">43</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">RSAKey</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This class store the RSA key with the modulus associated</span>
|
<span class="sd"> This class store the RSA key with the modulus associated</span>
|
||||||
<span class="sd"> The key is a tuple of the key and the modulus n</span>
|
<span class="sd"> The key is a tuple of the key and the modulus n</span>
|
||||||
@ -902,7 +905,7 @@ The key is a tuple of the key and the modulus n</p>
|
|||||||
<span class="sd"> modulus: It's the public modulus</span>
|
<span class="sd"> modulus: It's the public modulus</span>
|
||||||
<span class="sd"> length: It's the key length</span>
|
<span class="sd"> length: It's the key length</span>
|
||||||
<span class="sd"> """</span>
|
<span class="sd"> """</span>
|
||||||
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">modulus</span><span class="p">,</span> <span class="n">length</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">modulus</span><span class="p">,</span> <span class="n">length</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Contain the RSA Key. An object of RSAKey can be a public key or a private key</span>
|
<span class="sd"> Contain the RSA Key. An object of RSAKey can be a public key or a private key</span>
|
||||||
|
|
||||||
@ -917,22 +920,22 @@ The key is a tuple of the key and the modulus n</p>
|
|||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_length</span> <span class="o">=</span> <span class="n">length</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_length</span> <span class="o">=</span> <span class="n">length</span>
|
||||||
|
|
||||||
<span class="nd">@property</span>
|
<span class="nd">@property</span>
|
||||||
<span class="k">def</span> <span class="nf">key</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">key</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_key</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_key</span>
|
||||||
|
|
||||||
<span class="nd">@property</span>
|
<span class="nd">@property</span>
|
||||||
<span class="k">def</span> <span class="nf">modulus</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">modulus</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_modulus</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_modulus</span>
|
||||||
|
|
||||||
<span class="nd">@property</span>
|
<span class="nd">@property</span>
|
||||||
<span class="k">def</span> <span class="nf">length</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">length</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">length</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">length</span>
|
||||||
</code></pre></div></td></tr></table></div>
|
</code></pre></div></td></tr></table></div>
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="doc doc-children">
|
<div class="doc doc-children">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -997,7 +1000,7 @@ The key is a tuple of the key and the modulus n</p>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Encryptions/RSA.py</code></summary>
|
<summary>Source code in <code>Cryptotools/Encryptions/RSA.py</code></summary>
|
||||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">19</span>
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">19</span>
|
||||||
<span class="normal">20</span>
|
<span class="normal">20</span>
|
||||||
@ -1011,7 +1014,7 @@ The key is a tuple of the key and the modulus n</p>
|
|||||||
<span class="normal">28</span>
|
<span class="normal">28</span>
|
||||||
<span class="normal">29</span>
|
<span class="normal">29</span>
|
||||||
<span class="normal">30</span>
|
<span class="normal">30</span>
|
||||||
<span class="normal">31</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">modulus</span><span class="p">,</span> <span class="n">length</span><span class="p">):</span>
|
<span class="normal">31</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">modulus</span><span class="p">,</span> <span class="n">length</span><span class="p">):</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> Contain the RSA Key. An object of RSAKey can be a public key or a private key</span>
|
<span class="sd"> Contain the RSA Key. An object of RSAKey can be a public key or a private key</span>
|
||||||
|
|
||||||
@ -1036,6 +1039,7 @@ The key is a tuple of the key and the modulus n</p>
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@ -1050,7 +1054,7 @@ The key is a tuple of the key and the modulus n</p>
|
|||||||
</div>
|
</div>
|
||||||
</div><footer>
|
</div><footer>
|
||||||
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
|
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
|
||||||
<a href="../curves/" class="btn btn-neutral float-left" title="Curves"><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
<a href="../ecc/" class="btn btn-neutral float-left" title="Elliptic Curve Cryptography"><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
||||||
<a href="../utils/" class="btn btn-neutral float-right" title="Utils">Next <span class="icon icon-circle-arrow-right"></span></a>
|
<a href="../utils/" class="btn btn-neutral float-right" title="Utils">Next <span class="icon icon-circle-arrow-right"></span></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -1074,7 +1078,7 @@ The key is a tuple of the key and the modulus n</p>
|
|||||||
<span class="rst-current-version" data-toggle="rst-current-version">
|
<span class="rst-current-version" data-toggle="rst-current-version">
|
||||||
|
|
||||||
|
|
||||||
<span><a href="../curves/" style="color: #fcfcfc">« Previous</a></span>
|
<span><a href="../ecc/" style="color: #fcfcfc">« Previous</a></span>
|
||||||
|
|
||||||
|
|
||||||
<span><a href="../utils/" style="color: #fcfcfc">Next »</a></span>
|
<span><a href="../utils/" style="color: #fcfcfc">Next »</a></span>
|
||||||
|
|||||||
Binary file not shown.
@ -52,6 +52,8 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
|
<li class="toctree-l1"><a class="reference internal" href="../curves/">Curves</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../ecc/">Elliptic Curve Cryptography</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
<p class="caption"><span class="caption-text">Public Keys</span></p>
|
||||||
<ul>
|
<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>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Utils/utils.py</code></summary>
|
<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>
|
<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>
|
<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">59</span>
|
||||||
<span class="normal">60</span>
|
<span class="normal">60</span>
|
||||||
<span class="normal">61</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">-></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">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function perform an binary exponentiation, also known as Exponentiation squaring.</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>
|
<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>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Utils/utils.py</code></summary>
|
<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>
|
<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>
|
<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">30</span>
|
||||||
<span class="normal">31</span>
|
<span class="normal">31</span>
|
||||||
<span class="normal">32</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">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function compute the Extended Euclidean algorithm</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>
|
<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>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Utils/utils.py</code></summary>
|
<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>
|
<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>
|
<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">81</span>
|
||||||
<span class="normal">82</span>
|
<span class="normal">82</span>
|
||||||
<span class="normal">83</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">"""</span>
|
<span class="w"> </span><span class="sd">"""</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"> 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>
|
<span class="sd"> n ** e = {</span>
|
||||||
@ -470,7 +472,7 @@ Args:
|
|||||||
<p>the GCD</p>
|
<p>the GCD</p>
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details class="quote">
|
<details class="mkdocstrings-source">
|
||||||
<summary>Source code in <code>Cryptotools/Utils/utils.py</code></summary>
|
<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>
|
<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>
|
<span class="normal"> 4</span>
|
||||||
@ -485,7 +487,7 @@ Args:
|
|||||||
<span class="normal">13</span>
|
<span class="normal">13</span>
|
||||||
<span class="normal">14</span>
|
<span class="normal">14</span>
|
||||||
<span class="normal">15</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">"""</span>
|
<span class="w"> </span><span class="sd">"""</span>
|
||||||
<span class="sd"> This function calculate the GCD (Greatest Common Divisor of the number a of b</span>
|
<span class="sd"> This function calculate the GCD (Greatest Common Divisor of the number a of b</span>
|
||||||
<span class="sd"> Args:</span>
|
<span class="sd"> Args:</span>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user