(57)【要約】      （修正有）【課題】コンピュータシステムのセキュリティを提供するためのシステムを提供する。【解決手段】システム１００は、複数のリングオシレータ１０２を含む。リングオシレータ１０２１〜１０２４は、それぞれ、リングオシレータの発振出力のインパルスをカウントするカウンタを装備する。制御回路１０１は、繰り返されるカウント期間にわたり、複数のカウンタを開始及び停止させる。選択部１０３は複数のリングオシレータからリングオシレータ群を選択する。相関特定部１０４は、リングオシレータ群の発振出力間の相関を特定する。通知生成部１０５は、相関が既定の閾値相関を上回るときに、リングオシレータ群、さらにそれにより複数のリングオシレータにおける干渉を示す通知を更に生成する。【選択図】図１
2019144536.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムのセキュリティを提供するためのシステムであって、
複数のリングオシレータと、一又は複数の論理回路とを備え、
前記複数のリングオシレータは、設計段階では同一であるものの製造段階では異なる発振周波数を有し、且つ前記複数のリングオシレータは、それぞれに対応する複数のカウンタであって、前記複数のリングオシレータの発振出力のインパルスをカウントするように構成される複数のカウンタを装備し、
前記一又は複数の論理回路は、少なくとも
繰り返されるカウント期間にわたって、前記それぞれに対応する複数のカウンタを開始させ、且つ前記それぞれに対応する複数のカウンタを停止させ、
前記複数のリングオシレータから、前記それぞれに対応する複数のカウンタのうち、それぞれに対応するカウンタ群を装備するリングオシレータ群を選択し、
前記繰り返されるカウント期間にわたって前記それぞれに対応するカウンタ群から得られるカウンタ値であって、前記リングオシレータ群のそれぞれのリングオシレータの発振周波数を示す前記カウンタ値に基づいて、前記リングオシレータ群の発振出力間の相関を特定し、且つ
前記相関が既定の閾値相関を上回るときに、前記リングオシレータ群、さらにそれにより前記複数のリングオシレータにおける干渉を示す通知を生成する
ように構成される、システム。
【請求項２】
前記リングオシレータ群はリングオシレータのペアであり、前記一又は複数の論理回路が前記リングオシレータ群を選択するように構成されることは、前記複数のリングオシレータから前記リングオシレータのペアを選択するように構成されることを含む、請求項１に記載のシステム。
【請求項３】
前記一又は複数の論理回路が前記リングオシレータ群を選択するように構成されることは、前記それぞれに対応する複数のカウンタからのカウンタ値をソートし、前記リングオシレータ群に装備される前記それぞれに対応するカウンタ群からの前記カウンタ値の類似性に基づいて前記リングオシレータ群を選択するように構成されることを含む、請求項１又は２に記載のシステム。
【請求項４】
前記一又は複数の論理回路が前記リングオシレータ群を選択するように構成されることは、前記それぞれに対応する複数のカウンタからの前記カウンタ値を、カウンタ値の類似性に基づいてカウンタ値の一又は複数のクラスタにクラスタリングし、前記一又は複数のクラスタのうち、前記リングオシレータ群が装備する前記それぞれに対応するカウンタ群からの前記カウンタ値を含むクラスタを選択するように構成されることを更に含む、請求項１から３のいずれか一項に記載のシステム。
【請求項５】
前記一又は複数の論理回路が前記リングオシレータ群の前記発振出力間の前記相関を特定するように構成されることは、前記それぞれに対応するカウンタ群からの前記カウンタ値の差を特定するように構成されることを含み、
前記一又は複数の論理回路が前記通知を生成するように構成されることは、前記それぞれに対応するカウンタ群からの前記カウンタ値の少なくとも既定の部分の間の前記差が既定の閾値差を下回り、前記相関が前記既定の閾値相関を上回ることを示すときに前記通知を生成するように構成されることを含む、請求項１から４のいずれか一項に記載のシステム。
【請求項６】
前記一又は複数の論理回路が前記相関を特定するように構成されることは、
前記それぞれに対応するカウンタ群からの前記カウンタ値に基づいて、前記リングオシレータ群についてのビット値のシーケンスであって、前記シーケンスの各ビット値は、前記それぞれに対応するカウンタ群からの前記カウンタ値のペアにおける前記差が前記既定の閾値差を上回るか又は下回るかを示す、ビット値のシーケンスを生成し、且つ
前記相関を示すフィルタ値を生成するために前記シーケンスにフィルタをかけるように構成されることを含む、請求項５に記載のシステム。
【請求項７】
前記一又は複数の論理回路が前記差を特定するように構成されることは、前記それぞれに対応するカウンタ群からの前記カウンタ値に対し、算術減算又は排他的論理和による演算を実施するように構成されることを含む、請求項５又は６に記載のシステム。
【請求項８】
前記一又は複数の論理回路が前記リングオシレータ群を選択するように構成されることは、前記複数のリングオシレータから複数のリングオシレータ群を選択するように構成されることを含み、
前記一又は複数の論理回路が前記相関を特定するように構成されることは、前記複数のリングオシレータ群の発振出力間の相関を特定するように構成されることを含み、
前記一又は複数の論理回路が前記通知を生成するように構成されることは、前記相関のうちいずれかが前記既定の閾値相関を上回るときに前記通知を生成するように構成されることを含む、請求項１から７のいずれか一項に記載のシステム。
【請求項９】
前記一又は複数の論理回路が前記通知を生成するように構成されることは、視覚的又は聴覚的な通知を生成するように、又は前記コンピュータシステムをシャットダウン若しくはリセットするように構成されることを含む、請求項１から８のいずれか一項に記載のシステム。
【請求項１０】
請求項１から９のいずれか一項に記載のシステムによって実行される、コンピュータシステムのセキュリティを提供するための方法であって、前記システムは、設計段階では同一であるものの製造段階では異なる発振周波数を有する複数のリングオシレータを備え、前記複数のリングオシレータは、それぞれに対応する複数のカウンタであって、前記複数のリングオシレータの発振出力のインパルスをカウントするように構成される複数のカウンタを装備し、前記方法は、
繰り返されるカウント期間にわたって、前記それぞれに対応する複数のカウンタを開始させ、且つ前記それぞれに対応する複数のカウンタを停止させることと、
前記複数のリングオシレータから、前記それぞれに対応する複数のカウンタのうち、それぞれに対応するカウンタ群を装備するリングオシレータ群を選択することと、
前記繰り返されるカウント期間にわたって、前記それぞれに対応するカウンタ群から得られるカウンタ値であって、前記リングオシレータ群のそれぞれのリングオシレータの発振周波数を示す前記カウンタ値に基づいて、前記リングオシレータ群の発振出力間の相関を特定することと、
前記相関が既定の閾値相関を上回るときに、前記リングオシレータ群、さらにそれにより前記複数のリングオシレータにおける干渉を示す通知を生成することとを含む、方法。
【請求項１１】
前記リングオシレータ群はリングオシレータのペアであり、前記リングオシレータ群を選択することは、前記複数のリングオシレータから前記リングオシレータのペアを選択することを含む、請求項１０に記載の方法。
【請求項１２】
前記リングオシレータ群を選択することは、前記それぞれに対応する複数のカウンタからのカウンタ値をソートし、前記リングオシレータ群に装備される前記それぞれに対応するカウンタ群からの前記カウンタ値の類似性に基づいて前記リングオシレータ群を選択することを含む、請求項１０又は１１に記載の方法。
【請求項１３】
前記リングオシレータ群を選択することは、前記それぞれに対応する複数のカウンタからの前記カウンタ値を、カウンタ値の類似性に基づいてカウンタ値の一又は複数のクラスタにクラスタリングし、前記一又は複数のクラスタのうち、前記リングオシレータ群が装備する前記それぞれに対応するカウンタ群からの前記カウンタ値を含むクラスタを選択することを更に含む、請求項１０から１２のいずれか一項に記載の方法。
【請求項１４】
前記リングオシレータ群の前記発振出力間の前記相関を特定することは、前記それぞれに対応するカウンタ群からの前記カウンタ値の差を特定することを含み、
前記通知を生成することは、前記それぞれに対応するカウンタ群からの前記カウンタ値の少なくとも既定の部分の間の前記差が既定の閾値差を下回り、前記相関が前記既定の閾値相関を上回ることを示すときに前記通知を生成することを含む、請求項１０から１３のいずれか一項に記載の方法。
【請求項１５】
前記相関を特定することは、
前記それぞれに対応するカウンタ群からの前記カウンタ値に基づいて、前記リングオシレータ群についてのビット値のシーケンスであって、前記シーケンスの各ビット値は、前記それぞれに対応するカウンタ群からの前記カウンタ値のペアにおける前記差が前記既定の閾値差を上回るか又は下回るかを示す、ビット値のシーケンスを生成することと、
前記相関を示すフィルタ値を生成するために前記シーケンスにフィルタをかけることと
を含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概してコンピュータシステムのセキュリティを提供することに関し、具体的には、干渉検出リングオシレータを用いてコンピュータシステムのセキュリティを提供することに関する。
【背景技術】
【０００２】
集積回路の一部の電子コンポーネントは、当該集積回路で生成される干渉又は外部から投じられる干渉の影響を受けやすい。リングオシレータは、このような干渉を受けやすい回路である。リングオシレータは、情報セキュリティで使用される真の乱数を生成するためのエントロピー源として使用されうる。しかしながら、エントロピー源として使用されるリングオシレータが干渉信号に同期された場合、リングオシレータの位相ドリフトのランダム性が破壊される。したがって、未承認の第三者が、干渉を制御又は測定することによって位相ドリフトを知り、リングオシレータによって生成された真の乱数を再作成することで、情報セキュリティが損なわれる可能性がある。
【０００３】
リングオシレータにおける干渉の受けやすさを低減するための既存の解決策は、シールドやフィルタといった物理的な保護を使用することである。既存の別の解決策は、干渉を受けにくい論理ゲートを使用することである。しかしながら、既存の解決策は、費用がかかり、脆弱で、速度が遅く、且つ評価又は設計が困難である。
【０００４】
したがって、上述の問題点の少なくとも一部、及び起こり得る他の問題点を考慮に入れたシステム及び方法を有することが望ましいであろう。
【発明の概要】
【０００５】
本開示の例示的な実装形態は、干渉検出リングオシレータを用いてコンピュータシステムのセキュリティを提供することを対象とする。既存の解決策と異なり、例示的な実装形態は、リングオシレータの発振信号間のあらゆる強い相関を検出するために複数のリングオシレータを採用することによって、干渉を検出する。例示的な実装形態によれば、干渉によって情報セキュリティが損なわれる前に、当該干渉を検出することができる。
【０００６】
本開示は、下記の例示的な実装形態を含むが、それらに限定されるわけではない。
【０００７】
いくつかの例示的な実装形態は、コンピュータシステムのセキュリティを提供するためのシステムによって実行される方法を提供する。システムは、設計段階では同一であるものの製造段階では異なる発振周波数を有する複数のリングオシレータを備え、複数のリングオシレータは、それぞれに対応する複数のカウンタであって、複数のリングオシレータの発振出力のインパルスをカウントするように構成される複数のカウンタを装備する。方法は、繰り返されるカウント期間にわたって、それぞれに対応する複数のカウンタを開始させ、且つそれぞれに対応する複数のカウンタを停止させることと、複数のリングオシレータから、それぞれに対応する複数のカウンタのうち、それぞれに対応するカウンタ群を装備するリングオシレータ群を選択することと、繰り返されるカウント期間にわたって、それぞれに対応するカウンタ群から得られるカウンタ値であって、リングオシレータ群のそれぞれのリングオシレータの発振周波数を示すカウンタ値に基づいて、リングオシレータ群の発振出力間の相関を特定することと、
相関が既定の閾値相関を上回るときに、リングオシレータ群、さらにそれにより複数のリングオシレータにおける干渉を示す通知を生成することとを含む。
【０００８】
前述のいずれかの例示的な実装形態、又は前述の例示的な実装形態の任意の組み合わせの方法のいくつかの実装形態において、リングオシレータの群はリングオシレータのペアであり、リングオシレータ群を選択することは、複数のリングオシレータからリングオシレータのペアを選択することを含む。
【０００９】
前述のいずれかの例示的な実装形態、又は前述の例示的な実装形態の任意の組み合わせの方法のいくつかの実装形態において、リングオシレータ群を選択することは、それぞれに対応する複数のカウンタからのカウンタ値をソートし、リングオシレータ群に装備される、それぞれに対応するカウンタ群からのカウンタ値の類似性に基づいてリングオシレータ群を選択することを含む。
【００１０】
前述のいずれかの例示的な実装形態、又は前述の例示的な実装形態の任意の組み合わせの方法のいくつかの実装形態において、リングオシレータ群を選択することは、それぞれに対応する複数のカウンタからのカウンタ値を、カウンタ値の類似性に基づいてカウンタ値の一又は複数のクラスタにクラスタリングし、一又は複数のクラスタのうち、リングオシレータ群が装備する、それぞれに対応するカウンタ群からのカウンタ値を含むクラスタを選択することを更に含む。
【００１１】
前述のいずれかの例示的な実装形態、又は前述の例示的な実装形態の任意の組み合わせの方法のいくつかの実装形態において、リングオシレータ群の発振出力間の相関を特定することは、それぞれに対応するカウンタ群からのカウンタ値の差（例えば、繰り返し再開されるカウンタ値の差のシーケンス）を特定することを含み、通知を生成することは、それぞれに対応するカウンタ群からの、例えば当該シーケンス中のカウンタ値の少なくとも既定の部分の差が既定の閾値差を下回り、相関が既定の閾値相関を上回ることが示されたときに通知を生成することを示す。
【００１２】
前述のいずれかの例示的な実装形態、又は前述の例示的な実装形態の任意の組み合わせの方法のいくつかの実装形態において、相関を特定することは、それぞれに対応するカウンタ群（例えば、周期的に再開されるカウンタ）からのカウンタ値に基づいて、リングオシレータ群についてのビット値のシーケンスであって、シーケンスの各ビット値は、それぞれに対応するカウンタ群からのカウンタ値のペアにおける差が既定の閾値差を上回るか又は下回るかを示す、ビット値のシーケンスを生成することと、相関を示すフィルタ値を生成するためにシーケンスにフィルタをかけることとを含む。
【００１３】
前述のいずれかの例示的な実装形態、又は前述の例示的な実装形態の任意の組み合わせの方法のいくつかの実装形態において、差を特定することは、それぞれに対応するカウンタ群からのカウンタ値に対して算術減算又は排他的論理和による演算を実施することを含む。
【００１４】
前述のいずれかの例示的な実装形態、又は前述の例示的な実装形態の任意の組み合わせの方法のいくつかの実装形態において、リングオシレータ群を選択することは、複数のリングオシレータから複数のリングオシレータ群を選択することを含み、相関を特定することは、複数のリングオシレータ群の発振出力間の相関を特定し、通知を生成することは、相関のうちいずれかが既定の閾値相関を上回るときに通知を生成することを含む。
【００１５】
前述のいずれかの例示的な実装形態、又は前述の例示的な実装形態の任意の組み合わせの方法のいくつかの実装形態において、通知を生成することは、視覚的又は聴覚的な通知を生成すること、及びコンピュータシステムをシャットダウン若しくはリセットすることのうち少なくとも１つを含む。
【００１６】
いくつかの例示的な実装形態は、コンピュータシステムのセキュリティを提供するためのシステムを提供し、システムは、任意の例示的な実装形態の方法、又は先行する例示的な実装形態の方法を少なくとも実施するように構成される一又は複数の論理回路を備える。
【００１７】
本開示の上記の特徴、態様、及び利点、及びその他の特徴、態様、及び利点は、下記の詳細な説明と共に、以下で簡単に説明する添付図面を参照することで明らかになろう。本開示は、本明細書に記載の特定の例示的な実装形態において、この開示内に明記する２つ、３つ、４つ、又は更に多くの特徴又は要素が明示的に組み合わされているか、若しくは列挙されているかにかかわらず、かかる特徴又は要素の任意の組み合わせを含む。本開示は、本開示の文脈において明確に記述しない限り、切り離すことが可能な本開示のあらゆる特徴又は要素が、その態様及び例示的な実装形態のいずれにおいても組合せ可能であると見なされるように、全体論的に読むべきものである。
【００１８】
ゆえに、この「発明の概要」は、本開示のいくつかの態様の基本的な理解を提供するために、いくつかの例示的な実装形態を要約することのみを目的に提供されていることが、理解されよう。したがって、上述の例示的な実装形態は単なる例であり、いかなる意味においても、本開示の範囲又は趣旨を狭めると解釈すべきではないことが理解されよう。その他の例示的な実装形態、態様、及び利点は、添付図面と併せて下記の詳細な説明を参照することにより明らかになろう。添付図面は、記載されているいくつかの例示的な実装形態の原理を例として示すものである。
【００１９】
上記のように本開示の例示的な実装形態を大まかに説明したが、以下では添付図面を参照する。図面は必ずしも正寸で描かれているわけではない。
【図面の簡単な説明】
【００２０】
【図１】本開示の例示的な実装形態に係る、コンピュータシステムのセキュリティを提供するためのシステムを示す。
【図２】様々な例示的な実装形態に係るシステムのリングオシレータを示す。
【図３】様々な例示的な実装形態に係る、複数のリングオシレータについてのカウンタ値のソーティングネットワークの図である。
【図４】様々な例示的な実装形態に係る、コンピュータシステムのセキュリティを提供するための方法の様々なステップを示すフローチャートである。
【発明を実施するための形態】
【００２１】
本開示のいくつかの実装形態を、添付図面を参照してこれより以下で更に詳しく説明するが、添付図面は、本開示の実装形態の全てではなく一部を示すものである。実際、本開示の様々な実装形態は、多くの異なる形態で具現化されてよく、本明細書に明記されている実装形態に限定されると解釈すべきではない。むしろ、これらの例示的な実装形態は、本開示が包括的且つ完全なものになるように、且つ、当業者に本開示の範囲が十分に伝わるように、提供されている。例えば、特に明記しない限り、何かが「第１の」、「第２の」等のものであるという表現は、特定の順番を示すと解釈すべきではない。 また、（特に明記しない限り）何か別のものの上にあると記載されるものは、その代わりに下にあることもあり、逆もまた然りである。同様に、何か別の物の左にあると記載されるものは、その代わりに右にあることもあり、逆もまた然りである。全体を通して、類似の参照番号は類似の要素を表している。
【００２２】
本開示の例示的な実装形態は、概してコンピュータシステムのセキュリティを提供することを対象とし、具体的には干渉検出リングオシレータを用いてコンピュータシステムのセキュリティを提供することを対象とする。
【００２３】
図１は、本開示の例示的な実装形態に係るコンピュータシステム１１０のセキュリティを提供するためのシステム１００を示す。コンピュータシステムは、図示のようなシステムを含みうる。例えば、コンピュータシステムはシステムを装備しうる。別の実施例では、コンピュータシステム及びシステムは、２つの別個のシステムであってよい。
【００２４】
システム１００は任意の数のコンポーネント、ユニットなど（概して「コンポーネント」と称する）の各々の一又は複数を含んでいてよく、そのうち少なくとも一部は、多重化装置、レジスタ、演算論理装置、メモリ、マイクロプロセッサなどの論理回路を含みうるか、又は論理回路を用いて実装されうる。システムは、任意の数の異なる用途のうちの任意の用途向けに設計可能であり、システムに干渉検出能を提供し、コンピュータシステム１１０のセキュリティを提供するための特定の利用可能性を有しうる。
【００２５】
コンピュータシステム１１０は、プロセッサと、プロセッサに結合されたコンピュータ可読記憶媒体又はメモリとを含んでいてよく、プロセッサはメモリ内に保存される一又は複数のコンピュータプログラムを含むコンピュータ可読プログラムコードを実行するように構成される。一又は複数の機能、及び機能の組み合わせは、特殊用途電子ハードウェアに基づくシステム及び／又は特定の機能を実施するプロセッサ、又は特殊用途ハードウェアとプログラムコード命令との組み合わせによって実装されうることも、理解されよう。
【００２６】
いくつかの実施例では、図示のように、システム１００は制御論理１０１と、少なくとも２つの、複数のリングオシレータ１０２、すなわちリングオシレータ１０２１〜１０２４とを含む。リングオシレータは、設計段階では同一であるものの製造段階では異なる発振周波数を有する。許容誤差内での製造上のばらつきによって、同一に設計されたリングオシレータ同士は、わずかに異なるものとなる。このようなランダムな差異は、予期又は複製することができず、またリングオシレータを異なる周波数で発振させることとなり、温度や供給電圧にばらつきが生じる場合がある。以下の図２に示すように、複数のリングオシレータは、それぞれに対応する複数のカウンタであって、複数のリングオシレータの発振出力のインパルスをカウントするように構成される複数のカウンタを装備する。
【００２７】
いくつかの実施例では、制御論理１０１は、複数のリングオシレータそれぞれを開始させるように構成される。他の実施例では、リングオシレータは継続的に作動し、制御論理１０１は、複数のリングオシレータ１０２、すなわちリングオシレータ１０２１〜１０２４の周波数を測定するために、繰り返されるカウント期間にわたって複数のカウンタをリセット及び開始させ、且つ複数のカウンタを停止させるように構成される。例えば、カウンタは、繰り返されるカウント期間にわたってリングオシレータの発振期間をカウントすることにより、周波数を測定することができる。
【００２８】
いくつかの実施例では、システム１００の選択部１０３は、複数のリングオシレータ１０２からリングオシレータ群を選択するように構成される。リングオシレータ群は、複数のカウンタのうち、それぞれに対応するカウンタ群を装備する。選択部は、選択されたリングオシレータ群の情報をシステムの相関特定部１０４に提供しうる。
【００２９】
いくつかの実施例では、相関特定部１０４は、リングオシレータ群の発振出力間の相関を特定するように構成される。相関は、繰り返されるカウント期間にわたってカウンタ群から得られるカウンタ値に基づいて特定される。カウンタ値は、リングオシレータ群のリングオシレータそれぞれの発振周波数を示す。相関特定部は、特定された相関をシステムの通知生成部１０５に提供しうる。
【００３０】
いくつかの実施例では、通知生成部１０５は、相関が既定の閾値相関を上回る場合に、当該リングオシレータ群、さらにそれにより複数のリングオシレータ１０２における干渉を示す通知を生成するように構成される。
【００３１】
いくつかの実施例では、リングオシレータ群はリングオシレータのペアであり、選択部１０３は、複数のリングオシレータ１０２から当該リングオシレータのペアを選択するように構成される。例えば、選択部は、２つのリングオシレータ１０２１及び１０２２を含む群を選択しうる。他の実施例では、選択されたリングオシレータ群は、異なる数のリングオシレータ、例えば３つ又は４つのリングオシレータを含んでいてもよい。
【００３２】
いくつかの実施例では、選択部１０３は、複数のカウンタのカウンタ値のシーケンスから第１のカウンタ値をソートするように構成される。例えば、選択部は、以下の図３に示すソーティングネットワークに基づいてカウンタ値をソートしうる。選択部はまた、リングオシレータ群に装備されるカウンタ群からのカウンタ値の類似性に基づいて、リングオシレータ群を選択するように構成される。例えば、選択部は、２つのリングオシレータの第１のカウンタ値同士が近い場合（例えば、カウンタ値の差が１％未満である場合）に、２つのリングオシレータ１０２１及び１０２２を選択しうる。
【００３３】
いくつかの実施例では、選択部１０３は、複数のカウンタからの第１のカウンタ値を、当該第１のカウンタ値の類似性に基づいて一又は複数のカウンタ値クラスタにクラスタリングするように構成される。例えば、選択部は、リングオシレータ１０２１及び１０２２を１つのクラスタにクラスタリングし、リングオシレータ１０２３及び１０２４を別のクラスタにクラスタリングしうる。選択部はまた、一又は複数のクラスタのうち、リングオシレータ群に装備されるカウンタ群からのカウンタ値を含むクラスタを選択するように構成される。
【００３４】
いくつかの実施例では、相関特定部１０４は、カウンタ群からのカウンタ値の差（例えば、繰り返し再開されるカウンタ値の差のシーケンス）を特定するように構成される。通知生成部１０５は、カウンタ群からの、例えばシーケンス中のカウンタ値のうち少なくとも既定の一部の差が既定の閾値差を下回るとき、すなわち相関が既定の閾値相関を上回ることが示されたときに、通知を生成するように構成される。すなわち、カウンタのシーケンスにおいて、カウンタ群からの値の少なくとも既定の一部の差が既定の閾値差を下回るとき、これは相関が既定の閾値相関を上回ることを示す。
【００３５】
いくつかの実施例では、相関特定部１０４は、周期的に又は繰り返して再開される、カウンタ群から得られるカウンタ値に基づき、リングオシレータ群についてビット値のシーケンスを生成するように構成される。シーケンスの各ビット値は、カウンタ群から得られる、対応するカウンタ値のペアにおける差が既定の閾値差を上回るか又は下回るかを示す。相関特定部はまた、シーケンスにデジタルフィルタ（例えば、ＦＩＲフィルタ又はＩＩＲフィルタ）をかけて、相関を示すフィルタ値を生成するように構成される。いくつかの実施例では、相関特定部は、カウンタ群からのカウンタ値に対して、排他的論理和（ＸＯＲ）による演算を実施するように構成される。他の実施例では、相関特定部は、最も大きいカウンタ値からの算術差（算術減算値）を計算するように構成される。
【００３６】
いくつかの実施例では、選択部１０３は、複数のリングオシレータから複数のリングオシレータ群を選択するように構成される。例えば、選択部は２つの群を選択しうる。２つの群のうち、一方はリングオシレータ１０２１及び１０２２を含み、他方の群はリングオシレータ１０２３及び１０２４を含む。これらの実施例では、相関特定部１０４は、複数のリングオシレータ群の発振出力間の相関を特定するように構成される。通知生成部１０５は、相関のうちいずれかが既定の閾値相関を上回る場合に通知を生成するように構成される。
【００３７】
いくつかの実施例では、通知生成部１０５は、視覚的若しくは聴覚的な通知を生成するか、又はコンピュータシステム１１０をシャットダウン若しくはリセットさせるように構成される。例えば、通知生成部は、コンピュータシステムの操作者に対して警報又は警告を送信しうる。通知生成部はまた、コンピュータシステムをリセットまたはシャットダウンしてもよい。
【００３８】
図２は、様々な例示的な実装形態に係る、システム１００のリングオシレータ２００を示す。いくつかの実施例では、リングオシレータ２００は、図１で説明したシステム１００のリングオシレータ１０２１〜１０２４のうち任意の１つであってよい。リングオシレータは、制御論理１０１によって駆動されるイネーブル入力を有するように構成される。
【００３９】
一実施例では、リングオシレータ２００は複数の論理ゲートを含むことができ、このうち奇数個の論理ゲートは、当該論理ゲートの、直前の論理ゲートの出力に接続された入力を反転させ、その全ては環状構成で接続され、例えばインバータ２０１〜２０４及び否定論理積（ＮＡＮＤ）ゲートとして図２に示されている。複数のインバータのうち最初のインバータ、例えばインバータ２０１は入力を受け、環状構成における次のインバータ、例えばインバータ２０２への入力としての出力（入力の論理否定）を生成する。複数のインバータのうち最後のインバータを除いた各々の出力は、複数のインバータのうち次のインバータのための入力として使用される。複数のインバータのうち最後のインバータ、例えばインバータ２０４の出力は、複数のインバータのうち最初のインバータ、例えばインバータ２０１にフィードバックされ、当該最初のインバータのための入力として使用される。
【００４０】
いくつかの実施例では、リングオシレータ２００はリングオシレータの発振出力のインパルスをカウントするように構成されるカウンタ２０５を装備する。例えば、図２に示すように、複数のインバータのうち最後のインバータ、例えばインバータ２０４の出力はカウンタに送信される。カウンタは、一又は複数の既定のカウント期間における発振期間をカウントすることにより、カウンタ値を生成する。カウンタ値は、リングオシレータ２００の発振周波数を示す。
【００４１】
リングオシレータ２００は、回路のノイズによって、発振周波数の変動に顕現する位相ドリフトを生じさせることから、情報のセキュリティに使用される真の乱数を生成するためのエントロピー源として用いることができる。しかしながら、一実施例では、強い干渉信号がノイズとしてリングオシレータに影響を及ぼしうる。干渉はランダムでない場合がある。リングオシレータの真のランダムノイズの効果は、強い干渉信号によって抑制され、リングオシレータにより生成されたエントロピーの全て又は大部分が破壊される場合がある。強い干渉信号は、スイッチング電源、ブラウン管（ＣＲＴｓ）、レーダー、ソナーなどのコンピューティングシステムの動作環境における装置に起因するものでありうる。
【００４２】
別の実施例では、未承認の第三者が、強い干渉信号を用いてリングオシレータ２００を攻撃し、リングオシレータのノイズのランダム効果を抑制する可能性がある。干渉信号は、標準的な統計的検定では真のランダムノイズと区別することができない非ランダム位相ドリフトにつながる疑似ランダム位相ジッタを含みうる。干渉信号は、外部から測定可能な真のランダム位相ジッタを有している可能性さえある。未承認の第三者は、攻撃下にあるリングオシレータの位相ジッタを当該第三者が知ることができるように、干渉信号を用いてリングオシレータを攻撃しうる。攻撃によって内部回路の真のランダムノイズの効果が抑制され、未承認の第三者は、リングオシレータにより生成されたエントロピー値を知ることができる。エントロピー値が、コンピュータシステム１１０で使用されるキーの生成、キーの合意プロトコル、又は他のシークレットナンバー又は予測不能ナンバーに使用されている場合、コンピュータシステムのセキュリティが失われる。
【００４３】
更なる実施例では、未承認の第三者が、強い干渉信号を用いて、リング状構成を用いる物理複製困難関数（ｐｈｙｓｉｃａｌ ｕｎｃｌｏｎａｂｌｅ ｆｕｎｃｔｉｏｎ、ＰＵＦ）装置を攻撃する可能性がある。ＰＵＦ装置は、複数のリングオシレータ２００を含むことができ、複数のリングオシレータのペア間で周波数比較を実施することにより、コンピュータシステム１１０で使用されるルートキーのコンポーネント又はチップＩＤを生成しうる。未承認の第三者は、強い干渉信号を用いて、ＰＵＦ装置の複数のリングオシレータのうち一又は複数を同期させ、当該リングオシレータの周波数を強い干渉信号の周波数と等しいものにする。本実施例では、ＰＵＦ装置でのいくつかの周波数比較の結果が変化し、不正確なチップＩＤ又はルートキーが算出される場合がある。
【００４４】
一実施例では、未承認の第三者は、ＰＵＦ装置の特定の個別のリングオシレータ２００又はリングオシレータ群に対し強制的にその周波数を変更させうる。例えば、未承認の第三者は、その発振周波数で干渉信号を標的のリングオシレータに投じうる。この特定のリングオシレータは、干渉下で起動すると、この干渉信号にロック（固定）される。この時点で、未承認の第三者は、より高い周波数又はより低い周波数に干渉信号を徐々にチューニングすることができ、標的のリングオシレータがこれに従う。ＰＵＦ装置内の他のリングオシレータは、干渉信号の周波数に従わないか、或いは当該周波数にロックされない場合もある。このように、ＰＵＦ装置の周波数比較の結果は変更され、ＰＵＦ装置の異常状態が監視及びマッピングされうる。ＰＵＦ装置に不具合を生じさせるようにオフセットされた最も小さい周波数までチューニングすることにより、単一の周波数比較を標的とすることができる。
【００４５】
一実施例では、特定のリングオシレータ２００又はリングオシレータ群の周波数の変化がコンピュータシステム１１０の起動を妨げる場合、未承認の第三者は、攻撃を受けた周波数を有するリングオシレータがＰＵＦ計算に使用されることを知ることができ、当該周波数の変化によって正常な結果から逸脱させるいくつかの比較が引き起こされる。異なるリングオシレータが攻撃される場合、未承認の第三者は、コンピュータシステムの起動挙動を監視することによって、ＰＵＦ値の全てを知るのに十分な情報を取得するか、又は、しらみつぶし探索（ｅｘｈａｕｓｔｉｖｅ ｓｅａｒｃｈ）によって真のＰＵＦ値が明らかとなりうるようにＰＵＦ値のエントロピーを少なくとも低下させることができる。上記のような干渉の投入／チューニングにより、チップＩＤ又はルートキーへの直接攻撃が実現可能なものとなる。ゆえに、このような干渉を検出することが、コンピュータシステムのセキュリティにとって重要である。
【００４６】
いくつかの実施例では、システム１００は、干渉検出のために複数のリングオシレータ１０２を採用する。複数のリングオシレータの各々は、図２に示すようなリングオシレータ２００であってよい。複数のリングオシレータは、それぞれに対応する複数のカウンタ２０５であって、所定の持続時間における複数のリングオシレータの発振出力のインパルスをカウントするように構成される複数のカウンタ２０５を装備する。制御論理１０１は、いくつかの実施例では、複数のリングオシレータそれぞれを開始させるように構成され、他の実施例では、複数のリングオシレータの周波数を測定するために、繰り返されるカウント期間にわたってカウンタをリセットして開始させ、且つ複数のカウンタを停止さするように構成される。一実施例では、カウンタは、一定期間作動させられ、対応する期間における複数のリングオシレータの平均周波数を測定する。別の実施例では、カウンタは、発振期間の持続時間を測定し、リングオシレータの期間の間の高周波クロックシグナルのパルスをカウントするように構成される。カウンタは、周波数の差を検出するための十分な分解能をもたらすため、実際は１４…３２ビット幅でありうる。例えば、１６ビットのカウンタは良好な分解能を提供しうる。
【００４７】
いくつかの実施例では、複数のリングオシレータ１０２は、設計段階では同一であるものの、製造段階では異なる発振周波数を有する。一実施例では、同一に設計されるリングオシレータの発振周波数には、特定の環境において、温度及び供給電圧に応じて１６％のばらつきが生じうる。同一に設計されるリングオシレータの温度及び電圧特性もまた異なる場合がある。選択された２つのリングオシレータのカウンタ値は、周波数の差が特定の環境では１％以下と小さいが、他の環境では大きくなる場合がある（最大１６％）ことを示しうる。
【００４８】
一実施例では、システム１００は、多数のリングオシレータ（例えば、１６個）を採用し、当該リングオシレータの特定のペアの間の相関が計算される。製造許容誤差により発振周波数に１６％の変動が生じる場合、システム１００は少なくともｎ＝１６個のリングオシレータを実装する。このように、あらゆる温度／電圧作動点において、十分に近い発振周波数（１％以内の差）を有するリングオシレータのペアが存在する。当該ペアの発振周波数は、温度及び供給電圧に伴い変化する。本実施例では、干渉信号は、当該ペアの２つのリングオシレータ両方に対して同様に影響を及しうる。製造許容誤差がより大きい場合、より多くのリングオシレータが必要とされうる。製造許容誤差がより小さい場合、より少ないリングオシレータが必要とされうる。
【００４９】
いくつかの実施例では、選択部１０３は、複数のリングオシレータ１０２（例えば、１６個のリングオシレータ２００）からリングオシレータの群（例えば、ペア）を選択するように構成される。リングオシレータ群は、複数のカウンタのうち、それぞれに対応するカウンタ群２０５を装備する。一実施例では、システム１００が１６個のリングオシレータを採用する場合、相関が計算されるペアは１６＊１５／２＝１２０個であり、多くの計算を要する。計算を減らすため、いくつかの実施例では、選択部１０３は、複数のカウンタからの第１のカウンタ値をソートし、リングオシレータ群に装備されるカウンタ群からのカウンタ値の類似性に基づいて、リングオシレータ群を選択するように構成される。
【００５０】
一実施例では、リングオシレータの現在の周波数（カウンタ値）がまずソートされ、相関特定部１０４によって、周波数が類似した隣接するもの同士の相関のみが算出される。本実施例では、相関特定部は、ソートしたときに互いに隣り合う値を有する１５個のカウンタシーケンス間の相関のみを算出してもよい。また、通知生成部１０５は、１５個のカウンタシーケンスの差の値が小さいものがあまりにも多いか否かのみをチェックしてもよい。
【００５１】
一実施例では、１６個のカウンタ値のソートは、およそ１６・ｌｎ（１６）≒４４．３６の比較、すなわち少なくとも４５の比較を用いて実施されうる。別の実施例では、ソーティングアルゴリズム又はソーティングネットワークを使用してもよく、これらは、例えば図３に示すバッチャー（Ｂａｔｃｈｅｒ）のＭｅｒｇｅ−Ｅｘｃｈａｎｇｅを用いて、１６個のリングオシレータが１０組の並列比較でソートすることができる。
【００５２】
図３は、様々な例示的な実装形態に係る複数のリングオシレータのカウンタ値のためのソーティングネットワークの図３００を示す。一実施例では、図の１６行（０〜１５）は、１６個のリングオシレータのカウンタ値、すなわち入力数が最初にロードされたレジスタに対応する。カウンタ値の各比較（縦方向の矢印で示す）の後に、レジスタ内容の潜在的スワップ（ｐｏｔｅｎｔｉａｌ  ｓｗａｐ）が行われ、図の最上部に近い方のレジスタが、比較した２つの数のうち小さい方の値を得る。例えば、縦方向の最初の矢印は、レジスタ０とレジスタ８との間でのレジスタ内容の比較及び潜在的スワップを示す。他の比較器が行ったことについて知る比較器は存在しないため、比較器の配列のみが、入力がソートされることを保証しうる。高速マージソートまたはヒープソートアルゴリズムなど、より複雑なアルゴリズムを必要とする条件付きアクションは存在しない。このソーティングネットワークには、１０個のクロックサイクルで実行されるか、又は非同期論理を用いた場合にはより高速に実行される１０個の並列演算に分類される６３個の比較器が存在する。
【００５３】
一実施例では、上記のソートステップを実施した後には、互いに隣接するレジスタに保存された少なくとも２つの非常に近いカウンタ値が得られる。最大周波数偏差が１６％であり、１６個のリングオシレータが実装される場合、カウンタ値の最小の差は、多くとも１％である。予想カウンタ値がおよそ１００００の場合、最も近いカウンタ値同士の差はおよそ１００である（１６ビットカウンタは、２１６＝６５５３６までの値を含みうる）。
【００５４】
いくつかの実施例では、選択部１０３は、カウンタ値の類似性に基づいて、複数のカウンタから得られるカウンタ値を、カウンタ値の一又は複数のクラスタにクラスタリングするように構成される。選択部はまた、一又は複数のクラスタのうち、リングオシレータ群に装備されるカウンタ群からのカウンタ値を含むクラスタを選択するように構成される。例えば、ソート後のリストにおいて互いに隣り合うカウンタ値のシーケンスがクラスタリングされうる。選択部は、互いに近いカウンタ値（例えば、差が１％未満）のクラスタを見つけることができ、これは較正時間になされうる。別の実施例では、選択部は、十分に異なる差、例えば少なくとも１％の差の中央値を有するクラスタのみを維持することができ、これも較正時間において行われうる。選択部は、各クラスタから代表的なカウンタの群（例えば、ペア）を選びうる。相関特定部１０４は、十分に離れたクラスタにおけるカウンタ値の相関を計算しうる。
【００５５】
一実施例では、選択部１０３は、２つのリングオシレータ、例えばリングオシレータ１０２１及び１０２２のペアを選択する。２つのリングオシレータの信号の位相ドリフトが独立ランダムな関係ではなく相関関係となった場合、当該相関は、これら２つのリングオシレータに影響を及ぼす強い干渉が存在することを示しうる。この場合、通知生成部１０５は、コンピュータシステム１１０の操作者に警告又は警報を発しうる。通知生成部はまた、コンピュータシステムのセキュリティポリシーにしたがい、セキュアでない操作を防止するためにコンピュータシステムをシャットダウンするか、又はエラー状態にしてもよい。
【００５６】
一実施例では、リングオシレータ２００の発振信号の位相ドリフトは、繰り返されるカウント期間にわたって発振パルスをカウントすることにより特徴づけられうる。カウント期間の各々は、予め設定された同一の持続時間を有しうる。２つのリングオシレータの選択されたペアについて、対応するカウンタ値のシーケンスは、ランダムノイズ及び干渉により引き起こされる位相ドリフトに影響を受ける。干渉がない状態では、２つのリングオシレータのカウンタ値のシーケンス間の相関は低い。両方のオシレータが同一の干渉に影響を受けている場合、相関は大きくなる。
【００５７】
一実施例では、相関特定部１０４は、２つのリングオシレータの信号間の相関を、当該リングオシレータのカウンタ値シーケンスの差をとることによって特定しうる。相関特定部は、結果として得られるシーケンスの統計的分布を特定しうる。予想分布からの異常なずれ（例えば、０又は非常に小さい値が多すぎること）は、干渉を示す。一実施例では、相関特定部は、カウンタのペアから得られるカウンタ値の差が小さい値である発生頻度をカウントするカウンタを含む。小さい値である割合が既定の部分（例えば、２０％）を超える場合、干渉が検出される。
【００５８】
一実施例では、相関特定部１０４は、ビット値のシーケンス（ビットシーケンス）を処理することにより、小さい差をカウントしうる。いくつかの実施例では、ビットシーケンスは、カウンタ２０５の群又はペアから得られるカウンタ値に基づいて生成される。シーケンスの各ビット値は、カウンタ群から得られるカウンタ値のペアにおける差が既定の閾値差を上回るか下回るかを示す。例えば、相関特定部は、ビットシーケンスを生成するためにリングオシレータのペアの２つのカウンタ値シーケンスに対してＸＯＲ演算を実施する。ビットシーケンスにおいて、ビット０は小さい差（例えば、既定の閾値差を下回る差）を示し、ビット１は大きい差（例えば、既定の閾値差以上）を示す。別の実施例では、小さい差の値が経験的に設定されうる（例えば、差の予想値の１０％未満）。
【００５９】
一実施例では、相関特定部１０４は、あるカウント期間にわたり、ビットシーケンスの固定長における０の数をカウントすることにより、小さい差をカウントしうる。次のカウント期間において相関レベルを続けて計算するために、相関特定部は次のビットシーケンスの生成を再開しうる。別の実施例では、相関特定部は、スライディングウィンドウ及び移動平均フィルタを継続的にビットシーケンスにかけてもよい。フィルタは、ビットシーケンスに非均一な重み付けを行う一般的な有限インパルス応答（ＦＩＲ）フィルタであってよい。ＦＩＲフィルタの現在の値が、相関レベルを表す。別の実施例では、相関特定部は、無限インパルス応答（ＩＩＲ）ローパスフィルタを継続的にビットシーケンスにかけてもよく、ここでＩＩＲフィルタの現在のフィルタ値が相関レベルを表す。ＩＩＲフィルタは、漸化式：ｙｎ＝αｘｎ＋（１−α）ｙｎ−１によって定義される指数移動平均フィルタであってよく、ここでｘｎはビットシーケンスの現在の要素であり、ｙｎは現在のフィルタ値である。
【００６０】
いくつかの実施例では、２つのリングオシレータの信号間の相関が既定の閾値相関を上回る場合、干渉が検出される。カウンタ群から得られるカウンタ値のうち少なくとも既定の一部の値の差が既定の閾値差を下回る場合、これは相関が既定の閾値相関を上回ることを示す。例えば、カウンタ群から得られるカウンタ値の少なくとも２０％の差が小さい（例えば、差が０であるか、又は差の予想値の１０％未満である）場合、これは、相関が既定の閾値相関を上回ることを示す。既定の閾値相関は、様々な環境条件下でのオフライン測定の結果により、較正中に経験的に設定されうる。
【００６１】
いくつかの実施例では、通知生成部１０５は、相関が既定の閾値相関を上回るときに、リングオシレータ群、さらにそれにより複数のリングオシレータにおける干渉を示す通知を生成するように構成される。一実施例では、システム１００内の他のリングオシレータは、干渉の影響を受けている場合もあり、影響を受けていない場合もある。通知生成部は、リングオシレータ群に影響を及ぼしている干渉が存在することを伝えうる。したがって、コンピュータシステム１１０が攻撃下にあるか、又はコンピュータシステムが作動する環境が仕様を満たさない可能性が存在する。
【００６２】
一実施例では、最も近いカウンタ値をもたらした２つのリングオシレータ間に検出される相関が存在しないか、又は小さい相関（既定の閾値相関を下回る相関）しか存在しない場合、当該リングオシレータのうち少なくとも１つは干渉による影響を受けていない。このような安全なリングオシレータは複数存在しうる。通知生成部１０５は、リングオシレータのペアが発振しない、他の周波数付近での潜在的な干渉については何も伝えることができない場合もある。
【００６３】
一実施例では、干渉が検出されない場合、少なくとも１つのリングオシレータは干渉に同期されておらず、安全に使用される。選択された２つのリングオシレータのカウンタ値、又は複数のリングオシレータ１０２の全てのカウンタ値を一緒にハッシュ化することにより、ハッシュ値における真のランダム性が保証されうる。このように、どのリングオシレータが実際に干渉による影響を受けていないかを特定する必要がない。
【００６４】
別の実施例では、リング状構成を用いたＰＵＦ装置において、例えば２００個を超える複数のリングオシレータが実装される。ＰＵＦ装置には十分なセキュリティが必要である。例えばＰＵＦ装置にＥＭ信号を投入するためのコイルを用いてシリコーンの特定の位置へと選択的に干渉が投入されることを防ぐために、複数のリングオシレータは、互いに近接して配置する必要がある。対応する複数のカウンタ値により、潜在的な干渉の多くのケースを検出することが可能となりうる。いくつかの代表周波数（予想カウンタ値）が識別されうる。代表周波数付近の相関を検出することで、複数のリングオシレータの大部分又は全ての発振周波数をカバーできる。したがって、干渉が検出されない場合には、ＰＵＦ装置内の複数のリングオシレータの大部分又は全てが干渉に同期されていないことを合理的に示すことができる。
【００６５】
一実施例では、コンピュータシステム１１０は、コンピュータシステムのファームウェアによって施行されうるセキュリティポリシーを有する。セキュリティポリシーは、ハードウェアに組み込まれたセキュリティポリシーを有するコンピュータシステムのコントローラ上、内蔵されたマイクロプロセッサ上、又はより単純な状態機械上でも実行することができる。干渉が検出される場合、当該セキュリティポリシーは通知生成部１０５に何をすべきか伝えうる。例えば、セキュリティポリシーに基づいて、通知生成部は操作者に警告を送るか又は警報を鳴らし、コンピュータシステムをリセット又はシャットダウンすることができる。
【００６６】
図４は、例示的な実装形態に係るコンピュータシステムのセキュリティを提供する方法４００の様々なステップを示すフローチャートである。方法は、コンピュータシステム１１０のセキュリティを提供するためのシステム１００によって実行される。システムは、設計段階では同一であるものの、製造段階では異なる発振周波数を有する複数のリングオシレータ１０２を含む。複数のリングオシレータは、それぞれに対応する複数のカウンタ２０５であって、複数のリングオシレータの発振出力のインパルスをカウントするように構成される複数のカウンタ２０５を装備する。ブロック４０１において、方法は、繰り返されるカウント期間にわたって当該複数のカウンタを開始させ、且つ複数のカウンタを停止させることを含む。ブロック４０２において、方法は、複数のリングオシレータからリングオシレータ群を選択することを含む。リングオシレータ群は、複数のカウンタのうち、それぞれに対応するカウンタ群を装備する。ブロック４０３において、方法は、繰り返されるカウント期間にわたってカウンタ群から得られるカウンタ値に基づいてリングオシレータ群の発振出力間の相関を特定することを含む。カウンタ値は、リングオシレータ群のうちのそれぞれのリングオシレータの発振周波数を示す。ブロック４０４において、方法は、相関が既定の閾値相関を上回る場合に、リングオシレータ群、さらにそれにより複数のリングオシレータにおける干渉を示す通知を生成する。
【００６７】
この項では、システム及び方法の追加の態様及び特徴を説明するが、一連の段落として限定することなく示され、当該段落の一部又は全ては、明確さと効率のために英数字で指定されうる。
【００６８】
Ａ１．コンピュータシステムのセキュリティを提供するためのシステムであって、複数のリングオシレータと、一又は複数の論理回路とを備え、複数のリングオシレータは、設計段階では同一であるものの製造段階では異なる発振周波数を有し、且つ複数のリングオシレータは、それぞれに対応する複数のカウンタであって、複数のリングオシレータの発振出力のインパルスをカウントするように構成される複数のカウンタを装備し、一又は複数の論理回路は、少なくとも繰り返されるカウント期間にわたって、それぞれに対応する複数のカウンタを開始させ、且つそれぞれに対応する複数のカウンタを停止させ、複数のリングオシレータから、それぞれに対応する複数のカウンタのうち、それぞれに対応する対応するカウンタ群を装備するリングオシレータ群を選択し、繰り返されるカウント期間にわたってそれぞれに対応するカウンタ群から得られるカウンタ値であって、リングオシレータ群のそれぞれのリングオシレータの発振周波数を示すカウンタ値に基づいて、リングオシレータ群の発振出力間の相関を特定し、且つ相関が既定の閾値相関を上回るときに、リングオシレータ群、さらにそれにより複数のリングオシレータにおける干渉を示す通知を生成するように構成される、システム。
【００６９】
Ａ２．リングオシレータ群はリングオシレータのペアであり、一又は複数の論理回路がリングオシレータ群を選択するように構成されることは、複数のリングオシレータからリングオシレータのペアを選択するように構成されることを含む、段落Ａ１に記載のシステム。
【００７０】
Ａ３．一又は複数の論理回路がリングオシレータ群を選択するように構成されることは、それぞれに対応する複数のカウンタからのカウンタ値をソートし、リングオシレータ群に装備される、それぞれに対応するカウンタ群からのカウンタ値の類似性に基づいてリングオシレータ群を選択するように構成されることを含む、段落Ａ１に記載のシステム。
【００７１】
Ａ４．一又は複数の論理回路がリングオシレータ群を選択するように構成されることは、それぞれに対応する複数のカウンタからのカウンタ値を、カウンタ値の類似性に基づいてカウンタ値の一又は複数のクラスタにクラスタリングし、一又は複数のクラスタのうち、リングオシレータ群が装備する、それぞれに対応するカウンタ群からのカウンタ値を含むクラスタを選択するように構成されることを更に含む、段落Ａ１に記載のシステム。
【００７２】
Ａ５．一又は複数の論理回路がリングオシレータ群の発振出力間の相関を特定するように構成されることは、それぞれに対応するカウンタ群からのカウンタ値の差を特定するように構成されることを含み、一又は複数の論理回路が通知を生成するように構成されることは、それぞれに対応するカウンタ群からのカウンタ値の少なくとも既定の部分の差が既定の閾値差を下回り、相関が既定の閾値相関を上回ることを示すときに通知を生成するように構成されることを含む、段落Ａ１に記載のシステム。
【００７３】
Ａ６．一又は複数の論理回路が相関を特定するように構成されることは、それぞれに対応するカウンタ群からのカウンタ値に基づいて、リングオシレータ群についてのビット値のシーケンスであって、シーケンスの各ビット値は、それぞれに対応するカウンタ群からのカウンタ値のペアにおける差が既定の閾値差を上回るか又は下回るかを示す、ビット値のシーケンスを生成し、且つ相関を示すフィルタ値を生成するためにシーケンスにフィルタをかけるように構成されることを含む、段落Ａ５に記載のシステム。
【００７４】
Ａ７．一又は複数の論理回路が差を特定するように構成されることは、それぞれに対応するカウンタ群からのカウンタ値に対し、算術減算又は排他的論理和による演算を実施するように構成されることを含む、段落５に記載のシステム。
【００７５】
Ａ８．一又は複数の論理回路がリングオシレータ群を選択するように構成されることは、複数のリングオシレータから複数のリングオシレータ群を選択するように構成されることを含み、一又は複数の論理回路が相関を特定するように構成されることは、複数のリングオシレータ群の発振出力間の相関を特定するように構成されることを含み、一又は複数の論理回路が通知を生成するように構成されることは、相関のうちいずれかが既定の閾値相関を上回るときに通知を生成するように構成されることを含む、段落Ａ１に記載のシステム。
【００７６】
Ａ９．一又は複数の論理回路が通知を生成するように構成されることは、視覚的又は聴覚的な通知を生成するように、又はコンピュータシステムをシャットダウン若しくはリセットするように構成されることを含む、段落Ａ１に記載のシステム。
【００７７】
Ｂ１０．コンピュータシステムのセキュリティを提供するためのシステムにより実行される方法であって、システムは、設計段階では同一であるものの製造段階では異なる発振周波数を有する複数のリングオシレータを備え、複数のリングオシレータは、それぞれに対応する複数のカウンタであって、複数のリングオシレータの発振出力のインパルスをカウントするように構成される複数のカウンタを装備し、方法は、繰り返されるカウント期間にわたって、それぞれに対応する複数のカウンタを開始させ、且つそれぞれに対応する複数のカウンタを停止させることと、複数のリングオシレータから、それぞれに対応する複数のカウンタのうち、それぞれに対応するカウンタ群を装備するリングオシレータ群を選択することと、繰り返されるカウント期間にわたって、それぞれに対応するカウンタ群から得られるカウンタ値であって、リングオシレータ群のそれぞれのリングオシレータの発振周波数を示すカウンタ値に基づいて、リングオシレータ群の発振出力間の相関を特定することと、相関が既定の閾値相関を上回るときに、リングオシレータ群、さらにそれにより複数のリングオシレータにおける干渉を示す通知を生成することとを含む、方法。
【００７８】
Ｂ１１．リングオシレータ群はリングオシレータのペアであり、リングオシレータ群を選択することは、複数のリングオシレータからリングオシレータのペアを選択することを含む、段落Ｂ１０に記載の方法。
【００７９】
Ｂ１２．リングオシレータ群を選択することは、それぞれに対応する複数のカウンタからのカウンタ値をソートし、リングオシレータ群に装備される、それぞれに対応するカウンタ群からのカウンタ値の類似性に基づいてリングオシレータ群を選択することを含む、段落Ｂ１０に記載の方法。
【００８０】
Ｂ１３．リングオシレータ群を選択することは、それぞれに対応する複数のカウンタからのカウンタ値を、カウンタ値の類似性に基づいてカウンタ値の一又は複数のクラスタにクラスタリングし、一又は複数のクラスタのうち、リングオシレータ群が装備する、それぞれに対応するカウンタ群からのカウンタ値を含むクラスタを選択することを更に含む、段落Ｂ１０に記載の方法。
【００８１】
Ｂ１４．リングオシレータ群の発振出力間の相関を特定することは、それぞれに対応するカウンタ群からのカウンタ値の差を特定することを含み、通知を生成することは、それぞれに対応するカウンタ群からのカウンタ値の少なくとも既定の部分の差が既定の閾値差を下回り、相関が既定の閾値相関を上回ることを示すときに通知を生成することを含む、段落Ｂ１０に記載の方法。
【００８２】
Ｂ１５．相関を特定することは、それぞれに対応するカウンタ群からのカウンタ値に基づいて、リングオシレータ群についてのビット値のシーケンスであって、シーケンスの各ビット値は、それぞれに対応するカウンタ群からのカウンタ値のペアにおける差が既定の閾値差を上回るか又は下回るかを示す、ビット値のシーケンスを生成することと、相関を示すフィルタ値を生成するためにシーケンスにフィルタをかけることと
を含む、段落Ｂ１４に記載の方法。
【００８３】
Ｂ１６．それぞれに対応するカウンタ群からのカウンタ値に対し、算術減算又は排他的論理和による演算を実施することを含む、段落Ｂ１４に記載の方法。
【００８４】
Ｂ１７．リングオシレータ群を選択することは、複数のリングオシレータから複数のリングオシレータ群を選択することを含み、一又は複数の論理回路が相関を特定することは、複数のリングオシレータ群の発振出力間の相関を特定することを含み、一又は複数の論理回路が通知を生成することは、相関のうちいずれかが既定の閾値相関を上回るときに通知を生成するように構成されることを含む、段落Ｂ１０に記載の方法。
【００８５】
Ｂ１８．一又は複数の論理回路が通知を生成するように構成されることは、視覚的又は聴覚的な通知を生成するように、又はコンピュータシステムをシャットダウン若しくはリセットするように構成されることを含む、段落Ｂ１０に記載の方法。
【００８６】
これらの開示内容に関連して、上述の説明及び添付図面に提示された教示の恩恵を有する本開示の多数の修正例及び他の実装が、当業者には想起されるであろう。したがって、本開示が、開示されている特定の実装形態に限定されるものではないこと、及び、変形例及びその他の実装形態も付随する特許請求の範囲に含まれるよう意図されていることを理解されたい。さらに、上述の説明及び添付図面は、要素及び／又は機能の特定の例示的な組み合わせに照らして例示的な実装形態を説明しているが、付随する特許請求の範囲から逸脱せずに、代替的な実装形態によって、要素及び／又は機能の様々な組み合わせが提供されうることを理解すべきである。これに関しては、例えば、明確に上述した要素及び／又は機能とは異なる要素及び／又は機能の組み合わせもまた考えられ、添付の請求項の範囲のいくつかの項に記載される。本明細書では具体的な用語を採用しているが、それらは、一般的且つ説明的な意味でのみ使用されており、限定を目的とするものではない。
【図１】
2019144536.tif 000003
【図２】
2019144536.tif 000004
【図３】
2019144536.tif 000005
【図４】
2019144536.tif 000006
【外国語明細書】
2019144536000001.pdf
2019144536000002.pdf
2019144536000003.pdf
2019144536000004.pdf