(57)【特許請求の範囲】
【請求項１】
文書内の複数の情報項目に含まれうる個人情報の種類と、個人情報の置換パターンとの対応関係を保持する対応関係保持部と、
前記個人情報の種類と置換パターンとの対応関係をユーザに入力させるための設定画面を表示させ、前記設定画面に入力された対応関係を前記対応関係保持部へ格納する設定部と、
原本の文書データの中から、個人情報とその種類を検出する検出部と、
前記検出部により検出された個人情報について、当該個人情報の種類に対して前記対応関係保持部が保持する対応関係で対応付けられた置換パターンにしたがって、当該個人情報を置換するための置換データを取得し、前記置換パターンがハッシュ値を指定する場合は、当該個人情報のハッシュ値を示す置換データを取得する置換データ取得部と、
前記原本の文書データにおける個人情報を前記置換データへ置換した文書データを出力する出力部と、
を備えることを特徴とするデータ変換装置。
【請求項２】
前記原本の文書データの各情報項目と、個人情報の置換パターンとを対応付けた置換規則を、前記対応関係保持部が保持する対応関係にしたがって決定する置換規則決定部をさらに備え、
前記置換規則は、前記原本の文書データで複数の情報項目に記載され、互いの関連性を維持すべき個人情報について、その個人情報のハッシュ値を前記置換データとすることを定めたものであり、
前記置換データ取得部は、前記置換規則決定部により決定された置換規則にしたがって、前記検出された個人情報に対する置換データを取得することを特徴とする請求項１に記載のデータ変換装置。
【請求項３】
前記原本の文書データは、個人情報をキーとして関連づけられた複数のテーブルのデータを含むものであり、
前記置換データ取得部は、前記キーとしての個人情報のハッシュ値を前記置換データとして取得することにより、前記出力部が出力する文書データにおいて前記複数のテーブルの関連づけを維持させることを特徴とする請求項１または２に記載のデータ変換装置。
【請求項４】
置換対象外とすべき特定の文字列を定めた除外規則を保持する除外規則保持部をさらに備え、
前記出力部は、前記検出部により個人情報として検出された文字列のうち、前記除外規則が定める文字列に合致するものについては、前記置換データへの置換を抑制することを特徴とする請求項１から３のいずれかに記載のデータ変換装置。
【請求項５】
文書内の複数の情報項目に含まれうる個人情報の種類と、個人情報の置換パターンとの対応関係をユーザに入力させるための設定画面を表示させる機能と、
前記個人情報の種類と置換パターンとの対応関係を予め記憶した所定の記憶領域に、前記設定画面に入力された対応関係を格納する機能と、
原本の文書データの中から、個人情報とその種類を検出する機能と、
前記検出する機能により検出された個人情報について、当該個人情報の種類に対して前記所定の記憶領域に記憶された対応関係で対応付けられた置換パターンにしたがって、当該個人情報を置換するための置換データを取得し、前記置換パターンがハッシュ値を指定する場合は、当該個人情報のハッシュ値を示す置換データを取得する機能と、
前記原本の文書データにおける個人情報を前記置換データへ置換した文書データを出力する機能と、
をコンピュータに実現させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理技術に関し、特に文書データの内容を変換する技術に関する。
【背景技術】
【０００２】
情報システムの運用フェーズでは、保守作業のために、本番環境（言い換えれば商用環境）に蓄積されたデータをテスト用のデータとして抽出することがある。そして抽出したデータを開発環境（言い換えればテスト環境）へ導入し、開発環境にて各種のテストを実施することがある。
【０００３】
本番環境に蓄積されたデータには個人情報が含まれることがある。個人情報の保護が重視される現在、個人情報をマスキングする技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２２１５６０号公報
【特許文献２】特開２０１０−１５２４５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
既述したように、本番環境から抽出されたデータが、開発環境においてテストデータとして用いられることがある。本発明者は、本番環境から抽出したデータに含まれる個人情報をマスクした場合に、テストデータとしての品質が低下することがあるという着想を得た。
【０００６】
本発明は、本発明者の上記着想に基づきなされたものであり、その主な目的は、個人情報をマスクした後の文書データについて、テストデータとしての品質の低下を抑制する技術を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様のデータ変換装置は、原本の文書データの中から、個人情報を検出する検出部と、検出部により検出された個人情報について、そのハッシュ値を示す置換データを取得する置換データ取得部と、原本の文書データにおける個人情報を置換データへ置換した文書データを出力する出力部と、を備える。
【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、システム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によれば、個人情報をマスクした後の文書データについて、テストデータとしての品質の低下を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態の情報システムの構成を示す図である。
【図２】図１のデータ変換装置の機能構成を示すブロック図である。
【図３】個人情報の抽出結果を示す図である。
【図４】対応規則を示す図である。
【図５】置換規則を示す図である。
【図６】ユーザ設定画面を示す図である。
【図７（ａ）】データ変換装置の動作を示すフローチャートである。
【図７（ｂ）】図７（ａ）に続く動作を示すフローチャートである。
【図８】複数のテーブルのマスク処理を模式的に示す図である。
【図９】ログデータのマスク処理を模式的に示す図である。
【発明を実施するための形態】
【００１１】
図１は、実施の形態の情報システム１００の構成を示す。情報システム１００は、例えば、小売業者や金融業者のための情報処理サービスを提供するものであり、その開発・運用・保守をＳＩ企業が担当する。情報システム１００は、本番機１０と開発機１２とデータ変換装置１４を含む。
【００１２】
本番機１０は、本番環境に設置されたウェブサーバや、アプリケーションサーバ、データベースサーバ等の情報処理装置である。本番機１０は、顧客企業やエンドユーザに対する商用の情報処理サービスを提供し、また、顧客企業やエンドユーザの個人情報に該当する各種情報を含む文書データを保持する。この文書データは、データベースサーバが管理するテーブルのデータを含む。またＣＳＶファイルや、フリーフォーマットのログファイル、固定長ファイル等を含む。
【００１３】
開発機１２は開発環境に設置された情報処理装置である。また開発機１２は、本番機１０にインストールされたアプリケーションについて、そのトラブル解析や、バグ改修、機能追加等の作業（以下、総称して「保守作業」とも呼ぶ。）を行うための情報処理装置である。実施の形態では、開発機１２での保守作業の効率を高めるために、その保守作業に用いるテストデータとして、本番環境に保持される文書データに対応した文書データを用いる。
【００１４】
データ変換装置１４は、本番環境における文書データ（以下、「原本文書データ」とも呼ぶ。）を本番機１０から取得する。そして、その原本文書データに含まれる個人情報をマスクした文書データ（以下、「テスト用文書データ」とも呼ぶ。）へ変換し、記録メディア１６へ記録する。データ変換装置１４は一般的なＰＣであってもよい。ＳＩ企業の担当者は、記録メディア１６に記録されたテスト用文書データを開発機１２に読み込ませて、開発機１２での保守作業を実施する。
【００１５】
図２は、図１のデータ変換装置１４の機能構成を示すブロック図である。データ変換装置１４は、各種データを保持する記憶領域であるデータ保持部２０と、各種データ処理を実行するデータ処理部３０を備える。データ保持部２０は、抽出データ保持部２２と、対応関係保持部２４と、置換規則保持部２６と、除外規則保持部２８を含む。データ処理部３０は、原本文書取得部３２と、個人情報検出部３４と、置換規則決定部３６と、置換データ取得部３８と、文書変換部４０と、変換文書出力部４２と、ユーザ設定支援部４４を含む。
【００１６】
本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのＣＰＵをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。例えば図２の各ブロックは、プログラムモジュールとして記録媒体に格納され、その記録媒体を介してデータ変換装置１４のストレージへインストールされてもよい。そしてデータ変換装置１４において、各ブロックに対応するプログラムモジュールをメインメモリへ随時読み出し、ＣＰＵにより実行することで、各ブロックの機能を実現してもよい。
【００１７】
抽出データ保持部２２は、原本文書データに含まれる個人情報の抽出結果を保持する。図３は個人情報の抽出結果を示す。レコード番号フィールドには、原本文書データにおけるレコード番号が記録される。例えば、ＣＳＶファイルの行位置を示す番号であってもよく、データベースで管理されるテーブルの各レコードに付された識別番号であってもよい。項目名フィールドには個人情報が設定された、原本文書データの情報項目の名称が記録される。文字列フィールドには個人情報として検出された文字列が設定される。位置フィールドには、原本文書データの各情報項目において個人情報の文字列が設定された位置、具体的には先頭を１とした場合のバイト数が設定される。検出タイプフィールドには、個人情報の種類を識別する情報、例えば個人情報が人名・地名・電話番号・組織・メールアドレス等のいずれであるかを示す情報が記録される。
【００１８】
図２に戻り、対応関係保持部２４は、個人情報の検出タイプと、その個人情報を別の文字列（本実施の形態において文字列は数字列を含む）に置換する際の種類・態様を示すマスクパターンとを対応づけた対応規則を保持する。この対応規則は、データ変換装置１４において予め定められたものであるが、後述のユーザ設定支援部４４を介してユーザが変更することもできる。図４は対応規則を示す。同図で示すように、原則として、個人情報として検出された文字列の属性に合致するマスクパターン（例えば漢字の個人情報であればランダムな漢字列のマスクパターン）が対応づけられる。
【００１９】
なおマスクパターンが、ユーザが任意の形式を設定可能な「カスタムパターン」の場合は、ユーザにより決定された文字列の態様を示すカスタム文字列をさらに保持する。例えば、カスタム文字列「＜２ｎ＞−＜４ｎ＞−＜４ｎ＞」は、長さ２のランダムな数字列、「−」、長さ４のランダムな数字列、「−」、「長さ４のランダムな数字列」、を連結した文字列を示している。またカスタム文字列「＜５ａ＞＠＜３ａ＞．＜２ａ＞．＜２ａ＞」は、長さ５のランダムなアスキー文字列、「＠」、長さ３のランダムなアスキー文字列、「．」、長さ２のランダムなアスキー文字列、「．」、長さ２のランダムなアスキー文字列、を連結した文字列を示している。
【００２０】
図２に戻り、置換規則保持部２６は、原本文書データにおける各情報項目と、マスクパターンとを対応づけた置換規則を保持する。図５は置換規則を示す。項目名フィールドには、原本文書データにおける情報項目の名称が記録される。対象フィールドには、当該情報項目が個人情報を含む（ＴＲＵＥ）か否か（ＦＡＬＳＥ）を示す情報が記録される。最大検出タイプフィールドには、当該情報項目の検出タイプとして最も多く決定された個人情報の種類が記録され、その検出タイプの検出数が検出数フィールドに記録される。マスクパターンフィールドには、個人情報を置換するマスクパターンが記録され、カスタムパターンについてはカスタム文字列がさらに記録される。
【００２１】
また図５の置換規則では、項目名「ＡＣＣＯＵＮＴ＿ＮＵＭＢＥＲ」のマスクパターンとしてハッシュ値が指定されている。これは、項目名「ＡＣＣＯＵＮＴ＿ＮＵＭＢＥＲ」のデータが、図５では不図示の他のテーブルでも使用され、両テーブルを関連づけるキーとなっているためである。個人情報をハッシュ値でマスクすることにより、原本文書データにおける複数テーブルの関連性を、テスト用文書データで維持することについては、図８等に関連して後述する。
【００２２】
図２に戻り、除外規則保持部２８は、個人情報として検出された文字列のうち、マスク処理から除外すべき文字列を識別するための除外規則を保持する。本実施の形態の除外規則は、マスク処理の対象外とすべき１つ以上の文字列（以下、「マスク対象外文字列」とも呼ぶ。）を定めたものとする。本実施の形態では、個人情報として検出された文字列のうち、マスク対象外文字列と完全一致する文字列をマスク処理から除外する。変形例としては、マスク対象外文字列を一部に含む文字列をマスク処理から除外してもよく、マスク対象外文字列が正規表現で示される場合には、その正規表現に包含される文字列をマスク処理から除外してもよい。
【００２３】
原本文書取得部３２は、原本文書データを本番機１０から取得する。既述したように、原本文書データは、データベースのテーブルに格納されたレコードであってもよく、ＣＳＶファイル・固定長ファイル・フリーフォーマットのログファイル等の各種ファイルデータであってもよい。
【００２４】
個人情報検出部３４は、原本文書データから、当該データに含まれる個人情報を検出し、その検出結果を図２で示した態様で抽出データ保持部２２へ記録する。個人情報検出部３４は公知の個人情報抽出手段により実現されてよい。例えば、株式会社野村総合研究所が提供するソフトウェア製品である「ＴＲＵＥ  ＴＥＬＬＥＲ  個人情報フィルタ（登録商標）」により実現されてもよい。
【００２５】
置換規則決定部３６は、抽出データ保持部２２に格納された個人情報の検出結果と、対応関係保持部２４に格納された対応規則を参照して、原本文書データに含まれる個人情報に対する置換規則を決定し置換規則保持部２６へ記録する。具体的には、原本文書データの情報項目ごとに、個人情報が検出されたか否か（例えば検出タイプが記録されたか否か）を判定し、その判定結果を記録する。また原本文書データの情報項目ごとに、各検出タイプの検出数をカウントして最大検出タイプを判定し記録する。そして、対応関係保持部２４に格納された対応規則にしたがって、最大検出タイプと対応づけられたマスクパターン（およびカスタム文字列）を特定し記録する。
【００２６】
なお、マスク前の文字列（個人情報を含む文字列であり、以下「オリジナル文字列」とも呼ぶ。）と、マスク後の文字列の属性を近似させるために、置換規則決定部３６は、最大検出タイプの判定において、個人情報検出部３４により特定された検出タイプを、文字の属性に応じてより詳細化する。例えば、個人情報の検出結果における最大検出タイプが［人名］であり、文字列フィールドに設定された文字列が漢字であれば、最大検出タイプ［人名］ＫＡＮＪＩを記録する。また、個人情報の検出結果における最大検出タイプが［人名］であり、文字列フィールドに設定された文字列が平仮名であれば、最大検出タイプ［人名］ＫＡＮＡを記録する。
【００２７】
置換データ取得部３８は、置換規則保持部２６に格納された置換規則を参照して、原本文書データのレコードごと、かつ、情報項目ごとに、個人情報をマスクするための置換用のデータ（以下、「マスクデータ」とも呼ぶ。）を取得する。例えば、マスクパターンがランダム文字列（漢字）の場合、オリジナルの文字列長に対応する長さ（本実施の形態では同じ長さ）のランダムな漢字文字列をマスクデータとして取得する。
【００２８】
またマスクパターンがハッシュ値の場合、オリジナルの文字列をハッシュ関数（実施の形態ではＳＨＡ−２）に入力し、当該ハッシュ関数の出力結果であるハッシュ値を示す文字列（以下、「ハッシュ文字列」とも呼ぶ。）をマスクデータとして取得する。このハッシュ関数は、他の種類のハッシュ関数であってもよく、例えばＳＨＡ−１やＭＤ５であってもよい。ハッシュ文字列は、所定長のハッシュ値を１６進表記したＨＥＸ文字列であってもよく、数字列であってもよい。また置換データ取得部３８は、ハッシュ文字列を、オリジナルの文字列長に対応する長さにトリミングした結果をマスクデータとして取得してもよい。
【００２９】
また図６に関連して後述するように、マスクパターンがカスタムパターンの場合もハッシュ値が指定される場合がある。このとき置換データ取得部３８は、オリジナル文字列のハッシュ値を取得し、そのハッシュ値を示す文字列を、カスタム文字列で指定された長さにトリミングした結果をマスクデータとして取得する。
【００３０】
文書変換部４０は、原本文書データのレコードごと、かつ、情報項目ごとに、個人情報検出部３４により個人情報として検出された文字列を、置換データ取得部３８により取得されたマスクデータへ置換する。これにより、原本文書データを、個人情報がマスクされたテスト用文書データへ変換する。
【００３１】
また文書変換部４０は、原本文書データにおける変換対象のオリジナル文字列が、除外規則保持部２８の除外規則で定められたマスク対象外文字列と一致するか否かを判定し、不一致であれば、当該オリジナル文字列をマスクデータへ置換する。一致した場合は、当該オリジナル文字列のマスクデータへの置換を抑制する。言い換えれば、当該オリジナル文字列のマスク処理をスキップして、次の変換対象文字列のマスク処理へ移行する。
【００３２】
変換文書出力部４２は、文書変換部４０により生成されたテスト用文書データを記録メディア１６へ記録する。例えば、原本文書データがデータベースのテーブルデータの場合は、個人情報をマスク後のテーブルデータをテスト用文書データとして記録メディア１６へ格納する。また原本文書データがフリーフォーマットのログファイルの場合は、個人情報をマスク後のログファイルのデータをテスト用文書データとして記録メディア１６へ格納する。記録メディア１６に記録されたテスト用文書データは、開発機１２に読み込まれ、開発機１２での保守作業において（例えばテストのための入力データや照合用データとして）用いられる。
【００３３】
ユーザ設定支援部４４は、対応関係保持部２４に保持された対応規則と、置換規則保持部２６に保持された置換規則に対するユーザの設定操作を支援する。具体的には、対応規則および置換規則を編集するためのユーザ設定画面を所定のディスプレイに表示させ、ユーザ設定画面に対するユーザの入力情報を対応関係保持部２４の対応規則および置換規則保持部２６の置換規則へ反映させる。
【００３４】
図６はユーザ設定画面を示す。同図は、対応関係保持部２４に保持された対応規則を編集するためのユーザ設定画面を示している。同図の内容をユーザが入力すると、［人名］ＫＡＮＪＩの検出タイプと、８文字のハッシュ文字列のマスクパターンとを対応づけるよう対応関係が更新される。なお、マスクパターンのプルダウンメニューからハッシュ文字列を選択することもできる。
【００３５】
またユーザ設定支援部４４は、マスク対象外文字列をユーザに入力させるためのユーザ設定画面を表示させる。そして、ユーザ設定画面に対してユーザが入力したマスク対象外文字列を取得し、その文字列を除外規則保持部２８の除外規則へ追加する。
【００３６】
以上の構成によるデータ変換装置１４の動作を以下説明する。
図７（ａ）は、データ変換装置１４の動作を示すフローチャートである。データ変換装置１４において本番環境の文書データに対するマスクパターンの決定を指示するユーザ操作が検出されると（Ｓ１０のＹ）、原本文書取得部３２は、当該ユーザ操作で指定された原本文書データを本番機１０から取得する（Ｓ１２）。個人情報検出部３４は、原本文書データに記載された個人情報を検出し、その記載位置を含む属性情報を抽出データ保持部２２へ記録する（Ｓ１４）。置換規則決定部３６は、個人情報検出部３４により検出された個人情報の属性と、対応関係保持部２４に保持された対応規則とに基づいて各個人情報のマスクパターンを決定し、各個人情報の置換規則を置換規則保持部２６へ記録する（Ｓ１６）。マスクパターンの決定を指示するユーザ操作が未検出であれば（Ｓ１０のＮ）、Ｓ１２〜Ｓ１６をスキップする。
【００３７】
またデータ変換装置１４においてマスク処理の設定変更を指示するユーザ操作が検出されると（Ｓ１８のＹ）、ユーザ設定支援部４４は、ユーザ設定画面を表示させる（Ｓ２０）。ユーザ設定支援部４４は、ユーザ設定画面に入力された対応規則の更新情報を対応関係保持部２４に反映させ、または、ユーザ設定画面に入力された置換規則の更新情報を置換規則保持部２６に反映させる（Ｓ２２）。マスク処理の設定変更を指示するユーザ操作が未検出であれば（Ｓ１８のＮ）、Ｓ２０およびＳ２２をスキップする。なお図７（ａ）には不図示であるが、ユーザ設定画面においてマスク対象外文字列が入力されると、ユーザ設定支援部４４はマスク対象外文字列を除外規則保持部２８に記録する。
【００３８】
典型的には、データ変換装置１４のユーザは、原本文書データにおいて複数箇所に記載されて、相互の関連性を維持すべき個人情報の項目に対するマスクパターンとしてハッシュ値を設定する。より具体的には、リレーショナルデータベースにおいて複数のテーブルを関連づけるためのキー情報（例えば第１テーブルにおける外部キーであり、第２のテーブルにおける主キー）に対するマスクパターンとしてハッシュ値を設定する。これにより、原本文書データにおける項目間の関連性、例えばリレーショナルデータベースにおける複数テーブル間のリレーションを、マスク後のテスト用文書データでも維持することができる。
【００３９】
図７（ｂ）は、図７（ａ）に続く動作を示すフローチャートである。データ変換装置１４においてマスク処理の開始を指示するユーザ操作が検出されると（Ｓ２４のＹ）、置換データ取得部３８は、原本文書データに記載された個人情報のオリジナル文字列ごとに、その属性に応じたマスクパターンに基づくマスクデータを取得する。文書変換部４０は、個人情報として検出されたオリジナル文字列が、除外規則保持部２８に記録されたマスク対象外文字列と不一致であれば（Ｓ２６のＮ）、そのオリジナル文字列をマスクデータへ置換する（Ｓ２８）。具体的には、抽出データ保持部２２に記録されたオリジナル文字列の先頭位置から、オリジナル文字列の長さ分のデータ（すなわちオリジナル文字列そのもの）を、マスクデータの文字列へ置き換える。個人情報として検出されたオリジナル文字列がマスク対象外文字列と一致すれば（Ｓ２６のＹ）、Ｓ２８をスキップする。
【００４０】
原本文書データに記載された全ての個人情報のオリジナル文字列に対する置換処理、もしくは置換スキップを完了すると（Ｓ３０のＹ）、変換文書出力部４２はテスト用文書データを記録メディア１６へ出力する（Ｓ３２）。未処理の個人情報のオリジナル文字列が残っていれば（Ｓ３０のＮ）、Ｓ２６へ戻って、置換データ取得部３８は、未処理のオリジナル文字列に対するマスクデータを取得する。マスク処理の開始を指示するユーザ操作が未検出であれば（Ｓ２４のＮ）、Ｓ２６からＳ３２をスキップする。
【００４１】
本実施の形態のデータ変換装置１４によると、原本文書データの各情報項目とマスクパターンとの対応関係を１つ１つユーザが定義する必要がない。すなわち、原本文書データに含まれる個人情報を自動的に検出し、個人情報の属性とマスクパターンとの対応規則にもとづいて、各個人情報のマスクパターンを自動的に決定する。これにより人為的なミスの発生（典型的にはマスク設定の漏れ）を抑制できる。例えば、原本文書データの中に予備項目が設けられ、その予備項目は初期の開発時には未使用であり、後の機能追加時に個人情報を保持するよう変更されることがある。人手でマスクパターンを設定すると、予備項目のマスクが見落とされて、マスク設定の漏れが発生しやすい。データ変換装置１４では、マスク対象とすべき文字列の検出と、その文字列を置き換えるべきマスクデータの決定とを自動化することにより、人為的なミスの発生を抑制できる。
【００４２】
またユーザ設定画面では、置換規則を編集できるだけでなく、置換規則の基礎となる対応規則もユーザが編集できる。ユーザは対応規則を編集することで、個人情報の属性が共通する原本文書データの複数の情報項目に対するマスクパターンを一括して設定でき、マスク処理のためのユーザ作業の効率化を実現できる。
【００４３】
またデータ変換装置１４によると、原本文書データにおいて異なる箇所に記載された複数の個人情報項目であり、マスク後においても互いの関連性を維持すべき複数の個人情報項目のそれぞれを、個人情報を示す文字列のハッシュ値によりマスクする。これにより、原本文書データにおける情報項目間の関連性を、個人情報をマスクした後のテスト用文書データでも維持でき、テストデータとしての品質の低下を抑制することができる。
【００４４】
図８は、複数のテーブルのマスク処理を模式的に示す。名義情報テーブルと残高情報テーブルは、口座番号をキーとして互いに関連性を有する。図８（ａ）は、原本文書データとしての名義情報テーブルと残高情報テーブルを示しており、例えば名前「佐々木」の残高は「３００，０００」であることを示している。図８（ｂ）は、名義情報テーブルの口座番号と、残高情報テーブルの口座番号のそれぞれをランダムな値でマスクした結果を示しており、名義情報テーブルと残高情報テーブルの関連性が失われている。
【００４５】
これに対して、図８（ｃ）は、名義情報テーブルの口座番号と、残高情報テーブルの口座番号のそれぞれをハッシュ値によりマスクした結果を示している。同図で示すように、名義情報テーブルの口座番号と残高情報テーブルの口座番号は、それぞれオリジナルの値が秘匿されつつも、互いの関連性が維持されている。例えば、名前「ＸＸＸ（佐々木のマスク結果）」の残高は「３００，０００」であることが、マスク後も識別できる。図８（ｃ）の名義情報テーブルと残高情報テーブルをテスト用文書データとして用いることにより、開発環境においても本番環境に即したテストを実施しやすくなる。
【００４６】
またデータ変換装置１４によると、個人情報がどの位置に記載されるかが確定しないフリーフォーマットのファイルデータ（例えばログデータ）に対しても、個人情報を自動でマスクすることができる。またデータ変換装置１４によると、ユーザは任意の文字列をマスク対象外文字列として指定でき、個人情報の保護と、テストデータの品質低下の抑制の両立を支援できる。
【００４７】
図９は、ログデータのマスク処理を模式的に示す。図９（ａ）は、２つのログメッセージを含む本番環境でのオリジナルのログデータを示している。これら２つのログメッセージはフォーマットが異なるものである。図９（ｂ）は、図９（ａ）のログデータに含まれる個人情報をマスクした後のテスト用のデータを示している。既述したように、個人情報検出部３４は、オリジナルのログデータに含まれる個人情報について、その属性・記載位置を記録する。そして置換データ取得部３８は、個人情報の属性に応じたマスクデータを取得し、文書変換部４０は、個人情報の記載位置を特定してマスクデータへ置き換える。これにより、フリーフォーマットのファイルデータにおける個人情報のマスキングを実現できる。
【００４８】
なお図９（ｂ）では、本来マスクされるべきでない商品名「山田３００」も個人情報としてマスクされている。ユーザは、文字列「山田３００」をマスク対象外文字列として指定することにより、テスト用ログデータにおいて商品名「山田３００」をそのまま出力させることができる。
【００４９】
また上記では言及していないが、個人情報検出部３４は、図９（ｃ）で示すように、個人情報として検出した文字列を記録した個人情報検出リストをさらに出力してもよい。そして、個人情報検出リストをディスプレイに表示し、ユーザへ提示してもよい。このリストは、抽出データ保持部２２に格納した個人情報抽出結果によって代用してもよい。個人情報検出リストをユーザへ提示することにより、ユーザがマスク対象外文字列を適切に指定できるよう支援できる。
【００５０】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下変形例を示す。
【００５１】
第１の変形例を説明する。
上記実施の形態では、ハッシュ値でマスクする個人情報項目をユーザが指定することとしたが、置換規則決定部３６は、ハッシュ値でマスクする個人情報項目を自動で決定し、置換規則へ記録してもよい。例えば、リレーショナルデータベースの定義情報を参照し、リレーショナルデータベースにおいて複数テーブル間に設定された参照整合性制約を検出してもよい。そして参照整合性制約が設定されたカラム（典型的には第１テーブルにおける外部キーのカラムと、第２テーブルにおける主キーのカラムの両方）について、マスクパターンとしてハッシュ値を設定してもよい。
【００５２】
第２の変形例を説明する。
上記実施の形態で一部既述したが、ハッシュ文字列を、オリジナルの文字列長に対応する長さにトリミングした結果をマスクデータとする場合、異なるオリジナル文字列を同じマスクデータへ変換してしまうことが考えられる。そのため変形例として、置換データ取得部３８は、オリジナル文字列と、そのハッシュ値をトリミングしたマスクデータとを対応づけたテーブル（以下、「割当履歴テーブル」）を保持してもよい。
【００５３】
置換データ取得部３８は、あるオリジナル文字列（「当該オリジナル文字列」と呼ぶ。）のマスクデータ（ここではハッシュ文字列をトリミングした文字列）を取得すべきとき、割当履歴テーブルを参照して、当該オリジナル文字列と一致する文字列にマスクデータを割当済かを判定する。割当済であれば、当該オリジナル文字列と一致する文字列に割当済のマスクデータを、当該オリジナル文字列へ割り当てる。
【００５４】
当該オリジナル文字列と一致する文字列が割当履歴テーブルに未記録であれば、置換データ取得部３８は、当該オリジナル文字列のハッシュ値をトリミングしたマスクデータを取得する。そして割当履歴テーブルを参照し、そのマスクデータを他のオリジナル文字列へ割当済か否かを判定する。未割当であれば、そのマスクデータを当該オリジナル文字列へ割り当て、割当履歴テーブルへ記録する。他のオリジナル文字列へ割当済であれば、当該オリジナル文字列のハッシュ値をハッシュ関数へ入力し、その出力結果であるハッシュ値を新たなマスクデータとして取得する。以下、ユニークなマスクデータを取得するまで上記処理を繰り返す。
【００５５】
この変形例によると、マスクパターンがハッシュ値に設定され、そのハッシュ文字列をトリミングする場合に、異なるオリジナル文字列に対して重複するマスクデータを割り当てることを回避できる。これにより、原本文書データにおいて関連性のない複数の情報項目について、テスト用文書データにおいて関連性を生じさせることを回避できる。
【００５６】
請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。
【符号の説明】
【００５７】
１４  データ変換装置、  ２２  抽出データ保持部、  ２４  対応関係保持部、  ２６  置換規則保持部、  ２８  除外規則保持部、  ３２  原本文書取得部、  ３４  個人情報検出部、  ３６  置換規則決定部、  ３８  置換データ取得部、  ４０  文書変換部、  ４２  変換文書出力部、  ４４  ユーザ設定支援部。
【図１】
0005687656.tif 000002
【図２】
0005687656.tif 000003
【図３】
0005687656.tif 000004
【図４】
0005687656.tif 000005
【図５】
0005687656.tif 000006
【図６】
0005687656.tif 000007
【図７（ａ）】
0005687656.tif 000008
【図７（ｂ）】
0005687656.tif 000009
【図８】
0005687656.tif 000010
【図９】
0005687656.tif 000011