GM/T 0009-2023 SM2密码算法使用规范
GM/T 0009-2023 SM2 cryptography algorithm application specification
基本信息
发布历史
-
2012年11月
-
2023年12月
研制信息
- 起草单位:
- 北京海泰方圆科技股份有限公司、北京信安世纪科技股份有限公司、北京小雷科技有限公司、中电科网络安全科技股份有限公司、北京国脉信安科技有限公司、无锡江南信息安全工程技术中心、兴唐通信科技有限公司、山东得安信息技术有限公司、格尔软件股份有限公司、山东大学
- 起草人:
- 刘平、蒋红宇、柳增寿、曾宇波、袁峰、李元正、徐强、谭武征、孔凡玉、王妮娜、汪宗斌、安晓江、罗俊、徐明翼、郑强、马洪富
- 出版信息:
- 页数:9页 | 字数:19 千字 | 开本: 大16开
内容描述
ICS35030
CCSL.80
中华人民共和国密码行业标准
GM/T0009—2023
代替GM/T0009—2012
SM2密码算法使用规范
SM2cryptographyalgorithmapplicationspecification
2023-12-04发布2024-06-01实施
国家密码管理局发布
GM/T0009—2023
目次
前言
…………………………Ⅲ
范围
1………………………1
规范性引用文件
2…………………………1
术语和定义
3………………1
缩略语
4……………………1
密钥对
5SM2………………1
数据转换
6…………………2
数据格式
7…………………3
预处理
8……………………4
计算过程
9…………………5
用户身份标识的默认值
10ID……………7
Ⅰ
GM/T0009—2023
SM2密码算法使用规范
1范围
本文件定义了密码算法的使用方法也定义了相关的数据格式
SM2,。
本文件适用于密码算法的使用也适用于支持密码算法的设备和系统的研发和检测
SM2,SM2。
2规范性引用文件
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款其中注日期的引用文
。,
件仅该日期对应的版本适用于本文件不注日期的引用文件其最新版本包括所有的修改单适用于
,;,()
本文件
。
信息安全技术密码杂凑算法
GB/T32905—2016SM3
信息安全技术椭圆曲线公钥密码算法第部分总则
GB/T32918.1—2016SM21:
信息安全技术椭圆曲线公钥密码算法第部分数字签名算法
GB/T32918.2—2016SM22:
信息安全技术椭圆曲线公钥密码算法第部分密钥交换协议
GB/T32918.3—2016SM23:
信息安全技术椭圆曲线公钥密码算法第部分共钥加密算法
GB/T32918.4—2016SM24:
信息安全技术椭圆曲线公钥密码算法第部分参数定义
GB/T32918.5—2017SM25:
密码应用标识规范
GM/T0006
密码术语
GM/Z4001
3术语和定义
界定的术语和定义适用于本文件
GM/Z4001。
4缩略语
下列缩略语适用于本文件
。
电码本模式
ECB(ElectronicCodebook)
椭圆曲线密码算法
ECC(EllipticCurveCryptography)
用户身份标识
ID(Identity)
5SM2密钥对
51SM2私钥
.
私钥是大于或等于且小于n的整数n为算法的阶其值见
SM21-1(SM2,GB/T32918.5—
简记为
2017),d。
52SM2公钥
.
公钥是曲线上的一个点由横坐标和纵坐标两个分量来表示记为简记为公
SM2SM2,,(x,y),Q。
1
GM/T0009—2023
钥值由其对应的私钥与进行点乘计算得到为椭圆曲线的基点的取值见
dG(GSM2,G
GB/T32918.5—2017)。
6数据转换
61位串到8位字节串的转换
.
位串长度若不是的整数倍应先在它的左边补以保证它的长度为的倍数然后构造位字
8,0,8,8
节串转换过程如下
,:
输入一个长度为的位串
:blenB。
输出一个长度为的字节串其中的取值为的整数部分
:mlenM,mlen(blen+7)/8。
动作将位串转换到位字节串采用如下方法
:B=B0B1…Bblen-18M=M0M1…Mmlen-1:
从i设置iiii
0≤≤mlen-1,:M=Bblen-8-8(mlen-1-)Bblen-7-8(mlen-1-)…Bblen-1-8(mlen-1-)。
对于最左边位设置为右边设置为其中表示模运算
M0,8-blen%80,B0B1…B7+blen-8mlen,%。
输出
M。
628位字节串到位串的转换
.
位字节串到位串转换过程如下
8:
输入一个长度为的位字节串
:mlen8M。
输出一个长度为的位串
:blen=(8*mlen)B。
动作将位字节串转换到位串采用如下方法
:8M=M0M1…Mmlen-1B=B0B1…Bblen-1:
从i设置iiii
0≤≤mlen-1,:B8B8+1…B8+7=M。
输出
B。
63整数到8位字节串的转换
.
一个整数转换为位字节串基本方法是将其先使用二进制表达然后把结果位串再转换为位字
8,,8
节串以下是转换流程
。:
输入一个非负整数x期望的位字节串长度基本限制为8(mlen)x
:,8mlen。:2>。
输出一个长度为的位字节串
:mlen8M。
动作将基于8的x值xx8(mlen-1)x8(mlen-2)x8x转换为一个位
:2=256=mlen-12+mlen-22+…+12+08
推荐标准
- DB34/T 2740-2016 双季晚稻高产高效技术规程 2016-12-30
- DB34/T 2686-2016 创建节约型公共机构(示范单位)通用要求 2016-06-15
- DB34/T 2684-2016 大口黑鲈早繁操作规程 2016-06-15
- DB34/T 2690-2016 道路运输车辆卫星定位系统平台技术要求与测试规范 2016-06-15
- DB34/T 2689-2016 城市智能公交系统 基本要求 2016-06-15
- DB34/T 2631-2016 泵站计算机监控与视频监视系统验收规程 2016-06-15
- DB34/T 2632-2016 水利工程建设项目档案整编规程 2016-06-15
- DB34/T 2683-2016 乌苏里拟鲿苗种培育操作规程 2016-06-15
- DB34/T 2633-2016 美丽乡村 传统村落保护与利用 2016-06-15
- DB34/T 2685-2016 大口黑鲈温室及外塘苗种培育操作规程 2016-06-15