Keywords

13.1 Introduction

Probably one of the earliest applications of chaos came from the observation of its natural pseudo randomness, either as a sampled form of continuous chaos, or straight from the appropriate nonlinear map (Silva and Young 2000).

A pseudorandom sequence generator is a device or a deterministic algorithm that generates a long sequence of bits that are statistically independent and unbiased, upon the receipt of a fairly short sequence of input called the seed. The sequence generated must be of sufficient size and be “random”. The probability of any particular value being selected must be sufficiently small, this id to preclude an adversary from gaining advantage through optimizing a search strategy based on such probability.

Deterministic in the sense that the sequence appears random even though a careful observation of a reasonable number of the outputs reveals its pattern, hence the name “pseudorandom”. The output of such an algorithm is referred to as a pseudorandom sequence. The output of a pseudorandom numbers generator could be made to be numbers or digits, referred to as pseudorandom numbers or bits.

We take “randomness” in this sense to mean that a sequence of pseudorandom numbers should have the same probability of passing a “statistical test” as truly random numbers would have, (Not better!). A statistical test may be based on the value of any function of the sequence of pseudorandom numbers. It is sufficient that the expected distribution of that value be known (or calculable numerically) for a truly random distribution, then by considering the value of the function for the given pseudorandom sequence, compared with the known expected distribution of that value for truly random numbers, one obtains a confidence level for the test. If many tests are applied and the confidence levels are calculated correctly, and if the tests are independent, the confidence levels should be uniformly distributed between zero and one if the pseudorandom generator is “good”. The formal difficulty arises mostly from the fact that the number of possible tests is uncountably infinite, and in addition they are of course not all independent. The pseudorandom Number generator is cryptographically secure if, given the mapping that defines the generator and an arbitrary sequence of numbers generated by the generator, but not knowing the seed of the generator, it is hard to compute the next and the previous numbers in the sequence (Kocarev 2001).

Suitable metrics are needed to investigate the degree of randomness for number (binary) sequences produced by random number generators (RNGs) for cryptographic purposes. Today, researchers are developing new hardware and software based RNGs. However, few standards address statistical analysis techniques that should be employed in practice. (Knuth 1973) describes several empirical tests which include the: frequency, serial, gap, poker, coupon collector’s, permutation, run, maximum-of-t, collision, birthday spacing, and serial correlation.

Researchers at the Information Security Research Centre of Queensland University of Technology in Australia, developed a suit called the Crypt-XS suite of statistical tests. Crypt-XS tests include the frequency, binary derivative, change point, runs, sequence complexity and linear complexity tests.

The National Institute of Standards and Technology (NIST) came up with a Statistical tests package which includes tests like the: frequency, block frequency, cumulative sums, runs, long runs, Marsaglia’s rank, spectral (based on the Discrete Fourier Transform), nonoverlapping template matches, overlapping template matches, Maurer’s universal statistical, approximate entropy (based on the work of Pincus, Singer and Kalman), random excursions (due to Baron and Rukhin), Lempel-Ziv complexity, linear complexity, and serial.

A more detailed description for those tests can be found in (Juan 1999). Where as a brief introduction of the most frequently used tests contained in the NIST suit is give viz.

Frequency (Monobit) Test is to determine whether the number of ones and zeros in a sequence are approximately the same as would be expected for a truly random sequence. Frequency Test within a Block is to determine whether the frequency of ones in an M-bits block is approximately M/2, as would be expected under an assumption of randomness (M is the length of each block).

Runs Test is to determine whether the number of runs of ones and zeros of various lengths is as expected for a random sequence. In particular, this test determines whether the oscillation between such zeros and ones is too fast or too slow. Test for the Longest Run of Ones in a Block is to determine whether the length of the longest run of ones within the tested sequence is consistent with the length of the longest run of ones that would be expected in a random sequence.

Binary Matrix Rank Test is to check for linear dependence among fixed length substrings of the original sequence.

Discrete Fourier Transform (Spectral) Test is to detect periodic features (i.e., repetitive patterns that are near each other) in the tested sequence that would indicate a deviation from the assumption of randomness.

Non-overlapping Template Matching Test is to detect generators that produce too many occurrences of a given non- periodic (aperiodic) pattern. Overlapping Template Matching Test is the number of occurrences of pre-specified target strings.

MaurersUniversal StatisticalTest is to detect whether or not the sequence can be significantly compressed without loss of information.

Linear Complexity Test is to determine whether or not the sequence is complex enough to be considered random. Serial Test is to determine whether the number of occurrences of the 2m m-bit (m is the length in bits of each block) overlapping patterns is approximately the same as would be expected for a random sequence. Approximate Entropy Test is to compare the frequency of overlapping blocks of two consecutive/adjacent lengths (m and m + 1) against the expected result for a random sequence (m is the length of each block).

Cumulative Sums (Cusum) Test is to determine whether the cumulative sum of the partial sequences occurring in the tested sequence is too large or too small relative to the expected behavior of that cumulative sum for random sequences.

Random Excursions Test is to determine if the number of visits to a particular state within a cycle deviates from what one would expect for a random sequence. Random Excursions Variant Test is to detect deviations from the expected number of visits to various states in the random walk.

Over the years, (James 1990) considerable experience has indicated what kinds of tests are likely to find the weaknesses of typical generators, and modern tests are much more stringent than most of the older ones. Modem generators are expected to pass all the old tests as well as those tests which traditional generators are known to fail. Probably the most extensive presentation of pseudorandom number testing is given by Knuth (1973), but should be updated by the more severe tests, who suggests that any pseudorandom generator likely to have a “lattice structure” should be subjected to the “spectral test” among other tests.

Chaotic systems are widely reported in the literature for use as pseudorandom number generators have proposed a pseudorandom number generator based on the Chen chaotic system. The advantage of the proposed algorithm compared to others is that the generated pseudorandom sequence shows a uniform distribution. Security analysis of the proposed generator was carried out using a variety of statistical tests (Özkaynak and Yavuz 2013).

For a cryptographic system, having satisfactory statistical properties is one of the necessary conditions in order to achieve security of the system, but it is not sufficient by itself. In this study, the security of the proposed generator is discussed from a different perspective.

A minimum security requirement for a pseudorandom bit generator is that the length k of the random seed should be sufficiently large so that a search over 2k elements (the total number of possible seeds) is infeasible for the adversary.

A pseudorandom number generator is said to pass all polynomial-time statistical tests if no polynomial-time algorithm can correctly distinguish between an output sequence of the generator and a truly random sequence of the same length with probability significantly greater than the probability of flipping a coin (Menezes et al. 1996).

While it is impossible to give a mathematical proof that a generator is indeed a random bit generator, a test to detect certain kinds of weaknesses of the generator must be conducted. This is accomplished by taking a sample output sequence of the generator and subjecting it to various statistical tests. Each statistical test determines whether the sequence possesses a certain attribute that a truly random sequence would be likely to exhibit; the conclusion of each test is not definite, but rather probabilistic (Menezes et al. 1996).

13.2 Pseudorandom Number (Bits) Generators (PRNGs)

The need for random and pseudorandom numbers arises in many cryptographic applications. For example, common cryptosystems employ keys that must be generated in a random fashion.

The nature of randomness has attracted an increasing amount of interest in recent years. Many (Akhshani et al. 2014) applications require random input. Sources of random numbers can be broadly divided into two classes.

Pseudorandom number generators (PRNGs) and the true random number generators (TRNGs). The primary difference between random and pseudorandom numbers is that pseudorandom numbers are necessarily periodic derived from deterministic algorithms, whereas truly random numbers are not periodic and are derived from truly random sources.

A pseudo-random number generator is a deterministic method, usually described with a mapping, to produce from a small set of “random” number(s), called the seed, a larger set of random-looking numbers called pseudorandom numbers. Such mappings are preferred to be one-way. Several researches have been conducted using various kinds of chaotic mappings ranging from one dimensional two and three dimensional mappings. A number of authors considered combining to kinds of mappings so as to remedy the shortcoming of stability points of some mappings, such regions where the function is not chaotic.

