一种高性能加解密运算能力扩展方法及系统与流程

文档序号:16579240发布日期:2019-01-14 17:49阅读:197来源:国知局
一种高性能加解密运算能力扩展方法及系统与流程

本发明涉及安全芯片技术领域,尤其涉及一种高性能加解密运算能力扩展方法及系统。



背景技术:

安全芯片是指实现了一种或多种密码算法,直接或间接地使用密码技术来保护密钥和敏感信息的集成电路芯片。作为智能终端的最底层安全保障,安全芯片的应用能有效地防止黑客攻击与破解,提高智能终端的安全性,保护用户个人信息和应用数据安全。目前,安全芯片正越来越多地应用于智能终端中,为金融支付、在线身份认证提供可靠保障。安全芯片就是可信任平台模块,是一个可独立进行密钥生成、加解密的装置,内部拥有独立的处理器和存储单元,可存储密钥和特征数据,为电脑提供加密和安全认证服务,用安全芯片进行加密,密钥被存储在硬件中,被窃的数据无法解密,从而保护商业隐私和数据安全。

传统的安全芯片的使用场景,如图1所示,安全芯片作为系统主处理器的外接从设备,由主处理器向安全芯片发送命令调用,安全芯片获取并解释相关命令,然后执行对应的加解密运算和安全处理,最后把运算结果反馈给主处理器。

在这样的运行环境中,由于安全芯片自身硬件和软件处理能力的低下,导致安全芯片的加解密运算能力无法进一步提升。这是因为对于安全芯片而言,为了应对磨片(是指用机械或者化学的方法,逐层剥离芯片中的电路,达到解剖和反响提取芯片电路结构的目的)等物理攻击、激光与电磁信号注入半侵入式攻击,差分电流分析等非侵入式攻击,安全芯片中的cpu核、加解密电路、存储模块和总线上都加入了大量防护设计,导致安全芯片的系统主频和处理能力都处于中等以下水平,仅能运行简单的操作系统和应用程序,软件的处理能力和防护能力较弱。

为了实现更高速度更高性能的加解密运算,一种解决方案是将这些高速运算迁移到运算能力更强的主处理器上执行,安全芯片只负责实现密钥的生成和保存。但这样的解决方案存在较为严重的安全隐患:

针对安全芯片的中继攻击导致密钥的泄露,由于主处理器上的操作系统和应用程序可能受到恶意软件的入侵,这样安全芯片所接受的命令调用就可能是恶意软件所发送的非法命令,安全芯片将生成的次级密钥返回给主处理器后,恶意软件就可以获取对应的密钥,导致后续的加解密运算无效,这种情况就是针对传统安全芯片的典型的中继攻击(relayattack)。

主处理器自身的硬件缺陷,会导致加解密运算的密钥和运算细节泄露;由于主处理器在最初设计上的缺陷,例如intel芯片和arm芯片为了最求高性能,在微架构设计中大量采用了运算部件共享、cache共享、分枝预测等设计方法,使得cpu和整个处理器系统中存在大量信息泄露的侧信道存在,这些信息泄露侧信道被称为现代先进处理器中的“癌症”,极易受到“幽灵”和“熔断”类型的恶意软件的攻击,恶意软件可以获取加解密运算的密钥以及加解密运算的程序细节。

主处理器上运行的操作系统的安全漏洞,会导致加解密运算的密钥和运算细节泄露,操作系统由于其代码规模的庞大,尽管软件维护人员付出了极大的努力,操作系统升级和补丁程序的发布成为常态,但恶意软件总是能乘虚而入,获取系统权限。获得系统权限的恶意软件可以方便地获取加解密运算的密钥以及加解密运算的程序细节。

也就是说,现有技术中存在安全芯片自身加解密运算能力较低,同时传统安全芯片的运行环境因安全防护能力不足无法有效地扩展加解密运算性能的问题。

因此,现有技术还有待于改进和发展。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术缺陷,本发明提供一种高性能加解密运算能力扩展方法及系统,在fpga主控器中加入了高性能加解密电路,这部分电路由fpga主控器中的高安全应用程序调用,安全芯片负责在保存和保护根密钥的基础上提供高性能加解密运算所需要的次级密钥,有效地解决传统方案所面临的中继攻击导致安全芯片所生成的次级密钥泄露的问题,保证了高性能加解密运算的安全执行。

