本發(fā)明涉及隨機(jī)數(shù)生成器技術(shù)領(lǐng)域,更具體地涉及一種評估隨機(jī)數(shù)生成器質(zhì)量的方法及裝置。
背景技術(shù):
在各類計算機(jī)程序中,隨機(jī)數(shù)生成器(Random Number Generator,RNG)是一種被廣泛使用的模塊,其主要功能是產(chǎn)生一系列隨機(jī)數(shù)供計算機(jī)程序在各種情況下使用。這些生成的數(shù)被稱為偽隨機(jī)數(shù),因?yàn)樗鼈兪峭ㄟ^某種算法計算得到的,并不真正地具備隨機(jī)性。
然而,不同的隨機(jī)數(shù)生成器的質(zhì)量并不相同。隨機(jī)數(shù)生成器的質(zhì)量可以通過其產(chǎn)生的隨機(jī)數(shù)序列的隨機(jī)性來衡量。顯然地,隨機(jī)數(shù)序列的隨機(jī)性越高,代表隨機(jī)數(shù)生成器的質(zhì)量越好。偽隨機(jī)數(shù)的隨機(jī)性是一種統(tǒng)計規(guī)律,其主要特征是每個數(shù)出現(xiàn)的可能性以及它和序列中其他數(shù)之間的相關(guān)性。如果能夠有效地計算偽隨機(jī)數(shù)的隨機(jī)性,則可以評估對應(yīng)的隨機(jī)數(shù)生成器的質(zhì)量。然而,目前尚缺乏計算偽隨機(jī)數(shù)的隨機(jī)性的方法。
技術(shù)實(shí)現(xiàn)要素:
考慮到上述問題而提出了本發(fā)明。根據(jù)本發(fā)明一方面,提供了一種評估隨機(jī)數(shù)生成器質(zhì)量的方法,所述方法包括:利用待評估的隨機(jī)數(shù)生成器產(chǎn)生多個隨機(jī)數(shù)序列;將所述多個隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)序列輸入至循環(huán)神經(jīng)網(wǎng)絡(luò),以對所述循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練;利用訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)對所述多個隨機(jī)數(shù)序列中除所述部分隨機(jī)數(shù)序列以外的其余隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)進(jìn)行預(yù)測;以及根據(jù)所述預(yù)測的結(jié)果判定所述隨機(jī)數(shù)生成器的質(zhì)量。
在本發(fā)明的一個實(shí)施例中,所述利用訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)對所述多個隨機(jī)數(shù)序列中除所述部分隨機(jī)數(shù)序列以外的其余隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)進(jìn)行預(yù)測包括:對于所述其余隨機(jī)數(shù)序列中的每一個隨機(jī)數(shù)序列:將該隨機(jī)數(shù)序列中的前N-1個隨機(jī)數(shù)輸入至所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò),其中N為該隨機(jī)數(shù)序列中隨機(jī)數(shù)的數(shù)目,且N為大于1的自然數(shù);以及基于所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測該隨機(jī)數(shù)序列中的最后一個隨機(jī)數(shù)。
在本發(fā)明的一個實(shí)施例中,所述根據(jù)所述預(yù)測的結(jié)果判定所述隨機(jī)數(shù)生成器的質(zhì)量包括:對于所述其余隨機(jī)數(shù)序列中的每一個隨機(jī)數(shù)序列,確定所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)對該隨機(jī)數(shù)序列中需預(yù)測的隨機(jī)數(shù)的預(yù)測結(jié)果是否錯誤;以及基于所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測錯誤的次數(shù)和所述其余隨機(jī)數(shù)序列的個數(shù)計算所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測的錯誤率,以作為所述隨機(jī)數(shù)生成器的質(zhì)量評估結(jié)果。
在本發(fā)明的一個實(shí)施例中,所述待評估的隨機(jī)數(shù)生成器產(chǎn)生的多個隨機(jī)數(shù)序列各自的序列長度不同。
在本發(fā)明的一個實(shí)施例中,所述部分隨機(jī)數(shù)序列的個數(shù)大于所述其余隨機(jī)數(shù)序列的個數(shù)。
在本發(fā)明的一個實(shí)施例中,所述循環(huán)神經(jīng)網(wǎng)絡(luò)為長短時記憶網(wǎng)絡(luò)。
根據(jù)本發(fā)明另一方面,提供了一種評估隨機(jī)數(shù)生成器質(zhì)量的裝置,所述裝置包括:神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊,用于將待評估的隨機(jī)數(shù)生成器產(chǎn)生的多個隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)序列輸入至循環(huán)神經(jīng)網(wǎng)絡(luò),以對所述循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練;隨機(jī)數(shù)預(yù)測模塊,用于利用訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)對所述多個隨機(jī)數(shù)序列中除所述部分隨機(jī)數(shù)序列以外的其余隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)進(jìn)行預(yù)測;以及質(zhì)量判定模塊,用于根據(jù)所述隨機(jī)數(shù)預(yù)測模塊的預(yù)測結(jié)果判定所述隨機(jī)數(shù)生成器的質(zhì)量。
在本發(fā)明的一個實(shí)施例中,所述隨機(jī)數(shù)預(yù)測模塊進(jìn)一步用于:對于所述其余隨機(jī)數(shù)序列中的每一個隨機(jī)數(shù)序列:將該隨機(jī)數(shù)序列中的前N-1個隨機(jī)數(shù)輸入至所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò),其中N為該隨機(jī)數(shù)序列中隨機(jī)數(shù)的數(shù)目,且N為大于1的自然數(shù);以及基于所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測該隨機(jī)數(shù)序列中的最后一個隨機(jī)數(shù)。
在本發(fā)明的一個實(shí)施例中,所述質(zhì)量判定模塊進(jìn)一步用于:對于所述其余隨機(jī)數(shù)序列中的每一個隨機(jī)數(shù)序列,確定所述隨機(jī)數(shù)預(yù)測模塊對該隨機(jī)數(shù)序列中需預(yù)測的隨機(jī)數(shù)的預(yù)測結(jié)果是否錯誤;以及基于所述隨機(jī)數(shù)預(yù)測模塊預(yù)測錯誤的次數(shù)和所述其余隨機(jī)數(shù)序列的個數(shù)計算所述隨機(jī)數(shù)預(yù)測模塊進(jìn)行預(yù)測的錯誤率,以作為所述隨機(jī)數(shù)生成器的質(zhì)量評估結(jié)果。
在本發(fā)明的一個實(shí)施例中,所述待評估的隨機(jī)數(shù)生成器產(chǎn)生的多個隨機(jī)數(shù)序列各自的序列長度不同。
在本發(fā)明的一個實(shí)施例中,所述部分隨機(jī)數(shù)序列的個數(shù)大于所述其余隨機(jī)數(shù)序列的個數(shù)。
在本發(fā)明的一個實(shí)施例中,所述循環(huán)神經(jīng)網(wǎng)絡(luò)為長短時記憶網(wǎng)絡(luò)。
根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法及裝置基于循環(huán)神經(jīng)網(wǎng)絡(luò)對隨機(jī)數(shù)生成器所產(chǎn)生的隨機(jī)數(shù)序列的相關(guān)性進(jìn)行建模,從而可以利用循環(huán)神經(jīng)網(wǎng)絡(luò)對隨機(jī)數(shù)序列的相關(guān)性進(jìn)行估計,實(shí)現(xiàn)客觀、有效地評估隨機(jī)數(shù)生成器的質(zhì)量,因此能夠作為比較、選取和設(shè)計隨機(jī)數(shù)生成器的參考依據(jù),對于文件加密和數(shù)據(jù)傳輸?shù)阮I(lǐng)域具有重要的價值。
附圖說明
通過結(jié)合附圖對本發(fā)明實(shí)施例進(jìn)行更詳細(xì)的描述,本發(fā)明的上述以及其它目的、特征和優(yōu)勢將變得更加明顯。附圖用來提供對本發(fā)明實(shí)施例的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中,相同的參考標(biāo)號通常代表相同部件或步驟。
圖1示出用于實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法和裝置的示例電子設(shè)備的示意性框圖;
圖2示出根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法的示意性流程圖;
圖3示出根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的裝置的示意性框圖;以及
圖4示出根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的系統(tǒng)的示意性框圖。
具體實(shí)施方式
為了使得本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更為明顯,下面將參照附圖詳細(xì)描述根據(jù)本發(fā)明的示例實(shí)施例。顯然,所描述的實(shí)施例僅僅是本發(fā)明的一部分實(shí)施例,而不是本發(fā)明的全部實(shí)施例,應(yīng)理解,本發(fā)明不受這里描述的示例實(shí)施例的限制?;诒景l(fā)明中描述的本發(fā)明實(shí)施例,本領(lǐng)域技術(shù)人員在沒有付出創(chuàng)造性勞動的情況下所得到的所有其它實(shí)施例都應(yīng)落入本發(fā)明的保護(hù)范圍之內(nèi)。
首先,參照圖1來描述用于實(shí)現(xiàn)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法和裝置的示例電子設(shè)備100。
如圖1所示,電子設(shè)備100包括一個或多個處理器102、一個或多個存儲裝置104、輸入裝置106以及輸出裝置108,這些組件通過總線系統(tǒng)110和/或其它形式的連接機(jī)構(gòu)(未示出)互連。應(yīng)當(dāng)注意,圖1所示的電子設(shè)備100的組件和結(jié)構(gòu)只是示例性的,而非限制性的,根據(jù)需要,所述電子設(shè)備也可以具有其他組件和結(jié)構(gòu)。
所述處理器102可以是中央處理單元(CPU)或者具有數(shù)據(jù)處理能力和/或指令執(zhí)行能力的其它形式的處理單元,并且可以控制所述電子設(shè)備100中的其它組件以執(zhí)行期望的功能。
所述存儲裝置104可以包括一個或多個計算機(jī)程序產(chǎn)品,所述計算機(jī)程序產(chǎn)品可以包括各種形式的計算機(jī)可讀存儲介質(zhì),例如易失性存儲器和/或非易失性存儲器。所述易失性存儲器例如可以包括隨機(jī)存取存儲器(RAM)和/或高速緩沖存儲器(cache)等。所述非易失性存儲器例如可以包括只讀存儲器(ROM)、硬盤、閃存等。在所述計算機(jī)可讀存儲介質(zhì)上可以存儲一個或多個計算機(jī)程序指令,處理器102可以運(yùn)行所述程序指令,以實(shí)現(xiàn)下文所述的本發(fā)明實(shí)施例中(由處理器實(shí)現(xiàn))的客戶端功能以及/或者其它期望的功能。在所述計算機(jī)可讀存儲介質(zhì)中還可以存儲各種應(yīng)用程序和各種數(shù)據(jù),例如所述應(yīng)用程序使用和/或產(chǎn)生的各種數(shù)據(jù)等。
所述輸入裝置106可以是用戶用來輸入指令的裝置,并且可以包括鍵盤、鼠標(biāo)、麥克風(fēng)和觸摸屏等中的一個或多個。
所述輸出裝置108可以向外部(例如用戶)輸出各種信息(例如圖像或聲音),并且可以包括顯示器、揚(yáng)聲器等中的一個或多個。
示例性地,用于實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法和裝置的示例電子設(shè)備可以被實(shí)現(xiàn)為諸如智能手機(jī)、平板電腦等。
下面,將參考圖2描述根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法200。
在步驟S210,利用待評估的隨機(jī)數(shù)生成器產(chǎn)生多個隨機(jī)數(shù)序列。
在一個實(shí)施例中,假設(shè)待評估的隨機(jī)數(shù)生成器為G。隨機(jī)數(shù)生成器G所產(chǎn)生的隨機(jī)數(shù)為偽隨機(jī)數(shù),但按照行業(yè)慣例,下文中還是稱為隨機(jī)數(shù)。隨機(jī)數(shù)生成器G所產(chǎn)生的隨機(jī)數(shù)可以是隨機(jī)整數(shù),也可以是浮點(diǎn)數(shù)。為了簡單,下面以隨機(jī)整數(shù)為例來描述。
在一個示例中,隨機(jī)數(shù)生成器G所產(chǎn)生的隨機(jī)數(shù)的取值范圍為[0,M]。示例性地,M為正整數(shù),例如M的取值可以為32767、65535或其他任何合適的數(shù)值。每次調(diào)用G,會得到一個位于區(qū)間[0,M]內(nèi)的隨機(jī)數(shù);連續(xù)多次調(diào)用G,則會得到一個隨機(jī)數(shù)序列。因此,可以通過調(diào)用G,構(gòu)造多個隨機(jī)數(shù)序列。
應(yīng)了解,本發(fā)明不受具體采用的隨機(jī)數(shù)生成器的限制,無論是現(xiàn)有的隨機(jī)數(shù)生成器還是將來開發(fā)的隨機(jī)數(shù)生成器,都可以應(yīng)用于根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法中,并且也應(yīng)包括在本發(fā)明的保護(hù)范圍內(nèi)。
在步驟S220,將所述多個隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)序列輸入至循環(huán)神經(jīng)網(wǎng)絡(luò),以對所述循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
在一個實(shí)施例中,利用待評估的隨機(jī)數(shù)生成器產(chǎn)生多個隨機(jī)數(shù)序列可以包括利用待評估的隨機(jī)數(shù)生成器產(chǎn)生兩組隨機(jī)數(shù)序列,每組隨機(jī)數(shù)序列包括一定數(shù)目的隨機(jī)數(shù)序列。對于這兩組隨機(jī)數(shù)序列,其中的一組隨機(jī)數(shù)序列(即前述的多個隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)序列)可以用于步驟S220中對循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,另一組隨機(jī)數(shù)序列(即多個隨機(jī)數(shù)序列中除所述部分隨機(jī)數(shù)序列以外的其余隨機(jī)數(shù)序列)可以用于步驟S220以后要討論的預(yù)測步驟,關(guān)于其應(yīng)用稍后會詳細(xì)討論。
在一個示例中,用于訓(xùn)練循環(huán)神經(jīng)網(wǎng)絡(luò)的隨機(jī)數(shù)序列的個數(shù)可以大于用于后續(xù)預(yù)測的隨機(jī)數(shù)序列的個數(shù),這樣,采用更多的隨機(jī)數(shù)序列進(jìn)行訓(xùn)練可提高所訓(xùn)練出的模型的精確度。此外,用于訓(xùn)練循環(huán)神經(jīng)網(wǎng)絡(luò)的隨機(jī)數(shù)序列的具體個數(shù)可以結(jié)合訓(xùn)練需要、計算復(fù)雜度、計算性能等各種因素而設(shè)置,用于后續(xù)預(yù)測的隨機(jī)數(shù)序列的個數(shù)可以根據(jù)對隨機(jī)數(shù)生成器的質(zhì)量評估精度需求等因素而設(shè)置,本發(fā)明對這兩部分隨機(jī)數(shù)序列的具體個數(shù)不作限定,也不限定這兩者之間的關(guān)系。
接著上面的示例,可以通過調(diào)用待評估的隨機(jī)數(shù)生成器G產(chǎn)生第一組隨機(jī)數(shù)序列S1,有其中T1為S1中隨機(jī)數(shù)序列的數(shù)目。在一個示例中,T1的典型值為106。在其他示例中,T1也可以選取其他合適的值。Χm,m∈[1,T1]代表該組隨機(jī)數(shù)序列S1中的一個隨機(jī)數(shù)序列。L(Χm)為隨機(jī)數(shù)序列Χm的序列長度,即隨機(jī)數(shù)序列Χm中所包括的隨機(jī)數(shù)的個數(shù)。在一個示例中,L(Χm)可以與待評估的隨機(jī)數(shù)生成器G產(chǎn)生的隨機(jī)數(shù)的取值范圍相關(guān)。例如,L(Χm)是區(qū)間內(nèi)的隨機(jī)整數(shù),其中符號代表下取整操作。在其他示例中,L(Χm)也可以取任何其他合適的值。
同樣地,可以通過調(diào)用待評估的隨機(jī)數(shù)生成器G產(chǎn)生第二組隨機(jī)數(shù)序列S2,有S2={Y1,Y2,...,YT2},其中T2為S2中隨機(jī)數(shù)序列的數(shù)目。例如,T2的典型值為105。在其他示例中,T2也可以選取其他合適的值。Yn,n∈[1,T2]代表該組隨機(jī)數(shù)序列S2中的一個隨機(jī)數(shù)序列。L(Yn)為隨機(jī)數(shù)序列Yn的序列長度,即隨機(jī)數(shù)序列Yn中所包括的隨機(jī)數(shù)的個數(shù)。在一個示例中,L(Yn)可以與待評估的隨機(jī)數(shù)生成器G產(chǎn)生的隨機(jī)數(shù)的取值范圍相關(guān)。例如,L(Yn)是區(qū)間內(nèi)的隨機(jī)整數(shù),其中符號代表下取整操作。在其他示例中,L(Yn)也可以取任何其他合適的值。
如上所述,可以將上述第一組隨機(jī)數(shù)序列S1輸入至循環(huán)神經(jīng)網(wǎng)絡(luò),以對所述循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。其中,對循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練可以包括對循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計、以及對設(shè)計好的循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。下面示例性地描述循環(huán)神經(jīng)網(wǎng)絡(luò)的設(shè)計和訓(xùn)練過程。
在一個示例中,首先設(shè)計循環(huán)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。示例性地,循環(huán)神經(jīng)網(wǎng)絡(luò)可以包括若干數(shù)目的網(wǎng)絡(luò)層數(shù)(例如4層或其他合適數(shù)目的網(wǎng)絡(luò)層)。示例性地,循環(huán)神經(jīng)網(wǎng)絡(luò)可以采用長短時記憶(Long-Short Term Memory,LSTM)作為基本單元。在一個示例中,循環(huán)神經(jīng)網(wǎng)絡(luò)可包括一定數(shù)目的隱含層節(jié)點(diǎn)(例如512或其他合適數(shù)目)。此外,在一個示例中,為了防止模型過擬合,可對于每一隱含層可執(zhí)行一定概率(例如0.5或其他合適的概率)的丟棄(dropout)操作。上面僅示例性地描述了循環(huán)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),還可以采用任何其他合適的結(jié)構(gòu)。在一個具體示例中,所設(shè)計的循環(huán)神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)層數(shù)為4層,采用長短時記憶作為基本單元,隱含層節(jié)點(diǎn)的數(shù)目為512,對于每一層執(zhí)行概率為0.5的丟棄(dropout)操作。實(shí)驗(yàn)表明,采用該具體結(jié)構(gòu)的循環(huán)神經(jīng)網(wǎng)絡(luò)可以在網(wǎng)絡(luò)結(jié)構(gòu)相對比較簡單的情況下保證對隨機(jī)數(shù)生成器的質(zhì)量的判斷的準(zhǔn)確性。
然后,將上述第一組隨機(jī)數(shù)序列S1輸入至設(shè)計好的循環(huán)神經(jīng)網(wǎng)絡(luò),對該循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。在訓(xùn)練過程中,示例性地,每一次迭代時從S1中隨機(jī)選取一個序列送入循環(huán)神經(jīng)網(wǎng)絡(luò),示例性地,訓(xùn)練過程迭代次2T1后終止,最終得到模型R。
上述第二組隨機(jī)數(shù)序列S2可以用于接下來將描述的步驟。
在步驟S230,利用訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)對所述多個隨機(jī)數(shù)序列中除所述部分隨機(jī)數(shù)序列以外的其余隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)進(jìn)行預(yù)測。
在一個實(shí)施例中,步驟S230可以進(jìn)一步包括:對于所述其余隨機(jī)數(shù)序列中的每一個隨機(jī)數(shù)序列:將該隨機(jī)數(shù)序列中的前N-1個隨機(jī)數(shù)輸入至所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò),其中N為該隨機(jī)數(shù)序列中隨機(jī)數(shù)的數(shù)目,且N為大于1的自然數(shù);以及基于所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測該隨機(jī)數(shù)序列中的最后一個隨機(jī)數(shù)。
例如,接著上面的示例,可以利用訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)對上述第二組隨機(jī)數(shù)序列S2中的部分隨機(jī)數(shù)進(jìn)行預(yù)測。示例性地,該預(yù)測過程可以包括:對于S2中的每一個隨機(jī)數(shù)序列Yn,n∈[1,T2],將隨機(jī)數(shù)序列Yn中的前L(Yn)-1個隨機(jī)數(shù)依次輸入訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)模型R中,基于訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測隨機(jī)數(shù)序列Yn中的最后一個隨機(jī)數(shù)。例如,經(jīng)過預(yù)測,得到預(yù)測的結(jié)果pn,pn即為循環(huán)神經(jīng)網(wǎng)絡(luò)模型R所預(yù)測的、隨機(jī)數(shù)序列Yn中的最后一個隨機(jī)數(shù)的最有可能的結(jié)果。
在該實(shí)施例中,基于隨機(jī)數(shù)序列中除最后一個隨機(jī)數(shù)以外的所有隨機(jī)數(shù)來預(yù)測最后一個隨機(jī)數(shù),實(shí)現(xiàn)簡單,易于統(tǒng)計結(jié)果,使得后面將描述的步驟S240的操作也更為簡單,且結(jié)果可靠。當(dāng)然,步驟S230中所進(jìn)行的預(yù)測也可以采用其他的方式,本發(fā)明不限定具體輸入到訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)的隨機(jī)數(shù)的個數(shù)和需要預(yù)測的隨機(jī)數(shù)的個數(shù),也不限定它們兩者之間的關(guān)系。
在步驟S240,根據(jù)所述預(yù)測的結(jié)果判定所述隨機(jī)數(shù)生成器的質(zhì)量。
在一個實(shí)施例中,步驟S240可以進(jìn)一步包括:對于所述其余隨機(jī)數(shù)序列中的每一個隨機(jī)數(shù)序列,確定所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)對該隨機(jī)數(shù)序列中需預(yù)測的隨機(jī)數(shù)的預(yù)測結(jié)果是否錯誤;以及基于所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測錯誤的次數(shù)和所述其余隨機(jī)數(shù)序列的個數(shù)計算所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測的錯誤率,以作為所述隨機(jī)數(shù)生成器的質(zhì)量評估結(jié)果。
例如,接著上面的示例,對于S2中的每一個隨機(jī)數(shù)序列Yn,可以將模型R所預(yù)測的結(jié)果pn與Yn中的最后一個隨機(jī)數(shù)進(jìn)行比對,若二者相等,則確定為預(yù)測正確,否則確定為預(yù)測錯誤。然后統(tǒng)計對于T2個隨機(jī)數(shù)序列,模型R預(yù)測錯誤的次數(shù)E,可計算模型預(yù)測錯誤的概率δ'=E/T2,該錯誤率可以作為隨機(jī)數(shù)生成器G的質(zhì)量評估結(jié)果。
類似地,也可以統(tǒng)計對于T2個隨機(jī)數(shù)序列,模型R預(yù)測正確的次數(shù)C,則模型R預(yù)測正確的概率為δ=C/T2,可將隨機(jī)數(shù)生成器G的質(zhì)量定義為:Ψ(G)=1-δ,則可將Ψ(G)返回,作為隨機(jī)數(shù)生成器G的質(zhì)量評估結(jié)果。
如上所述,步驟S230中所進(jìn)行的預(yù)測也可以采用其他的方式,基于步驟S230中所采用的預(yù)測方式的不同,步驟S240中可以采用相應(yīng)的方式來判定隨機(jī)數(shù)生成器的質(zhì)量,本發(fā)明也不限定根據(jù)預(yù)測結(jié)果判定隨機(jī)數(shù)生成器的質(zhì)量的具體方式??傊?,如果循環(huán)神經(jīng)網(wǎng)絡(luò)可以以較高的概率根據(jù)已知序列預(yù)測接下來的隨機(jī)數(shù),則說明隨機(jī)數(shù)生成器的質(zhì)量較低;反之,則說明隨機(jī)數(shù)生成器的質(zhì)量較高。
基于上面的描述,根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法基于循環(huán)神經(jīng)網(wǎng)絡(luò)對隨機(jī)數(shù)生成器所產(chǎn)生的隨機(jī)數(shù)序列的相關(guān)性進(jìn)行建模,從而可以利用循環(huán)神經(jīng)網(wǎng)絡(luò)對隨機(jī)數(shù)序列的相關(guān)性進(jìn)行估計,實(shí)現(xiàn)客觀、有效地評估隨機(jī)數(shù)生成器的質(zhì)量,不僅精度高,而且可擴(kuò)展性強(qiáng),能夠作為比較、選取和設(shè)計隨機(jī)數(shù)生成器的參考依據(jù),對于文件加密和數(shù)據(jù)傳輸?shù)阮I(lǐng)域具有重要的價值。
示例性地,根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法可以在具有存儲器和處理器的設(shè)備、裝置或者系統(tǒng)中實(shí)現(xiàn)。
根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法可以部署在個人終端處,諸如智能電話、平板電腦、個人計算機(jī)等。替代地,根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法還可以部署在服務(wù)器端(或云端)。替代地,根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法還可以分布地部署在服務(wù)器端(或云端)和個人終端處。
下面結(jié)合圖3描述本發(fā)明另一方面提供的評估隨機(jī)數(shù)生成器質(zhì)量的裝置。圖3示出了根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的裝置300的示意性框圖。
如圖3所示,根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的裝置300包括神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊310、隨機(jī)數(shù)預(yù)測模塊320以及質(zhì)量判定模塊330。所述各個模塊可分別執(zhí)行上文中結(jié)合圖2描述的評估隨機(jī)數(shù)生成器質(zhì)量的方法的各個步驟/功能。以下僅對評估隨機(jī)數(shù)生成器質(zhì)量的裝置300的各單元的主要功能進(jìn)行描述,而省略以上已經(jīng)描述過的細(xì)節(jié)內(nèi)容。
神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊310用于將待評估的隨機(jī)數(shù)生成器產(chǎn)生的多個隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)序列輸入至循環(huán)神經(jīng)網(wǎng)絡(luò),以對所述循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。隨機(jī)數(shù)預(yù)測模塊320用于利用訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)對所述多個隨機(jī)數(shù)序列中除所述部分隨機(jī)數(shù)序列以外的其余隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)進(jìn)行預(yù)測。質(zhì)量判定模塊330用于根據(jù)所述隨機(jī)數(shù)預(yù)測模塊的預(yù)測結(jié)果判定所述隨機(jī)數(shù)生成器的質(zhì)量。神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊310、隨機(jī)數(shù)預(yù)測模塊320以及質(zhì)量判定模塊330均可以由圖1所示的電子設(shè)備中的處理器102運(yùn)行存儲裝置104中存儲的程序指令來實(shí)現(xiàn)。
在一個實(shí)施例中,假設(shè)待評估的隨機(jī)數(shù)生成器為G。隨機(jī)數(shù)生成器G所產(chǎn)生的隨機(jī)數(shù)為偽隨機(jī)數(shù),但按照行業(yè)慣例,下文中還是稱為隨機(jī)數(shù)。隨機(jī)數(shù)生成器G所產(chǎn)生的隨機(jī)數(shù)可以是隨機(jī)整數(shù),也可以是浮點(diǎn)數(shù)。為了簡單,下面以隨機(jī)整數(shù)為例來描述。。
在一個示例中,隨機(jī)數(shù)生成器G所產(chǎn)生的隨機(jī)數(shù)的取值范圍為[0,M]。示例性地,M為正整數(shù),例如M的取值可以為32767、65535或其他任何合適的數(shù)值。每次調(diào)用G,會得到一個位于區(qū)間[0,M]內(nèi)的隨機(jī)數(shù);連續(xù)多次調(diào)用G,則會得到一個隨機(jī)數(shù)序列。因此,可以通過調(diào)用G,構(gòu)造多個隨機(jī)數(shù)序列。
應(yīng)了解,本發(fā)明不受具體采用的隨機(jī)數(shù)生成器的限制,無論是現(xiàn)有的隨機(jī)數(shù)生成器還是將來開發(fā)的隨機(jī)數(shù)生成器,都可以應(yīng)用于根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的裝置中,并且也應(yīng)包括在本發(fā)明的保護(hù)范圍內(nèi)。
如上所述,神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊310可以采用隨機(jī)數(shù)生成器為G所產(chǎn)生的多個隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)序列用于對循環(huán)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,而隨機(jī)數(shù)生成器為G所產(chǎn)生的多個隨機(jī)數(shù)序列中除該部分隨機(jī)數(shù)序列以外的其他隨機(jī)數(shù)序列用于由隨機(jī)數(shù)預(yù)測模塊320采用用于對隨機(jī)數(shù)進(jìn)行預(yù)測。
在一個示例中,可以利用待評估的隨機(jī)數(shù)生成器產(chǎn)生兩組隨機(jī)數(shù)序列,每組隨機(jī)數(shù)序列包括一定數(shù)目的隨機(jī)數(shù)序列。對于這兩組隨機(jī)數(shù)序列,其中的一組隨機(jī)數(shù)序列(即前述的多個隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)序列)可以由神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊310使用,以用于對循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,另一組隨機(jī)數(shù)序列(即多個隨機(jī)數(shù)序列中除所述部分隨機(jī)數(shù)序列以外的其余隨機(jī)數(shù)序列)可以由隨機(jī)數(shù)預(yù)測模塊320采用,以用于對隨機(jī)數(shù)進(jìn)行預(yù)測。
在一個示例中,用于訓(xùn)練循環(huán)神經(jīng)網(wǎng)絡(luò)的隨機(jī)數(shù)序列的個數(shù)可以大于用于后續(xù)預(yù)測的隨機(jī)數(shù)序列的個數(shù),這樣,采用更多的隨機(jī)數(shù)序列進(jìn)行訓(xùn)練可提高所訓(xùn)練出的模型的精確度。此外,用于訓(xùn)練循環(huán)神經(jīng)網(wǎng)絡(luò)的隨機(jī)數(shù)序列的具體個數(shù)可以結(jié)合訓(xùn)練需要、計算復(fù)雜度、計算性能等各種因素而設(shè)置,用于后續(xù)預(yù)測的隨機(jī)數(shù)序列的個數(shù)可以根據(jù)對隨機(jī)數(shù)生成器的質(zhì)量評估精度需求等因素而設(shè)置,本發(fā)明對這兩部分隨機(jī)數(shù)序列的具體個數(shù)不作限定,也不限定這兩者之間的關(guān)系。
接著上面的示例,可以通過調(diào)用待評估的隨機(jī)數(shù)生成器G產(chǎn)生第一組隨機(jī)數(shù)序列S1,有其中T1為S1中隨機(jī)數(shù)序列的數(shù)目。在一個示例中,T1的典型值為106。在其他示例中,T1也可以選取其他合適的值。Χm,m∈[1,T1]代表該組隨機(jī)數(shù)序列S1中的一個隨機(jī)數(shù)序列。L(Χm)為隨機(jī)數(shù)序列Χm的序列長度,即隨機(jī)數(shù)序列Χm中所包括的隨機(jī)數(shù)的個數(shù)。在一個示例中,L(Χm)可以與待評估的隨機(jī)數(shù)生成器G產(chǎn)生的隨機(jī)數(shù)的取值范圍相關(guān)。例如,L(Χm)是區(qū)間內(nèi)的隨機(jī)整數(shù),其中符號代表下取整操作。在其他示例中,L(Χm)也可以取任何其他合適的值。
同樣地,可以通過調(diào)用待評估的隨機(jī)數(shù)生成器G產(chǎn)生第二組隨機(jī)數(shù)序列S2,有S2={Y1,Y2,...,YT2},其中T2為S2中隨機(jī)數(shù)序列的數(shù)目。例如,T2的典型值為105。在其他示例中,T2也可以選取其他合適的值。Yn,n∈[1,T2]代表該組隨機(jī)數(shù)序列S2中的一個隨機(jī)數(shù)序列。L(Yn)為隨機(jī)數(shù)序列Yn的序列長度,即隨機(jī)數(shù)序列Yn中所包括的隨機(jī)數(shù)的個數(shù)。在一個示例中,L(Yn)可以與待評估的隨機(jī)數(shù)生成器G產(chǎn)生的隨機(jī)數(shù)的取值范圍相關(guān)。例如,L(Yn)是區(qū)間內(nèi)的隨機(jī)整數(shù),其中符號代表下取整操作。在其他示例中,L(Yn)也可以取任何其他合適的值。
如上所述,神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊310可以將上述第一組隨機(jī)數(shù)序列S1輸入至循環(huán)神經(jīng)網(wǎng)絡(luò),以對所述循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。其中,對循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練可以包括對循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計、以及對設(shè)計好的循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。下面示例性地描述循環(huán)神經(jīng)網(wǎng)絡(luò)的設(shè)計和訓(xùn)練過程。
在一個示例中,首先設(shè)計循環(huán)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。示例性地,循環(huán)神經(jīng)網(wǎng)絡(luò)可以包括若干數(shù)目的網(wǎng)絡(luò)層數(shù)(例如4層或其他合適數(shù)目的網(wǎng)絡(luò)層)。示例性地,循環(huán)神經(jīng)網(wǎng)絡(luò)可以采用長短時記憶(Long-Short Term Memory,LSTM)作為基本單元。在一個示例中,循環(huán)神經(jīng)網(wǎng)絡(luò)可包括一定數(shù)目的隱含層節(jié)點(diǎn)(例如512或其他合適數(shù)目)。此外,在一個示例中,為了防止模型過擬合,可對于每一隱含層可執(zhí)行一定概率(例如0.5或其他合適的概率)的丟棄(dropout)操作。上面僅示例性地描述了循環(huán)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),還可以采用任何其他合適的結(jié)構(gòu)。
然后,將上述第一組隨機(jī)數(shù)序列S1輸入至設(shè)計好的循環(huán)神經(jīng)網(wǎng)絡(luò)。在訓(xùn)練過程中,示例性地,每一次迭代時從S1中隨機(jī)選取一個序列送入循環(huán)神經(jīng)網(wǎng)絡(luò),示例性地,訓(xùn)練過程迭代次2T1后終止,最終得到模型R。
利用訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò),隨機(jī)數(shù)預(yù)測模塊320對上述多個隨機(jī)數(shù)序列中除所述部分隨機(jī)數(shù)序列以外的其余隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)進(jìn)行預(yù)測。在一個實(shí)施例中,隨機(jī)數(shù)預(yù)測模塊320可以進(jìn)一步用于:對于所述其余隨機(jī)數(shù)序列中的每一個隨機(jī)數(shù)序列:將該隨機(jī)數(shù)序列中的前N-1個隨機(jī)數(shù)輸入至所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò),其中N為該隨機(jī)數(shù)序列中隨機(jī)數(shù)的數(shù)目,且N為大于1的自然數(shù);以及基于所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測該隨機(jī)數(shù)序列中的最后一個隨機(jī)數(shù)。
例如,接著上面的示例,隨機(jī)數(shù)預(yù)測模塊320可以利用訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)對上述第二組隨機(jī)數(shù)序列S2中的部分隨機(jī)數(shù)進(jìn)行預(yù)測。示例性地,隨機(jī)數(shù)預(yù)測模塊320進(jìn)行的預(yù)測過程可以包括:對于S2中的每一個隨機(jī)數(shù)序列Yn,n∈[1,T2],將隨機(jī)數(shù)序列Yn中的前L(Yn)-1個隨機(jī)數(shù)依次輸入訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)模型R中,基于訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測隨機(jī)數(shù)序列Yn中的最后一個隨機(jī)數(shù)。例如,經(jīng)過預(yù)測,得到預(yù)測的結(jié)果pn,pn即為循環(huán)神經(jīng)網(wǎng)絡(luò)模型R所預(yù)測的、隨機(jī)數(shù)序列Yn中的最后一個隨機(jī)數(shù)的最有可能的結(jié)果。
在該實(shí)施例中,隨機(jī)數(shù)預(yù)測模塊320基于隨機(jī)數(shù)序列中除最后一個隨機(jī)數(shù)以外的所有隨機(jī)數(shù)來預(yù)測最后一個隨機(jī)數(shù),實(shí)現(xiàn)簡單,易于統(tǒng)計結(jié)果,使得后面質(zhì)量判定模塊330的操作也更為簡單,且結(jié)果可靠。當(dāng)然,隨機(jī)數(shù)預(yù)測模塊320所進(jìn)行的預(yù)測也可以采用其他的方式,本發(fā)明不限定具體輸入到訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)的隨機(jī)數(shù)的個數(shù)和需要預(yù)測的隨機(jī)數(shù)的個數(shù),也不限定它們兩者之間的關(guān)系。
質(zhì)量判定模塊330根據(jù)隨機(jī)數(shù)預(yù)測模塊320預(yù)測的結(jié)果判定所述隨機(jī)數(shù)生成器的質(zhì)量。在一個實(shí)施例中,質(zhì)量判定模塊330可以進(jìn)一步用于:對于所述其余隨機(jī)數(shù)序列中的每一個隨機(jī)數(shù)序列,確定所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)對該隨機(jī)數(shù)序列中需預(yù)測的隨機(jī)數(shù)的預(yù)測結(jié)果是否錯誤;以及基于所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測錯誤的次數(shù)和所述其余隨機(jī)數(shù)序列的個數(shù)計算所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測的錯誤率,以作為所述隨機(jī)數(shù)生成器的質(zhì)量評估結(jié)果。
例如,接著上面的示例,質(zhì)量判定模塊330對于S2中的每一個隨機(jī)數(shù)序列Yn,可以將模型R所預(yù)測的結(jié)果pn與Yn中的最后一個隨機(jī)數(shù)進(jìn)行比對,若二者相等,則確定為預(yù)測正確,否則確定為預(yù)測錯誤。然后質(zhì)量判定模塊330統(tǒng)計對于T2個隨機(jī)數(shù)序列,模型R預(yù)測錯誤的次數(shù)E,可計算模型預(yù)測錯誤的概率δ'=E/T2,該錯誤率可以作為隨機(jī)數(shù)生成器G的質(zhì)量評估結(jié)果。
類似地,質(zhì)量判定模塊330也可以統(tǒng)計對于T2個隨機(jī)數(shù)序列,模型R預(yù)測正確的次數(shù)C,則模型R預(yù)測正確的概率為δ=C/T2,可將隨機(jī)數(shù)生成器G的質(zhì)量定義為:Ψ(G)=1-δ,則質(zhì)量判定模塊330可將Ψ(G)返回,作為隨機(jī)數(shù)生成器G的質(zhì)量評估結(jié)果。
如上所述,隨機(jī)數(shù)預(yù)測模塊320所進(jìn)行的預(yù)測也可以采用其他的方式,基于隨機(jī)數(shù)預(yù)測模塊320所采用的預(yù)測方式的不同,質(zhì)量判定模塊330可以采用相應(yīng)的方式來判定隨機(jī)數(shù)生成器的質(zhì)量,本發(fā)明也不限定質(zhì)量判定模塊330根據(jù)預(yù)測結(jié)果判定隨機(jī)數(shù)生成器的質(zhì)量的具體方式??傊绻h(huán)神經(jīng)網(wǎng)絡(luò)可以以較高的概率根據(jù)已知序列預(yù)測接下來的隨機(jī)數(shù),則說明隨機(jī)數(shù)生成器的質(zhì)量較低;反之,則說明隨機(jī)數(shù)生成器的質(zhì)量較高。
基于上面的描述,根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的裝置基于循環(huán)神經(jīng)網(wǎng)絡(luò)對隨機(jī)數(shù)生成器所產(chǎn)生的隨機(jī)數(shù)序列的相關(guān)性進(jìn)行建模,從而可以利用循環(huán)神經(jīng)網(wǎng)絡(luò)對隨機(jī)數(shù)序列的相關(guān)性進(jìn)行估計,實(shí)現(xiàn)客觀、有效地評估隨機(jī)數(shù)生成器的質(zhì)量,不僅精度高,而且可擴(kuò)展性強(qiáng),能夠作為比較、選取和設(shè)計隨機(jī)數(shù)生成器的參考依據(jù),對于文件加密和數(shù)據(jù)傳輸?shù)阮I(lǐng)域具有重要的價值。
圖4示出了根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的系統(tǒng)400的示意性框圖。評估隨機(jī)數(shù)生成器質(zhì)量的系統(tǒng)400包括存儲裝置410以及處理器420。
其中,存儲裝置410存儲用于實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法中的相應(yīng)步驟的程序代碼。處理器420用于運(yùn)行存儲裝置410中存儲的程序代碼,以執(zhí)行根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法的相應(yīng)步驟,并且用于實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的裝置中的相應(yīng)模塊。
在一個實(shí)施例中,在所述程序代碼被處理器420運(yùn)行時使得評估隨機(jī)數(shù)生成器質(zhì)量的系統(tǒng)400執(zhí)行以下步驟:利用待評估的隨機(jī)數(shù)生成器產(chǎn)生多個隨機(jī)數(shù)序列;將所述多個隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)序列輸入至循環(huán)神經(jīng)網(wǎng)絡(luò),以對所述循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練;利用訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)對所述多個隨機(jī)數(shù)序列中除所述部分隨機(jī)數(shù)序列以外的其余隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)進(jìn)行預(yù)測;以及根據(jù)所述預(yù)測的結(jié)果判定所述隨機(jī)數(shù)生成器的質(zhì)量。
在一個示例中,所述利用訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)對所述多個隨機(jī)數(shù)序列中除所述部分隨機(jī)數(shù)序列以外的其余隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)進(jìn)行預(yù)測包括:對于所述其余隨機(jī)數(shù)序列中的每一個隨機(jī)數(shù)序列:將該隨機(jī)數(shù)序列中的前N-1個隨機(jī)數(shù)輸入至所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò),其中N為該隨機(jī)數(shù)序列中隨機(jī)數(shù)的數(shù)目,且N為大于1的自然數(shù);以及基于所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測該隨機(jī)數(shù)序列中的最后一個隨機(jī)數(shù)。
在一個示例中,所述根據(jù)所述預(yù)測的結(jié)果判定所述隨機(jī)數(shù)生成器的質(zhì)量包括:對于所述其余隨機(jī)數(shù)序列中的每一個隨機(jī)數(shù)序列,確定所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)對該隨機(jī)數(shù)序列中需預(yù)測的隨機(jī)數(shù)的預(yù)測結(jié)果是否錯誤;以及基于所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測錯誤的次數(shù)和所述其余隨機(jī)數(shù)序列的個數(shù)計算所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測的錯誤率,以作為所述隨機(jī)數(shù)生成器的質(zhì)量評估結(jié)果。
在一個示例中,所述待評估的隨機(jī)數(shù)生成器產(chǎn)生的多個隨機(jī)數(shù)序列各自的序列長度不同。
在一個示例中,所述部分隨機(jī)數(shù)序列的個數(shù)大于所述其余隨機(jī)數(shù)序列的個數(shù)。
在一個示例中,所述循環(huán)神經(jīng)網(wǎng)絡(luò)為長短時記憶網(wǎng)絡(luò)。
此外,根據(jù)本發(fā)明實(shí)施例,還提供了一種存儲介質(zhì),在所述存儲介質(zhì)上存儲了程序指令,在所述程序指令被計算機(jī)或處理器運(yùn)行時用于執(zhí)行本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法的相應(yīng)步驟,并且用于實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的裝置中的相應(yīng)模塊。所述存儲介質(zhì)例如可以包括智能電話的存儲卡、平板電腦的存儲部件、個人計算機(jī)的硬盤、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPROM)、便攜式緊致盤只讀存儲器(CD-ROM)、USB存儲器、或者上述存儲介質(zhì)的任意組合。所述計算機(jī)可讀存儲介質(zhì)可以是一個或多個計算機(jī)可讀存儲介質(zhì)的任意組合,例如一個計算機(jī)可讀存儲介質(zhì)包含產(chǎn)生隨機(jī)數(shù)序列的計算機(jī)可讀的程序代碼,另一個計算機(jī)可讀存儲介質(zhì)包含訓(xùn)練循環(huán)神經(jīng)網(wǎng)絡(luò)的計算機(jī)可讀的程序代碼,又一個計算機(jī)可讀存儲介質(zhì)包含預(yù)測隨機(jī)數(shù)的計算機(jī)可讀的程序代碼,再一個計算機(jī)可讀存儲介質(zhì)包含判定隨機(jī)數(shù)生成器質(zhì)量的計算機(jī)可讀的程序代碼。
在一個實(shí)施例中,所述計算機(jī)程序指令在被計算機(jī)運(yùn)行時可以實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的裝置的各個功能模塊,并且/或者可以執(zhí)行根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法。
在一個實(shí)施例中,所述計算機(jī)程序指令在被計算機(jī)或處理器運(yùn)行時使計算機(jī)或處理器執(zhí)行以下步驟:利用待評估的隨機(jī)數(shù)生成器產(chǎn)生多個隨機(jī)數(shù)序列;將所述多個隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)序列輸入至循環(huán)神經(jīng)網(wǎng)絡(luò),以對所述循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練;利用訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)對所述多個隨機(jī)數(shù)序列中除所述部分隨機(jī)數(shù)序列以外的其余隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)進(jìn)行預(yù)測;以及根據(jù)所述預(yù)測的結(jié)果判定所述隨機(jī)數(shù)生成器的質(zhì)量。
在一個示例中,所述利用訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)對所述多個隨機(jī)數(shù)序列中除所述部分隨機(jī)數(shù)序列以外的其余隨機(jī)數(shù)序列中的部分隨機(jī)數(shù)進(jìn)行預(yù)測包括:對于所述其余隨機(jī)數(shù)序列中的每一個隨機(jī)數(shù)序列:將該隨機(jī)數(shù)序列中的前N-1個隨機(jī)數(shù)輸入至所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò),其中N為該隨機(jī)數(shù)序列中隨機(jī)數(shù)的數(shù)目,且N為大于1的自然數(shù);以及基于所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測該隨機(jī)數(shù)序列中的最后一個隨機(jī)數(shù)。
在一個示例中,所述根據(jù)所述預(yù)測的結(jié)果判定所述隨機(jī)數(shù)生成器的質(zhì)量包括:對于所述其余隨機(jī)數(shù)序列中的每一個隨機(jī)數(shù)序列,確定所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)對該隨機(jī)數(shù)序列中需預(yù)測的隨機(jī)數(shù)的預(yù)測結(jié)果是否錯誤;以及基于所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測錯誤的次數(shù)和所述其余隨機(jī)數(shù)序列的個數(shù)計算所述訓(xùn)練好的循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測的錯誤率,以作為所述隨機(jī)數(shù)生成器的質(zhì)量評估結(jié)果。
在一個示例中,所述待評估的隨機(jī)數(shù)生成器產(chǎn)生的多個隨機(jī)數(shù)序列各自的序列長度不同。
在一個示例中,所述部分隨機(jī)數(shù)序列的個數(shù)大于所述其余隨機(jī)數(shù)序列的個數(shù)。
在一個示例中,所述循環(huán)神經(jīng)網(wǎng)絡(luò)為長短時記憶網(wǎng)絡(luò)。
根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的裝置中的各模塊可以通過實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法和裝置的示例電子設(shè)備的處理器運(yùn)行在存儲器中存儲的計算機(jī)程序指令來實(shí)現(xiàn),或者可以在根據(jù)本發(fā)明實(shí)施例的計算機(jī)程序產(chǎn)品的計算機(jī)可讀存儲介質(zhì)中存儲的計算機(jī)指令被計算機(jī)運(yùn)行時實(shí)現(xiàn)。
根據(jù)本發(fā)明實(shí)施例的評估隨機(jī)數(shù)生成器質(zhì)量的方法、裝置、系統(tǒng)以及存儲介質(zhì)基于循環(huán)神經(jīng)網(wǎng)絡(luò)對隨機(jī)數(shù)生成器所產(chǎn)生的隨機(jī)數(shù)序列的相關(guān)性進(jìn)行建模,從而可以利用循環(huán)神經(jīng)網(wǎng)絡(luò)對隨機(jī)數(shù)序列的相關(guān)性進(jìn)行估計,實(shí)現(xiàn)客觀、有效地評估隨機(jī)數(shù)生成器的質(zhì)量,不僅精度高,而且可擴(kuò)展性強(qiáng),能夠作為比較、選取和設(shè)計隨機(jī)數(shù)生成器的參考依據(jù),對于文件加密和數(shù)據(jù)傳輸?shù)阮I(lǐng)域具有重要的價值。
盡管這里已經(jīng)參考附圖描述了示例實(shí)施例,應(yīng)理解上述示例實(shí)施例僅僅是示例性的,并且不意圖將本發(fā)明的范圍限制于此。本領(lǐng)域普通技術(shù)人員可以在其中進(jìn)行各種改變和修改,而不偏離本發(fā)明的范圍和精神。所有這些改變和修改意在被包括在所附權(quán)利要求所要求的本發(fā)明的范圍之內(nèi)。
本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機(jī)軟件和電子硬件的結(jié)合來實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
在本申請所提供的幾個實(shí)施例中,應(yīng)該理解到,所揭露的設(shè)備和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的設(shè)備實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個設(shè)備,或一些特征可以忽略,或不執(zhí)行。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本發(fā)明并幫助理解各個發(fā)明方面中的一個或多個,在對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該本發(fā)明的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如相應(yīng)的權(quán)利要求書所反映的那樣,其發(fā)明點(diǎn)在于可以用少于某個公開的單個實(shí)施例的所有特征的特征來解決相應(yīng)的技術(shù)問題。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域的技術(shù)人員可以理解,除了特征之間相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個或者多個處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的物品分析設(shè)備中的一些模塊的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的裝置程序(例如,計算機(jī)程序和計算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲在計算機(jī)可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
以上所述,僅為本發(fā)明的具體實(shí)施方式或?qū)唧w實(shí)施方式的說明,本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。