Project: Leibniz Encryption

Dr. Nicholas Rescher, Distinguished Professor of Philosophy at the University of Pittsburgh, is, as written on his webpage, “A lifelong student of the work of the philosopher Leibniz,” and “… is responsible for the rediscovery and restoration of Leibniz’s cipher machine, a contrivance some 250 years ahead of its time in capability.”

During the summer of 2012, Dr. Rescher was working on a new edition of a novel on Leibniz, in which a new chapter would be dedicated to an encryption algorithm designed by Gottfried Leibniz. This algorithm encrypts text by rotating through a set of six alphabets at intervals configurable by the “Leibniz gear”, using the current alphabet as a substitution cypher for text. The rotation through several alphabets, not necessarily shifting alphabets at consistent intervals, increases the cryptographic keyspace and also prevents the encrypted text from being susceptible to simple frequency analysis. Furthermore, the inconsistent intervals between alphabet shifts is an added measure as compared to some polyalphabetic substitution ciphers such as the Vigenère cipher, which can be easily cracked using, for example, Kasiski’s test.

As Leibniz’ encryption algorithm has not been extensively studied, Dr. Rescher was interested in an implementation of this algorithm in order to assist in his research for the aforementioned novel, and especially interested to be able to test the encryption algorithm. An implementation did not seem to be available. To the best of our knowledge, the first publicly available implementation of Leibniz’ algorithm was created by Anastas, LLC, and is available as a GitHub repository.

The algorithm was implemented using the Python programming language and a graphical user interface was created using wxPython bindings. Configuration files and settings to compile the source into Mac OS X and Windows executables have been placed in the repository, and the GUI logic has been separated from the program logic in order to leave a command line only utility.

This entry was posted in Projects, Software Development. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>