In 1986, (Blum 1986) two pseudorandom number generators, the 1/p generator and the x2(mod N) generators were considered. The later was found to be unpredictable even though it was earlier thought to be weak and inefficient by researchers, a surprising development! the security of these generators were based on the assumed intractability of some number theoretic problems by probabilistic polynomial time procedures. However, the current standard in cryptographically secure random bits is the Blum Blum Shub (BBS) algorithm (Akhshani et al. 2014). The security of the BBS algorithm is based on the difficulty of factoring prime numbers. (Merah et al. 2013) proposed in their paper an appropriate way to generate a cryptographically secured pseudo random sequence from a chaotic system. With this new scheme the Chua’s system shows better chaotic performance by inheriting the high sensitivity to the initial conditions and expanding the range of parameters. In addition, the generated sequence passes all the NIST statistical tests which confirm its effectiveness for cryptographic issues.

Shannon in his classic 1949 first mathematical paper on Cryptography, proposed chaotic maps as models mechanisms for symmetric key encryption, before the development of Chaos Theory. Chaotic maps are simple unstable dynamical systems with high sensitivity to initial conditions. Small deviations in the initial conditions (due to approximations or numerical calculations) lead to large deviations of the corresponding orbits, rendering the long-term forecast for the chaotic systems intractable (Makris and Antoniou 2012).

13.3 Chaotic PRNGs

For about two decades now, a lot of research has been ongoing in the area of chaotic cryptography particularly chaotic pseudorandom number generators (Maqableh 2001; Wolfram 1985; Matthews 1989; Alvarez et al. 1999; Shujun et al. 2001; Joseph NSPKB 2000). Simultaneously, many cryptanalytic researchers have analyzed the proposed chaos-based cryptographic algorithms and found that some of them are not secure enough and/or are slow algorithms (Maqableh 2001). Therefore, the main challenge in this research is to look at the relevance/importance of pseudorandom numbers in the design of secure and fast chaos-based cryptographic algorithms.

Since the advent of research in the chaotic systems, a lot of researchers have become interested into the use of chaotic maps to generate pseudorandom numbers using the unpredictable nature of chaotic systems. Chaotic systems like piecewise non-linear chaotic maps, Logistic map, Tent map, the Henon attractor and many more were used. Some proposals were based on multiple chaotic maps to enhance the PRNG security by some researchers (Wolfram 1985). We intend to review chaotic pseudorandom number generators that are cryptographically secure.

The first paper on pseudorandom number generators is due to Wolfram in 1985, where he used cellular automata to design a stream cipher algorithm (Wolfram 1985). The ciphertext is produced by XORing the plaintext with the random bits generated from the cellular automata.

Matthews in 1989 substituted the used of pads with random sequence generated from chaotic functions as system keys in the design of a chaos based stream cipher algorithm (Matthews 1989). Chaotic credentials of a tent map were utilized by Alvarez et al. (1999) in a symmetric block cipher to generate a pseudorandom number from its orbits using a certain threshold. A cipher text is produced as the information on the position of the plaintext in the generated sequence. G. Alvarez cryptanalyze E. Alvarez’s scheme with four methods among other weaknesses.

The use of coupled chaotic systems to generate pseudorandom sequences was proposed by Shujuna et al. in 2001. The coupled two chaotic systems to generate pseudorandom binary sequences which was claimed to have higher security than the individual maps (Shujun et al. 2001). Shortly afterwards, (Joseph NSPKB 2000) used the trajectories of two logistic maps that are close to each other to generate pseudorandom sequences of high complexity. The cipher XORs the plaintext with the generated sequence to generate the ciphertext (Fig. 13.1).

Fig. 13.1
figure 1

An illustration of coupling Chaotic maps to generate pseudorandom numbers

In 2003 Lee et al. (2003) considered the composition of multiple chaotic maps to design a chaotic stream cipher. The scheme generates pseudorandom byte sequences and a two dimensional chaotic map is used to permute the generated byte sequence. Thus far, there have been no successful attacks on this algorithm. In 2005, another research group proposed a pseudorandom number generator derived from a discrete chaotic map that is defined over a long interval (Addabbo et al. 2005).

Wang et al. used an n-dimensional non-linear digital filter (n-NDF) (to improve randomness and security) and a chaotic system to design a proposed pseudorandom binary generator (Xiamin Wang et al. 2010). The authors used n-NDF1 and n-NDF2 as transition functions defined by:

$$\begin{aligned} y_{1} \left( {k + 1} \right) & = z_{11} \left( {k + 1} \right) = F_{1} (z_{1} \left( k \right), \varphi_{1} , c_{1} ) \\ y_{2} \left( {k + 1} \right) & = z_{21} \left( {k + 1} \right) = F_{2} (z_{2} \left( k \right), \varphi_{2} , c_{2} ) \\ \end{aligned}$$

with \(y_{1} \left( k \right)\;and\;y_{2} (k)\) as the output of the two n-NDFs at step k (Details in Li and Poh-Han (2003)).

A cipher encryption algorithm based on the combination of the XOR operation and the logistic map was proposed by Xiang. This scheme is considered as an improvements to the Baptista’s algorithm, a combination of XOR and circular bit shift was used in the encryption and the decryption processes (Xiang et al. 2006). Yu and Cao (2006) modified Xiangs scheme by replacing the Logistic map with a chaotic neural network time varying delay.

Yu and Cao’s scheme was cryptanalyse by Li et al. in 2007 by showing that the pseudorandom number generator upon which the security of the system is based, does not have sufficient randomness and is not uniformly distributed. In the same year, high dimensional cat and tent maps were used to generate a pseudorandom key stream with stream cipher architecture for a chaotic image encryption. This scheme is not known to have successfully been broken till now.

The dynamics of chaotic system-based synchronization to generate a pseudorandom sequence as a keystream based on the value of the secret key is utilized. The plaintext is encrypted using the symbolic dynamics of the logistic map or tent map with certain values of its parameters and initial conditions (Kurian and Puthusserypady 2008). A research group analyzed the proposed stream cipher encryption scheme in 2011 (Arroyo et al. 2011). They were able to deduce and estimate chaotic systems’ parameters with low error rate, and pointed out that a tent map is not a good source for a pseudorandom number generator and that the logistic map key stream has to be generated from a positive Lyapunov exponent.

Intermediate chaotic key streams are generated based on a logistic map and chaotic standard map to provide high confusion and diffusion properties. This novel scheme was proposed by Patidar et al. (2009) with a mixing operation. they modified the scheme after it was cryptanalyze by Rhouma et al. in 2010 with only a pair of plaintext and ciphertext (Rhouma et al. 2010). In 2011 the modified version was analyzed by Lie et al. and found it not to be secure against known plaintext and known ciphertext attacks. The weakness is based on the generated Logistic map sequence which is weak and non-random.

Since the Tent map is one of the equations that produce pseudorandom numbers that have no stability island (Martínez-Ñonthe et al. 2012). The noise function used in the proposed cryptosystem is an approximation to the chaotic tent map, and it is called pseudo chaotic tent map (PCT map) it was used as a chaotic map to generate pseudorandom sequence of bits to be used in an encryption algorithm. PCT with sub-block size of 16-bits (PCT-16) has better statistical distribution than that of 8-bits sub-block size (PCT-8) (Fig. 13.2).

Fig. 13.2
figure 2

A typical bifurcation diagram for a tent map with varying n

The encryption process consists of r rounds of PCT-16 map using encryption key. The result of the proposed chaotic pseudorandom number generator was tested using NIST statistical test suite, and it confirmed its randomness by passing all the tests.

A pseudorandom bit generator was proposed using the combination of three standard chaotic maps which generates a 32 random bits at each iteration. The authors noted that the proposed generator has the advantage of high sensitivity to initial seeds, high randomness and resistance to several attacks in addition to speed of the algorithm (Franc 2013). They used the map with an initial seed belonging to [0,1]

$$X_{n + 1} = 3.9999X_{n} \left( {1 - X_{n} } \right)$$

\(with\;\lambda = 3.9999\) and all \(X_{n}\) belonging to ]0,1[.

The three combined equations are given by the following in the same algorithm.

$$\begin{aligned} X_{n + 1} & = 3.9999X_{n} \left( {1 - X_{n} } \right) \\ Y_{n + 1} & = 3.9999Y_{n} \left( {1 - Y_{n} } \right) \\ Z_{n + 1} & = 3.9999Z_{n} \left( {1 - Z_{n} } \right) \\ \end{aligned}$$

For each computed value of \(X_{n}, Y_{n},\) \(Z_{n}\) binary64 floating point format is used.

The generation of pseudo-random numbers (bits) plays a critical role in a large number of applications such as statistical mechanics, numerical simulations, gaming industry, communication or cryptography.

Chaotic trajectories even look random, and, they pass many classic “tests” of randomness. This in fact generates the principle of equivalence between chaotic and random systems. In there paper, (Francois et al. 2013), observed that:- chaotic and random systems are observationally indistinguishable, thus, one can replace a random system by an equivalent chaotic system, and vice versa, as has been argued in (Werndl and Philosophy 2009).

Pseudorandom number generators’ (PRNGs) results are mainly used on stream cipher algorithms as key streams that simply XOR with plaintext to generate the correspondence ciphertexts using any mode of operation.

A PRNG using a standard chaotic function is proposed by (François et al. 2014). The algorithm uses a degressive modulo to index progressively the positions of an initial vector, before permuting their associated elements through the use of a XOR operator. The chaotic permutations are achieved iteratively on the initial vector in order to produce three chaotic maps. These maps are xored and the resulting sequence is the output of the algorithm. This PRNG has shown its ability to produce a very large number of pseudo-random sequences which can be useful in several cryptographic applications.

Chaotic functions (Tent and Logistic maps) (Khanzadi et al. 2014) were used to generate pseudorandom numbers which are then converted to binary numbers to be used as random bits stream. These random bits are therefore used for image encryption by forming a random bits matrix.

Quantum chaos theory seems to be a tool that can be used to improve the quality of pseudorandom number generators. It helps in producing sequence at a speed that cannot be obtained with a true number generator (Akhshani et al. 2014). They proposed a novel pseudo-random number generator based on the quantum chaotic map. A quantum map is the logistic map with additive noise that arises from the very lowest-order quantum corrections. The proposed scheme exploits the interesting properties of three-dimensional quantum logistic map such as statistical complexity. The three different statistical tests, NIST, DIEHARD and ENT test suites are employed to evaluate the randomness and uniformity of the sequence generated.

13.4 Conclusion

Chaos based Pseudo-Random number (Bit) Generators (PRBGs) is an algorithm that generates pseudorandom numbers through the use of chaotic maps. The dimension of the map to be used depends on application requirements of the schemes. So many generators were cryptanalysed almost as immediately as they were proposed. The quality of a pseudorandom number generator largely depends on the choice of seed(s) and the control parameter(s) of the chaotic map(s) to be used. A good number of Pseudorandom Numbers Generators that were considered to be good for some purposes did not find a place with cryptographic applications, thus all random numbers generated must be subjected to a rigourous statistical tests using any of the industry standard statistical suits like NIST, NFIS Diehard Tests, TestU01 etc.

Though chaotic cryptography may be considered at present peripheral in circles of conventional cryptography, chaotic number generation may have attractive applications as simulation engines in computational science (Pellicer-Lostao and Lopez-Ruiz, 2011c, 2011d). Chaos based number generators are easy to use and highly configurable. This makes them a valuable tool for the realization of effective and efficient cryptosystems.

With the increasing demand for various services such as encrypted digital TV, credit cards, etc., it became necessary to manufacture encryption systems (RNGs, algorithms) on chips. Thus the need to intensify research on the development of robust chaos-based RNG integrated circuits (ICs) that are cryptographically secure (Merah et al. 2013).