146 IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS—II: EXPRESS BRIEFS, VOL. 57, NO. 2, FEBRUARY 2010 Simultaneous Arithmetic Coding and Encryption Using Chaotic Maps Kwok-Wo Wong, Senior Member, IEEE, Qiuzhen Lin, and Jianyong Chen Abstract—Based on the observation that iterating a skew tent map reversely is equivalent to arithmetic coding, a simultaneous compression and encryption scheme is proposed in which the chaotic map model for arithmetic coding is determined by a secret key and keeps changing. Moreover, the compressed sequence is masked by a pseudorandom keystream generated by another chaotic map. This two-level protection enhances its security level, which results in high key and plaintext sensitivities. The compression performance of our scheme is comparable with arithmetic coding and approaches Shannon’s entropy limit. Index Terms—Arithmetic coding, chaotic map, simultaneous compression and encryption. I. I NTRODUCTION T RADITIONALLY, source coding and encryption are performed one after another to reduce the data volume while maintaining information secrecy. A typical example is the compression of a private photo using JPEG format and then the encryption of the compressed file using the Advanced Encryption Standard. However, there is an increasing interest in simultaneous compression and encryption [1]–[7]. This can be achieved by either embedding compression into encryption algorithms or adding cryptographic sense in compression schemes. An attempt using the first approach was reported in [1]. The allocation of plaintext symbols in the dynamic lookup table used in a chaos-based cryptographic scheme is determined by the plaintext statistics. The resultant ciphertext is shorter than the plaintext, and so compression is achieved while performing encryption. There were more reports based on the second approach, particularly the introduction of cryptographic sense in entropy coding methods. However, most of these schemes are found insecure or inefficient. The multiple Huffman table approach [4] was cryptanalyzed in [8] and [9]. The arithmetic coding method using key-based interval splitting [5] suffers from known-plaintext attack [9]. The secure arithmetic coding [6] was broken in [10]. Randomized arithmetic coding [7] is not cryptanalyzed but is considered inefficient when compared with the traditional compress-then-encrypt approach [9]. In recent years, some approaches [11]–[13] utilizing chaotic systems for source coding, particularly arithmetic coding, have been suggested. However, they did not investigate the relationship between these two areas, but just employed chaotic systems as pseudorandom bitstream generators. Moreover, a design fault of the chaos-based adaptive arithmetic coding scheme [11] has been recently found, and a modified approach was suggested [14]. Unfortunately, the modified version is also vulnerable to chosen-plaintext attack [14]. The relationship between arithmetic coding and chaotic maps was studied in [15] and [16]. In [15], arithmetic coding is found equivalent to finding the best initial condition for iterating a chaotic map to generate a symbolic sequence corresponding to the source message. In [16], source coding and chaotic systems are related to each other by treating messages emitted by independent and identically distributed sources as symbol sequences of a chaotic nonlinear dynamical system known as the generalized Luroth series (GLS). It is proven that GLS achieves Shannon’s entropy bound and is a generalization of arithmetic coding [16]. Inspired by [15] and [16], here, we propose a scheme for the simultaneous compression and encryption of message sequences with multiple symbols. Compression is achieved by iterating a multisegment piecewise linear chaotic map, whereas encryption is realized by changing the chaotic map model continuously using a secret key, without affecting the essence of arithmetic coding. The use of a chaotic map for this purpose is better than existing schemes based on traditional arithmetic coding [5]–[7]. This is because the position and the direction of the linear segments in the map are governed by the secret key. To further enhance the security, the compressed sequence is masked by a pseudorandom keystream generated by another chaotic map, as suggested in [10]. The rest of this brief is organized as follows. In Section II, the concept of arithmetic coding using a skew tent map is illustrated. The proposed simultaneous arithmetic coding and encryption scheme is described in Section III. The performance of our scheme is reported in Section IV, whereas conclusions are drawn in Section V. II. A RITHMETIC C ODING U SING S KEW T ENT M AP Manuscript received September 16, 2009. First published February 8, 2010; current version published February 26, 2010. This work was supported by a grant from Research Grants Council of the Hong Kong Special Administrative Region, China (Project CityU 122308). This paper was recommended by Associate Editor Y. Horio. K.-W. Wong is with the Department of Electronic Engineering, City University of Hong Kong, Kowloon Tong, Hong Kong (e-mail: itkwwong@ cityu.edu.hk). Q. Lin and J. Chen are with the Department of Computer Science and Technology, Shenzhen University, Shenzhen 518060, China. Digital Object Identifier 10.1109/TCSII.2010.2040315 Here, the concept of arithmetic coding using a skew tent map is illustrated. The map is defined as [17] x/p, 0≤x<p f (x) = (1) (1 − x)/(1 − p), p ≤ x ≤ 1 where p is the point of partition. Suppose that there is a binary message sequence M = 1001000101. The probability of occurrence of symbol 0 is 0.6, 1549-7747/$26.00 © 2010 IEEE Authorized licensed use limited to: CityU. Downloaded on March 08,2010 at 02:24:23 EST from IEEE Xplore. Restrictions apply. WONG et al.: SIMULTANEOUS ARITHMETIC CODING AND ENCRYPTION USING CHAOTIC MAPS 147 a piecewise linear chaotic map, as defined by (3), is constructed [15], i.e., ⎧ x ∈ I1 x/P1 , ⎪ ⎪ ⎪ (x − P1 )/P2 , x ∈ I2 ⎨ (3) f (x) = .. . ⎪ n−1 ⎪ ⎪ ⎩ x− P P , x∈I i n n i=1 where intervals Ii (i = 1, 2, . . . , n) are determined by Fig. 1. Skew tent map. while that of symbol 1 is 0.4. By setting the skew tent map parameter as p = 0.6, the interval [0, 1] is split into two partitions: [0,0.6) represents symbol 0, while [0.6, 1] corresponds to symbol 1, as plotted in Fig. 1. The compression is performed using the reverse interval mapping method [15], [16]. The reverse function of the skew tent map is given by f −1 (I) = 0.6 ∗ I, symbol = “0” 1 − 0.4 ∗ I, symbol = “1” (2) where I is the interval. The initial value of I is [0, 1]. Start from the last symbol “1”; the mapping is from the interval [0, 1] to [0.6, 1]. The second last symbol is “0,” and so the interval [0.6, 1] maps to [0.36, 0.6]. The third last symbol is “1,” and the mapping is from the interval [0.36, 0.6] to [0.76, 0.856]. The remaining symbols are encoded in the same way until the first symbol is encountered. The final interval is obtained, in which the initial value for iterating the skew tent map lies. We can choose any real value within this final interval and represent it in binary format as the compressed sequence. To perform decoding, we just need to iterate the skew tent map from the initial value and determine which partition each iteration output falls in. Then, the original binary sequence M can be reconstructed correctly. This method is proven to be Shannon optimal [15], [16]. III. P ROPOSED A PPROACH A block diagram of our approach is shown in Fig. 2. Arithmetic coding and encryption are performed simultaneously by a piecewise linear chaotic map governed by the statistics of the plaintext. To enhance the security level, the compressed sequence is masked by a pseudorandom keystream generated by an integer skew tent map whose parameter depends on both the key and the plaintext. Details of the proposed approach are described as follows. A. Simultaneous Arithmetic Coding and Encryption Using a Piecewise Linear Chaotic Map The plaintext sequence is partitioned into a number of multiple-bit symbols. Assume that there are n distinct symbols S1 , S2 , . . . , Sn with probabilities of occurrence P1 , P2 , . . . , Pn , respectively, where ni=1 Pi = 1. Based on this information, I1 = [0, P1 ] ⎤ ⎡ i−1 i Ii = ⎣ Pj , Pj ⎦ , j=1 (4) i = 2, 3, . . . , n. (5) j=1 The intervals Ii (i = 1, 2, . . . , n) associate with the plaintext symbols Si (i = 1, 2, . . . , n), respectively, as shown in Fig. 3(a). This is the public mode of the piecewise linear chaotic map. To change the piecewise linear chaotic map without affecting its arithmetic coding ability, we can use a secret key KC ∈ {0, 1, . . . , n − 1} to cyclic-shift the position of the line segments and another secret key KS ∈ {0, 1} to determine their directions. An example is given in Fig. 3(b). The cyclic shift key is chosen as KC = i, where i ∈ {1, . . . , n − 1}, while the slope key is KS = 1. B. Pseudorandom Keystream Generation In our approach, an integer skew tent map [18] defined by (6) is adopted to generate the pseudorandom keystream for masking the compressed sequence ⎧ n ⎨ g xn , if 0 < 2Lx+1 <p pL xn+1 = f (xn ) = (6) ⎩ g 2 +1−xn , otherwise 1−p where p ∈ [0, 1] and xn ∈ {1, 2, . . . , 2L }. The initial value is x0 , whereas the approximation function g(·) can be a floor, a ceiling, or a round function. The form of this map is similar to that shown in Fig. 1, but the range now extends to [0, 2L ]. In [18], it was pointed out that the keystream generated by the integer skew tent map under finite precision does not possess sufficient randomness. To overcome this problem, we only extract a few last bits of xn and limit the value of p to p ∈ [0.25, 0.75]. The randomness of the generated keystream is reported in Section IV-A. C. Key Management The key length of our cipher is 544 bits, represented by k1 k2 , . . . , k544 . The first 512 bits, i.e., key1 = k1 k2 , . . . , k512 , are used to select the mode of the piecewise linear chaotic map. The last 32 bits, i.e., key2 = k513 k514 , . . . , k544 , are taken as the initial value of the integer skew tent map for generating the pseudorandom keystream. Suppose that there are n distinct plaintext symbols. The number of key bits used to determine the mode of the piecewise linear chaotic map is m = log2 (n)+ 1. The number of symbols to be encrypted by the secret mode of Authorized licensed use limited to: CityU. Downloaded on March 08,2010 at 02:24:23 EST from IEEE Xplore. Restrictions apply. 148 IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS—II: EXPRESS BRIEFS, VOL. 57, NO. 2, FEBRUARY 2010 Fig. 2. Model of the proposed approach. Fig. 3. Piecewise linear chaotic map in (a) public mode KC = 0, KS = 0. (b) Secret mode with keys KC = i, KS = 1. the piecewise linear chaotic map is l = 512/m. The remaining symbols in the same plaintext block are compressed using the public mode. The cyclic shift keys used for the l symbols are KC1 , KC2 , . . . , KCl , respectively, whereas the slope keys used for these l symbols are KS1 , KS2 , . . . , KSl , respectively, where KCi = k(i−1)∗m+1 k(i−1)∗m+2 , . . . , ki∗m−2 and KSi = ki∗m−1 (i = 1, 2, . . . , l). To make every bit in key1 of the same importance, there are two rounds of key transformation before encryption. The first round of key transformation is performed as follows: KCi+1 = (KCi+1 + KCi ) mod n, i = 1, 2, . . . , l − 1 (7) KSi+1 = (KSi+1 + KSi ) mod 2, i = 1, 2, . . . , l − 1. (8) The second round of key transformation is given by KC1 = (KC1 + KCl ) mod n (9) KS1 = (KS1 + KSl ) mod 2 (10) KCi+1 = (KCi+1 + KCi ) mod n, i = 1, 2, . . . , l−1 (11) KSi+1 = (KSi+1 + KSi ) mod 2, i = 1, 2, . . . , l−1. (12) D. Encoding Procedures The encoding procedures are described as follows. 1) Read the plaintext sequence in bytes and divide it into W blocks. Each of the first (W − 1) blocks contains 128 symbols, while the last block possesses K (128 ≤ K < 256) symbols. This ensures that the minimum length of each block is 1024 bits, which is sufficiently large to resist brute force search attack. Moreover, the long last block prevents attacks targeting at short plaintext blocks. An “End” character is added to the end of the plaintext, which is then scanned to find out the number of distinct symbols and the corresponding probabilities of occurrence. 2) Based on the plaintext statistics, construct the piecewise linear chaotic map using (3)–(5). Then, start to process the first plaintext block. The 128 symbols in this block are encoded using reverse interval mapping [15], [16], starting from the last symbol. The last (128 − l) symbols are compressed using the public mode of the piecewise linear chaotic map plotted in Fig. 3(a). The first l symbols are compressed and encrypted with the secret mode shown in Fig. 3(b). The keys to select the mode for the ith symbol are KCi and KSi , i = 1, 2, . . . , l. After all 128 symbols are processed, a final interval [begin, end] is obtained, and a real value 0.t1 t2 , . . . , tk is chosen within this interval. The bits t1 t2 , . . . , tk form the k-bit compressed sequence, which should be sufficiently long to resist brute force search attack. If k is smaller than 128, more bits than necessary will be extracted to make the compressed sequence at least 128 bits. The sequence is then masked by a pseudorandom keystream generated by the integer skew tent map. The initial value x0 is determined by key2, while the parameter p is determined by the cyclic shift key KC1 for the first plaintext symbol of this block. Suppose that the value of this cyclic shift key is j. Then, the intervals Ij+1 and Ij+2 are used to calculate the value of q using the following formula: q= Ij+1 . Ij+1 + Ij+2 (13) To make p ∈ [0.25, 0.75], we set p = 0.25 + q ∗ 0.5. Moreover, to ensure p = (xn /(2L + 1)), p is modified to (2p(2L + 1) − 1)/(2(2L + 1)). If the resultant value is 0.5, its value will be replaced by (2p(2L +1)+1)/ (2(2L +1)) [18]. To enhance the randomness, the integer skew tent map is first iterated 250 times from x0 . This is performed only once for the whole plaintext sequence. Then, the skew tent map is further iterated k/16 times to obtain k/16 integers. The last 16 bits of each integer are extracted to form the pseudorandom keystream, as represented by r1 r2 , . . . , rk . The final ciphertext sequence c1 c2 , . . . , ck is obtained by XORing the compressed sequence and the keystream, i.e., ci = ti ⊕ ri , i = 1, 2, . . . , k. 3) The keys need to be updated before processing the next plaintext block. The values of KC1 and KS1 are modified by some bits extracted from the current output of the piecewise linear chaotic map, as given by KC1 = KC1 ⊕ {t9 , t10 , . . . , t9+m−2 } (14) KS1 = KS1 ⊕ {t9+m−1 }. (15) Authorized licensed use limited to: CityU. Downloaded on March 08,2010 at 02:24:23 EST from IEEE Xplore. Restrictions apply. WONG et al.: SIMULTANEOUS ARITHMETIC CODING AND ENCRYPTION USING CHAOTIC MAPS TABLE I C OMPRESSION R ATIO Then, a round of key transformation is performed by KCi+1 = (KCi+1 + KCi ) mod n, i = 1, 2, . . . , l−1 (16) KSi+1 = (KSi+1 + KSi ) mod 2, i = 1, 2, . . . , l−1. (17) 149 Moreover, the initial value of the integer skew tent map is updated with x0 = xk/16+1 . Then, the next plaintext block is encrypted in a similar way. The whole plaintext sequence is compressed and encrypted by processing each block sequentially until the last block. For the decoder to correctly identify the ciphertext bits of each block, a forbidden symbol composing of 1 zero and 8 ones (011111111) is inserted between two consecutive ciphertext sequences. To distinguish this forbidden symbol from ordinary ciphertext corresponding to seven consecutive ones, we add a “0” after the seventh “1.” E. Decoding Procedures The decoding procedures are described as follows. 1) Read the header of the compressed file to find out the distinct plaintext symbols and their corresponding probabilities. Then, construct the public mode of the piecewise linear chaotic map. Scan the ciphertext sequence until the first forbidden symbol (011111111) is encountered. The ciphertext corresponding to the first block is then obtained. Check this segment of ciphertext and remove the next 0 if seven consecutive ones are encountered. 2) Based on the secret key, determine the values of KCi and KSi (i = 1, 2, . . . , l) and start to decompress and decrypt the ciphertext for the first block. Set the initial value x0 as key2 and iterate the integer skew tent map for 250 times. Then, further iterate it for k/16 times to regenerate the pseudorandom keystream r1 r2 r3 , . . . , rk and unmask the ciphertext by ti = ci ⊕ri (i = 1, 2, . . . , k). Convert the binary sequence t1 t2 t3 , . . . , tk to a real value 0.t1 t2 t3 , . . . , tk , which is the initial value for iterating the piecewise linear chaotic map. Select the secret mode of the map according to KCi and KSi (i = 1, 2, . . . , l) to decode the ith symbol. After l symbols are decrypted, the public mode of the piecewise linear chaotic map is used instead to decode the remaining (128 − l) symbols in this block. 3) Update the values of KCi and KSi (i = 1, 2, . . . , l) using (14)–(17), as performed in the encoder. The initial value of the integer skew tent map is also updated as x0 = xk/16+1 . With these new secret keys, continue to decompress and decrypt the next block of ciphertext until the “End” character is encountered in the last block. IV. S IMULATION R ESULTS The compression performance and the security of the proposed simultaneous arithmetic coding and encryption scheme are evaluated using 18 standard test files from the Calgary Corpus [19]. The 544-bit secret key is randomly generated. All the simulations are executed in a personal computer with an Intel dual-core 3.3-GHz processor and 8-GB memory. The test results are reported as follows. A. Randomness Test The randomness of the keystream generated by the integer skew tent map is evaluated using the statistic test suite designed by the National Institute of Standards and Technology [20]. In particular, 300 sequences, each of length 1 000 000 bits, are generated. If the successful percentage of any test is lower than 97.28%, the sequences are considered as not sufficiently random. All the keystreams generated using the 18 test files have passed the tests as the percentage falls between 97.33% and 100%. This implies that they possess sufficient randomness. B. Compression and Speed Performance The compression ratio R of our algorithm is defined as R= ciphertext length × 100%. plaintext length (18) The ciphertext length includes the header information, which contains the plaintext symbols (8 bits each) and their probabilities (16 bits each). The compression performance for the 18 test files can be found in Table I. For comparison, the best ratio (BR) calculated based on the entropy and the ratio using standard arithmetic coding (RAC ) are also listed. The results show that our compression ratio is slightly higher than the BR by 1.04%–4.69%. This is because forbidden symbols are inserted to separate the ciphertext of consecutive blocks, and the header information is included. However, the compression ratio is very close to the BR when the plaintext file is sufficiently large. This ratio can be further improved using a larger block size, i.e., more than 128 symbols per block. The compression time Tc and the decompression time Td are listed in Table II. The compression speed lies between 1.2 and 3.4 MB/s. The decompression speed is lower than the compression one, from 0.72 to 2.3 MB/s. This is mainly due to the time-consuming division operation in the decompression process. In fact, the compression and decompression efficiency can be improved if the probability of occurrence of the symbols Authorized licensed use limited to: CityU. Downloaded on March 08,2010 at 02:24:23 EST from IEEE Xplore. Restrictions apply. 150 IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS—II: EXPRESS BRIEFS, VOL. 57, NO. 2, FEBRUARY 2010 TABLE II O PERATION S PEED existing schemes based on traditional arithmetic coding [5]–[7]. This is because both the position and the direction of the line segments in the piecewise linear chaotic map are controlled using a secret key. Simulation results reveal that the compression performance is comparable to arithmetic coding and approaches Shannon’s entropy limit. The security of the scheme is supported by its high key and plaintext sensitivities. R EFERENCES is quantized to 2−i (i = 1, 2, 3, . . . , 16). As a result, multiplication and division operations are performed simply by bit shifting, and the computation time is greatly reduced. The corresponding compression time Tc and decompression time Td can be found in Table II. By using this fast approach, the compression speed ranges from 1.6 to 5.7 MB/s, while the decompression speed falls between 1.6 and 4.6 MB/s. The tradeoff is that the compression ratio R is further increased by 1%–3% in most cases, as listed in the rightmost column of Table I. C. Key Sensitivity and Plaintext Sensitivity To test the sensitivity of key1, one bit is changed arbitrarily, and the two resultant ciphertext sequences generated from the same plaintext block are compared bit-by-bit. These operations are performed 100 times. The average percentage of bits changed in the ciphertext sequences varies from 46.13% to 49.96% and is very close to the ideal value (50%). The results indicate the high key sensitivity of the proposed scheme. The plaintext sensitivity of our scheme is evaluated by randomly toggling one bit in each plaintext block and encrypting using the same key. The two resultant ciphertexts are compared bit-by-bit. The average percentage of bits changed in 100 runs ranges from 49.27% to 50.11% for different test files. This justifies the plaintext sensitivity of our scheme. The sensitivity of key2 is supported by the randomness test results found in Section IV-A. As the compressed sequence is further masked by a keystream with sufficient randomness [10], our scheme possesses two levels of protection and can resist known attacks described in [8]–[10]. V. C ONCLUSION A simultaneous arithmetic coding and encryption scheme utilizing chaotic maps has been proposed. It is better than [1] K. W. Wong and C. H. Yuen, “Embedding compression in chaos-based cryptography,” IEEE Trans. Circuits Syst. II, Exp. Briefs, vol. 55, no. 11, pp. 1193–1197, Nov. 2008. [2] X. Liu, P. Farrell, and C. Boyd, A Unified Code—IMA-Crypto & Coding’99, vol. 1746. Lect. Notes Comput. Sci. Berlin, Germany: SpringerVerlag, 1999, pp. 84–93. [3] N. Nagaraj and P. G. Vaidya, “Applications of dynamical systems to joint source cryptographic-channel coding,” in Nonlinear Dynamics, M. Daniel and S. Rajasekar, Eds. New Delhi, India: Narosa Publishing House, 2009, pp. 393–396. [4] C. Wu and C. Kuo, “Design of integrated multimedia compression and encryption systems,” IEEE Trans. Multimedia, vol. 7, no. 5, pp. 828–839, Oct. 2005. [5] J. Wen, H. Kim, and J. Villasenor, “Binary arithmetic coding with key-based interval splitting,” IEEE Signal Process. Lett., vol. 13, no. 2, pp. 69–72, Feb. 2006. [6] H. Kim, J. Wen, and J. Villasenor, “Secure arithmetic coding,” IEEE Trans. Signal Process., vol. 55, no. 5, pp. 2263–2272, May 2007. [7] M. Grangetto, E. Magli, and G. Olmo, “Multimedia selective encryption by means of randomized arithmetic coding,” IEEE Trans. Multimedia, vol. 8, no. 5, pp. 905–917, Oct. 2006. [8] J. Zhou, Z. Liang, Y. Chen, and O. C. Au, “Security analysis of multimedia encryption schemes based on multiple Huffman table,” IEEE Signal Process. Lett., vol. 14, no. 3, pp. 201–204, Mar. 2007. [9] G. Jakimoski and K. Subbalakshmi, “Cryptanalysis of some multimedia encryption schemes,” IEEE Trans. Multimedia, vol. 10, no. 3, pp. 330– 338, Apr. 2008. [10] J. Zhou, O. C. Au, and P. H. Wong, “Adaptive chosen-ciphertext attack on secure arithmetic coding,” IEEE Trans. Signal Process., vol. 57, no. 5, pp. 1825–1838, May 2009. [11] R. Bose and S. Pathak, “A novel compression and encryption scheme using variable model arithmetic coding and coupled chaotic system,” IEEE Trans. Circuits Syst I, Reg. Papers, vol. 53, no. 4, pp. 848–857, Apr. 2006. [12] B. Mi, X. Liao, and Y. Chen, “A novel chaotic encryption scheme based on arithmetic coding,” Chaos Solitons Fractals, vol. 38, no. 5, pp. 1523– 1531, Dec. 2008. [13] H. Li and J. Zhang, “A secure and efficient entropy coding based on arithmetic coding,” Commun. Nonlinear Sci. Numer. Simul., vol. 14, no. 12, pp. 4304–4318, Dec. 2009. [14] J. Zhou and O. C. Au, “Comments on ‘A novel compression and encryption scheme using variable model arithmetic coding and coupled chaotic system’,” IEEE Trans. Circuits Syst. I, Reg. Papers, vol. 55, no. 10, pp. 3368–3369, Nov. 2008. [15] M. B. Luca, A. Serbanescu, S. Azou, and G. Burel, “A new compression method using a chaotic symbolic approach,” in Proc. IEEE Commun. Conf., Bucharest, Romania, Jun. 3–5, 2004. [Online]. Available: http://www.univ-brest.fr/lest/tst/publications/ [16] N. Nagaraj, P. G. Vaidya, and K. G. Bhat, “Arithmetic coding as a non-linear dynamical system,” Commun. Nonlinear Sci. Numer. Simul., vol. 14, no. 4, pp. 1013–1020, Apr. 2009. [17] G. Alvarez and S. Li, “Some basic cryptographic requirements for chaosbased cryptosystems,” Int. J. Bifur. Chaos, vol. 16, no. 8, pp. 2129–2151, 2006. [18] H. S. Kwok and W. K. S. Tang, “A fast image encryption system based on chaotic maps with finite precision representation,” Chaos Solitons Fractals, vol. 32, no. 4, pp. 1518–1529, May 2007. [19] [Online]. Available: ftp://ftp.cpsc.ucalgary.ca/pub/projects/text.compression. corpus [20] NIST Special Publication 800-22rev1. [Online]. Available: http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html Authorized licensed use limited to: CityU. Downloaded on March 08,2010 at 02:24:23 EST from IEEE Xplore. Restrictions apply.