一种加/解密引擎及其实现方法

文档序号:9787732阅读:970来源:国知局
一种加/解密引擎及其实现方法
【技术领域】
[0001]本发明涉及信息安全技术领域,尤其涉及一种加/解密引擎及其实现方法。
【背景技术】
[0002]加/解密引擎就是为用户提供加解密服务的一个模块,可以通过软件方案实现,也可以通过硬件方案实现。其中硬件方案可以利用USB接口实现,也可以利用PCI或PCIE接口实现。加/解密引擎实现的算法包括对称算法、非对称算法和摘要算法。其中对称算法包括SMl、AES和SM4;非对称算法包括SM2、RSA;摘要算法包括SHAl、SHA256和SM3。对称算法一般用于数据的加解密;非对称算法一般用于身份认证和访问控制。加/解密引擎一般通过接口函数向上提供数据加解密服务。硬件实现的加解密引擎,加密一般将明文数据先导入硬件模块,加密后再导出硬件模块;解密一般将密文数据导入硬件模块,解密后再导出硬件模块。
[0003]软件加/解密引擎是将加密算法通过C语言或汇编语言实现,然后通过高级语言(如VC)封装成一个加/解密模块,对外提供加密、解密和认证接口。这种加/解密引擎运行在主机中,CPU参与运算,所以CPU的主频高低也就决定加/解密引擎的性能高低。由于软件加/解密引擎是在主机中运行,CPU参与运算,这样势必会降低系统的整体性能,影响其他软件的运行。同时加解密的过程在主机内存中进行,势必为黑客的攻击带来方便。所以软件方案实现的加/解密引擎不安全,也影响系统性能。
[0004]硬件加/解密引擎是基于USB、PCI或PCIE接口实现的加/解密引擎,加密算法通过硬件实现。通过USB、PCI或PCIE的驱动结合系统层的接口库向上提供加密、解密和认证服务。该类加/解密引擎的加解密运算在芯片内实现,有单独的CPU进行专门运算,密钥也只出现在芯片内,是安全可靠的。基于USB接口实现的硬件加/解密引擎,由于目前支持加解密功能的芯片的接口一般是USB2.0接口,性能不高,只有12?15M/B左右,对于需要高效加解密服务的是不够的。基于PCI或PCIE接口实现的硬件加/解密引擎,一般加密算法是通过FPGA实现,成本高,并且兼容性不好,某些机型可能无法兼容。
[0005]因此,需要一种加/解密引擎的实现方法克服上述缺点。

【发明内容】

[0006]本发明的目的在于解决现有技术中加/解密引擎通过软件实现存在不安全的问题,而通过硬件实现存在兼容性不好的问题。为解决上述问题,本发明实施例提供了一种加/解密引擎及其实现方法。
[0007]有鉴于此,本发明提供一种加/解密引擎,可包括:
[0008]第一存储器、第二存储器、加/解密模块和SATA硬盘驱动接口,其中,
[0009]所述第一存储器一端与所述SATA硬盘驱动接口连接,另一端与所述加/解密模块连接,用于存储从所述SATA硬盘驱动接口处接收的数据并发送给所述加/解密模块,以及存储从所述加/解密模块接收的数据并通过所述SATA硬盘驱动接口发送出去;
[0010]所述第二存储器与所述加/解密模块连接,用于存储所述加/解密模块发送过来的数据以及发送所述加/解密模块进行数据加解密所需要的数据;
[0011]所述加/解密模块一端与所述第一存储器连接,另一端与所述第二存储器连接,用于实现数据的加解密;
[0012]所述SATA硬盘驱动接口一端与所述第一存储器连接,另一端与主板的SATA主机接口连接,用于所述第一存储器与所述SATA主机接口进行数据传输。
[0013]优选的,所述第一存储器和所述第二存储器通过直接存储器存取的方式进行数据的加解密传输。
[0014]本发明还提供一种加/解密引擎的实现方法,其中,通过SATA硬盘驱动接口枚举到加/解密模块后,所述方法可包括:
[0015]设置所述加/解密模块为加密模式,待加密的明文数据通过所述SATA硬盘驱动接口到达所述加/解密模块后实现加密;
[0016]设置所述加/解密模块为解密模式,待解密的密文数据通过所述SATA硬盘驱动接口到达所述加/解密模块后实现解密。
[0017]优选的,所述实现加密包括:
[0018]所述SATA硬盘驱动接口将所述待加密的明文数据发送到第一存储器;
[0019]所述第一存储器存储所述待加密的明文数据并发送到所述加/解密模块;
[0020]所述加密模块对待加密的明文数据加密成密文数据后发送到第二存储器;
[0021]所述第二存储器存储所述密文数据并通过旁路模式将所述密文数据发送到所述第一存储器;
[0022]所述第一存储器存储所述密文数据并通过所述SATA硬盘驱动接口将所述密文数据发出。
[0023]优选的,所述实现解密包括:
[0024]所述SATA硬盘驱动接口将所述待解密的密文数据发送到第一存储器;
[0025]所述第一存储器存储所述待解密的密文数据并发送到所述加/解密模块;
[0026]所述解密模块对待解密的密文数据解密成明文数据后发送到第二存储器;
[0027]所述第二存储器存储所述明文数据并通过旁路模式将所述明文数据发送到所述第一存储器;
[0028]所述第一存储器存储所述明文数据并通过所述SATA硬盘驱动接口将所述明文数据发出。
[0029]优选的,设置所述加/解密模块为加密模式前还包括发送加密密钥到所述加密模块。
[0030]优选的,设置所述加/解密模块为解密模式前还包括发送解密密钥到所述解密模块。
[0031]本发明实施例提供的一种加/解密引擎及其实现方法,通过采用基于SATA硬盘驱动接口的加/解密引擎,解决了现有技术中加/解密引擎通过软件实现存在不安全的问题,而通过硬件实现存在兼容性不好的问题。本发明实施例提供的一种加/解密引擎及其实现方法可以为信息安全服务商提供更安全、更可靠、性能更高且兼容性更好的加/解密模块。
【附图说明】
[0032]图1为本发明实施例1提供的一种加/解密引擎结构框图;
[0033]图2为本发明实施例2提供的一种加/解密引擎实现方法流程图;
[0034]图3为本发明实施例3提供的一种加/解密引擎实现方法流程图;
[0035]图4为本发明实施例4提供的一种加/解密引擎实现方法流程图;
[0036]图5为本发明实施例5提供的一种加/解密引擎实现框图;
[0037]图6为本发明实施例5提供的一种加/解密引擎的模块化功能框图。
【具体实施方式】
[0038]本发明实施例提供了一种加/解密引擎,能够解决现有技术中加/解密引擎通过软件实现存在不安全的问题,而通过硬件实现存在兼容性不好的问题。
[0039]为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0040]请参阅图1,为本发明提供的一种加/解密引擎实施例1的结构框图,本实施例具体可以包括:
[0041 ]第一存储器、第二存储器、加/解密模块和SATA硬盘驱动接口,其中,
[0042]所述第一存储器一端与所述SATA硬盘驱动接口连接,另一端与所述加/解密模块连接,用于存储从所述SATA硬盘驱动接口处接收的数据并发送给所述加/解密模块,以及存储从所述加/解密模块接收的数据并通过所述SATA硬盘驱动接口发送出去。
[0043]可以理解的是,所述第一存储器主要用于所述SATA硬盘驱动接口接收和发送数据。
[0044]所述第二存储器与所述加/解密模块连接,用于存储所述加/解密模块发送过来的数据以及发送所述加/解密模块进行数据加解密所需要
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1