前沿技术| GM/T 0009《SM2密码算法使用规范》新老标准对比分析
摘要
本文档对比GM/T 0009《SM2密码算法使用规范》的新版本(2023版)和老版本(2012版)的差异,并给出支持新版本标准的升级建议以供参考。
关键词:SM2,公钥,私钥,点压缩,SM2预处理
背景
2023年12月,国家密码管理局在第45号公告[1]中发布信息:自2024年6月1日起实施GM/T 0009—2023《SM2密码算法使用规范》[2](以下简称新版标准)等25项密码行业标准,被代替的老版本GM/T 0009—2012《SM2密码算法使用规范》[3](以下简称老版标准)自2024年6月1日起予以废止。
GM/T 0009《SM2密码算法使用规范》介绍SM2密码算法使用,其主要内容包括:
定义SM2使用方法,例如计算Z值,计算签名验签的杂凑值e等; 定义相关数据格式,例如公私钥格式、密文格式、签名数据格式等。本标准是一个处于底层的密码基础类标准,且影响范围较大——涉及支持SM2算法的设备和系统。因此该标准的修订版不可能和之前版本有太大的差异——牵一发而动全身。
本文对比GM/T 0009新版本和老版本的差异,并给出支持新版本标准的建议以供参考。
注:本文仅代表个人观点。如有谬误,敬请批评指正。联系方式见文末。
差异对比
2.1
差异综述
按新版本的前言所述,GM/T 0009新老版本之间主要有如下差异(见下表)。
新老版本差异总结如下:
新版本向下兼容老板本 新版本变化小 对支持SM2算法的设备和系统的影响小各差异点的详细分析可见本章后续内容。
2.2 差异1—SM2私钥的描述
差异点1“SM2私钥的描述”,其差异如下表所示。表中信息直接摘录新老版本标准的描述内容,见老版本5.2节和新版本5.2节。
本差异点主要是文字性修订。
其中,关于“私钥长度”补充如下说明:
老版本:在此处专门说明私钥长度为256比特; 新版本:在此处未指明私钥长度,但在条款7.4 b)中明确说明“私钥明文为高字节在前的8位字节串,其长度固定为32字节”,因此私钥仍为256比特。综上,私钥长度无实质性差异。
本差异点影响:极小。
2.3
差异2—SM2公钥的描述
差异点2“SM2公钥的描述”,其差异如下表所示。表中信息直接摘录新老版本标准的描述内容,见老版本5.2节和新版本5.2节。
本差异点主要是文字性修订。
此外,如前所述,因为私钥长度无变化仍为256比特,所以公钥的x和y坐标长度不变,都是256比特。
本差异点影响:极小。
2.4
差异3—SM2公钥的数据格式
差异点3“SM2公钥的数据格式”,其差异如下表所示。表中信息直接摘录新老版本标准的描述内容,见老版本7.1节和新版本7.1节。
本差异点主要是新版本增加对公钥压缩点的支持,这使得公钥可表述为:
——04