Valid

GB/T 32918.2-2016Information security technology—Public key cryptographic algorithm SM2 based on elliptic curves—Part 2: Digital signature algorithm (English PDF)

信息安全技术 SM2椭圆曲线公钥密码算法 第2部分:数字签名算法

Preview PDF

This is a limited preview

Buy now to download the full PDF (20 pages)

Need quotation for your management?

Get a formal quotation for GB/T 32918.2-2016 in 30 minutes.

Issued by

SAMR; SAC

Level / Type

National · Recommended

Issue date

August 29, 2016

Implementation date

March 1, 2017

Scope

GB/T 32918.2-2016 is the English-translated version of 信息安全技术 SM2椭圆曲线公钥密码算法 第2部分:数字签名算法.

GB/T 32918.2-2016 is Part 2 of GB/T 32918 and specifies the digital signature algorithm of the public key cryptographic algorithm SM2 based on elliptic curves, including the digital signature generation algorithm and the verification algorithm, and gives examples of digital signature and verification with the corresponding flows.

Clause 1 states that this part applies to digital signature and verification in commercial cryptographic applications and that it meets the security requirements for identity authentication and for data integrity and authenticity in a variety of cryptographic applications.

Clause 2 cites GB/T 32918.1-2016 and GB/T 32905-2016. Clause 3 defines message, signed message, signature key, signature generation process and distinguishing identifier, and clause 4 sets out the symbols and abbreviations, among them the private key dA of user A, the finite field Fq and the set E(Fq) of rational points of the elliptic curve.

Clause 5, Digital signature algorithm, covers the elliptic curve system parameters, which with their verification must comply with clause 5 of GB/T 32918.1-2016, the user key pairing, whose generation and public key verification must comply with clause 6 of that same part, the two auxiliary functions, namely a cryptographic hash algorithm and a random number generator, both of which must be approved by the State Cryptography Administration and for the first of which the part names SM3 as an example, and the other user information including the signer's distinguishing identifier and its length.

Clause 6 gives the digital signature generation algorithm and its flow, and clause 7 the verification algorithm and its flow, written out as the seven steps B1 to B7, which check that r' and s' lie in [1, n - 1], form the hash of the identity value and the received message, convert the data types according to GB/T 32918.1-2016, compute an elliptic curve point and compare the result with r'.

Annex A is informative and works through examples of signature and verification on Fp using the hash algorithm of GB/T 32905-2016 and a user identity encoded with GB/T 1988.

The foreword says GB/T 32918 consists of five parts, that this part was proposed by the State Cryptography Administration and that it falls under the National Information Security Standardization Technical Committee (SAC/TC 260). It was issued on 29 August 2016 and has applied since 1 March 2017.

Found what you need?

Document preview — GB/T 32918.2-2016

National Standard of the People's Republic of China

ICS
35.040
Classification
L 80

Issued by: State Administration for Market Regulation; Standardization Administration of the PRC

Contents

  • Foreword3
  • Introduction4
  • 1 Scope6
  • 2 Normative references6
  • 3 Terms and definitions6
  • 4 Symbols and abbreviations7
  • 5 Digital signature algorithm8
  • 6 Digital signature generation algorithm and flow10
  • 7 Digital signature verification algorithm and flow12
  • Annex A (informative) Examples of digital signature and verification14
  • Bibliography20

Foreword

GB/T 32918 "Information security technology - Public key cryptographic algorithm SM2 based on elliptic curves" consists of 5 parts.

- Part 1. General;

- Part 2. Digital signature algorithm;

- Part 3. Key exchange protocol;

- Part 4. Public key encryption algorithm;

- Part 5. Parameter definition.

This Part is Part 2 of GB/T 32918.

This Part was drafted in accordance with the rules given in GB/T 1.1-2009.

1 Scope

This Part of GB/T 32918 specifies the digital signature algorithm of public key cryptographic algorithm SM2 based on elliptic curves, including digital signature generation algorithm and verification algorithm, and gives examples of digital signature and verification and the corresponding flow.

This Part applies to digital signature and verification in commercial cryptographic applications, and meets the security requirements for identity authentication and data integrity and authenticity in a variety of cryptographic applications. [Translator note. In Chinese, there is only single word corresponding to mathematic "domain" and "field" (identical in Chinese).

Therefore, in this translation, "field" and "domain" can be replaced each other where applicable (exchangeable); likewise, limited domain = finite field]

2 Normative references

The following referenced documents are indispensable for the application of this document. For dated references, only the dated edition cited applies. For undated references, the latest edition of the referenced document (including all amendments) applies.

GB/T 32918.1-2016 Information security technology - Public key cryptographic algorithm SM2 based on elliptic curves - Part 1: General

GB/T 32905-2016 Information security techniques - SM3 cryptographic hash algorithm

3 Terms and definitions

For the purpose of this document, the following terms and definitions apply.

3.1 Message

A bit string of any finite length.

3.2 Signed message

A set of data elements consisting of a message and a signed portion of the message.

3.3 Signature key

A secret data element that is unique to the signer during the digital signature generation process, i.e., signer's private key.

3.4 Signature generation process

A process of entering a message, a signature key and elliptic curve's system parameters, and outputting a digital signature.

3.5 Distinguishing identifier

Information that makes it possible to identify an entity's identity without ambiguity.

4 Symbols and abbreviations

For the purpose of this document, the following symbols and abbreviations apply.

A, B. Two users that use public key cryptosystem.

dA. User A's private key.

E(Fq). A set of all rational points (including the infinity point O) of the elliptic curve E on Fq.

e. The cryptographic hash algorithm acts on the output value of message M.

e'. The cryptographic hash algorithm acts on the output value of message M'.

Fq. A finite field containing q elements.

5 Digital signature algorithm

5.2 Elliptic curve's system parameters

Elliptic curve's system parameters include the size q of the finite field Fq (when q = 2m, it also includes the identification of the element representation and the reduction polynomial); the two elements a, b in Fq of the equation defining the elliptic curve E(Fq); the base point G = (xG, yG) (G != O) on E(Fq), where xG and yG are two elements in Fq; the order n of G and other alternatives (such as the cofactor h of n).

Elliptic curve's system parameters and their verification shall comply with the specifications of Clause 5 of GB/T 32918.1-2016.

5.3 User key pairing

User A's key pairing includes its private key dA and public key PA = [dA ] G = (xA, yA).

The generation algorithm of the user key pairing and the public key verification algorithm shall comply with the specifications of Clause 6 of GB/T 32918.1-2016.

5.4 Auxiliary function

5.4.1 General

In the elliptic curve's digital signature algorithm specified in this Part, two types of auxiliary functions are involved. the cryptographic hash algorithm and the random number generator.

5.4.2 Cryptographic hash algorithm

This Part specifies the use of cryptographic hash algorithms approved by State Cryptography Administration, such as SM3 cryptographic hash algorithm.

5.4.3 Random number generator

This Part specifies the use of random number generators approved by State Cryptography Administration.

5.5 Other user information

User A as the signer has a distinguishing identifier IDA with a length of entlenA bits. ENTLA is denoted as a two-byte converted by the integer entlenA. In the signature generation process, the cryptographic hash algorithm is used to compress M (including ZA and the message to be signed M); before the verification process, the cryptographic hash algorithm is used to compress M ' (including ZA and message to be verified M'). […]

7 Digital signature verification algorithm and flow

7.1 Digital signature verification algorithm

In order to verify the received message M' and its digital signature (r', s'), User B as the verifier shall implement the following operation steps.

B1. Verify if r' in [1, n - 1] is true, if not, the verification fails;

B2. Verify if s' in [1, n - 1] is true, if not, the verification fails;

B3. Set M ' = ZA || M';

B4. Calculate e' = Hv (M '); convert the data type of e' to an integer according to the methods given in 4.2.4 and 4.2.3 of GB/T 32918.1-2016;

B5. Convert the data types of r' and s' to integers according to the method given in 4.2.3 of GB/T 32918.1-2016; calculate t = (r' + s') mod n, if t = 0, the verification fails;

B6. Calculate the elliptic curve point (x'1, y'1) = [s'] G + [t] PA;

B7. Convert the data type of x'1 to an integer according to the method given in 4.2.8 of GB/T 32918.1-2016; calculate R = (e' + x1') mod n; verify if R = r' is true, if yes, the verification is passed, otherwise the verification fails.

NOTE: If ZA is not the hash value corresponding to User A, the verification will fail. See Annex A for an example of digital signature verification process.

7.2 Digital signature verification algorithm flow

The digital signature verification algorithm flow is shown in Figure 2.

Annex A (informative) Examples of digital signature and verification

A.1 General

This annex uses the cryptographic hash algorithm given in GB/T 32905-2016.

The input is a message bit string with a length less than 264, and the output is a hash value of 256 bits in length, denoted as H256 ( ).

In this annex, all numbers in hexadecimal are high on the left and low on the right.

In this annex, the message uses the code given in GB/T 1988.

Let User A's identity be. ALICE123@YAHOO.COM. Use the code given in GB/T 1988 IDA. 414C 49434531 32334059 41484F4F 2E434F4D. ENTLA = 0090.

A.2 Elliptic curve's digital signature on Fp

The elliptic curve equation is. y2 = x3 + ax + b

Example 1. Fp-256

Prime number p.

Coefficient a.

Coefficient b.

Base point G = (xG, yG), of which the order is n.

Coordinate xG.

Coordinate yG.

Order n.

Message to be signed M. message digest […]

......
This preview omits tables, figures, formulas and parts of the technical clauses. The complete document — 20 pages — is available in the English PDF.

Referenced standards

Cited by

Similar standards

How to Download GB/T 32918.2-2016

  1. 1

    Add to cart

    Click "Download PDF" on this page and choose "Buy this standard". You can add more standards before checkout.

  2. 2

    Checkout

    Enter your email and billing details. Payment is processed securely by Stripe (cards or bank transfer). Prefer bank details? Request a quotation (min. order $300).

  3. 3

    Instant delivery (0–9 sec)

    Delivery is automatic: within seconds of payment you'll receive an email with a secure download link. The link stays valid for 72 hours.

  4. 4

    Invoice included

    A tax invoice is attached to the confirmation email. Need a custom invoice? Contact us.

Related Standards

English PDF
20 pages
Instant delivery (0–9 sec)
Invoice included
View Cart

Secure payment via Stripe

Payments accepted

VisaMastercardAmerican ExpressApple PayGoogle PayStripe

GB/T 32918.2-2016

$125.00