本发明解决技术问题所采用的技术方案如下:

一种高性能加解密运算能力扩展方法,其中,所述高性能加解密运算能力扩展方法包括:

主处理器通过系统通讯将需要加解密的数据和加解密操作的程序调用传输给fpga主控器,fpga主控器接收相关数据并进行缓存;

fpga主控器对来自主处理器的程序调用进行解析并分解为系列子过程,所述子过程分为两部分,第一部分是由多核cpu调用高性能加解密电路进行加解密运算操作,第二部分是fpga主控器调用安全芯片,由安全芯片生成当前加解密运算所需要的次级密钥;

fpga主控器向安全芯片发送对应的命令调用和相关的数据,安全芯片根据自身存储的根密钥和来自fpga主控器的输入数据,生成当前加解密运算所需要的次级密钥,并将运算结果反馈给fpga主控器;

fpga主控器按照安全芯片反馈的次级密钥,调用高性能加解密电路完成对应的加解密运算,并将最终的运算结果发送给主处理器。

所述的高性能加解密运算能力扩展方法,其中,所述fpga主控器包括高安全应用程序、微内核操作系统、多核cpu和高性能加解密电路。

所述的高性能加解密运算能力扩展方法,其中,当调用高性能加解密电路的高安全等级的应用程序时由fpga主控器执行;

微内核操作系统用于控制调用加解密运算的高安全应用程序的安全执行;

多核cpu为双核或者三核的多核cpu,用于适时地停止安全应用程序和加解密运算的执行,清除存储器中保存的安全敏感信息。

所述的高性能加解密运算能力扩展方法,其中,所述主处理器通过系统通讯将需要加解密的数据和加解密操作的程序调用传输给fpga主控器,fpga主控器接收相关数据并进行缓存之前还包括:

预先在所述主处理器与所述安全芯片之间设置一用于进行数据处理的fpga主控器。

所述的高性能加解密运算能力扩展方法,其中,将fpga芯片的配置代码文件进行加密保护,同时禁用fpga芯片中的扫描链。

所述的高性能加解密运算能力扩展方法,其中,fpga主控器与主处理器之间通过系统通讯与程序调用构成对等的分布式并行处理关系。

所述的高性能加解密运算能力扩展方法,其中,多核cpu采用双核螺旋结构,当检测出恶意软件的攻击行为时,适时地停止安全应用程序的执行和加解密运算的执行,清除存储器中保存的安全敏感信息,控制相关密钥和加解密运算安全执行。

所述的高性能加解密运算能力扩展方法,其中,多核cpu采用三核冗余结构,当检测出恶意软件的攻击行为时,适时地停止安全应用程序的执行和加解密运算的执行,清除存储器中保存的安全敏感信息,控制相关密钥和加解密运算安全执行。

一种高性能加解密运算能力扩展系统,其中,所述高性能加解密运算能力扩展系统包括:

主处理器,用于通过系统通讯将需要加解密的数据和加解密操作的程序调用传输给fpga主控器;

fpga主控器,用于接收相关数据并进行缓存,将来自主处理器的程序调用进行解析并分解为系列子过程,向安全芯片发送对应的命令调用和相关的数据,并按照安全芯片反馈的次级密钥,调用高性能加解密电路完成对应的加解密运算,并将最终的运算结果发送给主处理器;

安全芯片,用于根据自身存储的根密钥和来自fpga主控器的输入数据,生成当前加解密运算所需要的次级密钥,并将运算结果反馈给fpga主控器;

所述fpga主控器包括高安全应用程序、微内核操作系统、多核cpu和高性能加解密电路。

所述的高性能加解密运算能力扩展系统,其中,调用高性能加解密电路的高安全等级的应用程序时由fpga主控器执行;

微内核操作系统用于控制调用加解密运算的高安全应用程序的安全执行;

多核cpu为双核或者三核的多核cpu,用于适时地停止安全应用程序和加解密运算的执行,清除存储器中保存的安全敏感信息。

