一种数据加密方法、数据解密方法、处理器及计算机设备
技术领域
本申请属于数据加密技术领域,具体涉及一种数据加密方法、数据解密方法、处理器及计算机设备。
背景技术
在虚拟化技术中使用嵌套页表技术来管理虚拟机的内存,嵌套页表由主机管理,维护虚拟机物理地址到主机物理地址的映射关系。现有的内存加密技术中通过混淆主机物理地址的方式,实现不同物理地址的数据加密后,即使明文相同密文也不相同,可以部分抵御重放攻击,使攻击者不能直接替换密文数据进行攻击。由于嵌套页表由主机管理,混淆主机物理地址加密的方案中,非法主机仍然可以通过修改嵌套页表使虚拟机物理地址映射到新的主机物理地址实施重放攻击。
发明内容
鉴于此,本申请的目的在于提供一种数据加密方法、数据解密方法、处理器及计算机设备,以改善现有加密方式下攻击者可以通过修改嵌套页表使虚拟机物理地址映射到新的主机物理地址实施重放攻击的问题。
本申请的实施例是这样实现的:
第一方面,本申请实施例提供了一种数据加密方法,包括:接收虚拟机发送的数据写入请求;获取所述数据写入请求中携带的所述虚拟机的虚拟机物理地址和待写入数据;在所述待写入数据是所述虚拟机的私有数据时,通过混淆所述虚拟机物理地址的方式对所述待写入数据进行加密。本申请实施例中,通过混淆虚拟机物理地址的方式对虚拟机的私有数据进行加密,使得非法主机即使通过修改嵌套页表虚拟机物理地址映射到新的主机物理地址,也无法得到正确的解密结果,使得攻击者无法再通过篡改嵌套页表的方法进行重放攻击,提高了数据的安全性。
结合第一方面实施例的一种可能的实施方式,通过以下步骤确定所述待写入数据是否为所述虚拟机的私有数据:基于所述虚拟机物理地址中携带的标记位判断所述待写入数据是否为所述虚拟机的私有数据。本申请实施例中,通过将用于表征待写入数据是否为所述虚拟机的私有数据的标记位携带在虚拟机物理地址中,而不是采用单独的标签,能加快加密处理流程,节约资源。
结合第一方面实施例的一种可能的实施方式,通过以下步骤确定所述待写入数据是否为所述虚拟机的私有数据:基于所述数据写入请求中携带的标签中的标记位判断所述待写入数据是否为所述虚拟机的私有数据。本申请实施例中,通过在数据写入请求中封入一个标签来表示该待写入数据是否为虚拟机的私有数据,为判断该待写入数据是否为虚拟机的私有数据提供了一种新的实施方式。
结合第一方面实施例的一种可能的实施方式,通过混淆所述虚拟机物理地址的方式对所述待写入数据进行加密之后,所述方法还包括:将加密后的待写入数据写入所述虚拟机物理地址对应的内存空间中。本申请实施例中,将加密后的待写入数据写入该虚拟机物理地址对应的内存中,使得不同的虚拟机所访问的内存资源不同,提高了数据的安全性。
第二方面,本申请实施例还提供了一种数据解密方法,包括:接收虚拟机发送的数据读取请求;获取所述数据读取请求中携带的所述虚拟机的虚拟机物理地址和数据长度;在所述数据长度对应的待读取数据是所述虚拟机的私有数据时,通过混淆所述虚拟机物理地址的方式对所述待读取数据进行解密。本申请实施例中,通过混淆虚拟机物理地址的方式对虚拟机的私有数据进行解密,使得非法主机即使通过修改嵌套页表虚拟机物理地址映射到新的主机物理地址,也无法得到正确的解密结果,使得攻击者无法再通过篡改嵌套页表的方法进行重放攻击,提高了数据的安全性。
结合第二方面实施例的一种可能的实施方式,通过以下步骤确定所述待读取数据是否为所述虚拟机的私有数据:基于所述虚拟机物理地址中携带的标记位判断所述待读取数据是否为所述虚拟机的私有数据。本申请实施例中,通过将用于表征待读取数据是否为所述虚拟机的私有数据的标记位携带在虚拟机物理地址中,而不是采用单独的标签,能加快解密处理流程,节约资源。
结合第二方面实施例的一种可能的实施方式,通过以下步骤确定所述待读取数据是否为所述虚拟机的私有数据:基于所述数据读取请求中携带的标签中的标记位判断所述待读取数据是否为所述虚拟机的私有数据。本申请实施例中,通过在数据读取请求中封入一个标签来表示该待读取数据是否为虚拟机的私有数据,为判断该待读取数据是否为虚拟机的私有数据提供了一种新的实施方式。
第三方面,本申请实施例还提供了一种处理器,包括:处理器核,用于接收第一虚拟机发送的数据写入请求,并获取所述数据写入请求中携带的所述第一虚拟机的第一虚拟机物理地址和待写入数据;内存控制器,用于在所述待写入数据是所述第一虚拟机的私有数据时,通过混淆所述第一虚拟机物理地址的方式对所述待写入数据进行加密。
结合第三方面实施例的一种可能的实施方式,所述内存控制器,还用于基于所述第一虚拟机物理地址中携带的标记位判断所述待写入数据是否为所述第一虚拟机的私有数据。
结合第三方面实施例的一种可能的实施方式,所述处理器核还用于获取所述数据写入请求中携带的标签;相应地,所述内存控制器,还用于基于所述标签中的标记位判断所述待写入数据是否为所述虚拟机的私有数据。
结合第三方面实施例的一种可能的实施方式,所述内存控制器,还用于将加密后的待写入数据写入所述第一虚拟机物理地址对应的内存空间中。
结合第三方面实施例的一种可能的实施方式,所述处理器核,还用于接收第二虚拟机发送的数据读取请求,并获取所述数据读取请求中携带的所述第二虚拟机的第二虚拟机物理地址和数据长度;所述内存控制器,还用于在所述数据长度对应的待读取数据是所述第二虚拟机的私有数据时,通过混淆所述第二虚拟机物理地址的方式对所述待读取数据进行解密。
结合第三方面实施例的一种可能的实施方式,所述内存控制器,还用于基于所述第二虚拟机物理地址中携带的标记位判断所述待读取数据是否为所述第二虚拟机的私有数据。
结合第三方面实施例的一种可能的实施方式,所述处理器核还用于获取所述数据读取请求中携带的标签;相应地,所述内存控制器,还用于基于所述标签中的标记位判断所述待读取数据是否为所述虚拟机的私有数据。
第四方面,本申请实施例还提供了一种计算机设备,包括内存和如上述结合第三方面和/或结合第三方面实施例的任一种可能的实施方式提供的处理器。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。
图1示出了现有加密方式的加密示意图。
图2示出了通过篡改嵌套页表使得虚拟机物理地址映射到新的主机物理地址的示意图。
图3示出了本申请实施例提供的一种处理器与内存交互的结构示意图。
图4示出了本申请实施例提供的加密方式的加密示意图。
图5示出了本申请实施例提供的一种数据加密方法的流程示意图。
图6示出了本申请实施例提供的一种数据解密方法的流程示意图。
图7示出了本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
现有的内存加密技术中,虚拟机数据和主机数据使用不同的密钥进行加密,但是主机数据和虚拟机数据都通过混淆主机物理地址的方式进行加密,其加密示意图如图1所示。由于在加密模块中混入了主机物理地址,对于不同物理地址的内存数据,即使明文相同,对应的密文也不同,可以防止攻击者直接替换不同页面的数据。但是由于维护虚拟机物理地址到主机物理地址的映射关系的嵌套页表被主机管理,非法主机可以通过篡改嵌套页表进行攻击。其中,嵌套页表是在内存虚拟化中使用的技术,用于维护虚拟机物理地址到主机物理地址的映射关系,由主机管理。其中,混淆主机物理地址是指,将主机物理地址混淆在密钥或者待加密的数据中,换句话说,该过程可以是使用混淆了主机物理地址的密钥(新的密钥)对待加密的数据进行加密,或者是使用密钥对混淆了主机物理地址的待加密数据进行加密。
为了便于理解通过篡改嵌套页表使得虚拟机物理地址映射到新的主机物理地址的过程,下面结合图2所示的示意图进行说明。在正常情况下,基于嵌套页表得到的虚拟机物理地址1(对应虚拟机1)对应的主机物理地址为主机物理地址1,对应的内存资源为页面1(内存页1),基于嵌套页表得到的虚拟机物理地址2(对应虚拟机1)对应的主机物理地址为主机物理地址2,对应的内存资源为页面2(内存页2)。通过篡改嵌套页表,使得虚拟机物理地址1映射到主机物理地址2,从而错误地使用页面2的内存,由于页面2的内存数据采用混淆主机物理地址2的方式进行加密,因此页面2的主机物理地址不变,仍为主机物理地址2,这样虚拟机1仍然可以解密得到正确的结果,借助这种攻击手段,使得攻击者可以实施重放攻击。也即,在正确情况下,虚拟机物理地址1只能访问页面1中的数据,虚拟机物理地址2只能访问页面2中的而数据,但是通过篡改嵌套页表,使得虚拟机物理地址1可以访问页面2中的数据。
其中,需要说明的是,不同的虚拟机对应不同的内存资源,使得不同的虚拟机所访问的内存资源不同。此外,不同的虚拟机对应的虚拟机物理地址不同,与之对应的主机物理地址(也即内存的物理地址)也不相同。
为了抵御这种攻击,本申请提供了一种新的数据加解密方法,通过在内存加密中引入混淆虚拟机物理地址,来防止恶意主机通过修改嵌套页表使虚拟机物理地址映射到新的主机物理地址实施重放攻击,增强了虚拟机数据的安全性。其中,混淆虚拟机物理地址是指,将虚拟机物理地址混淆在密钥或者待加密的数据中,换句话说,该过程可以是使用混淆了虚拟机物理地址的密钥(新的密钥)对待加密的数据进行加密,或者是使用密钥对混淆了虚拟机物理地址的待加密数据进行加密。需要说明的是,针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是发明人在本申请过程中对本申请做出的贡献。
为了便于理解本申请提供的数据加解密方法,下面将结合图3所示的系统架构图对该方法进行说明。
当处理器运行在虚拟机模式下,在内存控制器的加解密模块中混淆虚拟机物理地址对虚拟机的私有数据进行加解密。其中,处理器的运行模式有虚拟机模式和主机模式。而主机模式是管理模式,负责管理硬件资源。虚拟机模式运行虚拟机,且虚拟机也只能运行在虚拟机模式下。
在数据加密时,若处理器接收到第一虚拟机发送的数据写入请求,则获取该数据写入请求中携带的第一虚拟机物理地址和待写入数据,若该待写入数据是虚拟机的私有数据时,则通过混淆该第一虚拟机物理地址的方式对待写入数据进行加密,若该待写入数据不为私有数据时,则采用混淆第一主机物理地址的方式对待写入数据进行加密,然后将加密后的待写入数据写入该第一虚拟机物理地址对应的内存空间中,也即将加密后的待写入数据写入第一虚拟机物理地址对应的第一主机物理地址指向的内存空间中。其中,该第一主机物理地址为基于嵌套页表得到的第一虚拟机物理地址对应的主机物理地址。
作为一种实施方式,该数据写入请求中携带有发送该数据写入请求的第一虚拟机的第一虚拟机物理地址和需要写入的待写入数据。在该种实施方式下,使用第一虚拟机物理地址中的1个比特位来表示该待写入数据是否为第一虚拟机的私有数据。此时,处理器基于该第一虚拟机物理地址中携带的标记位判断待写入数据是否为私有数据,例如,若该比特位为1则表示该待写入数据是私有数据,若该比特位为0则表示该待写入数据不是私有数据。当然,也可以反过来,如0表示该待写入数据是私有数据,1表示该待写入数据不是私有数据。此外,还可以采用其他的数值或标识符来表示该待写入数据是否为私有数据。
作为又一种实施方式,该数据写入请求中携带有发送该数据写入请求的第一虚拟机的第一虚拟机物理地址、需要写入的待写入数据和用于表征该待写入数据是否为私有数据的标签。在该种实施方式下,不再使用第一虚拟机物理地址中的1个比特位来表示该待写入数据是否为第一虚拟机的私有数据,而是在数据写入请求中封入一个标签来表示该待写入数据是否为第一虚拟机的私有数据。此时,处理器基于该标签中携带的标记位判断待写入数据是否为私有数据。
上述的加密过程是从处理器的角度整体来描述的,当该处理器包括处理器核(内核)和内存控制器时,此时,处理器核,用于接收第一虚拟机发送的数据写入请求,并获取该数据写入请求中携带的第一虚拟机的第一虚拟机物理地址和待写入数据。处理器核,还用于基于嵌套页表获得该第一虚拟机物理地址对应的第一主机物理地址,并向内存控制器发送写指令。内存控制器,用于在该待写入数据是私有数据时,通过混淆第一虚拟机物理地址的方式对待写入数据进行加密,以及还用于将加密后的待写入数据写入所述第一虚拟机物理地址对应的内存空间中,也即将加密后的待写入数据写入第一虚拟机物理地址对应的第一主机物理地址指向的内存空间中。
作为一种实施方式,该写指令中携带有该第一虚拟机物理地址、第一主机物理地址以及待写入数据。此时,当内存控制器在接收到处理器核发送的写指令时,获取该写指令中携带的第一虚拟机物理地址、第一主机物理地址以及待写入数据,然后基于该第一虚拟机物理地址中携带的标记位判断该待写入数据是否为私有数据,在该待写入数据是私有数据时,通过混淆第一虚拟机物理地址的方式对待写入数据进行加密,在该待写入数据不是私有数据时,通过混淆第一主机物理地址的方式对待写入数据进行加密。
作为又一种实施方式,若不再使用第一虚拟机物理地址中的1个比特位来表示该待写入数据是否为第一虚拟机的私有数据,而是采用一个单独的标签来表示该待写入数据是否为第一虚拟机的私有数据时,此时,处理器核在接收到第一虚拟机发送的数据写入请求,除了获取该数据写入请求中携带的第一虚拟机的第一虚拟机物理地址和待写入数据外,还需要获取标签。相应地,处理器核向内存控制器发送的写指令中携带有该标签、第一虚拟机物理地址、第一主机物理地址以及待写入数据。此时,当内存控制器在接收到处理器核发送的写指令时,获取该写指令中携带的标签、第一虚拟机物理地址、第一主机物理地址以及待写入数据,然后基于该标签中携带的标记位判断该待写入数据是否为私有数据,在该待写入数据是私有数据时,通过混淆第一虚拟机物理地址的方式对待写入数据进行加密,在该待写入数据不是私有数据时,通过混淆第一主机物理地址的方式对待写入数据进行加密。
通过上述的描述,可以看出本申请对虚拟机的私有数据以及虚拟机和主机共用数据不再是均采用混淆主机物理地址的方式进行加密,而是对虚拟机的私有数据采用混淆虚拟机物理地址的方式加密,对虚拟机和主机共用数据采用混淆主机物理地址的方式加密,其加密的示意图如图4所示。采用本申请的方案后,主机虽然可以篡改嵌套页表,但是由于主机无法修改虚拟机物理地址,虚拟机的私有数据混淆虚拟机物理地址进行加密,篡改过的嵌套页表映射的主机物理内存,使用的混淆虚拟机物理地址不相同,因此解密得到的将是错误的数据,攻击者无法再通过篡改嵌套页表的方法进行重放攻击。
为了便于理解,下面举例进行说明。对虚拟机物理地址1来说,第一主机物理地址(主机物理地址1)指向的内存(页面1)中存储的虚拟机1的私有数据是采用混淆第一虚拟机物理地址(虚拟机物理地址1)的方式进行加密。同理,对虚拟机物理地址2来说,第二主机物理地址(主机物理地址2)指向的内存(页面2)中存储的虚拟机1的私有数据是采用混淆第二虚拟机物理地址(虚拟机物理地址2)的方式进行加密。即便非法主机通过篡改嵌套页表,将虚拟机1的虚拟机物理地址1映射到主机物理地址2,此时由于指向的内存(页面2)中存储的虚拟机1的私有数据是采用混淆虚拟机物理地址2的方式进行加密,由于非法主机无法修改虚拟机物理地址,因此即便得到页面2中的私有数据,采用混淆虚拟机物理地址1的方式进行解密,得到的解密结果也是错误的数据,使得攻击者无法再通过篡改嵌套页表的方法进行重放攻击。
有数据加密就意味着有对应的数据解密,在数据解密时,若处理器接收第二虚拟机发送的数据读取请求,获取所述数据读取请求中携带的第二虚拟机的第二虚拟机物理地址和和用于获取需要读取的待读取数据的数据长度;在该数据长度对应的待读取数据是私有数据时,则通过混淆第二虚拟机物理地址的方式对待读取数据进行解密,若待读取数据不是第二虚拟机的私有数据时,则通过混淆第二主机物理地址的方式对待读取数据进行解密。本申请实施例中,通过混淆虚拟机物理地址的方式对虚拟机的私有数据进行解密,使得非法主机即使通过修改嵌套页表虚拟机物理地址映射到新的主机物理地址,也无法得到正确的解密结果,使得攻击者无法再通过篡改嵌套页表的方法进行重放攻击,提高了数据的安全性。
作为一种实施方式,该数据读取请求中携带有发送该数据读取请求的第二虚拟机的第二虚拟机物理地址和数据长度。在该种实施方式下,使用第二虚拟机物理地址中的1个比特位来表示该待读取数据是否为第二虚拟机的私有数据。此时,处理器基于该第二虚拟机物理地址中携带的标记位判断待读取数据是否为私有数据。
作为又一种实施方式,不再使用第二虚拟机物理地址中的1个比特位来表示该待读取数据是否为第二虚拟机的私有数据,而是采用一个单独的标签来表示该待读取数据是否为第二虚拟机的私有数据。此时,该数据读取请求中携带有发送该数据读取请求的第二虚拟机的第二虚拟机物理地址、数据长度和用于表征该待读取数据是否为私有数据的标签。
上述的解密过程是从处理器的角度整体来描述的,当该处理器包括处理器核(内核)和内存控制器时,此时,处理器核,用于接收第二虚拟机发送的数据读取请求,并获取该数据读取请求中携带的第二虚拟机的第二虚拟机物理地址和数据长度。处理器核,还用于基于嵌套页表获得该第二虚拟机物理地址对应的第二主机物理地址,并向内存控制器发送读指令。内存控制器,用于在该待读取数据是私有数据时,通过混淆第二虚拟机物理地址的方式对待读取数据进行解密,也即从该第二主机物理地址指向的内存空间中将该数据长度对应的待读取数据取出来,并通过混淆第二虚拟机物理地址的方式对待读取数据进行解密。以及在该待读取数据不是私有数据时,通过混淆第二主机物理地址的方式对待读取数据进行解密,也即从该第二主机物理地址指向的内存空间中将该数据长度对应的待读取数据取出来,并混淆第二主机物理地址的方式对待读取数据进行解密。
作为一种实施方式,该读指令中携带有第二虚拟机物理地址、第二主机物理地址以及数据长度。此时,内存控制器基于该第二虚拟机物理地址携带的标记位来判断待读取数据是否为私有数据。若是在数据写入请求中封入一个标签来表示该待读取数据是否为第二虚拟机的私有数据时,作为又一种实施方式,该读指令中携带有第二虚拟机物理地址、第二主机物理地址、数据长度以及标签。此时,内存控制器基于该标签携带的标记位来判断待读取数据是否为私有数据。
其中,上述的处理器可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤。通用处理器也可以是微处理器。
需要说明的是,解密过程与上述的加密过程是对应的,未介绍之处,可参见上述的加密过程中相应内容。
如图5所示,本申请实施例还提供了一种数据加密方法,下面将结合图5对其所包含的步骤进行说明。
步骤S101:接收虚拟机发送的数据写入请求。
处理器接收虚拟机发送的数据写入请求,例如,可以是处理器中的处理器核来接收虚拟机发送的数据写入请求。可选地,该数据写入请求中携带有虚拟机的虚拟机物理地址和待写入数据。
步骤S102:获取所述数据写入请求中携带的所述虚拟机的虚拟机物理地址和待写入数据。
处理器获取所述数据写入请求中携带的所述虚拟机的虚拟机物理地址和待写入数据,例如,处理器核在接收到虚拟机发送的数据写入请求后,获取该数据写入请求中携带的虚拟机的虚拟机物理地址和待写入数据。处理器核还用于基于嵌套页表获得该虚拟机物理地址对应的主机物理地址,处理器核向处理器中的内存控制器发送写指令。可选地,该写指令中携带有虚拟机物理地址、待写入数据和主机物理地址。
步骤S103:在所述待写入数据是所述虚拟机的私有数据时,通过混淆所述虚拟机物理地址的方式对所述待写入数据进行加密。
在所述待写入数据是所述虚拟机的私有数据时,处理器通过混淆所述虚拟机物理地址的方式对所述待写入数据进行加密。例如,处理器中的内存控制器在接收到写指令后,获取该写指令中携带的虚拟机物理地址、待写入数据和主机物理地址,基于该虚拟机物理地址中携带的标记位判断该待写入数据是否为私有数据,在待写入数据是私有数据时,通过混淆虚拟机物理地址的方式对待写入数据进行加密,在待写入数据不是私有数据时,通过混淆主机物理地址的方式对待写入数据进行加密。
在对待写入数据进行加密后,所述方法还包括:将加密后的待写入数据写入所述虚拟机物理地址对应的内存空间中。例如,可以是处理器中的内存控制器,在对待写入数据进行加密后,将加密后的待写入数据写入虚拟机物理地址对应主机物理地址指向的内存中。
本申请实施例所提供的数据加密方法,其实现原理及产生的技术效果和前述装置实施例相同,为简要描述,方法实施例部分未提及之处,可参考前述装置实施例中相应内容。
如图6所示,本申请实施例还提供了一种数据解密方法,下面将结合图6对其所包含的步骤进行说明。
步骤S201:接收虚拟机发送的数据读取请求。
处理器接收虚拟机发送的数据读取请求,例如,可以是通过处理器中的处理器核来接收虚拟机发送的数据读取请求。可选地,该数据读取请求中携带有虚拟机的虚拟机物理地址和用于获取需要读取的待读取数据的数据长度。
步骤S202:获取所述数据读取请求中携带的所述虚拟机的虚拟机物理地址和数据。
例如,可以是处理器中的处理器核获取该数据读取请求中携带的虚拟机的虚拟机物理地址和数据长度。此外,处理器核还用于基于嵌套页表获得该虚拟机物理地址对应的主机物理地址,以及向处理器中的内存控制器发送读指令。可选地,该读指令中携带有虚拟机物理地址、数据长度和主机物理地址。
步骤S203:在所述数据长度对应的待读取数据是所述虚拟机的私有数据时,通过混淆所述虚拟机物理地址的方式对所述待读取数据进行解密。
在所述待读取数据是所述虚拟机的私有数据时,处理器通过混淆所述虚拟机物理地址的方式对所述待读取数据进行解密。例如,处理器中的内存控制器在接收到读指令后,获取该读指令中携带的虚拟机物理地址、数据长度和主机物理地址,并从主机物理地址指向的内存中读取与该数据长度对应的待读取数据,并基于该虚拟机物理地址中携带的标记位判断该待读取数据是否为私有数据,在待读取数据是私有数据时,通过混淆虚拟机物理地址的方式对待读取数据进行解密,在待读取数据不是私有数据时,通过混淆主机物理地址的方式对待读取数据进行解密。
本申请实施例所提供的数据解密方法,其实现原理及产生的技术效果和前述装置实施例相同,为简要描述,方法实施例部分未提及之处,可参考前述装置实施例中相应内容。
本申请实施例还提供了一种计算机设备,如图7所示。该计算机设备包括上述的处理器和内存。其中,内存用于暂时存放处理器需要的运算数据,以及与硬盘等外部存储器交换的数据,如该内存是双倍速率同步动态随机存储器(Double Data Rate,DDR)。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。