JP2022512051A - メモリ完全性チェックのための完全性ツリー - Google Patents
メモリ完全性チェックのための完全性ツリー Download PDFInfo
- Publication number
- JP2022512051A JP2022512051A JP2021514545A JP2021514545A JP2022512051A JP 2022512051 A JP2022512051 A JP 2022512051A JP 2021514545 A JP2021514545 A JP 2021514545A JP 2021514545 A JP2021514545 A JP 2021514545A JP 2022512051 A JP2022512051 A JP 2022512051A
- Authority
- JP
- Japan
- Prior art keywords
- integrity
- node
- memory
- branch
- entry
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 264
- 238000000034 method Methods 0.000 claims description 48
- 238000012795 verification Methods 0.000 claims description 23
- 238000010200 validation analysis Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 230000001960 triggered effect Effects 0.000 claims description 4
- 240000007594 Oryza sativa Species 0.000 claims 1
- 235000007164 Oryza sativa Nutrition 0.000 claims 1
- 235000009566 rice Nutrition 0.000 claims 1
- 238000004364 calculation method Methods 0.000 description 11
- 230000006399 behavior Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 101100480515 Caenorhabditis elegans tag-76 gene Proteins 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 239000002245 particle Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 101100084165 Caenorhabditis elegans prdx-2 gene Proteins 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 101150047061 tag-72 gene Proteins 0.000 description 1
- 235000021476 total parenteral nutrition Nutrition 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000010792 warming 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
Abstract
Description
メモリ中に記憶されたデータへのアクセスを制御するためのメモリ・アクセス回路と、複数のノードを備える完全性ツリーを使用してメモリ中に記憶されたデータの完全性を検証するためのメモリ完全性チェック回路とを備える装置であって、複数のノードは、メモリ中に記憶されたデータの対応するアドレス・ブロックの検証のための少なくとも1つの完全性タグを備える少なくとも1つのリーフ・エントリを備える少なくとも1つのリーフ・ノードと、少なくとも1つのブランチ・エントリを備える少なくとも1つのブランチ・ノードであって、ブランチ・ノードの子ノードのアドレスを指定するためのポインタであって、子ノードは、リーフ・ノードであるか、又は完全性ツリーのさらなるブランチ・ノードである、ポインタと、子ノードの対応するブランチ・エントリ又はリーフ・エントリの検証のための少なくとも1つの完全性チェック値とを備える少なくとも1つのブランチ・ノードとを含む、装置を提供する。
- 親ノードと子ノードとの間の接続は、ポインタ関連付けを通して行われ、典型的なn進ツリーの場合に行われるようなインデックス演算を使用しない。
- テーブル中のポインタはヌルであり、したがって、必ずしも完全なツリーであるとは限らない構造を形成し得る。
- ツリー中の各ブランチ・レベルは、前の「アリティ」とは異なるアリティを有し得る(及び一般に有することになる)。
1.タグ61、56は、メモリ・チャンク(一般に、キャッシュ・ライン)の真正性を検証することを可能にする値である。タグ計算部分で説明されるようにメモリ・チャンクによってタグを計算するための様々な方法がある。
2.タグ・グループ60、62は、連続するメモリ・チャンク(一般に、キャッシュ・ライン)内に位置するタグの集合である。
3.リーフ・ページ46は、複数のタグ・グループ60(リーフ・エントリ)を含んでいる。
a.タグ・グループ60中の各タグ61は、メモリのチャンクを保護する。
b.リーフ・ページ中のいくつかのタグ・グループ60は、タグ・サイズ、リーフ・ページ・サイズ、及びタグ・グループ・サイズによって定義される。
i.一実例として、4KBのリーフ・ページは、64個のタグ・グループを含み得、ここで、各グループは、それぞれ64ビットの8つのタグを含んでおり、各タグは、64Bのメモリを保護し、したがって、リーフ・ページ全体は、メモリの32KBのブロックを保護する。
4.ブランチ・ページ44は、複数のブランチ・エントリ62を含んでおり、ここで、各エントリ62は、以下のパラメータを含む。
a.ネクスト・ポインタ(NextPointer)58。これは、リーフ・ページ又は次のレベルのブランチ・ページのいずれかをポイントし得る。
b.タグ・グループ56。各タグがネクスト・ポインタによってポイントされるページ中の対応するエントリを保護するタグのグループ(完全性チェック値、たとえば、ハッシュ、MAC、又はカウンタ)。
i.ネクスト・ポインタ58がリーフ・ページ46をポイントする場合、タグは、リーフ・ページ46中の対応するタグ・グループ60を保護する。
ii.ネクスト・ポインタ58がブランチ・ページ44をポイントする場合、タグは、ブランチ・ページ中のネクスト・ポインタ58とタグ・グループ62とから構成されるエントリ62を保護する。
5.ルート・テーブル38は、レベル0のブランチ・ページ(レベル0は単一のページを含む)をポイントするベース・ポインタ64と単一のタグ・グループ62とを含んでおり、ここで、各タグは、レベル0のブランチ・ページ中の対応するエントリ62を保護する。
a.ルート・テーブル38は、チップ境界内に常駐し、NPT全体のための信用の起点として働く。
- リーフ・ページは、64個のタグ・グループを含み、ここで、各グループは8つのタグを記憶する。
- レベル3のブランチ・ページは、8つのエントリを含み、ここで、各エントリは、64個のタグとポインタとを含む。
- レベル2のブランチ・ページは、6を含む。
- 4エントリ、ここで、各エントリは、8つのタグとポインタとを含む。
- レベル1のブランチ・ページは、8つのエントリを含み、ここで、各エントリは、64個のタグとポインタとを含む。
- レベル0のブランチ・ページは、64個のエントリを含み、ここで、各エントリは、8つのタグとポインタとを含む。
- オンチップ・ルート・テーブルは、ベース・ポインタと64個のタグとを含む。
1.キャッシュ・ライン・タグを計算するときに追加の入力として使用されるナンス(1回だけ使用される番号(Number used Once))値70。ナンスは、タグのフレッシュネスを保証することが可能で、単調カウンタとして実装され得る。変形形態2では、カウンタの完全性のみがNPTによって保護される必要がある。
2.各タグが対応するキャッシュ・ラインを保護し、対応するナンスを使用して計算されるタグ72。これがカウンタを保護することによって間接的に保証されるので、タグの完全性はNPTによって保護される必要がない。
リーフ・ページは、カウンタ・グループとそれらの対応するタグ・グループとのロケーションを指定するあらかじめ定義された構造を有する。これは、所与の物理アドレスに対応するカウンタ及びタグのロケーションへの直接アクセスを可能にする。
1.グループ中の各カウンタが暗号要件によって定義された全幅を有する非分割カウンタ・グループ(図8の右側)。
2.副カウンタのグループは、任意の副カウンタがオーバーフローするときはいつでも増分される単一の主カウンタを共有し、したがって、カウンタを記憶するときにビットを節約することができる分割カウンタ・グループ(図8の左側)。分割カウンタの実装では、副カウンタがオーバーフローし、主カウンタが、所与のブランチ・エントリ62中で増分されるとき、カウンタ・グループ・タグ76は、所与のブランチ・エントリ62のポインタ62によってポイントされる子ページ中の子エントリのすべてのために再計算される必要があることになる。
ソフトウェアは、NPTに対応するタグを追加するようにNPE20に要求することによってキャッシュ・ライン・アドレスを保護することに対するそれの関心を登録する。キャッシュ・ライン自体が加算されるときに読み取られていないか又はタグを追加するときに初期化されていない場合、完全性値がキャッシュ・ラインによって計算されるとき、タグは、最初に0に設定され、後に1に設定される修飾子ビットを含み得る。代替的に、キャッシュ・ラインは、加算演算の一部として読み取られ得、それの完全性値が計算され、タグに書き込まれる。
a.メモリ中にページを割り振り、割り振られたページのアドレスに現在のステージにあるポインタを設定する(ポインタは後でタグ計算に含まれることになる)。
b.新しいページをゼロに初期化する。
c.追加されたページ中の対応する子タグ・グループ(又はグループ)によってタグを計算することによって更新されたポインタのエントリ中のタグ・グループを初期化する。
タグを更新するための流れは、次のように要約され得る。
1.オフセットのセットに物理アドレス[MSB:0]を区分し(図9を参照)、ここで、各オフセットは、異なるNPTレベル2に対応する。
2.ポインタにアドレス・オフセットを追加することによってそれのベース・ポインタから開始し、読み取り結果のコンテンツから次のレベルにポインタを抽出してNPTを走査する。
3.読み取られている各エントリから次のレベルのポインタを抽出し、次の読み取りをサブミットすることに並行してそれに対してタグ検証演算を実行する。
4.リーフ・ページに達し、それからタグ・グループを読み取るとき、更新されたキャッシュ・ラインによって計算されるタグがそのグループに書き込まれる。
5.次いで、リーフ・タグ・グループからルート・タグ・グループまでのチェーン上のすべてのタグ・グループが、再計算され、メモリに記憶される。
タグを計算するためのいくつかのオプションがあり、ここでは、いくつかの例示的な方式しかリストしていない。まず第一に、2つの事例を区別する。
・ ハッシュ・ツリーの事例(変形形態1)では、ハッシュすべきメッセージmは、ポインタとそれと一緒にパックされるハッシュのグループとによって形成される。
・ カウンタ・ツリーの事例(変形形態2)では、メッセージmは、ポインタとそれと一緒にパックされるカウンタのグループとの連結であり得、また、親ノード中に対応するカウンタcpをも含み得る。分割カウンタ・グループ構造が使用される場合、カウンタのグループは、それのセットの副カウンタをもつ主カウンタとなるように意図されるが、親ノード中のカウンタcpは、主カウンタの、及び子ノードに対応する副カウンタの連結になる。
1.SHA-2、SHA-3、SipHashなどの標準的に又は一般的に使用されるハッシュ関数を使用する。カウンタ・ツリーの場合、親カウンタcpがメッセージ中に含まれる。
2.カーター-ウェッグマン・ユニバーサル・ハッシュ関数を使用する。m=m1|m2|..|mrを書き込み、ここで、m1…mr-1は、同じビット長bのものであり、mrは、同じビット長のものであるか又はbビットにパディングされるかのいずれかである。次いで、最初にガロア体F中で
h’=Σi=1 rmi・χi
を計算し、ここで、χ∈Fは、非ゼロの秘密値であり、次いで、
h=h’+EK(cp)として結果を暗号化し(加算は同じガロア体中にある)、
ここで、EK()は、秘密グローバル鍵Kを使用する暗号化関数である。
代替的に、暗号化は、
h=EK(h’+cp)
として実行され得るが、この場合、h’の計算は、EK()の呼び出しと並行して実行されないことがある。
3.(AESなどの)ブロック暗号アルゴリズムを選定し、鍵を使用してmを暗号化することによって完全性チェック値を生成することによって、標準MACを使用する。
注:NPTを記憶するメモリが他の考慮事項により暗号化される場合、親カウンタcpが常にm中に含まれる限り暗号化ステップは省略され得る。
キャッシュ・ラインを検証する動作は、変形形態1の場合では図10に示されるようにシーケンスに基づく。(図9について上で説明されたステップ1~3と同様)
- タグを検証すること
〇キャッシュ・ライン・タグを検証するとき、そのタグに対応するカウンタが計算に含まれる。
〇カウンタ・タグを検証することは、カウンタ・グループ中のすべてのカウンタと親カウンタとによってタグを計算することによって実行される。
- キャッシュ・ライン・タグを更新するとき、そのタグに関連するカウンタが増分され、増分されたカウンタのあらゆる親カウンタも増分される。次いで、このチェーンにわたるタグ・カウンタが更新されたカウンタ値によって再計算される。
図9及び図10に示された正確な詳細は、一実例にすぎず、たとえば、物理アドレスの各オフセット部分中のツリー・レベルの数及びビットの数は変動できることが諒解されよう。
キャッシュ・ラインがもはや保護される必要がないとき、タグは、ソフトウェアが0に更新する各タグ中の単一ビットの修飾子フラグを定義することによってデータベースから除去できる。複数のタグ又はタグ・グループを修飾する単一のフラグを有することも可能である。
タグ修飾子がゼロ化されるときはいつでも、ソフトウェア又はNPE20はまた、ページ中の追加のタグが0であるのかどうかをチェックすることができる。ページ中のすべてはタグ・グループにわたってチェックを実行することによって、ページ全体がNPTから除去され得る。
キャッシュ・ラインがアクセスされるときはいつでも、NPEは、完全性保護がそれに必要とされないことを迅速に解決することができる。これは、ヌル・ポインタ又は無効なタグに到着するまでNPTを横断することによって行われる(無効なタグは、予約された値をもつタグ又は修飾子=0をもつタグであり得る)。一般にメモリの小部分のみが完全性を保護されるので、ヌル・ポインタがすぐに発見されることになるので、本方法は、横断が完全性を必要としない大多数のキャッシュ・ラインのために短くなるであろうことを保証する。システムはまた、キャッシュ・ラインのために完全性が必要とされるのかどうかについての読み取り又は書き込み動作に関するヒントを追加することによってこのプロセスを増強することができる。
マークル・ツリーに適用可能なパフォーマンスの向上方法(すなわち、キャッシング及び投機的実行)はまた、それ自体の変形形態をもつNPTに適用可能であり得る。
Claims (25)
- メモリ中に記憶されたデータへのアクセスを制御するためのメモリ・アクセス回路と、
複数のノードを備える完全性ツリーを使用して前記メモリ中に記憶されたデータの完全性を検証するためのメモリ完全性チェック回路と
を備える装置であって、前記複数のノードは、
前記メモリ中に記憶されたデータの対応するアドレス・ブロックの検証のための少なくとも1つの完全性タグを備える少なくとも1つのリーフ・エントリを備える少なくとも1つのリーフ・ノードと、
少なくとも1つのブランチ・エントリを備える少なくとも1つのブランチ・ノードであって、
前記ブランチ・ノードの子ノードのアドレスを指定するためのポインタであって、前記子ノードは、リーフ・ノードであるか、又は前記完全性ツリーのさらなるブランチ・ノードである、ポインタと、
前記子ノードの対応するブランチ・エントリ又はリーフ・エントリの検証のための少なくとも1つの完全性チェック値と
を備える少なくとも1つのブランチ・ノードと
を含む、装置。 - 前記メモリ完全性チェック回路は、所与の前記ブランチ・ノードの親ノード中に指定されている対応する完全性チェック値に基づいて、前記ポインタを含む所与のブランチ・エントリによって指定された情報の完全性を検証するように構成された、
請求項1に記載の装置。 - 前記メモリ完全性チェック回路は、前記完全性ツリーが、メモリ・アドレス空間内のアドレス・ブロックの不連続なグループに対応するリーフ・エントリを指定する1つ又は複数のリーフ・ノードを含むように構成されることをサポートするように構成され、ここで、アドレス・ブロックの前記不連続なグループ間のアドレス・ブロックの少なくとも1つの介在グループは、前記完全性ツリーによって保護されていない、
請求項1又は2に記載の装置。 - 前記メモリ完全性チェック回路は、前記完全性ツリーが、メモリ・アドレス空間内のアドレス・ブロックの2つ以上の不連続なグループに記憶されたノードを含むように構成されることをサポートするように構成され、ここで、アドレス・ブロックの前記不連続なグループ間のアドレス・ブロックの少なくとも1つの介在グループが、
割り振られていないメモリと、
前記完全性ツリー以外のデータを記憶するために割り振られたメモリと
のうちの少なくとも1つを備える、
請求項1から3までのいずれか一項に記載の装置。 - 前記メモリ中に記憶されたデータの所与のアドレス・ブロックのターゲット・アドレスを指定する要求に応答して、前記メモリ完全性チェック回路は、ルート・ノードから前記所与のアドレス・ブロックに対応する前記完全性タグを備える所与のリーフ・ノードまでの前記完全性ツリーのトップダウン横断をトリガするように構成された、
請求項1から4までのいずれか一項に記載の装置。 - 前記トップダウン横断において、前記ルート・ノードから前記所与のリーフ・ノードまでの経路上の前記完全性ツリーの所与の親子ノード・ペアについて、前記所与の親子ノード・ペアは、所与の親ノードと所与の子ノードとを備え、前記メモリ完全性チェック回路は、
前記所与の親ノードの対応する親エントリによって指定された前記ポインタと前記所与のアドレス・ブロックの前記ターゲット・アドレスに基づいて識別されたオフセットとに基づいて計算されるメモリ・アドレスから前記所与の子ノードの対応する子エントリを読み取る、読み取り動作をトリガすることと、
前記所与の親ノードの前記対応する親エントリ中に指定されている対応する完全性チェック値に基づいて前記対応する子エントリの完全性を検証する、検証動作を実行することと
を行うように構成された、
請求項5に記載の装置。 - 前記所与の親ノードが前記完全性ツリーのルート・ノード以外のノードであるとき、
前記メモリ完全性チェック回路は、前記トップダウン横断の前のステップのための前記検証動作を実行することと並行して前記所与の子ノードの前記対応する子エントリを読み取る前記読み取り動作をトリガすべきであり、前記前のステップのための前記検証動作は、前記所与の親ノードの親ノード中に指定されている対応する完全性チェック値に基づいて、前記対応する親エントリの完全性を検証することを備える、
請求項6に記載の装置。 - 前記メモリ完全性チェック回路は、前記ルート・ノードから前記所与のリーフ・ノードまでの経路上に、前記所与のアドレス・ブロックのための対応するブランチ・エントリがヌル・インジケータを指定するブランチ・ノードを検出したことに応答して前記トップダウン横断を停止するように構成された、
請求項5から7までのいずれか一項に記載の装置。 - 前記ヌル・インジケータは、
ヌル値を指定する前記ポインタ、
ヌル値を指定する前記所与のアドレス・ブロックに対応する前記完全性チェック値
のうちの1つを備える、
請求項8に記載の装置。 - 前記トップダウン横断が、メモリ中の前記所与のアドレス・ブロックへのメモリ・アクセスをトリガするためのメモリ・アクセス要求によってトリガされ、前記トップダウン横断は、前記対応するブランチ・エントリが前記ヌル・インジケータを指定するブランチ・ノードを検出するとき、前記メモリ完全性チェック回路は、
前記所与のアドレス・ブロックを、完全性検証が必要とされない保護されていないアドレス・ブロックとして扱うことと、
前記所与のアドレス・ブロックについて完全性検証が成功したという指示を戻すことと
のうちの少なくとも1つを実行するように構成された、
請求項8又は9に記載の装置。 - 前記トップダウン横断は、前記完全性ツリーの対応するリーフ・ノードへの前記所与のアドレス・ブロックのための完全性タグの追加を要求するタグ追加要求によってトリガされ、前記トップダウン横断は、前記対応するブランチ・エントリが前記ヌル・インジケータを指定する所与のブランチ・ノードを検出するとき、前記メモリ完全性チェック回路は、
前記所与のブランチ・ノードのさらなる子ノードを記憶するためにメモリ・アドレス空間を割り振るようにソフトウェアをトリガすることと、
前記さらなる子ノードのために割り振られるものとして前記ソフトウェアによって指定されたアドレスを示すように前記所与のブランチ・ノードの前記対応するブランチ・エントリの前記ポインタを更新することと
を行うように構成された、
請求項8から10までのいずれか一項に記載の装置。 - 所与のアドレス・ブロックのためのデータへのアクセスを要求するメモリ・アクセス要求に応答して、前記メモリ・アクセス回路は、
前記所与のアドレス・ブロックがアクセスされることを許可されるのかどうかをチェックするためにアクセス許可チェックを実行することと、
前記アクセス許可チェックが完了する前に、前記メモリ完全性チェック回路に前記所与のアドレス・ブロックのアドレスを指定するヒント信号を与えることと
を行うように構成された、
請求項1から11までのいずれか一項に記載の装置。 - 前記ヒント信号に応答して、前記メモリ・アクセス回路によって実行される前記アクセス許可チェックが完了する前に、前記メモリ完全性チェック回路は、前記完全性ツリーの少なくとも1つのノードの読み取りをトリガするように構成された、
請求項12に記載の装置。 - 前記メモリ完全性チェック回路は、前記完全性ツリーによって保護された前記データを記憶する同じメモリからルート・ノード以外の前記完全性ツリーのノードを読み取るように構成された、
請求項1から13までのいずれか一項に記載の装置。 - 前記メモリ完全性チェック回路は、異なるメモリから、前記完全性ツリーによって保護された前記データを記憶する前記メモリに、ルート・ノード以外の前記完全性ツリーのノードを読み取るように構成された、
請求項1から13までのいずれか一項に記載の装置。 - 前記メモリ完全性チェック回路は、前記メモリ完全性チェック回路と同じ集積回路内に与えられるオンチップ・メモリから、前記完全性ツリーのルート・ノードを読み取るように構成された、
請求項1から15までのいずれか一項に記載の装置。 - 前記ルート・ノードは、
前記完全性ツリーのトップレベルのブランチ・ノードのアドレスを指定するためのポインタであって、前記トップレベルのブランチ・ノードは、前記ルート・ノードの子ノードである、ポインタと、
前記トップレベルのブランチ・ノードの対応するブランチ・エントリの検証のための少なくとも1つの完全性チェック値と
を備える、
請求項16に記載の装置。 - 前記完全性ツリーにレベルを追加することの要求に応答して、前記メモリ完全性チェック回路は、
前記完全性ツリーの新しいトップレベルのブランチ・ノードを、前記新しいトップレベルのブランチ・ノードを記憶するために割り振られたものとして、ソフトウェアによって指定されたアドレスに記憶することであって、前記新しいトップレベルのブランチ・ノードは、前記ポインタと前記ルート・ノードによって前に指定された前記少なくとも1つの完全性チェック値とを含む、記憶することと、
前記新しいトップレベルのブランチ・ノードを記憶するために割り振られた前記アドレスを指定するように前記ルート・ノードの前記ポインタを更新することと、
前記新しいトップレベルのブランチ・ノードのコンテンツに対応するように前記ルート・ノードの前記少なくとも1つの完全性チェック値を更新することと
を行うように構成された、
請求項17に記載の装置。 - 所与のブランチ・ノードの所与のブランチ・エントリ中で、各完全性チェック値は、前記所与のブランチ・エントリの前記ポインタによってポイントされた前記子ノードの前記対応するブランチ・エントリ又はリーフ・エントリの関数として導出される完全性タグを備える、
請求項1から18までのいずれか一項に記載の装置。 - 所与のブランチ・ノードの所与のブランチ・エントリ中で、各完全性チェック値は、前記所与のブランチ・エントリの前記ポインタによってポイントされた前記子ノードの前記対応するブランチ・エントリ又はリーフ・エントリ中に記憶された対応する完全性タグを計算するための少なくとも1つの完全性ナンスであって、前記対応する完全性タグは、前記完全性ナンスと前記子ノードの前記対応するブランチ・エントリ又はリーフ・エントリの他のコンテンツとの関数として導出される、少なくとも1つの完全性ナンスを備える、
請求項1から18までのいずれか一項に記載の装置。 - 前記所与のブランチ・エントリは、前記子ノードのそれぞれのブランチ・エントリ又はリーフ・エントリに対応する完全性ナンスのグループを指定し、共有完全性タグは、完全性ナンスの前記グループと前記所与のブランチ・ノードの親ノード中に指定されている完全性ナンスとの関数として導出される、
請求項20に記載の装置。 - 完全性ナンスの前記グループは、
前記子ノードの各ブランチ・エントリ又はリーフ・エントリのために独立して指定された非分割カウンタのグループと、
分割カウンタのグループであって、各分割カウンタは、前記子ノードの前記それぞれのブランチ・エントリ又はリーフ・エントリ間で共有される主カウンタと、前記子ノードの各ブランチ・エントリ又はリーフ・エントリのために別個に指定される副カウンタとの組み合わせとして表される、分割カウンタのグループと
のうちの1つを備える、
請求項21に記載の装置。 - メモリ中に記憶されたデータへのアクセスを制御することと、
複数のノードを備える完全性ツリーを使用して、前記メモリ中に記憶されたデータの完全性を検証することと
を含む方法であって、前記複数のノードは、
少なくとも1つのリーフ・エントリを備える少なくとも1つのリーフ・ノードであって、各リーフ・エントリは、前記メモリ中に記憶されたデータの対応するアドレス・ブロックの検証のための少なくとも1つの完全性タグを備える、少なくとも1つのリーフ・ノードと、
少なくとも1つのブランチ・エントリを備える少なくとも1つのブランチ・ノードであって、各ブランチ・エントリは、
前記ブランチ・ノードの子ノードのアドレスを指定するためのポインタであって、前記子ノードは、リーフ・ノードであるか、又は前記完全性ツリーのさらなるブランチ・ノードである、ポインタと、
前記子ノードの対応するブランチ・エントリ又はリーフ・エントリの検証のための少なくとも1つの完全性チェック値と
を備える、少なくとも1つのブランチ・ノードと
を含む、方法。 - 請求項23に記載の方法を実行するようにデータ処理装置を制御するための
コンピュータ・プログラム。 - 命令の実行のための命令実行環境を与えるようにホスト・データ処理装置を制御するためのコンピュータ・プログラムであって、
前記命令実行環境のシミュレートされたアドレス空間へのアクセスを制御するためのメモリ・アクセス・プログラム論理と、
複数のノードを備える完全性ツリーを使用して前記シミュレートされたアドレス空間内のアドレスに記憶されたデータの完全性を検証するためのメモリ完全性チェック・プログラム論理とを備え、前記複数のノードは、
メモリ中に記憶されたデータの対応するアドレス・ブロックの検証のための少なくとも1つの完全性タグを備える少なくとも1つのリーフ・エントリを備える少なくとも1つのリーフ・ノードと、
少なくとも1つのブランチ・エントリを備える少なくとも1つのブランチ・ノードであって、
前記ブランチ・ノードの子ノードのアドレスを指定するためのポインタであって、前記子ノードは、リーフ・ノードであるか、又は前記完全性ツリーのさらなるブランチ・ノードである、ポインタと、
前記子ノードの対応するブランチ・エントリ又はリーフ・エントリの検証のための少なくとも1つの完全性チェック値と
を備える少なくとも1つのブランチ・ノードと
を含む、コンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1820597.1 | 2018-12-18 | ||
GB1820597.1A GB2579849B (en) | 2018-12-18 | 2018-12-18 | Integrity tree for memory integrity checking |
PCT/GB2019/052968 WO2020128413A1 (en) | 2018-12-18 | 2019-10-17 | Integrity tree for memory integrity checking |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022512051A true JP2022512051A (ja) | 2022-02-02 |
JP7464586B2 JP7464586B2 (ja) | 2024-04-09 |
Family
ID=65146993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021514545A Active JP7464586B2 (ja) | 2018-12-18 | 2019-10-17 | メモリ完全性チェックのための完全性ツリー |
Country Status (8)
Country | Link |
---|---|
US (1) | US11775177B2 (ja) |
EP (1) | EP3899774A1 (ja) |
JP (1) | JP7464586B2 (ja) |
KR (1) | KR20210103455A (ja) |
CN (1) | CN112639789A (ja) |
GB (1) | GB2579849B (ja) |
IL (1) | IL280846A (ja) |
WO (1) | WO2020128413A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230132163A1 (en) * | 2020-04-23 | 2023-04-27 | Nec Corporation | Memory processing apparatus, memory verification apparatus, memory updating apparatus, memory protection system, method, and computer readable medium |
GB2596585B (en) * | 2020-07-03 | 2022-09-07 | Advanced Risc Mach Ltd | Integrity tree for memory security |
WO2022006880A1 (zh) * | 2020-07-10 | 2022-01-13 | 华为技术有限公司 | 数据处理方法、设备与存储介质 |
CN112035890B (zh) * | 2020-09-04 | 2022-08-05 | 北京邮电大学 | 一种数据完整性验证方法及装置 |
US11687592B2 (en) * | 2021-05-27 | 2023-06-27 | Western Digital Technologies, Inc. | Storage of tree data structures |
US11636153B2 (en) | 2021-05-27 | 2023-04-25 | Western Digital Technologies, Inc. | Storage of tree data structures |
US20240095404A1 (en) * | 2022-09-15 | 2024-03-21 | Advanced Micro Devices, Inc | Offset Data Integrity Checks for Latency Reduction |
CN117521167A (zh) * | 2023-11-15 | 2024-02-06 | 上海交通大学 | 高性能异构安全内存 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009003855A (ja) * | 2007-06-25 | 2009-01-08 | Panasonic Corp | 情報セキュリティ装置およびカウンタ制御方法 |
JP2011070607A (ja) * | 2009-09-28 | 2011-04-07 | Brother Industries Ltd | 情報生成装置、情報生成プログラム、情報生成方法、ノード装置、ノードプログラム及び検索方法 |
JP2012530983A (ja) * | 2009-06-26 | 2012-12-06 | トラステッド ロジック | データ検証方法 |
JP2014524688A (ja) * | 2011-08-02 | 2014-09-22 | カビウム・インコーポレーテッド | ルックアップ・フロントエンド・パケット出力プロセッサ |
JP2017535998A (ja) * | 2014-09-26 | 2017-11-30 | クアルコム,インコーポレイテッド | オンデマンドサービングネットワーク認証 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451310B2 (en) * | 2002-12-02 | 2008-11-11 | International Business Machines Corporation | Parallelizable authentication tree for random access storage |
US20050050342A1 (en) * | 2003-08-13 | 2005-03-03 | International Business Machines Corporation | Secure storage utility |
US8386835B2 (en) | 2010-05-17 | 2013-02-26 | Oracle International Corporation | System and method for end-to-end data integrity in a network file system |
CN101853190B (zh) * | 2010-06-04 | 2012-07-04 | 华中科技大学 | 一种适用于嵌入式处理器的数据完整性验证方法 |
US8819455B2 (en) * | 2012-10-05 | 2014-08-26 | Intel Corporation | Parallelized counter tree walk for low overhead memory replay protection |
CN105069379B (zh) * | 2015-07-29 | 2017-11-21 | 哈尔滨工程大学 | 一种基于写计数器的存储器完整性保护方法 |
US10713210B2 (en) * | 2015-10-13 | 2020-07-14 | Microsoft Technology Licensing, Llc | Distributed self-directed lock-free RDMA-based B-tree key-value manager |
-
2018
- 2018-12-18 GB GB1820597.1A patent/GB2579849B/en active Active
-
2019
- 2019-10-17 EP EP19791346.0A patent/EP3899774A1/en active Pending
- 2019-10-17 KR KR1020217005763A patent/KR20210103455A/ko not_active Application Discontinuation
- 2019-10-17 CN CN201980057094.7A patent/CN112639789A/zh active Pending
- 2019-10-17 WO PCT/GB2019/052968 patent/WO2020128413A1/en unknown
- 2019-10-17 JP JP2021514545A patent/JP7464586B2/ja active Active
- 2019-10-17 US US17/269,919 patent/US11775177B2/en active Active
-
2021
- 2021-02-14 IL IL280846A patent/IL280846A/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009003855A (ja) * | 2007-06-25 | 2009-01-08 | Panasonic Corp | 情報セキュリティ装置およびカウンタ制御方法 |
JP2012530983A (ja) * | 2009-06-26 | 2012-12-06 | トラステッド ロジック | データ検証方法 |
JP2011070607A (ja) * | 2009-09-28 | 2011-04-07 | Brother Industries Ltd | 情報生成装置、情報生成プログラム、情報生成方法、ノード装置、ノードプログラム及び検索方法 |
JP2014524688A (ja) * | 2011-08-02 | 2014-09-22 | カビウム・インコーポレーテッド | ルックアップ・フロントエンド・パケット出力プロセッサ |
JP2017535998A (ja) * | 2014-09-26 | 2017-11-30 | クアルコム,インコーポレイテッド | オンデマンドサービングネットワーク認証 |
Also Published As
Publication number | Publication date |
---|---|
IL280846A (en) | 2021-04-29 |
GB2579849B (en) | 2021-08-25 |
KR20210103455A (ko) | 2021-08-23 |
EP3899774A1 (en) | 2021-10-27 |
GB2579849A (en) | 2020-07-08 |
US20210311640A1 (en) | 2021-10-07 |
JP7464586B2 (ja) | 2024-04-09 |
GB201820597D0 (en) | 2019-01-30 |
US11775177B2 (en) | 2023-10-03 |
CN112639789A (zh) | 2021-04-09 |
WO2020128413A1 (en) | 2020-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7464586B2 (ja) | メモリ完全性チェックのための完全性ツリー | |
US10325118B2 (en) | Cryptographic cache lines for a trusted execution environment | |
US10572689B2 (en) | Method and apparatus for secure execution using a secure memory partition | |
KR102107711B1 (ko) | 처리 시스템에서의 직접 메모리 액세스 인가 | |
US10261919B2 (en) | Selective memory encryption | |
Elbaz et al. | Hardware mechanisms for memory authentication: A survey of existing techniques and engines | |
US7124170B1 (en) | Secure processing unit systems and methods | |
JP7096323B2 (ja) | メモリセキュリティのためのカウンタ整合性ツリー | |
KR101457355B1 (ko) | 보안 애플리케이션 실행을 제공하는 방법 및 장치 | |
US20190251275A1 (en) | Counter integrity tree for memory security | |
JP2008123513A (ja) | 仮想化されたレジスタを有するトラステッド・デバイス | |
TWI608378B (zh) | 裝置與安全處理環境之間的介面 | |
KR102365263B1 (ko) | 하드웨어 기반의 gpu 메모리 보호를 위한 효율적인 암호화 방법 및 장치 | |
KR20150079405A (ko) | 보안 처리 환경으로부터의 기능의 오프로딩 | |
US20230259660A1 (en) | Integrity tree for memory security | |
US20240080193A1 (en) | Counter integrity tree | |
Su et al. | Secbus: Operating system controlled hierarchical page-based memory bus protection | |
Belle-Isle et al. | Memory Protection with Cached Authentication Trees | |
Szefer | Memory protections | |
Taassori | Low Overhead Secure Systems | |
Moolman et al. | Extending RISC-V Keystone to Include Efficient Secure Memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221007 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231018 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240215 |
|
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: 20240305 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240328 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7464586 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |