一种数据加密方法、处理器及计算机设备技术

技术编号:24010978 阅读:26 留言:0更新日期:2020-05-02 01:44
本申请涉及一种数据加密方法、处理器及计算机设备,属于计算机技术领域。该方法包括:安全处理器获取待加密的物理内存信息;安全处理器基于物理内存信息生成指示命令,其中,指示命令中携带有数据长度、用于从内存中读取数据的源地址,以及用于向内存写入数据的目的地址,数据长度用于读取对应的数据;安全处理器将指示命令发送给密码协处理器,以使密码协处理器执行指示命令,以将从源地址指向的内存空间中读取与数据长度对应的待加密数据加密后写入目的地址指向的内存空间。通过利用密码协处理器的DMA硬件模块执行指示命令代替现有的纯软件方法,来提高虚拟机内存的加密速度,有效减少虚拟机启动的整体时间。

A data encryption method, processor and computer equipment

【技术实现步骤摘要】
一种数据加密方法、处理器及计算机设备
本申请属于计算机
,涉及一种数据加密方法、处理器及计算机设备。
技术介绍
在当前支持安全虚拟化技术的硬件平台中,虚拟机的内存数据被虚拟机加密密钥加密。在虚拟机运行的整个生命周期中,对存放虚拟机数据的物理内存的加解密过程均由内存控制器完成。但是,虚拟机在启动开始阶段需要由虚拟机监视器借助安全处理器(PlatformSecurityProcessor,PSP)来对存放虚拟机数据的物理内存预先进行一次加密处理,以确保虚拟机启动过程中从内存读取到的内存数据可以被内存控制器正确解密,该过程虽然最终加密操作由内存控制器来完成,但是需要安全处理器通过调用软件程序的方式将未加密的虚拟机内存数据拷贝至本地,然后再将数据回写到虚拟机内存中。
技术实现思路
鉴于此,本申请的目的在于提供一种数据加密方法、处理器及计算机设备,以改善现有的安全处理器采用软件程序实现复制内存数据的处理方式存在速度慢,运行效率低的问题缺陷。本申请的实施例是这样实现的:第一方面,本申请实施例提供了一种数据加密方法,所述方法包括:安全处理器获取待加密的物理内存信息;所述安全处理器基于所述物理内存信息生成指示命令,其中,所述指示命令中携带有数据长度、用于从内存中读取数据的源地址,以及用于向所述内存写入数据的目的地址,所述数据长度用于读取对应的数据;所述安全处理器将所述指示命令发送给密码协处理器,以使所述密码协处理器执行所述指示命令,以将从所述源地址指向的内存空间中读取与所述数据长度对应的待加密数据加密后写入所述目的地址指向的内存空间。本申请实施例中,通过安全处理器封装指示命令给密码协处理器,进而利用密码协处理器的DMA(直接存储器存取)硬件模块执行指示命令代替现有的纯软件方法,来提高基于安全虚拟机技术的虚拟机内存的加密速度,有效减少虚拟机启动的整体时间。结合第一方面实施例的一种可能的实施方式,所述目的地址中携带有加密标记位,所述安全处理器基于所述物理内存信息生成指示命令,包括:所述安全处理器获取所述物理内存信息中的物理地址和所述数据长度;所述安全处理器将用于从所述物理地址指向的内存空间中读取数据的源地址标记为不加密,将用于向所述内存空间中写入数据的目的地址标记为加密;所述安全处理器将所述数据长度、所述源地址以及所述目的地址进行封装,生成所述指示命令。本申请实施例中,通过配置加密标记位来控制内存控制器对回写的数据进行加密,通过充分利用内存控制器的加密功能来实现数据的加密,能最大化的提高虚拟机内存的加密速度。结合第一方面实施例的一种可能的实施方式,所述安全处理器基于所述物理内存信息生成指示命令,包括:所述安全处理器获取所述物理内存信息中的物理地址和所述数据长度;所述安全处理器基于所述物理地址,获得用于从所述物理地址指向的内存空间中读取数据的源地址和用于向所述内存空间中写入数据的目的地址;所述安全处理器将所述数据长度、所述源地址和所述目的地址,进行封装,生成所述指示命令。本申请实施例中,利用密码协处理器的加密功能来对回写数据进行加密,因此,安全处理器在生成指示命令时,无需配置加密标记位,可以节约配置加密标记位的时间。结合第一方面实施例的一种可能的实施方式,在所述安全处理器将所述数据长度、所述源地址以及所述目的地址进行封装,生成所述指示命令之前,所述方法还包括:所述安全处理器判断自身的物理地址总线宽度是否低于所述内存的物理地址总线宽度;在为是时,所述安全处理器将所述源地址的物理地址总线宽度从所述内存的物理地址总线宽度映射到所述自身的物理地址总线宽度,以及将所述目的地址的物理地址总线宽度从所述内存的物理地址总线宽度映射到所述自身的物理地址总线宽度。本申请实施例中,在封装所需的信息生成指示命令之前时,通过判断自身的物理地址总线宽度是否低于内存的物理地址总线宽度,在为是时,需要对源地址和目的地址进行地址映射处理,将源地址以及目的地址的物理地址总线宽度从所述内存的物理地址总线宽度映射到自身的物理地址总线宽度,然后安全处理器再将数据长度、映射后的源地址和映射后的目的地址进行封装,生成指示命令,以确保内存控制器能顺利的完成内存的访问,保证了内存控制器访问内存的成功率。结合第一方面实施例的一种可能的实施方式,所述安全处理器将所述指示命令发送给密码协处理器,包括:所述安全处理器通过中间件将所述指示命令发送给密码协处理器。本申请实施例中,安全处理器与密码协处理器之间不直接建立数据通道,而是通过中间件来实现异步通信,以降低对设备的需求,无需要求接收和发送设备必须使用同一时钟。第二方面,本申请实施例还提供了一种数据加密方法,所述方法包括:密码协处理器接收安全处理器发送的指示命令,所述指示命令包括:数据长度、用于从内存中读取数据的源地址以及向所述内存中写入数据的带有加密标记位的目的地址;所述密码协处理器向内存控制器发送读指令,以使所述内存控制器基于所述读指令从所述源地址指向的内存空间中读取与所述数据长度对应的待加密数据,其中,所述读指令中携带有所述数据长度和所述源地址;所述密码协处理器在接收到所述内存控制器返回的所述待加密数据时,所述密码协处理器向所述内存控制器发送写指令,以使所述内存控制器基于所述写指令,将所述待加密数据加密后写入所述目的地址指向的内存空间,其中,所述写指令中携带有所述待加密数据和所述目的地址。本申请实施例中,通过安全处理器封装指示命令给密码协处理器,进而利用密码协处理器的DMA硬件模块执行指示命令代替现有的纯软件方法,来提高基于安全虚拟机技术的虚拟机内存的加密速度,有效减少虚拟机启动的整体时间,同时,通过充分利用内存控制器的加密功能来实现数据的加密,能最大化的提高虚拟机内存的加密速度。第三方面,本申请实施例还提供了一种数据加密方法,所述方法包括:密码协处理器接收安全处理器发送的指示命令,所述指示命令包括:数据长度,用于从内存中读取数据的源地址以及向所述内存中写入数据的目的地址;所述密码协处理器向内存控制器发送读指令,以使所述内存控制器基于所述读指令从所述源地址指向的内存空间中读取与所述数据长度对应的待加密数据,其中,所述读指令中携带有所述数据长度和所述源地址;所述密码协处理器对所述待加密数据进行加密,并向所述内存控制器发送写指令,以使所述内存控制器基于所述写指令,将加密后的数据写入所述目的地址指向的内存空间,其中,所述写指令中携带有加密后的待写入数据和所述目的地址。本申请实施例中,通过安全处理器封装指示命令给密码协处理器,进而利用密码协处理器的DMA硬件模块执行指示命令代替现有的纯软件方法,来提高基于安全虚拟机技术的虚拟机内存的加密速度,有效减少虚拟机启动的整体时间,同时,利用密码协处理器的加密功能来对回写数据进行加密,因此,无需配置加密标记位,可以节约配置加密标记位的时间。结合第三方面实施例的一种可能的实施方式,所述目的地址中携带有用于表征虚拟机身份的标识信息时,所述密码协处理器对所述待加密数据进行加密,包括:所述密码协处理器选取所述标识信息对应的密钥对所述待加密数据进行加密。本文档来自技高网...

