全盘加密方法和装置与流程

文档序号:12470997阅读:782来源:国知局
全盘加密方法和装置与流程

本公开涉及加密技术领域,尤其涉及全盘加密方法和装置。



背景技术:

随着科技的发展,诸如智能电话、平板电脑等终端设备被越来越广泛地使用。人们往往会在终端设备中存储大量的用户数据,终端设备一旦丢失就会造成用户数据的泄露。为此,一些操作系统(例如,安卓操作系统)要求终端设备在出厂后首次开机时进行全盘加密(Full Disk Encryption,FDE)。

全盘加密是自动地将终端设备的外存储器(例如,硬盘)上的数据转换成不被理解的形式。只有那些有密钥的用户才能“还原”转换。如果没有合适的认证密钥,即使把硬盘移出,安装到另一台终端设备上,仍然不可获得硬盘上的数据。全盘加密可以在制造终端设备时安装在设备中,也可以在后来通过安装特殊的软件驱动程序加入。

然而传统的全盘加密过程非常缓慢,例如对于一个64G的用户数据存储区,全盘加密过程会持续大约十几分钟,这使得用户体验很差。



技术实现要素:

有鉴于此,本公开提供一种全盘加密方法和装置,用以提高全盘加密的速度。

根据本公开的一方面,提供一种全盘加密方法,包括:确定终端设备中CPU核心的数目N,其中N是大于1的整数;将终端设备的用户数据存储区划分成N个数据区片;以及并行地对所述N个数据区片进行数据加密。

在一些实施例中,所述N个数据区片大小相等。

在一些实施例中,并行地对所述N个数据区片进行数据加密包括:启动分别针对N个数据区片的N个加密线程;向每个加密线程分配与该加密线程相对应的数据区片的起始地址和结束地址;并行地运行所述N个加密线程以对所述N个数据区片进行数据加密。

在一些实施例中,所述用户数据存储区由通用闪存UFS来实现。

在一些实施例中,所述终端设备是CPU核心数目N为2、4、8或16的终端设备。

在一些实施例中,所述终端设备是使用安卓操作系统的终端设备。

根据本公开的另一方面,提供一种全盘加密装置,包括:CPU核心数目确定模块,用于确定终端设备中CPU核心的数目N,其中N是大于1的整数;存储区划分模块,用于将终端设备的用户数据存储区划分成N个数据区片;以及并行加密模块,用于并行地对所述N个数据区片进行数据加密。

在一些实施例中,所述N个数据区片大小相等。

在一些实施例中,并行加密模块包括:线程启动单元,用于启动分别针对N个数据区片的N个加密线程;地址分配单元,用于向每个加密线程分配与该加密线程相对应的数据区片的起始地址和结束地址;以及执行单元,用于并行地运行所述N个加密线程以对所述N个数据区片进行数据加密。

在一些实施例中,所述用户数据存储区由通用闪存(Universal Flash Storage,UFS)来实现。

附图说明

通过参照以下附图对本公开实施例的描述,本公开的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1是根据本公开实施例提供的全盘加密方法的流程图;

图2是根据本公开实施例提供的全盘加密方法的流程图;

图3是根据本公开实施例提供的全盘加密装置的结构示意图;

图4是根据本公开实施例提高的全盘加密装置中并行加密模块的结构示意图。

具体实施方式

以下基于实施例对本公开进行描述,但是本公开并不仅仅限于这些实施例。在下文对本公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本公开。为了避免混淆本公开的实质,公知的方法、过程、流程没有详细叙述。

附图中的流程图、框图图示了本发明实施例的方法、系统、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。

图1是根据本公开实施例提供的全盘加密方法100的流程图。

在步骤S101,确定终端设备中CPU核心的数目N,其中N是大于1的整数。在一些实施例中,终端设备可以是CPU核心数目N为2、4、8、10或16的终端设备,但不局限于此。在一些实施例中,终端设备可以是使用安卓操作系统的终端设备。

在步骤S102,将终端设备的用户数据存储区划分成N个数据区片。在一些实施例中,所述N个数据区片可以大小相等。在一些实施例中,用户数据存储区可以由通用闪存UFS来实现。

在步骤S103,并行地对所述N个数据区片进行数据加密。在一些实施例中,可以启动分别针对N个数据区片的N个加密线程,向每个加密线程分配与该加密线程相对应的数据区片的起始地址和结束地址,并且并行地运行所述N个加密线程以对所述N个数据区片进行数据加密。

图2是根据本公开实施例提供的全盘加密方法200的流程图。

在步骤S201,确定终端设备中CPU核心的数目N,其中N是大于1的整数。终端设备可以是使用安卓操作系统的诸如智能手机、平板电脑之类的终端设备,其可以具有2、4、8、10或16个CPU核心的移动终端。

在步骤S202,将终端设备的用户数据存储区划分成N个数据区片。N个数据区片可以大小相等,以尽量确保N个加密线程同时开始并且同时结束。终端设备的用户数据存储区可以由终端设备的外存储器来实现。在一些实施例中,可以用嵌入式多媒体卡(Embedded Multi Media Card,eMMC)作为外存储器来实现终端设备的用户数据存储区。在一些实施例中,可以采用UFS作为外存储器来实现终端设备的用户数据存储区,UFS具有比eMMC更快的读写速度,有助于进一步提高全盘加密的速度。

在步骤S203,启动分别针对N个数据区片的N个加密线程。

在步骤S204,向每个加密线程分配与该加密线程相对应的数据区片的起始地址和结束地址。

