国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于保護(hù)動(dòng)態(tài)隨機(jī)訪問存儲器的方法和設(shè)備與流程

      文檔序號:12824662閱讀:297來源:國知局
      用于保護(hù)動(dòng)態(tài)隨機(jī)訪問存儲器的方法和設(shè)備與流程

      本發(fā)明涉及動(dòng)態(tài)隨機(jī)訪問存儲器,并且更具體地,但不限于用于保護(hù)動(dòng)態(tài)隨機(jī)訪問存儲器的方法和設(shè)備。



      背景技術(shù):

      由于現(xiàn)有的機(jī)頂盒(stb)芯片在安全方面的不足,用戶不付費(fèi)觀看限制的節(jié)目是很常見的,甚至用戶的密碼被盜也頻頻出現(xiàn)。為了保護(hù)運(yùn)營商、機(jī)頂盒制造商以及用戶的利益,需要從芯片設(shè)計(jì)階段就考慮提高產(chǎn)品的安全性能。因此,具有高級安全特性的數(shù)字電視芯片應(yīng)運(yùn)而生。

      然而,也有一些方法來擺脫或規(guī)避高級安全特性。其一是在dram接口上檢測dram的數(shù)據(jù)訪問,從而獲得用戶的密碼和其他關(guān)鍵性的安全數(shù)據(jù)。其二是在用戶安裝的軟件中嵌入程序直接從dram獲取并導(dǎo)出安全數(shù)據(jù)(例如用戶密碼、受版權(quán)保護(hù)的明文節(jié)目等)。因此,希望提供方法來處理這個(gè)問題。

      概述

      本發(fā)明的實(shí)施方式公開了一種用于動(dòng)態(tài)隨機(jī)訪問存儲器(dram)保護(hù)的方法,包括:分別分配地址空間用于第一普通區(qū)域、第二普通區(qū)域、第一安全區(qū)域和第二安全區(qū)域;檢測普通數(shù)據(jù)是否具有用于該第一安全區(qū)域的該地址空間內(nèi)的地址;如果該普通數(shù)據(jù)具有用于該第一安全區(qū)域的該地址空間內(nèi)的地址,則輸出數(shù)字信號,指示重映射該普通數(shù)據(jù)的地址到用于該第二普通區(qū)域的該地址空間;檢測安全數(shù)據(jù)是否具有用于該第一普通區(qū)域的該地址空間內(nèi)的地址;如果該安全數(shù)據(jù)具有用于該第一普通區(qū)域的該地址空間內(nèi)的該地址,則輸出數(shù)字信號,指示重映射該安全數(shù)據(jù)的地址到用于該第二安全區(qū)域的該地址空間。

      可選地,該方法還包括生成隨機(jī)密鑰;通過置換原始dram寫數(shù)據(jù)的位的順序,生成更新的寫數(shù)據(jù);通過對使用的所生成的隨機(jī)密鑰與所述更新的寫數(shù)據(jù)執(zhí)行函數(shù),生成加密的數(shù)據(jù);以及當(dāng)不存在任何訪問所述dram的請求時(shí),根據(jù)時(shí)刻動(dòng)態(tài)地更新所使用的隨機(jī)密鑰。

      可選地,該方法還包括方法,還包括通過使用隨機(jī)密鑰在讀數(shù)據(jù)上執(zhí)行逆函數(shù),生成解密的讀數(shù)據(jù);通過反置換所解密的數(shù)據(jù)的位的順序,生成明文讀數(shù)據(jù)。

      本發(fā)明的另一實(shí)施方式公開了一種用于動(dòng)態(tài)隨機(jī)訪問存儲器(dram)保護(hù)的設(shè)備,包括:分配電路,其被配置為分別分配地址空間用于第一普通區(qū)域、第二普通區(qū)域、第一安全區(qū)域和第二安全區(qū)域;檢測器,其被配置為檢測普通數(shù)據(jù)是否具有用于該第一安全區(qū)域的該地址空間內(nèi)的地址;重映射電路,其被配置為如果該普通數(shù)據(jù)具有用于該第一安全區(qū)域的該地址空間內(nèi)的地址,則重映射該普通數(shù)據(jù)的地址到用于該第二普通區(qū)域的該地址空間;該檢測器進(jìn)一步被配置為檢測安全數(shù)據(jù)是否具有用于該第一普通區(qū)域的該地址空間內(nèi)的地址;該重映射電路被進(jìn)一步配置為如果該安全數(shù)據(jù)具有用于該第一普通區(qū)域的該地址空間內(nèi)的地址,則重映射該安全數(shù)據(jù)的地址到用于該第二安全區(qū)域的該地址空間。

      可選地,用于dram保護(hù)的設(shè)備還包括密鑰生成器,其被配置為生成隨機(jī)密鑰;第一數(shù)據(jù)生成器,其被配置為通過置換原始dram寫數(shù)據(jù)的位的順序,生成更新的寫數(shù)據(jù);所述數(shù)據(jù)生成器進(jìn)一步被配置為通過對使用的所生成的隨機(jī)密鑰與所述更新的寫數(shù)據(jù)執(zhí)行函數(shù),生成加密的數(shù)據(jù);以及第一更新電路,其被配置為當(dāng)不存在任何訪問所述dram的請求時(shí),根據(jù)時(shí)刻動(dòng)態(tài)地更新所使用的隨機(jī)密鑰。

      可選地,用于dram保護(hù)的設(shè)備還包括密鑰生成器,第二數(shù)據(jù)生成器,其被配置為通過使用隨機(jī)密鑰在讀數(shù)據(jù)上執(zhí)行逆函數(shù),生成解密的讀數(shù)據(jù);所述第二數(shù)據(jù)生成器進(jìn)一步被配置為通過反置換所解密的數(shù)據(jù)的位的順序,生成明文讀數(shù)據(jù)。

      附圖說明

      本發(fā)明通過所附的附圖用示例形式展示。附圖應(yīng)當(dāng)被理解為作為示例而非限制,因?yàn)楸景l(fā)明的范圍是由權(quán)利要求所限定的。在附圖中,相同的附圖標(biāo)記代表相同的元件。

      圖1示出了根據(jù)本發(fā)明的實(shí)施方式的包括動(dòng)態(tài)隨機(jī)訪問存儲器(dram)的保護(hù)電路的系統(tǒng)的視圖。

      圖2示出了根據(jù)本發(fā)明的實(shí)施方式的地址重映射的視圖。

      圖3示出了根據(jù)本發(fā)明的實(shí)施方式的用于動(dòng)態(tài)隨機(jī)訪問存儲器(dram)的保護(hù)的方法300的流程圖。

      圖4是根據(jù)本發(fā)明的實(shí)施方式的地址映射表的視圖。

      圖5示出了根據(jù)本發(fā)明的實(shí)施方式的用于dram保護(hù)的設(shè)備500的框圖。

      圖6示出了根據(jù)本發(fā)明的實(shí)施方式的數(shù)據(jù)加密算法電路的數(shù)據(jù)流的視圖。

      圖7示出了根據(jù)本發(fā)明的實(shí)施方式的用于數(shù)據(jù)加密的電路的框圖。

      圖8示出了根據(jù)本發(fā)明的實(shí)施方式的隨機(jī)密鑰的動(dòng)態(tài)更新的方法的視圖。

      圖9示出了根據(jù)本發(fā)明另一實(shí)施方式的用于dram密鑰的動(dòng)態(tài)更新的時(shí)序的視圖。

      圖10示出了根據(jù)本發(fā)明的實(shí)施方式的解密的方法的流程圖。

      具體實(shí)施例

      本發(fā)明的各種方面和示例現(xiàn)在將被描述。下面的描述提供了具體的細(xì)節(jié)以透徹理解并有利于這些示例的描述。然而,本領(lǐng)域技術(shù)人員將理解,本發(fā)明可以在沒有許多這些細(xì)節(jié)的情況下實(shí)施。此外,某些眾所周知的結(jié)構(gòu)或功能可能不會被詳細(xì)示出或描述,以避免不必要地模糊相關(guān)描述。

      圖1示出了根據(jù)本發(fā)明的實(shí)施方式的包括動(dòng)態(tài)隨機(jī)訪問存儲器(dram)的保護(hù)電路110的系統(tǒng)的視圖。該系統(tǒng)100包括dram保護(hù)電路110或也稱為dram_prot110、axi仲裁器120,以及雙數(shù)據(jù)速率控制器(ddrc或ddr)130。axi仲裁器120是被用于共享的存儲器系統(tǒng)中的設(shè)備,用于為每個(gè)存儲器周期決定,哪個(gè)主機(jī)(master)將被允許訪問該共享的存儲器。請注意,主機(jī)可以包括處理核、視頻解碼器和訪問共享的存儲器的其它模塊。該dram_prot110位于axi仲裁器120和ddrc130之間。該axi仲裁器120可以通過使用axislave(從或附屬)接口與dram_prot110可通信地耦接。axi總線在axi標(biāo)準(zhǔn)中被定義,其的描述可以被省略,以避免不必要地模糊本發(fā)明的范圍。ddrc130可以通過使用aximaster(主)接口與dram_prot110可通信地耦接。整個(gè)系統(tǒng)實(shí)現(xiàn)了對dram數(shù)據(jù)的保護(hù)功能。dram_prot110可分為訪問控制電路(簡稱為dram_ac112)和數(shù)據(jù)加密電路(簡稱為dram_denc114),這兩者都被顯示為虛線框。

      dram_ac112分為地址重映射電路1120和訪問控制電路1122。地址重映射電路1120根據(jù)配置映射表實(shí)現(xiàn)從rcom0到rsec1以及從rsec0到rcom1的地址轉(zhuǎn)換,以兼容不同軟件的地址空間方案。訪問控制電路1122針對不同的訪問設(shè)備控制對普通區(qū)域/安全區(qū)域的訪問,以濾除未經(jīng)授權(quán)的訪問。本發(fā)明的實(shí)施方式涉及的配置信息能夠由可信任的處理核140進(jìn)行訪問,并且拒絕來自公共處理核150對配置信息的訪問請求??尚湃蔚奶幚砗?40被設(shè)計(jì)為執(zhí)行安全相關(guān)的代碼,其安全性通常被慎重考慮。此外,常見的第三方軟件是不允許在可信任的處理核140上運(yùn)行的(除了安全相關(guān)的第三方軟件,如銀行客戶端等)。注意,開放的產(chǎn)品(例如,基于安卓操作系統(tǒng))將允許客戶端安裝各種第三方軟件應(yīng)用,其通常在公共處理核150上運(yùn)行。因此,在可信任的處理核140運(yùn)行的過程中,在存儲器中生成的安全數(shù)據(jù)需要被保護(hù),并且不能被公共處理核150隨意地訪問。這些安全數(shù)據(jù)包括明文形式的音頻和視頻數(shù)據(jù)、由安全軟件(銀行的客戶端軟件,等等)生成的中間數(shù)據(jù)等等。dram訪問設(shè)備包括axi接口上的axi主機(jī),其啟動(dòng)在系統(tǒng)中的傳輸。根據(jù)本發(fā)明的實(shí)施方式,每個(gè)dram訪問設(shè)備具有唯一的awid/arid。awid表示寫地址id。這個(gè)信號是用于寫址組的信號的識別標(biāo)記。此外,arid是讀取地址的id。此信號是用于讀地址組的信號的識別標(biāo)記。(注:awid/arid/awprot/arprot都是axi協(xié)議信號。awprot/arprot的細(xì)節(jié)將在以下進(jìn)行討論)。

      圖2示出了根據(jù)本發(fā)明的實(shí)施方式的地址重映射的視圖。

      根據(jù)圖2,地址重映射電路1120的工作原理是:地址重映射電路1120配置,第一安全區(qū)域rsec0,第一普通區(qū)域rcom0,第二安全區(qū)域rsec1和第二普通區(qū)域rcom1。第一安全區(qū)域rsec0還可以被稱為基本安全區(qū)域。第一普通區(qū)域rcom0還可以被稱為基本普通區(qū)域。第二安全區(qū)域rsec1也可以被稱為補(bǔ)充(supplement)安全區(qū)域。第二普通區(qū)域rcom1也可以被稱為補(bǔ)充普通區(qū)域。

      配置映射表將原有落于rsec0地址空間的普通數(shù)據(jù)的地址重映射到rcom1地址空間。類似地,配置映射表將原落于rcom0地址空間的安全數(shù)據(jù)的地址重映射到rsec1地址空間,如圖2所示。注意,圖2還顯示在第一普通區(qū)域rcom0中的普通數(shù)據(jù)沒有被重映射,因?yàn)樵撈胀〝?shù)據(jù)已經(jīng)在正確的地址空間內(nèi),也即該普通數(shù)據(jù)被保持在原有的地址空間中。類似地,在第一安全區(qū)域rsec0中的安全數(shù)據(jù)未被重映射,因?yàn)樵摪踩珨?shù)據(jù)已經(jīng)在正確的地址空間內(nèi),也即該普通數(shù)據(jù)被保持在原有的地址空間中。

      圖3示出了用于動(dòng)態(tài)隨機(jī)訪問存儲器(dram)的保護(hù)的方法300的流程圖。該方法300包括在框310分別為第一普通區(qū)域rcom0、第二普通區(qū)域rcom1、第一安全區(qū)域rsec0和第二安全區(qū)域rsec1分配地址空間,如圖2中所示;并在框320,檢測普通數(shù)據(jù)或安全數(shù)據(jù)是否被獲得。

      當(dāng)獲得普通數(shù)據(jù)時(shí),方法300還包括在框330檢測該獲得的普通數(shù)據(jù)是否具有用于第一安全區(qū)域的地址空間內(nèi)的地址,并在框340,如果普通數(shù)據(jù)具有用于第一安全區(qū)域的在地址空間內(nèi)的地址,則輸出數(shù)字信號,指示重映射普通數(shù)據(jù)的地址到用于第二普通區(qū)域的地址空間。

      當(dāng)獲得安全數(shù)據(jù)時(shí),方法300還包括在框350,檢測該獲得的安全數(shù)據(jù)是否具有用于第一普通區(qū)域的地址空間內(nèi)的地址;并在框360,如果安全數(shù)據(jù)具有用于第一普通區(qū)域的地址空間內(nèi)的地址,則輸出數(shù)字信號,指示重映射安全數(shù)據(jù)的地址到用于第二安全區(qū)域的地址空間。

      該方法300根據(jù)axi協(xié)議信號,例如,awprot或arprot信號,確定數(shù)據(jù)是安全數(shù)據(jù)還是普通數(shù)據(jù),如將相對于圖4和以下的權(quán)限表1對細(xì)節(jié)進(jìn)行進(jìn)一步的討論。表1示出了訪問控制表。其中位對應(yīng)于在配置信息中的對應(yīng)位。

      以寫數(shù)據(jù)作為示例,例如,方法300首先檢測awid,如圖4所示。awid被用于識別發(fā)起該傳輸?shù)脑O(shè)備。每對awid/arid都有相應(yīng)的權(quán)限表1。注意,awid和arid是配對的。為了便于理解,該awid被首先討論。

      例如,首先討論寫操作。方法300首先檢測awid=0。例如,下面的權(quán)限表1對應(yīng)于awid=0。然后,該方法300使用以下權(quán)限表1和區(qū)域(rcom0,rcom1,rsec0,rsec1)以確定傳輸?shù)念愋鸵约皞鬏斒欠窨梢赃M(jìn)行。如果根據(jù)權(quán)限表傳輸是允許的,那么傳輸是可以進(jìn)行的。換言之,數(shù)據(jù)允許被寫入ddr130。如果該傳輸是禁止的,那么該傳輸是不可以進(jìn)行的。換句話說,數(shù)據(jù)不允許被寫入ddr130。注意,awid和awprot都是位于傳輸?shù)拿畈糠郑?yīng)于數(shù)據(jù)。該對應(yīng)關(guān)系是由axi協(xié)議保證的。

      在另一示例中,讀操作被討論。方法300首先檢測arid=0。例如,下面的權(quán)限表1對應(yīng)于arid=0。然后,該方法300使用以下權(quán)限表1和區(qū)域(rcom0,rcom1,rsec0,rse1)以確定傳輸?shù)念愋鸵约皞鬏斒欠窨梢赃M(jìn)行。如果根據(jù)權(quán)限表傳輸是允許的,那么傳輸是可以進(jìn)行的。換言之,設(shè)備被允許從ddr130讀取數(shù)據(jù)。如果該傳輸是禁止的,那么該傳輸是不可以進(jìn)行的。換句話說,設(shè)備不被允許從ddr130讀取數(shù)據(jù)。注意,awid和awprot都是位于傳輸?shù)拿畈糠?,并對?yīng)于數(shù)據(jù)。該對應(yīng)關(guān)系是由axi協(xié)議保證的。注意,根據(jù)權(quán)限表1,awprot/arprot表示數(shù)據(jù)是否是普通數(shù)據(jù)或安全數(shù)據(jù)。

      權(quán)限表1

      如權(quán)限表1中所示,以位[0](bit[0])作為一示例,當(dāng)位[0]等于1時(shí),表示允許awprot=0的寫操作。否則,當(dāng)位[0]等于0時(shí),表示禁止awprot=0的寫操作。以位[7]作為另一個(gè)示例,當(dāng)位[7]等于1時(shí),表示允許arprot=1的讀操作。當(dāng)位[7]為0時(shí),表示禁止arprot=1的讀操作。注意,位信息被存儲在配置信息中。注意,權(quán)限表1僅是為了說明目的。那些本領(lǐng)域技術(shù)人員可用不同的數(shù)字、順序或組合來配置訪問控制表,這都是在本發(fā)明的實(shí)施方式的范圍之內(nèi)。

      寫數(shù)據(jù)被作為一示例以進(jìn)一步說明權(quán)限表1。例如,在當(dāng)前寫入的數(shù)據(jù)具有awprot=0時(shí),這意味著當(dāng)前寫入的數(shù)據(jù)包括安全數(shù)據(jù)。然后在權(quán)限表1中的位[0]被用于確定當(dāng)前的傳輸是否允許數(shù)據(jù)被寫入到rcom0/rcom1。此外,在權(quán)限表1中的位[4]被用于確定當(dāng)前的傳輸是否允許數(shù)據(jù)被寫到rsec0/rsec1。

      圖4是根據(jù)本發(fā)明的一實(shí)施方式的地址映射表視圖。

      地址映射表結(jié)構(gòu)示于圖4,它包括兩個(gè)表:重映射表0和重映射表1。使用兩個(gè)表的優(yōu)點(diǎn)在于允許動(dòng)態(tài)地更新映射關(guān)系。當(dāng)不存在傳輸時(shí),地址重映射電路1120更新當(dāng)前使用的重映射表。每個(gè)重映射表包括16組映射信息,并且信息的每個(gè)組包括addr_h、addr_l和偏移(offset)。addr_h和addr_l定義地址的一個(gè)范圍。當(dāng)?shù)刂分赜成潆娐?120檢測到訪問地址(addr)落于addr_h和addr_l之間時(shí),地址重映射電路1120將訪問地址addr替換為addr+offset。以這種方式,最初位于第一安全區(qū)域內(nèi)的地址空間中的普通數(shù)據(jù)已被重映射到用于第二普通區(qū)域的地址空間內(nèi)的地址??商娲?,最初位于第一普通區(qū)域內(nèi)的地址空間中的安全數(shù)據(jù)已被重映射到用于第二安全區(qū)域的地址空間內(nèi)的地址。請注意,雖然圖4示出了兩套重映射表,即重映射表0和重映射表1,但本發(fā)明的實(shí)施方式可以只用一個(gè)重映射表來實(shí)現(xiàn)。

      地址重映射電路1120允許對每個(gè)設(shè)備的不同的傳輸類型設(shè)置不同的或相同的重映射使能選項(xiàng)。該重映射使能選項(xiàng)如圖4所示,其具有值0或1。1可表示使能選項(xiàng)是開啟的,換言之,該設(shè)備允許重映射地址。0可表示使能選項(xiàng)是關(guān)閉的,換言之,該設(shè)備禁止重映射地址??商娲兀绢I(lǐng)域技術(shù)人員可以交換0和1的含義。當(dāng)不需要重映射時(shí),該使能選項(xiàng)被關(guān)閉,換句話說,該設(shè)備禁止重映射地址,以最大化傳輸效率。

      例如,雖然沒有在圖3中示出,方法300還可以包括確定設(shè)備是否被允許重映射地址;如果設(shè)備不允許重映射地址,則保留設(shè)備要訪問的普通數(shù)據(jù)的原始地址或安全數(shù)據(jù)的原始地址;如果該設(shè)備允許重映射地址,如果普通數(shù)據(jù)具有用于第一安全區(qū)域的地址空間內(nèi)的地址,則重映射普通數(shù)據(jù)的地址到用于第二普通區(qū)域的地址空間;或如果安全數(shù)據(jù)具有用于第一普通區(qū)域的地址空間內(nèi)的地址,則重映射安全數(shù)據(jù)的地址到用于第二安全區(qū)域的地址空間。

      可替代地,方法300進(jìn)一步包括保持第一重映射表和第二重映射表,用于普通數(shù)據(jù)的地址到用于第二安全區(qū)域的地址空間之間的第一映射,以及安全數(shù)據(jù)的地址到用于第二普通區(qū)域的地址空間之間的第二映射。第一重映射表當(dāng)前正被使用,并且第二重映射表是空閑的。方法300還包括用更新的第一映射和第二重映射以更新第二重映射表;當(dāng)更新第一重映射表且第二重映射表的更新完成時(shí),直接使用第二重映射表。使用兩個(gè)重映射表的優(yōu)點(diǎn),例如,在圖4中所示的重映射表0和重映射表1,是允許重映射表的動(dòng)態(tài)更新,而不會生成可能影響地址的重映射的中間無效值。

      重映射表可根據(jù)地址的順序安排映射信息,例如,按升序或降序排列。地址重映射電路1120采用二進(jìn)制搜索方法來定位地址,以便增加檢索效率。

      例如,雖然沒有在圖3中示出,方法300可以進(jìn)一步包括檢測普通數(shù)據(jù)是否具有用于第一安全區(qū)域的地址空間內(nèi)的地址,或檢測安全數(shù)據(jù)是否具有用于第一普通區(qū)域的地址空間內(nèi)的地址是通過使用二進(jìn)制搜索來實(shí)現(xiàn)的。

      返回參考權(quán)限表1和圖4,該awprot或arprot等于0(也表示為awprot/arprot=0)表示該數(shù)據(jù)是安全數(shù)據(jù),并且awprot或arprot等于1(也表示為awprot/arprot=1)表示該數(shù)據(jù)是普通數(shù)據(jù)。

      可替代地,返回參考權(quán)限表1,訪問控制電路1122基于授權(quán)配置信息針對dram訪問設(shè)備的不同的傳輸類型進(jìn)行傳輸控制。rsec0/rsec1/rcom0/rcom1的邊界劃分通過寄存器進(jìn)行設(shè)定。該組寄存器是由可信任的處理核進(jìn)行配置的。rsec0和rsec1具有相同的授權(quán),并且rcom0和rcom1具有相同的授權(quán)。訪問控制電路1122根據(jù)awid/arid識別不同的dram訪問設(shè)備,并根據(jù)awprot/arprot識別不同的傳輸類型(注:awprot表示寫地址信道保護(hù)位(writeaddresschanne1protectionbits),以及arprot表示讀地址信道保護(hù)位(readaddresschanne1protectionbits))。每一個(gè)dram訪問設(shè)備具有一套如權(quán)限表1所示的相應(yīng)的配置信息。訪問控制電路1122根據(jù)該配置信息執(zhí)行傳輸控制。當(dāng)來自dram訪問設(shè)備的請求是非法寫操作時(shí),訪問控制電路1122將拒絕寫入數(shù)據(jù);或當(dāng)來自dram訪問設(shè)備的請求是無效的讀操作時(shí),訪問控制電路1122將返回零。

      例如,雖然沒有在圖3中示出,方法300進(jìn)一步包括為訪問地址的設(shè)備配置設(shè)備id和傳輸類型;并且通過與授權(quán)表比較,根據(jù)傳輸?shù)念愋秃驮O(shè)備id,確定設(shè)備是否被允許訪問該地址。

      圖5示出了根據(jù)本發(fā)明的實(shí)施方式的用于dram保護(hù)的設(shè)備500的框圖。設(shè)備500包括分配電路510、檢測器520和重映射電路530。該分配電路510分別分配地址空間用于第一普通區(qū)域、第二普通區(qū)域、第一安全區(qū)域和第二安全區(qū)域。檢測器520檢測普通數(shù)據(jù)是否具有用于第一安全區(qū)域的地址空間內(nèi)的地址。如果普通數(shù)據(jù)具有用于第一安全區(qū)域中的地址空間內(nèi)的地址,則重映射電路530重映射普通數(shù)據(jù)的地址到用于第二普通區(qū)域的地址空間。檢測器520進(jìn)一步檢測安全數(shù)據(jù)是否具有用于第一普通區(qū)域的地址空間內(nèi)的地址。如果安全數(shù)據(jù)具有用于第一普通區(qū)域的地址空間內(nèi)的地址,重映射電路530進(jìn)一步重映射安全數(shù)據(jù)的地址到用于第二安全區(qū)域的地址空間。在另一個(gè)實(shí)施例中,檢測器520可以確定安全數(shù)據(jù)或普通數(shù)據(jù)的地址是否需要被重映射,并將重映射確定結(jié)果以數(shù)字信號的形式輸出至重映射電路530。然后,重映射電路530根據(jù)檢測器520的輸出進(jìn)行相應(yīng)的重映射操作。

      可選地,設(shè)備500還包括在圖5中未示出的判定電路。該判定電路確定訪問普通數(shù)據(jù)或安全數(shù)據(jù)的設(shè)備是否是被允許重映射地址。重映射電路530被進(jìn)一步配置為,如果設(shè)備未被允許重映射地址,則保持普通數(shù)據(jù)的原始地址或安全數(shù)據(jù)的原始地址;如果設(shè)備被允許重映射地址,且如果該普通數(shù)據(jù)具有用于第一安全區(qū)域的地址空間內(nèi)的地址,則重映射電路530進(jìn)一步被配置為重映射普通數(shù)據(jù)的地址到用于第二普通區(qū)域的地址空間;或如果該安全數(shù)據(jù)具有用于第一普通區(qū)域的地址空間內(nèi)的地址,則重映射安全數(shù)據(jù)的地址到用于第二安全區(qū)域的地址空間。

      可替代地,檢測器520檢測普通數(shù)據(jù)是否具有用于第一安全區(qū)域的地址空間內(nèi)的地址或檢測安全數(shù)據(jù)是否具有用于第一普通區(qū)域的地址空間內(nèi)的地址是通過使用二進(jìn)制搜索實(shí)現(xiàn)的。

      可替代地,分配電路510還被配置為為訪問地址的設(shè)備配置設(shè)備id和傳輸類型;并且判定電路還進(jìn)一步被配置為通過與授權(quán)表比較,根據(jù)傳輸類型和設(shè)備id,確定設(shè)備是否被允許訪問地址。

      可替代地,重映射電路530被進(jìn)一步配置為保持第一重映射表和第二重映射表,其每一個(gè)均用于普通數(shù)據(jù)的地址到用于第二安全區(qū)域的地址空間之間的第一映射,以及安全數(shù)據(jù)的地址到用于第二普通區(qū)域的地址空間之間的第二映射;其中第一重映射表是當(dāng)前正被使用的,并且第二重映射表是空閑;使用更新的第一映射和第二映射以更新第二重映射表;以及當(dāng)?shù)谝挥成浜偷诙成涞母峦瓿蓵r(shí),直接使用第二重映射表。

      通過將重映射電路530引入到本發(fā)明的實(shí)施方式中,在不同的軟件地址空間分配之間的映射機(jī)制被引入。該映射電路530幫助軟件完成從邏輯地址到底層普通區(qū)域和安全區(qū)域的軟件可見的映射。在這種情況下,軟件只需維持不同產(chǎn)品的映射,并且對原始的軟件代碼結(jié)構(gòu)僅需要很少甚至沒有變化。此外,根據(jù)本發(fā)明的實(shí)施方式的地址映射方法與不同的軟件程序地址空間的地址重映射方式相兼容。

      圖6示出了根據(jù)本發(fā)明的實(shí)施方式的數(shù)據(jù)加密的數(shù)據(jù)流的視圖。數(shù)據(jù)加密的數(shù)據(jù)流將參考圖1和圖7詳細(xì)地被討論。

      返回參考圖1,dram_denc114實(shí)現(xiàn)了dram數(shù)據(jù)加密和解密功能。dram_denc114主要分為數(shù)據(jù)加密電路1142和dram_key動(dòng)態(tài)更新電路1144。數(shù)據(jù)加密電路1144使用例如,64位密鑰對寫入dram的數(shù)據(jù)進(jìn)行加密,并且對從dram讀出的數(shù)據(jù)進(jìn)行解密。該加密算法易于soc(片上系統(tǒng))來實(shí)現(xiàn),并且不影響dram訪問效率。動(dòng)態(tài)更新電路1144允許在系統(tǒng)操作過程中使用n個(gè)dram加密密鑰,以及允許密鑰更新,從而大大提高系統(tǒng)的安全性。

      圖7示出了用于數(shù)據(jù)加密的電路的框圖。如圖7所示,用于數(shù)據(jù)加密的電路700主要包括密鑰生成器710、數(shù)據(jù)生成器720和更新電路730。該密鑰生成器710被配置為生成隨機(jī)密鑰。該數(shù)據(jù)生成器720被配置為通過置換原始的dram寫數(shù)據(jù)的位的順序,生成更新的寫數(shù)據(jù)。數(shù)據(jù)生成器710進(jìn)一步通過對所生成的隨機(jī)密鑰與更新的寫數(shù)據(jù)執(zhí)行函數(shù)以進(jìn)一步生成加密的數(shù)據(jù)。當(dāng)不存訪問dram的任何請求時(shí),更新的電路730根據(jù)時(shí)刻動(dòng)態(tài)地更新所生成的隨機(jī)密鑰。

      密鑰生成器710可以包括,例如,隨機(jī)數(shù)生成器。數(shù)據(jù)生成器720可通過位置換單元(也稱為比特置換單元)來實(shí)現(xiàn)。數(shù)據(jù)生成器720還可以進(jìn)一步包括可逆函數(shù)f(x)單元,使用由隨機(jī)數(shù)生成器產(chǎn)生的64位密鑰作為輸入。該算法相較于高級加密標(biāo)準(zhǔn)(aes)、三重?cái)?shù)據(jù)加密標(biāo)準(zhǔn)(tdes)算法更易于soc實(shí)現(xiàn),而不會造成對dram傳輸效率的損失。通過隨機(jī)數(shù)生成器的引入,相同的數(shù)據(jù)將具有用于不同芯片的不同加密結(jié)果,不同的芯片將具有不同的加密結(jié)果,并且當(dāng)芯片在不同的時(shí)刻被啟動(dòng)時(shí),每個(gè)芯片將具有不同的加密結(jié)果,這會大大增強(qiáng)數(shù)據(jù)的安全性。

      具體來說,例如,密鑰生成器710產(chǎn)生64位dram保護(hù)密鑰(dram_key)。該密鑰值在每次上電時(shí)是不同的,并且密鑰值對于芯片是唯一的。dram_key是保密的,這不能夠由公共處理核讀取。注意,雖然根據(jù)本發(fā)明的實(shí)施方式,dram的密鑰是64位的,本領(lǐng)域技術(shù)人員可以使用其他位的dram密鑰。

      數(shù)據(jù)生成器720可以置換原始寫數(shù)據(jù)wdata,從而生成新的寫數(shù)據(jù)wdata′。例如,數(shù)據(jù)生成器720可執(zhí)行對dram訪問的單個(gè)傳輸?shù)淖止?jié)內(nèi)的位置換??商娲?,在64位數(shù)據(jù)內(nèi)的每個(gè)字節(jié)使用不同于在相同的64位數(shù)據(jù)內(nèi)的其它字節(jié)的唯一的置換方法。例如,如圖6中所示,第一字節(jié)(即,位[0]-位[7])使用不同于第八字節(jié)(即,位[56]-位[63])使用的置換方法,如圖6所示,置換是基于位單元的??商娲?,置換可以是以二位為基礎(chǔ),或者以字節(jié)為基礎(chǔ)等。

      該數(shù)據(jù)生成器720可以進(jìn)一步使用64位dram密鑰和wdata′來執(zhí)行f(x)函數(shù),以便生成最終的加密數(shù)據(jù)。f(x)函數(shù)可以是任何可逆函數(shù),被饋以64位密鑰,諸如異或(xor)操作。例如,最終加密數(shù)據(jù)可以通過以下運(yùn)算生成:

      由于dram訪問對訪問效率非常敏感,一方面,它不可能使用復(fù)雜的數(shù)據(jù)加密算法,諸如高級加密標(biāo)準(zhǔn)(aes)、三重?cái)?shù)據(jù)加密標(biāo)準(zhǔn)(tdes),其消耗大量的時(shí)間用于加密和解密。另一方面,使用簡單的加密算法將不可避免地降低安全級別。當(dāng)產(chǎn)品開機(jī)后處于長時(shí)間的運(yùn)行過程中,存在加密算法被破解的風(fēng)險(xiǎn)。本發(fā)明的實(shí)施方式提供了動(dòng)態(tài)更新dram_key的方法,這使得在運(yùn)行過程中n組dram加密的密鑰被更換,并且進(jìn)一步增加了破解的難度。n可以選擇大于等于2的任意值。n等于4作為一示例被示于圖9。

      圖8示出了根據(jù)本發(fā)明的實(shí)施方式的隨機(jī)密鑰的動(dòng)態(tài)更新的方法800的視圖。該方法800包括在框810中生成隨機(jī)密鑰;在框820,通過對原始dram寫數(shù)據(jù)的位的順序進(jìn)行置換以生成更新的寫數(shù)據(jù);在塊框830,通過對所生成的隨機(jī)密鑰與更新的寫數(shù)據(jù)執(zhí)行函數(shù)以生成加密的數(shù)據(jù);在框840中,當(dāng)不存在訪問dram的任何請求時(shí),根據(jù)時(shí)刻動(dòng)態(tài)地更新所產(chǎn)生的隨機(jī)密鑰。

      可替代地,方法800還可以包括在預(yù)定的時(shí)間間隔內(nèi)動(dòng)態(tài)地更新隨機(jī)密鑰;以及用更新的隨機(jī)密鑰加密數(shù)據(jù)。

      圖9示出了根據(jù)本發(fā)明另一實(shí)施方式的dram密鑰的動(dòng)態(tài)更新的方法的視圖。

      具體而言,密鑰生成器710,例如,隨機(jī)數(shù)生成器生成四組dram加密密鑰,dram_key0~dram_key3。默認(rèn)情況下,在包括dram的系統(tǒng)啟動(dòng)后,系統(tǒng)首先使用dram_key0用于dram訪問數(shù)據(jù)進(jìn)行加密和解密。

      返回參照圖1并參考圖9,dram_key動(dòng)態(tài)更新電路1144被配置為自動(dòng)地更新密鑰。例如,

      (1)在隨機(jī)時(shí)間間隔time0之后,則dram_denc114從地址0開始依次地使用dram_key1對存儲器數(shù)據(jù)進(jìn)行重新加密,然后將重新加密的存儲器數(shù)據(jù)寫入存儲器,并且將當(dāng)前更新的指針update_ptr0反饋給數(shù)據(jù)加密電路1142。該update_ptr0移動(dòng)的方向由箭頭0表示。加密或重新加密的存儲器數(shù)據(jù),例如,可以是整個(gè)dram的內(nèi)部數(shù)據(jù)(包含安全與普通的數(shù)據(jù))??蛇x地,加密或重新加密的存儲器數(shù)據(jù),在一種實(shí)施方式中,可以只包含安全數(shù)據(jù)。

      (2)在隨機(jī)時(shí)間間隔time1之后,如果系統(tǒng)100無任何dram訪問請求,則dram_denc114從地址0開始依次使用dram_key2對存儲器數(shù)據(jù)進(jìn)行重新加密,然后將重新加密的存儲器數(shù)據(jù)寫回到存儲器,并且將當(dāng)前更新的指針update_ptr1反饋給數(shù)據(jù)加密電路1142。該update_ptr1移動(dòng)的方向由箭頭1表示。

      (3)在隨機(jī)時(shí)間間隔time2之后,如果系統(tǒng)100無任何dram訪問請求,則dram_denc114從地址0開始依次使用dram_key3對存儲器數(shù)據(jù)進(jìn)行重新加密,然后將重新加密的存儲器數(shù)據(jù)寫回到存儲器,并且將當(dāng)前更新的指針update_ptr2反饋給數(shù)據(jù)加密電路1142。該update_ptr2移動(dòng)的方向由箭頭2表示。

      數(shù)據(jù)加密和解密電路1142根據(jù)以下規(guī)則加密和解密數(shù)據(jù):

      (1)當(dāng)設(shè)備訪問地址小于update_ptr2的地址時(shí),該地址由在dram區(qū)域內(nèi)填充有垂直線的框表示。

      dram_denc114使用dram_key3用于加密和解密正常讀取和寫入的數(shù)據(jù)。

      (2)當(dāng)設(shè)備訪問地址大于update_ptr2的地址但小于update_ptr1的地址時(shí),該地址由在dram區(qū)域內(nèi)填充有水平線的框表示。

      a)對于包含在dram_denc114中的動(dòng)態(tài)更新電路,在系統(tǒng)100中的dram_denc114使用dram_key2解密讀數(shù)據(jù),并使用dram_key3加密寫數(shù)據(jù)。

      b)對于例如通過dram訪問設(shè)備,或axi主機(jī),如公共處理核、或視頻解碼器進(jìn)行的正常的讀/寫操作,dram_denc114使用dram_key2對正常的讀數(shù)據(jù)進(jìn)行解密,或?qū)φ5膶憯?shù)據(jù)進(jìn)行加密。

      (3)當(dāng)設(shè)備訪問地址大于update_ptr1的地址但小于update_ptr0的地址時(shí),該地址由在dram區(qū)域內(nèi)填充有斜線的框表示。

      a)對于包含在dram_denc114中的動(dòng)態(tài)更新電路,在系統(tǒng)100中的dram_denc114使用dram_key1對讀數(shù)據(jù)進(jìn)行解密,并使用dram_key2對寫數(shù)據(jù)進(jìn)行加密。

      b)對于正常的讀/寫操作,dram_denc114使用dram_key1對正常的讀數(shù)據(jù)進(jìn)行解密,或?qū)φ5膶憯?shù)據(jù)進(jìn)行加密。

      (4)當(dāng)設(shè)備訪問地址大于update_ptr0的地址時(shí),該地址由在dram區(qū)域內(nèi)填充有交叉線的框表示。

      a)dram_denc114使用dram_key0對正常的讀和寫數(shù)據(jù)進(jìn)行加密和解密。

      b)對于包含在dram_denc114中的動(dòng)態(tài)更新電路,在系統(tǒng)100中的dram_denc114使用dram_key0對讀數(shù)據(jù)進(jìn)行解密,使用dram_key1對寫數(shù)據(jù)進(jìn)行加密。

      此外,當(dāng)dram_key動(dòng)態(tài)更新電路1144完成存儲器數(shù)據(jù)的完整的一輪更新,例如,dram_key3已完成在dram末端,例如在dram底部的dram數(shù)據(jù)的更新時(shí),dram_denc114執(zhí)行以下操作并重復(fù):

      (1)dram_denc114將dram_key1賦值給dram_key0,將dram_key2賦值給dram_key1,將dram_key3賦值給dram_key2,并請求64位新的隨機(jī)數(shù)作為dram_key3。

      (2)dram_denc114將update_ptr1賦值給update_ptr0,將update_ptr2賦值給update_ptr1,并重置update_ptr2為0。然后新一輪的動(dòng)態(tài)加密開始。

      可替代地,dram_denc114可以具有暫停功能,從而允許系統(tǒng)100暫停動(dòng)態(tài)更新功能,以滿足帶寬要求。

      上面的實(shí)施方式使用4組動(dòng)態(tài)密鑰作為示例用于說明數(shù)據(jù)加密??商娲兀绻褂胣個(gè)密鑰,本實(shí)施方式可以如下被實(shí)現(xiàn):

      1、dram_keyn-1表示由相應(yīng)的地址區(qū)域使用的原始密鑰,以及dram_keyn表示更新的密鑰:

      對于由dram_key動(dòng)態(tài)更新電路發(fā)送的數(shù)據(jù)讀請求,dram_keyn-1被用于解密讀數(shù)據(jù)。

      對于由dram_key動(dòng)態(tài)更新電路發(fā)送的數(shù)據(jù)寫請求,dram_keyn被用于加密寫數(shù)據(jù)。

      2、對于由dram訪問設(shè)備,也稱為axi主機(jī)(如公共處理核,或視頻解碼器)的正常的數(shù)據(jù)讀和寫請求:

      (1)當(dāng)設(shè)備(如在芯片內(nèi)的模塊,其請求訪問地址,如cpu、視頻解碼器)請求訪問地址小于update_ptrn的數(shù)據(jù)時(shí),dram_denc114使用dram_keyn+1進(jìn)行數(shù)據(jù)加密和解密;

      (2)當(dāng)設(shè)備請求訪問地址大于update_ptrn的數(shù)據(jù)時(shí),dram_denc114使用dram_keyn進(jìn)行數(shù)據(jù)加密和解密。

      綜上所述,dram_key的動(dòng)態(tài)更新包括:

      1、dram_key動(dòng)態(tài)更新電路1144當(dāng)且僅當(dāng)系統(tǒng)100中沒有接收到任何dram訪問請求時(shí)執(zhí)行存儲器數(shù)據(jù)更新。

      2、基于dram_keyn的數(shù)據(jù)更新從地址0開始,并且動(dòng)態(tài)更新電路1144采用dram_keyn重新加密存儲器數(shù)據(jù),然后將重新加密的存儲器數(shù)據(jù)寫回存儲器,并將當(dāng)前更新的指針update_ptrn-1返回給數(shù)據(jù)加密電路1142。雖然在圖1中,動(dòng)態(tài)更新電路1144和數(shù)據(jù)加密電路1142被示出為獨(dú)立的電路,但它們可以被并入為單個(gè)的電路。

      3、當(dāng)存儲器數(shù)據(jù)的完整周期被更新,即,所有的dram_keyn已完成對數(shù)據(jù)的加密時(shí),update_ptrn和dram_keyn分別被更替。

      4、上述步驟1-3在產(chǎn)品運(yùn)行過程中始終被執(zhí)行,以確保dram_key始終處于動(dòng)態(tài)更新中。

      5、當(dāng)系統(tǒng)100需要時(shí)動(dòng)態(tài)更新可以被暫停。

      關(guān)于圖8的描述示出了用于加密的動(dòng)態(tài)地更新隨機(jī)密鑰的方法??商娲?,圖10示出了根據(jù)本發(fā)明的實(shí)施方式的解密的方法的視圖。方法1000用于動(dòng)態(tài)隨機(jī)訪問存儲器(dram)的保護(hù),包括在框310,分別對第一普通區(qū)域、第二普通區(qū)域、第一安全區(qū)域和第二安全區(qū)域分配地址空間;在框320,確定讀數(shù)據(jù)是普通數(shù)據(jù)還是安全數(shù)據(jù)。如果讀數(shù)據(jù)是普通數(shù)據(jù),則方法1000還包括在框330檢測普通數(shù)據(jù)是否具有用于第一安全區(qū)域的地址空間內(nèi)的地址;以及在框340,如果普通數(shù)據(jù)具有用于第一安全區(qū)域的地址空間內(nèi)的地址,則輸出數(shù)字信號,指示重映射普通數(shù)據(jù)的地址到用于第二普通區(qū)域的地址空間。該方法1000進(jìn)一步包括在框1010a,通過使用隨機(jī)密鑰對讀數(shù)據(jù)執(zhí)行逆函數(shù)以生成解密的讀數(shù)據(jù);以及在框1020a,通過反置換解密數(shù)據(jù)的位的順序生成明文讀數(shù)據(jù)。注意,相對于圖10的用于解密的隨機(jī)密鑰與相對于圖8在方法800中用于加密的隨機(jī)密鑰是相同的。

      如果讀數(shù)據(jù)是安全數(shù)據(jù),該方法1000還包括在框350檢測安全數(shù)據(jù)是否具有用于第一普通區(qū)域的地址空間內(nèi)的地址;在框360,如果安全數(shù)據(jù)具有用于第一普通區(qū)域的地址空間內(nèi)的地址,則輸出數(shù)字信號,指示重映射安全數(shù)據(jù)的地址到用于第二安全區(qū)域的地址空間。該方法1000進(jìn)一步包括在框1010b通過使用隨機(jī)密對讀數(shù)據(jù)執(zhí)行逆函數(shù)以生成解密的讀數(shù)據(jù);以及在框1020b,通過反置換解密數(shù)據(jù)的位的順序生成明文讀數(shù)據(jù)。注意,相對于圖10的用于解密的隨機(jī)密鑰與相對于圖8在方法800中用于加密的隨機(jī)密鑰是相同的。

      圖11示出了根據(jù)本發(fā)明的實(shí)施方式的用于數(shù)據(jù)解密的電路。如圖11所示,用于數(shù)據(jù)解密的電路1100包括數(shù)據(jù)生成器1110,和更新電路1120。數(shù)據(jù)生成器1110被配置為通過使用隨機(jī)密鑰在讀數(shù)據(jù)上執(zhí)行逆函數(shù),生成解密的讀數(shù)據(jù);以及通過反置換所解密的數(shù)據(jù)的位的順序,生成明文讀數(shù)據(jù)。更新電路1120被配置為當(dāng)不存在任何訪問所述dram的請求時(shí),根據(jù)時(shí)刻動(dòng)態(tài)地更新所生成的隨機(jī)密鑰。可選地,當(dāng)不進(jìn)行隨機(jī)密鑰的動(dòng)態(tài)更新時(shí),更新電路1120是可以省略的。

      本發(fā)明的實(shí)施方式使用了簡單的數(shù)據(jù)加密算法,并且64位加密密鑰使用隨機(jī)數(shù)生成器。密鑰對于芯片而言是唯一的,并且在電路每次上電時(shí)密鑰都是不同的。此外,本發(fā)明的實(shí)施方式允許使用n組dram動(dòng)態(tài)加密密鑰,從而大大增加了破解的難度。

      不同實(shí)施方式的特征和方面可以被整合到另外的實(shí)施方式中,并且本文件所示的實(shí)施方式可以在沒有所有示例或者描述的特征或者方面的情況下實(shí)施。本領(lǐng)域技術(shù)人員會注意到,雖然本系統(tǒng)和方法的特定的示例和實(shí)施方式為了示例目的而被描述,在不背離本發(fā)明的精神和范圍的情況下可以做出不同的修改。此外,一實(shí)施方式的特征可以被包含到另一個(gè)實(shí)施方式中,即使這些特征并未在本文件中在一個(gè)單一的實(shí)施方式中被一起描述。因此,本發(fā)明被所附的權(quán)利要求所描述。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1