專利名稱:偽隨機數(shù)種子、偽隨機數(shù)生成的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全領(lǐng)域,具體涉及一種偽隨機數(shù)種子生成的方法、裝置及一種偽隨機數(shù)生成的方法、裝置。
背景技術(shù):
在目前通訊技術(shù)中,為了確保通訊的信息安全性,需要對通訊數(shù)據(jù)進行加密,力口密的過程需要利用隨機數(shù);在非接觸芯片通訊的過程中,為了提高反碰撞的成功率,也需要利用隨機數(shù)?,F(xiàn)在利用各種方法產(chǎn)生的偽隨機數(shù)的隨機性并不理想,例如:公開號為CN101673351A
公開日為2010-03-17的中國專利申請文件《一種射頻識別標簽芯片的偽隨機數(shù)產(chǎn)生電路及其產(chǎn)生方法》就提出一種在射頻識別標簽芯片中利用上電后未被復(fù)位的計數(shù)器的初始態(tài)作為偽隨機數(shù)種子產(chǎn)生偽隨機數(shù)的電路及方法。具體為利用片上振蕩器在上電初始時震蕩頻率不穩(wěn)定以及復(fù)位信號在不同上電過程中產(chǎn)生時間、保持時間不固定的特點產(chǎn)生偽隨機數(shù)發(fā)生器的種子,但是由于上電引起的不定態(tài)不一定每次都會不同,所以會存在當(dāng)前上電的初始結(jié)果與上一次上電的初始結(jié)果一致的情況,導(dǎo)致該當(dāng)前產(chǎn)生的偽隨機數(shù)種子與上一次產(chǎn)生的偽隨機數(shù)種子相同,進而導(dǎo)致產(chǎn)生的偽隨機數(shù)也相同,降低了偽隨機數(shù)的隨機性,進而降低了信息保護的安全性。
發(fā)明內(nèi)容
本發(fā)明要解決的主要技術(shù)問題是,提供一種偽隨機數(shù)種子、偽隨機數(shù)生成的方法和裝置,提高偽隨機數(shù)種子的隨機性,進而提高產(chǎn)生的偽隨機數(shù)的隨機性,加強信息安全保護的安全性。為解決上述技術(shù)問題,本發(fā)明提供一種偽隨機數(shù)種子生成方法,包括:讀取一組原始偽隨機數(shù)種子;讀取上一次生成的偽隨機數(shù)種子;將當(dāng)前讀取的所述原始偽隨機數(shù)種子與所述上一次生成的偽隨機數(shù)種子進行比較處理,判斷二者是否相同,如相同,則重新讀取一組原始偽隨機數(shù)種子進行所述比較處理;如不相同,則基于當(dāng)前讀取的所述原始偽隨機數(shù)種子生成偽隨機數(shù)種子,并存儲得到的偽隨機數(shù)種子。在本發(fā)明的一種實施例中,若當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子不相同,則取當(dāng)前讀取的所述原始偽隨機數(shù)種子作為偽隨機數(shù)種子。在本發(fā)明的一種實施例中,若當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子不相同,則將當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行運算得到校驗值,將所述校驗值作為偽隨機數(shù)種子。在本發(fā)明的一種實施例中,將當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行運算得到校驗值包括:將當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行異或或同或運算。
在本發(fā)明的一種實施例中,將當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行比較處理,判斷二者是否相同包括:將當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行異或或同或運算,得到校驗值,根據(jù)所述校驗值判斷當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子是否相同。在本發(fā)明的一種實施例中,當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子不相同時,基于當(dāng)前讀取的所述原始偽隨機數(shù)種子計算得到偽隨機數(shù)種子具體為:取所述校驗值作為偽隨機數(shù)種子;或取當(dāng)前讀取的所述原始偽隨機數(shù)種子為偽隨機數(shù)種子。在本發(fā)明的一種實施例中,重新從所述原始偽隨機數(shù)種子生成模塊中讀取一組原始偽隨機數(shù)種子之前,還包括判斷比較處理的次數(shù)是否達到預(yù)設(shè)的最大處理次數(shù),如達到預(yù)設(shè)的最大處理次數(shù),則基于當(dāng)前從原始偽隨機數(shù)種子生成模塊中讀取的原始偽隨機數(shù)種子按預(yù)設(shè)規(guī)則生成偽隨機數(shù)種子。在本發(fā)明的一種實施例中,所述預(yù)設(shè)規(guī)則為取反或移位。在本發(fā)明的一種實施例中,將當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行所述比較處理之前,還包括判斷該原始偽隨機數(shù)種子是否為0,如是,則重新從所述原始偽隨機數(shù)種子生成模塊中讀取一組原始偽隨機數(shù)種子進行所述比較處理。在本發(fā)明的一種實施例中,從所述原始偽隨機數(shù)種子生成模塊中讀取原始偽隨機數(shù)種子之前,還包括讀取所述存儲模塊,判斷所述存儲模塊中是否存儲有偽隨機數(shù)種子,如否,則將此次從原始偽隨機數(shù)種子生成模塊中讀取的一組原始偽隨機數(shù)種子作為偽隨機數(shù)種子,并將其存儲于所述存儲模塊中。本發(fā)明還提供了一種偽隨機數(shù)生成方法,根據(jù)如上所述的方法得到偽隨機數(shù)種子后,根據(jù)得到的偽隨機數(shù)種子生成偽隨機數(shù)。本發(fā)明還提供了一種生成偽隨機數(shù)種子的裝置,包括依次連接的原始偽隨機數(shù)種子生成模塊、處理器和存儲模塊,其中:所述原始偽隨機數(shù)種子生成模塊用于生成原始偽隨機數(shù)種子;所述存儲模塊用于存儲上一次生成的偽隨機數(shù)種子;所述處理器用于從所述原始偽隨機數(shù)種子生成模塊當(dāng)前生成的原始偽隨機數(shù)種子中讀取一組原始偽隨機數(shù)種子,從存儲模塊中讀取上一次生成的偽隨機數(shù)種子,并將二者進行比較處理,根據(jù)比較處理的結(jié)果生成偽隨機數(shù)種子,并將生成的偽隨機數(shù)種子存儲于所述存儲模塊。在本發(fā)明的一種實施例中,所述原始偽隨機數(shù)種子生成模塊為可讀寫臨時存儲器。本發(fā)明還提供了一種生成偽隨機數(shù)的裝置,包括依次連接的原始偽隨機數(shù)種子生成模塊、處理器和存儲模塊,還包括與所述處理器連接的偽隨機數(shù)產(chǎn)生模塊,其中:所述原始偽隨機數(shù)種子生成模塊用于生成原始偽隨機數(shù)種子;所述存儲模塊用于存儲上一次生成的偽隨機數(shù)種子;所述處理器用于從所述原始偽隨機數(shù)種子生成模塊當(dāng)前生成的原始偽隨機數(shù)種子中讀取一組原始偽隨機數(shù)種子,從存儲模塊中讀取上一次生成的偽隨機數(shù)種子,并將二者進行比較處理,根據(jù)比較處理的結(jié)果生成偽隨機數(shù)種子,并將生成的偽隨機數(shù)種子存儲于所述存儲模塊;所述偽隨機數(shù)產(chǎn)生模塊,用于接收到偽隨機數(shù)種子后,根據(jù)接收到的偽隨機數(shù)種子生成偽隨機數(shù)。本發(fā)明的有益效果是:本發(fā)明通過從原始偽隨機數(shù)種子生成模塊當(dāng)前生成的原始偽隨機數(shù)種子中讀取一組原始偽隨機數(shù)種子;并從存儲模塊中讀取上一次生成的偽隨機數(shù)種子;然后將二者進行比較處理以判斷二者是否相同,如相同,則重新從原始偽隨機數(shù)種子生成模塊中讀取一組原始偽隨機數(shù)種子進行比較處理;如不相同,則基于當(dāng)前讀取的原始偽隨機數(shù)種子計算得到偽隨機數(shù)種子,并將得到的偽隨機數(shù)種子存儲于所述存儲模塊。即本發(fā)明將從當(dāng)前原始偽隨機數(shù)種子生成模塊讀取的原始偽隨機數(shù)種子與上一次產(chǎn)生的偽隨機數(shù)種子進行比較,只有在二者不同的情況下才基于該原始偽隨機數(shù)種子計算生成偽隨機數(shù)種子,因此可保證當(dāng)前生成的偽隨機數(shù)種子與上次生成的偽隨機數(shù)種子不同,提高產(chǎn)生的偽隨機數(shù)種子的隨機性,進而提高根據(jù)該偽隨機數(shù)種子生成的偽隨機數(shù)的隨機性,進而加強信息安全保護的安全性。
圖1為本發(fā)明一種實施例的偽隨機數(shù)種子生成裝置結(jié)構(gòu)示意圖;圖2為本發(fā)明一種實施例的偽隨機數(shù)生成裝置結(jié)構(gòu)示意圖;圖3為本發(fā)明一種實施例的偽隨機數(shù)種子生成方法的流程示意圖;圖4為本發(fā)明另一種實施例的偽隨機數(shù)生成裝置結(jié)構(gòu)示意圖;圖5為本發(fā)明另一種實施例的偽隨機數(shù)生成方法的流程示意圖。
具體實施例方式下面通過具體實施方式
結(jié)合附圖對本發(fā)明作進一步詳細說明。實施例一:請參見圖1,本例中的偽隨機數(shù)種子生成裝置包括依次連接的原始偽隨機數(shù)種子生成模塊、處理器和存儲模塊,其中:原始偽隨機數(shù)種子生成模塊用于生成原始偽隨機數(shù)種子;存儲模塊用于存儲上一次生成的偽隨機數(shù)種子;處理器用于從原始偽隨機數(shù)種子生成模塊當(dāng)前生成的原始偽隨機數(shù)種子中讀取一組原始偽隨機數(shù)種子,并從存儲模塊中讀取上一次生成的偽隨機數(shù)種子,將二者進行比較處理以判斷二者是否相同,如相同,則重新從原始偽隨機數(shù)種子生成模塊中讀取一組原始偽隨機數(shù)種子進行比較處理;如不相同,則基于當(dāng)前讀取的原始偽隨機數(shù)種子計算得到偽隨機數(shù)種子,并將得到的偽隨機數(shù)種子存儲于所述存儲模塊。請參見圖2,本例中的偽隨機數(shù)生成裝置在圖1所示的裝置基礎(chǔ)上,還包括與處理器連接的偽隨機數(shù)產(chǎn)生模塊,處理器還用于將當(dāng)前產(chǎn)生的偽隨機數(shù)種子發(fā)送給偽隨機數(shù)產(chǎn)生模塊,偽隨機數(shù)產(chǎn)生模塊接收到該偽隨機數(shù)種子后,根據(jù)接收到的偽隨機數(shù)種子生成偽隨機數(shù)。具體的,本例中偽隨機數(shù)種子生成方法包括以下步驟,請參見圖3:
從原始偽隨機數(shù)種子生成模塊當(dāng)前生成的原始偽隨機數(shù)種子中讀取一組原始偽隨機數(shù)種子;從存儲模塊中讀取上一次生成的偽隨機數(shù)種子;將當(dāng)前讀取的原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行比較處理,判斷二者是否相同,如相同,則重新從原始偽隨機數(shù)種子生成模塊中讀取下一組原始偽隨機數(shù)種子進行比較處理;如不相同,則基于當(dāng)前讀取的原始偽隨機數(shù)種子計算得到偽隨機數(shù)種子,并將得到的偽隨機數(shù)種子存儲于所述存儲模塊。由上可知,本例中將從當(dāng)前原始偽隨機數(shù)種子生成模塊讀取的原始偽隨機數(shù)種子與上一次產(chǎn)生的偽隨機數(shù)種子進行比較,在二者不同的情況下才基于該原始偽隨機數(shù)種子計算生成偽隨機數(shù)種子,可保證當(dāng)前生成的偽隨機數(shù)種子與上次生成的偽隨機數(shù)種子不同,可提高產(chǎn)生的偽隨機數(shù)種子的隨機性。本例中,當(dāng)當(dāng)前讀取的原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子不相同時,基于該原始偽隨機數(shù)種子計算得到偽隨機數(shù)種子的方法包括多種,例如:可直接選取該原始偽隨機數(shù)種子為偽隨機數(shù)種子;或?qū)υ撛紓坞S機數(shù)種子進行移位處理后,將處理后得到的數(shù)值作為當(dāng)前產(chǎn)生的偽隨機數(shù)種子等。而為了增加當(dāng)前產(chǎn)生的偽隨機數(shù)種子與上次產(chǎn)生的偽隨機數(shù)種子之間的差異性,以進一步提高產(chǎn)生的偽隨機數(shù)的隨機性,本例中在判斷出當(dāng)前讀取的原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子不相同時,可將該原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行異或處理得到校驗值,將得到的校驗值作為偽隨機數(shù)種子。本例中將當(dāng)前讀取的原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行比較處理,判斷二者是否相同的方法包括多種,例如可對二者進行同或,看同或得到的校驗值是否全為I ;也可對二者進行異或,下面以異或為例具體說明:將讀取的原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行異或處理得到校驗值,判斷所述校驗值是否為0,如為0,則表明當(dāng)前讀取的原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子相同;否則,表明當(dāng)前讀取的原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子不相同,此時可取該不為O的校驗值作為偽隨機數(shù)種子,以增加此次產(chǎn)生的偽隨機數(shù)種子與上一次產(chǎn)生的偽隨機數(shù)種子之間的差異性,也可選擇當(dāng)前讀取的原始偽隨機數(shù)種子為偽隨機數(shù)種子。類似的,本例中當(dāng)將讀取的原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行同或處理得到校驗值不全為1,且也不全為O時,也可選擇該校驗值為作為偽隨機數(shù)種子;或者經(jīng)同或處理判斷出二者不相同時,再將二者進行異或處理,將異或處理得到的校驗值作為偽隨機數(shù)種子,或直接取當(dāng)前讀取的原始偽隨機數(shù)種子為偽隨機數(shù)種子,而不再進行異或處理。值得注意的是,本例中當(dāng)當(dāng)前讀取的原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子相同時,重新從原始偽隨機數(shù)種子生成模塊中讀取一組原始偽隨機數(shù)種子之前,還包括判斷比較處理的次數(shù)是否已經(jīng)達到預(yù)設(shè)的最大處理次數(shù),如達到預(yù)設(shè)的最大處理次數(shù),則基于當(dāng)前從原始偽隨機數(shù)種子生成模塊中讀取的一組原始偽隨機數(shù)種子按預(yù)設(shè)規(guī)則計算得到偽隨機數(shù)種子,該預(yù)設(shè)規(guī)則可包括取反、移位等操作;還可將當(dāng)前異或處理得到的校驗值取反后作為偽隨機數(shù)種子。
由于全為O的隨機數(shù)種子的隨機數(shù)不是很理想,本領(lǐng)域一般都將其排除,不利用全為O的隨機數(shù)種子產(chǎn)生隨機數(shù),以提高隨機數(shù)的安全性。因此本例中在將當(dāng)前讀取的原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行所述比較處理之前,還包括判斷該原始偽隨機數(shù)種子是否為0,如是,則將其舍棄,重新從原始偽隨機數(shù)種子生成模塊中讀取一組原始偽隨機數(shù)種子進行比較處理。本例中,從原始偽隨機數(shù)種子生成模塊中讀取原始偽隨機數(shù)種子之前,還包括判斷當(dāng)前所要生成的偽隨機數(shù)種子是否是第一個偽隨機數(shù)種子,具體可讀取存儲模塊,判斷存儲模塊中是否存儲有偽隨機數(shù)種子,如沒有存儲種子,則將此次從原始偽隨機數(shù)種子生成模塊中讀取的一組原始偽隨機數(shù)種子作為偽隨機數(shù)種子,并將其存儲于所述存儲模塊中;也可基于此次從原始偽隨機數(shù)種子生成模塊中讀取的一組原始偽隨機數(shù)種子按一定的規(guī)則計算得出偽隨機數(shù)種子,例如,繼續(xù)從原始偽隨機數(shù)種子生成模中依次讀取另一組原始偽隨機數(shù)種子,并將二者進行異或處理,判斷異或后的校驗值是否為0,如為0,則重新讀取進行異或處理,知道校驗值不為O或直到達到預(yù)設(shè)的最大次數(shù),校驗值不為O時,則取該校驗值為偽隨機數(shù)種子;當(dāng)?shù)竭_最大次數(shù)時校驗值仍未O時,則可將該校驗值取反作為偽隨機數(shù)種子。本例中,根據(jù)上述方法得到偽隨機數(shù)種子后,即可根據(jù)該種子生成偽隨機數(shù)。值得注意的是,本例中原始偽隨機數(shù)種子生成模塊的實現(xiàn)方式可包括多種,只要能生成原始偽隨機數(shù)種子并供處理器讀取即可,為了更好的理解本發(fā)明,下面以一個具體的原始偽隨機數(shù)種子生成模塊為例,對本發(fā)明做進一步說明。實施例二:本例中的原始偽隨機數(shù)種子生成模塊可為可讀寫臨時存儲器,這類存儲器在上電后、未復(fù)位之前都存在不定態(tài),例如指令寄存器、程序計數(shù)器、SRAM存儲器,下面以SRAM存儲器為例做進一步詳細的說明:由于RAM結(jié)構(gòu)的原因,上電后SRAM中存儲的數(shù)據(jù)與上電的速度、溫度以及工藝偏差有關(guān),具有不定態(tài),因此可利用SRAM存儲器作為本例中的原始偽隨機數(shù)種子生成模塊,也可利用與RAM結(jié)構(gòu)相同特性的其它存儲器作為本例中的原始偽隨機數(shù)種子生成模塊。本例中將其稱為原始偽隨機數(shù)種子生成模塊,并將實施例一中用于存儲上一次產(chǎn)生的偽隨機數(shù)種子的存儲模塊稱為種子存儲模塊,請參見圖4,本例中的原始偽隨機數(shù)種子生成模塊、處理器、種子存儲模塊依次相連接,且處理器還與偽隨機數(shù)產(chǎn)生模塊連接。利用上述裝置產(chǎn)生偽隨機數(shù)的過程如下:501:上電;502:處理器讀取種子存儲模塊,判斷是否為第一次上電(即判斷當(dāng)前要產(chǎn)生的偽隨機數(shù)種子是否為第一個偽隨機數(shù)種子),如是第一次上電,則轉(zhuǎn)至步驟503 ;否則,讀取出上一次產(chǎn)生的偽隨機數(shù)種子,并轉(zhuǎn)至步驟504 ;503:處理器從原始偽隨機數(shù)種子生成模塊中讀取一組原始偽隨機數(shù)種子,并將其作為此次上電產(chǎn)生的偽隨機數(shù)種子(還可判斷該原始偽隨機數(shù)種子是否為0,如為0,則重新讀取,直到讀取的原始偽隨機數(shù)種子不為O時,才將其作為原始偽隨機數(shù)種子),并將其發(fā)送給偽隨機數(shù)產(chǎn)生模塊,以產(chǎn)生偽隨機數(shù),此次上電產(chǎn)生偽隨機數(shù)流程結(jié)束,等待下一次上電。
504:處理器從原始偽隨機數(shù)種子生成模塊中讀取一組原始偽隨機數(shù)種子,并判斷該隨機數(shù)種子是否為0,如否,則轉(zhuǎn)至步驟505 ;否則,重新從原始偽隨機數(shù)種子生成模塊中讀取一組原始偽隨機數(shù)種子,按上述方式判斷其是否為O ;505:將從原始偽隨機數(shù)種子生成模塊讀取的原始偽隨機數(shù)種子與從種子存儲模塊中讀取出的上一次產(chǎn)生的偽隨機數(shù)種子進行異或處理,并判斷得到的校驗值是否為0,如為0,則轉(zhuǎn)至步驟506 ;否則,轉(zhuǎn)至步驟507 ;506:判斷異或處理次數(shù)是否超過預(yù)設(shè)的最大處理次數(shù),如否,則轉(zhuǎn)至步驟508,否貝U,轉(zhuǎn)至步驟509 ;507:取步驟505中的校驗值為此次上電產(chǎn)生的偽隨機數(shù)種子,將其存儲于種子存儲模塊中,并將其發(fā)送給偽隨機數(shù)產(chǎn)生模塊,以產(chǎn)生偽隨機數(shù);此次上電產(chǎn)生偽隨機數(shù)流程結(jié)束,等待下一次上電。508:重新從原始偽隨機數(shù)種子生成模塊中讀取一組原始偽隨機數(shù)種子,并轉(zhuǎn)入步驟 505 ;509:將當(dāng)前讀取出的原始偽隨機數(shù)種子進行取反處理,并將取反后得到的數(shù)值作為此次上電產(chǎn)生的偽隨機數(shù)種子,將其存儲于種子存儲模塊中,并將其發(fā)送給偽隨機數(shù)產(chǎn)生模塊,以產(chǎn)生偽隨機數(shù);此次上電產(chǎn)生偽隨機數(shù)流程結(jié)束,等待下一次上電。以上內(nèi)容是結(jié)合具體的實施方式對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護范圍。
權(quán)利要求
1.一種偽隨機數(shù)種子生成方法,其特征在于包括: 讀取一組原始偽隨機數(shù)種子; 讀取上一次生成的偽隨機數(shù)種子; 將當(dāng)前讀取的所述原始偽隨機數(shù)種子與所述上一次生成的偽隨機數(shù)種子進行比較處理,判斷二者是否相同,如相同,則重新讀取一組原始偽隨機數(shù)種子進行所述比較處理;如不相同,則基于當(dāng)前讀取的所述原始偽隨機數(shù)種子生成偽隨機數(shù)種子,并存儲得到的偽隨機數(shù)種子。
2.按權(quán)利要求1所述的方法,其特征在于,若當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子不相同,則取當(dāng)前讀取的所述原始偽隨機數(shù)種子作為偽隨機數(shù)種子。
3.按權(quán)利要求1所述的方法,其特征在于,若當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子不相同,則將當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行運算得到校驗值,將所述校驗值作為偽隨機數(shù)種子。
4.按權(quán)利要求3所述的方法,其特征在于,將當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行運算得到校驗值包括:將當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行異或或同或運算。
5.按權(quán)利要求1所述的方法,其特征在于,將當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行比較處理,判斷二者是否相同包括: 將當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行異或或同或運算,得到校驗值,根據(jù)所述校驗值判斷當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子是否相同。
6.按權(quán)利要求5所述的方法,其特征在于,當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子不相同時,基于當(dāng)前讀取的所述原始偽隨機數(shù)種子計算得到偽隨機數(shù)種子具體為:取所述校驗值作為偽隨機數(shù)種子;或取當(dāng)前讀取的所述原始偽隨機數(shù)種子為偽隨機數(shù)種子。
7.按權(quán)利要求1-6任一項所述的方法,其特征在于,重新從所述原始偽隨機數(shù)種子生成模塊中讀取一組原始偽隨機數(shù)種子之前,還包括判斷比較處理的次數(shù)是否達到預(yù)設(shè)的最大處理次數(shù),如達到預(yù)設(shè)的最大處理次數(shù),則基于當(dāng)前從原始偽隨機數(shù)種子生成模塊中讀取的原始偽隨機數(shù)種子按預(yù)設(shè)規(guī)則生成偽隨機數(shù)種子。
8.按權(quán)利要求7所述的方法,其特征在于,所述預(yù)設(shè)規(guī)則為取反或移位。
9.按權(quán)利要求1-6任一項所述的方法,其特征在于,將當(dāng)前讀取的所述原始偽隨機數(shù)種子與上一次生成的偽隨機數(shù)種子進行所述比較處理之前,還包括判斷該原始偽隨機數(shù)種子是否為O,如是,則重新從所述原始偽隨機數(shù)種子生成模塊中讀取一組原始偽隨機數(shù)種子進行所述比較處理。
10.按權(quán)利要求1-6任一項所述的方法,其特征在于,從所述原始偽隨機數(shù)種子生成模塊中讀取原始偽隨機數(shù)種子之前,還包括讀取所述存儲模塊,判斷所述存儲模塊中是否存儲有偽隨機數(shù)種子,如否,則將此次從原始偽隨機數(shù)種子生成模塊中讀取的一組原始偽隨機數(shù)種子作為偽隨機數(shù)種子,并將其存儲于所述存儲模塊中。
11.一種偽隨機數(shù)生成方法,其特征在于,根據(jù)權(quán)利要求1-10任一項所述的方法得到偽隨機數(shù)種子后,根據(jù)得到的偽隨機數(shù)種子生成偽隨機數(shù)。
12.一種生成偽隨機數(shù)種子的裝置,其特征在于,包括依次連接的原始偽隨機數(shù)種子生成模塊、處理器和存儲模塊,其中: 所述原始偽隨機數(shù)種子生成模塊用于生成原始偽隨機數(shù)種子; 所述存儲模塊用于存儲上一次生成的偽隨機數(shù)種子; 所述處理器用于從所述原始偽隨機數(shù)種子生成模塊當(dāng)前生成的原始偽隨機數(shù)種子中讀取一組原始偽隨機數(shù)種子,從存儲模塊中讀取上一次生成的偽隨機數(shù)種子,并將二者進行比較處理,根據(jù)比較處理的結(jié)果生成偽隨機數(shù)種子,并將生成的偽隨機數(shù)種子存儲于所述存儲模塊。
13.按權(quán)利要求12所述的裝置,其特征在于,所述原始偽隨機數(shù)種子生成模塊為可讀寫臨時存儲器。
14.一種生成偽隨機數(shù)的裝 置,其特征在于,包括依次連接的原始偽隨機數(shù)種子生成模塊、處理器和存儲模塊,還包括與所述處理器連接的偽隨機數(shù)產(chǎn)生模塊,其中: 所述原始偽隨機數(shù)種子生成模塊用于生成原始偽隨機數(shù)種子; 所述存儲模塊用于存儲上一次生成的偽隨機數(shù)種子; 所述處理器用于從所述原始偽隨機數(shù)種子生成模塊當(dāng)前生成的原始偽隨機數(shù)種子中讀取一組原始偽隨機數(shù)種子,從存儲模塊中讀取上一次生成的偽隨機數(shù)種子,并將二者進行比較處理,根據(jù)比較處理的結(jié)果生成偽隨機數(shù)種子,并將生成的偽隨機數(shù)種子存儲于所述存儲模塊; 所述偽隨機數(shù)產(chǎn)生模塊,用于接收到偽隨機數(shù)種子后,根據(jù)接收到的偽隨機數(shù)種子生成偽隨機數(shù)。
全文摘要
本發(fā)明公開了一種偽隨機數(shù)種子、偽隨機數(shù)生成的方法和裝置,通過從原始偽隨機數(shù)種子生成模塊當(dāng)前生成的原始偽隨機數(shù)種子中讀取一組原始偽隨機數(shù)種子;并從存儲模塊中讀取上一次生成的偽隨機數(shù)種子;然后將二者進行比較處理以判斷二者是否相同,如相同,則重新從原始偽隨機數(shù)種子生成模塊中讀取一組原始偽隨機數(shù)種子進行比較處理;如不相同,則基于當(dāng)前讀取的原始偽隨機數(shù)種子計算得到偽隨機數(shù)種子,并將得到的偽隨機數(shù)種子存儲于所述存儲模塊,因此可保證當(dāng)前生成的偽隨機數(shù)種子與上次生成的偽隨機數(shù)種子不同,提高產(chǎn)生的偽隨機數(shù)種子的隨機性,進而提高根據(jù)該偽隨機數(shù)種子生成的偽隨機數(shù)的隨機性,進而加強信息安全保護的安全性。
文檔編號G06F7/58GK103092566SQ20111034772
公開日2013年5月8日 申請日期2011年11月7日 優(yōu)先權(quán)日2011年11月7日
發(fā)明者石道林 申請人:國民技術(shù)股份有限公司