專利名稱:一種延長芯片使用壽命的數(shù)據(jù)生成方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全領(lǐng)域,具體而言,涉及一種延長芯片使用壽命的數(shù)據(jù)生成方法和裝置。
背景技術(shù):
隨著計算機技術(shù)、通信技術(shù)和網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,信息在存儲、傳送、接收和處理過程中的安全問題已受到人們的廣泛關(guān)注。隨機數(shù)在信息安全系統(tǒng)中扮演著重要的角色,在基于計算機、網(wǎng)絡(luò)通信和交易中有著廣泛的應(yīng)用基礎(chǔ)。比如密鑰產(chǎn)生、初始化向量、時間戳、認(rèn)證挑戰(zhàn)碼、密鑰協(xié)商等,都要用到隨機數(shù)。在實際應(yīng)用中,諸如相互認(rèn)證或者會話密鑰生成之類,對隨機數(shù)的統(tǒng)計隨機性要求并不是很高,但是要求產(chǎn)生的隨機數(shù)序列是不可預(yù)測的,因此目前往往使用偽隨機數(shù)來實現(xiàn)各種功能。通過隨機數(shù)算法生成偽隨機數(shù)的過程,通常依賴基礎(chǔ)數(shù)據(jù),需要通過基礎(chǔ)數(shù)據(jù)生成介于指定數(shù)值區(qū)間的偽隨機序列?,F(xiàn)有技術(shù)中,基于芯片產(chǎn)生基礎(chǔ)數(shù)據(jù)的方法中,由于芯片沒有隨機源,使得每次芯片上電后的固定時刻產(chǎn)生的基礎(chǔ)數(shù)據(jù)相同,這就造成信息系統(tǒng)的不安全。針對相關(guān)技術(shù)中芯片在固定時刻產(chǎn)生的基礎(chǔ)數(shù)據(jù)相同引起的信息系統(tǒng)不安全的問題,目前尚未提出有效的解決方案。
發(fā)明內(nèi)容
本發(fā)明提供了一種延長芯片使用壽命的數(shù)據(jù)生成方法和裝置,以至少解決上述因芯片在固定時刻產(chǎn)生的基礎(chǔ)數(shù)據(jù)相同引起的信息系統(tǒng)不安全的問題。本發(fā)明提供一種延長芯片使用壽命的數(shù)據(jù)生成方法,包括步驟A 根據(jù)芯片內(nèi)存儲器中存儲的關(guān)聯(lián)信息獲取變量因子;步驟B 讀取所述芯片的硬件序列號;步驟C 對所述變量因子和所述硬件序列號計算生成基礎(chǔ)數(shù)據(jù);在步驟A中,還包括修改所述存儲的關(guān)聯(lián)信息。所述存儲器為閃存,所述閃存包括一個計數(shù)頁和至少一個使用頁;其中,所述計數(shù)頁用于存儲所述使用頁對應(yīng)的擦寫次數(shù),所述使用頁包括多個段,每段包括多個位;所述根據(jù)存儲器中存儲的關(guān)聯(lián)信息獲取變量因子包括在所述閃存的使用頁中查詢目標(biāo)位并計算所述目標(biāo)位對應(yīng)的物理偏移值,并讀取所述計數(shù)頁中的擦寫次數(shù);根據(jù)所述物理偏移值和所述擦寫次數(shù)計算變量因子。所述閃存內(nèi)設(shè)置有使用標(biāo)識;所述在所述閃存的使用頁中查詢目標(biāo)位和所述目標(biāo)位對應(yīng)的物理偏移值之前,所述方法還包括根據(jù)所述使用標(biāo)識判斷所述閃存是否為首次使用;如果是,將所述計數(shù)頁中的擦寫次數(shù)清零,并擦除所述使用頁,擦除所述使用頁后,所述使用頁中所有位的數(shù)值為指定值,設(shè)置所述使用標(biāo)識為已使用;如果否,直接執(zhí)行步驟A。
所述在所述閃存的使用頁中查詢目標(biāo)位包括按照設(shè)定的查找方法在所述使用頁中查找存儲的數(shù)值第一個為所述指定值的位, 將查找到的為所述指定值的位確定為目標(biāo)位,并將目標(biāo)位的值修改為所述指定值以外的值。所述在所述閃存的使用頁中查詢目標(biāo)位還包括按照設(shè)定的查找方法在所述使用頁中查找存儲的數(shù)值最后一個不為所述指定值的位,將查找到的最后一個不為所述指定值的位的下一位確定為目標(biāo)位,并將所述目標(biāo)位的值修改為所述指定值以外的值。所述指定值為1,將所述目標(biāo)位修改為所述指定值以外的值包括將所述目標(biāo)位清零。所述每段對應(yīng)一個序號;所述設(shè)定的查找方法包括從低序號段到高序號段查找不全為指定值的目標(biāo)段,在所述目標(biāo)段內(nèi)從高位到低位查找目標(biāo)位;或,從高序號段到低高序號段查找不全為指定值的目標(biāo)段,在所述目標(biāo)段內(nèi)從高位到低位查找目標(biāo)位;或,從低序號段到高序號段查找不全為指定值的目標(biāo)段,在所述目標(biāo)段內(nèi)從低位到高位查找目標(biāo)位;或,從高低序號段到低高序號段查找不全為指定值的目標(biāo)段,在所述目標(biāo)段內(nèi)從低位到高位查找目標(biāo)位。所述方法還包括讀出所述計數(shù)頁中的擦寫次數(shù)并加1,擦除所述計數(shù)頁;將所述加1后的擦寫次數(shù)寫入所述計數(shù)頁;將所述使用頁擦除,擦除所述使用頁后,所述使用頁中所有位的數(shù)值為指定值。當(dāng)所述使用頁為多個時,所述多個使用頁中的段的序號為依次順序編排的。所述存儲器為電可擦可編程只讀存儲器;所述存儲器包括一個計數(shù)單元和至少一個使用單元;其中,所述計數(shù)單元用于存儲所述使用單元的序號,所述使用單元中寫入的第一個數(shù)值為初始值;所述根據(jù)存儲器中存儲的關(guān)聯(lián)信息獲取變量因子,具體為根據(jù)所述計數(shù)單元中的序號確定當(dāng)前讀取的使用單元,讀取確定的所述使用單元中的數(shù)值,根據(jù)所述數(shù)值生成變量因子;所述修改所述存儲的關(guān)聯(lián)信息,具體為修改所述使用單元中的數(shù)值,判斷修改后的數(shù)值是否超過設(shè)定閾值,如果是,將所述計數(shù)單元中的序號調(diào)整為下一個使用單元的序號;如果否,直接執(zhí)行步驟A。所述存儲器設(shè)置有使用標(biāo)識;所述根據(jù)所述計數(shù)單元中的序號確定當(dāng)前讀取的使用單元之前,所述方法還包括根據(jù)所述使用標(biāo)識判斷所述存儲器是否為首次使用;如果是,在所述計數(shù)單元中寫入預(yù)設(shè)值,在所述使用單元中寫入所述初始值,并設(shè)置所述使用標(biāo)識為已使用;如果否, 直接執(zhí)行步驟A。所述修改所述使用單元中的數(shù)值包括將所述使用單元中的數(shù)值加1。所述對所述變量因子和所述硬件序列號計算生成基礎(chǔ)數(shù)據(jù)包括
對所述變量因子和所述硬件序列號進行運算,得到運算值;對所述運算值進行散列算法,得到基礎(chǔ)數(shù)據(jù)。所述對所述變量因子和所述硬件序列號計算生成基礎(chǔ)數(shù)據(jù)還包括在所述芯片中生成隨機數(shù),對所述隨機數(shù)與所述變量因子進行運算,得到一個中間值;對所述中間值和所述硬件序列號進行運算,得到運算值;對所述運算值進行散列算法,得到基礎(chǔ)數(shù)據(jù)。所述運算為異或運算、拼接運算、組合運算或相加運算。所述方法還包括對所述基礎(chǔ)數(shù)據(jù)進行計算得到偽隨機數(shù);每次將得到的所述偽隨機數(shù)作為新的基礎(chǔ)數(shù)據(jù)再次計算,得到偽隨機數(shù)序列。所述方法還包括使用所述基礎(chǔ)數(shù)據(jù)進行信息安全操作。本發(fā)明又提供一種延長芯片使用壽命的數(shù)據(jù)生成裝置,包括存儲模塊,用于存儲關(guān)聯(lián)信息和芯片的硬件序列號;變量因子獲取模塊,用于從所述存儲模塊中獲取所述關(guān)聯(lián)信息,根據(jù)所述關(guān)聯(lián)信息計算得到變量因子,還用于更新所述關(guān)聯(lián)信息;序列號讀取模塊,用于從所述存儲模塊中讀取所述芯片的硬件序列號;基礎(chǔ)數(shù)據(jù)生成模塊,用于用所述變量因子和所述硬件序列號計算生成基礎(chǔ)數(shù)據(jù)。所述存儲模塊是閃存,包括一個計數(shù)頁和至少一個使用頁,所述計數(shù)頁用于存儲所述使用頁對應(yīng)的擦寫次數(shù),所述使用頁包括多個段,每個段包括多個位;所述變量因子獲取模塊包括第一變量因子獲取單元和第一更新單元;所述第一變量因子獲取單元,用于在所述使用頁中查找目標(biāo)位和所述目標(biāo)位對應(yīng)的物理偏移值,并讀取所述計數(shù)頁中的擦寫次數(shù),根據(jù)所述所述目標(biāo)位的物理偏移值和所述擦寫次數(shù)計算變量因子;所述第一更新單元,用于更新所述第一變量因子獲取單元確定的目標(biāo)位。所述存儲模塊是電可擦可編程只讀存儲器,所述存儲模塊包括一個計數(shù)單元和至少一個使用單元;其中,所述計數(shù)單元用于存儲所述使用單元的序號,所述使用單元中寫入的第一個數(shù)值為初始值;所述變量因子獲取模塊包括第二變量因子獲取單元和第二更新單元;所述第二變量因子獲取單元,用于根據(jù)所述計數(shù)單元中的序號確定當(dāng)前讀取的使用單元,讀取確定的所述使用單元中的數(shù)值,根據(jù)所述數(shù)值生成變量因子;所述第二更新單元,用于修改所述使用單元中的數(shù)值,并判斷修改后的所述數(shù)值是否超過設(shè)定閾值,如果是,還用于將所述計數(shù)單元中的序號調(diào)整為下一個使用單元的序號。所述裝置還包括隨機數(shù)模塊,用于生成隨機數(shù);所述基礎(chǔ)數(shù)據(jù)生成模塊,用于對所述隨機數(shù)、所述變量因子和所述硬件序列號計算生成基礎(chǔ)數(shù)據(jù)。所述裝置還包括偽隨機數(shù)計算模塊,用于對所述基礎(chǔ)數(shù)據(jù)進行計算得到偽隨機數(shù);偽隨機數(shù)序列獲取單元,用于將所述偽隨機數(shù)計算模塊得到的所述偽隨機數(shù)作為新的基礎(chǔ)數(shù)據(jù),觸發(fā)所述偽隨機數(shù)計算模塊再次計算,得到偽隨機數(shù)序列。所述裝置還包括操作模塊,用于使用所述基礎(chǔ)數(shù)據(jù)生成模塊生成的基礎(chǔ)數(shù)據(jù)進行信息安全操作。通過本發(fā)明,根據(jù)存儲器中存儲的關(guān)聯(lián)信息生成變量因子,保證了每次生成的基礎(chǔ)數(shù)據(jù)均不同,進而能夠保證信息安全認(rèn)證與會話密鑰生成的安全性,提高信息系統(tǒng)的可靠性。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中圖1是根據(jù)本發(fā)明實施例一的延長芯片使用壽命的數(shù)據(jù)生成方法的流程圖;圖2是根據(jù)本發(fā)明實施例二的延長芯片使用壽命的數(shù)據(jù)生成裝置的結(jié)構(gòu)框圖;圖3是根據(jù)本發(fā)明實施例三的通過flash延長芯片使用壽命的數(shù)據(jù)生成方法流程圖;圖4(a)、(b)、(c)和(d)是根據(jù)本發(fā)明實施例三的根據(jù)不同方式讀取flash使用頁的示意圖;圖5是根據(jù)本發(fā)明實施例四提供的通過flash延長芯片使用壽命的數(shù)據(jù)生成裝置的方框示意圖;圖6是根據(jù)本發(fā)明實施例五提供的通過flash延長芯片使用壽命的數(shù)據(jù)生成方法流程圖;圖7是根據(jù)本發(fā)明實施例六提供的通過^prom延長芯片使用壽命的數(shù)據(jù)生成方法流程圖;圖8是根據(jù)本發(fā)明實施例七提供的通過^prom延長芯片使用壽命的數(shù)據(jù)生成裝置的方框示意圖。
具體實施例方式下文中將參考附圖并結(jié)合實施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。為了解決芯片上電后的固定時刻產(chǎn)生的基礎(chǔ)數(shù)據(jù)相同的問題,本發(fā)明實施例提供了延長芯片使用壽命的數(shù)據(jù)生成方法和裝置。實施例一本實施例提供了一種延長芯片使用壽命的數(shù)據(jù)生成方法,參見圖1,該方法包括以下步驟步驟S102,根據(jù)芯片內(nèi)存儲器中存儲的關(guān)聯(lián)信息獲取變量因子;該變量因子是存儲在某可存儲介質(zhì)中的數(shù)值,或通過對存儲的數(shù)值進行計算得到的數(shù)值;步驟S104,讀取芯片的硬件序列號;步驟S106,對變量因子和硬件序列號計算生成基礎(chǔ)數(shù)據(jù)。其中,本實施例中的步驟S102和步驟S104的順序可調(diào)換。其中,本實施例中的存儲器中的存儲關(guān)聯(lián)信息與上一次生成基礎(chǔ)數(shù)據(jù)使用的信息是不同的,這樣可以保證每次生成的基礎(chǔ)數(shù)據(jù)不同,基于此,在步驟S102中,還包括對存儲器中的存儲關(guān)聯(lián)信息進行修改,用以使下一次生成的基礎(chǔ)數(shù)據(jù)與本次生成的基礎(chǔ)數(shù)據(jù)不同。本發(fā)明實施例通過設(shè)置一變量因子,每次上電后執(zhí)行上述步驟,使得產(chǎn)生的基礎(chǔ)數(shù)據(jù)都會變化,從而大大加強信息體系的安全性。當(dāng)接收到產(chǎn)生偽隨機數(shù)的信息時,循環(huán)執(zhí)行以下步驟對得到的基礎(chǔ)數(shù)據(jù)進行計算,得到偽隨機數(shù);每次將得到的偽隨機數(shù)作為新的基礎(chǔ)數(shù)據(jù)再次計算,得到偽隨機數(shù)序列。本實施例中的存儲器可以為flash存儲器(S卩,閃存)或EEPROM存儲器(S卩,電可擦可編程只讀存儲器);下面簡單描述一下存儲器為閃存或電可擦可編程只讀存儲器時, 基礎(chǔ)數(shù)據(jù)的生成過程。1)存儲器為閃存,該閃存包括一個計數(shù)頁和至少一個使用頁;其中,計數(shù)頁用于存儲使用頁對應(yīng)的擦寫次數(shù),使用頁包括多個段,每個段對應(yīng)一個序號;基于此,上述根據(jù)存儲器的存儲關(guān)聯(lián)信息獲取變量因子包括在閃存的使用頁中查詢目標(biāo)位并計算目標(biāo)位對應(yīng)的物理偏移值,并讀取計數(shù)頁中的擦寫次數(shù);根據(jù)物理偏移值和擦寫次數(shù)計算變量因子。為了方便確定每次閃存上電時,該閃存是否被使用過,本實施例的閃存內(nèi)設(shè)置有使用標(biāo)識;基于此,上述在閃存的使用頁中查詢目標(biāo)位并計算目標(biāo)位對應(yīng)的物理偏移值之前,該方法還包括根據(jù)使用標(biāo)識判斷閃存是否為首次使用;如果是,將計數(shù)頁中的擦寫次數(shù)清零,并擦除使用頁,使用頁中所有位的數(shù)值為指定值,優(yōu)選地,指定值為1,設(shè)置使用標(biāo)識為已使用(例如,設(shè)置為1),如果否,直接執(zhí)行步驟S102。其中,在閃存的使用頁中查詢目標(biāo)位可以包括按照設(shè)定的查找方法在使用頁中查找存儲的數(shù)值第一個為指定值的位,或最后一個不為指定值的位,將查找到的為指定值的位或不為指定值的位的下一位確定為目標(biāo)位,并將目標(biāo)位的值修改為該指定值以外的數(shù)值,例如清零。這里,將指定值清零的操作,有效地減少了 flash使用頁的擦寫次數(shù),延長芯片的使用壽命;同時,設(shè)定的查找方法包括從低序號段到高序號段查找不全為指定值的目標(biāo)段,在所述目標(biāo)段內(nèi)從高位到低位查找目標(biāo)位;從高序號段到低高序號段查找不全為指定值的目標(biāo)段,在所述目標(biāo)段內(nèi)從高位到低位查找目標(biāo)位;從低序號段到高序號段查找不全為指定值的目標(biāo)段,在所述目標(biāo)段內(nèi)從低位到高位查找目標(biāo)位;從高低序號段到低高序號段查找不全為指定值的目標(biāo)段,在所述目標(biāo)段內(nèi)從低位到高位查找目標(biāo)位。當(dāng)在使用頁中未查找到存儲的數(shù)值為指定值的位時,上述方法還包括讀出上述計數(shù)頁中的擦寫次數(shù)并加1,擦除計數(shù)頁;將加1后的擦寫次數(shù)寫入計數(shù)頁;將所述使用頁擦除,擦除所述使用頁后,所述使用頁中所有位的數(shù)值為指定值。上述使用頁為多個時,多個使用頁中的段的序號為依次順序編排的,編排順序可以按照上述設(shè)定的順序。2)存儲器為電可擦可編程只讀存儲器;該電可擦可編程只讀存儲器包括一個計數(shù)單元和至少一個使用單元;其中,該計數(shù)單元用于存儲使用單元的序號,該使用單元中寫入的第一個數(shù)值為初始值;基于此,上述存儲器中存儲的關(guān)聯(lián)信息獲取變量因子具體為 根據(jù)計數(shù)單元中的序號確定當(dāng)前讀取的使用單元,讀取確定的使用單元中的數(shù)值,根據(jù)數(shù)值生成變量因子;考慮到EEPROM存儲器存儲的數(shù)據(jù)是有限制的,因此在這種方式下,在得到基礎(chǔ)數(shù)據(jù)之后,上述方法還包括修改存儲的關(guān)聯(lián)信息,具體為修改使用單元中的數(shù)值,判斷修改后的數(shù)值是否超過設(shè)定閾值,如果是,將計數(shù)單元中的序號調(diào)整為下一個使用單元的序號, 如果否,直接執(zhí)行步驟S102。
上述對變量因子和硬件序列號計算生成基礎(chǔ)數(shù)據(jù)包括對變量因子和硬件序列號進行運算,得到運算值;對該運算值進行散列算法,得到基礎(chǔ)數(shù)據(jù);為了增強安全性,上述用變量因子和硬件序列號計算生成基礎(chǔ)數(shù)據(jù)還可以采用下述方式在芯片中生成隨機數(shù),對隨機數(shù)與變量因子進行運算,得到一個中間值;對中間值和硬件序列號進行運算,得到運算值;對運算值進行散列算法,得到基礎(chǔ)數(shù)據(jù);上述運算值為異或運算、拼接運算、組合運算或相加運算;上述方法還包括對基礎(chǔ)數(shù)據(jù)進行計算得到偽隨機數(shù);每次將得到的偽隨機數(shù)作為新的基礎(chǔ)數(shù)據(jù)再次計算,得到偽隨機數(shù)序列。使用本實施例生成的基礎(chǔ)數(shù)據(jù)進行信息安全操作,可以增強信息操作的安全性。本實施例通過多種方式生成變量因子,保證了每次生成的基礎(chǔ)數(shù)據(jù)均不同,進而能夠保證信息安全認(rèn)證與會話密鑰生成的安全性,提高信息系統(tǒng)的可靠性。實施例二基于實施例一中圖1所提供的方法,本實施例提供了一種延長芯片使用壽命的數(shù)據(jù)生成裝置,參見圖2,該裝置包括存儲模塊20,用于存儲關(guān)聯(lián)信息和芯片的硬件序列號;變量因子獲取模塊22,與存儲模塊20相連,用于從存儲模塊20中獲取芯片內(nèi)存儲器中存儲的關(guān)聯(lián)信息,并計算生成變量因子;序列號讀取模塊M,與存儲模塊20相連,用于從存儲模塊20中讀取芯片的硬件序列號;基礎(chǔ)數(shù)據(jù)生成模塊沈,與變量因子獲取模塊22和序列號讀取模塊M相連,用于對變量因子獲取模塊22獲取的變量因子和序列號讀取模塊M讀取的硬件序列號計算生成基礎(chǔ)數(shù)據(jù)。上述存儲模塊是閃存,包括一個計數(shù)頁和至少一個使用頁;其中,計數(shù)頁用于存儲使用單元對應(yīng)的擦寫次數(shù),使用頁包括多個段,每個段包括多個位;相應(yīng)的,變量因子獲取模塊22包括第一變量因子獲取單元和第一更新單元,第一變量因子獲取單元用于在使用頁中查找目標(biāo)位,計算目標(biāo)位對應(yīng)的物理偏移值,并讀取計數(shù)頁中的擦寫次數(shù),根據(jù)目標(biāo)位的物理偏移值和擦寫次數(shù)計算變量因子;第一更新單元,用于更新第一變量因子獲取單元確定的目標(biāo)位。上述存儲模塊是電可擦可編程只讀存儲器,存儲模塊包括一個計數(shù)單元和至少一個使用單元;其中,計數(shù)單元用于存儲使用單元的序號,使用單元中寫入的第一個數(shù)值為初始值;相應(yīng)的,變量因子獲取模塊22包括第二變量因子獲取單元和第二更新單元,第二變量因子獲取單元用于根據(jù)計數(shù)單元中的序號確定當(dāng)前讀取的使用單元,讀取確定的使用單元中的數(shù)值,根據(jù)數(shù)值生成變量因子;第二更新單元,用于修改使用單元中的數(shù)值,并判斷修改后的數(shù)值是否超過設(shè)定閾值,如果是,還用于將所述計數(shù)單元中的序號調(diào)整為下一個使用單元的序號。上述裝置還包括隨機數(shù)模塊,用于生成隨機數(shù);基礎(chǔ)數(shù)據(jù)生成模塊,用于對隨機數(shù)、變量因子和硬件序列號計算生成基礎(chǔ)數(shù)據(jù)。上述裝置還包括偽隨機數(shù)計算模塊,用于對該基礎(chǔ)數(shù)據(jù)進行計算得到偽隨機數(shù); 偽隨機數(shù)序列獲取單元,用于將偽隨機數(shù)計算模塊得到的偽隨機數(shù)作為新的基礎(chǔ)數(shù)據(jù),觸發(fā)偽隨機數(shù)計算模塊再次計算,得到偽隨機數(shù)序列。上述裝置還包括操作模塊,用于使用基礎(chǔ)數(shù)據(jù)生成模塊沈生成的基礎(chǔ)數(shù)據(jù)進行信息安全操作。當(dāng)然,該裝置還包括其它運行模塊,例如電源模塊,用于為該裝置提供電源,該電源模塊與芯片相連接,工作時為其提供電源。本實施例通過多種方式生成變量因子,保證了每次生成的基礎(chǔ)數(shù)據(jù)均不同,進而能夠保證信息安全認(rèn)證與會話密鑰生成的安全性,提高信息系統(tǒng)的可靠性。下面通過下述的實施例介紹一下基礎(chǔ)數(shù)據(jù)的生成方法,在信息安全系統(tǒng)中,可以基于這幾個實施例生成基礎(chǔ)數(shù)據(jù)。實施例三本實施例提供了一種通過flash延長芯片使用壽命的數(shù)據(jù)生成方法。在該方法中,采用flash (可存儲介質(zhì),即閃存)存儲變量因子,所述flash上設(shè)有兩個flash頁,其中一個flash頁為計數(shù)頁,用來存儲對另一個flash頁的擦寫次數(shù),可用32位二進制表示該數(shù)值;另一個flash頁為使用頁,根據(jù)所述flash使用頁中的每一個位和該位物理位置的偏移值計算得到變量因子。參見圖3,該方法包括以下步驟步驟301 判斷使用標(biāo)識是否置位,用以確定flash是否被使用過,如果是,則執(zhí)行步驟305,否則,執(zhí)行步驟302 ;步驟302 將flash計數(shù)頁中的擦寫次數(shù)清零;步驟303 擦除flash使用頁,并將該flash使用頁中所有位的值統(tǒng)一設(shè)置為1 ;步驟304 將使用標(biāo)識置位,即將使用標(biāo)識設(shè)置為已使用;步驟305 判斷flash使用頁是否全為零,是則執(zhí)行步驟306,否則執(zhí)行步驟308 ;步驟306 讀出flash計數(shù)頁中的擦寫次數(shù)并加1,擦除flash計數(shù)頁,并將加1后的擦寫次數(shù)寫入flash計數(shù)頁;相應(yīng)的,實施例一中的“對芯片內(nèi)存儲器中存儲的關(guān)聯(lián)信息進行修改”替換為讀出flash計數(shù)頁中的擦寫次數(shù)并加1,擦除flash計數(shù)頁,并將加1后的擦寫次數(shù)寫入flash 計數(shù)頁;步驟307 擦除flash使用頁,并將flash使用頁中所有位的值均設(shè)置為1,順序執(zhí)行步驟308 ;步驟306和步驟307可調(diào)換順序;步驟308 讀取flash使用頁中第一個非零位;所述讀取采用分段讀取,設(shè)每8位為一段,從高位向低位依次讀取每段,或從低位向高位依次讀取每段;步驟309 根據(jù)當(dāng)前位的偏移值,計算得到變量因子,并將該位清零;本實施例三中所述計算變量因子的具體過程是變量因子=擦寫次數(shù)X512X8+當(dāng)前位的偏移值,512 是一個flash使用頁的存儲容量;當(dāng)前位的偏移值是當(dāng)前位的物理地址與起始位物理地址的差值,或者是當(dāng)前位的物理地址與最后一位物理地址的差值;優(yōu)選地,當(dāng)前位的偏移值是當(dāng)前位的物理地址與起始位物理地址的差值;
為使獲取變量因子的過程更加清晰,優(yōu)選地,舉例如下參見圖4,flash使用頁劃分為512個段,每8位為一段,每段的序號為從0依次排序至511 ;分段讀取flash使用頁, 設(shè)第1次擦除flash使用頁;參見圖4,圖(a)為從序號為0的段開始讀取flash使用頁,每段為從高位到低位依次讀?。痪唧w的,查找到flash使用頁中第一個非零位,該位位于第10行第7列的段中,由該段的值03和該段的物理位置計算出flash使用頁中的第一個非零位的偏移值,計算過程為當(dāng)前位的偏移值=(10X16+7) X8+7 = 1343 ;則變量因子=1X512X8+1343 = 5439 ;參將圖4,圖(b)為從序號為0的段開始讀取flash使用頁,每段為從低位到高位依次讀取;具體的,查找到flash使用頁中第一個非零位,該位位于第10行第7列的段中,由該段的值FO和該段的物理位置計算出flash使用頁中第一個非零位的偏移值,計算過程為當(dāng)前位的偏移值=(10X16+7) X8+5 = 1341 ;則變量因子=1X512X8+1341 = 5437 ;參見圖4,圖(c)為從序號為511的段開始讀取flash使用頁,每段為從高位到低位依次讀??;具體的,查找到flash使用頁中第一個非零位,該位位于第10行第7列的段中,由該段的值07和該段的物理位置計算出flash使用頁中第一個非零位的偏移值,計算過程為當(dāng)前位的偏移值=(22X16+8) X8+6 = 2886 ;則變量因子=1X512X8+2886 = 6982 ;參見圖4,圖(d)為從序號為511的段開始讀取flash使用頁,每段為從低位到高位依次讀取;具體的,查找到flash使用頁中第一個非零位,該位位于第10行第7列的段中,由該段的值CO和該段的物理位置計算出flash使用頁中第一個非零位的偏移值,計算過程為當(dāng)前位的偏移值=(22X16+8) X8+7 = 2887 ;則變量因子=1X512X8+2887 = 6983 ;步驟310 讀取所述芯片的硬件序列號,將其與所述變量因子進行異或運算,得到一個異或值;上述異或運算可以替換為拼接、組合或相加運算,但不限于此,本實施例三中具體采用異或運算;上述步驟310還可用步驟310' 1和310' 2替換,具體為步驟310' 1 讀取芯片產(chǎn)生的32個字節(jié)的數(shù)據(jù),并將該32個字節(jié)的數(shù)據(jù)與得到的變量因子相加,得到一中間值;步驟310' 2 讀取所述芯片的硬件序列號,并將其與中間值進行異或運算,得到一個異或值;步驟311 對所述得到的異或值進行散列算法,得到一散列值,即基礎(chǔ)數(shù)據(jù)。該散列算法是不可逆的單向散列算法,具體可以是SHAl、SHA256、SHA384和MD5, 但不限于此,本實施例三中具體采用SHAl。當(dāng)接收到產(chǎn)生偽隨機數(shù)的信息時,循環(huán)執(zhí)行以下步驟對得到的基礎(chǔ)數(shù)據(jù)進行加密算法,得到偽隨機數(shù);每次將得到的偽隨機數(shù)作為偽隨機數(shù)種子再次進行加密算法,得到偽隨機數(shù)序列。
上述加密算法可以為DES、3DES、AES和RSA,但不限于此,本實施例三中具體采用 DES。本實施例三中的flash使用頁也可采用多個,以兩個flash使用頁為例,相應(yīng)的, 步驟303替換為擦除兩個flash使用頁,將兩個flash使用頁中所有位的值設(shè)為1 ;步驟 305之后,判斷兩個flash使用頁是否全部讀完,是則執(zhí)行步驟306,否則開始讀取下一個 flash使用頁,順序執(zhí)行步驟308 ;步驟309中,計算變量因子的過程替換為變量因子= 擦寫次數(shù)X 512X2X8+當(dāng)前位的偏移值,其中,512是一個flash使用頁的存儲容量,當(dāng)前位的偏移值是將兩個flash使用頁作為一整體,當(dāng)前位的物理地址與起始位物理地址的差值。實施例四基于實施例三中圖3所提供的方法,本實施例提供了一種通過flash延長芯片使用壽命的數(shù)據(jù)生成裝置,參見圖5,具體包括電源模塊51、存儲模塊52、置位模塊53、讀取模塊M、判斷模塊陽、頁操作模塊56和基礎(chǔ)數(shù)據(jù)生成模塊57 ;上述存儲模塊52、置位模塊 53、讀取模塊M、判斷模塊55、頁操作模塊56和基礎(chǔ)數(shù)據(jù)生成模塊57均集成在一個芯片上。所述芯片內(nèi)置閃存,所述閃存包括flash計數(shù)頁和flash使用頁,flash計數(shù)頁用于存儲對flash使用頁的擦寫次數(shù);所述芯片用于產(chǎn)生32個字節(jié)的數(shù)據(jù)。電源模塊51,用于在芯片工作時為其供電;存儲模塊52,用于存儲關(guān)聯(lián)信息和芯片的硬件序列號;還用于存儲生成的基礎(chǔ)數(shù)據(jù);置位模塊53,用于將使用標(biāo)識置位,還用于將flash使用頁中所有位的值設(shè)為同一個數(shù),本實施例四中具體將flash使用頁中所有位的值設(shè)為1 ;讀取模塊M,具體包括第一讀取單元Ml、第二讀取單元M2 ;第一讀取單元Ml,用于讀取flash頁中當(dāng)前位的值;第二讀取單元M2,用于讀取存儲模塊52中芯片的硬件序列號,還可用于讀取芯片產(chǎn)生的32個字節(jié)的數(shù)據(jù);判斷模塊55,具體包括第一判斷單元551和第二判斷單元552 ;第一判斷單元陽1,用于對使用標(biāo)識進行判斷;第二判斷單元552,用于判斷flash使用頁中所有位的值是否全為零;頁操作模塊56,用于對flash計數(shù)頁和兩個flash使用頁執(zhí)行相應(yīng)操作,具體包括讀次數(shù)單元561、清零單元562、擦除單元563、次數(shù)增加單元564和寫次數(shù)單元565 ;讀次數(shù)單元561,用于讀取flash計數(shù)頁中的擦寫次數(shù)值;清零單元562,用于將flash計數(shù)頁中存儲的擦寫次數(shù)清零,還用于將第一讀取單元541讀取的當(dāng)前位的值清零;擦除單元563,用于對flash使用頁進行擦除,還用于擦除flash計數(shù)頁;次數(shù)增加單元564,用于將讀次數(shù)單元561讀取的擦寫次數(shù)值加1 ;寫次數(shù)單元565,用于將所述次數(shù)增加單元564中加1后的擦寫次數(shù)寫入存儲模塊 52中;基礎(chǔ)數(shù)據(jù)生成模塊57,用于生成基礎(chǔ)數(shù)據(jù)。具體包括變量因子生成單元571、運算單元572、算法單元573 ;
變量因子生成單元571,用于通過計算得到變量因子,該計算變量因子的具體過程是變量因子=擦寫次數(shù)X512X8+當(dāng)前位的偏移值;512是一個flash使用頁的存儲容量;當(dāng)前位的偏移值是當(dāng)前位的物理地址與起始位物理地址的差值,或者是當(dāng)前位的物理地址與最后一位物理地址的差值;優(yōu)選地,當(dāng)前位的偏移值是當(dāng)前位的物理地址與起始位物理地址的差值;運算單元572,用于將變量因子和第二讀取單元542讀取的芯片的硬件序列號進行運算操作,具體為將變量因子與硬件序列號進行異或運算,得到一個異或值;運算單元 572還可用于將第二讀取單元542讀取的芯片產(chǎn)生的32個字節(jié)的數(shù)據(jù)、該芯片的硬件序列號和所述變量因子進行運算操作,具體為將數(shù)據(jù)與變量因子進行相加,得到一中間值;再將芯片的硬件序列號與中間值進行異或運算,得到一個異或值;其中,異或運算也可以替換為拼接、組合或相加運算,但不局限于此;算法單元573,用于對所述運算單元572得到的異或值進行散列算法,得到基礎(chǔ)數(shù)據(jù)。其中,該散列算法是不可逆的單向散列算法,具體可以是SHA1、SHA256、SHA384和 MD5,但不局限于此。實施例五本實施例五提供了另一種通過flash延長芯片使用壽命的數(shù)據(jù)生成方法。在該方法中,采用flash (可存儲介質(zhì),即閃存)存儲變量因子,所述flash上設(shè)有三個flash頁, 其中一個flash頁為計數(shù)頁,其它兩個flash頁為使用頁;flash計數(shù)頁用來存儲對兩個 flash使用頁的擦寫次數(shù),可用32位二進制表示該數(shù)值;根據(jù)所述兩個flash使用頁中的每一個位和該位的物理位置的偏移值計算得到變量因子。參見圖6,該方法包括步驟601 判斷使用標(biāo)識是否置位,用以確定flash是否被使用過,如果是,則執(zhí)行步驟605,否則,執(zhí)行步驟602 ;步驟602 將flash計數(shù)頁中的擦寫次數(shù)清零;步驟603 擦除兩個flash使用頁,并將兩個flash使用頁中所有位的值統(tǒng)一設(shè)置為1 ;步驟604 將使用標(biāo)識置位;步驟605 讀取當(dāng)前flash使用頁中第一個非零位;步驟606 根據(jù)當(dāng)前位的偏移值,計算得到變量因子,并將該位清零;本實施例六中所述計算變量因子的具體過程是變量因子=擦寫次數(shù)X 10MX8+ 當(dāng)前位的偏移值,512是一個flash使用頁的存儲容量;當(dāng)前位的偏移值是當(dāng)前位的物理地址與起始位物理地址的差值,或者是當(dāng)前位的物理地址與最后一位物理地址的差值;優(yōu)選地,當(dāng)前位的偏移值是當(dāng)前位的物理地址與起始位物理地址的差值;步驟606中獲取當(dāng)前位的偏移值的方式與實施例三中步驟309類似,變化的是,在讀完一個flash使用頁之后,檢索下一個flash使用頁,繼續(xù)查找非零位并獲取當(dāng)前非零位的偏移值。
步驟607 判斷當(dāng)前flash使用頁中所有位的值是否全為零,如果是,則執(zhí)行步驟 608,否則執(zhí)行步驟610 ;步驟608 判斷兩個flash使用頁是否全部讀完,如果是,則執(zhí)行步驟609,否則執(zhí)行步驟610 ;步驟609 開始讀下一個flash使用頁;步驟610 讀出flash計數(shù)頁中的擦寫次數(shù)并加1,擦除flash計數(shù)頁,并將加1后的擦寫次數(shù)寫入flash計數(shù)頁;步驟611 擦除兩個flash使用頁,并將兩個flash使用頁中所有位的值設(shè)為1 ;步驟612 讀取芯片的硬件序列號,并將其與所述變量因子進行運算,得到一運算值;所述運算可以為異或、拼接、組合或相加,但不局限于此;步驟613 對得到的運算值進行散列算法,得到一散列值,即基礎(chǔ)數(shù)據(jù)。所述散列算法可以為SHA1、SHA256、SHA384和MD5,但不局限于此。當(dāng)接收到產(chǎn)生偽隨機數(shù)的信息時,循環(huán)執(zhí)行以下步驟對得到的基礎(chǔ)數(shù)據(jù)進行加密算法,得到偽隨機數(shù);每次將得到的偽隨機數(shù)作為偽隨機數(shù)種子再次進行加密算法,得到偽隨機序列。所述加密算法可以為DES、3DES、AES和RSA,但不限于此,本實施例三中具體采用 DES。本實施例五中所述flash頁也可采用更多頁,其中一頁用作計數(shù)頁,剩下的其他頁用作使用頁,使擦寫次數(shù)每變化一次時,產(chǎn)生的隨機種子更多。實施例六本實施例提供了一種通過e印rom延長芯片使用壽命的數(shù)據(jù)生成方法。在該方法中,采用e印rom(可存儲介質(zhì),即電可擦可編程只讀存儲器)存儲變量因子,所述e印rom對應(yīng)有唯一的硬件序列號。優(yōu)選地,所述eeprom中設(shè)有三個e印rom單元,其中一個eeprom 單元為計數(shù)單元,用來記錄e印rom使用單元的序號,其它兩個e印rom單元均為使用單元, 用來存儲變量因子。所述e印rom采用8位、16位、32位或64位二進制存儲數(shù)值,預(yù)先設(shè)置所述一個e印rom單元可反復(fù)寫入的最大次數(shù),本實施例中最大次數(shù)預(yù)設(shè)為50萬次。參見圖7,該方法包括以下步驟步驟701 判斷使用標(biāo)識是否置位,用以確定e印rom是否被使用過,如果是,則執(zhí)行步驟705,否則,執(zhí)行步驟702 ;步驟702 在e印rom計數(shù)單元中寫入預(yù)設(shè)值,優(yōu)選地,預(yù)設(shè)值為0,開始使用第一個 eeprom使用單元;步驟703 在^prom使用單元中寫入初始值,優(yōu)選地,初始值為0 ;步驟704 將使用標(biāo)識置位;步驟705 判斷e印rom使用單元中的數(shù)值與初始值的第一差值是否大于預(yù)設(shè)的最大次數(shù),如果是,則順序執(zhí)行步驟706,否則執(zhí)行步驟709 ;第一差值是e印rom使用單元中的數(shù)值減去初始值的差值,或者是初始值減去 e印rom使用單元中的數(shù)值的差值;本實施例中,優(yōu)選地,第一差值是e印rom使用單元中的數(shù)值減去初始值的差值;步驟706 判斷e印rom計數(shù)單元中的數(shù)值與預(yù)設(shè)值的第二差值是否小于設(shè)定的值,優(yōu)選地,所述設(shè)定的值具體是^prom計數(shù)單元的個數(shù)值減1,如果否,則結(jié)束,如果是, 順序執(zhí)行步驟707 ;本實施例中,以兩個e印rom使用單元為例,所述設(shè)定的值為1 ;第二差值是e印rom計數(shù)單元中的數(shù)值減去預(yù)設(shè)值的差值,或者是預(yù)設(shè)值減去 e印rom計數(shù)單元中的數(shù)值的差值;本實施中,優(yōu)選地,第二差值是e印rom計數(shù)單元中的差值減去預(yù)設(shè)值的差值;步驟707 將^prom計數(shù)單元中的數(shù)值加1,開始進行對下一個e印rom使用單元的使用;步驟708 在該^prom使用單元中寫入初始值,優(yōu)選地,初始值為O ;步驟709 讀取^prom使用單元中存儲的數(shù)值;步驟710 計算得到變量因子變量因子=所述計數(shù)單元中的數(shù)值X預(yù)設(shè)的最大次數(shù)+讀取的數(shù)值,將e印rom使用單元中存儲的數(shù)值按照預(yù)設(shè)的運算規(guī)則進行變化,并重新寫入;本實施例中,優(yōu)選地,預(yù)設(shè)的運算規(guī)則是將e印rom使用單元中存儲的數(shù)值加1,并重新寫入;相應(yīng)的,實施例一中“對芯片內(nèi)存儲器中存儲的關(guān)聯(lián)信息進行修改”替換為將 e印rom使用單元中存儲的數(shù)值加1,并重新寫入;步驟711 判斷從e印rom使用單元讀取的數(shù)值是否等于寫入e印rom使用單元的數(shù)值,是則執(zhí)行步驟712,否則返回執(zhí)行步驟706 ;步驟712 讀取^prom存儲芯片的硬件序列號;步驟713 對該變量因子和該硬件序列號進行運算,得到一運算值;該運算可以是異或、拼接、組合或相加,但不局限于此;步驟714 對運算值進行散列算法,得到基礎(chǔ)數(shù)據(jù)。該散列算法可以為SHA1、SHA256、SHA384和MD5,但不局限于此。當(dāng)接收到產(chǎn)生偽隨機數(shù)的信息時,循環(huán)執(zhí)行以下步驟對得到的基礎(chǔ)數(shù)據(jù)進行加密算法,得到偽隨機數(shù);每次將得到的偽隨機數(shù)作為偽隨機數(shù)種子再次進行加密算法,得到偽隨機數(shù)序列。所述加密算法可以為DES、3DES、AES和RSA,但不限于此,本實施例三中具體采用 DES。本實施例六中e印rom單元也可采用更多。優(yōu)選地,以e印rom芯片中設(shè)有九個 eeprom單元為例,其中一個^prom單元為計數(shù)單元,其它八個為使用單元。相應(yīng)的,步驟 706中,所述設(shè)定的值變?yōu)?。實施例七基于實施例六中圖7所提供的方法,本實施例提供了一種通過e印rom延長芯片使用壽命的數(shù)據(jù)生成裝置,參見圖8,包括電源模塊80、判斷模塊81、置位模塊82、存儲模塊 83、讀取模塊84、計算變量因子模塊85、數(shù)值變化模塊86、運算模塊87和算法模塊88 ;上述判斷模塊81、置位模塊82、存儲模塊83、讀取模塊84、計算變量因子模塊85、數(shù)值變化模塊 86、運算模塊87和算法模塊88均集成在一個芯片上。所述芯片內(nèi)置^prom存儲器,所述 eeprom存儲器包括e印rom計數(shù)單元禾口 e印rom使用單元,其中,e印rom計數(shù)單元用于存儲所述e印rom使用單元的序號,eeprom使用單元用于存儲數(shù)值,第一次使用的數(shù)值是預(yù)先寫入的。電源模塊80,用于在芯片工作時為其供電;判斷模塊81,用于判斷使用標(biāo)識是否置位;還用于判斷e印rom使用單元中的數(shù)值與初始值的差值是否大于預(yù)設(shè)的最大次數(shù);還用于判斷e印rom計數(shù)單元中的數(shù)值與預(yù)設(shè)值的差值是否小于設(shè)定的值;還用于判斷從^prom使用單元中讀取的數(shù)值是否等于寫入 e印rom使用單元的數(shù)值,;置位模塊82,用于初次使用芯片時,將使用標(biāo)識置位;存儲模塊83,用于存儲關(guān)聯(lián)信息和芯片的硬件序列號;還用于存儲生成的基礎(chǔ)數(shù)據(jù);讀取模塊84,用于讀取所述芯片的硬件序列號和其存儲的所述數(shù)值;計算變量因子模塊85,用于根據(jù)所述數(shù)值,通過計算得到變量因子,計算變量因子的具體過程為變量因子=所述計數(shù)單元中的數(shù)值X預(yù)設(shè)的最大次數(shù)+讀取的數(shù)值;數(shù)值變化模塊86,用于根據(jù)預(yù)先約定的運算規(guī)則,對所述^prom使用單元中存儲的數(shù)值進行改變,如加1或減1 ;還用于修改e印rom計數(shù)單元中的數(shù)值;運算模塊87,對所述變量因子和所述硬件序列號進行運算,得到一運算值;算法模塊88,用于對所述運算值進行散列算法,得到基礎(chǔ)數(shù)據(jù).從以上的描述中可以看出,以上實施例通過多種方式生成變量因子,保證了每次生成的基礎(chǔ)數(shù)據(jù)均不同,進而能夠保證信息安全認(rèn)證與會話密鑰生成的安全性,提高信息系統(tǒng)的可靠性。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種延長芯片使用壽命的數(shù)據(jù)生成方法,其特征在于,包括步驟A 根據(jù)芯片內(nèi)存儲器中存儲的關(guān)聯(lián)信息獲取變量因子;步驟B 讀取所述芯片的硬件序列號;步驟C 對所述變量因子和所述硬件序列號計算生成基礎(chǔ)數(shù)據(jù);在步驟A中,還包括修改所述存儲的關(guān)聯(lián)信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述存儲器為閃存,所述閃存包括一個計數(shù)頁和至少一個使用頁;其中,所述計數(shù)頁用于存儲所述使用頁對應(yīng)的擦寫次數(shù),所述使用頁包括多個段,每段包括多個位;所述根據(jù)存儲器中存儲的關(guān)聯(lián)信息獲取變量因子包括在所述閃存的使用頁中查詢目標(biāo)位并計算所述目標(biāo)位對應(yīng)的物理偏移值,并讀取所述計數(shù)頁中的擦寫次數(shù);根據(jù)所述物理偏移值和所述擦寫次數(shù)計算變量因子。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述閃存內(nèi)設(shè)置有使用標(biāo)識;所述在所述閃存的使用頁中查詢目標(biāo)位和所述目標(biāo)位對應(yīng)的物理偏移值之前,所述方法還包括根據(jù)所述使用標(biāo)識判斷所述閃存是否為首次使用;如果是,將所述計數(shù)頁中的擦寫次數(shù)清零,并擦除所述使用頁,擦除所述使用頁后,所述使用頁中所有位的數(shù)值為指定值,設(shè)置所述使用標(biāo)識為已使用;如果否,直接執(zhí)行步驟A。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述在所述閃存的使用頁中查詢目標(biāo)位包括按照設(shè)定的查找方法在所述使用頁中查找存儲的數(shù)值第一個為所述指定值的位,將查找到的為所述指定值的位確定為目標(biāo)位,并將目標(biāo)位的值修改為所述指定值以外的值。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述在所述閃存的使用頁中查詢目標(biāo)位包括按照設(shè)定的查找方法在所述使用頁中查找存儲的數(shù)值最后一個不為所述指定值的位, 將查找到的最后一個不為所述指定值的位的下一位確定為目標(biāo)位,并將所述目標(biāo)位的值修改為所述指定值以外的值。
6.根據(jù)權(quán)利要求4或5所述的方法,其特征在于,所述指定值為1,將所述目標(biāo)位修改為所述指定值以外的值包括將所述目標(biāo)位清零。
7.根據(jù)權(quán)利要求4或5所述的方法,其特征在于,所述每段對應(yīng)一個序號;所述設(shè)定的查找方法包括從低序號段到高序號段查找不全為指定值的目標(biāo)段,在所述目標(biāo)段內(nèi)從高位到低位查找目標(biāo)位;或,從高序號段到低高序號段查找不全為指定值的目標(biāo)段,在所述目標(biāo)段內(nèi)從高位到低位查找目標(biāo)位;或,從低序號段到高序號段查找不全為指定值的目標(biāo)段,在所述目標(biāo)段內(nèi)從低位到高位查找目標(biāo)位;或,從高低序號段到低高序號段查找不全為指定值的目標(biāo)段,在所述目標(biāo)段內(nèi)從低位到高位查找目標(biāo)位。
8.根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)在所述使用頁中未查找到存儲的數(shù)值為所述指定值的位時,所述方法還包括讀出所述計數(shù)頁中的擦寫次數(shù)并加1,擦除所述計數(shù)頁;將所述加1后的擦寫次數(shù)寫入所述計數(shù)頁;將所述使用頁擦除,擦除所述使用頁后,所述使用頁中所有位的數(shù)值為指定值。
9.根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)所述使用頁為多個時,所述多個使用頁中的段的序號為依次順序編排的。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述存儲器為電可擦可編程只讀存儲器;所述存儲器包括一個計數(shù)單元和至少一個使用單元;其中,所述計數(shù)單元用于存儲所述使用單元的序號,所述使用單元中寫入的第一個數(shù)值為初始值;所述根據(jù)存儲器中存儲的關(guān)聯(lián)信息獲取變量因子,具體為根據(jù)所述計數(shù)單元中的序號確定當(dāng)前讀取的使用單元,讀取確定的所述使用單元中的數(shù)值,根據(jù)所述數(shù)值生成變量因子;所述修改所述存儲的關(guān)聯(lián)信息,具體為修改所述使用單元中的數(shù)值,判斷修改后的數(shù)值是否超過設(shè)定閾值,如果是,將所述計數(shù)單元中的序號調(diào)整為下一個使用單元的序號;如果否,直接執(zhí)行步驟A。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述存儲器設(shè)置有使用標(biāo)識;所述根據(jù)所述計數(shù)單元中的序號確定當(dāng)前讀取的使用單元之前,所述方法還包括根據(jù)所述使用標(biāo)識判斷所述存儲器是否為首次使用;如果是,在所述計數(shù)單元中寫入預(yù)設(shè)值,在所述使用單元中寫入所述初始值,并設(shè)置所述使用標(biāo)識為已使用;如果否,直接執(zhí)行步驟A。
12.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述修改所述使用單元中的數(shù)值包括 將所述使用單元中的數(shù)值加1。
13.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對所述變量因子和所述硬件序列號計算生成基礎(chǔ)數(shù)據(jù)包括對所述變量因子和所述硬件序列號進行運算,得到運算值;對所述運算值進行散列算法,得到基礎(chǔ)數(shù)據(jù)。
14.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對所述變量因子和所述硬件序列號計算生成基礎(chǔ)數(shù)據(jù)包括在所述芯片中生成隨機數(shù),對所述隨機數(shù)與所述變量因子進行運算,得到一個中間值;對所述中間值和所述硬件序列號進行運算,得到運算值;對所述運算值進行散列算法,得到基礎(chǔ)數(shù)據(jù)。
15.根據(jù)權(quán)利要求13或14所述的方法,其特征在于,所述運算為異或運算、拼接運算、組合運算或相加運算。
16.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括對所述基礎(chǔ)數(shù)據(jù)進行計算得到偽隨機數(shù);每次將得到的所述偽隨機數(shù)作為新的基礎(chǔ)數(shù)據(jù)再次計算,得到偽隨機數(shù)序列。
17.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括使用所述基礎(chǔ)數(shù)據(jù)進行信息安全操作。
18.—種延長芯片使用壽命的數(shù)據(jù)生成裝置,其特征在于,包括存儲模塊,用于存儲關(guān)聯(lián)信息和芯片的硬件序列號;變量因子獲取模塊,用于從所述存儲模塊中獲取所述關(guān)聯(lián)信息,根據(jù)所述關(guān)聯(lián)信息計算得到變量因子,還用于更新所述關(guān)聯(lián)信息;序列號讀取模塊,用于從所述存儲模塊中讀取所述芯片的硬件序列號;基礎(chǔ)數(shù)據(jù)生成模塊,用于對所述變量因子和所述硬件序列號計算生成基礎(chǔ)數(shù)據(jù)。
19.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述存儲模塊是閃存,包括一個計數(shù)頁和至少一個使用頁,所述計數(shù)頁用于存儲所述使用頁對應(yīng)的擦寫次數(shù),所述使用頁包括多個段,每個段包括多個位;所述變量因子獲取模塊包括第一變量因子獲取單元和第一更新單元;所述第一變量因子獲取單元,用于在所述使用頁中查找目標(biāo)位并計算所述目標(biāo)位對應(yīng)的物理偏移值,并讀取所述計數(shù)頁中的擦寫次數(shù),根據(jù)所述所述目標(biāo)位的物理偏移值和所述擦寫次數(shù)計算變量因子;所述第一更新單元,用于更新所述第一變量因子獲取單元確定的目標(biāo)位。
20.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述存儲模塊是電可擦可編程只讀存儲器,所述存儲模塊包括一個計數(shù)單元和至少一個使用單元;其中,所述計數(shù)單元用于存儲所述使用單元的序號,所述使用單元中寫入的第一個數(shù)值為初始值;所述變量因子獲取模塊包括第二變量因子獲取單元和第二更新單元;所述第二變量因子獲取單元,用于根據(jù)所述計數(shù)單元中的序號確定當(dāng)前讀取的使用單元,讀取確定的所述使用單元中的數(shù)值,根據(jù)所述數(shù)值生成變量因子;所述第二更新單元,用于修改所述使用單元中的數(shù)值,并判斷修改后的所述數(shù)值是否超過設(shè)定閾值,如果是,還用于將所述計數(shù)單元中的序號調(diào)整為下一個使用單元的序號。
21.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述裝置還包括隨機數(shù)模塊,用于生成隨機數(shù);所述基礎(chǔ)數(shù)據(jù)生成模塊,用于對所述隨機數(shù)、所述變量因子和所述硬件序列號計算生成基礎(chǔ)數(shù)據(jù)。
22.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述裝置還包括偽隨機數(shù)計算模塊,用于對所述基礎(chǔ)數(shù)據(jù)進行計算得到偽隨機數(shù);偽隨機數(shù)序列獲取單元,用于將所述偽隨機數(shù)計算模塊得到的所述偽隨機數(shù)作為新的基礎(chǔ)數(shù)據(jù),觸發(fā)所述偽隨機數(shù)計算模塊再次計算,得到偽隨機數(shù)序列。
23.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述裝置還包括操作模塊,用于使用所述基礎(chǔ)數(shù)據(jù)生成模塊生成的基礎(chǔ)數(shù)據(jù)進行信息安全操作。
全文摘要
本發(fā)明公開了一種延長芯片使用壽命的數(shù)據(jù)生成方法和裝置。其中,該方法包括步驟A,根據(jù)芯片內(nèi)存儲器中存儲的關(guān)聯(lián)信息獲取變量因子;步驟B,讀取芯片的硬件序列號;步驟C,對上述變量因子和硬件序列號計算生成基礎(chǔ)數(shù)據(jù);在步驟A中,還包括修改所述存儲的關(guān)聯(lián)信息。本發(fā)明解決了上述因芯片在固定時刻產(chǎn)生的基礎(chǔ)數(shù)據(jù)相同引起的信息系統(tǒng)不安全的問題,增強了系統(tǒng)的可靠性。
文檔編號H04L9/20GK102325023SQ20111018587
公開日2012年1月18日 申請日期2011年7月4日 優(yōu)先權(quán)日2011年7月4日
發(fā)明者于華章, 陸舟 申請人:飛天誠信科技股份有限公司