A HARDWARE-FRIENDLY ENCRYPTION SCHEME - IS IT SECURE?

Please refer to the file basics.txt to get a general outline of the scheme,
or sm.c for a sample C program that illustrates the idea.

I have a pretty strong hunch that this method of encryption is fairly
secure. When I try to think of how to attack it, I'm stumped. But I have no
experience in cryptanalysis. My background in number theory and discrete
math in general is just a bit weak for this. I would be grateful to anybody
who wants to take up the challenge of breaking this scheme, or getting some
quantitative idea of the difficulty or breaking it, or suggesting
modifications to make it stronger.

Assume that all the logic in the state machine is public information and
therefore known to the attacker. Given the ciphertext, can the attacker
determine either the cleartext or the key? Given the ciphertext and the
cleartext, can the attacker determine the key? In the latter scenario, I
think the key might still be safe.

In case it's useful, the files b1.txt and b2.txt show the first 70 state
bits in a couple of runs, where the key differed by a single bit. The
difference propogates to about half the state bits within five transitions.
The setup for these runs is shown in the last couple of entries of the
makefile.

Please address any questions or comments to <wware@world.std.com>.

