GB/T 35276-2017 信息安全技术 SM2密码算法使用规范.pdf

GB/T 35276-2017 信息安全技术 SM2密码算法使用规范.pdf
标准编号:
文件类型:.pdf
资源大小:0.6 M
标准类别:电力标准
资源ID:60495
免费资源

标准规范下载简介和预览

GB/T 35276-2017 信息安全技术 SM2密码算法使用规范.pdf简介:

"GB/T 35276-2017 信息安全技术 SM2密码算法使用规范"是中国国家标准,由国家标准化管理委员会发布。该规范详细规定了SM2密码算法在中国的信息安全领域的应用方法、安全要求、实现细节和测试方法。SM2是一种椭圆曲线密码算法,是中国自主研发的公钥密码算法体系,主要用于数字签名和密钥交换等安全应用场景,以保护数据的完整性和真实性。该规范的发布,旨在提升我国信息安全技术的自主可控性,推动SM2算法在各行业的广泛应用。PDF版本的文件通常包含了该标准的全部内容,包括算法描述、安全功能、实施指南等技术性内容。

GB/T 35276-2017 信息安全技术 SM2密码算法使用规范.pdf部分内容预览:

GB/T352762017

GB/T352762017

DB34/T 3195-2018标准下载本标准按照GB/T1.1一2009给出的规则起草。 请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任 本标准由全国信息安全标准化技术委员会(SAC/TC260)提出并归口。 本标准起草单位:北京海泰方圆科技股份有限公司、卫士通信息产业股份有限公司、无锡江南信息 安全工程技术中心、兴唐通信科技股份有限公司、山东得安信息技术有限公司、上海格尔软件股份有限 公司。 本标准主要起草人:刘平、蒋红宇、柳增寿、李元正、徐强、谭武征、孔凡玉、王妮娜

GB/T 352762017

GB/T352762017

信息安全技术SM2密码算法使用规范

下列文件对于本文 的 必不可少的。 件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件 GB/T 32905—2016 信息安全技术SM3密码杂凑算法 GB/T 32918.1—2016 信息安全技术 SM2椭圆曲线公钥密码算法 第1部分:总则 GB/T 32918.2—2016 信息安全技术 SM2椭圆曲线公钥密码算法 第2部分:数字签名算法 GB/T 32918.3—2016 信息安全技术 SM2椭圆曲线公钥密码算法 第3部分:密钥交换协议 GB/T 32918.4—2016 信息安全技术 SM2椭圆曲线公钥密码算法 第4部分:公钥加密算法 GB/T 32918.5—2017 信息安全技术 SM2椭圆曲线公钥密码算法 第5部分:参数定义

下列术语和定义适用于本文件 3.1 算法标识algorithmidentifier 用于标明算法机制的数字化信息。 3.2 SM2密码算法SM2cryptographicalgorithm 由GB/T32918(所有部分)定义的一种算法。 3.3 SM3密码算法SM3cryptographicalgorithm 由GB/T32905一2016定义的一种算法

下列缩略语适用于本文件。 ECB:电码本模式(ElectronicsCodeBook) ECC椭圆曲线密码算法(EllipticCurveCryptography)

下列缩略语适用于本文件。 ECB:电码本模式(ElectronicsCodeBook) ECC:椭圆曲线密码算法(EllipticCurveCryptographv)

GB/T 352762017

GB/T 352762017

章)简记为k.长度为256位

SM2公钥是SM2曲线上的一个点,由横坐标和纵坐标两个分量来表示,记为(x,y),简记为Q 分量的长度为256位。

6.1位串到8位字节串的转换

6.28位字节串到位串的转换

6.3整数到8位字节串的转换

6.48位字节串到整数的转换

可以简单地把8位字节串看成以256为基表示的整数,转换过程如下: 输入:一个长度mlen的8位字节串M。 输出:一个整数。

GB/T352762017

SM2算法私钥数据格式的ASN.1定义为: SM2PrivateKey::=INTEGER SM2算法公钥数据格式的ASN.1定义为: SM2PublicKey : := BIT STRING SM2PublicKey为BITSTRING类型,内容为04IIXIIY,其中,X和Y分别标识公钥的x分量和y 分量,其长度各为256位

SM2算法加密后的数据格式的ASN.1定义为: SM2Cipher::=SEQENCE XCoordinate INTEGER, 一x分量 YCoordinate INTEGER, y分量 HASH OCTET STRING SIZE(32), 一杂凑值 CipherText OCTET STRING 密文

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

