| Literature DB >> 35458970 |
Alan Torres-Alvarado1, Luis Alberto Morales-Rosales2, Ignacio Algredo-Badillo3, Francisco López-Huerta4, Mariana Lobato-Báez5, Juan Carlos López-Pimentel6.
Abstract
Cryptography has become one of the vital disciplines for information technology such as IoT (Internet Of Things), IIoT (Industrial Internet Of Things), I4.0 (Industry 4.0), and automotive applications. Some fundamental characteristics required for these applications are confidentiality, authentication, integrity, and nonrepudiation, which can be achieved using hash functions. A cryptographic hash function that provides a higher level of security is SHA-3. However, in real and modern applications, hardware implementations based on FPGA for hash functions are prone to errors due to noise and radiation since a change in the state of a bit can trigger a completely different hash output than the expected one, due to the avalanche effect or diffusion, meaning that modifying a single bit changes most of the desired bits of the hash; thus, it is vital to detect and correct any error during the algorithm execution. Current hardware solutions mainly seek to detect errors but not correct them (e.g., using parity checking or scrambling). To the best of our knowledge, there are no solutions that detect and correct errors for SHA-3 hardware implementations. This article presents the design and a comparative analysis of four FPGA architectures: two without fault tolerance and two with fault tolerance, which employ Hamming Codes to detect and correct faults for SHA-3 using an Encoder and a Decoder at the step-mapping functions level. Results show that the two hardware architectures with fault tolerance can detect up to a maximum of 120 and 240 errors, respectively, for every run of KECCAK-p, which is considered the worst case. Additionally, the paper provides a comparative analysis of these architectures with other works in the literature in terms of experimental results such as frequency, resources, throughput, and efficiency.Entities:
Keywords: FPGA architectures; SHA-3; VANET; fault tolerance; security
Year: 2022 PMID: 35458970 PMCID: PMC9031777 DOI: 10.3390/s22082985
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1Automotive system affected by cosmic rays.
Comparison with Related Work.
| Work | Algorithm | Application | Techniques | Implementation | Results |
|---|---|---|---|---|---|
| This work | SHA-3 | authentication in | HC and TMR | Virtex-7 FPGA | Throughput: 234.63 Mbps |
| Luo et al. [ | SHA-3 | protection against faults | parity checking | NanGate FreePDK45 | Area: 52,867 um |
| Bayat et al. [ | SHA-3 | protection against faults | rotated operands | ASIC | Area: 692.24 um |
| Juliato and | SHA-256 | security in satellites | HC and TMR | Altera Cyclone II | Area: 6232 LEs |
| Michail et al. [ | SHA1 | security for protocols | parity codes and | ASIC | Area: 209,624 um |
Round and Round Constants algorithms.
| 0 | 0000000000000001 | 12 | 000000008000808B |
| 1 | 0000000000008082 | 13 | 800000000000008B |
| 2 | 800000000000808A | 14 | 8000000000008089 |
| 3 | 8000000080008000 | 15 | 8000000000008003 |
| 4 | 000000000000808B | 16 | 8000000000008002 |
| 5 | 0000000080000001 | 17 | 8000000000000080 |
| 6 | 8000000080008081 | 18 | 000000000000800A |
| 7 | 8000000000008009 | 19 | 800000008000000A |
| 8 | 000000000000008A | 20 | 8000000080008081 |
| 9 | 0000000000000088 | 21 | 8000000000008080 |
| 10 | 0000000080008009 | 22 | 0000000080000001 |
| 11 | 000000008000000A | 23 | 8000000080008008 |
Figure 2Codeword.
Figure 3Development of architectures from ArchSM to ArchTMR_HC.
Figure 4System model to implement SHA-3 architectures in VANETs.
Figure 5SHA-3 general architecture.
Figure 6ArchSM at Round level and ArchSM state machine at KECCAK-p level. (a) ArchSM at Round level. (b) ArchSM state machine at KECCAK-p level.
Figure 7ArchMM at Round level and ArchMM state machine at KECCAK-p level. (a) ArchMM at Round level. (b) ArchMM state machine at KECCAK-p level.
Figure 8ArchHC at Round level and ArchHC state machine at KECCAK-p level. (a) ArchHC at Round level. (b) ArchHC state machine at KECCAK-p level.
Figure 9ArchTMR_HC at Round level and ArchTMR_HC state machine at KECCAK-p level. (a) ArchTMR_HC at Round level. (b) ArchTMR_HC state machine at KECCAK-p level.
Results comparison of SHA-3 hardware architectures without and with fault tolerance.
| Architecture | Hash | Latency | LUT | FF | Minimum Period | Max. Frequency | Throughput | Efficiency |
|---|---|---|---|---|---|---|---|---|
| ArchSM | 224 | 27 | 2339 | 2361 | 4.38 | 228.25 | 13,526 | 5.78 |
| 256 | 27 | 2453 | 2457 | 5.14 | 194.32 | 11,516 | 4.69 | |
| 384 | 27 | 2346 | 2841 | 4.27 | 233.75 | 13,852 | 5.90 | |
| 512 | 27 | 2332 | 3225 | 4.33 | 230.62 | 13,667 | 5.86 | |
| ArchMM | 224 | 199 | 2947 | 10,124 | 10.47 | 95.46 | 768 | 0.26 |
| 256 | 199 | 2947 | 10,188 | 9.99 | 100.01 | 804 | 0.27 | |
| 384 | 199 | 2947 | 10,444 | 10.43 | 95.80 | 770 | 0.26 | |
| 512 | 199 | 2947 | 10,700 | 10.51 | 95.10 | 765 | 0.25 | |
| ArchHC | 224 | 299 | 28,703 | 18,192 | 21.79 | 45.89 | 246 | 0.0085 |
| 256 | 299 | 28,702 | 18,256 | 24.33 | 41.09 | 220 | 0.0076 | |
| 384 | 299 | 28,695 | 18,512 | 20.85 | 47.95 | 257 | 0.0089 | |
| 512 | 299 | 27,224 | 18,768 | 19.37 | 51.60 | 276 | 0.010 | |
| ArchTMR_HC | 224 | 443 | 27,226 | 26,197 | 15.72 | 63.58 | 230 | 0.0084 |
| 256 | 443 | 27,233 | 26,261 | 16.95 | 58.97 | 213 | 0.007 | |
| 384 | 443 | 27,244 | 26,517 | 15.70 | 63.66 | 230 | 0.0084 | |
| 512 | 443 | 27,222 | 26,773 | 15.39 | 64.96 | 235 | 0.0086 |
Error detection and correction algorithms execution.
| (1) First seven bits are considered | |
| m = 1001010 | |
| (2) Four parity bits are added using the Hamming Encoder ( | |
| (3) One error is generated in a random bit | |
| (4) The error is detected and corrected when the data are transmitted through the Hamming Decoder | |
| (5) The original message | |
| (6) Errors are generated in a random module | |
| (7) The voting system determines the output by a majority vote | |
| outputVS = out | |
Hamming Encoder and Decoder processes for error detection and correction in the example of seven bits.
| ( | ||||||||||||
|
|
|
|
|
|
|
|
|
|
|
| ||
| position | 1011 | 1010 | 1001 | 1000 | 0111 | 0110 | 0101 | 0100 | 0011 | 0010 | 0001 | |
| original word | 1 | 0 | 0 | 1 | 0 | 1 | 0 | |||||
|
| 1 | 0 | 1 | 1 | 0 | 1 | ||||||
|
| 1 | 0 | 1 | 0 | 0 | 0 | ||||||
|
| 1 | 0 | 1 | 0 | ||||||||
|
| 1 | 0 | 0 | 1 | ||||||||
| original + parity | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | |
| ( | ||||||||||||
|
|
|
|
|
|
|
|
|
|
|
| parity check | |
| position | 1011 | 1010 | 1001 | 1000 | 0111 | 0110 | 0101 | 0100 | 0011 | 0010 | 0001 | |
| original + parity | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | |
|
| 1 | 0 | 0 | 1 | 0 | 1 | 1 | |||||
|
| 1 | 0 | 0 | 0 | 0 | 0 | 1 | |||||
|
| 0 | 0 | 1 | 0 | 1 | |||||||
|
| 1 | 0 | 0 | 1 | 0 | |||||||
Incremental costs.
| ( | |||
| Architecture/Hash | Throughput | Performance | |
| ArchSM | 224 | 13,526.42 | - |
| 256 | 11,515.59 | - | |
| 384 | 13,852.09 | - | |
| 512 | 13,666.80 | - | |
| ArchHC | 224 | 245.57 | 98.18 |
| 256 | 219.92 | 98.09 | |
| 384 | 256.62 | 98.14 | |
| 512 | 276.14 | 97.97 | |
| ArchTMR_HC | 224 | 229.66 | 98.30 |
| 256 | 213.01 | 98.15 | |
| 384 | 229.95 | 98.33 | |
| 512 | 234.63 | 98.28 | |
| ( | |||
| Architecture/Hash | Throughput | Performance | |
| ArchMM | 224 | 767.56 | - |
| 256 | 804.10 | - | |
| 384 | 770. 28 | - | |
| 512 | 764.64 | - | |
| ArchHC | 224 | 245.57 | 68 |
| 256 | 219.92 | 72.65 | |
| 384 | 256.62 | 66.68 | |
| 512 | 276.14 | 63.88 | |
| ArchTMR_HC | 224 | 229.66 | 70.07 |
| 256 | 213.01 | 73.50 | |
| 384 | 229.95 | 70.14 | |
| 512 | 234.63 | 69.31 | |
Figure 10Error injection for ArchHC and ArchTMR_HC. (a) Error injection in ArchHC at Round level. (b) Error injection in ArchTMR_HC at Round level.
Figure 11Error coverage capacity.
Results comparison among different architectures.
| Design | Hash | Latency | LUT’s | FF | Area | Timing | Frequency | Throughput | Efficiency 1 | Efficiency 2 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Without Fault | ArchSM | 224 | 27 | 2339 | 2361 | - | 4.38 | 228.25 | 13,526 | 5.78 | - |
| 256 | 27 | 2453 | 2457 | - | 5.14 | 194.32 | 11,516 | 4.69 | – | ||
| 384 | 27 | 2346 | 2841 | - | 4.27 | 233.75 | 13,852 | 5.90 | - | ||
| 512 | 27 | 2332 | 3225 | - | 4.33 | 230.62 | 13,667 | 5.86 | - | ||
| ArchMM | 224 | 199 | 2947 | 10,124 | - | 10.47 | 95.46 | 768 | 0.26 | - | |
| 256 | 199 | 2947 | 10,188 | - | 9.99 | 100.01 | 804 | 0.27 | - | ||
| 384 | 199 | 2947 | 10,444 | - | 10.43 | 95.80 | 770 | 0.26 | - | ||
| 512 | 199 | 2947 | 10,700 | - | 10.51 | 95.10 | 765 | 0.25 | - | ||
| Moumni [ | 224 | 24 | - | - | - | - | - | 19,860 | - | 13.87 | |
| 256 | 24 | - | - | - | - | - | 18,750 | - | 13.10 | ||
| 384 | 24 | - | - | - | - | - | 14,340 | - | 10.02 | ||
| 512 | 24 | - | - | - | - | - | 9,930 | - | 6.93 | ||
| 224 | 2 | - | - | - | - | - | 33,350 | - | 2.14 | ||
| 256 | 2 | - | - | - | - | - | 31,500 | - | 2.02 | ||
| 384 | 2 | - | - | - | - | - | 24,090 | - | 1.55 | ||
| 512 | 2 | - | - | - | - | - | 16,670 | - | 1.07 | ||
| Gangwar [ | - | 24 | - | - | - | - | 309.6 | 14,040 | - | 11.24 | |
| Error Detection | Luo [ | - | - | - | - | 52,867.2 | 4.5 | - | - | - | - |
| Bayat [ | - | - | - | - | 69.24 | - | 1192 | 25,400 | - | - | |
| Error Detection | ArchHC | 224 | 299 | 28,703 | 18,192 | - | 21.79 | 45.89 | 246 | 0.008555 | - |
| 256 | 299 | 28,702 | 18,256 | - | 24.33 | 41.09 | 220 | 0.0076 | - | ||
| 384 | 299 | 28,695 | 18,512 | - | 20.85 | 47.95 | 257 | 0.0089 | - | ||
| 512 | 299 | 27,224 | 18,768 | - | 19.37 | 51.60 | 276 | 0.010 | - | ||
| ArchTMR_HC | 224 | 443 | 27,226 | 26,197 | - | 15.72 | 63.58 | 230 | 0.0084 | - | |
| 256 | 443 | 27,233 | 26,261 | - | 16.95 | 58.97 | 213 | 0.007 | - | ||
| 384 | 443 | 27,244 | 26,517 | - | 15.70 | 63.66 | 230 | 0.0084 | - | ||
| 512 | 443 | 27,222 | 26,773 | - | 15.39 | 64.96 | 235 | 0.0086 | - |