説明

データ暗号化装置およびその制御方法

【課題】 外部記憶装置に記憶するデータを暗号化してセキュリティを保つ場合、不要になった外部記憶装置のデータを予め定められたデータで上書きして消去することが困難であった。
【解決手段】 ステップS601で、入力されたデータが、メモリに記憶されたテーブル情報に含まれるかを判定し、ステップS602で、入力されたデータが前記テーブル情報に含まれている場合は、前記入力されたデータを変換し、ステップS603で、前記変換されたデータを暗号化し、暗号化されたデータを前記外部記憶装置に出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを暗号化する技術に関する。
【背景技術】
【0002】
従来、重要な情報を電子データとして記憶装置に保存するために、その重要なデータを所定の暗号アルゴリズムで暗号化してから記憶する技術が知られている。
【0003】
また、記憶装置を廃棄する場合などに、記憶装置に記憶された重要なデータを読み出せなくするために、予め定められたデータ(例えば全てがゼロのデータ列)で上書き記憶する技術も知られている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−226667号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
例えば、入力されるデータは全て重要なデータであるとみなし、上記重要なデータについては確実に暗号化してから記憶装置に記憶することを考える。その場合、装置に入力された重要なデータは、記憶される前に必ず暗号化処理部を経由するシステムを構築することが望ましい。
【0006】
しかしながら、上記システムにおいて、もし予め定められたデータ(以下、固定データと呼ぶ)で上書き記憶をしようとすると、固定データも暗号化されてから記憶装置に記憶されるため、「固定データで上書き記憶する」という目的を達成できない。さらに単純な方式として、固定データの場合だけ暗号化処理部をバイパスするシステムが考えられる。しかしこの場合は、暗号化処理部で暗号化することによって得られるデータが、固定データと同じものが生成される可能性があり、固定データで上書きしたものか、暗号化することによって得られたものかが区別できなくなってしまう。そのため、暗号化処理部で暗号化することによって固定データと同じものが得られるデータは、正しく復号することができない。
【0007】
本発明は上記点に鑑みて成されたものであり、暗号化処理部を経由しながら、予め定められたデータでの上書きを可能にし、かつ、暗号化することによって予め定められたデータと同じデータが得られるデータを正しく復号可能とするデータ暗号化技術を提供する。
【課題を解決するための手段】
【0008】
本発明は、上記実情を鑑みてなされたものであり、外部記憶装置と接続されたデータ暗号化装置の制御方法であって、入力されたデータが、メモリに記憶されたテーブル情報に含まれるかを判定する判定ステップと、入力されたデータが前記テーブル情報に含まれている場合は、前記入力されたデータを変換する変換ステップと、前記変換されたデータを暗号化し、暗号化されたデータを前記外部記憶装置に出力する暗号化ステップを有し、前記テーブル情報は、少なくとも、予め定められた第1のデータと、前記第1のデータを前記暗号化における暗号化アルゴリズムで復号した第2データを含み、前記変換ステップは、前記第1のデータが入力された場合は前記第2データに変換し、前記第2のデータが入力された場合は前記第1のデータに変換し、入力されたデータが前記テーブル情報に含まれていない場合は変換しないことを特徴にする。
【発明の効果】
【0009】
本発明によれば、暗号化処理部を経由しながら、予め定められたデータでの上書きを可能にし、かつ、暗号化することによって予め定められたデータと同じデータが得られるデータを正しく復号可能となる。よって、上記暗号化技術を用いて記憶装置にデータを記憶した場合には、データの暗号化を確実に行えるとともに、予め定められたデータによる上書き消去が可能になる。
【図面の簡単な説明】
【0010】
【図1】データ暗号化装置のシステムの一例を示す図
【図2】制御処理の一例を示すフローチャート
【図3】テーブル情報の一例を示す図
【図4】データをHDDへの読み書きの場合のデータフローを示す図
【図5】変換・暗号化処理及び逆変換・復号処理のデータフローを示す図
【図6】第1の実施例における変換・暗号化処理及び逆変換・復号処理を示すフローチャート
【図7】第2の実施例における変換・暗号化処理及び逆変換・復号処理を示すフローチャート
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0012】
[第1の実施形態]
図1(A)は、本実施形態に適用されるシステムを示した図である。ここでは、コンピュータシステム101と、データ処理装置の1つであるデータ暗号化装置102と、外部記憶装置の1つであるHDD(ハードディスクドライブ)103により構成されるシステムを説明する。
【0013】
コンピュータシステム101は、バンキングシステム、DTP(DeskTop Publishing)システム、またはMFP(Multi Function Peripheral)等の装置であり、その内部にHDDコントローラ104を備える。
【0014】
データ暗号化装置102は、コンピュータシステム101とHDD103の両方と接続しており、それら2つの中間位置に存在している。データ暗号化装置102は、このHDDコントローラ104との間でデータを送受信する。同じく、データ暗号化装置102は、HDD103との間でデータを送受信する。このデータ暗号化装置102は、コンピュータシステム101(HDDコントローラ104)から受信したデータを暗号化して、HDD103に出力する。また、HDD103から読み出した暗号化データを、暗号復号してコンピュータシステム101(HDDコントローラ104)に出力する。コンピュータシステム101(HDDコントローラ104)とHDD103が直接データを送受信することはなく、上記2つがデータを送受信する際には、必ずデータ暗号化装置102を経由する。なお、データ暗号化装置102は、コンピュータシステム101およびHDD103と、汎用インタフェース105/106(例えば、ATAバスインタフェース)を介して接続されている。
【0015】
HDD103は、受信したデータを記憶する外部記憶装置であって、HDD以外に、CD−R/CD−RW/DVD−R/DVD−RWのような書き換え可能な磁気ディスクであっても構わない。図1においては、外部記憶装置の一例として、HDD103を記載した。
【0016】
[データ暗号化装置]
データ暗号化装置102の内部構成について説明する。
【0017】
CPU107は、データ暗号化装置102の全体の動作を制御する。メモリ108は、CPU107が実行する制御プログラム、および各種のデータを格納する。また、このメモリ108は、データの暗号化で必要な鍵情報などのデータを格納することができる不揮発性メモリとして機能する。なお、メモリ108は鍵情報という機密性が要求される情報を保持するため、不正アクセスに対抗できる耐タンパー性を有するメモリが望ましい。RAM109は、CPU107がメモリから読み出した制御プログラム等を実行するためのワークメモリとして用いられる。ATAバスセレクタ(ATA Bus Selector)110は、HDDコントローラ104とHDD103とを接続するためのインタフェースである。デバイスI/F(Device I/F)111は、ATAバスセレクタ110を介してHDDコントローラ104とアドレス・データバスを接続するためのインタフェースである。ホストI/F(Host I/F)112は、ATAバスセレクタ110を介してHDD103とアドレス・データバスを接続するためのインタフェースである。アドレス・データバス113は、データ暗号化装置102の各ブロックを接続して CPU107により各ブロックの制御を可能にする。
【0018】
HDDコントローラ104は、HDD103を制御するための制御コマンドを発行し、ここで発行された制御コマンドは、デバイスI/F111で一旦受信される。CPU107の制御の下で、実行可能であると判断されたコマンドについては、ホストI/F112から再発行され、HDD103へ送られる。コンピュータシステム101から受信したデータをHDD103へ格納する際には、この受信したデータをメモリ108に格納されたプログラムをCPU107で実行することによって変換・暗号化処理し、変換されたデータをHDD103へ転送する。またHDD103から変換データを読み出してコンピュータシステム101に送信する際には、メモリ108に格納されたプログラムをCPU107で実行することによって変換データを逆変換・復号処理して、コンピュータシステム101へ転送する。変換・暗号化処理、及び、逆変換・復号処理については後述する。
【0019】
図1(A)は、変換・逆変換処理、及び、暗号化・復号処理をメモリ108に格納されたプログラムをCPU107で実行するというソフトウェア的な構成を示した。しかし、変換・逆変換処理、及び、暗号化・復号処理は処理負荷が大きい。このため、図1(B)に示すように、変換・逆変換部114と暗号化・復号処理部115を設けてハードウェア的な構成も可能である。
【0020】
[データ暗号化装置の動作]
図2を参照して、本実施の形態におけるデータ暗号化装置の動作を説明する。図2は、本実施の形態における制御処理の一例を示すフローチャートである。なお、このフローチャートの処理は、CPU107がメモリ108に格納されるプログラムを実行することにより実現される。図1(B)の構成の場合は、CPU107がメモリ108に格納されるプログラムと変換・逆変換部114により実現される。なお、図中、S201〜S211は各ステップを示す。
【0021】
まず、ステップS201において、CPU107は、データ暗号化装置102のメモリ108内に保持されているシード情報の有無を検査することによって、データ暗号化装置102が初期状態であるか否かを判断する。「初期状態」とは、後述する鍵生成機能で鍵情報を生成するときに利用する鍵のシード情報がメモリ108に保持されていて鍵情報を生成可能な状態である場合に対応する。また、「初期状態でない」とは、シード情報をメモリ108に保持しておらず鍵情報を生成不可能な状態である場合に対応する。なお、シード情報は、データ暗号化装置102に固有の情報であり、データ暗号化装置102以外の装置からは知ることができない情報である。CPU107は、シード情報がメモリ108に保持されていない、つまり「初期状態である」と判定した場合には、ステップS202に処理を進める。ステップS202で、CPU107は、シード情報を新たに生成し、メモリ108内に格納する。一方、ステップS201で、CPU107が、メモリ108内にシード情報がある、つまり「初期状態でない」と判定した場合、そのままステップS203に処理を進める。
【0022】
次に、ステップS203で、CPU107は、コンピュータシステム101から固有情報を受信する。
【0023】
そして、ステップS204で、CPU107は固有情報とシード情報から鍵情報を生成し、鍵情報と固定データからテーブル情報を生成する。鍵情報およびテーブル情報の生成方法については後述する。なお、鍵情報として鍵情報検証情報をセットで管理している場合、生成した鍵情報の正当性を検証することが可能である。鍵情報の正当性を検証できなかった場合、CPU107は鍵情報を保持していないと判断することも可能であり、コンピュータシステム101とHDD103間の情報の送受信を遮断するように制御してもよい。固定データは、ステップS203で、コンピュータシステム101から受信してもよいし、データ暗号化装置102であらかじめ定めた固定データとしてもよい。固定データは、HDD103に記憶されたデータを無効化するデータである。
【0024】
ステップS205で、CPU107は制御機能により、コンピュータシステム101から送信された情報を受信し、受信した情報がコマンド等の制御情報であるか、またはデータであるかを判断する。そして、コンピュータシステム101から送信された情報のデータに対して、ステップS206に処理を移行して該データを変換・暗号化処理する。コンピュータシステム101から送信された情報の制御情報に対してはそのままステップS207へ移行する。
【0025】
次にステップS207へ移行して、制御情報および変換データをHDD103へ書き込む。
【0026】
ステップS208で、CPU107は制御機能により、HDD103から情報(応答情報)を受信し、受信した情報が、応答等の制御情報であるか、またはデータであるかを判断する。そして、情報のデータに対して、ステップS209に処理を移行して該データを逆変換・復号処理する。情報の制御情報に対してはそのままステップS210へ移行する。
【0027】
次にステップS210へ移行して、制御情報および逆変換データをコンピュータシステム101へ送信する。
【0028】
S211で、コンピュータシステム101からさらなる情報の送信があるかを判断し、送信がある場合はS205へ戻る。送信がない場合は終了する。
【0029】
なお、ステップS204に示した鍵情報およびテーブル情報の生成方法、ステップS205およびS208に示した情報のデータ・制御情報の判断方法、およびステップS206の変換処理、およびS209に示した逆変換処理の詳細についても後述する。
【0030】
[鍵情報およびテーブル情報の生成方法]
次に、図2のステップS204に示した、鍵情報およびテーブル情報の生成方法に関して詳細に説明する。
【0031】
ここでは、「暗号化・復号処理」と「変換・逆変換処理」で用いる情報を、それぞれ生成する方法を示す。暗号化・復号処理を実施するときに用いられる鍵情報を生成する機能(鍵生成機能)と、変換処理を実施するときに用いるテーブル情報を生成する機能(テーブル生成機能)からなる。
【0032】
まず、暗号化・復号処理に用いる鍵情報を生成する鍵生成機能について説明する。
【0033】
ここで、暗号化・復号処理で用いる鍵情報は、第三者に漏洩するとHDD103内の暗号化されたデータの復号が可能となってしまう情報である。従って、鍵情報は、データ暗号化装置102以外には漏洩しないようにする必要がある。そこで、データ暗号化装置102は、自装置内で鍵情報を生成する鍵生成機能を有している。かつ、データ暗号化装置102は鍵への外部からの不正アクセスを防止できる耐タンパー性を有することが望ましい。
【0034】
鍵生成機能を実現するために、データ暗号化装置102は、コンピュータシステム101からコンピュータシステム101の固有情報(以下、固有情報)を受信する。固有情報は個々のコンピュータシステムに固有の情報であって、シリアル番号、LAN I/Fを持つコンピュータシステムにおけるMACアドレス、またはそれらの情報を組み合わせた情報など、さまざまな情報を利用することが可能である。
【0035】
鍵生成機能は、コンピュータシステム101から受信した固有情報とメモリ108に保持しているシード情報から鍵情報を生成する。なお、シード情報の生成方法は、鍵情報の生成方法と暗号化アルゴリズムに依存する。乱数を暗号化アルゴリズムにおける鍵情報として利用できる場合は、シード情報も乱数または擬似乱数として生成することも可能である。一方、特定の条件を満たす情報を暗号化アルゴリズムにおける鍵情報として利用しなければならない場合は、例えば、鍵情報を生成し、生成した鍵情報とシード情報から「鍵情報=f(シード情報,固有情報)」を満たすシード情報を求める必要がある。
【0036】
ここで、固有情報とシード情報から鍵情報を生成する方法としては種々の方法を用いることができるが、例えば以下の方法が考えられる。
(1)固有情報とシード情報の排他的論理和を鍵情報とする方法。
(2)一方向性ハッシュ関数に固有情報とシード情報を入力し、出力された情報を鍵情報とする方法。
(3)固有情報を暗号化関数の鍵とし、シード情報を暗号化処理し、出力された情報を鍵情報とする方法。
(4)シード情報を暗号化関数の鍵とし、固有情報を暗号化処理し、出力された情報を鍵情報とする方法。
(5)DH(Diffie−Hellman)鍵共有方式(RFC2631)に基づいて鍵情報を共有する方法。
【0037】
ただし、データ暗号化装置102だけが鍵情報を保持できればよいので、例えば、シード情報をデータ暗号化装置102のDH鍵共有方式の秘密鍵とし、固有情報をデータ暗号化装置102の公開鍵とコンピュータシステム101の固有の情報から得られる情報とする。上記の各方法は、固有情報とシード情報から鍵情報を生成する一例であって、本実施の形態における鍵情報の生成方法は、2入力の関数f「鍵情報=f(シード情報,固有情報)」であればどのような関数でもよい。また、鍵情報と鍵情報検証情報とをセットで鍵情報として管理することで、鍵情報の正当性を検証することも可能である。なお、鍵情報検証情報は、一例として、鍵情報のハッシュ値が考えられる。
【0038】
次に、変換処理に用いるテーブル情報を生成するテーブル生成機能について説明する。
【0039】
変換処理は、所定の固定データが暗号化・復号処理されても、最終的には所定の固定データが出力されることを実現するための処理である。
【0040】
図3(A)はテーブル情報の例である。テーブル情報は、変換処理する前に入力される「変換前データ」と変換して出力される「変換後データ」から構成される。
【0041】
変換前データは「固定データ」と「固定データを復号処理行ったデータ(以下、復号固定データと示す)」で構成される。復号固定データは「固定データ=Enc(復号固定データ)」を満たし、固定データを復号すること(復号固定データ=Dec(固定データ))で生成できる。なお、Dec()は暗号化・復号処理の復号処理を、Enc()は暗号化・復号処理の暗号化を意味し、この暗号化・復号処理は、本実施形態の暗号化・復号処理と同じアルゴリズム及び鍵情報を用いる。ここで、データ”0000…00”は固定データを、データ”ed74…97”は復号固定データを示す。データ”ed74…97”を暗号化すると、”0000…00”が得られる。
【0042】
変換前データが「固定データ」に対応する変換後データは、「復号固定データ」とし、変換前データが「復号固定データ」に対応する変換後データは、「固定データ」とする。
【0043】
尚、固定データは、上書き消去等で要求されているオールゼロまたはオールイチのデータであったり、ビットイチとビットゼロが交互に現れるオール“0x55”やオール“0xAA”であったりする。しかしこれらに限定されるものではない。
【0044】
図3(B)は、図3(A)のテーブル情報のデータ量を削減したテーブル情報の一例である。図3(A)は、「固定データ」に対応する変換後データは「復号固定データ」であり、「復号固定データ」に対応する変換後データは「固定データ」である。図3(B)のテーブル情報は、「固定データ」と「復号固定データ」の値だけを持ち、変換処理で、「固定データ」が入力された場合は「復号固定データ」を出力し、「復号固定データ」が入力された場合は「固定データ」を出力するようにする。これによって、メモリ108内に記憶しておくデータ量を少なくすることができる。
【0045】
次に、固定データが複数ある場合の例を示す。
【0046】
図3(C)は、固定データが2つある場合のテーブル情報である。具体的には、固定データが、オールゼロとオールイチであり、それぞれ、固定データを復号した復号固定データが、データ”ed74…97”と、データ”3753…46”となる場合の例である。高度な機密性を求めるシステムでは、固定データと固定データの補数(例えばすべてがゼロのデータの補数は全てがイチのデータである)を用いて、2回以上上書きすることが求められる。上記のように2つの固定データを持つことで、このようなシステムに対応できる。
【0047】
図3(D)は、図3(C)テーブル情報のデータ量を削減したテーブル情報の一例である。テーブル情報は、2つの「固定データ」、それに対応する「復号固定データ」の値だけを持つ。そして、変換処理で、「固定データ」が入力された場合は、その固定データに対応する「復号固定データ」を出力し、「復号固定データ」が入力された場合は、その復号固定データに対応する「固定データ」を出力するようにする。
【0048】
更に、固定データ長は、HDDのクラスタ(アロケーションユニット、またはアロケーションブロックとも呼ばれる)長とすることが望ましい。クラスタはファイルに割り当て可能な最小の単位であり、ファイルシステムを初期化するときにクラスサイズが決定される。たとえば、汎用OSにおいてファイルフォーマットコマンドの引数でサイズを決定できる。
【0049】
一方で、暗号化・復号処理(詳細は後述する)がAES(Advanced Encryption Standard)など共通鍵暗号方式である。ECB(Electronic Code Book)モードのように単独ブロックで処理が完結する場合も考えられる。この場合は、固定データ長を共通鍵暗号方式のブロック長とすることもできる。
【0050】
固定データのデータ長は、上書き処理回数との組み合わせによりさまざまな長さが想定できるが、前述のように、HDDのファイルシステムや暗号化・復号処理に応じて、適宜決定することができる。
【0051】
[データ・制御情報の判断方法]
次に、図2のステップS205およびS208に示したデータ・制御情報の判断方法に関して、図4(A)および図4(B)のデータのフローを例示して詳細に説明する。
【0052】
図4(A)は、コンピュータシステム101から送信されるデータをHDD103に書き込む場合のデータフローを示す図である。図4(A)に示すように、CPU107は、コンピュータシステム101から実行可能な「コマンド」と「データ」からなる情報を受け取る。「コマンド」はHDD103へのデータの書き込み命令に相当する制御情報であり、「データ」はHDD103に書き込まれるデータである。CPU107は「データ」を変換処理する。そして、「コマンド」と変換・暗号化処理によって得られた「変換データ」からなる情報をHDD103に送信する。
【0053】
次に、CPU107は、HDD103から、変換データがHDD103に書き込まれたことに応じて送信される「応答」を受け取り、制御情報である「応答」をそのままコンピュータシステム101へ送信する。
【0054】
図4(B)は、コンピュータシステム101が、データをHDD103から読み込む場合のデータフローを示す図である。CPU107は、コンピュータシステム101から実行可能な「コマンド」を受け取る。「コマンド」はHDD103からのデータの読み込み命令に相当する制御情報である。CPU107は、コンピュータシステム101から受信した「コマンド」をそのままHDDに送信する。次に、CPU107は、HDD103から、変換データがHDD103から読み込まれたことに応じて送信される「応答」と「変換データ」を受け取る。更に、CPU107は、HDD103から読み込んだ「変換データ」を逆変換・復号処理する。そして、CPU107は、「応答」と「データ」(逆変換・復号済)からなる情報をコンピュータシステム101へ送信する。
【0055】
なお、図4(A)および図4(B)に示したデータフローは一例である。複数のインタフェースに係る具体的なデータフローは、コンピュータシステムとデータ暗号化装置間のインタフェースの仕様、およびデータ暗号化装置とHDD間のインタフェース仕様に依存する。例えば、「データ」がなく、「コマンド」と「応答」だけのデータフローも考えられる。更に、コンピュータシステムとデータ暗号化装置間のインタフェースとデータ暗号化装置とHDD間のインタフェースが異なる場合も考えられる。この場合、CPUの制御機能は、データの暗号化・復号処理に加えて、インタフェース仕様の変換・逆変換処理を同時に行うことで実現可能である。なお、図4(A)および図4(B)で示したとおり、データ暗号化装置において変換される情報は「データ」である。したがって、鍵情報を保持しない等、データ暗号化装置が初期状態の場合、CPUは、コンピュータシステムとHDD間の送受信を遮断する情報を「データ」に限定することも可能である。
【0056】
[変換・暗号化処理および逆変換・復号処理の詳細]
本実施形態では、変換・暗号化の場合は、「変換処理」、「暗号化処理」の順で処理を行い、逆変換・復号の場合は、「復号処理」、「逆変換処理」の順で処理を行う。
【0057】
図5(A)は、図3(A)あるいは図3(B)のテーブル情報を用いた変換・暗号化処理時におけるデータフローを示す。図5(A)において、それぞれ、データ”0000…00”は固定データを、データ”ed74…97”は固定データを復号した復号固定データを、データ”ab38…e1”はその他の入力データを表す。尚、データ”ed74…97”を暗号化すると、データ”0000…00”が得られるとする。
【0058】
「変換・逆変換処理」は、前述の初期値生成機能で生成したテーブル情報に従った変換である。なお、テーブル情報に記載のないデータの変換は行わない。図5(A)の場合は、データ”0000…00”は、データ”ed74…97”に変換され、データ”ed74…97”は、データ”0000…00”に変換されるが、データ”ab38…e1”は変換されずに、出力される。
【0059】
「暗号化・復号処理」は、例えば、AES(Advanced Encryption Standard)など共通鍵暗号方式、RSAなど公開鍵暗号方式、または共通鍵方式と公開鍵方式を組み合わせたハイブリッド方式などの、汎用的な暗号化処理である。図5(A)の場合は、データ”ed74…97”は、暗号化されて、データ”0000…00”が出力され、データ”0000…00”は、暗号化されて、データ”7175…21”が出力される。
【0060】
従って、図5(A)の例では、データ”0000…00”が入力された場合、「変換処理」、「暗号化処理」を行って、データ”0000…00”が出力され、結果として、暗号化処理を行っても、所定の固定データが出力される。
【0061】
また、図5(A)の例では、データ”ed74…97”が入力された場合、「変換処理」、「暗号化処理」を行って、データ”7175…21”が出力される。つまり、データ”ed74…97”が暗号化された場合、固定データ”0000…00”が得られるが、変換処理を行うことで、暗号化処理を行っても、所定の固定データ以外のデータが出力される。また、データ”ed74…97”が入力された場合に、固定データを暗号化したデータ”7175…21”が出力される。そのため、固定データ及び復号固定データ以外のデータ、および当該データを暗号化したデータへの影響をなくし、これらのデータはそのまま暗号化され出力されるという効果もある。
【0062】
図5(B)は、図3(A)あるいは図3(B)のテーブル情報を用いた逆変換・復号処理時におけるデータフローを示し、図5(A)で変換されたデータを逆変換する場合を示す。図5(B)の例では、データ”0000…00”が入力された場合、「復号処理」、「逆変換処理」を行って、データ”0000…00”が出力され、結果として、復号処理を行っても、所定の固定データが出力される。
【0063】
以下、図6(A)および図6(B)を参照して、本実施の形態におけるデータ暗号化装置102の動作を説明する。
【0064】
図6(A)は、本実施の形態における変換・暗号化処理の一例を示すフローチャートであり、図6(B)は、本実施の形態における逆変換・復号処理の一例を示すフローチャートである。なお、図中、S601〜S603およびS604〜S606は各ステップを示す。
【0065】
まず、図6(A)を参照して、コンピュータシステム101からHDD103へ記憶される際にデータ暗号化装置102で行われる、変換・暗号化処理の動作を説明する。
【0066】
ステップS601において、コンピュータシステム101からデータ暗号化装置102へ入力されたデータが、メモリ108に記憶されているテーブル情報における「変換前データ」に含まれているかを検索する。
【0067】
ステップS601で入力されたデータがテーブル情報に含まれていない場合は、ステップS603に処理を進める。図5(A)の例では、入力されたデータが、固定データでも復号固定データでもないデータ”ab38…e1”であった場合は、ステップS603に処理を進める。
【0068】
ステップS601で入力されたデータがテーブル情報に含まれていた場合は、ステップS602で変換処理を実行して入力データを変換し、ステップS603に処理を進める。図5(A)の例では、入力されたデータが、データ”0000…00”であった場合は、データ”ed74…97”に変換されて出力される。入力されたデータが、データ”ed74…97”であった場合は、データ”0000…00”に変換されて出力される。
【0069】
ステップS603で、前述の鍵情報に基づき、暗号化処理を行い、変換データを生成する。
【0070】
なお、ステップS601とステップS602の処理を変換処理だけで実現することも可能である。先に示したテーブル情報に、その他のデータを「変換前データ」と「変換後データ」が同じデータとして加えることにより実現できる。
【0071】
次に、図6(B)を参照して、HDD103からコンピュータシステム101へ読み出される際にデータ暗号化装置102で行われる、逆変換・復号処理の動作を説明する。
【0072】
ステップS604で、前述の初期値生成機能で生成した鍵情報に基づき、HDD103から入力されたデータを復号し、ステップS605へ処理を進める。
【0073】
ステップS605において、復号されたデータが、テーブル情報における「変換後データ」に含まれているかを検索する。ステップS605で復号されたデータがテーブル情報に含まれていない場合は、復号されたデータをコンピュータシステム101へ出力する。
【0074】
ステップS605で復号されたデータがテーブル情報に含まれていた場合は、ステップS606で逆変換し、逆変換されたデータをコンピュータシステム101へ出力する。図5(B)の例では、復号されたデータが、データ”ed74…97”であった場合は、データ”0000…00”に変換されて出力される。復号されたデータが、データ”0000…00”であった場合は、データ”ed74…97”に変換されて出力される。
【0075】
なお、変換処理同様、ステップS605とステップS606の処理を逆変換処理だけで実現することも可能である。先に示したテーブル情報に、その他のデータを「変換前データ」と「変換後データ」が同じデータとして加えることにより実現できる。
【0076】
以上に説明したように、本実施の形態は、コンピュータシステム101とHDD103間を、インタフェースを介して接続するデータ暗号化装置102であって、CPU107の制御によりHDD103に書き込むデータを暗号化するものである。本実施の形態では、この構成によって、HDD103に記憶されるデータの機密性を保つことができる。
【0077】
本実施形態では、「暗号化・復号処理」と「変換・逆変換処理」を組み合わせ、所定の固定データの場合に暗号化処理を打ち消す変換・逆変換処理をした後に暗号化処理する。これにより、上書き消去等で必要になる所定の固定データ(例えば、オールゼロやオールイチなどの、データを無効化するデータ)をHDDへ書き込みことを実現できる。
【0078】
本実施の形態では、テーブル情報を用いる例を示した。しかし、テーブル情報を用いないで、メモリ108に固定データと固定データを復号したデータとを記憶しておき、ステップS601とステップS605で、記憶されたこれらのデータであるかを判定するのでもよい。
【0079】
また、鍵情報は、コンピュータシステム101の固有情報とデータ暗号化装置102に固有のシード情報から生成される。このため、コンピュータシステム101とデータ暗号化装置102の異なる組から正当な鍵情報を生成することができない。
【0080】
なお、コンピュータシステム101の固有情報の受信前に、コンピュータシステム101とデータ暗号化装置102間で相互認証または一方向認証してもよい。認証方法として、「あらかじめ共有している秘密情報(パスワード)を相互で確認する方法」、「あらかじめ共有している秘密情報に基づき、チャレンジレスポンスの対話的に認証する方法」等を利用することが可能である。これらにより、データ暗号化装置102は、正当なコンピュータシステムの固有情報の受信を実現できる。
【0081】
更に、データ暗号化装置102は、HDDコントローラ104とHDD103に対するこれらの通信、データの送受信を全て標準インタフェースを介して実行することが可能であり、追加の信号線を必要としない。即ち、コンピュータシステム101やHDD103である外部記憶装置の仕様を変更する必要がない。従って、HDDの記録データを高度に機密性を維持可能なデータ暗号化記憶システムを、既存のコンピュータシステムおよび外部記憶装置の仕様を変更することなく、低コストで構築することができる等の効果を奏する。
【0082】
[第2の実施の形態]
第1の実施の形態では、変換・暗号化の場合は、「変換処理」、「暗号化処理」の順で処理を行い、逆変換・復号の場合は、「復号処理」、「逆変換処理」の順で処理を行っていた。第2の実施の形態では、変換・暗号化の場合は、「暗号化処理」、「変換処理」の順で処理を行い、逆変換・復号の場合は、「逆変換処理」、「復号処理」の順で処理を行う例である。第2の実施の形態は、変換・暗号化処理および逆変換・復号処理以外は第1の実施の形態と同様である。以下では、第1の実施の形態と異なる、「鍵情報およびテーブル情報の生成方法」と「変換・暗号化処理および逆変換・復号処理の詳細」についてそれぞれ説明する。
【0083】
[鍵情報およびテーブル情報の生成方法]
「暗号化・復号処理」と「変換・逆変換処理」で用いる情報を、それぞれ生成する方法を示す。暗号化・復号処理を実施するときに用いられる鍵情報を生成する機能(鍵生成機能)と、変換・逆変換処理を実施するときに用いるテーブル情報を生成する機能(テーブル生成機能)からなる。
【0084】
鍵生成機能は第1の実施の形態と同様なため、ここでは説明を省略する。以下にテーブル生成機能について説明する。
【0085】
変換処理は、所定の固定データが暗号化処理されても、最終的には所定の固定データが出力されることを実現するための処理である。
【0086】
図3(E)はテーブル情報の一例である。テーブル情報は、変換前データと変換後データから構成され、変換前データは「固定データ」および「暗号化固定データ」で構成される。暗号化固定データは「暗号化固定データ=Enc(固定データ)」を満たす。なお、Enc()は暗号化・復号処理の暗号化を意味し、この暗号化・復号処理は、本実施形態の暗号化・復号処理と同じアルゴリズム及び鍵情報を用いる。
【0087】
固定データは、上書き消去等で要求されているオールゼロまたはオールイチのデータであるが、これらに限定するものではない。暗号化固定データは、前述の鍵生成機能で生成した鍵情報に基づき、固定データを暗号化すること(暗号化固定データ=Enc(固定データ))で生成できる。
【0088】
固定データに対応する変換後データは「暗号化固定データ」であり、暗号化固定データに対応する変換後データは「固定データ」である。
【0089】
ここでは、データ”0000…00”を固定データとし、固定データを暗号化して得られたデータ”7175…21”を暗号化固定データとする。
【0090】
図3(F)は、変換前データと変換後データを分けずに、テーブル情報の容量を削減した例である。また、ここでは、固定データが1つある場合を示したが、第1の実施形態と同様、固定データが複数あってもよい。
【0091】
[変換・暗号化処理および逆変換・復号処理の詳細]
図5(C)に変換・暗号化処理、図5(D)に逆変換・復号時におけるデータフローを示す。図5(C)において、それぞれ、データ”0000…00”は固定データを、データ”ed74…97”は復号固定データを、データ”7175…21”は暗号化固定データを表す。データ”ab38…e1”はその他の入力データを、データ”ea25…c7”は暗号化されたその他の入力データを表す。復号固定データは「暗固定データ=Enc(復号固定データ)」を、暗号化されたその他の入力データは「暗号化されたその他の入力データ=Enc(入力データ)」を満たす。
【0092】
「暗号化・復号処理」は、例えば、AES(Advanced Encryption Standard)など共通鍵暗号方式、RSAなど公開鍵暗号方式、または共通鍵方式と公開鍵方式を組み合わせたハイブリッド方式などの、汎用的な暗号化処理である。
【0093】
「変換・逆変換処理」は、前述の初期値生成機能で生成したテーブル情報に従った変換である。なお、テーブル情報に記載のないデータの変換は行わない。
【0094】
以下、図7(A)および図7(B)を参照して、本実施の形態におけるデータ暗号化装置の動作を説明する。
図7(A)は、本実施の形態における変換・暗号化処理の一例を示すフローチャートであり、図7(B)は、本実施の形態における逆変換・復号処理の一例を示すフローチャートである。なお、図中、S701〜S703およびS704〜S706は各ステップを示す。
【0095】
まず、図7(A)を参照して、変換・暗号化処理時の動作を説明する。
ステップS701で、前述の初期値生成機能で生成した鍵情報に基づき、コンピュータシステム101からデータ暗号化装置102へ入力された入力データを暗号化し、ステップS702へ処理を進める。
【0096】
ステップS702において、暗号化されたデータが、図3(E)のテーブル情報における「変換前データ」に含まれているかを検索する。
【0097】
ステップS702で暗号化されたデータがテーブル情報に含まれていない場合は、暗号化されたデータをそのまま変換後のデータとしてHDD103へ出力する。
【0098】
ステップS702で暗号化されたデータがテーブル情報に含まれていた場合は、S703で暗号化されたデータを変換し、変換されたデータを、変換後のデータとしてHDD103へ出力する。図5(C)では、暗号化されたデータが、データ”0000…00”であった場合は、データ”7175…21”に変換されて出力され、暗号化されたデータが、データ”7175…21”であった場合は、データ”0000…00”に変換されて出力される。
【0099】
なお、ステップS702とステップS703の処理を変換処理だけで実現することも可能である。先に示したテーブル情報に、その他のデータを「変換前データ」と「変換後データ」が同じデータとして加えることにより実現できる。
【0100】
次に、図7(B)を参照して、逆変換・復号処理の動作を説明する。
ステップS704において、HDD103からデータ暗号化装置102へ入力されたデータが、図3(E)のテーブル情報における「変換後データ」に含まれているかを検索する。
【0101】
ステップS704でデータがテーブル情報に含まれていない場合は、ステップS706に処理を進める。
【0102】
ステップS704でデータがテーブル情報に含まれていた場合は、ステップS705で逆変換処理を実行して入力データを逆変換し、ステップS706に処理を進める。図5(D)では、入力されたデータが、データ”7175…21”であった場合は、データ”0000…00”に変換されて出力され、入力されたデータが、データ”0000…00”であった場合は、データ”7175…21”に変換されて出力される。
【0103】
ステップS706で、前述の初期値生成機能で生成した鍵情報に基づき、復号処理を行い、変換後のデータとしてコンピュータシステム101へ出力する。
【0104】
なお、ステップS704とステップS705の処理を逆変換処理だけで実現することも可能である。先に示したテーブル情報に、その他のデータを「変換前データ」と「変換後データ」が同じデータとして加えることにより実現できる。
【0105】
以上に説明したように、本実施の形態は、コンピュータシステムとHDD間をインタフェースを介して接続するデータ暗号化装置であって、CPUの制御により暗号・復号部でHDDに書き込むデータを暗号化等変換するものである。本実施の形態では、この構成によって、HDDに記憶されるデータの機密性を保つことができる。
【0106】
本実施形態では、「暗号化・復号処理」と「変換・逆変換処理」を組み合わせ、所定の固定データの場合に暗号化処理をした後に暗号化処理を打ち消す変換処理する。これにより、上書き消去等で必要になる所定の固定データ(例えば、オールゼロやオールイチ)をHDDへ書き込みことを実現できる。
【0107】
本実施の形態では、テーブル情報を用いる例を示した。しかし、テーブル情報を用いず、メモリ108に、固定データと固定データを暗号化したデータとを記憶しておき、ステップS702とステップS704で、記憶されたこれらのデータであるかを判定するのでもよい。
【0108】
以上、一実施の形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。特に、コンピュータシステムとデータ暗号化装置が一つの機器からなる装置であってもよい。
【0109】
また、前述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0110】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0111】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0112】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
【0113】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0114】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のプログラムそのものをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、該ホームページから圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバやFTPサーバ等も本発明の請求項に含まれるものである。
【0115】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布する。更に、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。更に、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0116】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、以下のような構成も含まれることは言うまでもない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【0117】
更に、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込む。そして、該メモリに書き込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【0118】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0119】
本発明は上記実施の形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施の形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から排除するものではない。
【0120】
本発明の様々な例と実施の形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【0121】
なお、上述した実施の形態の各変形例を組み合わせた構成も全て本発明に含まれるものである。
【0122】
以上示したように、本実施の形態によれば、記憶装置と記憶装置を制御するコンピュータシステムの間に接続され、記憶装置と制御装置との間で転送されるデータのセキュリティを適切に保つ効果を奏する。かつ、不要になった外部記憶装置のデータを適切に消去できる等の効果を奏する。

