587 lines
29 KiB
Plaintext
587 lines
29 KiB
Plaintext
![]() |
////////////// //////////////// //////////////
|
||
|
//// //// ////
|
||
|
_________ /////////________ /////////_______ /////////________________
|
||
|
//// //// ////
|
||
|
////////////////// //// ////
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////
|
||
|
EFFector Online 4.05 1/7/1993 editors@eff.org
|
||
|
A Publication of the Electronic Frontier Foundation ISSN 1062-9424
|
||
|
|
||
|
-==--==--==-<>-==--==--==-
|
||
|
[Editor's Note: With this issue, EFFector Online will begin to
|
||
|
examine the technical, social, moral, legal and political issues
|
||
|
surrounding the uses of encryption in computer-based communications.
|
||
|
While many in various online communities around the world are highly
|
||
|
conversant with cryptography and encryption, many others are not.
|
||
|
Because of this we begin our series with Larry Loen's superb primer on
|
||
|
basic cryptography. This article originally appeared as a proto-FAQ
|
||
|
in the Usenet group, sci.crypt. Our readers with an interest in
|
||
|
learning about encryption on an ad-hoc basis are advised to read
|
||
|
sci-crypt and to participate in it. As with any other place on
|
||
|
the Net, "Ask. People know.How the world works is not a secret." -GV]
|
||
|
-==--==--==-<>-==--==--==-
|
||
|
|
||
|
HIDING DATA IN PLAIN SIGHT
|
||
|
Some Key Questions About Cryptography
|
||
|
BY LARRY LOEN (lwloen@rchland.vnet.ibm.com)
|
||
|
|
||
|
NOTE: The information and opinions expressed in this article
|
||
|
are those of the author and his collaborators and do not
|
||
|
represent the final word on these matters or the opinions,
|
||
|
views or policies of any company or organization.
|
||
|
|
||
|
|
||
|
Q1: What is cryptography? How, basically, does it work?
|
||
|
What are the basic terms used to describe cryptography?
|
||
|
|
||
|
Cryptography is the art and science of hiding data in plain sight.
|
||
|
It is also the art and science of stealing data hidden in plain sight.
|
||
|
There are at least three players. The first is the one who has
|
||
|
the original data, which is presumed to have high value to
|
||
|
others. This data is presumed to reside in a safe place that
|
||
|
no one but the originator and his/her friends can see. (If the
|
||
|
originator cannot physically secure the original data,
|
||
|
cryptography is a waste of time). Now, for cryptography to be
|
||
|
necessary, the data must, for some reason, have to be
|
||
|
transmitted over some public means such as a telephone line, a
|
||
|
letter through the mail; any means that cannot be physically
|
||
|
secured by the owner to a legitimate receiver of the data. The
|
||
|
receiver is the second party.
|
||
|
|
||
|
Cryptography is any transformation of the data into a form
|
||
|
that cannot (it is hoped) be recovered in a timely manner by an
|
||
|
unknown party, which is called here 'the opponent'.
|
||
|
The transformation is not some physical means, such as hiding the
|
||
|
data on microfilm or some such; it is some mathematical
|
||
|
transformation that scrambles the original data in a way
|
||
|
that the receiver on the other end knows how to unscramble.
|
||
|
|
||
|
The process of scrambling (transforming) the data is called
|
||
|
'encryption'. Unscrambling is called decryption. An
|
||
|
encryption system has two basic parts. 1) A general
|
||
|
transformation process called the encryption algorithm. 2) A
|
||
|
customization of that algorithm called a cipher key. The
|
||
|
sender and the receiver must find a secure means to exchange
|
||
|
the cipher key. That is, the same public means used to send
|
||
|
the encrypted data cannot be used. This may be a difficult
|
||
|
problem, and has a variety of solutions, but will be assumed
|
||
|
solved for now. Once the key is successfully exchanged, the
|
||
|
two parties can separately implement the encryption algorithm
|
||
|
and its inverse, the decryption algorithm.
|
||
|
|
||
|
At this point, the data can be transmitted in its encrypted form
|
||
|
using the agreed-to key to customize the general algorithm to a
|
||
|
particular version that transforms the data. Since the
|
||
|
encrypted data is sent over some insecure medium, it is assumed
|
||
|
that an opponent (the third party) may intercept the data,
|
||
|
possibly without being detected, and analyze the encrypted
|
||
|
text, also called cipher text.
|
||
|
|
||
|
In theory, any encryption system can be defeated, given enough
|
||
|
time. The amount of time it takes cannot always be predicted.
|
||
|
This is because the opponent can supply extra information
|
||
|
that might reduce the computation time a great deal. For one
|
||
|
thing, the sender and receiver may make a very poor choice of
|
||
|
cipher key. If the opponent has a list of poor keys, a
|
||
|
computer may permit a large list of such keys to be tried;
|
||
|
if the poor key actually used is on the list, the opponent wins
|
||
|
even if the encryption system is otherwise secure.
|
||
|
|
||
|
All methods the opponent dreams up have one thing in common.
|
||
|
It is an attempt to recover the original data without advance
|
||
|
knowledge of the particular cipher key. There are a wide
|
||
|
variety of means available and some will be described later on.
|
||
|
The name for any of these methods is called 'cryptanalysis' and
|
||
|
the person who does the penetration is called the cryptanalyst.
|
||
|
|
||
|
In diagram form (the boxes indicated physically secure areas)--
|
||
|
|
||
|
-------------| --------------
|
||
|
Sender | | Receiver
|
||
|
"x" | | cipher key
|
||
|
cipher key |-------> y ----->|
|
||
|
y=Encrypt( | | | x=Decrypt(y,key)
|
||
|
x,key) | | |
|
||
|
-------------| | |-------------
|
||
|
V
|
||
|
Opponent
|
||
|
z = Cryptanalysis(y,Encrypt Algorithm,
|
||
|
general knowledge of x, guesses about
|
||
|
secret key, statistical analysis of y)
|
||
|
|
||
|
The opponent uses Cryptanalysis of message y until
|
||
|
the value z is either equal to x or z is "enough" like
|
||
|
x to accomplish the illicit purpose. The sender and
|
||
|
receiver win whenever recovery of z takes too much time.
|
||
|
|
||
|
Q2: I have invented this wonderful, fast-running encryption
|
||
|
algorithm. How do I find out if it is as great as I think it
|
||
|
is?
|
||
|
|
||
|
It is one thousand times easier to invent an encryption
|
||
|
algorithm than it is to discover if it is worthwhile. Most
|
||
|
designers who have not learned cryptography are used to dealing
|
||
|
with mathematics that discusses the general case. But,
|
||
|
successful cryptanalysis often relies on any number of
|
||
|
fortuitous special cases that the designer must anticipate lest
|
||
|
a given key and data stream create even one of them. Many
|
||
|
practical illicit decryptions astonish the newcomer; they seem
|
||
|
like cheating, but they do work.
|
||
|
|
||
|
It is easy to get superficial reassurance that a poor
|
||
|
encryption algorithm seems good. Most people reading this file
|
||
|
have probably attempted the kinds of cryptograms one finds in
|
||
|
newspapers and puzzle books (usually called 'cryptograms').
|
||
|
That encryption algorithm is simple -- one replaces each letter
|
||
|
of the alphabet with exactly one other letter of the alphabet.
|
||
|
In less than an hour, sixth graders have been taught to
|
||
|
successfully solve this kind of cipher. Yet, it has 26
|
||
|
factorial possible keys (about 2 to the 88th power), which is
|
||
|
much more than the 2 to the 56th keys of the well known
|
||
|
commercial algorithm, DES. A large number of keys is
|
||
|
important, but is not by itself secure. Obviously, the
|
||
|
successful sixth graders do not attempt all possible keys.
|
||
|
They use their general knowledge of English to shortcut the
|
||
|
process and eliminate all but a few possible keys.
|
||
|
|
||
|
Since the gross mathematical properties of an encryption
|
||
|
system prove nothing, only cryptanalytic attacks matter
|
||
|
and these require some study.
|
||
|
|
||
|
Q3: What is an "attack"?
|
||
|
|
||
|
An attack is a particular form of cryptanalysis. There are
|
||
|
generic types of attacks, and some very specific attacks. In
|
||
|
the end, cryptography is a war of specifics. The opponent
|
||
|
will either invent a very clever and unique attack or will
|
||
|
customize a general attack to suit the needs at hand. Some
|
||
|
attacks might even exploit the properties of a particular
|
||
|
message or settle for a partial illicit decryption.
|
||
|
|
||
|
However, in sci.crypt, there is a great deal of discussion
|
||
|
about attacks, both general and specific, and an assumption
|
||
|
that the reader can fill in missing details at times. Since
|
||
|
those who post here usually have other things to do, to-the-bit
|
||
|
details are often omitted.
|
||
|
|
||
|
Q4: Hmm. In spite of questions 2 and 3, I still think I
|
||
|
have a pretty good system. But, it seems pretty hard
|
||
|
to know if it can really defeat an expert. Still, I know
|
||
|
it will work if I can keep my method secret, right?
|
||
|
|
||
|
Good luck. There are documented cases aplenty where an
|
||
|
encryption system was deduced based entirely on clever analysis
|
||
|
of the encrypted text alone. There are also known cases
|
||
|
where encryption systems were deduced because the encrypted
|
||
|
text was later published verbatim somewhere (for instance, a
|
||
|
press release) and so the system was figured out, eliminating
|
||
|
the presumed secrecy advantage for the next cipher text.
|
||
|
|
||
|
Q5: What are the principal cryptanalytic attacks?
|
||
|
|
||
|
The first is "cipher text only". This is recovering the text
|
||
|
or the key by analysis of the text (using statistical means,
|
||
|
for instance) and by knowing broad details such as whether it
|
||
|
is the text of someone's speech, a PC-DOS EXE file, whether text
|
||
|
is in English or French. For non-puzzle examples, such broad
|
||
|
information is almost always reliably known. People have some
|
||
|
idea of what they wish to steal. The weakest systems fall to
|
||
|
this form of attack.
|
||
|
|
||
|
The next attack is "known plaintext". If one works with a
|
||
|
newspaper cryptogram, one may have little idea of what is in
|
||
|
the text. However, if one was illicitly trying to decrypt the
|
||
|
source code of Megabarfoocorp's C++ compiler, one would be much
|
||
|
better off. There would be lots of things one could
|
||
|
confidently expect, such as long strings of the space
|
||
|
character, strings like "if (" and "if(" and the like.
|
||
|
|
||
|
There would even be whole phrases like "Copyright 1990,
|
||
|
Megabarfoocorp International" or some such. With imagination,
|
||
|
surprisingly long strings can be predicted. Computers can
|
||
|
tirelessly try a number of trivial variations of such known
|
||
|
text at a great many locations. Knowledge of the encryption
|
||
|
system may reveal the correct placement outright or a small
|
||
|
number of places to try. A wide variety of systems can be
|
||
|
broken if enough known plaintext can be successfully placed.
|
||
|
|
||
|
The next attack is "chosen plaintext". In some situations, it
|
||
|
is possible for the opponent to pose as the legitimate user
|
||
|
of the encryption system. This is especially true in "public
|
||
|
key" systems (described later). In this case, the opponent
|
||
|
can present fairly arbitrary unencrypted data of his/her
|
||
|
choosing, cause it to be encrypted, and study the results.
|
||
|
Very few systems ever invented pass this test, but it should be
|
||
|
seriously considered for any significant use. Why? No
|
||
|
designer can dream up all attacks. Moreover, at some point, a
|
||
|
form of known plaintext attack may well enough approximate a
|
||
|
chosen plaintext attack to make it worthwhile for the designer
|
||
|
to allow for it to begin with, especially as it might not be
|
||
|
dreamed up by the designer!
|
||
|
|
||
|
There are other attack strategies. One worth mentioning for
|
||
|
telecommunications applications is the "replay" attack.
|
||
|
Suppose one has an Automatic Teller Machine (ATM) which uses a
|
||
|
substitution cipher. Since one assumes the telephone line to
|
||
|
the ATM can be tapped (why encrypt if it cannot?), one can also
|
||
|
assume the opponent can _inject_ false ciphertext. Thus,
|
||
|
without even being aware of the actual system, an opponent may
|
||
|
be able to simply replay old ciphertext and get the cash drawer
|
||
|
to give him/her $50 from your account. There are encryption
|
||
|
systems which avoid this difficulty.
|
||
|
|
||
|
Another general form of attack often not considered by
|
||
|
newcomers is comparing multiple messages using the same key.
|
||
|
It is impractical to use a different key for each cipher
|
||
|
text (with one important exception called the 'one time
|
||
|
pad'). Therefore, an opponent will have several different
|
||
|
texts encrypted in the same key and may be able to exploit
|
||
|
this fact. All transpositions algorithms (those which merely
|
||
|
scramble the order of the bytes) are vulnerable to this
|
||
|
attack. More sophisticated systems are also vulnerable to this
|
||
|
attack in some cases as well.
|
||
|
|
||
|
This is a vast area and one of the things that is difficult,
|
||
|
even for experienced designers, is anticipation of all possible
|
||
|
attacks. Moreover, there is no obligation on the attacker's
|
||
|
part to be less mathematically sophisticated than the designer.
|
||
|
A system that survives the attacks the designer invents may
|
||
|
fall easily to a mathematical approach the designer of the
|
||
|
system is unfamiliar with.
|
||
|
|
||
|
And, one even has to worry about items like a rare bug in the
|
||
|
program that injects the cipher key rather than the cipher text
|
||
|
into the output stream. It is amazing how often trifling
|
||
|
errors in the implementation make theory irrelevant.
|
||
|
|
||
|
Q6: What does make a system 'good'?
|
||
|
|
||
|
What makes a system 'good' relies on many details specific to
|
||
|
a given situation. Only after a lot of ingenious attacks are
|
||
|
tried can a system be released for use. There never can be any
|
||
|
absolute guarantees. All that can be said is that it defeated
|
||
|
the best experts available. The opponent may be smarter.
|
||
|
|
||
|
However, there are some agreed-to minimums that a good system
|
||
|
must have to even be worth serious analysis --
|
||
|
|
||
|
1) It must be suitable for computer use. Ordinary byte streams
|
||
|
(as arbitrary as possible) would be the input "plain"
|
||
|
text and byte streams would be the output "cipher" text.
|
||
|
There should be few cases where some kinds of input text
|
||
|
produces poor results and these, if they exist, should be
|
||
|
easily known, described, and avoided.
|
||
|
|
||
|
2) To be cost-competitive, it must produce about the same number of
|
||
|
output cipher bytes as input plain bytes. Relaxing this restriction
|
||
|
is not as helpful as one might think; the best historical systems
|
||
|
meet this restriction, so a new system must meet it also.
|
||
|
|
||
|
3) Output bytes should have a complex relationship between the key,
|
||
|
the plain text being encrypted, and possibly some amount of
|
||
|
text previously encrypted. "Simple", general methods, such
|
||
|
as creation/construction of minterm sums and matrix inversions should
|
||
|
not produce the cipher key or an equivalent, usable illicit
|
||
|
decryption method.
|
||
|
|
||
|
4) Trying all keys must not be practical. Trying a cleverly ordered
|
||
|
subset of the keys must not work. This is hard to achieve; it means
|
||
|
that the failure of a particular key X to illicitly decrypt must
|
||
|
not also allow an opponent to conclude that some large class of keys
|
||
|
"similar" to X need not be tried.
|
||
|
|
||
|
All keys must be equally strong; any exceptions must be well
|
||
|
known, few in number, and easily avoided.
|
||
|
|
||
|
5) Assume all details about the encryption algorithm are known.
|
||
|
Relying on a secret method has failed repeatedly. It is prudent to
|
||
|
assume only the variable part of the system, called the cipher key,
|
||
|
that is selected by the customer, is unknown.
|
||
|
|
||
|
6) Classical attacks must be tried in great variety and ingenuity.
|
||
|
Details of this are beyond the scope of this file. For a summary
|
||
|
of the principal attacks, see Question 5, "What are the principal
|
||
|
cryptanalytic attacks?". It is easy to do this particular step
|
||
|
incompletely. Remember, there may be little effective limit to the
|
||
|
resources or the brain power of one's opponent. The data may be
|
||
|
very valuable and it make take only a couple of days rental of the
|
||
|
right kind of consultant and a supercomputer to get the job
|
||
|
done. The legitimate user will, by contrast, have a smaller
|
||
|
budget that is begrudged as "overhead".
|
||
|
|
||
|
7) Performance must be competitive with existing solutions. A
|
||
|
practical problem is that every moment spent encrypting is
|
||
|
regarded as "overhead". Therefore, the method must not be
|
||
|
uncompetitive with existing algorithms regarded as secure.
|
||
|
|
||
|
Inventing one's own system is an interesting pastime and quite
|
||
|
educational. However, any hope of really securing data requires, at
|
||
|
the very minimum, mastery of illicit decipherment. It is very easy
|
||
|
to scramble data impressively and please oneself. This is not
|
||
|
the same as keeping it actually secure.
|
||
|
|
||
|
Q7: OK, you guys seem to know a lot about this stuff. I
|
||
|
think I have a neat system. Here's a message I encrypted.
|
||
|
Tell me if the system is any good. Oh, and can I keep my
|
||
|
algorithm secret? I think I want to patent it, so Q5 does not
|
||
|
apply in my case.
|
||
|
|
||
|
Most people read and understand questions 5 and 6 and their
|
||
|
implications. But, a few individuals, because of what they
|
||
|
invented, believe they have an exception of some kind. If that
|
||
|
is you, you're setting yourself up for disappointment. Even if
|
||
|
you are stone cold right about what you have invented, you are
|
||
|
not going about proving it properly. The main issue is a
|
||
|
mindset issue. Analyzing a cipher is not like a proposition
|
||
|
in geometry or the denouement of a mystery novel. One's
|
||
|
intuition about proofs may not hold for cryptography.
|
||
|
|
||
|
Finding out if a cipher is any good is perhaps most like
|
||
|
debugging a program. Just as you can never be sure you got all
|
||
|
of the bugs out, you can never be sure you have a cipher that
|
||
|
will withstand all attacks an opponent might come up with.
|
||
|
|
||
|
So, even if you do publish some form of challenge, and even if
|
||
|
the posters of sci.crypt attack it vigorously, it may prove
|
||
|
nothing.
|
||
|
|
||
|
Second, you may not be in a position to form a good, sound
|
||
|
test. Beginners who get this far are peeved that they are
|
||
|
asked to reveal their encryption algorithm. They may also be
|
||
|
asked to reveal whole paragraphs of cipher text or to encrypt
|
||
|
certain texts in a secret key and give the answer back. All
|
||
|
these things seem like cheating. The answer is: real opponents
|
||
|
_do_ cheat. Unlike those who post here, they are not above
|
||
|
burglarizing your home to get a copy of your source code, if
|
||
|
that is cheaper than hiring experts by the hour, to give a
|
||
|
relevant example. Whatever we ask for will represent a close
|
||
|
analogy of a real-world attack.
|
||
|
|
||
|
If you are still convinced you have a good system, by all means
|
||
|
go out and try to patent it; you are not legally obliged to
|
||
|
ask our help, after all. But history is against you; against
|
||
|
you so much that you will find few people here that are willing
|
||
|
to trust your definition of a good test of a cipher.
|
||
|
|
||
|
There is no 'royal road' to cryptography. The best thing to do
|
||
|
is take a couple of months and seriously study crytanalysis.
|
||
|
|
||
|
Q8: What are the legal restrictions on cryptography?
|
||
|
|
||
|
You'd have to ask a lawyer. Most governments consider cryptography a
|
||
|
sensitive topic for one reason or another. There are a variety
|
||
|
of restrictions possible.
|
||
|
|
||
|
Most governments don't give their reasons publicly, so one
|
||
|
may not know why there are restrictions, just that there are
|
||
|
restrictions to follow.
|
||
|
|
||
|
One can expect to find laws about sending encrypted data over national
|
||
|
borders and may often expect to find laws about the import and
|
||
|
export of encryption systems.
|
||
|
|
||
|
Since sending data over Internet, BitNet, Usenet, Fidonet, etc.
|
||
|
may cross national borders (even if the originator does not
|
||
|
realize it), a basic familiarity with these laws is recommended
|
||
|
before sending out encryption systems or encrypted data.
|
||
|
|
||
|
Q9: What is a public key system?
|
||
|
|
||
|
A public key system is an encryption method with a unique
|
||
|
property -- encryption and decryption use different keys and
|
||
|
one of those keys can be published freely.
|
||
|
|
||
|
Being able to pass around the 'decrypt' key part of one's
|
||
|
encryption algorithm allows some very interesting things to
|
||
|
happen. For one thing, messages can be exchanged by people who
|
||
|
had not planned on doing so in advance. One merely encrypts in
|
||
|
one's private key, decrypts using the receiver's public key and
|
||
|
passes on the result to the receiver. The receiver encrypts in
|
||
|
his/her own private key, then decrypts using the sender's public
|
||
|
key, recovering the message.
|
||
|
|
||
|
Q10: What is key distribution?
|
||
|
|
||
|
Key distribution is the practical problem of exchanging keys
|
||
|
between the parties that wish to set up an encryption system
|
||
|
between the two of them. Especially in a network environment,
|
||
|
passing keys one can trust back and forth, can be difficult.
|
||
|
How can one be sure a cipher key was not sent by an impostor?
|
||
|
Unless the keys are exchanged in a secret, secure place,
|
||
|
face-to-face, getting keys securely exchanged and with
|
||
|
knowledge of the fact that the key was sent authentically can
|
||
|
be difficult. Yet, any practical system must permit reasonably
|
||
|
convenient, but very secure exchange of cipher keys.
|
||
|
|
||
|
Once a few special keys are securely exchanged, it may be
|
||
|
possible to send new cipher keys in encrypted form between the
|
||
|
sender and receiver that have a known lifetime. That is, the
|
||
|
cipher key is sent in a special encrypted message using a
|
||
|
special key used only for exchanging keys. In
|
||
|
telecommunications environments, this allows frequent change of
|
||
|
keys between the parties 'safely' over the same insecure medium
|
||
|
used to send the cipher text. While this idea is at the heart
|
||
|
of much commercial use of cryptography, it is not easily
|
||
|
accomplished and less easily summarized.
|
||
|
|
||
|
Q11: What is the 'one time pad'?
|
||
|
|
||
|
The 'one time pad' is an encryption method that is known to be
|
||
|
absolutely, provably secure. How it works is as follows --
|
||
|
1. Generate a huge number of bits using a naturally random
|
||
|
process. 2. Both sides exchange this data, which is as much
|
||
|
data as they are going to exchange later on. 3. Exclusive OR the
|
||
|
original text, bit by bit, with the 'one time pad' data, never
|
||
|
reusing the 'one time pad' data. 4. Have elaborate rules to
|
||
|
keep the two sides in synch so that the data can be recovered
|
||
|
reliably by the receiver. (Both sides must know where they are
|
||
|
in terms of how much 'one time pad' has been consumed).
|
||
|
|
||
|
Note that only genuine, naturally random processes will do. There
|
||
|
must be no relationship between any prior bit of the 'one time pad'
|
||
|
and a future bit of the key. "Random number generators", in
|
||
|
particular, may not substitute and still be a 'one time pad'. The
|
||
|
reason the one time pad works is precisely because there is no
|
||
|
relationship between any bits of the key stream. All cipher
|
||
|
keys are equally probable. All original data messages are
|
||
|
equally probable. There is no 'hat' to hang analysis upon.
|
||
|
Even if one can inject as much text into a one time pad as one
|
||
|
wishes, recovering the key stream tells nothing about the next
|
||
|
message.
|
||
|
|
||
|
Unfortunately, one time pads are very ungainly, so they are not
|
||
|
typically used. The requirement to have a genuinely random process,
|
||
|
with the right kind of statistical probability, is not easy to
|
||
|
to set up. The ability to exchange vast amounts of data,
|
||
|
securely, in advance, is not easy to achieve in environments
|
||
|
when encryption is needed in the first place.
|
||
|
|
||
|
There are a variety of cipher systems which generate "pseudo
|
||
|
one time pad" streams of cipher key, but all have the same
|
||
|
theoretical vulnerability; any algorithmic process introduces
|
||
|
relationships between some old key bit(s) and the new key bit
|
||
|
and so permits cryptanalysis. "Random number generators" are
|
||
|
frequently dreamed up by newcomers as a "pseudo one time pad",
|
||
|
but they are notoriously vulnerable to analysis, all
|
||
|
independent of whether the pseudo-random stream satisfies
|
||
|
randomness tests or not.
|
||
|
|
||
|
The favorite example is a "standard" pseudo-random number
|
||
|
generator of the form x = ((A*x) +C) mod M where A, C, and M
|
||
|
are fixed and x is the most recent value used to form the last
|
||
|
"random" number. Thus, the key of the cipher is the initial
|
||
|
value of x. Let's set M equal to two to the 32nd for this example.
|
||
|
|
||
|
Now, if one can predict or simply find the word
|
||
|
"the " (the word "the" followed by a space character) on a
|
||
|
even four byte boundary in the file, one can recover an old
|
||
|
value of "x" and predict the rest of the keystream from that
|
||
|
point, which may be enough of a "break" to accomplish the
|
||
|
purpose. This is true even if the particular A, C, and M
|
||
|
perfectly satisfy any randomness test that anyone ever devised.
|
||
|
|
||
|
Naturally, this example can be improved upon, but it
|
||
|
illustrates the potential problem all such methods have.
|
||
|
|
||
|
Q12: What is the NSA (National Security Agency)?
|
||
|
|
||
|
The NSA has several tasks. The most relevant here is that it employs
|
||
|
the United States' government's cryptographers. Most nations have some
|
||
|
department that handles cryptography for it, but the US' NSA tends to
|
||
|
draw the most attention. It is considered equal to or superior to any
|
||
|
such department in the world. It keeps an extremely low public
|
||
|
profile, and has a "large", but secret budget. Because of these and
|
||
|
other factors, there will be many posts speculating about the
|
||
|
activities and motives of the NSA.
|
||
|
|
||
|
Q13: What is the American Cryptogram Association?
|
||
|
|
||
|
American Cryptogram Association Information, Sept 1992
|
||
|
|
||
|
The American Cryptogram Association is an international group
|
||
|
of individuals who study cryptography together and publish
|
||
|
puzzle ciphers to challenge each other and get practical
|
||
|
experience in solving ciphers. It is a nonprofit group.
|
||
|
|
||
|
The American Cryptogram Association (ACA) publishes the
|
||
|
bi-monthly magazine, "The Cryptogram", which contains
|
||
|
a wide variety of simple substitution ciphers ("cryptograms")
|
||
|
in English and other languages as well as cryptograms
|
||
|
using cipher systems of historical interest (such as Playfair).
|
||
|
|
||
|
The level of difficulty varies from easy to difficult. Except
|
||
|
for "foreign language" cryptograms, all text is in English.
|
||
|
|
||
|
The magazine also features "how to" articles at the hobbyist level
|
||
|
and other features of interest to members. A "Computer Supplement"
|
||
|
is also available which features articles on computerizing various
|
||
|
phases of cryptogram solving; the level of the articles varies from
|
||
|
simple programming examples to automatic algorithmic solutions of
|
||
|
various cipher systems. The supplement is available as a separate
|
||
|
subscription, and is published when material permits; usually two
|
||
|
or three times per year.
|
||
|
|
||
|
Where to write for subscription or other information --
|
||
|
|
||
|
ACA Treasurer
|
||
|
18789 West Hickory St
|
||
|
Mundelein IL 60060
|
||
|
|
||
|
Q14: What are some good books on cryptography?
|
||
|
|
||
|
Good books on this topic that weren't government classified used
|
||
|
to be rare. There are now a host of good books. One informal
|
||
|
test of a library's quality is how many of these are on the
|
||
|
shelves. These are widely available, but few libraries have
|
||
|
them all.
|
||
|
|
||
|
David Kahn, The Codebreakers, Macmillan, 1967 [history; excellent]
|
||
|
H. F. Gaines, Cryptanalysis, Dover, 1956 [originally 1939, as
|
||
|
Elementary Cryptanalysis]
|
||
|
Abraham Sinkov, Elementary Cryptanalysis, Math. Assoc. of Amer.,
|
||
|
1966
|
||
|
D Denning, Cryptography and Data Security, Addison-Wesley, 1983
|
||
|
Alan G. Konheim, Cryptography: A Primer, Wiley-Interscience, 1981
|
||
|
Meyer and Matyas, Cryptography: A New Dimension in Computer Data
|
||
|
Security, John Wiley & Sons, 1982.
|
||
|
Books can be ordered from Aegan Park Press. They are not inexpensive,
|
||
|
but they are also the only known public source for most of these
|
||
|
and other books of historical and analytical interest.
|
||
|
From the Aegean Park Press P.O. Box 2837, Laguna
|
||
|
Hills, CA 92654-0837
|
||
|
[write for current catalog].
|
||
|
|
||
|
The following is a quality, scholarly journal. Libraries may carry
|
||
|
it if they are into high technology or computer science.
|
||
|
|
||
|
Cryptologia: a cryptology journal, quarterly since Jan 1977.
|
||
|
Cryptologia; Rose-Hulman Institute of Technology; Terre Haute
|
||
|
Indiana 47803 [general: systems, analysis, history, ...]
|
||
|
|
||
|
Thanks to
|
||
|
cme@ellisun.sw.stratus.com (Carl Ellison)
|
||
|
Gwyn@BRL.MIL (Doug Gwyn)
|
||
|
smb@ulysses.att.com (Steven Bellovin)
|
||
|
for assembling this list of books in bibliography form. I knew
|
||
|
of each here, but getting all the details is a lot of work.
|
||
|
Thanks again.
|
||
|
------------------------]
|
||
|
Larry W. Loen | My Opinions are decidedly my own,so please
|
||
|
| do not attribute them to my employer
|
||
|
------------------------]
|
||
|
=====================================================================
|
||
|
EFFector Online is published by
|
||
|
The Electronic Frontier Foundation
|
||
|
155 Second Street, Cambridge MA 02141
|
||
|
Phone: +1 617 864 0665 FAX: +1 617 864 0866
|
||
|
Internet Address: eff@eff.org
|
||
|
Reproduction of this publication in electronic media is encouraged.
|
||
|
Signed articles do not necessarily represent the view of the EFF.
|
||
|
To reproduce signed articles individually, please contact the authors
|
||
|
for their express permission. EFFector Online is edited by Gerard
|
||
|
Van der Leun (van@eff.org) and Rita Rouvalis (rita@eff.org).
|
||
|
=====================================================================
|
||
|
|
||
|
Downloaded From P-80 International Information Systems 304-744-2253
|