[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cypherpunks
Subject:    Block key generation algorithms
From:       Julian Assange <proff () suburbia ! net>
Date:       2002-04-27 1:03:00
[Download RAW message or body]


> which is encrypted disk drives.  You could encrypt each block of the disk
> with a block cypher using the same key (presumably in CBC or some similar 
> mode),
> but that just feels weak.  So you need some kind of generator of
> pretty-random-looking keys so that each block of the disk gets a different 
> key,

What I employ in rubberhose is a hardened version of this:

Take two encryption functions (or one encryption and one decryption
function), e_1, and e_2, and some salt. For each lsb in
the block number:

		block_key = block_key xor salt_n
		if (lsb == 0)
			block_key = e_1(master_key, block_key)
		else
			block_key = e_2(master_key2, block_key)

This provides a n^2 tree of keys such that even if you break one
of the leaves traveling up the branches to other leaves remains
very difficult. It also protects against yet to be discovered
related key, related plain-text attacks.

If you have blind faith in your ciphers:

	block_key = e(master_key, block_num)

Or:

	block_key = hash(master_key || block_num)

Is just fine.

--
 Julian Assange        |If you want to build a ship, don't drum up people
                       |together to collect wood or assign them tasks and
 proff@iq.org          |work, but rather teach them to long for the endless
 proff@gnu.ai.mit.edu  |immensity of the sea. -- Antoine de Saint Exupery

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic