JP6968234B2 - 相対遅延を伴うフリップフロップを用いてデータサンプリング完全性チェックを行う電子デバイスおよびその方法 - Google Patents

相対遅延を伴うフリップフロップを用いてデータサンプリング完全性チェックを行う電子デバイスおよびその方法 Download PDF

Info

Publication number
JP6968234B2
JP6968234B2 JP2020107357A JP2020107357A JP6968234B2 JP 6968234 B2 JP6968234 B2 JP 6968234B2 JP 2020107357 A JP2020107357 A JP 2020107357A JP 2020107357 A JP2020107357 A JP 2020107357A JP 6968234 B2 JP6968234 B2 JP 6968234B2
Authority
JP
Japan
Prior art keywords
state sampling
output
sampling component
functional state
clock signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020107357A
Other languages
English (en)
Other versions
JP2021047845A (ja
Inventor
ハーシュマン ジヴ
Original Assignee
新唐科技股▲ふん▼有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 新唐科技股▲ふん▼有限公司 filed Critical 新唐科技股▲ふん▼有限公司
Publication of JP2021047845A publication Critical patent/JP2021047845A/ja
Application granted granted Critical
Publication of JP6968234B2 publication Critical patent/JP6968234B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • H03K19/21EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical

Description

本発明は、電子回路におけるデータセキュリティに関し、特に、フォールトインジェクション攻撃に対する保護のための方法およびシステムに関する。
フォールトインジェクション攻撃は、暗号回路などの安全な電子回路から情報にアクセス、分析、または抽出するために使用される一連の技術である。フォールトインジェクション攻撃は、通常、信号線に物理的に接触する、高出力レーザーまたは電磁パルスを適用する、電源やその他の外部インターフェイスにグリッチを発生させるなど、回路にフォールトを発生させることを伴う。この障害により、回路が機密情報を出力したり、回路または格納されている情報を攻撃者が侵入したりする可能性がある。
フォールトインジェクション攻撃を検出および/または軽減するためのさまざまな技術が知られている。たとえば、米国特許出願公開第2009/0315603号では、電子回路において、複数の第1フリップフロップの組からの少なくとも1つの第1フリップフロップの状態の不安定を検出するための方法および回路を記載している。組内の第1フリップフロップの各出力を、機能目的とは関係なく、信号とその反転信号を提供するために結合され、同じ状態に強制されたデータ入力を持つ2つの第2フリップフロップをトリガーし、各出力を検出の結果を提供するために結合されている。グループ内の第1フリップフロップの1つのトリガーエッジごとにパルスを含むパルス信号は、第2フリップフロップを初期化できる。
別の例として、米国特許第7,977,965号は、デジタルICにおけるソフトエラー検出のためのシステムおよび方法を記載している。このシステムは、ラッチに結合された監視回路を含み、この回路は、ラッチの状態変化に対する応答が可能である。システムはさらに、ラッチおよび観測回路に提供される同期されたクロッキングを含む。ラッチの場合、クロッキングは、ラッチがデータを受信できない時間枠を定義する。そして、同期された方法で、クロッキングは観測回路における応答を可能にしている。クロッキングは、ラッチがデータを受信できないときにウィンドウ内でのみ回路の応答が可能になるように同期される。
米国特許出願公開第2005/0235179号は、いくつかのビットを並列に含む機能結果を受信し、同期結果を供給する機能同期フリップフロップを含む論理モジュールを含む論理回路を記載している。機能するフリップフロップの完全性をチェックするためのモジュールは、機能結果を受け取り、最初のコードを供給する最初のコーディングブロックと、同期結果を受け取り、2番目のコードを供給する2番目のコーディングブロックと、最初のコードを受信して3番目のコードを供給するチェック同期フリップフロップと、第2のコードを第3のコードと比較し、第1のエラー信号を供給する比較器と、を含む。
米国特許出願2009/0315603 米国特許出願7,977,965 米国特許出願2005/0235179
本発明の目的は、相対遅延を伴うフリップフロップを用いてデータサンプリング完全性チェックを行う電子デバイスおよびその方法を提供することにある。
本発明の実施形態に係る電子デバイスは、組み合わせ論理回路と、1つまたは複数の機能状態サンプリングコンポーネントと、1つまたは複数の保護状態サンプリングコンポーネントと、お保護論理と、を含む。組み合わせ論理回路は、1つまたは複数の出力を有する。機能状態サンプリングコンポーネントは、組み合わせ論理回路のそれぞれの出力をサンプリングするように構成されている。保護状態サンプリングコンポーネントは、それぞれ、機能状態サンプリングコンポーネントに関連付けられている。各保護状態サンプリングコンポーネントとそれに対応する機能状態サンプリングコンポーネントは、組み合わせ論理回路の同じ出力をサンプリングする。ただし、保護状態サンプリングコンポーネントには、所定時間オフセット(predefined time offset)を有する。保護ロジックは、機能状態サンプリングコンポーネントによってサンプリングされた出力と保護状態サンプリングコンポーネントによってサンプリングされた各出力との不一致を検出し、その不一致に応じて応答アクション(responsive action)を開始するように構成されている。
また、本発明の実施形態では、電子デバイスは、組み合わせ論理回路の出力を遅延して遅延出力を生成するように構成された遅延素子をさらに含み、機能状態サンプリングコンポーネントは、出力および遅延出力の一方をサンプリングするように構成され、保護状態サンプリングコンポーネントは、出力と遅延出力のもう一方をサンプリングするように構成されている。
また、他の実施形態では、電子デバイスは、クロック信号を遅延させて遅延クロック信号を生成するように構成された遅延素子をさらに含み、機能状態サンプリングコンポーネントは、クロック信号と遅延クロック信号の一方によってクロックされるように構成され、それに対応する保護状態サンプリングコンポーネントは、クロック信号および遅延クロック信号の他方によってクロックされるように構成される。
また、他の実施形態では、機能状態サンプリングコンポーネントおよび対応する保護状態サンプリングコンポーネントは、フリップフロップ(FF)を含む。また、別の実施形態では、機能状態サンプリングコンポーネントは、第2ラッチを駆動する第1ラッチを含み、対応する保護状態サンプリングコンポーネントは、第1ラッチに関連付けられた第3ラッチを含む。
さらに別の実施形態では、保護ロジックは、2つ以上の機能状態サンプリングコンポーネントと2つ以上の保護状態サンプリングコンポーネントとの間で検出された複数の不一致を統合するように構成され、統合された不一致に応答して応答アクションを開始する。さらに別の実施形態では、保護ロジックは、検出された不一致がクロックサイクルの所定期間に発生したときにのみ応答アクションを開始するように構成されている。開示された実施形態では、機能状態サンプリングコンポーネントは、第1閾値電圧で組み合わせ論理回路の出力をサンプリングするように構成され、対応する保護状態サンプリングコンポーネントは、第1閾値電圧よりも高い第2閾値電圧で組み合わせ論理回路の同じ出力をサンプリングするように構成される。
本発明の実施形態による電子デバイスを保護する方法は、1つまたは複数の機能的状態サンプリングコンポーネントを使用して、組み合わせ論理回路の1つまたは複数の出力をサンプリングすることを含む。1つまたは複数の出力は、それぞれ機能状態サンプリングコンポーネントに関連付けられている1つまたは複数の保護状態サンプリングコンポーネントを使用してサンプリングされる。各保護状態サンプリングコンポーネント及び対応する機能状態サンプリングコンポーネントは、同じ組み合わせ論理回路の出力をサンプリングする。ただし、機能状態サンプリングコンポーネントには、関連する所定時間オフセットを有する。機能状態サンプリングコンポーネントによってサンプリングされた出力と、保護状態サンプリングコンポーネントによってサンプリングされたそれぞれの出力との間の不一致が検出され、その不一致に応答して応答アクションが開始される。
また、本発明の一実施形態による電子デバイスは、クロック生成回路と、組み合わせ論理回路と、1つまたは複数の機能状態サンプリングコンポーネントと、保護論理と、を含む。クロック生成回路は、周期的なクロックサイクルを有するクロック信号を生成するように構成される。組み合わせ論理回路には、複数の内部ネットと1つ以上の出力が含まれる。1つまたは複数の機能状態サンプリングコンポーネントは、組み合わせ論理回路のそれぞれの出力をクロック信号に従って周期的にサンプリングするように構成される。保護ロジックは、内部ネットまたは組み合わせロジック回路の出力から1つ以上の信号を受信し、受信した1つ以上の信号における、周期的なクロックサイクルの所定部分で発生する信号の不安定性を検出するように構成される。信号は安定しており、検出された信号の不安定性に応答して応答アクションを開始することが期待される。
いくつかの実施形態では、保護ロジックは、クロック信号から導出され、信号が安定していると予想され、 周期的なクロックサイクルの所定部分での信号の不安定性の発生を検出するための制御信号を受信する。また、一実施形態では、保護ロジックは、検出された信号不安定性に応答してパルスを生成し、パルスで保護状態サンプリングコンポーネントのデータ入力を駆動し、保護状態サンプリングコンポーネントの出力に応答して応答アクションを開始するように構成される。
開示された実施形態では、保護ロジックは、検出された信号の不安定性に応答して修正されたクロック信号を生成し、修正されたクロック信号で保護状態サンプリングコンポーネントのクロック入力を駆動し、保護状態サンプリングコンポーネントの出力に応答して応答アクションを開始するように構成される。例示的な実施形態では、保護論理は、組み合わせ論理回路のクリティカルタイミングパス上にない各内部ネットから信号を受信するように構成される。
本発明の実施形態によれば、複数の内部ネットと1つまたは複数の出力とを有する組み合わせ論理回路を保護する方法がさらに提供される。出力は、周期的なクロックサイクルを有するクロック信号に従ってサンプリングされる。 この方法は、組み合わせ論理回路の内部ネットまたは出力から1つまたは複数の信号を受け取ることを含む。 組み合わせ論理回路の設計に従って、信号が安定であることが期待される、周期的なクロックサイクルの所定期間に発生する信号不安定性の検出が、1つ以上の受信信号で行われる。 検出された信号の不安定性に応答して、応答アクションが開始される。
図1A及び図1Bは、本発明の実施形態による、相対遅延を伴う一対のフリップフロップを使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。 図1A及び図1Bは、本発明の実施形態による、相対遅延を伴う一対のフリップフロップを使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。 図2A及び2Bは、本発明の実施形態による、重複ラッチおよび相対遅延を有するFF回路を使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。 図2A及び2Bは、本発明の実施形態による、重複ラッチおよび相対遅延を有するFF回路を使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。 図3A〜図3Cは、本発明の実施形態による、複数の組み合わせ論理ネットからの信号間の不一致を検出することによってデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。 図3A〜図3Cは、本発明の実施形態による、複数の組み合わせ論理ネットからの信号間の不一致を検出することによってデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。 図3A〜図3Cは、本発明の実施形態による、複数の組み合わせ論理ネットからの信号間の不一致を検出することによってデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。 図4は、本発明の実施形態による、クリティカルタイミングパスから外れている複数の組み合わせ論理ネットを使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。 図5は、本発明の実施形態による、クロックゲーティングを使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。 図6は、本発明の実施形態による、クロックゲーティングを使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。 図7は、本発明の実施形態による、クロックゲーティングを使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。
以下、本発明について、図に示す実施形態に基づいて説明する。
本明細書で説明される本発明の実施形態は、タイミング違反を引き起こすことを目的とする攻撃、例えば、フォールトインジェクション攻撃から電子デバイスを保護するための改善された方法および回路を提供する。本明細書で説明する実施形態は、主にグリッチの注入を含むフォールトインジェクション攻撃に言及しているが、開示される技法は、他の様々な種類の攻撃に対する保護にも等しく有用である。開示された技術は、メモリデバイスおよび組み込みコントローラなどの様々なタイプの電子デバイスで使用することができる。
開示された実施形態では、電子デバイスは組み合わせ論理回路を備える。組み合わせ論理回路は、通常、機能データに対して指定された操作を一緒に実行する複数の相互接続された論理ステージを備える。組み合わせ論理回路は、1つ以上の入力で処理するための機能データを受信し、1つ以上の出力で処理結果を送信する。
電子デバイスは、連続するクロックサイクルで組み合わせ論理回路の出力をサンプリングするように構成された1つまたは複数のフリップフロップ(FF)をさらに含む。これらのFFは、組み合わせ論理回路の出力における機能信号の状態をサンプリングするため、本明細書では「機能FF」と呼ばれる。機能FFによってサンプリングされた出力は、次のクロックサイクルで組み合わせ論理回路への入力として機能することができる。
実際には、組み合わせロジックが入力を処理する(処理結果を出力するまで)には時間がかかります。この時間は、本明細書では伝播遅延と呼ばれる。適切に動作させるには、組み合わせロジックの伝播遅延が電子デバイスのセットアップ時間とホールド時間の要件に準拠している必要がある。そうしないと、機能しているFFが誤った値をサンプリングする可能性がある(このようなイベントは「タイミング違反」と呼ばれる)。通常の動作条件(デバイスがサポートするように設計された条件)で、セットアップ時間とホールド時間の要件が満たされた場合、機能FFを供給する組み合わせロジック出力は、機能FFが結果を正しくサンプリングすることを保証するために、機能FFサンプリング時間前後の正しい処理結果で安定していることが設計によって保証されている。
攻撃シナリオの例として、攻撃者は、機能しているFFに誤った意図しない値をサンプリングさせる可能性がある。たとえば、機能しているFFまたは組み合わせロジックにグリッチを挿入または誘導することにより、または、例えばクロック周波数、温度、または電圧範囲を改ざんするなど、通常の動作条件外で電子デバイスを動作させる可能性がある。
フォールトインジェクション攻撃が原因で、組み合わせ論理回路の1つ以上の入力にグリッチが存在するシナリオの例では、グリッチは、例えば、1nS未満の短い電圧スパイク、または任意の他の適切なグリッチを含み得る。グリッチは組み合わせ論理回路に入り、1つ以上の出力に伝播する可能性がある。
組み合わせロジック回路の特定の出力で、伝播したグリッチ効果が問題の出力をサンプリングする機能FFのサンプリング時間と偶然に一致すると、機能FFが誤った状態をサンプリングする可能性があるす。この誤った状態は、次のクロックサイクルで組み合わせ論理回路への入力として使用される。このような場合、組み合わせ論理回路が誤動作する可能性がある。たとえば、フォールトインジェクション攻撃のシナリオでは、組み合わせ論理回路を強制的に異常な状態にすると、望ましくない情報漏洩が発生する可能性がある。
電子デバイスを攻撃から保護するために、いくつかの実施形態では、電子デバイスは、「保護FF」と呼ばれる1つまたは複数の追加のFF、および保護ロジックを含む。各保護FFは、機能FFの1つに関連付けられ、組み合わせ論理回路の対応する機能FFと同じ出力をサンプリングするように構成されているが、機能FFに対して所定時間オフセットを有する。時間オフセットは、通常、機能FFの少なくとも1つと対応する保護FFが異なる値をキャプチャする可能性が高いほど長く設定される。この異なる値は、組み合わせロジックまたは他の挿入された障害を介して挿入されたグリッチ伝播による、サンプリング時間前後の(組み合わせロジック)出力の不安定性に起因する。
保護ロジックは、機能FFによってサンプリングされた出力と、保護FFによってサンプリングされたそれぞれの時間オフセット出力との間の不一致を検出するように構成されている。不一致が検出された場合、保護ロジックは、適切な応答アクションを開始するように、たとえばアラートを発行するように構成される。
本明細書では、デュアルサンプリング方式のさまざまな実装について説明する。例えば、時間オフセットは、2つのFFのうちの1つに提供されるデータ(組み合わせ論理出力)またはクロック信号のいずれかを遅延させることによって実現できる。いくつかの実施形態では、機能FFの一部のみ、例えば、ただ1つのラッチが、保護FFにて複製される。いくつかの実施形態では、保護ロジックは、機能/保護FFの複数のペアからの起こり得る不一致を統合できる。
いくつかの実施形態では、機能的FFの選択された部分的なサブセットのみが、開示された技術を使用して保護される。いくつかの実施形態では、機能FFおよび対応する保護FFは、異なる閾値電圧でサンプリングするように構成されるため、両方のサンプリング時間にグリッチが存在する場合でも、小さなグリッチが一方の保護/機能FFによってキャプチャされ、もう一方はキャプチャされないようにしている。一部の実施形態では、保護FFへの入力は、対応する機能FFの入力に対して反転される。
さらに、開示された技術は、FFに限定されず、様々な他の適切なタイプの状態サンプリングコンポーネントを使用して実現できる。本開示の文脈および特許請求の範囲において、「状態サンプリングコンポーネント」という用語は、組み合わせ論理回路の出力の現在の状態をサンプリングする任意のコンポーネントを指す。状態サンプリングコンポーネントは、例えば、ラッチ、スタティックランダムアクセスメモリ(SRAM)セル、または他の適切なタイプのメモリセルを含み得る。明確にするために、以下の説明は、例として、主にFFを参照する。
本明細書で説明される他の実施形態では、保護論理は、組合せ論理回路から選択された信号を受信する。保護ロジックは、1つ以上の信号で、組み合わせロジック回路の設計に従って信号が安定していると予想されるクロックサイクルの所定部分で発生する信号の不安定性を検出するように構成される。検出された信号の不安定性に応答して、適切な応答アクションが開始される。
上記の技法のいくつかの変形について説明する。いくつかの実施形態では、保護ロジックは、検出された信号の不安定性に応答してパルスを生成し、そのパルスでラッチのデータ入力を駆動する。ラッチの出力は、応答アクションを開始するために使用される。他の実施形態では、保護ロジックは、検出された信号の不安定性に応答して修正されたクロック信号を生成し、修正されたクロック信号でFFのクロック入力を駆動する。FF出力は、応答アクションを開始するために使用される。例示的な実施形態では、選択された信号は、組み合わせ論理回路のクリティカルタイミングパス上にないネットから取得する。
図1Aは、本発明の実施形態による、データサンプリングの完全性を検証するための回路を備える電子デバイス20を概略的に示すブロック図である。デバイス20は、例えば、開示された技術を使用するフォールトインジェクション攻撃から保護された安全な不揮発性メモリデバイスまたは安全な埋め込みコントローラを含み得る。あるいは、デバイス20は、攻撃に対する保護が望まれる任意の他の適切なタイプの電子デバイスを含むことができる。
通常、必ずしもではないが、デバイス20の様々な要素は、集積回路(IC)に含まれる。デバイス20は、通常、その指定された機能を実行するための様々な入力および出力(図示せず)を含む。
この例では、デバイス20は、簡潔さのために「組み合わせ論理」とも呼ばれる組み合わせ論理回路24を備える。組み合わせ論理回路24は、通常、機能データに対して何らかの指定された動作を一緒に実行する複数の相互接続された論理ステージ(例えば、論理ゲート)を含む。安全装置において、例えば、組み合わせロジック回路24は、暗号化または復号化、または安全な署名または検証などの暗号操作の一部またはすべてを実行することができる。しかしながら、一般に、開示された技術は、他の任意の適切な機能を実行する他の任意の適切なタイプの組み合わせ論理と共に使用することができる。組み合わせ論理24は、処理のための機能データを受信するための1つまたは複数の入力と、処理結果を出力するための1つまたは複数の出力とを含む。
電子デバイス20は、1つまたは複数のデュアルサンプリングFF回路28をさらに含む。各FF回路28は、各クロックサイクルで組み合わせ論理24のそれぞれの出力をサンプリングする。各FF回路28によってサンプリングされた出力は、次のクロックサイクルにおいて組み合わせ論理24のそれぞれの入力として使用される。各FF回路28は、適切なクロック生成回路によって生成され、クロックツリーロジック(clock tree logic)40によって提供される、CKで示されるクロック信号によってクロックされる。
図1Aの下部は、各FF回路28の内部構造を示す。FF回路28によってサンプリングされる組み合わせ論理24の出力は、D_inで示される。組合せ論理回路24への入力としてフィードバックされるべきFF回路28のサンプリングされた出力は、Q_outで示される。
この実施形態では、FF回路28は、機能FF 32Aおよび保護FF32Bを備える。この例では、両方のFFがD−FFであるが、他の適切なFFタイプも代替実施形態で使用することができる。機能FF32Aは、CKの各サイクルでQ_outを生成するようにD_inをサンプリングするように構成されている。保護FF 32Bは、D_inの遅延レプリカをサンプリングするように構成されている。
この例では、FF回路28は、所定の時間オフセットだけD_inを遅延させる遅延素子36を含む。保護FF32Bは、遅延素子36の出力で遅延されたD_inをサンプリングする。FF32AおよびFF 32Bの両方は、同じクロック信号CKによってクロックされる。上記で説明したように、遅延素子36の遅延は、通常、FF32Aおよび32Bが攻撃のイベントで異なる値をサンプリングするのに十分な長さに設定される。一方、長い遅延素子は面積を消費するため、極端に長い遅延は回避する必要がある。また、遅延はFF回路のセットアップ時間またはホールド時間のマージンから減少する。例示的な実施形態では、遅延素子36の遅延は、0.5〜3nsの範囲である。あるいは、他の適切な遅延値を使用することもできる。
排他的OR(XOR)ゲート44は、機能FF32Aと保護FF 32Bのサンプリングされた出力(Q)との間で論理XOR演算を実行する。XORゲート44の出力はアラート信号として使用される。
D_inにグリッチが存在しない場合、FF 32Aと32Bのサンプリングされた出力は同じになるため、アラート信号はLowのままになる。D_inがFFサンプル時間の直前(遅延素子36の遅延より短い)に変化する場合、通常、FF32Aおよび32Bの1つは変更後の値をサンプリングし、もう1つは変更前の値をサンプリングする。2つのFFが同じ値をサンプリングする場合、アラート信号はLowのままになります。FF32Aと32Bが異なる値をサンプリングすると、アラート信号が高くなり、データサンプリングの整合性が損なわれたことを示す。したがって、この例では、XORゲート44は、FF32AとFF32Bのサンプリングされた出力間の不一致を検出する保護ロジックとして機能する。
図1Aの例では、遅延は、保護FF(FF32B)によってサンプリングされたデータ信号(D_in)に適用され、機能FF(FF32A)は、遅延されていないデータ信号(D_in)をサンプリングする。しかしながら、代わりに、機能FF(FF32A)によってサンプリングされたデータ信号に遅延が適用されてもよく、その場合、保護FF(FF32B)は遅延されていないデータ信号をサンプリングする。
図1Aの例では、すべての機能FFがそれぞれの保護FFによって保護されている。代替実施形態では、機能FFの選択されたサブセットのみがこの方法で保護される。
図1Bは、本発明の実施形態による、相対遅延を伴う1対のフリップフロップ(FF)を使用してデータサンプリングの完全性を検証するための代替のFF回路を概略的に示すブロック図である。図1Bの回路は、上記の図1AのFF回路28の代わりに使用することができる。本実施形態は、時間オフセットがデータ信号の代わりにクロック信号を遅延させることによって達成されるという点で図1Aの実施形態とは異なる。
図1Bの実施形態では、機能FF32Aおよび保護FF32Bの両方が、遅延されていないデータ信号D_in(組み合わせ論理24の出力の1つ)をサンプリングする。遅延素子36は、クロック信号CKを遅延させるように構成される。機能FF 32Aは、遅延されていないクロック信号でクロックされ、一方、保護FF 32Bは、遅延クロック信号(遅延素子36の出力)でクロックされる。代替実施形態では、機能FF32Aは、遅延クロック信号でクロックされてもよく、その場合、保護FF32Bは、遅延されていないクロック信号でクロックされる。
いくつかの実施形態では、遅延クロックは、図1および図2の構造などの保護されたFF構造のグループに対して一度生成される。言い換えれば、単一の遅延素子36は、複数の保護されたFFに役立つことができる。
場合によっては、(回路動作が正しくても)XOR44の出力へのタイミング伝搬の違いにより、FF32Aの信号QとFF32Bの信号Qの遷移時間の前後で、アラート信号が瞬間的にアサートすることがあります。 したがって、いくつかの実施形態では、アラート信号は、そのようなグリッチをフィルタリングして誤ったアラートを防止するために追加のFFでサンプリングされてもよい。
図2Aは、本発明の別の実施形態による、データサンプリングの完全性を検証するためのFF回路48を概略的に示すブロック図である。FF回路48は、上記の図1AのFF回路28の代わりに、例えば、電子デバイス20において使用することができる。この実施形態、および以下の図2Bの実施形態は、対応する保護状態サンプリングコンポーネントを実装するために、機能状態サンプリングコンポーネント全体を複製することは必須ではないことを示している。
図2Aの例では、機能的状態サンプリングコンポーネントは、2つのラッチ、すなわち第2のラッチL2を駆動する第1ラッチL1を含むFFを含む。ラッチL1は、データ信号D(組み合わせロジック24の出力の1つ)をサンプリングする。ラッチL2は、ラッチL1の出力をサンプリングし、回路48のサンプリングされた出力Qを出力する。ラッチL1のイネーブル(「E」)入力は、クロック信号の反転バージョンによって駆動される。ラッチL2のイネーブル入力は、クロック信号の2回反転されたバージョンによって駆動される。
本実施例では、保護状態サンプリングコンポーネントは、L11で示されるラッチを含む。ラッチL11は、ラッチL1と同じ(反転)クロック信号によって有効化され、データ信号Dの遅延レプリカをサンプリングする。データ信号の遅延されたレプリカは、遅延素子36によって生成される。XORゲート44は、ラッチL1およびL11のサンプリングされた出力をXORする。XORゲート44の出力はアラート信号として使用される。
図2Aの例では、XORゲート44は、機能状態サンプリングコンポーネントと保護状態サンプリングコンポーネントのサンプリングされた出力間の不一致を検出する保護ロジックとして機能する。
図2Bは、本発明の別の実施形態による、データサンプリングの完全性を検証するためのFF回路56を概略的に示すブロック図である。FF回路56は、上記の図1AのFF回路28の代わりに、例えば、電子デバイス20において使用することができる。本実施形態は、時間オフセットがデータ信号の代わりにクロック信号を遅延させることによって達成されるという点で図2Aの実施形態とは異なる。
図2Bの実施形態では、ラッチL1およびL11の両方が、遅延されていないデータ信号D(組み合わせ論理24の出力の1つ)をサンプリングする。遅延素子36は、(反転された)クロック信号を遅延させるように構成される。ラッチL1は、遅延されていない(反転された)クロック信号によって有効化されるが、ラッチL11は、遅延された(反転された)クロック信号(遅延素子36の出力)によって有効化される。代替の実施形態では、ラッチL1は、遅延(反転)クロック信号によって有効化されるが、ラッチL11は、非遅延(反転)クロック信号によって有効にされる。
図1および図2の実施形態では、 図2Aおよび図2Bに示されるように、ラッチL11は、CLKがHighの場合にのみその出力を安定に保ち、誤ったアラート検出をフィルタリングするために、例えば、CLKの立ち下がりエッジによってアラートをサンプリングすることができる。複数のアラート信号をORゲートなどで統合し、アラート信号のグループに1つのサンプリング素子を使用できる。
図1A、図1B、図2A、および図2Bに示す電子機器および回路の構成は、純粋に概念を明確にするために描かれている構成例である。代替の実施形態では、他の任意の適切な構成を使用することができる。
例えば、上述の実施形態では、機能状態サンプリングコンポーネントおよび対応する保護状態サンプリングコンポーネントは、同じしきい値電圧でデータ信号をサンプリングする。代替の実施形態では、機能状態サンプリングコンポーネントは、対応する保護状態サンプリングコンポーネントよりも低い閾値電圧を有する。
いくつかの実施形態では、図1A、図1B、図2A、および図2Bに記載された実施形態のいずれかは、通常のFFセルの代わりに、シングルライブラリセル(single library cell)を使用できる。他の実施形態では、これらの回路は、(図面に示されているように)個別のデバイスとして使用できる。
機能FFと保護FFによってサンプリングされたデータの間に相対遅延を挿入することを含む開示された技術のいずれにおいても、遅延は、保護FFによってサンプリングされたデータ信号(この場合、機能FFは遅延されていないデータ信号をサンプリングする)、または、機能FFによってサンプリングされたデータ信号(この場合、保護FFは遅延されていないデータ信号をサンプリングする)に適用される。
図3Aおよび図3Bは、本発明の実施形態による、組み合わせ論理ネットから取得された信号の信号不安定性を検出することによってデータサンプリングの完全性を検証する保護論理回路を含む電子デバイスを概略的に示すブロック図である。
図3Aの回路例は、組み合わせ論理回路からの複数の選択された信号を統合する。図3Bの保護論理回路は、信号の不安定性が、組み合わせ論理回路の設計に従って信号が安定であると予想されるクロックサイクルの所定の部分内で発生するかどうかをチェックする。この文脈において、「信号の不安定性」および「信号の変化」という用語は、ある論理状態から別の論理状態への遷移、すなわち「Low」から「High」またはその逆への遷移を指す。
図3Aに示される構成では、FF62は、組み合わせ論理24の出力をサンプリングする。各FF62は、クロックサイクルごとに組み合わせロジック24のそれぞれの出力をサンプリングし、サンプリングされた各FF62の出力は、次のクロックサイクルで組み合わせロジック24のそれぞれの入力として使用される。各FF62は、適切なクロック生成回路によって生成され、クロックツリーロジック40によって提供される、CKで示されるクロック信号によってクロックされる。典型的な回路にも入力と出力がありますが、簡略化するために図面から省略している。
さらに、保護論理は、統合論理「XOR」出力を生成するように、組み合わせ論理24からのいくつかの信号間で論理XORを実行するXORゲート60を備える。デバイスはさらに、クロックツリーロジック40から「パルス」と示される制御信号を出力する。「パルス」信号は、クロック信号から導出され、「XOR」出力信号(XORゲート60の出力)がFF62によるサンプリングに対して安定であると予想されるクロックサイクルの部分を定義する。この信号は、図3Bおよび3Cの回路で使用して、禁止時間ウィンドウ中にXOR信号に変化が発生したかどうかを検出できる。クロックサイクルの一部は、例えば、機能状態サンプリングコンポーネントのサンプリング時間に関連して、またはクロック信号の周期性を有する他の任意の適切な基準時間に関連して定義され得る。
図3Bの回路は、図3Aの回路から統合されたXOR信号および「パルス」信号を受信する。遅延要素64は、DLY1で示される遅延によって統合されたXOR信号を遅延させる。XORゲート68は、統合されたXOR信号の遅延されたレプリカおよび遅延されていないレプリカをXORする。ANDゲート76は、XORゲート68の出力と「パルス」信号との間の論理ANDを生成する。ANDゲート76の出力は、ラッチ72(または他の適切な保護状態サンプリング構成要素)の「SET」データ入力を設定する。NOTゲート80は、「パルス」信号を反転し、否定された「パルス」信号でラッチ72の「リセット」入力を駆動する。ラッチ72の出力は警報信号として機能する。
この構成では、アラート信号は、(i)組み合わせロジック24の出力の1つまたは複数(または、以下の図4のような他の検出された信号)で変更が検出され、及び(ii)データ信号(組み合わせロジック24の出力)が安定している必要がある時間間隔中に発生した場合にのみHighになる。
図3Cは、本発明の実施形態による、図3Bの保護論理回路の代替の実装を概略的に示すブロック図である。上記の図3Bでは、ラッチ72は、クロックサイクルごとに定期的にリセットされ、すなわち、アラート信号がクリアされ、グリッチ検出プロセスがサイクルごとに自動的に繰り返される。図3Cでは、グリッチが検出されると、アラート信号は外部の「RESET」信号がアサートされるまでHighのままとなる。
図3A〜図3Cの構成は、純粋に例として示されている。代替の実施形態では、任意の他の適切な統合スキームを使用することができる。
図4は、本発明の実施形態による、クリティカルタイミングパスから外れている複数の組み合わせ論理ネットを使用してデータサンプリングの完全性を検証するための回路を備える電子デバイス81を概略的に示すブロック図である。組み合わせ論理24は、いくつかの(楕円として描かれている)部分に分解されて示されている。組み合わせロジック24を介したクリティカルタイミングパスは、破線84で示されている。
この例では、N1、N2、およびN3で示される3つのネットを選択して保護する。保護論理の一部と見なされるXORゲート82は、ネットN1、N2、N3から取得した信号のXORを実行する。XORゲート82の出力は、上記の図3Bまたは図3C、または以下の図5〜図7の回路などの保護回路に入力されるXOR信号として機能する。XORゲート82の役割は、上記の図3AのXORゲート60の役割と同様である。
様々な実施形態では、デバイス81の任意の適切なネットを保護のために選択することができる。特に、クリティカルタイミングパス84上にないネットを選択することは有利である。この選択により、保護スキームによるセットアップ時間および/またはホールド時間のマージンの減少は許容できる。デバイス81の全体的な性能(例えば、達成可能な最大クロックレート)は、保護スキームによって低下することはない。
図3A〜図3Cおよび図4に示される電子デバイスおよび回路の構成は、概念を明確にするために純粋に示される構成例である。代替の実施形態では、他の任意の適切な構成を使用することができる。
例えば、上記の例示的な回路は、組み合わせ論理回路24内の複数のネットから信号を収集するが、開示された技術はまた、単一のネットに適用され得る。後者の場合、XORゲート60は省略できる。
様々な実施形態では、上述の様々な回路によって生成された「アラート」信号は、グリッチがサンプリングされたことを検出すると、任意の適切な応答アクションを開始または実行するために使用され得る。たとえば、電子デバイス20は、ホストまたは人間のユーザに警告を発し、デバイス回路または機能の一部または全部をシャットダウンするか、または機密データを消去することができる。
図5および6は、本発明の実施形態による、クロックゲーティングを使用してデータサンプリングの完全性を検証するための保護論理回路を概略的に示すブロック図である。図5および6の回路は、組み合わせ論理24の選択されたネットにおける、安定していると予想されるクロックサイクルの一部の間に発生する信号の不安定性(例えば、グリッチ)を検出するという点で、上記の図3Bおよび3Cの回路に類似している。ただし、図3Bおよび図3Cの回路とは異なり、図5および図6の回路は、FFのデータ入力ではなく、FFのクロック入力をゲーティングすることによってアラートをトリガーする。
ここで図5を参照する。図5の回路は、選択された出力および/または組み合わせ論理24の内部ネットから取られた2つ以上の信号間で論理XORを実行して、統合「XOR」出力を生成するXORゲート90を備える。本例は、「1」、「2」、および「3」と表される3つの信号を示すが、開示される技術は、他の任意の適切な数の信号とともに使用され得る。さらに下の図7は、多数のネットから取得された多数の信号を処理するための追加のスキームを示している。
遅延要素64は、DLY1で示される遅延によってXOR信号を遅延させる。XORゲート68は、XOR信号の遅延および非遅延レプリカをXORし、インバータ(NOTゲート)94は、XORゲート68の出力を反転する。この時点までの回路は、「信号変化検出器」と見なすことができます。選択したネット(「1」、「2」、「3」)のいずれかで信号変化(たとえば、アタックによるグリッチ)が発生した場合 )、NOTゲート94は長さがDLY1のパルスを出力する。
本実施態様では、検出された信号変化は、クロック信号CLKがLow(「0」)の間にそれが発生した場合にのみアラートをトリガーするべきである。この例では、「Low」から「High」へのクロック遷移(クロックの立ち上がり)でサンプリングが実行されると想定しており、信号は、通常の動作で、クロックが「Low」ときに安定していると期待されるように選択する必要がある。
関心のある信号変化のみを検出するために、ORゲート98は、インバータ94の出力とクロック信号CLK(適切なクロック生成回路によって生成される)との間の論理ORを出力する。ORゲート98の出力における信号は、ここでは修正されたクロック信号と呼ばれる。この変更されたクロック信号は、保護FF102のクロッキングに使用される。FF102のデータ入力(D)は常に「High」に設定される。FF102は通常、リセット時にRSTラインを使用して「0」に初期化される。
FF 102の出力(Q)(「TOGGLE」と示される)は、以下のように攻撃を検出するために使用される:ORゲート98の出力(したがって、FF 102のクロックCK)は、クロック信号CLKを含む。さらに、クロック信号CLKが「Low」のときに、選択したネット(「1」、「2」、または「3」)のいずれかで信号の変化(たとえば、アタックによるグリッチ)が発生した場合、長さがDLY1の予備パルスは、ORゲート98の出力に(したがって、FF102のクロックCKに)現れる。実際、図5の例では、通常の動作条件下で、ORゲート98の出力は常に「High」のままで、クロック遷移は予期されない。したがって、任意のクロックの立ち上がりエッジが攻撃を示す可能性がある。
通常の状態(つまり、CLKが「Low」のときにネット「1」、「2」、「3」の信号が変化しない場合)では、FF 102のTOGGLE出力は常に「Low」である。CLKが「LOW」のときにネット「1」、「2」、「3」の1つまたは複数で信号の変化が発生すると、FF102のTOGGLE出力が「High」に遷移する。したがって、TOGGLEは、疑わしい攻撃を示すアラート信号として使用できる。
いくつかの実施形態では、上記の回路は複数回複製され、各回路は組み合わせ論理24の異なるネットのセットを処理する。ORゲート104は、複数の回路のTOGGLE出力のORをとる。ORゲート104の出力はアラート信号として使用される。
ここで図6を参照する。図6の回路は、FF102のクロックCKがゲートされる方法、すなわち、XORゲート90とORゲート98との間の回路の部分において、図5の回路と同様である。図5の回路とは異なり、図6では、FF102の出力(Q)は、インバータ(NOTゲート)110を介してFF102のデータ入力(D)にフィードバックされる。図5のように、通常の状態(つまり、CLKが「Low」のときにネット「1」、「2」、「3」の信号が変化しない場合)では、FF 102のTOGGLE出力は常に「Low」です。CLKが「Low」のときにネット「1」、「2」、「3」の1つまたは複数で信号の変化が発生すると、FF102のTOGGLE出力が「High」に遷移する。したがって、トグルは、疑わしい攻撃を示すアラート信号として使用できる。
図6の代替構成では、インバータ94を省略できる。この代替構成では、FF102のTOGGLE出力は、FF 102のCKに適用されるすべてのクロックパルスでTOGGLEする(極性を「高」と「低」の間で反転する)。
通常の状態(つまり、CLKが「Low」のときにネット「1」、「2」、「3」の信号が変化しない場合)では、FF102のTOGGLE出力は、クロック信号CLKのすべてのサイクルでトグルする。さらに、FFのTOGGLE出力は、CLKが「LOW」のときにネット「1」、「2」、「3」の1つまたは複数で信号の変化が発生したときにもトグルする(XOR68の出力に現れ、CKに伝播する余分なパルスのため)。TOGGLE信号の通常の定期的なトグルパターンのこの変更を使用して、攻撃を検出できる。
図6のスキームでも(インバータ110が省略された図6の代替構成を含む)、上述の回路は複数回複製され、各回路は組み合わせ論理24の異なるネットのセットを処理する。XORゲート106は、複数の回路のトグル出力をXORすることができる。次に、XORゲート106の出力を警報信号として使用することができる。
図7は、本発明の実施形態による、クロックゲーティングを使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。図7の回路は、複数のクロックゲート収集ブロック114を含む。各ブロック114は、上記の図5または図6の回路のクロックゲーティング部分と構造が類似している。(XORゲート90とORゲート98の間の回路部分であるが、FF102はない)。
ANDゲート118は、複数のブロック114の出力の論理ANDを出力し、ANDゲート118の出力は、単一のFF102のCK入力をクロックするために使用される。図7の統合スキームは、FFの数を削減するため、ダイ面積の効率的な利用に有益である。
例として、図7の回路は、図6のFFスキームを使用する(FF102の出力Qは、インバータ110を介して入力Dにフィードバックされる)。しかしながら、代替として、図5のスキーム(FF 102の入力Dが一定に保持される)も使用することができる。インバータ110が省略された図6の代替構成を使用する場合、ANDゲート118はORゲートで置き換えられるべきである。
図5〜図7に示されている電子デバイスと回路の構成は、概念を明確にするために純粋に描かれている構成の例である。代替の実施形態では、他の任意の適切な構成を使用することができる。
たとえば、上記のように、図5〜図7の例は、「Low」から「High」(クロックの立ち上がり)へのクロック遷移をサンプリングする回路に適している。つまり、クロックが「低」のときに信号が安定していることが期待される 。ただし、この選択は純粋に例として行われる。開示された回路は、「High」から「Low」(クロックフォール)へのクロック遷移をサンプリングする回路での動作に直接的な方法で適合させることができ、クロックが「ハイ」のときに信号が安定していることが期待される。
別の例として、図5および6の例示的な回路は、組み合わせ論理回路24内の複数のネットから信号を収集するが、開示された技術はまた、単一のネットに適用され得る。後者の場合、XORゲート90は省略できる。
様々な実施形態において、開示された電子デバイスおよび回路のいずれかは、1つまたは複数のディスクリートコンポーネント、1つまたは複数の特定用途向け集積回路(ASIC)、1つまたは複数のフィールドプログラマブルゲートアレイ(FPGA)の使用など、任意の適切なハードウェアを使用して実装されてもよい。
上述の実施例は、一例として引用されたものであり、本発明は、特に上で示され説明されたものに限定されないことである。むしろ、本発明の範囲は、上述した様々な特徴の組み合わせ及び部分的な組み合わせ、ならびに前述の説明を読むことによって当業者に想到し得る変形および修正の両方を含む。本特許出願において参照により援用される文書は、本明細書において明示的または暗示的になされた定義と矛盾するとき、これらの組み込まれた文書で定義される用語を除いて、本明細書の定義を考慮する必要がある。
20、81…電子デバイス
24…組み合わせ回路
28、48、56…FF回路
32A…機能FF
32B、102…保護FF
36、64…遅延素子
40…クロックツリーロジック
44、60、68、82、90、106…XORゲート
62…FF(フリップフロップ)
72…ラッチ
76、118…ANDゲート
80…NOTゲート
84…クリティカルタイミングパス
94、110…インバータ(NOTゲート)
98、104…ORゲート
114…クロックゲート収集ブロック
D…データ信号
L1…第1ラッチ
L11…ラッチ
L2…第2ラッチ
Q…出力

