(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024024576
(43)【公開日】2024-02-22
(54)【発明の名称】物理的に安全なメモリパーティショニング
(51)【国際特許分類】
G06F 12/14 20060101AFI20240215BHJP
G06F 21/64 20130101ALI20240215BHJP
G06F 11/10 20060101ALI20240215BHJP
【FI】
G06F12/14 510D
G06F21/64
G06F11/10 648
【審査請求】有
【請求項の数】14
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023019801
(22)【出願日】2023-02-13
(31)【優先権主張番号】17/883,651
(32)【優先日】2022-08-09
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】512167426
【氏名又は名称】華邦電子股▲ふん▼有限公司
【氏名又は名称原語表記】Winbond Electronics Corp.
(74)【代理人】
【識別番号】100204490
【弁理士】
【氏名又は名称】三上 葉子
(72)【発明者】
【氏名】アドモン イッテー
(72)【発明者】
【氏名】タシェル ニル
(72)【発明者】
【氏名】カルズニー ウリ
【テーマコード(参考)】
5B017
【Fターム(参考)】
5B017AA01
5B017BA01
5B017BB02
5B017CA01
(57)【要約】 (修正有)
【課題】許可された者のみがセキュアデータにアクセスすることを保証する、物理的に安全なメモリパーティショニングを実現するメモリ装置及びメモリアクセス方法を提供する。
【解決手段】セキュアメモリ装置において、メモリは、少なくとも第1のアドレス範囲が割り当てられたセキュアストレージパーティションと、第1のアドレス範囲から切り離された第2のアドレス範囲が割り当てられたプレーンストレージパーティションと、を含む。セキュアアクセス回路は、第1のアドレス範囲内のアドレスを生成することでセキュアストレージパーティションにアクセスする。プレーンアクセス回路は、第2のアドレス範囲内のアドレスを生成することでプレーンストレージパーティションにアクセスする。保護ハードウェアは、セキュアストレージパーティションに割り当てられた第1のアドレス範囲にプレーンアクセス回路がアクセスできないようにする。
【選択図】
図1
【特許請求の範囲】
【請求項1】
少なくとも(i)第1のアドレス範囲が割り当てられたセキュアストレージパーティションと、(ii)第1のアドレス範囲から切り離された第2のアドレス範囲が割り当てられたプレーンストレージパーティションと、を備えるメモリと、
前記第1のアドレス範囲内のアドレスを生成することによって前記セキュアストレージパーティションにアクセスするように構成されたセキュアアクセス回路と、
前記第2のアドレス範囲内のアドレスを生成することによって前記プレーンストレージパーティションにアクセスするように構成されたプレーンアクセス回路と、
前記セキュアストレージパーティションに割り当てられた前記第1のアドレス範囲に前記プレーンアクセス回路がアクセスするのを防ぐように構成された保護ハードウェアと、
を備えるメモリ装置。
【請求項2】
前記保護ハードウェアは、前記プレーンアクセス回路が前記セキュアストレージパーティションに割り当てられた前記第1のアドレス範囲内のアドレスを生成することを防止するように構成される、請求項1に記載のメモリ装置。
【請求項3】
前記第1のアドレス範囲内のアドレスは、各第1のビット値に設定された1つまたは複数の指定のビットを有し、
第2のアドレス範囲内のアドレスは、各前記第1のビット値と反対の、各第2のビット値に設定された1つまたは複数の指定のビットを有し、
前記保護ハードウェアは、プレーンアクセス回路のアドレスバス上の各ラインを各前記第2のビット値にハードワイヤリングすることを含み、それによって、前記プレーンアクセス回路が前記セキュアストレージパーティションに割り当てられた前記第1のアドレス範囲内のアドレスを生成するのを防ぐ、請求項1に記載のメモリ装置。
【請求項4】
前記第1のアドレス範囲内の任意のアドレスと前記第2のアドレス範囲内の任意のアドレスとのハミング距離が1より大きい、請求項1に記載のメモリ装置。
【請求項5】
前記保護ハードウェアは、前記セキュアストレージパーティションにアクセスするときに専用制御信号をアサートするように構成され、前記メモリは、前記専用制御信号がアサートされている間だけ、前記セキュアストレージパーティションへのアクセスを許可するように構成される、請求項1に記載のメモリ装置。
【請求項6】
前記セキュアアクセス回路と前記プレーンアクセス回路の一方または両方が、
(i)データの少なくとも一部と、(ii)指定されたアドレスの少なくとも一部の両方に対して、エラー検出コード(EDC)またはエラー訂正コード(ECC)を計算することにより、前記指定されたアドレスにデータを格納し、両方のデータ及びEDCまたはECCを格納し、
前記指定されたアドレスからデータを読み取る際に、前記EDCまたは前記ECCを検証し、
前記EDCまたは前記ECCによって検出されたエラーに応答して、障害または攻撃を特定し、前記データを出力として提供することを控えるように構成された、請求項1に記載のメモリ装置。
【請求項7】
前記EDCは、巡回冗長検査(CRC)コードであることを特徴とする、請求項6に記載のメモリ装置。
【請求項8】
少なくとも(i)第1のアドレス範囲が割り当てられたセキュアストレージパーティションと、(ii)前記第1のアドレス範囲から切り離された第2のアドレス範囲が割り当てられたプレーンストレージパーティションと、を含むメモリで、第1のアドレス範囲内のアドレスを生成することによりセキュアアクセス回路を用いて前記セキュアストレージパーティションにアクセスすることと、第2のアドレス範囲内のアドレスを生成することによりプレーンアクセス回路を用いて前記プレーンストレージパーティションにアクセスすることと、を含み、
前記セキュアストレージパーティションに割り当てられた第1のアドレス範囲に前記プレーンアクセス回路がアクセスするのを防ぐ、メモリアクセス方法。
【請求項9】
前記第1のアドレス範囲に前記プレーンアクセス回路がアクセスするのを防止することは、前記プレーンアクセス回路が前記セキュアストレージパーティションに割り当てられた第1のアドレス範囲内のアドレスを生成することを防止することを含む、請求項8に記載の方法。
【請求項10】
第1のアドレス範囲内のアドレスは、各第1のビット値に設定された1つまたは複数の指定のビットを有し、
第2のアドレス範囲内のアドレスは、各第1のビット値と反対の、各第2のビット値に設定された1つまたは複数の指定のビットを有し、
前記プレーンアクセス回路のアドレスバス上の各ラインは、各第2のビット値にハードワイヤリングされ、それによって前記プレーンアクセス回路が前記セキュアストレージパーティションに割り当てられた前記第1のアドレス範囲内のアドレスを生成するのを防ぐ、請求項8に記載の方法。
【請求項11】
前記第1のアドレス範囲内の任意のアドレスと前記第2のアドレス範囲内の任意のアドレスとのハミング距離が1より大きい、請求項8に記載の方法。
【請求項12】
前記プレーンアクセス回路が第1のアドレス範囲にアクセスするのを防ぐことは、前記セキュアストレージパーティションにアクセスするときに専用制御信号をアサートし、前記専用制御信号がアサートされている間だけ、前記セキュアストレージパーティションへのアクセスを許可することを含む、請求項8に記載の方法。
【請求項13】
前記セキュアストレージパーティションと前記プレーンストレージパーティションの一方または両方へのアクセスが、
(i)データの少なくとも一部と、(ii)前記指定されたアドレスの少なくとも一部の両方に対して、エラー検出コード(EDC)またはエラー訂正コード(ECC)を計算することにより、前記指定されたアドレスにデータを格納し、前記データ及びEDCまたはECCの両方を格納し、
前記指定されたアドレスからデータを読み取る際に、前記EDCまたは前記ECCを検証し、
前記EDCまたは前記ECCによって検出されたエラーに応答して、障害または攻撃を特定し、前記データを出力として提供することを控えることと、
を含む、請求項8に記載の方法。
【請求項14】
前記EDCは、巡回冗長検査(CRC)コードであることを特徴とする、請求項13に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、安全なデータ格納に関し、特に、物理的に安全なメモリパーティショニングに関する。
【背景技術】
【0002】
さまざまなアプリケーションやホストシステムで、セキュアデータとプレーンデータの両方を格納するためにメモリ装置が使用される。たとえば、メモ装置のセクションは、暗号化キーなどの機密データを格納するために保留され得る。装置がフォールトインジェクション攻撃を受けた場合でも、許可された者のみがセキュアデータにアクセスできるようにすることが重要である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明は、許可された者のみがセキュアデータにアクセスすることを保証するために、物理的に安全なメモリパーティショニングを提供する。
【課題を解決するための手段】
【0004】
本明細書で説明する本発明の実施形態は、メモリ、セキュアアクセス回路、プレーンアクセス回路、及び保護ハードウェアを含むメモリ装置を提供する。メモリは、少なくとも、第1のアドレス範囲が割り当てられたセキュアストレージパーティションと、第1のアドレス範囲から切り離された第2のアドレス範囲が割り当てられたプレーンストレージパーティションとを含む。セキュアアクセス回路は、第1のアドレス範囲内のアドレスを生成することによってセキュアストレージパーティションにアクセスするように構成される。プレーンアクセス回路は、第2のアドレス範囲内のアドレスを生成することによって、プレーンストレージパーティションにアクセスするように構成される。保護ハードウェアは、プレーンアクセス回路がセキュアストレージパーティションに割り当てられた第1のアドレス範囲にアクセスできないように構成される。
【0005】
本明細書に記載される実施形態によれば、メモリアクセス方法がさらに提供される。方法は、少なくとも(i)第1のアドレス範囲が割り当てられたセキュアストレージパーティションと、(ii)前記第1のアドレス範囲から切り離された第2のアドレス範囲が割り当てられたプレーンストレージパーティションと、を含むメモリで、第1のアドレス範囲内のアドレスを生成することによりセキュアアクセス回路を用いてセキュアストレージパーティションにアクセスすることと、第2のアドレス範囲内のアドレスを生成することによりプレーンアクセス回路を用いてプレーンストレージパーティションにアクセスすることと、を含み、セキュアストレージパーティションに割り当てられた第1のアドレス範囲にプレーンアクセス回路がアクセスするのを防ぐことと、を含む。
【発明の効果】
【0006】
まとめると、本発明は、許可された者のみがセキュアデータにアクセスすることを保証するために、物理的に安全なメモリパーティショニングを提供する。
【図面の簡単な説明】
【0007】
本発明は、その実施形態の以下の詳細な説明を図面と併せて読むことにより、より完全に理解することができる。
【
図1】本発明の一実施形態による、セキュアメモリ装置を概略的に示すブロック図である。
【
図2】本発明の一実施形態による、巡回冗長検査(CRC)を使用したセキュアデータ格納を概略的に示す図である。
【
図3】本発明の一実施形態による、セキュアデータ格納のための方法を概略的に示すフローチャートである。
【発明を実施するための形態】
【0008】
概要
【0009】
本明細書で説明する本発明の実施形態は、セキュアデータとプレーンデータの両方を同じメモリ装置に格納するための改善された技術を提供する。
【0010】
開示された実施形態では、セキュアメモリ装置は、1つまたは複数のメモリ領域がセキュアストレージパーティションとして指定され、1つまたは複数の領域がプレーンストレージパーティションとして指定されるメモリを含む。各パーティションには、それぞれのアドレス範囲が割り当てられる。セキュアメモリ装置は、さらに、セキュアストレージパーティションにアクセスするように構成された、すなわち、対応する範囲内のアドレスを生成するように構成された、少なくとも1つのセキュアアクセス回路と、プレーンストレージパーティションにアクセスするように構成された、少なくとも1つのプレーンアクセス回路と、を含む。
【0011】
切り離されたアドレス範囲とパーティショニングされたメモリアクセス回路を使用することで、セキュアデータとプレーンデータをある程度論理的に分離することができる。それにもかかわらず、そのような構成は、物理的な攻撃、例えば、フォールト注入や電源グリッチに対して依然として脆弱であり、プレーンアクセス回路が、不注意にセキュアストレージパーティションにアクセスする可能性があり、つまり、セキュアストレージパーティションのアドレス範囲内のアドレスを生成する可能性がある。
【0012】
本発明のいくつかの実施形態において、セキュアメモリ装置は、セキュアメモリデバイスは、セキュアストレージパーティションにプレーンアクセス回路がアクセスするのを防ぐハードウェア実装手段を備える。例えば、そのような保護ハードウェア(
図1で42と示す)は、プレーンアクセス回路がセキュアストレージパーティションのアドレス範囲に含まれるアドレスを生成するのを防ぐことができる。説明を簡単にするために、以下の説明は、主に、単一のセキュアストレージパーティション、単一のプレーンストレージパーティション、単一のセキュアアクセス回路、及び単一のプレーンアクセス回路を備える装置に言及する。しかしながら、開示された技術は、この構成に限定されず、任意の適切な数のセキュアストレージパーティション、プレーンストレージパーティション、セキュアアクセス回路、及びプレーンアクセス回路を使用することができる。
【0013】
いくつかの実施形態において、メモリは、「下位」アドレス範囲と「上位」アドレス範囲にパーティショニングされる。下位アドレス範囲は、所定の数の最上位ビット(Most Significant Bit;MSB)が「0」であるアドレスを含む。上位アドレス範囲は、これらのMSBの1つまたは複数が下位アドレス範囲とは異なる値を有するアドレスで構成される。このパーティショニングには、任意の適切な数のMSB、例えば単一のMSBを使用することができる。下位アドレス範囲は、プレーンストレージパーティションとして指定され、上位アドレス範囲は、セキュアストレージパーティションとして指定される。
【0014】
プレーンアクセス回路が上位アドレス範囲内のアドレスを生成するのを防ぐために、プレーンアクセス回路のアドレスバス上の所定の数MSBが、論理「0」に対応する電圧にハードワイヤリングされる。この保護手段を使用すると、物理的な攻撃やハードウェアの障害に起因して、プレーンアクセス回路がセキュアストレージパーティションに属するアドレスを生成することがなくなる。
【0015】
いくつかの実施形態において、セキュアストレージパーティションとプレーンストレージパーティションのアドレス範囲は、セキュアストレージパーティション内の任意のアドレスとプレーンストレージパーティション内の任意のアドレスとのハミング距離が1よりも大きくなるように割り当てられる。この条件は、切り離されたアドレス範囲を単に割り当てるよりも厳密であり、それらの間の適切なオフセットが要求される。一例では、下位アドレス範囲は、「0」に等しい4つのMSBを有するアドレスを含み、上位アドレス範囲は、4つのMSBが0x3(または0x6、または少なくとも2つの「1」を含む任意の他の4ビット値)に等しいアドレスを含む。
【0016】
いくつかの実施形態において、追加の保護手段は、セキュアストレージパーティションにアクセスするときにセキュアアクセス回路がアサートする専用制御信号を含む。メモリアレイは、専用制御信号を監視する回路を含み、信号がアサートされた場合にのみセキュアストレージ パーティションへのアクセスを許可する。プレーンアクセス回路はこの信号をサポートしないため、セキュアストレージパーティションにアクセスすることができない。
【0017】
いくつかの実施形態において、メモリラインにデータを書き込むとき、セキュアアクセス回路及び/またはプレーンアクセス回路は、巡回冗長検査(CRC)コードやエラー訂正コード(ECC)等のエラー検出コード(EDC)とともにデータを書き込む。メモリラインからデータを読み取るとき、メモリアクセス回路は、読み取ったデータに基づいて予想されるEDCを計算し、それをメモリラインに格納されているEDCと比較する。セキュアストレージパーティションへの不正アクセスをさらにブロックするために、メモリアクセス回路は、データだけでなく、アドレスの少なくとも一部についてもEDCを計算し、EDCが一致する場合にのみデータをユーザに返す。このように、物理的な攻撃またはハードウェア障害がセキュアストレージパーティションのメモリラインへの書き込みに成功した場合でも、予期されたEDCが格納されたEDCと一致しないため、データが読み取られるときに不正な書き込みが検出される可能性が高くなる。
【0018】
いくつかの実施形態において、セキュアメモリ装置は、公開された「ブロッキングポイント」を2つ以上備えているため、物理的な攻撃をブロックし、非常に高い確率でハードウェアの障害を緩和する。
【0019】
ここで説明する技術は、セキュアストレージパーティションへの不正アクセスを防止するのに非常に効果的である。開示された技術は、物理的な攻撃とハードウェア障害の両方に対して有効であるため、自動車システム等のいくつかの使用事例では、セキュリティと安全性の両方を強化する。強化された安全性とセキュリティにより、メモリ装置リソース(電源、チャージポンプ、センスアンプ、制御ロジック等)をプレーンパーティションとセキュアパーティション間で共有することが容易になる。
【0020】
システムの説明
【0021】
図1は、本発明の一実施形態による、セキュアメモリ装置を概略的に示すブロック図である。装置20は、単に「メモリ」ともいうメモリアレイ24を備える。メモリ24は、例えば、フラッシュメモリ等の不揮発性メモリ、ランダムアクセスメモリ(RAM)等の揮発性メモリ、または任意の他の適切なメモリタイプを含んでもよい。
【0022】
この例では、セキュアストレージパーティション28とプレーンストレージパーティション32 (それぞれ、単に「セキュアパーティション」及び「プレーンパーティション」ともいう)という2つのメモリパーティションが定義される。セキュアパーティション28は、機密情報、例えば、セキュリティキー、パスワードまたはその他の資格情報、クレジットカード番号等の個人情報、または何らかの理由で機密または機密であると見なされるその他の適切な情報を格納するために使用される。セキュアパーティション28へのアクセスは、制限されるか、または暗号化または認証等の何らかの暗号操作を必要としてもよい。プレーンパーティション32は、任意の適切な情報、典型的には、セキュアパーティション28に格納されている情報よりも安全性や機密性が低いと見なされる情報を格納するために使用することができる。
【0023】
セキュアパーティション28及びプレーンパーティション32には、メモリ 24のアドレス空間内のアドレス範囲がそれぞれ割り当てられる。アドレス範囲は、同じサイズでも異なるサイズでもよく、それぞれが連続していても連続していなくてもよく、それぞれが任意の適切なアドレスを含んでいてもよい。セキュアパーティション28及びプレーンパーティション32に割り当てられたアドレス範囲は、重複しておらず、すなわち切り離されたことである。
【0024】
装置20は、セキュアパーティション28内のデータにアクセス(読み取り及び書き込み)するためのセキュアアクセス回路36と、プレーンパーティション32内のデータにアクセス(読み取りおよび書き込み)するためのプレーンアクセス回路40とをさらに備える。
【0025】
各メモリアクセス回路(セキュアアクセス回路36またはプレーンアクセス回路40)は、データバス及びアドレスバスを使用してメモリ24にアクセス(読み取りおよび/及び書き込み)する。典型的な書き込み動作では、メモリアクセス回路(セキュアまたはプレーン)は、メモリ24に書き込むためのデータを受信する。メモリアクセス回路は、適切なパーティション(セキュアパーティション28またはプレーンパーティション32)のアドレス範囲内のアドレスを生成し、アドレスバス上のアドレス及びデータバス上のデータを有する書き込みコマンドをメモリ24に送信する。典型的な読み取り動作では、メモリアクセス回路は、メモリ24からデータを読み出す要求を受信する。メモリアクセス回路は、適切なパーティションのアドレス範囲内のアドレスを生成し、アドレスバス上のアドレスと共に読み出しコマンドをメモリ24に送信する。これに応答して、メモリ24は要求されたデータをデータバス上に返す。
【0026】
回路36及び40は、例えば、メモリアクセス動作を実行するデータパスまたは任意の他の適切な回路を含んでもよい。回路36及び40は、メモリデバイス20にデータを格納する任意の適切なホスト、アプリケーション、または他のエンティティにサービスを提供することができる。
【0027】
メモリ24ならびに回路36及び40を含むセキュアメモリ装置20の様々な構成要素は、典型的には、単一の半導体デバイスパッケージ、例えば、単一のダイ上または異なるダイ上に統合される。セキュアメモリ装置20は、例えば、コンピュータ、自動車用電子ユニット、またはその他の任意の適切なホストシステムにインストールすることができる。
【0028】
図1に示されるセキュアメモリ装置20の構成は、単に概念を明確にするために選択された例示的な構成である。代替的な実施形態では、任意の他の適切な構成を使用することができる。例えば、前掲のように、メモリ24は、任意の適切な数のセキュアストレージパーティション28及びプレーンストレージパーティション32を含んでもよく、装置20は、任意の適切な数のセキュアアクセス回路36及びプレーンアクセス回路40を含んでもよい。
【0029】
様々な実施形態において、セキュアメモリ装置20は、ハードウェアを使用して、例えば、1つまたは複数の特定用途向け集積回路(ASIC)及び/またはフィールドプログラマブルゲートアレイ(FPGA)を使用して実施することができる。メモリ24は、例えばRAMやフラッシュ等の任意の適切なタイプの揮発性または不揮発性メモリを含んでもよい。
【0030】
セキュアストレージパーティションへのプレーンアクセス回路のアクセスの防止
【0031】
様々な実施形態において、セキュアメモリ装置20は、プレーンアクセス回路40がセキュアストレージパーティション28のアドレス範囲に属するアドレスを生成するのを防ぐためのさまざまなハードウェア実施メカニズムを備えてもよい。これらのハードウェアメカニズムは、「ブロッキングポイント」とも呼ばれる。
【0032】
プレーンアクセス回路のアドレスバスのバスラインのハードワイヤリングについて。
【0033】
図1に見られる実施形態では、プレーンパーティション32には、「下位」アドレス範囲が割り当てられ、セキュアパーティション28には「上位」アドレス範囲が割り当てられる。下位アドレス範囲は、所定の数のMSB(1つ以上のMSB)が「0」であるアドレスを含む。上位アドレス範囲は、所定の数のMSBが「1」であるアドレスを含む。
【0034】
また、プレーンパーティション32のアドレス範囲で「0」に設定されたMSBに対応する、回路40のアドレスバスのラインの所定のサブセットは、論理「0」に対応する電圧にハードワイヤリングされる。使用されているロジックに応じて、この電圧は、例えば、回路40がこれらのバスラインに送信しようとする電圧に関係なく、例えば、電源電圧Vcc、接地、またはMSBを強制的に「0」にする任意の他の適切な電圧であってよい。アドレスバスMSBを「0」にハードワイヤリングすることにより、プレーンアクセス回路40が高アドレス範囲(セキュアパーティション28のアドレス範囲)のアドレスを生成するのを防止する。
【0035】
一実施形態では、プレーンパーティション32のアドレス範囲は 00000000h~00FFFFFFhであり、16MBのプレーンアクセスメモリを提供する。セキュアパーティション28のアドレス範囲は01000000h以上である。この例では、「0」にハードワイヤリングされた所定のMSB数は2である。あるいは、他の適切なアドレス範囲および他の適切な数のMSBを使用してもよい。
【0036】
より一般的には、代替的な実施形態では、下位アドレス範囲をセキュアパーティションに割り当て、上位アドレス範囲をプレーンパーティション32に割り当てることができる。さらに別の方法として、セキュアパーティションとプレーンパーティションのアドレス範囲を区別するビットは、必ずしもアドレスのMSBである必要はない。したがって、より一般的に言えば、セキュアパーティションのアドレス範囲内のアドレスは、各第1のビット値に設定された1つまたは複数の所定のビットを有する。プレーンパーティション32のアドレス範囲内のアドレスは、それぞれの第1のビット値と反対の、各第2のビット値に設定された1つまたは複数の指定のビットを有する。装置20は、プレーンアクセス回路のアドレスバス上の1つまたは複数の指定のビットを各第2のビット値に強制する保護ハードウェア42を備える。
【0037】
プレーンパーティションとセキュアパーティションのアドレス範囲間で大きなハミング距離を維持することについて。
【0038】
いくつかの実施形態において、セキュアパーティション28及びプレーンパーティション32のアドレス範囲は、セキュアパーティション28内の任意のアドレスとプレーンパーティション32内の任意のアドレスとのハミング距離が1より大きくなるように割り当てられる。2つのアドレス間のハミング距離は、アドレスが異なる対応するビットの数として定義される。ハミング距離が1より大きい場合において、攻撃またはハードウェア障害が発生したとき、プレーンパーティション32内のアドレスをセキュアパーティション28内のアドレスに変更するには、複数のビットを反転する必要がある。この状態は、そのようなイベントの可能性を大幅に低減する。
【0039】
1つの例示的な実施形態では、32ビットアドレスを使用する場合、プレーンパーティション32には、アドレスの4つのMSB(ビット[31:28])が「0」であるアドレス範囲が割り当てられる。大きなハミング距離を達成するために、セキュアパーティション28には、4つのMSBが0x3(「0011」)であるアドレス範囲が割り当てられる。別の実施形態では、セキュアパーティション28には、4つのMSBが0x6(「0110」)であるアドレス範囲が割り当てられる。さらに代替的に、少なくとも2つの「1」を含む任意の他の4ビット値を使用してもよい。
【0040】
安全な格納を示す専用制御信号について。
【0041】
いくつかの実施形態において、保護ハードウェア42は、セキュアストレージパーティション28にアクセスするときに、
図1で「SEC」と示される専用制御信号をアサートするように構成され、メモリ24は、専用制御信号「SEC」がアサートされている間だけ、セキュアストレージパーティションへのアクセスを許可するように構成される。より詳細には、セキュアアクセス回路 36は、セキュアパーティション28にアクセスしている間、専用制御信号「SEC」をアサートする。メモリ24は、「SEC」制御信号を監視する回路を含み、信号がアサートされた場合にのみセキュアパーティション28へのアクセスを許可する。プレーンアクセス回路40は、「SEC」制御信号をサポートせず、それをアサートすることができない。したがって、物理的な攻撃またはハードウェアの障害によってプレーンアクセス回路40がセキュアパーティション28のアドレス範囲内のアドレスを生成することに成功した場合でも、「SEC」制御信号がアサートされていないので、メモリ24内の回路はセキュアパーティション28へのアクセスを拒否する。
【0042】
EDC(例えば、CRC)計算にアドレスを含めることについて。
【0043】
いくつかの実施形態において、メモリラインにデータを書き込むとき、書き込みメモリアクセス回路(セキュアアクセス回路36またはプレーンアクセス回路40)は、巡回冗長検査(CRC)またはエラー訂正コード(ECC)等のエラー検出コード(EDC)とともにメモリ 24にデータを書き込む。メモリラインからデータを読み取るとき、メモリアクセス回路は、読み取ったデータに基づいて予想されるEDCを計算し、それをメモリラインに格納されているEDCと比較する。予想されるEDCが格納されたEDCと一致する場合にのみ、読み取り操作は正当であると見なされる。いくつかの実施形態において、セキュアパーティション28への不正アクセスをさらにブロックするために、メモリアクセス回路(36または40)は、データ(またはデータの少なくとも一部)だけでなく、アドレスの少なくとも一部についてもEDCを計算する。
【0044】
図2は、本発明の一実施形態による、CRCを使用したセキュアデータ格納を概略的に示す図である。この図は、例えばセキュアパーティション28内の複数のメモリラインを示している。各メモリラインは、各データ領域44及びそ各CRC領域48を含む。メモリラインのデータ44とメモリラインのアドレスの両方に対して(例えば、回路36によって)指定のメモリラインのCRC48が計算される。
【0045】
このメカニズムを利用すると、物理的攻撃またはハードウェア障害によりプレーンアクセス回路40がセキュアパーティション28内のメモリラインに書き込むことに成功した場合でも、予期されたEDCが格納されたEDCと一致しないため、データが読み取られるときに不正な書き込みが(上位い確率で)検出される。
【0046】
図3は、本発明の一実施形態による、セキュアメモリ装置20におけるセキュアデータ格納のための方法を概略的に示すフローチャートである。
図3の例は、一例として書き込み動作に言及している。読み取り操作も同様の方法で実行される。
【0047】
この方法は、適切なアドレス範囲がプレーンパーティション32とセキュアパーティション28に割り当てられるアドレス割り当てステージ52から開始される。データ入力ステージ56で、セキュアメモリ装置20は、メモリ24に格納するためのデータを受信する。確認ステージ60で、セキュアメモリ装置20は、データがプレーンストレージまたはセキュアストレージへの格納を意図しているかどうかを確認する。
【0048】
データがプレーンパーティション32に格納される場合、セキュアメモリ装置20は、プレーン割り当てステージ64で、格納動作をプレーンアクセス回路40に割り当てる。データがセキュアパーティション28に格納される場合、セキュアメモリ装置20は、安全な割り当て段階68で、格納動作をセキュアアクセス回路36に割り当てる。
【0049】
アドレス生成ステージ72において、割り当てられたメモリアクセス回路は、データが格納されるアドレスを生成する。CRC計算ステージ76で、メモリアクセス回路は、データとアドレスの両方についてCRCを計算する。格納ステージ80において、メモリアクセス回路は、生成されたアドレスを有するメモリラインにデータ及びCRCを格納する。
【0050】
図3の方法フローは、単に概念を明確にするために選択されたフローの例である。代替的な実施形態では、他の適切な任意のフローを使用することができる。
【0051】
図3は、いくつかの実施形態において、セキュアメモリ装置20が、2つ以上の開示された「ブロッキングポイント」(プレーンアクセス回路のアドレスバスラインをハードワイヤリングし、プレーンパーティションとセキュアパーティションのアドレス範囲の間に大きなハミング距離を維持し、セキュアパーティションへのアクセスを示す専用の制御信号を使用し、EDC計算にアドレスを含める)を備えることを示す。複数の「ブロッキングポイント」を使用すると、物理的な攻撃やハードウェアの障害によってセキュアパーティションのアドレス範囲内でプレーンアクセス回路がアドレスを生成する可能性がさらに下位くなる。様々な実施形態において、これらの「ブロッキングポイント」の様々なサブセット、及び/または他の適切な「ブロッキングポイント」を使用することができる。
【0052】
上記の実施形態は例として挙げられたものであり、本発明は上記で特に示され説明されたものに限定されないことを理解するべきである。むしろ、本発明の範囲には、上記の各種の特徴の組み合わせ及び副組み合わせの両方、ならびに上記の説明を読んで当業者が想到し得る本明細書には開示されていないそれらの変形及び修正が含まれる。相互参照により本特許出願に組み込まれている文書は、本明細書で明示的または暗示的に行われている定義と矛盾する形でこれらの組み込まれた文書で定義され本明細書の定義を考慮する必要がある用語の範囲を除いて、出願の不可欠な部分と見なされる。
【産業上の利用可能性】
【0053】
本発明の物理的に安全なメモリパーティショニングは、データストレージを保護するための技術に適用することができる。
【符号の説明】
【0054】
20: セキュアメモリ装置
24: メモリ
28: セキュアストレージパーティション
32: プレーンストレージパーティション
36: セキュアアクセス回路
40: プレーンアクセス回路
44: 各データ領域
48: 各CRC領域
52: アドレス割り当てステージ
56: データ入力ステージ
60: 確認ステージ
64: プレーン割り当てステージ
68: セキュア割り当てステージ
72: アドレス生成ステージ
76: 循環ステージ
80: 格納ステージ
【外国語明細書】