(57)【要約】【課題】セキュリティ管理ユニットとそれを含むホストコントローラインターフェース及びその動作方法、並びにホストコントローラインターフェースを含むコンピュータシステムを提供する。【解決手段】本発明のホストコントローラインターフェースの動作方法は、メインメモリからセクター情報を含むバッファデスクリプタを受信する段階と、バッファデスクリプタに含まれるソースアドレスを用いてデータをフェッチする段階と、セクター情報を用いてセキュリティポリシーテーブルからエントリーを選択する段階と、選択されたエントリーによって定義されるセキュリティポリシーを用いて、フェッチされたデータを暗号化するか否かを決定する段階と、を有する。【選択図】図１
2014086089.tif 000002
【特許請求の範囲】
【請求項１】
メインメモリからセクター情報を含むバッファデスクリプタを受信する段階と
前記バッファデスクリプタに含まれるソースアドレスを用いてデータをフェッチする段階と、
前記セクター情報を用いてセキュリティポリシーテーブルからエントリーを選択する段階と、
前記選択されたエントリーによって定義されるセキュリティポリシーを用いて、前記フェッチされたデータを暗号化するか否かを決定する段階と、を有することを特徴とするホストコントローラインターフェースの動作方法。
【請求項２】
前記バッファデスクリプタは、前記セクター情報によって指示されるストレージ装置の領域にアクセスするアプリケーションによって生成されることを特徴とする請求項１に記載のホストコントローラインターフェースの動作方法。
【請求項３】
比較結果を生成するために、前記選択されたエントリーに対するセキュリティレベル情報と前記アプリケーションに対するセキュリティレベル情報とを比較する段階と、
前記セキュリティレベル情報の比較結果に応答して、前記セクター情報によって指示されるストレージ装置の領域に前記データをライトするか否かを判断する段階と、をさらに含むことを特徴とする請求項２に記載のホストコントローラインターフェースの動作方法。
【請求項４】
比較結果を生成するために、前記選択されたエントリーに対するアクセス動作情報と前記フェッチされたデータに対する入／出力動作情報とを比較する段階と、
前記動作情報の比較結果に応答して、前記セクター情報によって指示されるストレージ装置の領域に前記データをライトするか否かを判断する段階と、をさらに含むことを特徴とする請求項２に記載のホストコントローラインターフェースの動作方法。
【請求項５】
前記セキュリティポリシーテーブルは、前記メインメモリに保存されることを特徴とする請求項１に記載のホストコントローラインターフェースの動作方法。
【請求項６】
前記バッファデスクリプタは、ソースアドレス、宛先アドレス、及びデータ長を含むことを特徴とする請求項１に記載のホストコントローラインターフェースの動作方法。
【請求項７】
前記バッファデスクリプタは、セキュリティキーを含み、
前記セキュリティキーを用いて前記フェッチされたデータを暗号化する段階をさらに含むことを特徴とする請求項６に記載のホストコントローラインターフェースの動作方法。
【請求項８】
ストレージ装置の第１領域に対する第１セキュリティポリシーを定義する第１エントリー及び前記ストレージ装置の第２領域に対する第２セキュリティポリシーを定義する第２エントリーを含み、メモリに保存されたセキュリティポリシーテーブルと、
バッファデスクリプタに含まれるセクター情報に応答して、前記第１エントリー及び前記第２エントリーのうちの何れか１つを選択し、前記第１セキュリティポリシーまたは前記第２セキュリティポリシーによってデータを暗号化するか否かを指示する第１制御信号を提供するセクターアクセス制御ロジックと、を備えることを特徴とするセキュリティ管理ユニット。
【請求項９】
セキュアＣＰＵによって提供されたテーブルアップデート命令に応答して、前記第１セキュリティポリシー及び前記第２セキュリティポリシーのうちの何れか１つを変更するテーブルアクセス制御ロジックをさらに含むことを特徴とする請求項８に記載のセキュリティ管理ユニット。
【請求項１０】
前記第１セキュリティポリシー及び前記第２セキュリティポリシーのうちの何れか１つは、セキュリティレベル情報及びアクセス動作情報のうちの少なくとも１つを含むことを特徴とする請求項８に記載のセキュリティ管理ユニット。
【請求項１１】
前記セクターアクセス制御ロジックは、メモリからセクター情報及びセキュリティレベル情報を受信し、前記選択された第１又は第２エントリーに対するセキュリティレベル情報と実行中のアプリケーションに対するセキュリティレベル情報とを比較し、前記ストレージ装置の第１又は第２領域に対するアクセスを許可する第２制御信号を出力することを特徴とする請求項１０に記載のセキュリティ管理ユニット。
【請求項１２】
前記セクターアクセス制御ロジックは、セクター情報及びアクセス動作信号を受信し、前記選択された第１又は第２エントリーに対するアクセス動作情報とデータアクセス動作情報とを比較し、前記ストレージ装置の第１又は第２領域に対するアクセスを許可する第２制御信号を出力することを特徴とする請求項１０に記載のセキュリティ管理ユニット。
【請求項１３】
前記セキュリティ管理ユニットは、ホストコントローラインターフェースの内部に具現されることを特徴とする請求項８に記載のセキュリティ管理ユニット。
【請求項１４】
バッファデスクリプタに含まれるソースアドレスを用いてメインメモリからデータをリードし、前記バッファデスクリプタに含まれるセクター情報に応答してセクターキーを出力するストレージコントローラと、
前記セクターキーに応答してメモリに保存されたセキュリティポリシーテーブルからエントリーを選択し、該選択されたエントリーに対応するセキュリティポリシーを定義する第１制御信号を出力するセキュリティ管理ユニットと、
前記第１制御信号に応答して、前記データに対して暗号化動作を行うか否かを決定するデータ保護器と、を備え、
前記セキュリティポリシーテーブルは、それぞれがストレージ装置の複数の領域のうちの少なくとも１つに対して対応するセキュリティポリシーを定義する複数のエントリーを含むことを特徴とするホストコントローラインターフェース。
【請求項１５】
前記データ保護器は、前記第１制御信号及び前記セクターキーに応答して、前記暗号化動作を実行することを特徴とする請求項１４に記載のホストコントローラインターフェース。
【請求項１６】
前記データ保護器は、前記第１制御信号と前記バッファデスクリプタに含まれるセキュリティキーとに応答して、前記暗号化動作を実行することを特徴とする請求項１４に記載のホストコントローラインターフェース。
【請求項１７】
前記バッファデスクリプタを生成するアプリケーションに対するセキュリティレベル情報を保存し、前記セキュリティレベル情報を表わすセキュリティレベル信号を前記セキュリティ管理ユニットに出力するトランザクションタイプレジスタをさらに含むことを特徴とする請求項１４に記載のホストコントローラインターフェース。
【請求項１８】
前記セキュリティ管理ユニットは、
前記メインメモリから前記セクター情報及び前記セキュリティレベル信号を受信し、前記選択されたエントリーに含まれるセキュリティレベル情報と前記セキュリティレベル信号とを比較し、該比較結果によって、前記ストレージ装置の特定領域に対するアクセスを許可するか否かを指示する第２制御信号を出力することを特徴とする請求項１７に記載のホストコントローラインターフェース。
【請求項１９】
前記セキュリティ管理ユニットは、
前記セクター情報と前記ストレージコントローラから出力されたアクセス動作信号とを受信し、前記選択されたエントリーに含まれるアクセス動作情報とデータアクセス動作情報とを比較し、該比較結果によって、前記ストレージ装置の特定領域に対するアクセスを許可するか否かを指示する第２制御信号を出力することを特徴とする請求項１７に記載のホストコントローラインターフェース。
【請求項２０】
複数の領域を含むストレージ装置と、
前記複数の領域のうちの１つの領域をアクセスするアプリケーションが実行される間にバッファデスクリプタを生成するＣＰＵと、
前記バッファデスクリプタ及びデータを保存するメインメモリと、
前記バッファデスクリプタに含まれるソースアドレスを用いて前記メインメモリから前記データをリードし、セクター情報に応答して複数のエントリーのうちの何れか１つを選択し、該選択されたエントリーによって定義されたセキュリティポリシーに基づいて、前記データに対する暗号化動作を実行するか否かを決定するホストコントローラインターフェースと、を備え、
前記複数のエントリーのそれぞれは、前記ストレージ装置で前記複数の領域のそれぞれに対して異なるセキュリティポリシーを管理することを特徴とするコンピュータシステム。
【請求項２１】
前記ホストコントローラインターフェースは、
前記ソースアドレスを用いて前記メインメモリから前記データをリードし、前記セクター情報に応答してセクターキーを出力するストレージコントローラと、
前記セクターキーに応答して、前記選択されたエントリーを選択し、前記選択されたエントリーに定義されたセキュリティポリシーに応答して第１制御信号を出力するセキュリティ管理ユニットと、
前記第１制御信号に基づいて、前記データに対する暗号化動作を実行するか否かを決定するデータ保護器と、を含むことを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２２】
前記ストレージ装置は、
ハードディスクドライブ（ＨＤＤ）、コンパクトディスク、ソリッドステートドライブ（ＳＳＤ）、マルチメディアカード（ＭＭＣ）、エンベデッドマルチメディアカード（ｅＭＭＣ）、及びユニバーサルフラッシュストレージ（ＵＦＳ）のうちの何れか１つであることを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２３】
前記ストレージ装置と前記ホストコントローラインターフェースとは、シリアルＡＴＡインターフェースを通じて通信することを特徴とする請求項２０に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコントローラインターフェース（Ｈｏｓｔ  Ｃｏｎｔｒｏｌｌｅｒ  Ｉｎｔｅｒｆａｃｅ）に係り、より詳しくはストレージ（ｓｔｏｒａｇｅ）装置の領域に応じてセキュリティポリシーを管理することができるセキュリティ管理ユニット（Ｓｅｃｕｒｉｔｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）、該セキュリティ管理ユニットを含むホストコントローラインターフェース及びその動作方法と、該ホストコントローラインターフェースを含むコンピュータシステムに関する。
【背景技術】
【０００２】
データセキュリティは、近年コンピュータシステムでストレージ装置の動作及び設計に対する重要な考慮対象となっている。効果的なデータアクセスセキュリティは、保存されたデータに対して許可されていないアクセスが、保存されたデータを、リード（ｒｅａｄ）、操作、変更、変造、偽造または抽出しようとした場合、保存されたデータに対する許可されていないアクセス（ａｃｃｅｓｓ）を必ず遮断しなければならない。また、効果的なデータアクセスセキュリティは、合法的なユーザによって保存されたデータに対するアクセスを阻むように外部の侵入者を遮断しなければならない。
【０００３】
ホストコントローラインターフェースとストレージ装置との間に存在するデータバスまたはデータバスによって伝送されるデータ信号は、データを保存する間に度々不正アクセスの標的になる。その結果、従来の多くのシステムは、ホストコントローラとストレージ装置との間で伝送されるデータを暗号化していた。
【０００４】
多様な暗号化方法と暗号化モジュールが、このような目的のためにホストコントローラインターフェースと結合して利用される。従来のアクセス方法は、データセキュリティポリシーが、あらゆるストレージ装置の領域を通じて保存されたあらゆるデータに供給される間に、かなり長期間に亘ってよく作動してきた。
【０００５】
これは、いわゆるセキュアプロセッサと呼ばれ、ストレージ装置のために特別なデータセキュリティポリシーの管理に利用される。データプロセッシング（ｄａｔａ  ｐｒｏｃｅｓｓｉｎｇ）が、非セキュアプロセッサ（ｎｏｎ−ｓｅｃｕｒｅ  ｐｒｏｃｅｓｓｏｒ）によって行われる場合、膨大なオーバーヘッド（ｏｖｅｒｈｅａｄ）に直面することもある。したがって、それぞれ異なるデータセキュリティポリシーを有するデータ間のプロセッサスイッチングは、構築されたコンピュータシステムの性能を全般的に低下させる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、上記問題点に鑑みてなされたものであって、本発明の目的とするところは、ストレージ装置の特定の領域に応じてセキュリティポリシーを変えて管理することができるセキュリティポリシーテーブルを含むセキュリティ管理ユニットを提供することにある。このようなセキュリティ管理ユニットの使用は、セキュリティポリシーの変更のために発生する従来のコンピュータシステム内で計算オーバーヘッド（ｃｏｍｐｕｔａｔｉｏｎａｌ  ｏｖｅｒｈｅａｄ）を最小化する必要がある。
【０００７】
また、本発明の目的は、セキュリティ管理ユニットを含むホストコントローラインターフェースを提供することにある。  また、本発明の目的は、セキュリティ管理ユニットを含むホストコントローラインターフェースの動作方法と、該ホストコントローラインターフェースを含むコンピュータシステムを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するためになされた本発明の一態様によるホストコントローラインターフェースの動作方法は、メインメモリからセクター情報を含むバッファデスクリプタを受信する段階と、前記バッファデスクリプタに含まれるソースアドレスを用いてデータをフェッチする段階と、前記セクター情報を用いてセキュリティポリシーテーブルからエントリー（ｅｎｔｒｙ）を選択する段階と、前記選択されたエントリーによって定義されるセキュリティポリシーを用いて、前記フェッチされたデータを暗号化するか否かを決定する段階と、を有することを特徴とする。
【０００９】
前記バッファデスクリプタは、前記セクター情報によって指示されるストレージ装置の領域にアクセスするアプリケーションによって生成されることが好ましい。
【００１０】
前記ホストコントローラインターフェースの動作方法は、比較結果を生成するために、前記選択されたエントリーに対するセキュリティレベル情報と前記アプリケーションに対するセキュリティレベル情報とを比較する段階と、前記セキュリティレベル情報の比較結果に応答して、前記セクター情報によって指示されるストレージ装置の領域に前記データをライトするか否かを判断する段階と、をさらに含むことが好ましい。
また、前記ホストコントローラインターフェースの動作方法は、比較結果を生成するために、前記選択されたエントリーに対するアクセス動作情報と前記フェッチされたデータに対する入／出力動作情報とを比較する段階と、前記動作情報の比較結果に応答して、前記セクター情報によって指示されるストレージ装置の領域に前記データをライトするか否かを判断する段階と、をさらに含むことが好ましい。
前記セキュリティポリシーテーブルは、前記メインメモリに保存されることが好ましい。
前記バッファデスクリプタは、ソースアドレス、宛先アドレス、及びデータ長を含むことが好ましい。
前記バッファデスクリプタは、セキュリティキーを含み、前記ホストコントローラインターフェースの動作方法は、前記セキュリティキーを用いて前記フェッチされたデータを暗号化する段階をさらに含むことが好ましい。
【００１１】
上記目的を達成するためになされた本発明の一態様によるセキュリティ管理ユニットは、ストレージ装置の第１領域に対する第１セキュリティポリシーを定義する第１エントリー及び前記ストレージ装置の第２領域に対する第２セキュリティポリシーを定義する第２エントリーを含み、メモリに保存されたセキュリティポリシーテーブルと、バッファデスクリプタに含まれるセクター情報に応答して、前記第１エントリー及び前記第２エントリーのうちの何れか１つを選択し、前記第１セキュリティポリシーまたは前記第２セキュリティポリシーによってデータを暗号化するか否かを指示する第１制御信号を提供するセクターアクセス制御ロジックと、を備えることを特徴とする。
【００１２】
前記セキュリティ管理ユニットは、セキュアＣＰＵによって提供されたテーブルアップデート命令に応答して、前記第１セキュリティポリシー及び前記第２セキュリティポリシーのうちの何れか１つを変更するテーブルアクセス制御ロジックをさらに含むことが好ましい。
前記第１セキュリティポリシー及び前記第２セキュリティポリシーのうちの何れか１つは、セキュリティレベル情報及びアクセス動作情報とのうちの少なくとも１つを含むことが好ましい。
前記セクターアクセス制御ロジックは、メモリからセクター情報及びセキュリティレベル信号を受信し、前記選択された第１または第２エントリーに対するセキュリティレベル情報と実行中のアプリケーションに対するセキュリティレベル情報とを比較し、前記ストレージ装置の第１または第２領域に対するアクセスを許可する第２制御信号を出力することが好ましい。
前記セクターアクセス制御ロジックは、セクター情報及びアクセス動作信号を受信し、前記選択された第１又は第２エントリーに対するアクセス動作情報とデータアクセス動作情報とを比較し、前記ストレージ装置の第１又は第２領域に対するアクセスを許可する第２制御信号を出力するのが好ましい。
前記セキュリティ管理ユニットは、ホストコントローラインターフェースの内部に具現されることが好ましい。
【００１３】
上記目的を達成するためになされた本発明の一態様によるホストコントローラインターフェースは、バッファデスクリプタに含まれるソースアドレスを用いてメインメモリからデータをリードし、前記バッファデスクリプタに含まれるセクター情報に応答してセクターキーを出力するストレージコントローラと、前記セクターキーに応答してメモリに保存されたセキュリティポリシーテーブルからエントリーを選択し、該選択されたエントリーに対応するセキュリティポリシーを定義する第１制御信号を出力するセキュリティ管理ユニットと、前記第１制御信号に応答して、前記データに対して暗号化動作を行うか否かを決定するデータ保護器と、を備え、前記セキュリティポリシーテーブルは、それぞれがストレージ装置の複数の領域のうちの少なくとも１つに対して対応するセキュリティポリシーを定義する複数のエントリーを含むことを特徴とする。
【００１４】
前記データ保護器は、前記第１制御信号及び前記セクターキーに応答して、前記暗号化動作を実行するのが好ましい。
前記データ保護器は、前記第１制御信号と前記バッファデスクリプタに含まれるセキュリティキーとに応答して、前記暗号化動作を実行するのが好ましい。
前記ホストコントローラインターフェースは、前記バッファデスクリプタを生成するアプリケーションに対するセキュリティレベル情報を保存し、前記セキュリティレベル情報を表わすセキュリティレベル信号を前記セキュリティ管理ユニットに出力するトランザクションタイプレジスタをさらに含むことが好ましい。
前記セキュリティ管理ユニットは、
前記メインメモリから前記セクター情報及び前記セキュリティレベル信号を受信し、前記選択されたエントリーに含まれるセキュリティレベル情報と前記セキュリティレベル信号とを比較し、該比較結果によって、前記ストレージ装置の特定領域に対するアクセスを許可するか否かを指示する第２制御信号を出力することが好ましい。
前記セキュリティ管理ユニットは、
前記セクター情報と前記ストレージコントローラから出力されたアクセス動作信号とを受信し、前記選択されたエントリーに含まれるアクセス動作情報とデータアクセス動作情報とを比較し、該比較結果によって、前記ストレージ装置の特定領域に対するアクセスを許可するか否かを指示する第２制御信号を出力することが好ましい。
【００１５】
上記目的を達成するためになされた本発明の一態様によるコンピュータシステムは、複数の領域を含むストレージ装置と、前記複数の領域のうちの１つの領域をアクセスするアプリケーションが実行される間に、バッファデスクリプタを生成するＣＰＵと、前記バッファデスクリプタ及びデータを保存するメインメモリと、前記バッファデスクリプタに含まれるソースアドレスを用いて前記メインメモリから前記データをリードし、セクター情報に応答して複数のエントリーのうちの何れか１つを選択し、該選択されたエントリーによって定義されたセキュリティポリシーに基づいて、前記データに対する暗号化動作を実行するか否かを決定するホストコントローラインターフェースと、を備え、前記複数のエントリーのそれぞれは、前記ストレージ装置で前記複数の領域のそれぞれに対して異なるセキュリティポリシーを管理することを特徴とする。
【００１６】
前記ホストコントローラインターフェースは、
前記ソースアドレスを用いて前記メインメモリから前記データをリードし、前記セクター情報に応答してセクターキーを出力するストレージコントローラと、
前記セクターキーに応答して、前記選択されたエントリーを選択し、前記選択されたエントリーに定義されたセキュリティポリシーに応答して第１制御信号を出力するセキュリティ管理ユニットと、
前記第１制御信号に基づいて、前記データに対する暗号化動作を実行するか否かを決定するデータ保護器と、を含むことが好ましい。
前記ストレージ装置は、
ハードディスクドライブ（ＨＤＤ）、コンパクトディスク、ソリッドステートドライブ（ＳＳＤ）、マルチメディアカード（ＭＭＣ）、エンベデッドマルチメディアカード（ｅＭＭＣ）、及びユニバーサルフラッシュストレージ（ＵＦＳ）のうちの何れか１つであることが好ましい。
前記ストレージ装置と前記ホストコントローラインターフェースとは、シリアルＡＴＡインターフェースを通じて通信することが好ましい。
【発明の効果】
【００１７】
本発明によれば、ホストコントローラインターフェースは、セキュリティポリシーテーブルを含むセキュリティ管理ユニットを使って、ストレージ装置の領域によって異なるセキュリティポリシーを効率的に管理することができる。
また、ホストコントローラインターフェースは、セキュリティポリシーが、ストレージ装置の特定の領域で変更された場合も、プロセッサ間のスイッチングによって引き起こされるシステムの性能低下なしに、セキュリティ管理ユニットを用いて動作を持続的に実行させることができる。
また、ホストコントローラインターフェースは、アプリケーションがデータを生成する時、セクター別にセキュリティキーを生成するので、ストレージ装置に既に保存され、前のアプリケーションに関連するデータをリードするものから、同じデータの暗号化及び／または復号化の権限を有する他のアプリケーションを遮断することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態によるコンピュータシステムを示すブロック図である。
【図２】本発明の他の実施形態によるコンピュータシステムを示すブロック図である。
【図３】図１及び図２のコンピュータシステムで使われるバッファデスクリプタの一実施形態を示す概念図である。
【図４】図１のストレージ装置に対する部分的なメモリマップを示すブロック図である。
【図５】図１及び図２のコンピュータシステムで使われるホストコントローラインターフェースを示すブロック図である。
【図６】図５のセキュリティ管理ユニットで使われるセキュリポリシーティテーブルを示す概念図である。
【図７】図５のセキュリティ管理ユニットを示すブロック図である。
【図８】本発明の一実施形態による直接メモリアクセス動作に対する初期動作を示す動作図である。
【図９Ａ】本発明の一実施形態による直接メモリアクセス動作に対する動作方法を示すフローチャートである。
【図９Ｂ】本発明の一実施形態による直接メモリアクセス動作に対する動作方法を示すフローチャートである。
【図１０】図５のセキュリティ管理ユニットで使われる他のセキュリティポリシーテーブルを示す概念図である。
【図１１】図１０のセキュリティポリシーテーブルを修正する動作方法を示すものであって、図９の直接メモリアクセス動作の一部を示す部分フローチャートである。
【図１２】ｅＭＭＣ（ｅｍｂｅｄｄｅｄ  ＭｕｌｔｉＭｅｄｉａ  Ｃａｒｄ）が、本発明の実施形態として使われる時、セキュリティポリシーテーブルに保存される複数の信号のリストを示す図面である。
【図１３】図５のセキュリティ管理ユニットに含まれるセキュリティポリシーテーブルの他の概念図である。
【図１４】図１及び図２のコンピュータシステムで使われるバッファデスクリプタの他の実施形態を示す概念図である。
【図１５】図１及び図２のコンピュータシステムで使われるホストコントローラインターフェースの他の実施形態を示す個別的なブロック図である。
【図１６】図１及び図２のコンピュータシステムで使われるホストコントローラインターフェースの他の実施形態を示す個別的なブロック図である。
【図１７】図１及び図２のコンピュータシステムで使われるホストコントローラインターフェースの他の実施形態を示す個別的なブロック図である。
【図１８】本発明の他の実施形態によるコンピュータシステムを示すブロックである。
【発明を実施するための形態】
【００１９】
以下、図面を参照しながら本発明のセキュリティ管理ユニットとそれを含むホストコントローラインターフェース及びその動作方法、並びにホストコントローラインターフェースを含むコンピュータシステムを実施するための形態の具体例を、詳細に説明する。
【００２０】
本明細書で使われる“コンピュータシステム”という用語は、データストレージ装置（ｄａｔａ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅ）に保存されたデータ及び／またはデータストレージ装置から復旧されたデータに対するデータ処理の多様な形態を実行するデジタルプラットフォーム（ｄｉｇｉｔａｌ  ｐｌａｔｆｏｒｍ）を幅広く意味する。コンピュータシステムは、プロセッサ及び周辺ロジック回路を含む。コンピュータシステムのプロセッサは、オペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ：ＯＳ）によって１つまたはそれ以上のアプリケーションを“実行”することができる。
【００２１】
プロセッサによるアプリケーションの実行に関連するデータ、例えば、リードデータまたはライトデータは、メインメモリ（ｍａｉｎ  ｍｅｍｏｒｙ）に保存することができる。したがって、メインメモリに保存された“データ”は、アプリケーション及び／または命令に基づいてプロセッサによって生成されたかまたは作動する実データ（例えば、ユーザデータ、ペイロードデータ、または計算データなど）内で命令を定義するデータにプログラムされる。コンピュータシステムは、同時にまたは連続して１つまたはそれ以上のアプリケーションを実行させることができる。
【００２２】
図１は、本発明の一実施形態によるコンピュータシステムを示すブロック図である。図１を参照すると、コンピュータシステム１０００は、中央処理装置（ＣＰＵ）１１００、メインメモリ１２００、メインメモリコントローラ１３００、ホストコントローラインターフェース１４００、及びストレージ装置１５００を含む。
【００２３】
コンピュータシステム１０００は、携帯電話またはラップトップコンピュータのようなモバイル装置、パソコン（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）、サーバコンピュータ、プログラム可能な家電製品、またはメインフレームコンピュータのような汎用または特殊目的のコンピュータシステムである。
【００２４】
ＣＰＵ１１００は、コンピュータシステム１０００の全般的な動作を制御し、図１に示すセキュアＣＰＵ１１１０及び非セキュア（ｎｏｎ−ｓｅｃｕｒｅ）ＣＰＵ１１２０を含む。セキュアＣＰＵ１１１０は、コンピュータシステムブーティング（ｂｏｏｔｉｎｇ）動作と確実な１つまたはそれ以上の認証過程の実行に利用される。一方、非セキュアＣＰＵ１１２０は、セキュリティモジュールまたは暗号化されたデータ領域に保存されたデータにアクセスできない。
【００２５】
例えば、コンピュータシステム１０００は、高いデータセキュリティレベルを要求するアプリケーション（例えば、銀行アプリケーションまたは証券アプリケーション）を実行させるモバイル装置と仮定する。
【００２６】
高セキュリティアプリケーションは、データ証明またはデータ認証を要求するものであり、必ずセキュアＣＰＵ１１１０によって実行されなければならない。一方、コンピュータシステム１０００は、非セキュアＣＰＵ１１２０を用いて複数の低セキュリティアプリケーション、例えば、電子ブックまたはゲームアプリケーションを実行させることができる。
【００２７】
実行中のアプリケーション、すなわち、ＣＰＵ１１００によって現在実行中のアプリケーションがストレージ装置１５００に保存されたデータにアクセスする時、ＣＰＵ１１００は、関連データ、例えば、リードデータまたはライトデータに対する保存位置を識別するバッファデスクリプタ（ＢＤ）を生成し、メインメモリ１２００にデータと共にバッファデスクリプタ（ＢＤ）を保存する。ここで、生成されたバッファデスクリプタ（ＢＤ）は、メインメモリ１２００の特別なバッファデスクリプタ（Ｂｕｆｆｅｒ  Ｄｅｓｃｒｉｐｔｏｒ：ＢＤ）領域１２１０に保存される。
【００２８】
このため、メインメモリ１２００は、一時的にデータを保存するデータ記録媒体（例えば、システムメモリまたはキャッシュメモリ）として理解される。したがって、メインメモリ１２００は、ファイルシステム形式に応じてデータの保存に使われるか、またはＣＰＵ１１００によって生成された１つまたはそれ以上のバッファデスクリプタ（ＢＤ）をＢＤ領域１２１０に保存することができる。
【００２９】
ＣＰＵ１１００と共にメインメモリコントローラ１３００は、メインメモリ１２００の制御に使われる。メインメモリコントローラ１３００は、複数のバスインターフェースポートを支援するので、メインメモリコントローラ１３００は、セキュアＣＰＵ１１１０、非セキュアＣＰＵ１１２０、及びホストコントローラインターフェース１４００に接続される。
【００３０】
ホストコントローラインターフェース１４００は、メインメモリ１２００とストレージ装置１５００との間でデータ（例えば、ＤＡＴＡとＤＡＴＡ’）を伝送するためのハードウェア基盤のインターフェースを提供する。ホストコントローラインターフェース１４００は、直接メモリアクセス（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ：ＤＭＡ）マスタ（ｍａｓｔｅｒ）機能を提供する。ＤＭＡマスタ機能を有するホストコントローラインターフェース１４００は、セキュアＣＰＵ１１１０によって設定された“セキュリティレベル”または“セキュリティ定義”を有する“セキュアトランザクション”（ｓｅｃｕｒｅ  ｔｒａｎｓａｃｔｉｏｎ）の生成に使われる。
【００３１】
また、ホストコントローラインターフェース１４００は、非セキュアＣＰＵ１１２０によって設定された特別ではないセキュリティレベル（相対的に低いセキュリティレベル）を有する“非セキュアトランザクション”（ｎｏｎ−ｓｅｃｕｒｅ  ｔｒａｎｓａｃｔｉｏｎ）の生成に使われる。ホストコントローラインターフェース１４００とストレージ装置１５００は、シリアルＡＴＡ（ＳＡＴＡ）インターフェースを使って通信し、セクター（ｓｅｃｔｏｒ）は、アドレスユニット（ａｄｄｒｅｓｓ  ｕｎｉｔ）として使われる。
【００３２】
ストレージ装置１５００は、大容量データ（例えば、ソフトウェアまたはユーザデータなど）を長期的に、または不揮発性で保存することができるデータ記録媒体（ｄａｔａ  ｓｔｏｒａｇｅ  ｍｅｄｉａ）とみなすことができる。
【００３３】
図１に示すように、ストレージ装置１５００は、セキュアな要求されたデータを保存するために提供される暗号化領域１５１０と、一般データまたは非セキュアな要求されたデータを保存するために提供される非暗号化領域１５２０と、を含む。暗号化領域１５１０からセキュアな要求されたデータにアクセスするかまたはデータを生成する１つまたはそれ以上の高いセキュリティアプリケーションのみが暗号化領域１５１０にアクセスすることができる。
【００３４】
図２は、本発明の他の実施形態によるコンピュータシステムを示すブロック図である。
図２を参照すると、コンピュータシステム２０００は、ＣＰＵ２１００、メインメモリ２２００、メインメモリコントローラ２３００、ホストコントローラインターフェース２４００、及びストレージ装置２５００を含む。ＣＰＵ２１００、メインメモリ２２００、メインメモリコントローラ２３００、及びホストコントローラインターフェース２４００は、システムバス２６００を通じて通信する。
図１のコンピュータシステム１０００と比較して、図２のコンピュータシステム２０００のメモリコントローラ２３００は、１つのバスインターフェースポート（ｓｉｎｇｌｅ  ｂｕｓ  ｉｎｔｅｒｆａｃｅｐｏｒｔ）のみを支援する。したがって、ＣＰＵ２１００は、与えられた時間でシステムバス２６００を通じてメモリコントローラ２３００またはホストコントローラインターフェース２４００と電気的に接続される。
【００３５】
ＣＰＵ２１００は、セキュアモード２１１０または非セキュアモード２１２０で動作する。セキュアモード２１１０と非セキュアモード２１２０のそれぞれは、ＣＰＵ２１００によって実行中のアプリケーションによって決定される。ＣＰＵ２１００が低セキュリティアプリケーションに応答して、非セキュアモード２１２０で作動する時、ＣＰＵ２１００は、セキュリティモジュールまたは暗号化されたメモリ領域を同時にアクセスできない。
【００３６】
図２のホストコントローラインターフェース２４００の構造と動作は、図１のホストインターフェース１４００の構造の動作と実質的に同じである。
【００３７】
図３は、図１及び図２のコンピュータシステムで使われるバッファデスクリプタの一実施形態を示す概念図である。図１〜図３を参照すると、バッファデスクリプタ１０は、ソースアドレス１１、宛先アドレス１２、データ長１３、及び次の宛先ポインター（ｐｏｉｎｔｅｒ  ｔｏ  ＮＥＸＴ  ｄｅｓｔｉｎａｔｉｏｎ）１４を含む。
【００３８】
ソースアドレス１１は、ソースデータ、すなわち、処理されるデータが保存された位置を指示する。宛先アドレス１２は、結果データ、すなわち、処理後のデータが保存される位置を指示する。データ長１３は、伝送されるデータのサイズを指示し、次の宛先ポインター１４は、現在のメモリアクセス動作後の次のメモリアクセス位置を指示する。
【００３９】
リード動作中には、ＣＰＵ（１１００または２１００）は、ストレージ装置（１５００または２５００）に保存されたリードデータＤＡＴＡ’に対応するバッファデスクリプタ１０を生成する。この際、バッファデスクリプタ１０のソースアドレス１１は、ストレージ装置（１５００または２５００）のアドレスを含み、宛先アドレス１２は、メインメモリ（１２００または２２００）のアドレスを含む。
【００４０】
ライト動作中に、ＣＰＵ（１１００または２１００）は、メインメモリ（１２００または２２００）に一時的に保存され、ストレージ装置（１５００または２５００）に、プログラムされるライトデータＤＡＴＡに対応するバッファデスクリプタ１０を生成する。この際、バッファデスクリプタ１０のソースアドレス１１は、メインメモリ（１２００または２２００）のアドレスを含み、宛先アドレス１２は、ストレージ装置（１５００または２５００）のアドレスを含む。
【００４１】
各ホストコントローラインターフェース（１４００または２４００）の構造と動作は、後述の図５、図１５、図１６、及び図１７を参照して詳しく説明する。
【００４２】
図４は、図１のストレージ装置の部分的なメモリマップを示すブロック図である。ストレージ装置１５００は、ハードディスクドライブ（ＨＤＤ）のような磁気保存装置、コンパクトディスク（ＣＤ）のような光学保存ディスク、またはソリッドステートドライブ（ＳＳＤ）、マルチメディアカード（ＭＭＣ）、及びユニバーサルフラッシュストレージ（ＵＦＳ）のようなフラッシュメモリなどで具現される
【００４３】
ＨＤＤが使われる場合、情報は、高速で回転する磁気ディスクに保存される。データは、１つまたはそれ以上のリードヘッドまたはライトヘッドを用いて、磁気ディスクに対してリード／ライトされる。ＨＤＤに比べると、従来のＳＳＤは、相対的に高速リード動作を行うが、ライト動作は相対的に低速である。
【００４４】
ＭＭＣは、携帯電話、スマートフォン、モバイルインターネット装置（ＭＩＤ）、コンピュータ、またはデジタルカメラのような多様なデジタル機器でデータを保存し、移動することができる着脱可能な装置であって、データを保存する保存空間と演算及び制御を担当する部分で構成される。
【００４５】
ＵＦＳは、低消費電力を有するフラッシュ基盤のストレージ装置である。ＵＦＳは、ＳＳＤのような保存機能を有する一方、高速シリアルインターフェースを使い、ランダムアクセス機能を向上させるために、コマンドキューイング（ｃｏｍｍａｎｄ  ｑｕｅｕｉｎｇ）機能を内蔵し、シリアルインターフェースの節電機能を内蔵する。
【００４６】
一般的に、ストレージ装置１５００は、ＣＨＳ（シリンダー、ヘッド、セクター）アドレスユニットまたは論理ブロックアドレス（ＬＢＡ）を有する。ＬＢＡは、ストレージ装置１５００内でデータブロックの位置の指定に使われる。ＬＢＡは、アドレスまたはブロック（すなわち、インデックス）を指定する。セクターと論理ブロックは、５１２バイトまたは１０２４バイトのように５１２バイトの整数倍になる。
【００４７】
図４を参照すると、ストレージ装置１５００Ａは、それぞれが異なるセキュリティ定義またはセキュリティポリシーを有するデータを保存する複数の領域３１〜３８を含む。ストレージ装置の種類によって、複数の領域のそれぞれは、セグメントユニット、セクターユニット、またはパーティションユニットに区分される。
【００４８】
特別なセキュリティポリシーは、実行中のアプリケーションに対して規定されたセキュリティレベルによってＤＭＡ動作時に決定される。したがって、実行中のアプリケーションのセキュリティポリシーは、特定の領域に対するアクセス可能如何、特定の領域に保存されたデータが暗号化されているかの有無、またはライト動作の可能如何などによって決定される。
【００４９】
したがって、図４の第１領域３１は、特別なセキュリティポリシーを有するセキュリティアプリケーションのみがアクセスすることができる。この際、第１領域３１は、暗号化されたデータのみが保存され、第１領域３１に保存された暗号化されたデータに対してリード動作のみが許可される。第３領域３３は、第１領域３１と同様に定義される。しかし、第２領域３２は、非セキュリティアプリケーションによってアクセスされ、平文テキストデータまたは非暗号化されたデータが保存され、リード動作とライト動作とがいずれも許可される。
【００５０】
第４領域３４は、非セキュリティアプリケーションによってアクセスされ、暗号化されたデータが保存され、リード動作のみが許可され、第８領域３８は、第４領域３４と同様に定義される。
【００５１】
図５は、図１及び図２のコンピュータシステムで使われるホストコントローラインターフェースを示すブロック図である。図１及び図５を参照すると、ホストコントローラインターフェース１４００Ａは、ストレージコントローラ３１０、セキュリティ管理ユニット３２０、データ保護器３３０、及びトランザクションタイプレジスタ３４０を含む。
【００５２】
ストレージコントローラ３１０は、ストレージ装置１５００に保存されたデータに対するデータアクセス動作を制御する。ストレージ装置１５００に保存されたデータがセクターによって定義される場合、それぞれのセクターにセクターキー（ｓｅｃｔｏｒ  ｋｅｙ）を割り当てる従来のＸＴＳ−ＡＥＳ方式は、ストレージ装置１５００に保存されたデータの暗号化に対する１つのアプローチとして利用される。
【００５３】
図５に示すように、ストレージコントローラ３１０は、メインメモリ１２００からバッファデスクリプタ（ＢＤ）を受信する。ストレージコントローラ３１０は、メインメモリ１２００に保存された特定のデータＤＡＴＡを識別するために、バッファデスクリプタ（ＢＤ）に含まれるソースアドレスを使う。
【００５４】
また、ストレージコントローラ３１０は、バッファデスクリプタ（ＢＤ）に含まれるセクター情報に基づいてセクターキーＳＥＣＴＯＲ＿ＫＥＹをデータ保護器３３０に提供する。バッファデスクリプタ（ＢＤ）に含まれるセクター情報は、ストレージ装置１５００に伝送される当該セクターアドレスＳＥＣＴＯＲ＿ＡＤＤを生成する情報であって、ストレージコントローラ３１０によって使われる。この際、データプロセッシング動作中に、１つのセクターキーは、ストレージコントローラ３１０がセクター情報を如何に使うかに無関係にセクター情報から固有に生成される。
【００５５】
セキュリティ管理ユニット３２０は、それぞれがストレージ装置１５００の特定領域に対するセキュリティポリシーを管理する複数のエントリー（ｅｎｔｒｉｅｓ）を含むセキュリティポリシーテーブルを備える。セキュリティポリシーテーブルの実施形態は、後述の図６を参照して詳しく説明する。
【００５６】
したがって、セキュリティ管理ユニット３２０は、ストレージコントローラ３１０によって提供されたセクターキーＳＥＣＴＯＲ＿ＫＥＹに応答して、セキュリティポリシーテーブルに含まれる複数のエントリーのうちの何れか１つを選択する。セキュリティ管理ユニット３２０は、選択されたエントリーに含まれるセキュリティポリシーによってデータＤＡＴＡの暗号化動作の要否を決定する暗号化／復号化指示信号ＥＤをデータ保護器３３０に出力する。
【００５７】
また、セキュリティ管理ユニット３２０は、選択されたエントリーで指示されたセキュリティポリシーを用いてアクセス動作（例えば、リード動作またはライト動作）の有無を決定するアクセス指示信号ＩＡＥを出力する。すなわち、ストレージコントローラ３１０によって提供されたリード／ライト信号Ｒ／Ｗは、アクセス指示信号ＩＡＥに応答して、セキュリティ管理ユニット３２０によって遮断される。
【００５８】
セキュリティ管理ユニット３２０によって提供された暗号化／復号化指示信号ＥＤに応答して、データ保護器３３０は、ホストコントローラインターフェース１４００Ａを通じて、ストレージ装置１５００にライトされるライトデータＤＡＴＡとストレージ装置１５００から出力されたリードデータＤＡＴＡ’とに暗号化／復号化動作を行う。
【００５９】
データ保護器３３０は、暗号化／復号化指示信号ＥＤに基づいて、リードデータまたはライトデータに対する暗号化動作、復号化動作またはバイパス（ｂｙｐａｓｓ）動作を行うか否かを決定する。
【００６０】
暗号化動作がライトデータＤＡＴＡに対して行われる時、データ保護器３３０は、ストレージコントローラ３１０によって提供されたセクターキーＳＥＣＴＯＲ＿ＫＥＹを利用した暗号化動作を行う。
【００６１】
トランザクションタイプレジスタ３４０は、受信したバッファデスクリプタ（ＢＤ）によって実行中のアプリケーションに対応するセキュリティレベル情報を保存する。すなわち、トランザクションタイプレジスタ３４０は、ホストコントローラインターフェース１４００Ａに対して行われる直接メモリアクセス動作が、所定のセキュリティレベルを有するセキュアトランザクションタイプ（ｓｅｃｕｒｅ  ｔｒａｎｓａｃｔｉｏｎ  ｔｙｐｅ）であるか、または非セキュアトランザクションタイプ（ｎｏｎ  ｓｅｃｕｒｅ  ｔｒａｎｓａｃｔｉｏｎ  ｔｙｐｅ）であるかを表わす状態情報を保存する。
【００６２】
それぞれのトランザクションタイプに応じた保安セキュリティレベル信号Ｓ／ＮＳが、セキュリティ管理ユニット３２０に伝送される。この際、セキュリティ管理ユニット３２０の動作、データ保護器３３０の動作、及びトランザクションタイプレジスタ３４０に保存された情報は、セキュアＣＰＵ１１１０によってのみ変更される。
【００６３】
図６は、図５のセキュリティ管理ユニットで使われるセキュリティポリシーテーブルを示す概念図である。図６を参照すると、セキュリティポリシーテーブル３２２Ａは、複数のエントリーを含み、それぞれのエントリーは、ストレージ装置１５００の１つまたはそれ以上の領域（例えば、セクター）に対する特定のセキュリティポリシーを管理する。
【００６４】
図６のセキュリティポリシーテーブル３２２Ａは、８つのエントリー４１〜４８を含む。複数のエントリー４１〜４８のそれぞれは、ストレージ装置１５００に含まれる複数の領域のそれぞれの範囲を表現するために、ベースセクターアドレスレジスタに保存されたセクターアドレスを開始アドレスに設定し、各領域のサイズＳＩＺＥを設定する。この際、各エントリー４１〜４８に対応する各領域のサイズＳＩＺＥは、同様に設定されるか、または異なって設定される。
【００６５】
各エントリー４１〜４８は、セキュリティポリシーの観点で保存されたデータの有効ＶＡＬＩＤまたは無効ＩＮＶＡＬＩＤを指示する情報を含む。セキュリティポリシーは、ストレージ装置１５００の特定領域に対するリードＲＥＡＤ及び／またはライトＷＲＩＴＥアクセスを許可するか否かを指示する。セキュリティポリシーは、ストレージ装置１５００の特定領域に対するセキュアＳまたは非セキュアＮＳなアクセスを許可するか否かをさらに指示する。最後に、セキュリティポリシーは、特定領域に対するリードまたはライトデータに関連する暗号化Ｅｎｃ／ＮｏｎＥｎｃ動作を指示する。
【００６６】
図６に示すように、各エントリー４１〜４４に関連する各領域（または、各セクター）に保存されたデータが有効ＶＡＬＩＤであると仮定する。
【００６７】
第１領域は、第１ベースセクターアドレスレジスタ（Ｂａｓｅ  ｓｅｃｔｏｒ  ａｄｄｒｅｓｓ  ｒｅｇｉｓｔｅｒ１）に保存されたアドレス位置からＡセクター（Ａ  ｓｅｃｔｏｒｓ）のサイズを有する。リード動作Ｒのみが、第１領域に対して実行され、第１領域は、セキュアレベルＳを有するアプリケーションによってのみアクセス可能であり、暗号化されたデータＥｎｃは、第１領域に保存される。
【００６８】
第２領域は、第２ベースセクターアドレスレジスタ（Ｂａｓｅ  ｓｅｃｔｏｒ  ａｄｄｒｅｓｓ  ｒｅｇｉｓｔｅｒ２）に保存されたアドレス位置からＢセクター（Ｂ  ｓｅｃｔｏｒｓ）のサイズを有する。リード動作Ｒとライト動作Ｒ／Ｗが、第２領域に対していずれも実行され、第２領域は、セキュアレベルＳを有するアプリケーションだけではなく、非セキュアレベルＮＳを有するアプリケーションによってもアクセス可能であり、非暗号化データＮｏｎＥｎｃは、第２領域に保存される。
【００６９】
第３領域は、第３ベースセクターアドレスレジスタ（Ｂａｓｅ  ｓｅｃｔｏｒ  ａｄｄｒｅｓｓ  ｒｅｇｉｓｔｅｒ３）に保存されたアドレス位置からＣセクター（Ｃ  ｓｅｃｔｏｒｓ）のサイズを有する。リード動作Ｒとライト動作Ｒ／Ｗは、第３領域に対して実行され、第３領域は、保安レベルＳを有するアプリケーションによってのみアクセス可能であり、暗号化されたデータＥｎｃは、第３領域に保存される。
【００７０】
第４領域は、第４ベースセクターアドレスレジスタ（Ｂａｓｅ  ｓｅｃｔｏｒ  ａｄｄｒｅｓｓ  ｒｅｇｉｓｔｅｒ４）に保存されたアドレス位置からＤセクター（Ｄ  ｓｅｃｔｏｒｓ）のサイズを有する。リード動作Ｒのみが、第４領域に対して実行され、第４領域は、セキュアレベルＳを有するアプリケーションだけではなく、非セキュアレベルＮＳを有するアプリケーションによってもアクセス可能であり、暗号化されたデータＥｎｃが、第４領域に保存される。
【００７１】
第８エントリー４８に関連する第５領域に保存されたデータは、無効ＩＮＶＡＬＩＤである。
【００７２】
本発明の多様な実施形態に応じて、多様な制御方法が、特定のセキュリティポリシーまたはセキュリティポリシーテーブル３２２Ａで該当するエントリーの設定に使われる。
【００７３】
図７は、図５のセキュリティ管理ユニット３２０を示すブロック図である。図１、図５、図６、及び図７を総合的に参照すると、セキュリティ管理ユニット３２０は、テーブルアクセス制御ロジック３２１、セクターアクセス制御テーブル３２２、及びセクターアクセス制御ロジック３２３を含む。図６に示したセキュリティポリシーテーブル３２２Ａは、セクターアクセス制御テーブル３２２の一実施形態である。
【００７４】
テーブルアクセス制御ロジック３２１は、セキュアＣＰＵ１１１０から出力されたテーブルアップデート命令ＴＵ＿ＣＭＤに応答して、セクターアクセス制御テーブル３２２に保存されたストレージ装置１５００の各領域のセキュリティポリシーを変更する。テーブルアップデート命令ＴＵ＿ＣＭＤが非セキュアＣＰＵ１１２０から入力される時、テーブルアクセス制御ロジック３２１は、セキュリティポリシー変更信号ＴＵをセクターアクセス制御テーブル３２２に伝達せずに、エラー信号ＴＵＥを非セキュアＣＰＵ１１２０に伝送する。
【００７５】
テーブルアクセス制御ロジック３２１は、セキュアＣＰＵ１１１０から出力されたテーブルアップデート命令ＴＵ＿ＣＭＤに応答して、セクターアクセス制御テーブル３２２の少なくとも１つのエントリーを変更するために、セキュリティポリシー変更信号ＴＵを生成する。したがって、セキュリティポリシーテーブル３２２でも参照されるセクターアクセス制御テーブルは、複数のエントリーを含み、複数のエントリーのそれぞれは、ストレージ装置１５００の１つまたはそれ以上の領域のそれぞれに対するセキュリティポリシーを管理する。
【００７６】
例えば、図７のセクターアクセス制御ロジック３２３は、ストレージコントローラ３１０からセクターキーＳＥＣＴＯＲ＿ＫＥＹとアクセス動作信号Ｒ／Ｗとを受信し、トランザクションタイプレジスタ３４０からセキュアレベル信号Ｓ／ＮＳを受信する。
【００７７】
セクターアクセス制御ロジック３２３は、セクターキーＳＥＣＴＯＲ＿ＫＥＹに応答して、複数のベースセクターアドレスレジスタのうちの何れか１つを選択するためのエントリー選択情報ＳＮＩをセクターアクセス制御テーブル３２２、例えば、セキュリティポリシーテーブルに伝送する。セキュリティポリシーテーブル３２２は、エントリー選択情報ＳＮＩに応答して、選択されたベースセクターアドレスレジスタに該当する選択エントリーＳＮＥをセクターアクセス制御ロジック３２３に伝送する。
【００７８】
すなわち、セクターアクセス制御ロジック３２３は、セクターキーＳＥＣＴＯＲ＿ＫＥＹに基づいてセキュリティポリシーテーブル３２２のエントリーのうちの何れか１つを選択する。セクターアクセス制御ロジック３２３は、選択されたエントリーＳＮＥに含まれるセキュリティポリシーによってデータＤＡＴＡの暗号化如何を指示する暗号化／復号化指示信号ＥＤをデータ保護器３３０に出力し、アクセス指示信号ＩＡＥをストレージコントローラ３１０に出力する。
【００７９】
ストレージコントローラ３１０は、アクセス指示信号ＩＡＥに応答して、セクターアドレスＳＥＣＴＯＲ＿ＡＤＤと暗号化されたデータＤＡＴＡ’とをストレージ装置１５００に出力する。ストレージ装置１５００は、暗号化されたデータＤＡＴＡ’をセクターアドレスＳＥＣＴＯＲ＿ＡＤＤに対応する領域に保存する。この場合、セクターアドレスＳＥＣＴＯＲ＿ＡＤＤは、宛先アドレス１２とデータ長１３とのうちの少なくとも１つを含む。
【００８０】
図８は、本発明の一実施形態に係る直接メモリアクセス動作に対する初期動作を示す動作図である。図１、図５、及び図８を参照すると、セキュアＣＰＵ１１１０は、セキュリティ管理ユニット３２０とデータ保護器３３０とを初期化する（ステップＳ１１０）。
【００８１】
セキュアＣＰＵ１１１０は、トランザクションタイプレジスタ３４０を非セキュア状態に設定するので、その後、非セキュアＣＰＵ１１２０が実行する（ステップＳ１２０）。非セキュアＣＰＵ１１２０によってアプリケーションが動作すると、非セキュアＣＰＵ１１２０は、バッファデスクリプタ（ＢＤ）を生成し、該生成されたバッファデスクリプタ（ＢＤ）は、メインメモリコントローラ１３００を通じてメインメモリ１２００の保存領域１２１０に保存される（ステップＳ１３０）。
【００８２】
バッファデスクリプタ（ＢＤ）の開始アドレスが、ストレージコントローラ３１０に設定されると（ステップＳ１４０）、開始アドレスは、開始レジスタ３１１に保存される（ステップＳ１５０）。その後、ストレージコントローラ３１０の開始レジスタ３１１に保存された開始アドレスに基づいて、直接メモリアクセス（ＤＭＡ）動作が始まる。
【００８３】
図９Ａ及び図９Ｂは、本発明の一実施形態に係る直接メモリアクセス動作に対する動作方法を示すフローチャートである。図１、図５、図９Ａ及び図９Ｂを参照すると、ストレージコントローラ３１０は、開始レジスタ３１１に保存された開始アドレスを用いてメインメモリ１２００の保存領域１２１０からセクター情報を含むバッファデスクリプタ（ＢＤ）を読み取る（ステップＳ２１１）。この際、バッファデスクリプタ（ＢＤ）は、セクター情報に対応するストレージ装置１５００の特定領域にアクセスするためのアプリケーションによって生成される。バッファデスクリプタ（ＢＤ）は、データ保護器３３０を通じてストレージコントローラ３１０に入力される。
【００８４】
ストレージコントローラ３１０は、バッファデスクリプタ（ＢＤ）に含まれるソースアドレス（例えば、図３の１１）を用いてメインメモリ１２００の、例えばソースアドレスに該当する保存領域に保存されたデータＤＡＴＡをリードあるいはフェッチ（ｆｅｔｃｈ）する（ステップＳ２１２）。
【００８５】
ストレージコントローラ３１０は、バッファデスクリプタ（ＢＤ）に含まれるセクター情報に基づいてセクターキーＳＥＣＴＯＲ＿ＫＥＹを生成し、セクターキーＳＥＣＴＯＲ＿ＫＥＹをセキュリティ管理ユニット３２０及びデータ保護器３３０に伝送する（ステップＳ２１３）。セキュリティ管理ユニット３２０は、ストレージコントローラ３１０から出力されたセクターキーＳＥＣＴＯＲ＿ＫＥＹに応答して、セキュリティポリシーテーブル３２２に含まれる複数のエントリーのうちの何れか１つを選択する（ステップＳ２１４）。この際、セキュリティポリシーテーブル３２２は、それぞれがストレージ装置１５００に含まれる複数の領域のそれぞれに対するセキュリティポリシーを管理するエントリーを含む。
【００８６】
セキュリティ管理ユニット３２０は、選択されたエントリーに含まれるセキュリティポリシーを用いて、フェッチされたデータを暗号化するか否かを決定する（ステップＳ２１５）。フェッチされたデータに対する暗号化動作が必要である場合、データ保護器３３０は、セクターキーＳＥＣＴＯＲ＿ＫＥＹを用いてデータを暗号化する。一方、フェッチされたデータに対する暗号化動作が不要である場合、データ保護器３３０は、データをバイパスしてストレージコントローラ３１０に伝送する。
【００８７】
ストレージ装置１５００の特定領域にデータをライトするか否かを判断するための第１判断段階として、セキュリティ管理ユニット３２０は、選択されたエントリーに含まれるセキュリティレベル情報とアプリケーションのセキュリティレベル情報とを比較する（ステップＳ２１６）。この際、アプリケーションのセキュリティレベル情報は、トランザクションタイプレジスタ３４０に保存されながら、セキュリティレベル信号Ｓ／ＮＳとしてセキュリティ管理ユニット３２０に伝達される。
【００８８】
セキュリティ管理ユニット３２０は、セキュリティポリシーテーブル（例えば、図６の３２２Ａ）に含まれるセキュリティレベル情報（例えば、図６のＳまたはＮＳ）とアプリケーションのセキュリティレベル情報とが同一である場合、ストレージ装置１５００の当該領域（例えば、当該セクター領域）に対するアプリケーションのアクセスを許可する（ステップＳ２１７）。
【００８９】
一方、セキュリティ管理ユニット３２０は、セキュリティポリシーテーブルに含まれるセキュリティレベル情報とアプリケーションのセキュリティレベル情報とが同一ではない場合、ストレージ装置１５００の当該領域（例えば、当該セクター領域）に対するアプリケーションのアクセスを許可しない（ステップＳ２２３）。
【００９０】
ストレージ装置１５００の特定領域にデータをライトするか否かを判断するための第２判断段階として、セキュリティ管理ユニット３２０は、選択されたエントリーに含まれるアクセス動作情報とデータの入出力動作情報とを比較する（ステップＳ２１８）。この際、データの入出力動作情報は、ストレージコントローラ３１０からアクセス動作信号Ｒ／Ｗとしてセキュリティ管理ユニット３２０に伝送される。
【００９１】
セキュリティ管理ユニット３２０は、セキュリティポリシーテーブルに含まれるアクセス動作情報とデータの入出力動作情報とが同一である場合、ストレージ装置１５００の当該領域（例えば、当該セクター領域）に対するアプリケーションのアクセスを許可する（ステップＳ２１９）。一方、セキュリティ管理ユニット３２０は、セキュリティポリシーテーブルに含まれるアクセス動作情報とデータの入出力動作情報とが同一ではない場合、ストレージ装置１５００の当該領域（例えば、当該セクター領域）に対するアプリケーションのアクセスを許可しない（ステップＳ２２３）。
【００９２】
図９Ａ及び図９Ｂでは、各決定段階（ステップＳ２１６とステップＳ２１８）が順次に進行する実施形態を示した。しかし、本発明の他の実施形態によれば、データ暗号化動作段階（ステップＳ２１５）、第１判断段階（ステップＳ２１６）、及び第２判断段階（ステップＳ２１８）は、独立して進行するか、少なくとも２つの段階が同時に進行しうる。
【００９３】
ストレージ装置１５００の特定領域に対するデータアクセスが許可されると、直接メモリアクセス（ＤＭＡ）動作が実行される。ストレージコントローラ３１０は、ストレージ装置１５００の特定領域に対する直接メモリアクセス（ＤＭＡ）動作が完了するまで待機する（ステップＳ２２０）。
【００９４】
直接メモリアクセス（ＤＭＡ）動作が完了し、複数のバッファデスクリプタ（ＢＤ）が連続して具現される場合、ストレージコントローラ３１０は、次のバッファデスクリプタが有効であるか否かをチェックする（ステップＳ２２１）。次のバッファデスクリプタが有効であれば、ストレージコントローラ３１０は、メインメモリ１２００から次のバッファデスクリプタを読み取る段階に戻る（ステップＳ２１１）。しかし、次のバッファデスクリプタが存在しないか、または有効ではない場合、ストレージコントローラ３１０は、直接メモリアクセス（ＤＭＡ）動作を完了する（ステップＳ２２２）。
【００９５】
ストレージコントローラ３１０は、直接メモリアクセス（ＤＭＡ）動作が正常に完了したか、当該セクター領域に対するアクセス失敗で直接メモリアクセス（ＤＭＡ）動作が失敗したかに応じて、状態情報を生成し、非セキュアＣＰＵ１１２０は、ストレージコントローラ３１０から状態情報を受信する（ステップＳ２２５）。
【００９６】
図１０は、図５のセキュリティ管理ユニットで使われる他のセキュリティポリシーテーブルを示す概念図である。ストレージ装置１５００が、セキュリティ管理ユニット３２０の複数のエントリーに相応する複数の領域を含む場合、ハードウェア資源は、大きく消耗される。あらゆるエントリーを含むセキュリティポリシーテーブルがメインメモリ１２００に保存され、セキュリティ管理ユニット３２０内のテーブルが変換索引バッファ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋ−ａ−ｓｉｄｅ  Ｂｕｆｆｅｒ：ＴＬＢ）のように動作する時、ハードウェアまたはハードウェア資源の消耗は減少する。
【００９７】
セキュリティポリシーは、図５のセキュリティ管理ユニットに含まれる。図１０を参照すると、セキュリティポリシーテーブル３２２Ｂは、それぞれがストレージ装置１５００に含まれる複数の領域のそれぞれに対するセキュリティポリシーを管理する複数のエントリー５１〜５５を含む。
【００９８】
セキュリティポリシーテーブル３２２Ｂに含まれるエントリー数は、多様に設定され、各エントリーに該当するストレージ装置１５００の領域のサイズは、同様に設定される。したがって、仮想アドレスは、セキュリティポリシーテーブル３２２Ｂに保存され、仮想アドレスは、物理アドレスと一致しないこともある。
【００９９】
各エントリー５１〜５５には、セキュリティポリシーテーブル３２２Ｂの各エントリー５１〜５５に保存された値が、有効ＶＡＬＩＤであるか、または無効ＩＮＶＡＬＩＤであるかの情報と、セキュリティポリシーとが保存される。
【０１００】
セキュリティポリシーは、各エントリー５１〜５５に該当するストレージ装置１５００の各領域に対するリード動作及びライト動作によるアクセス許可の可否指定ＲＥＡＤ／ＷＲＩＴＥ、各領域に対するセキュアレベルに応じたアクセス許可の可否指定ＳＥＣＵＲＥ／ＮＯＮ−ＳＥＣＵＲＥ、及び各領域に対する入出力データの暗号化動作の有無指定ＥＮＣＲＹＰＴＩＯＮ／ＮＯＮ−ＥＮＣＲＹＰＴＩＯＮのうち少なくとも１つを含む。
【０１０１】
例えば、第１エントリー５１に対する有効／無効指定が有効ＶＡＬＩＤである場合、ストレージ装置１５００の第１領域に該当する第１エントリー５１に保存された１つまたはそれ以上の値は有効である。第１領域に対しては、リード動作Ｒのみ可能であり、第１領域は、セキュアレベルＳを有するアプリケーションによってのみアクセス可能であり、第１領域には、暗号化されたデータＥｎｃが保存される。
【０１０２】
第２エントリー５２に対する有効／無効指定が有効ＶＡＬＩＤである場合、ストレージ装置１５００の第２領域に該当する第２エントリー５２に保存された１つまたはそれ以上の値は有効である。第２領域に対しては、リード動作Ｒ及びライト動作Ｗがいずれも可能であり、第２領域は、セキュアレベルＳを有するアプリケーションだけではなく、非セキュアレベルＮＳを有するアプリケーションによってもアクセス可能であり、第２領域には、暗号化されていないデータＮｏｎＥｎｃが保存される。
【０１０３】
第３エントリー５３に対する有効／無効指定が有効ＶＡＬＩＤである場合、ストレージ装置１５００の第３領域に該当する第３エントリー５３に保存された１つまたはそれ以上の値は有効である。第３領域に対しては、リード動作Ｒ及びライト動作Ｗがいずれも可能であり、第３領域は、セキュアレベルＳを有するアプリケーションによってのみアクセス可能であり、第３領域には、暗号化されたデータＥｎｃが保存される。
【０１０４】
第４エントリー５４に対する有効／無効指定が有効ＶＡＬＩＤである場合、ストレージ装置１５００の第４領域に該当する第４エントリー５４に保存された値は有効である。第４領域に対しては、リード動作Ｒのみ可能であり、第４領域は、非セキュアレベルＮＳを有するアプリケーションによってもアクセス可能であり、第４領域には、暗号化されたデータＥｎｃが保存される。
【０１０５】
最後のエントリー５５に対する有効／無効指定が無効ＩＮＶＡＬＩＤである場合、ストレージ装置１５００の最後の領域に該当する最後のエントリー５５に保存された値は無効である。セキュリティポリシーテーブル３２２Ｂで領域を設定する方法と上述したセキュリティポリシーの種類は、実施形態によって多様に変更され得る。
【０１０６】
図１１は、図１０のセキュリティポリシーテーブルを修正する動作方法を示したものであって、図９の直接メモリアクセス動作の一部を示す部分フローチャートである。図１１の複数のステップは、図９Ａで提示した２つのノードＡとＢの間のステップに代替される。
【０１０７】
図１、図５、図９、図１０、及び図１１を参照すると、セキュリティ管理ユニット３２０は、ストレージコントローラ３１０から出力されたセクターキーＳＥＣＴＯＲ＿ＫＥＹに応答して、セキュリティポリシーテーブル３２２Ｂに含まれる複数のエントリーのうちの何れか１つを選択または検索する（ステップＳ３１１）。この際、セキュリティポリシーテーブル３２２Ｂは、それぞれがストレージ装置１５００に含まれる複数の領域のそれぞれに対するセキュリティポリシーを管理する複数のエントリーを含む。
【０１０８】
セキュリティ管理ユニット３２０は、セクターキーＳＥＣＴＯＲ＿ＫＥＹに該当するエントリーがセキュリティポリシーテーブル３２２Ｂに含まれているか否かを判断する（ステップＳ３１２）。
【０１０９】
セキュリティポリシーテーブル３２２Ｂが選択されたエントリーを含まない場合（ステップＳ３１２）、ストレージコントローラ３１０は、メインメモリ１２００に保存されたセキュリティポリシーテーブルをセキュリティ管理ユニット３２０にロード（ｌｏａｄ）し、セキュリティ管理ユニット３２０は、当該ロードされたセキュリティポリシーテーブルから該当するエントリーに対するセキュリティポリシーを読み取る（ステップＳ３１３）。
【０１１０】
セキュリティポリシーテーブル３２２Ｂが選択されたエントリーを含んでいる場合、選択されたエントリーに含まれるセキュリティポリシーを用いて、フェッチされたデータに対する暗号化の要否が決定される（ステップＳ３１５）。
【０１１１】
フェッチされたデータに対する暗号化動作が必要である場合、データ保護器３３０は、セクターキーを用いてデータを暗号化する。一方、データに対する暗号化動作が不要である場合、データ保護器３３０は、データをバイパスしてストレージコントローラ３１０に伝送する。
【０１１２】
図１２及び図１３は、データ保存装置として使われるエンベデッドマルチメディアカード（ｅｍｂｅｄｄｅｄ  Ｍｕｌｔｉ−Ｍｅｄｉａ  Ｃａｒｄ：ｅＭＭＣ）の特性を示す。
【０１１３】
ｅＭＭＣは、フラッシュ（ｆｌａｓｈ）メモリのメモリカード標準であり、ｅＭＭＣは、ＪＥＤＥＣで標準として定めた内蔵型ＭＭＣに対する標準である。ｅＭＭＣは、ハードディスクやコンパクトディスクが有する限界を超えて、多様な種類のデジタル（ｄｉｇｉｔａｌ）機器で使用できるように、マルチメディアデータを保存する役割を果たす。
【０１１４】
図１２は、ｅＭＭＣが、本発明の一実施形態として使われる場合の、セキュリティポリシーテーブルに保存される複数の信号のリストを示す。
【０１１５】
図１２を参照すると、ＢＥＧＩＮは、パーティション（ｐａｒｔｉｏｎ）が始まるセクターアドレスを指示し、ＥＮＤは、パーティションが終了するセクターアドレスを指示し、ＳＲは、実行中のアプリケーションがセキュアレベルを有する場合に、リード動作が可能であることを意味し、ＳＷは、実行中のアプリケーションがセキュアレベルを有する場合に、ライト動作が可能であることを意味し、ＮＳＲは、実行中のアプリケーションが非セキュアレベルを有する場合に、リード動作が可能であることを意味し、ＮＳＷは、実行中のアプリケーションが非セキュアレベルを有する場合に、ライト動作が可能であることを意味し、ＵＦＫは、暗号化時にヒューズキー（ｆｕｓｅ  ｋｅｙ）を利用することを指示し、ＥＣＢは、ＥＣＢ（Ｅｌｅｃｔｒｏｎｉｃ  ＣｏｄｅＢｏｏｋ）モードであることを指示し、ＥＮＣは、暗号化動作を行うことを意味し、ＶＡＬＩＤは、テーブルのエントリーに保存された値が有効であることを意味する。
【０１１６】
図１３は、図５のセキュリティ管理ユニットに含まれるセキュリティポリシーテーブルの他の概念図である。図１２及び図１３を参照すると、ｅＭＭＣから提供されるメモリ空間は、それぞれが異なるセキュリティポリシーを有する複数のパーティション７１、７２、及び７３に分けられる。セキュリティポリシーテーブル３２２Ｃは、それぞれがｅＭＭＣ１５００Ｃに含まれる複数のパーティション７１、７２、及び７３のそれぞれに対するセキュリティポリシーを管理する複数のエントリーを含む。
【０１１７】
各エントリーは、ｅＭＭＣ１５００Ｃに含まれる複数のパーティション７１、７２、及び７３の範囲を示すために、開始セクターアドレスＢＥＧＩＮと終了セクターアドレスＥＮＤを設定する。また、各エントリーは、セキュリティポリシーテーブルの各エントリーに保存された値が有効であるか、または無効であるかの情報と、セキュリティポリシーについての情報とを保存する。
【０１１８】
セキュリティポリシーは、図１２を参照して説明したように、各エントリーに該当するパーティションに対するセキュアレベルでリード動作ＳＲ、セキュアレベルでライト動作ＳＷ、非セキュアレベルでリード動作ＮＳＲ、非セキュアレベルでライト動作ＮＳＷ、暗号化モードＥＣＢ、及び入出力データの暗号化動作ＥＮＣのうちの少なくとも１つを含む。
【０１１９】
図１３に示す例では、第１エントリー６１の有効性ＶＡＬＩＤの値が１なので、ストレージ装置１５００Ｃの第１パーティション７１に該当する第１エントリー６１の複数の値は有効である。第１パーティション７１の領域は、開始アドレスである００００００００に対応する領域から終了アドレスである０００ＦＦＦＦＦに対応する領域までの範囲を有する。
【０１２０】
第１パーティション７１には、ブートプログラムまたはブートイメージが保存され、第１パーティション７１に対しては、非セキュアレベルでのリード動作のみが可能である。また、第１パーティション７１に保存されるデータに対する暗号化動作は不要である。
【０１２１】
第２エントリー６２の有効性ＶＡＬＩＤの値が１なので、ストレージ装置１５００Ｃの第２パーティション７２に該当する第２エントリー６２の複数の値は有効である。第２パーティション７２の領域は、開始アドレスである００１００００に対応する領域から終了アドレスである００ＥＦＦＦＦＦに対応する領域までの範囲を有する。第２パーティション７２には、ユーザファイルシステムが保存され、第２パーティション７２に対しては、非セキュアレベルでのリード動作とライト動作とがいずれも可能である。しかし、第２パーティション７２に保存されるデータに対する暗号化動作は必要である。
【０１２２】
第３エントリー６３の有効性ＶＡＬＩＤの値が１なので、ストレージ装置１５００Ｃの第３パーティション７３に該当する第３エントリー６３の複数の値は有効である。第３パーティション７３の領域は、開始アドレスである００Ｆ０００００に対応する領域から終了アドレスである００ＦＦＦＦＦＦに対応する領域までの範囲を有する。第３パーティション７３には、セキュアＯＳファイルシステムが保存され、第３パーティション７３に対しては、セキュアレベルでのリード動作とライト動作とがいずれも可能である。また、第３パーティション７３に保存されるデータに対する暗号化動作は必要である。
【０１２３】
図１４は、図１及び図２のコンピュータシステムで使われるバッファデスクリプタの他の実施形態を示す概念図である。図１５は、本発明の他の実施形態によるホストコントローラインターフェースのブロック図である。
図１及び図２を参照すると、互いに異なる第１アプリケーションと第２アプリケーションとがＣＰＵ１１００によって同時に実行可能である。第１アプリケーションは、ストレージ装置１５００の第１領域に第１データを暗号化して保存し、第２アプリケーションは、ストレージ装置１５００の第２領域に第２データを暗号化して保存する。
【０１２４】
この際、第１データは、第１領域に該当するセクターキーを用いて暗号化されて保存され、第２アプリケーションが、第１領域に該当するセクターキーを用いてデータに対する暗号化または復号化動作を実行する場合、第２アプリケーションは、第１アプリケーションによってアクセス可能なデータをリードすることができるプログラムを有する。
【０１２５】
この問題点を克服するために、本発明の他の実施形態は、“共通”暗号化または“共通”デコーディングに対する許可を有する第１アプリケーションが、第２アプリケーションに関連するデータをリードすることを許可しないように、バッファデスクリプタにセキュリティキーを追加する。
【０１２６】
図１、図３、及び図１４を参照すると、バッファデスクリプタ２０の構造は、図３で示したバッファデスクリプタ１０と類似している。しかし、セキュリティキーフィールド２５が、バッファデスクリプタ２０のデータ構造に追加され、セキュリティキー２５は、アプリケーションごとに異なって生成される。
【０１２７】
図５のホストコントローラインターフェース１４００Ａは、データＤＡＴＡの暗号化、及び前に暗号化されたデータＤＡＴＡ’の復号化のために、セクターキーＳＥＣＴＯＲ＿ＫＥＹを使うが、本実施形態である図１５のホストコントローラインターフェース１４００Ｂは、データを暗号化するか、または復号化するために、セキュリティキーとしてＰｒｉｖａｔｅ＿Ｋｅｙを使用する。
【０１２８】
図１及び図１５を参照すると、ホストコントローラインターフェース１４００Ｂは、ストレージコントローラ４１０、セキュリティ管理ユニット（ＳＭＵ）４２０、データ保護器４３０、及びトランザクションタイプレジスタ４４０を含む。
【０１２９】
ストレージコントローラ４１０は、ストレージ装置１５００にアクセスされるデータを制御する。ストレージコントローラ４１０は、メインメモリ１２００から出力されたバッファデスクリプタ（ＢＤ）に含まれるソースアドレスを用いてメインメモリ１２１０からデータをリードする。また、ストレージコントローラ４１０は、バッファデスクリプタ（ＢＤ）に含まれるセキュリティキーＰｒｉｖａｔｅ＿Ｋｅｙをデータ保護器４３０に出力する。
【０１３０】
バッファデスクリプタ（ＢＤ）に含まれるセクター情報は、ストレージ装置１５００に伝達されるセクターアドレスＳＥＣＴＲＯ＿ＡＤＤと、セキュリティ管理ユニット４２０に伝達されるセクターキーＳＥＣＴＯＲ＿ＫＥＹと、の生成に使われる。
【０１３１】
セキュリティ管理ユニット４２０は、ストレージコントローラ４１０から提供されたセクターキーＳＥＣＴＯＲ＿ＫＥＹに応答して、セキュリティポリシーテーブルの複数のエントリーのうちの何れか１つを選択し、該選択されたエントリーによって提示されたセキュリティポリシーに基づいてデータに対する暗号化動作の実行要否、または暗号化データに対する復号化動作の実行要否を決定する暗号化／復号化指示信号ＥＤをデータ保護器４３０に出力する。
【０１３２】
暗号化／復号化指示信号ＥＤに応答して、データ保護器４３０は、ホストコントローラインターフェース１４００Ｂを通じて、ストレージ装置１５００に入出力されるデータに対する暗号化動作または復号化動作を実行する。
【０１３３】
すなわち、データ保護器４３０は、セキュリテイ管理ユニット４２０から提供された暗号化／復号化指示信号ＥＤに基づいて、暗号化動作、復号化動作、またはバイパス動作を行うか否かを決定する。
【０１３４】
暗号化動作がライトデータに対して行われる時、データ保護器３３０は、ストレージコントローラ４１０から提供されたセキュリティキーＰｒｉｖａｔｅ＿Ｋｅｙを用いて暗号化動作を実行する。
【０１３５】
この際、セキュリティキーＰｒｉｖａｔｅ＿Ｋｅｙは、アプリケーションごとに異なって設定または生成されるので、それぞれのアプリケーションは、他のアプリケーションのセキュリティキーＰｒｉｖａｔｅ＿Ｋｅｙが分からない。したがって、第１アプリケーションが暗号化されたストレージ領域１５００に保存されたデータにアクセスしても、第２アプリケーションが暗号化されたストレージ領域１５００にアクセスできる能力があっても、第２アプリケーションは、前記第１アプリケーションに関連したセキュリティキーＰｒｉｖａｔｅ＿Ｋｅｙが分からない。
【０１３６】
このようなアクセス方法は、データストレージ資源を共通して使う場合にも、内部アプリケーションデータセキュリティを提供する。
【０１３７】
図１６及び図１７は、図１及び図２のコンピュータシステムで使われるホストコントローラインターフェースの他の実施形態を示す個別的なブロック図である。
【０１３８】
図５のセキュリティ管理ユニット３２０に対する記述と同一または類似した機能を実行する各セキュリティ管理ユニットは、各ホストコントローラインターフェース（１４００Ｃまたは１４００Ｄ）の内部に独立して具現可能である。他の例で、図５のセキュリティ管理ユニット３２０と同一または類似した機能を実行するセキュリティ管理ユニットは、ストレージコントローラまたはデータ保護器のうちの何れか１つの内部に具現することも可能である。
【０１３９】
図１及び図１６を参照すると、ホストコントローラインターフェース１４００Ｃは、ストレージコントローラ５１０、データ保護器５２０、及びトランザクションタイプレジスタ５３０を含む。ストレージコントローラ５１０は、メインメモリ１２００から出力されたバッファデスクリプタ（ＢＤ）に含まれるソースアドレスを用いてメインメモリ１２００からデータをリードし、バッファデスクリプタ（ＢＤ）に含まれたセクター情報に応答して、セクターキーＳＥＣＴＯＲ＿ＫＥＹをデータ保護器５２０に出力する。
【０１４０】
ストレージコントローラ５１０は、ストレージ装置１５００に含まれる複数の領域のそれぞれに対するセキュリティポリシーを管理するセキュリティ管理ユニット（ＳＭＵ）５１１を含む。セキュリティ管理ユニット５１１は、バッファデスクリプタ（ＢＤ）に含まれるセクター情報に応答して、セキュリティポリシーテーブルの複数のエントリーのうちの何れか１つを選択する。セキュリティ管理ユニット５１１は、選択されたエントリーに含まれる保安政策セキュリティポリシーに基づいてデータに対する暗号化動作の要否を決定する暗号化／復号化指示信号ＥＤをデータ保護器５２０に出力する。
【０１４１】
図５のセキュリティ管理ユニット３２０の構造と機能は、図１６のセキュリティ管理ユニット（ＳＭＵ）５１１の構造と機能と実質的に同一である。
【０１４２】
図５のトランザクションタイプレジスタ３４０と実質的に同じ機能を実行する図１６のトランザクションタイプレジスタ５３０は、バッファデスクリプタ（ＢＤ）を生成するアプリケーションのセキュリティレベル情報を保存し、セキュリティレベル信号Ｓ／ＮＳをストレージコントローラ５１０に伝送する。ストレージコントローラ５１０は、セキュリティレベル信号Ｓ／ＮＳとセキュリティ管理ユニット（ＳＭＵ）５１１とに含まれるセキュリティテーブルを参照して、ストレージ装置１５００の特定領域に対するデータアクセスの有無を判断する。
【０１４３】
図１及び図１７を再び参照すると、ホストコントローラインターフェース１４００Ｄは、ストレージコントローラ６１０とデータ保護器６２０とを含む。データ保護器６２０は、トランザクションタイプレジスタ６２１、セキュリティ管理ユニット（ＳＭＵ）６２２、及びセキュリティエンジン（ｓｅｃｕｒｉｔｙ  ｅｎｇｉｎｅ）６２３を含む。
【０１４４】
ストレージコントローラ６１０は、メインメモリ１２００から出力されたバッファデスクリプタ（ＢＤ）に含まれるソースアドレスを用いて、メインメモリ１２００からデータをリードし、バッファデスクリプタ（ＢＤ）に含まれるセクター情報に応答して、セクターキーＳＥＣＴＯＲ＿ＫＥＹをデータ保護器６２０に出力する。ストレージコントローラ６１０は、リード動作またはライト動作を実行するためのアクセス動作信号Ｒ／Ｗをデータ保護器６２０に出力する。
【０１４５】
データ保護器６２０は、ストレージ装置１５００に含まれる複数の領域のそれぞれに対するセキュリティポリシーを管理するセキュリティ管理ユニット６２２（ＳＭＵ）を含む。セキュリティ管理ユニット６２２は、セクターキーＳＥＣＴＯＲ＿ＫＥＹに応答して、セキュリティポリシーテーブルの複数のエントリーのうちの何れか１つを選択し、該選択されたエントリーに含まれるセキュリティポリシーによってアクセス指示信号ＩＡＥをストレージコントローラ６１０に出力する。ストレージコントローラ６１０は、アクセス指示信号ＩＡＥに基づいてストレージ装置１５００に対するデータのアクセスを制御する。
【０１４６】
図１８は、本発明の他の実施形態によるコンピュータシステムを示すブロック図である。図１８を参照すると、コンピュータシステム３０００は、携帯電話、スマートフォン、ＰＤＡ、タブレットＰＣ、モバイルインターネット装置（ＭＩＤ）、または無線通信装置として具現される。
【０１４７】
コンピュータシステム３０００は、バス３１００に連結されたマイクロプロセッサ３２００、キャッシュメモリ３２１０、ＲＯＭ３３００、メインメモリ３４００、メインメモリコントローラ３４１０、ストレージ装置３５００、ホストコントローラインターフェース３５１０、入出力コントローラ３６１０、入出力装置３６００、ディスプレイ装置３７００及びディスプレイコントローラ３７１０を含む。
【０１４８】
マイクロプロセッサ３２００は、コンピュータシステム３０００の全体を制御する装置である。マイクロプロセッサ３２００は、複数のコアを含むマルチコアプロセッサとして具現可能である。
【０１４９】
キャッシュメモリ３２１０は、マイクロプロセッサ３２００に近接して位置する。キャッシュメモリ３２１０は、相対的に速い動作速度を有するマイクロプロセッサ３２００と相対的に遅い動作速度を有するメインメモリ３４００との間で２つの装置３２００と３４００間のデータ処理速度をバッファリングするために使われる高速の記憶装置である。ＲＯＭ３３００は、読み取り専用記憶装置にブートコードなどを保存する。
【０１５０】
メインメモリ（１２００または２２００）と実質的に同じ機能を行うメインメモリ３４００は、ＤＲＡＭ、ＳＲＡＭ、またはモバイルＤＲＡＭなどとして具現される。メインメモリコントローラ（１３００または２３００）と実質的に同じ機能を行うメインメモリコントローラ３４１０は、メインメモリ３４００を制御する。
【０１５１】
ストレージ装置（１５００または２５００）と実質的に同じ機能を実行するストレージ装置３５００は、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、またはＲＡＩＤなどであり得る。
【０１５２】
ストレージ装置３５００は、不揮発性メモリ装置として具現され、不揮発性メモリ装置は、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ＰＲＡＭ、ＲＲＡＭ（登録商標）、ＮＦＧＭ（Ｎａｎｏ  Ｆｌｏａｔｉｎｇ  Ｇａｔｅ  Ｍｅｍｏｒｙ）、ＰｏＲＡＭ（Ｐｏｌｙｍｅｒ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＭＲＡＭ、またはＦｅＲＡＭなどを含む。
【０１５３】
ホストコントローラインターフェース（１４００または２４００）と実質的に同じ機能を行うホストコントローラインターフェース３５１０は、ストレージ装置３５００の領域別のセキュリティポリシーを管理する。セキュリティポリシーは、１つ以上のアプリケーションで使われるデータがセキュリティ上の敏感なデータである場合、マイクロプロセッサ３２００で実行される他のアプリケーションによってアクセスできないように、１つ以上のアプリケーションで使われるデータを管理する。
【０１５４】
ディスプレイコントローラ３７１０は、ディスプレイ装置３７００の動作を制御する。入出力装置３７００は、マイクロプロセッサ３２００の動作を制御するための制御信号またはマイクロプロセッサ３２００によって処理されたデータを入出力することができる装置であって、タッチパッドやコンピュータマウスのようなポインティング装置、キーパッド、またはキーボードとして具現可能である。
【０１５５】
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【０１５６】
１０、２０    バッファデスクリプタ
１１、２１    ソースアドレス
１２、２２    宛先アドレス
１３、２３    データ長
１４、２４    宛先ポインター
３１０、４１０、５１０、６１０    ストレージコントローラ
３１１    開始レジスタ
３２０、４２０、５１１、６２２    セキュリティ管理ユニット
３２１    テーブルアクセス制御ロジック
３２２    セクターアクセス制御テーブル
３２２Ａ、３２２Ｂ、３２２Ｃ    セキュリティポリシーテーブル
３２３    セクターアクセス制御ロジック
３３０、４３０、５２０、６２０    データ保護器
３４０、４４０、５３０、６２１    トランザクションタイプレジスタ
１０００、２０００、３０００    コンピュータシステム
１１００、２１００    ＣＰＵ
１１１０    セキュアＣＰＵ
１１２０    非セキュアＣＰＵ
１２００、２２００、３４００    メインメモリ
１３００、２３００、３４１０    メインメモリコントローラ
１４００、２４００、１４００Ａ、１４００Ｂ、１４００Ｃ、１４００Ｄ、３５１０    ホストコントローラインターフェース
１５００、１５００Ａ、１５００Ｃ、２５００、３５００    ストレージ装置
１５１０    暗号化領域
１５２０    非暗号化領域
２１１０    セキュアモード
２１２０    非セキュアモード
３１００    バス
３２００    マイクロプロセッサ
３２１０    キャッシュメモリ
３３００    ＲＯＭ
３６００    入出力装置
３６１０    入出力コントローラ
３７００    ディスプレイ装置
３７１０    ディスプレイコントローラ
【図１】
2014086089.tif 000003
【図２】
2014086089.tif 000004
【図３】
2014086089.tif 000005
【図４】
2014086089.tif 000006
【図５】
2014086089.tif 000007
【図６】
2014086089.tif 000008
【図７】
2014086089.tif 000009
【図８】
2014086089.tif 000010
【図９Ａ】
2014086089.tif 000011
【図９Ｂ】
2014086089.tif 000012
【図１０】
2014086089.tif 000013
【図１１】
2014086089.tif 000014
【図１２】
2014086089.tif 000015
【図１３】
2014086089.tif 000016
【図１４】
2014086089.tif 000017
【図１５】
2014086089.tif 000018
【図１６】
2014086089.tif 000019
【図１７】
2014086089.tif 000020
【図１８】
2014086089.tif 000021