本發(fā)明涉及存儲器數(shù)據(jù)處理技術(shù)領(lǐng)域,具體涉及一種存儲器的數(shù)據(jù)寫入、讀出方法及裝置。
背景技術(shù):
目前,智能卡內(nèi)總線數(shù)據(jù)的存儲及傳輸過程容易受到干擾或攻擊。為了提高智能卡的抗干擾或抗攻擊能力,通常在向智能卡的存儲器寫入的數(shù)據(jù)中增加校驗數(shù)據(jù),進而可以通過所述校驗數(shù)據(jù)來檢查相應(yīng)數(shù)據(jù)的存儲及傳輸是否發(fā)生錯誤。
然而,上述抗干擾攻擊方法中,通過所述校驗數(shù)據(jù)僅能檢查寫入至存儲器中的數(shù)據(jù)本身是否發(fā)生錯誤,而無法檢查所讀出的數(shù)據(jù)是否為用戶輸入的目標地址的數(shù)據(jù),導(dǎo)致所述存儲器的安全性較低。
技術(shù)實現(xiàn)要素:
本發(fā)明解決的技術(shù)問題是如何進一步提高存儲器的安全性。
為解決上述技術(shù)問題,本發(fā)明實施例提供一種存儲器的數(shù)據(jù)寫入方法,所述方法包括:
當接收到待寫入的數(shù)據(jù)D及所述待寫入的數(shù)據(jù)D的目標地址數(shù)據(jù)A時,對所述待寫入的數(shù)據(jù)D進行加密處理,獲得加密數(shù)據(jù)T;
分別對所述加密數(shù)據(jù)T及所述目標地址數(shù)據(jù)A進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1,并根據(jù)壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1獲得校驗數(shù)據(jù)S;
將所述加密數(shù)據(jù)T及校驗數(shù)據(jù)S作為碼字寫入至所述存儲器。
可選地,所述分別對所述加密數(shù)據(jù)T及所述目標地址數(shù)據(jù)A進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1,并根據(jù)壓縮后的T1及目標地址A1數(shù)據(jù)獲得校驗數(shù)據(jù)S,包括:
調(diào)用所述第一壓縮函數(shù)按照預(yù)設(shè)位長對所述加密數(shù)據(jù)T進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1;
調(diào)用第二壓縮函數(shù)按照所述預(yù)設(shè)位長對所述目標地址數(shù)據(jù)A進行壓縮處理,獲得壓縮后的目標地址數(shù)據(jù)A1;
對所述壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1執(zhí)行第一運算,獲得校驗數(shù)據(jù)S。
可選地,所述預(yù)設(shè)位長與所述存儲器的校驗?zāi)芰Α⑺龃龑懭氲臄?shù)據(jù)D的位長、所述目標地址數(shù)據(jù)A的位長及所述第一壓縮函數(shù)和第二壓縮函數(shù)相關(guān)。
可選地,所述第一運算為異或運算。
本發(fā)明實施例還提供了一種存儲器的數(shù)據(jù)讀出方法,所述方法包括:
接收待讀取數(shù)據(jù)D的目標地址數(shù)據(jù)A;
根據(jù)所述目標地址數(shù)據(jù)A讀取所述存儲器中相應(yīng)位置處的碼字;
按照預(yù)設(shè)位長將所述碼字拆分為加密數(shù)據(jù)T及校驗數(shù)據(jù)S;
分別對所述加密數(shù)據(jù)T及所述目標地址數(shù)據(jù)A進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1;
根據(jù)所述壓縮后的加密數(shù)據(jù)T1、目標地址數(shù)據(jù)A1及校驗數(shù)據(jù)S,對所述加密數(shù)據(jù)T進行校驗,并根據(jù)校驗結(jié)果確定所述存儲器的輸出。
可選地,所述分別對所述加密數(shù)據(jù)T及所述目標地址數(shù)據(jù)A進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1,包括:
調(diào)用第一壓縮函數(shù)按照預(yù)設(shè)位長對所述加密數(shù)據(jù)T進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1;
調(diào)用第二壓縮函數(shù)按照所述預(yù)設(shè)位長對所述目標地址數(shù)據(jù)A進行壓縮處理,獲得壓縮后的目標地址數(shù)據(jù)A1。
可選地,所述根據(jù)所述壓縮后的加密數(shù)據(jù)T1、目標地址數(shù)據(jù)A1及校驗數(shù)據(jù)S,對所述加密數(shù)據(jù)T進行校驗,并根據(jù)校驗結(jié)果確定所述存儲器的輸 出,包括:
對所述壓縮后的加密數(shù)據(jù)T1與校驗數(shù)據(jù)S執(zhí)行第一運算;
判斷所述第一運算后的結(jié)果與所述壓縮后的目標地址數(shù)據(jù)A1是否相等;
當所述第一運算后的結(jié)果與所述壓縮后的目標地址數(shù)據(jù)A1相等時,判定所述加密數(shù)據(jù)T為正確數(shù)據(jù),對所述加密數(shù)據(jù)T進行解密后輸出。
可選地,所述根據(jù)所述壓縮后的加密數(shù)據(jù)T1、目標地址數(shù)據(jù)A1及校驗數(shù)據(jù)S,對所述加密后的數(shù)據(jù)T進行校驗,并根據(jù)校驗結(jié)果確定所述存儲器的輸出,還包括:
當所述第一運算后的結(jié)果與所述壓縮后的目標地址數(shù)據(jù)A1不相等時,判定所述加密數(shù)據(jù)T為錯誤數(shù)據(jù),輸出相應(yīng)的提示信號,以調(diào)用相應(yīng)的防護策略。
可選地,所述第一運算為異或運算。
可選地,所述預(yù)設(shè)位長與所述存儲器的校驗?zāi)芰?、所述待讀取數(shù)據(jù)D的位長、所述目標地址數(shù)據(jù)A的位長及所述第一壓縮函數(shù)和第二壓縮函數(shù)相關(guān)。
本發(fā)明實施例還提供了一種存儲器的數(shù)據(jù)寫入裝置,所述裝置包括:
加密單元,適于當接收到待寫入的數(shù)據(jù)D及所述待寫入的數(shù)據(jù)D的目標地址數(shù)據(jù)A時,對所述待寫入的數(shù)據(jù)D進行加密處理,獲得加密數(shù)據(jù)T;
第一處理單元,適于分別對所述加密數(shù)據(jù)T及所述目標地址數(shù)據(jù)A進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1,并根據(jù)壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1獲得校驗數(shù)據(jù)S;
寫入單元,適于將所述加密數(shù)據(jù)T及校驗數(shù)據(jù)S作為碼字寫入至所述存儲器。
可選地,所述第一處理單元包括:
第一處理子單元,適于調(diào)用所述第一壓縮函數(shù)按照預(yù)設(shè)位長對所述加密數(shù)據(jù)T進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1;
第二處理子單元,適于調(diào)用第二壓縮函數(shù)按照所述預(yù)設(shè)位長對所述目標 地址數(shù)據(jù)A進行壓縮處理,獲得壓縮后的目標地址數(shù)據(jù)A1;
第一運算子單元,適于對所述壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1執(zhí)行第一運算,獲得校驗數(shù)據(jù)S。
可選地,所述預(yù)設(shè)位長與所述存儲器的校驗?zāi)芰?、所述待寫入的?shù)據(jù)D的位長、所述目標地址數(shù)據(jù)A的位長及所述第一壓縮函數(shù)和第二壓縮函數(shù)相關(guān)。
可選地,所述第一運算子單元適于對所述壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1執(zhí)行異或運算,獲得校驗數(shù)據(jù)S。
本發(fā)明實施例還提供了一種存儲器的數(shù)據(jù)讀出裝置,所述裝置包括:
接收單元,適于接收待讀取數(shù)據(jù)D的目標地址數(shù)據(jù)A;
讀取單元,適于根據(jù)所述目標地址數(shù)據(jù)A讀取所述存儲器中相應(yīng)位置處的碼字;
拆分單元,適于按照預(yù)設(shè)位長將所述碼字拆分為加密數(shù)據(jù)T及校驗數(shù)據(jù)S;
第二處理單元,適于分別對所述加密數(shù)據(jù)T及所述目標地址數(shù)據(jù)A進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1;
第三處理單元,適于根據(jù)所述壓縮后的加密數(shù)據(jù)T1、目標地址數(shù)據(jù)A1及校驗數(shù)據(jù)S,對所述加密后的數(shù)據(jù)T進行校驗,并根據(jù)校驗結(jié)果確定所述存儲器的輸出。
可選地,所述第二處理單元包括:
第三處理子單元,適于調(diào)用第一壓縮函數(shù)按照預(yù)設(shè)位長對所述加密數(shù)據(jù)T進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1;
第四處理子單元,適于調(diào)用第二壓縮函數(shù)按照所述預(yù)設(shè)位長對所述目標地址數(shù)據(jù)A進行壓縮處理,獲得壓縮后的目標地址數(shù)據(jù)A1。
可選地,所述第三處理單元包括:
第二運算子單元,適于對所述壓縮后的加密數(shù)據(jù)T1與校驗數(shù)據(jù)S執(zhí)行第 一運算;
判斷子單元,適于判斷所述第一運算后的結(jié)果與所述壓縮后的目標地址數(shù)據(jù)A1是否相等;
解密子單元,適于當所述第一運算后的結(jié)果與所述壓縮后的目標地址數(shù)據(jù)A1相等時,判定所述加密數(shù)據(jù)T通過校驗,對所述加密數(shù)據(jù)T進行解密后輸出。
可選地,所述第三處理單元還包括:
提示子單元,適于當所述第一運算后的結(jié)果與所述壓縮后的目標地址數(shù)據(jù)A1不相等時,判定所述加密數(shù)據(jù)T未通過校驗,輸出相應(yīng)的提示信號,以調(diào)用相應(yīng)的防護策略。
可選地,所述第二運算子單元適于對所述壓縮后的加密數(shù)據(jù)T1及校驗數(shù)據(jù)S執(zhí)行異或運算。
可選地,所述預(yù)設(shè)位長與所述存儲器的校驗?zāi)芰?、所述待讀取數(shù)據(jù)D的位長、所述目標地址數(shù)據(jù)A的位長及所述第一壓縮函數(shù)和第二壓縮函數(shù)相關(guān)。
與現(xiàn)有技術(shù)相比,本發(fā)明實施例的技術(shù)方案具有以下有益效果:
在向存儲器中寫入數(shù)據(jù)時,通過對加密數(shù)據(jù)T及所述目標地址數(shù)據(jù)A進行壓縮處理,進而可以根據(jù)壓縮后的數(shù)據(jù)獲得校驗數(shù)據(jù)S。由于所述校驗數(shù)據(jù)中S與加密數(shù)據(jù)T相關(guān),還與目標地址數(shù)據(jù)A相關(guān),因此可以在從存儲器中讀出數(shù)據(jù)時,無論是所述加密數(shù)據(jù)T本身受到干擾或攻擊,還是所述加密數(shù)據(jù)T非所述目標地址數(shù)據(jù)A對應(yīng)的加密數(shù)據(jù),均可以通過校驗數(shù)據(jù)S的驗證而發(fā)現(xiàn)數(shù)據(jù)異常,從而可以進一步提高存儲器的安全性。
附圖說明
圖1是本發(fā)明實施例中一種存儲器的數(shù)據(jù)寫入方法流程圖;
圖2是本發(fā)明實施例中一種存儲器的數(shù)據(jù)寫入裝置結(jié)構(gòu)示意圖;
圖3是本發(fā)明實施例中一種存儲器的數(shù)據(jù)讀出方法流程圖;
圖4是本發(fā)明實施例中一種存儲器的數(shù)據(jù)讀出裝置結(jié)構(gòu)示意圖。
具體實施方式
目前,在向存儲器中寫入數(shù)據(jù)時,通常僅根據(jù)所寫入的數(shù)據(jù)生成校驗數(shù)據(jù),進而在從存儲器中讀取數(shù)據(jù)時,根據(jù)所述校驗數(shù)據(jù)來驗證所述存儲器是否受到干擾或攻擊。然而,在上述方法中,通過所述校驗數(shù)據(jù),僅能在寫入存儲器中的數(shù)據(jù)本身發(fā)生錯誤時,檢測出所述存儲器受到干擾或攻擊,而無法在所讀出的數(shù)據(jù)非用戶輸入的目標地址的數(shù)據(jù)時,檢測出所述存儲器受到干擾或攻擊,導(dǎo)致所述存儲器的安全性較低。
針對上述問題,本發(fā)明實施例提供了一種存儲器的寫入方法,應(yīng)用所述方法,在向存儲器中寫入數(shù)據(jù)時,通過對加密數(shù)據(jù)T及所述目標地址數(shù)據(jù)A進行壓縮處理,進而可以根據(jù)壓縮后的數(shù)據(jù)獲得校驗數(shù)據(jù)S。由于所述校驗數(shù)據(jù)中S不僅與加密數(shù)據(jù)T相關(guān),還與目標地址數(shù)據(jù)A相關(guān),因此可以在從存儲器中讀出數(shù)據(jù)時,無論是所述加密數(shù)據(jù)T本身受到干擾或攻擊,還是所述加密數(shù)據(jù)T非所述目標地址數(shù)據(jù)A對應(yīng)的加密數(shù)據(jù),均可以通過校驗數(shù)據(jù)S的驗證而發(fā)現(xiàn)數(shù)據(jù)異常,進一步提高存儲器的安全性。
為使本發(fā)明的上述目的、特征和有益效果能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實施例做詳細的說明。
如圖1所示,本發(fā)明實施例提供了一種存儲器的數(shù)據(jù)寫入方法,所述方法可以包括如下步驟:
步驟11,當接收到待寫入的數(shù)據(jù)D及所述待寫入的數(shù)據(jù)D的目標地址數(shù)據(jù)A時,對所述待寫入的數(shù)據(jù)D進行加密處理,獲得加密數(shù)據(jù)T。
在具體實施中,向存儲器中寫入數(shù)據(jù)D時,可以采用對稱加密算法對所述待寫入的數(shù)據(jù)D進行加密處理,也可以采用非對稱加密算法對所述待寫入的數(shù)據(jù)D進行加密處理。其中,所述對稱加密算法可以包括DES算法、RC2算法、RC4算法、RC5算法和Blowfish算法等。所述非對稱加密算法可以包括RSA算法、ECC算法和Knapsack算法等。具體無論采用何種加密算法對所述待寫入的數(shù)據(jù)D進行加密處理,均不構(gòu)成對本發(fā)明的限制,且均在本發(fā)明的保護范圍之內(nèi)。
采用加密算法對所述待寫入的數(shù)據(jù)D進行加密處理,獲得加密數(shù)據(jù)T后, 接著執(zhí)行步驟12。
步驟12,分別對所述加密數(shù)據(jù)T及所述目標地址數(shù)據(jù)A進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1,并根據(jù)壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1獲得校驗數(shù)據(jù)S。
在具體實施中,獲得加密數(shù)據(jù)T后,可以調(diào)用第一壓縮函數(shù)按照預(yù)設(shè)位長對所述加密數(shù)據(jù)T進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1。接收到所述待寫入的數(shù)據(jù)D的目標地址數(shù)據(jù)A時,調(diào)用第二壓縮函數(shù)按照預(yù)設(shè)位長對所述目標地址數(shù)據(jù)A進行壓縮處理,獲得壓縮后的目標地址數(shù)據(jù)A1。接著,根據(jù)所述壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1執(zhí)行第一運算,獲得校驗數(shù)據(jù)S。
其中,所述第一壓縮函數(shù)和第二壓縮函數(shù)可以相同,也可以不同,例如,所述第一壓縮函數(shù)和第二壓縮函數(shù)可以為CRC(循環(huán)冗余碼校驗)算法。當然,所述第一壓縮函數(shù)和第二壓縮函數(shù)還可以為其他算法,具體不作限制,但無論第一壓縮函數(shù)和第二壓縮函數(shù)具體為何算法,均在本發(fā)明的保護范圍之內(nèi)。
在具體實施中,所述第一運算可以為異或運算,也可以為其他運算。
具體地,以所述加密數(shù)據(jù)T的位長為m比特,所述目標地址數(shù)據(jù)A的位長為n比特,所述預(yù)設(shè)位長為r比特,所述第一運算為異或運算為例,調(diào)用所述第一壓縮函數(shù)將m比特的加密數(shù)據(jù)T壓縮為r比特的加密數(shù)據(jù)T1,調(diào)用所述第二壓縮函數(shù)將n比特目標地址數(shù)據(jù)A壓縮為r比特的目標地址數(shù)據(jù)A1。對所述壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1執(zhí)行異或運算,獲得校驗數(shù)據(jù)S。
需要說明的是,所述預(yù)設(shè)位長與校驗數(shù)據(jù)S的位長相同,具體可以根據(jù)所述存儲器的校驗?zāi)芰?、所述待寫入的?shù)據(jù)D位長、所述目標地址數(shù)據(jù)A位長及所選取的第一壓縮函數(shù)和第二壓縮函數(shù)進行設(shè)置??梢岳斫獾氖牵鲱A(yù)設(shè)位長越長,所述存儲器的檢錯能力也就越強,相應(yīng)的成本也就越大。例如,當所述第一壓縮函數(shù)和第二壓縮函數(shù)均為CRC算法時,若m≤11,r=4,對于所述加密數(shù)據(jù)T中任意2比特出現(xiàn)錯誤時,所述存儲器的檢錯能力為 100%。
步驟13,將所述加密數(shù)據(jù)T及校驗數(shù)據(jù)S作為碼字寫入至所述存儲器。
在具體實施中,獲得校驗數(shù)據(jù)S后,將所述加密數(shù)據(jù)T與所述校驗數(shù)據(jù)S進行拼接形成碼字,并將所述碼字存入所述存儲器。
為了使本領(lǐng)域技術(shù)人員更好地理解和實現(xiàn)本發(fā)明,以下對上述存儲器的數(shù)據(jù)寫入方法對應(yīng)的裝置進行詳細描述。
如圖2所示,本發(fā)明實施例提供了一種存儲器的寫入裝置。所述寫入裝置可以包括:加密單元21,第一處理單元22以及寫入單元23。其中:
所述加密單元21適于當接收到待寫入的數(shù)據(jù)D及所述待寫入的數(shù)據(jù)D的目標地址數(shù)據(jù)A時,對所述待寫入的數(shù)據(jù)D進行加密處理,獲得加密數(shù)據(jù)T。所述第一處理單元22適于分別對所述加密數(shù)據(jù)T及所述目標地址數(shù)據(jù)A進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1,并根據(jù)壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1獲得校驗數(shù)據(jù)S。所述寫入單元23適于將所述加密數(shù)據(jù)T及校驗數(shù)據(jù)S作為碼字寫入至所述存儲器。
在具體實施中,所述第一處理單元22包括:第一處理子單元220,第二處理子單元221以及第一運算子單元222。其中,所述第一處理子單元220適于調(diào)用所述第一壓縮函數(shù)按照預(yù)設(shè)位長對所述加密數(shù)據(jù)T進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1。所述第二處理子單元221適于調(diào)用第二壓縮函數(shù)按照所述預(yù)設(shè)位長對所述目標地址數(shù)據(jù)進行壓縮處理,獲得壓縮后的目標地址數(shù)據(jù)A1。所述第一運算子單元222適于對所述壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1執(zhí)行第一運算,獲得校驗數(shù)據(jù)S。
在具體實施中,所述預(yù)設(shè)位長與所述存儲器的校驗?zāi)芰?、所述待寫入的?shù)據(jù)D的位長、所述目標地址數(shù)據(jù)A的位長及所述第一壓縮函數(shù)和第二壓縮函數(shù)相關(guān)。
在具體實施中,所述第一運算子單元222適于對所述壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1執(zhí)行異或運算,獲得校驗數(shù)據(jù)S。
如圖3所示,本發(fā)明實施例還提供了一種存儲器的數(shù)據(jù)讀出方法,所述 方法包括如下步驟:
步驟31,接收待讀取數(shù)據(jù)D的目標地址數(shù)據(jù)A。
步驟32,根據(jù)所述目標地址數(shù)據(jù)A讀取所述存儲器中相應(yīng)位置處的碼字。
步驟33,按照預(yù)設(shè)位長將所述碼字拆分為加密數(shù)據(jù)T及校驗數(shù)據(jù)S。
在具體實施步驟31-33時,根據(jù)所述目標地址數(shù)據(jù)A,在存儲器中搜索相應(yīng)的碼字。讀取所述碼字后,由于所述預(yù)設(shè)位長即所述校驗數(shù)據(jù)的位長,因此可以按照所述預(yù)設(shè)位長將所讀取的碼字拆分為加密數(shù)據(jù)T及校驗數(shù)據(jù)S。例如,當所述預(yù)設(shè)位長為r比特,所述碼字的位長為m+r比特時,讀取所述碼字后,將所述碼字的后r比特作為校驗數(shù)據(jù)S,剩余m比特為加密后的數(shù)據(jù)T。
其中,所述預(yù)設(shè)位長與所述存儲器的校驗?zāi)芰?、所述待讀取數(shù)據(jù)D的位長、所述目標地址數(shù)據(jù)A的位長及所述第一壓縮函數(shù)和第二壓縮函數(shù)相關(guān)。
步驟34,分別對所述加密數(shù)據(jù)T及所述目標地址數(shù)據(jù)A進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1。
在具體實施中,獲得加密數(shù)據(jù)T后,可以調(diào)用第一壓縮函數(shù)按照預(yù)設(shè)位長對所述加密數(shù)據(jù)T進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1。接收到所述目標地址數(shù)據(jù)A時,調(diào)用第二壓縮函數(shù)按照預(yù)設(shè)位長對所述目標地址數(shù)據(jù)A進行壓縮處理,獲得壓縮后的目標地址數(shù)據(jù)A1。
其中,所述第一壓縮函數(shù)和第二壓縮函數(shù)可以相同,也可以不同,例如,所述第一壓縮函數(shù)和第二壓縮函數(shù)可以為CRC算法,也可以為其他算法。所述第一運算可以為異或運算,也可以為其他運算。
具體地,以所述加密數(shù)據(jù)T的位長為m比特,所述目標地址數(shù)據(jù)A的位長為n比特,所述預(yù)設(shè)位長為r比特,所述第一運算為異或運算為例,調(diào)用所述第一壓縮函數(shù)將m比特的加密數(shù)據(jù)T壓縮為r比特的加密數(shù)據(jù)T1,調(diào)用所述第二壓縮函數(shù)將n比特目標地址數(shù)據(jù)A壓縮為r比特的目標地址數(shù)據(jù)A1。
步驟35,根據(jù)所述壓縮后的加密數(shù)據(jù)T1、目標地址數(shù)據(jù)A1及校驗數(shù)據(jù)S,對所述加密數(shù)據(jù)T進行校驗,并根據(jù)校驗結(jié)果確定所述存儲器的輸出。
在具體實施中,可以先對所述壓縮后的加密數(shù)據(jù)T1與校驗數(shù)據(jù)S執(zhí)行第一運算,再通過判斷第一運算的結(jié)果與所述壓縮后的目標地址數(shù)據(jù)A1是否相等,來對所述加密數(shù)據(jù)T進行校驗。其中,所述第一運算可以為異或運算。
當?shù)谝贿\算的結(jié)果與所述壓縮后的目標地址數(shù)據(jù)A1相等時,所述加密數(shù)據(jù)T為正確的數(shù)據(jù)。所謂加密數(shù)據(jù)T為正確的數(shù)據(jù),即所述加密數(shù)據(jù)T本身沒有受到干擾或攻擊,且所述加密數(shù)據(jù)為所述存儲器中與所述目標地址數(shù)據(jù)A對應(yīng)的數(shù)據(jù)。當所述加密數(shù)據(jù)T為正確的數(shù)據(jù)時,對所述加密數(shù)據(jù)T進行解密,獲得解密后的數(shù)據(jù)D,輸出所述解密后的數(shù)據(jù)D。
當?shù)谝贿\算的結(jié)果與所述壓縮后的目標地址數(shù)據(jù)A1不相等時,所述加密數(shù)據(jù)T為錯誤的數(shù)據(jù)。所謂加密數(shù)據(jù)T為錯誤的數(shù)據(jù),即所述加密數(shù)據(jù)T本身受到干擾或攻擊,或者述加密數(shù)據(jù)非所述存儲器中與所述目標地址數(shù)據(jù)A對應(yīng)的數(shù)據(jù),或者所述加密數(shù)據(jù)T本身受到干擾或攻擊且非所述存儲器中與所述目標地址數(shù)據(jù)A對應(yīng)的數(shù)據(jù)。當所述加密數(shù)據(jù)T為錯誤的數(shù)據(jù)時,可以輸出相應(yīng)的提示信號,比如產(chǎn)生相應(yīng)的報警信號,以通知用戶所述存儲器受到干擾或攻擊,方便用戶調(diào)用相應(yīng)的防護策略,比如,輸出預(yù)設(shè)的數(shù)據(jù)。
由上述內(nèi)容可知,應(yīng)用本發(fā)明實施例中所述存儲器的數(shù)據(jù)寫入方法,在向存儲器中寫入數(shù)據(jù)時,通過對加密數(shù)據(jù)T及所述目標地址數(shù)據(jù)A進行壓縮處理,進而可以根據(jù)壓縮后的數(shù)據(jù)獲得校驗數(shù)據(jù)S。由于所述校驗數(shù)據(jù)中S不僅與加密數(shù)據(jù)T相關(guān),還與目標地址數(shù)據(jù)A相關(guān),因此可以在從存儲器中讀出數(shù)據(jù)時,無論是所述加密數(shù)據(jù)T本身受到干擾或攻擊,還是所述加密數(shù)據(jù)T非所述目標地址數(shù)據(jù)A對應(yīng)的加密數(shù)據(jù),均可以通過校驗數(shù)據(jù)S的驗證而發(fā)現(xiàn)數(shù)據(jù)異常,從而可以進一步提高存儲器的安全性。
為了使本領(lǐng)域技術(shù)人員更好地理解和實現(xiàn)本發(fā)明,以下對上述存儲器的數(shù)據(jù)讀出方法對應(yīng)的裝置進行詳細描述。
如圖4所示,本發(fā)明實施例提供了一種存儲器的數(shù)據(jù)讀出裝置。所述裝置可以包括:接收單元41,讀取單元42,拆分單元43,第二處理單元44以及第三處理單元45。其中:
所述接收單元41適于接收待讀取數(shù)據(jù)D的目標地址數(shù)據(jù)A。所述讀取單 元42適于根據(jù)所述目標地址數(shù)據(jù)A讀取所述存儲器中相應(yīng)位置處的碼字。所述拆分單元43適于按照預(yù)設(shè)位長將所述碼字拆分為加密數(shù)據(jù)T及校驗數(shù)據(jù)S。所述第二處理單元44適于分別對所述加密數(shù)據(jù)T及所述目標地址數(shù)據(jù)A進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1及目標地址數(shù)據(jù)A1。所述第三處理單元45適于根據(jù)所述壓縮后的加密數(shù)據(jù)T1、目標地址數(shù)據(jù)A1及校驗數(shù)據(jù)S,對所述加密后的數(shù)據(jù)T進行校驗,并根據(jù)校驗結(jié)果確定所述存儲器的輸出。
進一步地,所述第二處理單元44可以包括:第三處理子單元441及第四處理子單元442。其中,所述第三處理子單元441,適于調(diào)用第一壓縮函數(shù)按照預(yù)設(shè)位長對所述加密數(shù)據(jù)T進行壓縮處理,獲得壓縮后的加密數(shù)據(jù)T1。第四處理子單元442,適于調(diào)用第二壓縮函數(shù)按照所述預(yù)設(shè)位長對所述目標地址數(shù)據(jù)進行壓縮處理,獲得壓縮后的目標地址數(shù)據(jù)A1。
在具體實施中,所述第三處理單元45可以包括:第二運算子單元、判斷子單元及解密子單元(未示出)。所述第二運算子單元,適于對所述壓縮后的加密數(shù)據(jù)T1與校驗數(shù)據(jù)S執(zhí)行第一運算。所述判斷子單元,適于判斷所述第一運算后的結(jié)果與所述壓縮后的目標地址數(shù)據(jù)A1是否相等。所述解密子單元,適于當所述第一運算后的結(jié)果與所述壓縮后的目標地址數(shù)據(jù)A1相等時,判定所述加密數(shù)據(jù)T通過校驗,對所述加密數(shù)據(jù)T進行解密后輸出。
其中,所述第一運算可以為異或運算。所述預(yù)設(shè)位長與所述存儲器的校驗?zāi)芰Α⑺龃x取數(shù)據(jù)D的位長、所述目標地址數(shù)據(jù)A的位長及所述第一壓縮函數(shù)和第二壓縮函數(shù)相關(guān)。
進一步地,所述第三處理單元45還可以包括:提示子單元(未示出)。所述提示子單元適于當所述第一運算后的結(jié)果與所述壓縮后的目標地址數(shù)據(jù)A1不相等時,判定所述加密數(shù)據(jù)T未通過校驗,輸出相應(yīng)的提示信號,以調(diào)用相應(yīng)的防護策略。
由上述內(nèi)容可知,在向存儲器中寫入數(shù)據(jù)時,通過對加密數(shù)據(jù)T及所述目標地址數(shù)據(jù)A進行壓縮處理,進而可以根據(jù)壓縮后的數(shù)據(jù)獲得校驗數(shù)據(jù)S。由于所述校驗數(shù)據(jù)中S不僅與加密數(shù)據(jù)T相關(guān),還與目標地址數(shù)據(jù)A相關(guān),因此可以在從存儲器中讀出數(shù)據(jù)時,無論是所述加密數(shù)據(jù)T本身受到干擾或 攻擊,還是所述加密數(shù)據(jù)T非所述目標地址數(shù)據(jù)A對應(yīng)的加密數(shù)據(jù),均可以通過校驗數(shù)據(jù)S來驗證。
本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:ROM、RAM、EEPROM、FLASH、磁盤或光盤等。
雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與修改,因此本發(fā)明的保護范圍應(yīng)當以權(quán)利要求所限定的范圍為準。