TW201721407A - 硬體輔助快速僞隨機數値產生 - Google Patents
硬體輔助快速僞隨機數値產生 Download PDFInfo
- Publication number
- TW201721407A TW201721407A TW105131026A TW105131026A TW201721407A TW 201721407 A TW201721407 A TW 201721407A TW 105131026 A TW105131026 A TW 105131026A TW 105131026 A TW105131026 A TW 105131026A TW 201721407 A TW201721407 A TW 201721407A
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- value
- function
- counter
- pseudo
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
- H04L9/0668—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Nonlinear Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Power Engineering (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
一種用於產生偽隨機數值之系統及方法,其係藉由初始化用於一呼叫計數器的一計數器值、從該計數器傳送一逐位元形式的該計數器值至一混合函數、以及混合該計數器值以產生該偽隨機數值。該混合函數可以是一XOR樹、代換-置換、或是雙重混合的Feistel。該偽隨機數值產生器可以藉由混合該呼叫計數器的位元、重複地混合其本身的輸出、或是其之一組合來運作。該計數器係被增量一預設的值。為了提供後向保密,該偽隨機數值係藉由一單向的函數來加以處理、或是利用一密碼的雜湊函數來加以雜湊,並且其結果係被使用作為用於該混合函數的一後續的週期的一輸入值。再者,數個混合函數可以平行地加以運算,其中其輸出是加以XOR運算的。
Description
本揭露內容係大致有關於資料加密,並且尤其是有關於一種改良的用於產生偽隨機數值之系統及方法,該些偽隨機數值可被利用作為加密金鑰、作為用於可微調的密碼之微調(tweak)值、作為用於加密及訊息認證碼的多樣化之亂數(nonce)、以及用於遮蔽資訊以避免在側頻道中的洩漏。
航空產業係大量地依賴重要的資訊技術(IT)基礎結構之可靠的運作。像是許多其它的產業,航空產業的挑戰是在於提供此種IT基礎結構足夠的安全性以及減輕任何網路事件的影響。網路事件的例子係包含危害、或是嘗試危害飛機的網路的包含其資料連線、資料傳送、以及計算系統的操作之惡意或可疑的事件。
許多科學、工程以及IT安全性應用程式都需要大量看起來是隨機的數值,其並無法藉由標準的統計測試而與真正的隨機區隔開。一般而言,若該些數值是藉由一演算法而被產生,其中該演算法係在一微處理器上用軟體、或是用專門的電子硬體來加以執行,則它們係被稱為偽隨機數值。偽隨機數值在例如是模擬物理系統、白化結構的資料、以及用於解出數值的數學問題的隨機化的計算之應用中是有用的。在IT安全性應用
中,偽隨機數值係被使用在例如是亂數(一次使用的數值)、初始值(IV)、資料隱藏、以及密碼的金鑰推衍之協定中。
傳統上,偽隨機數值已經在微處理器上加以產生,對於每一個待被產生的位元組而言,其係花費數個時脈週期。最快的實際演算法係在64位元處理器上,在4到12個時脈週期內產生8個位元組(64位元)。在某些應用中,此用於偽隨機數值的產生時間是過長的,例如是在短的時間期間內需要大量的偽隨機數值時。在某些實例中,電子硬體可以被客製化設計以加速該演算法。然而,此種習知技術的納入一微處理器的使用的偽隨機數值產生器係產生低品質的(相關的、偏差的)數值、是緩慢的、使得該微處理器被該工作所佔用、阻塞記憶體匯流排、並且消耗許多的電力/能量(此係產生增大的散熱以及電池耗電)。
習知技術的偽隨機數值產生器之一額外的缺點是它們對於側頻道攻擊並未受到保護,此係在IT安全性應用中產生顯著的風險。在正在處理資料的電子裝置的操作期間,某些有關秘密金鑰或敏感的資料的資訊總是在側頻道中洩漏(非所要的資訊傳播的物理源),其係包含響應時間之資料相依的變化、電力使用的變動、或是超音波或電磁波的輻射。這是為何當沒有敵意者有實體的接取至該電子裝置時,所儲存或發送的資料的秘密及完整性大致可以藉由密碼的手段來加以確保。
因此,所期望的是具有一種改善的偽隨機數值產生器,其係在一時脈週期內產生許多偽隨機數值,並且在不顯著地增加處理時間、系統複雜度、電子電路的尺寸、或是能量用量之下,藉由降低側頻道洩漏來致能在安全性上的改善。
考慮到前述的背景,本揭露內容的範例實施方式係提供一種用於產生偽隨機數值之系統及方法,其係包含以下步驟:初始化用於一呼叫計數器的一計數器值、從該呼叫計數器傳送一逐位元形式的該計數器值至一混合函數、以及混合該逐位元形式的該計數器值以產生一偽隨機數值。該計數器值係被增量一預設的值,並且該產生的偽隨機數值可被利用作為用於該混合函數的一後續的週期的一輸入值。該用於產生偽隨機數值之系統及方法亦可包含以下步驟:藉由在不超出一輸入暫存器的容量下,以該計數器值的整體來重複該計數器值盡可能的許多次來填入該輸入暫存器、以及利用該計數器值的個別的位元來填入該輸入暫存器的任何其餘未被填入的位元。加密的資料可以根據該產生的偽隨機數值而被儲存在一儲存裝置的記憶體中。
在本揭露內容的實施方式中,該混合步驟係藉由一混合函數來加以執行。該混合函數係將該逐位元形式的該計數器值輸入的一第一區段對映於藉由串聯該些區段所輸出的該逐位元形式的該計數器值的一第一區段。該混合函數是可逆且非線性的,並且可以是一互斥或(XOR)樹混合單元、代換-置換的混合單元、或是雙重混合的Feistel混合單元。該混合函數可以藉由至少兩個平行操作的函數來加以執行,並且來自該至少兩個混合函數的輸出係加以XOR運算。該偽隨機數值亦可以藉由一單向的函數或是利用一密碼的雜湊函數的雜湊來加以處理,使得該單向的處理或雜湊的結果係被使用作為用於該混合函數的一後續的週期的一輸入值。
在此論述的特點、功能及優點可以在各種的範例實施方式中
獨立地加以達成、或是可以在另外其它的範例實施方式中加以組合,其進一步細節可以參考以下的說明及圖式而加以理解。
402、404、406、408、410、412、414、416、418、420、422、424‧‧‧區塊
500‧‧‧方法
502、504、506、508、510、512、514‧‧‧區塊
600‧‧‧高階的系統
602‧‧‧飛機
604‧‧‧推進系統
606‧‧‧電氣系統
608‧‧‧液壓系統
610‧‧‧環境的系統
612‧‧‧機體
614‧‧‧內部
至此已經概括地敘述本揭露內容的範例實施方式,現在將會參考到所附的圖式,其並不一定按照比例繪製,並且其中:圖1是根據本揭露內容的一範例實施方式的用於一混合函數的一XOR樹為基礎的金鑰產生器的邏輯圖;圖2是根據本揭露內容的一範例實施方式的用於一混合函數的一代換-置換的網路為基礎的金鑰產生器的邏輯圖;圖3是根據本揭露內容的一範例實施方式的用於一混合函數的一雙重混合的Feistel網路為基礎的金鑰產生器的邏輯圖;圖4是根據本揭露內容的一範例實施方式的偽隨機數值產生方法的方塊圖;圖5是飛機製造及服務方法的方塊圖;以及圖6是一飛機的概要圖示。
本揭露內容的某些實施方式現在將會在以下參考所附的圖式而更完整地加以描述,其中本揭露內容的某些(但不是全部的)實施方式係被展示。確實,本揭露內容的各種實施方式可以用許多不同的形式來加以體現,因而不應該被解釋為受限於在此闡述的實施方式;而是,這些範例實施方式係被提供以使得此揭露內容將會是徹底且完整的,並且將會完整地傳達本揭露內容的範疇給熟習此項技術者。例如,除非另有指出,否則
將某物參照為一第一、第二或類似者是不應該被解釋為意指一特定的順序。再者,某物可以被描述為在其它物之上(除非另有指出),其亦可以替代的是在其它物之下,並且反之亦然;而且類似地,某物被敘述為在其它物的左邊,其亦可以替代的是在其它物的右邊,並且反之亦然。相同的元件符號係通篇指稱相似的元件。
本揭露內容的範例實施方式將會主要結合航空應用來加以敘述。然而,應該瞭解的是範例實施方式亦可以結合各種其它在該航空產業中以及在該航空產業之外的應用來加以利用。
根據本揭露內容的範例實施方式,一種改良的用於在每一個時脈週期產生偽隨機數值之系統係藉由利用一混合函數來加以提供,該混合函數係用一種複雜且非線性的方式來混淆其輸入。
一偽隨機數值產生器(PRNG)必須利用一種子值(seed)來加以初始化。該種子值是一物理隨機數值、或是一使用者供應的值,其係使得接著產生的序列成為獨特的。在利用該種子值來初始化該PRNG之後,一些請求(呼叫)可被發出。大量的呼叫的每一個係回傳一不同於前一個偽隨機數值的偽隨機數值。在某一數量的請求(呼叫)之後,所回傳的偽隨機數值開始重複。若重複(在低的機率下)是可接受或是所期望來模仿真正隨機數值的特性的話,則所產生的偽隨機數值可加以截斷。若重複是不可接受的,則採取手段以確保該週期長度大到足以用於所要的應用。週期性可以藉由在週期重新開始之前,重新給予該PRNG新獲得的物理隨機數值作為種子值來加以避免。
如上所提到的,根據本揭露內容的範例實施方式的改良的
PRNG是利用混合函數。此種混合函數係在依賴大量的秘密金鑰材料下運作的,該秘密金鑰材料可以是硬體編碼的、被燒熔成熔絲、或是被儲存在揮發性記憶體中,例如是在正反器中。該秘密金鑰材料可以對於在一系列的裝置中的所有裝置加以硬體編碼、可以在一特定的裝置的初始化時加以設置、或是在重置時或在一明確的請求時來加以產生,以重新給予該PRNG種子值。
混合函數是類似於密碼,但是它們是快許多的。混合函數也比密碼為較不安全的,因為某種相關性可能會存在於其輸入與輸出之間,因而使得它們本身一般是不適合用於加密操作。然而,當一混合函數的輸入或是輸出被隱藏而不被攻擊者知道時,則攻擊者並無法裝上傳統的密碼邏輯攻擊、或是側頻道的攻擊。因此,該些快速的混合函數對於其中應用的秘密金鑰係產生其它的秘密金鑰之密碼的金鑰產生而言是理想的,並且對於產生偽隨機數值序列而言是理想的,尤其是當此種數值是內部使用並且被隱藏而不被竊聽者知道時。
適合用於改良的PRNG的混合函數係具有以下的性質:
1)它們將n位元的輸入對映到n位元的輸出(n=區塊尺寸)。
2)該混合係依賴大量的秘密金鑰材料,該秘密金鑰材料可以從單一短的金鑰、或是藉由一真正隨機數值產生器來加以產生。
3)該混合函數是對射的(bijection)(可逆的)。
4)每一個輸入位元係以非線性的方式來影響每一個輸出位元。
5)大多數非空的輸入位元組(其係從該金鑰材料獨立地被選擇)亦影響所有的輸出位元(沒有影響會抵消)。
根據本揭露內容的範例實施方式,適當的用於PRNG的混合函數是XOR樹(圖1)、代換-置換的網路(圖2)、以及雙重混合的Feistel網路(圖3)。如以上所參照的混合函數的非線性可以是由被移位的資料或是S-盒的算術加法所提供的,該些S-盒可以退化成為(N)AND/OR閘(2×1位元的S-盒)。
現在參照有關該混合函數是一XOR樹為基礎的金鑰產生器的圖1,該些輸入位元A1、A2、A3、A4...係選擇對應的子金鑰K1、K2、K3、K4...以進行XOR運算。該最後的擾亂(scramble)運算步驟係使得該結構為非線性的,並且可以是由循環-加法運算、或是一系列非線性的S-盒運算所構成的。該XOR樹為基礎的金鑰產生器可以進一步包含一第二組子金鑰,而具有額外的輸入選擇。該些子金鑰可以是從一些基礎子金鑰,藉由包含循環、加法或是XOR的位元操作運算來加以產生。
現在參照有關該混合函數是一代換-置換的網路為基礎的金鑰產生器的圖2,該些輸入位元是從該邏輯圖的頂端而被饋入,並且輸出是從該邏輯圖的底部而被取出。該些子金鑰Ki可以是獨立的隨機產生的秘密、或是從一些基礎子金鑰導出的。S1、S2...是S-盒,其係為小的非線性的代換可逆的函數。該混合網路的層數目可被選擇是整個混合深度的至少兩倍(當每一個輸入位元都影響到每一個輸出位元時),但是可以是較小的,使得該電路的總延遲仍然不會超過一時脈週期。
現在參照有關該混合函數是一雙重混合的Feistel網路為基礎的金鑰產生器的圖3,F是一非線性的、非常難以(或是不可能)逆轉的函數,而G是可逆的。數層相同的電路係級聯的。在具有平行操作的電子電
路之實施方式中,該雙重混合的Feistel網路的單層的混合效能是一傳統的Feistel網路的單層的兩倍。[L0,R0]是該混合函數的輸入,並且該輸出係從該邏輯圖的最後一個重複的層的底部加以取出。該混合網路的層數目係被選擇是其總延遲符合在單一時脈週期內的情形下盡可能高的。
上述的混合函數可被利用在數個用於偽隨機數值的產生之操作模式中,其例子係在以下加以描述。
如同在圖4中所繪的,在一計數器模式中,一計數器係被初始化成一(短的)種子值(區塊402),並且一逐位元的形式的該計數器值係被傳送至該混合函數(區塊408)。該混合係根據以上相關圖1-3所述的混合函數中之一而被執行,以產生一偽隨機數值(區塊410)。該計數器係在每次一偽隨機數值被請求時都被增量一預設的值(區塊424),並且該計數器係讓其值在溢位處折返,以繼續從0計數。該計數器係在該PRNG的重新給予種子值時被重置。該計數器例如可以是一個32位元無正負號的整數,其係容許在重複之前產生四十億個獨特的偽隨機數值,因為不同的輸入值係產生該混合函數之不同的輸出值。若需要的話,一較長的計數器可被利用,並且該些輸入位元的其餘部分可被設定為0、或是任何其它固定的位元樣式(其可以從該種子值導出)。再者,較短的計數器(例如20個位元)可被利用,在此情形中,在一百萬次呼叫(220)之後,該PRNG係被重新給予一真正隨機值作為種子值。
在一擾亂的計數器模式中,一如上所述的計數器(呼叫計數器)係被利用,但是該些輸入位元係被初始化至非固定的值(區塊402)。例如,一個31位元的計數器可被採用,其值係以其整體被重複符合該輸入暫
存器的盡可能的多次(區塊404)。在256位元寬的輸入暫存器的狀況中,該31位元的計數器值可以用其整體被重複8次,因為256/31=8(具有一個8的餘數)。該餘數8係對應於該計數器值的8個個別的位元(最低有效位元),並且那些位元係被認為是最低有效位元,其係再被使用一次以填入剩餘的輸入暫存器位元(區塊406)。在該擾亂的計數器模式中,當該逐位元形式的該計數器值被傳送至該混合函數(區塊408),例如是一用於混合該計數器值的代換-置換的混合函數(圖2)(區塊410)時,一個不是該S-盒的輸入尺寸的倍數的計數器寬度是較佳的,因為該些計數器位元將會被分散在不同的S-盒的不同的輸入位置中。所產生的數值的週期係與該計數器所能達到的不同值的數目相同的。此擾亂的計數器模式係利用一具有任意所要的長度的呼叫計數器(只要其並不大於該混合函數的輸入尺寸即可),並且在所產生的數值開始展現週期性之前請求一重新給予種子值。
在一遞迴模式中,該混合函數的第一輸入是一(長的)種子值。後續的輸入是該混合函數的先前的輸出。在此範例實施方式中,一計數器是不需要的,但是在該序列的所產生的偽隨機數值中的週期的長度是未知的。在大多數的情況中,該週期是遠比任何應用所需的長(在256位元的輸入尺寸下的至少2128次呼叫)。該些混合函數的連續的輸入值相較於它們在計數器模式是較不相關的,此係使得該混合更徹底的。
在一混合計數器模式中,一呼叫計數器係被初始化(區塊402)至該(長的)種子值的最低有效位元、或是任何固定組的位元。該計數器係在該偽隨機數值產生器的每一次呼叫時被增量(區塊424),其中在溢位時折返到0。該混合函數(區塊410)的第一輸入(區塊408)是該種子值。後續的輸入
是該混合函數的先前的輸出(區塊420),除非它們係藉由將該輸入之指定的位元改變至該計數器值而被修改的。此係確保在該序列的所產生的偽隨機數值中的週期長度至少是和在該計數器模式時一樣長,並且大部分的情形是遠比其更長的。如同該遞迴模式,除了被複製過去的該短序列的計數器位元之外,該些混合函數的連續的輸入值看起來是非相關的。此係使得該混合在保證的最小的週期長度下是非常徹底的。此混合計數器模式可以利用一具有任意所要的長度的呼叫計數器(不長於該輸入尺寸),並且可以在所產生的數值可能開始展現週期性之前請求一重新給予種子值。
在所有可適用的情形中,該呼叫計數器可以被增量一大的奇數的固定值(其係預設的、或是從該種子值產生的)(區塊424)。此係使得連續的計數器值比起在一個1的增量下較不相關的。所產生的偽隨機數值可被用來使得例如是加密金鑰、微調值、亂數、以及初始值之加密的資料在一記憶體中的儲存變得容易(區塊422)。
除了該金鑰材料之外,納入在此所述的混合函數的PRNG係使得某些有關其內部狀態的資訊(計數器以及該混合函數的輸出)公開。安全性係建立在此金鑰材料的保護上。若敵意者發現此金鑰材料,則該敵意者可以反轉該些混合函數呼叫,並且找出先前產生的隨機數值,並且也找出未來將會產生的數值。在本揭露內容的另一實施方式中,一具有後向保密的PRNG的一版本係被提供,其中該PRNG的輸出係藉由一單向的函數來加以處理、或是利用一密碼的雜湊函數而被雜湊(區塊416),並且該結果係被回傳(區塊418),而不是該混合函數的未經處理的輸出。一些平行地運作的混合函數(區塊412)而且其輸出是一起加以XOR運算(區塊414)亦可以
作為一超快的單向的函數。此結構是單向的(難以逆轉的),因為個別的混合函數的輸出並無法從其XOR運算出的值來加以重建,該XOR運算出的值是整體的輸出。此結構仍然是比任何習知技術的解決方案快幾個數量級,因為在兩個時脈週期內,數千個偽隨機位元可被產生。本發明的另一具有後向保密的替代的實施方式係藉由利用數個平行運作而且其輸出是加以XOR運算的不同的混合函數來取代該些混合函數而被達成。即使知道該金鑰材料,此聚合的混合函數仍然無法輕易地加以逆轉,並且執行時間是只有上述的雜湊結構的一半,換言之,通常是一時脈週期。
使用納入上述的混合函數之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運算("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)係從由一XOR樹混合函數、代換-置換的混合函數、以及雙重混合的Feistel混合函數所構成的群組選出的。
條款20.如條款12之系統,其中該混合函數(區塊410)係藉由至少兩個平行操作的混合函數來加以執行(區塊412),並且來自該至少兩個混合函數的該些輸出係加以XOR運算(區塊414)。
條款21.如條款12之系統,其中:該偽隨機數值係藉由一單向的函數來加以處理、或是利用一密碼的雜湊函數來加以雜湊(區塊416);並且該偽隨機數值的該單向的處理或是該偽隨機數值的雜湊的一結果係被使用作為用於該混合函數的一後續的週期的一輸入值(區塊418)。
在此揭露的設備及方法的不同的例子係包含各種構件、特點、以及功能。應瞭解的是,在此揭露的設備及方法的各種例子可以包含在此揭露的任意組合的設備及方法的其它例子的任一個的構件、特點及功能的任一個,並且所有此種可能性都欲在本揭露內容的精神及範疇內。
在具有先前的說明及相關的圖式中所呈現的教示的助益下,在此闡述的本揭露內容的許多修改以及其它的實施方式將會被熟習有關此揭露內容的技術者所思及。因此,將瞭解到的是,本揭露內容並不欲
受限於所揭露的特定的實施方式,並且修改以及其它的實施方式係欲內含在所附的申請專利範圍的範疇之內。再者,儘管先前的說明以及相關的圖式係在元件及/或函數的某些範例組合的背景中描述範例的實施方式,但應該體認到的是不同的元件及/或函數的組合可以由替代的實施方式提供,而不脫離所附的申請專利範圍的範疇。就此點而言,例如,與那些明確在以上所敘述者不同的元件及/或函數的組合亦被思及,即如同可能在所附的申請專利範圍的某些範圍中所闡述者。儘管特定的術語係在此被採用,但是它們係以一般且描述的意思而被使用而已,因而不是用於限制性的目的。
402、404、406、408、410、412、414、416、418、420、422、424‧‧‧區塊
Claims (13)
- 一種用於產生偽隨機數值之方法,其係包括以下步驟:初始化用於一呼叫計數器的一計數器值(區塊402);從該呼叫計數器傳送一逐位元形式的該計數器值至一混合函數(區塊408);以及混合該逐位元形式的該計數器值以產生一偽隨機數值(區塊410)。
- 如申請專利範圍第1項之方法,其進一步包括以下的至少一個:增量該計數器值一預設的值(區塊424)的步驟,以及利用該偽隨機數值作為用於該混合步驟的一後續的週期的一輸入值(區塊410)的步驟。
- 如申請專利範圍第1項之方法,其進一步包括以下步驟:藉由在不超出一輸入暫存器的容量下,以該計數器值整體來重複該計數器值盡可能的多次來填入該輸入暫存器(區塊404);以及利用該計數器值的個別的位元來填入該輸入暫存器的任何其餘未被填入的位元,直到該輸入暫存器已滿為止(區塊406),其中該混合步驟(區塊410)係將該逐位元形式的該計數器值輸入的一第一區段對映於藉由串聯該些區段所輸出的該逐位元形式的該計數器值的一第一區段,並且其中以下的至少一個:該混合步驟(區塊410)是可逆的,該混合步驟(區塊410)係非線性的,以及該混合步驟(區塊410)係包括從由一互斥或"XOR"樹混合函數、一代換-置換的混合函數、以及一雙重混合的Feistel混合函數所構成的群組選 出的一函數。
- 如申請專利範圍第1項之方法,其中該混合步驟(區塊410)進一步包括用平行的混合函數來混合該計數器值至少兩次(區塊412)以及互斥-XOR運算("XOR運算")來自該些平行的混合函數的輸出(區塊414)的步驟。
- 如申請專利範圍第1項之方法,其進一步包括以下步驟:藉由一單向的函數來處理該偽隨機數值、或是利用一密碼的雜湊函數來雜湊該偽隨機數值(區塊416);以及利用該偽隨機數值的該單向的處理、或是該偽隨機數值的雜湊的一結果以作為用於該混合函數的一後續的週期的一輸入值(區塊418)。
- 如申請專利範圍第1項之方法,其進一步包括利用該偽隨機數值以將加密的資料儲存在一記憶體中(區塊422)的步驟。
- 一種用於產生偽隨機數值之系統,其係包括:一呼叫計數器,其係利用一計數器值而被初始化(區塊402);以及一混合函數,其係混合一逐位元形式的該計數器值以產生一偽隨機數值(區塊410)。
- 如申請專利範圍第7項之系統,其中該計數器值係被增量一預設的值(區塊424)。
- 如申請專利範圍第7項之系統,其中該偽隨機數值係作用為用於該混合函數的一後續的週期的一輸入值(區塊420)。
- 如申請專利範圍第7項之系統,其進一步包括一具有一記憶體的儲存裝置,該記憶體係根據該偽隨機數值來儲存加密的資料(區塊422),該加密的資料係從由加密金鑰、微調值、亂數、以及初始值所構成的群組選出 的。
- 如申請專利範圍第7項之系統,其中該混合函數(區塊410)係以下的至少一個:將該逐位元形式的該計數器值輸入的一第一區段對映於藉由串聯該些區段所輸出的該逐位元形式的該計數器值的一第一區段;從由一XOR樹混合函數、代換-置換的混合函數、以及雙重混合的Feistel混合函數所構成的群組被選出;以及藉由至少兩個平行操作的混合函數來加以執行(區塊412),並且來自該至少兩個混合函數的該些輸出係加以XOR運算(區塊414)。
- 如申請專利範圍第7項之系統,其中以下的至少一個:該混合函數(區塊410)是可逆的,以及該混合函數(區塊410)係非線性的。
- 如申請專利範圍第7項之系統,其中:該偽隨機數值係藉由一單向的函數來加以處理、或是利用一密碼的雜湊函數來加以雜湊(區塊416);以及該偽隨機數值的該單向的處理、或是該偽隨機數值的雜湊的一結果係被使用作為用於該混合函數的一後續的週期的一輸入值(區塊418)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/961,307 US10142103B2 (en) | 2015-12-07 | 2015-12-07 | Hardware assisted fast pseudorandom number generation |
US14/961,307 | 2015-12-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201721407A true TW201721407A (zh) | 2017-06-16 |
TWI781911B TWI781911B (zh) | 2022-11-01 |
Family
ID=58798742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105131026A TWI781911B (zh) | 2015-12-07 | 2016-09-26 | 用於產生偽隨機數值之方法和系統 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10142103B2 (zh) |
JP (1) | JP6900176B2 (zh) |
KR (1) | KR102544298B1 (zh) |
CN (1) | CN107017981B (zh) |
SG (1) | SG10201607934XA (zh) |
TW (1) | TWI781911B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10649735B2 (en) | 2017-09-12 | 2020-05-12 | Ememory Technology Inc. | Security system with entropy bits |
TWI749654B (zh) * | 2019-07-25 | 2021-12-11 | 熵碼科技股份有限公司 | 亂數產生器及產生亂數輸出的方法 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10944568B2 (en) * | 2017-10-06 | 2021-03-09 | The Boeing Company | Methods for constructing secure hash functions from bit-mixers |
EP3616052B1 (en) * | 2017-11-07 | 2021-08-25 | Google LLC | Random number generator |
CN108768615B (zh) * | 2018-05-16 | 2021-04-13 | 济南蓝剑钧新信息科技有限公司 | 散列算法在同一框架下的asic芯片实现方法 |
US11265149B2 (en) * | 2018-11-08 | 2022-03-01 | Daniel Eugene Hale | Apparatus and method for unbreakable data encryption |
US10878133B2 (en) * | 2018-11-18 | 2020-12-29 | Nuvoton Technology Corporation | Mitigation of side-channel attacks using small-overhead random pre-charging |
US11310028B2 (en) | 2019-01-31 | 2022-04-19 | The Boeing Company | Tamper resistant counters |
CN110221810B (zh) * | 2019-03-14 | 2021-05-11 | 西安电子科技大学 | 一种基于细胞自动机的可变结构伪随机数生成方法、装置及系统 |
CN110928523B (zh) * | 2019-12-04 | 2021-11-19 | 中体彩科技发展有限公司 | 用于彩票行业的随机数获取方法及系统 |
US10979054B1 (en) | 2020-01-14 | 2021-04-13 | Nuvotonn Technology Corporation | Coupling of combinational logic circuits for protection against side-channel attacks |
US11068240B1 (en) * | 2020-06-19 | 2021-07-20 | Panagiotis Andreadakis | Aperiodic pseudo-random number generator using big pseudo-random numbers |
US11907684B2 (en) | 2021-02-16 | 2024-02-20 | Cassy Holdings Llc | High clock-efficiency random number generation system and method |
CN116132036A (zh) * | 2023-02-17 | 2023-05-16 | 上海海事大学 | 基于量子数据压缩的确定性安全半量子通信方法 |
CN118113254A (zh) * | 2023-12-31 | 2024-05-31 | 北京海泰方圆科技股份有限公司 | 一种随机数种子的生成方法、装置、电子设备及介质 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3119735B2 (ja) * | 1992-10-01 | 2000-12-25 | 松下電器産業株式会社 | ビット攪拌装置 |
KR0168525B1 (ko) | 1996-03-19 | 1999-02-01 | 김광호 | 전화단말장치에서 정보서비스 수행을 위한 자동 다이얼링방법 |
US5909494A (en) * | 1997-02-14 | 1999-06-01 | At&T Corp. | System and method for constructing a cryptographic pseudo random bit generator |
KR100229870B1 (ko) | 1997-05-13 | 1999-11-15 | 윤종용 | 플립형 휴대용 단말기의 플립커버장치 |
US6804355B1 (en) * | 2000-01-06 | 2004-10-12 | Intel Corporation | Block cipher for small selectable block sizes |
EP1331551A1 (en) * | 2000-10-24 | 2003-07-30 | HMI CO., Ltd | Random number generator |
US20030059045A1 (en) | 2001-09-26 | 2003-03-27 | Ruehle Michael D. | Hash-based pseudo-random number generator |
US7227951B2 (en) * | 2001-11-06 | 2007-06-05 | Ntt Docomo, Inc. | Enhanced ANSI X9.17 pseudorandom number generators with forward security |
JP2005529364A (ja) * | 2002-06-06 | 2005-09-29 | クリプティコ・アクティーゼルスカブ | 擬似乱数生成器の出力の予測不可能性を向上させる方法 |
US8019802B2 (en) * | 2005-08-24 | 2011-09-13 | Qualcomm Incorporated | Cryptographically secure pseudo-random number generator |
CN100583754C (zh) * | 2005-11-07 | 2010-01-20 | 北京浦奥得数码技术有限公司 | 一种伪随机数生成方法 |
EP1975779B1 (en) * | 2007-03-30 | 2018-03-28 | Hitachi, Ltd. | Encryption device using a pseudorandom number generator |
JP4857230B2 (ja) * | 2007-03-30 | 2012-01-18 | 株式会社日立製作所 | 疑似乱数生成装置及びそれを用いた暗号化処理装置 |
US20080263117A1 (en) * | 2007-04-23 | 2008-10-23 | Gregory Gordon Rose | Initial seed management for pseudorandom number generator |
US8489659B2 (en) | 2007-10-19 | 2013-07-16 | Schneider Electric USA, Inc. | Pseudorandom number generation |
US8560587B2 (en) | 2008-05-22 | 2013-10-15 | Red Hat, Inc. | Non-linear mixing of pseudo-random number generator output |
US8971530B2 (en) * | 2009-06-24 | 2015-03-03 | Intel Corporation | Cryptographic key generation using a stored input value and a stored count value |
CN102063285A (zh) * | 2010-12-24 | 2011-05-18 | 倍奥锐(北京)科技有限公司 | 一种软件实现的真随机数产生方法 |
JP5791562B2 (ja) * | 2012-05-10 | 2015-10-07 | 日本電信電話株式会社 | 圧縮関数演算装置、圧縮関数演算方法、およびプログラム |
EP2918037A1 (en) * | 2012-11-12 | 2015-09-16 | Cryptography Research Inc. | Methods and systems for glitch-resistant cryptographic discrete-log based signing |
-
2015
- 2015-12-07 US US14/961,307 patent/US10142103B2/en active Active
-
2016
- 2016-09-23 SG SG10201607934XA patent/SG10201607934XA/en unknown
- 2016-09-26 TW TW105131026A patent/TWI781911B/zh active
- 2016-10-11 KR KR1020160131094A patent/KR102544298B1/ko active IP Right Grant
- 2016-11-30 JP JP2016232308A patent/JP6900176B2/ja active Active
- 2016-12-05 CN CN201611102808.6A patent/CN107017981B/zh active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10649735B2 (en) | 2017-09-12 | 2020-05-12 | Ememory Technology Inc. | Security system with entropy bits |
TWI697809B (zh) * | 2017-09-12 | 2020-07-01 | 力旺電子股份有限公司 | 使用亂數位元的安全系統及安全系統的操作方法 |
TWI749654B (zh) * | 2019-07-25 | 2021-12-11 | 熵碼科技股份有限公司 | 亂數產生器及產生亂數輸出的方法 |
US11876899B2 (en) | 2019-07-25 | 2024-01-16 | PUFsecurity Corporation | Random number generator and method of generating output random number |
Also Published As
Publication number | Publication date |
---|---|
TWI781911B (zh) | 2022-11-01 |
US10142103B2 (en) | 2018-11-27 |
US20170163416A1 (en) | 2017-06-08 |
SG10201607934XA (en) | 2017-07-28 |
CN107017981A (zh) | 2017-08-04 |
KR102544298B1 (ko) | 2023-06-19 |
JP6900176B2 (ja) | 2021-07-07 |
CN107017981B (zh) | 2021-07-13 |
JP2017107195A (ja) | 2017-06-15 |
KR20170067133A (ko) | 2017-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI781911B (zh) | 用於產生偽隨機數值之方法和系統 | |
EP3154217B1 (en) | Scrambled tweak mode of block ciphers for differential power analysis resistant encryption | |
TWI744388B (zh) | 用於藉由位元混合器來產生保密器回合金鑰的方法和系統 | |
US9819657B2 (en) | Protection of memory interface | |
US10320554B1 (en) | Differential power analysis resistant encryption and decryption functions | |
EP3468147B1 (en) | Method for constructing secure hash functions from bit-mixers | |
US9031228B2 (en) | Systems and methods for implementing block cipher algorithms on attacker-controlled systems | |
Singh et al. | A comprehensive survey on encryption techniques for digital images | |
WO2015193789A1 (en) | Differential power analysis countermeasures | |
EP3154215B1 (en) | Scrambled counter mode for differential power analysis resistant encryption | |
Bhaskar et al. | An advanced symmetric block cipher based on chaotic systems | |
Atia | Development of a new algorithm for key and S-box generation in blowfish algorithm | |
EP3154216B1 (en) | Data dependent authentication keys for differential power analysis resistant authentication | |
Rouaf et al. | Performance Evaluation of Encryption Algorithms in Mobile Devices | |
Subramanian et al. | Adaptive counter clock gated S-Box transformation based AES algorithm of low power consumption and dissipation in VLSI system design | |
Penchalaiah et al. | Random multiple key streams for encryption with added CBC mode of operation | |
Orhanou et al. | Analytical evaluation of the stream cipher ZUC | |
Abdulwahed | Chaos-Based Advanced Encryption Standard | |
Landge et al. | VHDL based Blowfish implementation for secured embedded system design | |
Chugunkov et al. | Issues of increasing the efficiency of replacement blocks for cryptoalgorithms round functions | |
Narayanaswamy et al. | HIDE: Hybrid symmetric key algorithm for integrity check, dynamic key generation and encryption | |
JP2015050708A (ja) | 動的暗号化鍵生成システム | |
Stanciu et al. | Pseudo-random generator using PUF circuits and Salsa stream cipher | |
Karunakaran et al. | FPGA based Fault Analysis for Encrypted Code | |
Srivaishnavi et al. | Design and Implementation of Efficient Block Cipher |