JP4755851B2 - Confidentiality computer and program - Google Patents

Confidentiality computer and program Download PDF

Info

Publication number
JP4755851B2
JP4755851B2 JP2005159474A JP2005159474A JP4755851B2 JP 4755851 B2 JP4755851 B2 JP 4755851B2 JP 2005159474 A JP2005159474 A JP 2005159474A JP 2005159474 A JP2005159474 A JP 2005159474A JP 4755851 B2 JP4755851 B2 JP 4755851B2
Authority
JP
Japan
Prior art keywords
data
file
computer
specific information
device driver
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.)
Expired - Fee Related
Application number
JP2005159474A
Other languages
Japanese (ja)
Other versions
JP2006338136A (en
Inventor
秀 金内
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.)
Mitsubishi Electric Information Systems Corp
Original Assignee
Mitsubishi Electric Information Systems Corp
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 Mitsubishi Electric Information Systems Corp filed Critical Mitsubishi Electric Information Systems Corp
Priority to JP2005159474A priority Critical patent/JP4755851B2/en
Publication of JP2006338136A publication Critical patent/JP2006338136A/en
Application granted granted Critical
Publication of JP4755851B2 publication Critical patent/JP4755851B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、コンピュータ内部に保持するファイルデータの秘匿に係り、ファイルを持ち
出したコンピュータ以外のコンピュータによるデータの読み取りなどのファイル操作を防
ぐ機密保持技術に関する。
The present invention relates to secrecy of file data held in a computer, and relates to a security technique for preventing file operations such as data reading by a computer other than the computer that has taken out the file.

個人情報や知的財産などの機密情報の漏洩を防止する手段として、特許文献1及び2の
ように、リムーバブルな記録媒体の容量以上のサイズにデータを膨らませ、コピーできな
いようにする技術などが提案されている。
As a means to prevent the leakage of confidential information such as personal information and intellectual property, a technique to inflate data to a size larger than the capacity of a removable recording medium and prevent copying is proposed as in Patent Documents 1 and 2. Has been.

しかし、この方法によれば、正当な使用目的でファイルデータを保存し、持ち出すこと
も制限することになる。
However, according to this method, saving and taking out file data for proper use is also restricted.

一般に、機密情報の漏洩を防止する場合、正当な使用を阻害することなく、不正な持ち
出しを禁止する点に、技術的な困難が伴う。
特開平7−319628号公報 特開2001−155423号公報
In general, when leakage of confidential information is prevented, technical difficulties are involved in prohibiting unauthorized take-out without hindering proper use.
JP 7-319628 A JP 2001-155423 A

そこで、本発明では、特定のコンピュータから持ち出されたファイルデータを、他のコ
ンピュータで読み出すことを防ぐことにより、正当な使用に支障を与えることなく、不正
流出を防止する。
Therefore, in the present invention, by preventing file data taken out from a specific computer from being read out by another computer, unauthorized outflow is prevented without hindering proper use.

本発明に係る機密保持コンピュータは、ディスクドライブデバイスと、当該ディスクド
ライブデバイスのデバイスドライバと、当該デバイスドライバに対してファイル操作を指
示するI/Oマネージャを備えるコンピュータであって、更に以下の要素を有するフィル
タドライバを備えることを特徴とする
(1)I/Oマネージャからデバイスドライバへ送られるファイル操作指示を受信するフ
ァイル操作指示受信部
(2)受信したファイル操作指示に含まれるファンクションを判定するファンクション判
定部
(3)判定したファンクションがファイルクローズの場合に、当該コンピュータに含まれ
るハードウエアモジュールから当該モジュールの個体情報をコンピュータ固有情報として
取得し、オープン中のファイルデータを暗号化し、暗号したデータとコンピュータ固有情
報からなる混成データを生成し、デバイスドライバへ、当該混成データをファイルデータ
として記憶させるファイルライトの指示を送るファイルクローズ処理部
(4)判定したファンクションが既存ファイルオープンの場合に、当該コンピュータに含
まれるハードウエアモジュールから当該モジュールの個体情報をコンピュータ固有情報と
して取得し、オープン中のファイルの混成データから、コンピュータ固有情報を復元し、
取得したコンピュータ固有情報と復元したコンピュータ固有情報が一致した場合に、混成
データに含まれる暗号データを復号し、デバイスドライバへ、復号したデータをファイル
データとして記憶させるファイルライトの指示を送る既存ファイルオープン処理部。
A confidentiality computer according to the present invention is a computer including a disk drive device, a device driver of the disk drive device, and an I / O manager that instructs the device driver to perform file operations, and further includes the following elements: (1) a file operation instruction receiving unit for receiving a file operation instruction sent from the I / O manager to the device driver; and (2) a function for determining a function included in the received file operation instruction. Determination unit (3) When the determined function is a file close, the individual information of the module is obtained as computer specific information from the hardware module included in the computer, and the open file data is encrypted and encrypted. The file close processing unit (4) for generating mixed data composed of the stored data and computer specific information and sending a file write instruction for storing the mixed data as file data to the device driver. When the determined function is an existing file open , To acquire the individual information of the module from the hardware module included in the computer as computer specific information, restore the computer specific information from the mixed data of the open file,
When the acquired computer-specific information matches the restored computer-specific information, the encrypted data included in the hybrid data is decrypted, and an existing file open instruction is sent to the device driver to store the decrypted data as file data Processing part.

更に、コンピュータ固有情報は、コンピュータが備えるネットワークカードのMACア
ドレスであることを特徴とする。
Further, the computer specific information is a MAC address of a network card provided in the computer.

ファイルクローズ処理部は、コンピュータ固有情報をパーツに分割し、分割したコンピ
ュータ固有情報パーツを混成データ中にチェーン状に分散させ、
既存ファイルオープン処理部は、混成データ中のチェーン状のコンピュータ固有情報パ
ーツを読み出し、コンピュータ固有情報を復元することを特徴とする。
The file close processing unit divides the computer-specific information into parts, distributes the divided computer-specific information parts in a chain in the hybrid data,
The existing file open processing unit reads a chain-like computer specific information part in the hybrid data and restores the computer specific information.

ファイルクローズ処理部は、コンピュータ固有情報を暗号化し、暗号化したコンピュー
タ固有情報を混成データに含め、
既存ファイルオープン処理部は、混成データから読み出したコンピュータ固有情報を復
号することを特徴とする。
The file close processing unit encrypts the computer specific information, includes the encrypted computer specific information in the hybrid data,
The existing file open processing unit is characterized by decrypting the computer specific information read from the hybrid data.

本発明に係るプログラムは、ディスクドライブデバイスと、当該ディスクドライブデバ
イスのデバイスドライバと、当該デバイスドライバに対してファイル操作を指示するI/
Oマネージャを備えるコンピュータに、フィルタドライバとして以下の手順を実行させる
ことを特徴とする
(1)I/Oマネージャからデバイスドライバへ送られるファイル操作指示を受信するフ
ァイル操作指示受信手順
(2)受信したファイル操作指示に含まれるファンクションを判定するファンクション判
定手順
(3)判定したファンクションがファイルクローズの場合に、当該コンピュータに含まれ
るハードウエアモジュールから当該モジュールの個体情報をコンピュータ固有情報として
取得し、オープン中のファイルデータを暗号化し、暗号したデータとコンピュータ固有情
報からなる混成データを生成し、デバイスドライバへ、当該混成データをファイルデータ
として記憶させるファイルライトの指示を送るファイルクローズ処理手順
(4)判定したファンクションが既存ファイルオープンの場合に、当該コンピュータに含
まれるハードウエアモジュールから当該モジュールの個体情報をコンピュータ固有情報と
して取得し、オープン中のファイルの混成データから、コンピュータ固有情報を復元し、
取得したコンピュータ固有情報と復元したコンピュータ固有情報が一致した場合に、混成
データに含まれる暗号データを復号し、デバイスドライバへ、復号したデータをファイル
データとして記憶させるファイルライトの指示を送る既存ファイルオープン処理手順。
A program according to the present invention includes a disk drive device, a device driver for the disk drive device, and an I / I for instructing file operation to the device driver.
(1) A file operation instruction receiving procedure for receiving a file operation instruction sent from the I / O manager to the device driver (2) received. Function determination procedure for determining a function included in a file operation instruction (3) When the determined function is a file close, individual information of the module is acquired as computer-specific information from a hardware module included in the computer and is open File close processing that encrypts file data, generates hybrid data consisting of the encrypted data and computer-specific information, and sends a file write instruction to the device driver to store the hybrid data as file data (4) When the determined function is an existing file open, the individual information of the module is acquired as the computer specific information from the hardware module included in the computer, and the computer specific information is obtained from the mixed data of the open file. Restore,
When the acquired computer-specific information matches the restored computer-specific information, the encrypted data included in the hybrid data is decrypted, and an existing file open instruction is sent to the device driver to store the decrypted data as file data Processing procedure.

本発明によれば、ファイルをクローズする際に、保存されるデータを暗号化し、その暗
号データと当該コンピュータに固有のMACアドレス(コンピュータ固有情報の例)を含
む混成データの形式でファイルを保持し、ファイルのオープンの際に、ファイルとして保
持する混成データに含まれるMACアドレスが、ファイルオープンを行なうコンピュータ
固有のMACアドレスと一致する場合にのみ、混成データに含まれる暗号データを復号す
ることにより、持ち出したコンピュータ以外でのファイルの操作を禁止することができる
According to the present invention, when a file is closed, the stored data is encrypted, and the file is held in a hybrid data format including the encrypted data and a MAC address (example of computer specific information) unique to the computer. By decrypting the encrypted data included in the hybrid data only when the MAC address included in the hybrid data held as a file when the file is opened matches the MAC address unique to the computer that performs the file open, File operations can be prohibited on computers other than those taken out.

特に、これらの動作をI/Oデバイスとデバイスドライバの間に設けるフィルタドライ
バを付加することにより実現するので、アプリケーションプログラム等の既存のシステム
に変更を加えることなく、従来の機能全般に対して機密保持を施すことができる点で優れ
ている。
In particular, since these operations are realized by adding a filter driver provided between the I / O device and the device driver, the existing functions such as application programs are not changed, and the conventional functions are generally confidential. It is excellent in that it can be retained.

MACアドレスをパーツに分割し、混成データ中にチェーン状に分散させるので、MA
Cアドレス部分の解析を困難にし、混成データ中のMACアドレスの書き換えによる不正
なファイルオープンを阻止できる。
Since the MAC address is divided into parts and distributed in a chain in the mixed data, MA
Analysis of the C address portion is difficult, and unauthorized file opening due to rewriting of the MAC address in the mixed data can be prevented.

MACアドレスを暗号化し、暗号化したMACアドレスを混成データに含めるので、M
ACアドレスの解析を困難にし、混成データ中のMACアドレスの書き換えによる不正な
ファイルオープンを阻止できる。
Since the MAC address is encrypted and the encrypted MAC address is included in the hybrid data, M
Analysis of the AC address is difficult, and unauthorized file opening due to rewriting of the MAC address in the mixed data can be prevented.

実施の形態1.
図1は、本発明に係るデータの構造を示す図である。本発明では、HDDドライブに記
憶される保存データファイルの機密保持を行なう。その為、ファイルオープン状態では、
平文データ100として操作されているデータを、ファイルクローズの際に、混成データ
130に変換してHDDドライブに書き込む。混成データ130は、混成データブロック
群131〜137とMACアドレスパーツブロック141〜146を組み合わせて構成さ
れている。混成データ群131〜137は、平文データ100を暗号化して得られる暗号
データ110を分割した暗号データブロック群111〜117をコピーしたものである。
MACアドレスパーツブロック141〜146は、当該コンピュータに接続されているネ
ットワークカードに割り当てられているMACアドレス(Media Access C
ontrolアドレス:イーサカードのようなネットワーク機器に固有の物理アドレス)
を分割し、チェーン状に配置したものである。
Embodiment 1 FIG.
FIG. 1 is a diagram showing a data structure according to the present invention. In the present invention, confidentiality of the stored data file stored in the HDD drive is performed. Therefore, in the file open state,
Data operated as the plaintext data 100 is converted into the hybrid data 130 and written to the HDD drive when the file is closed. The hybrid data 130 is configured by combining hybrid data block groups 131 to 137 and MAC address part blocks 141 to 146. The hybrid data groups 131 to 137 are obtained by copying encrypted data block groups 111 to 117 obtained by dividing the encrypted data 110 obtained by encrypting the plaintext data 100.
The MAC address part blocks 141 to 146 include a MAC address (Media Access C) assigned to the network card connected to the computer.
control address: a physical address unique to a network device such as an Ethernet card)
Are divided and arranged in a chain shape.