【特許請求の範囲】
【請求項1】
外部記憶装置と接続されたデータ暗号化装置であって、
入力されたデータを変換する変換手段と、
前記変換されたデータを暗号化し、暗号化されたデータを前記外部記憶装置に出力する暗号化手段を有し、
前記変換手段は、予め定められた第1のデータが入力された場合は前記第1のデータを前記暗号化手段の暗号化アルゴリズムで復号した第2データに変換し、前記第2のデータが入力された場合は前記第1のデータに変換し、前記第1のデータと前記第2のデータと異なる第3のデータが入力された場合は変換せずに、前記暗号化手段に出力することを特徴にしたデータ暗号化装置。
【請求項2】
外部記憶装置と接続されたデータ暗号化装置であって、
入力されたデータを暗号化する暗号化手段と、
前記暗号化されたデータを変換し、変換されたデータを前記外部記憶装置に出力する変換手段とを有し、
前記変換手段は、予め定められた第1のデータが入力された場合は前記第1のデータを前記暗号化手段の暗号化アルゴリズムで暗号化した第2データに変換し、前記第2のデータが入力された場合は前記第1のデータに変換し、前記第1のデータと前記第2のデータと異なる第3のデータが入力された場合は変換せずに、前記外部記憶装置に出力することを特徴にしたデータ暗号化装置。
【請求項3】
外部記憶装置と接続されたデータ暗号化装置であって、
テーブル情報を記憶する記憶手段と、
入力されたデータが前記テーブル情報に含まれている場合は、前記入力されたデータを変換する変換手段と、
前記変換されたデータを暗号化し、暗号化されたデータを前記外部記憶装置に出力する暗号化手段を有し、
前記テーブル情報は、少なくとも、予め定められた第1のデータと、前記第1のデータを前記暗号化手段の暗号化アルゴリズムで復号した第2データを含み、
前記変換手段は、前記第1のデータが入力された場合は前記第2データに変換し、前記第2のデータが入力された場合は前記第1のデータに変換し、入力されたデータが前記テーブル情報に含まれていない場合は、入力されたデータを変換せずに前記暗号化手段に出力することを特徴にしたデータ暗号化装置。
【請求項4】
外部記憶装置と接続されたデータ暗号化装置であって、
テーブル情報を記憶する記憶手段と、
入力されたデータを暗号化する暗号化手段と、
前記暗号化されたデータが前記テーブル情報に含まれている場合は、前記入力されたデータを変換する変換手段を有し、
前記テーブル情報は、少なくとも、予め定められた第1のデータと、前記第1のデータを前記暗号化手段の暗号化アルゴリズムで暗号化した第2データを含み、
前記変換手段は、前記第1のデータが入力された場合は前記第2データに変換し、前記第2のデータが入力された場合は前記第1のデータに変換し、前記暗号化されたデータが前記テーブル情報に含まれていない場合は前記暗号化されたデータを変換せずに、前記外部記憶装置に出力することを特徴にしたデータ暗号化装置。
【請求項5】
前記第1のデータは、前記外部記憶装置に記憶されているデータを無効化するデータであることを特徴とする請求項1及至4のいずれか1項に記載のデータ暗号化装置。
【請求項6】
外部記憶装置と接続されたデータ暗号化装置の制御方法であって、
入力されたデータが、メモリに記憶されたテーブル情報に含まれるかを判定する判定ステップと、
入力されたデータが前記テーブル情報に含まれている場合は、前記入力されたデータを変換する変換ステップと、
前記変換されたデータを暗号化し、暗号化されたデータを前記外部記憶装置に出力する暗号化ステップを有し、
前記テーブル情報は、少なくとも、予め定められた第1のデータと、前記第1のデータを前記暗号化における暗号化アルゴリズムで復号した第2データを含み、
前記変換ステップは、前記第1のデータが入力された場合は前記第2データに変換し、前記第2のデータが入力された場合は前記第1のデータに変換し、入力されたデータが前記テーブル情報に含まれていない場合は変換しないことを特徴にしたデータ暗号化装置の制御方法。
【請求項7】
外部記憶装置と接続されたデータ暗号化装置の制御方法であって、
入力されたデータを暗号化する暗号化ステップと、
暗号化されたデータが、メモリに記憶されたテーブル情報に含まれるかを判定する判定ステップと、
前記暗号化されたデータが前記テーブル情報に含まれている場合は、前記暗号化されたデータを変換し、変換されたデータを前記外部記憶装置に出力する変換ステップとを有し、
前記テーブル情報は、少なくとも、予め定められた第1のデータと、前記第1のデータを前記暗号化における暗号化アルゴリズムで暗号化した第2データを含み、
前記変換ステップは、前記第1のデータが入力された場合は前記第2データに変換し、前記第2のデータが入力された場合は前記第1のデータに変換し、暗号化されたデータが前記テーブル情報に含まれていない場合は変換せずに、前記外部記憶装置に出力することを特徴にしたデータ暗号化装置の制御方法。
【請求項8】
コンピュータに読み込ませ実行させることで、前記コンピュータを、請求項1及至5のいずれか1項に記載のデータ暗号化装置の各手段として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−248124(P2011−248124A)
【公開日】平成23年12月8日(2011.12.8)
【国際特許分類】
【出願番号】特願2010−121772(P2010−121772)
【出願日】平成22年5月27日(2010.5.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】