Next Article in Journal
Asymmetries of the Muscle Mechanical Properties of the Pelvic Floor in Nulliparous and Multiparous Women, and Men: A Cross-Sectional Study
Previous Article in Journal
Se-xDeepFEFM: Combining Low-Order Feature Refinement and Interaction Intensity Evaluation for Click-Through Rate Prediction
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

A Novel Discrete-Time Chaos-Function-Based Random-Number Generator: Design and Variability Analysis

by
Magfirawaty Magfirawaty
1,†,
Andriani Adi Lestari
1,
Agus Reza Aristiadi Nurwa
1,
Suryadi MT
2 and
Kalamullah Ramli
3,*,†
1
Cryptographic Hardware Engineering Programme, Politeknik Siber dan Sandi Negara, Bogor 16120, Indonesia
2
Department of Mathematics, Universitas Indonesia, Depok 16424, Indonesia
3
Department Electrical of Engineering, Universitas Indonesia, Depok 16424, Indonesia
*
Author to whom correspondence should be addressed.
These authors contributed equally to this work.
Symmetry 2022, 14(10), 2122; https://doi.org/10.3390/sym14102122
Submission received: 4 July 2022 / Revised: 3 September 2022 / Accepted: 9 September 2022 / Published: 12 October 2022
(This article belongs to the Section Computer)

Abstract

:
This paper presents a novel discrete-time (DT) chaotic map-based random-number generator (RNG), namely the Siponi map, which is a modification of the Logistic map. The Logistic map is usually applied to cryptosystems, mainly for the purposes of generating random numbers. In addition to being easy to implement, it has a better security level than other nonlinear functions. However, it can only process positive real-number inputs. Our proposed map is a deterministic function that can process positive and negative real values. We explored the map comprehensively and investigated its characteristics and parameters. We calculated the optimum parameter values using empirical and theoretical mathematical models to yield the maximum randomness of a sequence of bits. The limit variation of the maximum parameter value was determined based on a practical information measure. Empirical verification was performed for the Siponi map to generate bit sequences unrelated to the previous bit with high entropy values, and we found the extractor function threshold value to be 0.5, while the parameter control was −2 or 2. Using our proposed map, a simple RNG without post-processing passed DieHard statistical tests and all the tests on the NIST SP 800-22. Finally, we have implemented a Siponi map-based RNG on the FPGA board and demonstrated that the sources used are LUT = 4086, DSP = 62, and register = 2206.

1. Introduction

Random number sequences are utilized as keys for the encryption/decryption process, including in symmetric cryptographic system applications, as a salt to the hash function, and as a nonce function applied to cryptographic protocols [1]. The need for random number sequences is greater in many cryptographic applications, and these sequences play a crucial role in various security services. Therefore, processes that generate precise random sequence numbers are essential for cryptographic applications.
A unique key for encryption/decryption processes is achieved by employing a random-number generator (RNG) implemented through automatic methods [2]. The process of obtaining randomness plays a significant role in generating key sequences that can be utilized on cryptosystems, sequences which are difficult for unauthorized parties to solve [1].
The RNG encompasses a series of processes that generate a bitstream that have unpredictable or random values but also have specific distribution patterns. Pseudo-random-number generators (PRNGs) and true random-number generators (TRNGs) are the two main classes of RNG. PRNGs, also called deterministic RNGs, use the specific amount of the seed as the input, and its output is derived from the deterministic function of the seed. Therefore, the randomness of the resulting output depends on the seed. Pseudo-random numbers appear random if no identical values occur in the seed [3]. TRNGs use a non-deterministic source as an entropy source and a processing function as an entropy-distillation process. Physical quantities that can serve as an entropy source are noise in electronic circuits and other random-seeming waveforms/phenomena. A distillation process must be performed to overcome the weakness of the entropy source that generates nonrandom numbers. The harvesting method and post-processing are two entropy distillation processes. For cryptosystems, the output of TRNGs must be unpredictable [2]. In reality, however, several physical sources can be predicted. Therefore, combining various sources as TRNGs inputs is recommended, although this does not guarantee the generation of statistically random numbers series [3].
Chaos is a dynamic system that exhibits non-periodic behavior. A discrete-time chaotic (DTC) system can be utilized in RNG applications as the entropy source for the TRNG design. DTC systems are nonlinear dynamic systems that are very sensitive to changes in initial conditions [4,5,6,7]. Due to high sensitivity, chaos could be utilized as a deterministic function for generating random bits. Furthermore, the advantages of implementing DTCs are of use when there are fewer resources and are convenient when applied to cryptography. In a chaos system, the entropy source used is the inherent noise of the system, which is amplified by the positive feedback loop through the output signal for each iteration [8]. Other advantages are the integrity and quality of the bits produced. Therefore, this system is acceptable for random number generation processes [6,9,10,11]. The logistic map [10,11,12,13], tent map [6], and Bernoulli map [8] represent one-dimensional (1D) chaos systems that are commonly used to generate these numbers.
The Logistic map is a simple 1D chaos system widely applied to cryptosystems, especially for random-number generation processes [11,14,15,16,17]. In addition to being easy to implement on hardware, this chaos system has a better level of security than the linear function chaos system. The Logistics map is only able to process input in the form of positive real numbers x 0 ( 0 , 1 ) and produce positive real-number outputs, x n + 1 ( 0 , 1 ) . However, in the random-number generation process, without using post-processing, this chaotic system can generate a series of random bits with entropy values close to 1 and no correlation between bits.
Several researchers [9,16,18,19] have modified a 1D chaos system that can process positive and negative real input numbers, x 0 ( 1 , 1 ) , alternately. The map’s input value represents a non-ideal condition often encountered when the map is applied to a complex circuit. This condition will produce a biased and correlated binary circuit [9]. Map functions obtained from the modifications made can generate a series of random bits with very high entropy values (close to 1). However, these functions are not able to generate a statistically random number series. Therefore, the post-processing of the output data is required to minimize this condition. The most widely used post-processing steps for RNG applications include Von-Neumann [20], bit skipping, XOR, LFSR shuffler, and hash functions [12,21].
Based on some of the arguments above, in this study, we propose a new chaos function named the Siponi map, a modification of the Logistic map. This new chaos function is a dual-side-deterministic function, which is capable of processing positive and negative real values, x 0 ( 1 , 1 ) . It has a more comprehensive range of parameters, x n + 1 ( 1 , 1 ) , where n 0. The Siponi map could be applied to the RNG to generate a series of bits with random entropies close to 1. Furthermore, we have carried out an analysis using an empirical approach and a mathematical model to obtain a threshold value for generating independent and identically distributed binary sequences. We have performed several randomness performance tests on the generated bit sets using several statistical tests, including NIST SP 800-22 and the DieHard statistical test. In addition, the Siponi map implementation has been compared with another RNG-based 1D chaos system capable of processing real input values, x 0 ( 1 , 1 ) .
The paper includes five sections. Section 1 describes the research background. Section 2 reviews the DTC system and logistic map as a modified chaotic function. Section 3 explains the Siponi map as a proposed map function and the method of determining threshold values for acquiring an identically distributed bit sequence. Section 4 describes the proposed map application for the random-number generator, results, and analysis. Section 5 presents the conclusions of our experiment. This study used Matlab R2021 in the Siponi map design and simulation process. Furthermore, the function was implemented on the ZedBoard Zynq 7000 to generate a series of random numbers.

2. Preliminaries

2.1. Discrete-Time Chaotic Map

The chaotic map represents a dynamic system that exhibits non-periodic behavior, and it is a nonlinear dynamic system that is very sensitive to changes in the initial conditions [4,5,7]. Due to this sensitivity, chaos can be utilized as a deterministic function for generating random bits [7,9,10,22,23,24]. The dynamic system is a deterministic function whose output is entirely determined by the initial parameter values and initial conditions [4]. RNG-based chaotic systems can be classified as discrete-time (DT) or continuous-time (CT) systems, depending on the fundamental dynamics. In a CT chaotic system, the differential equations define the future state in relation to the current state variables; however, in a DTC system, the future state described by the function equation depends on the current state value. In other words, a DTC map exhibits the chaotic system behavior that is formed by the iteration of the system outputs into the system at each run time.
The operation of DTC RNGs requires an external clock signal to drive the chaotic dynamics. Therefore, the generation and evolution speed of the time series forming the chaotic trajectories depend on the clock frequency. The main components of a DTC RNG system are a nonlinear transfer function circuit, a sample-hold circuit, and a clock source. These components are shown in Figure 1.
A 1D chaos system is a simple dynamic system that is widely used to generate random numbers. The Logistic map, tent map, and Bernoulli map represent 1D chaos systems that are commonly used in this process. The Logistic map is a nonlinear chaos system, and, in addition to being easy to implement, the Logistic map also provides an appropriate level of security [4,11,19].

2.2. Logistic Map

The Logistic map is a 1D chaos system that is very popular in cryptography and other fields. The Logistic map is a recursive function with a particular parameter value and requires low computation to generate good chaotic conditions. It is described by:
x n + 1 = r x n ( 1 x n ) , n = 0 , 1 , . . . ,
where r is a parameter that lies in the interval ( 0 , 4 ] , and x n ( 0 , 1 ) . Hence, the definition of the Logistic map indicates that x n : ( 0 , 1 ) ( 0 , 1 ) . The Lyapunov exponents and bifurcation diagram represent the chaotic properties of the Logistic map that are obtained from calculations and plots. The Logistic map is very sensitive to changes in the initial conditions, especially when the parameter value (r) is 4. This property can be plotted in the Lyapunov exponent. As presented in Figure 2, the plot will be positive when r = 4.
The bifurcation diagram presents values close to the system’s asymptotic (fixed points, periodic orbits, or chaotic attractors) as a system parameters function. It can be used to determine the sensitivity level of a chaotic system. The plot of the bifurcation diagram depends on the parameter values. Figure 3 indicates a Logistic map bifurcation diagram and presents the highest sensitivity level as r = 4 .
The Logistic map has been applied as a dynamic system for generating random numbers that pass statistical tests; thus, a logistic map-based RNG algorithm is feasible for application in cryptography [25]. Although some researchers have modified the Logistic map to apply the Logistic map to cryptosystems, changes in the parameter values and generated data distribution must be considered [26,27].

3. Proposed Map

3.1. Siponi Map

We propose a novel DTC system named the Siponi map, which modifies the logistic map. This system generates output values that alternate between positive and negative values, which facilitates the implementation of modifications under non-ideal conditions [28]. Furthermore, the Siponi map will produce the same output in absolute values, because the resulting values are symmetric, despite alternating between positive and negative.
The map modification is defined as X over the interval I = ( 1 , 1 ) and I 0 . A partition point divides I into two segments, as shown in (2). Different functions define it for each segment; these are well known as X 1 and X 2 [26,27].
X = x n + 1 = X 1 , 1 < x n < 0 X 2 , 0 < x n < 1 ,
where x n ( 1 , 1 ) . In a Siponi map, positive input value generates negative output value, an vice versa. Therefore, the recursive equation of the Siponi map is as follows:
X = x n + 1 = r 2 x n 2 | r | + x n , 1 < x n < 0 r 2 x n 2 | r | x n , 0 < x n < 1 ,
where r is a real number, r [ 2.4 , 0 ) , and r ( 0 , 2.4 ] . Figure 4 presents the output of (3) for input values x n ( 1 , 1 ) and x n 0 . Different r values will provide different curves.
Equation (3) could be applied to define bifurcation diagrams from chaotic maps according to alterations of r. The bifurcation diagram serves to identify the chaotic behavior of a system. Employing (3), we obtain the plot of the bifurcation diagram as in Figure 5a. The diagram shows values ranging from r = 2 to r = 2.41 and r = 2.41 to r = 2 , generating a real-number output with the maximum range of [ 1 , 1 ] . As demonstrated in Figure 5b, those parameters generate positive Lyapunov exponential values, indicating high sensitivity.
The cobweb plot or Verhulst diagram of the Siponi map function with an initial value, x 0 , is represented in Figure 6. Therefore, the plot could define a point on the map curve as the endpoint in a particular iteration of the Siponi map function. The cobweb plot assists in visualizing successive iterations of the deterministic function and investigating the qualitative behavior of the 1D-iterated function.
The proposed map is very sensitive to alterations in the initial conditions. Two different initial values will produce different outputs. Furthermore, it is highlighted in Figure 7 how if a slight change occurs in the initial value, a different trajectory will be delivered.

3.2. Keyspace Analysis of the Proposed Map

