This commit is contained in:
gurkenhabicht 2024-02-18 21:52:35 +01:00
parent 0b53cf4500
commit 57dfce6400
1 changed files with 28 additions and 19 deletions

View File

@ -12,24 +12,46 @@ common divisor](https://en.wikipedia.org/wiki/Greatest_common_divisor) via
[euclidean [euclidean
algorithm](https://crypto.stanford.edu/pbc/notes/numbertheory/euclid.html) algorithm](https://crypto.stanford.edu/pbc/notes/numbertheory/euclid.html)
`d` is the modular inverse of e and phi $$
\phi(n) = (p-1)(q-1)
$$
--- and further
$$ $$
1 < \phi < n 1 < \phi < n
$$ $$
There is also
$$
\phi = (p-1) * (q-1)
$$
Encryption, public key `e` is a prime between 2 and phi Encryption, public key `e` is a prime between 2 and phi
$$ $$
2 < e < \phi 2 < e < \phi
$$ $$
Decryption, private key `d`
$$
d\ e\ mod\ \phi(n) \equiv 1
$$
$$
d\ e \equiv 1\ (mod\ \phi(n))
$$
`d` is the modular inverse of e and phi and makes the private key.
$$
Cipher = msg^{d}\ mod\ \phi
$$
$$
Cleartext = cipher^{e}\ mod\ \phi
$$
---
`e` and `d` may be found through the following Python snippets
```python ```python
possible_e = [] possible_e = []
for i in range (2, phi): for i in range (2, phi):
@ -37,11 +59,6 @@ for i in range (2, phi):
possible_e.append() possible_e.append()
``` ```
Decryption, private key `d`
$$
d * e mod \phi = 1
$$
```python ```python
possible_d = [] possible_d = []
for i in range (phi + 1, phi + foo): for i in range (phi + 1, phi + foo):
@ -49,14 +66,6 @@ for i in range (phi + 1, phi + foo):
possible_d.append() possible_d.append()
``` ```
$$
Cipher = msg ** d mod \phi
$$
$$
Cleartext = cipher ** e mod \phi
$$
## Euklid ## Euklid
Just a short excourse: Just a short excourse: