專利名稱:用于外部存儲器的數(shù)據(jù)保護(hù)器和數(shù)據(jù)保護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于外部存儲器的數(shù)據(jù)保護(hù)器和數(shù)據(jù)保護(hù)方法。
背景技術(shù):
片外存儲器,或者稱為外部存儲器,是指位于主機(jī)部分之外的存儲器,其與主機(jī)部分通過接口相連。隨著計(jì)算機(jī)技術(shù)以及與其相關(guān)的數(shù)據(jù)處理技術(shù)的發(fā)展,外部存儲器被越來越廣泛地使用以適應(yīng)越來越高的數(shù)據(jù)存儲容量要求以及靈活地進(jìn)行存儲的要求。隨著外部存儲器的廣泛使用,外部存儲器的數(shù)據(jù)安全問題日益突顯出來。數(shù)據(jù)保密性是互聯(lián)網(wǎng)技術(shù)信息安全的一個重要方面。保密信息的泄密會使用戶遭受巨大的損失。無論是企業(yè)用戶還是個人用戶都需要高的數(shù)據(jù)安全性。在工業(yè)生產(chǎn)制造過程中,各個環(huán)節(jié)都有數(shù)據(jù)保密性要求。目前,在諸如SDRAM (Synchronous Dynamic Random Access Memory,同步動態(tài)隨機(jī)存取存儲器)的外部存儲器的應(yīng)用中,通常不對這些外部存儲器采取數(shù)據(jù)保護(hù)措施,從而使得外部存儲器的數(shù)據(jù)被直接暴露在外部存儲器總線上。這樣,竊密者無需任何解密技術(shù)即可容易地解讀存儲在外部存儲器上的信息。對于既有使用外部存儲器的要求又需要數(shù)據(jù)保密的系統(tǒng)來說,這是一個難題。因此,需要一種對外部存儲器進(jìn)行數(shù)據(jù)保護(hù)的方法和裝置。
發(fā)明內(nèi)容
為了解決上述問題中的至少一個,本發(fā)明提供一種用于外部存儲器的數(shù)據(jù)保護(hù)器,其包括密鑰發(fā)生器,用于產(chǎn)生對所述外部存儲器進(jìn)行數(shù)據(jù)保護(hù)所需的密鑰;以及地址映射電路,用于利用所述密鑰發(fā)生器產(chǎn)生的密鑰對用于訪問所述外部存儲器的輸入地址進(jìn)行加密運(yùn)算,以生成與所述輸入地址對應(yīng)的目標(biāo)地址。該數(shù)據(jù)保護(hù)器通過使用密鑰對輸入的訪問地址,例如寫數(shù)據(jù)地址,進(jìn)行加密運(yùn)算而將訪問地址重新映射。由于地址經(jīng)過加密運(yùn)算被隨機(jī)地重新映射,載送連續(xù)信息的數(shù)據(jù)塊被隨機(jī)地存儲到外部存儲器的位置不連續(xù)的多個存儲單元中。這樣,即使竊密者獲得了外部存儲器上的數(shù)據(jù),由于存儲位置的不連續(xù)性,他也可能無法正確地解讀該數(shù)據(jù)代表的信息。由此,外部存儲器上的數(shù)據(jù)被保護(hù)。優(yōu)選地,所述數(shù)據(jù)保護(hù)器還包括數(shù)據(jù)編碼器,所述數(shù)據(jù)編碼器利用所述密鑰發(fā)生器產(chǎn)生的密鑰對要寫入所述外部存儲器的所述目標(biāo)地址的輸入數(shù)據(jù)進(jìn)行加密運(yùn)算,以生成與所述輸入數(shù)據(jù)相對應(yīng)的目標(biāo)數(shù)據(jù)。優(yōu)選地,所述數(shù)據(jù)保護(hù)器還包括數(shù)據(jù)解碼器,所述數(shù)據(jù)解碼器利用所述密鑰對從所述外部存儲器的目標(biāo)地址讀出的被加密的數(shù)據(jù)進(jìn)行解密運(yùn)算,以將所述被加密的數(shù)據(jù)解密為源數(shù)據(jù)。通過對數(shù)據(jù)進(jìn)行加密運(yùn)算,存儲在外部存儲器上的數(shù)據(jù)變成了密文,從而除了寫地址被重新映射外又多了一層保護(hù)。要想正確解讀該外部存儲器上的信息,既要正確地解密數(shù)據(jù)又要正確地還原存儲地址。
優(yōu)選地,所述密鑰發(fā)生器為真隨機(jī)數(shù)發(fā)生器,所述真隨機(jī)數(shù)發(fā)生器產(chǎn)生真隨機(jī)數(shù)據(jù)作為所述密鑰。由于密鑰是真隨機(jī)數(shù)據(jù),地址映射和數(shù)據(jù)映射具有完全不可預(yù)測性,從而難以破解。優(yōu)選地,所述真隨機(jī)數(shù)發(fā)生器包括
隨機(jī)源獲取電路,用于引入環(huán)境噪聲作為隨機(jī)源;以及
隨機(jī)信號產(chǎn)生電路,用于對所述隨機(jī)源進(jìn)行采集并放大以形成所述真隨機(jī)數(shù)據(jù)。優(yōu)選地,所述真隨機(jī)數(shù)發(fā)生器包括存儲模塊,所述存儲模塊將所述真隨機(jī)數(shù)據(jù)存儲為使得所述真隨機(jī)數(shù)據(jù)對于邏輯電路來說可運(yùn)算但不可讀。由于作為密鑰的真隨機(jī)數(shù)據(jù)不可讀,竊密者無法通過監(jiān)視密鑰的傳遞而獲得密鑰。優(yōu)選地,所述密鑰發(fā)生器還包括更新觸發(fā)電路,用于定時地或在控制信號的控制下觸發(fā)真隨機(jī)數(shù)據(jù)的重新產(chǎn)生。優(yōu)選地,所述數(shù)據(jù)保護(hù)器還包括
地址高速緩存模塊,用于對輸入地址進(jìn)行緩沖,其輸出端連接到所述地址映射電路; 寫數(shù)據(jù)高速緩存模塊,用于對要寫入所述外部存儲器的輸入數(shù)據(jù)進(jìn)行緩沖,其輸出端連接到所述數(shù)據(jù)編碼器;
讀數(shù)據(jù)高速緩存模塊,用于對從所述外部存儲器讀出的數(shù)據(jù)進(jìn)行緩沖,其輸出端連接到所述數(shù)據(jù)解碼器。根據(jù)本發(fā)明的另一方面,提供一種用于外部存儲器的控制器,其包括如上所述的數(shù)據(jù)保護(hù)器。根據(jù)本發(fā)明的又一方面,還提供一種用于外部存儲器的數(shù)據(jù)保護(hù)方法,包括產(chǎn)生對所述外部存儲器進(jìn)行數(shù)據(jù)保護(hù)所需的密鑰;以及利用所述密鑰對用于訪問所述外部存儲器的輸入地址進(jìn)行加密運(yùn)算,以生成與所述輸入地址對應(yīng)的目標(biāo)地址。所述方法還包括使用所述目標(biāo)地址訪問所述外部存儲器。所述方法還包括利用所述密鑰對要寫入所述外部存儲器的輸入數(shù)據(jù)進(jìn)行加密運(yùn)算,以生成與所述輸入數(shù)據(jù)相對應(yīng)的目標(biāo)數(shù)據(jù);以及將所述目標(biāo)數(shù)據(jù)寫入所述目標(biāo)地址。所述方法還包括利用所述目標(biāo)地址從所述外部存儲器讀出被加密的數(shù)據(jù);以及利用所述密鑰對所述被加密的數(shù)據(jù)進(jìn)行解密運(yùn)算,以將所述被加密的數(shù)據(jù)解密為源數(shù)據(jù)。優(yōu)選地,所述密鑰為真隨機(jī)數(shù)據(jù)。優(yōu)選地,產(chǎn)生對所述外部存儲器進(jìn)行數(shù)據(jù)保護(hù)所需的密鑰的步驟包括引入環(huán)境噪聲作為隨機(jī)源;以及對所述隨機(jī)源進(jìn)行采集并放大以形成所述真隨機(jī)數(shù)據(jù)作為所述密鑰。優(yōu)選地,產(chǎn)生對所述外部存儲器進(jìn)行數(shù)據(jù)保護(hù)所需的密鑰的步驟還包括將所述真隨機(jī)數(shù)據(jù)存儲為使得所述真隨機(jī)數(shù)據(jù)對于邏輯電路來說可運(yùn)算但不可讀。優(yōu)選地,產(chǎn)生對所述外部存儲器進(jìn)行數(shù)據(jù)保護(hù)所需的密鑰的步驟還包括定時地或在控制信號的控制下觸發(fā)真隨機(jī)數(shù)據(jù)的重新產(chǎn)生。優(yōu)選地,所述加密運(yùn)算采用的是散列算法。優(yōu)選地,對所述輸入數(shù)據(jù)進(jìn)行的所述加密運(yùn)算采用的是能夠進(jìn)行對稱加密的多項(xiàng)式算法。優(yōu)選地,所述多項(xiàng)式算法是改進(jìn)的DES (Data Encryption Mandard,數(shù)據(jù)加密標(biāo)準(zhǔn))算法。優(yōu)選地,所述目標(biāo)地址與所述輸入地址是唯一地對應(yīng)的。通過本發(fā)明的上述各個方面,改進(jìn)了目前對存儲器的控制技術(shù),加強(qiáng)了對外部存儲器、特別是專用的外部存儲器的數(shù)據(jù)保護(hù)能力,從而可以防止外部存儲器上的內(nèi)容遭到強(qiáng)制讀寫和破解。
參照結(jié)合附圖的以下詳細(xì)描述,本發(fā)明實(shí)施例的各種特征可以更容易理解。貫穿附圖,相同的附圖標(biāo)記表示相同或相似的元素,并且在附圖中
圖1示出了其中實(shí)現(xiàn)了本發(fā)明的原理的系統(tǒng)架構(gòu)示意圖; 圖2是根據(jù)本發(fā)明的一個實(shí)施例的示出數(shù)據(jù)保護(hù)器的主要組成模塊的框圖; 圖3是根據(jù)本發(fā)明的一個實(shí)施例的示出密鑰發(fā)生器的主要組成模塊的框圖; 圖4是根據(jù)本發(fā)明的另一實(shí)施例的示出數(shù)據(jù)保護(hù)器的主要組成模塊的框圖; 圖5是根據(jù)本發(fā)明的一個實(shí)施例的示出產(chǎn)生真隨機(jī)數(shù)據(jù)作為密鑰的操作的流程圖; 圖6是根據(jù)本發(fā)明的一個實(shí)施例的示出將數(shù)據(jù)寫入外部存儲器的操作的流程圖; 圖7是根據(jù)本發(fā)明的一個實(shí)施例的示出從外部存儲器讀出數(shù)據(jù)的操作的流程圖。
具體實(shí)施例方式在優(yōu)選實(shí)施例的以下詳細(xì)說明中,對附圖進(jìn)行參考,其構(gòu)成本說明書的一部分,并且其中以舉例說明的方式示出可以實(shí)施本發(fā)明的特定實(shí)施例。應(yīng)理解的是,可以利用其它實(shí)施例,或者可以在不脫離本發(fā)明的范圍的情況下進(jìn)行結(jié)構(gòu)上的或邏輯上的修改。因此,不應(yīng)在限制性的意義上理解以下詳細(xì)說明。圖1示意性地示出了其中實(shí)現(xiàn)了本發(fā)明的原理的系統(tǒng)架構(gòu)圖。在該系統(tǒng)中,外部存儲器200位于系統(tǒng)的主機(jī)部分100的外部,通過主機(jī)部分100的接口 101連接到主機(jī)部分100,以與主機(jī)部分100進(jìn)行通信。主機(jī)部分100可以是任何具有控制或處理數(shù)據(jù)的能力的芯片、集成電路板或設(shè)備。外部存儲器200可以是任何計(jì)算機(jī)可讀存儲介質(zhì)。所述接口 101 諸如但并不限于 ATA (Advanced Technology Attachment,高級技術(shù)連接)、SCSI (Small Computer System hterface,小型計(jì)算機(jī)系統(tǒng)接口)、USB(通用串行總線)、以太網(wǎng)、 FC (Fiber Channel,光纖通道)和InfiniBand等。數(shù)據(jù)保護(hù)器300用于對外部存儲器進(jìn)行數(shù)據(jù)保護(hù)。例如,數(shù)據(jù)保護(hù)器300通過對外部存儲器的讀、寫操作進(jìn)行控制來實(shí)現(xiàn)該保護(hù)。 數(shù)據(jù)保護(hù)器300通常集成在對外部存儲器進(jìn)行控制的控制器(未示出)中。在本實(shí)施例中, 雖然數(shù)據(jù)保護(hù)器300被示出為被包含在主機(jī)部分100中,即位于片內(nèi),但本領(lǐng)域技術(shù)人員在閱讀本說明書之后將容易地認(rèn)識到,數(shù)據(jù)保護(hù)器300也可以作為一個獨(dú)立部件而位于主機(jī)部分之外。圖2的框圖進(jìn)一步詳細(xì)示出了根據(jù)本發(fā)明的一個實(shí)施例的數(shù)據(jù)保護(hù)器300的主要組成模塊。在本實(shí)施例中,數(shù)據(jù)保護(hù)器300通過對用于訪問外部存儲器200的地址利用密鑰重新映射來對外部存儲器200進(jìn)行數(shù)據(jù)保護(hù)。數(shù)據(jù)保護(hù)器300包括密鑰發(fā)生器301,其用于產(chǎn)生對所述外部存儲器進(jìn)行數(shù)據(jù)保護(hù)所需的密鑰。密鑰發(fā)生器301的非限制性的示例包括本領(lǐng)域已知的偽隨機(jī)序列發(fā)生器,用于產(chǎn)生偽隨機(jī)序列作為密鑰。優(yōu)選地,所述密鑰發(fā)生器301為真隨機(jī)數(shù)據(jù)發(fā)生器。所產(chǎn)生的密鑰被存儲在存儲模塊中以供加密時使用。優(yōu)選地,所產(chǎn)生的密鑰以不可讀但可對其進(jìn)行運(yùn)算的方式存儲在密鑰發(fā)生器301的存儲模塊(未示出)中,以免密鑰被竊取。所述不可讀但可對其進(jìn)行運(yùn)算的方式是指密鑰不可被從存儲模塊讀取,但可以在控制信號的控制下被輸入到進(jìn)行加密/解密運(yùn)算的單元(諸如下文中所述的地址映射電路 302、數(shù)據(jù)編碼器406或數(shù)據(jù)解碼器407)與被加密數(shù)據(jù)或地址一起被運(yùn)算,在該過程中密鑰無法通過軟件讀取或者人為主動讀取。這可以通過不向該存儲模塊分配總線地址的方式來實(shí)現(xiàn)。所述控制信號可以由外部存儲器的讀寫控制模塊(未示出)發(fā)出。數(shù)據(jù)保護(hù)器300還包括地址映射電路302。該地址映射電路302利用密鑰發(fā)生器 301所產(chǎn)生的密鑰對用戶輸入的用于訪問外部存儲器200的某存儲單元的地址進(jìn)行加密運(yùn)算,產(chǎn)生重新映射后的目標(biāo)地址?;诿荑€的加密算法通常有兩類對稱算法和公開密鑰算法,這里主要介紹對稱算法。對稱算法就是加密密鑰能夠從解密密鑰中推算出來,反過來也成立。在大多數(shù)對稱算法中,加/解密密鑰是相同的。這些算法也叫秘密密鑰算法或單密鑰算法,它要求發(fā)送者和接收者在安全通信之前,商定一個密鑰。對稱算法的安全性依賴于密鑰,泄漏密鑰就意味著任何得到密鑰的人都能對消息進(jìn)行加/解密。對稱算法可分為兩類。序列密碼(流密碼)與分組密碼。序列密碼一直是軍方和政府使用的主要密碼技術(shù)之一。在常用的現(xiàn)有技術(shù)中,序列密碼的主要原理是通過偽隨機(jī)序列發(fā)生器產(chǎn)生性能優(yōu)良的偽隨機(jī)序列,然后使用該序列加密信息流(逐比特加密)以得到密文序列。所以,序列密碼算法的安全強(qiáng)度完全決定于偽隨機(jī)序列的好壞。偽隨機(jī)序列發(fā)生器利用輸入的真隨機(jī)的較短的原始密鑰(種子)通過某種復(fù)雜的運(yùn)算產(chǎn)生大量的偽隨機(jī)位流。序列密碼算法將明文逐位地轉(zhuǎn)換成密文。該算法最簡單的應(yīng)用如下所示。密鑰流發(fā)生器(例如偽隨機(jī)序列發(fā)生器)輸出一系列比特流K1,K2,K3,……Ki作為密鑰比特流。 將該密鑰比特流與明文比特流Pl,Ρ2,Ρ3,……Pi進(jìn)行異或運(yùn)算產(chǎn)生密文比特流
Ci = Pi K i
在解密端,密文比特流與完全相同的密鑰比特流異或運(yùn)算恢復(fù)出明文比特流 Pi = Ci Ki
對于一個序列來說,如果對所有的i總有Ki+p=Ki,則該序列是以ρ為周期的,滿足條件的最小的P稱為序列的周期。密鑰流發(fā)生器產(chǎn)生的序列周期應(yīng)該足夠的長。產(chǎn)生好的序列密碼的主要途徑之一是利用移位寄存器產(chǎn)生偽隨機(jī)序列,典型的方法有
反饋移位寄存器采用非線性反饋函數(shù)產(chǎn)生大周期的非線性序列; 利用線性移位寄存器序列加非線性前饋函數(shù),產(chǎn)生前饋序列;以及鐘控序列,利用一個寄存器序列作為時鐘控制另一寄存器序列(或自己控制自己)來產(chǎn)生鐘控序列,這種序列具有大的線性復(fù)雜度?;谝莆患拇嫫鞯男蛄忻艽a應(yīng)用十分廣泛。一個反饋移位寄存器由兩部分組成移位寄存器和反饋函數(shù)。移位寄存器的長度用位表示,如果是η位長,稱為η位移位寄存器。移位寄存器每次向右移動一位,新的最左邊的位根據(jù)反饋函數(shù)計(jì)算得到,移位寄存器輸出的位是最低位。最簡單的反饋移位寄存器是線形反饋移位寄存器,反饋函數(shù)是寄存器中某些位的簡單異或。但是,基于偽隨機(jī)算法的加密方法存在一定的弊端。例如,產(chǎn)生密鑰和加密的算法為某種固定的形式,即使數(shù)列在一定的范圍內(nèi)隨機(jī),但總有一個最大的循環(huán)周期,因此容易被暴力破解。并且,密鑰的傳遞過程容易被監(jiān)視,導(dǎo)致密鑰泄露,從而竊密者可以輕易獲得數(shù)據(jù)。本發(fā)明優(yōu)選實(shí)施例中的真隨機(jī)數(shù)據(jù)發(fā)生器克服了以上缺點(diǎn)中的一個或多個。在該優(yōu)選實(shí)施例中,真隨機(jī)源為系統(tǒng)的電路環(huán)境中的噪聲源信號,諸如靜電、干擾或噪聲等。該環(huán)境噪聲源信號會隨著溫度、時間等因素而變化,且具有完全不可預(yù)測性。如圖3所示,在本實(shí)施例中作為密鑰發(fā)生器301的真隨機(jī)數(shù)據(jù)發(fā)生器包括隨機(jī)源獲取電路3011和隨機(jī)信號產(chǎn)生電路3012。隨機(jī)源獲取電路3011對系統(tǒng)中的電路環(huán)境噪聲進(jìn)行感測,并將所感測到的噪聲信號輸入到隨機(jī)信號產(chǎn)生電路3012,隨機(jī)信號產(chǎn)生電路3012繼而對該噪聲信號進(jìn)行采樣并進(jìn)行諸如放大的信號處理以產(chǎn)生作為密鑰的數(shù)據(jù)。所產(chǎn)生的密鑰數(shù)據(jù)以不可讀但可對其進(jìn)行運(yùn)算的方式被存儲在存儲模塊(未示出)中。隨機(jī)源獲取電路3011的非限制性示例包括例如頻率可受噪聲源影響的時鐘電路,或者對噪聲源敏感的傳感器。隨機(jī)源獲取電路3011可以對系統(tǒng)中的例如主機(jī)部分100的環(huán)境噪聲進(jìn)行感測以獲得密鑰數(shù)據(jù)。當(dāng)然, 也可對主機(jī)部分100之外的環(huán)境噪聲進(jìn)行感測,例如對系統(tǒng)中與數(shù)據(jù)保護(hù)器200相連的其它電路部分的環(huán)境噪聲進(jìn)行感測。由于諸如靜電、干擾或噪聲等的環(huán)境噪聲具有完全不可預(yù)測性,因此本實(shí)施例的密鑰發(fā)生器產(chǎn)生的是真隨機(jī)數(shù)據(jù)。使用完全不具有可預(yù)測性的真隨機(jī)數(shù)據(jù)作為密鑰,使得加密后的數(shù)據(jù)或地址更加難以破解,增強(qiáng)了系統(tǒng)的安全性。另外,如圖3所示,真隨機(jī)數(shù)據(jù)發(fā)生器還可以包括更新觸發(fā)電路3013。隨機(jī)源的獲取可以在系統(tǒng)的每次復(fù)位或上電操作后在隨機(jī)的時間進(jìn)行。之后,當(dāng)需要更新作為密鑰的真隨機(jī)數(shù)據(jù)時(例如需要更新目標(biāo)地址映射集時),更新觸發(fā)電路3013命令隨機(jī)源獲取電路3011重新獲取隨機(jī)噪聲源以產(chǎn)生新的真隨機(jī)數(shù)據(jù)。該操作可以定時地或在控制信號的控制下進(jìn)行。在優(yōu)選實(shí)施例中,在系統(tǒng)每次復(fù)位后,密鑰是保持不變的,在系統(tǒng)完全丟棄存儲器中的數(shù)據(jù)或者系統(tǒng)復(fù)位、掉電的時候會更新密鑰。圖5示出了根據(jù)上述實(shí)施例的用于產(chǎn)生真隨機(jī)數(shù)據(jù)作為密鑰的操作的流程圖。在步驟501,隨機(jī)源獲取電路3011感測環(huán)境噪聲以獲取真隨機(jī)源。在步驟502,隨機(jī)信號產(chǎn)生電路3012對真隨機(jī)源信號進(jìn)行采樣并進(jìn)行信號處理以產(chǎn)生真隨機(jī)數(shù)據(jù)。在步驟503,將所產(chǎn)生的真隨機(jī)數(shù)據(jù)以不可讀但可對其進(jìn)行運(yùn)算的方式存儲作為密鑰。在步驟504,響應(yīng)于周期性的定時信號或用戶的控制信號而觸發(fā)密鑰數(shù)據(jù)的更新。返回參考圖2,地址映射電路302利用真隨機(jī)數(shù)據(jù)作為密鑰對輸入地址進(jìn)行加密運(yùn)算。地址映射電路302以一種可進(jìn)行對稱加密的多項(xiàng)式算法為基礎(chǔ),將輸入的源地址以密鑰發(fā)生器產(chǎn)生的真隨機(jī)數(shù)據(jù)為密鑰進(jìn)行多項(xiàng)式運(yùn)算后,輸出與輸入地址唯一地對應(yīng)的目標(biāo)地址,完成地址映射。對地址進(jìn)行加密的算法可以采用現(xiàn)有技術(shù)中已知的各種加密算法。作為加密算法的一個示例,地址映射電路302的多項(xiàng)式可以采用32位的對稱算法,并采用并行電路實(shí)現(xiàn)。一個示例是32位的CRC(Cyclic Redundancy Check,循環(huán)冗余校驗(yàn)),它是一種對稱的散列算法。以此算法為基礎(chǔ),將密鑰作為每次運(yùn)算的初值,將電路轉(zhuǎn)化為并行運(yùn)算,使得運(yùn)算過程在一個周期內(nèi)得到結(jié)果,從而保證了數(shù)據(jù)流的連續(xù)性。計(jì)算得到的目標(biāo)地址與輸入的源地址是一一對應(yīng)的。由于密鑰的真隨機(jī)性,映射關(guān)系具有不確定性。這樣,對應(yīng)于一組連續(xù)源地址的數(shù)據(jù)塊可被隨機(jī)地分散存儲在外部存儲器200中不連續(xù)的位置中。在這種情況下,即使外部存儲器200中的數(shù)據(jù)被竊取,由于存儲位置的隨機(jī)性和不連續(xù)性,要正確地解讀信息也比較困難。因此,實(shí)現(xiàn)了對外部存儲器 200的數(shù)據(jù)保護(hù)。如圖2所示,數(shù)據(jù)保護(hù)器300還可以包括地址高速緩存模塊303、寫數(shù)據(jù)高速緩存模塊304和讀數(shù)據(jù)高速緩存模塊305,用于分別對用于訪問外部存儲器200的輸入地址、要寫入外部存儲器200的輸入數(shù)據(jù)以及從外部存儲器200讀出的數(shù)據(jù)進(jìn)行緩沖。地址高速緩存模塊303的輸出端連接到地址映射電路302。所述地址高速緩存模塊303、寫數(shù)據(jù)高速緩存模塊304和讀數(shù)據(jù)高速緩存模塊305每個均由標(biāo)志部分、數(shù)據(jù)部分和控制部分組成。每個標(biāo)志部分均包括滿標(biāo)志、空標(biāo)志和半滿標(biāo)志,用來標(biāo)志當(dāng)前寫入該相應(yīng)的高速緩存模塊 303、304或305中且未被讀出的數(shù)據(jù)占該緩存模塊的容量的狀態(tài)。各數(shù)據(jù)部分分別包括有效的地址、寫數(shù)據(jù)或讀數(shù)據(jù)的存儲隊(duì)列,地址、寫數(shù)據(jù)或讀數(shù)據(jù)以先進(jìn)先出的順序通過相應(yīng)高速緩存模塊的輸出端。每個控制部分均包括讀地址指針、讀數(shù)據(jù)有效標(biāo)志、寫地址指針、 寫數(shù)據(jù)有效標(biāo)志。雖然在本實(shí)施例中將地址高速緩存模塊303、寫數(shù)據(jù)高速緩存模塊304和讀數(shù)據(jù)高速緩存模塊305示出為被包括在數(shù)據(jù)保護(hù)器300中,但應(yīng)當(dāng)理解的是,這些模塊并不是必須的,且這些模塊可以位于數(shù)據(jù)保護(hù)器300之外。圖4是示出根據(jù)本發(fā)明的另一實(shí)施例的數(shù)據(jù)保護(hù)器400的框圖。在本實(shí)施例中,數(shù)據(jù)保護(hù)器400除了包含數(shù)據(jù)保護(hù)器300所具有的密鑰發(fā)生器301、地址映射電路302、地址高速緩存模塊303、寫數(shù)據(jù)高速緩存模塊304和讀數(shù)據(jù)高速緩存模塊305之外,還包括數(shù)據(jù)編碼器406和數(shù)據(jù)解碼器407。數(shù)據(jù)編碼器406用于利用密鑰發(fā)生器301產(chǎn)生的密鑰對要寫入外部存儲器200的輸入數(shù)據(jù)進(jìn)行加密運(yùn)算。數(shù)據(jù)解碼器407利用密鑰發(fā)生器301產(chǎn)生的密鑰對從外部存儲器200讀出的被加密的數(shù)據(jù)進(jìn)行解密運(yùn)算,以將被加密的數(shù)據(jù)解密為源數(shù)據(jù)。其中,寫數(shù)據(jù)高速緩存模塊304的輸出端連接到數(shù)據(jù)編碼器406的輸入端,數(shù)據(jù)解碼器407的輸出端連接到讀數(shù)據(jù)高速緩存模塊305的輸入端。要寫入外部存儲器200的數(shù)據(jù)首先輸入到寫數(shù)據(jù)高速緩存模塊304進(jìn)行緩沖,然后輸出到數(shù)據(jù)編碼器406以進(jìn)行加密。 從外部存儲器200讀出的數(shù)據(jù)被數(shù)據(jù)編碼器406解密后輸出到讀數(shù)據(jù)高速緩存模塊305進(jìn)行緩沖,然后被發(fā)送到目標(biāo)單元。數(shù)據(jù)保護(hù)器400還可以包括讀寫控制模塊(未示出),其將加密后的寫數(shù)據(jù)寫入與用于寫數(shù)據(jù)的重新映射的地址對應(yīng)的存儲單元中,以及根據(jù)用于讀數(shù)據(jù)的重新映射的地址,從與該重新映射的地址相對應(yīng)的存儲單元中讀出被加密的數(shù)據(jù)。當(dāng)然,該讀寫控制模塊也可以不集成在數(shù)據(jù)保護(hù)器400中,而是作為外部存儲器200的控制器的一部分。在上面的實(shí)施例中,既對源地址進(jìn)行了重新映射,又對要寫入外部存儲器的數(shù)據(jù)進(jìn)行了加密,從而實(shí)現(xiàn)了對外部存儲器的雙重保護(hù)。但應(yīng)當(dāng)理解的是,上述兩種手段并不必須同時使用。在只采用其中的一種的情況下,例如在僅對寫數(shù)據(jù)進(jìn)行加密的情況下,也可以達(dá)到對外部存儲器進(jìn)行數(shù)據(jù)保護(hù)的目的。對數(shù)據(jù)進(jìn)行的加密運(yùn)算可以應(yīng)用現(xiàn)有技術(shù)中的各種加密算法。作為示例,加密運(yùn)算的多項(xiàng)式算法采用改進(jìn)的DES (Data Encryption Mandard,數(shù)據(jù)加密標(biāo)準(zhǔn))算法,比如 TDES算法,其要求是可以進(jìn)行對稱加密的算法。這樣在解密的時候可以采用同組隨機(jī)密鑰對存儲器內(nèi)的數(shù)據(jù)進(jìn)行解密。諸如TDES的加密算法采用流水線技術(shù)對輸入的數(shù)據(jù)進(jìn)行逐次迭代,并保證數(shù)據(jù)流的連續(xù)性。在一個優(yōu)選實(shí)施例中,可以將數(shù)據(jù)編碼模塊和數(shù)據(jù)解碼模塊實(shí)現(xiàn)為單個數(shù)據(jù)編/ 解碼模塊。該數(shù)據(jù)編/解碼模塊具有三個輸入端口 密鑰輸入端口、數(shù)據(jù)輸入端口、模式控制端口,以及一個數(shù)據(jù)輸出端口。作為示例,采用8個字節(jié)共64位的密鑰作為DES算法的工作密鑰。要被加密或被解密的數(shù)據(jù)也是8個字節(jié)64位。該數(shù)據(jù)編/解碼模塊有兩種工作模式加密或解密。當(dāng)進(jìn)行寫操作時,通過模式控制端口將該數(shù)據(jù)編/解碼模塊置為加密模式,則數(shù)據(jù)編/解碼模塊用密鑰把數(shù)據(jù)進(jìn)行加密,生成數(shù)據(jù)的密文形式(64位)作為輸出結(jié)果。當(dāng)進(jìn)行讀操作時,通過模式控制端口將該數(shù)據(jù)編/解碼模塊置為解密模式,則數(shù)據(jù)編 /解碼模塊用密鑰把密文形式的數(shù)據(jù)解密,還原為數(shù)據(jù)的明文形式(64位)作為輸出結(jié)果。 由于DES算法是本領(lǐng)域中常見的算法,因此此處不再對其進(jìn)行詳細(xì)描述。圖6示出了根據(jù)本發(fā)明的一個實(shí)施例的將數(shù)據(jù)寫入外部存儲器的操作的流程圖。 當(dāng)外部存儲器控制器收到對外部存儲器200進(jìn)行寫操作的命令后,寫操作開始。在步驟 601,利用密鑰將用于寫數(shù)據(jù)的源地址經(jīng)過加密運(yùn)算重新映射成目標(biāo)地址。在步驟602,利用密鑰對與該源地址相對應(yīng)的寫數(shù)據(jù)進(jìn)行加密運(yùn)算,以得到加密后的目標(biāo)數(shù)據(jù)。在步驟603, 將加密后的目標(biāo)數(shù)據(jù)寫入外部存儲器200的目標(biāo)地址。雖然在圖6中將步驟601和602作為依次執(zhí)行的步驟示出,但應(yīng)當(dāng)理解的是,步驟601和602可以同時進(jìn)行,或者可以先執(zhí)行步驟602,再執(zhí)行步驟601。圖7示出了根據(jù)本發(fā)明的一個實(shí)施例的從外部存儲器讀出數(shù)據(jù)的操作的流程圖。 當(dāng)外部存儲器控制器收到對外部存儲器進(jìn)行讀操作的命令后,寫操作開始。在步驟701,利用密鑰將用于讀數(shù)據(jù)的源地址經(jīng)過加密運(yùn)算重新映射成目標(biāo)地址。在步驟702,從外部存儲器的該目標(biāo)地址讀出被加密的數(shù)據(jù)。在步驟703,利用密鑰對所述被加密的數(shù)據(jù)進(jìn)行解密運(yùn)算,以得到相對應(yīng)的源數(shù)據(jù),即得到解密后的明文數(shù)據(jù)。這里,從源地址得到的目標(biāo)地址與在該數(shù)據(jù)的寫入期間所得到的目標(biāo)地址是一致的。也就是說,如果在寫入期間,與輸入的源地址A對應(yīng)的數(shù)據(jù)B被寫入到了目標(biāo)地址C中,那么在讀出期間,由于使用的是同樣的密鑰,因此由源地址A得到的目標(biāo)地址同樣是C,從而讀出的正是與源地址A對應(yīng)的數(shù)據(jù)B。根據(jù)本發(fā)明的真隨機(jī)數(shù)據(jù)發(fā)生電路具有不可逆性,即信號并不只依靠電路行為產(chǎn)生。該真隨機(jī)數(shù)據(jù)發(fā)生電路的隨機(jī)源由隨機(jī)信號引起,該隨機(jī)信號的電平具有不可重復(fù)性和不可預(yù)測性,完全隨機(jī),且不可讀取。因此,對地址的重映射過程不可預(yù)測,從而在未知情況下將數(shù)據(jù)存儲到片外存儲器的某地址中,具有硬件不可追溯性。并且,基于地址隨機(jī)重映射后的數(shù)據(jù),位置不連續(xù),具有應(yīng)對物理強(qiáng)制讀取的數(shù)據(jù)無序性。本發(fā)明在諸如SDRAM的外部存儲器的控制器內(nèi)引入基于真隨機(jī)數(shù)的散列算法和基于真隨機(jī)數(shù)的對稱加密算法,使得數(shù)據(jù)的存儲得到了很高的保密性,且其地址分配隨機(jī)、 不可預(yù)測,使得數(shù)據(jù)加密具備隨機(jī)性和不可預(yù)測性。在上文中針對外部存儲器描述了本發(fā)明的原理,但應(yīng)當(dāng)理解的是,本發(fā)明的數(shù)據(jù)CN 102541762 A保護(hù)方法以及數(shù)據(jù)保護(hù)裝置也適用于內(nèi)部存儲器。 雖然已相對于特定裝置、配置、部件、系統(tǒng)和操作方法描述了本發(fā)明,但本領(lǐng)域普通技術(shù)人員在閱讀本說明書后應(yīng)認(rèn)識到,可以在不脫離本發(fā)明的精神或范圍的情況下對本文所述的實(shí)施例和/或其操作進(jìn)行一定的變更或修改。因此,由所附的權(quán)利要求來定義本發(fā)明的適當(dāng)范圍。本文所公開的各種實(shí)施例、操作、部件和配置一般是示例性的,而并不意圖限制范圍。
權(quán)利要求
1.一種用于外部存儲器的數(shù)據(jù)保護(hù)器,其特征在于,包括密鑰發(fā)生器,用于產(chǎn)生對所述外部存儲器進(jìn)行數(shù)據(jù)保護(hù)所需的密鑰;以及地址映射電路,用于利用所述密鑰發(fā)生器產(chǎn)生的密鑰對用于訪問所述外部存儲器的輸入地址進(jìn)行加密運(yùn)算,以生成與所述輸入地址對應(yīng)的目標(biāo)地址。
2.如權(quán)利要求1所述的數(shù)據(jù)保護(hù)器,其特征在于,還包括數(shù)據(jù)編碼器,所述數(shù)據(jù)編碼器利用所述密鑰發(fā)生器產(chǎn)生的密鑰對要寫入所述外部存儲器的所述目標(biāo)地址的輸入數(shù)據(jù)進(jìn)行加密運(yùn)算,以生成與所述輸入數(shù)據(jù)相對應(yīng)的目標(biāo)數(shù)據(jù)。
3.如權(quán)利要求1一 2中任一項(xiàng)所述的數(shù)據(jù)保護(hù)器,其特征在于,所述密鑰發(fā)生器為真隨機(jī)數(shù)發(fā)生器,所述真隨機(jī)數(shù)發(fā)生器產(chǎn)生真隨機(jī)數(shù)據(jù)作為所述密鑰。
4.如權(quán)利要求3所述的數(shù)據(jù)保護(hù)器,其特征在于,所述真隨機(jī)數(shù)發(fā)生器包括存儲模塊, 所述存儲模塊將所述真隨機(jī)數(shù)據(jù)存儲為使得所述真隨機(jī)數(shù)據(jù)不可讀但可對所述真隨機(jī)數(shù)據(jù)進(jìn)行運(yùn)算。
5.一種用于外部存儲器的控制器,其包括如權(quán)利要求1 一 4中任一項(xiàng)所述的數(shù)據(jù)保護(hù) ο
6.一種用于外部存儲器的數(shù)據(jù)保護(hù)方法,包括產(chǎn)生對所述外部存儲器進(jìn)行數(shù)據(jù)保護(hù)所需的密鑰;以及利用所述密鑰對用于訪問所述外部存儲器的輸入地址進(jìn)行加密運(yùn)算,以生成與所述輸入地址對應(yīng)的目標(biāo)地址。
7.如權(quán)利要求6所述的方法,還包括使用所述目標(biāo)地址訪問所述外部存儲器。
8.如權(quán)利要求6或7所述的方法,還包括利用所述密鑰對要寫入所述外部存儲器的輸入數(shù)據(jù)進(jìn)行加密運(yùn)算,以生成與所述輸入數(shù)據(jù)相對應(yīng)的目標(biāo)數(shù)據(jù);以及將所述目標(biāo)數(shù)據(jù)寫入所述目標(biāo)地址。
9.如權(quán)利要求6所述的方法,其中所述密鑰為真隨機(jī)數(shù)據(jù)。
10.如權(quán)利要求9所述的方法,其中產(chǎn)生對所述外部存儲器進(jìn)行數(shù)據(jù)保護(hù)所需的密鑰的步驟還包括將所述真隨機(jī)數(shù)據(jù)存儲為使得所述真隨機(jī)數(shù)據(jù)不可讀但可對所述真隨機(jī)數(shù)據(jù)進(jìn)行運(yùn)算。
全文摘要
本發(fā)明涉及用于外部存儲器的數(shù)據(jù)保護(hù)器和數(shù)據(jù)保護(hù)方法。根據(jù)本發(fā)明的一種用于外部存儲器的數(shù)據(jù)保護(hù)器包括密鑰發(fā)生器,用于產(chǎn)生對所述外部存儲器進(jìn)行數(shù)據(jù)保護(hù)所需的密鑰;以及地址映射電路,用于利用所述密鑰發(fā)生器產(chǎn)生的密鑰對用于訪問所述外部存儲器的輸入地址進(jìn)行加密運(yùn)算,以生成與所述輸入地址對應(yīng)的目標(biāo)地址。通過本發(fā)明,可以對外部存儲器進(jìn)行有效的數(shù)據(jù)保護(hù)。
文檔編號G06F12/14GK102541762SQ20101060723
公開日2012年7月4日 申請日期2010年12月27日 優(yōu)先權(quán)日2010年12月27日
發(fā)明者郭旭 申請人:北京國睿中數(shù)科技股份有限公司