|
|
|
| United States Patent | 5307412 |
| Link to this page | http://www.wikipatents.com/5307412.html |
| Inventor(s) | Vobach; Arnold R. (11114 Ashcroft, Houston, TX 77096) |
| Abstract | In a random coding cipher system and method, a sender and receiver pair
share a long string of random digits, the masking tape. To encrypt a
plaintext message, the sender generates a random integer (with a random
number generator, RNG) or a pseudo-random integer (using a pseudo-random
number generator, PRNG). This is the initializing integer. The sender then
selects an integer formed from a subset of the digits of the initializing
integer. This is the starting integer for the message. The starting
integer determines a starting, or indexing, position in the masking tape
for extraction of a sequence of blocks of digits, of common length, to be
put in one-to-one correspondence with the characters of the plaintext
alphabet used for communication. The integer blocks comprise the numerical
synonyms for the plaintext alphabet characters. By checking successive
candidate digit blocks for prior association with plaintext alphabet
characters, the one-to-one correspondence between numerical synonyms and
alphabet characters is maintained. The concatenation of the numerical
synonyms corresponding to successive message characters comprises the
plaintext message string integer. A string of digits from the masking
tape, beginning immediately after the last integer chosen for coding
alphabet characters and of length equal to that of the plaintext message
string, is added to the plaintext message string. This new random digit
string is the masking tape string integer. The sum of the plaintext
message string and the masking tape string is the ciphertext string
integer which, preceded by the initializing integer, is sent as the
cryptogram. To decrypt, the receiver uses the starting integer to
determine the numerical synonyms and masking tape string, subtracts the
masking tape string from the ciphertext string and recovers the plaintext
message string and the plaintext message. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5307412 |
|
|
Random coding cipher system and method |
|
|
|
|
|
| Publication Date |
April 26, 1994 |
|
|
|
|
|
| Filing Date |
September 30, 1992 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 2730569
|      Your vote accepted [0 after 0 votes] | | 2949501
|      Your vote accepted [0 after 0 votes] | | 3067280
|      Your vote accepted [0 after 0 votes] | | 5214704 Mittenthal 380/37 May,1993 |      Your vote accepted [0 after 0 votes] | | 5193115 Vobach 380/46 Mar,1993 |      Your vote accepted [0 after 0 votes] | | 5133444 Thomason 198/345.1 Jul,1992 |      Your vote accepted [0 after 0 votes] | | 5038376 Mittenthal 380/37 Aug,1991 |      Your vote accepted [0 after 0 votes] | | 4979832 Ritter 380/28 Dec,1990 |      Your vote accepted [0 after 0 votes] | | 4853962 Brockman 380/44 Aug,1989 |      Your vote accepted [0 after 0 votes] | | 4791669 Kage 380/46 Dec,1988 |      Your vote accepted [0 after 0 votes] | | 4776011 Busby 380/37 Oct,1988 |      Your vote accepted [0 after 0 votes] | | 4751733 Delayaye 380/42 Jun,1988 |      Your vote accepted [0 after 0 votes] | | 4667301 Chiu 708/250 May,1987 |      Your vote accepted [0 after 0 votes] | | 4638120 Herve 713/172 Jan,1987 |      Your vote accepted [0 after 0 votes] | | 4488001 Cooley 713/190 Dec,1984 |      Your vote accepted [0 after 0 votes] | | 4447672 Nakamura 380/264 May,1984 |      Your vote accepted [0 after 0 votes] | | 4441095 Widmer 380/28 Apr,1984 |      Your vote accepted [0 after 0 votes] | | 4418275 Oosterbaan 377/33 Nov,1983 |      Your vote accepted [0 after 0 votes] | | 4408093 Place 380/264 Oct,1983 |      Your vote accepted [0 after 0 votes] | | 4369434 Mueller 380/264 Jan,1983 |      Your vote accepted [0 after 0 votes] | | 4341925 Frosch 380/262 Jul,1982 |      Your vote accepted [0 after 0 votes] | | 4326098 Bouricius 713/155 Apr,1982 |      Your vote accepted [0 after 0 votes] | | 4301327 Lee 380/28 Nov,1981 |      Your vote accepted [0 after 0 votes] | | 4206315 Matyas 713/180 Jun,1980 |      Your vote accepted [0 after 0 votes] | | 4202051 Davida 380/46 May,1980 |      Your vote accepted [0 after 0 votes] | | 4193131 Lennon 380/281 Mar,1980 |      Your vote accepted [0 after 0 votes] | | 3911216 Bartek 380/46 Oct,1975 |      Your vote accepted [0 after 0 votes] | | | | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
| Market Size |
|
Estimate the gross annual revenues of the relevant market
sector:
|
| | |
| |
|
|
| Market Share |
|
Estimate the percentage of the relevant market sector this invention will capture:
|
| | |
| |
|
|
| Reasonable Royalty |
|
What percentage of gross sales should the inventor or assignee be paid?
|
| | |
| |
|
|
|
Public's "Guesstimation" of Royalty Value
|
| Market Size | N/A | [No votes] | | x | Market Share | N/A | [No votes] | | x | Reasonable Royalty | N/A | [No votes] |
| | N/A | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
I claim:
1. A cipher system for use by a sender and a receiver, comprising:
a. a source of plaintext alphabet characters;
b. a sender central processing unit to receive a plaintext message of
plaintext alphabet characters from the source and to encode each character
by one of a set of numerical synonyms, the sender central processing unit
including a memory to store the numerical synonyms.
c. a receiver central processing unit to receive a stream of ciphertext
message characters and to decode each character by said one of a set of
numerical synonyms, the receiver central processing unit including a
memory to store the numerical synonyms, the set of numerical synonyms
comprising a collection of non-negative integers of common length
extracted from a string of digits accessible to both sender and receiver
by the sender or receiver central processing unit;
d. a random or pseudo-random number generator to develop an initializing
integer that determines the set of numerical synonym integers;
e. the sender central processing unit further developing a concatenation of
the numerical synonyms, comprising a plaintext message string integer
corresponding to a plaintext message;
f. a message delay unit for each of the sender and receiver central
processing units to buffer characters received by the central processing
units; and
g. a masking tape memory to store a masking tape string integer comprising
a sequence of digits extracted from a string of digits accessible to both
sender and receiver, and added to the plaintext message string to form a
ciphertext string.
2. A cryptographic method, comprising the steps of:
a. generating a plaintext alphabet, each character of which is coded by a
numerical synonym in a central processing unit, the set of numerical
synonyms comprising a collection of non-negative integers of common length
extracted from a string of digits accessible to both sender and receiver
from a memory;
b. concatenating the numerical synonyms in the central processing unit, the
concatenation comprising a plaintext message string integer corresponding
to a plaintext message; and
c. reading a masking tape string integer from a memory, the masking tape
string integer comprising a sequence of digits extracted from a string of
digits accessible to both sender and receiver, and added to the plaintext
message string to form a ciphertext string.
3. The system of claim 1, wherein the numerical synonyms are extracted from
a string of digits secretly shared by sender and receiver.
4. The system of claim 3, wherein the masking tape string is extracted from
a string of digits secretly shared by sender and receiver.
5. The system of claim 3, wherein the starting position integer for
extraction of numerical synonyms from the shared string of digits is
transmitted with the cryptogram.
6. The system of claim 5, wherein the starting position integer is
concealed in an initializing integer transmitted with the cryptogram.
7. The system of claim 6, wherein the initializing integer is generated by
a number generator.
8. The system of claim 1, wherein the string of digits from which the
numerical synonyms are extracted is the output of a pseudo-random number
generator shared by sender and receiver.
9. The system of claim 8, wherein the initializing seed for the output of
the pseudo-random number generator is concealed in an initializing integer
transmitted with the cryptogram.
10. The system of claim 9, wherein the initializing integer is generated by
a number generator.
11. The system of claim 4, wherein the starting position integer for
extraction of the masking tape string from the shared string of digits is
transmitted with the cryptogram.
12. The system of claim 11, wherein the starting position integer is
concealed in an initializing integer transmitted with the cryptogram.
13. The system of claim 12, wherein the initializing integer is generated
by a number generator.
14. The system of claim 1, wherein the string of digits from which the
masking tape string integer is extracted is the output of a pseudo-random
number generator shared by sender and receiver.
15. The system of claim 14, wherein the initializing seed for the output of
the pseudo-random number generator is concealed in an initializing integer
transmitted with the cryptogram.
16. The system of claim 15, wherein the initializing integer is generated
by a number generator.
17. The system of claim 6, wherein the initializing integer is coded to
identify prefixes, suffixes, interspersions, and block permutations in the
ciphertext message string.
18. The system of claim 9, wherein the initializing integer is coded to
identify prefixes, suffixes, interspersions, and block permutations in the
ciphertext message string.
19. The system of claim 1, wherein the masking tape string integer is added
to the right, with carries to the right, to the plaintext message string
integer to form the ciphertext string integer.
20. The system of claim 17, wherein prefixed, suffixed, and interspersed
integers are generated by a number generator.
21. The system of claim 18, wherein prefixed, suffixed, and interspersed
integers are generated by a number generator.
22. The system of claim 6, wherein the initializing integer-ciphertext
string is superencrypted by addition to a second masking tape string,
identified by a second initializing integer.
23. The method of claim 2, wherein the numerical synonyms are extracted
from a string of digits secretly shared by sender and receiver.
24. The method of claim 23, wherein the masking tape string is extracted
from a string of digits secretly shared by sender and receiver.
25. The method of claim 23, wherein the starting integer position for
extraction of numerical synonyms from the shared string of digits is
transmitted with the cryptogram.
26. The method of claim 25, wherein the starting position integer is
concealed in an initializing integer transmitted with the cryptogram.
27. The method of claim 26, wherein the initializing integer is generated
by a number generator.
28. The method of claim 2, wherein the string of digits from which the
numerical synonyms are extracted is the output of a pseudo-random number
generator shared by sender and receiver.
29. The method of claim 28, wherein the initializing seed for the output of
the pseudo-random number generator is concealed in an initializing integer
transmitted with the cryptogram.
30. The method of claim 29, wherein the initializing integer is generated
by a number generator.
31. The method of claim 24, wherein the starting position integer for
extraction of the masking tape string from the shared string of digits is
transmitted with the cryptogram.
32. The method of claim 31, wherein the starting position integer is
concealed in an initializing integer transmitted with the cryptogram.
33. The method of claim 31, wherein the initializing integer is generated
by a number generator.
34. The method of claim 26, wherein the initializing integer is coded to
identify prefixes, suffixes, interspersions, and block permutations in the
ciphertext message string.
35. The method of claim 29, wherein the initializing integer is coded to
identify prefixes, suffixes, interspersions, and block permutations in the
ciphertext message string.
36. The method of claim 2, wherein the masking tape string integer is added
to the right, with carries to the right, to the plaintext message string
integer to form the ciphertext string integer.
37. The system of claim 34, wherein prefixed, suffixed, and interspersed
integers are generated by a number generator.
38. The method of claim 26, wherein the initializing integer-ciphertext
message string is superencrypted by addition to a second masking tape
string, identified by a second initializing integer.
39. The method of claim 2, wherein the string of digits from which the
masking tape string integer is extracted is the output of a pseudo-random
number generator shared by sender and receiver.
40. The method of claim 39, wherein the initializing seed for the output of
the pseudo-random number generator is concealed in an initializing integer
transmitted with the cryptogram.
41. The system of claim 40, wherein the initializing integer is generated
by a number generator.
42. A transmitter for sending a plaintext message in encrypted form
comprising:
a. a central processor for receiving a plaintext message comprising
plaintext characters;
b. a number generator to produce an initializing integer to the central
processor under the direction of the central processor;
c. a masking tape to receive a starting integer extracted from the
initializing integer by the central processor and to return a string of
digits to the central processor to code for plaintext characters;
d. a message delay unit to provide a buffer for plaintext characters until
the central processor is ready to translate the plaintext characters into
numerical synonyms;
e. an adder/subtractor to receive masking tape segments from the masking
tape and numerical synonyms from the central processor and to add the
masking tape segments and the numerical synonyms to provide a sum; and
f. a transmitting means to receive the sum and an initializing integer for
the transmission to an intended receiver.
43. A receiver to receive ciphertext preceded by an initializing integer
and decrypt the ciphertext into plaintext message output comprising:
a. a central processor to receive the ciphertext and initializing integer
and to extract a starting integer from the initializing integer;
b. a masking tape to receive the starting integer from the central
processor to index a digit string, sequentially chosen blocks of which
comprise numerical synonyms of plaintext characters, to send the digit
string to the central processor, and to develop masking tape string
segments;
c. a message delay unit to provide a buffer for ciphertext characters while
the central processor is receiving numerical synonyms; and
d. an adder/subtractor to receive masking tape segments from the masking
tape and ciphertext from the central processor and to subtract the masking
tape string segments from the ciphertext to provide a plaintext message
string to the central processor which generates a plaintext message
output.
44. A transmitter for sending a plaintext message in encrypted form
comprising:
a. a central processor for receiving a plaintext message comprising
plaintext characters;
b. a first number generator to produce an initializing integer to the
central processor under the direction of the central processor to produce
a first initializing seed;
c. a second number generator that is a pseudo-random number generator to
receive the initializing seed and to develop a sequence of digits,
sequentially chosen blocks of which form numerical synonyms of plaintext
characters for the central processor;
d. a message delay unit to provide a buffer for plaintext characters until
the central processor is ready to translate the plaintext characters into
numerical synonyms;
e. a third number generator that is a pseudo-random number generator to
receive a second initializing seed from the central processor and to
generate masking tape segments;
f. an adder/subtractor to receive masking tape segments from the third
number generator and a plaintext message string integer from the central
processor and to add the masking tape segments and the plaintext message
string to provide a ciphertext string;
g. an intersperser to receive the ciphertext string from the
adder/subtractor and to insert pseudo-random integers from the second
number generator under the control of the central processor to develop an
adulterated ciphertext string;
h. a permuter to receive the adulterated ciphertext string and to develop a
permuted adulterated ciphertext string under the control of the central
processor; and
i. a transmitting means to receive the initializing integer from the first
number generator and the permuted adulterated ciphertext string for
transmission to an intended receiver.
45. A receiver to receive ciphertext preceded by an initializing integer
and decrypt the ciphertext into plaintext message output comprising:
a. a central processor to receive the ciphertext and initializing integer
and to extract an initializing seed from the initializing integer;
b. a first number generator that is a pseudo-random number generator to
receive the initializing seed from the central processor to initiate
production of a digit string, sequentially chosen blocks of which comprise
numerical synonyms of plaintext characters, and to send the digit string
to the central processor;
c. a message delay unit to provide a buffer for ciphertext characters while
the central processor is receiving numerical synonyms;
d. a block permuter to receive ciphertext from the central processor to
unpermute the ciphertext under the control of the central processor;
c. an intersperser to receive the unpermuted ciphertext from the block
permuter and, under the control of the central processor, to delete
prefixed, suffixed, and interspersed pseudo-random integers from the
unpermuted ciphertext;
f. a second number generator to receive an initializing seed from the
central processor and to develop a masking tape string integer;
g. an adder/subtractor to subtract the masking tape integer from the
ciphertext string to provide a plaintext message string to the central
processor which generates a plaintext message output.
46. The system of claim 5, wherein the starting position integer for
extraction of numerical synonyms from the shared string of digits is
generally distinct from the starting position integer used for extraction
of the masking tape string and is separately concealed in the initializing
integer.
47. The method of claim 25, wherein the starting position integer for
extraction of numerical synonyms from the shared string of digits is
generally distinct from the starting position integer used for extraction
of the masking tape string and is separately concealed in the initializing
integer.
48. The system of claim 3, wherein the order in which plaintext alphabet
characters are assigned numerical synonyms from the sequence of secretly
shared digits is permuted from message to message according to prior
secret arrangement of sender and receiver.
49. The method of claim 23, wherein the order in which plaintext alphabet
characters are assigned numerical synonyms from the sequence of secretly
shared digits is permuted from message to message according to prior
secret arrangement of sender and receiver.
50. The system of claim 3, wherein the numerical synonyms for
encryption-decryption are extracted from the shared string of digits,
commencing at the end of the masking tape string of a prior message.
51. The method of claim 23, wherein the numerical synonyms for
encryption-decryption of a plaintext message are extracted from the shared
string of digits, commencing at the end of the masking tape string of a
prior message.
52. The system of claim 3, wherein the starting position integer for
extraction of numerical synonyms from the shared string of digits is
transmitted concealed in a prior cryptogram.
53. The method of claim 23, wherein the starting position integer for
extraction of numerical synonyms from the shared string of digits is
transmitted concealed in a prior cryptogram. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
FIELD OF THE INVENTION
The present invention relates generally to computing systems and methods.
More particularly, the present invention relates to a cipher system and
method for encrypting and decrypting computer data.
BACKGROUND OF THE INVENTION
A common method of encrypting a plaintext message starts by substituting
integers for plaintext characters according to some standard alphabet such
as ITA2, ITA5, ASCII, or EBCDIC. These integers are then written in binary
form to create a first string, or sequence, of 0's and 1's. The first
string is modulo 2-added to another, second sequence of 0's and 1's to
produce a third sequence of 0's and 1's. The third sequence of 0's and 1's
is transmitted as the encrypted message. The sender's object is to make
this third string of 0's and 1's appear to be a random sequence of digits
in binary form. The intended receiver modulo 2-adds the second sequence to
the third sequence to recover the first sequence. Thereafter, the original
plaintext message is derived from the standard alphabet that was used,
e.g., ITA2, ITA5, ASCII, or EBCDIC. If the second sequence is truly
random, an interceptor-attacker will be unable to reproduce the first
sequence. Thus, the plaintext message is preserved.
There are a number of problems with this scheme: First, random number
strings are a relatively scarce commodity. Second, the receiver must have
at hand exactly the same random number sequence the sender used or must be
able to reproduce it. Having at hand exactly the same random number
sequence the sender used requires the sharing of an enormous amount of key
material. The sharing of an enormous amount of key material is
impractical. Reproducing exactly the same random number sequence the
sender used is impossible.
To avoid these two difficulties, a pseudo-random number generator is
commonly employed by both sender and receiver. A pseudo-random number
generator is a deterministic machine which, when initialized by a "seed"
number, produces a string of digits which appears to be random (by passing
various statistical tests). The output of a pseudo-random number generator
is periodic, but the period can be made very long. When sender and
receiver use pseudo-random number generators to produce the second, key,
or encrypting sequence, they start with a common initializing "seed" and
synchronize the outputs of their generators. Starting with a common
initializing "seed" and synchronizing the outputs of the generators allows
a knownplaintext attack in which an interceptor-attacker gains access to
plaintext (hence to its binary digit string equivalent in terms of some
standard numerical alphabet) and to the corresponding ciphertext. Knowing
the digits of the binary plaintext string enables the attacker to
reproduce the corresponding pseudo-random number sequence. This frequently
allows the attacker to determine the algorithm, initializing "seed," and
output sequence of the system's pseudo-random number generator, thus
"breaking" the code.
In U.S. Pat. No. 5,113,444, entitled "Random Choice Cipher System and
Method," issued to the same inventor as that of the present invention, a
string of random digits is added to a string of integers numerically
coding the plaintext characters of a message. The summed integer is the
body of the cryptogram.
The numerical codings, "numerical synonyms," are randomly chosen from
large, randomly dispersed collections of such integers corresponding to
the plaintext alphabet characters. The collections of randomly distributed
numerical synonyms and their matchings to the characters of a plaintext
alphabet comprise a "thesaurus" which must be shared by a sender-receiver
pair. So also must be shared a "masking tape," a long string of random
digits from which the string of random digits, to be added to the
numerical coding of the message, is selected.
The present invention dispenses with the thesaurus, using instead one-time
numerical codings for message characters which are themselves extracted
from the masking tape.
SUMMARY OF THE INVENTION
A sender and receiver pair share a long string of random digits, the
masking tape. To encrypt a plaintext message, the sender generates a
random number (with a random number generator, RNG) or a pseudo-random
number (using a pseudo-random number generator, PRNG). As used herein, the
term "number generator" refers to either or both a RNG and a PRNG. The
sender then selects an integer formed from a subset of the digits of this
first, initializing integer. This second (subset) integer is the starting
integer for the message. The method of formation (choice of position of
the digits and their ordering, etc.) of the starting integer from the
digits of the initializing integer is shared by sender and receiver.
The starting integer determines a starting, or indexing, position in the
masking tape for extraction of successive blocks of digits, of common
length, to be put in one-to-one correspondence with the characters of the
plaintext alphabet used for communication. The successive integer blocks
comprise the numerical synonyms for the plaintext alphabet characters. The
concatenation of the numerical synonyms corresponding to successive
message characters constitutes the plaintext message string integer.
Clearly, in associating the successive blocks of masking tape digits with
successive plaintext alphabet characters to yield numerical synonyms, the
possibility exists of encountering repeated digit blocks--causing a
numerical synonym to represent two or more alphabet characters. This is
avoided by checking each successive candidate block of digits to see if it
has been previously assigned to an alphabet character. If it has, one
passes to the next succeeding block; if it has not, it is assigned to the
next alphabet character lacking a numerical synonym. A simple looping and
branching computer routine can accomplish this very quickly.
One must next determine how many successive digit blocks must be searched
through to guarantee a numerical synonym for each alphabet character.
Consider, for example, the EBCDIC alphabet, a fairly large alphabet of 256
characters. Also consider a string of 600 (<(2.5)256) random 3-digit
integers. We shall estimate the probability that such a string contains at
least 256 distinct integers--enough for numerically coding the EBCDIC
alphabet.
Let X.sub.i, i=000, . . . , 999 be a random variable from the sets, R, of
600 random 3-digit integers to {0,1} defined by X.sub.i (R)=1 if i is in R
and 0 if i is not in R. X.sub.i is a Bemoulli random variable with p=600
(1/1000)=0.6, 1-p=0.4, mean 0.6 and variance 0.24. Let
##EQU1##
This is the number of distinct integers in R. Since at least 400 of the
X.sub.i 's are automatically zero (and perhaps even 599 of the remaining),
##EQU2##
S.sub.600 is a binomial random variable with mean 600(0.6)=360 and variance
600(0.24)=144. Both np=3 | | |