(57)【要約】【課題】迅速にメモリの不良検出作業を開始すること。【解決手段】本発明にかかるメモリの検査方法は、被検査データが格納されたメモリの検査方法であって、転送回路において、予め登録された転送設定情報に基づき、メモリから被検査データを読み出すステップと、転送回路において、読み出した被検査データを検査回路へ転送するステップと、検査回路において、転送された被検査データと、被検査データの参照用検査コードとを用いて当該メモリの検査を行う検査ステップと、を含む。【選択図】図１
2010256652.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う記憶媒体暗号処理装置であって、
前記位置情報に変換処理を行った変換結果をバッファに格納する位置情報変換手段と、
前記バッファに格納された変換結果を用いて、当該変換結果に対応するデータの暗号処理を行うデータ暗号処理手段と、を備える記憶媒体暗号処理装置。
【請求項２】
前記位置情報変換手段は、当該アクセスの対象となるデータの長さに応じて前記位置情報を補正し、当該補正した位置情報に前記変換処理を行った変換結果をさらに前記バッファに格納することを特徴とする請求項１に記載の記憶媒体暗号処理装置。
【請求項３】
前記位置情報変換手段は、遅くとも前記データ暗号処理手段が第１のデータの暗号処理を終了する前に、当該第１のデータ以降に処理される第２のデータに対応する位置情報について、前記変換処理を開始することを特徴とする請求項１又は２に記載の記憶媒体暗号処理装置。
【請求項４】
前記位置情報変換手段は、前記データ暗号処理手段が第１のデータの暗号処理中に、前記第２のデータに対応する位置情報について、前記変換処理を開始することを特徴とする請求項３に記載の記憶媒体暗号処理装置。
【請求項５】
前記位置情報変換手段は、前記データ暗号処理手段が暗号処理を行っていない間に、未処理である第３のデータに対応する位置情報について、前記変換処理を行うことを特徴とする請求項１乃至３のいずれか１項に記載の記憶媒体暗号処理装置。
【請求項６】
複数のアクセスコマンドを所定の処理順に調整して格納する記憶手段をさらに備え、
前記位置情報変換手段は、前記複数のアクセスコマンドを所定の処理順に調整する際に、調整対象のアクセスコマンドに含まれる位置情報を取得し、当該取得した位置情報から前記変換処理により変換結果を算出し、算出した変換結果を前記バッファに格納し、
前記データ暗号処理手段は、前記記憶手段に格納された処理順にアクセスコマンドを取得し、当該取得したアクセスコマンドに対応する変換結果を前記バッファから取得し、当該取得した変換結果を用いて、当該取得したアクセスコマンドの対象となるデータの暗号処理を行うことを特徴とする請求項１乃至３のいずれか１項に記載の記憶媒体暗号処理装置。
【請求項７】
前記位置情報変換手段は、前記データ暗号処理手段における暗号処理を前記変換処理とすることを特徴とする請求項１乃至３、５又は６のいずれか１項に記載の記憶媒体暗号処理装置。
【請求項８】
記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う記憶媒体暗号処理方法であって、
前記位置情報に変換処理を行った変換結果をバッファに格納する位置情報変換ステップと、
前記バッファに格納された変換結果を用いて、当該変換結果に対応するデータの暗号処理を行うデータ暗号処理ステップと、
を含む記憶媒体暗号処理方法。
【請求項９】
前記位置情報変換ステップは、当該アクセスの対象となるデータの長さに応じて前記位置情報を補正し、当該補正した位置情報に前記変換処理を行った変換結果をさらに前記バッファに格納することを特徴とする請求項８に記載の記憶媒体暗号処理方法。
【請求項１０】
前記位置情報変換ステップは、遅くとも前記データ暗号処理ステップにおいて第１のデータの暗号処理が終了する前に、当該第１のデータ以降に処理される第２のデータに対応する位置情報について、前記変換処理を開始することを特徴とする請求項８又は９に記載の記憶媒体暗号処理方法。
【請求項１１】
前記位置情報変換ステップは、前記データ暗号処理ステップが第１のデータの暗号処理中に、前記第２のデータに対応する位置情報について、前記変換処理を開始することを特徴とする請求項１０に記載の記憶媒体暗号処理方法。
【請求項１２】
前記位置情報変換ステップは、前記データ暗号処理ステップが暗号処理を行っていない間に、未処理である第３のデータに対応する位置情報について、前記変換処理を行うことを特徴とする請求項８乃至１０のいずれか１項に記載の記憶媒体暗号処理方法。
【請求項１３】
複数のアクセスコマンドを所定の処理順に調整して記憶手段に格納する調整ステップをさらに備え、
前記位置情報変換ステップは、前記調整ステップにより前記複数のアクセスコマンドを所定の処理順に調整する際に、調整対象のアクセスコマンドに含まれる位置情報を取得し、当該取得した位置情報から前記変換処理により変換結果を算出し、算出した変換結果を前記バッファに格納し、
前記データ暗号処理ステップは、前記記憶手段に格納された処理順にアクセスコマンドを取得し、当該取得したアクセスコマンドに対応する変換結果を前記バッファから取得し、当該取得した変換結果を用いて、当該取得したアクセスコマンドの対象となるデータの暗号処理を行うことを特徴とする請求項８乃至１０のいずれか１項に記載の記憶媒体暗号処理方法。
【請求項１４】
前記位置情報変換ステップは、前記データ暗号処理ステップにおける暗号処理を前記変換処理とすることを特徴とする請求項８乃至１０、１２又は１３のいずれか１項に記載の記憶媒体暗号処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶媒体暗号処理装置及び方法に関し、特に、記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う記憶媒体暗号処理装置及び方法に関する。
【背景技術】
【０００２】
近年、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの記憶媒体について、データを暗号化及び復号化する暗号処理により管理することへのニーズが高まっている。ＡＥＳ（Advanced Encryption Standard）−ＸＴＳは、当該記憶媒体の暗号処理の方式として標準となりつつある。ＡＥＳ−ＸＴＳでは、記憶媒体のディスク上の位置を特定するセクタ番号についてＡＥＳ暗号化する。そして、当該ＡＥＳ暗号化したセクタ番号を用いて、アクセス対象のデータのＡＥＳ暗号化又は復号化する。これにより、異なるセクタ番号に同じ内容のデータが出現したとしてもデータの暗号化結果を異なるものにできる。
【０００３】
図１２は、ＡＥＳ−ＸＴＳを適用した記憶媒体暗号処理装置８００におけるデータフローの例を示す図である。尚、図１２は、データを暗号化する場合のデータフローを示している。記憶媒体暗号処理装置８００は、ＡＥＳ暗号処理回路３と、乗算回路４と、排他的論理和回路５と、ＡＥＳ暗号処理回路６と、排他的論理和回路７とを備える。
【０００４】
まず、ＡＥＳ暗号処理回路３は、暗号化対象のデータに対応するセクタ番号３０と鍵３１とを入力する。そして、ＡＥＳ暗号処理回路３は、ＡＥＳ暗号化処理による暗号化結果を乗算回路４へ出力する。次に、乗算回路４は、ＡＥＳ暗号処理回路３から入力される暗号化結果と、多項式係数４１とを乗算し、変換結果を出力する。そして、排他的論理和回路５は、暗号化対象のデータの平文ブロック５１と、乗算回路４から入力される変換結果とを排他的論理和演算し、演算結果をＡＥＳ暗号処理回路６へ出力する。ＡＥＳ暗号処理回路６は、排他的論理和回路５からの演算結果と、鍵６１とを入力する。そして、ＡＥＳ暗号処理回路６は、ＡＥＳ暗号化処理による暗号化結果を排他的論理和回路７へ出力する。その後、排他的論理和回路７は、ＡＥＳ暗号処理回路６から入力される暗号化結果と、乗算回路４から入力される変換結果とを排他的論理和演算し、暗号ブロック７１を出力する。
【０００５】
また、特許文献１には、セクタ番号を暗号化し、暗号化したセクタ番号をデータの暗号化に用いる磁気記憶装置に関する技術が開示されている。特許文献１にかかる磁気記憶装置は、複数段のシフトレジスタと、排他的論理和回路とを有するスクランブラを備える。前記排他的論理和回路は、一の生成多項式に対応する前記シフトレジスタの段の論理の排他的論理和を求める。スクランブラは、排他的論理和回路の出力をシフトレジスタの初段に帰還するように構成される。また、複数段のシフトレジスタには、初期値としてセクタ番号の２進化数等が設定される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１４１２８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したＡＥＳ−ＸＴＳや特許文献１では、セクタ番号等の暗号化結果を用いて記憶媒体へのアクセス処理を行うため、セキュリティ強度を高めることができる。しかしながら、記憶媒体へのアクセス処理時間が遅くなるという問題点がある。その理由は、アクセス対象のデータを暗号化又は復号化する暗号処理を行う際に、都度、当該アクセス対象のセクタ番号を暗号化する必要があるためである。例えば、データをＨＤＤへ格納する場合、ディスク上の格納先のセクタ番号の位置にヘッダが移動した後に、アクセス処理が開始される。このとき、まず、セクタ番号の暗号化処理が行われる。続いて、セクタ番号の暗号化処理が終了した後に、データの暗号化処理を開始する。そして、データの暗号化処理が終了した後に、ディスク上へ暗号ブロック７１が格納される。
【０００８】
図１３は、一回のアクセス処理において、３つのセクタ番号に跨るアクセス処理が発生する場合の記憶媒体へのアクセス処理時間の概念を示す図である。ここでは、１番目のセクタ番号のＡＥＳ処理ＳＡ１の後に、１番目のデータのＡＥＳ処理ＤＡ１が実行される。続いて、２番目のセクタ番号のＡＥＳ処理ＳＡ２の後に、２番目のデータのＡＥＳ処理ＤＡ２が実行される。そして、３番目のセクタ番号のＡＥＳ処理ＳＡ３の後に、３番目のデータのＡＥＳ処理ＤＡ３が実行される。
【課題を解決するための手段】
【０００９】
本発明の第１の態様にかかる記憶媒体暗号処理装置は、記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う記憶媒体暗号処理装置であって、前記位置情報に変換処理を行った変換結果をバッファに格納する位置情報変換手段と、前記バッファに格納された変換結果を用いて、当該変換結果に対応するデータの暗号処理を行うデータ暗号処理手段と、を備える。
【００１０】
本発明の第２の態様にかかる記憶媒体暗号処理方法は、記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う記憶媒体暗号処理方法であって、前記位置情報に変換処理を行った変換結果をバッファに格納する位置情報変換ステップと、前記バッファに格納された変換結果を用いて、当該変換結果に対応するデータの暗号処理を行うデータ暗号処理ステップと、を含む。
【００１１】
上述した本発明の第１及び第２の態様にかかるにかかる記憶媒体暗号処理装置及び方法では、データ暗号化処理とは独立させて、セクタ番号等の位置情報の変換処理を実行し、変換結果をバッファに格納する。そして、既に変換された変換結果をバッファから取得することによりデータ暗号化処理を実行する。つまり、データ暗号化処理の際に、アクセス対象の位置情報についての変換処理を行う必要がない。そのため、データ暗号化処理の時間を短くすることができる。
【発明の効果】
【００１２】
本発明により、暗号処理を伴う記憶媒体へのアクセス処理のパフォーマンスを向上する記憶媒体暗号処理装置及び方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態１にかかる記憶媒体暗号処理装置の構成を示すブロック図である。
【図２】本発明の実施の形態１にかかる記憶媒体へのアクセス処理の流れを示すフローチャート図である。
【図３】本発明の実施の形態１にかかるセクタ番号の変換処理の流れを示すフローチャート図である。
【図４】本発明の実施の形態１にかかる２番目以降のセクタ番号の変換処理の流れを示すフローチャート図である。
【図５】本発明の実施の形態１にかかるデータ暗号処理の流れを示すフローチャート図である。
【図６】本発明の実施の形態１にかかる効果を説明するための図である。
【図７】本発明の実施の形態２にかかる記憶媒体へのアクセス処理の流れを示すフローチャート図である。
【図８】本発明の実施の形態２にかかるアクセスコマンドの処理順の調整処理の流れを示すフローチャート図である。
【図９】本発明の実施の形態２にかかる効果を説明するための図である。
【図１０】本発明の実施の形態３にかかる記憶媒体暗号処理装置の構成を示すブロック図である。
【図１１】本発明の実施の形態３にかかる効果を説明するための図である。
【図１２】関連技術にかかるＡＥＳ−ＸＴＳのデータフローを示す図である。
【図１３】関連技術にかかる課題を説明するための図である。
【発明を実施するための形態】
【００１４】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００１５】
＜発明の実施の形態１＞
図１は、本発明の実施の形態１にかかる記憶媒体暗号処理装置１００の構成を示すブロック図である。記憶媒体暗号処理装置１００は、ＨＤＤやフラッシュメモリなどの記憶媒体（不図示）を有する。記憶媒体暗号処理装置１００は、当該記憶媒体へアクセスするための位置情報に基づいて、当該アクセスの対象となるデータを暗号化又は復号化する暗号処理を行う。ここでは、記憶媒体暗号処理装置１００は、ＣＰＵ（Central Processing Unit）等の外部装置（不図示）と所定の通信インタフェースにより接続されている。記憶媒体暗号処理装置１００は、外部装置から記憶媒体へのアクセスコマンドを受け付ける。そして、記憶媒体暗号処理装置１００は、記憶媒体へのアクセス処理を行い、アクセス結果を外部装置へ送信する。その際、記憶媒体暗号処理装置１００は、アクセスコマンドに応じてアクセス処理の前後に暗号処理を行う。
【００１６】
ここで、アクセスコマンドは、コマンドの種別を示すコマンドコード、記憶媒体の位置情報であるセクタ番号及びセクタ数を含む。コマンドコードは、例えば、書き込み要求又は読み出し要求である。セクタ番号は、例えば、ＬＢＡ（Logical Block Addressing）である。尚、セクタ番号は、ＬＢＡに限定されない。そして、一つのアクセスコマンドは、複数の連続したセクタ番号を対象にしたアクセスを行うことが可能である。そのため、セクタ番号は、当該アクセス対象の先頭のセクタ番号である。また、セクタ数は、当該アクセス対象となる当該先頭のセクタ番号に連続するセクタの数である。尚、アクセスコマンドにおける位置情報は、セクタ番号及びセクタ数に限定されない。アクセスコマンドにおける位置情報は、アクセス対象のセクタ番号を複数含むものであってもよい。または、位置情報は、アクセス対象の開始位置及び終了位置を示す情報であってもよい。すなわち、位置情報は、少なくとも記憶媒体におけるデータの格納先を一意に特定できるものである。
【００１７】
例えば、アクセスコマンドが書き込み要求である場合、記憶媒体暗号処理装置１００は、当該アクセスコマンドに対応する書き込み対象のデータブロックである平文ブロック５１を併せて受け付ける。そして、記憶媒体暗号処理装置１００は、平文ブロック５１に対して暗号化処理を行い、暗号結果を記憶媒体のセクタ番号に対応する位置に格納する。その後、記憶媒体暗号処理装置１００は、格納完了の旨を要求元である外部装置への応答とする。
【００１８】
また、アクセスコマンドが読み出し要求である場合、記憶媒体暗号処理装置１００は、記憶媒体から当該アクセスコマンドに対応するセクタ番号に格納された暗号ブロック７１を読み出す。そして、記憶媒体暗号処理装置１００は、読み出した暗号ブロック７１に対して復号化処理を行い、平文ブロック５１を生成する。そして、記憶媒体暗号処理装置１００は、生成した平文ブロック５１を要求元である外部装置への応答とする。尚、以下では、アクセスコマンドが書き込み要求である場合、すなわち、記憶媒体暗号処理装置１００は、平文ブロック５１に対して暗号化処理を行う場合について説明し、復号化処理を行う場合については、詳細な説明を省略する。
【００１９】
記憶媒体暗号処理装置１００は、コマンドキュー１と、セクタ番号処理用コマンド解析回路２ａと、データ処理用コマンド解析回路２ｂと、ＡＥＳ暗号処理回路３と、乗算回路４と、排他的論理和回路５と、ＡＥＳ暗号処理回路６と、排他的論理和回路７と、バッファ８とを備える。
【００２０】
コマンドキュー１は、外部装置からの複数のアクセスコマンドをＦＩＦＯ（First-In First-Out）方式で管理する記憶領域である。ここでは、コマンドキュー１は、入力された複数のアクセスコマンドがコマンド１１、コマンド１２、・・・、及びコマンド１ｎの順番で格納されているものとする。ここで、記憶媒体暗号処理装置１００は、外部装置から所定の時間内に受信した複数のアクセスコマンドについて、所定の時間内での受信順番に関わらず、記憶媒体へのヘッダ移動距離が最短となるように処理順序を定めるとよい。その場合、記憶媒体暗号処理装置１００は、定めた処理順にコマンドキュー１に複数のアクセスコマンドを格納する。これにより、コマンドキューに格納された処理順に従ってアクセスコマンドを実行することで、ＨＤＤへのアクセス処理を高速化することができる。例えば、記憶媒体暗号処理装置１００は、ＮＣＱ（Native Command Queuing）方式に従って、所定の時間内に受信した複数のアクセスコマンドの処理順序を定めると良い。尚、記憶媒体暗号処理装置１００は、複数のアクセスコマンドの処理順序を定める方式は、ＮＣＱに限定されない。例えば、記憶媒体暗号処理装置１００は、アクセスコマンドを任意の処理順序に並び替えてコマンドキュー１に格納しても良い。または、記憶媒体暗号処理装置１００は、少なくとも複数のアクセスコマンドを受信した順序に従ってコマンドキュー１に格納してもよい。
【００２１】
セクタ番号処理用コマンド解析回路２ａは、コマンドキュー１から処理順にアクセスコマンドを読み出し、読み出したアクセスコマンドの解析を行う電子回路である。ここでは、セクタ番号処理用コマンド解析回路２ａは、コマンド１１、コマンド１２、・・・、及びコマンド１ｎの順番で読み出す。セクタ番号処理用コマンド解析回路２ａは、アクセスコマンドの解析により、アクセス対象のセクタ番号を抽出し、ＡＥＳ暗号処理回路３へ出力する。
【００２２】
ＡＥＳ暗号処理回路３は、セクタ番号処理用コマンド解析回路２ａから入力されるセクタ番号と、鍵３１とを用いてＡＥＳ暗号化処理を行う。そして、ＡＥＳ暗号処理回路３は、ＡＥＳ暗号化処理による暗号化結果を乗算回路４へ出力する。尚、ＡＥＳ暗号化処理は、公知なものであるため、ここでは、詳細な説明を省略する。乗算回路４は、ＡＥＳ暗号処理回路３から入力される暗号化結果と、多項式係数４１とを乗算し、変換結果をバッファ８へ格納する。
【００２３】
バッファ８は、セクタ番号がＡＥＳ暗号処理回路３及び乗算回路４により変換処理された変換結果を格納する記憶領域である。ここでは、バッファ８は、コマンド１１、コマンド１２、・・・、及びコマンド１ｎのそれぞれと関連付けられた変換結果８１、変換結果８２、・・・、及び変換結果８ｎを格納する。
【００２４】
すなわち、セクタ番号処理用コマンド解析回路２ａ、ＡＥＳ暗号処理回路３及び乗算回路４は、位置情報であるセクタ番号に変換処理を行い、セクタ番号が変換された変換結果をバッファ８に格納する位置情報変換手段である。
【００２５】
データ処理用コマンド解析回路２ｂは、コマンドキュー１から処理順にアクセスコマンドを読み出し、読み出したアクセスコマンドの解析を行う電子回路である。尚、データ処理用コマンド解析回路２ｂは、セクタ番号処理用コマンド解析回路２ａによるアクセスコマンドの読み出しとは独立してコマンドキュー１から読み出しを行う。例えば、コマンド１１がセクタ番号処理用コマンド解析回路２ａにより既に読み出し済みの場合であっても、データ処理用コマンド解析回路２ｂは、コマンド１１を未処理としてコマンド１１、コマンド１２、・・・、及びコマンド１ｎの順番で読み出す。データ処理用コマンド解析回路２ｂは、アクセスコマンドの解析により、アクセス対象、すなわち、記憶媒体への格納対象のデータブロックを取得し、平文ブロック５１として出力する。
【００２６】
排他的論理和回路５は、平文ブロック５１をアクセス対象とするアクセスコマンドに関連付けられた変換結果をバッファ８から読み出す。そして、排他的論理和回路５は、平文ブロック５１と読み出した変換結果とを排他的論理和演算し、演算結果をＡＥＳ暗号処理回路６へ出力する。ＡＥＳ暗号処理回路６は、排他的論理和回路５からの演算結果と、鍵６１とを入力する。そして、ＡＥＳ暗号処理回路６は、ＡＥＳ暗号化処理による暗号化結果を排他的論理和回路７へ出力する。その後、排他的論理和回路７は、ＡＥＳ暗号処理回路６から入力される暗号化結果と、排他的論理和回路５がバッファ８から読み出した変換結果とを排他的論理和演算し、暗号ブロック７１を出力する。
【００２７】
尚、アクセスコマンドが読み出し要求である場合、排他的論理和回路７は、暗号ブロック７１と、バッファ８から読み出した変換結果とを排他的論理和演算し、演算結果をＡＥＳ暗号処理回路６へ出力する。ＡＥＳ暗号処理回路６は、排他的論理和回路７からの演算結果と、鍵６１とを入力する。そして、ＡＥＳ暗号処理回路６は、ＡＥＳ復号化処理による復号化結果を排他的論理和回路５へ出力する。その後、排他的論理和回路５は、ＡＥＳ暗号処理回路６から入力される復号化結果と、バッファ８から読み出した変換結果とを排他的論理和演算し、平文ブロック５１を出力する。
【００２８】
すなわち、データ処理用コマンド解析回路２ｂ、排他的論理和回路５、ＡＥＳ暗号処理回路６及び排他的論理和回路７は、バッファ８に格納された変換結果を用いて、当該変換結果に対応する平文ブロック５１の暗号処理を行うデータ暗号処理手段である。尚、復号化処理の場合、データ処理用コマンド解析回路２ｂは、セクタ番号に対応するデータを記憶媒体から暗号ブロック７１として読み出す。そして、図１において、暗号ブロック７１から平文ブロック５１へ排他的論理和回路７、ＡＥＳ暗号処理回路６及び排他的論理和回路５の順番で処理されるものとする。
【００２９】
図２は、本発明の実施の形態１にかかる記憶媒体へのアクセス処理の流れを示すフローチャート図である。まず、記憶媒体暗号処理装置１００は、複数のアクセスコマンドを入力する（Ｓ１１）。次に、記憶媒体暗号処理装置１００は、入力した複数のアクセスコマンドをＮＣＱに従った処理順にソートし、コマンドキュー１へ格納する（Ｓ１２）。
【００３０】
そして、セクタ番号処理用コマンド解析回路２ａは、コマンドキュー１から１番目のアクセスコマンドであるコマンド１１を取得及び解析する（Ｓ１３）。このとき、セクタ番号処理用コマンド解析回路２ａは、解析によりコマンド１１に含まれるセクタ番号を抽出する。そして、セクタ番号処理用コマンド解析回路２ａは、抽出したセクタ番号をＡＥＳ暗号処理回路３へ出力する。
【００３１】
続いて、ＡＥＳ暗号処理回路３は、セクタ番号の変換処理を行う（Ｓ１４）。ここで、図３は、本発明の実施の形態１にかかるセクタ番号の変換処理の流れを示すフローチャート図である。まず、ＡＥＳ暗号処理回路３は、上述したように、セクタ番号処理用コマンド解析回路２ａから入力されるセクタ番号と、鍵３１とを用いてＡＥＳ暗号化処理を行う（Ｓ１４１）。そして、ＡＥＳ暗号処理回路３は、ＡＥＳ暗号化処理による暗号化結果を乗算回路４へ出力する。また、乗算回路４は、ＡＥＳ暗号処理回路３から入力される暗号化結果と、多項式係数４１とを乗算し、変換結果８１をバッファ８へ格納する（Ｓ１４２）。
【００３２】
図２に戻り、記憶媒体暗号処理装置１００は、ステップＳ１５及びＳ１６を並列して実行する。すなわち、セクタ番号処理用コマンド解析回路２ａ、ＡＥＳ暗号処理回路３及び乗算回路４は、コマンドキュー１に格納された２番目以降のアクセスコマンドについて、セクタ番号の変換処理を行う（Ｓ１５）。尚、ステップＳ１５の処理の詳細は、図４に後述する。また、データ処理用コマンド解析回路２ｂ、排他的論理和回路５、ＡＥＳ暗号処理回路６及び排他的論理和回路７は、コマンドキュー１に格納された全てのアクセスコマンドの対象となるデータの暗号処理を行う（Ｓ１６）。尚、ステップＳ１６の処理の詳細は、図５に後述する。そして、ステップＳ１５及びＳ１６が共に終了することにより、記憶媒体暗号処理装置１００は、記憶媒体へのアクセス処理を終了する。
【００３３】
図４は、本発明の実施の形態１にかかる２番目以降のセクタ番号の変換処理の流れを示すフローチャート図である。まず、セクタ番号処理用コマンド解析回路２ａは、コマンドキュー１から処理順に未処理のアクセスコマンドを取得及び解析する（Ｓ１５１）。ここでは、ステップＳ１３及びＳ１４においてコマンド１１が処理されたため、セクタ番号理用コマンド解析回路２ａは、コマンド１２を取得する。そして、セクタ番号処理用コマンド解析回路２ａは、解析によりコマンド１２に含まれるセクタ番号を抽出する。
【００３４】
次に、ＡＥＳ暗号処理回路３及び乗算回路４は、セクタ番号の変換処理を行う（Ｓ１５２）。尚、ここでは、ＡＥＳ暗号処理回路３及び乗算回路４は、処理対象がコマンド１２のセクタ番号としてステップＳ１４と同等の処理を行う。そして、乗算回路４は、変換結果８２をバッファ８に格納する。
【００３５】
その後、セクタ番号処理用コマンド解析回路２ａは、コマンドキュー１に未処理のアクセスコマンドが存在するか否かを判定する（Ｓ１５３）。未処理のアクセスコマンドが存在すると判定した場合、ステップＳ１５１へ進む。そして、セクタ番号処理用コマンド解析回路２ａは、コマンドキュー１からコマンド１２以降コマンド１ｎまでの処理をステップＳ１５１乃至Ｓ１５３において繰り返す。ステップＳ１５３において、未処理のアクセスコマンドが存在しないと判定した場合、記憶媒体暗号処理装置１００は、２番目以降のセクタ番号の変換処理を終了する。
【００３６】
図５は、本発明の実施の形態１にかかるデータ暗号処理の流れを示すフローチャート図である。まず、データ処理用コマンド解析回路２ｂは、コマンドキュー１から処理順に未処理のアクセスコマンドを取得及び解析する（Ｓ９１）。尚、上述したようにデータ処理用コマンド解析回路２ｂは、セクタ番号処理用コマンド解析回路２ａにより処理済みであっても未処理と判定する。そのため、データ処理用コマンド解析回路２ｂは、最初にコマンド１１を取得する。そして、データ処理用コマンド解析回路２ｂは、アクセスコマンド解析により記憶媒体への格納対象のデータブロックを取得し、平文ブロック５１として出力する。
【００３７】
次に、排他的論理和回路５は、平文ブロック５１をアクセス対象とするアクセスコマンドに関連付けられた変換結果をバッファ８から読み出す（Ｓ１６２）。ここでは、排他的論理和回路５は、コマンド１１に対応する変換結果８１をバッファ８から読み出す。そして、排他的論理和回路５、ＡＥＳ暗号処理回路６及び排他的論理和回路７は、アクセス対象となるデータブロックのＡＥＳ暗号化処理を行う（Ｓ１６３）。つまり、上述したように、排他的論理和回路５、ＡＥＳ暗号処理回路６及び排他的論理和回路７は、平文ブロック５１と変換結果８１と鍵６１とを用いて、データ暗号処理を行う。
【００３８】
そして、データ処理用コマンド解析回路２ｂは、直前に処理したデータブロックが最後のデータブロックであるか否かを判定する（Ｓ１６４）。つまり、データ処理用コマンド解析回路２ｂは、処理対象のアクセスコマンドにおけるデータ暗号処理が終了したか否かを判定する。例えば、データ処理用コマンド解析回路２ｂは、コマンド１１のアクセス対象となるデータブロックの内、最後であるか否かを判定する。ステップＳ１６４において、最後のデータブロックでないと判定した場合、データ処理用コマンド解析回路２ｂは、セクタの境界であるか否かを判定する（Ｓ１６５）。つまり、データ処理用コマンド解析回路２ｂは、処理対象のアクセスコマンドにおける同一のセクタ番号に対応するデータブロックのデータ暗号処理が終了したか否かを判定する。例えば、データ処理用コマンド解析回路２ｂは、直前に処理したデータブロックが同一セクタ番号によるアクセス対象のデータブロックの内、最後であるか否かを判定する。ステップＳ１６５において、セクタの境界でないと判定した場合、ステップＳ１６３へ進み、以降、当該セクタ番号に対応する最後のデータブロックのデータ暗号処理が終了するまでの間、ステップＳ１６３乃至Ｓ１６５が繰り返される。また、ステップＳ１６５において、セクタの境界であると判定した場合、ステップＳ１６２へ進み、以降、処理対象のアクセスコマンドにおける最後のセクタ番号までの間、ステップＳ１６２乃至Ｓ１６５が繰り返される。また、ステップＳ１６４において、最後のデータブロックであると判定した場合、ステップＳ１６６へ進む。
【００３９】
そして、データ処理用コマンド解析回路２ｂは、コマンドキュー１に未処理のアクセスコマンドが存在するか否かを判定する（Ｓ１６６）。未処理のアクセスコマンドが存在すると判定した場合、ステップＳ１６１へ進む。そして、データ処理用コマンド解析回路２ｂは、コマンドキュー１からコマンド１２以降コマンド１ｎまでの処理をステップＳ１６１乃至Ｓ１６６において繰り返す。ステップＳ１６６において、未処理のアクセスコマンドが存在しないと判定した場合、データの暗号処理が終了する。
【００４０】
このように、位置情報変換手段は、遅くともデータ暗号処理手段がコマンド１１に対応する第１のデータの暗号処理を終了する前に、当該第１のデータ以降に処理されるコマンド１２に対応する第２のデータに対応する位置情報について、変換処理を開始する。つまり、第１データの暗号化処理の終了を待たずに、第２データの位置情報の変換処理を開始することで、データ暗号処理手段は、第１のデータの暗号処理が終了し次第、間隔を開けずに第２データの暗号化処理を開始することができる。
【００４１】
さらに、位置情報変換手段は、データ暗号処理手段が第１のデータの暗号処理中に、第２のデータに対応する位置情報について、変換処理を開始するとよい。これにより、位置情報の変換処理とデータの暗号化処理とを並列実行することができ、アクセス処理を早めることができる。
【００４２】
尚、上述した図１２に示したデータフローの場合、セクタ番号の切り替わりの度に、セクタ番号の暗号化処理が発生するため、切り替わりのオーバーヘッドにより処理効率が下がるという問題があった。つまり、関連技術にかかるＡＥＳ暗号処理回路は、実際にアクセス処理が開始されるまで、セクタ数を把握することができなかった。そのため、図５のステップＳ１６５において、セクタの境界であると判定した場合、データ暗号手段は、都度、アクセス対象のセクタ番号を抽出し、抽出したセクタ番号に対するＡＥＳ暗号化処理を行う必要があった。
【００４３】
また、記憶媒体と外部装置との入出力速度については、近年、通信インタフェースの処理速度が高速化しているため、記憶媒体内部のドライブ等の物理的なアクセス処理がボトルネックとなっている。そのため、当該アクセス処理におけるパフォーマンスの低下は、入出力時間全体への影響に直結する。
【００４４】
これに比べ、本発明の実施の形態１により、図５のステップＳ１６２では、データ暗号手段は、すでに暗号化処理されたセクタ番号の変換結果をバッファ８から読み出すため、この時点でセクタ番号の暗号化処理を行う場合に比べて、処理効率を高めることができる。例えば、１セクタが５１２バイトであり、１セクタ番号あたり、３２データブロックとする。このとき、１セクタ分のＡＥＳ暗号化処理を行う場合、関連技術にかかるデータ暗号処理手段は、３３回のＡＥＳ暗号化処理を行う必要があったが、本発明の実施の形態１にかかるデータ暗号処理手段は、セクタ番号についてのＡＥＳ暗号化処理を除いた３２回に軽減することができる。上述したように、アクセス処理におけるパフォーマンスの向上は、全体の入出力時間への影響に直結するため、効果が大きい。
【００４５】
尚、一つのアクセスコマンドが、複数の連続したセクタ番号を対象にしたアクセスである場合、位置情報変換手段は、当該アクセスの対象となるデータの長さに応じて位置情報を補正し、当該補正した位置情報に変換処理を行った変換結果をさらにバッファ８に格納することが望ましい。例えば、図３のステップＳ１４２の直後に、セクタ番号処理用コマンド解析回路２ａは、コマンドキュー１から取得したコマンド１１に含まれるセクタ数が２以上であるか否かを判定する。セクタ数が２以上であると判定した場合、コマンド１１に含まれるセクタ番号に１を加算してセクタ番号を補正する。そして、セクタ番号処理用コマンド解析回路２ａは、補正したセクタ番号について、ステップＳ１４１及びＳ１４２を実行する。これをセクタ数分繰り返す。または、図２のステップＳ１４においては、位置情報変換手段は、一つ目のセクタ番号についての変換処理のみを実行し、図４の中で、残りのセクタ数分のセクタ番号の変換処理を繰り返しても良い。これにより、１つのアクセスコマンドのアクセス対象が複数のセクタ番号を対象とする場合、セクタ番号処理用コマンド解析回路２ａは、都度、セクタ番号を抽出する必要がなくなり、変換処理を効率化することができる。
【００４６】
図６は、本発明の実施の形態１にかかる効果を説明するための図である。図６では、一回のアクセス処理において、３つのセクタ番号に対してアクセスが発生する場合の記憶媒体へのアクセス処理時間の概念を示す。ここでは、位置情報変換手段は、ステップＳ１４において、１番目のセクタ番号のＡＥＳ処理ＳＡ１を実行する。そして、位置情報変換手段は、ステップＳ１５において、２番目のセクタ番号のＡＥＳ処理ＳＡ２及び３番目のセクタ番号のＡＥＳ処理ＳＡ３を実行する。また、データ暗号処理手段は、ステップＳ１６において、少なくともＡＥＳ処理ＳＡ１の実行終了以後に、ＡＥＳ処理ＤＡ１、ＡＥＳ処理ＤＡ２及びＡＥＳ処理ＤＡ３を実行する。これにより、ステップＳ１５の位置情報変換手段と、ステップＳ１６のデータ暗号処理手段とが並列実行される。そのため、図１３に比べて、記憶媒体へのアクセス処理時間が短くなると言える。このように、本発明の実施の形態１にかかる記憶媒体暗号処理装置１００により、記憶媒体へのアクセス処理のパフォーマンスが向上する。
【００４７】
＜発明の実施の形態２＞
本発明の実施の形態２は、本発明の実施の形態１の変形例である。本発明の実施の形態２にかかる位置情報変換手段は、データ暗号処理手段が暗号処理を行っていない間に、未処理であるデータに対応する位置情報について、変換処理を行うものである。ここでは、ＮＣＱに従い複数のアクセスコマンドを所定の処理順に調整してコマンドキュー１に格納する際に、セクタ番号の変換処理を実行する場合を説明する。つまり、位置情報変換手段は、複数のアクセスコマンドを所定の処理順に調整する際に、調整対象のアクセスコマンドに含まれる位置情報を取得し、当該取得した位置情報から変換処理により変換結果を算出し、算出した変換結果をバッファ８に格納する。そして、データ暗号処理手段は、コマンドキュー１に格納された処理順にアクセスコマンドを取得し、当該取得したアクセスコマンドに対応する変換結果をバッファ８から取得し、当該取得した変換結果を用いて、当該取得したアクセスコマンドの対象となるデータの暗号処理を行う。これにより、位置情報変換手段の処理効率が高まる。よって、記憶媒体へのアクセス処理のパフォーマンスが向上する。
【００４８】
本発明の実施の形態２にかかる記憶媒体暗号処理装置の構成は、図１と同等であるため詳細な説明を省略する。そのため、以下では、図１と同一の符号を用いて、本発明の実施の形態１との違いを中心に説明する。図７は、本発明の実施の形態２にかかる記憶媒体へのアクセス処理の流れを示すフローチャート図である。まず、記憶媒体暗号処理装置１００は、複数のアクセスコマンドを入力する（Ｓ２１）。次に、記憶媒体暗号処理装置１００は、入力した複数のアクセスコマンドをＮＣＱに従った処理順にソートし、コマンドキュー１へ格納する（Ｓ２２）。
【００４９】
ここで、図８は、本発明の実施の形態２にかかるアクセスコマンドの処理順の調整処理の流れを示すフローチャート図である。まず、記憶媒体暗号処理装置１００は、入力された複数のアクセスコマンドの内、未処理のアクセスコマンドを入力順に解析する（Ｓ２２１）。このとき、記憶媒体暗号処理装置１００は、アクセスコマンドの解析によりセクタ番号及びセクタ数を抽出する。そして、記憶媒体暗号処理装置１００は、ステップＳ２２２及びステップＳ２２３を並列して実行する。すなわち、記憶媒体暗号処理装置１００は、解析したアクセスコマンドの処理順を調整する（Ｓ２２２）。例えば、記憶媒体暗号処理装置１００は、当該アクセスコマンドの解析結果に応じて、ＮＣＱに従って適切な処理順に並べ替える。また、セクタ番号処理用コマンド解析回路２ａ、ＡＥＳ暗号処理回路３及び乗算回路４である位置情報変換手段は、解析したアクセスコマンドに含まれるセクタ番号について、変換処理を行う（Ｓ２２３）。尚、セクタ番号の変換処理は、図３と同様のため、説明を省略する。
【００５０】
その後、記憶媒体暗号処理装置１００は、入力された複数のアクセスコマンドの内、未処理のアクセスコマンドが存在するか否かを判定する（Ｓ２２４）。未処理のアクセスコマンドが存在すると判定した場合、ステップＳ２２１へ進む。そして、記憶媒体暗号処理装置１００は、入力された全てのアクセスコマンドについて、ステップＳ２２１乃至Ｓ２２４において繰り返す。ステップＳ２２４において、未処理のアクセスコマンドが存在しないと判定した場合、記憶媒体暗号処理装置１００は、アクセスコマンドの処理順の調整処理の残りを実行する。これにより、コマンドキュー１には、入力された複数のアクセスコマンドがコマンド１１、コマンド１２、・・・、及びコマンド１ｎの順番で格納される。また、バッファ８には、コマンド１１、コマンド１２、・・・、及びコマンド１ｎのそれぞれと関連付けられた変換結果８１、変換結果８２、・・・、及び変換結果８ｎが格納される。そのため、アクセス処理において、データ暗号処理手段は、コマンドキュー１に格納されたアクセスコマンドと、バッファ８に格納された変換結果とを用いて、データの暗号処理を行うことができる。また、記憶媒体暗号処理装置１００は、コマンドキュー１に格納する際に行われるアクセスコマンドの調整処理において、各アクセスコマンドについて解析を行う。そして、解析によりアクセスコマンドに含まれるセクタ番号を抽出する。そのため、位置情報変換手段は、当該調整処理と並行して抽出されたセクタ番号の変換処理を行うことができる。よって、本発明の実施の形態２では、位置情報変換手段が別途、コマンドキュー１からアクセスコマンドを取得及び解析することがない。そのため、セクタ番号の変換処理を効率的に行うことができる。
【００５１】
図９は、本発明の実施の形態２にかかる効果を説明するための図である。図９では、一回のアクセス処理において、３つのセクタ番号に対してアクセスが発生する場合のＮＣＱ処理時間及び記憶媒体へのアクセス処理時間の概念を示す。ここでは、位置情報変換手段は、ＮＣＱ処理時間、すなわち、図７のステップＳ２２において、１番目のセクタ番号のＡＥＳ処理ＳＡ１、２番目のセクタ番号のＡＥＳ処理ＳＡ２及び３番目のセクタ番号のＡＥＳ処理ＳＡ３を実行する。そして、データ暗号処理手段は、アクセス処理時間において、ＡＥＳ処理ＤＡ１、ＡＥＳ処理ＤＡ２及びＡＥＳ処理ＤＡ３を実行する。これにより、アクセス処理時間には、セクタ番号の変換処理を行う必要がなく、記憶媒体暗号処理装置１００の処理全体の負荷が分散される。よって、記憶媒体へのアクセス処理のパフォーマンスが向上する。
【００５２】
＜発明の実施の形態３＞
本発明の実施の形態３は、本発明の実施の形態１及び３の変形例である。本発明の実施の形態３にかかる位置情報変換手段は、データ暗号処理手段が暗号処理を行っていない間に、未処理であるデータに対応する位置情報について、変換処理を行うものである。ここでは、図１のＡＥＳ暗号処理回路３及びＡＥＳ暗号処理回路６が共用された場合を説明する。言い換えると、位置情報変換手段は、データ暗号処理手段における暗号処理を変換処理とするものである。これにより、回路規模が抑えることができる。
【００５３】
図１０は、本発明の実施の形態３にかかる記憶媒体暗号処理装置２００の構成を示すブロック図である。記憶媒体暗号処理装置２００は、コマンドキュー１と、セクタ番号処理用コマンド解析回路２ａと、データ処理用コマンド解析回路２ｂと、排他的論理和回路５と、セレクタ９２と、ＡＥＳ暗号処理回路９０と、セレクタ９３と、乗算回路４と、バッファ８と、排他的論理和回路７とを備える。尚、図１０の構成の内、図１と同等のものには、同一の符号を付し、詳細な説明を省略する。以下では、本発明の実施の形態１及び２との違いを中心に説明する。
【００５４】
セレクタ９２は、記憶媒体暗号処理装置２００からの指示に応じて、セクタ番号処理用コマンド解析回路２ａ又はデータ処理用コマンド解析回路２ｂのいずれかからの入力を選択し、ＡＥＳ暗号処理回路９０へ出力する。ＡＥＳ暗号処理回路９０は、ＡＥＳ暗号処理回路３及びＡＥＳ暗号処理回路６と同等の機能を有し、セレクタ９２から入力されるデータと鍵９１とを用いてＡＥＳ暗号化処理を行う。セレクタ９３は、記憶媒体暗号処理装置２００からの指示に応じて、ＡＥＳ暗号処理回路９０からの入力を乗算回路４又は排他的論理和回路７のいずれかを選択して出力する。
【００５５】
例えば、記憶媒体暗号処理装置２００が位置情報変換手段として機能する場合は、セレクタ９２は、セクタ番号処理用コマンド解析回路２ａからの入力を選択し、セクタ番号をＡＥＳ暗号処理回路９０へ出力する。そして、ＡＥＳ暗号処理回路９０は、セレクタ９２から入力されたセクタ番号と、鍵９１とを用いてＡＥＳ暗号化処理を行い、暗号結果をセレクタ９３へ出力する。このとき、セレクタ９３は、暗号結果を乗算回路４へ出力する。逆に、記憶媒体暗号処理装置２００がデータ暗号処理手段として機能する場合は、セレクタ９２は、データ処理用コマンド解析回路２ｂからの入力を選択し、平文ブロック５１の演算結果をＡＥＳ暗号処理回路９０へ出力する。そして、ＡＥＳ暗号処理回路９０は、セレクタ９２から入力された演算結果と、鍵９１とを用いてＡＥＳ暗号化処理を行い、暗号結果をセレクタ９３へ出力する。このとき、セレクタ９３は、暗号結果を排他的論理和回路７へ出力する。
【００５６】
尚、本発明の実施の形態３にかかる記憶媒体へのアクセス処理の流れは、図７及び図８と同等であってもよい。その場合、本発明の実施の形態２に比べて回路規模を抑えることができる。または、位置情報変換手段は、記憶媒体へのアクセス処理の直前に行われるヘッダの移動時間、すなわち、シーク時間において、実行しても構わない。その場合の効果を図１１により説明する。図１１では、一回のアクセス処理において、３つのセクタ番号に対してアクセスが発生する場合のシーク時間及び記憶媒体へのアクセス処理時間の概念を示す。ここでは、位置情報変換手段は、１つ目のセクタ番号へのアクセス処理におけるシーク時間中に、１番目のセクタ番号のＡＥＳ処理ＳＡ１を実行する。そして、データ暗号処理手段は、アクセス処理時間において、１番目のデータブロックのＡＥＳ処理ＤＡ１を実行する。これにより、ヘッダが移動した後のアクセス処理時間を短くすることができる。尚、記憶媒体へのシーク時間は、一般的にアクセス処理時間に比べて長い。そのため、シーク時間は、記憶媒体へのアクセス処理の待ち時間と言える。本発明の実施の形態３では、待ち時間を有効活用できる。さらに、本発明の実施の形態３では、ＡＥＳ処理ＳＡ１、ＳＡ２及びＳＡ３をまとめて実行することも可能である。以上のことから、アクセス処理時間には、セクタ番号の変換処理を行う必要がなく、記憶媒体暗号処理装置２００の処理全体の負荷が分散される。よって、記憶媒体へのアクセス処理のパフォーマンスが向上する。
【００５７】
＜その他の実施の形態＞
尚、上述した本発明の実施の形態１乃至３において、位置情報としてセクタ番号を用いたが、これに限定されない。また、暗号処理は、ＡＥＳに限定されない。また、暗号処理の対象となるデータは、データブロックに限定されない。
【００５８】
尚、上述した本発明の実施の形態１及び２では、セクタ番号の変換処理をＡＥＳ暗号化処理としていたが、これに限定されない。例えば、セクタ番号の変換処理は、ＡＥＳ以外の暗号化方式でも構わない。または、セクタ番号の変換処理は、ハッシュ関数により求まるハッシュ値であっても構わない。つまり、セクタ番号の変換処理は、少なくともセクタ番号から任意の変換処理により値が変換された変換結果であればよい。
【００５９】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【符号の説明】
【００６０】
１００  記憶媒体暗号処理装置
２００  記憶媒体暗号処理装置
８００  記憶媒体暗号処理装置
１  コマンドキュー
１１  コマンド
１２  コマンド
１ｎ  コマンド
２ａ  セクタ番号処理用コマンド解析回路
２ｂ  データ処理用コマンド解析回路
３  ＡＥＳ暗号処理回路
３０  セクタ番号
３１  鍵
４  乗算回路
４１  多項式係数
５  排他的論理和回路
５１  平文ブロック
６  ＡＥＳ暗号処理回路
６１  鍵
７  排他的論理和回路
７１  暗号ブロック
８  バッファ
８１  変換結果
８２  変換結果
８ｎ  変換結果
９０  ＡＥＳ暗号処理回路
９１  鍵
９２  セレクタ
９３  セレクタ
ＳＡ１  ＡＥＳ処理
ＳＡ２  ＡＥＳ処理
ＳＡ３  ＡＥＳ処理
ＤＡ１  ＡＥＳ処理
ＤＡ２  ＡＥＳ処理
ＤＡ３  ＡＥＳ処理
【図１】
2010256652.tif 000003
【図２】
2010256652.tif 000004
【図３】
2010256652.tif 000005
【図４】
2010256652.tif 000006
【図５】
2010256652.tif 000007
【図６】
2010256652.tif 000008
【図７】
2010256652.tif 000009
【図８】
2010256652.tif 000010
【図９】
2010256652.tif 000011
【図１０】
2010256652.tif 000012
【図１１】
2010256652.tif 000013
【図１２】
2010256652.tif 000014
【図１３】
2010256652.tif 000015