図2は、MACアドレスパーツブロックの構成例を示す図である。MACアドレスパー
ツブロックは、MACアドレスを分割したMACアドレスパーツの数だけ設けられる。こ
の例では、6バイトのMACアドレスを、1バイトずつの6つのMACアドレスパーツに
分割している。MACアドレスの一部を構成するMACアドレスパーツ201と、当該M
ACアドレスパーツ201の次のMACアドレスパーツを含むMACアドレスパーツブロ
ック200のアドレスを示す次パーツ埋め込みアドレス202を含んでいる。この例では
、ブロック全体として8バイトを有し、3バイトの予備領域203を含んでいる。次のM
ACアドレスパーツとは、MACアドレスのデータ配列順における次のパーツを意味する
FIG. 2 is a diagram illustrating a configuration example of the MAC address parts block. There are as many MAC address part blocks as the number of MAC address parts obtained by dividing the MAC address. In this example, a 6-byte MAC address is divided into 6 MAC address parts of 1 byte each. MAC address part 201 constituting a part of the MAC address and the M
A next part embedded address 202 indicating the address of the MAC address part block 200 including the MAC address part next to the AC address part 201 is included. In this example, the entire block has 8 bytes and includes a 3-byte spare area 203. Next M
The AC address part means the next part in the data array order of the MAC address.

本発明では、I/Oマネージャ300とデバイスドライバ400の間に割り込んで動作
するフィルタドライバ600を設ける。フィルタドライバは、カーネルモードで動作し、
アプリケーションよりもハードウエアよりの動作の変更や追加が可能である。フィルタド
ライバに記述されたプログラムでは、I/Oマネージャ300からデバイスドライバ40
0への指示要求に応じた処理を行なう関数を定義する。そして、I/Oマネージャ300
から送られるIRP(I/O Request Packet)に応じた関数を実行する
。入出力要求パケットであるIRPは、I/Oマネージャ300とデバイスドライバ40
0の間のファンクション毎の処理単位となっており、フィルタドライバは、I/Oマネー
ジャ300から送られるIRPに含まれるMajorFunction(ファンクション
の例)を読み取り、特定のMajorFunctionの場合に、そのMajorFun
ctionに対応付けられている処理関数を実行する。尚、IRPは、I/Oマネージャ
300からデバイスドライバ400へ送られるファイル操作指示の例である。
In the present invention, a filter driver 600 that operates by interrupting between the I / O manager 300 and the device driver 400 is provided. The filter driver works in kernel mode
It is possible to change or add operations from hardware rather than applications. In the program described in the filter driver, the I / O manager 300 to the device driver 40
A function that performs processing in response to an instruction request to 0 is defined. And I / O manager 300
A function corresponding to an IRP (I / O Request Packet) sent from is executed. An IRP that is an input / output request packet is an I / O manager 300 and a device driver 40.
The function is a processing unit for each function between 0, and the filter driver reads MajorFunction (example of function) included in the IRP sent from the I / O manager 300, and in the case of a specific MajorFunction, the MajorFun
Execute the processing function associated with ction. The IRP is an example of a file operation instruction sent from the I / O manager 300 to the device driver 400.

図3は、フィルタドライバの構成を示す図である。フィルタドライバ600は、パケッ
ト受信部(ファイル操作指示受信部の例)610、ファンクション判定部620、新規フ
ァイルオープン処理部630、ファイルライト処理部640、ファイルリード処理部65
0、ファイルクローズ処理部660、及び既存ファイルオープン処理部670の要素を有
している。
FIG. 3 is a diagram illustrating the configuration of the filter driver. The filter driver 600 includes a packet reception unit (an example of a file operation instruction reception unit) 610, a function determination unit 620, a new file open processing unit 630, a file write processing unit 640, and a file read processing unit 65.
0, a file close processing unit 660, and an existing file open processing unit 670.

図4は、フィルタドライバの処理フローを示す図である。パケット受信部610でI/
Oマネージャ300から送られるパケットを受信し(S410)、ファンクション判定部
620はそのパケットに含まれるファンクション(MajorFunctionに相当)
を判定する(S420)。ファンクションが、新規ファイルのオープン、ファイルライト
、あるいはファイルリードである場合には、平文データの状態を扱うので、フィルタドラ
イバ600により実質的に変更あるいは追加する処理はない。I/Oマネージャ300か
ら送られるファンクションが、ファイルのクローズ、あるいは既存ファイルのオープンの
場合に、フィルタドライバ600によりそのファンクションに応じた処理を行なう。
FIG. 4 is a diagram illustrating a processing flow of the filter driver. I / O at the packet receiver 610
The packet transmitted from the O manager 300 is received (S410), and the function determination unit 620 includes a function (corresponding to MajorFunction) included in the packet.
Is determined (S420). When the function is opening a new file, writing a file, or reading a file, the state of plain text data is handled, so that there is no substantial change or addition by the filter driver 600. When the function sent from the I / O manager 300 is closing a file or opening an existing file, the filter driver 600 performs processing according to the function.

以下では、HDDデバイスとそのデバイスドライバを例として説明するが、FDDデバ
イスや他のディスクドライブデバイスとそれらのデバイスドライバの場合にも同様に動作
するように、それぞれ同様のフィルタドライバが設けられる。
In the following description, an HDD device and its device driver will be described as an example. However, similar filter drivers are provided so as to operate similarly in the case of FDD devices and other disk drive devices and their device drivers.

図5は、新規ファイルオープンのデータフローを示す図である。I/Oマネージャ30
0は、保存データファイル名を指定して、デバイスドライバ400にファイルクリエイト
を指示する。新規ファイルオープン処理部630による新規ファイルオープン処理(S4
30)では、フィルタドライバを介し内容をデバイスドライバ400に転送する。転送し
なくてもデバイスドライバ400でパケットを受信できる場合には、新規ファイルオープ
ン処理部630は処理を行なわない。ファイルクリエイトは、デバイスドライバ400に
おけるファイルオブジェクトのオープンに相当する。デバイスドライバ400は、保存デ
ータファイルのファイルハンドルを戻す。ファイルハンドルは、所定のアドレスに格納さ
れ、I/Oマネージャ300は、そのアドレスからファイルハンドルを読み取ることがで
きる。
FIG. 5 is a diagram showing a data flow for opening a new file. I / O manager 30
0 designates a saved data file name and instructs the device driver 400 to create a file. New file open processing (S4) by the new file open processing unit 630
In 30), the contents are transferred to the device driver 400 via the filter driver. If the packet can be received by the device driver 400 without transferring, the new file open processing unit 630 does not perform processing. File creation corresponds to opening a file object in the device driver 400. The device driver 400 returns the file handle of the saved data file. The file handle is stored at a predetermined address, and the I / O manager 300 can read the file handle from the address.

図6は、ファイルライトのデータフローを示す図である。I/Oマネージャ300は、
保存データファイルハンドルと、書き込むアドレスと、データサイズを指定して、書き込
む平文データをデバイスドライバ400に転送し、ファイルライトを指示する。ファイル
ライト処理部640によるファイルライト処理(S440)では、フィルタドライバを介
し内容をバイスドライバ400に転送する。転送しなくてもデバイスドライバ400でパ
ケットを受信できる場合には、ファイルライト処理部640は処理を行なわない。保存デ
ータファイルハンドルと、書き込むアドレスと、データサイズは、パケットに含まれてい
る。平文データは、予め所定のバッファに格納しておく。ファイルライトは、デバイスド
ライバ400におけるファイルオブジェクトへの書き込みに相当する。デバイスドライバ
400は、所定のバッファから平文データを読み取り、その平文データをHDDデバイス
500の保存データファイル501に書き込む。バッファリングを行なっている場合には
、デバイスドライバ400内部のバッファに一時的に保持することもある。
FIG. 6 is a diagram illustrating a data flow of file write. The I / O manager 300
The saved data file handle, the address to write to, and the data size are specified, the plain text data to be written is transferred to the device driver 400, and a file write is instructed. In the file write process (S440) by the file write processing unit 640, the contents are transferred to the vise driver 400 via the filter driver. If the device driver 400 can receive a packet without transferring, the file write processing unit 640 does not perform processing. The stored data file handle, the write address, and the data size are included in the packet. Plain text data is stored in a predetermined buffer in advance. File write corresponds to writing to a file object in the device driver 400. The device driver 400 reads plaintext data from a predetermined buffer and writes the plaintext data to the saved data file 501 of the HDD device 500. When buffering is performed, the data may be temporarily stored in a buffer inside the device driver 400.

図7は、ファイルリードのデータフローを示す図である。I/Oマネージャ300は、
保存データファイルハンドルと、読み込むアドレスと、データサイズを指定して、デバイ
スドライバ400にファイルリードを指示する。ファイルリード処理部650によるファ
イルリード処理(S450)では、フィルタドライバを介し内容をデバイスドライバ40
0に転送する。転送しなくてもデバイスドライバ400でパケットを受信できる場合には
、ファイルリード処理部650は処理を行なわない。保存データファイルハンドルと、読
み込むアドレスと、データサイズは、パケットに含まれている。ファイルリードは、デバ
イスドライバ400におけるファイルオブジェクトからの読み込みに相当する。デバイス
ドライバ400は、HDDデバイス500の保存データファイル501からアドレスで指
定された平文データを読み込む。バッファリングを行なっている場合には、デバイスドラ
イバ400内部のバッファから読み込むこともある。デバイスドライバ400は、読み込
んだ平文データを所定のバッファに書き込む。I/Oマネージャ300は、所定のバッフ
ァからこの平文データを読み取ることができる。
FIG. 7 is a diagram illustrating a data flow of file read. The I / O manager 300
The stored data file handle, the address to be read, and the data size are specified, and the device driver 400 is instructed to read the file. In the file read process (S450) by the file read processing unit 650, the contents are sent to the device driver 40 via the filter driver.
Transfer to 0. If the device driver 400 can receive a packet without transferring, the file read processing unit 650 does not perform processing. The stored data file handle, the read address, and the data size are included in the packet. File read corresponds to reading from a file object in the device driver 400. The device driver 400 reads plaintext data designated by an address from the saved data file 501 of the HDD device 500. When buffering is being performed, data may be read from a buffer in the device driver 400. The device driver 400 writes the read plaintext data into a predetermined buffer. The I / O manager 300 can read this plain text data from a predetermined buffer.

次に、ファイルをクローズする際の動作について説明する。この動作で、平文データを
混成データに変換した上で、ファイルをクローズさせる。
Next, the operation when closing a file will be described. With this operation, the plain text data is converted into mixed data, and then the file is closed.

図8は、ファイルクローズのモジュール構成とデータフローを示す図である。I/Oマ
ネージャ300は、保存データファイルハンドルを指定して、ファイルのクローズを指示
する。保存データファイルハンドルは、パケットに含まれている。フィルタドライバ60
0は、この指示に応じて動作する。ファイルクローズで動作するファイルクローズ処理部
660は、パラメータ入力部661、MACアドレス取得部662、取得MACアドレス
記憶部663、データ混成部664、ファイルオブジェクトクローズ部665、及びリタ
ーン値出力部666の要素を有している。
FIG. 8 is a diagram showing a module configuration and data flow of file close. The I / O manager 300 designates the saved data file handle and instructs the closing of the file. The saved data file handle is included in the packet. Filter driver 60
0 operates in response to this instruction. The file close processing unit 660 that operates by the file close includes the elements of the parameter input unit 661, the MAC address acquisition unit 662, the acquisition MAC address storage unit 663, the data combination unit 664, the file object close unit 665, and the return value output unit 666. Have.

フィルタドライバによるファイルクローズ処理について説明する。図9は、フィルタド
ライバのファイルクローズ処理フローを示す図である。まず、パラメータ入力部661に
よるパラメータ入力処理(S901)で、パケットに含まれている保存データファイルハ
ンドルを得る。次に、MACアドレス取得部662によるMACアドレス取得処理(S9
02)を行なう。この処理では、例えばNETBIOS(Network BIOS)コ
マンドを用いて当該コンピュータに接続されているネットワーク機器(この例では、ネッ
トワークカード)固有であるMACアドレスを取得する。そして、取得したMACアドレ
スを取得MACアドレス記憶部663に記憶させる。取得MACアドレス記憶部663に
は、ファイルクローズ処理部660の内部に設けられた記憶領域を用いる。次に、データ
混成部664によるデータ混成処理(S903)を行なう。この処理では、取得MACア
ドレス記憶部663に記憶している取得MACアドレスと、デバイスドライバ400から
得られる保存データファイルの平文データとから、混成データを生成し、生成した混成デ
ータをデバイスドライバ400に保存データファイル501として書き込む指示をする。
詳しい処理は、図10及び図11を用いて後述する。そして、ファイルオブジェクトクロ
ーズ部665によるファイルオブジェクトクローズ処理(S904)で、保存データファ
イルハンドルを指定して、ファイルのクローズをデバイスドライバ400に指示する。例
えば、ファイルクローズのファンクションと保存データファイルハンドルを含むパケット
を生成し、そのパケットをデバイスドライバ400へ送る。これにより、保存データファ
イル501に混成データが保持される。そして、デバイスドライバ400からリターン値
を取得し、リターン値出力部666によるリターン値出力処理(S905)で、このリタ
ーン値をI/Oマネージャ300に戻す。デバイスドライバ400によりリターン値が所
定のバッファに格納され、I/Oマネージャ300が直接これを読み取れる場合には、リ
ターン値出力処理(S905)は不要である。
A file close process by the filter driver will be described. FIG. 9 is a diagram illustrating a file closing process flow of the filter driver. First, in a parameter input process (S901) by the parameter input unit 661, a saved data file handle included in the packet is obtained. Next, the MAC address acquisition process by the MAC address acquisition unit 662 (S9
02). In this process, a MAC address that is unique to a network device (in this example, a network card) connected to the computer is acquired using, for example, a NETBIOS (Network BIOS) command. Then, the acquired MAC address is stored in the acquired MAC address storage unit 663. The acquired MAC address storage unit 663 uses a storage area provided inside the file close processing unit 660. Next, a data mixing process (S903) by the data mixing unit 664 is performed. In this process, mixed data is generated from the acquired MAC address stored in the acquired MAC address storage unit 663 and the plain text data of the saved data file obtained from the device driver 400, and the generated mixed data is stored in the device driver 400. An instruction to write as the saved data file 501 is given.
Detailed processing will be described later with reference to FIGS. Then, in the file object close process (S904) by the file object close unit 665, the storage data file handle is specified and the device driver 400 is instructed to close the file. For example, a packet including a file close function and a stored data file handle is generated, and the packet is sent to the device driver 400. As a result, the hybrid data is held in the saved data file 501. Then, a return value is acquired from the device driver 400, and the return value is returned to the I / O manager 300 by return value output processing (S905) by the return value output unit 666. When the return value is stored in a predetermined buffer by the device driver 400 and can be read directly by the I / O manager 300, the return value output process (S905) is unnecessary.

