A chaotic image encryption algorithm based on ... - Springer Link

13 downloads 18971 Views 1MB Size Report
Jun 22, 2010 - struct a new digital chaotic encryption algorithm using. X.-Y. Wang ( ) · L. Yang · R. Liu · A. Kadir. Faculty of Electronic Information and Electrical.
Nonlinear Dyn (2010) 62: 615–621 DOI 10.1007/s11071-010-9749-8

O R I G I N A L PA P E R

A chaotic image encryption algorithm based on perceptron model Xing-Yuan Wang · Lei Yang · Rong Liu · Abdurahman Kadir

Received: 16 March 2010 / Accepted: 28 May 2010 / Published online: 22 June 2010 © Springer Science+Business Media B.V. 2010

Abstract Based on the high-dimension Lorenz chaotic system and perceptron model within a neural network, a chaotic image encryption system with a perceptron model is proposed. This paper describes the algorithm flow in detail, and analyses the cryptographic security. The experimental results show that this algorithm has high security, and strong resistance to the existing attack methods. Keywords High-dimension chaotic system · Chaotic encryption · Neuron · Perceptron model

1 Introduction Chaos has become one of the most important research fields in the past decade years. Almost all the scholars are trying to apply it in the secure communication and cryptography field with the chaotic control or synchronization [1–3]. In the information subject, chaos can be divided into two categories: one is the chaotic secure communication system with chaotic synchronization as the technical core [4–6], the other one is to construct a new digital chaotic encryption algorithm using X.-Y. Wang () · L. Yang · R. Liu · A. Kadir Faculty of Electronic Information and Electrical Engineering, Dalian University of Technology, Dalian 116024, China e-mail: [email protected]

a chaotic system based on the computer finite precision technology [7–11]. To the digital chaotic encryption algorithm, there are two typical examples: one is proposed by Baptista in 1998 [7] and the other one is proposed by Álvarez in 1999 [8]. Since then, there are always new chaotic encryption algorithms and various improved methods have been proposed. Because of the continuous development of chaotic cryptanalysis, the existing chaotic encryption algorithms, most of them have potential security hazard more or less [12–14]. Anyway, it is necessary to propose and design better ones in order to avoid the threats and resist attacks. Therefore, this paper introduces the perceptron conception of a neural network to a chaotic encryption system, and proposes a new chaotic encryption algorithm. The experimental results show that this algorithm has a higher key sensitivity and better robustness.

2 System description As we know, using the low-dimension chaotic system to design one encryption algorithm is very easy, but some defects of the low-dimension chaotic system, like the simple dynamic characteristic, simple cipher code, and less determine sequence parameters, may cause serious security problems. Compared with the low-dimension ones, the high-dimension chaotic system has a more complex structure, more system variables, and parameters. All of these characters assure it can be used as a cipher key of cryptosystem. Then the

616

X.-Y. Wang et al.

3 Perceptron model For each neuron, introduce a set of input signals, and each signal corresponds to one weight. All input weights determine the neuron’s output [17]. When the neuron has accessed network input, there should be an appropriate output. Each neuron should have a threshold value. This paper uses the following threshold function:  1, if net > θ f (net) = (2) 0, if net ≤ θ Single layer perceptron is a simple single-layer neural network. There are no information flows among the internal neurons, and the weights of the neuron can be changed as the network changes. There are n neurons and n inputs x1 , x2 , . . . , xn to compose the network of perceptron model, wij denotes the weight of the ith input about the j th neuron, θj is threshold value of the j th neuron, and the output of neuron is  yj =

n

1,

if

0,

else

i=1 xi wij

≥ θj

(3)

4 Algorithm Fig. 1 Chaotic dynamic behavior of Lorenz system: (a) Chaotic track of Lorenz system, (b) chaotic attractor of Lorenz

cryptosystem’s key space will be larger, and the system variables’ time sequence will be more erratic and unpredictable than using the low-dimension chaotic system. So it is better to choose a high-dimension chaotic system to design the cryptosystem. This paper chooses the Lorenz system ⎧ ⎪ ⎨ x˙ = a(y − x) y˙ = cx − xz − y (1) ⎪ ⎩ z˙ = xy − bz as the encrypttext. The Lorenz system has a complex inner structure. When the system parameters vary, the system will show different period’s chaotic dynamic behavior. Figure 1 shows the dynamic behavior of the Lorenz system when parameters are a = 10, b = 8/3, c = 28 [15, 16].

In this paper, in order to adjust each neuron’s weight of the single layer perceptron dynamically and finally output the ciphertext, a high-dimensional chaotic map is used to generate pseudo-random sequence. The specific algorithm is as follows: Step 1: Let Lorenz system (1) iterate 3001 times. Throw away the numbers of previous m = 3000 times and keep the 3001th value as initial value (X, Y, Z) of Lorenz system. Step 2: Do 8 iterations to get (Xk , Yk , Zk ), k ∈ [1, 8]. According to the following (4) and (5), normalize Xk , Yk to [0, 1] xk = (Xk − Xmin )/(Xmax − Xmin )

(4)

yk = (Yk − Ymin )/(Ymax − Ymin )

(5)

Then calculate the corresponding values xk and yk . Here, Xmax = max{Xk }, Xmin = min{Xk }, Ymax = max{Yk }, Ymin = min{Yk } (k = 1, 2, . . . , 8).

A chaotic image encryption algorithm based on perceptron model

617

In accordance with the following nonlinear transformation rules:  1, xk ≥ 0.5 keyX(k) = (6) 0, xk < 0.5  1, yk ≥ 0.5 (7) keyY (k) = 0, yk < 0.5 the results keyX(k), keyY (k), k ∈ [1, 8] will become perceptron weight parameters. Select 8 bits in Z8 randomly to create m, and then use the following equations to enlarge the periodicity of the Lorenz system. In order to enlarge the periodicity of the high-dimension Lorenz chaotic system, (8) and (9) are used to do the next chaotic iteration to get new X and Y value, and Z can be set to the previous value Z8 wi = 

7

keyX(k)2k ,

k=0

wj =

7

keyY (k)2k

(8)

k=0

X = ((wj ⊕ m)x8 /256)(Xmax − Xmin ) + Xmin Y = ((wi ⊕ m)y8 /256)(Ymax − Ymin ) + Ymin

(9)

Step 3: Utilize the perceptron weight parameters keyX(k), keyY (k), k ∈ [1, 8] to do the following nonlinear transformation:  1, if keyX[k] = 1 w1,k = (10) −1, else  1, if keyX[k] = 1 (11) w2,k = −1, else The result is each neuron’s weights of perceptron, and the weights can be written as w1,k and w2,k 

−0.5, 0.5,  1,  = w1,k 0,  1,  = w2,k 0, ck =

w1,k = 1 w1.k = −1

(12)

w1,k = 1 w1.k = −1

(13)

w2,k = 1 w2,k = −1

(14)

  ⊕ w2,k θk = w1,k

Fig. 2 The encryption algorithm flow

Step 4: Using stream cipher strategy to encrypt image. Take one pixel p from the image. bk (k ∈ [1, 8]) denotes the kth bit of pixel p’s value b. After encryption, the ciphertext’s pixel value is b , and bk (k ∈ [1, 8]) denotes the kth bit of pixel value b . The ciphertext is  f (w1,k bk + w2,k ck − θk ), w1,k = 1  (16) bk = f (w1,k bk − w2,k ck + θk ), w1.k = −1 where f (x) =



1,

x≥0

0,

x