一種基于puf的偽隨機序列發(fā)生器的制造方法
【專利摘要】本發(fā)明提供一種基于PUF的偽隨機序列發(fā)生器,包括:基于PUF的熵提取模塊、實例化模塊、重播種模塊和偽隨機序列發(fā)生模塊。本發(fā)明首先通過PUF方式產(chǎn)生一個真隨機數(shù),作為熵輸入,再根據(jù)需要產(chǎn)生的偽隨機序列的特性選擇不同的PUF實現(xiàn)方法產(chǎn)生偽隨機序列。當(dāng)序列的位數(shù)不能滿足要求時,本發(fā)明會通過生成重播種變量V’和重播種常量C’繼續(xù)進行迭代運算,直至生成的偽隨機序列的位數(shù)達到要求。本發(fā)明所公開的基于PUF的偽隨機序列發(fā)生器充分利用了PUF不可克隆的特性,通過提取真隨機數(shù)作為種子,再利用哈希算法的不可逆性產(chǎn)生偽隨機序列。相比現(xiàn)有的偽隨機序列發(fā)生器,本發(fā)明產(chǎn)生的偽隨機序列成本開銷低,而隨機性和安全性更有保證。
【專利說明】
一種基于PUF的偽隨機序列發(fā)生器
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及信息安全領(lǐng)域,特別涉及一種偽隨機序列發(fā)生器。
【背景技術(shù)】
[0002]統(tǒng)計學(xué)在生活中應(yīng)用越來越廣泛,尤其是隨機序列,它已廣泛應(yīng)用于密碼學(xué)、擴頻通訊、導(dǎo)航、集成電路的可測性設(shè)計、現(xiàn)代戰(zhàn)爭中的電子對抗技術(shù)等許多重要領(lǐng)域。隨機數(shù)的出現(xiàn)無疑使統(tǒng)計學(xué)的獨立性更高,因此,國內(nèi)外對隨機數(shù)發(fā)生器的研究也越來越重視。隨機數(shù)發(fā)生器也被政府,各大金融機構(gòu)確立為重要的研究方向。偽隨機序列的偽隨機性表現(xiàn)為預(yù)先的可確定性、可重復(fù)產(chǎn)生與處理。偽隨機序列雖然不是真正的隨機序列,但是當(dāng)偽隨機序列周期足夠長時,它便具有與隨機序列相同的良好統(tǒng)計特性。雖然偽隨機序列可以做到良好的隨機性,但如果攻擊者設(shè)備性能足夠好的話還是有方法攻破的。這使得偽隨機序列的安全性很難保證。尤其在集成電路和通信等領(lǐng)域中,當(dāng)測試樣本足夠大,大到覆蓋整個序列周期時,偽隨機序列的隨機性就會大打折扣,很難模擬出集成電路和通信領(lǐng)域中真實的運行情況。
[0003]目前,隨機序列的生成很多都是采用純軟件的方法,純軟件設(shè)計的方法雖然比較方便,也可能有較好的統(tǒng)計特性,但是必須面對這個事實:任何純軟件生成的序列都不可能是真正的隨機序列。它的輸出可準(zhǔn)確預(yù)測,因此輸出的序列必然具有偽隨機性。而使用PUF(Physical Unclonable Funct1n,物理不可克隆函數(shù))的物理不可克隆特性就可以比較好的避免這個問題的發(fā)生。PUF設(shè)計的主要思路是通過物理實體的內(nèi)在物理構(gòu)造來唯一地標(biāo)識單個物理實體,實現(xiàn)有效認證。PUF通過對一個物理實體輸入一個激勵,利用物理實體不可避免的內(nèi)在物理構(gòu)造的隨機差異輸出一個不可預(yù)測的響應(yīng),形成一個物理不可克隆的函數(shù)。利用PUF的特性可以獲取自然界的真隨機數(shù)作為種子,使得偽隨機序列發(fā)生器在應(yīng)用上可以產(chǎn)生隨機性和安全性更高的偽隨機序列。
[0004]而現(xiàn)有的偽隨機序列隨機性不足,現(xiàn)有的偽隨機信號發(fā)生器容易被攻破,無法滿足使用中對偽隨機序列發(fā)生器性能方面的需求。
【發(fā)明內(nèi)容】
[0005]為了克服上述所指的現(xiàn)有技術(shù)的不足之處,本發(fā)明提出一種基于PUF的偽隨機序列發(fā)生器。本發(fā)明所述的偽隨機序列發(fā)生器通過PUF產(chǎn)生真隨機數(shù)種子,改變了現(xiàn)有偽隨機序列發(fā)生器隨機性不足、容易被攻破的情況,提高了偽隨機序列發(fā)生器的性能。
[0006]為了實現(xiàn)上述目的,本發(fā)明提供一種基于PUF的偽隨機序列發(fā)生器,包括:
[0007]基于PUF的熵提取模塊、實例化模塊、重播種模塊和偽隨機序列發(fā)生模塊;基于PUF的熵提取模塊通過PUF方式產(chǎn)生熵輸入(entropy input)信號;實例化模塊同時接收輸入的個性化數(shù)據(jù)、安全強度數(shù)據(jù)以及基于PUF的熵提取模塊產(chǎn)生的熵輸入信號,通過哈希算法生成變量V和常量C,并將生成的變量V和常量C發(fā)送至偽隨機序列發(fā)生模塊;同時,重播種模塊一并接收基于PUF的熵提取模塊產(chǎn)生的熵輸入信號以及實例化模塊生成的變量V,通過哈希算法生成重播種變量V’和重播種常量C’,并將生成的重播種變量V’和重播種常量C’發(fā)送至偽隨機序列發(fā)生模塊;偽隨機序列發(fā)生模塊同時接收位寬數(shù)據(jù)、實例化模塊產(chǎn)生的變量V、常量C、重播種模塊生成的重播種變量V’和重播種常量C’,偽隨機序列發(fā)生模塊先根據(jù)位寬數(shù)據(jù)、實例化模塊產(chǎn)生的變量V和常量C通過哈希算法生成偽隨機序列,當(dāng)變量V和常量C的壽命用盡時(即,需要增加偽隨機序列的位數(shù)時,或者使用變量V計算的次數(shù)達到設(shè)定值時),偽隨機序列發(fā)生模塊向重播種模塊發(fā)送重播種請求,再根據(jù)重播種模塊生成的重播種變量V’和重播種常量C’繼續(xù)通過哈希算法迭代生成偽隨機序列,直至生成的偽隨機序列的位數(shù)達到位寬數(shù)據(jù)的要求時輸出偽隨機序列,同時輸出運行成功信號。
[0008]根據(jù)PUF技術(shù)物理上的不可克隆的特性,基于PUF的熵提取模塊可以產(chǎn)生一個真隨機數(shù),作為熵輸入(entropy input),以滿足對生成數(shù)據(jù)隨機性的要求。根據(jù)實際的需求標(biāo)準(zhǔn)不同,可以選擇不同的PUF實現(xiàn)方法。而重播種模塊會在輸出的偽隨機序列達不到位寬數(shù)據(jù)要求的時候,即變量V和常量C壽命用盡時,根據(jù)重播種請求,生成新的重播種變量V’和重播種常量C’以替代原先的變量V和常量C,保證系統(tǒng)的安全性。
[0009]各模塊具體設(shè)計如下:
[0010]其中,所述的基于HJF的熵提取模塊根據(jù)安全需求選用仲裁器HJF、環(huán)形振蕩器PUF、觸發(fā)器PUF、鎖存PUF或SRAM-PUF方法產(chǎn)生熵輸入信號,并將熵輸入信號發(fā)送至實例化模塊和重播種模塊。
[0011 ]進一步地,所述的基于PUF的熵提取模塊包括:PUF實現(xiàn)方法選擇模塊和PUF實現(xiàn)電路;PUF實現(xiàn)方法選擇模塊根據(jù)實際的安全需求選擇不同的PUF實現(xiàn)方法。若安全需求較高,則使用數(shù)字電路PUF。具體而言,數(shù)字電路PUF可分為利用數(shù)字信號傳播延時變化的數(shù)字電路PUF,如仲裁器PUF、環(huán)形振蕩器PUF;以及利用數(shù)字電路存儲特性的數(shù)字電路PUF,如觸發(fā)器PUF、鎖存PUF ο基于HJF的熵提取模塊根據(jù)PUF實現(xiàn)方法選擇模塊所選擇的PUF實現(xiàn)方法,使用相應(yīng)的PUF實現(xiàn)電路實現(xiàn)PUF,生成隨機數(shù)作為后續(xù)電路的熵輸入。
[0012]其中,所述的實例化模塊包括順序連接的熵輸入獲取模塊、材料數(shù)據(jù)獲取模塊、第一哈希函數(shù)模塊、第二哈希函數(shù)模塊;其中材料數(shù)據(jù)獲取模塊首先根據(jù)輸入的個性化數(shù)據(jù)、安全強度數(shù)據(jù)得到本模塊所需的最小長度、最大長度、最小熵輸入?yún)?shù),并向熵輸入獲取模塊發(fā)送所需的最小長度、最大長度、最小熵輸入?yún)?shù);熵輸入獲取模塊接收基于PUF的熵提取模塊輸出的熵輸入信號以及材料數(shù)據(jù)獲取模塊發(fā)送的最小長度、最大長度、最小熵輸入?yún)?shù),并根據(jù)最小長度、最大長度、最小熵輸入?yún)?shù)的要求將合適大小的熵輸入信號發(fā)送至材料數(shù)據(jù)獲取模塊;材料數(shù)據(jù)獲取模塊隨后根據(jù)獲取的合適大小的熵輸入信號、安全強度數(shù)據(jù)以及個性化數(shù)據(jù)生成材料數(shù)據(jù),并將材料數(shù)據(jù)發(fā)送至第一哈希函數(shù)模塊;第一哈希函數(shù)模塊接收材料數(shù)據(jù)并通過哈希算法生成固定長度數(shù)據(jù)作為變量V;第二哈希函數(shù)模塊接收第一哈希函數(shù)模塊生成的變量V并通過哈希算法生成常量C,當(dāng)變量V和常量C都成功生成后則輸出成功標(biāo)志,并將變量V和常量C發(fā)送至偽隨機序列發(fā)生模塊。
[0013]其中,所述的重播種模塊包括順序連接的熵輸入獲取模塊、材料數(shù)據(jù)獲取模塊、第一哈希函數(shù)模塊、第二哈希函數(shù)模塊;其中材料數(shù)據(jù)獲取模塊首先根據(jù)重播種請求接收安全強度數(shù)據(jù)、附加輸入數(shù)據(jù)和實例化模塊輸出的變量V,得到本模塊所需的最小長度、最大長度、最小熵輸入?yún)?shù),并向熵輸入獲取模塊發(fā)送所需的最小長度、最大長度、最小熵輸入?yún)?shù);熵輸入獲取模塊接收基于PUF的熵提取模塊輸出的熵輸入信號以及材料數(shù)據(jù)獲取模塊發(fā)送的最小長度、最大長度、最小熵輸入?yún)?shù),并根據(jù)最小長度、最大長度、最小熵輸入?yún)?shù)的要求將合適大小的熵輸入信號發(fā)送至材料數(shù)據(jù)獲取模塊;材料數(shù)據(jù)獲取模塊隨后根據(jù)重播種信號以及接收到的合適大小的熵輸入信號、安全強度數(shù)據(jù)、附加輸入、變量V生成重播種材料數(shù)據(jù),并將重播種材料數(shù)據(jù)發(fā)送至第一哈希函數(shù)模塊;第一哈希函數(shù)模塊接收到重播種材料數(shù)據(jù)后通過哈希算法生成重播種固定長度數(shù)據(jù)作為重播種變量V’,并將重播種變量V’與實例化模塊輸出的變量V比較,若不同則將重播種變量V’發(fā)送至哈希函數(shù)2模塊,否則重新計算;第二哈希函數(shù)模塊接收到第一哈希函數(shù)模塊發(fā)送的重播種變量V’后,通過哈希算法生成重播種常量C’,當(dāng)重播種變量V’和重播種常量C’都成功生成后輸出成功標(biāo)志,并將重播種變量V’和重播種常量C’發(fā)送至偽隨機序列發(fā)生模塊。
[0014]其中,所述的偽隨機序列發(fā)生模塊,包括順序連接的哈希算法模塊和重播計數(shù)模塊;若哈希算法模塊接收的是實例化模塊的變量V和常量C,則按照偽隨機序列長度的要求通過哈希算法生成偽隨機序列;若哈希算法模塊接收的是重播種模塊傳輸?shù)闹夭シN變量V’、重播種常量C’和附加輸入,則按照偽隨機序列長度和附加輸入的要求通過哈希算法生成偽隨機序列;哈希算法模塊在成功生成偽隨機序列后發(fā)送運行成功信號,同時向重播種計數(shù)模塊發(fā)送偽隨機序列生成信號,重播種計數(shù)模塊在接收到偽隨機序列生成信號后將重播種計數(shù)器加I,當(dāng)重播種計數(shù)器計數(shù)達到設(shè)定值時,重播種計數(shù)模塊向重播種模塊發(fā)送重播種請求信號。
[0015]其中,所述的哈希算法模塊包括附加輸入數(shù)據(jù)處理模塊、偽隨機序列迭代生成模塊和變量Vp處理模塊;哈希算法模塊生成偽隨機序列的步驟如下:
[0016]第I步,若附加輸入數(shù)據(jù)處理模塊接收到的是實例化模塊的變量V,則處理變量V與附加輸入,并將處理過的數(shù)據(jù)和變量V相加得到哈希變量Vp,當(dāng)附加輸入為空時,哈希變量Vp與變量V相同;若附加輸入數(shù)據(jù)處理模塊接收到的是重播種模塊傳輸?shù)闹夭シN變量V’則用重播種變量V’取代上述的變量V進行處理,將處理過的數(shù)據(jù)和變量V’相加得到哈希變量Vp;
[0017]第2步,將哈希變量Vp發(fā)送至偽隨機序列迭代生成模塊,偽隨機序列迭代生成模塊接收哈希變量Vp后,通過迭代算法每次生成256位的偽隨機序列,直至輸出的偽隨機序列滿足位寬數(shù)據(jù)的要求;其中,每次迭代后都將變量Vp的值加I;
[0018]第3步,當(dāng)生成相應(yīng)位寬的偽隨機序列后,輸出運行成功信號和偽隨機序列生成信號,并將偽隨機序列生成信號發(fā)送至重播種計數(shù)模塊;變量Vp處理模塊處理哈希變量Vp之后得到第二變量Vr,將第二變量Vr與常量C相加,并用相加的值作為輸入更新變量V。
[0019]區(qū)別于現(xiàn)有技術(shù),本發(fā)明具有如下有益效果:
[0020]本發(fā)明首次開創(chuàng)性地利用PUF方法產(chǎn)生的真隨機數(shù)作為種子。PUF方法是利用存儲器掉電后節(jié)點所產(chǎn)生的不可預(yù)測的震蕩而產(chǎn)生隨機數(shù),具有物理不可克隆特性。由于真隨機數(shù)具有無法預(yù)測的特性,而隨后對熵輸入進行處理的哈希算法具有不可逆性,因而本發(fā)明所生成的偽隨機序列難以預(yù)測。相較于目前通常采用的利用偽隨機數(shù)作種子而產(chǎn)生偽隨機序列的方法,本發(fā)明生成的偽隨機序列的隨機性更高。
[0021]同時,由于本發(fā)明所述的偽隨機序列發(fā)生器中設(shè)有重播種模塊,重播種模塊會在需要增加偽隨機序列的位數(shù)時,通過重播種模塊生成的重播種變量V’和重播種常量C’更新發(fā)送至偽隨機序列發(fā)生模塊的變量V和常量C從而更新偽隨機序列。由此,偽隨機序列發(fā)生模塊生成偽隨機序列的參數(shù)得以更新,進而可以降低偽隨機序列的可預(yù)測性,保證了系統(tǒng)的安全性。通過基于PUF的熵提取模塊提取熵輸入,實例化模塊接受熵輸入并按照關(guān)于長度和安全強度的要求生成變量V和常量C;偽隨機序列發(fā)生模塊獲取變量V和常量C以后通過哈希算法產(chǎn)生偽隨機序列。
[0022]進一步地,本發(fā)明同時也會在重播計數(shù)器達到設(shè)定的參數(shù)值時,即變量V和常量C的壽命用盡時,用重播種變量V’和重播種常量C’更新變量V和常量C。通過定期更新生成偽隨機序列的參數(shù),本發(fā)明可以進一步降低偽隨機序列的可預(yù)測性,進一步保證系統(tǒng)的安全性。
[0023]而且,根據(jù)對所產(chǎn)生的偽隨機序列的安全性的不同需求,本發(fā)明還可以在基于PUF的熵提取模塊中選擇不同的PUF實現(xiàn)方法。如安全需求較高時,則可以選擇數(shù)字電路PUF,具體可選擇仲裁器PUF、環(huán)形振蕩器PUF、觸發(fā)器PUF或鎖存PUF。通過選擇不同的PUF實現(xiàn)電路來實現(xiàn)PUF,生成隨機數(shù)作為后續(xù)電路的熵輸入。這樣就能保證本發(fā)明所述的偽隨機序列發(fā)生器可以滿足使用中對偽隨機序列的不同安全需求。
【附圖說明】
[0024]圖1為本發(fā)明提供的基于PUF的偽隨機序列發(fā)生器系意圖。
[0025]圖2為本發(fā)明提供的基于PUF的偽隨機序列發(fā)生器中的實例化模塊具體結(jié)構(gòu)示意圖。
[0026]圖3為本發(fā)明提供的基于PUF的偽隨機序列發(fā)生器中的偽隨機序列發(fā)生模塊具體結(jié)構(gòu)示意圖。
[0027]圖4為本發(fā)明提供的基于PUF的偽隨機序列發(fā)生器中的重播種模塊具體結(jié)構(gòu)示意圖。
[0028]圖5為本發(fā)明提供的基于PUF的偽隨機序列發(fā)生器中的偽隨機序列發(fā)生模塊中哈希算法模塊的具體結(jié)構(gòu)示意圖。
【具體實施方式】
[0029]下面依據(jù)附圖詳細描述本發(fā)明的實施方式
[0030]圖1為本發(fā)明提供的基于PUF的偽隨機序列發(fā)生器示意圖。
[0031]如圖1所示的基于PUF的偽隨機序列發(fā)生器,包括:基于PUF的熵提取模塊、實例化模塊、重播種模塊和偽隨機序列發(fā)生模塊。其中,基于PUF的熵提取模塊通過PUF方式(具體而言,采用SRAM-PUF方式)產(chǎn)生熵輸入信號,并將熵輸入信號發(fā)送至實例化模塊和重播種模塊。應(yīng)用中,基于PUF的熵提取模塊也可以根據(jù)不同的安全需求選擇諸如仲裁器PUF、環(huán)形振蕩器PUF、觸發(fā)器PUF、鎖存PUF或此處的SRAM-PUF方法來產(chǎn)生熵輸入信號。
[0032]圖1中的實例化模塊同時接收輸入的個性化數(shù)據(jù)、安全強度數(shù)據(jù)以及基于PUF的熵提取模塊產(chǎn)生的熵輸入信號,通過哈希算法生成變量V和常量C,并將生成的變量V和常量C發(fā)送至偽隨機序列發(fā)生模塊。同時,實例化模塊在生成變量V和常量C的同時也會輸出成功標(biāo)志至偽隨機序列發(fā)生模塊。
[0033]重播種模塊負責(zé)在變量V和常量C壽命用盡時,根據(jù)安全強度、位寬數(shù)據(jù)、當(dāng)前變量V以及熵輸入信號的值生成新的重播種變量V’和重播種常量C’。重播種模塊生成重播種變量V’和重播種常量C’的步驟與實例化模塊生成變量V和常量C的過程類似。生成重播種變量V’和重播種常量C’后,將生成的重播種變量V’和重播種常量C’發(fā)送至偽隨機序列發(fā)生模塊。
[0034]偽隨機序列發(fā)生模塊同時接收位寬數(shù)據(jù)、實例化模塊產(chǎn)生的變量V、常量C、重播種模塊生成的重播種變量V’和重播種常量C’,偽隨機序列發(fā)生模塊先根據(jù)位寬數(shù)據(jù)、實例化模塊產(chǎn)生的變量V和常量C通過哈希算法生成偽隨機序列,當(dāng)需要增加偽隨機序列的位數(shù)時,偽隨機序列發(fā)生模塊向重播種模塊發(fā)送重播種請求,再根據(jù)重播種模塊生成的重播種變量V’和重播種常量C’繼續(xù)通過哈希算法迭代生成偽隨機序列,直至生成的偽隨機序列的位數(shù)達到位寬數(shù)據(jù)的要求時輸出偽隨機序列,同時輸出運行成功信號。
[0035]圖2為本發(fā)明提供的基于PUF的偽隨機序列發(fā)生器中的實例化模塊具體結(jié)構(gòu)示意圖。實例化模塊包括順序連接的熵輸入獲取模塊、材料數(shù)據(jù)獲取模塊、第一哈希函數(shù)模塊、第二哈希函數(shù)模塊。其中材料數(shù)據(jù)獲取模塊首先根據(jù)輸入的個性化數(shù)據(jù)、安全強度數(shù)據(jù)得到本模塊所需的最小長度、最大長度、最小熵輸入?yún)?shù),并向熵輸入獲取模塊發(fā)送所需的最小長度、最大長度、最小熵輸入?yún)?shù)。熵輸入獲取模塊接收基于PUF的熵提取模塊輸出的熵輸入信號以及材料數(shù)據(jù)獲取模塊發(fā)送的最小長度、最大長度、最小熵輸入?yún)?shù),并根據(jù)最小長度、最大長度、最小熵輸入?yún)?shù)的要求將合適大小的熵輸入信號發(fā)送至材料數(shù)據(jù)獲取模塊。材料數(shù)據(jù)獲取模塊隨后根據(jù)獲取的合適大小的熵輸入信號、安全強度數(shù)據(jù)以及個性化數(shù)據(jù)生成材料數(shù)據(jù),并將材料數(shù)據(jù)發(fā)送至第一哈希函數(shù)模塊;第一哈希函數(shù)模塊接收材料數(shù)據(jù)并通過哈希算法生成固定長度數(shù)據(jù)作為變量V;第二哈希函數(shù)模塊接收第一哈希函數(shù)模塊生成的變量V并通過哈希算法生成常量C,當(dāng)變量V和常量C都成功生成后則輸出成功標(biāo)志,并將變量V和常量C發(fā)送至偽隨機序列發(fā)生模塊。
[0036]圖3為本發(fā)明提供的基于PUF的偽隨機序列發(fā)生器中的偽隨機序列發(fā)生模塊具體結(jié)構(gòu)示意圖。偽隨機序列發(fā)生模塊,包括順序連接的哈希算法模塊和重播計數(shù)模塊。若哈希算法模塊接收的是實例化模塊的變量V和常量C,則按照偽隨機序列長度的要求通過哈希算法生成偽隨機序列;若哈希算法模塊接收的是重播種模塊傳輸?shù)闹夭シN變量V’、重播種常量C’和附加輸入,則按照偽隨機序列長度和附加輸入的要求通過哈希算法生成偽隨機序列;哈希算法模塊在成功生成偽隨機序列后發(fā)送運行成功信號,同時向重播種計數(shù)模塊發(fā)送偽隨機序列生成信號,重播種計數(shù)模塊在接收到偽隨機序列生成信號后將重播種計數(shù)器加I,當(dāng)重播種計數(shù)器計數(shù)達到設(shè)定值時,即表示變量V和常量C的壽命用盡,需要用重播種變量V’、重播種常量C’對原先的變量V和常量C進行更新。重播種計數(shù)模塊向重播種模塊發(fā)送重播種請求信號。重播種計數(shù)器計數(shù)的設(shè)定值可以根據(jù)實際應(yīng)用的需求設(shè)置。選取較小的設(shè)定值可以使得變量V和常量C經(jīng)常得到更新,使產(chǎn)生的偽隨機序列的隨機性更好。
[0037]圖4為本發(fā)明提供的基于PUF的偽隨機序列發(fā)生器中的重播種模塊具體結(jié)構(gòu)示意圖。重播種模塊包括順序連接的熵輸入獲取模塊、材料數(shù)據(jù)獲取模塊、第一哈希函數(shù)模塊、第二哈希函數(shù)模塊。其中材料數(shù)據(jù)獲取模塊首先根據(jù)重播種請求接收安全強度數(shù)據(jù)、附加輸入數(shù)據(jù)和實例化模塊輸出的變量V,得到本模塊所需的最小長度、最大長度、最小熵輸入?yún)?shù),并向熵輸入獲取模塊發(fā)送所需的最小長度、最大長度、最小熵輸入?yún)?shù);熵輸入獲取模塊接收基于PUF的熵提取模塊輸出的熵輸入信號以及材料數(shù)據(jù)獲取模塊發(fā)送的最小長度、最大長度、最小熵輸入?yún)?shù),并根據(jù)最小長度、最大長度、最小熵輸入?yún)?shù)的要求將合適大小的熵輸入信號發(fā)送至材料數(shù)據(jù)獲取模塊;材料數(shù)據(jù)獲取模塊隨后根據(jù)重播種信號以及接收到的合適大小的熵輸入信號、安全強度數(shù)據(jù)、附加輸入、變量V生成重播種材料數(shù)據(jù),并將重播種材料數(shù)據(jù)發(fā)送至第一哈希函數(shù)模塊;第一哈希函數(shù)模塊接收到重播種材料數(shù)據(jù)后通過哈希算法生成重播種固定長度數(shù)據(jù)作為重播種變量V’,并將重播種變量V’與實例化模塊輸出的變量V比較,若不同則將重播種變量V’發(fā)送至哈希函數(shù)2模塊,否則重新計算;第二哈希函數(shù)模塊接收到第一哈希函數(shù)模塊發(fā)送的重播種變量V’后,通過哈希算法生成重播種常量C’,當(dāng)重播種變量V’和重播種常量C’都成功生成后輸出成功標(biāo)志,并將重播種變量V’和重播種常量C’發(fā)送至偽隨機序列發(fā)生模塊。
[0038]圖5為本發(fā)明提供的偽隨機序列發(fā)生模塊中使用的哈希算法模塊的具體結(jié)構(gòu)示意圖。實例化模塊和重播種模塊中的第二哈希函數(shù)模塊、第二哈希函數(shù)模塊也都會使用到哈希函數(shù)。只是實例化模塊和重播種模塊中所使用的哈希函數(shù)主要是采用已經(jīng)公開的哈希算法對數(shù)據(jù)進行單向壓縮。而圖5所示的哈希計算需要先對數(shù)據(jù)進行預(yù)處理,預(yù)處理之后再對數(shù)據(jù)進行單向壓縮。本模塊主要包括附加輸入數(shù)據(jù)處理模塊、偽隨機序列迭代生成模塊和變量Vp處理模塊。哈希算法模塊生成偽隨機序列的步驟如下:
[0039]第I步,若附加輸入數(shù)據(jù)處理模塊接收到的是實例化模塊的變量V,則將變量V置于低位,將附加輸入置于高位進行拼接處理,并將拼接處理后的數(shù)據(jù)通過哈希算法進行處理。將經(jīng)過哈希算法處理過的數(shù)據(jù)和變量V相加得到哈希變量Vp,當(dāng)附加輸入為空時,哈希變量Vp與變量V相同;若附加輸入數(shù)據(jù)處理模塊接收到的是重播種模塊傳輸?shù)闹夭シN變量V’則用重播種變量V’取代上述的變量V進行處理,將處理過的數(shù)據(jù)和變量V’相加得到哈希變量Vp;
[0040]第2步,將哈希變量Vp發(fā)送至偽隨機序列迭代生成模塊,偽隨機序列迭代生成模塊接收哈希變量Vp后,通過迭代算法每次生成256位的偽隨機序列,直至輸出的偽隨機序列滿足位寬數(shù)據(jù)的要求;其中,每次迭代后都將變量Vp的值加I,以此保證每次迭代時變量Vp的值都不同。
[0041]第3步,當(dāng)生成相應(yīng)位寬的偽隨機序列后,輸出運行成功信號和偽隨機序列生成信號,并將偽隨機序列生成信號發(fā)送至重播種計數(shù)模塊;變量Vp處理模塊利用哈希算法對Vp進行處理,再將處理后的數(shù)據(jù)與變量Vp相加,得到第二變量Vr,將第二變量Vr與常量C相加,并用相加的值作為輸入更新變量V
[0042]實施例所提供的基于PUF的偽隨機序列發(fā)生器,通過PUF物理不可克隆的原理,大大提高了偽隨機序列發(fā)生器種子的安全性;通過PUF的可產(chǎn)生真隨機數(shù)的原理可以得到真隨機的種子,這樣使得偽隨機序列發(fā)生器的隨機性大大提高,而且利用哈希算法的不可逆性,使得本系統(tǒng)有著很高的安全性。
[0043]本領(lǐng)域普通技術(shù)人員可以理解:以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,盡管參照前述實施例對本發(fā)明進行了詳細的說明,對于本領(lǐng)域的技術(shù)人員來說,其依然可以對前述各實施例記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【主權(quán)項】
1.一種基于PUF的偽隨機序列發(fā)生器,其特征在于,包括: 基于PUF的熵提取模塊、實例化模塊、重播種模塊和偽隨機序列發(fā)生模塊;其中,基于PUF的熵提取模塊通過PUF方式產(chǎn)生熵輸入信號;實例化模塊同時接收輸入的個性化數(shù)據(jù)、安全強度數(shù)據(jù)以及基于PUF的熵提取模塊產(chǎn)生的熵輸入信號,通過哈希算法生成變量V和常量C,并將生成的變量V和常量C發(fā)送至偽隨機序列發(fā)生模塊;偽隨機序列發(fā)生模塊同時接收位寬數(shù)據(jù)、實例化模塊產(chǎn)生的變量V、常量C,接收后先根據(jù)位寬數(shù)據(jù)、實例化模塊產(chǎn)生的變量V和常量C通過哈希算法生成偽隨機序列,當(dāng)變量V和常量C的壽命用盡時,偽隨機序列發(fā)生模塊向重播種模塊發(fā)送重播種請求,重播種模塊同時接收基于PUF的熵提取模塊產(chǎn)生的熵輸入信號以及實例化模塊生成的變量V,通過哈希算法生成重播種變量V’和重播種常量C’,并將生成的重播種變量V’和重播種常量C’發(fā)送至偽隨機序列發(fā)生模塊,再用重播種變量V’和重播種常量C’代替變量V和常量C,由偽隨機序列發(fā)生模塊生成偽隨機序列;當(dāng)生成的偽隨機序列的位數(shù)達到位寬數(shù)據(jù)的要求時輸出偽隨機序列和輸出運行成功信號。2.根據(jù)權(quán)利要求1所述的基于PUF的偽隨機序列發(fā)生器,其特征在于,所述的基于PUF的熵提取模塊選用仲裁器PUF、環(huán)形振蕩器PUF、觸發(fā)器PUF、鎖存PUF或SRAM-PUF方法產(chǎn)生熵輸入信號。3.根據(jù)權(quán)利要求1所述的基于PUF的偽隨機序列發(fā)生器,其特征在于,所述的實例化模塊包括順序連接的熵輸入獲取模塊、材料數(shù)據(jù)獲取模塊、第一哈希函數(shù)模塊、第二哈希函數(shù)模塊;其中材料數(shù)據(jù)獲取模塊首先根據(jù)輸入的個性化數(shù)據(jù)、安全強度數(shù)據(jù)得到本模塊所需的最小長度、最大長度、最小熵輸入?yún)?shù),并發(fā)送至熵輸入獲取模塊;熵輸入獲取模塊根據(jù)接收到的自基于PUF的熵提取模塊的熵輸入信號以及來自材料數(shù)據(jù)獲取模塊的最小長度、最大長度、最小熵輸入?yún)?shù),生成合適大小的熵輸入信號并發(fā)送至材料數(shù)據(jù)獲取模塊;材料數(shù)據(jù)獲取模塊接收熵輸入獲取模塊發(fā)送的合適大小的熵輸入信號后生成材料數(shù)據(jù),并將材料數(shù)據(jù)發(fā)送至第一哈希函數(shù)模塊;第一哈希函數(shù)模塊接收材料數(shù)據(jù)并通過哈希算法生成固定長度數(shù)據(jù)作為變量V;第二哈希函數(shù)模塊接收第一哈希函數(shù)模塊生成的變量V并通過哈希算法生成常量C,當(dāng)變量V和常量C都成功生成后則輸出成功標(biāo)志,并將變量V和常量C發(fā)送至偽隨機序列發(fā)生模塊。4.根據(jù)權(quán)利要求1所述的基于PUF的偽隨機序列發(fā)生器,其特征在于,所述的重播種模塊包括順序連接的熵輸入獲取模塊、材料數(shù)據(jù)獲取模塊、第一哈希函數(shù)模塊、第二哈希函數(shù)模塊;其中材料數(shù)據(jù)獲取模塊首先根據(jù)重播種請求接收安全強度數(shù)據(jù)、附加輸入數(shù)據(jù)和實例化模塊輸出的變量V,得到本模塊所需的最小長度、最大長度、最小熵輸入?yún)?shù),并發(fā)送至熵輸入獲取模塊;熵輸入獲取模塊接收基于PUF的熵提取模塊輸出的熵輸入信號并根據(jù)材料數(shù)據(jù)獲取模塊發(fā)送的最小長度、最大長度、最小熵輸入?yún)?shù)的要求將合適大小的熵輸入信號發(fā)送至材料數(shù)據(jù)獲取模塊;材料數(shù)據(jù)獲取模塊隨后根據(jù)重播種信號、來自熵輸入獲取模塊的合適大小的熵輸入信號以及安全強度數(shù)據(jù)、附加輸入、變量V生成重播種材料數(shù)據(jù),并將重播種材料數(shù)據(jù)發(fā)送至第一哈希函數(shù)模塊;第一哈希函數(shù)模塊接收到重播種材料數(shù)據(jù)后通過哈希算法生成重播種固定長度數(shù)據(jù)作為重播種變量V’,并將重播種變量V’與實例化模塊輸出的變量V比較,若重播種變量V’與變量V不同則將重播種變量V’發(fā)送至哈希函數(shù)2模塊,若重播種變量V’與變量V相同則重新計算重播種變量V’;第二哈希函數(shù)模塊接收到第一哈希函數(shù)模塊發(fā)送的重播種變量V’后,通過哈希算法生成重播種常量C’,當(dāng)重播種變量V’和重播種常量C’都成功生成后輸出成功標(biāo)志,并將重播種變量V’和重播種常量C’發(fā)送至偽隨機序列發(fā)生模塊。5.根據(jù)權(quán)利要求1所述的基于PUF的偽隨機序列發(fā)生器,其特征在于,所述的偽隨機序列發(fā)生模塊,包括順序連接的哈希算法模塊和重播計數(shù)模塊;若哈希算法模塊接收的是實例化模塊的變量V和常量C,則按照偽隨機序列長度和附加輸入的要求通過哈希算法生成偽隨機序列;若哈希算法模塊接收的是重播種模塊輸出的重播種變量V’、重播種常量C’,則用重播種變量V’取代變量V,用重播種常量C’取代常量C進行計算,生成偽隨機序列;哈希算法模塊在成功生成偽隨機序列后發(fā)送運行成功信號,同時向重播種計數(shù)模塊發(fā)送偽隨機序列生成信號,重播種計數(shù)模塊在接收到偽隨機序列生成信號后將重播種計數(shù)器加1,當(dāng)重播種計數(shù)器計數(shù)達到設(shè)定值時,重播種計數(shù)模塊向重播種模塊發(fā)送重播種請求信號。6.根據(jù)權(quán)利要求5所述的基于PUF的偽隨機序列發(fā)生器,其特征在于,所述的哈希算法模塊包括附加輸入數(shù)據(jù)處理模塊、偽隨機序列迭代生成模塊和變量Vp處理模塊;哈希算法模塊生成偽隨機序列的步驟如下: 第I步,若附加輸入數(shù)據(jù)處理模塊接收到的是實例化模塊的變量V,則將變量V與附加輸入進行拼接,并將拼接后的數(shù)據(jù)通過哈希算法進行處理,將經(jīng)過哈希算法處理過的數(shù)據(jù)與變量V相加得到哈希變量Vp,當(dāng)附加輸入為空時,哈希變量Vp與變量V相同;若附加輸入數(shù)據(jù)處理模塊接收到的是重播種模塊傳輸?shù)闹夭シN變量V’則用重播種變量V’取代上述的變量V進行處理得到哈希變量Vp ; 第2步,將哈希變量Vp發(fā)送至偽隨機序列迭代生成模塊,偽隨機序列迭代生成模塊接收哈希變量Vp后,通過迭代算法每次生成256位的偽隨機序列,直至輸出的偽隨機序列滿足位寬數(shù)據(jù)的要求;其中,每次迭代后都將變量Vp的值加I; 第3步,當(dāng)生成相應(yīng)位寬的偽隨機序列后,輸出運行成功信號和偽隨機序列生成信號,并將偽隨機序列生成信號發(fā)送至重播種計數(shù)模塊;變量Vp處理模塊處理哈希變量Vp之后生成第二變量Vr,將第二變量Vr與常量C相加,并用相加的值取代變量V。
【文檔編號】G06F7/58GK106020771SQ201610373538
【公開日】2016年10月12日
【申請日】2016年5月31日
【發(fā)明人】李冰, 楊超凡, 周岑軍, 王凱, 陳帥, 涂云晶, 金濤, 顧巍, 劉勇, 趙霞, 董乾, 王剛
【申請人】東南大學(xué)