系統(tǒng)隨機(jī)數(shù)生成方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子器件,特別涉及系統(tǒng)隨機(jī)數(shù)的生成方法。
【背景技術(shù)】
[0002]隨機(jī)數(shù)是系統(tǒng)進(jìn)行加密(例如系統(tǒng)利用隨機(jī)數(shù)生成密鑰)的重要工具,因此隨機(jī)數(shù)生成器是所有加密系統(tǒng)所必備的一個(gè)環(huán)節(jié)。一個(gè)隨機(jī)數(shù)生成器必須具有足夠安全的能力去防止來自外部或內(nèi)部的攻擊。下面列出了最基本的三條安全原則。
[0003]I)頻率和游程隨機(jī)性,生成器的輸出要具有隨機(jī)性,滿足頻率測試和游程測試,針對(duì)長游程和刺探攻擊保證安全;
[0004]2)重構(gòu)恢復(fù)/前向安全性,即使知道生成器在某一特定時(shí)刻的狀態(tài),也不能由此推斷出生成器在此刻以前的輸出數(shù);
[0005]3)入侵預(yù)測/后向安全性,即使知道生成器在某一特定時(shí)刻的狀態(tài),也不能由此推斷出生成器在此刻以后的輸出數(shù)。
[0006]目前主要有通過真實(shí)的硬件隨機(jī)數(shù)生成器生成隨機(jī)數(shù),和通過軟件實(shí)現(xiàn)的偽隨機(jī)數(shù)生成器生成隨機(jī)數(shù)兩種方式。通過真實(shí)的硬件隨機(jī)數(shù)生成器生成隨機(jī)數(shù)的方式,可參見申請(qǐng)?zhí)枮?“201010559971.1”、“201020624542.3” 的專利文件。
[0007]真實(shí)的硬件隨機(jī)數(shù)生成器和軟件實(shí)現(xiàn)的偽隨機(jī)數(shù)生成器是完全不同的。前者純粹使用硬件實(shí)現(xiàn),對(duì)于相同的輸入,每次的結(jié)果都完全不可預(yù)測;后者易于用軟件實(shí)現(xiàn),可以得到統(tǒng)計(jì)上的隨機(jī)數(shù),但是算法實(shí)現(xiàn)公開后,同樣的輸入會(huì)得到同樣的輸出,難以做到算法隨機(jī)數(shù)序列不可重復(fù),不能保證隨機(jī)數(shù)序列的唯一性。
【發(fā)明內(nèi)容】
[0008]本發(fā)明的目的在于提供一種系統(tǒng)隨機(jī)數(shù)生成方法,使得用戶可以得到唯一和不可復(fù)制的系統(tǒng)隨機(jī)數(shù)。
[0009]為解決上述技術(shù)問題,本發(fā)明提供了一種系統(tǒng)隨機(jī)數(shù)生成方法,包含以下步驟:
[0010]獲取保存在一次性編程OTP寄存器中設(shè)定地址內(nèi)的芯片標(biāo)識(shí)符;
[0011]以所述獲取的芯片標(biāo)識(shí)符作為初始種子數(shù);
[0012]根據(jù)所述初始種子數(shù)和設(shè)定的生成多項(xiàng)式生成所述系統(tǒng)隨機(jī)數(shù)。
[0013]本發(fā)明實(shí)施方式相對(duì)于現(xiàn)有技術(shù)而言,以獲取保存在一次性編程OTP寄存器中設(shè)定地址內(nèi)的芯片標(biāo)識(shí)符作為“初始種子數(shù)”,以用戶寫入到OTP寄存器中的用戶標(biāo)識(shí)作為“生成多項(xiàng)式”,根據(jù)所述初始種子數(shù)和生成多項(xiàng)式生成系統(tǒng)隨機(jī)數(shù)。由于所述芯片標(biāo)識(shí)符具有唯一性和不可復(fù)制的特性,使得用戶可以得到唯一和不可復(fù)制的系統(tǒng)隨機(jī)數(shù)。
[0014]另外,在獲取保存在一次性編程OTP寄存器中設(shè)定地址內(nèi)的芯片標(biāo)識(shí)符之前,還包含以下步驟:
[0015]將待寫入到一次性編程OTP寄存器中的芯片標(biāo)識(shí)符,進(jìn)行安全散列算法SHA的運(yùn)算,得到經(jīng)所述SHA加密后的芯片標(biāo)識(shí)符;
[0016]將經(jīng)所述SHA加密后的芯片標(biāo)識(shí)符寫入到所述OTP寄存器中的設(shè)定地址內(nèi);
[0017]所述獲取的芯片標(biāo)識(shí)符為經(jīng)SHA加密后寫入到所述設(shè)定地址內(nèi)的芯片標(biāo)識(shí)符。
[0018]本發(fā)明中,寫入到OTP寄存器的芯片標(biāo)識(shí)符是經(jīng)過SHA運(yùn)算后得到的加密的芯片標(biāo)識(shí)符,該加密的芯片標(biāo)識(shí)符與上述待寫入到OTP寄存器中的芯片標(biāo)識(shí)符不同,因此可以對(duì)待寫入到OTP寄存器中的芯片標(biāo)識(shí)符進(jìn)行加密保護(hù),防止被破解。同時(shí),SHA是把不定長度的一串消息,加以特定的算法處理,得到固定長度的數(shù)據(jù),這個(gè)數(shù)據(jù)在理論上破解很困難,工程實(shí)現(xiàn)也是不可能的,所以本發(fā)明中的芯片標(biāo)識(shí)符也是唯一的,不可復(fù)制的。
[0019]另外,在所述將待寫入到OTP寄存器中的芯片標(biāo)識(shí)符,進(jìn)行SHA的運(yùn)算之前,還包含以下步驟:
[0020]將所述待寫入到OTP寄存器中的芯片標(biāo)識(shí)符作為第一字段,在所述第一字段后的第二字段用于存放停止位,在所述第二字段后的第三字段為填充字段,所述填充字段中的各比特位填充為O ;
[0021]在所述第三字段后的第四字段用于指示所述第一字段占用的比特位數(shù);
[0022]所述第一字段、第二字段、第三字段和第四字段的比特長度總和為512位比特;
[0023]在所述將待寫入到OTP寄存器中的芯片標(biāo)識(shí)符,進(jìn)行SHA的運(yùn)算的步驟中,將所述第一字段、第二字段、第三字段和第四字段組成的512位比特,進(jìn)行所述SHA的運(yùn)算。
[0024]在SHA運(yùn)算過程中,由于輸入的數(shù)據(jù)必須是512位比特,通過上述SHA運(yùn)算之前的準(zhǔn)備步驟,就能將第一字段、第二字段、第三字段和第四字段的比特長度總和綜合處理成適用于SHA運(yùn)算的512位比特,保證了 SHA運(yùn)算的可操作性和準(zhǔn)確性。
[0025]另外,芯片標(biāo)識(shí)符包含用戶設(shè)定的ID和廠商設(shè)定的ID。使用這種方法,只要保護(hù)好廠商代碼或用戶代碼,即使是知曉全部設(shè)計(jì)細(xì)節(jié)的研發(fā)人員,缺了任意一個(gè)代碼,都不能破解上述芯片標(biāo)識(shí)符,也不能把空白芯片,改寫為有特定Chip ID的芯片,比單有一個(gè)廠商代碼或者用戶代碼安全系數(shù)更高。
[0026]另外,將經(jīng)所述SHA加密后的芯片標(biāo)識(shí)符寫入到所述OTP寄存器中的設(shè)定地址內(nèi)的步驟中,包含以下子步驟:
[0027]在經(jīng)所述SHA運(yùn)算后得到的數(shù)據(jù)中,取低位的N個(gè)比特位,所述N為所述廠商設(shè)定的ID的比特長度;
[0028]將所述N個(gè)比特位寫入到所述OTP寄存器中的用于存放廠商設(shè)定的ID的字段中;將所述N個(gè)比特位中的低位的NI個(gè)比特位寫入到所述OTP寄存器中的用于存放用戶設(shè)定的ID的字段中;其中,所述NI為所述用戶設(shè)定的ID的比特長度。
[0029]由于使用SHA算法運(yùn)算后的芯片標(biāo)識(shí)符信息會(huì)按照一定的順序?qū)懭氲絆TP寄存器中,而本發(fā)明中OTP寄存器中用戶設(shè)定的ID的字段和廠商設(shè)定的ID的字段是有一一對(duì)應(yīng)的位置存放關(guān)系的,這就為SHA算法的準(zhǔn)確性提供了保障,使整個(gè)運(yùn)算過程井井有條,不容易發(fā)生由于位置關(guān)系不正確導(dǎo)致的運(yùn)算錯(cuò)誤。
【附圖說明】
[0030]圖1是根據(jù)本發(fā)明第一實(shí)施方式中的系統(tǒng)隨機(jī)數(shù)生成方法的流程圖;
[0031]圖2是根據(jù)本發(fā)明第二實(shí)施方式中的芯片標(biāo)識(shí)符寫入方法的流程圖;
[0032]圖3是根據(jù)本發(fā)明第二實(shí)施方式中的芯片標(biāo)識(shí)符寫入方法的示意圖;
[0033]圖4是根據(jù)本發(fā)明第二實(shí)施方式中的寫入OTP寄存器的芯片標(biāo)識(shí)符的數(shù)據(jù)通道。
【具體實(shí)施方式】
[0034]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明的各實(shí)施方式進(jìn)行詳細(xì)的闡述。然而,本領(lǐng)域的普通技術(shù)人員可以理解,在本發(fā)明各實(shí)施方式中,為了使讀者更好地理解本申請(qǐng)而提出了許多技術(shù)細(xì)節(jié)。但是,即使沒有這些技術(shù)細(xì)節(jié)和基于以下各實(shí)施方式的種種變化和修改,也可以實(shí)現(xiàn)本申請(qǐng)各權(quán)利要求所要求保護(hù)的技術(shù)方案。
[0035]本發(fā)明的第一實(shí)施方式涉及一種系統(tǒng)隨機(jī)數(shù)生成方法。具體流程如圖1所示。
[0036]首先是步驟101,獲取初始種子數(shù)。該初始種子數(shù)是保存在一次性編程OTP寄存器中設(shè)定地址內(nèi)的芯片標(biāo)識(shí)符,該芯片標(biāo)識(shí)符具有唯一性和不可復(fù)制的特性。OTP寄存器是通過電子熔絲e-Fuse、燒斷l(xiāng)aser或熔斷fuse實(shí)現(xiàn)的,其中e_Fuse型OTP寄存器包含稱合電容型的e-Fuse寄存器、串聯(lián)晶體管型的e-Fuse寄存器和電介質(zhì)擊穿型的e-Fuse寄存器。這些方式實(shí)現(xiàn)的OTP寄存器特點(diǎn)是只能一次性寫入,不可改寫,但是可以重復(fù)讀出數(shù)據(jù)。
[0037]接著是步驟102,獲取生成多項(xiàng)式。
[0038]該生成多項(xiàng)式可以為用戶寫入到OTP寄存器中的用戶標(biāo)識(shí)。
[0039]需要說明的是,步驟101和步驟102并無明確的先后順序,既可以先執(zhí)行步驟101,也可以先執(zhí)行步驟102,二者也可以同時(shí)進(jìn)行。
[0040]最后是步驟103,生成系統(tǒng)隨機(jī)數(shù)。根據(jù)獲取的初始種子數(shù)和生成多項(xiàng)式生成系統(tǒng)隨機(jī)數(shù)。
[0041 ] 至此,整個(gè)隨機(jī)數(shù)生成過程結(jié)束。
[0042]與現(xiàn)有技術(shù)相比,本發(fā)明中以獲取保存在一次性編程OTP寄存器中設(shè)定地址內(nèi)的芯片標(biāo)識(shí)符作為“初始種子數(shù)”,以用戶寫入到OTP寄存器中的用戶標(biāo)識(shí)作為“生成多項(xiàng)式”,并根據(jù)獲取的初始種子數(shù)和生成多項(xiàng)式生成系統(tǒng)隨機(jī)數(shù)。由于所述芯片標(biāo)識(shí)符具有唯一性和不可復(fù)制的特性,使得用戶可以得到唯一和不可復(fù)制的系統(tǒng)隨機(jī)數(shù)。
[0043]上面各種方法的步驟劃分,只是為了描述清楚,實(shí)現(xiàn)時(shí)可以合并為一個(gè)步驟或者對(duì)某些步驟進(jìn)行拆分,分解為多個(gè)步驟,只要包含相同的邏輯關(guān)系,都在本專利的保護(hù)范圍內(nèi);對(duì)算法中或者流程中添加無關(guān)緊要的修改或者引入無關(guān)緊要的設(shè)計(jì),但不改變其算法和流程的核心設(shè)計(jì)都在該專利的保護(hù)范圍內(nèi)。
[0044]本發(fā)明的第二實(shí)施方式涉及一種系統(tǒng)隨機(jī)數(shù)生成方法,具體流程如圖1所示。第二實(shí)施方式在第一實(shí)施方式的基礎(chǔ)上作了進(jìn)一步細(xì)化,給出了將芯片標(biāo)識(shí)符寫入OTP寄存器中設(shè)定地址內(nèi)的具體方法,進(jìn)一步闡述了芯片標(biāo)識(shí)符以及系統(tǒng)隨機(jī)數(shù)的唯一性和不可復(fù)制的特性。具體地說,在獲取保存在一次性編程OTP寄存器中設(shè)定地址內(nèi)的芯片標(biāo)識(shí)符之前,包含將芯片標(biāo)識(shí)符經(jīng)SHA運(yùn)算加密后寫入到OTP寄存器中設(shè)定地址內(nèi)的步驟。在本實(shí)施方式中,將芯片標(biāo)識(shí)符(Chip ID)寫入OTP寄存器中設(shè)定地址內(nèi)的具體流程如圖2所示。
[0045]首先是步驟201,經(jīng)系統(tǒng)接口獲取待寫入到OTP寄存器中的Chip ID。
[0046]該Chip ID包含用戶設(shè)定的ID、廠商設(shè)定的ID、其它自定義的ID或其任意組合的ID,在本實(shí)施方式中使用用戶設(shè)定的ID和廠商設(shè)定的ID的組合,如圖3所示。使用這種方法,只要保護(hù)好用戶設(shè)定的ID和廠商設(shè)定的ID,即使是知曉全部設(shè)計(jì)細(xì)節(jié)的研發(fā)人員,缺了任意一個(gè)值,都不能破解上述芯片標(biāo)識(shí)符,也不能把空白芯片,改寫為有特定Chip ID的芯片,比單有一個(gè)廠商代碼或者用戶代碼安全系數(shù)更高。
[0047]經(jīng)過系統(tǒng)接口獲取待寫入到OTP寄存器中的Chip ID后,需要經(jīng)過一個(gè)合并處理的過程,用于把用戶設(shè)定的ID和廠商設(shè)定的ID合并處理成一定的順序,以便用于后續(xù)的SHA運(yùn)算。具體如圖4所示:
[0048]首先系統(tǒng)接口將待寫入到OTP寄存器中的由用戶設(shè)定的ID (圖4中編號(hào)I)和廠商設(shè)定的ID (圖4中編號(hào)2)組成的Chip ID作為第一字段,如圖4中的編號(hào)3,然后在上述第一字段后的第二字段存放停止位,如圖4中的編號(hào)4,之后把上述第二字段后的第三字段作為為填充字段,該填充字段中