ここで、前述のデータ混成部664によるデータ混成処理(S903)について詳述す
る。図10は、データ混成部のモジュール構成を示す図である。データ混成部664は、
暗号化部1001、暗号データファイルハンドル記憶部1002、及びデータレイアウト
部1003を有している。また、データ混成部664は、処理過程で一次的に暗号データ
ファイル502を生成させる。
Here, the data mixing process (S903) by the data mixing unit 664 will be described in detail. FIG. 10 is a diagram illustrating a module configuration of the data mixing unit. The data mixing unit 664
An encryption unit 1001, an encrypted data file handle storage unit 1002, and a data layout unit 1003 are included. In addition, the data mixing unit 664 temporarily generates the encrypted data file 502 in the process.

図11は、データ混成処理フローを示す図である。まず、暗号化部1001による暗号
化処理(S1101)を行なう。この処理では、保存データファイル501の平文データ
を暗号化して、暗号データを生成し、その暗号データを暗号データファイル502に記憶
させる。詳しくは、図12を用いて後述する。
FIG. 11 is a diagram showing a data mixing process flow. First, encryption processing (S1101) by the encryption unit 1001 is performed. In this process, the plain text data in the saved data file 501 is encrypted to generate encrypted data, and the encrypted data is stored in the encrypted data file 502. Details will be described later with reference to FIG.

次に、データレイアウト部1003によるデータレイアウト処理(S1102)を行な
う。この処理では、暗号データファイル502に記憶している暗号データと、取得MAC
アドレス記憶部663に記憶している取得MACアドレスから混成データを生成し、保存
データファイル501に書き込む。詳しくは、図13を用いて後述する。
Next, data layout processing (S1102) by the data layout unit 1003 is performed. In this process, the encrypted data stored in the encrypted data file 502 and the acquired MAC
Hybrid data is generated from the acquired MAC address stored in the address storage unit 663 and written to the saved data file 501. Details will be described later with reference to FIG.

最後に、暗号データファイル消去部1004による暗号データファイル消去処理(S1
103)で、暗号データファイル502を消去する。詳しくは、図20を用いて後述する
Finally, the encrypted data file erasure process by the encrypted data file erasing unit 1004 (S1
103), the encrypted data file 502 is deleted. Details will be described later with reference to FIG.

前述の暗号化処理(S1101)について詳述する。図12は、暗号化処理フローを示
す図である。まず、デバイスドライバ400に、暗号データファイルのファイル名を指定
して、暗号データファイルクリエイト(デバイスドライバ400のファイルオブジェクト
のオープンに相当)を指示する(S1201)。例えば、ファイルクリエイトのファンク
ションと所定の暗号データファイル名を含むパケットを生成し、そのパケットをデバイス
ドライバ400へ送る。そして、デバイスドライバ400から暗号データファイルのファ
イルハンドルを取得し、暗号データファイルハンドル記憶部1002に記憶させる。次に
、パラメータ入力部661で入力した保存データファイルのファイルハンドルを指定して
、保存データファイルの平文データ全体の読み込みをデバイスドライバ400に指示する
(S1202)。例えば、ファイルリードのファンクションと、保存データファイルハン
ドルと、開始アドレス(0)から終了アドレス(EOF(ファイルの最後))までを含む
パケットを生成し、そのパケットをデバイスドライバ400へ送る。そして、デバイスド
ライバ400から平文データ全体を取得し、これを暗号化する(S1203)。平文デー
タは、デバイスドライバ400により所定のバッファに格納されており、そのバッファか
ら平文データを読み取ることができる。暗号データファイルハンドル記憶部1002に記
憶している暗号データファイルハンドルを指定して、暗号化により得られた暗号データの
書き込みをデバイスドライバ400に指示する(S1204)。例えば、ファイルライト
のファンクションと、暗号データファイルハンドルと、開始アドレス(0)から終了アド
レス(EOF)までを含むパケットを生成し、そのパケットをデバイスドライバ400へ
送る。暗号化部1001は、その前に暗号データを所定のバッファに格納しておき、デバ
イスドライバ400は、そのバッファから暗号データを読み取る。
The above-described encryption process (S1101) will be described in detail. FIG. 12 is a diagram showing an encryption processing flow. First, the device driver 400 is instructed to specify the file name of the encrypted data file and create the encrypted data file (corresponding to opening the file object of the device driver 400) (S1201). For example, a packet including a file creation function and a predetermined encrypted data file name is generated, and the packet is sent to the device driver 400. Then, the file handle of the encrypted data file is acquired from the device driver 400 and stored in the encrypted data file handle storage unit 1002. Next, the file handle of the saved data file input by the parameter input unit 661 is designated, and the device driver 400 is instructed to read the entire plain text data of the saved data file (S1202). For example, a packet including a file read function, a stored data file handle, and a start address (0) to an end address (EOF (end of file)) is generated, and the packet is sent to the device driver 400. Then, the entire plaintext data is acquired from the device driver 400 and encrypted (S1203). The plain text data is stored in a predetermined buffer by the device driver 400, and the plain text data can be read from the buffer. The encryption data file handle stored in the encryption data file handle storage unit 1002 is designated, and the device driver 400 is instructed to write the encryption data obtained by the encryption (S1204). For example, a packet including a file write function, an encrypted data file handle, and a start address (0) to an end address (EOF) is generated, and the packet is sent to the device driver 400. The encryption unit 1001 stores the encrypted data in a predetermined buffer before that, and the device driver 400 reads the encrypted data from the buffer.

前述のデータレイアウト処理(S1102)について詳述する。図13は、データレイ
アウト処理フローを示す図である。暗号データブロックの決定(S1301)で、暗号デ
ータを分割するブロック(コピーする単位)を決定し、混成データの配置の決定(S13
02)で、暗号データブロックをコピーする混成データブロックとMACアドレスをチェ
ーン状に格納するMACアドレスパーツブロックの配置を決定する。混成データの書き込
み(S1303)で、決定した配置に従って、混成データの書き込みをデバイスドライバ
400に指示する。これらの処理について、以下に詳述する。
The data layout process (S1102) will be described in detail. FIG. 13 is a diagram showing a data layout processing flow. In the encryption data block determination (S1301), a block (unit to be copied) for dividing the encryption data is determined, and the arrangement of the hybrid data is determined (S13).
02), the arrangement of the hybrid data block for copying the encrypted data block and the MAC address part block for storing the MAC address in a chain is determined. In the hybrid data writing (S1303), the device driver 400 is instructed to write the hybrid data according to the determined arrangement. These processes will be described in detail below.

暗号データブロックの決定(S1301)について詳述する。図14は、暗号データブ
ロックの決定処理フローを示す図である。この処理では、暗号データブロックテーブルを
生成する。暗号データブロックテーブルは、ファイルクローズ処理部660の内部の記憶
領域に設けられる。図15は、暗号データブロックテーブルの構成例を示す図である。暗
号データを分割した暗号データブロック毎にレコード1551〜1557を設け、暗号デ
ータブロックの開始アドレス1501と暗号データブロックの終了アドレス1502の項
目を対応付けて記憶するように構成されている。
The encryption data block determination (S1301) will be described in detail. FIG. 14 is a diagram showing a process flow for determining an encryption data block. In this process, an encrypted data block table is generated. The encrypted data block table is provided in a storage area inside the file close processing unit 660. FIG. 15 is a diagram illustrating a configuration example of the encryption data block table. Records 1551 to 1557 are provided for each encrypted data block obtained by dividing the encrypted data, and the items of the start address 1501 of the encrypted data block and the end address 1502 of the encrypted data block are associated with each other and stored.

当該処理では、まず、デバイスドライバ400から暗号データファイルのファイルサイ
ズを特定する(S1401)。暗号データファイルを最後まで読み込むことにより、ファ
イルサイズを特定することができる。あるいは、前述の暗号化の際に、暗号データのサイ
ズを記憶しておき、これを用いてもよい。そして第1の暗号データブロック111の開始
アドレス(1551:1501)を0とする(S1402)。次に、第2の暗号データブ
ロック112の開始アドレス(1552:1501)を所定の起点アドレスとする(S1
403)。この実施例では、第1のMACアドレスパーツブロック141のアドレスを所
定の起点アドレス(この例では、100000(H:16進数、以下省略))に固定して
いる。また、第1のMACアドレスパーツブロック141は、第1の混合データブロック
131と第2の混合データブロック132の間に埋め込むので、第2の暗号データブロッ
ク112の開始アドレス(1552:1501)は、必ずこの所定の起点アドレスとなる
In this process, first, the file size of the encrypted data file is specified from the device driver 400 (S1401). By reading the encrypted data file to the end, the file size can be specified. Alternatively, the size of the encrypted data may be stored and used at the time of the above encryption. Then, the start address (1551: 1501) of the first encrypted data block 111 is set to 0 (S1402). Next, the start address (1552: 1501) of the second encrypted data block 112 is set as a predetermined starting address (S1).
403). In this embodiment, the address of the first MAC address part block 141 is fixed to a predetermined starting address (in this example, 100000 (H: hexadecimal, hereinafter omitted)). Also, since the first MAC address part block 141 is embedded between the first mixed data block 131 and the second mixed data block 132, the start address (1552: 1501) of the second encrypted data block 112 is This is always the predetermined starting address.

続いて、第3の暗号データブロック113から第7の暗号データブロック117の開始
アドレス1501を決定する(S1404)。これらの開始アドレスは、その都度任意に
決定する。この例では、所定の起点アドレスとファイルの最後(ファイルサイズー1)の
間に任意のアドレスを、順に5つ設定している。例えば、ファイルサイズ(F00000
)から所定の起点アドレス(100000)を差し引いて分割対象空間のサイズを求め、
その分割対象空間(E00000)を6つに不均等(あるいは均等)に分割し、分割サイ
ズ(200000+200000+100000+300000+200000+400
000)を求め、これらの分割サイズを、順次所定の起点アドレスに加えることにより、
これらの開始アドレスを求めることができる。上述の分割対象空間の分割は、乱数等によ
り任意に特定した分割サイズを順に5回差し引くことにより得られる。分割サイズの特定
としては、複数の分割サイズの候補(100000、200000、300000、・・
・)から適当に分割サイズを選択する方法などが考えられる。
Subsequently, the start address 1501 of the seventh encrypted data block 117 is determined from the third encrypted data block 113 (S1404). These start addresses are arbitrarily determined each time. In this example, five arbitrary addresses are sequentially set between a predetermined starting point address and the end of the file (file size-1). For example, file size (F00000
) To subtract a predetermined starting address (100,000) to determine the size of the space to be divided,
The space to be divided (E00000) is divided into six non-uniformly (or evenly), and the divided size (200000 + 200000 + 100000 + 300000 + 200000 + 400).
000) and sequentially adding these division sizes to a predetermined starting address,
These start addresses can be determined. The above division of the division target space is obtained by subtracting the division size arbitrarily specified by a random number or the like five times in order. To specify the division size, a plurality of division size candidates (100,000, 200,000, 300,000,...
A method of selecting an appropriate division size from ()) is conceivable.

次に、第1の暗号データブロック111から第6の暗号データブロック116の終了ア
ドレス1502を決定する(S1405)。この処理では、暗号データブロック毎に、次
の暗号データブロックの開始アドレス1501から1を引くことにより、終了アドレス1
502を算出する。最後に、第7の暗号データブロックの終了アドレスをファイルサイズ
−1とする(S1406)。
Next, the end address 1502 of the sixth encrypted data block 116 is determined from the first encrypted data block 111 (S1405). In this process, the end address 1 is obtained by subtracting 1 from the start address 1501 of the next encrypted data block for each encrypted data block.
502 is calculated. Finally, the end address of the seventh encrypted data block is set to file size-1 (S1406).

