特許第6538908号(P6538908)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 力旺電子股▲ふん▼有限公司の特許一覧

特許6538908エントロピービットを用いたセキュリティシステム
<>
  • 特許6538908-エントロピービットを用いたセキュリティシステム 図000002
  • 特許6538908-エントロピービットを用いたセキュリティシステム 図000003
  • 特許6538908-エントロピービットを用いたセキュリティシステム 図000004
  • 特許6538908-エントロピービットを用いたセキュリティシステム 図000005
  • 特許6538908-エントロピービットを用いたセキュリティシステム 図000006
  • 特許6538908-エントロピービットを用いたセキュリティシステム 図000007
  • 特許6538908-エントロピービットを用いたセキュリティシステム 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6538908
(24)【登録日】2019年6月14日
(45)【発行日】2019年7月3日
(54)【発明の名称】エントロピービットを用いたセキュリティシステム
(51)【国際特許分類】
   H04L 9/10 20060101AFI20190625BHJP
【FI】
   H04L9/00 621Z
   H04L9/00 621A
【請求項の数】33
【外国語出願】
【全頁数】17
(21)【出願番号】特願2018-42189(P2018-42189)
(22)【出願日】2018年3月8日
(65)【公開番号】特開2019-54504(P2019-54504A)
(43)【公開日】2019年4月4日
【審査請求日】2018年4月27日
(31)【優先権主張番号】62/557,170
(32)【優先日】2017年9月12日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】510199683
【氏名又は名称】力旺電子股▲ふん▼有限公司
【氏名又は名称原語表記】eMemory Technology Inc.
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】陳 信銘
(72)【発明者】
【氏名】▲呉▼ 孟益
(72)【発明者】
【氏名】▲黄▼ 柏豪
【審査官】 青木 重徳
(56)【参考文献】
【文献】 特開2017−130184(JP,A)
【文献】 特開2003−198529(JP,A)
【文献】 国際公開第2017/021254(WO,A1)
【文献】 国際公開第2017/025597(WO,A1)
【文献】 国際公開第2016/058793(WO,A1)
【文献】 米国特許出願公開第2016/0170856(US,A1)
【文献】 米国特許出願公開第2013/0246881(US,A1)
【文献】 中国特許出願公開第106020771(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/10
(57)【特許請求の範囲】
【請求項1】
複数のエントロピービット列を提供するように構成された物理的クローン不能機能(PUF)回路と、
前記複数のエントロピービット列から導出された操作ビット列を、演算エントロピービット列に従って操作することによってセキュリティキーを生成するように構成されたセキュリティキー生成器と、を含み、
前記演算エントロピービット列の各ビットは、対応する演算を前記操作ビット列に対して実行するかどうかを決定するように構成された、エントロピービットを用いたセキュリティシステム。
【請求項2】
前記演算エントロピービット列のビットは、置換演算を前記操作ビット列に対して実行するかどうかを決定するように構成され、
前記置換演算が前記操作ビット列に対して実行されるときは、前記操作ビット列の少なくとも1つのビットが、前記複数のエントロピービット列のうちの所定のエントロピービット列の少なくとも1つの対応するビットに置換される、請求項1に記載のエントロピービットを用いたセキュリティシステム。
【請求項3】
前記演算エントロピービット列のビットは、排他的論理和(XOR)演算を前記操作ビット列に対して実行するかどうかを決定するように構成され、
前記XOR演算が前記操作ビット列に対して実行されるときは、前記操作ビット列の少なくとも1つのビットと前記複数のエントロピービット列のうちの所定のエントロピービット列の少なくとも1つの対応するビットとのXORがとられる、請求項1に記載のエントロピービットを用いたセキュリティシステム。
【請求項4】
前記演算エントロピービット列のビットは、転置演算を実行するかどうかを決定するように構成され、
前記転置演算が前記操作ビット列に対して実行されるときは、前記操作ビット列の少なくとも2つのビットが交換される、請求項1に記載のエントロピービットを用いたセキュリティシステム。
【請求項5】
前記演算エントロピービット列のビットは、ジャンプ演算又は逆演算を実行するかどうかを決定するように構成された、請求項1に記載のエントロピービットを用いたセキュリティシステム。
【請求項6】
前記操作ビット列は、所定の順序に従って、前記複数のエントロピービット列のうちの異なるエントロピー列の複数のビットから導出される、請求項1に記載のエントロピービットを用いたセキュリティシステム。
【請求項7】
システム脅威及びシステム攻撃を検出するように構成された保護回路をさらに含み、
システム脅威又はシステム攻撃が検出されたときに、前記操作ビット列が前記複数のエントロピービット列から再度導出される、請求項1に記載のエントロピービットを用いたセキュリティシステム。
【請求項8】
前記操作ビット列は、前記複数のエントロピービット列から定期的に導出される、請求項1に記載のエントロピービットを用いたセキュリティシステム。
【請求項9】
前記演算エントロピービット列の各ビットの定義は、前記複数のエントロピービット列のうちの選択されたエントロピービット列によって決定される、請求項1に記載のエントロピービットを用いたセキュリティシステム。
【請求項10】
前記セキュリティキーをパラメータのシードとして使用することによって、少なくとも1つの決定性公式で乱数列を生成するように構成された決定性ランダムビット生成器(DRBG)をさらに含む、請求項1に記載のエントロピービットを用いたセキュリティシステム。
【請求項11】
前記乱数列は、初期化ベクトル、パディング、1度だけ使用される数(ノンス)及び暗号アプリケーションによって使用される、請求項10に記載のエントロピービットを用いたセキュリティシステム。
【請求項12】
前記パラメータは、少なくとも1つの論理計算を前記セキュリティキーに対して実行することによって生成される、請求項10に記載のエントロピービットを用いたセキュリティシステム。
【請求項13】
前記セキュリティキーのランダム性をチェックするためのランダム性検査回路をさらに含み、
前記パラメータは、前記セキュリティキーのランダム性が低いときに、少なくとも1つの論理計算を前記セキュリティキーに対して実行することによって生成される、請求項10に記載のエントロピービットを用いたセキュリティシステム。
【請求項14】
システム脅威及びシステム攻撃を検出するように構成された保護回路をさらに含み、
システム脅威又はシステム攻撃が検出されたときに、前記セキュリティキーが再生成される、請求項10に記載のエントロピービットを用いたセキュリティシステム。
【請求項15】
前記セキュリティキーは定期的に再生成される、請求項10に記載のエントロピービットを用いたセキュリティシステム。
【請求項16】
前記PUF回路は複数のPUFユニットを含み、該複数のPUFユニットの各々は、
第1ワンタイムプログラマブル(OTP)メモリセルであって、
ビット線に結合された第1端子と、第2端子と、ゲート構造とを有する第1アンチヒューズトランジスタを含み、該第1アンチヒューズトランジスタの該第1端子に隣接する該ゲート構造の部分は、該第1アンチヒューズトランジスタの該第2端子に隣接する該ゲート構造の部分よりも厚いゲート酸化物を有する、第1OTPメモリセルと、
第2OTPメモリセルであって、
前記ビット線に結合された第1端子と、前記第1アンチヒューズトランジスタの前記第2端子に結合された第2端子と、ゲート構造とを有する第2アンチヒューズトランジスタを含み、該第2アンチヒューズトランジスタの該第1端子に隣接する該ゲート構造の部分は、該第2アンチヒューズトランジスタの該第2端子に隣接する該ゲート構造の部分よりも厚いゲート酸化物を有する、第2OTPメモリセルと、を含み、
プログラム動作は前記第1OTPメモリセル及び前記第2OTPメモリセルに対して同時に実行されるが、前記第1OTPメモリセル及び前記第2OTPメモリセルの製造ばらつきに従って、前記第1OTPメモリセル及び前記第2OTPメモリセルの一方のみがプログラムされる、請求項1に記載のエントロピービットを用いたセキュリティシステム。
【請求項17】
前記PUF回路は複数のPUFユニットを含み、該複数のPUFユニットの各々は、
第1ワンタイムプログラマブル(OTP)メモリセルであって、
ビット線に結合された第1端子と、第2端子と、ワード線に結合された制御端子とを有する第1選択トランジスタと、
前記第1選択トランジスタの前記第2端子に結合された第1端子と、第2端子と、ゲート構造とを有する第1アンチヒューズトランジスタと、を含む第1OTPメモリセルと、
第2OTPメモリセルであって、
前記ビット線に結合された第1端子と、第2端子と、前記ワード線に結合された制御端子とを有する第2選択トランジスタと、
前記第2選択トランジスタの該第2端子に結合された第1端子と、前記第1アンチヒューズトランジスタの前記第2端子に結合された第2端子と、ゲート構造とを有する第2アンチヒューズトランジスタと、を含む第2OTPメモリセルと、を含み、
プログラム動作は前記第1OTPメモリセル及び前記第2OTPメモリセルに対して同時に実行されるが、前記第1OTPメモリセル及び前記第2OTPメモリセルの製造ばらつきに従って、前記第1OTPメモリセル及び前記第2OTPメモリセルの一方のみがプログラムされる、請求項1に記載のエントロピービットを用いたセキュリティシステム。
【請求項18】
前記PUF回路は複数のPUFユニットを含み、該複数のPUFユニットの各々は、
第1ワンタイムプログラマブル(OTP)メモリセルであって、
ビット線に結合された第1端子と、第2端子と、ワード線に結合された制御端子とを有する第1選択トランジスタと、
前記第1選択トランジスタの前記第2端子に結合された第1端子と、第2端子と、制御線に結合された制御端子とを有する第1デカップリングトランジスタと、
前記第1デカップリングトランジスタの前記第2端子に結合された第1端子と、第2端子と、ゲート構造とを有する第1アンチヒューズトランジスタと、を含む第1OTPメモリセルと、
第2OTPメモリセルであって、
前記ビット線に結合された第1端子と、第2端子と、前記ワード線に結合された制御端子とを有する第2選択トランジスタと、
前記第2選択トランジスタの前記第2端子に結合された第1端子と、第2端子と、前記制御線に結合された制御端子とを有する第2デカップリングトランジスタと、
前記第2デカップリングトランジスタの前記第2端子に結合された第1端子と、前記第1アンチヒューズトランジスタの前記第2端子に結合された第2端子と、ゲート構造とを有する第2アンチヒューズトランジスタと、を含む第2OTPメモリセルと、を含み、
プログラム動作は前記第1OTPメモリセル及び前記第2OTPメモリセルに対して同時に実行されるが、前記第1OTPメモリセル及び前記第2OTPメモリセルの製造ばらつきに従って、前記第1OTPメモリセル及び前記第2OTPメモリセルの一方のみがプログラムされる、請求項1に記載のエントロピービットを用いたセキュリティシステム。
【請求項19】
エントロピービットを用いたセキュリティシステムを動作させる方法であって、該セキュリティシステムは、物理的クローン不能機能(PUF)回路と、セキュリティキー生成器とを含み、当該方法は、
前記物理的クローン不能機能回路が、複数のエントロピービット列を提供するステップと、
前記複数のエントロピービット列から操作ビット列を導出するステップと、
前記セキュリティキー生成器が、演算エントロピービット列に従って、前記操作ビット列を操作することによってセキュリティキーを生成するステップと、
前記演算エントロピービット列の各ビットが、対応する演算を前記操作ビット列に対して実行するかどうかを決定するように構成された、方法。
【請求項20】
前記セキュリティキー生成器が、前記演算エントロピービット列に従って、前記操作ビット列を操作することによって前記セキュリティキーを生成するステップは、
前記セキュリティキー生成器が、前記演算エントロピービット列のビットに従って、置換演算を前記操作ビット列に対して実行するステップを含み、
前記置換演算が前記操作ビット列に対して実行されるときは、前記操作ビット列の少なくとも1つのビットが、前記複数のエントロピービット列のうちの所定のエントロピービット列の少なくとも1つの対応するビットに置換される、請求項19に記載の方法。
【請求項21】
前記セキュリティキー生成器が、前記演算エントロピービット列に従って、前記操作ビット列を操作することによって前記セキュリティキーを生成するステップは、
前記セキュリティキー生成器が、前記演算エントロピービット列のビットに従って、排他的論理和(XOR)演算を前記操作ビット列に対して実行するステップを含み、
前記XOR演算が前記操作ビット列に対して実行されるときは、前記操作ビット列の少なくとも1つのビットと前記複数のエントロピービット列のうちの所定のエントロピービット列の少なくとも1つの対応するビットとのXORがとられる、請求項19に記載の方法。
【請求項22】
前記セキュリティキー生成器が、前記演算エントロピービット列に従って、前記操作ビット列を操作することによって前記セキュリティキーを生成するステップは、
前記セキュリティキー生成器が、前記演算エントロピービット列のビットに従って、転置演算を前記操作ビット列に対して実行するステップを含み、
前記転置演算が前記操作ビット列に対して実行されるときは、前記操作ビット列の少なくとも2つのビットが交換される、請求項19に記載の方法。
【請求項23】
前記セキュリティキー生成器が、前記演算エントロピービット列に従って、前記操作ビット列を操作することによって前記セキュリティキーを生成するステップは、
前記セキュリティキー生成器が、前記演算エントロピービット列のビットに従って、ジャンプ演算又は逆演算を前記操作ビット列に対して実行するステップを含む、請求項19に記載の方法。
【請求項24】
前記操作ビット列は、所定の順序に従って、前記複数のエントロピービット列のうちの異なるエントロピー列の複数のビットから導出される、請求項19に記載の方法。
【請求項25】
前記セキュリティシステムは保護回路をさらに含み、当該方法は、
前記保護回路がシステム脅威又はシステム攻撃を検出したときに、前記複数のエントロピービット列から前記操作ビット列を再度導出する、請求項19に記載の方法。
【請求項26】
前記操作ビット列は、前記複数のエントロピービット列から定期的に導出される、請求項19に記載の方法。
【請求項27】
前記演算エントロピービット列の各ビットの定義を前記複数のエントロピービット列のうちの選択されたエントロピービット列によって決定するステップをさらに含む、請求項19に記載の方法。
【請求項28】
前記セキュリティシステムは決定性ランダムビット生成器(DRBG)をさらに含み、当該方法は、
前記決定性ランダムビット生成器が、前記セキュリティキーをパラメータのシードとして使用することによって、少なくとも1つの決定性公式で乱数列を生成するステップをさらに含む、請求項19に記載の方法。
【請求項29】
前記乱数列は、初期化ベクトル及び暗号アプリケーションによって使用される、請求項28に記載の方法。
【請求項30】
前記パラメータを、前記セキュリティキーに少なくとも1つの論理計算を実行することによって生成するステップをさらに含む、請求項28に記載の方法。
【請求項31】
前記セキュリティシステムは、ランダム性検査回路をさらに含み、当該方法は、
前記ランダム性検査回路が前記セキュリティキーのランダム性が低いと決定したときは、少なくとも1つの論理計算を前記セキュリティキーに対して実行することによって前記パラメータを生成するステップをさらに含む、請求項28に記載の方法。
【請求項32】
前記セキュリティシステムは保護回路をさらに含み、当該方法は、
システム脅威又はシステム攻撃が前記保護回路によって検出されたときに、前記セキュリティキーを再生成するステップをさらに含む、請求項28に記載の方法。
【請求項33】
前記セキュリティキーは定期的に再生成される、請求項28に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュリティシステム、より詳細には、エントロピービットを用いたセキュリティシステムに関連する。
【背景技術】
【0002】
電子デバイスがより多くの分野に適用されるにつれて、電子デバイスによって処理される情報も増加している。時には、電子デバイスは機密情報を伴う機能を実行することがある。この場合、電子デバイスの固有のセキュリティキーが識別及び保護のために使用され得る。しかし、チップとデバイスのリバースエンジニアリング手法が自動化できるようになるため、物理的及びサイドチャネル攻撃はより手頃で強力なものになっている。したがって、機密情報の暴露の問題が大きな懸念事項となっている。
【0003】
デバイスが権限のない者によってアクセスされるのを防ぐため、通常、多大な費用と時間が敵対者から防衛する対策を開発するために必要である。従来技術では、システムを物理的攻撃から保護するため、リバースエンジニアリング又はシステムハッキングに対する障壁を高めるために、その固有の特性による集積回路の物理的クローン不能機能(PUF)が適用され得る。
【0004】
PUFは、製造プロセスにおいて発生する制御不能なランダムの物理的特性によるビット列パターンを確立することができる。プロセス変動は、プロセス制御、材料内容、及び/又は環境ドリフトにおける非常に小さな変化に由来することができる。これらの不可避で予測不可能な変動が、固有ビット列を生成するためにPUFによって増幅される。
【0005】
しかし、システムによって必要とされる固有ビット数に比較して、例えば、システム初期化ベクトル及び暗号通信では、システムは、コスト及び領域の制限により十分な量のPUFを含むことができないことがある。さらに、PUFによって生成されるビット列は制御不能であるため、ビット列の品質及びランダム性も同様に制御不能である。したがって、システムセキュリティを最適化するためにどのようにPUFを使用するかが、解決されるべき問題として残っている。
【発明の概要】
【0006】
本発明の一実施形態は、エントロピービットを用いたセキュリティシステムを開示する。セキュリティシステムは、物理的クローン不能機能回路と、セキュリティキー生成器とを含む。
【0007】
物理的クローン不能機能回路は、複数のエントロピービット列を提供する。セキュリティキー生成器は、複数のエントロピービット列から導出される操作ビット列を演算エントロピービット列に従って操作することによってセキュリティキーを生成する。演算エントロピービット列の各ビットは、対応する演算を操作ビット列に対して実行するかどうかを決定するために使用される。本発明の別の実施形態は、エントロピービットを用いたセキュリティシステムを動作させるための方法を開示する。セキュリティシステムは、物理的クローン不能機能回路と、セキュリティキー生成器とを含む。
【0008】
本方法は、物理的クローン不能機能回路が、複数のエントロピービット列を提供するステップと、複数のエントロピービット列から操作ビット列を導出するステップと、セキュリティキー生成器が、演算エントロピービット列に従って操作ビット列を操作することによってセキュリティキーを生成するステップとを含む。演算エントロピービット列の各ビットは、対応する動作を操作ビット列に対して実行するかどうかを決定するように構成される。
【0009】
本発明のこれら及び他の目的は、様々な図及び図面に示す好ましい実施形態の以下の詳細な説明を読むことによって、当業者には間違いなく明らかになるであろう。
【図面の簡単な説明】
【0010】
図1】本発明の一実施形態によるセキュリティシステムを示す。
図2】本発明の一実施形態による図1のPUF回路のPUFユニットを示す。
図3】本発明の一実施形態による図1のPUF回路によって提供されるエントロピービット列のいくつかを示す。
図4】本発明の一実施形態によるセキュリティキーを生成するための操作ビット列の操作プロセスを示す。
図5】本発明の別の実施形態によるセキュリティシステムを示す。
図6】本発明の別の実施形態による図1のセキュリティシステムを動作させるための方法のフローチャートを示す。
図7】本発明の別の実施形態による図5のセキュリティシステムを動作させるための方法のフローチャートを示す。
【発明を実施するための形態】
【0011】
図1は、本発明の一実施形態によるセキュリティシステム100を示す。セキュリティシステム100は、物理的クローン不能機能(PUF)回路110と、セキュリティキー生成器120とを含む。
【0012】
PUF回路110は、複数のPUFユニットを含むことができ、複数のエントロピービット列を提供することができる。例えば、図2は、本発明の一実施形態によるPUF回路110のPUFユニット110Aを示す。PUFユニット110Aは、2つのワンタイムプログラマブル(OTP)メモリセル110A1及び110A2を含む。OTPメモリセル110A1は、アンチヒューズトランジスタAT1と、デカップリングトランジスタW1と、選択トランジスタS1とを含む。OTPメモリセル110A2は、アンチヒューズトランジスタAT2と、デカップリングトランジスタW2と、選択トランジスタS2とを含む。選択トランジスタS1は、ビット線BLに結合された第1端子と、第2端子と、ワード線WLに結合された制御端子とを有する。第1デカップリングトランジスタW1は、第1選択トランジスタS1の第2端子に結合された第1端子と、第2端子と、制御線SWLに結合された制御端子とを有する。第1アンチヒューズトランジスタAT1は、第1デカップリングトランジスタW1の第2端子に結合された第1端子と、第2端子と、ゲート構造とを有する。また、第2選択トランジスタS2は、ビット線BLに結合された第1端子と、第2端子と、ワード線WLに結合された制御端子とを有する。第2デカップリングトランジスタW2は、第2選択トランジスタS2の第2端子に結合された第1端子と、第2端子と、制御線SWLに結合された制御端子とを有する。アンチヒューズトランジスタAT2は、第2デカップリングトランジスタW2の第2端子に結合された第1端子と、第1アンチヒューズトランジスタAT1の第2端子に結合された第2端子と、ゲート構造とを有する。すなわち、アンチヒューズトランジスタAT1及びAT2が共に結合され、デカップリングトランジスタW1及びW2が同じ制御線SWLによって制御され、選択トランジスタS1及びS2が同じワード線WLによって制御される。
【0013】
PUFユニット110Aをプログラムするときは、プログラム動作がOTPメモリセル110A1及びOTPメモリセル110A2に対して同時に実行される。プログラム動作中、アンチヒューズトランジスタAT1及びAT2のゲート構造は同じ高電圧を同時に受け、アンチヒューズトランジスタAT1及びAT2のソース/ドレイン端子は、デカップリングトランジスタW1及びW2並びに選択トランジスタS1及びS2を介して低電圧を受ける。この場合、アンチヒューズトランジスタAT1及びAT2のうちの1つは、OTPメモリセル110A1及びOTPメモリセル110A2の製造ばらつきによって引き起こされる、ゲート酸化物品質、局所欠陥、ゲート酸化物薄化などの異なる固有の特性により最初に破壊される(ruptured)。また、OTPメモリが最初に破壊されることで、他方のアンチヒューズトランジスタが破壊することが防止される。すなわち、通常、プログラミングプロセス中、アンチヒューズトランジスタAT1及びAT2のうちの1つだけが破壊される。
【0014】
したがって、プログラムされた後、アンチヒューズトランジスタAT1、AT2のゲート状態は互いに異なるはずであり、同じ読み出し電圧をアンチヒューズトランジスタAT1及びAT2のゲート構造に別々に印加することにより、デカップリングトランジスタW1及びW2と選択トランジスタS1及びS2を介して読み出され得る。アンチヒューズトランジスタAT1及びAT2のゲート状態は制御不能な製造ばらつきにより引き起こされるため、OTPメモリセル110A1及び110A2から読み出されるビットは予測できず、したがって、システムによって必要とされるエントロピービットとして使用され得る。
【0015】
必要な数のPUFユニット110Aにより、PUF回路110は、所望の量のエントロピービット列を生成することができる。しかし、図2に示すPUFユニット110Aは、例示的なケースである。他の実施形態では、PUF回路110のPUFユニットは、異なる構造で実装され得る。例えば、PUFユニット110Aは、デカップリングトランジスタW1及びW2を省略し、動作選択のために選択トランジスタS1及びS2を使用することができる。すなわち、選択トランジスタS1の第2端子がアンチヒューズトランジスタAT1の第1端子に直接結合され、選択トランジスタS2の第2端子がアンチヒューズトランジスタAT2の第1端子に直接結合され得る。
【0016】
さらに、いくつかの実施形態では、選択トランジスタS1及びS2は省略され得る。この場合、アンチヒューズトランジスタAT1及びAT2の第1端子がビット線BLに直接結合される。また、アンチヒューズトランジスタAT1の第1端子に隣接するゲート構造の部分は、アンチヒューズトランジスタAT1の第2端子に隣接するゲート構造の部分よりも厚いゲート酸化物を有し、アンチヒューズトランジスタAT2の第1端子に隣接するゲート構造の部分は、アンチヒューズトランジスタAT2の第2端子に隣接するゲート構造の部分よりも厚いゲート酸化物を有する。すなわち、アンチヒューズトランジスタAT1及びAT2のゲート酸化物の厚さは、均一に分布していない。この場合、アンチヒューズトランジスタAT1及びAT2の第1端子が動作選択のために使用されることができる一方、アンチヒューズトランジスタAT1及びAT2の第2端子はプログラム中に破壊され得る。したがって、この場合、選択トランジスタS1及びS2が必要とされなくてよい。
【0017】
PUF回路110によって提供されるエントロピービット列の生データのアクセスは、むしろ単純になることがあるため、セキュリティキー生成器120がPUF回路によって提供されるエントロピービット列を操作することによって、所望のセキュリティキーSK1を生成して、プロセスと結果をさらに複雑及びランダムにする。セキュリティキーSK1は、固有の文字列、初期化ベクトル、パディング又はノンス(一度だけ使用される数)の少なくとも1つが必要とされるときに、多くの分野で使用され得る。
【0018】
図3は、本発明の一実施形態によるPUF回路110によって提供されるエントロピービット列S1〜S6のいくつかを示す。セキュリティキー生成器120は、PUF回路110によって提供される演算エントロピービット列に従って、PUF回路110によって提供される複数のエントロピービット列から導出される操作ビット列を操作することによって、セキュリティキーSK1を生成することができる。すなわち、操作ビット列は操作されることによってセキュリティキーを生成するために使用され、演算エントロピービット列は、操作ビット列をどのように操作するかを決定するために使用される。
【0019】
図4は、本発明の一実施形態によるセキュリティキーSK1を生成するための操作ビット列MS1の操作プロセスを示す。
【0020】
いくつかの実施形態では、操作ビット列MS1は、所定の順序に従って異なるエントロピービット列から導出され得る。例えば、図3では、操作エントロピー列MS1は、4つの異なる列S1〜S4からのビットのいくつかを所定の順序で組み合わせることができる。この場合、図4に示すように、「01011000」の値を有する操作エントロピービット列MS1が、エントロピービット列S1からのビットS1[0]及びS1[4]と、エントロピービット列S2からのビットS2[1]及びS2[5]と、エントロピービット列S3からのビットS3[2]及びS3[6]、エントロピービット列S4からのビットS4[3]及びS4[7]を組み合わせることによって導出され得る。しかし、いくつかの他の実施形態では、操作エントロピー列MS1は、システム要件に従ってエントロピービット列S1〜S6のうちの1つを選択することによって単純に導出され得る。
【0021】
また、演算エントロピービット列が同様に導出され得る。ここでは、例えば、エントロピービット列S6が演算エントロピービット列として選択され得る。いくつかの実施形態では、演算エントロピービット列の各ビットは、対応する動作を操作ビット列MS1に対して実行するかどうかを決定するために使用され得る。
【0022】
例えば、演算エントロピービット列のビットS6[0]は、置換演算を操作エントロピー列MS1に対して実行するかどうかを決定するために使用され得る。いくつかの実施形態では、ビットS6[0]の値が「0」である場合、置換演算が実行される。ビットS6[0]の値が「1」である場合、置換演算が実行されない。しかし、置換演算を有効又は無効にするためのビットS6[0]の定義は、他の実施形態において異ならせることができる。さらに、ビットS6[0]の定義は、いくつかの実施形態では、ユーザによって決定され得る、あるいはPUF回路110によって提供されるエントロピービット列から選択される別のエントロピービット列によって決定され得る。
【0023】
置換演算が操作ビット列MS1に対して実行されるときは、操作ビット列MS1のうちの少なくとも1ビットが所定のエントロピービット列の少なくとも1つの対応ビットに置換される。例えば、エントロピービット列S5が、演算エントロピービット列によって要求される演算のための所定のエントロピービット列として選択され得る。この場合、ビットS6[0]の値は「0」であるため、置換演算が実行され、操作エントロピー列MS1の第1ビットがエントロピービット列S5のビットS5[0]に置換される。結果として、図4に示すように、置換エントロピー列SS1が「11011000」の値を有するように生成される。いくつかの実施形態では、より多くのビットが、システム要求に従って所定のエントロピービット列のビットに置換され得る。
【0024】
また、演算エントロピービット列のビットS6[1]は、転置演算を置換エントロピー列SS1に対して実行するかどうかを決定するために使用され得る。いくつかの実施形態では、ビットS6[1]の値が「0」である場合、転置演算は実行されない。ビットS6[1]の値が「1」である場合、転置演算が実行される。すなわち、転置演算のためのビットS6[1]の定義は、置換演算のためのビットS6[0]の定義と異ならせることができる。また、転置演算を有効又は無効にするためのビットS6[1]の定義は、他の実施形態において異ならせることができ、いくつかの実施形態では、ユーザによって決定され得る、あるいはPUF回路110によって提供される複数のエントロピービット列のうちから選択される別のエントロピービット列によって決定され得る。
【0025】
転置演算が置換ビット列SS1に対して実行されるときは、置換ビット列SS1のうちの少なくとも2つのビットが交換される。例えば、ビットS6[1]の値が「1」であるため、転置演算が実行され、操作エントロピー列MS1の各対の2つのビットの位置が交換される。結果として、図4に示すように、転置エントロピー列TS1が「11100100」の値を有するように生成される。いくつかの実施形態では、システム要求に従って、より少ない対のビットが交換され得る。
【0026】
追加的に、演算エントロピービット列のビットS6[2]は、排他的論理和(XOR)演算を転置エントロピー列TS1に対して実行するかどうかを決定するために使用され得る。いくつかの実施形態では、ビットS6[2]の値が「0」である場合、XOR演算は実行されない。ビットS6[2]の値が「1」である場合、XOR演算が実行される。本実施形態では、ビットS6[2]の値が「1」であるため、XOR演算が実行される。また、XOR演算を有効又は無効にするためのビットS6 [2]の定義は、他の実施形態において異ならせることができ、いくつかの実施形態では、ユーザによって決定され得る、あるいはPUF回路110によって提供される別のエントロピービット列によって決定され得る。
【0027】
XOR演算が転置ビット列TS1に対して実行されるときは、転置ビット列TS1のうちの少なくとも1つビットと第2エントロピービット列の少なくとも1つの対応するビットとのXORがとられる。この場合、エントロピービット列S5が、演算エントロピービット列によって必要とされる演算のための所定のエントロピービット列として選択されているため、転置エントロピー列TS1の各ビットとエントロピービット列S5の対応するビットとのXORがとられる。結果として、図4に示すように、セキュリティキーSK1が「01110010」の値を有するように生成される。いくつかの実施形態では、システム要件に従って、XOR演算が転置ビット列TS1の一部に対してのみ実行され得る。
【0028】
図4に示す操作プロセスに従って、操作ビット列MS1は、異なるエントロピービット列によってさらにランダムにされており、さらによりクローン不能にされており、セキュリティキーSK1としてより適切にされている。しかし、いくつかの他の実施形態では、演算エントロピービット列は、他の異なる演算を決定するためのさらにより多くのビットを含むことができる。例えば、演算エントロピービット列の別のビットは、ジャンプ演算を実行するかどうかを決定するために使用されることができ、演算エントロピービット列の別のビットは、逆演算(reverse operation)を実行するかどうかを決定するために使用され得る。ジャンプ演算は、操作ビット列MS1の順序を変更するために操作ビット列MS1のうちのいくつかのビットを他の位置に移動させることができ、逆演算は、操作ビット列MS1の順序全体を逆にすることができる。
【0029】
本発明のいくつかの実施形態では、より異なる演算がセキュリティキーSK1を生成するために操作ビット列MS1の操作するために適用され得る。また、上記の動作は、システム要件に従って、別々に実行されることができる、あるいは任意の順序で組み合わせられ得る。
【0030】
PUF回路110を有する異なるチップでは存在するPUFビット列が固有であるという事実により、異なるPUFビット列によりその構成がセキュリティキー生成器120においても非常に異なる。つまり、セキュリティシステム100を有する各SoCチップにおいては、セキュリティシステム100のセキュリティキー生成器120は、各SoCチップに対して固有のセキュリティキーを生成する。この特徴は、セキュリティ脆弱性に対するセキュリティ保護において非常に重要であり、各チップは固有のキー生成を有するため、PUF実装100をクラッキングすることが困難になるハッカーが1つのチップにうまくブレイクしようとすることができる場合でも、セキュリティ構成がこれらの2つのチップでは異なるため、別のチップをブレイクするには多くの労力がかかる。これは、PUFベースのセキュリティシステムでの重要なセキュリティ値であり、ハッキングに対する障壁を高める。
【0031】
図1において、セキュリティシステム100は、保護回路130をさらに含む。保護回路130は、システム脅威及びシステム攻撃を検出することができる。例えば、保護回路130は、システムの電力状態を監視することができる。サイドチャネル攻撃のいくつかは、システムを妨害し、セキュリティ手順を無効にしようとするために、システムに高電圧を入力することがあるため、この種の攻撃は、電力挙動を監視することによって検出され得る。この場合、保護回路130は、異常電源挙動が発生したときに、警告信号を送信することができる、すなわち、システム脅威又はシステム攻撃が検出されたときに、セキュリティシステム100はPUF回路110によって提供された複数のエントロピービット列から新たな操作ビット列MS1を導出する。結果として、以前に使用されたセキュリティキーSK1が置換され、ハッキングプロセスがさらにより困難になる。
【0032】
いくつかの実施形態では、操作ビット列MS1は、複数のエントロピービット列から定期的に導出され得る。すなわち、セキュリティキーSK1は定期的に更新されることができるため、ハッカーが利用可能な復号化時間が厳しく制限され、リバースエンジニアリングに対する障壁を高める。
【0033】
PUF回路110から導出されるエントロピービット列は、その固有の特性により乱数列として使用されることができるのであるが、PUF回路110は、費用、領域及び速度の制限によりシステムによって要求される乱数を無制限に提供することができない可能性がある。この場合、前の実施形態で生成されたセキュリティキーSK1は、決定性ランダムビット生成器によってシードとして使用され、非常に短時間で膨大な量の乱数列を生成することができる。図5は、本発明の別の実施形態によるセキュリティシステム200を示す。セキュリティシステム100及び200は、類似の構造を有する。しかし、セキュリティシステム200は、決定性ランダムビット生成器(DRBG)240をさらに含む。
【0034】
決定性ランダムビット生成器240は、セキュリティキー生成器120によって生成されたセキュリティキーSK1をパラメータのシードとして使用することによって、少なくとも1つの決定性公式(deterministic formula)で乱数列を生成することができる。決定性ランダムビット生成器240によって使用される公式は、既知のアルゴリズムに基づくことができる。セキュリティキー生成器120によって生成されるセキュリティキーSK1は固有であり、予測不能であるため、決定性ランダムビット生成器240によって生成された乱数列も固有であり、予測することは困難である。さらに、決定性ランダムビット生成器240によって決定性公式で乱数列が生成されるため、乱数の生成は無制限であり、生成速度が非常に速く、列の数はシステム要件を満たすように容易に制御され得る。いくつかの実施形態では、乱数列は、初期化ベクトルとしてシステム初期化、パディングのために使用されることができる、又はRSA暗号、AES(Advanced Encryption Standard)暗号、DES(Data Encryption Standard)暗号、楕円曲線暗号(ECC)等の暗号アプリケーションによって使用され得る。
【0035】
追加的に、PUF回路110によって提供されるエントロピービット列は予測不可能であるため、セキュリティキー生成器によって生成されるセキュリティキーSK1は多くの反復ビットを有し得る可能性がある、例えば、ビットの大部分が「1」又は「0」であることがある。この場合、セキュリティキーSK1が決定性ランダムビット生成器240によって直接使用される場合、決定性ランダムビット生成器240によって生成される乱数列は、予測されやすくなる可能性がある。したがって、図5に示すように、セキュリティシステム200は、ランダム性検査回路250をさらに含むことができる。ランダム性検査回路250は、モノビットテスト、ポーカーテスト、ランテスト等の統計的方法でセキュリティキーSK1のランダム性をチェックすることができる。任意のランダム性テストが失敗した場合、又はセキュリティキーSK1が十分にランダムではないと識別された場合、セキュリティキーSK1は、決定性ランダムビット生成器240によって使用されるパラメータを生成するために、ハッシュ演算、XOR演算等の少なくとも1つの論理計算を実行することによって処理される。したがって、決定性ランダムビット生成器240によって生成される乱数列の品質が保証され得る。
【0036】
図5において、ランダム性検査回路250は、保護回路130とは異なるように見えるが、いくつかの実施形態では、ランダム性検査回路250が保護回路130に含まれ得る。図1及び5に示す機能ブロックは、それらの機能を提示するために使用され、それらの物理的実装を制限するものではない。例えば、いくつかの実施形態では、PUF回路110及びセキュリティキー生成器120は、システム要件に従って保護回路130に統合されることもできる。
【0037】
また、いくつかの実施形態では、論理計算が、システム要件に従ってランダム性検査回路250によってテストされていないセキュリティキーSK1に常に適用され得る。さらに、いくつかの実施形態においては、セキュリティキーSK1は、暗号の品質を保証するために、定期的に再生成される、あるいはシステム脅威又はシステム攻撃が保護回路130によって検出されたときに再生成され得る。さらに、いくつかの実施形態では、決定性乱数生成器240によって使用される公式が、システム要件に従って更新されることもでき、保護をさらにより強固にする。
【0038】
また、いくつかの実施形態では、決定性乱数生成器240は、セキュリティキー生成器120の操作なしに、乱数列を生成するためのパラメータとして、PUF回路110によって提供されるエントロピービット列を使用することができる。この場合、エントロピービット列のランダム性が依然としてランダム性検査回路250によってテストされることができ、必要な論理計算が適用されて、パラメータの品質を保証することができる。
【0039】
図6は、セキュリティシステム100を動作させるための方法300を示す。方法300は、ステップS310〜S350を含むが、図6に示す順序に限定されない。
【0040】
S310:物理的クローン不能機能回路110は、複数のエントロピービット列を提供する。
【0041】
S320:複数のエントロピービット列から操作ビット列MS1を導出する。
【0042】
S330:演算エントロピービット列の各ビットの定義を決定する。
【0043】
S340:セキュリティキー生成器120は、演算エントロピービット列に従って操作ビット列MS1を操作することによってセキュリティキーSK1を生成する。
【0044】
S350:保護回路130がシステム脅威又はシステム攻撃を検出するときは、S320に進む。
【0045】
ステップS310において、PUFは、図3に示すエントロピービット列S1〜S6などの複数のエントロピービット列を提供することができ、ステップS320において、操作ビット列MS1がPUFによって提供される複数のエントロピービット列から導出され得る。例えば、操作ビット列MS1は、図4に示すように、異なるエントロピー列S1〜S4のビットによって導出されることができる、又はPUF回路110によって提供される複数のエントロピー列のうちの1つを単に選択することによって導出され得る。
【0046】
操作ビット列MS1が導出された後、セキュリティキー生成器120は、演算エントロピービット列で操作ビット列MS1を操作することができる。演算エントロピービット列の各ビットは、置換演算、XOR演算、転置演算、ジャンプ演算、逆演算等の対応する演算を操作ビット列MS1に対して実行するかどうかを決定するために使用され得る。本実施形態では、ステップS330において、演算エントロピービット列の各ビットの定義が決定されることができ、ステップS340において、セキュリティキー生成器120が演算エントロピービット列に従って操作ビット列MS1を操作することによってセキュリティキーSK1を生成する。
【0047】
いくつかの実施形態では、セキュリティキー生成器120によって実行される、XOR演算、置換演算等の演算は、他のエントロピービット列を伴うことがある。この場合、所定のエントロピービット列は、対応する演算のため、PUF回路110によって提供される複数のエントロピービット列から選択され得る。また、いくつかの実施形態では、演算エントロピービット列の各ビットの定義は、PUF回路110によって提供される複数のエントロピービット列から選択された別のエントロピービット列に従って決定され得る。結果として、セキュリティシステム100によって生成されるセキュリティキーSK1は、リバースエンジニアリング脅威やサイドチャネル攻撃から自身を保護するのに十分複雑となる。
【0048】
さらに、セキュリティキーSK1の復号を防止するために、ステップS350において、セキュリティシステム100は、保護回路130がシステム脅威やシステム攻撃を検出したときは、複数のエントロピービット列から操作ビット列MS1を再度導出することができる。
【0049】
図7は、セキュリティシステム200を動作させるための方法400を示す。方法400は、ステップS410〜S420を含むが、図7に示す順序に限定されない。
【0050】
S410:セキュリティキーSK1に対して少なくとも1つの論理計算を実行することによってパラメータを生成する。
【0051】
S420:決定性ランダムビット生成器240は、セキュリティキーSK1をパラメータのシードとして使用することによって、少なくとも1つの決定性公式で乱数列を生成する。
【0052】
ステップS410において、決定性ランダムビット生成器240によって使用されるパラメータが、ランダム性を保証するために予めセキュリティキー生成器120によって生成されたセキュリティキーSK1に対して論理計算を実行することによって生成され得る。いくつかの実施形態では、ステップS410は、ランダム性検査回路250がセキュリティキーSK1は十分にランダムではないと決定したときにのみ実行され得る。しかし、いくつかの他の実施形態では、ステップS410は、ルーチン手順として実行され得る。
【0053】
パラメータが決定された後、ステップS420において、決定性ランダムビット生成器240は、パラメータで少なくとも1つの決定性公式を用いることによって乱数列を生成することができる。結果として、PUF回路110によって提供されるエントロピービット列の数が限られた状態で、セキュリティシステムは短時間に乱数列を無制限に生成することができ、暗号アプリケーションの要件を満たすようにする。
【0054】
追加的に、いくつかの実施形態では、セキュリティキーSK1は、定期的に、あるいはシステム脅威又はシステム攻撃が保護回路によって検出されたときに再生成されることができ、乱数列が更新されることができるようにする。いくつかの他の実施形態では、決定性ランダムビット生成器240によって使用される公式は、システム要件に従って更新され得る。
【0055】
まとめると、本発明の実施形態によって提供されるセキュリティシステム及びセキュリティシステムを動作させる方法は、PUFを用いて予測不可能なセキュリティキーを生成し、システムのセキュリティを強化することができる。また、セキュリティキー又はPUFによって提供されるエントロピービットを用いて、膨大な乱数列が決定性乱数生成器で生成されることができ、PUFのクローン不能特性がすべての種類の暗号アプリケーションで使用されることが可能になる。
【0056】
当業者であれば、装置及び方法への多様な修正及び変更が発明の教示を保持しながらなされ得ることに容易に気づくだろう。したがって、上記の開示は、添付の特許請求の範囲の境界によってのみ制限されるものとして解釈されるべきである。
図1
図2
図3
図4
図5
図6
図7