                Privacy For Pictures
    
pfp.exe is a viewer for (encrypted) multi-jpeg files.

Copy all jpeg files into one big file:

copy /b *.jpg filename.pfp >copy.log

start pfp.exe by typing:

pfp filename.pfp

in a DOS box or use the WINDOWS Explorer and double click on
the multi-jpeg file filename.pfp. When you are asked for the
application to open filename.pfp with, select pfp.exe. Press
SPACE or left mouse button to display the next or B or
right mouse button to display the previous picture.
X or <ALT><F4> terminates the program.

pfp.exe can only display baseline (sequential) encoded jpeg
files. Progressive jpeg is not supported. If an input file
contains an unsupported jpeg format or a corrupted picture,
pfp.exe does not just skip this picture but terminates 
immediately. Read the error message in the generated log file 
(pfp.log). Together with the log file from the copy command 
(copy.log) you can identify the unsupported or corrupted
jpeg file. Open this picture in a picture editor (most of
them read also corrupted files) and save it as baseline
encoded jpeg. Note, this may result in a loss of quality.
You can also use specialized software to do a lossles 
conversion from progressive to baseline jpeg.

When the multi-jpeg file is displayed by pfp.exe without an 
error, you can encrypt the file by:

crypt infile outfile

crypt.exe will ask you for an 24 character password. You can use
crypt.exe also to change the password or to decrypt a file:
if the infile is already encrypted, you will be asked for the
old and a new password. If you enter no new password, infile
is decrypted to outfile. If pfp.exe opens an encrypted
multi-jpeg file, it will also ask you for the password.

-----------------------------------------------------------------

Security notes:

After an encryption you have to physically erase the original files.
A simple DEL command does NOT physically erase the file. You have 
to overwrite all disk sectors used by the files. If you must be
absolutely sure that the data can't be restored, you have to
do this more than once. 

pfp.exe uses in internal buffer of 2048*1556*3 bytes. If there 
are not many other programs running at the same time, there
should be no big risk that portions of the decoded picture
are swapped to disk. But again, if you must be absolutely sure, 
that no data can be restored, you have to physically erase
the swap file after using pfp.exe. 

If you get an encrypted multi-jpeg file, change the password
and physically erase the old file. You can hide the real size
of an encrypted file by copying additional data to the end
of the file. Because the real size is encrypted in the file,
this extra bytes are ignored in the decryption process.

-----------------------------------------------------------------

Additional notes:

If you want to be able to restore the original files from the
multi-jpeg file, don't use the copy command noted above, but
write your own copy program, which inserts a jpeg comment
before each picture. This comment should contain the name 
and the size of the original picture file. The jpeg comment
is ignored in the decoding process but allows you to simple
restore the original files. You can also insert an index
table at the beginning of the file to have random access
to any picture in the file (but you have to modify pfp.c).


This version of pfp.exe uses IDEA as encryption algorithm.
IDEA is patented by ASCOM. The free use of IDEA is very 
restricted, so you probably may need an enduser license.
See  http://www.ascom.ch/infosec/idea.html  for more information.

It's nearly unbelievable that such a simple coding scheme can
be patented. It's even simpler than the also crazy UNISYS LZW
patent. I'm waiting for the day, when a single variable
assignment is patented. If I have some time, I will replace
it by the free BLOWFISH algorithm.

Please report any bug to klee@informatik.unibw-muenchen.de

-----------------------------------------------------------------

Freedom for all numbers!

Nobody should have the right to exclusively own 
a number. Programs are nothing but large numbers!

A number can't be good or bad! Only a person who 
reads a number can be bad. So don't forbid numbers 
but try to make bad people good. A censored text 
or picture is nothing but a large number!

Remember: Any number is a substring of Pi (3.14...). 
If you write Pi you have violated all existing 
copyrights and published all forbidden text, pictures 
and sounds of the past, present and future.

 