混成データの配置の決定(S1302)について詳述する。図16は、混成データの配
置の決定処理フローを示す図である。この処理では、MACアドレスパーツブロックテー
ブルと混成データブロックテーブルを生成する。これらのテーブルは、ファイルクローズ
処理部660の内部の記憶領域に設けられる。
The determination of the arrangement of the hybrid data (S1302) will be described in detail. FIG. 16 is a diagram showing a flow for determining the arrangement of the hybrid data. In this process, a MAC address parts block table and a hybrid data block table are generated. These tables are provided in a storage area inside the file close processing unit 660.

図17は、MACアドレスパーツブロックテーブルの構成例を示す図である。MACア
ドレスパーツ毎にレコード1751〜1756を設け、MACアドレスパーツ1701と
埋め込みアドレス1702との項目を対応付けて記憶するように構成されている。
FIG. 17 is a diagram illustrating a configuration example of a MAC address parts block table. Records 1751 to 1756 are provided for each MAC address part, and the items of MAC address part 1701 and embedded address 1702 are stored in association with each other.

図18は、混成データブロックテーブルの構成例を示す図である。混成データブロック
毎にレコード1851〜1857を設け、混成データブロックの開始アドレス1801と
混成データブロックの終了アドレス1802の項目を対応付けて記憶するように構成され
ている。
FIG. 18 is a diagram illustrating a configuration example of a hybrid data block table. Records 1851 to 1857 are provided for each hybrid data block, and the items of the start address 1801 of the hybrid data block and the end address 1802 of the hybrid data block are stored in association with each other.

まず、MACアドレスをMACアドレスパーツに分割し、それぞれをMACアドレスパ
ーツブロックテーブルの各レコードのMACアドレスパーツ1701に配列順に記憶させ
る(S1601)。次に、第1の暗号データブロック111の開始アドレスと終了アドレ
ス1551を、混成データブロックテーブルの第1の混成データブロック131の開始ア
ドレスと終了アドレス1851にコピーする(S1602)。次に、第1のMACアドレ
スパーツ141の埋め込みアドレス(1751:1702)を、所定の起点アドレス(1
00000)とする(S1603)。そして、対応する暗号データブロックと混成データ
ブロック毎に、順次以下の処理を繰り返す(S1604)。先に割り当てたMACアドレ
スパーツ埋め込みアドレス1702にMACアドレスパーツブロックサイズ(この例では
、8バイト)を加えて、混成データブロックの開始アドレス1801を算出する(S16
05)。算出した開始アドレスを、混成データブロックテーブルの該当する混成データブ
ロックのレコードに書き込む。次に、暗号データブロックの終了アドレス1502から開
始アドレス1501を差し引いて、その差に1を加えて、暗号データブロックのサイズを
算出する(S1606)。そして、混成データブロックの開始アドレス1801に、算出
した暗号データブロックのサイズを加えて、その和から1を差し引いて、混成データブロ
ックの終了アドレス1802を算出する(S1607)。算出した終了アドレスを、混成
データブロックテーブルの該当する混成データブロックのレコードに書き込む。すべての
データブロックについて処理した時点で(S1608)、混成データブロックテーブルが
完成する。次に、第2から第6のMACアドレスパーツブロック142〜146の埋め込
みアドレスを算出する(S1609)。それぞれ、第2から第6の混成データブロック1
32〜136の開始アドレス(1852〜1856:1801)に、対応する第2から第
6の暗号データブロック111〜116のサイズを加えることにより得られる。算出した
埋め込みアドレスを、順に埋め込みアドレス未決定のMACアドレスパーツのいずれかに
割り当て、MACアドレスパーツブロックテーブルに記憶させる(S1610)。埋め込
みアドレスを割り当てるレコードの順番は、任意で構わない。乱数を、埋め込みアドレス
が未決定のレコードの数で除して、剰余値によりレコードを特定する方法などが考えられ
る。この例によらず、昇順や降順に埋め込みアドレスを割り当ててもよい。
First, the MAC address is divided into MAC address parts, which are stored in the MAC address part 1701 of each record of the MAC address parts block table in the order of arrangement (S1601). Next, the start address and end address 1551 of the first encrypted data block 111 are copied to the start address and end address 1851 of the first mixed data block 131 in the mixed data block table (S1602). Next, the embedded address (1751: 1702) of the first MAC address part 141 is changed to a predetermined starting address (1
00000) (S1603). Then, the following processing is sequentially repeated for each corresponding encrypted data block and hybrid data block (S1604). The MAC address part block size (8 bytes in this example) is added to the previously assigned MAC address parts embedded address 1702 to calculate the start address 1801 of the hybrid data block (S16).
05). The calculated start address is written in the corresponding hybrid data block record of the hybrid data block table. Next, the start address 1501 is subtracted from the end address 1502 of the encrypted data block, and 1 is added to the difference to calculate the size of the encrypted data block (S1606). Then, the size of the calculated encrypted data block is added to the start address 1801 of the hybrid data block, and 1 is subtracted from the sum to calculate the end address 1802 of the hybrid data block (S1607). The calculated end address is written to the record of the corresponding mixed data block in the mixed data block table. When all the data blocks have been processed (S1608), the hybrid data block table is completed. Next, the embedded addresses of the second to sixth MAC address part blocks 142 to 146 are calculated (S1609). 2nd to 6th mixed data blocks 1 respectively
It is obtained by adding the sizes of the corresponding second to sixth cipher data blocks 111 to 116 to the start addresses of 32 to 136 (1852 to 1856: 1801). The calculated embedded address is sequentially assigned to one of the MAC address parts whose embedded address has not been determined, and is stored in the MAC address parts block table (S1610). The order of records to which embedded addresses are assigned may be arbitrary. A method may be considered in which a random number is divided by the number of records whose embedment address has not yet been determined, and a record is specified by a remainder value. Regardless of this example, embedded addresses may be assigned in ascending or descending order.

混成データの書き込み(S1303)について詳述する。図19は、混成データの書き
込み処理フローを示す図である。対応する暗号データブロックと混合データブロック毎に
以下の処理を繰り返す(S1901)。暗号データファイルハンドルを指定して、暗号デ
ータブロックテーブルの暗号データブロックの開始アドレスから終了アドレスまでの暗号
データの読み込みをデバイスドライバ400に指示し、暗号データブロックを読み込む(
S1902)。例えば、ファイルリードのファンクションと、暗号データファイルハンド
ルと、開始アドレスと、ブロックサイズを含むパケットを生成し、そのパケットをデバイ
スドライバ400へ送り、所定のバッファへ暗号データブロックを読み込む。そして、混
合データファイルハンドルを指定して、読み込んだ暗号データブロックを、混合データブ
ロックテーブルの混合データブロックの開始アドレスから終了アドレスまでの混成データ
ブロックとして書き込む(S1903)。例えば、所定のバッファへ暗号データブロック
を書き込み、ファイルライトのファンクションと、保存データファイルハンドルと、開始
アドレスと、ブロックサイズを含むパケットを生成し、そのパケットをデバイスドライバ
400へ送る。すべてのデータブロックについて処理すると(S1904)、次にMAC
アドレスパーツ毎に、以下の処理を繰り返す(S1905)。MACアドレスパーツと、
次のMACアドレスパーツの埋め込みアドレスを組み合わせて、MACアドレスパーツブ
ロックを生成し(S1906)、生成したMACアドレスパーツブロックを、当該パーツ
の埋め込みアドレスに書き込む(S1907)。例えば、所定のバッファへMACアドレ
スパーツブロックを書き込み、ファイルライトのファンクションと、保存データファイル
ハンドルと、開始アドレスと、ブロックサイズを含むパケットを生成し、そのパケットを
デバイスドライバ400へ送る。すべてのMACアドレスパーツについて処理した時点で
終了する(S1908)。
The hybrid data writing (S1303) will be described in detail. FIG. 19 is a diagram illustrating a mixed data write processing flow. The following processing is repeated for each corresponding encrypted data block and mixed data block (S1901). The encryption data file handle is designated, the device driver 400 is instructed to read the encryption data from the start address to the end address of the encryption data block in the encryption data block table, and the encryption data block is read (
S1902). For example, a packet including a file read function, an encrypted data file handle, a start address, and a block size is generated, the packet is sent to the device driver 400, and the encrypted data block is read into a predetermined buffer. Then, the mixed data file handle is designated, and the read encrypted data block is written as a mixed data block from the start address to the end address of the mixed data block in the mixed data block table (S1903). For example, the encryption data block is written to a predetermined buffer, a packet including a file write function, a stored data file handle, a start address, and a block size is generated, and the packet is sent to the device driver 400. If all data blocks are processed (S1904), then the MAC
The following processing is repeated for each address part (S1905). MAC address parts,
A MAC address part block is generated by combining the embedded address of the next MAC address part (S1906), and the generated MAC address part block is written in the embedded address of the part (S1907). For example, the MAC address part block is written in a predetermined buffer, a packet including a file write function, a stored data file handle, a start address, and a block size is generated, and the packet is sent to the device driver 400. The process ends when all the MAC address parts have been processed (S1908).

図11の暗号データファイル消去処理(S1103)について詳述する。図20は、暗
号データファイル消去処理フローを示す図である。暗号データファイルハンドル記憶部1
002に記憶している暗号データファイルハンドルを指定して、デバイスドライバ400
に暗号データファイルオブジェクトのクローズを指示する(S2001)。例えば、ファ
イルクローズのファンクションと、暗号データファイルハンドルを含むパケットを生成し
、そのパケットをデバイスドライバ400へ送る。更に、暗号データファイルハンドルを
指定して、デバイスドライバ400に暗号データファイルオブジェクトのデリートを指示
する(S2002)。例えば、ファイルデリートのファンクションと、暗号データファイ
ルハンドルを含むパケットを生成し、そのパケットをデバイスドライバ400へ送る。
The encryption data file erasing process (S1103) in FIG. 11 will be described in detail. FIG. 20 is a diagram showing an encrypted data file erasing process flow. Encryption data file handle storage unit 1
The encrypted data file handle stored in 002 is designated, and the device driver 400
Is instructed to close the encrypted data file object (S2001). For example, a packet including a file close function and an encrypted data file handle is generated, and the packet is sent to the device driver 400. Further, the encryption data file handle is designated and the device driver 400 is instructed to delete the encryption data file object (S2002). For example, a packet including a file delete function and an encrypted data file handle is generated, and the packet is sent to the device driver 400.

このようにして、平文データが混成データに変換されて、保存データファイルに保持さ
れる。
In this way, the plain text data is converted into hybrid data and held in the saved data file.

次に、このようにして保持された保存データファイルをオープンする際の動作について
説明する。この動作では、ファイルをオープンするとともに、MACアドレスを検証した
上で、保存データファイルの混成データを平文データに変換する。
Next, the operation when opening the saved data file held in this way will be described. In this operation, the file is opened, the MAC address is verified, and the hybrid data in the saved data file is converted to plain text data.

図21は、既存ファイルオープンのモジュール構成とデータフローを示す図である。I
/Oマネージャ300は、保存データファイル名を指定して、ファイルのオープンを指示
する。フィルタドライバ600は、この指示を取得して、動作する。ファイルオープンで
動作する既存ファイルオープン処理部670は、パラメータ入力部671、ファイルオブ
ジェクトオープン部672、保存データファイルハンドル記憶部673、MACアドレス
検証部674、データ復元部675、パラメータ出力部676、ファイルオブジェクトク
ローズ部677、及びエラー結果出力部678の要素を有している。
FIG. 21 is a diagram showing a module configuration and data flow of an existing file open. I
The / O manager 300 designates a saved data file name and instructs opening of the file. The filter driver 600 acquires this instruction and operates. The existing file open processing unit 670 that operates by opening the file includes a parameter input unit 671, a file object open unit 672, a saved data file handle storage unit 673, a MAC address verification unit 674, a data restoration unit 675, a parameter output unit 676, a file object. It has elements of a closing unit 677 and an error result output unit 678.

フィルタドライバによるファイルオープン処理について説明する。図22は、フィルタ
ドライバの既存ファイルオープン処理フローを示す図である。まず、パラメータ入力部6
71によるパラメータ入力処理(S2201)で、パケットに含まれる保存データファイ
ル名を得る。次に、ファイルオブジェクトオープン部672によるファイルオブジェクト
オープン処理(S2202)を行なう。この処理では、保存データファイル名を指定して
、デバイスドライバ400にファイルオブジェクトのオープンを指示する。例えば、ファ
イルオープン(または、ファイルクリエイト)のファンクションと、保存データファイル
名を含むパケットを生成し、デバイスドライバ400へ送る。次に、MACアドレス検証
部674によるMACアドレス検証処理(S2203)を行なう。この処理では、保存デ
ータファイルに保持されている混成データから抽出されるMACアドレスが、当該コンピ
ュータに固有のMACアドレスと一致するか否かにより、正当なアクセスであるか否かを
判断する。詳しい処理は、図23及び図24を用いて後述する。正当なアクセスである場
合には、データ復元部675によるデータ復元処理(S2204)を行なう。この処理で
は、保存データファイルに保持されている混成データから平文データを復元し、保存デー
タファイルに書き戻す。詳しい処理は、図26及び図27を用いて後述する。そして、パ
ラメータ出力部676によるパラメータ出力処理(S2205)を行なう。この処理では
、保存データファイルハンドルを、出力パラメータとして、I/Oマネージャ300に戻
す。デバイスドライバ400によりファイルハンドルが所定のアドレスに格納され、I/
Oマネージャ300が、そのアドレスから直接ファイルハンドルを読み取ることができる
場合は、パラメータ出力処理(S2205)は省略できる。
A file open process by the filter driver will be described. FIG. 22 is a diagram showing an existing file open process flow of the filter driver. First, the parameter input unit 6
The saved data file name included in the packet is obtained in the parameter input process (S2201) by 71. Next, a file object open process (S2202) is performed by the file object open unit 672. In this process, the storage data file name is designated and the device driver 400 is instructed to open the file object. For example, a packet including a file open (or file create) function and a saved data file name is generated and sent to the device driver 400. Next, a MAC address verification process (S2203) is performed by the MAC address verification unit 674. In this process, whether or not the access is legitimate is determined based on whether or not the MAC address extracted from the hybrid data held in the saved data file matches the MAC address unique to the computer. Detailed processing will be described later with reference to FIGS. If the access is legitimate, a data restoration process (S2204) by the data restoration unit 675 is performed. In this process, plain text data is restored from the hybrid data held in the saved data file and written back to the saved data file. Detailed processing will be described later with reference to FIGS. Then, parameter output processing (S2205) by the parameter output unit 676 is performed. In this process, the saved data file handle is returned to the I / O manager 300 as an output parameter. The file handle is stored at a predetermined address by the device driver 400, and the I /
If the O manager 300 can read the file handle directly from the address, the parameter output process (S2205) can be omitted.

