JP6900176B2 - ハードウェア支援型の擬似乱数の高速生成 - Google Patents

ハードウェア支援型の擬似乱数の高速生成 Download PDF

Info

Publication number
JP6900176B2
JP6900176B2 JP2016232308A JP2016232308A JP6900176B2 JP 6900176 B2 JP6900176 B2 JP 6900176B2 JP 2016232308 A JP2016232308 A JP 2016232308A JP 2016232308 A JP2016232308 A JP 2016232308A JP 6900176 B2 JP6900176 B2 JP 6900176B2
Authority
JP
Japan
Prior art keywords
function
mixing
pseudo
random number
counter value
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
JP2016232308A
Other languages
English (en)
Other versions
JP2017107195A (ja
Inventor
ハーズ ラズロ
ハーズ ラズロ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Boeing Co
Original Assignee
Boeing Co
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 Boeing Co filed Critical Boeing Co
Publication of JP2017107195A publication Critical patent/JP2017107195A/ja
Application granted granted Critical
Publication of JP6900176B2 publication Critical patent/JP6900176B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/582Pseudo-random number 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/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
    • H04L9/0625Block 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
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom 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/0668Pseudorandom 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied 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)

Description

本開示は、概して、データの暗号化に関し、特に、暗号鍵、調整可能暗号(tweakable ciphers)のための調整値(tweak values)、並びに、暗号の多様化及びメッセージの認証コードのためのノンス(nonces)として使用可能な疑似乱数を生成し、且つ、サイドチャネル(side channels)への漏洩を防ぐために情報を隠すように改良されたシステム及び方法に関する。
航空産業は、重要な情報技術(information technology:IT)インフラストラクチャの安定した機能性に大きく依存している。他の多くの産業と同様に、航空産業においては、このようなITインフラストラクチャに対して十分なセキュリティを提供し、サイバー事象の影響を緩和することが求められている。サイバー事象とは、例えば、データ接続、データ送信、及び演算システムなどの航空機ネットワークの運用を危険に晒したり、危険に晒そうと試みたりする悪意ある事象や不審な事象をいう。
多くの科学的用途、工学的用途、及び、ITセキュリティの用途においては、ランダムに見える多くの数字(random-looking numbers)が必要であり、これらの数字は、標準の統計的検定(statistical tests)では、真性乱数とは区別がつかない。一般に、マイクロプロセッサ上のソフトウェア、又は、特殊用途向け電子ハードウェアにおいて、アルゴリズムにより数字が生成される場合、それらの数字は、疑似乱数と呼ばれる。疑似乱数は、物理システムのシミュレート、構造化データのホワイトニング(whitening structured data)、及び、数理問題(numerical mathematical problems)を解決するためのランダム化演算などの用途において有用である。ITセキュリティの用途において、疑似乱数は、ノンス(一回だけ用いられる番号)、初期値(IV)、データハイディング(data hiding)、及び、暗号鍵導出(cryptographic key derivation)などのプロトコルに用いられる。
従来、疑似乱数は、マイクロプロセッサで生成されるが、当該マイクロプロセッサは、各バイトの生成に数クロックサイクルを要する。最も速く実用的なアルゴリズムは、64ビットのプロセッサ上で4…12クロックサイクルで8バイト(64ビット)を生成する。いくつかの用途、例えば、短時間で多量の疑似乱数が必要な場合などには、この疑似乱数の生成時間は長すぎる。場合によっては、アルゴリズムを高速化するために電子ハードウェアをカスタム設計することもできる。しかしながら、マイクロプロセッサを用いる従来の疑似乱数生成器は、低品質な(相関性や偏りのある)数字を生成し、低速であり、タスクでマイクロプロセッサを拘束し、メモリバスを滞らせ、大量の電力/エネルギーを消費する(この結果、放熱及びバッテリの消費が増大する)。
従来の疑似乱数生成器のさらなる欠点としては、これらの生成器は、サイドチャネル攻撃から保護されていないため、ITのセキュリティ用途において多大なリスクが生じることである。データを処理する電子装置の稼働中、秘密鍵や機密データに関する情報のいくつかは、常にサイドチャネルに漏洩するものがあるが(意図しない情報拡散の物理的な原因)、そのような原因には、データに依存する応答時間のばらつき、消費電力の変動、又は、超音波若しくは電磁波の放射が含まれる。このため、攻撃者が電子装置に対して物理的にアクセスできない場合には、保存データ又は送信データの機密性及び完全性は、一般に、暗号手段により確保することができる。
したがって、1クロックサイクルで多くの疑似乱数を生成するとともに、処理時間、システムの複雑性、電子回路の寸法、又は、エネルギーの消費を大幅に増大させることなくサイドチャネルの漏洩を低減し、この低減により安全性を向上させることが可能な改良型疑似乱数生成器を提供することが望ましい。
上述した背景技術を考慮して、本開示の例示的な実施形態は、疑似乱数を生成するためのシステム及び方法を提示する。当該システム及び方法は、コールカウンタのカウンタ値を初期化し、ビット単位のカウンタ値をコールカウンタから混合関数へ送り、ビット単位のカウンタ値に対して混合処理を行って疑似乱数を生成するステップを含む。カウンタ値は、所定値でインクリメントされ、生成された疑似乱数は、混合関数の後続するサイクルのための入力値として用いることができる。疑似乱数を生成するための上記システム及び方法は、さらに、入力レジスタの容量を超えない範囲でカウンタ値の全体をできる限り多く繰り返すことにより、入力レジスタに入力を行い、入力レジスタにおける残りの空いたビットにカウンタ値の個々のビットを入力する、各ステップを含む。暗号化データは、生成された疑似乱数に基づいて記憶装置のメモリに保存することができる。
本開示の実施形態において、混合処理ステップは、混合関数により実行される。混合関数は、セグメントの連結により、ビット形態のカウンタ値の入力の第1セグメントをビット形態の出力の第1セグメントとしてマッピングする。混合関数は、可逆的且つ非線形であり、排他的論理和「XOR」ツリー混合ユニット、置換転置混合ユニット、又は、二重混合ファイステル混合ユニットであってもよい。混合関数は、並列に機能する少なくとも2つの混合関数により実行されてもよく、これらの少なくとも2つの混合関数からの出力は、XOR処理される。また、疑似乱数は、一方向性関数により処理されてもよいし、或いは暗号ハッシュ関数を用いてハッシュ化され、一方向性の処理又はハッシュ化の結果は、混合関数に後続するサイクルのための入力値として用いられる。
本明細書で述べた特徴、機能、及び利点は、様々な例示的な実施形態において個別に達成することができ、また、他の例示的な実施形態と組み合わせることもできる。さらなる詳細については、以下の説明及び図面を参照することによって明らかになるであろう。
本開示の例示的な実施形態を一般的な文言を用いて説明してきたが、以下では、添付の図面を参照する。これらの図面は、必ずしも正確な縮尺率で描かれているものではない。
本開示の例示的な実施形態による混合関数のためのXORツリー型の鍵生成器を示すロジック図である。 本開示の例示的な実施形態による混合関数のための置換転置ネットワーク型の鍵生成器を示すロジック図である。 本開示の例示的な実施形態による混合関数のための二重混合ファイステルネットワークを示すロジック図である。 本開示の例示的な実施形態による疑似乱数の生成方法を示すブロック図である。 航空機の製造及び保守方法を示すブロック図である。 航空機の概略図である。
本開示のいくつかの実施形態を、添付図面を参照して以下でより詳しく説明する。なお、図面には、本開示の実施形態のうちのいくつかが示されているが、全てが示されているわけではない。実際、本開示の様々な実施形態は、多くの異なる形態で実施することができるものであり、本明細書に記載の実施形態に限定されるものと解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が十分且つ完全なものとなるように、そして、本開示の範囲を当業者に十分に伝えるために提示するものである。例えば、特に明記しない限り、第1、第2などの文言は、特定の順序を示しているわけではない。また、ある物体が、他の物体の上方にあると説明されていても(特に明記しない限り)、これに代えて、その物体は下方にあってもよいし、その逆であってもよい。また、同様に、ある物体が、他の物体の左側にあると説明されていても、これに代えて、その物体は右側にあってもよいし、その逆であってもよい。同様の符号は、図面全体に亘って同様の要素を示している。
本開示の例示的な実施形態は、主に、航空用途に関連させて説明している。しかしながら、例示的な実施形態は、航空産業及びそれ以外の産業の両方において、他の様々な用途に関連させて用いることができる。
本開示の例示的な実施形態によれば、複雑且つ非線形な方法で入力を難読化する混合関数(mixing function)を用いることにより、クロックサイクル毎に疑似乱数を生成するように改良されたシステムが提供される。
疑似乱数生成器(pseudorandom number generator:PRNG)は、シードにより初期化されなければならない。シードは、物理乱数、又は、ユーザ供給値であり、後に生成されるシーケンスを特有なものとすることができる。シードを用いてPRNGを初期化した後は、複数の要求(コール)を発することができる。多数のコールの各々は、前回のものとは異なる疑似乱数を返す。ある回数の要求(コール)の後、返された疑似乱数の繰り返しが始まる。真の乱数の挙動(behavior)を模倣するために、(低い確率での)繰り返しが許容可能であるか、或いは、望ましい場合、生成された疑似乱数を切り取れば(truncated)よい。繰り返しが許容可能ではない場合、意図する用途に対して十分に長い周期を確保するようにする。周期が再度開始される前に、PRNGに対して、新たに取得した物理乱数を再シードする(re-seeding)ことにより、周期性の発生を妨ぐことができる。
上述したように、本開示の例示的な実施形態による改良型のPRNGは、混合関数を用いる。このような混合関数は、大量の秘密鍵材料に依存して機能する。この秘密鍵材料は、ハードコーディング(hard coded)、ヒューズへの焼き付け、又は、フリップフロップなどの揮発性メモリへの保存が可能である。秘密鍵材料は、一群の装置における全ての装置のためにハードコーディングしてもよいし、特定の装置の初期化を行う際に設定してもよいし、リセットを行う際又はPRNGに再シードするための明示的な要求を行う際に生成してもよい。
混合関数は、暗号に似ているが、暗号よりも遥かに高速である。また、混合関数は、入力と出力との間に相関関係があるため、暗号よりも安全性が低いため、それ単独では、暗号化処理には通常適さない。しかしながら、混合関数の入力又は出力のいずれかが攻撃者から隠されている場合、攻撃者は、従来の暗号解読攻撃やサイドチャネル攻撃を仕掛けることができない。したがって、高速の混合関数は、秘密鍵が別の秘密鍵を生み出すような暗号鍵の生成、及び、疑似乱数シーケンス、特にこれらの乱数が内部で用いられ、盗聴者から隠されている場合の疑似乱数シーケンスの生成に理想的である。
改良型PRNGでの使用に適した混合関数は、以下の特性を有する。
1)nビットの入力をnビットの出力にマッピングする(mapped)(n=ブロックサイズ)
2)混合処理は、大量の秘密鍵材料に依存しており、大量の秘密鍵材料は、1つの短い鍵から、或いは、真性乱数生成器により生成することが可能である。
3)混合関数は、全単射である(可逆性を有する)
4)全ての入力ビットは、全ての出力ビットに対して非線形に影響を及ぼす。
5)ほとんどの非空の(nonempty)入力ビットの組(これらは、鍵材料から個々に選択される)もまた、全ての出力ビットに影響を及ぼす(影響が打ち消されることはない)。
本開示の例示的な実施形態によれば、PRNGでの使用に適した混合関数は、XORツリー(図1)、置換転置ネットワーク(substitution-permutation networks)(図2)、及び、二重混合ファイステルネットワーク(double-mix Feistel networks)(図3)である。上述したような混合関数の非線形性は、シフトデータの加算又はSボックスによりもたらされ、Sボックスは、(N)AND/ORゲートに縮退(degenerate)することができる(2×1ビットのSボックス)。
次に、混合関数がXORツリーである鍵生成器を示す図1を参照すると、入力ビットA1、A2、A3、A4…は、XORを行うために、対応するサブ鍵K1、K2、K3、K4…を選択する。最終的なスクランブル演算(scramble operation)のステップにより、構成を非線形にすることができる。このスクランブル演算は、回転加算演算(rotate-add operations)、又は、一連の非線形なSボックス演算を含みうる。XORツリー型の鍵生成器は、さらに、追加の入力選択とともに、第2組のサブ鍵を含みうる。サブ鍵は、回転、加算、又はXOR演算を含むビット操作演算により、いくつかのベースサブ鍵(base subkeys)から生成することができる。
次に、混合関数が置換転置ネットワークである鍵生成器を示す図2を参照すると、入力ビットは、ロジック図の上部から与えられ、出力は、ロジック図の底部から取り出される。サブ鍵Kiは、個々のランダムに生成された秘密鍵であってもよいし、いくつかのベースサブ鍵から導き出されてもよい。S1、S2…は、小さい非線形置換の可逆関数(non-linear substitution invertible functions)である。混合ネットワークの層数は、(全ての入力ビットが全ての出力ビットに影響する場合)混合処理の全深さ(full mixing depth)の少なくとも2倍に設定してもよいし、それ以下に設定して、回路の総遅延がクロックサイクルを超えないようにしてもよい。
次に、混合関数が二重混合ファイステルネットワークである鍵生成器を示す図3を参照すると、Fは、復元が非常に難しい(又は、不可能な)非線形関数であるが、Gは、可逆である。同一の回路のいくつかの層はカスケード接続される。並列動作する電気回路を用いた実施形態においては、二重混合ファイステルネットワークの1つの層の混合性能は、従来のファイステルネットワークの1つの層の混合性能の2倍である。[L0,R0]は、混合関数の入力であり、出力は、ロジック図の最後に繰り返される層の下部から取り出される。混合ネットワークの層数は、総遅延が1つのクロックサイクルに収まる範囲内でなるべく多く設定される。
上述した混合関数は、以下の例に示すように、疑似乱数生成のいくつかの演算モードにおいて用いることができる。
図4に示すように、カウンタモードにおいては、カウンタが、(短い)シードに初期化され(ブロック402)、ビット単位のカウンタ値が混合関数処理へと送られる(ブロック408)。図1〜図3に関連させて上述した混合関数のうちの1つに従って混合処理が行われ、疑似乱数が生成される(ブロック410)。疑似乱数が要求される毎に、所定の値だけカウンタがインクリメントされ(ブロック424)、カウンタは、オーバーフロー時にその値をラップアラウンドして(wrap around)、0からカウントを続ける。カウンタは、PRNGに再シードする際にリセットされる。混合関数処理において入力値が異なると出力値も異なるため、カウンタは、例えば、繰り返しが発生するまでに40億の固有な疑似乱数を生成することができる32ビットの無符号整数とすることができる。必要であれば、より長いカウンタを用いて、入力ビットの残りを0に設定するか、或いは他の一定のビットパターン(このパターンは、シードから導出されうる)に設定することができる。さらに、20ビットなどのより短いカウンタを用いることもできるが、この場合、100万回のコール(220)の後、PRNGに対して真性乱数値が再シードされる。
スクランブルカウンタモードにおいては、上述したカウンタ(コールカウンタ)が用いられるが、入力ビットは不定値に初期化される(ブロック402)。例えば、31ビットのカウンタを用いて、その値の全体を、入力レジスタに収まる範囲内でなるべく多く繰り返すようにしてもよい。256ビット幅の入力レジスタの場合、31ビットのカウンタ値は、256/31=8(余りは8)であるため、全体で8回繰り返すことができる。余りの8は、カウンタ値の8つの個々のビット(最下位ビット)に対応しており、これらのビットは、入力レジスタの残りのビットに入力するために再度使用される最下位ビットであると看做される(ブロック406)。スクランブルカウンタモードにおいては、ビット単位のカウンタ値が、例えば、カウンタ値に対して混合処理を行う(ブロック410)ために用いられる置換転置混合関数(図2)などの混合関数へと送られる場合(ブロック408)、カウンタ幅は、Sボックスの入力サイズの倍数でない方が好ましい。これは、カウンタビットが、異なるSボックスの異なる入力位置に分配されるからである。生成される数の周期は、カウンタから得られる異なる値の数と同じである。このスクランブルカウンタモードは、所望の長さのコールカウンタを用いるものであって(ただし、混合関数の入力サイズを超えない長さ)、生成される数が周期性を示す前に再シードを要求する。
帰納モードにおいては、混合関数の最初の入力は(長い)シードである。次の入力は、混合関数の前回の出力である。この例示的な実施形態においては、カウンタは必要ないが、生成された疑似乱数のシーケンスにおける周期の長さは分からない。ほとんどの場合、この周期は、どの用途で必要とするよりも遥かに長い(256ビットの入力サイズで少なくとも2128コール)。混合関数の連続する入力値は、カウンタモードの場合と比較すると相関性が低いため、混合処理の完全性を高めることができる。
ハイブリッドカウンタモードにおいては、コールカウンタが、(長い)シードの最下位ビット、又は、任意の固定ビット組に初期化される(ブロック402)。疑似乱数生成器のコール毎にカウンタがインクリメントされ(ブロック424)、オーバーフロー時に0にラップアラウンドされる。混合関数(ブロック410)の最初の入力(ブロック408)は、シードである。これに続く入力は、混合関数の前回の出力であるが(ブロック420)、入力に際して、カウンタ値に対する入力の指定ビットを変更することで修正が施される。これにより、生成される疑似乱数のシーケンスについての周期の長さが、カウンタモードの場合と比較して少なくとも同じ長さとなり、ほとんどの場合、カウンタモードと比較して長くなる。帰納モードと同様に、混合関数の連続する入力値は、コピーされる短いカウンタビットシーケンスを除けば、相関性がないように見える。このため、最低限の周期長を確保しつつ、混合処理の完全性を非常に高くすることができる。このハイブリッドカウンタモードは、所望の長さ(入力サイズを超えない長さ)のコールカウンタを用いることができ、生成された数が周期性を示す前に再シードを要求することができる。
適用可能な全ての場合において、コールカウンタは、大きい一定の奇数値(予め決定された値またはシードから生成された値)でインクリメントされてもよい(ブロック424)。これにより、連続するカウンタ値の相関性が、1でインクリメントする場合と比較して、低くなる。生成された疑似乱数は、暗号鍵、調整値、ノンス、初期値などの暗号化データをメモリへ保存し易くするために用いられる(ブロック422)。
本明細書で説明した混合関数を組み入れたPRNGは、鍵材料以外は、内部状態(カウンタ及び混合関数の出力)に関するいくつかの情報を公開することになる。安全性を確保は、この鍵材料を保護することにかかっている。この鍵材料が攻撃者に知れると、攻撃者は、混合関数コールを遡って、前回生成した乱数、さらには、将来生成される数を見つけることができる。本開示のさらなる実施形態においては、後方秘匿性(backward secrecy)を有するバージョンのPRNGが提供される。この場合、PRNGの出力は、混合関数の未処理の出力ではなく、一方向性関数により処理されるか、或いは暗号化ハッシュ関数を用いてハッシュ化され(ブロック416)、結果が返される(ブロック418)。並列に機能している複数の混合関数(ブロック412)、及び、一緒にXOR処理されたこれらの出力(ブロック414)は、超高速な一方向性関数として機能することもできる。個々の混合関数の出力は、全体の出力であるこれらのXOR値から復元できないため、上記構成は、一方向性(可逆が困難)である。上記構成は、2クロックサイクルで何千もの擬似ランダムビットを生成できるため、従来のどの解決法と比較しても格段に高速である。本発明において、後方秘匿性を有する他の代替の実施形態は、混合関数を、並列に動作するいくつかの異なる混合関数及びXOR処理されたこれらの出力と置き換えることにより実現される。この集合混合関数は、鍵材料を知っていても簡単には元に戻せない関数であり、その実行時間は、上述したハッシュの構成のたった半分、すなわち、典型的には1クロックサイクルである。
上述したように、混合関数を組み入れたPRNGを使用するといくつかの利点がある。これらの利点には、典型的な演算装置において、例えば、1クロックサイクルで32バイト(256ビット)を生成するための、非常に速い演算;一度に数百又は数千のランダムビットの生成;サイドチャネルへの漏洩を防ぐ並列性の高い処理;非線形のビット混合処理を用いた高品質な疑似乱数の生成;適切な場合、鍵材料及び初期カウンタ値として真性ランダムビットを単に与えて行う簡単な再シード;容易にパーソナライズできるとともに、要求に応じて容易に多様化又はリセットできる大量の秘密鍵材料の使用により、容易且つ確実に2つの処理内容(deployments)が同じにならないようにすること:及び、固定入力と固定鍵材料との使用をサポートすることにより予測可能なビット列を生成すること(試験を目的とする場合に有利)、が含まれる。これに加えて、本開示のPRNGは、従来のPRNGと比較して、他のタスクのためにプロセッサを解放し、エネルギーの消費を抑えることができる。本開示のPRNGの適用例としては、機内コンピュータにおける暗号化関数、軍事宇宙計画(military and space programs)、企業ネットワーク、パーソナルコンピュータ及びデスクトップコンピュータ、スマートモバイルデバイス、並びに、セキュア通信装置などが挙げられる。高速且つ高品質な疑似乱数は、セキュリティに関連のない用途、例えば、物理システムをシミュレートしてランダム化演算やモンテカルロ演算を行う際にも有用である。
本開示の例示的な実施形態によれば、本開示の改良型PRNGの様々なコンポーネントは、ハードウェアを含む様々な手段により実現することができる。このハードウェアは、単独のハードウェア、又は、コンピュータ可読記憶媒体からの1つ又は複数のコンピュータプログラムコード命令、プログラム命令、若しくは実行可能なコンピュータ可読プログラムコード命令を受けるハードウェアである。
一例において提示される1つ又は複数の装置は、本明細書において図示及び説明したPRNG及び各要素として機能するように構成されるか、或いは、これらを実現するように構成される。複数の装置を含む例においては、それぞれの装置は、例えば、有線又は無線のネットワーク等による直接的又は間接的な方法など、様々な方法で相互に接続又は通信することができる。
一般に、本開示のPRNGのための例示的な実施形態における装置は、上述したように、メモリ(例えば、記憶装置)に接続されたプロセッサ(例えば、プロセッサユニット)などの1つ又は複数のコンポーネントを含みうる。プロセッサは、概して、例えば、データ、コンピュータ可読プログラムコード、命令若しくはそれに類するもの(通常、ソフトウェアやファームウェアなどの「コンピュータプログラム」)、及び/又は、他の好適な電子情報などの情報を処理することができる任意のハードウェアである。より具体的には、例えば、プロセッサは、コンピュータプログラムを実行するように構成することができ、当該コンピュータプログラムは、プロセッサ上に格納されたものであってもよいし、(同じ又は別の装置の)メモリに格納されたものであってもよい。プロセッサは、特定の実施形態に応じて、複数のプロセッサ、マルチコアプロセッサコア、又は他の種類のプロセッサであってもよい。さらに、プロセッサは、複数の異種プロセッサシステムを用いて実現することができ、当該システムにおいては、メインプロセッサが、1つ又は複数の二次プロセッサと共に単一のチップ上に設けられている。他の例としては、プロセッサは、同種のプロセッサを複数個含む対称型マルチプロセッサシステムであってもよい。さらに別の例において、プロセッサは、1つ又は複数の特定用途向け集積回路(ASIC)やフィールドプログラマブルゲートアレイ(FPGA)などとして実現してもよいし、これを含んでもよい。したがって、プロセッサは、コンピュータプログラムを実行して1つ又は複数の機能を果たすことが可能であるが、様々な実施例のプロセッサは、コンピュータプログラムの助けなしに1つ又は複数の機能を実行可能であってもよい。
メモリは、概して、例えば、データ、コンピュータプログラム、及び/又は他の好適な情報を、一時的又は永続的に格納することができる任意のハードウェアである。メモリは、揮発性メモリ及び/又は不揮発性メモリを含んでもよく、固定又は着脱が可能である。好適なメモリの例としては、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ハードドライブ、フラッシュメモリ、サムドライブ、着脱可能フロッピーディスク、光ディスク、磁気テープ、又は上記のいずれかの組み合わせが挙げられる。光ディスクは、コンパクトディスク読出し専用メモリ(CD−ROM)、読み出し/書き込み用コンパクトディスク(CD−R/W)、DVDなどを含みうる。様々な例において、メモリは、コンピュータ可読記憶媒体と呼ばれる場合がある。コンピュータ可読記憶媒体は、情報を記憶可能な非一時的なデバイスであり、ある場所から別の場所に情報を搬送可能な一時的な電子信号などのコンピュータ可読伝送媒体と区別することができる。本明細書で説明したようなコンピュータ可読媒体は、概括的に、コンピュータ可読記憶媒体又はコンピュータ可読伝送媒体を指す場合がある。
メモリに加えて、プロセッサは、情報を表示、送信、及び/又は受信するための1つ又は複数のインターフェースに接続されていてもよい。インターフェースは、通信インターフェース(例えば、通信ユニット)及び/又は1つ又は複数のユーザインターフェースを含みうる。通信インターフェースは、例えば、他の装置、ネットワーク等に対して情報を送信及び/又は受信するように構成することができる。通信インターフェースは、物理的(有線)通信リンク及び/又は無線通信リンクによって、情報を送信及び/又は受信するように構成することができる。好適な通信インターフェースの例には、ネットワークインタフェースコントローラ(NIC)、無線NIC(WNIC)等が含まれる。
ユーザインターフェースは、ディスプレイ、及び/又は、1つ又は複数のユーザ入力インターフェース(例えば、入力/出力ユニット)を含みうる。ディスプレイは、ユーザに情報を提示又は表示するように構成されており、その好適な例には、液晶ディスプレイ(LCD)、発光ダイオードディスプレイ(LED)、プラズマディスプレイパネル(PDP)などが含まれる。ユーザ入力インターフェースは、有線であっても無線であってもよく、ユーザからの情報を、処理、格納、及び/又は表示などを行うための装置に受け渡すように構成することができる。ユーザ入力インターフェースの好適な例には、マイクロフォン、イメージ又はビデオキャプチャデバイス、キーボード又はキーパッド、ジョイスティック、タッチセンシティブ面(タッチスクリーンとは分離したもの又はこれに組み込まれたもの)、生体センサなどが含まれる。ユーザインターフェースは、プリンタ、スキャナなどの周辺機器と通信するための1つ又は複数のインターフェースをさらに含んでもよい。
上述したように、プログラムコード命令が、メモリに格納され、プロセッサにより実行されることによって、PRNGの機能を実現することができる。なお、任意の好適なプログラムコード命令を、コンピュータ可読記憶媒体からコンピュータ又はその他のプログラム可能な装置にロードすることによって特定の機械を作製し、当該機械が本明細書に記載した機能を実行するための手段となるようにしてもよい。これらのプログラムコード命令を、コンピュータ、プロセッサ、又はその他のプログラム可能な装置に対して特定の態様で機能するよう指示可能なコンピュータ可読記憶媒体に格納することによって、特定の機械又は特定の製品を作製してもよい。コンピュータ可読記憶媒体に格納された命令によって製品を作製し、当該製品を、本明細書に記載した機能を実行する手段としてもよい。プログラムコード命令を、コンピュータ可読記憶媒体から取得し、コンピュータ、プロセッサ、又は他のプログラム可能な装置にロードすることによって、コンピュータ、プロセッサ、又は他のプログラム可能な装置が、コンピュータ、プロセッサ、又は他のプログラム可能な装置で実行されるべき動作を実行するように構成することができる。
プログラムコード命令の取得、ロード、及び実行は、一度に1つの命令が取得、ロード、及び実行されるように順番に行ってもよい。いくつかの例示的な実施形態において、取得、ロード、及び/又は実行は、複数の命令が一度に取得、ロード、及び/又は実行されるように、並列に行ってもよい。プログラムコード命令を実行することによって、コンピュータ実施プロセスを作成し、コンピュータ、プロセッサ、又は他のプログラム可能な装置により実行される命令によって、本明細書に記載の機能を実現するための動作がもたらされるようしてもよい。
プロセッサによる命令の実行、又はコンピュータ可読記憶媒体への命令の格納は、指定された機能を実行するための動作の組み合わせをサポートする。なお、1つ又は複数の機能、及び機能の組み合わせは、特定の機能を実行するか、或いは専用ハードウェア及びプログラムコード命令を実行する専用ハードウェアベースのコンピュータシステム及び/又はプロセッサによって実行することができる。
上述したように、本開示の実施例は、航空機の製造及び保守方法に関連させて説明することができる。図5及び図6に示すように、生産前の工程として、例示的な方法500は、航空機602の仕様決定及び設計(ブロック502)及び材料調達(ブロック504)を含みうる。生産中は、航空機602の部品及び小組立品の製造(ブロック506)及びシステムインテグレーション(ブロック508)が行われる。その後、航空機602は、例えば、認可及び納品(ブロック510)を経て、就航に入る(ブロック512)。就航期間中は、航空機602は、定例の整備及び保守のスケジュールに組み込まれる(ブロック514)。定例の整備および保守は、航空機602の1つ又は複数の改良、再構成、改装などを含みうる。
例示的な方法500の各工程は、システムインテグレーター、第三者、及び/又はオペレーター(例えば、顧客)によって実行又は実施することができる。説明のために言及すると、システムインテグレーターは、航空機メーカーおよび主要システム下請業者をいくつ含んでいてもよいが、これに限定されない。第三者は、売主、下請業者、供給業者をいくつ含んでいてもよいが、これに限定されない。オペレーターは、航空会社、リース会社、軍事団体、サービス組織などであってもよい。
図6に示すように、例示的な方法500によって製造される航空機602は、複数の高水準システム600及び内装614を有する機体612を含みうる。高水準システム600の例としては、1つ又は複数の推進系604、電気系606、油圧系608、及び環境系610が挙げられる。また、他のシステムをいくつ含んでもよい。航空宇宙産業に用いた場合を例として説明したが、本開示の原理は、例えば自動車産業などの他の産業に適用してもよい。したがって、航空機602に加えて、本明細書に記載の原理は、例えば、陸上車両、海上船舶、宇宙船などの他の輸送体にも適用可能である。
本明細書に図示又は記載した装置及び方法は、製造及び保守方法500における1つ又は複数のどの段階において採用してもよい。例えば、部品及び小組立品の製造工程506に対応する部品又は小組立品を、航空機602の就航期間中に製造される部品又は小組立品と同様の方法で製造することができる。また、装置、方法、又はこれらの組み合わせの1つ又は複数の例を、製造工程506及び508で用いることによって、例えば、航空機602の組み立て速度を実質的に速めたりコストを実質的に削減したりすることができる。同様に、装置又は方法の1つ又は複数の実施例、或いはこれらの組み合わせを、航空機602の就航期間中、例えば、整備及び保守中(ブロック514)に用いてもよいが、これに限定されない。
さらに、本開示は、以下の付記による実施例を含む。
付記1.疑似乱数を生成するための方法であって、コールカウンタのカウンタ値を初期化し(ブロック402)、ビット単位の前記カウンタ値を前記コールカウンタから混合関数処理へ送り(ブロック408)、前記ビット単位の前記カウンタ値に対して混合処理を行って疑似乱数を生成する(ブロック410)、各ステップを含む方法。
付記2.さらに、所定値だけ前記カウンタ値をインクリメントするステップ(ブロック424)を含む、付記1に記載の方法。
付記3.さらに、前記混合処理ステップ(ブロック410)における後続するサイクルのための入力値として、前記疑似乱数を使用するステップを含む、付記1に記載の方法。
付記4.さらに、入力レジスタの容量を超えない範囲で前記カウンタ値の全体をできる限り多く繰り返すことにより、前記入力レジスタに入力を行い(ブロック404)、前記入力レジスタが満たされるまで、前記入力レジスタにおける残りの空いたビットに前記カウンタ値の個々のビットを入力する(ブロック406)、各ステップを含む、付記1に記載の方法。
付記5.前記混合処理ステップ(ブロック410)においては、セグメントの連結により、前記ビット単位の前記カウンタ値の入力の第1セグメントが前記ビット単位の前記カウンタ値の出力の第1セグメントとしてマッピングされる、付記4に記載の方法。
付記6.前記混合処理ステップ(ブロック410)は、可逆性を有する、付記5に記載の方法。
付記7.前記混合処理ステップ(ブロック410)は、非線形である、付記5に記載の方法。
付記8.前記混合ステップ(ブロック410)は、排他的論理和「XOR」ツリー混合関数、置換転置混合関数、及び、二重混合ファイステル混合関数からなる群から選択される関数を含む、付記5に記載の方法。
付記9.前記混合ステップ(ブロック410)は、さらに、並列混合関数において前記カウンタ値に対する混合処理を少なくとも2回行い(ブロック412)、前記並列混合関数からの出力の排他的論理和をとる(「XOR処理する」)(ブロック414)、各ステップを含む、付記1に記載の方法。
付記10.さらに、一方向性関数により前記疑似乱数を処理するか、或いは暗号化ハッシュ関数を用いて前記疑似乱数をハッシュ化し(ブロック416)、前記疑似乱数の前記一方向性関数又は前記疑似乱数のハッシュ化の結果を、前記混合関数の後続するサイクルのための入力値として用いる(ブロック418)、各ステップを含む、付記1に記載の方法。
付記11.さらに、前記疑似乱数を用いてメモリに暗号化データを保存するステップ(ブロック422)を含む、付記1に記載の方法。
付記12.疑似乱数を生成するためのシステムであって、カウンタ値で初期化される(ブロック402)コールカウンタと、ビット単位の前記カウンタ値に対して混合処理を行って疑似乱数を生成する(ブロック410)混合関数の処理部と、を含むシステム。
付記13.前記カウンタ値は、所定値でインクリメントされる(ブロック424)、付記12に記載のシステム。
付記14.前記疑似乱数は、前記混合関数の後続するサイクルのための入力値として機能する(ブロック420)、付記12に記載のシステム。
付記15.前記疑似乱数に基づいて暗号化データを保存する(ブロック422)メモリを有する記憶装置をさらに含み、前記暗号化データは、暗号鍵、調整値、ノンス、及び初期値からなる群から選択される、付記12に記載のシステム。
付記16.前記混合関数(ブロック410)は、セグメントの連結により、前記ビット単位の前記カウンタ値の第1セグメントを前記ビット単位の前記カウンタ値の出力の第1セグメントとしてマッピングする、付記12に記載のシステム。
付記17.前記混合関数(ブロック410)は、可逆性を有する、付記12に記載のシステム。
付記18.前記混合関数(ブロック410)は、非線形である、付記12に記載のシステム。
付記19.前記混合関数(ブロック410)は、XORツリー混合関数、置換転置混合関数、及び、二重混合ファイステル混合関数からなる群から選択される、付記12に記載のシステム。
付記20.前記混合関数(ブロック410)は、並列に機能する少なくとも2つの混合関数により実行され(ブロック412)、前記少なくとも2つの混合関数からの出力がXOR処理される(ブロック414)、付記12に記載のシステム。
付記21.前記疑似乱数は、一方向性関数により処理されるか、或いは暗号化ハッシュ関数を用いてハッシュ化され(ブロック416)、前記疑似乱数の前記一方向性の処理又は前記疑似乱数のハッシュ化の結果は、前記混合関数の後続するサイクルのための入力値として用いられる(ブロック418)、付記12に記載のシステム。
明細書に開示した種々の実施例の装置及び方法は、種々の部品、特徴、及び、機能を備える。なお、本明細書に開示した種々の実施例における装置及び方法は、本明細書に開示される他の実施例の装置及び方法の部品、特徴、及び機能をどのような組み合わせで含んでいてもよく、このような可能性の全ては本開示の思想及び範囲に含まれるものとする。
本開示に関連する当業者が上述の記載及び関連図面の教示による利点を念頭におけば、本明細書に記載された開示について多くの改変例及び他の実施形態が予測可能であろう。したがって、本開示は、記載された特定の実施形態に限定されるべきではなく、その改変例及び他の実施形態も、添付の請求の範囲に含まれる。さらに、上述の説明及び関連図面は、特定の要素及び/又は機能の例示的組み合わせについて記載しているが、添付する請求の範囲から逸脱することなく、異なる要素及び/又は機能の組み合わせを用いることも可能である。この点について、例えば、添付の特許請求の範囲に記載されている場合もあるように、先に明確に記載したものとは異なる要素及び/又は機能の組み合わせも考えられる。本明細書において特定の用途を用いているが、これらは、包括的且つ説明的な意味でのみ用いており、本開示を限定するものではない。

Claims (13)

  1. 入力レジスタ、プロセッサ及びメモリを少なくとも含むコンピュータによって疑似乱数を生成するための方法であって、
    前記入力レジスタによって構成されるカウンタのカウンタ値を初期化し、
    ビット単位の前記カウンタ値を前記カウンタから混合関数へ送り、
    前記ビット単位の前記カウンタ値に対して前記混合関数に基づき前記プロセッサにより混合処理を行って疑似乱数を生成する、各ステップを含む方法であって、
    さらに、
    前記入力レジスタの容量を超えない範囲で前記カウンタ値がとり得る値のすべてをできる限り多く繰り返すことにより、前記入力レジスタに入力を行い、
    前記入力レジスタが満たされるまで、前記入力レジスタにおける残りの空いたビットに前記カウンタ値の個々のビットを入力する、各ステップを含み、
    前記混合処理においては、前記ビット単位の前記カウンタ値の入力の第1セグメントが前記ビット単位の前記カウンタ値の出力の第1セグメントとしてマッピングされ、
    前記混合処理は、排他的論理和「XOR」ツリー混合関数、置換転置混合関数、及び、二重混合ファイステル混合関数からなる群から選択される関数を含む、方法
  2. 前記混合処理は、一のサイクルと、当該一のサイクルのあとに行われる後続するサイクルとを有しており、
    前記方法は、さらに、
    所定値だけ前記カウンタ値をインクリメントし、
    前記混合処理における前記後続するサイクルのための入力値として、前記疑似乱数を使用する、各ステップの少なくとも1つを含む、請求項1に記載の方法。
  3. 前記混合関数に基づく前記混合処理は、可逆性を有すること、及び、非線形であること、のいずれかの条件を満たす、請求項1に記載の方法。
  4. 前記混合処理は、さらに、並列された複数の混合関数において前記カウンタ値に対する混合処理を少なくとも2回行い、前記並列された複数の混合関数からの出力の排他的論理和をとる(「XOR処理する」)、各ステップを含む、請求項1に記載の方法。
  5. さらに、
    一方向性関数により前記疑似乱数を処理するか、或いは暗号化ハッシュ関数を用いて前記疑似乱数をハッシュ化し、
    前記疑似乱数の前記一方向性関数又は前記疑似乱数のハッシュ化の結果を、前記混合関数の後続するサイクルのための入力値として用いる、各ステップを含む、請求項1に記載の方法。
  6. さらに、前記疑似乱数を用いて前記メモリに暗号化データを保存し易くするステップを含む、請求項1に記載の方法。
  7. 疑似乱数を生成するためのシステムであって、
    カウンタ値で初期化されるカウンタと、
    ビット単位の前記カウンタ値に対して混合処理を行って疑似乱数を生成する混合関数の処理部と、を含むシステムであって、
    前記混合関数は、少なくとも、以下の(a)および(b)のうちの1つ、すなわち、
    (a)前記ビット単位の前記カウンタ値の第1セグメントを前記ビット単位の前記カウンタ値の出力の第1セグメントとしてマッピングする関数である、
    (b)XORツリー混合関数、置換転置混合関数、及び、二重混合ファイステル混合関数からなる群から選択される関数である、
    を満たしている、システム
  8. 前記カウンタ値は、所定値でインクリメントされる、請求項7に記載のシステム。
  9. 前記混合関数による前記混合処理は、一のサイクルと、当該一のサイクルのあとに行われる後続するサイクルとを有しており、前記疑似乱数は、前記後続するサイクルのための入力値として機能する、請求項7に記載のシステム。
  10. 前記疑似乱数に基づいて暗号化データ保存が容易とされたメモリを有する記憶装置をさらに含み、前記暗号化データは、暗号鍵、調整可能暗号のための調整値、及びノンスからなる群から選択される、請求項7に記載のシステム。
  11. 前記混合処理、並列に機能する少なくとも2つの混合関数により実行され、前記少なくとも2つの混合関数からの出力がXOR処理される、請求項7に記載のシステム。
  12. 少なくとも、
    前記混合関数は、可逆性を有すること、及び、
    前記混合関数は、非線形であること、のうちの一方の条件を満たす、請求項7に記載のシステム。
  13. 前記混合関数による前記混合処理は、一のサイクルと、当該一のサイクルのあとに行われる後続するサイクルとを有しており、
    前記疑似乱数は、一方向性関数により処理されるか、或いは暗号化ハッシュ関数を用いてハッシュ化され、
    前記疑似乱数の前記一方向性の処理又は前記疑似乱数のハッシュ化の結果は、前記後続するサイクルのための入力値として用いられる、請求項7に記載のシステム。
