犐犆犛35.040 犆犆犛犔80 中华人民共和国密码行业标准 犌犕/犜0080—2020 犛犕9密码算法使用规范 犛犕9犮狉狔狆狋狅犵狉犪狆犺犻犮犪犾犵狅狉犻狋犺犿犪狆狆犾犻犮犪狋犻狅狀狊狆犲犮犻犳犻犮犪狋犻狅狀 20201228 发布 20210701 实施 国家密码管理局 发 布 犌犕/犜0080—2020 目    次 前言 ………………………………………………………………………………………………………… Ⅰ 引言 ………………………………………………………………………………………………………… Ⅱ 1  范围 ……………………………………………………………………………………………………… 1 2  规范性引用文件 ………………………………………………………………………………………… 1 3  术语和定义 ……………………………………………………………………………………………… 1 4  缩略语 …………………………………………………………………………………………………… 2 5 SM9 的密钥对 …………………………………………………………………………………………… 2  5.1  生成元 ……………………………………………………………………………………………… 2  5.2 SM9 主私钥 ………………………………………………………………………………………… 2  5.3 SM9 主公钥 ………………………………………………………………………………………… 2  5.4 SM9 用户私钥 ……………………………………………………………………………………… 3  5.5 SM9 用户公钥 ……………………………………………………………………………………… 3 6  数据格式 ………………………………………………………………………………………………… 3  6.1  密钥数据结构 ……………………………………………………………………………………… 3  6.2  签名数据结构 ……………………………………………………………………………………… 4  6.3  加密数据结构 ……………………………………………………………………………………… 4  6.4  密钥封装数据格式 ………………………………………………………………………………… 4 7  预处理 …………………………………………………………………………………………………… 4  7.1  预处理杂凑函数 犎1 ……………………………………………………………………………… 4  7.2  预处理杂凑函数 犎2 ……………………………………………………………………………… 5  7.3  预处理对运算犲 …………………………………………………………………………………… 5  7.4  预处理用户验签 QD ……………………………………………………………………………… 5  7.5  预处理用户加密 QE ……………………………………………………………………………… 6 8  计算过程 ………………………………………………………………………………………………… 6  8.1  生成密钥 …………………………………………………………………………………………… 6  8.2  数字签名 …………………………………………………………………………………………… 7  8.3  签名验证 …………………………………………………………………………………………… 7  8.4  密钥封装 …………………………………………………………………………………………… 8  8.5  密钥解封 …………………………………………………………………………………………… 8  8.6  加密 ………………………………………………………………………………………………… 8  8.7  解密 ………………………………………………………………………………………………… 8  8.8  密钥协商 …………………………………………………………………………………………… 9 犌犕/犜0080—2020 前    言    本文件按照 GB/T1.1—2020《标准化工作导则   第 1 部分 :标准化文件的结构和起草规则》的规定 起草 。 请注意本文件的某些内容可能涉及专利 。 本文件的发布机构不承担识别专利的责任 。 本文件由密码行业标准化技术委员会提出并归口 。 本文件起草单位 :上海信息安全工程技术研究中心 、北京国脉信安科技有限公司 、深圳奥联信息安 全技术有限公司 、无锡华正天网信息安全系统有限公司 。 本文件主要起草人 :袁峰 、王晓春 、封维端 、张立圆 、王学进 、药乐 、蒋楠 、程朝辉 、蔡先勇 、王一曲 。 Ⅰ 犌犕/犜0080—2020 引    言    本文件是 IBC(IdentityBasedCryptography)基 于 标 识 的 密 码 技 术 系 列 标 准 之 一 ,及 依 托 于 GB/T38635.2 《信息安全技术  SM9 标识密码算法   第 2 部分 :算法》。 本文件的目标是保证 SM9 密码算法使用的正确性 ,为 SM9 密码算法的使用制定统一的数据格式 和使用方法 。 本文件从算法应用的角度给出 SM9 密码算法的使用说明 。 Ⅱ 犌犕/犜0080—2020 犛犕9密码算法使用规范 1  范围 本文件定义了 SM9 密码算法的使用方法 ,以及密钥 、加密与签名等的数据格式 。 本文件适用于 SM9 密码算法的使用 ,以及支持 SM9 密码算法的设备和系统的研发和检测 。 2  规范性引用文件 下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款 。 其中 ,注日期的引用文 件 ,仅该日期对应的版本适用于本文件 ;不注日期的引用文件 ,其最新版本 (包括所有的修改单 )适用于 本文件 。 GB/T32905  信息安全技术  SM3 密码杂凑算法 GB/T32907  信息安全技术  SM4 分组密码算法 GB/T32918(所有部分)  信息安全技术  SM2 椭圆曲线公钥密码算法 GB/T38635.1—2020  信息安全技术  SM9 标识密码算法   第 1 部分 :总则 GB/T38635.2—2020  信息安全技术  SM9 标识密码算法   第 2 部分 :算法 3  术语和定义 3.1 3.2 3.3 下列术语和定义适用于本文件 。 算法标识  犪犾犵狅狉犻狋犺犿犻犱犲狀狋犻犳犻犲狉 用于标明算法机制的数字化信息 。 犛犕9 密码算法  犛犕9犪犾犵狅狉犻狋犺犿 一种采用双线性对的椭圆曲线公钥密码算法 。 签名主密钥  狊犻犵狀犪狋狌狉犲犿犪狊狋犲狉犽犲狔 密钥管理基础设施的根签名密钥对 ,包括签名主私钥和签名主公钥 ,用于进行数字签名 、验签和为 用户生成用户签名密钥 。 3.4 加密主密钥  犲狀犮狉狔狆狋犻狅狀犿犪狊狋犲狉犽犲狔 密钥管理基础设施的根加密密钥对 ,包括加密主私钥和加密主公钥 ,用于进行数字加密 、解密和为 用户生成用户加密密钥 。 3.5 用户签名密钥  狊犻犵狀犪狋狌狉犲犽犲狔 其中私钥由密钥管理基础设施产生并下发给用户 。 该类密钥包括用户签名私钥和签名公钥 ,用于 数字签名和验签 。 1 犌犕/犜0080—2020 3.6 用户加密密钥  犲狀犮狉狔狆狋犻狅狀犽犲狔 其中私钥由密钥管理基础设施产生并下发给用户 。 该类密钥包括用户加密私钥和加密公钥 ,用于 加密 、解密和密钥协商 。 3.7 公开参数服务  狆狌犫犾犻犮狆犪狉犪犿犲狋犲狉狊犲狉狏犻犮犲 用于发布基于标识的密码技术中公开参数 、私钥生成策略 、用户标识信息和状态等数据的应用 服务 。 4  缩略语 下列缩略语适用于本文件 。 ECB:电子密码本方式(ElectronicCipherBook) ECC:椭圆曲线密码算法(EllipticCurveCryptography) IBC:基于标识的密码技术(IdentityBasedCryptography) ID:用户身份标识(Identity) KGC:密钥生成中心(KeyGeneratingCenter) PPS:公开参数服务(PublicParameterService) 5 犛犕9 的密钥对 5.1  生成元 犌1上的生成元 犘1点 ,记为(xp1,yP1),数据格式的 ASN.1 定义为 SM9P1::=BITSTRING,类型为 BITSTRING,其内容是 : 04‖X1‖Y1,其中 ,X1和 Y1分别标识点的 x 分量和 y分量 ,每个分量长度为 256bit。 犌2上的生成元 犘2点 ,记为(xp2,yP2),数据格式的 ASN.1 定义为 SM9P2::=BITSTRING,类型为 BITSTRING,其内容是 : 04‖X1‖X2‖Y1‖Y2,其中 ,X1、X2和 Y1、Y2分别标识公钥的各个 x 分量和 y分量 ,每个分量长度 为 256bit,或 03‖X1‖X2,其中 ,X1、X2分别标识公钥的各个 x 分量 ,每个分量长度为 256bit。 选取解压后的 Y 根值 (Y1‖Y2)中最右边 bit位为1 的那个值 。 还原后 Y 根值最右那个比特应用为1,否则 Y1= 基域 狇- 根 Y1,Y2= 基域狇- 根 Y2。 或 02‖X1‖X2,其中 ,X1、X2分别标识公钥的 2 个 x 分量 ,每个分量长度为 256bit。 选取解压后的 Y 根值 (Y1‖Y2)中最右边 bit位为0 的选项值 。 还原后 Y 根值取最右一比特为0 的选项值 ,否则Y1= 基域狇- 根 Y1,Y2= 基域狇- 根 Y2。 5.2 犛犕9 主私钥 包括 SM9 签名主私钥和加密主私钥 ,都是一个大于或等于1 且小于 N-1 的整数(N 是循环群 犌1、 犌2和 犌犜 的阶 ,其值见 GB/T38635.2—2020 的附录 A.1),简记为 s,长度为 256bit。 5.3 犛犕9 主公钥 包括 SM9 签名主公钥 犘狆狌犫2 和加密主公钥 犘狆狌犫1。 分别是 犌2 和 犌1 上的点 ,坐标表示为 (xSPub, ySPub)和(xEPub,yEPub)。 其中签名主公钥的 x,y坐标还分别包含两个分量即 x1 分量和 x2 分量 ,y1 分量和 2 犌犕/犜0080—2020 y2分量 ,每个分量的长度为 256bit。 而加密主公钥 x,y坐标值长度都是 256bit。 5.4 犛犕9 用户私钥 包括 SM9 用户签名私钥和用户加密私钥 ,分别是 犌1和 犌2上的点 ,坐标表示为 (xSPri,ySPri)和

pdf文档 GM/T 0080-2020 SM9密码算法使用规范

文档预览
中文文档 16 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共16页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
GM/T 0080-2020 SM9密码算法使用规范 第 1 页 GM/T 0080-2020 SM9密码算法使用规范 第 2 页 GM/T 0080-2020 SM9密码算法使用规范 第 3 页
下载文档到电脑,方便使用
本文档由 路人甲2022-05-14 08:55:44上传分享
给文档打分
您好可以输入 255 个字符
网站域名是多少( 答案:github5.com )
评论列表
  • 暂时还没有评论,期待您的金玉良言