| Literature DB >> 31590354 |
Daniel A F Saraiva1,2, Valderi Reis Quietinho Leithardt3,4, Diandre de Paula5, André Sales Mendes6, Gabriel Villarrubia González7, Paul Crocker8,9.
Abstract
With the growing number of heterogeneous resource-constrained devices connected to the Internet, it becomes increasingly challenging to secure the privacy and protection of data. Strong but efficient cryptography solutions must be employed to deal with this problem, along with methods to standardize secure communications between these devices. The PRISEC module of the UbiPri middleware has this goal. In this work, we present the performance of the AES (Advanced Encryption Standard), RC6 (Rivest Cipher 6), Twofish, SPECK128, LEA, and ChaCha20-Poly1305 algorithms in Internet of Things (IoT) devices, measuring their execution times, throughput, and power consumption, with the main goal of determining which symmetric key ciphers are best to be applied in PRISEC. We verify that ChaCha20-Poly1305 is a very good option for resource constrained devices, along with the lightweight block ciphers SPECK128 and LEA.Entities:
Keywords: IoT; UbiPri; cryptography; privacy
Year: 2019 PMID: 31590354 PMCID: PMC6806263 DOI: 10.3390/s19194312
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1(Ubiquitous privacy) UbiPri privacy modules, Leithardt et al. [16].
Comparison of related work with the study made in this paper.
| Work | Unsafe | Large Samples | Light | Key Sizes | Auth Modes | Time | PC | THP | IoT |
|---|---|---|---|---|---|---|---|---|---|
| [ | X | X | X | X | X | ||||
| [ | X | X | |||||||
| [ | X | X | X | X | |||||
| [ | X | X | X | ||||||
| [ | X | X | |||||||
| [ | X | X | |||||||
| [ | X | X | X | X | |||||
| [ | X | X | X | ||||||
| [ | X | X | X | X | |||||
| [ | X | X | X | ||||||
| [ | X | X | X | ||||||
| [ | X | X | X | X | |||||
| [ | X | X | X | X | |||||
| [ | X | X | X | ||||||
| [ | X | X | X | X | |||||
| [ | X | X | X | X | |||||
| [ | X | X | X | X | |||||
| [ | X | X | X | X | X | ||||
| [ | X | X | X | X | X | X | |||
| This work | X | X | X | X | X | X | X | X |
Figure 2Devices used running the developed application.
Figure A1AES-Galois/counter mode (GCM) encryption with time measurement.
Figure A2Java Backend.
Figure 3Application flow diagram.
Figure 4Average encryption time (seconds) in the ARMv7-a Samsung device.
Figure 5Average lightweight block cipher encryption time (seconds) in the ARMv7-a Samsung device.
Figure A3Average decryption time (seconds) in the ARMv7-a Samsung device.
Figure A4Average lightweight block cipher decryption time (seconds) in the ARMv7-a Samsung device.
Average encryption throughput (MiB/s) in the ARMv7-a Samsung device.
| Algorithm/Pack Size | 1 MiB | 5 MiB | 10 MiB |
|---|---|---|---|
| AES-128-GCM | 12.538 | 12.935 | 12.989 |
| AES-192-GCM | 11.872 | 12.069 | 12.125 |
| AES-256-GCM | 11.073 | 11.286 | 11.313 |
| RC6-128-GCM | 16.950 | 17.304 | 17.328 |
| RC6-192-GCM | 16.755 | 17.251 | 17.306 |
| RC6-256-GCM | 16.738 | 17.237 | 17.290 |
| Twofish-128-GCM | 17.094 | 17.324 | 17.372 |
| Twofish-192-GCM | 16.802 | 17.284 | 17.336 |
| Twofish-256-GCM | 16.593 | 17.258 | 17.309 |
| SPECK128-128-GCM | 23.539 | 23.888 | 24.145 |
| SPECK128-192-GCM | 23.280 | 23.777 | 23.848 |
| SPECK128-256-GCM | 22.776 | 23.518 | 23.847 |
| LEA-128-GCM | 23.801 | 24.242 | 24.214 |
| LEA-192-GCM | 22.674 | 23.268 | 23.363 |
| LEA-256-GCM | 22.125 | 22.523 | 22.677 |
| ChaCha20-Poly1305 | 36.805 | 38.777 | 38.951 |
Average decryption throughput (MiB/s) in the ARMv7-a Samsung device.
| Algorithm/Pack Size | 1 MiB | 5 MiB | 10 MiB |
|---|---|---|---|
| AES-128-GCM | 12.839 | 12.928 | 12.943 |
| AES-192-GCM | 12.019 | 12.059 | 12.062 |
| AES-256-GCM | 11.237 | 11.254 | 11.269 |
| RC6-128-GCM | 17.295 | 17.340 | 17.340 |
| RC6-192-GCM | 17.172 | 17.287 | 17.326 |
| RC6-256-GCM | 17.162 | 17.277 | 17.324 |
| Twofish-128-GCM | 17.304 | 17.364 | 17.385 |
| Twofish-192-GCM | 17.233 | 17.351 | 17.368 |
| Twofish-256-GCM | 17.130 | 17.303 | 17.357 |
| SPECK128-128-GCM | 23.706 | 24.010 | 24.190 |
| SPECK128-192-GCM | 23.693 | 23.936 | 23.904 |
| SPECK128-256-GCM | 23.477 | 23.726 | 23.829 |
| LEA-128-GCM | 23.953 | 24.251 | 24.244 |
| LEA-192-GCM | 23.208 | 23.379 | 23.345 |
| LEA-256-GCM | 22.579 | 22.679 | 22.734 |
| ChaCha20-Poly1305 | 38.407 | 39.197 | 39.147 |
Battery drain (mAh) in the ARMv7-a Samsung device.
| Algorithm/Access Level | Basic | Advanced | Admin |
|---|---|---|---|
| AES | 10.40 | 12.30 | 13.40 |
| RC6 | 7.17 | 8.18 | 8.68 |
| Twofish | 7.75 | 8.74 | 8.77 |
| SPECK128 | 5.59 | 6.16 | 6.32 |
| LEA | 5.18 | 6.49 | 6.65 |
| ChaCha20-Poly1305 | – | – | 3.90 |
Figure 6Average encryption time (seconds) in the ARMv8-a Xiaomi device.
Figure A5Average decryption time (seconds) in the ARMv8-a Xiaomi device.
Figure 7Average lightweight block cipher encryption time (seconds) in the ARMv8-a Xiaomi device.
Figure A6Average lightweight block cipher decryption time (seconds) in the ARMv8-a Xiaomi device.
Average encryption throughput (MiB/s) in the ARMv8-a Xiaomi device.
| Algorithm/Pack Size | 1 MiB | 5 MiB | 10 MiB |
|---|---|---|---|
| AES-128-GCM | 77.539 | 78.058 | 77.586 |
| AES-192-GCM | 65.843 | 68.793 | 69.190 |
| AES-256-GCM | 59.882 | 61.793 | 61.670 |
| AES-128-GCM-HW | 325.789 | 414.087 | 426.964 |
| AES-192-GCM-HW | 300.811 | 411.769 | 409.741 |
| AES-256-GCM-HW | 299.368 | 399.009 | 391.087 |
| RC6-128-GCM | 87.089 | 89.975 | 89.785 |
| RC6-192-GCM | 86.925 | 89.861 | 88.907 |
| RC6-256-GCM | 86.615 | 89.799 | 87.939 |
| Twofish-128-GCM | 78.893 | 80.747 | 77.799 |
| Twofish-192-GCM | 78.625 | 79.945 | 77.031 |
| Twofish-256-GCM | 77.632 | 79.691 | 75.361 |
| SPECK128-128-GCM | 160.958 | 168.215 | 150.211 |
| SPECK128-192-GCM | 151.627 | 166.054 | 132.117 |
| SPECK128-256-GCM | 149.843 | 162.750 | 131.935 |
| LEA-128-GCM | 140.370 | 144.275 | 142.345 |
| LEA-192-GCM | 124.138 | 128.719 | 124.099 |
| LEA-256-GCM | 113.247 | 116.402 | 115.250 |
| ChaCha20-Poly1305 | 134.081 | 137.656 | 138.336 |
Average decryption throughput (MiB/s) in the ARMv8-a Xiaomi device.
| Algorithm/Pack Size | 1 MiB | 5 MiB | 10 MiB |
|---|---|---|---|
| AES-128-GCM | 77.002 | 77.871 | 77.852 |
| AES-192-GCM | 66.671 | 68.541 | 69.026 |
| AES-256-GCM | 60.668 | 61.555 | 61.517 |
| AES-128-GCM-HW | 312.240 | 416.162 | 416.910 |
| AES-192-GCM-HW | 293.926 | 412.598 | 399.584 |
| AES-256-GCM-HW | 289.693 | 401.251 | 395.472 |
| RC6-128-GCM | 86.884 | 89.742 | 89.188 |
| RC6-192-GCM | 86.841 | 89.440 | 88.428 |
| RC6-256-GCM | 86.345 | 89.296 | 87.231 |
| Twofish-128-GCM | 78.870 | 80.252 | 77.642 |
| Twofish-192-GCM | 78.337 | 79.892 | 76.677 |
| Twofish-256-GCM | 77.980 | 79.794 | 75.040 |
| SPECK128-128-GCM | 158.101 | 169.930 | 149.765 |
| SPECK128-192-GCM | 148.910 | 167.075 | 132.916 |
| SPECK128-256-GCM | 148.604 | 163.716 | 131.265 |
| LEA-128-GCM | 137.897 | 145.423 | 142.530 |
| LEA-192-GCM | 122.688 | 129.230 | 122.834 |
| LEA-256-GCM | 112.028 | 117.177 | 114.701 |
| ChaCha20-Poly1305 | 133.612 | 136.527 | 136.207 |
Battery drain (mAh) in the ARMv8-a Xiaomi device.
| Algorithm/Access Level | Basic | Advanced | Admin |
|---|---|---|---|
| AES | 2.52 | 2.82 | 3.14 |
| AES HW | 0.877 | 0.887 | 0.919 |
| RC6 | 2.33 | 2.36 | 2.38 |
| Twofish | 2.57 | 2.63 | 2.73 |
| SPECK128 | 1.54 | 1.68 | 1.69 |
| LEA | 1.60 | 1.81 | 1.97 |
| ChaCha20-Poly1305 | – | – | 1.73 |