本公開涉及加密技術領域,尤其涉及全盤加密方法和裝置。
背景技術:
隨著科技的發(fā)展,諸如智能電話、平板電腦等終端設備被越來越廣泛地使用。人們往往會在終端設備中存儲大量的用戶數(shù)據(jù),終端設備一旦丟失就會造成用戶數(shù)據(jù)的泄露。為此,一些操作系統(tǒng)(例如,安卓操作系統(tǒng))要求終端設備在出廠后首次開機時進行全盤加密(Full Disk Encryption,F(xiàn)DE)。
全盤加密是自動地將終端設備的外存儲器(例如,硬盤)上的數(shù)據(jù)轉換成不被理解的形式。只有那些有密鑰的用戶才能“還原”轉換。如果沒有合適的認證密鑰,即使把硬盤移出,安裝到另一臺終端設備上,仍然不可獲得硬盤上的數(shù)據(jù)。全盤加密可以在制造終端設備時安裝在設備中,也可以在后來通過安裝特殊的軟件驅動程序加入。
然而傳統(tǒng)的全盤加密過程非常緩慢,例如對于一個64G的用戶數(shù)據(jù)存儲區(qū),全盤加密過程會持續(xù)大約十幾分鐘,這使得用戶體驗很差。
技術實現(xiàn)要素:
有鑒于此,本公開提供一種全盤加密方法和裝置,用以提高全盤加密的速度。
根據(jù)本公開的一方面,提供一種全盤加密方法,包括:確定終端設備中CPU核心的數(shù)目N,其中N是大于1的整數(shù);將終端設備的用戶數(shù)據(jù)存儲區(qū)劃分成N個數(shù)據(jù)區(qū)片;以及并行地對所述N個數(shù)據(jù)區(qū)片進行數(shù)據(jù)加密。
在一些實施例中,所述N個數(shù)據(jù)區(qū)片大小相等。
在一些實施例中,并行地對所述N個數(shù)據(jù)區(qū)片進行數(shù)據(jù)加密包括:啟動分別針對N個數(shù)據(jù)區(qū)片的N個加密線程;向每個加密線程分配與該加密線程相對應的數(shù)據(jù)區(qū)片的起始地址和結束地址;并行地運行所述N個加密線程以對所述N個數(shù)據(jù)區(qū)片進行數(shù)據(jù)加密。
在一些實施例中,所述用戶數(shù)據(jù)存儲區(qū)由通用閃存UFS來實現(xiàn)。
在一些實施例中,所述終端設備是CPU核心數(shù)目N為2、4、8或16的終端設備。
在一些實施例中,所述終端設備是使用安卓操作系統(tǒng)的終端設備。
根據(jù)本公開的另一方面,提供一種全盤加密裝置,包括:CPU核心數(shù)目確定模塊,用于確定終端設備中CPU核心的數(shù)目N,其中N是大于1的整數(shù);存儲區(qū)劃分模塊,用于將終端設備的用戶數(shù)據(jù)存儲區(qū)劃分成N個數(shù)據(jù)區(qū)片;以及并行加密模塊,用于并行地對所述N個數(shù)據(jù)區(qū)片進行數(shù)據(jù)加密。
在一些實施例中,所述N個數(shù)據(jù)區(qū)片大小相等。
在一些實施例中,并行加密模塊包括:線程啟動單元,用于啟動分別針對N個數(shù)據(jù)區(qū)片的N個加密線程;地址分配單元,用于向每個加密線程分配與該加密線程相對應的數(shù)據(jù)區(qū)片的起始地址和結束地址;以及執(zhí)行單元,用于并行地運行所述N個加密線程以對所述N個數(shù)據(jù)區(qū)片進行數(shù)據(jù)加密。
在一些實施例中,所述用戶數(shù)據(jù)存儲區(qū)由通用閃存(Universal Flash Storage,UFS)來實現(xiàn)。
附圖說明
通過參照以下附圖對本公開實施例的描述,本公開的上述以及其它目的、特征和優(yōu)點將更為清楚,在附圖中:
圖1是根據(jù)本公開實施例提供的全盤加密方法的流程圖;
圖2是根據(jù)本公開實施例提供的全盤加密方法的流程圖;
圖3是根據(jù)本公開實施例提供的全盤加密裝置的結構示意圖;
圖4是根據(jù)本公開實施例提高的全盤加密裝置中并行加密模塊的結構示意圖。
具體實施方式
以下基于實施例對本公開進行描述,但是本公開并不僅僅限于這些實施例。在下文對本公開的細節(jié)描述中,詳盡描述了一些特定的細節(jié)部分。對本領域技術人員來說沒有這些細節(jié)部分的描述也可以完全理解本公開。為了避免混淆本公開的實質,公知的方法、過程、流程沒有詳細敘述。
附圖中的流程圖、框圖圖示了本發(fā)明實施例的方法、系統(tǒng)、裝置的可能的體系框架、功能和操作,流程圖和框圖上的方框可以代表一個模塊、程序段或僅僅是一段代碼,所述模塊、程序段和代碼都是用來實現(xiàn)規(guī)定邏輯功能的可執(zhí)行指令。也應當注意,所述實現(xiàn)規(guī)定邏輯功能的可執(zhí)行指令可以重新組合,從而生成新的模塊和程序段。因此附圖的方框以及方框順序只是用來更好的圖示實施例的過程和步驟,而不應以此作為對發(fā)明本身的限制。
圖1是根據(jù)本公開實施例提供的全盤加密方法100的流程圖。
在步驟S101,確定終端設備中CPU核心的數(shù)目N,其中N是大于1的整數(shù)。在一些實施例中,終端設備可以是CPU核心數(shù)目N為2、4、8、10或16的終端設備,但不局限于此。在一些實施例中,終端設備可以是使用安卓操作系統(tǒng)的終端設備。
在步驟S102,將終端設備的用戶數(shù)據(jù)存儲區(qū)劃分成N個數(shù)據(jù)區(qū)片。在一些實施例中,所述N個數(shù)據(jù)區(qū)片可以大小相等。在一些實施例中,用戶數(shù)據(jù)存儲區(qū)可以由通用閃存UFS來實現(xiàn)。
在步驟S103,并行地對所述N個數(shù)據(jù)區(qū)片進行數(shù)據(jù)加密。在一些實施例中,可以啟動分別針對N個數(shù)據(jù)區(qū)片的N個加密線程,向每個加密線程分配與該加密線程相對應的數(shù)據(jù)區(qū)片的起始地址和結束地址,并且并行地運行所述N個加密線程以對所述N個數(shù)據(jù)區(qū)片進行數(shù)據(jù)加密。
圖2是根據(jù)本公開實施例提供的全盤加密方法200的流程圖。
在步驟S201,確定終端設備中CPU核心的數(shù)目N,其中N是大于1的整數(shù)。終端設備可以是使用安卓操作系統(tǒng)的諸如智能手機、平板電腦之類的終端設備,其可以具有2、4、8、10或16個CPU核心的移動終端。
在步驟S202,將終端設備的用戶數(shù)據(jù)存儲區(qū)劃分成N個數(shù)據(jù)區(qū)片。N個數(shù)據(jù)區(qū)片可以大小相等,以盡量確保N個加密線程同時開始并且同時結束。終端設備的用戶數(shù)據(jù)存儲區(qū)可以由終端設備的外存儲器來實現(xiàn)。在一些實施例中,可以用嵌入式多媒體卡(Embedded Multi Media Card,eMMC)作為外存儲器來實現(xiàn)終端設備的用戶數(shù)據(jù)存儲區(qū)。在一些實施例中,可以采用UFS作為外存儲器來實現(xiàn)終端設備的用戶數(shù)據(jù)存儲區(qū),UFS具有比eMMC更快的讀寫速度,有助于進一步提高全盤加密的速度。
在步驟S203,啟動分別針對N個數(shù)據(jù)區(qū)片的N個加密線程。
在步驟S204,向每個加密線程分配與該加密線程相對應的數(shù)據(jù)區(qū)片的起始地址和結束地址。
在步驟S205,并行地運行所述N個加密線程以對所述N個數(shù)據(jù)區(qū)片進行數(shù)據(jù)加密。例如,使N個加密線程并行地進行,每個加密線程從其對應的數(shù)據(jù)區(qū)片中讀取一個數(shù)據(jù)塊進行加密(該操作在內存中執(zhí)行),將加密的數(shù)據(jù)塊寫回該數(shù)據(jù)區(qū)片中,然后讀取下一個數(shù)據(jù)塊、將其加密并寫回,如此循環(huán)往復,直到該數(shù)據(jù)區(qū)片中的所有數(shù)據(jù)塊都加密完成。
下面以具有4個CPU核心的終端設備為例來進行描述。如果在步驟S201確定終端設備具有4個CPU核心,則在步驟S202可以將終端設備的用戶數(shù)據(jù)存儲區(qū)劃分成4個大小相等的數(shù)據(jù)區(qū)片D1、D2、D3和D4。在步驟S203啟動分別對應于數(shù)據(jù)區(qū)片D1、D2、D3和D4的4個加密線程T1、T2、T3和T4。在步驟S204將數(shù)據(jù)區(qū)片D1的起始地址和結束地址分配給加密線程T1,將數(shù)據(jù)區(qū)片D2的起始地址和結束地址分配給加密線程T2,數(shù)據(jù)區(qū)片D3的起始地址和結束地址分配給加密線程T3,并且數(shù)據(jù)區(qū)片D4的起始地址和結束地址分配給加密線程T4。在步驟S205,并行獨立地運行加密線程T1、T2、T3和T4以分別對數(shù)據(jù)區(qū)片D1、D2、D3和D4進行數(shù)據(jù)加密。
圖3是根據(jù)本公開實施例提供的全盤加密裝置300的結構示意圖。
如圖3所示,全盤加密裝置300包括CPU核心數(shù)目確定模塊301、存儲區(qū)劃分模塊302和并行加密模塊303。
CPU核心數(shù)目確定模塊301用于確定終端設備中CPU核心的數(shù)目N,其中N是大于1的整數(shù)。終端設備可以是使用安卓操作系統(tǒng)的諸如智能手機、平板電腦之類的終端設備,其可以具有2、4、8、10或16個CPU核心的移動終端。
存儲區(qū)劃分模塊302用于將終端設備的用戶數(shù)據(jù)存儲區(qū)劃分成N個數(shù)據(jù)區(qū)片。N個數(shù)據(jù)區(qū)片可以大小相等,以盡量確保N個加密線程同時開始并且同時結束。終端設備的用戶數(shù)據(jù)存儲區(qū)可以由終端設備的外存儲器來實現(xiàn)。在一些實施例中,外存儲器可以由傳統(tǒng)的eMMC來實現(xiàn)。在一些實施例中,可以采用UFS作為外存儲器來實現(xiàn)終端設備的用戶數(shù)據(jù)存儲區(qū),UFS具有比eMMC更快的讀寫速度,有助于進一步提高全盤加密的速度。
并行加密模塊303用于并行地對所述N個數(shù)據(jù)區(qū)片進行數(shù)據(jù)加密。
圖4是根據(jù)本公開實施例提高的全盤加密裝置中并行加密模塊303的結構示意圖。如圖4所示,并行加密模塊303可以包括線程啟動單元303-1、地址分配單元303-2和執(zhí)行單元303-3。
線程啟動單元303-1用于啟動分別針對N個數(shù)據(jù)區(qū)片的N個加密線程。
地址分配單元303-2用于向每個加密線程分配與該加密線程相對應的數(shù)據(jù)區(qū)片的起始地址和結束地址。
執(zhí)行單元303-3用于并行地運行所述N個加密線程以對所述N個數(shù)據(jù)區(qū)片進行數(shù)據(jù)加密。例如,可以使N個加密線程并行地進行,每個加密線程從其對應的數(shù)據(jù)區(qū)片中讀取一個數(shù)據(jù)塊進行加密(該操作在內存中執(zhí)行),將加密的數(shù)據(jù)塊寫回該數(shù)據(jù)區(qū)片中,然后讀取下一個數(shù)據(jù)塊、將其加密并寫回,如此循環(huán)往復,直到該數(shù)據(jù)區(qū)片中的所有數(shù)據(jù)塊都加密完成。
通過以上描述可以看出,對于具有多個(典型地,4個)CPU核心的終端設備(例如,智能手機或平板電腦),傳統(tǒng)的全盤加密方案并未考慮多CPU核心的利用,而是以單線程方式一味地在一個CPU核心上逐個數(shù)據(jù)塊進行加密,CPU核心和外存儲器的資源利用率嚴重不足,加密緩慢。這種緩慢的加密會直接導致用戶不能耐心等待而強制重啟手機的情況。這樣的情況一旦發(fā)生所有的用戶數(shù)據(jù)就將全部丟失,這是用戶不能接受的。
本公開的實施例充分考慮到了這一點,將用戶數(shù)據(jù)存儲區(qū)劃分成與CPU核心數(shù)目相等的數(shù)據(jù)區(qū)片,并分別由同等數(shù)目的線程來并行地對各個數(shù)據(jù)區(qū)片進行數(shù)據(jù)加密,從而盡最大可能使N個加密線程均勻分布在N個CPU核心上來執(zhí)行。相比于傳統(tǒng)方式,顯著提高了CPU的計算資源和外存儲器的輸入輸出(Input Output,IO)資源的使用效率,從而提高安全加密的速度。例如,理論上可以將速度提高N倍,實際操作中由于與其他線程之間的調度安排以及各種損耗問題,可以達到近似N倍的速度提升。舉例來說,對于具有64G用戶存儲區(qū)和4個CPU核心的終端設備,本公開實施例可以將全盤加密的時間從十幾分鐘縮短至幾分鐘,顯著改善了用戶體驗。
另外,本公開的實施例通過使劃分的N個數(shù)據(jù)區(qū)片大小相等,可以盡量確保N個加密線程同時開始并且同時結束。
另外,本公開的實施可以采用UFS取代eMMC作為外存儲器來實現(xiàn)終端設備的用戶數(shù)據(jù)存儲區(qū),由于UFS具有比eMMC更快的讀寫速度,可以進一步提高全盤加密的速度。
本公開提供的方法和裝置可以體現(xiàn)為利用計算機語言編碼的一個或多個程序,以計算機可讀介質的形式存儲。計算機可讀存儲介質包括計算機存儲器、一個或多個軟盤、壓縮盤(CD)、光盤、數(shù)字視頻盤(DVD)、磁帶、閃存、現(xiàn)場可編程門陣列或其他半導體器件中的電路配置、或者其他非瞬態(tài)有形計算機存儲介質。該一個或多個程序被處理器從可讀介質中讀取后執(zhí)行以實現(xiàn)本公開提供的方法和系統(tǒng)。計算機可讀存儲介質可以是可攜帶的,使得可以將其上存儲的程序加載至一個或多個不同計算機或其他處理器上以實現(xiàn)上述的本公開的各個方面。這里使用的術語“非瞬態(tài)計算機可讀存儲介質”僅包括可被視為制造品或機器的可讀介質。備選地,本公開可以體現(xiàn)為與計算機可讀存儲介質不同的計算機可讀介質,如傳播信號。
以上所述僅為本公開的優(yōu)選實施例,并不用于限制本公開,對于本領域技術人員而言,本公開可以有各種改動和變化。凡在本公開的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本公開的保護范圍之內。