From: Ross MacGregor on 22 Jun 2010 02:40 Is there a symmetric block encryption algorithm that can encrypt a 108 bit buffer using a key and output a 108 bit buffer? I'd like to feed it a sequential range of numbers (1001,1002,1003,1004...) and have the algorithm generate for me a pseudo-random sequence of numbers that are guaranteed to be unique. This is why it is important that I only encode the 108 bits of data as this is the size of the random number I need to generate. I've been searching for days for a bit level encryption algorithm but everything seems to be based on byte sized buffers.
From: Mok-Kong Shen on 22 Jun 2010 02:57 Ross MacGregor wrote: > Is there a symmetric block encryption algorithm that can encrypt a 108 > bit buffer using a key and output a 108 bit buffer? > > I'd like to feed it a sequential range of numbers > (1001,1002,1003,1004...) and have the algorithm generate for me a > pseudo-random sequence of numbers that are guaranteed to be unique. This > is why it is important that I only encode the 108 bits of data as this > is the size of the random number I need to generate. > > I've been searching for days for a bit level encryption algorithm but > everything seems to be based on byte sized buffers. What do you exactly mean by 'byte sized buffers' above? Do you simply want a more or less good bijective mapping that transforms 108 bits to 108 bits or are you more interested in how its code is implemented (i.e. whether it ever uses instructions of byte operations or even word operations on a computer)? M. K. Shen
From: Paul Rubin on 22 Jun 2010 03:17 Ross MacGregor <ross__macgregor(a)hotmail.com> writes: > Is there a symmetric block encryption algorithm that can encrypt a 108 > bit buffer using a key and output a 108 bit buffer? If you don't care about speed, the simplest thing to do is chop the 108 bits in half and make a Feistel cipher using some standard cryptographic hash function as the round function. There was also the Hasty Pudding Cipher, a variable-sized block cipher from the original AES competition. It never caught on, but was interesting. A web search should find info. What is the application, if you can say? A block cipher may not be what you want. If you just want unique 108 bit numbers, you're better off using plain random numbers and accepting the very low chance of an collision through an accident of nature, than trying to generate them from a sequence, and ending up with the much higher chance of using the same seed twice through the likelier error of some human.
From: Kristian Gj�steen on 22 Jun 2010 04:15 Ross MacGregor <ross__macgregor(a)hotmail.com> wrote: >Is there a symmetric block encryption algorithm that can >encrypt a 108 bit buffer using a key and output a 108 bit >buffer? Hasty Pudding cipher and Luby-Rackoff are key words. -- kg
From: Francois Grieu on 22 Jun 2010 07:12
On 22/06/2010 09:17, Paul Rubin wrote: > Ross MacGregor <ross__macgregor(a)hotmail.com> writes: >> Is there a symmetric block encryption algorithm that can encrypt a 108 >> bit buffer using a key and output a 108 bit buffer? > > If you don't care about speed, the simplest thing to do is chop the 108 > bits in half and make a Feistel cipher using some standard cryptographic > hash function as the round function. Yes, 4 rounds of Feistel cipher is fine if the number of bits is sufficiently low that an adversary can not exhaust the plain/ciphertext space, which is the case in practice for 108 bits. That's the Luby-Rackoff construction. On the other hand, to take an extreme example, with 2 bits, knowing 2 (plaintext,ciphertext) pairs for a Feistel cipher is enough to deduce the other 2 pairs, when a perfect cipher would require 3 known pairs to deduce the last one. Francois Grieu |