【技术保护点】
1.一种数据加密方法,其特征在于,所述方法包括:/n安全处理器获取待加密的物理内存信息;/n所述安全处理器基于所述物理内存信息生成指示命令,其中,所述指示命令中携带有数据长度、用于从内存中读取数据的源地址,以及用于向所述内存写入数据的目的地址,所述数据长度用于读取对应的数据;/n所述安全处理器将所述指示命令发送给密码协处理器,以使所述密码协处理器执行所述指示命令,以将从所述源地址指向的内存空间中读取与所述数据长度对应的待加密数据加密后写入所述目的地址指向的内存空间。/n

【技术特征摘要】
1.一种数据加密方法,其特征在于,所述方法包括:
安全处理器获取待加密的物理内存信息;
所述安全处理器基于所述物理内存信息生成指示命令,其中,所述指示命令中携带有数据长度、用于从内存中读取数据的源地址,以及用于向所述内存写入数据的目的地址,所述数据长度用于读取对应的数据;
所述安全处理器将所述指示命令发送给密码协处理器,以使所述密码协处理器执行所述指示命令,以将从所述源地址指向的内存空间中读取与所述数据长度对应的待加密数据加密后写入所述目的地址指向的内存空间。


2.根据权利要求1所述的方法,其特征在于,所述安全处理器基于所述物理内存信息生成指示命令,包括:
所述安全处理器获取所述物理内存信息中的物理地址和所述数据长度;
所述安全处理器将用于从所述物理地址指向的内存空间中读取数据的源地址标记为不加密,将用于向所述内存空间中写入数据的目的地址标记为加密;
所述安全处理器将所述数据长度、所述源地址以及所述目的地址进行封装,生成所述指示命令。


3.根据权利要求1所述的方法,其特征在于,所述安全处理器基于所述物理内存信息生成指示命令,包括:
所述安全处理器获取所述物理内存信息中的物理地址和所述数据长度;
所述安全处理器基于所述物理地址,获得用于从所述物理地址指向的内存空间中读取数据的源地址和用于向所述内存空间中写入数据的目的地址;
所述安全处理器将所述数据长度、所述源地址和所述目的地址,进行封装,生成所述指示命令。


4.根据权利要求2或3所述的方法,其特征在于,在所述安全处理器将所述数据长度、所述源地址以及所述目的地址进行封装,生成所述指示命令之前,所述方法还包括:
所述安全处理器判断自身的物理地址总线宽度是否低于所述内存的物理地址总线宽度;
在为是时,所述安全处理器将所述源地址的物理地址总线宽度从所述内存的物理地址总线宽度映射到所述自身的物理地址总线宽度,以及将所述目的地址的物理地址总线宽度从所述内存的物理地址总线宽度映射到所述自身的物理地址总线宽度。


5.根据权利要求1所述的方法,其特征在于,所述安全处理器将所述指示命令发送给密码协处理器,包括:
所述安全处理器通过中间件将所述指示命令发送给密码协处理器。


6.一种数据加密方法,其特征在于,所述方法包括:
密码协处理器接收安全处理器发送的指示命令,所述指示命令包括:数据长度、用于从内存中读取数据的源地址以及向所述内存中写入数据的带有加密标记位的目的地址;
所述密码协处理器向内存控制器发送读指令,以使所述内存控制器基于所述读指令从所述源地址指向的内存空间中读取与所述数据长度对应的待加密数据,其中,所述读指令中携带有所述数据长度和所述源地址;
所述密码协处理器在接收到所述内存控制器返回的所述待加密数据时,所述密码协处理器向所述内存控制器发送写指令,以使所述内存控制器基于所述写指令,将所述待加密数据加密后写入所述目的地址指向的内存空间,其中,所述写指令中携带有所述待加密数据和所述目的地址。


7.一种数据加密方法,其特征在于,所述方法包括:
密码协处理器接收安全处理器发送的指示命令,所述指示命令包括:数据长度,用于从内存中读取数据的源地址以及向所述内存中写入数据的目的地址;
所述密码协处理器向内存控制器发送读指令,以使所述内存控制器基于所述读指令从所述源地址指向的内存空间中读取与所述数据长度对应的待加密数据,其中,所述读指令中携带有所述数据长度和所述源地址;
所述密码协处理器对所述待加密数据进行加密,并向所述内存控制器发送写指令,以使所述内存控制器基于所述写指令,将加密后的数据写入所述目的地址指向的内存空间,其中,所述写指令中携带有所述加密后的数据和所述目的地址。


8.根据权利要求7所述的方法,其特征...

【专利技术属性】
技术研发人员:丁宁应志伟
申请(专利权)人:海光信息技术有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1