## 3 The Proposed IoMT Model
### Secure Data Transmission and Storage

Table 6: Sample entropy values obtained from entropy analysis of HMCC. Figure 7: (**a**) Auto Correlation of Plaintext; (**b**) Autocorrelation of Ciphertext. * **Resistance of HMCC against Brute-Force Attack:** To be immune to a brute-force attack, the secret key space of a cryptosystem that is relevant for modern-day information security should be larger than \(2^{100}\)[66]. Although the size of the key in HMCC varies, the minimum key size is 128 bits; therefore, the key size is \(2^{128}\). The key size can be increased to any number of bits by specifying the block size to be used when encryption is to be done. More entropy implies a broader and more unpredictable key search space, with smaller and more difficult-to-identify repetitions and correlations. In HMCC, all the 256 ASCII characters can be randomly used in the formation of the encryption keys. Hence, the entropy of the keys can be calculated using the formula in Equation (6). \[\mathrm{E}=\log_{2}R^{N}\] (6) where \(R\) is the size of symbol space. Applying Equation (6), the entropy of a key with the smallest key size in HMCC is 128 bits. An attacker would need \(2^{128}\) or \(3.40\times 10^{38}\) attempts for a successful brute-force attack on this key. Taking the example of Summit, a supercomputer capable of performing 200 PFLOPS (\(10^{15}\) floating-point operations per second) [67], according to Equation (7), it would take this computer \(1.7\times 10^{24}\) years to crack the HMCC cryptosystem in its least key space, assuming that the computer can perform 1000 FLOPS per checking. \[\mathit{Years}=\frac{\mathit{key}\ \mathit{combination}\times 1000}{\mathit{FLOPS}}\times 31536000\] (7)
* **Resistance of HMCC Against Classical Cryptanalysis attack:** [PERSON]'s principle states that the attacker has access to the encryption algorithms but no access to the secret key. With the encryption algorithm in the hand of a cryptanalyst, differential attacks such as cipher text-only and known/chosen plaintext attacks can be carried out [68]. In HMCC, the confusion and diffusion process is realized by modifying the bits of the encrypted text; in addition, the encryption of each block of plaintext is done such that each block is encrypted with a unique key. Again, the character set from where the ciphertext characters are obtained is determined by the key so each block uses a different character set. If a plaintext spans more than one block and the blocks are of the same characters, each block will be encrypted differently as different keys, and different character sets are used to determine the ciphertext characters. A sample output where the block size is 16 and the number of characters to be encrypted is 32 is given in Table 7.

This discovery also suggests that a dictionary assault on the HMCC will be no more productive than an attack using brute force. Hence, HMCC is thought to be resistant against dictionary assaults. * **Strict Avalanche Criterion of HMCC** The results of SKAC and SPAC tests for each 128-bit position are represented by substitution box (sbox) in Tables 8 and 9, respectively. The sbox in Table 7 represents SKAC(_i,j_) and SPAC (_i,j_), which respectively satisfies Equations (6) and (7) above. \[\mathrm{SKAC}_{(i,j)}=\frac{1}{2^{n}}W\Big{(}d^{ei}_{\ j}\Big{)}=\frac{1}{2}\] \begin{table}
\begin{tabular}{l c c} \hline \hline
**Block** & **Plaintext** & **Ciphertext** \\ \hline
**1** & aaaaaaaaaaaaaaaaaaa & cM99[] x198g[] x10 air[] x9 aDy \\
**2** & aaaaaaaaaaaaaaaaa & \\ \hline \hline \end{tabular}
\end{table} 
Table 7: Sample ciphertext produced by HMCC. \[\text{SPAC}_{(i,j)}=\frac{1}{2^{n}}W\left(a^{ei}_{~{}j}\right)=\frac{1}{2}\]

where \(W\left(a^{ei}_{~{}j}\right)=\sum\limits_{all~{}X\in(0,1)^{n}}\) and \(ei\) is the unit vector with bit \(i\) equal to 1 and all other bits equal to 0. The spoxes have 8-bit input (\(i\)) and 16-bit output (\(j\)). The value of SKAC(\(i\),\(j\)) corresponds to the differences in input bits (ie, \(i=1.8\)). The expected value of each SKAC(\(i\),\(j\))/SPAC(\(i\),\(j\)) is 0.5.