(57)【要約】【課題】個人情報を含む順次ファイルからデータ構造に基づき個人情報をマスキングする。【解決手段】個人情報を含むＤＢ構造を含む順次ファイル１０２の構造体情報１０３を記憶し、当該構造体情報１０３に基づきマスキングしようとする順次ファイル１０２のデータ項目をマスキング方法の選択肢とともに表示してそれらの選択の入力を受け付け、それに基づいて、順次ファイル１０２に含まれるデータ項目に属する文字列データの要素に対してそれに対応するマスキング方法を適用して変換することによってテスト用順次ファイル１０４を生成するためのループ命令、レコード読み出し命令、マスキング方法に対応するデータ操作命令、及びレコード書き込み命令を含むマスキングプログラム１５１ｃ８を生成し、当該プログラムを基幹システム１０１サーバで実行する。【選択図】図１
2008033411.tif 000002
【特許請求の範囲】
【請求項１】
基幹システムで利用される、少なくとも一部に個人情報を含み、文字コードの要素からなる文字列データをデータ項目ごとに分類して配列したレコードを複数配列して構成されたデータベース構造を含む順次ファイルから、当該基幹システムの動作テストを当該個人情報が漏洩しないようにして実行するために当該個人情報をマスキングしたテスト用順次ファイルを生成するための個人情報マスキングシステムであって、
前記順次ファイルを記憶する順次ファイル記憶手段と、
前記順次ファイルに対応して、それに含まれるデータ項目と当該データ項目に属する文字列データのレコード内での位置の情報を含む構造体情報を記憶する構造体情報記憶手段と、
前記構造体情報記憶手段からマスキングしようとする順次ファイルに対応する前記構造体情報をプロセッサによって取得する構造体情報取得手段と、
前記構造体情報に基づき前記順次ファイルのデータ項目をマスキング方法の選択肢とともに表示し、マスキングする被マスキングデータ項目の選択及び当該被マスキングデータ項目に対するマスキング方法の選択の入力を前記プロセッサが受け付けて、前記被マスキングデータ項目と前記マスキング方法との対応関係をマスキング方法指定データとして記憶させるマスキング方法入力手段と、
前記順次ファイルに含まれるそれぞれの文字列データについて、前記マスキング方法指定データに基づいて、前記被マスキングデータ項目に属する文字列データの要素に対して当該被マスキングデータ項目に対応するマスキング方法を適用して変換することによってテスト用順次ファイルを前記プロセッサが生成するためのマスキングプログラムを生成するマスキングプログラム生成手段と、
前記マスキングプログラムを前記プロセッサあるいは他のプロセッサによって実行することにより、前記順次ファイルから前記テスト用順次ファイルを作成するマスキングプログラム実行手段と、を具備し、
前記マスキングプログラム生成手段は、
所定のプログラム言語で記述された、所定の変数をループ開始値から開始してループ終了値に達するまで所定のループ位置範囲に配置された命令列をループさせて実行させるループ命令を表わすテキストデータ及び前記ループ開始値及び前記ループ終了値を指定する引数の記述位置を示す引数記述位置データ、
前記所定のプログラム言語で記述された、前記ファイルから前記レコードを読み出してメモリ上に展開するレコード読み出し命令を表わすテキストデータ及び読み出すレコードを指定する引数の記述位置を示す引数記述位置データ、
前記所定のプログラム言語で記述された、前記メモリ上に展開された前記レコードの任意のデータ項目に属する文字列データの要素を、それぞれの前記マスキング方法に従って書き換えるデータ操作命令を表わすテキストデータ及び操作対象データ項目及び操作後データ内容を指定する引数の記述位置を示す引数記述位置データ、及び
前記所定のプログラム言語で記述された、前記メモリ上に展開された前記レコードを前記ファイルに書き込むレコード書き込み命令を表わすテキストデータ及び書き込むレコードを指定する引数の記述位置を示す引数記述位置データ、を含むプログラム生成データを記憶しており、
前記プロセッサにより、前記プログラム生成データから前記ループ命令を表わすテキストデータを読み出し、それに対して、当該ループ命令に対応する前記引数記述位置データを読み出してそれに基づき、当該ループ命令の引数の記述位置に、前記レコードの識別子を変数として、前記ループ開始値としての先頭の前記レコードの識別子、及び前記ループ終了値としての最後尾の前記レコードの識別子を配置することによって、前記順次ファイルのすべてのレコードにわたる範囲のループ命令列を作成し、それを生成プログラム一時記憶領域に出力するループ命令列生成手段と、
前記プロセッサにより、前記プログラム生成データから前記レコード読み出し命令を表わすテキストデータを読み出し、それに対して、当該レコード読み出し命令に対応する前記引数記述位置データを読み出してそれに基づき、当該レコード読み出し命令の引数の記述位置にデータ操作を実施するレコードの識別子を表わす変数を配置することによって、前記順次ファイルのレコードを読み出すレコード読み出し命令列を作成して前記生成プログラム一時記憶領域における前記ループ命令列の前記ループ位置範囲内に出力するレコード読み出し命令列生成手段と、
前記プロセッサにより、前記プログラム生成データから、前記被マスキングデータ項目のそれぞれに対応するマスキング方法を実施する前記データ操作命令を表わすテキストデータを読み出し、それに対して、当該データ操作命令に対応する前記引数記述位置データを読み出してそれに基づき、当該データ操作命令の引数の記述位置に、前記操作対象データ項目として前記被マスキングデータ項目を配置し、前記操作後データ内容の引数の記述位置に、当該被マスキングデータ項目に対応するマスキング方法を当該被マスキングデータ項目に属する文字列データに適用して書き換えた操作後データ内容が導入されるように配置することによって、読み出された前記レコードの前記被マスキングデータ項目に属する文字列データをそれに対応する前記マスキング方法に従って書き換えるデータ操作命令列を作成して前記生成プログラム一時記憶領域における前記ループ位置範囲内の前記レコード読み出し命令列の後に実行される位置に出力するデータ操作命令列生成手段と、
前記プロセッサにより、前記プログラム生成データから前記レコード書き込み命令を表わすテキストデータを読み出し、それに対して、当該レコード書き込み命令に対応する前記引数記述位置データを読み出してそれに基づき、当該レコード書き込みの引数の記述位置に前記データ操作命令列によりデータ操作が実施されたレコードの識別子を表わす変数を配置することによって、前記順次ファイルにデータ操作されたレコードを書き込むレコード書き込み命令列を作成して前記生成プログラム一時記憶領域における前記ループ命令列の前記ループ位置範囲内の前記データ操作命令列の後に実行される位置に出力するレコード書き込み命令列生成手段と、
前記プロセッサにより、前記生成プログラム一時記憶領域に記憶されている前記ループ命令列、前記レコード読み出し命令列、前記データ操作命令列、及び前記レコード書き込み命令列からなる一連の命令列をマスキングプログラムとしてファイルに出力するマスキングプログラム出力手段と、
を含むことを特徴とする個人情報マスキングシステム。
【請求項２】
請求項１に記載の個人情報マスキングシステムにおいて、
前記マスキング方法は、前記被マスキングデータ項目に属する文字列データの少なくとも一部の要素の文字コードを所定の変換規則により他の文字コードに変換する文字コード変換処理を含む個人情報マスキングシステム。
【請求項３】
請求項２に記載の個人情報マスキングシステムにおいて、
前記マスキング方法の前記所定の変換規則は、変換前の文字コードに対して所定の演算を実施した結果を変換後の文字コードとするものである個人情報マスキングシステム。
【請求項４】
請求項２に記載の個人情報マスキングシステムにおいて、
前記マスキング方法の前記所定の変換規則は、複数の変換前の文字コードに対して一つの変換後の文字コードが対応する場合がある個人情報マスキングシステム。
【請求項５】
請求項２に記載の個人情報マスキングシステムにおいて、
それぞれの文字コードに対応する文字が存在するかどうかを示す文字コードテーブルをさらに含み、
前記マスキング方法は、前記被マスキングデータ項目に属する文字列データの少なくとも一部の要素の文字コードを所定の変換規則により他の文字コードに変換し、前記文字コードテーブルに基づいて変換後の前記他の文字コードに対応する文字が存在するかどうかを確認し、対応する文字が存在しなければ、対応する文字が存在するまで変換を反復する個人情報マスキングシステム。
【請求項６】
請求項５に記載の個人情報マスキングシステムにおいて、
前記データ項目は氏名を含み、
前記マスキング方法は、前記被マスキングデータ項目が氏名の場合、当該被マスキングデータ項目に属する文字列データの３文字目以降の要素の文字コードを他の文字コードに変換する文字コード変換処理を含む個人情報マスキングシステム。
【請求項７】
請求項１に記載の個人情報マスキングシステムにおいて、
前記マスキング方法は、前記被マスキングデータ項目に属する文字列データの少なくとも一部の要素からなる文字列の文字コードを同じ長さの所定の文字列を表わす文字コードに変換する塗りつぶし処理を含む個人情報マスキングシステム。
【請求項８】
請求項７に記載の個人情報マスキングシステムにおいて、
前記データ項目は電話番号を含み、
前記マスキング方法は、前記被マスキングデータ項目が電話番号の場合、当該被マスキングデータ項目に属する文字列データの末尾から４文字目以降の要素の文字コードを所定の数字の文字コードに変換する塗りつぶし処理を含む個人情報マスキングシステム。
【請求項９】
請求項７に記載の個人情報マスキングシステムにおいて、
前記データ項目は住所を含み、
前記マスキング方法は、前記被マスキングデータ項目が住所の場合、当該被マスキングデータ項目に属する文字列データにおける数字の要素の文字コードを所定の数字の文字コードに変換する塗りつぶし処理を含む個人情報マスキングシステム。
【請求項１０】
請求項１に記載の個人情報マスキングシステムにおいて、
通常のＯＳとテスト環境ＯＳとを選択して起動できるように構成されており、
前記テスト環境ＯＳは、前記順次ファイルにはアクセスできないが、前記テスト用順次ファイルにはアクセスできるようなアクセス制限を有する個人情報マスキングシステム。
【請求項１１】
請求項１に記載の個人情報マスキングシステムにおいて、
前記所定のプログラム言語は、前記基幹システムで使用されるプログラム言語と同じであり、前記マスキングプログラムは前記基幹システムに含まれるプロセッサによって実行される個人情報マスキングシステム。
【請求項１２】
請求項１１に記載の個人情報マスキングシステムにおいて、
前記所定のプログラム言語は、ＣＯＢＯＬ言語であり、
前記構造体情報は、ＣＯＢＯＬ言語におけるコピー句として記述されている個人情報マスキングシステム。
【請求項１３】
請求項１に記載の個人情報マスキングシステムにおいて、
前記順次ファイルから前回のマスキング処理以降に更新されたものを実行対象として特定し、前記マスキングプログラム実行手段に当該実行対象として特定された順次ファイルに対して前記マスキングプログラムを実行させる更新順次ファイル検索手段をさらに有する個人情報マスキングシステム。
【請求項１４】
基幹システムで利用される、少なくとも一部に個人情報を含み、文字コードの要素からなる文字列データをデータ項目ごとに分類して配列したレコードを複数配列して構成されたデータベース構造を含む順次ファイルから、当該基幹システムの動作テストを当該個人情報が漏洩しないようにして実行するために当該個人情報をマスキングしたテスト用順次ファイルを生成するための個人情報マスキング方法であって、
前記順次ファイルを記憶する順次ファイル記憶ステップと、
前記順次ファイルに対応して、それに含まれるデータ項目と当該データ項目に属する文字列データのレコード内での位置の情報を含む構造体情報を記憶する構造体情報記憶ステップと、
前記構造体情報記憶ステップで記憶された前記構造体情報からマスキングしようとする順次ファイルに対応する前記構造体情報をプロセッサによって取得する構造体情報取得ステップと、
前記構造体情報に基づき前記順次ファイルのデータ項目をマスキング方法の選択肢とともに表示し、マスキングする被マスキングデータ項目の選択及び当該被マスキングデータ項目に対するマスキング方法の選択の入力を前記プロセッサが受け付けて、前記被マスキングデータ項目と前記マスキング方法との対応関係をマスキング方法指定データとして記憶させるマスキング方法入力ステップと、
前記順次ファイルに含まれるそれぞれの文字列データについて、前記マスキング方法指定データに基づいて、前記被マスキングデータ項目に属する文字列データの要素に対して当該被マスキングデータ項目に対応するマスキング方法を適用して変換することによってテスト用順次ファイルを前記プロセッサが生成するためのマスキングプログラムを生成するマスキングプログラム生成ステップと、
前記マスキングプログラムを前記プロセッサあるいは他のプロセッサによって実行することにより、前記順次ファイルから前記テスト用順次ファイルを作成するマスキングプログラム実行ステップと、からなり、
マスキングプログラム生成ステップは、
所定のプログラム言語で記述された、所定の変数をループ開始値から開始してループ終了値に達するまで所定のループ位置範囲に配置された命令列をループさせて実行させるループ命令を表わすテキストデータ及び前記ループ開始値及び前記ループ終了値を指定する引数の記述位置を示す引数記述位置データ、
前記所定のプログラム言語で記述された、前記ファイルから前記レコードを読み出してメモリ上に展開するレコード読み出し命令を表わすテキストデータ及び読み出すレコードを指定する引数の記述位置を示す引数記述位置データ、
前記所定のプログラム言語で記述された、前記メモリ上に展開された前記レコードの任意のデータ項目に属する文字列データの要素を、それぞれの前記マスキング方法に従って書き換えるデータ操作命令を表わすテキストデータ及び操作対象データ項目及び操作後データ内容を指定する引数の記述位置を示す引数記述位置データ、及び
前記所定のプログラム言語で記述された、前記メモリ上に展開された前記レコードを前記ファイルに書き込むレコード書き込み命令を表わすテキストデータ及び書き込むレコードを指定する引数の記述位置を示す引数記述位置データ、を含むプログラム生成データをあらかじめ記憶するステップと、
前記プロセッサにより、前記プログラム生成データから前記ループ命令を表わすテキストデータを読み出し、それに対して、当該ループ命令に対応する前記引数記述位置データを読み出してそれに基づき、当該ループ命令の引数の記述位置に、前記レコードの識別子を変数として、前記ループ開始値としての先頭の前記レコードの識別子、及び前記ループ終了値としての最後尾の前記レコードの識別子を配置することによって、前記順次ファイルのすべてのレコードにわたる範囲のループ命令列を作成し、それを生成プログラム一時記憶領域に出力するループ命令列生成ステップと、
前記プロセッサにより、前記プログラム生成データから前記レコード読み出し命令を表わすテキストデータを読み出し、それに対して、当該レコード読み出し命令に対応する前記引数記述位置データを読み出してそれに基づき、当該レコード読み出し命令の引数の記述位置にデータ操作を実施するレコードの識別子を表わす変数を配置することによって、前記順次ファイルのレコードを読み出すレコード読み出し命令列を作成して前記生成プログラム一時記憶領域における前記ループ命令列の前記ループ位置範囲内に出力するレコード読み出し命令列生成ステップと、
前記プロセッサにより、前記プログラム生成データから、前記被マスキングデータ項目のそれぞれに対応するマスキング方法を実施する前記データ操作命令を表わすテキストデータを読み出し、それに対して、当該データ操作命令に対応する前記引数記述位置データを読み出してそれに基づき、当該データ操作命令の引数の記述位置に、前記操作対象データ項目として前記被マスキングデータ項目を配置し、前記操作後データ内容の引数の記述位置に、当該被マスキングデータ項目に対応するマスキング方法を当該被マスキングデータ項目に属する文字列データに適用して書き換えた操作後データ内容が導入されるように配置することによって、読み出された前記レコードの前記被マスキングデータ項目に属する文字列データをそれに対応する前記マスキング方法に従って書き換えるデータ操作命令列を作成して前記生成プログラム一時記憶領域における前記ループ位置範囲内の前記レコード読み出し命令列の後に実行される位置に出力するデータ操作命令列生成ステップと、
前記プロセッサにより、前記プログラム生成データから前記レコード書き込み命令を表わすテキストデータを読み出し、それに対して、当該レコード書き込み命令に対応する前記引数記述位置データを読み出してそれに基づき、当該レコード書き込みの引数の記述位置に前記データ操作命令列によりデータ操作が実施されたレコードの識別子を表わす変数を配置することによって、前記順次ファイルにデータ操作されたレコードを書き込むレコード書き込み命令列を作成して前記生成プログラム一時記憶領域における前記ループ命令列の前記ループ位置範囲内の前記データ操作命令列の後に実行される位置に出力するレコード書き込み命令列生成ステップと、
前記プロセッサにより、前記生成プログラム一時記憶領域に記憶されている前記ループ命令列、前記レコード読み出し命令列、前記データ操作命令列、及び前記レコード書き込み命令列からなる一連の命令列をマスキングプログラムとしてファイルに出力するマスキングプログラム出力ステップと、
を含むことを特徴とする個人情報マスキング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ドキュメントのマスキングシステムに関し、より詳しくは、個人情報を含む文字列データからなるレコードを含むデータベース構造を含む順次ファイルにおいて、当該文字列データの少なくとも一部を変換することによってマスキングする個人情報マスキングシステムに関する。
【背景技術】
【０００２】
保険、金融、販売、その他の顧客管理を伴うサービスを実施する業務分野においては、業務のために顧客の個人情報を含む顧客データを管理する必要がある。そのような顧客データは、利用性の観点から、文字コードの要素からなる文字列データをデータ項目ごとに分類して配列したレコードを複数配列して構成されたデータベース構造を含む順次ファイル（ＳＡＭファイル）として記憶・管理されることが通常である。企業の基幹システムは、そのような順次ファイルを利用して各種の一括処理的な顧客サービスに係る処理をバッチ処理によって実行し、また、そのような順次ファイルをデータベース管理システムにローディングすることによって、オンラインによるリアルタイムの顧客管理や顧客サービスに係る処理を実行する。一方、そのような基幹システムのホストコンピュータは、システム開発やバージョンアップに伴って、確実に動作することを確認するために、実際に利用する前に、必ず動作テストを実施する必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
動作テストを実施するためにはテストデータが必要であるが、このテストデータとして実際の顧客データを含む順次ファイルを使用すると、確実なテストを実施することが可能である。しかし、システム開発や動作テストは必ずしも企業内ですべて実施できるとは限らず、それに関する作業の一部を外注することも多い。このような場合に、テストデータとして実際の顧客データを使用することは、顧客の個人情報の保護の観点から、行うことはできない。しかし、テストデータとしては、実際の顧客データに近いデータを使用した方が、動作テストにおいて実際の利用環境に近い状態を実現できるため、潜在的な不具合を発見する機会が多くなり、より好ましい。
【０００４】
このためには、実際の顧客データの一部をマスキングすることにより、個人情報が漏洩することを確実に防止しつつ、顧客データのデータ構造を可能な限り維持したテストデータを生成できるようなマスキングシステムがあると好適である。さらにこの際には、基幹システムでテスト用順次ファイルの生成を行うと、順次ファイルの転送を行う必要がなく、計算機資源やネットワーク資源を浪費することなくそのようなマスキングシステムを構築することが可能となる。そのためには、マスキングを実行するためのプログラムを基幹システムで実行させる必要がある。
【０００５】
テスト用のデータを生成するためのソフトウェアとしては、例えば日本コンピュウェア（登録商標）のＦｉｌｅ−ＡＩＤ／Ｄａｔａ  Ｓｏｌｕｔｉｏｎｓなどがある。Ｆｉｌｅ−ＡＩＤ／Ｄａｔａ  Ｓｏｌｕｔｉｏｎｓによれば、順次ファイルなどからそれの任意のフィールドを暗号化したテストデータを作成することが可能である。しかし、暗号化のマスキングパターンが限られており、高度な暗号化の要求に応えられるものではなかった。例えば、当該従来技術においては、暗号化は１対１の変換であり、暗号化したテストデータから元データを復号される可能性があった。また、氏名、住所、電話番号などのデータの特徴に合わせたテストデータのバリエーションを持たせつつ元データの概観を残し、しかも復元不可能なテストデータを作成することはできなかった。また、マスキングを行わない処理対象外文字を指定してマスキングを行うことはできなかった。また、マスキング処理を基幹システムで実行させるためのマスキングプログラムを生成し、それを実行させることによって基幹システムの環境でマスキング処理を実行させることはできなかった。本発明は、上記の課題に鑑みてなされたものであり、マスキングする被マスキングデータ項目の選択及び当該被マスキングデータ項目に対するマスキング方法をオペレータに指定させ、それに基づいてマスキング処理を実施するマスキングプログラムを生成し、これを実行させることによって、柔軟にマスキング方法を設定可能な個人情報マスキングシステムを提供するものである。
【課題を解決するための手段】
【０００６】
上記の課題は以下の特徴を有する本発明によって解決される。すなわち本発明は、基幹システムで利用される、少なくとも一部に個人情報を含み、文字コードの要素からなる文字列データをデータ項目ごとに分類して配列したレコードを複数配列して構成されたデータベース構造を含む順次ファイルから、当該基幹システムの動作テストを当該個人情報が漏洩しないようにして実行するために当該個人情報をマスキングしたテスト用順次ファイルを生成するための個人情報マスキングシステムであって、順次ファイルを記憶する順次ファイル記憶手段と、順次ファイルに含まれるデータ項目と当該データ項目に属する文字列データのレコード内での位置の情報を含む構造体情報を記憶する構造体情報記憶手段を有し、構造体情報に基づきマスキングしようとする順次ファイルのデータ項目をマスキング方法の選択肢とともに表示し、マスキングする被マスキングデータ項目の選択及び当該被マスキングデータ項目に対するマスキング方法の選択の入力を受け付け、それに基づいて、順次ファイルに含まれるそれぞれの文字列データについて、被マスキングデータ項目に属する文字列データの要素に対して当該被マスキングデータ項目に対応するマスキング方法を適用して変換することによってテスト用順次ファイルを生成するためのマスキングプログラム生成手段を有し、当該マスキングプログラム生成手段は、所定のプログラミング言語で記述された、ループ命令、レコード読み出し命令、データ操作命令、及びレコード書き込み命令のそれぞれの命令を表わすテキストデータ及びそれの引数の記述位置を示す引数記述位置データを含むプログラム生成データとして記憶しており、それに基づいて、被マスキングデータ項目のそれぞれに対してそれに対応するマスキング方法を適用するための、ループ命令列、レコード読み出し命令列、データ操作命令列、及びレコード書き込み命令列からなるマスキングプログラムを生成し、それをマスキングプログラム実行手段によって実行することによってマスキング処理を実施することを特徴とする。
【０００７】
本発明は、マスキング方法として、被マスキングデータ項目に属する文字列データの少なくとも一部の要素の文字コードを所定の変換規則により他の文字コードに変換する文字コード変換処理を含むように構成できる。また本発明は、当該所定の変換規則を、変換前の文字コードに対して所定の演算を実施した結果を変換後の文字コードとするように構成できる。また本発明は、当該所定の変換規則は、複数の変換前の文字コードに対して一つの変換後の文字コードが対応する場合があるように構成できる。また本発明は、それぞれの文字コードに対応する文字が存在するかどうかを示す文字コードテーブルを含み、文字コードテーブルに基づいて変換後の前記他の文字コードに対応する文字が存在するかどうかを確認し、対応する文字が存在しなければ、対応する文字が存在するまで変換を反復するように構成できる。
【０００８】
本発明は、データ項目は氏名を含み、被マスキングデータ項目が氏名の場合、当該被マスキングデータ項目に属する文字列データの３文字目以降の要素の文字コードを他の文字コードに変換する文字コード変換処理を含むように構成できる。また本発明は、被マスキングデータ項目に属する文字列データの少なくとも一部の要素からなる文字列の文字コードを同じ長さの所定の文字列を表わす文字コードに変換する塗りつぶし処理を含むように構成できる。また本発明は、データ項目は電話番号を含み、被マスキングデータ項目が電話番号の場合、被マスキングデータ項目に属する文字列データの末尾から４文字目以降の要素の文字コードを所定の数字の文字コードに変換する塗りつぶし処理を含むように構成できる。また本発明は、データ項目は住所を含み、被マスキングデータ項目が住所の場合、当該被マスキングデータ項目に属する文字列データにおける数字の要素の文字コードを所定の数字の文字コードに変換する塗りつぶし処理を含むように構成できる。
【０００９】
本発明は、通常のＯＳとテスト環境ＯＳとを選択して起動できるように構成されており、テスト環境ＯＳは、順次ファイルにはアクセスできないが、テスト用順次ファイルにはアクセスできるようなアクセス制限を有するように構成できる。また本発明は、マスキングプログラムを記述する所定のプログラム言語は、基幹システムで使用されるプログラム言語と同じであり、マスキングプログラムは基幹システムに含まれるプロセッサによって実行されるように構成できる。また本発明は、所定のプログラム言語は、ＣＯＢＯＬ言語であり、構造体情報はＣＯＢＯＬ言語におけるコピー句として記述されるように構成できる。
【００１０】
本発明は、順次ファイルのそれぞれが所定期間内に更新されたものであるかどうかを判断し、所定期間内に更新された順次ファイルを検索してマスキング処理の実行対象の順次ファイルとするように構成できる。これによって、定例的にテスト用順次ファイルを作成することができる。
【００１１】
上記あるいは特許請求の範囲に記載の発明において、システム、ファイル、レコード、順次ファイル、プロセッサなどの用語は、それらの具体的形態や具体的呼称を限定するものではなく、その一般的な機能を備えたものを表わすための表現である。１つの構成要素などが有する機能が１つより多くの物理的構成によって実現されてもよく、１つより多い構成要素などが有する機能が１つの物理的構成によって実現されてもよい。装置の発明は、各構成要素の機能が逐次的に実行される方法の発明として把握することができ、その逆も成り立つ。方法の発明においては、各ステップは記載された順序に実行されるものに限定されるものではなく、全体としての機能が矛盾なく実行される範囲において自由な順序でそれを実行することができる。これらの発明は、装置の発明における各手段や方法の発明における各ステップの有する機能を所定のハードウェアと協働して実現させるプログラムとしても成立し、それを記録した記録媒体としても成立する。また本発明は、搬送波上に具現化されたコンピュータ・データ信号であって、そのプログラムのコードを備えたものとしても成立しうる。
【発明の効果】
【００１２】
本発明によれば、被マスキングデータ項目のそれぞれに対して各種のマスキング方法を選択させ、それに基づいてまずキングプログラムを生成してマスキング処理を実施することができるため、柔軟にマスキング方法を設定することが可能であるという効果が得られる。また本発明によれば、マスキング方法として、所定の変換規則による文字コード変換処理、所定の演算による文字コード変換処理、多対一の文字コード変換処理、変換後が文字であることの確認処理、氏名に対する３文字目以降の変換処理、塗りつぶし処理、電話番号に対する末尾４文字目以降の塗りつぶし処理、住所に対する数字部分の塗りつぶし処理、などのマスキング方法が準備されており、多彩かつデータ項目に応じた効果的なマスキング処理を実施することができるという効果が得られる。通常のＯＳとテスト環境ＯＳとを選択して起動できるように構成されており、テスト環境ＯＳは、順次ファイルにはアクセスできないが、テスト用順次ファイルにはアクセスできるようなアクセス制限を有するため、テスト時に元データの順次ファイルに悪影響を及ぼさずに高度のテストを実施できるという効果が得られる。また、基幹システムで使用されるプログラム言語でマスキングプログラムを生成し、基幹システムによってマスキングプログラムを実行させることによってマスキング処理を行えるため、マスキングの対象の順次ファイルをネットワークを通じて転送する必要がないという効果が得られる。また、更新された順次ファイルを自動的に検索してマスキング処理を実施することができるため、定例的な動作テストに対して最新のテスト用順次ファイルを準備することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１３】
［個人情報マスキングシステムの構成］
これから図面を参照して、本発明の一実施形態に係る個人情報マスキングシステム１００について説明する。まず、個人情報マスキングシステム１００の構成について説明する。図１は、個人情報マスキングシステム１００の構成を表わすシステム構成図である。本実施例では、個人情報マスキングシステム１００はＣＯＢＯＬ言語で記述されたプログラムを実行するコンピュータから構成されるが、発明としてはこれらの言語に限定されるものではない。言語としては、データの構造を構造体として定義できるものが好適である。ＣＯＢＯＬ言語においては、コピー句としてデータ（レコード）の構造を記述・定義することができる。個人情報マスキングシステム１００は、大きく、基幹システムサーバ１０１とマスキング処理サーバ１５１とから構成されている。基幹システムサーバ１０１とマスキング処理サーバ１５１とはネットワークで接続されている。
【００１４】
基幹システムサーバ１０１は、入力されるコマンドに基づき、順次ファイル１０２を利用・管理するサーバである。順次ファイル１０２は、基幹システムサーバ１０１が基幹システムの業務のために使用する順次ファイルであり、少なくとも一部に個人情報を含み、文字コードの要素からなる文字列データをデータ項目ごとに分類して配列したレコードを複数配列して構成したデータベース構造を含むものである。順次ファイル１０２は、一括処理的な業務処理についてはバッチ処理のプログラムで使用され、オンラインでのリアルタイムの業務処理については、後述のデータベース管理プログラムによって実現されるデータベース管理システムにローディングしてランダムアクセスファイルとして使用される。本実施例においては、複数の種類の順次ファイル１０２が記憶されているが、マスキング処理の対象とされる順次ファイル１０２は、火災保険の査定用データを管理する順次ファイルである。順次ファイル１０２のレコードの構造は、ＣＯＢＯＬにおいては入出力定義によって表わされるため、コピー句の形態で、対応するコピー句情報１０３として記憶される。コピー句情報１０３は、複数の順次ファイル１０２のファイルで共用することも可能である。順次ファイル１０２のレコードの構造は、再定義によって、同じ順次ファイル１０２内のレコードを異なるレコードの構造を持つものとして扱うことが可能である。このようにすることによって、同じ順次ファイル１０２の中に使用目的の異なるレコードの集合を混在させることが可能となる。本実施例においては、マスキングしようとする順次ファイル１０２は再定義されるレコードを含むものであり、セグメントＮｏ．という識別子を用いて、コピー句情報１０３のどの部分に記述された構造が適用されるのかが識別される。
【００１５】
基幹システムサーバ１０１は、さらに、ＣＰＵ１０１ａ、ＲＡＭ１０１ｂ、記憶装置１０１ｃ、ユーザインターフェース１０１ｄ（以下、「インターフェース」を「Ｉ／Ｆ」と略する。）、ネットワークＩ／Ｆ  １０１ｅから構成される。ＣＰＵ１０１ａは、記憶装置１０１ｃからＲＡＭ１０１ｂ上にロードされたプログラムを実行することによって情報処理を行うプロセッサの形態であり、実行するプログラムと協働して本発明の各種の手段を構成するものである。ＲＡＭ１０１ｂは、ＣＰＵ１０１ａによって処理されるプログラムやデータがその上に読み込まれるメモリ空間と、読み込まれたプログラムがＣＰＵ１０１ａによって実行される際に必要となるワークエリア等を提供するものであり、具体的には揮発性のメモリの形態である。記憶装置１０１ｃは、プログラムやデータなどを記憶・管理する構成要素であり、典型的にはハードディスクドライブなどの形態である。記憶装置１０１ｃは、プログラム要素として、ＯＳ１０１ｃ１、テスト環境ＯＳ１０１ｃ２、基幹システムプログラム１０１ｃ３、データベース管理プログラム１０１ｃ４、更新順次ファイル検索モジュール１０１ｃ５を記憶しており、データ要素として、順次ファイル１０２、コピー句情報１０３を記憶している。記憶装置１０１ｃは、マスキング処理の進行に伴って、データ要素として、マスキングプログラム１５１ｃ８、テスト用順次ファイル１０４をさらに記憶することになる。プログラム要素は、ＲＡＭ１０１ｂ上にロードされてＣＰＵ１０１ａによって実行されることにより、プログラムを動作させるための基本プログラムや本発明の各種の手段を構成するものであり、ＯＳ１０１ｃ１は実運用環境での基本的な機能を提供するため基本プログラムであり、テスト環境ＯＳ１０１ｃ２はテスト環境での基本的な機能を提供するための基本プログラムであり、基幹システムプログラム１０１ｃ３は基幹システム（図示せず。以下、参照番号１０１ｃ３を使用する。）を、データベース管理プログラム１０１ｃ４はデータベース管理システム（図示せず。以下、参照番号１０１ｃ４を使用する。）を、更新順次ファイル検索モジュール１０１ｃ５は更新順次ファイル検索手段（図示せず。以下、参照番号１０１ｃ５を使用する。）を、それぞれ構成する。ＯＳ１０１ｃ１は実運用環境（順次ファイル１０２およびテスト用順次ファイル１０４にアクセス可能）でのコンピュータの入出力機能やメモリ管理などの基本的な機能を提供するため基本プログラムである。実運用においては、データベース管理システム１０１ｃ４や基幹システム１０１ｃ５は順次ファイル１０２にアクセスして各種処理を実行し、またマスキング処理の実行も実運用環境において順次ファイル１０２からテスト用順次ファイル１０４を生成することで実行される。テスト環境ＯＳ１０１ｃ２はテスト環境（順次ファイル１０２にはアクセス不可能であり、テスト用順次ファイル１０４にアクセス可能）でのコンピュータの入出力機能やメモリ管理などの基本的な機能を提供するための基本プログラムである。テスト環境においては、データベース管理システム１０１ｃ４や基幹システム１０１ｃ５は順次ファイル１０２にはアクセス不可能であり、テスト用順次ファイル���０４にアクセス可能であるようなアクセス制限がなされる。従って、テスト環境でコンピュータを立ち上げた場合には、何らかのトラブルが生じても順次ファイル１０２を破壊する可能性はなく、様々なテストを実行することができる。ＯＳ１０１ｃ１とテスト環境ＯＳ１０１ｃ２とはいずれか一方を選択して基幹システムサーバを立ち上げることができるようになっている。基幹システム１０１ｃ３は、本実施例においては基幹業務として火災保険の査定を管理するシステムであり、郵便物の送付などの一括処理については順次ファイル１０２をバッチ処理で使用することによって実行し、顧客データのオンラインでの参照・変更などのリアルタイム処理については、順次ファイル１０２をデータベース管理システム１０１ｃ４にローディングしたのちに使用することによって実行する。データベース管理システム１０１ｃ４は、順次ファイル１０２をローディングしてランダムアクセスファイルとして管理するシステムであり、顧客データのリアルタイム処理を必要とする基幹システムからコマンドを受信して、データの検索、更新、登録、削除などの必要な処理を実行する。なお、データベース管理プログラムが基幹システムサーバ１０１以外のコンピュータで実施されることによって、データベース管理システム１０１ｃ４が物理的に基幹システムサーバ１０１以外のハードウェアによって実現されていてもよい。この場合は、データベース管理システム１０１ｃ４は独自に記憶装置を有しており、基幹システムサーバ１０１とはネットワークで接続される。更新順次ファイル検索手段１０１ｃ５は、マスキング処理の実行対象となる、更新がされて内容が変更された順次ファイル１０２を検索する構成要素である。ユーザＩ／Ｆ  １０１ｄは、ユーザ（オペレータ）との間でデータの入出力を行うための構成要素であり、典型的には、ユーザに対してデータを出力するディスプレイなどの形態の出力手段、ユーザから指令やデータの入力を受け付けるキーボードなどの形態の入力手段、及びそれらとＣＰＵ１０１ａとの間のハードウェアＩ／Ｆ回路から構成される。ネットワークＩ／Ｆ  １０１ｅは、ネットワークに接続して他のネットワークに接続された構成要素との間で情報の入出力を行うためのＩ／Ｆである。以下の説明において、ネットワークを介したサーバ間での情報の送受は、ネットワークＩ／Ｆ  １０１ｅを通じて実施される。
【００１６】
マスキング処理サーバ１５１は、基幹システムサーバ１０１が管理している順次ファイル１０２から、マスキングしようとする順次ファイル１０２のコピー句情報１０３を取得して、マスキング処理を実行するためのマスキングプログラムを生成するサーバである。マスキング処理サーバ１５１は、さらに、ＣＰＵ１５１ａ、ＲＡＭ１５１ｂ、記憶装置１５１ｃ、ユーザインターフェース１５１ｄ、ネットワークＩ／Ｆ  １５１ｅから構成される。ＣＰＵ１５１ａ、ＲＡＭ１５１ｂ、記憶装置１５１ｃ、ユーザＩ／Ｆ  １５１ｄ、ネットワークＩ／Ｆ  １５１ｅは、それぞれＣＰＵ１０１ａ、ＲＡＭ１０１ｂ、記憶装置１０１ｃ、ユーザＩ／Ｆ  １０１ｄ、ネットワークＩ／Ｆ  １０１ｅと同様の構成である。なお、ユーザＩ／Ｆ  １０１ｄに代えて、ネットワーク上の他の端末からＷｅｂベースで情報の表示及び操作の入力を受け付けるためのＷｅｂサーバ機能を有していてもよい。記憶装置１５１ｃは、プログラム要素として、コピー句情報取得モジュール１５１ｃ１、マスキング方法入力モジュール１５１ｃ２、マスキングプログラム生成モジュール１５１ｃ３、マスキングプログラム送信モジュール１５１ｃ４を記憶しており、データ要素として、マスキング方法指定データ１５１ｃ６、プログラム生成データ１５１ｃ７、マスキングプログラム１５１ｃ８を記憶している。プログラム要素はＲＡＭ１５１ｂ上にロードされてＣＰＵ１５１ａによって実行されることにより本発明の各種の手段を構成するものであり、コピー句情報取得モジュール１５１ｃ１はコピー句情報取得手段（図示せず。以下、参照番号１５１ｃ１を使用する。）、マスキング方法入力モジュール１５１ｃ２はマスキング方法入力手段（図示せず。以下、参照番号１５１ｃ２を使用する。）、マスキングプログラム生成モジュール１５１ｃ３はマスキングプログラム生成手段（図示せず。以下、参照番号１５１ｃ３を使用する。）、マスキングプログラム送信モジュール１５１ｃ４はマスキングプログラム送信手段（図示せず。以下、参照番号１５１ｃ４を使用する。）を構成する。コピー句情報取得手段１５１ｃ１は、マスキングしようとする順次ファイル１０２に対応するコピー句情報１０３を取得する手段である。マスキング方法入力手段１５１ｃ２は、マスキングしようとする順次ファイル１０２において、マスキングするデータ項目及びマスキング方法の指定の入力を受け付ける手段である。マスキングプログラム生成手段１５１ｃ３は、マスキングプログラム１５１ｃ８を生成する手段である。マスキングプログラム送信手段１５１ｃ４は、生成されたマスキングプログラム１５１ｃ８を基幹システムサーバ１０１に送信する手段である。マスキング方法指定データ１５１ｃ６は、オペレータによって指定された、それぞれのデータ項目に対するマスキング方法の対応関係を表すデータである。プログラム生成データ１５１ｃ７は、マスキング処理を実行させるマスキングプログラム１５１ｃ８の命令列を生成するために必要となるＣＯＢＯＬ言語の各種の命令に対して、その命令を表わすテキストデータ及び当該命令の引数の記述位置を示す引数記述位置データとからなるデータである。命令としては、所定の変数をループ開始値から開始してループ終了値に達するまで所定のループ位置範囲に配置された命令列をループさせて実行させるループ命令、ファイルからレコードを読み出してメモリ上に展開するレコード読み出し命令、メモリ上に展開されたレコードの任意のデータ項目に属する文字列データの要素をマスキング方法に従って書き換えるデータ操作命令、メモリ上に展開されたレコードをファイルに書き込むレコード書き込み命令、などがある。データ操作命令は、マスキング方法ごとに定義されており、それぞれのマスキング方法に従ったデータ操作を実行させる。なお、このプログラム生成データ１５１ｃ７は、マスキングプログラム生成モジュール１５１ｃ３に含まれていてもよい。
【００１７】
ここでマスキング方法の概要について説明する。マスキング方法としては、文字列データの少なくとも一部の要素の文字コードを所定の変換規則により他の文字コードに変換する文字コード変換処理、文字列データの少なくとも一部の要素からなる文字列の文字コードを同じ長さの所定の文字列を表わす文字コードに変換する塗りつぶし処理などが定義されている。文字コード変換処理における所定の変換規則は、変換後の文字コードから変換前の文字コードが推測されないような暗号化処理に準じたものであると好適である。当該変換規則としては、文字コードに対して、所定値あるいは変動値の加算、減算、乗算、割算、排他的論理和演算、シフト演算などの演算を使用することもできる。なお、それぞれの文字コードに対応する文字が存在するかどうかを示す文字コードテーブルを準備し、それに基づいて変換後の文字コードに対応する文字が存在するかどうかを確認すると好適である。この場合、対応する文字が存在しなければ、対応する文字が存在するまで同じ所定の変換規則や、他の変換規則を適用して変換を反復すると好適である。また、所定の変換規則として、複数の変換前の文字コードに対して一つの変換後の文字コードが対応する場合があるような一方向性のものを使用することもできる。このようにすると、変換後の文字コードから変換前の文字コードを推測することはより困難となる。塗りつぶし処理では、変換前の文字コードに関わらず、所定の文字や文字列に変換されるため、必然的に多対一の変換となり、変換前の文字コードを推測することは、事実上、不可能である。以上で、マスキング方法の概要についての説明を終わる。
【００１８】
マスキングプログラム１５１ｃ８は、マスキング処理を実行して順次ファイル１０２からテスト用順次ファイル１０４を生成するための、マスキングプログラム生成手段１５１ｃ３によって生成されるプログラムであり、これが基幹システムサーバ１０１に転送されて、そこのＣＰＵ１０１ａによって実行されることによりマスキング処理が実行される。なお、マスキングプログラム１５１ｃ８は、例えばマスキング処理サーバ１５１などの、基幹システムサーバ１０１以外のハードウェアで実行されてもよい。テスト用順次ファイル１０４は、順次ファイル１０２に対してマスキング処理を実行することによって生成されるものであり、好適には、順次ファイル１０２の更新に応じて生成される。
【００１９】
［個人情報マスキングシステムの動作］
これから、個人情報マスキングシステム１００の動作について説明する。図２及び図３は、個人情報マスキングシステム１００の動作フローを表わす動作フロー図である。記憶装置１０１ｃは、ＯＳ１０１ｃ１の環境で起動したもとで、基幹システム１０１ｃ３の使用対象のデータとして順次ファイル１０２を記憶しており、それぞれの順次ファイル１０２に対応するコピー句情報１０３を記憶している（ステップＳ１０１）。
【００２０】
コピー句情報取得手段１５１ｃ１が、マスキングしようとする順次ファイル１０２、すなわち、テスト用順次ファイル１０４を生成する必要がある順次ファイル１０２に対応するコピー句情報１０３を基幹システムサーバ１０１に要求し、それを受信して記憶装置１５１ｃに記憶する（ステップＳ１０３）。
マスキング方法入力手段１５１ｃ２は、マスキングプログラム生成手段１５１ｃ３が対応するデータ操作命令を生成可能なマスキング方法のリストを記憶している（あるいは、それをプログラム生成データ１５１ｃ７などから取得する）。マスキング方法入力手段１５１ｃ２が、マスキングしようとする順次ファイル１０２のファイルに対応するコピー句情報１０３を読み出し、そこに記述されているレコードの構造を解析してデータ項目名を抽出し、さらにマスキング方法のリストを用いて、データ項目名及びマスキング方法の選択肢をマスキング方法選択画面２００としてディスプレイの画面に表示させ、そして、オペレータからそれぞれのデータ項目に対するマスキング方法の選択を入力手段を介して受け付け、データ項目とマスキング方法との対応関係をマスキング方法指定データ１５１ｃ６として記憶装置１５１ｃに記憶させる（ステップＳ１０５）。マスキング方法が指定されたデータ項目は、マスキング処理が実施されることになる被マスキングデータ項目である。以下に説明するように、マスキング方法選択画面２００においては、被マスキングデータ項目に適用するマスキング方法の選択だけでなく、選択されたマスキング方法によっては、具体的なマスキングのパターン（どのような文字列（マスク文字）によって塗りつぶすか、スペースを文字として扱うか、処理対象外の文字があるか）などを指定することができる。そのような具体的なマスキングのパターンは、マスキング方法指定データ１５１ｃ６に含めて記憶させることもできるし、メモリ上に記憶したままとしておき、後のステップでそのまま利用できるようにしてもよい。
【００２１】
ここでマスキング方法選択画面２００について説明する。図５は、マスキング方法選択画面２００のイメージ図である。ファイル名欄２０１には、マスキング処理の実行しようとする順次ファイル１０２のファイル名が表示される。ここのファイル名を変更することによって、異なる順次ファイル１０２のファイルを指定することが可能である。ここでは、火災保険のそれぞれの契約において事件が発生したために査定が必要となった契約のデータベースのファイルである「火災査定ＤＢ」がファイル名として表示されている。コピー句欄２０３には、順次ファイル１０２に対応するコピー句情報１０３のファイル名が表示される。ここではコピー句として「ＣＤＦＪＰ０１１」が表示されている。
【００２２】
また、この画面を通じて、コピー句内の特定の語句を検索することが可能である。検索コピー句欄２０５には、検索対象のコピー句のファイル名が表示される。ここのコピー句名を変更することによって、異なるコピー句を検索対象として指定することが可能である。ここでは検索コピー句として「ＣＤＦＪＰ０１１」が表示されている。検索語句欄２０７には、検索する語句を入力することができ、それによって検索語句を指定することができる。ここでは検索語句として「ＫＪ−ＨＩＨＯＫ」が表示されている。検索開始ボタン２０９を押すと、検索が開始され、その右側の欄にその語句を含むデータ項目のアイテム名が表示される。ここでは、検索されたデータ項目のアイテム名として、「ＫＪ−ＨＩＨＯＫＥＮＳＨＡ−ＭＥＩ」、「ＫＪ−ＨＩＨＯＫＥＮＳＨＡ−ＪＵＳＨＯ」が表示されている。この検索機能を使用することによって、マスキングしようとするデータ項目をアイテム名から簡単に検索することが可能となる。
【００２３】
条件式２３３欄には、順次ファイル１０２のデータ構造を再定義するための条件式が表示される。この例では、セグメントＮｏ．（[SEGMENT-NO]）が「１１」であるレコードが、マスキング方法選択の対象とされており、それに関する情報のみが画面に表示されている。他の選択条件によって再定義される他のデータ構造を有するレコードが順次ファイル１０２内にある場合には、ここの条件式の選択条件をそれに変更することによって、当該他のデータ構造を有するレコードを画面に表示させることができる。なお、この再定義は必ずしも使用する必要はなく、その場合には条件式で選択条件しなくとも、順次ファイル１０２に含まれるデータ構造のレコードに関する情報がすべて画面に表示される。項目名欄２１１の各行には、順次ファイル１０２に含まれるデータ項目名が一覧で表示される。項目名は、漢字などの２バイト文字を使用して記述される。ここでは項目名として、「住所」、「契約者電話番号」、「法人名」、「支店名」、「氏名１」、「氏名２」、「被害者名」、「漢字被保険者氏名」、「漢字被保険者住所」、「所在地住所カナ」、「漢字氏名１」、「漢字氏名２」などが表示されている。アイテム名欄２１１の各行には、それぞれのデータ項目を表わすアイテム名が一覧で表示される。アイテム名は、英数字、記号などの１バイト文字を使用して記述される。マスク方法欄２１５の各行には、それぞれのデータ項目に対して適用するように選択されたマスキング方法が表示される。マスキング方法は、所定のデータ項目に対してはデフォルトとして所定のマスキング方法があらかじめ決定されていると好適である。また、それぞれのマスキング方法は、マスキング方法選択肢２１５ｍを表示させてそこから選択することができ、これによってそれぞれのデータ項目に適用するマスキング方法を指定することができる。マスキング方法としては、所定の文字コードで塗りつぶす「塗りつぶし」、文字コードを所定の変換規則で変換する「暗号化」、３文字目以降の要素に対して暗号化を行う「３文字目以降」、数字の要素のみをゼロに変換する「住所変換（数値ゼロ変換）」、下４桁をゼロで塗りつぶす「下４桁ゼロ（０）」、すべての領域をヌルあるいはスペースで塗りつぶす「項目クリア」が選択可能である。「３文字目以降」は、特に氏名に対して実行すると、日本人の氏名は２文字目までが姓を表わすことが多いため、大部分の場合において姓を変えずに名だけを暗号化できるので、一定のテストデータのバリエーションを持たせつつ、氏名のデータとしての概観を変えずに個人情報をマスキングできるため好適である。「住所変換（数値ゼロ変換）」は、数字に対応する文字コードをすべてゼロの数字に対応する文字コードに変換する処理であって特に住所をマスキングすることを目的とした処理であり、一定のテストデータのバリエーションを持たせつつ、住所のデータとしての概観を変えずに番地や部屋番号などを塗りつぶすことができる。なお、火災保険などでは住所によって保険料率が異なるため、丁目以前までの住所（郵便番号で特定されうる部分）がマスキングされてしまうと保険料計算のテストが実施できない場合があるため、このマスキング方法はそのような場合に特に有用である。「下４桁ゼロ（０）」は、日本の電話番号は末尾の４桁（下４桁）より前が市外局番であることが多いため、特に電話番号に対して実行すると、一定のテストデータのバリエーションを持たせつつ、電話番号のデータとしての概観を変えずに個人情報をマスキングできるため好適である。属性欄２１７には、それぞれのデータ項目のデータの属性が表示される。ここでは、属性「Ｘ」は１バイト文字からなるデータであることを、属性「Ｎ」は２バイト文字からなるデータ項目であることを表わしている。この属性を参照することによって、文字コードが表わす文字を正確に特定することができる。長さ欄２１９には、それぞれのデータ項目のデータ長が表示される。属性「Ｎ」のデータ項目は表示されたデータ長の２倍のバイト数のデータ長を有することになる。空白文字欄２２１には、データ中のスペースに対応する文字コードの部分を他の文字と同じように扱うかどうかの選択が表示される。これが「無」であれば、スペースを他の文字と区別せずに同じように取り扱うということであり、スペースもマスキング処理の対象となる。これが「有」であれば、スペースは他の文字と区別して異なる取り扱いをするということであり、スペースにはマスキング処理を行わないことになる。マスク文字欄２２３は、マスク方法として「塗りつぶし」が選択されているデータ項目のデータに対して、塗りつぶされる文字（文字列）を置換する文字（文字列）であるマスク文字が表示される。マスク文字は、データ項目に対応してあらかじめデフォルトで設定されていると好適である。ここのマスク文字は変更することが可能である。処理対象外文字欄２２５には、マスキング処理を行わない特定の文字列である処理対象外文字が表示される。「（株）」や「株式会社」などの広く使用されている定型的な文字は、それをマスキングしなくても法人を特定することができないため、そのような文字を処理対象が文字とすると、法人名の特定が不可能である一方で、法人であることのみは識別できるため、有用である。処理対象外文字は、データ項目に対応してあらかじめデフォルトで設定されていると好適である。例えば、「氏名１」、「氏名２」に対しては、「（カブ）」、「カ）」、「カブシキガイシャ」などが、「漢字氏名１」、「漢字氏名２」に対しては、「（株）」、「株式会社」、「（有）」などがあらかじめ登録されている。ここに表示されている処理対象外文字を書き換えることによって、それの追加・変更が可能である。また、被マスキングデータ項目の項目名の左側に表示されている削除ボタン２３１を押すことにより、そのデータ項目をマスキング処理の対象から外すことができる。上記の各種のマスキング方法は、いずれも、マスキング方法に従って変換対象の文字列を特定し、それを変換後の文字列で置換する文字列操作命令を実行することによって実施することができる。以上で、マスキング方法選択画面２００の説明を終わる。
【００２４】
次に、マスキングプログラム生成手段１５１ｃ３が、マスキング方法指定データ１５１ｃ６に従い、プログラム生成データ１５１ｃ７に基づいて、マスキングしようとする順次ファイル１０２の被マスキングデータ項目のそれぞれに属する文字列データに対して、それに対応するマスキング方法を適用する処理をすべてのレコードに対して実行する命令列からなるマスキングプログラム１５１ｃ８を生成する（ステップＳ１０７）。
【００２５】
これから、マスキングプログラム１５１ｃ８の生成ステップを詳細に説明する。図４は、個人情報マスキングシステム１００のマスキングプログラム１５１ｃ８の詳細な生成フローを表わす動作フロー図である。生成されるマスキングプログラム１５１ｃ８は、どのような言語のプログラムであっても、以下のような順番で命令列（一連の命令と引数の列）が実行されるような構成をとることになる。
（１）ループ命令列：すべてのレコードに対してデータ操作が実行されるようにレコードの識別子を表わす変数をインクリメントさせながら、データ操作命令列をループさせる。
（２）レコード読み出し命令列：ループ命令によって指定された変数を識別子とするレコードをファイルから読み出す。
（３）データ操作命令列：それぞれの被マスキングデータ項目に対応するマスキング方法をそれぞれのデータ項目に適用することによってデータ操作を実行する。
（４）レコード書き込み命令列：データ操作が終了したレコードをファイルに書き戻す。そして、ループ命令列に従って、ループが終了するまで上記ステップ（３）に戻って処理を反復する。
【００２６】
ここで、上記の命令列の複数がまとめられて１つの命令列として表現されても、上記の命令列の１つが複数の命令列として表現されてもよい。なお、本実施例では、プログラム言語としてＣＯＢＯＬを使用しているため、レコードの読み出しとレコードの書き込みは、それらのレコードの構造をコピー句で記述していれば、通常の変数の入出力命令と同様に記述することができる。なお、上記の命令列に対して必要に応じて他の機能を有する命令列を追加してもよい。例えば、ファイルのオープン・クローズに対する明示の処理が必要な場合には、上記の命令列の前に、ファイルオープン命令列を記述し、上記の命令列の後に、ファイルクローズ命令列を記述してもよい。
【００２７】
マスキングプログラム生成手段１５１ｃ３は、どのような変換ロジック（どのデータ項目に対してどのようなマスキング方法を適用するのかということ）に従ってプログラムを生成するのかをマスキング方法指定データ１５１ｃ６を参照して決定する。マスキングプログラム生成手段１５１ｃ３は、どのようなテキストデータからなる命令列を出力し、どのように引数を記述すべきなのかということをプログラム生成データ１５１ｃ７に基づいて決定する。
【００２８】
プログラム生成データ１５１ｃ７は、所定のプログラム言語（本実施例ではＣＯＢＯＬ。以下同じ。）で記述された、所定の変数をループ開始値から開始してループ終了値に達するまで所定のループ位置範囲に配置された命令列をループさせて実行させるループ命令を表わすテキストデータ及びループ開始値及びループ終了値を指定する引数の記述位置を示す引数記述位置データ、
所定のプログラム言語で記述された、ファイルからレコードを読み出してメモリ上に展開するレコード読み出し命令を表わすテキストデータ及び読み出すレコードを指定する引数の記述位置を示す引数記述位置データ、
所定のプログラム言語で記述された、メモリ上に展開されたレコードの任意のデータ項目に属する文字列データの要素を、それぞれのマスキング方法に従って書き換えるデータ操作命令を表わすテキストデータ及び操作対象データ項目及び操作後データ内容を指定する引数の記述位置を示す引数記述位置データ、及び
所定のプログラム言語で記述された、メモリ上に展開されたレコードをファイルに書き込むレコード書き込み命令を表わすテキストデータ及び書き込むレコードを指定する引数の記述位置を示す引数記述位置データ、を含んでいる。
【００２９】
マスキングプログラム生成のステップが開始されると、マスキングプログラム生成手段は、まず、ＲＡＭ１５１ｂあるいは記憶装置１５１ｃ上に、生成中のマスキングプログラム１５１ｃ８が、それの生成が完成するまで一時的に記憶される領域である生成プログラム一時記憶領域を確保する。
【００３０】
マスキングプログラム生成手段１５１ｃ３は、プログラム生成データ１５１ｃ７からループ命令を表わすテキストデータを読み出し、それに対して、当該ループ命令に対応する引数記述位置データを読み出してそれに基づき、当該ループ命令の引数の記述位置に、レコードの識別子を変数として、ループ開始値としての先頭のレコードの識別子、及びループ終了値としての最後尾のレコードの識別子を配置することによって、被マスキングデータベースのすべてのレコードにわたる範囲のループ命令列を作成し、それを生成プログラム一時記憶領域に出力する（ステップＳ１０７ａ）。
【００３１】
マスキングプログラム生成手段１５１ｃ３は、プログラム生成データ１５１ｃ７からレコード読み出し命令を表わすテキストデータを読み出し、それに対して、当該レコード読み出し命令に対応する引数記述位置データを読み出してそれに基づき、当該レコード読み出し命令の引数の記述位置にデータ操作を実施するレコードの識別子を表わす変数を配置することによって、被マスキングデータベースのレコードを読み出すレコード読み出し命令列を作成して生成プログラム一時記憶領域におけるループ命令列のループ位置範囲内に出力する（ステップＳ１０７ｂ）。
【００３２】
マスキングプログラム生成手段１５１ｃ３は、プログラム生成データ１５１ｃ７から、被マスキングデータ項目のそれぞれに対応するマスキング方法を実施するデータ操作命令を表わすテキストデータを読み出し、それに対して、当該データ操作命令に対応する引数記述位置データを読み出してそれに基づき、当該データ操作命令の引数の記述位置に、操作対象データ項目として被マスキングデータ項目を配置し、操作後データ内容の引数の記述位置に、当該被マスキングデータ項目に対応するマスキング方法を当該被マスキングデータ項目に属する文字列データに適用して書き換えた操作後データ内容が導入されるように引数を配置することによって、読み出されたレコードの被マスキングデータ項目に属する文字列データをそれに対応するマスキング方法に従って書き換えるデータ操作命令列を作成して生成プログラム一時記憶領域におけるループ位置範囲内のレコード読み出し命令列の後に実行される位置に出力する（ステップＳ１０７ｃ）。被マスキングデータ項目に対応するマスキング方法を当該被マスキングデータ項目に属する文字列データに適用して書き換えることによって操作後データ内容を得る部分の命令は文字列操作命令の一種であり、それぞれの被マスキングデータ項目に対応するマスキング方法に従って文字列操作を実施する命令列である。マスク文字や処理対象外文字が設定されている被マスキングデータ項目に対しては、マスク文字を変換後の文字列とする命令を配置したり、処理対象外文字を変換の対象から除外する命令を配置することによって、それらを反映した文字列操作命令が生成される。
【００３３】
「塗りつぶし」のマスキング処理に関しては、それがマスキング方法として選択されているデータ項目のデータを指定し、当該データが表わす文字列のすべてを、ステップＳ１０５で指定されたマスク文字で置換する命令列が配置される。「暗号化」のマスキング処理に関しては、それがマスキング方法として選択されているデータ項目のデータを指定し、当該データが表わす文字列のすべてに対して、それぞれの文字の文字コードに所定の変換規則を表わす演算を実施した結果により当該文字コードを置換する命令列が配置される。所定の演算は、前述のように各種の演算を使用することができ、例えば所定値の加算によって、文字コードテーブル上で他の文字に対応付けることができる。ここで、文字コードテーブル上において対応する文字が無い場合には、対応する文字が存在するまで同じ所定値の加算を反復するか、あるいは、所定値を変更して加算あるいは他の演算を実行する。「３文字目以降」のマスキング処理に関しては、それがマスキング方法として選択されているデータ項目のデータを指定し、当該データが表わす文字列の３文字目以降の要素に対して、前述の「暗号化」と同じ処理を実行する命令列が配置される。「住所変換（数値ゼロ変換）」のマスキング処理に関しては、それがマスキング方法として選択されているデータ項目のデータを指定し、当該データが表わす文字列の要素の内で文字コードが数字を表す要素を特定し、当該要素の文字コードをゼロを表わす文字コードに置換する命令列が配置される。「下４桁ゼロ（０）」のマスキング処理に関しては、それがマスキング方法として選択されているデータ項目のデータを指定し、当該データが表わす文字列の末尾から４文字目以降の要素の文字コードをゼロを表わす文字コードに置換する命令列が配置される。「項目クリア」のマスキング処理に関しては、それがマスキング方法として選択されているデータ項目のデータを指定し、当該データが表わす文字列のすべてをヌルあるいはスペースで塗りつぶす命令列が配置される。
【００３４】
次に、マスキングプログラム生成手段１５１ｃ３は、プログラム生成データ１５１ｃ７からレコード書き込み命令を表わすテキストデータを読み出し、それに対して、当該レコード書き込み命令に対応する引数記述位置データを読み出してそれに基づき、当該レコード書き込みの引数の記述位置にデータ操作命令列によりデータ操作が実施されたレコードの識別子を表わす変数を配置することによって、被マスキングデータベースにデータ操作されたレコードを書き込むレコード書き込み命令列を作成して生成プログラム一時記憶領域におけるループ命令列のループ位置範囲内のデータ操作命令列の後に実行される位置に出力する（ステップＳ１０７ｄ）。
【００３５】
マスキングプログラム生成手段１５１ｃ３は、生成プログラム一時記憶領域に記憶されているファイルオープン命令列、ループ命令列、レコード読み出し命令列、データ操作命令列、レコード書き込み命令列、及びファイルクローズ命令列からなる一連の命令列をマスキングプログラム１５１ｃ８として記憶装置１５１ｃにファイルとして出力する（ステップＳ１０７ｅ）。これによって、マスキング方法指定データ１５１ｃ６で指定されたマスキングの変換ロジック、及びプログラム生成データ１５１ｃ７に記述されたプログラムの表記方法に従ったソースプログラムであるマスキングプログラム１５１ｃ８が得られる。
【００３６】
マスキングプログラム送信モジュール１５１ｃ４は、生成されたマスキングプログラム１５１ｃ８を基幹システムサーバ１０１に送信する（ステップＳ１０９）。基幹システムサーバ１０１は、そのＣＰＵ１０１ａがファイル管理の基本プログラム（図示せず）と協働することにより、送信されたマスキングプログラム１５１ｃ８を、コンパイルなどを行って実行可能な形式に変更した上で記憶装置１０１ｃに記憶する（ステップＳ１１１）。これによって、マスキングしようとする順次ファイル１０２をマスキングするためのプログラムが基幹システムサーバ１０１に格納されることになる。なお、マスキングプログラム１５１ｃ８は、それがマスキングしようとする順次ファイル１０２ごとに生成されることになり、それらはファイル名によって区別される。なお、どのファイル名のマスキングプログラム１５１ｃ８がどのファイル名の順次ファイル１０２をマスキングするものであるのかという対応関係は、好適には、マスキング処理サーバ１５１に記憶されている。
【００３７】
実際にマスキングプログラム１５１ｃ８を実行してマスキング処理を行わせるためのマスキング処理起動方法には、順次ファイル１０２のファイル名及びマスキングプログラム１５１ｃ８のファイル名を指定して次の適当な時間に実行をスケジューリングするスポット実行と、内容が更新された順次ファイル１０２を検索して自動的に実行対象として特定し、当該実行対象として特定された順次ファイル１０２に対応するマスキングプログラム１５１ｃ８の実行をスケジューリングする定例実行とがある。
【００３８】
定例実行による定例更新を実施するためには、まず、マスキング処理サーバ１５１は、ＣＰＵ１５１ａが所定のプログラム（図示せず）と協働することにより、定例更新対象の順次ファイル１０２とそれに対応するマスキングプログラム１５１ｃ８の指定を受け付けて、それを基幹システムサーバ１０１に送信する（ステップＳ１１３）。ここで好適には、どのファイル名のマスキングプログラム１５１ｃ８がどのファイル名の順次ファイル１０２をマスキングするものであるのかという対応関係に基づき、定例更新対象の順次ファイル１０２を指定すると、それに対応するマスキングプログラム１５１ｃ８が自動的に特定される。
【００３９】
基幹システムサーバ１０１の更新順次ファイル検索手段１０１ｃ５は、定例更新対象の順次ファイル１０２とそれに対応するマスキングプログラム１５１ｃ８を記憶している。更新順次ファイル検索手段１０１ｃ５は、定例更新対象の順次ファイル１０２の中から、前回のマスキング処理以降に更新されたものをマスキング処理の実行対象として検索する（ステップＳ１１５）。基幹システムサーバ１０１は、好適には過去にマスキング処理を行った順次ファイル１０２のファイル名及びそれの処理日時をマスキング処理履歴ファイルとして記憶装置１０１ｃ内に記憶しており、これに基づいて、実行対象のファイルの検索を、例えば一日に一度などの所定期間毎に実行する。
【００４０】
基幹システムサーバ１０１は、ＣＰＵ１０１ａが所定のプログラム（図示せず）と協働することにより、マスキングプログラム１５１ｃ８をＲＡＭ１５１ｂ上に読み出し、それを実行することによって、マスキング方法指定データ１５１ｃ６に記述されたマスキングの変換ロジックに従って、マスキング処理の実行対象の順次ファイル１０２に対してマスキング処理を実行し、テスト用順次ファイル１０４を生成する（ステップＳ１１７）。テスト用順次ファイル１０４は、それを生成する元となった順次ファイル１０２と関連付けられて記憶される。基幹システム１０１ｃ３の動作テストの際には、ＯＳ１０１ｃ１の環境を終了してテスト用ＯＳ１０１ｃ２の環境で起動後、基幹システム１０１ｃ３でテスト用順次ファイル１０４を使用してテストを実行する（ステップＳ１１９）。
【図面の簡単な説明】
【００４１】
【図１】個人情報マスキングシステム１００の構成を表わすシステム構成図である。
【図２】個人情報マスキングシステム１００の動作フローを表わす動作フロー図である。
【図３】個人情報マスキングシステム１００の動作フローを表わす動作フロー図であり、図２の続きである。
【図４】個人情報マスキングシステム１００のマスキングプログラム１５１ｃ８の詳細な生成フローを表わす動作フロー図である。
【図５】マスキング方法選択画面２００のイメージ図である。
【符号の説明】
【００４２】
１０１      基幹システムサーバ
１０１ａ    ＣＰＵ
１０１ｂ    ＲＡＭ
１０１ｃ    記憶装置
１０１ｃ１  ＯＳ
１０１ｃ２  テスト環境ＯＳ
１０１ｃ３  基幹システムプログラム
１０１ｃ４  データベース管理プログラム
１０１ｃ５  更新順次ファイル検索手段
１０１ｄ    ユーザＩ／Ｆ
１０１ｅ    ネットワークＩ／Ｆ
１０２      順次ファイル
１０３      コピー句情報
１０４      テスト用順次ファイル
１５１      マスキング処理サーバ
１５１ａ    ＣＰＵ
１５１ｂ    ＲＡＭ
１５１ｃ    記憶装置
１５１ｃ１  コピー句情報取得モジュール
１５１ｃ２  マスキング方法入力モジュール
１５１ｃ３  マスキングプログラム生成モジュール
１５１ｃ４  マスキングプログラム送信モジュール
１５１ｃ６  マスキング方法指定データ
１５１ｃ７  プログラム生成データ
１５１ｃ８  マスキングプログラム
１５１ｄ    ユーザＩ／Ｆ
１５１ｅ    ネットワークＩ／Ｆ
【図１】
2008033411.tif 000003
【図２】
2008033411.tif 000004
【図３】
2008033411.tif 000005
【図４】
2008033411.tif 000006
【図５】
2008033411.tif 000007