Project is now named Celeste
This commit is contained in:
parent
87917f9526
commit
269092fb53
45 changed files with 1507 additions and 12 deletions
18
celeste/crypto/rsa.py
Normal file
18
celeste/crypto/rsa.py
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
'''
|
||||
Simplification of Euler's Totient function knowing
|
||||
the prime factorisation for the public key N value.
|
||||
'''
|
||||
def _totient(p: int, q: int) -> int:
|
||||
return (p - 1) * (q - 1)
|
||||
|
||||
'''
|
||||
Implements RSA encryption as modular exponentiation.
|
||||
'''
|
||||
def encrypt(plaintext: int, e: int, N: int) -> int:
|
||||
return pow(plaintext, e, N)
|
||||
def decrypt(ciphertext: int, d: int, N: int) -> int:
|
||||
return pow(ciphertext, d, N)
|
||||
|
||||
def gen_private_key(e: int, p: int, q: int) -> int:
|
||||
return pow(e, -1, _totient(p, q))
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue