JP5632086B2 - システムメモリに対するハードウェアの攻撃から保護する方法、装置、およびシステム - Google Patents

システムメモリに対するハードウェアの攻撃から保護する方法、装置、およびシステム Download PDF

Info

Publication number
JP5632086B2
JP5632086B2 JP2013529448A JP2013529448A JP5632086B2 JP 5632086 B2 JP5632086 B2 JP 5632086B2 JP 2013529448 A JP2013529448 A JP 2013529448A JP 2013529448 A JP2013529448 A JP 2013529448A JP 5632086 B2 JP5632086 B2 JP 5632086B2
Authority
JP
Japan
Prior art keywords
memory
adjustment
processor
block
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013529448A
Other languages
English (en)
Other versions
JP2013538376A (ja
Inventor
ゲロン、シェイ
ゲルゾン、ギデオン
アナティ、イッタイ
ドウェック、ジェイコブ
マオール、モーセ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2013538376A publication Critical patent/JP2013538376A/ja
Application granted granted Critical
Publication of JP5632086B2 publication Critical patent/JP5632086B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Description

本開示は、データの暗号保護に係り、より詳しくは、メモリのメモリ領域に格納されているソフトウェアアプリケーションの暗号化に係る。
セキュアなソフトウェアアプリケーションが利用するシステム内の揮発性メモリの領域は、権原なき者による悪意ある修正から保護される必要がある。これらの悪意ある修正は(「攻撃」と称される場合もある)、ソフトウェア攻撃もあればハードウェア攻撃も含まれうる。セキュアなソフトウェアアプリケーションのための機密性と整合性保護を提供するために方法の1つに、中央処理装置(CPU)パッケージに大きな揮発性メモリを組み込んで、セキュアなソフトウェアアプリケーションによる「私的なメモリ」として利用する、というものがある。しかし、大きな揮発性メモリをCPUパッケージに組み込むと、コストが高くなる。
従って通常は、セキュアなソフトウェアアプリケーションは、外部メモリに格納される(つまり、CPUの外部に格納される)。外部メモリの、セキュアなソフトウェアアプリケーションを格納するためのメモリ領域(エリア)は、システムのオペレーティングシステム(OS)から見える場合も、見えない場合もある。OSからこれらのメモリ領域が見える場合には、ソフトウェア攻撃から守られている必要がある。これらのメモリ領域がOSからは見えない場合には(「盗まれたメモリ領域」とも称される)、アクセス制御機構が存在している、ということになるので、ハードウェアアタックから守られている必要がある(つまり、外部メモリに物理的にアクセスしてくる攻撃者から守られている必要がある)。
請求される主題の実施形態の特徴は、以下に詳細に説明される記載から明らかになり、図面では、同様の部材が同様の参照番号で示されている。
盗まれたメモリ領域を含むシステムメモリを示す。 拡張された調整を示す一実施形態である。 拡張された調整を示す別の実施形態である。 メモリ暗号化を実行するメモリ暗号化エンジンを含むシステムのブロック図である。 図3に示す拡張メモリの、暗号化するデータを格納するためのメモリ領域の一部のブロック図である。 アプリケーションによる図4に示す外部メモリのメモリ領域の一部の分割部分を利用するための方法を示す。 メモリに、信頼されているアプリケーションを格納する方法の一実施形態を示す。 信頼されているアプリケーションに対してメモリを更に割り当てる方法の一実施形態を示す。
以下の詳細な記載は、請求されている主題を示す実施形態を参照したものであるが、当業者には数多くの変形例および変更例が可能である。従って請求されている主題は広義の解釈が意図されており、添付されている請求項のみにより定義される。
図1は、盗まれたメモリ領域102を含むシステムメモリ100一実施形態を示す。盗まれたメモリ領域102は、オペレーティングシステム(OS)からは見えないメモリ領域(メモリの一部)である。システムメモリ100は、「外部の」メモリであり、これはつまり、システムの中央処理装置(CPU)から切り離されていることを意味している。盗まれたメモリ領域102は、複数の物理的ページ106を含んでいる。3つのソフトウェアアプリケーション104−1、104−2、104−3は、盗まれたメモリ領域102の1以上の物理ページ106にわたるメモリ領域内に含まれている。各ソフトウェアアプリケーション104−1、104−2、104−3は、システム(外部)メモリ100の盗まれたメモリ領域102の複数の物理的ページ106にわたり設けられている。
セキュアなソフトウェアアプリケーションが利用しているメモリ領域を保護する1つの方法としては、システムメモリ100のメモリ領域に格納されているデータを暗号化する、というものがある。メモリ領域に格納されているデータの暗号化および復号化は、CPUによって、CPU内で生成され、且つ、格納されている鍵を利用して行われる。しかし、データの暗号化自身は、データの機密性を提供することのみが目的である。メモリ領域に格納されているデータを暗号化することで、攻撃者が外部メモリを受動的に読めなくしたり、CPUとシステムメモリ100との間をやりとりされる間にデータをのぞき見たりできなくしたりすることができる、という意味でデータの機密性を保護する助けとなる。
しかし、外部メモリ100のメモリ領域に格納されているデータの暗号化は、整合性チェックを提供するわけではない。外部メモリ100の盗まれたメモリ領域102のメモリ領域にデータを暗号化された形で格納しても、外部メモリ100の盗まれたメモリ領域102に格納されているメモリ画像の部分の修正またはリプレーを活発に試みる攻撃者からの保護はできない。
悪意のある攻撃者(敵対者)は、外部メモリ100のあるメモリ位置からコピーして、外部メモリの別のメモリ位置に書き込む。例えば、攻撃者は、ページxのアドレスaのコンテンツを、ページyのアドレスbにコピーすることができる。暗号化されたメモリ領域に読み書きアクセス可能な敵対者は、暗号化されたメモリ領域が修正された時点(例えば時点2(t2))を見極めて、時点1(t1)に書き込まれた、暗号化領域のコンテンツをコピーするおとでメモリ領域をリセットすることで、リプレーアタックを行うことができる。リプレーアタックを行う攻撃者は、異なる時点の同じメモリ領域に存在しうる2つの異なるアプリケーション(コンテキスト)のうち1つの制御を有している。例えば、攻撃者は、アプリケーションのうち1つを利用して他のアプリケーションを攻撃することができる。
リプレーアタックを減らすための方法の1つに、外部メモリ100の暗号化されたデータとともに認証タグをセキュアに格納する、という方法がある。しかし、この方法はメモリの増設を必要とするので高くつく。
本発明の一実施形態では、攻撃の効果を、メモリ画像への無作為な(予期できず、制御不可能な)の変更を引き起こす能力に留めることで、リプレーアタックを軽減させる。
調整および暗号文窃盗(XTS)機能を有するXEX暗号モード−AES(Advanced Encryption Standard)調整値付きブロック暗号化(IEEE規格1619−2007)は、一定の長さの複数のブロックに格納される暗号保護されたデータのアーキテクチャの要素を定義しているアメリカ国立標準技術研究所(NIST)の連邦情報処理規格(FIPS)140−2に準拠した動作モードである。一実施形態では、標準的なXTS−AES動作モードを向上させたブロック暗号の新たな動作モード、および、ブロック暗号化のためのXTS−AES動作モードを利用しつつメモリ暗号化を実装する方法および方法が提供される。
XTS−AES動作モードは、データストリームの最後のデータユニットのみが他のデータユニットより小さいことがあるが、原則1つのデータストリームを複数の連続した同じサイズのデータユニットに分割した場合の暗号化に利用される。各データユニット128は、1つの鍵の範囲内に128以上のビットのデータを有している。鍵の範囲は、特定の鍵で暗号化されたデータを、サイズが同じデータユニットに分割したデータである。鍵の範囲は、3つの負ではない整数により特定される(つまり、第1のデータユニットに対応する調整値、データユニットのサイズ、およびデータの長さ)。調整値は、XTS−AESで暗号化または復号化されているデータストリーム内のデータの論理位置を表すために利用される128ビットの値である。各データユニットには、負ではない整数の調整値が割り当てられる。調整値は、任意の負ではない整数から、連続割り当てされる。
XTS−AES動作モードは、「調整可能な幅の狭いブロック暗号化」であり、ディスク暗号化の標準的なモードである(静止データの暗号化)。データブロックの暗号化を「インデックス」位置の関数として修正する調整値(調整)が利用される電子コードブック(ECB)モードの暗号化として捉えることができる。ECBモードでは、各平文ブロックをブロック暗号化とは独立して暗号化する。ディスク暗号化では、XTS−AES動作モードで、調整により、暗号化されるディスクドライブ(格納媒体)上のセクターに暗号化を結びつける。
一実施形態では、メモリ暗号化ユニットがXTS−AES動作モードを利用して、処理されたデータブロックの(物理的)メモリアドレスに暗号化を結びつける。AES−XTSを利用することで、暗号化されたメモリの画像を物理的に操作できる攻撃者、および、暗号化されたブロックの位置をスワップしようとする攻撃、および、暗号化されたブロックを他の暗号化されたブロックで書き換えようとする攻撃にかなりの程度対抗することができるようになる。AES−XTS調整は、物理的メモリアドレスの関数なので、攻撃を、攻撃者が予測不可能且つ制御不可能な無作為な変更を引き起こす程度の、かなり弱い攻撃同様にすることができる。言い換えると、攻撃者は、メモリを「闇雲に」変更したことによる利点くらいしか、スワップ/書き換えから利益を得ることができなくなる。
しかし、XTS−AES調整が物理的アドレスの関数であることは、攻撃者が、あるブロックを同じアドレスに前に書き込まれた暗号化されたブロックで書き換えるリプレーアタックに対する保護はできないことも意味している。この種類の攻撃が潜在的に持っている被害を例示するために、暗号化された画像を時点1(t1)にメモリのページxに書き込むソフトウェアアプリケーションを考える。攻撃者は、この暗号化された画像を、メモリに対するハードウェアアクセスによってセーブする。そして攻撃者は、ソフトウェアによる方法によりソフトウェアアプリケーションをエビクトして、同じメモリ領域に、悪意のあるソフトウェアアプリケーションをロードする。次いで攻撃者は、ページxに暗号化された画像のコピーを物理的にリプレーし、この時点から、悪意あるソフトウェアアプリケーションが画像を完全に乗っ取る。例えば悪意のあるソフトウェアアプリケーションは、機密事項を復号して、選択した任意のメモリ位置に平文としてダンプすることができる。この攻撃は、鍵の可能性を使い果たすために必要となる回数攻撃プロセスを繰り返すだけで事足りることから、メモリ暗号ユニットについてCPUが限られた数の鍵を利用する場合であっても実行可能である。これら攻撃は、CPUから(例えばEPID:Enhanced Privacy Identifierから)、または繊細なコードから機密事項を取得することができる。
ディスク暗号の標準的なXTSモードでは、ユニット(u)のインデックスが(j)であるデータブロックPのAES−XTSは、先ず調整値を生成して、次いでこの調整値を利用して平文から暗号文を生成することで行われる。
例えば、調整値(X)は、ブロック識別子(ユニット(u)、ユニット(u)のユニットの位置(j))の16バイトの鍵値(K1)を利用することで生成され、多項式(Poly:
Figure 0005632086
)は以下のように示される。
Figure 0005632086
上式において「*」はキャリーなし乗算を表している。
調整値(X)が生成されると、以下に示すように、暗号文(C)を、この調整値(X)と別の16バイトの鍵値(K2)とを利用して平文(P)から生成することができる。
Figure 0005632086
AES−XTSは、ユニット(u)の値について64ビット(8バイト)をリザーブする。AES暗号が16バイトのブロックに行われるとき、数1に示すように暗号化された、ブロック(16バイト)の64個の残りのビット(8バイト)(="u")が0として定義される。
AES−XTSは、「ユニット」を64バイトのキャッシュラインとして定義して、インデックスj=0、1、2、3を、キャッシュラインの16バイトのデータブロックの位置を示すものとすることで、メモリ暗号化に利用することができる。この場合には、「u」の値が、キャッシュラインの(物理的)アドレスとなる。物理的アドレスは通常は48ビットを利用してエンコードされる。
本発明の一実施形態では、調整でもっと情報を利用するために、標準的なAES−XTSモードの拡張に基づく新たな動作モードが提供される(拡張された調整)。拡張された調整には、キャッシュラインのアドレスおよびブロック位置等の標準的な情報に加えて、タイムスタンプの値が含まれる。別の実施形態では、拡張された調整に、例えば少なくとも1つのさらなるラベルが含まれる。一実施形態では、さらなるラベルは、システムで稼動しているソフトウェアアプリケーションのバージョン数である。バージョン数を調整に加えることで、ソフトウェアアプリケーションの古いバージョンからキャッシュラインをコピーして、ソフトウェアアプリケーションの新たなバージョンの同じアドレスでリプレーを行い、古いバージョンを動かしつつ、新たなバージョンの特権を得ることができなくなる。
一実施形態では、さらなる情報を格納する、拡張された調整のビットは、拡張された調整の上位(最上位)64ビットにある。上述したように、標準的なAES−XTSモードでは、最上位ビットが0に設定される。別の実施形態では、さらなる情報が、ゼロであることを保証された他のビットにある。従い、全てのさらなる情報ビットを0に低下させると暗号が標準的なXTSモードになることから、拡張されたAES−XTSは、標準的なAES−XTSを一般化したものである。
拡張された調整は以下の数3で示すように生成される。
Figure 0005632086
ここでPは、ユニットuにおけるインデックスがjであり、Tで示す時点に暗号化され、ラベルLをもつデータブロックであり、シンボル「|」は連結を示している。
別の実施形態では、ラベルを利用せずに、キャッシュラインのアドレスと時間とを利用して、拡張された調整を生成する。拡張された調整は、調整が連続した整数、時点0、1、…、2^(32)−1)における領域のカウントアドレスを記述するように生成される。
CL[j](TIMEの時点)の調整(j=0、1、2…、m−1、およびTIME=0、1、2、…、2^(32)−1)は、以下のように表される。
TWEAK(調整)=00…0[127:55]|(ACL[j]>>6)[33:n+14]|TIME[31:0]|(ACL[0]>>6)[n+13:0]
上式において、Unit=キャッシュライン(CL)、各Clは2^(6)=64バイト(4x128ビット(2^(20))ブロックに相当する)、各CLは40ビットのベースアドレスを有し、ACL[5:0]=[000000]であるACL[39:0]、分割領域は2^nMBを有し、m(分割領域におけるCLの数)=2^(n+14)であり、jは1つのデータストリームのm個のCLのうちの1つであり、このデータストリームは、異なる時点におけるm個のCLであり(つまり時点tにおけるCL[j])、時点t=0で、CL[0], CL[1], …, CL[m-1]であり、時点t=1で、CL[0], CL[1], …, CL[m-1]であり、時点t=2^(32)−1で、CL[0], CL[1], …, CL[m-1]であり、CL[j]についてのベースアドレスは、ACL[j]で表される(j=0、1、2、…、m−1)。
データストリームのCLの(ユニット)について実行する際(上述した順序で)、TWEAKは、正の整数00…0[127:55]|(ACL[0]>>6)[33:n+14]|00…0[31:0]|(ACL[0]>>6)[n+13:0]から始まり、00…0[127:55]|(ACL[m-1]>>6)[33:n+14]|00…0[31:0]|(ACL[m-1]>>6)[n+13:0]で終わる全ての正の整数について連続して実行される。例えば、n=1でm=15である2MBの分割領域を例に考える。TIME(32ビット)時点のCL[j]の調整は、00…0[127:55]|(ACL[j]>>6)[33:15]|TIME[31:0]|(ACL[j]>>6)[14:0]ように定義することができる。
図2Aは、拡張された調整200の一実施形態である。図2Aに示す拡張された調整200は128ビットの値を有している。拡張された調整200の最下位の48ビット(ビット47:0)206は、アドレス(u)についてリザーブされており、残りの80k個の最上位ビット(ビット127:48)204がタイムスタンプ(T)についてリザーブされている。
図2Bは、拡張された調整200の別の実施形態である。図2Bに示す拡張された調整202の実施形態では、拡張された調整202の最下位64ビット[ビット63:0]がアドレス(u)212についてリザーブされており、次の32ビット[ビット95:64]がタイムスタンプ(T)210についてリザーブされており、最上位32ビット[ビット127:96]がラベル(L)208についてリザーブされている。
図2Bに示す拡張されたAES−XTSの実施形態で暗号化されたブロックを復号するためには、暗号文C、アドレスu、および、インデックスjと、更に、タイムスタンプTとラベルLとが必要となる。一実施形態では、タイムスタンプ(T)およびラベル(L)は秘密ではないが、信頼のおける方法で格納されている。
拡張されたAES−XTS調整の利点は、以下の「時間隔離」特性である。つまり、時点t1でアドレスA1について暗号化された暗号文CがアドレスA1でリプレーされ、時点t2で復号された場合、タイムスタンプの値が異なることから調整値が異なるので、予測不可能なストリングに復号される。
この「時間隔離」特性を利用すると、攻撃者は、「同じアドレスに対するリプレー」を行っても、メモリの画像を無作為に(予測不能で制御不能)変化させた場合に得られる利点くらいしか得られないことから、Type2のリプレーアタックからの保護が可能となる。同様に、拡張されたAES−XTX調整モードでも、ラベル(L)で区別されるコンテキスト間の隔離を行うことができる。
XTS−AESについての実施形態を記載してきたが、拡張された調整モードはXTS−AESに限定されるものではなく、他の調整可能な暗号スキームを利用する他の実施形態にも応用可能である。例えばLRW(M.Liskov、R.Rivest、およびD.Wagner)調整可能なブロック暗号を利用する実施形態では、類似した方法でLRWモードが向上するようにLRWを向上させることができる。
図3は、メモリ暗号化を実行するメモリ暗号化エンジン303を含むシステム300のブロック図である。システム300は、プロセッサ301、メモリコントローラハブ(MCH)302、および、入出力(I/O)コントローラハブ(ICH)304を含む。MCH302は、プロセッサ301と外部メモリ100との間の通信を制御するメモリコンローラ306を含む。プロセッサ301とMCH302とは、システムバス316経由で通信する。
プロセッサ301は、シングルコアIntel(登録商標)Pentium(登録商標) IV(登録商標)プロセッサ、シングルコアIntel Celeronプロセッサ、Intel(登録商標)XScaleプロセッサ、または、Intel(登録商標)Pentium(登録商標) D等のマルチコアプロセッサ、Intel(登録商標)Xeon(登録商標)プロセッサ、またはIntel(登録商標)Core(登録商標)Duoプロセッサ、その他の種類のプロセッサ等の、複数のプロセッサのいずれかであってよい。
プロセッサ301内のメモリ暗号化エンジン303は、メモリ100内および格納デバイス312内の少なくともいずれかに格納可能なデータに暗号化および復号化を実行することができる。メモリ暗号化エンジン303は、メモリ308のコンテンツを読み出す受動的な攻撃者に対抗できる機密性を提供することができる。メモリ暗号化エンジン303は更に、16バイトで動作する暗号により、16バイトの粒度でメモリのメモリ領域に読み書きができる能動的な攻撃者に対抗して保護を提供することもでき、メモリ308のキャッシュラインは64バイトである。例えば64バイトのキャッシュラインの16バイトのセグメントの1ビットが修正された場合、16バイトのセグメントが、攻撃者にとって「無作為」であり、予測不能なものである。
メモリ100は、DRAM、SRAM、SDRAM、DDR2RAM、RDRAM、その他の任意の種類のメモリであってよい。
ICH304は、高速チップツーチップインターコネクト314(DMI等)を利用してMCH302に連結されてよい。DMIは、2つの一方向性レーンにより2ギガビット/秒の並列転送レートをサポートする。
ICH304は、ICH304に連結される少なくとも1つの格納デバイス312との通信を制御するための格納I/Oコントローラ310を含んでよい。格納デバイスの例には、ディスクドライブ、DVDドライブ、CDドライブ、RAID、テープドライブその他の格納デバイスが含まれてよい。ICH304は、SASまたはSATA等のシリアル格納プロトコルを利用して、格納プロトコルインターコネクト318を介して格納デバイス312と通信してよい。
メモリ100のアドレス範囲の保護についての一実施形態を説明する。
図4は、図3に示す拡張メモリ100の、暗号化するデータを格納するためのメモリ領域402の一部のブロック図である。メモリ領域402は、論理的にN個の「分割領域」に分割されている。図3に戻ると、プロセッサ301にはN個のカウンタ350があり、図4に示すメモリ領域402の部分には1つの論理的分割領域について1つのカウンタが存在している。
図5は、アプリケーションによる図4に示す外部メモリ100のメモリ領域402の一部の分割部分を利用するための方法を示す。図5は、図4との関連で示されている。
ブロック500で、メモリ領域402の部分を、N個の分割領域404−1、…、404−Nに分割する。カウンタ406−1、…、406−Nを、分割領域404−1、…、404−Nにそれぞれ割り当てる。全てのカウンタ406−1、…、406−Nは最初に0にリセットする。処理はブロック502へと続く。
ブロック502で、ソフトウェアアプリケーションがメモリ100に格納されると(書き込まれると)、ソフトウェアアプリケーション410、412、414は、1以上の論理的分割領域404−1、…、404−Nに1以上のキャッシュラインをポピュレートする。一実施形態では、各キャッシュラインが64バイトであり、オペレーティングシステムがメモリページの粒度で動作している(4096バイトであってよい)。アプリケーションがメモリ100にロードされると、処理はブロック504に移る。メモリ100にロードされたアプリケーションがエビクトされ、別のアプリケーション(悪意がある可能性がある)が、同じアドレス空間にロードされると、処理はブロック504に続く。さもなくば、処理はブロック502を続ける。
ブロック504で、分割領域404−1、…、404−Nが最初にポピュレート(いくつかのキャッシュラインで)されるたびに、その分割領域に対応するカウンタ406−1、…、406−Nがプロセッサにより増分される。加えて、プロセッサは、対応する分割領域404−1、…、404−Nのカウンタ値を、エビクトおよびロード処理のうちの少なくともいずれかの一環として自動的に増分する。処理はブロック502を続ける。
図4に戻り、異なる時点で、各アプリケーション410、412、414を、アプリケーションがポピュレートする論理的分割領域ごとに異なりうる異なるカウンタ値を有する論理的分割領域404−1、…、404−Nに配置する。プロセッサ301のメモリ暗号化エンジン303は、XTS−AESにより向上された調整動作モードを実装しており、ここでTはカウンタ値を示し、uは物理的アドレスを示しており、jはブロックのインデックスを示している。このように、調整値(X)は、メモリの論理的分割領域のアドレスに結合されるだけではなく、アプリケーション410、412、414をメモリ100にロードした時点にCPUが格納したカウンタ値にも結合されている。
「カウンタ」および、その初期化および増分方法はほかにもある。一実施形態では、カウンタが、クロック入力を利用して固定されたり、ランダムにされたり、増分されたりするゼロではない値に初期化されている、線形フィードバックシフトレジスタ(LFSR)であってよい。別の実施形態では、カウンタが、無作為または決定論的に初期化される増分ロジックを含むレジスタであってよい。また別の実施形態では、カウンタは、無作為なビット生成器からサンプルされる値であってよい。カウンタの長さ(出力ビット数)は、同じカウンタ値でコピーされた画像をリプレーしようと試みることが現実的ではないように決定されればよい。
図4に示す例では、メモリ100の異なる分割領域404−1、…、404−Nに格納されている3つのアプリケーション410、412、414があり、1つの分割領域404−1、…、404−Nには、アプリケーション410、412、414が2つは格納されないようになっている。各論理分割領域404−1、…、404−Nにはそれぞれ別のカウンタが割り当てられる。アプリケーション412は、2つの分割領域404−2、404−3のページを利用して、これら分割領域それぞれが対応するカウンタ406−2、406−3を有している。論理的分割領域に格納されているアプリケーションの復号は、そのアプリケーションに割り当てられているプロセッサ内のカウンタが増分されていない場合には正確に動作する。カウンタの値は、アプリケーションが最初にそれぞれの分割領域でエビクトされるまでは増分されない。
アプリケーションがエビクトされて、別のアプリケーション(悪意である場合がある)が同じアドレス空間にロードされると、対応する分割領域(1または複数)のカウンタ値が、エビクトおよびロード処理のうち少なくともいずれかの一環としてCPUによって自動的に増分される。タイプ2の攻撃の場合には、攻撃者は、攻撃コードが関連するメモリ領域をポピュレートしている間に、前のアプリケーションに属しているメモリの画像をコピーして、同じアドレスでリプレーする。この攻撃は、メモリが標準的なXTS−AES暗号で暗号化されている場合には、攻撃者がメモリの画像に格納されている機密事項を読み出すことができるために、成功する。しかし、XTS−AESの向上した調整モードでは、攻撃者は、カウンタ値が整合しないので結果を取得することができない。XTS−AESの向上した調整モードでは復号に別のカウンタ値を利用するので、無作為の修正よりもカウンタ値を利用するほうがよい。
利点は、この方法が調整とともに暗号化のみを利用する点であり、メモリが一度のメモリアクセスへの変換を読み書きすることである。更には、実装によって、カウンタのハードウェアのコスト上昇と、より多くの分割領域によりより良い粒度を提供する、というメモリ利用効率との間のトレードオフ関係を考慮しながら、分割領域の数を決定することもできる。
図6は、メモリに、信頼されているアプリケーションを格納する方法の一実施形態を示す。信頼のおけるアプリケーションを先ず初期化した後で、物理的ページのさらなる割り当てを要求する、という形で、メモリ割り当てを要求する。
ブロック600で、メモリに格納したアプリケーションを受け取る。受け取ったアプリケーションはアプリケーション識別子と関連付けられて、アプリケーションの1ページ目を含んでいる。論理的分割領域がアプリケーション用に割り当てられている。処理はブロック602に続く。
ブロック602で、割り当てられている論理的分割領域に関連付けられている論理的分割領域の識別子に格納されているアプリケーションの識別子が、アプリケーションの識別子に設定される。割り当てられている論理的分割領域に関連付けられているページ番号は、割り当てられている論理的分割領域に関連付けられているページ番号に格納される。割り当てられている論理的分割領域に関連付けられている分割領域カウンタを増分する。処理はブロック604に続く。
ブロック604で、アプリケーションの1ページ目のデータを、割り当てられている論理的分割領域の1ページ目に格納する。
図7は、信頼されているアプリケーションに対してメモリのページを更に割り当てる方法の一実施形態を示す。
ブロック700で、アプリケーションのためにメモリにデータを格納する要求を受けると、このアプリケーション用にページを割り当てた最後の論理的分割領域を決定する。処理はブロック702に続く。
ブロック702で、現在のページ番号が、割り当てられている論理的分割領域の最後のページである場合には、処理はブロック704に続く。そうではない場合には、処理はブロック706に続く。
ブロック704で、現在のページが、現在アプリケーションに割り当てられている論理的分割領域の最後のページである場合には、別の論理的分割領域をアプリケーションに割り当てて、アプリケーションのページを、新たに割り当てられた論理的分割領域の1ページ目にコピーする。
ブロック706では、現在のページが、現在アプリケーションに割り当てられている論理的分割領域の最後のページではないので、現在の論理的分割領域のアプリケーションに割り当てられているページ数を次のページに増分して、アプリケーションのページを、現在割り当てられている論理的分割領域の次のページにコピーする。
本発明の実施形態に関する方法は、コンピュータ利用可能な媒体を含むコンピュータプログラムプロダクトに具現化されてよいことは、当業者であれば理解するところである。例えば、これらコンピュータプログラムプロダクトは、コンピュータ可読プログラムコードが格納されたCD ROMディスクまたは従来のROMデバイス、または、コンピュータディスク等の読み出し専用メモリデバイスからなっていてよい。
本発明の実施形態を、具体例を参照しながら図示し、記載してきたが、当業者であれば形態および詳細においては、添付請求項が包括する本発明の実施形態の範囲内で様々な変更が可能であることを理解する。
以下、システムメモリに対するハードウェアの攻撃から保護する方法、装置、およびシステムの諸態様を付記としてまとめて記載する。
(付記1)プロセッサにより、アプリケーションに関連付けられており、調整を用いて暗号化されているデータのブロックを暗号化する段階と、
前記暗号化されているデータのブロックを格納するべく、前記プロセッサとは別個のメモリに論理的分割領域を割り当てる段階と
を備え、
前記調整は、前記メモリのキャッシュライン識別子と、暗号化すべく識別された、前記データのブロックのキャッシュラインの位置とを含む、方法。
(付記2)前記調整で割り当てられた前記論理的分割領域に関連付けられたタイムスタンプ値を格納する段階を更に備え、
前記タイムスタンプ値は、前記プロセッサによって、前記暗号化されているデータが前記割り当てられた論理的分割領域にロードされると、および、前記暗号化されているデータが前記割り当てられた論理的分割領域からエビクトされると、増分される、付記1に記載の方法。
(付記3)前記タイムスタンプ値は、前記プロセッサのカウンタに格納され、前記カウンタは前記論理的分割領域に割り当てられる、付記2に記載の方法。
(付記4)前記カウンタは、前記プロセッサとは独立して増分される、付記3に記載の方法。
(付記5)プロセッサで、アプリケーションに関連付けられており、前記プロセッサとは別個のメモリのキャッシュライン識別子と、暗号化すべく識別された、データのブロックのキャッシュラインの位置とを含む調整を用いて暗号化されている前記データのブロックを暗号化する論理と、
前記暗号化されているデータのブロックを格納するべく、前記メモリに論理的分割領域を割り当てる論理と
を備える装置。
(付記6)調整で割り当てられた前記論理的分割領域に関連付けられたタイムスタンプ値を格納する論理を更に備え、
前記タイムスタンプ値は、前記プロセッサによって、前記暗号化されているデータが前記割り当てられた論理的分割領域にロードされると、および、前記暗号化されているデータが前記割り当てられた論理的分割領域からエビクトされると、増分される、付記5に記載の装置。
(付記7)前記タイムスタンプ値は、前記プロセッサのカウンタに格納され、前記カウンタは前記論理的分割領域に割り当てられる、付記6に記載の装置。
(付記8)前記カウンタは、前記プロセッサとは独立して増分される、付記7に記載の装置。
(付記9)プロセッサにより、アプリケーションに関連付けられており、調整を用いて暗号化されているデータのブロックを暗号化する手順と、
前記暗号化されているデータのブロックを格納するべく、前記プロセッサとは別個のメモリに論理的分割領域を割り当てる手順と
を実行させるプログラムであって、
前記調整は、前記メモリのキャッシュライン識別子と、暗号化すべく識別された、前記データのブロックのキャッシュラインの位置とを含む、プログラム。
(付記10)前記調整で割り当てられた前記論理的分割領域に関連付けられたタイムスタンプ値を格納する手順を更に備え、
前記タイムスタンプ値は、前記プロセッサによって、前記暗号化されているデータが前記割り当てられた論理的分割領域にロードされると、および、前記暗号化されているデータが前記割り当てられた論理的分割領域からエビクトされると、増分される、付記9に記載のプログラム。
(付記11)前記タイムスタンプ値は、前記プロセッサのカウンタに格納され、前記カウンタは前記論理的分割領域に割り当てられる、付記10に記載のプログラム。
(付記12)アプリケーションを格納する大容量格納装置と、
プロセッサと
を備え、
前記プロセッサは、
前記アプリケーションに関連付けられており、前記プロセッサとは別個のメモリのキャッシュライン識別子と、暗号化すべく識別された、データのブロックのキャッシュラインの位置とを含む調整を用いて暗号化されている前記データのブロックを暗号化して、前記暗号化されているデータのブロックを格納するべく、前記メモリに論理的分割領域を割り当てる論理を有する、システム。
(付記13)調整で割り当てられた前記論理的分割領域に関連付けられたタイムスタンプ値を格納する論理を更に備え、
前記タイムスタンプ値は、前記プロセッサによって、前記暗号化されているデータが前記割り当てられた論理的分割領域にロードされると、および、前記暗号化されているデータが前記割り当てられた論理的分割領域からエビクトされると、増分される、付記12に記載のシステム。
(付記14)前記タイムスタンプ値は、前記プロセッサのカウンタに格納され、前記カウンタは前記論理的分割領域に割り当てられる、付記13に記載のシステム。

Claims (13)

  1. コンピュータに実行され、システムメモリに対するハードウェアの攻撃から保護する方法であって、
    プロセッサにより、前記プロセッサとは別個のメモリを複数の論理的分割領域に分割する段階と、
    前記プロセッサ内の複数のカウンタのそれぞれを前記複数の論理的分割領域のうちの一つに割り当てる段階と、
    前記プロセッサにより、前記複数の論理的分割領域のうちの第1の論理的分割領域に記憶されるべき、アプリケーションに関連付けられたデータの第1のブロックを暗号化する段階と、
    前記第1の論理的分割領域に暗号化したデータのブロックを格納する段階と
    を備え、
    前記複数の論理的分割領域のそれぞれは、前記アプリケーションに関連付けられたデータの複数のブロックのうちの一つを記憶し、
    前記複数のカウンタのそれぞれは、前記複数の論理的分割領域のうちの割り当てられた一つに関連付けられたタイムスタンプ値を格納し、
    データの前記第1のブロックは、前記メモリのキャッシュライン識別子と、暗号化されるべき、データの前記第1のブロックの識別された前記キャッシュラインの位置と、前記第1の論理的分割領域に割り当てられた前記カウンタの前記タイムスタンプ値とを含む調整を用いて暗号化される、方法。
  2. 前記調整は、前記アプリケーションのバージョン数を示すラベル更に備える、請求項に記載の方法。
  3. 前記アプリケーションは、セキュアなアプリケーションである、請求項1または2に記載の方法。
  4. 前記調整はXTS−AES調整である、請求項1記載の方法。
  5. 前記調整はLRW調整である、請求項1記載の方法。
  6. システムメモリに対するハードウェアの攻撃から保護する装置であって、
    プロセッサ内で、前記プロセッサとは別個のメモリを複数の論理的分割領域に分割する第1の論理と、
    前記プロセッサ内の複数のカウンタのそれぞれを前記複数の論理的分割領域のうちの一つに割り当てる前記プロセッサ内の第2の論理と、
    前記複数の論理的分割領域のうちの第1の論理的分割領域に記憶されるべき、アプリケーションに関連付けられデータの第1のブロックを暗号化する前記プロセッサ内の第3の論理と、
    前記第1の論理的分割領域に暗号化したデータのブロックを格納する第4の論理と、
    を備え
    前記複数の論理的分割領域のそれぞれは、前記アプリケーションに関連付けられたデータの複数のブロックのうちの一つを記憶し、
    前記複数のカウンタのそれぞれは、前記複数の論理的分割領域のうちの割り当てられた一つに関連付けられたタイムスタンプ値を格納し、
    データの前記第1のブロックは、前記メモリのキャッシュライン識別子と、暗号化されるべき、データの前記第1のブロックの識別された前記キャッシュラインの位置と、前記第1の論理的分割領域に割り当てられた前記カウンタの前記タイムスタンプ値とを含む調整を用いて暗号化される、装置。
  7. 前記調整は、前記アプリケーションのバージョン数を示すラベル更に備える、請求項に記載の装置。
  8. 前記アプリケーションは、セキュアなアプリケーションである、請求項6または7に記載の装置。
  9. 前記調整はXTS−AES調整である、請求項に記載の装置。
  10. 前記調整はLRW調整である、請求項に記載の装置。
  11. システムメモリに対するハードウェアの攻撃から保護するシステムであって、
    アプリケーションを格納する大容量格納装置と、
    プロセッサと
    を備え、
    前記プロセッサは、
    前記プロセッサとは別個のメモリを複数の論理的分割領域に分割する第1の論理と、
    前記プロセッサ内で複数のカウンタのそれぞれを前記複数の論理的分割領域のうちの一つに割り当てる前記プロセッサ内の第2の論理と、
    前記複数の論理的分割領域のうちの第1の論理的分割領域に記憶されるべき、アプリケーションに関連付けられたデータの第1のブロックを暗号化する前記プロセッサ内の第3の論理と、
    前記第1の論理的分割領域に暗号化したデータのブロックを格納する第4の論理と、
    を有し、
    前記複数の論理的分割領域のそれぞれは、前記アプリケーションに関連付けられたデータの複数のブロックのうちの一つを記憶し、
    前記複数のカウンタのそれぞれは、前記複数の論理的分割領域のうちの割り当てられた一つに関連付けられたタイムスタンプ値を格納し、
    データの前記第1のブロックは、前記メモリのキャッシュライン識別子と、暗号化されるべき、データの前記第1のブロックの識別された前記キャッシュラインの位置と、前記第1の論理的分割領域に割り当てられた前記カウンタの前記タイムスタンプ値とを含む調整を用いて暗号化され、システム。
  12. 前記調整は、前記アプリケーションのバージョン数を示すラベルを更に含む、請求項11に記載のシステム。
  13. 前記調整は、XTS−AES調整およびLRW調整のうちのいずれかである、請求項11に記載のシステム。
