GM_T 0009-2012SM2算法使用规范.docx

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
ICS 35.040 L 80 备案号;38307—2013 中华人民共和国密码行业标准 GM/T 0009—2012 SM2密码算法使用规范 2012-11-22 发布 2012-11-22 发布 2012-11-22 实施 国家密码管理局 发布 GM/T 0009—2012 GM/T 0009—2012 GM/T 0009—2012 GM/T 0009—2012 前言 I引言 前言 I 引言 n 范围 规范性引用文件 术语和定义 符号和缩略语 SM2的密钥对 SM2 私钥 5. 2 SM2 公钥 数据转换 6.1 6.2 6.3 6.4 2 2 2 2 3 3 3 3 8位字节串到位串的转换 整数到8位字节串的转换 8位字节串到整数的转换 数据格式 7.1 7.1 7.2 7.3 7.4 密钥数据格式 加密数据格式 签名数据格式 密钥对保护数据格式??… 预处理 预处理1 4 预处理2 4 TOC \o 1-5 \h \z 9计算过程 4 生成密钥 4 加密 5 9.3解密 5 9.4数字签名 5 签名验证 5 密钥协商 6 10用户身份标识 10用户身份标识ID的默认值 7 ■ ir 刖 本标准按照GB/T 1.1-2009给出的规则起草。 请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。 本标准由国家密码管理局提出并归口。 本标准起草单位:北京海泰方圆科技有限公司、卫士通信息产业股份有限公司、无锡江南信点安全 工程技术中心、兴唐通信科技股份有限公司、山东得安信息技术有限公司、上海格尔软件股份有限公司0 本标准主要起草人:刘平、蒋红宇、柳增寿、曾宇波、李元正、徐强、谭武征、孔凡玉、王妮娜。 SM2椭圆曲线密码算法(以下简称SM2)是国家密码管理局批准的一组算法,其中包括SM2-1椭 I曲线数字签名算法、SM2-2椭圆曲线密钥协商协议、SM2-3椭圆曲线加密算法。 本标准的目标是保证SM2使用的正确性,为SM2密码算法的使用制定统一的数据格式和使用 方法。 本标准中涉及的SM3算法是指国家密码管理局批准的SM3密码杂凑算法。 本标准仅从算法应用的角度给出SM2密码算法的使用说明,不涉及SM2密码算法的具体编制 细节。 lit III III III GM/T 0009—2012 GM/T 0009—2012 PAGE PAGE # GM/T 0009—2012 GM/T 0009—2012 PAGE PAGE # SM2密码算法使用规范 范围 9Li 本标准定义了 SM2密码算法的使用方法,以及密钥、加密与签名等的数据格式。 本标准适用于SM2密码算法的使用,以及支持SM2密码算法的设备和系统的研发和检测。 2规范性引用文件 帰园Ih; 帰园Ih; GM/T 0003(所有部分)SM2椭圆曲线公钥密码算法 GM/T 0004 SM3密码杂凑算法 3术语和定义 下列术语和定义适用于本文件。 3. 1 算法标识 algorithm identifier 用于标明算法机制的数字化信息。 3.2 SM2密码算法 SM2密码算法 SM2 algorithm 一种椭圆曲线密码算法,密钥长度为256比特。 3.3 SM3 算法 SM3 algorithm 一种杂凑算法,输出长度为256比特。 4符号和缩略语 下列缩略语适用于本文件: ECBECC ECB ECC ID 椭圆曲线密码算法(Elliptic Curve Cryptography) 用户身份标识(Identity) 5 SM2的密钥对 5. 1 SM2私钥 SM2私钥是一个大于或等于1且小于n-1的整数(〃为SM2算法的阶,其值参见GM/T 0003), 简记为k,长度为256位。 5.2 SM2公钥 SM2公钥是SM2曲线上的一个点,由横坐标和纵坐标两个分量来表示,记为 SM2公钥是SM2曲线上的一个点,由横坐标和纵坐标两个分量来表示,记为(x,y),简记为Q,每 个分量的长度为256位。 111 III Hl 6数据转换 在SM2算法的使用中将涉及8位字节串(Octet String)和位串(Bit String)之间的转换,主要包括 以下四种形式。 6.1位串到8位字节串的转换 位串长度若不是8的整数倍,需先在它的左边补。,以保证它的长度为8的倍数,然后构造8位字 节串,转换过程如下: 输入:一个长度为blen的位串B。 ? ri输出:一个长度为mien的字节串M,其中mien的取值为(blen+7)/8的整数部分。 动作:将位串B=B°B]???Bb『i转换到8位字节串M=M°M】…Mg_】釆用如下方法: 从 OW/Wmlen—1,设置:

文档评论(0)

181****8052 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档