JP6395737B2 - 擬似乱数シード操作を実施するための命令 - Google Patents
擬似乱数シード操作を実施するための命令 Download PDFInfo
- Publication number
- JP6395737B2 JP6395737B2 JP2015562430A JP2015562430A JP6395737B2 JP 6395737 B2 JP6395737 B2 JP 6395737B2 JP 2015562430 A JP2015562430 A JP 2015562430A JP 2015562430 A JP2015562430 A JP 2015562430A JP 6395737 B2 JP6395737 B2 JP 6395737B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- seed
- hash
- result
- operand
- 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
- 230000006870 function Effects 0.000 claims description 107
- 238000000034 method Methods 0.000 claims description 83
- 239000000463 material Substances 0.000 claims description 45
- 238000012545 processing Methods 0.000 claims description 42
- 238000004590 computer program Methods 0.000 claims description 31
- 238000004891 communication Methods 0.000 claims description 8
- 230000015572 biosynthetic process Effects 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims 2
- 238000010168 coupling process Methods 0.000 claims 2
- 238000005859 coupling reaction Methods 0.000 claims 2
- 238000003860 storage Methods 0.000 description 81
- 238000004422 calculation algorithm Methods 0.000 description 37
- 238000013519 translation Methods 0.000 description 17
- 230000014616 translation Effects 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 239000003607 modifier Substances 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000010899 nucleation Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000007667 floating Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000004883 computer application Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012884 algebraic function Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 229920000638 styrene acrylonitrile Polymers 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 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
- G06F7/582—Pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
- G06F9/3895—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Nonlinear Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
- Retry When Errors Occur (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
1つ又は複数の態様の技術を通じて、付加的な特徴及び利点が実現される。他の実施形態及び態様は、本明細書で詳細に説明され、特許請求される本発明の一部と見なされる。
1つ又は複数の態様が、具体的に示され、本明細書の最後にある特許請求の範囲において例として明確に特許請求される。上記及び他の目的、特徴、並びに利点は、添付図面と併せて用いられる以下の詳細な説明から明らかである。
予約される:パラメータ・ブロックのバイト0−3、16、及び128が予約される。
再シード・カウンタ422:パラメータ・ブロックのバイト4−7は、パラメータ・ブロックが最後にインスタンス化又は再シードされて以来、命令が条件コード0で完了した回数を示す、32ビットの符号なし2進整数を含む。
*シード操作の実行により、パラメータ・ブロックは、再シード・カウンタを1の値に設定するなど、初期値でインスタンス化される。
*生成操作の実行により、指定例外が認識される。
*シード操作の実行により、パラメータ・ブロックは、再シード・カウンタを1の値に設定するなど、再シードされる。
*条件コード0をもたらす生成操作の実行により、再シード・カウンタが1だけインクリメントされ、再シード・カウンタ・フィールドのビット位置0のいずれの繰り上がり(carry out)も無視される。
SHA−512−DRNGシード操作は、512ビット・セキュア・ハッシュ・アルゴリズムを用いて、決定論的擬似乱数生成のパラメータ・ブロックをインタスタンス化又は再シードする。一実施形態において、操作は、中央演算処理ユニットにより実施されるが、他の実施形態においては、他のコンポーネント又はコプロセッサにより実施される。
SHA−512−DRNG生成操作は、上述のように、インスタンス化又は再シードされたパラメータ・ブロック、並びに512ビット・セキュア・ハッシュ・アルゴリズムを用いて、擬似乱数を生成する。一実施形態において、操作は、中央演算処理ユニットにより実施されるが、他の実施形態においては、他のコンポーネント又はコプロセッサにより実施される。
1.03(16進数)の1バイト値(902)、パラメータ・ブロック900からの111バイト値(V)904、及びパディングの144バイト(906)が連結され、IHV909と共に、SHA−512アルゴリズム908への入力として用いられ、64バイトのハッシュ値910をもたらす。パディングは、例えば80(16進数)の値であり、ゼロの127バイトと連結され、パディングを含まないSHA−512アルゴリズムへの入力のビット単位の長さ(即ち、03(16進数)の1バイト値及びVフィールドの長さ)を指示する16バイトの2進整数と連結される。一実施形態において、IHV909は、IHV610a、610b、711a、711b、又は811の1つと等しいか、又は、例えば他の技術についての別の実施形態においては、異なる値であることがある。
2.パラメータ・ブロック900内の4バイトの再シード・カウンタ・フィールド912及び111バイトの値(V)904及び定数(C)914フィールドの値と、64バイトのハッシュ値(上記の計算からの)910とが加算される(920)。加算によるいずれのオーバーフローも無視され、結果の111バイトの和922が、パラメータ・ブロック900内の値フィールド(Vnew)904に置き換わる。
3.パラメータ・ブロック900内の4バイトの再シード・カウンタ・フィールド912が、1だけインクリメントされる。
4.条件コード0が設定される。
1.汎用レジスタ0のビット57−63が、割り当てられていない又はインストールされていない機能コードを指定する。
2.以下の特別な条件が生成操作に当てはまる。
−R1フィールドが奇数番号レジスタ又は汎用レジスタ0を指示する。
−パラメータ・ブロック内の再シード・カウンタがゼロである。
3.以下の特別な条件がシード操作に当てはまる。
−R2フィールドが奇数番号レジスタ又は汎用レジスタ0を指示する(シード操作のみ)。
−汎用レジスタR2+1内の長さが512を上回る。
条件コード
0 正常完了
1 −−
2 −−
3 部分完了(生成操作のみ)
プログラム例外
*アクセス(ストア、オペランド1、生成操作;フェッチ、オペランド2、シード操作;フェッチ・アンド・ストア、パラメータ・ブロック)
*操作(message−security−assist extension5(z/Architectureの)がインストールされていない場合)
*指定
*トランザクション制約
SHA−512は、lビットの長さを有するメッセージMをハッシュするために用いることができ、ここで0≦l<2128である。このアルゴリズムは、1)80個の64ビット・ワードのメッセージスケジュール、2)それぞれ64ビットの8つの作業変数、及び3)8つの64ビット・ワードのハッシュ値を用いる。SHA−512の最終結果は、512ビットのメッセージダイジェスト(message digest)である。
と表記され、これらは初期ハッシュ値H(0)を保持し、各々の連続する中間ハッシュ値(各々のメッセージブロックが処理された後の)H(i)に置き換えられ、最終ハッシュ値H(N)で終了する。SHA−512はまた、2つの一時的ワードT1及びT2も用いる。
a、b、c、...、h ハッシュ値H(i)の計算に用いられるwビットのワードである作業変数。
H(i) i番目のハッシュ値。H(0)が初期ハッシュ値であり、H(N)は「最終」ハッシュ値であり、メッセージダイジェストを求めるのに用いられる。
i番目のハッシュ値のj番目のワードであり、ここで、
はハッシュ値iの左端ワードである。
Kt ハッシュ計算の反復tに用いられる定数値。
SHA−512は、80個の定数64ビット・ワードのシーケンス、即ち、
を用いる。これらのワードは、最初の80個の素数の立方根の小数部の最初の64ビットを表す。16進数においては、これらの定数ワードは(左から右へ)、以下の通りである。
k パディング・ステップの際にメッセージに付加されたゼロの数。
l メッセージMのビット単位の長さ。
m メッセージブロックM(i)内のビット数。SHA−512においては、各メッセージブロックは1024ビットを有し、これは16個の64ビット・ワードのシーケンスとして表される。
M ハッシュされるメッセージ。
M(i) mビットのサイズを有するメッセージブロックi。
i番目のメッセージブロックのj番目のワードであり、ここで、
は、メッセージブロックiの左端ワードである。
n ワードが操作される際にローテート又はシフトされるビット数。
N パディングされたメッセージ内のブロック数。
T ハッシュ計算に用いられる一時的wビット・ワード。
w 1ワード内のビット数。
Wt メッセージスケジュールのt番目のwビット・ワード。
∧ ビット単位の論理積演算。
∨ ビット単位の論理和(「包含的論理和」)演算。
¬ ビット単位の補数演算。
+ 2wを法とする加算。
<< 左シフト演算であり、ここでx<<nは、ワードxの左端のnビットを廃棄し、次に、結果にn個のゼロを右にパディングすることにより得られる。
>> 右シフト演算であり、ここでx>>nは、ワードxの右端のnビットを廃棄し、次に、結果にn個のゼロを左にパディングすることにより得られる。
ROTLn(x) 左ローテート(循環左シフト)演算、ここで、xはwビット・ワードであり、nは0≦n<wである整数であり、ROTLn(x)=(x<<n)∨(x>>w−n)によって定められる。
ROTRn(x) 右ローテート(循環右シフト)演算、ここで、xはwビット・ワードであり、nは0≦n<wである整数であり、ROTRn(x)=(x>>n)∨(x<<w−n)によって定められる。
SHRn(x) 右シフト演算、ここで、xはwビット・ワードであり、nは0≦n<wである整数であり、SHRn(x)=x>>nによって定められる。
3.右シフト演算SHRn(x)、ここで、xはwビット・ワードであり、nは0≦n<wである整数であり、SHRn(x)=x>>nによって定められる。
4.右ローテート(循環右シフト)演算ROTRn(x)、ここで、xはwビット・ワードであり、nは0≦n<wである整数であり、ROTRn(x)=(x>>n)∨(x<<w−n)によって定められる。
よって、ROTRn(x)は、xをn位置だけ右に循環シフト(ローテート)するのに等しい。
5.以下の同値関係に留意されたい、ここで、wは各々の関係において一定である。
SHA−512は2つの段階:即ち、前処理及びハッシュ計算で説明される。
前処理には、メッセージをパディングすること、パディングされたメッセージを構文解析してmビットのブロックにすること、及びハッシュ計算に使用される初期値を設定することが含まれる。初期化、パディング、及び構文解析を以下に説明する。
このパディングの目的は、パディングされたメッセージが、アルゴリズムに応じて、512又は1024ビットの倍数になることを保証することである。パディングは、ハッシュ計算がメッセージで始まる前に挿入することができ、又は、パディングを含むブロックを処理する前のハッシュ計算中の他のいかなる時点でも挿入することができる。
に対する正の最小解である。次に、2進表現を用いて表された数lに等しい128ビットブロックを付加する。例えば、(8ビットASCII)メッセージ「abc」は、8×3=24の長さを有し、従って、このメッセージは、1024ビットのパディングされたメッセージになるように、1ビット、次に896−(24+1)=871個のゼロビット、次にメッセージの長さでパディングされる。
ここで、パディングされたメッセージの長さは、1024ビットの倍数となる。
メッセージ及びそのパディングは、構文解析されてN個のmビットブロックになる。
SHA−512に関して、メッセージ及びそのパディングは、構文解析されてN個の1024ビット・ブロック、M(1)、...、M(N)にされる。入力ブロックの1024ビットは16個の64ビットワードとして表すことができるので、メッセージブロックiの最初の64ビットは、
次の64ビットは、
と表記され、
まで以下同様である。
ハッシュ計算は、パディングされたメッセージからメッセージスケジュールを生成し、関数、定数、及びワード演算と共にそのスケジュールを用いて、一連のハッシュ値を反復生成する。ハッシュ計算により生成される最終ハッシュ値は、メッセージダイジェストを求めるのに用いられる。
For i=1 to N:
{
1.メッセージスケジュール{Wt}を準備する。:
2.8つの作業変数a、b、c、d、e、f、g、及びhを(i−1)番目のハッシュ値で初期化する。:
4.i番目の中間ハッシュ値H(i)を計算する。
102、5026:プロセッサ
104、204、5025:メモリ
106、206:入力/出力デバイス及び/又はインターフェース
108、208:バス
202:ネイティブ中央演算処理ユニット(CPU)
210:ネイティブ・レジスタ
212:エミュレータ・コード
250:ゲスト命令
252:命令フェッチ・ユニット
254:命令変換ルーチン
256:ネイティブ命令
260:エミュレーション制御ルーチン
300:Perform Pseudorandom Number Operation命令
302:オペコード・フィールド
304:第1のレジスタ・フィールド
306:第2のレジスタ・フィールド
320:汎用レジスタ0
322:修飾子(M)ビット
324:機能コード(FC)・フィールド
330:汎用レジスタ1
332:論理アドレス
340:汎用レジスタR1
342、362:アドレス
350:汎用レジスタR1+1
352、372:長さ
360:汎用レジスタR2
370:汎用レジスタR2+1
400、420、800、900:パラメータ・ブロック
402:状況ワード
422、:再シード・カウンタ
424:ストリーム・バイト
426:値(V)
428:定数(C)
500a、500b:ストレージ
502a、502b、604a、604b:シード材料
600a、700a:1バイトのカウンタ
602a、602b、702a、702b:888の4バイト値
606a、606b、708a、708b、810、906:パディング
608a、608b、710a、812、908:SHA−512アルゴリズム
610a、610b、711a、711b、811、909:初期ハッシュ値(IHV)
612a、612b、712a、712b:ハッシュ結果
814、910:ハッシュ値
614、706a、706b:新しい値フィールド(Vnew)
704a、704b:ゼロの1バイト値
714:新しい定数フィールド(Cnew)
1000:コンピュータ・プログラム製品
Claims (19)
- マシン命令を実行するためのコンピュータ・プログラムであって、前記コンピュータ・
プログラムは、方法を実施するための、処理回路により実行される命令を含み、前記方法
は、
プロセッサにより、実行するためのマシン命令を取得することであって、前記マシン命
令は、コンピュータ・アーキテクチャに従ったコンピュータ実行のために定められており
、前記マシン命令は、
perform pseudorandom number操作を識別するためのオ
ペコードを提供するオペコード・フィールドと、
前記マシン命令により用いられる第2オペランドのメモリ内の位置を指定するための
レジスタを識別するのに用いられるレジスタ・フィールドと、
を含む、取得することと、
前記マシン命令を実行することと、
を含み、前記実行することは、
前記マシン命令と関連したレジスタの修飾子(M)フィールドを取得することと、
前記Mフィールドが第1の値を有することに基づいて、決定論的擬似乱数シード操作
を実施することと、
を含み、前記決定論的擬似乱数シード操作は、
前記第2オペランド内に含まれる情報に基づいてシード材料を取得することと、
512ビット・セキュア・ハッシュ技術及び前記シード材料を用いて、1つ又は複
数のシード値を提供することと、
前記1つ又は複数のシード値を、前記マシン命令と関連したパラメータ・ブロック
内に格納することと、
を含み、前記第2オペランド内に含まれる情報に基づいてシード材料を取得することは、前記パラメータ・ブロックの再シード・カウンタの値に基づいて、前記第2オペランド内に含まれる情報を用いて形成される前記シード材料を取得することを含む、コンピュータ・プログラム。 - 前記マシン命令は、前記マシン命令により用いられる第1オペランドのメモリ内の位置を指定するための別のレジスタを識別するのに用いられる別のレジスタ・フィールドをさらに含み、前記方法は、
前記マシン命令を別の時に実行することをさらに含み、前記マシン命令を別の時に実行することは、
前記Mフィールドが第2の値を有することに基づいて、決定論的擬似乱数生成操作を実施することを含み、前記決定論的擬似乱数生成操作は、
前記第1オペランドの1つ又は複数のメモリ・ブロックの各メモリ・ブロックについて、前記512ビット・セキュア・ハッシュ技術及び前記パラメータ・ブロック内の前記1つ又は複数のシード値の少なくとも1つのシード値を用いてハッシュ値を生成することと、前記生成されたハッシュ値の少なくとも一部を、前記第1オペランドの対応するメモリ・ブロック内に格納することとであって、前記生成されたハッシュ値は擬似乱数の少なくとも一部である、格納することとを含む、請求項1に記載のコンピュータ・プログラム。 - 前記実行することは、前記マシン命令と関連した前記レジスタから、実施される機能を指定するための機能コードを取得することと、前記機能コードが特定の値であることに基づいて、前記修飾子フィールドを取得することとをさらに含み、前記パラメータ・ブロックは、前記マシン命令と関連した別のレジスタを用いて特定される、請求項1に記載のコンピュータ・プログラム。
- 前記パラメータ・ブロックは、前記パラメータ・ブロックが最後にインスタンス化又は再シードされて以来、前記マシン命令が特定の条件コードで完了した回数を示すための再シード・カウンタと、生成操作に基づいて格納されたバイト数を追跡するためのストリーム・バイト・フィールドと、前記パラメータ・ブロックにより表される乱数生成器の内部状態を示すための値と、シード操作の実行によって初期化される一定値とを含むように構成される、請求項1に記載のコンピュータ・プログラム。
- 前記再シード・カウンタの前記値が1の値を有することに基づいて、前記形成することは、前記第2オペランドの前記情報を用いて前記シード材料を形成することを含み、前記情報はエントロピー入力、ノンス、及び個別化文字列のうちの少なくとも1つを含む、請求項1に記載のコンピュータ・プログラム。
- 前記再シード・カウンタの前記値が別の値を有することに基づいて、前記形成することは、選択された値、前記パラメータ・ブロックの値フィールドのコンテンツ、及び前記第2オペランドの前記情報を結合して前記シード材料を形成することを含み、前記情報は、エントロピー入力及び付加的な入力の少なくとも一方を含む、請求項1に記載のコンピュータ・プログラム。
- 前記512ビット・セキュア・ハッシュ技術を用いて1つ又は複数のシード値を提供することは、前記512ビット・セキュア・ハッシュ技術を用いてVnewシード値を提供することを含み、前記用いて前記Vnewシード値を提供することは、
第1のカウンタ、選択された値、シード材料、及びパディングを前記512ビット・セキュア・ハッシュ技術に提供することと、
前記第1のカウンタ、前記選択された値、前記シード材料、及び前記パディングを用いて前記512ビット・セキュア・ハッシュ技術を呼び出し、第1のハッシュ結果を得ることと、
第2のカウンタ、前記選択された値、前記シード材料、及び前記パディングを前記512ビット・セキュア・ハッシュ技術に提供することと、
前記第2のカウンタ、前記選択された値、前記シード材料、及び前記パディングを用いて前記512ビット・セキュア・ハッシュ技術を呼び出し、第2のハッシュ結果を得ることと、
前記第1のハッシュ結果及び前記第2のハッシュ結果を結合して、結合された結果を得ることと、
前記結合された結果の一部を用いて、前記Vnewシード値を提供することと、
を含む、請求項1に記載のコンピュータ・プログラム。 - 前記512ビット・セキュア・ハッシュ技術を用いて前記1つ又は複数のシード値を提供することは、前記512ビット・セキュア・ハッシュ技術を用いてCnewシード値を提供することをさらに含み、前記用いてCnewシード値を提供することは、
前記第1のカウンタ、前記選択された値、定められた値、前記Vnewシード値、及び前記パディングを用いて前記512ビット・セキュア・ハッシュ技術を呼び出し、第3のハッシュ結果を得ることと、
前記第2のカウンタ、前記選択された値、前記定められた値、前記Vnewシード値、及び前記パディングを用いて前記512ビット・セキュア・ハッシュ技術を呼び出し、第4のハッシュ結果を得ることと、
前記第3のハッシュ結果及び前記第4のハッシュ結果を結合して、別の結合された結果を得ることと、
前記別の結合された結果の一部を用いて、前記Cnewシード値を提供することと、
を含む、請求項7に記載のコンピュータ・プログラム。 - 前記第1のハッシュ結果及び前記第2のハッシュ結果を結合することは、前記第1のハッシュ結果及び前記第2のハッシュ結果を連結して、前記結合された結果を提供することを含み、前記結合された結果の一部を用いることは、前記結合された結果の左端バイト数をVnewとして用いることを含み、前記第3のハッシュ結果及び前記第4のハッシュ結果を結合することは、前記第3のハッシュ及び前記第4のハッシュ結果を連結して、前記別の結合された結果を提供することを含み、前記別の結合された結果の一部を用いることは、前記別の結合された結果の左端バイト数をcnewとして用いることを含む、請求項8に記載のコンピュータ・プログラム。
- マシン命令を実行するためのコンピュータ・システムであって、前記コンピュータ・システムは、
メモリと、
前記メモリと通信を行うプロセッサと、
を含み、前記コンピュータ・システムは方法を実施するように構成され、前記方法は、
前記プロセッサにより、実行するためのマシン命令を取得することであって、前記マシン命令は、コンピュータ・アーキテクチャに従ったコンピュータ実行のために定められており、前記マシン命令は、
perform pseudorandom number操作を識別するオペコードを提供するためのオペコード・フィールドと、
前記マシン命令により用いられる第2オペランドのメモリ内の位置を指定するためのレジスタを識別するのに用いられるレジスタ・フィールドと、
を含む、取得することと、
前記マシン命令を実行することと、
を含み、前記実行することは、
前記マシン命令と関連したレジスタの修飾子(M)フィールドを取得することと、
前記Mフィールドが第1の値を有することに基づいて、決定論的擬似乱数シード操作を実施することと、
を含み、前記決定論的擬似乱数シード操作は、
前記第2オペランド内に含まれる情報に基づいてシード材料を取得することと、
512ビット・セキュア・ハッシュ技術及び前記シード材料を用いて、1つ又は複数のシード値を提供することと、
前記1つ又は複数のシード値を、前記マシン命令と関連したパラメータ・ブロック内に格納することと、
を含み、前記第2オペランド内に含まれる情報に基づいてシード材料を取得することは、前記パラメータ・ブロックの再シード・カウンタの値に基づいて、前記第2オペランド内に含まれる情報を用いて形成される前記シード材料を取得することを含む、コンピュータ・システム。 - 前記マシン命令は、前記マシン命令により用いられる第1オペランドのメモリ内の位置を指定するための別のレジスタを識別するのに用いられる別のレジスタ・フィールドをさらに含み、前記方法は、
前記マシン命令を別の時に実行することをさらに含み、前記マシン命令を別の時に実行することは、
前記Mフィールドが第2の値を有することに基づいて、決定論的擬似乱数生成操作を実施することを含み、前記決定論的擬似乱数生成操作は、
前記第1オペランドの1つ又は複数のメモリ・ブロックの各メモリ・ブロックについて、前記512ビット・セキュア・ハッシュ技術と、前記パラメータ・ブロック内の前記1つ又は複数のシード値の少なくとも1つのシード値とを用いてハッシュ値を生成することと、前記生成されたハッシュ値の少なくとも一部を、前記第1オペランドの対応するメモリ・ブロック内に格納することとを含み、前記生成されたハッシュ値は擬似乱数の少なくとも一部である、請求項10に記載のコンピュータ・システム。 - 前記再シード・カウンタの前記値が1の値を有することに基づいて、前記形成することは、前記第2オペランドの前記情報を用いて前記シード材料を形成することを含み、前記情報はエントロピー入力、ノンス、及び個別化文字列のうちの少なくとも1つを含む、請求項10に記載のコンピュータ・システム。
- 前記再シード・カウンタの前記値が別の値を有することに基づいて、前記形成することは、選択された値、前記パラメータ・ブロックの値フィールドのコンテンツ、及び前記第2オペランドの前記情報を結合して前記シード材料を形成することを含み、前記情報は、エントロピー入力及び付加的な入力の少なくとも一方を含む、請求項10に記載のコンピュータ・システム。
- 前記512ビット・セキュア・ハッシュ技術を用いて1つ又は複数のシード値を提供することは、前記512ビット・セキュア・ハッシュ技術を用いてVnewシード値を提供することを含み、前記用いてVnewシード値を提供することは、
第1のカウンタ、選択された値、シード材料、及びパディングを前記512ビット・セキュア・ハッシュ技術に提供することと、
前記第1のカウンタ、前記選択された値、前記シード材料、及び前記パディングを用いて前記512ビット・セキュア・ハッシュ技術を呼び出し、第1のハッシュ結果を得ることと、
第2のカウンタ、前記選択された値、前記シード材料、及び前記パディングを前記512ビット・セキュア・ハッシュ技術に提供することと、
前記第2のカウンタ、前記選択された値、前記シード材料、及び前記パディングを用いて前記512ビット・セキュア・ハッシュ技術を呼び出し、第2のハッシュ結果を得ることと、
前記第1のハッシュ結果及び前記第2のハッシュ結果を結合して、結合された結果を得ることと、
前記結合された結果の一部を用いて、前記Vnewシード値を提供することと、
を含む、請求項10に記載のコンピュータ・システム。 - 前記512ビット・セキュア・ハッシュ技術を用いて前記1つ又は複数のシード値を提供することは、前記512ビット・セキュア・ハッシュ技術を用いてCnewシード値を提供することをさらに含み、前記用いてCnewシード値を提供することは、
前記第1のカウンタ、前記選択された値、定められた値、前記Vnewシード値、及び前記パディングを用いて前記512ビット・セキュア・ハッシュ技術を呼び出し、第3のハッシュ結果を得ることと、
前記第2のカウンタ、前記選択された値、前記定められた値、前記Vnewシード値、及び前記パディングを用いて前記512ビット・セキュア・ハッシュ技術を呼び出し、第4のハッシュ結果を得ることと、
前記第3のハッシュ結果及び前記第4のハッシュ結果を結合して、別の結合された結果を得ることと、
前記別の結合された結果の一部を用いて、前記Cnewシード値を提供することと、
を含む、請求項14に記載のコンピュータ・システム。 - 前記第1のハッシュ結果及び前記第2のハッシュ結果を結合することは、前記第1のハッシュ結果及び前記第2のハッシュ結果を連結して、前記結合された結果を提供することを含み、前記結合された結果の一部を用いることは、前記結合された結果の左端バイト数をVnewとして用いることを含み、前記第3のハッシュ結果及び前記第4のハッシュ結果を結合することは、前記第3のハッシュ結果及び前記第4のハッシュ結果を連結して、前記別の結合された結果を提供することを含み、前記別の結合された結果の一部を用いることは、前記別の結合された結果の左端バイト数をcnewとして用いることを含む、請求項15に記載のコンピュータ・システム。
- マシン命令を実行するための方法であって、前記方法は、
プロセッサにより、実行するためのマシン命令を取得することであって、前記マシン命令は、コンピュータ・アーキテクチャに従ったコンピュータ実行のために定められており、前記マシン命令は、
perform pseudorandom number操作を識別するオペコードを提供するためのオペコード・フィールドと、
前記マシン命令により用いられる第2オペランドのメモリ内の位置を指定するためのレジスタを識別するのに用いられるレジスタ・フィールドと、
を含む、取得することと、
前記マシン命令を実行することと、
を含み、前記実行することは、
前記マシン命令と関連したレジスタの修飾子(M)フィールドを取得することと、
前記Mフィールドが第1の値を有することに基づいて、決定論的擬似乱数シード操作を実施することと、
を含み、前記決定論的擬似乱数シード操作は、
前記第2オペランド内に含まれる情報に基づいてシード材料を取得することと、
512ビット・セキュア・ハッシュ技術及び前記シード材料を用いて1つ又は複数のシード値を提供することと、
前記1つ又は複数のシード値を、前記マシン命令と関連したパラメータ・ブロック内に格納することと、
を含み、前記第2オペランド内に含まれる情報に基づいてシード材料を取得することは、前記パラメータ・ブロックの再シード・カウンタの値に基づいて、前記第2オペランド内に含まれる情報を用いて形成される前記シード材料を取得することを含む、方法。 - 前記マシン命令は、前記マシン命令により用いられる第1オペランドのメモリ内の位置を指定するための別のレジスタを識別するのに用いられる別のレジスタ・フィールドをさらに含み、前記方法は、
前記マシン命令を別の時に実行することをさらに含み、前記マシン命令を別の時に実行することは、
前記Mフィールドが第2の値を有することに基づいて、決定論的擬似乱数生成操作を実施することを含み、前記決定論的擬似乱数生成操作は、
前記第1オペランドの1つ又は複数のメモリ・ブロックの各メモリ・ブロックについて、前記512ビット・セキュア・ハッシュ技術及び前記パラメータ・ブロック内の前記1つ又は複数のシード値の少なくとも1つのシード値を用いてハッシュ値を生成することと、前記生成されたハッシュ値の少なくとも一部を、前記第1オペランドの対応するメモリ・ブロック内に格納することとを含み、前記生成されたハッシュ値は擬似乱数の少なくとも一部である、請求項17に記載の方法。 - 前記512ビット・セキュア・ハッシュ技術を用いて1つ又は複数のシード値を提供することは、前記512ビット・セキュア・ハッシュ技術を用いてVnewシード値を提供することを含み、前記用いてVnewシード値を提供することは、
第1のカウンタ、選択された値、シード材料、及びパディングを前記512ビット・セキュア・ハッシュ技術に提供することと、
前記第1のカウンタ、前記選択された値、前記シード材料、及び前記パディングを用いて前記512ビット・セキュア・ハッシュ技術を呼び出し、第1のハッシュ結果を得ることと、
第2のカウンタ、前記選択された値、前記シード材料、及び前記パディングを前記512ビット・セキュア・ハッシュ技術に提供することと、
前記第2のカウンタ、前記選択された値、前記シード材料、及び前記パディングを用いて前記512ビット・セキュア・ハッシュ技術を呼び出し、第2のハッシュ結果を得ることと、
前記第1のハッシュ結果及び前記第2のハッシュ結果を結合して、結合された結果を得ることと、
前記結合された結果の一部を用いて、前記Vnewシード値を提供することと、
を含む、請求項17に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/827,360 | 2013-03-14 | ||
US13/827,360 US9201629B2 (en) | 2013-03-14 | 2013-03-14 | Instruction for performing a pseudorandom number seed operation |
PCT/IB2014/058913 WO2014140956A1 (en) | 2013-03-14 | 2014-02-11 | Instruction for performing pseudorandom number seed operation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016517561A JP2016517561A (ja) | 2016-06-16 |
JP6395737B2 true JP6395737B2 (ja) | 2018-09-26 |
Family
ID=51533332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015562430A Active JP6395737B2 (ja) | 2013-03-14 | 2014-02-11 | 擬似乱数シード操作を実施するための命令 |
Country Status (6)
Country | Link |
---|---|
US (4) | US9201629B2 (ja) |
JP (1) | JP6395737B2 (ja) |
CN (1) | CN105190534B (ja) |
DE (1) | DE112014000845T5 (ja) |
GB (1) | GB2526485B (ja) |
WO (1) | WO2014140956A1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9201629B2 (en) | 2013-03-14 | 2015-12-01 | International Business Machines Corporation | Instruction for performing a pseudorandom number seed operation |
US8873750B2 (en) | 2013-03-14 | 2014-10-28 | International Business Machines Corporation | Instruction for performing a pseudorandom number generate operation |
US20150199498A1 (en) * | 2014-01-10 | 2015-07-16 | Furturewei Technologies, Inc. | Flexible and efficient signaling and carriage of authorization acquisition information for dynamic adaptive streaming |
US9830326B2 (en) * | 2015-06-15 | 2017-11-28 | Ca, Inc. | Identifying data offsets using binary masks |
US10020934B2 (en) * | 2015-11-05 | 2018-07-10 | Intel Corporation | Hardware accelerator for cryptographic hash operations |
US9396248B1 (en) * | 2016-01-04 | 2016-07-19 | International Business Machines Corporation | Modified data query function instantiations |
US10489152B2 (en) | 2016-01-28 | 2019-11-26 | International Business Machines Corporation | Stochastic rounding floating-point add instruction using entropy from a register |
US10671347B2 (en) | 2016-01-28 | 2020-06-02 | International Business Machines Corporation | Stochastic rounding floating-point multiply instruction using entropy from a register |
US10235138B2 (en) * | 2016-09-30 | 2019-03-19 | International Business Machines Corporation | Instruction to provide true random numbers |
US10887080B2 (en) | 2017-03-16 | 2021-01-05 | King Fahd University Of Petroleum And Minerals | Double-hashing operation mode for encryption |
US11175893B2 (en) * | 2017-10-17 | 2021-11-16 | Blue ArmorTechnologies, LLC | Statistical object generator |
US10776480B2 (en) | 2018-04-02 | 2020-09-15 | International Business Machines Corporation | Producing volatile password hashing algorithm salts from hardware random number generators |
CN111857816B (zh) * | 2019-04-25 | 2024-05-10 | 阿里巴巴集团控股有限公司 | 寄存器分配方法、装置、电子设备及计算机存储介质 |
US11146387B1 (en) * | 2020-08-04 | 2021-10-12 | Panagiotis Andreadakis | Random position cipher encryption using an aperiodic pseudo-random number generator |
CN113946313B (zh) * | 2021-10-12 | 2023-05-05 | 哲库科技(北京)有限公司 | Lookup3哈希算法的处理电路、芯片和终端 |
CN113886863B (zh) * | 2021-12-07 | 2022-03-15 | 成都中科合迅科技有限公司 | 数据加密方法以及数据加密设备 |
Family Cites Families (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
US5365551A (en) | 1992-12-15 | 1994-11-15 | Micron Technology, Inc. | Data communication transceiver using identification protocol |
EP0582083A1 (en) | 1992-08-05 | 1994-02-09 | Motorola, Inc. | A method and apparatus for generating pseudo-random numbers |
US5258936A (en) * | 1992-08-05 | 1993-11-02 | Motorola, Inc. | Method and apparatus for generating pseudo-random numbers |
AU6629894A (en) | 1993-05-07 | 1994-12-12 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
US5416783A (en) | 1993-08-09 | 1995-05-16 | Motorola, Inc. | Method and apparatus for generating pseudorandom numbers or for performing data compression in a data processor |
US5551013A (en) | 1994-06-03 | 1996-08-27 | International Business Machines Corporation | Multiprocessor for hardware emulation |
US6324558B1 (en) | 1995-02-14 | 2001-11-27 | Scott A. Wilber | Random number generator and generation method |
US5790825A (en) | 1995-11-08 | 1998-08-04 | Apple Computer, Inc. | Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions |
US5778069A (en) | 1996-04-10 | 1998-07-07 | Microsoft Corporation | Non-biased pseudo random number generator |
US5830064A (en) | 1996-06-21 | 1998-11-03 | Pear, Inc. | Apparatus and method for distinguishing events which collectively exceed chance expectations and thereby controlling an output |
WO1998047259A2 (en) | 1997-03-10 | 1998-10-22 | Fielder Guy L | File encryption method and system |
AUPO799197A0 (en) | 1997-07-15 | 1997-08-07 | Silverbrook Research Pty Ltd | Image processing method and apparatus (ART01) |
US6061703A (en) | 1997-05-15 | 2000-05-09 | International Business Machines Corporation | Pseudorandom number generator with normal and test modes of operation |
US6104810A (en) | 1997-05-15 | 2000-08-15 | International Business Machines Corporation | Pseudorandom number generator with backup and restoration capability |
US7249108B1 (en) | 1997-07-15 | 2007-07-24 | Silverbrook Research Pty Ltd | Validation protocol and system |
JPH1153173A (ja) | 1997-08-07 | 1999-02-26 | Nec Corp | 擬似乱数発生方法及び装置 |
US6009261A (en) | 1997-12-16 | 1999-12-28 | International Business Machines Corporation | Preprocessing of stored target routines for emulating incompatible instructions on a target processor |
US6308255B1 (en) | 1998-05-26 | 2001-10-23 | Advanced Micro Devices, Inc. | Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system |
US6463582B1 (en) | 1998-10-21 | 2002-10-08 | Fujitsu Limited | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
US6253223B1 (en) | 1999-06-08 | 2001-06-26 | General Instrument Corporation | Robust random number generator |
US7685423B1 (en) | 2000-02-15 | 2010-03-23 | Silverbrook Research Pty Ltd | Validation protocol and system |
US20070033252A1 (en) | 2000-03-30 | 2007-02-08 | Combest Ricky F | Dynamic virtual network and method |
GB0013356D0 (en) | 2000-06-01 | 2000-07-26 | Tao Group Ltd | A method of validating an encrypted message |
US7333947B2 (en) | 2000-11-13 | 2008-02-19 | Anoto Ab | Network-based system |
ATE348359T1 (de) | 2001-01-16 | 2007-01-15 | Ericsson Telefon Ab L M | Zufallszahlengenerator basierend auf komprimierung |
US6968460B1 (en) | 2001-05-10 | 2005-11-22 | Advanced Micro Devices, Inc. | Cryptographic randomness register for computer system security |
US6862605B2 (en) | 2001-08-15 | 2005-03-01 | Scott A. Wilber | True random number generator and entropy calculation device and method |
US20030059045A1 (en) | 2001-09-26 | 2003-03-27 | Ruehle Michael D. | Hash-based pseudo-random number generator |
US7219112B2 (en) * | 2001-11-20 | 2007-05-15 | Ip-First, Llc | Microprocessor with instruction translator for translating an instruction for storing random data bytes |
US20030188044A1 (en) | 2002-03-28 | 2003-10-02 | International Business Machines Corporation | System and method for verifying superscalar computer architectures |
US7209561B1 (en) | 2002-07-19 | 2007-04-24 | Cybersource Corporation | System and method for generating encryption seed values |
CN1714377A (zh) | 2002-10-07 | 2005-12-28 | 小林朗 | 用于生成伪随机数的方法及伪随机数生成器 |
US7123590B2 (en) | 2003-03-18 | 2006-10-17 | Qualcomm Incorporated | Method and apparatus for testing a wireless link using configurable channels and rates |
US7159122B2 (en) * | 2003-05-12 | 2007-01-02 | International Business Machines Corporation | Message digest instructions |
US7257718B2 (en) | 2003-05-12 | 2007-08-14 | International Business Machines Corporation | Cipher message assist instructions |
US7298843B2 (en) | 2003-08-01 | 2007-11-20 | Hewlett-Packard Development Company, L.P. | Method and apparatus for seeding a random number generator |
DE10339999B4 (de) | 2003-08-29 | 2005-07-14 | Infineon Technologies Ag | Pseudozufallszahlengenerator |
JPWO2005073842A1 (ja) | 2004-01-30 | 2007-09-13 | 日本ビクター株式会社 | 擬似乱数生成装置および擬似乱数生成プログラム |
US7401234B2 (en) | 2004-03-01 | 2008-07-15 | Freescale Semiconductor, Inc. | Autonomous memory checker for runtime security assurance and method therefore |
FR2867928B1 (fr) | 2004-03-16 | 2006-06-09 | Medialive | Procede et systeme hautement securises pour la distribution de flux audiovisuels |
US20060294312A1 (en) | 2004-05-27 | 2006-12-28 | Silverbrook Research Pty Ltd | Generation sequences |
EP1792252A1 (en) * | 2004-09-22 | 2007-06-06 | Nokia Corporation | Method and apparatus for generating pseudo random numbers |
JP2006337429A (ja) | 2005-05-31 | 2006-12-14 | Nippon Telegr & Teleph Corp <Ntt> | マスク生成関数演算装置、そのプログラム及び記録媒体 |
JP4546339B2 (ja) | 2005-06-29 | 2010-09-15 | キヤノン株式会社 | 乱数生成装置及び乱数生成方法 |
US8019802B2 (en) * | 2005-08-24 | 2011-09-13 | Qualcomm Incorporated | Cryptographically secure pseudo-random number generator |
US7852162B2 (en) | 2005-10-27 | 2010-12-14 | FortressGB | Pseudo random noise device based on a random frequency modulated oscillator |
DE602006002242D1 (de) | 2006-02-15 | 2008-09-25 | Jaycrypto Ltd | Verfahren und Vorrichtung zum Erzeugen von Initialwerten für einen Zufallszahlengenerator |
CN101473298A (zh) | 2006-06-20 | 2009-07-01 | Nxp股份有限公司 | 随机数发生器系统、产生随机数的方法 |
DE102006030888B4 (de) | 2006-07-04 | 2009-06-25 | Infineon Technologies Ag | Verfahren und Vorrichtung zum Erzeugen eines Startwertes für einen Pseudo-Zufallszahlengenerator |
US8102999B2 (en) | 2006-08-18 | 2012-01-24 | Medtronic, Inc. | Secure telemetric link |
US8107622B2 (en) | 2006-09-07 | 2012-01-31 | Fortress Gb Ltd. | System and method to preclude message modification in data authentication systems through efficent use of feedback in cryptographic functions |
FR2907709B1 (fr) | 2006-10-27 | 2009-01-23 | Marie Claude Dropsy | Nouvelle installation pour la fabrication d'une barquette bi-composants |
US7904494B2 (en) | 2006-12-08 | 2011-03-08 | International Business Machines Corporation | Random number generator with random sampling |
US8015224B1 (en) | 2006-12-27 | 2011-09-06 | Marvell International Ltd. | Entropy source for random number generation |
US8595273B2 (en) | 2007-01-24 | 2013-11-26 | International Business Machines Corporation | Hash algorithm using randomization function |
JP4258551B2 (ja) | 2007-01-25 | 2009-04-30 | 日本電気株式会社 | 認証システム、認証方法、及び認証プログラム |
US20080263117A1 (en) | 2007-04-23 | 2008-10-23 | Gregory Gordon Rose | Initial seed management for pseudorandom number generator |
US8726041B2 (en) | 2007-05-09 | 2014-05-13 | Sony Corporation | Methods and apparatus for generating a random number in one or more isolated processors |
US8458460B2 (en) * | 2007-09-27 | 2013-06-04 | Intel Corporation | Digest generation from instruction op-codes |
US9858392B2 (en) | 2008-05-12 | 2018-01-02 | Koninklijke Philips N.V. | Medical analysis system |
US8255443B2 (en) | 2008-06-03 | 2012-08-28 | International Business Machines Corporation | Execution unit with inline pseudorandom number generator |
US8189778B2 (en) | 2008-07-07 | 2012-05-29 | General Instrument Corporation | Adaptive generation of a pseudo random number generator seed |
US8359479B2 (en) | 2008-07-17 | 2013-01-22 | Lsi Corporation | High performance arithmetic logic unit (ALU) for cryptographic applications with built-in countermeasures against side channel attacks |
JP5241475B2 (ja) | 2008-12-24 | 2013-07-17 | 三菱電機株式会社 | ハッシュ値演算装置及びハッシュ値演算方法及びハッシュ値演算プログラム |
US20110270676A1 (en) | 2010-04-30 | 2011-11-03 | Sergei Vassilvitskii | Probabilistic Linking Approach for Serving Impressions in Guaranteed Delivery Advertising |
US20120079281A1 (en) | 2010-06-28 | 2012-03-29 | Lionstone Capital Corporation | Systems and methods for diversification of encryption algorithms and obfuscation symbols, symbol spaces and/or schemas |
US9128791B1 (en) | 2011-03-21 | 2015-09-08 | Board Of Regents Of The University Of Texas System | Generation of distinct pseudorandom number streams based on program context |
US8379848B2 (en) | 2011-07-07 | 2013-02-19 | Cape Light Institute, Inc. | Method of providing a portable true random number generator based on the microstructure and noise found in digital images |
US9544139B2 (en) * | 2011-12-29 | 2017-01-10 | Intel Corporation | Method and apparatus for a non-deterministic random bit generator (NRBG) |
JP2013206095A (ja) | 2012-03-28 | 2013-10-07 | Fujitsu Ltd | データ処理装置及びデータ処理装置の制御方法 |
US8856198B2 (en) | 2012-03-30 | 2014-10-07 | Freescale Semiconductor, Inc. | Random value production methods and systems |
US9075674B2 (en) | 2012-12-12 | 2015-07-07 | Freescale Semiconductor, Inc. | Systems with adjustable sampling parameters and methods of their operation |
US9201629B2 (en) | 2013-03-14 | 2015-12-01 | International Business Machines Corporation | Instruction for performing a pseudorandom number seed operation |
US8873750B2 (en) | 2013-03-14 | 2014-10-28 | International Business Machines Corporation | Instruction for performing a pseudorandom number generate operation |
-
2013
- 2013-03-14 US US13/827,360 patent/US9201629B2/en active Active
-
2014
- 2014-02-11 GB GB1516414.8A patent/GB2526485B/en active Active
- 2014-02-11 CN CN201480014350.1A patent/CN105190534B/zh active Active
- 2014-02-11 DE DE112014000845.1T patent/DE112014000845T5/de active Pending
- 2014-02-11 JP JP2015562430A patent/JP6395737B2/ja active Active
- 2014-02-11 WO PCT/IB2014/058913 patent/WO2014140956A1/en active Application Filing
- 2014-11-22 US US14/550,979 patent/US9424000B2/en active Active
-
2016
- 2016-08-16 US US15/237,859 patent/US9860056B2/en active Active
-
2017
- 2017-11-21 US US15/819,459 patent/US10313109B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9860056B2 (en) | 2018-01-02 |
CN105190534A (zh) | 2015-12-23 |
US20140280414A1 (en) | 2014-09-18 |
DE112014000845T5 (de) | 2015-11-05 |
CN105190534B (zh) | 2017-12-05 |
US20170041135A1 (en) | 2017-02-09 |
US9201629B2 (en) | 2015-12-01 |
GB201516414D0 (en) | 2015-10-28 |
WO2014140956A1 (en) | 2014-09-18 |
JP2016517561A (ja) | 2016-06-16 |
US9424000B2 (en) | 2016-08-23 |
GB2526485B (en) | 2016-06-01 |
US20150081751A1 (en) | 2015-03-19 |
GB2526485A (en) | 2015-11-25 |
US20180097619A1 (en) | 2018-04-05 |
US10313109B2 (en) | 2019-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6177355B2 (ja) | 擬似乱数生成操作を実施するための命令 | |
JP6395737B2 (ja) | 擬似乱数シード操作を実施するための命令 | |
JP6246140B2 (ja) | データを命令が指示する指定されたメモリ境界までロードするためのコンピュータ・プログラム、コンピュータ・システムおよび方法 | |
JP6278906B2 (ja) | データを動的に判断されたメモリ境界までロードする方法、システムおよびコンピュータ・プログラム | |
JP6108362B2 (ja) | 不連続命令指定子の連続命令指定子への変換 | |
CA2867117C (en) | Finding the length of a set of character data having a termination character | |
JP6238241B2 (ja) | Vector string range compare | |
JP6238242B2 (ja) | Vector find element not equal命令 | |
JP6138175B2 (ja) | 指定されたメモリ境界までの距離を計算するためのコンピュータ・プログラム、コンピュータ・システムおよび方法 | |
GB2514062B (en) | Comparing sets of character data having termination characters | |
JP2015518193A (ja) | 終端文字を有する文字データのメモリ位置間でのコピーのための方法、システム、およびコンピュータ・プログラム(終端文字を有する文字データのメモリ位置間でのコピー) | |
JP6916871B2 (ja) | 真の乱数を提供するための命令を実現するコンピュータ・プログラム製品、コンピュータ・システム、およびコンピュータ実装方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161220 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A132 Effective date: 20180213 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20180509 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180629 |
|
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: 20180731 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180828 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6395737 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |