WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Random coding cipher system and method    
United States Patent5307412   
Link to this pagehttp://www.wikipatents.com/5307412.html
Inventor(s)Vobach; Arnold R. (11114 Ashcroft, Houston, TX 77096)
AbstractIn 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 Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5307412
Random coding cipher system and method - US Patent 5307412 Drawing
Random coding cipher system and method
Inventor     Vobach; Arnold R. (11114 Ashcroft, Houston, TX 77096)
Owner/Assignee    
Patent assignment
All assignments
Publication Date     April 26, 1994
Application Number     07/953,521
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     September 30, 1992
US Classification     380/42 380/22 380/46
Int'l Classification     H04L 009/02
Examiner     Cangialosi; Salvatore
Assistant Examiner    
Attorney/Law Firm     Gunn & Kuffner
Address
Parent Case    
Priority Data    
USPTO Field of Search     380/22 380/42 380/46 380/47 380/28
Patent Tags     random coding cipher
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
2730569



[0 after 0 votes]
2949501



[0 after 0 votes]
3067280



[0 after 0 votes]
5214704
Mittenthal
380/37
May,1993

[0 after 0 votes]
5193115
Vobach
380/46
Mar,1993

[0 after 0 votes]
5133444
Thomason
198/345.1
Jul,1992

[0 after 0 votes]
5038376
Mittenthal
380/37
Aug,1991

[0 after 0 votes]
4979832
Ritter
380/28
Dec,1990

[0 after 0 votes]
4853962
Brockman
380/44
Aug,1989

[0 after 0 votes]
4791669
Kage
380/46
Dec,1988

[0 after 0 votes]
4776011
Busby
380/37
Oct,1988

[0 after 0 votes]
4751733
Delayaye
380/42
Jun,1988

[0 after 0 votes]
4667301
Chiu
708/250
May,1987

[0 after 0 votes]
4638120
Herve
713/172
Jan,1987

[0 after 0 votes]
4488001
Cooley
713/190
Dec,1984

[0 after 0 votes]
4447672
Nakamura
380/264
May,1984

[0 after 0 votes]
4441095
Widmer
380/28
Apr,1984

[0 after 0 votes]
4418275
Oosterbaan
377/33
Nov,1983

[0 after 0 votes]
4408093
Place
380/264
Oct,1983

[0 after 0 votes]
4369434
Mueller
380/264
Jan,1983

[0 after 0 votes]
4341925
Frosch
380/262
Jul,1982

[0 after 0 votes]
4326098
Bouricius
713/155
Apr,1982

[0 after 0 votes]
4301327
Lee
380/28
Nov,1981

[0 after 0 votes]
4206315
Matyas
713/180
Jun,1980

[0 after 0 votes]
4202051
Davida
380/46
May,1980

[0 after 0 votes]
4193131
Lennon
380/281
Mar,1980

[0 after 0 votes]
3911216
Bartek
380/46
Oct,1975

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


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.
 Description Submit all comments and votes
 


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