[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

DOS disk encryptor



Ryan,
 
Good luck on building the DOS disk encryptor.  I belive that what you 
need to do is write a standard DOS disk driver (that can be installed in 
CONFIG.SYS) that implements the READ and WRITE primitives.  I belive 
that they use the same entry point (the STRATEGY entry) in the driver.  
You would basically just call the BIOS routines to do the actual i/o.  
 
You don't have to worry about the FAT etc, just encrypt everything.  You 
will probably want to use DES or IDEA and run it in CBC mode or Counter 
Mode.  You would use the DISK BLOCK NUMBER as a piece of the key 
material (or part of the Initialization Vector), hence, even if the same 
data appeared multiple places on the drive, it would appear different on 
the surface.  There is a good description of operation modes in "Modern 
Cryptology: a Tutorial" by Gilles Brassard (Springer Verlag Lecture 
Notes in Computer Science #325, 1988).  Denning's book covers it too.
 
I'd probably start out getting it running on a floppy.  After that, just 
use a separate partition to make life easier.  The driver is handed 
physical (or logical) block numbers, and these map directly to the 
physical drive block number by adding the offset of the beginning of 
partition.  At driver init time, you read the partition table on the 
hard disk, looking for a "system type" that identifies the partition as 
one of your encrypted ones.  Prompt for the pass phrase, and store it in 
the driver.  I assume that your concern is somebody physically grabbing 
the disk drive.  I don't have a problem with the pass phrase in memory, 
as long I have physical control of the system.
 
In some of the DOS references, there used to be a sample RAM DISK device 
driver.  You could use it as the skeleton to get the entry points
right, and then just encrypt the block and call the BIOS to do the 
i/o.
 
Have fun,
Eric Blossom