From: lwloen@rchland.vnet.ibm.com (Larry Loen)
Subject: Missing subject header
Date: Mon, 17 Aug 1992 22:24:10 GMT
Reply-To: lwloen@vnet.ibm.com
Disclaimer: This posting represents the poster's views, not necessarily those of IBM
Organization: IBM Rochester

In article <1992Aug12.185029.13607@mintaka.lcs.mit.edu> Eric Knight writes:

>Yes, I was attempting to create an encryption that would become
>I/O bound as the limit to its speed.  Most other systems become
>CPU bound (DES, great example.)  I/O is significantly slower than
>CPU and that causes problems repeatitively trying to guess it.

Well, we're all for a fast system. Speed is, unfortuately, one of the later design
criteria.  The system has to take a LOT longer to solve than it does to encrypt. 
If breaking it takes only 100,000 times as long to do as encrypting it, then it
will be a failure in virtually any application I can imagine.  If it doesn't work,
fast run time will not be impressive.

Cryptography has great appeal to any number of people.
It looks so easy!  And, indeed.  Nothing is easier than proposing a new
encryption algorithm.  Nothing is harder than figuring out whether it is any
good.

I am hardly the top gun in the universe on this topic, but I have learned
a considerable respect for the need to study it.  It is very highly probable
that unless you get out and study a bit, you will produce a system that 
runs fast, scrambles the data impressively to the eye, with cipher output 
output passing all kinds of statistical tests for randomness, has a 500 gabillion
bit keyspace, but can be solved by someone you've never heard of that knows what
they are doing.  Oh, yes.  The system did stump me and all your friends, too.  Just
didn't stump the guy you really needed to fool.  The history of cryptography
simply abounds with examples of this.  Read "The Codebreakers" by David Kahn
(in most libraries and quite good).

I also highly recommend that you acquire some experience in breaking cryptography
systems.  There are no scientific proofs for what makes a system good.  Lots of
mathematical things hold "in general", but fall apart because some niggling little
special case comes up that an attacker can expect to exploit sooner or later,
and that brings the whole edifice down.  There's even a semi-formal name for
this.  It's called "entering" the cipher and once you have done so, a great 
percentage of systems slowly but surely break as a whole.  Or, enough to
steal the PIN on someone's ATM card or the like.  

Unless you have broken quite a few of the nontrivial, classical cryptography
systems, your chances of developing something good are pretty small.  There's
so many things you have to guard against.  And, only practical experience and
lots of study will give you a clue as to what they are.  Do you know whether
your system is vulnerable to various forms of advanced mathematics?  Do you
know, given that a lot of data is boilerplate and may be correctly guessed,
how many bits of data that have to be guessed to defeat you?  It's a long list,
and I've only typed in a little bit of it. . .

-- 
   Larry W. Loen        |  My Opinions are decidedly my own, so please
                        |  do not attribute them to my employer
Newsgroups: sci.crypt