SM2算法签名数据格式的ASN.1定义为: SM2Signature::=SEQUENCE( R INTEGER, S INTEGER

7.4密钥对保护数据格式

签名值的第一部分 签名值的第二部分

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

预处理1是指使用签名方的用户身份标识和签名方公钥,通过运算得到乙值的 处理2,也用于SM2密钥协商协议, 输入:ID 字节串 用户身份标识 Q SM2PublicKey 用户的公钥 输出:Z 字节串 预处理1的输出 计算公式为: Z=SM3(ENTL Il IDIl a Ilb Il xG Il yG Il xA Il yA) 式中: ENTL 为由2个字节表示的ID的比特长度; ID 为用户身份标识; α、b 为系统曲线参数; XG·yG 为基点; XAyA 为用户的公钥,

详细的计算过程见GB/T32918.2—2016的5.5和GB/T32905—2016的第5章

预处理2是指使用Z值和待签名消息,通过SM3运算得到杂漆值H的过程。杂漆值H用于SM2 数字签名。 输入:Z 字节串 预处理2的输人 M 字节串 待签名消息 输出:H 字节串 杂凑值 计算公式为

SM2密钥生成是指 输入:无 输出:k SM2PrivateKey SM2私钥 Q SM2PublicKey SM2公钥 详细的计算过程见GB/T32918.1 2016的6.1

GB/T352762017

加密是指使用指定公开密钥对明文进行特定的加密计算,生成相应密文的过程。该 公开密钥对应的私钥解密。 Q SM2PublicKey SM2公钥 m 字节串 待加密的明文数据 C SM2Cipher 密文 输出参数c的格式由本规范7.2中定义; 输出参数c的XCoordinate、YCoordinate为随机产生的公钥的x分量和y分量 输出参数c中的HASH的计算公式为: HASH = SM3(x Il m Il y) Q的x分量和y分量; 输出参数c中CipherText为加密密文,其长度等于明文的长度。 的计算过程见GB/T32918.4一2016的6.1。

x,y Q的x分量和y分量; 输出参数c中CipherText为加密密文,其长度等于明文的长度。 详细的计算过程见GB/T32918.4—2016的6.1

SM2解密是指使用指定私钥对密文进行解密计算,还原对应明文的过程。 输入:d SM2PrivateKey SM2私钥 SM2Cipher 密文 输出:m 字节串 与密文对应的明文

m为SM2Cipher经过解密运算得到的明文,该明文的长度与输人参数c中CipherText的长度 目同。 详细的计算过程见GB/T32918.4一2016的7.1

SM2签名是指使用预处理2的结果和签名者私钥【北京市】建筑墙体用腻子应用技术规程DB11/T 850-2011,通过签名计算得到签名结果的过程。 输入:d SM2PrivateKey 签名者私钥 H 字节串 预处理2的结果 输出:sign SM2Signature 签名值

SM2签名验证是指使用预处理2的结果、签名值和签名者的公钥,通过验签计算确定签名是否通 金证的过程。 输入:H 字节串预 处理2的结果 sign SM2Signature 签名值 Q PublicKey 签名者的公钥 输出:为“真”表示“验证通过”,为“假”表示“验证不通过”。 详细的计算过程见GB/T32918.2一2016的7.1。

SM2签名验证是指使用预处理2的结果、签名值和签名者的公钥,通过验签计算确定签 过验证的过程。

字节串预 SM2Signature PublicKey

密钥协商是在两个用户之间建立一个共享秘密密钥的协商过程,通过这种方式能够确定一个共

GB/T35276—2017

密钥的值。 设密钥协商双方为A、B,双方的密钥对分别为(da,Q^)和(dDB11∕1343-2016 建筑内外墙涂料施工及验收规程,Qs),双方需要获得的密钥 寺长度为klen。密钥协商协议分为两个阶段。 第一阶段:产生临时密钥对 用户A: 调用生成密钥算法产生临时密钥对(rA,RA),将RA和用户A的用户身份标识IDA发送给月 用户B: 调用生成密钥算法产生临时密钥对(rB,Rs),将R和用户B的用户身份标识ID发送给用 第二阶段:计算共享秘密密钥 用户A: 输入参数: Q SM2PublicKey 用户A的公钥 Q SM2PublicKey 用户B的公钥 RA SM2PublicKey 用户A的临时公钥 IDA OCTET STRING 用户A的用户身份标识 RB SM2PublicKey 用户B的临时公钥 IDB OCTETSTRING 用户B的用户身份标识 dA SM2PrivateKey 用户A的私钥 IA SM2PrivateKey 用户A的临时私钥 klen INTEGER 需要输出的密钥数据的比特长度 输出参数: K OCTETSTRING 位长为klen的密钥数据 步骤: a) 用ID和Q作为输入参数,调用预处理1得到ZA; b 用ID和Q:作为输人参数,调用预处理1得到Z; 以klen、ZA、ZB、dA、IA、RA、Q、RB为输入参数,进行运算得到K。 用户B: 输入参数: Q SM2PublicKey 用户B的公钥 Q SM2PublicKey 用户A的公钥 RB SM2PublicKey 用户B的临时公钥 IDB OCTETSTRING 用户B的用户身份标识 RA SM2PublicKey 用户A的临时公钥 IDA OCTET STRING 用户A的用户身份标识 dB SM2PrivateKey 用户B的私钥 B SM2PrivateKey 用户B的临时私钥 klen INTEGER 需要输出的密钥数据的比特长度

©版权声明
相关文章