Author Contributions
Conceptualization, J.-P.R.-P. and J.-A.S.-H.; Software, J.-A.S.-H.; Investigation, J.-A.S.-H. and M.A.-V.; Resources, M.A.-V. and J.-P.R.-P.; Supervision, J.-P.R.-P.; Validation, M.A.C.-C.; Methodology, M.A.C.-C. and J.-P.R.-P.; Writing, J.-A.S.-H., M.A.C.-C., M.A.-V. and J.-P.R.-P. All authors have read and agreed to the published version of the manuscript.
Figure 1.
The architecture used for the tests, composed of all basic elements: a wireless sensor network, a gateway, and a cloud server.
Figure 1.
The architecture used for the tests, composed of all basic elements: a wireless sensor network, a gateway, and a cloud server.
Figure 2.
The block diagram of the sensor node. It consists of three parts, the processing unit, for which we used an Arduino Uno; the communication unit, an RFM69HCW; and a sensing unit, the DHT22 sensor.
Figure 2.
The block diagram of the sensor node. It consists of three parts, the processing unit, for which we used an Arduino Uno; the communication unit, an RFM69HCW; and a sensing unit, the DHT22 sensor.
Figure 3.
The block diagram for the gateway part of the system. No direct connection between the gateway and the radio was possible, so an intermediary device was necessary, to act as a radio controller. For the gateway, we used a Raspberry Pi 3B+; for the radio controller, we used an Arduino Uno; and an RFM69HCW for the radio.
Figure 3.
The block diagram for the gateway part of the system. No direct connection between the gateway and the radio was possible, so an intermediary device was necessary, to act as a radio controller. For the gateway, we used a Raspberry Pi 3B+; for the radio controller, we used an Arduino Uno; and an RFM69HCW for the radio.
Figure 4.
Maximum amount of memory, in bytes, that each KEM uses. We can see again that FrodoKEM640 uses the most, with close to bytes. LightSaber uses the least, with less than bytes. The other three KEMs use slightly more than bytes. The y-axis has logarithmic scale.
Figure 4.
Maximum amount of memory, in bytes, that each KEM uses. We can see again that FrodoKEM640 uses the most, with close to bytes. LightSaber uses the least, with less than bytes. The other three KEMs use slightly more than bytes. The y-axis has logarithmic scale.
Figure 5.
Memory usage over number of access for each KEM. The more access to memory, the more CPU cycles the program requires to access the RAM. LightSaber uses the memory for the least amount of time, while NTRULPr653 accesses it for the longest time. The other three fall in between. The y-axis has logarithmic scale.
Figure 5.
Memory usage over number of access for each KEM. The more access to memory, the more CPU cycles the program requires to access the RAM. LightSaber uses the memory for the least amount of time, while NTRULPr653 accesses it for the longest time. The other three fall in between. The y-axis has logarithmic scale.
Figure 6.
Mean usage of the CPU for each operation of each cipher. Visually, the performance of the KEMs LightSaber and Kyber51 is very similar. NTRUhps2048509 is the next in performance, followed by NTRULPr653, and then FrodoKEM640.
Table 5,
Table 6 and
Table 7 show the standard deviation and 95% CI for
key generation,
encryption, and
decryption, respectively.
Figure 6.
Mean usage of the CPU for each operation of each cipher. Visually, the performance of the KEMs LightSaber and Kyber51 is very similar. NTRUhps2048509 is the next in performance, followed by NTRULPr653, and then FrodoKEM640.
Table 5,
Table 6 and
Table 7 show the standard deviation and 95% CI for
key generation,
encryption, and
decryption, respectively.
Figure 7.
The maximum number of packets transmitted during the connection. LightSaber required the maximum number of packets to transmit during the connection, while Kyber512 used the least.
Table 8 shows the 95% CI of the number of packets transmitted.
Figure 7.
The maximum number of packets transmitted during the connection. LightSaber required the maximum number of packets to transmit during the connection, while Kyber512 used the least.
Table 8 shows the 95% CI of the number of packets transmitted.
Figure 8.
Number of packets transmitted during the connection. The elliptic curves performed better than the post-quantum KEMs. Kyber512 still performs better, followed by NTRUhps2048509 and LightSaber. In
Table 9, we show the 95% CI for the packet size.
Figure 8.
Number of packets transmitted during the connection. The elliptic curves performed better than the post-quantum KEMs. Kyber512 still performs better, followed by NTRUhps2048509 and LightSaber. In
Table 9, we show the 95% CI for the packet size.
Figure 9.
The mean value of the connection is almost the same for all the KEMS, with an average of a little more, of 14 ms. The minimum value is achieved by Kyber512, with less than 2 ms. In
Table 10, we show the 95% CI for the connection duration.
Figure 9.
The mean value of the connection is almost the same for all the KEMS, with an average of a little more, of 14 ms. The minimum value is achieved by Kyber512, with less than 2 ms. In
Table 10, we show the 95% CI for the connection duration.
Table 1.
The current finalists of the NIST standardization process.
Table 1.
The current finalists of the NIST standardization process.
Public-Key Encryption/KEM | Digital Signatures |
---|
Classic McEliece | CRYSTALS-DILITHIUM |
CRYSTALS-KYBER | FALCON |
NTRU | Rainbow |
Saber | |
Table 2.
The currently alternate candidates of the NIST standardization process.
Table 2.
The currently alternate candidates of the NIST standardization process.
Public-Key Encryption/KEM | Digital Signatures |
---|
BIKE | GeMSS |
FrodoKEM | Picnic |
HQC | SPHINCS+ |
NTRU Prime | |
SIKE | |
Table 3.
The maximum amount of memory each KEM uses. FrodoKEM640 uses the most memory, whilst the KEM that uses the least is LightSaber. The other three use approximately the same amount of memory.
Table 3.
The maximum amount of memory each KEM uses. FrodoKEM640 uses the most memory, whilst the KEM that uses the least is LightSaber. The other three use approximately the same amount of memory.
KEM | Maximum Amount of Memory (bytes) |
---|
LightSaber | 994 |
Kyber512 | 18,528 |
NTRUhps2048509 | 18,080 |
NTRULPr653 | 14,064 |
FrodoKEM-640 | 921,360 |
Table 4.
The mean value of CPU usage, measuring the total number of milliseconds required to complete each of the operations. The standard deviation and 95% confidence interval (CI) for each of the operations can be seen in
Table 5,
Table 6 and
Table 7.
Table 4.
The mean value of CPU usage, measuring the total number of milliseconds required to complete each of the operations. The standard deviation and 95% confidence interval (CI) for each of the operations can be seen in
Table 5,
Table 6 and
Table 7.
KEM | Key Generation | Encryption | Decryption | Total |
---|
LightSaber | 63.3441 | 87.2609 | 104.7546 | 255.3597 |
Kyber512 | 51.3695 | 69.3704 | 83.3001 | 204.0401 |
NTRUhps2048509 | 7626.0645 | 288.0449 | 684.8025 | 8598.9121 |
NTRULPr653 | 10,251.6578 | 19,191.6461 | 28,705.7693 | 58,149.0733 |
FrodoKEM640 | 911.0205 | 3468.2189 | 3444.5259 | 7823.7653 |
Table 5.
The standard deviation and 95% CI values of CPU usage for the operation key generation, for each of the KEMs.
Table 5.
The standard deviation and 95% CI values of CPU usage for the operation key generation, for each of the KEMs.
KEM | Standard Deviation | 95% CI |
---|
LightSaber | 10.1671 | (60.5784, 61.8387) |
Kyber512 | 7.9088 | (49.5813, 50.56172) |
NTRUhps2048509 | 280.9294 | (7601.0573, 7635.8811) |
NTRULPr653 | 717.2908 | (9921.4756, 10,010.3903) |
FrodoKEM640 | 28.4814 | (907.0962, 910.6267) |
Table 6.
The standard deviation and 95% CI values of CPU usage for the operation encryption, for each of the KEMs.
Table 6.
The standard deviation and 95% CI values of CPU usage for the operation encryption, for each of the KEMs.
KEM | Standard Deviation | 95% CI |
---|
LightSaber | 13.2624 | (83.5572, 85.2012) |
Kyber512 | 10.1743 | (67.0337, 68.2949) |
NTRUhps2048509 | 15.4254 | (286.9363, 288.8485) |
NTRULPr653 | 1221.7108 | (18,604.4936, 18,755.9356) |
FrodoKEM640 | 57.8281 | (3461.9001, 3469.0684) |
Table 7.
The standard deviation and 95% CI values of CPU usage for the operation decryption, for each of the KEMs.
Table 7.
The standard deviation and 95% CI values of CPU usage for the operation decryption, for each of the KEMs.
KEM | Standard Deviation | 95% CI |
---|
LightSaber | 15.6096 | (100.2681, 102.2031) |
Kyber512 | 11.4246 | (80.6816, 82.0978) |
NTRUhps2048509 | 31.0725 | (682.0771, 685.9288) |
NTRULPr653 | 1651.7193 | (27,878.7323, 28,083.4778) |
FrodoKEM640 | 54.3391 | (3438.7026, 3445.4384) |
Table 8.
Number of packets transmitted during the connection. The best-performing is Kyber512, followed by the elliptic curves. The worst-performing is LightSaber, followed by NTRUhps2048509.
Table 8.
Number of packets transmitted during the connection. The best-performing is Kyber512, followed by the elliptic curves. The worst-performing is LightSaber, followed by NTRUhps2048509.
KEM | Mean | Maximum | Standard Deviation | 95% CI |
---|
Kyber512 | 24.086 | 27 | 0.2326 | (24.0716, 24.1004) |
LightSaber | 30.086 | 36 | 0.5818 | (30.0499, 30.1221) |
P-256 | 27.938 | 30 | 0.3579 | (27.9158, 27.9602) |
NTRUhps2048509 | 28.051 | 32 | 0.9249 | (27.9939, 28.1083) |
X25519 | 27.926 | 30 | 0.4129 | (27.9004, 27.9516) |
Table 9.
The mean and maximum number of bytes each KEM sends during the connection. The elliptic curves perform better then the post-quantum ones. Kyber512 performs best, followed by NTRUhps2048509 and LightSaber.
Table 9.
The mean and maximum number of bytes each KEM sends during the connection. The elliptic curves perform better then the post-quantum ones. Kyber512 performs best, followed by NTRUhps2048509 and LightSaber.
KEM | Mean | Maximum | Standard Deviation | 95% CI |
---|
Kyber512 | 8236.481 | 8442 | 31.2484 | (8234.4812, 8238.3547) |
LightSaber | 9168.695 | 9556 | 38.4691 | (9166.3132, 9171.0768) |
P-256 | 7748.311 | 7876 | 23.5715 | (7746.85, 7749.7719 |
NTRUhps2048509 | 9016.969 | 9284 | 278.1027 | (8999.7323, 9034.2057) |
X25519 | 7681.331 | 7807 | 627.1832 | (7642.4385, 7720.1835) |
Table 10.
Statistics on the connection durations, for a better appreciation of its behavior. The best performing is Kyber512, followed by the elliptic curves. The worst is NTRUhps2048509, followed by LightSaber.
Table 10.
Statistics on the connection durations, for a better appreciation of its behavior. The best performing is Kyber512, followed by the elliptic curves. The worst is NTRUhps2048509, followed by LightSaber.
KEM | Mean | Maximum | Standard Deviation | 95% CI |
---|
Kyber512 | 0.2133 | 2.8836 | 0.0931 | (0.2075, 0.2191) |
LightSaber | 14.9727 | 15.8695 | 0.0353 | (14.9705, 14.9748) |
P-256 | 14.9884 | 15.1039 | 0.0147 | (14.9875, 14.9893) |
NTRUhps2048509 | 15.1022 | 146.4901 | 4.1642 | (14.8441, 15.3603) |
X25512 | 14.9901 | 16.2665 | 0.0455 | (14.9873, 14.9929) |
Table 11.
Summary of the theoretical aspects of the key exchange mechanisms considered so far, including key size and security level in bits. Recall that all have IND-CCA2 theoretical strength.
Table 11.
Summary of the theoretical aspects of the key exchange mechanisms considered so far, including key size and security level in bits. Recall that all have IND-CCA2 theoretical strength.
KEM | Security Level (bits) | Key Size (Public/Private) |
---|
Kyber512 | 128 | 1623/800 |
LightSaber | 128 | 672/992 |
NTRUhps2048509 | 128 | 699/935 |
NTRULPr652 | 192 | 897/1125 |
FrodoKEM640 | 128 | 9616/19,888 |
P-256 | 128 | 256 |
X25519 | 128 | 256 |
Table 12.
Summary of the memory and CPU usage for each of the KEMs involved. For the CPU usage, we present the total amount of time the KEMs use it.
Table 12.
Summary of the memory and CPU usage for each of the KEMs involved. For the CPU usage, we present the total amount of time the KEMs use it.
KEM | Memory (bytes) | CPU (ms) |
---|
Kyber512 | 18,528 | 204.0401 |
LightSaber | 994 | 255.3597 |
NTRUhps2048509 | 18,080 | 8598.9120 |
NTRULPr653 | 14,064 | 58,149.0733 |
FrodoKEM640 | 921,360 | 7823.7653 |
Table 13.
Summary of the bytes, packets and the duration of the connection for each test. We present the mean value for each field.
Table 13.
Summary of the bytes, packets and the duration of the connection for each test. We present the mean value for each field.
KEM | Bytes | Packets | Duration (ms) |
---|
Kyber512 | 8236 | 24 | 0.2133 |
NTRUhps2048509 | 9016 | 28 | 15.1022 |
P-256 | 7748 | 28 | 14.9884 |
X25519 | 7681 | 28 | 14.9901 |
Table 14.
General guidelines for selecting the appropiate post-quantum cryptosystem for resource-constrained devices, according to its performance and security.
Table 14.
General guidelines for selecting the appropiate post-quantum cryptosystem for resource-constrained devices, according to its performance and security.
KEM | Advantages | Disadvantages | Guidelines |
---|
Kyber512 | Minimal usage of CPU | Uses the most memory | Use for minimal energy requirement |
| Minimal usage of Wi-Fi | Greater public-key size | Use for fast computing and handshake |
| Smallest private key | | Use when suficient memory available |
| Fastest connection | | |
LightSaber | Minimal usage of the memory | Greater Wi-Fi usage | Use when little memory is available |
| Smaller public-key size | Greater CPU usage | Use when there is sufficient energy available |
| | | Use when energy requirements can be traded |
| | | off with resource requirements |
NTRUhps2048509 | Smaller private-key size | Worst-performing overall | Use when no other available |
| Use less memory than Kyber512 | | |