一方、正当なアクセスでない場合には、ファイルオブジェクトクローズ部677による
ファイルオブジェクトクローズ処理(S2206)で、保存データファイルハンドルを指
定して、保存データファイルのクローズを指示する。例えば、ファイルクローズのファン
クションと、保存データファイルハンドルを含むパケットを生成し、そのパケットをデバ
イスドライバ400へ送る。そして、エラー結果出力処理(S2207)で、MACアド
レスが不正であり正当なアクセスではないために、ファイルオープンに失敗した旨のエラ
ー結果をI/Oマネージャ300に返信する。
On the other hand, if the access is not valid, the file object close unit 677 designates the save data file handle in the file object close process (S2206) to instruct the close of the save data file. For example, a packet including a file close function and a stored data file handle is generated, and the packet is sent to the device driver 400. In the error result output process (S2207), an error result indicating that the file open has failed because the MAC address is invalid and the access is not valid is returned to the I / O manager 300.

前述のMACアドレス検証部674によるMACアドレス検証処理(S2203)につ
いて詳述する。図23は、MACアドレス検証部のモジュール構成を示す図である。MA
Cアドレス検証部674は、MACアドレス復元部2301、復元MACアドレス記憶部
2302、MACアドレス取得部2303、取得MACアドレス記憶部2304、及びM
ACアドレス比較部2305を有している。
The MAC address verification process (S2203) by the MAC address verification unit 674 will be described in detail. FIG. 23 is a diagram illustrating a module configuration of the MAC address verification unit. MA
The C address verification unit 674 includes a MAC address restoration unit 2301, a restoration MAC address storage unit 2302, a MAC address acquisition unit 2303, an acquisition MAC address storage unit 2304, and an M
An AC address comparison unit 2305 is provided.

図24は、MACアドレス検証処理フローを示す図である。MACアドレス復元部23
01によるMACアドレス復元処理(S2401)を行なう。この処理では、混成データ
からMACアドレスを復元し、復元したMACアドレスを復元MACアドレス記憶部23
02に記憶させる。詳しくは、図25を用いて詳述する。次に、MACアドレス取得部2
303によるMACアドレス取得処理(S2402)で、例えばNETBIOS(Net
work BIOS)コマンドを用いてMACアドレスを取得して、取得MACアドレス
記憶部2304に記憶させる。そして、MACアドレス比較部2305によるMACアド
レス比較処理(S2403)で、復元MACアドレス記憶部2302に記憶している復元
MACアドレスと、取得MACアドレス記憶部2304に記憶している取得MACアドレ
スを比較する。一致する場合は、正当なアクセスであるので終了ステータスを正常として
終了する。一方、一致しない場合は、不正なアクセスであるので終了ステータスをエラー
として終了する。
FIG. 24 is a diagram showing a flow of MAC address verification processing. MAC address restoration unit 23
The MAC address restoration process (S2401) is performed by 01. In this process, the MAC address is restored from the hybrid data, and the restored MAC address is restored to the restored MAC address storage unit 23.
02. Details will be described with reference to FIG. Next, the MAC address acquisition unit 2
In the MAC address acquisition process by S303 (S2402), for example, NETBIOS (Net
The MAC address is acquired using a (work BIOS) command and stored in the acquired MAC address storage unit 2304. Then, in the MAC address comparison process (S2403) by the MAC address comparison unit 2305, the restored MAC address stored in the restored MAC address storage unit 2302 is compared with the acquired MAC address stored in the acquired MAC address storage unit 2304. . If they match, it is a legitimate access, and the termination status is normal and the processing is terminated. On the other hand, if they do not match, it is an unauthorized access and the end status is ended as an error.

前述のMACアドレス復元処理(S2401)について詳述する。図25は、MACア
ドレス復元処理フローを示す図である。まず、保存データファイルハンドルと所定の起点
アドレスとMACアドレスパーツブロックサイズを指定して、読み込みをデバイスドライ
バ400に指示し、第一のMACアドレスパーツブロックを取得する(S2501)。例
えば、ファイルリードのファンクションと、保存データファイルハンドルと、起点アドレ
スと、ブロックサイズを含むパケットを生成し、そのパケットをデバイスドライバ400
へ送り、所定のバッファからMACアドレスパーツブロックを読み込む。読み込んだMA
Cアドレスパーツブロックから、MACアドレスパーツを特定する(S2502)。そし
て、すべてのMACアドレスパーツを読み込むまで以下の処理を繰り返す(S2503)
。この処理で、MACアドレスパーツ数の分のMACアドレスパーツブロックを読み込む
。先に読み込んだMACアドレスパーツブロックから、次パーツアドレスを特定し(S2
504)、保存データファイルハンドルと次パーツアドレスとMACアドレスパーツブロ
ックサイズを指定して、読み込みをデバイスドライバ400に指示し、次のMACアドレ
スパーツブロックを読み込む(S2505)。例えば、ファイルリードのファンクション
と、保存データファイルハンドルと、次パーツアドレスと、ブロックサイズを含むパケッ
トを生成し、そのパケットをデバイスドライバ400へ送り、所定のバッファからMAC
アドレスパーツブロックを読み込む。このようにして、MACアドレスパーツを順に特定
し、特定したMACアドレスパーツ群を特定した順に配列して、MACアドレスを生成す
る(S2506)。
The MAC address restoration process (S2401) will be described in detail. FIG. 25 is a diagram showing a flow of MAC address restoration processing. First, a storage data file handle, a predetermined starting address, and a MAC address part block size are designated, and reading is instructed to the device driver 400 to acquire a first MAC address part block (S2501). For example, a packet including a file read function, a stored data file handle, a starting address, and a block size is generated, and the packet is transmitted to the device driver 400.
To read the MAC address part block from a predetermined buffer. Read MA
A MAC address part is specified from the C address part block (S2502). The following processing is repeated until all the MAC address parts are read (S2503).
. In this process, the MAC address part blocks corresponding to the number of MAC address parts are read. The next part address is specified from the previously read MAC address part block (S2
504), specifying the storage data file handle, the next part address, and the MAC address part block size, instructing the device driver 400 to read, and reading the next MAC address part block (S2505). For example, a packet including a file read function, a stored data file handle, a next part address, and a block size is generated, and the packet is sent to the device driver 400, and the MAC is read from a predetermined buffer.
Read the address part block. In this way, the MAC address parts are specified in order, and the specified MAC address parts group is arranged in the specified order to generate a MAC address (S2506).

前述のデータ復元部675によるデータ復元処理(S2204)について詳述する。図
26は、データ復元部のモジュール構成を示す図である。データ復元部675は、暗号デ
ータ再現部2601、暗号データファイルハンドル記憶部2602、復号部2603、平
文データファイルハンドル記憶部2604、暗号データファイル消去部2605、平文デ
ータ複製部2606、及び平文データファイル消去部2607の要素を有している。また
、データ復元部675は、処理過程で一次的に暗号データファイル503と平文データフ
ァイル504を生成させる。
The data restoration process (S2204) by the data restoration unit 675 will be described in detail. FIG. 26 is a diagram illustrating a module configuration of the data restoration unit. The data restoration unit 675 includes an encrypted data reproduction unit 2601, an encrypted data file handle storage unit 2602, a decryption unit 2603, a plaintext data file handle storage unit 2604, an encrypted data file deletion unit 2605, a plaintext data replication unit 2606, and a plaintext data file deletion. The element of the part 2607 is included. In addition, the data restoration unit 675 temporarily generates the encrypted data file 503 and the plaintext data file 504 in the course of processing.

図27は、データ復元処理フローを示す図である。暗号データ再現部2601による暗
号データ再現処理(S2701)を行なう。この処理では、保存データファイル501に
保持されている混成データから、暗号データを復元し、復元した暗号データを暗号データ
ファイル503に一時的に記憶させる。詳しくは、図28を用いて詳述する。次に、復号
部2603による復号処理(S2702)を行なう。この処理では、暗号データファイル
503に保持している暗号データを復号し、復号した平分データを、平文データファイル
504に一次的に記憶させる。詳しくは、図33を用いて詳述する。そして、暗号データ
ファイル消去部2605による暗号データファイル消去処理(S2703)で、一時的に
設けた暗号データファイル503を消去する。詳しくは、図34を用いて詳述する。平文
データ複製部2606による平文データ複製処理(S2704)では、平文データファイ
ル504に一次的に保持している平分データを、保存データファイル501に上書きする
。つまり、混成データに代えて平分データを記憶させる(混成データから平文データに更
新する)。詳しくは、図35を用いて詳述する。平文データファイル消去部2607によ
る平文データファイル消去処理(S2705)では、一時的に設けた平文データファイル
504を消去する。詳しくは、図36を用いて詳述する。
FIG. 27 is a diagram showing a data restoration processing flow. Encryption data reproduction processing (S2701) by the encryption data reproduction unit 2601 is performed. In this process, the encrypted data is restored from the hybrid data held in the saved data file 501, and the restored encrypted data is temporarily stored in the encrypted data file 503. Details will be described in detail with reference to FIG. Next, a decoding process (S2702) by the decoding unit 2603 is performed. In this process, the encrypted data held in the encrypted data file 503 is decrypted, and the decrypted flat data is temporarily stored in the plaintext data file 504. Details will be described with reference to FIG. Then, the encryption data file 503 temporarily deleted is deleted by the encryption data file deletion processing (S2703) by the encryption data file deletion unit 2605. Details will be described in detail with reference to FIG. In the plaintext data replication process (S2704) by the plaintext data replication unit 2606, the plain data temporarily stored in the plaintext data file 504 is overwritten on the saved data file 501. That is, the plain data is stored instead of the hybrid data (updated from the hybrid data to the plain text data). Details will be described with reference to FIG. In the plaintext data file erasure processing (S2705) by the plaintext data file erasure unit 2607, the temporarily provided plaintext data file 504 is erased. Details will be described in detail with reference to FIG.

図27の暗号データ再現処理(S2701)について詳述する。図28は、暗号データ
再現処理フローを示す図である。埋め込みアドレスソートテーブルの生成(S2801)
では、混成データに含まれるMACアドレスパーツブロックの埋め込みアドレスを昇順に
ソートした埋め込みアドレスソートテーブルを生成する。詳しくは、図29を用いて後述
する。混成データブロックテーブルの生成(S2802)では、埋め込みアドレスソート
テーブルに基づいて、混成データ上の混成データブロックの配置を特定する混成データブ
ロックテーブルを生成する。詳しくは、図31を用いて後述する。暗号データの生成(S
2803)では、混成データブロックテーブルに基づいて、混成データブロックを読み込
み、暗号データブロックとして保存データファイルに書き込む。詳しくは、図32を用い
て後述する。
The encryption data reproduction process (S2701) in FIG. 27 will be described in detail. FIG. 28 is a diagram showing an encrypted data reproduction processing flow. Generation of embedded address sort table (S2801)
Then, an embedded address sorting table in which the embedded addresses of the MAC address part blocks included in the hybrid data are sorted in ascending order is generated. Details will be described later with reference to FIG. In the generation of the hybrid data block table (S2802), a hybrid data block table that specifies the arrangement of the hybrid data block on the hybrid data is generated based on the embedded address sort table. Details will be described later with reference to FIG. Generation of encrypted data (S
2803), based on the hybrid data block table, the hybrid data block is read and written into the storage data file as an encrypted data block. Details will be described later with reference to FIG.

前述の埋め込みアドレスソートテーブルの生成(S2801)について詳述する。図2
9は、埋め込みアドレスソートテーブルの生成処理フローを示す図である。まず、所定の
起点アドレスを、埋め込みアドレスの一つとして記憶する(S2901)。次に、保存デ
ータファイルハンドルと所定の起点アドレスとMACアドレスパーツブロックサイズを指
定して、読み込みをデバイスドライバ400に指示し、第一のMACアドレスパーツブロ
ックを読み込む(S2902)。読み込んだMACアドレスパーツブロックから、次パー
ツ埋め込みアドレスを特定し(S2903)、次パーツ埋め込みアドレスを、埋め込みア
ドレスの一つとして記憶する(S2904)。すべてのMACアドレスパーツブロックを
読み込むまでループ処理を継続し(S2905)、保存データファイルハンドルと次パー
ツ埋め込みアドレスとMACアドレスパーツブロックサイズを指定して、読み込みをデバ
イスドライバ400に指示し、次のMACアドレスパーツブロックを読み込む(S290
6)。すべてのMACアドレスパーツブロックを読み込み、すべての埋め込みアドレスを
特定すると、特定した埋め込みアドレス群を昇順にソートする(S2907)。このよう
にして、埋め込みアドレスソートテーブルが得られる。図30は、埋め込みアドレスソー
トテーブルの構成例を示す図である。埋め込みアドレスソートテーブル3000は、デー
タ復元部675の内部の記憶領域に設けられる。
The generation of the aforementioned embedded address sort table (S2801) will be described in detail. FIG.
FIG. 9 is a diagram showing a processing flow for generating an embedded address sort table. First, a predetermined starting address is stored as one of embedded addresses (S2901). Next, a storage data file handle, a predetermined starting address, and a MAC address part block size are designated, and reading is instructed to the device driver 400 to read the first MAC address part block (S2902). The next part embedded address is specified from the read MAC address part block (S2903), and the next part embedded address is stored as one of the embedded addresses (S2904). The loop processing is continued until all the MAC address part blocks are read (S2905), the storage data file handle, the next part embedded address, and the MAC address part block size are designated, and the device driver 400 is instructed to read the next MAC address. Read the address part block (S290)
6). When all the MAC address part blocks are read and all the embedded addresses are specified, the specified embedded address group is sorted in ascending order (S2907). In this way, an embedded address sort table is obtained. FIG. 30 is a diagram illustrating a configuration example of an embedded address sort table. The embedded address sort table 3000 is provided in a storage area inside the data restoration unit 675.

