본문 바로가기
KERD
논문KCI 등재

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)

  1. C. Beierle, "Schwaemm and esch : lightweight authenticated encryption and hashing using the sparkle permutation family" (2019), NIST
  2. "ARM A64 Instruction Set Architecture"[URL]
  3. J. Song, "High-Speed Fault Attack Resistant Implementation of PIPO Block Cipher on ARM Cortex-A", IEEE Access, 9, pp.162893~162908 (2021)
  4. J. Song, "Secure and fast implementation of ARX-Based block ciphers using ASIMD instructions in ARMv8 platforms", IEEE Access, 8, pp.193138~193153 (2020)
  5. 서화정, "ARMv8 상에서 LEA 암호화 고속 구현", 한국정보통신학회논문지, 21(10), pp.1929~1934 (2017), 한국정보통신학회[DOI]
  6. D. Dinu, "Design strategies for ARX with provable bounds : Sparx and LAX", Advances in Cryptology–ASIACRYPT 2016, 10031, pp.484~513 (2016)
  7. C. Beierle, "Alzette : A 64-Bit ARX-box : (Feat. CRAX and TRAX)", Advances in Cryptology–CRYPTO 2020, 12172, pp.419~448 (2020)
  8. Report on lightweight cryptography, "K. McKay", National Institute of Standards and Technology, ~, pp.NIST Internal or Interagency Report (NISTIR) 8114 (Draft) (2016)
  9. C. Dobraunig, "Ascon v1. 2 : Lightweight authenticated encryption and hashing", Journal of Cryptology, 34(33), pp.1~42 (2021)
  10. B. Menink, "Elephant v2" (2021)
  11. S, Banik, "Gift-cofb", Cryptology ePrint Archive (2020)
  12. M. Hell, "Grain-128AEADv2-A lightweight AEAD stream cipher", NIST Lightweight Cryptography, Finalists (2021)
  13. W. K. Lee, "Efficient Implementation of Lightweight Hash Functions on GPU and Quantum Computers for IoT Applications", IEEE Access, 10, pp.59661~59674 (2022)
  14. 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)
  15. Y. Yang, "Grover on SPARKLE", Information Security Applications: WISA 2022, 13720, pp.44~59 (2023)

관련 논문AI추천

이 간행물의 다른 논문 (18건)