掌桥专利:专业的专利平台
掌桥专利
首页

一种数据加密卡的加密方法及装置

文献发布时间:2023-06-19 11:06:50


一种数据加密卡的加密方法及装置

技术领域

本发明涉及数据安全技术领域,尤其涉及一种数据加密卡的加密方法及装置。

背景技术

传统密码卡的设计方案大都是以数据传输总线芯片与安全加密芯片进行组合开发为主,这种方案虽然开发周期短,稳定性强,但这种加密方法具有投入成本高且灵活性差的明显缺点。

因此,提出一种制造成本低,且可以存在多种加密算法组合的密码卡加密方法,具有十分重要的意义。

发明内容

本发明实施例提供了一种数据加密卡的加密方法及装置,应用于加密卡系统,克服现有的数据加密方法存在的投入成本高且灵活性差的问题。

第一方面,本发明实施例提供的一种数据加密卡的加密放法,应用于加密卡系统,所述加密卡系统包括:用于进行数据加密的CPU子系统,以及用于和读卡装置进行交互的硬件子系统;所述CPU子系统中包括:加密算法装置,所述加密算法装置配置有SM2和SM4国密算法;所述硬件子系统中包括:PCI-E接口;所述方法包括:

当所述PCI-E接口处于连接状态时,响应于开始加密的指令,获取SM2私钥和SM4秘钥;所述开始加密的指令为所述CPU子系统从所述PCI-E接口读取;

基于所述SM2私钥,计算得到SM2公钥;

利用所述SM4秘钥对目标明文进行加密,生成目标密文;

利用所述SM2公钥对所述SM4秘钥进行加密,生成加密后的SM4秘钥;

根据所述目标密文和所述加密后的SM4秘钥,得到加密数据包。

可选地,所述加密卡系统还包括:随机数生成模块;获取SM4秘钥和SM2私钥,包括:

通过所述随机数生成模块生成第一组随机数和第二组随机数;

将所述第一组随机数设置为所述SM4秘钥;

将所述第二组随机数设置为所述SM2私钥。

可选地,所述加密算法模块还配置有SM3国密算法;利用所述SM2公钥对所述SM4秘钥进行加密,生成加密后的SM4秘钥之后,还包括:

通过所述SM3国密算法对所述目标密文进行加密,生成目标密文摘要;

所述根据所述目标密文和所述加密后的SM4秘钥,得到加密数据包的步骤,包括:

将所述目标密文、所述目标密文摘要和所述加密后的SM4秘钥组合,生成所述加密数据包。

第二方面,本发明实施例提供的一种数据加密卡的解密方法,包括:

S1,获取加密数据包,从所述加密数据包中提取加密后的SM4秘钥和目标密文;

S2,判断所述加密数据包中的所述目标密文是否为有效目标密文;若是,则执行步骤S3;若否,则执行步骤S5;

S3,利用SM2私钥对所述加密后的SM4秘钥进行解密,得到SM4秘钥;所述SM2私钥为加密卡系统中的随机生成模块生成;

S4,利用所述SM4秘钥对所述有效目标密文解密,得到目标明文;

S5,终止对所述加密数据包的数解密操作。

可选地,判断所述加密数据包中的所述目标密文是否为有效目标密文,包括:

从所述加密数据包中提取待测密文及目标密文摘要;

利用SM3国密算法对所述待测密文进行计算,得到待测密文摘要;

比较所述待测密文摘要和所述目标密文摘要是否相同;若是,则确定目标密文为有效目标密文;若否,则确定目标密文无效。

第三方面,本发明实施例提供的一种数据加密卡的加密装置,应用于加密卡系统,所述加密卡系统包括:用于进行数据加密的CPU子系统,以及用于和读卡装置进行交互的硬件子系统;所述CPU子系统中包括:加密算法装置,所述加密算法装置配置有SM2和SM4国密算法;所述硬件子系统中包括:PCI-E接口;所述装置包括:

获取模块,用于当所述PCI-E接口处于连接状态时,响应于开始加密的指令,获取SM2私钥和SM4秘钥;所述开始加密的指令为所述CPU子系统从所述PCI-E接口读取;