前述の混成データブロックテーブルの生成(S2802)について詳述する。図31は
、混成データブロックテーブルの生成処理フローを示す図である。この処理では、埋め込
みアドレスソートテーブルに基づいて、前述の図18と同様の混成データブロックテーブ
ル1800を生成する。まず、第1の混成データブロックの開始アドレス(1851:1
801)を0とし(S3101)、順次埋め込みアドレスと混成データブロックについて
、以下の処理を繰り返す(S3102)。埋め込みアドレスから1を差し引いて、当該混
成データブロックの終了アドレス(1802)を算出する(S3103)。次に、埋め込
みアドレスにMACアドレスパーツブロックサイズ(この例では、8バイト)を加えて、
次の混成データブロックの開始アドレス1801を算出する(S3104)。すべての埋
め込みアドレスについて上述の処理を繰り返すと(S3105)、保存データファイルの
ファイルサイズを取得し(S3106)、ファイルサイズから1を差し引いて、最後の混
成データブロックの終了アドレスとする(S3107)。最後の混成データブロックの終
了アドレスは、EOFとしてもよい。ファイルサイズは、例えばファイル全体を読み込む
ことにより特定することができる。
The generation of the hybrid data block table (S2802) will be described in detail. FIG. 31 is a diagram illustrating a generation processing flow of the hybrid data block table. In this process, a hybrid data block table 1800 similar to that shown in FIG. 18 is generated based on the embedded address sort table. First, the start address (1851: 1) of the first mixed data block
(801) is set to 0 (S3101), and the following processing is repeated for the embedded address and the hybrid data block in sequence (S3102). By subtracting 1 from the embedded address, the end address (1802) of the hybrid data block is calculated (S3103). Next, add the MAC address part block size (8 bytes in this example) to the embedded address,
The start address 1801 of the next hybrid data block is calculated (S3104). When the above processing is repeated for all the embedded addresses (S3105), the file size of the saved data file is acquired (S3106), and 1 is subtracted from the file size to obtain the end address of the last mixed data block (S3107). The end address of the last hybrid data block may be EOF. The file size can be specified by reading the entire file, for example.

前述の暗号データの生成(S2803)について詳述する。図32は、暗号データの生
成処理フローを示す図である。まず、デバイスドライバ400へ暗号データファイル名を
指定して、暗号データファイルオブジェクトのクリエイトを指示し、デバイスドライバ4
00から暗号データファイルのファイルハンドルを取得し、取得した暗号データファイル
ハンドルを暗号データファイルハンドル記憶部2602に記憶させる(S3201)。そ
して、混成データブロックテーブルに含まれる混成データブロックのレコード毎に以下の
処理を繰り返す(S3202)。保存データファイルハンドル記憶部673に記憶してい
る保存データファイルハンドルと混成データブロックの開始アドレスと終了アドレスを指
定して、読み込みをデバイスドライバ400に指示し、混成データブロックを読み込む(
S3203)。例えば、ファイルリードのファンクションと、保存データファイルハンド
ルと、開始アドレスと、データサイズ(終了アドレス−開始アドレス+1)を含むパケッ
トを生成し、そのパケットをデバイスドライバ400へ送り、所定のバッファから混成デ
ータブロックを読み込む。そして、読み込んだ混成データブロックを、先頭から順に保存
データファイル501に暗号データブロックとして書き込む(S3204)。このとき、
暗号データファイルハンドルと暗号データブロックを書き込むアドレスを指定する。例え
ば、所定のバッファへ暗号データブロックを書き込み、ファイルライトのファンクション
と、暗号データファイルハンドルと、書き込むアドレスと、データサイズを含むパケット
を生成し、そのパケットをデバイスドライバ400へ送る。暗号データブロックを書き込
むアドレスは、0から開始し、順次前回書き込んだ暗号データブロックのデータサイズを
加えることにより求めることができる。すべてのデータブロックについて処理した時点で
終了する(S3205)。これにより、暗号データブロックを連結する。
The generation of encrypted data (S2803) will be described in detail. FIG. 32 is a diagram showing a flow of processing for generating encrypted data. First, the encryption data file name is designated to the device driver 400, the creation of the encryption data file object is instructed, and the device driver 4
The file handle of the encrypted data file is acquired from 00, and the acquired encrypted data file handle is stored in the encrypted data file handle storage unit 2602 (S3201). Then, the following processing is repeated for each record of the hybrid data block included in the hybrid data block table (S3202). The saved data file handle stored in the saved data file handle storage unit 673, the start address and the end address of the hybrid data block are designated, and reading is instructed to the device driver 400 to read the hybrid data block (
S3203). For example, a packet including a file read function, a stored data file handle, a start address, and a data size (end address−start address + 1) is generated, and the packet is sent to the device driver 400, and the mixed data is transmitted from a predetermined buffer. Read the block. Then, the read hybrid data block is written in the storage data file 501 as an encrypted data block in order from the top (S3204). At this time,
Specify the address to write the encryption data file handle and encryption data block. For example, the encrypted data block is written into a predetermined buffer, a packet including the file write function, the encrypted data file handle, the write address, and the data size is generated, and the packet is sent to the device driver 400. The address for writing the encrypted data block can be obtained by starting from 0 and sequentially adding the data size of the previously written encrypted data block. The process ends when all data blocks have been processed (S3205). As a result, the encrypted data blocks are concatenated.

前述の復号処理(S2702)について詳述する。図33は、復号処理フローを示す図
である。まず、デバイスドライバ400へ平文データファイル名を指定して、平文データ
ファイルオブジェクトのクリエイトを指示し、デバイスドライバ400から平文データフ
ァイルのファイルハンドルを取得する。例えば、ファイルオープン(または、ファイルク
リエイト)のファンクションと、所定の平文データファイル名を含むパケットを生成し、
デバイスドライバ400へ送る。そして、取得した平文データファイルハンドルを平文デ
ータファイルハンドル記憶部2604に記憶させる(S3301)。次に、暗号データフ
ァイルハンドル記憶部2602に記憶している暗号データファイルハンドルを指定して、
暗号データの全体の読み込みをデバイスドライバ400に指示し、暗号データ全体を取得
する(S3302)。取得した暗号データ全体を復号し、平文データを生成する(S33
03)。最後に、平文データファイルハンドル記憶部2604に記憶している平文データ
ファイルハンドルを指定して、平文データ全体の書き込みをデバイスドライバ400に指
示する(S3304)。例えば、所定のバッファへ平文データを書き込み、ファイルライ
トのファンクションと、平文データファイルハンドルと、書き込むアドレスと、データサ
イズを含むパケットを生成し、そのパケットをデバイスドライバ400へ送る。
The decoding process (S2702) will be described in detail. FIG. 33 is a diagram showing a decoding processing flow. First, the plaintext data file name is designated to the device driver 400, the creation of the plaintext data file object is instructed, and the file handle of the plaintext data file is acquired from the device driver 400. For example, create a packet that contains a file open (or file create) function and a given plaintext data file name,
Send to device driver 400. Then, the acquired plaintext data file handle is stored in the plaintext data file handle storage unit 2604 (S3301). Next, the encryption data file handle stored in the encryption data file handle storage unit 2602 is designated,
The device driver 400 is instructed to read the entire encrypted data, and the entire encrypted data is acquired (S3302). The entire acquired encrypted data is decrypted to generate plaintext data (S33).
03). Finally, the plaintext data file handle stored in the plaintext data file handle storage unit 2604 is designated, and the device driver 400 is instructed to write the entire plaintext data (S3304). For example, plain text data is written to a predetermined buffer, a packet including a file write function, a plain text data file handle, a write address, and a data size is generated, and the packet is sent to the device driver 400.

前述の暗号データファイル消去処理(S2703)について詳述する。図34は、暗号
データファイル消去処理フローを示す図である。暗号データファイルハンドル記憶部26
02に記憶している暗号データファイルハンドルを指定して、暗号データファイルオブジ
ェクトのクローズをデバイスドライバ400に指示し(S3401)、更に同じく暗号デ
ータファイルハンドルを指定して、暗号データファイルオブジェクトのデリートをデバイ
スドライバ400に指示する(S3402)。
The encrypted data file erasure process (S2703) will be described in detail. FIG. 34 is a diagram showing an encrypted data file erasing process flow. Encrypted data file handle storage unit 26
The encrypted data file handle stored in 02 is designated, and the device driver 400 is instructed to close the encrypted data file object (S3401). Similarly, the encrypted data file handle is designated to delete the encrypted data file object. The device driver 400 is instructed (S3402).

前述の平文データ複製処理(S2704)について詳述する。図35は、平文データ複
製処理フローを示す図である。平文データファイルハンドル記憶部2604に記憶してい
る平文データファイルハンドルを指定して、平文データファイルオブジェクトからの平文
データ全体の読み込みを指示し、平文データ全体を取得する(S3501)。そして、デ
バイスドライバ400へ、保存データファイルハンドル記憶部673に記憶している保存
データファイルハンドルを指定して、保存データファイルオブジェクトへの平文データ全
体の書き込みを指示する(S3502)。
The plaintext data replication process (S2704) will be described in detail. FIG. 35 is a diagram showing a plain text data replication processing flow. The plaintext data file handle stored in the plaintext data file handle storage unit 2604 is designated, the entire plaintext data is read from the plaintext data file object, and the entire plaintext data is acquired (S3501). Then, the device driver 400 is instructed to write the entire plaintext data to the saved data file object by designating the saved data file handle stored in the saved data file handle storage unit 673 (S3502).

前述の平文データファイル消去処理(S2705)について詳述する。図36は、平文
データファイル消去処理フローを示す図である。平文データファイルハンドル記憶部26
04に記憶している平文データファイルハンドルを指定して、デバイスドライバ400へ
平文データファイルオブジェクトのクローズを指示する(S3601)。例えば、ファイ
ルクローズのファンクションと、平文データファイルハンドルを含むパケットを生成し、
そのパケットをデバイスドライバ400へ送る。更に同じく平文データファイルハンドル
を指定して、デバイスドライバ400へ平文データファイルオブジェクトのデリートを指
示する(S3602)。例えば、ファイルデリートのファンクションと、平文データファ
イルハンドルを含むパケットを生成し、そのパケットをデバイスドライバ400へ送る。
実施の形態2.
MACアドレスを分割せずに、MACアドレス全体を含む単一のブロックを混成データ
に含めてもよい。その場合、混成データブロックの決定(S1301)では、第1と第2
の暗号データブロックのみを決定する。また、MACアドレスパーツブロックを1つとみ
なして、混成データの配置の決定(S1302)及び混成データの書き込み(S1303
)の処理を行なう。
The plaintext data file deletion process (S2705) will be described in detail. FIG. 36 is a diagram showing a plain text data file erasing process flow. Plain text data file handle storage unit 26
The plaintext data file handle stored in 04 is designated, and the device driver 400 is instructed to close the plaintext data file object (S3601). For example, create a packet containing a file close function and a plaintext data file handle,
The packet is sent to the device driver 400. Similarly, the plaintext data file handle is designated, and the device driver 400 is instructed to delete the plaintext data file object (S3602). For example, a packet including a file delete function and a plain text data file handle is generated, and the packet is sent to the device driver 400.
Embodiment 2. FIG.
A single block including the entire MAC address may be included in the hybrid data without dividing the MAC address. In that case, in the determination of the hybrid data block (S1301), the first and second
Only the encrypted data block is determined. Further, regarding the MAC address part block as one, the determination of the arrangement of the hybrid data (S1302) and the writing of the hybrid data (S1303)
).

この形態の場合、MACアドレスパーツブロックに相当するブロックにはMACアドレ
ス全体が含まれるので、MACアドレスブロックと呼ぶことができる。次パーツ埋め込み
アドレスは、不要となる。
In the case of this form, since the entire MAC address is included in the block corresponding to the MAC address part block, it can be called a MAC address block. The next part embedding address becomes unnecessary.

MACアドレス復元処理(S2401)では、所定の起点アドレスからMACアドレス
全体を読み取る。暗号データ再現処理(S2701)では、第1と第2の暗号データブロ
ックを連結して暗号データを再現する。
実施の形態3.
MACアドレスを暗号化した上で、混成データに含めることも有効である。
In the MAC address restoration process (S2401), the entire MAC address is read from a predetermined starting address. In the encrypted data reproduction process (S2701), the first and second encrypted data blocks are connected to reproduce the encrypted data.
Embodiment 3 FIG.
It is also effective to include the encrypted MAC address in the hybrid data.

図9のMACアドレス取得処理(S902)の次に、取得したMACアドレスを暗号化
する処理を行なうMACアドレス暗号化部を設ける。データ混成処理(S903)では、
暗号化されたMACアドレスをパーツに分けて、前述と同様の動作を行なう。
Next to the MAC address acquisition process (S902) of FIG. 9, a MAC address encryption unit is provided for performing a process of encrypting the acquired MAC address. In the data mixing process (S903),
The encrypted MAC address is divided into parts and the same operation as described above is performed.

図24のMACアドレス復元処理(S2401)の最後、つまり図25のS2506の
後に、生成したMACアドレスを復号する処理を行なう。
A process of decoding the generated MAC address is performed at the end of the MAC address restoration process (S2401) of FIG. 24, that is, after S2506 of FIG.

実施の形態2に対して、本形態のMACアドレスの暗号化と復号を施してもよい。   The MAC address encryption and decryption of the present embodiment may be applied to the second embodiment.

MACアドレスも暗号化することにより、MACアドレスのかいざんによる成りすまし
を防止できる。
実施の形態4.
上述のMACアドレスは、ネットワーク機器の個体情報であり、コンピュータ固有情報
の例である。MACアドレスパーツ、MACアドレスパーツブロック、MACアドレスパ
ーツブロックテーブル、MACアドレス取得部、取得MACアドレス記憶部、MACアド
レス復元部、復元MACアドレス記憶部、及びMACアドレス比較部は、それぞれコンピ
ュータ固有情報パーツ、コンピュータ固有情報パーツブロック、コンピュータ固有情報パ
ーツブロックテーブル、コンピュータ固有情報取得部、取得コンピュータ固有情報記憶部
、コンピュータ固有情報復元部、復元コンピュータ固有情報記憶部、及びコンピュータ固
有情報比較部の例である。コンピュータ固有情報として、例えばディスクドライブ等で保
持する個体情報や、チップ等の回路で保持する個体情報や、増設ボード等で保持する個体
情報を用いてもよい。コンピュータ固有情報取得部では、これらディスクドライブ、チッ
プ、あるいは増設ボードなど当該コンピュータに含まれるハードウエアモジュールから個
体情報を、コンピュータ固有情報として取得するように動作する。
By also encrypting the MAC address, it is possible to prevent spoofing due to the MAC address.
Embodiment 4 FIG.
The above-mentioned MAC address is individual information of network devices and is an example of computer-specific information. MAC address parts, MAC address parts block, MAC address parts block table, MAC address acquisition unit, acquisition MAC address storage unit, MAC address restoration unit, restoration MAC address storage unit, and MAC address comparison unit are computer-specific information parts, It is an example of a computer specific information part block, a computer specific information part block table, a computer specific information acquisition unit, an acquired computer specific information storage unit, a computer specific information restoration unit, a restored computer specific information storage unit, and a computer specific information comparison unit. As computer-specific information, for example, individual information held by a disk drive or the like, individual information held by a circuit such as a chip, or individual information held by an extension board or the like may be used. The computer-specific information acquisition unit operates to acquire individual information as computer-specific information from hardware modules included in the computer such as the disk drive, chip, or expansion board.

上述の動作モジュール要素はプログラムにより処理を実行することができる。また、プ
ログラムを記憶媒体に記憶させ、記憶媒体からコンピュータに読み取られるようにするこ
とができる。
The operation module elements described above can execute processing by a program. Further, the program can be stored in a storage medium so that the computer can read the program from the storage medium.

図37は、コンピュータのハードウエア構成を示す図である。バスに、演算装置370
1、データ記憶装置3702、メモリ3703、通信インターフェース(ネットワークカ
ード)3704が接続されている。データ記憶装置3702は、例えばROM(Read
Only Memory)やハードディスクである。メモリ3703は、通常RAM(
Random Access Memory)である。プログラムは、通常データ記憶装
置3702に記憶されており、メモリ3703にロードされた状態で、順次演算装置37
01に読み込まれ処理を行う。通信インターフェース(ネットワークカード)3704に
は、MACアドレスが記憶されており、演算装置3701はバスを介してこのMACアド
レスを取得できるように構成されている。
FIG. 37 is a diagram illustrating a hardware configuration of a computer. Arithmetic device 370 on the bus
1, a data storage device 3702, a memory 3703, and a communication interface (network card) 3704 are connected. The data storage device 3702 is, for example, a ROM (Read
Only Memory) or a hard disk. The memory 3703 is a normal RAM (
Random Access Memory). The program is stored in the normal data storage device 3702, and is sequentially loaded into the memory 3703, and then the arithmetic device 37.
01 is read and processed. The communication interface (network card) 3704 stores a MAC address, and the arithmetic device 3701 is configured to acquire this MAC address via a bus.

本発明に係るデータの構造を示す図である。It is a figure which shows the structure of the data based on this invention. MACアドレスパーツブロックの構成例を示す図である。It is a figure which shows the structural example of a MAC address part block. フィルタドライバの構成を示す図である。It is a figure which shows the structure of a filter driver. フィルタドライバの処理フローを示す図である。It is a figure which shows the processing flow of a filter driver. 新規ファイルオープンのデータフローを示す図である。It is a figure which shows the data flow of a new file open. ファイルライトのデータフローを示す図である。It is a figure which shows the data flow of a file write. ファイルリードのデータフローを示す図である。It is a figure which shows the data flow of a file read. ファイルクローズのモジュール構成とデータフローを示す図である。It is a figure which shows the module structure and data flow of a file close. フィルタドライバのファイルクローズ処理フローを示す図である。It is a figure which shows the file close processing flow of a filter driver. データ混成部のモジュール構成を示す図である。It is a figure which shows the module structure of a data mixture part. データ混成処理フローを示す図である。It is a figure which shows a data hybrid processing flow. 暗号化処理フローを示す図である。It is a figure which shows an encryption process flow. データレイアウト処理フローを示す図である。It is a figure which shows a data layout processing flow. 暗号データブロックの決定処理フローを示す図である。It is a figure which shows the determination processing flow of an encryption data block. 暗号データブロックテーブルの構成例を示す図である。It is a figure which shows the structural example of an encryption data block table. 混成データの配置の決定処理フローを示す図である。It is a figure which shows the determination processing flow of arrangement | positioning of hybrid data. MACアドレスパーツブロックテーブルの構成例を示す図である。It is a figure which shows the structural example of a MAC address parts block table. 混成データブロックテーブルの構成例を示す図である。It is a figure which shows the structural example of a hybrid data block table. 混成データの書き込み処理フローを示す図である。It is a figure which shows the write-in processing flow of hybrid data. 暗号データファイル消去処理フローを示す図である。It is a figure which shows an encryption data file deletion process flow. 既存ファイルオープンのモジュール構成とデータフローを示す図である。It is a figure which shows the module structure and data flow of the existing file opening. フィルタドライバの既存ファイルオープン処理フローを示す図である。It is a figure which shows the existing file open process flow of a filter driver. MACアドレス検証部のモジュール構成を示す図である。It is a figure which shows the module structure of a MAC address verification part. MACアドレス検証処理フローを示す図である。It is a figure which shows a MAC address verification process flow. MACアドレス復元処理フローを示す図である。It is a figure which shows a MAC address restoration process flow. データ復元部のモジュール構成を示す図である。It is a figure which shows the module structure of a data decompression | restoration part. データ復元処理フローを示す図である。It is a figure which shows a data restoration process flow. 暗号データ再現処理フローを示す図である。It is a figure which shows an encryption data reproduction process flow. 埋め込みアドレスソートテーブルの生成処理フローを示す図である。It is a figure which shows the production | generation processing flow of an embedded address sort table. 埋め込みアドレスソートテーブルの構成例を示す図である。It is a figure which shows the structural example of an embedded address sort table. 混成データブロックテーブルの生成処理フローを示す図である。It is a figure which shows the production | generation processing flow of a hybrid data block table. 暗号データの生成処理フローを示す図である。It is a figure which shows the production | generation processing flow of encryption data. 復号処理フローを示す図である。It is a figure which shows a decoding processing flow. 暗号データファイル消去処理フローを示す図である。It is a figure which shows an encryption data file deletion process flow. 平文データ複製処理フローを示す図である。It is a figure which shows a plaintext data replication process flow. 平文データファイル消去処理フローを示す図である。It is a figure which shows a plaintext data file deletion process flow. コンピュータのハードウエア構成を示す図である。It is a figure which shows the hardware constitutions of a computer.

符号の説明Explanation of symbols

100 平文データ、110 暗号データ、120 MACアドレス、130 混成デ
ータ、111〜117 暗号データブロック、131〜137 混成データブロック、1
41〜147 MACアドレスパーツブロック、200 MACアドレスパーツブロック
、201 MACアドレスパーツ、202 次パーツ埋め込みアドレス、203 予備領
域、300 I/Oマネージャ、400 デバイスドライバ、500 HDDデバイス、
501 保存データファイル、502 暗号データファイル、503 暗号データファイ
ル、504 平文データファイル、610 パケット受信部、620 ファンクション判
定部、630 新規ファイルオープン処理部、640 ファイルライト処理部、650
ファイルリード処理部、660 ファイルクローズ処理部、 661パラメータ入力部、
662 MACアドレス取得部、663 取得MACアドレス記憶部、664 データ混
成部、665 ファイルオブジェクトクローズ部、666 リターン値出力部、670
既存ファイルオープン処理部、671 パラメータ入力部、672 ファイルオブジェク
トオープン部、673 保存データファイルハンドル記憶部、674 MACアドレス検
証部、675 データ復元部、676 パラメータ出力部、677 ファイルオブジェク
トクローズ部、678 エラー結果出力部、1001 暗号化部、1002 暗号データ
ファイルハンドル記憶部、1003 データレイアウト部、1004 暗号データファイ
ル消去部、1500 暗号データブロックテーブル、1501 暗号データブロックの開
始アドレス、1502 暗号データブロックの終了アドレス、1700 MACアドレス
パーツブロックテーブル、1701 MACアドレスパーツ、1702 埋め込みアドレ
ス、1800 混成データブロックテーブル、1801 混成データブロックの開始アド
レス、1802 混成データブロックの終了アドレス、2301 MACアドレス復元部
、2302 復元MACアドレス記憶部、2303 MACアドレス取得部、2304
取得MACアドレス記憶部、2305 MACアドレス比較部、2601 暗号データ再
現部、2602 暗号データファイルハンドル記憶部、2603 復号部、2604 平
文データファイルハンドル記憶部、2605 暗号データファイル消去部、2606 平
文データ複製部、2607 平文データファイル消去部、3000 I/Oマネージャ、
3701 演算装置、3702 データ記憶装置、3703 メモリ、3704 通信イ
ンターフェース(ネットワークカード)。
100 plaintext data, 110 encrypted data, 120 MAC address, 130 hybrid data, 111-117 cryptographic data block, 131-137 hybrid data block, 1
41-147 MAC address part block, 200 MAC address part block, 201 MAC address part, 202 secondary part embedded address, 203 spare area, 300 I / O manager, 400 device driver, 500 HDD device,
501 Saved data file, 502 Encrypted data file, 503 Encrypted data file, 504 Plain text data file, 610 Packet receiving unit, 620 Function determining unit, 630 New file open processing unit, 640 File write processing unit, 650
File read processing unit, 660 file close processing unit, 661 parameter input unit,
662 MAC address acquisition unit, 663 acquisition MAC address storage unit, 664 data combination unit, 665 file object close unit, 666 return value output unit, 670
Existing file open processing unit, 671 Parameter input unit, 672 File object open unit, 673 Stored data file handle storage unit, 674 MAC address verification unit, 675 Data restoration unit, 676 Parameter output unit, 677 File object close unit, 678 Error result Output unit, 1001 encryption unit, 1002 encryption data file handle storage unit, 1003 data layout unit, 1004 encryption data file deletion unit, 1500 encryption data block table, 1501 start address of encryption data block, 1502 end address of encryption data block, 1700 MAC address parts block table, 1701 MAC address parts, 1702 embedded address, 1800 hybrid data block table, 1801 Start address of forming a data block, an end address of 1802 composite data blocks, 2301 MAC address restorer, 2302 restores MAC address storage unit, 2303 MAC address obtaining unit, 2304
Acquired MAC address storage unit, 2305 MAC address comparison unit, 2601 encrypted data reproduction unit, 2602 encrypted data file handle storage unit, 2603 decryption unit, 2604 plaintext data file handle storage unit, 2605 encrypted data file deletion unit, 2606 plaintext data replication unit 2607, plaintext data file erasure unit, 3000 I / O manager,
3701 arithmetic device, 3702 data storage device, 3703 memory, 3704 communication interface (network card).

