IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 新唐科技股▲ふん▼有限公司の特許一覧

<>
  • 特開-分布乱数生成器、及び乱数生成の方法 図1
  • 特開-分布乱数生成器、及び乱数生成の方法 図2
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022034552
(43)【公開日】2022-03-03
(54)【発明の名称】分布乱数生成器、及び乱数生成の方法
(51)【国際特許分類】
   G06F 7/58 20060101AFI20220224BHJP
【FI】
G06F7/58 620
【審査請求】有
【請求項の数】19
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021133069
(22)【出願日】2021-08-18
(31)【優先権主張番号】16/995,951
(32)【優先日】2020-08-18
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】508197206
【氏名又は名称】新唐科技股▲ふん▼有限公司
(74)【代理人】
【識別番号】110000291
【氏名又は名称】特許業務法人コスモス国際特許商標事務所
(72)【発明者】
【氏名】キルシュナー,ユヴァル
(72)【発明者】
【氏名】ゴーラン,タミル
(57)【要約】      (修正有)
【課題】高スループットおよび高レベルのランダム性で乱数を生成するRNGを提供する。
【解決手段】集積回路において、分布乱数生成器(RNG)は、第1の周波数範囲でそれぞれのHFクロック信号を生成する第1の複数の高周波クロックジェネレータ40、第1の周波数範囲よりも低い第2の周波数範囲でそれぞれのLFクロック信号を生成する第2の複数の低周波クロックジェネレータ44、HFクロック信号及びLFクロック信号からそれぞれのランダムビットシーケンスを導出する第3の複数のデジタル乱数生成回路(DRNG)及びDRNGによって生成されたランダムビットシーケンスからランダムビットの出力シーケンスを生成するマルチプレクサ36を含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
第1の周波数範囲でそれぞれのHFクロック信号を生成するように構成された第1の複数の高周波(High-Frequency;HF)クロックジェネレータ、
前記第1の周波数範囲よりも低い第2の周波数範囲でそれぞれのLFクロック信号を生成するように構成された第2の複数の低周波(Low-Frequency;LF)クロックジェネレータ、
(i)HFクロック信号の中から取り出されたそれぞれのHFクロック信号、および(ii)HFクロック信号の中から取り出されたそれぞれのLFクロック信号からそれぞれのランダムビットシーケンスを導出するようにそれぞれ構成された第3の複数のデジタル乱数生成回路(Digital Random-Number Generator circuit;DRNG)、および
前記DRNGによって生成されたランダムビットシーケンスからランダムビットの出力シーケンスを生成するように構成されたマルチプレクサ(multiplexer)を含む乱数生成器(Random-Number Generator;RNG)。
【請求項2】
所与のDRNGは、(i)前記それぞれのHFクロック信号によってクロッキングされたそれぞれの線形フィードバックシフトレジスタ(LFSR)、および(ii)それぞれのLFクロック信号に従ってそれぞれのLFSRの出力をサンプリングするように構成されたそれぞれのフリップフロップ(FF)を含む請求項1に記載のRNG。
【請求項3】
前記LFSRのうちの少なくとも2つは、(i)初期シード(seed)、(ii)フィードバックタップ(feedback-tap)構成、および(iii)カスケードされたFF(cascaded Flip-Flop)の数のうちの1つ以上が互いに異なる請求項2に記載のRNG。
【請求項4】
所与のDRNGは、それぞれのLFクロック信号に従ってそれぞれのHFクロック信号をサンプリングするように構成されたそれぞれのフリップフロップ(FF)を含む請求項1に記載のRNG。
【請求項5】
前記DRNGは、入力クロック信号のそれぞれの異なるペアが提供され、各ペアは、それぞれのHFクロック信号およびそれぞれのLFクロック信号を含む請求項1に記載のRNG。
【請求項6】
前記HFクロックジェネレータ、前記LFクロックジェネレータ、および前記DRNGは、集積回路(Integrated Circuit;IC)の領域にわたって空間的に分散される請求項1に記載のRNG。
【請求項7】
アナログノイズを1つ以上の前記HFクロックジェネレータおよび前記LFクロックジェネレータに加えるように構成された1つ以上のアナログノイズ源(analog noise source)をさらに含む請求項1に記載のRNG。
【請求項8】
前記マルチプレクサは、前記DRNG間でランダムに交替する多重化順序でランダムビットシーケンスを多重化するように構成される請求項1に記載のRNG。
【請求項9】
前記マルチプレクサは、1つ以上の前記ランダムビットシーケンスの選択されたビットから前記多重化順序を導出するように構成される請求項8に記載のRNG。
【請求項10】
前記HFクロックジェネレータおよび前記LFクロックジェネレータはペアに配置され、各ペアはそれぞれのHFクロックジェネレータおよびそれぞれのLFクロックジェネレータを含む請求項1に記載のRNG。
【請求項11】
前記HFクロックジェネレータのうちの少なくとも2つは、互いに周波数が異なるHFクロック信号を生成するように構成される請求項1に記載のRNG。
【請求項12】
前記LFクロックジェネレータのうちの少なくとも2つは、互いに周波数が異なるLFクロック信号を生成するように構成される請求項1に記載のRNG。
【請求項13】
前記HFクロックジェネレータのうちの少なくとも2つは、異なる時間にアクティブ化されるように構成される請求項1に記載のRNG。
【請求項14】
前記LFクロックジェネレータのうちの少なくとも2つは、異なる時間にアクティブ化されるように構成される請求項1に記載のRNG。
【請求項15】
第1の周波数範囲で第1の複数の高周波(High-Frequency;HF)クロック信号を生成するステップ、
前記第1の周波数範囲よりも低い第2の周波数範囲で第2の複数の低周波(Low-Frequency;LF)クロック信号を生成するステップ、
第3の複数のランダムビットシーケンスが導出され、各ランダムビットシーケンスは、(i)前記第1の複数からのそれぞれのHFクロック信号、および(ii)前記第2の複数からのそれぞれのLFクロック信号から導出されるステップ、および
前記ランダムビットシーケンスからランダムビットの出力シーケンスを生成するステップを含む乱数生成の方法。
【請求項16】
前記第3の複数の所与のランダムビットシーケンスを導出するステップは、(i)それぞれのHFクロック信号によって線形フィードバックシフトレジスタ(Linear Feedback Shift Register;LFSR)をクロックするステップ、および(ii)それぞれのLFクロック信号に従って、それぞれのフリップフロップ(Flip-Flop;FF)によってそれぞれのLFSRの出力をサンプリングするステップを含む請求項15に記載の方法。
【請求項17】
前記第3の複数の所与のランダムビットシーケンスを導出するステップは、前記それぞれのLFクロック信号に従って、それぞれのフリップフロップ(FF)によって前記それぞれのHFクロック信号をサンプリングするステップを含む請求項15に記載の方法。
【請求項18】
前記出力シーケンスの生成は、ランダムビットシーケンス間でランダムに交替する多重化順序でランダムビットシーケンスを多重化するステップを含む請求項15に記載の方法。
【請求項19】
前記ランダムビットシーケンスの多重化は、1つ以上の前記ランダムビットシーケンスの選択されたビットから前記多重化順序を導出するステップを含む請求項18に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、乱数生成に関するものであり、特に、複数の乱数生成器を用いてランダムビットシーケンスを生成する方法およびシステムに関するものである。
【背景技術】
【0002】
乱数生成のための様々な技術が当技術分野では知られている。例えば、米国特許第4,905,176は、暗号攻撃(cryptographic attack)を受けない乱数生成器を記載している。乱数生成器の動作原理は、自走式リングオシレータからの様々な周波数で動作する疑似乱数生成器(ring oscillator)の出力の低周波サンプリングに基づいている。
【発明の概要】
【0003】
本明細書に記載される本発明の実施形態は、第1の複数の高周波(High-Frequency;HF)クロックジェネレータ、第2の複数の低周波(Low-Frequency;LF)クロックジェネレータ、第3の複数のデジタル乱数生成回路(Digital Random-Number Generator circuit;DRNG)、およびマルチプレクサを含む乱数生成器(Random-Number Generator;RNG)を提供する。HFクロックジェネレータは、第1の周波数範囲でそれぞれのHFクロック信号を生成するように構成される。LFクロックジェネレータは、第1の周波数範囲よりも低い第2の周波数範囲でそれぞれのLFクロック信号を生成するように構成される。各DRNGは、(i)HFクロック信号の中から取り出されたそれぞれのHFクロック信号、および(ii)HFクロック信号の中から取り出されたそれぞれのLFクロック信号からそれぞれのランダムビットシーケンスを導出するように構成される。マルチプレクサは、DRNGによって生成されたランダムビットシーケンスからランダムビットの出力シーケンスを生成するように構成される。
【0004】
いくつかの実施形態では、所与のDRNGは、(i)それぞれのHFクロック信号によってクロックされたそれぞれの線形フィードバックシフトレジスタ(Linear Feedback Shift Register;LFSR)、および(ii)それぞれのLFクロック信号に従ってそれぞれのLFSRの出力をサンプリングするように構成されたそれぞれのフリップフロップ(Flip-Flop;FF)を含む。様々な実施形態では、LFSRのうちの少なくとも2つは、(i)初期シード(seed)、(ii)フィードバックタップ(feedback-tap)構成、および(iii)カスケードされたFF(cascaded Flip-Flop)の数のうちの1つ以上が互いに異なる。代替の実施形態では、所与のDRNGは、それぞれのLFクロック信号に従ってそれぞれのHFクロック信号をサンプリングするように構成されたそれぞれのフリップフロップ(FF)を含む。
【0005】
開示された実施形態では、DRNGは、入力クロック信号のそれぞれの異なるペアが提供され、各ペアは、それぞれのHFクロック信号およびそれぞれのLFクロック信号を含む。一実施形態では、HFクロックジェネレータ、LFクロックジェネレータ、およびDRNGは、集積回路(Intergrated Circuit;IC)の領域にわたって空間的に分散される。いくつかの実施形態では、RNGは、アナログノイズを1つ以上のHFクロックジェネレータおよびLFクロックジェネレータに加えるように構成された1つ以上のアナログノイズ源(analog noise source)をさらに含む。
【0006】
いくつかの実施形態では、マルチプレクサは、DRNG間でランダムに交替する多重化順序でランダムビットシーケンスを多重化するように構成される。例示的な実施形態では、マルチプレクサは、1つ以上のランダムビットシーケンスの選択されたビットから多重化順序を導出するように構成される。
【0007】
一実施形態では、HFクロックジェネレータおよびLFクロックジェネレータはペアに配置され、各ペアはそれぞれのHFクロックジェネレータおよびそれぞれのLFクロックジェネレータを含む。もう1つの実施形態では、HFクロックジェネレータのうちの少なくとも2つは、互いに周波数が異なるHFクロック信号を生成するように構成される。追加的または代替的に、LFクロックジェネレータのうちの少なくとも2つは、互いに周波数が異なるLFクロック信号を生成するように構成され得る。さらに追加的または代替的に、HFクロックジェネレータのうちの少なくとも2つは、異なる時間にアクティブ化されるように構成され得る。さらにもう1つ実施形態では、LFクロックジェネレータのうちの少なくとも2つは、異なる時間にアクティブ化されるように構成され得る。
【0008】
また、本発明の一実施形態による、第1の周波数範囲で第1の複数の高周波(HF)クロック信号を生成するステップ、および第1の周波数範囲よりも低い第2の周波数範囲で第2の複数の低周波(LF)クロック信号を生成するステップを含む乱数生成の方法がさらに提供される。第3の複数のランダムビットシーケンスが導出され、各ランダムビットシーケンスは、(i)第1の複数からのそれぞれのHFクロック信号、および(ii)第2の複数からのそれぞれのLFクロック信号から導出される。ランダムビットの出力シーケンスは、ランダムビットシーケンスから生成される。
【図面の簡単な説明】
【0009】
添付の図面とともに以下の詳細な説明及び実施例を検討することで、本発明をより完全に理解できる。
図1図1は、本発明の一実施形態による、分布乱数生成器を含む集積回路(Integrated Circuit:IC)を模式的に示したブロック図である。
図2図2は、本発明の一実施形態による、分布乱数生成の方法を模式的に示したフローチャートである。
【発明を実施するための形態】
【0010】
概観
本明細書に記載された本発明の実施形態は、乱数生成のための改善された方法および回路を提供する。開示された 乱数生成器(Random-Number Generator;RNG)は、高スループットおよび高レベルのランダム性で乱数を生成する。開示された乱数生成器も、ランダムビットの出力シーケンスのランダム性を低下または減少させようとする敵対的攻撃に対して高い回復力がある。
【0011】
いくつかの実施形態では、RNGは、複数の自走式高周波(HF)クロックジェネレータおよび複数の自走式低周波(LF)クロックジェネレータを含む。HFクロックジェネレータは、第1の周波数範囲(例えば、MHZのオーダー)でそれぞれのHFクロック信号を生成するように構成される。LFクロックジェネレータは、第1の周波数範囲より低い(例えば、KHzのオーダー)第2の周波数範囲でそれぞれのLFクロック信号を生成するように構成される。いくつかの実施形態では、アナログノイズ源(analog noise source)は、任意のクロックジェネレータに加えられることができる。そのようなノイズの付加は、LFクロックジェネレータに特に効果的である。
【0012】
RNGは、複数のデジタル乱数生成回路(Digital Random-Number Generator circuit;DRNG)をさらに含む。各DRNGは、入力として{HFクロック信号、LFクロック信号}の選択されたペアが提供される。通常、異なるDRNGには、異なる{HFクロック信号、LFクロック信号}ペアが提供されるが、任意の個別のクロック信号(HFまたはLF)が、複数のDRNGを駆動するように用いられることもできる。
【0013】
各DRNGは、それに提供されるHFクロック信号およびLFクロック信号を用いて、それぞれのランダムビットシーケンスを生成するように構成されている。いくつかの実施形態では、各DRNGは、それぞれのHFクロック信号によってクロックされた線形フィードバックシフトレジスタ(Linear Feedback Shift Register;LFSR)、およびそれぞれのLFクロック信号に従ってLFSRの出力をサンプリングするフリップフロップ(Flip-Flop;FF)を含む。LFSRの出力は、実際のLFSRクロックレートよりもはるかに低いレートでサンプリングされており、且つLFサンプリングクロックは通常ノイズが多いため、生成されるランダムビットシーケンスは実に非常にランダムなものとなる。
【0014】
乱数生成器は、DRNGによって生成されたランダムビットシーケンスからランダムビットの出力シーケンスを生成するように構成されたマルチプレクサをさらに含む。複数のDRNGの出力を多重化(multiplexing)することにより、開示されたRNGは乱数の高スループットを提供することができる。いくつかの実施形態では、マルチプレクサは、DRNG間でランダムに交替する多重化順序を用いることによって、その出力のランダム性をさらに高める。
【0015】
クロックジェネレータ(HFおよびLF)はフリーランニングであり、互いに同期しておらず、ノイズが多いため、且つ各DRNGには{HFクロック信号、LFクロック信号}の異なる組み合わせが提供されているため、異なるDRNGで生成されたランダムビットシーケンスは、互いにほとんどまたは全く相関関係がない。そのため、マルチプレクサによって生成されたビットの多重化シーケンスは、高度なランダム性を有する。
【0016】
同じHFクロック信号とLFクロック信号を異なる組み合わせで再利用することにより、ランダム性を損なうことなく、少数のHFおよびLFクロックジェネレータを用いて多数のDRNGを駆動することができる。この機能は、RNGのコスト、サイズ、および消費電力を削減する。
【0017】
いくつかの実施形態では、RNGは、集積回路(Intergrated Circuit;IC)の一部として実装され、様々なRNG要素(HFクロックジェネレータ、LFクロックジェネレータ、およびDRNG)は、IC領域全体に空間的に分散される。その結果、異なるクロックジェネレータが異なる統計値を有するアナログノイズを拾い、異なるクロック信号の相関を低減するのに役立つ。さらに、IC20の特定の領域に対する攻撃が、1つ以上のDRNGの出力に影響を与える可能性は低い。攻撃によって特定のDRNGが決定論的なシーケンスを出力することに成功した場合でも、全体的なRNG出力は非常にランダムなままである。この特性は、多重化順序がランダムなとき、さらに強化される。
【0018】
開示されたRNGの様々な例示的な実施および変更が説明される。
システムの説明
【0019】
図1は、本発明の一実施形態による、分布乱数生成器(Random-Number Generator;RNG)24を含む集積回路(Intergrated Circuit;IC)20を概略的に示すブロック図である。様々な実施形態において、IC20は、例えば、安全なコントローラ、安全なメモリデバイス、または乱数を利用する任意の他のタイプのICを含み得る。明確にするために、RNG24以外の回路は図より省略されている。他の実施形態では、IC20は、乱数生成専用であり得る。
【0020】
RNG24は、2つ以上のアナログRNG回路(ARNG)28を含み、本例では、2つのARNGは、28Aおよび28Bと表示される。各ARNGは、それぞれの高周波(図1のHFと表示)クロック信号およびそれぞれの低周波(図1のLFと表示)クロック信号を生成するように構成されている。いくつかの実施形態では、LFクロック信号周波数は、KHzのオーダーであり、HFクロック信号の周波数はMHzのオーダーであるが、任意の他の適切な周波数範囲が用いられることもできる。
【0021】
RNG24は、2つ以上のデジタルRNG回路(DRNG)32をさらに含み、本例では、4つのDRNGは、32A~32Dと表示される各DRNG32は、それぞれのHFクロック信号およびそれぞれのLFクロック信号からランダムビットシーケンスを導出するように構成される。所与のDRNG32に提供されたHFクロック信号およびLFクロック信号は、同じARNG28または異なるARNG28によって生成され得る。所与のクロック信号(HFクロック信号またはLFクロック信号)は、単一のDRNG32または複数のDRNG32に提供され得る。通常、異なるDRNG32は、異なるペアの{HFクロック信号、LFクロック信号}が提供される。
【0022】
RNG24は、コンバイナ(combiner)とも呼ばれるマルチプレクサ36をさらに含む。マルチプレクサ36は、図1のRNG OUTと表示されたランダムビットの高速シーケンスを出力するように、DRNG32によって生成されたランダムビットシーケンスを多重化するように構成される。このシーケンスは、RNG24の出力として提供される。以下に説明するように、マルチプレクサ36は通常、複数の入力のうちから1つの入力を選択する単純なMUXではなく、ビットまたはビットのグループを連結してランダムなビットストリーム(random bit stream)を形成する回路である。
【0023】
図1の下部の挿入図は、ARNG28とDRNG32の内部構造を示している。ARNG28BとDRNG32Dは例として示されており、他のARNGとDRNGはそれぞれ、通常、同様の内部構造を有する。
【0024】
左側の挿入図に見られるように、各ARNG28は、(i)それぞれのHFクロック信号(図1のHF OUTと表示)を生成するそれぞれのHF自走クロックジェネレータ40、および(ii)それぞれのLFクロック信号(図1のLF OUTと表示)を生成するそれぞれのLF自走クロックジェネレータ44を含む。通常、所与のARNG28内のクロックジェネレータ40および44は、互いに同期されておらず、他のARNG28のクロックジェネレータ40および44と同期されていない。
【0025】
ランダム性を高めるために、いくつかの実施形態では、アナログノイズ(図1のNOISEと表示)が、クロックジェネレータ40および44の一方または両方に追加される。アナログノイズは、この目的専用の回路によって意図的に生成されることができる。ノイズは、クロックジェネレータの供給電圧(図1のVDD)に加えられてもよく、またはクロックジェネレータの出力をランダムにするのに役立つ任意の他のポイントに加えられてもよい。あるいは、クロックジェネレータは、追加の回路を必要とせずに、その周囲の環境からアナログノイズを拾うことができる。
【0026】
右側の挿入図に見られるように、各DRNG32は、それぞれの線形フィードバックシフトレジスタ(Linear Feedback Shift Register;LFSR)48およびそれぞれのサンプリングフリップフロップ(Flip-Flop;FF)52を含む。各LFSR48は、1つ以上のフィードバックタップ(feedback-tap)を有する複数のFFのカスケードを含む。各DRNGでは、LFSR48は、DRNGに提供されたHFクロック信号(HF INと表示)によってクロックされ、従って、HFクロック信号のレートで疑似ランダムシーケンスを出力する。FF52は、DRNGに提供されたLFクロック信号(図1のLF INと表示)に従って、このレートの一部でLFSR48の出力をサンプリングする。FF52の出力(図1のQ)におけるランダムビットシーケンスは、DRNG(図1のRN OUTと表示)の出力として提供される。RN OUTは、LFクロック信号(LF IN)と同じレートである。
【0027】
複数のDRNG32によって生成された複数のRN OUTランダムビットシーケンスは、マルチプレクサ36の入力として提供される。マルチプレクサ36は、複数のRN OUTランダムビットシーケンスを多重化して、高レートのRNG OUTランダムビットシーケンスを生成する。
【0028】
いくつかの実施形態では、ARNG28およびDRNG32は、意図的に一緒に配置されていないが、IC20の領域全体に空間的に分散されている。この空間分布は、いくつかの理由で有利である。例えば、空間的に分散している場合、異なるARNGが異なる統計値を有するアナログノイズを拾い、異なるクロック信号(HFまたはLF)の相関を低減するのに役立つ。もう1つの例として、IC20の特定の領域に対する悪意のある攻撃が、単一のARNGまたはDRNGにダメージを与える可能性は低い。ARNGまたはDRNGにダメージ与えたことにより、ARNGまたはDRNGが固定または決定論的なビットシーケンスを出力することになっても、他のARNGおよびDRNGは機能しているため、全体的なRNGOUTシーケンスのランダム性を低下させる可能性は非常に低い。
【0029】
様々な実施形態では、マルチプレクサ36は、DRNG32によって生成されたランダムビットシーケンスを様々な方法で多重化することができる。図1の構成に示すように、DRNG32A~32Dの出力をそれぞれstream1~stream4と表示する。いくつかの実施形態では、マルチプレクサ36は、予め定義された、決定論的な、サイクリック多重化順序でランダムビットシーケンスを多重化する。例えば、マルチプレクサ36は、stream1からnビット(例えば、n=2)、次にstream2からnビット、次にstream3からnビット、次にstream4からnビット、次に再びstream1からnビットというように出力することができる。任意の他の適切な決定論的な多重化シーケンスは、代替の実施形態で用いられることができる。
【0030】
もう1つの実施形態では、マルチプレクサ36は、DRNG間でランダムに交替する多重化順序で、DRNG32によって生成されたランダムビットシーケンスを多重化することができる。本文脈において、「ランダムに交替する」という用語は、(i)1つのランダムビットシーケンスからもう1つのランダムビットシーケンスへの交替の順序がランダムであること、および/または(ii)アクセスされた時に所与のランダムビットシーケンスから得られたビット数がランダムであることを意味する。例示的な実施形態では、マルチプレクサ36は、1つ以上のランダムビットシーケンスの選択されたビットからランダムな多重化順序を導出する。例えば、マルチプレクサ36は、以下のプロセスを実行することができる。
・stream1から1ビットを取り出す。ビット値が「0」の場合、stream2から2ビットを取り出し、stream3からの2ビットと連結し、stream4からの2ビットと連結し、stream1からの2ビットと連結する。ビット値が「1」の場合、stream3から2ビットを取り出し、stream1からの2ビットと連結し、stream2からの2ビットと連結し、stream4からの2ビットと連結する。
・stream2から1ビットを取り出す。ビット値が「0」の場合、stream1から2ビットを取り出し、stream3からの2ビットと連結し、stream4からの2ビットと連結し、stream2からの2ビットと連結する。ビット値が「1」の場合、stream3から2ビットを取り出し、stream2からの2ビットと連結し、stream4からの2ビットと連結し、stream1からの2ビットと連結する。
・stream3から1ビットを取り出し、同様の方法でプロセスを続行する。
【0031】
上述の例示的な多重化順序は、単に例として示されている。代替の実施形態では、マルチプレクサ36は、任意の他の適切な多重化順序、および例えば、1つ以上のDRNG32によって生成されたランダムビットシーケンスの選択されたビットから多重化順序を導出するための任意の他の適切なプロセスを用いることができる。
【0032】
図1に示されるように、RNG24およびその要素の構成は、単に概念を明確にするために描かれた例示的な構成である。代替の実施形態では、任意の他の適切な構成が用いられることができる。例えば、RNG24は、任意の他の適切な数のARNG28および任意の他の適切な数のDRNG32を含み得る。ARNGとDRNG間の相互接続スキーム(即ち、どのHFクロック信号およびどのLFクロック信号を各DRNGに提供するかの選択)も、任意の他の適切な方法で設定されることができる。さらに代替的に、HFクロックジェネレータ40およびLFクロックジェネレータ44は、必ずしも一緒に配置されたペアで配置される必要はない。より一般的には、HFクロックジェネレータ40の数は、LFクロックジェネレータ44の数と異なっていてもよい。
【0033】
いくつかの実施形態では、HFクロックジェネレータ40は、全てが同じ周波数を有するHFクロック信号を生成する。他の実施形態では、HFクロックジェネレータのうちの少なくとも2つは、互いに周波数が異なるHFクロック信号を生成する。同様に、いくつかの実施形態では、LFクロックジェネレータ44は、全てが同じ周波数を有するLFクロック信号を生成する。他の実施形態では、LFクロックジェネレータのうちの少なくとも2つは、互いに周波数が異なるLFクロック信号を生成する。
【0034】
いくつかの実施形態では、ランダム性を高めるために、HFクロックジェネレータ40のうちの少なくとも2つは、異なる時間にアクティブ化されるように構成される。追加的または代替的に、LFクロックジェネレータ44のうちの少なくとも2つは、異なる時間にアクティブ化されるように構成され得る。
【0035】
いくつかの実施形態では、全てのDRNG32内の全てのLFSR48は、同じシード(リセット値)に初期化される。もう1つの実施形態では、LFSRのうちの少なくとも2つ(場合によっては全てのLFSR)が異なるシードに初期化される。例示的な実施形態では、LFSR48は、互いに独立してそれぞれのランダムな値に初期化される。ランダムシードへの初期化は、例えば、ロジックのリセットなしでLFSRの1つ以上のFFを実行することによって実施され、これによりこれらのFFがリセット時に任意の値に設定されることができようになる。
【0036】
いくつかの実施形態では、全てのDRNG32内の全てのLFSR48は、同じフィードバックタップ構成(同じシーケンス生成多項式)を有する。もう1つの実施形態では、LFSR内の少なくとも2つ(場合によっては全てのLFSR)は、フィードバックタップ構成において互いに異なる。いくつかの実施形態では、全てのDRNG32内の全てのLFSR48は、同じ数のカスケードされたFFを有する。もう1つの実施形態では、少なくとも2つのLFSR(場合によっては全てのLFSR)は、カスケードされたFFの数が互いに異なる。
【0037】
さらにもう1つの実施形態では、DRNG32の少なくとも1つ(場合によっては全てのDRNGにおいて)において、LFSR48は完全に省略され得る。このようなDRNGでは、FF52は、LFクロック信号を用いて、HFクロック信号を直接サンプリングする。
【0038】
様々な実施形態において、RNG24およびその要素は、特定用途向け集積回路(Application-Specific Integrated Circuit;ASIC)またはフィールドプログラマブルゲートアレイ(Field-Programmable Gate Array;FPGA)などの任意の適切なハードウェアを用いて実装され得る。いくつかの実施形態では、RNG24の機能のいくつかは、本明細書で説明される機能を実行するようにソフトウェアにプログラムされた汎用プロセッサによって実行され得る。ソフトウェアは、例えば、ネットワークを介して電子形式でプロセッサにダウンロードされ得るか、あるいは、代替的または追加的に、磁気、光学、または電子メモリなどの非一時的な有形媒体に提供および/または保存され得る。
RNG方法の説明
【0039】
図2は、本発明の一実施形態による、IC20内のRNG24を用いた分散乱数生成の方法を概略的に示すフローチャートである。この方法は、HFクロック生成ステップ60で、複数のHFクロック信号を生成するHF自走クロックジェネレータ40から始まる。同時に、LF自走クロックジェネレータ44は、LFクロック生成ステップ64で、複数のノイズのあるLFクロック信号を生成する。
【0040】
選択ステップ68では、{HFクロック信号、LFクロック信号}の複数のペアが選択される(このステップは、主に例示的または暗示的なものである。-通常、選択は予め定義されている)。シーケンス生成ステップ72では、各DRNG32は、提供されている{HFクロック信号、LFクロック信号}のペアを用いて、それぞれのランダムビットシーケンスを生成する。所与のDRNGでは、HFクロック信号はLFSR48のクロッキングに用いられ、LFクロック信号はFF52のクロッキング(即ち、LFSR出力のサンプリング)に用いられる。
【0041】
多重化ステップ76では、マルチプレクサ36は、DRNG32によって生成されたランダムビットシーケンスを多重化し、多重化されたランダムビットシーケンスを出力する。上で説明したように、多重化の順序は決定論的であってもランダムであってもよい。
【0042】
上述の実施形態は、例として引用されており、本発明は、上述に具体的に開示および記載された内容に限定されないことに留意されたい。むしろ、本発明の範囲は、上述の様々な特徴のコンビネーションおよびサブコンビネーションの両方、ならびに前述の説明を読んで当業者が知るであろう、先行技術に開示されていないその変形および修正を含む。参照することにより本特許出願に組み込まれた文書は、組み込まれた文書の用語の定義が本明細書で明示的または暗黙的になされた定義と矛盾する場合を除いて、本出願の不可欠な部分と見なされ、本明細書の定義のみが考慮されるべきである。
【符号の説明】
【0043】
20 集積回路(IC)
24 分布乱数生成器(RNG)
28A、28B アナログRNG回路(ARNG)
32A~32D デジタルRNG回路(DRNG)
36 マルチプレクサ
40、44 自走クロックジェネレータ
48 線形フィードバックシフトレジスタ(LFSR)
52 サンプリングフリップフロップ(FF)
60、64、68、72、76 ステップ
図1
図2
【外国語明細書】