数据加密的方法、装置和系统与流程

文档序号:15497838发布日期:2018-09-21 22:03阅读:134来源:国知局
本发明涉及计算机领域,更具体地,涉及一种数据加密的方法、装置和系统。
背景技术
:近年来,信息系统的安全形势变得越来越严峻,在许多场景下需要使用加密装置对数据进行加解密的处理,以保证信息安全。传统的加密装置一般使用专用集成电路asic加密卡进行加密,提供比软件加解密性能高的硬件加速引擎。但是,asic支持的加解密算法固定,性能参数也固定。当在实际使用中系统需要调用asic不支持的算法,或者其加速引擎不能满足性能需求时,则需要更换加密卡。此外,由于故障攻击研究的兴起,密码算法被攻破的概率大大增加。因此,现有的加密装置不能兼顾性能与灵活性的需要,同时存在安全壁垒。技术实现要素:本发明的数据加密的方法、装置、系统和介质将可重构电路和专用集成电路有机结合以对数据进行加密,根据待加密数据的特性针对性地调度可重构电路或者专用集成电路进行数据加密,能够兼顾加密灵活性与高性能的需要。此外,由于同一个加密装置能够支持多种加密算法,因此提升了加密安全性,同时降低了硬件成本。本发明的一个方面提供了一种数据加密的方法。该方法包括从用户系统接收封装待加密数据的数据包,解析数据包,得到数据包的包头信息,根据数据包的包头信息调度可重构电路或专用集成电路对待加密数据进行加密,得到已加密数据,以及向用户系统发送已加密数据。其中,根据数据包的包头信息调度可重构电路或专用集成电路对待加密数据进行加密具体包括:在数据包的包头信息满足预设条件的情况下,使用可重构电路对待加密数据进行加密;或者在数据包的包头信息不满足预设条件的情况下,使用专用集成电路对待加密数据进行加密。可选地,数据包的包头信息满足预设条件,包括数据包的包头信息包括加密算法指示信息和加密性能要求为高性能的指示信息,或者在数据包的包头信息包括加密算法指示信息但不包括描述加密性能要求的指示信息时,可重构电路中存在用于加密待加密数据的空余硬件资源。可选地,在数据包的包头信息满足预设条件的情况下,使用可重构电路对待加密数据进行加密,包括根据数据包的包头信息中的加密算法指示信息指示的特定加密算法,获取应用于可重构电路的用于实现特定加密算法的配置信息,根据配置信息配置可重构电路,以及利用配置后的可重构电路加密待加密数据。可选地,根据数据包的包头信息中加密算法指示信息指示的特定加密算法,获取应用于可重构电路的用于实现特定加密算法的配置信息,包括根据加密算法指示信息,查找用于实现特定加密算法的配置信息的存储地址,以及获取存储地址对应的存储位置中的配置信息。可选地,配置信息包括运行特定加密算法的基本配置信息、以及用于抗功耗攻击的冗余配置信息。可选地,可重构电路能够配置为同时执行多个不同的加密算法。可选地,可重构电路能够在一个时钟周期内完成不同加密算法的切换。本发明的另一个方面提供了一种数据加密的装置。该装置包括数据包接收模块、数据包解析模块、数据加密模块以及加密数据发送模块。其中数据包加密模块还包括可重构电路加密子模块和专用集成电路加密子模块。数据包接收模块用于从用户系统接收封装待加密数据的数据包。数据包解析模块用于解析数据包,得到数据包的包头信息。数据加密模块用于根据数据包的包头信息调度可重构电路或专用集成电路对待加密数据进行加密,得到已加密数据。具体地包括:可重构电路加密子模块用于在数据包的包头信息满足预设条件的情况下,使用可重构电路对待加密数据进行加密;或者,专用集成电路加密子模块用于在数据包的包头信息不满足预设条件的情况下,使用专用集成电路对待加密数据进行加密。加密数据发送模块用于向用户系统发送已加密数据。可选地,数据包的包头信息满足预设条件,包括数据包的包头信息包括加密算法指示信息和加密性能要求为高性能的指示信息,或者在数据包的包头信息包括加密算法指示信息但不包括描述加密性能要求的指示信息时,可重构电路中存在用于加密待加密数据的空余硬件资源。可选地,在数据包的包头信息满足预设条件的情况下,使用可重构电路对待加密数据进行加密,包括根据数据包的包头信息中的加密算法指示信息指示的特定加密算法,获取应用于可重构电路的用于实现特定加密算法的配置信息,根据配置信息配置可重构电路,以及利用配置后的可重构电路加密待加密数据。可选地,根据数据包的包头信息中加密算法指示信息指示的特定加密算法,获取应用于可重构电路的用于实现特定加密算法的配置信息,包括根据加密算法指示信息,查找用于实现特定加密算法的配置信息的存储地址,以及获取存储地址对应的存储位置中的配置信息。可选地,配置信息包括运行特定加密算法的基本配置信息、以及用于抗功耗攻击的冗余配置信息。可选地,可重构电路能够配置为同时执行多个不同的加密算法。可选地,可重构电路能够在一个时钟周期内完成不同加密算法的切换。本发明的另一个方面提供了一种数据加密的系统,包括存储器,以及耦接至存储器的处理器。处理器被配置为基于存储在存储器中的指令,执行如上的数据加密的方法。本发明的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,指令在被执行时用于实现如上的方法。本发明的另一方面提供了一种计算机程序,计算机程序包括计算机可执行指令,指令在被执行时用于实现如上的方法。附图说明为了更完整地理解本发明及其优势,现在将参考结合附图的以下描述,其中:图1示意性示出了根据本发明实施例的数据加密的方法和装置的应用场景框图;图2示意性示出了根据本发明实施例的数据加密的方法的流程图;图3示意性示出了根据本发明实施例的数据加密的方法的一个应用示例流程图;图4示意性示出了根据本发明实施例的图2中使用可重构电路对所述待加密数据进行加密的流程图;图5示意性示出了根据本发明实施例的图4中获取可重构电路的配置信息的流程图;图6示意性示出了根据本发明实施例的获取可重构电路的配置信息的示例性情景图;图7示意性示出了根据本发明实施例的数据加密的方法中可重构电路在一个时钟周期内的切换工作示例;图8示意性示出了根据本发明实施例的数据加密的方法另一应用实例流程图;图9示意性示出了根据本发明实施例的数据加密的装置的方框图;以及图10示意性示出了根据本发明实施例的数据加密的系统的方框图。具体实施方式以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“a或b”应当被理解为包括“a”或“b”、或“a和b”的可能性。附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。因此,本发明的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本发明的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本发明的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。现有技术中,为了支持更多的算法和可重用性,一般采用两种方案:第一种方案通过增加专用集成电路asic等加密卡的类型和数量,第二种方案通过增加软件加密引擎。在第一种方案中,为了提高专用集成电路asic等加密卡的性能,采用增加加密卡的数量的方案。这种情况下,第一种方案会显著增加硬件成本,而且使用多个加密卡时调度算法的难度会增加。第二种方案可应用于解决算法被攻破后,使用处理器cpu来完成新算法的实现。然而,第二种方案会大大降低加密的性能,在某些高性能领域会不适用,此时依然需要替换加密卡。本发明的实施例提供了一种数据加密的方法、装置、系统和介质。该方法包括从用户系统接收封装待加密数据的数据包,解析该数据包,得到该数据包的包头信息,根据该数据包的包头信息调度可重构电路或专用集成电路对该待加密数据进行加密,得到已加密数据,以及向用户系统发送该已加密数据。其中,根据该数据包的包头信息调度可重构电路或专用集成电路对该待加密数据进行加密,包括在该数据包的包头信息满足预设条件的情况下,使用可重构电路对该待加密数据进行加密,或者在该数据包的包头信息不满足预设条件的情况下,使用专用集成电路对该待加密数据进行加密。根据本发明的实施例,根据解析得到的待加密数据的包头信息针对性地调度可重构电路或专用集成电路对待加密数据进行加密。以此方式,一方面可以增加支持的加密算法数量,因而能够兼顾加密灵活性与高性能的需要;另一方面,可以通过配置信息改变可重构电路的硬件结构,因而能够降低由于密码算法被攻破的概率,提升了加密算法的安全性,降低了硬件成本。图1示意性示出了根据本发明实施例的数据加密的方法和装置的应用场景框图。需要注意的是,图1所示仅为可以应用本发明实施例的场景的示例,以帮助本领域技术人员理解本发明的技术内容,但并不意味着本发明实施例不可以用于其他设备、系统、环境或场景。如图1所示,根据本发明实施例的数据加密的方法和装置的应用场景包括数据加密装置100和用户系统200。用户系统200将待加密数据封装在数据包中,然后通过数据包的形式将待加密数据发送给数据加密装置100。数据加密装置100从用户系统200处接收封装待加密数据的数据包,并对该待加密数据进行加密,得到已加密数据,然后将已加密数据发送至用户系统200,从而完成数据加密过程。该数据加密装置100可以包括控制器110、专用集成电路120、可重构电路130三个部分。其中,专用集成电路120和可重构电路130用于根据控制器110的调度,对待加密数据进行加密以得到已加密数据。具体地,控制器110可以解析从用户系统200接收的数据包以确定其加密属性和加密算法,并据此完成专用集成电路120和可重构电路130的调度,然后根据调度情况将待加密的数据包发送至被调度的专用集成电路120或可重构电路130。专用集成电路120或可重构电路130完成数据加密后,将已加密数据通过控制器110发送至用户系统200。控制器110可以用于实现与用户系统200的通讯接口、专用集成电路120与可重构电路130的调度以及数据加密过程的流程控制等操作。专用集成电路120可以用于实现常用加解密算法的专用集成电路实现,具有功耗低的特点。可重构电路130可以包括可重构阵列,可以通过配置信息配置实现多种加密算法。根据本发明的一些实施例,可重构电路130实现数据加密时具有动态可重构的特性,可以实现动态重构。在一些实施例中,可重构电路130进行数据加密时逻辑的切换速度快,可以在单周期完成逻辑功能的切换。根据本发明的另一些实施例,可重构电路130的配置信息中可以包括用于抗功耗攻击的冗余配置信息,能够有效提高加密数据的抗功耗攻击能力。图2示意性示出了根据本发明实施例的数据加密的方法的流程图。如图2所示,根据本发明实施例的数据加密方法包括操作s210~s250。在操作s210,从用户系统200接收封装待加密数据的数据包。在操作s220,解析该数据包,得到该数据包的包头信息。然后,在操作s230,判断该数据包的包头信息是否满足预设条件。继而根据判断结果调度相应的硬件进行加密运算。具体地,在该数据包的包头信息满足预设条件的情况下,执行操作s240a;或者,在该数据包的包头信息不满足预设条件的情况下,执行操作s240b。在操作s240a,在该数据包的包头信息满足预设条件的情况下,使用可重构电路130对该待加密数据进行加密,得到已加密数据。在操作s240b,在该数据包的包头信息不满足预设条件的情况下,使用专用集成电路120对该待加密数据进行加密,得到已加密数据。在操作s250,向用户系统200发送该已加密数据。根据本发明的实施例,该数据加密方法集成了专用集成电路120和可重构电路130,具有低功耗、高性能和动态可重构的特点,能够支持调度算法的灵活配置,可以极大地提高硬件资源的利用率,应用领域广泛。根据本发明的实施例,当该数据加密方法由数据加密装置100执行时,操作s210、操作s220、操作s230和操作s250中的至少一部分或者全部可以通过控制器110执行,或者由与控制器110通信连接的其他装置来执行。根据本发明的实施例,数据包的包头信息可以用于定义属性、算法类型、和/或有效数据等。表1示例性示出了一个包头信息的内容。属性算法包长有效数据表1属性字段用于定义该数据包的加密性能要求。例如,在图1所示的数据加密装置100中,控制器110可以根据属性字段中携带的指示信息来完成专用集成电路120和可重构电路130的调度。例如,在一些实施例中,若属性字段指示加密性能要求为“高性能”,说明该数据包对即时性要求比较高,那么控制器110可以调用可重构电路130来实现该算法。又例如,在一些实施例中,若属性字段指示加密性能要求为“低功耗”,说明该数据包对即时性要求比较低,那么控制器110可以调用专用集成电路120来完成该算法。另外,在一些实施例中,如果包头信息的属性字段中没有定义为“高性能”或“低功耗”的加密性能要求时,控制器110也可以根据实际情况(例如,可重构电路130的工作负荷)来调度专用集成电路120或可重构电路130来完成加解密。算法字段用于指示加解密该数据包使用的加解密算法,专用集成电路120和/或可重构电路130可以根据算法字段来配置自身,完成本次加解密所需要的配置。例如,假设数据加密装置100可以支持4种算法,那么可以使用2bit的算法指示信息来指示不同的算法。如果数据加密装置100中调度的执行加密算法的单元具体为可重构电路130时,算法字段中就必须要有加密算法的指示信息,以实现可重构电路130相应的算法配置。包长字段用于定义有效数据部分的数据长度。其中,该有效数据部分包括待加密数据。根据本发明的实施例,该数据包的包头信息满足预设条件,可以是该数据包的包头信息包括加密算法指示信息和加密性能要求为高性能的指示信息(即,表1所示的属性字段为“高性能”),或者在该数据包的包头信息包括加密算法指示信息但不包括描述加密性能要求的指示信息时(例如,表1所示的属性字段没有定义为“高性能”或“低功耗”中的任意一个),该可重构电路130中存在用于加密该待加密数据的空闲硬件资源。根据本发明的实施例,操作s220中可以根据应用场景、数据带宽需求、功耗要求等信息对该数据包进行解析,以生成数据包的包头信息中属性字段。根据应用场景对数据包进行解析,得到包头信息中的属性字段时,可以根据具体的应用场景对数据加密的性能要求进行具体的分析。例如,当用户系统200解析该数据包后,发现其为高清视频数据、飞行控制数据、指挥系统数据等实时性要求较高的数据时,可以生成高性能的属性字段。或者,当用户系统200处理移动存储设备、离线设备等实时性要求不高的数据时,可以生成低功耗的属性字段。根据数据带宽需求对数据包进行解析时,可以根据用户系统200的数据带宽需求来确定表1中所示的属性字段。例如,可以通过软件配置该包头信息中的加密性能要求为高性能时对应的数据带宽阈值。如果用户系统200的数据带宽需求高于该数据带宽阈值,则解析得到该数据包的属性字段为高性能,否则为低功耗。根据功耗要求对数据包进行解析时,可以根据用户系统200是否对加密功耗有要求来确定表1中所示的属性字段。如果用户系统200对数据加密装置100的功耗有要求,则可以根据数据加密装置100的功耗参数来灵活配置属性字段。例如,若使用可重构电路130进行加密满足不了功耗需求,则需要使用专用集成电路120进行加密,此时可以解析得到该数据包的属性字段为低功耗。以下可以结合图3的一个应用示例,对根据本发明实施例的数据加密的方法进行进一步的详细描述。图3示意性示出了根据本发明实施例的数据加密的方法的一个应用示例流程图。其中,图3示意的应用示例中示出了根据本发明实施例的数据加密算法的部分流程,省略了操作s210和操作s250。在图3的应用示例中,操作s230可以具体包括操作s231、s232和操作s233,或者操作s231、操作s232、操作s233和操作s234。操作s240a可以包括操作s241a和操作s242a。在图3的应用示例中,判断该数据包的包头信息是否满足预设条件时,具体可以是首先执行操作s231判断该包头信息中是否有算法执行信息。当操作s231的判断结果为否时,调度专用集成电路120对待加密数据进行加密(即执行操作s240b)。当操作s231的判断结果为是时,再执行操作s232。在操作s232中判断该包头信息中的属性字段定义的加密性能要求是否为低功耗。若加密性能要求是低功耗,则调度专用集成电路120进行加密(即执行操作s240b)。若加密性能不是低功耗,则执行操作s233。在操作s233中判断该包头信息中的属性字段定义的加密性能要求是否为高性能。若是,则调用可重构电路130进行加密(即,执行操作s240a,在图3中具体为操作s241a和操作s242a)。若否,则执行操作s234,即根据可重构电路130的工作状态进行进一步判断。在操作s234,判断可重构电路130是否存在空余硬件资源来完成加密算法的配置。如果判断结果为否,表明此时可重构电路130不可配,则调度专用集成电路120进行加密(操作s240b)。如果判断结果为是,则表明可重构电路130此时可配,则先根据加密算法配置可重构电路130(操作s241a)后再使用可重构电路130进行数据加密(操作s242a)。图3所示的数据加密的方法的应用示例中,可以满足数据加密过程对性能和功耗控制的要求,同时又可以最大限度地利用硬件资源。可以理解,图3所示的操作s231、操作s232、操作s233和操作s234的执行先后顺序仅是一种示例,并不构成对本发明的限定。图4示意性示出了根据本发明实施例的图2中操作s240a使用可重构电路130对该待加密数据进行加密的流程图。如图4所示,根据本发明的实施例,操作s240a可以包括操作s401~操作s403。在操作s401,根据该数据包的包头信息中的加密算法指示信息指示的特定加密算法,获取应用于该可重构电路130的用于实现该特定加密算法的配置信息。在操作s402,根据该配置信息配置该可重构电路130。在操作s403,利用配置后的可重构电路130加密该待加密数据。图5示意性示出了根据本发明实施例的图4中操作s401获取可重构电路130的配置信息的流程图。如图5所示,根据本发明的实施例,操作s401可以具体包括操作s501和操作s502。在操作s501,根据该加密算法指示信息,查找用于实现该特定加密算法的配置信息的存储地址。在操作s502,获取该存储地址对应的存储位置中的配置信息。根据本发明的实施例,该配置信息包括运行该特定加密算法的基本配置信息、以及用于抗功耗攻击的冗余配置信息。该冗余配置信息能够提高数据加密的抗功耗攻击能力,保证了可重构电路130可以灵活利用冗余逻辑来实现抗功耗攻击。图6示意性示出了根据本发明实施例的获取可重构电路130的配置信息的示例性情景图。如图6所示,可重构电路130可以事先在存储器mem(例如,在本地存储器mem)中存储实现各个算法所需要的配置信息。这样,可重构电路130可以根据表1的包头信息中算法指示信息指示的特定加密算法查找实现该特定加密算法的配置信息的地址,然后将对应地址的配置信息加载到可重构电路130中以完成本次加密所需要的配置。例如,可重构电路130可以在本地存储器mem存储算法标识与其存储地址的对应关系表,进而根据算法标识和对应关系表找到该特定加密算法的配置信息的地址。图6中的算法a和算法b是通过包头信息中算法字段解析出来的算法配置信息存储的首地址,可以根据这些首地址去读取算法配置信息。根据本发明的实施例,将算法配置信息事先存储,并用算法标识符来索引的方式避免了传输大量的配置数据,避免了数据带宽的浪费,提高了算法的配置效率。根据本发明的实施例,该可重构电路130可配置为同时执行多个不同的加密算法。根据本发明的实施例,该可重构电路130可以在一个时钟周期内完成不同加密算法的切换。具体地,可以参考图7的示意。图7示意性示出了根据本发明实施例的数据加密的方法中可重构电路130在一个时钟周期内的切换工作示例。如图7所示,可重构电路130支持动态重构,可以在最快单个时钟周期内完成逻辑的切换,极大地提高了硬件资源的利用率。可重构电路130可以将可重构阵列划分为多个子阵列,以实现在同一时刻实现多种算法。在一些实施例中,可重构电路130中执行的这些算法可以单周期切换。例如,可重构电路130在t1时刻可以配置成a-f共6种算法,在t2时刻可以配置成g-l共6种算法。在真实的系统中,时钟节拍为t1->t2->t1->t2->......,如此不断重复的。根据本发明的实施例,可以将可重构电路130配置成多个算法同时运行,支持并行化地调度。同时可以根据不同算法的性能对可重构电路130的硬件逻辑实现时分复用,即同一块逻辑可以反复不断地切换来完成不同的算法。譬如实现某加密协议时,需要在时间段t内完成n次aes(advancedencryptionstandard,高级加密标准)操作,2/n次hash(哈希)操作。假定两者性能相同,则可以将同一块逻辑配置成完成2次aes操作之后,做1次hash操作,如此反复,提高了硬件的利用率。并且,由于使用同一块逻辑,降低了整个系统的功耗。图8示意性示出了根据本发明实施例的数据加密的方法另一应用实例流程图。如图8所示,当接收到用户系统200发送的数据包(操作s210)后,可以首先校验crc(cyclicredundancycheck,循环冗余检验)。若crc错误,则上报错误至用户系统200。校验通过的数据包可以缓存至输入fifo(firstinfirstout先入先出寄存器)中。在一些实施例中,可以根据fifo的状态发送缓存状态指示。当fifo将满时可以向用户系统200发送停止请求,以防止fifo溢出。然后,解析数据包(操作s220)。根据数据包的包头信息中指示的算法,将数据包调度到专用集成电路120或者可重构电路130(操作s230),以将数据包加入相应的队列。专用集成电路120或可重构电路130完成数据加密(操作s240b或者操作s240a)后,将数据放入输出缓存,并从通讯接口向用户系统200发送已加密数据(操作s250)。图9示意性示出了根据本发明实施例的数据加密的装置的方框图。如图9所示,根据本发明实施例的数据加密的装置900包括数据包接收模块910、数据包解析模块920、数据加密模块930以及加密数据发送模块940。该装置900可以执行上面参考图2~图8描述的方法,以实现数据加密。根据本发明的实施例,装置900可以数据加密装置100的一种实施例。数据包接收模块910用于从用户系统200接收封装待加密数据的数据包。数据包解析模块920用于解析该数据包,得到该数据包的包头信息。数据加密模块930用于根据该数据包的包头信息调度可重构电路130或专用集成电路120对该待加密数据进行加密,得到已加密数据。加密数据发送模块940用于向用户系统200发送该已加密数据。根据本发明的实施例,数据加密模块930可以包括可重构电路加密子模块931和专用集成电路加密子模块932。可重构电路加密子模块931用于在该数据包的包头信息满足预设条件的情况下,使用可重构电路130对该待加密数据进行加密。专用集成电路加密子模块932用于在该数据包的包头信息不满足预设条件的情况下,使用专用集成电路120对该待加密数据进行加密。根据本发明的实施例,数据加密模块930根据该数据包的包头信息调度可重构电路130或专用集成电路120对该待加密数据进行加密。其中该数据包的包头信息满足预设条件,包括该数据包的包头信息包括加密算法指示信息和加密性能要求为高性能的指示信息,或者在该数据包的包头信息包括加密算法指示信息但不包括描述加密性能要求的指示信息时,该可重构电路130中存在用于加密该待加密数据的空余硬件资源。根据本发明的实施例,可重构加密子模块931在该数据包的包头信息满足预设条件的情况下,使用可重构电路130对该待加密数据进行加密,可以包括根据该数据包的包头信息中的加密算法指示信息指示的特定加密算法,获取应用于该可重构电路130的用于实现该特定加密算法的配置信息,根据该配置信息配置该可重构电路130,以及利用配置后的可重构电路130加密该待加密数据。具体可以参考图4的示例性描述,此处不再赘述。根据本发明实施例,可重构加密子模块931执行的根据该数据包的包头信息中加密算法指示信息指示的特定加密算法,获取应用于该可重构电路130的用于实现该特定加密算法的配置信息,包括根据该加密算法指示信息,查找用于实现该特定加密算法的配置信息的存储地址,以及获取该存储地址对应的存储位置中的配置信息。具体可以参考图5的示例性描述,此处不再赘述。根据本发明实施例,该配置信息包括运行该特定加密算法的基本配置信息、以及用于抗功耗攻击的冗余配置信息。根据本发明的实施例,该可重构电路130可以配置为同时执行多个不同的加密算法。根据本发明的实施例,该可重构电路130可以在一个时钟周期内完成不同加密算法的切换。可以理解的是,数据包接收模块910、数据包解析模块920、数据加密模块930、加密数据发送模块940以及可重构电路加密子模块931和专用集成电路加密子模块932可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,数据包接收模块910、数据包解析模块920、数据加密模块930、加密数据发送模块940以及可重构电路加密子模块931和专用集成电路加密子模块932中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路120(asic),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,数据包接收模块910、数据包解析模块920、数据加密模块930、加密数据发送模块940以及可重构电路加密子模块931和专用集成电路加密子模块932中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。图10示意性示出了根据本发明实施例的数据加密的系统的方框图。如图10所示,该系统1000包括处理器1010、以及计算机可读存储介质1020。该系统1000可以执行上面参考图2~图8描述的方法,以实现数据加密。具体地,处理器1010例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器,等等。处理器1010还可以包括用于缓存用途的板载存储器。处理器1010可以是用于执行参考图2~图8描述的根据本发明实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。计算机可读存储介质1020,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。计算机可读存储介质1020可以包括计算机程序1021,该计算机程序1021可以包括代码/计算机可执行指令,其在由处理器1010执行时使得处理器1010执行例如上面结合图2~图8所描述的方法流程及其任何变形。计算机程序1021可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序1021中的代码可以包括一个或多个程序模块,例如包括模块1021a、模块1021b、......。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器1010执行时,使得处理器1010可以执行例如上面结合图2~图8所描述的方法流程及其任何变形。根据本发明的实施例,数据包接收模块910、数据包解析模块920、数据加密模块930、加密数据发送模块940以及可重构电路加密子模块931和专用集成电路加密子模块932中的至少一个可以实现为参考图10描述的计算机程序模块,其在被处理器1010执行时,可以实现上面描述的相应操作。本领域技术人员可以理解,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本发明中。特别地,在不脱离本发明精神和教导的情况下,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本发明的范围。尽管已经参照本发明的特定示例性实施例示出并描述了本发明,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本发明的精神和范围的情况下,可以对本发明进行形式和细节上的多种改变。因此,本发明的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1