/sidh

Java implementation of the supersingular isogeny Diffie-Hellman key exchange

Primary LanguageJavaThe UnlicenseUnlicense

This README might make more sense if you've read "Ready Player One"

...

Hola! Thanks for checking out my project ... consider it one of "Arty's Missives" :)

I want to be able to communicate with Parzival and the rest of the High-Five (my friends) without worrying that Sorrento and the Sixers (the enemy) might be snooping in on our text message conversations. There are awesome options out there for secure messaging apps, but ever since I learned about quantum computers and Shor's algorithm there has been this little nagging voice in my head that says "what if Innovative Online Industries (IOI) could build a quantum computer?!?!?" Okay kidding aside, the voice in my head actually says something more like "I want to graduate in style and what better way than by doing a kick-ass final project!" My goal is to create a messaging app with post quantum encryption. I like Signal so I am trying to make my code compatible with the Signal framework and style guide.

Since these algorithms are so new, I want to include at least 2 different options. This first upload is my implementation of Supersingular Isogeny Diffie-Hellman (sidh). I translated Microsoft's C implementation to Java. Kind of. It's not a direct translation because I also made it object oriented. I'm working on Java code for RLWE and hope to post that soon. Then I will work on putting them into a clone of Signal.

I want to become a ninja programmer so I'm posting these in a public place where I might get some constructive heckling.