ShāngMì 4 (SM4, 商密4) (formerlySMS4)[2] is ablock cipher, standardised for commercial cryptography in China.[3] It is used in theChinese National Standard for Wireless LANWAPI (WLAN Authentication and Privacy Infrastructure), and withTransport Layer Security.[4]
![]() | |
General | |
---|---|
Designers | Data Assurance & Communication Security Center,Chinese Academy of Sciences |
First published | 2006 (declassified; standardized March 21, 2012)[1] |
Cipher detail | |
Key sizes | 128 bits |
Block sizes | 128 bits |
Structure | unbalanced Feistel network |
Rounds | 32 |
Best publiccryptanalysis | |
Linear anddifferential attacks against 22 rounds |
SM4 was a cipher proposed for theIEEE 802.11i standard, but it has so far been rejected. One of the reasons for the rejection has been opposition to the WAPI fast-track proposal by theIEEE.[citation needed]
SM4 was published asISO/IEC 18033-3/Amd 1 in 2021.
The SM4 algorithm was drafted by Data Assurance & Communication Security Center,Chinese Academy of Sciences (CAS), and Commercial Cryptography Testing Center, National Cryptography Administration. It is mainly developed by Lü Shuwang (Chinese:吕述望). The algorithm was declassified in January, 2006, and it became a national standard (GB/T 32907-2016) in August 2016.[5]
Cipher detail
editThe SM4 cipher has a key size and a block size of 128 bits each.[6][7] Encryption or decryption of one block of data is composed of 32 rounds. A non-linearkey schedule is used to produce the round keys and the decryption uses the same round keys as for encryption, except that they are in reversed order.
Keys and key parameters
editThe length of encryption keys is 128 bits, represented as , in which is a 32-bit word. The round keys are represented by , where each is a word. It is generated by the encryption key and the following parameters:
and are words, used to generate the round keys.
Round
editEach round are computed from the four previous round outputs such that:
Where is a substitution function composed of a non-linear transform, the S-box and linear transform
S-box
editSM4's S-box is fixed for 8-bit input and 8-bit output, noted as Sbox(). As withAdvanced Encryption Standard (AES), the S-box is based on themultiplicative inverse overGF(28). The affine transforms and polynomial bases are different from that of AES, but due toaffine isomorphism it can be calculated efficiently given anAES S-Box.[8]
History
editOn March 21, 2012, the Chinese government published the industrial standard "GM/T 0002-2012 SM4 Block Cipher Algorithm", officially renaming SMS4 to SM4.[2]
A description of SM4 in English is available as anInternet Draft. It contains areference implementation inANSI C.[9]
SM4 is part of theARMv8.4-A expansion to the ARM architecture.[10] SM4 support for theRISC-V architecture was ratified in 2021 as the Zksed extension.[11]
SM4 is supported by Intel processors, starting fromArrow Lake S,Lunar Lake, Diamond Rapids and Clearwater Forest.[12]
References
edit- ^"SM4 Block Cipher Algorithm".CNNIC. 2013-12-04. Archived fromthe original on 2016-09-19. Retrieved2016-07-24.
- ^ab"Announcement No.23 of the State Cryptography Administration" (in Chinese (China)). The Office of the State Commercial Code Administration (OSCCA). 2012-03-21. Archived fromthe original on 2016-08-14. Retrieved2016-07-24.
- ^Martinkauppi, Louise Bergman; He, Qiuping; Ilie, Dragos (June 2020)."On the Design and Performance of Chinese OSCCA-approved Cryptographic Algorithms".2020 13th International Conference on Communications (COMM). pp. 119–124.doi:10.1109/COMM48946.2020.9142035.ISBN 978-1-7281-5611-8.S2CID 220668639.
- ^Yang, P (March 2021).RFC 8998.IETF.doi:10.17487/RFC8998. Retrieved2022-07-30.
- ^Lu Shuwang.Overview on SM4 Algorithm[J]. Journal of Information Security Research, 2016, 2(11): 995-1007.
- ^"无线局域网产品使用的 SMS4 密码算法"(PDF) (in Simplified Chinese). State Cryptography Administration of the People's Republic of China. Archived fromthe original(PDF) on 2007-07-10.
- ^SMS4 Encryption Algorithm for Wireless Networks
- ^Saarinen, Markku-Juhani O. (17 April 2020)."mjosaarinen/sm4ni: Demonstration that AES-NI instructions can be used to implement the Chinese Encryption Standard SM4".GitHub.
- ^Tse, Ronald; Kit, Wong; Saarinen, Markku-Juhani (22 April 2018)."The SM4 Blockcipher Algorithm And Its Modes Of Operations".tools.ietf.org.
- ^"Introducing 2017's extensions to the Arm Architecture".community.arm.com. 2 November 2017.
- ^"RISC-V Cryptography Extensions Task Group Announces Public Review of the Scalar Cryptography Extensions".riscv.org.
- ^"Intel® Architecture Instruction Set Extensions and Future Features"(PDF). Intel Corporation. December 2024. p. 1-3. Retrieved2 February 2025.
External links
edit- Linear and Differential Cryptanalysis of Reduced SMS4 Block Cipher
- Example of SMS4 implemented as a Spreadsheet
- Page of Lu Shu-wang (吕述望) (in Chinese)
- The GmSSL ProjectArchived 2020-10-21 at theWayback Machine (OpenSSL fork with GuoMi algorithms)
- [1] (ISO/IEC 18033-3:2010/Amd 1:2021 Information technology — Security techniques — Encryption algorithms — Part 3: Block ciphers — Amendment 1: SM4 )