Intercepting Microsoft wireless keyboard communications

Steven M. Bellovin smb at cs.columbia.edu
Mon Dec 10 23:03:14 EST 2007


On Tue, 11 Dec 2007 13:49:19 +1000
"James A. Donald" <jamesd at echeque.com> wrote:

> Steven M. Bellovin wrote:
> > It's moderately complex if you're trying to conserve bandwidth
> > (which translates to power) and preserve a datagram model.  The
> > latter constraint generally rules out stream ciphers; the former
> > rules out things like encrypting the keystroke plus seven random
> > bytes with a 64-bit block cipher.  Power is also an issue if your
> > cipher uses very much CPU time or custom hardware.
> > > I"m sure most readers of this list can propose *some* solution.
> > > It's
> > instructive, though, to consider everything that needs to go into a
> > full system solution, including the ability to resynchronize cipher
> > states and the need to avoid confusing naive users if the cat
> > happened to fall asleep on the space bar while the CPU was turned
> > off.
> 
> Use CFB mode.  That takes care of all the above problems.  You can
> transmit any small bunch of bits, don't need to transmit a complete
> block, and if the keyboard and the receiver get out sync, the
> keyboard's signal will be decrypted as garbage for the first 128
> bits.  If one has the keyboard regularly transmit "no key's pressed"
> from time to time, and if valid key press representations have a
> couple of check bits redundancy, with several keypresses being
> ignored after any invalid key signal, keyboard and receiver will
> synchronize with no fuss.
> 

Believe it or not, I thought of CFB...

Sending keep-alives will do nasties to battery lifetime, I suspect;
most of the time, you're not typing.  As for CFB -- with a 64-bit block
cipher (you want them to use DES? they're not going to think of anything
different), it will take 9 keypresses to flush the buffer.  With AES
(apparently your assumption), it will take 17 keypresses.  This isn't
exactly muggle-friendly.  Just think of the text in the instructions...
Redundancy?  I wonder how much is needed to avoid problems.  It has to
be a divisor of the cipher block size, which more or less means 8 extra
bits.  How much will that cost in battery life?


		--Steve Bellovin, http://www.cs.columbia.edu/~smb

---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo at metzdowd.com



More information about the cryptography mailing list