Claims (16)

  1. 1つ以上の出力を含む組み合わせ論理回路と、
    前記組み合わせ論理回路の前記1つ以上の出力をサンプリングする1つ以上の機能状態サンプリングコンポーネントと、
    前記機能状態サンプリングコンポーネントにそれぞれ関連付けられ、対応する前記機能状態サンプリングコンポーネントと共に前記組み合わせ論理回路の同じ出力をサンプリングし、前記機能状態サンプリングコンポーネントとは別に所定時間オフセットを有する1つ以上の保護状態サンプリングコンポーネントと、
    前記機能状態サンプリングコンポーネントによってサンプリングされた前記出力と、前記保護状態サンプリングコンポーネントによってサンプリングされたすべての前記同じ出力との間の不一致を検出し、前記不一致に応じて応答アクションを開始する保護ロジックと、
    を備えることを特徴とする電子デバイス。
  2. 前記組み合わせ論理回路の前記出力を遅延して遅延出力を生成する遅延素子をさらに含み、
    前記機能状態サンプリングコンポーネントは、前記出力および前記遅延出力の一方をサンプリングし、前記保護状態サンプリングコンポーネントは、前記出力と前記遅延出力のもう一方をサンプリングする請求項1に記載の電子デバイス。
  3. クロック信号を遅延させて遅延クロック信号を生成する遅延素子をさらに含み、
    前記機能状態サンプリングコンポーネントは、前記クロック信号と前記遅延クロック信号の一方によってクロックされるように構成され、対応する前記保護状態サンプリングコンポーネントは、前記クロック信号と前記遅延クロック信号のもう一方によってクロックされる請求項1に記載の電子デバイス。
  4. 前記機能状態サンプリングコンポーネント及び前記対応する保護状態サンプリングコンポーネントは、フリップフロップを含む請求項1に記載の電子デバイス。
  5. 前記機能状態サンプリングコンポーネントは、第2ラッチを駆動する第1ラッチを含み、
    前記対応する保護状態サンプリングコンポーネントは、前記第1ラッチに関連付けられた第3ラッチを含む請求項1に記載の電子デバイス。
  6. 前記保護ロジックは、2つ以上の前記機能状態サンプリングコンポーネントと2つ以上の前記保護状態サンプリングコンポーネントとの間で検出された複数の不一致を統合し、統合された前記不一致に応答して応答アクションを開始する請求項1に記載の電子デバイス。
  7. 前記保護ロジックは、検出された前記不一致がクロックサイクルの所定期間に発生したときにのみ応答アクションを開始する請求項1に記載の電子デバイス。
  8. 前記機能状態サンプリングコンポーネントは、第1閾値電圧で前記組み合わせ論理回路の出力をサンプリングし、前記対応する保護状態サンプリングコンポーネントは、前記第1閾値電圧よりも高い第2閾値電圧で前記組み合わせ論理回路の同じ出力をサンプリングする請求項1に記載の電子デバイス。
  9. 電子デバイスを保護するための方法であって、
    1つまたは複数の機能的状態サンプリングコンポーネントを使用して、組み合わせ論理回路の1つまたは複数の出力をサンプリングすることと
    前記1つまたは複数の機能状態サンプリングコンポーネントに関連付けられた1つまたは複数の保護状態サンプリングコンポーネントを使用して、前記1つまたは複数の出力をサンプリングし、各前記保護状態サンプリングコンポーネント及び対応する機能状態サンプリングコンポーネントは、前記組み合わせ論理回路の同じ出力をサンプリングし、前記機能状態サンプリングコンポーネントとは別に所定時間オフセットを有することと、
    前記機能状態サンプリングコンポーネントによってサンプリングされた前記出力と、前記保護状態サンプリングコンポーネントによってサンプリングされたすべての前記同じ出力との間の不一致を検出し、前記不一致に応じて応答アクションを開始することと、を含む方法。
  10. 前記1つ以上の出力をサンプリングすることは、
    前記組み合わせ論理回路の出力を遅延させて遅延出力を生成することと、
    前記機能状態サンプリングコンポーネントによって、前記出力と前記遅延出力の一方をサンプリングすることと、
    前記対応する保護状態サンプリングコンポーネントによって、前記出力と前記遅延出力のもう一方をサンプリングすることと、
    を含む請求項9に記載の方法。
  11. 前記1つ以上の出力をサンプリングすることは、
    クロック信号を遅延させて遅延クロック信号を生成することと、
    前記クロック信号と前記遅延クロック信号の一方によって前記機能状態サンプリングコンポーネントをクロッキングすることと、
    前記クロック信号と前記遅延クロック信号のもう一方によって前記対応する保護状態サンプリングコンポーネントをクロッキングすることと、を含む請求項9に記載の方法。
  12. 前記機能状態サンプリングコンポーネント及び前記対応する保護状態サンプリングコンポーネントは、フリップフロップを含む請求項9に記載の方法。
  13. 前記機能状態サンプリングコンポーネントは、第2ラッチを駆動する第1ラッチを含み、
    前記対応する保護状態サンプリングコンポーネントは、前記第1ラッチに関連付けられた第3ラッチを含む請求項9に記載の方法。
  14. 保護ロジックは、2つ以上の前記機能状態サンプリングコンポーネントと2つ以上の前記保護状態サンプリングコンポーネントとの間で検出された複数の不一致を統合し、統合された前記不一致に応答して応答アクションを開始する請求項9に記載の方法。
  15. 保護ロジックは、検出された前記不一致がクロックサイクルの所定期間に発生したときにのみ応答アクションを開始する請求項9に記載の方法。
  16. 前記機能状態サンプリングコンポーネントは、第1閾値電圧で前記組み合わせ論理回路の出力をサンプリングし、前記対応する保護状態サンプリングコンポーネントは、前記第1閾値電圧よりも高い第2閾値電圧で前記組み合わせ論理回路の同じ出力をサンプリングする請求項9に記載の方法。
JP2020107357A 2019-09-16 2020-06-22 相対遅延を伴うフリップフロップを用いてデータサンプリング完全性チェックを行う電子デバイスおよびその方法 Active JP6968234B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/571,242 2019-09-16
US16/571,242 US11321457B2 (en) 2019-09-16 2019-09-16 Data-sampling integrity check by sampling using flip-flops with relative delay

Publications (2)

Publication Number Publication Date
JP2021047845A JP2021047845A (ja) 2021-03-25
JP6968234B2 true JP6968234B2 (ja) 2021-11-17

Family

ID=74869641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020107357A Active JP6968234B2 (ja) 2019-09-16 2020-06-22 相対遅延を伴うフリップフロップを用いてデータサンプリング完全性チェックを行う電子デバイスおよびその方法

Country Status (4)

Country Link
US (1) US11321457B2 (ja)
JP (1) JP6968234B2 (ja)
CN (1) CN112507400A (ja)
TW (1) TWI760694B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11409323B2 (en) * 2019-12-20 2022-08-09 Arm Limited Delay monitoring scheme for critical path timing margin
US11567855B1 (en) * 2020-09-09 2023-01-31 Two Six Labs, LLC Automated fault injection testing
TWI783309B (zh) * 2020-11-25 2022-11-11 瑞昱半導體股份有限公司 電路設計方法和相關電路
GB2603549B (en) * 2021-05-21 2023-03-15 Nordic Semiconductor Asa Physical security protection for integrated circuits

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS592057B2 (ja) 1979-02-07 1984-01-17 株式会社日立製作所 エラ−訂正・検出方式
US5493242A (en) 1993-06-30 1996-02-20 Vlsi Technology, Inc. Status register with asynchronous read and reset and method for providing same
DE19529434B4 (de) 1995-08-10 2009-09-17 Continental Teves Ag & Co. Ohg Microprozessorsystem für sicherheitskritische Regelungen
US7121639B2 (en) * 2002-12-02 2006-10-17 Silverbrook Research Pty Ltd Data rate equalisation to account for relatively different printhead widths
US7428694B2 (en) 2004-03-02 2008-09-23 Stmicroelectronics S.A. Device for protection against error injection into a synchronous flip-flop of an elementary logic module
FR2868577A1 (fr) * 2004-03-31 2005-10-07 St Microelectronics Sa Dispositif de detection d'attaque d'une puce de circuit integre
US7966509B2 (en) * 2006-05-30 2011-06-21 Nvidia Corporation System and method for performing low power dynamic trimming
DE602008003051D1 (de) 2007-05-18 2010-12-02 St Microelectronics Rousset Erkennung einer Zustandsstörung eines bistabilen Kippschalters eines elektronischen Schaltkreises
FR2935059B1 (fr) * 2008-08-12 2012-05-11 Groupe Des Ecoles De Telecommunications Get Ecole Nationale Superieure Des Telecommunications Enst Procede de detection d'anomalies dans un circuit de cryptographie protege par logique differentielle et circuit mettant en oeuvre un tel procede
FR2946787A1 (fr) 2009-06-16 2010-12-17 St Microelectronics Rousset Procede de detection d'une attaque par injection de faute d'un dispositif de memoire, et dispositif de memoire correspondant
US7977965B1 (en) 2010-03-12 2011-07-12 International Business Machines Corporation Soft error detection for latches
JP2014038294A (ja) * 2012-08-20 2014-02-27 Waseda Univ 故障攻撃検出回路および暗号処理装置
US9229051B2 (en) * 2012-11-15 2016-01-05 Freescale Semiconductor, Inc. Integrated circuit with degradation monitoring
US9329229B2 (en) * 2012-11-15 2016-05-03 Freescale Semiconductors, Inc. Integrated circuit with degradation monitoring
CN105379174B (zh) * 2013-07-16 2018-09-28 三菱电机株式会社 半导体装置
US9122891B2 (en) 2013-08-12 2015-09-01 Microsoft Technology Licensing, Llc Functional timing sensors
US9523736B2 (en) 2014-06-19 2016-12-20 Nuvoton Technology Corporation Detection of fault injection attacks using high-fanout networks
US10013581B2 (en) 2014-10-07 2018-07-03 Nuvoton Technology Corporation Detection of fault injection attacks
US10452493B2 (en) * 2016-05-24 2019-10-22 Virginia Tech Intellectual Properties, Inc. Microprocessor fault detection and response system
US10289840B2 (en) 2017-06-02 2019-05-14 Silicon Laboratories Inc. Integrated circuit with tamper protection and method therefor
EP3506548A1 (en) * 2017-12-27 2019-07-03 Secure-IC SAS Quantitative digital sensor
TWI663837B (zh) * 2018-03-13 2019-06-21 群聯電子股份有限公司 鎖相迴路電路校正方法、記憶體儲存裝置及連接介面電路
US10305479B1 (en) * 2018-06-12 2019-05-28 Nxp B.V. Fault attack protection against synchronized fault injections
US10649487B2 (en) 2018-07-05 2020-05-12 Microchip Technology Incorporated Fail-safe clock monitor with fault injection
US11263322B2 (en) * 2018-08-27 2022-03-01 Infineon Technologies Ag Secure x-modular redundancy
US11355457B2 (en) * 2019-06-19 2022-06-07 Nxp B.V. Fully digital glitch detection mechanism with process and temperature compensation

