亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種延長(zhǎng)芯片使用壽命的數(shù)據(jù)生成方法和裝置的制作方法

文檔序號(hào):7714776閱讀:266來(lái)源:國(guó)知局
專利名稱:一種延長(zhǎng)芯片使用壽命的數(shù)據(jù)生成方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及信息安全領(lǐng)域,具體而言,涉及一種延長(zhǎng)芯片使用壽命的數(shù)據(jù)生成方法和裝置。
背景技術(shù)
隨著計(jì)算機(jī)技術(shù)、通信技術(shù)和網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,信息在存儲(chǔ)、傳送、接收和處理過(guò)程中的安全問(wèn)題已受到人們的廣泛關(guān)注。隨機(jī)數(shù)在信息安全系統(tǒng)中扮演著重要的角色,在基于計(jì)算機(jī)、網(wǎng)絡(luò)通信和交易中有著廣泛的應(yīng)用基礎(chǔ)。比如密鑰產(chǎn)生、初始化向量、時(shí)間戳、認(rèn)證挑戰(zhàn)碼、密鑰協(xié)商等,都要用到隨機(jī)數(shù)。在實(shí)際應(yīng)用中,諸如相互認(rèn)證或者會(huì)話密鑰生成之類,對(duì)隨機(jī)數(shù)的統(tǒng)計(jì)隨機(jī)性要求并不是很高,但是要求產(chǎn)生的隨機(jī)數(shù)序列是不可預(yù)測(cè)的,因此目前往往使用偽隨機(jī)數(shù)來(lái)實(shí)現(xiàn)各種功能。通過(guò)隨機(jī)數(shù)算法生成偽隨機(jī)數(shù)的過(guò)程,通常依賴基礎(chǔ)數(shù)據(jù),需要通過(guò)基礎(chǔ)數(shù)據(jù)生成介于指定數(shù)值區(qū)間的偽隨機(jī)序列?,F(xiàn)有技術(shù)中,基于芯片產(chǎn)生基礎(chǔ)數(shù)據(jù)的方法中,由于芯片沒(méi)有隨機(jī)源,使得每次芯片上電后的固定時(shí)刻產(chǎn)生的基礎(chǔ)數(shù)據(jù)相同,這就造成信息系統(tǒng)的不安全。針對(duì)相關(guān)技術(shù)中芯片在固定時(shí)刻產(chǎn)生的基礎(chǔ)數(shù)據(jù)相同引起的信息系統(tǒng)不安全的問(wèn)題,目前尚未提出有效的解決方案。

