diff options
author | Holden Rohrer <holden.rohrer@gmail.com> | 2019-11-11 22:53:52 -0500 |
---|---|---|
committer | Holden Rohrer <holden.rohrer@gmail.com> | 2019-11-11 22:53:52 -0500 |
commit | 303437435f4b6ec660a8b289055fa190e1028328 (patch) | |
tree | b8beff898fca07682250b283a16396098e0c174f /final/rsa-decrypt.py | |
parent | 1c34256f21fb04190e91f648fb7f170be61c47eb (diff) |
simpler rsa
Diffstat (limited to 'final/rsa-decrypt.py')
-rw-r--r-- | final/rsa-decrypt.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/final/rsa-decrypt.py b/final/rsa-decrypt.py new file mode 100644 index 0000000..335ed68 --- /dev/null +++ b/final/rsa-decrypt.py @@ -0,0 +1,29 @@ +encrypted = [405, 35, 133, 371, 435, 279] # Directly from demo output of encrypted +p = 29 +q = 17 +n = p*q +tot = (p-1)*(q-1) +e = 3 + +# Calculate d such that ed == 1 mod tot +d = 1 # Guess +while (e*d % tot != 1): + d += 1 +# Algorithm is currently extremely dumb + +def decrypt_block(blk): + return blk**d % n + +decrypted = [decrypt_block(block) for block in encrypted] + +messagenum = 0 +for block in decrypted: + messagenum += block + messagenum *= n + +message = '' +while messagenum > 0: + message += chr(messagenum%128) + messagenum = (messagenum-messagenum%128)//128 + +print(message) |