(57)【特許請求の範囲】
【請求項１】
原本データに記録された複数の情報項目の原本文字列の組み合わせに基づいて、前記複数の情報項目の置換文字列を決定する置換文字列決定部と、
前記原本データに記録された前記複数の情報項目の原本文字列を、前記置換文字列決定部により決定された置換文字列へ置換する文字列置換部と、
前記置換文字列となりうる複数の候補を異なる位置に保持する候補文字列保持部と、
を備え、
前記置換文字列決定部は、前記複数の情報項目の原本文字列の組み合わせに基づき特定される位置に保持された候補を前記置換文字列として決定し、
前記複数の情報項目は、第１項目と第２項目を含み、
前記置換文字列決定部は、前記第１項目の原本文字列と第２項目の原本文字列を第１の態様で組み合わせた文字列に基づき特定される位置に保持された候補を前記第１項目の置換文字列として決定し、前記第１項目の原本文字列と第２項目の原本文字列を前記第１の態様とは異なる第２の態様で組み合わせた文字列に基づき特定される位置に保持された候補を前記第２項目の置換文字列として決定することを特徴とするデータマスキング装置。
【請求項２】
原本データに記録された複数の情報項目の原本文字列の組み合わせに基づいて、前記複数の情報項目の置換文字列を決定するステップと、
前記原本データに記録された前記複数の情報項目の原本文字列を、前記決定するステップで決定された置換文字列へ置換するステップと、
前記置換文字列となりうる複数の候補を異なる位置に保持するステップと、
を備え、
前記決定するステップは、前記複数の情報項目の原本文字列の組み合わせに基づき特定される位置に保持された候補を前記置換文字列として決定し、
前記複数の情報項目は、第１項目と第２項目を含み、
前記決定するステップは、前記第１項目の原本文字列と第２項目の原本文字列を第１の態様で組み合わせた文字列に基づき特定される位置に保持された候補を前記第１項目の置換文字列として決定し、前記第１項目の原本文字列と第２項目の原本文字列を前記第１の態様とは異なる第２の態様で組み合わせた文字列に基づき特定される位置に保持された候補を前記第２項目の置換文字列として決定することをデータマスキング装置が実行することを特徴とするデータマスキング方法。
【請求項３】
原本データに記録された複数の情報項目の原本文字列の組み合わせに基づいて、前記複数の情報項目の置換文字列を決定する機能と、
前記原本データに記録された前記複数の情報項目の原本文字列を、前記決定するステップで決定された置換文字列へ置換する機能と、
前記置換文字列となりうる複数の候補を異なる位置に保持する機能と、
を備え、
前記決定する機能は、前記複数の情報項目の原本文字列の組み合わせに基づき特定される位置に保持された候補を前記置換文字列として決定し、
前記複数の情報項目は、第１項目と第２項目を含み、
前記決定する機能は、前記第１項目の原本文字列と第２項目の原本文字列を第１の態様で組み合わせた文字列に基づき特定される位置に保持された候補を前記第１項目の置換文字列として決定し、前記第１項目の原本文字列と第２項目の原本文字列を前記第１の態様とは異なる第２の態様で組み合わせた文字列に基づき特定される位置に保持された候補を前記第２項目の置換文字列として決定することをデータマスキング装置に実現させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ処理技術に関し、特にデータマスキング技術に関する。
【背景技術】
【０００２】
本出願人は、個人情報をマスクした後の文書について、テストデータとしての品質低下を抑制するための技術を提案している（例えば特許文献１参照）。特許文献１のデータ変換装置は、マスク対象となる個人情報を示す文字列をそのハッシュ値で置換する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２４６５４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明者は、マスク後の文字列から元の文字列が推測できる場合、マスクの意義が没却されかねないと考えた。また、漢字姓とかな姓のように互いに関連する複数の情報項目の文字列を１つの項目単位でマスクした場合、情報項目間の関連性が崩れてしまい、テストデータとしての価値が低下すると考えた。本発明は、本発明者の上記課題認識に基づいてなされたものであり、主たる目的は、情報をマスクした後の文書の有用性を一層高めるためのデータマスキング技術を提供することである。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明のある態様のデータマスキング装置は、原本データに記録された複数の情報項目の原本文字列の組み合わせに基づいて、複数の情報項目の置換文字列を決定する置換文字列決定部と、原本データに記録された複数の情報項目の原本文字列を、置換文字列決定部により決定された置換文字列へ置換する文字列置換部と、を備える。
【０００６】
本発明の別の態様は、データマスキング方法である。この方法は、原本データに記録された複数の情報項目の原本文字列の組み合わせに基づいて、複数の情報項目の置換文字列を決定するステップと、原本データに記録された複数の情報項目の原本文字列を、決定するステップで決定された置換文字列へ置換するステップと、をデータマスキング装置が実行する。
【０００７】
なお、以上の構成要素の任意の組合せ、本発明の表現を、システム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００８】
本発明によれば、情報をマスクした後の文書の有用性を一層高めることができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態の情報処理システムの構成を示す図である。
【図２】図１のデータマスキング装置の構成を示すブロック図である。
【図３】第１実施形態の変換辞書保持部に保持される変換辞書を示す図である。
【図４】変形例の変換辞書を示す図である。
【図５】第２実施形態の変換辞書保持部に保持される変換辞書を示す図である。
【図６】第２実施形態の変換辞書保持部に保持される変換辞書を示す図である。
【図７】変形例の変換辞書を示す図である。
【図８】第３実施形態の変換辞書保持部に保持される変換辞書を示す図である。
【発明を実施するための形態】
【００１０】
実施の形態の情報処理システムの構成を説明する前に、実施の形態のデータマスキングの概要を述べる。以下では、データをマスキングする前のオリジナルの文書データを原本文書と呼び、データをマスキングした後の文書データを変換文書と呼ぶ。また、原本文書に記録された文字列であり、すなわち元データとしてのオリジナル文字列を原本文字列と呼ぶ。また、原本文字列を置換するための文字列であり、すなわち変換文書において原本文字列に代えて記録される文字列を置換文字列と呼ぶ。
【００１１】
実施の形態のデータマスキングは、原本文書における原本文字列を、それとは異なる置換文字列へ置換えることである。また、データの形式を維持しつつも、データが指し示す情報内容を不可視化、隠蔽することとも言える。
【００１２】
データマスキングにおいて本発明者が認識した第１の課題を説明する。個人情報をマスキングする方法として、これまでは原本文字列をランダムな文字列に置換える方法が採用されることがあった。例えば、人の姓に関する原本文字列「山田」「佐々木」「田中」をそれぞれ「じえ」「いうい」「山う」に置換えることがあった。また別の方法として、原本文字列を固定的な文字列に置換える方法が採用されることもあった。例えば、原本文字列「山田」「佐々木」「田中」をそれぞれ「佐藤０１」「佐藤０２」「佐藤０３」に置き換えることがあった。
【００１３】
しかし、このような方法では原本文字列と置換文字列の整合性が維持されない。例えば、変換文書の情報項目「姓」に「じえ」「いうい」「山う」が設定される場合、変換文書の利用者はそれらの文字列が「姓」であることを直感的に判別しづらい。また、変換文書の情報項目「姓」に「佐藤０１」「佐藤０２」「佐藤０３」が設定される場合、変換文書の利用者が違和感を抱くこともある。また、このような変換文書でテストを実施した場合、そのテスト結果が正しいか否かを判別しにくくなることもあった。
【００１４】
なお、このような問題は、原本文字列をハッシュ文字列へ置換える場合も同様に起こりうる。例えば、変換文書の情報項目「姓」にハッシュ値が設定されるため、変換文書の利用者はそれらの文字列が「姓」であることを直感的に判別しづらく、違和感を抱くこともある。また、変換文書を用いたテスト結果が正しいか否かを判別しにくくなることもあった。
【００１５】
このように、ランダムな文字列や固定文字列によりマスキングすると、変換文書の利用観点からの品質を低下させることがあった。そこで別の方法として、何らかの規則にしたがってマスキングする方法が採用されることもあった。例えば、「鈴木」を「三田村」、「佐藤」を「守屋」、「菊池」を「中田」に対応付けた辞書を設け、原本文字列「鈴木」「佐藤」「菊池」をそれぞれ「三田村」「守屋」「中田」に置換えることがあった。
【００１６】
しかし、この方法では辞書で予め定められた規則による文字列置換となるため、置換文字列から元の原本文字列を推測されやすいという問題があった。例えば、変換文書の情報項目「姓」における「三田村」「守屋」の出現頻度が高いため、「三田村」「守屋」は実際には「鈴木」「佐藤」（日本人に多い姓）でないかと推測されてしまう。また、マスキング前の元データをある程度把握している人には、特定の置換文字列の登場傾向によって元の原本文字列の推測が容易であった。
【００１７】
次に、データマスキングにおいて本発明者が認識した第２の課題を説明する。互いに関連する複数の情報項目が置換対象である場合、１つの情報項目単位でマスクすると、複数の情報項目の原本文字列間の関係が、マスキング後のそれら複数の情報項目の置換文字列間に反映されない。例えば、情報項目「漢字姓」と「かな姓」が置換対象である場合、「漢字姓」と「かな姓」の置換文字列を個別に決定すると、マスキング後は漢字と読みの関係がくずれてしまう。
【００１８】
具体的には、情報項目「漢字姓」の原本文字列「山田」「佐々木」「中田」をそれぞれ置換文字列「佐藤」「鈴木」「中田」に置き換えるとする。その一方、情報項目「かな姓」の原本文字列「やまだ」「さとう」「なかた」をそれぞれ置換文字列「たにぐち」「かわぐち」「おさない」に置き換えるとする。この場合、原本文書の「山田」「やまだ」は、変換文書では「佐藤」「たにぐち」となり、変換文書の利用者が違和感を抱くことがある。また、このような変換文書で、かな姓によるソート機能や検索機能のテストを実施した場合、テスト結果の正否を判別しにくくなることもあった。
【００１９】
実施の形態のデータマスキング技術は、第１の課題を解決するために、特徴１として、複数の情報項目（例えば姓と名）の原本文字列の組み合わせに基づいて置換文字列を決定する。また、第２の課題を解決するために、特徴２として、原本文書における情報項目間の関連性（関係性）を反映した変換辞書を保持し、その変換辞書を参照して、原本文書における情報項目間の関連性を維持したマスキングを実行する。
【００２０】
以下、特徴１に関して第１の実施の形態（以下「第１実施形態」と呼ぶ。）にて説明し、特徴２に関して第２の実施の形態（以下「第２実施形態」と呼ぶ。）にて説明する。また、特徴１と特徴２を組み合わせる実施例を第３の実施の形態（以下「第３実施形態」と呼ぶ。）にて説明する。
【００２１】
（第１実施形態）
図１は、第１実施形態の情報処理システムの構成を示す。情報処理システム１００は、本番機１０、試験機１２、データマスキング装置１４を備える。本番機１０は、本番環境（商用環境）に設置された情報処理装置であり、例えばウェブサーバや、アプリケーションサーバ、データベースサーバ、ディレクトリサーバである。試験機１２は、開発環境や試験環境に設置された情報処理装置であり、例えば本番機１０にデプロイするアプリケーションの開発やテストを実行するＰＣやサーバである。
【００２２】
本番機１０は、企業の顧客やエンドユーザ、従業員の個人情報等、秘密にすべき情報や、公開が許可されない情報を保持する。試験機１２は、本番機１０から抽出されたテストデータにてテストを実行するが、このテストデータでは上記の秘密情報は隠蔽される必要がある。データマスキング装置１４は、個人情報等の様々な秘密情報をマスキングする情報処理装置である。データマスキング装置１４は、本番機１０に保持される情報が記録された原本文書１６を取得し、原本文書１６に記録された秘密情報をマスキングした変換文書１８を生成する。変換文書１８は、テストデータとして試験機１２へ提供される。
【００２３】
実施の形態の原本文書１６、変換文書１８は、複数の情報項目それぞれのコンテンツ（具体的には文字列）により構成されるレコードを複数記録した表形式（言い換えればテーブル構造）のデータ（例えばＣＳＶファイル）とする。ただし、原本文書１６、変換文書１８は、情報項目の識別が可能であれば表形式のデータに限られない。例えば、各種オフィススイートの文書データであってもよく、ＲＤＢＭＳのテーブルデータであってもよく、プレーンテキストファイルであってもよい。
【００２４】
図２は、図１のデータマスキング装置１４の構成を示すブロック図である。データマスキング装置１４は、制御部２０、記憶部２２、Ｉ／Ｆ部２４を備える。制御部２０は、各種データ処理を実行する。記憶部２２は、制御部２０により参照され、また更新されるデータを記憶する記憶領域である。Ｉ／Ｆ部２４は、外部装置とのインタフェース機能を提供し、種々の通信プロトコルにしたがって外部装置と通信する。Ｉ／Ｆ部２４は通信部とも言える。制御部２０は、Ｉ／Ｆ部２４を介して、本番機１０および試験機１２とデータを送受する。
【００２５】
本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのＣＰＵをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
【００２６】
例えば、制御部２０内の各ブロックに対応するモジュールを含むデータマスキングプログラムがＤＶＤ等の記録媒体に格納され、データマスキング装置１４にインストールされてもよい。そして、データマスキング装置１４のプロセッサ（ＣＰＵ等）が、ローカルのストレージに格納されたデータマスキングプログラムを、メインメモリに読出し、実行することで、制御部２０内の各ブロックの機能を発揮してもよい。記憶部２２は、データマスキング装置１４のストレージやメモリがデータを記憶することで実現されてよい。
【００２７】
記憶部２２は、置換対象情報保持部３０と変換辞書保持部３２を含む。置換対象情報保持部３０は、マスキング対象、言い換えれば置換対象となる情報項目の識別情報を保持する。置換対象情報保持部３０は、複数の情報項目、例えば「契約者姓」「契約者名」「年齢」「性別」「住所」等を示す文字列を項目識別情報として保持してもよい。また、原本文書１６における複数の情報項目の原本文字列それぞれの記録位置、例えばレコードの先頭位置からのバイト長や文字列長等を示す情報を項目識別情報として保持してもよい。
【００２８】
変換辞書保持部３２は、文字列置換時に参照される辞書のデータ（以下「変換辞書」とも呼ぶ。）を保持する。実施の形態の変換辞書は、文字列置換対象となる複数の情報項目の置換文字列を、ハッシュ値と対応付けて記録したものである。ハッシュ値は、複数の情報項目の原本文字列の組み合わせのＩＤと言え、複数の情報項目の置換文字列の組み合わせのＩＤとも言える。また、置換文字列検索用のキーとも言える。
【００２９】
図３は、第１実施形態の変換辞書保持部３２に保持される変換辞書の例を示す。同図の変換辞書は、ハッシュ値と、複数の情報項目「契約者姓」「契約者名」それぞれの置換文字列（例えば架空の姓や名）を対応付けている。変換辞書の１行（１レコード）が置換文字列の候補となり、変換辞書は置換文字列の複数の候補を複数のレコードに亘って定めている。変換辞書保持部３２は、置換文字列の複数の候補を異なる位置（すなわち変換辞書の異なるレコード）に保持する候補文字列保持部とも言える。なお変換辞書は、ハッシュ値を記録しない構成であってもよい。また変換辞書保持部３２は、複数の情報項目のそれぞれについて独立した別個の変換辞書を保持してもよい。
【００３０】
図２に戻り、制御部２０は、原本文書取得部３４、原本文字列取得部３６、置換文字列決定部３８、文字列変換部４０、変換文書出力部４２を含む。原本文書取得部３４は、本番機１０から出力された原本文書１６を読み込む。原本文書取得部３４は、Ｉ／Ｆ部２４を介して本番機１０と通信し、本番機１０に保持された原本文書１６を取得してもよい。また原本文書取得部３４は、本番機１０が出力した原本文書１６を記録したメディア（ＤＶＤやＵＳＢメモリ等）から、原本文書１６を読み込んでもよい。
【００３１】
原本文字列取得部３６は、置換対象情報保持部３０を参照して置換対象となる複数の情報項目を識別し、それら複数の情報項目の原本文字列を原本文書から取得する。例えば、原本文書１６における置換対象情報項目のカラムから原本文字列を取得してもよく、原本文書１６における置換対象情報項目の記録位置から原本文字列を取得してもよい。
【００３２】
置換文字列決定部３８は、原本データに記録された複数の情報項目の原本文字列の組み合わせに基づいて、前記複数の情報項目の置換文字列を決定する。具体的には、変換辞書保持部３２の変換辞書に記録された置換文字列の複数の候補のうち、複数の情報項目の原本文字列の組み合わせに基づき特定される辞書内の位置に記録された候補を置換文字列として決定する。さらに具体的には、複数の情報項目の原本文字列の組み合わせを所定の一方向関数にて変換した値を取得し、その値に基づき特定される辞書内の位置に保持された候補を置換文字列として決定する。
【００３３】
実施の形態の置換文字列決定部３８は、原本文字列取得部３６により取得された置換対象となる複数の情報項目の原本文字列を結合する。そして結合した文字列を、予め定められた所定のハッシュ関数（例えばＭＤ５やＳＨＡ−１等）に入力してハッシュ値を取得する。例えば、置換対象となる複数の情報項目が「契約者姓」「契約者名」の場合、「契約者姓」の原本文字列「山田」、「契約者名」の原本文字列「太郎」を結合した文字列「山田太郎」のハッシュ値を取得する。
【００３４】
置換文字列決定部３８は、取得したハッシュ値に対応する置換対象となる複数の情報項目の置換文字列を、変換辞書保持部３２に保持された変換辞書を参照して識別する。置換文字列決定部３８は、複数の情報項目の原本文字列を結合した文字列から得られたハッシュ値に対応する変換辞書の行位置に記録された置換文字列をマスキングに使用する置換文字列として決定する。例えば、ハッシュ値として「１」〜「９９９」の値を取得してもよい。そして、変換辞書においてハッシュ値が示す行位置（ハッシュ値が「５００」であれば５００行目）に記録された置換文字列をマスキングに使用する置換文字列として決定する。
【００３５】
なお、置換文字列決定部３８は、異なる原本文字列間でハッシュ値が重複すること、いわゆるシノニムの発生を回避する処理を実行してもよいが、一方でシノニムの発生を回避する処理を抑制してもよい。変換文書１８は、典型的には開発用・テスト用のデータであり、異なる原本文字列に対して同じ置換文字列を割当てても問題は生じにくいからである。また、シノニムを許容することにより、変換辞書保持部３２が保持する変換辞書のレコード数、すなわち置換文字列の候補数は、原本文字列として記録されうる情報数に比べて少なく抑えることができる。
【００３６】
文字列変換部４０は、原本文書１６に記録された置換対象となる複数の情報項目の原本文字列を、置換文字列決定部３８により決定された置換文字列へ置換える。例えば、原本文書１６の１つのレコードにおける契約者姓と契約者名の原本文字列「山田」「太郎」を、置換文字列決定部３８により決定された置換文字列「栗山」「高次」に置換する。文字列変換部４０は、原本文字列を置換文字列に変換した変換文書１８を生成する。
【００３７】
変換文書出力部４２は、文字列変換部４０により生成された変換文書１８を所定の装置へ出力する。例えば変換文書出力部４２は、Ｉ／Ｆ部２４を介して、変換文書１８を試験機１２へ送信してもよい。また、変換文書１８をローカルのストレージや、所定の記録メディアへ保存してもよい。
【００３８】
以上の構成によるデータマスキング装置１４の動作を以下説明する。
情報処理システム１００の開発担当者やテスト担当者は、本番機１０に保持された顧客や社員の個人情報を含む原本文書１６を記録メディアに出力させ、その記録メディアをデータマスキング装置１４に読み込ませる。データマスキング装置１４の原本文書取得部３４は、その記録メディアから原本文書１６を読み込む。原本文字列取得部３６は、置換対象情報保持部３０に予め格納された項目識別情報にしたがって、原本文書１６に記録された置換対象となる複数の情報項目の原本文字列を読み込む。
【００３９】
置換文字列決定部３８は、変換辞書保持部３２の変換辞書を参照し、置換対象となる複数の情報項目の原本文字列の組み合わせにより特定される置換文字列を決定する。文字列変換部４０は、原本文書１６の原本文字列を置換文字列に置換えた変換文書１８を生成する。変換文書出力部４２は、個人情報をマスキングしたテストデータとして変換文書１８を所定の記録メディアへ出力する。開発担当者やテスト担当者は、データマスキング装置１４が出力し変換文書１８を試験機１２に読み込ませ、アプリケーションの開発やテストを実施する。
【００４０】
第１実施形態のデータマスキング装置１４によると、複数の情報項目を単位として、複数の情報項目の原本文字列の組み合わせに基づいて置換文字列を決定する。これにより、原本文書１６における特定の原本文字列の出現傾向が変換文書１８に反映されることを抑制できる。例えば、複数の情報項目の少なくとも１つが、特定の原本文字列の出現頻度が高いものであっても、他の情報項目の原本文字列との組み合わせで置換文字列を決定するため、特定の原本文字列の出現頻度が特定の置換文字列の出現頻度に反映されることを抑制できる。この結果、変換文書１８に記録された置換文字列から元の原本文字列を推測することを困難なものにでき、変換文書１８による情報漏洩のリスクを低減できる。
【００４１】
例えば、複数の情報項目が「契約者姓」「契約者名」で、原本文書１６の第１レコードが「鈴木」「太郎」、第２レコードが「鈴木」「次郎」、第３レコードが「鈴木」「三郎」であるとする。この場合、第１実施形態のデータマスキングにより、例えば変換文書１８の第１レコードが「佐藤」「信長」、第２レコードが「山口」「秀吉」、第３レコードが「佐々木」「家康」となる。「契約者姓」の「鈴木」が特定の１つの置換文字列（例えば「三田村」）に置換される場合、変換文書１８における「三田村」の登場回数が多ければ、「三田村」は実際には「鈴木」や「佐藤」等であると推測できてしまう。第１実施形態のデータマスキング装置１４では、単純に「鈴木」が「三田村」に置換されるのではなく、様々な文字列に置換されるため、置換文字列から原本文字列の推測が困難になる。
【００４２】
このように、複数の情報項目の原本文字列の組み合わせにより置換文字列を決定することが好適な情報項目は、特定の原本文字列の出現頻度に何らかの傾向がある情報項目である。例えば、人の姓以外にも、住所等における都道府県名や、所属する部署名が挙げられる。都道府県名の場合、人口が多い原本文字列の「東京都」や「大阪府」が置換文字列から推測されてしまうことを防止しやすくなる。また部署名の場合、所属する従業員が多い部署名が置換文字列から推測されてしまうことを防止しやすくなる。実施の形態の技術思想は、複数の情報項目の原本文字列の組み合わせにより、それら複数の情報項目のうち原本文字列の出現頻度に傾向が現れやすい少なくとも１つの情報項目の置換文字列を決定することとも言える。
【００４３】
また第１実施形態のデータマスキング装置１４によると、変換辞書において異なる位置に記録された複数の置換文字列候補のうち、複数の情報項目の原本文字列の組み合わせで特定される位置に記録された候補を、原本文字列の置換に用いる置換文字列とする。この構成によると、特定の原本文字列の組み合わせが特定の置換文字列へ一意に変換されることになり、変換の一意性を保証できる。
【００４４】
また第１実施形態のデータマスキング装置１４によると、複数の情報項目の原本文字列を結合した文字列をハッシュ関数に入力してハッシュ値を取得する。そして、変換辞書において異なる位置に記録された複数の置換文字列候補のうち、ハッシュ値により特定される変換辞書の位置に記録された候補を、原本文字列の置換に用いる置換文字列とする。この構成によると、変換辞書にはハッシュ値と置換文字列の対応関係のみ記録されるため、変換辞書を見ただけでは置換文字列に対応する原本文字列を把握することが困難であり、データマスキングの安全性を向上できる。
【００４５】
以上、本発明を第１実施形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００４６】
第１実施形態の第１変形例を説明する。原本文書１６に第１情報項目と第２情報項目が含まれる場合に、置換文字列決定部３８は、第１情報項目の原本文字列と第２情報項目の原本文字列を第１態様で組み合わせた文字列に基づき特定される位置に保持された候補を第１情報項目の置換文字列として決定してもよい。その一方、置換文字列決定部３８は、第１情報項目の原本文字列と第２情報項目の原本文字列を第１態様とは異なる第２態様で組み合わせた文字列に基づき特定される位置に保持された候補を第２情報項目の置換文字列として決定してもよい。
【００４７】
図３の変換辞書を用いた具体例を示す。第１情報項目が契約者姓、第２情報項目が契約者名である場合、置換文字列決定部３８は、先頭から契約者姓、契約者名の順に原本文字列を結合した文字列（例えば「山田太郎」）をハッシュ関数に入力してハッシュ値を取得し、そのハッシュ値に対応するレコードを識別する。そして、そのレコードに記録された置換文字列を契約者姓の置換文字列として決定してもよい。ハッシュ値が「１２３」であれば、契約者姓の置換文字列は「栗山」になる。
【００４８】
また置換文字列決定部３８は、先頭から契約者名、契約者姓の順に原本文字列を結合した文字列（例えば「太郎山田」）をハッシュ関数に入力してハッシュ値を取得し、そのハッシュ値に対応するレコードを識別する。そして、そのレコードに記録された置換文字列を契約者姓の置換文字列として決定してもよい。ハッシュ値が「４２２」であれば、契約者名の置換文字列は「平次」になる。
【００４９】
第１変形例の構成によると、マスキングの対象となる複数の情報項目の置換文字列の組み合わせが一層多様化して、置換文字列から原本文字列を推測することが一層困難になる。例えば図３の変換辞書では、契約者姓の置換文字列が「栗山」の場合、契約者名の置換文字列は常に「高次」になるわけではなく、「平次」や「光太郎」になるかもしれない。また、変換辞書を見て置換文字列に対応する原本文字列を把握することを一層困難なものにできる。
【００５０】
第１実施形態の第２変形例を説明する。上記実施の形態では、置換文字列決定部３８は、置換対象となる複数の情報項目の原本文字列を結合してハッシュ値を取得した。変形例として、各情報項目の原本文字列を結合後、所定の文字列操作やビット演算を実行した後にハッシュ値を取得してもよい。また、各情報項目の原本文字列に対して所定の文字列操作やビット演算を実行した後、操作・演算後の文字列を結合してハッシュ値を取得してもよい。また、各情報項目の原本文字列個々にハッシュ値を取得後、個々のハッシュ値を所定の演算により合成し、その合成値に基づいて置換文字列を決定してもよい。
【００５１】
第１実施形態の第３変形例を説明する。上記実施の形態では、ハッシュ値に対応する行位置に記録された置換文字列をマスキングに使用する置換文字列として決定した。変形例として、置換文字列決定部３８は、複数の情報項目の原本文字列を結合した文字列から得られたハッシュ値に対応付けられた複数の情報項目の置換文字列を、変換辞書保持部３２に保持された変換辞書を参照して識別してもよい。すなわち、結合した文字列から得られたハッシュ値が記録された変換辞書のレコードを識別し、そのレコードに記録された置換文字列をマスキングに使用する文字列として決定してもよい。例えば、図３の変換辞書を参照し、かつ、原本文字列を結合した「山田太郎」のハッシュ値が「１２３」である場合、「契約者姓」の置換文字列を「栗山」に決定し、「契約者名」の置換文字列を「高次」に決定してもよい。
【００５２】
第１実施形態の第４変形例を説明する。変換辞書保持部３２が保持する変換辞書は、原本文字列と置換文字列を直接対応付けてもよい。図４は、変形例の変換辞書を示す。同図の変換辞書では、複数の情報項目「契約者姓」「契約者名」の原本文字列（図中の「原本契約者姓」「原本契約者名」のデータ）を、それらの情報項目の置換文字列（図中の「置換契約者姓」「置換契約者名」のデータ）に対応付けている。この場合、置換文字列決定部３８は、複数の情報項目の原本文字列の組み合わせそのものをキーとして変換辞書を検索してもよい。図４の例では、原本契約者姓と原本契約者名の組み合わせが「山田」「太郎」の場合、置換文字列決定部３８は、置換契約者姓と置換契約者名の組み合わせとして「栗山」「高次」を決定する。
【００５３】
（第２実施形態）
第２実施形態では、置換対象となる複数の情報項目の原本文字列間の関係を、それら複数の情報項目の置換文字列間でも維持するデータマスキング技術を説明する。第２実施形態の情報処理システム１００の構成は第１実施形態と同じ（図１）であり、第２実施形態のデータマスキング装置１４の機能ブロックも第１実施形態と同じ（図２）である。以下、第１実施形態と重複する説明は省略し、異なる点を主に説明する。
【００５４】
第２実施形態でマスキング対象となる複数の情報項目には、互いに関連した内容の原本文字列が記録される。例えば複数の情報項目には、ある対象・事物を第１態様で表記した原本文字列が設定される第１情報項目と、同じ対象・事物を第１態様とは異なる第２態様で表記した原本文字列が設定される第２情報項目を含む。言い換えれば、複数の情報項目には、同じ対象・事物を外観上異なる態様で表記した文字列がそれぞれ設定される。例えば、第１情報項目が契約者の姓の漢字表記が設定される「契約者漢字姓」である場合、第２情報項目は契約者の姓のかな表記が設定される「契約者かな姓」が該当する。
【００５５】
互いに関連した内容の原本文字列が記録される複数の情報項目、すなわち第２実施形態のマスキングが有効な複数の情報項目は、漢字姓とかな姓以外にも様々なものが考えられる。例えば、人の名と性別、ＩＤ（例えば都道府県コード）とそのＩＤにより特定される情報（例えば都道府県名）、都道府県名と市区町村名、姓とメールアドレス（メールアドレスのローカル部に姓のローマ字を設定する規則がある場合）が挙げられる。
【００５６】
変換辞書保持部３２は、原本文書１６に記録された複数の情報項目であり、かつ互いに関連した複数の情報項目の置換文字列を示す変換辞書を保持する。図５は、第２実施形態の変換辞書保持部３２に保持される変換辞書の例を示す。この変換辞書が定める複数の情報項目の置換文字列間では、原本文書１６に記録される複数の情報項目の原本文字列間の関係が維持されている。すなわち図５の変換辞書では、ハッシュ値と、情報項目「契約者漢字姓」「契約者かな姓」の置換文字列を対応付けており、あるレコードの「契約者かな姓」には、同じレコードの「契約者漢字姓」の読み仮名が設定される。
【００５７】
図６も、第２実施形態の変換辞書保持部３２に保持される変換辞書の例を示す。この変換辞書が定める複数の情報項目の置換文字列間でも、原本文書１６に記録された複数の情報項目の原本文字列間の関係が維持されている。すなわち、同じレコード内の都道府県コード、都道府県名、市区町村名には、互いに整合する文字列が設定されている。
【００５８】
図２に戻り、置換対象情報保持部３０は、置換対象となる情報項目として、互いに関連した複数の情報項目の識別情報を保持する。原本文字列取得部３６は、置換対象情報保持部３０を参照し、互いに関連した複数の情報項目のそれぞれに設定された原本文字列を取得する。
【００５９】
置換文字列決定部３８は、変換辞書保持部３２の変換辞書に記録された置換文字列の複数の候補のうち、互いに関連する複数の情報項目の少なくとも１つの原本文字列に基づいて特定される辞書内の位置に記録された候補を複数の情報項目の置換文字列として決定する。置換文字列決定部３８は、互いに関連する複数の情報項目の原本文字列の組み合わせに基づいて特定される辞書内の位置に記録された候補を複数の情報項目の置換文字列として決定してもよい。また、互いに関連する複数の情報項目の原本文字列の組み合わせを所定の一方向関数にて変換した値を取得し、その値に基づき特定される位置に保持された候補を置換文字列として決定してもよい。
【００６０】
実施の形態の置換文字列決定部３８は、原本文字列取得部３６が取得した複数の情報項目の原本文字列を結合し、結合した文字列を所定のハッシュ関数に入力してハッシュ値を取得する。例えば、置換対象となる複数の情報項目が「契約者漢字姓」「契約者かな姓」である場合、「契約者漢字姓」の原本文字列「山田」、「契約者かな姓」の原本文字列「やまだ」を結合した文字列「山田やまだ」のハッシュ値を取得する。
【００６１】
置換文字列決定部３８は、第１実施形態と同様に、取得したハッシュ値に対応する変換辞書の行位置に記録された置換文字列をマスキングに使用する置換文字列として決定する。例えば、「山田やまだ」のハッシュ値が「５００」であれば、変換辞書の５００行目に記録された置換文字列をマスキングに使用する文字列として決定する。変形例として、置換文字列決定部３８は、第１実施形態の第３変形例と同様に、取得したハッシュ値が記録された変換辞書のレコードを識別し、そのレコードに記録された置換文字列をマスキングに使用する文字列として決定してもよい。例えば、図５の変換辞書を参照し、かつ、「山田やまだ」のハッシュ値が「１２３」である場合、「契約者漢字姓」の置換文字列を「栗山」に決定し、「契約者かな姓」の置換文字列を「くりやま」に決定してもよい。
【００６２】
文字列変換部４０は、原本文書１６に記録された置換対象の複数の情報項目の原本文字列を、変換辞書保持部３２が保持する変換辞書で定められたそれら複数の情報項目の置換文字列へ置換する。具体的には、文字列変換部４０は、互いに関連する複数の情報項目の原本文字列を、置換文字列決定部３８により決定された各情報項目の置換文字列へ置き換える。
【００６３】
第２実施形態のデータマスキング装置１４の動作は、第１実施形態のデータマスキング装置１４の動作と同様である。置換文字列決定部３８は、互いに関連する複数の情報項目の原本文字列の組み合わせにしたがって、変換辞書保持部３２の変換辞書が定めるそれら複数の情報項目の置換文字列を決定する。文字列変換部４０は、互いに関連する複数の情報項目の原本文字列を、変換辞書保持部３２の変換辞書が定めるそれら複数の情報項目の置換文字列へ置換えることにより変換文書１８を生成する。
【００６４】
第２実施形態のデータマスキング装置１４によると、原本文書１６および変換文書１８に記録される互いに関連する複数の情報項目について、それらの情報項目の原本文字列間の関係を置換文字列間でも維持することができる。これにより、テストデータ等として利用する観点から有効性が高い変換文書１８を生成できる。例えば、図５の変換辞書の場合、漢字姓の置換文字列と、かな姓の置換文字列が整合する。また図６の変換辞書の場合、都道府県コードと都道府県名、市区町村名それぞれの置換文字列が整合する。
【００６５】
したがって、漢字姓が「栗山」でありながら、かな姓が「ありた」になることや、住所の都道府県名が「東京都」でありながら、市町村名が「横浜市西区」になること等、変換文書１８の利用者に違和感を抱かせてしまうことを回避できる。また、変換文書１８を用いたテストの結果、例えば都道府県名をキーとした検索結果等の判定が困難になることも回避できる。すなわち、変換文書１８の利用者に、複数の情報項目の文字列間の関係に不自然さを感じさせない変換文書１８を生成でき、マスキング後のデータの有用性を高めることができる。
【００６６】
また第２実施形態のデータマスキング装置１４によると、互いに関連する複数の情報項目の特定の原本文字列が特定の置換文字列へ一意に変換され、変換の一意性を担保できる。また、変換辞書にはハッシュ値と置換文字列の対応関係のみ記録されるため、変換辞書を見ただけでは置換文字列に対応する原本文字列を把握することが困難であり、データマスキングの安全性を向上できる。
【００６７】
以上、本発明を第２実施形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００６８】
第１実施形態の第２変形例〜第４変形例は、第２実施形態の変形例としても有用である。例えば、変換辞書保持部３２が保持する変換辞書は、原本文字列と置換文字列を直接対応付けてもよい。図７は、変形例の変換辞書を示す。置換文字列決定部３８は、複数の情報項目の原本文字列の組み合わせをキーとして変換辞書を検索してもよい。図７の例では、原本契約者漢字姓と原本契約者かな姓の組み合わせが「山田」「やまだ」の場合、置換文字列決定部３８は、置換契約者漢字姓と置換契約者かな姓の組み合わせとして「栗山」「くりやま」を決定する。
【００６９】
（第３実施形態）
第３実施形態のデータマスキング装置１４は、第１実施形態の特徴と第２実施形態の特徴の両方を備える。第３実施形態の情報処理システム１００の構成は第１実施形態、第２実施形態と同じ（図１）であり、第２実施形態のデータマスキング装置１４の機能ブロックも第１実施形態、第２実施形態と同じ（図２）である。以下、第１実施形態、第２実施形態と重複する説明は省略し、異なる点を主に説明する。
【００７０】
図８は、第３実施形態の変換辞書保持部３２に保持される変換辞書の例を示す。第３実施形態の変換辞書の各レコードは、互いに関連する複数の情報項目を含む第１項目群と、互いに関連する複数の情報項目を含む第２項目群について、第１項目群と第２項目群それぞれの置換文字列とハッシュ値との対応関係を記録する。第１項目群は図８の例では契約者漢字姓と契約者かな姓の組み合わせであり、第２項目群は図８の例では契約者漢字名と契約者かな名の組み合わせである。第１項目群と第２項目群の間では関連姓はないことが望ましい。例えば、姓と名の間には直接の関連性はないと言える。
【００７１】
図２に戻り、置換対象情報保持部３０は、置換対象となる情報項目として、第１項目群に含まれる複数の情報項目の識別情報と、第２項目群に含まれる複数の情報項目の識別情報を保持する。原本文字列取得部３６は、置換対象情報保持部３０を参照し、第１項目群に含まれる複数の情報項目それぞれに設定された原本文字列と、第２項目群に含まれる複数の情報項目それぞれに設定された原本文字列を取得する。
【００７２】
置換文字列決定部３８は、変換辞書保持部３２の変換辞書に記録された置換文字列の複数の候補のうち、第１項目群の少なくとも１つの原本文字列と、第２項目群の少なくとも１つの原本文字列の組み合わせに基づいて特定される辞書内の位置に記録された候補を置換文字列として決定する。置換文字列決定部３８は、第１項目群に含まれる複数の情報項目の複数の原本文字列と、第２項目群に含まれる複数の情報項目の複数の原本文字列の全てを組み合わせた文字列を使用して置換文字列を決定してもよい。
【００７３】
実施の形態の置換文字列決定部３８は、原本文字列取得部３６が取得した複数の情報項目の原本文字列の全てを結合し、結合した文字列を所定のハッシュ関数に入力してハッシュ値を取得する。例えば、第１項目群の契約者漢字姓の原本文字列「山田」と契約者かな姓の原本文字列「やまだ」、第２項目群の契約者漢字名の原本文字列「太郎」と契約者かな名の原本文字列「たろう」を結合した「山田やまだ太郎たろう」のハッシュ値を取得する。
【００７４】
置換文字列決定部３８は、第１実施形態と同様に、取得したハッシュ値に対応する変換辞書の行位置に記録された置換文字列をマスキングに使用する置換文字列として決定する。例えば、「山田やまだ太郎たろう」のハッシュ値が「５００」であれば、変換辞書の５００行目に記録された置換文字列をマスキングに使用する文字列として決定する。変形例として、置換文字列決定部３８は、第１実施形態の第３変形例と同様に、取得したハッシュ値が記録された変換辞書のレコードを識別し、そのレコードに記録された置換文字列をマスキングに使用する文字列として決定してもよい。例えば、図８の変換辞書を参照し、かつ、「山田やまだ太郎たろう」のハッシュ値が「１２３」である場合、契約者漢字姓の置換文字列を「栗山」に決定し、契約者かな姓の置換文字列を「くりやま」に決定してもよい。それとともに、契約者漢字名の置換文字列を「高次」に決定し、契約者かな名の置換文字列を「こうじ」に決定してもよい。他の構成および動作は、第１実施形態、第２実施形態と同様である。
【００７５】
第３実施形態のデータマスキング装置１４によると、第１実施形態の効果と第２実施形態の効果を両立できる。すなわち、置換文字列から元の原本文字列を推測することを困難にでき、また、互いに関連する複数の情報項目の原本文字列間の関係を、マスキング後の置換文字列間でも維持できる。これにより、情報漏洩防止とデータ利用の両面においてマスク後のデータの有用性を高めることができる。
【００７６】
以上、本発明を第３実施形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。また、第１実施例の変形例および第２実施形態の変形例は第３実施形態にも有用である。例えば、図８の変換辞書において、ハッシュ値に代えて原本文字列を置換文字列に直接対応付けてもよい。
【００７７】
請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
【符号の説明】
【００７８】
１４  データマスキング装置、  ３０  置換対象情報保持部、  ３２  変換辞書保持部、  ３４  原本文書取得部、  ３６  原本文字列取得部、  ３８  置換文字列決定部、  ４０  文字列変換部、  ４２  変換文書出力部。
【図１】
0006506099.tif 000002
【図２】
0006506099.tif 000003
【図３】
0006506099.tif 000004
【図４】
0006506099.tif 000005
【図５】
0006506099.tif 000006
【図６】
0006506099.tif 000007
【図７】
0006506099.tif 000008
【図８】
0006506099.tif 000009