(57)【特許請求の範囲】
【請求項１】
データ作成処理対象として指定された電子文書中の文字列を他の文字列に変換するテストを行うためのテスト用マスキングデータ生成装置であって、
文字列変換用テーブルとして、文字変換候補を乱数でソートする前後の対応関係を保持する変換前−変換後対応テーブルを用いて、前記文字列を変換するマスキング処理部を有し、
前記文字列変換用テーブルは、変換前後で漢字同士の対応関係を有する変換テーブルであり、
漢字の画数の類似性の高いものを変換後の漢字とすることを特徴とするテスト用マスキングデータ生成装置。
【請求項２】
マスキングの範囲を、乱数でソートした後の２つの値から決定する変換テーブルを有することを特徴とする請求項１に記載のテスト用マスキングデータ生成装置。
【請求項３】
データ作成処理対象として指定された電子文書中の文字列を他の文字列に変換するテストを行うためのテスト用マスキングデータ生成装置であって、
文字列変換用テーブルとして、文字変換候補を乱数でソートする前後の対応関係を保持する変換前−変換後対応テーブルを用いて、前記文字列を変換するマスキング処理部を有し、
マスキングの範囲を、乱数でソートした後の２つの値から決定する変換テーブルを有することを特徴とするテスト用マスキングデータ生成装置。
【請求項４】
データ作成処理対象として指定された電子文書中の文字列を他の文字列に変換するテストを行うためのテスト用マスキングデータ生成装置であって、
文字列変換用テーブルとして、文字変換候補を乱数でソートする前後の対応関係を保持する変換前−変換後対応テーブルを用いて、前記文字列を変換するマスキング処理部を有し、
予めテーブルカラム単位に定義されたファイル名とそのファイルに記載された文字列を変換するための文字リストの変換規則ファイルに従って、カラム単位に前記文字列中の文字を変換する手段と、
一定の時間・接続回数により前記変換規則ファイルを再作成する手段を備えることを特徴とするテスト用マスキングデータ生成装置。
【請求項５】
前記変換規則ファイルを生成する各文字種別のテーブルを有し、複数テーブルを組み合わせて、変換規則ファイルを生成することを特徴とする請求項４に記載のテスト用マスキングデータ生成装置。
【請求項６】
データ作成処理対象として指定された電子文書中の文字列を他の文字列に変換するテストを行うためのテスト用マスキングデータ生成プログラムであって、
文字列変換用テーブルとして、文字変換候補を乱数でソートする前後の対応関係を保持する変換前−変換後対応テーブルを用いて、前記文字列を変換するマスキング処理と、
予めテーブルカラム単位に定義されたファイル名とそのファイルに記載された文字列を変換するための文字リストの変換規則ファイルに従って、カラム単位に前記文字列中の文字を変換する処理と、
一定の時間・接続回数により前記変換規則ファイルを再作成する処理と
をコンピュータに実行させるためのテスト用マスキングデータ生成プログラム。
【請求項７】
前記変換規則ファイルを生成する各文字種別のテーブルを有し、複数テーブルを組み合わせて、変換規則ファイルを生成することを特徴とする請求項６に記載のテスト用マスキングデータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースのマスキング技術に関し、特に文字種別が重要な意味をもつ、テストデータ作成時の情報隠蔽を行うことができるマスキング技術に関する。
【背景技術】
【０００２】
システム開発において、テストデータ作成はデータ量が増えるほど、工数がかかる傾向にある。また、本番データをそのまま使用することができれば、工数を削減できるが、顧客情報や機密情報を多く扱い、サービスを提供する業務においては、本番データを使用することで情報漏洩等のリスクが懸念されるため、防止策が重要視されている。
【０００３】
これらの情報を扱うシステム構築の際に、実際のデータをテストで使うために、本番機からテスト機にデータを持っていくことがある。その際、情報漏洩の防止策の一つとして、秘密データについてはマスキングできるようにすることが必要である。
【０００４】
ところで、テストデータとして扱うにあたり、無関係な文字列を使うよりもむしろ、実際のデータと類似度が高いデータを使ってテストを実施する方が好ましい場合が多い。
【０００５】
尚、情報隠蔽を行うために、文字コードを利用し、文字の類似度を高めた、マスキング手法については、下記特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１０２５４０号公報
【０００７】
上記特許文献１に記載のマスキング手法では、文字コードをカウントアップし変換処理を行い、文字変換を行っている。例えば、変換対象文字列「田中一郎」に対して、変換処理を行うことにより「電仲壱楼」に変換するなどである。この変換処理により、見た目として類似度の高い文字であって、かつ、マスキングが可能となる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記特許文献１に記載の技術では、変換ルールが文字コードに基づいたものであり、類似度が高すぎる場合が多いため、変換前の文字列が容易に推測できてしまう可能性がある。
【０００９】
さらに、データベースの場合、数字が日付など意味をもっていた場合にマスキングを行うと、実際には存在しない日付となり、テストデータとして有効でなくなる場合がある。テストデータ用のマスキングであるためには、文字数・文字形式・データ意味を考慮し、マスキングする必要がある。
【００１０】
本発明の目的は、秘密データの情報漏洩を無くし、なおかつ、テストデータとして元のデータとの整合性・有効性が高いマスキングデータを生成することができるテスト用マスキングデータ生成装置を提供することである。
【課題を解決するための手段】
【００１１】
本発明の一観点によれば、データ作成処理対象として指定された電子文書中の文字列を他の文字列に変換するテストを行うためのテスト用マスキングデータ生成装置であって、  文字列変換用デーブルとして、文字変換候補を乱数でソートする前後の対応関係を保持する変換前−変換後対応テーブルを用いて、前記文字列を変換するマスキング処理部を有することを特徴とするテスト用マスキングデータ生成装置が提供される。前記文字列変換用デーブルは、変換前後で漢字同士の対応関係を有する変換テーブルであり、漢字の画数の類似性の高いものを変換後の漢字とすることを特徴とする。また、マスキングの範囲を、乱数でソートした後の２つの値から決定する変換テーブルを有することが好ましい。
【００１２】
また、本発明は、予めテーブルカラム単位に定義されたファイル名とそのファイルに記載された文字列を変換するための文字リストの変換規則ファイルに従って、カラム単位に前記文字列中の文字を変換する手段と、一定の時間・接続回数により前記変換規則ファイルを再作成する手段を備えることを特徴とする。前記変換規則を生成する各文字種別のテーブルを有し、複数テーブルを組み合わせて、変換規則ファイルを生成することが好ましい。  
【００１３】
本発明の他の観点によれば、データ作成処理対象として指定された電子文書中の文字列を他の文字列に変換するデータ生成プログラムであって、変換指示を受け付け、前記変換対象としての文字列に含まれる各文字を予め定義された文字リストに対してハッシュ値を用いて検索し、文字を変換する処理と、文字列を変更できる範囲を予め定義し、その範囲のみ文字を変換する処理と、日付といった意味のある文字列を意味のあるまま文字列変換を行う処理をコンピュータに実行させることを特徴とするテスト用マスキングデータプログラムが提供される。前記変換規則を生成する各文字種別のテーブルを有し、複数テーブルを組み合わせて、ファイルを生成することが好ましい。
【００１４】
また、上記課題を解決するため本発明のマスキング手法は、マスキング処理対象として指定された文字に対し、半角の英字、数字、記号、カナ、全角の英字、数字、日付、マスキング禁止文字といった文字種別ごとに変換テーブルを設定し、データベース接続装置２０へのアクセスのタイミングで設定された再生成ルールを基に、マスキングファイル５０が新しく生成され、タイミングにより、同じテーブルカラムの同じデータであっても異なる文字となってマスキング処理されることを特徴とする。
【００１５】
また、データベース１０のテーブルカラム毎に変換テーブルから生成したマスキングファイル５０を個別選択することで、カラム内のデータにあったマスキング処理されることを特徴とする。
【００１６】
文字種別ごとに作成された変換テーブルは一つのマスキングファイル５０とし、マスキングデータ作成時にメモリ内に保持し、読み込んだデータは具体的にはハッシュテーブルで保持することで、変換元の文字をキーに変換後の文字を取得可能とし、変換後の文字にはキーのハッシュ値で効率よくアクセスすることが可能とさせることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、文字種別ごとに変換テーブルが生成されるため、マスキング後の文字列がマスキング前の文字列と類似度の高いものとなる。
【００１８】
また、一定期間あるいは、一定回数接続すること毎に、異なる変換テーブルが使用されるため、指定したカラムの文字列の変換を行ったマスキング処理対象の文字列は一定のタイミングで変更される。そのため、復号が極めて困難なテストデータを作成することが可能となる。
【００１９】
さらに、タイミング・変換ルールを組み合わせてマスキングすることで、有用性の高いテストデータの作成が可能となる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施形態に係るテスト用マスキングデータ生成装置の概略構成を示すブロック図である。
【図２】漢字変換テーブル３８の一例と、本例に示す漢字変換テーブルを用いた変換例を示す図である。
【図３】漢字画数変換テーブル４２の一例と、本例に示す漢字画数変換テーブルを用いた変換例を示す図である。
【図４】日付変換テーブル４０の一例と、本例に示す日付変換テーブルを用いた変換例を示す図である。
【図５】データベース接続装置２０内のマスキング処理を行うための処理を示すフローチャートである。
【図６】マスキング処理プログラム２１の処理を示すフローチャートである。
【図７】マスキング処理で使用するマスキングファイル５０の生成のタイミング及びデータベース接続装置２０内のマスキング処理を示すフローチャートである。
【図８】マスキングファイル生成プログラム３１の処理を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の一実施の形態に係るテスト用マスキングデータ生成技術について、図面を参照しながら説明を行う。
【００２２】
図１は、本実施の形態に係るテスト用マスキングデータ生成装置の概略構成例を示す機能ブロック図である。
【００２３】
本実施の形態に係るマスキング処理プログラム２１は、マスキング処理対象のデータが格納されているデータベース１０に接続するデータベース接続装置２０の中に実装されており、マスキングデータ出力時に必要なマスキングファイル生成プログラム３１から生成されるマスキングファイル５０とテーブル定義ファイル５１で構成される。
【００２４】
テーブル定義ファイル５１は、プログラムを動作させるためのものであり、テストデータ作成対象となるテーブルの構成を定義し、マスキングを行うカラム対象を決定する。その際、データベース（ＤＢ）カラム単位に、マスキングファイル５０や文字列に対する変換開始位置・終了位置などの変換ルールを指定できるように構成されている。これにより、カラム単位に変換ルールが異なる出力結果５２を得ることが可能となる。マスキングファイル５０は複数のファイルからなり、テーブルの項目単位に異なる文字列に変換することができる。
【００２５】
マスキングファイル生成プログラム３１は、例えば、半角英字変換テーブル３２、半角数字変換テーブル３３、記号変換テーブル３４、カタカナ変換テーブル３５、全角英字変換テーブル３６、全角数字変換テーブル３７、漢字変換テーブル３８、ひらがな変換テーブル３９、日付変換テーブル４０、禁止文字テーブル４１、漢字画数変換テーブル４２などが格納されている。マスキングファイル生成プログラム３１は、マスキング処理プログラム２１によって作動し、変換テーブルを新しく生成するためのプログラムである。
【００２６】
ここで、半角英字変換テーブル３２は半角英字のみ文字一覧である。半角数字変換テーブル３３は半角数字のみ文字一覧である。記号変換テーブル３４は記号のみ文字一覧である。カタカナ変換テーブル３５はカタカナのみ文字一覧である。全角英字変換テーブル３６は全角英字のみ文字一覧である。全角数字変換テーブル３７は全角数字のみ文字一覧である。漢字変換テーブル３８は漢字のみ文字一覧である。ひらがな変換テーブル３９はひらがなのみ文字一覧である。日付変換テーブル４０は開始日付のみの一覧である。禁止文字テーブル４１は適用IDと個別に禁止したい文字と一覧である。漢字画数変換テーブル４２は漢字とその画数の一覧である。これらの様々な一覧を利用することで、ユーザの意図に沿った文字変換を実行させることができる。
【００２７】
図２は、漢字変換テーブル３８の一例と、本例に示す漢字変換テーブルを用いた変換例を示す図である。
【００２８】
本例に示す漢字変換テーブル３８は、漢字のみの表が格納されており、変換テーブル生成時に漢字のみの表の列に乱数を振り分け（ａ：２０１）、乱数の順番通りにソートした表（ｂ：２０３）と、変換前の表を上から順番に対応付けることで変換前−変換後対応テーブル（ｃ：２０５）を生成する。
【００２９】
半角英字変換テーブル３２、半角数字変換テーブル３３、記号変換テーブル３４、カタカナ変換テーブル３５、全角英字変換テーブル３６、全角数字変換テーブル３７、ひらがな変換テーブル３９も同様に変換テーブルを生成することができる。尚、スペースは、カウントするように規定しても良いし、カウントしないように規定しても良い。
【００３０】
具体的な例としては、図２（ａ）において、「藤田利平」２０７を元データとすると、図２（ｃ）の変換テーブルを用いて変換すると、「藤幸！一」２０９となる。これらを比べると、マスキングはできているが、イメージとしては似たデータとなっている。図２（ｃ）の変換前−変換後対応テーブル２０５を用いれば、変換前後で似たイメージをもつため、テスト用のマスキングデータ生成装置としては好ましい。
【００３１】
図３は、漢字画数変換テーブル４２の一例と、本実施例に示す漢字画数変換テーブルを用いた変換例を示す図である。本実施例に示す漢字変換テーブル４２は、漢字と画数の表が格納されており、変換テーブル生成時に漢字・画数の表の列に乱数を振り分け（図３（ａ）３０１）、乱数・画数の順番通りにソートした表（図３（ｂ）３０３）と変換前の表を上から順番に対応付けることで変換テーブル（図３（ｃ）３０５）を生成する。これにより、似た画数をランダムに選ぶことができ、推測できないデータであり、かつ、類似性の高いデータへの変換が可能となる。ここでは、例えば、「春秋岸泳」３０７が、「室食委育」３０９になっており、推測はできないが、４字の漢字列で画数が同じ漢字であるため類似性は高いデータ変換ができている。尚、変換の履歴を取っておくことで、元データに戻すことができるが、元データへの再変換を考慮しない場合には、履歴をとっておく必要はない。
【００３２】
上記の例は、元データと変換データとの関係において、イメージとして類似性の高いテストデータを生成する例を説明した。
【００３３】
次に、以下においては、図４で、日付変換テーブルを用いて、開始の日付と終了の日付、すなわち期間を規定するようなマスキングファイルを作成することについて説明する。
【００３４】
図４は日付変換テーブル４０の一例と、本例に示す日付変換テーブルを用いた変換例を示す図である。
【００３５】
本例に示す日付変換テーブル４０は、日付の表が格納されており、変換テーブル生成時に日付の表の列に乱数を振り分け（図４（ａ））、乱数の順番通りにソートを行う（図４（ｂ））。ここで、図４（ｂ）の上位２レコードを選択し、開始日付及び終了日付を決める（図４（ｃ））。この変換テーブル（図４（ｂ））を使用することにより、開始終了日付・終了日付をランダムに決めることができ、その範囲で規定される期間で、ランダムに日付が生成される。これにより、範囲が決められ（範囲指定のマスキング）、テストに有効性の高い日付を生成することが可能となる。
【００３６】
データベース接続装置２０が呼び出される毎に、回数を数え、変換テーブルを文字種別ごとに生成し、文字種別ごとに生成された変換テーブルを一つのファイルにまとめることで、マスキング処理プログラム２１用のマスキングファイル５０を生成する。
【００３７】
以上の構成に基づき、本実施の形態に係るマスキング処理プログラム２１の行う処理について以下に説明する。
【００３８】
図５は、データベース接続装置２０内のマスキング処理を行うための処理の流れを示すフローチャート図である。
【００３９】
データベース接続装置２０内でファイル出力した際に呼び出される。ファイル出力対象であるテーブルに対して、検索処理を実行する（ステップ５０１）。検索された結果レコードの取得を行う（ステップ５０２）。上記の例では、「藤田利平」が取得される。ここで、レコードがあるか否かの判定を行う（ステップ５０３）。その際に、レコードがなければ（ｎｏ）、変換できないため処理を終了する。レコードが存在する場合は（ｙｅｓ）、カラムデータを取得する（ステップ５０４）。ここでは、「藤田利平」がマスク対象として取得できる。
【００４０】
各カラムに対して、マスキング対象であるか否かの判定を行う（ステップ５０５）。マスキング対象であれば（ｙｅｓ）マスキング処理プログラム２１を実行する（ステップ５０６）（ここでは、例えば、「藤幸！一」に変換）。マスキング対象でない場合は（ｎｏ）、マスキング処理プログラム２１を実行しない。全カラムの処理が終了すれば、戻って、次の検索結果レコードを取得する（ステップ５０２）。ステップ５０７でデータをファイル出力し、レコードがある限り処理を継続し、レコードがなくなると処理を終了する（ＥＮＤ）。
【００４１】
図６は、マスキング処理プログラム２１の処理の流れを示すフローチャート図である。マスキング処理プログラム２１は、データベース１０から取得したカラムの文字列を１文字ずつ変換を行う。パラメータより渡された文字データを取得する（ステップ６０１）。
【００４２】
変換するカラムに設定したマスキングファイル５０のファイル名を取得する。（ステップ６０２）。
【００４３】
次いで、展開したマスキングファイル５０が日付変換ファイルであるかどうか判定する（ステップ６０３）。日付形式ファイルであった場合（ｙｅｓ）、図４で説明したように、ファイル内の開始日付・終了日付・形式を取得する（ステップ６０４）。開始日付・終了日付から生成する日付の範囲を数値化し、数値化した数字を際立ちとして、乱数を発生させる（ステップ６０５）。開始日付から乱数分加算し、ランダムな日付データを生成していく（ステップ６０６）。
【００４４】
たとえば、開始日付19800101、終了日付20101231であり、その間が11322日であり、これを最大値とし、0〜11322の間で乱数を発生させる。5850が乱数値となった場合には、19800101+5850日で、生成される日付は「19960107」となる。ステップ６０６で生成した日付データを形式に合わせて整形する。ステップ６０３で日付形式のファイルではなかった場合は（ｎｏ）、テーブル定義ファイル５１に記載された変換ルールを取得し、変換する対象文字を取得する（ステップ６０８）。
【００４５】
変換ルールから文字列の変換対象文字数を判定する（ステップ６０９）。１文字単位に変換文字があるか判定する（ステップ６１０）。変換文字がある場合は（ｙｅｓ）ルールに従い、文字変換を行う（ステップ６１１）。対象となる文字が文字列の最後であるか判定し、最後である場合は処理を終了する（ステップ６１２）。変換文字がない場合も（ｎｏ）処理を終了する。
【００４６】
例えば、「大阪府大阪市」が変換対象文字列で頭３文字を変換しない、「大」⇒「正」、「阪」⇒「獏」、「市」は変換されないように定義した場合、「大阪府正獏市」と変換されるような仕組みを構築することもできる。
【００４７】
図７は、マスキング処理で使用するマスキングファイル５０の生成のタイミング及びデータベース接続装置２０内のマスキング処理の流れを示すフローチャート図である。まず、処理を開始し（ＳＴＲＡＴ）、データベース接続装置２０に接続する（ログイン、ステップ７０１）。データベース接続装置２０に接続した際に接続回数をカウントしてプログラム上に保持しておく（ステップ７０２）。保持されている接続回数をあらかじめ決めておいた回数を超えているか否かの判定を行う（ステップ７０３）。接続回数が超えていない場合は（ｎｏ）、前回マスキングファイル５０を再生成した時間を確認し（ステップ７０４）、あらかじめ決められた時間を経過していなければ（ｎｏ）、処理を終了する（ＥＮＤ）。
【００４８】
ステップ７０３で規定回数を超えていた場合は（ｙｅｓ）、接続回数（ログイン回数）を初期化する（ステップ７０５）。ステップ７０４で規定時間を超えていた場合は（ｙｅｓ）、再生成時間変更する（ステップ７０６）。判定対象のマスキングファイル５０が残っているか否かを判定し、順次、ファイル処理を行う（ステップ７０７）。ステップ７０７において、マスキングファイル５０が残っている場合（ｙｅｓ）、ステップ７０８に進む。ｎｏの場合は処理を終了し、各マスキングファイル５０を再生成対象ファイルであるか否かの判定を行う（ステップ７０８）。再生成対象であった場合（ｙｅｓ）、マスキングファイル生成プログラム３１を呼び出す（実行：ステップ７０９）。
【００４９】
図８はマスキングファイル生成プログラム３１の処理の流れを示すフローチャート図である。
【００５０】
出力するマスキングファイル５０が存在しない場合はファイルを生成し、存在すれば、ファイルを開く（ステップ８０１）。
【００５１】
マスキングファイル５０に出力する変換テーブルをパラメータより受け取り、リスト化する（ステップ８０２）。以下、順次、変換テーブルを処理する。処理対象の変換テーブルおよび禁止文字テーブルを読み出し、メモリ上に展開する（ステップ８０３）。該当カラムの適用IDの禁止文字列が変換テーブルにあるか判定を行い（ステップ８０４）、禁止文字列がある場合は（ｙｅｓ）変換テーブルより禁止文字列を削除し、マスキングファイル５０に出力しないようにして、変換対象外とする（ステップ８０５）。変換テーブルにある文字に対して、乱数項目を追加し、乱数順にソートする（ステップ８０６）。ソート前の変換テーブルとソート後の変換テーブルをつなぎ合わせ、マスキングファイル５０を出力する（スステップ８０７）。対象の変換テーブル処理がすべて行ったどうか判定を行い、すべて行った場合は処理を終了する。
【００５２】
（まとめ）
本発明によれば、文字種別ごとに変換テーブルが生成されるため、マスキング後の文字列がマスキング前の文字列と類似度の高いものとなる。
【００５３】
また、一定期間あるいは、一定回数接続すること毎に、異なる変換テーブルが使用されるため、指定したカラムの文字列の変換を行ったマスキング処理対象の文字列は一定のタイミングで変更される。そのため、復号が極めて困難なテストデータを作成することが可能となる。
【００５４】
さらに、タイミング・変換ルールを組み合わせてマスキングすることで、有用性の高いテストデータの作成が可能となる。
【００５５】
尚、本発明は、本実施の形態における上記方法をコンピュータに実行させるためのプログラムであっても良く、該プログラムを記録するコンピュータ読み取り可能な記録媒体であっても良い。
【産業上の利用可能性】
【００５６】
本発明は、テスト用マスキングデータ生成装置に利用可能である。
【符号の説明】
【００５７】
１０  データベース
２０  データベース接続装置
２１  マスキング処理プログラム
３１  マスキングファイル生成プログラム
３２  半角英字変換テーブル
３３  半角数字変換テーブル
３４  記号変換テーブル
３５  カタカナ変換テーブル
３６  全角英字変換テーブル
３７  全角数字変換テーブル
３８  漢字変換テーブル
３９  ひらがな変換テーブル
４０  日付変換テーブル
４１  禁止文字テーブル
４２  漢字画数変換テーブル
５０  マスキングファイル
５１  テーブル定義ファイル
５２  出力結果
【図１】
0005513953.tif 000002
【図２】
0005513953.tif 000003
【図３】
0005513953.tif 000004
【図４】
0005513953.tif 000005
【図５】
0005513953.tif 000006
【図６】
0005513953.tif 000007
【図７】
0005513953.tif 000008
【図８】
0005513953.tif 000009