Introduction
Random number generators fall into two main categories, True Random Number Generators (TRNGs) and Pseudo Random Number Generators (PRNGs). TRNGs derive randomness from physical processes, such as electronic noise and radioactive decay, or sources in the real world such as atmospheric noise. TRNGs are completely random because they inherit the unpredictability from physical phenomena, but they can be slower and more expensive to implement than PRNGs [1]. On the other hand, a PRNG is an algorithm that uses mathematical formulas to generate a sequence of bits/numbers whose properties approximate the properties of sequences of random bits/numbers. PRNGs use a seed value to initialize the mathematical formulas and generate sequences of numbers that appear random. Although PRNGs are deterministic, they simulate randomness through the use of complex algorithms that can produce long sequences of numbers.
As shown in Fig. 1, PRNGs are widely utilized in many applications such as game development, cryptography, computer simulations and modeling, statistical analysis, internet, artificial intelligence, machine learning, and graphics. For example, randomness is a core element in games of chance such as casino games, where it ensures that game outcomes are unpredictable and fair [1].
Random numbers are also used in key generation, which is a critical and essential element of any cryptographic application. For instance, a hash function is designed by utilizing a 2D chaotic map and using the generated random sequences as keys to the hash function for authentication purpose [2]. Furthermore, computer simulations, such as Monte Carlo techniques, rely mostly on repeated random sampling to generate numerical results [3]. In statistics, generating random samples is essential in creating different statistical distributions that can be used to analyze different problems. Random numbers can also be used in generating initial passwords for websites, and random walks on complex networks improve the process of selecting network weights for optimal performance [4]. In computer graphics, crowd simulation is based on random distribution to maintain realistic scenes [5].
Common randomness evaluation criteria, which are applied in the literature for assessing the quality of a PRNG, are given in Table 1. Each of those tests is designed to measure different aspects of randomness in the generated bitstream. Evaluation criteria that are used in assessing the quality of encrypted images are also given in Table 1. The table briefly describes each test and provides any mathematical equations used in calculating it [6], [7], [8]. A PRNG can exist as a software or hardware module depending on the used source of randomness and the required application. In the hardware case, the bit rate is generally much higher than the software counterpart. In either case, the design of a PRNG can be categorized into two main categories as shown in Fig. 2, namely non-chaos-based and chaos-based. In the non-chaos-based category, different randomness sources can be used such as Liner Feedback Shift Register (LFSR), elliptic curves, fractals, and much more.
In the chaos-based category, discrete maps, continuous systems, and fractional-order systems are used. Discrete maps are a common choice for researchers as they are simple and efficient. For example, the logistic map has been enhanced, as proposed in [9] and [10], and combined with other maps like the Tent map [11], Sine map [12], and Chebyshev map to achieve better randomness quality and to increase the key space as reported in [13]. On the other hand, continuous systems generally offer larger key space as compared to discrete maps because of the larger number of control parameters as in [14]. In addition, each system state can produce several random numbers simultaneously [15], [16].
Those advantages over discrete maps can, however, affect the performance and system complexity. Finally, some designs combine non-chaotic generators with chaotic generators to balance the performance, complexity, and key space [17], [18]. In hardware scenarios, a common modern approach for PRNG is through the realization of the numerical solution used in solving the chaotic system. For example, combining both analog and digital design for chaotic generator [19] and PRNG based on discrete chaos [20]. Table 2 summarizes recently proposed PRNG designs with respect to their category, source of randomness, key space and bit rate, if provided. The table also shows whether key sensitivity tests, different randomness evaluation criteria, and image encryption applications are considered or not.
The objective of this paper is to investigate six different scenarios for designing PRNGs by providing basic definitions, simple flowcharts, design procedures, and some recommendations based on literature survey. The analysis includes the most common evaluation criteria that exist in recent literature such as NIST SP-800-22, TestU01 randomness tests, histogram, entropy, autocorrelation, and cross-correlation. In addition, key space, key sensitivity, key expansion, and algorithm complexity are studied for further assessment of the six PRNGs. Finally, the six PRNGs are utilized in an image encryption application to validate their use in cryptographic applications.
The remainder of this paper is organized as follows. Section II describes the six different PRNGs, which are based on chaotic and non-chaotic generators. Section III provides different security analyses for the six generators and compares them from the security and efficiency points of view. Section IV introduces and analyzes an image encryption application that utilizes the six PRNGs. Finally, the conclusions are given in Section V.
Six Different PRNG Designs
The two design categories of PRNGs, non-chaos-based and chaos-based, are studied and discussed in this section. In the first design category, PRNGs based on LFSR and S-Box (LS), Primitive Roots (PR), and Elliptic Curve (EC) are considered. In the second category, PRNGs based on Discrete Chaos (DC), Continuous Chaos (CC), and Fractional Chaos (FC) are considered. The design objective is to provide simple and functional PRNGs that enable valid comparisons. Although those designs pass the required statistical and sensitivity tests, they can be enhanced for improved statistical results and performance. The main flowcharts for the six PRNGs are shown in Fig. 3, which will be explained and discussed in the following subsections.
A. PRNG Based on LFSR and S-Box (LS)
An N-bit LFSR is a sequence of N shift registers connected in series with a feedback function. This function determines the period of the LFSR, where the outputs from some selected registers are XORed to define the feedback polynomial. When the polynomial is primitive, the period of the LFSR achieves its maximum value
(a) A 32-bit LFSR with feedback polynomial
Figure 4(b) shows a proposed new design of a PRNG, which uses three 32-bit LFSRs and 4 S-Boxes. The feedback polynomials for the three LFSRs are chosen as the first three polynomials in Table 3. The flowchart of the PRNG is shown in Fig. 3(a), where four 8-bit values
The Generate_SBox algorithm used to generate the
While there are so many PRNG designs based on LFSR, the design shown in Fig. 4(b) represents one simple design. For instance, a PRNG has recently been designed through carefully selecting two LFSRs and XOR gates to improve the length of the generated bit sequences by a factor of 200X as compared to the single LFSR-based design [38]. Moreover, area efficient stochastic number generators are designed through sharing the output of the LFSR with two comparators to achieve a minimal area hardware overhead [39]. A staggered LFSR is also proposed, where a subordinate LFSR determines the number of feedback polynomial applications for the main LFSR to enhance the randomness of the generated bit sequence [40].
During the design process of the LS PRNG, the key sensitivity tests are performed by modifying one bit in one of the seed values used in generating the S-Boxes. If the delay element is not available, only one S-Box is changed and the results of the correlation tests are not good. By adding the delay element, the change is propagated from one iteration to the next iteration resulting in a completely different bitstream.
Because LFSRs are predictable and cannot be used alone in generating secure PRNGs, combining more than one LFSR is necessary for adding security to the produced bitstream. Furthermore, utilizing S-Boxes helps in making the bitstream random and enables passing the NIST SP-800-22 and TestU01 randomness tests. Finally, enhancing the key sensitivity is achieved by adding a delay element. Figure 4(c) shows the output values
Therefore, the main design guidelines are summarized as follows:
Combining two or more LFSRs enhances security and increases the key space.
Incorporating a non-linear element, such as S-Box, adds and extra level of security.
Adding a delay element enhances the key sensitivity.
B. PRNG Based on Primitive Roots (PR)
In number theory, g is said to be a primitive root for p if every integer that is non-zero
Recently, a PRNG has been designed based on a prime number and its primitive roots [42]. A modified version of this PRNG is proposed in this section to increase the number of bits per iteration from 8 bits to 24 bits. Figure 3(b) shows the flowchart of the modified PRNG, which utilizes a prime number (p) and m of its primitive roots (
Each root is raised to the
Figure 5(a) shows the generated values of
(a) Values of
Hence, the main design guidelines are summarized as follows:
The special property of uniqueness found in primitive roots can be exploited.
Adding a delay element enhances the key sensitivity.
C. PRNG Based on Elliptic Curve (EC)
An elliptic curve equation takes the form \begin{align*} & P_{3} = \\ & \begin{cases} \displaystyle \left ({{m_{1}^{2}-x_{1}-x_{2}, m_{1}\left ({{x_{1}-x_{3}}}\right)-y_{1}}}\right), & x_{1} \neq x_{2} \\ \displaystyle \left ({{m_{2}^{2}-2 x_{1}, m_{2}\left ({{x_{1}-x_{3}}}\right)-y_{1}}}\right), & P_{1}=P_{2}, y_{1} \neq 0 \\ \displaystyle \mathcal {O}, & x_{1}=x_{2}, y_{1} \neq y_{2} \\ \displaystyle \mathcal {O}, & P_{1}=P_{2}, y_{1}=0 \\ \displaystyle P_{1}, & P_{2}=\mathcal {O} \\ \displaystyle P_{2}, & P_{1}=\mathcal {O} \end{cases} \tag {1}\end{align*}
(a) Elliptic curve example and the first two cases for point addition, and (b) elliptic curve points example.
Although ECs are commonly used in cryptography, they are also utilized in PRNGs. Several EC-based PRNGs are introduced where the points of the EC are the source of random bits. Two design categories are generally used, namely iterative designs such as [44] and [45] and non-iterative designs such as [46] and [47]. Since EC points can be subjected to cryptanalysis as pointed out in [48], it is not recommended to use all the bits from each coordinate. Moreover, higher bits are not chaotic enough and using them reduces the entropy in the bitstream.
Recently, a PRNG design based on elliptic curves has been proposed [22], where the process of generating random numbers is shown in Fig. 3(c). After reading the parameter K and the curve generator point G, the process starts by calculating the base point
Curve-192 is selected from the NIST list of recommended secure curves [49], where its prime modulus p is 192 bits and the base point G has 189 bits and 187 bits in the x and y coordinates, respectively. In this design approach, it is important not to extract too many bits from the elliptic curve points because the lower significant bits are more chaotic than the higher significant bits. For instance, different values of the extracted number of bits were investigated during the design process of the EC PRNG. When more than 96 bits were extracted from any point coordinate to increase the bit rate, the produced bitstream did not pass the NIST test.
It is also recommended to use a large prime number p and to carefully select the elliptic curve parameters such that the generator point of the curve forms a large group containing most of the curve points. For example, the curve
Therefore, the main design guidelines are summarized as follows:
A large prime number p should be chosen.
Elliptic curve parameters should be carefully selected.
It is not recommended to extract too many bits from the elliptic curve points.
D. PRNG Based on Discrete Chaos (DC)
Discrete maps are extensively utilized in PRNGs because of their simplicity and ease of implementation. Recently, several designs based on hyperchaotic systems are proposed such as the 3D discrete hyperchaotic system [50], a combination of the 2D Logistic map and Duffing map [51], and the 2D sine-cosine-logistic coupling [52]. In addition to those different design options, a simple and secure design is proposed using a modified logistic map.
The logistic map is well-known and studied in chaos theory, where it exhibits chaotic behavior for certain parameter values. This property makes it a candidate for use in cryptography as a source of randomness, and many research work has modified the logistic map to enhance its chaotic behavior and to introduce more controlling parameters [53], [54]. The positive logistic map is defined as:\begin{equation*} x_{n+1}=\lambda x_{n}\left ({{ a-bx_{n} }}\right), \tag {2}\end{equation*}
The process of generating random bytes, as shown in Fig. 3(d), starts by reading the map parameters and initial value,
To elaborate the benefits of adding more control parameters, consider the original logistic map with one parameter (
The dynamics of the positive logistic map are explored in Fig. 7, where the map parameters are selected as
(a) Cobweb diagram, (b) the first 25 iterations, and (c) maximum Lyapunov exponent of the positive logistic map.
Therefore, the main design guidelines are summarized as follows:
Adding extra controlling parameters to the map enhances the key space.
The choice of the map parameter values must ensure the chaotic behavior of the map.
E. PRNG Based on Continuous Chaos (CC)
In general, continuous systems have more parameters and system states than discrete maps. Those system states can serve as independent sources of randomness. Hence, many research efforts are based on continuous systems such as [55] and [56]. As an example for the different design options available in this category, the Lorenz system is utilized in PRNG using a simple and secure design.
The Lorenz system is a system of ordinary differential equations, which possesses chaos at certain system parameters. While being chaotic, the system state never repeats, and the dynamics of the system is sensitive to any change in the initial condition.
The Lorenz system is given by:\begin{align*} \frac {dx}{dt}& =\sigma \left ({{ x-y }}\right), \tag {3a}\\ \frac {dy}{dt}& =x\left ({{ \rho -z }}\right)-y, \tag {3b}\\ \frac {dz}{dt}& =xy-\beta z, \tag {3c}\end{align*}
While Fig. 8(a) shows the generated random values for the first 20 iterations, Figs. 8(b) and 8(c) explore the dynamics of the Lorenz system where the system parameters are selected as
(a) Values of
Therefore, the main design guidelines are summarized as follows:
Many system parameters should be selected to increase the key space.
The choice of the system parameter values must ensure chaotic behavior.
All system states should be utilized in the generation process to increase the bit rate.
F. PRNG Based on Fractional Chaos (FC)
As an extension to continuous systems, fractional-order systems add more system parameters by introducing the fractional-order powers. However, these extra options can have a negative effect on the system complexity and performance. Similar to continuous systems, one of the different design options available in this design category is proposed.
The fractional-order Lorenz system is introduced by applying fractional-order derivatives for the three differential equations given by:\begin{align*} \frac {d^{\alpha }x}{{dt}^{\alpha }}& = -10\left ({{ y-x }}\right), \tag {4a}\\ \frac {d^{\beta }y}{{dt}^{\beta }} & = -xz+\left ({{ 24-4~c }}\right)x+cy, \tag {4b}\\ \frac {d^{\gamma }z}{{dt}^{\gamma }}& =xy-\frac {8}{3}z, \tag {4c}\end{align*}
Recently, the fractional-order Lorenz system has been utilized in PRNG [27]. The process of generating random bytes is shown in Fig. 3(f), and it is similar to the corresponding process of the integer-order Lorenz system where the system parameter
(a) Values of
The fractional-order Lorenz system adds three extra controlling parameters over the integer-order Lorenz system, which helps in expanding the key space driving the system. Those extra parameters come at the cost of reduced performance because the system state at iteration N is obtained by solving the system for the previous (N – 1) states. Hence, it is recommended to calculate a small number of states and then restart the system from the last reached state.
The effect of using different values of N on the system performance is investigated. The system is tested for different values of N, after which the system is restarted using the last state. The results show that doubling the value of N reduces the bit rate by a factor of 0.5. Accordingly, restarting the system after a selected number of iterations improves the performance and increases the bit rate.
Similar to the integer-order Lorenz system, it is important to select the system parameters such that the system is chaotic. For example, by selecting the system parameters as
Therefore, the main design guidelines are summarized as follows:
Many system parameters should be selected to increase the key space.
The choice of the system parameter values must ensure chaotic behavior.
The three states should be utilized in the generation process to increase the bit rate.
Restart the system after a limited number of iterations (e.g., 100 iterations) to enhance the performance.
PRNG Results and Discussion
Four test groups, namely statistical tests, correlation tests, key sensitivity, and algorithm complexity, are applied to each PRNG and the results are explained and discussed. In addition, the potential for expanding the key for each PRNG design is investigated. The six PRNGs are then compared based on the security tests, algorithm performance, and key expansion. As shown in Table 4, the system key consists of the system parameters and initial conditions. For a fair comparison, a system key of length 128 bits is utilized in all PRNGs. Since PR is the only system that has dependent parameters (i.e., a prime number and some of its primitive roots), its key is carefully constructed to satisfy this relation. Afterwards, all other systems can safely operate using the same key whose value is “9086A797951D9751A32BB8E9CE8ED264” in hexadecimal.
Although the scope of this research is focused on basic PRNG design characteristics, each design category can be further modified by changing the system key to fulfill any required changes in the system design. It is also worth mentioning that due to the emergence of low resource devices, NIST started a contest to select a new standard for lightweight cryptography in constrained environments [59]. The contest ended with the selection of the Ascon family.
Table 4 shows the equivalent system parameters and initial conditions for the non-chaos-based PRNGs as extracted from the key. As for the chaos-based PRNGs, the parameters and initial conditions extracted from the key are modified by applying:\begin{align*} S& =S_{fix}+S_{key}\times {10}^{-12}, \tag {5a}\\ X& =X_{key}\times {10}^{-10}, \tag {5b}\end{align*}
All algorithms are implemented using C# under.net framework 4.7 and the experiments are conducted on a Dell laptop with processor Intel Core i7-1065G7 CPU @1.30GHz, running Windows 10 with 16 GB of RAM. The PRNGs are configured to generate 3,145,728 bytes which are equivalent to a colored image of size
A. Statistical Tests
The statistical evaluation examines the bitstreams generated from the six PRNGs using different tests including NIST SP-800-22 test suite [5], TestU01 randomness tests [6], histogram, and entropy. For any PRNG that is intended to be used in cryptographic applications, the NIST statistical test suite is an important tool for determining whether a bitstream is cryptographically secure or not. The NIST test suite provides a significance level
Furthermore, TestU01 is widely used in literature because of its built-in test batteries that cover many aspects of randomness tests. Three test batteries are selected for testing the randomness of the generated bitstreams, namely Rabbit, Alphabit, and Block Alphabit. Table 6 shows the results of the six PRNGs for the selected batteries, and they all succeeded in passing all of the 157 tests.
A histogram shows the distribution of the generated bytes from the PRNG, where a good PRNG should produce a uniform histogram with equally distributed numbers. On the other hand, a poor PRNG shows a nonuniform histogram indicating biases in the generated numbers. As shown in Fig. 10, all of the six PRNGs show uniform distributions for the output values. Moreover, the generated bytes from each PRNG are converted into an image as shown in Fig. 10. Visual inspection of the images reveals the randomness of the generated bytes, which is consistent with the results of previous tests. Finally, a good PRNG should have an entropy value that approaches its maximum value of 8. This indicates that the produced numbers cannot be predicted from previously generated ones. The entropy values for LS, PR, EC, DC, CC, and FC are 7.99994, 7.99994, 7.99994, 7.99995, 7.99995, and 7.99994, respectively. Since these values approach the maximum value, the generated bitstreams are not predictable.
Histogram and output bitstream represented as an image: (a) LS, (b) PR, (c) EC, (d) DC, (e) CC, and (f) FC.
B. Correlation Tests
The correlation of the generated bitstreams is examined in two different scenarios. In the first scenario, the autocorrelation coefficient is calculated between the original bitstream and 1000 shifted versions from itself. In the second scenario, each PRNG is derived by five keys that are different from the original key. Then, the cross-correlation coefficients between the original bitstream and the other five bitstreams are calculated. Autocorrelation indicates whether or not the bitstream exhibits dependency, periodicity, or repeated patterns. A good PRNG should produce a bitstream that is not dependent, periodic, or repeated. A value close to 1 or -1 represents poor bitstreams, whereas a value close to 0 represents a good bitstream.
As shown in Fig. 11, the autocorrelation values for different shift values are very close to zero as required. In addition, a cross-correlation coefficient value close to 0 indicates non-associated bitstreams whereas a value close to 1 or -1 indicates highly associated bitstreams.
Autocorrelation coefficient values for different shift values in the six PRNGs: (a) LS, (b) PR, (c) EC, (d) DC, (e) CC, and (f) FC.
Figure 12 shows five different keys as well as the cross-correlation coefficient values between the resulting bitstreams and the original bitstream. The close to zero values imply that the generated bitstreams have high dependency on the system key, and a completely different bitstream is generated for a different system key.
(a) Five different system keys, and (b) the resulting cross-correlation coefficient values for the six PRNGs.
C. Key Sensitivity
Key sensitivity is examined by changing the Least Significant Bit (LSB) of each parameter and initial condition. Then, the generated bitstreams are compared with the original bitstream generated using the original key. Table 7 summarizes the different sensitivity test cases for each system, and the resulting correlation coefficient values. The close to zero values demonstrate that even the slightest change in the system key changes the output bitstream significantly.
D. Algorithm Complexity
The algorithm complexity for the six PRNGs is studied using the big O notation. For the first five algorithms (LS, PR, EC, DC, and CC), only one loop exists as shown in Figs. 3(a)-(e). Hence, the complexity of the algorithm is
Although the first five algorithms (LS, PR, EC, DC, and CC) have similar complexity, the performance for each is different since they apply different mathematical operations with different computation times. Hence, the bit rate is calculated for all PRNGs to investigate the differences between the different methods. Table 8 shows the average bit rate for the six PRNGs, where the DC algorithm performs much better than the other algorithms. The reason behind this stems from the simple equation of the positive logistic map, which requires few mathematical operations per iteration.
For the LS algorithm, most of the operations are XOR, bit-shift, and bit-AND which are fairly fast operations in C#. Therefore, the bit rate is very good and outperforms reported bit rates in the literature such as [17] and [18]. Similarly for the CC algorithm, the reported bit rate is very good because few mathematical operations are required per iteration.
In case of the PR algorithm, although there are few operations per iteration, the power operation takes more time especially as the power starts to grow. Hence, the reported bit rate is fairly good but less than other PRNGs. For the FC algorithm, the reported bit rate is much lower than other PRNGs because of two factors. The first factor is the complexity of the algorithm, and the second factor is the large number of mathematical operations required per iteration. In case of the EC algorithm, although there is only one addition operation per iteration, the use of big integers to support very large numbers used by the elliptic curve adds extra processing time for performing simple addition and multiplication operations. Therefore, the reported bit rate is the minimum among the presented PRNGs.
E. Key Expansion
The potential of increasing the length of the system key is investigated with respect to different factors such as the number of parameters, parameter size, and the effect of those changes on the validity of the system. For the LS system, it is possible to increase the number of parameters as needed by adding more LFSRs and/or S-Boxes. In such cases, a new PRNG design is required to utilize the extra bits available from the new parameters. The new design should also be evaluated using the aforementioned tests before using it in any cryptographic application. Therefore, the LS system key cannot be expanded for the current design.
In the case of PR, all system key parameters can be expanded as long as a prime number and some of its primitive roots are selected. Because the size of a primitive root can be at most the size of the prime number, the maximum length of the system key equals
For an elliptic curve defined over a field
For the DC system, it is assumed that each of the key parameters is 32 bits in length. Because this length can be extended to 64 bits, the system key can be doubled to reach
F. Comparing the Six PRNGs
The six PRNGs are compared based on security tests, algorithm performance, and key expansion. Table 8 summarizes the PRNG results and it is clear that each of the currently proposed designs has its advantages and disadvantages, where a tradeoff between performance and security exists. For instance, DC has the highest bit rate but its key is limited to 256 bits. Hence, it might not be suitable for applications that require high security. On the other hand, EC has the least bit rate but its system key can be expanded to the size of the selected prime number. Hence, EC is more suitable than DC from the security point of view. It should be mentioned that for a fair comparison between the six designs, the key length is fixed to 128 bits. If the key length is not fixed, proper comparisons would not be possible and the analysis outcomes of Table 8 would be changed.
Image Encryption Application
Recently, a lot of research work focused on image encryption because of its increasing importance in the digital world. Table 9 summarizes some of the recent state of the art techniques and compares them with respect to different aspects such as key space, correlation coefficients, entropy, and differential attack measures.
Therefore, the six PRNGs are examined in a simple image encryption system as an example of a cryptographic application. Although each PRNG category can have a different key space, a simple system design with a fixed-length system key having a space of 2128 is chosen for the sake of fair comparisons. The block diagrams for the encryption and decryption systems are given in Fig. 13, where two mandatory processes, namely substitution and permutation, are required as recommended by Shannon [60]. While image pixel values are changed in the substitution process, image pixel positions are changed in the permutation process. The substitution process consists of a simple XOR operation between the image pixel, the pseudo random key, and the last encrypted pixel. The permutation process is performed using the well-known Arnold cat map [61], which is given as:\begin{align*} \binom {x_{new}}{y_{new}} =\left ({{\begin{array}{cccccccccccccccccccc} 1 & \quad a \\ b & \quad 1+ab \\ \end{array}}}\right) \binom {x}{y} mod ~M, \tag {6}\end{align*}
\begin{align*} S& =sum\left ({{ image~pixels }}\right), \tag {7a}\\ a& =mod\left ({{ S+a_{key},M-1 }}\right), \tag {7b}\\ b& =mod\left ({{ S+b_{key},M-1 }}\right)+1, \tag {7c}\end{align*}
Two standard images from the USC-SIPI database [68] are used in analyzing the encryption system; “Mandrill” and “Airplane” with sizes of
Images are known for the high correlation among their adjacent pixels in the horizontal, vertical, and diagonal directions. As shown in Table 10, the correlation coefficient values achieved by the encryption system are very small in all directions as required for good encryption.
In addition, the MSE values demonstrate the large difference between the encrypted and source images. At the same time, the entropy values are near 8 suggesting that the encrypted image acts similar to a random source.
Differential attacks are very common in image encryption, where an attacker tries to study the relationship between the input image and the output encrypted image by changing only one pixel value in the input image. In the case of a good encryption method, the expected values for NPCR and UACI metrics are around 99.61% and 33.46%, respectively [7]. In the proposed system design, the presence of the delay block enhances the differential attack results because the effect of changing one pixel is propagated to all of the image pixels. The differential attack measures are calculated by taking the average results of ten iterations where in each iteration one random pixel value is changed. The results in Table 10 confirm that the differential attack measures for the six PRNGs are in the good expected ranges.
Conclusion
Since PRNGs are a core component in many applications, this paper analyzed six design scenarios under two primary categories: non-chaotic and chaotic generators. While designing cryptographically secure PRNGs, it is recommended to follow some design guidelines to ensure that the key space is large enough to resist brute-force attacks, and that the key is sensitive to a one-bit change. Because the scope of this work is focused on basic PRNG design characteristics, a system key of length 128 bits is utilized in all PRNGs for the sake of proper comparisons. Although those designs pass the required statistical and sensitivity tests, they can be enhanced for improved statistical results and performance and the system key can be changed accordingly.
In case of the LS system, combining more than one LFSR increases the key space and enhances the security, the use of S-Boxes adds an extra level of security, and the delay element enhances the key sensitivity. In case of the PR system, the special property of uniqueness found in primitive roots enhances the security, and adding the delay element enhances the key sensitivity. For the EC system, selecting a secure elliptic curve with a large prime is mandatory, and extracting too many bits from the elliptic curve points is not recommended. For the DC system, adding extra controlling parameters enhances the key space, and carefully selecting the map parameters ensures chaotic behavior. In case of the CC system, using as many system parameters as possible increases the key space, and carefully selecting the system parameters ensures the chaotic behavior. The FC system is similar to the CC system, and to overcome the performance issue it is recommended to restart the system state after a small number of iterations. Finally, each of these design categories can be further enhanced to achieve different security levels with different key spaces.