From: Ross MacGregor on
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
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
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
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
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