Cryptographic applications can be used for various kinds of attacks, including brute-force attacks. In order to prevent an attack, it is possible to increase the keyspace of the secret keys or seed values, which are greater than 2 100 [29].
The Siponi map resulted in several parameters: the initial conditions x n ( 1 , 1 ) , where x n 0 , and several control parameters ( r ) . Figure 8 indicates that several control parameters have positive Lyapunov exponential values that provide real output numbers with a maximum range [ 1 , 1 ] when r = [ 2 , 2.41 ] . This condition is also similar for r = [ 2 , 41 , 2 ] . Furthermore, as shown in Figure 9a,b, the values of the control parameters are r [ 2.41 , 2.33 ] , [ 2.32 , 2.235 ] , [ 2.2 , 2.075 ] , [ 2.065 , 2 ] , [ 2 , 2.065 ] , [ 2.075 , 2.2 ] , [ 2.235 , 2.32 ] , [ 2.33 , 2.41 ] .
The IEEE floating-point standard indicates the double floating-point precision as 10 16 [30]. It allows the value of x to be one of 10 16 values and could be any value in the range ( ( 2.41 ( 2.33 ) ) + ( 2.32 ( 2.235 ) ) + ( 2.2 ( 2.075 ) ) + ( 2.065 ( 2 ) ) + ( 2 2.065 ) + ( 2.075 2.2 ) + ( 2.235 2.32 ) + ( 2.33 2.41 ) ) × 10 16 = 0.71 × 10 16 . The Siponi map is a chaotic system that could generate an output value of x n + 1 [ 1 , 1 ] . In order to generate this value, the keyspace that could be produced is 0.71 × 2 × 10 16 × 10 16 = 1.42 × 10 32 2 107 .
Table 1 compares the keyspace range of the proposed method with other research methods. Other research methods have the initial ( x n ), and the final ( x n + 1 ) values are (0, 1], whereas the output of the Siponi map is at [ 1 , 1 ] . Based on the comparison results, several methods [31,32] could produce larger keyspaces than the Siponi map. However, the proposed method satisfies the keyspace requirement and is capable of resisting brute-force attacks.

4. Application to Random-Bit Generator

4.1. Entropy Source

This research is divided into several stages. In the initial stage, the RNG entropy source is selected. A clock system with a frequency of 10 MHz is used as the entropy source. Furthermore, the sampling and hold (S/H) process is performed for the clock to produce the real value that becomes the initial value of the deterministic function. Chaos is the deterministic function, and so the input values must not be repeated.
The S/H process produces different values. To ensure a variety of different values, we examine the real numbers that are acquired from the S/H process. The results show that as many as 3 × 10 5 of the outputs of the S/H process do not include identical numbers.

4.2. Determine the Threshold Value

The output of the Siponi chaotic system is a real positive or negative number, x n + 1 R . The resulting output values are converted to their absolute values. RNG imperfections or non-ideal conditions will produce biases in the resulting binary sequence. To avoid this, the entropy value of the output binary sequence must be close or equal to 1. Therefore, comparing the chaos outputs with a threshold value T h is a method for acquiring a bit sequence with the expected entropy value. There are two ways to determine the Siponi map threshold value; these methods are discussed below.

4.2.1. Empirical Probability Density Function (Empirical PDF)

The empirical PDF [36] is used to statistically analyze the distribution of map function outputs to determine the threshold value. This can be achieved by utilizing the time sequences of the RNGs model generated. The empirical PDF comprises the following steps.
  • Creating a histogram of the frequency distribution of the map function output values | x n + 1 | , | x n + 1 | [ 0 , 1 ] .
  • Dividing | x n + 1 | by n non-intersecting discrete intervals, the jth interval is:
    [ ( j 1 ) / n , j / n ) j = 1 , n
  • Selecting the initial value x 0 and calculating the resulting value for each iteration based on the equation:
    x 0 , x 1 = X x 0 , x 2 = X x 1 = X ( X x 0 ) , , x N ,
    where N is the number of iterations, and N > > n .
  • Determining the fraction, f j , of a j th interval:
    f j = n N number of x k j 1 n , j n , k = 1 , , N
In this process, the histogram is generated using iterations N = 10 6 and n = 10 2 . The resulting histogram plot is symmetrical, with the distribution of values concentrated between 0 and 1 with a minimum at 1/2. We have conducted experiments using different control parameter values, resulting in different histograms. As described in Section 3.2, the Siponi map has several control parameters that produce the maximum range [−1, 1]. However, not all parameter values could produce a symmetric histogram plot. Figure 10 indicates the results of histogram generation for several values of r. Based on the experiments, the values of r = 2 and r = 2 produce a concentrated symmetric histogram plot between 0 and 1, as represented in Figure 10g,h. Therefore, the Siponi map control parameters utilized to generate random bit sequences are r = 2 and 2.
The threshold value T h is determined by summing up the frequencies of the first histogram until a certain histogram yields N / 2 . The interval value for the N / 2 frequencies shows the desired T h value. If the number of histograms ( n ) being processed increases, then the value of T h obtained is more accurate. Using this empirical method, for N = 10 6 and n = 3000 , we obtain T h = 0.5 .

4.2.2. Optimal Theoretical Threshold Determination for Identical Bit Generation

The output of the Siponi map is converted to an absolute value, and we assume that the final transformations are X 1 ( x ) : ( 0 , 1 ) [ 1 , 0 ) and X 2 ( x ) : ( 1 , 0 ) ( 0 , 1 ] with a large number of initial values, N. To analyze the PDF of the resulting output, the counter-image of a map function should be used [36]. As illustrated in Figure 11, the counter-image consists of the union areas of two sets denoted by the heavy lines on the x-axis. The domain area X 1 ( x ) : ( 0 , 1 ) [ 1 , 0 ) is equal to X 2 ( x ) : ( 1 , 0 ) ( 0 , 1 ] .
The Frobenius–Perron operator ( P ) is utilized to analyze the PDF transformation X . For the first transformation, define the operator ( P f ) for the map functions X 1 ( x ) as : [ 1 , 0 ] [ 0 , 1 ] , and X 2 ( x ) : [ 0 , 1 ] [ 1 , 0 ] .
P f ( x ) = d d x X 1 1 ( ( x , 0 ) ) f ( u ) d u d d x X 2 1 ( ( 0 , x ) ) f ( u ) d u ,
where X 1 1 is the counter-image over the interval ( [ x , 0 ] ) , and X 2 1 is the counter-image ( [ 0 , x ] ) . Before applying Equation (6), it is necessary to determine several points on the map function, as shown in Figure 11, using the inverse function of the simple equation for X 1 1 and X 2 1 , as follows:
X 1 ( [ x , x ] ) = 1 , 1 r 1 r 1 x 1 r + 1 r 1 x , 0 0 , 1 r 1 r 1 + x 1 r + 1 r 1 + x , 1 .
Applying the Frobenius–Perron concept, Equation (6) changes as follows:
P f ( x ) = d d x 1 1 / r 1 / r 1 x f ( u ) d u + 1 / r + 1 / r 1 x 0 f ( u ) d u , x [ 0 , 1 ] d d x 0 1 / r 1 / r 1 + x f ( u ) d u + 1 / r + 1 / r 1 + x 1 f ( u ) d u , x [ 1 , 0 ] .
The results of the differentiation process are as follows:
P f ( x ) = 1 2 r 1 x f 1 r 1 r 1 x + f 1 r + 1 r 1 x , x [ 0 , 1 ] 1 2 r 1 + x f 1 r 1 r 1 + x + f 1 r + 1 r 1 + x , x [ 1 , 0 ] .
For this case, we utilized the initial density f ( x ) 0.5 ; furthermore, we substituted all instances of f ( x ) inside brackets in (7) with the constant 0.5.
All the resulting output values are converted to absolute values in the second transformation. With the result that the output is on the positive y-axis, Equation (7) turns into the following equation:
P ( P f ( x ) ) = P 2 f ( x ) P 2 f ( x ) = r 4 r 2 1 x 1 1 1 x + 1 1 + 1 x , for x [ 0 , 1 ] r 4 r 2 1 + x 1 1 1 + x + 1 1 + 1 + x , for x [ 1 , 0 ] .
The plots of P f and P 2 f for the first and the second transformation are shown in Figure 12. Furthermore, the asymptotic evolution of the parallel density to the time iteration is:
f ( x ) = lim n P n f ( x ) = 1 .
Applying the cumulative distribution function:
F ( x ) = T h f ( x ) d x = T h .
Entropy is a mathematical measure that indicates the amount of information provided by an observation [37]. In the RNG, the entropy value must be maximal to generate a sequence number with a high level of randomness. The maximum value of entropy for a sequence bit is 1. Therefore, the optimum threshold ( T h ) for the output of the proposed chaotic function allows the generation of bits with high entropy. The probability determination of bit 0 and bit 1 from an entropy source allows for the use of the PDF, as below:
p = P 0 = 0 T h f x ( x ) d x = T h
q = P 1 = T h 1 f x ( x ) d x = 1 T h = 1 P 0 .
Using Shannon’s entropy:
H = i = 0 1 P i log 2 P i = p log 2 p + q log 2 q ,
for sequences with high randomness, substitute 1 for H as a maximum value of entropy:
1 = T h log 2 T h + 1 T h log 2 1 T h 1 / 2 = T h T h 1 T h 1 T h .
T h = p = 0.5 is obtained by using d H T h / d T h = 0 , as shown in Figure 13.

4.3. The Proposed Random-Bit Generator

To verify that the proposed map function could generate a sequence of random bits, we implemented the function as shown in Figure 1. The values generated by each iteration of the map function were then compared with the resulting T h values. The result of the comparison is a sequence bits of 0 and 1 acquired based on the following equation:
y n + 1 = 0 , | x n + 1 | T h 1 , | x n + 1 | > T h ,
where T h = 0.5. Furthermore, the randomness level of the resulting bits sequence is proven by statistical tests.

4.4. Analysis of Autocorrelation and Entropy

Some of the analyses we performed on the outputs generated by the proposed map based on the random-bit generator are listed below.

4.4.1. Autocorrelation Analysis

Autocorrelation, commonly referred to as serial correlation, is the correlation of a bit with the previous bit in the same sequence. An autocorrelation test on a bit sequence determines the distribution of the bits 0 and 1. In addition, this test is an alternative test for checking the randomness of a sequence of bits [38], which is calculated using the following equation:
r k = t = 1 N k z t z ¯ z t + k z ¯ t = 1 N z t z ¯ 2 ,
where,
  • k, number of lags
  • N, number of observations
  • r k , autocorrelation value with lag k
  • z t , observation value of data variable to - t
  • z ( t + k ) , the value of the following variable observation
  • z ¯ , the average value of the observation data.
Table 2 presents the maximum and minimum values of the autocorrelation test (except the first lag). The test results indicate no correlation between one bit and the previous bit in a series of bits. The minimum and maximum autocorrelation values for each sequence are in the range’s confidence limits, that is, 0.0949 and 0.0949 . Therefore, the resulting sequences are random.

4.4.2. Entropy Analysis

Theoretically, implementing the proposed map on the RNG could generate a bit sequence that is distributed independently and unpredictably. We calculated the entropy value of each resulting bit sequence to prove this. This value represents the distribution of bits 0 and 1 in a sequence. The uncertainty of the next generated bit value could be found by Shannon’s theory. Furthermore, the entropy value of a binary sequence is obtained using (11).
The entropy value generated by the Siponi map can be compared with another map, that is, the zigzag map [9]. Its value measures the bit quality resulting from both chaotic map functions, which can process negative and positive inputs. These two deterministic functions produce 300 entropy values for 300 sequences, each containing 10 6 bits.
The parameter value used is 2, which is an ideal parameter value for Siponi and zigzag maps. The comparison of the resulting entropy values is shown in Figure 14, which indicates that the Siponi map generates bit sequences that have higher entropy values than those of the zigzag map. An entropy value close to 1 indicates that the probability of bit 0 and bit 1 is almost certainly P ( 0 ) = P ( 1 ) = 0.5 . Therefore, bit 0 and bit 1 in the binary sequence generated by the Siponi map are distributed more independently and unexpectedly than in the sequence generated by the zigzag map.

4.5. Statistical Analysis

In order to prove that our proposed chaos method could generate a sequence of random numbers, we evaluated the resulting binary output using the NIST 800-22 and DieHard statistical tests. These tests can detect statistical weaknesses in a design. The sample size and delivery requirements for a sequence of random numbers follow each test suite’s documentation provisions.

