本發(fā)明涉及集成電路及芯片安全技術領域,具體涉及一種抵抗侵入式攻擊的真隨機數(shù)發(fā)生器。
背景技術:
隨著互聯(lián)網(wǎng)的快速發(fā)展以及信息技術應用,網(wǎng)上交易如電子商務、網(wǎng)上銀行以及手機銀行也變得越來越普遍,其安全問題也越來越受到人們的關注。目前網(wǎng)上交易的安全性主要是使用相關密碼算法保證數(shù)據(jù)的完整性和真實性,其中分組密碼算法和公鑰密碼算法是最常使用的兩種密碼算法。這些算法的一個特點就是都需要使用密鑰才能進行運算,所以這些算法密鑰的安全性就顯得非常重要,其中很重要的一個特性就是不能輕易被攻擊者猜測出密鑰值,故一般都是采用真隨機數(shù)作為密鑰。因為真隨機數(shù)發(fā)生器的不可預測性使得攻擊者無法通過一般規(guī)律猜測出密鑰值從而保證了密鑰的安全。
隨機數(shù)一般又分為真隨機數(shù)和偽隨機數(shù),故其生產(chǎn)方式也分為兩種,一種為真隨機數(shù)生成方式,一種為偽隨機數(shù)生成方式。其中真隨機數(shù)一般使用隨機的物理過程(比如環(huán)境噪聲,電路的熱噪聲,放射性衰變等)作為隨機數(shù)源,并利用模擬電路進行實現(xiàn),再加上數(shù)字后處理過程從而得到真隨機數(shù)。這樣產(chǎn)生的真隨機數(shù)是沒有任何規(guī)律性可言,具有不可預測性,攻擊者不可能通過大量數(shù)據(jù)分析進而猜測出下一個產(chǎn)生的數(shù)據(jù)是多少;偽隨機數(shù)顧名思義不是真正的隨機數(shù),一般是使用某種固定生成算法實現(xiàn),只是使用者可以設置初始種子,這樣產(chǎn)生的隨機數(shù)缺點是顯而易見,攻擊者可以通過大量數(shù)據(jù)分析進而猜測出偽隨機數(shù)生成算法。故實際應用中都是使用真隨機數(shù)發(fā)生器。
目前,真隨機數(shù)發(fā)生器在電路設計中有離散時間混沌實現(xiàn)法、振蕩采樣法、直接放大熱噪聲法等三種常見的實現(xiàn)方法。其中振蕩采樣法的隨機源主要來源于振蕩器的相位抖動和噪聲,電路中的亞穩(wěn)態(tài)產(chǎn)生相位抖動,電路中的熱噪聲產(chǎn)生相位噪聲。由于振蕩采樣法的實現(xiàn)電路比較簡單,產(chǎn)生的真隨機數(shù)質量不錯,所以使用也最廣泛,一般使用模擬電路實現(xiàn)隨機數(shù)源部分,數(shù)字電路實現(xiàn)后處理部分。近年來隨著攻擊技術的不斷發(fā)展,攻擊者比較容易找到芯片中模擬電路部分進而用侵入式攻擊的方法攻擊隨機數(shù)源部分,將隨機數(shù)源部分切斷或者輸入固定的序列從而使得真隨機數(shù)發(fā)生器是按照攻擊者的方法產(chǎn)生隨機數(shù)。為了避免這種攻擊,目前主要是從兩個方面進行改進,一是檢測隨機數(shù)源部分,檢測隨機數(shù)源部分是否攻擊,如果檢測受到攻擊則停止產(chǎn)生隨機數(shù)并報警,二是在使用前檢測隨機數(shù)的質量,如果通過測試則表示產(chǎn)生的真隨機數(shù)是可以用的,否則不可使用。
技術實現(xiàn)要素:
本發(fā)明的目的在于提供一種抵抗侵入式攻擊的真隨機數(shù)發(fā)生器,電路結構實現(xiàn)簡單,面積小,成本低,適用性強。
為了達到上述目的,本發(fā)明通過以下技術方案實現(xiàn):一種抵抗侵入式攻擊的真隨機數(shù)發(fā)生器,包括:隨機數(shù)源產(chǎn)生模塊、檢測模塊和后處理模塊;
隨機數(shù)源產(chǎn)生模塊的輸出端分別耦合至所述檢測模塊和后處理模塊的輸入端;
隨機數(shù)源產(chǎn)生模塊用于產(chǎn)生具有隨機特性的數(shù)字信號;
檢測模塊用于檢測具有隨機特性的數(shù)字信號是否被侵入式攻擊,若被侵入式攻擊,還用于報警并停止隨機數(shù)源產(chǎn)生模塊的輸出;
后處理模塊用于對隨機數(shù)源信號進行算法處理以產(chǎn)生真隨機數(shù)數(shù)據(jù)。
一種實施例中,隨機數(shù)源產(chǎn)生模塊包括高頻信號源、低頻信號源、采樣電路和選擇器;
采樣電路的輸入信號為高頻信號源輸出的高頻信號及低頻信號源輸出的低頻信號;
采樣電路的輸出信號為具有隨機特性的數(shù)字信號,是由低頻信號對高頻信號進行采樣后獲得的;
采樣電路的輸出端耦合至選擇器的輸入端,選擇器用于選擇輸出采樣電路的輸出信號或檢測模塊的輸出信號。
一種實施例中,檢測模塊包括第一自檢電路,第一自檢電路用于產(chǎn)生控制選擇器輸出的控制信號,并用于檢測選擇器輸出端的隨機數(shù)據(jù)是否存在被侵入式攻擊,若存在,第一自檢電路還用于報警并停止選擇器的輸出。
一種實施例中,第一自檢電路包括自檢數(shù)據(jù)產(chǎn)生電路、控制信號產(chǎn)生電路、檢測電路和第一報警電路;
自檢數(shù)據(jù)產(chǎn)生電路用于產(chǎn)生自檢數(shù)據(jù)并將自檢數(shù)據(jù)輸入選擇器的輸入端;
控制信號產(chǎn)生電路用于產(chǎn)生一控制信號并將控制信號發(fā)送至選擇器的輸入端,控制選擇器選擇輸出自檢數(shù)據(jù);
檢測電路用于比較選擇器輸出的自檢數(shù)據(jù)與自檢數(shù)據(jù)產(chǎn)生電路產(chǎn)生的自檢數(shù)據(jù)是否相同,若不相同,則第一報警電路報警并停止選擇器的輸出。
一種實施例中,檢測模塊還包括第二自檢電路,第二自檢電路用于檢測選擇器輸出端的隨機數(shù)據(jù)是否存在被侵入式攻擊,若存在,第二自檢電路還用于報警并停止選擇器的輸出。
一種實施例中,第二自檢電路包括計數(shù)器、比較器和第二報警電路;
計數(shù)器的輸入端耦合至選擇器的輸出端,計數(shù)器的輸出端耦合至比較器的輸入端,比較器的輸出端耦合至第二報警電路;
計數(shù)器用于計數(shù)選擇器輸出的隨機數(shù)據(jù)出現(xiàn)連續(xù)0和1的個數(shù);
比較器用于比較出現(xiàn)連續(xù)0和1的個數(shù)是否大于設定值,若大于,第二報警電路報警并停止選擇器的輸出。
一種實施例中,后處理模塊包括異或門電路和線性反饋移位寄存器;
異或門電路的輸入端耦合至選擇器的輸出端,異或門電路的輸出端耦合至線性反饋移位寄存器的輸入端;
異或門電路的輸入信號為選擇器輸出的具有隨機特性的數(shù)字信號;
線性反饋移位寄存器的輸入信號為具有隨機特性的數(shù)字信號與線性反饋移位寄存器的反饋信號經(jīng)異或門電路異或后的信號。
一種實施例中,高頻信號源為高頻振蕩器,所述高頻振蕩器包括第一至第四或門、第一至第十反相器和一個與非門;
第一至第十反相器依次串連,且第十反相器的輸出端耦合至與非門的輸入端,與非門的輸出端和第十反相器的輸出端分別耦合至第四或門的輸入端,第四或門的輸出端和第四反相器的輸出端分別耦合至第三或門的輸入端,第三或門的輸出端和第三反相器的輸出端分別耦合至第二或門的輸入端,第二或門的輸出端和第一反相器的輸出端分別耦合至第一或門的輸入端,第一或門的輸出端耦合至第一反相器的輸入端。
一種實施例中,線性反饋移位寄存器包括第一至第七異或門及第零至第四十D觸發(fā)器;
第零D觸發(fā)器的D端口接到第一異或門的輸出端,Q端口接到第一D觸發(fā)器的D端口;第一D觸發(fā)器的Q端口接到第二D觸發(fā)器的D端口,第二D觸發(fā)器的Q端口接到第三D觸發(fā)器的D端口;如此依次將第零至第四十D觸發(fā)器串聯(lián)起來;第零至第四十D觸發(fā)器的CK端口都由相同的時鐘信號驅動;第一D觸發(fā)器、第二D觸發(fā)器、第三D觸發(fā)器及第六D觸發(fā)器的Q端口分別接到第二異或門的四個輸入端口,第二異或門的輸出端口接至第一異或門的輸入端;第十一D觸發(fā)器、第十四D觸發(fā)器的Q端口以及第四異或門的輸出端分別接到第三異或門的三個輸入端口,第三異或門的輸出端口接至第一異或門的輸入端;第十六D觸發(fā)器、第十七D觸發(fā)器的Q端口以及第五異或門和第六異或門的輸出端分別接到第四異或門的四個輸入端口;第十九D觸發(fā)器、第二十一D觸發(fā)器及第二十二D觸發(fā)器的Q端口分別接到第五異或門的三個輸入端口;第二十五D觸發(fā)器、第二十六D觸發(fā)器及第三十D觸發(fā)器的Q端口以及第七異或門的輸出端分別接到第六異或門的四個輸入端口;第三十二D觸發(fā)器、第三十五D觸發(fā)器、第三十八D觸發(fā)器及第四十D觸發(fā)器的Q端口分別接到第七異或門的四個輸入端口;其中,第二異或門、第三異或門、第四異或門、第五異或門、第六異或門及第七異或門的輸出端進行異或后作為線性反饋移位寄存器的反饋信號,輸出至第一異或門電路。
依據(jù)上述實施例的真隨機數(shù)發(fā)生器,由于檢測模塊比較容易檢測出隨機數(shù)源部分是否被切斷或受到控制,若隨機數(shù)源部分被切斷或受到控制,檢測模塊報警并停止輸出隨機數(shù)源,提高了真隨機數(shù)的質量,并且,檢測模塊采用數(shù)字電路實現(xiàn),結構簡單、面積比較少,便于在各種工藝下進行移植,比較容易加入到真隨機數(shù)發(fā)生器電路中。
附圖說明
圖1為真隨機數(shù)發(fā)生器原理圖;
圖2為高頻信號源電路結構示意圖;
圖3為第一自檢電路結構示意圖;
圖4為第二自檢電路結構示意圖;
圖5為線性反饋移位寄存器電路結構示意圖。
具體實施方式
下面通過具體實施方式結合附圖對本發(fā)明作進一步詳細說明。
如圖1所示,一種抵抗侵入式攻擊的真隨機數(shù)發(fā)生器,包括隨機數(shù)源產(chǎn)生模塊100、檢測模塊200和后處理模塊300;隨機數(shù)源產(chǎn)生模塊100的輸出端分別耦合至檢測模塊200和后處理模塊300的輸入端;隨機數(shù)源產(chǎn)生模塊100用于產(chǎn)生具有隨機特性的數(shù)字信號;檢測模塊200用于檢測具有隨機特性的數(shù)字信號是否被侵入式攻擊,若被侵入式攻擊,還用于報警并停止隨機數(shù)源產(chǎn)生模塊100的輸出;后處理模塊300用于對隨機數(shù)源信號進行算法處理以產(chǎn)生真隨機數(shù)數(shù)據(jù)。
其中,隨機數(shù)源產(chǎn)生模塊100包括高頻信號源101、低頻信號源102、采樣電路103和選擇器104;采樣電路103的輸入信號為高頻信號源101輸出的高頻信號及低頻信號源102輸出的低頻信號;采樣電路103的輸出信號為具有隨機特性的數(shù)字信號,是由低頻信號對高頻信號進行采樣后獲得的,如,采用低頻時鐘信號作為采樣電路103的輸入時鐘,高頻時鐘信號作為采樣電路103的輸入數(shù)據(jù);采樣電路103的輸出端耦合至104選擇器的輸入端,選擇器104用于選擇輸出采樣電路103的輸出信號或檢測模塊200的輸出信號。
具體的,如圖2所示,高頻信號源101為高頻振蕩器,該詞頻振蕩器包括第一至第四或門(10110-10113)、第一至第十反相器(10120-10129)和一個與非門10130,其中,第一至第十反相器(10120-10129)依次串連,且第十反相器10129的輸出端耦合至與非門10130的輸入端,與非門10130的輸出端和第十反相器10129的輸出端分別耦合至第四或門10113的輸入端,第四或門10113的輸出端和第四反相器10123的輸出端分別耦合至第三或門10112的輸入端,第三或門10112的輸出端和第三反相器10122的輸出端分別耦合至第二或門10111的輸入端,第二或門10111的輸出端和第一反相器10120的輸出端分別耦合至第一或門10110的輸入端,第一或門10110的輸出端耦合至第一反相器10120的輸入端;與非門10130的輸出信號即為高頻信號,由于MOS管的熱噪聲會導致產(chǎn)生高頻信號的相位噪聲。
由于本例的高頻信號源101具有反饋作用,使得其產(chǎn)生的高頻信號的頻率幅度變化較大,相應的,產(chǎn)生的隨機數(shù)據(jù)的隨機性較高。
進一步,檢測模塊200包括第一自檢電路201和第二自檢電路202,其中,第一自檢電路201用于產(chǎn)生控制選擇器104輸出的控制信號,并用于檢測選擇器104輸出端的隨機數(shù)據(jù)是否存在被侵入式攻擊,若存在,第一自檢電路201還用于報警并停止選擇器104的輸出,如圖3所示,第一自檢電路201包括自檢數(shù)據(jù)產(chǎn)生電路2011、控制信號產(chǎn)生電路2012、檢測電路2013和第一報警電路2014,自檢數(shù)據(jù)產(chǎn)生電路2011用于產(chǎn)生自檢數(shù)據(jù)并將自檢數(shù)據(jù)輸入選擇器104的輸入端;控制信號產(chǎn)生電路2012用于產(chǎn)生一控制信號并將控制信號發(fā)送至選擇器104的輸入端,控制選擇器104選擇輸出自檢數(shù)據(jù);檢測電路2013用于比較選擇器104輸出的自檢數(shù)據(jù)與自檢數(shù)據(jù)產(chǎn)生電路2011產(chǎn)生的自檢數(shù)據(jù)是否相同,若不相同,則第一報警電路2014報警并停止選擇器104的輸出。
本例的第一自檢電路201的工作原理是:自檢數(shù)據(jù)產(chǎn)生電路2011是一個偽隨機數(shù)據(jù)發(fā)生器,當控制寄存器的使能位置1時,自檢數(shù)據(jù)產(chǎn)生電路2011產(chǎn)生4位隨機數(shù)并輸出給選擇器104,同時,控制信號產(chǎn)生電路2012輸出高電平控制選擇器104輸出該4位隨機數(shù),檢測電路2013是一個比較器,檢測電路2013比較選擇器104的輸出是否等于自檢數(shù)據(jù)產(chǎn)生電路2011產(chǎn)生的4位隨機數(shù),若不相等,則檢測電路2013輸出一控制信號,該控制信號控制第一報警電路2014發(fā)出報警并停止選擇器104的輸出,。
本例的第二自檢電路202用于檢測選擇器104輸出端的隨機數(shù)據(jù)是否存在被侵入式攻擊,若存在,第二自檢電路202還用于報警并停止選擇器104的輸出,如圖4所示,第二自檢電路202包括計數(shù)器2021、比較器2022和第二報警電路2023;其中,計數(shù)器2021的輸入端耦合至選擇器104的輸出端,計數(shù)器2021的輸出端耦合至比較器2022的輸入端,比較器2022的輸出端耦合至第二報警電路2023;計數(shù)器2021用于計數(shù)選擇器104輸出的隨機數(shù)據(jù)出現(xiàn)連續(xù)0和1的個數(shù);比較器2022用于比較出現(xiàn)連續(xù)0和1的個數(shù)是否大于設定值,若大于,比較器2022輸出一控制信號,該控制信號控制第二報警電路2023報警并停止選擇器104的輸出。
本例將第一自檢電路201和第二自檢電路202綜合使用,以提高隨機數(shù)源部分的檢測質量,在其他實施例中,可以單獨使用其中之一進行檢測。
本例的后處理模塊300包括異或門電路301和線性反饋移位寄存器302,異或門電路301的輸入端耦合至選擇器104的輸出端,異或門電路301的輸出端耦合至線性反饋移位寄存器302的輸入端;異或門電路301的輸入信號為選擇器104輸出的具有隨機特性的數(shù)字信號;線性反饋移位寄存器302的輸入信號為具有隨機特性的數(shù)字信號與線性反饋移位寄存器302的反饋信號經(jīng)異或門電路301異或后的信號。
如圖5所示,線性反饋移位寄存器302采用41位線性反饋移位寄存器,由于該41位線性反饋移位寄存器的位數(shù)多,產(chǎn)生的隨機數(shù)據(jù)的隨機性更好,其包括第一至第七異或門(3021-3027)和第零至第四十D觸發(fā)器(00-40),反饋函數(shù)為F=D[40]^D[38]^D[35]^D[32]^D[30]^D[26]^D[25]^D[22]^D[21]^D[19]^D[17]^D[16]^D[14]^D[11]^D[06]^D[03]^D[02]^D[01]。
其中,第零D觸發(fā)器00的D端口接到第一異或門3021的輸出端,Q端口接到第一D觸發(fā)器01的D端口;第一D觸發(fā)器01的Q端口接到第二D觸發(fā)器02的D端口,第二D觸發(fā)器02的Q端口接到第三D觸發(fā)器03的D端口;如此依次將第零D觸發(fā)器00至第四十D觸發(fā)器40串聯(lián)起來;第零D觸發(fā)器00至第四十D觸發(fā)器40的CK端口都由相同的時鐘信號驅動;第一D觸發(fā)器01、第二D觸發(fā)器02、第三D觸發(fā)器03及第六D觸發(fā)器06的Q端口分別接到第二異或門3022的四個輸入端口,第二異或門3022的輸出端口接至第一異或門3021的輸入端;第十一D觸發(fā)器11、第十四D觸發(fā)器14的Q端口以及第四異或門3024的輸出端分別接到第三異或門3023的三個輸入端口,第三異或門3023的輸出端口接至第一異或門3021的輸入端;第十六D觸發(fā)器16、第十七D觸發(fā)器17的Q端口以及第五異或門3025和第六異或門3026的輸出端分別接到第四異或門3024的四個輸入端口;第十九D觸發(fā)器19、第二十一D觸發(fā)器21及第二十二D觸發(fā)器22的Q端口分別接到第五異或門3025的三個輸入端口;第二十五D觸發(fā)器25、第二十六D觸發(fā)器26及第三十D觸發(fā)器30的Q端口以及第七異或門3027的輸出端分別接到第六異或門3026的四個輸入端口;第三十二D觸發(fā)器32、第三十五D觸發(fā)器35、第三十八D觸發(fā)器38及第四十D觸發(fā)器40的Q端口分別接到第七異或門3027的四個輸入端口;其中,第二異或門3022、第三異或門3023、第四異或門3024、第五異或門3025、第六異或門3026及第七異或門3027的輸出端進行異或后作為線性反饋移位寄存器302的反饋信號,輸出至第一異或門電路3021。
先通過檢測模塊200對隨機數(shù)源產(chǎn)生模塊100產(chǎn)生的隨機數(shù)據(jù)進行檢測,以防止隨機數(shù)據(jù)被侵入式攻擊,然后再將檢測后的數(shù)據(jù)經(jīng)后處量模塊300進行處理獲得隨機性高的真隨機數(shù)據(jù),即線性反饋移位寄存器302中的值即為真隨機數(shù)據(jù),提高了真隨機數(shù)據(jù)的質量。
以上應用了具體個例對本發(fā)明進行闡述,只是用于幫助理解本發(fā)明,并不用以限制本發(fā)明。對于本發(fā)明所屬技術領域的技術人員,依據(jù)本發(fā)明的思想,還可以做出若干簡單推演、變形或替換。