發(fā)明內(nèi)容
本發(fā)明提供了一種延長(zhǎng)芯片使用壽命的數(shù)據(jù)生成方法和裝置,以至少解決上述因芯片在固定時(shí)刻產(chǎn)生的基礎(chǔ)數(shù)據(jù)相同引起的信息系統(tǒng)不安全的問(wèn)題。本發(fā)明提供一種延長(zhǎng)芯片使用壽命的數(shù)據(jù)生成方法,包括步驟A 根據(jù)芯片內(nèi)存儲(chǔ)器中存儲(chǔ)的關(guān)聯(lián)信息獲取變量因子;步驟B 讀取所述芯片的硬件序列號(hào);步驟C 對(duì)所述變量因子和所述硬件序列號(hào)計(jì)算生成基礎(chǔ)數(shù)據(jù);在步驟A中,還包括修改所述存儲(chǔ)的關(guān)聯(lián)信息。所述存儲(chǔ)器為閃存,所述閃存包括一個(gè)計(jì)數(shù)頁(yè)和至少一個(gè)使用頁(yè);其中,所述計(jì)數(shù)頁(yè)用于存儲(chǔ)所述使用頁(yè)對(duì)應(yīng)的擦寫(xiě)次數(shù),所述使用頁(yè)包括多個(gè)段,每段包括多個(gè)位;所述根據(jù)存儲(chǔ)器中存儲(chǔ)的關(guān)聯(lián)信息獲取變量因子包括在所述閃存的使用頁(yè)中查詢目標(biāo)位并計(jì)算所述目標(biāo)位對(duì)應(yīng)的物理偏移值,并讀取所述計(jì)數(shù)頁(yè)中的擦寫(xiě)次數(shù);根據(jù)所述物理偏移值和所述擦寫(xiě)次數(shù)計(jì)算變量因子。所述閃存內(nèi)設(shè)置有使用標(biāo)識(shí);所述在所述閃存的使用頁(yè)中查詢目標(biāo)位和所述目標(biāo)位對(duì)應(yīng)的物理偏移值之前,所述方法還包括根據(jù)所述使用標(biāo)識(shí)判斷所述閃存是否為首次使用;如果是,將所述計(jì)數(shù)頁(yè)中的擦寫(xiě)次數(shù)清零,并擦除所述使用頁(yè),擦除所述使用頁(yè)后,所述使用頁(yè)中所有位的數(shù)值為指定值,設(shè)置所述使用標(biāo)識(shí)為已使用;如果否,直接執(zhí)行步驟A。
所述在所述閃存的使用頁(yè)中查詢目標(biāo)位包括按照設(shè)定的查找方法在所述使用頁(yè)中查找存儲(chǔ)的數(shù)值第一個(gè)為所述指定值的位, 將查找到的為所述指定值的位確定為目標(biāo)位,并將目標(biāo)位的值修改為所述指定值以外的值。所述在所述閃存的使用頁(yè)中查詢目標(biāo)位還包括按照設(shè)定的查找方法在所述使用頁(yè)中查找存儲(chǔ)的數(shù)值最后一個(gè)不為所述指定值的位,將查找到的最后一個(gè)不為所述指定值的位的下一位確定為目標(biāo)位,并將所述目標(biāo)位的值修改為所述指定值以外的值。所述指定值為1,將所述目標(biāo)位修改為所述指定值以外的值包括將所述目標(biāo)位清零。所述每段對(duì)應(yīng)一個(gè)序號(hào);所述設(shè)定的查找方法包括從低序號(hào)段到高序號(hào)段查找不全為指定值的目標(biāo)段,在所述目標(biāo)段內(nèi)從高位到低位查找目標(biāo)位;或,從高序號(hào)段到低高序號(hào)段查找不全為指定值的目標(biāo)段,在所述目標(biāo)段內(nèi)從高位到低位查找目標(biāo)位;或,從低序號(hào)段到高序號(hào)段查找不全為指定值的目標(biāo)段,在所述目標(biāo)段內(nèi)從低位到高位查找目標(biāo)位;或,從高低序號(hào)段到低高序號(hào)段查找不全為指定值的目標(biāo)段,在所述目標(biāo)段內(nèi)從低位到高位查找目標(biāo)位。所述方法還包括讀出所述計(jì)數(shù)頁(yè)中的擦寫(xiě)次數(shù)并加1,擦除所述計(jì)數(shù)頁(yè);將所述加1后的擦寫(xiě)次數(shù)寫(xiě)入所述計(jì)數(shù)頁(yè);將所述使用頁(yè)擦除,擦除所述使用頁(yè)后,所述使用頁(yè)中所有位的數(shù)值為指定值。當(dāng)所述使用頁(yè)為多個(gè)時(shí),所述多個(gè)使用頁(yè)中的段的序號(hào)為依次順序編排的。所述存儲(chǔ)器為電可擦可編程只讀存儲(chǔ)器;所述存儲(chǔ)器包括一個(gè)計(jì)數(shù)單元和至少一個(gè)使用單元;其中,所述計(jì)數(shù)單元用于存儲(chǔ)所述使用單元的序號(hào),所述使用單元中寫(xiě)入的第一個(gè)數(shù)值為初始值;所述根據(jù)存儲(chǔ)器中存儲(chǔ)的關(guān)聯(lián)信息獲取變量因子,具體為根據(jù)所述計(jì)數(shù)單元中的序號(hào)確定當(dāng)前讀取的使用單元,讀取確定的所述使用單元中的數(shù)值,根據(jù)所述數(shù)值生成變量因子;所述修改所述存儲(chǔ)的關(guān)聯(lián)信息,具體為修改所述使用單元中的數(shù)值,判斷修改后的數(shù)值是否超過(guò)設(shè)定閾值,如果是,將所述計(jì)數(shù)單元中的序號(hào)調(diào)整為下一個(gè)使用單元的序號(hào);如果否,直接執(zhí)行步驟A。所述存儲(chǔ)器設(shè)置有使用標(biāo)識(shí);所述根據(jù)所述計(jì)數(shù)單元中的序號(hào)確定當(dāng)前讀取的使用單元之前,所述方法還包括根據(jù)所述使用標(biāo)識(shí)判斷所述存儲(chǔ)器是否為首次使用;如果是,在所述計(jì)數(shù)單元中寫(xiě)入預(yù)設(shè)值,在所述使用單元中寫(xiě)入所述初始值,并設(shè)置所述使用標(biāo)識(shí)為已使用;如果否, 直接執(zhí)行步驟A。所述修改所述使用單元中的數(shù)值包括將所述使用單元中的數(shù)值加1。所述對(duì)所述變量因子和所述硬件序列號(hào)計(jì)算生成基礎(chǔ)數(shù)據(jù)包括
對(duì)所述變量因子和所述硬件序列號(hào)進(jìn)行運(yùn)算,得到運(yùn)算值;對(duì)所述運(yùn)算值進(jìn)行散列算法,得到基礎(chǔ)數(shù)據(jù)。所述對(duì)所述變量因子和所述硬件序列號(hào)計(jì)算生成基礎(chǔ)數(shù)據(jù)還包括在所述芯片中生成隨機(jī)數(shù),對(duì)所述隨機(jī)數(shù)與所述變量因子進(jìn)行運(yùn)算,得到一個(gè)中間值;對(duì)所述中間值和所述硬件序列號(hào)進(jìn)行運(yùn)算,得到運(yùn)算值;對(duì)所述運(yùn)算值進(jìn)行散列算法,得到基礎(chǔ)數(shù)據(jù)。所述運(yùn)算為異或運(yùn)算、拼接運(yùn)算、組合運(yùn)算或相加運(yùn)算。所述方法還包括對(duì)所述基礎(chǔ)數(shù)據(jù)進(jìn)行計(jì)算得到偽隨機(jī)數(shù);每次將得到的所述偽隨機(jī)數(shù)作為新的基礎(chǔ)數(shù)據(jù)再次計(jì)算,得到偽隨機(jī)數(shù)序列。所述方法還包括使用所述基礎(chǔ)數(shù)據(jù)進(jìn)行信息安全操作。本發(fā)明又提供一種延長(zhǎng)芯片使用壽命的數(shù)據(jù)生成裝置,包括存儲(chǔ)模塊,用于存儲(chǔ)關(guān)聯(lián)信息和芯片的硬件序列號(hào);變量因子獲取模塊,用于從所述存儲(chǔ)模塊中獲取所述關(guān)聯(lián)信息,根據(jù)所述關(guān)聯(lián)信息計(jì)算得到變量因子,還用于更新所述關(guān)聯(lián)信息;序列號(hào)讀取模塊,用于從所述存儲(chǔ)模塊中讀取所述芯片的硬件序列號(hào);基礎(chǔ)數(shù)據(jù)生成模塊,用于用所述變量因子和所述硬件序列號(hào)計(jì)算生成基礎(chǔ)數(shù)據(jù)。所述存儲(chǔ)模塊是閃存,包括一個(gè)計(jì)數(shù)頁(yè)和至少一個(gè)使用頁(yè),所述計(jì)數(shù)頁(yè)用于存儲(chǔ)所述使用頁(yè)對(duì)應(yīng)的擦寫(xiě)次數(shù),所述使用頁(yè)包括多個(gè)段,每個(gè)段包括多個(gè)位;所述變量因子獲取模塊包括第一變量因子獲取單元和第一更新單元;所述第一變量因子獲取單元,用于在所述使用頁(yè)中查找目標(biāo)位和所述目標(biāo)位對(duì)應(yīng)的物理偏移值,并讀取所述計(jì)數(shù)頁(yè)中的擦寫(xiě)次數(shù),根據(jù)所述所述目標(biāo)位的物理偏移值和所述擦寫(xiě)次數(shù)計(jì)算變量因子;所述第一更新單元,用于更新所述第一變量因子獲取單元確定的目標(biāo)位。所述存儲(chǔ)模塊是電可擦可編程只讀存儲(chǔ)器,所述存儲(chǔ)模塊包括一個(gè)計(jì)數(shù)單元和至少一個(gè)使用單元;其中,所述計(jì)數(shù)單元用于存儲(chǔ)所述使用單元的序號(hào),所述使用單元中寫(xiě)入的第一個(gè)數(shù)值為初始值;所述變量因子獲取模塊包括第二變量因子獲取單元和第二更新單元;所述第二變量因子獲取單元,用于根據(jù)所述計(jì)數(shù)單元中的序號(hào)確定當(dāng)前讀取的使用單元,讀取確定的所述使用單元中的數(shù)值,根據(jù)所述數(shù)值生成變量因子;所述第二更新單元,用于修改所述使用單元中的數(shù)值,并判斷修改后的所述數(shù)值是否超過(guò)設(shè)定閾值,如果是,還用于將所述計(jì)數(shù)單元中的序號(hào)調(diào)整為下一個(gè)使用單元的序號(hào)。所述裝置還包括隨機(jī)數(shù)模塊,用于生成隨機(jī)數(shù);所述基礎(chǔ)數(shù)據(jù)生成模塊,用于對(duì)所述隨機(jī)數(shù)、所述變量因子和所述硬件序列號(hào)計(jì)算生成基礎(chǔ)數(shù)據(jù)。所述裝置還包括偽隨機(jī)數(shù)計(jì)算模塊,用于對(duì)所述基礎(chǔ)數(shù)據(jù)進(jìn)行計(jì)算得到偽隨機(jī)數(shù);偽隨機(jī)數(shù)序列獲取單元,用于將所述偽隨機(jī)數(shù)計(jì)算模塊得到的所述偽隨機(jī)數(shù)作為新的基礎(chǔ)數(shù)據(jù),觸發(fā)所述偽隨機(jī)數(shù)計(jì)算模塊再次計(jì)算,得到偽隨機(jī)數(shù)序列。所述裝置還包括操作模塊,用于使用所述基礎(chǔ)數(shù)據(jù)生成模塊生成的基礎(chǔ)數(shù)據(jù)進(jìn)行信息安全操作。通過(guò)本發(fā)明,根據(jù)存儲(chǔ)器中存儲(chǔ)的關(guān)聯(lián)信息生成變量因子,保證了每次生成的基礎(chǔ)數(shù)據(jù)均不同,進(jìn)而能夠保證信息安全認(rèn)證與會(huì)話密鑰生成的安全性,提高信息系統(tǒng)的可靠性。


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