计算模块,用于基于所述SM2私钥,计算得到SM2公钥;

目标密文生成模块,用于利用所述SM4秘钥对目标明文进行加密,生成目标密文;

SM4秘钥生成模块,用于利用所述SM2公钥对所述SM4秘钥进行加密,生成加密后的SM4秘钥;

加密数据包生成模块,用于根据所述目标密文和所述加密后的SM4秘钥,得到加密数据包。

可选地,所述加密卡系统还包括:随机数生成模块;所述获取模块包括:

随机数生成子模块,用于通过所述随机数生成模块生成第一组随机数和第二组随机数;

SM4秘钥生成子模块,用于将所述第一组随机数设置为所述SM4秘钥;

SM2私钥生成子模块,用于将所述第二组随机数设置为所述SM2私钥。

可选地,所述加密算法装置还配置有SM3国密算法;所述装置还包括:

密文摘要生成模块,用于通过所述SM3国密算法对所述目标密文进行加密,生成目标密文摘要;

所述加密数据包生成模块包括:

加密数据包生成子模块,用于将所述目标密文、所述目标密文摘要和所述加密后的SM4秘钥组合,生成所述加密数据包。

第四方面,本发明实施例提供的一种数据加密卡的解密装置,包括:

提取模块,用于获取加密数据包,从所述加密数据包中提取加密后的SM4秘钥和目标密文;

判断模块,用于判断所述加密数据包中的所述目标密文是否为有效目标密文;若是,则执行SM4秘钥获取模块;若否,则执行步骤S5;

SM4秘钥获取模块,用于利用SM2私钥对所述加密后的SM4秘钥进行解密,得到SM4秘钥;所述SM2私钥为加密卡系统中的随机生成模块生成;

目标明文获取模块,用于利用所述SM4秘钥对所述有效目标密文解密,得到目标明文;

终止模块,用于终止数据解密操作。

可选地,所述判断模块包括:

提取子模块,用于从所述加密数据包中提取待测密文及目标密文摘要;

待测密文摘要生成子模块,利用SM3国密算法对所述待测密文进行计算,得到待测密文摘要;

比较子模块,用于比较所述待测密文摘要和所述目标密文摘要是否相同;若是,则确定目标密文为有效目标密文;若否,则确定目标密文无效。

第五方面,本发明实施例还公开了一种加密卡,包括:所述数据加密装置、处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现任一项所述方法的步骤。

第六方面,本发明实施例还公开了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现任一项所述数据加密方法的步骤。

从以上技术方案可以看出,本发明具有以下优点:

本发明应用于加密卡系统,所述加密卡系统包括:用于进行数据加密的CPU子系统,以及用于和读卡装置进行交互的硬件子系统;所述CPU子系统中包括:加密算法装置,所述加密算法装置配置有SM2和SM4国密算法;所述硬件子系统中包括:PCI-E接口;所述方法包括:当所述PCI-E接口处于连接状态时,响应于开始加密的指令,获取SM2私钥和SM4秘钥;所述开始加密的指令为所述CPU子系统从所述PCI-E接口读取;基于所述SM2私钥,计算得到SM2公钥;利用所述SM4秘钥对目标明文进行加密,生成目标密文;利用所述SM2公钥对所述SM4秘钥进行加密,生成加密后的SM4秘钥;根据所述目标密文和所述加密后的SM4秘钥,得到加密数据包。从而解决现有的数据加密方法存在的投入成本高且灵活性差的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为本发明的一种数据加密卡的加密方法实施例的步骤流程图;

图2为本发明的一种加密卡系统的结构图;

图3为本发明的CPU子系统1与硬件子系统2的交互示意图;

图4为本发明的CPU子系统1中模块间的通信示意图;

图5为本发明的一种数据加密卡的解密方法实施例的步骤流程图;

图6为本发明的一种数据加密卡的加密装置实施例的结构框图;

图7为本发明的一种数据加密卡的解密装置实施例的结构框图。

具体实施方式

本发明实施例提供了一种数据加密卡的加密方法及装置,应用于加密卡系统,克服现有的数据加密方法存在的投入成本高且灵活性差的问题。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1,图1为本发明的一种数据加密卡的加密方法实施例的步骤流程图,应用于如图2所示的加密卡系统,所述加密卡系统包括:用于进行数据加密的CPU子系统1,以及用于和读卡装置进行交互的硬件子系统2;所述CPU子系统1中包括:加密算法装置11,所述加密算法装置配置有SM2和SM4国密算法;所述硬件子系统2中包括:PCI-E接口23;所述方法包括如下步骤:

步骤S101,当所述PCI-E接口23处于连接状态时,响应于开始加密的指令,获取SM2私钥和SM4秘钥;所述开始加密的指令为所述CPU子系统1从所述PCI-E接口23读取;

请参阅图2,图2为本发明的一种加密卡系统的结构图,所述硬件子系统2中包括:Flash存储器21、串口调试器22、PCI-E接口23和JTAG接口24,其中Flash存储器21用于保存用户自定义的代码,串口调试器22用于与串口17连接,实现连接类型的转换,PCI-E接口23用于使用外部电源供电以及触发加密方法的启动,JTAG接口24作为用户访问CPU子系统1的媒介,还可以对Flash存储器21进行代码的存储,以及对用户自定义加密方案的设计与调试。

所述CPU子系统1中包括:加密算法装置11、易失性存储器12、只读存储器13、IIC接口14、SPI接口15、随机数生成模块16、串口17和嵌入式CPU18,所述加密算法装置11配置有SM2国密算法模块111、SM3国密算法模块112和SM4国密算法模块113,易失性存储器12用于保存部分CPU缓存数据,只读存储器13用于保存系统的引导加载程序,IIC接口14是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线,IIC接口只有两根双向信号线,一根是数据线SDA,另一根是时钟线SCL,可以实现半双工通信,SPI接口15是一种权双工同步的通信总线,且在芯片的管脚上只占用四根线,随机数生成模块16为真随机数生成模块,可以生成完全非确定性的随机数,串口17用于转换密码卡与服务器或主机的连接为PCI-E连接,CPU18为32位的嵌入式CPU,具有RISC-V开源指令集,可支持用户自定义变成,对已有算法进行组合调用。并且,CPU子系统1中的模块和部件是基于AMBA总线协议实现通信。

而关于CPU子系统1与硬件子系统2中各硬件结构的交互,如图3所示,图3为本发明的CPU子系统1与硬件子系统2的交互示意图,用户通过JTAG接口24访问CPU子系统1的内部,还可以对Flash存储器21进行编辑后的代码的存储,并且可以通过PCI-E接口22实现密码卡与主机或服务器的连接,或者通过串口23在Micro USB数据线使电脑主机与CPU系统进行通信调试。

此外,针对CPU子系统1内部的模块间通信,如图4所示,需要说明,AMBA总线包含了高速总线AHB总线和低速总线APB总线,一般情况下,AHB总线一般用于传输大量数据的情况,而APB总线一般用于与IIC,UART,SPI等低速接口通信。图4为本发明的CPU子系统1中模块间的通信示意图,其中,a为AHB总线连接,b为APB总线连接,c为Bridge,用于实现AHB总线和APB总线间连接。可以看到,CPU18、SM2国密算法模块111、SM3国密算法模块112、SM4国密算法模块113、易失性存储器12和只读存储器13都为AHB总线连接,而IIC接口14、SPI接口15、随机数生成模块16和串口17都为APB总线连接。

SM2国密算法是一种非对称加密算法,使用这种算法时需要提前生成一对密钥对,其中密钥对包括公钥和私钥,公钥用于对数据进行加密,私钥用于对被公钥加密的数据进行解密。由于对数据进行加密和解密操作所使用的秘钥并不是同一秘钥,故称SM2国密算法为非对称加密算法。

SM3国密算法是一种密码杂凑算法,可以将小于2

SM4国密算法是一种对称加密算法,即使用SM4对数据进行加密及解密的数据所用到的秘钥为统一秘钥,SM4国密算法能够抵抗针对分组密码算法的各种攻击方法,如穷举搜索攻击、差分攻击和线性攻击等。

请参阅图2,在一个可选实施例中,所述加密卡系统还包括:随机数生成模块16;获取SM4秘钥和SM2私钥,包括:

