A 1 Gbps Chaos-Based Stream Cipher Implemented in 0.18 µ m CMOS Technology

: In this work, a novel chaos-based stream cipher based on a skew tent map is proposed and implemented in a 0.18 µ m CMOS (Complementary Metal-Oxide-Semiconductor) technology. The proposed ciphering algorithm uses a linear feedback shift register that perturbs the orbits generated by the skew tent map after each iteration. This way, the randomness of the generated sequences is considerably improved. The implemented stream cipher was capable of achieving encryption speeds of 1 Gbps by using an approximate area of ∼ 20, 000 2-NAND equivalent gates, with a power consumption of 24.1 mW. To test the security of the proposed cipher, the generated keystreams were subjected to National Institute of Standards and Technology (NIST) randomness tests, proving that they were undistinguishable from truly random sequences. Finally, other security aspects such as the key sensitivity, key space size, and security against reconstruction attacks were studied, proving that the stream cipher is secure.


Introduction
Despite the large number of encryption algorithms proposed in previous decades, there is still a great interest in the field of cryptography [1,2].This is mainly for two reasons: first, due to the growth of computer processing power as well as developments in the field of cryptanalysis, many of the previously proposed algorithms are currently considered to be insecure; second, new applications that require specific constraints such as low power consumption can require specific encryption algorithms.
Usually, in applications where a high encryption speed is needed, stream ciphers are a suitable option [3].In these systems, the sender uses an initial seed (key) to generate a pseudo-random sequence called a keystream.The ciphertext is then obtained by combining each bit of the plaintext with its corresponding bit of the keystream (Figure 1).To decrypt the message, the receiver must use the exact same key to generate an identical keystream.By applying the inverse combining operation, the original plaintext can be recovered.Usually, an XOR (Exclusive Or) operation is used for the combining operation and the inverse combining operation.The main advantage of stream ciphers against block ciphers is that since they encrypt each bit individually, they do not need to store blocks of data, or add extra bits to complete blocks (padding bits).Therefore, they usually have less-stringent memory requirements and can achieve higher encryption speeds.
implement.In this context, chaos-based stream ciphers have emerged in the past decade as a suitable alternative, capable of achieving a good balance between all these three parameters [5].Generator) and an XOR gate.An internal state is constantly getting updated using a feedback function.This way, each value of the internal state is obtained as a function of the previous value and key.The final keystream is obtained from the internal states using an output function.Finally, the ciphertext is generated by XORing the plaintext with the keystream.
The idea behind chaos-based stream ciphers is that chaotic systems present some intrinsic properties such as random-like behavior and ergodicity that are closely related with the properties of confusion and diffusion [6] that any cryptosystem should present in order to be considered secure [7].Usually, a common approach used in chaos-based stream ciphers consists of using an algorithm based on a chaotic map of the form  = ( , Γ).In these kinds of maps, starting with an initial state,  , and one or several control parameters, Γ = {γ , γ , … }, a sequence of elements { } is generated using a feedback function .To use this map as a stream cipher, it is digitized and one or several bits of each state is used to form the keystream.The control parameter Γ as well as the initial state  form the key that must be shared by both the transmitter and the receiver to encrypt and decrypt the messages.
Among the possible maps, most of the recently proposed algorithms are based on logistic maps [8][9][10][11], but other maps such as the Rényi map [12], the Lorenz's attractor [13], the skew tent map [14], or higher-dimensional chaotic systems have been used [15].Unfortunately, in most of these maps there are some initial values for which the output sequences are periodic and therefore unsuitable for being used to generate secure keystreams.In these cases, the exact parameters that lead to periodic windows are often unknown [16,17], so it can be very challenging to design a key-generation process that guarantees that all the generated keys are secure (i.e., they lead to a chaotic behavior).On the other hand, when a chaotic system is digitized it suffers a degradation in its dynamics due to truncation or round-off errors and, as a consequence, the generated orbits become periodic (i.e., nonsecure) [18][19][20].This effect has been widely studied, and although increasing the precision used in the digitation can mitigate this effect, it also needs much more area to be implemented [21].
In this work, a chaos-based stream cipher is proposed and implemented in an applicationspecific integrated circuit (ASIC).Its encryption algorithm is based on a skew tent map (STM) but uses a linear feedback shift register (LFSR) to increase the randomness of the generated sequences.The proposed cipher was implemented in a 0.18-μm CMOS process and was capable of achieving an encryption speed of 1 Gbps using an approximate area of ~20,000 2-NAND equivalent gates, with a power consumption of 24.1 mW.To prove the security of the proposed algorithm, several aspects such as the key sensitivity, key space size, robustness against reconstruction attacks, and randomness of the generated sequences were analyzed.Typically, there are three parameters that must be taken into account when designing a secure encryption system: encryption speed, security, and implementation cost [4].While is it relatively easy to design a secure but slow cipher, or to design a secure but area-and power-hungry cipher, it can be very challenging to design an encryption algorithm that is fast, secure, low-power, and easy to implement.In this context, chaos-based stream ciphers have emerged in the past decade as a suitable alternative, capable of achieving a good balance between all these three parameters [5].
The idea behind chaos-based stream ciphers is that chaotic systems present some intrinsic properties such as random-like behavior and ergodicity that are closely related with the properties of confusion and diffusion [6] that any cryptosystem should present in order to be considered secure [7].Usually, a common approach used in chaos-based stream ciphers consists of using an algorithm based on a chaotic map of the form x i+1 = f (x i , Γ).In these kinds of maps, starting with an initial state, x 0 , and one or several control parameters, Γ = γ 1 , γ 2 , . . ., a sequence of elements {x i } is generated using a feedback function f .To use this map as a stream cipher, it is digitized and one or several bits of each state is used to form the keystream.The control parameter Γ as well as the initial state x 0 form the key that must be shared by both the transmitter and the receiver to encrypt and decrypt the messages.
Among the possible maps, most of the recently proposed algorithms are based on logistic maps [8][9][10][11], but other maps such as the Rényi map [12], the Lorenz's attractor [13], the skew tent map [14], or higher-dimensional chaotic systems have been used [15].Unfortunately, in most of these maps there are some initial values for which the output sequences are periodic and therefore unsuitable for being used to generate secure keystreams.In these cases, the exact parameters that lead to periodic windows are often unknown [16,17], so it can be very challenging to design a key-generation process that guarantees that all the generated keys are secure (i.e., they lead to a chaotic behavior).On the other hand, when a chaotic system is digitized it suffers a degradation in its dynamics due to truncation or round-off errors and, as a consequence, the generated orbits become periodic (i.e., non-secure) [18][19][20].This effect has been widely studied, and although increasing the precision used in the digitation can mitigate this effect, it also needs much more area to be implemented [21].
In this work, a chaos-based stream cipher is proposed and implemented in an application-specific integrated circuit (ASIC).Its encryption algorithm is based on a skew tent map (STM) but uses a linear feedback shift register (LFSR) to increase the randomness of the generated sequences.The proposed cipher was implemented in a 0.18-µm CMOS process and was capable of achieving an encryption speed of 1 Gbps using an approximate area of ∼ 20, 000 2-NAND equivalent gates, with a power consumption of 24.1 mW.To prove the security of the proposed algorithm, several aspects such as the key sensitivity, key space size, robustness against reconstruction attacks, and randomness of the generated sequences were analyzed.
As a result, we proved that the proposed stream cipher is secure and could be suitable for applications that require the secure transmission of confidential information at a speed of up to 1 Gbps.
The paper is organized as follows: Section 2 explains the proposed stream cipher in detail; Section 3 shows the ASIC implementation results of this proposal; Section 4 presents a comprehensive cryptanalysis of the stream cipher; finally, the main conclusions are drawn in Section 5.

Skew Tent Map
The skew tent map (STM) is a one-dimensional chaotic map with a single control parameter γ defined by the following equations: where x 0 , γ ∈ (0, 1).The main advantage of this map is that, due to its simplicity, it can be easily implemented.Furthermore, it has been proven that, for all values of x 0 and γ, the behavior of this map is chaotic (i.e., it does not present periodic windows) [22].Therefore, it is a very good candidate for use in chaos-based cryptosystems [23].
Because the STM algorithm has a division operation that can be costly to implement in hardware but the divisors are constant for each seed, a common approach used in several works (including this one) consists of pre-calculating the divisors (1/γ and 1/(1 − γ)) and using multiplications instead [24,25].A block diagram of the STM can be seen in Figure 2. As a result, we proved that the proposed stream cipher is secure and could be suitable for applications that require the secure transmission of confidential information at a speed of up to 1 Gbps.
The paper is organized as follows: Section 2 explains the proposed stream cipher in detail; Section 3 shows the ASIC implementation results of this proposal; Section 4 presents a comprehensive cryptanalysis of the stream cipher; finally, the main conclusions are drawn in Section 5.

Skew Tent Map
The skew tent map (STM) is a one-dimensional chaotic map with a single control parameter  defined by the following equations: where  ,  ∈ (0,1).The main advantage of this map is that, due to its simplicity, it can be easily implemented.Furthermore, it has been proven that, for all values of  and , the behavior of this map is chaotic (i.e., it does not present periodic windows) [22].Therefore, it is a very good candidate for use in chaos-based cryptosystems [23].
Because the STM algorithm has a division operation that can be costly to implement in hardware but the divisors are constant for each seed, a common approach used in several works (including this one) consists of pre-calculating the divisors (1/ and 1/(1 − )) and using multiplications instead [24,25].A block diagram of the STM can be seen in Figure 2. is obtained as a function of the previous state  and the control parameter .For this purpose, the internal state  is compared to the value of  to determine if it belongs to the 0, ] range or to the (, 1] range.In each case, by using two multiplexers, the correct factors ( or (1 −  )) and (1/ or 1/(1 − )) are selected and multiplied.

Dynamics Degradation Due to Digitization
As explained in the Introduction, due to the digitization of a chaotic map, if the state values are implemented using a precision of  bits, there is a finite number of different possible values, so the generated orbits are periodic.Although the maximum possible period,  , is  = 2 , the mean

Dynamics Degradation Due to Digitization
As explained in the Introduction, due to the digitization of a chaotic map, if the state values are implemented using a precision of n bits, there is a finite number of different possible values, so the generated orbits are periodic.Although the maximum possible period, P max , is P max = 2 n , the mean period, P, is usually much shorter and scales as P ∼ 2 n/2 [26].Furthermore, the periods of the generated orbits are usually much smaller than the mean period [27].
As a consequence, with the typical precisions of 32 or 64 bits, the periods of the generated keystreams are usually too short, and therefore the keystreams can repeat themselves if the transmitted messages are long.Another consequence of these short periods is that the generated keystreams are usually incapable of passing randomness tests.
This effect has been widely studied, and several solutions have been proposed [28,29].Since (as explained in the Introduction) using a higher precision also implies using a much larger area to obtain the same throughput [21], a different approach was used in this work.

Encryption Algorithm
To address this dynamics degradation problem, the orbits generated by the STM can be perturbed using an LFSR.In the proposed algorithm, after each iteration, the eight least-significant bits (LSBs) of each x i x 0 i , x 1 i , . . .x 7 i are combined with the last bits of the state of the LFSR y i with an XOR operation.This way, the state is modified after each iteration and, this modified state ( x i ) is the one used to generate the next state of the sequence: According to [30], if a sequence A(k) of period P A is XORed with a sequence B(k) of period P B , the period of the resulting sequence, C(k) = A(k) ⊕ B(k), will be bigger than P A and P B as long as P A and P B are coprime.Using this result, since the bits x k i (k = 0, 1, . . .7)) are generated as x k i = x k i ⊕ y k i , as long as the period of the LFSR (P A ) and the period of the sequence x k i (P B ) are coprime, the period of the sequence x k i (P C ) and, therefore the period of the sequence {x i } will be equal to or greater than P A .In the proposed stream cipher, a 64-bit precision was used to represent the variables x i , γ, and a 61-order LFSR with a prime period 2 61 − 1 was used to perturb the orbits.By choosing the period of the LFSR, P A , to be a prime number, the periods P A and P B will be coprime unless P B is a multiple of P A .However, this case is extremely unlikely.Since P A = 2 61 − 1 and P B < 2 64 , there are only eight possible values of P B that are multiples of P A , so the chances of running into this case can be neglected.
To generate the keystreams, only the eight LSBs of each x i were used.This way, by using only a small part of each state to form the keystream, its randomness is improved.Furthermore, as will be explained in Section 4, the security against reconstruction attacks is greatly increased.The whole scheme of the proposed stream cipher is shown in Figure 3.
Electronics 2019, 8, x FOR PEER REVIEW 4 of 10 period,  , is usually much shorter and scales as  ~ 2 / [26].Furthermore, the periods of the generated orbits are usually much smaller than the mean period [27].
As a consequence, with the typical precisions of 32 or 64 bits, the periods of the generated keystreams are usually too short, and therefore the keystreams can repeat themselves if the transmitted messages are long.Another consequence of these short periods is that the generated keystreams are usually incapable of passing randomness tests.
This effect has been widely studied, and several solutions have been proposed [28,29].Since (as explained in the Introduction) using a higher precision also implies using a much larger area to obtain the same throughput [21], a different approach was used in this work.

Encryption Algorithm
To address this dynamics degradation problem, the orbits generated by the STM can be perturbed using an LFSR.In the proposed algorithm, after each iteration, the eight least-significant bits (LSBs) of each  ( ,  , …  ) are combined with the last bits of the state of the LFSR  with an XOR operation.This way, the state is modified after each iteration and, this modified state ( ) is the one used to generate the next state of the sequence:  = ( ).
According to [30], if a sequence () of period  is XORed with a sequence () of period  , the period of the resulting sequence , () = () ⊕ (), will be bigger than  and  as long as  and  are coprime.Using this result, since the bits  ( = 0, 1, … 7)) are generated as  =  ⊕  , as long as the period of the LFSR ( ) and the period of the sequence  ( ) are coprime, the period of the sequence  ( ) and, therefore the period of the sequence { } will be equal to or greater than  .
In the proposed stream cipher, a 64-bit precision was used to represent the variables  , , and a 61-order LFSR with a prime period 2 − 1 was used to perturb the orbits.By choosing the period of the LFSR,  , to be a prime number, the periods  and  will be coprime unless  is a multiple of  .However, this case is extremely unlikely.Since  = 2 − 1 and  < 2 , there are only eight possible values of  that are multiples of  , so the chances of running into this case can be neglected.
To generate the keystreams, only the eight LSBs of each  were used.This way, by using only a small part of each state to form the keystream, its randomness is improved.Furthermore, as will be explained in Section 4, the security against reconstruction attacks is greatly increased.The whole scheme of the proposed stream cipher is shown in Figure 3.  x i , are XORed with the last 8 bits generated by a 61-order linear feedback shift register (LFSR).These bits are the ones used to generate the keystream.On the other hand, the resulting modified state, x i , obtained by recombining these eight modified bits with the 56 remaining bits is used as an input of the STM block.This block applies the STM equations as explained in Figure 2 to generate the next state, x i+1 .
Note that, although the possibility of combining an STM with an LFSR was advanced in [23,25], in this work the encryption algorithm was optimized using 8 bits of the LFSR after each iteration step, achieving better statistical properties while obtaining higher encryption speeds, as will be shown in the next sections.Furthermore, this paper presents an ASIC implementation of the system as well as experimental results and a comprehensive cryptanalysis.

Implementation Results
The proposed cipher was implemented in a 0.18-µm CMOS technology with six metal layers provided by TSMC (Taiwan Semiconductor Manufacturing Company), fed at 1.8 V (core) and 3.3 V (I/O).Some major constraints of the design were a maximum clock period of 14 ns, load ranging from 0.01 to 1.0 pf at outputs, and drive up to 0.4 kΩ at inputs.This set of constraints proved to be enough for this technology to satisfactorily implement the cipher, achieving an encryption speed of 1 Gbps using a total area of 0.197 mm 2 or (∼ 20, 000 2-NAND equivalent gates using an equivalence of 10 µm per 2-NAND [31]).At the maximum frequency of operation, its power consumption was 24.1 mW, which resulted in 24.1 pJ/bit.This result is lower than typical implementations of AES (Advanced Encryption Standard), such as the ones presented in [32] (45 pJ/bit) and [33] (30-62 pJ/bit).The full implementation results are shown in Table 1.From these results, it can be concluded that the implemented stream cipher is capable of achieving high encryption speeds while using a small silicon area and presenting a low power consumption.These implementation results were compared with other ASIC implementations of previously proposed chaotic stream ciphers.Since other works do not provide information about some of the parameters in Table 1 (e.g., power consumption or area), Table 2 only focuses on 2-NAND equivalent gates and throughput.As can be seen, the proposed algorithm performed slightly better than the works presented in [8,9] in terms of throughput/gate and achieved higher encryption speeds.Although a work improving the algorithm proposed in [9] was presented in [10], this result was not included in the table since it has not been implemented.To check the correct functioning of the chip, the keystreams generated by different initial parameters (x 0 , γ, y 0 ) were measured and compared with the theoretical values.To set the frequencies of operation, a Zybo board, which includes a Zynq 7000 series FPGA (Field Programmable Gate Array), was used to feed the ASIC with a clock signal at different frequencies (Figure 4).The output signals were captured with a DSAV334A Infiniium V-Series oscilloscope and were later post-processed to extract the binary sequence.A sample signal obtained at a clock frequency of 250 kHz is shown in Figure 5.
Electronics 2019, 8, x FOR PEER REVIEW 6 of 10 Array), was used to feed the ASIC with a clock signal at different frequencies (Figure 4).The output signals were captured with a DSAV334A Infiniium V-Series oscilloscope and were later postprocessed to extract the binary sequence.A sample signal obtained at a clock frequency of 250 kHz is shown in Figure 5.We checked that the system worked properly (i.e., the generated keystreams matched the theoretical ones) at all the measured frequencies up to 125 MHz, which is the maximum clock frequency that the FPGA was capable of supplying.This way, we can assure that this stream cipher can achieve encryption speeds of at least 1 Gbps.

Cryptanalysis
First, in order to be secure, the stream cipher should generate keystreams that are undistinguishable from truly random sequences.To check that the proposed stream cipher is capable of generating random keystreams, several keystreams of one million bits were generated and subjected to the National Institute of Standards and Technology (NIST) randomness tests [34].All of them passed the NIST tests, proving that the generated keystreams were indeed undistinguishable from truly random sequences (Figure 6a).Furthermore, we checked that if the sequences were Array), was used to feed the ASIC with a clock signal at different frequencies (Figure 4).The output signals were captured with a DSAV334A Infiniium V-Series oscilloscope and were later postprocessed to extract the binary sequence.A sample signal obtained at a clock frequency of 250 kHz is shown in Figure 5.We checked that the system worked properly (i.e., the generated keystreams matched the theoretical ones) at all the measured frequencies up to 125 MHz, which is the maximum clock frequency that the FPGA was capable of supplying.This way, we can assure that this stream cipher can achieve encryption speeds of at least 1 Gbps.

