Seth Woolley's Man Viewer

pad(1) - PAD - Random pad utility - man 1 pad

([section] manual, -k keyword, -K [section] search, -f whatis)
man plain no title

Pad(1)                       Free Speech Utilities                      Pad(1)

       PAD - Random pad utility

       Pad [OPTIONS] [infile] [-o outfile]

       PAD is a small command-line utility to separate one file(1,n) into two, each
       indistinguishable from white noise, and put them back together into the

        Pad accepts the following options:

       -r [num]

               Pad  will XOR in(1,8) [num] pads generated from random(3,4,6) data. if(3,n) this
               is ommited, pad will use either 1 or 0 random(3,4,6)  pads,  depending
               on  if(3,n)  there  is only one input file(1,n) or more than one, respec-

       -s [size]

               The output data will be [size] bytes. If this is less(1,3) than  the
               smallest input file(1,n), the output will be clipped to match, if(3,n) it
               is larger, random(3,4,6) data will be appended to the end. [size]  can
               be any value in(1,8) bytes, or a string(3,n) such as "2M", or "140K".

       -o [outfile]

               The  result  of  all  the XOR operations will be stored in(1,8) this
               file. If [output] is ommitted, pad will name the file(1,n) according
               to its MD5-sum, along with the rest of the random(3,4,6) pads.

       -h       Displays usage information.

       Aside  from  the  usual  (x86/unix,  GNU  C Compiler), you need OpenSSL

       Any number of input files may be specified, but if(3,n) they are unequal  in(1,8)
       size,  pad  will  only process the number of bytes in(1,8) the smallest file(1,n)
       unless otherwise specified by the -s flag.


               pad myfile.txt

       You now have pad-md5-xxxxxx.dat and pad-md5-yyyyyy.dat.

       pad pad-md5-xxxxxx.dat pad-md5-yyyyyy.dat -o output-file

       You  now  have  output-file,  which  is  identical  to   the   original
       myfile.txt, built from your two pad files.

               Let's use David Madore's method of distributed free speech:

       <download  pad-md5-aaaaaaa  through  ddddddd.dat from a pad repository>
       pad -s 128k myfile.txt pad-md5-*.dat Wrote pad-md5-eeeeeee.dat

       Now you upload pad-md5-eeeeeee.dat to some  pad  repository,  and  tell
       your  message's receiver where to get all files, aaaaaaa - eeeeeee, and
       the size of the original file(1,n), let's say, 12345 bytes. Receiver:

       pad -s 12345 pad-md5-*.dat -o myfile.txt Wrote myfile.txt

       Now your receiver has the same file(1,n) you started with, myfile.txt.

Possible Uses
       Free speech enforcement:

       Let's say you have a file(1,n) called decss.c (for example ;), and  want  to
       distribute  it, but are afraid of censorship.  Break it up into two pad
       files, distribute these each on separate unrelated  systems,  and  tell
       people where to get each (and how to re-assemble them).  Should someone
       go to one (or both) of the hosting systems and pressure them to  remove
       it,  each  can claim they're only hosting harmless, random(3,4,6) data.  It is
       mathematically impossible to prove that either one is  the  random(3,4,6)  one
       and the other was derived from the original file.

       Another  possibility here (and probably better) is the use of 5 or more
       pad files for this. This is shown in(1,8)  the  second  example  above.  See   me/madore/misc/freespeech.html   for
       more information about this.


       One-Time-Pad (OTP) encryption dates to long ago, and is  in(1,8)  many  ways
       much  more  secure  than  other  forms  of encryption that can be brute
       forced.  Keep a private random(3,4,6) pad between those you want to share data
       with, and simply transmit messages that have been merged with this pad,
       via any medium.  OTP encryption is as secure as your random(3,4,6) source  (in(1,8)
       this  case, from OpenSSL), and the pad itself. Keep in(1,8) mind it's called
       "One-time pad" for a reason -- If you use the same pad on two different
       plaintexts,  the  messages  (either  one)  can  no longer be considered

       Pad was written by xercist <> This manpage was for-
       matted by Aidian <>, from text written by xercist.

       You  can  likely find support and/or information regarding this program
       on in(1,8) #pad.

Version 1.0.4                      July 2000                            Pad(1)

References for this manual (incoming links)