(57)【要約】      （修正有）【課題】リングオシレータベースのエントロピー源への位相トラッキングアタックに対する対応策を提供する。【解決手段】一又は複数の論理回路は、複数の独立した第１のエントロピー値をハードウエア源から受け取り３０１、複数の独立した第１のエントロピー値のうちの少なくとも幾つかを、第２のエントロピー値を生成するための関数に適用し３０２、疑似乱数生成器に第２のエントロピー値を初期値として与える３０４。一又は複数の論理回路はまた、初期値として第２のエントロピー値を与えられた疑似乱数生成器を用いて乱数を生成し３０５、この乱数を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成することができるか、さもなければ、生成された数を安全な乱数として暗号化プロトコルといったアプリケーションに使用することができる３０６。【選択図】図３
2019145082.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムのセキュリティを提供するためのシステムであって、少なくとも：
複数の独立した第１のエントロピー値をハードウエア源から受け取り；
前記複数の独立した第１のエントロピー値のうちの少なくとも幾つかを第２のエントロピー値を生成するための関数に適用し；
疑似乱数生成器に前記第２のエントロピー値を初期値として与え；
初期値として前記第２のエントロピー値を与えられた前記疑似乱数生成器を用いて乱数を生成し；
前記乱数を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成する
ように構成された、一又は複数の論理回路を備えるシステム。
【請求項２】
前記一又は複数の論理回路が暗号化テキスト又はメッセージ認証コードの前記ブロックを生成するように構成されていることが、前記乱数から構成される又は導かれる鍵を用いて暗号化テキスト又はメッセージ認証コードの前記ブロックを生成するように構成されていることを含む、請求項１に記載のシステム。
【請求項３】
前記一又は複数の論理回路が暗号化テキスト又はメッセージ認証コードの前記ブロックを生成するように構成されていることが、少なくとも：
鍵が生成される、前記乱数を用いた鍵共有プロトコルを実施し；
前記鍵を用いて暗号化テキスト又はメッセージ認証コードの前記ブロックを生成する
ように構成されていることを含む、請求項１又は２に記載のシステム。
【請求項４】
前記ハードウエア源がリングオシレータであり、前記一又は複数の論理回路が前記複数の独立した第１のエントロピー値を受け取るように構成されていることが、前記リングオシレータから前記複数の独立した第１のエントロピー値を受け取るように構成されていることを含む、請求項１から３のいずれか一項に記載のシステム。
【請求項５】
前記ハードウエア源が単一のハードウエア源であり、前記一又は複数の論理回路が前記複数の独立した第１のエントロピー値を受け取るように構成されていることが、前記単一のハードウエア源から前記複数の独立した第１のエントロピー値を受け取るように構成されていることを含む、請求項１から４のいずれか一項に記載のシステム。
【請求項６】
前記ハードウエア源が複数の独立したハードウエア源であり、前記一又は複数の論理回路が前記複数の独立した第１のエントロピー値を受け取るように構成されていることが、前記複数の独立したハードウエア源から前記複数の独立した第１のエントロピー値を受け取るように構成されていることを含む、請求項１から５のいずれか一項に記載のシステム。
【請求項７】
前記関数が順列関数であり、前記一又は複数の論理回路が前記複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、前記複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記順列関数に適用するように構成されていることを含む、請求項１から６のいずれか一項に記載のシステム。
【請求項８】
前記一又は複数の論理回路が前記複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが：
前記複数の独立した第１のエントロピー値を独立した第１のエントロピー値の複数のグループに分け；
前記独立した第１のエントロピー値の複数のグループを前記順列関数に適用して順序変更されたエントロピー値のグループを生成し；
前記順序変更されたエントロピー値のグループを連結して前記第２のエントロピー値を生成する
ように構成されていることを含む、請求項７に記載のシステム。
【請求項９】
前記関数がハッシュ関数であり、前記一又は複数の論理回路が前記複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、前記複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記ハッシュ関数に適用するように構成されていることを含む、請求項１から８のいずれか一項に記載のシステム。
【請求項１０】
前記関数がビットミキサーであり、前記一又は複数の論理回路が前記複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、前記複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記ビットミキサーに適用するように構成されていることを含む、請求項１から９のいずれか一項に記載のシステム。
【請求項１１】
前記一又は複数の論理回路が前記複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、前記複数の独立した第１のエントロピー値のうちの複数のエントロピー値を、前記第２のエントロピー値を生成するための前記関数に選択的に適用するように構成されていることを含む、請求項１から１０のいずれか一項に記載のシステム。
【請求項１２】
前記一又は複数の論理回路が前記複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、前記複数の独立した第１のエントロピー値のうちの少なくとも幾つかと秘密鍵とを、前記第２のエントロピー値を生成するための前記関数に適用するように構成されていることを含む、請求項１から１１のいずれか一項に記載のシステム。
【請求項１３】
請求項１から１２のいずれか一項に記載のシステムを実装するコンピュータシステムのセキュリティを提供する方法であって：
複数の独立した第１のエントロピー値をハードウエア源から受け取ること；
前記複数の独立した第１のエントロピー値のうちの少なくとも幾つかを第２のエントロピー値を生成するための関数に適用すること；
疑似乱数生成器に前記第２のエントロピー値を初期値として与えること；
初期値として前記第２のエントロピー値を与えられた前記疑似乱数生成器を用いて乱数を生成すること；及び
前記乱数を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成すること
を含む方法。
【請求項１４】
暗号化テキスト又はメッセージ認証コードの前記ブロックを生成することが、前記乱数から構成される又は導かれる鍵を用いて暗号化テキスト又はメッセージ認証コードの前記ブロックを生成することを含む、請求項１３に記載の方法。
【請求項１５】
暗号化テキスト又はメッセージ認証コードの前記ブロックを生成することが、少なくとも：
鍵が生成される、前記乱数を用いた鍵共有プロトコルを実施すること；及び
前記鍵を用いて暗号化テキスト又はメッセージ認証コードの前記ブロックを生成すること
を含む、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概してコンピュータシステムのセキュリティを提供することに関し、特に、リングオシレータベースのエントロピー源への位相トラッキングアタックに対する対応策を用いてコンピュータシステムのセキュリティを提供することに関する。
【背景技術】
【０００２】
真の乱数は、情報セキュリティに広く用いられている。例えば、真の乱数は、疑似乱数生成器が暗号鍵を生成するためのシードとして使用することができる。リングオシレータは通常、それらの発振信号の位相が真のランダム回路ノイズの影響を受けるため、真の乱数を生成するためのエントロピー源として使用される。しかしながら、リングオシレータの発振信号は、この回路から漏れることがある。よって、権限を有さない第三者が、回路から無線で放射される又は電子回路のコネクタ若しくはピンに出現する漏洩発振信号を検出できる可能性がある。権限を有さない第三者が位相トラッキングアタックを実施して漏洩発振信号からリングオシレータの位相ドリフトを再構築することに成功できる場合、この権限を有さない第三者は、リングオシレータによって生成された真の乱数を再現することができるであろう。これによりこれら真の乱数が情報セキュリティに使用され、例えば暗号鍵が生成されると、セキュリティは失われる。
【０００３】
既存の解決法は、リングオシレータからの電磁（ＥＭ）放射から保護するために、高価な金属シールドを回路の周りに用いることを含む。しかしながら、高価な金属シールドの使用は、通常効果的でない。これは、発振信号がＥＭ放射として漏出し、リングオシレータを実現している電子回路のピン若しくはコネクタ又はリングオシレータに給電する電線上に観察可能であるためである。
【０００４】
したがって、上記の問題点のうちの少なくとも幾つかと、起こりうる他の問題点を考慮した、システム及び方法を手に入れることが望ましいであろう。
【発明の概要】
【０００５】
本開示の例示的実装態様は、リングオシレータベースのエントロピー源への位相トラッキングアタックに対する対応策を用いてコンピュータシステムのセキュリティを提供することを目的としている。既存の解決法とは異なり、例示的実装態様は、権限を有さない第三者が一又は複数のリングオシレータによって生成された真の乱数を再現するために漏出発振信号内の情報を容易に使用することができないように前記情報を難読化するための、プロトコルレベルの解決法を提供する。これらプロトコルレベルの解決法は、一又は複数のリングオシレータによって生成された複数のエントロピー値を関数に適用することに基づいている。したがって、これらプロトコルレベルの解決法は、安価で効果的であり、実施が容易である。
【０００６】
ゆえに、本開示は、限定しないが、下記の例示的な実装態様を含む。
【０００７】
幾つかの例示的実装態様は、コンピュータシステムのセキュリティを提供する方法を提供し、この方法は：ハードウエア源から複数の独立した第１のエントロピー値を受け取ること；複数の独立した第１のエントロピー値を第２のエントロピー値を生成するための関数に適用すること；疑似乱数生成器に第２のエントロピー値を初期値として与えること；初期値として第２のエントロピー値を与えられた疑似乱数生成器を用いて乱数を生成すること；及び乱数を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成することを含む。
【０００８】
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、暗号化テキスト又はメッセージ認証コードのブロックを生成することは、乱数から構成される又は導かれる鍵を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成することを含む。
【０００９】
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、暗号化テキスト又はメッセージ認証コードのブロックを生成することは、少なくとも：鍵が生成される、乱数を用いる鍵共有プロトコルを実施すること；及び鍵を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成することを含む。
【００１０】
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、ハードウエア源はリングオシレータであり、複数の独立した第１のエントロピー値を受け取ることは、リングオシレータから複数の独立した第１のエントロピー値を受け取ることを含む。
【００１１】
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、ハードウエア源は単一のハードウエア源であり、一又は複数の論理回路が複数の独立した第１のエントロピー値を受け取るように構成されていることは、前記単一のハードウエア源から複数の独立した第１のエントロピー値を受け取るように構成されていることを含む。
【００１２】
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、ハードウエア源は複数の独立したハードウエア源であり、複数の独立した第１のエントロピー値を受け取ることは、複数の独立したハードウエア源から複数の独立した第１のエントロピー値を受け取ることを含む。
【００１３】
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、関数は順列関数であり、一又は複数の論理回路が複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることは、複数の独立した第１のエントロピー値のうちの少なくとも幾つかを順列関数に適用するように構成されていることを含む。
【００１４】
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用することは：複数の独立した第１のエントロピー値を独立した第１のエントロピー値の複数のグループに分けること；独立した第１のエントロピー値の複数のグループを順列関数に適用して順序変更されたエントロピー値のグループを生成すること；及び順序変更されたエントロピー値のグループを連結して第２のエントロピー値を生成することを含む。
【００１５】
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、関数はハッシュ関数であり、複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用することは、複数の独立した第１のエントロピー値のうちの少なくとも幾つかをハッシュ関数に適用することを含む。
【００１６】
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、関数はビットミキサーであり、複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用することは、複数の独立した第１のエントロピー値のうちの少なくとも幾つかをビットミキサーに適用することを含む。
【００１７】
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用することは、複数の独立した第１のエントロピー値のうちの複数のエントロピー値を、第２のエントロピー値を生成するための関数に選択的に適用することを含む。
【００１８】
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用することは、複数の独立した第１のエントロピー値のうちの少なくとも幾つか及び秘密鍵を、第２のエントロピー値を生成するための前記関数に適用することを含む。
【００１９】
幾つかの例示的実装態様は、コンピュータシステムのセキュリティを提供するためのシステムを提供し、このシステムは、少なくとも、いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法を実施するように構成された一又は複数の論理回路を備える。
【００２０】
本開示の上記の特徴、態様、及び利点、及びその他の特徴、態様、及び利点は、以下の詳細な説明と共に、簡潔に後述する添付図面を参照することで明らかになろう。本開示は、本開示において明記される二つ、三つ、四つ、又はそれよりも多くの特徴又は要素のあらゆる組み合わせを、そのような特徴又は要素が本明細書に記載される特定の例示的な実装態様において明示的に組み合わされているか、又は他の方法で記載されているかどうかに関係なく含む。本開示は、本開示のすべての分離可能な特徴又は要素が、その態様及び例示的な実装態様のいずれにおいても、本開示の文脈に明記しない限りは、組み合わせ可能であると見なされることを意図している。
【００２１】
したがって、この「発明の概要」は、本開示の幾つかの態様の基本的な理解を提供するために、幾つかの例示的な実装態様を要約することのみを目的に提供されていると理解されたい。したがって、上述の例示的な実装態様は例に過ぎず、いかなる意味においても、本開示の範囲又は本質を狭めると解釈すべきではないことを理解されたい。その他の例示的な実装態様、態様、及び利点は、添付図面と併せて以下の詳細説明を参照することで明らかになろう。添付図面は、例として、記載されている幾つかの例示的実装態様の原理を示すものである。
【図面の簡単な説明】
【００２２】
ここまでは、本開示の例示的実装態様を一般的な用語で説明した。ここからは添付図面を参照する。これらの図面は必ずしも正確な縮尺で描かれているわけではない。
【図１】本発明の例示的実装態様による、コンピュータシステムのセキュリティを提供するためのシステムを示している。
【図２】種々の例示的実装態様による、システムのリングオシレータを示している。
【図３】種々の例示的実装態様による、コンピュータシステムのセキュリティを提供する方法の様々なステップを示すフロー図である。
【発明を実施するための形態】
【００２３】
添付図面を参照し、本開示の幾つかの実装態様について、以下でより詳しく説明する。添付図面には本開示の実装態様の一部が示されているが、すべてが示されているわけではない。実際、本開示の様々な実装態様は、多くの異なる形態で具現化されてよく、本明細書に明記される実装態様に限定されると解釈すべきではない。むしろ、これら例示的実装態様は、本開示が包括的且つ完全なものになるように、及び当業者に本開示の範囲が十分に伝わるように、提供される。例えば、別段の断りがない限り、何かが「第１の」、「第２の」等のものであるという表現は、特定の順番を示すと解釈すべきでない。また、（別段の断りがない限り）何か別のものの上にあると説明され得るものは、その代わりに下にあることもあり、逆もまた然りである。同様に、何か別の物の左にあると説明され得る物は、その代わりに右にあることもあり、逆もまた然りである。全体を通して、類似の参照番号は類似の要素を表している。
【００２４】
本開示の例示的実装態様は、概してコンピュータシステムのセキュリティを提供することを目的とし、特に、リングオシレータベースのエントロピー源への位相トラッキングアタックに対する対応策を用いてコンピュータシステムのセキュリティを提供することを目的とする。
【００２５】
図１は、本開示の例示的実装態様によるコンピュータシステムのセキュリティ１１０を提供するためのシステム１００を示している。コンピュータシステム１１０は、図示のシステム１００を含むことができる。例えば、コンピュータシステム１１０はシステム１００を備える。別の実施例では、コンピュータシステム１１０とシステム１００とは、二つの分離したシステムである。
【００２６】
システム１００は、多数の構成要素、ユニット等（一般に「構成要素」）の各々の一又は複数を含むことができ、そのうちの少なくとも幾つかは、マルチプレクサ、レジスタ、演算論理装置、メモリ、マイクロプロセッサ等といった論理回路を含み得るか、又はそのような論理回路を用いて実施され得る。システム１００は、多数の異なる用途のいずれかのために設計することができ、位相トラッキングアタックに対する対応策をシステム１００に提供し、コンピュータシステム１１０のセキュリティを提供するための特定の適用性を有し得る。
【００２７】
コンピュータシステム１１０は、プロセッサとプロセッサに連結されたコンピュータ可読記憶媒体又はメモリとを含むことができ、プロセッサは、メモリに記憶された一又は複数のコンピュータプログラムを含むコンピュータ可読プログラムコードを実行するように構成されている。一又は複数の機能及び機能の組み合わせが、特殊用途電子ハードウエアに基づくシステム及び／又は特定の機能を実施するプロセッサ、又は特殊用途ハードウエアとプログラムコード命令との組み合わせによって実行されうることも、理解されよう。図示のように、メモリに記憶されてプロセッサによって実行可能コンピュータプログラム（複数可）は、安全なアプリケーションプログラム１１１（更に簡単に安全なアプリケーションとも呼ばれる）を含み得る。
【００２８】
幾つかの実施例では、図示のように、システム１００は、複数の独立した第１のエントロピー値を生成するようにハードウエア源１０２に命令又はハードウエア源を制御するように構成された制御回路１０１を含む。独立した第１のエントロピー値は、ハードウエア源によって生成された真の乱数、例えば、真のランダムビットのシーケンスを含み得る。ハードウエア源は、位相トラッキングアタックによって攻撃され得る。権限を有さない第三者は、位相トラッキングアタックを介して独立した第１のエントロピー値を再現し得る。
【００２９】
幾つかの実施例では、ハードウエア源１０２は、シード生成器１０３に複数の独立した第１のエントロピー値を提供するように構成される。シード生成器は、複数の独立した第１のエントロピー値を受け取り、複数の独立した第１のエントロピー値のうちの少なくとも幾つかを、第２のエントロピー値を生成するための関数に適用するように構成される。第２のエントロピー値は、位相トラッキングアタックによって容易に攻撃され得ない安全な値である。つまり、権限を有さない第三者が第２のエントロピー値を再現することは、困難であるか、又は不可能である。
【００３０】
幾つかの実施例では、シード生成器１０３は、システム１００のホワイトニング関数１０４に第２のエントロピー値を提供するように構成される。ホワイトニング関数は、バイアス又は自己相関といった第２のエントロピー値の潜在的な非ランダム特性を除去して、第２のエントロピー値を疑似乱数生成器１０５に提供することができる。疑似乱数生成器は、シード（第２のエントロピー値）を用いて乱数（真の乱数ではなく疑似乱数）を生成するように構成される。第２のエントロピー値は安全な値であるので、疑似乱数生成器によって使用されるシードは安全である。したがって、疑似乱数生成器によって生成された乱数も安全である。つまり、権限を有さない第三者が疑似乱数生成器によって生成された乱数を再現することは、不可能ではないとしても困難である。
【００３１】
幾つかの実施例では、疑似乱数生成器１０５は、安全なアプリケーション１１１の鍵生成器１１２に乱数を提供するように構成される。鍵生成器は、乱数を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成するように構成される。鍵生成器は、生成された暗号化テキスト又はメッセージ認証コードのブロックをコンピュータシステム１１０の安全なアプリケーション１１１に提供することができる。疑似乱数生成器によって生成された乱数は安全なので、生成された暗号化テキスト又はメッセージ認証コードのブロックも安全である。したがって、安全なアプリケーションで生成された暗号化テキスト又はメッセージ認証コードのブロックを使用することも安全である。
【００３２】
幾つかの実施例では、安全な又は暗号のアプリケーション１１１は、乱数から構成される又は導かれる鍵を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成するように構成される。幾つかの実施例では、鍵生成器１１２は、少なくとも、鍵が生成される、乱数を用いた鍵共有プロトコルを実施し、鍵を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成するように構成される。
【００３３】
幾つかの実施例では、ハードウエア源１０２はリングオシレータである（以下の図２参照）。このような実施例では、シード生成器１０３は、リングオシレータから複数の独立した第１のエントロピー値を受け取るように構成される。
【００３４】
幾つかの実施例では、ハードウエア源１０２は、単一のハードウエア源、例えば単一のリングオシレータである。このような実施例では、シード生成器１０３は、単一のハードウエア源から複数の独立した第１のエントロピー値を受け取るように構成される。幾つかの実施例では、ハードウエア源は、複数の独立したハードウエア源、例えば複数のリングオシレータである。シード生成器は、複数の独立したハードウエア源から複数の独立した第１のエントロピー値を受け取るように構成される。
【００３５】
幾つかの実施例では、シード生成器１０３は順列関数を含む。シード生成器は、複数の独立した第１のエントロピー値のうちの少なくとも幾つかを順列関数に適用するように構成される。幾つかの実施例では、シード生成器は、複数の独立した第１のエントロピー値を独立した第１のエントロピー値の複数のグループに分け、独立した第１のエントロピー値の複数のグループを順列関数に適用して順序変更されたエントロピー値のグループを生成し、順序変更されたエントロピー値のグループを連結して第２のエントロピー値を生成するように構成される。
【００３６】
幾つかの実施例では、シード生成器１０３はハッシュ関数を含む。シード生成器は、複数の独立した第１のエントロピー値のうちの少なくとも幾つかを、第２のエントロピー値を生成するように構成されたハッシュ関数に適用する。幾つかの実施例では、シード生成器はビットミキサーを含む。シード生成器は、複数の独立した第１のエントロピー値のうちの少なくとも幾つかをビットミキサーに適用して第２のエントロピー値を生成するように構成される。
【００３７】
幾つかの実施例では、シード生成器１０３は、複数の独立した第１のエントロピー値のうちの複数のエントロピー値を、第２のエントロピー値を生成するための関数に選択的に適用するように構成される。例えば、シード生成器は、選択アルゴリズムに従って、複数の独立した第１のエントロピー値のうちのすべてではなく一部を、第２のエントロピー値を生成するための関数に選択することができる。
【００３８】
幾つかの実施例では、シード生成器１０３は、複数の独立した第１のエントロピー値のうちの少なくとも幾つかと秘密鍵とを、第２のエントロピー値を生成するための関数に適用するように構成される。例えば、図示のように、シード生成器は、二つの入力を有する。第１の入力は、ハードウエア源１０２から複数の独立した第１のエントロピー値を受け取るように構成される。第２の入力は、不揮発性メモリ１０６から秘密鍵を受け取るように構成される。シード生成器は、二つの入力からのデータを適用して第２のエントロピー値を生成することができる。シード生成器は、コンピュータシステム１１０の誤作動が秘密を曝露しないように、システム１００のローカルビルディングブロックとすることができる。
【００３９】
一実施例では、制御論理１０１は、乱数が要求されたとき、１０２において一又は複数のリングオシレータを起動及び停止させるように構成された電子制御論理とすることができる。リングオシレータは、リングオシレータが実行されている間に発振パルスを数えるようにカウンタを駆動する。シード生成器１０３は、電子論理回路において実施することのできる複数の関数を含む。シード生成器は、保護記憶域１０６に記憶された秘密鍵にしたがって、カウンタの値を、ハッシュ、順序変更、選択及び／又は組み合わせることができる。記憶域は、不揮発性メモリ、ＲＯＭ又は磁気若しくは光ディスクドライブでよい。結果として得られた値は、バイアス又は自己相関といった非ランダム特性を除去するために、ホワイトニング関数１０４の電子論理回路で更に処理される。ホワイトニング関数でのプロセスは、時にデータ調整又はホワイトニングと呼ばれる。別の実施例では、ホワイトニング関数は、１０２と１０３の間に配置することもできる。疑似乱数生成器１０５は、電子論理回路又はマイクロプロセッサ機能とすることのできる、暗号疑似乱数生成器を含む。疑似乱数生成器は、ホワイトニング関数からの難読化された真の乱数によって初期値を与えられる。疑似乱数生成器は、このような値が利用可能であるときは常に、ホワイトニング関数からの真の乱数を更に難読化するために、その内部状態へ混合することができる。最後に、乱数の要求元は安全なアプリケーション１１１であり、これは暗号鍵の生成及び／又はセキュリティプロトコルに乱数を使用することができる。
【００４０】
図２は、種々の例示的実装態様によるシステム１００のリングオシレータ２００を示す。幾つかの実施例では、図１のハードウエア源１０２は、一又は複数のリングオシレータ２００を含む。
【００４１】
リングオシレータ２００は複数の論理ゲートを含み、そのうち奇数の論理ゲートは、直列接続された直前の論理ゲートに接続されたそれらの入力を反転させ、例えば、図２に示される２０１〜２０４と否定積（ＮＡＮＤ）ゲートとを反転させる。複数のインバータのうちの第１のインバータ、例えばインバータ２０１は、入力を受け取り、直列接続の次のインバータ、例えばインバータ２０２への入力として出力を生成する（入力の論理否定）。複数のインバータのうち最後のインバータを除く各インバータの出力は、複数のインバータのうちの次のインバータのための入力として使用される。複数のインバータのうちの最後のインバータ、例えばインバータ２０４の出力は、複数のインバータのうちの第１のインバータ、例えばインバータ２０１へフィードバックされて、その入力として使用される。
【００４２】
リングオシレータ２００の電子回路ノイズはインバータのスイッチング閾値をランダムに変化させ、これはオシレータ信号の位相「ジッタ」（ランダム位相変化）に変換することができる。位相ジッタは位相ドリフトにつれて経時的に蓄積し、これはオシレータ信号の位相を、同じ周波数の安定な信号の位相に対して大幅にゆっくりと変化させる。事前設定された期間の後でリングオシレータの発振期間を数えることによりカウンタを使用すること又はオシレータ信号のサンプルを取ることにより、真の乱数、例えば、１ビットの０又は１が生成される。事前設定期間は、独立のクロック信号により設定することができる。
【００４３】
幾つかの実施例では、複数のインバータのうちの最後のインバータ、例えばインバータ２０４の出力は、所定の期間内の発振期間を数えることにより複数の独立した第１のエントロピー値を生成するためにカウンタ２０５に送られる。ハードウエア源１０２から複数の独立した第１のエントロピー値を生成するための複数の方法がある。一実施例では、ハードウエア源１０２は単一のリングオシレータを含み、複数の独立した第１のエントロピー値は、リングオシレータを複数回にわたって繰り返し起動及び停止させた後で、カウンタの多くの（例えば２０の）カウンタ値を記憶することにより生成することができる。別の実施例では、カウンタを読み取るためにリングオシレータを繰り返し起動及び停止させる代わりに、リングオシレータの発振信号を、二つの（デュアル又はピンポン）カウンタのうちの一つへと所定の期間の間に交互にリダイレクトすることができる。リダイレクトの時点で、多くの（例えば２０の）カウンタ値を複数の独立した第１のエントロピー値として記憶することができる。第３の実施例では、ハードウエア源１０２は、各々が各自のカウンタ２０５を有する複数のリングオシレータ（例えばｎ＝２０）を含む。複数のリングオシレータは、同じ又は異なる設計のものとすることができる。複数の独立した第１のエントロピー値は、特定の共通期間にわたり複数のリングオシレータを実施すること又は異なる期間にわたり複数のリングオシレータのうちの幾つかを実施すること、及びそれらのカウンタ値を保存することにより、生成することができる。
【００４４】
リングオシレータ２００に基づく乱数生成器のセキュリティに対する一つの可能な攻撃は、サイドチャネル上での情報漏洩を利用することにより発振信号の瞬時位相をトラッキングすることである。発振信号の周波数及び位相に関して十分な量の情報がサイドチャネル上で漏洩している場合、権限を有さない第三者がリングオシレータの位相ドリフトを学習することができ、リングオシレータによって生成された複数の独立した第１のエントロピー値を再現することができる。疑似乱数生成器１０５が複数の独立した第１のエントロピー値をシードとして使用する場合、権限を有さない第三者は、乱数疑似乱数生成器によって生成された乱数を再現し、この乱数を使用して生成された暗号化テキスト又はメッセージ認証コードのブロックを知ることができる。このような状況では、生成された暗号化テキスト又はメッセージ認証コードのブロックを用いるコンピュータシステム１１０は安全でない。
【００４５】
本開示の例示的実装態様は、権限を有さない第三者には、一つだけでなく関与する多くのエントロピー値と、場合によっては更に第１のエントロピー値を混合するために使用される秘密鍵も必要となるように、複数の独立した第１のエントロピー値を使用する。本開示の実装態様は、漏出したオシレータ信号のみから権限を有さない第三者が疑似乱数生成器１０５で使用される実際のシードを決定することができないように、生成された第１のエントロピー値を難読化する様々な方法を再提示する。
【００４６】
幾つかの実施例では、シード生成器１０３は順列関数を含む。第１のエントロピー値の一つとして使用されることになる単一のカウンタ値は、リングオシレータ２００によって生成された利用可能なｎ個のカウンタ値から疑似ランダムに選択される。この単一のカウンタ値は、不揮発性メモリ１０６からの秘密鍵に基づいて、暗号アルゴリズムによって疑似ランダムに選択される。権限を有さない第三者は、疑似ランダム的選択のための秘密鍵なしでは、いずれのカウンタ値が実際に使用されるかを知ることがない。複数の（例えば、ｋ＝１５）このようなステップが、ｋ個の独立したカウンタ値のシーケンス、例えば、ｋ個のビットのシーケンスを提供するために、リングオシレータにおいて実施される。このｋ個のカウンタ値のシーケンスがシード生成器によって順序変更されて、第２のエントロピー値が生成される。ｋ個のカウンタ値（第２のエントロピー値）の順序変更されたシーケンスはシードとして使用される。権限を有さない第三者がｋ個のカウンタ値のうちのすべてのカウンタ値を、位相トラッキングアタックの成功により学習したとしても、シードを解き当てる可能性はわずか１／ｎ＾ｋである。ｎ＝２０及びｋ＝１５という実際の値では、アタック成功の可能性は≒２−６５であり、これは無視できるものである。ｎ及びｋの値が大きくなるほど、この可能性は更に低下する。
【００４７】
より高いスループットを用いる別の実施例は、単一のリングオシレータ２００を実行するｎ回の繰り返しにおいて、又はｎ個のリングオシレータを実行する一回の繰り返し（又は二回、例えば、ｎ／２個のリングオシレータを実行する二回の繰り返しの組み合わせ）においてにおいて捕獲されるｎ個すべてのカウンタ値を使用する。捕獲されたカウンタの組の単一のカウンタ値をランダムに選択する代わりに、ｎ個すべてのカウンタ値を、疑似ランダムな順序で（秘密鍵を用いて演算された）使用することができる。一実施例では、ｎ＝２０のカウンタは、２０！＝２４３２９０２００８１７６６４００００（約２６１）の順列に並べることができる。位相トラッキングアタックは、ｎ！の順列すべてを検索しなければならず、これは時間が掛かり過ぎて現実的でない。
【００４８】
上記方法の組み合わせも使用することができる。例えば、ｎ＝８のリングオシレータのカウンタが疑似ランダムに順序付けられ、順序変更されたカウンタ値のこのような組のうちの４つが、シードとして連結される（例えば、３２ビットのシーケンス）。可能性の数は（ｎ！）４≒２６１であり、これは現実的なアタックとして試みるには多すぎる。
【００４９】
一又は複数のリングオシレータ２００によって生成されたカウンタ値を疑似ランダムに選択するために、暗号アルゴリズムを用いるストリーム生成器を使用することができる。例えば、ストリーム生成器は、固定の秘密鍵（記憶域１０６に記憶された）を用いる高度暗号化標準（ＡＥＳ）といった標準の暗号を用いてカウンタを繰り返し暗号化することによりカウンタモードで、又は標準のフィードバックモードの一つで（例えば、直前の暗号化テキストを反復的に暗号化することにより）、ブロック暗号を含む。秘密の初期データブロック（記憶域１０６に記憶された鍵）と一定のメッセージブロックとを用いるハッシュ関数を、暗号ストリーム生成器を定義するために繰り返し呼び出すことができる。
【００５０】
例示的な疑似ランダム選択アルゴリズムは、以下のように説明することができる。（Ａ１、Ａ２…、ＡＮ）から選択されるＮ個のアイテムが存在し、ｂはＮ≦２ｂとなる最小数である。上記ストリーム生成器によって生成されたストリームＳから、次の未詳のｂのビットが取得され、これが数Ｂを形成する。Ｂ≦Ｎである場合、選択される入力はＡＢであり、ｂのビットはＳから廃棄される。Ｂが＞Ｎである場合、ｂのビットはＳから廃棄され、Ｂ≦Ｎが見つかるまで再試行が行われる。疑似ランダム選択アルゴリズムは、シード生成器１０３の選択器において実施することができる。したがって、選択器を使用して、複数の独立した第１のエントロピー値のすべてではなく一部を、第２のエントロピー値を生成するための順列関数に適用することができる。
【００５１】
第２のエントロピー値を生成するためにシード生成器１０３によって実施される例示的な疑似ランダム的順序変更は、以下のように説明することができる。エレメントを自然の順序Ａ１、Ａ２…、ＡＮで用いて始める。ｉ＝Ｎ…２の場合、現在ｉの位置にあるエレメントを、位置１…ｉから疑似ランダムに選択されたエレメントとスワップする。スワップされるエレメントは、上述の疑似ランダム選択アルゴリズムによって選択することができる。例示的疑似ランダム順序変更は、クヌースのシャッフル（Ｋｎｕｔｈ’ｓ  ｓｈｕｆｆｌｅ）として知られている。
【００５２】
幾つかの実施例では、シード生成器１０３はハッシュ関数を含む。多数の（例えばｎ＝２０）カウンタ値を混ぜ合わせ、シード生成器１０３を用いてそれらの長さの合計より小さいサイズにハッシュする。アタッカーが正確に解き当てることができなかった、一又は複数のリングオシレータによって生成された第１のエントロピー値のうちのいずれかの単一ビットのエントロピーは、ハッシュ値を、正確なハッシュ値と相関しないものにする。ハッシングのプロセスは各シード毎に再開することができるか、又はハッシング作業は直前のシード生成の状態から継続することができる。
【００５３】
別の実施例では、不揮発性メモリ１０６からの秘密鍵と多数の（例えば、ｎ＝２０）カウンタ値とが、それらの長さの合計より小さいサイズにまとめてハッシュされる。アタッカーが正確に解き当てることのできなかったいずれかの単一の入力ビットは、ハッシュ値を、正確なハッシュ値と相関しないものにする。アタッカーは、エントロピービットを見つける必要があり、更には不揮発性メモリに記憶された秘密鍵を見つける必要がある。ハッシングのプロセスは、同じ秘密鍵を用いてシード毎に再開することができるか、又はハッシング作業は鍵を繰り返すことなく直前のシード生成の状態から継続することができる。また、シード生成器１０３への入力は、以前のシード生成呼び出しの数を含むことができ、これは出力（第２のエントロピー値）を更に多様化する。
【００５４】
シード生成器１０３は暗号ハッシュ関数を実施することができる。この関数は、任意のサイズのデータを固定サイズのビット列にマッピングする数学的アルゴリズムであり、反転することが実行不可能な一方向関数となるようにも設計される。幾つかの実施例では、暗号ハッシュ関数は四つの主な特徴を有する：（１）演算が速い；（２）メッセージを少しでも変えると元のハッシュ値とは非相関のハッシュ値が生成される；（３）所与の値をハッシュするメッセージを見つけることは実行不可能である（時間がかかりすぎる）；（４）同じハッシュ値を有する二つの異なるメッセージを見つけることは実行不可能である。
【００５５】
幾つかの実施例では、シード生成器１０３はビットミキサーを含む。ビットミキサーは、ハードコーディングされた鍵（すべてのシステム又は装置で同じ）又は秘密鍵を含むことができる（異なるシステム、装置又は動作の異なるセッションは異なる秘密鍵を使用する）。ビットミキサーは、五つの主な特徴を有する関数である。第１の特徴は、固定長の入力及び出力を独立且つ任意とすることができることである。第２の特徴は、すべての入力ビットがすべての出力ビットに影響するということである。第３の特徴は、入力の単純な変化が出力ビットの平均で半分を変化させることである。第４の特徴は、入力の一連の単純な変化が、入力又はその変化のパターンに明らかな相関を有さない出力値を生成することである。第５の特徴は、パラメータ（鍵）が関数の挙動を変更することである。一実施例では、ビットミキサーの電子機器はハッシュ関数より高速且つ小型であり、ビットミキサーのサイドチャネル漏洩は無視できる程度である。
【００５６】
上記実装態様は、カウンタ値を難読化し、位相トラッキングアタックの複雑性を増大させる。つまり、アタッカーは、複数のリングオシレータ２００に対して位相トラッキングアタックを実施する、及び／又は同じリングオシレータに対して複数回の位相トラッキングアタックを実施する必要がある。また、アタッカーは、難読化に用いられている秘密暗号鍵（記憶域１０６に記憶された）及び／又はハッシュ／ビットミキサー関数の初期状態（シード生成器１０３における）を見つけて抽出しなければならない。これらデータは、コンピュータシステム１１０の誤作動により秘密が曝露されないように、保護された消去可能プログラマブルリードオンリーメモリ（ＥＰＲＯＭ）又は他の種類の不揮発性データ記憶域にセキュリティシステム１００のローカルビルディングブロックとして記憶することができる。秘密鍵が使用されない場合も、アタッカーは、実際のシード（第２のエントロピー値）を解き当てることができるためには、膨大な数の可能な選択肢及び／又は使用されたカウンタ値の配列混合の殆どすべてを依然として試行しなければならない。
【００５７】
図３は、種々の例示的実装態様による、コンピュータシステム１１０のセキュリティを提供する方法３００の様々なステップを示すフロー図である。ブロック３０１において、方法は、ハードウエア源１０２から複数の独立した第１のエントロピー値を受け取ることを含む。ブロック３０２では、方法は、複数の独立した第１のエントロピー値のうちの少なくとも幾つかをシード生成器１０３の関数に適用し、第２のエントロピー値を生成することを含む。ブロック３０３では、方法は、ホワイトニング関数１０４を第２のエントロピー値に適用することを含み得る。ブロック３０４では、方法は、第２のエントロピー値を初期値として疑似乱数生成器１０５に与えることを含む。ブロック３０５では、方法は、初期値として第２のエントロピー値を与えられた疑似乱数生成器を用いて乱数を生成することを含む。ブロック３０６では、方法は、乱数を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成することを含む。ブロック３０６において、方法は、疑似乱数生成器の出力を、安全な乱数として、要求しているアプリケーションに提供することも含み得る。安全な乱数は、暗号化のため、又は他の安全目的のための鍵として使用することができる。
【００５８】
このセクションでは、一連の段落として非限定的に提示される、本開示のシステム及び方法の追加の態様及び特徴が記載され、これらの一部又は全部は、明確性及び有効性のために英数字で指定され得る。
【００５９】
Ａ１．    コンピュータシステムのセキュリティを提供するためのシステムであって、少なくとも：
複数の独立した第１のエントロピー値をハードウェア源から受け取り；
複数の独立した第１のエントロピー値のうちの少なくとも幾つかを第２のエントロピー値を生成するための関数に適用し；
疑似乱数生成器に第２のエントロピー値を初期値として与え；
初期値として第２のエントロピー値を与えられた疑似乱数生成器を用いて乱数を生成し；
前記乱数を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成する
ように構成された一又は複数の論理回路を備えるシステム。
Ａ２．    一又は複数の論理回路が暗号化テキスト又はメッセージ認証コードのブロックを生成するように構成されていることが、前記乱数から構成される又は導かれる鍵を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成するように構成されていることを含む、段落Ａ１のシステム。
Ａ３．    一又は複数の論理回路が暗号化テキスト又はメッセージ認証コードのブロックを生成するように構成されていることが、少なくとも：
鍵が生成される、乱数を用いた鍵共有プロトコルを実施し；
鍵を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成する
ように構成されていることを含む、段落Ａ１のシステム。
Ａ４．    ハードウエア源がリングオシレータであり、一又は複数の論理回路が複数の独立した第１のエントロピー値を受け取るように構成されていることが、リングオシレータから複数の独立した第１のエントロピー値を受け取るように構成されていることを含む、段落Ａ１のシステム。
Ａ５．    ハードウエア源が単一のハードウエア源であり、一又は複数の論理回路が複数の独立した第１のエントロピー値を受け取るように構成されていることが、前記単一のハードウエア源から複数の独立した第１のエントロピー値を受け取るように構成されていることを含む、段落Ａ１のシステム。
Ａ６．    ハードウエア源が複数の独立したハードウエア源であり、一又は複数の論理回路が複数の独立した第１のエントロピー値を受け取るように構成されていることが、複数の独立したハードウエア源から複数の独立した第１のエントロピー値を受け取るように構成されていることを含む、段落Ａ１のシステム。
Ａ７．    関数が順列関数であり、一又は複数の論理回路が複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、複数の独立した第１のエントロピー値のうちの少なくとも幾つかを順列関数に適用するように構成されていることを含む、段落Ａ１のシステム。
Ａ８．    一又は複数の論理回路が複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが：
複数の独立した第１のエントロピー値を独立した第１のエントロピー値の複数のグループに分け；
独立した第１のエントロピー値の複数のグループを順列関数に適用して順序変更されたエントロピー値のグループを生成し；
順序変更されたエントロピー値のグループを連結して第２のエントロピー値を生成する
ように構成されていることを含む、段落Ａ７のシステム。
Ａ９．    関数がハッシュ関数であり、一又は複数の論理回路が複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、複数の独立した第１のエントロピー値のうちの少なくとも幾つかをハッシュ関数に適用するように構成されていることを含む、段落Ａ１のシステム。
Ａ１０．    関数がビットミキサーであり、一又は複数の論理回路が複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、複数の独立した第１のエントロピー値のうちの少なくとも幾つかをビットミキサーに適用するように構成されていることを含む、段落Ａ１のシステム。
Ａ１１．    一又は複数の論理回路が複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、複数の独立した第１のエントロピー値のうちの複数のエントロピー値を、第２のエントロピー値を生成するための関数に選択的に適用するように構成されていることを含む、段落Ａ１のシステム。
Ａ１２．    一又は複数の論理回路が複数の独立した第１のエントロピー値のうちの少なくとも幾つかを関数に適用するように構成されていることが、複数の独立した第１のエントロピー値のうちの少なくとも幾つかと秘密鍵とを、第２のエントロピー値を生成するための関数に適用するように構成されていることを含む、段落Ａ１のシステム。
Ｂ１３．    コンピュータシステムのセキュリティを提供する方法であって：
ハードウエア源から複数の独立した第１のエントロピー値を受け取ること；
複数の独立した第１のエントロピー値のうちの少なくとも幾つかを第２のエントロピー値を生成するための関数に適用すること；
疑似乱数生成器に第２のエントロピー値を初期値として与えること；
初期値として第２のエントロピー値を与えられた疑似乱数生成器を用いて乱数を生成すること；及び
前記乱数を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成すること
を含む方法。
Ｂ１４．    暗号化テキスト又はメッセージ認証コードのブロックを生成することが、前記乱数から構成される又は導かれる鍵を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成することを含む、段落Ｂ１３の方法。
Ｂ１５．    暗号化テキスト又はメッセージ認証コードのブロックを生成することが、少なくとも：
鍵が生成される、乱数を用いた鍵共有プロトコルを実施すること；及び
鍵を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成すること
を含む、段落Ｂ１３の方法。
Ｂ１６．    ハードウエア源がリングオシレータであり、複数の独立した第１のエントロピー値を受け取ることが、リングオシレータから複数の独立した第１のエントロピー値を受け取ることを含む、段落Ｂ１３の方法。
Ｂ１７．    ハードウエア源が単一のハードウエア源であり、複数の独立した第１のエントロピー値を受け取ることが、単一のハードウエア源から複数の独立した第１のエントロピー値を受け取ることを含む、段落Ｂ１３の方法。
Ｂ１８．    ハードウエア源が複数の独立したハードウエア源であり、複数の独立した第１のエントロピー値を受け取ることが、複数の独立したハードウエア源から複数の独立した第１のエントロピー値を受け取ることを含む、段落Ｂ１３の方法。
Ｂ１９．    関数が順列関数であり、複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用することが、複数の独立した第１のエントロピー値のうちの少なくとも幾つかを順列関数に適用することを含む、段落Ｂ１３の方法。
Ｂ２０．    複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用することが：
複数の独立した第１のエントロピー値を独立した第１のエントロピー値の複数のグループに分けること；
独立した第１のエントロピー値の複数のグループを順列関数に適用して順序変更されたエントロピー値のグループを生成すること；及び
順序変更されたエントロピー値のグループを連結して第２のエントロピー値を生成すること
を含む、段落Ｂ１９の方法。
Ｂ２１．    関数がハッシュ関数であり、複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用することが、複数の独立した第１のエントロピー値のうちの少なくとも幾つかをハッシュ関数に適用することを含む、段落Ｂ１３の方法。
Ｂ２２．    関数がビットミキサーであり、複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用することが、複数の独立した第１のエントロピー値のうちの少なくとも幾つかをビットミキサーに適用することを含む、段落Ｂ１３の方法。
Ｂ２３．    複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用することが、複数の独立した第１のエントロピー値のうちの複数のエントロピー値を、第２のエントロピー値を生成するための前記関数に選択的に適用することを含む、段落Ｂ１３の方法。
Ｂ２４．    複数の独立した第１のエントロピー値のうちの少なくとも幾つかを前記関数に適用することが、複数の独立した第１のエントロピー値のうちの少なくとも幾つか及び秘密鍵を、第２のエントロピー値を生成するための前記関数に適用することを含む、段落Ｂ１３の方法。
【００６０】
本開示に関連する分野の当業者には、上述の説明及び添付図面に提示されている教示の恩恵を受ける、本明細書に明記された本開示の多数の修正例及びその他の実装態様が想起されよう。したがって、本開示は開示される特定の実装態様に限定されるものではないこと、及び修正例及び他の実装態様が特許請求の範囲に含まれることが意図されていることを理解されたい。更に、上述の説明及び添付図面は、要素及び／又は機能の特定の実施例の組み合わせに照らして例示的実装態様を説明しているが、特許請求の範囲から逸脱せずに、代替的な実装態様によって要素及び／又は機能の異なる組み合わせが提供され得ることを理解されたい。これに関して、特許請求の範囲の一部に明記されるように、例えば、明示的に上述されているものとは異なる要素及び／又は機能の組み合わせも想定される。本明細書では特定の用語を用いるが、それらは、一般的及び説明的な意味でのみ使用されており、限定を目的とするものではない。
【図１】
2019145082.tif 000003
【図２】
2019145082.tif 000004
【図３】
2019145082.tif 000005
【外国語明細書】
2019145082000001.pdf
2019145082000002.pdf
2019145082000003.pdf
2019145082000004.pdf