OneTime: An Encoder/Decoder Using The "One-Time Pad" Method

Download OneTime version ONETIMEVERSION

OneTime is a public domain, open source encryption program that uses the one-time pad algorithm to allow two parties to communicate securely, without worrying about unauthorized people listening in. OneTime has features to assist with the bureaucracy of pad management and comes with built-in help. It is written in the Python programming language and requires a Python interpreter to run.

In Debian GNU/Linux or Ubuntu, you can just use the package manager to install the "onetime" package.

To use OneTime reliably, you need a source of good random data. On modern Unix systems, the /dev/random device is probably good enough (I haven't done the math myself, I'm just taking other people's word for it). On non-Unix systems, you're on your own. Whatever your source of random data, store the data in a file (that's the "pad") and point to it using OneTime's -p option when you encrypt; the recipient must use the same pad to decrypt, of course. Note that the one-time pad method depends completely on the quality of the pad data; if the pad is not truly random, the security of your messages cannot be guaranteed. Never encrypt different plaintexts with the same stretch of pad — doing so could reveal some or all of the used pad to eavesdroppers. OneTime's default behavior is to always avoid reusing pad data, unless you tell it otherwise.

OneTime was written by Karl Fogel.

Here is the output of 'onetime --intro':