Pseudorandom number generator for a stream cipher
AssigneeInfineon Technologies AG
InventorsGerd Dirscherl, Berndt Gammel, Rainer Goettfert
Life of this patent
Estimating the term…
Abstract
A pseudorandom number generator includes a unit for providing a number of 2n sequences of numbers, n being greater than or equal to 2. The sequences of numbers are combined by a unit such that at first all the sequences of numbers are combined with one another in an intermediate processing stage to obtain an intermediate processing sequence, and that subsequently a subgroup of k sequences of numbers is combined with the intermediate processing sequence in a final processing stage to obtain the output sequence.
Claims25
A pseudorandom number generator comprising:
- a unit configured to provide a number of 2n sequences of numbers, n being greater than or equal to 2;
- and
- a unit configured to combine the sequences of numbers to obtain an output sequence, wherein the unit for combining comprises:
- an intermediate processing stage configured to combine the 2n sequences of numbers to produce an intermediate processing sequence;
- and
- a final processing stage configured to combine a first subgroup of k of the sequences of numbers with the intermediate processing sequence to obtain the output sequence, k being greater than or equal to 1 and smaller than n,
- wherein the output sequence is used in an application selected from the group of applications consisting of:
- a cryptographic application, a coding application, a simulation application, a statistic application, a computer program testing application, a probabilistic algorithm, a numerical mathematical application, a numerical integration application, and a Monte Carlo application.
A method of providing pseudorandom numbers, comprising:
- providing a number of 2n sequences of numbers, n being greater than or equal to 2;
- and
- combining the sequences of numbers to obtain an output sequence, wherein the 2n sequences of numbers are at first combined in a first processing circuit to obtain an intermediate processing sequence, and wherein the intermediate processing sequence is then combined with a subgroup of k of the sequences of numbers in a second processing circuit to obtain the output sequence, k being greater than or equal to 1 and smaller than n,
- wherein the output sequence is used in an application selected from the group of applications consisting of:
- a cryptographic application, a coding application, a simulation application, a statistic application, a computer program testing application, a probabilistic algorithm, a numerical mathematical application, a numerical integration application, and a Monte Carlo application.
A device for ciphering or deciphering, comprising:
- a unit configured to provide a plain text sequence to be ciphered or a secret text sequence to be deciphered;
- a pseudorandom number generator comprising:
- a unit configured to provide a number of 2n sequences of numbers, n being greater than or equal to 2;
- a unit configured to combine the sequences of numbers to obtain an output sequence, wherein the unit configured to combine comprises:
- an intermediate processing stage configured to combine the 2n sequences of numbers to produce an intermediate processing sequence;
- and a final processing stage configured to combine a subgroup of k of the sequences of numbers with the intermediate processing sequence to obtain the output sequence, k being greater than or equal to 1 and smaller than n for providing an output sequence;
- and
- a unit configured to link the plain text sequence to the output sequence or the secret text sequence to the output sequence to obtain a ciphered sequence or a deciphered sequence, respectively.
A method of ciphering or deciphering, comprising:
- providing a plain text sequence to be ciphered or a secret text sequence to be deciphered;
- providing a pseudorandom output sequence according to a method of providing pseudorandom numbers, comprising the steps of:
- providing a number of 2n sequences of numbers, n being greater than or equal to 2;
- and combining the sequences of numbers to obtain an output sequence, wherein the 2n sequences of numbers are at first combined in a first processing circuit to obtain an intermediate processing sequence, and wherein the intermediate processing sequence is then combined with a subgroup of k of the sequences of numbers in a second processing circuit to obtain the output sequence, k being greater than or equal to 1 and smaller than n;
- and
- linking the plain text sequence to the output sequence or the secret text sequence to the output sequence to obtain a ciphered sequence or a deciphered sequence, respectively.
A computer readable memory having a computer program having a program code for performing a method of providing pseudorandom numbers, comprising:
- providing a number of 2n sequences of numbers, n being greater than or equal to 2;
- and combining the sequences of numbers to obtain an output sequence, wherein the 2n sequences of numbers are at first combined in an intermediate processing step to obtain an intermediate processing sequence, and wherein the intermediate processing sequence is then combined with a subgroup of k of the sequences of numbers in a final processing step to obtain the output sequence, k being greater than or equal to 1 and smaller than n, when the program runs on a computer, wherein the output sequence is used in an application selected from the group of applications consisting of:
- a cryptographic application, a coding application, a simulation application, a statistic application, a computer program testing application, a probabilistic algorithm, a numerical mathematical application, a numerical integration application, and a Monte Carlo application.
Dependencies are inferred from the claim text.