專利名稱:提高帶有片外存儲器的電子產品數(shù)據安全存儲的方法
技術領域:
本發(fā)明涉及電子產品安全領域,特別涉及一種提高帶有片外存儲器的電子產 品數(shù)據安全存儲的方法。
背景技術:
隨著電子產品的應用領域越來越廣泛,人們對電子產品存儲信息的需求也越 來越多,為適應這一需求,目前越來越多的電子產品都采用在主控芯片外擴一片 外存儲器的方式來實現(xiàn)。所謂固件程序(Firmware)就是寫入EPROM或EEPROM中的程序,與普 通軟件不同,它是固化在集成電路內部的程序代碼,負責控制和協(xié)調集成電路的 功能,擔任著一個系統(tǒng)最基礎、最底層工作的軟件, 一般電子產品生產商或開發(fā) 商都會自己開發(fā)電子產品的固件程序。但是,在帶片外存儲器的電子產品的生產過程中由于一般都是批量生產,這 樣每次燒寫到電子產品的主控芯片中的固件程序都是一致的,因此,使得電子產 品中主控芯片對其外擴的片外存儲器的存儲規(guī)則、加密規(guī)則等也都存在一致性, 如果其中的一個或幾個電子產品被破解或被解剖后,其他同類別的電子產品的使 用也將變得不再安全;另外,由于電子產品中的片外存儲器很容易被克隆或直接 用到其他電子產品中,所以這種片外存儲器的存儲規(guī)則、加密規(guī)則等存在的一致 性會大大降低電子產品數(shù)據的安全性。發(fā)明內容為了解決上述電子產品由于其內與主控芯片連接的片外存儲器的存儲規(guī)則 及加密規(guī)則等的一致性,導致的電子產品數(shù)據安全性低的問題,本發(fā)明提出一種 提高電子產品數(shù)據安全存儲的方法,通過利用在嵌入固件程序中的全排列隨機數(shù) 表,使每個產品中存儲區(qū)域的存儲規(guī)則及加密規(guī)則等發(fā)生變化,從而提升電子產 品的安全性能。一種提高帶有片外存儲器的電子產品數(shù)據安全存儲的方法,其特征是所述方法包括下列步驟…在電子產品的主控芯片中燒寫嵌入全排列隨機數(shù)表的固件程序;--依據嵌入在所述主控芯片內的固件程序中的全排列隨機數(shù)表對所述片外 存儲器進行亂序讀/寫操作和/或密文讀/寫操作。所述對片外存儲器亂序讀/寫操作方法的具體步驟為將主控芯片對片外存儲器進行讀/寫操作的原地址的部分或全部數(shù)值作為索 引值,在固件程序中嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值,將所 述內容值替代所述原地址中作為索引部分數(shù)值后的地址數(shù)據作為新的讀出/寫入 地址,或將所述內容值作為新的讀出/寫入地址,對所述片外存儲器進行讀/寫操 作。所述對片外存儲器進行亂序讀/寫操作方法的具體步驟為將主控芯片對片外存儲器進行讀/寫操作的原地址的部分或全部數(shù)值利用預 先設定算法計算得到索引值,在固件程序嵌入的全排列隨機數(shù)表中找到該索引值 對應的內容值,將所述內容值替代所述原地址中作為索引部分數(shù)值后的地址數(shù)據 作為新的讀出/寫入地址,或將所述內容值作為新的讀出/寫入地址,對所述片外 存儲器進行讀/寫操作。所述對片外存儲器進行密文寫操作的方法具體步驟為將主控芯片對片外存儲器進行寫操作的地址的部分或全部作為索引值,在固 件程序嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值,利用所述內容值對 要寫入的數(shù)據做加密運算,將加密結果寫入所述地址。所述對片外存儲器進行密文讀操作的方法具體步驟為將主控芯片對片外i儲器進行讀操作的地址的部分或全部作為索引值,在固 件程序嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值,利用所述內容值對 片外存儲器所述地址中的數(shù)據做解密運算,將解密結果讀出。所述對片外存儲器進行密文寫操作的方法具體步驟為將主控芯片對片外存儲器進行寫操作的地址的部分或全部利用預先設定算 法計算得到索引值,在固件程序嵌入的全排列隨機數(shù)表中找到該索引值對應的內 容值,利用所述內容值對要寫入的數(shù)據做加密運算,將加密結果寫入所述地址。所述對片外存儲器進行密文讀操作的方法具體為將主控芯片對片外存儲器進行讀操作的地址的部分或全部利用預先設定算 法計算得到索引值,在固件程序嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值,利用所述內容值對片外存儲器所述地址中的數(shù)據做解密運算,將解密結果 讀出。有益效果本發(fā)明提供的一種提高帶有片外存儲器的電子產品數(shù)據安全存儲的方法,由于每個電子產品的固件程序中嵌入的全排列隨機數(shù)表都是不同的,所 以通過利用嵌入在固件程序中的全排列隨機數(shù)表,使每個產品中片外存儲器的存 儲規(guī)則或加密規(guī)則互不相同,使得即使破解其中的一個或幾個電子產品,并不能 對其他電子產品的使用產生影響,另外,也可以有效防止片外存儲器被克隆或直 接與其他的主控芯片連接,用于其他的產品中,從而提升電子產品的安全性能; 另一方面,由于本發(fā)明提供的方法是通過對嵌入在固件程序中的全排列隨機數(shù)表 進行查表進而實現(xiàn)安全讀寫的,查表的效率相對其他的利用算法等而言,效率很 高,故本發(fā)明讀寫的速度很快。
圖l是本發(fā)明的硬件結構框圖; 圖1-1是本發(fā)明實施例1提供的一種亂序寫操作的方法流程圖; 圖1-2是本發(fā)明實施例1提供的一個亂序寫操作示例的示意圖; 圖1-3是本發(fā)明實施例1提供的一種亂序讀操作的方法流程圖; 圖1-4是本發(fā)明實施例1提供的一個亂序讀操作示例的示意圖; 圖2-1是本發(fā)明實施例2提供的一種亂序寫操作的方法流程圖; 圖2-2是本發(fā)明實施例2提供的一個亂序寫操作示例的示意圖; 圖2-3是本發(fā)明實施例2提供的一個亂序讀操作的方法流程圖; 圖2-4是本發(fā)明實施例2提供的一個亂序讀操作示例的示意圖;圖3-1是本發(fā)明實施例3提供的一個密文寫操作的方法流程圖;圖3-2是本發(fā)明實施例3提供的一個密文讀操作的方法流程圖;圖4-1是本發(fā)明實施例4提供的一個密文寫操作的方法流程圖; 圖4-2是本發(fā)明實施例4提供的一個密文讀操作的方法流程圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實 施方式作進一步地詳細描述。包括主控芯片和外擴片外存儲器的電子產品,在生產時,即向電子產品中的 主控芯片燒寫固件程序時,將全排列隨機數(shù)表嵌入到固件程序中燒寫到主控芯片 中,由于每個全排列隨機數(shù)表是不同的,所以導致每個電子產品的主控芯片中燒 寫的固件程序存在不一致性,主控芯片利用嵌入在固件程序中的全排列隨機數(shù)表 對其外擴的片外存儲器進行讀/寫操作時,使得每個電子產品中片外存儲器的存 儲規(guī)則或加密規(guī)則等都具有了不一致性,從而提高了電子產品的安全性,避免了施例1:參見圖1-1,本發(fā)明實施例提供了一種提高帶有片外存儲器的電子產品數(shù)據 安全存儲的方法,其中電子產品包括主控芯片和片外存儲器,上述方法包括如下 步驟在主控芯片中燒寫嵌入全排列隨機數(shù)表的固件程序;優(yōu)選的,可以采用一種能夠自動產生全排列隨機數(shù)表,并能向被燒寫程序中 自動嵌入上述全排列隨機數(shù)表的智能編程器來實現(xiàn)在主控芯片中燒寫嵌入全排 列隨機數(shù)表的固件程序。其中智能編程器包括編程接口和程序存儲模塊,另外還包括設置模塊,用于設置表生成模塊生成的全排列隨機數(shù)表的表首地址和表長 度,上述表首地址指向全排列隨機數(shù)表向主控芯片中燒寫的表首位置;優(yōu)選的,設置模塊具體可以為存儲模塊,用于存儲表首地址和表長度,作為 表生成模塊生成的全排列隨機數(shù)表的表首地址和表長度,其中表首地址指向所述 全排列隨機數(shù)表向主控芯片中燒寫的表首位置。優(yōu)選的,設置模塊具體還可以為獲取模塊,用于根據預先定義的特征值,查 找并獲取表首地址和表長度,作為表生成模塊生成的全排列隨機數(shù)表的表首地址 和表長度,其中表首地址指向所述全排列隨機數(shù)表向主控芯片中燒寫的表首位 置。在實際應用中,設置模塊設置的表首地址和表長度可以為一對或多對,分別 與一個或多個主控芯片類型相對應。表生成模塊,用于生成設置模塊中設置的表長度的全排列隨機數(shù)表;表生成模塊可以由全排列隨機數(shù)生成芯片或振蕩電路實現(xiàn),還可以由內置偽全排列隨機數(shù)生成算法的微控制芯片實現(xiàn),表生成模塊還可以與編程模塊集成在一顆控制芯 片中實現(xiàn)。其中偽全排列隨機數(shù)生成算法可以是生產商或開發(fā)商自設置開發(fā)的偽全排列隨機數(shù)生成算法,也可以利用現(xiàn)有的一些偽全排列隨機數(shù)生成算法。所謂 全排列隨機數(shù)表,通俗的說就是該隨機數(shù)表中的隨機數(shù)都是不重復的,是一種全 排列的狀態(tài),以便進一步提高安全性。編程模塊,用于通過編程接口將表生成模塊生成的全排列隨機數(shù)表及程序存 儲模塊中存儲的被燒寫程序以嵌套的方式燒寫到主控芯片中,其中寫入主控芯片 中的全排列隨機數(shù)表的表首位置為設置模塊中設置的表首地址。編程模塊優(yōu)選的 可以由一顆控制芯片實現(xiàn)。優(yōu)選的,智能編程器還包括為編程器提供電源管理的電源回路。優(yōu)選的,智能編程器還包括用于指示當前編程器及其電源工作狀態(tài)的狀態(tài)指 示模塊,等。主控芯片依據嵌入在固件程序中的全排列隨機數(shù)表對與其連接的片外存儲 器進行亂序寫操作的步驟包括步驟Sh將主控芯片對片外存儲器進行寫操作的原地址的部分或全部作為 索引值;步驟S2:在固件程序嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值;步驟S3:將該內容值替代原地址中作為索引的部分作為新的寫入地址,或 將該內容值作為新的寫入地址,對該片外存儲器進行寫操作。參見圖1-2,給出利用嵌入在固件程序中的全排列隨機數(shù)表對片外存儲器進 行亂序寫操作的一個示例,主控芯片要對片外存儲器的Addressl地址進行寫操 作,要寫入的內容為A,地址Addressl共16位,由前4位L、中間8位M和后 4位N組成,取地址Addressl的中間8位M作為索引值,在固件程序中嵌入的 全排列隨機數(shù)表Table中找到該索引值M對應的內容值K,將該內容值K替代 Addressl的中間8位,前4位L和后4位N不變,作為新的地址Address2,將 主控芯片要寫入片外存儲器中的內容A寫入片外存儲器地址Address2中。還可以將主控芯片Addressl的全部16位內容全部作為索引值,在固件程序 中嵌入的全排列隨機數(shù)表Table中找到該索引值對應的內容值K,將內容值K作 為新的地址Address2,將主控芯片要寫入片外存儲器中的內容A寫入片外存儲 器地址Address2中。參見圖1-3,本發(fā)明實施例提供的主控芯片依據嵌入在固件程序中的全排列 隨機數(shù)表對與其連接的片外存儲器進行亂序讀操作的步驟包括步驟Dl:將主控芯片對片外存儲器進行讀操作的原地址的部分或全部作為 索引值;步驟D2:在固件程序嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值; 步驟D3:將該內容值替代原地址中作為索引的部分作為新的讀取地址,或 將該內容值作為新的讀取地址,對該片外存儲器進行讀操作。參見圖1-4,給出利用嵌入在固件程序中的全排列隨機數(shù)表對與其連接的片 外存儲器進行亂序讀操作的一個示例,主控芯片要對片外存儲器的Addressl地 址進行讀操作,地址Addressl共16位,由前4位L、中間8位M和后4位N 組成,取地址Addressl的中間8位M作為索引值,在固件程序中嵌入的全排列 隨機數(shù)表Table中找到該索引值M對應的內容值K,將該內容值K替代Addressl 的中間8位,前4位L和后4位N不變,作為新的地址Address2,主控芯片從新的地址Address2中讀出內容到主控芯片中即可。還可以將主控芯片Addressl的全部16位內容全部作為索引值,在固件程序 中嵌入的全排列隨機數(shù)表Table中找到該索弓I值對應的內容值K,將內容值K作 為新的地址Address2,主控芯片從新的地址Address2中讀出內容到主控芯片中 即可。所謂全排列隨機數(shù)表,通俗的說就是該隨機數(shù)表中的隨機數(shù)都是不重復的, 是一種全排列的狀態(tài)。由此可見,由于在生產電子產品即向電子產品中的主控芯片內燒寫固件程序 的時候,嵌入在每個電子產品中的全排列隨機數(shù)表是不固定的,是隨機生成的, 所以當電子產品中的主控芯片向與其相連的片外存儲器進行寫操作時,即使是批 量生產的電子產品,寫入到片外存儲器中的地址也是不一致的,即利用嵌入在固 件程序中的全排列隨機數(shù)表實現(xiàn)了對片外存儲器的亂序存儲,改變了其存儲規(guī)則 的一致性,這樣,即使是破解了同一批次的其中一個或幾個產品,其他的產品的 安全性也是很高的,即大大提高了電子產品存儲的安全能力。實施例2:參見圖2-1,本發(fā)明實施例提供了一種提高帶有片外存儲器的電子產品數(shù)據 安全存儲的方法,其中電子產品包括主控芯片和片外存儲器,上述方法包括如下 步驟在主控芯片中燒寫嵌入全排列隨機數(shù)表的固件程序;優(yōu)選的,可以采用一種能夠自動產生全排列隨機數(shù)表,并能向被燒寫程序中 自動嵌入上述全排列隨機數(shù)表的智能編程器來實現(xiàn)在主控芯片中燒寫嵌入全排 列隨機數(shù)表的固件程序。其中智能編程器包括編程接口和程序存儲模塊,另外還包括設置模塊,用于設置表生成模塊生成的全排列隨機數(shù)表的表首地址和表長度,上述表首地址指向全排列隨機數(shù)表向主控芯片中燒寫的表首位置;優(yōu)選的,設置模塊具體可以為存儲模塊,用于存儲表首地址和表長度,作為表生成模塊生成的全排列隨機數(shù)表的表首地址和表長度,其中表首地址指向所述全排列隨機數(shù)表向主控芯片中燒寫的表首位置。優(yōu)選的,設置模塊具體還可以為獲取模塊,用于根據預先定義的特征值,査找并獲取表首地址和表長度,作為表生成模塊生成的全排列隨機數(shù)表的表首地址和表長度,其中表首地址指向所述全排列隨機數(shù)表向主控芯片中燒寫的表首位置。在實際應用中,設置模塊設置的表首地址和表長度可以為一對或多對,分別與一個或多個主控芯片類型相對應。表生成模塊,用于生成設置模塊中設置的表長度的全排列隨機數(shù)表;表生成 模塊可以由全排列隨機數(shù)生成芯片或振蕩電路實現(xiàn),還可以由內置偽全排列隨機 數(shù)生成算法的微控制芯片實現(xiàn),表生成模塊還可以與編程模塊集成在一顆控制芯 片中實現(xiàn)。其中偽全排列隨機數(shù)生成算法可以是生產商或開發(fā)商自設置開發(fā)的偽 全排列隨機數(shù)生成算法,也可以利用現(xiàn)有的一些偽全排列隨機數(shù)生成算法。所謂 全排列隨機數(shù)表,通俗的說就是該隨機數(shù)表中的隨機數(shù)都是不重復的,是一種全 排列的狀態(tài),以便進一步提高安全性。編程模塊,用于通過編程接口將表生成模塊生成的全排列隨機數(shù)表及程序存 儲模塊中存儲的被燒寫程序以嵌套的方式燒寫到主控芯片中,其中寫入主控芯片 中的全排列隨機數(shù)表的表首位置為設置模塊中設置的表首地址。編程模塊優(yōu)選的 可以由一顆控制芯片實現(xiàn)。優(yōu)選的,智能編程器還包括為編程器提供電源管理的電源回路。優(yōu)選的,智能編程器還包括用于指示當前編程器及其電源工作狀態(tài)的狀態(tài)指 示模塊,等。主控芯片依據嵌入在固件程序中的全排列隨機數(shù)表對與其連接的片外存儲 器進行亂序寫操作的步驟包括步驟Ql:將主控芯片對片外存儲器進行寫操作的原地址的部分或全部利用 預先設定算法計算得到索引值;步驟Q2:在固件程序嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值;步驟Q3:將該內容值替代原地址中作為索引的部分作為新的寫入地址,或 將該內容值作為新的寫入地址,對該片外存儲器進行寫操作。參見圖2-2,給出利用嵌入在固件程序中的全排列隨機數(shù)表對片外存儲器進 行亂序寫操作的一個示例,主控芯片要對片外存儲器的Addressl地址進行寫操 作,要寫入的內容為A,地址Addressl共16位,由前4位L、中間8位M和后 4位N組成,取地址Addressl的中間8位M利用預先設定算法計算得到索引值 i,這里的算法可根據需要自行設計,比如加、減、乘、除、與、或、非、位置 替換等等均可,在固件程序中嵌入的全排列隨機數(shù)表Table中找到該索引值i對 應的內容值K,將該內容值K替代Addressl的中間8位,前4位L和后4位N 不變,作為新的地址Address2,將主控芯片要寫入片外存儲器中的內容A寫入 片外存儲器地址Address2中。還可以將主控芯片Addressl的全部16位內容全部利用預先設定算法計算得 到索引值i,在固件程序中嵌入的全排列隨機數(shù)表Table中找到該索引值i對應的內容值K,將內容值K作為新的地址Address2,將主控芯片要寫入片外存儲器 中的內容A寫入片外存儲器地址Address2中。參見圖2-3,本發(fā)明實施例提供的主控芯片依據嵌入在固件程序中的全排列 隨機數(shù)表對與其連接的片外存儲器進行亂序讀操作的步驟包括步驟Kl:將主控芯片對片外存儲器進行讀操作的原地址的部分或全部利用 預先設定算法計算得到索引值;步驟K2:在固件程序嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值;步驟K3:將該內容值替代原地址中作為索引的部分作為新的讀取地址,或 將該內容值作為新的讀取地址,對該片外存儲器進行讀操作。參見圖2-4,給出利用嵌入在固件程序中的全排列隨機數(shù)表對與其連接的片 外存儲器進行亂序讀操作的一個示例,主控芯片要對片外存儲器的Addressl地 址進行讀操作,地址Addressl共16位,由前4位L、中間8位M和后4位N 組成,取地址Addressl的中間8位M利用預先設定算法計算得到索引值i,這 里的算法可根據需要自行設計,比如加、減、乘、除、與、或、非、位置替換等 等均可,在固件程序中嵌入的全排列隨機數(shù)表Table中找到該索引值i對應的內 容值K,將該內容值K作為新的地址Address2的中間8位,前4位L和后4位 N不變,主控芯片從新的地址Address2中讀出內容到主控芯片中即可。還可以將主控芯片Addressl的全部16位內容全部利用預先設定算法計算得 到索引值i,在固件程序中嵌入的全排列隨機數(shù)表Table中找到該索引值i對應的 內容值K,將內容值K作為新的地址Address2,主控芯片從新的地址Address2 中讀出內容到主控芯片中即可。由此可見,由于在生產電子產品即向電子產品中的主控芯片內燒寫固件程序 的時候,嵌入在每個電子產品中的全排列隨機數(shù)表是不固定的,是隨機生成的, 所以當電子產品中的主控芯片向與其相連的片外存儲器進行寫操作時,即使是批 量生產的電子產品,寫入到片外存儲器中的地址也是不一致的,即利用嵌入在固 件程序中的全排列隨機數(shù)表實現(xiàn)了對片外存儲器的亂序存儲,改變了其存儲規(guī)則 的一致性,同理,當電子產品中的主控芯片向與其相連的片外存儲器進行讀操作 時也是一樣,所以,即使是破解了同一批次的其中一個或幾個產品,其他的產品 的安全性也是很高的,即大大提高了電子產品存儲的安全能力。實施例3:參見圖3-1,本發(fā)明實施例提供了一種提高帶有片外存儲器的電子產品數(shù)據 安全存儲的方法,其中電子產品包括主控芯片和片外存儲器,上述方法包括如下 步驟在主控芯片中燒寫嵌入全排列隨機數(shù)表的固件程序;優(yōu)選的,可以采用一種能夠自動產生全排列隨機數(shù)表,并能向被燒寫程序中 自動嵌入上述全排列隨機數(shù)表的智能編程器來實現(xiàn)在主控芯片中燒寫嵌入全排 列隨機數(shù)表的固件程序。其中智能編程器包括編程接口和程序存儲模塊,另外還包括-設置模塊,用于設置表生成模塊生成的全排列隨機數(shù)表的表首地址和表長 度,上述表首地址指向全排列隨機數(shù)表向主控芯片中燒寫的表首位置;優(yōu)選的,設置模塊具體可以為存儲模塊,用于存儲表首地址和表長度,作為 表生成模塊生成的全排列隨機數(shù)表的表首地址和表長度,其中表首地址指向所述 全排列隨機數(shù)表向主控芯片中燒寫的表首位置。優(yōu)選的,設置模塊具體還可以為獲取模塊,用于根據預先定義的特征值,查 找并獲取表首地址和表長度,作為表生成模塊生成的全排列隨機數(shù)表的表首地址 和表長度,其中表首地址指向所述全排列隨機數(shù)表向主控芯片中燒寫的表首位 置。在實際應用中,設置模塊設置的表首地址和表長度可以為一對或多對,分別 與一個或多個主控芯片類型相對應。表生成模塊,用于生成設置模塊中設置的表長度的全排列隨機數(shù)表;表生成 模塊可以由全排列隨機數(shù)生成芯片或振蕩電路實現(xiàn),還可以由內置偽全排列隨機 數(shù)生成算法的微控制芯片實現(xiàn),表生成模塊還可以與編程模塊集成在一顆控制芯 片中實現(xiàn)。其中偽全排列隨機數(shù)生成算法可以是生產商或開發(fā)商自設置開發(fā)的偽全排列隨機數(shù)生成算法,也可以利用現(xiàn)有的一些偽全排列隨機數(shù)生成算法。所謂全排列隨機數(shù)表,通俗的說就是該隨機數(shù)表中的隨機數(shù)都是不重復的,是一種全排列的狀態(tài),以便進一步提高安全性。編程模塊,用于通過編程接口將表生成模塊生成的全排列隨機數(shù)表及程序存儲模塊中存儲的被燒寫程序以嵌套的方式燒寫到主控芯片中,其中寫入主控芯片中的全排列隨機數(shù)表的表首位置為設置模塊中設置的表首地址。編程模塊優(yōu)選的可以由一顆控制芯片實現(xiàn)。優(yōu)選的,智能編程器還包括為編程器提供電源管理的電源回路。 優(yōu)選的,智能編程器還包括用于指示當前編程器及其電源工作狀態(tài)的狀態(tài)指示模塊,等。主控芯片依據嵌入在固件程序中的全排列隨機數(shù)表對與其連接的片外存儲 器進行密文寫操作的步驟包括步驟Al:將主控芯片對片外存儲器進行寫操作的地址的部分或全部作為索引值;步驟A2:在固件程序嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值; 步驟A3:利用該內容值對要寫入的數(shù)據做加密運算; 步驟A4:將加密結果寫入上述地址。為了更清楚的說明,下面給出一個利用嵌入在固件程序中的全排列隨機數(shù)表對片外存儲器進行密文寫操作的示例,主控芯片要對片外存儲器的Addressl地 址進行寫操作,要寫入的內容為A,地址Addressl共16位,由前4位L、中間 8位M和后4位N組成,取地址Addressl的中間8位M作為索引值,在固件程 序中嵌入的全排列隨機數(shù)表Table中找到該索引值對應的內容值K,利用該內容 值K對要寫入的內容A做加密運算,得到加密結果A',加密運算比如可以是A '=A ' K等,將加密結果A'寫入地址Addressl中。還可以是將地址Addressl 的全部作為索引值。參見圖3-2,本發(fā)明實施例提供的主控芯片依據嵌入在固件程序中的全排列 隨機數(shù)表對與其連接的片外存儲器進行密文讀操作的步驟包括步驟Bl:將主控芯片對片外存儲器進行讀操作的地址的部分或全部作為索 引值;步驟B2:在固件程序嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值; 步驟B3:利用該內容值對上述地址中的數(shù)據做解密運算; 步驟B4:將解密結果讀出到主控芯片中。為了更清楚的說明,下面給出一個利用嵌入在固件程序中的全排列隨機數(shù)表 對片外存儲器進行密文讀操作的示例,主控芯片要對片外存儲器的Addressl地 址進行寫操作,該地址Addressl內存儲的內容為A',地址Addressl共16位, 由前4位L、中間8位M和后4位N組成,取地址Addressl的中間8位M作 為索引值,在固件程序中嵌入的全排列隨機數(shù)表Table中找到該索引值對應的內 容值K,利用該內容值K對地址Addressl內存儲的內容為A'做解密運算,得 到解密結果A,將解密結果A讀出到主控芯片中,解密算法比如可以是A' = A~ K等。還可以是將地址Addressl的全部作為索引值。本實施例中的加密算法和解密算法包括可逆算法,包括DES、 3DES、 RC2、 RC4等均可。由此可見,由于在生產電子產品即向電子產品中的主控芯片內燒寫固件程序 的時候,嵌入在每個電子產品中的全排列隨機數(shù)表是不固定的,是隨機生成的, 所以當電子產品中的主控芯片向與其相連的片外存儲器進行寫操作時,即使是批 量生產的電子產品,寫入到片外存儲器中的內容也是不一致的,即利用嵌入在固件程序中的全排列隨機數(shù)表實現(xiàn)了對片外存儲器的密文存儲,改變了其存儲及加 密規(guī)則的一致性,同理,當電子產品中的主控芯片向與其相連的片外存儲器進行 讀操作時也是一樣,所以,即使是破解了同一批次的其中一個或幾個產品,其他 的產品的安全性也是很高的,即大大提高了電子產品存儲的安全能力。 實施例4:參見圖4-1,本發(fā)明實施例提供了一種提高帶有片外存儲器的電子產品數(shù)據 安全存儲的方法,其中電子產品包括主控芯片和片外存儲器,上述方法包括如下 步驟在主控芯片中燒寫嵌入全排列隨機數(shù)表的固件程序;優(yōu)選的,可以采用一種能夠自動產生全排列隨機數(shù)表,并能向被燒寫程序中 自動嵌入上述全排列隨機數(shù)表的智能編程器來實現(xiàn)在主控芯片中燒寫嵌入全排 列隨機數(shù)表的固件程序。其中智能編程器包括編程接口和程序存儲模塊,另外還包括設置模塊,用于設置表生成模塊生成的全排列隨機數(shù)表的表首地址和表長 度,上述表首地址指向全排列隨機數(shù)表向主控芯片中燒寫的表首位置;優(yōu)選的,設置模塊具體可以為存儲模塊,用于存儲表首地址和表長度,作為 表生成模塊生成的全排列隨機數(shù)表的表首地址和表長度,其中表首地址指向所述 全排列隨機數(shù)表向主控芯片中燒寫的表首位置。優(yōu)選的,設置模塊具體還可以為獲取模塊,用于根據預先定義的特征值,査 找并獲取表首地址和表長度,作為表生成模塊生成的全排列隨機數(shù)表的表首地址 和表長度,其中表首地址指向所述全排列隨機數(shù)表向主控芯片中燒寫的表首位 置。在實際應用中,設置模塊設置的表首地址和表長度可以為一對或多對,分別 與一個或多個主控芯片類型相對應。表生成模塊,用于生成設置模塊中設置的表長度的全排列隨機數(shù)表;表生成 模塊可以由全排列隨機數(shù)生成芯片或振蕩電路實現(xiàn),還可以由內置偽全排列隨機 數(shù)生成算法的微控制芯片實現(xiàn),表生成模塊還可以與編程模塊集成在一顆控制芯 片中實現(xiàn)。其中偽全排列隨機數(shù)生成算法可以是生產商或開發(fā)商自設置開發(fā)的偽 全排列隨機數(shù)生成算法,也可以利用現(xiàn)有的一些偽全排列隨機數(shù)生成算法。所謂 全排列隨機數(shù)表,通俗的說就是該隨機數(shù)表中的隨機數(shù)都是不重復的,是一種全 排列的狀態(tài),以便進一步提高安全性。編程模塊,用于通過編程接口將表生成模塊生成的全排列隨機數(shù)表及程序存 儲模塊中存儲的被燒寫程序以嵌套的方式燒寫到主控芯片中,其中寫入主控芯片中的全排列隨機數(shù)表的表首位置為設置模塊中設置的表首地址。編程模塊優(yōu)選的可以由一顆控制芯片實現(xiàn)。優(yōu)選的,智能編程器還包括為編程器提供電源管理的電源回路。 優(yōu)選的,智能編程器還包括用于指示當前編程器及其電源工作狀態(tài)的狀態(tài)指示模塊,等。主控芯片依據嵌入在固件程序中的全排列隨機數(shù)表對與其連接的片外存儲 器進行密文寫操作的步驟包括步驟Fl:將主控芯片對片外存儲器進行寫操作的地址的部分或全部利用預 先設定算法計算得到索引值;步驟F2:在固件程序嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值;步驟F3:利用該內容值對要寫入的數(shù)據做加密運算;步驟F4:將加密結果寫入上述地址。為了更清楚的說明,下面給出一個利用嵌入在固件程序中的全排列隨機數(shù)表對片外存儲器進行密文寫操作的示例,主控芯片要對片外存儲器的Addressl地 址進行寫操作,要寫入的內容為A,地址Addressl共16位,由前4位L、中間 8位M和后4位N組成,取地址Addressl的中間8位M利用預先設定算法計算 得到索引值i,這里的算法可根據需要自行設計,比如加、減、乘、除、與、或、 非、位置替換等等均可,在固件程序中嵌入的全排列隨機數(shù)表Table中找到該索 引值i對應的內容值K,利用該內容值K對要寫入的內容A做加密運算,得到 加密結果A',將加密結果A'寫入地址Addressl中。還可以是將地址Addressl 的全部作為索引值。參見圖4-2,本發(fā)明實施例提供的主控芯片依據嵌入在固件程序中的全排列 隨機數(shù)表對與其連接的片外存儲器進行密文讀操作的步驟包括步驟HI:將主控芯片對片外存儲器進行讀操作的地址的部分或全部利用預 先設定算法計算得到索引值;步驟H2:在固件程序嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值;步驟H3:利用該內容值對上述地址中的數(shù)據做解密運算;步驟H4:將解密結果讀出到主控芯片中。為了更清楚的說明,下面給出一個利用嵌入在固件程序中的全排列隨機數(shù)表對片外存儲器進行密文讀操作的示例,主控芯片要對片外存儲器的Addressl地 址進行寫操作,該地址Addressl內存儲的內容為A',地址Addressl共16位, 由前4位L、中間8位M和后4位N組成,取地址Addressl的中間8位M利 用預先設定算法計算得到索引值i,這里的算法可根據需要自行設計,比如加、減、乘、除、與、或、非、位置替換等等均可,在固件程序中嵌入的全排列隨機 數(shù)表Table中找到該索引值i對應的內容值K,利用該內容值K對地址Addressl 內存儲的內容為A'做解密運算,得到解密結果A,將解密結果A讀出到主控芯 片中。還可以是將地址Addressl的全部作為索引值。本實施例中的加密算法和解密算法包括可逆算法,包括DES、 3DES、 RC2、 RC4等均可。由此可見,由于在生產電子產品即向電子產品中的主控芯片內燒寫固件程序 的時候,嵌入在每個電子產品中的全排列隨機數(shù)表是不固定的,是隨機生成的, 所以當電子產品中的主控芯片向與其相連的片外存儲器進行寫操作時,即使是批 量生產的電子產品,寫入到片外存儲器中的內容也是不一致的,即利用嵌入在固 件程序中的全排列隨機數(shù)表實現(xiàn)了對片外存儲器的密文存儲,改變了其加密規(guī)則 的一致性,同理,當電子產品中的主控芯片向與其相連的片外存儲器進行讀操作 時也是一樣,所以,即使是破解了同一批次的其中一個或幾個產品,其他的產品 的安全性也是很高的,即大大提高了電子產品存儲的安全能力。下面是用于亂序存儲地址變換的主控芯片匯編程序代碼,以CY7C63813芯 片為例,指定要變換的地址RomAddressH及RomAddressL ,調用函數(shù) ChangAddress就可以得到變換后的地址RomAddressH及RomAddressL,在函數(shù) 代碼中,CHANGTABLE指向一個256字節(jié)的全排列隨機數(shù)表的表首,查表用指 令indexCHANGTABLE,查表僅需13個時鐘周期就可完成;完成亂序存儲地址 變換僅需15行匯編代碼,約100個時鐘周期,相對利用其他算法實現(xiàn)而言效率 非常高,比如采用TEA算法實現(xiàn)的話, 一般需要幾百行匯編代碼,約上千個時 鐘周期才能實現(xiàn)。ChangAddress:mov網,[RomAddressL];[R0]=[RomAddressL]and[RomAddressL],Oxlf;[RomAddressL]=[RomAddressL] & Ox Ifand[RO],OxeOmova, [RomAddressH]anda,Olfhora,網 ;a ={[RomAddressH] & Ox If} | {[R0] & OxeO}indexCHANGTABLE;a = [CHANGTABLE+a]mov網,a;[R0]=aanda,OxeOor [RomAddressL],a; [RomAddressL] = [R0] & 0xe0 | [RomAddressL] and [R0],0xlf and [RomAddressH],0xe0 mov a,[R0]or [RomAddressH],a ;[RomAddressH] = {[RomAddressH] & OxeO }|{[R0] & Oxlf} ret下面是用于數(shù)據加/解密的主控芯片匯編程序代碼,以CY7C63813芯片為 例,指定要加/解密的數(shù)據(存放在a中)及其存儲地址RomAddressH及 RomAddressL,調用函數(shù)ChangData就可以得到解/加密的數(shù)據(存放在a中),在 函數(shù)代碼中,CHANGTABLE指向一個256字節(jié)的全排列隨機數(shù)表的表首,查表 用指令index CHANGTABLE,査表僅需13個時鐘周期就可完成;完成數(shù)據 加/解密僅需12行匯編代碼,約80個時鐘周期,相對利用其他算法實現(xiàn)而言效 率非常高,比如采用TEA算法實現(xiàn)的話, 一般需要幾百行匯編代碼,約上千個 時鐘周期才能實現(xiàn)。ChangData:mov[Rl],a;[Rl]=amova, [RomAddressL]anda,OlfhindexCHANGTABLE;a=[CHANGTABLE + [RomAddressL]&0x If]mov網,a;網=amova, [RomAddressL]anda,OeOhora, [RomAddressH]xora,網 ;a==[RomAddressL]&0xe0 | [RomAddressH] A網indexCHANGTABLE;a=[CHANGTABLE+a]xora,[Rl];a=[Rl]Aaret由此可見,利用嵌入在固件程序中的全排列隨機數(shù)表進行亂序讀寫操作及密 文讀寫操作時,其中對全排列隨機數(shù)表的操作都是由査表的方法來實現(xiàn)的,查表 的效率相對其他的算法等而言,本發(fā)明讀寫的速度很快,故效率很高。綜上所述,本發(fā)明實施例提供的一種提高帶有片外存儲器的電子產品數(shù)據安 全存儲的方法,由于每個電子產品的固件程序中嵌入的全排列隨機數(shù)表都是不同17的,所以通過利用嵌入在固件程序中的全排列隨機數(shù)表,使每個產品中片外存儲 器的存儲規(guī)則或加密規(guī)則等互不相同,使得即使破解其中的一個或幾個電子產 品,并不能對其他電子產品的使用產生影響,另外,也可以有效防止片外存儲器 被克隆或直接與其他的主控芯片連接,用于其他的產品中,從而提升電子產品的 安全性能;另一方面,由于本發(fā)明實施例提供的方法是通過對嵌入在固件程序中 的全排列隨機數(shù)表進行査表進而實現(xiàn)安全讀寫的,査表的效率相對其他的利用算 法等而言,效率很高,故本發(fā)明讀寫的速度很快。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護 范圍之內。
權利要求
1、一種提高帶有片外存儲器的電子產品數(shù)據安全存儲的方法,其特征是所述方法包括下列步驟---在電子產品的主控芯片中燒寫嵌入全排列隨機數(shù)表的固件程序;---依據嵌入在所述主控芯片內的固件程序中的全排列隨機數(shù)表對所述片外存儲器進行亂序讀/寫操作和/或密文讀/寫操作。
2、 根據權利要求1所述的提高帶有片外存儲器的電子產品數(shù)據安全存儲的 方法,其特征是所述對片外存儲器亂序讀/寫操作方法的具體步驟為將主控芯片對片外存儲器進行讀/寫操作的原地址的部分或全部數(shù)值作為索 引值,在固件程序中嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值,將所 述內容值替代所述原地址中作為索引部分數(shù)值后的地址數(shù)據作為新的讀出/寫入 地址,或將所述內容值作為新的讀出/寫入地址,對所述片外存儲器進行讀/寫操 作。
3、 根據權利要求1所述的提高帶有片外存儲器的電子產品數(shù)據安全存儲的 方法,其特征是所述對片外存儲器進行亂序讀/寫操作方法的具體步驟為將主控芯片對片外存儲器進行讀/寫操作的原地址的部分或全部數(shù)值利用預 先設定算法技算得到索引值,在固件程序中嵌入的全排列隨機數(shù)表中找到該索引 值對應的內容值,將所述內容值替代所述原地址中作為索引部分數(shù)值后的地址數(shù) 據作為新的讀出/寫入地址,或將所述內容值作為新的讀出/寫入地址,對所述片 外存儲器進行讀/寫操作。
4、 根據權利要求1所述的提高帶有片外存儲器的電子產品數(shù)據安全存儲的 方法,其特征是所述對片外存儲器進行密文寫操作的方法具體步驟為將主控芯片對片外存儲器進行寫操作的地址的部分或全部作為索引值,在固 件程序嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值,利用所述內容值對 要寫入的數(shù)據做加密運算,將加密結果寫入所述地址。
5、 根據權利要求1所述的提高帶有片外存儲器的電子產品數(shù)據安全存儲的 方法,其特征是所述對片外存儲器進行密文讀操作的方法具體步驟為將主控芯片對片外存儲器進行讀操作的地址的部分或全部作為索引值,在固 件程序嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值,利用所述內容值對 片外存儲器所述地址中的數(shù)據做解密運算,將解密結果讀出。
6、 根據權利要求1所述的提高帶有片外存儲器的電子產品數(shù)據安全存儲的方法,其特征是所述對片外存儲器進行密文寫操作的方法具體步驟為將主控芯片對片外存儲器進行寫操作的地址的部分或全部利用預先設定算法計算得到索引值,在固件程序嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值,利用所述內容值對要寫入的數(shù)據做加密運算,將加密結果寫入所述地址。 7、根據權利要求1所述的提高帶有片外存儲器的電子產品數(shù)據安全存儲的方法,其特征是所述對片外存儲器進行密文讀操作的方法具體為將主控芯片對片外存儲器進行讀操作的地址的部分或全部利用預先設定算法計算得到索引值,在固件程序嵌入的全排列隨機數(shù)表中找到該索引值對應的內容值,利用所述內容值對片外存儲器所述地址中的數(shù)據做解密運算,將解密結果讀出。
全文摘要
提升電子產品的安全性能、避免被破解的安全隱患且高效的一種提高帶有片外存儲器的電子產品數(shù)據安全存儲的方法,其特征是所述方法包括下列步驟在電子產品的主控芯片中燒寫嵌入全排列隨機數(shù)表的固件程序;依據嵌入在所述主控芯片內的固件程序中的全排列隨機數(shù)表對所述片外存儲器進行亂序讀/寫操作和/或密文讀/寫操作。
文檔編號G06F12/14GK101256538SQ20081010274
公開日2008年9月3日 申請日期2008年3月26日 優(yōu)先權日2008年3月26日
發(fā)明者于華章, 舟 陸 申請人:北京飛天誠信科技有限公司