[2363] in cryptography@c2.net mail archive

home help back first fref pref prev next nref lref last post

RE: Chaffing and winnowing - efficiency improvements

daemon@ATHENA.MIT.EDU (William Whyte)
Wed Mar 25 14:46:20 1998

From: William Whyte <wwhyte@baltimore.ie>
To: "cryptography@c2.net" <cryptography@c2.net>,
        "'Bill Stewart'"
	 <bill.stewart@pobox.com>
Date: Wed, 25 Mar 1998 15:16:38 -0000

>An interesting approach is to MAC the chaff bits using
>a different session key.  (This doubles the work for the
>sender, but the chaff already doubles the work for the receiver.)

Just a small point, but I don't think it does. You check the MAC given for
the current bit == 0 and that returns true or false. If the return value 
is true the bit is 0, if it's false the bit is one.

Here's an adaptation of the algorithm that's considerably faster and just
about maintains the illusion that we're MACing, not encrypting:

* To start with: start two random number generators. Seed one with your 
  "MAC" key. Seed the other with some other data.
* For every bit of the message: 
  * Get one byte of output from the good random number generator. XOR it 
    with the message bit to get byte 1, B1.
  * Get one byte of output from the other random number generator. Call 
    this B2. If B2 is the same as B1 (disregarding the final bit), discard 
    it and get another random byte from the second random number generator.
  * If the bit of the real message is 0, send {0, B1, 1, B2}. Otherwise, send
    {0, B2, 1, B1}

The recipient does this:

* Starts a random number generator seeded with the correct key.
* For every four-byte packet {0, b1, 1, b2} received:
  * get one byte B from the random number generator
  * If B = b1, the appropriate bit of the message = 0. Otherwise the bit = 1.

The idea is that the random byte serves here as an authenticator on the
received data, rather than simply providing a crude XOR cipher.

Cheers,

William


home help back first fref pref prev next nref lref last post