ARMv8 환경에서 NIST LWC SPARKLE 효율적 구현
Efficient Implementation of NIST LWC SPARKLE on 64-Bit ARMv8
1
조회
0
다운로드
0
인용
0
참고문헌
키워드
초록
본 논문에서는 NIST LWC 최종후보 중 하나인 SPARKLE을 64-비트 ARMv8 프로세서 상에서 최적화하는 방안에 대해 제안한다. 제안 방법은 두 가지로서 ARM A64 명령어를 이용한 구현과 NEON ASIMD 명령어를 이용한 구현이다. A64 기반 제안구현은 ARMv8 상에서 가용한 레지스터를 효율적으로 사용할 수 있도록 레지스터 스케줄링을 수행하여 최적화한다. 최적화된 A64 기반 제안구현을 활용할 경우 Raspberry Pi 4B에서 C언어 참조구현보다 1.69~1.81배 빠른 속도를 얻을 수 있다. 두 번째로, ASIMD 기반 제안구현은 하나의 벡터 명령어를 통해 3개 이상의 ARX-box를 병렬적으로 수행하도록 데이터를 병렬적으로 구성하여 최적화한다. 최적화된 ASIMD 기반 제안구현은 A64 기반 제안구현보다 일반적인 속도는 떨어지지만, SPARKLE256에서 SPARKLE512로 블록 크기가 증가할 때 A64 기반 제안구현에서는 속도가 2.1배 느려지는 것에 비해 ASIMD 기반 제안구현에서는 1.2배밖에 느려지지 않다는 장점이 있다. 따라서 기존 SPARKLE보다 더 큰 블록 크기를 갖는 SPARKLE 변형 블록 암호 또는 순열 설계 시 ASIMD 기반 제안구현이 더 효율적이므로 유용한 자료로써 활용 가능하다.
Abstract
In this paper, we propose optimization methods for implementing SPARKLE, one of the NIST LWC finalists, on a 64-bit ARMv8 processor. The proposed methods consist of two approaches: an implementation using ARM A64 instructions and another using NEON ASIMD instructions. The A64-based implementation is optimized by performing register scheduling to efficiently utilize the available registers on the ARMv8 architecture. By utilizing the optimized A64-based implementation, we can achieve speeds that are 1.69 to 1.81 times faster than the C reference implementation on a Raspberry Pi 4B. The ASIMD-based implementation, on the other hand, optimizes data by parallelizing the ARX-boxes to perform more than three of them concurrently through a single vector instruction. While the general speed of the optimized ASIMD-based implementation is lower than that of the A64-based implementation, it only slows down by 1.2 times compared to the 2.1 times slowdown observed in the A64-based implementation as the block size increases from SPARKLE256 to SPARKLE512. This is an advantage of the ASIMD-based implementation. Therefore, the ASIMD-based implementation is more efficient for SPARKLE variant block cipher or permutation designs with larger block sizes than the original SPARKLE, making it a useful resource.
참고문헌 (15)
- C. Beierle, "Schwaemm and esch : lightweight authenticated encryption and hashing using the sparkle permutation family" (2019), NIST
- "ARM A64 Instruction Set Architecture"[URL]
- J. Song, "High-Speed Fault Attack Resistant Implementation of PIPO Block Cipher on ARM Cortex-A", IEEE Access, 9, pp.162893~162908 (2021)
- J. Song, "Secure and fast implementation of ARX-Based block ciphers using ASIMD instructions in ARMv8 platforms", IEEE Access, 8, pp.193138~193153 (2020)
- 서화정, "ARMv8 상에서 LEA 암호화 고속 구현", 한국정보통신학회논문지, 21(10), pp.1929~1934 (2017), 한국정보통신학회[DOI]
- D. Dinu, "Design strategies for ARX with provable bounds : Sparx and LAX", Advances in Cryptology–ASIACRYPT 2016, 10031, pp.484~513 (2016)
- C. Beierle, "Alzette : A 64-Bit ARX-box : (Feat. CRAX and TRAX)", Advances in Cryptology–CRYPTO 2020, 12172, pp.419~448 (2020)
- Report on lightweight cryptography, "K. McKay", National Institute of Standards and Technology, ~, pp.NIST Internal or Interagency Report (NISTIR) 8114 (Draft) (2016)
- C. Dobraunig, "Ascon v1. 2 : Lightweight authenticated encryption and hashing", Journal of Cryptology, 34(33), pp.1~42 (2021)
- B. Menink, "Elephant v2" (2021)
- S, Banik, "Gift-cofb", Cryptology ePrint Archive (2020)
- M. Hell, "Grain-128AEADv2-A lightweight AEAD stream cipher", NIST Lightweight Cryptography, Finalists (2021)
- W. K. Lee, "Efficient Implementation of Lightweight Hash Functions on GPU and Quantum Computers for IoT Applications", IEEE Access, 10, pp.59661~59674 (2022)
- S, Khan, "Area-time Efficient Implementation of NIST Lightweight Hash Functions Targeting IoT Applications", IEEE Internet of Things Journal, 10(9), pp.8083~8095 (2022)
- Y. Yang, "Grover on SPARKLE", Information Security Applications: WISA 2022, 13720, pp.44~59 (2023)
