Method of generating pseudo-random numbers in an electronic device, and a method of encrypting and decrypting electronic data
First Claim
1. A method of performing numerical computations in a cryptographic system, which includes a mathematical system comprising at least one function, the method comprising the steps of:
- expressing the mathematical system in discrete terms,expressing at least one variable of the mathematical system as an integer number,placing an imaginary decimal separator in said integer number, whereby the integer number represents a real number,performing computations including the at least one variable expressed as an integer number so as to obtain a resulting number, the resulting number being expressed as an integer number,positioning the imaginary decimal separator in the resulting number at a predetermined position by performing at least one of the steps of;
correcting the position of the imaginary decimal separator in the integer number, andplacing an imaginary separator in the resulting number,the method further comprising the step of using the resulting number to obtain an output of the cryptographic system.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of performing numerical computations in a mathematical system with at least one function, including expressing the mathematical system in discrete terms, expressing at least one variable of the mathematical system as a fixed-point number, performing the computations in such a way that the computations include the at least one variable expressed as a fixed-point number, obtaining, from the computations, a resulting number, the resulting number representing at least one of at least a part of a solution to the mathematical system, and a number usable in further computations involved in the numerical solution of the mathematical system, and extracting a set of data which represents at least one of a subset of digits of the resulting number, and a subset of digits of a number derived from the resulting number.
130 Citations
123 Claims
-
1. A method of performing numerical computations in a cryptographic system, which includes a mathematical system comprising at least one function, the method comprising the steps of:
-
expressing the mathematical system in discrete terms, expressing at least one variable of the mathematical system as an integer number, placing an imaginary decimal separator in said integer number, whereby the integer number represents a real number, performing computations including the at least one variable expressed as an integer number so as to obtain a resulting number, the resulting number being expressed as an integer number, positioning the imaginary decimal separator in the resulting number at a predetermined position by performing at least one of the steps of; correcting the position of the imaginary decimal separator in the integer number, and placing an imaginary separator in the resulting number, the method further comprising the step of using the resulting number to obtain an output of the cryptographic system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 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, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123)
the method further comprising; extracting a set of data which represents at least one of; i. a subset of digits of the resulting number, and ii. a subset of digits of a number derived from the resulting number.
-
-
3. A method according to claim 2, wherein said set of data represent a pseudo-random number.
-
4. A method according to claim 2, wherein said computations include at least a first and a second fixed-point number, each fixed-point number having a decimal separator, wherein the decimal separator of the first fixed-point number is positioned at a position different from the position of the decimal separator of the second fixed-point number.
-
5. A method according to claim 4, wherein the step of performing computations includes positioning the decimal separator of the first and second fixed-point number at selected positions.
-
6. A method according to claim 2, wherein said at least one function is non-linear.
-
7. A method according to claim 2, wherein the resulting number is expressed as a variable selected from the group consisting of:
-
an integer number, a floating point number, and a fixed-point number.
-
-
8. A method according to claim 2, wherein the mathematical system comprises at least one of:
-
a differential equation, a discrete mapping.
-
-
9. A method according to claim 8, wherein the differential equation comprises at least one of:
-
a partial differential equation, an ordinary differential equation.
-
-
10. A method according to claim 8, wherein the discrete mapping comprises at least one of:
-
an area-preserving map, a non area-preserving map.
-
-
11. A method according to claim 8, wherein the mathematical system comprises at least one non-linear function governing at least one state variable X.
-
12. A method according to claim 11, wherein the mathematical system comprises a set of non-linear mapping functions.
-
13. A method according to claim 10, wherein the map comprises at least one of:
-
a logistic map of the form;
xn+1=μ
xn(1−
xn),an Anosov map of the form; a Hé
non map of the form;
-
-
14. A method according to claim 2, wherein the mathematical system comprises at least one non-linear differential equation.
-
15. A method according to claim 14, wherein the mathematical system comprises a set of non-linear differential equations.
-
16. A method according to claim 8, wherein the mathematical system has at least one positive Lyapunov exponent.
-
17. A method according to claim 8, comprising computing at least one Lyapunov exponent at least once during the mathematical computations.
-
18. A method according to claim 14, wherein the at least non-linear differential equation governs at least one state variable, X, which is a function of at least one independent variable, t.
-
19. A method according to claim 15, wherein the set of non-linear differential equations is a Lorenz system.
-
20. A method according to claim 19, wherein the Lorenz system consists of the following differential equations:
-
wherein X=(x, y, z) are state variables, t is the independent variable, and σ
, r and b are parameters.
-
-
21. A method according to claim 14, wherein the step of performing computations comprises numerically integrating at least one of:
-
the non-linear differential equation, and the non-linear differential equations of said set of non-linear differential equations, by repeatedly computing a solution Xn+1 based on at least one previous solution Xm, m≦
n+1, and a step length, Δ
Tn, of the independent variable, t.
-
-
22. A method according to claim 21, wherein the step of integrating comprises providing at least one initial condition, X0, of the state variable, X, and an initial step length, Δ
- T0.
-
23. A method according to claim 11, wherein the step of performing computations comprises numerically iterating the non-linear mapping function.
-
24. A method according to claim 23, wherein the step of iterating comprises providing at least one initial condition, X0, of the state variable, X.
-
25. A method according to claim 21, wherein, in the discretized formulation of the Lorenz system, the solution Xn+1 is computed using the step length Δ
- T=(Δ
tx,n, Δ
ty,n, Δ
tz,n) as follows;
xn+1=xn+(σ
(yn−
xn))·
Δ
tx,n
yn+1=yn+(xn(r−
zn)−
yn)·
Δ
ty,n
zn+1=zn+(xnyn−
bzn)·
Δ
tz,n,wherein; Δ
tx,n is the step length used in the computation of xn+1,Δ
ty,n is the step length used in the computation of yn+1,Δ
tz,n is the step length used in the computation of zn+1.
- T=(Δ
-
26. A method according to claim 21, wherein the step length Δ
- T is constant throughout the computations.
-
27. A method according to claim 21, wherein, in each integration step, at least one of the elements (Δ
- tx,n, Δ
ty,n, Δ
tz,n) of the step length Δ
T is a function of at least one number related to said computations.
- tx,n, Δ
-
28. A method according to claim 27, wherein, in each integration step, at least one of the elements (Δ
- tx,n, Δ
ty,n, Δ
tz,n) of the step length Δ
T is a function of at least one solution, Xm, which is a solution to the mathematical system.
- tx,n, Δ
-
29. A method according to claim 27, wherein, in each integration step, at least one of the elements (Δ
- tx,n, Δ
ty,n, Δ
tz,n) of the step length Δ
T is a function of at least one given step length, Δ
Tm.
- tx,n, Δ
-
30. A method according to claim 2, wherein a key selected from an encryption key and a decryption key is used to determine at least one value of at least one variable in the mathematical system.
-
31. A method according to claim 30, wherein the key is used to determine at least a part of the initial condition X0.
-
32. A method according to claim 30, wherein the key is used to determine at least a part of the initial step length Δ
- T0.
-
33. A method according to claim 30, wherein the key is used to determine the at least a part of at least one of the parameters.
-
34. A method according to claim 30, wherein the key is a public key.
-
35. A method according to claim 30, wherein the key is a private key.
-
36. A method according to claim 2, comprising extracting a plurality of numbers resulting from the computations.
-
37. A method according to claim 2, wherein the step of extracting comprises extracting at least one number derived from k bits of the resulting number.
-
38. A method according to claim 2, wherein the step of extracting comprises extracting the k least significant bits of the resulting number.
-
39. A method according to claim 37, wherein k is a value selected from the group consisting of:
- 8, 16, 32, 64, and 128.
-
40. A method according to claim 37, wherein a plurality of numbers are extracted.
-
41. A method according to claim 2, wherein the extracted set of data is manipulated by means of at least one of:
-
an arithmetic operation, and a logical operation, so as to obtain a combined set of data.
-
-
42. A method according to claim 41, wherein at least one of the:
-
extracted set of data, and the combined set of data is combined with original data, so as to encrypt the original data.
-
-
43. A method according to claim 41, wherein at least one of:
-
extracted set of data, and the combined set of data is combined with encrypted data, so as to decrypt the encrypted data and obtain the original data.
-
-
44. A method according to claim 41, wherein the combining of data comprises an XOR operation.
-
45. A method according to claim 2, wherein said computations include data representing a block of plaintext in a block-cipher encryption and decryption system.
-
46. A method according to claim 2, wherein the extracted set of data is used to define at least one operation on a block of plaintext in a block-cipher encryption and decryption system.
-
47. A method according to claim 42, wherein the combining of data comprises addition of the original data and the combined set of data for encryption, and subtraction of the combined set of data from the encrypted data for decryption.
-
48. A method according to claim 42, wherein the combining of data comprises subtraction of the combined set of data from the original data for encryption, and addition of the combined set of data and the encrypted data for decryption.
-
49. A method according to claim 2, wherein the extracted set of data is used as at least one of:
- an encryption key and a decryption key.
-
50. A method according to claim 2, wherein the extracted set of data is used to generate at least one of:
- an encryption key and a decryption key.
-
51. A method according to claim 2, wherein the extracted set of data is used in generation of data representing a digital signature.
-
52. A method according to claim 2, wherein the extracted set of data is used in watermarking of digital data.
-
53. A method according to claim 2, wherein the computations are performed on an electronic device which comprises an electronic processing unit having a register width, the method comprising the steps of:
-
expressing at least one integer number of a bit width larger than said register width as at least two sub-numbers each having a bit width which is at most equal to said register width, performing at least one of said computations as a sub-computation on each of the sub-numbers so as to arrive at at least two partial results, expressed as integer numbers of a bit width smaller which is at most equal to the register width of the processing unit, concatenating the partial results to yield a representation of a result of said at least one computation.
-
-
54. A computer program for performing the method of claim 1, wherein the integer number is a fixed-point number, the computer program being adapted to:
-
perform said computations in such a way that the computations include the at least one variable expressed as a fixed-point number, obtain, from said computations, the resulting number, the resulting number representing at least one of; a. at least a part of a solution to the mathematical system, and b. a number usable in further computations involved in the numerical solution of the mathematical system, the computer program being further adapted to; extract a set of data which represents at least one of; i. a subset of digits of the resulting number, and ii. a subset of digits of a number derived from the resulting number.
-
-
55. A computer readable data carrier loaded with a computer program for performing the method of claim 1, wherein the integer number is a fixed-point number, the computer program being adapted to:
-
perform said computations in such a way that the computations include the at least one variable expressed as a fixed-point number, obtain, from said computations, the resulting number, the resulting number representing at least one of; a. at least a part of a solution to the mathematical system, and b. a number usable in further computations involved in the numerical solution of the mathematical system, the computer program being further adapted to; extract a set of data which represents at least one of; i. a subset of digits of the resulting number, and ii. a subset of digits of a number derived from the resulting number.
-
-
56. A computer which is operatively connected to a computer readable data carrier loaded with a computer program for performing the method of claim 1, wherein the integer number is a fixed-point number, the computer program being adapted to:
-
perform said computations in such a way that the computations include the at least one variable expressed as a fixed-point number, obtain, from said computations, the resulting number, the resulting number representing at least one of; a. at least a part of a solution to the mathematical system, and b. a number usable in further computations involved in the numerical solution of the mathematical system, the computer program being further adapted to; extract a set of data which represents at least one of; i. a subset of digits of the resulting number, and ii. a subset of digits of a number derived from the resulting number, wherein the computer comprises processor means for running said program.
-
-
57. An extracted set of data which have been derived from the method of claim 1, wherein the integer number is a fixed-point number,
said computations have been performed in such a way that the computations have included the at least one variable expressed as a fixed-point number, the resulting number has been obtained from said computations, the resulting number representing at least one of: -
a. at least a part of a solution to the mathematical system, and b. a number usable in further computations involved in the numerical solution of the mathematical system, whereby the extracted set of data represents at least one of; i. a subset of digits of the resulting number, and ii. a subset of digits of a number derived from the resulting number.
-
-
58. An encrypted set of data which has been derived as a combination of plaintext and at least one set of data extracted from computations in accordance with the method of claim 1, wherein the integer number is a fixed-point number,
said computations have been performed in such a way that the computations have included the at least one variable expressed as a fixed-point number, the resulting number has been obtained from said computations, the resulting number representing at least one of: -
a. at least a part of a solution to the mathematical system, and b. a number usable in further computations involved in the numerical solution of the mathematical system, whereby the extracted set of data represents at least one of; i. a subset of digits of the resulting number, and ii. a subset of digits of a number derived from the resulting number.
-
-
59. A method of generating a pseudo-random number, the method comprising:
-
performing the method of claim 1; II) defining a seed value representing at least an initial condition for the mathematical system, wherein the integer number is a fixed-point number, IV) performing said computations in an electronic device, the computations including the at least one variable expressed as a fixed-point number and obtaining, from said computations, a resulting number, the resulting number representing at least one of; a. at least a part of a solution to the mathematical system, and b. a number usable in further computations involved in the numerical solution of the mathematical system, V) extracting, as the pseudo-random number, a number derived from at least one number which has occurred during the computations.
-
-
60. A method according to claim 59, wherein the pseudo-random number is extracted as a number derived from k digits of said at least one number which has occurred during the computations.
-
61. A method according to claim 60, wherein the pseudo-random number is extracted as a number derived from the k least significant digits of said at least one number.
-
62. A method according to claim 59, the method comprising the steps of repeating steps IV) and V) until a given amount of pseudo-random numbers has been generated.
-
63. A method according to claim 59, wherein a given amount of pseudo-random numbers is generated and stored in a memory of the electronic device as a spare seed value.
-
64. A method according to claim 59, wherein a plurality of resulting numbers are obtained which represent at least parts of solutions to the mathematical system, the method further comprising detecting periodic behavior in the solution of the mathematical system, the mathematical system comprising at least one non-linear function governing at least one state variable with respect to at least one independent variable, the detecting of periodic behavior comprising:
-
variable with respect to at least one independent variable, the detecting of periodic behavior comprising; storing selected solutions in an array, A, in a memory of the electronic device, the array being adapted to store a finite number, n+1, of solutions, determining whether at least one of; a current solution, and a particular one of said solutions stored in the array is substantially identical to another solution stored in the array, the method further comprising; if the step of determining reveals that at least one of the current solution, and the particular solution is identical to another solution; interrupting the pseudo-random-number generation, i.e. interrupting repetition of steps IV) and V), using the spare seed value as the seed value in the step II), resuming the pseudo-random-number generation, i.e. resuming repetition of steps IV) and V).
-
-
65. A method according to claim 64, further comprising, prior to the step of resuming the pseudo-random number generation, generating and storing, in a memory of the electronic device, a given amount of pseudo-random numbers as a new spare seed value.
-
66. A method according to claim 59, wherein each level in the array, A, is reset prior to step IV), when steps IV) and V) are initiated with a new seed value at step II).
-
67. A method of encrypting a set of original data into a set of encrypted data, the method comprising the steps of:
-
A) generating a pseudo-random number by performing the method of claim 1; V) extracting, as the pseudo-random number, a number derived from at least one number which has occurred during the computations, B) manipulating the original data and the pseudo-random number by means of at least one of; i. an arithmetic operation, and ii. a logical operation, so as to obtain a combined set of data, the combined set of data being the encrypted data.
-
-
68. A method according to claim 67, wherein, prior to step A), a sub-set of the original data is separated from the set of data, and wherein step B) is performed on the sub-set of data.
-
69. A method according to claim 67, wherein the pseudo-random number is extracted as a number derived from k digits of said at least one number which has occurred during the computations.
-
70. A method according to claim 67, wherein the pseudo-random number is extracted as a number derived from the k least significant digits of said at least one number which has occurred during the computations.
-
71. A method according to claim 67, the method comprising the steps of repeating steps IV) and V) until a given amount of pseudo-random numbers has been generated.
-
72. A method according to claim 67, wherein a given amount of pseudo-random numbers is generated and stored in a memory of the electronic device as a spare encryption key.
-
73. A method according to claim 72, wherein a plurality of resulting numbers are obtained which represent at least parts of solutions to the mathematical system, the method further comprising detecting periodic behavior in the solution of the mathematical system, the mathematical system comprising at least one non-linear function governing at least one state variable with respect to at least one independent variable, the detecting of periodic behavior comprising:
-
storing selected solutions in an array, A, in a memory of the electronic device, the array being adapted to store a finite number, n+1, of solutions, determining whether at least one of; a current solution, and a particular one of said solutions stored in the array is substantially identical to another solution stored in the array, the method further comprising; if the step of determining reveals that at least one of; the current solution, and the particular solution is identical to another solution; interrupting the pseudo-random number generation, i.e. interrupting repetition of steps IV) and V), using the spare encryption key as the encryption key in step II), resuming the pseudo-random number generation, i.e. resuming repetition of steps IV) and V).
-
-
74. A method according to claim 73, further comprising, prior to the step of resuming the pseudo-random number generation, generating and storing, in a memory of the electronic device, a given amount of pseudo-random numbers as a new spare encryption key.
-
75. A method according to claim 67, wherein each level in the array, A, is reset prior to step IV), when steps IV) and V) are initiated with a new seed value at step II).
-
76. A method of decrypting a set of encrypted data which has been encrypted by a method of encrypting a set of original data into said set of encrypted data, the method of encrypting comprising the steps of:
-
A) generating a pseudo-random number by performing the method of claim 1; V) extracting, as the pseudo-random number, a number derived from at least one number which has occurred during the computations, B) manipulating the original data and the pseudo-random number by means of at least one of; i. an arithmetic operation, and ii. a logical operation, so as to obtain a combined set of data, the combined set of data being the encrypted data, the method of decrypting comprising the steps of; a) performing step A), so as to extract the same pseudo-random number as extracted in step V), b) manipulating the encrypted data and the pseudo-random number by means of at least one of; an arithmetic operation, and a logical operation, so as to obtain the original, decrypted, version of the data.
-
-
77. A method according to claim 76, wherein, prior to step a), a sub-set of the encrypted data is separated from the set of encrypted data, the method of decrypting comprising performing steps a) and b) on said sub-set of data.
-
78. A method according to claim 77, comprising repeating the steps A)–
- B) until a plurality of sub-sets which in common constitute the entire set of encrypted data have been decrypted.
-
79. A computer program for encrypting and decrypting a set of data, the computer program being adapted to run in an encryption mode and in a decryption mode;
- the computer program being further adapted to;
i) generate a pseudo-random number in a reproducible way by performing the method of claim 1, wherein the integer number is a fixed-point number, performing computations including the at least one variable expressed as a fixed-point number, obtaining, from the computations, the resulting number, the resulting number representing at least one of; a. a part of a solution to the mathematical system, and b. a number usable in further computations involved in the numerical solution of the mathematical system, extracting, as the pseudo-random number, a number derived from at least one number which has occurred during the computations, ii) manipulate the data and the pseudo-random number by means of at least one of; an arithmetic operation, and a logical operation, so as to obtain a combined set of data, wherein; the combined set of data represents an encrypted version of the data in case the computer program is run in encryption mode, the combined set of data represents a decrypted version of the data in case the computer program is run in decryption mode.
- the computer program being further adapted to;
-
80. A computer readable data carrier loaded with a computer program for encrypting and decrypting a set of data, the computer program being adapted to run in an encryption mode and in a decryption mode, the computer program being further adapted to:
-
i) generate a pseudo-random number in a reproducible way by performing the method of claim 1, wherein the integer number is a fixed-point number, performing computations including the at least one variable expressed as a fixed-point number, obtaining, from the computations, the resulting number, the resulting number representing at least one of; a. a part of a solution to the mathematical system, and b. a number usable in further computations involved in the numerical solution of the mathematical system, extracting, as the pseudo-random number, a number derived from at least one number which has occurred during the computations, ii) manipulate the data and the pseudo-random number by means of at least one of; an arithmetic operation, and a logical operation, so as to obtain a combined set of data, wherein; the combined set of data represents an encrypted version of the data in case the computer program is run in encryption mode, the combined set of data represents a decrypted version of the data in case the computer program is run in decryption mode.
-
-
81. A computer being operatively connected to a computer readable data carrier loaded with a computer program for encrypting and decrypting a set of data, the computer program being adapted to run in an encryption mode and in a decryption mode, the computer program being further adapted to:
-
i) generate a pseudo-random number in a reproducible way by performing the method of claim 1, wherein the integer number is a fixed-point number, performing computations including the at least one variable expressed as a fixed-point number, obtaining, from the computations, the resulting number, the resulting number representing at least one of; a. a part of a solution to the mathematical system, and b. a number usable in further computations involved in the numerical solution of the mathematical system, extracting, as the pseudo-random number, a number derived from at least one number which has occurred during the computations, ii) manipulate the data and the pseudo-random number by means of at least one of; an arithmetic operation, and a logical operation, so as to obtain a combined set of data, wherein; the combined set of data represents an encrypted version of the data in case the computer program is run in encryption mode, the combined set of data represents a decrypted version of the data in case the computer program is run in decryption mode, the computer comprising processor means for running said program.
-
-
82. A method according to claim 79, further comprising:
- performing steps I)–
V) in a plurality of instances in parallel.
- performing steps I)–
-
83. A method according to claim 82, comprising transmitting data between the plurality of instances at least while performing step IV) for each of the instances.
-
84. A method according to claim 82, further comprising transmitting data between the plurality of instances while performing step V) for each of the instances.
-
85. A method according to claim 82, comprising combining, by use of at least one of:
-
an arithmetic operation, and a logical operation, a plurality of pseudo-random numbers extracted at step V) in each of the instances into a common pseudo-random number.
-
-
86. The method of claim 1, wherein the integer number is a fixed-point number,
performing said computations in such a way that the computations include the at least one variable expressed as a fixed-point number, obtaining, from said computations, a resulting number, the resulting number representing at least one of: -
a. at least a part of a solution to the mathematical system, and b. a number usable in further computations involved in the numerical solution of the mathematical system, the step of performing computations comprising; repeatedly computing a solution Xn+1 based on at least one previous solutions Xm, m≦
n+1, whereby the step of performing computations is initiated based on at least one initial condition, X0, of the state variable, X,the method further comprising; providing a cryptographic key as an input to said computations, whereby the cryptographic key is used in generation of the initial condition X0.
-
-
87. A method of determining an identification value for identifying a set of data, the method comprising performing as the method of claim 1, wherein the integer number is a fixed-point number,
performing said computations in such a way that the computations include the at least one variable expressed as a fixed-point number, obtaining, from said computations, the resulting number, the resulting number representing at least one of: -
a. at least a part of a solution to the mathematical system, and b. a number usable in further computations involved in the numerical solution of the mathematical system, whereby a representation of at least part of the set of data is used in said computations, the method further comprising; extracting, as said identification value, at least a part of said resulting number.
-
-
88. A method according to claim 87, wherein a cryptographic key is used as a seed value for the computations.
-
89. A method according to claim 87, wherein the mathematical system comprises at least one of:
-
a differential equation, a discrete mapping.
-
-
90. A method according to claim 89, wherein the differential equation comprises at least one of:
-
a partial differential equation, an ordinary differential equation.
-
-
91. A method according to claim 89, wherein the discrete mapping comprises at least one of:
-
an area-preserving map, a non area-preserving map.
-
-
92. A method according to claim 89, wherein the mathematical system comprises at least one non-linear function governing at least one state variable X.
-
93. A method according to claim 92, wherein the non-linear mapping function comprises a logistic map of the form xn+1=λ
- xn(1+xn), wherein λ
is a parameter, xn+1 is the value of state variable x at the (n+1)'"'"'th stage in the computations, and xn is the value of state variable x at the n'"'"'th stage in the computations.
- xn(1+xn), wherein λ
-
94. A method according to claim 93, wherein the logistic map is modified into the form xn+1=λ
- xn(1−
xn)+ε
(xn−
mn), wherein λ and
ε
are parameters, xn+1 , is the value of state variable x at the (n+1)'"'"'th stage in the computations, xn is the value of state variable x at the n'"'"'th stage in the computations, and mn contains a representation of an n'"'"'th portion of the set of data.
- xn(1−
-
95. A method according to claim 93, wherein a cryptographic key is used for at least partially determining at least one of the following:
- λ
, ε and
an initial value x0 of state variable x.
- λ
-
96. A method according to claim 87, wherein the mathematical system comprises a set of non-linear mapping functions.
-
97. A method according to claim 96, wherein the set of mapping functions comprises at least one of:
-
an Anosov map of the form; a Hé
non map of the form;
-
-
98. A method according to claim 87, wherein the mathematical system comprises at least one non-linear differential equation.
-
99. A method according to claim 98, wherein the mathematical system comprises a set of non-linear differential equations.
-
100. A method according to claim 87, wherein the mathematical system has at least one positive Lyapunov exponent.
-
101. A method according to claim 87, comprising computing at least one Lyapunov exponent at least once during the mathematical computations.
-
102. A method according to claim 98, wherein the at least one non-linear differential equation governs at least one state variable, X, which is a function of at least one independent variable, t.
-
103. A method according to claim 99, wherein the set of non-linear differential equations comprises a Lorenz system.
-
104. The method of claim 1, further comprising:
-
restricting the range of at least a selected variable of said function, so as to exclude values which the selected variable, by virtue of said function, would assume if not restricted by said range, performing said computations so as to obtain the resulting number, the resulting number representing at least one of; a. a part of a solution to the mathematical system, and b. a number usable in further computations involved in the numerical solution of the mathematical system, when the computations result in a value for the selected variable which is beyond the range, assigning a value within the range to the selected variable.
-
-
105. A method according to claim 104, wherein the method is a part of a pseudo-random number generating method.
-
106. A method according to claim 105, wherein the pseudo-random number generating method generates pseudo-random numbers for use in at least one of encryption and decryption.
-
107. A method according to claim 104, wherein the mathematical system has at least one positive Lyapunov exponent.
-
108. The method of claim 1, wherein the integer number is a fixed-point number, performing said computations in such a way that the computations include the at least one variable expressed as a fixed-point number,
obtaining, from said computations, the resulting number, the resulting number representing at least one of: -
a. at least a part of a solution to the mathematical system, and b. a number usable in further computations involved in the numerical solution of the mathematical system.
-
-
109. The method according to claim 59, wherein the pseudo random number represents at least one of:
-
i. a subset of digits of the resulting number, and ii. a subset of digits of a number derived from the resulting number.
-
-
110. The method according to claim 109, wherein the pseudo-random number is extracted as a number derived from the k least significant digits of said at least one number.
-
111. The method according to claim 109, wherein said computations involve at least a first and a second fixed-point number, each fixed-point number having a decimal separator, wherein the decimal separator of the first fixed-point number is positioned at a position different from the position of the decimal separator of the second fixed-point number.
-
112. The method according to claim 109, wherein the mathematical system comprises a discrete mapping, comprising at least one of:
-
a logistic map of the form;
xn+1=μ
xn(1−
xn),an Anosov map of the form; a Hé
non map of the form;
-
-
113. The method according to claim 109, wherein the mathematical system comprises at least one of:
-
a differential equation, a discrete mapping, and wherein the mathematical system has at least one positive Lyapunov exponent.
-
-
114. The method according to claim 109, wherein the mathematical system comprises a set of non-linear differential equations, which set is a Lorenz system consisting of the following differential equations:
-
wherein X=(x, y, z) are state variables, t is the independent variable, and σ
, r and b are parameters.
-
-
115. The method according to claim 109, wherein the mathematical system comprises at least one non-linear differential equation, wherein:
-
the step of performing computations comprises numerically integrating the at least one non-linear differential equation by repeatedly computing a solution Xn+1 based on at least one previous solution Xm, m≦
n+1, and a step length, Δ
Tn, of the independent variable, t, and whereinin each integration step, at least one of the elements (Δ
tx,n, Δ
ty,n, Δ
tz,n) of the step length Δ
T is a function of at least one number related to said computations.
-
-
116. The method according to claim 109, wherein a key selected from an encryption key and a decryption key is used to determine at least one value of at least one variable in the mathematical system.
-
117. The method according to claim 116, wherein the mathematical system includes at least one parameter, an initial condition X0, and an initial step length Δ
- T0, and wherein the key is used to determine at least one of;
at least a part of the initial condition X0, at least a part of the initial step length Δ
T0, and at least a part of said at least one parameter.
- T0, and wherein the key is used to determine at least one of;
-
118. The method according to claim 110, wherein said step of extracting comprises extracting a plurality of numbers.
-
119. The method according to claim 109, wherein the extracted number is manipulated by means of at least one of:
-
an arithmetic operation, and a logical operation, so as to obtain a combined set of data.
-
-
120. The method according to claim 119, wherein at least one of:
-
the extracted set of data, and the combined set of data is used for at least one of; encryption of original data to obtain encrypted data, and decryption the encrypted data to obtain the original data.
-
-
121. The method according to claim 109, wherein the extracted number is used to generate at least one of:
- an encryption key and a decryption key.
-
122. The method according to claim 109, the method comprising performing steps I)–
- V) in a plurality of instances in parallel and transmitting data between the plurality of instances at least while performing at least one of steps IV) and V) for each of the instances.
-
123. The method according to claim 122, comprising combining, by use of at least one of:
-
an arithmetic operation, and a logical operation, a plurality of pseudo-random numbers extracted at step V) in each of the instances into a common pseudo-random number.
-
Specification