JP7251164B2 - 乱数生成器、半導体装置、及びプログラム - Google Patents

乱数生成器、半導体装置、及びプログラム Download PDF

Info

Publication number
JP7251164B2
JP7251164B2 JP2019010295A JP2019010295A JP7251164B2 JP 7251164 B2 JP7251164 B2 JP 7251164B2 JP 2019010295 A JP2019010295 A JP 2019010295A JP 2019010295 A JP2019010295 A JP 2019010295A JP 7251164 B2 JP7251164 B2 JP 7251164B2
Authority
JP
Japan
Prior art keywords
random number
sequences
number sequences
flip
sets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019010295A
Other languages
English (en)
Other versions
JP2020119313A (ja
Inventor
豊 田宮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019010295A priority Critical patent/JP7251164B2/ja
Priority to US16/734,457 priority patent/US11281431B2/en
Publication of JP2020119313A publication Critical patent/JP2020119313A/ja
Application granted granted Critical
Publication of JP7251164B2 publication Critical patent/JP7251164B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • H03K19/21EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/581Generating an LFSR sequence, e.g. an m-sequence; sequence may be generated without LFSR, e.g. using Galois Field arithmetic

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Tests Of Electronic Circuits (AREA)

Description

本願開示は、乱数生成器、半導体装置、及びプログラムに関する。
乱数発生器は、様々な分野において用いられる。真性乱数を回路により発生させることは困難であり、通常、線形帰還シフトレジスタやメルセンヌツイスタ等の疑似乱数生成器により、確定的な計算を実行して生成した疑似乱数が用いられる。乱数には規則性がないこと、即ち出現する乱数値間に空間的及び時間的に相関がないことが要求される。疑似乱数では、厳密な意味で無規則性を実現することは困難であるが、例えば非常に長い周期を実現する等により、実用的な意味で無規則性と見なせる状態を実現している。
例えば金融工学等の分野において、複雑な性質を有するモデルを対象とするシミュレーションでは、モンテカルロシミュレーションと呼ばれる確率的な手法が多用される。モンテカルロシミュレーションでは、対象モデルの状態遷移を乱数で確率的に決める試行を基本として、この試行を多数回行うことによって対象モデルをシミュレーションする。
また例えば計算機工学の分野において、ストカスティック演算を用いた計算アルゴリズムが、省電力、省スペース、及びエラー耐性の観点から最近注目されている。ストカスティック演算の1つの実装では、Stochastic Number(SN)と呼ばれる1と0とで構成された1つのランダムビット列により1つの変数を表現する。変数の有する値は、ビット列中における1の出現確率(0~1)により表現される。ビット列中での0及び1の順序と位置とは意味を持たず、ビット列が長いほど精度が向上する。一般の計算機で用いられる2進数をSN変数に変換するためには乱数発生器が用いられる。2つのSN変数同士の乗算は2入力ANDゲートにより実装され、2つのSN変数同士の加算は2入力の選択確率が0.5ずつである2入力マルチプレクサにより実装できる。この場合、加算器毎に乱数発生器が1つ必要になる。
モンテカルロ・シミュレーションであってもストカスティック演算であっても、ハードウェアに実装するためには乱数発生器が必要になる。ハードウェアの性質を活かしてモンテカルロ・シミュレーションを並列化する場合、並列化されたシミュレーションが同じ乱数系列を使ってしまうと、全てが同じ試行になってしまい並列化の意味が無くなるという問題がある。またストカスティック演算において、互いに相関が無い変数同士で演算をする場合には、それぞれの変数に関与する乱数が互いに独立な乱数(互いに相関の無い乱数)でないと、演算精度が損なわれるという問題がある。
複数の乱数を生成する乱数生成器は幾つか提案されている(特許文献1及び2並びに非特許文献1参照)。しかしながら、生成した複数の乱数系列間で相互相関が発生したり、或いは乱数系列毎に必要になる回路によるオーバーヘッドが大きかったりするという問題がある。
特開平11-24894号公報 特開平4-46413号公報
渡部信吾、阿部公輝、"疑似乱数生成器Mersenne TwisterのVLSI設計"、情報処理学会研究報告コンピュータセキュリティ(CSEC)、2005(41(2005-CSEC-029)),13-18(2005-05-19)
以上を鑑みると、時間的にも相互相関がない複数の乱数を単純な構成で発生する乱数生成器が望まれる。
乱数生成器は、M個(Mは2以上の整数)の乱数系列をそれぞれ生成する互いに独立なM個の乱数発生器と、前記M個の乱数系列の間における相対的な時間差を調整することにより、N通り(Nは2以上の整数)の異なる相対的時間差をそれぞれ有するNセットのM個の乱数系列を出力する遅延調整部と、前記NセットのM個の乱数系列の各セットについて当該セットに含まれるM個の乱数系列間での排他的論理和を演算する論理演算部とを含み、前記M個の乱数発生器は第1の乱数発生器と第2の乱数発生器とを含む2個の乱数発生器であり、前記遅延調整部は、前記第1の乱数発生器が出力する乱数系列を入力とする第1のシフトレジスタと、前記第2の乱数発生器が出力する乱数系列を入力とする第2のシフトレジスタとを含み、前記第1のシフトレジスタに含まれるN-1個のフリップフロップによる遅延により生成された互いに異なる遅延量を有するN個の第1の乱数系列と、前記第2のシフトレジスタに含まれるN-1個のフリップフロップによる遅延により生成された互いに異なる遅延量を有するN個の第2の乱数系列との組み合わせにより、前記N通りの異なる相対的時間差を実現し、前記Nセットの2個の乱数系列のうちの任意の1つのセットは、前記Nセットの2個の乱数系列のうちの別の任意の1つのセットに対して、前記第1の乱数系列の遅延がより大きく、前記第2の乱数系列の遅延がより小さい
少なくとも1つの実施例によれば、時間的にも相互相関がない複数の乱数を単純な構成で発生する乱数生成器が提供される。
乱数生成器の構成の一例を示すブロック図である。 乱数生成器における乱数分配器12の一般的な構成の一例を示す図である。 第1の実施例による乱数分配器12の構成の一例を示す図である。 第2の実施例による乱数分配器12の構成の一例を示す図である。 第3の実施例による乱数分配器12の構成の一例を示す図である。 乱数生成装置を搭載する半導体装置の構成の一例を示す図である。 乱数生成器をソフトウェアにより実装する装置の構成を示す図である。
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。以下の図において、同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
図1は、乱数生成器の構成の一例を示すブロック図である。図1及び以降の図において、各ボックスで示される各機能ブロックと他の機能ブロックとの境界は、基本的には機能的な境界を示すものであり、物理的な位置の分離、電気的な信号の分離、制御論理的な分離等に対応するとは限らない。乱数生成器は、各機能ブロックの機能を有する電子回路ブロックを組み合わせて実現したハードウェア構成でもよいし、電子回路である汎用のプロセッサにおいてソフトウェアを実行することにより各機能ブロックの機能を実現したソフトウェア構成でもよい。ハードウェアの場合、各機能ブロックは、他のブロックと物理的にある程度分離された1つのハードウェアモジュールであってもよいし、或いは他のブロックと物理的に一体となったハードウェアモジュール中の1つの機能を示したものであってもよい。ソフトウェアの場合、各機能ブロックは、他のブロックと論理的にある程度分離された1つのソフトウェアモジュールであってもよいし、或いは他のブロックと論理的に一体となったソフトモジュール中の1つの機能を示したものであってもよい。
図1に示される乱数生成器は、乱数発生器10、乱数発生器11、及び乱数分配器12を含む。乱数発生器10、乱数発生器11、及び乱数分配器12は、クロック信号CLKに同期して動作する。乱数発生器10及び11は各乱数値がnビット(nは1以上の整数)である乱数系列(乱数時系列)を生成する。2個の乱数発生器10及び11がそれぞれ生成した乱数系列RND_A及び乱数系列RND_Bは乱数分配器12に入力される。乱数分配器12は、乱数系列RND_A及び乱数系列RND_Bに基づいて、各乱数値がnビットであるN個(Nは3以上の整数)以上の乱数系列RND_0乃至RND_(N-1)を生成する。
図1では、2個の乱数発生器が設けられているが、乱数発生器の個数は2個に限定されない。一般的には、M個(Nは2以上の整数)の乱数系列をそれぞれ生成する互いに独立なM個の乱数発生器が設けられてよい。
乱数発生器10及び乱数発生器11は、デバイス中の熱雑音などのように本質的にランダムな物理現象を利用することによって乱数を生成する物理乱数生成器であってもよいが、実用的に充分に規則性のない疑似乱数を生成する疑似乱数生成器であってよい。以下の説明において、乱数の性質について、独立である、相関が無い、無相関である、規則性がない、無規則である、周期性がない、無周期である、等の表現を用いる場合、実用的な意味においてそれらの性質を満たしていると言える状態を示す。
ここで実用的な意味においてそれら性質が満たされていると言えるためには、使用が想定されている疑似乱数生成器が提供できる最善の状態が達成されていることが好ましい。例えば疑似乱数生成器としてメルセンヌツイスターを用いる場合、乱数の周期として219337-1等の非常に長い周期が得られるので、実用的な意味において、生成される乱数には周期性がなく時間的に無相関であると考えてよい。しかしながら、乱数発生器10及び11としてメルセンヌツイスターを用いた場合、生成される2つの乱数系列が1クロックずれた同一の乱数系列となっているような状態では、これら2つの乱数系列が実用的に無相関であるとは言えない。生成される2つの乱数系列が、例えば(219337)/2クロックずれた同一の乱数系列となっているような状態であれば、これら2つの乱数系列が実用的に無相関であると言える。
上記の意味において、乱数発生器10及び乱数発生器11は互いに独立な乱数発生器であり、それぞれが生成する乱数系列RND_A及び乱数系列RND_Bは互いに無相関である。乱数系列RND_Aは、同一クロックサイクルで比較したときにn個のビット間の相関がなく、異なるクロックサイクル間で比較したときに同一ビット内での相関がなく且つ異なるビット間での相関もない。乱数系列RND_Bについても同様である。また乱数系列RND_Aと乱数系列RND_Bとの間においても、同一クロックサイクルで比較したときに任意のビット間の相関がなく、異なるクロックサイクル間で比較したときに任意のビット間の相関もない。
乱数発生器10及び11としては、例えばメルセンヌツイスターやxorshift+等の疑似乱数生成器であってよい。またメルセンヌツイスターと比較して乱数の性能は劣ることになるが、例えば線形帰還シフトレジスタ等を疑似乱数生成器として用いることは、排除されるものではない。
図1に示される乱数生成器において、乱数分配器12は、後述するようにフリップフロップ等による遅延調整及び排他的論理和演算により実現することが可能である。また2個の乱数生成器が設けられていれば、所望の数の互いに無相関な乱数系列RND_0乃至RND_(N-1)を生成することができる。従って、電子回路により乱数生成器を実装する場合であれば、単純な回路構成且つ小さな回路面積で、所望の個数の乱数系列を生成することができる。またソフトウェアにより乱数生成器を実装する場合であれば、単純なプログラム構成且つ小さなプログラムサイズで、所望の個数の乱数系列を生成することができる。
図2は、乱数生成器における乱数分配器12の一般的な構成の一例を示す図である。図2に示す乱数生成器において、乱数分配器12は、遅延調整部20、遅延調整部21、及びN個のXOR(排他的論理和)ゲート22-0乃至22-N-1を含む。遅延調整部20及び21は、クロック信号CLKに同期して2個の乱数系列RND_A及びRND_Bのそれぞれの遅延を調整することにより、2個の乱数系列RND_A及びRND_Bの間における相対的な時間差を調整する。遅延調整部20及び21は、2個の乱数系列RND_A及びRND_Bの間における相対的な時間差を調整することにより、N通り(Nは2以上の整数)の異なる相対的時間差をそれぞれ有するNセットの2個の乱数系列を出力する。
説明の便宜上、各乱数系列が1ビットの乱数値であるとする。時刻t(クロックサイクルt)における乱数系列RND_Aの値をa(t)とし、時刻t(クロックサイクルt)における乱数系列RND_Bの値をb(t)とする。遅延調整部20及び21は、例えば、XORゲート22-k(k=0,1,2,・・・N-1)への入力としてa(t)及びb(t-k)を出力してよい。この場合、XORゲート22-0への入力であるa(t)とb(t)との相対的な時間差はゼロであり、XORゲート22-1への入力であるa(t)とb(t-1)との相対的な時間差は1クロックサイクルである。同様にして、0以上N-1以下の任意のkに対して、XORゲート22-kへのa(t)とb(t-k)との相対的な時間差はkクロックサイクルである。この例のように、遅延調整部20及び21は、N通りの異なる相対的時間差(この例では0,1,2,3,・・・N-1クロックサイクル差)をそれぞれ有するNセットの2個の乱数系列を出力する。なおN通りの異なる相対的時間差を実現する形態については、この例に限られない。
論理演算部として機能するN個のXORゲート22-0乃至22-N-1は、Nセットの2個の乱数系列の各セットについて当該セットに含まれる2個の乱数系列間での排他的論理和を演算する。N個の排他的論理和出力は、各乱数値がnビットであるN個の乱数系列RND_0乃至RND_(N-1)となる。なおN個のXORゲート22-0乃至22-N-1の各々は、図示の都合上、1つのXORゲートとして示されているが、実際には、1ビットを処理する2入力のXORゲートがn個並列に設けられたものである。例えば各乱数系列が1ビットからなる場合、XORゲート22-0乃至22-N-1の各々は、1ビットを処理する1個の2入力XORゲートとなる。また例えば各乱数系列が10ビットからなる場合、XORゲート22-0乃至22-N-1の各々は、1ビットを処理する2入力XORゲートが10個並列に設けられたものとなる。
なお図2及び以降の図で示す構成において、論理演算部としてXORゲートによる排他的論理和演算を用いるが、N個の乱数系列RND_0乃至RND_(N-1)を生成するための演算としてはXORではなくXNOR(排他的論理和の反転値)であってもよい。論理演算部における演算としてXNORを用いる場合であっても、その演算は排他的論理和を演算してその反転値を計算していることと等価であるので、当該論理演算部においては排他的論理和を演算していると解釈することができる。従って、論理演算部による演算としてXNORを用いる構成も、本願が意図する権利範囲内に含まれる。
上記のようにして生成されたN個の乱数系列RND_0乃至RND_(N-1)から取り出した任意の2ビットは、同一クロックサイクルで比較したときにビット間の相関がなく、異なるクロックサイクル間で比較したときにビット間での相関もない。これについて以下に簡単に説明する。
まず説明の便宜上、前述のように各乱数系列が1ビットの乱数値であり、XORゲート22-k(k=0,1,2,・・・N-1)への入力がa(t)及びb(t-k)であるとする。この場合、例えば、乱数系列RND_iの1ビットの値はa(t)とb(t-i)とのXOR値であり、乱数系列RND_j(j≠i)の1ビットの値はa(t)とb(t-j)とのXOR値である。このときj≠iであるのでb(t-i)とb(t-j)との間の相関が存在しないとの前提から、直感的に、同一のクロックサイクルにおける上記2つのXOR値の間の相関はゼロとなることが分かる。
また更に、異なるクロックサイクル間におけるこれら2つのXOR値の相互相関を考えるために、一方のXOR値を時間軸上でずらすことを考える。例えばa(t)とb(t-i)とのXOR値を時間軸上でずらしてi=jとなるサイクルに移動させた場合、この値はa(t+i-j)とb(t-j)とのXOR値となる。このa(t+i-j)とb(t-j)とのXOR値と、もう一方のa(t)とb(t-j)とのXOR値との間の相関は、a(t+i-j)とa(t)との間の相関が存在しないとの前提から、ゼロになることが分かる。時間軸上でのずれが上記以外の場合には、明らかに2つのXOR値の間に相関は発生しない。
前述のように、一般的には、M個の乱数系列をそれぞれ生成する互いに独立なM個の乱数発生器が設けられてよい。そして、遅延調整部が、M個の乱数系列の間における相対的な時間差を調整することにより、N通りの異なる相対的時間差をそれぞれ有するNセットのM個の乱数系列を出力してよい。また更に、論理演算部(XORゲート群)が、NセットのM個の乱数系列の各セットについて当該セットに含まれるM個の乱数系列間での排他的論理和を演算してよい。しかしながら上述のように、2個の乱数発生器を用いるだけであっても、同一クロックサイクルにおいても、更には異なるクロックサイクル間においても、互いに相関のない任意の個数の乱数系列を発生することが可能である。従って、2個の乱数発生器を設ける構成により、少ない回路面積及び少ない計算量で、互いに相関のない所望の個数の乱数系列を発生することが可能である。
なお最低でも2個の乱数発生器を用いることを鑑みると、出力乱数系列の個数Nは3以上であることが、乱数発生器の数よりも多くの乱数系列を生成するという意味において好ましい。但し、出力乱数系列の個数Nが2に等しい場合であっても、図1又は図2で説明した構成を適用することは可能である。また出力乱数系列RND_0乃至RND_(N-1)に加え、乱数発生器10の乱数系列RND_A及び乱数発生器11の乱数系列RND_Bを、乱数生成器の出力乱数系列として扱ってもよい。
図3は、第1の実施例による乱数分配器12の構成の一例を示す図である。図3に示す乱数生成器は、図2に示す乱数生成器において、乱数分配器12の遅延調整部20及び遅延調整部21の具体的な構成を示したものに相当する。
図3に示す乱数生成器において、乱数分配器12は、N-1個のフリップフロップ20-1乃至20-N-1、N-1個のフリップフロップ21-1乃至21-N-1、及びN個のXORゲート22-0乃至22-N-1を含む。N-1個のフリップフロップ20-1乃至20-N-1は、図2の遅延調整部20に相当し、乱数発生器10が出力する乱数系列を入力とする第1のシフトレジスタとして機能する。N-1個のフリップフロップ21-1乃至21-N-1は、図2の遅延調整部21に相当し、乱数発生器11が出力する乱数系列を入力とする第2のシフトレジスタとして機能する。各フリップフロップのクロック入力端子には、クロック信号CLKが印加される。
第1及び第2のシフトレジスタは、2個の乱数系列RND_A及びRND_Bのそれぞれの遅延を調整することにより、2個の乱数系列RND_A及びRND_Bの間における相対的な時間差を調整する。このように2個の乱数系列RND_A及びRND_Bの間における相対的な時間差を調整することにより、N通り(Nは2以上の整数)の異なる相対的時間差をそれぞれ有するNセットの2個の乱数系列が得られる。
より具体的には、第1のシフトレジスタに含まれるN-1個のフリップフロップ20-1乃至20-N-1による遅延により、互いに異なる遅延量を有するN個の第1の乱数系列が生成される。また第2のシフトレジスタに含まれるN-1個のフリップフロップ21-1乃至21-N-1による遅延により、互いに異なる遅延量を有するN個の第2の乱数系列が生成される。これら第1の乱数系列と第2の乱数系列との組み合わせにより、N通りの異なる相対的時間差を実現する。
上述のN通りの異なる相対的時間差を実現するために、図3に示される乱数分配器12では、XORゲート22-k(k=0,1,2,・・・N-1)への入力として、kが増加するに従い乱数系列RND_Aの遅延が大きくなる一方で乱数系列RND_Bの遅延が小さくなるように、各シフトレジスタの信号伝搬方向を設定する。ここで説明の便宜上、前述のように各乱数系列が1ビットの乱数値であるとする。XORゲート22-kに入力する乱数系列は、kクロックサイクル遅れた乱数系列RND_Aの値a(t-k)と、N-1-kクロックサイクル遅れた乱数系列RND_Bの値b(t+k-N+1)とである。従って、XORゲート22-kの出力である乱数系列RND_kは、
a(t-k)∧b(t+k-N+1)
となる。ここで演算子“∧”はXORを表す。同様にして、XORゲート22-m(m=0,1,2,・・・N-1)の出力である乱数系列RND_mは、
a(t-m)∧b(t+m-N+1)
となる。従って、互いにjクロックサイクルずれた乱数系列RND_kと乱数系列RND_mとの相互相関R(j)は、期待値E[・]を用いて、以下のように表される。
R(j)=E[RND_k(t)・RND_m(t+j)]
=E[a(t-k)∧b(t+k-N+1)・a(t-m+j)∧b(t+m-N+1+j)] (1)
ここで計算を簡単にするために、各ビットの値を[0,1]ではなく[-1,1]で表現する。この場合、乗算とXOR演算との関係はx・y=-x∧yとなる。従って、式(1)の値は以下のようになる。
R(j)=-E[a(t-k)∧b(t+k-N+1)∧a(t-m+j)∧b(t+m-N+1+j)] (2)
ここでj=m-kのとき、式(2)は更に以下のようになる。
R(j)=-E[a(t-k)∧b(t+k-N+1)∧a(t-k)∧b(t+2m-N+1-k)]
=E[b(t+k-N+1)∧b(t+2m-N+1-k)]
=0
何故なら同じ値a(t-k)同士のXORは-1になるからである。また更に、b(t+k-N+1)とb(t+2m-N+1-k)とは、乱数系列b(t)の異なるクロックサイクルの値であるので、互いの相関はゼロだからである。
同様に、j=k-mのとき、式(2)の値は以下のようになる。
R(j)=-E[a(t-k)∧b(t+k-N+1)∧a(t-2m+k)∧b(t+k-N+1)]
=E[b(t+k-N+1)∧b(t+2m-N+1-k)]
=0
何故なら同じ値b(t+k-N+1)同士のXORは-1になるからである。また更に、a(t-k)とa(t-2m+k)とは、乱数系列a(t)の異なるクロックサイクルの値であるので、互いの相関はゼロだからである。
またjの値が上記以外の場合には、式(2)のE[・]内部の各項は互いに相関がないことが明らかであり、式(2)の値はゼロになる。従って、jの値に関わらず、相互相関R(j)の値は常にゼロである。即ち、乱数系列RND_0乃至RND_(N-1)から選んだ任意の2つの乱数系列RND_k及び乱数系列RND_mの間に相関はないことが分かる。
上述のように図3に示す乱数生成器では、2つのシフトレジスタと複数のXORゲートを用いる単純な構成により乱数分配器12を実現できる。従って、単純な回路構成且つ小さな回路面積で、所望の個数の乱数系列を生成することができる。
図4は、第2の実施例による乱数分配器12の構成の一例を示す図である。図4に示す乱数生成器は、図2に示す乱数生成器において、乱数分配器12の遅延調整部20及び遅延調整部21の具体的な構成を示したものに相当する。
図4に示す乱数生成器において、乱数分配器12は、N-1個のフリップフロップ20-1乃至20-N-1及びN個のXORゲート22-0乃至22-N-1を含む。N-1個のフリップフロップ20-1乃至20-N-1は、図2の遅延調整部20に相当し、乱数発生器10が出力する乱数系列を入力とするシフトレジスタとして機能する。図4に示す乱数生成器の構成において、図2の遅延調整部21は、乱数発生器11が発生する乱数系列RND_Bをそのままクロックサイクルの遅延無く供給する信号配線となる。
シフトレジスタは、乱数系列RND_Aの遅延を調整することにより、2個の乱数系列RND_A及びRND_Bの間における相対的な時間差を調整する。このように2個の乱数系列RND_A及びRND_Bの間における相対的な時間差を調整することにより、N通り(Nは2以上の整数)の異なる相対的時間差をそれぞれ有するNセットの2個の乱数系列が得られる。
より具体的には、乱数発生器10が生成する乱数系列RND_Aに対して、シフトレジスタに含まれるN-1個のフリップフロップ20-1乃至20-N-1による遅延により、互いに異なる遅延量を有するN個の乱数系列が生成される。このN個の乱数系列と、乱数発生器11が出力する遅延のない1つの乱数系列RND_Bとの組み合わせにより、N通りの異なる相対的時間差を実現する。
図2及び図3に示す乱数生成器の構成に関連して説明したように、N通りの互いに異なる相対的時間差を有するNセットの2個の乱数系列に対して、各セットにおける2個の乱数系列をXORして求められたN個の乱数系列は互いに相関がゼロである。図4に示す乱数生成器においても、N個のXORゲート22-0乃至22-N-1により求められたN個の乱数系列RND_0乃至RND_(N-1)は、同一のクロックサイクルにおいても異なるクロックサイクル間においても互いに相関がない乱数系列となる。
上述のように図4に示す乱数生成器では、1つのシフトレジスタと複数のXORゲートを用いる単純な構成により乱数分配器12を実現できる。従って、単純な回路構成且つ小さな回路面積で、所望の個数の乱数系列を生成することができる。
図5は、第3の実施例による乱数分配器12の構成の一例を示す図である。図5に示す乱数生成器は、3個の乱数発生器により生成した3個の乱数系列に基づいて、N個の乱数系列RND_0乃至RND_(N-1)を生成する。
図5に示す乱数生成器は、乱数発生器10、乱数発生器11、乱数発生器13、及び乱数分配器12を含む。乱数発生器10、乱数発生器11、及び乱数発生器13は互いに独立な乱数発生器であり、それぞれが生成する乱数系列RND_A、乱数系列RND_B、及び乱数系列RND_Cは互いに無相関である。各乱数系列は、同一クロックサイクルで比較したときにn個のビット間の相関がなく、異なるクロックサイクル間で比較したときに同一ビット内での相関がなく且つ異なるビット間での相関もない。また任意の2つの乱数系列の間においても、同一クロックサイクルで比較したときに任意のビット間の相関がなく、異なるクロックサイクル間で比較したときに任意のビット間の相関もない。
乱数分配器12は、N-1個のフリップフロップ20-1乃至20-N-1、N-1個のフリップフロップ21-1乃至21-N-1、及びN-1個のフリップフロップ23-1乃至23-N-1を含む。乱数分配器12は更に、N個のXORゲート24-0乃至24-N-1を含む。
N-1個のフリップフロップ20-1乃至20-N-1は、乱数発生器10が出力する乱数系列RND_Aを入力とする第1のシフトレジスタとして機能する。N-1個のフリップフロップ21-1乃至21-N-1は、乱数発生器11が出力する乱数系列RND_Bを入力とする第2のシフトレジスタとして機能する。N-1個のフリップフロップ23-1乃至23-N-1は、乱数発生器13が出力する乱数系列RND_Cを入力とする第3のシフトレジスタとして機能する。これら第1乃至第3のシフトレジスタが、3個の乱数系列RND_A、RND_B、及びRND_Cの間における相対的な時間差を調整することにより、N通りの異なる相対的時間差をそれぞれ有するNセットの3個の乱数系列を出力する。
具体的には、第1のシフトレジスタに含まれるN-1個のフリップフロップ20-1乃至20-N-1による遅延により、互いに異なる遅延量を有するN個の第1の乱数系列が生成される。また第2のシフトレジスタに含まれるN-1個のフリップフロップ21-1乃至21-N-1による遅延により、互いに異なる遅延量を有するN個の第2の乱数系列が生成される。更に第3のシフトレジスタに含まれるN-1個のフリップフロップ23-1乃至23-N-1による遅延により、互いに異なる遅延量を有するN個の第2の乱数系列が生成される。これら第1乃至第3の乱数系列の組み合わせにより、N通りの異なる相対的時間差を実現する。
論理演算部として機能するN個のXORゲート24-0乃至24-N-1は、Nセットの3個の乱数系列の各セットについて当該セットに含まれる3個の乱数系列間での排他的論理和を演算する。N個の排他的論理和出力は、各乱数値がnビットであるN個の乱数系列RND_0乃至RND_(N-1)となる。なおN個のXORゲート24-0乃至24-N-1の各々は、図示の都合上、1つのXORゲートとして示されているが、実際には、1ビットを処理する3入力のXORゲートがn個並列に設けられたものである。例えば各乱数系列が1ビットからなる場合、XORゲート24-0乃至24-N-1の各々は、1ビットを処理する1個の3入力XORゲートとなる。また例えば各乱数系列が10ビットからなる場合、XORゲート24-0乃至24-N-1の各々は、1ビットを処理する3入力XORゲートが10個並列に設けられたものとなる。
図5に示される構成では、XORゲート22-k(k=0,1,2,・・・N-1)への入力として、kが増加するに従い乱数系列RND_A及びRND_Cの遅延が大きくなる一方で乱数系列RND_Bの遅延が小さくなるように、各シフトレジスタの信号伝搬方向を設定する。ここで説明の便宜上、前述のように各乱数系列が1ビットの乱数値であるとする。XORゲート22-kに入力する乱数系列は、kクロックサイクル遅れた乱数系列RND_Aの値a(t-k)及び乱数系列RND_Cの値c(t-k)と、N-1-kクロックサイクル遅れた乱数系列RND_Bの値b(t+k-N+1)とである。
この場合、乱数系列RND_Bを基準に乱数系列RND_Aとの時間差TA及び乱数系列RND_Cとの時間差TCの組みを考えると、XORゲート22-kに入力する乱数系列の相対的時間差の組みは、(TA,TC)=(N-1-2k,N-1-2k)となる。この相対的時間差は、N個のXORゲート24-0乃至24-N-1毎に異なっている。従って、N個のXORゲート22-0乃至22-N-1により求められたN個の乱数系列RND_0乃至RND_(N-1)は、同一のクロックサイクルにおいても異なるクロックサイクル間においても互いに相関がない乱数系列となる。
なお図5に示される構成では、乱数系列RND_Aと乱数系列RND_Cとの相対的時間差はゼロに設定されている。代替的に、例えば乱数系列RND_Cについては、図4における乱数系列RND_Bに対する扱いと同様に、乱数系列RND_Cをそのまま遅延無しの状態でXORゲートに入力する構成としてもよい。この場合、上記の乱数系列の相対的時間差の組みは、(TA,TC)=(N-1-2k,N-1-k)となる。
図6は、乱数生成装置を搭載する半導体装置の構成の一例を示す図である。図6に示す半導体装置100は、乱数発生器10、乱数発生器11、乱数分配器12、及び演算回路41乃至43を含む。乱数発生器10、乱数発生器11、及び乱数分配器12は、図1乃至図5を参照して説明したようにして、N個の乱数系列RND_0乃至RND_(N-1)を生成してよい。図6では、図示の都合上、乱数系列RND_2、RAND_5、及びRND_6が示される。
乱数分配器12は、フリップフロップ20-1乃至20-6及び20A-3乃至20A-5、フリップフロップ21-1乃至21-4及び21A-1、及びXORゲート31乃至33を含む。フリップフロップ20-1乃至20-6は、図3のフリップフロップ20-1乃至20-N-1の一部又は全部に相当し、乱数発生器10が生成した乱数系列をクロック信号CLKに同期して遅延する。フリップフロップ21-1乃至21-4は、図3のフリップフロップ21-1乃至21-N-1の一部又は全部に相当し、乱数発生器11が生成した乱数系列をクロック信号CLKに同期して遅延する。図示の都合上、各フリップフロップへのクロック信号の印加については、図示が省略されている。
フリップフロップ20A-3乃至20A-5は、フリップフロップ20-1乃至20-6が配置される信号伝搬経路から枝分かれし、別の信号伝搬経路に沿って配置されている。論理的には、フリップフロップ20A-3乃至20A-5の出力値は、それぞれフリップフロップ20-3乃至20-5の出力値に等しい。同様に、フリップフロップ21A-1は、フリップフロップ21-1乃至21-4が配置される信号伝搬経路から枝分かれし、別の信号伝搬経路に沿って配置されている。論理的には、フリップフロップ21A-1の出力値は、フリップフロップ21-1の出力値に等しい。
演算回路41、42、及び43は、それぞれXORゲート31、32、及び33が演算した排他的論理和を入力として受け取る。XORゲート31、32、及び33は、それぞれ対応する演算回路41、42、及び43の近傍(物理的に近い位置)に配置される。XORゲート31乃至33は、図3のXORゲート22-0乃至22-N-1の一部に相当する。演算回路41、42、及び43は、それぞれ乱数系列RND_2、RAND_5、及びRND_6を用いた演算を行う。演算としては、例えばモンテカルロ・シミュレーションやストカスティック演算に関する演算であってよい。
図6に示される構成では、2個の乱数発生器10及び11の物理的位置から演算回路41乃至43の物理的位置迄の信号伝搬経路に沿って、シフトレジスタに含まれるフリップフロップが配置される。ここで信号伝搬経路に沿ってフリップフロップが配置されるとは、複数のフリップフロップが信号の始点から終点までの間に略均等の間隔で配置されることを意味する。
具体的には、乱数発生器10の物理的位置から演算回路41の物理的位置迄の信号伝搬経路に沿って、フリップフロップ20-1及び20-2が配置される。また乱数発生器10の物理的位置から演算回路42の物理的位置迄の信号伝搬経路に沿って、フリップフロップ20-1及び20-2並びに20A-3乃至20A-5が配置される。また乱数発生器10の物理的位置から演算回路43の物理的位置迄の信号伝搬経路に沿って、フリップフロップ20-1乃至20-6が配置される。
同様に乱数発生器11の物理的位置から演算回路41の物理的位置迄の信号伝搬経路に沿って、フリップフロップ21-1乃至21-4が配置される。また乱数発生器11の物理的位置から演算回路42の物理的位置迄の信号伝搬経路に沿って、フリップフロップ21A-1が配置される。また乱数発生器11の物理的位置は演算回路43の物理的位置に近いため、演算回路43への信号伝搬経路にフリップフロップは配置されない。
上記のように信号伝搬経路に沿ってフリップフロップを配置することにより、乱数系列を遅延させるという遅延調整部としての機能を実現すると同時に、信号線の引き延ばしに伴う波形の劣化に起因する誤動作を防ぐという効果を得ることができる。またフリップフロップの配置された信号伝搬経路を分岐することにより、信号線の無理な引き延ばしにより波形の劣化を引き起こすことなく、各演算回路に対応するXOR回路に対して、適切な遅延状態の信号(即ち所望の相対的時間差の信号)を供給できる。
図7は、乱数生成器をソフトウェアにより実装する装置の構成を示す図である。前述のように、上述の乱数生成器による乱数生成動作は、ソフトウェアとして実装されてもよい。
図7に示されるように、乱数生成器を実装する装置は、例えばパーソナルコンピュータ等のコンピュータにより実現される。図7の装置は、コンピュータ510と、コンピュータ510に接続されるディスプレイ装置520、通信装置523、及び入力装置よりなる。入力装置は、例えばキーボード521及びマウス522を含む。コンピュータ510は、CPU511、RAM512、ROM513、ハードディスク等の二次記憶装置514、可換媒体記憶装置515、及びインターフェース516を含む。
キーボード521及びマウス522は、ユーザとのインターフェースを提供するものであり、コンピュータ510を操作するための各種コマンドや要求されたデータに対するユーザ応答等が入力される。ディスプレイ装置520は、コンピュータ510で処理された結果等を表示すると共に、コンピュータ510を操作する際にユーザとの対話を可能にするために様々なデータ表示を行う。通信装置523は、周辺装置との通信又は遠隔地との通信を行なうためのものであり、例えばモデム、ネットワークインターフェース、USB(Universal Serial Bus)等よりなる。
乱数生成器の機能は、コンピュータ510が実行可能なコンピュータプログラムとして提供される。このコンピュータプログラムは、可換媒体記憶装置515に装着可能な記憶媒体Mに記憶されており、記憶媒体Mから可換媒体記憶装置515を介して、RAM512或いは二次記憶装置514にロードされる。或いは、このコンピュータプログラムは、周辺装置又は遠隔地にある記憶媒体(図示せず)に記憶されており、この記憶媒体から通信装置523及びインターフェース516を介して、RAM512或いは二次記憶装置514にロードされる。
キーボード521及び/又はマウス522を介してユーザからプログラム実行指示があると、CPU511は、記憶媒体M、周辺装置、遠隔地記憶媒体、或いは二次記憶装置514からプログラムをRAM512にロードする。CPU511は、RAM512の空き記憶空間をワークエリアとして使用して、RAM512にロードされたプログラムを実行し、適宜ユーザと対話しながら処理を進める。なおROM513は、コンピュータ510の基本動作を制御するための制御プログラムが格納されている。
上記コンピュータプログラムを実行することにより、コンピュータ510が、上記各実施例で説明されたように乱数生成器の乱数生成動作を実行する。
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
10 乱数発生器
11 乱数発生器
12 乱数分配器
20 遅延調整部
21 遅延調整部
41 演算回路
42 演算回路
43 演算回路
510 コンピュータ
511 CPU
512 RAM
513 ROM
514 二次記憶装置
515 可換媒体記憶装置
516 インターフェース
520 ディスプレイ装置
521 キーボード
522 マウス
523 通信装置

Claims (5)

  1. M個(Mは2以上の整数)の乱数系列をそれぞれ生成する互いに独立なM個の乱数発生器と、
    前記M個の乱数系列の間における相対的な時間差を調整することにより、N通り(Nは2以上の整数)の異なる相対的時間差をそれぞれ有するNセットのM個の乱数系列を出力する遅延調整部と、
    前記NセットのM個の乱数系列の各セットについて当該セットに含まれるM個の乱数系列間での排他的論理和を演算する論理演算部と
    を含み、
    前記M個の乱数発生器は第1の乱数発生器と第2の乱数発生器とを含む2個の乱数発生器であり、前記遅延調整部は、前記第1の乱数発生器が出力する乱数系列を入力とする第1のシフトレジスタと、前記第2の乱数発生器が出力する乱数系列を入力とする第2のシフトレジスタとを含み、前記第1のシフトレジスタに含まれるN-1個のフリップフロップによる遅延により生成された互いに異なる遅延量を有するN個の第1の乱数系列と、前記第2のシフトレジスタに含まれるN-1個のフリップフロップによる遅延により生成された互いに異なる遅延量を有するN個の第2の乱数系列との組み合わせにより、前記N通りの異なる相対的時間差を実現し、前記Nセットの2個の乱数系列のうちの任意の1つのセットは、前記Nセットの2個の乱数系列のうちの別の任意の1つのセットに対して、前記第1の乱数系列の遅延がより大きく、前記第2の乱数系列の遅延がより小さい、乱数生成器。
  2. 前記個の乱数発生器の物理的位置から、前記論理演算部が演算した排他的論理和を入力とする回路の物理的位置迄の信号伝搬経路に沿って、前記第1および第2のシフトレジスタに含まれるフリップフロップが配置される、請求項記載の乱数生成器。
  3. M個(Mは2以上の整数)の乱数系列をそれぞれ生成する互いに独立なM個の乱数発生器と、
    前記M個の乱数系列の間における相対的な時間差を調整することにより、N通り(Nは2以上の整数)の異なる相対的時間差をそれぞれ有するNセットのM個の乱数系列を出力する遅延調整部と、
    前記NセットのM個の乱数系列の各セットについて当該セットに含まれるM個の乱数系列間での排他的論理和を演算する論理演算部と、
    前記論理演算部が演算した排他的論理和を入力とする回路と
    を含み、
    前記M個の乱数発生器は第1の乱数発生器と第2の乱数発生器とを含む2個の乱数発生器であり、前記遅延調整部は、前記第1の乱数発生器が出力する乱数系列を入力とする第1のシフトレジスタと、前記第2の乱数発生器が出力する乱数系列を入力とする第2のシフトレジスタとを含み、前記第1のシフトレジスタに含まれるN-1個のフリップフロップによる遅延により生成された互いに異なる遅延量を有するN個の第1の乱数系列と、前記第2のシフトレジスタに含まれるN-1個のフリップフロップによる遅延により生成された互いに異なる遅延量を有するN個の第2の乱数系列との組み合わせにより、前記N通りの異なる相対的時間差を実現し、前記Nセットの2個の乱数系列のうちの任意の1つのセットは、前記Nセットの2個の乱数系列のうちの別の任意の1つのセットに対して、前記第1の乱数系列の遅延がより大きく、前記第2の乱数系列の遅延がより小さく、
    前記個の乱数発生器のうちの少なくとも1つの物理的位置から前記回路の物理的位置迄の信号伝搬経路に沿って前記第1および第2のシフトレジスタのうちの少なくとも1つのシフトレジスタに含まれるフリップフロップが配置される半導体装置。
  4. 前記フリップフロップが配置される信号伝搬経路は分岐を含む、請求項記載の半導体装置。
  5. 互いに独立な個の乱数系列を生成し、
    前記個の乱数系列の間における相対的な時間差を調整することにより、N通り(Nは2以上の整数)の異なる相対的時間差をそれぞれ有するNセットの個の乱数系列を出力し、
    前記Nセットの個の乱数系列の各セットについて当該セットに含まれる個の乱数系列間での排他的論理和を演算し、
    前記2個の乱数系列の一方をN-1回所定時間遅延させることにより生成された互いに異なる遅延量を有するN個の第1の乱数系列と、前記2個の乱数系列の他方をN-1回所定時間遅延させることにより生成された互いに異なる遅延量を有するN個の第2の乱数系列との組み合わせにより、前記N通りの異なる相対的時間差を実現し、
    前記Nセットの2個の乱数系列のうちの任意の1つのセットは、前記Nセットの2個の乱数系列のうちの別の任意の1つのセットに対して、前記第1の乱数系列の遅延がより大きく、前記第2の乱数系列の遅延がより小さい、
    処理をコンピュータに実行させるためのプログラム。
JP2019010295A 2019-01-24 2019-01-24 乱数生成器、半導体装置、及びプログラム Active JP7251164B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019010295A JP7251164B2 (ja) 2019-01-24 2019-01-24 乱数生成器、半導体装置、及びプログラム
US16/734,457 US11281431B2 (en) 2019-01-24 2020-01-06 Random number generating circuit and semiconductor apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019010295A JP7251164B2 (ja) 2019-01-24 2019-01-24 乱数生成器、半導体装置、及びプログラム

Publications (2)

Publication Number Publication Date
JP2020119313A JP2020119313A (ja) 2020-08-06
JP7251164B2 true JP7251164B2 (ja) 2023-04-04

Family

ID=71731280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019010295A Active JP7251164B2 (ja) 2019-01-24 2019-01-24 乱数生成器、半導体装置、及びプログラム

Country Status (2)

Country Link
US (1) US11281431B2 (ja)
JP (1) JP7251164B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11586418B2 (en) * 2020-01-17 2023-02-21 Macronix International Co., Ltd. Random number generator, random number generating circuit, and random number generating method
US11621837B2 (en) 2020-09-03 2023-04-04 Theon Technology Llc Secure encryption of data using partial-key cryptography
US11310042B2 (en) 2020-09-11 2022-04-19 Crown Sterling Limited, LLC Methods of storing and distributing large keys
CN114846473A (zh) * 2020-10-27 2022-08-02 京东方科技集团股份有限公司 数据处理电路、数据处理方法及电子设备
CN113314187B (zh) * 2021-05-27 2022-05-10 广州大学 一种数据存储方法、解码方法、系统、装置及存储介质
US11755772B2 (en) 2021-09-20 2023-09-12 Crown Sterling Limited, LLC Securing data in a blockchain with a one-time pad
US11791988B2 (en) * 2021-11-22 2023-10-17 Theon Technology Llc Use of random entropy in cryptography
US11943336B2 (en) 2021-11-22 2024-03-26 Theon Technology Llc Use of gradient decent function in cryptography
US11902420B2 (en) 2021-11-23 2024-02-13 Theon Technology Llc Partial cryptographic key transport using one-time pad encryption

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001166920A (ja) 1999-12-07 2001-06-22 Mitsubishi Electric Corp 数値発生装置および数値発生応用装置
US20020181558A1 (en) 1997-11-19 2002-12-05 Ntt Mobile Communications Network, Inc. Simultaneous plural code series generator and CDMA radio receiver using same

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3742381A (en) * 1971-06-09 1973-06-26 California Inst Of Techn Wideband digital pseudo gaussian noise generator
WO1991010182A1 (en) * 1989-12-21 1991-07-11 Bell Communications Research, Inc. Generator of multiple uncorrelated noise sources
JPH0446413A (ja) 1990-06-14 1992-02-17 Fujitsu Ltd ランダム符号発生回路
JPH1124894A (ja) 1997-07-02 1999-01-29 Oki Electric Ind Co Ltd M系列符号発生装置
JPH11136101A (ja) * 1997-10-28 1999-05-21 Ntt Mobil Commun Network Inc 符号系列生成器
US20040078401A1 (en) * 2002-10-22 2004-04-22 Hilton Howard E. Bias-free rounding in digital signal processing
CN102314332B (zh) * 2011-07-27 2014-04-09 中国科学院计算机网络信息中心 伪随机数生成装置和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020181558A1 (en) 1997-11-19 2002-12-05 Ntt Mobile Communications Network, Inc. Simultaneous plural code series generator and CDMA radio receiver using same
JP2001166920A (ja) 1999-12-07 2001-06-22 Mitsubishi Electric Corp 数値発生装置および数値発生応用装置

Also Published As

Publication number Publication date
JP2020119313A (ja) 2020-08-06
US20200241841A1 (en) 2020-07-30
US11281431B2 (en) 2022-03-22

Similar Documents

Publication Publication Date Title
JP7251164B2 (ja) 乱数生成器、半導体装置、及びプログラム
Khan et al. High-Speed and Low-Latency ECC Processor Implementation Over GF ($2^{m}) $ on FPGA
Xie et al. Special session: The recent advance in hardware implementation of post-quantum cryptography
Cilio et al. Mitigating power-and timing-based side-channel attacks using dual-spacer dual-rail delay-insensitive asynchronous logic
Hagras et al. Low power and high-speed FPGA implementation for 4D memristor chaotic system for image encryption
US20050097153A1 (en) Pseudorandom number generator
Thomas et al. High quality uniform random number generation using LUT optimised state-transition matrices
Karakaya et al. Chaotic cellular neural network‐based true random number generator
Khan et al. High speed ECC implementation on FPGA over GF (2 m)
Bisheh Niasar et al. Efficient hardware implementations for elliptic curve cryptography over Curve448
Niasar et al. Optimized architectures for elliptic curve cryptography over Curve448
Imana LFSR-Based Bit-Serial $ GF (2^ m) $ G F (2 m) Multipliers Using Irreducible Trinomials
El Khatib et al. High-performance FPGA accelerator for SIKE
Hobincu et al. FPGA implementation of a chaos based PRNG targetting secret communication
Gupta et al. Coupled variable‐input LCG and clock divider‐based large period pseudo‐random bit generator on FPGA
Guo et al. Agile-aes: Implementation of configurable aes primitive with agile design approach
Gonzalez-Diaz et al. A pseudorandom number generator based on time-variant recursion of accumulators
Hadayeghparast et al. High-speed post-quantum cryptoprocessor based on RISC-V architecture for IoT
Cilio et al. Side-channel attack mitigation using dual-spacer Dual-rail Delay-insensitive Logic (D 3 L)
Othman et al. Implementation of neural-cryptographic system using FPGA
Basiri et al. Hardware optimizations for crypto implementations
Galli et al. On the effectiveness of true random number generators implemented on FPGAs
Sunandha et al. Implementation of modified Dual-CLCG method for pseudorandom bit generation
Pamula et al. Finite-Field Multipliers with Reduced Activity Variations
Renardy et al. Hardware implementation of montgomery modular multiplication algorithm using iterative architecture

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220906

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221104

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230306

R150 Certificate of patent or registration of utility model

Ref document number: 7251164

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150