JP2004199229A - Method for disabling decryption of data stored in storage device and computer program - Google Patents

Method for disabling decryption of data stored in storage device and computer program Download PDF

Info

Publication number
JP2004199229A
JP2004199229A JP2002364794A JP2002364794A JP2004199229A JP 2004199229 A JP2004199229 A JP 2004199229A JP 2002364794 A JP2002364794 A JP 2002364794A JP 2002364794 A JP2002364794 A JP 2002364794A JP 2004199229 A JP2004199229 A JP 2004199229A
Authority
JP
Japan
Prior art keywords
data
area
reading
encryption
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002364794A
Other languages
Japanese (ja)
Inventor
Yasuo Dobashi
康雄 土橋
Teru Nishikata
輝 西方
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SAKURA K C S KK
Original Assignee
SAKURA K C S KK
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SAKURA K C S KK filed Critical SAKURA K C S KK
Priority to JP2002364794A priority Critical patent/JP2004199229A/en
Publication of JP2004199229A publication Critical patent/JP2004199229A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To inexpensively and quickly disable the decryption of privacy data or the like, not depending on the physical destruction of an HDD or the like, and to surely prevent the original data from being specified and decoded. <P>SOLUTION: This computer program for disabling the decryption of data stored in a storage device comprises a data area selecting process for selecting one or more data area for executing processing to disable the decryption of data, a reading process for reading one or more storage areas by the minimum access units being the target of decryption disabling processing from the selected data area, a dividing process for dividing one or more read storage areas into a plurality of logical blocks, an encryption process for encrypting the data included in the plurality of divided logical blocks and a storage area rewriting process for rewriting the encrypted storage area to the read position. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【産業上の利用分野】
本発明は、コンピュータや各種の記録媒体等を廃棄する際に、コンピュータのハードディスク等の記憶装置に記録されたデータを解読不能にする方法及びコンピュータプログラムに関する。
【0002】
【従来の技術】
従来、企業等では、不要になったコンピュータ(以下「PC」と言う)を廃棄する際に、ハードディスク(以下「HDD」と言う)に記録された機密データの漏洩や盗用を防止するため、HDDを物理的に破壊して読み出せなくすることが行われている。また、このような物理的な破壊は時間とコストがかかることから、以下に示す特許文献1及び2のように、コンピュータプログラムを利用した論理的な手法によってHDD等のデータの解読を不可能にすることも提案されている。
【0003】
【特許文献1】
特開平5−53891号公報。
【0004】
【特許文献2】
特開2001−92719号公報。
【0005】
これらの特許文献には、機密データを記憶したファイルや記憶領域に数字の羅列や空白などの無意味なデータを一杯に書き込んで、第三者が機密データを読出せないようにする技術が開示されている。
【0006】
【発明が解決しようとする課題】
しかし、上述の論理的なデータ破壊方法では、元のデータ上に別のデータを上書きするものに過ぎないため、なんらかの方法でこの上書きされたデータを特定することができれば、これを用いて元のデータを復元することが可能である。従って、これにより機密データが解読されてしまう恐れがある。
【0007】
そのため、時間やコストがかかっても確実にデータの解読を防止できるHDD等を物理的に破壊する方法が依然として採られているのが実情である。
【0008】
この発明は、このような課題に鑑みてなされたものであり、記憶されたデータをHDD等の物理的破壊によらず低コストで迅速に解読不可能にすると共に、元のデータを特定して解読することを確実に防止できる方法及びコンピュータプログラムを提供することを目的とする。
【0009】
【課題を解決するための手段】
本発明の第1の主要な観点によれば、データの書換えが可能な記憶装置に記憶されたデータを解読不能にする方法であって、データの解読を不能にする処理を行う1以上のデータ領域を選択するデータ領域選択工程と、選択したデータ領域から、解読不能化処理の対象となる最少アクセス単位の1以上の記憶領域を読み出す読出工程と、読み出した1以上の記憶領域を複数の論理ブロックに分割する分割工程と、分割した複数の論理ブロックに含まれるデータを夫々暗号化する暗号化工程と、暗号化された記憶領域を前記読み出した位置に書き戻す記憶領域書戻工程とを備えたことを特徴とする方法が提供される。
【0010】
このような構成によれば、記録媒体に記録されたデータを論理的に解読不能にすることができる。このための方法として、データ領域を最小単位に分割し、分割された各々の領域を任意の異なるアルゴリズムにより各々暗号化するという処理を採る。このような領域の選択及び暗号化アルゴリズムの選択は、乱数等を使って極めて不規則に実行することで、後から、それぞれの領域及びアルゴリズムを特定して元のデータに複合化し元の位置に戻すという作業は実質的に不可能になる。これにより、第三者に限らず、PCに対して解読不能化処理を実行したオペレータや管理者、プログラマであっても暗号化されたデータを解読することは実質的に不可能となり、情報の盗用・漏洩を有効に防止できる。
【0011】
また、これにより、HDD等を物理的に破壊しない論理的な手法によっても元のデータを完全に読めなくすることができるから、機密データの解読不能化処理を低コストで迅速に実行できる。
【0012】
また、本発明の第2の主要な観点によれば、コンピュータシステムに、データの書換えが可能な記憶装置に記憶されたデータを解読不能にする処理を行わせるためのコンピュータプログラムであって、データの解読を不能にする処理を行う1以上のデータ領域を選択するデータ領域選択機能と、選択したデータ領域から、解読不能化処理の対象となる最少アクセス単位の1以上の記憶領域を読み出す記憶領域読出機能と、読み出した1以上の記憶領域を複数の論理ブロックに分割する記憶領域分割機能と、分割した複数の論理ブロックに含まれるデータを夫々暗号化するデータ暗号化機能と、暗号化された論理ブロックのデータを前記読み出した記憶領域の位置に書き戻す書戻機能とを備えたことを特徴とするコンピュータプログラムが提供される。
【0013】
このような構成によれば、上記した第1の主要な観点における方法をコンピュータシステムを使って好適に実行させることができるコンピュータプログラムを得ることができる。
【0014】
また、本発明の第3の主要な観点によれば、データの書換えが可能な記憶装置に記憶されたデータを解読不能にするシステムであって、データの解読を不能にする処理を行う1以上のデータ領域を選択するデータ領域選択手段と、選択したデータ領域から、解読不能化処理の対象となる最少アクセス単位の1以上の記憶領域を読み出す記憶領域読出手段と、読み出した1以上の記憶領域を複数の論理ブロックに分割する論理ブロック分割手段と、分割した複数の論理ブロックに含まれるデータを夫々暗号化するデータ暗号化手段と、暗号化された記憶領域を前記読み出したデータ領域の位置に書き戻す記憶領域書戻手段とを備えたことを特徴とするシステムが提供される。
【0015】
このような構成によれば、上記した第1の主要な観点における方法を好適に実施できるシステムを得ることができる。
【0016】
なお、この発明の他の特徴と顕著な効果は、次の発明の実施の形態の項の記載と添付した図面とを参照することで、より明確に理解される。
【0017】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づき説明する。以下においては、記憶装置としてPCに内蔵されたHDDを例に取り、このHDDに記録されたデータを暗号化して解読不可能にする処理を説明する。
【0018】
(全体処理工程)
図1は本発明の一実施形態に係るデータ解読不能化処理の全体工程を示すフローチャート及び各工程における処理の模式図である。
【0019】
まず、データの解読不能化処理の対象としてコンピュータに内蔵されたHDDを選択し、このHDDから任意の記憶領域を選択する(ステップS1)。以下の説明においては、解読不能化処理の対象領域を「OA」、選択された記憶領域を「MA」と表示する。次に、選択されたMAに含まれる1以上のセクタ(データ)を読出す(ステップS2)。読み出した4つのセクタに分割アルゴリズムを適用して任意のサイズの論理ブロックに分割する(ステップS3)。次いで、分割された論理ブロックに暗号化アルゴリズムを適用してこのブロックに含まれるデータを暗号化する(ステップS4)。この分割工程及び暗号化工程は、前記ステップS2で読み出された4つのセクタに含まれる全てのデータを暗号化するまで繰り返される。この実施例では、読み出された4つのセクタをサイズの異なる3つの論理ブロックに分割して暗号化している。全てのデータが暗号化されると、前記ステップS2で読み出したHDDの元の位置にセクタを書き戻す(ステップS5)。このような解読不能化の処理(ステップS1〜S5)をOAの全てについて繰り返し実行することで、HDDに記録されたデータの解読を不可能にすることができる。また、この実施形態では、物理的に連続する複数(図示の例では4つ)のデータを読み出すことで、データの選択や読出しの処理を迅速に実行できるものである。なお、以下の説明においては、HDDのデータを暗号化して解読不能にするための上記した一連の工程を「データ解読不能化」と称し、所定の暗号化アルゴリズムを適用してデータを暗号化する特定の処理(上記ステップS4)を「暗号化」と称することにする。
【0020】
(用語の説明)
ここで、本実施形態の説明に用いる用語の意味について簡単に説明する。なお、各用語の相互関係を図2に模式的に示す。
最小アクセス単位:解読不能化処理を行う記憶媒体(HDD、FD、メモリカード等)にハードウェアがアクセスするための最小データ領域を意味する。最小アクセス単位の実際のサイズは記憶媒体の種別やハードウェアの製造者等によって異なる。記憶媒体がHDDであれば最少アクセス単位はセクタであり、そのサイズは本実施形態では後述するように4バイトとする。前記選択工程(図1のステップS1)で選択された最小アクセス単位の数が実暗号化数である。また、1回の読出工程(図1のステップS2)で読み出される最小アクセス単位の数が最小暗号化数である。
最小暗号化単位:解読不能化処理を行う上で必要とする最小データ量を意味する。この最小暗号化単位の実際のサイズは暗号化ロジック等によって異なる。 アクセスカウント:OAのデータ量を前記最小アクセス単位で除算したもの(端数は切り上げ)を意味する。OAのデータ量が大きく最小アクセス単位が小さい場合は、このアクセスカウントが大きな数値になり、処理の高速化等の点で好ましくない。そのため、本実施形態では、予め設定された最大カウントまでを1つの領域として扱えるようにする。
分割領域:前記分割工程(図1のステップS3)でMAが複数の論理ブロックに分割された場合の、各論理ブロックに含まれるデータ領域を意味する。分割領域のサイズは、前記最小暗号化単位以上に設定される。
【0021】
(ハードウェア及びプログラムの概略構成)
図3に、図1で説明した処理を実行するためのPCのハードウェア及びプログラムの概略構成を示す。
符号1で示すのは汎用のPCであり、このPC1に内蔵されたCPU2にはバス3を介してRAM4、ROM5、HDD(記憶装置)6及び入出力インタフェース(I/F)7が接続されている。入出力I/F7には、CRTディスプレイ等の出力部8、キーボードやマウス等の入力部9、モデム等の通信部10及びFDやCD−ROMなどのリムーバブル記録媒体11用のドライブ12が夫々接続されている。ユーザによって入力部9が操作されて指令が入力されることで、CPU2がROM5やHDD6に格納された所定のプログラムをRAM4上に呼出してこのプログラムに従った処理を実行するように構成されている。
【0022】
前記PC1に解読不能化処理を実行させるコンピュータプログラム13は、処理対象となるPC1にFDやCD−ROMなどの記録媒体11を通じて導入され、PC1の上記ハードウェア若しくはオペレーションシステム(OS)と協同して下記の各機能を発揮することで、解読不能化処理を実行させるものである。なお、解読不能化処理は、ROM5やHDD6に格納されたコンピュータプログラムによって他の記憶装置(記憶媒体)に対して行うことができる。この場合には、PC1が解読不能化処理装置を構成する。
【0023】
この解読不能化処理プログラム13は、データ解読不能化の対象とするPC1のHDD(OA)6若しくは記憶領域(MA)を選択する選択処理部15と、MAに含まれる1以上のセクタ(データ)を読出す読出処理部16と、読出したセクタに分割アルゴリズムを適用して任意のサイズの論理ブロックに分割する分割処理部17と、分割された論理ブロックに暗号化プログラムを適用して各ブロックに含まれるデータを暗号化する暗号化処理部18と、当該データ(セクタ)を読出したHDD6の元の位置に書き戻す書戻処理部19とをPC1に実行させるものである。
【0024】
ここで、前記分割処理部17及び暗号化処理部18は、PC1に内蔵された計時機能による時刻(システムタイム)を利用して分割用若しくは暗号化用の乱数を発生させ、これらの乱数に基づいて処理を実行する度に異なるアルゴリズムを生成するように構成されている。このシステムタイムは、請求項7及び8の「鍵情報」に相当するものである。アルゴリズムの種別としては、MD5(Message Digest5)、SHA(Secure Hash Algorithm)、DES(Data Encryption Standard:データ暗号化標準)、トリプルDES、DESX(DES eXtension)、IDEA(International Data Encryption Algorithm)、RC2、RC4、RC5、FEAL、スキップジャック、RSA等の従来周知の種々のものをそのまま若しくは適宜応用して採用できる。
【0025】
上記解読不能化処理プログラム13は、処理対象のPC1に接続されている外付けのHDDや、OSの起動が可能な外部記憶装置にも導入可能である。本プログラムを導入した後、PC1を再起動することで解読不能化処理を実行できることになる。また、本プログラムの導入に際して、パスワードやICカード等の外付けのセキュリティシステムを利用した操作者認証を用いて操作権限を制限することもできる。
【0026】
(各工程の説明)
次に、図1に示した各工程における具体的な処理を図4〜図10を参照して説明する。これらの処理は、上記したプログラム13の各機能部15〜19がドライブ12を介してCPU2によってRAM4上に順次呼出されて実行されるものである。
【0027】
(選択工程)
まず、図4及び図5を参照して前記選択処理部15が実行する選択工程(図1のステップS1)の処理を説明する。この工程では、まず、解読不能化処理対象データ(OA)のサイズを最小アクセス単位で除算してアクセスカウントが算出される(端数切り上げ)(ステップS101)。例えば、図5に示すように、OAのサイズが100バイト、最小アクセス単位が4バイトの場合、アクセスカウントは100÷4=25となる。
【0028】
次いで、PC1のシステムタイム(時刻情報)に基づいて乱数Aを生成する(ステップS102)。この乱数Aが実暗号化数であり、「最小暗号化単位」以上で「アクセスカウント」以下までの範囲に設定される。例えば、最小暗号化単位が15に設定される場合、アクセスカウントは25なので、乱数A、すなわち実暗号化数の生成範囲は15≦A≦25となる。
【0029】
生成された乱数Aは、選択工程が実行される度に累計値が算出される(ステップS103)。乱数Aの累計値がアクセスカウント以下である場合は(ステップS104のYES)、生成された乱数Aをそのままn回目の実暗号化数と決定する(ステップS105)。一方、乱数Aの累計値がアクセスカウントをオーバーする場合は(ステップS104のNO)、累計値がアクセスカウントと等しくなるようにn回目(最後)の乱数A(実暗号化数)を調節する。例えば、アクセスカウントが25の場合、1回目の選択工程における実暗号化数が17、2回目の選択工程における実暗号化数が12であれば、累計が29になりアクセスカウントを超えてしまう。そこで、アクセスカウント(25)から前回までの乱数Aの累計値(17)を減算した値(8)を2回目の実暗号化数と決定する(ステップS106)。なお、このようにして実暗号化数を調節した結果、選択工程における最終データのサイズが最小アクセス単位(4バイト)よりも小さくなることもある。
【0030】
(読出工程)
次に、図6及び図7を参照して前記読出処理部16が実行する読出工程(図1のステップS2)を説明する。まず、最初に読出処理を行う場合には(ステップS201のYES)、選択された記憶領域(MA)の先頭位置が読出し開始位置と特定される(ステップS202)。また、2回目以降の読出処理においては(ステップ201のNO)、図7に示すように、前回(n−1)の読出終了位置の次の位置が読出開始位置と特定される(ステップ203)。特定された読出開始位置は、処理回数nに関連付けて前記RAM4等に記録される(ステップS204)。次いで、特定された読出開始位置から、前記選択工程で決定された実暗号化数(乱数A:15〜25)に前記最小アクセス単位を乗算した分の処理対象領域MAが読出される(ステップS205)。この実施形態では、物理的に連続する複数のセクタを読出すことで、読出しに要する時間を短縮するようにしている。
【0031】
(分割工程及び暗号化工程)
次に、図8及び図9を参照して前記分割処理部17が行う分割工程と前記暗号化処理部18が行う暗号化工程(図1のステップS3、S4)の処理を説明する。
まず分割工程(ステップS301〜307)では、PC1のシステムタイムに基づいて分割用の乱数Bが生成される(ステップS301)。この乱数Bは、最少暗号化数(単位)以上で前記読出工程で読み出された処理対象領域(MA)の範囲に設定される。最初の分割処理の場合には(「c:n=1」ステップS302のYES)、生成された乱数Bのサイズがそのまま分割領域として設定される(ステップS303)。2回目以降の分割処理においては(「c:n≠1」ステップS302のNO)、乱数Bの累計値が算出され(ステップS304)、次いでこの累計値と前記処理対象領域(MA)のサイズとの差(R)が算出される(ステップS305)。算出された差(R)が最小暗号化単位よりも大きい場合、すなわち累計値がMA以下である場合は(ステップS306のNO)、最初の分割時と同様に、生成された乱数Bのサイズがc回目の分割領域サイズとして設定される(ステップS303)。一方、算出された差(R)が最小暗号化単位未満である場合、すなわち累計値がMAのサイズを超える場合は(ステップS306のYES)、MAの最終データまでのサイズがc回目の分割領域サイズとして設定される(ステップS307)。なお、前記cは、分割・暗号化工程の処理ルーチン内における回数を意味し、図3、図5等に示す解読不能化処理の回数nとは区別される。
【0032】
分割領域の具体的な設定方法を以下に示す。
MAのサイズが100バイト、最小暗号化単位が8バイトの場合
1回目の乱数Bが40で生成されると、そのまま40を1回目の分割領域サイズに設定する(ステップS302、S303)。
2回目の乱数Bが42で生成されると、乱数Bの累計は82、MAのサイズとの差は18であるので、そのまま42を2回目の分割領域サイズに設定する(ステップS302、S304〜S306、S303)。
3回目の乱数Bが11で生成されると、乱数Bの累計は93、MAのサイズとの差は7になる。この場合、3回目の差7は最小暗号化単位(8バイト)未満であるので、3回目の分割領域は2回目までの累計の差である18バイトに設定される(ステップS302、S304〜S307)。また、3回目の乱数Bが50であると、乱数Bの累計は132となり、差が−32(8バイト未満)になる。そのため、この場合も3回目の分割領域は2回目までの累計の差である18バイトに設定される。
【0033】
上記のようにして設定された分割領域サイズに従って、MAが図9に示すような異なるサイズの3つのブロックに分割される。この実施形態では、セクタのサイズよりも大きい乱数Bを少なくとも1回以上生成することで、少なくとも1以上の論理ブロック(図9の▲1▼、▲2▼)が読出した複数のセクタの境界を跨ぐようにしている。これにより、セクタ単位で暗号化する場合に比べてデータを解読されるおそれが極端に低くなり、データの漏洩をより有効に防止できる。
【0034】
次に、暗号化工程では、PC1のシステムタイムに基づいて暗号化のための乱数Cが生成され、前記分割工程で設定された分割領域に対して暗号化処理が行われる(ステップS401)。この場合の乱数Cには、上記した乱数A、Bのように範囲は設定されていない。
上記した分割・暗号化工程が、前記選択工程で選択されたMAの全ての領域について終了するまで繰返し実行される(ステップS402のNO)。この時、処理回数cが1ずつ加算されていく(ステップS403)。この実施形態では、図9に示すように、MAがサイズが異なる▲1▼〜▲3▼の3つの領域に分割され、夫々異なる乱数Cに基づくアルゴリズムによって暗号化されている。
このように乱数Bや乱数Cは処理の都度生成されるため、第三者は勿論のこと、PC1を操作しているオペレータ等であっても分割及び暗号化のパターンを知徳することはできない。仮に1の分割領域の暗号化パターン(乱数C等)を解析して複合化できたとしても、他の分割領域は異なる暗号化キーで暗号化されているため、暗号化パターンを再度解析して複合化しなければならない。このような作業を全ての分割領域について行うことは事実上不可能であることに加え、分割領域の大きさ(データ容量、単位)も不規則であるため、解読できた一の暗号化パターンを適用する領域を特定することも困難となる。したがって、上記した分割工程及び暗号化工程を繰り返すことで、MAを不可逆的に暗号化することができ、データの解読を不可能にすることができる。
【0035】
(書戻し工程)
次に、図10を参照して前記書戻処理部19が実行する書戻し工程(図1のステップS5)を説明する。
この工程では、前記暗号化工程で暗号化された複数の分割領域(図9の▲1▼〜▲3▼)のデータを連結して前記読出工程で読出された選択記憶領域(MA)が復元される(ステップS501)。次いで、復元されたMAの読出開始位置を前記処理回数nに基づいてRAM4から呼出し、その位置にMAが書戻される(ステップS502、S503)。
このようなデータ解読不能化処理が、処理対象となるHDD6の全ての領域(OA)について終了するまで繰り返し実行される(ステップS504のNO)。この場合、書戻し工程が終了する度に、処理回数nをインクリメントしてから(ステップS505)前記選択工程のステップS102に戻る。
【0036】
(第2の実施形態)
次に、図11乃至図17を参照して本発明の第2の実施形態を説明する。この実施形態は、選択工程においてデータ選択用の乱数を用いて物理的に不連続な複数のセクタ(最小アクセス単位)をランダムに選択し、このデータを読出して暗号化するものである。これにより、暗号化強度が向上し、データの解読をより有効に防止することができる。なお、以下の説明においては、上記した第1の実施形態と同一の構成若しくは工程(ステップ)には同一の符号を付して詳細説明は省略する。
【0037】
(解読不能化処理プログラムの概略構成)
まず図11にこの実施形態に係る解読不能化処理をPCに実行させるコンピュータプログラムの概略構成を示す。この解読不能化処理プログラム130は、所定の選択アルゴリズムを適用して解読不能化処理の対象となる記憶領域から物理的に連続していない1以上のセクタを選択し、データの読出し開始位置を特定する選択処理部30と、特定された読出し開始位置からセクタを順次読出して連結することで選択記憶領域(MA)を生成する読出処理部31と、分割処理部17及び暗号化処理部18と、暗号化されたデータを最小アクセス単位ずつ前記読出開始位置に書戻す書戻処理部32と備えている。
また、この解読不能化処理プログラム130は、上記第1の実施形態と同様に、処理対象となるPCにFDなどの記録媒体を通じて導入され、PCのハードウェア若しくはオペレーションシステム(OS)と協同して上記の各機能を発揮することで、解読不能化処理を実行させるものである。この実施形態では、PCのRAM等に読出開始位置テーブル33を生成し、このテーブル33に最小アクセス単位であるセクタ毎に未選択・読出済・暗号化済のフラグを立てて処理のステータスを管理するように構成している。このような解読不能化処理プログラム130によって実行される解読不能化処理のうち、本実施形態において特徴的な選択工程、読出工程及び書戻工程について順に説明する。
【0038】
(選択工程)
まず、図12及び図13を参照して、前記選択処理部30が行う選択工程の具体的な処理を説明する。この実施形態における選択工程では、解読不能化対象領域(OA)のサイズを最小アクセス単位で除算してアクセスカウントを算出し(ステップS110)、次いで予め設定されている最大カウントを呼出す(ステップS111)。ここで、最大カウントを呼出すのは、前記読出開始位置テーブル33のサイズを限定する必要があるからである。呼出した最大カウントが前記算出したアクセスカウントより小さい場合は(ステップS112のYES)、アクセスカウントを最大カウントの単位で分割した後に、PCのシステムタイムに基づいて乱数A'を生成する(ステップS113、S114)。一方、最大カウントがアクセスカウント以上である場合は(ステップS112のNO)、1〜アクセスカウントの範囲内で乱数A'を生成する(ステップS115)。
【0039】
このようにして生成した乱数A'について、上記第1の実施形態と同様に1〜n回目の累計値を算出し、この累計値が前記アクセスカウントより大きいかを判別する(ステップS116、S117)。アクセスカウントが累計値以上である場合は(ステップS116のYES)、生成された乱数A'をn回目の実暗号化数と決定する(ステップS118)。一方、アクセスカウントが累計値未満である場合は(ステップS117のNO)、アクセスカウントから「n−1回目までのA'の累計値」を減算した値をn回目の実暗号化数と決定する(ステップS119)。
【0040】
次いで、再度アクセスカウントと最大カウント数とを比較し、アクセスカウントが最大カウントを超えている場合は(ステップS120のYES)、1〜最大カウントの範囲でデータ読出し用の乱数Dを生成する(ステップS121)。また、アクセスカウントが最大カウント以下である場合は(ステップS120のNO)、1〜アクセスカウントの範囲で乱数Dを生成する(ステップS122)。次いで、生成された乱数Dを用いて、前記読出開始位置テーブル33の処理ステータスが「未(=未選択)」のデータ群の先頭からD番目のデータをr回目の読出開始位置と特定する(ステップS123)。ここでrは、このルーチンにおける処理回数を示す。例えば、図13(a)に示すように、1回目の選択処理の場合はアクセスカウント(1〜15)の全ての処理ステータスが「未」であるので、乱数Dとして10が生成されると、先頭から10番目のセクタ(最小アクセス単位)が1回目の読出開始位置と特定される。読出開始位置と特定されたセクタは、「読(=読出済)」のフラグが設定されて前記読出開始位置テーブル33の処理ステータスが更新される(ステップS124)。このような読出開始位置の特定を前記ステップS118で決定された実暗号化数分(乱数A'個分)の読出しが完了するまで繰り返す(ステップS125)。なお、乱数Dが連続した値で生成された場合には、第1の実施形態と同様に、物理的に連続するデータ(セクタ)が選択されることもある。
【0041】
実暗号化数分の処理が完了していない場合は(ステップS125のNO)、前記処理回数rのnに1を加算し、乱数Dを生成する上限(アクセスカウント若しくは最大カウント)から1を減算して処理を繰り返す(ステップS126、S127)。乱数Dは、1回の読出処理が完了する度に読出し可能なアクセスカウント(最大カウント)が減っていくことになるので、乱数Dを生成する範囲も限定していく必要があるからである。例えば、図13(b)は3回の読出しが完了した状態を示しており、この場合の乱数Dが生成される範囲は1〜12に限定される。
【0042】
(読出工程)
次に、前記読出処理部31によって実行される読出工程を図14を参照して説明する。この工程では、まず前記選択工程で特定された読出開始位置(D番目)のセクタを最小アクセス単位ずつ読出して記憶する(ステップS210)。読出したデータ(セクタ)は、図15に示すように、順次連結して連続データを作成する(ステップS211)。この連結処理は、前記読出開始位置とは関係なく読出した順で連結して行く。作成された連続データが選択記憶領域(MA)となる。このようなデータの読出し及び連結の処理を前記実暗号化数分(乱数A'、図示の例では3)が完了するまで繰り返す(ステップS212)。データの読出しが完了すると、第1の実施形態と同様に、分割処理部17及び暗号化処理部18によって上記連続データ(MA)の分割及び各論理ブロックの暗号化が行われる。
【0043】
(書戻工程)
次に、前記書戻処理部32が行う書戻工程を図16及び図17を参照して説明する。この工程では、まず前記読出開始位置テーブル33に「選択済」のフラグが設定してあるデータ位置を取得し、これに基づいて読出開始位置を算出する(ステップS510)。次いで、暗号化済みの前記連続データを最小アクセス単位(セクタ)に分割し(ステップS511)、図17に示すように前記算出した読出開始位置に書戻す(ステップS512)。この時、連続データの先頭に位置するセクタから読出開始位置に順次書戻すため、各セクタを読出した位置と書戻す位置とが一致しない場合もあり得る。次いで、書戻したデータについて前記読出開始位置テーブル33の処理ステータスを「暗号化済」に更新する(ステップS513)。暗号化済のフラグが付されたデータは、前記読出済のデータと同様に、前記選択工程における選択対象データから除外される(図12のステップS123参照)。
【0044】
このような書戻処理を、連続データの全てについて繰り返す(ステップS514)。そして、解読不能化処理領域(OA)に未処理の領域がある場合には(ステップS515のNO)、処理回数nに1を加算して前記選択工程(図12)のステップS111に戻る(ステップS516)。全ての領域について上記の処理(ステップS110〜S514)が完了し、前記読出開始位置テーブル33の処理ステータスが「暗号化済」になった時点この解読不能化処理を終了する(ステップS515のYES)。
【0045】
(変形例)
なお、この発明は上記の実施形態に限定されるものではなく、発明の要旨を変更しない範囲で種々変形可能である。
【0046】
例えば、上記実施形態においては、記憶装置としてPCのHDDを例示したが、カード型、カートリッジ型、外付け型等の種々のHDDやリムーバブルディスクについて上記した処理方法を実行することが可能である。また、スタンドアロンの記憶装置だけでなく、1台の管理者用サーバに複数のユーザ端末が接続されたLAN等のネットワーク上で、管理者用サーバに本発明に係るシステムを導入して、サーバから遠隔操作で複数のユーザ端末のHDDデータの解読不能化処理を行うようにしても良い。この場合には、前記選択工程(図1のステップS1)で、まずネットワークに接続された複数のユーザ端末から解読不能化処理を行う端末を選択する。次いで、その端末のハードディスクから任意の記憶領域を選択するようにする。これにより、少ない人員で解読不能化処理を集中的に行うことができ、処理に要する時間・コストを低減できる。
【0047】
また、分割工程若しくは暗号化工程における何れのアルゴリズムも、上記したシステムタイム以外に、処理対象のPC1の識別情報やこのPC1を利用するユーザの属性情報若しくはPC1を操作するオペレータの属性情報の少なくとも1以上を含む鍵情報を取得して生成することもできる。具体的には、解読不能化処理の初期画面上で入力されたオペレータの識別情報(社員ID・生年月日、パスワード等)や、PC1に接続されたカードリーダに挿入されたICカードの識別情報、PC1の製造番号、資産登録番号、使用しているユーザの識別情報等などのに基づいてアルゴリズムを生成することもできる。また、これらを複数組み合わせても良い。さらに、分割アルゴリズムと暗号化アルゴリズムとを異なる鍵情報に基いて生成することが好ましい。これにより、アルゴリズムがより複雑になり、解読がより困難になる。
【0048】
【発明の効果】
以上説明したように、本発明によれば、HDD等の記憶領域に記憶されたデータを低コストで迅速・確実に解読不可能にすることができる。
【図面の簡単な説明】
【図1】本発明の一実施形態の全体処理工程を示すフローチャート及び模式図。
【図2】本実施形態を説明する用語の相互関係を模式的に示す図。
【図3】本発明の一実施形態に係る解読不能化処理システムの概略構成を示すブロック構成図。
【図4】選択工程の具体的な処理を示すフローチャート。
【図5】同、模式図。
【図6】読出工程の具体的な処理を示すフローチャート。
【図7】同、模式図。
【図8】分割工程及び暗号化工程の具体的な処理を示すフローチャート。
【図9】同、模式図。
【図10】書戻工程の具体的な処理を示すフローチャート。
【図11】本発明の第2の実施形態に係る解読不能化処理プログラムの概略構成を示すブロック図。
【図12】同、選択工程の具体的な処理を示すフローチャート。
【図13】同、模式図。
【図14】同、読出工程の具体的な処理を示すフローチャート。
【図15】同、連結処理を説明するための模式図。
【図16】同、書戻工程の具体的な処理を示すフローチャート。
【図17】同、書戻処理を説明するための模式図。
【符号の説明】
1…コンピュータ(PC)
6…ハードディスク(HDD)
11…記録媒体
13…解読不能化処理プログラム
15…選択処理部
16…読出処理部
17…分割処理部
18…暗号化処理部
19…書戻処理部
30…選択処理部
31…読出処理部
32…書戻処理部
33…読出開始位置テーブル
130…解読不能化処理プログラム
[0001]
[Industrial applications]
The present invention relates to a method and a computer program for making data recorded in a storage device such as a hard disk of a computer unreadable when discarding a computer or various recording media.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, when a company or the like discards an unnecessary computer (hereinafter, referred to as “PC”), a hard disk drive (hereinafter, referred to as an “HDD”) is provided with an HDD. Is physically destroyed so that it cannot be read. Further, since such physical destruction requires time and cost, it is impossible to decipher the data of the HDD or the like by a logical method using a computer program as described in Patent Documents 1 and 2 below. It has also been suggested to do so.
[0003]
[Patent Document 1]
JP-A-5-53891.
[0004]
[Patent Document 2]
JP-A-2001-92719.
[0005]
These patent documents disclose techniques for completely writing meaningless data such as a series of numbers or blanks in a file or storage area storing confidential data so that a third party cannot read the confidential data. Have been.
[0006]
[Problems to be solved by the invention]
However, the above-described logical data destruction method merely overwrites the original data with another data, so if the overwritten data can be identified by any method, the original data can be used to restore the original data. It is possible to recover the data. Therefore, this may result in decryption of the confidential data.
[0007]
For this reason, the fact is that a method of physically destroying an HDD or the like that can surely prevent data decoding even if it takes time and cost is still employed.
[0008]
The present invention has been made in view of such a problem, and makes it impossible to quickly and at low cost decode stored data without physical destruction of an HDD or the like, and to identify original data. It is an object of the present invention to provide a method and a computer program capable of reliably preventing decryption.
[0009]
[Means for Solving the Problems]
According to a first main aspect of the present invention, there is provided a method for rendering data stored in a data rewritable storage device unreadable, wherein the method comprises the steps of: A data area selecting step of selecting an area; a reading step of reading, from the selected data area, one or more storage areas of a minimum access unit to be deciphered; A dividing step of dividing the logical blocks into blocks, an encrypting step of respectively encrypting data included in the plurality of divided logical blocks, and a storage area writeback step of writing the encrypted storage area back to the read position. A method is provided.
[0010]
According to such a configuration, data recorded on the recording medium can be logically rendered unreadable. As a method for this, a process is adopted in which the data area is divided into minimum units, and each of the divided areas is encrypted by an arbitrary different algorithm. The selection of such an area and the selection of an encryption algorithm are performed extremely irregularly using random numbers or the like, so that each area and algorithm is specified later, and the data is decrypted into the original data and the original position is determined. The task of returning is virtually impossible. This makes it virtually impossible for not only third parties but also operators, managers and programmers who have executed the deciphering process to the PC to decipher the encrypted data, and Plagiarism and leakage can be effectively prevented.
[0011]
Further, this makes it possible to completely prevent the original data from being read even by a logical method that does not physically destroy the HDD or the like, so that the deciphering process of the confidential data can be quickly executed at low cost.
[0012]
According to a second main aspect of the present invention, there is provided a computer program for causing a computer system to perform a process of making data stored in a data rewritable storage device unreadable. A data area selecting function for selecting one or more data areas for performing a process for disabling decryption, and a storage area for reading, from the selected data area, at least one storage area of a minimum access unit to be decrypted A read function, a storage area division function of dividing one or more read storage areas into a plurality of logical blocks, a data encryption function of respectively encrypting data included in the plurality of divided logical blocks, A computer program provided with a write-back function of writing data of a logical block back to the position of the read storage area It is.
[0013]
According to such a configuration, it is possible to obtain a computer program capable of suitably executing the method according to the first main aspect using a computer system.
[0014]
According to a third main aspect of the present invention, there is provided a system for disabling data stored in a data rewritable storage device, wherein one or more processes for disabling data decryption are performed. Data area selecting means for selecting one of the data areas, storage area reading means for reading, from the selected data area, one or more storage areas of a minimum access unit to be deciphered, and one or more read storage areas A plurality of logical blocks, a data encryption unit for encrypting data included in each of the plurality of divided logical blocks, and an encrypted storage area at a position of the read data area. A storage area rewriting means for rewriting.
[0015]
According to such a configuration, it is possible to obtain a system that can suitably execute the method according to the first main aspect described above.
[0016]
The other features and remarkable effects of the present invention will be more clearly understood by referring to the following description of embodiments of the invention and the accompanying drawings.
[0017]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the following, a process of encrypting data recorded in the HDD and making it unreadable will be described by taking a HDD built in the PC as an example of the storage device.
[0018]
(Overall processing steps)
FIG. 1 is a flowchart showing the overall process of the data deciphering process according to an embodiment of the present invention, and a schematic diagram of the process in each process.
[0019]
First, an HDD built in a computer is selected as a target of data deciphering processing, and an arbitrary storage area is selected from the HDD (step S1). In the following description, the target area of the decryption disable processing is displayed as “OA”, and the selected storage area is displayed as “MA”. Next, one or more sectors (data) included in the selected MA are read (step S2). A division algorithm is applied to the four read sectors to divide them into logical blocks of an arbitrary size (step S3). Next, an encryption algorithm is applied to the divided logical blocks to encrypt data included in the blocks (step S4). The dividing step and the encrypting step are repeated until all the data included in the four sectors read in step S2 are encrypted. In this embodiment, four read sectors are divided into three logical blocks having different sizes and encrypted. When all the data has been encrypted, the sector is written back to the original position of the HDD read in step S2 (step S5). By repeatedly performing such decryption disable processing (steps S1 to S5) for all OA, decryption of data recorded on the HDD can be disabled. In this embodiment, a plurality of (four in the illustrated example) data that are physically continuous can be read out, so that data selection and readout processing can be performed quickly. In the following description, the above-described series of steps for encrypting data in the HDD to make it indecryptable is referred to as “data indecryption”, and the data is encrypted by applying a predetermined encryption algorithm. The specific process (step S4) will be referred to as “encryption”.
[0020]
(Explanation of terms)
Here, the meaning of the terms used in the description of the present embodiment will be briefly described. FIG. 2 schematically shows the relationship between the terms.
Minimum access unit: A minimum data area for hardware to access a storage medium (HDD, FD, memory card, etc.) for performing decryption disabling processing. The actual size of the minimum access unit differs depending on the type of the storage medium, the manufacturer of the hardware, and the like. If the storage medium is an HDD, the minimum access unit is a sector, and its size is 4 bytes in the present embodiment as described later. The number of minimum access units selected in the selection step (step S1 in FIG. 1) is the actual encryption number. The number of minimum access units read in one reading process (step S2 in FIG. 1) is the minimum number of encryption.
Minimum encryption unit: It means the minimum data amount required for performing the decryption decompression process. The actual size of the minimum encryption unit differs depending on the encryption logic and the like. Access count: means the data amount of OA divided by the minimum access unit (fraction is rounded up). When the OA data amount is large and the minimum access unit is small, this access count becomes a large numerical value, which is not preferable in terms of speeding up processing and the like. Therefore, in the present embodiment, up to a preset maximum count can be handled as one area.
Division area: means a data area included in each logical block when the MA is divided into a plurality of logical blocks in the division step (Step S3 in FIG. 1). The size of the divided area is set to be equal to or larger than the minimum encryption unit.
[0021]
(Schematic configuration of hardware and program)
FIG. 3 shows a schematic configuration of PC hardware and a program for executing the processing described in FIG.
Reference numeral 1 denotes a general-purpose PC. A RAM 2, a ROM 5, an HDD (storage device) 6 and an input / output interface (I / F) 7 are connected to a CPU 2 built in the PC 1 via a bus 3. I have. An output unit 8 such as a CRT display, an input unit 9 such as a keyboard and a mouse, a communication unit 10 such as a modem, and a drive 12 for a removable recording medium 11 such as an FD and a CD-ROM are connected to the input / output I / F 7, respectively. Have been. When the user operates the input unit 9 to input a command, the CPU 2 calls a predetermined program stored in the ROM 5 or the HDD 6 onto the RAM 4 and executes processing according to the program. .
[0022]
The computer program 13 that causes the PC 1 to execute the deciphering process is introduced into the PC 1 to be processed through the recording medium 11 such as an FD or a CD-ROM, and cooperates with the hardware or the operation system (OS) of the PC 1. By demonstrating the following functions, the deciphering disable processing is executed. The deciphering process can be performed on another storage device (storage medium) by a computer program stored in the ROM 5 or the HDD 6. In this case, the PC 1 constitutes a decryption disable processing device.
[0023]
The deciphering processing program 13 includes a selection processing unit 15 for selecting the HDD (OA) 6 or the storage area (MA) of the PC 1 to be deciphered, and one or more sectors (data) included in the MA. A read processing unit 16, a division processing unit 17 that applies a division algorithm to the read sectors to divide the logical blocks into logical blocks of an arbitrary size, and an encryption program is applied to the divided logical blocks to apply them to each block. It causes the PC 1 to execute an encryption processing unit 18 for encrypting the included data and a write-back processing unit 19 for writing the data (sector) back to the original position of the HDD 6 from which the data was read.
[0024]
Here, the division processing unit 17 and the encryption processing unit 18 generate a random number for division or encryption using the time (system time) by a clock function built in the PC 1 and based on these random numbers. Each time the processing is executed, a different algorithm is generated. This system time corresponds to the “key information” in claims 7 and 8. The algorithm types include MD5 (Message Digest 5), SHA (Secure Hash Algorithm), DES (Data Encryption Standard), Triple DES, DESX (DES eXtension), IDEA (International Data Encryption Algorithm), RC2, Conventionally known various components such as RC4, RC5, FEAL, skipjack, RSA, etc. can be employed as they are or appropriately applied.
[0025]
The decryption disable processing program 13 can be introduced into an external HDD connected to the PC 1 to be processed or an external storage device that can start the OS. After the introduction of this program, the PC 1 can be restarted to execute the decryption disable processing. When introducing this program, the operation authority can be restricted by using operator authentication using an external security system such as a password or an IC card.
[0026]
(Description of each process)
Next, specific processing in each step shown in FIG. 1 will be described with reference to FIGS. These processes are executed by sequentially calling the function units 15 to 19 of the program 13 on the RAM 4 by the CPU 2 via the drive 12.
[0027]
(Selection process)
First, the processing of the selection step (step S1 in FIG. 1) executed by the selection processing unit 15 will be described with reference to FIGS. In this step, first, an access count is calculated by dividing the size of the decryption disable processing target data (OA) by the minimum access unit (rounded up) (step S101). For example, as shown in FIG. 5, when the size of the OA is 100 bytes and the minimum access unit is 4 bytes, the access count is 100/4 = 25.
[0028]
Next, a random number A is generated based on the system time (time information) of the PC 1 (step S102). This random number A is the actual encryption number, and is set in a range from the “minimum encryption unit” to the “access count”. For example, when the minimum encryption unit is set to 15, the access count is 25, and therefore the random number A, that is, the generation range of the actual encryption number is 15 ≦ A ≦ 25.
[0029]
For the generated random number A, a cumulative value is calculated each time the selection process is performed (step S103). When the total value of the random number A is equal to or smaller than the access count (YES in step S104), the generated random number A is determined as it is as the n-th actual encryption number (step S105). On the other hand, if the cumulative value of the random number A exceeds the access count (NO in step S104), the n-th (last) random number A (actual encryption number) is adjusted so that the cumulative value becomes equal to the access count. For example, when the access count is 25, if the actual encryption number in the first selection step is 17, and the actual encryption number in the second selection step is 12, the total number becomes 29, which exceeds the access count. Therefore, the value (8) obtained by subtracting the total value (17) of the random number A from the access count (25) to the previous time is determined as the second actual encrypted number (step S106). As a result of adjusting the actual number of encryptions in this manner, the size of the final data in the selection step may be smaller than the minimum access unit (4 bytes).
[0030]
(Reading process)
Next, a reading step (step S2 in FIG. 1) executed by the reading processing unit 16 will be described with reference to FIGS. First, when the reading process is performed first (YES in step S201), the head position of the selected storage area (MA) is specified as the reading start position (step S202). In the second and subsequent reading processes (NO in step 201), as shown in FIG. 7, the position next to the previous (n-1) reading end position is specified as the reading start position (step 203). . The specified read start position is recorded in the RAM 4 or the like in association with the number of processes n (step S204). Next, the processing target area MA obtained by multiplying the actual encryption number (random number A: 15 to 25) determined in the selection step by the minimum access unit is read from the specified read start position (step S205). ). In this embodiment, the time required for reading is shortened by reading a plurality of physically continuous sectors.
[0031]
(Division process and encryption process)
Next, with reference to FIGS. 8 and 9, a description will be given of the processing of the division step performed by the division processing unit 17 and the encryption step (steps S3 and S4 of FIG. 1) performed by the encryption processing unit 18.
First, in the division process (steps S301 to S307), a random number B for division is generated based on the system time of the PC 1 (step S301). The random number B is set in the range of the processing target area (MA) read in the reading step with the minimum encryption number (unit) or more. In the case of the first division process (“c n : N = 1 ”(YES in step S302), the size of the generated random number B is set as a divided area as it is (step S303). In the second and subsequent division processes, (“c n : N ≠ 1 ”NO in step S302), the total value of the random number B is calculated (step S304), and then the difference (R) between this total value and the size of the processing target area (MA) is calculated (step S304). S305). If the calculated difference (R) is larger than the minimum encryption unit, that is, if the cumulative value is equal to or smaller than MA (NO in step S306), the size of the generated random number B is reduced as in the first division. c n The size is set as the size of the first divided area (step S303). On the other hand, if the calculated difference (R) is less than the minimum encryption unit, that is, if the cumulative value exceeds the size of the MA (YES in step S306), the size up to the final data of the MA is c. n The size is set as the size of the first divided area (step S307). The above c n Means the number of times in the processing routine of the division / encryption process, and is distinguished from the number of times n of the deciphering disabling process shown in FIGS.
[0032]
A specific setting method of the divided area will be described below.
When the MA size is 100 bytes and the minimum encryption unit is 8 bytes
When the first random number B is generated at 40, 40 is directly set as the first divided area size (steps S302 and S303).
When the second random number B is generated at 42, the sum of the random number B is 82 and the difference from the MA size is 18, so 42 is set as it is as the second divided area size (steps S302, S304 to S304). S306, S303).
When the third random number B is generated at 11, the total of the random number B is 93, and the difference from the MA size is 7. In this case, since the third difference 7 is less than the minimum encryption unit (8 bytes), the third divided area is set to 18 bytes which is the total difference up to the second time (steps S302, S304 to S307). ). If the third random number B is 50, the total of the random numbers B is 132, and the difference is -32 (less than 8 bytes). Therefore, in this case as well, the third divided area is set to 18 bytes, which is the difference of the total up to the second divided area.
[0033]
According to the divided area size set as described above, the MA is divided into three blocks having different sizes as shown in FIG. In this embodiment, by generating a random number B larger than the size of a sector at least once or more, a boundary between a plurality of sectors read by at least one or more logical blocks ((1) and (2) in FIG. 9) is read. I straddle it. As a result, the risk of data being decrypted is extremely low as compared with the case where encryption is performed on a sector-by-sector basis, and data leakage can be more effectively prevented.
[0034]
Next, in the encryption step, a random number C for encryption is generated based on the system time of the PC 1, and encryption processing is performed on the divided area set in the division step (step S401). In this case, the range is not set for the random number C like the random numbers A and B described above.
The above-described division / encryption process is repeatedly executed until the process is completed for all the areas of the MA selected in the selection process (NO in step S402). At this time, the number of processing c n Are added one by one (step S403). In this embodiment, as shown in FIG. 9, the MA is divided into three areas (1) to (3) having different sizes, and each area is encrypted by an algorithm based on a different random number C.
As described above, since the random number B and the random number C are generated each time the process is performed, not only a third party but also an operator or the like operating the PC 1 cannot learn the division and encryption patterns. Even if the encryption pattern (random number C or the like) of one divided area can be analyzed and decrypted, the other divided areas are encrypted with different encryption keys. Must be compounded. It is practically impossible to perform such a work for all the divided areas, and the size (data capacity, unit) of the divided areas is also irregular. It is also difficult to specify a region to be applied. Therefore, by repeating the above-described division step and encryption step, the MA can be irreversibly encrypted, and the decryption of data can be made impossible.
[0035]
(Write-back process)
Next, a write-back step (step S5 in FIG. 1) executed by the write-back processing unit 19 will be described with reference to FIG.
In this step, the data of the plurality of divided areas ((1) to (3) in FIG. 9) encrypted in the encryption step are connected to restore the selected storage area (MA) read in the read step. Is performed (step S501). Next, the read start position of the restored MA is called from the RAM 4 based on the number of processes n, and the MA is written back to that position (steps S502 and S503).
Such data deciphering processing is repeatedly executed until the processing is completed for all areas (OA) of the HDD 6 to be processed (NO in step S504). In this case, every time the write-back process is completed, the number of processes n is incremented (step S505), and the process returns to step S102 of the selection process.
[0036]
(Second embodiment)
Next, a second embodiment of the present invention will be described with reference to FIGS. In this embodiment, in a selection step, a plurality of physically discontinuous sectors (minimum access units) are randomly selected using random numbers for data selection, and the data is read and encrypted. As a result, the encryption strength is improved, and data decryption can be more effectively prevented. In the following description, the same configurations or steps (steps) as those in the above-described first embodiment are denoted by the same reference numerals, and detailed description is omitted.
[0037]
(Schematic configuration of deciphering processing program)
First, FIG. 11 shows a schematic configuration of a computer program for causing a PC to execute the deciphering process according to this embodiment. The deciphering processing program 130 selects one or more sectors that are not physically continuous from a storage area to be deciphered by applying a predetermined selection algorithm, and specifies a data read start position. A read processing unit 31 for sequentially reading and connecting sectors from the specified read start position to generate a selected storage area (MA); a division processing unit 17 and an encryption processing unit 18; A write-back processing unit 32 is provided for writing the encrypted data to the read start position in units of a minimum access.
In addition, similarly to the first embodiment, the deciphering disable processing program 130 is introduced into a PC to be processed through a recording medium such as an FD, and cooperates with PC hardware or an operation system (OS). By demonstrating each of the above functions, the decryption disable processing is executed. In this embodiment, a read start position table 33 is generated in a RAM or the like of a PC, and a flag of “unselected / read / encrypted” is set for each sector, which is the minimum access unit, to manage the processing status. It is configured to Among the deciphering processes executed by the deciphering process program 130, the characteristic selecting step, reading step, and rewriting step in this embodiment will be described in order.
[0038]
(Selection process)
First, a specific process of the selection process performed by the selection processing unit 30 will be described with reference to FIGS. In the selection step according to this embodiment, the access count is calculated by dividing the size of the decryption target area (OA) by the minimum access unit (step S110), and then the preset maximum count is called (step S111). . The maximum count is called here because it is necessary to limit the size of the read start position table 33. If the called maximum count is smaller than the calculated access count (YES in step S112), after dividing the access count in units of the maximum count, a random number A ′ is generated based on the system time of the PC (step S113, S114). On the other hand, if the maximum count is equal to or greater than the access count (NO in step S112), a random number A 'is generated within a range of 1 to the access count (step S115).
[0039]
For the random number A 'generated in this manner, the first to n-th cumulative values are calculated in the same manner as in the first embodiment, and it is determined whether the cumulative value is larger than the access count (steps S116 and S117). . If the access count is equal to or greater than the total value (YES in step S116), the generated random number A 'is determined as the n-th actual encryption number (step S118). On the other hand, if the access count is less than the cumulative value (NO in step S117), a value obtained by subtracting "the cumulative value of A 'up to the (n-1) -th" from the access count is determined as the n-th actual encrypted number. (Step S119).
[0040]
Next, the access count and the maximum count are compared again, and if the access count exceeds the maximum count (YES in step S120), a random number D for data reading is generated in the range of 1 to the maximum count (step S120). S121). If the access count is equal to or less than the maximum count (NO in step S120), a random number D is generated in the range of 1 to access count (step S122). Next, by using the generated random number D, the D-th data from the head of the data group whose processing status of the read start position table 33 is “not (= unselected)” is r. n The readout start position is specified (step S123). Where r n Indicates the number of processes in this routine. For example, as shown in FIG. 13A, in the case of the first selection process, all the processing statuses of the access counts (1 to 15) are “not yet”. The tenth sector (minimum access unit) from the top is specified as the first read start position. For the sector specified as the read start position, a flag of “read (= read completed)” is set, and the processing status of the read start position table 33 is updated (step S124). Such specification of the read start position is repeated until reading of the actual encryption number (random number A ') determined in step S118 is completed (step S125). When the random number D is generated as a continuous value, physically continuous data (sector) may be selected as in the first embodiment.
[0041]
If the processing for the actual encryption number has not been completed (NO in step S125), the processing number r n Is incremented by 1 and n is subtracted from the upper limit (access count or maximum count) for generating the random number D, and the process is repeated (steps S126 and S127). This is because the readable access count (maximum count) of the random number D decreases each time one reading process is completed, and therefore, the range in which the random number D is generated needs to be limited. For example, FIG. 13B shows a state where three readings have been completed. In this case, the range in which the random number D is generated is limited to 1 to 12.
[0042]
(Reading process)
Next, a reading process performed by the reading processing unit 31 will be described with reference to FIG. In this step, first, the sector at the read start position (D-th) specified in the selection step is read and stored in minimum access units (step S210). The read data (sectors) are sequentially linked to create continuous data as shown in FIG. 15 (step S211). In this connection processing, connection is performed in the reading order regardless of the reading start position. The created continuous data becomes the selected storage area (MA). Such data reading and linking processes are repeated until the number of actual encryptions (random number A ', 3 in the illustrated example) is completed (step S212). When the data reading is completed, the division processing unit 17 and the encryption processing unit 18 divide the continuous data (MA) and encrypt each logical block, as in the first embodiment.
[0043]
(Write-back process)
Next, a write-back process performed by the write-back processing unit 32 will be described with reference to FIGS. In this step, first, a data position in which a "selected" flag is set in the read start position table 33 is obtained, and a read start position is calculated based on the data position (step S510). Next, the encrypted continuous data is divided into minimum access units (sectors) (step S511), and written back to the calculated read start position as shown in FIG. 17 (step S512). At this time, since the sector located at the head of the continuous data is sequentially rewritten to the read start position, the read position of each sector may not coincide with the rewrite position. Next, the processing status of the read back position table 33 is updated to "encrypted" for the rewritten data (step S513). The data to which the encrypted flag has been added is excluded from the selection target data in the selection step, similarly to the read data (see step S123 in FIG. 12).
[0044]
Such a write-back process is repeated for all the continuous data (step S514). If there is an unprocessed area in the decryption disable processing area (OA) (NO in step S515), 1 is added to the number of processings n, and the process returns to step S111 in the selection step (FIG. 12) (step S111). S516). When the above processing (steps S110 to S514) is completed for all the areas and the processing status of the read start position table 33 becomes "encrypted", the decryption disable processing ends (YES in step S515). .
[0045]
(Modification)
Note that the present invention is not limited to the above embodiment, and can be variously modified without changing the gist of the invention.
[0046]
For example, in the above embodiment, the HDD of the PC is exemplified as the storage device. However, the above-described processing method can be executed for various HDDs such as a card type, a cartridge type, and an external type and a removable disk. In addition to the stand-alone storage device, the system according to the present invention is introduced to the server for the administrator on a network such as a LAN in which a plurality of user terminals are connected to one server for the administrator. The process of disabling decryption of HDD data of a plurality of user terminals may be performed by remote control. In this case, in the selection step (step S1 in FIG. 1), first, a terminal to perform the deciphering disable processing is selected from a plurality of user terminals connected to the network. Next, an arbitrary storage area is selected from the hard disk of the terminal. As a result, the deciphering process can be performed intensively with a small number of personnel, and the time and cost required for the process can be reduced.
[0047]
In addition, in addition to the above-mentioned system time, at least one of the identification information of the PC 1 to be processed, the attribute information of the user who uses the PC 1, and the attribute information of the operator who operates the PC 1, other than the system time described above, Key information including the above can be obtained and generated. Specifically, the identification information of the operator (employee ID, date of birth, password, etc.) input on the initial screen of the deciphering process, and the identification information of the IC card inserted into the card reader connected to the PC 1 It is also possible to generate an algorithm based on, for example, the serial number of the PC 1, the asset registration number, the identification information of the user using the PC 1, and the like. Also, a plurality of these may be combined. Further, it is preferable that the division algorithm and the encryption algorithm are generated based on different key information. This makes the algorithm more complex and more difficult to decipher.
[0048]
【The invention's effect】
As described above, according to the present invention, data stored in a storage area such as an HDD can be quickly and reliably unreadable at low cost.
[Brief description of the drawings]
FIG. 1 is a flowchart and a schematic diagram showing an overall processing step of an embodiment of the present invention.
FIG. 2 is a diagram schematically showing the interrelation of terms for describing the embodiment.
FIG. 3 is a block diagram showing a schematic configuration of a deciphering processing system according to an embodiment of the present invention.
FIG. 4 is a flowchart showing specific processing of a selection step.
FIG. 5 is a schematic diagram of the same.
FIG. 6 is a flowchart showing a specific process of a reading step.
FIG. 7 is a schematic diagram of the same.
FIG. 8 is a flowchart showing specific processing of a division step and an encryption step.
FIG. 9 is a schematic diagram of the same.
FIG. 10 is a flowchart showing specific processing of a write-back step.
FIG. 11 is a block diagram showing a schematic configuration of a decryption disable processing program according to a second embodiment of the present invention.
FIG. 12 is a flowchart showing a specific process of the selection step.
FIG. 13 is a schematic diagram of the same.
FIG. 14 is a flowchart showing a specific process of a reading step of the same.
FIG. 15 is a schematic diagram for explaining the connection processing.
FIG. 16 is a flowchart showing specific processing of the write-back step.
FIG. 17 is a schematic diagram for explaining a write-back process.
[Explanation of symbols]
1. Computer (PC)
6 ... Hard disk (HDD)
11 Recording medium
13: Decryption disable processing program
15 Selection processing unit
16 read processing unit
17 division processing unit
18 ... Encryption processing unit
19 Write-back processing unit
30 ... Selection processing unit
31 ... Read processing unit
32 Write-back processing unit
33: Read start position table
130: Decryption disable processing program

Claims (12)

データの書換えが可能な記憶装置に記憶されたデータを解読不能にする方法であって、
データの解読を不能にする処理を行う1以上のデータ領域を選択するデータ領域選択工程と、
選択したデータ領域から、解読不能化処理の対象となる最少アクセス単位の1以上の記憶領域を読み出す読出工程と、
読み出した1以上の記憶領域を複数の論理ブロックに分割する分割工程と、
分割した複数の論理ブロックに含まれるデータを夫々暗号化する暗号化工程と、
暗号化された記憶領域を前記読み出した位置に書き戻す記憶領域書戻工程と
を備えたことを特徴とする方法。
A method for making data stored in a rewritable storage device unreadable,
A data area selecting step of selecting one or more data areas for performing a process of disabling data decoding;
A reading step of reading, from the selected data area, one or more storage areas of a minimum access unit to be subjected to the decryption disable processing;
A dividing step of dividing the read one or more storage areas into a plurality of logical blocks;
An encryption step of encrypting data included in each of the plurality of divided logical blocks,
Writing back the encrypted storage area to the read location.
請求項1記載の方法において、
前記読出工程は、前記記憶装置内の2以上の最少アクセス単位の記憶領域を読み出すものであり、前記分割工程は、読み出した2以上の最少アクセス単位の記憶領域に跨がって複数の論理ブロックに分割するものである
ことを特徴とする方法。
The method of claim 1, wherein
The reading step is for reading a storage area of two or more minimum access units in the storage device, and the dividing step is for reading a plurality of logical blocks across the read two or more storage areas of the minimum access unit. The method characterized in that it is divided into.
請求項2記載の方法において、
前記読出工程は、前記記憶装置内で物理的に連続する2以上の最少アクセス単位の記憶領域を読み出すものである
ことを特徴とする方法。
3. The method of claim 2, wherein
The method according to claim 1, wherein the reading step reads a storage area of two or more minimum access units that are physically continuous in the storage device.
請求項1記載の方法において、
前記暗号化工程は、複数の暗号化アルゴリズムを適用して論理ブロックに含まれるデータを暗号化するものである
ことを特徴とする方法。
The method of claim 1, wherein
The method according to claim 1, wherein the encrypting step encrypts data included in the logical block by applying a plurality of encryption algorithms.
請求項4記載の方法において、
前記暗号化工程は、前記複数の論理ブロック毎に異なる暗号化アルゴリズムを夫々適用して論理ブロックに含まれるデータを暗号化するものである
ことを特徴とする方法。
The method of claim 4, wherein
The method according to claim 1, wherein the encrypting step encrypts data included in a logical block by applying a different encryption algorithm to each of the plurality of logical blocks.
請求項1記載の方法において、
前記暗号化工程は、個々の論理ブロックの暗号化処理を行うためのアルゴリズムを生成する暗号化アルゴリズム生成工程を備えたことを特徴とする方法。
The method of claim 1, wherein
The method according to claim 1, wherein the encrypting step includes an encryption algorithm generating step of generating an algorithm for performing an encryption process on each logical block.
請求項1記載の方法において、
さらに、前記記憶装置の識別情報、記憶装置を利用するユーザの属性情報、記憶装置を操作するオペレータの属性情報若しくは時刻の少なくとも1以上を含む鍵情報を取得する鍵情報取得工程と、
取得した鍵情報に基いて記憶領域を複数の論理ブロックに分割するための分割アルゴリズム若しくは論理ブロックに含まれるデータを暗号化する暗号化アルゴリズムを生成するアルゴリズム生成工程と
を備えたことを特徴とする方法。
The method of claim 1, wherein
A key information acquisition step of acquiring key information including at least one of identification information of the storage device, attribute information of a user using the storage device, attribute information of an operator operating the storage device, or time;
An algorithm generating step of generating a division algorithm for dividing a storage area into a plurality of logical blocks based on the obtained key information or an encryption algorithm for encrypting data included in the logical blocks. Method.
請求項7記載の方法において、
前記アルゴリズム生成工程は、分割アルゴリズムと暗号化アルゴリズムとを異なる鍵情報に基いて生成するものである
ことを特徴とする方法。
The method of claim 7, wherein
The method according to claim 1, wherein the algorithm generating step generates the division algorithm and the encryption algorithm based on different key information.
請求項1記載の方法において、
前記データ領域選択工程は、ネットワークに接続された複数の記憶装置から解読不能化処理を行う1以上のデータ領域を選択するものである
ことを特徴とする方法。
The method of claim 1, wherein
The method according to claim 1, wherein the data area selecting step is to select one or more data areas to be decrypted from a plurality of storage devices connected to a network.
請求項1記載の方法において、
前記データ領域選択工程は、一のコンピュータに含まれる複数の記憶装置から解読不能化処理を行う1以上のデータ領域を選択するものである
ことを特徴とする方法。
The method of claim 1, wherein
The method according to claim 1, wherein the data area selecting step is to select one or more data areas to be decrypted from a plurality of storage devices included in one computer.
コンピュータシステムに、データの書換えが可能な記憶装置に記憶されたデータを解読不能にする処理を行わせるためのコンピュータプログラムであって、
データの解読を不能にする処理を行う1以上のデータ領域を選択するデータ領域選択機能と、
選択したデータ領域から、解読不能化処理の対象となる最少アクセス単位の1以上の記憶領域を読み出す記憶領域読出機能と、
読み出した1以上の記憶領域を複数の論理ブロックに分割する記憶領域分割機能と、
分割した複数の論理ブロックに含まれるデータを夫々暗号化するデータ暗号化機能と、
暗号化された論理ブロックのデータを前記読み出した記憶領域の位置に書き戻す書戻機能と
をコンピュータに実行させることを特徴とするコンピュータプログラム。
A computer program for causing a computer system to perform a process of making data stored in a data rewritable storage device unreadable,
A data area selection function for selecting one or more data areas for performing a process of disabling data decoding;
A storage area reading function for reading, from the selected data area, one or more storage areas of a minimum access unit to be subjected to decryption disable processing;
A storage area dividing function of dividing the read one or more storage areas into a plurality of logical blocks;
A data encryption function for encrypting data included in a plurality of divided logical blocks,
A computer program for causing a computer to execute a write-back function of writing back data of an encrypted logical block to the position of the read storage area.
データの書換えが可能な記憶装置に記憶されたデータを解読不能にするシステムであって、
データの解読を不能にする処理を行う1以上のデータ領域を選択するデータ領域選択手段と、
選択したデータ領域から、解読不能化処理の対象となる最少アクセス単位の1以上の記憶領域を読み出す記憶領域読出手段と、
読み出した1以上の記憶領域を複数の論理ブロックに分割する論理ブロック分割手段と、
分割した複数の論理ブロックに含まれるデータを夫々暗号化するデータ暗号化手段と、
暗号化された記憶領域を前記読み出したデータ領域の位置に書き戻す記憶領域書戻手段と
を備えたことを特徴とするシステム。
A system for making data stored in a rewritable storage device unreadable,
Data area selection means for selecting one or more data areas for performing a process of disabling data decoding;
Storage area reading means for reading, from the selected data area, one or more storage areas of a minimum access unit to be subjected to decryption disable processing;
Logical block dividing means for dividing the read one or more storage areas into a plurality of logical blocks;
Data encryption means for respectively encrypting data included in the plurality of divided logical blocks,
A storage area rewriting means for rewriting the encrypted storage area to the position of the read data area.
JP2002364794A 2002-12-17 2002-12-17 Method for disabling decryption of data stored in storage device and computer program Pending JP2004199229A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002364794A JP2004199229A (en) 2002-12-17 2002-12-17 Method for disabling decryption of data stored in storage device and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002364794A JP2004199229A (en) 2002-12-17 2002-12-17 Method for disabling decryption of data stored in storage device and computer program

Publications (1)

Publication Number Publication Date
JP2004199229A true JP2004199229A (en) 2004-07-15

Family

ID=32762514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002364794A Pending JP2004199229A (en) 2002-12-17 2002-12-17 Method for disabling decryption of data stored in storage device and computer program

Country Status (1)

Country Link
JP (1) JP2004199229A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006053721A (en) * 2004-08-11 2006-02-23 Kyocera Mita Corp Data deletion device, image forming device, data deletion method, and data deletion program
JP2007058652A (en) * 2005-08-25 2007-03-08 Nec System Technologies Ltd File destructor, information processor, information processing method, and program
JP2008003706A (en) * 2006-06-20 2008-01-10 National Institute Of Advanced Industrial & Technology Computer data protection system by complete deletion
WO2008090928A1 (en) * 2007-01-24 2008-07-31 Humming Heads Inc. Method, device, and program for converting data in storage medium
US8108693B2 (en) 2005-04-01 2012-01-31 Ged-I Ltd. Method for data storage protection and encryption
KR101601790B1 (en) 2009-09-22 2016-03-21 삼성전자주식회사 Storage system including cryptography key selection device and selection method for cryptography key
JP2017118560A (en) * 2017-02-06 2017-06-29 株式会社 エヌティーアイ Data processing device, data processing system, and data processing method

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006053721A (en) * 2004-08-11 2006-02-23 Kyocera Mita Corp Data deletion device, image forming device, data deletion method, and data deletion program
JP4606808B2 (en) * 2004-08-11 2011-01-05 京セラミタ株式会社 Data erasing apparatus, image forming apparatus, data erasing method, and data erasing program
US8108693B2 (en) 2005-04-01 2012-01-31 Ged-I Ltd. Method for data storage protection and encryption
JP2007058652A (en) * 2005-08-25 2007-03-08 Nec System Technologies Ltd File destructor, information processor, information processing method, and program
JP2008003706A (en) * 2006-06-20 2008-01-10 National Institute Of Advanced Industrial & Technology Computer data protection system by complete deletion
WO2008090928A1 (en) * 2007-01-24 2008-07-31 Humming Heads Inc. Method, device, and program for converting data in storage medium
JP4829979B2 (en) * 2007-01-24 2011-12-07 ハミングヘッズ株式会社 Data conversion method, apparatus and program on storage medium
CN101632087B (en) * 2007-01-24 2013-02-13 哈明头株式会社 Method, device, and program for converting data in storage medium
US9330712B2 (en) 2007-01-24 2016-05-03 Humming Heads Inc. Data conversion method on storage medium, apparatus and program
KR101601790B1 (en) 2009-09-22 2016-03-21 삼성전자주식회사 Storage system including cryptography key selection device and selection method for cryptography key
JP2017118560A (en) * 2017-02-06 2017-06-29 株式会社 エヌティーアイ Data processing device, data processing system, and data processing method

Similar Documents

Publication Publication Date Title
JP3678746B2 (en) Data storage device and method
US6895506B1 (en) Secure storage and execution of processor control programs by encryption and a program loader/decryption mechanism
JP4903071B2 (en) Information processing apparatus, software update method, and image processing apparatus
EP1596269A2 (en) A system and method for rendering selective presentation of documents
KR20110073349A (en) Information management system, information management method and apparatus, and encryption method and program
EP1320796A2 (en) Protect by data chunk address as encryption key
JP5389401B2 (en) Encryption device, decryption device, and encryption system
WO2007091652A1 (en) Tally information management method and management device
JP2009104380A (en) Device and method for preventing unauthorized use of robot
JP2013061843A (en) Computer software analysis system and client computer, and operation control method thereof and operation program thereof
CN110650191A (en) Data read-write method of distributed storage system
JP2004199229A (en) Method for disabling decryption of data stored in storage device and computer program
JP2007316944A (en) Data processor, data processing method and data processing program
JP3984951B2 (en) Content usage frequency limiting method, content usage terminal device, content usage system, computer program, and computer-readable recording medium
JPH09204360A (en) Method for protecting confidential data
CN110932853A (en) Key management device and key management method based on trusted module
EP4075313A1 (en) Systems and methods for purging data from memory
JP2006053721A (en) Data deletion device, image forming device, data deletion method, and data deletion program
JP2010244261A (en) Information processing apparatus and method
JP2007102661A (en) Encryption management method and encryption management program for data and file
JPH07140896A (en) File ciphering method and its device
JP6885095B2 (en) Decoding classification method, decoding classification device and decoding classification program
JP2007026105A (en) Device, method, and program for file management
JPH10340232A (en) File copy preventing device, and file reader
JP4697451B2 (en) Data input / output device, data input / output method, data input / output program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051214

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090602

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091013