Claims (4)

ディスクドライブデバイスと、当該ディスクドライブデバイスのデバイスドライバと、当該デバイスドライバに対してファイル操作を指示するI/Oマネージャを備えるコンピュータであって、更に以下の要素を有する、I/Oマネージャとデバイスドライバの間に割り込み、カーネルモードで動作するフィルタドライバを備えることを特徴とする機密保持コンピュータ
(1)I/Oマネージャからデバイスドライバへ送られるI/Oリクエストパケットを受信するパケット受信部
(2)受信したI/Oリクエストパケットに含まれるファンクションを判定するファンクション判定部
(3)判定したファンクションがファイルクローズの場合に、当該コンピュータに含まれるハードウエアモジュールから当該モジュールの個体情報をコンピュータ固有情報として取得し、
オープン中のファイルデータを暗号化し、暗号化したデータを少なくとも一部は任意サイズである暗号データブロック群に分割し、
コンピュータ固有情報をコンピュータ固有情報パーツ群に分割し、コンピュータ固有情報パーツ毎に、当該コンピュータ固有情報パーツに次パーツの埋め込みアドレスを付加したコンピュータ固有情報パーツブロックを生成し、
暗号データブロック群を混成データブロック群として、各混成データブロックと各コンピュータ固有情報パーツブロックを交互に配置した混成データを生成し、デバイスドライバへ、当該混成データをファイルデータとして記憶させるファイルライトの指示を送るファイルクローズ処理部
(4)判定したファンクションが既存ファイルオープンの場合に、当該コンピュータに含まれるハードウエアモジュールから当該モジュールの個体情報をコンピュータ固有情報として取得し、
オープン中のファイルの混成データからコンピュータ固有情報パーツブロックを読み取り、読み取ったコンピュータ固有情報パーツブロックからコンピュータ固有情報パーツと次パーツの埋め込みアドレスを特定し、次パーツの埋め込みアドレスに基づいて次のコンピュータ固有情報パーツブロックの格納位置を特定する処理を繰り返すことにより、コンピュータ固有情報を復元し、
取得したコンピュータ固有情報と復元したコンピュータ固有情報が一致した場合に、前記次パーツの埋め込みアドレスに基づいて、オープン中のファイルの混成データから混成データブロック群を読み取り、暗号データを再現し、再現した暗号データを復号し、デバイスドライバへ、復号したデータをファイルデータとして記憶させるファイルライトの指示を送る既存ファイルオープン処理部。
A computer comprising a disk drive device, a device driver for the disk drive device, and an I / O manager for instructing the device driver to perform file operations, and further comprising the following elements: I / O manager and device driver (1) A packet receiving unit (2) for receiving an I / O request packet sent from the I / O manager to the device driver, comprising a filter driver operating in the kernel mode. Function determination unit for determining the function included in the I / O request packet (3) When the determined function is file close, the individual information of the module is calculated from the hardware module included in the computer. Acquired as data-specific information,
Encrypts open file data , divides the encrypted data into encrypted data block groups that are at least partially arbitrary size,
Computer specific information is divided into computer specific information parts, and for each computer specific information part, a computer specific information part block in which the embedded address of the next part is added to the computer specific information part is generated.
Using the encryption data block group as a mixed data block group, generating mixed data in which each hybrid data block and each computer-specific information part block are alternately arranged, and instructing the file write to store the mixed data as file data to the device driver When the determined function is an existing file open, the individual information of the module is acquired as computer specific information from the hardware module included in the computer,
Read the computer specific information part block from the mixed data of the open file, identify the embedded address of the computer specific information part and the next part from the read computer specific information part block, and then specify the next computer specific based on the embedded address of the next part By repeating the process of specifying the storage location of the information part block, the computer-specific information is restored,
When the acquired computer-specific information matches the restored computer-specific information, the mixed data block group is read from the mixed data of the open file based on the embedded address of the next part, and the encrypted data is reproduced and reproduced. An existing file open processing unit that decrypts encrypted data and sends a file write instruction to the device driver to store the decrypted data as file data.
前記コンピュータ固有情報は、コンピュータが備えるネットワーク機器のMACアドレスであることを特徴とする請求項1記載の機密保持コンピュータ。   2. The confidential computer according to claim 1, wherein the computer specific information is a MAC address of a network device provided in the computer. ファイルクローズ処理部は、コンピュータ固有情報を暗号化し、暗号化したコンピュータ固有情報を前記分割の対象とし
既存ファイルオープン処理部は、混成データから読み出したコンピュータ固有情報を復号することを特徴とする請求項1記載の機密保持コンピュータ。
The file close processing unit encrypts the computer specific information, sets the encrypted computer specific information as the object of the division ,
2. The confidential computer according to claim 1, wherein the existing file open processing unit decrypts the computer specific information read from the mixed data.
ディスクドライブデバイスと、当該ディスクドライブデバイスのデバイスドライバと、当該デバイスドライバに対してファイル操作を指示するI/Oマネージャを備えるコンピュータに、I/Oマネージャとデバイスドライバの間に割り込み、カーネルモードで動作するフィルタドライバとして以下の手順を実行させるためのプログラム
(1)I/Oマネージャからデバイスドライバへ送られるI/Oリクエストパケットを受信するパケット受信手順
(2)受信したI/Oリクエストパケットに含まれるファンクションを判定するファンクション判定手順
(3)判定したファンクションがファイルクローズの場合に、当該コンピュータに含まれるハードウエアモジュールから当該モジュールの個体情報をコンピュータ固有情報として取得し、
オープン中のファイルデータを暗号化し、暗号化したデータを少なくとも一部は任意サイズである暗号データブロック群に分割し、
コンピュータ固有情報をコンピュータ固有情報パーツ群に分割し、コンピュータ固有情報パーツ毎に、当該コンピュータ固有情報パーツに次パーツの埋め込みアドレスを付加したコンピュータ固有情報パーツブロックを生成し、
暗号データブロック群を混成データブロック群として、各混成データブロックと各コンピュータ固有情報パーツブロックを交互に配置した混成データを生成し、デバイスドライバへ、当該混成データをファイルデータとして記憶させるファイルライトの指示を送るファイルクローズ処理手順
(4)判定したファンクションが既存ファイルオープンの場合に、当該コンピュータに含まれるハードウエアモジュールから当該モジュールの個体情報をコンピュータ固有情報として取得し、
オープン中のファイルの混成データからコンピュータ固有情報パーツブロックを読み取り、読み取ったコンピュータ固有情報パーツブロックからコンピュータ固有情報パーツと次パーツの埋め込みアドレスを特定し、次パーツの埋め込みアドレスに基づいて次のコンピュータ固有情報パーツブロックの格納位置を特定する処理を繰り返すことにより、コンピュータ固有情報を復元し、
取得したコンピュータ固有情報と復元したコンピュータ固有情報が一致した場合に、前記次パーツの埋め込みアドレスに基づいて、オープン中のファイルの混成データから混成データブロック群を読み取り、暗号データを再現し、再現した暗号データを復号し、デバイスドライバへ、復号したデータをファイルデータとして記憶させるファイルライトの指示を送る既存ファイルオープン処理手順。
A computer having a disk drive device, a device driver for the disk drive device, and an I / O manager that instructs the device driver to perform file operations is interrupted between the I / O manager and the device driver, and operates in a kernel mode. A program for executing the following procedure as a filter driver to perform (1) Packet reception procedure for receiving an I / O request packet sent from the I / O manager to the device driver (2) Included in the received I / O request packet Function determination procedure for determining a function (3) When the determined function is a file close, the individual information of the module is acquired as computer-specific information from the hardware module included in the computer,
Encrypts open file data , divides the encrypted data into encrypted data block groups that are at least partially arbitrary size,
Computer specific information is divided into computer specific information parts, and for each computer specific information part, a computer specific information part block in which the embedded address of the next part is added to the computer specific information part is generated.
Using the encryption data block group as a mixed data block group, generating mixed data in which each hybrid data block and each computer-specific information part block are alternately arranged, and instructing the file write to store the mixed data as file data to the device driver File close processing procedure (4) When the determined function is an existing file open, the individual information of the module is obtained as computer specific information from the hardware module included in the computer,
Read the computer specific information part block from the mixed data of the open file, identify the embedded address of the computer specific information part and the next part from the read computer specific information part block, and then specify the next computer specific based on the embedded address of the next part By repeating the process of specifying the storage location of the information part block, the computer-specific information is restored,
When the acquired computer-specific information matches the restored computer-specific information, the mixed data block group is read from the mixed data of the open file based on the embedded address of the next part, and the encrypted data is reproduced and reproduced. An existing file open processing procedure for decrypting encrypted data and sending a file write instruction for storing the decrypted data as file data to the device driver.
JP2005159474A 2005-05-31 2005-05-31 Confidentiality computer and program Expired - Fee Related JP4755851B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005159474A JP4755851B2 (en) 2005-05-31 2005-05-31 Confidentiality computer and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005159474A JP4755851B2 (en) 2005-05-31 2005-05-31 Confidentiality computer and program

Publications (2)

Publication Number Publication Date
JP2006338136A JP2006338136A (en) 2006-12-14
JP4755851B2 true JP4755851B2 (en) 2011-08-24

Family

ID=37558667

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005159474A Expired - Fee Related JP4755851B2 (en) 2005-05-31 2005-05-31 Confidentiality computer and program

Country Status (1)

Country Link
JP (1) JP4755851B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101552688B1 (en) * 2014-03-03 2015-09-11 주식회사 컴트루테크놀로지 Security method and system at endpoint stage using user policy
CN105488420B (en) * 2014-10-10 2018-08-28 广州联奕信息科技有限公司 A kind of method and device of the file encryption based on driving layer kernel level code
JP6717131B2 (en) * 2016-09-06 2020-07-01 富士通株式会社 Control program, control method, information processing device, decoding program, decoding method, and terminal device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978815A (en) * 1997-06-13 1999-11-02 Microsoft Corporation File system primitive providing native file system support for remote storage
JP4763866B2 (en) * 1998-10-15 2011-08-31 インターシア ソフトウェア エルエルシー Method and apparatus for protecting digital data by double re-encryption
JP2003195758A (en) * 2001-12-25 2003-07-09 Kenwood Corp Data processor, interface board and data concealing method
JP2004199312A (en) * 2002-12-18 2004-07-15 Toyo Commun Equip Co Ltd File encryption method
JP4487508B2 (en) * 2003-07-16 2010-06-23 ソニー株式会社 Information processing apparatus and method, and program
JP4588991B2 (en) * 2003-07-30 2010-12-01 美恵子 露崎 File management system

Also Published As

Publication number Publication date
JP2006338136A (en) 2006-12-14

Similar Documents

Publication Publication Date Title
JP4578119B2 (en) Information processing apparatus and security ensuring method in information processing apparatus
US8233624B2 (en) Method and apparatus for securing data in a memory device
JP4734585B2 (en) Method and apparatus for data encryption / decryption in mass storage device
US6075858A (en) Encryption key system and method
CN104160407B (en) Using storage control EBI guaranteeing the data transmission security between storage device and main frame
CN108256354B (en) Test data-based storage method and storage medium
JP2003058426A (en) Integrated circuit, and its circuit constituting method and program
WO2010006541A1 (en) Data storage method and device, and data splitting and separate storing device
JP4855272B2 (en) Content duplication apparatus and content duplication method
Khati et al. Full disk encryption: bridging theory and practice
CN115146318B (en) Virtual disk safe storage method
JP4755851B2 (en) Confidentiality computer and program
KR100291798B1 (en) Software encryption method and software encryption system
US20120233712A1 (en) Method and Device for Accessing Control Data According to Provided Permission Information
CN101086718A (en) Memory system
CN108763401A (en) A kind of reading/writing method and equipment of file
KR20090052130A (en) Data protection method using data partition
JP4791741B2 (en) Data processing apparatus and data processing method
JP2002101087A (en) Information-preserving system, information moving system and storage medium used for them
JP2000298974A (en) Information recording method capable of moving information made peculiar to medium
CA2616015A1 (en) Dma simultaneous transfer to multiple memories
JP2006293583A (en) File management method
CN108171043A (en) A kind of computer interface communications protection and abnormality alarming method and device
CN109684860B (en) Data encryption method and device based on business relation
JPH11259366A (en) Device and method for protecting data in electronic data exchange system, and storage medium recorded with program for realizing the method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100126

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110427

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110530

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140603

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4755851

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees