# Image Encryption Algorithms: A Survey of Design and Evaluation Metrics
## 2 Image Encryption Algorithms
### Neural Networks  
Neural networks can be utilized in image encryption algorithms to enhance the security and efficiency of the algorithm. Neural networks can be used to permute [35] and/or compress the plaintext images [36]. Furthermore, neural networks with chaotic behaviors [37] can be used to generate chaotic sequences, which can be used as keys, input parameters, or to diffuse the image.  
[PERSON] et al. [35] proposed a double image encryption algorithm based on the convolution neural network (CNN) and chaos. The proposed algorithm uses a logistic map to generate the initial parameters for a 5D conservative chaotic system and CNN. two plaintext images are first permuted by a plaintext-related chaotic pointer generated by the CNN. Next, each permuted image is split on the bit level into high and low 4-bit images. Then two high 4-bit images are fused into one image, and low 4-bit images are fused into one image. Finally, a dual channel encryption (optical encryption, and digital encryption) is performed on the two permuted and fused images to produce two cipher images.  
An image encryption algorithm based on the Hopfield chaotic neural network was proposed by [PERSON] and [PERSON] [38]. The proposed algorithm starts by generating the initial parameters for the Arnold map and Hopfield neural network using a staged composite chaotic map based on a logistic map and a tent map. Next, the plaintext image pixels are permuted by a random sequence generated by the Arnold map. Then, the Hopfield neural network is utilized to generate a self-diffusion chaotic keystream matrix. Each color channel of the permuted image is then XORed with a keystream matrix to produce the cipher image.  
[PERSON] et al. [37] proposed an image encryption algorithm based on the Hermite chaotic neural network. First, a chaotic training sample for the Hermite chaotic neural network is generated by a logistic map. Next, two sets of chaotic sequences are generated by the trained Hermite chaotic neural network. Finally, the two sets are summed and multiplied by 256 and then multiplied by the plaintext image to produce the cipher image.  
In [36], [PERSON] et al. proposed an image encryption algorithm based on a backpropagation neural network and a hyperchaotic system. First, the plaintext image is split into three matrices (R,G,B), and each matrix is decomposed into sub-image blocks. Next, the sub-image blocks are provided as input to the backpropagation neural network, which produces three compressed pixel matrices. The compressed pixel matrices are then permuted using a zigzag confusion algorithm. After that, five chaotic sequences are generated by a fractional-order memristive hyperchaotic system, and two of the sequences are selected randomly to be XORed with the permuted matrices. Finally, the three diffused matrices are combined to produce the cipher image.  
Even though neural network-based image encryption algorithms offer secure encryption, they do have some disadvantages. The time and computational complexity are high for neural network-based image encryption as neural networks require significant processing power and training time.