4.5.1. NIST SP 800-22

We performed a statistical performance analysis of our proposed method using the NIST 800-22 statistical test suite. We evaluated 1 Gbit of data, which was divided into 1000 sequences. NIST 800-22 consists of 15 empirical tests, each of which will produce a p-value that indicates the probability of an ideal RNG. The p-values are compared at the significance level ( α ) = 0.01 , with p-values greater than α indicating that the sequences are random and accepted. The value α = 0.01 indicates that, in 100 binary sequences, one sequence is rejected. A p-value 0.01 shows that the confidence level of an apparently random sequence is 99 % . Therefore, the sequence of bits generated by the proposed method is random and presents p-values greater than α , as shown in Table 3.
In addition to p-values, NIST 800-22 also produces a proportion value that represents the proportion of sequences that passed the given test. The proportion of a sequence should be within a particular interval, which is calculated using the following formula:
( 1 α ) ± 3 ( 1 α ) α m ,
where m is the number of sequences. Using (14), we should generate sequences with proportions in the interval of 0.9804–0.9994, with m = 1000 . Based on the NIST 800-22 test, Table 3 shows that the output of our method has proportion values that lie within the interval of the proportion.
We compared the results of our proposed method with those of other studies. In Table 3, columns 4 and 5 show the results of the NIST tests produced by the DTC using zigzag maps as proposed by [9], with and without the use of post-processing. Table 3 shows that the proposed method (without post-processing) passed the NIST 800-22 test, and the successful Non-Overlapping Template test passing rate was 99.32 % . In contrast, the passing rate for the Non-Overlapping Template test using the method in [9] was also equal to 99.32 % , and, although it failed the Serial test, it passed all tests when using post-processing.

4.5.2. DieHard

DieHard is a statistical test that can be utilized to determine whether a sequence of numbers is random. George Marsagli developed DieHard in 1995 [39]. It consists of 16 tests, and each test generates a p-value = [0, 1). A sequence of numbers fails the test when it obtains a p-value = 1 or 0 on six or more suite tests.
Table 4 presents the results of the randomness test using the DieHard test suites. Implementing the proposed map on the RNG generates a bit sequence; every 32 ASCII bits are written in 8 hexadecimal digits. DieHard could test the data with a minimum amount of 80 Mbit. The total data tested in this study is 100 Mbit. Moreover, the test results of these data indicate that the p-values for all types of tests are in the interval range [0, 1), and, based on Ref. [39], the number sequence passed the DieHard test.
Table 4 also shows the results of number sequence testing generated by modifying the PRNG-based logistic map proposed by [22], which fails six DieHard suit tests. Based on these results, the Siponi map is proven to generate a series of random numbers.

4.6. Analysis of Speed

We analyzed the speed of the RNG process with the proposed chaos function. The mean speed required for the nonlinear function block to process the initial value and produce a chaotic output of the floating point is approximately 3987.5 Mbit/s. The average speed required to process an initial value and generate a sequence of bits, which are the outputs of the comparator as in Figure 1, is 124.61 Mbit/s. These results indicate that the chaotic function proposed is fast enough to produce a sequence of bits using the IEEE 754-2008 standard for floating-point numbers or a random bit sequence using a comparator block with a threshold value.

4.7. Implementation on FPGA Board

The RNG-based Siponi map architecture on hardware is presented in Figure 15. Although there are three multiplication operations in the Siponi map equation, we designed the system using only one multiplier. In addition, to match our tests on Matlab, we used double-precision floating points for processing floating-point numbers.
There are four steps in this architecture, and they are as follows:
  • Controlling parameter multiplication ( r 2 ) .
  • Multiplying the outcome of the preceding step by x n .
  • Multiplying the second step’s outcome with ( + 2 / | r | ) .
  • Sampling the data output and holding it for comparison with the threshold value of 0.5 .
A Siponi map-based RNG is implemented on the Altera Cyclone 3 EP3C16F484 board to generate bit sequences. The map equation’s mathematical operations impact how many resources are used by FPGA. In this regard, a summary of RNG’s resource consumption based on the proposed map is given in Table 5.
The Siponi map implementation on the FPGA consumes more resources than the implementation of several chaotic functions (which was performed by [40]). The proposed map allows for division and multiple multiplication operations, which increase the usage of FPGA resources.
We utilize the clock unit, because it allows us to implement FPGAs of different types and brands without restriction. With a clock frequency of 40 MHz, the Altera Cyclone 3 EP3C16F484 generates 1.428 Mbit/s of random data. Running one loop of the Siponi map takes 28 clocks in total. Table 6 presents the time each mathematical operation on the Siponi map takes.

5. Conclusions

The Siponi map, a novel discrete-time chaotic system based on a Logistic map, was proposed. According to the results of Lyapunov’s exponential and bifurcation analysis, the proposed map has high sensitivity when r = 2 to r = 2.41 and r = 2.41 to r = 2 . Furthermore, the keyspace analysis results show that the proposed map generates a keyspace of 2 107 , which makes the map’s implementation in the cryptographic system resistant to brute-force attacks.
We created a random-bit generator using the Siponi map. Utilizing an empirical and theoretical PDF analysis of the Siponi map equation with control parameters r = 2 and r = 2 , we explored whether the threshold value T h = 0.5 could generate a sequence of bits with an average entropy close to 1 and no correlation between the bits in the sequence. According to NIST SP 800-22 and the DieHard statistical suites tests, the bit sequences are also random. A Siponi-map-based RNG requires 4086 LUT, 2206 registers, and 62 DSP to be implemented on an Altera Cyclone 3 EP3C16F484 FPGA. In addition, the total number of clocks required to complete one loop of the Siponi map is 28.

Author Contributions

Conceptualization, M.M., S.M. and K.R.; methodology, M.M., S.M. and K.R.; software, M.M., A.A.L. and A.R.A.N.; validation, K.R., S.M. and M.M.; formal analysis, M.M., A.A.L. and A.R.A.N.; resources, M.M.; data curation, K.R. and S.M.; writing—original draft preparation, M.M.; writing—review and editing, M.M., A.A.L., A.R.A.N., S.M. and K.R.; visualization, M.M.; supervision, K.R. and S.M.; project administration, K.R.; funding acquisition, K.R. and M.M. All authors have read and agreed to the published version of the manuscript.

Funding

This research was funded by Lembaga Pengelola Dana Pendidikan (LPDP) through the Riset Inovatif Produktif (RISPRO) program, numbers PRJ- 7/LPDP/2020 and 99/PKS/WR III/UI/2020.

Acknowledgments

This work was supported by the Lembaga Pengelola Dana Pendidikan (LPDP) through the Riset Inovatif Produktif (RISPRO) program under contract numbers PRJ- 7/LPDP/2020 and 99/PKS/WR III/UI/2020. We also thank the reviewers and associate editors for their comments, which helped to improve this manuscript.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Menezes, A.J.; Van Oorschot, P.C.; Vanstone, S.A. Handbook of Applied Cryptography; CRC Press: Boca Raton, FL, USA, 2018. [Google Scholar]
  2. Bruce, S. Applied Cryptography: Protocols, Algorithms, and Source Code in C; Wiley: Hoboken, NJ, USA, 1996. [Google Scholar]
  3. Rukhin, A.; Soto, J.; Nechvatal, J.; Smid, M.; Barker, E. A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications; Technical Report; Booz-Allen and Hamilton Inc Mclean va: Fairfax, VA, USA, 2001. [Google Scholar]
  4. Kocarev, L.; Lian, S. Chaos-Based Cryptography: Theory, Algorithms and Applications; Springer Science & Business Media: Berlin, Heidelberg, Germany, 2011; Volume 354. [Google Scholar]
  5. Ciçek, I.; Pusane, A.E.; Dündar, G. A novel dual entropy core true random number generator. In Proceedings of the 2013 8th International Conference on Electrical and Electronics Engineering (ELECO), Bursa, Turkey, 28–30 November 2013; pp. 332–335. [Google Scholar]
  6. Cicek, I.; Pusane, A.E.; Dundar, G. A novel design method for discrete time chaos based true random number generators. Integration 2014, 47, 38–47. [Google Scholar] [CrossRef]
  7. Pareschi, F.; Setti, G.; Rovatti, R. A fast chaos-based true random number generator for cryptographic applications. In Proceedings of the 2006 32nd European Solid-State Circuits Conference, Montreaux, Switzerland, 19–21 September 2006; pp. 130–133. [Google Scholar]
  8. Callegari, S.; Rovatti, R.; Setti, G. Embeddable ADC-based true random number generator for cryptographic applications exploiting nonlinear signal processing and chaos. IEEE Trans. Signal Process. 2005, 53, 793–805. [Google Scholar] [CrossRef]
  9. Nejati, H.; Beirami, A.; Ali, W.H. Discrete-time chaotic-map truly random number generators: Design, implementation, and variability analysis of the zigzag map. Analog Integr. Circuits Signal Process. 2012, 73, 363–374. [Google Scholar] [CrossRef]
  10. Moysis, L.; Volos, C.; Jafari, S.; Munoz-Pacheco, J.M.; Kengne, J.; Rajagopal, K.; Stouboulos, I. Modification of the logistic map using fuzzy numbers with application to pseudorandom number generation and image encryption. Entropy 2020, 22, 474. [Google Scholar] [CrossRef] [PubMed] [Green Version]
  11. Moysis, L.; Tutueva, A.; Volos, C.; Butusov, D.; Munoz-Pacheco, J.M.; Nistazakis, H. A two-parameter modified logistic map and its application to random bit generation. Symmetry 2020, 12, 829. [Google Scholar] [CrossRef]
  12. Magfirawaty; Suryadi, M.T.; Ramli, K. Performance analysis of zigzag map and hash function to generate random number. In Proceedings of the 2017 International Conference on Electrical Engineering and Informatics (ICELTICs), Banda Aceh, Indonesia, 18–20 October 2017; pp. 297–301. [Google Scholar]
  13. Han, C. An image encryption algorithm based on modified logistic chaotic map. Optik 2019, 181, 779–785. [Google Scholar] [CrossRef]
  14. Liu, D.; Liu, Z.; Li, L.; Zou, X. A low-cost low-power ring oscillator-based truly random number generator for encryption on smart cards. IEEE Trans. Circuits Syst. II Express Briefs 2016, 63, 608–612. [Google Scholar] [CrossRef]
  15. Cao, J.; Chugh, R. Chaotic behavior of logistic map in superior orbit and an improved chaos-based traffic control model. Nonlinear Dyn. 2018, 94, 959–975. [Google Scholar]
  16. Alawida, M.; Samsudin, A.; Teh, J.S.; Alshoura, W.H. Digital cosine chaotic map for cryptographic applications. IEEE Access 2019, 7, 150609–150622. [Google Scholar] [CrossRef]
  17. Dhall, S.; Pal, S.K.; Sharma, K. A chaos-based probabilistic block cipher for image encryption. J. King Saud Univ. Comput. Inf. Sci. 2018, 34, 1533–1543. [Google Scholar] [CrossRef]
  18. Kodỳtek, F.; Lórencz, R. A design of ring oscillator based PUF on FPGA. In Proceedings of the 2015 IEEE 18th International Symposium on Design and Diagnostics of Electronic Circuits & Systems, Belgrade, Serbia, 22–24 April 2015; pp. 37–42. [Google Scholar]
  19. Magfirawaty; Lestari, A.A.; Suryadi, M.; Ramli, K. Modified logistic maps for discrete time chaos based random number generator. In Proceedings of the 2018 International Conference on Electrical Engineering and Computer Science (ICECOS), Pangkal Pinang, Indonesia, 2–4 October 2018; pp. 391–396. [Google Scholar]
  20. Von Neumann, J. 13. various techniques used in connection with random digits. Appl. Math. Ser. 1951, 12, 3. [Google Scholar]
  21. Dang, Q. Recommendation for Applications Using Approved Hash Algorithms; Special Publication (NIST SP); National Institute of Standards and Technology: Gaithersburg, MD, USA, 2012. Available online: https://tsapps.nist.gov/publication/getpdf.cfm?pubid=911479 (accessed on 16 September 2022).
  22. Merah, L.; Lorenz, P.; Adda, A.P. A New and Efficient Scheme for Improving the Digitized Chaotic Systems from Dynamical Degradation. IEEE Access 2021, 9, 88997–89008. [Google Scholar] [CrossRef]
  23. Cicek, I.; Pusane, A.E.; Dundar, G. An integrated dual entropy core true random number generator. IEEE Trans. Circuits Syst. II Express Briefs 2016, 64, 329–333. [Google Scholar] [CrossRef]
  24. Jessa, M.; Jaworski, M. Randomness of a combined TRNG based on the ring oscillator sampling method. In Proceedings of the ICSES 2010 International Conference on Signals and Electronic Circuits, Gliwice, Poland, 7–10 September 2010; pp. 323–326. [Google Scholar]
  25. Patidar, V.; Sud, K.K.; Pareek, N.K. A pseudo random bit generator based on chaotic logistic map and its statistical testing. Informatica 2009, 33, 441–452. [Google Scholar]
  26. Borujeni, S.E.; Ehsani, M.S. Modified logistic maps for cryptographic application. Appl. Math. 2015, 6, 773. [Google Scholar] [CrossRef] [Green Version]
  27. Huang, W. Constructing an opposite map to a specified chaotic map. Nonlinearity 2005, 18, 1375. [Google Scholar] [CrossRef]
  28. Beirami, A.; Nejati, H.; Massoud, Y. A performance metric for discrete-time chaos-based truly random number generators. In Proceedings of the 2008 51st Midwest Symposium on Circuits and Systems, Knoxville, TN, USA, 10–13 August 2008; pp. 133–136. [Google Scholar]
  29. Alvarez, G.; Li, S. Some basic cryptographic requirements for chaos-based cryptosystems. Int. J. Bifurc. Chaos 2006, 16, 2129–2151. [Google Scholar] [CrossRef] [Green Version]
  30. Kahan, W. IEEE standard 754 for binary floating-point arithmetic. Lect. Notes Status IEEE 1996, 754, 11. [Google Scholar]
  31. Irfan, M.; Ali, A.; Khan, M.A.; Ehatisham-ul Haq, M.; Mehmood Shah, S.N.; Saboor, A.; Ahmad, W. Pseudorandom number generator (PRNG) design using hyper-chaotic modified robust logistic map (HC-MRLM). Electronics 2020, 9, 104. [Google Scholar] [CrossRef] [Green Version]
  32. Wang, Y.; Liu, Z.; Ma, J.; He, H. A pseudorandom number generator based on piecewise logistic map. Nonlinear Dyn. 2016, 83, 2373–2391. [Google Scholar] [CrossRef]
  33. Wang, L.; Cheng, H. Pseudo-random number generator based on logistic chaotic system. Entropy 2019, 21, 960. [Google Scholar] [CrossRef] [Green Version]
  34. Murillo-Escobar, M.; Cruz-Hernández, C.; Cardoza-Avendaño, L.; Méndez-Ramírez, R. A novel pseudorandom number generator based on pseudorandomly enhanced logistic map. Nonlinear Dyn. 2017, 87, 407–425. [Google Scholar] [CrossRef]
  35. Behnia, S.; Akhavan, A.; Akhshani, A.; Samsudin, A. A novel dynamic model of pseudo random number generator. J. Comput. Appl. Math. 2011, 235, 3455–3463. [Google Scholar] [CrossRef] [Green Version]
  36. Lasota, A.; Mackey, M.C. Chaos, Fractals, and Noise: Stochastic Aspects of Dynamics; Springer Science & Business Media: Berlin, Heidelberg, Germany, 1998; Volume 97. [Google Scholar]
  37. Shannon, C.E. Communication theory of secrecy systems. Bell Syst. Tech. J. 1949, 28, 656–715. [Google Scholar] [CrossRef]
  38. Ma, X.; Xu, F.; Xu, H.; Tan, X.; Qi, B.; Lo, H.K. Postprocessing for quantum random-number generators: Entropy evaluation and randomness extraction. Phys. Rev. A 2013, 87, 062327. [Google Scholar] [CrossRef] [Green Version]
  39. Marsaglia, G. The Marsaglia Random Number CDROM Including the Diehard Battery of Tests of Randomness. 2008. Available online: https://web.archive.org/web/20160125103112/http:/stat.fsu.edu/pub/diehard/ (accessed on 16 September 2022).
  40. De la Fraga, L.G.; Torres-Pérez, E.; Tlelo-Cuautle, E.; Mancillas-López, C. Hardware implementation of pseudo-random number generators based on chaotic maps. Nonlinear Dyn. 2017, 90, 1661–1670. [Google Scholar] [CrossRef]
