(57)【要約】      （修正有）【課題】暗号化において、記憶装置のＬＢＡを使用して初期ベクトルを生成することにより、記憶容量を消費せずに初期ベクトルを可変となり、暗号強度の強いデータ暗号化装置を提供する。【解決手段】初期ベクトルにハードディスクのＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）を使用して、初期ベクトルを可変にすることで暗号強度を向上させ、暗号強度の強いデータ暗号化装置を提供する。【選択図】図１
2007336446.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置と記憶装置の間に接続され、前記ホスト装置から前記記憶装置に書き込むデータを暗号化する暗号化手段、前記ホスト装置が前記記憶装置から読み出すデータを復号する復号手段、前記ホスト装置を識別して正しいホスト装置でのみ動作することを保証するホスト識別手段を有するデータ暗号化装置において、データの暗号化及び復号に使用する初期ベクトルを所定の情報を使用して生成する初期ベクトル生成手段を有することを特徴とするデータ暗号化装置。
【請求項２】
前記初期ベクトルの生成に使用する所定の情報は、前記記憶装置の位置を示すLBA(Logical Block Address)であることを特徴とする請求項１のデータ暗号化装置。
【請求項３】
前記ホスト識別手段が前記ホスト装置を識別するために使用する情報は、前記データ暗号化装置が前記ホスト装置と初めて接続されたときに前記ホスト装置から受け取った識別IDであることを特徴とする請求項１のデータ暗号化装置。
【請求項４】
前記初期ベクトルの生成に使用する所定の情報は、前記記憶装置の位置を示すLBAと、前記データ暗号化装置が前記ホスト装置と初めて接続されたときに前記ホスト装置から受け取った識別IDの両方であることを特徴とする請求項１のデータ暗号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置とハードディスクなどの記憶装置の間に接続され、記憶装置に記憶されるデータの暗号化及び復号と、ホスト装置の識別を行うデータ暗号化装置の初期ベクトル生成方法に関するものである。
【背景技術】
【０００２】
近年、ハードディスク等の大容量記憶装置がパーソナルコンピュータだけではなく、カーナビゲーション、複写機、プリンタ、テレビ録画装置等様々なものに搭載されるようになった。使用用途によっては、この記憶装置に記憶される情報は機密データである場合があり、記憶装置に記憶するときにデータを暗号化して書き込む暗号ボードのオプションが設定されている製品も存在する。この暗号ボードは暗号鍵の管理も暗号ボード内で行っている場合があり、記憶装置とセットで取り外された場合でも記憶装置内のデータを守らなければならないことから、ホスト装置を識別し、正しいホスト以外では記憶装置内のデータを読み出すことができない暗号ボードも存在する。
【０００３】
一方、暗号技術としては、暗号強度を上げるために、単に平文ブロックを暗号化するだけでなく、1つ前に暗号化したブロックとこれから暗号化する平文ブロックをXOR演算し、その結果を暗号化することにより、ブロック間に連鎖を発生させ、局所的なブロック単位での暗号解読を困難にさせる暗号モードが一般的に使用される。
【０００４】
又、従来例としては、例えば特許文献１をあげることが出来る。
【特許文献１】特開2005-175605号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した暗号モードは、単に暗号化する場合と比較すると暗号強度があると考えられるが、最初の平文ブロックには前ブロックがないため、代わりに初期ベクトル(IV:Initial Vector)というデータを必要とする。この初期ベクトル(IV)はどんな値でもかまわないが、固定値とした場合、暗号化する単位の先頭ブロックに同じデータがあったり、パターンが存在したりした場合、暗号化後も同じデータや同じパターンとなってしまい、暗号強度が下がるという問題があった。
【０００６】
また、この初期ベクトル(IV)は復号時も使用するため、暗号化する度に値を変えた場合、その値を復号時のために保持しておく必要があった。
【課題を解決するための手段】
【０００７】
本発明は、上記従来例の問題点に鑑みてなされたものであり、その目的とするところは、暗号化において、記憶容量を消費せずに初期ベクトルを可変にすることで暗号強度の強いデータ暗号化装置を提供することである。
【発明の効果】
【０００８】
以上のように本発明によれば、暗号化において、記憶装置のLBAを使用して初期ベクトルを生成することにより、記憶容量を消費せずに初期ベクトルを可変となり、暗号強度の強いデータ暗号化装置を提供することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施例について、図面を参照しながら説明する。
【００１０】
図１は、本実施例におけるデータ暗号化装置の物理構成を示した図である。
【００１１】
101は、データ暗号化装置であり、ホスト装置102と記憶装置103の間にブリッジとして接続され、ホスト装置102からのデータを暗号化して記憶装置103に書き込み、記憶装置103からデータを読み出して復号してホスト装置に渡す役割を果たす。ホスト装置102は、特に限定はないが、本実施例においては記憶装置103をハードディスクと想定しており、ハードディスクを備えるコンピュータ、コピー機やプリンタ、録画装置等が考えられる。もちろん、記憶装置はハードディスクでなくともかまわない。
【００１２】
データ暗号化装置101は、ホスト装置102と記憶装置103の間にブリッジ接続されるため、ホスト装置との接続用I/FであるホストI/F104と、記憶装置103との接続用I/FであるデバイスI/F105を備える。ホストI/F104とデバイスI/F105は、例えばIDEのような汎用I/Fが想定され、通常はホスト装置102と記憶装置103が直接接続されるのであるが、その間にデータ暗号化装置101をブリッジ接続することにより、ホスト装置102からはデータ暗号化装置101をほとんど意識する必要なく記憶装置103にアクセスすると自動的にデータの暗号化/復号が行われる構成である。もちろんホストI/FとデバイスI/FはIDEのI/Fでなくともかまわない。
【００１３】
データ暗号化装置101は、ホストI/FとデバイスI/Fの他に、CPU106、ワークメモリ107、不揮発性メモリ108、暗号処理エンジン109で構成される。CPU106は、不揮発性メモリ108からワークメモリ107に読み出し、各種の処理を実行する。ワークメモリ107は電源供給が停止すると保持したデータが消滅するが、不揮発性メモリ108は電源供給が停止されても記憶されたデータを維持する。従って、不揮発性メモリ108には、暗号化/復号に必要な暗号鍵、ホスト識別に必要な識別IDなども保存される。
【００１４】
暗号処理エンジン109は、ホスト装置102から受け取ったデータを暗号化し、記憶装置103から読み出したデータを復号する。本実施例においてはパフォーマンス向上のために暗号処理エンジン109をハードウェアで構成しているが、もちろんソフトウェアで構成してもかまわない。また、暗号アルゴリズムは特に指定していないが、本発明が初期ベクトル(IV)の作成方法の発明であるため、暗号モードは初期ベクトル(IV)を必要とするものに限定される。初期ベクトル(IV:Initial Vector)が必要な暗号モードとしては、例えばCBC(Cipher Block Chaining)方式などがある。
【００１５】
110、111はレジスタである。レジスタ111は記憶装置103へアクセスするために使用され、記憶装置103へのコマンドやLBA(Logical Block Address)などがセットされる。レジスタ110はホスト装置102からあたかも記憶装置103へ直接アクセスしているように構成するためにデータ暗号化装置101に用意されているレジスタであり、レジスタ111と同等のアクセスを許可する。もちろん記憶装置103へのアクセスで定義されていない用途として、レジスタ110をホスト装置102とデータ暗号化装置101の間で使用してもかまわない。本実施例においては、ホスト装置を識別するための識別IDを受け渡す場合に独自のコマンドをホスト装置102とデータ暗号化装置101間で定義し、データ暗号化装置101設置時にホスト装置102からデータ暗号化装置101に識別IDを渡し、ホスト装置102は受け取った識別IDを不揮発性メモリ108に格納する。
【００１６】
図２は、CBC方式の暗号モードによる暗号化処理を説明した図である。
【００１７】
CBC方式は、1つ前に暗号化したブロックとこれから暗号化する平文ブロックをXOR演算し、その結果を暗号化することにより、ブロック間に連鎖を発生させ、局所的なブロック単位での暗号解読を困難にさせる暗号モードである。但し、最初の平文ブロックに関しては1つ前のブロックが存在しないことから、1つ前のブロックの代わりに初期ベクトル(IV)というデータを必要とする。
【００１８】
図２において、201は初期ベクトル(IV)、202〜204は平文ブロックデータ、205〜207はXOR演算処理、208〜210は暗号化処理、211〜213は暗号化されたブロックデータである。平文ブロック202は先頭平文ブロックであるため、このブロックを暗号化するために初期ベクトル(IV)を必要とする。まず、IV201と先頭平文ブロック202を205でXOR演算処理を施し、その結果を208で暗号化する。そして出力された結果である暗号ブロック211と次の平文ブロック203を206でXOR演算処理を施し、その結果を209で暗号化することで、次の暗号ブロック212を得る。以降、前の暗号ブロックと次の平文ブロックをXOR演算し、その結果を暗号化するという処理を繰り返すことにより、全平文データを暗号化する。
【００１９】
図３は、本実施例におけるデータ暗号化装置101の有している代表的な論理機能を示した図である。
【００２０】
ホスト識別手段301は、データ暗号化装置101の設置時にホスト装置102から識別IDを受け取り、その識別IDを不揮発性メモリ108に格納しておき、電源投入の度に識別IDを使用してホスト装置102を識別する。これは、データ暗号化装置101と記憶装置103がセットで盗まれた場合に、異なるホスト装置でデータの復号を行うことを防止するための処理を行う。
【００２１】
暗号化・復号手段302は、暗号処理エンジン109を使用して、図２に示したCBC方式によりホスト装置102からのデータを暗号化し、記憶装置103から読み出したデータを復号する処理を行う。本実施例においては、暗号化・復号は記憶装置103のセクタ単位で行われる。
【００２２】
IV生成手段303は、暗号化・復号手段302で暗号化・復号を行うために必要な初期ベクトル(IV)の生成を行う。生成方法は図５に示すが、本実施例において、IV生成に記憶装置103のLBA(Logical Block Address)を使用する。暗号化・復号手段302において、暗号化・復号は記憶装置103のセクタ単位に行われるため、IV生成も記憶装置103のセクタ単位の暗号化・復号が行われる度に動作する。
【００２３】
鍵管理手段304は、暗号化・復号手段302で暗号化・復号を行うために必要な暗号鍵の生成、管理、消去等を行う。本実施例においては、データ暗号化装置101の設置時にホスト装置102から識別IDを受け取り、その識別IDに所定の演算を行うことで暗号鍵を作成し、不揮発性メモリ108に格納して保持する。鍵管理手段304は、電源投入時に不揮発性メモリ108から暗号鍵をワークメモリ107に読み出し、暗号化・復号手段302はワークメモリ107に読み出された暗号鍵を使用して暗号化・復号を行う。
【００２４】
図４は、本実施例におけるLBA設定の流れを示した図である。
【００２５】
ホスト装置102が記憶装置103にデータ書き込みを行う場合と、ホスト装置102が記憶装置103からデータを読み出す場合に、ホスト装置102はデータ暗号化装置101のホストI/F104にアクセスし、書き込み位置乃至は読み出すデータ位置を示すLBAをセットする。本実施例においては、LBAはデータ暗号化装置101のレジスタ110にセットされると同時に、記憶装置103のレジスタ111にもセットされる構成となっている。さらにレジスタ110にデータがセットされるとCPU106に割り込み403が入り、CPU106はIV生成手段303により、レジスタ110にセットされたLBAを使用して初期ベクトル(IV)を生成し、暗号化・復号手段302を動作させる。暗号化は記憶装置103のセクタ単位で行われるため、連続セクタにデータを書き込む場合はLBAを自動的にインクリメントすることで更新して初期ベクトル(IV)生成に使用する。
【００２６】
図５は、本実施例における初期ベクトル(IV)の生成方法を示した図である。
【００２７】
初期ベクトル(IV)はどのようなデータでもかまわないが、初期ベクトル(IV)を固定値とした場合、同じ値のデータを暗号化すると暗号結果が同じになってしまうため、暗号強度が下がってしまう。従って、本実施例においては、初期ベクトル(IV)が様々な値になるようにする。
【００２８】
本実施例において、IV生成手段303は、ホスト装置102からのアクセス時にレジスタ110にセットされたLBA501と、不揮発性メモリ108に格納されている識別ID502に対し、503で演算を施し、初期ベクトル(IV)504を生成する。503で行う演算は、例えば固定データを付加することでLBA501と識別ID502のデータサイズを合わせ、XOR演算を行い、ハッシュ値をとったり、それをシードに乱数生成を行ったりした結果から、初期ベクトル(IV)として必要なサイズのデータを生成する。
【図面の簡単な説明】
【００２９】
【図１】本実施例におけるデータ暗号化装置の物理構成を示した図である。
【図２】CBC方式の暗号モードによる暗号化処理を説明した図である。
【図３】本実施例におけるデータ暗号化装置の有している代表的な論理機能を示した図である。
【図４】本実施例におけるLBA設定の流れを示した図である。
【図５】本実施例における初期ベクトル(IV)の生成方法を示した図である。
【図１】
2007336446.tif 000003
【図２】
2007336446.tif 000004
【図３】
2007336446.tif 000005
【図４】
2007336446.tif 000006
【図５】
2007336446.tif 000007