Also Published As

Publication number Publication date
US20210081528A1 (en) 2021-03-18
TWI760694B (zh) 2022-04-11
TW202113641A (zh) 2021-04-01
JP2021047845A (ja) 2021-03-25
US11321457B2 (en) 2022-05-03
CN112507400A (zh) 2021-03-16

Similar Documents

Publication Publication Date Title
JP6968234B2 (ja) 相対遅延を伴うフリップフロップを用いてデータサンプリング完全性チェックを行う電子デバイスおよびその方法
US9523736B2 (en) Detection of fault injection attacks using high-fanout networks
US11244046B2 (en) Data-sampling integrity check using gated clock
US10013581B2 (en) Detection of fault injection attacks
US11355457B2 (en) Fully digital glitch detection mechanism with process and temperature compensation
US7590880B1 (en) Circuitry and method for detecting and protecting against over-clocking attacks
EP2002271B1 (en) Apparatus for detecting clock failure and method therefor
US8466727B2 (en) Protection against fault injections of an electronic circuit with flip-flops
JP2002535793A (ja) 集積回路上の機密モジュールの統合
US20160028394A1 (en) Fault protection for high-fanout signal distribution circuitry
US20060020864A1 (en) Method and system for blocking data in scan registers from being shifted out of a device
Bastos et al. How to sample results of concurrent error detection schemes in transient fault scenarios?
Bastos et al. A new bulk built-in current sensor-based strategy for dealing with long-duration transient faults in deep-submicron technologies
Viera et al. Method for evaluation of transient-fault detection techniques
US7574314B2 (en) Spurious signal detection
Wang et al. A low-cost fault injection attack resilient fsm design
TWI550291B (zh) 積體電路及其錯誤檢測方法
US11275401B2 (en) Tamper monitoring circuitry
Deshpande Hardware fault attack detection methods for secure embedded systems
US8319518B2 (en) Detecting transitions in circuits during periodic detection windows
Manich et al. A highly time sensitive XOR gate for probe attempt detectors
JP2008289086A (ja) 半導体装置
Vasile et al. Improved tamper detection circuit based on linear-feedback shift register
Burman et al. Effect of malicious hardware logic on circuit reliability
KR20040084510A (ko) 코드매칭법을 이용한 모드진입회로 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210915

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211019

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211026

R150 Certificate of patent or registration of utility model

Ref document number: 6968234

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150