Cryptanalysis
First, in order to be secure, the stream cipher should generate keystreams that are undistinguishable from truly random sequences.To check that the proposed stream cipher is capable of generating random keystreams, several keystreams of one million bits were generated and subjected to the National Institute of Standards and Technology (NIST) randomness tests [34].All of them passed the NIST tests, proving that the generated keystreams were indeed undistinguishable from truly random sequences (Figure 6a).Furthermore, we checked that if the sequences were We checked that the system worked properly (i.e., the generated keystreams matched the theoretical ones) at all the measured frequencies up to 125 MHz, which is the maximum clock frequency that the FPGA was capable of supplying.This way, we can assure that this stream cipher can achieve encryption speeds of at least 1 Gbps.

Cryptanalysis
First, in order to be secure, the stream cipher should generate keystreams that are undistinguishable from truly random sequences.To check that the proposed stream cipher is capable of generating random keystreams, several keystreams of one million bits were generated and subjected to the National Institute of Standards and Technology (NIST) randomness tests [34].All of them passed the NIST tests, proving that the generated keystreams were indeed undistinguishable from truly random sequences (Figure 6a).Furthermore, we checked that if the sequences were generated only with the STM (i.e., without the LFSR) they failed these tests (Figure 6b).On the other hand, it is well known that the raw sequences generated by an LFSR fail the linear complexity randomness tests.Furthermore, the operations involved in LFSRs can be easily inverted, and thus these systems are insecure.Therefore, we can conclude that the proposed algorithm is capable of generating keystreams with much better statistical properties than the STM or the LFSR separately.
Electronics 2019, 8, x FOR PEER REVIEW 7 of 10 generated only with the STM (i.e., without the LFSR) they failed these tests (Figure 6b).On the other hand, it is well known that the raw sequences generated by an LFSR fail the linear complexity randomness tests.Furthermore, the operations involved in LFSRs can be easily inverted, and thus these systems are insecure.Therefore, we can conclude that the proposed algorithm is capable of generating keystreams with much better statistical properties than the STM or the LFSR separately.An issue with all stream ciphers is that in order to be secure, the same keystream should not be used to encrypt several messages.To avoid having to create a new key each time a new message is encrypted, most modern ciphers include an initialization vector that is changed (in a publicly known way) every time a new message is encrypted.This way, the resulting keystream is changed without having to create (and possibly exchange) a new key.In the proposed cryptosystem, a possible way to use an initialization vector to encrypt several messages using the same key could be to XOR the initialization vector with the key (or part of the key) and use this result as the new key.The initialization vector could start with a known value and be increased by one each time that a new message must be encrypted.Providing that the system exhibits a high sensitivity on the key, the generated keystreams would be independent of each other.
On the other hand, to be considered secure, the key space size, , (i.e., number of possible keys) must be large enough to prevent brute-force attacks.In particular, NIST and European Union Agency for Network and Information Security (ENISA) guidelines [35,36] recommend using a key space size of at least  ≥ 2 .An issue with all stream ciphers is that in order to be secure, the same keystream should not be used to encrypt several messages.To avoid having to create a new key each time a new message is encrypted, most modern ciphers include an initialization vector that is changed (in a publicly known way) every time a new message is encrypted.This way, the resulting keystream is changed without having to create (and possibly exchange) a new key.In the proposed cryptosystem, a possible way to use an initialization vector to encrypt several messages using the same key could be to XOR the initialization vector with the key (or part of the key) and use this result as the new key.The initialization vector could start with a known value and be increased by one each time that a new message must be encrypted.Providing that the system exhibits a high sensitivity on the key, the generated keystreams would be independent of each other.
On the other hand, to be considered secure, the key space size, κ, (i.e., number of possible keys) must be large enough to prevent brute-force attacks.In particular, NIST and European Union Agency for Network and Information Security (ENISA) guidelines [35,36] recommend using a key space size of at least κ ≥ 2 112 .
In the proposed algorithm, the key size is composed of the total number of possible initial values (x 0 , γ, y 0 ).Since the precision of the digitization of x 0 and γ is 64, and a 61-order LFSR was used, the key space size in this case was κ = 2 64+64+61 = 2 189 , which is greater than the recommended value of 2 112 .Since a key size of 189 bits is not standard, to adapt this algorithm to some standard protocols that use a key size of 80 or 128 bits, some of the bits of the key could be fixed.For example, the initial state of the LFSR could be a fixed known value.This way, the key would be composed of the total number of possible values of γ and x 0 , resulting in a standard key size of 128 bits.
Another important aspect of the proposed algorithm is that, because the map used in this algorithm is chaotic, there is a high sensitivity to the key (i.e., for similar keys the output sequences are very different).To test this property, 300 pairs of keys were used, each pair differing in only one bit (the differing bit in each simulation was chosen randomly).With each of these pairs, a pair of 10,000 length keystreams was generated, and in each case we counted how many bits of these keystreams were different (i.e., how many bits of the keystreams changed when the key was slightly modified).In an ideal stream cipher, the probability that a certain bit of the keystream is changed when the key is modified should be P = 0.5, and therefore, 5000 out of 10, 000 bits should change in each case.According to the binomial distribution properties, the mean µ and the standard deviation σ of these experiments would be given by: µ = nP = 5000, σ = nP(1 − P) = 50.With this test, we obtained values of µ = 4998 and σ = 51.6, which are very close to the theoretical ones.Therefore, the system presented a high sensitivity to the key, and so it would be very difficult for an attacker to find statistical relationships between different keystreams even if they were generated with very similar keys.
Finally, one of the possible attacks that can be effective in several chaos-based stream ciphers is the reconstruction attack.This attack consists of trying to obtain two or more consecutive state values at a certain time and applying Equation (1) to find the values of γ, x i , and therefore the whole sequence {x i } as well as the output sequence.However, in the proposed algorithm, this attack is prevented by using only a small part (the LSBs) of each state value x i to form the final keystream.Furthermore, the presence of the LFSR considerably increases the complexity of the system so Equation (1) cannot be used directly.Even in a worst-case scenario where the initial state of the LFSR was known (it was not used as part of the key) and 8 bits of two consecutive states x i , x i+1 were leaked, there would still be 56 bits of x i and 56 bits of x i+1 that would remain unknown.Therefore, if an attacker wanted to use Equation (1) to obtain the values of x i , x i+1 , and γ, they would have to solve 2 56 2  possible equations.Therefore, even if an attacker managed to know a part of the keystream, they would not be able to use that information to guess (in a reasonable amount of time) the state of the system (x i , γ, y i ) and, therefore, guess the whole keystream.This fact combined with the fact that the output sequences have proven to be random, assure that this system presents forward and backward secrecy.
In summary, according to the security aspects considered in this manuscript, the proposed algorithm is cryptographically secure.However, to guarantee the security of this cipher for use in security-related applications, other security aspects such as the internal structure of the keystream generator should be considered.Finally, to fully prove its security, no effective specific attacks against this cipher should be found in the following years.For this purpose, for anyone interested in testing the security of this algorithm, the authors will give away the code upon request.

