JP4687101B2 - データ保護プログラムおよびデータ保護方法 - Google Patents

データ保護プログラムおよびデータ保護方法 Download PDF

Info

Publication number
JP4687101B2
JP4687101B2 JP2004377021A JP2004377021A JP4687101B2 JP 4687101 B2 JP4687101 B2 JP 4687101B2 JP 2004377021 A JP2004377021 A JP 2004377021A JP 2004377021 A JP2004377021 A JP 2004377021A JP 4687101 B2 JP4687101 B2 JP 4687101B2
Authority
JP
Japan
Prior art keywords
data
row
column
columns
tabular
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
JP2004377021A
Other languages
English (en)
Other versions
JP2006185096A (ja
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004377021A priority Critical patent/JP4687101B2/ja
Publication of JP2006185096A publication Critical patent/JP2006185096A/ja
Application granted granted Critical
Publication of JP4687101B2 publication Critical patent/JP4687101B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明はデータ保護に関し、より詳細には表形式データを第三者に対して実データを隠蔽するよう保護するデータ保護プログラムおよびデータ保護方法に関する。
近年、企業からの個人データの流出、流出した個人データの悪用、それに伴う被害が問題となっており、これらに関する法律として個人情報保護法が2005年4月からの施行が予定されている。
一方で個人データのような重要且つ機密データに対するデータ保護の在り方が問われている。従来からもコンピュータに格納されたデータを第三者に対して隠蔽するデータ保護の方法として、データが格納されているコンピュータにアクセス権を設定してコンピュータそのものの使用を制限したり、データファイルへのアクセスが成された時にアクセス権を設定して使用制限を行う、といったことが行われている。また、データそのものを暗号化する方法も多く行われている。
最近では無線LAN(Local Area Network)の普及と共にインターネットの利用も盛んになり、無線、有線を問わずネットワーク上を流れるデータが多くなり、ネットワークからデータが漏洩する機会も多くなっている。さらには、いろいろな場面におけるデータ処理中のデータの盗視、記憶媒体に格納されたデータの紛失などの心配もある。
このようなことから、データ保護に対する技術がますます重要になってきている。特に、従来手法に捕らわれずに第三者に対して実データを隠蔽できる方法が求められており、これら技術の提案がなされている。。
例えば、暗号化されたデータをネットワークを介して送信する場合に、送信するデータの出現頻度をもとにダミーデータを混在して送信する方法が提案されている。これは、電子投票のデータ送信のようにデータに含まれる文字や数字の出現頻度に偏りがあるような場合に、暗号が解読されなくても傾向が推測されることを防止するものである(特許文献1)。
特開2004−260508号公報
上記に述べたように個人データの流出が社会問題となっており、データ保護に対する技術は重要なものとなっている。特に、近年ではデータを種々の場面で扱うことが想定され、従来のデータ保護対策の技術に加えて簡便で低コストなデータ保護の技術が求められている。
本発明のデータ保護プログラムおよびデータ保護方法は以下のように構成される。
(1)第1の発明
第1の発明は、表形式データの各行に対応して作成されたキーデータに基づいて実データ行の中にダミーデータ行の挿入を行うものである。
図1は第1の発明の原理を示すものでキーデータ作成手順10およびダミーデータ行挿入手順20で構成する。
キーデータ作成手順10は、所定の計算式で求められる値が特定の値となるデータとそうでないデータとを混在して表形式データの行に対応して配置したキーデータを作成する。所定の計算式とはある論理に基づいた計算式で例えばハッシュ関数である。キーデータには、例えばハッシュ関数で求められたハッシュ値がある特定の値となるデータとそうでないデータとを混在して配置する。キーデータはそのまま見ても特定の値となるデータか、そうでないデータかの判別がつかないデータである。また、特定の値は、1つの値とは限らず複数あってもよいし、またある範囲の値でもよい。
ダミーデータ行挿入手順20は、キーデータが所定の計算式で計算した値が特定の値となるデータか、特定の値とならないデータかにより、そのキーデータが対応する表形式データの行にダミーデータ行を挿入する。例えば、特定の値となるキーデータの行にダミーデータ行を挿入するとすれば、そうでない行は実データ行となる。この反対に、特定の値とならないキーデータの行にダミーデータ行を挿入するのであれば、特定の値となるキーデータに対応する行は実データ行である。
上記のキーデータ作成手順10とダミーデータ行挿入手順20により、実データ中にダミーデータ行が挿入された表形式データを作成することができる。ダミーデータを実データと似せたデータとすることにより、表形式データを第三者が見てもダミーデータが混在していることを容易に判断されずデータ保護がなされたことになる。
表形式データの復元時におけるダミーデータ行の識別は、キーデータを所定の計算式で計算し、その値が特定の値を持つかどうかで識別する。
(2)第2の発明
第2の発明は、所定の計算式で計算した値がそれぞれの列で固有の特定の値となるダミーデータ行を実データが配置された表形式データ中に挿入するものである。
図2は第2の発明の原理を示すものでダミーデータ行挿入手順21で構成する。なお、ダミーデータ行挿入手順21は第1の発明と同じ名称を持つ手順であるが、内容が異なるので記号を変えてある。
ダミーデータ行挿入手順21は、実データが配置された表形式データの任意の1つ以上の行に、所定の計算式で求められる値が各列でそれぞれ固有の特定の値となるダミーデータの行を挿入する。
表形式データの復元時におけるダミーデータ行の識別は、1行分の個々のデータを所定の計算式で計算し、その個々の計算値がそのダミーデータのそれぞれの列の特定の値と全て一致すればダミーデータ行と識別する。
(3)第3の発明
第3の発明は、表形式データの各列に対応してそれぞれ1列以上の列を設けておき、キーデータを所定の計算式で計算して得られる特定の値に基づいて実データの位置を分散させるものである。
図3は第3の発明の原理を示すものでキーデータ作成手順11、実データ分散手順50、ダミーデータ挿入手順60で構成する。
キーデータ作成手順11は、所定の計算式で計算したとき特定の値となるようなデータを表形式データの行に対応して配置してキーデータを作成する。
実データ分散手順50は、表形式データの実データの各列に対応して実データを分散させる1列以上の分散列をそれぞれ作成する。そして、表形式データの各行の実データを、その行と等しい行のキーデータから得られる特定の値によって実データの列に対応する分散列に分散して配置する。例えば、2列の実データから成る表形式データである場合、1列目の実データ列に対しては2列の分散列、2列目の実データ列に対しては3列の分散列を設け、1行1列目の実データは1行目のキーデータの特定の値に基づいて対応する2列の分散列の何れかに配置し、1行2列目の実データは同じ1行目のキーデータの特定の値に基づいて対応する3列の分散列の何れかに配置を行う。これを各行に実データに対して同様に行うものである。
ダミーデータ挿入手順60は、実データ分散手順50で実データが配置された分散列に対して、実データが配置された以外の箇所にダミーデータを挿入する。
復元時における実データの列位置の識別は、キーデータを所定の計算式で計算し、その値からその行のそれぞれの実データの列位置を識別する。
(4)第4の発明
第4の発明は、表形式データの実データに対して、キーデータの所定の計算式で計算した値に基づいて実データの列位置を入れ換えるもので、第1〜第3の発明のようにダミーデータを用いない方法によるものである。
図4は第4の発明の原理を示すものでキーデータ作成手順11および実データ入換手順70で構成する。
キーデータ作成手順11は、第3の発明と同様の内容である。
実データ入換手順70は、各行毎にキーデータを所定の計算式で求めた特定の値に基づいて、各行の個々の実データの入れ換えを行う列位置を決定し、その列位置に実データを移動する。
表形式データの復元時における実データの列位置の識別は、キーデータを所定の計算式で計算し、その値からその行の元の列位置を識別する。
(5)第5の発明
第5の発明は第1の発明に基づいたデータ保護方法である。
第1の発明では、第三者に対して挿入したダミーデータ行と実データ行との判別ができず、簡単な方法でデータ保護を行うプログラムの提供ができる。
第2の発明では、所定の計算式で得られる特定の値を持つダミーデータを挿入することにより、ダミーデータ行と実データ行との判別が困難なデータ保護プログラムを提供できる。
第3の発明では、キーデータの所定の計算式で得られる特定の値に基づいて実データを列方向に分散でき、第三者にはダミーデータの判別ができずより堅固なデータ保護のプログラムを提供できる。
第4の発明では、ダミーデータを挿入しないので元の表形式データの行や列を増やすことがなく堅固なデータ保護プログラムを提供できる。
第5の発明では、簡単な方法でダミーデータ行と実データ行との判別が困難なデータ保護方法の提供ができる。
本発明の実施例について図5から図18を用いて説明する。
図5はデータ保護装置200の構成例を示すもので、データ保護装置200はデータやプログラムを制御するCPU(Central Processing Unit)210、表形式データ等を表示するディスプレイ(DISP)220、操作者が例えばプログラムの起動をかけるための指示を行うキーボード(KB)230、データ保護がなされた表形式データを持ち運び等のために記録媒体に格納するフロッピー・ディスク装置(FPD)240、ディプレイ220、キーボード230およびフロッピー・ディスク装置240の入出力を制御する入出力制御部250、表形式データの保護や復元時にプログラムが使用する作業領域であるワークエリア260、データ保護装置200内に表形式データを格納するデータ記憶部270およびデータ保護プログラム280から構成する。ここでは、データの持ち運び等のために記録媒体に格納する装置としてフロッピー・ディスク装置240を備えるよう構成したが、CD−ROMやDVDであってもよい。
データ保護プログラム280は更に実データが配置された表形式データにダミーデータ等を挿入して保護を行うデータ保護処理部281およびデータ保護がなされた表形式データを復元するデータ復元処理部282から構成する。
次に本発明の具体的なデータ保護の実施例を実施例その1から実施例その5までの例を説明する。
(実施例その1)
実施例その1は第1の発明に対する実施例である。図6はそのデータ例を示し、図6(a)はデータ保護をかける対象の表形式データである。この表形式データは、4行3列で構成され第1列(以後、列1のように言う)には「姓」が、列2には「名」、列3は「電話番号」の実データがそれぞれ配置された状態を示している。図6(b)は、図6(a)の表形式データに挿入されるキーデータ列に配置する特定値を持つキーデータの例である。このキーデータは後述する文字構成と方法で生成されたデータの例である。図6(c)は特定値を持たないキーデータの例で、後述する文字構成でランダムに文字生成して特定値を持たないことを確認したデータの例である。図6(d)は、図6(a)の表形式データにキーデータ列が列4に挿入されたデータ例である。行2と行4の列1〜列3にはダミーデータが、列4には特定値を持つキーデータが挿入された状態を示している。それ以外の行の列1〜列3には実データが、列4には特定値を持たないキーデータが挿入されている。また、ダミーデータは実データと似せて作られている。
次に、キーデータを生成し、ダミーデータ行を挿入する方法をプログラムで処理するものとして説明する。ダミーデータを生成したり、ダミーデータ行を判別するための特定値やその計算式、ダミーデータの挿入行数を求める式等はプログラム中に組み込まれているものとする。
図7は実データが配置された表形式データを基にデータの保護を行う処理フローを示すもので、まずデータ保護の対象である表形式データ(M行N列)を取得する。図6(a)の場合、4行3列のデータである。次に取得した表形式データの行数を基にダミーデータの挿入行数(m)を計算する。例えばダミーデータの挿入行数の計算式がm=M/2であったとすると、この場合では2行が挿入行数と計算される(M=4であるから)。続いて、実際にダミーデータ行を挿入する行位置を決めるために、M+m以下の乱数をm個発生させる。即ち、6以下の乱数を2個発生させる。ここでは2と4が得られ、2行目と4行目をダミーデータ行とする。そして、M+m行N+1列の空の表を作成する(S100〜S130)。
次に、データ挿入ループに入り、1行目が実データ行かどうかを判断する。ステップ120(S120)で2行目と4行目がダミーデータ挿入行と決めたので、1行目は実データとなり、特定値を持たないキーデータを生成しN+1列をキーデータ列としてその1行目に配置する。
ここで、キーデータについて説明する。まず、キーデータは全体で9桁の英数字の文字列で構成するものとし、その内1、2、4および7桁は英字、他は数字からなるものとする。このキーデータは後述する計算式で計算する訳であるが、そのとき英字(アルファベット)のA〜Zを1〜26に、数字の1〜9を27〜35にそれぞれ置き換え、数字の0は36と置き換えて計算する。
プログラムに設定された計算式は、キーデータの1文字目と3文字目と7文字目の文字を読み取り、その文字を前述の数値に置き換えた3つの数値の和を求めることとする。また、特定値は「63」(即ち、1文字目と3文字目と7文字目の合計が63)とする。特定値を持つ文字列の生成は次のようにして行う。先ず最初に1文字目は英字であるから1〜26までの数値を乱数発生器により発生し、その値に対応する英字を決定する。例えば、8が発生されれば「H」が定まる。次の3文字目は数字であるので数字に変換される27〜36の間の乱数を発生する。もし、31が発生されればこれは数字の「5」と定まる。次の7文字目は英字であり、特定値の63を作るには後24が必要なので(63−8−31=24)、24に相当する英字の「X」が定まる。これで、1文字目と3文字目と7文字目が定まったので、他の文字は英字は1〜26、数字は27〜36で乱数を発生しその対応する文字に置き換える。このようにして、例えば「HJ5C90X71」が特定値「63」を持つキーデータとして生成されたことになる。
特定値を持たないキーデータは、それぞれの桁の英字か数字に対して乱数を発生し、前述の計算式で計算して63とならなければその文字列を配置し、もし63となった場合は再度乱数を発生し直すことを行う。
フローに戻り、1行目は実データであるのでキーデータ列(列4)には特定値を持たないキーデータを生成して配置し、列1〜列3にはS100で取得した1行目のデータ(実データ)をそのまま配置する。
次に2行目に移り、2行目はダミーデータであるのでキーデータ列には特定値を持つキーデータを生成し配置する。そして、列1〜列3にはダミーデータを挿入する。ダミーデータは、実データに似せたデータを生成し配置する。同様の処理をM+m行について行うと、実データ行にダミーデータ行が挿入されたことになる(S140〜S180)。
上述のデータ保護を行う処理の作業は図5のワークエリア260で行われ、完成した表形式データは図5のデータ記憶部270、あるいはフロッピー・ディスク240に格納される。
次に図8を用いてデータ復元のフローを説明する。
まず、データ保護がなされた表形式データを取り込む(S200)。
取得した表形式データのキーデータ列の1行目からデータを前述した計算式で計算し、その計算値が特定値の「63」に等しいときダミーデータ行と判断してその行位置を格納しておく(例えば、ワークエリアの所定の記憶位置に格納する)。計算値が特定値と等しくないときは、次の行のキーデータを計算する。この処理を1行目からM+m行目まで(ここでは1行目から6行目まで)行い、ダミーデータ挿入行の行位置を格納する。ここでは、2行と4行の行位置が格納されることになる(S210〜S230)。
次に格納された行位置の行を削除し、N+1列目に挿入されたキーデータ列を削除する。これにより表形式データは復元されたものとなる(S240、S250)。
以上の処理により、図6(a)の実データから図6(d)のダミーデータを混在したデータが作成され、また図6(d)のダミーデータが混在してデータ保護がなされたデータから図6(a)の実データに復元することができる。図7のデータ保護の処理および図8のデータ復元の処理は、それぞれ図5のデータ保護処理部281とデータ復元処理部282で処理される。
(実施例その2)
実施例その2は第2の発明に対する実施例である。図9はそのデータ例を示し、図9(a)はデータ保護をかける対象の表形式データで、実施例その1と同一のデータである。図9(b)は、図9(a)の表形式データに挿入されるダミーデータの例で、各列5個のダミーデータを備えている。これらの各列のダミーデータは各列毎にそれぞれ設定された特定値を持つデータである。そして、各列内のダミーデータの個々は同じ特定値を有しているデータである。図9(c)は、図9(a)の表形式データにダミーデータ行が挿入された状態を示している。このダミーデータ行のデータは図9(b)の各列にあるデータから1つずつ選択されたものである。
次に、ダミーデータを作成し、ダミーデータを挿入する方法をプログラムで処理するものとして説明する。プログラムには特定値を求める計算式、各列毎の特定値、ダミーデータの挿入行数計算式、ダミーデータ作成個数等が組み込まれているものとする。
図10は実データが配置された表形式データを基にデータの保護を行う処理フローを示すもので、まずデータ保護の対象である表形式データ(M行N列)を取得し、取得した表形式データの行数を基にダミーデータの挿入行数(m)を計算する。実施例その1と同様に2行が計算されたものとする。(S300、S310)。
次にプログラムに設定された列毎の特定値とダミーデータの作成個数を基にダミーデータを作成する。ここでは、各列の特定値が「21」、「15」及び「18」(即ち、F(列1)=21、F(列2)=15、F(列3)=18)と設定されており、ダミーデータの作成個数は「5」が設定されているものとする。これらの設定値をもとに各列の特定値に合うよう各列5個のダミーデータを作成する。
実施例その2の実データは図9(a)に示すように列1と列2は漢字であるので、この場合の計算式とその特定値を求め方を説明する。漢字コードをS−JISコードとして16進数で表わしたとき、漢字1文字は4つの数字(各数字は0〜15)で表すことができる。漢字2文字の苗字ならば0〜15の数字が8個並んだものとして表せるので、ここでは計算式を4つ目と6つ目と7つ目の数字を合計したもの、としている。例えば「田辺」と言う文字は、「田」は#9363(#は16進数を表す)、「辺」は#95D3となり、9・3・6・3・9・5・13・3となり、4、6、7個目の数字を合計すると21を得ることができる(図9(b)の行1列1の「田辺」はこのようにして生成した苗字である。図9(b)の列1の他の苗字も全て21となる)。コンピュータが生成した漢字コードの組合せが姓名として不自然となる場合があるので、ここでは生成した苗字をディスプレイ220に表示し、操作者に選択させるようにする。また、列2の特定値「15」は、同様にして2個目と4個目の数字を合計したものである。さらに、列3の特定値「18」は、ハイフォンを除いて数値と見なし、9桁目の2倍と7桁目の7倍から、5桁目の5倍と10桁目の3倍を引いた値としている。(S320)。
続いて、実施例その1と同様にダミーデータ挿入行を決めるためM+m以下の値の乱数をm個発生させる。ここでも2と4の数値(ダミーデータの挿入行が2行目と4行目)が乱数発生器で発生されたものとする(S330)。
次にダミーデータ挿入ループに入り、最も小さい値のダミーデータ挿入行をまず選び(ここでは2行目)、そのダミーデータ挿入行以降の実データを1行分下方に移動し、その行に各列に対応したダミーデータを選び挿入する。各列からダミーデータを選ぶ方法は、これも数値が5以下の乱数を発生し(各列のダミーデータの数を5としたので)、その数値の行のダミーデータを選ぶようにする。続いて2番目に小さい値の挿入行に対して以上の処理を行い、これを繰り返して全てのダミーデータ挿入行に対してダミーデータの挿入を行う。(S340、S350)。
以上で、実データ行に対してダミーデータ行の挿入が行われたことになる。ここでは、ダミーデータを予め生成しておいたが、直接ダミーデータを生成し挿入するようにしてもよい。次に、データ復元のフローを図11により説明する。
まず、データ保護がなされた表形式データを取り込みむ(S400)。
取得した表形式データの1行目のデータ(この場合3列あるので1行のデータは3個ある)を前述した計算式で計算し、このデータの計算値がそれぞれダミーデータの各列の特定値と等しいときその行はダミーデータ行と判断し、その行位置を格納しておく。1行分のデータの計算値が1つでもダミーデータの各列の特定値と等しくないときは、実データ行であると判断し次の行を計算する。この処理を1行目からM+m行目まで(ここでは1行目から6行目まで)行い、ダミーデータ挿入行の行数値を格納する。ここでは、2行と4行の行位置が格納されることになる(S410〜S430)。
次に格納された行位置の行を削除する。これにより表形式データは復元されたものとなる(S440)。
以上の処理により、図9(a)の実データから図9(c)のダミーデータ行を混在したデータが作成され、また図9(c)のダミーデータ行が混在してデータ保護がなされたデータから図9(a)の実データへ復元することができる。図10のデータ保護の処理および図11のデータ復元の処理は、それぞれ図5のデータ保護処理部281とデータ復元処理部282で処理される。
(実施例その3)
実施例その3は第3の発明に対する実施例である。図12はそのデータ例を示し、図12(a)はデータ保護をかける対象の表形式データで、9行2列に実データが配置された表形式データである。図12(b)は、後述するフローで生成されたキーデータで、9行1列の表形式である。図12(c)は、図12(a)の表形式データの各列の実データを分散し、実データ以外の箇所にダミーデータを挿入した例を示すものである。
次に、キーデータを作成し、実データを分散する方法をプログラムで処理するものとして説明する。
図14は実データが配置された表形式データを基にデータの保護を行う処理フローを示すもので、まずデータ保護の対象である表形式データ(M行N列)を取得する。ここでは図12(a)示すように9行2列の表形式データを取得する(S500)。
次に0から99間での乱数をM個発生し、この値をハッシュ値(即ち、特定値)として順次M行1列の表形式に配置する。図13には実データの9行に対応した9行1列の表形式に発生した乱数を配置した例を示している(図13の右から3つ目の表)。次にこのそれぞれのハッシュ値に200を加える(図13の右から2つ目の表)。この値をキーデータとして10桁の文字列に変換するのであるが、変換において10個の文字の和がこのハッシュ値+200に等しくなるように変換する。変換の条件は、実施例その1で述べた英字と数字の変換数値(英字のA〜Zを1〜26に、数字の1〜9を27〜35に置き換え、数字の0は36と置き換える)としキーデータの文字構成は全体10桁の内1、2、4および7桁を英字、他の桁を数字とする。この条件でキーデータが取り得る値の範囲は166〜320(英文字4個で4〜104、数字6個で162〜216)であるので、ハッシュ値+200の取り得る範囲(200〜299)を変換することは充分可能である。具体的な変換の方法は、1桁目から順次英字に対しては1〜26の乱数を、数字に対しては27〜36の乱数を発生させて対応する英数字を確定して行き、最後の桁はハッシュ値+200の値になる数字に置き換える(図13の右の表)。このようにして作成したキーデータ列を、取得した表形式データの最後列(N+1列)に挿入する(S510〜S530)。
次に、実データの各列の右側にプログラムに設定されている列数のブランク列を挿入する。ここでは、図12(a)の列1に対応して挿入するブランク列を1列、列2に対しては2列挿入されるものとする。ここまでの処理で、取得した表形式データは列1と列3は実データ、列2と列4、列5はブランク列、列6はキーデータ列となっている(S540)。
次に実データを移動することを行う。移動の範囲は、列1の実データは列1と列2、列3の実データは列3〜列5の何れかの列位置に移動される(列1と列2を列1の実データに対する分散列と言う。列3〜列5は列3の実データに対する分散列である)。まず、1行目のキーデータをプログラムに設定された計算式(即ち、10桁の文字列の文字に対応した数値に変換し、それらの和を求め200を引く)で計算し、計算結果(即ち、ハッシュ値)を得る。そして、このハッシュ値の値が奇数であれば列1の実データを列1に、偶数であれば列2に移動する(列1を列1に配置する場合も「移動する」と表現している)。さらに、列3の実データに対しては、そのハッシュ値が30以下のものは列3に、70以上のものは列4に、それ以外は列5に移動させる(これらのハッシュ値に対する移動ルールはプログラムに設定されているものとする)。即ち、1つのハッシュ値で、1列目の実データに対してハッシュ値の奇数偶数で2列の列位置を割り振り、3列目の実データに対してはハッシュ値の数値範囲で3列の列位置を割り振っている。これを全ての行(図12の例では9行)について実施する(S550)。
最後に、実データ以外の箇所にダミーデータを挿入する。例えば、図12(a)の列1の実データに対するダミーデータは、予め定めたその列の値としてふさわしい最大値と最小値の間の数値を乱数発生器より得て作成する。また、列2の実データに対するダミーデータはA〜Eの内の実データ以外の英字を2個乱数で発生させ(2個は異なる英字であるものとする)ダミーデータとして挿入する(S560)。
以上に述べた実施例その3では、実データが配置された表形式データに分散列を挿入して説明したが、元の表形式データはそのままにしておいて、予め分散を考えた列数の空の表(行数は表形式データの行数とする)を作成しておき、実データを対応する列に分散配置するようにしてもよい。例えば、図12(a)の実データが配置された表形式データに対しては、図12(c)のブランクの表を用意しておき、ここに実データをキーデータに基づいて分散配置する。このとき、列1と列2は図12(a)の実データの列1の分散列であり、列3〜列5は、図12(a)の実データの列2の分散列である。
次にデータの復元について図15を用いて説明する。
まず、データ保護がなされた表形式データを取り込みむ(S600)。
取得した表形式データの1行目のキーデータを前述の計算式で計算し、ハッシュ値を求める。ハッシュ値に対応する実データの位置をプログラムに設定した移動ルールから求め、実データの位置を求める。そして、この位置に有るデータ(実データ)を分散列の最左端(分散列である列1と列2に対しては列1、列3〜列5に対しては列3)に移動する。これを全ての行に対して実施する(S610〜S630)。
実データ以外(図12(c)の場合、列1と列3の列以外)の列を削除して復元を完成する(S640)。
以上の処理により、図12(a)の実データから図12(c)のダミーデータを混在したデータが作成され、また図12(c)のダミーデータが混在したデータから図12(a)の実データへ復元することができる。
(実施例その4)
実施例その4は第4の発明に対する実施例である。図16はそのデータ例を示し、図16(a)はデータ保護をかける対象の表形式データで、6行3列に実データが配置された表形式データである。図16(b)は、後述する方法で生成されたキーデータで、6行1列の表形式である。図16(c)は、図16(a)の表形式データにキーデータ列を加え、表形式データの実データの列位置を入れ換えた例を示すものである。
次に、キーデータを作成し、実データを分散する方法をプログラムで処理するものとして説明する。
最初にキーデータの生成方法から説明する。実データは6行あるので、実施例その3と同様0〜99の範囲で乱数を6個発生しその値をハッシュ値とする。そして実施例その3で示した文字列の構成と同様の方法で10桁の文字列に変換する。この変換された文字列がキーデータである。図16(b)はこのようにして作られたキーデータであり、その右側の括弧の中の数値がキーデータ作成の元となる乱数発生により得られたハッシュ値である。
次に、実データの列位置の入れ換えについて説明する。まず、ハッシュ値を6で割り、その余りを求める。6で割る理由は、3列の実データの列位置を入れ換えるとき、その入れ換える組合せが6通りあることによる。求めた余りの数値に対応して、例えば図17に示すルールで列位置の入れ換えを行う。図17は、6で割った余りの値に対して3列ある実データの移動先の列位置を示している。例えば、1行目のハッシュ値「82」を6で割った余りは「4」であるので、列1の実データは列2に、列2の実データは列3に、そして列3の実データは列1に移動することになる。これを各行に対して入れ換えを実施する。
データの復元は、キーデータからハッシュ値を求め、これを6で割った値に基づいて図17に示される実データのもとの列位置を知り、そこに移動させればよい。
以上の処理により、図16(a)の実データから図16(c)の実データの列位置を入れ換えたデータが作成され、また図16(c)の列位置を入れ換えたデータから図9(a)の実データへ復元することができる。
(実施例その5)
図18は第1の発明と第3の発明を同時に用いた例である。即ち、行方向と列方向にダミーデータを挿入する例である。
図18(a)は、データ保護をかける対象の表形式データで、6行5列に実データが配置された表形式データである。図18(b)は、後述するフローで生成されたキーデータで、9行1列の表形式である。図18(c)は、図18(a)の表形式データの実データに行方向にはダミーデータ行を、列方向には実データの列位置を移動させ移動した後にダミーデータを挿入した例を示すものである。なお、図18(c)は、図18(a)の列4の実データを2列の分散列に、列5の実データを3列の分散列に列移動している。
キーデータは全体9桁の文字列とし、1、2、4、7桁目は英字を、その他は数字で構成する。文字から数値への変換は前述と同様である。また、計算式は1文字、3文字、7文字を数値に変換し、その値を合計するものである。
最初にダミーデータ行を挿入するハッシュ値は「63」とし、その挿入行数はプログラムに設定された挿入行数を求める計算式により3行が得られたものとする。そして表挿入位置は実施例その1に示すように乱数を発生し2、4、7を得て、挿入行を2行、4行、7行とする。この行にハッシュ値63となるように実施例その1で示した方法で文字列を生成する。
次に2、4、7行以外の行について55〜98の間の乱数を発生させそれをハッシュ値とする(55〜98の数値範囲は、英語の1文字で1〜26、数字の2文字で54〜72が取り得る範囲となるためこれらを合算し55〜98となる)。もし、63が乱数発生で得られたらやり直す。
次に、列4の実データはハッシュ値の奇数偶数で移動する(この例では、奇数は列4に偶数は列5に移動した)。そして、図18(a)の列5の実データはハッシュ値が70以下は図18(c)の列6に、71〜84の場合は列7に、85以上の場合は列8に移動する。
以上により図18(a)から図18(c)のデータが得られる。本発明の行と列とにダミーデータを挿入することにより、データ保護は堅固のものとなる。
以上の実施例ではキーデータがあるものは元の表形式データにキーデータ列として挿入するようにしたが、表形式データには挿入せずに他所に保持するようにしてもよい。また、特定値や実データの移動のルール等をプログラムに持たせているが、適切なユーザインターフェースにより操作者に設定させるようにしてもよい。
また、ダミーデータは実データと似せることが必要なことは言うまでもない。
さらに、本発明のデータ保護の方法に加えて従来から行われている暗号化を行えば、より一層のデータ保護がなされるし、本発明は従来の方法と併用することに問題はない。
以上の実施例に関し、さらに以下の付記を開示する。
(付記1)
実データが行と列とに配置された表形式データのデータ保護プログラムであって、
所定の計算式で求められる値が特定の値となるデータと特定の値とならないデータとを混在し、前記表形式データの行に対応して配置したキーデータを作成するキーデータ作成手順と、
前記キーデータが前記特定の値となるものと前記特定の値とならないものとに応じて前記表形式データの該キーデータに対応する行にダミーデータを挿入するダミーデータ行挿入手順と
をコンピュータに実行させることを特徴とするデータ保護プログラム。
(付記2)
実データが行と列とに配置された表形式データのデータ保護プログラムであって、
前記表形式データの任意の1つ以上の行に、所定の計算式で求められる値が各列においてそれぞれ固有の特定の値となるダミーデータを挿入するダミーデータ行挿入手順
をコンピュータに実行させることを特徴とするデータ保護プログラム。
(付記3)
実データが行と列とに配置された表形式データのデータ保護プログラムであって、
所定の計算式で求められる値が特定の値となるデータを前記表形式データの行に対応して配置したキーデータを作成するキーデータ作成手順と、
前記表形式データの実データの列に対応して1列以上の分散列をそれぞれ作成し、該表形式データの各行における実データを、該各行に対応するキーデータから得られる前記特定の値に基づいてそれぞれの該実データの列に対応する該分散列に分散して配置する実データ分散手順と、
前記実データが配置された分散列に対して、該実データが配置された以外の箇所にダミーデータを挿入するダミーデータ挿入手順と
をコンピュータに実行させることを特徴とするデータ保護プログラム。
(付記4)
実データが行と列とに配置された表形式データのデータ保護プログラムであって、
所定の計算式で求められる値が特定の値となるデータを前記表形式データの行に対応して配置したキーデータを作成するキーデータ作成手順と、
前記キーデータの前記特定の値に基づいて、該キーデータに対応する行の個々の実データの列位置を入れ換える実データ入換手順と
をコンピュータに実行させることを特徴とするデータ保護プログラム。
(付記5)
実データが行と列とに配置された表形式データのデータ保護方法であって、
所定の計算式で求められる値が特定の値となるデータと特定の値とならないデータとを混在し、前記表形式データの行に対応して配置したキーデータを作成するキーデータ作成手順と、
前記キーデータが前記特定の値となるものと前記特定の値とならないものとに応じて前記表形式データの該キーデータに対応する行にダミーデータを挿入するダミーデータ行挿入手順と
を有することを特徴とするデータ保護方法。
(付記6)
実データが行と列とに配置された表形式データのデータ保護方法であって、
所定の計算式で求められる値が特定の値となるデータを前記表形式データの行に対応して配置したキーデータを作成するキーデータ作成手順と、
前記表形式データの実データの列に対応して1列以上の分散列をそれぞれ作成し、該表形式データの各行における実データを、該各行に対応するキーデータから得られる前記特定の値に基づいてそれぞれの該実データの列に対応する該分散列に分散して配置する実データ分散手順と、
前記実データが配置された分散列に対して、実データが配置された以外の箇所にダミーデータを挿入するダミーデータ挿入手順と
をコンピュータに実行させることを特徴とするデータ保護方法。
(付記7)
実データが行と列とに配置された表形式データのデータ保護装置であって、
所定の計算式で求められる値が特定の値となるデータと特定の値とならないデータとを混在し、前記表形式データの行に対応して配置したキーデータを作成するキーデータ作成手段と、
前記キーデータが前記特定の値となるものと前記特定の値とならないものとに応じて前記表形式データの該キーデータに対応する行にダミーデータを挿入するダミーデータ行挿入手段と
を有することを特徴とするデータ保護装置。
発明の原理図(その1)である。 発明の原理図(その2)である。 発明の原理図(その3)である。 発明の原理図(その4)である。 データ保護装置の構成例である。 実施例その1のデータ例である。 実施例その1のデータ保護処理のフロー例である。 実施例その1のデータ復元処理のフロー例ある。 実施例その2のデータ例である。 実施例その2のデータ保護処理のフロー例である。 実施例その2のデータ復元処理のフロー例である。 実施例その3のデータ例である。 実施例その3のキーデータ生成例である。 実施例その3のデータ保護処理のフロー例である。 実施例その3のデータ復元処理のフロー例である。 実施例その4のデータ例である。 実施例その4の実データの移動ルール例である。 実施例その5のデータ例である。
符号の説明
10 キーデータ作成手順
11 キーデータ作成手順
20 ダミーデータ行挿入手順
21 ダミーデータ行挿入手順
50 実データ分散手順
60 ダミーデータ挿入手順
70 実データ入換手順
200 データ保護装置
210 CPU
220 ディスプレイ(DISP)
230 キーボード(KB)
240 フロッピー・ディスク(FPD)
250 入出力制御部
260 ワークエリア
270 データ記憶部
280 データ保護プログラム
281 データ保護処理部
282 データ復元処理部

Claims (10)

  1. 実データが配置されたM個の行とN個の列(M、Nは1以上の整数)を含む第1の表形式データを取得し、
    ダミーデータを挿入する行の数m(mは1以上の整数)を前記Mをパラメータとする第1の計算式から求め、
    前記ダミーデータを挿入する行の箇所を乱数を用いて特定し、前記第1の表形式データの特定された行に前記ダミーデータを挿入し、
    各行が挿入されたダミーデータ行であるか否かを識別する識別情報を、新たに追加した列に記録することにより、M+m個の行とN+1個の列を含む第2表形式データを作成する
    処理をコンピュータに実行させることを特徴とするデータ保護プログラム。
  2. 前記ダミーデータを挿入する行の前記新たに追加した列に、第2の計算式を適用することにより求められる計算値が特定値と一致するキーデータを前記識別情報として配置し、
    前記実データが存在する行の前記新たに追加した列に、前記第2の計算式で求められる値が前記特定値に一致しないキーデータを前記識別情報として配置する
    処理をコンピュータに実行させることを特徴とする請求項1記載のデータ保護プログラム。
  3. 実データが配置されたM個の行とN個の列(M、Nは1以上の整数)を含む第1の表形式データを取得し、
    ダミーデータを挿入する行の数m(mは1以上の整数)を前記Mをパラメータとする第1の計算式から求め、
    前記ダミーデータを挿入する行の箇所を乱数を用いて特定し、前記第1の表形式データの特定された行に、各行が挿入されたダミーデータ行であるか否かを識別する識別情報を含む前記ダミーデータを挿入し、
    M+m個の行とN個の列を含む第2の表形式データを作成する
    処理をコンピュータに実行させることを特徴とするデータ保護プログラム。
  4. 前記ダミーデータを挿入する行の各列ごとに、第2の計算式を適用することにより求められる計算値が、配置される列ごとに予め設定された特定値と一致するように、前記ダミーデータを生成する
    処理をコンピュータに実行させることを特徴とする請求項3記載のデータ保護プログラム。
  5. 実データが配置されたM個の行とN個の列(M、Nは1以上の整数)を含む第1の表形式データを取得し、
    前記第1の表形式データの各列ごとに予め設定された個数の列を挿入することによって分散列を生成し、
    前記第1の表形式データの各列の実データを、各行ごとに、前記分散列のいずれかの列に分散させて配置し、
    前記実データが配置された分散列に対して、前記実データが配置された列以外の列にダミーデータを挿入し、
    各行において前記実データが前記分散列のいずれの列に存在するかを識別する識別情報を、新たに追加した列に記録することにより、M個の行と、N個の分散列及び新たに追加した列からなる第2の表形式データを作成する
    処理をコンピュータに実行させることを特徴とするデータ保護プログラム。
  6. 前記第1の表形式データの各行ごとに、特定値を設定し、所定の計算式を適用することにより求められる値が前記特定値と一致するキーデータを前記識別情報として作成する
    処理をコンピュータに実行させることを特徴とする請求項5記載のデータ保護プログラム。
  7. 実データが配置されたM個の行とN個の列(M、Nは1以上の整数)を含む第1の表形式データを取得し、
    前記第1の表形式データのN列分の実データに対して、各行ごとに、配置する列位置の入れ換えを行い、前記入れ換えによって決定された列位置に、前記N列分の実データを配置し、
    各行における前記実データに対する前記入れ換えのルールを識別する識別情報を、新たに追加した列に記録することにより、M個の行とN+1個の列からなる第2の表形式データを作成する
    処理をコンピュータに実行させることを特徴とするデータ保護プログラム。
  8. 前記第1の表形式データの各行ごとに、特定値を設定し、所定の計算式を適用することにより求められる値が前記特定値と一致するキーデータを前記識別情報として作成する
    処理をコンピュータに実行させることを特徴とする請求項7記載のデータ保護プログラム。
  9. データ記憶部及びワークエリアを含むコンピュータにより、前記ワークエリアにおいて実行される、実データが行と列とに配置された表形式データのデータ保護方法であって、
    前記データ記憶部から、実データが配置されたM個の行とN個の列(M、Nは1以上の整数)からなる第1の表形式データを取得し、
    ダミーデータを挿入する行の数m(mは1以上の整数)を前記Mをパラメータとする第1の計算式から求め、
    前記ダミーデータを挿入する行の箇所を乱数を用いて特定し、前記第1の表形式データの特定された行に前記ダミーデータを挿入し、
    各行が挿入されたダミーデータ行であるか否かを識別する識別情報を、新たに追加した列に記録することにより、M+m個の行とN+1個の列を含む第2表形式データを作成する
    ことを特徴とするデータ保護方法。
  10. 前記ダミーデータを挿入する行の前記新たに追加した列に、第2の計算式を適用することにより求められる計算値が特定値と一致するキーデータを前記識別情報として配置し、
    前記実データが存在する行の前記新たに追加した列に、前記第2の計算式で求められる値が前記特定値に一致しないキーデータを前記識別情報として配置する
    ことを特徴とする請求項9記載のデータ保護方法。
JP2004377021A 2004-12-27 2004-12-27 データ保護プログラムおよびデータ保護方法 Expired - Fee Related JP4687101B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004377021A JP4687101B2 (ja) 2004-12-27 2004-12-27 データ保護プログラムおよびデータ保護方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004377021A JP4687101B2 (ja) 2004-12-27 2004-12-27 データ保護プログラムおよびデータ保護方法

Publications (2)

Publication Number Publication Date
JP2006185096A JP2006185096A (ja) 2006-07-13
JP4687101B2 true JP4687101B2 (ja) 2011-05-25

Family

ID=36738176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004377021A Expired - Fee Related JP4687101B2 (ja) 2004-12-27 2004-12-27 データ保護プログラムおよびデータ保護方法

Country Status (1)

Country Link
JP (1) JP4687101B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4871659B2 (ja) * 2006-07-10 2012-02-08 クラリオン株式会社 ライセンス発行装置、ライセンス検証装置、ライセンス発行方法、およびプログラム
JP5056546B2 (ja) * 2008-04-02 2012-10-24 日本電気株式会社 ファイル保護システム、方法及びプログラム
JP5436257B2 (ja) * 2010-02-15 2014-03-05 日本電信電話株式会社 配信システム及び配信・受信方法及び配信装置及び受信装置及び配信プログラム及び受信プログラム
JP5137046B1 (ja) 2012-05-31 2013-02-06 株式会社イースティル 系列データ保護方法および系列データ保護プログラム
JP5910337B2 (ja) * 2012-06-11 2016-04-27 富士通株式会社 秘匿化クエリについての情報処理方法及び装置
JP6002712B2 (ja) * 2014-04-08 2016-10-05 日本電信電話株式会社 情報処理システム、情報処理方法、及びプログラム
US11363003B2 (en) 2019-03-11 2022-06-14 Mitsubishi Electric Corporation Data management device, data management system, data management method, and program
JP2021110861A (ja) * 2020-01-14 2021-08-02 富士通株式会社 制御方法、制御プログラム、および情報処理装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099511A (ja) * 2000-09-22 2002-04-05 Techno Project:Kk 業務処理システムにおける個人情報の漏洩防止方式
JP2002183367A (ja) * 2000-12-12 2002-06-28 Hitachi Koukiyou Syst Eng Kk 個人情報保護サービス事業の処理方法および装置
JP2002182962A (ja) * 2000-12-11 2002-06-28 Saito:Kk セキュリティシステム、セキュリティ方法およびプログラム
JP2003005645A (ja) * 2001-06-19 2003-01-08 Toshitada Kameda 暗号方法、暗号システム、暗号化装置、復号化装置及びコンピュータプログラム
JP2004102913A (ja) * 2002-09-12 2004-04-02 Fuji Xerox Co Ltd 個人情報管理装置および方法
WO2004084483A1 (ja) * 2003-03-20 2004-09-30 Japan Medical Data Center Co., Ltd. 情報管理システム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099511A (ja) * 2000-09-22 2002-04-05 Techno Project:Kk 業務処理システムにおける個人情報の漏洩防止方式
JP2002182962A (ja) * 2000-12-11 2002-06-28 Saito:Kk セキュリティシステム、セキュリティ方法およびプログラム
JP2002183367A (ja) * 2000-12-12 2002-06-28 Hitachi Koukiyou Syst Eng Kk 個人情報保護サービス事業の処理方法および装置
JP2003005645A (ja) * 2001-06-19 2003-01-08 Toshitada Kameda 暗号方法、暗号システム、暗号化装置、復号化装置及びコンピュータプログラム
JP2004102913A (ja) * 2002-09-12 2004-04-02 Fuji Xerox Co Ltd 個人情報管理装置および方法
WO2004084483A1 (ja) * 2003-03-20 2004-09-30 Japan Medical Data Center Co., Ltd. 情報管理システム

Also Published As

Publication number Publication date
JP2006185096A (ja) 2006-07-13

Similar Documents

Publication Publication Date Title
US8077863B2 (en) Secret sharing apparatus, method, and program
US8000472B2 (en) Information encryption apparatus and controlling method of the same, computer program and computer readable storage medium
Brightwell et al. Using datatype-preserving encryption to enhance data warehouse security
CN108664773A (zh) Java源代码的保护方法及装置
CN111291397A (zh) 一种网页数据防爬加密方法
JP2009139722A (ja) カラーを利用した暗号化方法および暗号化装置
CN108829899B (zh) 数据表储存、修改、查询和统计方法
JP4687101B2 (ja) データ保護プログラムおよびデータ保護方法
JP4539952B2 (ja) 情報分散保管システム、その装置、プログラム及び記録媒体
KR20060033447A (ko) Drm 시스템에 있어서 시스템 키를 공유하고 생성하는방법 및 장치
KR101701871B1 (ko) 보안 가상 키패드 생성방법 및 장치
JP2005141436A5 (ja)
CN101641701A (zh) 用于对内容进行数字处理管理以实现所施加的工作流的设备和方法
EP2006791B1 (en) Randomisation
JP2007156861A (ja) 機密情報保護装置及び機密情報保護方法並びにプログラム
JP2011081030A (ja) 検索型カラー暗号化ファイルの構成方法および検索型カラー暗号化ファイルシステム
Gaur et al. A new PDAC (parallel encryption with digit arithmetic of cover text) based text steganography approach for cloud data security
JP5208796B2 (ja) 整数の暗号化及び復号化方法
JP4789536B2 (ja) データ分割装置、データ分割方法およびコンピュータプログラム
CN116235169A (zh) 文本数据的数字水印
US20150326750A1 (en) Data hiding method via revision records on a collaboration platform
JP2005006033A (ja) 鍵生成方法、鍵生成装置、コンテンツ配信装置、端末装置およびプログラム
CN108712424A (zh) 基于测绘控制点成果表对文本加密的方法
JP5208717B2 (ja) 整数の暗号化及び復号化方法
CN110166493B (zh) 一种社交客户端通讯录动态保护方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110118

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: 20110131

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140225

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees