OTP

OTP is an encryption program that uses the one-time pad algorithm to allow two parties to communicate securely.

description

download

specifications

OTP is an encryption program that uses the one-time pad algorithm to allow two parties to communicate securely, without worrying about unauthorized people listening in. OTP compresses plaintext input to save pad, has features that assist with the bureaucracy of pad management, and comes with built-in help. OTP project is written in the Python programming language and requires a Python interpreter to run.

To use OTP 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 OTP'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. OTP's default behavior is to always avoid reusing pad data, unless you explicitly tell it otherwise.

And here is the output of 'otp --help':

OTP version 1.61, an encoder/decoder for one-time pads. Standard usage:

OTP remembers what ranges of what pad files have been used, and avoids re-using those ranges when encoding. Because OTP compresses plaintext input to save pad, encoding and decoding are not symmetrical; thus, OTP needs to be told whether it is encoding or decoding (-e or -d).

All options:

-e Encrypt -d Decrypt -p PAD | --pad=PAD Use PAD for pad data. -o OUT | --output=OUT Output to file OUT ("-" for stdout) --offset=N Control the pad data start offset -n | --no-trace Leave no record of pad usage in your config --no-vc Ignore SVN/CVS control of the config area -C DIR | --config=DIR Specify DIR (instead of ~/.otp) as the config area --intro Show an introduction to OTP and one-time pads -v | -V | --version Show version information -? | -h | --help Show usage