專利名稱:固態硬盤數據加解密的方法及其固態硬盤的制作方法
技術領域:
本發明涉及存儲技術領域,尤其涉及一種固態硬盤數據加解密的方法及其固態硬盤。
背景技術:
固態硬盤(Solid State Disk)是由控制單元和存儲單元(FLASH芯片)組成,簡單的說就是用固態電子存儲芯片陣列而制成的硬盤。目前最大容量為IT以上,固態硬盤的接口規范和定義、功能及使用方法上與普通硬盤的完全相同,在產品外形和尺寸上也完全與普通硬盤一致。廣泛應用于軍事、車載、工控、視頻監控、網絡監控、網絡終端、電力、醫療、 航空等、導航設備等領域。目前,固態硬盤用戶對數據安全性的要求越來越高。現有技術方案主要關注 Password存儲的安全性,以及用戶認證過程的安全性。并且現有固態硬盤的數據加密方式并非全盤加密,因此,容易產生數據丟失的情況,其保密性能較弱。另外,在固態硬盤多類數據均采用一個密碼進行加密,容易使其密碼丟失時,所有類別的數據都會遭到竊取。綜上可知,現有固態硬盤數據加解密的技術在實際使用上,顯然存在不便與缺陷, 所以有必要加以改進。
發明內容
針對上述的缺陷,本發明的目的在于提供一種固態硬盤數據加解密的方法及其固態硬盤,以提高固態硬盤存儲數據的安全性。為了實現上述目的,本發明提供一種固態硬盤數據加解密的方法,所述方法包括如下步驟將固態硬盤的至少一個物理頁地址切分為至少一個邏輯上獨立的邏輯頁地址;將不同來源的數據采用不同的密鑰加密;將所述加密后的所述不同來源的數據存儲到所述至少一個物理頁地址。根據所述的方法,所述不同來源的數據包括元數據和邏輯頁地址數據;在所述將不同來源的數據采用不同的密鑰加密的步驟之前包括寫入所述元數據的元數據密鑰和所述邏輯頁地址數據的邏輯頁地址數據密鑰,以及根據所述元數據的自描述信息設定所述元數據密鑰對應的元數據密鑰編號和所述邏輯頁地址數據密鑰對應的邏輯頁地址數據密鑰編號;所述將不同來源的數據采用不同的密鑰加密的步驟包括根據所述元數據密鑰編號獲取所述元數據密鑰,并解析所述元數據獲取所述邏輯頁地址數據密鑰編號;根據所述邏輯頁地址數據密鑰編號,獲取對應的邏輯頁地址數據密鑰;采用所述元數據密鑰加密所述元數據獲得所述元數據的密文,以及采用所述邏輯頁地址數據密鑰加密所述邏輯頁地址數據獲得所述邏輯頁地址數據的密文;
所述將所述加密后的所述不同來源的數據存儲到所述至少一個物理頁地址的步驟包括將所述元數據的密文和所述邏輯頁地址數據的密文存儲到所述至少一個物理頁地址。根據所述的方法,在所述將固態硬盤的至少一個物理頁地址切分為至少一個邏輯上獨立的邏輯頁地址的步驟中,所述至少一個邏輯頁地址包括多個,每個所述邏輯頁地址的大小相等;每個所述不同來源的數據分別存儲于一個所述邏輯頁地址中;在所述將所述加密后的所述不同來源的數據存儲到所述多個邏輯頁地址的步驟之后包括 解密所述加密后的所述不同來源的數據。根據所述的方法,所述解密所述加密后的所述不同來源的數據的步驟包括接收讀取所述邏輯頁地址數據的指令;采用所述元數據密鑰解密所述元數據的密文,獲得所述元數據的明文;對所述元數據的明文進行解析,獲得所述邏輯頁地址數據密鑰編號;采用所述邏輯頁地址數據密鑰編號對應的邏輯頁地址數據密鑰對所述邏輯頁地址數據的密文進行解密,獲得所述邏輯頁地址數據的明文。根據所述的方法,在所述采用所述邏輯頁地址數據密鑰編號對應的邏輯頁地址數據密鑰對所述邏輯頁地址數據的密文進行解密,獲得所述邏輯頁地址數據的明文的步驟之后還包括指定所述邏輯頁地址數據的明文需要存儲的所述已切分的至少一個物理頁地址;將所述邏輯頁地址數據的明文加密后存儲到所述已切分的至少一個物理頁地址;所述邏輯頁地址數據包括用戶數據和管理數據;所述邏輯頁地址數據密鑰包括用戶數據密鑰和管理數據密鑰;所述邏輯頁地址數據密鑰編號包括用戶數據密鑰編號和管理數據密鑰編號;所述將所述加密后的所述不同來源的數據存儲到所述至少一個物理頁地址的步驟之后還包括擦除所述用戶數據密鑰的信息;采用無效密鑰信息覆蓋所述用戶數據密鑰的信息。一種固態硬盤,包括切分模塊,用于將固態硬盤的至少一個物理頁地址切分為至少一個邏輯上獨立的邏輯頁地址;加密模塊,用于將不同來源的數據采用不同的密鑰加密;存儲模塊,用于將所述加密后的所述不同來源的數據存儲到所述至少一個物理頁地址。根據所述的固態硬盤,所述不同來源的數據包括元數據和邏輯頁地址數據;所述固態硬盤還包括初始化模塊,用于寫入所述元數據的元數據密鑰和所述邏輯頁地址數據的邏輯頁地址數據密鑰,以及根據所述元數據的自描述信息設定所述元數據密鑰對應的元數據密鑰編號和所述邏輯頁地址數據密鑰對應的邏輯頁地址數據密鑰編號;所述加密模塊包括指定子模塊,用于為所述邏輯頁地址數據指定至少一個所述物理頁地址;第一解析子模塊,用于根據所述元數據密鑰編號獲取所述元數據密鑰,并解析所述元數據獲取所述邏輯頁地址數據密鑰編號;第二解析子模塊,根據所述邏輯頁地址數據密鑰編號,獲取對應的邏輯頁地址數據S鑰;加密子模塊,用于采用所述元數據密鑰加密所述元數據獲得所述元數據的密文, 以及采用所述邏輯頁地址數據密鑰加密所述邏輯頁地址數據獲得所述邏輯頁地址數據的密文。根據所述的固態硬盤,至少一個所述邏輯頁地址包括多個,每個所述邏輯頁地址的大小相等;所述存儲模塊將每個所述不同來源的數據分別存儲于一個所述邏輯頁地址中;所述固態硬盤還包括解密模塊,用于解密所述加密后的所述不同來源的數據。根據所述的固態硬盤,所述解密模塊包括接收子模塊,用于接收讀取所述邏輯頁地址數據的指令;解密子模塊,采用所述元數據密鑰解密所述元數據的密文,獲得所述元數據的明文;第三解析子模塊,用于對所述元數據的明文進行解析,獲得所述邏輯頁地址數據密鑰編號;第四解析子模塊,用于采用所述邏輯頁地址數據密鑰編號對應的邏輯頁地址數據密鑰對所述邏輯頁地址數據的密文進行解密,獲得所述邏輯頁地址數據的明文。根據所述的固態硬盤,所述邏輯頁地址數據包括用戶數據和管理數據;所述邏輯頁地址數據密鑰包括用戶數據密鑰和管理數據密鑰;所述邏輯頁地址數據密鑰編號包括用戶數據密鑰編號和管理數據密鑰編號;所述固態硬盤還包括擦除模塊,用于擦除所述初始化模塊中的用戶數據密鑰的信息;覆蓋模塊,用于采用無效密鑰信息覆蓋所述初始化模塊中的用戶數據密鑰的信肩、O本發明通過將固態硬盤的至少一個物理頁地址切分為至少一個邏輯上獨立的邏輯頁地址;將不同來源的數據采用不同的密鑰加密;并且將所述加密后的所述不同來源的數據存儲到所述至少一個物理頁地址,提高了固態硬盤的存儲數據的安全性以及靈活性。 進一步的,還引入邏輯頁地址級別數據自描述概念,使得在不知道物理頁地址內數據具體構成的情況下,也可以正確的將數據讀出解密,使其固態硬盤的使用更為方便。
圖I是本發明第一實施例提供的固態硬盤的結構示意圖;圖2是本發明第二實施例提供的固態硬盤的結構示意圖3是本發明第三、四實施例提供的固態硬盤的結構示意圖;圖4是本發明第五實施例提供的固態硬盤的結構示意圖;圖5是本發明一個實施例提供的不同來源的數據存儲示意圖;圖6是本發明第六實施例提供的固態硬盤數據加解密的方法流程圖;圖7是本發明一個實施例提供的數據存儲與現有技術中的數據存儲的比較示意圖。
具體實施例方式為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。參見圖I,本發明的第一實施例提供了一種固態硬盤100,包括切分模塊10,用于將固態硬盤100的至少一個物理頁地址切分為至少一個邏輯上獨立的邏輯頁地址;加密模塊20,用于將不同來源的數據采用不同的密鑰加密;存儲模塊30,用于將所述加密后的所述不同來源的數據存儲到所述至少一個物理頁地址。在該實施例中,通過切分模塊10將固態硬盤100的至少一個物理頁地址切分為至少一個邏輯上獨立的邏輯頁地址,可以根據具體的物理頁地址的大小的情況進行分割。 還也切分為多個,每個所述邏輯頁地址的大小相等;然后加密模塊20將不同來源的數據采用不同的密鑰加密后,存儲模塊30將每個所述不同來源的數據分別存儲于一個所述多個邏輯頁地址。在該實施例中,可以是固態硬盤100中所有的物理頁地址均切分成多個邏輯頁地址,也可以只有一個物理頁地址進行切分。每個物理頁地址中的邏輯頁地址的大小可以不一樣或者都一樣,以適應存儲不同大小的數據;還可以實現全盤加密,以提高固態硬盤 100數據存儲的安全性。參見圖5,在本發明的一個具體實施例中,所述不同來源的數據包括元數據和邏輯頁地址數據。NAND FLASH(固態硬盤閃存)顆粒以單個PPA(Physical Page Address,物理頁地址)作為讀寫單元,FTL(Flash Translation Layer,閃存轉換層)的讀寫以LPA(Logical Page Address,邏輯頁地址)為單元。假定物理頁地址為16KB,邏輯頁地址為4KB。將16KB 的物理頁地址切分為4個邏輯上獨立的邏輯頁地址分別進行映射管理。這樣單個物理頁地址內會混合不同的數據。比如其中一個為邏輯頁地址_0的數據,一個為邏輯頁地址_10的數據,另外兩個為FTL管理數據。在對數據加密的情況下,不同來源的數據使用不同密鑰可以增加數據安全性及靈活性。并且如圖7所示,將一個物理頁地址切分為至少一個邏輯上獨立的邏輯頁地址后再存儲數據,可以節省兩個物理頁地址,提高了存儲效率。參見圖2,在本發明的第二實施例中,固態硬盤100還包括初始化模塊80,用于寫入所述元數據的元數據密鑰和所述邏輯頁地址數據的邏輯頁地址數據密鑰,以及根據所述元數據的自描述信息設定所述元數據密鑰對應的元數據密鑰編號和所述邏輯頁地址數據密鑰對應的邏輯頁地址數據密鑰編號;而加密模塊20包括
8
指定子模塊25,用于為所述邏輯頁地址數據指定至少一個所述物理頁地址;第一解析子模塊22,用于根據所述元數據密鑰編號獲取所述元數據密鑰,并解析所述元數據獲取所述邏輯頁地址數據密鑰編號;第二解析子模塊23,根據所述邏輯頁地址數據密鑰編號,獲取對應的邏輯頁地址數據密鑰;加密子模塊24,用于采用所述元數據密鑰加密所述元數據獲得所述元數據的密文,以及采用所述邏輯頁地址數據密鑰加密所述邏輯頁地址數據獲得所述邏輯頁地址數據的密文;存儲模塊30將所述元數據的密文和所述邏輯頁地址數據的密文存儲到所述至少一個物理頁地址。在該實施例中,在固態硬盤100初始化時,初始化模塊80首先寫入元數據密鑰和邏輯頁地址數據密鑰,并且根據元數據的自描述信息對這些密鑰進行系統的編號,將各密鑰對應不同的編號。然后在解密邏輯頁地址數據時,由于系統知道元數據的來源,因此第一解析子模塊22可以根據所述元數據密鑰編號獲取所述元數據密鑰,再通過解析所述元數據獲取所述邏輯頁地址數據密鑰編號;進一步的第二解析子模塊23根據所述邏輯頁地址數據密鑰編號,解析獲取對應的邏輯頁地址數據密鑰;最后加密子模塊24采用所述元數據密鑰加密所述元數據獲得所述元數據的密文,以及采用所述邏輯頁地址數據密鑰加密所述邏輯頁地址數據獲得所述邏輯頁地址數據的密文。存儲模塊30將所述元數據的密文和所述邏輯頁地址數據的密文存儲到指定子模塊25指定的所述至少一個物理頁地址。具體的, 存儲模塊30將所述元數據的密文和所述邏輯頁地址數據的密文分別存儲于一個所述至少一個物理頁地址切分后的邏輯頁地址中的。在本發明的一個優選實施例中,所述邏輯頁地址數據包括用戶數據和管理數據; 所述邏輯頁地址數據密鑰包括用戶數據密鑰和管理數據密鑰;所述邏輯頁地址數據密鑰編號包括用戶數據密鑰編號和管理數據密鑰編號;初始化模塊80用于不同來源數據的密鑰的初始化。在固態硬盤100初始化時,初始化模塊80會將管理數據密鑰(MNG_KEY)、元數據密鑰(META_KEY)、用戶數據密鑰(USER_ KEY)寫入加密模塊20和解密模塊40。之后就由約定的密鑰編號(KEY_SEL)來代表對應的密鑰。在數據加密時,由于固態硬盤100知道數據的來源,由此確定對應的KEY_SEL,并將該信息記錄在邏輯頁地址對應的元數據中。第一解析子模塊22會先拿到元數據,從中解析出邏輯頁地址數據對應的KEY_SEL,第二解析子模塊23由此就可對應到KEY。邏輯頁地址數據按從元數據中解析出的KEY_SEL,通過加密子模塊24使用對應的KEY進行加密。而對于元數據,加密子模塊24按約定使用META_KEY進行加密。存儲模塊30將加密后的邏輯頁地址數據和元數據寫入指定子模塊25指定的物理頁地址。參見圖3,在本發明的第三實施例中,固態硬盤100還包括解密模塊40,用于解密所述加密后的所述不同來源的數據。在上述數據加密后,需要查看數據時,需要進行解密的操作,該操作通過解密模塊 40實現。參見圖3,在本發明的第四實施例中,解密模塊40包括
接收子模塊41,用于接收讀取所述邏輯頁地址數據的指令;解密子模塊42,采用所述元數據密鑰解密所述元數據的密文,獲得所述元數據的明文;第三解析子模塊43,用于對所述元數據的明文進行解析,獲得所述邏輯頁地址數據密鑰編號;第四解析子模塊44,用于采用所述邏輯頁地址數據密鑰編號對應的邏輯頁地址數據密鑰對所述邏輯頁地址數據的密文進行解密,獲得所述邏輯頁地址數據的明文。在該實施例中,接收子模塊41接收讀取所述邏輯頁地址數據的指令后,需要通過解密子模塊42先讀取加密后的元數據,并按約定使用META_KEY進行解密獲得元數據的明文。然后通過第三解析子模塊43從元數據的明文中解析出邏輯頁地址數據對應的KEY_ SEL0最后通過第四解析子模塊44按照從元數據的明文中解析出的KEY_SEL獲得對應KEY, 使用對應的KEY對邏輯頁地址數據進行解密。從上述幾個實施例中可知,元數據是解密過程的起點。因此,即便某些非法用戶獲得了元數據的明文,如果不了解其數據格式,也拿不到對應邏輯頁地址數據的KEY_SEL信息。即便碰巧獲得了 KEY_SEL,也仍然不知道對應的KEY。所以仍然無法解密邏輯頁地址數據。因此,固態硬盤100上存儲的數據具有高度的安全性。參見圖4,在本發明的第五實施例中,固態硬盤100還包括擦除模塊60,用于擦除初始化模塊80中的用戶數據密鑰的信息;覆蓋模塊70,用于采用INVALID_KEY (無效密鑰信息)覆蓋初始化模塊80中的用戶數據密鑰的信息。在該實施例中,可以實現PPA級別的數據的搬移。首先可以由指定子模塊25指定需要讀取的物理頁地址,然后進行NAND FLASH的物理頁地址讀操作,解密模塊40先獲得元數據的密文,使用約定元數據的META_KEY進行解密,獲得元數據的明文;然后通過對元數據明文的解析獲得對應的邏輯頁地址數據的KEY_SEL信息;解密模塊40再將邏輯頁地址數據的KEY_SEL對應的KEY對邏輯頁地址數據的密文進行解密,獲得邏輯頁地址數據的明文。至此,可獲得物理頁地址內邏輯頁地址的構成信息后,即獲得物理頁地址內的元數據及其對應的PLA數據的明文后,重新為讀出的邏輯頁地址數據指定新的物理頁地址映射地址,然后存儲模塊30將加密后的數據寫出到指定子模塊25指定的新的物理頁地址。另外,本發明一個實施例提供的固態硬盤100還可以通過擦除模塊60擦除初始化模塊80中的用戶數據密鑰的信息;以及覆蓋模塊70采用無效密鑰信息覆蓋初始化模塊80中的用戶數據密鑰的信息的操作后。在物理頁地址內的用戶數據在解密時,會使用 INVALID_KEY進行解密,無法正確恢復出用戶數據的明文,但物理頁地址內的數據,例如元數據和管理數據多不受影響。因此,在該實施例中,通過銷毀USER_KEY可以快速的銷毀用戶數據。而在現有技術中,如果對不同來源數據使用統一的KEY,在該KEY被銷毀掉后,其它管理數據也會丟失。因此,固態硬盤100具有優越的靈活性,其這種特性可以方便FTL在進行損耗均衡、垃圾回收、數據搬移時,直接在物理頁地址級別進行讀操作,無需預先了解所讀取物理頁地址內的數據構成,無需為其指定對應的密鑰。參見圖6,在本發明的第六實施例中,提供了一種固態硬盤數據加解密的方法,所述方法包括如下步驟
步驟S601中,切分模塊10將固態硬盤100的至少一個物理頁地址切分為至少一個邏輯上獨立的邏輯頁地址;步驟S602中,加密模塊20將不同來源的數據采用不同的密鑰加密;步驟S603中,存儲模塊30將所述加密后的所述不同來源的數據存儲到所述至少一個物理頁地址。在該實施里中,通過將切分模塊10將固態硬盤100的至少一個物理頁地址切分為至少一個邏輯上獨立的邏輯頁地址;具有的,可以是如16KB的物理頁地址切分為4個邏輯上獨立的邏輯頁地址分別進行映射管理。還可以是一個16KB的物理頁地址切分為2個邏輯上獨立的8KB邏輯頁地址;或者16KB物理頁地址直接對應一個16KB邏輯頁地址。這些切分方式將數據的最小單元提高到8K/16KB,會影響小顆粒度數據讀寫操作的效率。優選的,為了提高 4KB 級別數據的寫效率。4KB IOPS (Input/Output Operations Per Second, 每秒進行讀寫I/O操作的次數)得分是一項重要的SSD性能指標。通過將一個16KB的物理頁地址切分為4個獨立的4KB邏輯頁地址,可以降低4KB數據寫入時的額外負擔。在本發明的一個實施例中,在步驟S602之前包括初始化模塊80寫入所述元數據的元數據密鑰和所述邏輯頁地址數據的邏輯頁地址數據密鑰,以及根據所述元數據的自描述信息設定所述元數據密鑰對應的元數據密鑰編號和所述邏輯頁地址數據密鑰對應的邏輯頁地址數據密鑰編號的步驟;所述步驟S602包括第一解析子模塊22根據所述元數據密鑰編號獲取所述元數據密鑰,并解析所述元數據獲取所述邏輯頁地址數據密鑰編號;第二解析子模塊23根據所述邏輯頁地址數據密鑰編號,獲取對應的邏輯頁地址數據密鑰;加密子模塊24采用所述元數據密鑰加密所述元數據獲得所述元數據的密文,以及采用所述邏輯頁地址數據密鑰加密所述邏輯頁地址數據獲得所述邏輯頁地址數據的密文;所述步驟S603包括存儲模塊30將所述元數據的密文和所述邏輯頁地址數據的密文存儲到所述至少一個物理頁地址。在該實施例中,所述不同來源的數據包括元數據和邏輯頁地址數據;所述邏輯頁地址數據包括用戶數據和管理數據;所述邏輯頁地址數據密鑰包括用戶數據密鑰和管理數據密鑰;所述邏輯頁地址數據密鑰編號包括用戶數據密鑰編號和管理數據密鑰編號;單個物理頁地址內會混合不同的數據寫入NANDFLASH的數據來源有多種,比如用戶數據、FTL管理數據(例如塊擦除次數記錄表)、SATA LOG數據。比如用戶先寫了兩筆邏輯頁地址數據,然后FTL寫了一筆管理數據,然后SATA寫了一筆LOG數據。雖然這四筆數據操作的是不同的邏輯頁地址,但有可能會被拼在一起寫入一個物理頁地址。這樣單個物理頁地址內就混合了不同的數據。不同來源的數據使用不同密鑰。單個物理頁地址內會混合多種數據,比如用戶數據和管理數據需要寫入固態硬盤100,這些數據的寫操作被合并映射到同一個物理頁地址內,則為這些邏輯頁地址數據構造對應的元數據,包括KEY_SEL、LBA等信息。 然后不同的數據分別使用不同的密鑰進行加解密。用戶數據會使用USER_KEY及其對應的 LBA(Logical Block Address,邏輯塊地址)作為密鑰進行加密;管理數據會使用MNG_KEY 及物理頁地址作為密鑰進行加密;元數據會使用META_KEY和物理頁地址作為密鑰進行加密,完成加密后再進行固態硬盤100的寫操作。在該實施例中,只有在破解元數據格式后才能知道對應數據的類型及其密鑰的選擇。由于元數據的存在,物理頁地址內數據的構成在邏輯頁地址級別是自描述。使得軟件可以在不知道物理頁地址內具體數據構成的情況下, 可以正確的讀出任意物理頁地址內的加密數據。這種特性可以方便FTL在進行損耗均衡、 垃圾回收、數據搬移時,直接在物理頁地址級別進行讀操作,無需預先了解所讀取物理頁地址內的數據構成,無需為其指定對應的密鑰。在本發明的一個實施例中,圖7描述了 4筆邏輯頁地址數據寫入操作,在現有技術中物理頁地址不做切分和在本發明的實施例中物理頁地址做切分的不同數據的存儲表現。 可以看到,由于物理頁地址被切分為4個獨立的邏輯頁地址分別進行管理,所以這4標數據可以合并寫入一個物理頁地址內,不會造成額外的寫方法。而若物理頁地址不做切分,要求單個物理頁地址內邏輯頁地址為邏輯連續,結果這4筆數據會被寫入不同的物理頁地址內,額外多消耗兩個物理頁地址。因此,本實施提供的將物理頁地址做切分的不同數據的存儲表現優越。在本發明的第七實施例中,所述將固態硬盤100的至少一個物理頁地址切分為至少一個邏輯上獨立的邏輯頁地址的步驟中,所述至少一個邏輯頁地址包括多個,每個所述邏輯頁地址的大小相等;每個所述不同來源的數據分別存儲于一個所述邏輯頁地址中。邏輯頁地址的大小可以根據具體的物理頁地址的大小及數據存儲需要的情況進行分割。在所述步驟S603之后包括解密模塊40解密所述加密后的所述不同來源的數據的步驟。具體的,所述步驟S603包括接收子模塊41接收讀取所述邏輯頁地址數據的指令; 解密子模塊42采用所述元數據密鑰解密所述元數據的密文,獲得所述元數據的明文;第三解析子模塊43對所述元數據的明文進行解析,獲得所述邏輯頁地址數據密鑰編號;第四解析子模塊44采用所述邏輯頁地址數據密鑰編號對應的邏輯頁地址數據密鑰對所述邏輯頁地址數據的密文進行解密,獲得所述邏輯頁地址數據的明文。當固態硬盤100接收到讀取用戶數據或者管理數據的指令時,這些多個數據都指向同一個物理頁地址,則固態硬盤100開始執行讀操作。解密模塊40先獲得元數據的密文, 使用約定元數據的META_KEY進行解密,獲得元數據的明文;然后通過對元數據明文的解析獲得對應的邏輯頁地址數據的KEY_SEL信息;解密模塊40再將邏輯頁地址數據的KEY_SEL 對應的KEY對邏輯頁地址數據的密文進行解密,獲得邏輯頁地址數據的明文。在本發明的一個優選實施例中,在所述采用所述邏輯頁地址數據密鑰編號對應的邏輯頁地址數據密鑰對所述邏輯頁地址數據的密文進行解密,獲得所述邏輯頁地址數據的明文的步驟之后還包括指定子模塊25指定所述邏輯頁地址數據的明文需要存儲的所述已切分的至少一個物理頁地址;存儲模塊30將所述邏輯頁地址數據的明文加密后存儲到所述已切分的至少一個物理頁地址;實現了 PPA級別的數據搬移。所述步驟S603之后還包括擦除模塊60擦除所述用戶數據密鑰的信息;覆蓋模塊70采用無效密鑰信息覆蓋所述用戶數據密鑰的信息。通過這樣的方式可以保證如用戶數據刪除后其他邏輯頁地址數據仍然可保留。因此,本實施例中引入LPA級別數據自描述概念使得在不知道PPA內數據具體構成的情況下,也可以正確的將數據讀出解密。綜上所述,本發明通過將固態硬盤的至少一個物理頁地址切分為至少一個邏輯上獨立的邏輯頁地址;將不同來源的數據采用不同的密鑰加密;并且將所述加密后的所述不同來源的數據存儲到所述至少一個物理頁地址,提高了固態硬盤的存儲數據的安全性以及靈活性。進一步的,還引入邏輯頁地址級別數據自描述概念,使得在不知道物理頁地址內數據具體構成的情況下,也可以正確的將數據讀出解密,使其固態硬盤的使用更為方便。當然,本發明還可有其它多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發明所附的權利要求的保護范圍。
權利要求
1.一種固態硬盤數據加解密的方法,其特征在于,所述方法包括如下步驟將固態硬盤的至少一個物理頁地址切分為至少一個邏輯上獨立的邏輯頁地址;將不同來源的數據采用不同的密鑰加密;將所述加密后的所述不同來源的數據存儲到所述至少一個物理頁地址。
2.根據權利要求I所述的方法,其特征在于,所述不同來源的數據包括元數據和邏輯頁地址數據;在所述將不同來源的數據采用不同的密鑰加密的步驟之前包括寫入所述元數據的元數據密鑰和所述邏輯頁地址數據的邏輯頁地址數據密鑰,以及根據所述元數據的自描述信息設定所述元數據密鑰對應的元數據密鑰編號和所述邏輯頁地址數據密鑰對應的邏輯頁地址數據密鑰編號;所述將不同來源的數據采用不同的密鑰加密的步驟包括根據所述元數據密鑰編號獲取所述元數據密鑰,并解析所述元數據獲取所述邏輯頁地址數據密鑰編號;根據所述邏輯頁地址數據密鑰編號,獲取對應的邏輯頁地址數據密鑰;采用所述元數據密鑰加密所述元數據獲得所述元數據的密文,以及采用所述邏輯頁地址數據密鑰加密所述邏輯頁地址數據獲得所述邏輯頁地址數據的密文;所述將所述加密后的所述不同來源的數據存儲到所述至少一個物理頁地址的步驟包括將所述元數據的密文和所述邏輯頁地址數據的密文存儲到所述至少一個物理頁地址。
3.根據權利要求2所述的方法,其特征在于,在所述將固態硬盤的至少一個物理頁地址切分為至少一個邏輯上獨立的邏輯頁地址的步驟中,至少一個所述邏輯頁地址包括多個,每個所述邏輯頁地址的大小相等;每個所述不同來源的數據分別存儲于一個所述邏輯頁地址中;在所述將所述加密后的所述不同來源的數據存儲到所述至少一個物理頁地址的步驟之后包括解密所述加密后的所述不同來源的數據。
4.根據權利要求3所述的方法,其特征在于,所述解密所述加密后的所述不同來源的數據的步驟包括接收讀取所述邏輯頁地址數據的指令;采用所述元數據密鑰解密所述元數據的密文,獲得所述元數據的明文;對所述元數據的明文進行解析,獲得所述邏輯頁地址數據密鑰編號;采用所述邏輯頁地址數據密鑰編號對應的邏輯頁地址數據密鑰對所述邏輯頁地址數據的密文進行解密,獲得所述邏輯頁地址數據的明文。
5.根據權利要求3所述的方法,其特征在于,在所述采用所述邏輯頁地址數據密鑰編號對應的邏輯頁地址數據密鑰對所述邏輯頁地址數據的密文進行解密,獲得所述邏輯頁地址數據的明文的步驟之后還包括指定所述邏輯頁地址數據的明文需要存儲的所述已切分的至少一個物理頁地址;將所述邏輯頁地址數據的明文加密后存儲到所述已切分的至少一個物理頁地址;所述邏輯頁地址數據包括用戶數據和管理數據;所述邏輯頁地址數據密鑰包括用戶數據密鑰和管理數據密鑰;所述邏輯頁地址數據密鑰編號包括用戶數據密鑰編號和管理數據密鑰編號;所述將所述加密后的所述不同來源的數據存儲到所述至少一個物理頁地址的步驟之后還包括擦除所述用戶數據密鑰的信息;采用無效密鑰信息覆蓋所述用戶數據密鑰的信息。
6.一種固態硬盤,其特征在于,包括切分模塊,用于將固態硬盤的至少一個物理頁地址切分為至少一個邏輯上獨立的邏輯頁地址;加密模塊,用于將不同來源的數據采用不同的密鑰加密;存儲模塊,用于將所述加密后的所述不同來源的數據存儲到所述至少一個物理頁地址。
7.根據權利要求6所述的固態硬盤,其特征在于,所述不同來源的數據包括元數據和邏輯頁地址數據;所述固態硬盤還包括初始化模塊,用于寫入所述元數據的元數據密鑰和所述邏輯頁地址數據的邏輯頁地址數據密鑰,以及根據所述元數據的自描述信息設定所述元數據密鑰對應的元數據密鑰編號和所述邏輯頁地址數據密鑰對應的邏輯頁地址數據密鑰編號;所述加密模塊包括指定子模塊,用于為所述邏輯頁地址數據指定至少一個所述物理頁地址;第一解析子模塊,用于根據所述元數據密鑰編號獲取所述元數據密鑰,并解析所述元數據獲取所述邏輯頁地址數據密鑰編號;第二解析子模塊,根據所述邏輯頁地址數據密鑰編號,獲取對應的邏輯頁地址數據密鑰;加密子模塊,用于采用所述元數據密鑰加密所述元數據獲得所述元數據的密文,以及采用所述邏輯頁地址數據密鑰加密所述邏輯頁地址數據獲得所述邏輯頁地址數據的密文。
8.根據權利要求7所述的固態硬盤,其特征在于,所述至少一個邏輯頁地址包括多個, 每個所述邏輯頁地址的大小相等;所述存儲模塊將每個所述不同來源的數據分別存儲于一個所述邏輯頁地址中;所述固態硬盤還包括解密模塊,用于解密所述加密后的所述不同來源的數據。
9.根據權利要求8所述的固態硬盤,其特征在于,所述解密模塊包括接收子模塊,用于接收讀取所述邏輯頁地址數據的指令;解密子模塊,采用所述元數據密鑰解密所述元數據的密文,獲得所述元數據的明文; 第三解析子模塊,用于對所述元數據的明文進行解析,獲得所述邏輯頁地址數據密鑰編號;第四解析子模塊,用于采用所述邏輯頁地址數據密鑰編號對應的邏輯頁地址數據密鑰對所述邏輯頁地址數據的密文進行解密,獲得所述邏輯頁地址數據的明文。
10.根據權利要求8所述的固態硬盤,其特征在于,所述邏輯頁地址數據包括用戶數據和管理數據;所述邏輯頁地址數據密鑰包括用戶數據密鑰和管理數據密鑰;所述邏輯頁地址數據密鑰編號包括用戶數據密鑰編號和管理數據密鑰編號;所述固態硬盤還包括擦除模塊,用于擦除所述初始化模塊中的用戶數據密鑰的信息;覆蓋模塊,用于采用無效密鑰信息覆蓋所述初始化模塊中的用戶數據密鑰的信息。
全文摘要
本發明適用于存儲技術領域,提供了一種固態硬盤數據加解密的方法及其固態硬盤,所述方法包括如下步驟將固態硬盤的至少一個物理頁地址切分為至少一個邏輯上獨立的邏輯頁地址;將不同來源的數據采用不同的密鑰加密;將所述加密后的所述不同來源的數據存儲到所述至少一個物理頁地址。借此,本發明提高了固態硬盤存儲數據的安全性。
文檔編號G06F12/14GK102609368SQ20121000707
公開日2012年7月25日 申請日期2012年1月11日 優先權日2012年1月11日
發明者徐偉華 申請人:記憶科技(深圳)有限公司