(57)【要約】      （修正有）【課題】ＰＵＦ（物理的クローン不能機能）を用いてセキュリティキーを生成するシステム及び方法を提供する。【解決手段】エントロピービットを用いたセキュリティシステム１００は、物理的クローン不能機能回路１１０と、セキュリティキー生成器１２０とを含む。物理的クローン不能機能回路１１０は、複数のエントロピービット列Ｓ１・・Ｓ６を提供する。セキュリティキー生成器１２０は、複数のエントロピービット列Ｓ１・・Ｓ６から導出された操作ビット列を、演算エントロピービット列に従って操作することによってセキュリティキーＳＫ１を生成する。演算エントロピービット列の各ビットは、対応する演算を操作ビット列に対して実行するかどうかを決定するために使用される。【選択図】図１
2019054504.tif 000002
【特許請求の範囲】
【請求項１】
複数のエントロピービット列を提供するように構成された物理的クローン不能機能（ＰＵＦ）回路と、
前記複数のエントロピービット列から導出された操作ビット列を、演算エントロピービット列に従って操作することによってセキュリティキーを生成するように構成されたセキュリティキー生成器と、を含み、
前記演算エントロピービット列の各ビットは、対応する演算を前記操作ビット列に対して実行するかどうかを決定するように構成された、エントロピービットを用いたセキュリティシステム。
【請求項２】
前記演算エントロピービット列のビットは、置換演算を前記操作ビット列に対して実行するかどうかを決定するように構成され、
前記置換演算が前記操作ビット列に対して実行されるときは、前記操作ビット列の少なくとも１つのビットが、前記複数のエントロピービット列のうちの所定のエントロピービット列の少なくとも１つの対応するビットに置換される、請求項１に記載のエントロピービットを用いたセキュリティシステム。
【請求項３】
前記演算エントロピービット列のビットは、排他的論理和（ＸＯＲ）演算を前記操作ビット列に対して実行するかどうかを決定するように構成され、
前記ＸＯＲ演算が前記操作ビット列に対して実行されるときは、前記操作ビット列の少なくとも１つのビットと前記複数のエントロピービット列のうちの所定のエントロピービット列の少なくとも１つの対応するビットとのＸＯＲがとられる、請求項１に記載のエントロピービットを用いたセキュリティシステム。
【請求項４】
前記演算エントロピービット列のビットは、転置演算を実行するかどうかを決定するように構成され、
前記転置演算が前記操作ビット列に対して実行されるときは、前記操作ビット列の少なくとも２つのビットが交換される、請求項１に記載のエントロピービットを用いたセキュリティシステム。
【請求項５】
前記演算エントロピービット列のビットは、ジャンプ演算又は逆演算を実行するかどうかを決定するように構成された、請求項１に記載のエントロピービットを用いたセキュリティシステム。
【請求項６】
前記操作ビット列は、所定の順序に従って、前記複数のエントロピービット列のうちの異なるエントロピー列の複数のビットから導出される、請求項１に記載のエントロピービットを用いたセキュリティシステム。
【請求項７】
システム脅威及びシステム攻撃を検出するように構成された保護回路をさらに含み、
システム脅威又はシステム攻撃が検出されたときに、前記操作ビット列が前記複数のエントロピービット列から再度導出される、請求項１に記載のエントロピービットを用いたセキュリティシステム。
【請求項８】
前記操作ビット列は、前記複数のエントロピービット列から定期的に導出される、請求項１に記載のエントロピービットを用いたセキュリティシステム。
【請求項９】
前記演算エントロピービット列の各ビットの定義は、前記複数のエントロピービット列のうちの選択されたエントロピービット列によって決定される、請求項１に記載のエントロピービットを用いたセキュリティシステム。
【請求項１０】
前記セキュリティキーをパラメータのシードとして使用することによって、少なくとも１つの決定性公式で乱数列を生成するように構成された決定性ランダムビット生成器（ＤＲＢＧ）をさらに含む、請求項１に記載のエントロピービットを用いたセキュリティシステム。
【請求項１１】
前記乱数列は、初期化ベクトル、パディング、１度だけ使用される数（ノンス）及び暗号アプリケーションによって使用される、請求項１０に記載のエントロピービットを用いたセキュリティシステム。
【請求項１２】
前記パラメータは、少なくとも１つの論理計算を前記セキュリティキーに対して実行することによって生成される、請求項１０に記載のエントロピービットを用いたセキュリティシステム。
【請求項１３】
前記セキュリティキーのランダム性をチェックするためのランダム性検査回路をさらに含み、
前記パラメータは、前記セキュリティキーのランダム性が低いときに、少なくとも１つの論理計算を前記セキュリティキーに対して実行することによって生成される、請求項１０に記載のエントロピービットを用いたセキュリティシステム。
【請求項１４】
システム脅威及びシステム攻撃を検出するように構成された保護回路をさらに含み、
システム脅威又はシステム攻撃が検出されたときに、前記セキュリティキーが再生成される、請求項１０に記載のエントロピービットを用いたセキュリティシステム。
【請求項１５】
前記セキュリティキーは定期的に再生成される、請求項１０に記載のエントロピービットを用いたセキュリティシステム。
【請求項１６】
前記ＰＵＦ回路は複数のＰＵＦユニットを含み、該複数のＰＵＦユニットの各々は、
第１ワンタイムプログラマブル（ＯＴＰ）メモリセルであって、
ビット線に結合された第１端子と、第２端子と、ゲート構造とを有する第１アンチヒューズトランジスタを含み、該第１アンチヒューズトランジスタの該第１端子に隣接する該ゲート構造の部分は、該第１アンチヒューズトランジスタの該第２端子に隣接する該ゲート構造の部分よりも厚いゲート酸化物を有する、第１ＯＴＰメモリセルと、
第２ＯＴＰメモリセルであって、
前記ビット線に結合された第１端子と、前記第１アンチヒューズトランジスタの前記第２端子に結合された第２端子と、ゲート構造とを有する第２アンチヒューズトランジスタを含み、該第２アンチヒューズトランジスタの該第１端子に隣接する該ゲート構造の部分は、該第２アンチヒューズトランジスタの該第２端子に隣接する該ゲート構造の部分よりも厚いゲート酸化物を有する、第２ＯＴＰメモリセルと、を含み、
プログラム動作は前記第１ＯＴＰメモリセル及び前記第２ＯＴＰメモリセルに対して同時に実行されるが、前記第１ＯＴＰメモリセル及び前記第２ＯＴＰメモリセルの製造ばらつきに従って、前記第１ＯＴＰメモリセル及び前記第２ＯＴＰメモリセルの一方のみがプログラムされる、請求項１に記載のエントロピービットを用いたセキュリティシステム。
【請求項１７】
前記ＰＵＦ回路は複数のＰＵＦユニットを含み、該複数のＰＵＦユニットの各々は、
第１ワンタイムプログラマブル（ＯＴＰ）メモリセルであって、
ビット線に結合された第１端子と、第２端子と、ワード線に結合された制御端子とを有する第１選択トランジスタと、
前記第１選択トランジスタの前記第２端子に結合された第１端子と、第２端子と、ゲート構造とを有する第１アンチヒューズトランジスタと、を含む第１ＯＴＰメモリセルと、
第２ＯＴＰメモリセルであって、
前記ビット線に結合された第１端子と、第２端子と、前記ワード線に結合された制御端子とを有する第２選択トランジスタと、
前記第２選択トランジスタの該第２端子に結合された第１端子と、前記第１アンチヒューズトランジスタの前記第２端子に結合された第２端子と、ゲート構造とを有する第２アンチヒューズトランジスタと、を含む第２ＯＴＰメモリセルと、を含み、
プログラム動作は前記第１ＯＴＰメモリセル及び前記第２ＯＴＰメモリセルに対して同時に実行されるが、前記第１ＯＴＰメモリセル及び前記第２ＯＴＰメモリセルの製造ばらつきに従って、前記第１ＯＴＰメモリセル及び前記第２ＯＴＰメモリセルの一方のみがプログラムされる、請求項１に記載のエントロピービットを用いたセキュリティシステム。
【請求項１８】
前記ＰＵＦ回路は複数のＰＵＦユニットを含み、該複数のＰＵＦユニットの各々は、
第１ワンタイムプログラマブル（ＯＴＰ）メモリセルであって、
ビット線に結合された第１端子と、第２端子と、ワード線に結合された制御端子とを有する第１選択トランジスタと、
前記第１選択トランジスタの前記第２端子に結合された第１端子と、第２端子と、制御線に結合された制御端子とを有する第１デカップリングトランジスタと、
前記第１デカップリングトランジスタの前記第２端子に結合された第１端子と、第２端子と、ゲート構造とを有する第１アンチヒューズトランジスタと、を含む第１ＯＴＰメモリセルと、
第２ＯＴＰメモリセルであって、
前記ビット線に結合された第１端子と、第２端子と、前記ワード線に結合された制御端子とを有する第２選択トランジスタと、
前記第２選択トランジスタの前記第２端子に結合された第１端子と、第２端子と、前記制御線に結合された制御端子とを有する第２デカップリングトランジスタと、
前記第２デカップリングトランジスタの前記第２端子に結合された第１端子と、前記第１アンチヒューズトランジスタの前記第２端子に結合された第２端子と、ゲート構造とを有する第２アンチヒューズトランジスタと、を含む第２ＯＴＰメモリセルと、を含み、
プログラム動作は前記第１ＯＴＰメモリセル及び前記第２ＯＴＰメモリセルに対して同時に実行されるが、前記第１ＯＴＰメモリセル及び前記第２ＯＴＰメモリセルの製造ばらつきに従って、前記第１ＯＴＰメモリセル及び前記第２ＯＴＰメモリセルの一方のみがプログラムされる、請求項１に記載のエントロピービットを用いたセキュリティシステム。
【請求項１９】
エントロピービットを用いたセキュリティシステムを動作させる方法であって、該セキュリティシステムは、物理的クローン不能機能（ＰＵＦ）回路と、セキュリティキー生成器とを含み、当該方法は、
前記物理的クローン不能機能回路が、複数のエントロピービット列を提供するステップと、
前記複数のエントロピービット列から操作ビット列を導出するステップと、
前記セキュリティキー生成器が、演算エントロピービット列に従って、前記操作ビット列を操作することによってセキュリティキーを生成するステップと、
前記演算エントロピービット列の各ビットが、対応する演算を前記操作ビット列に対して実行するかどうかを決定するように構成された、方法。
【請求項２０】
前記セキュリティキー生成器が、前記演算エントロピービット列に従って、前記操作ビット列を操作することによって前記セキュリティキーを生成するステップは、
前記セキュリティキー生成器が、前記演算エントロピービット列のビットに従って、置換演算を前記操作ビット列に対して実行するステップを含み、
前記置換演算が前記操作ビット列に対して実行されるときは、前記操作ビット列の少なくとも１つのビットが、前記複数のエントロピービット列のうちの所定のエントロピービット列の少なくとも１つの対応するビットに置換される、請求項１９に記載の方法。
【請求項２１】
前記セキュリティキー生成器が、前記演算エントロピービット列に従って、前記操作ビット列を操作することによって前記セキュリティキーを生成するステップは、
前記セキュリティキー生成器が、前記演算エントロピービット列のビットに従って、排他的論理和（ＸＯＲ）演算を前記操作ビット列に対して実行するステップを含み、
前記ＸＯＲ演算が前記操作ビット列に対して実行されるときは、前記操作ビット列の少なくとも１つのビットと前記複数のエントロピービット列のうちの所定のエントロピービット列の少なくとも１つの対応するビットとのＸＯＲがとられる、請求項１９に記載の方法。
【請求項２２】
前記セキュリティキー生成器が、前記演算エントロピービット列に従って、前記操作ビット列を操作することによって前記セキュリティキーを生成するステップは、
前記セキュリティキー生成器が、前記演算エントロピービット列のビットに従って、転置演算を前記操作ビット列に対して実行するステップを含み、
前記転置演算が前記操作ビット列に対して実行されるときは、前記操作ビット列の少なくとも２つのビットが交換される、請求項１９に記載の方法。
【請求項２３】
前記セキュリティキー生成器が、前記演算エントロピービット列に従って、前記操作ビット列を操作することによって前記セキュリティキーを生成するステップは、
前記セキュリティキー生成器が、前記演算エントロピービット列のビットに従って、ジャンプ演算又は逆演算を前記操作ビット列に対して実行するステップを含む、請求項１９に記載の方法。
【請求項２４】
前記操作ビット列は、所定の順序に従って、前記複数のエントロピービット列のうちの異なるエントロピー列の複数のビットから導出される、請求項１９に記載の方法。
【請求項２５】
前記セキュリティシステムは保護回路をさらに含み、当該方法は、
前記保護回路がシステム脅威又はシステム攻撃を検出したときに、前記複数のエントロピービット列から前記操作ビット列を再度導出する、請求項１９に記載の方法。
【請求項２６】
前記操作ビット列は、前記複数のエントロピービット列から定期的に導出される、請求項１９に記載の方法。
【請求項２７】
前記演算エントロピービット列の各ビットの定義を前記複数のエントロピービット列のうちの選択されたエントロピービット列によって決定するステップをさらに含む、請求項１９に記載の方法。
【請求項２８】
前記セキュリティシステムは決定性ランダムビット生成器（ＤＲＢＧ）をさらに含み、当該方法は、
前記決定性ランダムビット生成器が、前記セキュリティキーをパラメータのシードとして使用することによって、少なくとも１つの決定性公式で乱数列を生成するステップをさらに含む、請求項１９に記載の方法。
【請求項２９】
前記乱数列は、初期化ベクトル及び暗号アプリケーションによって使用される、請求項２８に記載の方法。
【請求項３０】
前記パラメータを、前記セキュリティキーに少なくとも１つの論理計算を実行することによって生成するステップをさらに含む、請求項２８に記載の方法。
【請求項３１】
前記セキュリティシステムは、ランダム性検査回路をさらに含み、当該方法は、
前記ランダム性検査回路が前記セキュリティキーのランダム性が低いと決定したときは、少なくとも１つの論理計算を前記セキュリティキーに対して実行することによって前記パラメータを生成するステップをさらに含む、請求項２８に記載の方法。
【請求項３２】
前記セキュリティシステムは保護回路をさらに含み、当該方法は、
システム脅威又はシステム攻撃が前記保護回路によって検出されたときに、前記セキュリティキーを再生成するステップをさらに含む、請求項２８に記載の方法。
【請求項３３】
前記セキュリティキーは定期的に再生成される、請求項２８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティシステム、より詳細には、エントロピービットを用いたセキュリティシステムに関連する。
【背景技術】
【０００２】
電子デバイスがより多くの分野に適用されるにつれて、電子デバイスによって処理される情報も増加している。時には、電子デバイスは機密情報を伴う機能を実行することがある。この場合、電子デバイスの固有のセキュリティキーが識別及び保護のために使用され得る。しかし、チップとデバイスのリバースエンジニアリング手法が自動化できるようになるため、物理的及びサイドチャネル攻撃はより手頃で強力なものになっている。したがって、機密情報の暴露の問題が大きな懸念事項となっている。
【０００３】
デバイスが権限のない者によってアクセスされるのを防ぐため、通常、多大な費用と時間が敵対者から防衛する対策を開発するために必要である。従来技術では、システムを物理的攻撃から保護するため、リバースエンジニアリング又はシステムハッキングに対する障壁を高めるために、その固有の特性による集積回路の物理的クローン不能機能（ＰＵＦ）が適用され得る。
【０００４】
ＰＵＦは、製造プロセスにおいて発生する制御不能なランダムの物理的特性によるビット列パターンを確立することができる。プロセス変動は、プロセス制御、材料内容、及び／又は環境ドリフトにおける非常に小さな変化に由来することができる。これらの不可避で予測不可能な変動が、固有ビット列を生成するためにＰＵＦによって増幅される。
【０００５】
しかし、システムによって必要とされる固有ビット数に比較して、例えば、システム初期化ベクトル及び暗号通信では、システムは、コスト及び領域の制限により十分な量のＰＵＦを含むことができないことがある。さらに、ＰＵＦによって生成されるビット列は制御不能であるため、ビット列の品質及びランダム性も同様に制御不能である。したがって、システムセキュリティを最適化するためにどのようにＰＵＦを使用するかが、解決されるべき問題として残っている。
【発明の概要】
【０００６】
本発明の一実施形態は、エントロピービットを用いたセキュリティシステムを開示する。セキュリティシステムは、物理的クローン不能機能回路と、セキュリティキー生成器とを含む。
【０００７】
物理的クローン不能機能回路は、複数のエントロピービット列を提供する。セキュリティキー生成器は、複数のエントロピービット列から導出される操作ビット列を演算エントロピービット列に従って操作することによってセキュリティキーを生成する。演算エントロピービット列の各ビットは、対応する演算を操作ビット列に対して実行するかどうかを決定するために使用される。本発明の別の実施形態は、エントロピービットを用いたセキュリティシステムを動作させるための方法を開示する。セキュリティシステムは、物理的クローン不能機能回路と、セキュリティキー生成器とを含む。
【０００８】
本方法は、物理的クローン不能機能回路が、複数のエントロピービット列を提供するステップと、複数のエントロピービット列から操作ビット列を導出するステップと、セキュリティキー生成器が、演算エントロピービット列に従って操作ビット列を操作することによってセキュリティキーを生成するステップとを含む。演算エントロピービット列の各ビットは、対応する動作を操作ビット列に対して実行するかどうかを決定するように構成される。
【０００９】
本発明のこれら及び他の目的は、様々な図及び図面に示す好ましい実施形態の以下の詳細な説明を読むことによって、当業者には間違いなく明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態によるセキュリティシステムを示す。
【図２】本発明の一実施形態による図１のＰＵＦ回路のＰＵＦユニットを示す。
【図３】本発明の一実施形態による図１のＰＵＦ回路によって提供されるエントロピービット列のいくつかを示す。
【図４】本発明の一実施形態によるセキュリティキーを生成するための操作ビット列の操作プロセスを示す。
【図５】本発明の別の実施形態によるセキュリティシステムを示す。
【図６】本発明の別の実施形態による図１のセキュリティシステムを動作させるための方法のフローチャートを示す。
【図７】本発明の別の実施形態による図５のセキュリティシステムを動作させるための方法のフローチャートを示す。
【発明を実施するための形態】
【００１１】
図１は、本発明の一実施形態によるセキュリティシステム１００を示す。セキュリティシステム１００は、物理的クローン不能機能（ＰＵＦ）回路１１０と、セキュリティキー生成器１２０とを含む。
【００１２】
ＰＵＦ回路１１０は、複数のＰＵＦユニットを含むことができ、複数のエントロピービット列を提供することができる。例えば、図２は、本発明の一実施形態によるＰＵＦ回路１１０のＰＵＦユニット１１０Ａを示す。ＰＵＦユニット１１０Ａは、２つのワンタイムプログラマブル（ＯＴＰ）メモリセル１１０Ａ１及び１１０Ａ２を含む。ＯＴＰメモリセル１１０Ａ１は、アンチヒューズトランジスタＡＴ１と、デカップリングトランジスタＷ１と、選択トランジスタＳ１とを含む。ＯＴＰメモリセル１１０Ａ２は、アンチヒューズトランジスタＡＴ２と、デカップリングトランジスタＷ２と、選択トランジスタＳ２とを含む。選択トランジスタＳ１は、ビット線ＢＬに結合された第１端子と、第２端子と、ワード線ＷＬに結合された制御端子とを有する。第１デカップリングトランジスタＷ１は、第１選択トランジスタＳ１の第２端子に結合された第１端子と、第２端子と、制御線ＳＷＬに結合された制御端子とを有する。第１アンチヒューズトランジスタＡＴ１は、第１デカップリングトランジスタＷ１の第２端子に結合された第１端子と、第２端子と、ゲート構造とを有する。また、第２選択トランジスタＳ２は、ビット線ＢＬに結合された第１端子と、第２端子と、ワード線ＷＬに結合された制御端子とを有する。第２デカップリングトランジスタＷ２は、第２選択トランジスタＳ２の第２端子に結合された第１端子と、第２端子と、制御線ＳＷＬに結合された制御端子とを有する。アンチヒューズトランジスタＡＴ２は、第２デカップリングトランジスタＷ２の第２端子に結合された第１端子と、第１アンチヒューズトランジスタＡＴ１の第２端子に結合された第２端子と、ゲート構造とを有する。すなわち、アンチヒューズトランジスタＡＴ１及びＡＴ２が共に結合され、デカップリングトランジスタＷ１及びＷ２が同じ制御線ＳＷＬによって制御され、選択トランジスタＳ１及びＳ２が同じワード線ＷＬによって制御される。
【００１３】
ＰＵＦユニット１１０Ａをプログラムするときは、プログラム動作がＯＴＰメモリセル１１０Ａ１及びＯＴＰメモリセル１１０Ａ２に対して同時に実行される。プログラム動作中、アンチヒューズトランジスタＡＴ１及びＡＴ２のゲート構造は同じ高電圧を同時に受け、アンチヒューズトランジスタＡＴ１及びＡＴ２のソース／ドレイン端子は、デカップリングトランジスタＷ１及びＷ２並びに選択トランジスタＳ１及びＳ２を介して低電圧を受ける。この場合、アンチヒューズトランジスタＡＴ１及びＡＴ２のうちの１つは、ＯＴＰメモリセル１１０Ａ１及びＯＴＰメモリセル１１０Ａ２の製造ばらつきによって引き起こされる、ゲート酸化物品質、局所欠陥、ゲート酸化物薄化などの異なる固有の特性により最初に破壊される（ruptured）。また、ＯＴＰメモリが最初に破壊されることで、他方のアンチヒューズトランジスタが破壊することが防止される。すなわち、通常、プログラミングプロセス中、アンチヒューズトランジスタＡＴ１及びＡＴ２のうちの１つだけが破壊される。
【００１４】
したがって、プログラムされた後、アンチヒューズトランジスタＡＴ１、ＡＴ２のゲート状態は互いに異なるはずであり、同じ読み出し電圧をアンチヒューズトランジスタＡＴ１及びＡＴ２のゲート構造に別々に印加することにより、デカップリングトランジスタＷ１及びＷ２と選択トランジスタＳ１及びＳ２を介して読み出され得る。アンチヒューズトランジスタＡＴ１及びＡＴ２のゲート状態は制御不能な製造ばらつきにより引き起こされるため、ＯＴＰメモリセル１１０Ａ１及び１１０Ａ２から読み出されるビットは予測できず、したがって、システムによって必要とされるエントロピービットとして使用され得る。
【００１５】
必要な数のＰＵＦユニット１１０Ａにより、ＰＵＦ回路１１０は、所望の量のエントロピービット列を生成することができる。しかし、図２に示すＰＵＦユニット１１０Ａは、例示的なケースである。他の実施形態では、ＰＵＦ回路１１０のＰＵＦユニットは、異なる構造で実装され得る。例えば、ＰＵＦユニット１１０Ａは、デカップリングトランジスタＷ１及びＷ２を省略し、動作選択のために選択トランジスタＳ１及びＳ２を使用することができる。すなわち、選択トランジスタＳ１の第２端子がアンチヒューズトランジスタＡＴ１の第１端子に直接結合され、選択トランジスタＳ２の第２端子がアンチヒューズトランジスタＡＴ２の第１端子に直接結合され得る。
【００１６】
さらに、いくつかの実施形態では、選択トランジスタＳ１及びＳ２は省略され得る。この場合、アンチヒューズトランジスタＡＴ１及びＡＴ２の第１端子がビット線ＢＬに直接結合される。また、アンチヒューズトランジスタＡＴ１の第１端子に隣接するゲート構造の部分は、アンチヒューズトランジスタＡＴ１の第２端子に隣接するゲート構造の部分よりも厚いゲート酸化物を有し、アンチヒューズトランジスタＡＴ２の第１端子に隣接するゲート構造の部分は、アンチヒューズトランジスタＡＴ２の第２端子に隣接するゲート構造の部分よりも厚いゲート酸化物を有する。すなわち、アンチヒューズトランジスタＡＴ１及びＡＴ２のゲート酸化物の厚さは、均一に分布していない。この場合、アンチヒューズトランジスタＡＴ１及びＡＴ２の第１端子が動作選択のために使用されることができる一方、アンチヒューズトランジスタＡＴ１及びＡＴ２の第２端子はプログラム中に破壊され得る。したがって、この場合、選択トランジスタＳ１及びＳ２が必要とされなくてよい。
【００１７】
ＰＵＦ回路１１０によって提供されるエントロピービット列の生データのアクセスは、むしろ単純になることがあるため、セキュリティキー生成器１２０がＰＵＦ回路によって提供されるエントロピービット列を操作することによって、所望のセキュリティキーＳＫ１を生成して、プロセスと結果をさらに複雑及びランダムにする。セキュリティキーＳＫ１は、固有の文字列、初期化ベクトル、パディング又はノンス（一度だけ使用される数）の少なくとも１つが必要とされるときに、多くの分野で使用され得る。
【００１８】
図３は、本発明の一実施形態によるＰＵＦ回路１１０によって提供されるエントロピービット列Ｓ１〜Ｓ６のいくつかを示す。セキュリティキー生成器１２０は、ＰＵＦ回路１１０によって提供される演算エントロピービット列に従って、ＰＵＦ回路１１０によって提供される複数のエントロピービット列から導出される操作ビット列を操作することによって、セキュリティキーＳＫ１を生成することができる。すなわち、操作ビット列は操作されることによってセキュリティキーを生成するために使用され、演算エントロピービット列は、操作ビット列をどのように操作するかを決定するために使用される。
【００１９】
図４は、本発明の一実施形態によるセキュリティキーＳＫ１を生成するための操作ビット列ＭＳ１の操作プロセスを示す。
【００２０】
いくつかの実施形態では、操作ビット列ＭＳ１は、所定の順序に従って異なるエントロピービット列から導出され得る。例えば、図３では、操作エントロピー列ＭＳ１は、４つの異なる列Ｓ１〜Ｓ４からのビットのいくつかを所定の順序で組み合わせることができる。この場合、図４に示すように、「０１０１１０００」の値を有する操作エントロピービット列ＭＳ１が、エントロピービット列Ｓ１からのビットＳ１［０］及びＳ１［４］と、エントロピービット列Ｓ２からのビットＳ２［１］及びＳ２［５］と、エントロピービット列Ｓ３からのビットＳ３［２］及びＳ３［６］、エントロピービット列Ｓ４からのビットＳ４［３］及びＳ４［７］を組み合わせることによって導出され得る。しかし、いくつかの他の実施形態では、操作エントロピー列ＭＳ１は、システム要件に従ってエントロピービット列Ｓ１〜Ｓ６のうちの１つを選択することによって単純に導出され得る。
【００２１】
また、演算エントロピービット列が同様に導出され得る。ここでは、例えば、エントロピービット列Ｓ６が演算エントロピービット列として選択され得る。いくつかの実施形態では、演算エントロピービット列の各ビットは、対応する動作を操作ビット列ＭＳ１に対して実行するかどうかを決定するために使用され得る。
【００２２】
例えば、演算エントロピービット列のビットＳ６［０］は、置換演算を操作エントロピー列ＭＳ１に対して実行するかどうかを決定するために使用され得る。いくつかの実施形態では、ビットＳ６［０］の値が「０」である場合、置換演算が実行される。ビットＳ６［０］の値が「１」である場合、置換演算が実行されない。しかし、置換演算を有効又は無効にするためのビットＳ６［０］の定義は、他の実施形態において異ならせることができる。さらに、ビットＳ６［０］の定義は、いくつかの実施形態では、ユーザによって決定され得る、あるいはＰＵＦ回路１１０によって提供されるエントロピービット列から選択される別のエントロピービット列によって決定され得る。
【００２３】
置換演算が操作ビット列ＭＳ１に対して実行されるときは、操作ビット列ＭＳ１のうちの少なくとも１ビットが所定のエントロピービット列の少なくとも１つの対応ビットに置換される。例えば、エントロピービット列Ｓ５が、演算エントロピービット列によって要求される演算のための所定のエントロピービット列として選択され得る。この場合、ビットＳ６［０］の値は「０」であるため、置換演算が実行され、操作エントロピー列ＭＳ１の第１ビットがエントロピービット列Ｓ５のビットＳ５［０］に置換される。結果として、図４に示すように、置換エントロピー列ＳＳ１が「１１０１１０００」の値を有するように生成される。いくつかの実施形態では、より多くのビットが、システム要求に従って所定のエントロピービット列のビットに置換され得る。
【００２４】
また、演算エントロピービット列のビットＳ６［１］は、転置演算を置換エントロピー列ＳＳ１に対して実行するかどうかを決定するために使用され得る。いくつかの実施形態では、ビットＳ６［１］の値が「０」である場合、転置演算は実行されない。ビットＳ６［１］の値が「１」である場合、転置演算が実行される。すなわち、転置演算のためのビットＳ６［１］の定義は、置換演算のためのビットＳ６［０］の定義と異ならせることができる。また、転置演算を有効又は無効にするためのビットＳ６［１］の定義は、他の実施形態において異ならせることができ、いくつかの実施形態では、ユーザによって決定され得る、あるいはＰＵＦ回路１１０によって提供される複数のエントロピービット列のうちから選択される別のエントロピービット列によって決定され得る。
【００２５】
転置演算が置換ビット列ＳＳ１に対して実行されるときは、置換ビット列ＳＳ１のうちの少なくとも２つのビットが交換される。例えば、ビットＳ６［１］の値が「１」であるため、転置演算が実行され、操作エントロピー列ＭＳ１の各対の２つのビットの位置が交換される。結果として、図４に示すように、転置エントロピー列ＴＳ１が「１１１００１００」の値を有するように生成される。いくつかの実施形態では、システム要求に従って、より少ない対のビットが交換され得る。
【００２６】
追加的に、演算エントロピービット列のビットＳ６［２］は、排他的論理和（ＸＯＲ）演算を転置エントロピー列ＴＳ１に対して実行するかどうかを決定するために使用され得る。いくつかの実施形態では、ビットＳ６［２］の値が「０」である場合、ＸＯＲ演算は実行されない。ビットＳ６［２］の値が「１」である場合、ＸＯＲ演算が実行される。本実施形態では、ビットＳ６［２］の値が「１」であるため、ＸＯＲ演算が実行される。また、ＸＯＲ演算を有効又は無効にするためのビットＳ６  ［２］の定義は、他の実施形態において異ならせることができ、いくつかの実施形態では、ユーザによって決定され得る、あるいはＰＵＦ回路１１０によって提供される別のエントロピービット列によって決定され得る。
【００２７】
ＸＯＲ演算が転置ビット列ＴＳ１に対して実行されるときは、転置ビット列ＴＳ１のうちの少なくとも１つビットと第２エントロピービット列の少なくとも１つの対応するビットとのＸＯＲがとられる。この場合、エントロピービット列Ｓ５が、演算エントロピービット列によって必要とされる演算のための所定のエントロピービット列として選択されているため、転置エントロピー列ＴＳ１の各ビットとエントロピービット列Ｓ５の対応するビットとのＸＯＲがとられる。結果として、図４に示すように、セキュリティキーＳＫ１が「０１１１００１０」の値を有するように生成される。いくつかの実施形態では、システム要件に従って、ＸＯＲ演算が転置ビット列ＴＳ１の一部に対してのみ実行され得る。
【００２８】
図４に示す操作プロセスに従って、操作ビット列ＭＳ１は、異なるエントロピービット列によってさらにランダムにされており、さらによりクローン不能にされており、セキュリティキーＳＫ１としてより適切にされている。しかし、いくつかの他の実施形態では、演算エントロピービット列は、他の異なる演算を決定するためのさらにより多くのビットを含むことができる。例えば、演算エントロピービット列の別のビットは、ジャンプ演算を実行するかどうかを決定するために使用されることができ、演算エントロピービット列の別のビットは、逆演算（reverse  operation）を実行するかどうかを決定するために使用され得る。ジャンプ演算は、操作ビット列ＭＳ１の順序を変更するために操作ビット列ＭＳ１のうちのいくつかのビットを他の位置に移動させることができ、逆演算は、操作ビット列ＭＳ１の順序全体を逆にすることができる。
【００２９】
本発明のいくつかの実施形態では、より異なる演算がセキュリティキーＳＫ１を生成するために操作ビット列ＭＳ１の操作するために適用され得る。また、上記の動作は、システム要件に従って、別々に実行されることができる、あるいは任意の順序で組み合わせられ得る。
【００３０】
ＰＵＦ回路１１０を有する異なるチップでは存在するＰＵＦビット列が固有であるという事実により、異なるＰＵＦビット列によりその構成がセキュリティキー生成器１２０においても非常に異なる。つまり、セキュリティシステム１００を有する各ＳｏＣチップにおいては、セキュリティシステム１００のセキュリティキー生成器１２０は、各ＳｏＣチップに対して固有のセキュリティキーを生成する。この特徴は、セキュリティ脆弱性に対するセキュリティ保護において非常に重要であり、各チップは固有のキー生成を有するため、ＰＵＦ実装１００をクラッキングすることが困難になるハッカーが１つのチップにうまくブレイクしようとすることができる場合でも、セキュリティ構成がこれらの２つのチップでは異なるため、別のチップをブレイクするには多くの労力がかかる。これは、ＰＵＦベースのセキュリティシステムでの重要なセキュリティ値であり、ハッキングに対する障壁を高める。
【００３１】
図１において、セキュリティシステム１００は、保護回路１３０をさらに含む。保護回路１３０は、システム脅威及びシステム攻撃を検出することができる。例えば、保護回路１３０は、システムの電力状態を監視することができる。サイドチャネル攻撃のいくつかは、システムを妨害し、セキュリティ手順を無効にしようとするために、システムに高電圧を入力することがあるため、この種の攻撃は、電力挙動を監視することによって検出され得る。この場合、保護回路１３０は、異常電源挙動が発生したときに、警告信号を送信することができる、すなわち、システム脅威又はシステム攻撃が検出されたときに、セキュリティシステム１００はＰＵＦ回路１１０によって提供された複数のエントロピービット列から新たな操作ビット列ＭＳ１を導出する。結果として、以前に使用されたセキュリティキーＳＫ１が置換され、ハッキングプロセスがさらにより困難になる。
【００３２】
いくつかの実施形態では、操作ビット列ＭＳ１は、複数のエントロピービット列から定期的に導出され得る。すなわち、セキュリティキーＳＫ１は定期的に更新されることができるため、ハッカーが利用可能な復号化時間が厳しく制限され、リバースエンジニアリングに対する障壁を高める。
【００３３】
ＰＵＦ回路１１０から導出されるエントロピービット列は、その固有の特性により乱数列として使用されることができるのであるが、ＰＵＦ回路１１０は、費用、領域及び速度の制限によりシステムによって要求される乱数を無制限に提供することができない可能性がある。この場合、前の実施形態で生成されたセキュリティキーＳＫ１は、決定性ランダムビット生成器によってシードとして使用され、非常に短時間で膨大な量の乱数列を生成することができる。図５は、本発明の別の実施形態によるセキュリティシステム２００を示す。セキュリティシステム１００及び２００は、類似の構造を有する。しかし、セキュリティシステム２００は、決定性ランダムビット生成器（ＤＲＢＧ）２４０をさらに含む。
【００３４】
決定性ランダムビット生成器２４０は、セキュリティキー生成器１２０によって生成されたセキュリティキーＳＫ１をパラメータのシードとして使用することによって、少なくとも１つの決定性公式（deterministic  formula）で乱数列を生成することができる。決定性ランダムビット生成器２４０によって使用される公式は、既知のアルゴリズムに基づくことができる。セキュリティキー生成器１２０によって生成されるセキュリティキーＳＫ１は固有であり、予測不能であるため、決定性ランダムビット生成器２４０によって生成された乱数列も固有であり、予測することは困難である。さらに、決定性ランダムビット生成器２４０によって決定性公式で乱数列が生成されるため、乱数の生成は無制限であり、生成速度が非常に速く、列の数はシステム要件を満たすように容易に制御され得る。いくつかの実施形態では、乱数列は、初期化ベクトルとしてシステム初期化、パディングのために使用されることができる、又はＲＳＡ暗号、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）暗号、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）暗号、楕円曲線暗号（ＥＣＣ）等の暗号アプリケーションによって使用され得る。
【００３５】
追加的に、ＰＵＦ回路１１０によって提供されるエントロピービット列は予測不可能であるため、セキュリティキー生成器によって生成されるセキュリティキーＳＫ１は多くの反復ビットを有し得る可能性がある、例えば、ビットの大部分が「１」又は「０」であることがある。この場合、セキュリティキーＳＫ１が決定性ランダムビット生成器２４０によって直接使用される場合、決定性ランダムビット生成器２４０によって生成される乱数列は、予測されやすくなる可能性がある。したがって、図５に示すように、セキュリティシステム２００は、ランダム性検査回路２５０をさらに含むことができる。ランダム性検査回路２５０は、モノビットテスト、ポーカーテスト、ランテスト等の統計的方法でセキュリティキーＳＫ１のランダム性をチェックすることができる。任意のランダム性テストが失敗した場合、又はセキュリティキーＳＫ１が十分にランダムではないと識別された場合、セキュリティキーＳＫ１は、決定性ランダムビット生成器２４０によって使用されるパラメータを生成するために、ハッシュ演算、ＸＯＲ演算等の少なくとも１つの論理計算を実行することによって処理される。したがって、決定性ランダムビット生成器２４０によって生成される乱数列の品質が保証され得る。
【００３６】
図５において、ランダム性検査回路２５０は、保護回路１３０とは異なるように見えるが、いくつかの実施形態では、ランダム性検査回路２５０が保護回路１３０に含まれ得る。図１及び５に示す機能ブロックは、それらの機能を提示するために使用され、それらの物理的実装を制限するものではない。例えば、いくつかの実施形態では、ＰＵＦ回路１１０及びセキュリティキー生成器１２０は、システム要件に従って保護回路１３０に統合されることもできる。
【００３７】
また、いくつかの実施形態では、論理計算が、システム要件に従ってランダム性検査回路２５０によってテストされていないセキュリティキーＳＫ１に常に適用され得る。さらに、いくつかの実施形態においては、セキュリティキーＳＫ１は、暗号の品質を保証するために、定期的に再生成される、あるいはシステム脅威又はシステム攻撃が保護回路１３０によって検出されたときに再生成され得る。さらに、いくつかの実施形態では、決定性乱数生成器２４０によって使用される公式が、システム要件に従って更新されることもでき、保護をさらにより強固にする。
【００３８】
また、いくつかの実施形態では、決定性乱数生成器２４０は、セキュリティキー生成器１２０の操作なしに、乱数列を生成するためのパラメータとして、ＰＵＦ回路１１０によって提供されるエントロピービット列を使用することができる。この場合、エントロピービット列のランダム性が依然としてランダム性検査回路２５０によってテストされることができ、必要な論理計算が適用されて、パラメータの品質を保証することができる。
【００３９】
図６は、セキュリティシステム１００を動作させるための方法３００を示す。方法３００は、ステップＳ３１０〜Ｓ３５０を含むが、図６に示す順序に限定されない。
【００４０】
Ｓ３１０：物理的クローン不能機能回路１１０は、複数のエントロピービット列を提供する。
【００４１】
Ｓ３２０：複数のエントロピービット列から操作ビット列ＭＳ１を導出する。
【００４２】
Ｓ３３０：演算エントロピービット列の各ビットの定義を決定する。
【００４３】
Ｓ３４０：セキュリティキー生成器１２０は、演算エントロピービット列に従って操作ビット列ＭＳ１を操作することによってセキュリティキーＳＫ１を生成する。
【００４４】
Ｓ３５０：保護回路１３０がシステム脅威又はシステム攻撃を検出するときは、Ｓ３２０に進む。
【００４５】
ステップＳ３１０において、ＰＵＦは、図３に示すエントロピービット列Ｓ１〜Ｓ６などの複数のエントロピービット列を提供することができ、ステップＳ３２０において、操作ビット列ＭＳ１がＰＵＦによって提供される複数のエントロピービット列から導出され得る。例えば、操作ビット列ＭＳ１は、図４に示すように、異なるエントロピー列Ｓ１〜Ｓ４のビットによって導出されることができる、又はＰＵＦ回路１１０によって提供される複数のエントロピー列のうちの１つを単に選択することによって導出され得る。
【００４６】
操作ビット列ＭＳ１が導出された後、セキュリティキー生成器１２０は、演算エントロピービット列で操作ビット列ＭＳ１を操作することができる。演算エントロピービット列の各ビットは、置換演算、ＸＯＲ演算、転置演算、ジャンプ演算、逆演算等の対応する演算を操作ビット列ＭＳ１に対して実行するかどうかを決定するために使用され得る。本実施形態では、ステップＳ３３０において、演算エントロピービット列の各ビットの定義が決定されることができ、ステップＳ３４０において、セキュリティキー生成器１２０が演算エントロピービット列に従って操作ビット列ＭＳ１を操作することによってセキュリティキーＳＫ１を生成する。
【００４７】
いくつかの実施形態では、セキュリティキー生成器１２０によって実行される、ＸＯＲ演算、置換演算等の演算は、他のエントロピービット列を伴うことがある。この場合、所定のエントロピービット列は、対応する演算のため、ＰＵＦ回路１１０によって提供される複数のエントロピービット列から選択され得る。また、いくつかの実施形態では、演算エントロピービット列の各ビットの定義は、ＰＵＦ回路１１０によって提供される複数のエントロピービット列から選択された別のエントロピービット列に従って決定され得る。結果として、セキュリティシステム１００によって生成されるセキュリティキーＳＫ１は、リバースエンジニアリング脅威やサイドチャネル攻撃から自身を保護するのに十分複雑となる。
【００４８】
さらに、セキュリティキーＳＫ１の復号を防止するために、ステップＳ３５０において、セキュリティシステム１００は、保護回路１３０がシステム脅威やシステム攻撃を検出したときは、複数のエントロピービット列から操作ビット列ＭＳ１を再度導出することができる。
【００４９】
図７は、セキュリティシステム２００を動作させるための方法４００を示す。方法４００は、ステップＳ４１０〜Ｓ４２０を含むが、図７に示す順序に限定されない。
【００５０】
Ｓ４１０：セキュリティキーＳＫ１に対して少なくとも１つの論理計算を実行することによってパラメータを生成する。
【００５１】
Ｓ４２０：決定性ランダムビット生成器２４０は、セキュリティキーＳＫ１をパラメータのシードとして使用することによって、少なくとも１つの決定性公式で乱数列を生成する。
【００５２】
ステップＳ４１０において、決定性ランダムビット生成器２４０によって使用されるパラメータが、ランダム性を保証するために予めセキュリティキー生成器１２０によって生成されたセキュリティキーＳＫ１に対して論理計算を実行することによって生成され得る。いくつかの実施形態では、ステップＳ４１０は、ランダム性検査回路２５０がセキュリティキーＳＫ１は十分にランダムではないと決定したときにのみ実行され得る。しかし、いくつかの他の実施形態では、ステップＳ４１０は、ルーチン手順として実行され得る。
【００５３】
パラメータが決定された後、ステップＳ４２０において、決定性ランダムビット生成器２４０は、パラメータで少なくとも１つの決定性公式を用いることによって乱数列を生成することができる。結果として、ＰＵＦ回路１１０によって提供されるエントロピービット列の数が限られた状態で、セキュリティシステムは短時間に乱数列を無制限に生成することができ、暗号アプリケーションの要件を満たすようにする。
【００５４】
追加的に、いくつかの実施形態では、セキュリティキーＳＫ１は、定期的に、あるいはシステム脅威又はシステム攻撃が保護回路によって検出されたときに再生成されることができ、乱数列が更新されることができるようにする。いくつかの他の実施形態では、決定性ランダムビット生成器２４０によって使用される公式は、システム要件に従って更新され得る。
【００５５】
まとめると、本発明の実施形態によって提供されるセキュリティシステム及びセキュリティシステムを動作させる方法は、ＰＵＦを用いて予測不可能なセキュリティキーを生成し、システムのセキュリティを強化することができる。また、セキュリティキー又はＰＵＦによって提供されるエントロピービットを用いて、膨大な乱数列が決定性乱数生成器で生成されることができ、ＰＵＦのクローン不能特性がすべての種類の暗号アプリケーションで使用されることが可能になる。
【００５６】
当業者であれば、装置及び方法への多様な修正及び変更が発明の教示を保持しながらなされ得ることに容易に気づくだろう。したがって、上記の開示は、添付の特許請求の範囲の境界によってのみ制限されるものとして解釈されるべきである。
【図１】
2019054504.tif 000003
【図２】
2019054504.tif 000004
【図３】
2019054504.tif 000005
【図４】
2019054504.tif 000006
【図５】
2019054504.tif 000007
【図６】
2019054504.tif 000008
【図７】
2019054504.tif 000009
【外国語明細書】
2019054504000001.pdf