主页 购物车 询价 关于我们
www.GB-GBT.com
收录标准: 221921 (2026-04-16) 搜索

GM/T 0125.4-2022 相关标准英文版PDF

标准号码价格美元第2步(购买)交付天数标准名称
GM/T 0125.4-2022 345 GM/T 0125.4-2022 3秒自动 JSON Web 密码应用语法规范 第4部分:密钥
   
基本信息
标准编号 GM/T 0125.4-2022 (GM/T0125.4-2022)
中文名称 JSON Web 密码应用语法规范?第4部分:密钥
英文名称 JavaScript object notation web cryptographic application syntax specification - Part 4: Key
行业 Chinese Industry Standard (推荐)
中标分类 L80
字数估计 14,197
发布日期 2022-11-20
实施日期 2023-06-01
发布机构 国家密码管理局

GM/T 0125.4-2022: JSON Web 密码应用语法规范 第4部分:密钥 ICS 35.030 CCSL80 中华人民共和国密码行业标准 JSONWeb密码应用语法规范 第4部分:密钥 specification-Part4:Key 2022-11-20发布 2023-06-01实施 国家密码管理局 发 布 目次 前言 Ⅲ 引言 Ⅳ 1 范围 1 2 规范性引用文件 1 3 术语和定义 1 4 缩略语 1 5 JSONWeb密钥格式 2 5.1 通则 2 5.2 “kty”(密钥类型)参数 2 5.3 “use”(公钥用法)参数 4 5.4 “key_ops”(密钥操作)参数 4 5.5 “alg”(算法)参数 5 5.6 “kid”(密钥ID)参数 5 5.7 “x5u”(证书URL)参数 5 5.8 “x5c”(证书链)参数 5 5.9 “x5t#sm3”(证书SM3杂凑值)参数 5 6 JWK集合格式 5 6.1 总体说明 5 6.2 “keys”参数 5 7 字符串比较规则 6 附录A(资料性) JWK示例 7 A.1 综述 7 A.2 SM2签名公钥 7 A.3 SM2加密公钥 7 A.4 SM9加密用户标识 7 A.5 SM2证书 7 A.6 对称密钥 8 A.7 JWK集合 8 前言 本文件按照GB/T 1.1-2020《标准化工作导则 第1部分:标准化文件的结构和起草规则》的规定 起草。 本文件是GM/T 0125《JSONWeb密码应用语法规范》的第4部分。GM/T 0125已经发布了以下 部分: ---第1部分:算法标识; ---第2部分:数字签名; ---第3部分:数据加密; ---第4部分:密钥。 请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。 本文件由密码行业标准化技术委员会提出并归口。 本文件起草单位:广东省电子商务认证有限公司、智巡密码(上海)检测技术有限公司、格尔软件股 份有限公司、北京信安世纪科技股份有限公司、北京数字认证股份有限公司、北京国脉信安科技有限公 司、中国科学院信息工程研究所、广东邮电职业技术学院、上海市数字证书认证中心有限公司。 本文件主要起草人:陈树乐、韩玮、郑强、张永强、袁峰、高能、张庆勇、赵敏、刘义、黄志伟、林少柳、 梁宁宁、梁家声、傅大鹏、黎明、王维初。 引 言 《JSONWeb密码应用语法规范》旨在以国产商用密码算法为核心,来保证数据机密性和完整性,适 用于JSONWeb密码应用产品的研发与检测,其他使用JSON数据交换格式的安全产品,可参考使用。 《JSONWeb密码应用语法规范》由四个部分构成。 ---第1部分:算法标识。定义了JSONWeb密码应用的算法标识。 ---第2部分:数字签名。描述了基于JSON数据结构来保护消息内容的数字签名或消息鉴别码 的语法规范,并给出了相应的生成和验证流程。 ---第3部分:数据加密。描述了使用身份鉴别和加密来确保数据的机密性和完整性的技术要求。 ---第4部分:密钥。定义了密钥的JSON数据结构表示方法。 本文件为《JSONWeb密码应用语法规范》的第4部分,定义了密钥的JSON数据结构表示方法。 JSONWeb密码应用语法规范 第4部分:密钥 1 范围 本文件定义了密钥的JSON数据结构表示方法。 本文件适用于JSONWeb密码应用产品的研发与检测,其他使用JSON数据交换格式的安全产 品,可参考使用。 2 规范性引用文件 下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文 件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于 本文件。 GB/T 16263.1 信息技术 ASN.1编码规则 第1部分:基本编码规则(BER)、正则编码规则 (CER)和非典型编码规则(DER)规范 GM/T 0125.1 JSONWeb密码应用语法规范 第1部分:算法标识 GM/Z4001 密码术语 3 术语和定义 GM/Z4001界定的以及下列术语和定义适用于本文件。 3.1 JWK集合 JWKset 表示一组JWK的JSON对象。 3.2 base64url编码 base64urlencode 充编码,然后将base64编码结果中的‘+’符号替换为‘-’符号、将‘/’符号替换为‘_’符号。 4 缩略语 下列缩略语适用于本文件。 JWK:JSONWeb密钥(JSONWebKey) 5 JSONWeb密钥格式 5.1 通则 JSONWeb密钥(JWK)是表示密钥信息的JSON对象。该对象的参数用来描述密钥的属性。本 文件定义了通用参数及与密钥类型相关的参数,使用的DER编码规则,应符合GB/T 16263.1。JWK 示例见附录A。 JWK中的参数名称应唯一,JWK解析器应拒绝包含重复参数名称的JWK,各参数定义见表1。 表1 JWK密钥参数 参数值 类型 说明 要求 kty 字符串 密钥类型 必选 use 字符串 公钥用法 可选 key_ops 数组 密钥操作 可选 alg 字符串 算法 可选 kid 字符串 密钥ID 可选 x5u 字符串 证书URL 可选 x5c 数组 证书链 可选 x5t#sm3 字符串 证书SM3杂凑值 可选 5.2 “kty”(密钥类型)参数 5.2.1 总体说明 “kty”参数用于标识密钥的类型,用区分大小写的字符串形式表示,该参数必选。 本文件定义了两种“kty”参数值。见表2。 表2 kty参数 “kty”参数值 说明 EC ECC密钥 oct 对称密钥或者字节串 5.2.2 SM2密钥 5.2.2.1 总体说明 本文件描述了SM2密钥相关的参数,用于标识用户签名或加密的密钥信息,SM2密钥参数见表3。 表3 SM2密钥参数 参数 类型 说明 kty 字符串 密钥类型,应为EC crv 字符串 算法曲线,应为sm2p256v1 x 字符串 SM2公钥x坐标,具体见5.2.2.2 y 字符串 SM2公钥y坐标,具体见5.2.2.3 5.2.2.2 SM2的“x” 对于SM2算法,“x”表示椭圆曲线点的x坐标。其值用x坐标八位字节串的base64url编码表示。 5.2.2.3 SM2的“y” 对于SM2算法,“y”表示椭圆曲线点的y坐标,其值用y坐标八位字节串的base64url编码表示。 5.2.3 SM9密钥 5.2.3.1 总体说明 本文件描述了SM9密钥相关的参数,用于标识用户签名或加密的公钥信息,SM9密钥由以下参数 组成,见表4。 表4 SM9密钥参数 参数 类型 说明 kty 字符串 密钥类型,应为EC crv 字符串 算法曲线,应为sm9curve id 字符串 用户标识,具体见5.2.3.2 hid 整数 签名或加密私钥生成函数识别符,具体见5.2.3.3 x_pub 字符串 签名或加密主公钥的x坐标,具体见5.2.3.4 y_pub 字符串 签名或加密主公钥的y坐标,具体见5.2.3.5 5.2.3.2 SM9的“id” “id”表示用户标识。其值用八位字节串的base64url编码表示。 5.2.3.3 SM9的“hid” “hid”表示私钥生成函数识别符,长度为一个字节,其值用无符号整数表示。如果公钥用途为数字 签名,对应为签名私钥生成函数识别符;如果公钥用途为加密,对应为加密私钥生成函数识别符。 5.2.3.4 SM9的“x_pub” “x_pub”表示主公钥的x坐标。如果公钥用途为数字签名,对应为签名主公钥x坐标;如果公钥用 途为加密,对应为加密主公钥x坐标。其值用八位字节串的base64url编码表示。 5.2.3.5 SM9的“y_pub” “y_pub”表示主公钥的y坐标。如果公钥用途为数字签名,对应为签名主公钥的y 坐标。如果公 钥用途为加密,对应为加密主公钥y坐标。其值用八位字节串的base64url编码表示。 5.2.4 对称密钥 5.2.4.1 总体说明 本文件描述了对称密钥的参数,用于标识对称密钥的信息。其中对称密钥的算法需要结合“alg”参 数才能区分。对称密钥由以下参数组成,见表5。 表5 对称密钥参数 参数 类型 说明 k 字符串 对称密钥 5.2.4.2 对称密钥的“k” “k”表示对称密钥或其他密钥字节串,其值用八位字节串的base64url编码表示。 5.3 “use”(公钥用法)参数 “use”参数用于标识公钥的预期用途。其值是区分大小写的字符串,此参数可选,该参数定义的 值为: ---“sig”(签名); ---“enc”(加密)。 5.4 “key_ops”(密钥操作)参数 “key_ops”参数用于标识密钥操作类型。它的值是一组密钥操作值的字符串数组。该参数取值可 包括: ---“sign”(计算数字签名或消息鉴别码); ---“verify”(验证数字签名或消息鉴别码); ---“encrypt”(加密内容); ---“decrypt”(解密内容并验证解密,如果适用); ---“wrapKey”(密钥封装); ---“unwrapKey”(解密密钥封装并验证解密,如果适用); ---“deriveKey”(派生密钥); ---“deriveBits”(派生不用作密钥的位)。 所有密钥操作值是区分大小写的字符串,重复的密钥操作值不能出现在数组中。“key_ops”参数是 可选的。 不应为密钥指定多个不相关的密钥操作,可使用 “sign”与“verify”,“encrypt”与“decrypt”,和 “wrapKey”与“unwrapKey”的组合。 “use”和“key_ops”参数不宜一起使用,如果两者都被使用,它们表示的信息应一致,应用程序应明 确指定使用哪些参数。 5.5 “alg”(算法)参数 “alg”参数用于标识密钥相关的算法。其取值是区分大小写的字符串。该参数可选,取值应符合 GM/T 0125.1。 5.6 “kid”(密钥ID)参数 “kid”参数用于匹配特定密钥。其值是区分大小写的字符串,此参数可选。 当在JWK集合中使用“kid”值时,JWK集合中的不同密钥应使用不同的“kid”值。当与JWS或 JWE一起使用时,“kid”值可用于匹配JWS或JWE“kid”参数值。 5.7 “x5u”(证书URL)参数 “x5u”参数用于标识数字证书或证书链的资源,其值是一个 URI形式的字符串。该资源应提供符 合PEM编码形式的证书或证书链,每个证书使用以下分隔符隔开: -----BEGINCERTIFICATE----- -----ENDCERTIFICATE----- 第一个证书中的密钥应匹配JWK其他参数所代表的公钥。此参数可选。 5.8 “x5c”(证书链)参数 “x5c”参数用于标识密钥相关的数字证书或证书链,其值是一个JSON字符串数组。数组中的元素 是数字证书DER编码的base64编码字符串。数组第一个元素应是匹配密钥的数字证书,后面的元素 依次是向前一个元素的颁发证书的CA所持有的证书。此参数可选。 与“x5u”参数一样,当使用“x5c”参数时,可能存在提供密钥用法、算法或其他信息的可选JWK参 数。如果存在其他参数,则这些参数的内容应在语义上与第一张证书中的相关字段一致。 5.9 “x5t#sm3”(证书SM3杂凑值)参数 “x5t#sm3”参数是一个字符串,用于标识数字证书的SM3指纹,可用来匹配密钥。该值生成过 程:先计算数字证书DER编码进行SM3杂凑后再进行base64url编码。SM3算法的计算方法和步骤 应符合GB/T 39205。此参数可选。 6 JWK集合格式 6.1 总体说明 JWK集合是一个JSON对象,表示一组JWK。JSON对象应存在一个“keys”参数,其值是一个 JWK数组。此JSON对象可包含空格、“/”和换行符。 JWK集合中的参数名称应唯一,JWK集合解析器应拒绝包含重复参数名称的JWK集合,JWK集 合示例见附录A。 6.2 “keys”参数 “keys”参数的值是JWK值的数组。默认情况下,数组中JWK值的顺序并不意味着它们之间的优 先顺序,JWK集合的应用程序可根据需要为顺序指定含义。 7 字符串比较规则 处理JWK时,应将已知字符串与JSON对象中的头部参数名称和头部参数值进行比较并严格区 分大小写,该比较规则适用于一般情况下对所有JSON字符串的比较。当头部参数的定义明确指出要 为该头部参数值使用其他比较规则时,应遵循头部参数的具体定义。 附 录 A (资料性) JWK示例 A.1 综述 本附录中,明文采用UTF-8编码。 本附录展示了SM2数字签名的用户公钥信息、SM2加密时的用户公钥信息、SM9加密时的用户标 识信息、用户持有的SM2证书信息、对称密钥信息和JWK集合的示例。 A.2 SM2签名公钥 该示例展示使用SM2数字签名的用户公钥信息,用于标识用户和验证数字签名。 "kty":"EC", "crv":"sm2p256v1", "use":"sig", A.3 SM2加密公钥 该示例展示使用SM2加密时的用户公钥信息,用于标识用户和匹配对应的解密私钥。 "kty":"EC", "crv":"sm2p256v1", "use":"enc", "y":"dEK3Qy1crFnVjlNlac-Tx_CnkJoXhyBB8Y1Jm-Fz......