JP2011530719A - 不確定性ランダム値発生器 - Google Patents
不確定性ランダム値発生器 Download PDFInfo
- Publication number
- JP2011530719A JP2011530719A JP2011522225A JP2011522225A JP2011530719A JP 2011530719 A JP2011530719 A JP 2011530719A JP 2011522225 A JP2011522225 A JP 2011522225A JP 2011522225 A JP2011522225 A JP 2011522225A JP 2011530719 A JP2011530719 A JP 2011530719A
- Authority
- JP
- Japan
- Prior art keywords
- data
- random
- stream
- value
- module
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 240
- 230000006870 function Effects 0.000 claims abstract description 228
- 230000008569 process Effects 0.000 claims abstract description 190
- 238000006073 displacement reaction Methods 0.000 claims abstract description 13
- 230000000873 masking effect Effects 0.000 claims abstract 4
- 238000000926 separation method Methods 0.000 claims description 31
- 230000008901 benefit Effects 0.000 claims description 29
- 238000004891 communication Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 11
- 230000009466 transformation Effects 0.000 claims description 2
- 238000006243 chemical reaction Methods 0.000 claims 2
- 230000001131 transforming effect Effects 0.000 claims 1
- 238000012795 verification Methods 0.000 abstract description 5
- 238000013461 design Methods 0.000 description 63
- 238000010586 diagram Methods 0.000 description 24
- 230000000694 effects Effects 0.000 description 23
- 239000013598 vector Substances 0.000 description 21
- 238000005336 cracking Methods 0.000 description 12
- 230000003068 static effect Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 11
- 230000015572 biosynthetic process Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000007418 data mining Methods 0.000 description 7
- 238000003780 insertion Methods 0.000 description 7
- 230000037431 insertion Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 6
- 230000000670 limiting effect Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 5
- 230000000739 chaotic effect Effects 0.000 description 4
- 230000001066 destructive effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000000528 statistical test Methods 0.000 description 3
- 241001589086 Bellapiscis medius Species 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000035772 mutation Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000009414 blockwork Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012043 cost effectiveness analysis Methods 0.000 description 1
- 238000012962 cracking technique Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000000803 paradoxical effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000005258 radioactive decay Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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/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
-
- 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
-
- 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/001—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals
-
- 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
-
- 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/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Nonlinear Science (AREA)
- Storage Device Security (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、参照することによって本明細書に組み込まれる、2008年8月6日に出願されたRossの米国暫定特許出願第61/188,213号、およびPatrick D.Rossによる米国非暫定特許出願第12/533,179号に対する国際条約の下で優先権を主張する。
本発明は、これらに限定されないが、コンピュータゲーム、バンキング、通信、およびメディア開発産業等の産業において適用可能である。そのような産業によって利用されるシステムで使用するためのコンピュータハードウェア/ソフトウェアにおいて実装され得る。
・不確定性関数−一方向性関数
・ランダム編集プロセス
・時間変位
・セッションデータの動的展開
・動的シード関数
・完全動的変異
ランダム値発生器のこの新しいゲノムの実施形態は、1つ、いくつかの、またはすべての知られているアプリケーションにおいて、1つ、いくつかの、またはすべての古典的なランダム値発生器の代替として優れている。現在のアプリケーションが古典的なランダム値発生器を使用するときはいつも、新しい不確定性ランダム値発生器の実施形態を、それに代わるように構成してもよい。
伝統的な関数は、定義域値および値域値の1対1マッピングに従う。定義域は独立変数(入力値)であり、一方値域は従属変数(出力値)である。定義域値および値域値の立場を交換すると、次に、元の関数の反転が得られる。
ハッシュ関数は、ある種のデータを比較的小さい整数にマッピングする。ハッシュ関数のプロセスは、複数のデータブロックを同一の値域値にマッピングできるように、定義域データを縮小する。このデータ喪失は、ハッシュ関数の単一反転を形成できないことを意味する。ハッシュ関数モデルを反転することはできないが、その固有の情報喪失は、それが一方向性関数でないことを意味する。
一方向性関数は、1対多(定義域対値域)関数モデルを支持しなければならない。不確定性関数を厳重に検査すると、定義域は、1つまたは複数のデータプール内の任意の有効メモリアドレスであるが、値域は、メモリセルに保存される任意の値であることが分かる。これは、各定義域値(メモリアドレス)が、すべての可能性のある値域値を含むことができることを意味する。最初に、任意の所与の定義域値に対して値域値が完全に非決定性であるところで関数を有し、したがって、不確定性関数が一方向性関数であることを証明する。
・擬似乱数発生器
・擬似ランダム関数ファミリー
・ビットコミットメントスキーム
・適応選択された暗号文攻撃に対して安全な私的鍵暗号化スキーム
・メッセージ認証コード
・デジタル署名スキーム(適合選択されたメッセージ攻撃に対して安全)
不確定性関数は、真の一方向性関数を呈することをはるかに超える値を有する。メモリセルを使用して、値域値を保持することは、一定スカラ値以外の他の可能性を暗示する。メモリセル内のスカラ値の代わりに、オブジェクトポインタを仮定する。オブジェクトポインタの起動は、動的関数が単純な静的値の代わりに、異なる値を戻すことを可能にする。そのようなオブジェクトポインタの一実施例は、完全に新しい不確定性関数である。
不確定性関数と称されるデータプレーン210は、1つまたは複数の入力データプール、セッションデータプール215で形成される。データは、アプリケーション要件に応じて、各ランダム値発生器の実行または動的展開(完全動的変異)に対して、依然として静的であり得る。1つまたは複数のデータプールのメモリセルは、値域値を含む。
ランダム編集プロセスとも称される、ランダムネスのアドレスプレーン220は、データプールメモリアドレス(定義域値)を形成する手段である。全体として、アドレスプレーンの目的は、1セッション実行内で、出力ランダムシーケンスを反復することなく、データプレーン210にインデックス付けすること225である。これは、ランダムアドレスサイクル長は、目標量のランダムデータともに増大し得ることを必要とする。
ランダム編集プロセスとも称される、ランダムネスの制御プレーン235は、初期化および動的制御プロセス235(プログラムデータ)を含む。ソース/セッションデータ(不確定性のプール)は、値域データおよびプログラムデータの両方を含む。実際に、セッションデータ215内の任意の所与のデータ値は、値域データおよび/またはプログラムデータであり得る。
すべてのデータを試験したとき、良好なランダムデータは、バイナリデータにおいて、ほぼ等しい数のゼロおよび1を有するはずである。バイナリレベルにおいて、圧倒的多数のゼロまたは1は、我々が求めている均衡データとは見なされない。このプロセスにおける我々の全体的な目的は、未知の形成「旋律」を有するセッションデータであることに留意されたい。全体的な目的に留意する限り、ランダムデータを見出する場所は広大である。そのような場所の1つは、前述されるような圧縮データである。これらのファイルは、バイナリデータにおいて、等確率のゼロおよび1を有する。当然のことながら、これは、圧縮ファイルにおいて見出されるファイル構造情報をカウントすることではない。
・NIST試験スイート
・Maurerの普遍統計則
・Lempel−Ziv複雑性
・近似エントロピー
この検証プロセス350を完了すると、ソースデータ490が検証される。多数の機能不全データセットを不適格とする検証プロセス350を通して、実質的に無制限の数の有効なソースデータ490が適切に機能することも確認する。検証ソースデータ490のサイズは固定されない。唯一の要件は、良好なランダムストリームを形成するのに十分大きいことを含む。
経時的に、不確定性ランダム値発生器における同一データを常に使用することは問題を生じる。同一データプールの反復使用によって、クラッカーは、そのデータセットが使用されているかを判定する場合がある。データプールにおいて陳腐化したデータのリフレッシュを達成する方法は多数あるが、新しいステップが提案されている。有効なソースデータ360をマイニングして(370)、不確定性ランダム値発生器の各使用のための新しいセッションデータを形成する。ネームセッションデータ380は、1回だけ(または多くても数回)使用された後、破棄されるため、データを正確に記述する。またセッションデータ380は、有効なソースデータ360と同様の方法で検証され得る(350)。このようにして、不確定性ランダム値発生器におけるデータは、フレッシュなままであり、したがって解読できない。
上述されるように、古典的な一次元ランダム値発生器は、多次元問題を解決することができない。代わりに、この問題は、不確定ランダムネスを確立するソリューションを必要とする。これは、無制限のソリューションセットの基礎を築く、単純概念によって達成され、いくつかの実施例が提供される。1つ以上のランダム編集モジュール/プロセスの適用は、任意の下層「旋律」を破壊することによって、不確定ランダムネスを得る。ランダム編集モジュール/プロセスを使用して、追加のランダムネスを、1つ以上のランダム入力ストリームのセットに統合する。複数のランダムストリームを合わせて混合することは、入力ストリームの「旋律」の一部/大部分/すべてを除去する傾向がある。ランダム編集プロセスは、1つ以上のランダムストリームを必要とし、そのうちの1つは「編集ストリーム」として定義される。編集ストリームデータは、ビットまたは他の入力ストリームからの値の順序を変更するためだけに使用され、そうでなければ出力ストリームにおいて目に見えることはない。実際に、編集プロセスは、すでにランダムな入力ストリームを新たなランダム出力ストリームに変異させる。
ここに、稼動中のランダム編集プロセスの別の実施例がある。図7は、結果ストリーム650を形成するため(640)のビットごとのプロセスを示す、本発明の一実施形態に従う、マスク発生器プロセス600中のビット操作を説明する。データ0 612、データ1 622、およびマスクストリーム602と呼ばれる3つのランダムストリームは、マスク発生器に対する入力ストリームである。1つのストリームは編集に使用され、マスクストリーム602と称される。他の2つのストリーム、データ0 612およびデータ1 622は、マスクストリーム602によって編集され、結果ストリーム650を形成する。各マスクビット「0」604は、対応するデータ0ビット630をデータ0ストリーム612から選択する。各マスクビット「1」606は、対応するデータ1ビット632をデータ1 622から選択する。各結果ビットが決定されると、それは結果ストリーム650に連続的に追加される。以下のCプログラミング言語コードは、マスク発生器プロセスを示す。
ランダム編集プロセスには別の利点がある。すなわち、はるかに長いサイクル周期である。より長いサイクル長は、分化したサイクル長を入力ストリーム上で使用する場合、各サイクル長の産物に到達するまで、各入力ストリームは他と同期しないという単純な概念に基づく。入力ストリームに対して分化したサイクル長で開始する場合、次に、ランダム編集プロセスは、極めて長いサイクル周期を促進する。それぞれ異なるサイクル周期を有する3つのランダムな古典的な関数で開始し、これらの異なる周期の長さをP1、P2、およびP3と標識する。マスク発生器は、全体期間P1*P2*P3を有し、この積はS1と標識される。この単一ステージマスク発生器は、3つの入力ストリームで形成され、入力ストリーム期間と比較して極めて長いサイクル周期を有する。
また各ランダム編集プロセスは、ランダム入力ストリームを変異させる命令として見ることができる。これらの命令は、単純なものから極めて複雑なものに及び得る。これらの命令の一部は、追加値をほとんど提供しないが、教示目的で、より大きいセットが一覧表示される。命令はランダム編集プロセスであるが、マスク値は、任意選択の使用のための命令に対する追加データを表す。
補数演算子のように、逆演算もデータ0、データ1、またはマスク等の任意の値に適用することができる、単項演算である。
回転ランダム編集プロセス
マスク値からのビットの一部を使用して、ビット数を選択し、右または左に回転させる。補数演算と同様に、「回転」は、逆演算も任意の値、データ0、データ1、またはマスクに適用することができる、単項演算である。ROTL_MASKは、マスク値から、ビット数でxだけ左に回転すると定義する。ROTR_MASKは、マスク値から、ビット数で「x」だけ右に回転すると定義する。
データ要素であるデータ0、データ1、またはマスクあたり、好きなだけ多くの単項演算を混合することができる。全体効果は、可能なランダム編集プロセスの真に無制限のセットである。
複数のランダムストリームの支援を得て、1またはゼロのいずれかである、ほぼ恣意的なビット密度のランダムストリームを形成することが可能である。2つの単純な仮定から始める。
・各ランダムストリームは、他のランダムストリームのすべてに直交する。
・各ランダムストリームは、バイナリレベル(ゼロまたは1)で等しい可能性を有する。
ニブル、バイト、ワード等として知られるビットの固定されたサイズのグループには共通の名前がある。この議論のために、「チャンク」という用語は、ゼロ以上の隣接ビットとして定義される。明らかに、ゼロビットのサイズは、空のチャンクである。
・消費モード−ターゲットストリームチャンカーは、ターゲットストリームにおけるすべてのデータを1回に1チャンクにダイシングする。
・サンプリングモード−チャンクストリームチャンカーは、結果ストリームが完了し、データの残りが破棄されるまで、チャンクによってチャンクストリームチャンクのサブセットを取る。
置換ランダム編集プロセスは、結果ストリームのサイズを拡張することなく、ターゲットストリームを編集する、破壊的プロセスである。各チャンクが挿入されると、対応するターゲットストリームビットは置換される。重要な効果は、ターゲットストリームのサイズを変更しないことである。
注記:チャンクの一部分のみを使用して、結果構築を完了させてもよく、残りは破棄される。
図10は、非破壊性である、拡張ランダム編集プロセス1000b中のビット操作を示し、本発明の一実施形態に従って、各チャンクは、ターゲットストリーム1008ビットの間に「挿入」される。挿入点は、マスク値によって定義される。目標ランダムストリーム1008に追加される各チャンクは、対応する量だけターゲットストリーム1008のサイズを増大させる。
同一の入力マスクランダムストリーム1018を仮定すると、拡張/除去ランダム編集プロセスは、左右対称の反対同士である。拡張ランダム編集プロセス1000bを介して、目標入力ストリーム1008に追加される各チャンクは、除去ランダム編集プロセスを介して除去され、同一のマスク編集ストリームが両方の演算に使用されると仮定する。このように、目標入力ストリーム1008は、偽性データチャンクまたは「ノイズ」の中に隠され、次に、「ノイズ」を除去した後に復帰する。
すべてのランダム編集プロセスがすべての設計に意味を成すとは限らない。明らかに、ソフトウェアは、数学およびシフト演算を効率的にする、ALU(演算論理ユニット)およびBarrelシフター等の有用な特徴を有する。しかしながら、同一の特徴を有する負担ハードウェア設計は、費用効率が高くならない。そのため、設計者は、それらの製品に費用効率が高いランダム編集プロセスのみを使用することが推奨される。「過剰構築」ソフトウェア設計のコストは、過剰構築ハードウェア設計と比較して、極めて低い。一旦開発されると、ソフトウェアのコストは、ランタイムおよびメモリスペースの両方において非常に低いままである。
1)各ランダム編集プロセスは、ランダム入力ストリームを変異させる命令として見ることができる。命令間の動的スイッチングは、CPUに類似したものである、カオスエンジンを定義する。必要とされるランダムデータ容量が劇的に増加すると、分離プロセスは、プール内のデータを十分に分離するように、より活発にならなければならない。これは、単純なマスク発生器をカオスエンジンと置換することを意味する。データを隠すための1つの静的ランダム編集プロセスの代わりに、カオスエンジンは、複数のランダム編集プロセスを動的に切り替え、データを分離する。明らかに、カオスエンジンを使用して、メモリアドレスまたはデータのいずれかを分離することができる。カオスエンジン内の各ランダム編集プロセスは、その入力値に基づいて、異なる出力を与える。
2)図11は、カオスエンジン700を表すシステム図であり、命令710は解読され(715)、適切なランダム編集プロセス750は、本発明の一実施形態に従って、REP表のサブセットであるカオスエンジンREP命令セット720から選択される。カオスエンジン700内の各ランダム編集プロセス750は、その入力値に基づいて、異なる結果760を与える。
上述のとおり、カオスエンジンは、不確定データを命令として使用し、処理関数の間で動的に選択する。短サイクルカオスエンジンは、制御プレーンも分離プロセスの一部として起動する。各処理関数は、依然として不確定データを入力パラメータとして必要とする。上記カオスエンジンは、1つの結果をもたらすために1つの命令を仮定するが、短サイクルカオスエンジンは、複数の結果をもたらす1つの命令に基づく。名前が暗示するとおり、一続きの結果は、比較的短い数であると仮定され、これらの複数の結果は、内部使用のみに限定される(すなわち、それらはパラドックスアンセーフである)。複数の結果を内部使用のみに限定することは、これらのシーケンスの可能性のあるモデリングを回避する必要があり、そうでなければ、攻撃者は、不確定性のプールに関する洞察を得る可能性がある。
マスク発生器の形態のランダム編集プロセスは、一次「旋律」を破壊する単純な手段である。一次「旋律」を排除する間、二次「旋律」を構築した。評価のために、「旋律」は、ランダム値発生器からの再現可能な出力であり、値およびそれらが形成される順序の両方を含む。出力メモリバッファを有する2つ以上のPRNGアドレス発生器の追加は、二次「旋律」を破壊するための別のツールを提供する。このツールは、時間変位と呼ばれる。
・ランダム値発生器からの出力は、それが出力ストリームにおいて目に見える前に上書きされ得る。
・同一の出力プールアドレスは、それが新しい値で上書きされる前に、複数回引き出され得る。
・ランダム値発生器からのすべての出力は、それが形成された時に関して、ランダムに時間変位されるか、または破壊される。
図13は、本発明の一実施形態に従って、ランダムアドレスシステム1120を生成する、短サイクルプロセス1100aを表すシステムフロー図である。複数の入力制御値を有する古典的なブロック1105、関数選択1126、シード値1122、およびカウントダウン値1124は、短サイクルプロセス1100aの基礎を形成する。各短サイクルプロセス1100aは、別の関数再選択1126が行われる前に、いくつのアドレス(または値)が生成されるかのために、小さいカウントダウンカウンタ1110を有する。再選択1126が行われるたびに、新しい不確定性シード値1122も使用される。このようにして、攻撃者は、データプールから値を引き出すために使用されるランダムアドレス1120をモデル化することはできない。また、再選択プロセスは、新しいカウントダウン値1124を再ロードする。初期開始値1128は、制御ユニット1130に対する入力であり、関数選択値1126、シード値1122、およびカウントダウン値1124を計算する。カウントダウンカウンタが特定のカウントダウン値1124の最後に到達すると、カウントダウンカウンタは、ランダムアドレスストリーム1120の最後の出力値が生成された制御ユニット1130に通信する。各カウントダウン実行の最後の出力値1132は、制御ユニットによって使用され、制御値、シード値1122、関数選択1126、およびカウントダウン値1124の次のセットを計算する。
プール内のデータが依然として隠されている限り、データプールの外で構築される不確定性関数はソリューションである。明らかに、データプールへの線形アドレス指定は、可能な限り回避すべきである。プールのコンテンツを暴露することなく、どのようにしてデータプールからデータを引き出すかという逆説的状況に直面している。これは、データパラドックスとして定義される。良好なランダムデータを有する無限のデータプールを有する場合、パラドックスは存在しない。プール内の「無限」データの最後に達することはないため、プールの完全なコンテンツを暴露することはない。1つまたは複数のプールにおける不確定性ランダムデータは、問題の一部であると同時に、解法の一部であるという、データパラドックス問題/解法の皮肉な曲解に気付くであろう。
セーフまたはアンセーフという用語は、データパラドックスに影響する値の属性を説明するために使用される。具体的に、アンセーフ値は、分離プロセスを経ていないが、セーフ値は経ている。分離プロセスの関数は、値の決定性ストリームを値の非決定性ストリームに変換することである。
1)不確定性データを伴う排他的OR(XOR)−アドレスおよびデータ
2)不確定性データを伴うマスク発生器−アドレスおよびデータ
3)不確定性データを伴うカオスエンジン−アドレスおよびデータ
4)時間変位−データのみ
アンセーフ擬似ランダムメモリアドレスは、単純XORプロセスからカオスエンジン等の複雑なソリューションを含むソリューションの範囲を介して安全にする。プールから引き出されるデータは、生データ(アンセーフ擬似ランダムメモリアドレスを介してアドレス指定される)、アンセーフデータ(セーフメモリアドレスを介してアドレス指定される)、またはセーフデータ(上記プロセスのうちの1つを介して分離される)である。データは、時間変位を通じて、マスク発生器を介してセーフになる。要するに、データプールアドレスは、2つの有効な状態を有する。
1)「パラドックスアンセーフ」−古典的な関数を介して形成されるアドレス
2)「パラドックスセーフ」−分離プロセスを完了したアドレス
一方、データプールデータ要素は、3つの有効な状態を有する。
1)「生」−アンセーフアドレスを介してアクセスされるデータプールデータ
2)「パラドックスアンセーフ」−セーフアドレスを介してアクセスされるデータプールデータ
3)「パラドックスセーフ」−分離プロセスを完了したデータプールデータ
一般的な設計問題
残念なことに、古典的なPRNGは、制限された機能性を提供する。現行の手段のみが使用可能であるため、これらの制限は、不適切なソリューションを伴う。例えば、クラッキングに対する抵抗は、極めて複雑なPRNGソリューションを用いてアドレス指定され、高騰するコストをもたらす。多くの設計は秘密裏に構築され、それらの実装を隠す無駄な試みが為される。この秘密の開発ブロックを再検討および再利用するが、それらは決定性であるというPRNGの重大な欠陥が残る。したがって、任意の現行PRNGソリューションは、制限された寿命を有する。
a.PRNGを使用してアドレスを生成し、不確定性のプールから読み取る。したがって、生で、パラドックスアンセーフな不確定ストリームを生成する。アンセーフ値として、それらは内部URNG使用のみに限定される。
b.PRNG生成アドレスは分離され(レベル1=>3)、データプールアドレスを生成する。これらのパラドックスセーフアドレス(定義域値)は、不確定性のプールから読み取る。したがって、パラドックスアンセーフデータ(値域値)を不確定性のプールから生成する。
c.パラドックスアンセーフデータ(値域値)は分離され(レベル1=>3)、非決定性出力ストリームを生成する。
URNG設計を使用するすべてのアプリケーションが、支持された発生器の総サイクル長を完全に循環することはないはずである。
ランダム値生成のコストを劇的に低減することが目標の1つである。そのために、公的に検討される標準ハードウェア構成要素(古典的な関数)を各設計に再利用する。これらの要素それぞれは、以下のセクションで説明される単純な概念に基づく。一旦構築されると、これらの要素は、必要に応じて、多くの設計全体で再生成することができる。
以前に、データプールから読み取りながら、なぜ一方向性関数を有するかについて説明した。同一のセッションデータは、データプールへのアクセスに使用される各一意のアドレス指定方法論に一意のデータストリームを付与する。設計が許し得る限り多くの一意アドレス指定方法論を有することが重要である。
図14は、本発明の一実施形態に従って、古典的なブロック1200と関連付けられる一般的なインターフェースを描写するシステム図である。シード値1202は、常に同一様式でロードされる。現在のシフトレジスタ関数を実行しながら、次の(新しい)シード値1202およびランレングスカウント1206をロードすることができる。リセットおよびリロード1204は、新しいシード1202およびランレングスカウント1206の値を切り替えるために必要である。出力ラインセレクタ1212を使用して、古典的なブロック1200からの出力ストリーム1210を適切な出力ライン1214に切り替える。古典的なブロック1200内で使用するための適切な古典的な(関数セレクタ)シフトレジスタは、常に同一様式で特定される。一旦、古典的な関数が選択されると、シード値1202およびランレングスカウント1206値がロードされ、関数は、選択された出力ライン1214に経路指定される、出力ストリーム1210の生成を開始する。
シフトレジスタを古典的なブロックにグループ分けする場合は、慎重にならなければならない。表2は、恣意的な名前(この場合は色)、このグループにおけるシフトレジスタのグループサイズ数、グループのサイクル長、および指名された関数グループがマスク発生器であるか否かの決定によってグループ分けされる、一式の古典的なシフトレジスタを表す。
ブロックにおける総関数カウント:32(22+10)
最小、最大サイクル長:P10、P13
古典的なブロック2:レッド−グリーン−ブルー
ブロックにおける総関数カウント:32(可能な4032のうちの32)
最小、最大サイクル長:P1*P2*P3
古典的なブロック3:バイオレット、パープル−インディゴ−イエロー
ブロックにおける総関数カウント:32(可能な7680のうちの12+20)
最小、最大サイクル長:P11、P8*P9*P10
古典的なブロック4:アズール−レッド−パープル
ブロックにおける総関数カウント:32(可能な7392のうちの32)
最小、最大サイクル長:P15*P1*P8
古典的なブロック5:パープル、アクア、ブラック、オレンジ、および若干のティール
ブロックにおける総関数カウント:64(9のうちの16+14+16+14+6)
最小、最大サイクル長:P4、P14
古典的なブロック6:ホワイト、アズール、グレー、グリーン、レッド、および若干のブルー
ブロックにおける総関数カウント:64(8のうちの11+11+13+12+14+3)
最小、最大サイクル長:P1、P15
これらの古典的なブロックについて、留意すべき重要な特性が多数ある。第1に、任意の設計は、これらのブロックを使用することができ、それらが分化したサイクル長を有することを保証することができる。たとえ色がマスク発生器の一部として現れるとしても、組み合わせたサイクル長は、ベースカラーサイクル長に影響しない。各ブロックにおける総関数カウントは、ブロックごとに異なる可能性があり、現に異なる。一般的なインターフェース上の理由から、すべての古典的なブロックは、総関数カウントを2の累乗として有する。
ここで、生のアンセーフメモリアドレスを生成するための古典的なブロックがあり、データは、1つまたは複数のデータプールから読み取ることができる。データパラドックスアンセーフと定義されると、この方法で読み取られるデータは、内部的にのみ使用され、値の間接的ランダムストリームと称される。通常、この間接的ランダムストリームを適用して、様々な編集プロセスにおいて使用されるランダムデータを引き出す。出力ストリームに直接フィードするために使用してはならない。
1つまたは複数のデータプールの外に構築される不確定性関数は、強力な解決策である。データプールに対する直接攻撃を除いて、1つまたは複数のデータプールにおいてデータを拾い集める次善策は、1つまたは複数のプールから読み取るために使用されるランダムアドレスをモデル化することである。この形態の攻撃を阻止するために、ランダムアドレスは、アドレスがモデル化され得ない方法で分離しなければならない。
分離プロセスは、安全なランダムデータストリームを継続する。パラドックスセーフメモリアドレスを使用して、データプールを読み取ると、3つのランダムデータストリーム、データ0、データ1、およびマスクが形成される。安全なランダムデータストリームは、メモリアドレスおよびデータの分離プロセスを介して、仮想データプールサイズを成功裏に増大させた。1つまたは複数のデータプールは、ここで、データパラドックスからのリスクなしに、ランダムデータの何倍もの量を作成することができる。これは、この発生器にフィードするために少なくとも6つの古典的なブロックを必要とする。入力ストリームの分化したサイクル長で開始すると、次に、安全なランダムデータストリームサイクル長は、各入力サイクル長にデータプールサイズを掛けた積である。
分離プロセスは、セッションデータの動的展開を継続する。固定数のカードで開始するカードゲームは、分離に役立つ隠喩を提供する。1組のトランプをシャッフルすると、取り扱われるカードの新しいシーケンスを設定することによって、新しいゲームを形成する。多くの場合において、次に、1組のトランプを「カット」し、扱われる第1のカードを変更する。1組のトランプをシャッフルおよびカットする行為は、ゲームを行うカードのシーケンスを変更する。
例えば、1つまたは複数のデータプールを読み取るために使用されるメモリアドレスのオフセットを追加することは、メモリ範囲の起源を移動させることと同じ効果を有する。これは、正にカードゲームにおいて1組のトランプを「カットすること」と同様に動作する。
メモリアドレスを有するシャッフル値のビットワイズXORの動作は、適当な位置における素早いシャッフルの効果と比較できる。メモリ範囲は、XOR演算によって再発注されている。シャッフルの次にカットすることができ、またはカットの次にシャッフルすることができる。これらの仮想カードトリックは、希望に応じて何度も行うことができる。
メモリアドレスの操作は、一部の極めて有用な副作用を有する。通常、不確定性ランダム値発生器は、1つのランダムストリームのみを生成する。不確定性ランダム値発生器内で使用される各メモリアドレスが、それに追加されるオフセットを有する場合、異なるランダムサブストリームが、それぞれ異なるオフセットに対して生成される。任意の数の恣意的ランダムサブストリームは、メモリオフセット値の選択的追加を介して生成することができる。これは、必要に応じてランダムアドレス指定可能なサブストリームをもたらす。このツールは、多くのアプリケーションにおいて極めて有用である。
データプールコンテンツを分離する別の方法は、ハードウェアアドレス指定ラインを動的に変更することである。これは、一般的な無制限ハードウェアソリューションである。これは機能するが、多くの設計において使用するには高価すぎる場合がある。
既に読んだとおり、セッションデータの「仮想」展開を行うことは安価である。2つのランダムアドレスストリームを1つまたは複数のデータプール内で形成すること、およびこれらの位置のコンテンツを交換することは、完全動的変異と称される別のソリューションを表す。変化率が十分に低い場合、全体性能に対する影響が制限されるはずである。
これらの実施例のそれぞれは、不確定性ゲノムの特徴の一部を示す実施例を表す。セッションデータをデータパラドックスから保護するために使用される分離プロセスの全範囲を示すよう特に注意する。これらの実施例のそれぞれは、単一の不確定ランダム出力ストリームを生成する。可能性のあるソリューションの数は、複数のランダム出力ストリーム、ランダムにアドレス指定可能なサブストリーム(それらは、ソフトウェア実施例において包含される)、セッションデータの動的展開、複数のデータプール、および仮想カットならびに仮想シャッフルを含む実施例に制限されないため、多くの実施例はここで示されていない。
データパラドックス問題の大部分は、擬似ランダム関数を使用して、データプールにアドレス指定することに由来する。データならびにアドレスを分離するために、短サイクルプロセス1100aの使用を適用することもできる。図17は、安全なランダムデータストリーム1190を形成するために使用されている、2つの短サイクルプロセス1400aおよび1400bから成る、ハードウェア実施例1を描写する、システムフロー図である。第1の短サイクルプロセス1400aを使用して、アドレス1120aを形成し、データ値をデータプール1150から引き出して、不確定性データ1170を形成する。XOR1180される、データストリーム1120bを形成する第2の短サイクルプロセス1400bを不確定性データ1170と統合することは、不確定性ランダムデータストリーム1190を提供する。
短サイクルプロセスをハイブリッドマスクURNGプロセスと対比する場合、後者は、分離プロセスとして、マスク発生器の追加の安全性を利用する。この増大した安全性は、ある程度低い性能に達する(ハイブリッド設計は、3つの短サイクルブロックに対し、より多くの入力値を必要とする)。ハイブリッドマスクプロセスは、ゲートカウントを増大させる、追加のハードウェア要素(短サイクルブロックおよびマスク発生器)を必要とする。幸いなことに、追加の努力は、より安全なランダムデータの生成の増加を達成する。
「パラドックスセーフ」URNGの目的に達することは、アドレス(定義域値)およびデータ(値域値)の両方から除去される、すべての決定性動作を必要とする。1つの非決定性出力値の生成は、マスクまたはカオスエンジンを使用して、定義域値と値域値とを分離する必要がある。セーフURNGは、極めて大量のランダムデータの生成を可能にする。セーフURNGの1つの重要な利点は、セッションデータに関する緩和要件である。ほとんどすべての検証されたセッションデータは、セーフURNGにより正確に機能する。これは、一意のセッションデータを自動的に生成する、アプリケーションにとって重要であり得る。
以下が仮定される。各古典的なブロックは、可能性のあるアドレス範囲の良好な被覆を保証するのに十分長い決定性実行を有する。LFSRの自然なサイクル長に到達することはなく、それによって、値の反復シーケンスを生成する。ある時点で、新しいシードベクトルをロードして、アドレスシーケンスを分割する。これらの新しいシードベクトルは、比較的低い変化率を有する。これらの古典的なブロックの出力を使用して、2つの可能性のあるアドレス分離プロセス、ハイブリッドマスク発生器またはアドレスカオスエンジンのうちの1つをフィードする。
2つの非決定性メモリアドレス(定義域値)を仮定して、データ0およびデータ1(値域値)を不確定性のプールから読み取る。マスク値は、不確定性ストリームFIFOに由来する。これらの3つの値は、2つの方法、データマスク発生器またはデータカオスエンジンのうちの1つにおいて使用される。
1)データマスク発生器の場合:標準分離マスク生成結果を得る。
2)データカオスエンジンの場合:次の命令は、不確定命令ワードから取られる。命令ワードが空の場合、新しい命令ワードは、不確定性ストリームFIFOからフェッチされる。標準的な3つの値、データ0、データ1、およびマスクは、データカオスエンジンにおいて処理され、したがって、分離されたデータ結果を生成する。
伝統的に、少数パーセンテージのソフトウェアのみが、1秒あたり何千回も実行される。この実行率は、高性能ソフトウェアの設計に影響することができ、現に影響する。そのために、可能性のある限り適度に効率的であることに注意しなければならない。この効率性に対する感度は、古いブロック構造プログラミングスタイルとオブジェクトパラダイムとの間の闘いではない。代わりに、両方のスタイルを慎重に混合して、所望の柔軟性ならびに性能を付与する。
1)どのソフトウェアアーキテクチャ(すなわち、どの実施形態)が選択されたか。
2)セッション/ソース/出力バッファデータは、既にメモリにロードされている。
3)再シャッフルデータが必要とされる場合、必要に応じて、それもデータプールにロードされている。
幸運なことに、ランダム値を生成するための多数の公開されたソフトウェア関数を有する。このソフトウェアセットは、古典的なハードウェア線形フィードバックシフトレジスタ(LFSR)よりも小さいが、以前として、選択すべき良好な関数が多数ある。ハードウェアシフトレジスタをこの表に含め、追加することもできる。表は、ソフトウェア専用関数および/またはシフトレジスタ実装の混合を有する可能性が高い。ソフトウェア実装のための古典的なランダム関数の表は以下を含む。
・線形合同法
・遅延Fibonacci発生器
・Blum Blum Shub
・Fortuna
・Mersenne Twister
・SIMD指向Fast Mersenne Twister
・CryptGenRandom
・Yarrowアルゴリズム
・フリーBSD
・Park−Miller乱数発生器
・反転合同発生器
古典的なランダム関数の表は、ランダム関数ポインタ、関数のサイクル長、および「使用中」フラグの3列の形態をとる。表内の各関数は、それらの「旋律」において次の単一値を生成する。
多数のランダム編集プロセスは、この説明の範囲内で定義される。ランダム編集プロセスの表は、これらの編集プロセスのランタイム実装を保持する。これらも内部データを有しない「ステートレス」関数であることに留意されたい。
これらの汎用編集プロセスは、一般的なツールとして作動し、目標の実施形態を構築する。これらの関数は、必要に応じて、カオスエンジンに動的にインストールされる。古典的なランダム関数の表とは異なり、1つのカオスエンジン内で、同一の編集プロセスの複数例を制御する定義された方針はない。正当な理由が、同一の編集プロセスの一意または複数例のいずれかの使用を支持する。任意の編集プロセスの一意または複数例を実装するか否かを選択することは、設計者次第である。複数例が支持される場合、これらのプロセスを、性能に悪影響を及ぼさない数に制限することに注意しなければならない。
古典的な関数の表から擬似ランダム発生器を割り当てる(または再割り当てする)場合、ルールは単純である。アクティブ関数は、不確定性ランダム値発生器のインスタンスあたり1回のみ使用することができる。これらの関数が統計的に割り当てられる場合、各アクティブ関数は、編集プロセスの総ランレングスを最大化するように、異なるサイクル長を有しなければならない。不確定ランレングスを用いて、古典的な関数が動的に割り当てられる場合、2つ以上の擬似ランダム発生器は、同一のサイクル長を用いて割り当てられ得る。この背後にある理由は単純であり、不確定性ランレングスは、自然なサイクル長の前に終了する可能性が高い。明らかに、ランレングスの最後に、擬似ランダム発生器は、割り当て解除され、表に戻される。次に、新しい不確定値を適用して、表から代替の擬似ランダム発生器を選択する。
任意の所与の編集プロセスは、カオスエンジンのインスタンスあたり1回だけアクティブであり得る(多様性は不確定性を追加する)。しかしながら、同一の編集プロセスは、他のカオスエンジンにおいてアクティブであり、不確定性を最大化し得る。
この私的値は、ランダムシーケンスを開始するためのキーを表すため、大部分の古典的なランダム関数のシード値は保護されなければならない。この「シークレットキー」値の保護は、一部の場合において課題となる可能性がある。
制御プレーンを活発に使用して、新しいソフトウェア構成要素を動的に再選択することは、追加の決定性動作を除去する効果を有し、それによって不確定性を追加する。この追加された不確定性がその利点にもたらすオーバーヘッドは比較的小さい。ハードウェアに優るソフトウェアの利点/不利点は、よく認識されている。ソフトウェア実装は、常にハードウェア実装よりも遅いが、はるかに優れた柔軟性を追加する。
ソフトウェア実施例1、マスクURNGは、マスク発生器を使用して、不確定性関数のアドレス(定義域値)およびデータ(値域値)の両方を分離する。このように、すべてのアドレスおよびデータが非決定性であるため、出力値は、パラドックスセーフである。ハードウェア実施例と同様に、初期化努力は、開発者に委ねられる。以下は、ソフトウェア実施例1の動作を説明するための実例コードである。
ソフトウェア実施例2、カオスURNGは、カオスエンジンを使用して、アドレスおよびデータの両方を分離する。マスクURNGと同様に、すべてのアドレス(定義域値)およびデータ(値域値)は非決定性であるため、出力値は、パラドックスセーフである。ハードウェア実施例と同様に、初期化の努力は、開発者に委ねられる。以下は、ソフトウェア実施例1の動作を説明する実例コードである。
なぜ現行のDRM設計が問題であるかについて多くの理由がある。それが現在設計されているように、それらは問題の一部を解決するに過ぎないため、一応機能しているに過ぎない。現在のDRM設計は、他と良好に相互作用しない一意の独立したソリューションである。現在のDRMは、多くの内部秘密を成功裏に隠すことに依存するため、過度に複雑である。公的ロックベースのDRMを使用することは、私的キーを秘密にしておかなければならないことを意味する。より正確には、保護すべき重大な秘密は、これらの私的キーを隠す方法である。秘密性のニーズは自明であり、現在の技術の脆弱性をもたらす。しかしながら、これと同様の秘密性への依存は、他の企業からの製品またはサービスとの相互運用性もブロックする。どのようにして秘密を共有しながら、依然としてその完全性を維持するのかというこの点は、理解しやすい。
Claims (26)
- デバイスにおいて一方向性関数を生成し、それによって、ランダム値ストリームから利益を享受することができる前記デバイスにおいて使用するためのランダム値ストリームを生じさせる方法であって、
a)定義域値に従ってアドレス指定される複数のメモリセルを提供するステップであって、任意の所定定義域値は、すべての可能性のある値域値をマッピングするステップと、
b)前記複数のメモリセルのうちの1つと関連付けられるランダム定義域アドレス値を生成するステップと、
c)前記生成されたランダム定義域値と関連付けられるデータ値を読み取るステップと、
d)ステップb)〜c)を繰り返し、それによってランダム値ストリームを提供するステップと、を含む、方法。 - 前記ランダム値ストリームを前記オリジナルメモリセル位置およびデータ値から分離し、それによって非決定性ランダム値ストリームを生じさせるステップをさらに含む、請求項1または26のうちのいずれか1項に記載の方法。
- 前記ランダム値ストリームを前記オリジナルメモリセル位置およびデータ値から分離する前記ステップは、ランダム編集プロセスを使用して、分離を提供することを含む、請求項2に記載の方法。
- 複数のメモリセルを提供する前記ステップは、
a)追加量のデータを提供することと、
b)疑わしい非ランダム部分を除去し、それによってソースデータを形成することと、
c)最小ランダムネス要件に従って前記ソースデータを検証し、それによって検証されたソースデータを形成することと、
d)前記検証されたソースデータを前記複数のメモリセル位置と統合することと、を含む、動的に強化されたデータを生成することをさらに含む、請求項1、2、3、または26のうちのいずれか1項に記載の方法。 - 前記追加量のランダムデータは、圧縮データを含む、請求項4に記載の方法。
- 前記検証されたソースデータは、インデックス付きのデータプール内に含まれ、前記検証されたソースデータを前記複数のメモリセル位置と統合する前記ステップは、前記インデックス付きのデータプールを再度インデックス付けすることをさらに含む、請求項4または5のうちのいずれか1項に記載の方法。
- 疑わしい非ランダム部分を除去する前記ステップは、ゼロ値部分およびファイル情報を除去することをさらに含む、請求項4、5、または6のうちのいずれか1項に記載の方法。
- 前記検証されたソースデータを前記複数のメモリセル位置と統合する前記ステップは、ランダム編集プロセスを使用して、前記検証されたソースデータを編集ストリームで処理することをさらに含む、請求項4、5、6、または7のうちのいずれか1項に記載の方法。
- 前記ランダム編集プロセスは、マスキングモジュール、時間変位モジュール、カオスエンジンモジュール、XORモジュール、上書きモジュール、拡張モジュール、除去モジュール、制御プレーンモジュール、およびアドレスプレーンモジュールから成るモジュール群から選択されるモジュールを含む、請求項3に記載の方法。
- 前記選択したモジュールは、拡張モジュールであり、前記拡張モジュールは、ノイズチャンクを挿入する、請求項9に記載の方法。
- 前記選択したモジュールは、制御プレーンモジュールであり、命令として機能するプログラムデータ値を含む、請求項9または10のうちのいずれか1項に記載の方法。
- 動的に強化されたデータを生成する前記ステップは、セッションデータとして使用される、前記検証されたソースデータのサブセットを選択することをさらに含む、請求項4、5、6、7、または8のうちのいずれか1項に記載の方法。
- 動的に強化されたデータを生成する前記ステップは、
a)第2の量の擬似ランダムデータを提供することと、
b)請求項4のステップb)〜c)を繰り返し、それによって強化された特徴を有する検証されたソースデータを提供することと、をさらに含む、請求項4、5、6、7、8、または12のうちのいずれか1項に記載の方法。 - ランダム値ストリームから利益を享受することができるデバイスにおいて使用するための、一方向性関数を通じて、前記デバイスにおいて前記ランダム値ストリームを生成する方法であって、
a)検証されたランダム値ストリームを提供するステップと、
b)前記検証されたランダム値ストリームと相関しない、編集ストリームを提供するステップと、
c)前記検証されたランダム値ストリームを前記デバイスの変換モジュールにおいて前記編集ストリームで変換し、それによって分離した非決定性ランダム値ストリームを生成するステップと、を含む、方法。 - 検証されたランダム値ストリームを提供する前記ステップは、認められる物理現象と相関する値を生成することを含む、請求項14に記載の方法。
- 前記編集ストリームは、ランダム値ストリームを生成するように構成される古典的な関数を含む、請求項14または15のうちのいずれか1項に記載の方法。
- 前記変換するステップは、マスキング、時間変位、上書き、拡張、XOR変換、カオスエンジン変換、除去変換、制御プレーン変換、およびアドレス変換から成る変換群から選択される変換を含む、請求項14、15、または16のうちのいずれか1項に記載の方法。
- ランダム値ストリームから利益を享受し得るデバイスによって使用可能なランダム値ストリームを自動的に生成するように構成される、一方向性関数システムであって、
a)メモリモジュールであって、
i)複数のメモリセルと、
ii)それぞれメモリセルと関連付けられる複数の定義域値と、
iii)前記メモリセル内に記憶される複数のランダム値域値であって、任意の所与の定義域値が、すべての可能性のある値域の値をマッピングする、ランダム値域値と、
を備える、メモリモジュールと、
b)前記メモリモジュールの前記定義域値と相関しないランダム値ストリームを生成するように構成される、ランダム編集プロセスモジュールと、
を備える、システム。 - 前記一方向性関数システムは、前記メモリモジュールおよび前記ランダム編集プロセスモジュールと連通し、前記ランダム値ストリームを前記オリジナルメモリセル位置およびデータ値から分離し、それによって分離した非決定性ランダムストリームを生成するように構成される、変換モジュールをさらに備える、請求項18に記載のシステム。
- 前記ランダム編集プロセスモジュールは、マスキングモジュール、時間変位モジュール、カオスエンジンモジュール、XORモジュール、上書きモジュール、拡張モジュール、除去モジュール、制御プレーンモジュール、およびアドレスプレーンモジュールを含む、モジュール群から選択されるモジュールを含む、請求項18または19のうちのいずれか1項に記載のシステム。
- 前記変換モジュールは、再インデックス付けモジュールをさらに含む、請求項19に記載のシステム。
- 前記複数のランダム値域値は、処理された圧縮データを含む、請求項18、19、または20のうちのいずれか1項に記載のシステム。
- 前記複数のランダム値域値は、物理現象と関連付けられる処理値を含む、請求項18、19、20、または22のうちのいずれか1項に記載のシステム。
- 複数の追加ランダム値域値を生成し、それらを前記メモリモジュールに記憶するように構成される動的メモリモジュールをさらに含む、請求項17に記載のシステム。
- 前記メモリモジュールは、前記追加のランダム値域値を、追加の定義域値を有する複数の追加メモリセルに記憶し、それによって前記メモリモジュールの前記データプールサイズを増大させる、請求項17または24のうちのいずれか1項に記載のシステム。
- ランダム値ストリームを生成する方法を実行するためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記命令は、
a)定義域値に従ってアドレス指定される複数のメモリセルを提供するステップであって、任意の所与の定義域値は、すべての可能性のある値域値をマッピングするステップと、
b)前記複数のメモリセルのうちの1つと関連付けられるランダム定義域アドレス値を生成するステップと、
c)前記生成したランダム定義域アドレス値と関連付けられるデータ値を読み取るステップと、
d)ステップb)〜c)を繰り返し、それによってランダム値ストリームを提供するステップと、
を含む、コンピュータ可読媒体。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18821308P | 2008-08-06 | 2008-08-06 | |
US61/188,213 | 2008-08-06 | ||
US12/533,179 US9292259B2 (en) | 2008-08-06 | 2009-07-31 | Uncertainty random value generator |
US12/533,179 | 2009-07-31 | ||
PCT/US2009/052889 WO2010017320A2 (en) | 2008-08-06 | 2009-08-05 | Uncertainty random value generator |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014137623A Division JP5886375B2 (ja) | 2008-08-06 | 2014-07-03 | 不確定性ランダム値発生器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011530719A true JP2011530719A (ja) | 2011-12-22 |
JP5631312B2 JP5631312B2 (ja) | 2014-11-26 |
Family
ID=41653894
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011522225A Active JP5631312B2 (ja) | 2008-08-06 | 2009-08-05 | 不確定性ランダム値発生器 |
JP2014137623A Active JP5886375B2 (ja) | 2008-08-06 | 2014-07-03 | 不確定性ランダム値発生器 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014137623A Active JP5886375B2 (ja) | 2008-08-06 | 2014-07-03 | 不確定性ランダム値発生器 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9292259B2 (ja) |
EP (2) | EP3009928A1 (ja) |
JP (2) | JP5631312B2 (ja) |
WO (1) | WO2010017320A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2876548A1 (en) | 2013-11-22 | 2015-05-27 | Fujitsu Limited | Apparatus and method for generating physical random numbers |
JP2017016667A (ja) * | 2012-05-29 | 2017-01-19 | キャシー・ホールディングス・リミテッド・ライアビリティ・カンパニーCassy Holdings Llc | 確率的処理 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8665697B1 (en) * | 2009-12-23 | 2014-03-04 | Kbc Research Foundation Pvt. Ltd. | Subchannel formation in OFDMA systems |
JP5813380B2 (ja) * | 2011-06-03 | 2015-11-17 | 株式会社東芝 | 半導体記憶装置 |
US8971536B2 (en) * | 2011-07-21 | 2015-03-03 | Vixs Systems, Inc. | Balanced entropy random number generator |
KR101425600B1 (ko) * | 2012-11-02 | 2014-08-04 | 한국전자통신연구원 | 입력 시간 정보를 이용하는 난수 생성 장치 및 방법 |
US9465583B2 (en) * | 2013-10-04 | 2016-10-11 | International Business Machines Corporation | Random number generation using a network of mobile devices |
AU2015311866B2 (en) | 2014-09-03 | 2018-06-07 | Nant Holdings Ip, Llc | Synthetic genomic variant-based secure transaction devices, systems and methods |
DE102015107073A1 (de) * | 2014-09-08 | 2016-03-10 | Rheinmetall Defence Electronics Gmbh | Vorrichtung und Verfahren zur Steuerung eines Kommunikationsnetzwerks |
US10163371B1 (en) * | 2014-09-17 | 2018-12-25 | EMC IP Holding Company LLC | Rotating bit values based on a data structure while generating a large, non-compressible data stream |
US10235134B1 (en) * | 2014-09-17 | 2019-03-19 | EMC IP Holding Company LLC | Rotating bit values while generating a large, non-compressible data stream |
US10754964B2 (en) * | 2016-11-01 | 2020-08-25 | Bruce A Pelton | Integrated building management sensor system |
US10459690B1 (en) * | 2017-01-16 | 2019-10-29 | Securerf Corporation | Side channel attack prevention |
US10402169B2 (en) * | 2017-07-12 | 2019-09-03 | Dell Products L.P. | Method and system of secure random seed generation for a cryptographically secure pseudo-random number generator |
US10481872B2 (en) * | 2017-08-29 | 2019-11-19 | Colossio, Inc. | Cryptographically secure random number generator |
WO2019143528A1 (en) * | 2018-01-16 | 2019-07-25 | 7Tunnels, Inc. | Cryptographic systems and methods for modification of pools of truly random numbers |
WO2019152573A1 (en) | 2018-01-31 | 2019-08-08 | John Rankin | System and method for secure communication using random blocks or random numbers |
WO2019168978A1 (en) * | 2018-02-28 | 2019-09-06 | John Rankin | System and method for expanding a set of random values |
US11652732B2 (en) | 2018-08-21 | 2023-05-16 | Rankin Labs, Llc | System and method for scattering network traffic across a number of disparate hosts |
JP7259862B2 (ja) * | 2018-10-11 | 2023-04-18 | 日本電気株式会社 | 情報処理装置、秘密計算方法及びプログラム |
US11654635B2 (en) | 2019-04-18 | 2023-05-23 | The Research Foundation For Suny | Enhanced non-destructive testing in directed energy material processing |
US11729184B2 (en) | 2019-05-28 | 2023-08-15 | Rankin Labs, Llc | Detecting covertly stored payloads of data within a network |
US11516048B2 (en) | 2019-12-18 | 2022-11-29 | Rankin Labs, Llc | Distribution of data over a network with interconnected rings |
CN112667956A (zh) * | 2020-12-24 | 2021-04-16 | 杭州中科先进技术研究院有限公司 | 一种面向流式计算的多路数据流产生器和产生方法 |
CN116488779B (zh) * | 2023-06-15 | 2023-09-15 | 无锡麟聚半导体科技有限公司 | 基于随机产生数据源的数据流传输验证的测试方法和系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10322327A (ja) * | 1997-05-20 | 1998-12-04 | Enii Kk | 暗号通信システム |
JP2000010480A (ja) * | 1998-06-22 | 2000-01-14 | Meteoola Syst Kk | 乱数発生方法及び暗号通信方法並びに乱数発生プログラムを記憶した記憶媒体 |
JP2001175166A (ja) * | 1999-12-20 | 2001-06-29 | Nec Network Sensa Kk | 符号変換方法及び符号変換装置 |
JP2002244844A (ja) * | 2001-02-16 | 2002-08-30 | Mitsubishi Electric Corp | 半導体装置 |
JP2002287621A (ja) * | 2001-03-23 | 2002-10-04 | Canon Inc | 暗号処理装置及びその方法及びそのプログラム、通信システム |
JP2003333023A (ja) * | 2002-05-09 | 2003-11-21 | Toshiba Corp | プラント監視制御用データ中継プログラムおよびシステム |
JP2006318475A (ja) * | 2005-05-12 | 2006-11-24 | Agilent Technol Inc | 処理及び記憶能力に制限のある装置における乱数分布発生システム及び方法 |
JP2008165008A (ja) * | 2006-12-28 | 2008-07-17 | Megachips Lsi Solutions Inc | データ処理装置及びデータ処理方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3400035A1 (de) | 1983-01-07 | 1984-07-12 | General Electric Co., Schenectady, N.Y. | Simulator fuer statistisches rauschen |
US5727063A (en) * | 1995-11-27 | 1998-03-10 | Bell Communications Research, Inc. | Pseudo-random generator |
GB2333652A (en) * | 1998-01-24 | 1999-07-28 | Motorola Ltd | Random number generator with improved equiprobability |
US6678853B1 (en) | 1999-12-17 | 2004-01-13 | Hewlett-Packard Development Company, L.P. | Method and apparatus for generating random code |
US7739409B2 (en) | 2000-09-26 | 2010-06-15 | King Green Ltd. | System and method for making available identical random data to seperate and remote parties |
EP1223506B1 (en) * | 2001-01-16 | 2006-12-13 | Telefonaktiebolaget LM Ericsson (publ) | Random number generator using compression |
US8315383B2 (en) * | 2001-07-27 | 2012-11-20 | Hewlett-Packard Development Company, L.P. | Method and apparatus for random bit-string generation utilizing environment sensors |
FR2829643A1 (fr) | 2001-09-12 | 2003-03-14 | Everbee Wireless Ltd | Procede pour generer des nombres aleatoires |
US7139785B2 (en) | 2003-02-11 | 2006-11-21 | Ip-First, Llc | Apparatus and method for reducing sequential bit correlation in a random number generator |
US7502468B2 (en) | 2003-09-02 | 2009-03-10 | Ncipher Corporation Ltd. | Method and system for generating a cryptographically random number stream |
WO2005124537A1 (ja) * | 2004-06-18 | 2005-12-29 | Fujitsu Limited | 乱数生成装置,生成方法,生成器評価方法、および乱数使用方法 |
US7552156B2 (en) * | 2004-08-30 | 2009-06-23 | Nunes Ryan J | Random number generator |
US20060216524A1 (en) | 2005-03-23 | 2006-09-28 | 3M Innovative Properties Company | Perfluoropolyether urethane additives having (meth)acryl groups and hard coats |
US7920048B2 (en) * | 2005-05-09 | 2011-04-05 | Safetystream Mobile Limited | Method for using a table of data to control access and a locking mechanism using same |
US8073631B2 (en) * | 2005-07-22 | 2011-12-06 | Psigenics Corporation | Device and method for responding to influences of mind |
GB2444567B (en) | 2005-09-09 | 2011-01-05 | Mitsubishi Electric Corp | Pseudo-random number generator |
US7907726B2 (en) * | 2006-01-19 | 2011-03-15 | Microsoft Corporation | Pseudorandom number generation with expander graphs |
US7720225B2 (en) | 2006-03-07 | 2010-05-18 | Research In Motion Limited | Table splitting for cryptographic processes |
EP2041644A1 (en) | 2006-06-20 | 2009-04-01 | Nxp B.V. | Random number generator system, method for generating random numbers |
US20080076525A1 (en) * | 2006-08-25 | 2008-03-27 | Igt | Quantum gaming system |
US8312071B2 (en) | 2008-04-11 | 2012-11-13 | International Business Machines Corporation | Method and structure for provably fair random number generator |
-
2009
- 2009-07-31 US US12/533,179 patent/US9292259B2/en active Active
- 2009-08-05 JP JP2011522225A patent/JP5631312B2/ja active Active
- 2009-08-05 EP EP15189496.1A patent/EP3009928A1/en not_active Ceased
- 2009-08-05 EP EP09805518A patent/EP2310937A4/en not_active Ceased
- 2009-08-05 WO PCT/US2009/052889 patent/WO2010017320A2/en active Application Filing
-
2014
- 2014-07-03 JP JP2014137623A patent/JP5886375B2/ja active Active
-
2016
- 2016-02-12 US US15/042,440 patent/US9954677B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10322327A (ja) * | 1997-05-20 | 1998-12-04 | Enii Kk | 暗号通信システム |
JP2000010480A (ja) * | 1998-06-22 | 2000-01-14 | Meteoola Syst Kk | 乱数発生方法及び暗号通信方法並びに乱数発生プログラムを記憶した記憶媒体 |
JP2001175166A (ja) * | 1999-12-20 | 2001-06-29 | Nec Network Sensa Kk | 符号変換方法及び符号変換装置 |
JP2002244844A (ja) * | 2001-02-16 | 2002-08-30 | Mitsubishi Electric Corp | 半導体装置 |
JP2002287621A (ja) * | 2001-03-23 | 2002-10-04 | Canon Inc | 暗号処理装置及びその方法及びそのプログラム、通信システム |
JP2003333023A (ja) * | 2002-05-09 | 2003-11-21 | Toshiba Corp | プラント監視制御用データ中継プログラムおよびシステム |
JP2006318475A (ja) * | 2005-05-12 | 2006-11-24 | Agilent Technol Inc | 処理及び記憶能力に制限のある装置における乱数分布発生システム及び方法 |
JP2008165008A (ja) * | 2006-12-28 | 2008-07-17 | Megachips Lsi Solutions Inc | データ処理装置及びデータ処理方法 |
Non-Patent Citations (1)
Title |
---|
"擬似乱数生成系の検定方法に関する調査報告書", JPN6013042993, December 2004 (2004-12-01), JP, pages 1 - 3, ISSN: 0002619961 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017016667A (ja) * | 2012-05-29 | 2017-01-19 | キャシー・ホールディングス・リミテッド・ライアビリティ・カンパニーCassy Holdings Llc | 確率的処理 |
EP2876548A1 (en) | 2013-11-22 | 2015-05-27 | Fujitsu Limited | Apparatus and method for generating physical random numbers |
US9772819B2 (en) | 2013-11-22 | 2017-09-26 | Fujitsu Limited | Apparatus and method for generating physical random numbers |
Also Published As
Publication number | Publication date |
---|---|
US20100036900A1 (en) | 2010-02-11 |
EP3009928A1 (en) | 2016-04-20 |
US20160241388A1 (en) | 2016-08-18 |
US9292259B2 (en) | 2016-03-22 |
WO2010017320A2 (en) | 2010-02-11 |
US9954677B2 (en) | 2018-04-24 |
WO2010017320A3 (en) | 2010-05-14 |
JP2014178716A (ja) | 2014-09-25 |
JP5886375B2 (ja) | 2016-03-16 |
EP2310937A4 (en) | 2011-10-05 |
JP5631312B2 (ja) | 2014-11-26 |
EP2310937A2 (en) | 2011-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5886375B2 (ja) | 不確定性ランダム値発生器 | |
US11537362B2 (en) | Modular uncertainty random value generator and method | |
JP6616471B2 (ja) | 確率的処理 | |
Fyrbiak et al. | On the difficulty of FSM-based hardware obfuscation | |
RU2619895C1 (ru) | Система и способы для шифрования данных | |
US20190305927A1 (en) | Bitstream security based on node locking | |
KR20090024804A (ko) | 난수 발생기 시스템, 난수 생성 방법 및 컴퓨터 판독가능 매체 | |
Swierczynski et al. | Protecting against cryptographic Trojans in FPGAs | |
US10331896B2 (en) | Method of protecting secret data when used in a cryptographic algorithm | |
US20050010624A1 (en) | Method and system for making secure a pseudo-random generator | |
Grosso et al. | Combining Leakage-Resilient PRFs and Shuffling: Towards Bounded Security for Small Embedded Devices | |
Sisejkovic et al. | Processor Integrity Protection | |
Nasir et al. | Ephemeral Key-based Hybrid Hardware Obfuscation | |
Weidler | Built-In Return-Oriented Programs in Embedded Systems and Deep Learning for Hardware Trojan Detection | |
Jackson et al. | Quadrivium: A Trivium-Inspired Pseudorandom Number Generator. | |
Weidler et al. | On the Limitations of Obfuscating Redundant Circuits in Frustrating Hardware Trojan Implantation | |
Karvelas et al. | Examining Leakage of Access Counts in ORAM Constructions | |
Hoffmann | Security and subvertability of modern hardware: a journey through selected layers of hardware security | |
仲野有登 | Design and Analysis of Memory Access Pattern Protection | |
Sewell | Security for the processor-to-memory interface using field programmable gate arrays. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120627 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130903 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20131202 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20131209 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131225 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140304 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140703 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20140703 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20140725 |
|
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: 20140930 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141007 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5631312 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R154 | Certificate of patent or utility model (reissue) |
Free format text: JAPANESE INTERMEDIATE CODE: R154 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |