JP6616471B2 - 確率的処理 - Google Patents
確率的処理 Download PDFInfo
- Publication number
- JP6616471B2 JP6616471B2 JP2018165973A JP2018165973A JP6616471B2 JP 6616471 B2 JP6616471 B2 JP 6616471B2 JP 2018165973 A JP2018165973 A JP 2018165973A JP 2018165973 A JP2018165973 A JP 2018165973A JP 6616471 B2 JP6616471 B2 JP 6616471B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- value
- data pool
- pool
- urng
- 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
Links
- 238000012545 processing Methods 0.000 title description 226
- 238000000034 method Methods 0.000 claims description 158
- 230000006870 function Effects 0.000 claims description 140
- 230000008569 process Effects 0.000 description 60
- 238000004891 communication Methods 0.000 description 46
- 230000003068 static effect Effects 0.000 description 29
- 238000012360 testing method Methods 0.000 description 22
- 230000008901 benefit Effects 0.000 description 19
- 230000006399 behavior Effects 0.000 description 15
- 238000013461 design Methods 0.000 description 15
- 230000000694 effects Effects 0.000 description 12
- 101100269850 Caenorhabditis elegans mask-1 gene Proteins 0.000 description 11
- 238000011161 development Methods 0.000 description 11
- 230000000670 limiting effect Effects 0.000 description 10
- 230000000739 chaotic effect Effects 0.000 description 9
- 230000006378 damage Effects 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000005336 cracking Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000002441 reversible effect Effects 0.000 description 8
- 238000012795 verification Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 230000003319 supportive effect Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 238000012937 correction Methods 0.000 description 6
- 238000013515 script Methods 0.000 description 6
- 239000013589 supplement Substances 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000000873 masking effect Effects 0.000 description 5
- 230000005055 memory storage Effects 0.000 description 5
- 230000000875 corresponding effect Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 239000000047 product Substances 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012552 review Methods 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 241000282412 Homo Species 0.000 description 3
- 241000282414 Homo sapiens Species 0.000 description 3
- 230000001066 destructive effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000010899 nucleation Methods 0.000 description 3
- 238000001846 resonance-enhanced photoelectron spectroscopy Methods 0.000 description 3
- 238000000528 statistical test Methods 0.000 description 3
- 241000255925 Diptera Species 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 229920001690 polydopamine Polymers 0.000 description 2
- 238000011112 process operation Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 208000001613 Gambling Diseases 0.000 description 1
- 241000257226 Muscidae Species 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000004870 electrical engineering Methods 0.000 description 1
- 230000005672 electromagnetic field Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000803 paradoxical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000001583 randomness test Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000003989 repetitive behavior Effects 0.000 description 1
- 208000013406 repetitive behavior Diseases 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000005309 stochastic process Methods 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
-
- 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/32—Cryptographic 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/3236—Cryptographic 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 cryptographic hash functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F2015/761—Indexing scheme relating to architectures of general purpose stored programme computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F2015/761—Indexing scheme relating to architectures of general purpose stored programme computers
- G06F2015/763—ASIC
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Description
本発明は、2011年5月27日付で、Patrick Rossにより出願された米国仮特許出願公開第61/519679に基づき、米国特許法第120条による優先権を主張し、その開示が引用により本明細書に援用される。本発明は、2012年5月29日付で、Patrick D. Rossにより出願された米国非仮特許出願公開第13/482723号に基づき、特
許協力条約およびパリ条約による優先権を主張し、その開示が引用により本明細書に援用される。
本発明は、情報を保護するための方法およびシステムに関し、具体的には、情報確率的処理を提供する動的アプリケーションを生成する方法およびシステムに関する。
本発明は、さまざまな方法で、コンピュータゲーム、銀行取引、通信、媒体開発産業のようなさまざまな業種に適用することができるが、これらに限定されない。本発明は、これらの産業により利用されるシステムに使用されるコンピュータハードウェア/ソフトウェアに実装されてもよい。
多くのアプリケーションは、内部処理の一部として乱数を必要とする。これらのアプリケーションの一部は、値の均一分布、所定のシード値からの再現性、および繰返すまでに非常に長いサイクルなどのような単純要件を要する。そのために、多くの論文および書籍は、これらの伝統的な乱数発生器を提供する好適なハードウェアおよびソフトウェア関数を記載する。伝統的な乱数発生器は、有用でありながら問題もある。現行の乱数発生器の欠点を対処する前に、一般的には、まず、これらの発生器の動作を再検討する必要がある。
「クラッキング」(逆算)され易い。乱数発生器がクラッキングされると、クラッカーが配列内の値をそれぞれ予測することができる。経験則としては、伝統的なランダム関数の複雑性を倍にすると、クラッキングに必要な作業量を二乗する効果がある。ハードウェア速度が増加すれば、コンピュータの速度も増加する。したがって、乱数発生器の設計者とそれを破ろうとするクラッカーとの間の戦いは、軍備競争になる。
が高くなるため、投資の利益還元は限られる。さらに、ハードウェアまたはソフトウェアのサンプルが誰かに入手されると、秘密でこれらの設計の完全性を保つすることはできなくなる。本当に必要なのは、真の一方向性関数を実行して非決定的な値のランダムなストリームを生成する真の乱数生成器および/または本明細書に記載された1つ以上の課題および/または当業者が本明細書を理解することにより注目し得る1つ以上の課題を解決する方法またはシステムである。いくつかの改善策は、既に当該分野で行われている。本発明に関連する参考文献の例は、以下でそのまま記載され、各参考文献の支持的な教示は、参照により本明細書に組込まれる。
接続、方法、ステップ、利点、および結果などの非限定的な例として提供され、これらは、「必ず」、「常に」、「決して〜ない」および「確実に」などに限定しないがこれらと逆意味の表現にかかわらず、独立的に、任意の開放的な組合せで、または任意の限定的な組合わせ(からなる)で含まれることができる。提供された任意の寸法は、例示的なものあり、当業者が本開示を読むことにより認識できる機能的に同等な範囲を暗示する。提供される開示は、予言的であると主張されなくても予言的ものである。
本発明は、当技術分野の現状に応じて開発され、特に、現在利用可能な静的(したがって、決定的)ハードウェアおよびソフトウェアソリューションによってまだ完全に解決されていない当技術分野における課題および需要に応じて開発された。したがって、本発明は、ハードウェアまたはソフトウェアのいずれかに応用される動的かつ非決定的ソリューションを生成する方法および/またはシステムを提供するために開発された。本発明の方法および/またはシステムは、情報を確率的処理するためのシステム、方法および/または装置を含むがこれらに限定されない。
、データ供給モジュールに通信プロトコルマップを供給し、アーキテクトモジュールから確率的に処理された通信プロトコルマップを受信し、および確率的に処理された通信プロトコルマップに従って情報ストリームを変更するように構成され得る通信プロトコルインタフェースを含むことができる。
29 一実施形態において、以前では静的な単一のソリューションは、同様の実装において多くの動的カスタムソリューションに変換される。このようなソリューションの新しいゲノムは、以下のモジュールの1つまたは複数を含むがそれらに限定されない多数の新技術に基づいている。
・不確定乱数生成器
・処理要素の動的選択
・必要になるまで要素の拘束遅延
・要素のオンデマンドリミックス
・データ駆動型実装
動的ソリューションの新しいゲノムの実施形態は、多くの好ましいソリューションを簡素化する。「フリーサイズ」の静的アプリケーションをカスタムソリューションにより置換することは、多くの現在未解決された課題を解決することができる。
語は、必ずしも同一の実施形態を指すとは限らない。
本発明の原理をより理解するために、図面に示された例示的な実施形態を参照しながら、特定の用語を用いて説明する。理解すべきことは、本発明の範囲は、これらに限定されないことを意図していることである。関連する技術分野の当業者および本開示を手に入れる者が、本明細書に例示された本発明の特徴に対する任意の変更およびさらなる修飾ならびに本明細書に例示された本発明の原理に対するさらなる用途は、本発明の範囲内に包含されると考えるべきである。
もよい。モジュールが、現場でプログラム可能なゲートアレイ、プログラム可能な論理列、プログラム可能な論理装置などのプログラム可能なハードウェア装置に実装されてもよい。
より実装されてもよい。また、注意すべきは、本発明は、従来のデータ伝送、シグナル伝達、データ処理、ネットワーク制御等の技術を任意数で使用することができることである。さらに、本発明は、JavaScript(登録商標)、VBScriptなどのクライアント側のスクリプト言語に係るセキュリティ問題を検出または防止することができる。
(Sybex 1999)、Eborah RayとEric RayによるMASTERING HTML 4.0 (1997)、およびLoshiNによるTCP/IP CLEARLY EXPLAINED (1997)を参照。
「確実性」原理は、数学の分野で最も重要である。確実性とは、伝統数学により与えられた関数が、入力値(ドメイン値)を用いて一定の出力(範囲値)を機械的に計算することを意味する。今までは、計算の機械的性質により、一般に、このプロセスは、常に任意のドメイン値を与えると、決定的(範囲)値をもたらす。この決定的関数の現実は、数百年も続いている。
、すべての有効ドメイン値のグラフ図の場合、不確定関数のグラフ図が完全に「黒」になる。この黒のグラフ図は、範囲値がドメイン値から独立していることを意味する。よって、任意の所定の範囲値を生成した独特のドメイン値を見つけることはできない。不確定関数は、不確実性数学の基礎である。この種の関数は、「不確実性」がデータから非決定的カオス行動へ拡張できるという考えを生み出す。これらのカオス行動は、独特になり得る動的なカスタムのソリューションを作成する手段を規定する。
不確定データの属性は、データパラドックスを生成するが、同様の属性は、皮肉な解決案、すなわち、プールから2つの不確定データ値をランダムに選択し、この2つの不確定データ値を加算することによって新たな不確定値を生成することを容易にする。複数の異なる親セットが同一の値をもたらすことができるため、この新たな値は、親値から「切離される」。したがって、「不確実性」の属性は、次世代の値に継承される。一般的に、第1世代の不確定データを明らかにしてはいけないが、第1世代の不確定データを処理して得られた次世代のデータを公開することができる。したがって、データパラドックスは、解決される。ランダムに選択された不確定値が大抵の2進以上の演算子を用いて処理される限り、その結果が非決定的である。よって、関数でデータを処理する代わりに、データでデータをモーフィングすることができる。よって、事実上、数学的確実性から脱離することができた。
性の湖、湾または海に拡張することができる。
各URNGのアウトラインは、3つのステップを含む。原始かつ非決定の不確定性プールと、常識から外れた決定的擬似乱数生成器(PRNG)の集合との2つの初期要素を用いて、URNGをスタートさせる。これらの要素から、一般的に内部で使用する中間ツールを構築しなければならない。最初のツールは、不確実ストリームである。不確実ストリームは、好適なPRNGを不確定性プールから読取るアドレス発生器として適用することにより生成される。それによって、原始かつパラドックス上安全でない不確定値のランダムストリームが与えられる。
data0およびdata1が決定的であってもよいが、マスクが非決定的(原始の不確定データ)である場合、マスクが一般的に出力に見られない限り、その結果は非決定的(パラドックス上安全値)である。
マスクURNGは、以下にある10行C言語プロシージャにより示される。このコード例(urng_value)は、上述した3つのステップを含むプロセスに相当する。「Cヘッダ」
セクションは、欠けた詳細を補足する。
typedef struct
{
uint32_t poolsize; // allocation size in r_values
uint32_t modulo; // prime number addressing modulo
t_prng prng[ NUM_STOCHASTIC_POINTS ]; // PRNG addressing functions
r_value *pool; // data pool pointer
} t_urng;
r_value urng_value (t_urng *urng)
{
r_value unsafe_1, unsafe_2; // paradox unsafe PRNG deterministic values
r_value domain_1, domain_2; // paradox safe domain values
r_value mask1, mask2, mask3; // Raw nondeterministic values from the pool
// Use 3 independent PRNGs to read uncertain mask values from the pool
mask1 = urng->pool[ prng (1) % urng->modulo ];
mask2 = urng->pool[ prng (2) % urng->modulo ];
mask3 = urng->pool[ prng (3) % urng->modulo ];
// Convert deterministic PRNG values into a paradox safe domain values
unsafe_1 = prng (4);
unsafe_2 = prng (5);
domain_1 = (~mask1 & unsafe_1) | (mask1 & unsafe_2 ) % urng->modulo;
unsafe_1 = prng (6);
unsafe_2 = prng (7);
domain_2 = (~mask2 & unsafe_1) | (mask2 & unsafe_2 ) % urng->modulo;
// Manufacture a nondeterministic value from the pool while hiding domain and
range
return (~mask3 & urng->pool[ domain_1 ]) | (mask3 & urng->pool[ domain_2 ]);
};
カオス行動の紹介
不確定データは、URNG内において、ランダムデータ、シード値、マスク値、関数選択器、さらに指令などの多重役割を果たしている。一見では些細な発想が大きな影響を引起す。不確実性の原理によると、多くのプログラミング決定が実行まで出さず、実行中にプログラミング決定がランダムデータに駆動される。ランダム性は、プログラムの実行中に果たしている役割がますます重要になり、アプリケーションに与えた全体的な影響がアプリケーションをより非決定的にさせることである。
性プール(すなわち、独立した不確実ストリーム)から得られるが、いずれも出力ストリームに見られない。ここでは、簡単な16指令のカオスエンジン(下記参照)の例を示す。カオスエンジンのインスタンスにおいて、各「指令」は、data0とdata1とマスク値との3つオペランドを含む。これらの値は、「結果」(Result)に処理される。示されたように、いくつかの指令は、マスク値を使用していない。
Result = Data1 - Data0; // standard math subtract operation
Result = (~Mask & Data0) | (Mask & Data1); // normal mask Generator
Result = (Mask & Data0) | (~Mask & Data1); // the other mask Generator
Result = (~Mask & ~Data0) | (Mask & Data1);
Result = (~Mask & Data0) | (Mask & ~Data1);
Result = ~(Data0 & Data1); // bitwise NAND between two data elements
Result = ~(Data0 | Data1); // bitwise NOR between two data
Result = Data0 | Data1; // bitwise OR between two data elements
Result = Data0 ^ Data1; // bitwise XOR between two data elements
Result = Data0 & Data1; // bitwise AND between two data elements
Result = Data0 + Data1; // standard math add operation
Result = ~Data0 | Data1; // Comp Data0, bitwise OR two data elements
Result = Data0 | ~Data1; // Comp Data1, bitwise OR two data elements
Result = ~Data0 ^ Data1; // Comp Data0, bitwise XOR two data elements
Result = Data0 ^ ~Data1; // Comp Data1, bitwise XOR two data elements
指令の可能なセットは、16よりもはるかに大きく、不確定データは、リスト(リスト内の指令順序および使用される指令)を作成するために使用されたということが理解できる。これらの非決定的カオス行動の全面的な実装は、数百万のURNG用の独特のデータ駆動型指令を生成した。このように、不確定データの非決定的な性質は、非決定的なカオス行動に変換される。URNGにおけるこのカオスソフトウェアは、データでデータをモーフィングする別例になる。
カオスURNGは、以下の短いC言語プロシージャによって示される。「Cヘッダ」セクションは、欠けた詳細を補足する。
typedef struct
{
r_value instruction; // random value holding instructions
r_value PC; // current instruction counter within above instruction
edit_process operation[ MAX_REPS ]; // table of chaos operations (Random Edit
Processes)
} t_chaos;
typedef struct
{
uint32_t poolsize; // allocation size in r_values
uint32_t modulo; // prime number addressing modulo
t_prng prng[ NUM_STOCHASTIC_POINTS ]; // PRNG addressing functions
t_chaos cpuAdr0; // address chaos engine
t_chaos cpuAdr1; // address chaos engine
t_chaos cpudata; // data chaos engine
r_value *pool; // data pool pointer
} t_curng;
r_value get_instruction (t_curng *urng, t_chaos *cpu)
{
r_value instruction, instr;
instruction = cpu->instruction; // local copy of instruction block
if (cpu->PC >= INSTRUCTIONS_PER_WORD) { // need new block?
instruction = urng->pool[ prng(0) % urng->modulo ]; // get next instruction block
cpu->PC = 0; // reset to start of block
}
instr = instruction & INSTRUCTION_MASK; // slice off instruction from word
cpu->instruction = instruction >> INSTRUCTION_SHIFT; // move to next
instruction
cpu->PC++;
return instr;
};
r_value urng_value (t_curng *urng)
{
r_value unsafe_1, unsafe_2; // paradox unsafe PRNG deterministic values
r_value domain_1, domain_2; // paradox safe domain values
r_value mask1, mask2, mask3; // Raw nondeterministic values from the pool
r_value instr; // chaos instruction
// Use 3 independent PRNGs to read uncertain mask values from the pool
mask1 = urng->pool[ prng (1) % urng->modulo ];
mask2 = urng->pool[ prng (2) % urng->modulo ];
mask3 = urng->pool[ prng (3) % urng->modulo ];
//
// Decouple paradox unsafe (deterministic) values with address chaos engines
// to create two paradox safe (nondeterministic) domain values.
//
unsafe_1 = prng (4);
unsafe_2 = prng (5);
instr = get_instruction( urng, &urng->cpuAdr0 );
domain_1 = (*urng->cpuAdr0.operation[instr]) (unsafe_1,unsafe_2,mask1) % urng-
>modulo;
unsafe_1 = prng (6);
unsafe_2 = prng (7);
instr = get_instruction( urng, &urng->cpuAdr1 );
domain_2 = (*urng->cpuAdr1.operation[instr]) (unsafe_1,unsafe_2,mask2) % urng-
>modulo;
//
// Using data chaos engines to decouple range values from uncertainty function
//
instr = get_instruction( urng, &urng->cpudata );
return (*urng->cpudata.operation[instr])(urng->pool[domain_1], urng-
>pool[domain_2], mask3);
};
現在、既知の関数駆動型RNGは、わずか数千個しかない。関数駆動型RNGからデータ駆動型RNGに切替えると、国立標準技術研究所NIST(800−22)のランダム性検定パッケージに合格できる独特のRNGが数兆個使用することができる。8/10スコアを有すれば、NIST検定に合格することができる。これまでに、10/10データプールを有する各URNGは、ほぼすべて10/10スコアを受けている。
不確定関数に適用されたドメイン値は、不確定性プールに指定されたファイングレイン(Fine Grain)を表し、タイムスタンプは、異なる不確定値ストリームの間により大きな不連続の跳躍を表す。人間は、イベントのヒューマンスケールに対する時間を考える傾向がある。人間が普通に扱うよりもはるかに短いたとえばマイクロ秒の時間間隔、またははるかに長いたとえば数千年の時間間隔は、人間にとって重要性が低い。人間の知覚限界にもかかわらず、時間は、不確定技術において重要である。時間の性質は、多くの用途において利用されている。不確実性の原理の観点から時間の役割を理解できるように、時間の性質を検討することは有用である。一般的に、タイムスタンプは常に、あるゼロポイントに対してスカラー値を意味する。アナログ/ハードウェアクロックは、ある種類の「拍子数」を提示する。ソフトウェアにおいて、一般的に、タイムスタンプの増分は、米国特許5526515に記載されたように、常に現実世界の「拍子数」にマッピングしない場合がある。上記の文献は、支持的な教示を含むため、本明細書に組込まれる。タイムスタンプ間の差は、任意の値に計算することができる。一般的に、時間の基本モデルは、常に「単調に」増加する。
とによって、必要とされるURNGシード値を計算し、その後、それらを合計してシードになる値を得る。このように、不確定時間モデルを介して、公開のタイムスタンプを用いてプライベートシード値を規定することができる。このように、(ソースファイル内にある)同一の時間モデルを共有するものは、同一の乱数ストリームを作成することもできる。これらのシード値は、データ合同数生成器(後述)で発見される値になる不確定性プールに挿入する2つの開始インデックスを表す。この最初のアドレス指定関数を介して、他のすべての初期値は、不確定性のプールから読込まれる。たとえば、
Seed0 = (delta_days * dayscale) + (delta_milliseconds * millisecondscale);
Seed1 = (delta_hours * hourscale) + (delta_minutes * minutescale) + (delta_sec *secondscale);
確率的処理
動的アプリケーションは、多くのソリューションを簡素化する。確率的処理の方法論は、動的ハードウェアまたはソフトウェアアプリケーションを作成するための開放型のアーキテクチャ手段を与える。多くの場合、これらの動的実装の配置は、多くの現行(好ましい)ソリューションを再定義する。動的アプリケーションしか効果的に解決できない追加クラスの問題が存在している。動的デジタルプロトコルに係る例示的な実施形態は、動的アプリケーションを必要とするクラスの問題を対処する。
ソフトウェアオブジェクトパラダイムにおいて、クラス間のバインディング(接続作り)は、実行時の前に完了されている。プログラマの生産性を向上させるために、ツールセットを用いてこのような静的バインディングタスクを完了させる。静的バインディングは、接続の個数が限られているため、その欠点が明らかである。確率的処理は、設計時ではなく実行中において、より多くの利用可能な接続を形成する。
形することができ、実装のアルゴリズム複雑性を増加させる。同一のデータ駆動型構造において、処理要素の選択および構成は、アルゴリズムの全体複雑性を「爆発的」に増加させることができる。処理要素のオンデマンドリミックスおよび/または機能パラメータの再定義は、不確実性をさらに増加させる。最終的には、単一のソリューションに限定されていた設計は、現在、非決定的になる可能性の高い動的カスタムソリューションを作成する結果になる。
不確実性の原理は、動的ハードウェア/ソフトウェアのカスタム実装を生成する数学、コンピュータ科学、電気工学などの発想の独特な集合を表している。自然「ノイズ」のサンプリングを除いて、乱数生成プロセスは、強固的に機能する完全なソリューションを有しなかった。計算の機械的性質を考えると、従来の「関数駆動型」ソリューションは、乱数を有効的に表現することはできない。関数駆動型ソリューションは、致命的な欠点を有するが、データ駆動型ソリューションは、ランダム性を実用的に表現することができる。「不可知」データは、共通の実装を独特のランダムストリームに変換する。
確率的処理方法論において、「機能的に同等」は、オブジェクトパラダイムに見られる典型的なケースよりもはるかに敏感である。典型的には、ソフトウェアパラダイムは、生産性を向上させるために、実装の多くの副作用を無視するように、開発者を誘導する。場合によっては、これらの副作用は重要であり、無視されると、開発者の目標を損なうことになる。
カテゴリ内の発生器は、概ね同等であるか? 答えは、否定的である。同一の不安全な発生器から複数の乱数を取得した場合、取得された乱数は、1つの値から次の値を予測できる程度に相関している。したがって、これらの乱数は、「ランダム」ではない。安全な発生器からの乱数は、それほど相関していないが、処理速度が遅く、殆ど共有できない。
最初の教示例は、メモリアドレスを作成するために、異なる「乱数発生器」に7つの呼出しを与える。伝統的なPRNGが機能的に同等であるため、良好なランダムメモリアドレスを提供する任意の方法は、これらのPRNGを置換することができる。「単一ストリーム」のPRNGの基本的な欠点を克服するために、現行の各呼出しは、異なるPRNGにルーティングされる。よって、PRNGの各々は、異なるランダム配列から値を返答し、同一の配列から7つの連続値を返答するよりもはるかに優れている。複数のPRNGというソリューションは、大きな改善とも言えるが、すべての他の動的アプリケーションに対する最善のソリューションは、URNGを使用して、非相関かつ非決定的な値を提供することである。
アプリケーション固有の処理要素の集合は、多くの選択肢を提供するために作成される。処理要素の集合を規定するとき、一般的には、集合のサイズを決め、各要素の必要な「品質」を決めなければならない。多くの場合、選択できる処理要素が無制限に存在する可能性があるが、大部分のアプリケーションは、正常に配置できる回数を複数もつ集合を必要とする。明らかに、一部のアプリケーションは、独自のカスタム集合を用いて共通の選択肢を置換するだろう。
。これらの設定オプションは、仮想集合を作成する。
形態は、終了する。
されている。(for)ループは、最初のインデックスから始まり、テーブル全体をインデ
ックスするまで繰返し(220)、その後、ループは終了し、「Found」状態をリターン
する(250)。インデックスされたテーブルエントリは、指定要素230に対して検証される。「Found」の場合、「Found=1」(240)に設定され、(for)ループは、続行
する。
正モジュールであってもよい。上記の文献は、支持的な教示を含むため、本明細書に組込まれる。
ステムの1つ以上の構成要素を含む。そのようなプールは、特定の所望の用途に適合するような大きさにされてもよく、および/または同一または類似の方法で使用され得るより大きなまたはより小さなプールを作成するように使用されてもよい。非決定的データプールの非限定的な例は、Rossにより出願された米国特許公開公報第2010/00036900号および米国特許公開公報第2011/0029588号に記載された不確定乱数発生器であってもよい。上記の文献は、支持的な教示を含むため、本明細書に組込まれる。
に記載されたデータ処理システムまたはBulusuらにより出願された米国特許公開公報第2009/0259862号に記載されたデータ処理モジュールが挙げられる。上記の文献は、支持的な教示を含むため、本明細書に組込まれる。
特許番号第5,957,714号に記載された送込みモジュールまたはBassettらにより
出願された米国特許公開公報第2010/0241417号に記載の供給モジュールが挙げられる。上記の文献は、支持的な教示を含むため、本明細書に組込まれる。
あってもよい。メモリ記憶装置の非限定的な例は、ヒューレット・パッカード社(3000 Hanover Street, Palo Alto, CA, 94304 USA)製のHP Storage Works P2000 G3 Modular Smart Array System、およびソニーアメリカ子会社(550 Madison Avenue, New York, NY,
10022 USA)製のSony Pocket Bit USB Flash Driveを含むことができる。データ記憶モ
ジュールは、データベースまたはデータファイルであってもよく、メモリ記憶装置は、ハードドライブまたはテープであってもよい。データベースの非限定的な例としては、Filemaker社(5261 Patrick Henry Drive Santa Clara, CA, 95054 USA)製のFileMaker Pro
11が挙げられる。
5,573,244号に記載されたシステムまたはPoundらに付与された米国特許第5,
517,556号に記載されたシステムが挙げられる。
米国特許出願公開第2010/0277104号に記載された回路またはWongらに付与された米国特許第7058075号に記載されインターフェースが挙げられる。上記の文献は、支持的な教示を含むため、本明細書に組込まれる。
ルの各々は、アーキテクトモジュール12に呼出されるときに、データを確率的に処理するように構成されてもよい。アーキテクトモジュール12は、実行中に、乱数を用いて複数の機能的に同等なデータ処理モジュール22からデータ処理モジュールを選択するように構成されてもよい。アーキテクトモジュール12は、実行中に、乱数を用いて機能的に同等なデータ処理モジュール22のうち1つを使用するための実行時間を選択するように構成されてもよい。
、(無線、インターネット、イントラネット、バスなどの)通信ネットワークを介してストリームとして提供されてもよく、および/またはハードドライブ、フラッシュメモリ、ROM、RAM、光ディスクなど、およびこれらの組合せに限定されないメモリ装置および/またはメモリフィードへのアクセスを介して提供されてもよい。
支持教示が参照により本明細書に組込まれる。1つの非限定的な実施形態において、共通データプールのみが検証/検定され、本明細書に記載された方法を用いて、共通データプールから作成された後続のプールが検定されていない。このような検定が計算上高価であるため、このようにした方が有利である。また、NIST検定に合格したプールは、本発明の方法により変換されても、NIST検定に合格するレベルを実質的に低下せず、引続きNIST検定に合格するということが観察されている。このことは、一般的に、さらなるデータが生成されることに連れて計算が幾何学級数的に高価になる関数のみに可能であるが、現行の方法は、線形的に高価(時間)になる。
率的処理装置80が提供される。装置80は、プロセッサ84と、プロセッサ84に機能的に連結された不揮発性メモリ装置86とを含む。不揮発性メモリ装置86は、優勢な10/10スコアをもってNIST検定に合格したことが検証された非決定的データのプール88を含む。装置80は、プロセッサ84に機能的に連結され、データを受信するように構成されたデータ入力インターフェースモジュール82を含む。装置80は、プロセッサ84に機能的に連結され、データを送信するように構成され得るデータ出力インターフェースモジュール92を含む。
静的パラメータが決定的な結果をもたらすため、多くの処理要素が正しく機能するために追加のパラメータを必要とする。これらのパラメータのすべては、可能な限り、不確定関数またはURNGから動的に取得すべきである。このようにして、各追加の不確定パラメータは、不確実性の範囲を拡大し続ける。
「コントロールプレーン」という概念は、最初のURNG特許において取上げられた。その発想自身が変わっていないが、その職責が確率的処理のために一般化されている。処理要素の選択/再選択、処理要素の初期化または再初期化、および確率的足場ポイントの更新は、これらの値/要素の多く/殆ど/すべてを実行中のある時点で動的に置換するような主要目的をもって実行される。
確率的開発
確率的処理方法論において、乱数は、処理要素、プログラム制御パラメータおよび単純なデータの選択を含む多くの異なる機能に存在する。適切に構築された確率的処理足場は、ソフトウェア指令として乱数の使用を支持する。この種類の足場の最も簡単な形式は、URNGカオスエンジンである。カオスエンジンは、選択肢のリストから単一の選択を表す。
以下のルーチンは、設計時の静的プールサイズ、アドレス指定モジュロおよび単一の(ライブラリー)PRNG呼出しを有すると仮定する。明らかに、このルーチンは、より確定的である。したがって、確率的処理の方法論には、PRNG呼出しを選択できる大量のPRNG関数の集合を追加する。以下のPRNG呼出しの各々は、異なる関数を用いて動的に選択され、不確定データを介してシードされる。また、「プールサイズ」と「モジュロ」のような不確定パラメータは、ソースファイルが作成されるときに定義される。このように、不確実性の全体的な範囲が広くなるとともに、単一PRNGの既知欠点の一部が緩和される。正味の効果は、マスクURNGとして知られている非決定的かつ不確定の乱数生成器である。
{
uint32_t poolsize; // allocation size in r_values
uint32_t modulo; // prime number addressing modulo
t_prng prng[ NUM_STOCHASTIC_POINTS ]; // PRNG addressing functions
r_value * pool; // data pool pointer
} t_urng;
r_value urng_value (t_urng *urng)
{
r_value unsafe_1, unsafe_2; // paradox unsafe PRNG deterministic values
r_value domain_1, domain_2; // paradox safe domain values
r_value mask1, mask2, mask3; // Raw nondeterministic values from the pool
// Use 3 independent PRNGs to read uncertain mask values from the pool
mask1 = urng->pool[ prng (1) % urng->modulo ];
mask2 = urng->pool[ prng (2) % urng->modulo ];
mask3 = urng->pool[ prng (3) % urng->modulo ];
// Convert deterministic PRNG values into a paradox safe domain values
unsafe_1 = prng (4);
unsafe_2 = prng (5);
domain_1 = (~mask1 & unsafe_1) | (mask1 & unsafe_2 ) % urng->modulo;
unsafe_1 = prng (6);
unsafe_2 = prng (7);
domain_2 = (~mask2 & unsafe_1) | (mask2 & unsafe_2 ) % urng->modulo;
// Manufacture a nondeterministic value from the pool while hiding domain and range
return (~mask3 & urng->pool[ domain_1 ]) | (mask3 & urng->pool[domain_2 ]);
};
しかしながら、これらのPRNGの動的不可知な置換に新たなシード値の追加および不確定性プールのオンデマンド作成によって、同一の実装は、呼出されるたびに動的カスタムソリューションになる。
PRNG関数用の集合およびURNGランダム編集プロセス(REP)関数用の集合を含む2つの集合から開始する。PRNGを選択するときに使用した同一のデータ駆動型プロセスを用いて、REPを選択し、REPリストを作成する。各ランダム編集プロセスは、切離しプロセスである。マスク生成器は、1つの切離しプロセスを表しているが、カオスURNG(上記のコードを参照)は、不確定値を用いて多くの切離しプロセスから選択する。全体的な結果としては、同一の不確定性プールから作成された不確実な乱数は、かなり多くなる。
確率的処理の不確実性は、確率的処理がより有用なランダム性アプリケーションである理由を示している。正確なデータプールがなければ、(実装の情報から)呼出されるカスタムソリューションのバージョンを予測することはできない。ハードウェアおよびソフトウェアにおける現行の(静的)実装は、数学的確実性に準拠している。これらの静的ソリューションは、動的ソリューションに取代れるだろう。これらの不確実性技術は、アプリケーションをカオス的になり、より安価かつより好適なリューションになるようにさせるだろう。
データ構造と行動は、現行のデジタルプロトコルを規定する。開発者は、これらのプロトコルの実装を完璧にするのに勤勉に努力している。この完璧に近い実装は、最新のデジタルプロトコルが非常に脆弱であることを意味する。デジタルプロトコル内の脆弱なデータ構造をどうのように保護するか? データ構造を保護する手段を得るためには、データ構造を意図的に破らなければならない。この皮肉な行動は、データ構造の保護パラドックスを定義する。
ートプロトコルに変換することができる。この変換は、ソフトウェア、書籍およびメディアなど用のデジタル著作権管理(DRM)システムを実装する有用なツールになるだろう。
簡単にすることができる。動的デジタルプロトコルの配置は、経済の基本ルールをリセットする。経済性とともにプロトコルの脆弱性が有用である理由を説明してから、以下に、実装の詳細を説明する。
殆どのデジタルプロトコルにおいて、製造者(製造源または創始者)とプロトコルを処理する消費者との2つの関係者がある。動的デジタルプロトコルを成功させるために、一般的に、これらの2つの関係者は、共通のソースファイル、タイムスタンプ、URNG実装、および確率的処理アプリケーションを含む同様のカスタム環境から出発する必要がある。このようにして、両者は、互換性のある動的デジタルプロトコルに処理するためのランダムデータストリームおよびアプリケーションを同様にもっていることを知っている。動的デジタルプロトコルの「製造者」および「消費者」が同期される限り、両者は、ハッキングされる懸念なく、データ構造の交換を続けることができる。全く同様の環境がなければ、プロトコル消費者に受入れる予期のデータ構造を作成することはできない。
これらの「プレーン」は、各々個別に改革される可能性がある。たとえば、データに影響を与えず、データプールのアドレス指定を変えることができる。同様に、1つのプレーンの状態を固定(凍結)しても、開発者は、他のプレーンを改革することが可能である。このような改革可能性は、不確定関数の性質から由来する。したがって、同様の可能性は、確率的処理(データ/アドレス/制御プレーン)にも存在する。
「静的UNRG」は、ソースファイル内の不確定性プールに基づき、URNGインスタンスを作成する。各独特のタイムスタンプは、同一のデータを共有しながら、URNGの異なるインスタンスを作成する。
動的URNGプリミティブ
「動的URNG」は、指定のソースファイルとタイムスタンプを利用して、新たな不確定性プールを作成する。この新たな不確定性プールとタイムスタンプは、URNGの動的インスタンスを定義する。したがって、各独特のタイムスタンプは、独特の乱数生成器を生成し、生成された各独特の乱数生成器は、独特の乱数ストリームを生成する。
同一のソースファイル、タイムスタンプおよび上記のプリミティブは、同一のURNGインスタンスを作成し、その後同一のランダムストリームを生成する。所定のURNGインスタンスが定義された後、データプレーンが割当てられる。
「クローンURNG」は、所定のURNGインスタンスのコピーを作成する。各クローンは、クローン点から同一の乱数ストリームを生成する。
URNG値プリミティブ
「URNG値」は、乱数を取得するための標準なURNGインタフェースプリミティブである。
ランダムサブストリーム−インデックス付きURNGプリミティブ
「インデックス付きURNG」は、「インデックス付き」ストリーム内において次の乱数を取得するためのインタフェースプリミティブである。インデックスが変わるたびに、インデックス付きストリームがリセットされる。よって、「リセット」は、インデックス付きURNGの再利用を可能にし、任意のインデックス付きストリームを再生成することができる。例として、同一のインデックス付きストリームが同一のランダムストリームを再生成し始めるように、インデックスを一時値にセットして、その後以前のインデックス位置に復元させる必要がある。インデックス付きURNGインターフェースプリミティブと連動して、クローンURNGインタフェースプリミティブの使用は、任意数の(異なる)連立ランダムストリームが同一の不確定性プールから支持されることを可能にする。
バーチャルカット−メモリアドレス+オフセット
たとえば、データプールを読取るために使用されるメモリアドレスにオフセットを足すことは、メモリ範囲の原点を移動させることと同様の効果を有する。これは、カードゲームにおいてトランプの「カット」と似ている。
メモリアドレスとともに、ビット単位でシャッフル値のXORをとる行為は、XOR演算によってメモリ範囲が並べ替えられたため、迅速な位置シャッフルと相当する効果を有する。シャッフルしてからカットすることができ、またはカットしてからシャッフルすることもできる。希望であれば、これらの仮想カードトリックは、何度でも行うことができる。
メモリアドレスの操作は、いくつかの非常に有用な副作用を生じることができる。通常は、不確定乱数発生器は、1つの乱数ストリームしか生成しない。不確定乱数発生器内に使用された各メモリアドレスにオフセットを足すと、異なるオフセットごとに、異なるランダムサブストリームが生成される。メモリ−オフセット値を選択的に足すことによって、任意数のランダムサブストリームを生成することができる。これによって、必要に応じて、アドレスをランダムに指定可能なサブストリームを得ることができる。このツールは、多くのアプリケーションにおいて非常に有用である。
殆どの場合、「ファイル」の命名は、一般には、何らかの形式の「名前空間」内において、そのファイルを見つける場所(パス名)を最初に識別する必要である。一般的には、場所の最後の部分だけは、ファイルを命名するために使用される。パス名は、ソースファイルの外部識別を指定する。追加の内部識別は、作成タイムスタンプと非独特の識別子を含む。外部識別および内部識別によって、任意のソースファイルを既知のシステムに位置付けることができる。一旦正しいソースファイルを見つけると、動的識別子(オープンファイルID)を定義することができる。
データ構造の製造者と消費者とは、最初から同一のソースファイルおよびタイムスタンプをもつことに限り、同一のURNGインスタンスを作成することによって、既に同期の第1レベルに達している。一般的に、確率的処理アプリケーションは、特異のランダム配列を表す値(サブストリーム識別子)を定義しなければならない。これらのサブストリーム識別子は、インデックス付きURNGプリミティブの「インデックス」値となる。確率的処理アプリケーションは、一般的に新たなランダムサブストリームを要求するたびに、新たなインデックス(ストリーム)値を作成することができる。このインデックス値は、データ構造内にあってもなく、いなくてもよい。たとえば、いくつかのインターネットプロトコルは、プロトコル定義に埋込まれた「配列番号」を有する。これらの配列番号は、インデックス値にマッピングされることができる。これらのインデックス値は、ランダム性のファイングレイン(Fine Grain)アドレス(時間)指定関数となる。明らかには、殆どのプロトコル配列番号は、ある理由で順番付けられるが、これらのインデックス値は、連続する必要はない。これらのインデックスを作成および管理するアルゴリズムが正しい限り、インデックス付きURNGプリミティブは、任意所定の(有効の)インデックスに対し、同様のランダムサブストリームを与える。
デジタルプロトコル内で脆弱な(静的)データ構造を保護するタスクは、最大2つの異なるアプリケーション固有の処理要素の集合が必要になる。第1集合が、データ構造を単一の値に減少させるある形式の「ハッシュ」関数または巡回冗長検査(CRC)関数である。必要に応じて、第2集合が使用され、データ構造の保護パラドックスを呼出す。
多くのインターネットプロトコルは、CRC関数を採用して、損傷した(無効の)パケットを検出する。CRCチェックが不合格である場合、パケットが破棄される。これらのプロトコルは、欠落パケットを自然に置換し、一時的なグリッチという唯一の結果を生じる。現在、多くの異なるCRC関数は、ネットワークの全体に配置されている。しかしながら、意図通りに機能させるために、現行のCRCの各呼出しは、一般的に正しい関数を使用しなければならない。このことは、現行のCRCメタファーを定義する。
」となった。残念ながら、CRC関数が知られた場合に、CRC値は、CRCチェックに合格できる程度にハッキングされることができる。解決案を完成させ、ハッキングを防止するために、一般的にCRCの計算に不確定データを組込む必要がある。必要された(不確定サイズの)不確定データは、正しいURNGインスタンスのみから生成することができる。よって、追加の不確定データを加えたハッシュ/CRC関数の集合は、実際に、各パケットの簡単なCRCメタファーを安全なデジタル署名にアップグレードする。そのため、認証されていないパケットが無視される。CRCメタファーのRIC置換は、コストが十分低いであるため、普及することができる。
明らかに、RICは、任意のデジタルプロトコルに加えられ、低コストの認証手段を提供することができる。多くのサービスは、認証なしで提供されているが、一部のサービスは、認証(たとえば、セキュア・ソケット・レイヤー(SSL))をサポートする非常に複雑なインフラを有する。一回のデータ交換が完了すると、乱数発生器も交換される。そのため、認証をサポートするために必要された最小限のインフラを設立した。共有の確率的処理アプリケーションがこのデータ交換に使用される場合、ハードウェアまたはソフトウェアにおける動的カスタムのアプリケーションも交換される。
多くのサービス提供者が既知の「公開アドレス」を有すると仮定する。これらのサービス提供者が既にRIC認証をサポートするようにアップグレードされる場合、許可されたサービスのみが提供され、他のすべてのリクエストが無視される。このように、RICは、このサービスに対し、一種の取消可能なアクセス制御となる。このアクセス制御の可能な応用は、無制限である。
破壊および復元(BR)プロセスは、確率的足場のフレームワークに従って進む。BRアプリケーションの開発者は各々、BR処理要素を多段階選択するおよび多段階起動させるためのフレームワークを作成する。プログラム制御変数(ステップ数、ステップの順序、BR要素の選択など)に対する制限はすべて、URNGによって生成されたデータによ
って規定される。
以上のセクションでは、BRプロセスとRICの両方が同時に使用されている場合を説明した。しかしながら、多くの有効なアプリケーションは、一方のみを使用する。多くのデジタルプロトコルにおいて、RICは、アクセス制御の低コスト解決案として単独に利用される。ソフトウェアDRMの場合、BRプロセスは、単独に利用される。RICのみがソフトウェアDRMに採用されている場合、攻撃点が1つであるため、ソフトウェアがハッキングされ易くなり、RICの効果が発揮できなくなる。しかしながら、BRプロセスの単独使用は、ソフトウェアを充分保護できる。その理由は、不正に復元されたソフトウェアがすべて機能しなくなる。BRプロセスのみまたはRICのみを使用するアプリケーションは、多くある。
「線形合同数生成器」は、決定的値を生成する。これらの決定的値は、一般的にURNG実装内でパラドックス安全な値に変換されなければならない。不確定関数用のパラドックス安全なドメイン値を生成するための要件が同様に維持されながら、欠点のあるPRNGを除去すると、プロセスをより好適なランダム性を有するように簡素化することができる。
unsafe_1 = prng (4);
unsafe_2 = prng (5);
domain = (~mask & unsafe_1) | (mask & unsafe_2 ) % urng->modulo;
不確定性プールから1つ(または1つ以上)の非決定的な値を用いて、素数モジュロ演算からドメイン値を生成することができる。パラドックス安全なデータを用いて「線形」方程式を置換すると、「線形合同数生成器」の代わりに、データ合同数生成器(DCG)が生成される。不確定性プールに与えたランダムインデックスが2つ(seed0,seed1)である場合、Cコード置換例は、以下である。
uint32_t hi, low, domain;
hi = urng->pool[ seed0++ % urng->modulo ];
low = urng->pool[ seed1-- % urng->modulo ];
y = ((uint64_t) hi << 32) | (low);
domain = ( y % prime ) % urng->modulo;
注:この実施例では、2つの32ビット値を連結することによって、64ビット値を作成する。連結の代わりに、ほぼすべての2進演算も同様に機能する。単一のプール値が機能するが、同一のアドレス指定配列を繰返す速度が速すぎるという傾向がある。上記の「素数」を置換すれば、異なるドメイン値生成器を作成することができる。DCGの実施形態は、ソフトウェアまたはハードウェアに作成することができる。
Cヘッダは、上記のコード抜粋に書かれていないいくつかの詳細を補足する。
#define MAX_REPS 16
#define INSTRUCTIONS_PER_WORD 8
#define INSTRUCTION_MASK 0xF
#define INSTRUCTION_SHIFT 4
#defineNUM_STOCHASTIC_POINTS 7
#define prng( num ) ((*urng->prng[ num ].PRNG)( &urng->prng[ num ].state ))
typedef uint32_t r_value; // base type of uncertainty value
// generic PRNG function
typedef r_value (*PRNG_function)(r_value* seed);
// generic Random Edit Process
typedef r_value (*edit_process)(r_value, r_value, r_value);
typedef struct
{
PRNG_function PRNG;
r_value state;
} t_prng;
// STRUCTURE : t_chaos
//
// Chaos CPU
// instruction (block) currently 4 bits each
// PC Program Counter within instruction block
// 16 CPU operations indexed via 4 bit instruction
// each operation is a generic Random Edit Process
// each operation is randomly selected via uncertainty value from REP table
//
// Since each instruction block is randomly fished from pool of uncertainty and then
// used to perform random operations against other random streams, the Chaos Engine
// is an appropriate name.
typedef struct
{
r_value instruction; // random value holding instructions
r_value PC; // current instruction counter within above instruction
edit_process operation[ MAX_REPS ]; // table of chaos operations (Random Edit
Processes)
} t_chaos;
typedef struct
{
uint32_t poolsize; // allocation size in r_values
uint32_t modulo; // prime number addressing modulo
t_prng prng[ NUM_STOCHASTIC_POINTS ]; // PRNG addressing functions
t_chaos cpuAdr0; // address chaos engine
t_chaos cpuAdr1; // address chaos engine
30 t_chaos cpudata; // data chaos engine
r_value *pool; // data pool pointer
} t_curng;
typedef struct
{
uint32_t poolsize; // allocation size in r_values
uint32_t modulo; // prime number addressing modulo
t_prng prng[ NUM_STOCHASTIC_POINTS ]; // PRNG addressing functions
r_value *pool; // data pool pointer
} t_urng;
上述した実施形態は、本発明の応用原理の単なる例示であることを理解すべきである。本発明は、その精神または本質的な特徴から逸脱することなく、他の特定の形態で実現され得る。上記の実施形態は、すべての点で、単なる例示であり、限定的ではないと考えるべきである。したがって、本発明の範囲は、上記の説明ではなく、添付の特許請求の範囲によって示される。特許請求の範囲と均等な意味および範囲にあるすべての変更は、本発明の範囲内に包含されるべきである。
Claims (15)
- コンピューティングシステムの第1のメモリ装置内の第1のデータプールにおけるメモリ位置のアドレスを指定するためのシステムであって、
a)データプールサイズを有する非決定的データプールを有する第2のメモリ装置と、
b)格納された素数と、
c)前記第2のメモリ装置における前記非決定的データプールから、第1の値を取得し、次いで、前記第1の値を前記格納された素数で除算し、第1の余りを決定するハードウェアまたはソフトウェアのモジュロ演算子と、
d)メモリアクセス動作を行うために、前記第1の余りから得られたドメインを用いて、前記第1のデータプールのアドレスを指定するメモリコントローラとを含み、
前記第1のデータプールおよび前記非決定的データプールは、同一または異なるデータプールであってよく、前記第1のメモリ装置と前記第2のメモリ装置は、同一または異なる装置であってもよい、システム。 - 格納された素数の配列をさらに含み、前記格納された素数は、前記格納された素数の配列から選択される、請求項1に記載のシステム。
- 前記非決定的データプールから前記第1の値を取得した位置をインクリメントすることによって、2つの別個の値のうちの一方の値が生成され、前記第1の値を取得した位置をデクリメントすることによって、前記2つの別個の値のうちの他方の値が生成され、
前記第1の値は、前記2つの別個の値を連結することによって得られる、請求項1または2に記載のシステム。 - 前記非決定的データプールから前記第1の値を取得した位置をインクリメントすることによって、2つの別個の値のうちの一方の値が生成され、前記第1の値を取得した位置をデクリメントすることによって、前記2つの別個の値のうちの他方の値が生成され、
前記第1の値は、前記2つの別個の値に対して2進演算を実行することによって得られる、請求項1または2に記載のシステム。 - 前記第1の値は、前記非決定的データプールにインデックスをランダムに付けることによって得られる、請求項1または2に記載のシステム。
- 前記非決定的データプールは、関数から導出されていない、請求項1〜5のいずれか1項に記載のシステム。
- 前記モジュロ演算子はさらに、前記第1の余りを素数であるアドレス指定モジュロで除算し、第2の余りを決定することにより第2の余りを計算し、それにより前記メモリコントローラによって使用される前記ドメインを導出する、請求項1〜6のいずれか1項に記載のシステム。
- コンピューティング装置のデータプールのメモリアドレスにアクセスするための方法であって、
a)メモリ装置内に格納された非決定的データプールを提供するステップを含み、前記データプールは、データプールサイズを有し、
b)素数を提供するステップと、
c)前記非決定的データプールから第1の値を取得するステップと、
d)ハードウェアまたはソフトウェアのモジュロ演算子の演算によって、ソフトウェアモジュロ演算子の場合プロセッサを用いて、前記第1の値を前記素数で除算し、その余りを決定することにより、前記第1の値の第1の余り値を計算することによって、前記第1の余り値を生成するステップと、
e)メモリコントローラを用いて、アドレス値を決定するために前記第1の余り値から得られたドメイン値を使用することによって、データプール内のメモリアドレスにアクセスするステップとを含み、
前記データプールは、前記非決定的データプールと同様であってもよく異なってもよい、方法。 - 前記素数は、第2の素数によって置換される、請求項8に記載の方法。
- 前記非決定的データプールから前記第1の値を取得した位置をインクリメントすることによって、2つの別個の値のうちの一方の値を生成するステップと、
前記非決定的データプールから前記第1の値を取得した位置をデクリメントすることによって、前記2つの別個の値のうちの他方の値を生成するステップとをさらに含み、
前記第1の値は、前記2つの別個の値を連結することによって得られる、請求項8または9に記載の方法。 - 前記非決定的データプールから前記第1の値を取得した位置をインクリメントすることによって、2つの別個の値のうちの一方の値を生成するステップと、
前記非決定的データプールから前記第1の値を取得した位置をデクリメントすることによって、前記2つの別個の値のうちの他方の値を生成するステップとをさらに含み、
前記第1の値は、前記2つの別個の値に対して2進演算を実行することによって得られる、請求項8または9に記載の方法。 - 前記第1の値は、前記非決定的データプールにインデックスをランダムに付けることによって得られる、請求項8または9に記載の方法。
- 第1のセットの前記2つの別個の値は、前記非決定的データプールにインデックスをランダムに付けることによって得られる、請求項11に記載の方法。
- 前記第1の余り値を第2の素数で除算し、その余り値を決定することにより第2の余り値を計算し、それにより第2の余り値を生成し、前記第2の余り値を前記メモリコントローラに使用される前記ドメイン値として使用することによって、前記余り値から前記ドメイン値を導出するステップをさらに含む、請求項8〜13のいずれか1項に記載の方法。
- 前記非決定的データプールは、関数から導出されていない、請求項8〜14のいずれか1項に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/482,723 US9778912B2 (en) | 2011-05-27 | 2012-05-29 | Stochastic processing of an information stream by a processing architecture generated by operation of non-deterministic data used to select data processing modules |
US13/482,723 | 2012-05-29 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016142457A Division JP6400640B2 (ja) | 2012-05-29 | 2016-07-20 | 確率的処理 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019012547A JP2019012547A (ja) | 2019-01-24 |
JP6616471B2 true JP6616471B2 (ja) | 2019-12-04 |
Family
ID=47220061
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015515130A Active JP5976928B2 (ja) | 2012-05-29 | 2013-05-29 | 確率的処理 |
JP2016142457A Active JP6400640B2 (ja) | 2012-05-29 | 2016-07-20 | 確率的処理 |
JP2018165973A Active JP6616471B2 (ja) | 2012-05-29 | 2018-09-05 | 確率的処理 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015515130A Active JP5976928B2 (ja) | 2012-05-29 | 2013-05-29 | 確率的処理 |
JP2016142457A Active JP6400640B2 (ja) | 2012-05-29 | 2016-07-20 | 確率的処理 |
Country Status (5)
Country | Link |
---|---|
US (4) | US9778912B2 (ja) |
EP (1) | EP2856331A4 (ja) |
JP (3) | JP5976928B2 (ja) |
KR (4) | KR20170099407A (ja) |
WO (1) | WO2013181196A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022177984A1 (en) * | 2021-02-16 | 2022-08-25 | Cassy Holdings Llc | High clock-efficiency random number generation system and method |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070214036A1 (en) * | 2006-03-08 | 2007-09-13 | Gosakan Aravamudan | Online product design |
US8959307B1 (en) | 2007-11-16 | 2015-02-17 | Bitmicro Networks, Inc. | Reduced latency memory read transactions in storage devices |
US8665601B1 (en) | 2009-09-04 | 2014-03-04 | Bitmicro Networks, Inc. | Solid state drive with improved enclosure assembly |
US8447908B2 (en) | 2009-09-07 | 2013-05-21 | Bitmicro Networks, Inc. | Multilevel memory bus system for solid-state mass storage |
US8560804B2 (en) | 2009-09-14 | 2013-10-15 | Bitmicro Networks, Inc. | Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device |
US9063673B2 (en) * | 2011-08-30 | 2015-06-23 | Uniquesoft, Llc | System and method for implementing application code from application requirements |
US9372755B1 (en) | 2011-10-05 | 2016-06-21 | Bitmicro Networks, Inc. | Adaptive power cycle sequences for data recovery |
US9043669B1 (en) | 2012-05-18 | 2015-05-26 | Bitmicro Networks, Inc. | Distributed ECC engine for storage media |
US9423457B2 (en) | 2013-03-14 | 2016-08-23 | Bitmicro Networks, Inc. | Self-test solution for delay locked loops |
US9672178B1 (en) | 2013-03-15 | 2017-06-06 | Bitmicro Networks, Inc. | Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system |
US9430386B2 (en) | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
US10120694B2 (en) | 2013-03-15 | 2018-11-06 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US9798688B1 (en) | 2013-03-15 | 2017-10-24 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US10489318B1 (en) | 2013-03-15 | 2019-11-26 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9501436B1 (en) | 2013-03-15 | 2016-11-22 | Bitmicro Networks, Inc. | Multi-level message passing descriptor |
US9934045B1 (en) | 2013-03-15 | 2018-04-03 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US9720603B1 (en) | 2013-03-15 | 2017-08-01 | Bitmicro Networks, Inc. | IOC to IOC distributed caching architecture |
US9842024B1 (en) | 2013-03-15 | 2017-12-12 | Bitmicro Networks, Inc. | Flash electronic disk with RAID controller |
US9875205B1 (en) | 2013-03-15 | 2018-01-23 | Bitmicro Networks, Inc. | Network of memory systems |
US9734067B1 (en) | 2013-03-15 | 2017-08-15 | Bitmicro Networks, Inc. | Write buffering |
US9400617B2 (en) | 2013-03-15 | 2016-07-26 | Bitmicro Networks, Inc. | Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained |
US9971524B1 (en) | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US10025736B1 (en) | 2014-04-17 | 2018-07-17 | Bitmicro Networks, Inc. | Exchange message protocol message transmission between two devices |
US10078604B1 (en) | 2014-04-17 | 2018-09-18 | Bitmicro Networks, Inc. | Interrupt coalescing |
US9811461B1 (en) | 2014-04-17 | 2017-11-07 | Bitmicro Networks, Inc. | Data storage system |
US10055150B1 (en) | 2014-04-17 | 2018-08-21 | Bitmicro Networks, Inc. | Writing volatile scattered memory metadata to flash device |
US10042792B1 (en) | 2014-04-17 | 2018-08-07 | Bitmicro Networks, Inc. | Method for transferring and receiving frames across PCI express bus for SSD device |
US9952991B1 (en) | 2014-04-17 | 2018-04-24 | Bitmicro Networks, Inc. | Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation |
EP3320457B1 (en) | 2015-07-10 | 2021-04-07 | Whether Or Knot LLC | System and method for electronic data distribution |
US10552050B1 (en) | 2017-04-07 | 2020-02-04 | Bitmicro Llc | Multi-dimensional computer storage system |
US11222172B2 (en) | 2017-05-18 | 2022-01-11 | Lakebolt Research | System and method for reactive computing |
RU181260U1 (ru) * | 2017-11-16 | 2018-07-06 | Федеральное государственное бюджетное военное образовательное учреждение высшего образования "Черноморское высшее военно-морское ордена Красной Звезды училище имени П.С. Нахимова" Министерства обороны Российской Федерации | Вероятностный вычитатель |
TWI799722B (zh) * | 2018-03-01 | 2023-04-21 | 鈺創科技股份有限公司 | 收集與分析資料的裝置 |
CN108648323B (zh) * | 2018-05-10 | 2021-02-19 | 广州市申迪计算机系统有限公司 | 目标信息的选取方法、装置、计算机设备和存储介质 |
US20200027567A1 (en) | 2018-07-17 | 2020-01-23 | Petuum Inc. | Systems and Methods for Automatically Generating International Classification of Diseases Codes for a Patient Based on Machine Learning |
WO2020093201A1 (zh) * | 2018-11-05 | 2020-05-14 | 北京大学深圳研究生院 | 基于gspn和鞅理论网络空间拟态防御的安全性建模量化方法 |
WO2020183250A1 (en) * | 2019-03-12 | 2020-09-17 | Ajitkumar Dhanraj Hatti | A system for generation and verification of identity and a method thereof |
US11654635B2 (en) | 2019-04-18 | 2023-05-23 | The Research Foundation For Suny | Enhanced non-destructive testing in directed energy material processing |
Family Cites Families (49)
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 |
US5430836A (en) | 1991-03-01 | 1995-07-04 | Ast Research, Inc. | Application control module for common user access interface |
JPH05241593A (ja) * | 1991-12-25 | 1993-09-21 | Matsushita Electric Ind Co Ltd | 時系列信号処理装置 |
GB2288519A (en) * | 1994-04-05 | 1995-10-18 | Ibm | Data encryption |
EP0806068B1 (en) | 1995-01-25 | 2001-09-19 | Haworth, Inc. | Modular communication system |
JPH1020781A (ja) * | 1996-06-28 | 1998-01-23 | Nippon Telegr & Teleph Corp <Ntt> | 電子署名方法、その検証方法および装置 |
US6104811A (en) * | 1996-08-16 | 2000-08-15 | Telcordia Technologies, Inc. | Cryptographically secure pseudo-random bit generator for fast and secure encryption |
US5909494A (en) * | 1997-02-14 | 1999-06-01 | At&T Corp. | System and method for constructing a cryptographic pseudo random bit generator |
US6243635B1 (en) | 1997-08-27 | 2001-06-05 | Nartron Corporation | Integrated seat control with adaptive capabilities |
JPH11109859A (ja) * | 1997-10-06 | 1999-04-23 | Nec Corp | 擬似乱数発生方法および装置 |
US6298481B1 (en) | 1998-10-30 | 2001-10-02 | Segasoft, Inc. | System for modifying the functionality of compiled computer code at run-time |
US7058075B1 (en) | 1999-06-15 | 2006-06-06 | Cisco Technology, Inc. | Self-configuring interface for communication protocols |
US6678853B1 (en) | 1999-12-17 | 2004-01-13 | Hewlett-Packard Development Company, L.P. | Method and apparatus for generating random code |
US7024690B1 (en) * | 2000-04-28 | 2006-04-04 | 3Com Corporation | Protected mutual authentication over an unsecured wireless communication channel |
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 |
ATE348359T1 (de) | 2001-01-16 | 2007-01-15 | Ericsson Telefon Ab L M | Zufallszahlengenerator basierend auf komprimierung |
US6792439B2 (en) * | 2001-04-13 | 2004-09-14 | Science Applications International Corp. | Method and apparatus for generating random numbers with improved statistical properties |
FR2829643A1 (fr) * | 2001-09-12 | 2003-03-14 | Everbee Wireless Ltd | Procede pour generer des nombres aleatoires |
US20040205567A1 (en) | 2002-01-22 | 2004-10-14 | Nielsen Andrew S. | Method and system for imbedding XML fragments in XML documents during run-time |
US7209561B1 (en) * | 2002-07-19 | 2007-04-24 | Cybersource Corporation | System and method for generating encryption seed values |
US7139785B2 (en) | 2003-02-11 | 2006-11-21 | Ip-First, Llc | Apparatus and method for reducing sequential bit correlation in a random number generator |
EP1450250B1 (en) * | 2003-02-11 | 2006-08-23 | IP-First LLC | Random number generator with selectable dual random bit string engines |
US7085791B2 (en) * | 2003-02-14 | 2006-08-01 | Lucent Technologies Inc. | Method and apparatus for generating a pseudo random number |
US7502468B2 (en) | 2003-09-02 | 2009-03-10 | Ncipher Corporation Ltd. | Method and system for generating a cryptographically random number stream |
US7523305B2 (en) * | 2003-12-17 | 2009-04-21 | International Business Machines Corporation | Employing cyclic redundancy checks to provide data security |
US7770014B2 (en) * | 2004-04-30 | 2010-08-03 | Microsoft Corporation | Randomized signal transforms and their applications |
US7590830B2 (en) * | 2004-05-28 | 2009-09-15 | Sun Microsystems, Inc. | Method and structure for concurrent branch prediction in a processor |
US20050271207A1 (en) * | 2004-06-05 | 2005-12-08 | Helmut Frey | Method and system for chaotic digital signature, encryption, and authentication |
US7191372B1 (en) * | 2004-08-27 | 2007-03-13 | Xilinx, Inc. | Integrated data download |
US7552156B2 (en) | 2004-08-30 | 2009-06-23 | Nunes Ryan J | Random number generator |
BRPI0517026A (pt) * | 2004-10-25 | 2008-09-30 | Rick L Orsini | método e sistema analisador de dados seguros |
US20060216524A1 (en) | 2005-03-23 | 2006-09-28 | 3M Innovative Properties Company | Perfluoropolyether urethane additives having (meth)acryl groups and hard coats |
JP4774509B2 (ja) * | 2005-05-13 | 2011-09-14 | 国立大学法人お茶の水女子大学 | 擬似乱数発生システム |
WO2007029330A1 (ja) | 2005-09-09 | 2007-03-15 | Mitsubishi Denki Kabushiki Kaisha | 擬似乱数生成装置 |
GB0602641D0 (en) | 2006-02-09 | 2006-03-22 | Eads Defence And Security Syst | High speed data processing system |
US7720225B2 (en) | 2006-03-07 | 2010-05-18 | Research In Motion Limited | Table splitting for cryptographic processes |
CN101473298A (zh) | 2006-06-20 | 2009-07-01 | Nxp股份有限公司 | 随机数发生器系统、产生随机数的方法 |
US20080076525A1 (en) | 2006-08-25 | 2008-03-27 | Igt | Quantum gaming system |
JP4258551B2 (ja) * | 2007-01-25 | 2009-04-30 | 日本電気株式会社 | 認証システム、認証方法、及び認証プログラム |
US7962539B2 (en) * | 2007-04-30 | 2011-06-14 | International Business Machines Corporation | System, method and device of generating a random value |
US8478980B2 (en) * | 2007-05-18 | 2013-07-02 | Verimatix, Inc. | System and method for defining programmable processing steps applied when protecting the data |
US8171068B2 (en) * | 2007-08-31 | 2012-05-01 | International Business Machines Corporation | Generating unique pseudorandom numbers |
US8448002B2 (en) | 2008-04-10 | 2013-05-21 | Nvidia Corporation | Clock-gated series-coupled data processing modules |
US8312071B2 (en) | 2008-04-11 | 2012-11-13 | International Business Machines Corporation | Method and structure for provably fair random number generator |
US8010846B1 (en) * | 2008-04-30 | 2011-08-30 | Honeywell International Inc. | Scalable self-checking processing platform including processors executing both coupled and uncoupled applications within a frame |
US9292259B2 (en) | 2008-08-06 | 2016-03-22 | Cassy Holdings Llc | Uncertainty random value generator |
US8324824B2 (en) | 2009-01-29 | 2012-12-04 | Ixys Corporation | 1-wire communication protocol and interface circuit |
US9342508B2 (en) | 2009-03-19 | 2016-05-17 | Microsoft Technology Licensing, Llc | Data localization templates and parsing |
US9207911B2 (en) | 2009-07-31 | 2015-12-08 | Cassy Holdings Llc | Modular uncertainty random value generator and method |
-
2012
- 2012-05-29 US US13/482,723 patent/US9778912B2/en active Active
-
2013
- 2013-05-29 WO PCT/US2013/043006 patent/WO2013181196A1/en active Application Filing
- 2013-05-29 KR KR1020177022828A patent/KR20170099407A/ko not_active Application Discontinuation
- 2013-05-29 JP JP2015515130A patent/JP5976928B2/ja active Active
- 2013-05-29 KR KR1020147033522A patent/KR101677557B1/ko active IP Right Grant
- 2013-05-29 EP EP13798025.6A patent/EP2856331A4/en not_active Ceased
- 2013-05-29 KR KR1020167031559A patent/KR101772002B1/ko active IP Right Grant
- 2013-05-29 KR KR1020187029289A patent/KR101961843B1/ko active IP Right Grant
-
2016
- 2016-07-20 JP JP2016142457A patent/JP6400640B2/ja active Active
-
2017
- 2017-08-14 US US15/676,324 patent/US10635399B2/en active Active
- 2017-08-29 US US15/689,281 patent/US9990180B2/en active Active
- 2017-11-24 US US15/822,058 patent/US9965249B2/en active Active
-
2018
- 2018-09-05 JP JP2018165973A patent/JP6616471B2/ja active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022177984A1 (en) * | 2021-02-16 | 2022-08-25 | Cassy Holdings Llc | High clock-efficiency random number generation system and method |
Also Published As
Publication number | Publication date |
---|---|
US9778912B2 (en) | 2017-10-03 |
JP2019012547A (ja) | 2019-01-24 |
US20180074790A1 (en) | 2018-03-15 |
EP2856331A4 (en) | 2016-06-15 |
JP6400640B2 (ja) | 2018-10-03 |
US9990180B2 (en) | 2018-06-05 |
US10635399B2 (en) | 2020-04-28 |
JP2015519669A (ja) | 2015-07-09 |
KR20150004908A (ko) | 2015-01-13 |
EP2856331A1 (en) | 2015-04-08 |
KR101961843B1 (ko) | 2019-03-25 |
JP5976928B2 (ja) | 2016-08-24 |
KR101677557B1 (ko) | 2016-11-18 |
JP2017016667A (ja) | 2017-01-19 |
KR101772002B1 (ko) | 2017-08-28 |
US20170371623A1 (en) | 2017-12-28 |
KR20160133014A (ko) | 2016-11-21 |
US9965249B2 (en) | 2018-05-08 |
US20180011692A1 (en) | 2018-01-11 |
KR20170099407A (ko) | 2017-08-31 |
US20120303924A1 (en) | 2012-11-29 |
WO2013181196A1 (en) | 2013-12-05 |
KR20180115343A (ko) | 2018-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6616471B2 (ja) | 確率的処理 | |
RU2619895C1 (ru) | Система и способы для шифрования данных | |
JP5886375B2 (ja) | 不確定性ランダム値発生器 | |
Johnson et al. | A PUF-enabled secure architecture for FPGA-based IoT applications | |
Lazar et al. | Why does cryptographic software fail? A case study and open problems | |
Bortolozzo et al. | Attacking and fixing PKCS# 11 security tokens | |
CN111049897B (zh) | 小程序包的加密上传和解密部署方法、装置、设备和介质 | |
WO2020157590A1 (en) | Systems, methods, and storage media for obfuscating a computer program by representing the control flow of the computer program as data | |
Ateniese et al. | Secure outsourcing of cryptographic circuits manufacturing | |
CN104965701B (zh) | 获取应用信息的方法及装置 | |
US20170061106A1 (en) | Anti-reverse engineering unified process | |
WO2015110899A1 (en) | Method of protecting secret data when used in a cryptographic algorithm | |
US20160380766A1 (en) | Encryption system with a generator of one-time keys and a method for generating one time-keys | |
US11277445B2 (en) | Programming target devices | |
Benadjila et al. | Randomness of random in Cisco ASA | |
Marchand et al. | Firmware Integrity Protection: A Survey | |
Paju | Distributed EaaS simulation using TEEs: A case study in the implementation and practical application of an embedded computer cluster | |
Jackson | A Trivium-Inspired Pseudorandom Number Generator with a Statistical Comparison to the Randomness of SecureRandom and Trivium | |
Abrahamsson | Security Enhanced Firmware Update Procedures in Embedded Systems | |
Andersen et al. | True Random Bit Generation | |
Vigário | Assessing and Addressing the Security of Persistent Data in the Android Operating System | |
Abdel-Hamid | Watermarking techniques for intellectual property protection in SOC designs | |
Höberl | Securing Visual Sensor Nodes with Physically Unclonable Functions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181002 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181002 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190530 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190611 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190905 |
|
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: 20191008 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191107 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6616471 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |