專利名稱:修改元素的長(zhǎng)度以形成加密密鑰的制作方法
修改元素的長(zhǎng)度以形成加密密鑰
背景技術(shù):
一種電子設(shè)備通常包括存儲(chǔ)數(shù)據(jù)的存儲(chǔ)設(shè)備。該存儲(chǔ)設(shè)備可為易失性存儲(chǔ)設(shè)備,用于暫時(shí)存儲(chǔ)各種類型的數(shù)據(jù),包括用戶或應(yīng)用數(shù)據(jù)、機(jī)器可讀指令等等??商娲兀摯鎯?chǔ)設(shè)備可為持久性存儲(chǔ)設(shè)備,例如基于磁盤的存儲(chǔ)設(shè)備或非易失性存儲(chǔ)設(shè)備。存儲(chǔ)在存儲(chǔ)設(shè)備中的數(shù)據(jù)可包括敏感或機(jī)密數(shù)據(jù),例如安全密鑰、用戶憑證、財(cái)務(wù)信息、個(gè)人信息,等等。如果該電子設(shè)備被偷或者以未授權(quán)的方式被訪問(wèn),黑客可試圖檢索該存儲(chǔ)設(shè)備的內(nèi)容,以獲取存儲(chǔ)在該存儲(chǔ)設(shè)備中的敏感或機(jī)密信息。
關(guān)于以下附圖描述一些實(shí)施例。圖1和圖2是合并了一些實(shí)施的示例裝置的框圖;及圖3是根據(jù)一些實(shí)施的保護(hù)存儲(chǔ)設(shè)備的內(nèi)容的方法的流程圖。
具體實(shí)施例方式根據(jù)一些實(shí)施,提供多種技術(shù)或機(jī)制保護(hù)電子設(shè)備中的存儲(chǔ)設(shè)備的內(nèi)容,該電子設(shè)備可為計(jì)算機(jī)、個(gè)人數(shù)字助理、電子電器、存儲(chǔ)服務(wù)器、移動(dòng)電話或其他類型的電子設(shè)備。在一些示例中,該存儲(chǔ)設(shè)備可為用動(dòng)態(tài)隨機(jī)存取存儲(chǔ)(DRAM)或靜態(tài)隨機(jī)存取存儲(chǔ)(SRAM)技術(shù)實(shí)施的易失性存儲(chǔ)設(shè)備。在可選的示例中,該存儲(chǔ)設(shè)備可為非易失性存儲(chǔ)設(shè)備,例如閃存設(shè)備。作為進(jìn)一步的示例,該存儲(chǔ)設(shè)備可為基于磁盤的存儲(chǔ)設(shè)備,例如硬盤驅(qū)動(dòng)器或光盤驅(qū)動(dòng)器。在其他示例中,可使用其他類型的存儲(chǔ)設(shè)備。作為保護(hù)機(jī)制或技術(shù)的一部分,數(shù)據(jù)密鑰與加密技術(shù)一起使用,以加密將存儲(chǔ)到該存儲(chǔ)設(shè)備中的數(shù)據(jù)。可能存在生成的數(shù)據(jù)密鑰與正在加密的數(shù)據(jù)或信息段的長(zhǎng)度不同的時(shí)候;結(jié)果,不得不適當(dāng)修改該數(shù)據(jù)密鑰的長(zhǎng)度以形成加密密鑰,用以對(duì)該數(shù)據(jù)或信息段進(jìn)行加密。此外,可能存在數(shù)據(jù)密鑰與另一個(gè)信息元素混合的時(shí)候一為了正確地執(zhí)行該混合,不得不修改將與該加密密鑰混合的該加密密鑰和/或其他信息元素的長(zhǎng)度。根據(jù)一些實(shí)施的數(shù)據(jù)保護(hù)技術(shù)或機(jī)制能夠通過(guò)修改用于形成該加密密鑰的元素的長(zhǎng)度,產(chǎn)生加密密鑰(用于加密待存儲(chǔ)在存儲(chǔ)設(shè)備中的數(shù)據(jù))。修改其長(zhǎng)度的該元素可為用于形成該加密密鑰的數(shù)據(jù)密鑰和/或地址信息。修改該元素的長(zhǎng)度包括增加或減小其長(zhǎng)度。下面進(jìn)一步討論用于修改該元素的長(zhǎng)度的各種技術(shù)。圖1描繪了一種示例裝置,包括存儲(chǔ)設(shè)備請(qǐng)求器102、存儲(chǔ)設(shè)備控制器104 (具有根據(jù)一些實(shí)施的數(shù)據(jù)保護(hù)機(jī)制)以及存儲(chǔ)設(shè)備106。存儲(chǔ)設(shè)備請(qǐng)求器102能夠通過(guò)存儲(chǔ)設(shè)備控制器104訪問(wèn)(讀取或?qū)懭?存儲(chǔ)設(shè)備106的內(nèi)容。存儲(chǔ)設(shè)備請(qǐng)求器102的示例包括處理器、輸入/輸出(I/O)控制器或其他類型的請(qǐng)求器。存儲(chǔ)設(shè)備總線108使存儲(chǔ)設(shè)備控制器104和存儲(chǔ)設(shè)備106互相連接。存儲(chǔ)設(shè)備總線108包括控制部分(用于傳送控制信號(hào))、地址部分(用于傳送地址信號(hào))以及數(shù)據(jù)部分(用于傳送從存儲(chǔ)設(shè)備106讀取或?qū)懭氪鎯?chǔ)設(shè)備106的數(shù)據(jù))??偩€108的控制、地址以及數(shù)據(jù)部分作為示例單獨(dú)示出。各種實(shí)施可具有這些單獨(dú)的連接,但是各部分還可以是多路復(fù)用的或在公用總線上發(fā)送信號(hào),等等。此外,控制、地址和/或數(shù)據(jù)部分可實(shí)施為有線或無(wú)線連接。在無(wú)線實(shí)施中,使用無(wú)線協(xié)議傳輸控制、地址和/或數(shù)據(jù)部分。如圖1中所示,存儲(chǔ)設(shè)備控制器104可提供存儲(chǔ)設(shè)備地址110,以訪問(wèn)存儲(chǔ)設(shè)備106的位置。對(duì)于寫入操作,可提供寫入數(shù)據(jù)112至存儲(chǔ)設(shè)備106,并且對(duì)于讀取操作,可從存儲(chǔ)設(shè)備106檢索讀取數(shù)據(jù)114。為了保護(hù)存儲(chǔ)設(shè)備106的內(nèi)容,從存儲(chǔ)設(shè)備控制器104發(fā)送至存儲(chǔ)設(shè)備106的寫入數(shù)據(jù)112包括已加密的寫入數(shù)據(jù)。如果數(shù)據(jù)是從被加密保護(hù)的存儲(chǔ)設(shè)備106的位置讀取的,則相應(yīng)的讀取數(shù)據(jù)114是已加密的讀取數(shù)據(jù)。為了進(jìn)一步保護(hù)存儲(chǔ)設(shè)備106的內(nèi)容,存儲(chǔ)設(shè)備地址110可為加擾的地址(其中,下面進(jìn)一步討論的,通過(guò)應(yīng)用加擾技術(shù)修改初始地址)??墒褂么鎯?chǔ)設(shè)備控制器104中的地址擾碼器126或該存儲(chǔ)設(shè)備請(qǐng)求器102中的地址擾碼器128執(zhí)行地址的加擾。注意,不是存儲(chǔ)設(shè)備106中的全部位置都要通過(guò)數(shù)據(jù)加密和地址加擾保護(hù)一在一些示例中,存儲(chǔ)設(shè)備106中的某些位置不經(jīng)過(guò)數(shù)據(jù)加密和/或地址加擾。例如,對(duì)于特定的存儲(chǔ)位置,可選擇性地啟用或禁用數(shù)據(jù)加密和/或地址加擾??赏ㄟ^(guò)包括具有存儲(chǔ)訪問(wèn)命令的命令字段來(lái)實(shí)現(xiàn)數(shù)據(jù)加密和/或地址加擾的選擇性啟用/禁用,該存儲(chǔ)訪問(wèn)命令用于指定對(duì)應(yīng)的存儲(chǔ)位置是否被數(shù)據(jù)加密和/或地址加擾保護(hù)??商娲兀瑢?duì)于特定的存儲(chǔ)位置,可使用其他機(jī)制選擇性地啟用/禁用數(shù)據(jù)加密和/或地址加擾,例如,通過(guò)使用配置信息、應(yīng)用程序界面(API),等等。使用地址加擾和數(shù)據(jù)加密提供存儲(chǔ)在存儲(chǔ)設(shè)備106中的數(shù)據(jù)的加強(qiáng)型保護(hù)。這樣,降低了黑客能夠檢索該存儲(chǔ)設(shè)備中被保護(hù)的數(shù)據(jù)的內(nèi)容的可能性。在嘗試從存儲(chǔ)設(shè)備106檢索數(shù)據(jù)的過(guò)程中,黑客可偷取電子設(shè)備,從電子設(shè)備移除該存儲(chǔ)設(shè)備106,或者(物理地或電子地)獲取對(duì)存儲(chǔ)設(shè)備106的未經(jīng)授權(quán)訪問(wèn)。盡管圖1僅示出一個(gè)存儲(chǔ)設(shè)備控制器104,該存儲(chǔ)設(shè)備控制器104具有數(shù)據(jù)保護(hù)機(jī)制,以保護(hù)存儲(chǔ)在存儲(chǔ)設(shè)備106中的數(shù)據(jù),注意,可存在具有與其他存儲(chǔ)設(shè)備同樣的數(shù)據(jù)保護(hù)機(jī)制的額外的存儲(chǔ)設(shè)備控制器。存儲(chǔ)設(shè)備控制器104包括加密模塊116以及解密模塊118,該加密模塊116用于加密(未加密的)寫入數(shù)據(jù),該解密模塊118用于解密已加密的讀取數(shù)據(jù)114。解密模塊118輸出解密的讀取數(shù)據(jù)。加密模塊116和解密模塊118中的每一個(gè)提供有加密密鑰,以執(zhí)行各自的加密或解密。加密密鑰可為基于存儲(chǔ)在密鑰存儲(chǔ)器122中的數(shù)據(jù)密鑰120的。可替代地,提供至加密模塊116和解密模塊118的數(shù)據(jù)密鑰可為密鑰混合器124輸出的混合的密鑰。密鑰混合器124將來(lái)自密鑰存儲(chǔ)器122的數(shù)據(jù)密鑰120與地址信息混合,以輸出混合的密鑰。數(shù)據(jù)密鑰與地址信息的混合可為數(shù)據(jù)密鑰與地址信息的異或。數(shù)據(jù)密鑰和地址信息的其他類型的混合可用于其他實(shí)施中。注意,在未將數(shù)據(jù)密鑰與地址信息混合以形成加密密鑰的實(shí)施例中,可省略密鑰混合器124。如上面所看到的,根據(jù)一些實(shí)施,可對(duì)用于形成加密密鑰的元素執(zhí)行長(zhǎng)度修改。在圖1中,可通過(guò)長(zhǎng)度修改器130 (用于修改地址信息的長(zhǎng)度)或長(zhǎng)度修改器132 (用于修改數(shù)據(jù)密鑰120的長(zhǎng)度)執(zhí)行長(zhǎng)度修改。在一些實(shí)施中,僅出現(xiàn)長(zhǎng)度修改器130和132中的一個(gè)。在其他實(shí)施中,長(zhǎng)度修改器130和132均出現(xiàn)??商娲?,還可通過(guò)由混合器124將數(shù)據(jù)密鑰120和地址信息混合來(lái)實(shí)現(xiàn)長(zhǎng)度修改(在此情況下,可省略長(zhǎng)度修改器130和132)。如上面所看到的,可能存在數(shù)據(jù)密鑰120與正在加密的數(shù)據(jù)或信息段的長(zhǎng)度不同的時(shí)候;結(jié)果,不得不適當(dāng)修改數(shù)據(jù)密鑰的長(zhǎng)度。此外,可能存在數(shù)據(jù)密鑰與其他信息元素(例如地址信息)混合的時(shí)候一以允許正確地執(zhí)行混合,不得不修改將與數(shù)據(jù)密鑰混合的數(shù)據(jù)密鑰和/或地址信息的長(zhǎng)度。修改地址信息和/或數(shù)據(jù)密鑰120的長(zhǎng)度的能力允許在如何形成加密密鑰時(shí)的增強(qiáng)的靈活性。例如,數(shù)據(jù)密鑰的長(zhǎng)度可自定義設(shè)置為提供目標(biāo)長(zhǎng)度的加密密鑰。作為另一個(gè)示例,可產(chǎn)生并組合多個(gè)數(shù)據(jù)密鑰(例如通過(guò)應(yīng)用函數(shù))以形成加密密鑰。作為另一個(gè)選擇,在將密鑰與地址信息混合以形成加密密鑰的實(shí)施中,考慮到適當(dāng)混合,可修改數(shù)據(jù)密鑰的長(zhǎng)度和地址信息的長(zhǎng)度或其中的一個(gè)長(zhǎng)度以產(chǎn)生加密密鑰。以下為修改數(shù)據(jù)密鑰和地址信息(加擾或未加擾的地址信息)的長(zhǎng)度的各種實(shí)施,可由長(zhǎng)度修改器130和/或長(zhǎng)度修改器132和/或混合器124執(zhí)行修改。在一些實(shí)施中,可通過(guò)簡(jiǎn)單地給數(shù)據(jù)密鑰120添加位或從數(shù)據(jù)密鑰120去除位來(lái)修改數(shù)據(jù)密鑰120的長(zhǎng)度。例如,為了增加數(shù)據(jù)密鑰120的長(zhǎng)度,可復(fù)制數(shù)據(jù)密鑰120并連接復(fù)制的數(shù)據(jù)密鑰(或其一些部分)以形成加密密鑰。在其他實(shí)施中,可通過(guò)由混合器124將數(shù)據(jù)密鑰120與地址信息混合來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)密鑰120的長(zhǎng)度的修改。在進(jìn)一步的實(shí)施中,可提供多個(gè)數(shù)據(jù)密鑰120,且可通過(guò)例如應(yīng)用函數(shù)來(lái)組合多個(gè)數(shù)據(jù)密鑰120。應(yīng)用的函數(shù)可包括以下中的一個(gè)或多個(gè):(I)將多個(gè)數(shù)據(jù)密鑰120連接在一起以形成加密密鑰;(2)將多個(gè)數(shù)據(jù)密鑰120相乘以形成該加密密鑰;(3)對(duì)多個(gè)數(shù)據(jù)密鑰120應(yīng)用哈希函數(shù)以形成加密密鑰;(4)使用多個(gè)數(shù)據(jù)密鑰120執(zhí)行對(duì)查找表的查找,以檢索加密密鑰;以及(5)其他函數(shù)。注意,多個(gè)數(shù)據(jù)密鑰120上的應(yīng)用函數(shù)可增加或減小數(shù)據(jù)密鑰的長(zhǎng)度。在進(jìn)一步的實(shí)施中,多個(gè)數(shù)據(jù)密鑰120上的應(yīng)用函數(shù)產(chǎn)生輸出,然后由混合器124將輸出與地址信息混合,以形成加密密鑰。注意,對(duì)于多個(gè)數(shù)據(jù)密鑰,可通過(guò)使用上面所說(shuō)到的任意函數(shù)修改地址信息的長(zhǎng)度。例如,可產(chǎn)生多段地址信息,且可對(duì)該多段地址信息應(yīng)用上面所說(shuō)的任意函數(shù)以產(chǎn)生用于得到加密密鑰的輸出,例如通過(guò)與數(shù)據(jù)密鑰混合以產(chǎn)生加密密鑰。通過(guò)加密模塊116實(shí)施的加密可為各種類型的加密中的一種。例如,快速加密技術(shù)可為異或(XOR)技術(shù),在該技術(shù)中加密密鑰為與寫入數(shù)據(jù)XOR的。使用基于XOR的加密技術(shù)的好處是相當(dāng)快,且能夠支持存儲(chǔ)設(shè)備106的相當(dāng)快的訪問(wèn)速度,而不增加至寫入和讀取路徑的延遲。因此,加密模塊116能夠應(yīng)用以下異或操作:A K = C _中,A代表與加密密鑰K (數(shù)據(jù)密鑰120或混合的密鑰)異或的輸入明文數(shù)據(jù)(寫入數(shù)據(jù)),以產(chǎn)生已加密的寫入數(shù)據(jù)(C)。為了執(zhí)行解密,根據(jù):C K=A,已加密的讀取數(shù)據(jù)(C)可與加密密鑰K異或,以恢復(fù)初始明文(A)。在可選的實(shí)施中,替代使用基于XOR的加密技術(shù),可使用更高等級(jí)的加密技術(shù)。例如,更高等級(jí)的加密可為高級(jí)加密標(biāo)準(zhǔn)(AES)加密。AES加密密鑰比用于XOR加密中的密鑰更不容易被黑。但是,(由于不得不使用更多電路以實(shí)施AES加密)AES加密可伴隨增加的電路復(fù)雜性,這會(huì)導(dǎo)致在尋址涉及執(zhí)行AES加密中增加的訪問(wèn)時(shí)間的問(wèn)題的過(guò)程中增加的訪問(wèn)時(shí)間或增加的復(fù)雜性。在其他示例中可使用其他類型的更高等級(jí)的加密。在密鑰混合器124中,與數(shù)據(jù)密鑰120混合的地址信息可包括以下中的一項(xiàng)或組合:(I)由存儲(chǔ)設(shè)備請(qǐng)求器102提供的初始(未加擾)的物理地址的至少一部分,(2)加擾的物理地址的至少一部分,以及(3)虛擬地址信息(加擾的虛擬地址或未加擾的虛擬地址)的至少一部分?!疤摂M地址”指通常由電子設(shè)備的更高等級(jí)組件使用的虛擬地址空間的一部分的邏輯地址,例如操作系統(tǒng)或文件系統(tǒng)。虛擬地址空間通常比限定存儲(chǔ)設(shè)備106中實(shí)際可用的存儲(chǔ)位置的物理地址空間更大。存儲(chǔ)在密鑰存儲(chǔ)器122中的每個(gè)數(shù)據(jù)密鑰120可為隨機(jī)生成的密鑰,其可由存儲(chǔ)設(shè)備控制器104本身生成或由存儲(chǔ)設(shè)備控制器104的外部組件生成。例如,數(shù)據(jù)密鑰可通過(guò)系統(tǒng)啟動(dòng)代碼生成,例如基本輸入/輸出系統(tǒng)(BIOS)代碼,其在電子設(shè)備第一次啟動(dòng)時(shí)執(zhí)行各種初始化功能??商娲?,數(shù)據(jù)密鑰可由管理引擎生成,該管理引擎是電子設(shè)備的芯片組中的一部分。作為另一個(gè)選擇,數(shù)據(jù)密鑰可基于用戶輸入生成。作為另一個(gè)示例,數(shù)據(jù)密鑰可由處理器、可信平臺(tái)模塊或其他組件生成。數(shù)據(jù)密鑰還可從網(wǎng)絡(luò)連接或電子設(shè)備連接的管理總線接收。通常,不使用可被電子設(shè)備中的逆向工程組件發(fā)現(xiàn)的數(shù)據(jù)生成數(shù)據(jù)密鑰??苫陔S機(jī)數(shù)字生成器的輸出生成隨機(jī)數(shù)據(jù)密鑰。此外或可替代地,可基于數(shù)據(jù)和/或時(shí)間生成隨機(jī)數(shù)據(jù)密鑰。為了增強(qiáng)安全性,用于分別由加密模塊116和解密模塊118執(zhí)行的加密和解密的數(shù)據(jù)密鑰隨系統(tǒng)復(fù)位或重啟而改變??商娲?,當(dāng)電子設(shè)備從低功率狀態(tài)恢復(fù)時(shí)可生成不同的數(shù)據(jù)密鑰,該低功率狀態(tài)例如備用狀態(tài)、休眠狀態(tài)或其他低功率狀態(tài)。作為進(jìn)一步的選擇,可使用加密刷新周期,在加密刷新周期中,在每個(gè)新的加密刷新周期生成數(shù)據(jù)密鑰。密鑰存儲(chǔ)器122為易失性存儲(chǔ)設(shè)備,其隨著斷電或移除電源而丟失其內(nèi)容。例如,密鑰存儲(chǔ)器122可為存儲(chǔ)設(shè)備控制器104中的寄存器,或可替代地,密鑰存儲(chǔ)器122可為存儲(chǔ)設(shè)備106的一部分。密鑰存儲(chǔ)器122可為只寫/ 一次寫入存儲(chǔ)設(shè)備(例如寄存器),其響應(yīng)預(yù)定的事件復(fù)位,該預(yù)定的事件例如電子設(shè)備關(guān)機(jī)、復(fù)位、進(jìn)入低功率狀態(tài)、啟動(dòng)新的加密刷新周期,等等。只寫存儲(chǔ)意味著存儲(chǔ)設(shè)備控制器104的外部組件不能讀取密鑰存儲(chǔ)器122,且一次寫入存儲(chǔ)器意味著在每個(gè)預(yù)定間隔(例如,在電子設(shè)備復(fù)位、重啟或電力周期之間的時(shí)間期間;在特定刷新周期間隔期間;等等)期間僅能寫入密鑰存儲(chǔ)器122 —次。如上面所看到的,存儲(chǔ)設(shè)備控制器104提供以訪問(wèn)存儲(chǔ)設(shè)備106中的位置的存儲(chǔ)設(shè)備地址110可為加擾的地址。使用地址加擾允許在存儲(chǔ)設(shè)備106中存儲(chǔ)的加密數(shù)據(jù)提供的保護(hù)的頂層上的附加層保護(hù)。如所看到的,在一些示例中,可由存儲(chǔ)設(shè)備控制器104中的地址擾碼器126執(zhí)行地址加擾。在可選的示例中,替代提供存儲(chǔ)設(shè)備控制器104中的地址擾碼器126,可提供地址擾碼器128作為存儲(chǔ)設(shè)備請(qǐng)求器102的一部分,或可替代地,可在存儲(chǔ)設(shè)備請(qǐng)求器102和存儲(chǔ)設(shè)備控制器104之間提供地址擾碼器128 (換句話說(shuō),可在從存儲(chǔ)設(shè)備請(qǐng)求器102和存儲(chǔ)設(shè)備控制器104獨(dú)立的組件中提供地址擾碼器)??墒褂酶鞣N技術(shù)中的任意一種執(zhí)行初始地址的加擾。例如,可轉(zhuǎn)換初始地址的地址位??商娲兀墒褂美珉S機(jī)生成的密鑰這樣的密鑰來(lái)加擾初始地址。用于加擾地址的密鑰可為(存儲(chǔ)在密鑰存儲(chǔ)器122中的)數(shù)據(jù)密鑰120或不同的密鑰。密鑰可與初始地址混合或應(yīng)用于初始地址,以生成加擾的地址??商娲兀赏ㄟ^(guò)對(duì)初始地址進(jìn)行哈希運(yùn)算以產(chǎn)生代表加擾的地址的哈希值來(lái)執(zhí)行地址加擾。作為另一個(gè)選擇,可存儲(chǔ)例如表這樣的數(shù)據(jù)結(jié)構(gòu)以將輸入初始地址映射至輸出地址,這種情況下,輸出地址被認(rèn)為是加擾的地址。在其他實(shí)施中可使用其他技術(shù)。在使用密鑰加擾地址的實(shí)施中,可存在各種可能的場(chǎng)景(其中的一些在下面陳述)。在第一場(chǎng)景中,地址擾碼器126或128可使用數(shù)據(jù)密鑰120加擾初始物理地址以形成加擾的地址。密鑰混合器124將初始物理地址與數(shù)據(jù)密鑰120混合,以形成混合的密鑰,且混合的密鑰可分別由加密模塊116和解密模塊118使用,以加密或解密數(shù)據(jù)。第二場(chǎng)景涉及用與數(shù)據(jù)密鑰120不同的地址密鑰來(lái)加擾初始物理地址的地址擾碼器126或128。初始物理地址由密鑰混合器124與數(shù)據(jù)密鑰120混合,以形成用于加密或解密數(shù)據(jù)的混合的密鑰。在第三場(chǎng)景中,地址擾碼器126或128可使用與用于加密數(shù)據(jù)的技術(shù)不同的技術(shù)來(lái)加擾初始物理地址。例如,第一加密技術(shù)用于用密鑰(與數(shù)據(jù)密鑰不同的數(shù)據(jù)密鑰或地址密鑰)加擾初始物理地址以形成加擾的地址,而第二加密技術(shù)用于用數(shù)據(jù)密鑰(替代混合的密鑰)加密寫入數(shù)據(jù)以輸出已加密的寫入數(shù)據(jù)。在第四場(chǎng)景中,可使用與數(shù)據(jù)密鑰不同的地址密鑰生成加擾的地址。加擾的地址與數(shù)據(jù)密鑰混合,以形成加密寫入數(shù)據(jù)的混合的密鑰。在第五場(chǎng)景中,可使用數(shù)據(jù)密鑰生成加擾的地址。加擾的地址與數(shù)據(jù)密鑰混合以形成加密寫入數(shù)據(jù)的混合的密鑰。在第六場(chǎng)景中,可使用與用于加密寫入數(shù)據(jù)的加密技術(shù)不同的加密技術(shù)生成加擾的地址。在此場(chǎng)景中,替代混合的密鑰,使用數(shù)據(jù)密鑰加密數(shù)據(jù)。
`
在第七場(chǎng)景中,可加擾初始物理地址來(lái)形成加擾的地址,而虛擬地址(或加擾的虛擬地址)可與數(shù)據(jù)密鑰混合,以提供用于加密寫入數(shù)據(jù)的混合的密鑰。此場(chǎng)景的變形是將虛擬地址(或加擾的虛擬地址)用作數(shù)據(jù)密鑰,以加密寫入數(shù)據(jù)??纱嬖诙鄠€(gè)其他的場(chǎng)景。此外,一些場(chǎng)景可涉及以上場(chǎng)景中的多個(gè)的組合。圖2顯示了另一個(gè)示例裝置,包括內(nèi)存控制器202,該內(nèi)存控制器202連接至內(nèi)存設(shè)備204 (注意,在不同的示例中,內(nèi)存控制器202可由存儲(chǔ)設(shè)備控制器取代,而內(nèi)存設(shè)備204可由存儲(chǔ)設(shè)備取代)。內(nèi)存控制器202實(shí)施(與上面所述的那些一樣的)內(nèi)存保護(hù)機(jī)制,以保護(hù)存儲(chǔ)在內(nèi)存設(shè)備204中的數(shù)據(jù)。內(nèi)存設(shè)備204可代表單獨(dú)的設(shè)備或多個(gè)設(shè)備的組合(例如,單個(gè)內(nèi)存芯片或多個(gè)內(nèi)存芯片,或單個(gè)內(nèi)存模塊或多個(gè)內(nèi)存模塊)。由內(nèi)存控制器202實(shí)施的內(nèi)存保護(hù)機(jī)制包括數(shù)據(jù)加密機(jī)制,用于加密待存儲(chǔ)在內(nèi)存設(shè)備204中的寫入數(shù)據(jù)。內(nèi)存控制器202的內(nèi)存保護(hù)機(jī)制還可包括地址擾碼器224,以加擾指定內(nèi)存設(shè)備204中的位置的地址。在圖2的裝置中,可使用不同的保護(hù)技術(shù)保護(hù)內(nèi)存設(shè)備204的不同的內(nèi)存區(qū)域。如圖2中所描繪的,內(nèi)存設(shè)備具有多個(gè)內(nèi)存區(qū)域(“內(nèi)存區(qū)域I”…“內(nèi)存區(qū)域n”)。不同的內(nèi)存區(qū)域可代表特定的內(nèi)存設(shè)備的不同部分。多個(gè)內(nèi)存區(qū)域可替代地代表不同的內(nèi)存設(shè)備。因此,例如,在具有多個(gè)內(nèi)存設(shè)備的電子設(shè)備中,可使用第一數(shù)據(jù)密鑰保護(hù)在第一內(nèi)存設(shè)備中的數(shù)據(jù),可使用第二數(shù)據(jù)密鑰保護(hù)在第二內(nèi)存設(shè)備中的數(shù)據(jù),等等。各不同的密鑰可包括密鑰存儲(chǔ)器220中的多個(gè)數(shù)據(jù)密鑰(表示為“數(shù)據(jù)密鑰I”...“數(shù)據(jù)密鑰n”,其中,n ^ 2)。在進(jìn)一步的示例中,電子設(shè)備中可存在不同類型的內(nèi)存設(shè)備,在此種情況下,使用不同的數(shù)據(jù)密鑰保護(hù)存儲(chǔ)在不同類型的內(nèi)存設(shè)備中的數(shù)據(jù)。因此,例如,使用第一數(shù)據(jù)密鑰保護(hù)第一類型的內(nèi)存設(shè)備(例如,基于DRAM的內(nèi)存設(shè)備)中的數(shù)據(jù),使用第二數(shù)據(jù)密鑰用于保護(hù)存儲(chǔ)在第二類型的內(nèi)存設(shè)備(例如閃存設(shè)備)中的數(shù)據(jù),等等。還要注意,在電子設(shè)備中可存在高速緩沖存儲(chǔ)器,例如使用另一個(gè)數(shù)據(jù)密鑰保護(hù)高速緩沖存儲(chǔ)器。此外,還應(yīng)注意,根據(jù)各內(nèi)存區(qū)域是怎樣使用的,可對(duì)不同的內(nèi)存區(qū)域使用不同的數(shù)據(jù)密鑰。例如,內(nèi)存區(qū)域中的一個(gè)可為操作系統(tǒng)(OS)區(qū)域,用于存儲(chǔ)與操作系統(tǒng)有關(guān)的數(shù)據(jù)或指令。另一個(gè)內(nèi)存區(qū)域可存儲(chǔ)與非-OS程序相關(guān)的數(shù)據(jù),例如用戶或應(yīng)用數(shù)據(jù)??商娲?,可在電子設(shè)備運(yùn)行的不同模式期間使用不同的數(shù)據(jù)密鑰,其中,不同的模式可指例如不同的安全等級(jí)。在其他實(shí)施中,可對(duì)不同的內(nèi)存區(qū)域應(yīng)用不同等級(jí)的加密。例如,基于XOR的加密可應(yīng)用于第一內(nèi)存區(qū)域,而AES加密或一些其他更高等級(jí)的加密用于不同的內(nèi)存區(qū)域。另外,在一些實(shí)施中,不同的地址加擾可用于不同的內(nèi)存區(qū)域。例如,不同的密鑰(與數(shù)據(jù)密鑰不同的數(shù)據(jù)密鑰或地址密鑰)可用于生成不同的地址加擾。可替代地,不同的加密等級(jí)可用于提供用于不同的內(nèi)存區(qū)域的不同的地址加擾。將用于不同的內(nèi)存區(qū)域的不同的密鑰和/或不同的加密等級(jí)和/或不同的地址加擾可在電子設(shè)備構(gòu)建時(shí)配置,或在用戶或管理員操作電子設(shè)備期間配置。圖2進(jìn)一 步顯示了與內(nèi)存控制器202連接的請(qǐng)求器206 (例如,處理器、I/O控制器,等等)。請(qǐng)求器206能夠向內(nèi)存控制器202發(fā)出讀取或?qū)懭胝?qǐng)求,以讀取或?qū)懭雰?nèi)存設(shè)備204中的數(shù)據(jù)。對(duì)于寫入操作,如圖2中所示,內(nèi)存控制器202包括寫入數(shù)據(jù)緩沖區(qū)210,以存儲(chǔ)進(jìn)入的寫入數(shù)據(jù)。加密模塊212對(duì)來(lái)自寫入數(shù)據(jù)緩沖區(qū)210的寫入數(shù)據(jù)進(jìn)行加密,并通過(guò)內(nèi)存總線214提供用于在內(nèi)存設(shè)備204存儲(chǔ)的已加密的寫入數(shù)據(jù)。內(nèi)存總線214包括控制部分(具有控制信號(hào))、地址部分(包含地址)以及數(shù)據(jù)部分(包含將在內(nèi)存控制器202和內(nèi)存設(shè)備204之間傳輸?shù)臄?shù)據(jù))。對(duì)于讀取操作,從內(nèi)存設(shè)備204檢索讀取數(shù)據(jù)并將其提供至解密模塊216。注意,來(lái)自內(nèi)存設(shè)備204的讀取數(shù)據(jù)可為已加密的數(shù)據(jù),使得解密模塊216對(duì)已加密的數(shù)據(jù)應(yīng)用解密,以向讀取數(shù)據(jù)緩沖區(qū)218輸出已解密的讀取數(shù)據(jù),其中,讀取數(shù)據(jù)可提供至請(qǐng)求器206。內(nèi)存控制器202還包括事務(wù)地址緩沖區(qū)222,用于存儲(chǔ)與特定的事務(wù)(讀取事務(wù)或?qū)懭胧聞?wù)處理)有關(guān)的地址。地址擾碼器224對(duì)來(lái)自事務(wù)地址緩沖區(qū)222的地址應(yīng)用地址加擾。從地址擾碼器224將加擾的地址提供至地址控制和時(shí)序模塊226,該模塊通過(guò)內(nèi)存總線214的地址部分輸出加擾的地址。如在圖2中進(jìn)一步描述的,內(nèi)存控制器202包括密鑰修改器230,該密鑰修改器230可與上面和圖1關(guān)聯(lián)討論的機(jī)制類似的,修改用于形成加密密鑰的元素的長(zhǎng)度。密鑰修改器230可修改(來(lái)自密鑰存儲(chǔ)器220的)數(shù)據(jù)密鑰的長(zhǎng)度,和/或修改(未加擾的或加擾的)地址信息的長(zhǎng)度,和/或?qū)?shù)據(jù)密鑰與(未加擾的或加擾的)地址信息混合。實(shí)際上,圖2的密鑰修改器230可為圖1的長(zhǎng)度修改器130、長(zhǎng)度修改器132和混合器124中的任意一個(gè)或組合。圖3是由控制系統(tǒng)執(zhí)行的方法的流程圖。如在此使用的,控制系統(tǒng)(或相當(dāng)于“控制子系統(tǒng)”)包括處理電路,該處理電路能夠執(zhí)行預(yù)定的任務(wù)。例如,控制系統(tǒng)能夠包括以下中的任意一個(gè)或組合:圖1的存儲(chǔ)設(shè)備請(qǐng)求器102、圖1的存儲(chǔ)設(shè)備控制器104、圖2的請(qǐng)求器206和圖2的內(nèi)存控制器202??刂葡到y(tǒng)(在302)接收用作用于加密待存儲(chǔ)在存儲(chǔ)設(shè)備(例如,圖1中的106或圖2中的204)中的加密數(shù)據(jù)的加密密鑰的一部分的元素。元素可為數(shù)據(jù)密鑰和/或地址信息。(在304)修改元素的長(zhǎng)度以形成加密密鑰。此修改可由以下中的任意一個(gè)或組合執(zhí)行:長(zhǎng)度修改器130、長(zhǎng)度修改器132、混合器124和密鑰修改器230??刂葡到y(tǒng)接下來(lái)(在306)使用加密密鑰加密寫入數(shù)據(jù)。然后,(在308)提供用于在存儲(chǔ)設(shè)備中存儲(chǔ)的已加密的數(shù)據(jù)。用于實(shí)施圖3中的方法的控制系統(tǒng)可僅用硬件,或硬件和機(jī)器可讀指令的組合實(shí)施,該機(jī)器可讀指令加載于處理電路(該處理電路為圖1或2中的請(qǐng)求器102或206的一部分,或?yàn)榇鎯?chǔ)設(shè)備控制器104或內(nèi)存控制器202的一部分)上執(zhí)行。處理電路可包括微處理器、微控制器、處理器模塊或子系統(tǒng)、可編程集成電路、可編程門陣列,或另一個(gè)控制或計(jì)算設(shè)備。數(shù)據(jù)和指令存儲(chǔ)在各自的存儲(chǔ)設(shè)備中,存儲(chǔ)設(shè)備可實(shí)施作為一個(gè)或多個(gè)計(jì)算機(jī)可讀或機(jī)器可讀存儲(chǔ)媒體。存儲(chǔ)媒體包括不同形式的內(nèi)存,包括:半導(dǎo)體存儲(chǔ)設(shè)備,例如動(dòng)態(tài)或靜態(tài)隨機(jī)存取存儲(chǔ)器(DRAM或SRAM)、可擦可編程只讀存儲(chǔ)器(EPROM)、電可擦可編程只讀存儲(chǔ)器(EEPROM)以及閃存;磁盤,例如固定盤、軟盤和移動(dòng)磁盤;包括磁帶的其他磁性媒體;光學(xué)媒體,例如光盤(CD)或數(shù)碼影碟(DVD);或其他類型的存儲(chǔ)設(shè)備。注意,上面討論的指令可提供在一個(gè)計(jì)算機(jī)可讀或機(jī)器可讀存儲(chǔ)媒介上,或可替代地,可提供在多個(gè)計(jì)算機(jī)可讀或機(jī)器可讀存儲(chǔ)媒體,其分布在具有可能多個(gè)節(jié)點(diǎn)的較大系統(tǒng)中。這樣的計(jì)算機(jī)可讀或機(jī)器可讀存儲(chǔ)媒介或媒體被認(rèn)為是物品(或產(chǎn)品)的一部分。物品或產(chǎn)品可指任何制造的單個(gè)組件或多個(gè)組件。在前述描述中,提出了眾多細(xì)節(jié)以提供在此公開(kāi)的主體的理解。然而,可不具有一些或全部這些細(xì)節(jié)來(lái)實(shí)踐實(shí)施。其他實(shí)施可包括源自上面討論的細(xì)節(jié)的修改和變形。其意圖是,所附權(quán)利要求覆蓋這樣的修改和變形。
權(quán)利要求
1.一種方法,包括: 由控制系統(tǒng)接收(302)用作用于加密數(shù)據(jù)的加密密鑰的一部分的元素; 由所述控制系統(tǒng)修改(304)所述元素的長(zhǎng)度,以形成所述加密密鑰; 由所述控制系統(tǒng)使用所述加密密鑰加密(306)數(shù)據(jù);以及 由所述控制系統(tǒng)提供(308)用于在存儲(chǔ)設(shè)備中存儲(chǔ)的已加密的數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其中,接收所述元素包括接收數(shù)據(jù)密鑰,并且其中,修改所述數(shù)據(jù)密鑰的長(zhǎng)度包括向所述數(shù)據(jù)密鑰添加位或從所述數(shù)據(jù)密鑰去除位。
3.如權(quán)利要求2所述的方法,其中,修改所述數(shù)據(jù)密鑰的長(zhǎng)度包括將所述數(shù)據(jù)密鑰與地址信息組合,以形成所述加密密鑰。
4.如權(quán)利要求3所述的方法,其中,將所述數(shù)據(jù)密鑰與所述地址信息組合包括將所述數(shù)據(jù)密鑰與(I)物理地址的至少一部分和(2)虛擬地址的至少一部分中的一個(gè)組合,所述物理地址指明所述存儲(chǔ)設(shè)備的位置,所述虛擬地址用于訪問(wèn)所述存儲(chǔ)設(shè)備的內(nèi)容。
5.如權(quán)利要求2所述的方法,其中,所述數(shù)據(jù)密鑰是第一數(shù)據(jù)密鑰,所述方法進(jìn)一步包括: 生成至少另一個(gè)數(shù)據(jù)密鑰;以及 對(duì)第一數(shù)據(jù)密鑰和所述至少另一個(gè)數(shù)據(jù)密鑰應(yīng)用一種函數(shù),以形成所述加密密鑰。
6.如權(quán)利要求5所 述的方法,其中,應(yīng)用所述函數(shù)包括從以下選擇的至少一項(xiàng): 將所述第一數(shù)據(jù)密鑰和所述至少另一個(gè)數(shù)據(jù)密鑰連接在一起; 將所述第一數(shù)據(jù)密鑰與所述至少另一個(gè)數(shù)據(jù)密鑰相乘; 對(duì)所述第一數(shù)據(jù)密鑰和所述至少另一個(gè)數(shù)據(jù)密鑰應(yīng)用哈希函數(shù); 使用基于所述第一數(shù)據(jù)密鑰和所述至少另一個(gè)數(shù)據(jù)密鑰的查找表。
7.如權(quán)利要求5所述的方法,其中,對(duì)所述第一數(shù)據(jù)密鑰和所述至少另一個(gè)數(shù)據(jù)密鑰應(yīng)用所述函數(shù)產(chǎn)生輸出,所述方法進(jìn)一步包括將所述函數(shù)的所述輸出與地址信息組合,以形成所述加密密鑰。
8.如權(quán)利要求1所述的方法,其中,修改所述元素的所述長(zhǎng)度包括對(duì)所述元素應(yīng)用修改算法,以生成所述加密密鑰。
9.如權(quán)利要求1所述的方法,其中,接收所述元素包括接收數(shù)據(jù)密鑰,其中,修改所述元素的所述長(zhǎng)度包括將所述數(shù)據(jù)密鑰與地址信息組合,并且其中,所述地址信息具有與所述數(shù)據(jù)密鑰不同的長(zhǎng)度,所述方法進(jìn)一步包括: 修改所述地址信息的長(zhǎng)度;并且 其中,將所述數(shù)據(jù)密鑰與所述地址信息組合包括將所述數(shù)據(jù)密鑰與所述修改的地址信息組合。
10.如權(quán)利要求1所述的方法,其中,接收所述元素包括接收數(shù)據(jù)密鑰,其中,修改所述元素的所述長(zhǎng)度包括將所述數(shù)據(jù)密鑰與地址信息組合,并且其中,所述地址信息是基于所述物理地址的至少一部分或所述虛擬地址的至少一部分的。
11.如權(quán)利要求10所述的方法,其中,所述數(shù)據(jù)密鑰的長(zhǎng)度與所述地址信息的長(zhǎng)度不同,所述方法進(jìn)一步包括: 改變所述數(shù)據(jù)密鑰的長(zhǎng)度;并且 其中,將所述數(shù)據(jù)密鑰與所述地址信息組合包括將具有已改變的長(zhǎng)度的所述數(shù)據(jù)密鑰與所述地址信息組合。
12.如權(quán)利要求10所述的方法,其中,所述地址信息是基于對(duì)所述物理地址的至少一部分或所述虛擬地址的至少一部分應(yīng)用函數(shù)的,其中,所述函數(shù)包括哈希函數(shù)、表查找以及乘法函數(shù)。
13.一種物品,包括存儲(chǔ)指令的機(jī)器可讀存儲(chǔ)媒體,所述指令執(zhí)行時(shí)引起具有處理器的系統(tǒng)執(zhí)行根據(jù)權(quán)利要求1-12中任一項(xiàng)的方法。
14.一種系統(tǒng),包括: 至少一個(gè)存儲(chǔ)設(shè)備(106、204);以及 控制子系統(tǒng)(102、104、202、206),用于: 接收至少一個(gè)數(shù)據(jù)密鑰; 根據(jù)所述至少一個(gè)數(shù)據(jù)密鑰產(chǎn)生加密密鑰,其中,所述加密密鑰的產(chǎn)生包含修改用于形成所述加密密鑰的元素的長(zhǎng)度;及 使用所述加密密鑰加密待存儲(chǔ)在所述至少一個(gè)存儲(chǔ)設(shè)備中的數(shù)據(jù)。
15.如權(quán)利要求14所述的系統(tǒng),其中,所述元素包括所述至少一個(gè)數(shù)據(jù)密鑰和待與所述至少一個(gè)數(shù)據(jù)密鑰混合 的地址信息中的一個(gè)或二者。
全文摘要
修改作為用于加密數(shù)據(jù)的加密密鑰的一部分的元素的長(zhǎng)度。使用加密密鑰加密數(shù)據(jù),并且提供用于在存儲(chǔ)設(shè)備(106、204)中存儲(chǔ)的已加密的數(shù)據(jù)。
文檔編號(hào)H04L9/08GK103154967SQ201080069447
公開(kāi)日2013年6月12日 申請(qǐng)日期2010年10月5日 優(yōu)先權(quán)日2010年10月5日
發(fā)明者克雷格·A·沃爾拉思 申請(qǐng)人:惠普發(fā)展公司,有限責(zé)任合伙企業(yè)