JP2016232308A 2015-12-07 2016-11-30 ハードウェア支援型の擬似乱数の高速生成 Active JP6900176B2 (ja)

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
JP2017107195A JP2017107195A (ja) 2017-06-15
JP6900176B2 true JP6900176B2 (ja) 2021-07-07

Family

ID=58798742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016232308A Active JP6900176B2 (ja) 2015-12-07 2016-11-30 ハードウェア支援型の擬似乱数の高速生成

Country Status (6)

Country Link
US (1) US10142103B2 (ja)
JP (1) JP6900176B2 (ja)
KR (1) KR102544298B1 (ja)
CN (1) CN107017981B (ja)
SG (1) SG10201607934XA (ja)
TW (1) TWI781911B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2776346C1 (ru) * 2021-07-08 2022-07-19 федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Генератор псевдослучайных чисел

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10649735B2 (en) * 2017-09-12 2020-05-12 Ememory Technology Inc. Security system with entropy bits
US10944568B2 (en) * 2017-10-06 2021-03-09 The Boeing Company Methods for constructing secure hash functions from bit-mixers
US11449311B2 (en) * 2017-11-07 2022-09-20 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 西安电子科技大学 一种基于细胞自动机的可变结构伪随机数生成方法、装置及系统
US11381394B2 (en) 2019-07-25 2022-07-05 PUFsecurity Corporation High speed encryption key generating engine
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

