Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS4780840 A
Publication typeGrant
Application numberUS 07/020,213
Publication dateOct 25, 1988
Filing dateFeb 25, 1987
Priority dateJun 23, 1982
Fee statusLapsed
Also published asDE3370263D1, EP0097997A2, EP0097997A3, EP0097997B1
Publication number020213, 07020213, US 4780840 A, US 4780840A, US-A-4780840, US4780840 A, US4780840A
InventorsAntonius C. J. van den Ende
Original AssigneeU.S. Philips Corp.
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Method of generating a pseudo-random sequence of signs of a large sequence length
US 4780840 A
Abstract
A method by which random bytes are generated. Such a random byte is obtained by adding a prime number once or several times to an 8-bit character. The choice whether a prime number is added once or several times to the 8-bit character depends on whether the preceding addition produced a result larger than or less than 256. The character obtained (modulo 256) also provides the following 8-bit character. A sequence of bits consisting of several bytes is assembled from random bytes thus generated, each byte being generated on the basis of a different prime number.
Images(2)
Previous page
Next page
Claims(3)
What is claimed is:
1. Apparatus for generating a pseudo-random sequence of digital bits which constitute a message key for encrypting a message, such apparatus comprising:
a first memory for storing a series of N preselected prime numbers;
a second memory for storing a series of N random characters;
arithmetic means connected to said first and second memories for generating N subsequences of bits, the first of such subsequences being generated by adding a first of said random characters to a first of said prime numbers, each jth (j≦N) of such subsequences being generated by adding the jth of said random characters to the product of the jth of said series of prime numbers multiplied by:
(i) a predetermined first factor when the (j-1)th subsequence is less than a predetermined value;
(ii) a predetermined second factor when the (j-1)th subsequence is equal to or greater than said predetermined value;
a register coupled to said arithmetic means for storing each of the subsequences generated thereby;
and counter means connected to said register and to each of said first and second memories for reading out therefrom the jth random character and the jth prime number to said arithmetic means in response to storage of the (j-1)th subsequence in said register;
the content of said register after storage of all N subsequences therein constituting said message key.
2. Apparatus as claimed in claim 1, wherein said arithmetic means supplies the (j-1)th subsequence generated thereby to said character memory for storage therein as the jth of said random characters.
3. Apparatus as claimed in claim 1, wherein N=6, each of said subsequences comprises 8 binary bits, said first factor is 1, said second factor is 2, and said predetermined value is 28.
Description

This is a continuation of application Ser. No. 824,298, filed Jan. 30, 1986, which was a continuation of application Ser. No. 505,002, filed June 16, 1983 (both now abandoned).

BACKGROUND OF THE INVENTION

Field of the Invention

The invention relates to a method of generating a pseudo-random sequence of signs of a large sequence length.

Pseudo-random sequences of signs are inter alia used in the field of encrypting information. These sequences may alternatively be used as message keys. It is important for these pseudo-random sequences to have a very long repetition period to guarantee that in the event of long messages the pseudo-random sequence is not predictable or, when used as a message key, does not repeat itself.

Description of the Prior Art

It is generally known to employ a feedback sheet register for generating a pseudo-random sequence of signs and to implement this shift register with individual logic circuits ("wired-logic"). As only some of the bits must be processed in the register this implementation is substantially optimal. If, in contrast therewith, a computer (microprocessor) is used then this technique is far from optimal as a microprocessor is primarily designed for performing logic and arithmetical operations on a number of bits in parallel.

SUMMARY OF THE INVENTION

The invention has for its object to provide a method of generating a pseudo-random sequence of signs of a large sequence length which can both be programmed in a simple way on a computer and be realized with few technical means in the form of a specific separate arrangement. According to the invention, the method of generating a pseudo-random sequence of signs is characterized in that the method comprises the following steps:

generating a first sub-sequence by adding a first random character to a first prime number;

