# A Lightweight Image Cryptosystem for Cloud-Assisted Internet of Things
## 2 Literature Review  
Security challenges militating against the wide acceptability of cloud computing technology range from vulnerability to security attacks [14], and breach of confidentiality [30] to privacy intrusion [16]. In the same vein, IoT applications increase the security and privacy risk [31] of their users. Luckily, researchers have put up measures, such as cryptography, steganography, watermarking, and a host of other measures, to secure and protect the privacy of data on transit or storage mediums. Cryptography is an effective technique that guarantees data confidentiality, integrity, authentication, and authorization [32]. However, conventional cryptography algorithms require enormous memory, processing power, and physical areas for their implementation. This higher demand for resources makes the conventional cryptography algorithms unsuitable [33] for implementation on resource-starved IoT devices. An alternative approach is the use of hardware crypto processors, such as IBM 4758, SafeNet security processors, smartcards, and Atmel Crypto Authentication devices. It is important to note that these crypto-processors are also not immune to security attacks [34]. Recently, lightweight symmetric cryptography algorithms, such as PRESENT, an improved version of PRESENT--GIFT, RECTANGLE, TWINE, etc., have been developed. Lightweight hash functions and message authentication codes (MACs), such as SPONGENT, PHOTON, Quark, and Marvin, which can be efficiently implemented into IoT devices, have been reported in the literature. Lightweight asymmetric cryptography algorithms that can be used for IoT, such as elliptic curve cryptography (ECC), as well as post-quantum cryptography lattices and codes, have also been developed. A typical lightweight cryptography algorithm requires a small RAM for implementation and is very efficient at processing short messages. However, short key and short block messages make lightweight cryptography algorithms vulnerable to different attacks. The short key, for example, can increase vulnerability to key-related attacks [35], while the short block can also cause problems, such as cipher block chaining (CBC) eroding faster than other parts when the total quantity of n-bit blocks encrypted approaches 2 n/2 [36]. Although the authors of [28; 29; 30; 31; 32; 33; 34; 35; 36; 37] roughly classified lightweight cryptography (LWC) algorithms into four categories based on their internal structure, the authors of [29] accurately categorized LWC algorithms into six groups. The six categories are as follows: substitution-permutation networks (SPNs), Addition/AND-Rotation-XOR (ARX), Feistel networks (FNs), generalized Feistel networks (GFNs), non-linear-feedback shift register (NLFSR), and hybrid. These internal structures are adopted to ensure the security of LWC algorithms. SPNs use S-boxes to achieve non-linearity; however, hardware implementation is resource-intensive; hence, it is not appropriate for resource-starved IoT devices. The same mechanism is used for encryption and decryption in the Feistel structure; therefore, the Feistel structure is less resource-intensive and more appropriate for resource-starved devices [38]. ARX structure-based cryptosystems combine addition/AND, rotation, and XOR operations to achieve non-linearity, diffusion, and confusion properties. The ARX structure is very simple, and its simplicity makes it more appropriate for lightweight block ciphers. However, in order to correctly generate plaintext images from cipher images through the decryption process, the round function of ARX is required to be built on either a Feistel structure or a generalized Feistel structure [39]. TEA, HIGHT, KATAN, and KLEIN, four of the most popular lightweight cryptography algorithms, were implemented and evaluated by the authors of [40] based on their memory efficiency, energy consumption, and the degree of confusion and diffusion. The results of the analysis revealed that KATAN is more memory efficient than HIGHT, TEA, and KLEIN, and consumed the least power among the ciphers.