侧边栏壁纸
博主头像
银河驿站博主等级

行动起来,活在当下

  • 累计撰写 85 篇文章
  • 累计创建 17 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

GM/T 0009格式规范说明

Administrator
2021-10-20 / 0 评论 / 0 点赞 / 743 阅读 / 1834 字

GM/T 0009格式规范说明

GM/T 0009-2012 SM2密码算法使用规范

1.SM2密钥对

  • SM2私钥是一个大于等于1且小于n-1的整数(n为SM2算法的阶),长度为256位。
  • SM2公钥是SM2曲线上的一个点,由横坐标和纵坐标两个分量来表示,记为(x,y),简记为Q,每个分量的长度为256位。

2.数据格式

2.1 密钥数据格式

SM2算法私钥数据格式的ASN.1定义为:

SM2PrivateKey::=INTEGER

SM2算法公钥数据格式的ASN.1定义为:

SM2PublicKey::=BIT STRING

SM2PublicKey为BIT STRING类型,内容为04||X||Y,其中X和Y分别标识公钥的x分量和y分量,其长度各为256位。

2.2 加密数据格式

SM2加密后的数据格式的ASN.1定义为:

SM2Cipher::=SEQENCE{

Xcoordinate INTEGER, --x分量

Ycoordinate INTEGER, --y分量

HASH OCTET STRING SIZE(32),--杂凑值

CipherText OCTET STRING --密文

}

其中,HASH为使用SM3算法对明文数据运算得到的杂凑值,其长度固定为256位。CipherText是与明文等长的密文。

2.3 签名数据格式

SM2算法签名数据格式的ASN.1定义为:

SM2Signature::={

R INTEGER, --签名值第一部分

S INTEGER, --签名值第二部分

}

R和S的长度各为256位

2.4宓钥对保护数据格式

在SM2密钥对传递时,需要对SM2密钥对进行加密保护。具体的保护方法为:
a)产生一个对称密钥;
b)按对称密码算法标识指定的算法对SM2私钥进行加密,得到私钥的密文。若对称算法为分组 算法,则其运算模式为ECB;
c)使用外部SM2公钥加密对称密钥得到对称密钥密文;
d)将私钥密文、对称密钥密文封装到密钥对保护数据中。

SM2密钥对的保护数据格式的ASN. 1定义为:

SM2EnvelopedKcy ::=SEQUENCE{

symAlglD Algorithmldcntifier, --对称密码算法标
symEncrypted Key SM2Cipher, --对称密钥密文
Sm2PublicKey SM2PublicKey, --SM2公钥
Sm2EncryptedPrivateKey BIT STRING --SM2私钥密文

}

0

评论区