GB/T 41389-2022 信息安全技术 SM9密码算法使用规范.pdf

GB/T 41389-2022 信息安全技术 SM9密码算法使用规范.pdf
积分0.00
特惠
积分0
VIP全站资料免积分下载
立即下载
同类资料根据编号标题搜索
文档
仅供个人学习
反馈
标准编号:GB/T 41389-2022
文件类型:.pdf
资源大小:6.7 M
标准类别:电力标准
资源ID:272464
VIP资源

GB/T 41389-2022标准规范下载简介:

内容预览由机器从pdf转换为word,准确率92%以上,供参考

GB/T 41389-2022 信息安全技术 SM9密码算法使用规范.pdf

6.1.4签名数据格式

6.1.5加密数据格式

SM9算法加密数据格式的ASN.1定义为: SM9Cipher::=SEQUENCE( EnTypeINTEGER, 加密方式

SM9算法加密数据格式的ASN.1定义为: SM9Cipher::=SEQUENCE( EnType INTEGER, 加密方式

LY/T 3151-2019 皂荚皂苷GB/T41389—2022

C1 SM9KeyBlob1, 密文第一部分C,(符合GB/T38635.2一2020) C3 OCTETSTRING,一密文杂凑值 C2 OCTETSTRING—密文 A EnType为加密的方式,内容为0代表M④K1序列密码加密,内容为1、2、4、8分别代表ECB、 CBC、OFB、CFB分组密码算法工作模式,分组密码算法工作模式和初始值IV遵守GB/T17964的规定。 分组密码加密的算法按照GB/T32907。 C1在GB/T38635.2—2020的9.2中被称为C1。 C3在GB/T38635.2一2020的9.2中被称为C3,为按照GB/T32905算法对明文数据运算得到的 杂凑值,其长度固定为256位。 C2在GB/T38635.2一2020的9.2中被称为C2,为加密密文。

6.1.6密钥封装数据格式

用户A将个随机数封装成C后,并传递给用户B,以便计算出密钥K 密钥封装数据格式的ASN.1定义为: SM9KeyPackage::=SEQUENCE( K OCTETSTRING, 生成的密钥 c SM9KeyBlobl .封装的交换密文 ) K作为用户A保留的密钥。C作为交换密文传递给B用户,B用户利用C可以生成K

6.2.1预处理杂函数H

6.2.2预处理杂漆函数H

6.2.3预处理对运算1

预处理对运算1是指使用KGC的签名主公钥和G1的生成元P,点,计算Gr中的元素g1。该纠 果用于SM9数字签名。 预处理对运算1应按GB/T38635.1一2020附录A规定的双线性对进行计算

处理对运算1是指使用KGC的签名主公钥和G1的生成元P1点,计算GT中的元素g1。该结 SM9数字签名。 处理对运算1应按GB/T38635.1一2020附录A规定的双线性对进行计算

6.2.4预处理对运算2

预处理对运算2是指使用KGC的加密主公钥和G2的生成元P点,计算Gr中的元素g2。该结 果用于SM9密钥交换、密钥封装和加密。 预处理对运算2应按GB/T38635.1一2020附录A规定的双线性对进行计算。 输入: P2 SM9P2 生成元P2 Ppube SM9EncryptMasterPublicKey 加密主公钥 输出: g2 比特串 一一群GT中元素,长度为3072位 计算公式为: g2 =e(Ppube ,P2) 双线性对。的详细计管过理 38635.12020由C6

6.2.5预处理用户验签公钥Om

6.2.6预处理用户加密公钥Q

预处理用户加密公钥Qe是指将身份标识ID字符串变换为群G,上的点Qe,该结果用子 换、密钥封装和加密的计算过程中。 预处理用户加密公钥Qe应按GB/T38635.2—2020中7.2的B1(或GB/T38635.2—202 的 A1,或 GB/T 38635.2—2020中 9.2 的 A1)进行计算。

GB/T413892022

SM9签名验证是指使用预处理对运算 、1的结果、 、被签名数据,通过验签计异 确定签名是否通过验证的过程。 签名验证过程应为: 输人: ID 字节串 签名者标识 hid 整型 私钥生成函数标识符 N 整型 循环群G1、G²和G的阶 g1 比特串 预处理对运算1的结果 Qp SM9KeyBlob2 预处理用户验签公钥Qp的结果 M 比特串 被签名数据 sign SM9Signature 签名值 8

输出: 为“真”表示“验证通过”,为“假”表示“验证不通过” 详细的计算过程按照GB/T38635.2—2020中6.4

GB/T413892022

SM9密钥封装是指使用对方身份标识通过双线性对运算生成密钥,并产生基于对方加密公钥的 文即加密封装的密文。 密钥封装过程应为: 输入: KeyLen整型 一生成密钥的长度 ID 字节串 一对方身份标识 g2 比特串 一预处理对运算2的结果 Qe SM9KeyBlobl 一对方的预处理用户加密公钥QE的结果 输出: KeyC SM9KeyPackage 一封装密文 详细的计 算过程按照GB/T38635.22020中8.2。

SM9密钥解封装是指用户收到封装密文后,对密文进行解封装的计算过程。 密钥解封装过程应为: 输人: ID 字节串 解封装方身份标识 de SM9EncryptPrivateKey 一解封装方加密私钥 c SM9KeyBlob1 一封装密文 输出: Key 比特串 一密钥 详细的计算过程按照GB/T38635.2—2020中8.4。

SM9加密是指使用指定公开密钥对明 生成相应密文的过程。该密文只能 该指定公开密钥对应的私钥解密。 加密过程应为: 输入: M 字节串 明文 EnType整型 一加密方式,见6.1.5 g2 比特串 一预处理对运算2的结果 Qe SM9KeyBlob1 一对方的预处理用户加密公钥Qe的结果 输出: c SM9Cipher 一密文 详细的计算过程按照GB/T38635.2—2020中9.2。

是指使用指定私钥对密文进行解密计算,还原双

详细的计算过程按照GB/T38635.2—2020中7.2。 用户A:

GB/T 413892022

详细的计算过程按照GB/T38635.2一2020中

7.1.1生成元数据结构

一位长为klen的密钥数据

7.1.2密钥数据结构

签名主私钥数据结构、签名主公钥数据结构、加密主私钥数据结构、加密主公钥数据结构、用户 钥数据结构和用户加密私钥数据结构按GB/T16262.1一2006进行编码,使用A.3的测试用例 直过。

7.1.3签名数据结构

7.1.4加密数据结构

7.1.5密钥封装数据结机

理杂漆函数H,按GB/T38635.22020中5.3.2

GB/T413892022

计算实例见GB/T38635.2—2020中A.2。

7.2.2预处理杂漆函数 H

预处理杂凑函数H2按GB/T38635.2—2020中5.3.2.3进行计算。

预处理杂漆函数H2按GB/T38635.2—2020中5.3.2.3进行计算。 计算实例见GB/T38635.2—2020中A.2

7.2.3预处理对运算1

预处理对运算1计算按GB/T38635.1一2020中A.1和C.6.2进行计算 计算实例见GB/T 38635.2—2020中A.2

7.2.4预处理对运算2

预处理对运算2计算按GB/T38635.1一2020中A.1和C.6.2进行计算。 计算实例见GB/T38635.2一2020中A.3、A.4或A.5

7.2.5预处理用户验签公钥Qm

7.2.6预处理用户加密公钥Q

预处理用户加密公钥Qe按GB/T38635.2—2020中7.2的B1(或GB/T38635.2—2020中8.2 或GB/T38635.2—2020中9.2的A1)进行计算。 计算实例见GB/T38635.2—2020中A.3、A.4或A.5

密钥包括主密钥生成、主公钥生成和用户私钥生

GB/T413892022

签名验证按GB/T38635.2一2020中6.4进行计算,计算实例见GB/T38635.2一2020中A.2

GB/T 413892022

本附录给出数据格式的编码测试用例。 本附录中,所有用16进制表示的数,左边为高位,右边为低位。 本附录中的数据来源见GB/T38635.2—2020中附录A。

A.2生成元数据格式编码测试用例

群G的生成元Pi=(xP1,yp) 坐标XP1:93DE051D62BF718FF5ED0704 487D01D6E1E4086909DC3280E8C4E4817C66DDDD 坐标yPI:21FE8DDA4F21E607631065125C395BBC1C1C00CBFA6024350C464CD70A3EA616 群G2的生成元P2=(XP2yp2) 坐标XP2:(85AEF3DO78640C98597B6027B441A01FF1DD2C190F5E93C4 54806C11D8806141, 3722755292130B08D2AAB97FD34EC120EE265948D19C17ABF9B7213BAF82D65B) 坐标yP2:(17509B092E845C1266BAOD262CBEE6ED0736A96FA347C8BD 856DC76B 84EBEB96, A7CF28D519BE3DA65F3170153D278FF247EFBA98A71A08116215BBA5C999A7C7) P的编码如下。 0342: BIT STRING 0004 93DE051D62BF718F F5ED07 04 487D : 01D6 E1 E4 08 69 09 DC 32 80 E8 C4 E4 81 7C 66 DDDD21FE8DDA4F21E607631065125C39 5BBC1C1C00CBFA6024350C464CD70A3E A6 16 P的编码如下。 038182: BIT STRING 00 04 85AE F3 D0 78 64 0C 9859 7B 60 27B4 41 : A01FF1 DD2C19 OF 5E93C454806C11D880 61 41 37 22 75 52 92 13 OB 308D2 AAB9 7FD34E : C120 26 59 D1 9C17 AB F9 B7 21 3BAF82 D65B 17 50 9B 092E845C1266BAOD262CBE E6ED07 36A9 6FA347 C8 BD 85 6D C7 6B84EB EB96A7CF28D519BE3DA65F3170153D27 8FF247EFBA98A71A 08116215BBA5C999 A7. C7

A.3密钥数据格式编码测试用例

GB/T413892022

: B6866C50457CFC7AA2A4AD65C3168FF7 42 10 用户签名私钥的编码如下。 0342: BIT STRING : 0004A5702F05CF1315305E2D6EB64B0D : EB923D B1AO BCFO CAFF90523A C8754AA6 : 982078559A844411F9825C109F5EE3F5 : 2D 72 OD DO17 85392A727BB1 556952 B2BO : 13 D3 用户加密私钥的编码如下。 03 8182: BIT STRING : 00044C5EC9C8CA8DEBA238CC3E500458 : F5 14 7911F2 25 1A4B D0AA 903B B5F8 D5FD : 23B4 0360DBBD D69A05730775BB 3F8A D7 : 99 CC571D CB 883D 417B8D239302BD 9009 : 7C6B21F05A64F65928 7400F2D2027232 : 9F 2A 80 EB 60 76 7C9FF9D23CE8046AF5C9 : 50 DO68AFFF D5 03 C7 68 A7 65 73 1F62FC3C : B7B7 70 54 56 D4 0830E8 68 CC 17A7F95185 56 78

A.4签名数据格式编码测试用例

: 823C4B21 E4 BD 2D . 668563152FC33F55D7BFBB9BD9705ADB 0342: BIT STRING 000473BF96923CE58B6AD0E13E9643A4 :: : 06D8EB98417C 50EF1B29CEF9ADB48B 6D . 598C 85 6712 F1 C2E0 968AB7 769F42A9 95 : 86AE D139D5B8B3E15891827C C2AC ED 9B : AA 05

823C4B21 2D : 668563152FC33F55D7BFBB9BD9705ADB 0342: BIT STRING :: 0004 73BF96923C E58B6AD0E13E9643A4 : 06D8EB98417C50EF1B29CEF9ADB48B6D . 598C 856712F1 C2E0968AB7769F42A995 : 86AE D139D5B8B3E15891827C C2AC ED 9B : AA05

GB/T 9535-1998 地面用晶体硅光伏组件 设计鉴定和定型A.5加密数据格式编码测试用例

GB/T413892022

429197BCAB70B25AFEE37A2B 9D B9F367 04 14: OCTET STRING 1B5F5BOE951489682F3E64E1378CDD5L : A9 51 3B 1C +

6密钥封装数据格式编码测试用例

CNAS RC03:2013 认证机构信息通报规则03 42:BIT STRING

: 00041EDEE2C3F465914491DE44CEFB2C : B4 34 AB 02 C3 08 D9 DC 5E 20 67B4 FE D5 AAAC " 8AOF1C 9B4C435ECA35AB83BB734174CO : F78F DE81A53374AFF3B3602B BC 5E37BE : 9A 4C 密钥封装数据结构的编码如下。 30 66: SEQUENCE{ 04 20: OCTET STRING : 4FF5CF86D2AD40 C8F4 BA C98D 76ABDBDE OCOE2F0A829D3F911EF5B2BCE0695480 0342: BIT STRING . 00041EDEE2C3F465914491DE44CEFB2C B4 34 AB 02 C3 08 D9 DC 5E 20 67 B4 FE D5 AA AC 8AOF1C9B4C435ECA35AB83BB734174C0 F78FDE81A53374AFF3B3602BBC 5E37BE : 9A 4C

: 00041EDEE2C3F465914491DE44CEFB2C B434 AB 02 C308 D9DC 5E20 67B4 FED5AAAC : 8AOF1C9B4C435ECA35AB83BB734174CO : F78FDE81A53374AFF3B3602B BC 5E37BE : 9A 4C 密钥封装数据结构的编码如下。 30 66: SEQUENCE{ 04 20: OCTET STRING : 4FF5CF86D2AD40C8F4BA C98D76ABDBDE OCOE2F0A829D3F911EF5B2BCE0695480 0342: BIT STRING . 00041EDEE2C3F465914491DE44CEFB2C B4 34AB02 C308D9 DC 5E20 67B4 FE D5AAAC 8AOF1C9B4C435ECA35AB83BB734174CO F78FDE81A53374AFF3B3602BBC5E37BE 9A 4C

©版权声明