Conclusions
In this paper a stream cipher based on a skew tent map (STM) and a linear feedback shift register (LFSR) was proposed and implemented in a 0.18-µm standard CMOS technology.The proposed cipher achieved an encryption rate of 1 Gbps using a low area and low power consumption.
The security of the proposed algorithm was analyzed, focusing on different aspects such as the randomness of the generated sequences, the key size, the sensitivity to the key, and the security against reconstruction attacks.With this study, we concluded that the proposed stream cipher is secure against all these attacks.Therefore, the proposed stream cipher is suitable for use in applications (including cryptography-related ones) that need to generate pseudo-random numbers at a high speed (up to 1 Gbps).

Figure 1 .
Figure 1.Generic scheme of a stream cipher composed by a PRNG (Pseudo-Random Number Generator) and an XOR gate.An internal state is constantly getting updated using a feedback function.This way, each value of the internal state is obtained as a function of the previous value and key.The final keystream is obtained from the internal states using an output function.Finally, the ciphertext is generated by XORing the plaintext with the keystream.

Figure 1 .
Figure 1.Generic scheme of a stream cipher composed by a PRNG (Pseudo-Random Number Generator) and an XOR gate.An internal state is constantly getting updated using a feedback function.This way, each value of the internal state is obtained as a function of the previous value and key.The final keystream is obtained from the internal states using an output function.Finally, the ciphertext is generated by XORing the plaintext with the keystream.

Figure 2 .
Figure 2. Block diagram of the skew tent map (STM) generator.Each state  is obtained as a function of the previous state  and the control parameter .For this purpose, the internal state  is compared to the value of  to determine if it belongs to the 0, ] range or to the (, 1] range.In each case, by using two multiplexers, the correct factors ( or (1 −  )) and (1/ or 1/(1 − )) are selected and multiplied.

Figure 2 .
Figure 2. Block diagram of the skew tent map (STM) generator.Each state x i+1 is obtained as a function of the previous state x i and the control parameter γ.For this purpose, the internal state x i is compared to the value of γ to determine if it belongs to the [0, γ] range or to the (γ, 1] range.In each case, by using two multiplexers, the correct factors (x i or (1 − x i )) and (1/γ or 1/(1 − γ)) are selected and multiplied.

Figure 3 .
Figure 3. Scheme of the proposed stream cipher.The eight least-significant bits (LSBs) of each state,  , are XORed with the last 8 bits generated by a 61-order linear feedback shift register (LFSR).These bits are the ones used to generate the keystream.On the other hand, the resulting modified state,  , obtained by recombining these eight modified bits with the 56 remaining bits is used as an input of

Figure 3 .
Figure 3. Scheme of the proposed stream cipher.The eight least-significant bits (LSBs) of each state,x i , are XORed with the last 8 bits generated by a 61-order linear feedback shift register (LFSR).These bits are the ones used to generate the keystream.On the other hand, the resulting modified state, x i , obtained by recombining these eight modified bits with the 56 remaining bits is used as an input of the STM block.This block applies the STM equations as explained in Figure2to generate the next state, x i+1 .

Figure 4 .
Figure 4. PCB (Printed Circuit Board) for the ASIC test setup connected to the Zybo board used to feed the clock and the reset signals.PMOD (Peripheral Module) ports have been used for the connection.

Figure 5 .
Figure 5. Sample signal obtained using a clock frequency of 31.25 kHz (in this case the throughput was 250 kHz).

Figure 4 .
Figure 4. PCB (Printed Circuit Board) for the ASIC test setup connected to the Zybo board used to feed the clock and the reset signals.PMOD (Peripheral Module) ports have been used for the connection.

Figure 4 .
Figure 4. PCB (Printed Circuit Board) for the ASIC test setup connected to the Zybo board used to feed the clock and the reset signals.PMOD (Peripheral Module) ports have been used for the connection.

Figure 5 .
Figure 5. Sample signal obtained using a clock frequency of 31.25 kHz (in this case the throughput was 250 kHz).

Figure 5 .
Figure 5. Sample signal obtained using a clock frequency of 31.25 kHz (in this case the throughput was 250 kHz).

Figure 6 .
Figure 6.National Institute of Standards and Technology (NIST) test results for a sequence generated by: (a) the proposed algorithm; (b) an algorithm that only uses the STM.

Figure 6 .
Figure 6.National Institute of Standards and Technology (NIST) test results for a sequence generated by: (a) the proposed algorithm; (b) an algorithm that only uses the STM.

Table 2 .
Comparison with other chaotic stream ciphers.