(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210342588.3
(22)申请日 2022.03.31
(71)申请人 中安云科 科技发展(山 东)有限公司
地址 250000 山东省济南市中国(山 东)自
由贸易试验区济南片区经十路7000号
汉峪金谷A7-4栋1768
(72)发明人 武迪 刘磊
(74)专利代理 机构 北京盛凡佳华专利代理事务
所(普通合伙) 11947
专利代理师 金福坤
(51)Int.Cl.
H04L 9/14(2006.01)
H04L 9/32(2006.01)
H04L 9/06(2006.01)
H04L 9/30(2006.01)H04L 9/00(2022.01)
H04L 9/40(2022.01)
G06F 8/65(2018.01)
(54)发明名称
一种密码卡 安全远程升级的方法
(57)摘要
本发明涉及密码卡升级技术领域, 具体地
说, 涉及一种密码卡安全远程升级的方法。 包括
如下步骤: 在密码卡内部通过SM3生成固件请求
文件; 将固件请求文件通过网络传 送给密码卡厂
家; 解析固件请求文件; 依次使用SM4、 SM2对升级
固件进行加密, 并通过SM3生成固件升级文件; 将
固件升级文件通过网络传送到密码卡内部; 密码
卡解析固件升级文件; 比较解析出的数据与密码
卡内部保存的是否一致; 依次使用SM2、 SM4解密
获取原始固件并更新到密码卡。 本发 明设计通过
使用密码学算 法SM2、 SM3、 SM4对升级文件进行保
护, 可以防止外部对升级文件进行非法篡改; 密
码卡的升级文件根据密码卡内部数据的变化动
态生成, 可以防止重放攻击, 提高升级效率、 缩短
耗时, 且有效降低成本 。
权利要求书2页 说明书7页 附图4页
CN 115065471 A
2022.09.16
CN 115065471 A
1.一种密码卡 安全远程升级的方法, 其特 征在于: 包括如下步骤:
S1、 在密码卡 内部生成一对由私钥Pa、 公钥Pb组成的SM2密钥对和一组16字节的随机数
R1, 将SM2公钥Pb和随机数R 1以及设备编号Sn 通过SM3算法获得H1;
S2、 将Pb、 R 1、 Sn、 H1保存到固件请求文件F1中;
S3、 将固件请求文件F1通过网络传送给密码卡厂家;
S4、 密码卡厂家从固件请求文件F1中解析出H1, 使用SM3运算, 结果与H进行比较, 如果
不同则退 出, 正确则继续 解析出Pb、 R1、 Sn;
S5、 生成16字节的随机数R2, 使用R2对升级固件使用SM4算法进行加密获得Fs, 并使用
Pb对R2进行SM2加密获得E1, 将Fs、 E1、 R1、 Sn进行SM3运算获取H2, 将Fs、 E1、 R1、 Sn、 H2保存到
固件升级 文件F2中;
S6、 将固件升级 文件F2通过网络传送到密码卡内部;
S7、 密码卡解析固件升级文件F2, 进行SM3算法运算, 结果与H2比较, 如果不 同则退出,
正确则解析 出Fs、 E1、 R1、 Sn;
S8、 比较解析出的R1、 Sn与密码卡内部保存的R1、 Sn是否一致, 如果不同则退出, 正确则
继续;
S9、 使用Pa对E1进行SM2解密获取到R2, 使用R2对Fs使用SM4算法解密获取到原始固件,
更新到密码卡 程序空间中, 至此升级完成。
2.根据权利 要求1所述的密码卡安全远程升级的方法, 其特征在于: 所述S1、 所述S4、 所
述S5、 所述S7中, S M3算法适用于商用密码应用中的数字签名和验证, 是在SHA ‑256基础上改
进实现的一种算法, 其安全性和SHA ‑256相当, 整个运算过程包含四个步骤: 消息填充、 消息
扩展、 迭代压缩、 输出 结果。
3.根据权利 要求1所述的密码卡安全远程升级的方法, 其特征在于: 所述S1、 所述S4、 所
述S5中, H1、 H和H2均为哈希值, 其中, H1为密码卡内部密钥对的SM3哈希值, H为升级 固件的
内部哈希值, H2为升级固件加密后的SM 3哈希值。
4.根据权利 要求1所述的密码卡安全远程升级的方法, 其特征在于: 所述S1、 所述S5、 所
述S9中, S M2算法是我国自主知识产权的商用密码算法, 是ECC算法的一种, 基于椭圆曲线离
散对数问题, 计算复杂度是指数级, 求 解难度较大。
5.根据权利 要求1所述的密码卡安全远程升级的方法, 其特征在于: 所述S5中, SM2加密
的算法流 程包括如下步骤:
设需要发送的消息为比特串M, klen为M的比特长度; 为了对明文M进行加密, 加密者通
过以下运 算步骤进行实现:
A1、 用随机数发生器产生随机数k∈[1,n ‑1];
A2、 计算椭圆曲线C1=[k]G=(x1,y1), 将C1的数据类型转换为比特串;
A3、 计算椭圆曲线点S=[h]pb, 若S是 无穷远点, 则报错并退 出;
A4、 计算椭圆曲线点[k]pb=(x2,y2), 将坐标x2、 y2的数据类型转换为比特串;
A5、 计算t=KDF(x2||y2,klen), 若t为全0比特串, 则返回步骤A1;
A6、 计算
A7、 计算C3=Hash(x2||M||y2);
A8、 输出密文C=C1||C3||C2。权 利 要 求 书 1/2 页
2
CN 115065471 A
26.根据权利 要求5所述的密码卡安全远程升级的方法, 其特征在于: 所述S9中, SM2解密
的算法包括如下步骤:
设klen为密文中C2的比特长度;
为了对密文C=C1||C3||C2进行解密, 解密者 通过以下运 算步骤进行实现:
B1、 从C中取出比特串C1, 将C1的数据类型转换为椭圆曲线上的点, 验证C1是否满足椭圆
曲线方程, 若不满足则报错并退 出;
B2、 计算椭圆曲线点S=[h]C1, 若S是无穷远点, 则报错并退 出;
B3、 计算[dB]C1=(x2,y2), 将坐标x2、 y2的数据类型转换为比特串;
B4、 计算t=KDF(x2||y2,klen), 若t为全0比特串, 则报错并退 出;
B5、 从C中取 出比特串C2, 计算
B6、 计算u=Hash(x2||M'||y2), 从C中取 出比特串C3, 若u≠C3, 则报错并退 出;
B7、 输出明文M'。
7.根据权利 要求6所述的密码卡安全远程升级的方法, 其特征在于: 所述A5、 所述B4中,
实现KDF函数的流 程如下, 其中的Ha函数使用SM 3算法:
输入: 比特串Z, 整数k len;
输出: 长度为 klen的密钥数据比特串K;
Step1、 初始化 一个32比特构成的计算器ct=0x0 0000001;
Step2、 对i从1到
执行:
(2.1)、 计算Hai=Hv(Z||ct);
(2.2)、 ct++;
Step3、 若k len/v是整数, 令
否则令
为
最左边的
比特;
Step4、 令
8.根据权利 要求1所述的密码卡安全远程升级的方法, 其特征在于: 所述S5、 所述S9中,
SM4算法是一种分组密码算法, 其分组长度和密钥长度均为 128bit, 加密算法与密钥扩展算
法均采用32轮非线性迭代结构, 以字为单位进行加密运算, 每一次迭代运算均为一轮变换
函数。权 利 要 求 书 2/2 页
3
CN 115065471 A
3
专利 一种密码卡安全远程升级的方法
安全报告 >
其他 >
文档预览
中文文档
14 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共14页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 思考人生 于 2024-02-07 20:40:21上传分享