Diffie-Hellman, ElGamal and RSA
posted April 2014
I'm in holidays for a week, easter I think, anyway, I didn't know what to do so I coded the Diffie-Hellman handshake, the ElGamal cryptosystem and the RSA cryptosystem in python.
You can check the code on github here: github.com/mimoo/crypto_studies
tests.py file to see how the classes are used. Here's an extract:
"""Testing Diffie Hellman """ # 1. BOB bob = DiffieHellman() # G and g are generated automatically print("G is a group mod %i and of order %i, and the generator g is %i" % (bob.G, bob.G, bob.g)) # We generate a secret and a public key bob.generate_secret() bob.generate_public() # 2. ALICE # We already know G and g alice = DiffieHellman(bob.G, bob.g) # We generate the secret key and the public key alice.generate_secret() alice.generate_public() # 3. WE CREATE THE SHARED KEY bob.generate_sharedkey(alice.publickey) alice.generate_sharedkey(bob.publickey) # Bob and Alice now have the same _sharedkey and the same public (G, g)
README says, it might be oversimplified and not totally correct. I mostly did that to do something in Python and also try to memorize how those systems work.
I've also done a lot of Unity this week-end. And also a bit of WxPython but I don't really like it. I think I should focus on QT and C++.