DOI QR코드

DOI QR Code

An Optimized Hardware Implementation of SHA-3 Hash Functions

SHA-3 해시 함수의 최적화된 하드웨어 구현

  • Kim, Dong-Seong (School of Electronic Engineering, Kumoh National Institute of Technology) ;
  • Shin, Kyung-Wook (School of Electronic Engineering, Kumoh National Institute of Technology)
  • Received : 2018.12.19
  • Accepted : 2018.12.22
  • Published : 2018.12.31

Abstract

This paper describes a hardware design of the Secure Hash Algorithm-3 (SHA-3) hash functions that are the latest version of the SHA family of standards released by NIST, and an implementation of ARM Cortex-M0 interface for security SoC applications. To achieve an optimized design, the tradeoff between hardware complexity and performance was analyzed for five hardware architectures, and the datapath of round block was determined to be 1600-bit on the basis of the analysis results. In addition, the padder with a 64-bit interface to round block was implemented in hardware. A SoC prototype that integrates the SHA-3 hash processor, Cortex-M0 and AHB interface was implemented in Cyclone-V FPGA device, and the hardware/software co-verification was carried out. The SHA-3 hash processor uses 1,672 slices of Virtex-5 FPGA and has an estimated maximum clock frequency of 289 Mhz, achieving a throughput of 5.04 Gbps.

본 논문에서는 NIST에서 발표한 Secure Hash Algorithm(SHA) 표준의 최신 버전인 SHA-3 해시 함수의 하드웨어 구현과 함께 보안 SoC 응용을 위한 ARM Cortex-M0 인터페이스 구현에 대해 기술한다. 최적화된 설계를 위해 5 가지 하드웨어 구조에 대해 하드웨어 복잡도와 성능의 교환조건을 분석하였으며, 분석 결과를 토대로 라운드 블록의 데이터패스를 1600-비트로 결정하였다. 또한, 라운드 블록과 64-비트 인터페이스를 갖는 패더를 하드웨어로 구현하였다. SHA-3 해시 프로세서, Cortex-M0 그리고 AHB 인터페이스를 집적하는 SoC 프로토타입을 Cyclone-V FPGA 디바이스에 구현하여 하드웨어/소프트웨어 통합 검증을 수행하였다. SHA-3 프로세서는 Virtex-5 FPGA에서 1,672 슬라이스를 사용하였으며, 최대 289 Mhz의 클록 주파수로 동작하여 5.04 Gbps의 처리율을 갖는 것으로 예측되었다.

Keywords

JGGJB@_2018_v22n4_886_f0001.png 이미지

Fig. 1. 3-D array representation of state. 그림 1. 3차원 배열로 표현된 state

JGGJB@_2018_v22n4_886_f0002.png 이미지

Fig. 2. Sponge construction of SHA-3. 그림 2. SHA-3의 스폰지 구조

JGGJB@_2018_v22n4_886_f0003.png 이미지

Fig. 3. Architectures of SHA-3 hash processor depending on datapath bit-width. 그림 3. 데이터패스 크기에 따른 SHA-3 해시 프로세서의 구조

JGGJB@_2018_v22n4_886_f0004.png 이미지

Fig. 4. Performance analysis results for determining SHA-3 hash processor architecture. 그림 4. SHA-3 해시 프로세서의 아키텍처 결정을 위한 성능분석 결과

JGGJB@_2018_v22n4_886_f0005.png 이미지

Fig. 5. Architecture of SHA-3 processor. 그림 5. SHA-3 프로세서의 구조

JGGJB@_2018_v22n4_886_f0006.png 이미지

Fig. 6. FSM of Padder block. 그림 6. Padder 블록의 유한상태머신

JGGJB@_2018_v22n4_886_f0007.png 이미지

Fig. 7. Round block. 그림 7. 라운드 블록

JGGJB@_2018_v22n4_886_f0008.png 이미지

Fig. 8. KECCAK-p permutation block. 그림 8. KECCAK-p 순열 변환 블록

JGGJB@_2018_v22n4_886_f0009.png 이미지

Fig. 9. Timing diagram of SHA-3 hash processor. 그림 9. SHA-3 해시 프로세서의 타이밍 도

JGGJB@_2018_v22n4_886_f0010.png 이미지

Fig. 10. Cortex-M0 interface of SHA-3 slave. 그림 10. SHA-3 슬레이브의 Cortex-M0 인터페이스

JGGJB@_2018_v22n4_886_f0011.png 이미지

Fig. 11. HW/SW co-verification of SHA-3 processor and Cortex-M0 with FPGA implementation. 그림 11. FPGA 구현에 의한 SHA-3 프로세서와 Cortex-M0의 하드웨어/소프트웨어 통합 검증

Table. 1. Comparison of SHA-3 hash processors. 표 1. SHA-3 해시 프로세서 비교

JGGJB@_2018_v22n4_886_t0001.png 이미지

References

  1. NIST Std. FIPS-197, Advanced Encryption Standard, National Institute of Standard and Technology (NIST), 2001.
  2. KS X 1213, 128 bit Block Encryption Algorithm ARIA, Korean Agency for Technology and Standards, 2004.
  3. R. Rivest, A. Shamir and L. Adleman, "A method for obtaining Digital Signatures and Public-Key Crypto-system," Communications of Association for Computing Machinery (ACM), vol.21, no.2, pp.120-126, 1978. DOI:10.1145/359340.359342
  4. NIST Std. FIPS PUB 186-2, Digital Signature Mechanism with Appendix (Part 3) Korean Certificate-based Digital Signature Algorithm using Elliptic Curve, Telecommu-nications Technology Association, 2012.
  5. TTA std. TTAK.KO-12.0011/R1, Hash Function Standard-Part2: Hash Function Algorithm Standard (HAS-160), Telecommu-nications Technology Association (TTA), 2000.
  6. NIST std. FIPS 180-2, Secure Hash Standard (SHS), National Institute of Standard and Technology (NIST), 2001.
  7. P. Barreto and V. Rijmen, "The Whirlpool Hashing Function," pp.1-20, 2003.
  8. National Institute of Standards and Technology. FIPS PUB 202-SHA3 Standard: Permutation-Based Hash and Extendable-Output function, 2015.
  9. D. S. Kim and K. W. Shin, "Analysis of Optimal Design conditions for SHA3-512 Hash Function," Proceedings of 2018 2nd Conference of the Korea Institute of Information and Communication Engineering, vol.22, no.2, pp.187-189, Oct. 2018.
  10. D. S. Kim and K. W. Shin, "A Hardware Implementation of SHA3 Hash Processor using Cortex-M0," Proceedings of 2019 International Conference on Electronics, Information, and Communication (ICEIC 2019), Accepted.
  11. M. M. Wong, J. Haj-Yahya, S. Sau and A. Chattopadhyay," A New High Throughput and Area Efficient SHA-3 Implementation," Proceedings of 2018 IEEE International Symposium on Circuits and Systems (ISCAS), Florence, pp.1-5, 2018.
  12. G. Provelengios et al, "FPGA-Based Design Approaches of Keccak Hash Function," Proceedings of 15th Euromicro Conference on Digital System Design, Izmir, Turcky, pp.648-653, 2012. DOI:10.1109/DSD.2012.63
  13. S. Bayat-Sarma et al, "Efficient and Concurrent Reliable Realization of the Secure Cryptographic SHA-3 Algorithm," IEEE Transactions on CAD of Integrated Circuit and System, vol.33, no.7, pp.1105-1109, 2014. DOI:10.1109/TCAD.2014.2307002
  14. B. Y. Choi, "Efficient Hardware Design of Hash Processor Supporting SHA-3 and SHAKE256 Algorithms," Journal of the Korea Institute of Information and Communication Engineering, vol.21, no.6, pp.1075-1082, 2017. DOI:10.6109/jkiice.2017.21.6.1075