The term Internet of Things  (IoT) signifies situations where network connectivity coupled with computing capability extends to objects, sensors and everyday items with capabilities to generate, exchange and consume data with least human intervention. The judicious use of various state-of-the-art technologies and emerging market trends are helping the IoT to provide value addition to the user in real life situations.
Further, the IoT has successfully overcome the stiff challenges and numerous questions pertaining to security, privacy, and inter-operability/standards, legal and regulatory so as to allow the IoT to provide novel, cost effective and fully connected smart-world to serve the entire humanity. So, it becomes necessary to optimize the security of IoT devices. Choosing the right implementation for the chosen device is critical.
IoT devices  were not built with security in mind. In most cases, security is not included on the device itself. Moreover, they may contain some malware in them which later infects the network they are connected to. In order to secure IoT devices, an integrated solution is required. This solution needs to cover areas such as segmentation, visibility and protection for the entire infrastructure. This paper discusses few implementations of AES algorithms. The first section deals with existing implementations. The second section consists of the references used.
Review of chosen work
The Advanced Encryption Standard (AES) Algorithm or the Rijndael block cipher is the standard recommended by NIST in the year 2000 . Mainly, AES performs encryption and decryption. It can use keys of 128, 192, and 256 bits for encryption/decryption process . Data is processed in 16 byte blocks. For 10 rounds, 128 bit key size is used. Similarly, for 12 or 14 rounds, the key sizes used are 192 or 256 bits respectively. The encryption has four stages: SubBytes, ShiftRows, MixColumns and AddRoundKey. Each round has four transformations or layers and a round key generated from the original key.
The four stages have been previously described in depth and hence will not be described in this paper. The modifications that can be made to particular stages will be explained. The SubByte operation consists of an S-Box stage where substitution is performed. This S-Box is typically implemented in the form of a lookup table (LUT). The S-Box operation is the most time consuming operation of AES . In order to mitigate these effects, a parallel implementation consisting of copies of the S-Box is used. This implementation reduces area and delay .
The advantage of AES algorithm is that it can be applied in virtually all systems that require security. In the case of serial communication using an UART (Universal Asynchronous Receiver Transmitter), AES can be employed to encrypt the data before it is sent . A combination of AES crypto processor and a system using UART such as the NIOS II processor has shown that the performance if such a system is greater than standalone encryption and hardware units .
The increasing demand for portable and wireless devices has lead to requirements for secure algorithms to be run on cost constrained systems with sufficiently high speed . Another possible modification to the AES algorithm can be combining the SubBytes and ShiftRows step with the MixColumns stage .
This can lead to a highly efficient implementation. Another possible modification focuses on the data access aspect of the system. By using various data access schemes, like faster Flash memory, Caching, Prefetching SMS4 is a symmetric-key encryption standard for wireless local area networks. It was released by the Office of State Commercial Cryptography Administrator (OSCCA) in China . This cipher has data block length and key length of 128 bits. A 32-round non linear iterative structure is used by both the encryption and key expansion processes . The order in which roundkeys are used is reversed so that encryption and decryption share the same structure. To optimize the SMS4 algorithm, the roundkey protection can be removed .
By making use of a three-stage pipelined RISC instruction set based processor, the AES algorithm is shown to have decreased code density and software complexity . This implementation needs to ensure that the roundkeys stored in shared memory are secure. Otherwise, other devices which can access the shared memory may corrupt the roundkeys.
After having gone through the AES algorithm and its implementations, let us now consider a practical application, namely a smart door lock. A smart lock is one which can be wirelessly accessed, monitored and controlled along with the ability to display its current status using an Android Application . Such an application requires detection and interpretation system, a system to show personalized responses, processing and storage unit, user subsystem and a secure framework to protect the data . Additionally, it needs to ensure minimum latency, good Quality of Service, easy to use UI, and, to cater to the modern man, a social network integration . The android application can be designed as per the needs of the user.
By combining these various implementations, a myriad of possibilities for securing IoT devices open up. A combination of AES crypto processor and the door lock mechanism proposed can go a long way in securing the communities of the future. Furthermore, the AES implementation on healthcare devices can be used to ensure that each patient gets the right dosage at the right time with no compromise on his privacy or medical status.