(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-07
(45)【発行日】2023-02-15
(54)【発明の名称】干渉検出リングオシレータ
(51)【国際特許分類】
G09C 1/00 20060101AFI20230208BHJP
G06F 21/75 20130101ALI20230208BHJP
【FI】
G09C1/00 650B
G06F21/75
【外国語出願】
(21)【出願番号】P 2018238561
(22)【出願日】2018-12-20
【審査請求日】2021-12-15
(32)【優先日】2017-12-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500520743
【氏名又は名称】ザ・ボーイング・カンパニー
【氏名又は名称原語表記】The Boeing Company
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】ハース, ラースロー
【審査官】青木 重徳
(56)【参考文献】
【文献】特開2019-12919(JP,A)
【文献】特開2013-46334(JP,A)
【文献】特開2010-288142(JP,A)
【文献】特開2011-151189(JP,A)
【文献】特表2010-527174(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
G06F 21/75
(57)【特許請求の範囲】
【請求項1】
コンピュータシステムのセキュリティを提供するためのシステムであって、
複数のリングオシレータと、一又は複数の論理回路とを備え、
前記複数のリングオシレータは、設計段階では同一であるものの製造段階では異なる発振周波数を有し、且つ前記複数のリングオシレータは、それぞれに対応する複数のカウンタであって、前記複数のリングオシレータの発振出力のインパルスをカウントするように構成される複数のカウンタを装備し、
前記一又は複数の論理回路は、少なくとも
繰り返されるカウント期間にわたって、前記それぞれに対応する複数のカウンタを開始させ、且つ前記それぞれに対応する複数のカウンタを停止させ、
前記複数のリングオシレータから、前記それぞれに対応する複数のカウンタのうち、それぞれに対応するカウンタ群を装備するリングオシレータ群を選択し、
前記繰り返されるカウント期間にわたって前記それぞれに対応するカウンタ群から得られるカウンタ値であって、前記リングオシレータ群のそれぞれのリングオシレータの発振周波数を示す前記カウンタ値に基づいて、前記リングオシレータ群の発振出力間の相関を特定し、且つ
前記相関が既定の閾値相関を上回るときに、前記リングオシレータ群、さらにそれにより前記複数のリングオシレータにおける干渉を示す通知を生成する
ように構成される、システム。
【請求項2】
前記リングオシレータ群はリングオシレータのペアであり、前記一又は複数の論理回路が前記リングオシレータ群を選択するように構成されることは、前記複数のリングオシレータから前記リングオシレータのペアを選択するように構成されることを含む、請求項1に記載のシステム。
【請求項3】
前記一又は複数の論理回路が前記リングオシレータ群を選択するように構成されることは、前記それぞれに対応する複数のカウンタからのカウンタ値をソートし、前記リングオシレータ群に装備される前記それぞれに対応するカウンタ群からの前記カウンタ値の類似性に基づいて前記リングオシレータ群を選択するように構成されることを含む、請求項1又は2に記載のシステム。
【請求項4】
前記一又は複数の論理回路が前記リングオシレータ群を選択するように構成されることは、前記それぞれに対応する複数のカウンタからの前記カウンタ値を、カウンタ値の類似性に基づいてカウンタ値の一又は複数のクラスタにクラスタリングし、前記一又は複数のクラスタのうち、前記リングオシレータ群が装備する前記それぞれに対応するカウンタ群からの前記カウンタ値を含むクラスタを選択するように構成されることを更に含む、請求項1から3のいずれか一項に記載のシステム。
【請求項5】
前記一又は複数の論理回路が前記リングオシレータ群の前記発振出力間の前記相関を特定するように構成されることは、前記それぞれに対応するカウンタ群からの前記カウンタ値の差を特定するように構成されることを含み、
前記一又は複数の論理回路が前記通知を生成するように構成されることは、前記それぞれに対応するカウンタ群からの前記カウンタ値の少なくとも既定の部分の間の前記差が既定の閾値差を下回り、前記相関が前記既定の閾値相関を上回ることを示すときに前記通知を生成するように構成されることを含む、請求項1から4のいずれか一項に記載のシステム。
【請求項6】
前記一又は複数の論理回路が前記相関を特定するように構成されることは、
前記それぞれに対応するカウンタ群からの前記カウンタ値に基づいて、前記リングオシレータ群についてのビット値のシーケンスであって、前記シーケンスの各ビット値は、前記それぞれに対応するカウンタ群からの前記カウンタ値のペアにおける前記差が前記既定の閾値差を上回るか又は下回るかを示す、ビット値のシーケンスを生成し、且つ
前記相関を示すフィルタ値を生成するために前記シーケンスにフィルタをかけるように構成されることを含む、請求項5に記載のシステム。
【請求項7】
前記一又は複数の論理回路が前記差を特定するように構成されることは、前記それぞれに対応するカウンタ群からの前記カウンタ値に対し、算術減算又は排他的論理和による演算を実施するように構成されることを含む、請求項5又は6に記載のシステム。
【請求項8】
前記一又は複数の論理回路が前記リングオシレータ群を選択するように構成されることは、前記複数のリングオシレータから複数のリングオシレータ群を選択するように構成されることを含み、
前記一又は複数の論理回路が前記相関を特定するように構成されることは、前記複数のリングオシレータ群の発振出力間の相関を特定するように構成されることを含み、
前記一又は複数の論理回路が前記通知を生成するように構成されることは、前記相関のうちいずれかが前記既定の閾値相関を上回るときに前記通知を生成するように構成されることを含む、請求項1から7のいずれか一項に記載のシステム。
【請求項9】
前記一又は複数の論理回路が前記通知を生成するように構成されることは、視覚的又は聴覚的な通知を生成するように、又は前記コンピュータシステムをシャットダウン若しくはリセットするように構成されることを含む、請求項1から8のいずれか一項に記載のシステム。
【請求項10】
請求項1から9のいずれか一項に記載のシステムによって実行される、コンピュータシステムのセキュリティを提供するための方法であって、前記システムは、設計段階では同一であるものの製造段階では異なる発振周波数を有する複数のリングオシレータを備え、前記複数のリングオシレータは、それぞれに対応する複数のカウンタであって、前記複数のリングオシレータの発振出力のインパルスをカウントするように構成される複数のカウンタを装備し、前記方法は、
繰り返されるカウント期間にわたって、前記それぞれに対応する複数のカウンタを開始させ、且つ前記それぞれに対応する複数のカウンタを停止させることと、
前記複数のリングオシレータから、前記それぞれに対応する複数のカウンタのうち、それぞれに対応するカウンタ群を装備するリングオシレータ群を選択することと、
前記繰り返されるカウント期間にわたって、前記それぞれに対応するカウンタ群から得られるカウンタ値であって、前記リングオシレータ群のそれぞれのリングオシレータの発振周波数を示す前記カウンタ値に基づいて、前記リングオシレータ群の発振出力間の相関を特定することと、
前記相関が既定の閾値相関を上回るときに、前記リングオシレータ群、さらにそれにより前記複数のリングオシレータにおける干渉を示す通知を生成することとを含む、方法。
【請求項11】
前記リングオシレータ群はリングオシレータのペアであり、前記リングオシレータ群を選択することは、前記複数のリングオシレータから前記リングオシレータのペアを選択することを含む、請求項10に記載の方法。
【請求項12】
前記リングオシレータ群を選択することは、前記それぞれに対応する複数のカウンタからのカウンタ値をソートし、前記リングオシレータ群に装備される前記それぞれに対応するカウンタ群からの前記カウンタ値の類似性に基づいて前記リングオシレータ群を選択することを含む、請求項10又は11に記載の方法。
【請求項13】
前記リングオシレータ群を選択することは、前記それぞれに対応する複数のカウンタからの前記カウンタ値を、カウンタ値の類似性に基づいてカウンタ値の一又は複数のクラスタにクラスタリングし、前記一又は複数のクラスタのうち、前記リングオシレータ群が装備する前記それぞれに対応するカウンタ群からの前記カウンタ値を含むクラスタを選択することを更に含む、請求項10から12のいずれか一項に記載の方法。
【請求項14】
前記リングオシレータ群の前記発振出力間の前記相関を特定することは、前記それぞれに対応するカウンタ群からの前記カウンタ値の差を特定することを含み、
前記通知を生成することは、前記それぞれに対応するカウンタ群からの前記カウンタ値の少なくとも既定の部分の間の前記差が既定の閾値差を下回り、前記相関が前記既定の閾値相関を上回ることを示すときに前記通知を生成することを含む、請求項10から13のいずれか一項に記載の方法。
【請求項15】
前記相関を特定することは、
前記それぞれに対応するカウンタ群からの前記カウンタ値に基づいて、前記リングオシレータ群についてのビット値のシーケンスであって、前記シーケンスの各ビット値は、前記それぞれに対応するカウンタ群からの前記カウンタ値のペアにおける前記差が前記既定の閾値差を上回るか又は下回るかを示す、ビット値のシーケンスを生成することと、
前記相関を示すフィルタ値を生成するために前記シーケンスにフィルタをかけることと
を含む、請求項14に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概してコンピュータシステムのセキュリティを提供することに関し、具体的には、干渉検出リングオシレータを用いてコンピュータシステムのセキュリティを提供することに関する。
【背景技術】
【0002】
集積回路の一部の電子コンポーネントは、当該集積回路で生成される干渉又は外部から投じられる干渉の影響を受けやすい。リングオシレータは、このような干渉を受けやすい回路である。リングオシレータは、情報セキュリティで使用される真の乱数を生成するためのエントロピー源として使用されうる。しかしながら、エントロピー源として使用されるリングオシレータが干渉信号に同期された場合、リングオシレータの位相ドリフトのランダム性が破壊される。したがって、未承認の第三者が、干渉を制御又は測定することによって位相ドリフトを知り、リングオシレータによって生成された真の乱数を再作成することで、情報セキュリティが損なわれる可能性がある。
【0003】
リングオシレータにおける干渉の受けやすさを低減するための既存の解決策は、シールドやフィルタといった物理的な保護を使用することである。既存の別の解決策は、干渉を受けにくい論理ゲートを使用することである。しかしながら、既存の解決策は、費用がかかり、脆弱で、速度が遅く、且つ評価又は設計が困難である。
【0004】
したがって、上述の問題点の少なくとも一部、及び起こり得る他の問題点を考慮に入れたシステム及び方法を有することが望ましいであろう。
【発明の概要】
【0005】
本開示の例示的な実装形態は、干渉検出リングオシレータを用いてコンピュータシステムのセキュリティを提供することを対象とする。既存の解決策と異なり、例示的な実装形態は、リングオシレータの発振信号間のあらゆる強い相関を検出するために複数のリングオシレータを採用することによって、干渉を検出する。例示的な実装形態によれば、干渉によって情報セキュリティが損なわれる前に、当該干渉を検出することができる。
【0006】
本開示は、下記の例示的な実装形態を含むが、それらに限定されるわけではない。
【0007】
いくつかの例示的な実装形態は、コンピュータシステムのセキュリティを提供するためのシステムによって実行される方法を提供する。システムは、設計段階では同一であるものの製造段階では異なる発振周波数を有する複数のリングオシレータを備え、複数のリングオシレータは、それぞれに対応する複数のカウンタであって、複数のリングオシレータの発振出力のインパルスをカウントするように構成される複数のカウンタを装備する。方法は、繰り返されるカウント期間にわたって、それぞれに対応する複数のカウンタを開始させ、且つそれぞれに対応する複数のカウンタを停止させることと、複数のリングオシレータから、それぞれに対応する複数のカウンタのうち、それぞれに対応するカウンタ群を装備するリングオシレータ群を選択することと、繰り返されるカウント期間にわたって、それぞれに対応するカウンタ群から得られるカウンタ値であって、リングオシレータ群のそれぞれのリングオシレータの発振周波数を示すカウンタ値に基づいて、リングオシレータ群の発振出力間の相関を特定することと、
相関が既定の閾値相関を上回るときに、リングオシレータ群、さらにそれにより複数のリングオシレータにおける干渉を示す通知を生成することとを含む。
【0008】
前述のいずれかの例示的な実装形態、又は前述の例示的な実装形態の任意の組み合わせの方法のいくつかの実装形態において、リングオシレータの群はリングオシレータのペアであり、リングオシレータ群を選択することは、複数のリングオシレータからリングオシレータのペアを選択することを含む。
【0009】
前述のいずれかの例示的な実装形態、又は前述の例示的な実装形態の任意の組み合わせの方法のいくつかの実装形態において、リングオシレータ群を選択することは、それぞれに対応する複数のカウンタからのカウンタ値をソートし、リングオシレータ群に装備される、それぞれに対応するカウンタ群からのカウンタ値の類似性に基づいてリングオシレータ群を選択することを含む。
【0010】
前述のいずれかの例示的な実装形態、又は前述の例示的な実装形態の任意の組み合わせの方法のいくつかの実装形態において、リングオシレータ群を選択することは、それぞれに対応する複数のカウンタからのカウンタ値を、カウンタ値の類似性に基づいてカウンタ値の一又は複数のクラスタにクラスタリングし、一又は複数のクラスタのうち、リングオシレータ群が装備する、それぞれに対応するカウンタ群からのカウンタ値を含むクラスタを選択することを更に含む。
【0011】
前述のいずれかの例示的な実装形態、又は前述の例示的な実装形態の任意の組み合わせの方法のいくつかの実装形態において、リングオシレータ群の発振出力間の相関を特定することは、それぞれに対応するカウンタ群からのカウンタ値の差(例えば、繰り返し再開されるカウンタ値の差のシーケンス)を特定することを含み、通知を生成することは、それぞれに対応するカウンタ群からの、例えば当該シーケンス中のカウンタ値の少なくとも既定の部分の差が既定の閾値差を下回り、相関が既定の閾値相関を上回ることが示されたときに通知を生成することを示す。
【0012】
前述のいずれかの例示的な実装形態、又は前述の例示的な実装形態の任意の組み合わせの方法のいくつかの実装形態において、相関を特定することは、それぞれに対応するカウンタ群(例えば、周期的に再開されるカウンタ)からのカウンタ値に基づいて、リングオシレータ群についてのビット値のシーケンスであって、シーケンスの各ビット値は、それぞれに対応するカウンタ群からのカウンタ値のペアにおける差が既定の閾値差を上回るか又は下回るかを示す、ビット値のシーケンスを生成することと、相関を示すフィルタ値を生成するためにシーケンスにフィルタをかけることとを含む。
【0013】
前述のいずれかの例示的な実装形態、又は前述の例示的な実装形態の任意の組み合わせの方法のいくつかの実装形態において、差を特定することは、それぞれに対応するカウンタ群からのカウンタ値に対して算術減算又は排他的論理和による演算を実施することを含む。
【0014】
前述のいずれかの例示的な実装形態、又は前述の例示的な実装形態の任意の組み合わせの方法のいくつかの実装形態において、リングオシレータ群を選択することは、複数のリングオシレータから複数のリングオシレータ群を選択することを含み、相関を特定することは、複数のリングオシレータ群の発振出力間の相関を特定し、通知を生成することは、相関のうちいずれかが既定の閾値相関を上回るときに通知を生成することを含む。
【0015】
前述のいずれかの例示的な実装形態、又は前述の例示的な実装形態の任意の組み合わせの方法のいくつかの実装形態において、通知を生成することは、視覚的又は聴覚的な通知を生成すること、及びコンピュータシステムをシャットダウン若しくはリセットすることのうち少なくとも1つを含む。
【0016】
いくつかの例示的な実装形態は、コンピュータシステムのセキュリティを提供するためのシステムを提供し、システムは、任意の例示的な実装形態の方法、又は先行する例示的な実装形態の方法を少なくとも実施するように構成される一又は複数の論理回路を備える。
【0017】
本開示の上記の特徴、態様、及び利点、及びその他の特徴、態様、及び利点は、下記の詳細な説明と共に、以下で簡単に説明する添付図面を参照することで明らかになろう。本開示は、本明細書に記載の特定の例示的な実装形態において、この開示内に明記する2つ、3つ、4つ、又は更に多くの特徴又は要素が明示的に組み合わされているか、若しくは列挙されているかにかかわらず、かかる特徴又は要素の任意の組み合わせを含む。本開示は、本開示の文脈において明確に記述しない限り、切り離すことが可能な本開示のあらゆる特徴又は要素が、その態様及び例示的な実装形態のいずれにおいても組合せ可能であると見なされるように、全体論的に読むべきものである。
【0018】
ゆえに、この「発明の概要」は、本開示のいくつかの態様の基本的な理解を提供するために、いくつかの例示的な実装形態を要約することのみを目的に提供されていることが、理解されよう。したがって、上述の例示的な実装形態は単なる例であり、いかなる意味においても、本開示の範囲又は趣旨を狭めると解釈すべきではないことが理解されよう。その他の例示的な実装形態、態様、及び利点は、添付図面と併せて下記の詳細な説明を参照することにより明らかになろう。添付図面は、記載されているいくつかの例示的な実装形態の原理を例として示すものである。
【0019】
上記のように本開示の例示的な実装形態を大まかに説明したが、以下では添付図面を参照する。図面は必ずしも正寸で描かれているわけではない。
【図面の簡単な説明】
【0020】
【
図1】本開示の例示的な実装形態に係る、コンピュータシステムのセキュリティを提供するためのシステムを示す。
【
図2】様々な例示的な実装形態に係るシステムのリングオシレータを示す。
【
図3】様々な例示的な実装形態に係る、複数のリングオシレータについてのカウンタ値のソーティングネットワークの図である。
【
図4】様々な例示的な実装形態に係る、コンピュータシステムのセキュリティを提供するための方法の様々なステップを示すフローチャートである。
【発明を実施するための形態】
【0021】
本開示のいくつかの実装形態を、添付図面を参照してこれより以下で更に詳しく説明するが、添付図面は、本開示の実装形態の全てではなく一部を示すものである。実際、本開示の様々な実装形態は、多くの異なる形態で具現化されてよく、本明細書に明記されている実装形態に限定されると解釈すべきではない。むしろ、これらの例示的な実装形態は、本開示が包括的且つ完全なものになるように、且つ、当業者に本開示の範囲が十分に伝わるように、提供されている。例えば、特に明記しない限り、何かが「第1の」、「第2の」等のものであるという表現は、特定の順番を示すと解釈すべきではない。 また、(特に明記しない限り)何か別のものの上にあると記載されるものは、その代わりに下にあることもあり、逆もまた然りである。同様に、何か別の物の左にあると記載されるものは、その代わりに右にあることもあり、逆もまた然りである。全体を通して、類似の参照番号は類似の要素を表している。
【0022】
本開示の例示的な実装形態は、概してコンピュータシステムのセキュリティを提供することを対象とし、具体的には干渉検出リングオシレータを用いてコンピュータシステムのセキュリティを提供することを対象とする。
【0023】
図1は、本開示の例示的な実装形態に係るコンピュータシステム110のセキュリティを提供するためのシステム100を示す。コンピュータシステムは、図示のようなシステムを含みうる。例えば、コンピュータシステムはシステムを装備しうる。別の実施例では、コンピュータシステム及びシステムは、2つの別個のシステムであってよい。
【0024】
システム100は任意の数のコンポーネント、ユニットなど(概して「コンポーネント」と称する)の各々の一又は複数を含んでいてよく、そのうち少なくとも一部は、多重化装置、レジスタ、演算論理装置、メモリ、マイクロプロセッサなどの論理回路を含みうるか、又は論理回路を用いて実装されうる。システムは、任意の数の異なる用途のうちの任意の用途向けに設計可能であり、システムに干渉検出能を提供し、コンピュータシステム110のセキュリティを提供するための特定の利用可能性を有しうる。
【0025】
コンピュータシステム110は、プロセッサと、プロセッサに結合されたコンピュータ可読記憶媒体又はメモリとを含んでいてよく、プロセッサはメモリ内に保存される一又は複数のコンピュータプログラムを含むコンピュータ可読プログラムコードを実行するように構成される。一又は複数の機能、及び機能の組み合わせは、特殊用途電子ハードウェアに基づくシステム及び/又は特定の機能を実施するプロセッサ、又は特殊用途ハードウェアとプログラムコード命令との組み合わせによって実装されうることも、理解されよう。
【0026】
いくつかの実施例では、図示のように、システム100は制御論理101と、少なくとも2つの、複数のリングオシレータ102、すなわちリングオシレータ1021~1024とを含む。リングオシレータは、設計段階では同一であるものの製造段階では異なる発振周波数を有する。許容誤差内での製造上のばらつきによって、同一に設計されたリングオシレータ同士は、わずかに異なるものとなる。このようなランダムな差異は、予期又は複製することができず、またリングオシレータを異なる周波数で発振させることとなり、温度や供給電圧にばらつきが生じる場合がある。以下の
図2に示すように、複数のリングオシレータは、それぞれに対応する複数のカウンタであって、複数のリングオシレータの発振出力のインパルスをカウントするように構成される複数のカウンタを装備する。
【0027】
いくつかの実施例では、制御論理101は、複数のリングオシレータそれぞれを開始させるように構成される。他の実施例では、リングオシレータは継続的に作動し、制御論理101は、複数のリングオシレータ102、すなわちリングオシレータ1021~1024の周波数を測定するために、繰り返されるカウント期間にわたって複数のカウンタをリセット及び開始させ、且つ複数のカウンタを停止させるように構成される。例えば、カウンタは、繰り返されるカウント期間にわたってリングオシレータの発振期間をカウントすることにより、周波数を測定することができる。
【0028】
いくつかの実施例では、システム100の選択部103は、複数のリングオシレータ102からリングオシレータ群を選択するように構成される。リングオシレータ群は、複数のカウンタのうち、それぞれに対応するカウンタ群を装備する。選択部は、選択されたリングオシレータ群の情報をシステムの相関特定部104に提供しうる。
【0029】
いくつかの実施例では、相関特定部104は、リングオシレータ群の発振出力間の相関を特定するように構成される。相関は、繰り返されるカウント期間にわたってカウンタ群から得られるカウンタ値に基づいて特定される。カウンタ値は、リングオシレータ群のリングオシレータそれぞれの発振周波数を示す。相関特定部は、特定された相関をシステムの通知生成部105に提供しうる。
【0030】
いくつかの実施例では、通知生成部105は、相関が既定の閾値相関を上回る場合に、当該リングオシレータ群、さらにそれにより複数のリングオシレータ102における干渉を示す通知を生成するように構成される。
【0031】
いくつかの実施例では、リングオシレータ群はリングオシレータのペアであり、選択部103は、複数のリングオシレータ102から当該リングオシレータのペアを選択するように構成される。例えば、選択部は、2つのリングオシレータ1021及び1022を含む群を選択しうる。他の実施例では、選択されたリングオシレータ群は、異なる数のリングオシレータ、例えば3つ又は4つのリングオシレータを含んでいてもよい。
【0032】
いくつかの実施例では、選択部103は、複数のカウンタのカウンタ値のシーケンスから第1のカウンタ値をソートするように構成される。例えば、選択部は、以下の
図3に示すソーティングネットワークに基づいてカウンタ値をソートしうる。選択部はまた、リングオシレータ群に装備されるカウンタ群からのカウンタ値の類似性に基づいて、リングオシレータ群を選択するように構成される。例えば、選択部は、2つのリングオシレータの第1のカウンタ値同士が近い場合(例えば、カウンタ値の差が1%未満である場合)に、2つのリングオシレータ1021及び1022を選択しうる。
【0033】
いくつかの実施例では、選択部103は、複数のカウンタからの第1のカウンタ値を、当該第1のカウンタ値の類似性に基づいて一又は複数のカウンタ値クラスタにクラスタリングするように構成される。例えば、選択部は、リングオシレータ1021及び1022を1つのクラスタにクラスタリングし、リングオシレータ1023及び1024を別のクラスタにクラスタリングしうる。選択部はまた、一又は複数のクラスタのうち、リングオシレータ群に装備されるカウンタ群からのカウンタ値を含むクラスタを選択するように構成される。
【0034】
いくつかの実施例では、相関特定部104は、カウンタ群からのカウンタ値の差(例えば、繰り返し再開されるカウンタ値の差のシーケンス)を特定するように構成される。通知生成部105は、カウンタ群からの、例えばシーケンス中のカウンタ値のうち少なくとも既定の一部の差が既定の閾値差を下回るとき、すなわち相関が既定の閾値相関を上回ることが示されたときに、通知を生成するように構成される。すなわち、カウンタのシーケンスにおいて、カウンタ群からの値の少なくとも既定の一部の差が既定の閾値差を下回るとき、これは相関が既定の閾値相関を上回ることを示す。
【0035】
いくつかの実施例では、相関特定部104は、周期的に又は繰り返して再開される、カウンタ群から得られるカウンタ値に基づき、リングオシレータ群についてビット値のシーケンスを生成するように構成される。シーケンスの各ビット値は、カウンタ群から得られる、対応するカウンタ値のペアにおける差が既定の閾値差を上回るか又は下回るかを示す。相関特定部はまた、シーケンスにデジタルフィルタ(例えば、FIRフィルタ又はIIRフィルタ)をかけて、相関を示すフィルタ値を生成するように構成される。いくつかの実施例では、相関特定部は、カウンタ群からのカウンタ値に対して、排他的論理和(XOR)による演算を実施するように構成される。他の実施例では、相関特定部は、最も大きいカウンタ値からの算術差(算術減算値)を計算するように構成される。
【0036】
いくつかの実施例では、選択部103は、複数のリングオシレータから複数のリングオシレータ群を選択するように構成される。例えば、選択部は2つの群を選択しうる。2つの群のうち、一方はリングオシレータ1021及び1022を含み、他方の群はリングオシレータ1023及び1024を含む。これらの実施例では、相関特定部104は、複数のリングオシレータ群の発振出力間の相関を特定するように構成される。通知生成部105は、相関のうちいずれかが既定の閾値相関を上回る場合に通知を生成するように構成される。
【0037】
いくつかの実施例では、通知生成部105は、視覚的若しくは聴覚的な通知を生成するか、又はコンピュータシステム110をシャットダウン若しくはリセットさせるように構成される。例えば、通知生成部は、コンピュータシステムの操作者に対して警報又は警告を送信しうる。通知生成部はまた、コンピュータシステムをリセットまたはシャットダウンしてもよい。
【0038】
図2は、様々な例示的な実装形態に係る、システム100のリングオシレータ200を示す。いくつかの実施例では、リングオシレータ200は、
図1で説明したシステム100のリングオシレータ1021~1024のうち任意の1つであってよい。リングオシレータは、制御論理101によって駆動されるイネーブル入力を有するように構成される。
【0039】
一実施例では、リングオシレータ200は複数の論理ゲートを含むことができ、このうち奇数個の論理ゲートは、当該論理ゲートの、直前の論理ゲートの出力に接続された入力を反転させ、その全ては環状構成で接続され、例えばインバータ201~204及び否定論理積(NAND)ゲートとして
図2に示されている。複数のインバータのうち最初のインバータ、例えばインバータ201は入力を受け、環状構成における次のインバータ、例えばインバータ202への入力としての出力(入力の論理否定)を生成する。複数のインバータのうち最後のインバータを除いた各々の出力は、複数のインバータのうち次のインバータのための入力として使用される。複数のインバータのうち最後のインバータ、例えばインバータ204の出力は、複数のインバータのうち最初のインバータ、例えばインバータ201にフィードバックされ、当該最初のインバータのための入力として使用される。
【0040】
いくつかの実施例では、リングオシレータ200はリングオシレータの発振出力のインパルスをカウントするように構成されるカウンタ205を装備する。例えば、
図2に示すように、複数のインバータのうち最後のインバータ、例えばインバータ204の出力はカウンタに送信される。カウンタは、一又は複数の既定のカウント期間における発振期間をカウントすることにより、カウンタ値を生成する。カウンタ値は、リングオシレータ200の発振周波数を示す。
【0041】
リングオシレータ200は、回路のノイズによって、発振周波数の変動に顕現する位相ドリフトを生じさせることから、情報のセキュリティに使用される真の乱数を生成するためのエントロピー源として用いることができる。しかしながら、一実施例では、強い干渉信号がノイズとしてリングオシレータに影響を及ぼしうる。干渉はランダムでない場合がある。リングオシレータの真のランダムノイズの効果は、強い干渉信号によって抑制され、リングオシレータにより生成されたエントロピーの全て又は大部分が破壊される場合がある。強い干渉信号は、スイッチング電源、ブラウン管(CRTs)、レーダー、ソナーなどのコンピューティングシステムの動作環境における装置に起因するものでありうる。
【0042】
別の実施例では、未承認の第三者が、強い干渉信号を用いてリングオシレータ200を攻撃し、リングオシレータのノイズのランダム効果を抑制する可能性がある。干渉信号は、標準的な統計的検定では真のランダムノイズと区別することができない非ランダム位相ドリフトにつながる疑似ランダム位相ジッタを含みうる。干渉信号は、外部から測定可能な真のランダム位相ジッタを有している可能性さえある。未承認の第三者は、攻撃下にあるリングオシレータの位相ジッタを当該第三者が知ることができるように、干渉信号を用いてリングオシレータを攻撃しうる。攻撃によって内部回路の真のランダムノイズの効果が抑制され、未承認の第三者は、リングオシレータにより生成されたエントロピー値を知ることができる。エントロピー値が、コンピュータシステム110で使用されるキーの生成、キーの合意プロトコル、又は他のシークレットナンバー又は予測不能ナンバーに使用されている場合、コンピュータシステムのセキュリティが失われる。
【0043】
更なる実施例では、未承認の第三者が、強い干渉信号を用いて、リング状構成を用いる物理複製困難関数(physical unclonable function、PUF)装置を攻撃する可能性がある。PUF装置は、複数のリングオシレータ200を含むことができ、複数のリングオシレータのペア間で周波数比較を実施することにより、コンピュータシステム110で使用されるルートキーのコンポーネント又はチップIDを生成しうる。未承認の第三者は、強い干渉信号を用いて、PUF装置の複数のリングオシレータのうち一又は複数を同期させ、当該リングオシレータの周波数を強い干渉信号の周波数と等しいものにする。本実施例では、PUF装置でのいくつかの周波数比較の結果が変化し、不正確なチップID又はルートキーが算出される場合がある。
【0044】
一実施例では、未承認の第三者は、PUF装置の特定の個別のリングオシレータ200又はリングオシレータ群に対し強制的にその周波数を変更させうる。例えば、未承認の第三者は、その発振周波数で干渉信号を標的のリングオシレータに投じうる。この特定のリングオシレータは、干渉下で起動すると、この干渉信号にロック(固定)される。この時点で、未承認の第三者は、より高い周波数又はより低い周波数に干渉信号を徐々にチューニングすることができ、標的のリングオシレータがこれに従う。PUF装置内の他のリングオシレータは、干渉信号の周波数に従わないか、或いは当該周波数にロックされない場合もある。このように、PUF装置の周波数比較の結果は変更され、PUF装置の異常状態が監視及びマッピングされうる。PUF装置に不具合を生じさせるようにオフセットされた最も小さい周波数までチューニングすることにより、単一の周波数比較を標的とすることができる。
【0045】
一実施例では、特定のリングオシレータ200又はリングオシレータ群の周波数の変化がコンピュータシステム110の起動を妨げる場合、未承認の第三者は、攻撃を受けた周波数を有するリングオシレータがPUF計算に使用されることを知ることができ、当該周波数の変化によって正常な結果から逸脱させるいくつかの比較が引き起こされる。異なるリングオシレータが攻撃される場合、未承認の第三者は、コンピュータシステムの起動挙動を監視することによって、PUF値の全てを知るのに十分な情報を取得するか、又は、しらみつぶし探索(exhaustive search)によって真のPUF値が明らかとなりうるようにPUF値のエントロピーを少なくとも低下させることができる。上記のような干渉の投入/チューニングにより、チップID又はルートキーへの直接攻撃が実現可能なものとなる。ゆえに、このような干渉を検出することが、コンピュータシステムのセキュリティにとって重要である。
【0046】
いくつかの実施例では、システム100は、干渉検出のために複数のリングオシレータ102を採用する。複数のリングオシレータの各々は、
図2に示すようなリングオシレータ200であってよい。複数のリングオシレータは、それぞれに対応する複数のカウンタ205であって、所定の持続時間における複数のリングオシレータの発振出力のインパルスをカウントするように構成される複数のカウンタ205を装備する。制御論理101は、いくつかの実施例では、複数のリングオシレータそれぞれを開始させるように構成され、他の実施例では、複数のリングオシレータの周波数を測定するために、繰り返されるカウント期間にわたってカウンタをリセットして開始させ、且つ複数のカウンタを停止さするように構成される。一実施例では、カウンタは、一定期間作動させられ、対応する期間における複数のリングオシレータの平均周波数を測定する。別の実施例では、カウンタは、発振期間の持続時間を測定し、リングオシレータの期間の間の高周波クロックシグナルのパルスをカウントするように構成される。カウンタは、周波数の差を検出するための十分な分解能をもたらすため、実際は14…32ビット幅でありうる。例えば、16ビットのカウンタは良好な分解能を提供しうる。
【0047】
いくつかの実施例では、複数のリングオシレータ102は、設計段階では同一であるものの、製造段階では異なる発振周波数を有する。一実施例では、同一に設計されるリングオシレータの発振周波数には、特定の環境において、温度及び供給電圧に応じて16%のばらつきが生じうる。同一に設計されるリングオシレータの温度及び電圧特性もまた異なる場合がある。選択された2つのリングオシレータのカウンタ値は、周波数の差が特定の環境では1%以下と小さいが、他の環境では大きくなる場合がある(最大16%)ことを示しうる。
【0048】
一実施例では、システム100は、多数のリングオシレータ(例えば、16個)を採用し、当該リングオシレータの特定のペアの間の相関が計算される。製造許容誤差により発振周波数に16%の変動が生じる場合、システム100は少なくともn=16個のリングオシレータを実装する。このように、あらゆる温度/電圧作動点において、十分に近い発振周波数(1%以内の差)を有するリングオシレータのペアが存在する。当該ペアの発振周波数は、温度及び供給電圧に伴い変化する。本実施例では、干渉信号は、当該ペアの2つのリングオシレータ両方に対して同様に影響を及しうる。製造許容誤差がより大きい場合、より多くのリングオシレータが必要とされうる。製造許容誤差がより小さい場合、より少ないリングオシレータが必要とされうる。
【0049】
いくつかの実施例では、選択部103は、複数のリングオシレータ102(例えば、16個のリングオシレータ200)からリングオシレータの群(例えば、ペア)を選択するように構成される。リングオシレータ群は、複数のカウンタのうち、それぞれに対応するカウンタ群205を装備する。一実施例では、システム100が16個のリングオシレータを採用する場合、相関が計算されるペアは16*15/2=120個であり、多くの計算を要する。計算を減らすため、いくつかの実施例では、選択部103は、複数のカウンタからの第1のカウンタ値をソートし、リングオシレータ群に装備されるカウンタ群からのカウンタ値の類似性に基づいて、リングオシレータ群を選択するように構成される。
【0050】
一実施例では、リングオシレータの現在の周波数(カウンタ値)がまずソートされ、相関特定部104によって、周波数が類似した隣接するもの同士の相関のみが算出される。本実施例では、相関特定部は、ソートしたときに互いに隣り合う値を有する15個のカウンタシーケンス間の相関のみを算出してもよい。また、通知生成部105は、15個のカウンタシーケンスの差の値が小さいものがあまりにも多いか否かのみをチェックしてもよい。
【0051】
一実施例では、16個のカウンタ値のソートは、およそ16・ln(16)≒44.36の比較、すなわち少なくとも45の比較を用いて実施されうる。別の実施例では、ソーティングアルゴリズム又はソーティングネットワークを使用してもよく、これらは、例えば
図3に示すバッチャー(Batcher)のMerge-Exchangeを用いて、16個のリングオシレータが10組の並列比較でソートすることができる。
【0052】
図3は、様々な例示的な実装形態に係る複数のリングオシレータのカウンタ値のためのソーティングネットワークの
図300を示す。一実施例では、図の16行(0~15)は、16個のリングオシレータのカウンタ値、すなわち入力数が最初にロードされたレジスタに対応する。カウンタ値の各比較(縦方向の矢印で示す)の後に、レジスタ内容の潜在的スワップ(potential swap)が行われ、図の最上部に近い方のレジスタが、比較した2つの数のうち小さい方の値を得る。例えば、縦方向の最初の矢印は、レジスタ0とレジスタ8との間でのレジスタ内容の比較及び潜在的スワップを示す。他の比較器が行ったことについて知る比較器は存在しないため、比較器の配列のみが、入力がソートされることを保証しうる。高速マージソートまたはヒープソートアルゴリズムなど、より複雑なアルゴリズムを必要とする条件付きアクションは存在しない。このソーティングネットワークには、10個のクロックサイクルで実行されるか、又は非同期論理を用いた場合にはより高速に実行される10個の並列演算に分類される63個の比較器が存在する。
【0053】
一実施例では、上記のソートステップを実施した後には、互いに隣接するレジスタに保存された少なくとも2つの非常に近いカウンタ値が得られる。最大周波数偏差が16%であり、16個のリングオシレータが実装される場合、カウンタ値の最小の差は、多くとも1%である。予想カウンタ値がおよそ10000の場合、最も近いカウンタ値同士の差はおよそ100である(16ビットカウンタは、216=65536までの値を含みうる)。
【0054】
いくつかの実施例では、選択部103は、カウンタ値の類似性に基づいて、複数のカウンタから得られるカウンタ値を、カウンタ値の一又は複数のクラスタにクラスタリングするように構成される。選択部はまた、一又は複数のクラスタのうち、リングオシレータ群に装備されるカウンタ群からのカウンタ値を含むクラスタを選択するように構成される。例えば、ソート後のリストにおいて互いに隣り合うカウンタ値のシーケンスがクラスタリングされうる。選択部は、互いに近いカウンタ値(例えば、差が1%未満)のクラスタを見つけることができ、これは較正時間になされうる。別の実施例では、選択部は、十分に異なる差、例えば少なくとも1%の差の中央値を有するクラスタのみを維持することができ、これも較正時間において行われうる。選択部は、各クラスタから代表的なカウンタの群(例えば、ペア)を選びうる。相関特定部104は、十分に離れたクラスタにおけるカウンタ値の相関を計算しうる。
【0055】
一実施例では、選択部103は、2つのリングオシレータ、例えばリングオシレータ1021及び1022のペアを選択する。2つのリングオシレータの信号の位相ドリフトが独立ランダムな関係ではなく相関関係となった場合、当該相関は、これら2つのリングオシレータに影響を及ぼす強い干渉が存在することを示しうる。この場合、通知生成部105は、コンピュータシステム110の操作者に警告又は警報を発しうる。通知生成部はまた、コンピュータシステムのセキュリティポリシーにしたがい、セキュアでない操作を防止するためにコンピュータシステムをシャットダウンするか、又はエラー状態にしてもよい。
【0056】
一実施例では、リングオシレータ200の発振信号の位相ドリフトは、繰り返されるカウント期間にわたって発振パルスをカウントすることにより特徴づけられうる。カウント期間の各々は、予め設定された同一の持続時間を有しうる。2つのリングオシレータの選択されたペアについて、対応するカウンタ値のシーケンスは、ランダムノイズ及び干渉により引き起こされる位相ドリフトに影響を受ける。干渉がない状態では、2つのリングオシレータのカウンタ値のシーケンス間の相関は低い。両方のオシレータが同一の干渉に影響を受けている場合、相関は大きくなる。
【0057】
一実施例では、相関特定部104は、2つのリングオシレータの信号間の相関を、当該リングオシレータのカウンタ値シーケンスの差をとることによって特定しうる。相関特定部は、結果として得られるシーケンスの統計的分布を特定しうる。予想分布からの異常なずれ(例えば、0又は非常に小さい値が多すぎること)は、干渉を示す。一実施例では、相関特定部は、カウンタのペアから得られるカウンタ値の差が小さい値である発生頻度をカウントするカウンタを含む。小さい値である割合が既定の部分(例えば、20%)を超える場合、干渉が検出される。
【0058】
一実施例では、相関特定部104は、ビット値のシーケンス(ビットシーケンス)を処理することにより、小さい差をカウントしうる。いくつかの実施例では、ビットシーケンスは、カウンタ205の群又はペアから得られるカウンタ値に基づいて生成される。シーケンスの各ビット値は、カウンタ群から得られるカウンタ値のペアにおける差が既定の閾値差を上回るか下回るかを示す。例えば、相関特定部は、ビットシーケンスを生成するためにリングオシレータのペアの2つのカウンタ値シーケンスに対してXOR演算を実施する。ビットシーケンスにおいて、ビット0は小さい差(例えば、既定の閾値差を下回る差)を示し、ビット1は大きい差(例えば、既定の閾値差以上)を示す。別の実施例では、小さい差の値が経験的に設定されうる(例えば、差の予想値の10%未満)。
【0059】
一実施例では、相関特定部104は、あるカウント期間にわたり、ビットシーケンスの固定長における0の数をカウントすることにより、小さい差をカウントしうる。次のカウント期間において相関レベルを続けて計算するために、相関特定部は次のビットシーケンスの生成を再開しうる。別の実施例では、相関特定部は、スライディングウィンドウ及び移動平均フィルタを継続的にビットシーケンスにかけてもよい。フィルタは、ビットシーケンスに非均一な重み付けを行う一般的な有限インパルス応答(FIR)フィルタであってよい。FIRフィルタの現在の値が、相関レベルを表す。別の実施例では、相関特定部は、無限インパルス応答(IIR)ローパスフィルタを継続的にビットシーケンスにかけてもよく、ここでIIRフィルタの現在のフィルタ値が相関レベルを表す。IIRフィルタは、漸化式:yn=αxn+(1-α)yn-1によって定義される指数移動平均フィルタであってよく、ここでxnはビットシーケンスの現在の要素であり、ynは現在のフィルタ値である。
【0060】
いくつかの実施例では、2つのリングオシレータの信号間の相関が既定の閾値相関を上回る場合、干渉が検出される。カウンタ群から得られるカウンタ値のうち少なくとも既定の一部の値の差が既定の閾値差を下回る場合、これは相関が既定の閾値相関を上回ることを示す。例えば、カウンタ群から得られるカウンタ値の少なくとも20%の差が小さい(例えば、差が0であるか、又は差の予想値の10%未満である)場合、これは、相関が既定の閾値相関を上回ることを示す。既定の閾値相関は、様々な環境条件下でのオフライン測定の結果により、較正中に経験的に設定されうる。
【0061】
いくつかの実施例では、通知生成部105は、相関が既定の閾値相関を上回るときに、リングオシレータ群、さらにそれにより複数のリングオシレータにおける干渉を示す通知を生成するように構成される。一実施例では、システム100内の他のリングオシレータは、干渉の影響を受けている場合もあり、影響を受けていない場合もある。通知生成部は、リングオシレータ群に影響を及ぼしている干渉が存在することを伝えうる。したがって、コンピュータシステム110が攻撃下にあるか、又はコンピュータシステムが作動する環境が仕様を満たさない可能性が存在する。
【0062】
一実施例では、最も近いカウンタ値をもたらした2つのリングオシレータ間に検出される相関が存在しないか、又は小さい相関(既定の閾値相関を下回る相関)しか存在しない場合、当該リングオシレータのうち少なくとも1つは干渉による影響を受けていない。このような安全なリングオシレータは複数存在しうる。通知生成部105は、リングオシレータのペアが発振しない、他の周波数付近での潜在的な干渉については何も伝えることができない場合もある。
【0063】
一実施例では、干渉が検出されない場合、少なくとも1つのリングオシレータは干渉に同期されておらず、安全に使用される。選択された2つのリングオシレータのカウンタ値、又は複数のリングオシレータ102の全てのカウンタ値を一緒にハッシュ化することにより、ハッシュ値における真のランダム性が保証されうる。このように、どのリングオシレータが実際に干渉による影響を受けていないかを特定する必要がない。
【0064】
別の実施例では、リング状構成を用いたPUF装置において、例えば200個を超える複数のリングオシレータが実装される。PUF装置には十分なセキュリティが必要である。例えばPUF装置にEM信号を投入するためのコイルを用いてシリコーンの特定の位置へと選択的に干渉が投入されることを防ぐために、複数のリングオシレータは、互いに近接して配置する必要がある。対応する複数のカウンタ値により、潜在的な干渉の多くのケースを検出することが可能となりうる。いくつかの代表周波数(予想カウンタ値)が識別されうる。代表周波数付近の相関を検出することで、複数のリングオシレータの大部分又は全ての発振周波数をカバーできる。したがって、干渉が検出されない場合には、PUF装置内の複数のリングオシレータの大部分又は全てが干渉に同期されていないことを合理的に示すことができる。
【0065】
一実施例では、コンピュータシステム110は、コンピュータシステムのファームウェアによって施行されうるセキュリティポリシーを有する。セキュリティポリシーは、ハードウェアに組み込まれたセキュリティポリシーを有するコンピュータシステムのコントローラ上、内蔵されたマイクロプロセッサ上、又はより単純な状態機械上でも実行することができる。干渉が検出される場合、当該セキュリティポリシーは通知生成部105に何をすべきか伝えうる。例えば、セキュリティポリシーに基づいて、通知生成部は操作者に警告を送るか又は警報を鳴らし、コンピュータシステムをリセット又はシャットダウンすることができる。
【0066】
図4は、例示的な実装形態に係るコンピュータシステムのセキュリティを提供する方法400の様々なステップを示すフローチャートである。方法は、コンピュータシステム110のセキュリティを提供するためのシステム100によって実行される。システムは、設計段階では同一であるものの、製造段階では異なる発振周波数を有する複数のリングオシレータ102を含む。複数のリングオシレータは、それぞれに対応する複数のカウンタ205であって、複数のリングオシレータの発振出力のインパルスをカウントするように構成される複数のカウンタ205を装備する。ブロック401において、方法は、繰り返されるカウント期間にわたって当該複数のカウンタを開始させ、且つ複数のカウンタを停止させることを含む。ブロック402において、方法は、複数のリングオシレータからリングオシレータ群を選択することを含む。リングオシレータ群は、複数のカウンタのうち、それぞれに対応するカウンタ群を装備する。ブロック403において、方法は、繰り返されるカウント期間にわたってカウンタ群から得られるカウンタ値に基づいてリングオシレータ群の発振出力間の相関を特定することを含む。カウンタ値は、リングオシレータ群のうちのそれぞれのリングオシレータの発振周波数を示す。ブロック404において、方法は、相関が既定の閾値相関を上回る場合に、リングオシレータ群、さらにそれにより複数のリングオシレータにおける干渉を示す通知を生成する。
【0067】
この項では、システム及び方法の追加の態様及び特徴を説明するが、一連の段落として限定することなく示され、当該段落の一部又は全ては、明確さと効率のために英数字で指定されうる。
【0068】
A1.コンピュータシステムのセキュリティを提供するためのシステムであって、複数のリングオシレータと、一又は複数の論理回路とを備え、複数のリングオシレータは、設計段階では同一であるものの製造段階では異なる発振周波数を有し、且つ複数のリングオシレータは、それぞれに対応する複数のカウンタであって、複数のリングオシレータの発振出力のインパルスをカウントするように構成される複数のカウンタを装備し、一又は複数の論理回路は、少なくとも繰り返されるカウント期間にわたって、それぞれに対応する複数のカウンタを開始させ、且つそれぞれに対応する複数のカウンタを停止させ、複数のリングオシレータから、それぞれに対応する複数のカウンタのうち、それぞれに対応する対応するカウンタ群を装備するリングオシレータ群を選択し、繰り返されるカウント期間にわたってそれぞれに対応するカウンタ群から得られるカウンタ値であって、リングオシレータ群のそれぞれのリングオシレータの発振周波数を示すカウンタ値に基づいて、リングオシレータ群の発振出力間の相関を特定し、且つ相関が既定の閾値相関を上回るときに、リングオシレータ群、さらにそれにより複数のリングオシレータにおける干渉を示す通知を生成するように構成される、システム。
【0069】
A2.リングオシレータ群はリングオシレータのペアであり、一又は複数の論理回路がリングオシレータ群を選択するように構成されることは、複数のリングオシレータからリングオシレータのペアを選択するように構成されることを含む、段落A1に記載のシステム。
【0070】
A3.一又は複数の論理回路がリングオシレータ群を選択するように構成されることは、それぞれに対応する複数のカウンタからのカウンタ値をソートし、リングオシレータ群に装備される、それぞれに対応するカウンタ群からのカウンタ値の類似性に基づいてリングオシレータ群を選択するように構成されることを含む、段落A1に記載のシステム。
【0071】
A4.一又は複数の論理回路がリングオシレータ群を選択するように構成されることは、それぞれに対応する複数のカウンタからのカウンタ値を、カウンタ値の類似性に基づいてカウンタ値の一又は複数のクラスタにクラスタリングし、一又は複数のクラスタのうち、リングオシレータ群が装備する、それぞれに対応するカウンタ群からのカウンタ値を含むクラスタを選択するように構成されることを更に含む、段落A1に記載のシステム。
【0072】
A5.一又は複数の論理回路がリングオシレータ群の発振出力間の相関を特定するように構成されることは、それぞれに対応するカウンタ群からのカウンタ値の差を特定するように構成されることを含み、一又は複数の論理回路が通知を生成するように構成されることは、それぞれに対応するカウンタ群からのカウンタ値の少なくとも既定の部分の差が既定の閾値差を下回り、相関が既定の閾値相関を上回ることを示すときに通知を生成するように構成されることを含む、段落A1に記載のシステム。
【0073】
A6.一又は複数の論理回路が相関を特定するように構成されることは、それぞれに対応するカウンタ群からのカウンタ値に基づいて、リングオシレータ群についてのビット値のシーケンスであって、シーケンスの各ビット値は、それぞれに対応するカウンタ群からのカウンタ値のペアにおける差が既定の閾値差を上回るか又は下回るかを示す、ビット値のシーケンスを生成し、且つ相関を示すフィルタ値を生成するためにシーケンスにフィルタをかけるように構成されることを含む、段落A5に記載のシステム。
【0074】
A7.一又は複数の論理回路が差を特定するように構成されることは、それぞれに対応するカウンタ群からのカウンタ値に対し、算術減算又は排他的論理和による演算を実施するように構成されることを含む、段落5に記載のシステム。
【0075】
A8.一又は複数の論理回路がリングオシレータ群を選択するように構成されることは、複数のリングオシレータから複数のリングオシレータ群を選択するように構成されることを含み、一又は複数の論理回路が相関を特定するように構成されることは、複数のリングオシレータ群の発振出力間の相関を特定するように構成されることを含み、一又は複数の論理回路が通知を生成するように構成されることは、相関のうちいずれかが既定の閾値相関を上回るときに通知を生成するように構成されることを含む、段落A1に記載のシステム。
【0076】
A9.一又は複数の論理回路が通知を生成するように構成されることは、視覚的又は聴覚的な通知を生成するように、又はコンピュータシステムをシャットダウン若しくはリセットするように構成されることを含む、段落A1に記載のシステム。
【0077】
B10.コンピュータシステムのセキュリティを提供するためのシステムにより実行される方法であって、システムは、設計段階では同一であるものの製造段階では異なる発振周波数を有する複数のリングオシレータを備え、複数のリングオシレータは、それぞれに対応する複数のカウンタであって、複数のリングオシレータの発振出力のインパルスをカウントするように構成される複数のカウンタを装備し、方法は、繰り返されるカウント期間にわたって、それぞれに対応する複数のカウンタを開始させ、且つそれぞれに対応する複数のカウンタを停止させることと、複数のリングオシレータから、それぞれに対応する複数のカウンタのうち、それぞれに対応するカウンタ群を装備するリングオシレータ群を選択することと、繰り返されるカウント期間にわたって、それぞれに対応するカウンタ群から得られるカウンタ値であって、リングオシレータ群のそれぞれのリングオシレータの発振周波数を示すカウンタ値に基づいて、リングオシレータ群の発振出力間の相関を特定することと、相関が既定の閾値相関を上回るときに、リングオシレータ群、さらにそれにより複数のリングオシレータにおける干渉を示す通知を生成することとを含む、方法。
【0078】
B11.リングオシレータ群はリングオシレータのペアであり、リングオシレータ群を選択することは、複数のリングオシレータからリングオシレータのペアを選択することを含む、段落B10に記載の方法。
【0079】
B12.リングオシレータ群を選択することは、それぞれに対応する複数のカウンタからのカウンタ値をソートし、リングオシレータ群に装備される、それぞれに対応するカウンタ群からのカウンタ値の類似性に基づいてリングオシレータ群を選択することを含む、段落B10に記載の方法。
【0080】
B13.リングオシレータ群を選択することは、それぞれに対応する複数のカウンタからのカウンタ値を、カウンタ値の類似性に基づいてカウンタ値の一又は複数のクラスタにクラスタリングし、一又は複数のクラスタのうち、リングオシレータ群が装備する、それぞれに対応するカウンタ群からのカウンタ値を含むクラスタを選択することを更に含む、段落B10に記載の方法。
【0081】
B14.リングオシレータ群の発振出力間の相関を特定することは、それぞれに対応するカウンタ群からのカウンタ値の差を特定することを含み、通知を生成することは、それぞれに対応するカウンタ群からのカウンタ値の少なくとも既定の部分の差が既定の閾値差を下回り、相関が既定の閾値相関を上回ることを示すときに通知を生成することを含む、段落B10に記載の方法。
【0082】
B15.相関を特定することは、それぞれに対応するカウンタ群からのカウンタ値に基づいて、リングオシレータ群についてのビット値のシーケンスであって、シーケンスの各ビット値は、それぞれに対応するカウンタ群からのカウンタ値のペアにおける差が既定の閾値差を上回るか又は下回るかを示す、ビット値のシーケンスを生成することと、相関を示すフィルタ値を生成するためにシーケンスにフィルタをかけることと
を含む、段落B14に記載の方法。
【0083】
B16.それぞれに対応するカウンタ群からのカウンタ値に対し、算術減算又は排他的論理和による演算を実施することを含む、段落B14に記載の方法。
【0084】
B17.リングオシレータ群を選択することは、複数のリングオシレータから複数のリングオシレータ群を選択することを含み、一又は複数の論理回路が相関を特定することは、複数のリングオシレータ群の発振出力間の相関を特定することを含み、一又は複数の論理回路が通知を生成することは、相関のうちいずれかが既定の閾値相関を上回るときに通知を生成するように構成されることを含む、段落B10に記載の方法。
【0085】
B18.一又は複数の論理回路が通知を生成するように構成されることは、視覚的又は聴覚的な通知を生成するように、又はコンピュータシステムをシャットダウン若しくはリセットするように構成されることを含む、段落B10に記載の方法。
【0086】
これらの開示内容に関連して、上述の説明及び添付図面に提示された教示の恩恵を有する本開示の多数の修正例及び他の実装が、当業者には想起されるであろう。したがって、本開示が、開示されている特定の実装形態に限定されるものではないこと、及び、変形例及びその他の実装形態も付随する特許請求の範囲に含まれるよう意図されていることを理解されたい。さらに、上述の説明及び添付図面は、要素及び/又は機能の特定の例示的な組み合わせに照らして例示的な実装形態を説明しているが、付随する特許請求の範囲から逸脱せずに、代替的な実装形態によって、要素及び/又は機能の様々な組み合わせが提供されうることを理解すべきである。これに関しては、例えば、明確に上述した要素及び/又は機能とは異なる要素及び/又は機能の組み合わせもまた考えられ、添付の請求項の範囲のいくつかの項に記載される。本明細書では具体的な用語を採用しているが、それらは、一般的且つ説明的な意味でのみ使用されており、限定を目的とするものではない。