記憶媒体暗号処理装置及び方法
【課題】迅速にメモリの不良検出作業を開始すること。
【解決手段】本発明にかかるメモリの検査方法は、被検査データが格納されたメモリの検査方法であって、転送回路において、予め登録された転送設定情報に基づき、メモリから被検査データを読み出すステップと、転送回路において、読み出した被検査データを検査回路へ転送するステップと、検査回路において、転送された被検査データと、被検査データの参照用検査コードとを用いて当該メモリの検査を行う検査ステップと、を含む。
【解決手段】本発明にかかるメモリの検査方法は、被検査データが格納されたメモリの検査方法であって、転送回路において、予め登録された転送設定情報に基づき、メモリから被検査データを読み出すステップと、転送回路において、読み出した被検査データを検査回路へ転送するステップと、検査回路において、転送された被検査データと、被検査データの参照用検査コードとを用いて当該メモリの検査を行う検査ステップと、を含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶媒体暗号処理装置及び方法に関し、特に、記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う記憶媒体暗号処理装置及び方法に関する。
【背景技術】
【0002】
近年、HDD(Hard Disk Drive)やフラッシュメモリなどの記憶媒体について、データを暗号化及び復号化する暗号処理により管理することへのニーズが高まっている。AES(Advanced Encryption Standard)−XTSは、当該記憶媒体の暗号処理の方式として標準となりつつある。AES−XTSでは、記憶媒体のディスク上の位置を特定するセクタ番号についてAES暗号化する。そして、当該AES暗号化したセクタ番号を用いて、アクセス対象のデータのAES暗号化又は復号化する。これにより、異なるセクタ番号に同じ内容のデータが出現したとしてもデータの暗号化結果を異なるものにできる。
【0003】
図12は、AES−XTSを適用した記憶媒体暗号処理装置800におけるデータフローの例を示す図である。尚、図12は、データを暗号化する場合のデータフローを示している。記憶媒体暗号処理装置800は、AES暗号処理回路3と、乗算回路4と、排他的論理和回路5と、AES暗号処理回路6と、排他的論理和回路7とを備える。
【0004】
まず、AES暗号処理回路3は、暗号化対象のデータに対応するセクタ番号30と鍵31とを入力する。そして、AES暗号処理回路3は、AES暗号化処理による暗号化結果を乗算回路4へ出力する。次に、乗算回路4は、AES暗号処理回路3から入力される暗号化結果と、多項式係数41とを乗算し、変換結果を出力する。そして、排他的論理和回路5は、暗号化対象のデータの平文ブロック51と、乗算回路4から入力される変換結果とを排他的論理和演算し、演算結果をAES暗号処理回路6へ出力する。AES暗号処理回路6は、排他的論理和回路5からの演算結果と、鍵61とを入力する。そして、AES暗号処理回路6は、AES暗号化処理による暗号化結果を排他的論理和回路7へ出力する。その後、排他的論理和回路7は、AES暗号処理回路6から入力される暗号化結果と、乗算回路4から入力される変換結果とを排他的論理和演算し、暗号ブロック71を出力する。
【0005】
また、特許文献1には、セクタ番号を暗号化し、暗号化したセクタ番号をデータの暗号化に用いる磁気記憶装置に関する技術が開示されている。特許文献1にかかる磁気記憶装置は、複数段のシフトレジスタと、排他的論理和回路とを有するスクランブラを備える。前記排他的論理和回路は、一の生成多項式に対応する前記シフトレジスタの段の論理の排他的論理和を求める。スクランブラは、排他的論理和回路の出力をシフトレジスタの初段に帰還するように構成される。また、複数段のシフトレジスタには、初期値としてセクタ番号の2進化数等が設定される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−141284号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述したAES−XTSや特許文献1では、セクタ番号等の暗号化結果を用いて記憶媒体へのアクセス処理を行うため、セキュリティ強度を高めることができる。しかしながら、記憶媒体へのアクセス処理時間が遅くなるという問題点がある。その理由は、アクセス対象のデータを暗号化又は復号化する暗号処理を行う際に、都度、当該アクセス対象のセクタ番号を暗号化する必要があるためである。例えば、データをHDDへ格納する場合、ディスク上の格納先のセクタ番号の位置にヘッダが移動した後に、アクセス処理が開始される。このとき、まず、セクタ番号の暗号化処理が行われる。続いて、セクタ番号の暗号化処理が終了した後に、データの暗号化処理を開始する。そして、データの暗号化処理が終了した後に、ディスク上へ暗号ブロック71が格納される。
【0008】
図13は、一回のアクセス処理において、3つのセクタ番号に跨るアクセス処理が発生する場合の記憶媒体へのアクセス処理時間の概念を示す図である。ここでは、1番目のセクタ番号のAES処理SA1の後に、1番目のデータのAES処理DA1が実行される。続いて、2番目のセクタ番号のAES処理SA2の後に、2番目のデータのAES処理DA2が実行される。そして、3番目のセクタ番号のAES処理SA3の後に、3番目のデータのAES処理DA3が実行される。
【課題を解決するための手段】
【0009】
本発明の第1の態様にかかる記憶媒体暗号処理装置は、記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う記憶媒体暗号処理装置であって、前記位置情報に変換処理を行った変換結果をバッファに格納する位置情報変換手段と、前記バッファに格納された変換結果を用いて、当該変換結果に対応するデータの暗号処理を行うデータ暗号処理手段と、を備える。
【0010】
本発明の第2の態様にかかる記憶媒体暗号処理方法は、記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う記憶媒体暗号処理方法であって、前記位置情報に変換処理を行った変換結果をバッファに格納する位置情報変換ステップと、前記バッファに格納された変換結果を用いて、当該変換結果に対応するデータの暗号処理を行うデータ暗号処理ステップと、を含む。
【0011】
上述した本発明の第1及び第2の態様にかかるにかかる記憶媒体暗号処理装置及び方法では、データ暗号化処理とは独立させて、セクタ番号等の位置情報の変換処理を実行し、変換結果をバッファに格納する。そして、既に変換された変換結果をバッファから取得することによりデータ暗号化処理を実行する。つまり、データ暗号化処理の際に、アクセス対象の位置情報についての変換処理を行う必要がない。そのため、データ暗号化処理の時間を短くすることができる。
【発明の効果】
【0012】
本発明により、暗号処理を伴う記憶媒体へのアクセス処理のパフォーマンスを向上する記憶媒体暗号処理装置及び方法を提供することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の実施の形態1にかかる記憶媒体暗号処理装置の構成を示すブロック図である。
【図2】本発明の実施の形態1にかかる記憶媒体へのアクセス処理の流れを示すフローチャート図である。
【図3】本発明の実施の形態1にかかるセクタ番号の変換処理の流れを示すフローチャート図である。
【図4】本発明の実施の形態1にかかる2番目以降のセクタ番号の変換処理の流れを示すフローチャート図である。
【図5】本発明の実施の形態1にかかるデータ暗号処理の流れを示すフローチャート図である。
【図6】本発明の実施の形態1にかかる効果を説明するための図である。
【図7】本発明の実施の形態2にかかる記憶媒体へのアクセス処理の流れを示すフローチャート図である。
【図8】本発明の実施の形態2にかかるアクセスコマンドの処理順の調整処理の流れを示すフローチャート図である。
【図9】本発明の実施の形態2にかかる効果を説明するための図である。
【図10】本発明の実施の形態3にかかる記憶媒体暗号処理装置の構成を示すブロック図である。
【図11】本発明の実施の形態3にかかる効果を説明するための図である。
【図12】関連技術にかかるAES−XTSのデータフローを示す図である。
【図13】関連技術にかかる課題を説明するための図である。
【発明を実施するための形態】
【0014】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【0015】
<発明の実施の形態1>
図1は、本発明の実施の形態1にかかる記憶媒体暗号処理装置100の構成を示すブロック図である。記憶媒体暗号処理装置100は、HDDやフラッシュメモリなどの記憶媒体(不図示)を有する。記憶媒体暗号処理装置100は、当該記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う。ここでは、記憶媒体暗号処理装置100は、CPU(Central Processing Unit)等の外部装置(不図示)と所定の通信インタフェースにより接続されている。記憶媒体暗号処理装置100は、外部装置から記憶媒体へのアクセスコマンドを受け付ける。そして、記憶媒体暗号処理装置100は、記憶媒体へのアクセス処理を行い、アクセス結果を外部装置へ送信する。その際、記憶媒体暗号処理装置100は、アクセスコマンドに応じてアクセス処理の前後に暗号処理を行う。
【0016】
ここで、アクセスコマンドは、コマンドの種別を示すコマンドコード、記憶媒体の位置情報であるセクタ番号及びセクタ数を含む。コマンドコードは、例えば、書き込み要求又は読み出し要求である。セクタ番号は、例えば、LBA(Logical Block Addressing)である。尚、セクタ番号は、LBAに限定されない。そして、一つのアクセスコマンドは、複数の連続したセクタ番号を対象にしたアクセスを行うことが可能である。そのため、セクタ番号は、当該アクセス対象の先頭のセクタ番号である。また、セクタ数は、当該アクセス対象となる当該先頭のセクタ番号に連続するセクタの数である。尚、アクセスコマンドにおける位置情報は、セクタ番号及びセクタ数に限定されない。アクセスコマンドにおける位置情報は、アクセス対象のセクタ番号を複数含むものであってもよい。または、位置情報は、アクセス対象の開始位置及び終了位置を示す情報であってもよい。すなわち、位置情報は、少なくとも記憶媒体におけるデータの格納先を一意に特定できるものである。
【0017】
例えば、アクセスコマンドが書き込み要求である場合、記憶媒体暗号処理装置100は、当該アクセスコマンドに対応する書き込み対象のデータブロックである平文ブロック51を併せて受け付ける。そして、記憶媒体暗号処理装置100は、平文ブロック51に対して暗号化処理を行い、暗号結果を記憶媒体のセクタ番号に対応する位置に格納する。その後、記憶媒体暗号処理装置100は、格納完了の旨を要求元である外部装置への応答とする。
【0018】
また、アクセスコマンドが読み出し要求である場合、記憶媒体暗号処理装置100は、記憶媒体から当該アクセスコマンドに対応するセクタ番号に格納された暗号ブロック71を読み出す。そして、記憶媒体暗号処理装置100は、読み出した暗号ブロック71に対して復号化処理を行い、平文ブロック51を生成する。そして、記憶媒体暗号処理装置100は、生成した平文ブロック51を要求元である外部装置への応答とする。尚、以下では、アクセスコマンドが書き込み要求である場合、すなわち、記憶媒体暗号処理装置100は、平文ブロック51に対して暗号化処理を行う場合について説明し、復号化処理を行う場合については、詳細な説明を省略する。
【0019】
記憶媒体暗号処理装置100は、コマンドキュー1と、セクタ番号処理用コマンド解析回路2aと、データ処理用コマンド解析回路2bと、AES暗号処理回路3と、乗算回路4と、排他的論理和回路5と、AES暗号処理回路6と、排他的論理和回路7と、バッファ8とを備える。
【0020】
コマンドキュー1は、外部装置からの複数のアクセスコマンドをFIFO(First-In First-Out)方式で管理する記憶領域である。ここでは、コマンドキュー1は、入力された複数のアクセスコマンドがコマンド11、コマンド12、・・・、及びコマンド1nの順番で格納されているものとする。ここで、記憶媒体暗号処理装置100は、外部装置から所定の時間内に受信した複数のアクセスコマンドについて、所定の時間内での受信順番に関わらず、記憶媒体へのヘッダ移動距離が最短となるように処理順序を定めるとよい。その場合、記憶媒体暗号処理装置100は、定めた処理順にコマンドキュー1に複数のアクセスコマンドを格納する。これにより、コマンドキューに格納された処理順に従ってアクセスコマンドを実行することで、HDDへのアクセス処理を高速化することができる。例えば、記憶媒体暗号処理装置100は、NCQ(Native Command Queuing)方式に従って、所定の時間内に受信した複数のアクセスコマンドの処理順序を定めると良い。尚、記憶媒体暗号処理装置100は、複数のアクセスコマンドの処理順序を定める方式は、NCQに限定されない。例えば、記憶媒体暗号処理装置100は、アクセスコマンドを任意の処理順序に並び替えてコマンドキュー1に格納しても良い。または、記憶媒体暗号処理装置100は、少なくとも複数のアクセスコマンドを受信した順序に従ってコマンドキュー1に格納してもよい。
【0021】
セクタ番号処理用コマンド解析回路2aは、コマンドキュー1から処理順にアクセスコマンドを読み出し、読み出したアクセスコマンドの解析を行う電子回路である。ここでは、セクタ番号処理用コマンド解析回路2aは、コマンド11、コマンド12、・・・、及びコマンド1nの順番で読み出す。セクタ番号処理用コマンド解析回路2aは、アクセスコマンドの解析により、アクセス対象のセクタ番号を抽出し、AES暗号処理回路3へ出力する。
【0022】
AES暗号処理回路3は、セクタ番号処理用コマンド解析回路2aから入力されるセクタ番号と、鍵31とを用いてAES暗号化処理を行う。そして、AES暗号処理回路3は、AES暗号化処理による暗号化結果を乗算回路4へ出力する。尚、AES暗号化処理は、公知なものであるため、ここでは、詳細な説明を省略する。乗算回路4は、AES暗号処理回路3から入力される暗号化結果と、多項式係数41とを乗算し、変換結果をバッファ8へ格納する。
【0023】
バッファ8は、セクタ番号がAES暗号処理回路3及び乗算回路4により変換処理された変換結果を格納する記憶領域である。ここでは、バッファ8は、コマンド11、コマンド12、・・・、及びコマンド1nのそれぞれと関連付けられた変換結果81、変換結果82、・・・、及び変換結果8nを格納する。
【0024】
すなわち、セクタ番号処理用コマンド解析回路2a、AES暗号処理回路3及び乗算回路4は、位置情報であるセクタ番号に変換処理を行い、セクタ番号が変換された変換結果をバッファ8に格納する位置情報変換手段である。
【0025】
データ処理用コマンド解析回路2bは、コマンドキュー1から処理順にアクセスコマンドを読み出し、読み出したアクセスコマンドの解析を行う電子回路である。尚、データ処理用コマンド解析回路2bは、セクタ番号処理用コマンド解析回路2aによるアクセスコマンドの読み出しとは独立してコマンドキュー1から読み出しを行う。例えば、コマンド11がセクタ番号処理用コマンド解析回路2aにより既に読み出し済みの場合であっても、データ処理用コマンド解析回路2bは、コマンド11を未処理としてコマンド11、コマンド12、・・・、及びコマンド1nの順番で読み出す。データ処理用コマンド解析回路2bは、アクセスコマンドの解析により、アクセス対象、すなわち、記憶媒体への格納対象のデータブロックを取得し、平文ブロック51として出力する。
【0026】
排他的論理和回路5は、平文ブロック51をアクセス対象とするアクセスコマンドに関連付けられた変換結果をバッファ8から読み出す。そして、排他的論理和回路5は、平文ブロック51と読み出した変換結果とを排他的論理和演算し、演算結果をAES暗号処理回路6へ出力する。AES暗号処理回路6は、排他的論理和回路5からの演算結果と、鍵61とを入力する。そして、AES暗号処理回路6は、AES暗号化処理による暗号化結果を排他的論理和回路7へ出力する。その後、排他的論理和回路7は、AES暗号処理回路6から入力される暗号化結果と、排他的論理和回路5がバッファ8から読み出した変換結果とを排他的論理和演算し、暗号ブロック71を出力する。
【0027】
尚、アクセスコマンドが読み出し要求である場合、排他的論理和回路7は、暗号ブロック71と、バッファ8から読み出した変換結果とを排他的論理和演算し、演算結果をAES暗号処理回路6へ出力する。AES暗号処理回路6は、排他的論理和回路7からの演算結果と、鍵61とを入力する。そして、AES暗号処理回路6は、AES復号化処理による復号化結果を排他的論理和回路5へ出力する。その後、排他的論理和回路5は、AES暗号処理回路6から入力される復号化結果と、バッファ8から読み出した変換結果とを排他的論理和演算し、平文ブロック51を出力する。
【0028】
すなわち、データ処理用コマンド解析回路2b、排他的論理和回路5、AES暗号処理回路6及び排他的論理和回路7は、バッファ8に格納された変換結果を用いて、当該変換結果に対応する平文ブロック51の暗号処理を行うデータ暗号処理手段である。尚、復号化処理の場合、データ処理用コマンド解析回路2bは、セクタ番号に対応するデータを記憶媒体から暗号ブロック71として読み出す。そして、図1において、暗号ブロック71から平文ブロック51へ排他的論理和回路7、AES暗号処理回路6及び排他的論理和回路5の順番で処理されるものとする。
【0029】
図2は、本発明の実施の形態1にかかる記憶媒体へのアクセス処理の流れを示すフローチャート図である。まず、記憶媒体暗号処理装置100は、複数のアクセスコマンドを入力する(S11)。次に、記憶媒体暗号処理装置100は、入力した複数のアクセスコマンドをNCQに従った処理順にソートし、コマンドキュー1へ格納する(S12)。
【0030】
そして、セクタ番号処理用コマンド解析回路2aは、コマンドキュー1から1番目のアクセスコマンドであるコマンド11を取得及び解析する(S13)。このとき、セクタ番号処理用コマンド解析回路2aは、解析によりコマンド11に含まれるセクタ番号を抽出する。そして、セクタ番号処理用コマンド解析回路2aは、抽出したセクタ番号をAES暗号処理回路3へ出力する。
【0031】
続いて、AES暗号処理回路3は、セクタ番号の変換処理を行う(S14)。ここで、図3は、本発明の実施の形態1にかかるセクタ番号の変換処理の流れを示すフローチャート図である。まず、AES暗号処理回路3は、上述したように、セクタ番号処理用コマンド解析回路2aから入力されるセクタ番号と、鍵31とを用いてAES暗号化処理を行う(S141)。そして、AES暗号処理回路3は、AES暗号化処理による暗号化結果を乗算回路4へ出力する。また、乗算回路4は、AES暗号処理回路3から入力される暗号化結果と、多項式係数41とを乗算し、変換結果81をバッファ8へ格納する(S142)。
【0032】
図2に戻り、記憶媒体暗号処理装置100は、ステップS15及びS16を並列して実行する。すなわち、セクタ番号処理用コマンド解析回路2a、AES暗号処理回路3及び乗算回路4は、コマンドキュー1に格納された2番目以降のアクセスコマンドについて、セクタ番号の変換処理を行う(S15)。尚、ステップS15の処理の詳細は、図4に後述する。また、データ処理用コマンド解析回路2b、排他的論理和回路5、AES暗号処理回路6及び排他的論理和回路7は、コマンドキュー1に格納された全てのアクセスコマンドの対象となるデータの暗号処理を行う(S16)。尚、ステップS16の処理の詳細は、図5に後述する。そして、ステップS15及びS16が共に終了することにより、記憶媒体暗号処理装置100は、記憶媒体へのアクセス処理を終了する。
【0033】
図4は、本発明の実施の形態1にかかる2番目以降のセクタ番号の変換処理の流れを示すフローチャート図である。まず、セクタ番号処理用コマンド解析回路2aは、コマンドキュー1から処理順に未処理のアクセスコマンドを取得及び解析する(S151)。ここでは、ステップS13及びS14においてコマンド11が処理されたため、セクタ番号理用コマンド解析回路2aは、コマンド12を取得する。そして、セクタ番号処理用コマンド解析回路2aは、解析によりコマンド12に含まれるセクタ番号を抽出する。
【0034】
次に、AES暗号処理回路3及び乗算回路4は、セクタ番号の変換処理を行う(S152)。尚、ここでは、AES暗号処理回路3及び乗算回路4は、処理対象がコマンド12のセクタ番号としてステップS14と同等の処理を行う。そして、乗算回路4は、変換結果82をバッファ8に格納する。
【0035】
その後、セクタ番号処理用コマンド解析回路2aは、コマンドキュー1に未処理のアクセスコマンドが存在するか否かを判定する(S153)。未処理のアクセスコマンドが存在すると判定した場合、ステップS151へ進む。そして、セクタ番号処理用コマンド解析回路2aは、コマンドキュー1からコマンド12以降コマンド1nまでの処理をステップS151乃至S153において繰り返す。ステップS153において、未処理のアクセスコマンドが存在しないと判定した場合、記憶媒体暗号処理装置100は、2番目以降のセクタ番号の変換処理を終了する。
【0036】
図5は、本発明の実施の形態1にかかるデータ暗号処理の流れを示すフローチャート図である。まず、データ処理用コマンド解析回路2bは、コマンドキュー1から処理順に未処理のアクセスコマンドを取得及び解析する(S91)。尚、上述したようにデータ処理用コマンド解析回路2bは、セクタ番号処理用コマンド解析回路2aにより処理済みであっても未処理と判定する。そのため、データ処理用コマンド解析回路2bは、最初にコマンド11を取得する。そして、データ処理用コマンド解析回路2bは、アクセスコマンド解析により記憶媒体への格納対象のデータブロックを取得し、平文ブロック51として出力する。
【0037】
次に、排他的論理和回路5は、平文ブロック51をアクセス対象とするアクセスコマンドに関連付けられた変換結果をバッファ8から読み出す(S162)。ここでは、排他的論理和回路5は、コマンド11に対応する変換結果81をバッファ8から読み出す。そして、排他的論理和回路5、AES暗号処理回路6及び排他的論理和回路7は、アクセス対象となるデータブロックのAES暗号化処理を行う(S163)。つまり、上述したように、排他的論理和回路5、AES暗号処理回路6及び排他的論理和回路7は、平文ブロック51と変換結果81と鍵61とを用いて、データ暗号処理を行う。
【0038】
そして、データ処理用コマンド解析回路2bは、直前に処理したデータブロックが最後のデータブロックであるか否かを判定する(S164)。つまり、データ処理用コマンド解析回路2bは、処理対象のアクセスコマンドにおけるデータ暗号処理が終了したか否かを判定する。例えば、データ処理用コマンド解析回路2bは、コマンド11のアクセス対象となるデータブロックの内、最後であるか否かを判定する。ステップS164において、最後のデータブロックでないと判定した場合、データ処理用コマンド解析回路2bは、セクタの境界であるか否かを判定する(S165)。つまり、データ処理用コマンド解析回路2bは、処理対象のアクセスコマンドにおける同一のセクタ番号に対応するデータブロックのデータ暗号処理が終了したか否かを判定する。例えば、データ処理用コマンド解析回路2bは、直前に処理したデータブロックが同一セクタ番号によるアクセス対象のデータブロックの内、最後であるか否かを判定する。ステップS165において、セクタの境界でないと判定した場合、ステップS163へ進み、以降、当該セクタ番号に対応する最後のデータブロックのデータ暗号処理が終了するまでの間、ステップS163乃至S165が繰り返される。また、ステップS165において、セクタの境界であると判定した場合、ステップS162へ進み、以降、処理対象のアクセスコマンドにおける最後のセクタ番号までの間、ステップS162乃至S165が繰り返される。また、ステップS164において、最後のデータブロックであると判定した場合、ステップS166へ進む。
【0039】
そして、データ処理用コマンド解析回路2bは、コマンドキュー1に未処理のアクセスコマンドが存在するか否かを判定する(S166)。未処理のアクセスコマンドが存在すると判定した場合、ステップS161へ進む。そして、データ処理用コマンド解析回路2bは、コマンドキュー1からコマンド12以降コマンド1nまでの処理をステップS161乃至S166において繰り返す。ステップS166において、未処理のアクセスコマンドが存在しないと判定した場合、データの暗号処理が終了する。
【0040】
このように、位置情報変換手段は、遅くともデータ暗号処理手段がコマンド11に対応する第1のデータの暗号処理を終了する前に、当該第1のデータ以降に処理されるコマンド12に対応する第2のデータに対応する位置情報について、変換処理を開始する。つまり、第1データの暗号化処理の終了を待たずに、第2データの位置情報の変換処理を開始することで、データ暗号処理手段は、第1のデータの暗号処理が終了し次第、間隔を開けずに第2データの暗号化処理を開始することができる。
【0041】
さらに、位置情報変換手段は、データ暗号処理手段が第1のデータの暗号処理中に、第2のデータに対応する位置情報について、変換処理を開始するとよい。これにより、位置情報の変換処理とデータの暗号化処理とを並列実行することができ、アクセス処理を早めることができる。
【0042】
尚、上述した図12に示したデータフローの場合、セクタ番号の切り替わりの度に、セクタ番号の暗号化処理が発生するため、切り替わりのオーバーヘッドにより処理効率が下がるという問題があった。つまり、関連技術にかかるAES暗号処理回路は、実際にアクセス処理が開始されるまで、セクタ数を把握することができなかった。そのため、図5のステップS165において、セクタの境界であると判定した場合、データ暗号手段は、都度、アクセス対象のセクタ番号を抽出し、抽出したセクタ番号に対するAES暗号化処理を行う必要があった。
【0043】
また、記憶媒体と外部装置との入出力速度については、近年、通信インタフェースの処理速度が高速化しているため、記憶媒体内部のドライブ等の物理的なアクセス処理がボトルネックとなっている。そのため、当該アクセス処理におけるパフォーマンスの低下は、入出力時間全体への影響に直結する。
【0044】
これに比べ、本発明の実施の形態1により、図5のステップS162では、データ暗号手段は、すでに暗号化処理されたセクタ番号の変換結果をバッファ8から読み出すため、この時点でセクタ番号の暗号化処理を行う場合に比べて、処理効率を高めることができる。例えば、1セクタが512バイトであり、1セクタ番号あたり、32データブロックとする。このとき、1セクタ分のAES暗号化処理を行う場合、関連技術にかかるデータ暗号処理手段は、33回のAES暗号化処理を行う必要があったが、本発明の実施の形態1にかかるデータ暗号処理手段は、セクタ番号についてのAES暗号化処理を除いた32回に軽減することができる。上述したように、アクセス処理におけるパフォーマンスの向上は、全体の入出力時間への影響に直結するため、効果が大きい。
【0045】
尚、一つのアクセスコマンドが、複数の連続したセクタ番号を対象にしたアクセスである場合、位置情報変換手段は、当該アクセスの対象となるデータの長さに応じて位置情報を補正し、当該補正した位置情報に変換処理を行った変換結果をさらにバッファ8に格納することが望ましい。例えば、図3のステップS142の直後に、セクタ番号処理用コマンド解析回路2aは、コマンドキュー1から取得したコマンド11に含まれるセクタ数が2以上であるか否かを判定する。セクタ数が2以上であると判定した場合、コマンド11に含まれるセクタ番号に1を加算してセクタ番号を補正する。そして、セクタ番号処理用コマンド解析回路2aは、補正したセクタ番号について、ステップS141及びS142を実行する。これをセクタ数分繰り返す。または、図2のステップS14においては、位置情報変換手段は、一つ目のセクタ番号についての変換処理のみを実行し、図4の中で、残りのセクタ数分のセクタ番号の変換処理を繰り返しても良い。これにより、1つのアクセスコマンドのアクセス対象が複数のセクタ番号を対象とする場合、セクタ番号処理用コマンド解析回路2aは、都度、セクタ番号を抽出する必要がなくなり、変換処理を効率化することができる。
【0046】
図6は、本発明の実施の形態1にかかる効果を説明するための図である。図6では、一回のアクセス処理において、3つのセクタ番号に対してアクセスが発生する場合の記憶媒体へのアクセス処理時間の概念を示す。ここでは、位置情報変換手段は、ステップS14において、1番目のセクタ番号のAES処理SA1を実行する。そして、位置情報変換手段は、ステップS15において、2番目のセクタ番号のAES処理SA2及び3番目のセクタ番号のAES処理SA3を実行する。また、データ暗号処理手段は、ステップS16において、少なくともAES処理SA1の実行終了以後に、AES処理DA1、AES処理DA2及びAES処理DA3を実行する。これにより、ステップS15の位置情報変換手段と、ステップS16のデータ暗号処理手段とが並列実行される。そのため、図13に比べて、記憶媒体へのアクセス処理時間が短くなると言える。このように、本発明の実施の形態1にかかる記憶媒体暗号処理装置100により、記憶媒体へのアクセス処理のパフォーマンスが向上する。
【0047】
<発明の実施の形態2>
本発明の実施の形態2は、本発明の実施の形態1の変形例である。本発明の実施の形態2にかかる位置情報変換手段は、データ暗号処理手段が暗号処理を行っていない間に、未処理であるデータに対応する位置情報について、変換処理を行うものである。ここでは、NCQに従い複数のアクセスコマンドを所定の処理順に調整してコマンドキュー1に格納する際に、セクタ番号の変換処理を実行する場合を説明する。つまり、位置情報変換手段は、複数のアクセスコマンドを所定の処理順に調整する際に、調整対象のアクセスコマンドに含まれる位置情報を取得し、当該取得した位置情報から変換処理により変換結果を算出し、算出した変換結果をバッファ8に格納する。そして、データ暗号処理手段は、コマンドキュー1に格納された処理順にアクセスコマンドを取得し、当該取得したアクセスコマンドに対応する変換結果をバッファ8から取得し、当該取得した変換結果を用いて、当該取得したアクセスコマンドの対象となるデータの暗号処理を行う。これにより、位置情報変換手段の処理効率が高まる。よって、記憶媒体へのアクセス処理のパフォーマンスが向上する。
【0048】
本発明の実施の形態2にかかる記憶媒体暗号処理装置の構成は、図1と同等であるため詳細な説明を省略する。そのため、以下では、図1と同一の符号を用いて、本発明の実施の形態1との違いを中心に説明する。図7は、本発明の実施の形態2にかかる記憶媒体へのアクセス処理の流れを示すフローチャート図である。まず、記憶媒体暗号処理装置100は、複数のアクセスコマンドを入力する(S21)。次に、記憶媒体暗号処理装置100は、入力した複数のアクセスコマンドをNCQに従った処理順にソートし、コマンドキュー1へ格納する(S22)。
【0049】
ここで、図8は、本発明の実施の形態2にかかるアクセスコマンドの処理順の調整処理の流れを示すフローチャート図である。まず、記憶媒体暗号処理装置100は、入力された複数のアクセスコマンドの内、未処理のアクセスコマンドを入力順に解析する(S221)。このとき、記憶媒体暗号処理装置100は、アクセスコマンドの解析によりセクタ番号及びセクタ数を抽出する。そして、記憶媒体暗号処理装置100は、ステップS222及びステップS223を並列して実行する。すなわち、記憶媒体暗号処理装置100は、解析したアクセスコマンドの処理順を調整する(S222)。例えば、記憶媒体暗号処理装置100は、当該アクセスコマンドの解析結果に応じて、NCQに従って適切な処理順に並べ替える。また、セクタ番号処理用コマンド解析回路2a、AES暗号処理回路3及び乗算回路4である位置情報変換手段は、解析したアクセスコマンドに含まれるセクタ番号について、変換処理を行う(S223)。尚、セクタ番号の変換処理は、図3と同様のため、説明を省略する。
【0050】
その後、記憶媒体暗号処理装置100は、入力された複数のアクセスコマンドの内、未処理のアクセスコマンドが存在するか否かを判定する(S224)。未処理のアクセスコマンドが存在すると判定した場合、ステップS221へ進む。そして、記憶媒体暗号処理装置100は、入力された全てのアクセスコマンドについて、ステップS221乃至S224において繰り返す。ステップS224において、未処理のアクセスコマンドが存在しないと判定した場合、記憶媒体暗号処理装置100は、アクセスコマンドの処理順の調整処理の残りを実行する。これにより、コマンドキュー1には、入力された複数のアクセスコマンドがコマンド11、コマンド12、・・・、及びコマンド1nの順番で格納される。また、バッファ8には、コマンド11、コマンド12、・・・、及びコマンド1nのそれぞれと関連付けられた変換結果81、変換結果82、・・・、及び変換結果8nが格納される。そのため、アクセス処理において、データ暗号処理手段は、コマンドキュー1に格納されたアクセスコマンドと、バッファ8に格納された変換結果とを用いて、データの暗号処理を行うことができる。また、記憶媒体暗号処理装置100は、コマンドキュー1に格納する際に行われるアクセスコマンドの調整処理において、各アクセスコマンドについて解析を行う。そして、解析によりアクセスコマンドに含まれるセクタ番号を抽出する。そのため、位置情報変換手段は、当該調整処理と並行して抽出されたセクタ番号の変換処理を行うことができる。よって、本発明の実施の形態2では、位置情報変換手段が別途、コマンドキュー1からアクセスコマンドを取得及び解析することがない。そのため、セクタ番号の変換処理を効率的に行うことができる。
【0051】
図9は、本発明の実施の形態2にかかる効果を説明するための図である。図9では、一回のアクセス処理において、3つのセクタ番号に対してアクセスが発生する場合のNCQ処理時間及び記憶媒体へのアクセス処理時間の概念を示す。ここでは、位置情報変換手段は、NCQ処理時間、すなわち、図7のステップS22において、1番目のセクタ番号のAES処理SA1、2番目のセクタ番号のAES処理SA2及び3番目のセクタ番号のAES処理SA3を実行する。そして、データ暗号処理手段は、アクセス処理時間において、AES処理DA1、AES処理DA2及びAES処理DA3を実行する。これにより、アクセス処理時間には、セクタ番号の変換処理を行う必要がなく、記憶媒体暗号処理装置100の処理全体の負荷が分散される。よって、記憶媒体へのアクセス処理のパフォーマンスが向上する。
【0052】
<発明の実施の形態3>
本発明の実施の形態3は、本発明の実施の形態1及び3の変形例である。本発明の実施の形態3にかかる位置情報変換手段は、データ暗号処理手段が暗号処理を行っていない間に、未処理であるデータに対応する位置情報について、変換処理を行うものである。ここでは、図1のAES暗号処理回路3及びAES暗号処理回路6が共用された場合を説明する。言い換えると、位置情報変換手段は、データ暗号処理手段における暗号処理を変換処理とするものである。これにより、回路規模が抑えることができる。
【0053】
図10は、本発明の実施の形態3にかかる記憶媒体暗号処理装置200の構成を示すブロック図である。記憶媒体暗号処理装置200は、コマンドキュー1と、セクタ番号処理用コマンド解析回路2aと、データ処理用コマンド解析回路2bと、排他的論理和回路5と、セレクタ92と、AES暗号処理回路90と、セレクタ93と、乗算回路4と、バッファ8と、排他的論理和回路7とを備える。尚、図10の構成の内、図1と同等のものには、同一の符号を付し、詳細な説明を省略する。以下では、本発明の実施の形態1及び2との違いを中心に説明する。
【0054】
セレクタ92は、記憶媒体暗号処理装置200からの指示に応じて、セクタ番号処理用コマンド解析回路2a又はデータ処理用コマンド解析回路2bのいずれかからの入力を選択し、AES暗号処理回路90へ出力する。AES暗号処理回路90は、AES暗号処理回路3及びAES暗号処理回路6と同等の機能を有し、セレクタ92から入力されるデータと鍵91とを用いてAES暗号化処理を行う。セレクタ93は、記憶媒体暗号処理装置200からの指示に応じて、AES暗号処理回路90からの入力を乗算回路4又は排他的論理和回路7のいずれかを選択して出力する。
【0055】
例えば、記憶媒体暗号処理装置200が位置情報変換手段として機能する場合は、セレクタ92は、セクタ番号処理用コマンド解析回路2aからの入力を選択し、セクタ番号をAES暗号処理回路90へ出力する。そして、AES暗号処理回路90は、セレクタ92から入力されたセクタ番号と、鍵91とを用いてAES暗号化処理を行い、暗号結果をセレクタ93へ出力する。このとき、セレクタ93は、暗号結果を乗算回路4へ出力する。逆に、記憶媒体暗号処理装置200がデータ暗号処理手段として機能する場合は、セレクタ92は、データ処理用コマンド解析回路2bからの入力を選択し、平文ブロック51の演算結果をAES暗号処理回路90へ出力する。そして、AES暗号処理回路90は、セレクタ92から入力された演算結果と、鍵91とを用いてAES暗号化処理を行い、暗号結果をセレクタ93へ出力する。このとき、セレクタ93は、暗号結果を排他的論理和回路7へ出力する。
【0056】
尚、本発明の実施の形態3にかかる記憶媒体へのアクセス処理の流れは、図7及び図8と同等であってもよい。その場合、本発明の実施の形態2に比べて回路規模を抑えることができる。または、位置情報変換手段は、記憶媒体へのアクセス処理の直前に行われるヘッダの移動時間、すなわち、シーク時間において、実行しても構わない。その場合の効果を図11により説明する。図11では、一回のアクセス処理において、3つのセクタ番号に対してアクセスが発生する場合のシーク時間及び記憶媒体へのアクセス処理時間の概念を示す。ここでは、位置情報変換手段は、1つ目のセクタ番号へのアクセス処理におけるシーク時間中に、1番目のセクタ番号のAES処理SA1を実行する。そして、データ暗号処理手段は、アクセス処理時間において、1番目のデータブロックのAES処理DA1を実行する。これにより、ヘッダが移動した後のアクセス処理時間を短くすることができる。尚、記憶媒体へのシーク時間は、一般的にアクセス処理時間に比べて長い。そのため、シーク時間は、記憶媒体へのアクセス処理の待ち時間と言える。本発明の実施の形態3では、待ち時間を有効活用できる。さらに、本発明の実施の形態3では、AES処理SA1、SA2及びSA3をまとめて実行することも可能である。以上のことから、アクセス処理時間には、セクタ番号の変換処理を行う必要がなく、記憶媒体暗号処理装置200の処理全体の負荷が分散される。よって、記憶媒体へのアクセス処理のパフォーマンスが向上する。
【0057】
<その他の実施の形態>
尚、上述した本発明の実施の形態1乃至3において、位置情報としてセクタ番号を用いたが、これに限定されない。また、暗号処理は、AESに限定されない。また、暗号処理の対象となるデータは、データブロックに限定されない。
【0058】
尚、上述した本発明の実施の形態1及び2では、セクタ番号の変換処理をAES暗号化処理としていたが、これに限定されない。例えば、セクタ番号の変換処理は、AES以外の暗号化方式でも構わない。または、セクタ番号の変換処理は、ハッシュ関数により求まるハッシュ値であっても構わない。つまり、セクタ番号の変換処理は、少なくともセクタ番号から任意の変換処理により値が変換された変換結果であればよい。
【0059】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【符号の説明】
【0060】
100 記憶媒体暗号処理装置
200 記憶媒体暗号処理装置
800 記憶媒体暗号処理装置
1 コマンドキュー
11 コマンド
12 コマンド
1n コマンド
2a セクタ番号処理用コマンド解析回路
2b データ処理用コマンド解析回路
3 AES暗号処理回路
30 セクタ番号
31 鍵
4 乗算回路
41 多項式係数
5 排他的論理和回路
51 平文ブロック
6 AES暗号処理回路
61 鍵
7 排他的論理和回路
71 暗号ブロック
8 バッファ
81 変換結果
82 変換結果
8n 変換結果
90 AES暗号処理回路
91 鍵
92 セレクタ
93 セレクタ
SA1 AES処理
SA2 AES処理
SA3 AES処理
DA1 AES処理
DA2 AES処理
DA3 AES処理
【技術分野】
【0001】
本発明は、記憶媒体暗号処理装置及び方法に関し、特に、記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う記憶媒体暗号処理装置及び方法に関する。
【背景技術】
【0002】
近年、HDD(Hard Disk Drive)やフラッシュメモリなどの記憶媒体について、データを暗号化及び復号化する暗号処理により管理することへのニーズが高まっている。AES(Advanced Encryption Standard)−XTSは、当該記憶媒体の暗号処理の方式として標準となりつつある。AES−XTSでは、記憶媒体のディスク上の位置を特定するセクタ番号についてAES暗号化する。そして、当該AES暗号化したセクタ番号を用いて、アクセス対象のデータのAES暗号化又は復号化する。これにより、異なるセクタ番号に同じ内容のデータが出現したとしてもデータの暗号化結果を異なるものにできる。
【0003】
図12は、AES−XTSを適用した記憶媒体暗号処理装置800におけるデータフローの例を示す図である。尚、図12は、データを暗号化する場合のデータフローを示している。記憶媒体暗号処理装置800は、AES暗号処理回路3と、乗算回路4と、排他的論理和回路5と、AES暗号処理回路6と、排他的論理和回路7とを備える。
【0004】
まず、AES暗号処理回路3は、暗号化対象のデータに対応するセクタ番号30と鍵31とを入力する。そして、AES暗号処理回路3は、AES暗号化処理による暗号化結果を乗算回路4へ出力する。次に、乗算回路4は、AES暗号処理回路3から入力される暗号化結果と、多項式係数41とを乗算し、変換結果を出力する。そして、排他的論理和回路5は、暗号化対象のデータの平文ブロック51と、乗算回路4から入力される変換結果とを排他的論理和演算し、演算結果をAES暗号処理回路6へ出力する。AES暗号処理回路6は、排他的論理和回路5からの演算結果と、鍵61とを入力する。そして、AES暗号処理回路6は、AES暗号化処理による暗号化結果を排他的論理和回路7へ出力する。その後、排他的論理和回路7は、AES暗号処理回路6から入力される暗号化結果と、乗算回路4から入力される変換結果とを排他的論理和演算し、暗号ブロック71を出力する。
【0005】
また、特許文献1には、セクタ番号を暗号化し、暗号化したセクタ番号をデータの暗号化に用いる磁気記憶装置に関する技術が開示されている。特許文献1にかかる磁気記憶装置は、複数段のシフトレジスタと、排他的論理和回路とを有するスクランブラを備える。前記排他的論理和回路は、一の生成多項式に対応する前記シフトレジスタの段の論理の排他的論理和を求める。スクランブラは、排他的論理和回路の出力をシフトレジスタの初段に帰還するように構成される。また、複数段のシフトレジスタには、初期値としてセクタ番号の2進化数等が設定される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−141284号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述したAES−XTSや特許文献1では、セクタ番号等の暗号化結果を用いて記憶媒体へのアクセス処理を行うため、セキュリティ強度を高めることができる。しかしながら、記憶媒体へのアクセス処理時間が遅くなるという問題点がある。その理由は、アクセス対象のデータを暗号化又は復号化する暗号処理を行う際に、都度、当該アクセス対象のセクタ番号を暗号化する必要があるためである。例えば、データをHDDへ格納する場合、ディスク上の格納先のセクタ番号の位置にヘッダが移動した後に、アクセス処理が開始される。このとき、まず、セクタ番号の暗号化処理が行われる。続いて、セクタ番号の暗号化処理が終了した後に、データの暗号化処理を開始する。そして、データの暗号化処理が終了した後に、ディスク上へ暗号ブロック71が格納される。
【0008】
図13は、一回のアクセス処理において、3つのセクタ番号に跨るアクセス処理が発生する場合の記憶媒体へのアクセス処理時間の概念を示す図である。ここでは、1番目のセクタ番号のAES処理SA1の後に、1番目のデータのAES処理DA1が実行される。続いて、2番目のセクタ番号のAES処理SA2の後に、2番目のデータのAES処理DA2が実行される。そして、3番目のセクタ番号のAES処理SA3の後に、3番目のデータのAES処理DA3が実行される。
【課題を解決するための手段】
【0009】
本発明の第1の態様にかかる記憶媒体暗号処理装置は、記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う記憶媒体暗号処理装置であって、前記位置情報に変換処理を行った変換結果をバッファに格納する位置情報変換手段と、前記バッファに格納された変換結果を用いて、当該変換結果に対応するデータの暗号処理を行うデータ暗号処理手段と、を備える。
【0010】
本発明の第2の態様にかかる記憶媒体暗号処理方法は、記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う記憶媒体暗号処理方法であって、前記位置情報に変換処理を行った変換結果をバッファに格納する位置情報変換ステップと、前記バッファに格納された変換結果を用いて、当該変換結果に対応するデータの暗号処理を行うデータ暗号処理ステップと、を含む。
【0011】
上述した本発明の第1及び第2の態様にかかるにかかる記憶媒体暗号処理装置及び方法では、データ暗号化処理とは独立させて、セクタ番号等の位置情報の変換処理を実行し、変換結果をバッファに格納する。そして、既に変換された変換結果をバッファから取得することによりデータ暗号化処理を実行する。つまり、データ暗号化処理の際に、アクセス対象の位置情報についての変換処理を行う必要がない。そのため、データ暗号化処理の時間を短くすることができる。
【発明の効果】
【0012】
本発明により、暗号処理を伴う記憶媒体へのアクセス処理のパフォーマンスを向上する記憶媒体暗号処理装置及び方法を提供することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の実施の形態1にかかる記憶媒体暗号処理装置の構成を示すブロック図である。
【図2】本発明の実施の形態1にかかる記憶媒体へのアクセス処理の流れを示すフローチャート図である。
【図3】本発明の実施の形態1にかかるセクタ番号の変換処理の流れを示すフローチャート図である。
【図4】本発明の実施の形態1にかかる2番目以降のセクタ番号の変換処理の流れを示すフローチャート図である。
【図5】本発明の実施の形態1にかかるデータ暗号処理の流れを示すフローチャート図である。
【図6】本発明の実施の形態1にかかる効果を説明するための図である。
【図7】本発明の実施の形態2にかかる記憶媒体へのアクセス処理の流れを示すフローチャート図である。
【図8】本発明の実施の形態2にかかるアクセスコマンドの処理順の調整処理の流れを示すフローチャート図である。
【図9】本発明の実施の形態2にかかる効果を説明するための図である。
【図10】本発明の実施の形態3にかかる記憶媒体暗号処理装置の構成を示すブロック図である。
【図11】本発明の実施の形態3にかかる効果を説明するための図である。
【図12】関連技術にかかるAES−XTSのデータフローを示す図である。
【図13】関連技術にかかる課題を説明するための図である。
【発明を実施するための形態】
【0014】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【0015】
<発明の実施の形態1>
図1は、本発明の実施の形態1にかかる記憶媒体暗号処理装置100の構成を示すブロック図である。記憶媒体暗号処理装置100は、HDDやフラッシュメモリなどの記憶媒体(不図示)を有する。記憶媒体暗号処理装置100は、当該記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う。ここでは、記憶媒体暗号処理装置100は、CPU(Central Processing Unit)等の外部装置(不図示)と所定の通信インタフェースにより接続されている。記憶媒体暗号処理装置100は、外部装置から記憶媒体へのアクセスコマンドを受け付ける。そして、記憶媒体暗号処理装置100は、記憶媒体へのアクセス処理を行い、アクセス結果を外部装置へ送信する。その際、記憶媒体暗号処理装置100は、アクセスコマンドに応じてアクセス処理の前後に暗号処理を行う。
【0016】
ここで、アクセスコマンドは、コマンドの種別を示すコマンドコード、記憶媒体の位置情報であるセクタ番号及びセクタ数を含む。コマンドコードは、例えば、書き込み要求又は読み出し要求である。セクタ番号は、例えば、LBA(Logical Block Addressing)である。尚、セクタ番号は、LBAに限定されない。そして、一つのアクセスコマンドは、複数の連続したセクタ番号を対象にしたアクセスを行うことが可能である。そのため、セクタ番号は、当該アクセス対象の先頭のセクタ番号である。また、セクタ数は、当該アクセス対象となる当該先頭のセクタ番号に連続するセクタの数である。尚、アクセスコマンドにおける位置情報は、セクタ番号及びセクタ数に限定されない。アクセスコマンドにおける位置情報は、アクセス対象のセクタ番号を複数含むものであってもよい。または、位置情報は、アクセス対象の開始位置及び終了位置を示す情報であってもよい。すなわち、位置情報は、少なくとも記憶媒体におけるデータの格納先を一意に特定できるものである。
【0017】
例えば、アクセスコマンドが書き込み要求である場合、記憶媒体暗号処理装置100は、当該アクセスコマンドに対応する書き込み対象のデータブロックである平文ブロック51を併せて受け付ける。そして、記憶媒体暗号処理装置100は、平文ブロック51に対して暗号化処理を行い、暗号結果を記憶媒体のセクタ番号に対応する位置に格納する。その後、記憶媒体暗号処理装置100は、格納完了の旨を要求元である外部装置への応答とする。
【0018】
また、アクセスコマンドが読み出し要求である場合、記憶媒体暗号処理装置100は、記憶媒体から当該アクセスコマンドに対応するセクタ番号に格納された暗号ブロック71を読み出す。そして、記憶媒体暗号処理装置100は、読み出した暗号ブロック71に対して復号化処理を行い、平文ブロック51を生成する。そして、記憶媒体暗号処理装置100は、生成した平文ブロック51を要求元である外部装置への応答とする。尚、以下では、アクセスコマンドが書き込み要求である場合、すなわち、記憶媒体暗号処理装置100は、平文ブロック51に対して暗号化処理を行う場合について説明し、復号化処理を行う場合については、詳細な説明を省略する。
【0019】
記憶媒体暗号処理装置100は、コマンドキュー1と、セクタ番号処理用コマンド解析回路2aと、データ処理用コマンド解析回路2bと、AES暗号処理回路3と、乗算回路4と、排他的論理和回路5と、AES暗号処理回路6と、排他的論理和回路7と、バッファ8とを備える。
【0020】
コマンドキュー1は、外部装置からの複数のアクセスコマンドをFIFO(First-In First-Out)方式で管理する記憶領域である。ここでは、コマンドキュー1は、入力された複数のアクセスコマンドがコマンド11、コマンド12、・・・、及びコマンド1nの順番で格納されているものとする。ここで、記憶媒体暗号処理装置100は、外部装置から所定の時間内に受信した複数のアクセスコマンドについて、所定の時間内での受信順番に関わらず、記憶媒体へのヘッダ移動距離が最短となるように処理順序を定めるとよい。その場合、記憶媒体暗号処理装置100は、定めた処理順にコマンドキュー1に複数のアクセスコマンドを格納する。これにより、コマンドキューに格納された処理順に従ってアクセスコマンドを実行することで、HDDへのアクセス処理を高速化することができる。例えば、記憶媒体暗号処理装置100は、NCQ(Native Command Queuing)方式に従って、所定の時間内に受信した複数のアクセスコマンドの処理順序を定めると良い。尚、記憶媒体暗号処理装置100は、複数のアクセスコマンドの処理順序を定める方式は、NCQに限定されない。例えば、記憶媒体暗号処理装置100は、アクセスコマンドを任意の処理順序に並び替えてコマンドキュー1に格納しても良い。または、記憶媒体暗号処理装置100は、少なくとも複数のアクセスコマンドを受信した順序に従ってコマンドキュー1に格納してもよい。
【0021】
セクタ番号処理用コマンド解析回路2aは、コマンドキュー1から処理順にアクセスコマンドを読み出し、読み出したアクセスコマンドの解析を行う電子回路である。ここでは、セクタ番号処理用コマンド解析回路2aは、コマンド11、コマンド12、・・・、及びコマンド1nの順番で読み出す。セクタ番号処理用コマンド解析回路2aは、アクセスコマンドの解析により、アクセス対象のセクタ番号を抽出し、AES暗号処理回路3へ出力する。
【0022】
AES暗号処理回路3は、セクタ番号処理用コマンド解析回路2aから入力されるセクタ番号と、鍵31とを用いてAES暗号化処理を行う。そして、AES暗号処理回路3は、AES暗号化処理による暗号化結果を乗算回路4へ出力する。尚、AES暗号化処理は、公知なものであるため、ここでは、詳細な説明を省略する。乗算回路4は、AES暗号処理回路3から入力される暗号化結果と、多項式係数41とを乗算し、変換結果をバッファ8へ格納する。
【0023】
バッファ8は、セクタ番号がAES暗号処理回路3及び乗算回路4により変換処理された変換結果を格納する記憶領域である。ここでは、バッファ8は、コマンド11、コマンド12、・・・、及びコマンド1nのそれぞれと関連付けられた変換結果81、変換結果82、・・・、及び変換結果8nを格納する。
【0024】
すなわち、セクタ番号処理用コマンド解析回路2a、AES暗号処理回路3及び乗算回路4は、位置情報であるセクタ番号に変換処理を行い、セクタ番号が変換された変換結果をバッファ8に格納する位置情報変換手段である。
【0025】
データ処理用コマンド解析回路2bは、コマンドキュー1から処理順にアクセスコマンドを読み出し、読み出したアクセスコマンドの解析を行う電子回路である。尚、データ処理用コマンド解析回路2bは、セクタ番号処理用コマンド解析回路2aによるアクセスコマンドの読み出しとは独立してコマンドキュー1から読み出しを行う。例えば、コマンド11がセクタ番号処理用コマンド解析回路2aにより既に読み出し済みの場合であっても、データ処理用コマンド解析回路2bは、コマンド11を未処理としてコマンド11、コマンド12、・・・、及びコマンド1nの順番で読み出す。データ処理用コマンド解析回路2bは、アクセスコマンドの解析により、アクセス対象、すなわち、記憶媒体への格納対象のデータブロックを取得し、平文ブロック51として出力する。
【0026】
排他的論理和回路5は、平文ブロック51をアクセス対象とするアクセスコマンドに関連付けられた変換結果をバッファ8から読み出す。そして、排他的論理和回路5は、平文ブロック51と読み出した変換結果とを排他的論理和演算し、演算結果をAES暗号処理回路6へ出力する。AES暗号処理回路6は、排他的論理和回路5からの演算結果と、鍵61とを入力する。そして、AES暗号処理回路6は、AES暗号化処理による暗号化結果を排他的論理和回路7へ出力する。その後、排他的論理和回路7は、AES暗号処理回路6から入力される暗号化結果と、排他的論理和回路5がバッファ8から読み出した変換結果とを排他的論理和演算し、暗号ブロック71を出力する。
【0027】
尚、アクセスコマンドが読み出し要求である場合、排他的論理和回路7は、暗号ブロック71と、バッファ8から読み出した変換結果とを排他的論理和演算し、演算結果をAES暗号処理回路6へ出力する。AES暗号処理回路6は、排他的論理和回路7からの演算結果と、鍵61とを入力する。そして、AES暗号処理回路6は、AES復号化処理による復号化結果を排他的論理和回路5へ出力する。その後、排他的論理和回路5は、AES暗号処理回路6から入力される復号化結果と、バッファ8から読み出した変換結果とを排他的論理和演算し、平文ブロック51を出力する。
【0028】
すなわち、データ処理用コマンド解析回路2b、排他的論理和回路5、AES暗号処理回路6及び排他的論理和回路7は、バッファ8に格納された変換結果を用いて、当該変換結果に対応する平文ブロック51の暗号処理を行うデータ暗号処理手段である。尚、復号化処理の場合、データ処理用コマンド解析回路2bは、セクタ番号に対応するデータを記憶媒体から暗号ブロック71として読み出す。そして、図1において、暗号ブロック71から平文ブロック51へ排他的論理和回路7、AES暗号処理回路6及び排他的論理和回路5の順番で処理されるものとする。
【0029】
図2は、本発明の実施の形態1にかかる記憶媒体へのアクセス処理の流れを示すフローチャート図である。まず、記憶媒体暗号処理装置100は、複数のアクセスコマンドを入力する(S11)。次に、記憶媒体暗号処理装置100は、入力した複数のアクセスコマンドをNCQに従った処理順にソートし、コマンドキュー1へ格納する(S12)。
【0030】
そして、セクタ番号処理用コマンド解析回路2aは、コマンドキュー1から1番目のアクセスコマンドであるコマンド11を取得及び解析する(S13)。このとき、セクタ番号処理用コマンド解析回路2aは、解析によりコマンド11に含まれるセクタ番号を抽出する。そして、セクタ番号処理用コマンド解析回路2aは、抽出したセクタ番号をAES暗号処理回路3へ出力する。
【0031】
続いて、AES暗号処理回路3は、セクタ番号の変換処理を行う(S14)。ここで、図3は、本発明の実施の形態1にかかるセクタ番号の変換処理の流れを示すフローチャート図である。まず、AES暗号処理回路3は、上述したように、セクタ番号処理用コマンド解析回路2aから入力されるセクタ番号と、鍵31とを用いてAES暗号化処理を行う(S141)。そして、AES暗号処理回路3は、AES暗号化処理による暗号化結果を乗算回路4へ出力する。また、乗算回路4は、AES暗号処理回路3から入力される暗号化結果と、多項式係数41とを乗算し、変換結果81をバッファ8へ格納する(S142)。
【0032】
図2に戻り、記憶媒体暗号処理装置100は、ステップS15及びS16を並列して実行する。すなわち、セクタ番号処理用コマンド解析回路2a、AES暗号処理回路3及び乗算回路4は、コマンドキュー1に格納された2番目以降のアクセスコマンドについて、セクタ番号の変換処理を行う(S15)。尚、ステップS15の処理の詳細は、図4に後述する。また、データ処理用コマンド解析回路2b、排他的論理和回路5、AES暗号処理回路6及び排他的論理和回路7は、コマンドキュー1に格納された全てのアクセスコマンドの対象となるデータの暗号処理を行う(S16)。尚、ステップS16の処理の詳細は、図5に後述する。そして、ステップS15及びS16が共に終了することにより、記憶媒体暗号処理装置100は、記憶媒体へのアクセス処理を終了する。
【0033】
図4は、本発明の実施の形態1にかかる2番目以降のセクタ番号の変換処理の流れを示すフローチャート図である。まず、セクタ番号処理用コマンド解析回路2aは、コマンドキュー1から処理順に未処理のアクセスコマンドを取得及び解析する(S151)。ここでは、ステップS13及びS14においてコマンド11が処理されたため、セクタ番号理用コマンド解析回路2aは、コマンド12を取得する。そして、セクタ番号処理用コマンド解析回路2aは、解析によりコマンド12に含まれるセクタ番号を抽出する。
【0034】
次に、AES暗号処理回路3及び乗算回路4は、セクタ番号の変換処理を行う(S152)。尚、ここでは、AES暗号処理回路3及び乗算回路4は、処理対象がコマンド12のセクタ番号としてステップS14と同等の処理を行う。そして、乗算回路4は、変換結果82をバッファ8に格納する。
【0035】
その後、セクタ番号処理用コマンド解析回路2aは、コマンドキュー1に未処理のアクセスコマンドが存在するか否かを判定する(S153)。未処理のアクセスコマンドが存在すると判定した場合、ステップS151へ進む。そして、セクタ番号処理用コマンド解析回路2aは、コマンドキュー1からコマンド12以降コマンド1nまでの処理をステップS151乃至S153において繰り返す。ステップS153において、未処理のアクセスコマンドが存在しないと判定した場合、記憶媒体暗号処理装置100は、2番目以降のセクタ番号の変換処理を終了する。
【0036】
図5は、本発明の実施の形態1にかかるデータ暗号処理の流れを示すフローチャート図である。まず、データ処理用コマンド解析回路2bは、コマンドキュー1から処理順に未処理のアクセスコマンドを取得及び解析する(S91)。尚、上述したようにデータ処理用コマンド解析回路2bは、セクタ番号処理用コマンド解析回路2aにより処理済みであっても未処理と判定する。そのため、データ処理用コマンド解析回路2bは、最初にコマンド11を取得する。そして、データ処理用コマンド解析回路2bは、アクセスコマンド解析により記憶媒体への格納対象のデータブロックを取得し、平文ブロック51として出力する。
【0037】
次に、排他的論理和回路5は、平文ブロック51をアクセス対象とするアクセスコマンドに関連付けられた変換結果をバッファ8から読み出す(S162)。ここでは、排他的論理和回路5は、コマンド11に対応する変換結果81をバッファ8から読み出す。そして、排他的論理和回路5、AES暗号処理回路6及び排他的論理和回路7は、アクセス対象となるデータブロックのAES暗号化処理を行う(S163)。つまり、上述したように、排他的論理和回路5、AES暗号処理回路6及び排他的論理和回路7は、平文ブロック51と変換結果81と鍵61とを用いて、データ暗号処理を行う。
【0038】
そして、データ処理用コマンド解析回路2bは、直前に処理したデータブロックが最後のデータブロックであるか否かを判定する(S164)。つまり、データ処理用コマンド解析回路2bは、処理対象のアクセスコマンドにおけるデータ暗号処理が終了したか否かを判定する。例えば、データ処理用コマンド解析回路2bは、コマンド11のアクセス対象となるデータブロックの内、最後であるか否かを判定する。ステップS164において、最後のデータブロックでないと判定した場合、データ処理用コマンド解析回路2bは、セクタの境界であるか否かを判定する(S165)。つまり、データ処理用コマンド解析回路2bは、処理対象のアクセスコマンドにおける同一のセクタ番号に対応するデータブロックのデータ暗号処理が終了したか否かを判定する。例えば、データ処理用コマンド解析回路2bは、直前に処理したデータブロックが同一セクタ番号によるアクセス対象のデータブロックの内、最後であるか否かを判定する。ステップS165において、セクタの境界でないと判定した場合、ステップS163へ進み、以降、当該セクタ番号に対応する最後のデータブロックのデータ暗号処理が終了するまでの間、ステップS163乃至S165が繰り返される。また、ステップS165において、セクタの境界であると判定した場合、ステップS162へ進み、以降、処理対象のアクセスコマンドにおける最後のセクタ番号までの間、ステップS162乃至S165が繰り返される。また、ステップS164において、最後のデータブロックであると判定した場合、ステップS166へ進む。
【0039】
そして、データ処理用コマンド解析回路2bは、コマンドキュー1に未処理のアクセスコマンドが存在するか否かを判定する(S166)。未処理のアクセスコマンドが存在すると判定した場合、ステップS161へ進む。そして、データ処理用コマンド解析回路2bは、コマンドキュー1からコマンド12以降コマンド1nまでの処理をステップS161乃至S166において繰り返す。ステップS166において、未処理のアクセスコマンドが存在しないと判定した場合、データの暗号処理が終了する。
【0040】
このように、位置情報変換手段は、遅くともデータ暗号処理手段がコマンド11に対応する第1のデータの暗号処理を終了する前に、当該第1のデータ以降に処理されるコマンド12に対応する第2のデータに対応する位置情報について、変換処理を開始する。つまり、第1データの暗号化処理の終了を待たずに、第2データの位置情報の変換処理を開始することで、データ暗号処理手段は、第1のデータの暗号処理が終了し次第、間隔を開けずに第2データの暗号化処理を開始することができる。
【0041】
さらに、位置情報変換手段は、データ暗号処理手段が第1のデータの暗号処理中に、第2のデータに対応する位置情報について、変換処理を開始するとよい。これにより、位置情報の変換処理とデータの暗号化処理とを並列実行することができ、アクセス処理を早めることができる。
【0042】
尚、上述した図12に示したデータフローの場合、セクタ番号の切り替わりの度に、セクタ番号の暗号化処理が発生するため、切り替わりのオーバーヘッドにより処理効率が下がるという問題があった。つまり、関連技術にかかるAES暗号処理回路は、実際にアクセス処理が開始されるまで、セクタ数を把握することができなかった。そのため、図5のステップS165において、セクタの境界であると判定した場合、データ暗号手段は、都度、アクセス対象のセクタ番号を抽出し、抽出したセクタ番号に対するAES暗号化処理を行う必要があった。
【0043】
また、記憶媒体と外部装置との入出力速度については、近年、通信インタフェースの処理速度が高速化しているため、記憶媒体内部のドライブ等の物理的なアクセス処理がボトルネックとなっている。そのため、当該アクセス処理におけるパフォーマンスの低下は、入出力時間全体への影響に直結する。
【0044】
これに比べ、本発明の実施の形態1により、図5のステップS162では、データ暗号手段は、すでに暗号化処理されたセクタ番号の変換結果をバッファ8から読み出すため、この時点でセクタ番号の暗号化処理を行う場合に比べて、処理効率を高めることができる。例えば、1セクタが512バイトであり、1セクタ番号あたり、32データブロックとする。このとき、1セクタ分のAES暗号化処理を行う場合、関連技術にかかるデータ暗号処理手段は、33回のAES暗号化処理を行う必要があったが、本発明の実施の形態1にかかるデータ暗号処理手段は、セクタ番号についてのAES暗号化処理を除いた32回に軽減することができる。上述したように、アクセス処理におけるパフォーマンスの向上は、全体の入出力時間への影響に直結するため、効果が大きい。
【0045】
尚、一つのアクセスコマンドが、複数の連続したセクタ番号を対象にしたアクセスである場合、位置情報変換手段は、当該アクセスの対象となるデータの長さに応じて位置情報を補正し、当該補正した位置情報に変換処理を行った変換結果をさらにバッファ8に格納することが望ましい。例えば、図3のステップS142の直後に、セクタ番号処理用コマンド解析回路2aは、コマンドキュー1から取得したコマンド11に含まれるセクタ数が2以上であるか否かを判定する。セクタ数が2以上であると判定した場合、コマンド11に含まれるセクタ番号に1を加算してセクタ番号を補正する。そして、セクタ番号処理用コマンド解析回路2aは、補正したセクタ番号について、ステップS141及びS142を実行する。これをセクタ数分繰り返す。または、図2のステップS14においては、位置情報変換手段は、一つ目のセクタ番号についての変換処理のみを実行し、図4の中で、残りのセクタ数分のセクタ番号の変換処理を繰り返しても良い。これにより、1つのアクセスコマンドのアクセス対象が複数のセクタ番号を対象とする場合、セクタ番号処理用コマンド解析回路2aは、都度、セクタ番号を抽出する必要がなくなり、変換処理を効率化することができる。
【0046】
図6は、本発明の実施の形態1にかかる効果を説明するための図である。図6では、一回のアクセス処理において、3つのセクタ番号に対してアクセスが発生する場合の記憶媒体へのアクセス処理時間の概念を示す。ここでは、位置情報変換手段は、ステップS14において、1番目のセクタ番号のAES処理SA1を実行する。そして、位置情報変換手段は、ステップS15において、2番目のセクタ番号のAES処理SA2及び3番目のセクタ番号のAES処理SA3を実行する。また、データ暗号処理手段は、ステップS16において、少なくともAES処理SA1の実行終了以後に、AES処理DA1、AES処理DA2及びAES処理DA3を実行する。これにより、ステップS15の位置情報変換手段と、ステップS16のデータ暗号処理手段とが並列実行される。そのため、図13に比べて、記憶媒体へのアクセス処理時間が短くなると言える。このように、本発明の実施の形態1にかかる記憶媒体暗号処理装置100により、記憶媒体へのアクセス処理のパフォーマンスが向上する。
【0047】
<発明の実施の形態2>
本発明の実施の形態2は、本発明の実施の形態1の変形例である。本発明の実施の形態2にかかる位置情報変換手段は、データ暗号処理手段が暗号処理を行っていない間に、未処理であるデータに対応する位置情報について、変換処理を行うものである。ここでは、NCQに従い複数のアクセスコマンドを所定の処理順に調整してコマンドキュー1に格納する際に、セクタ番号の変換処理を実行する場合を説明する。つまり、位置情報変換手段は、複数のアクセスコマンドを所定の処理順に調整する際に、調整対象のアクセスコマンドに含まれる位置情報を取得し、当該取得した位置情報から変換処理により変換結果を算出し、算出した変換結果をバッファ8に格納する。そして、データ暗号処理手段は、コマンドキュー1に格納された処理順にアクセスコマンドを取得し、当該取得したアクセスコマンドに対応する変換結果をバッファ8から取得し、当該取得した変換結果を用いて、当該取得したアクセスコマンドの対象となるデータの暗号処理を行う。これにより、位置情報変換手段の処理効率が高まる。よって、記憶媒体へのアクセス処理のパフォーマンスが向上する。
【0048】
本発明の実施の形態2にかかる記憶媒体暗号処理装置の構成は、図1と同等であるため詳細な説明を省略する。そのため、以下では、図1と同一の符号を用いて、本発明の実施の形態1との違いを中心に説明する。図7は、本発明の実施の形態2にかかる記憶媒体へのアクセス処理の流れを示すフローチャート図である。まず、記憶媒体暗号処理装置100は、複数のアクセスコマンドを入力する(S21)。次に、記憶媒体暗号処理装置100は、入力した複数のアクセスコマンドをNCQに従った処理順にソートし、コマンドキュー1へ格納する(S22)。
【0049】
ここで、図8は、本発明の実施の形態2にかかるアクセスコマンドの処理順の調整処理の流れを示すフローチャート図である。まず、記憶媒体暗号処理装置100は、入力された複数のアクセスコマンドの内、未処理のアクセスコマンドを入力順に解析する(S221)。このとき、記憶媒体暗号処理装置100は、アクセスコマンドの解析によりセクタ番号及びセクタ数を抽出する。そして、記憶媒体暗号処理装置100は、ステップS222及びステップS223を並列して実行する。すなわち、記憶媒体暗号処理装置100は、解析したアクセスコマンドの処理順を調整する(S222)。例えば、記憶媒体暗号処理装置100は、当該アクセスコマンドの解析結果に応じて、NCQに従って適切な処理順に並べ替える。また、セクタ番号処理用コマンド解析回路2a、AES暗号処理回路3及び乗算回路4である位置情報変換手段は、解析したアクセスコマンドに含まれるセクタ番号について、変換処理を行う(S223)。尚、セクタ番号の変換処理は、図3と同様のため、説明を省略する。
【0050】
その後、記憶媒体暗号処理装置100は、入力された複数のアクセスコマンドの内、未処理のアクセスコマンドが存在するか否かを判定する(S224)。未処理のアクセスコマンドが存在すると判定した場合、ステップS221へ進む。そして、記憶媒体暗号処理装置100は、入力された全てのアクセスコマンドについて、ステップS221乃至S224において繰り返す。ステップS224において、未処理のアクセスコマンドが存在しないと判定した場合、記憶媒体暗号処理装置100は、アクセスコマンドの処理順の調整処理の残りを実行する。これにより、コマンドキュー1には、入力された複数のアクセスコマンドがコマンド11、コマンド12、・・・、及びコマンド1nの順番で格納される。また、バッファ8には、コマンド11、コマンド12、・・・、及びコマンド1nのそれぞれと関連付けられた変換結果81、変換結果82、・・・、及び変換結果8nが格納される。そのため、アクセス処理において、データ暗号処理手段は、コマンドキュー1に格納されたアクセスコマンドと、バッファ8に格納された変換結果とを用いて、データの暗号処理を行うことができる。また、記憶媒体暗号処理装置100は、コマンドキュー1に格納する際に行われるアクセスコマンドの調整処理において、各アクセスコマンドについて解析を行う。そして、解析によりアクセスコマンドに含まれるセクタ番号を抽出する。そのため、位置情報変換手段は、当該調整処理と並行して抽出されたセクタ番号の変換処理を行うことができる。よって、本発明の実施の形態2では、位置情報変換手段が別途、コマンドキュー1からアクセスコマンドを取得及び解析することがない。そのため、セクタ番号の変換処理を効率的に行うことができる。
【0051】
図9は、本発明の実施の形態2にかかる効果を説明するための図である。図9では、一回のアクセス処理において、3つのセクタ番号に対してアクセスが発生する場合のNCQ処理時間及び記憶媒体へのアクセス処理時間の概念を示す。ここでは、位置情報変換手段は、NCQ処理時間、すなわち、図7のステップS22において、1番目のセクタ番号のAES処理SA1、2番目のセクタ番号のAES処理SA2及び3番目のセクタ番号のAES処理SA3を実行する。そして、データ暗号処理手段は、アクセス処理時間において、AES処理DA1、AES処理DA2及びAES処理DA3を実行する。これにより、アクセス処理時間には、セクタ番号の変換処理を行う必要がなく、記憶媒体暗号処理装置100の処理全体の負荷が分散される。よって、記憶媒体へのアクセス処理のパフォーマンスが向上する。
【0052】
<発明の実施の形態3>
本発明の実施の形態3は、本発明の実施の形態1及び3の変形例である。本発明の実施の形態3にかかる位置情報変換手段は、データ暗号処理手段が暗号処理を行っていない間に、未処理であるデータに対応する位置情報について、変換処理を行うものである。ここでは、図1のAES暗号処理回路3及びAES暗号処理回路6が共用された場合を説明する。言い換えると、位置情報変換手段は、データ暗号処理手段における暗号処理を変換処理とするものである。これにより、回路規模が抑えることができる。
【0053】
図10は、本発明の実施の形態3にかかる記憶媒体暗号処理装置200の構成を示すブロック図である。記憶媒体暗号処理装置200は、コマンドキュー1と、セクタ番号処理用コマンド解析回路2aと、データ処理用コマンド解析回路2bと、排他的論理和回路5と、セレクタ92と、AES暗号処理回路90と、セレクタ93と、乗算回路4と、バッファ8と、排他的論理和回路7とを備える。尚、図10の構成の内、図1と同等のものには、同一の符号を付し、詳細な説明を省略する。以下では、本発明の実施の形態1及び2との違いを中心に説明する。
【0054】
セレクタ92は、記憶媒体暗号処理装置200からの指示に応じて、セクタ番号処理用コマンド解析回路2a又はデータ処理用コマンド解析回路2bのいずれかからの入力を選択し、AES暗号処理回路90へ出力する。AES暗号処理回路90は、AES暗号処理回路3及びAES暗号処理回路6と同等の機能を有し、セレクタ92から入力されるデータと鍵91とを用いてAES暗号化処理を行う。セレクタ93は、記憶媒体暗号処理装置200からの指示に応じて、AES暗号処理回路90からの入力を乗算回路4又は排他的論理和回路7のいずれかを選択して出力する。
【0055】
例えば、記憶媒体暗号処理装置200が位置情報変換手段として機能する場合は、セレクタ92は、セクタ番号処理用コマンド解析回路2aからの入力を選択し、セクタ番号をAES暗号処理回路90へ出力する。そして、AES暗号処理回路90は、セレクタ92から入力されたセクタ番号と、鍵91とを用いてAES暗号化処理を行い、暗号結果をセレクタ93へ出力する。このとき、セレクタ93は、暗号結果を乗算回路4へ出力する。逆に、記憶媒体暗号処理装置200がデータ暗号処理手段として機能する場合は、セレクタ92は、データ処理用コマンド解析回路2bからの入力を選択し、平文ブロック51の演算結果をAES暗号処理回路90へ出力する。そして、AES暗号処理回路90は、セレクタ92から入力された演算結果と、鍵91とを用いてAES暗号化処理を行い、暗号結果をセレクタ93へ出力する。このとき、セレクタ93は、暗号結果を排他的論理和回路7へ出力する。
【0056】
尚、本発明の実施の形態3にかかる記憶媒体へのアクセス処理の流れは、図7及び図8と同等であってもよい。その場合、本発明の実施の形態2に比べて回路規模を抑えることができる。または、位置情報変換手段は、記憶媒体へのアクセス処理の直前に行われるヘッダの移動時間、すなわち、シーク時間において、実行しても構わない。その場合の効果を図11により説明する。図11では、一回のアクセス処理において、3つのセクタ番号に対してアクセスが発生する場合のシーク時間及び記憶媒体へのアクセス処理時間の概念を示す。ここでは、位置情報変換手段は、1つ目のセクタ番号へのアクセス処理におけるシーク時間中に、1番目のセクタ番号のAES処理SA1を実行する。そして、データ暗号処理手段は、アクセス処理時間において、1番目のデータブロックのAES処理DA1を実行する。これにより、ヘッダが移動した後のアクセス処理時間を短くすることができる。尚、記憶媒体へのシーク時間は、一般的にアクセス処理時間に比べて長い。そのため、シーク時間は、記憶媒体へのアクセス処理の待ち時間と言える。本発明の実施の形態3では、待ち時間を有効活用できる。さらに、本発明の実施の形態3では、AES処理SA1、SA2及びSA3をまとめて実行することも可能である。以上のことから、アクセス処理時間には、セクタ番号の変換処理を行う必要がなく、記憶媒体暗号処理装置200の処理全体の負荷が分散される。よって、記憶媒体へのアクセス処理のパフォーマンスが向上する。
【0057】
<その他の実施の形態>
尚、上述した本発明の実施の形態1乃至3において、位置情報としてセクタ番号を用いたが、これに限定されない。また、暗号処理は、AESに限定されない。また、暗号処理の対象となるデータは、データブロックに限定されない。
【0058】
尚、上述した本発明の実施の形態1及び2では、セクタ番号の変換処理をAES暗号化処理としていたが、これに限定されない。例えば、セクタ番号の変換処理は、AES以外の暗号化方式でも構わない。または、セクタ番号の変換処理は、ハッシュ関数により求まるハッシュ値であっても構わない。つまり、セクタ番号の変換処理は、少なくともセクタ番号から任意の変換処理により値が変換された変換結果であればよい。
【0059】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【符号の説明】
【0060】
100 記憶媒体暗号処理装置
200 記憶媒体暗号処理装置
800 記憶媒体暗号処理装置
1 コマンドキュー
11 コマンド
12 コマンド
1n コマンド
2a セクタ番号処理用コマンド解析回路
2b データ処理用コマンド解析回路
3 AES暗号処理回路
30 セクタ番号
31 鍵
4 乗算回路
41 多項式係数
5 排他的論理和回路
51 平文ブロック
6 AES暗号処理回路
61 鍵
7 排他的論理和回路
71 暗号ブロック
8 バッファ
81 変換結果
82 変換結果
8n 変換結果
90 AES暗号処理回路
91 鍵
92 セレクタ
93 セレクタ
SA1 AES処理
SA2 AES処理
SA3 AES処理
DA1 AES処理
DA2 AES処理
DA3 AES処理
【特許請求の範囲】
【請求項1】
記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う記憶媒体暗号処理装置であって、
前記位置情報に変換処理を行った変換結果をバッファに格納する位置情報変換手段と、
前記バッファに格納された変換結果を用いて、当該変換結果に対応するデータの暗号処理を行うデータ暗号処理手段と、を備える記憶媒体暗号処理装置。
【請求項2】
前記位置情報変換手段は、当該アクセスの対象となるデータの長さに応じて前記位置情報を補正し、当該補正した位置情報に前記変換処理を行った変換結果をさらに前記バッファに格納することを特徴とする請求項1に記載の記憶媒体暗号処理装置。
【請求項3】
前記位置情報変換手段は、遅くとも前記データ暗号処理手段が第1のデータの暗号処理を終了する前に、当該第1のデータ以降に処理される第2のデータに対応する位置情報について、前記変換処理を開始することを特徴とする請求項1又は2に記載の記憶媒体暗号処理装置。
【請求項4】
前記位置情報変換手段は、前記データ暗号処理手段が第1のデータの暗号処理中に、前記第2のデータに対応する位置情報について、前記変換処理を開始することを特徴とする請求項3に記載の記憶媒体暗号処理装置。
【請求項5】
前記位置情報変換手段は、前記データ暗号処理手段が暗号処理を行っていない間に、未処理である第3のデータに対応する位置情報について、前記変換処理を行うことを特徴とする請求項1乃至3のいずれか1項に記載の記憶媒体暗号処理装置。
【請求項6】
複数のアクセスコマンドを所定の処理順に調整して格納する記憶手段をさらに備え、
前記位置情報変換手段は、前記複数のアクセスコマンドを所定の処理順に調整する際に、調整対象のアクセスコマンドに含まれる位置情報を取得し、当該取得した位置情報から前記変換処理により変換結果を算出し、算出した変換結果を前記バッファに格納し、
前記データ暗号処理手段は、前記記憶手段に格納された処理順にアクセスコマンドを取得し、当該取得したアクセスコマンドに対応する変換結果を前記バッファから取得し、当該取得した変換結果を用いて、当該取得したアクセスコマンドの対象となるデータの暗号処理を行うことを特徴とする請求項1乃至3のいずれか1項に記載の記憶媒体暗号処理装置。
【請求項7】
前記位置情報変換手段は、前記データ暗号処理手段における暗号処理を前記変換処理とすることを特徴とする請求項1乃至3、5又は6のいずれか1項に記載の記憶媒体暗号処理装置。
【請求項8】
記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う記憶媒体暗号処理方法であって、
前記位置情報に変換処理を行った変換結果をバッファに格納する位置情報変換ステップと、
前記バッファに格納された変換結果を用いて、当該変換結果に対応するデータの暗号処理を行うデータ暗号処理ステップと、
を含む記憶媒体暗号処理方法。
【請求項9】
前記位置情報変換ステップは、当該アクセスの対象となるデータの長さに応じて前記位置情報を補正し、当該補正した位置情報に前記変換処理を行った変換結果をさらに前記バッファに格納することを特徴とする請求項8に記載の記憶媒体暗号処理方法。
【請求項10】
前記位置情報変換ステップは、遅くとも前記データ暗号処理ステップにおいて第1のデータの暗号処理が終了する前に、当該第1のデータ以降に処理される第2のデータに対応する位置情報について、前記変換処理を開始することを特徴とする請求項8又は9に記載の記憶媒体暗号処理方法。
【請求項11】
前記位置情報変換ステップは、前記データ暗号処理ステップが第1のデータの暗号処理中に、前記第2のデータに対応する位置情報について、前記変換処理を開始することを特徴とする請求項10に記載の記憶媒体暗号処理方法。
【請求項12】
前記位置情報変換ステップは、前記データ暗号処理ステップが暗号処理を行っていない間に、未処理である第3のデータに対応する位置情報について、前記変換処理を行うことを特徴とする請求項8乃至10のいずれか1項に記載の記憶媒体暗号処理方法。
【請求項13】
複数のアクセスコマンドを所定の処理順に調整して記憶手段に格納する調整ステップをさらに備え、
前記位置情報変換ステップは、前記調整ステップにより前記複数のアクセスコマンドを所定の処理順に調整する際に、調整対象のアクセスコマンドに含まれる位置情報を取得し、当該取得した位置情報から前記変換処理により変換結果を算出し、算出した変換結果を前記バッファに格納し、
前記データ暗号処理ステップは、前記記憶手段に格納された処理順にアクセスコマンドを取得し、当該取得したアクセスコマンドに対応する変換結果を前記バッファから取得し、当該取得した変換結果を用いて、当該取得したアクセスコマンドの対象となるデータの暗号処理を行うことを特徴とする請求項8乃至10のいずれか1項に記載の記憶媒体暗号処理方法。
【請求項14】
前記位置情報変換ステップは、前記データ暗号処理ステップにおける暗号処理を前記変換処理とすることを特徴とする請求項8乃至10、12又は13のいずれか1項に記載の記憶媒体暗号処理方法。
【請求項1】
記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う記憶媒体暗号処理装置であって、
前記位置情報に変換処理を行った変換結果をバッファに格納する位置情報変換手段と、
前記バッファに格納された変換結果を用いて、当該変換結果に対応するデータの暗号処理を行うデータ暗号処理手段と、を備える記憶媒体暗号処理装置。
【請求項2】
前記位置情報変換手段は、当該アクセスの対象となるデータの長さに応じて前記位置情報を補正し、当該補正した位置情報に前記変換処理を行った変換結果をさらに前記バッファに格納することを特徴とする請求項1に記載の記憶媒体暗号処理装置。
【請求項3】
前記位置情報変換手段は、遅くとも前記データ暗号処理手段が第1のデータの暗号処理を終了する前に、当該第1のデータ以降に処理される第2のデータに対応する位置情報について、前記変換処理を開始することを特徴とする請求項1又は2に記載の記憶媒体暗号処理装置。
【請求項4】
前記位置情報変換手段は、前記データ暗号処理手段が第1のデータの暗号処理中に、前記第2のデータに対応する位置情報について、前記変換処理を開始することを特徴とする請求項3に記載の記憶媒体暗号処理装置。
【請求項5】
前記位置情報変換手段は、前記データ暗号処理手段が暗号処理を行っていない間に、未処理である第3のデータに対応する位置情報について、前記変換処理を行うことを特徴とする請求項1乃至3のいずれか1項に記載の記憶媒体暗号処理装置。
【請求項6】
複数のアクセスコマンドを所定の処理順に調整して格納する記憶手段をさらに備え、
前記位置情報変換手段は、前記複数のアクセスコマンドを所定の処理順に調整する際に、調整対象のアクセスコマンドに含まれる位置情報を取得し、当該取得した位置情報から前記変換処理により変換結果を算出し、算出した変換結果を前記バッファに格納し、
前記データ暗号処理手段は、前記記憶手段に格納された処理順にアクセスコマンドを取得し、当該取得したアクセスコマンドに対応する変換結果を前記バッファから取得し、当該取得した変換結果を用いて、当該取得したアクセスコマンドの対象となるデータの暗号処理を行うことを特徴とする請求項1乃至3のいずれか1項に記載の記憶媒体暗号処理装置。
【請求項7】
前記位置情報変換手段は、前記データ暗号処理手段における暗号処理を前記変換処理とすることを特徴とする請求項1乃至3、5又は6のいずれか1項に記載の記憶媒体暗号処理装置。
【請求項8】
記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う記憶媒体暗号処理方法であって、
前記位置情報に変換処理を行った変換結果をバッファに格納する位置情報変換ステップと、
前記バッファに格納された変換結果を用いて、当該変換結果に対応するデータの暗号処理を行うデータ暗号処理ステップと、
を含む記憶媒体暗号処理方法。
【請求項9】
前記位置情報変換ステップは、当該アクセスの対象となるデータの長さに応じて前記位置情報を補正し、当該補正した位置情報に前記変換処理を行った変換結果をさらに前記バッファに格納することを特徴とする請求項8に記載の記憶媒体暗号処理方法。
【請求項10】
前記位置情報変換ステップは、遅くとも前記データ暗号処理ステップにおいて第1のデータの暗号処理が終了する前に、当該第1のデータ以降に処理される第2のデータに対応する位置情報について、前記変換処理を開始することを特徴とする請求項8又は9に記載の記憶媒体暗号処理方法。
【請求項11】
前記位置情報変換ステップは、前記データ暗号処理ステップが第1のデータの暗号処理中に、前記第2のデータに対応する位置情報について、前記変換処理を開始することを特徴とする請求項10に記載の記憶媒体暗号処理方法。
【請求項12】
前記位置情報変換ステップは、前記データ暗号処理ステップが暗号処理を行っていない間に、未処理である第3のデータに対応する位置情報について、前記変換処理を行うことを特徴とする請求項8乃至10のいずれか1項に記載の記憶媒体暗号処理方法。
【請求項13】
複数のアクセスコマンドを所定の処理順に調整して記憶手段に格納する調整ステップをさらに備え、
前記位置情報変換ステップは、前記調整ステップにより前記複数のアクセスコマンドを所定の処理順に調整する際に、調整対象のアクセスコマンドに含まれる位置情報を取得し、当該取得した位置情報から前記変換処理により変換結果を算出し、算出した変換結果を前記バッファに格納し、
前記データ暗号処理ステップは、前記記憶手段に格納された処理順にアクセスコマンドを取得し、当該取得したアクセスコマンドに対応する変換結果を前記バッファから取得し、当該取得した変換結果を用いて、当該取得したアクセスコマンドの対象となるデータの暗号処理を行うことを特徴とする請求項8乃至10のいずれか1項に記載の記憶媒体暗号処理方法。
【請求項14】
前記位置情報変換ステップは、前記データ暗号処理ステップにおける暗号処理を前記変換処理とすることを特徴とする請求項8乃至10、12又は13のいずれか1項に記載の記憶媒体暗号処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2010−256652(P2010−256652A)
【公開日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願番号】特願2009−107348(P2009−107348)
【出願日】平成21年4月27日(2009.4.27)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
【公開日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願日】平成21年4月27日(2009.4.27)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
[ Back to top ]