本公開總體上涉及數據加密,具體地講,涉及用于生成偽隨機數并且用于偽裝信息以防止邊信道中的泄露的改進系統和方法,所述偽隨機數可用作加密密鑰、可微調密碼的微調值(tweakvalue)、用于加密的多樣化的臨時數(nonce)以及消息認證碼。
背景技術:
航空業極大地依賴于關鍵信息技術(it)基礎設施的可靠運行。像許多其它行業一樣,航空業遇到的挑戰在于為這樣的it基礎設施提供足夠的安全性以及減輕任何網絡事件的影響。網絡事件的示例包括危及或者試圖危及飛機的網絡(包括其數據連接、數據傳輸和計算系統)的操作的惡意或可疑事件。
許多科學、工程和it安全應用需要大量看起來隨機的數,其無法通過標準統計檢驗來與真隨機相區分。通常,如果所述數通過在微處理器上的軟件中或者專用電子硬件中執行的算法來生成,則它們被稱作偽隨機數。偽隨機數可用在諸如對物理系統進行仿真、對結構數據進行白化以及用于求解數值數學問題的隨機計算的應用中。在it安全應用中,偽隨機數用在諸如臨時數(使用一次的數)、初始值(iv)、數據隱藏和密碼密鑰推導的協議中。
傳統上,偽隨機數在微處理器上生成,生成各個字節花費若干時鐘周期。最快的實際算法在64位處理器上在4…12個時鐘周期中生成8字節(64比特)。在一些應用中,偽隨機數的這一生成時間過長(例如,當在短時間段內需要大量的偽隨機數時)。在一些情況下,電子硬件可被定制設計以加速算法。然而,使用微處理器的這種現有技術的偽隨機數生成器生成低質量(相關的、有偏差的)數,慢,使得該任務占用微處理器,堵塞內存總線,并且消耗大量電力/能源(導致散熱和耗電增加)。
現有技術的偽隨機數生成器的附加缺點在于它們對于邊信道攻擊未加保護,這造成it安全應用中的顯著風險。在正處理數據的電子裝置的操作期間,關于秘密密鑰或敏感數據的一些信息總是在邊信道(非預期信息散播的物理源)中泄露,包括響應時間依賴于數據的變化、電力使用的波動或者超聲或電磁波輻射。這就是為什么當對手無法物理訪問電子裝置時通常可通過密碼手段確保存儲或發送的數據的安全和完整性。
因此,期望的是,具有一種改進的偽隨機數生成器,其在一個時鐘周期中生成許多偽隨機數并且能夠通過減少邊信道泄露來改進安全性,而不會顯著增加處理時間、系統復雜度、電子電路的大小或能源使用。
技術實現要素:
鑒于以上背景技術,本公開的示例實現方式提供一種用于生成偽隨機數的系統和方法,其包括步驟:初始化調用計數器的計數器值;將來自調用計數器的計數器值的比特形式發送至混合函數;以及混合計數器值的比特形式以生成偽隨機數。計數器值按照預定值增加,并且所生成的偽隨機數可用作混合函數的后續循環的輸入值。用于生成偽隨機數的系統和方法還可包括步驟:通過在不超過輸入寄存器的容量的情況下將計數器值整體重復盡可能多次來填充輸入寄存器;以及利用計數器值的單獨的比特填充輸入寄存器的任何剩余未填充的比特。加密的數據可基于所生成的偽隨機數被存儲在存儲裝置的存儲器中。
在本公開的實現方式中,所述混合步驟由混合函數執行。該混合函數通過將輸入的計數器值的比特形式的第一片段與輸出的計數器值的比特形式的第一片段連接來將上述兩個片段映射。所述混合函數是可逆的并且是非線性的,可以是異或(xor)樹混合單元、代換-置換混合單元或雙混合feistel混合單元。所述混合函數可由并行操作的至少兩個函數來執行,來自所述至少兩個混合函數的輸出被異或。偽隨機數還可通過單向函數來處理或者利用密碼散列(hash)函數來散列化,使得單向處理或散列化的結果用作混合函數的后續循環的輸入值。
本文所討論的特征、功能和優點可在各種示例實現方式中獨立地實現,或者可在其它示例實現方式中組合,其進一步的細節可參見以下描述和附圖。
附圖說明
因此在概括地描述了本公開的示例實現方式之后,現在將參照附圖(未必按比例繪制),附圖中:
圖1是根據本公開的示例實現方式的用于混合函數的基于異或樹的密鑰生成器的邏輯圖;
圖2是根據本公開的示例實現方式的用于混合函數的基于代換-置換網絡的密鑰生成器的邏輯圖;
圖3是根據本公開的示例實現方式的用于混合函數的基于雙混合feistel網絡的密鑰生成器的邏輯圖;
圖4是根據本公開的示例實現方式的偽隨機數生成方法的框圖;
圖5是飛機制造和服務方法的框圖;以及
圖6是飛機的示意圖。
具體實施方式
現在將在下面參照附圖更充分地描述本公開的一些實現方式,附圖中示出了本公開的一些而非所有實現方式。實際上,本公開的各種實現方式可按照許多不同的形式來具體實現,不應被解釋為限于本文所闡述的實現方式;相反,提供這些示例實現方式以使得本公開將徹底和完整,并且將向本領域技術人員充分傳達本公開的范圍。例如,除非另外指示,否則將某物稱為第一、第二等不應被解釋為暗指特定順序。另外,某物可被描述為在另一某物上(除非另外指示)可相反在下面,反之亦然;類似地,某物被描述為在另一某物左側可相反在右側,反之亦然。相似的標號始終表示相似的元件。
本公開的示例實現方式將主要結合航空應用來描述。然而,應該理解,示例實現方式可結合各種其它應用(航空業中的應用以及航空業之外的應用二者)來使用。
根據本公開的示例實現方式,使用以復雜和非線性的方式混淆其輸入的混合函數提供一種針對各個時鐘周期生成偽隨機數的改進系統。
偽隨機數生成器(prng)必須利用種子(seed)來初始化。種子是物理隨機數或者用戶提供的值,其使得隨后生成的序列唯一。在利用種子將prng初始化之后,可發出許多請求(調用)。大量調用中的每一個返回不同于先前一個隨機數的偽隨機數。在特定數量的請求(調用)之后,所返回的偽隨機數開始重復。如果重復(概率較低)是可接受的或期望的以模仿真實隨機數的行為,則所生成的偽隨機數可被截斷。如果重復是不可接受的,則進行測量以確保對于預期應用而言周期長度足夠大。可在周期重新開始之前利用新獲取的物理隨機數重新作為prng的種子來防止周期性。
如上所述,根據本公開的示例實現方式的改進的prng使用混合函數。這樣的混合函數依賴于大量的秘密密鑰材料來操作,其可被硬編碼,燒至熔斷器中,或者被存儲在諸如觸發器的易失性存儲器中。秘密密鑰材料可針對裝置家族中的所有裝置被硬編碼,可在特定裝置的初始化時設置,或者在重置時或者應重新設定prng的種子的明確請求來生成。
混合函數類似于密碼,但是它們要快許多。混合函數也不如密碼安全,因為它們的輸入和輸出之間可能存在某種相關性,從而使得它們本身通常不適合于加密操作。然而,當混合函數的輸入或輸出相對于攻擊者被隱藏時,攻擊者無法發動傳統的密碼攻擊或邊信道攻擊。因此,快速的混合函數對于應用秘密密鑰生成其它秘密密鑰的密碼密鑰生成以及生成偽隨機數序列而言是理想的,特別是當這樣的數被內部使用并且相對于竊聽者被隱藏時。
適合于改進的prng中的混合函數具有以下性質:
1)它們將n比特輸入映射至n比特輸出(n=塊大小)。
2)混合取決于大量的秘密密鑰材料,其可從單個短密鑰生成或者通過真實隨機數生成器生成。
3)混合函數是雙射的(可逆的)。
4)每一個輸入比特以非線性方式影響每一個輸出比特。
5)輸入比特的大多數非空集合(從密鑰材料獨立地選擇)也影響所有輸出比特(無影響取消)。
根據本公開的示例實現方式,用于prng的合適的混合函數是異或樹(圖1)、代換-置換網絡(圖2)和雙混合feistel網絡(圖3)。如上所述,混合函數的非線性可通過移位數據或s盒的算術加法來提供,其可退化為(n個)與/或門(2x1比特s盒)。
現在參照關于作為基于異或樹的密鑰生成器的混合函數的圖1,輸入比特a1、a2、a3、a4…選擇對應子密鑰k1、k2、k3、k4…來異或。最終加擾(scramble)操作步驟使得該構造非線性并且可由旋轉加法運算或者一系列非線性s盒操作組成。基于異或樹的密鑰生成器還可包括第二子密鑰集合,并且選擇附加輸入。子密鑰可從幾個基本子密鑰通過包括旋轉、加法或異或的比特操縱運算來生成。
現在參照關于作為基于代換-置換網絡的密鑰生成器的混合函數的圖2,輸入比特從邏輯圖的頂端輸入,輸出取自邏輯圖的底端。子密鑰ki可以是獨立的隨機創建的密鑰,或者從幾個基本子密鑰推導。s1、s2…是s盒,是較小的非線性代換可逆函數。混合網絡的層數可被選擇為全混合深度的至少兩倍(當每一個輸入比特影響每一個輸出比特時),但是可更少,使得電路的總延遲仍不超過時鐘周期。
現在參照關于作為基于雙混合feistel網絡的密鑰生成器的混合函數的圖3,f是非線性的非常難以(或者無法)逆的函數,而g是可逆的。相同電路的多個層級聯。在利用并行操作的電子電路的實現方式中,雙混合feistel網絡的單層的混合性能是傳統feistel網絡的單層的性能的兩倍。[l0,r0]是混合函數的輸入,輸出取自邏輯圖的最后重復的層的底端。混合網絡的層數被選擇為與適合于單個時鐘周期的其總延遲一樣高。
上述混合函數可按照多個操作模式來使用以用于偽隨機數生成,下面描述其示例。
如圖4所示,在計數器模式下,將計數器初始化為(短)種子(方框402),并且將計數器值的比特形式發送給混合函數(方框408)。根據上面參照圖1至圖3描述的混合函數中的一個執行混合以生成偽隨機數(方框410)。每次請求偽隨機數時計數器就增加預定值(方框424),并且計數器使得它的值在溢流時繞回以繼續從0開始計數。在重新設定prng的種子時重置計數器。例如,計數器可以是32比特無符號整數,其允許在重復之前生成40億個唯一的偽隨機數,因為不同的輸入值產生混合函數的不同輸出值。如果需要,可采用更長的計數器,其余輸入比特可被設定為0,或者設定為任何其它恒定比特圖案(可從種子推導)。另外,可使用更短的計數器(例如,20比特),在這種情況下在百萬次調用(220)之后,利用真實隨機值來重新設定prng的種子。
在加擾計數器模式下,使用如上所述的計數器(調用計數器),但是輸入比特被初始化為非恒定的值(方框402)。例如,可采用31比特計數器,其值整體被重復它與輸入寄存器相配那么多次(方框404)。在256比特寬的輸入寄存器的情況下,31比特計數器值可整體被重復8次,因為256/31=8(余數為8)。余數8與計數器值的8個單獨的比特(最低有效位)對應,那些比特被視為被多使用一次以填充剩余輸入寄存器比特的最低有效位(方框406)。在加擾計數器模式下,當計數器值的比特形式被發送給混合函數(方框408),例如用于混合計數器值(方框410)的代換-置換混合函數(圖2)時,優選不是s盒的輸入大小的倍數的計數器寬度,因為計數器比特將被分布于不同s盒的不同輸入位置中。所生成的數的周期與計數器可實現的不同值的數量相同。此加擾計數器模式采用任何期望長度的調用計數器(只要不大于混合函數的輸入大小即可),并且在所生成的數開始表現出周期性之前請求重新設定種子。
在遞歸模式下,混合函數的第一輸入是(長)種子。后續輸入是混合函數的先前輸出。在此示例實現方式中,不需要計數器,但是所生成的偽隨機數的序列中的周期的長度未知。在大多數情況下,周期遠比任何應用所需的周期長(在256比特輸入大小下至少2128次調用)。與計數器模式下相比混合函數的連續輸入值較不相關,這使得混合更徹底。
在混合計數器模式下,調用計數器被初始化(方框402)為(長)種子的最低有效位或者任何固定的比特集合。在偽隨機數生成器的每次調用時計數器增加(方框424),當溢流時繞回0。混合函數(方框410)的第一輸入(方框408)是種子。后續輸入是混合函數的先前輸出(方框420),不同的是通過將指定的輸入比特改變為計數器值來修改它們。這確保了所生成的偽隨機數的序列中的周期的長度至少與計數器模式下一樣長,大多數時間長許多。與遞歸模式一樣,除了復制過來的計數器比特的短序列之外,混合函數的連續輸入值看起來不相關。這在保證最小周期長度的情況下使得混合非常徹底。此混合計數器模式可采用任何期望長度(不大于輸入大小即可)的調用計數器,并且可在所生成的數可能開始表現出周期性之前請求重新設定種子。
在所有情況下當適用時,調用計數器可增加較大的恒定奇數值(預定或者從種子生成)(方框424)。與增加1相比,這使得連續的計數器值較不相關。所生成的偽隨機數可用于方便加密的數據在存儲器中的存儲(方框422),例如加密密鑰、微調值、臨時數和初始值。
除了密鑰材料之外,包含如本文所述的混合函數的prng使得關于其內部狀態(計數器和混合函數的輸出)的一些信息公開。安全性依賴于此密鑰材料的保護。如果對手發現此密鑰材料,則對手可逆推混合函數調用,找出先前生成的隨機數以及將在未來生成的數。在本公開的另外的實現方式中,提供具有后向保密性的prng版本,其中,prng的輸出通過單向函數來處理或者利用密碼散列函數來散列化(方框416),返回結果(方框418),代替混合函數的未經處理的輸出。并行工作的多個混合函數(方框412)(其輸出一起異或)(方框414)也可用作超快單向函數。此構造是單向(難以逆),因為各個混合函數的輸出無法從其總體輸出的異或值來重構。此構造仍比任何現有技術的解決方案快若干數量級,因為在兩個時鐘周期中,可生成數千偽隨機比特。本發明的具有后向保密性的另一另選實現方式通過利用并行工作并且其輸出被異或的多個不同的混合函數代替所述混合函數來實現。此聚合混合函數即使知道密鑰材料也無法容易地逆推,運行時間僅是上述散列構造的一半,即,通常為一個時鐘周期。
使用如上所述包含混合函數的prng存在多個優點,包括:在典型的計算裝置中在單個時鐘周期中生成例如32字節(256比特)的非常快速的操作;一次生成數百或數千隨機比特;高度并行處理,這掩蓋了邊信道泄露;通過采用非線性比特混合生成高質量的偽隨機數;通過簡單地供應真實隨機比特作為密鑰材料以及作為初始計數器值(如果適用的話)來容易地重新設定種子;使用容易地個性化并且易于多樣化或應請求重置的大量的秘密密鑰材料,這使得易于確保沒有兩個部署是相同的;以及支持使用固定輸入和固定密鑰材料來生成可預測的比特序列(有利于測試)。另外,與現有技術的prng相比,本公開的prng將處理器解放出來以用于其它任務并且降低了能耗。本公開的prng的示例應用包括飛行中計算機、軍事和太空程序、公司網絡、個人和膝上型計算機、智能移動裝置和安全通信網絡中的密碼函數。非安全相關應用也可受益于快速和高質量的偽隨機數,例如對物理系統進行仿真以及執行隨機化計算或monte-carlo計算。
根據本公開的示例實現方式,本公開的改進prng的各種部件可單獨地或者在一個或更多個計算機程序代碼指令、程序指令或者來自計算機可讀存儲介質的可執行計算機可讀程序代碼指令的指導下通過包括硬件的各種手段來實現。
在一個示例中,可提供一個或更多個設備,其可被配置為用作或者說實現本文所示出和描述的prng和各個元件。在涉及不止一個設備的示例中,各個設備可按照多種不同方式(例如,經由有線或無線網絡等直接或間接)彼此連接或者彼此通信。
通常,如上所述,本公開的prng的示例性實現方式的設備可包括諸如連接至存儲器(例如,存儲裝置)的處理器(例如,處理器單元)的多個部件中的一個或更多個。處理器通常是能夠處理例如數據、計算機可讀程序代碼、指令等(通常,“計算機程序”,例如軟件、固件等)的信息和/或其它合適的電子信息的任何硬件。更具體地講,例如,處理器可被配置為執行可存儲在該處理器上或者說存儲在(相同或另一設備的)存儲器中的計算機程序。根據具體實現方式,處理器可以是多個處理器、多處理器核心或者一些其它類型的處理器。另外,處理器可利用多個異構處理器系統來實現,其中主處理器與一個或更多個輔處理器存在于單個芯片上。作為另一例示示例,處理器可以是包含相同類型的多個處理器的對稱多處理器系統。在另一示例中,處理器可被具體實現為或者說包括一個或更多個專用集成電路(asic)、現場可編程門陣列(fpga)等。因此,盡管處理器能夠執行計算機程序以執行一個或更多個功能,各種示例的處理器能夠在沒有計算機程序的幫助下執行一個或更多個功能。
存儲器通常是能夠以臨時和/或持久方式存儲例如數據、計算機程序和/或其它合適的信息的任何硬件。存儲器可包括易失性和/或非易失性存儲器,并且可以是固定的或可移除的。合適的存儲器的示例包括隨機存取存儲器(ram)、只讀存儲器(rom)、硬盤驅動器、閃速存儲器、拇指驅動器、可移除計算機磁碟、光盤、磁帶或者上述項的一些組合。光盤可包括緊湊盤-只讀存儲器(cd-rom)、緊湊盤-讀/寫(cd-r/w)、dvd等。在各種情況下,存儲器可被稱作計算機可讀存儲介質,其作為能夠存儲信息的非暫時性裝置,可與能夠將信息從一個地方輸送至另一地方的諸如電子瞬時信號的計算機可讀傳輸介質相區別。如本文所述的計算機可讀介質通常可表示計算機可讀存儲介質或者計算機可讀傳輸介質。
除了存儲器以外,處理器還可連接至一個或更多個接口以用于顯示、發送和/或接收信息。所述接口可包括通信接口(例如,通信單元)和/或一個或更多個用戶接口。通信接口可被配置為例如向其它設備、網絡等發送信息和/或從其它設備、網絡等接收信息。通信接口可被配置為通過物理(有線)和/或無線通信鏈路來發送和/或接收信息。合適的通信接口的示例包括網絡接口控制器(nic)、無線nic(wnic)等。
用戶接口可包括顯示器和/或一個或更多個用戶輸入接口(例如,輸入/輸出單元)。顯示器可被配置為向用戶呈現或者說顯示信息,其合適的示例包括液晶顯示器(lcd)、發光二極管顯示器(led)、等離子體顯示面板(pdp)等。用戶輸入接口可以是有線的或無線的,并且可被配置為從用戶接收向設備中的信息以用于例如處理、存儲和/或顯示。用戶輸入接口的合適示例包括麥克風、圖像或視頻捕獲裝置、鍵盤或鍵區、操縱桿、觸敏表面(與觸摸屏分離或集成到觸摸屏中)、生物傳感器等。用戶接口還可包括用于與諸如打印機、掃描儀等的外設通信的一個或更多個接口。
如上所述,程序代碼指令可被存儲在存儲器中并由處理器執行,以實現prng的功能。將理解,任何合適的程序代碼指令可從計算機可讀存儲介質被加載到計算機或其它可編程設備上以生成特定機器,使得該特定機器成為實現本文所指定的功能的手段。這些程序代碼指令還可被存儲在計算機可讀存儲介質中,其可指導計算機、處理器或其它可編程設備以特定方式起作用,從而生成特定機器或特定制品。存儲在計算機可讀存儲介質中的指令可生成制品,其中所述制品成為實現本文所描述的功能的手段。程序代碼指令可從計算機可讀存儲介質檢索并且被加載到計算機、處理器或其它可編程設備中以配置所述計算機、處理器或其它可編程設備執行要在所述計算機、處理器或其它可編程設備上或由其執行的操作。
程序代碼指令的檢索、加載和執行可順序地執行,使得一次檢索、加載和執行一個指令。在一些示例實現方式中,檢索、加載和/或執行可并行地執行,使得一次一起檢索、加載和/或執行多個指令。程序代碼指令的執行可生成計算機實現的處理,使得由計算機、處理器或其它可編程設備執行的指令提供用于實現本文所描述的功能的操作。
處理器對指令的執行或者指令在計算機可讀存儲介質中的存儲支持用于執行所指定的功能的操作的組合。還將理解,一個或更多個功能和功能的組合可通過執行所指定的功能的基于專用硬件的計算機系統和/或處理器、或者專用硬件和程序代碼指令的組合來實現。
如上面所引用,可在飛機制造和服務的背景下描述本公開的示例。如圖5和圖6所示,在制造前,例示方法500可包括飛機602的規格和設計(方框502)以及材料采購(方框504)。在生產期間,可進行飛機602的部件和分總成制造(方框506)以及系統集成(方框508)。隨后,飛機602可經受認證和配送(方框510)以投入使用(方框512)。在投入使用的同時,可為飛機602安排例行維修和保養(方框514)。例行維護和服務可包括飛機602的一個或更多個系統的修改、重新配置、改造等。
例示方法500的各個處理可由系統集成商、第三方和/或運營商(例如,顧客)來執行或完成。為了進行描述,系統集成商可包括(但不限于)任何數量的飛機制造商和主系統分包商;第三方可包括(但不限于)任何數量的賣方、分包商和供應商;運營商可以是航空公司、租賃公司、軍方實體、服務組織等。
如圖6所示,通過例示方法500制造的飛機602可包括機身612以及多個高級系統600和內飾614。高級系統600的示例包括推進系統604、電氣系統606、液壓系統608和環境系統610中的一個或更多個。可包括任何數量的其它系統。盡管示出了航空航天工業示例,但本文所公開的原理可應用于其它工業,例如汽車工業。因此,除了飛機602之外,本文所公開的原理可應用于其它載具,例如陸地載具、海洋載具、太空載具等。
可在制造和服務方法500的任一個或更多個階段期間采用本文所示出或描述的設備和方法。例如,與部件和分總成制造506對應的部件或分總成可按照與飛機602正在服役期間生產的部件或分總成相似的方式來加工或制造。另外,所述設備、方法或其組合的一個或更多個示例可在生產階段506和508期間(例如)用于加速完成飛機602的組裝或降低飛機602的成本。類似地,所述設備或方法實現的一個或更多個示例或其組合可在(例如,但不限于)飛機602投入使用的同時(例如,維修和保養階段(方框514))使用。
另外,本公開包括根據下列條款的示例:
條款1.一種用于生成偽隨機數的方法,該方法包括以下步驟:初始化調用計數器的計數器值(方框402);將來自所述調用計數器的所述計數器值的比特形式發送至混合函數(方框408);以及混合所述計數器值的所述比特形式以生成偽隨機數(方框410)。
條款2.根據條款1所述的方法,該方法還包括步驟:使所述計數器值按照預定值增加(方框424)。
條款3.根據條款1所述的方法,該方法還包括步驟:使用所述偽隨機數作為所述混合步驟的后續循環的輸入值(方框410)。
條款4.根據條款1所述的方法,該方法還包括步驟:通過在不超過輸入寄存器的容量的情況下將所述計數器值整體重復盡可能多次來填充所述輸入寄存器(方框404);以及利用所述計數器值的單獨的比特填充所述輸入寄存器的任何剩余未填充的比特,直至所述輸入寄存器滿(方框406)。
條款5.根據條款4所述的方法,其中,所述混合步驟(方框410)通過將輸入的所述計數器值的所述比特形式的第一片段與輸出的所述計數器值的所述比特形式的第一片段連接來將上述兩個片段映射。
條款6.根據條款5所述的方法,其中,所述混合步驟(方框410)是可逆的。
條款7.根據條款5所述的方法,其中,所述混合步驟(方框410)是非線性的。
條款8.根據條款5所述的方法,其中,所述混合步驟(方框410)包括選自由異或“xor”樹混合函數、代換-置換混合函數和雙混合feistel混合函數構成的組中的函數。
條款9.根據條款1所述的方法,其中,所述混合步驟(方框410)還包括步驟:在并行混合函數中將所述計數器值混合至少兩次(方框412)并且對所述并行混合函數的輸出進行異或(“xor”)(方框414)。
條款10.根據條款1所述的方法,該方法還包括步驟:通過單向函數來處理所述偽隨機數或者利用密碼散列函數來將所述偽隨機數散列化(方框416);以及使用所述偽隨機數的所述單向處理或者所述偽隨機數的散列化的結果作為所述混合函數的后續循環的輸入值(方框418)。
條款11.根據條款1所述的方法,該方法還包括步驟:使用所述偽隨機數來將加密的數據存儲在存儲器中(方框422)。
條款12.一種用于生成偽隨機數的系統,該系統包括:調用計數器,利用計數器值來初始化(方框402);以及混合函數,將所述計數器值的比特形式混合以生成偽隨機數(方框410)。
條款13.根據條款12所述的系統,其中,所述計數器值按照預定值增加(方框424)。
條款14.根據條款12所述的系統,其中,所述偽隨機數用作所述混合函數的后續循環的輸入值(方框420)。
條款15.根據條款12所述的系統,該系統還包括具有存儲器的存儲裝置,所述存儲器基于所述偽隨機數存儲加密的數據(方框422),所述加密的數據選自由加密密鑰、微調值、臨時數和初始值構成的組中。
條款16.根據條款12所述的系統,其中,所述混合函數(方框410)通過將輸入的所述計數器值的所述比特形式的第一片段與輸出的所述計數器值的所述比特形式的第一片段連接來將上述兩個片段映射。
條款17.根據條款12所述的系統,其中,所述混合函數(方框410)是可逆的。
條款18.根據條款12所述的系統,其中,所述混合函數(方框410)是非線性的。
條款19.根據條款12所述的系統,其中,所述混合函數(方框410)選自由異或樹混合函數、代換-置換混合函數和雙混合feistel混合函數構成的組中。
條款20.根據條款12所述的系統,其中,所述混合函數(方框410)由并行操作的至少兩個混合函數執行(方框412)并且來自所述至少兩個混合函數的輸出被異或(方框414)。
條款21.根據條款12所述的系統,其中:所述偽隨機數通過單向函數來處理或者利用密碼散列函數來散列化(方框416);并且所述偽隨機數的所述單向處理或者所述偽隨機數的散列化的結果用作所述混合函數的后續循環的輸入值(方框418)。
本文中公開了包括各種部件、特征和功能的設備和方法的不同示例。應該理解,本文所公開的設備和方法的各種示例可包括本文所公開的設備和方法的任何其它示例的任何部件、特征和功能(按照任何組合方式),所有這些可能均旨在落入本公開的精神和范圍內。
受益于以上描述和相關附圖中所呈現的教導,本公開所屬領域的技術人員將想到本文所闡述的公開的許多修改和其它實現方式。因此,應當理解,本公開不限于所公開的特定實現方式,修改和其它實現方式旨在包括在所附權利要求書的范圍內。此外,盡管以上描述和相關附圖在元件和/或功能的某些示例組合的背景下描述了示例實現方式,應該理解,在不脫離所附權利要求書的范圍的情況下,可通過另選實現方式提供元件和/或功能的不同組合。在這方面,例如,如所附權利要求中的一些中所闡述的,也可以想到元件和/或功能的與上面明確描述的那些組合不同的組合。盡管本文中采用了特定術語,它們僅在一般描述性意義上使用,而非用于限制。