在步骤S205,并行地运行所述N个加密线程以对所述N个数据区片进行数据加密。例如,使N个加密线程并行地进行,每个加密线程从其对应的数据区片中读取一个数据块进行加密(该操作在内存中执行),将加密的数据块写回该数据区片中,然后读取下一个数据块、将其加密并写回,如此循环往复,直到该数据区片中的所有数据块都加密完成。

下面以具有4个CPU核心的终端设备为例来进行描述。如果在步骤S201确定终端设备具有4个CPU核心,则在步骤S202可以将终端设备的用户数据存储区划分成4个大小相等的数据区片D1、D2、D3和D4。在步骤S203启动分别对应于数据区片D1、D2、D3和D4的4个加密线程T1、T2、T3和T4。在步骤S204将数据区片D1的起始地址和结束地址分配给加密线程T1,将数据区片D2的起始地址和结束地址分配给加密线程T2,数据区片D3的起始地址和结束地址分配给加密线程T3,并且数据区片D4的起始地址和结束地址分配给加密线程T4。在步骤S205,并行独立地运行加密线程T1、T2、T3和T4以分别对数据区片D1、D2、D3和D4进行数据加密。

图3是根据本公开实施例提供的全盘加密装置300的结构示意图。

如图3所示,全盘加密装置300包括CPU核心数目确定模块301、存储区划分模块302和并行加密模块303。

CPU核心数目确定模块301用于确定终端设备中CPU核心的数目N,其中N是大于1的整数。终端设备可以是使用安卓操作系统的诸如智能手机、平板电脑之类的终端设备,其可以具有2、4、8、10或16个CPU核心的移动终端。

存储区划分模块302用于将终端设备的用户数据存储区划分成N个数据区片。N个数据区片可以大小相等,以尽量确保N个加密线程同时开始并且同时结束。终端设备的用户数据存储区可以由终端设备的外存储器来实现。在一些实施例中,外存储器可以由传统的eMMC来实现。在一些实施例中,可以采用UFS作为外存储器来实现终端设备的用户数据存储区,UFS具有比eMMC更快的读写速度,有助于进一步提高全盘加密的速度。

并行加密模块303用于并行地对所述N个数据区片进行数据加密。

图4是根据本公开实施例提高的全盘加密装置中并行加密模块303的结构示意图。如图4所示,并行加密模块303可以包括线程启动单元303-1、地址分配单元303-2和执行单元303-3。

线程启动单元303-1用于启动分别针对N个数据区片的N个加密线程。

地址分配单元303-2用于向每个加密线程分配与该加密线程相对应的数据区片的起始地址和结束地址。

执行单元303-3用于并行地运行所述N个加密线程以对所述N个数据区片进行数据加密。例如,可以使N个加密线程并行地进行,每个加密线程从其对应的数据区片中读取一个数据块进行加密(该操作在内存中执行),将加密的数据块写回该数据区片中,然后读取下一个数据块、将其加密并写回,如此循环往复,直到该数据区片中的所有数据块都加密完成。

通过以上描述可以看出,对于具有多个(典型地,4个)CPU核心的终端设备(例如,智能手机或平板电脑),传统的全盘加密方案并未考虑多CPU核心的利用,而是以单线程方式一味地在一个CPU核心上逐个数据块进行加密,CPU核心和外存储器的资源利用率严重不足,加密缓慢。这种缓慢的加密会直接导致用户不能耐心等待而强制重启手机的情况。这样的情况一旦发生所有的用户数据就将全部丢失,这是用户不能接受的。

本公开的实施例充分考虑到了这一点,将用户数据存储区划分成与CPU核心数目相等的数据区片,并分别由同等数目的线程来并行地对各个数据区片进行数据加密,从而尽最大可能使N个加密线程均匀分布在N个CPU核心上来执行。相比于传统方式,显著提高了CPU的计算资源和外存储器的输入输出(Input Output,IO)资源的使用效率,从而提高安全加密的速度。例如,理论上可以将速度提高N倍,实际操作中由于与其他线程之间的调度安排以及各种损耗问题,可以达到近似N倍的速度提升。举例来说,对于具有64G用户存储区和4个CPU核心的终端设备,本公开实施例可以将全盘加密的时间从十几分钟缩短至几分钟,显著改善了用户体验。

另外,本公开的实施例通过使划分的N个数据区片大小相等,可以尽量确保N个加密线程同时开始并且同时结束。

另外,本公开的实施可以采用UFS取代eMMC作为外存储器来实现终端设备的用户数据存储区,由于UFS具有比eMMC更快的读写速度,可以进一步提高全盘加密的速度。

本公开提供的方法和装置可以体现为利用计算机语言编码的一个或多个程序,以计算机可读介质的形式存储。计算机可读存储介质包括计算机存储器、一个或多个软盘、压缩盘(CD)、光盘、数字视频盘(DVD)、磁带、闪存、现场可编程门阵列或其他半导体器件中的电路配置、或者其他非瞬态有形计算机存储介质。该一个或多个程序被处理器从可读介质中读取后执行以实现本公开提供的方法和系统。计算机可读存储介质可以是可携带的,使得可以将其上存储的程序加载至一个或多个不同计算机或其他处理器上以实现上述的本公开的各个方面。这里使用的术语“非瞬态计算机可读存储介质”仅包括可被视为制造品或机器的可读介质。备选地,本公开可以体现为与计算机可读存储介质不同的计算机可读介质,如传播信号。

以上所述仅为本公开的优选实施例,并不用于限制本公开,对于本领域技术人员而言,本公开可以有各种改动和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

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