generating a second (possibly a third, . . . generally a next) sub-sequence by adding a second (possibly a third, . . . generally a next) random character to either a first factor times a second prime number (possibly a third, . . . generally a next one), if the result of the sub-sequence obtained during the preceding addition is less than a predetermined value or to a second factor times the second prime number (possibly the third, . . . generally the next one) if the result of the sub-sequence obtained during the preceding addition exceeds the predetermined value, the second factor differing from the first factor;

generating the pseudo-random sequence by joining together the first and the second sub-sequences (and possibly the third, . . . generally the subsequence sub-sequence(s)).

It is advantageous for the pseudo-random sequence, the sub-sequences, the prime numbers, and the random characters to contain binary signs, the X sub-sequences, the prime numbers, and the random characters each containing N binary signs and the pseudo-random sequence containing XN binary signs.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention and its advantages will be further described by way of example with reference to the accompanying drawing. Therein

FIG. 1 shows an embodiment of an arrangement for performing the method according to the invention; and

FIG. 2 is a flow chart for a further embodiment of the method in accordance with the invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

The arrangement for generating a pseudo-random sequence of signs of a large sequence length, shown in FIG. 1 comprises a first memory 10 for storing a plurality of characters and a second memory 11 for storing a plurality of prime numbers. Both memories 10 and 11 comprise an address decoder 12 and 13, respectively, connnected to the output of a counter 14. The counting position of counter 14 indicates which memory location of memories 10 and 11 must be addressed. The memory 10 has a number of memory locations for storing pseudo-random characters and memory 11 has the same number of memory locations for storing prime numbers. In the further course of the description, let it be assumed by way of example that each memory 10, 11 has six locations and that each location can contain 8-bit words. So as to provide that the memory locations of the two memories are sequentially addressed, it is advantageous to implement the counter as a modulo-6 counter. It will be obvious that if the number of memory locations is chosen greater or smaller than 6 the modulo number of the counter is adapted thereto.

In addition, the arrangement comprises an arithmetical circuit 15 connected to an output of the memory 10 and an output of memory 11 for performing the operation:

PRB(j)+a.PRN(j)

The result of this operation is T(j). Herein j denotes the instantaneous counting position (1<j<6 in the example chosen); PRB(j) is the content of the jth location of the random character memory 10, PRN(j) is the content of the jth location of the prime number memory 11 and a may have the value of a first or a second factor. The value of the factor a depends on the value of the result T(j-1) of the operation, performed by the arithmetical circuit 15 at the preceding counting position (j-1). If that result exceeds a predetermined value then a obtains (or keeps) the value of the second factor. If the (j-1)th result is less than or equal to said predetermined value then a obtains (or keeps) the value of the first factor. In the example chosen the predetermined value is 255, i.e. the largest number of 8-bit memory location can contain. An advantageous value for the first factor is 1, for the second factor 2.

The result of the operation at the jth counting position (T(j)) is applied to a threshold element 16. If, T(j)≧256 then a is made equal to 2 and otherwise a is made equal to 1. In both cases the desired value of a is transferred to the arithmetical circuit 15 via an output of threshold element 16. In addition, the result T(j) is written (modulo-256) in the pseudo-random character memory 10 at address j, the preceding pseudo-random character just used being overwritten. For that purpose an output of arithmetical circuit 15 is connected to an input of memory 10.

The result of the operation at the jth counting position (T(j)) is finally (also modulo-256) written in the jth position of a register 17 via address decoder 18. This result T(j), forms the jth sub-sequence in the register 16. After each sub-sequence has been recorded a signal is applied to an input of counter 14 via an output of register 17 for incrementing the counting position by one.

Thus, after j has passed through each value (in the example chosen after j has reached the value 6) register 17 will contain a pseudo-random sequence of signs, which sequence is assembled from 6 sub-sequences each having 8 bits. Thereafter this random sequence of signs can be employed as a message key for encoding messages.

A new pseudo-random sequence can be generated by repeating the above-described method.