通过所述随机数生成模块16生成第一组随机数和第二组随机数;

将所述第一组随机数设置为所述SM4秘钥;

将所述第二组随机数设置为所述SM2私钥。

在本发明实施例中,利用随机生成模块16生成两组随机数,其中第一组随机数设为SM4秘钥,第二组随机数设为SM2私钥。

现阶段所使用的随机数生成模块一般为伪随机数生成模块,即由固定的算法生成的随机数,这种随机数生成方式容易被破解,而本发明实施例所使用的随机数生成模块并不使用固定算法生成随机数,即可以生成完全非确定性的随机数,从而提升SM4秘钥和SM2私钥的安全性。

步骤S102,基于所述SM2私钥,计算得到SM2公钥;

在本发明实施例中,基于SM2私钥,通过SM2国密算法模块111,计算得到SM2公钥。

步骤S103,利用所述SM4秘钥对目标明文进行加密,生成目标密文;

在具体实现中,通过SM4国密算法模块113对目标铭文进行加密,生成目标密文。

步骤S104,利用所述SM2公钥对所述SM4秘钥进行加密,生成加密后的SM4秘钥;

步骤S105,根据所述目标密文和所述加密后的SM4秘钥,得到加密数据包。

在一个可选实施例中,所述加密算法模块还配置有SM3国密算法;利用所述SM2公钥对所述SM4秘钥进行加密,生成加密后的SM4秘钥之后,还包括:

通过所述SM3国密算法对所述目标密文进行加密,生成目标密文摘要;

所述根据所述目标密文和所述加密后的SM4秘钥,得到加密数据包的步骤,包括:

将所述目标密文、所述目标密文摘要和所述加密后的SM4秘钥组合,生成所述加密数据包。

在具体实现中,加密数据包中包括加密后的SM4秘钥、目标密文和目标密文摘要,将其进行打包并发送至与硬件子系统2连接的主机或服务器。

在本发明实施例所提供的一种数据加密方法,应用于加密卡系统,所述加密卡系统包括:用于进行数据加密的CPU子系统,以及用于和读卡装置进行交互的硬件子系统;所述CPU子系统中包括:加密算法装置,所述加密算法装置配置有SM2和SM4国密算法;所述硬件子系统中包括:PCI-E接口;所述方法包括:当所述PCI-E接口处于连接状态时,响应于开始加密的指令,获取SM2私钥和SM4秘钥;所述开始加密的指令为所述CPU子系统从所述PCI-E接口读取;基于所述SM2私钥,计算得到SM2公钥;利用所述SM4秘钥对目标明文进行加密,生成目标密文;利用所述SM2公钥对所述SM4秘钥进行加密,生成加密后的SM4秘钥;根据所述目标密文和所述加密后的SM4秘钥,得到加密数据包。从而解决现有的数据加密方法存在的投入成本高且灵活性差的问题。

请参阅图5,为本发明的一种数据加密卡的解密方法实施例的步骤流程图,所述步骤具体包括:

步骤S201,获取加密数据包,从所述加密数据包中提取加密后的SM4秘钥和目标密文;

步骤S202,判断所述加密数据包中的所述目标密文是否为有效目标密文;若是,则执行步骤S203;若否,则执行步骤S205;

在一个可选实施例中,判断所述加密数据包中的所述目标密文是否为有效目标密文,包括:

从所述加密数据包中提取待测密文及目标密文摘要;

利用SM3国密算法对所述待测密文进行计算,得到待测密文摘要;

比较所述待测密文摘要和所述目标密文摘要是否相同;若是,则确定目标密文为有效目标密文;若否,则确定目标密文无效。

在具体实现中,若待测密文摘要和目标密文摘要内容并不一致,则可以确定目标密文遭到篡改,进而确定目标密文无效;若待测密文摘要和目标密文摘要内容一致,则可以确定目标密文未被篡改,进而确定目标密文有效。

步骤S203,利用SM2私钥对所述加密后的SM4秘钥进行解密,得到SM4秘钥;所述SM2私钥为加密卡系统中的随机生成模块生成;

步骤S204,利用所述SM4秘钥对所述有效目标密文解密,得到目标明文;

步骤S205,终止对所述加密数据包的数解密操作。

在本发明实施例所提供的一种数据解密方法,通过S1,获取加密数据包,从所述加密数据包中提取加密后的SM4秘钥和目标密文;S2,判断所述加密数据包中的所述目标密文是否为有效目标密文;若是,则执行步骤S3;若否,则执行步骤S5;S3,利用SM2私钥对所述加密后的SM4秘钥进行解密,得到SM4秘钥;所述SM2私钥为加密卡系统中的随机生成模块生成;S4,利用所述SM4秘钥对所述有效目标密文解密,得到目标明文;S5,终止对所述加密数据包的数解密操作。作为与上述一种数据加密方法相应的数据解密方法,用于解决现有的密码卡所搭载的加密方法存在的投入成本高且灵活性差的问题。

请参阅图6,示出了一种数据加密卡的加密装置实施例的结构框图,应用于加密卡系统,所述加密卡系统包括:用于进行数据加密的CPU子系统,以及用于和读卡装置进行交互的硬件子系统;所述CPU子系统中包括:加密算法装置,所述加密算法装置配置有SM2和SM4国密算法;所述硬件子系统中包括:PCI-E接口;所述装置包括:

获取模块101,用于当所述PCI-E接口处于连接状态时,响应于开始加密的指令,获取SM2私钥和SM4秘钥;所述开始加密的指令为所述CPU子系统从所述PCI-E接口读取;

在一个可选实施例中,所述加密卡系统还包括:随机数生成模块;所述获取模块101包括:

随机数生成子模块,用于通过所述随机数生成模块生成第一组随机数和第二组随机数;

SM4秘钥生成子模块,用于将所述第一组随机数设置为所述SM4秘钥;

SM2私钥生成子模块,用于将所述第二组随机数设置为所述SM2私钥。

计算模块102,用于基于所述SM2私钥,计算得到SM2公钥;

目标密文生成模块103,用于利用所述SM4秘钥对目标明文进行加密,生成目标密文;

SM4秘钥生成模块104,用于利用所述SM2公钥对所述SM4秘钥进行加密,生成加密后的SM4秘钥;

加密数据包生成模块105,用于根据所述目标密文和所述加密后的SM4秘钥,得到加密数据包。

在一个可选实施例中,所述加密算法装置还配置有SM3国密算法;所述装置还包括:

密文摘要生成模块,用于通过所述SM3国密算法对所述目标密文进行加密,生成目标密文摘要;

所述加密数据包生成模块包括:

加密数据包生成子模块,用于将所述目标密文、所述目标密文摘要和所述加密后的SM4秘钥组合,生成所述加密数据包。

请参阅图7,示出了一种数据加密卡的解密装置实施例的结构框图,包括如下模块:

提取模块201,用于获取加密数据包,从所述加密数据包中提取加密后的SM4秘钥和目标密文;

判断模块202,用于判断所述加密数据包中的所述目标密文是否为有效目标密文;若是,则执行SM4秘钥获取模块;若否,则执行步骤S5;

SM4秘钥获取模块203,用于利用SM2私钥对所述加密后的SM4秘钥进行解密,得到SM4秘钥;所述SM2私钥为加密卡系统中的随机生成模块生成;

目标明文获取模块204,用于利用所述SM4秘钥对所述有效目标密文解密,得到目标明文;

终止模块205,用于终止数据解密操作。

在一个可选实施例中,所述判断模块102包括:

提取子模块,用于从所述加密数据包中提取待测密文及目标密文摘要;

待测密文摘要生成子模块,利用SM3国密算法对所述待测密文进行计算,得到待测密文摘要;

比较子模块,用于比较所述待测密文摘要和所述目标密文摘要是否相同;若是,则确定目标密文为有效目标密文;若否,则确定目标密文无效。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本发明实施例还提供了一种加密卡,包括:所述数据加密装置、处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述数据加密方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述针对所述数据加密方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种数据加密方法和一种数据加密装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 一种数据加密卡的加密方法及装置
  • 一种加密卡在预付费应用中的数据加密方法及系统
技术分类

06120112805669