Optimized Implementation of SM4 on AVR Microcontrollers, RISC-V Processors, and ARM Processorsopen access
- Authors
- Kwon, Hyeokdong; Kim, Hyunjun; Eum, Siwoo; Sim, Minjoo; Kim, Hyunji; Lee, Wai-Kong; Hu, Zhi; Seo, Hwajeong
- Issue Date
- Aug-2022
- Publisher
- IEEE-INST ELECTRICAL ELECTRONICS ENGINEERS INC
- Keywords
- Program processors; Ciphers; Registers; Microcontrollers; Cryptography; Reduced instruction set computing; Encryption; 8-bit AVR microcontrollers; 32-bit RISC-V processors; 64-bit ARM processors; software implementation; SM4 block cipher
- Citation
- IEEE ACCESS, v.10, pp.80225 - 80233
- Journal Title
- IEEE ACCESS
- Volume
- 10
- Start Page
- 80225
- End Page
- 80233
- URI
- https://scholarworks.bwise.kr/gachon/handle/2020.sw.gachon/85625
- DOI
- 10.1109/ACCESS.2022.3195217
- ISSN
- 2169-3536
- Abstract
- At 2003, the SM4 block cipher was introduced that is a Chinese domestic cryptographic. It is mandated in the Chinese National Standard for Wireless LAN Wired Authentication and Privacy Infrastructure (WAPI), because the algorithm was developed for use in wireless sensor networks to provide safety network environment. The SM4 block cipher uses a 128-bit block size and a 32-bit round key. It consists of 32 rounds and one reverse translation R. In this paper, we present the optimized implementation of the SM4 block cipher on 8-bit AVR microcontrollers, which are widely used in wireless sensor devices; the optimized implementation of the SM4 block cipher on 32-bit RISC-V processors, which are open-source-based computer architectures, and the optimized implementation of SM4 on 64-bit ARM processors with parallel computation, which are widely used in smartphones and tablets. In the AVR microcontroller, three versions are implemented for various purposes, including speed-optimization, memory-optimization, and code size-optimization. As a result, the speed-optimization, memory-optimization, and code size-optimization versions achieved 205.2 cycles per byte, 213.3 cycles per byte, and 207.4 cycles per byte, respectively. This is faster than the reference implementation written in C language (1670.7 cycles per byte). The implementation on 32-bit RISC-V processors achieved 128.8 cycles per byte. This is faster than the reference implementation written in C language (345.7 cycles per byte). The implementation on 64-bit ARM processors achieved 8.62 cycles per byte. This is faster than the reference implementation written in C language (120.07 cycles per byte).
- Files in This Item
- There are no files associated with this item.
- Appears in
Collections - ETC > 1. Journal Articles
![qrcode](https://api.qrserver.com/v1/create-qr-code/?size=55x55&data=https://scholarworks.bwise.kr/gachon/handle/2020.sw.gachon/85625)
Items in ScholarWorks are protected by copyright, with all rights reserved, unless otherwise indicated.