Family Cites Families (20)

* Cited by examiner, † Cited by third party
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
CN1278221C (zh) * 2000-10-24 2006-10-04 日本电脑警备有限公司 随机数发生装置
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
CN1668995A (zh) * 2002-06-06 2005-09-14 克瑞迪科公司 用于改善伪随机数发生器的输出的不可预测性的方法
US8019802B2 (en) * 2005-08-24 2011-09-13 Qualcomm Incorporated Cryptographically secure pseudo-random number generator
CN100583754C (zh) * 2005-11-07 2010-01-20 北京浦奥得数码技术有限公司 一种伪随机数生成方法
JP4857230B2 (ja) * 2007-03-30 2012-01-18 株式会社日立製作所 疑似乱数生成装置及びそれを用いた暗号化処理装置
EP1975779B1 (en) * 2007-03-30 2018-03-28 Hitachi, Ltd. Encryption device using a pseudorandom number generator
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 日本電信電話株式会社 圧縮関数演算装置、圧縮関数演算方法、およびプログラム
WO2014075000A1 (en) * 2012-11-12 2014-05-15 Cryptography Research Inc. Methods and systems for glitch-resistant cryptographic discrete-log based signing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2776346C1 (ru) * 2021-07-08 2022-07-19 федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Генератор псевдослучайных чисел