本发明公开了一种高性能加解密运算能力扩展方法及系统,所述方法包括:主处理器通过系统通讯将需要加解密的数据和加解密操作的程序调用传输给fpga主控器,fpga主控器接收相关数据并进行缓存;fpga主控器对来自主处理器的程序调用进行解析并分解为系列子过程,所述子过程分为两部分,第一部分是由多核cpu调用高性能加解密电路进行加解密运算操作,第二部分是fpga主控器调用安全芯片,由安全芯片生成当前加解密运算所需要的次级密钥;fpga主控器向安全芯片发送对应的命令调用和相关的数据,安全芯片根据自身存储的根密钥和来自fpga主控器的输入数据,生成当前加解密运算所需要的次级密钥,并将运算结果反馈给fpga主控器;fpga主控器按照安全芯片反馈的次级密钥,调用高性能加解密电路完成对应的加解密运算,并将最终的运算结果发送给主处理器。本发明在fpga主控器中加入了高性能加解密电路,这部分电路由fpga主控器中的高安全应用程序调用,安全芯片负责在保存和保护根密钥的基础上提供高性能加解密运算所需要的次级密钥,保证了高性能加解密运算的安全执行。

附图说明

图1是传统的安全芯片的使用场景的原理示意图;

图2是本发明高性能加解密运算能力扩展方法的较佳实施例的流程图;

图3是本发明高性能加解密运算能力扩展系统的较佳实施例的结构原理图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明较佳实施例所述的高性能加解密运算能力扩展方法,如图2所示,所述高性能加解密运算能力扩展方法包括以下步骤:

步骤s10、主处理器通过系统通讯将需要加解密的数据和加解密操作的程序调用传输给fpga主控器,fpga主控器接收相关数据并进行缓存。

具体地,预先在所述主处理器与所述安全芯片之间设置一用于进行数据处理的fpga主控器,所述fpga主控器包括高安全应用程序、微内核操作系统、多核cpu和高性能加解密电路;当调用高性能加解密电路的高安全等级的应用程序时由fpga主控器执行;微内核操作系统用于控制调用加解密运算的高安全应用程序的安全执行;多核cpu为双核或者三核的多核cpu,用于适时地停止安全应用程序和加解密运算的执行,清除存储器中保存的安全敏感信息。

将调用高性能加解密电路的高安全等级的应用程序安排在fpga主控器上执行,可以有效地解决主处理器上存在安全漏洞所造成的高安全应用程序的细节泄露的问题,规避了主处理器上安全漏洞所造成的恶意软件入侵,以及在此基础上发起针对安全芯片的中继攻击的安全风险。

其中,fpga主控器中采用了双核或者三核的多核cpu,采用多核cpu的原因在于提升对于恶意软件攻击的防护能力,由于恶意软件在某一时刻只能修改其中一个cpu的寄存器状态,同时修改两个或者三个cpu的寄存器状态,且修改后的多个cpu状态完全一致是难以实现的,因此通过双核螺旋结构或者三核冗余结构,可以有效地检测和发现恶意软件对cpu的攻击情况。

由于fpga主控器主要执行与安全加解密相关的程序,因此不需要执行复杂的操作系统,只需要执行精简的微内核操作系统即可。微内核操作系统通过精简操作系统的功能和代码规模(通常只有几十k的量级),因此微内核操作系统可以进行严格的针对安全性的形式验证(sel4微内核达到了最高的安全等级)。采用高安全的微内核可以进一步提升fpga主控器的安全性。由于fpga主控器主要执行与安全加解密相关的应用程序,因此这些应用程序可以进行代码规模的精简,同时进行严格的安全性测试和验证,同时对这些应用程序的来源和升级进行严格的管理和控制,保证这些应用程序都是高安全性的程序,从而保证fpga主控器的安全性。

步骤s20、fpga主控器对来自主处理器的程序调用进行解析并分解为系列子过程,所述子过程分为两部分,第一部分是由多核cpu调用高性能加解密电路进行加解密运算操作,第二部分是fpga主控器调用安全芯片,由安全芯片生成当前加解密运算所需要的次级密钥。