The arrangement shown in FIG. 1 is initiated by writing the required prime numbers into memory 11 and writing pseudo-random characters into memory 10. This pseudo-random character may alternatively be obtained on the basis of the random bit patterns produced in memory 10, after this memory 10 has been activated. The bit patterns, generated in this known manner are known as "memory garbage". It has further been found that prime numbers located in the area from 1/4 to 1/2 of the maximum number than can be stored in the memory locations must be preferred for cryptographical reasons.

Moreover, the threshold element 16 may be of such an implementation that it is determined whether during the operation T(j) a carry has occurred or not occurred in the most significant bit. If so, then the value of the second factor must be assigned to a, if not then the value of the first factor is assigned to a.

In the general case that a pseudo-random sequence comprising N x M signs must be generated, counter 14 will have N counting positions (modulo N-counter), the memories 10, 11 will each have N locations of M bits and the predetermined value will preferably be 2M.

The arrangement shown in FIG. 1 has the advantage that the logic and arithmetical operations are effected in parallel, that is to say simultaneously on a number of bits, so that a pseudo-random sequence having a long sequence length is generated in a simple and efficient way.

FIG. 2 shows a flow chart of a further embodiment of the method according to the invention. The following explanatory texts are associated with the instruction codes of the geometric Figures which describe the timesequential functions and states of the method of generating a pseudo-random sequence. It should be noted that such a time-sequence of functions and associated states of the method of generating a pseudo-random sequence can be realized in universal, sequential, programmable logic circuits such as commercially available microprocessors with associated memories and peripheral equipment.

______________________________________Referencenumeral Instruction code                 Specification______________________________________19      STRT          Start;20      RD N; a:=1    The value of a number   RD PRB(j); j=0-5                 Parameters are written in   RD PRN(j); j=0-5                 The pseudo-random sequence                 contains N sub-sequences and                 the value of the first (mul-                 tiplication) factor is 1. In                 the flow chart it is further                 assumed that the value 6 is                 chosen for N. The value of                 the (six) pseudo-random cha-                 racters PRB(j), j=0=1, . . . 5                 and prime numbers PRN(j),                 j=0, 1 . . . , 5, is also written                 into the memories.21      j=0           A value 0 is assigned to the                 parameter  -j22      T(j)=PRB(j)+  The sum T(j) of the jth   a.PRN(j)      pseudo-random character                 PRB(j) and  -a times the jth                 prime rumber PRN(j) is de-                 termined;23      T(j) <256     The result of the sum T(j)                 is compared with a predeter-                 mined value. This value is                 256 in the present example                 (in the general case 2M).                 If the result is less than                 256 then the next operation                 is the operation which is                 represented by the geometric                 FIG. 24. If the result is                 not less than 256 the next                 operation is the operation                 represented by the geometric                 FIG. 25;24      a:=1          The value of the first multi-                 plicatiom factor is made                 equal to 1. The next ope-                 ration is then the operation                 represented by geometric                 FIG. 26.25      a:=2          The value of the second                 (multiplication) factor is                 made equal to 2.26      PRB(j):=T(j)  The value of the jth pseudo-                 random character PRB(j) is                 made equal to the value of                 the jth result T(j), at                 least modulo 25627      PRNT PRB(j)   The value of the jth pseudo-                 random character PRB(j) is                 printed28      j:=j+1        The value of parameter  -j is                 incremented by one29      j ≦ N  The value of  -j is compared                 with the value of N. If  -j is                 less than or equal to N then                 proceed to the geometrical                 FIG. 22. If, in contrast                 therewith  -j is larger than                 N then proceed to geometric                 FIG. 3030      STP           Stop. This geometric Figure                 is reached after  -j has                 reached the value 6 and the                 six values of a pseudo-random                 character PRB(j), have been                 printed.______________________________________

