GB/T35276-2017

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

Informationsecuritytechnology—SM2cryptographicalgorithmusagespecification

本文分享国家标准信息安全技术SM2密码算法使用规范的全文阅读和高清PDF的下载,信息安全技术SM2密码算法使用规范的编号:GB/T35276-2017。信息安全技术SM2密码算法使用规范共有11页,发布于2018-07-01
  • 中国标准分类号(CCS)L80
  • 国际标准分类号(ICS)35.040
  • 实施日期2018-07-01
  • 文件格式PDF
  • 文本页数11页
  • 文件大小556.79KB

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


国家标准 GB/T35276一2017 信息安全技术SM2密码算法使用规范 nfomatn.seerttytehmogyS\2crypugraphilcalgurthmusgespeifieatinm 2017-12-29发布 2018-07-01实施 中华人民共利国国家质量监督检验检疙总局 发布 国家标准化管理委员会国家标准
GB/T35276一2017 次 目 前言 引言 范围 规范性引用文件 术语和定义 缩略语 SM2的密钥对 5.1SM2私钥 5.2SM2公钥 数据转换 6.1位串到8位字节串的转换 6.28位字节串到位串的转换 6.3整数到8位字节串的转换 6.48位字节串到整数的转换 数据格式 7.1密钥数据格式 7.2加密数据格式 7.3签名数据格式 7.4密钥对保护数据格式 预处理 8.1预处理1 8.2预处理2 计算过程 9.1生成密钥 9.2加密 9.3解密 9.4数字签名 9.5签名验证 9.6密钥协商 10 用户身份标识ID的默认值
GB/35276一2017 前 言 本标准按照GB/T1.1一2009给出的规则起草 请注意本文件的某些内容可能涉及专利 本文件的发布机构不承担识别这些专利的责任 本标准由全国信息安全标准化技术委员会(SAC/TC260)提出并归口 本标准起草单位:北京海泰方圆科技股份有限公司、卫士通信息产业股份有限公司、无锡江南信息 安全工程技术中心,兴唐通信科技股份有限公司山东得安信息技术有限公司、上海格尔软件股份有限 公司 本标准主要起草人:刘平、蒋红宇、柳增寿,李元正、徐强,谭武征、孔凡玉、王妮娜
GB/T35276一2017 引 言 SM2椭圆曲线公钥密码算法(以下简称SM2)是由GB/T32918给出的一组非对称算法,其中包括 SM2-1椭圆曲线数字签名算法、SM2-2椭圆曲线密钥协商协议SM2-3椭圆曲线加密算法 本标准的目标是保证SM2使用的正确性,为SM2密码算法的使用制定统一的数据格式和使用 方法 本标准中涉及的SM3算法是指GB/T32905给出的一种密码杂凑算法 本标准仅从算法应用的角度给出SM2密码算法的使用说明,不涉及SM2密码算法的具体编制 细节
GB/35276一2017 信息安全技术SM2密码算法使用规范 范围 本标准规定了SM2密码算法的使用方法,以及密钥、加密与签名等的数据格式 本标准适用于SM2密码算法的使用,以及支持SM2密码算法的设备和系统的研发和检测 规范性引用文件 下列文件对于本文件的应用是必不可少的 凡是注日期的引用文件,仅注日期的版本适用于本文 件 凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件 GB/T32905一2016信息安全技术SM3密码杂凑算法 GB/T32918.1一2016信息安全技术SM2椭圆曲线公钥密码算法第1部分:总则 GB:/T32918.2一2016信息安全技术sM2椭圆曲线公钥密码算法第2部分;数字签名算法 信息安全技术sM2椭圆曲线公钥密码算法第3部分;密钥交换协议 GB/T32918.32016 GB/T32918.4一2016信息安全技术SM2椭圆曲线公钥密码算法第4部分;公钥加密算法 GB/T32918.5一2017信息安全技术SM2椭圆曲线公钥密码算法第5部分;参数定义 术语和定义 下列术语和定义适用于本文件 3. 算法标识algorithmidentifier 用于标明算法机制的数字化信息 3.2 SM2密码算法SM2c 2cugruphtalerlhm" 由GB/T32918(所有部分)定义的一种算法 3.3 S13密码算法sM3cryptographicalgorithm 由GB/T329052016定义的一种算法 缩略语 下列缩略语适用于本文件 ECB;电码本模式(ElectronicesCodeBook) ECcC;椭圆曲线密码算法(E:lptieCurveCryptography) 5 SM2的密钥对 5.1SM2私钥 SM2私钥是大于1且小于n-1的整数(n为SM2算法的阶,其值见GB/T32918.5一2017的第2
GB/T35276一2017 章),简记为k,长度为256位 5.2SM2公钥 SM2公钥是SM2曲线上的一个点,由横坐标和纵坐标两个分量来表示,记为(x,y),简记为Q,每 个分量的长度为256位 数据转换 6 6.1位串到8位字节串的转换 位串长度若不是8的整数倍,需先在它的左边补0,以保证它的长度为8的倍数,然后构造8位字 节串,转换过程如下 输人:一个长度为blen的位串B 输出:一个长度为mlen的字节串M,其中mlen的取值为(blen十7)/8的整数部分 动作;将位串B=B,BB转换到8位字节串M=M,MM采用如下方法 从1.x 输出:一个长度为mlen的8位字节串M 2"" 2"lt”+ 动作:将基于2=256的r值工=r 十十r2十r 转换为一个 十rmlen 8位字节串M=M,MM,m-采用如下方法 从0imlen一1,设置:M,= =工mken一1-" 输出M 6.48位字节串到整数的转换 可以简单地把8位字节串看成以256为基表示的整数,转换过程如下 输人;一个长度mlen的8位字节串M. 输出;一个整数r
GB/35276一2017 动作;将一个8位字节串M=M,M,M, wm-转换为整数 方法如下 将M,看作[O一255]中的一个整数 2(mlen-1-M 输出工 数据格式 7.1密钥数据格式 SM2算法私钥数据格式的ASN.1定义为: SM2PrivateKey::=INTEGER sM2算法公钥数据格式的AsN.1定义为 sM2Publickey BITsTRING ;= SM2Publickey为BTSTRING类型,内容为04lxlY,其中,x和Y分别标识公钥的x分量和y 分量,其长度各为256位 7.2加密数据格式 SM2算法加密后的数据格式的ASN.1定义为 SM2Cipher:;=SEQENCE xCoordinate INTEGER x分量 INTEGER -y分量 YCoordinate HASH OCTETSTRINGSIZE(32) 杂凑值 OCTETSTRING CipherText 密文 其中,HASH为使用SM3算法对明文数据运算得到的杂凑值,其长度固定为256位 CipherText 是与明文对应的密文 7.3签名数据格式 SM2算法签名数据格式的ASN.1定义为 SM2Signature::=SEQUENCE INTEGER 签名值的第一部分 R INTEGER 签名值的第二部分 7.4密钥对保护数据格式 在sM2密钥对传递时,需要对sM2密钥对进行加密保护 具体的保护方法为 产生一个对称密钥 a 按对称密码算法标识指定的算法对SM2私钥进行加密,得到私钥的密文 若对称算法为分组 b 算法,则其运算模式为ECB: 使用外部SM2公钥加密对称密钥得到对称密钥密文; c 将私钥密文,对称密钥密文封装到密钥对保护数据中 d SM2密钥对的保护数据格式的ASN.1定义为 SM2EnvelopedKey::;=SEQUENCE
GB/T35276一2017 symAlglID Algorithmldentifier, 对称密码算法标识 symEneryptedKey SM2Cipher -对称密钥密文 Sm2PubieKey sM2PadbieKey. SM2公钥 sm2EncryptedlPiatekeyBIrsTRING SM2私钥密文 8 预处理 8.1预处理1 预处理1是指使用签名方的用户身份标识和签名方公钥,通过运算得到Z值的过程 乙值用于预 处理2,也用于SM2密钥协商协议 输人:ID 字节串 用户身份标识 Q sM2Pubiekey用户的公钥 输出 字节串 预处理1的输出 计算公式为 Z=SM3(ENTLIDlalblxly|xly 式中 ENTI 为由2个字节表示的ID的比特长度; ID 为用户身份标识; 为系统曲线参数; a、b xG、ya 为基点; 为用户的公钥 XA、yA 详细的计算过程见GB/T32918.2一2016的5.5和GB/T329052016的第5章 8.2预处理2 预处理2是指使用Z值和待签名消息,通过SM3运算得到杂凑值H的过程 杂凑值H用于SM2 数字签名 输人 字节串 预处理2的输人 M 字节串 待签名消息 H 输出 字节串 杂凑值 计算公式为 H=SM3(ZM 详细的计算过程见GB/T32918.2一2016的6.1和GB/T32905一2016的第5章 g 计算过程 9.1生成密钥 SM2密钥生成是指生成SM2算法的密钥对的过程,该密钥对包括私钥和与之对应的公钥 输人 无 输出 SM2PrivateKeySM2私钥 Q sSM2PublicKeySM2公钥 详细的计算过程见GB/T32918.1一2016的6.1
GB/35276一2017 9.2加密 SM2加密是指使用指定公开密钥对明文进行特定的加密计算,生成相应密文的过程 该密文只能 由该指定公开密钥对应的私钥解密 sM2PublicKey sM2公钥 Q 输人: 字节串 待加密的明文数据 m 输出: SM2Cipher 密文 其中: 输出参数c的格式由本规范7.2中定义; 输出参数c的XCoordinate,YCoordinate为随机产生的公钥的x分量和y分量 输出参数c中的HASH的计算公式为 HAsH=SM3(xlmly) 式中 Q的x分量和y分量; X,y 输出参数c中CipherText为加密密文,其长度等于明文的长度 详细的计算过程见GB/T32918.4一2016的6.! 9.3解密 SM2解密是指使用指定私钥对密文进行解密计算,还原对应明文的过程 SM2PrivateKe 输人: SM2私钥 ey SM2Ciphe 密文 输出: 字节串 与密文对应的明文 m为SM2Cipher经过解密运算得到的明文,该明文的长度与输人参数c中CipherText的长度 相同 详细的计算过程见GB/T32918.!一2016的7.1 9.4数字签名 SM2签名是指使用预处理2的结果和签名者私钥,通过签名计算得到签名结果的过程 sM2PrivateKey 签名者私钥 d 输人: 字节串 预处理2的结果 H 输出:sign" sM2Signature 签名值 详细的计算过程见GB/T32918.2一2016的6.1 9.5签名验证 SM2签名验证是指使用预处理2的结果、签名值和签名者的公钥,通过验签计算确定签名是否通 过验证的过程 输人: 字节串预 处理2的结果 H SM2Signature 签名值 s1gn PublicKey 签名者的公钥 输出;为“真”表示“验证通过”,为“假”表示“验证不通过” 详细的计算过程见GB/T32918.22016的7.1 9.6密钥协商 密钥协商是在两个用户之间建立一个共享秘密密钥的协商过程,通过这种方式能够确定一个共享
GB/T35276一2017 秘密密钥的值 设密钥协商双方为A,B,双方的密钥对分别为(dA,QA)和(d,,Q),双方需要获得的密钥数据的 比特长度为klen 密钥协商协议分为两个阶段 第一阶段;产生临时密钥对 用户A: 调用生成密钥算法产生临时密钥对(rA,R),将R,和用户A的用户身份标识ID发送给用户B. 用户B 调用生成密钥算法产生临时密钥对(ri,Rw),将R和用户B的用户身份标识ID发送给用户A 第 二阶段;计算共享秘密密钥 用户A: 输人参数 Q sSM2Paubliekey 用户A的公钥 Q SM2PublieKey 用户B的公钥 R SM2Publiekey 用户A的临时公钥 D. 用户A的用户身份标识 OcTETSTRING R SM2PublicKey 用户B的临时公钥 D OCTETSTRING 用户B的用户身份标识 SM2PrivateKey 用户A的私钥 d sM2PrivateKey 用户A的临时私钥 rr klen NTEGER 需要输出的密钥数据的比特长度 输出参数 OcTETSTRING 位长为klen的密钥数据 步骤 用ID和Q作为输人参数,调用预处理1得到Z: a b) 用ID和Q作为输人参数,调用预处理1得到Zw 以klen、Z、Z、dA、r、,RA.Q、R,为输人参数,进行运算得到K c 用户B 输人参数 M2PublicKe 用户B的公钥 QB ey Q SM2PublicKey 用户A的公钥 SM2PublicKey 用户B的临时公钥 R n (OcTETsTRING 用户B的用户身份标识 用户A的临时公钥 SM2PublicKey 0CTETSTRNG 用户A的用户身份标识 d SM2PrivatekKey 用户B的私钥 用户B的临时私钥 SM2Privatekey rn klen INTEGER 需要输出的密钥数据的比特长度
GB/35276一2017 输出参数 OcTETsTRING 位长为klen的密钥数据 K 步骤: 用ID和Q作为输人参数,调用预处理1得到乙; a b 用ID和Q作为输人参数,调用预处理1得到Za 以klen,Z、Z,d、r,Rw,QA,RA为输人参数,进行运算得到K c 详细的计算过程见GB/T32918.32016的6.1 10用户身份标识D的默认值 无特殊约定的情况下,用户身份标识ID的长度为16字节,其默认值从左至右依次为 0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38

了解SM2密码算法使用规范GB/T35276-2017

随着互联网的快速发展,信息安全问题日益凸显。为了保护个人隐私和商业机密,信息安全技术得到了广泛应用。其中一项重要技术是密码算法。

SM2 是中国自主设计的椭圆曲线公钥密码算法,属于非对称加密算法的一种。它具有高强度、高安全性和高效率等优点,在政府、金融、电信等领域得到了广泛应用。

SM2密码算法的特点

SM2 密码算法采用椭圆曲线加密算法和哈希算法,用于实现数字签名、密钥协商、数据加密等功能。与 RSA 算法相比,SM2 具有以下优点:

  • 更高的安全性:SM2 比 RSA 更难被攻破,可以提供更好的安全保障。
  • 更高的效率:SM2 的运算速度比 RSA 更快,可以提高系统的响应速度。
  • 更小的秘钥尺寸:SM2 的秘钥尺寸比 RSA 更小,可以节省存储空间。

GB/T35276-2017 使用规范

为了规范 SM2 密码算法的使用,国家标准化管理委员会发布了 GB/T35276-2017《信息安全技术 SM2 密码算法使用规范》。该规范主要包括以下内容:

  • 密码算法的基本概念和术语
  • 密码算法的体系结构和功能模块
  • 对称加密算法和非对称加密算法的区别和优缺点
  • SM2 算法的详细介绍和使用规范
  • 密钥管理、证书管理和安全策略等方面的规定

GB/T35276-2017 规范中明确了 SM2 密码算法的实现要求和使用方法,包括密钥长度、随机数生成、密钥协商、签名验证等细节问题。同时,规范还强调了密钥管理和证书管理的重要性,提出了相应的安全策略和措施。

结论

信息安全是当前互联网发展的热点问题,密码算法作为其中重要的一环,其规范化使用将对保障个人隐私和商业机密具有重要意义。GB/T35276-2017《信息安全技术 SM2 密码算法使用规范》明确了 SM2 密码算法的实现要求和使用方法,可以为开发者和用户提供有效的参考和指导。

和信息安全技术SM2密码算法使用规范类似的标准

信息安全技术术语

摩托艇器材使用规范

仓储货架使用规范

信息安全技术SM2密码算法加密签名消息语法规范
上一篇 本文分享国家标准信息安全技术SM2密码算法加密签名消息语法规范的全文阅读和高清PDF的下载,信息安全技术SM2密码算法加密签名消息语法规范的编号:GB/T35275-2017。信息安全技术SM2密码算法加密签名消息语法规范共有12页,发布于2018-07-01
信息安全技术防病毒网关安全技术要求和测试评价方法
本文分享国家标准信息安全技术防病毒网关安全技术要求和测试评价方法的全文阅读和高清PDF的下载,信息安全技术防病毒网关安全技术要求和测试评价方法的编号:GB/T35277-2017。信息安全技术防病毒网关安全技术要求和测试评价方法共有42页,发布于2018-07-01 下一篇
相关推荐