Figure 1. RNG architecture based on a single entropy core discrete time chaos [5].
Figure 1. RNG architecture based on a single entropy core discrete time chaos [5].
Symmetry 14 02122 g001
Figure 2. Lyapunov exponent of logistic map.
Figure 2. Lyapunov exponent of logistic map.
Symmetry 14 02122 g002
Figure 3. Logistic map’s bifurcation diagram.
Figure 3. Logistic map’s bifurcation diagram.
Symmetry 14 02122 g003
Figure 4. The Siponi map output with several parameter values ( r ) .
Figure 4. The Siponi map output with several parameter values ( r ) .
Symmetry 14 02122 g004
Figure 5. Bifurcation diagram and Lyapunov exponent of the Siponi map to r.
Figure 5. Bifurcation diagram and Lyapunov exponent of the Siponi map to r.
Symmetry 14 02122 g005
Figure 6. Cobweb diagram of the Siponi map, where the initial value x 0 = 0.6324 .
Figure 6. Cobweb diagram of the Siponi map, where the initial value x 0 = 0.6324 .
Symmetry 14 02122 g006
Figure 7. The trajectory output of the Siponi map, iteration = 200.
Figure 7. The trajectory output of the Siponi map, iteration = 200.
Symmetry 14 02122 g007
Figure 8. Siponi map with 100,000 samples generates a bifurcation diagram, shown in black, and red lines indicate its Lyapunov exponent.
Figure 8. Siponi map with 100,000 samples generates a bifurcation diagram, shown in black, and red lines indicate its Lyapunov exponent.
Symmetry 14 02122 g008
Figure 9. Range constraint of the Siponi map.
Figure 9. Range constraint of the Siponi map.
Symmetry 14 02122 g009
Figure 10. Histogram of the empirical PDF Siponi map.
Figure 10. Histogram of the empirical PDF Siponi map.
Symmetry 14 02122 g010
Figure 11. Counter-image of the sets [−1, 0] and [0, 1] of the Siponi map function.
Figure 11. Counter-image of the sets [−1, 0] and [0, 1] of the Siponi map function.
Symmetry 14 02122 g011
Figure 12. Evolution of constant density P f and P 2 f utilizing the Frobenius–Perron equation.
Figure 12. Evolution of constant density P f and P 2 f utilizing the Frobenius–Perron equation.
Symmetry 14 02122 g012
Figure 13. Entropy vs. threshold value of the Siponi map.
Figure 13. Entropy vs. threshold value of the Siponi map.
Symmetry 14 02122 g013
Figure 14. Entropy value comparison of the Siponi map vs. the zigzag map.
Figure 14. Entropy value comparison of the Siponi map vs. the zigzag map.
Symmetry 14 02122 g014
Figure 15. The architecture implementation, RNG, is based on the Siponi map.
Figure 15. The architecture implementation, RNG, is based on the Siponi map.
Symmetry 14 02122 g015
Table 1. Keyspace comparison.
Table 1. Keyspace comparison.
StudyControl ParameterInitial ValueKeyspace
Proposed work r [ 2.41 , 2.33 ] ,
[ 2.32 , 2.235 ] ,
[ 2.2 , 2.075 ] , [ 2.065 , 2 ] ,
[ 2 , 2.065 ] , [ 2.075 , 2.2 ] ,
[ 2.235 , 2.32 ] , [ 2.33 , 2.41 ]
x n ( 1 , 1 ) , x n 0 1.42 × 10 32 2 107
[31] r [ 4 , 31 ] x n ( 0 , 1 ) 27 × 10 32 2 111
[33] r [ 3.5699 , 4 ] x n ( 0 , 1 ) 0.4301 × 10 32 2 104
[32] r ( 0 , 4 ] x n ( 0 , 1 ) 4 × 10 32 2 108
[34] r [ 3.999 , 4 ] x n ( 0 , 1 ) 0.001 × 10 32 2 99
[35] r [ 0 , 1 ] x n ( 0 , 1 ) 1 × 10 32 2 106
Table 2. Autocorrelation of random bit sequences.
Table 2. Autocorrelation of random bit sequences.
SequencesMinimum ValueMaximum Value
First sequence 0.0595 0.05615
Second sequence 0.07279 0.08154
Third sequence 0.0752 0.07026
Fourth sequence 0.06821 0.07333
Table 3. NIST 800-22 test result on RNG based on Siponi map with α = 0.01 , parameter r = 2 .
Table 3. NIST 800-22 test result on RNG based on Siponi map with α = 0.01 , parameter r = 2 .
Statistical TestOur Proposed Method
without Post-Processing
[9] with
Post-Processing
[9] without
Post-Processing
Proportionp-Valuep-Valuep-Value
Frequency 0.984 0.328297 0.575479 0.047704
Block Frequency 0.986 0.154629 0.410214 0.94278
Cumulative Sums 0.984 0.422638 0.975089 0.03606
Runs 0.987 0.173770 0.044596 0.689421
Longest Run 0.986 0.439122 0.024845 0.553323
Rank 0.991 0.091487 0.98771 0.445713
FFT 0.991 0.176657 0.871131 0.721176
Non-Overlapping Template 0.996 99.32 % 100 % 99.32 %
Overlapping Template 0.986 0.197981 0.736301 0.510453
Universal 0.986 0.358641 NANA
Approximate Entropy 0.992 0.257004 0.513673 0.431503
Random Excursions 0.992138 0.374107 NANA
Random Excursions Variant 0.998428 0.714256 NANA
Serial 0.992 0.585209 0.548205 Failed
Linear Complexity 0.986 0.639202 0.082259 0.017841
Table 4. DieHard test results.
Table 4. DieHard test results.
Statistical TestOur Proposed Map[22]
p-Valuep-Value Avr
Birthday spacing0.9915330.02393
Overlapping permutation0.875032 ≤ p ≤ 0.946973Failed
Binary rank 31 × 310.9795770.78890
Binary rank 32 × 320.9974240.43108
Binary rank 6 × 80.6296020.39575
Bitstream0.84723 ≤ p ≤ 0.96382Failed
OPSO, OQSO, DNA0.1869 ≤ p ≤ 0.9714Failed
Count the ones 010.66630.08874
Count the ones 020.393787 ≤ p ≤ 0.9242970.07288
Parking Lot0.3126730.32397
Minimum distance0.297187Failed
3DS spheres0.417200.01264
Squeeze0.947457Failed
Overlapping sum0.7721000.40466
Runs0.122128 ≤ p ≤ 0.5591100.85040
Craps0.12659F ailed
Table 5. Chaos-based RNG map resource consumption on the Altera Cyclone 3 EP3C16F484.
Table 5. Chaos-based RNG map resource consumption on the Altera Cyclone 3 EP3C16F484.
FunctionDSPLUTRegister
altfp_mult018554533
lpm_mux001280
lpm_mux10640
altfp_compare001693
altfp_div04415221028
altfp_add_sub001649642
Total6240862206
Table 6. The amount of time needed for each mathematical operation.
Table 6. The amount of time needed for each mathematical operation.
OperationClock Cycle
Multiplication r . r 8 clocks
Multiplication ( r 2 x n ) 8 clocks
Multiplication ( r 2 x n ) ( + 2 / | r | ) 8 clocks
Sample and hold data output to compare with T h = 0.5 4 clocks
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Magfirawaty, M.; Lestari, A.A.; Nurwa, A.R.A.; MT, S.; Ramli, K. A Novel Discrete-Time Chaos-Function-Based Random-Number Generator: Design and Variability Analysis. Symmetry 2022, 14, 2122. https://doi.org/10.3390/sym14102122

AMA Style

Magfirawaty M, Lestari AA, Nurwa ARA, MT S, Ramli K. A Novel Discrete-Time Chaos-Function-Based Random-Number Generator: Design and Variability Analysis. Symmetry. 2022; 14(10):2122. https://doi.org/10.3390/sym14102122

Chicago/Turabian Style

Magfirawaty, Magfirawaty, Andriani Adi Lestari, Agus Reza Aristiadi Nurwa, Suryadi MT, and Kalamullah Ramli. 2022. "A Novel Discrete-Time Chaos-Function-Based Random-Number Generator: Design and Variability Analysis" Symmetry 14, no. 10: 2122. https://doi.org/10.3390/sym14102122

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop