Algorithms

There are several interesting algorithms used in Nym. First and foremost is the routing algorithm, which is the key to ensuring anonymity on the Nym network. The routing is done probabilistically along routes that have transferred messages. To send a message, a user will first have to broadcast it to all of his/her connecting neighbors. Once s/he has received a message from that user along a specific route, s/he can then send the message along that route to that user. A list of such routes is built up and used to forward and send messages by choosing at route at random from the list. See this PowerPoint demonstration, starting on the "Routing Demo" slide, for more details.

Another interesting algorithm involves the generation of RSA public and private key pairs from the supplied username and password. The characters of the username and password strings are converted to ASCII values, with the value thirty-two subtracted from each, so it is two digits long, and if it is only one digit, a zero is added to the beginning. The digits are all concatinated together as a BigInteger, which is then modded by the largest value for a long, and then is used as a seed.

Finally, we also use RSA to digitally sign and verify our messages, along with 56-bit DES encryption over each neighbor-to-neighbor TCP link. See the PowerPoint demonstration starting on the "Digital Signatures" slide and the "Link-to-link" slide for more details.