Also Published As

Publication number Publication date
CN107017981A (zh) 2017-08-04
JP2017107195A (ja) 2017-06-15
KR20170067133A (ko) 2017-06-15
US20170163416A1 (en) 2017-06-08
TWI781911B (zh) 2022-11-01
SG10201607934XA (en) 2017-07-28
TW201721407A (zh) 2017-06-16
KR102544298B1 (ko) 2023-06-19
US10142103B2 (en) 2018-11-27
CN107017981B (zh) 2021-07-13

Similar Documents

Publication Publication Date Title
JP6900176B2 (ja) ハードウェア支援型の擬似乱数の高速生成
TWI744388B (zh) 用於藉由位元混合器來產生保密器回合金鑰的方法和系統
US10320554B1 (en) Differential power analysis resistant encryption and decryption functions
US9794062B2 (en) Scrambled tweak mode of blockciphers for differential power analysis resistant encryption
EP3577642B1 (en) Methods and devices for protecting data
US9325494B2 (en) Method for generating a bit vector
US11728967B2 (en) Dynamic masking
Tsoutsos et al. Advanced techniques for designing stealthy hardware trojans
WO2015193789A1 (en) Differential power analysis countermeasures
Abd Ali et al. Novel encryption algorithm for securing sensitive information based on feistel cipher
Teh et al. A Chaos‐Based Authenticated Cipher with Associated Data
Bhaskar et al. An advanced symmetric block cipher based on chaotic systems
US9391770B2 (en) Method of cryption
Atia Development of a new algorithm for key and S-box generation in blowfish algorithm
US11303436B2 (en) Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks
Fanfakh et al. Simultaneous encryption and authentication of messages over GPUs
Sultan et al. A Secure Key Expansion Algorithm for Present
Narayanaswamy et al. HIDE: Hybrid symmetric key algorithm for integrity check, dynamic key generation and encryption
Stanciu et al. Pseudo-random generator using PUF circuits and Salsa stream cipher
Aljahdali et al. Feistel-inspired scrambling improves the quality of linear congruential generators
Wang et al. Hardware Design of Lightweight Stream Cipher PUFFIN Algorithm for Anti-cooperation
Al-Nemri A Modified Block Cipher Encryption Based on OTP Algorithm
Hafsa et al. A lightweight and robust block cipher algorithm for real-time applications
Sao et al. Vulnerability of Dynamic Masking in Test Compression
Abubaker Probabilistic, lightweight cryptosystems based on finite automata

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190712

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201225

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: 20210601

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210616

R150 Certificate of patent or registration of utility model

Ref document number: 6900176

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250