JP7006887B2 - 乱数発生器及び出力乱数を生成する方法 - Google Patents

乱数発生器及び出力乱数を生成する方法 Download PDF

Info

Publication number
JP7006887B2
JP7006887B2 JP2020125111A JP2020125111A JP7006887B2 JP 7006887 B2 JP7006887 B2 JP 7006887B2 JP 2020125111 A JP2020125111 A JP 2020125111A JP 2020125111 A JP2020125111 A JP 2020125111A JP 7006887 B2 JP7006887 B2 JP 7006887B2
Authority
JP
Japan
Prior art keywords
random number
pool
sequence
live
static
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020125111A
Other languages
English (en)
Other versions
JP2021022378A (ja
Inventor
孟益 ▲呉▼
啓意 邵
青松 楊
Original Assignee
▲しゃーん▼碼科技股▲ふん▼有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ▲しゃーん▼碼科技股▲ふん▼有限公司 filed Critical ▲しゃーん▼碼科技股▲ふん▼有限公司
Publication of JP2021022378A publication Critical patent/JP2021022378A/ja
Application granted granted Critical
Publication of JP7006887B2 publication Critical patent/JP7006887B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Pinball Game Machines (AREA)
  • Manipulation Of Pulses (AREA)

Description

本開示は、乱数生成に関し、特に、乱数発生器及び出力乱数を生成する方法に関する。
乱数は、情報セキュリティ及び統計的サンプリングの分野で広く使用されている。乱数の生成とは、指定された分布に準拠する一連の予測されない独立した数の生成である。疑似乱数発生器は、シード(seed)を使用して一連の数を生成する。ランダムシードが不十分な場合に、ランダムシーケンスが不十分になり得、これは、暗号化システムの安全性が失われたり、又はサンプリング結果が不正確になったりする可能性がある。
本発明の実施形態によれば、乱数発生器は、静的(static)乱数発生器、少なくとも1つの動的エントロピー・ソース、カウンタ、及び結合回路を含む。静的乱数発生器は、初期乱数プール及び静的乱数プールを含み、且つ初期乱数プール及び静的乱数プールの一方から静的乱数列(random number sequence)を出力するために使用される。少なくとも1つの動的エントロピー・ソースは、動的エントロピー・ビットを生成するために使用される。カウンタは、少なくとも1つの動的エントロピー・ソースに結合され、且つ動的エントロピー・ビットに従って動的(dynamic)乱数列を生成するために使用される。結合回路は、静的乱数発生器及びカウンタに結合され、静的乱数列を受け取り、静的乱数列及び動的乱数列に従って真の乱数列をライブ乱数プールに出力するために使用される。静的乱数プールは、ライブ乱数プールが完全に更新されたときに更新される。
本発明の別の実施形態によれば、出力乱数を生成する方法は、初期化フェーズ中に、初期乱数プールから初期の静的乱数列を生成し、初期の静的乱数列及び初期の動的乱数列に従って初期の真の乱数列を生成し、且つ初期の真の乱数列に従って静的乱数プールを開始するステップと;動作フェーズ中に、出力乱数(output random number)を出力し、静的乱数プールから後続の静的乱数列を生成し、後続の静的乱数列及び後続の動的乱数列に従って後続の真の乱数列を生成し、且つ後続の真の乱数列に従って静的乱数プールを更新するステップと、を含む。
本発明のこれら及び他の目的は、様々な図及び図面に示される好ましい実施形態の以下の詳細な説明を読んだ後に、当業者には間違いなく明らかになるであろう。
本発明の実施形態による乱数発生器のブロック図である。 本発明の別の実施形態による乱数発生器のブロック図である。 図1及び図2のカウンタのブロック図である。 図1及び図2の例示的な動的エントロピー・ソースのブロック図である。 図1及び図2の乱数発生器のための出力乱数を生成する方法のフローチャートである。 図5のステップS502を実施する方法のフローチャートである。 図5のステップS504を実施する方法のフローチャートである。
本明細書で使用される場合、「真に(完全に)ランダム(truly random)」又は「真の(完全な)ランダム(true random)」という用語は、ハミング重み及びデバイス間(ID)ハミング距離が実質的に50%であり、且つ実質的には最小エントロピー(min-entropy)が1であるビット・ストリーム又はデータシーケンスを指す。ハミング重みは、ビット・ストリーム内の非ゼロのシンボルの期待値をパーセント形式で測定する。IDハミング距離は、同じチャレンジに応答して2つの静的エントロピー・ソースによって生成された2つの静的エントロピー・ビット・ストリーム同士の間のハミング距離を測定する。最小エントロピーは、ビット・ストリームのエントロピーの下限であり、ビット・ストリームの予測不能性を測定する。
図1は、本発明の実施形態による乱数発生器1のブロック図である。乱数発生器1は、初期乱数プールからのデータに従って最初にライブ乱数プール(lively random number pool)を更新し、次に連続的且つ反復ベースでライブ乱数プールからのデータに従って静的乱数プールを更新することができる。さらに、乱数発生器1は、外部回路、例えば、決定論的乱数生成器(deterministic random bit generator)又は暗号システムの要求に応じて、ライブ乱数プールから出力乱数Srnoを抽出することができる。初期乱数プールは、乱数発生器1を使用する全てのデバイスの固定データを含み得る。デバイスは、フィールドプログラマブルゲートアレイ(FPGA)であり得る。静的乱数プールは、常に変化し、全てのデバイスに固有であり得る。
乱数発生器1は、静的乱数発生器15、動的エントロピー・ソース12(1)~12(N)(Nは正の整数である)、カウンタ14、結合回路16、ライブ乱数プール17、及び更新回路18を含み得る。静的乱数発生器15は、初期乱数プール10、静的乱数プール11、及びマルチプレクサ13を含み得る。動的エントロピー・ソース12(1)~12(N)は、カウンタ14に結合され得る。初期乱数プール10及び静的乱数プール11は、マルチプレクサ13に結合され得る。マルチプレクサ13及びカウンタ14は、結合回路16に結合され得る。結合回路16は、ライブ乱数プール17に結合され得る。更新回路18は、ライブ乱数プール17及び静的乱数プール11に結合される。実施形態では、複数の動的エントロピー・ソース12(1)~12(N)が使用されるが、乱数発生器1においてただ1つの動的エントロピー・ソース12(1)を適用することも、本発明の範囲内である。
乱数発生器1は、初期化フェーズ及び動作フェーズで動作することができる。初期化フェーズ中に、初期乱数プール10は、初期の静的乱数列Ssrn(0)を生成し得、マルチプレクサ13は、選択信号Selに従って、初期乱数プール10からの初期の静的乱数列Ssrn(0)を静的乱数列Ssrnとして選択する。初期化フェーズは、乱数発生器1の電源投入時又は起動時に採用され得る。選択信号Selは、外部制御回路から生成され得る。動作フェーズ中に、静的乱数プール11は、後続の乱数列Ssrn(1)を生成することができ、マルチプレクサ13は、選択信号Selに従って、静的乱数プール11からの後続の乱数列Ssrn(1)を静的乱数列Ssrnとして選択することができる。動作フェーズは、静的乱数プール11の開始時又は更新時に採用され得る。この実施形態では、初期乱数プール10からのデータと静的乱数プール11からのデータとの間で選択するために、マルチプレクサ13が採用されるが、マルチプレクサ13が乱数発生器1から除去され、代わりに選択回路を含めて、適切なタイミングに従って初期乱数プール10及び静的乱数プール11の一方を有効にして、そこから静的乱数列Ssrnを出力することも本発明の範囲内である。
初期乱数プール10は、物理的クローン不可関数(PUF)セルアレイ、不揮発性メモリ、揮発性メモリ、又は複数の静的エントロピー・ビットを含む固定論理回路であり得る。複数の静的エントロピー・ビットは、独立同分布確率変数(IID)であり得る。初期の静的乱数列Ssrn(0)は、所定のデータ長、例えば32ビットを有することができる。例えば、初期乱数プール10は、32ビット×32ビットのワンタイム・プログラマブル(OTP)メモリセルであり得、メモリセルの各行、列、又は対角線が、真にランダムなエントロピー・ビットを含み得る。OTPメモリセルはアンチヒューズベース(antifuse-based)であり得、真にランダムなエントロピー・ビットは、製造セットアップ中にOTPメモリセルにプログラムされ得る。初期乱数プール10がSRAM(static random access memory)又はレジスタ・バンク等の揮発性メモリである場合に、真にランダムなエントロピー・ビットは、初期の静的乱数列Ssrn(0)を生成するための要求を受信すると、初期乱数プール10にプログラムされ得る。真にランダムなエントロピー・ビットは、値が固定され、乱数発生器1を使用する全てのデバイスと同じである。初期乱数プール10は、所定の選択アルゴリズムに従って、初期の静的乱数列Ssrn(0)を出力する。例えば、初期静的エントロピー・ソース10は、メモリセルの行からの32ビットのエントロピー・ビットを所定の行順序で選択して、初期の静的乱数列Ssrn(0)として機能させることができる。いくつかの実施形態では、初期乱数プール10は、電源投入時又は起動時に初期乱数のセットを生成する決定論的乱数生成器(DRBG)であってもよい。
静的乱数プール11は、レジスタ・バンクであり得、且つ初期乱数プール10のサイズと等しいか又は異なるサイズを有し得る。いくつかの実施形態では、静的乱数プール11と初期乱数プール10との両方が、1kビットのサイズであり得る。
動的エントロピー・ソース12(1)~12(N)は、それぞれリアルタイムで動的エントロピー・ビットE(1)~E(N)を生成することができる。動的エントロピー・ビットE(1)~E(N)は、それぞれ長さが1ビットであり得る。
カウンタ14は、動的エントロピー・ビットE(1)~E(N)の少なくとも1つに従って、動的乱数列Sdを生成することができる。カウンタ14は、線形フィードバック・シフト・レジスタ(LFSR)又はデジタル・カウンタ、例えば32ビットのLFSRであってもよい。動的乱数列Sdは、静的乱数列Ssrnのデータ長と等しい、例えば32ビットのデータ長を有することができる。初期化フェーズ中に、カウンタ14は、初期の動的乱数列Sdを生成することができ、動作フェーズ中に、カウンタ14は、後続の動的乱数列Sdを生成することができる。いくつかの実施形態では、カウンタ14は、電源投入時又は起動時に初期乱数プール10によって生成されるシード列(seed sequence)によってシードされてもよく、シード列は、長さが32ビットであってもよい。他の実施形態では、カウンタ14は、起動時又は起動時に固定シード列によって初期化されてもよく、固定シード列は、長さが32ビットであってもよい。カウンタ14は、動的エントロピー・ソース12(1)~12(N)から動的エントロピー・ビットE(1)~E(N)を受け取り、結合回路16からフィードバック経路Pfbを介して真の乱数列Strn内の所定のビットを受け取り、動的エントロピー・ビットE(1)~E(N)と真の乱数列Strn内の所定のビットとを組み合わせて再シード制御ビットを生成し、且つ再シード制御ビットに従ってカウンタ14の再シードを制御することができる。例えば、カウンタ14は、動的エントロピー・ビットE(1)~E(N)及び真の乱数列Strn内の所定のビットに対してXOR演算を実行して、再シード制御ビットを生成することができる。再シード制御ビットが論理レベル「0」である場合に、カウンタ14はカウントを続行することができ、再シード制御ビットが論理レベル「1」である場合に、カウンタ14は新しいシード列によって再シードすることができる。一部の実施形態では、新しいシード列は、初期乱数プール10によって生成され得る。他の実施形態では、新しいシード列は、結合回路16の出力データシーケンスによって提供され得る。その結果、カウンタ14は、ランダムに再シードされ得る。いくつかの実施形態では、カウンタ14は、動的エントロピー・ビットE(1)~E(N)の一部を使用して、再シード制御ビットを生成することができる。
結合回路16は、静的乱数列Ssrn及び動的乱数列Sdをビット単位で結合して、真の乱数列Strnを生成することができる。結合回路16は、XORゲート、或いはデータ暗号化規格(DES)アルゴリズム、高度暗号化規格(AES)アルゴリズム、又はハッシュ関数を使用するプロセッサであり得る。例えば、結合回路16は、32ビットの静的乱数列Ssrn及び32ビットの動的乱数列Sdをビット単位で結合して、32ビットの真の乱数列Strnを生成することができる。真の乱数をある乱数と組み合わせることで真の乱数が生成され、静的乱数列Ssrnは真にランダムであるため、真の乱数列Sdrは、動的乱数列Sdが真にランダムであろうがなかろうが、真にランダムであり得る。さらに、動的乱数列Sdを使用して、静的乱数列Ssrnをランダム化し、デバイスに固有の真の乱数列Strnを生成することができる。
初期化フェーズ中に、静的乱数列Ssrnは、初期の静的乱数列Ssrn(0)であり得、結合回路16は、初期の静的乱数列Ssrn(0)と初期の動的乱数列Sdとを結合することにより、初期の真の乱数列Strnを生成することができる。動作フェーズ中に、静的乱数列Ssrnは、後続の静的乱数列Ssrn(1)であり得、結合回路16は、後続の静的乱数列Ssrn(1)と後続の動的乱数列Sdとを結合することにより、後続の真の乱数列Strnを生成することができる。
ライブ乱数プール17は、真の乱数列Strnに従って更新され得る。初期化フェーズ中に、ライブ乱数プール17は、初期の真の乱数列Strnに従って更新され得る。動作フェーズ中に、ライブ乱数プール17は、後続の真の乱数列Strnに従って更新され得、要求に応じて出力乱数Srnoを出力し、それによってデータのセキュリティを高めることができる。ライブ乱数プール17は、結合回路16から複数の真の乱数列Strnを順次受け取り、それが完全に更新されるまで受け取った真の乱数列Strnを格納することができる。いくつかの実施形態では、ライブ乱数プール17は、ライブ乱数プール17内の乱数の量が目標量、例えば1kビットに達すると、完全に更新される。他の実施形態では、ライブ乱数プール17は、ライブ乱数プール17の更新期間が目標期間、例えば32クロックサイクルに達すると、完全に更新される。ライブ乱数プール17は、レジスタ・バンクであり得、初期乱数プール10のサイズと等しいか又は異なるサイズを有し得る。いくつかの実施形態では、ライブ乱数プール17と初期乱数プール10との両方は、サイズが1kビットであり得る。
ライブ乱数プール17が完全に更新されると、更新回路18は、乱数Ssrn(2)をライブ乱数プール17から静的乱数プール11に更新することができる。いくつかの実施形態では、更新回路18は、乱数Ssrn(2)をライブ乱数プール17から直接転送して、静的乱数プール11内のデータと置き換えることができる。他の実施形態では、更新回路18は、圧縮及び非線形関数を、ライブ乱数プール17からの乱数Ssrn(2)に適用して、更新された真の乱数Ssrn’(2)を生成し、更新された真の乱数Ssrn’(2)を静的乱数プール11に更新することができる。圧縮は、MD5アルゴリズム、SHA1アルゴリズム、SHA2アルゴリズム、及び/又はSHA3アルゴリズム等の暗号化ハッシュ関数であり得る。非線形関数は、置換ボックス(Sボックス)及び/又はブロック暗号であり得る。このようにして、静的乱数プール11は常に更新され得る。例えば、静的乱数プール11は、ライブ乱数プール17が完全に更新される度に更新され得る。
乱数発生器1を採用するデバイスがスリープモード又は低電力モードに入ると、静的乱数プール11内の乱数は、記憶のために不揮発性メモリに送信され得る。その後、デバイスが通常の動作モードに戻ると、静的乱数プール11は、不揮発性メモリからの乱数を復元して、動作を続行する。
乱数発生器1は、初期化フェーズにおいて、ライブ乱数プール17を介して、初期乱数プール10内の真の乱数の固定セットから静的乱数プール11内の真の乱数の一意のセットを生成し、動作フェーズに進み、静的乱数プール11からの乱数を使用して真の乱数の新しいセットを生成し、且つライブ乱数プール17を介して出力乱数Srnoを出力しながら、新しい真の乱数のセットをライブ乱数プール17を介して静的乱数プール11に更新して、データのセキュリティを高めながら乱数リソースを節約する。
図2は、本発明の別の実施形態による乱数発生器2のブロック図である。乱数発生器2は、圧縮回路20がさらに含まれる点で乱数発生器1と異なり、以下の議論はこの違いに焦点が当てられる。
圧縮回路20は、結合回路16とライブ乱数プール17との間に結合され得る。圧縮回路20は、真の乱数列Strnを圧縮状態の真の乱数列Strn’に圧縮し、データセキュリティをさらに高めることができる。圧縮回路20は、XORゲートを含み得る。一部の実施形態では、圧縮回路20は、32ビットの真の乱数列Strnを8ビットの圧縮状態の真の乱数列Strn’に圧縮する8つの4入力XORゲートを含み得る。他の実施形態では、圧縮回路20は、128ビットバッファと、これに結合された32個の4入力XORゲートとを含み得る。128ビットバッファは、4つの32ビットの真の乱数列Strnを、4クロックサイクルのバッファ期間で順次格納することができる。4つの32ビットの真の乱数列Strnがバッファされた後に、32個の4入力XORゲートのそれぞれは、4つの32ビットの真の乱数列Strnの4つの対応するビットを、圧縮状態の真の乱数列Strn’内の対応する1ビットに圧縮し、これにより、32ビットの圧縮状態の真の乱数列Strn’を生成することができる。次に、圧縮状態の真の乱数列Strn’は、ライブ乱数プール17に送信され、更新される。実施形態では、特定の量及び特定のタイプのXORゲートが使用されるが、他の量及び/又は他のタイプのXORゲートを使用して圧縮回路20を実装してもよく、例えば4つの8入力XORゲートを使用してもよい。同様に、設計要件を満たすために、バッファの他のサイズとバッファ期間を採用してもよい。
乱数発生器1と比較して、乱数発生器2は、データのセキュリティを高めるために圧縮回路20を使用する。
図3は、乱数発生器1及び2で使用するためのカウンタ14のブロック図を示す。カウンタ14は、条件付きフィードバック回路140及び線形フィードバック・シフト・レジスタ(LFSR)142を含み得る。条件付きフィードバック回路140は、動的エントロピー・ソース12(1)~12(N)及び結合回路16に結合され得る。LFSR142は、条件付きフィードバック回路140と結合回路16との間に結合され得る。
条件付きフィードバック回路140は、結合回路16からフィードバック経路Pfbを介してi番目の真の乱数列Strnを受け取り、i番目の動的エントロピー・ビットE(1)~E(N)及び真の乱数列Strnの所定のビットに従って再シード制御ビットBcを生成することができる。条件付きフィードバック回路140は、再シード制御ビットBcを生成するために、i番目の動的エントロピー・ビットE(1)~E(N)及びその所定のビットに対してXOR演算を実行するXORゲートを含み得る。LFSR142は、再シード制御ビットBcに従って再シードされて、i番目の動的乱数列Sdを生成することができる。条件付きフィードバック回路140は、動的エントロピー・ビットE(1)~E(N)又は真の乱数列Strnの所定のビットの更新時に、再シード制御ビットBcを生成し得る。すなわち、再シード制御ビットBcを各クロックサイクルで更新してもよく、LFSR142は、再シード制御ビットBcの値に応じて各クロックサイクルで再シードしてもよい。
図4は、図1及び図2の例示的な動的エントロピー・ソース12(n)のブロック図であり、nは1~Nの範囲の正の整数である。動的エントロピー・ソース12(n)は、第1の発振器40、第2の発振器42、及び結合回路44を含み得る。結合回路44は、フリップフロップを含み得る。第1の発振器40及び第2の発振器42は、フリップフロップ440に結合され得る。
第1の発振器40は、第1の周波数で発振する第1の発振信号OSC1を生成することができる。第2の発振器42は、第2の周波数で発振する第2の発振信号OSC2を生成することができる。結合回路44は、第1の発振信号OSC1と第2の発振信号OSC2とを結合して、動的エントロピー・ビットE(n)を生成することができる。第1の発振器40及び第2の発振器42は、リング発振器であってもよい。
いくつかの実施形態では、フリップフロップ440は、第2の発振信号OSC2を使用して第1の発振信号OSC1をサンプリングして、動的エントロピー・ビットE(n)を生成することができる。いくつかの実施形態では、第1の周波数及び第2の周波数は異なり、第1の周波数及び第2の周波数のそれぞれは、第1の発振信号OSC1及び第2の発振信号OSC2のレベル遷移をミスアライメントする素数の倍数であり得る。例えば、第1の周波数は3MHzであり得、第2の周波数は5MHzであり得る。1つの素数倍数は別の素数倍数によって完全に除算されない場合があるため、フリップフロップ440は、動的エントロピー・ビットE(n)を順次生成し得る。他の実施形態では、第1の周波数及び第2の周波数は実質的に等しく、例えば、第1の周波数と第2の周波数とは両方とも3MHzであってもよい。第1の発振器40及び第2の発振器42のデバイス、経路指定及び電圧及び動作温度環境が完全に同一ではない可能性があるので、第1の発振信号OSC1及び第2の発振信号OSC2は継続的に互いに競合してフリップフロップ440に到達し、それにより、任意の論理レベル「0」又は論理レベル「1」を動的エントロピー・ビットE(n)として順次生成することができる。
図5は、乱数発生器1及び2で使用するための出力乱数Srnoを生成する方法500のフローチャートである。方法500は、出力乱数Srnoを生成するステップS502及びS504を含む。ステップS502は、初期乱数プール10内の固定の真の乱数を使用してライブ乱数プール17を更新するために使用される。ステップS504は、出力乱数Srnoを生成し、静的乱数プール11を常に更新するために使用される。あらゆる合理的なステップ変更又は調整は、本開示の範囲内である。ステップS502及びS504は以下のように説明される。
ステップS502:初期化フェーズ中に、初期乱数プール10から初期の静的乱数列Ssrn(0)を生成し、初期の静的乱数列Ssrn(0)及び初期の動的乱数列Sdに従って初期の真の乱数列Strnを生成し、且つ初期の真の乱数列Strnに従って静的乱数プール11を開始する。
ステップS504:動作フェーズ中に、ライブ乱数プール17から出力乱数Srnoを出力し、静的乱数プール11から後続の静的乱数列Ssrn(1)を生成し、後続の静的乱数列Ssrn(1)及び後続の動的乱数列Sdに従って後続の真の乱数列Strnを生成し、後続の真の乱数列Strn(1)に従って静的乱数プール11を更新する。
方法500の詳細は、前の段落で提供されており、ここでは繰り返さない。方法500は、初期フェーズにおいて、初期乱数プール10内の真の乱数の固定セットを使用して、初期の真の乱数列Strnを生成し、初期の真の乱数列Strnで静的乱数プール11を開始する。動作フェーズの後の方で、方法500は、静的乱数プール11を一定の方法で更新しながら、静的乱数プール11を使用して出力乱数Srnoを出力し、データのセキュリティを確保しながら乱数リソースを節約する。
図6は、図5のステップS502を実施する方法のフローチャートである。この方法は、初期乱数プール10内の真の乱数の固定セットを使用して、静的乱数プール11を開始するステップS602~S612を含む。あらゆる合理的なステップ変更又は調整は、本開示の範囲内である。ステップS602~S612は以下のように説明される。
ステップS602:初期乱数プール10は、初期の静的乱数列Ssrn(0)を生成する。
ステップS604:動的エントロピー・ビットE(1)~E(N)を生成し、動的エントロピー・ビットE(1)~E(N)に従って初期の動的乱数列Sdを生成する。
ステップS606:初期の静的乱数列Ssrn(0)と初期の動的乱数列Sdとを組み合わせて、初期の真の乱数列Strnを生成する。
ステップS608:初期の真の乱数列Strnに従ってライブ乱数プール17を更新する。
ステップS610:ライブ乱数プール17が完全に更新されたか?そうならば、ステップS612に進む。そうでなければ、ステップS602に進む。
ステップS612:静的乱数プール11を更新する。ステップS504に進む。
方法の詳細は前の段落で提供されており、ここでは繰り返さない。この方法は、初期乱数プール10内の真の乱数の固定セットを使用して、初期の真の乱数列Strnを生成し、静的乱数プール11を更新する。従って、この方法を使用するデバイスは、初期乱数プール10内の真の乱数の固定セットから、真の乱数の一意のセットを導き出し、データのセキュリティを確保しながらリソースを節約することができる。
図7は、図5のステップS504を実施する方法のフローチャートである。この方法は、静的乱数プール11を連続的且つ反復的に更新し、且つライブ乱数プール17から出力乱数Srnoを出力するためのステップS701~S712を含む。ステップS701は、出力乱数Srnoを出力するために使用される。ステップS702~S710は、真の乱数の以前のセットに基づいて、真の乱数の新しいセットを生成するために使用される。ステップS712は、真の乱数の新しいセットをライブ乱数プール17に更新するために使用される。あらゆる合理的なステップの変更又は調整は、本開示の範囲内である。ステップS701~S712は以下のように説明される。
ステップS701:ライブ乱数プール17は、出力乱数Srnoを出力する。
ステップS702:静的乱数プール11は、後続の静的乱数列Ssrn(1)を生成する。
ステップS704:動的エントロピー・ビットE(1)~E(N)を生成し、動的エントロピー・ビットE(1)~E(N)に従って後続の動的乱数列Sdを生成する。
ステップS706:後続の静的乱数列Ssrn(1)と後続の動的乱数列Sdとを組み合わせて、後続の真の乱数列Strnを生成する。
ステップS708:後続の真の乱数列Strnに従ってライブ乱数プール17を更新する。
ステップS710:ライブ乱数プール17が完全に更新されたか?そうならば、ステップS712に進む。そうでなければ、ステップS702に進む。
ステップS712:ライブ乱数プール17内の乱数を使用して静的乱数プール11を更新する。ステップS702に進む。
方法の詳細は前の段落で提供されており、ここでは繰り返さない。この方法は、静的乱数プール11からの真の乱数の以前のセットを使用して、静的乱数プール11を継続的且つ反復的に更新し、定期的に変化するライブ乱数プール17から出力乱数Srnoを出力し、データのセキュリティをさらに高めながらリソースを節約する。
当業者は、本発明の教示を保持しながら、装置及び方法の多くの修正及び変更を行うことができることを容易に認めるであろう。従って、上記の開示は、添付の特許請求の範囲の境界によってのみ限定されると解釈すべきである。

Claims (18)

  1. 乱数発生器であって、当該乱数発生器は、
    初期乱数プール及び静的乱数プールを含み、且つ前記初期乱数プール及び前記静的乱数プールの一方から静的乱数列を出力するように構成される静的乱数発生器と、
    動的エントロピー・ビットを生成するように構成される少なくとも1つの動的エントロピー・ソースと、
    該少なくとも1つの動的エントロピー・ソースに結合され、且つ前記動的エントロピー・ビットに従って動的乱数列を生成するように構成されるカウンタと、
    前記静的乱数発生器及び前記カウンタに結合され、前記静的乱数列を受け取り、且つ前記静的乱数列及び前記動的乱数列に従って真の乱数列をライブ乱数プールに出力するように構成される結合回路と、を含み、
    前記静的乱数プールは、ライブ乱数プールが完全に更新されたときに更新されるように構成され
    前記静的乱数プール及び前記ライブ乱数プールに結合される更新回路をさらに含み、該更新回路は、前記ライブ乱数プールが完全に更新されたときに、圧縮及び非線形関数を前記ライブ乱数プールからの乱数に適用して、更新された真の乱数を生成し、該更新された真の乱数を前記静的乱数プールに更新するように構成される、乱数発生器。
  2. 前記静的乱数発生器は、前記初期乱数プール及び前記静的乱数プールに結合されるマルチプレクサをさらに含み、該マルチプレクサは、前記静的乱数プールからの初期の静的乱数列、及び前記静的乱数プールからの後続の静的乱数列の一方を前記静的乱数列として選択するように構成される、請求項1に記載の乱数発生器。
  3. 前記ライブ乱数プールは、前記真の乱数列で更新される、請求項1に記載の乱数発生器。
  4. 前記ライブ乱数プールは、該ライブ乱数プールで更新された乱数の量が目標量に達すると、完全に更新される、請求項1に記載の乱数発生器。
  5. 前記ライブ乱数プールは、該ライブ乱数プールの更新期間が目標期間に達すると、完全に更新される、請求項1に記載の乱数発生器。
  6. 前記静的乱数プールで更新された乱数を記憶するように構成された不揮発性メモリをさらに含む、請求項1に記載の乱数発生器。
  7. 前記初期乱数プールは、物理的クローン不可関数(PUF)セルアレイ、又は独立同分布確率変数(IID)を有するプールである、請求項1に記載の乱数発生器。
  8. 静的乱数を生成し、且つ該静的乱数を前記初期乱数プールに出力するように構成される決定論的乱数生成器をさらに含む、請求項1に記載の乱数発生器。
  9. 乱数発生器であって、当該乱数発生器は、
    初期乱数プール及び静的乱数プールを含み、且つ前記初期乱数プール及び前記静的乱数プールの一方から静的乱数列を出力するように構成される静的乱数発生器と、
    動的エントロピー・ビットを生成するように構成される少なくとも1つの動的エントロピー・ソースと、
    該少なくとも1つの動的エントロピー・ソースに結合され、且つ前記動的エントロピー・ビットに従って動的乱数列を生成するように構成されるカウンタと、
    前記静的乱数発生器及び前記カウンタに結合され、前記静的乱数列を受け取り、且つ前記静的乱数列及び前記動的乱数列に従って真の乱数列をライブ乱数プールに出力するように構成される結合回路と、を含み、
    前記静的乱数プールは、ライブ乱数プールが完全に更新されたときに更新されるように構成され
    前記カウンタは、
    前記少なくとも1つの動的エントロピー・ソース及び前記結合回路に結合され、且つ前記動的エントロピー・ビット及び前記真の乱数列内の所定のビットに従って再シード制御ビットを生成するように構成される条件付きフィードバック回路と、
    前記条件付きフィードバック回路と前記結合回路との間に結合され、且つ前記再シード制御ビットに従って再シードされるように構成される線形フィードバック・シフト・レジスタと、をさらに含む、乱数発生器。
  10. 前記条件付きフィードバック回路は、各クロックサイクルで前記再シード制御ビットを生成するように構成される、請求項に記載の乱数発生器。
  11. 乱数発生器であって、当該乱数発生器は、
    初期乱数プール及び静的乱数プールを含み、且つ前記初期乱数プール及び前記静的乱数プールの一方から静的乱数列を出力するように構成される静的乱数発生器と、
    動的エントロピー・ビットを生成するように構成される少なくとも1つの動的エントロピー・ソースと、
    該少なくとも1つの動的エントロピー・ソースに結合され、且つ前記動的エントロピー・ビットに従って動的乱数列を生成するように構成されるカウンタと、
    前記静的乱数発生器及び前記カウンタに結合され、前記静的乱数列を受け取り、且つ前記静的乱数列及び前記動的乱数列に従って真の乱数列をライブ乱数プールに出力するように構成される結合回路と、を含み、
    前記静的乱数プールは、ライブ乱数プールが完全に更新されたときに更新されるように構成され
    前記結合回路と前記ライブ乱数プールとの間に結合され、且つ前記真の乱数列を圧縮状態の真の乱数列に圧縮するように構成される圧縮回路をさらに含み、
    前記ライブ乱数プールは、前記圧縮状態の真の乱数列で更新される、乱数発生器。
  12. 出力乱数を生成する方法であって、当該方法は、
    初期化フェーズ中に、初期乱数プールから初期の静的乱数列を生成し、該初期の静的乱数列及び初期の動的乱数列に従って初期の真の乱数列を生成し、且つ該初期の真の乱数列に従って静的乱数プールを開始するステップと、
    動作フェーズ中に、出力乱数を出力し、前記静的乱数プールから後続の静的乱数列を生成し、該後続の静的乱数列及び後続の動的乱数列に従って後続の真の乱数列を生成し、且つ該後続の真の乱数列に従って前記静的乱数プールを更新するステップと、を含み、
    前記初期化フェーズ中に、前記初期の真の乱数列に従って前記静的乱数プールを開始するステップは、
    前記初期の真の乱数列に従ってライブ乱数プールを更新するステップと、
    該ライブ乱数プールが完全に更新されたときに前記静的乱数プールを更新するステップと、を含み、
    前記動作フェーズ中に、前記出力乱数を出力するステップは、
    前記ライブ乱数プールから前記出力乱数を出力するステップを含み、
    前記動作フェーズ中に、前記後続の真の乱数列に従って前記静的乱数プールを更新するステップは、
    前記後続の真の乱数列に従って前記ライブ乱数プールを更新するステップと、
    前記ライブ乱数プールが完全に更新されたときに前記静的乱数プールを更新するステップと、を含み、
    前記ライブ乱数プールが完全に更新されたときに前記静的乱数プールを更新するステップは、
    前記ライブ乱数プールが完全に更新されたときに、更新回路が、圧縮及び非線形関数を前記ライブ乱数プールからの乱数に適用して更新された真の乱数を生成するステップと、前記更新回路が、前記更新された真の乱数を前記静的乱数プールに更新するステップとを含む、方法。
  13. 出力乱数を生成する方法であって、当該方法は、
    初期化フェーズ中に、初期乱数プールから初期の静的乱数列を生成し、該初期の静的乱数列及び初期の動的乱数列に従って初期の真の乱数列を生成し、且つ該初期の真の乱数列に従って静的乱数プールを開始するステップと、
    動作フェーズ中に、出力乱数を出力し、前記静的乱数プールから後続の静的乱数列を生成し、該後続の静的乱数列及び後続の動的乱数列に従って後続の真の乱数列を生成し、且つ該後続の真の乱数列に従って前記静的乱数プールを更新するステップと、を含み、
    前記初期化フェーズ中に、前記初期の真の乱数列に従って前記静的乱数プールを開始するステップは、
    前記初期の真の乱数列に従ってライブ乱数プールを更新するステップと、
    該ライブ乱数プールが完全に更新されたときに前記静的乱数プールを更新するステップと、を含み、
    前記動作フェーズ中に、前記出力乱数を出力するステップは、
    前記ライブ乱数プールから前記出力乱数を出力するステップを含み、
    前記動作フェーズ中に、前記後続の真の乱数列に従って前記静的乱数プールを更新するステップは、
    前記後続の真の乱数列に従って前記ライブ乱数プールを更新するステップと、
    前記ライブ乱数プールが完全に更新されたときに前記静的乱数プールを更新するステップと、を含み、
    前記初期の真の乱数列を圧縮状態の真の乱数列に圧縮する圧縮回路をさらに含み、
    前記初期の真の乱数列に従って前記ライブ乱数プールを更新するステップは、前記圧縮状態の真の乱数列で前記ライブ乱数プールを更新するステップをさらに含む、方法。
  14. 前記初期の真の乱数列に従って前記ライブ乱数プールを更新するステップは、前記初期の真の乱数列で前記ライブ乱数プールを更新するステップを含む、請求項12又は13に記載の方法。
  15. 前記ライブ乱数プールは、該ライブ乱数プールで更新された乱数の量が目標量に達すると、完全に更新される、請求項12又は13に記載の方法。
  16. 前記ライブ乱数プールは、該ライブ乱数プールの更新期間が目標期間に達すると、完全に更新される、請求項12又は13に記載の方法。
  17. 前記静的乱数プールからの乱数を不揮発性メモリに記憶するステップをさらに含む、請求項12又は13に記載の方法。
  18. 条件付きフィードバック回路が、動的エントロピー・ビット及び前記後続の真の乱数列内の所定のビットに従って再シード制御ビットを生成するステップと、
    前記初期化フェーズ中に、前記再シード制御ビットに従って線形フィードバック・シフト・レジスタを再シードして、前記初期の動的乱数列を生成するステップと、
    前記動作フェーズ中に、前記再シード制御ビットに従って前記線形フィードバック・シフト・レジスタを再シードして、前記後続の動的乱数列を生成するステップと、をさらに含む、請求項12又は13に記載の方法。
JP2020125111A 2019-07-25 2020-07-22 乱数発生器及び出力乱数を生成する方法 Active JP7006887B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962878725P 2019-07-25 2019-07-25
US62/878,725 2019-07-25

Publications (2)

Publication Number Publication Date
JP2021022378A JP2021022378A (ja) 2021-02-18
JP7006887B2 true JP7006887B2 (ja) 2022-01-24

Family

ID=71527732

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020121803A Active JP7122722B2 (ja) 2019-07-25 2020-07-16 高速暗号化鍵生成エンジン
JP2020125111A Active JP7006887B2 (ja) 2019-07-25 2020-07-22 乱数発生器及び出力乱数を生成する方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2020121803A Active JP7122722B2 (ja) 2019-07-25 2020-07-16 高速暗号化鍵生成エンジン

Country Status (5)

Country Link
US (2) US11381394B2 (ja)
EP (2) EP3770751B1 (ja)
JP (2) JP7122722B2 (ja)
CN (2) CN112291056B (ja)
TW (2) TWI793429B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11567733B2 (en) * 2020-04-15 2023-01-31 Intel Corporation System, method and apparatus for race-condition true random number generator
US11856114B2 (en) * 2021-02-12 2023-12-26 Taiwan Semiconductor Manufacturing Co., Ltd. Device signature based on trim and redundancy information
US20220261221A1 (en) * 2021-02-18 2022-08-18 PUFsecurity Corporation Random number generator
US11924339B2 (en) 2021-04-15 2024-03-05 Real Random IP, LLC System and method for secure end-to-end electronic communication using a privately shared table of entropy
WO2022221725A1 (en) * 2021-04-15 2022-10-20 Real Random IP, LLC System and method for secure end-to-end electronic communication using a privately shared table of entropy
US11791988B2 (en) * 2021-11-22 2023-10-17 Theon Technology Llc Use of random entropy in cryptography
US20240126509A1 (en) * 2022-10-11 2024-04-18 Analog Devices International Unlimited Company Random number generation

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066879A (ja) 1998-08-21 2000-03-03 Nec Corp 乱数発生装置
JP2000206472A (ja) 1998-11-12 2000-07-28 Communication Research Laboratory Mpt 光カオス乱数発生装置
JP2000259395A (ja) 1999-03-08 2000-09-22 Toshiba Corp 物理乱数発生装置
JP2001043069A (ja) 1999-07-30 2001-02-16 Sony Corp 乱数発生装置
JP2014075082A (ja) 2012-10-05 2014-04-24 Renesas Electronics Corp 乱数生成器および乱数生成方法
JP2014102768A (ja) 2012-11-21 2014-06-05 Toshiba Corp 乱数生成回路
US20180314493A1 (en) 2016-03-08 2018-11-01 Secturion Systems, Inc. Systolic Random Number Generator
JP2019121403A (ja) 2018-01-10 2019-07-22 イーメモリー テクノロジー インコーポレイテッド ランダムコード発生装置

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2567681B2 (ja) * 1988-09-30 1996-12-25 三洋電機株式会社 乱数発生装置
US6954770B1 (en) * 2001-08-23 2005-10-11 Cavium Networks Random number generator
JP4491706B2 (ja) * 2002-04-19 2010-06-30 ソニー株式会社 暗号化復号化装置およびデータ受信装置
KR100575182B1 (ko) 2002-09-13 2006-05-02 가부시끼가이샤 도시바 난수 발생 회로
DE10250831B3 (de) 2002-10-31 2004-06-17 Infineon Technologies Ag Vorrichtung und Verfahren zum Erzeugen einer pseudozufälligen Folge von Zahlen
JP4248950B2 (ja) 2003-06-24 2009-04-02 株式会社ルネサステクノロジ 乱数発生装置
US7496616B2 (en) 2004-11-12 2009-02-24 International Business Machines Corporation Method, apparatus and system for resistance to side channel attacks on random number generators
TW200629192A (en) 2005-02-03 2006-08-16 Sanyo Electric Co Random number generating circuit
TWI307038B (en) 2005-12-27 2009-03-01 Ind Tech Res Inst Random number generator for radio frequency identifciation tag and seed number generator for generating a seed number for operation of the random number generator
US7894602B2 (en) * 2006-03-31 2011-02-22 Sap Ag System and method for generating pseudo-random numbers
JP2008003438A (ja) 2006-06-26 2008-01-10 Sony Corp 乱数生成装置、乱数生成制御方法、メモリアクセス制御装置、および、通信装置
ATE459912T1 (de) 2006-11-28 2010-03-15 Koninkl Philips Electronics Nv Verfahren zur generierung von zufallszahlen mit einer ausgangszahl
JP2008180592A (ja) 2007-01-24 2008-08-07 Nec Electronics Corp テストパターン生成回路及びテスト回路
US20090083361A1 (en) 2007-09-24 2009-03-26 Moore Charles H Shift-add based multiplication
JP4308293B2 (ja) 2007-11-20 2009-08-05 際国 董 乱数生成装置及び方法
CN101242265A (zh) * 2008-03-07 2008-08-13 四川虹微技术有限公司 安全系统中流密码、伪随机数产生方法
CN102165458B (zh) * 2008-09-26 2015-05-27 皇家飞利浦电子股份有限公司 认证装置和用户
GB2469393C (en) * 2010-04-22 2014-08-06 Cen Jung Tjhai Public encryption system using deliberatily corrupted codewords from an error correcting code
US8667265B1 (en) * 2010-07-28 2014-03-04 Sandia Corporation Hardware device binding and mutual authentication
JP2012174147A (ja) 2011-02-23 2012-09-10 Fujitsu Ltd 情報提供プログラム、情報提供装置および情報提供方法
JP5813380B2 (ja) 2011-06-03 2015-11-17 株式会社東芝 半導体記憶装置
US9047152B2 (en) 2013-01-16 2015-06-02 Skymedi Corporation Delay device, method, and random number generator using the same
US9060265B2 (en) * 2013-02-06 2015-06-16 I-Shou University Wireless sensor network and central node device thereof
JP6285536B2 (ja) * 2013-04-18 2018-02-28 リソフトデブ,インコーポレイテッド データを暗号化するシステムおよび方法
CA2922701C (en) * 2013-08-28 2021-05-04 Stc.Unm Systems and methods for leveraging path delay variations in a circuit and generating error-tolerant bitstrings
DE102013109315B4 (de) * 2013-08-28 2016-08-04 Infineon Technologies Ag Verfahren und Datenverarbeitungseinrichtung zum Rekonstruieren eines Vektors
JP6372295B2 (ja) 2014-10-15 2018-08-15 富士通株式会社 物理乱数生成回路の品質テスト方法、乱数発生器および電子装置
US9696965B2 (en) * 2014-12-16 2017-07-04 Nuvoton Technology Corporation Input-dependent random number generation using memory arrays
US20160179472A1 (en) * 2014-12-19 2016-06-23 Megachips Corporation Random number generation device and method for generating random number
US10142103B2 (en) 2015-12-07 2018-11-27 The Boeing Company Hardware assisted fast pseudorandom number generation
US10855477B2 (en) * 2016-08-04 2020-12-01 Macronix International Co., Ltd. Non-volatile memory with physical unclonable function and random number generator
JP7013447B2 (ja) 2016-08-19 2022-01-31 オラクル・インターナショナル・コーポレイション 多様なソースからのエントロピの収集
US10785022B2 (en) * 2016-09-13 2020-09-22 Hiroshi Watanabe Network without abuse of a private key
US10078493B2 (en) * 2016-10-10 2018-09-18 International Business Machines Corporation Secured pseudo-random number generator
US10511451B2 (en) * 2016-11-04 2019-12-17 Taiwan Semiconductor Manufacturing Company Ltd. Physically unclonable function (PUF) device and method of extending challenge/response pairs in a PUF device
US10140096B1 (en) 2016-12-14 2018-11-27 Amazon Technologies, Inc. Preventing ring oscillator phase-lock
US10742405B2 (en) 2016-12-16 2020-08-11 The Boeing Company Method and system for generation of cipher round keys by bit-mixers
GB2551865B (en) * 2017-01-14 2020-03-18 PQ Solutions Ltd Improved stream cipher system
JP6972562B2 (ja) * 2017-01-24 2021-11-24 セイコーエプソン株式会社 回路装置、発振デバイス、物理量測定装置、電子機器及び移動体
EP3407335B1 (en) * 2017-05-22 2023-07-26 Macronix International Co., Ltd. Non-volatile memory based physically unclonable function with random number generator
US10649735B2 (en) 2017-09-12 2020-05-12 Ememory Technology Inc. Security system with entropy bits
US11646867B2 (en) * 2017-12-22 2023-05-09 The Boeing Company Systems and methods implementing countermeasures to phase tracking attacks on ring oscillator based entropy sources
EP3759866A1 (en) * 2018-03-02 2021-01-06 Intertrust Technologies Corporation Trust and identity management systems and methods
US11055065B2 (en) 2018-04-18 2021-07-06 Ememory Technology Inc. PUF-based true random number generation system
CN108681442B (zh) 2018-05-07 2021-10-19 温州大学 一种具有自适应匹配功能的真随机数发生器
CN109508174A (zh) 2018-11-05 2019-03-22 杭州电子科技大学 一种单级真随机数发生器
US11126404B2 (en) * 2019-05-20 2021-09-21 Nxp B.V. Random number generator using multiple entropy sources and a method for generating random numbers

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066879A (ja) 1998-08-21 2000-03-03 Nec Corp 乱数発生装置
JP2000206472A (ja) 1998-11-12 2000-07-28 Communication Research Laboratory Mpt 光カオス乱数発生装置
JP2000259395A (ja) 1999-03-08 2000-09-22 Toshiba Corp 物理乱数発生装置
JP2001043069A (ja) 1999-07-30 2001-02-16 Sony Corp 乱数発生装置
JP2014075082A (ja) 2012-10-05 2014-04-24 Renesas Electronics Corp 乱数生成器および乱数生成方法
JP2014102768A (ja) 2012-11-21 2014-06-05 Toshiba Corp 乱数生成回路
US20180314493A1 (en) 2016-03-08 2018-11-01 Secturion Systems, Inc. Systolic Random Number Generator
JP2019121403A (ja) 2018-01-10 2019-07-22 イーメモリー テクノロジー インコーポレイテッド ランダムコード発生装置

Also Published As

Publication number Publication date
TW202105168A (zh) 2021-02-01
TWI749654B (zh) 2021-12-11
JP2021022378A (ja) 2021-02-18
TWI793429B (zh) 2023-02-21
EP3770751A1 (en) 2021-01-27
JP7122722B2 (ja) 2022-08-22
JP2021022924A (ja) 2021-02-18
US11876899B2 (en) 2024-01-16
CN112286493A (zh) 2021-01-29
CN112291056A (zh) 2021-01-29
CN112291056B (zh) 2024-02-23
TW202105957A (zh) 2021-02-01
US11381394B2 (en) 2022-07-05
EP3770751B1 (en) 2023-10-18
EP3770752A1 (en) 2021-01-27
US20210026603A1 (en) 2021-01-28
US20210028935A1 (en) 2021-01-28

Similar Documents

Publication Publication Date Title
JP7006887B2 (ja) 乱数発生器及び出力乱数を生成する方法
EP2695052B1 (en) Random number generating system based on memory start-up noise
US20050129247A1 (en) Device and method for generating random numbers using a pseudo random number generator
CN111694545B (zh) 随机数产生器
US10333708B1 (en) Hybrid random-number generator
US9015218B2 (en) Random number generator, encryption device, and authentication device
KR101987141B1 (ko) 난수 발생기
CN104704768A (zh) 用于从用作物理不可克隆功能的存储器中生成密码密钥的系统
KR20080106180A (ko) 신호 제너레이터에 기반한 장치 보안
US11487505B2 (en) Physical unclonable function based true random number generator, method for generating true random numbers, and associated electronic device
US9696965B2 (en) Input-dependent random number generation using memory arrays
Yakut et al. Secure and efficient hybrid random number generator based on sponge constructions for cryptographic applications
TWI801742B (zh) 熵產生器及產生增強熵的方法
Lee et al. Implementing a phase detection ring oscillator PUF on FPGA
US20230139712A1 (en) Circuit apparatus and methods for puf source and generating random digital sequence
WO2016128463A1 (en) Method to generate high quality random mask from small entropy source
Chen et al. A dynamic reseeding DRBG based on SRAM PUFs
KR102197744B1 (ko) 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치
Krentz et al. Secure self-seeding with power-up SRAM states
TWI782540B (zh) 基於物理不可複製功能的真隨機數產生器以及用於產生真隨機數的方法
Anchana et al. Design of PUF Based Chaotic Random Number Generator
Mulhem et al. Mini-Block-Based Cipher Class for Physically Clone-Resistant Devices
Li et al. An algorithm for constructing a minimal register with non-linear update generating a given sequence
CN111193584B (zh) 基于操作系统的敏感数据的加密方法及装置、存储介质
Hernández-Morales et al. Co-design for Generation of Large Random Sequences on Zynq FPGA

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211112

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211223

R150 Certificate of patent or registration of utility model

Ref document number: 7006887

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150