(57)【要約】【課題】機密データ等をＨＤＤ等の物理的破壊によらず低コストで迅速に解読不可能にすると共に、元データを特定して解読することを確実に防止する。【解決手段】データの解読を不能にする処理を行う１以上のデータ領域を選択するデータ領域選択工程と、選択したデータ領域から、解読不能化処理の対象となる最少アクセス単位の１以上の記憶領域を読み出す読出工程と、読み出した１以上の記憶領域を複数の論理ブロックに分割する分割工程と、分割した複数の論理ブロックに含まれるデータを夫々暗号化する暗号化工程と、暗号化された記憶領域を前記読み出した位置に書き戻す記憶領域書戻工程とを備えた。【選択図】  図１
2004199229.tif 000002
【特許請求の範囲】
【請求項１】
データの書換えが可能な記憶装置に記憶されたデータを解読不能にする方法であって、
データの解読を不能にする処理を行う１以上のデータ領域を選択するデータ領域選択工程と、
選択したデータ領域から、解読不能化処理の対象となる最少アクセス単位の１以上の記憶領域を読み出す読出工程と、
読み出した１以上の記憶領域を複数の論理ブロックに分割する分割工程と、
分割した複数の論理ブロックに含まれるデータを夫々暗号化する暗号化工程と、
暗号化された記憶領域を前記読み出した位置に書き戻す記憶領域書戻工程と
を備えたことを特徴とする方法。
【請求項２】
請求項１記載の方法において、
前記読出工程は、前記記憶装置内の２以上の最少アクセス単位の記憶領域を読み出すものであり、前記分割工程は、読み出した２以上の最少アクセス単位の記憶領域に跨がって複数の論理ブロックに分割するものである
ことを特徴とする方法。
【請求項３】
請求項２記載の方法において、
前記読出工程は、前記記憶装置内で物理的に連続する２以上の最少アクセス単位の記憶領域を読み出すものである
ことを特徴とする方法。
【請求項４】
請求項１記載の方法において、
前記暗号化工程は、複数の暗号化アルゴリズムを適用して論理ブロックに含まれるデータを暗号化するものである
ことを特徴とする方法。
【請求項５】
請求項４記載の方法において、
前記暗号化工程は、前記複数の論理ブロック毎に異なる暗号化アルゴリズムを夫々適用して論理ブロックに含まれるデータを暗号化するものである
ことを特徴とする方法。
【請求項６】
請求項１記載の方法において、
前記暗号化工程は、個々の論理ブロックの暗号化処理を行うためのアルゴリズムを生成する暗号化アルゴリズム生成工程を備えたことを特徴とする方法。
【請求項７】
請求項１記載の方法において、
さらに、前記記憶装置の識別情報、記憶装置を利用するユーザの属性情報、記憶装置を操作するオペレータの属性情報若しくは時刻の少なくとも１以上を含む鍵情報を取得する鍵情報取得工程と、
取得した鍵情報に基いて記憶領域を複数の論理ブロックに分割するための分割アルゴリズム若しくは論理ブロックに含まれるデータを暗号化する暗号化アルゴリズムを生成するアルゴリズム生成工程と
を備えたことを特徴とする方法。
【請求項８】
請求項７記載の方法において、
前記アルゴリズム生成工程は、分割アルゴリズムと暗号化アルゴリズムとを異なる鍵情報に基いて生成するものである
ことを特徴とする方法。
【請求項９】
請求項１記載の方法において、
前記データ領域選択工程は、ネットワークに接続された複数の記憶装置から解読不能化処理を行う１以上のデータ領域を選択するものである
ことを特徴とする方法。
【請求項１０】
請求項１記載の方法において、
前記データ領域選択工程は、一のコンピュータに含まれる複数の記憶装置から解読不能化処理を行う１以上のデータ領域を選択するものである
ことを特徴とする方法。
【請求項１１】
コンピュータシステムに、データの書換えが可能な記憶装置に記憶されたデータを解読不能にする処理を行わせるためのコンピュータプログラムであって、
データの解読を不能にする処理を行う１以上のデータ領域を選択するデータ領域選択機能と、
選択したデータ領域から、解読不能化処理の対象となる最少アクセス単位の１以上の記憶領域を読み出す記憶領域読出機能と、
読み出した１以上の記憶領域を複数の論理ブロックに分割する記憶領域分割機能と、
分割した複数の論理ブロックに含まれるデータを夫々暗号化するデータ暗号化機能と、
暗号化された論理ブロックのデータを前記読み出した記憶領域の位置に書き戻す書戻機能と
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項１２】
データの書換えが可能な記憶装置に記憶されたデータを解読不能にするシステムであって、
データの解読を不能にする処理を行う１以上のデータ領域を選択するデータ領域選択手段と、
選択したデータ領域から、解読不能化処理の対象となる最少アクセス単位の１以上の記憶領域を読み出す記憶領域読出手段と、
読み出した１以上の記憶領域を複数の論理ブロックに分割する論理ブロック分割手段と、
分割した複数の論理ブロックに含まれるデータを夫々暗号化するデータ暗号化手段と、
暗号化された記憶領域を前記読み出したデータ領域の位置に書き戻す記憶領域書戻手段と
を備えたことを特徴とするシステム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、コンピュータや各種の記録媒体等を廃棄する際に、コンピュータのハードディスク等の記憶装置に記録されたデータを解読不能にする方法及びコンピュータプログラムに関する。
【０００２】
【従来の技術】
従来、企業等では、不要になったコンピュータ（以下「ＰＣ」と言う）を廃棄する際に、ハードディスク（以下「ＨＤＤ」と言う）に記録された機密データの漏洩や盗用を防止するため、ＨＤＤを物理的に破壊して読み出せなくすることが行われている。また、このような物理的な破壊は時間とコストがかかることから、以下に示す特許文献１及び２のように、コンピュータプログラムを利用した論理的な手法によってＨＤＤ等のデータの解読を不可能にすることも提案されている。
【０００３】
【特許文献１】
特開平５−５３８９１号公報。
【０００４】
【特許文献２】
特開２００１−９２７１９号公報。
【０００５】
これらの特許文献には、機密データを記憶したファイルや記憶領域に数字の羅列や空白などの無意味なデータを一杯に書き込んで、第三者が機密データを読出せないようにする技術が開示されている。
【０００６】
【発明が解決しようとする課題】
しかし、上述の論理的なデータ破壊方法では、元のデータ上に別のデータを上書きするものに過ぎないため、なんらかの方法でこの上書きされたデータを特定することができれば、これを用いて元のデータを復元することが可能である。従って、これにより機密データが解読されてしまう恐れがある。
【０００７】
そのため、時間やコストがかかっても確実にデータの解読を防止できるＨＤＤ等を物理的に破壊する方法が依然として採られているのが実情である。
【０００８】
この発明は、このような課題に鑑みてなされたものであり、記憶されたデータをＨＤＤ等の物理的破壊によらず低コストで迅速に解読不可能にすると共に、元のデータを特定して解読することを確実に防止できる方法及びコンピュータプログラムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明の第１の主要な観点によれば、データの書換えが可能な記憶装置に記憶されたデータを解読不能にする方法であって、データの解読を不能にする処理を行う１以上のデータ領域を選択するデータ領域選択工程と、選択したデータ領域から、解読不能化処理の対象となる最少アクセス単位の１以上の記憶領域を読み出す読出工程と、読み出した１以上の記憶領域を複数の論理ブロックに分割する分割工程と、分割した複数の論理ブロックに含まれるデータを夫々暗号化する暗号化工程と、暗号化された記憶領域を前記読み出した位置に書き戻す記憶領域書戻工程とを備えたことを特徴とする方法が提供される。
【００１０】
このような構成によれば、記録媒体に記録されたデータを論理的に解読不能にすることができる。このための方法として、データ領域を最小単位に分割し、分割された各々の領域を任意の異なるアルゴリズムにより各々暗号化するという処理を採る。このような領域の選択及び暗号化アルゴリズムの選択は、乱数等を使って極めて不規則に実行することで、後から、それぞれの領域及びアルゴリズムを特定して元のデータに複合化し元の位置に戻すという作業は実質的に不可能になる。これにより、第三者に限らず、ＰＣに対して解読不能化処理を実行したオペレータや管理者、プログラマであっても暗号化されたデータを解読することは実質的に不可能となり、情報の盗用・漏洩を有効に防止できる。
【００１１】
また、これにより、ＨＤＤ等を物理的に破壊しない論理的な手法によっても元のデータを完全に読めなくすることができるから、機密データの解読不能化処理を低コストで迅速に実行できる。
【００１２】
また、本発明の第２の主要な観点によれば、コンピュータシステムに、データの書換えが可能な記憶装置に記憶されたデータを解読不能にする処理を行わせるためのコンピュータプログラムであって、データの解読を不能にする処理を行う１以上のデータ領域を選択するデータ領域選択機能と、選択したデータ領域から、解読不能化処理の対象となる最少アクセス単位の１以上の記憶領域を読み出す記憶領域読出機能と、読み出した１以上の記憶領域を複数の論理ブロックに分割する記憶領域分割機能と、分割した複数の論理ブロックに含まれるデータを夫々暗号化するデータ暗号化機能と、暗号化された論理ブロックのデータを前記読み出した記憶領域の位置に書き戻す書戻機能とを備えたことを特徴とするコンピュータプログラムが提供される。
【００１３】
このような構成によれば、上記した第１の主要な観点における方法をコンピュータシステムを使って好適に実行させることができるコンピュータプログラムを得ることができる。
【００１４】
また、本発明の第３の主要な観点によれば、データの書換えが可能な記憶装置に記憶されたデータを解読不能にするシステムであって、データの解読を不能にする処理を行う１以上のデータ領域を選択するデータ領域選択手段と、選択したデータ領域から、解読不能化処理の対象となる最少アクセス単位の１以上の記憶領域を読み出す記憶領域読出手段と、読み出した１以上の記憶領域を複数の論理ブロックに分割する論理ブロック分割手段と、分割した複数の論理ブロックに含まれるデータを夫々暗号化するデータ暗号化手段と、暗号化された記憶領域を前記読み出したデータ領域の位置に書き戻す記憶領域書戻手段とを備えたことを特徴とするシステムが提供される。
【００１５】
このような構成によれば、上記した第１の主要な観点における方法を好適に実施できるシステムを得ることができる。
【００１６】
なお、この発明の他の特徴と顕著な効果は、次の発明の実施の形態の項の記載と添付した図面とを参照することで、より明確に理解される。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づき説明する。以下においては、記憶装置としてＰＣに内蔵されたＨＤＤを例に取り、このＨＤＤに記録されたデータを暗号化して解読不可能にする処理を説明する。
【００１８】
（全体処理工程）
図１は本発明の一実施形態に係るデータ解読不能化処理の全体工程を示すフローチャート及び各工程における処理の模式図である。
【００１９】
まず、データの解読不能化処理の対象としてコンピュータに内蔵されたＨＤＤを選択し、このＨＤＤから任意の記憶領域を選択する（ステップＳ１）。以下の説明においては、解読不能化処理の対象領域を「ＯＡ」、選択された記憶領域を「ＭＡ」と表示する。次に、選択されたＭＡに含まれる１以上のセクタ（データ）を読出す（ステップＳ２）。読み出した４つのセクタに分割アルゴリズムを適用して任意のサイズの論理ブロックに分割する（ステップＳ３）。次いで、分割された論理ブロックに暗号化アルゴリズムを適用してこのブロックに含まれるデータを暗号化する（ステップＳ４）。この分割工程及び暗号化工程は、前記ステップＳ２で読み出された４つのセクタに含まれる全てのデータを暗号化するまで繰り返される。この実施例では、読み出された４つのセクタをサイズの異なる３つの論理ブロックに分割して暗号化している。全てのデータが暗号化されると、前記ステップＳ２で読み出したＨＤＤの元の位置にセクタを書き戻す（ステップＳ５）。このような解読不能化の処理（ステップＳ１〜Ｓ５）をＯＡの全てについて繰り返し実行することで、ＨＤＤに記録されたデータの解読を不可能にすることができる。また、この実施形態では、物理的に連続する複数（図示の例では４つ）のデータを読み出すことで、データの選択や読出しの処理を迅速に実行できるものである。なお、以下の説明においては、ＨＤＤのデータを暗号化して解読不能にするための上記した一連の工程を「データ解読不能化」と称し、所定の暗号化アルゴリズムを適用してデータを暗号化する特定の処理（上記ステップＳ４）を「暗号化」と称することにする。
【００２０】
（用語の説明）
ここで、本実施形態の説明に用いる用語の意味について簡単に説明する。なお、各用語の相互関係を図２に模式的に示す。
最小アクセス単位：解読不能化処理を行う記憶媒体（ＨＤＤ、ＦＤ、メモリカード等）にハードウェアがアクセスするための最小データ領域を意味する。最小アクセス単位の実際のサイズは記憶媒体の種別やハードウェアの製造者等によって異なる。記憶媒体がＨＤＤであれば最少アクセス単位はセクタであり、そのサイズは本実施形態では後述するように４バイトとする。前記選択工程（図１のステップＳ１）で選択された最小アクセス単位の数が実暗号化数である。また、１回の読出工程（図１のステップＳ２）で読み出される最小アクセス単位の数が最小暗号化数である。
最小暗号化単位：解読不能化処理を行う上で必要とする最小データ量を意味する。この最小暗号化単位の実際のサイズは暗号化ロジック等によって異なる。  アクセスカウント：ＯＡのデータ量を前記最小アクセス単位で除算したもの（端数は切り上げ）を意味する。ＯＡのデータ量が大きく最小アクセス単位が小さい場合は、このアクセスカウントが大きな数値になり、処理の高速化等の点で好ましくない。そのため、本実施形態では、予め設定された最大カウントまでを１つの領域として扱えるようにする。
分割領域：前記分割工程（図１のステップＳ３）でＭＡが複数の論理ブロックに分割された場合の、各論理ブロックに含まれるデータ領域を意味する。分割領域のサイズは、前記最小暗号化単位以上に設定される。
【００２１】
（ハードウェア及びプログラムの概略構成）
図３に、図１で説明した処理を実行するためのＰＣのハードウェア及びプログラムの概略構成を示す。
符号１で示すのは汎用のＰＣであり、このＰＣ１に内蔵されたＣＰＵ２にはバス３を介してＲＡＭ４、ＲＯＭ５、ＨＤＤ（記憶装置）６及び入出力インタフェース（Ｉ／Ｆ）７が接続されている。入出力Ｉ／Ｆ７には、ＣＲＴディスプレイ等の出力部８、キーボードやマウス等の入力部９、モデム等の通信部１０及びＦＤやＣＤ−ＲＯＭなどのリムーバブル記録媒体１１用のドライブ１２が夫々接続されている。ユーザによって入力部９が操作されて指令が入力されることで、ＣＰＵ２がＲＯＭ５やＨＤＤ６に格納された所定のプログラムをＲＡＭ４上に呼出してこのプログラムに従った処理を実行するように構成されている。
【００２２】
前記ＰＣ１に解読不能化処理を実行させるコンピュータプログラム１３は、処理対象となるＰＣ１にＦＤやＣＤ−ＲＯＭなどの記録媒体１１を通じて導入され、ＰＣ１の上記ハードウェア若しくはオペレーションシステム（ＯＳ）と協同して下記の各機能を発揮することで、解読不能化処理を実行させるものである。なお、解読不能化処理は、ＲＯＭ５やＨＤＤ６に格納されたコンピュータプログラムによって他の記憶装置（記憶媒体）に対して行うことができる。この場合には、ＰＣ１が解読不能化処理装置を構成する。
【００２３】
この解読不能化処理プログラム１３は、データ解読不能化の対象とするＰＣ１のＨＤＤ（ＯＡ）６若しくは記憶領域（ＭＡ）を選択する選択処理部１５と、ＭＡに含まれる１以上のセクタ（データ）を読出す読出処理部１６と、読出したセクタに分割アルゴリズムを適用して任意のサイズの論理ブロックに分割する分割処理部１７と、分割された論理ブロックに暗号化プログラムを適用して各ブロックに含まれるデータを暗号化する暗号化処理部１８と、当該データ（セクタ）を読出したＨＤＤ６の元の位置に書き戻す書戻処理部１９とをＰＣ１に実行させるものである。
【００２４】
ここで、前記分割処理部１７及び暗号化処理部１８は、ＰＣ１に内蔵された計時機能による時刻（システムタイム）を利用して分割用若しくは暗号化用の乱数を発生させ、これらの乱数に基づいて処理を実行する度に異なるアルゴリズムを生成するように構成されている。このシステムタイムは、請求項７及び８の「鍵情報」に相当するものである。アルゴリズムの種別としては、ＭＤ５（Message Digest5）、ＳＨＡ（Secure Hash Algorithm）、ＤＥＳ（Data Encryption Standard：データ暗号化標準）、トリプルＤＥＳ、ＤＥＳＸ(DES eXtension)、ＩＤＥＡ（International Data Encryption Algorithm）、ＲＣ２、ＲＣ４、ＲＣ５、ＦＥＡＬ、スキップジャック、ＲＳＡ等の従来周知の種々のものをそのまま若しくは適宜応用して採用できる。
【００２５】
上記解読不能化処理プログラム１３は、処理対象のＰＣ１に接続されている外付けのＨＤＤや、ＯＳの起動が可能な外部記憶装置にも導入可能である。本プログラムを導入した後、ＰＣ１を再起動することで解読不能化処理を実行できることになる。また、本プログラムの導入に際して、パスワードやＩＣカード等の外付けのセキュリティシステムを利用した操作者認証を用いて操作権限を制限することもできる。
【００２６】
（各工程の説明）
次に、図１に示した各工程における具体的な処理を図４〜図１０を参照して説明する。これらの処理は、上記したプログラム１３の各機能部１５〜１９がドライブ１２を介してＣＰＵ２によってＲＡＭ４上に順次呼出されて実行されるものである。
【００２７】
（選択工程）
まず、図４及び図５を参照して前記選択処理部１５が実行する選択工程（図１のステップＳ１）の処理を説明する。この工程では、まず、解読不能化処理対象データ（ＯＡ）のサイズを最小アクセス単位で除算してアクセスカウントが算出される（端数切り上げ）（ステップＳ１０１）。例えば、図５に示すように、ＯＡのサイズが１００バイト、最小アクセス単位が４バイトの場合、アクセスカウントは１００÷４＝２５となる。
【００２８】
次いで、ＰＣ１のシステムタイム（時刻情報）に基づいて乱数Ａを生成する（ステップＳ１０２）。この乱数Ａが実暗号化数であり、「最小暗号化単位」以上で「アクセスカウント」以下までの範囲に設定される。例えば、最小暗号化単位が１５に設定される場合、アクセスカウントは２５なので、乱数Ａ、すなわち実暗号化数の生成範囲は１５≦Ａ≦２５となる。
【００２９】
生成された乱数Ａは、選択工程が実行される度に累計値が算出される（ステップＳ１０３）。乱数Ａの累計値がアクセスカウント以下である場合は（ステップＳ１０４のＹＥＳ）、生成された乱数Ａをそのままｎ回目の実暗号化数と決定する（ステップＳ１０５）。一方、乱数Ａの累計値がアクセスカウントをオーバーする場合は（ステップＳ１０４のＮＯ）、累計値がアクセスカウントと等しくなるようにｎ回目（最後）の乱数Ａ（実暗号化数）を調節する。例えば、アクセスカウントが２５の場合、１回目の選択工程における実暗号化数が１７、２回目の選択工程における実暗号化数が１２であれば、累計が２９になりアクセスカウントを超えてしまう。そこで、アクセスカウント（２５）から前回までの乱数Ａの累計値（１７）を減算した値（８）を２回目の実暗号化数と決定する（ステップＳ１０６）。なお、このようにして実暗号化数を調節した結果、選択工程における最終データのサイズが最小アクセス単位（４バイト）よりも小さくなることもある。
【００３０】
（読出工程）
次に、図６及び図７を参照して前記読出処理部１６が実行する読出工程（図１のステップＳ２）を説明する。まず、最初に読出処理を行う場合には（ステップＳ２０１のＹＥＳ）、選択された記憶領域（ＭＡ）の先頭位置が読出し開始位置と特定される（ステップＳ２０２）。また、２回目以降の読出処理においては（ステップ２０１のＮＯ）、図７に示すように、前回（ｎ−１）の読出終了位置の次の位置が読出開始位置と特定される（ステップ２０３）。特定された読出開始位置は、処理回数ｎに関連付けて前記ＲＡＭ４等に記録される（ステップＳ２０４）。次いで、特定された読出開始位置から、前記選択工程で決定された実暗号化数（乱数Ａ：１５〜２５）に前記最小アクセス単位を乗算した分の処理対象領域ＭＡが読出される（ステップＳ２０５）。この実施形態では、物理的に連続する複数のセクタを読出すことで、読出しに要する時間を短縮するようにしている。
【００３１】
（分割工程及び暗号化工程）
次に、図８及び図９を参照して前記分割処理部１７が行う分割工程と前記暗号化処理部１８が行う暗号化工程（図１のステップＳ３、Ｓ４）の処理を説明する。
まず分割工程（ステップＳ３０１〜３０７）では、ＰＣ１のシステムタイムに基づいて分割用の乱数Ｂが生成される（ステップＳ３０１）。この乱数Ｂは、最少暗号化数（単位）以上で前記読出工程で読み出された処理対象領域（ＭＡ）の範囲に設定される。最初の分割処理の場合には（「ｃｎ：ｎ＝１」ステップＳ３０２のＹＥＳ）、生成された乱数Ｂのサイズがそのまま分割領域として設定される（ステップＳ３０３）。２回目以降の分割処理においては（「ｃｎ：ｎ≠１」ステップＳ３０２のＮＯ）、乱数Ｂの累計値が算出され（ステップＳ３０４）、次いでこの累計値と前記処理対象領域（ＭＡ）のサイズとの差（Ｒ）が算出される（ステップＳ３０５）。算出された差（Ｒ）が最小暗号化単位よりも大きい場合、すなわち累計値がＭＡ以下である場合は（ステップＳ３０６のＮＯ）、最初の分割時と同様に、生成された乱数Ｂのサイズがｃｎ回目の分割領域サイズとして設定される（ステップＳ３０３）。一方、算出された差（Ｒ）が最小暗号化単位未満である場合、すなわち累計値がＭＡのサイズを超える場合は（ステップＳ３０６のＹＥＳ）、ＭＡの最終データまでのサイズがｃｎ回目の分割領域サイズとして設定される（ステップＳ３０７）。なお、前記ｃｎは、分割・暗号化工程の処理ルーチン内における回数を意味し、図３、図５等に示す解読不能化処理の回数ｎとは区別される。
【００３２】
分割領域の具体的な設定方法を以下に示す。
ＭＡのサイズが１００バイト、最小暗号化単位が８バイトの場合
１回目の乱数Ｂが４０で生成されると、そのまま４０を１回目の分割領域サイズに設定する（ステップＳ３０２、Ｓ３０３）。
２回目の乱数Ｂが４２で生成されると、乱数Ｂの累計は８２、ＭＡのサイズとの差は１８であるので、そのまま４２を２回目の分割領域サイズに設定する（ステップＳ３０２、Ｓ３０４〜Ｓ３０６、Ｓ３０３）。
３回目の乱数Ｂが１１で生成されると、乱数Ｂの累計は９３、ＭＡのサイズとの差は７になる。この場合、３回目の差７は最小暗号化単位（８バイト）未満であるので、３回目の分割領域は２回目までの累計の差である１８バイトに設定される（ステップＳ３０２、Ｓ３０４〜Ｓ３０７）。また、３回目の乱数Ｂが５０であると、乱数Ｂの累計は１３２となり、差が−３２（８バイト未満）になる。そのため、この場合も３回目の分割領域は２回目までの累計の差である１８バイトに設定される。
【００３３】
上記のようにして設定された分割領域サイズに従って、ＭＡが図９に示すような異なるサイズの３つのブロックに分割される。この実施形態では、セクタのサイズよりも大きい乱数Ｂを少なくとも１回以上生成することで、少なくとも１以上の論理ブロック（図９の▲１▼、▲２▼）が読出した複数のセクタの境界を跨ぐようにしている。これにより、セクタ単位で暗号化する場合に比べてデータを解読されるおそれが極端に低くなり、データの漏洩をより有効に防止できる。
【００３４】
次に、暗号化工程では、ＰＣ１のシステムタイムに基づいて暗号化のための乱数Ｃが生成され、前記分割工程で設定された分割領域に対して暗号化処理が行われる（ステップＳ４０１）。この場合の乱数Ｃには、上記した乱数Ａ、Ｂのように範囲は設定されていない。
上記した分割・暗号化工程が、前記選択工程で選択されたＭＡの全ての領域について終了するまで繰返し実行される（ステップＳ４０２のＮＯ）。この時、処理回数ｃｎが１ずつ加算されていく（ステップＳ４０３）。この実施形態では、図９に示すように、ＭＡがサイズが異なる▲１▼〜▲３▼の３つの領域に分割され、夫々異なる乱数Ｃに基づくアルゴリズムによって暗号化されている。
このように乱数Ｂや乱数Ｃは処理の都度生成されるため、第三者は勿論のこと、ＰＣ１を操作しているオペレータ等であっても分割及び暗号化のパターンを知徳することはできない。仮に１の分割領域の暗号化パターン（乱数Ｃ等）を解析して複合化できたとしても、他の分割領域は異なる暗号化キーで暗号化されているため、暗号化パターンを再度解析して複合化しなければならない。このような作業を全ての分割領域について行うことは事実上不可能であることに加え、分割領域の大きさ（データ容量、単位）も不規則であるため、解読できた一の暗号化パターンを適用する領域を特定することも困難となる。したがって、上記した分割工程及び暗号化工程を繰り返すことで、ＭＡを不可逆的に暗号化することができ、データの解読を不可能にすることができる。
【００３５】
（書戻し工程）
次に、図１０を参照して前記書戻処理部１９が実行する書戻し工程（図１のステップＳ５）を説明する。
この工程では、前記暗号化工程で暗号化された複数の分割領域（図９の▲１▼〜▲３▼）のデータを連結して前記読出工程で読出された選択記憶領域（ＭＡ）が復元される（ステップＳ５０１）。次いで、復元されたＭＡの読出開始位置を前記処理回数ｎに基づいてＲＡＭ４から呼出し、その位置にＭＡが書戻される（ステップＳ５０２、Ｓ５０３）。
このようなデータ解読不能化処理が、処理対象となるＨＤＤ６の全ての領域（ＯＡ）について終了するまで繰り返し実行される（ステップＳ５０４のＮＯ）。この場合、書戻し工程が終了する度に、処理回数ｎをインクリメントしてから（ステップＳ５０５）前記選択工程のステップＳ１０２に戻る。
【００３６】
（第２の実施形態）
次に、図１１乃至図１７を参照して本発明の第２の実施形態を説明する。この実施形態は、選択工程においてデータ選択用の乱数を用いて物理的に不連続な複数のセクタ（最小アクセス単位）をランダムに選択し、このデータを読出して暗号化するものである。これにより、暗号化強度が向上し、データの解読をより有効に防止することができる。なお、以下の説明においては、上記した第１の実施形態と同一の構成若しくは工程（ステップ）には同一の符号を付して詳細説明は省略する。
【００３７】
（解読不能化処理プログラムの概略構成）
まず図１１にこの実施形態に係る解読不能化処理をＰＣに実行させるコンピュータプログラムの概略構成を示す。この解読不能化処理プログラム１３０は、所定の選択アルゴリズムを適用して解読不能化処理の対象となる記憶領域から物理的に連続していない１以上のセクタを選択し、データの読出し開始位置を特定する選択処理部３０と、特定された読出し開始位置からセクタを順次読出して連結することで選択記憶領域（ＭＡ）を生成する読出処理部３１と、分割処理部１７及び暗号化処理部１８と、暗号化されたデータを最小アクセス単位ずつ前記読出開始位置に書戻す書戻処理部３２と備えている。
また、この解読不能化処理プログラム１３０は、上記第１の実施形態と同様に、処理対象となるＰＣにＦＤなどの記録媒体を通じて導入され、ＰＣのハードウェア若しくはオペレーションシステム（ＯＳ）と協同して上記の各機能を発揮することで、解読不能化処理を実行させるものである。この実施形態では、ＰＣのＲＡＭ等に読出開始位置テーブル３３を生成し、このテーブル３３に最小アクセス単位であるセクタ毎に未選択・読出済・暗号化済のフラグを立てて処理のステータスを管理するように構成している。このような解読不能化処理プログラム１３０によって実行される解読不能化処理のうち、本実施形態において特徴的な選択工程、読出工程及び書戻工程について順に説明する。
【００３８】
（選択工程）
まず、図１２及び図１３を参照して、前記選択処理部３０が行う選択工程の具体的な処理を説明する。この実施形態における選択工程では、解読不能化対象領域（ＯＡ）のサイズを最小アクセス単位で除算してアクセスカウントを算出し（ステップＳ１１０）、次いで予め設定されている最大カウントを呼出す（ステップＳ１１１）。ここで、最大カウントを呼出すのは、前記読出開始位置テーブル３３のサイズを限定する必要があるからである。呼出した最大カウントが前記算出したアクセスカウントより小さい場合は（ステップＳ１１２のＹＥＳ）、アクセスカウントを最大カウントの単位で分割した後に、ＰＣのシステムタイムに基づいて乱数Ａ'を生成する（ステップＳ１１３、Ｓ１１４）。一方、最大カウントがアクセスカウント以上である場合は（ステップＳ１１２のＮＯ）、１〜アクセスカウントの範囲内で乱数Ａ'を生成する（ステップＳ１１５）。
【００３９】
このようにして生成した乱数Ａ'について、上記第１の実施形態と同様に１〜ｎ回目の累計値を算出し、この累計値が前記アクセスカウントより大きいかを判別する（ステップＳ１１６、Ｓ１１７）。アクセスカウントが累計値以上である場合は（ステップＳ１１６のＹＥＳ）、生成された乱数Ａ'をｎ回目の実暗号化数と決定する（ステップＳ１１８）。一方、アクセスカウントが累計値未満である場合は（ステップＳ１１７のＮＯ）、アクセスカウントから「ｎ−１回目までのＡ'の累計値」を減算した値をｎ回目の実暗号化数と決定する（ステップＳ１１９）。
【００４０】
次いで、再度アクセスカウントと最大カウント数とを比較し、アクセスカウントが最大カウントを超えている場合は（ステップＳ１２０のＹＥＳ）、１〜最大カウントの範囲でデータ読出し用の乱数Ｄを生成する（ステップＳ１２１）。また、アクセスカウントが最大カウント以下である場合は（ステップＳ１２０のＮＯ）、１〜アクセスカウントの範囲で乱数Ｄを生成する（ステップＳ１２２）。次いで、生成された乱数Ｄを用いて、前記読出開始位置テーブル３３の処理ステータスが「未（＝未選択）」のデータ群の先頭からＤ番目のデータをｒｎ回目の読出開始位置と特定する（ステップＳ１２３）。ここでｒｎは、このルーチンにおける処理回数を示す。例えば、図１３（ａ）に示すように、１回目の選択処理の場合はアクセスカウント（１〜１５）の全ての処理ステータスが「未」であるので、乱数Ｄとして１０が生成されると、先頭から１０番目のセクタ（最小アクセス単位）が１回目の読出開始位置と特定される。読出開始位置と特定されたセクタは、「読（＝読出済）」のフラグが設定されて前記読出開始位置テーブル３３の処理ステータスが更新される（ステップＳ１２４）。このような読出開始位置の特定を前記ステップＳ１１８で決定された実暗号化数分（乱数Ａ'個分）の読出しが完了するまで繰り返す（ステップＳ１２５）。なお、乱数Ｄが連続した値で生成された場合には、第１の実施形態と同様に、物理的に連続するデータ（セクタ）が選択されることもある。
【００４１】
実暗号化数分の処理が完了していない場合は（ステップＳ１２５のＮＯ）、前記処理回数ｒｎのｎに１を加算し、乱数Ｄを生成する上限（アクセスカウント若しくは最大カウント）から１を減算して処理を繰り返す（ステップＳ１２６、Ｓ１２７）。乱数Ｄは、１回の読出処理が完了する度に読出し可能なアクセスカウント（最大カウント）が減っていくことになるので、乱数Ｄを生成する範囲も限定していく必要があるからである。例えば、図１３（ｂ）は３回の読出しが完了した状態を示しており、この場合の乱数Ｄが生成される範囲は１〜１２に限定される。
【００４２】
（読出工程）
次に、前記読出処理部３１によって実行される読出工程を図１４を参照して説明する。この工程では、まず前記選択工程で特定された読出開始位置（Ｄ番目）のセクタを最小アクセス単位ずつ読出して記憶する（ステップＳ２１０）。読出したデータ（セクタ）は、図１５に示すように、順次連結して連続データを作成する（ステップＳ２１１）。この連結処理は、前記読出開始位置とは関係なく読出した順で連結して行く。作成された連続データが選択記憶領域（ＭＡ）となる。このようなデータの読出し及び連結の処理を前記実暗号化数分（乱数Ａ'、図示の例では３）が完了するまで繰り返す（ステップＳ２１２）。データの読出しが完了すると、第１の実施形態と同様に、分割処理部１７及び暗号化処理部１８によって上記連続データ（ＭＡ）の分割及び各論理ブロックの暗号化が行われる。
【００４３】
（書戻工程）
次に、前記書戻処理部３２が行う書戻工程を図１６及び図１７を参照して説明する。この工程では、まず前記読出開始位置テーブル３３に「選択済」のフラグが設定してあるデータ位置を取得し、これに基づいて読出開始位置を算出する（ステップＳ５１０）。次いで、暗号化済みの前記連続データを最小アクセス単位（セクタ）に分割し（ステップＳ５１１）、図１７に示すように前記算出した読出開始位置に書戻す（ステップＳ５１２）。この時、連続データの先頭に位置するセクタから読出開始位置に順次書戻すため、各セクタを読出した位置と書戻す位置とが一致しない場合もあり得る。次いで、書戻したデータについて前記読出開始位置テーブル３３の処理ステータスを「暗号化済」に更新する（ステップＳ５１３）。暗号化済のフラグが付されたデータは、前記読出済のデータと同様に、前記選択工程における選択対象データから除外される（図１２のステップＳ１２３参照）。
【００４４】
このような書戻処理を、連続データの全てについて繰り返す（ステップＳ５１４）。そして、解読不能化処理領域（ＯＡ）に未処理の領域がある場合には（ステップＳ５１５のＮＯ）、処理回数ｎに１を加算して前記選択工程（図１２）のステップＳ１１１に戻る（ステップＳ５１６）。全ての領域について上記の処理（ステップＳ１１０〜Ｓ５１４）が完了し、前記読出開始位置テーブル３３の処理ステータスが「暗号化済」になった時点この解読不能化処理を終了する（ステップＳ５１５のＹＥＳ）。
【００４５】
（変形例）
なお、この発明は上記の実施形態に限定されるものではなく、発明の要旨を変更しない範囲で種々変形可能である。
【００４６】
例えば、上記実施形態においては、記憶装置としてＰＣのＨＤＤを例示したが、カード型、カートリッジ型、外付け型等の種々のＨＤＤやリムーバブルディスクについて上記した処理方法を実行することが可能である。また、スタンドアロンの記憶装置だけでなく、１台の管理者用サーバに複数のユーザ端末が接続されたＬＡＮ等のネットワーク上で、管理者用サーバに本発明に係るシステムを導入して、サーバから遠隔操作で複数のユーザ端末のＨＤＤデータの解読不能化処理を行うようにしても良い。この場合には、前記選択工程（図１のステップＳ１）で、まずネットワークに接続された複数のユーザ端末から解読不能化処理を行う端末を選択する。次いで、その端末のハードディスクから任意の記憶領域を選択するようにする。これにより、少ない人員で解読不能化処理を集中的に行うことができ、処理に要する時間・コストを低減できる。
【００４７】
また、分割工程若しくは暗号化工程における何れのアルゴリズムも、上記したシステムタイム以外に、処理対象のＰＣ１の識別情報やこのＰＣ１を利用するユーザの属性情報若しくはＰＣ１を操作するオペレータの属性情報の少なくとも１以上を含む鍵情報を取得して生成することもできる。具体的には、解読不能化処理の初期画面上で入力されたオペレータの識別情報（社員ＩＤ・生年月日、パスワード等）や、ＰＣ１に接続されたカードリーダに挿入されたＩＣカードの識別情報、ＰＣ１の製造番号、資産登録番号、使用しているユーザの識別情報等などのに基づいてアルゴリズムを生成することもできる。また、これらを複数組み合わせても良い。さらに、分割アルゴリズムと暗号化アルゴリズムとを異なる鍵情報に基いて生成することが好ましい。これにより、アルゴリズムがより複雑になり、解読がより困難になる。
【００４８】
【発明の効果】
以上説明したように、本発明によれば、ＨＤＤ等の記憶領域に記憶されたデータを低コストで迅速・確実に解読不可能にすることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態の全体処理工程を示すフローチャート及び模式図。
【図２】本実施形態を説明する用語の相互関係を模式的に示す図。
【図３】本発明の一実施形態に係る解読不能化処理システムの概略構成を示すブロック構成図。
【図４】選択工程の具体的な処理を示すフローチャート。
【図５】同、模式図。
【図６】読出工程の具体的な処理を示すフローチャート。
【図７】同、模式図。
【図８】分割工程及び暗号化工程の具体的な処理を示すフローチャート。
【図９】同、模式図。
【図１０】書戻工程の具体的な処理を示すフローチャート。
【図１１】本発明の第２の実施形態に係る解読不能化処理プログラムの概略構成を示すブロック図。
【図１２】同、選択工程の具体的な処理を示すフローチャート。
【図１３】同、模式図。
【図１４】同、読出工程の具体的な処理を示すフローチャート。
【図１５】同、連結処理を説明するための模式図。
【図１６】同、書戻工程の具体的な処理を示すフローチャート。
【図１７】同、書戻処理を説明するための模式図。
【符号の説明】
１…コンピュータ（ＰＣ）
６…ハードディスク（ＨＤＤ）
１１…記録媒体
１３…解読不能化処理プログラム
１５…選択処理部
１６…読出処理部
１７…分割処理部
１８…暗号化処理部
１９…書戻処理部
３０…選択処理部
３１…読出処理部
３２…書戻処理部
３３…読出開始位置テーブル
１３０…解読不能化処理プログラム
【図１】
2004199229.tif 000003
【図２】
2004199229.tif 000004
【図３】
2004199229.tif 000005
【図４】
2004199229.tif 000006
【図５】
2004199229.tif 000007
【図６】
2004199229.tif 000008
【図７】
2004199229.tif 000009
【図８】
2004199229.tif 000010
【図９】
2004199229.tif 000011
【図１０】
2004199229.tif 000012
【図１１】
2004199229.tif 000013
【図１２】
2004199229.tif 000014
【図１３】
2004199229.tif 000015
【図１４】
2004199229.tif 000016
【図１５】
2004199229.tif 000017
【図１６】
2004199229.tif 000018
【図１７】
2004199229.tif 000019