SM2算法流程概述

SM2的主要功能

A1. 公私钥

  • 私钥:BN_大整数
  • 公钥:EC-Point 椭圆曲线上的点
    整体结构
    在这里插入图片描述

A.2 数字签名算法

A.2.1 签名(User A)

  • l 签名者用户A的密钥对包括其私钥dA和公钥PA=[dA]G= (xA,yA)
  • 签名者用户A具有长度为entlenA比特的可辨别标识IDA,
  • ENTLA是由整数entlenA转换而成的两个字节
  • ZA=H256(ENTLA || IDA || a || b || xG || yG|| xA || yA)
  • 待签名的消息为M,
  • 数字签名(r,s)
    在这里插入图片描述
    说明:第5步若r=0或r+k=n则返回第3步;第6步若s=0则返回第3步。

A2.2 验签(User B)

  • 签名者用户A的密钥对包括其私钥dA和公钥PA=[dA]G= (xA,yA)
  • 签名者用户A具有长度为entlenA比特的可辨别标识IDA,
  • ENTLA是由整数entlenA转换而成的两个字节
  • ZA=H256(ENTLA || IDA || a || b || xG || yG|| xA || yA)。
  • 消息为M,数字签名(r,s)

在这里插入图片描述

A.2.3 原理

A.3 密钥交换(User A & User B)

在这里插入图片描述

A4 密钥的封装与加解密

加密(User A)

在这里插入图片描述

解密(User B)

在这里插入图片描述