JP2013529448A 2010-09-24 2011-09-24 システムメモリに対するハードウェアの攻撃から保護する方法、装置、およびシステム Active JP5632086B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/890,365 2010-09-24
US12/890,365 US8468365B2 (en) 2010-09-24 2010-09-24 Tweakable encryption mode for memory encryption with protection against replay attacks
PCT/US2011/053170 WO2012040679A2 (en) 2010-09-24 2011-09-24 A tweakable encrypion mode for memory encryption with protection against replay attacks

Publications (2)

Publication Number Publication Date
JP2013538376A JP2013538376A (ja) 2013-10-10
JP5632086B2 true JP5632086B2 (ja) 2014-11-26

Family

ID=45871895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013529448A Active JP5632086B2 (ja) 2010-09-24 2011-09-24 システムメモリに対するハードウェアの攻撃から保護する方法、装置、およびシステム

Country Status (8)

Country Link
US (1) US8468365B2 (ja)
EP (1) EP2619705B1 (ja)
JP (1) JP5632086B2 (ja)
KR (1) KR101479957B1 (ja)
CN (1) CN103109296B (ja)
AU (1) AU2011305189C1 (ja)
TW (1) TWI567557B (ja)
WO (1) WO2012040679A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014523020A (ja) * 2011-06-29 2014-09-08 インテル・コーポレーション 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468365B2 (en) 2010-09-24 2013-06-18 Intel Corporation Tweakable encryption mode for memory encryption with protection against replay attacks
US9116991B2 (en) * 2011-08-16 2015-08-25 Google Inc. Searching encrypted electronic books
TW201423469A (zh) * 2012-12-03 2014-06-16 Inst Information Industry 電子數位資料匿篩裝置、方法及其電腦可讀取紀錄媒體
US9910790B2 (en) * 2013-12-12 2018-03-06 Intel Corporation Using a memory address to form a tweak key to use to encrypt and decrypt data
US9614666B2 (en) 2014-12-23 2017-04-04 Intel Corporation Encryption interface
US9710675B2 (en) * 2015-03-26 2017-07-18 Intel Corporation Providing enhanced replay protection for a memory
CN104852798B (zh) * 2015-05-11 2017-10-03 清华大学深圳研究生院 一种数据加解密系统及方法
CN105516186B (zh) * 2015-12-31 2019-07-23 华为技术有限公司 一种防止重放攻击的方法和服务器
US10585809B2 (en) * 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
US10126960B2 (en) * 2016-05-10 2018-11-13 Qualcomm Incorporated Fuse-based anti-replay mechanism
US10880082B2 (en) 2017-10-19 2020-12-29 Hewlett Packard Enterprise Development Lp Rekeying keys for encrypted data in nonvolatile memories
KR102488636B1 (ko) 2017-11-23 2023-01-17 삼성전자주식회사 데이터 및 타임스탬프를 암호화하는 암호화 장치, 이를 포함하는 시스템 온 칩, 및 전자 장치
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10880401B2 (en) * 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
KR20200129776A (ko) 2019-05-10 2020-11-18 삼성전자주식회사 재전송 공격에 대한 방어책을 포함하는 메모리 시스템의 구동 방법 및 이를 수행하는 메모리 시스템
DE102019128528A1 (de) 2019-10-22 2021-04-22 Infineon Technologies Ag Datenkryptografievorrichtungen und speichersysteme
US11500786B2 (en) * 2019-12-03 2022-11-15 Nxp B.V. System and method for protecting memory encryption against template attacks
US20230080104A1 (en) * 2021-08-25 2023-03-16 International Business Machines Corporation Bulk data transfers via transport layer security protocol
WO2024049141A1 (ko) * 2022-09-02 2024-03-07 삼성전자주식회사 암호화된 데이터를 비휘발성 메모리 내에 저장하기 위한 전자 장치 및 그 방법

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS504190B1 (ja) * 1969-09-27 1975-02-15
US6016553A (en) 1997-09-05 2000-01-18 Wild File, Inc. Method, software and apparatus for saving, using and recovering data
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
JP4153653B2 (ja) * 2000-10-31 2008-09-24 株式会社東芝 マイクロプロセッサおよびデータ保護方法
US7444523B2 (en) * 2004-08-27 2008-10-28 Microsoft Corporation System and method for using address bits to signal security attributes of data in the address space
US7681050B2 (en) 2005-12-01 2010-03-16 Telefonaktiebolaget L M Ericsson (Publ) Secure and replay protected memory storage
US7716180B2 (en) 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
WO2007096979A1 (ja) * 2006-02-24 2007-08-30 Fujitsu Limited 情報処理装置およびデータ転送方法
WO2008018303A1 (fr) * 2006-08-10 2008-02-14 Nec Corporation Dispositif de chiffrage de bloc équipé d'une fonction d'ajustement, procédé et programme
US8095802B2 (en) 2006-09-12 2012-01-10 International Business Machines Corporation System and method for securely saving a program context to a shared memory
US7890565B2 (en) * 2007-04-30 2011-02-15 Lsi Corporation Efficient hardware implementation of tweakable block cipher
US9324361B2 (en) * 2007-08-14 2016-04-26 Seagate Technology Llc Protecting stored data from traffic analysis
US20090187771A1 (en) 2008-01-17 2009-07-23 Mclellan Jr Hubert Rae Secure data storage with key update to prevent replay attacks
US8477946B2 (en) * 2008-02-27 2013-07-02 International Business Machines Corporation Method and apparatus for protecting encryption keys in a logically partitioned computer system environment
US8607034B2 (en) * 2008-05-24 2013-12-10 Via Technologies, Inc. Apparatus and method for disabling a microprocessor that provides for a secure execution mode
WO2009156615A1 (fr) * 2008-06-02 2009-12-30 Awox Procede et dispositif de mise a jour d'application informatique
WO2010024004A1 (ja) * 2008-08-29 2010-03-04 日本電気株式会社 調整値付きブロック暗号化装置、調整値付きブロック暗号化方法及び調整値付きブロック暗号化プログラム並びに調整値付きブロック復号装置、調整値付きブロック復号方法及び調整値付きブロック復号プログラム
FI20080534A0 (fi) * 2008-09-22 2008-09-22 Envault Corp Oy Turvallinen ja valikoidusti kiistettävissä oleva tiedostovarasto
KR20110106849A (ko) * 2008-11-10 2011-09-29 윌리엄 브이 옥스포드 회귀형 보안 프로토콜을 이용하여 컴퓨팅 장치에서 코드 실행을 제어하는 방법 및 시스템
US20110255689A1 (en) * 2010-04-15 2011-10-20 Lsi Corporation Multiple-mode cryptographic module usable with memory controllers
US8468365B2 (en) 2010-09-24 2013-06-18 Intel Corporation Tweakable encryption mode for memory encryption with protection against replay attacks
RU2011107568A (ru) * 2011-03-01 2012-09-10 ЭлЭсАй Корпорейшн (US) Устройство (варианты) и способ генерирования конструкции комбинационного умножителя конечного поля малой глубины

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014523020A (ja) * 2011-06-29 2014-09-08 インテル・コーポレーション 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置

Also Published As

Publication number Publication date
CN103109296A (zh) 2013-05-15
EP2619705A4 (en) 2015-01-21
AU2011305189A1 (en) 2013-05-23
CN103109296B (zh) 2016-01-20
AU2011305189C1 (en) 2016-05-12
KR20130048260A (ko) 2013-05-09
EP2619705A2 (en) 2013-07-31
US20120079285A1 (en) 2012-03-29
KR101479957B1 (ko) 2015-01-08
TWI567557B (zh) 2017-01-21
AU2011305189B2 (en) 2015-12-10
TW201224751A (en) 2012-06-16
WO2012040679A3 (en) 2012-07-19
US8468365B2 (en) 2013-06-18
WO2012040679A2 (en) 2012-03-29
EP2619705B1 (en) 2017-12-27
JP2013538376A (ja) 2013-10-10

Similar Documents

Publication Publication Date Title
JP5632086B2 (ja) システムメモリに対するハードウェアの攻撃から保護する方法、装置、およびシステム
JP5700481B2 (ja) 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置
EP1612671B1 (en) Multitasking computer with encrypted data in shared memory
US7428306B2 (en) Encryption apparatus and method for providing an encrypted file system
US8726040B2 (en) Memory randomization for protection against side channel attacks
CN108449172B (zh) 加密/解密方法和计算设备的集成电路
US20080285747A1 (en) Encryption-based security protection method for processor and apparatus thereof
CN106209346B (zh) 白盒密码技术交错查找表
WO2023073368A1 (en) Methods and systems for secure data storage

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140509

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: 20140909

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141008

R150 Certificate of patent or registration of utility model

Ref document number: 5632086

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250