步骤s30、fpga主控器向安全芯片发送对应的命令调用和相关的数据,安全芯片根据自身存储的根密钥和来自fpga主控器的输入数据,生成当前加解密运算所需要的次级密钥,并将运算结果反馈给fpga主控器。

其中,为了保证系统的安全性,安全芯片中存储的根密钥是不能离开安全芯片的。

步骤s40、fpga主控器按照安全芯片反馈的次级密钥,调用高性能加解密电路完成对应的加解密运算,并将最终的运算结果发送给主处理器。

由于安全芯片需要实现复杂的安全防护功能,导致安全芯片上的系统时钟的频率较低,加解密电路的规模和处理能力较低,这些因素都导致安全芯片无法实现高性能的加解密运算,在fpga主控器上不存在这些限制因素,可以将加解密电路的电路规模、处理能力和时钟主频都进行较大的提升,实现高性能的加解密运算。

进一步地,调用高性能加解密电路的高安全等级的应用程序由fpga主控器执行,规避了主处理器上安全漏洞所造成的影响。例如,由于intel和arm公司的现代先进cpu芯片在微架构设计中的缺陷,信息泄露侧信道是这些芯片不可消除的“癌症”,而由于这些cpu主处理器的大规模应用,将这些芯片在短时间内完全替换是不可能实现的。将安全防护要求不高的应用继续保留在原来的主处理器上执行,而将调用高性能加解密电路的高安全等级的应用程序安排在fpga主控器上执行,可以有效地解决主处理器上存在安全漏洞所造成的高安全应用程序的细节泄露的问题,以及安全芯片所生成的次级密钥的泄露问题。

进一步地,fpga主控器可以采用安全防护功能更强的新设计,消除信息泄露侧信道所造成的加解密运算细节和密码泄露的安全威胁。fpga主控器可以灵活地采用软核的方式来实现cpu核,并在微架构设计中采用更加严格的时间和空间隔离来有效地消除信息泄露侧信道,增强了fpga主控器的对加解密运算和密钥的安全防护能力。

其中,fpga主控器可以采用cpu核双核螺旋结构设计,检测和发现恶意软件的攻击行为,保护相关密钥和加解密运算的安全执行。恶意软件对cpu程序的攻击,只会修改其中一个cpu的指令流/数据流/系统状态,同时修改两个cpu的指令流/数据流/系统状态,且修改结果相同是难以实现的。在双核螺旋结构检测出恶意软件的攻击行为的时候,可以适时地停止安全应用程序的执行和加解密运算的执行,清除存储器中保存的安全敏感信息,达到保护相关密钥和加解密运算安全执行的目的。

其中,fpga主控器可以采用cpu核三核冗余结构设计,检测和发现恶意软件的攻击行为,保护相关密钥和加解密运算的安全执行。恶意软件对cpu程序的攻击,只会修改其中一个cpu的指令流/数据流/系统状态,同时修改三个cpu的指令流/数据流/系统状态,且修改结果相同是难以实现的。在三核冗余结构检测出恶意软件的攻击行为的时候,可以适时地停止安全应用程序的执行和加解密运算的执行,清除存储器中保存的安全敏感信息,达到保护相关密钥和加解密运算安全执行的目的。

在双核螺旋结构/三核冗余结构检测出恶意软件的攻击行为时,fpga主控器可以适时地停止安全应用程序和加解密运算的执行,清除存储器中保存的安全敏感信息,达到保护相关密钥和加解密运算安全执行的目的。

fpga主控器可以灵活地采用软核的方式来实现cpu核,且cpu核设计中可以采用双核螺旋结构设计,增强对未知恶意软件的检测和防护能力。在双核螺旋结构检测出恶意软件的攻击行为的时候,可以适时地停止安全应用程序的执行和加解密运算的执行,清除存储器中保存的安全敏感信息,达到保护相关密钥和加解密运算安全执行的目的。

fpga主控器可以灵活地采用软核的方式来实现cpu核,且cpu核设计中可以采用三核冗余结构设计,增强对未知恶意软件的检测和防护能力。在三核冗余结构检测出恶意软件的攻击行为的时候,可以适时地停止安全应用程序的执行和加解密运算的执行,清除存储器中保存的安全敏感信息,达到保护相关密钥和加解密运算安全执行的目的。

