(57)【要約】【課題】データの内容の保護と、データが正しく出力されているか否かに関する検証作業との両立を実現する。【解決手段】コンピュータは、出力対象として指定された文字列に含まれる各文字について、所定の評価基準にしたがって評価される優先度をそれぞれ取得し、優先度に基づいて、マスク化せずに出力する非マスク化対象文字を文字列の中から選定する。そして、コンピュータは、文字列に含まれる文字のうち、非マスク化対象文字はマスク化せずに、かつ非マスク化対象文字以外の文字であるマスク化対象文字は所定のパターンでマスク化するように、文字列の出力を制御する。【選択図】図１
2011065270.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
出力対象として指定された文字列に含まれる各文字について、所定の評価基準にしたがって評価される優先度をそれぞれ取得する優先度取得ステップと、
前記優先度に基づいて、マスク化せずに出力する非マスク化対象文字を前記文字列の中から選定する選定ステップと、
前記文字列に含まれる文字のうち、前記非マスク化対象文字はマスク化せずに、かつ前記非マスク化対象文字以外の文字であるマスク化対象文字は所定のパターンでマスク化するように、前記文字列の出力を制御する第１の出力制御ステップと、
を実行させる出力制御プログラム。
【請求項２】
前記優先度は、
評価対象の文字が所定の種類の文字であれば前記優先度を高くするという評価基準、
前記評価対象の文字の画数が多いほど前記優先度を高くするという評価基準、および
前記評価対象の文字の出現頻度が低いほど前記優先度を高くするという評価基準
のうちの少なくとも１つに基づいて評価される値である、
ことを特徴とする請求項１に記載の出力制御プログラム。
【請求項３】
前記所定のパターンは、
異なる前記マスク化対象文字に対して共通な、所定の記号もしくは画像、または
個々の前記マスク化対象文字に応じて異なる画像であって、当該マスク化対象文字の形状から暗号化処理により得られる暗号化画像
のいずれかであることを特徴とする請求項１または２に記載の出力制御プログラム。
【請求項４】
前記出力対象として、データベース内の１つ以上の項目それぞれの文字列が指定され、
前記所定の評価基準は、前記１つ以上の項目それぞれに応じた評価基準であり、
前記出力制御プログラムは、前記選定ステップにおいて前記コンピュータに、前記１つ以上の項目それぞれについて、当該項目に応じた前記評価基準にしたがって評価される前記優先度に基づいて、当該項目の文字列の中から前記非マスク化対象文字を選定させる、
ことを特徴とする請求項１から３のいずれか１項に記載の出力制御プログラム。
【請求項５】
前記出力制御プログラムは、前記コンピュータに、
マスク対象の項目を指定する入力を受け付ける入力ステップを実行させ、
前記出力対象のうち、前記入力により指定される前記マスク対象の項目に対して、前記優先度取得ステップ、前記選定ステップおよび前記第１の出力制御ステップを実行させ、
前記出力対象のうち前記マスク対象の項目以外の項目の文字列を、マスク化せずに出力するよう制御する第２の出力制御ステップを実行させる、
ことを特徴とする請求項４に記載の出力制御プログラム。
【請求項６】
出力対象として指定された文字列に含まれる各文字について、所定の評価基準にしたがって評価される優先度をそれぞれ取得する優先度取得部と、
前記優先度取得部が取得した前記優先度に基づいて、マスク化せずに出力する非マスク化対象文字を前記文字列の中から選定する選定部と、
前記文字列に含まれる文字のうち、前記選定部が選定した前記非マスク化対象文字はマスク化せずに、かつ前記非マスク化対象文字以外の文字であるマスク化対象文字は所定のパターンでマスク化するように、前記文字列の出力を制御する出力制御部と、
を備えることを特徴とする出力制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの出力制御に関する。
【背景技術】
【０００２】
社会の情報化の進展にともない、個人情報を扱う様々なシステムが開発され、利用されている。ほとんどのシステムは、印刷媒体、電子ファイルまたは表示装置の画面などへのデータ出力をともなう。よって、システム開発時には、データが正しく出力されるか否かの検証が行われる。
【０００３】
しかしながら、個人情報を参照する権限のある者とシステム開発者が一致するとは限らない。例えば、銀行の勘定系システムの開発においては、システム開発者はシステム構築受託会社の社員等であり、個人情報を参照する権限のある者は銀行の行員等である。よって、データが正しく出力されるか否かをシステム開発者が検証するために、実際の銀行の顧客データを用いる場合には、個人情報保護のための何らかの手立てを講じることが望まれる。
【０００４】
個人情報保護に関しては、例えば以下のような様々な技術が知られている。
例えば、電子メールのメッセージ，テキスト形式のファイル等の電子文書の内容が漏洩する可能性の低減に寄与することを目的とした、次のような技術が知られている。
【０００５】
外部から電子文書が供給されると、マスク処理範囲決定部が、電子文書の種類を判定し、種類に応じたマスク処理範囲を決定する。すると、マスク処理部のマスク箇所抽出部が、固有名詞辞書部を参照し、電子文書のマスク処理範囲内の固有名詞を抽出し、統合規則記憶部に記憶されている統合規則に応じて抽出した固有名詞を統合化して機密部分とする。
【０００６】
また、マスク箇所抽出部は、抽出規則記憶部を参照して固有名詞以外の機密部分を抽出する。そして、置換処理部は、抽出された機密部分の文字を所定の文字で置換する。マスク処理が終了すると、出力部はマスク処理された電子文書を出力する。
【０００７】
また、実際のデータの秘匿性を保ちつつ、実際のデータと同様の多様なテストデータを作成することを目的としたテストデータ生成装置も提案されている。このテストデータ生成装置は、既に利用されていたデータベースシステムの実データを用いて、新たなデータベースシステムの動作を検証するために用いるテストデータを生成する。
【０００８】
具体的には、テストデータ生成装置は、実データの中の変更すべき複数のフィールドを指定する指定部を備える。また、テストデータ生成装置は、指定部で指定された複数のフィールドのそれぞれにおいて、当該フィールドで他のデータより高い頻度で出現する高頻度データを抽出する高頻度データ抽出部も備える。さらに、テストデータ生成装置は、高頻度データ抽出部により抽出された、複数のフィールドのそれぞれにおける高頻度データの組み合わせによって、複数のフィールドの実データを置き換えることによりテストデータを作成するデータ変更部も備える。
【０００９】
そのほかにも、帳票内の非公開領域からの情報漏洩を確実に防ぐことができる電子帳票システムが知られている。電子帳票システムは、帳票サーバとクライントＰＣを備え、これらは互いにネットワークを介して接続している。
【００１０】
帳票サーバは、クライアントＰＣでファイル名がユーザ選択された帳票データおよびそのマスキング情報のすべてを取得する。また、帳票サーバは、この帳票データのうち、上記マスキング情報中の参照セキュリティレベルがログインユーザについて予め設定されている参照セキュリティレベルより上である領域内に存在するデータをすべて空文字に変換する。そして、帳票サーバは、その変換済みの帳票データをクライアントＰＣに送信する。
【００１１】
また、可変印刷に用いられる可変データのセキュリティを維持しつつ、閲覧権限のないオペレータが、文書体裁を編集することができ、可変印刷の作業効率を向上することができる情報処理装置も知られている。この情報処理装置は、データに外接する外接領域を生成する外接領域生成手段と、指定領域の位置に、外接領域生成手段によって生成された外接領域を配置したページを表示するための表示制御手段とを具備する。
【００１２】
さらに、光学読み取り機器によってデジタル画像化された入力画像の一部分を暗号化して、復号化時に暗号化した領域を特定可能にすることを目的とした、次のような技術も知られている。
【００１３】
この技術では、暗号化領域の画素値を規則的に変換し、画素値変換に対応した特有の模様を生成することで暗号化する手段が使われる。また、この技術では、暗号化位置を特定するための位置決めマーカーを、暗号化領域の四隅のうち少なくとも２つ以上に付加する手段が使われてもよい。そして、この技術では、復号化画像の妥当性を検証するためのチェック用マークを、暗号化処理の前に暗号化領域内に少なくとも１つ付加する手段がさらに使われてもよい。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００２−１４９６３８号公報
【特許文献２】特開２００４−３２６５１０号公報
【特許文献３】特開２００６−１８９９３３号公報
【特許文献４】特開２００８−３１０５２５号公報
【特許文献５】特開２００８−３０１０４４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
データの全体をマスク化することでデータの内容を保護する方策をとると、そもそもデータが出力されているのか否かということすら不明になることがあり、データが正しく出力されているか否かに関する検証作業が事実上不可能になることがある。他方で、データが正しく出力されるか否かの検証作業のためには、必ずしもデータ中のすべての文字が視覚的に可読状態である必要はなく、検証の目的に適した少数の文字さえ可読状態であれば検証が可能なこともある。
【００１６】
そこで本発明は、データの内容の保護と、データが正しく出力されているか否かに関する検証作業との両立を実現することを目的とする。
【課題を解決するための手段】
【００１７】
一態様によれば、コンピュータに優先度取得ステップと選定ステップと出力制御ステップとを実行させる出力制御プログラムが提供される。
前記優先度取得ステップは、出力対象として指定された文字列に含まれる各文字について、所定の評価基準にしたがって評価される優先度をそれぞれ取得するステップである。また、前記選定ステップは、前記優先度に基づいて、マスク化せずに出力する非マスク化対象文字を前記文字列の中から選定するステップである。そして、前記出力制御ステップは、前記文字列に含まれる文字のうち、前記非マスク化対象文字はマスク化せずに、かつ前記非マスク化対象文字以外の文字であるマスク化対象文字は所定のパターンでマスク化するように、前記文字列の出力を制御するステップである。
【発明の効果】
【００１８】
検証の手がかりとして有用な文字を高く評価する評価基準を使って上記優先度を定義しておくことで、上記出力制御プログラムによる制御の結果として得られる出力においては、検証の手がかりとして有用な文字はマスク化されず、その他の文字はマスク化される。よって、上記出力制御プログラムによれば、マスク化対象文字がマスク化されることでデータの内容が全体としては保護され、かつ、出力される非マスク化対象文字を手がかりとして、データが正しく出力されているか否かを検証することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】第１実施形態において印刷される帳票を例示する図である。
【図２】マスクなしで帳票が印刷される場合を例示する図である。
【図３】項目全体がマスク化されて帳票が印刷される場合を例示する図である。
【図４】出力制御システムの構成図である。
【図５】顧客ＤＢの例を示す図である。
【図６】ユーザＩＤ管理ＤＢの例を示す図である。
【図７】個人情報マスク化管理ＤＢの例を示す図である。
【図８】画数ＤＢの例を示す図である。
【図９】外字文字コードＤＢの例を示す図である。
【図１０】文字スコアＤＢの例を示す図である。
【図１１】外字処理のフローチャートである。
【図１２】出現回数処理のフローチャートである。
【図１３】画数処理のフローチャートである。
【図１４】出力制御処理のフローチャート（その１）である。
【図１５】出力制御処理のフローチャート（その２）である。
【図１６】文字列のマスク化処理のフローチャートである。
【図１７】第２実施形態において外字出力テスト用に印刷される帳票を例示する図である。
【発明を実施するための形態】
【００２０】
以下、実施形態について、図面を参照しながら詳細に説明する。なお、説明は次のような順番で行う。
まず、第１実施形態の概要の説明を兼ねて、第１実施形態において印刷される帳票の例について図１を参照して説明する。次に、図１に対する比較例として図２と図３を参照し、図１のような出力の優れた点について説明する。その後、図１に例示したような出力を行うための具体的なシステムの構成、データ例および処理の流れについて説明する。
【００２１】
具体的には、図４を参照して、第１実施形態における出力制御システムの構成を説明し、図５〜１０を参照して出力制御システムで利用される各種ＤＢ（データベース）のデータの具体例を説明する。そして、図１１〜１３を参照して、図１０の文字スコアＤＢを構築する前処理について説明し、図１４〜１６を参照して、帳票の印刷時の出力制御処理について説明する。
【００２２】
最後に、第１実施形態との違いを中心に、その他の実施形態についても説明する。
さて、図１は、第１実施形態において印刷される帳票を例示する図である。なお、第１実施形態において、開発対象のシステムは銀行の勘定系システムであり、システムの機能のうちで検証対象の機能は、帳票を紙に印刷する機能であるが、第１実施形態の適用対象は、以下に説明する具体例に限られるわけではない。
【００２３】
図１の検証用帳票１０１は、銀行の各顧客の氏名、性別、生年月日、住所および残高を含む帳票に対して第１実施形態を適用した例である。図１の例では、氏名と住所が保護対象（換言すればマスク化対象）の項目であり、性別、生年月日および残高は保護対象外である。図１に示すように、マスク化対象の氏名と住所の文字列は、それぞれ１文字を除いて、黒くて四角い所定のパターンによりマスク化されている。
【００２４】
よって、検証用帳票１０１を見ても、顧客の氏名や住所は分からないようになっており、氏名と住所という個人情報は保護されている。他方で、検証用帳票１０１を使って、例えば、「１人の顧客のデータを１行に印刷し、帳票全体では３人の顧客のデータを印刷する」といった所定のフォーマットのとおりに正しく帳票が印刷されているか否かといった検証を行うことも可能である。その理由は、氏名と住所の項目には、それぞれ１文字ずつ、マスク化されずにそのまま出力される文字があるからである。
【００２５】
例えば、仮に「本来３人の顧客のデータを１枚の帳票に印刷すべきところ、同じ１人の顧客のデータが繰り返し３回１枚の帳票に印刷されてしまう」といったバグが開発中の勘定系システムに残っていたとする。この場合、システム開発者は、検証用帳票においてマスク化されずにそのまま印字された少数の文字を手がかりに、バグの存在を疑うことができる。
【００２６】
あるいは、「氏名の列に誤って金額が印刷されてしまう」といったバグが開発中の勘定系システムに残っていた場合、氏名の列でマスク化されずに印刷される１文字は、数字かカンマとなる。よって、マスク化された文字が大多数であるために氏名全体は不明だとしても、システム開発者は、検証用帳票から「氏名の列に関連して何らかのバグがある」ということに気付くことができる。
【００２７】
なお、図１の検証用帳票１０１からシステム開発者は、例えば、氏名の列でマスク化されずに印字された少数の文字を手がかりに、「氏名の列には、金額などではなく、氏名らしき短めの文字列が印刷されている」ということを確認することもできる。
【００２８】
詳しくは後述するが、第１実施形態では、このようにマスク化の対象の項目内でマスク化せずにそのまま出力する文字が、優先度にしたがって選定される。そして、その優先度は、検証に役立ちそうな文字ほど高く評価することで計算される値である。
【００２９】
すなわち、第１実施形態によれば、コンピュータが出力制御プログラムにしたがって、まず、出力対象として指定された文字列に含まれる各文字について、所定の評価基準にしたがって評価される優先度をそれぞれ取得する。そして、コンピュータは、優先度に基づいて、マスク化せずに出力する非マスク化対象文字を文字列の中から選定する。
【００３０】
その後、コンピュータは、文字列に含まれる文字のうち、非マスク化対象文字はマスク化せずに、かつ非マスク化対象文字以外の文字であるマスク化対象文字は所定のパターンでマスク化するように、文字列の出力を制御する。図１の検証用帳票１０１は、このような一連の処理の結果、出力される帳票の例である。
【００３１】
なお、具体的な計算式は後述するが、検証に役立ちそうな文字ほど高く評価するには、以下のような評価基準の１つまたは複数の組み合わせにしたがって優先度が定義されていればよい。
・評価対象の文字が所定の種類（外字、数字、記号、ひらがな、カタカナ、漢字、アルファベットなど）の文字であれば優先度を高くする
・評価対象の文字の画数が多いほど優先度を高くする
・評価対象の文字の出現頻度が低いほど優先度を高くする
【００３２】
よって、第１実施形態によれば、そのまま出力される少数の非マスク化対象文字を手がかりに、出力されたデータ同士の識別が可能となり、ひいては検証も可能となる。同時に、第１実施形態によれば、文字列のほとんどはマスク化対象文字としてマスク化されているので、個人情報は保護される。
【００３３】
続いて、図１の検証用帳票１０１に対する比較例として図２と図３を参照し、第１実施形態による検証用帳票１０１の利点を説明する。なお、図２と図３における帳票のフォーマットおよび印刷対象のデータは、図１の検証用帳票１０１と同じである。
【００３４】
図２は、マスクなしで帳票が印刷される場合を例示する図である。図２の非マスク化帳票１０２には、３人の顧客それぞれの氏名、性別、生年月日、住所および残高が、マスク化されずに印刷されている。
【００３５】
すなわち、１人目の顧客は、氏名が「櫨田  太郎」で、性別が男で、生年月日が１９６９年４月１日で、住所が「千葉県流《吉》市…」で、残高が２万１千円である。
なお、本明細書においては、「士」ではなく「土」の下に「口」と書く「吉」の異体字を、「《吉》」のように表記する。《吉》は外字なので、便宜上、このように二重山括弧を使って表記する。
【００３６】
また、非マスク化帳票１０２にデータが印刷された２人目の顧客は、氏名が「富士通  花子」で、性別が女で、生年月日が１９７１年２月２日で、住所が「石川県金沢市…」で、残高が３千円である。そして、３人目の顧客は、氏名が「富士通  次郎」で、性別が男で、生年月日が１９６０年９月２日で、残高が４５万円である。
【００３７】
このように、非マスク化帳票１０２からは、３人の顧客の個人情報があからさまに分かってしまう。したがって、非マスク化帳票１０２の印刷は、もともと個人情報を参照する権限を有している者（例えば銀行員）に対しては許可されてよいが、個人情報を参照する権限を持たない者（例えばシステム開発会社社員）に対しては許可すべきではない。
【００３８】
それに対し、図１の検証用帳票１０１では、例えば１人目の顧客の氏名と住所に関しては、「櫨田  太郎」のうちの「櫨」という文字と「千葉県流《吉》市…」のうちの「《吉》」という文字のみが印刷される。よって、検証用帳票１０１からは「櫨田  太郎」という顧客の氏名や住所を特定することはできないので、検証用帳票１０１の印刷は、個人情報を参照する権限を持たない者に対しても許可されてよい。したがって、システム開発者は、印刷を許可された検証用帳票１０１を使って、データが正しく印刷されているか否かの検証を行うことが可能である。
【００３９】
続いて、検証用帳票１０１に対する別の比較例について図３を参照して説明する。図３は、項目全体がマスク化されて帳票が印刷される場合を例示する図である。
すなわち、図３の全体マスク化帳票１０３においては、氏名、性別、生年月日、住所、残高の欄がすべて黒塗りになっている。よって、全体マスク化帳票１０３では個人情報は保護されている。
【００４０】
しかしながら、全体マスク化帳票１０３では、そもそも各項目に何かが印刷されているのか否かということすら不明である。また、３人の別々の顧客のデータが３行に分けて印刷されているのか、それとも何らかのバグで同一顧客のデータが繰り返し印刷されてしまっているのかも、全体マスク化帳票１０３からは不明である。同様に、印刷される場所と印刷されるデータの不整合（例えば氏名の列に金額が印刷されるなどのエラー）が起きていないか否かについても、全体マスク化帳票１０３からではまったく判断不能である。
【００４１】
それに対し、図１の検証用帳票１０１では、個人情報の保護と、データが正しく出力されているか否かの検証を可能にする仕組みが両立されている。
例えば、住所の中で「県」および「市」という文字は、３人の顧客に共通しているので、仮に「県」または「市」が非マスク化対象文字として選定されると、３人の顧客の住所を検証用帳票１０１から区別することはできない。しかし、実際には図１に示すように、検証用帳票１０１では、「県」や「市」ではなく、「《吉》」、「金」、「仙」のように個々の顧客のデータを差別化する鍵として有効な、検証に役立つ文字が非マスク化対象文字として選定される。
【００４２】
このように、第１実施形態では、住所中の大多数の文字をマスク化することで住所自体は秘匿して個人情報を保護しつつ、検証に役立つ文字は非マスク化対象文字として選定してそのまま表示することで検証を可能とするような出力制御が行われる。したがって、第１実施形態によれば、図２の非マスク化帳票１０２および図３の全体マスク化帳票１０３のいずれと比較しても有利な、図１の検証用帳票１０１のような出力が得られる。
【００４３】
続いて、図４〜１６を参照して、第１実施形態についてさらに詳しく説明する。
図４は、出力制御システムの構成図である。図４に示すとおり、第１実施形態による出力制御システム２００は、サーバ２０１とクライアントＰＣ（Personal Computer）２０２とプリンタ２０３を備える。クライアントＰＣ２０２とプリンタ２０３は、例えばＬＡＮ（Local Area Network）などのネットワークを介して、サーバ２０１と接続されている。また、サーバ２０１はユーザ管理部２０４とレベル比較部２０５を備える。
【００４４】
なお、図４の出力制御システム２００は、第１実施形態における開発対象の勘定系システムを含むシステムであり、勘定系システムからの出力を制御する機能を有する。
出力制御システム２００はさらに、サーバ２０１からアクセス可能なＤＢとして、顧客ＤＢ２０６、ユーザＩＤ（identifier）管理ＤＢ２０７、個人情報マスク化管理ＤＢ２０８、文字スコアＤＢ２０９、画数ＤＢ２１０および外字文字コードＤＢ２１１を備える。これらの各種ＤＢは、例えばハードディスク装置またはＲＡＭ（Random Access Memory）などの、サーバ２０１が備える記憶装置上にあってもよく、ネットワークを介してサーバ２０１に接続された記憶装置上にあってもよい。
【００４５】
サーバ２０１とクライアントＰＣ２０２としては、一般的なコンピュータを利用することができる。例えば、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ、ハードディスク装置などの外部記憶装置、ネットワークとの通信インタフェース、入力装置および出力装置を備えるコンピュータが利用可能である。
【００４６】
サーバ２０１とクライアントＰＣ２０２は、コンピュータ読み取り可能な記憶媒体の駆動装置をさらに備えていてもよい。また、入力装置としては、例えば、マウスなどのポインティングデバイスやキーボードなどが利用可能であり、出力装置としては、例えばＬＣＤ（Liquid Crystal Display）などのディスプレイが利用可能である。
【００４７】
ユーザ管理部２０４とレベル比較部２０５は、第１実施形態ではサーバ２０１のＣＰＵが所定のプログラムをＲＡＭにロードして実行することで実現されるが、実施形態によっては、その一部または全部が専用のハードウェア回路により実現されてもよい。
【００４８】
サーバ２０１のＣＰＵをユーザ管理部２０４およびレベル比較部２０５として機能させるための上記プログラムは、コンピュータ読み取り可能な記憶媒体に格納されて提供され、サーバ２０１にインストールされてもよい。あるいは、上記プログラムは、ネットワークからサーバ２０１にダウンロードされてもよい。もちろん、サーバ２０１のハードディスク装置やＲＯＭなどに上記プログラムがプレインストールされていてもよい。
【００４９】
また、上記記憶媒体としては、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile disk）などの光ディスク、光磁気ディスク、磁気ディスク、フラッシュメモリなどの不揮発性の半導体メモリなどが利用可能である。
【００５０】
ところで、第１実施形態での開発対象である銀行の勘定系システムは、サーバ２０１上に構築され、顧客ＤＢ２０６に対するデータの読み書きを行うコンピュータシステムである。顧客ＤＢ２０６は、詳しくは図５とともに後述するとおり、銀行の顧客に関するデータを格納するＤＢであり、多くの個人情報を含む。
【００５１】
なお、第１実施形態では、勘定系システム本体の具体的構成は任意なので、図４には、勘定系システム本体に関しては、ユーザ管理部２０４のみを図示してある。ユーザ管理部２０４は、詳しくは図６とともに後述するユーザＩＤ管理ＤＢ２０７を用いて、勘定系システムのユーザのアカウントやログイン状態を管理する。勘定系システムのユーザには、当該勘定系システムの開発者や銀行員が含まれる。
【００５２】
また、クライアントＰＣ２０２は、ユーザに対して、サーバ２０１上に構築された勘定系システムにアクセスするためのユーザインタフェースを提供する。例えば、クライアントＰＣ２０２は、勘定系システムへのログイン画面や、勘定系システムに対する帳票印刷指示の入力画面などのユーザインタフェースを提供する。
【００５３】
そして、第１実施形態のサーバ２０１は、勘定系システムからの帳票出力を制御して例えば図１の検証用帳票１０１のような形式で帳票を出力するためのレベル比較部２０５を備える。なお、第１実施形態におけるレベル比較部２０５は、個々の文字の優先度のレベル同士を比較することで非マスク化対象文字とマスク化対象文字を決定し、文字の出力を制御するだけでなく、その制御に必要なＤＢの構築も行う。
【００５４】
すなわち、レベル比較部２０５は、詳しくは図１１〜１３とともに後述するように、顧客ＤＢ２０６、画数ＤＢ２１０および外字文字コードＤＢ２１１に基づいて、文字スコアＤＢ２０９を構築する。なお、画数ＤＢ２１０、外字文字コードＤＢ２１１、文字スコアＤＢ２０９の具体例は、図８〜１０とともに後述する。
【００５５】
そして、勘定系システムに対して帳票の印刷指示がクライアントＰＣ２０２から与えられると、レベル比較部２０５は、ユーザＩＤ管理ＤＢ２０７と個人情報マスク化管理ＤＢ２０８に基づいてユーザの権限に応じた処理を行う。この処理の詳細は図１４〜１６とともに後述するが、概要は次のとおりである。
【００５６】
すなわち、個人情報を参照する権限のないユーザから帳票印刷指示が与えられた場合、レベル比較部２０５は、図１の検証用帳票１０１のように、個人情報の秘匿と勘定系システムの検証を両立させる形でのマスク化を行うように、帳票の出力を制御する。
【００５７】
例えば、帳票がプリンタ２０３により紙媒体へ出力される場合には、レベル比較部２０５は、プリンタ２０３用のプリンタドライバを含んでもよい。レベル比較部２０５は、プリンタドライバからプリンタ２０３へ出力される命令（例えばＰｏｓｔＳｃｒｉｐｔ（登録商標）などのページ記述言語で書かれた命令）の生成を制御することで、帳票の出力を制御することができる。
【００５８】
他方、個人情報を参照する権限のあるユーザから帳票印刷指示が与えられた場合、レベル比較部２０５は、図２の非マスク化帳票１０２のように個人情報をそのまま印刷してよいと判断する。なお、この場合においても、もしユーザからマスク化の指示が与えられたならば、レベル比較部２０５は指示にしたがい、個人情報を参照する権限のないユーザの場合と同様に、帳票の出力を制御してマスク化を実行する。
【００５９】
そして、個人情報を参照する権限の有無によらず、検証用帳票１０１のような形でのマスク化を行うように出力を制御する際のレベル比較部２０５の動作は、次のとおりである。
【００６０】
すなわち、レベル比較部２０５は、印刷対象として顧客ＤＢ２０６から得られるデータに対して、文字スコアＤＢ２０９を参照して非マスク化対象文字を選定する処理を行う。つまり、レベル比較部２０５は、出力対象として指定された文字列に含まれる各文字について、所定の評価基準にしたがって評価される優先度をそれぞれ取得する優先度取得部として機能するとともに、非マスク化対象文字を選定する選定部としても機能する。
【００６１】
そして、レベル比較部２０５は、非マスク化対象文字の選定結果に基づいて、例えば検証用帳票１０１のような形で帳票を出力するように、勘定系システムからの帳票の出力を制御する。つまり、レベル比較部２０５は、文字列に含まれる文字のうち、選定した非マスク化対象文字はマスク化せずに、かつマスク化対象文字は所定のパターンでマスク化するように、文字列の出力を制御する出力制御部としても機能する。
【００６２】
なお、第１実施形態では、顧客ＤＢ２０６で管理される項目のうち、どの項目をマスク化するかを指定するためのマスクパターンが指定可能である。詳しくは図７とともに後述するが、いくつかの所定のマスクパターンが個人情報マスク化管理ＤＢ２０８により管理されており、レベル比較部２０５は、個人情報マスク化管理ＤＢ２０８も参照しながら出力の制御を行う。
【００６３】
さて、続いて図５〜１０を参照して、図４に示した各種ＤＢの具体例について説明する。
図５は、顧客ＤＢ２０６の例を示す図である。図５には、例として、「口座番号」、「氏名」、「性別」、「生年月日」、「住所」および「残高」という各項目を有する顧客ＤＢ２０６を図示してあるが、顧客ＤＢ２０６はさらに他の項目を有していてもよい。
【００６４】
また、図５では、顧客ＤＢ２０６のエントリとして、具体的には、図２の非マスク化帳票１０２にデータが出力されている３人の顧客それぞれのエントリを例示している。図５によれば、この３人の顧客の口座番号は、それぞれ「３８７６５２３」、「３８７６５２４」および「３８７６５２５」である。氏名、性別、生年月日、住所および残高の各項目の値は図２と同様である。
【００６５】
図６は、ユーザＩＤ管理ＤＢ２０７の例を示す図である。ユーザＩＤ管理ＤＢ２０７は、「ユーザＩＤ」、「属性」、「検証権限」、「選択可能マスクパターン」という各項目、および、その他の不図示の項目（例えばパスワードなど）を有する。
【００６６】
図６には具体例として２つのエントリが図示してある。１番目のエントリでは、ユーザＩＤが「ＡＡＡ」であり、２番目のエントリでは、ユーザＩＤが「ＢＢＢ」である。なお、以下ではこの２つのエントリそれぞれのユーザのことを「ユーザＡＡＡ」および「ユーザＢＢＢ」という。
【００６７】
ユーザＡＡＡの属性は「最終承認者」である。第１実施形態において「最終承認者」とは、顧客ＤＢ２０６内の個人情報を参照する権限を持つ者のことであり、具体例は銀行員である。よって、ユーザＩＤ管理ＤＢ２０７においてユーザＡＡＡの検証権限は「あり」と設定されている。
【００６８】
また、ユーザＩＤ管理ＤＢ２０７によれば、ユーザＡＡＡが選択可能なマスクパターンは、図７に示す個人情報マスク化管理ＤＢ２０８で定義されているマスクパターンのうち、「マスクパターン１」と「マスクパターン２」である。なお、詳しくは図１４とともに後述するが、ユーザＡＡＡは、検証権限が「あり」なので、マスクパターンを指定せずに図２の非マスク化帳票１０２のような形での印刷出力を指定することも許されている。
【００６９】
逆に、ユーザＢＢＢの属性は「開発担当者」である。第１実施形態において「開発担当者」とは、顧客ＤＢ２０６内の個人情報を参照する権限を持たない者のことであり、具体例は勘定系システムの開発を請け負った受託会社社員などである。よって、ユーザＩＤ管理ＤＢ２０７においてユーザＢＢＢの検証権限は「なし」と設定されている。
【００７０】
また、ユーザＩＤ管理ＤＢ２０７によれば、ユーザＢＢＢが選択可能なマスクパターンは、図７に示す個人情報マスク化管理ＤＢ２０８で定義されているマスクパターンのうち、「マスクパターン３」のみである。
【００７１】
図７は、個人情報マスク化管理ＤＢ２０８の例を示す図である。個人情報マスク化管理ＤＢ２０８は、顧客ＤＢ２０６の項目のうちどの項目をマスク化するかを指定するためのマスクパターンの定義を記憶するＤＢである。
【００７２】
図７に示すように、個人情報マスク化管理ＤＢ２０８のテーブルは、「マスクパターン」と「マスク項目」という２つの列を有する。なお、図７には具体例として３つのエントリが図示してある。
【００７３】
１番目のエントリでは、「マスクパターン１」が定義されている。「マスクパターン１」は、具体的には、顧客ＤＢ２０６の項目のうち、氏名、生年月日、住所および残高をマスク化の対象とするパターンである。
【００７４】
同様に、２番目のエントリで定義される「マスクパターン２」は、顧客ＤＢ２０６の項目のうち氏名と住所のみをマスク化の対象とするパターンである。また、３番目のエントリで定義される「マスクパターン３」は、顧客ＤＢ２０６の項目のうち氏名と残高のみをマスク化の対象とするパターンである。
【００７５】
もちろん、実施形態に応じて、また、顧客ＤＢ２０６が有する項目に応じて、図７に例示した以外の様々なマスクパターンが個人情報マスク化管理ＤＢ２０８において定義されていてよい。
【００７６】
なお、第１実施形態では、「氏名が秘匿されていれば住所から個人を特定することはできない」という想定のもとで、図６に示すように、検証権限が「なし」のユーザＢＢＢが「マスクパターン３」を選択することができるように設定されている。しかし、実施形態によっては、検証権限が「なし」のユーザＢＢＢにとって選択可能なマスクパターンとして、例えば「マスクパターン１」のみが設定されていてもよい。
【００７７】
図８は、画数ＤＢ２１０の例を示す図である。画数ＤＢ２１０は予め用意されている。
ここで、画数ＤＢ２１０の説明の準備として、第１実施形態で使われる文字集合について説明する。第１実施形態で開発対象の勘定系システムで利用される文字集合は任意であるが、以下では説明の便宜上、次のように仮定する。
【００７８】
すなわち、第１実施形態で開発対象の勘定系システムでは、ＪＩＳ（Japanese Industrial Standard）Ｘ０２０８で定められる文字集合（以下、説明の便宜上「ＣＡ」と表す）または外字の集合（以下、「ＣＢ」と表す）に含まれる文字が利用されるとする。換言すれば、第１実施形態において勘定系システムが利用する文字集合は、式（１）の文字集合Ｃである。
Ｃ＝ＣＡ∪ＣＢ                                        （１）
【００７９】
以下では、文字集合Ｃに含まれる各文字をｃｈ（ｈ＝１，２，……）と表す。
第１実施形態の勘定系システムにおいて、文字集合Ｃの文字を符号化するための文字符号化方式は任意の方式でよく、例えば、ＩＳＯ−２０２２−ＪＰ、Ｓｈｉｆｔ＿ＪＩＳ、ＥＵＣ−ＪＰ（あるいはそれらの拡張方式）などが利用可能である。なお、ＩＳＯはInternational Organization for Standardizationの略、ＥＵＣはextended UNIX codeの略である（UNIXは登録商標）。
【００８０】
以下、説明の簡略化のため、第１実施形態の勘定系システムでは、外字集合である文字集合ＣＢについても扱えるようにＩＳＯ−２０２２−ＪＰを拡張した文字符号化方式（以下では便宜的に「拡張ＩＳＯ−２０２２−ＪＰ」という）が使われているものとする。
【００８１】
ここで、文字集合Ｃを符号化する任意の文字符号化方式によって文字ｃｈを符号化したときの文字コードは、文字集合Ｃ内で文字ｃｈを一意に識別する文字識別情報としての側面を持つことに注目する。第１実施形態では、拡張ＩＳＯ−２０２２−ＪＰによる文字コードを、文字識別情報として利用するものとする。もちろん、実施形態によっては、どの文字符号化方式とも無関係なシリアル番号を文字識別情報として用いることもできる。
【００８２】
ここで図８の説明に戻る。図８に示すとおり、画数ＤＢ２１０のテーブルには、「文字コード」、「画数」および「文字」の３つの列がある。
「文字コード」列には、文字識別情報としての、拡張ＩＳＯ−２０２２−ＪＰによる文字コードが、１６進数で示されている。なお、「０ｘ」は１６進数を示す接頭辞である。「画数」列の値は当該文字の画数である。
【００８３】
なお、文字符号化方式として上記の拡張ＩＳＯ−２０２２−ＪＰが使われる場合には、「文字コード」列と「文字」列の内容は等しくなるので、一方の列は省略可能である。しかし、図８では説明の便宜上、「文字コード」列と「文字」列をともに図示してある。図９〜１０でも同様である。
【００８４】
画数ＤＢ２１０は、文字集合Ｃに含まれる各文字についてのエントリを有するが、図８には、図５の顧客ＤＢ２０６登場する文字のうち「花」、「櫨」、「富」、「《吉》」の４文字のエントリを例示してある。図８に示すとおり、これら４文字の画数は、７、２０、１２、６である。
【００８５】
図９は、外字文字コードＤＢ２１１の例を示す図である。外字文字コードＤＢ２１１は、外字集合である文字集合ＣＢに含まれる各文字についてのエントリを有するが、文字集合ＣＡに含まれる文字についてのエントリは持たない。
【００８６】
外字文字コードＤＢ２１１の各エントリは、文字識別情報としての文字コードと、当該文字コードで識別される文字の組である。図９には具体例として、図５の顧客ＤＢ２０６登場する外字である「《吉》」に関するエントリが図示してある。
【００８７】
図１０は、文字スコアＤＢ２０９の例を示す図である。文字スコアＤＢ２０９は、文字集合Ｃに含まれる各文字についてのエントリを有するが、図１０には、図５の顧客ＤＢ２０６登場する文字のうち「花」、「櫨」、「富」、「《吉》」の４文字のエントリを例示してある。
【００８８】
また、文字スコアＤＢ２０９は、項目として、「文字」および当該文字を識別する文字識別情報としての「文字コード」を有する点で、図８の画数ＤＢ２１０と同様である。文字スコアＤＢ２０９はさらに、当該文字の優先度を表す総合スコアを計算するための各種スコアの項目を有する。具体的には、文字スコアＤＢ２０９には次のような項目がある。
・外字文字コードＤＢ２１１に基づいて計算される「外字スコア」
・顧客ＤＢ２０６の各項目における各文字の出現頻度に基づいて計算される「出現頻度スコア」
・画数ＤＢ２１０に基づいて計算される「画数スコア」
【００８９】
なお、出現頻度スコアは、顧客ＤＢ２０６が有する複数の項目に対応して複数存在する。図１０では、図５の顧客ＤＢ２０６の「氏名」と「住所」という項目に対応する出現頻度スコアを、それぞれ「出現頻度スコア（氏名）」、「出現頻度スコア（住所）」と表している。
【００９０】
また、顧客ＤＢ２０６には上記のように図５では省略している様々な項目が含まれていてよい。そこで、図１０では、顧客ＤＢ２０６のそれらの不図示の項目にそれぞれ対応した出現頻度スコアの列を文字スコアＤＢ２０９が持つことを、省略符号「…」と「出現頻度スコア（ｘｘｘ）」という列で表している。
【００９１】
文字スコアＤＢ２０９に格納される各種スコアの意味および計算法については、図１１〜１３とともに後述するので、ここでは説明を省略する。
続いて、図１１〜１３を参照して、図４のレベル比較部２０５が事前に文字スコアＤＢ２０９を構築するための前処理について説明する。レベル比較部２０５は、不図示の初期化処理により文字スコアＤＢ２０９を初期化した後、図１１〜１３に示す３つの処理を任意の順序で１回ずつ行うことで、文字スコアＤＢ２０９を構築する。
【００９２】
なお、上記の初期化処理とは、具体的には、レベル比較部２０５が、文字集合Ｃに含まれる各文字についてのエントリを文字スコアＤＢ２０９に作成し、各エントリにおいて、「文字コード」列と「文字」列に値を設定する処理である。その他の列の値は、図１１〜１３の処理において設定される。また、以下では説明の便宜上、文字集合Ｃに含まれる文字の文字コードの範囲が０ｘ２１２０〜０ｘ７Ｅ７Ｆであるとするが、この範囲は実施形態に応じて異なる。
【００９３】
図１１は、外字処理のフローチャートである。外字処理は、レベル比較部２０５が図９の外字文字コードＤＢ２１１を参照して、図１０の文字スコアＤＢ２０９の外字スコアの値を設定する処理である。なお、第１実施形態では、文字ｃｈの外字スコアＥｈは次の式（２）で定義される。
【数１】
2011065270.tif 000003
【００９４】
各文字ｃｈについて式（２）の値を文字スコアＤＢ２０９に設定するため、レベル比較部２０５は、まずステップＳ１０１で、ループ変数としての文字コードに０ｘ２１２０を設定する。続くステップＳ１０２〜Ｓ１０７は繰り返しループを形成している。
【００９５】
ステップＳ１０２でレベル比較部２０５は初期化を行う。つまり、レベル比較部２０５は、ステップＳ１０１または後述のステップＳ１０６で文字コードに設定した値を「文字コード」列に持つエントリを、文字スコアＤＢ２０９において検索し、得られたエントリの「外字スコア」列に０を設定する。
【００９６】
次に、ステップＳ１０３でレベル比較部２０５は外字確認処理を行う。すなわち、レベル比較部２０５は、ステップＳ１０１または後述のステップＳ１０６で文字コードに設定した値を「文字コード」列に持つエントリを、図９の外字文字コードＤＢ２１１において検索する。エントリがヒットすれば、ステップＳ１０１または後述のステップＳ１０６で設定した文字コードが表す文字は外字に該当し、エントリがヒットしなければ、当該文字は外字ではない。
【００９７】
そして、ステップＳ１０４でレベル比較部２０５は、ステップＳ１０１または後述のステップＳ１０６で設定した文字コードが表す文字が外字か否かを判断し、外字であれば処理はステップＳ１０５に移行し、外字でなければ処理はステップＳ１０６に移行する。
【００９８】
ステップＳ１０５でレベル比較部２０５は、ステップＳ１０１または後述のステップＳ１０６で文字コードに設定した値を「文字コード」列に持つ、文字スコアＤＢ２０９中のエントリにおいて、「外字スコア」として１を設定する。
【００９９】
ステップＳ１０６でレベル比較部２０５は、文字コードをインクリメントする。
そして、ステップＳ１０７でレベル比較部２０５は、ステップＳ１０６でのインクリメントの結果、文字コードに設定されている値が０ｘ７Ｅ７Ｆを超えたか否かを判定する。文字コードに設定されている値が０ｘ７Ｅ７Ｆ以下の場合、処理はステップＳ１０２に戻る。他方、文字コードに設定されている値が０ｘ７Ｅ７Ｆを超えた場合は、ｃｈ∈Ｃとなるすべての文字ｃｈについて、式（２）の外字スコアＥｈが文字スコアＤＢ２０９の「外字スコア」列に設定済みなので、レベル比較部２０５は、図１１の外字処理を終了する。
【０１００】
図１２は、出現回数処理のフローチャートである。出現回数処理は、レベル比較部２０５が図５の顧客ＤＢ２０６を参照して、図１０の文字スコアＤＢ２０９の各出現頻度スコアの値を設定する処理である。
【０１０１】
なお、勘定系システムの実際の運用にともなって顧客ＤＢ２０６の内容は随時変更されうるが、第１実施形態が対象としているのは勘定系システムの開発中の検証作業である。よって、レベル比較部２０５は、ある任意の時点の顧客ＤＢ２０６のスナップショットを利用して、図１２の処理を１回行うだけでよい。
【０１０２】
ステップＳ２０１でレベル比較部２０５は、ループ変数としての文字コードに０ｘ２１２０を設定する。続くステップＳ２０２〜Ｓ２１１は繰り返しループを形成している。
ステップＳ２０２でレベル比較部２０５は、もう１つのループ変数ｊに１を設定する。ループ変数ｊは、顧客ＤＢ２０６中の各項目（以下、図１２の説明においては「表示項目」という）に対応し、続くステップＳ２０３〜Ｓ２０９は繰り返しループを形成している。
【０１０３】
ステップＳ２０３でレベル比較部２０５は、ｊ番目の表示項目について出現回数確認処理を行う。すなわち、レベル比較部２０５は、ステップＳ２０１または後述のステップＳ２１０で設定した文字コードが表す文字が、顧客ＤＢ２０６中のｊ番目の表示項目中に出現する回数を数える。
【０１０４】
例えば、文字コードに設定された値が０ｘ３２５６で、ｊ番目の表示項目が「氏名」という項目であれば、レベル比較部２０５は、顧客ＤＢ２０６の「氏名」列内で「花」という文字が出現する回数を数える。以下では、文字ｃｈがｊ番目の表示項目中に出現する回数を「ｆｊｈ」と表す。
【０１０５】
続いてステップＳ２０４でレベル比較部２０５は、ステップＳ２０３で数えたｊ番目の表示項目中の出現回数ｆｊｈが０回か１回以上かを判断する。出現回数ｆｊｈが０回のとき処理はステップＳ２０５に移行し、出現回数ｆｊｈが１回以上のとき処理はステップＳ２０６に移行する。
【０１０６】
ステップＳ２０５でレベル比較部２０５は、ステップＳ２０１または後述のステップＳ２１０で設定した文字コードが表す文字の、ｊ番目の表示項目に関する出現頻度スコアを１０と定める。例えば、文字コードに設定された値が０ｘ４８２７で、顧客ＤＢ２０６の「住所」列には「櫨」という文字が１回も出現しないのであれば、「櫨」という文字の住所に関する出現頻度スコアは１０と定められる。
【０１０７】
他方、ステップＳ２０６でレベル比較部２０５は、ステップＳ２０１または後述のステップＳ２１０で設定した文字コードが表す文字の、ｊ番目の表示項目に関する出現頻度スコアを以下のようにして計算する。
【０１０８】
ここで説明の便宜上、ステップＳ２０１または後述のステップＳ２１０で設定した文字コードが表す文字を文字ｃｈとする。また、顧客ＤＢ２０６のｊ番目の表示項目の全文字数をｎｊとすると、全文字数ｎｊは次の式（３）のとおりである。
【数２】
2011065270.tif 000004
【０１０９】
よって、顧客ＤＢ２０６のｊ番目の表示項目における文字ｃｈの出現率（すなわち相対頻度）ｒｊｈは、次の式（４）のとおりである。
ｒｊｈ＝ｆｊｈ／ｎｊ                                  （４）
【０１１０】
出現率ｒｊｈが低い文字ｃｈほど、ｊ番目の表示項目内では珍しいので、ｊ番目の表示項目内でデータの区別に役立つ度合が高く、表示優先度を高くすることが好ましい。そこで、出現率ｒｊｈが低いほど出現頻度スコアが高くなるように、出現率ｒｊｈの逆数ｑｊｈをとる。ｑｊｈは、式（５）のように表される。
ｑｊｈ＝１／ｒｊｈ＝ｎｊ／ｆｊｈ                      （５）
【０１１１】
ところで、図１０とあわせて簡単に説明したとおり、第１実施形態では、総合スコアは外字スコア、出現頻度スコアおよび画数スコアから計算されるが、式（５）のｑｊｈは、外字スコアおよび画数スコアと比較して相対的に値が大きくなりがちである。よって、式（５）のｑｊｈをそのまま出現頻度スコアとして使うとすると、総合スコアの計算において外字スコアと画数スコアがほとんど考慮されなくなってしまう。
【０１１２】
そこで、第１実施形態では、総合スコアに与える出現頻度スコアの影響力を適正な範囲に収めるための正規化を導入する。具体的には、以下の式（６）に示すように、文字ｃｈのｊ番目の表示項目に関する出現頻度スコアＦｊｈは、ｊ番目の表示項目の全文字数ｎｊによる除算により式（５）のｑｊｈを正規化した値として定義される。
Ｆｊｈ＝ｑｊｈ／ｎｊ＝１／ｆｊｈ                      （６）
【０１１３】
ここで、ｊ番目の表示項目に関する文字ｃｈの出現頻度スコアＦｊｈは、意味的には、上記のとおり、顧客ＤＢ２０６のｊ番目の表示項目における文字ｃｈの出現数ｆｊｈを全文字数ｎｊで除算したものの逆数ｑｊｈをさらに全文字数ｎｊで除算した値である。しかし、式（６）に示すように出現頻度スコアＦｊｈは、結局はｊ番目の表示項目中の文字ｃｈの出現回数ｆｊｈの逆数に等しい。よって、ステップＳ２０６でレベル比較部２０５は、出現頻度スコアＦｊｈを計算するのに、実際には単に出現回数ｆｊｈの逆数を計算するだけでよい。
【０１１４】
上記のステップＳ２０５またはＳ２０６の実行後、処理はステップＳ２０７に移行する。そして、ステップＳ２０７においてレベル比較部２０５は、ステップＳ２０５またはＳ２０６で得た値を、ｊ番目の表示項目中に関する文字ｃｈの出現頻度スコアＦｊｈとして文字スコアＤＢ２０９に設定する。
【０１１５】
次のステップＳ２０８では、レベル比較部２０５は、顧客ＤＢ２０６のすべての表示項目を処理したか否かを判断する。現在設定されている文字コードの値に関して、まだレベル比較部２０５が処理していない表示項目が残っていれば、処理はステップＳ２０９に移行する。他方、現在設定されている文字コードの値に関して、レベル比較部２０５がすべての表示項目を処理し終わっていれば、処理はステップＳ２１０に移行する。
【０１１６】
ステップＳ２０９でレベル比較部２０５は、顧客ＤＢ２０６の表示項目に関するループ変数ｊに１を足す。そして処理はステップＳ２０３に戻る。
また、ステップＳ２１０でレベル比較部２０５は、文字コードをインクリメントする。
【０１１７】
そして、続くステップＳ２１１でレベル比較部２０５は、ステップＳ２１０でのインクリメントの結果、文字コードに設定されている値が０ｘ７Ｅ７Ｆを超えたか否かを判定する。文字コードに設定されている値が０ｘ７Ｅ７Ｆ以下の場合、処理はステップＳ２０２に戻る。他方、文字コードに設定されている値が０ｘ７Ｅ７Ｆを超えた場合は、ｃｈ∈Ｃとなるすべての文字ｃｈについて、顧客ＤＢ２０６中の全表示項目に関するそれぞれの出現頻度スコアが文字スコアＤＢ２０９に設定済みなので、レベル比較部２０５は図１２の出現回数処理を終了する。
【０１１８】
図１３は、画数処理のフローチャートである。画数処理は、レベル比較部２０５が図８の画数ＤＢ２１０を参照して、図１０の文字スコアＤＢ２０９の画数スコアの値を設定する処理である。
【０１１９】
ステップＳ３０１でレベル比較部２０５は、ループ変数としての文字コードに０ｘ２１２０を設定する。続くステップＳ３０２〜Ｓ３０６は繰り返しループを形成している。
【０１２０】
ステップＳ３０２でレベル比較部２０５は画数確認処理を行う。つまり、レベル比較部２０５はステップＳ３０１または後述のステップＳ３０５で文字コードに設定した値を「文字コード」列に持つエントリの「画数」列の値を、図８の画数ＤＢ２１０から読み出す。例えば、文字コードが０ｘ４８２７のとき、画数としてステップＳ３０２では２０が得られる。
【０１２１】
続くステップＳ３０３でレベル比較部２０５は、ステップＳ３０２で得た画数から特定画数を減じた結果に０．１を掛ける。ただし、その演算結果が０以下の場合は、演算結果で０が得られたものと見なすこととする。
【０１２２】
具体的には、第１実施形態における上記の特定画数は１３である。また、説明の便宜上、ステップＳ３０１または後述のステップＳ３０５で設定した文字コードが表す文字をｃｈとし、ステップＳ３０２で得られた文字ｃｈの画数をｓｈとする。ステップＳ３０３でレベル比較部２０５は、下記の式（７）で定義される画数スコアＳｈを計算する。
Ｓｈ＝ｍｉｎ（０，（ｓｈ−１３）×０．１）            （７）
【０１２３】
式（７）によれば、画数スコアＳｈは、文字ｃｈの画数ｓｈが特定画数（例えば１３画）以下ならゼロだが、画数ｓｈが特定画数を超えているときは、画数ｓｈが多いほど大きな正の値をとる。このように画数スコアＳｈが定義される理由は次のとおりである。すなわち、一般的な経験則として、画数の多い文字は、頻繁には使われないのでデータを見分ける際の鍵として好適であり、データ同士を差異化する働きを持つことが多いからである。
【０１２４】
なお、式（７）で特定画数を示す定数として１３が使われる理由は、「経験的に、人名で使用される漢字で画数が多いものの平均的な画数は、約１３である」との知見による。また、式（７）で定数０．１が使われる理由は、外字スコアＥｈおよび出現頻度スコアＦｊｈと画数スコアＳｈとの間でバランスをとるためである。
【０１２５】
こうして画数スコアＳｈを計算すると、次のステップＳ３０４でレベル比較部２０５は、文字スコアＤＢ２０９において文字ｃｈに対応するエントリの「画数スコア」列に、ステップＳ３０３の演算結果を格納する。
【０１２６】
そして、ステップＳ３０５でレベル比較部２０５は、文字コードをインクリメントする。
続くステップＳ３０６でレベル比較部２０５は、ステップＳ３０５でのインクリメントの結果、文字コードに設定されている値が０ｘ７Ｅ７Ｆを超えたか否かを判定する。文字コードに設定されている値が０ｘ７Ｅ７Ｆ以下の場合、処理はステップＳ３０２に戻る。他方、文字コードに設定されている値が０ｘ７Ｅ７Ｆを超えた場合は、ｃｈ∈Ｃとなるすべての文字ｃｈについて、式（７）の画数スコアＳｈが文字スコアＤＢ２０９の「画数スコア」列に設定済みなので、レベル比較部２０５は、図１３の画数処理を終了する。
【０１２７】
続いて、レベル比較部２０５が上記図１１〜１３の前処理により文字スコアＤＢ２０９を構築した後に行う出力制御処理について説明する。図１４と１５は、出力制御処理のフローチャートである。
【０１２８】
出力制御処理は、図４の出力制御システム２００においてクライアントＰＣ２０２の入力装置に検証者からの印刷指示が入力されることを契機として、開始される。なお、以下の説明において「検証者」とは、図６のユーザＩＤ管理ＤＢ２０７にユーザＩＤが登録されており、出力制御システム２００に含まれる勘定系システムにログイン中の者のことである。
【０１２９】
ステップＳ４０１でレベル比較部２０５は、出力制御処理を開始する契機となった検証者からの印刷指示を、クライアントＰＣ２０２から受け取る。
すると、ステップＳ４０２でレベル比較部２０５は、ユーザ管理部２０４を介してユーザＩＤ管理ＤＢ２０７にアクセスし、印刷指示を与えた検証者の検証権限を確認する。すなわち、レベル比較部２０５は、検証者のユーザＩＤをキーにして図６のユーザＩＤ管理ＤＢ２０７を検索し、検証者の検証権限および選択可能マスクパターンを得る。
【０１３０】
そして、ステップＳ４０３でレベル比較部２０５は、検証者の検証権限の有無を判断する。ステップＳ４０２での確認の結果、検証者に検証権限があると判明した場合、処理はステップＳ４０４に移行し、検証者に検証権限がないと判明した場合、処理はステップＳ４０８に移行する。
【０１３１】
ステップＳ４０４でレベル比較部２０５は、マスクパターンの指定について判断を行う。例えば、レベル比較部２０５は、マスクパターンを検証者に指定させるためのダイアログなどを画面に表示するよう、クライアントＰＣ２０２に命令し、ダイアログへの入力をクライアントＰＣ２０２から受け取り、受け取った入力に基づいて判断を行ってもよい。
【０１３２】
マスクパターンを指定する入力がクライアントＰＣ２０２から与えられなかった場合（換言すれば、マスクパターンを利用しない旨の入力が明示的または暗黙的にクライアントＰＣ２０２から与えられた場合）、処理はステップＳ４０５に移行する。
【０１３３】
また、ステップＳ４０２でレベル比較部２０５が確認した選択可能マスクパターン（複数の場合はそのうちのいずれか）を指定する入力がクライアントＰＣ２０２から与えられた場合、処理は図１５のステップＳ４１２に移行する。逆に、ステップＳ４０２でレベル比較部２０５が確認した選択可能マスクパターン以外のマスクパターンを指定する入力がクライアントＰＣ２０２から与えられた場合、処理はステップＳ４０６に移行する。
【０１３４】
ステップＳ４０５でレベル比較部２０５は、印刷指示により指定された帳票をマスクなしで印刷するように、プリンタ２０３への出力を制御する。その結果、例えば図２の非マスク化帳票１０２のように、どの部分もマスク化されていない形式の検証用帳票がプリンタ２０３により印刷され、図１４の出力制御処理は終了する。
【０１３５】
他方、ステップＳ４０６でレベル比較部２０５は、選択不可のマスクパターンが指定されたことを警告するためのエラー表示を行うよう、クライアントＰＣ２０２に命令する。なお、第１実施形態における当該エラー表示は、印刷指示をキャンセルして処理を終了するか否かを検証者に指定させるためのダイアログの表示を含む。
【０１３６】
ステップＳ４０７でレベル比較部２０５は、クライアントＰＣ２０２を介して上記ダイアログに対して入力された指示に基づき、印刷指示をキャンセルして処理を終了するか否かを判断する。処理を終了する旨の指示が入力された場合、図１４の出力制御処理も終了する。他方、処理を続行する旨の指示が入力された場合、レベル比較部２０５はステップＳ４０４からの処理を繰り返す。
【０１３７】
さて、ステップＳ４０３で検証者に検証権限があると判断した場合、レベル比較部２０５はステップＳ４０８で、クライアントＰＣ２０２からマスクパターンを指定する入力を受け取る。例えば、レベル比較部２０５は、マスクパターンを検証者に指定させるためのダイアログなどを画面に表示するよう、クライアントＰＣ２０２に命令し、ダイアログへの入力をクライアントＰＣ２０２から受け取ってもよい。
【０１３８】
そして、ステップＳ４０９でレベル比較部２０５は、ステップＳ４０８で受け取った入力が、検証権限なしでも選択可能なマスクパターンを指定するものであるか否かを判断する。つまり、レベル比較部２０５は、ステップＳ４０２でユーザＩＤ管理ＤＢ２０７から読み出した選択可能マスクパターンに含まれるマスクパターンがステップＳ４０８で指定されたか否かを判断する。
【０１３９】
検証権限なしでも選択可能なマスクパターンがステップＳ４０８で指定された場合、処理は図１５のステップＳ４１２に移行する。逆に、選択不可のマスクパターンがステップＳ４０８で指定された場合、処理はステップＳ４１０に移行する。
【０１４０】
ステップＳ４１０でレベル比較部２０５は、ステップＳ４０６と同様に、選択不可のマスクパターンが指定されたことを警告するためのエラー表示を行うよう、クライアントＰＣ２０２に命令する。
【０１４１】
そして、ステップＳ４１１でレベル比較部２０５は、ステップＳ４０７と同様に、クライアントＰＣ２０２からの入力に基づき、印刷指示をキャンセルして処理を終了するか否かを判断する。処理を終了する旨の指示が入力された場合、図１４の出力制御処理も終了する。他方、処理を続行する旨の指示が入力された場合、レベル比較部２０５はステップＳ４０８からの処理を繰り返す。
【０１４２】
さて、「検証者が選択可能なマスクパターンを指定する入力が、クライアントＰＣ２０２から与えられた」と上記のステップＳ４０４またはステップＳ４０９で判断すると、レベル比較部２０５は、続いて図１５のステップＳ４１２以降の処理を行う。
【０１４３】
ステップＳ４１２でレベル比較部２０５は、顧客に関するループ変数であるｉの値を１に初期化する。続くステップＳ４１３〜Ｓ４２１は繰り返しループを形成している。
そして、ステップＳ４１３でレベル比較部２０５は、ステップＳ４０１で受け取った印刷指示が示す印刷範囲の中でｉ番目の顧客のデータを、顧客ＤＢ２０６から読み出す。
【０１４４】
印刷指示の形式は実施形態に応じて任意であるが、例えば、印刷指示は、顧客を識別する識別情報としての口座番号の範囲を指定するとともに、印刷対象となる顧客ＤＢ２０６中の項目を指定する指示でもよい。以下では説明の便宜上、印刷指示として「口座番号が３８７６５２３以上３８７６５２５以下の顧客について、氏名・性別・生年月日・住所・残高の各項目を印刷せよ」という指示がステップＳ４０１で与えられた場合を具体例として説明する。
【０１４５】
ステップＳ４１４でレベル比較部２０５は、印刷対象の項目に関するループ変数であるｊの値を１に初期化する。続くステップＳ４１５〜Ｓ４１９は繰り返しループを形成している。
【０１４６】
ステップＳ４１５でレベル比較部２０５は、印刷対象項目のうちｊ番目の項目がマスク対象であるか否かを、ステップＳ４０４またはＳ４０８で指定されたマスクパターンに基づいて判断する。
【０１４７】
例えば、図７のマスクパターン２が指定された場合、マスク対象の項目は氏名と住所である。よって、上記の例のように印刷指示により印刷対象項目として氏名・性別・生年月日・住所・残高が指定された場合、ｊ＝１またはｊ＝４のときにはステップＳ４１５で「ｊ番目の項目がマスク対象である」と判断される。
【０１４８】
そして、印刷対象項目のうちｊ番目の項目がマスク対象でなければ、処理はステップＳ４１６に移行する。逆に、ｊ番目の項目がマスク対象であれば、処理はステップＳ４１７に移行する。
【０１４９】
ステップＳ４１６でレベル比較部２０５は、ｉ番目の顧客のｊ番目の項目のデータをマスク化せずに使用して、当該データを出力するための制御を行う。例えば、上記の例でｉ＝１かつｊ＝２のとき、レベル比較部２０５は、「男」という性別のデータをそのまま出力するための制御を行う。
【０１５０】
他方、ステップＳ４１７では、レベル比較部２０５は、ｊ番目の項目のデータをマスク化して、当該データを出力するための制御を行う。ステップＳ４１７の詳細は図１６とともに説明するが、例えば、上記の例でｉ＝１かつｊ＝１のときの例を挙げると次のとおりである。
【０１５１】
すなわち、この例では、ｉ番目の顧客のｊ番目の項目のデータとは、図５に示すように「櫨田  太郎」という氏名の文字列である。よって、ステップＳ４１６でレベル比較部２０５は、「櫨田  太郎」という文字列に対するマスク化の処理を行い、具体的には、「櫨」という文字以外を黒い矩形により秘匿するよう、出力を制御する。
【０１５２】
ステップＳ４１６またはＳ４１７の実行後、処理はステップＳ４１８に移行する。なお、ステップＳ４１６とＳ４１７の処理はそれぞれ、例えば、プリンタ２０３に対して出力される一連の命令（例えばページ記述言語による命令）のうち、ｉ番目の顧客のｊ番目の項目の印刷に関する部分を生成することを含んでもよい。
【０１５３】
ステップＳ４１８でレベル比較部２０５は、ｉ番目の顧客に関してすべての印刷対象項目を処理したか否かを判断する。レベル比較部２０５がｉ番目の顧客に関してまだ処理していない印刷対象項目が残っている場合、処理はステップＳ４１９に移行する。逆に、レベル比較部２０５がｉ番目の顧客に関してすべての印刷対象項目を処理し終えた場合、処理はステップＳ４２０に移行する。
ステップＳ４１９でレベル比較部２０５はループ変数ｊに１を足す。そして、処理はステップＳ４１５に戻る。
【０１５４】
また、ステップＳ４２０では、レベル比較部２０５は、印刷指示で指定された印刷対象の顧客をすべて処理したか否かを判断する。レベル比較部２０５がまだ処理していない顧客が残っている場合、処理はステップＳ４２１に移行する。逆に、印刷指示で指定された印刷対象の顧客をすべてレベル比較部２０５が処理し終えた場合、処理はステップＳ４２２に移行する。
ステップＳ２１１でレベル比較部２０５はループ変数ｉに１を足す。そして、処理はステップＳ４１３に戻る。
【０１５５】
ステップＳ４２２では、プリンタ２０３が、レベル比較部２０５による上記ステップＳ４１２〜Ｓ４２１の制御の結果にしたがって、検証用の帳票を印刷する。例えば、レベル比較部２０５がプリンタドライバを含む場合、レベル比較部２０５がステップＳ４１６またはＳ４１７で生成した命令にしたがって、プリンタ２０３はステップＳ４２２で帳票を印刷する。
【０１５６】
例えば、上記のように「口座番号が３８７６５２３以上３８７６５２５以下の顧客について、氏名・性別・生年月日・住所・残高の各項目を印刷せよ」という印刷指示が与えられ、図７の「マスクパターン２」が指定されているとする。すると、ステップＳ４２２でプリンタ２０３から出力されるのは、図１のような検証用帳票１０１である。
こうして検証用帳票１０１が出力されると、図１４〜１５の出力制御処理は終了する。
【０１５７】
続いて、ステップＳ４１７の詳細について図１６を参照して説明する。図１６は、文字列のマスク化処理のフローチャートである。図１６のマスク化処理は、第１実施形態では、項目名とマスク化対象の文字列（説明の便宜上、Ｘとする）を引数とする処理である。
【０１５８】
ステップＳ５０１でレベル比較部２０５は、文字列Ｘ中の文字を１つずつ処理していくためのループ変数ｋに１を設定する。続くステップＳ５０２〜Ｓ５０４は繰り返しループを形成している。
【０１５９】
ステップＳ５０２でレベル比較部２０５は、文字列Ｘのｋ番目の文字の各種スコアを文字スコアＤＢ２０９から読み出し、総合スコアを計算する。なお、上述のとおり、第１実施形態では、文字識別情報として文字コードが使われているので、図１０の文字スコアＤＢ２０９において「文字コード」列と「文字」列の値は等しい。よって、ステップＳ５０２でレベル比較部２０５は、文字列Ｘからｋ番目の文字（説明の便宜上ｃｈとする）を取り出し、取り出した文字ｃｈを「文字コード」列のキーとして使って文字スコアＤＢ２０９を検索し、検索されたエントリから各種スコアを読み取る。
【０１６０】
具体的には、レベル比較部２０５は、外字スコアＥｈと、図１６のマスク化処理に引数として与えられた項目名が示す項目の出現頻度スコアＦｊ’ｈと、画数スコアＳｈを文字スコアＤＢ２０９から読み出す。
【０１６１】
なお、以下では、図１５のステップＳ４１７において印刷対象の項目のうちｊ番目の項目に関して図１６の処理が呼び出されたものとし、印刷対象の項目のうちｊ番目の項目は顧客ＤＢ２０６の項目の中ではｊ’番目であるとする。例えば、図１の検証用帳票１０１の印刷に関して、氏名は、印刷対象の項目のうち１番目の項目であり、図５の顧客ＤＢ２０６の項目の中では２番目の項目である。よって、図１の検証用帳票１０１の印刷に関しては、ｊ＝１のときｊ’＝２である。
【０１６２】
ステップＳ５０２でレベル比較部２０５は、次の式（８）のように定義される総合スコアＴｊｈを計算し、例えばサーバ２０１が備えるＲＡＭに計算結果を記憶する。
Ｔｊｈ＝Ｅｈ＋Ｆｊ’ｈ＋Ｓｈ                          （８）
【０１６３】
ステップＳ５０３でレベル比較部２０５は、文字列Ｘ内のすべての文字を処理したか否かを判断する。未処理の文字が残っている場合、処理はステップＳ５０４に移行し、レベル比較部２０５が文字列Ｘの文字をすべて処理し終えた場合、処理はステップＳ５０５に移行する。
【０１６４】
ステップＳ５０４でレベル比較部２０５は、ループ変数ｋに１を足す。そして処理はステップＳ５０２に戻る。
ステップＳ５０５でレベル比較部２０５は、文字列Ｘの中で総合スコアが最大の文字を非マスク化対象文字として選定し、それ以外の文字をマスク化対象文字と決定する。なお、総合スコアが最大の文字が複数存在する場合、レベル比較部２０５は所定の方針にしたがって１文字あるいは複数文字を非マスク化対象文字として選定する。
【０１６５】
上記の所定の方針は、実施形態に応じて任意である。例えば、レベル比較部２０５は、総合スコアが最大の文字をすべて非マスク化対象文字として選定してもよい。または、レベル比較部２０５は、総合スコアが最大の文字のうちで所定の位置の文字のみ（例えば、最左の文字、最右の文字、左から２番目の文字、など）を非マスク化対象文字として選定してもよい。
【０１６６】
なお、第１実施形態では、上記の定義および図１２のステップＳ２０５から、総合スコアＴｊｈが１０以上となるのは、下記２つの条件がともに成立する場合のみである。
・文字列Ｘは、印刷対象の項目のうちｊ番目の項目のデータとして、図１６のマスク化処理の引数に与えられている。
・しかし、実際には顧客ＤＢ２０６中の当該項目に出現しない文字ｃｈが、文字列Ｘに含まれている。
【０１６７】
つまり、総合スコアＴｊｈが１０以上となるのは、何らかの異常（例えば検証対象の勘定系システムにおけるバグ）がある場合である。よって、第１実施形態においてレベル比較部２０５は、ステップＳ５０５での例外処理として、総合スコアＴｊｈが１０以上の文字は、たとえ総合スコアＴｊｈが最大でなくても非マスク化対象文字として選定してもよい。
【０１６８】
最後に、ステップＳ５０６でレベル比較部２０５は、ステップＳ５０５で非マスク化対象文字として選定しなかった文字をマスク化して秘匿し、処理結果を返す。
【０１６９】
以上のとおり、第１実施形態によれば、指定されたマスクパターンに応じて、例えば図１の検証用帳票１０１のような形で帳票が印刷される。第１実施形態の利点については図１〜３を参照して概要を説明したが、図４〜１６とともに説明した詳細をふまえて再度第１実施形態の利点について、いくつかの比較例と比較しながら述べれば以下のとおりである。
【０１７０】
例えば銀行における勘定系システム等のシステム開発においては、多くの場合、帳票が正しく印刷されるか否かという試験（つまり検証作業）をともなう。しかし、検証作業を行う人員（図１４〜１５の説明における「検証者」）は、大抵の場合、銀行の顧客の個人情報を参照する権限のある銀行員等ではなく、システム構築受託会社やその請負会社等の社員等、個人情報を参照する権限のない者である。よって、実際の顧客の個人情報を秘匿した状態での検証作業を可能とすることが望ましい。
【０１７１】
実際の顧客の個人情報を秘匿した状態での検証作業を可能とするための１つの解決法は、実際の顧客のデータ（以下「本番データ」という）ではなく、検証作業用に作成した仮想のデータ（以下「仮想データ」という）を用いて検証作業を行うことである。例えば、顧客ＤＢ２０６に本番データの代わりに仮想データを格納しておけば、図２の非マスク化帳票１０２のような形式で帳票を印刷しても、検証者に対して本番データを秘匿しておくことが可能である。
【０１７２】
しかし、仮想データを用いた検証作業では、「たとえ仮想データでは正常に帳票が印刷されるとしても、本番データを使ったときに本当に帳票が正常に印刷されるという確証がない」という問題が常につきまとう。例えば、特殊な顧客名、住所、その他諸々のイレギュラーな要素が本番データにはあるかもしれず、仮想データではそれらのイレギュラーな要素をカバーしきれていないかもしれない。
【０１７３】
そこで、「イレギュラーな要素を含みうる本番データに対しても帳票が正常に印刷される」という確証のある、高品質な勘定系システムを構築するには、やはり本番データを使った検証作業を行うことが好ましい。ところが、本番データは現実の個人情報を含むので、本番データを使った検証作業においては、個人情報を参照する権限のない検証者に対して個人情報を秘匿することが望ましい。
【０１７４】
しかしながら、単純に例えば「氏名を秘匿するために、氏名を黒塗りにすることでマスク化する」といった手法を採用すると、図３の全体マスク化帳票１０３のような出力が得られる。その結果、例えば「氏名を表す文字列が正しく氏名の列のところに印刷されているか否か」といった検証すら不能になり、検証作業としての趣旨が没却されてしまう。
【０１７５】
そこで、他の手法として、例えば「帳票において個人情報に当たる部分は、暗号化した画像として印刷し、個人情報を参照する権限のある者であれば後から暗号化画像を復号して個人情報を可視化することができるようにする」という手法も考えられる。
【０１７６】
この手法によれば、検証者に個人情報を参照する権限がなければ、暗号化画像を見ても個人情報が分からないので、個人情報の秘匿は達成される。しかし、やはり図３の比較例などと同様に、個人情報を参照する権限のない検証者にとっては、例えば「氏名を表す文字列が正しく氏名の列のところに印刷されているか否か」などの検証すら、不可能である。
【０１７７】
もちろん、個人情報を参照する権限のある検証者（例えば銀行員）ならば、暗号化画像を復号することで帳票の本来の印刷内容を知ることができ、検証作業が可能である。しかし、それではそもそもシステム開発会社に勘定系システムの開発業務を委託した意味が没却されてしまう。
【０１７８】
このように、個人情報の秘匿と本番データを使った検証作業とを両立させるには、困難がある。
他方で、個人情報の一部ではあっても、当該一部のみを表示する分には個人の特定につながらず、問題とならないものに関する検証作業（例えば、「個人情報に含まれる外字が正しく印刷されるか」といった検証作業）もある。また、図３の比較例では、「氏名の欄に金額などの数値が誤って印刷されていないか」、「誤って空欄になっていないか」といったことの検証すら不可能だが、個人を特定しない範囲で一部の文字を印刷すれば、ある程度の確信度をもって検証可能である事柄も多い。
【０１７９】
第１実施形態によれば、例えば図１の検証用帳票１０１のように、マスクパターンに応じてマスク化される各項目では、個人を特定しない範囲で部分的に非マスク化対象文字のみがそのまま表示される。そして、非マスク化対象文字としては、確認の優先度が高い文字やデータ同士を差異化する鍵となりうる文字が、総合スコアに基づいて優先的に選定される。よって、第１実施形態によれば、個人情報の秘匿と本番データを使った検証作業をうまく両立することが可能となる。
【０１８０】
なお、確認の優先度が高い文字の例は、外字や、例外処理用に出現頻度スコアとして特殊な値１０が割り当てられた文字などである。また、データ同士を差異化する鍵となりうる文字の例は、出現回数の少ない文字や、画数の多い文字などであり、これらの文字は比較的珍しく、一見して特徴的なので、検証時の手がかりとして有効である。
【０１８１】
例えば、氏名の五十音順に顧客のデータを並べて出力する帳票に関する検証作業では、「田中」のような一般的な姓の顧客が大勢いる場合、同姓の顧客のデータが並ぶかもしれない。このとき、もし「田」または「中」が非マスク化対象文字として選定されると、正しく各顧客の氏名が印刷されているのか、誤って１人の顧客の氏名が繰り返し印刷されているのか、検証が難しい。
【０１８２】
しかし「田」や「中」は氏名における出現頻度が高く、外字でもなく、画数も少ないので、総合スコアは比較的低い。よって、第１実施形態によれば、「田中」という同姓の大勢の顧客のデータに関しては、各顧客を区別するのに有効な、下の名前に含まれる文字が非マスク化対象文字として選定される。その結果、マスク化された氏名は、個々の顧客の氏名を特定することはできない状態でありながらも、（異なる氏名に対しては異なる文字が非マスク化対象文字として選定されることが多いので）氏名同士の区別がつけやすい状態で、印刷される。よって、少数の非マスク化対象文字を手がかりとして検証作業を行うことも可能となる。
【０１８３】
このように、第１実施形態によれば、個人情報に関するセキュリティを保ちながらも、本番データに現れる各種のイレギュラーな要素を網羅した検証作業を行うことが可能となる。また、非マスク化対象文字を適切に定義された総合スコアにしたがってレベル比較部２０５が選定することで、検証作業の効率化も可能となる。なぜなら、検証者は、帳票に印刷される大量の文字すべてを見て検証する代わりに、少数の非マスク化対象文字のみを見て検証作業を行えばよいからである。
【０１８４】
したがって、第１実施形態によれば、本番データを用いた効率的な検証作業により、品質の高い勘定系システムが提供されるようになる。
【０１８５】
続いて、第２実施形態について説明する。第１実施形態と第２実施形態の違いは、文字を出力する優先度を表す総合スコアの定義である。第１実施形態に関して、上記の説明では総合スコアの具体的な算出方法を例示したが、もちろん総合スコアの定義は実施形態によって様々である。
【０１８６】
例えば、式（２）中の定数０および１は、実施形態に応じて任意の他の値に置き換えられてもよい。
また、出現率ｒｊｈが低いほど出現頻度スコアＦｊｈが高くなるように、式（５）で出現率ｒｊｈの逆数ｑｊｈをとり、全文字数ｎｊを使ってそのｑｊｈを式（６）のように正規化するという、出現頻度スコアＦｊｈの定義は、あくまでも一例である。実施形態によっては、逆数をとる代わりに、出現率ｒｊｈに対して単調減少する任意の関数を使うこともできるし、式（６）以外の方法で正規化された出現頻度スコアを利用することもできる。
【０１８７】
同様に、式（７）の画数スコアＳｈも、実施形態によっては違うように定義されていてもよく、例えば、式（７）中の０、１３、０．１という定数は、実施形態に応じて別の数値でもよいし、画数スコアＳｈは画数ｓｈの任意の関数でよい。また、特定画数（式（７）では１３）は、式（７）のように項目によらず一律の値でもよいが、項目ごとに異なる値でもよい。
【０１８８】
また、式（８）の総合スコアＴｊｈの定義も、実施形態によって様々に変形されてよい。総合スコアは、外字スコアＥｈと出現頻度スコアＦｊ’ｈと画数スコアＳｈのうち少なくとも１つに基づく任意の関数であればよく、例えば（８）のような算術和の代わりに、所定の重み係数を用いた重み付け和を利用することもできる。
【０１８９】
なお、式（８）の総合スコアＴｊｈの定義に応じて、総合スコアＴｊｈが通常とりうる値の範囲も異なる。よって、その範囲にない適宜の値を、図１２のステップＳ２０５における「１０」という値の代わりに用いることが好ましい。
【０１９０】
このように、総合スコアの定義は実施形態に応じて様々に変えることができる。第２実施形態は、総合スコアの定義を変えた場合の一例である。
具体的には、第２実施形態において文字ｃｈの総合スコアは、顧客ＤＢ２０６の表示項目によらず一律に、次の式（９）のように定義される。
Ｔｈ＝Ｅｈ                                            （９）
【０１９１】
なお、式（９）の定義から明らかに、第２実施形態においては、文字スコアＤＢ２０９中の画数スコアや出現頻度スコアの項目は省略可能であり，これらの項目に値を設定するための前処理（つまり図１２〜１３の処理）も省略可能である。
式（９）により定義された総合スコアＴｈを利用する第２実施形態は、例えば、外字が正しく印刷されるか否かを検証するための外字出力テストに好適である。
【０１９２】
図１７は、第２実施形態において外字出力テスト用に印刷される帳票を例示する図である。具体的には、図１７の外字検証用帳票１０４は、「氏名、性別、生年月日、住所、残高」をマスク項目として定義する図７には不図示のマスクパターンが指定された場合の例である。
【０１９３】
式（９）によれば、第２実施形態における総合スコアＴｈは、文字ｃｈが外字なら１であり、文字ｃｈが外字でなければ０である。よって、式（９）の総合スコアＴｈにしたがってレベル比較部２０５が図１４〜１５の出力制御処理を行うと、図１７のように、外字である《吉》のみが非マスク化対象文字として選定され、他の文字は黒い矩形により秘匿される。
【０１９４】
したがって、図１７の外字検証用帳票１０４は、個人情報を参照する権限のないシステム開発者等に対して個人情報を秘匿しつつ、システム開発者等が実際の顧客ＤＢ２０６のデータを用いて、外字が問題なく出力されるか否かの検証を行うことを可能とする。よって、第２実施形態は、外字出力テストに好適である。
【０１９５】
このように、検証の目的に応じて適宜総合スコアの定義を変えることで、個人情報を参照する権限のない者による検証を可能とすることと、個人情報を秘匿することを両立することができる。
【０１９６】
続いて、第３実施形態について説明する。第３実施形態では、マスクの外観が上記の第１・第２実施形態とは異なる。
第１・第２実施形態では、個々の文字をマスク化する際に、レベル比較部２０５は、どのマスク化対象文字でも一律に、黒い矩形により秘匿する。しかし、マスクの外観は実施形態に応じて任意である。例えば、マスク化対象文字をマスク化するのに、レベル比較部２０５は、当該マスク化対象文字の上にマスク用の画像を重ねてもよいし、当該マスク化対象文字を所定の記号に置換してもよい。
【０１９７】
マスク用の画像は、マスク化対象文字が透けて見えることのないように不透明のもので、かつ、マスク化対象文字を覆うだけの大きさがあれば、任意である。図１では黒い矩形が使われているが、色は黒でなくてもよく、１色で塗りつぶすのではなく模様がついていてもよく、形状は矩形でなくてもよい。また、連続する複数の文字がいずれもマスク化対象文字であるとき、図１のように分離したマスクで個々の文字を秘匿するのではなく、連続した複数のマスク化対象文字を一続きのマスクで秘匿してもよい。
【０１９８】
また、マスク化対象文字を置き換えるための上記所定の記号は任意であるが、レベル比較部２０５は、マスク化対象文字を例えば、「■」、「□」、「◎」、「〓」などの記号に置換することで秘匿してもよい。つまり、マスクとして使われるのは、所定の記号でもよい。
【０１９９】
このように、実施形態に応じてマスクの外観は様々であるが、第３実施形態では、レベル比較部２０５が、異なるマスク化対象文字に対して共通する一律なマスクを使う代わりに、マスク化対象文字をレンダリングした画像を暗号化する。それにより、マスク化対象文字は、人間が見ても読めない状態で出力されるので、個人情報を参照する権限のない者に対する情報の秘匿が実現される。
【０２００】
さらに、第３実施形態では、個人情報を参照する権限のある者による事後的な復号により、印刷された帳票の全内容が確認可能となる。よって、例えば、何らかの理由で非マスク化対象文字だけからでは検証結果に確信が持てないなどの場合にも、第３実施形態によれば、個人情報を参照する権限のある者の一時的な協力を得ることで、検証作業を円滑に進めることが可能となる。
【０２０１】
具体的には、第３実施形態では、図１６のステップＳ５０６のレベル比較部２０５の動作が第１実施形態とは異なる。第３実施形態におけるステップＳ５０６は、マスク化対象文字をレンダリングして画像化する処理と、レンダリングにより得られた画像を、例えば上記の特許文献５に記載の手法により暗号化する処理を含む。
【０２０２】
以下では、印刷対象の１人目の顧客の氏名である「櫨田  太郎」が文字列Ｘとして与えられた場合を例として、図１６のステップＳ５０６の処理が第３実施形態ではどのように変形されるかについて、より具体的に説明する。なお、この例では、上記のとおりステップＳ５０５では「櫨」のみが非マスク化対象文字として選定されている。
【０２０３】
第３実施形態のステップＳ５０６において、レベル比較部２０５は、まず、「櫨田  太郎」という文字列全体を、図２の非マスク化帳票１０２のようにそのまま出力する場合と同様にレンダリングしたレンダリング画像を生成する。そして、レベル比較部２０５は、生成したレンダリング画像のうち、マスク化対象文字である「田」、「太」および「郎」が出力される領域を、暗号化する対象の領域（以下、「部分領域」という）として選択する。
【０２０４】
なお、１つの項目（例えば氏名）の中に複数のマスク化対象文字がある場合、レベル比較部２０５は、レンダリング画像内で複数のマスク化対象文字が出力される領域をまとめて１つの部分領域として扱うものとして、以下の説明を行う。つまり、部分領域の形状は飛び石状であってもよい。しかし、レベル比較部２０５は、レンダリング画像内で複数のマスク化対象文字が出力されるそれぞれの領域を個別の部分領域として扱い、以下に説明する処理を複数の部分領域に対してそれぞれ行うこともできる。
【０２０５】
さて、レベル比較部２０５は、部分領域を選択すると、選択した部分領域を暗号鍵に基づいて変換する。変換後の画像を、以下では「処理画像」という。また、暗号鍵は、図６のユーザＩＤ管理ＤＢ２０７で管理されるユーザのうち、検証権限が「あり」の者のみに通知される。
【０２０６】
部分領域を変換して処理画像を得る手法は様々である。例えば、レベル比較部２０５は、部分領域を複数の微小領域に分割し、分割した複数の微小領域を暗号鍵に基づいて並べ替えるスクランブル処理を行うことで、部分領域を処理画像に変換してもよい。あるいは、レベル比較部２０５は、部分領域を任意の圧縮方法で圧縮データに変換し、圧縮データの各ビットを任意の大きさの白画素または黒画素として配列することで、処理画像を生成してもよい。以上のような変換により、人間が視覚的に元の文字を理解することができないように、処理画像が生成される。
【０２０７】
そして、レベル比較部２０５は、部分領域の位置を特定可能にするために、上記のような変換により得た処理画像の画素値を規則的に変換する。例えば、レベル比較部２０５は、処理画像の横方向に関して一定の周期で画素値を変換し、縦方向に関して一定の周期で画素値を変換することにより、概ね縞状の模様を成すような変換画像を生成することができる。より具体的には、レベル比較部２０５は、処理画像を白黒の市松模様画像と重ねたときに黒い部分と重なる部分の画素値を反転させることで、処理画像から変換画像を生成してもよい。
【０２０８】
レベル比較部２０５は、生成した変換画像自体を、マスク化対象文字を暗号化によりマスク化した暗号化画像として用いてもよい。または、レベル比較部２０５は、部分領域の位置を特定するために特定のマーカーを変換画像に付加し、付加後の画像を暗号化画像として用いてもよい。
【０２０９】
あるいは、レベル比較部２０５は、暗号化画像の復号化の妥当性を検証するための特定のチェック用マークをレンダリング画像に付加してから、上記のようにして処理画像と変換画像を作成してもよい。いずれにしろ、暗号化画像は、個々のマスク化対象文字の形状から何らかの暗号化処理により得られる画像なので、個々のマスク化対象文字に応じて異なる画像である。
【０２１０】
レベル比較部２０５は、マスク化対象文字に対応する領域に、以上のようにして生成した暗号化画像を配置し、非マスク化対象文字に対応する領域に、非マスク化対象文字をそのままレンダリングした画像を配置した画像を、ステップＳ５０６の処理結果として返す。その結果として、例えば上記の「櫨田  太郎」の例の場合、図１５のステップＳ４２２で出力される検証用帳票においては、「櫨」という文字は人間が見て読める状態で印刷されるが、その他の３文字は、人間が見ても読めない状態に暗号化されて印刷される。
【０２１１】
そして、上記の暗号鍵は、個人情報を参照する権限のない者には通知されない。よって、第３実施形態によれば、個人情報を参照する権限のない者は、暗号化画像を画像復号化装置により復号して「田」・「太」・「郎」といったマスク化対象文字を読み取ることはできない。よって、個人情報の秘匿が達成される。
【０２１２】
一方で、「櫨」という非マスク化対象文字は、個人情報を参照する権限のない者でも読み取れる状態で出力される。よって、個人情報を参照する権限のない者が、「櫨」という文字を手がかりに、帳票出力に関する検証作業を行うこともできる。
【０２１３】
ところで、第３実施形態では、上記のようにして印刷された帳票をスキャナなどの光学機器で読み込んで得られた画像を復号化する不図示の画像復号化装置を、出力制御システム２００がさらに含む。なお、以下では特に誤解のおそれがないので、暗号化画像を含む帳票がスキャナなどによって読み取られることで得られた画像中の暗号化画像のことも、単に暗号化画像という。
【０２１４】
上記ではレベル比較部２０５が暗号化画像を生成する具体的処理の例をいくつか示したが、その違いに応じて、画像復号化装置の具体的動作も一部異なる。
例えば、レベル比較部２０５による暗号化において上記のマーカーが使われる場合、画像復号化装置は、暗号化画像に付加されたマーカーを検出し、検出したマーカーに基づいて、暗号化された暗号化画像領域を検出する。そして、画像復号化装置は、検出された暗号化画像領域のうち画素値が規則的に変換されている暗号化位置を検出し、検出された暗号化位置と復号鍵とに基づいて暗号化画像領域を復号する。
【０２１５】
なお、ここではレベル比較部２０５による暗号化に使われた暗号鍵が、復号鍵として画像復号化装置に与えられる。また、画像復号化装置は、具体的には、レベル比較部２０５による画素値の規則的な変換の逆変換を暗号化画像領域に施し、得られた結果に対して、逆スクランブル処理または伸張処理を行うことで、暗号化画像領域を復号する。
【０２１６】
あるいは、レベル比較部２０５による暗号化において上記のチェック用マークが使われる場合、画像復号化装置は、暗号化された暗号化画像領域を検出し、検出した暗号化画像領域のうち画素値が規則的に変換されている暗号化位置を検出する。
【０２１７】
そして、画像復号化装置は、検出した暗号化位置と復号鍵とに基づいて暗号化画像領域を復号し、復号した画像から復号化の妥当性を検証するための特定のチェック用マークを検出する。もしチェック用マークが検出されなければ、画像復号化装置は、検出した暗号化位置を補正し、チェック用マークが検出されるまで、または指定の基準を満たすまで、復号化をやり直してもよい。
【０２１８】
なお、以上のような画像復号化装置は、独立した装置でもよいし、スキャナが画像復号化装置としての機能を有していてもよい。また、サーバ２０１が、所定のプログラムを実行することで上記の画像復号化装置として機能してもよい。
【０２１９】
このように、第３実施形態では、暗号化画像を含んで印刷された帳票がスキャナ等の光学機器によりスキャンされ、スキャンされた結果の画像が画像復号化装置により復号される。よって、個人情報を参照する権限のある者は、復号鍵を画像復号化装置に入力することで、個人情報を参照する権限のない者が検証に用いた帳票に暗号化されて印刷されている個人情報を知ることができ、必要に応じてより詳細に帳票の出力結果を検証することができる。
【０２２０】
なお、本発明は上記の実施形態に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
上記の各実施形態は、開発対象のシステムが銀行の勘定系システムである場合の例だが、開発対象のシステムは任意である。例えば、金融分野や医療分野のシステム、あるいは小売業やサービス業における顧客管理システムなど、任意のシステムに対して上記の実施形態を適用することができる。なお、マスク化により保護する対象は、当然ながら、個人情報以外の種類の機密情報であってもよい。
【０２２１】
また、開発対象のシステムに応じて、当該システムで使われる文字集合および符号化方式は任意である。すなわち、文字集合Ｃは実施形態に応じて様々であり、文字識別情報として何を利用するかも実施形態に応じて任意であり、たとえ文字識別情報として文字コードを利用するとしても、どの符号化方式の文字コードを使うかは、実施形態に応じて任意である。
【０２２２】
もちろん、印刷対象の帳票の形式も、図面に例示したものに限られず、実施形態に応じて任意である。
なお、実施形態によっては、マスクパターンの選択の余地がなくてもよい。つまり、１つの所定のマスクパターンが常に使われてもよい。
【０２２３】
また、図４に示した出力制御システム２００の構成は一例である。出力制御システム２００は、クライアントサーバシステムではなくスタンドアロンシステムでも構わない。
さらに、各種ＤＢの形式も任意である。上記の説明においては各種ＤＢの例をテーブル形式で例示したが、各種ＤＢは、テーブル形式のリレーショナルＤＢでなくてもよく、例えば、ＸＭＬ（eXtensible Markup Language）形式など他の形式のＤＢでもよい。
【０２２４】
また、図１０の文字スコアＤＢ２０９は、図５の顧客ＤＢ２０６の複数の項目に応じて出現頻度スコアの列を複数有しているが、さらに、顧客ＤＢ２０６の項目別の総合スコアの列を有していてもよい。その場合、レベル比較部２０５は、図１１〜１３の前処理の後に、さらに、文字スコアＤＢ２０９中の各文字について、項目別にそれぞれ総合スコアを計算し、計算結果を文字スコアＤＢ２０９に格納してもよい。
【０２２５】
例えば、レベル比較部２０５は、図１１と図１３の処理を先に行い、その後、図１２の処理を行ってもよい。そして、図１２の処理において、レベル比較部２０５は、ステップＳ２０７の直後に、現在注目している文字についてのｊ番目の表示項目に関する総合スコアを計算し、文字スコアＤＢ２０９に計算結果を格納してもよい。
【０２２６】
すると、レベル比較部２０５は、印刷時に図１６のステップＳ５０２において、総合スコアをその都度計算する代わりに、こうして項目別に予め計算した総合スコアを文字スコアＤＢ２０９から単に読み出すだけでよくなる。すなわち、レベル比較部２０５は出力制御処理の実行時に、計算により総合スコアを取得してもよいし、文字スコアＤＢ２０９からの読み出しにより総合スコアを取得してもよい。
【０２２７】
なお、実施形態によっては、顧客ＤＢ２０６中の複数の項目をまとめてレベル比較部２０５が出現頻度スコアを算出してもよく、それに応じて文字スコアＤＢ２０９の列も適宜変更可能である。例えば、レベル比較部２０５は、顧客ＤＢ２０６における住所と氏名をあわせた範囲での出現頻度に基づいて、住所と氏名に共通して使われる出現頻度スコアを算出し、文字スコアＤＢ２０９に格納してもよい。
【０２２８】
ただし、項目ごとに文字の分布の特徴が大きく異なる場合は、第１実施形態のように項目別に出現頻度スコアを算出することが有効である。例えば、「県」という文字は、住所ではデータ同士の区別にあまり有益ではないかもしれないが、氏名に関しては「県」という文字がデータ同士の区別に役立つかもしれない。
【０２２９】
また、図１６のステップＳ５０５では、文字列Ｘの中で総合スコアＴｊｈが最大の文字をレベル比較部２０５が非マスク化対象文字として選定しているが、選定基準は実施形態により任意である。例えば、レベル比較部２０５は、以下の（１）〜（３）のような文字を非マスク化対象文字として選択してもよい。また、選定基準は、顧客ＤＢ２０６の項目ごとに異なっていてもよい。
（１）文字列Ｘの中で総合スコアＴｊｈがα位以内の文字（αは１≦αを満たす所定の定数）
（２）文字列Ｘの中で総合スコアＴｊｈが上位β％以内に入る文字（βは０＜β＜１００を満たす所定の定数）
（３）文字列Ｘの中で総合スコアＴｊｈがγ以上の文字（γは所定の定数）
【０２３０】
なお、レベル比較部２０５は、ある種の選定基準のもとでは、ｉ人目の顧客のｊ番目の項目に関して２文字以上を非マスク化対象文字として選定する可能性があるが、その場合、非マスク化対象文字が連続すると個人情報が推測しやすくなってしまう。特に、氏名のように文字数が比較的少ない項目に関しては、複数の文字が非マスク化対象文字として選定された場合、個人情報が推測しやすくなる。
【０２３１】
例えば、ある顧客の氏名は「醍醐  學」のように、使用頻度が低く画数が多い文字ばかりかもしれない。すると、上記（３）の選定基準を採用した実施形態においては、定数γの値によっては、３文字すべてが非マスク化対象文字として選定される可能性もある。
【０２３２】
そこで、実施形態に応じて、レベル比較部２０５は、非マスク化対象文字が連続しないようにするための処理をさらに行ってもよい。
例えば、非マスク化対象文字（の候補）として隣り合う２文字が選定された場合、レベル比較部２０５は、総合スコアＴｊｈが１番高い第１の文字を非マスク化対象文字とし、総合スコアＴｊｈが２番目に高い第２の文字はマスク化対象文字に変えてもよい。すると、実際には１文字のみが非マスク化対象文字となるので、連続する２文字がそのまま出力されることはなくなる。
【０２３３】
あるいは、もし総合スコアＴｊｈが３番目に高い第３の文字が上記第１の文字に隣接しないならば、レベル比較部２０５は、第２の文字をマスク化対象文字にする代わりに、第３の文字を繰り上げて非マスク化対象文字として選定してもよい。第１の文字の両隣が第２と第３の文字である場合は、レベル比較部２０５は、第２と第３の文字をマスク化対象文字とし、その代わりに、総合スコアＴｊｈが４番目に高い第４の文字を繰り上げて非マスク化対象文字として選定してもよい。
【０２３４】
例えば以上のような処理により、レベル比較部２０５は、たとえ非マスク化対象文字を複数選定する実施形態においても、非マスク化対象文字同士が隣り合わないようにすることができる。
【０２３５】
また、上記の各実施形態では、「出力」の具体例として紙媒体への印刷出力を取り上げているが、印刷媒体は紙以外の媒体でもよいし、印刷以外の出力にも上記の各実施形態は適用可能である。印刷以外の出力の例としては、例えば、電子ファイルへの出力や表示装置の画面への出力が挙げられる。
【０２３６】
一般に、プリンタドライバの出力は、プリンタ２０３に与えられれば、プリンタ２０３による印刷媒体への印刷を引き起こすが、ＰｏｓｔＳｃｒｉｐｔ（登録商標）などの所定のページ記述言語により記述された形式の電子ファイルとしても保存可能である。よって、レベル比較部２０５は、上記実施形態のように印刷媒体への印刷出力を制御することができるだけでなく、明らかに、ページ記述言語により記述された形式の電子ファイルへの出力を制御することもできる。
【０２３７】
また、ＰＤＦ（Portable Document Format）形式のファイルは、ＰｏｓｔＳｃｒｉｐｔ（登録商標）形式のデータから生成されるので、レベル比較部２０５は、ＰＤＦ形式のファイルへの帳票の出力を制御することもできる。もちろん、実施形態によって、レベル比較部２０５は、その他の形式の電子ファイルへの出力を制御してもよい。
【０２３８】
また、レベル比較部２０５は、表示装置の画面への出力を制御することもできる。例えば、レベル比較部２０５は、図１６のステップＳ５０６において、非マスク化対象文字はそのまま画面にレンダリングし、マスク化対象文字に関してはマスク用の画像をオーバレイさせてからレンダリングを行ってもよい。あるいは、レベル比較部２０５は、マスク化対象文字を所定の記号ないしマスク用の画像に置換してからレンダリングを行うことで、画面への出力を制御してもよい。画面への出力を制御するための具体的実装として、レベル比較部２０５が表示装置のデバイスドライバを含んでいてもよい。
【０２３９】
あるいは、レベル比較部２０５は、デバイスドライバよりも高いレベルで画面への出力を制御してもよい。
例えば、出力制御システム２００がＷｅｂアプリケーションとして実装される場合、サーバ２０１は、クライアントＰＣ２０２の画面に表示する内容を表すＨＴＭＬ（HypertText Markup Language）コードを生成してクライアントＰＣ２０２に送信する。そこで、レベル比較部２０５は、ＨＴＭＬコードの生成を制御することで、画面への出力を制御してもよい。
【０２４０】
例えば、レベル比較部２０５は図１６のステップＳ５０６で、マスク化対象文字をマスク用の所定の記号またはｉｍｇタグに置換し、非マスク化対象文字はそのまま用い、その結果を、文字列Ｘをマスク化して画面に表示するためのＨＴＭＬコードとしてもよい。それにより、レベル比較部２０５はクライアントＰＣ２０２の画面への表示を制御し、マスク化対象文字を隠しつつ非マスク化対象文字をクライアントＰＣ２０２のディスプレイに表示させることができる。
【０２４１】
最後に、上記の種々の実施形態に関して、さらに下記の付記を開示する。
（付記１）
コンピュータに、
出力対象として指定された文字列に含まれる各文字について、所定の評価基準にしたがって評価される優先度をそれぞれ取得する優先度取得ステップと、
前記優先度に基づいて、マスク化せずに出力する非マスク化対象文字を前記文字列の中から選定する選定ステップと、
前記文字列に含まれる文字のうち、前記非マスク化対象文字はマスク化せずに、かつ前記非マスク化対象文字以外の文字であるマスク化対象文字は所定のパターンでマスク化するように、前記文字列の出力を制御する第１の出力制御ステップと、
を実行させる出力制御プログラム。
（付記２）
前記優先度は、
評価対象の文字が所定の種類の文字であれば前記優先度を高くするという評価基準、
前記評価対象の文字の画数が多いほど前記優先度を高くするという評価基準、および
前記評価対象の文字の出現頻度が低いほど前記優先度を高くするという評価基準
のうちの少なくとも１つに基づいて評価される値である、
ことを特徴とする付記１に記載の出力制御プログラム。
（付記３）
前記所定の種類とは、外字、数字、記号、ひらがな、カタカナ、漢字、アルファベットのいずれかであることを特徴とする付記２に記載の出力制御プログラム。
（付記４）
前記所定のパターンは、
異なる前記マスク化対象文字に対して共通な、所定の記号もしくは画像、または
個々の前記マスク化対象文字に応じて異なる画像であって、当該マスク化対象文字の形状から暗号化処理により得られる暗号化画像
のいずれかであることを特徴とする付記１から３のいずれか１項に記載の出力制御プログラム。
（付記５）
前記出力対象として、データベース内の１つ以上の項目それぞれの文字列が指定され、
前記所定の評価基準は、前記１つ以上の項目それぞれに応じた評価基準であり、
前記出力制御プログラムは、前記選定ステップにおいて前記コンピュータに、前記１つ以上の項目それぞれについて、当該項目に応じた前記評価基準にしたがって評価される前記優先度に基づいて、当該項目の文字列の中から前記非マスク化対象文字を選定させる、
ことを特徴とする付記１から４のいずれか１項に記載の出力制御プログラム。
（付記６）
前記１つ以上の項目のうちの所定の１つの項目に応じた前記評価基準は、
評価対象の文字が前記データベースの当該所定の１つの項目内に出現する頻度が低いほど、前記優先度を高くするという評価基準である
ことを特徴とする付記５に記載の出力制御プログラム。
（付記７）
前記出力制御プログラムは、前記コンピュータに、
マスク対象の項目を指定する入力を受け付ける入力ステップを実行させ、
前記出力対象のうち、前記入力により指定される前記マスク対象の項目に対して、前記優先度取得ステップ、前記選定ステップおよび前記第１の出力制御ステップを実行させ、
前記出力対象のうち前記マスク対象の項目以外の項目の文字列を、マスク化せずに出力するよう制御する第２の出力制御ステップを実行させる、
ことを特徴とする付記５または６に記載の出力制御プログラム。
（付記８）
前記第１の出力制御ステップでは、印刷媒体、電子ファイルまたは表示装置の画面のいずれかへの出力が制御されることを特徴とする付記１から７のいずれか１項に記載の出力制御プログラム。
（付記９）
出力対象として指定された文字列に含まれる各文字について、所定の評価基準にしたがって評価される優先度をそれぞれ取得する優先度取得部と、
前記優先度取得部が取得した前記優先度に基づいて、マスク化せずに出力する非マスク化対象文字を前記文字列の中から選定する選定部と、
前記文字列に含まれる文字のうち、前記選定部が選定した前記非マスク化対象文字はマスク化せずに、かつ前記非マスク化対象文字以外の文字であるマスク化対象文字は所定のパターンでマスク化するように、前記文字列の出力を制御する出力制御部と、
を備えることを特徴とする出力制御装置。
（付記１０）
コンピュータが、
出力対象として指定された文字列に含まれる各文字について、所定の評価基準にしたがって評価される優先度をそれぞれ取得し、
前記優先度に基づいて、マスク化せずに出力する非マスク化対象文字を前記文字列の中から選定し、
前記文字列に含まれる文字のうち、前記非マスク化対象文字はマスク化せずに、かつ前記非マスク化対象文字以外の文字であるマスク化対象文字は所定のパターンでマスク化するように、前記文字列の出力を制御する、
ことを特徴とする出力制御方法。
【符号の説明】
【０２４２】
１０１  検証用帳票
１０２  非マスク化帳票
１０３  全体マスク化帳票
１０４  外字検証用帳票
２００  出力制御システム
２０１  サーバ
２０２  クライアントＰＣ
２０３  プリンタ
２０４  ユーザ管理部
２０５  レベル比較部
２０６  顧客ＤＢ
２０７  ユーザＩＤ管理ＤＢ
２０８  個人情報マスク化管理ＤＢ
２０９  文字スコアＤＢ
２１０  画数ＤＢ
２１１  外字文字コードＤＢ
【図１】
2011065270.tif 000005
【図２】
2011065270.tif 000006
【図３】
2011065270.tif 000007
【図４】
2011065270.tif 000008
【図５】
2011065270.tif 000009
【図６】
2011065270.tif 000010
【図７】
2011065270.tif 000011
【図８】
2011065270.tif 000012
【図９】
2011065270.tif 000013
【図１０】
2011065270.tif 000014
【図１１】
2011065270.tif 000015
【図１２】
2011065270.tif 000016
【図１３】
2011065270.tif 000017
【図１４】
2011065270.tif 000018
【図１５】
2011065270.tif 000019
【図１６】
2011065270.tif 000020
【図１７】
2011065270.tif 000021