Methods for improving unpredictability of output of pseudo-random number generators
First Claim
1. A method for repeatedly performing computations in a mathematical system which exhibits a positive Lyapunov exponent, comprising varying at least one parameter of the mathematical system after a certain number of computations.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for performing computations in a mathematical system which exhibits a positive Lyapunov exponent, or exhibits chaotic behavior, comprises varying a parameter of the system. When employed in cryptography, such as, e.g., in a pseudo-random number generator of a stream-cipher algorithm, in a block-cipher system or a HASH/MAC system, unpredictability may be improved. In a similar system, a computational method comprises multiplying two numbers and manipulating at least one of the most significant bits of the number resulting from the multiplication to produce an output. A number derived from a division of two numbers may be used for deriving an output. In a system for generating a sequence of numbers, an array of counters is updated at each computational step, whereby a carry value is added to each counter. Fixed-point arithmetic may be employed. A method of determining an identification value and for concurrently encrypting and/or decrypting a set of data is disclosed.
-
Citations
61 Claims
- 1. A method for repeatedly performing computations in a mathematical system which exhibits a positive Lyapunov exponent, comprising varying at least one parameter of the mathematical system after a certain number of computations.
-
18. A method for manipulating a first set of data in a cryptographic system, the first set of data comprising a first and a second number of a first and a second bit size A and B, respectively, the method comprising:
-
multiplying the first and the second number to obtain a third number of a third bit size A+B, the third number consisting of P most significant and Q least significant bits, wherein A+B=P+Q, and wherein Q is equal to the largest of the first bit size A and the second bit size B, Q=max(A,B), manipulating the third number to obtain a fourth number which is a function of at least one of the P most significant bits of the third number, using the fourth number for deriving an output of the cryptographic system. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43)
-
-
44. A method for manipulating a first set of data in a cryptographic system, the first set of data comprising a first and a second number, the method comprising:
-
dividing the first number by the second number to obtain a quotient and a remainder, combining, by means of a mathematical operation, the quotient and the remainder to obtain a resulting number, using the resulting number for deriving an output of the cryptographic system.
-
-
45. A method for generating a periodic sequence of numbers in a cryptographic system in which computational steps are repeatedly performed, the method comprising updating, in each computational step i, an array of counters, the counters being updated by a logical and/or by an arithmetic function, whereby, at each computational step, a carry value is added to each counter in the array, wherein the carry added to the first counter in the array, c0, is obtained from at least one of:
-
a selected computation of a value of the array of counters, a value which is a function of a counter value at a previous computational step.
-
-
46. A method for generating a periodic sequence of numbers in a cryptographic system in which computational steps are repeatedly performed, the method comprising updating, in each computational step i, an array Ci of counters cj,i, the counters being updated as:
-
c0,i+1=c0,i+a0+dimodN0, cj,i+1=cj,i+aj+bj−
1,i+1modNj for j>
0,where;
cj,i+1 is a value assigned to position j of array C at step i+1, j=0 . . . n−
1, n denoting a dimension of the array C,cj,i is a value assigned to position j of array C at step i, j=0 . . . n−
1,aj is a value assigned to position j of an array A, j=0 . . . n−
1,for j>
0;
bj−
1,i+1 is a carry value resulting from the computation of cj−
1,i+1,Nj is a constant, j=0 . . . n−
1,for i=0;
di=d0 is an initial value,for i>
0 di is a carry value obtained from a selected computation of a value of the array of counters Ci and/or a function of Ci.- View Dependent Claims (47, 48, 49, 50, 51, 52, 53, 54)
-
-
55. A method for generating an output of a cryptographic system in which computational steps are performed as an iterative procedure wherein an array of state variables, X, is repeatedly iterated so that at least one value assigned to a position in the array of state variables X at iteration step i+1 is a function of:
-
at least one value assigned to a position in the array of state variables X at iteration i, and at least one value assigned to a position of an array of counters C at iteration i, the array of counters being updated in each iteration as;
c0,i+1=c0,i+a0+dimodN0, cj,i+1=cj,i+aj+bj−
1,i+1modNj for j>
0,where;
cj,i+1 is a value assigned to position j of array C at step i+1, j=0 . . . n−
1, n denoting a dimension of the array C,cj,i is a value assigned to position j of array C at step i, j=0 . . . n−
1,aj is a value assigned to position j of an array A, j=0 . . . n−
1,for j>
0;
bj−
1,i+1 is a carry value resulting from the computation of cj−
1,i+1,Nj is a constant, j=0 . . . n−
1,for i=0;
di=d0 is an initial value,for i>
0 di is a carry value obtained from a selected computation of a value of the array of counters Ci and/or a function of Ci,each iteration comprising;
multiplying a first number of a first bit size A and a second number of a second bit size B to obtain a third number of a third bit size A+B, at least one of the first and second number being equal to or a function of at least one value assigned to a position of the array of state variables X at iteration i, the third number consisting of P most significant and Q least significant bits, wherein A+B=P+Q, and wherein Q is equal to the largest of the first bit size A and the second bit size B, Q=max(A,B), manipulating the third number to obtain a fourth number which is a function of at least one of the P most significant bits of the third number, using the fourth number for deriving the output of the cryptographic system and/or for assigning new values to positions of the array of state variables X.
-
- 56. A method of determining an identification value for identifying a set of data and for concurrently encrypting and/or decrypting the set of data, the method comprising performing numerical computations in a mathematical system exhibiting a positive Lyapunov exponent.
Specification