进一步地,fpga主控器可以采用安全防护能力更高的微内核,提升软件系统的安全防护能力,保证调用加解密运算的高安全应用程序的安全执行。

另外,出于安全考虑,fpga芯片的配置代码文件需要进行加密保护,同时禁用fpga芯片中的扫描链(扫描链是可测试性设计的一种实现技术,它通过植入移位寄存器,使得测试人员可以从外部控制和观测电路内部触发器的信号值)是fpga主控器芯片安全运行的基本要求。

fpga主控器中的cpu核和其他功能模块,可以针对安全防护的需要并结合当前最主要的硬件和软件攻击场景和威胁,灵活地修改cpu核和其他功能模块的设计,调整cpu核的指令集,从而增强整个系统的安全防护能力。

和传统方案相比,本发明有效地解决传统方案所面临的中继攻击导致安全芯片所生成的次级密钥泄露的问题;主处理器由于“幽灵”和“熔断”攻击导致加解密运算的密钥和运算细节泄露问题;主处理器上运行的操作系统安全漏洞导致加解密运算的密钥和运算细节泄露问题。本发明在解决这些安全隐患的基础上,保证了高性能加解密运算的安全执行。

fpga只是电路功能的一种实现形式,在fpga主控器的电路功能经过实际应用调整定型后,可以将fpga主控器中的全部电路功能转换为asic芯片实现,从而进一步提升芯片性能、降低功耗和节省成本。

如图3所示,基于上述高性能加解密运算能力扩展方法,本发明还相应提供了一种高性能加解密运算能力扩展系统,所述高性能加解密运算能力扩展系统包括:

主处理器101,用于通过系统通讯将需要加解密的数据和加解密操作的程序调用传输给fpga主控器102;fpga主控器102,用于接收相关数据并进行缓存,将来自主处理器101的程序调用进行解析并分解为系列子过程,向安全芯片103发送对应的命令调用和相关的数据,并按照安全芯片103反馈的次级密钥,调用高性能加解密电路1024完成对应的加解密运算,并将最终的运算结果发送给主处理器101;安全芯片103,用于根据自身存储的根密钥和来自fpga主控器102的输入数据,生成当前加解密运算所需要的次级密钥,并将运算结果反馈给fpga主控器102;所述fpga主控器102包括高安全应用程序1021、微内核操作系统1022、多核cpu1023和高性能加解密电路1024。

其中,调用高性能加解密电路1024的高安全等级的应用程序时由fpga主控器102执行;微内核操作系统1022用于控制调用加解密运算的高安全应用程序1021的安全执行;多核cpu1023为双核或者三核的多核cpu,用于适时地停止安全应用程序和加解密运算的执行,清除存储器中保存的安全敏感信息。

本发明需要调用安全芯片的安全应用程序,以及调用高性能加解密电路的安全应用程序全部在fpga主控器上执行,规避了主处理器上安全漏洞所造成的不良影响。。

综上所述,本发明提供一种高性能加解密运算能力扩展方法及系统,所述方法包括:主处理器通过系统通讯将需要加解密的数据和加解密操作的程序调用传输给fpga主控器,fpga主控器接收相关数据并进行缓存;fpga主控器对来自主处理器的程序调用进行解析并分解为系列子过程,所述子过程分为两部分,第一部分是由多核cpu调用高性能加解密电路进行加解密运算操作,第二部分是fpga主控器调用安全芯片,由安全芯片生成当前加解密运算所需要的次级密钥;fpga主控器向安全芯片发送对应的命令调用和相关的数据,安全芯片根据自身存储的根密钥和来自fpga主控器的输入数据,生成当前加解密运算所需要的次级密钥,并将运算结果反馈给fpga主控器;fpga主控器按照安全芯片反馈的次级密钥,调用高性能加解密电路完成对应的加解密运算,并将最终的运算结果发送给主处理器。本发明在fpga主控器中加入了高性能加解密电路,这部分电路由fpga主控器中的高安全应用程序调用,安全芯片负责在保存和保护根密钥的基础上提供高性能加解密运算所需要的次级密钥,保证了高性能加解密运算的安全执行。

当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来自动完成,所述的程序可存储于一计算机可读取的存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1