iso file download
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210429912.5 (22)申请日 2022.04.22 (71)申请人 四川大学 地址 610065 四川省成 都市武侯区一环路 南一段24号 (72)发明人 陈兴蜀 周明星 王启旭 桂艳双  杨苗苗 黄国盛 魏明江 胡雯心  (74)专利代理 机构 成都禾创知家知识产权代理 有限公司 51284 专利代理师 刘凯 (51)Int.Cl. H04L 9/06(2006.01) H04L 9/32(2006.01) (54)发明名称 一种vTPM2.0的中国商用密码算法扩 展方法 (57)摘要 一种vTPM2.0的中国商用密码算法扩展方 法, 先启用libtpms函数库中预留的SM3、 SM4算法 标识符; 增加国密算法支持模块SM3和SM4部分, 向函数库libtpms中增加SM3和SM4算 法注册结构 体和算法运算结果编码、 解码函数的定义; 再对 tpm2‑tss组件进行改造, 向非对称加密模块中的 ECC算法选择器增加SM2算法支持, 向哈希运算模 块增加SM3算法选项和控制流, 向对称加密模块 增加SM4算法的选项和控制流; 最后对tpm2 ‑ tools组件进行改造, 向ECC算法选 择器和对称加 密算法选择器中添加对SM2和SM4算 法的调用。 本 发明有效弥补了vTPM2.0暂不支持国密SM2、 SM3、 SM4算法的问题, 保障了虚拟机中tpm命令能够通 过vTPM调用国密算法进行密码运算, 并避免了因 openssl不同版本的国密算法头文件 不稳定而带 来的冲突问题。 权利要求书2页 说明书6页 附图4页 CN 114679253 A 2022.06.28 CN 114679253 A 1.一种vTPM2.0的中国商用密码算法扩展方法, 其特 征在于, 包括以下步骤: 步骤1: 启用libtpms函数库 中预留的SM3和SM4算法标识符, 为添加国密算法支持模块 后的正常使用提供支持; 步骤2: 对于SM3算法, 增加国密算法支 持模块SM3部分, 该部分向函数库libtpms中增加 SM3算法注册结构体和SM 3算法运算结果编码、 解码函数的定义; 步骤3: 对于SM4算法, 增加国密算法支 持模块SM4部分, 该部分向函数库libtpms中增加 SM4算法注册结构体和SM4 算法运算结果编码函数的定义、 解码函数的声明; 步骤4: 对TPM2.0软件堆栈的tpm2 ‑tss组件进行改造, 向非对称加密模块中的ECC算法 选择器增加SM2算法支持; 向哈希运算模块增加SM3算法的选项和控制流, 以调用EVP_sm3 ()函数接口; 向对称加密模块增 加SM4算法的选项和控制流; 步骤5: 对TPM2.0软件堆栈的tpm2 ‑tools组件进行改造, 向ECC算法选择器和对称加密 算法选择器中分别添加对SM2和SM4 算法的调用。 2.根据权利要求1所述的vTPM2.0的中国商用密码算法扩展方法, 其特征在于, 所述步 骤1具体为: 将ALG_SM 3_256、 ALG_SM4的值 修改为ALG_Y ES。 3.根据权利要求1所述的vTPM2.0的中国商用密码算法扩展方法, 其特征在于, 所述步 骤2具体为: 步骤2.1: 向哈希算法子模块中注册SM3算法数据结构, 该结构包括SM3初始化函数、 更 新函数、 数据回收函数、 内存拷贝函数和算法运算单位长度定义、 输出结果长度定义、 算法 结构体长度定义、 算法标识符; 步骤2 .2: 增加对SM3算法运算结果进行编码和解码的函数, 其中编码函数为 tpmHashStateSM3_256_M arshal, 用于将哈希运算结果编码为TPM命令响应流; 解码函数为 tpmHashStateSM 3_256_UnMarshal, 用于将TPM命令响应流 解码为哈希运 算结果。 4.根据权利要求1所述的vTPM2.0的中国商用密码算法扩展方法, 其特征在于, 所述步 骤3具体为: 步骤3.1: 向对称加密算法选择器中注册SM4算法数据结构, 包括SM4加密函数、 解密函 数、 加密密钥设置函数、 解密密钥设置函数、 数据回收函数, 基于算法选择器的设计, SM4算 法数据结构以宏定义的形式定义; 步骤3.2: 增加对SM4算法处理结果进行编码的函数定义和解码函数的声明, 其中编码 函数为TPMI_SM4_KEY_BITS_Marshal, 用于将SM4算法 处理结果编码为TPM命令响应流; 解码 函数为TPMI_SM4_KE Y_BITS_UnMarshal, 用于将TPM命令响应流 解码为SM4处 理结果。 5.根据权利要求1所述的vTPM2.0的中国商用密码算法扩展方法, 其特征在于, 所述步 骤4中, 改造tpm2 ‑tss组件实现SM2算法的支持如下: 设置SM2算法加密标识, 向iesys_ cryptossl_get_ecdh_point函数和ossl_ecc_pub_from_tpm函数中添加SM2算法控制流选 项, 以设置curveId为SM2算法的数据结构; 向get_ecc_tpm2b_public_from_evp函数添加 SM2算法控制流选项, 以设置tpmCurveId为SM2算法标识; 向ifapi_calculate_pcr_digest 函数添加SM2算法控制流选项, 以设置pcr_digest_hash_alg为SM2签名算法的哈希算法类 型。 6.根据权利要求1所述的vTPM2.0的中国商用密码算法扩展方法, 其特征在于, 所述步 骤4中, 改造tpm2 ‑tss组件实现SM3算法的支持如下: 实现序列化, 向 哈希算法序列化函数中权 利 要 求 书 1/2 页 2 CN 114679253 A 2的CHECK_IN_LIST检查器添加SM3算法标识符, 向哈希算法参数序列化的函数添加SM3算法 控制流, 以设置算法长度和序列化数据变量; 实现反序列化, 向 哈希参数反序列化对象的函 数中添加SM3算法控制流, 设置哈希长度变量为TPM2 _SM3_256_DI GEST_SIZE, 向哈希算法反 序列化对象的函数中SUBTYPE_FILTER过滤器添加SM3算法标识符; 设置哈希数据控制流调 用加密接口, 对get_os sl_hash_md函数 添加SM3算法的控制流选项, 以调用EVP_s m3接口。 7.根据权利要求1所述的vTPM2.0的中国商用密码算法扩展方法, 其特征在于, 所述步 骤4中, 改造tpm2 ‑tss组件实现SM4算法的支持如下: 实现序列化, 向对称加密算法序列化对 象的函数中CHECK_IN_LIST检查器添加SM4算法标识符, 向对称加密算法密钥参数序列化的 函数中添加S M4算法控制流选项, 对SM4算法的密钥对象进 行序列化; 实现反序列化, 向对称 加密反序列化函数、 反序列化对象函数和反序列化算法模式函数中SUBTYPE_FILTER过滤器 添加SM4算法标识符。 8.根据权利要求1所述的vTPM2.0的中国商用密码算法扩展方法, 其特征在于, 所述步 骤5具体为: 步骤5.1: 对tpm2 ‑tools组件进行修改, 向密钥设置函数set_key_algorithm中ECC算法 和对称加密算法控制流选项i nPublic指针的curveID变量分别设置SM2和SM4 算法参数; 步骤5.2: 对tpm2 ‑tools组件进行修改, 向算法启动函数setup_alg中ECC算法和对称加 密算法控制流选项ctx结构体的curveID变量分别设置SM2和SM4 算法参数。权 利 要 求 书 2/2 页 3 CN 114679253 A 3

.PDF文档 专利 一种vTPM2.0的中国商用密码算法扩展方法

文档预览
中文文档 13 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共13页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种vTPM2.0的中国商用密码算法扩展方法 第 1 页 专利 一种vTPM2.0的中国商用密码算法扩展方法 第 2 页 专利 一种vTPM2.0的中国商用密码算法扩展方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 08:13:03上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。