SM9 (cryptography standard)
SM9 is a Chinese national cryptography standard for Identity Based Cryptography issued by the Chinese State Cryptographic Authority in March 2016.{{Cite web|url=http://www.oscca.gov.cn/sca/xxgk/2016-03/28/content_1002407.shtml|title=国家密码管理局关于发布《SM9标识密码算法》等2项密码行业标准公告(国密局公告第30号)_国家密码管理局|website=www.oscca.gov.cn|access-date=2019-03-18}} It is represented by the Chinese National Cryptography Standard (Guomi), GM/T 0044-2016 SM9. The standard contains the following components:
- (GM/T 0044.1) The Identity-Based Asymmetric Cryptography Algorithm
- (GM/T 0044.2) The Identity-Based Digital Signature Algorithm which allows one entity to digitally sign a message which can be verified by another entity.
- (GM/T 0044.3) The Identity-Based Key Establishment and Key Wrapping
- (GM/T 0044.4) The Identity Based Public-Key Encryption Key Encapsulation Algorithm which allows one entity to securely send a symmetric key to another entity.
Identity Based Cryptography
Identity Based Cryptography is a type of public key cryptography that uses a widely known representation of an entity's identity (name, email address, phone number etc.) as the entity's public key. This eliminates the need to have a separate public key bound by some mechanism (such as a digitally signed public key certificate) to the identity of an entity. In Identity Based Cryptography (IBC) the public key is often taken as the concatenation of an entity's Identity and a validity period for the public key.
In Identity Based Cryptography, one or more trusted agents use their private keys to compute an entity's private key from their public key (Identity and Validity Period). The corresponding public keys of the trusted agent or agents are known to everyone using the network. If only one trusted agent is used that trusted agent can compute all the private keys for users in the network. To avoid that state, some researchers propose using multiple trusted agents in such a way that more than one of them need to be compromised in order to compute individual public keys.
Chinese Cryptographic Standards
The SM9 Standard adopted in 2016 is one of a number of Chinese national cryptography standards. Other publicly available Chinese cryptographic standards are:
- SM2{{cite web|url=https://datatracker.ietf.org/doc/html/draft-shen-sm2-ecdsa-02 |title=SM2 Digital Signature Algorithm |publisher=Internet Engineering Task Force |date=2014-02-14 |accessdate=2023-11-16}} - an Elliptic Curve Diffie-Hellman key agreement and signature using a specified 256-bit elliptic curve. GM/T 0003.1: SM2 (published in 2010){{Citation|last=Guan|first=Zhi|title=GitHub - guanzhi/GM-Standards: 中华人民共和国密码行业标准(GM/T)文本.|date=2019-03-14|url=https://github.com/guanzhi/GM-Standards|access-date=2019-03-17}}
- SM3 - a 256-bit cryptographic hash function. GM/T 0004.1-2012: SM3 (published in 2010)
- SM4 - a 128-bit block cipher with a 128-bit key. GM/T 0002-2012: SM4 (published in 2012)
- ZUC, a stream cipher. GM/T 0001–2016.
The SM9 standard along with these other standards are issued by the Chinese State Cryptographic Authority. The first part of the standard SM9-1 provides an overview of the standard.
SM9 Identity Based Signature Algorithm
The Identity Based Signature Algorithm in SM9 traces its origins to an Identity Based Signature Algorithm published at Asiacrypt 2005 in the paper: "Efficient and Provably-Secure Identity-Based Signatures and Signcryption from Bilinear Maps" by Barreto, Libert, McCullagh, and Quisquater.{{Cite book|last1=Barreto|first1=Paulo S. L. M.|last2=Libert|first2=Benoît|last3=McCullagh|first3=Noel|last4=Quisquater|first4=Jean-Jacques|title=Advances in Cryptology - ASIACRYPT 2005 |chapter=Efficient and Provably-Secure Identity-Based Signatures and Signcryption from Bilinear Maps |date=2005|editor-last=Roy|editor-first=Bimal|volume=3788|series=Lecture Notes in Computer Science|language=en|publisher=Springer Berlin Heidelberg|pages=515–532|doi=10.1007/11593447_28|isbn=9783540322672|doi-access=free}} It was standardized in IEEE 1363.3 and in ISO/IEC 14888-3:2015.{{Cite web|url=https://standards.ieee.org/ieee/1363.3/3822/|title=IEEE 1363.3-2013 - IEEE Standard for Identity-Based Cryptographic Techniques using Pairings|website=IEEE|access-date=2019-03-17}}{{Cite web|url=http://www.iso.org/cms/render/live/en/sites/isoorg/contents/data/standard/06/42/64267.html|title=ISO/IEC 14888-3:2016|website=ISO|language=en|access-date=2019-03-17}}
SM9 Identity Based Key Encapsulation
The Identity Based Key Encapsulation Algorithm in SM9 traces its origins to a 2003 paper by Sakai and Kasahara titled "[https://eprint.iacr.org/2003/054.pdf ID Based Cryptosystems with Pairing on Elliptic Curve]."{{Cite journal|last1=Sakai|first1=Ryuichi|last2=Kasahara|first2=Masao|date=2003|title=ID based Cryptosystems with Pairing on Elliptic Curve|journal=Cryptology ePrint Archive |url=https://eprint.iacr.org/2003/054}} It was standardized in IEEE 1363.3, in ISO/IEC 18033-5:2015 and IETF RFC 6508.{{Cite web|url=http://www.iso.org/cms/render/live/en/sites/isoorg/contents/data/standard/05/99/59948.html|title=ISO/IEC 18033-5:2015|website=ISO|language=en|access-date=2019-03-17}}{{Cite web|url=https://tools.ietf.org/html/rfc6508.html|title=Sakai-Kasahara Key Encryption (SAKKE)|last=Groves|first=Michael|website=tools.ietf.org|language=en|access-date=2019-03-17}}
SM9 Identity Based Key Agreement
The Identity Based Key Agreement algorithm in SM9 traces its origins to a 2004 paper by McCullagh and Barreto titled, "A New Two-Party Identity-Based Authenticated Key Agreement" [https://eprint.iacr.org/2004/122.pdf].{{Cite journal|last1=McCullagh|first1=Noel|last2=Barreto|first2=Paulo S. L. M.|date=2004|title=A New Two-Party Identity-Based Authenticated Key Agreement|journal=Cryptology ePrint Archive |url=https://eprint.iacr.org/2004/122}} The International Standards Organization incorporated this identity key exchange protocol algorithm into ISO/IEC 11770–3 in 2015.{{Cite web|url=https://myibc.net/technology/policy-standard/standard.html|title=行业标准-奥联信息安全,SM9算法,基于标识的密码算法,国家商密算法,发改委指定邮件加密算法|website=myibc.net|access-date=2019-03-25}}
Implementations of SM9
An open source implementation of the SM9 algorithms is part of the [http://gmssl.org/ GMSSL] package available on GitHub.{{Citation|last=Guan|first=Zhi|title=GitHub - guanzhi/GmSSL: 支持国密SM2/SM3/SM4/SM9/ZUC/SSL的OpenSSL分支.|date=2019-03-25|url=https://github.com/guanzhi/GmSSL|access-date=2019-03-25}} The Shenzhen Aolian Information Security Technology Co (also known as Olym Tech) is also marketing a series of products that implement the SM9 algorithms.{{Cite web|url=https://myibc.net/|title=首页-奥联信息安全,SM9算法,基于标识的密码算法,国家商密算法,发改委指定邮件加密算法|website=myibc.net|access-date=2019-03-25}}
Further Information
The following links provide more detailed information on the SM9 algorithms in English:
- [https://eprint.iacr.org/2017/117.pdf The SM9 Cryptographic Schemes]{{Cite journal|last=Cheng|first=Zhaohui|date=2017|title=The SM9 Cryptographic Schemes|journal=Cryptology ePrint Archive |url=https://eprint.iacr.org/2017/117}}
- [https://tools.ietf.org/pdf/draft-wang-tls-raw-public-key-with-ibc-08.pdf Using Identity as Raw Public Key in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)]