基于安全内存加密技术的加密系统和加密方法与流程

文档序号:17604036发布日期:2019-05-07 20:35阅读:166来源:国知局
本发明涉及本发明涉及数据加密技术,具体涉及基于安全内存加密技术的加密系统和加密方法。
背景技术
::计算机系统的复杂性越来越高,云计算和大数据等新兴技术的应用也日益发展,在许多处理应用环境下,会涉及到实体机之间传输数据、虚拟机(vm)之间传输数据、实体机与虚拟机之间传输数据、cpu的内核与内核之间传输数据(统称为处理器之间传输数据),而且,在许多情况下,处理器与处理器之间并非直接传输数据,而是需要通过接口(io)来实现传输数据。如上所述,随着技术的进步,计算机处理中产生了大量的数据,为了避免数据存取过程中可能发生的未经授权的存取、破坏、篡改,需要在数据存取时支持数据的加密机制。对此,例如在现有技术中,已经推出了sme(securememoryencryption:安全内存加密)技术,其能够实现内存数据加密管理。安全内存加密sme提供的是一个更安全的内存加密机制,以便于在内存内存取数据时得先经过授权才可以存取,可以使用在系统内存的加密,也可以用在vm或容器环境的系统中,另外也可以支持使用在网络、储存、绘图芯片卡这类的硬件装置上。基于图1说明现有技术中在数据传输时的sme工作方式。图1示出了sme的功能框图。处理器借助软件通过在进程的页表(pagetable)中设置c-bit标志(cpuid中标识c-bit的位置),或者使用物理地址的某一bit(例如48位物理地址的bit47)表示该地址是否是内存加密的。如图1中的下部的框图所示,当写内存时,仲裁器选择当前发送io写内存请求还是cpu写内存请求到内存,并发送页表中的用于标记加密状态的一位即cpu页表c-bit或io页表c-bit到选择器。同时,在写内存的模式下,加解密模块选择加密模式,对明文的待写入数据进行加密而形成密文数据,如果当前请求cpu页表c-bit和io页表c-bit=1,那么密文数据通过选择器写入到内存,如果当前请求cpu页表c-bit和io页表c-bit=0,那么明文数据通过选择器写入内存。如图1中的上部的框图所示,当读内存时,发送读请求,第一仲裁器选择发送io读内存请求还是cpu读内存请求到内存,并发送页表中的用于标记加密状态的一位即cpu页表c-bit或io页表c-bit到选择器。同时,在读内存的模式下,加解密模块选择解密模式,对读出ddr的数据进行解密。如果当前请求cpu页表c-bit和io页表c-bit=1,那么选择器输出由加解密模块解密后的明文的数据到第二仲裁器,如果当前请求cpu页表c-bit和io页表c-bit=0,那么选择器直接输出内存数据到第二仲裁器。第二仲裁器根据发送的是io读内存请求还是cpu读内存请求,选择将接收到的数据发送到io还是cpu。如上所述,sme方式在将数据写入内存时自动加密,在将数据从内存读出时自动解密,用来对内存中的部分数据进行加密保护以防止对内存的物理攻击。在某些安全场景下,当两个cpu需要通过io传输部分内存数据时,需要对io之间的传输进行加密,以防止对io之间传输数据的攻击。但是,从sme的工作方式可以看出,sme提供了对内存数据的保护,目前的软件中io和cpu页表c-bit设置为相同值,或者io直接复用cpu的页表,并且对于同样的地址只有一个c-bit,所以当c-bit=1时,那么数据写入时加密,读出时解密,从而数据只有在内存中是加密的,当数据被读出内存后使用明文在io之间传输。当c-bit=0时,数据在内存中是明文,而且当数据被读出内存后也使用明文在io之间传输。因此,现有的sme无法提供io之间数据传输的加密要求。为了解决上述问题,一种思路是如图2所示的基于硬件实现的io间数据加密传输方法。如图2所示,在图1所示的框图中,在io上增加一个单独的加解密模块。内存一侧的加解密模块与上述的sme工作方式相同。当有内存数据要发送到其他系统时(图2的上部的框图),从内存中读出数据,在通过io发送到其他系统之前,加解密模块对要发送的数据进行加密,从而保证io之间使用密文传输;当io接收到其他系统发过来的密文数据时(图2的下部的框图),加解密模块对接收到的数据进行解密之后在系统内传输。这种方式确保了数据在io之间传输是处于加密状态,提高了数据传输安全,但是,需要增加单独的硬件模块(加解密模块),会增加硬件设计的复杂度。如上所述,现有技术中,存在sme无法提供io之间数据传输的加密要求的问题,如果在io控制模块上增加加解密模块,则存在会增加设计复杂度的问题。技术实现要素:发明要解决的课题本发明是鉴于上述的问题而完成的,其目的在于提供一种利用现有sme系统架构为io之间提供加密传输内存数据的加密系统和加密方法。用于解决课题的手段为了解决上述的课题,本发明的一个方案提供一种基于安全内存加密技术的加密系统,包括:处理单元,用于对各个功能单元进行统筹控制;io单元,用于不同处理单元之间的数据传输;内存单元,用于存储数据;以及加解密单元,用于对进出上述内存单元的数据进行加密或解密,其特征在于,上述加密系统与数据地址相关联地设置用于处理单元的处理单元加密标识和用于io单元的io单元加密标识,并且上述处理单元加密标识和上述io单元加密标识为相反逻辑值,上述加解密单元在上述处理单元对上述内存单元读写数据时,基于上述处理单元加密标识进行加密或解密处理;在上述io单元对上述内存单元读写数据时,基于上述io单元加密标识进行加密或解密处理。在上述的基于安全内存加密技术的加密系统中,上述加密系统在写模式下,在写请求来自上述处理单元的情况下,上述加解密单元被切换为加密模式,在写请求来自上述io单元的情况下,上述加解密单元被切换为解密模式。在上述的基于安全内存加密技术的加密系统中,上述加密系统还包括选择器,上述加密系统在写模式下,在上述写请求来自上述处理单元的情况下,上述选择器基于上述处理单元加密标识来选择将来自上述处理单元的数据直接写入上述内存单元,还是经由上述加解密单元加密后写入上述内存单元,在上述写请求来自上述io单元的情况下,上述选择器基于上述io单元加密标识来选择将来自上述io单元的数据直接写入上述内存单元,还是经由上述加解密单元解密后写入上述内存单元。在上述的基于安全内存加密技术的加密系统中,上述加密系统还包括第一仲裁器,上述加密系统在写模式下,上述第一仲裁器选择将来自上述处理单元的写请求还是来自上述io单元的写请求发送到上述内存单元。在上述的基于安全内存加密技术的加密系统中,上述加密系统在读模式下,在读请求来自上述处理单元的情况下,上述加解密单元被切换为解密模式,在读请求来自上述io单元的情况下,上述加解密单元被切换为加密模式。在上述的基于安全内存加密技术的加密系统中,上述加密系统还包括选择器,上述加密系统在读模式下,在上述读请求来自上述处理单元的情况下,上述选择器基于上述处理单元加密标识来选择将来自上述内存单元的数据直接读出到上述处理单元,还是经由上述加解密单元解密后读出到上述处理单元,在上述读请求来自上述io单元的情况下,上述选择器基于上述io单元加密标识来选择将来自上述内存单元的数据直接读出到上述io单元,还是经由上述加解密单元加密后读出到上述io单元。在上述的基于安全内存加密技术的加密系统中,上述加密系统还包括第二仲裁器,上述加密系统在读模式下,上述第一仲裁器选择将来自上述处理单元的读请求还是来自上述io单元的读请求发送到上述内存单元,上述第二仲裁器选择将来自上述选择器的数据读出到上述处理单元还是上述io单元。在上述的基于安全内存加密技术的加密系统中,数据发送端和数据接收端均采用上述加密系统,上述处理单元加密标识在上述数据发送端和上述数据接收端中设置为相同逻辑值,上述io单元加密标识在上述数据发送端和上述数据接收端中设置为相同逻辑值。在上述的基于安全内存加密技术的加密系统中,数据发送端和数据接收端均采用上述加密系统,上述处理单元加密标识在上述数据发送端和上述数据接收端中设置为相反逻辑值,上述io单元加密标识在上述数据发送端和上述数据接收端中设置为相反逻辑值。在上述的基于安全内存加密技术的加密系统中,上述处理单元是cpu,上述处理单元加密标识是cpu页表中的某一bit,上述io加密标识是io页表中的某一bit,或者上述处理单元加密标识和上述io加密标识是物理地址中的某一bit。在上述的基于安全内存加密技术的加密系统中,上述处理单元加密标识是cpu页表c-bit,上述io加密标识是io页表c-bit,或者上述处理单元加密标识和上述io加密标识是物理地址中的第47bit,在上述cpu页表c-bit、上述io页表c-bit或者上述第47bit为1时,表示进行加密或解密处理,在上述cpu页表c-bit、上述io页表c-bit或者上述第47bit为0时,表示不进行加密或解密处理。本发明的另一个技术方案提供一种基于安全内存加密技术的加密系统中的加密方法,上述加密系统包括:处理单元,用于对各个功能单元进行统筹控制;io单元,用于不同处理单元之间的数据传输;内存单元,用于存储数据;以及加解密单元,用于对进出上述内存单元的数据进行加密或解密,上述加密方法的特征在于,包括:与要加密的数据地址相关联地设置用于处理单元的处理单元加密标识和用于io单元的io单元加密标识,并且上述处理单元加密标识和上述io单元加密标识为相反逻辑值的步骤;以及上述加解密单元在上述处理单元对上述内存单元进行读写时,基于上述处理单元加密标识进行加密或解密处理;在上述io单元对上述内存单元进行读写时,基于上述io单元加密标识进行加密或解密处理的步骤。在上述的基于安全内存加密技术的加密系统中的加密方法中,上述加密系统在写模式下,在写请求来自上述处理单元的情况下,上述加解密单元被切换为加密模式,在写请求来自上述io单元的情况下,上述加解密单元被切换为解密模式。在上述的基于安全内存加密技术的加密系统中的加密方法中,上述加密系统还包括选择器,上述加密系统在写模式下,在上述写请求来自上述处理单元的情况下,上述选择器基于上述处理单元加密标识来选择将来自上述处理单元的数据直接写入上述内存单元,还是经由上述加解密单元加密后写入上述内存单元,在上述写请求来自上述io单元的情况下,上述选择器基于上述io单元加密标识来选择将来自上述io单元的数据直接写入上述内存单元,还是经由上述加解密单元解密后写入上述内存单元。在上述的基于安全内存加密技术的加密系统中的加密方法中,上述加密系统还包括第一仲裁器,上述加密系统在写模式下,上述第一仲裁器选择将来自上述处理单元的写请求还是来自上述io单元的写请求发送到上述内存单元。在上述的基于安全内存加密技术的加密系统中的加密方法中,上述加密系统在读模式下,在读请求来自上述处理单元的情况下,上述加解密单元被切换为解密模式,在读请求来自上述io单元的情况下,上述加解密单元被切换为加密模式。在上述的基于安全内存加密技术的加密系统中的加密方法中,上述加密系统还包括选择器,上述加密系统在读模式下,在上述读请求来自上述处理单元的情况下,上述选择器基于上述处理单元加密标识来选择将来自上述内存单元的数据直接读出到上述处理单元,还是经由上述加解密单元解密后读出到上述处理单元,在上述读请求来自上述io单元的情况下,上述选择器基于上述io单元加密标识来选择将来自上述内存单元的数据直接读出到上述io单元,还是经由上述加解密单元加密后读出到上述io单元。在上述的基于安全内存加密技术的加密系统中的加密方法中,上述加密系统还包括第二仲裁器,上述加密系统在读模式下,上述第一仲裁器选择将来自上述处理单元的读请求还是来自上述io单元的读请求发送到上述内存单元,上述第二仲裁器选择将来自上述选择器的数据读出到上述处理单元还是上述io单元。在上述的基于安全内存加密技术的加密系统中的加密方法中,数据发送端和数据接收端均采用上述加密系统,上述处理单元加密标识在上述数据发送端和上述数据接收端中设置为相同逻辑值,上述io单元加密标识在上述数据发送端和上述数据接收端中设置为相同逻辑值。在上述的基于安全内存加密技术的加密系统中的加密方法中,数据发送端和数据接收端均采用上述加密系统,上述处理单元加密标识在上述数据发送端和上述数据接收端中设置为相反逻辑值,上述io单元加密标识在上述数据发送端和上述数据接收端中设置为相反逻辑值。在上述的基于安全内存加密技术的加密系统中的加密方法中,上述处理单元是cpu,上述处理单元加密标识是cpu页表中的某一bit,上述io加密标识是io页表中的某一bit,或者上述处理单元加密标识和上述io加密标识是物理地址中的某一bit。在上述的基于安全内存加密技术的加密系统中的加密方法中,上述处理单元加密标识是cpu页表c-bit,上述io加密标识是io页表c-bit,或者上述处理单元加密标识和上述io加密标识是物理地址中的第47bit,在上述cpu页表c-bit、上述io页表c-bit或者上述第47bit为1时,进行加密或解密处理,在上述cpu页表c-bit、上述io页表c-bit或者上述第47bit为0时,不进行加密或解密处理。发明效果通过使用本发明的基于安全内存加密技术的加密系统中的加密系统和加密方法,可在不需要增加单独的硬件模块的情况下,使用现有的sme架构实现io之间对内存数据的安全传输。增加io之间数据传输的安全性,防止外界对io传输数据的攻击。附图说明图1示出了sme的功能框图。图2示出了基于硬件实现的数据加密系统的框图。具体实施方式下面将结合附图具体说明本发明的示例性实施方式,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。[数据加密系统]本发明的实施方式的数据加密系统在硬件结构上与现有技术的使用了sme数据保护系统相同,因此,在此使用图1进行说明。图1示出了本发明的实施方式的数据加密系统的一个实施例的框图。图1所示的数据加密系统在发送数据时可以被用作发送端系统,在接收数据时可以被用作接收端系统。如图1所示,数据加密系统包括:cpu,其用于对各个功能单元进行统筹控制;io,其用于不同处理单元之间的数据传输;内存,其用于存储数据;以及加解密模块,其用于对进出内存单元的数据进行加密或解密。另外,根据需要在数据加密系统中还可以包括选择器以及仲裁器等,对此将在下面进行具体说明。需要说明的是,在上述的实施例中,为了简化说明以及便于理解,对于发送端系统和接收端系统仅举例说明了各包括一个cpu以及与该一个cpu为一对一的对应关系的其它各功能模块或器件,但是,cpu可以是需要进行安全通信的多个cpu,其它各功能模块或器件可以为多个或者也可以在多个cpu之间共用。而且,所谓的cpu也不限于通常所说的中央处理器,也可以是虚拟机(vm)中实现cpu功能的模块、cpu的内核(core)、其它指示进行io数据传输的软/硬件模块、进程等,任何指示io之间进行数据传输的软件模块或硬件模块都可视为本发明的实施方式中举例说明的cpu(也称为处理单元)。在实施例的数据加密系统中,需要进行安全通信的多个cpu(在实施例中以两个cpu为例)各自在发送端内存和接收端内存中定义一段内存空间用来进行安全io数据传输,对这段内存空间,两个cpu使用相同的密钥和的用于标记加密状态的加密标识的配置。加密标识指的是在访问内存时用来指示对要访问的地址是否要采取加密或解密措施。加密标识可以是页表中的某一位,例如c-bit位,也可以使用物理地址的某一bit,例如bit47。在本实施例中,以采用页表中的c-bit为例进行说明。cpu将io页表c-bit设置为cpu页表c-bit的相反值,即,若cpu页表c-bit=1,则io页表c-bit=0;若cpu页表c-bit=0,则io页表c-bit=1。io的页表在io内存管理单元(input/outputmemorymanagementunit,iommu)中设置。cpu的页表在系统的内存管理单元(memorymanagementunit,mmu)中设置。两个cpu对需要进行安全io数据传输地址段的io页表c-bit设置为相同值。两个cpu对需要进行安全io传输地址段的cpu页表c-bit设置为相同值。当对内存的访问请求来自io时,加密标识来自io的页表,当对内存的访问请求来自cpu时,加密标识来自cpu的页表。加解密模块通过判断访问请求来自io还是来自cpu从而切换加解密方向。当访问请求来自io时,从内存读出数据时选择加密模式,向内存写入数据时选择解密模式;当访问请求来自cpu时,从内存读出数据时选择解密模式,向内存写入数据时选择加密模式。下面,具体说明在进行io间数据加密传输时,上述的发送端系统、接收端系统、以及其具备的各模块之间的关系及作用,对于该系统进行其它工作时(例如不经由io而cpu之间直接传输数据时)的动作,在此省略说明。在作为发送端系统时,包括写数据模式和读数据模式。如图1中的下部的图所示,在写数据模式中,cpu发送写内存请求和待写入数据;第一仲裁器经过判断选择发送cpu写内存请求和待写入数据;加解密模块选择加密模式;选择器根据cpu页表c-bit来判断将来自仲裁器的数据直接写入内存还是将来自加解密模块的数据写入内存;发送端内存存储待发送数据。如图1中的上部的图所示,在读数据模式中,cpu指示io发出读内存请求以从内存读出待发送数据;第一仲裁器经过判断选择接收从io发送来的读内存请求,选择发送io读内存请求到内存,并选择发送io页表c-bit到选择器;加解密模块根据io页表c-bit来判断是否对来自内存的明文数据进行加密,在io页表c-bit=1时,进行加密,在io页表c-bit=0时,不进行加密;选择器根据io页表c-bit来选择输出数据,在io页表c-bit=1时,由加解密模块加密后的密文数据输出到第二仲裁器,在io页表c-bit=0时,直接将内存中的密文数据输出到第二仲裁器;第二仲裁器经过判断选择将来自选择器的密文数据发送到io。因为io页表c-bit与cpu页表c-bit被设置为相反逻辑值,所以若cpu在内存中写入的是明文数据,则io在读取时加解密模块进行加密,而若cpu在内存中写入的是密文数据,则io在读取时加解密模块不进行解密,确保了io从内存读取到的数据总是加密数据。在作为接收端系统时,包括写数据模式和读数据模式。如图1中的下部的图所示,在写数据模式中,io接收从发送端系统中的io发送的密文数据;第一仲裁器经过判断选择接收从io发送来的写内存请求和密文数据,将io页表c-bit发送到选择器;加解密模块根据io页表c-bit来判断是否对来自第一仲裁器的密文数据进行解密,在io页表c-bit=1时,进行解密,在io页表c-bit=0时,不进行解密;选择器根据io页表c-bit来选择写入数据,在io页表c-bit=1时,由加解密模块解密后的明文数据被写入到内存,在io页表c-bit=0时,直接将来自仲裁器的密文数据写入到内存。如图1中的上部的图所示,在读数据模式中,cpu发送读内存请求以读出内存中的数据;第一仲裁器经过判断选择接收从cpu发送来的读内存请求,选择发送cpu读内存请求到内存,并选择发送cpu页表c-bit到选择器;在cpu页表c-bit=1时,加解密模块对来自内存的密文数据进行解密,在cpu页表c-bit=0时,不进行解密;选择器根据cpu页表c-bit来选择输出数据,在cpu页表c-bit=1时,由加解密模块解密后的明文数据输出到第二仲裁器,在cpu页表c-bit=0时,直接将内存中的数据输出到第二仲裁器;第二仲裁器经过判断选择选择将来自选择器的数据发送到cpu。因为cpu页表c-bit与io页表c-bit被设置为相反逻辑值,所以若io写入到内存中的是密文,则cpu读取时加解密模块进行解密,而若io写入到内存中的是明文,则cpu读取时加解密模块不进行加密,确保了cpu从内存读出的数据总是明文数据。需要说明的是,在上述的实施例的数据加密系统中,将加解密模块、在第一仲裁器、以及选择器这三者在写数据模式和读数据模式中兼用,将第二仲裁器仅用于读数据模式。然而,不限于此,也可以针对写数据模式和读数据模式分别设置各自的加解密模块、仲裁器、选择器,在此情况下,在接收端系统和发送端系统的每一个中,使用2个加解密模块、3个仲裁器、2个选择器。此外,还可以仅设置1个仲裁器,该1个仲裁器被兼用在写数据模式和读数据模式中,并且,在读数据模式中,被兼用于向内存选择发送cpu读内存请求还是io读内存请求、和将数据选择读出到cpu还是io。[io间数据加密传输方法]以上说明了数据加密系统的构成及其各部的工作方式。下面,举例说明在实施例的数据加密系统中适用的io间数据加密传输方法的各步骤。为了简化说明以及便于理解,仅举例说明各包括一个cpu以及与该一个cpu为一对一的对应关系的其它各功能模块或器件的情况下的io间数据加密传输方法,但是,在包括需要进行安全通信的多个cpu的数据加密系统的情况下,该方法也同样适用。当发送端系统中的cpu页表c-bit=0时,在发送端系统中:步骤1,将io页表c-bit设置为1。步骤2,cpu写内存,由于cpu页表c-bit=0,所以选择器将明文数据写入到内存。步骤3,io读内存数据,由于io页表c-bit=1,所以加解密模块对读出的数据进行加密,并且选择器根据io页表c-bit=1而选择由加解密模块加密后的密文数据,密文数据通过第二仲裁器输出到io,并由io向外部发送。在接收端系统中:步骤4,将cpu页表c-bit设置为0,将io页表c-bit设置为1。步骤5,io接收从发送端系统的io发送来的密文数据,由于io页表c-bit=1,所以加解密模块对要写入内存的密文数据进行解密,选择器根据io页表c-bit=1而选择将由加解密模块解密后的明文数据写入内存。步骤6,cpu读内存,由于cpu页表c-bit=0,所以选择器选择cpu直接从内存读出明文数据。当发送端系统中的cpu页表c-bit=1时,在发送端系统中:步骤1,将io页表c-bit设置为0。步骤2,cpu写内存,由于cpu页表c-bit=1,所以加解密模块对写入数据进行加密,选择器选择将由加解密模块加密后的密文数据写入到内存。步骤3,io读内存,由于io页表c-bit=0,所以选择器选择直接读出内存中的密文数据,密文数据通过第二仲裁器输出到io,并由io向外部发送。在接收端系统中:步骤4,将cpu页表c-bit设置为1,将io页表c-bit设置为0。步骤5,io接收从发送端系统的io发送来的密文数据,由于io页表c-bit=0,所以加解密模块不进行解密,选择器选择直接将密文数据写入到内存。步骤6,cpu读内存,由于cpu页表c-bit=1,所以加解密模块对从内存读出的数据进行解密,选择器选择将由加解密模块解密后的明文数据发送到cpu,cpu得到明文数据。[变形例]在上述的数据加密系统和io间数据加密传输方法中,说明了将两个cpu页表c-bit设为相同逻辑值,并且将两个io页表c-bit=0设为与cpu页表c-bit相反的逻辑值。然而,并不限于这种设置,本发明的目的在于实现io间数据加密传输,只要发送端系统中的cpu页表c-bit与io页表c-bit=0相反,即可实现io传输数据的加密,对于在接收端系统中是以明文还是密文写入内存,可以根据实际需要而设置。而且,在接收端系统中,只要cpu页表c-bit与io页表c-bit=0相反,则不论接收到的数据是以明文还是密文写入在内存中,cpu都能够读取到明文数据。以下举例进行说明。当发送端系统中的cpu页表c-bit=0时,在发送端系统中:步骤1,将io页表c-bit设置为1。步骤2,cpu写内存,由于cpu页表c-bit=0,所以选择器将明文数据写入到内存。步骤3,io读内存数据,由于io页表c-bit=1,所以加解密模块对读出的数据进行加密,并且选择器根据io页表c-bit=1而选择由加解密模块加密后的密文数据,密文数据通过第二仲裁器到达io,并由io向外部发送。在接收端系统中:步骤4,将cpu页表c-bit设置为1,将io页表c-bit设置为0。步骤5,io写内存,由于io页表c-bit=0,所以选择器根据io页表c-bit=0而选择将io所接收到的密文数据直接写入内存。步骤6,cpu读内存,由于cpu页表c-bit=1,所以加解密模块对从内存读出的密文数据进行解密,选择器选择将由加解密模块解密后的明文数据发送到cpu,cpu得到明文数据。当发送端系统中的cpu页表c-bit=1时,在发送端系统中:步骤1,将io页表c-bit设置为0。步骤2,cpu写内存,由于cpu页表c-bit=1,所以加解密模块对写入数据进行加密,选择器选择将由加解密模块加密后的密文数据写入到内存。步骤3,io读内存,由于io页表c-bit=0,所以加解密模块不进行加密,选择器选择直接读出内存中的密文数据,密文数据通过第二仲裁器输出到发送端io并由io向外部发送。在接收端系统中:步骤4,将cpu页表c-bit设置为0,将io页表c-bit设置为1。步骤5,io写内存,由于io页表c-bit=1,所以加解密模块对io所接收到的密文数据进行解密,选择器选择将由加解密模块解密后的明文数据写入到内存。步骤6,cpu读内存,由于cpu页表c-bit=0,所以选择器选择cpu直接从内存读出明文数,cpu得到明文数据。如上所述,在实施例和变形例的数据加密系统和io间数据加密传输方法中,通过设置发送端系统和接收端系统中的cpu页表c-bit、io页表c-bit,尤其是,在发送端系统中,将io页表c-bit设置为与cpu页表c-bit相反的逻辑值,并且内存、加解密模块、以及选择器根据发送端系统中的io页表c-bit和cpu页表c-bit进行动作(上述的步骤1-步骤3),从而确保了不论发内存中写入的是密文数据还是明文数据,io读取到的数据都是加密数据并发送该加密数据,在接收端系统中,io接收到的都是加密数据,使得在发送端io与接收端io之间传输的数据处于加密状态。对于接收端系统中的cpu页表c-bit、io页表c-bit,不限于上述实施例中说明的分别与发送端的cpu页表c-bit、io页表c-bit为相同值,而是可以根据需要向内存写入密文数据还是明文数据来进行设置(上述的步骤4、5)。在接收端系统中,在需要写入明文数据时,将io页表c-bit设置为1,使加解密模块对来自io的密文数据进行解密后,选择器将明文数据写入内存,此时,将cpu页表c-bit设置为0,cpu直接读出内存中的明文数据。在接收端系统中,在需要写入密文数据时,将io页表c-bit设置为0,选择器将密文数据直接写入到内存,此时,将cpu页表c-bit设置为1,加解密模块对从内存读出的密文数据进行解密,cpu得到被解密后的明文数据。因此,不论接收端系统中的内存是以密文存储数据还是以明文存储数据,只要将接收端系统中的cpu页表c-bit和io页表c-bit设置为相反的逻辑值,就能够使得cpu读取到明文数据。此外,在上述的在实施方式和变形例中,均使用页表c-bit来表示数据是否加密,然而,不限于此,也可以采用其它标志来表示数据是否加密(称为加密标识)。此外,在上述的在实施方式和变形例中,按照各步骤的先后顺序说明了io间数据加密传输方法,但是,本领域技术人员可以根据实际需要而将上述的各步骤中的一部分合并、分解、调整顺序等。通过使用本发明的方法,可在不需要增加单独的硬件模块的情况下,使用现有的sme单元实现io之间对内存数据的安全传输。增加io之间数据传输的安全性,防止外界对io传输数据的攻击。此外,虽然在系统模块单元的背景下描述了本发明并且采用功能块的形式举例说明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。以上参考附图,基于实施方式的实施例和变形例说明了本发明,但本发明并非限定于上述的实施方式,根据实际需要等将各实施方式的部分构成适当组合或置换后的方案,也包含在本发明的范围内。另外,还可以基于本领域技术人员的知识适当重组各实施方式的组合和处理顺序,或者对各实施方式施加各种设计变更等变形,被施加了这样的变形的实施方式也可能包含在本发明的范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1