ElGamal encryption
Project description
elgamal-anass-daniel
A friendly module for testing ElGamal Cryptosystem. Moreover, it also brings futures such as validating primitive roots, obtaining them, and optimized operations such as Fast Modular Exponentiation.
Developed by Anass Anhari & Daniel Alamillo (c) 2023
Examples of How To Use
ElGamal built-in and optimized operations:
from ElGamal import ElGamal
elGamal = ElGamal()
# Fast Modular Exponentiation
elGamal.FastModExp(g=2, e=284523875345345, p=456), 32) # 32
elGamal.FastModExp(g=100, e=284523875345345, p=456) # 256
# Obtain Primitive Roots
elGamal.getPrimitiveRoots(5) # [2, 3]
elGamal.getPrimitiveRoots(29) # [2, 3, 8, 10, 11, 14, 15, 18, 19, 21, 26, 27]
# Obtain the First Primitive Root
elGamal.getFirstPrimitiveRoot(6) # None
elGamal.getPrimitiveRoots(29) # 2
# Test a Primitive Root
elGamal.isPrimitive(725, 829) # True
elGamal.isPrimitive(41, 101) # False
msg1 = ElGamal.Message("[Msg-1] Hola que tal estas! :D")
msg1.encrypt(g=2, g_x=1024, p=8820220609)
print(msg1.decrypt(x=10, p=8820220609))
Create a message, encrypt it and decrypt it:
from ElGamal import Message
msg1 = Message("[Msg-1] Hola que tal estas! :D")
msg1.encrypt(g=2, g_x=1024, p=8820220609)
print(msg1.decrypt(x=10, p=8820220609))
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for elgamal_anass_daniel-0.0.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70a2cf2c6bd6783d42bf5bc2d3710b7b77f1df398ffcd9ddd3c6066b5d2690c1 |
|
MD5 | 56cf532fc487c5ba64f5f65b85f4bdc3 |
|
BLAKE2b-256 | b0eae9ee6933bd31a1adc4a2faef41728eb027c9ae66d1319322cff042ff1e8a |
Close
Hashes for elgamal_anass_daniel-0.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e62dabff4e743c616c657c038b618e1dd5cdf60ca17f7f59471423b5522f07be |
|
MD5 | 510f95b5085b3aef0c6ed072728ae320 |
|
BLAKE2b-256 | 5254abc548f6a0f373e7af81425e61dc396f76369a045e7ef9157e81cdb1f4e8 |