JP2024513159A - チップ全体の安全な通信 - Google Patents
チップ全体の安全な通信 Download PDFInfo
- Publication number
- JP2024513159A JP2024513159A JP2023557177A JP2023557177A JP2024513159A JP 2024513159 A JP2024513159 A JP 2024513159A JP 2023557177 A JP2023557177 A JP 2023557177A JP 2023557177 A JP2023557177 A JP 2023557177A JP 2024513159 A JP2024513159 A JP 2024513159A
- Authority
- JP
- Japan
- Prior art keywords
- data
- integrity
- host
- destination
- bits
- 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.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 98
- 230000004044 response Effects 0.000 claims abstract description 173
- 230000015654 memory Effects 0.000 claims description 165
- 238000000034 method Methods 0.000 claims description 106
- 239000004744 fabric Substances 0.000 claims description 45
- 238000012795 verification Methods 0.000 claims description 32
- 230000002093 peripheral effect Effects 0.000 claims description 28
- 238000012937 correction Methods 0.000 claims description 18
- 238000001514 detection method Methods 0.000 claims description 11
- 230000008878 coupling Effects 0.000 claims description 8
- 238000010168 coupling process Methods 0.000 claims description 8
- 238000005859 coupling reaction Methods 0.000 claims description 8
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 238000002347 injection Methods 0.000 abstract description 16
- 239000007924 injection Substances 0.000 abstract description 16
- 230000006870 function Effects 0.000 description 87
- 238000012545 processing Methods 0.000 description 14
- 238000013500 data storage Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000006399 behavior Effects 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- AZBAQHIVVLQMFX-UHFFFAOYSA-N 4-(2,4-dimethylphenyl)-5-methyl-1,3-thiazol-2-amine Chemical compound S1C(N)=NC(C=2C(=CC(C)=CC=2)C)=C1C AZBAQHIVVLQMFX-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
- Retry When Errors Occur (AREA)
- Electroluminescent Light Sources (AREA)
- Semiconductor Integrated Circuits (AREA)
- Adhesives Or Adhesive Processes (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本書は、チップ全体の安全な通信の態様を開示する。いくつかの態様において、システムのホストが、システムの相互接続にわたって宛先に発行されるコマンドペイロードのための整合性メタデータを生成する。整合性メタデータは、プレーンテキストデータビットなどのコマンドペイロードを形成するビットのそれぞれの値に基づいて生成され得る。宛先は、コマンドペイロードを消費する前に、整合性メタデータに基づいてコマンドペイロードの整合性を検証する。場合によっては、宛先は、コマンドペイロードのデータとともに整合性メタデータを記憶し、これが、要求されたときデータと一緒にホストに返され得る。そうすることによって、システムのホストおよび宛先は、整合性メタデータを使用して、チップ全体の安全な通信を実施することができ、伝送中またはシステムの内部の一時的な記憶位置の、コマンドペイロードまたは応答データに対するフォールト注入攻撃を防止し得る。
Description
背景
増加の一途をたどる社会のコンピュータ化と、機密のユーザ情報を記憶して、車両の運転、ユーザ認証の実行、デジタル通貨トランザクションの完結を含む、ユーザのための様々な操作を実行する、パーソナルコンピューティング機器に対する依存の増加との結果として、世界は、コンピューティングデバイスの機密情報に対する、損害の大きい様々な攻撃に対して脆弱になっている。
増加の一途をたどる社会のコンピュータ化と、機密のユーザ情報を記憶して、車両の運転、ユーザ認証の実行、デジタル通貨トランザクションの完結を含む、ユーザのための様々な操作を実行する、パーソナルコンピューティング機器に対する依存の増加との結果として、世界は、コンピューティングデバイスの機密情報に対する、損害の大きい様々な攻撃に対して脆弱になっている。
最近のフォールトベースの暗号解読方法は、フォールト注入攻撃を含む潜在的にセキュリティの脅威となる方法であるとわかった。フォールト注入攻撃は、ソフトウェア注入とは対照的に、攻撃者が、コンピュータシステムに、物理的にフォールトを注入することによって電子部品の挙動を意図的に変化させることを含む。結果として、フォールト注入攻撃は、多くの低レベルのシステムセキュリティ機能を回避すること、コンピュータシステムの挙動を変化させて悪意のある目的を達成すること、および/または機密情報を抜き出すことができる。フォールト注入攻撃は、電圧グリッチ、クロックグリッチ、レーザ注入、電磁気注入などを包含し得る。いくつかの事例では、これらの攻撃は、電子システムのセキュリティを破るかまたは弱めるために、様々な位置にフォールト注入を導入することができる。したがって、フォールト注入攻撃は、コンピュータシステムの内部で伝達されるコマンドまたはデータを変化させ得、場合によっては、システムの実行フローを変化させて、キー漏洩、権限昇格、またはコードの意図しない実行などの下流問題を引き起こすことができる。
概要
本書は、チップ全体の安全な通信のための装置および技術を説明する。いくつかの態様では、システムのホストが、システムの相互接続(たとえばファブリック、バス、チャネルなど)を通じて宛先に送出される、コマンドペイロードのための整合性メタデータを生成する。整合性メタデータは、プレーンテキストデータビットなどのコマンドペイロードを形成するビットのそれぞれの値に基づいて生成され得る。宛先は、コマンドペイロードを消費する前に、整合性メタデータに基づいてコマンドペイロードの整合性を検証する。場合によっては、宛先は、コマンドペイロードのデータとともに整合性メタデータを記憶し、これが、要求されたときデータと一緒にホストに返され得る。加えて、宛先がメモリであるなら、メモリに記憶されるときデータを保護するために、データは、記憶される前にスクランブルされ得る。宛先は、応答ペイロードを形成するとき、応答ペイロードのデータに関する整合性データを生成してもよい。ホストは、応答ペイロードを受け取るとき、返された整合性ビットまたは宛先が生成した整合性ビットに基づいて、応答ペイロードの整合性を検証することができる。そうすることによって、システムのホストおよび様々な宛先(たとえばメモリまたは周辺装置)は、整合性メタデータを使用して、チップ全体の安全な通信を実施することができ、伝送中またはシステムの内部の一時的な記憶位置の、コマンドペイロードまたは応答データに対するフォールト注入攻撃を防止し得る。
本書は、チップ全体の安全な通信のための装置および技術を説明する。いくつかの態様では、システムのホストが、システムの相互接続(たとえばファブリック、バス、チャネルなど)を通じて宛先に送出される、コマンドペイロードのための整合性メタデータを生成する。整合性メタデータは、プレーンテキストデータビットなどのコマンドペイロードを形成するビットのそれぞれの値に基づいて生成され得る。宛先は、コマンドペイロードを消費する前に、整合性メタデータに基づいてコマンドペイロードの整合性を検証する。場合によっては、宛先は、コマンドペイロードのデータとともに整合性メタデータを記憶し、これが、要求されたときデータと一緒にホストに返され得る。加えて、宛先がメモリであるなら、メモリに記憶されるときデータを保護するために、データは、記憶される前にスクランブルされ得る。宛先は、応答ペイロードを形成するとき、応答ペイロードのデータに関する整合性データを生成してもよい。ホストは、応答ペイロードを受け取るとき、返された整合性ビットまたは宛先が生成した整合性ビットに基づいて、応答ペイロードの整合性を検証することができる。そうすることによって、システムのホストおよび様々な宛先(たとえばメモリまたは周辺装置)は、整合性メタデータを使用して、チップ全体の安全な通信を実施することができ、伝送中またはシステムの内部の一時的な記憶位置の、コマンドペイロードまたは応答データに対するフォールト注入攻撃を防止し得る。
この概要は、チップ全体の安全な通信の実施に関する簡単な概念を導入するために提供されたものであり、以下で、発明を実施するための形態においてさらに説明され、図に示される。この概要は、特許請求される主題の基本的な機能を識別することや、特許請求される主題の範囲を決定するように使用されることを意図するものではない。
チップ全体の安全な通信の1つまたは複数の態様の詳細が、本開示の全体にわたって図を参照しながら説明される。説明および図において、別々の事例における同一の参照番号の使用は、同一または類似の要素を指示する。
詳細な説明
コンピュータシステムは、大抵の場合、欠陥、攻撃、および場合によっては危険な他のイベントに対する保護手段を用意するために、セキュリティ回路およびソフトウェアを伴う集積回路を含む。今日のコンピュータ環境では、悪意のある行為者が、多数の攻撃経路を使用して無数のレベルでコンピューティングデバイスに攻撃することができる。たとえば、フォールト注入攻撃は、これらのセキュリティパラダイムの多くがもたらす保護を弱める。フォールト注入攻撃は、システムセキュリティ機能をバイパスし、システム挙動を変化させて悪意を遂行し、かつ/または機密情報を暴くことができる。攻撃者は、間接的または直接的にグリッチを使用する(たとえば、システムに一時的フォールトを突然注入する)フォールト注入攻撃を使用して、電子部品(たとえば中央処理装置)のプログラムされた動作を変化させることができる。そのような攻撃は、時にはコンピューティングデバイスを「ブリック」し得るが、他の事例では、精密な標的型攻撃が、セキュリティを損なう脅威を導入し得る。たとえば、敵対者は、フォールト注入攻撃によってプログラムの制御フローの根底を覆すことでき、「return-to-libc」タイプ攻撃と称されるものなどの不正確な機能をもたらし得る。場合によっては、これらの攻撃は、コンピューティングデバイスが、機密データを漏洩するかまたは検証されていないコードを実行する原因となることがある。したがって、フォールト注入攻撃が、コンピュータシステムの内部で伝達されるコマンドまたはデータを変化させ得、場合によっては、システムの実行フローを変化させて、キー漏洩、権限昇格、またはコードの意図しない実行などの下流問題を引き起こすことができる。
コンピュータシステムは、大抵の場合、欠陥、攻撃、および場合によっては危険な他のイベントに対する保護手段を用意するために、セキュリティ回路およびソフトウェアを伴う集積回路を含む。今日のコンピュータ環境では、悪意のある行為者が、多数の攻撃経路を使用して無数のレベルでコンピューティングデバイスに攻撃することができる。たとえば、フォールト注入攻撃は、これらのセキュリティパラダイムの多くがもたらす保護を弱める。フォールト注入攻撃は、システムセキュリティ機能をバイパスし、システム挙動を変化させて悪意を遂行し、かつ/または機密情報を暴くことができる。攻撃者は、間接的または直接的にグリッチを使用する(たとえば、システムに一時的フォールトを突然注入する)フォールト注入攻撃を使用して、電子部品(たとえば中央処理装置)のプログラムされた動作を変化させることができる。そのような攻撃は、時にはコンピューティングデバイスを「ブリック」し得るが、他の事例では、精密な標的型攻撃が、セキュリティを損なう脅威を導入し得る。たとえば、敵対者は、フォールト注入攻撃によってプログラムの制御フローの根底を覆すことでき、「return-to-libc」タイプ攻撃と称されるものなどの不正確な機能をもたらし得る。場合によっては、これらの攻撃は、コンピューティングデバイスが、機密データを漏洩するかまたは検証されていないコードを実行する原因となることがある。したがって、フォールト注入攻撃が、コンピュータシステムの内部で伝達されるコマンドまたはデータを変化させ得、場合によっては、システムの実行フローを変化させて、キー漏洩、権限昇格、またはコードの意図しない実行などの下流問題を引き起こすことができる。
しかしながら、そのような攻撃に対処することを目指した以前の技術は、一般的には、攻撃者がシステムセキュリティを損なうのを防止するのが弱く、効果がない。場合によっては、システムのコンポーネントの間のデータ通信に、バス専用のセキュリティ方式としてデータパリティが使用される。このタイプのパリティベースの方式には、攻撃者が成功する可能性を50%許容してしまうこと、エンドツーエンドではなくバス専用であるため、攻撃者は、簡単に、システムのエンドポイントに対象を移すことができること、またスクランブルされたデータに対する攻撃は正確な結果をもたらさないであろうが、消費者はデータが間違っていることを知る由もなく、単に異なって見えるだけであること、などの多くの問題がある。したがって、前述の攻撃を防止するように意図された以前の技術は、大抵の場合システム侵入を防止することができないか、または、単に、データの保護が十分ではない脆弱なシステムエンドポイントに攻撃を移すだけである。
本開示は、以前のセキュリティ技術と対照的に、チップ全体の安全な通信の態様を説明するものである。態様において、システムのホストが、システムのファブリックにわたって宛先に発行されるコマンドペイロードのための整合性メタデータを生成する。整合性メタデータは、プレーンテキストデータビットなどのコマンドペイロードを形成するビットのそれぞれの値に基づいて生成され得る。宛先は、コマンドペイロードを消費する前に、整合性メタデータに基づいてコマンドペイロードの整合性を検証する。場合によっては、宛先は、コマンドペイロードのデータとともに整合性メタデータを記憶し、これが、要求されたときデータと一緒にホストに返され得る。加えて、宛先がメモリであるなら、メモリに記憶されるときデータを保護するために、データは、記憶される前にスクランブルされ得る。宛先は、応答ペイロードを形成するとき、応答ペイロードのデータに関する整合性データを生成してもよい。ホストは、応答ペイロードを受け取るとき、返された整合性ビットまたは宛先が生成した整合性ビットに基づいて、応答ペイロードの整合性を検証することができる。そうすることによって、システムのホストおよび様々な宛先(たとえばメモリまたは周辺装置)は、整合性メタデータを使用して、チップ全体の安全な通信を実施することができ、伝送中またはシステムの内部の一時的な記憶位置の、コマンドペイロードまたは応答データに対するフォールト注入攻撃を防止し得る。
説明された伝送整合性方式により、システムにおいて、様々な発信元と宛先との間で通信される、周辺装置やメモリに対するホストの要求、および周辺装置やメモリからのホストへの応答を含み得るデータの整合性の検査または検証が可能になり得る。一般に、伝送整合性またはチップ全体の安全な通信の説明された態様は、要求方向および/または応答方向におけるエンドツーエンドセキュリティを用いて、システムまたはチップの全体にわたって通信されるコマンドおよび/またはデータを保護するように意図されている。態様において、本開示を通じて説明されたように、コンポーネントのシステム全体にわたって一貫した整合性方式が採用される。たとえば、チップ全体の通信の安全な構成は、共通の通信方式(たとえば、ファブリックまたはバスを通じてコマンドおよび/またはデータを送るエンティティによって採用される伝送方式)として誤差補正コード(ECC)を使用することができる。この通信方式またはプロトコルは、データがシステムまたはチップのエンティティの間で搬送されるときに使用されるフォーマットを指し得る。周辺装置またはメモリに対するローカル通信に関して、安全なチップ全体のセキュリティの説明された態様から逸脱することなく、種々のフォーマットがさらに使用され得る。いくつかの実装形態では、NビットのデータからMビットのデータまでをとり、一方、それらのMビットが予期された値であることを検証するために(たとえばECC、巡回冗長検査(CRC)、リードソロモン符号などを使用して)検査するために、整合性方式が採用される。これは、50%までのエラーが検知および/または補正を逃れるのを許容してしまう、パリティに基づく以前の技術に対して有利であり得る。本開示の全体にわたって説明されるチップ全体の安全な通信の態様は、システムまたはチップの内部でデータを通信するための改善された整合性またはセキュリティを可能にするものである。
態様において、伝送整合性方式は、宛先とホストの機能的境界との間で、システムにおいてデータをエンドツーエンドで保護するように、順方向と逆方向とのどちらでも実施され得る。一般に、データにもコマンドにも整合性ビット(たとえばECC)が付随し、これらの整合性ビットは、ファブリックまたはバスにわたって伝送プロセスを対象として含むばかりでなく、宛先記憶機構およびホスト機能にも及び得る。したがって、ホストによって生成された整合性ビット(たとえば整合性メタデータ)が、ROMまたはSRAMなどのメモリへと、ずっと及ぶことができ、同じ整合性ビットが、後にデータの検査または検証ためにホストに返される。宛先デバイスは、整合性ビットのすべてを全面的に受け入れることができるとは限らないときには、頑健な変換プロセスを実施して、脆弱性が導入されないことを保証し得る。
本書は、コンピュータシステムの内部の安全なトランザクションおよびデータ記憶のための整合性メタデータおよび/またはメモリスクランブルを使用して、上記で説明された危険なイベントからコンピュータシステムを保護する、チップ全体の安全な通信のための装置および技術を説明する。いくつかの実装形態では、システムの、すべての実行フローの重要なメモリが、暗号化および復号化(たとえばスクランブル化)ならびに整合性ビットによって保護される。これは、あらゆる整合性論理の下流で、これらのメモリに対する攻撃は不可能であること、また、メモリのあらゆる読出しまたは書込みが、攻撃者による変更は不可能な特定のアドレスに結び付けられることを保証し得る。以下の議論は、動作環境、例示のシステムおよびコンポーネント、チップ全体の安全な通信の例示の実装形態、例示の方法、および動作環境のコンポーネントが具現され得るシステムオンチップ(SoC)を説明するものである。本開示の文脈では、動作環境は例としてのみ参照される。
例示の環境
図1は、チップ全体の安全な通信および関連する通信整合性方式の態様が実施され得る装置102を含む、例示の環境100を示す。装置102は、任意の適切なデバイスとして実施され得、そのうちいくつかが、スマートフォン102-1、タブレットコンピュータ102-2、ラップトップコンピュータ102-3、ゲームコンソール102-4、デスクトップコンピュータ102-5、サーバコンピュータ102-6、着用可能なコンピューティングデバイス102-7(たとえばスマートウォッチ)、およびブロードバンドルータ102-8(たとえばモバイルホットスポット)として示されている。図には示されていないが、装置102は、移動局(モバイルSTA)、移動通信デバイス、クライアントデバイス、ユーザ機器、携帯電話、娯楽装置、移動式ゲームコンソール、個人用メディアデバイス、メディア再生デバイス、健康管理デバイス、ドローン、カメラ、無線インターネット接続およびブラウジングが可能なインターネット家電、IoTデバイス、および/または他のタイプの電子デバイスとしても実施され得る。装置102は、表示の簡潔さまたは明瞭さのために図1から省略された他の機能を提供し得、またはコンポーネントもしくはインターフェースを含み得る。
図1は、チップ全体の安全な通信および関連する通信整合性方式の態様が実施され得る装置102を含む、例示の環境100を示す。装置102は、任意の適切なデバイスとして実施され得、そのうちいくつかが、スマートフォン102-1、タブレットコンピュータ102-2、ラップトップコンピュータ102-3、ゲームコンソール102-4、デスクトップコンピュータ102-5、サーバコンピュータ102-6、着用可能なコンピューティングデバイス102-7(たとえばスマートウォッチ)、およびブロードバンドルータ102-8(たとえばモバイルホットスポット)として示されている。図には示されていないが、装置102は、移動局(モバイルSTA)、移動通信デバイス、クライアントデバイス、ユーザ機器、携帯電話、娯楽装置、移動式ゲームコンソール、個人用メディアデバイス、メディア再生デバイス、健康管理デバイス、ドローン、カメラ、無線インターネット接続およびブラウジングが可能なインターネット家電、IoTデバイス、および/または他のタイプの電子デバイスとしても実施され得る。装置102は、表示の簡潔さまたは明瞭さのために図1から省略された他の機能を提供し得、またはコンポーネントもしくはインターフェースを含み得る。
装置102が含む集積回路104は、1つまたは複数のプロセッサ106と、メモリ媒体または記憶媒体を含み得るコンピュータ可読媒体(CRM 108)とを利用する。プロセッサ106は、汎用プロセッサ(たとえばマルチコア中央処理装置(CPU)またはアプリケーションプロセッサ(AP))、特定用途向け集積回路(ASIC)、グラフィック処理ユニット(GPU)、または装置102の他のコンポーネントを組み込んだシステムオンチップ(SoC)として実施され得る。チップ全体の安全な通信の態様において、プロセッサ106のうち1つまたは複数が、本開示の全体にわたって説明されるような整合性機能も含み得る。
CRM 108は、読出し専用メモリ(ROM)、プログラマブルROM(PROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、スタティックRAM(SRAM)、またはフラッシュメモリなどの任意の適切なタイプのメモリ媒体または記憶媒体を含み得る。この議論の文脈では、装置102のコンピュータ可読媒体108は、少なくとも1つのハードウェアベースの記憶装置または物理的記憶装置として実施され、一時的な信号または搬送波は含まない。装置102のアプリケーション、ファームウェア、および/またはオペレーティングシステム(図示せず)は、プロセッサ実行可能命令としてコンピュータ可読媒体108に具現され得、本明細書で説明された様々な機能性をもたらすためにプロセッサ106によって実行され得る。コンピュータ可読媒体108は、装置102のアプリケーション、ファームウェア、またはオペレーティングシステムによってアクセス可能な、ユーザデータまたはユーザメディアなどのデバイスデータ112を記憶し得る。
この例では、集積回路104はセキュリティ回路114を含有している。装置102、集積回路104、またはセキュリティ回路114は、安全な暗号プロセッサを実施し得る。セキュリティ回路114は、たとえば回路コンポーネント116-1~回路コンポーネント116-nといった1つまたは複数の回路コンポーネント116を使用して実施され得る。回路コンポーネント116は、装置102の機能性を有効にするための任意数の動作を実行するように構成され得る。回路コンポーネントの例は、図2に記載されているように、プロセッサおよび複数の機能部品および/またはIPブロックを含む。セキュリティ回路114は、たとえば保護されたエンクレーブ、信頼されたチッププラットフォーム、ハードウェアベースの信頼の基点(RoT)チップ(たとえばシリコンRoT)などとして実現され得る。セキュリティ回路114は、電子デバイスに組み込まれるやり方や場所には関係なく、色々なタイプの攻撃に対処し得る、または攻撃を阻止し得る。
態様において、セキュリティ回路114が含む回路コンポーネント116-1~116-nは、セキュリティ回路114、集積回路104、および/または装置102のそれぞれの機能をもたらすかまたは実施する。チップ全体の安全な通信の態様を実施するために、回路コンポーネント116は、セキュリティ回路114のコンポーネントの間の通信整合性および/または装置102のデータを保護するための様々な暗号化もしくはスクランブル動作を可能にし得る、1つまたは複数の整合性機能118を含む。一般に、セキュリティ回路114および回路コンポーネント116の整合性機能118は、コンポーネントによる消費に先立つ要求メッセージ(たとえばコマンドペイロード)の検証、ホストまたは他のバスマスタによる消費に先立つ応答メッセージ(たとえば応答ペイロード)の検証、および/またはメモリ(たとえば命令キャッシュまたはSRAM)のスクランブルのための機構を用いて、データ通信方式および/または記憶方式を実施してよく、物理的メモリ攻撃を防止し得る強固なアドレスバインディングおよびデータバインディングをもたらす。したがって、チップ全体の(またはシステム全体の)安全な通信の態様は、装置102の相互接続120(たとえばファブリック)および一時的な記憶位置を走査することにより、整合性ペイロードが存続することを保証し得る。場合によっては、回路コンポーネント116の整合性機能118は、ホストから受け取ったコマンドペイロードの整合性を、消費に先立って検証する整合性検査機能と、ホストに送られる応答ペイロードに含めるかまたは追加する整合性ビットを生成することにより、ホストが、消費に先立って、応答ペイロードの整合性を検証することを可能にする、整合性生成機能とを含む。これらは、チップ全体の安全な通信を可能にするために有効なエンティティのほんの数例でしかなく、このようなエンティティの実装形態および使用法は様々であり、本開示の全体にわたって説明される。
示されるように、セキュリティ回路114は、セキュリティ回路のコンポーネント、周辺装置、および/または宛先をホストまたはホストのインターフェースに結合し得る相互接続120に結合されている。相互接続120は、たとえば、バス、スイッチングファブリック、リンク、通信チャネル、または様々な回路コンポーネントが通信することを可能にするバスネットワークを使用して実現され得る。いくつかの態様では、相互接続が含む、タイルリンク通信規格に従って実施されるファブリックは、AチャネルおよびDチャネルの構成を有するタイルリンク非キャッシュライトウェイト(TL-UL)ファブリックを含み得る。回路要素の各々が、直接的または間接的に、相互接続120に結合され得る。相互接続120は、回路コンポーネントが他のデバイスまたはデータネットワークと通信することを可能にするために、装置102のデータポートまたはインターフェースとの通信を可能にし得る。
装置102は、ディスプレイ122、トランシーバ124、入出力ポート(I/Oポート126)および/またはセンサ128も含み得る。ディスプレイ122は、プロセッサ106のうち1つ(たとえばグラフィック処理ユニット(GPU))と動作可能に結合され、装置102のオペレーティングシステムまたはアプリケーションのそれぞれのインターフェースをグラフィック表示するように構成され得る。トランシーバ124は、任意の適切な通信プロトコルによる有線または無線のネットワークを通じてデータ(たとえばデバイスデータ112)の有線または無線の通信を可能にするように構成され得る。装置102のI/Oポート126は、この電子デバイスを、様々なコンポーネント、周辺装置、またはキーボード、マイクロフォン、もしくはカメラなどの付属品に結合するのに有用な、ユニバーサルシリアルバス(USB)ポート、同軸ケーブルポート、および他のシリアルコネクタまたはパラレルコネクタ(内部コネクタを含む)を含み得る。
装置102は、センサ128も含み、装置102の動作環境の諸特性、変化、刺激、または特徴を感知することができる。たとえば、センサ128は、様々な運動センサ、周囲光センサ、音響センサ、容量性センサ、赤外線センサ、温度センサ、レーダセンサ、または磁気センサを含み得る。代わりに、またはそれに加えて、センサ128は、接触感知、ジェスチャ感知、または近接感知などによって、装置102のユーザと相互作用すること、またはユーザから入力を受け取ることを可能にし得る。
例示の回路コンポーネント
図2は、200において、チップ全体の安全な通信の態様をサポートするように実施され得る複数の回路コンポーネントを含む例示のセキュリティ回路114を示す。示されるように、セキュリティ回路114は、相互接続120に結合されたプロセッサ106を含む。プロセッサ106、複数のメモリ、および複数の他の回路コンポーネント116の各々が、直接的または間接的に相互接続120に結合され得る。態様において、図2のコンポーネントは、信頼の基点および/または他の安全な暗号機能を実施する安全なコンピュータプラットフォームまたは安全なシステムオンチップとして具現され得る。代わりに、またはそれに加えて、図2のコンポーネントは、システムのコンポーネントまたはIPブロックを動作可能に結合するファブリックとして実施され得る相互接続120によって結合される、システムの1つまたは複数のICまたはIPブロックとして実施され得る。
図2は、200において、チップ全体の安全な通信の態様をサポートするように実施され得る複数の回路コンポーネントを含む例示のセキュリティ回路114を示す。示されるように、セキュリティ回路114は、相互接続120に結合されたプロセッサ106を含む。プロセッサ106、複数のメモリ、および複数の他の回路コンポーネント116の各々が、直接的または間接的に相互接続120に結合され得る。態様において、図2のコンポーネントは、信頼の基点および/または他の安全な暗号機能を実施する安全なコンピュータプラットフォームまたは安全なシステムオンチップとして具現され得る。代わりに、またはそれに加えて、図2のコンポーネントは、システムのコンポーネントまたはIPブロックを動作可能に結合するファブリックとして実施され得る相互接続120によって結合される、システムの1つまたは複数のICまたはIPブロックとして実施され得る。
態様において、セキュリティ回路114のプロセッサ106は、チップ全体の安全な通信の態様を実施するための整合性機能110を含み得る。場合によっては、整合性機能110は、セキュリティ回路114のコンポーネントまたは宛先に送られる要求メッセージ(たとえばコマンドペイロード)に含めるかまたは追加する整合性ビットを生成することにより、コンポーネントが要求ペイロードの整合性を消費に先立って検証することを可能にする、整合性生成機能を含む。整合性機能110は、セキュリティ回路114のコンポーネントまたは宛先のそれぞれのものから受け取られた応答メッセージ(たとえば応答ペイロード)の整合性を検証するための整合性検査機能も含み得る。これらは整合性機能110のほんの数例でしかなく、これらの実装形態および使用法は様々であり、図3A~図6を参照しながら本開示の全体にわたって説明される。
プロセッサ106は、相互接続120を介して回路コンポーネント116と結合されてよく、かつ/または他のコンポーネントもしくはインターフェースと直接結合されてもよい。図2に示されるように、システムは、システムのホストとして機能し得るプロセッサ106との相互作用を可能にする相互接続120に結合された複数の回路コンポーネント116を含み得る。この例では、回路コンポーネント116は、それぞれの整合性機能118を伴って実施され得るレジスタファイル202および様々なメモリ204~208を含む。回路コンポーネント116は、任意の適切な構成の1つまたは複数のメモリ(たとえばCRM 108)を含み得、ROM204、SRAM206、およびフラッシュメモリ208を含む。図には示されていないが、回路コンポーネント116は、他のメモリ(たとえば消去不可能プログラマブルメモリまたはDRAMメモリ)および/またはシリアル周辺インターフェース結合(SPI結合)またはUSB結合のメモリなど、他のコンポーネントを介して結合されるメモリを含み得る。
チップ全体の安全な通信の態様を実施するために、レジスタファイル202、ROM204、SRAM206、またはフラッシュメモリ208は、相互接続120を通じて実施されたデータおよび他のトランザクションを検証するための整合性機能118を含み得る。場合によっては、整合性機能118は、コンポーネントがコマンドペイロードを消費する前に、ホストから受け取ったコマンドペイロードの整合性を検証するための、整合性検査機能を含む。代わりに、またはそれに加えて、整合性機能118は、コンポーネントによってホストに送られる応答ペイロードに含めるかまたは追加する整合性ビットを生成することにより、ホストが、応答ペイロードを消費する前に、応答ペイロードの整合性を検証することを可能にするための整合性生成機能を含む。これらは整合性機能118の実装形態のほんの数例でしかなく、これらの実装形態および使用法は様々であり、図3A~図6を参照しながら本開示の全体にわたって説明される。
図2に示されるように、回路コンポーネント116は、アラートハンドラ210、高度暗号化標準(AES)ユニット(AESユニット212)、ハッシュベースのメッセージ確認コード(HMAC)エンジン(HMACエンジン214)、およびシリアル周辺インターフェース(SPI)デバイス(SPIデバイス216)も含み得る。回路コンポーネント116は、汎用非同期受信器/送信器(UART)ユニット(UARTユニット218)、汎用入出力(GPIO)インターフェース(GPIOインターフェース220)、ピンマルチプレクサ(ピンmux222)、およびパッドコントローラ224も含み得る。複数の回路コンポーネント116が、乱数発生器(RNG 226)およびタイマ228(たとえばウォッチドッグタイマ)をさらに含み得、他のコンポーネントは、RNG 226から、認証トークンとして使用する高いエントロピー値を取得し得る。メモリおよび他のコンポーネント116のある特定の例が、図2に表され、本明細書で説明されるが、所与のセキュリティ回路114の実装形態は、プロセッサ、コントローラ、メモリ、モジュール、または周辺機器の、複製も含めて、より多くの事例、より少ない事例、および/または別の事例を含み得る。
示された回路コンポーネントは、1つまたは複数のクロック信号に基づき、同期して作動され得る。図2には示されていないが、セキュリティ回路114は、クロック信号を生成するための少なくとも1つのクロックジェネレータ、あるいは、1つまたは複数の個々のコンポーネントを互いに別個にリセットするため、複数のコンポーネントを一緒にリセットするため、または全体の集積回路チップをリセットするためのリセット回路を含み得る。あるいは、セキュリティ回路114は、セキュリティ回路114の外部のソースから少なくとも1つのクロック信号またはリセット信号を受け取り得、外部のソースは別個のチップ上にあってもなくてもよい。1つまたは複数の別個のコンポーネント116が、それぞれの個別のクロック領域では動作し得る。たとえば、回路コンポーネントは、それぞれのコンポーネントにとって局所的なクロックに同期され得る。別々のクロック領域の各コンポーネントは、互いに非同期で動作し得、または通信し得る。
示されたコンポーネントの例示の実装形態が以下で説明される。プロセッサ106は、ホストまたはバスコントローラの機能性を実施するセキュリティ回路114用の、「メインプロセッサ」、「中央プロセッサ」、または「コアプロセッサ」として実現され得る。例としてのみ、プロセッサ106は、32ビットの、多段パイプラインを有する、順序実行型縮小命令セット計算(RISC)コアを用いて実施され得る。プロセッサは、たとえばRISC-V機能性を用いて、M(マシン)モードおよびU(ユーザ)モードを実施し得る。(たとえばアクティブローのリセットピンの非アサーションによって)リセットピン(図示せず)をアクティブ化すると、プロセッサ106はリセットを終了し、そのリセットベクトルにおいてコードを実行し始める。リセットベクトルは、ROM204において始まり得、コードへジャンプするのに先立って、埋込みフラッシュメモリ(Eフラッシュメモリ、図示せず)においてコードが検証される。言い換えれば、コードは、リセットが解放される前にEフラッシュメモリにインスタンス化されることを予定されている。場合によっては、セキュリティ回路114の全体にわたるリセットは、様々な回路コンポーネント間の相互運用性をサポートするために、適合性仕様により、非同期アクティブローにされ得る。リセットは、セキュリティ対策として、ウォッチドッグタイマ、アラートハンドラ210などによって生成され得る。リセット信号は、メモリのうち1つ、または他のコンポーネント116のうち1つなどの、他の回路コンポーネントにも送られ得る。
デバッグモジュール230(DM)および割込みコントローラ232(ItC)がプロセッサ106に結合され、どちらもまた適合され得る。デバッグモジュール230は、プロセッサ106にデバッグアクセス権を与える。デバッグモジュール230の論理は、ICのある特定のピンとインターフェースすることにより、プロセッサ106に、デバッグモードに入ることを許容し、(たとえば命令をエミュレートすることによって)デバイスまたはメモリの中にコードを注入する能力を与える。割込みコントローラ232はプロセッサ106に近接して配設され得る。割込みコントローラ232は、セキュリティ回路114の内部から割込みソースのベクトルを受け取ることができる。割込みコントローラ232は、ハンドリングのために割込みをプロセッサ106に転送するのに先立って、割込みにレベルおよび優先度を割り当てることもできる。
プロセッサ106は、任意の所望のレベルの性能をもたらすか、または任意の内部回路コンポーネントを含むことができる。たとえば、プロセッサ106は、少なくとも1つの算術論理演算ユニット(ALU)(たとえば採用された条件付き分岐におけるレイテンシのサイクルを除去するための分岐ターゲットを計算する「追加の」ALUを含む)、レジスタファイル、制御ユニット、入出力(I/O)ユニット、および複数のパイプラインステージを含み得る。複数のパイプラインステージの状況で、要求の後のサイクルにおけるロードまたはストアに対して応答が有効であるとき、パイプラインは、ロードやストアからレイテンシのサイクルを低減するために、レジスタライトバックを実行してパイプラインストールを防止することができる。プロセッサ106は、単一サイクルマルチプライヤを実施するか、またはストアに対するエラー応答に関する不正確な例外を生成し、応答を待たずにストアを通り過ぎて、実行を継続することができる。図には示されていないが、命令に対する単一サイクルアクセスタイムをもたらすために、プロセッサ106には特別に、またはセキュリティ回路114には一般的に、命令キャッシュが含まれ得る。
ALUは、受け取られたデータに対する算術演算および論理演算を実行するように構成され得る。図3Aおよび図3Bを参照してさらに説明されるレジスタファイル(たとえばレジスタファイル202)は、プロセッサレジスタ(たとえば制御レジスタ)の配列であってよく、プログラムまたは機能の処理中の高速データアクセス用に構成された高速の半一過性メモリとして働く。レジスタファイルは、プロセッサ106のALUに密結合され得る。データへのアクセスをさらに促進するために、レジスタファイルは、ALUおよび/または実行ユニットが単一サイクルで複数のオペランドを同時に回収できるように、複数の読出しポートまたは複数の書込みポートを含み得る。レジスタファイルは、データのビットの読出しおよび書込みを促進するために、フリップフロップから形成され得る。制御ユニットは、システム(複数可)の全体にわたってデータの流れを制御するように構成され得る。I/Oユニットは、デバイスまたはセキュリティ回路114の他のコンポーネントに対して動作可能に接続されたポートを含み得る。プロセッサ106、回路コンポーネント116、ならびに整合性機能110および118のさらなる態様が、図3A~図6を参照しながら本開示の全体にわたって説明される。
図3Aおよび図3Bは、それぞれ300および301に、チップ全体の安全な通信の1つまたは複数の態様によってコマンドまたはデータトランザクションを実施するシステムコンポーネントの構成の一例を示す。示された例示のシステム構成は、チップ全体の安全な通信をサポートするシステムが実施され得る多くのやり方のうち1つを表す。そのため、チップ全体の安全な通信の態様は、図2および/または図3A~図6を参照しながら説明されたコンポーネントのうち1つまたは複数を含むシステムなど、同様にまたは異なって構成されたシステムによって実施され得る。一般に、チップ全体の安全な通信の態様は、ホストと、少なくとも1つの宛先または相互接続もしくはファブリックを介してホストに結合された周辺機器とを含むシステムにおいて実施され得る。本明細書で説明されたように、ホストと宛先とが、システムの他のコンポーネントと通信するとき、互いに異なる構成にされてよく、かつ/または異なるレベルまたはタイプのデータ保全を実施してよい。以下の図3A~図6の説明では、コマンドおよび/またはデータを交換するかまたは処理するために互いに相互作用するコンポーネントとして実施され得るチップ全体の安全な通信の様々な態様の状況で、様々なシステム構成要素が説明される。
チップ全体の安全な通信のいくつかの態様では整合性方式が採用され得、データやコマンドには、データまたはコマンドの整合性が検証され得る整合性メタデータまたは整合性ビットが伴う。場合によっては、これらの整合性動作を実施するために、ホストおよび宛先によってエラー補正コード(ECC)ビットが使用される。したがって、ECC有効化整合性方式は、ファブリックまたは相互接続を通じた伝送プロセスでなく、宛先記憶機構およびホスト機能も対象として含む。言い換えれば、ホストによって生成された整合性メタデータが、メモリへとずっと及び得、後の整合性検証のために、同じ整合性メタデータがホストに返され得る。宛先または周辺装置は、整合性メタデータを受け取るかまたは記憶することができない場合には、整合性メタデータが宛先の内部で取り去られるときなどに脆弱性が導入されないことを保証するために、頑健なデータ変換プロセスを用いて実施され得る。加えて、またはその代わりに、実行フローに重要なメモリは、暗号化/復号化、ならびに整合性データによって保護され得る。そうすることによって、メモリまたはシステムのエンドポイントが、整合性論理の下流の攻撃に対して強化され得、メモリに対するあらゆる読み書きが、攻撃者には変更不可能な特定のアドレスに結び付けられ得る。したがって、チップ全体の安全な通信の態様は、システムの全体にわたって、コードであろうと生データであろうと、すべてのデータに対する強固な保護をもたらし、潜在的な攻撃者にとって利用可能な攻撃対象領域を縮小する。
図3Aに戻って、プロセッサ106によって機能性が実施され得るホスト302が、相互接続120を通じて例示のシステムの宛先(たとえばコンポーネント)に結合されている。この例では、相互接続120は、ホストによって宛先との通信に使われる要求チャネル304(チャネルA 304)および応答チャネル306(チャネルD 306)を有する、タイルリンク非キャッシュライトウェイト(TL-UL)ファブリックとして構成される。例として、ホスト302は、ファブリックのチャネルA 304を通じて宛先にコマンドペイロードを送出して、宛先からファブリックのチャネルD 306を通じて応答メッセージを受け取り得る。図3Aおよび図3Bに示されるように、ホストは、ファブリックを介して、デバッグモジュール230と、レジスタファイル202と、ROM204またはSRAM206を表すメモリモジュールと、フラッシュメモリ208とに、動作可能に結合されている。図には示されていないが、ホスト302は、任意数の追加のシステムコンポーネントまたは宛先と動作可能に結合され得る。
態様において、ホスト302は、バスホスト機能性を有するか、またはもたらす、任意のモジュールまたはコンポーネントを表し得る。ホスト302は、機能コア308と、データ記憶機構310と、ホスト302をシステムの相互接続120と結合するデータインターフェース312とに、要約され得、これらを用いて実施され得、かつ/またはこれらを含み得る。一般に、機能コア308は、ホストまたはシステムの主要な機能を実施し、かつ/または実行する、論理または処理ユニットを表し得る。そのため、機能コア308は、プロセッサのパイプライン、プロセッサコア、直接メモリアクセスエンジンのメイン有限状態機械などのうち1つまたは複数を含み得る。データ記憶機構310は、メモリと、ホストとやり取りされるデータの一時記憶を可能にするレジスタとを含み得る。データ記憶機構310および/または機能コア308と相互接続120との間にデータインターフェース312が結合され得、相互接続120に結合された宛先(たとえばメモリおよびI/O)とのデータの交換を可能にするかまたは促進する。そのため、ホスト302は、ファブリックを介して、ROM、SRAM、フラッシュメモリ、システムの周辺装置、システムのインターフェースなどを含み得る任意のモジュールまたはコンポーネントを含み得る宛先と通信することができる。
この例では、ホスト302は、データ記憶機構310と機能コア308との間に結合された(たとえば消費に先立ってデータを検証するための)整合性検査機能314、および機能コア308およびデータインターフェース312との間に結合された(たとえばアウトバウンド要求および/またはデータペイロードのための整合性ビットをもたらすための)パリティ生成機能316も含む。態様において、整合性検査機能314およびパリティ生成機能316(または整合性生成機能)は、機能コア308による消費に先立って、整合性メタデータに基づいてデータの整合性を検証してよく、かつ/または宛先が消費に先立ってコマンドまたはデータの整合性を検証することを可能にする、宛先に送られるコマンドまたはデータのための整合性メタデータ(たとえばECCビット)を生成してもよい。ホスト302およびチップ全体の安全な通信の態様に関して、機能コア308が、整合性メタデータの特性を維持しないALU演算などのデータを変換するときには、整合性方式の存続が不可能になることがあるので、機能コア308の境界(点線)は他のセキュリティ機構によって保護され得る。
態様において、ホスト302を起点とするトランザクションには、下流の宛先がホストから適切なものとして受け取ったデータの整合性を検証することを可能にする、ホストが生成した整合性メタデータ(たとえばECCビット)が付随する。いくつかの態様では、ホスト302と様々な宛先との間のファブリックは、コマンドメッセージまたは応答メッセージに対する整合性検査も実行し得るが、整合性メタデータは、ファブリックベースの整合性検査が成功した後にも、メッセージが適切なホストまたは宛先に到達するまで存続するべきである。したがって、宛先からホスト302に戻されるデータには、宛先によって生成または供給された整合性メタデータ(たとえばECCビット)が付随し得る。態様において、この整合性メタデータは、整合性データがもはや維持され得ない機能コアの境界に到達するまで、または整合性データが別の形式に変換される機能コアの境界に到達するまで、データまたは応答メッセージとともに存続するべきである。データが、整合性データがもはや維持され得ない境界に到達したとき、ホスト302は、整合性メタデータを取り去ってデータを消費する前に、データの整合性を検査し得る。あるいは、整合性データが変換される境界にデータが到達したとき、ホスト302は、データに関する新規の整合性メタデータを計算するかまたは判定するのに先立って、(たとえば機能コア308によるデータの操作または処理中に)データの整合性を検査し得る。
この例では、ホスト302のデータ記憶機構310は、トランシット中のホスト302によるデータのスクランブル化を可能にし得るスクランブル機能ブロック318も含む。態様において、スクランブル機能ブロック318のスクランブル機構は、スクランブルブロック318が、スクランブルされたデータをメモリの特定の位置に結合するように、アドレス微調整可能であり得る。場合によっては、プレーンテキストから暗号テキストへの変換や逆方向の変換のために、データとビット単位でXOR演算される64ビットのキーストリームブロックを生成するために、スクランブルキーを用いて64ビットの初期化ベクトル(IV)を暗号化するためにブロック暗号を採用する、カウンタすなわちCTRのスクランブルモードが使用される。IVは、ノンスをワードアドレスと連結することによってアセンブルされ得る。
一般に、使用されるスクランブル機構はアドレス微調整可能であり得る。たとえば、微調整可能なブロック暗号は、スクランブル機構の状況で、その通常のプレーンテキストまたは暗号テキストの入力とともに、微調整と称される第2の入力を受け取る。微調整値は、キーとともに、暗号によって計算された置換を選択する。微調整の変更が、(通常、かなり割高なキーセットアップ動作と比較して)十分に軽いときには、いくつかの興味深い新規の動作モードが可能になる。アドレス微調整は、スクランブルされたデータを、メモリにおける特定の位置に結び付けるので、特定の実装形態において必要とされることがある。場合によっては、攻撃をさら困難にするために、アドレス自体がスクランブルされるべきである。態様において、ホスト302または宛先によって生成された整合性メタデータは、システムのファブリックおよび/またはあらゆる一時的な記憶要素を通じて、コマンドメッセージ(たとえばコマンドペイロード)および/または応答メッセージ(たとえばデータペイロード)とともに存続し得る。
たとえば、本明細書で説明されたように、整合性メタデータ(たとえばECCビット)は、TL-UL先入れ先出しレジスタ(TL-UL FIFO)、命令キャッシュ(iキャッシュ)、プロセッサ(またはホスト)の様々なレジスタ、暗号プロセッサ(たとえばビッグナンバーアクセラレータ)、SRAM、実行制御フローに重要なレジスタまたはメモリなどの中のデータまたはこれらを通るデータに付随するかまたはともに存続し得る。チップ全体の安全な通信の態様によれば、データ整合性またはペイロード整合性は、システムのホスト302と様々な宛先との両方において、消費前に検証され得る。いくつかの実装形態では、システムのホスト302および宛先が、整合性機構としてECCを実施することにより、ペイロードが検証されるが、他の軽い整合性機構(たとえばCRCビットまたはパリティビット)が使用されてもよい。ECCは整合性検証または確認のために実施されるが、ECC検知が整合性検証のために使用される態様では、ECCの補正機能は使用されない。いくつかの態様では、説明されたECC整合性符号化は、メッセージまたはペイロード当たり、3ビットまでのエラーの検知を可能にし得る。
図3Aに戻って、ホスト302は、本明細書で説明されたように、整合性メタデータまたは整合性ビットを含むメッセージを使用して、デバッグモジュール230およびレジスタファイル202にコマンドまたはデータを通信し得る。この例では、デバッグモジュール203またはデバッグメモリ(たとえばROM、rv_dm)は、整合性生成機能320を用いて、ホスト302に送られる応答またはデータのための整合性メタデータ(たとえばECCビット)を生成するように構成され得る。デバッグメモリがROMすなわち読出し専用であるため、デバッグモジュールは整合性検査機能を含まなくてよい。場合によっては、このインターフェースまたはメモリに対するアクセスは、システムのデバッグ状態中に限られるか、デバッグ状態のときしか有効にならないので、デバッグモジュール230の保護は軽いものでよい。
態様において、レジスタファイル202は、レジスタファイル202が整合性生成機能320を任意選択で含み得るように、データまたは応答メッセージを整合性とともに含んでよく、これらに整合性を直接与えてもよい。レジスタファイル202は、ホスト302から受け取ったコマンドメッセージ、要求メッセージ、またはコマンドペイロードの整合性を検証するための整合性検査機能322を含み得る。この例では、レジスタファイル202は、ウィンドウアクセス324を用いてビッグナンバーアクセラレータに対して動作可能に結合される。前述のように、レジスタファイル202に供給されるデータ、またはこれを通じて供給されるデータは、整合性メタデータまたは整合性ビットを含み得、ホストとの通信のために、ウィンドウ324などからファブリックに直接供給され得る。
図3Bの301に示されるように、ホスト302は、図3AからのチャネルA 304およびチャネルD 306として示されるファブリックに結合されたメモリ宛先とも通信し得る。この例では、第1のメモリ宛先は、スクランブル保護(破線)付きメモリマクロ326を含むROM204および/またはSRAM206を表し得る。態様において、ROM204またはSRAM206は、ファブリックを介して受け取ったデータ328を、データ328に付随する整合性メタデータ330とともに記憶し得る。言い換えれば、いくつかのメモリは、システムを通してデータトランザクションのエンドツーエンド整合性をもたらすために、整合性メタデータ(たとえばECCビット、ホストから供給されたECC)をデータとともに直接記憶し得る。この整合性メタデータは、ホストを起点にファブリックを通るデータペイロードに付随し、データとともにメモリ宛先に記憶される。加えて、メモリ宛先は、マクロの326による記憶に先立ってデータおよび整合性メタデータをスクランブルするスクランブル機能332を含み得る。そのため、整合性メタデータ330が、メモリマクロ326に入力されてから回復されるまでデータ328とともに存続するので、表されたROM204/SRAM206のメモリは整合性生成機能を含まない。
ホスト302は、データを記憶するため、またはフラッシュマクロ334からのデータにアクセスするために、フラッシュメモリ208とも通信し得る。ここで、整合性検査機能322がデータの整合性を検証した後に、フラッシュメモリ208が整合性データを取り去る可能性があることに留意されたい。場合によっては、フラッシュメモリ208のサイズの制約により、フラッシュECCビットと整合性メタデータとの両方をデータとともに記憶することはできない可能性がある。図3Bに示されるように、データ336とともにフラッシュマクロ334に記憶されるECCビット338は、フラッシュマクロ334から読み出されるときデータ336のエラーを検知して修正するためにフラッシュメモリ208によって生成されるものである。加えて、フラッシュメモリ208は、フラッシュマクロ334による記憶に先立ってデータ336および/またはECCビットをスクランブルするスクランブル機能332を含み得る。フラッシュメモリ208は、エンドツーエンドのやり方で整合性メタデータを記憶しない可能性があるので、データ336がフラッシュマクロ334から読み出されるときのための整合性メタデータを生成する整合性生成機能320を含み得、ホスト302による、フラッシュメモリ208によって返されるデータの整合性検証が可能になる。
別の例として図4を検討すると、チップ全体の安全な通信の態様を実施するための整合性機能を含む例示のシステム400が示されている。図4の例示のシステム400は、ホスト302がファブリック120を介して1つまたは複数の宛先402に動作可能に結合されているシステムを簡単に表し得る。この例では、ホスト302(たとえばRISC-Vコア)は、コマンド整合性生成機能404(コマンド生成404)および応答整合性検査機能406(応答検査406)を含み、これらは、ホストベースの整合性機能110、整合性検査機能314、および/またはパリティ/整合性生成機能316に対応し得る。システムの宛先と通信するとき、コマンド生成機能404が、コンポーネントまたは宛先に送られるコマンドメッセージ(たとえばコマンドペイロード)に含めるかまたは追加する整合性ビットを生成してよく、かつ/または、応答検査機能406が、それぞれのコンポーネントから受け取られた応答メッセージ(たとえば応答ペイロード)の整合性を検証してもよい。
宛先402(たとえば周辺装置またはメモリ)は、コマンド整合性検査機能408(コマンド検査機能408)および応答整合性生成機能410(応答生成機能410)を含み得、これらは、コンポーネント整合性検査機能118、整合性生成機能320、および/または整合性検査機能322に対応し得る。システムのホストと通信するとき、コマンド検査機能408は、コンポーネントまたは宛先がコマンドペイロードを消費する前に、ホスト(たとえばプロセッサ106、ホスト302)から受け取られたコマンドペイロードの整合性を検証し得る。代わりに、またはそれに加えて、応答生成機能410が、コンポーネントまたは宛先によってホストに送られる応答ペイロードに含めるかまたは追加する整合性ビットを生成することにより、ホストは、応答ペイロードを消費する前に、応答ペイロードの整合性を検証することが可能になり得る。
USBベースまたはSPIベースの周辺装置などの周辺装置の宛先に関して、これらまたは他の周辺装置の宛先は、レジスタファイル(たとえばレジスタファイル202)の内部で終結し得、またはウィンドウ(たとえばウィンドウ324)が下流機能にアクセスし得る。態様において、宛先402における着信トランザクションは、消費に先立って、正確さのために、整合性メタデータに基づいて整合性を検査される。レジスタファイルまたはウィンドウのいずれかの終結に関して、整合性メタデータ(たとえばECCビット)は、読み出されるときやホスト境界に返されるときには整合性データが生成されるように、整合性メタデータがデータと一緒に記憶されてホスト境界に直接戻されるように、あるいは、ウィンドウを通るデータ読出しが進行中であれば、下流のウィンドウ整合性データもホスト境界に返され得るように、実施され得る。ウィンドウアクセスが整合性メタデータを有しないとき、宛先は、応答のために整合性メタデータを生成し、この生成された整合性データを、返されるデータと一緒に返してよい。
チップ全体の安全な通信のための設計をするときの他の考察は、チップまたはシステムにおいて、安全なドメインまたはスペースの内部のすべての周辺レジスタを含み得る、追加の周辺レジスタまたはすべての周辺レジスタについて、パリティを使用することおよび/または有効にすることを含み得る。いくつかのシステム設計では、3つのI2C、1つのSPIホスト、1つのrbox、および1つのdcdを含み得る様々な周辺装置/インターフェース以外に、既存の周辺装置(すべての周辺装置がインスタンス化されるわけではない)にわたって、構成可能なビットは約12kあり得る。態様において、すべてのレジスタにおいてチップ全体のパリティを実施するためのオーバヘッドは、ほぼ2k~3kフロップで実行され得る。
図5は、チップ全体の安全な通信の態様を実施するための整合性機能を含む例示の周辺装置500を示す。この例では、宛先502は、メモリおよびFIFOの2つのインスタンスと、整合性メタデータ記憶機構を有するメモリおよびFIFO504と、整合性メタデータ記憶機構のない別のメモリおよびFIFO506とを用いて実施される。したがって、宛先502は、整合性を伴ってメモリおよびFIFO504に記憶される少なくともいくつかのデータについてはエンドツーエンド整合性をもたらすように構成され得る。図5に示されるように、宛先502は、タイルリンク入力ノードに結合されたコマンド検査機能408、およびタイルリンク出力ノードに結合された応答生成機能410を含み得る。これらの整合性機能は、コンポーネント整合性検査機能118、整合性生成機能320、および/または整合性検査機能322に対応し得る。システムのホストと通信するとき、コマンド検査機能408は、コンポーネントまたは宛先がコマンドペイロードを消費する前に、ホスト(たとえばプロセッサ106、ホスト302)から受け取られたコマンドペイロードの整合性を検証し得る。代わりに、またはそれに加えて、応答生成機能410が、コンポーネントまたは宛先によってホストに送られる応答ペイロードに含めるかまたは追加する整合性ビットを生成することにより、ホストは、応答ペイロードを消費する前に、応答ペイロードの整合性を検証することが可能になり得る。
しかしながら、場合によっては、応答生成機能410が、ホストに返されるデータのための新規の整合性ビットを生成する必要はないように、整合性ビットがメモリおよびFIFO504に記憶され得る。コマンド検査機能408を参照して、コマンドメッセージまたは要求メッセージが整合性検査に失敗したとき、コマンド検査機能408は、このメッセージを棄却して、失敗した整合性検査のシステムに通知する警報(たとえばアラートセンダ)または割込みを生成するように構成されてよい。代わりに、またはそれに加えて、システムは、警報または割込みに応答して、機密データおよび/または機密を保護するセキュリティ対策を採用し得る。これらは失敗した整合性検査の処理のほんの数例であり、他の例が、図9を参照しながら本開示の全体にわたって説明される。
図6は、チップ全体の安全な通信の態様を実施するための整合性機能を含む例示のメモリコンポーネント600を示す。この例では、メモリ602(たとえばSRAM、ROM)は、TL-ULファブリックアダプタと、整合性メタデータ(ECCビット)の記憶機構をサポートするSRAMまたはROMの機能性を表し得るメモリマクロとを用いて実施される。したがって、メモリ602は、整合性メタデータとともにメモリマクロに記憶されるデータにエンドツーエンド整合性をもたらすように構成され得る。図6に示されるように、メモリ602は、タイルリンク入力ノードに結合されたコマンド検査機能408、およびタイルリンク出力ノードに結合された応答生成機能410を含み得る。これらの整合性機能は、コンポーネント整合性検査機能118、整合性生成機能320、および/または整合性検査機能322に対応し得る。システムのホストと通信するとき、コマンド検査機能408は、メモリがコマンドペイロードを消費する前に、ホスト(たとえばプロセッサ106、ホスト302)から受け取られたコマンドペイロードの整合性を検証し得る。代わりに、またはそれに加えて、応答生成機能410が、メモリによってホストに送られる応答ペイロードに含めるかまたは追加する整合性ビットを生成することにより、ホストは、応答ペイロードを消費する前に、応答ペイロードの整合性を検証することが可能になり得る。
態様において、SRAMタイプやROMタイプの宛先を参照して、着信トランザクションは、消費に先立って正確さを検査され得る。場合によっては、メモリ宛先は、スクランブルされ、しかも整合性も保護される。たとえば、スクランブルすることにより、メモリマクロに対する攻撃を直接保護し、合法的に形成された不正データが返されるのを防止する。場合によっては、相互接続120にわたる安全な通信のためにCTRスクランブルが採用される。本明細書で説明されるように、トランザクションのための整合性はバイトパリティまたはECCのいずれかであり得、モジュールに依拠して適切なものが選択されてよい。
たとえば、バイト書込み性能が重要であり得るメインSRAM206にはパリティか使用されるべきであり、バイト書込み性能を重視しなくてよい保持SRAMにはECCが使用され得る。バイト書込みが重要ではないかまたは不可能である、暗号用のビッグナンバーアクセラレータメモリ、iキャッシュ、および/またはROMには、ECCが使用され得る。一般に、データ読出しまたはデータ取得の際のメモリの挙動は、メモリに記憶された整合性データが高レベルの選択と一致するかどうかに依拠する。たとえば、整合性データが同一であれば、記憶された整合性データがホスト境界に直接返される。一方、整合性データが異なる場合には、ターゲットの整合性データを計算する必要があり、その一方で記憶された整合性データは正確さを検査される。
例示の方法
方法700~方法1000、方法1300、方法1400、および方法1600は、実行され得る行為または動作を表すブロックのそれぞれのセットとして示されているが、これらの動作を実行するために、それぞれのブロックによって示された順序または組合せに必ずしも限定されない。さらに、これらの動作の1つまたは複数のうち任意のものが、多様な追加の方法および/または代替の方法をもたらすために、繰り返され、組み合わされ、再編成され、または連結され得る。説明された技術は、1つのシステムまたはデバイスにおいて動作する1つのエンティティまたは複数のエンティティによる性能に限定されない。態様において、方法700~方法1000、方法1300、方法1400、および方法1600の動作または行為は、プロセッサ、セキュリティ回路コンポーネント、メモリ、整合性生成機能、整合性検査機能、またはチップ全体の安全な通信を実施するように構成された他のエンティティによって実行されるかまたは管理される。明瞭さのために、説明される方法は、図1の要素ならびに/あるいは図2~図6および図17のエンティティ、コンポーネント、または構成を参照しながら説明される。
方法700~方法1000、方法1300、方法1400、および方法1600は、実行され得る行為または動作を表すブロックのそれぞれのセットとして示されているが、これらの動作を実行するために、それぞれのブロックによって示された順序または組合せに必ずしも限定されない。さらに、これらの動作の1つまたは複数のうち任意のものが、多様な追加の方法および/または代替の方法をもたらすために、繰り返され、組み合わされ、再編成され、または連結され得る。説明された技術は、1つのシステムまたはデバイスにおいて動作する1つのエンティティまたは複数のエンティティによる性能に限定されない。態様において、方法700~方法1000、方法1300、方法1400、および方法1600の動作または行為は、プロセッサ、セキュリティ回路コンポーネント、メモリ、整合性生成機能、整合性検査機能、またはチップ全体の安全な通信を実施するように構成された他のエンティティによって実行されるかまたは管理される。明瞭さのために、説明される方法は、図1の要素ならびに/あるいは図2~図6および図17のエンティティ、コンポーネント、または構成を参照しながら説明される。
図7は、ホストによって、1つまたは複数の態様に応じて実施され得るチップ全体の安全な通信のための例示の方法700(複数可)を示す。様々な態様において、整合性機能110またはシステムのホストは、システムのデータを安全に通信するため、および/または利用するために、方法700の動作を実施し得る。態様において、方法700のこれらの動作は、整合性ビットを伴う複数の要求メッセージを送るため、および/または整合性ビットを含む複数の応答メッセージの整合性を検証するために繰り返され得る。
702において、宛先向けの要求メッセージ(たとえばコマンドメッセージ)が生成される。要求メッセージに含まれ得るデータのペイロードの、宛先による消費は、データの処理、データの記憶、データの通信などを含み得る。代わりに、またはそれに加えて、要求メッセージは、ホストによって指示された動作または機能を宛先に実行させるように構成されたコマンドまたはオペコードを含み得る。
704において、要求メッセージのペイロードのための第1の整合性ビットが生成される。場合によっては、ホストのコマンド整合性生成機能が、要求メッセージのための整合性ビットを生成する。整合性ビットは、ECCビット、CRCビット、非対称の暗号化などの任意の適切なタイプの符号化または暗号化を含み得る。706において、第1の整合性ビットが、要求メッセージに挿入され、またはデータもしくは要求メッセージのペイロードの別のフィールドに追加される。
708において、第1の整合性ビットを含む要求メッセージが、ファブリックを通って宛先に伝送される。態様において、要求メッセージの整合性は、要求メッセージが処理されるかまたは通信されるファブリックまたは相互接続の整合性検査機能によって検証または検査され得る。方法700は、動作708から、動作702に戻って別の要求メッセージを生成してよく、または動作710に進んで、宛先または別の宛先から応答メッセージを受け取ってもよい。
710において、ファブリックを通じて宛先からの応答メッセージが受け取られる。応答メッセージは、宛先に最後に送られた要求メッセージに対する応答であってよく、または別の宛先に送られた要求メッセージに対する別の応答であってもよい。応答メッセージは、ホストが消費するデータまたは他の情報のペイロードを含み得る。
712において、応答メッセージから第2の整合性ビットが抽出される。第2の整合性ビットは、整合性検証のためのECCビットまたはCRCビットを含み得、これらのビットはペイロードのデータまたは情報のエラー検知またはエラー訂正には使用されない。場合によっては、第2の整合性ビットは、ホストによって生成された第1の整合性ビットと同一である。他の事例では、第2の整合性ビットは宛先によって生成され、ホストに送られる応答メッセージに挿入される。
714において、応答メッセージのペイロードの整合性は、第2の整合性ビットに基づいて検証されるかまたは確認される。場合によっては、ペイロードに関して、ペイロードの整合性を検証するために、ECC値またはCRC値が解読されるかまたは判定される。これは、応答メッセージとともに受け取られた整合性ビットに基づいてプレーンテキストを確認するために、ECCデコーダにプレーンテキストデータビットおよび整合性ビットを供給するステップを含み得る。したがって、ホストの整合性検査機能は、ペイロードのECCビットまたはCRCビットを計算して、計算されたECC値またはCRC値が、ペイロードとともに受け取られた整合性ビットと一致するかどうかを検証し得る。
716において、ペイロードの整合性検証の成功に応じて、応答メッセージのペイロードが消費される。したがって、ホストがペイロードのデータまたは情報を消費するかまたは使用するのに先立って、応答メッセージのペイロードの整合性が検証されるかまたは確認される。あるいは、ホストは、ペイロードの整合性検証の失敗に応じて、応答メッセージを棄却してもよい(たとえば方法900)。方法700は、動作716から、動作702に戻って別の要求メッセージを生成してよく、または動作710に戻って、ホストが受け取った別の応答メッセージを受け取って処理してもよい。
図8は、宛先によって、1つまたは複数の態様に応じて実施され得る、チップ全体の安全な通信のための例示の方法800を示す。様々な態様において、システムの整合性機能118または宛先は、システムのデータを安全に通信するため、および/または利用するために、方法800の動作を実施し得る。態様において、方法800のこれらの動作は、整合性ビットを伴う複数の要求メッセージを受け取るため、および/または整合性ビットを含む複数の要求メッセージの整合性を検証するために繰り返され得る。
802において、整合性ビットを含む要求メッセージが、ホストからファブリックを通って受け取られる。要求メッセージに含まれ得るデータのペイロードの宛先の消費は、データの処理、データの記憶、データの通信などを含み得る。代わりに、またはそれに加えて、要求メッセージは、ホストによって指示された動作または機能を宛先に実行させるように構成されたコマンドまたはオペコードを含み得る。
804において、要求メッセージから第1の整合性ビットが抽出される。第1の整合性ビットは、整合性検証のためのECCビットまたはCRCビットを含み得、これらのビットはペイロードのデータまたは情報のエラー検知またはエラー訂正には使用されない。
806において、要求メッセージのペイロードの整合性は、第1のパリティビットに基づいて検証される。場合によっては、ペイロードに関して、ペイロードの整合性を検証するために、ECC値またはCRC値が解読されるかまたは判定される。これは、要求メッセージとともに受け取られた整合性ビットに基づいてプレーンテキストを確認するために、ECCデコーダにプレーンテキストデータビットおよび整合性ビットを供給するステップを含み得る。したがって、宛先の整合性検査機能は、ペイロードのECCビットまたはCRCビットを計算して、計算されたECC値またはCRC値が、ペイロードとともに受け取られた整合性ビットと一致するかどうかを検証し得る。
808において、ペイロードの整合性検証の成功に応じて、要求メッセージのペイロードが消費される。したがって、宛先がペイロードのデータまたは情報を消費するかまたは使用する前に、要求メッセージのペイロードの整合性が検証されるかまたは確認される。あるいは、宛先は、ペイロードの整合性検証の失敗に応じて、要求メッセージを棄却してもよい(たとえば方法900)。方法800は、動作808から、動作802に戻って、ホストから別の要求メッセージを受け取ってよく、または動作810に進んで、宛先が応答メッセージを判定してからホストに送ってもよい。
810において、ホスト向けに応答メッセージが判定される。応答メッセージは、宛先の、処理動作、メモリ読出し動作、通信動作などの機能または動作の結果として生じるデータを含み得る。
任意選択で、812において、応答メッセージのペイロードのための第2の整合性ビットが生成される。場合によっては、宛先の応答整合性生成機能が、応答メッセージのための整合性ビットを生成する。整合性ビットは、ECCビット、CRCビット、非対称の暗号化などの任意の適切なタイプの符号化または暗号化を含み得る。あるいは、応答メッセージのペイロードのデータとともに、第2の整合性ビットが回収されるかまたは受け取られ得る。そのため、第2の整合性ビットは、ホストによって生成された第1の整合性ビットと同一であり得る。814において、第2の整合性ビットが、応答メッセージに挿入され、またはデータもしくは応答メッセージのペイロードの別のフィールドに追加される。
816において、第2の整合性ビットを含む応答メッセージが、ファブリックを通ってホストに伝送される。応答メッセージに含まれる第2の整合性ビットにより、ホストは、応答メッセージのペイロードを消費する前に、応答メッセージの整合性を検証することが可能になり得る。方法800は、動作816から、動作802に戻ってホストから別の要求メッセージを受け取ってよく、または動作710に戻って、別の応答メッセージを判定してホストに送ってもよい。
図9は、1つまたは複数の態様による、ペイロードを消費する前にメッセージのペイロードの整合性を検証するための例示の方法900を示す。様々な態様において、システムの整合性機能、ホスト、または宛先は、攻撃がシステムのデータ整合性および/または動作に影響を与えるのを防止するために、ペイロードのデータを消費する前にメッセージペイロードの整合性を検証する方法900の動作を実施し得る。
902において、メッセージのペイロードに関する整合性ビットを含むメッセージが、ファブリックを通じて受け取られる。メッセージは、システムのホストからのコマンドメッセージまたはシステムの宛先もしくは周辺装置からの応答メッセージを含み得る。整合性ビットは、ペイロードの整合性検証のためのECCビットまたはCRCビットを含み得、これらのビットはペイロードのデータまたは情報のエラー検知またはエラー訂正には使用されない。
904において、メッセージのペイロードの整合性を検証するために、ペイロードの整合性ビットおよび/またはコンテンツが復号される。場合によっては、ペイロードに関して、ペイロードの整合性を検証するために、ECC値またはCRC値が解読されるかまたは判定される。これは、要求メッセージとともに受け取られた整合性ビットに基づいてプレーンテキストを確認するために、ECCデコーダにプレーンテキストデータビットおよび整合性ビットを供給するステップを含み得る。方法900は、動作904から、メッセージの整合性検証の成功に応じて動作906に進んでよく、またはメッセージの整合性検証の失敗に応じて動作908に進んでもよい。
906において、ペイロードの整合性検証の成功に応じて、メッセージのペイロードが消費される。検証の後に、ホストまたは宛先は、メッセージのペイロードを消費し得、攻撃者によって変更されたかまたは不正な変更を加えられたデータではなく、適正なデータを消費していることを保証され得る。
908において、ペイロードの整合性検証の失敗に応じてペイロードが棄却される。ホストまたは宛先が、変更されたデータまたは不正データを消費するのを防止するために、メッセージのペイロードが棄却される。任意選択で、910において、検証の失敗をシステムに通知するために割込みまたは警報が生成される。場合によっては、システムのセキュリティエージェントが、警告を受けて、データの漏洩を防止するためにシステムの状態を変更してよい。任意選択で、912において、システムのデータまたは情報に対するアクセスを防止するために対策がアクティブ化される。場合によっては、システムのセキュリティ対策をアクティブ化するかまたは保証するステップは、システムの1つまたは複数のメモリのコンテンツを削除するステップ、システムの1つまたは複数の暗号キーを削除するステップ、システムのエントロピー生成ネットワークをリセットするステップ、システムのセキュリティ状態を変更するステップ、システムの電源状態を変更するステップなどを含み得る。そうすることによって、システムは、データ整合性の障害によってシステムの機密データまたは機密キーが漏洩するのを防止し得る。
図10は、1つまたは複数の態様による、整合性ビットを含むコマンドメッセージのデータをメモリに書き込むための例示の方法1000を示す。様々な態様において、システムの整合性機能118またはメモリ宛先は、システムのデータを安全に通信するため、および/または記憶するための方法1000の動作を実施し得る。
1002において、整合性ビットを含むコマンドメッセージが、ホストからファブリックを通って受け取られる。コマンドメッセージは、システムの命令キャッシュ(iキャッシュ)またはSRAMなどの任意の適切なタイプのメモリによって受け取られ得る。コマンドメッセージ(または要求メッセージ)は、メモリのアドレスにコマンドメッセージのペイロードのデータを書き込むようにとの要求を含む。データトランザクションが、iキャッシュメモリによって実行される図11の例、およびSRAMによって実行される図12の例を考える。図11に示されるように、iキャッシュメモリは、1102において、整合性メタデータとしてECCビットを含む着信データを受け取り得る。図12において、SRAMは、1202において、整合性データとしてECCビットを含む着信データを受け取る。
1004において、コマンドメッセージのコンテンツ(たとえばペイロードデータ)の整合性を検証するために、コマンドメッセージの整合性ビットが復号される。図11の状況で、iキャッシュのECC復号ブロック(たとえば整合性機能)は、1104において、iキャッシュが受け取ったコマンドメッセージのプレーンテキストおよびECCビットを復号する。図12において、SRAMのECC復号ブロック(たとえば整合性機能)は、1204において、SRAMが受け取ったコマンドメッセージのプレーンテキストおよびECCビットを復号する。
任意選択で、1006において、コマンドメッセージのコンテンツのプレーンテキストデータのために、代替整合性ビットとしてパリティビットが生成されるかまたはECCビットが符号化される。iキャッシュの例を参照して、1106において、プレーンテキストデータのためのECCビットが符号化される。態様において、iキャッシュは、バイト書込みを重視しなくてよいので、整合性検査としてECCを採用することができる。他の態様では、SRAMにとってバイト書込み性能は重要であり得るので、読み出してから変更を加えて書き込むための遅延を回避するためにパリティが使用され得る。この例では、バイト書き込み中でも、バスデータが(可能性として不要情報またはパディングデータで)完全に占められ、ECCに正しく関連付けられていると想定されることに留意されたい。図12の状況では、1206において、SRAMに書き込まれるプレーンテキストデータのためのパリティビットが生成される。
1008において、コマンドメッセージコンテンツのプレーンテキストデータおよび整合性ビットがスクランブルされる。図11に示されるように、1108において、iキャッシュのスクランブルブロックがプレーンテキストおよびECCビットをスクランブルする。SRAMの例を参照して、1208において、SRAM宛先のスクランブルブロックが、プレーンテキストデータおよびパリティビットを、SRAMに記憶する前にスクランブルする。
1010において、スクランブルされたデータおよび整合性ビットがメモリに書き込まれる。iキャッシュの例の最後に、スクランブルされたデータおよびECCビットが、1110においてiキャッシュメモリに書き込まれる。図12では、1210において、SRAMユニットが、スクランブルされたデータおよびパリティビットをSRAMに書き込む。任意選択で、1012において、データ書込み動作の肯定応答が、ファブリックを通ってホストに伝送される。
図13は、1つまたは複数の態様による、メモリのデータにアクセスして、整合性ビットとともにデータを伝送するための例示の方法1300を示す。様々な態様において、システムの整合性機能118またはメモリ宛先は、システムのデータを安全に通信するため、および/またはシステムのデータに安全にアクセスするための方法1300の動作を実施し得る。
1302において、データを要求するコマンドメッセージが、ホストからファブリックを通って受け取られる。コマンドメッセージは、システムの命令キャッシュ(iキャッシュ)またはSRAMなどの任意の適切なタイプのメモリによって受け取られ得る。コマンドメッセージ(または要求メッセージ)は、メモリのアドレスからデータを読み出すようにとの要求を含む。
1304において、コマンドメッセージのコンテンツ(たとえばコマンドペイロード)の整合性を検証するために、コマンドメッセージの整合性ビットが復号される。この整合性ビットは、整合性検証のためのECCビットまたはCRCビットを含み得、これらのビットはコマンドメッセージのペイロードのデータまたは情報のエラー検知またはエラー訂正には使用されない。
1306において、メモリから、コマンドメッセージのアドレスに基づいて、スクランブルされたデータおよび整合性ビットが読み出される。図11のiキャッシュの例に戻って、1112において、iキャッシュから、スクランブルされたデータおよびECCビットが読み出される。図12のSRAMの例の状況で、1212において、スクランブルされたデータおよびパリティビットがSRAMから読み出される。
1308において、スクランブルされたデータおよび整合性ビットが解読され、プレーンテキストデータおよび対応する整合性ビットをもたらす。図11に示されるように、1114において、iキャッシュの解読ブロックが、iキャッシュから読み出された、スクランブルされたプレーンテキストおよびECCビットを解読する。SRAMの例を参照して、1214において、SRAM宛先の解読ブロックが、SRAMから読み出された、スクランブルされたプレーンテキストデータおよびパリティビットを解読する。
1310において、メモリから読み出されたプレーンテキストデータの整合性を検証するために、整合性ビットが復号されるかまたはパリティビットが検査される。iキャッシュの例を参照して、1116において、プレーンテキストデータの整合性を検証するためにECCビットが復号される。図12の状況では、1216において、SRAMから読み出されたプレーンテキストデータについて、パリティビットが検査される。
任意選択で、1312において、プレーンテキストデータのための代替整合性ビットとして、ECCビットが符号化される。データとともに受け取られた整合性ビットが、データとともに記憶されない場合には、このデータのために、新規または第2のECCビットが、応答メッセージとともに含めるように生成されてよい。図11では、1118において、iキャッシュのプレーンテキストデータのためのECCビットが符号化される。SRAM例の状況で、1218において、ホストへの伝送に先立って、SRAMから読み出されたプレーンテキストデータのためのECCビットが生成される。
1314において、プレーンテキストデータと整合性ビットとを含む応答メッセージが、ファブリックを通ってホストに伝送される。iキャッシュの例の最後に、1120において、プレーンテキストデータおよびECCビットが、応答メッセージとしてホストに伝送される。図12では、1220において、SRAMユニットは、ホストに対するデータトランザクションを完成するために、応答メッセージとして、プレーンテキストデータおよびECCビットを、ファブリックを通してホストに伝送する。
図14は、1つまたは複数の態様による、コマンドメッセージのデータをエラー訂正コードビットとともにメモリに書き込むための例示の方法1400を示す。様々な態様において、システムの整合性機能118またはメモリ宛先は、システムのデータを安全に通信するため、および/または記憶するための方法1400の動作を実施し得る。
1402において、データを要求する、整合性ビットを含むコマンドメッセージが、ホストからファブリックを通って受け取られる。コマンドメッセージは、システムのフラッシュメモリなどの任意の適切なタイプのメモリによって受け取られてよい。コマンドメッセージ(または要求メッセージ)は、メモリのアドレスにコマンドメッセージのペイロードのデータを書き込むようにとの要求を含む。例として、データトランザクションがシステムのフラッシュメモリによって実行される図15を考える。図15に示されるように、フラッシュメモリブロックは、1502において、整合性メタデータとしてECCビットを含む着信データを受け取る。
1404において、コマンドメッセージのコンテンツ(たとえばペイロードデータ)の整合性を検証するために、コマンドメッセージの整合性ビットが復号される。言い換えれば、メモリの着信トランザクションは、消費に先立って正確さを検査され得る。図15の状況では、フラッシュメモリのECC復号ブロック(たとえば整合性機能)は、1504において、ペイロードデータを検証するために、フラッシュメモリが受け取ったコマンドメッセージのプレーンテキストおよびECCビットを復号し得る。1406において、コマンドメッセージコンテンツのプレーンテキストデータのために、CRCビットおよび/またはECCビットが計算される。フラッシュメモリの例では、CRCブロックまたはECCブロックは、1506において、フラッシュメモリに書き込まれるデータのプレーンテキストのためのCRCビットまたはECCビットを計算し得る。
1408において、コマンドメッセージのプレーンテキストデータがスクランブルされて、スクランブルされたデータをもたらす。フラッシュメモリ宛先がスクランブルされ得ることにより、フラッシュマクロに対する攻撃から直接保護するかまたは防止することができ、合法的に形成された不正データが返されるのを防止する。フラッシュメモリは、不揮発性の性質によって、スクランブルするためにXEXを使用し得る。図15に戻って、プレーンテキストデータは、1508において、フラッシュユニットのスクランブルブロックによってスクランブルされる。
1410において、ECCビットは、スクランブルされたデータならびにプレーンテキストデータのCRCビットおよび/またはECCビットのために符号化される。チップ全体の安全な通信のいくつかの態様では、フラッシュメモリは、耐久性のためにECCによって保護される。場合によっては、フラッシュワードのサイズは76ビット(64ビットのデータ、12ビットのメタデータ)であり、スクランブル方式の影響が全体の64ブロックに及ぶので、ECC(8ビット)はスクランブルされたデータから計算される必要がある。したがって、フラッシュブロックは、保護のために、少し異なるデータ手法を使用することができる。安全な通信のための様々なECC実装形態に関して、フラッシュプログラム用に、元の64ビットデータに対してCRC-4または短縮ECCが計算され得る。次いで、64ビットデータがスクランブルされ、連結されたスクランブル値とCRC/ECC値とに対して新規のECCが計算される。図15の状況では、スクランブルされたデータおよびCRC/ECCビットは、フラッシュメモリに書き込む前に、1510においてECC符号化される。
1412において、スクランブルされたデータと、プレーンテキストデータのためのCRCビットおよび/またはECCビットと、スクランブルされたデータのためのECCビットと、CRCビットおよび/またはECCビットとが、メモリに書き込まれる。図15に示された方法1400の最後に、1512において、スクランブルされたデータ、CRC/ECCビット、およびECCビットがフラッシュメモリに書き込まれる。任意選択で、1414において、データ書込み動作の肯定応答が、ファブリックを通ってホストに伝送される。
図16は、1つまたは複数の態様による、メモリのデータにアクセスして、生成された整合性ビットとともにデータを伝送するための例示の方法1600を示す。様々な態様において、システムの整合性機能118またはメモリ宛先は、システムのデータを安全に通信するため、および/またはシステムのデータに安全にアクセスするための方法1600の動作を実施し得る。
1602において、データを要求するコマンドメッセージが、ホストからファブリックを通って受け取られる。コマンドメッセージは、システムのフラッシュメモリなどの任意の適切なタイプのメモリによって受け取られてよい。コマンドメッセージ(または要求メッセージ)は、メモリのアドレスからデータを読み出すようにとの要求を含む。
1604において、コマンドメッセージのコンテンツ(たとえばペイロード)の整合性を検証するために、コマンドメッセージの整合性ビットが復号される。この整合性ビットは、整合性検証のためのECCビットまたはCRCビットを含み得、これらのビットはコマンドメッセージのペイロードのデータまたは情報のエラー検知またはエラー訂正には使用されない。
1606において、メモリから、コマンドメッセージのコンテンツに基づいて、スクランブルされたデータ、ECCビット、および/またはCRCビットが読み出される。図15のフラッシュメモリの例に戻って、1514において、フラッシュメモリから、スクランブルされたデータ、CRC/ECCビット、およびECCビットが読み出される。
1608において、スクランブルされたデータならびにそのCRCビットおよび/またはECCビットを検査するために、ECCビットが復号される。図15の1516に示されるように、ECCブロックは、フラッシュメモリから読み出された、スクランブルされたデータ、CRC/ECCビット、およびECCビットを復号する。1610において、フラッシュメモリから読み出されたスクランブルされたデータが、プレーンテキストデータをもたらすために解読される。フラッシュメモリの例の状況で、フラッシュユニットの解読ブロックが、1518において、フラッシュメモリから読み出されたプレーンテキストデータを解読する。
1612において、プレーンテキストデータが、プレーンテキストデータのCRCビットおよび/またはECCビットに基づいて検査され、このことは図15の1520に示されている。したがって、フラッシュメモリ読出しに関して、データは、ECC復号して解読され、元のCRC-4/短縮したECCに対して検査され得る。この検査が一致する場合には、データにエラーがないと見なされる。ここで、フラッシュメモリに記憶されるとき、CRC-4/元のECCが、何らかの他の軽い機構(低減されたCTR)によってスクランブルされ得ることに留意されたい。
1614において、ホストによるプレーンテキストデータの整合性検証を可能にするために、ECCビットがプレーンテキストデータのために符号化される。整合性ビットはフラッシュメモリに記憶するところまで存続しないので、フラッシュユニットによって、応答メッセージのために新規または第2の整合性ビットが生成される。図15では、1522において、フラッシュメモリ応答のプレーンテキストデータのためのECCビットが符号化される。
1616において、プレーンテキストデータとプレーンテキストデータのためのECCビットとを含む応答メッセージが、ファブリックを通ってホストに伝送される。図15のフラッシュメモリの例の最後に、1524において、フラッシュメモリユニットによって、プレーンテキストデータおよびECCビットが応答メッセージとしてホストに伝送される。
例示のシステムオンチップ
図17は、1つまたは複数の態様による、チップ全体の安全な通信を実施することができる例示のシステムオンチップ1700(SoC 1700)の様々なコンポーネントを示す。SoC 1700は、単一または複数の、固定式、移動式、スタンドアロン、または組込み型のデバイスのうち任意のものとして、消費者デバイス、コンピュータ、携帯用デバイス、ユーザデバイス、サーバ、通信デバイス、電話、ナビゲーションデバイス、ゲーム機、音声デバイス、カメラ、メッセージデバイス、メディア再生デバイス、および/または、図1に表された、または図1を参照しながら説明された、装置102などの他のタイプのSoC化可能デバイスの任意の形態で実施され得る。示されたコンポーネントのうち1つまたは複数が、個別の部品、モジュール、IPブロックとして、またはSoC 1700の少なくとも1つの集積回路に組み込まれたコンポーネントとして、実現され得る。一般に、SoC 1700の様々なコンポーネントが、チップ全体の安全な通信の1つまたは複数の態様によって各コンポーネントの間の通信をサポートする、相互接続120ならびに/あるいは1つまたは複数のファブリックによって結合される。
図17は、1つまたは複数の態様による、チップ全体の安全な通信を実施することができる例示のシステムオンチップ1700(SoC 1700)の様々なコンポーネントを示す。SoC 1700は、単一または複数の、固定式、移動式、スタンドアロン、または組込み型のデバイスのうち任意のものとして、消費者デバイス、コンピュータ、携帯用デバイス、ユーザデバイス、サーバ、通信デバイス、電話、ナビゲーションデバイス、ゲーム機、音声デバイス、カメラ、メッセージデバイス、メディア再生デバイス、および/または、図1に表された、または図1を参照しながら説明された、装置102などの他のタイプのSoC化可能デバイスの任意の形態で実施され得る。示されたコンポーネントのうち1つまたは複数が、個別の部品、モジュール、IPブロックとして、またはSoC 1700の少なくとも1つの集積回路に組み込まれたコンポーネントとして、実現され得る。一般に、SoC 1700の様々なコンポーネントが、チップ全体の安全な通信の1つまたは複数の態様によって各コンポーネントの間の通信をサポートする、相互接続120ならびに/あるいは1つまたは複数のファブリックによって結合される。
SoC 1700は、受信データ、送信データ、または上記で識別された他の情報などのデバイスデータ112の有線通信および/または無線通信を可能にする1つまたは複数の通信トランシーバ124を含み得る。通信トランシーバ124の例は、近距離無線通信(NFC)トランシーバと、様々なIEEE 802.15(Bluetooth(登録商標))規格に準拠の無線パーソナルネットワーク(PAN)(WPAN)無線機と、様々なIEEE 802.11(WiFi(登録商標))規格のうち任意のものに準拠の無線ローカルエリアネットワーク(LAN)(WLAN)無線機と、携帯電話用の、無線広域ネットワーク(WAN)(WWAN)無線機(たとえば第3世代パートナーシッププロジェクト準拠(3GPP(登録商標)準拠)のもの)と、様々なIEEE 802.16(WiMAX(登録商標))規格に準拠の無線都市規模ネットワーク(MAN)(WMAN)無線機と、赤外線通信協会(IrDA)プロトコルに準拠の赤外線(IR)トランシーバと、有線ローカルエリアネットワーク(LAN)(WLAN)イーサネット(登録商標)トランシーバとを含む。
SoC 1700は、1つまたは複数のデータ入出力ポート126(I/Oポート126)も含み得、これを介して、任意のコンテンツおよび/またはマイクロフォンもしくはカメラのようなセンサを含むデータソースから受け取られた、ユーザ選択可能な入力、メッセージ、アプリケーション、音楽、テレビコンテンツ、記録されたビデオコンテンツ、および他のタイプの音声、ビデオ、および/または画像のデータなどの任意のタイプのデータ、メディアコンテンツ、ならびに/あるいは他の入力が通信され得る。データI/Oポート126は、USBポート、同軸ケーブルポート、光ファイバの相互接続または配線のための光ファイバポート、フラッシュメモリ、ならびに光媒体ライタ/リーダ(たとえばDVD、CD)などを動作可能に結合するための他のシリアルコネクタまたはパラレルコネクタ(内部コネクタを含む)を含み得る。これらのデータI/Oポート126は、SoCを、コンポーネント、周辺装置、またはキーボード、マイクロフォン、カメラ、もしくは他のセンサなどの付属品に結合するために使用され得る。
この例のSoC 1700が含む少なくとも1つのプロセッサ106(たとえばアプリケーションプロセッサ、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、コントローラなどのうち任意の1つまたは複数)は、コンピュータ実行可能命令を処理して(たとえば実行して)デバイスの動作を制御する、プロセッサとメモリとを組み合わせたシステム(たとえばSoCの一部として実施される)を含み得る。プロセッサ106またはプロセッサ106のサブシステムは、本明細書で説明されたチップ全体の安全な通信の様々な態様を実施するための整合性機能110も含み得る。たとえば、プロセッサ106の整合性機能は、SoC 1700のコンポーネントまたは宛先に送られるコマンドメッセージ(たとえばコマンドペイロード)に含めるかまたは追加する整合性ビットを生成するためのコマンド生成機能404を含み得る。代わりに、またはそれに加えて、整合性機能110は、SoC 1700のそれぞれのコンポーネントから受け取られた応答メッセージ(たとえば応答ペイロード)の整合性を検証するための応答検査機能406を含み得る。プロセッサ106は、アプリケーションプロセッサ、組込みコントローラ、マイクロコントローラ、セキュリティプロセッサ、人工知能(AI)アクセラレータなどとして実施され得る。一般に、プロセッサまたは処理システムは、少なくとも部分的にハードウェアで実施され得、これは、集積回路またはオンチップシステムのコンポーネント、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、結合プログラム可能論理回路(CPLD)、ならびにシリコンおよび/または他の材料の他の実装形態を含み得る。
代わりに、またはそれに加えて、SoC 1700は、電子回路の任意のものまたは組合せを用いて実施され得、これは、1702において(電子回路1702として)全体的に示されている処理および制御の回路に関連して実施されるソフトウェア、ハードウェア、ファームウェア、または固定論理回路を含み得る。この電子回路1702は、コンピュータ可読メディアに記憶された処理命令/コンピュータ実行可能命令、論理回路および/またはハードウェア(たとえばFPGAなど)などによって、実行可能なモジュールまたはハードウェアベースのモジュール(図17には示されていない)を実施することができる。
態様において、SoC 1700が含む相互接続120は、システムバス、リンク、チャネル、相互接続、クロスバーのうち任意の1つまたは複数、データ転送システム、またはデバイスの内部の様々なコンポーネントを結合する他のスイッチドファブリックを含み得、スパース符号化を用いる信号伝達および/または通信の様々な態様を可能にする。システムバスまたは相互接続は、メモリバスまたはメモリコントローラ、周辺バス、パリティブロック、CRCブロック、ECCブロック、TL-ULファブリック、ユニバーサルシリアルバス、および/または様々なバス方式のうち任意のものを利用するプロセッサもしくはローカルバスなどの、種々のバス構造のうち任意のものまたは組合せを含み得る。
SoC 1700は、データ記憶機構を可能にする1つまたは複数のメモリデバイス1704も含み、その例には、ランダムアクセスメモリ(RAM)、不揮発性メモリ(たとえば読出し専用メモリ(ROM)、フラッシュメモリ、消去可能プログラマブル読出し専用メモリ(EPROM)、電気的消去可能プログラマブル読出し専用メモリ(EEPROM))、およびディスク記憶装置が含まれる。メモリデバイス1704のうち1つまたは複数は、本明細書で説明されたチップ全体の安全な通信の様々な態様を実施するための整合性機能118も含み得る。したがって、メモリデバイス1704(複数可)は、システムの種々の論理的記憶レベルにわたって、また、種々の物理的構成要素に分散され得る。メモリデバイス1704(複数可)は、デバイスデータ112、他のタイプのコードおよび/またはデータ、ならびに各種デバイスアプリケーション1706(たとえばソフトウェアアプリケーションまたはプログラム)を記憶するためのデータ記憶機構をもたらす。たとえば、オペレーティングシステム1708は、メモリデバイス1704の内部のソフトウェア命令として維持され得、プロセッサ106によって実行され得る。
いくつかの実装形態では、SoC 1700は、音声および/またはビデオの処理システム1710も含み、これは、音声データを処理し、かつ/または、音声およびビデオのデータを、音声システム1712および/またはディスプレイシステム1714(たとえばビデオバッファまたはスマートフォンもしくはカメラの画面)まで通過させる。音声システム1712および/またはディスプレイシステム1714は、音声、ビデオ、ディスプレイ、および/または画像データを処理し、表示し、かつ/または他の方法で表現する任意のデバイスを含み得る。表示データおよび音声信号は、RF(無線周波数)リンク、Sビデオリンク、HDMI(登録商標)(高解像度マルチメディアインターフェース)、コンポジットビデオリンク、コンポーネントビデオリンク、DVI(デジタルビデオインターフェース)、アナログ音声接続、ビデオバス、またはメディアデータポート1716などの他の類似の通信リンクを通じて、音声コンポーネントおよび/または表示コンポーネントに通信され得る。いくつかの実装形態では、音声システム1712および/またはディスプレイシステム1714は、SoC 1700の外部のコンポーネントまたは個別のコンポーネントである。あるいは、ディスプレイシステム1714は、たとえば一体化されたタッチインターフェースの一部など、例示のSoC 1700の一体化されたコンポーネントであり得る。
図17のSoC 1700は、図1の装置102の例示の実装形態であり得、図1~図16を参照しながら説明された、チップ全体の安全な通信を実施することができるデバイスまたはシステムの例示の実装形態であり得る。したがって、SoC 1700はセキュリティ回路114を含むことができ、これは、個別の回路またはIPブロックであり得、あるいはプロセッサ106、電子回路1702、またはメモリデバイス1704のような、別のICチップまたはデバイスの一部として含まれ得る。したがって、示されたコンポーネントのうち1つまたは複数は、同一の半導体基板、半導体パッケージ、ICチップ、SoC、または単一のプリント基板(PCB)に組み込まれ得る。
示されるように、セキュリティ回路114は、コマンド検査機能408および/または応答生成機能410のインスタンスを含み得る整合性機能118を伴って実施される。そのため、SoC 1700は、セキュリティ回路114および整合性機能118によって、本明細書で説明されたチップ全体の安全な通信の態様を実施し得る。たとえば、コマンド検査機能408は、コンポーネントまたは宛先がコマンドペイロードを消費する前に、ホスト(たとえばプロセッサ106)から受け取られたコマンドペイロードの整合性を検証し得る。代わりに、またはそれに加えて、応答生成機能410が、コンポーネントまたは宛先によってホストに送られる応答ペイロードに含めるかまたは追加する整合性ビットを生成することにより、ホストは、応答ペイロードを消費する前に、応答ペイロードの整合性を検証することが可能になり得る。したがって、本明細書で説明されたチップ全体の安全な通信の概念は、図17のSoC 1700によって、またはこれに関連して実施され得る。
本明細書における「または」という語の使用は、文脈が違った風に規定しなければ、「包括的なまたは」すなわち「または」という語によって連結された1つまたは複数の品目の含有または適用を可能にする用語の使用と考えられてよい(たとえば、「AまたはB」という慣用句は、「A」のみ、「B」のみ、または「A」と「B」との両方が可能であるように解釈され得る)。また、本明細書で使用される、品目のリスト「のうち少なくとも1つ」を参照する慣用句は、単一の要素を含めて、それらの品目の任意の組合せを指す。たとえば、「a、b、またはcのうち少なくとも1つ」は、a、b、c、a-b、a-c、b-c、およびa-b-c、ならびに多数の同一要素を用いる任意の組合せ(たとえばa-a、a-a-a、a-a-b、a-a-c、a-b-b、a-c-c、b-b、b-b-b、b-b-c、c-c、およびc-c-c、またはa、b、およびcの任意の他の順序付け)を対象として含むことができる。さらに、添付図に表された品目および本明細書で論じられた用語は、1つまたは複数の品目または用語を指示し、したがって、この記述された説明における品目および用語の単数形または複数形が区別なく参照され得る。チップ全体の安全な通信の態様が、ある特定の機能および/または方法に特有の言語で説明されているが、添付の特許請求の範囲の主題は、必ずしも、説明された特定の機能または方法に限定されるわけではない。むしろ、特定の特徴および方法は、チップ全体の安全な通信に関する例示の実装形態として開示されたものである。
追加例
チップ全体の安全な通信の例が以下で提供される。
チップ全体の安全な通信の例が以下で提供される。
例1:相互接続によってホストに結合された少なくとも1つの宛先との安全な通信のために、システムのホストによって実施される方法であって、少なくとも1つの宛先のうちの宛先向けに要求メッセージを生成するステップと、要求メッセージの第1のデータのための第1の整合性ビットを生成するステップと、要求メッセージに第1の整合性ビットを挿入するステップと、第1のデータと第1の整合性ビットとを含む要求メッセージを、相互接続を通じて宛先に伝送するステップと、相互接続を通じて、宛先から応答メッセージを受け取るステップと、応答メッセージから第2の整合性ビットを抽出するステップと、第2の整合性ビットに基づいて応答メッセージの第2のデータの整合性を検証するステップと、応答メッセージの第2のデータの整合性検証の成功に応じて、応答メッセージの第2のデータを消費するステップとを含む方法。
例2:要求メッセージが、第1のデータを含む第1のペイロードを有するコマンドメッセージを含むか、または、応答メッセージが、第2のデータを含む第2のペイロードを有する応答メッセージを含む、先行する例のいずれかに記載の方法。
例3:第1の整合性ビットを生成するステップが、要求メッセージの第1のデータに基づいてエラー訂正コード(ECC)ビットを生成するステップを含むか、または応答メッセージの第2のデータの整合性を検証するステップが、要求メッセージのペイロードのためのECCビットとして第2の整合性ビットを復号するステップを含む、先行する例のいずれかに記載の方法。
例4:要求メッセージの第1の整合性ビットが第1のECCビットを含み、要求メッセージの第1のECCビットが、宛先によってエラー検知またはエラー訂正のためには使用されないか、あるいは応答メッセージの第2の整合性ビットが第2のECCビットを含み、応答メッセージの第2のECCビットが、ホストによってエラー検知またはエラー訂正のためには使用されない、先行する例のいずれかに記載の方法。
例5:応答メッセージの第2の整合性ビットが、ホストによって生成された要求メッセージの第1の整合性ビット、または宛先によって生成された整合性ビットを含む、先行する例に記載の方法。
例6:宛先が、要求メッセージの第1のデータとともに第1の整合性ビットを記憶するように構成されたメモリを備える、先行する例のいずれかに記載の方法。
例7:宛先が備えるメモリが、要求メッセージを受け取ることに応答して、要求メッセージの第1のデータのためのECCビットまたは巡回冗長検査(CRC)を生成し、要求メッセージの第1のデータとともにECCビットまたはCRCを記憶するように構成されている、先行する例のいずれかに記載の方法。
例8:要求メッセージの第1の整合性ビットまたは応答メッセージの第2の整合性ビットが、要求メッセージまたは応答メッセージのそれぞれのデータに基づいて判定されたパリティビット、要求メッセージまたは応答メッセージのそれぞれのデータに基づいて判定されたECCビット、あるいは要求メッセージまたは応答メッセージのそれぞれのデータに基づいて判定されたCRCビットのうち1つを含む、先行する例のいずれかに記載の方法。
例9:要求メッセージが、宛先のアドレスと、プレーンテキストビットを含む第1のデータと、要求メッセージの第1のデータに対応する第1の整合性ビットとを含むか、あるいは応答メッセージが、ホストに対する肯定応答と、プレーンテキストビットを含む第2のデータと、応答の第2のデータに対応する第2の整合性ビットとを含む、先行する例のいずれかに記載の方法。
例10:ホストを少なくとも1つの宛先に結合する相互接続が、ファブリック、バス、リンク、あるいは1つまたは複数の通信チャネルのうち1つを備える、先行する例のいずれかに記載の方法。
例11:ホストを少なくとも1つの宛先に結合する相互接続が、タイルリンク通信規格によって実施される、先行する例のいずれかに記載の方法。
例12:応答メッセージが第1の応答メッセージであり、方法が、相互接続を通じて、宛先または少なくとも1つの宛先のうち別のものから第2の応答メッセージを受け取るステップと、第2の応答メッセージから第3の整合性ビットを抽出するステップと、第3の整合性ビットに基づく第2の応答メッセージの第3のデータの整合性検証が失敗したら、第2の応答メッセージの第3のデータの整合性検証の失敗に応じて、第2の応答メッセージの第3のデータを棄却するステップとをさらに含む、先行する例のいずれかに記載の方法。
例13:第2の応答メッセージの第3のデータの検証の失敗に応じて、システムのホストまたはセキュリティエンティティに対する割込みを生成するステップをさらに含む、先行する例のいずれかに記載の方法。
例14:第2の応答メッセージの第3のデータの検証の失敗に応じて、システムの1つまたは複数のメモリのコンテンツを削除するステップと、システムの1つまたは複数の暗号キーを削除するステップと、システムのエントロピー生成ネットワークをリセットするステップと、システムのセキュリティ状態を変更するステップと、システムの電源状態を変更するステップとのうち少なくとも1つを含む、システムのセキュリティ対策を保証するステップをさらに含む、先行する例のいずれかに記載の方法。
例15:安全な通信のための回路を含む集積回路であって、安全な通信のための回路が、機能コアを有するホストと、メモリブロックまたは周辺装置ブロックを含む少なくとも1つの宛先と、ホストと少なくとも1つの宛先とを結合する少なくとも1つの相互接続と、ホストおよび少なくとも1つの宛先において具現されたそれぞれのインターフェースであって、相互接続に対して動作可能に結合され、例1から例14のいずれか1つに記載の動作を実行するように構成された、それぞれのインターフェースとを備える、集積回路。
結論
チップ全体の安全な通信を実施するためのシステムおよび方法の態様が、機能および/または方法に特有の言語で説明されているが、添付の特許請求の範囲の主題は、以前の例のうちいずれかに記載されたように、説明された特定の機能または方法に必ずしも限定されない。むしろ、特定の特徴および方法は、チップ全体の安全な通信の例示の実装形態として開示されたものであり、他の同等の機能および方法が添付の特許請求の範囲に入るように意図されている。さらに、チップ全体の安全な通信の様々な態様が説明されており、それぞれの説明された態様が、別個に、あるいは1つまたは複数の他の説明された態様に関連して、実施され得ることを理解されたい。
チップ全体の安全な通信を実施するためのシステムおよび方法の態様が、機能および/または方法に特有の言語で説明されているが、添付の特許請求の範囲の主題は、以前の例のうちいずれかに記載されたように、説明された特定の機能または方法に必ずしも限定されない。むしろ、特定の特徴および方法は、チップ全体の安全な通信の例示の実装形態として開示されたものであり、他の同等の機能および方法が添付の特許請求の範囲に入るように意図されている。さらに、チップ全体の安全な通信の様々な態様が説明されており、それぞれの説明された態様が、別個に、あるいは1つまたは複数の他の説明された態様に関連して、実施され得ることを理解されたい。
Claims (15)
- 相互接続によってシステムのホストに結合された少なくとも1つの宛先との安全な通信のために、前記ホストによって実施される方法であって、
前記少なくとも1つの宛先のうちの宛先向けに要求メッセージを生成するステップと、
前記要求メッセージの第1のデータのための第1の整合性ビットを生成するステップと、
前記要求メッセージに前記第1の整合性ビットを挿入するステップと、
前記第1のデータと前記第1の整合性ビットとを含む前記要求メッセージを、前記相互接続を通じて前記宛先に伝送するステップと、
前記相互接続を通じて、前記宛先から応答メッセージを受け取るステップと、
前記応答メッセージから第2の整合性ビットを抽出するステップと、
前記第2の整合性ビットに基づいて前記応答メッセージの第2のデータの整合性を検証するステップと、
前記応答メッセージの前記第2のデータの整合性検証の成功に応じて、前記応答メッセージの前記第2のデータを消費するステップと
を備える方法。 - 前記要求メッセージが、前記第1のデータを含む第1のペイロードを有するコマンドメッセージを含むか、または、
前記応答メッセージが、前記第2のデータを含む第2のペイロードを有する応答メッセージを含む、
請求項1に記載の方法。 - 前記第1の整合性ビットを生成するステップが、前記要求メッセージの前記第1のデータに基づいてエラー訂正コード(ECC)ビットを生成するステップを含むか、または
前記応答メッセージの前記第2のデータの整合性を検証するステップが、前記応答メッセージの前記ペイロードのためのECCビットとして前記第2の整合性ビットを復号するステップを含む、
請求項1に記載の方法。 - 前記要求メッセージの前記第1の整合性ビットが第1のECCビットを含み、前記要求メッセージの前記第1のECCビットが、前記宛先によってエラー検知またはエラー訂正のためには使用されないか、あるいは
前記応答メッセージの前記第2の整合性ビットが第2のECCビットを含み、前記応答メッセージの前記第2のECCビットが、前記ホストによってエラー検知またはエラー訂正のためには使用されない、
請求項3に記載の方法。 - 前記応答メッセージの前記第2の整合性ビットが、前記ホストによって生成された前記要求メッセージの前記第1の整合性ビットを含むか、または
前記応答メッセージの前記第2の整合性ビットが、前記宛先によって生成された整合性ビットを含む、
請求項1から4のいずれか1項に記載の方法。 - 前記宛先が、前記要求メッセージの前記第1のデータとともに前記第1の整合性ビットを記憶するように構成されたメモリを備える、請求項1から5のいずれか1項に記載の方法。
- 前記宛先が備えるメモリが、前記要求メッセージを受け取ることに応答して、
前記要求メッセージの前記第1のデータのためにECCビットまたは巡回冗長検査(CRC)を生成し、
前記要求メッセージの前記第1のデータとともに前記ECCビットまたは前記CRCを記憶する
ように構成されている、請求項1から5のいずれか1項に記載の方法。 - 前記要求メッセージの前記第1の整合性ビットまたは前記応答メッセージの前記第2の整合性ビットが、
前記要求メッセージまたは前記応答メッセージのそれぞれのデータに基づいて判定されたパリティビット、
前記要求メッセージまたは前記応答メッセージの前記それぞれのデータに基づいて判定されたECCビット、または
前記要求メッセージまたは前記応答メッセージの前記それぞれのデータに基づいて判定されたCRCビット
のうち1つを含む、請求項1から7のいずれか1項に記載の方法。 - 前記要求メッセージが、前記宛先のアドレスと、プレーンテキストビットを含む前記第1のデータと、前記要求メッセージの前記第1のデータに対応する前記第1の整合性ビットとを含むか、あるいは
前記応答メッセージが、前記ホストに対する肯定応答と、プレーンテキストビットを含む前記第2のデータと、前記応答の前記第2のデータに対応する前記第2の整合性ビットとを含む、
請求項1から8のいずれか1項に記載の方法。 - 前記ホストを前記少なくとも1つの宛先に結合する前記相互接続が、ファブリック、バス、リンク、あるいは1つまたは複数の通信チャネルのうち1つを備える、請求項1から9のいずれか1項に記載の方法。
- 前記ホストを前記少なくとも1つの宛先に結合する前記相互接続が、タイルリンク通信規格によって実施される、請求項1から10のいずれか1項に記載の方法。
- 前記応答メッセージが第1の応答メッセージであり、前記方法が、
前記相互接続を通じて、前記宛先または前記少なくとも1つの宛先のうち別のものから第2の応答メッセージを受け取るステップと、
前記第2の応答メッセージから第3の整合性ビットを抽出するステップと、
前記第3の整合性ビットに基づく前記第2の応答メッセージの第3のデータの整合性検証が失敗するステップと、
前記第2の応答メッセージの前記第3のデータの前記整合性検証の失敗に応じて、前記第2の応答メッセージの前記第3のデータを棄却するステップと
をさらに備える、請求項1から11のいずれか1項に記載の方法。 - 前記第2の応答メッセージの前記第3のデータの検証の失敗に応じて、前記システムの前記ホストまたはセキュリティエンティティに対する割込みを生成するステップをさらに含む、請求項12に記載の方法。
- 前記第2の応答メッセージの前記第3のデータの検証の失敗に応じて、
前記システムの1つまたは複数のメモリのコンテンツを削除するステップと、
前記システムの1つまたは複数の暗号キーを削除するステップと、
前記システムのエントロピー生成ネットワークをリセットするステップと、
前記システムのセキュリティ状態を変更するステップと、
前記システムの電源状態を変更するステップと
のうち少なくとも1つを含む、前記システムのセキュリティ対策を保証するステップをさらに備える、請求項12または13に記載の方法。 - 安全な通信のための回路を含む集積回路であって、前記安全な通信のための回路が、
機能コアを有するホストと、
メモリブロックまたは周辺装置ブロックを含む少なくとも1つの宛先と、
前記ホストと前記少なくとも1つの宛先とを結合する少なくとも1つの相互接続と、
前記ホストおよび前記少なくとも1つの宛先において具現されたそれぞれのインターフェースであって、前記相互接続に対して動作可能に結合され、請求項1から14のいずれか1項に記載の動作を実行するように構成された、それぞれのインターフェースと
を備える、集積回路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163173221P | 2021-04-09 | 2021-04-09 | |
US63/173,221 | 2021-04-09 | ||
PCT/US2022/071604 WO2022217260A1 (en) | 2021-04-09 | 2022-04-07 | Secure chip-wide communication |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024513159A true JP2024513159A (ja) | 2024-03-22 |
Family
ID=81392698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023557177A Pending JP2024513159A (ja) | 2021-04-09 | 2022-04-07 | チップ全体の安全な通信 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20240169098A1 (ja) |
EP (1) | EP4285264A1 (ja) |
JP (1) | JP2024513159A (ja) |
KR (1) | KR20230145167A (ja) |
CN (1) | CN116982046A (ja) |
TW (1) | TWI807766B (ja) |
WO (1) | WO2022217260A1 (ja) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10726162B2 (en) * | 2014-12-19 | 2020-07-28 | Intel Corporation | Security plugin for a system-on-a-chip platform |
US10585809B2 (en) * | 2016-04-01 | 2020-03-10 | Intel Corporation | Convolutional memory integrity |
US11743240B2 (en) * | 2019-03-08 | 2023-08-29 | Intel Corporation | Secure stream protocol for serial interconnect |
US11165794B2 (en) * | 2019-09-30 | 2021-11-02 | Infineon Technologies Ag | Alert system for controller area networks |
US20210050941A1 (en) * | 2020-07-06 | 2021-02-18 | Intel Corporation | Characterizing and margining multi-voltage signal encoding for interconnects |
US20210089388A1 (en) * | 2020-07-14 | 2021-03-25 | Intel Corporation | System, Apparatus And Method For Providing Protection Against Silent Data Corruption In A Link |
-
2022
- 2022-04-07 KR KR1020237031203A patent/KR20230145167A/ko unknown
- 2022-04-07 EP EP22719762.1A patent/EP4285264A1/en active Pending
- 2022-04-07 WO PCT/US2022/071604 patent/WO2022217260A1/en active Application Filing
- 2022-04-07 CN CN202280020810.6A patent/CN116982046A/zh active Pending
- 2022-04-07 US US18/552,602 patent/US20240169098A1/en active Pending
- 2022-04-07 JP JP2023557177A patent/JP2024513159A/ja active Pending
- 2022-04-08 TW TW111113366A patent/TWI807766B/zh active
Also Published As
Publication number | Publication date |
---|---|
TWI807766B (zh) | 2023-07-01 |
TW202240412A (zh) | 2022-10-16 |
CN116982046A (zh) | 2023-10-31 |
US20240169098A1 (en) | 2024-05-23 |
EP4285264A1 (en) | 2023-12-06 |
WO2022217260A1 (en) | 2022-10-13 |
KR20230145167A (ko) | 2023-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113557515A (zh) | 外围设备与安全电路系统的兼容性 | |
TWI807766B (zh) | 安全之全晶片通信 | |
Hély et al. | Malicious key emission via hardware Trojan against encryption system | |
TWI856849B (zh) | 安全加密協同處理器 | |
US20230177154A1 (en) | Sparse Encodings for Control Signals | |
TWI821971B (zh) | 安全加密協同處理器 | |
TWI845059B (zh) | 執行安全密碼操作之積體電路及方法 | |
US20240361923A1 (en) | Read-Only Memory (ROM) Security | |
US20240184932A1 (en) | Read-Only Memory (ROM) Security | |
US20220391540A1 (en) | Register File Protection | |
KR20230145166A (ko) | 읽기 전용 메모리(rom) 보안 | |
CN118575161A (zh) | 安全伪随机数生成器(prng)重播种 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231109 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231109 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240925 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20241008 |