## 6 Security Solutions
### Communication Security
#### 6.2.1 Cryptosystems  
**Cryptography:** Security solutions that ensure message integrity, confidentiality, and non-repudiation as well as provide authentication and authorization are developed based on symmetric and public key cryptography. Each of these schemes has some advantages and limitations [148]. The symmetric key cryptography (SKC)-based schemes are not memory efficient because they consume a considerable amount of memory to store keying materials. These schemes do not scale well because of the complicated key distribution mechanisms. On the other hand, the public key cryptography (PKC)-based schemes are not energy efficient because they have noticeable communication and computation overheads. Moreover, the PKC-based schemes take considerable time to verify security credentials, such as certificates, and establish session keys. [PERSON] et al. [149] presented an experimental study that shows PKC-based schemes are easy to implement compared to SKC-based schemes. The study also finds that, unlike SKC-based schemes, PKC-based schemes do not require a sophisticated key management mechanism, such as pair-wise key sharing and key pre-distribution. Figure 16: Internet stack vs. IoT stack [147]. Although PKC-based protocols are found advantageous, these security schemes cannot be utilized by the resource-constrained IoT systems as-is. Areas that require further study are: _(i)_ resource-efficient implementations of PKC-based algorithms; _(ii)_ certificate and key distribution mechanisms with minimal communication overheads; _(iii)_ an in-depth security analysis of the resource-efficient designs of PKC-based protocols to confirm that the PKC-based schemes can at least provide the same level of security as the SKC-based schemes do. **Analysis of Cryptographic Algorithms:** The most popular cryptographic protocol used for encryption, decryption, and signature in the PKC is RSA, which is designed based on Integer Factorization (IF). RSA-based security protocols use the Diffie-Hellman (DH) key exchange algorithm to establish shared keys. The DH algorithms are designed based on Discrete Logarithms (DL). Both of the IF and DL algorithms require communicating parties to perform modular exponentiation operations that are resource intensive in terms of CPU cycles and power consumption. According to the National Institute of Standards and Technology (NIST), communication protocols should use RSA keys of length 2048 bits to achieve a good degree of security [150]. However, RSA with key lengths of 2048 bits consumes a significant amount of energy because of the modular exponentiation operations of IF and DL algorithms [151], such as public key = \(\{a^{b}(mod~{}n)\mid a,b\ prime~{}number\}\). Therefore, the RSA is not suitable for resource-limited IoT devices. SecFleck [152] achieves faster RSA operations through hardware support. However, the hardware-based RSA implementation increases the size of the chip, as it requires a large silicon area [153]; therefore, such implementation of RSA protocols may not be suitable for mobile and wearable IoT devices. An alternative to RSA cryptography can be cipher protocols based on Elliptic Curve Cryptography (ECC) and Advance Encryption System (AES). The ECC is an asymmetric algorithm that can provide equal safety by the use of shorter key length. An ECC key of size 248 bits can provide the same degree of security as an RSA 2048-bit key [150]. As such, ECC-based security protocols, such as Elliptic Curve Diffie-Hellman (ECDH) used for session key computation and Elliptic Integrate Encryption used for protecting message confidentiality, are much more memory efficient than the RSA algorithm. Moreover, unlike the DL-based security methods, the arithmetic operations of ECC-based security schemes do not require computations of modular exponentiations. The ECC-based schemes only include addition and multiplication operations. Therefore, ECC-based algorithms have lower energy consumption than IF- and DL-based algorithms and are suitable for resource-constrained smart devices.