It should be noted that it is not important to the invention and for the flow chart of FIG. 2 if different values are chosen for the parameters M, a and N.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US3808536 *Apr 12, 1972Apr 30, 1974Gen Electric Co LtdCommunication scrambler system
US3984668 *Mar 19, 1975Oct 5, 1976U.S. Philips CorporationMethod for generating pseudo-random bit sequence words and a device for carrying out the method
US4058673 *Sep 24, 1975Nov 15, 1977Telefonaktiebolaget L M EricssonArrangement for ciphering and deciphering of information
US4133974 *Nov 5, 1976Jan 9, 1979Datotek, Inc.System for locally enciphering prime data
US4320513 *May 11, 1972Mar 16, 1982Siemens AktiengesellschaftElectric circuit for the production of a number of different codes
US4322577 *Aug 21, 1979Mar 30, 1982Braendstroem HugoCryptosystem
US4351982 *Dec 15, 1980Sep 28, 1982Racal-Milgo, Inc.RSA Public-key data encryption system having large random prime number generating microprocessor or the like
US4375579 *Jan 30, 1980Mar 1, 1983Wisconsin Alumni Research FoundationDatabase encryption and decryption circuit and method using subkeys
US4471164 *Oct 13, 1981Sep 11, 1984At&T Bell LaboratoriesStream cipher operation using public key cryptosystem
Non-Patent Citations
Reference
1 *Golomb, S. W., Digital Communications p. 12, Prentice Hall Inc. 1964.
2Goodman et al. "Pseudorandom Number Generator", IBM Technical Disclosure Bulletin, vol. 13, No. 4, p. 920 (1970).
3 *Goodman et al. Pseudorandom Number Generator , IBM Technical Disclosure Bulletin, vol. 13, No. 4, p. 920 (1970).
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US5258936 *May 10, 1993Nov 2, 1993Motorola, Inc.Method and apparatus for generating pseudo-random numbers
US5323338 *Feb 22, 1991Jun 21, 1994Enfranchise Sixty LimitedPseudo-random sequence generators
US5416783 *Aug 9, 1993May 16, 1995Motorola, Inc.Method and apparatus for generating pseudorandom numbers or for performing data compression in a data processor
US5850450 *Jul 19, 1996Dec 15, 1998Dallas Semiconductor CorporationMethod and apparatus for encryption key creation
US6625199Oct 19, 2000Sep 23, 2003Texas Instruments IncorporatedMethods and apparatus for use in simultaneously generating multiple data sequences using a single data access module
US6650687 *Oct 19, 2000Nov 18, 2003Texas Instruments IncorporatedMethods and apparatus for use in simultaneously generating data sequences for spread spectrum communications
US6718536Jun 21, 2002Apr 6, 2004Atmel CorporationComputer-implemented method for fast generation and testing of probable prime numbers for cryptographic applications
US6748006May 28, 1999Jun 8, 2004Texas Instruments IncorporatedMethod and apparatus for controlling system timing with use of a master timer
US7379955 *Mar 16, 2004May 27, 2008The United States Of America As Represented By The Director, National Security AgencyDevice for and method of generating pseudo-random sequence uniformly distributed over any range
CN100576174CApr 25, 2003Dec 30, 2009爱特梅尔公司Probable prime numbers for cryptographic applications
EP0949563A2 *Feb 23, 1999Oct 13, 1999Lucent Technologies Inc.A method for generating pseudo-random numbers
WO2003104969A2 *Jun 6, 2003Dec 18, 2003Cryptico AsMethod for improving unpredictability of output of pseudo-random number generators
WO2004001595A1 *Apr 25, 2003Dec 31, 2003Atmel CorpTesting probable prime numbers for cryptographic applications
Classifications
U.S. Classification708/250
International ClassificationH04L9/22, G06F7/58
Cooperative ClassificationH04L9/0662, G06F7/586, G06F7/582
European ClassificationH04L9/22, G06F7/58P3, G06F7/58P
Legal Events
DateCodeEventDescription
Dec 26, 2000FPExpired due to failure to pay maintenance fee
Effective date: 20001025
Oct 22, 2000LAPSLapse for failure to pay maintenance fees
May 16, 2000REMIMaintenance fee reminder mailed
Mar 29, 1996FPAYFee payment
Year of fee payment: 8
Mar 18, 1992FPAYFee payment
Year of fee payment: 4