情報処理システム
【課題】 印刷文書に限らずディスプレイに表示された文書についても誰向けに表示したものであるかが判明するように表示することができる情報処理システムを提供すること。
【解決手段】 前記個人情報リスト中の各個人に割当てられた個人IDを異なる個人IDに変換するモジュールと、姓と名との間に空白なし、半角の空白を挿入、全角の空白を挿入するモジュールと、郵便番号の数字を半角ないしは全角で表記するモジュールと、住所表記の際に都道府県名を表記ないしは表記しないモジュールと、住所の番地表記の際に丁目、番、号の数字を半角ないしは全角で表記するモジュールなどの個人情報リスト中の情報の表記形式を変換する複数のモジュールを備え、閲覧者IDに応じて、前記各モジュールにより前記個人情報リストを構成する前記各情報の表記形式を異ならせ、閲覧者IDに応じて前記個人情報リストの表記形式が異なるリストを表示または印刷することを備える。
【解決手段】 前記個人情報リスト中の各個人に割当てられた個人IDを異なる個人IDに変換するモジュールと、姓と名との間に空白なし、半角の空白を挿入、全角の空白を挿入するモジュールと、郵便番号の数字を半角ないしは全角で表記するモジュールと、住所表記の際に都道府県名を表記ないしは表記しないモジュールと、住所の番地表記の際に丁目、番、号の数字を半角ないしは全角で表記するモジュールなどの個人情報リスト中の情報の表記形式を変換する複数のモジュールを備え、閲覧者IDに応じて、前記各モジュールにより前記個人情報リストを構成する前記各情報の表記形式を異ならせ、閲覧者IDに応じて前記個人情報リストの表記形式が異なるリストを表示または印刷することを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、顧客情報に代表される個人情報を表示したり、印刷する情報処理システムに係り、特に、どの閲覧者に向けて表示/印刷した個人情報かが特定可能なように、閲覧者に応じて表示または印刷の表記方法を異ならせるようにする情報処理システムに関するものである。
【背景技術】
【0002】
近時において、数千から数百万名にのぼる顧客情報の漏洩事件が続発している。多くの事件は顧客情報へのアクセス権限がある組織内部の閲覧者が、印刷したり外部媒体に保管して名簿業者に売っていると考えられるが、その閲覧者が特定できない場合が多い。
対策の1つとして挙げられるのが、下記の特許文献1にあるように、該当の顧客個人がアクセスキーを設定して閲覧者を制限する方法である。これは閲覧者やその所属グループや権限でアクセス認可を行うアクセス制御方法の一種である。
また、アクセス制御方法と異なる手法が、閲覧情報に透かしを入れる方法である。非特許文献1にあるように、印刷した文字の一部を変更、この変更方法を閲覧者ごとに変えることにより、文書が漏洩した際の閲覧者を特定することができる。
また、印刷物に人目にはわかりにくい方法で、複写禁止や追跡のための情報を埋め込む方法として、赤外線や紫外線を使って検出できるインクを使う下記の特許文献2に記載された法やイエロー色を使う方法が知られている。
これらの方法は、閲覧者を特定する情報を印刷文書に埋め込むのに利用できる。
【0003】
【特許文献1】特開2002−203109号公報
【特許文献2】特開平7−319347号公報
【非特許文献1】日立製作所, 紙に印刷された情報の追跡を可能にする、透かし強度を調節可能な二値画像電子透かし技術を開発, ニュースリリース2003年10月3日, http://www.hitachi.co.jp/New/cnews/031003.html
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、上記技術は印刷文書を対象にしており、電子ファイルやディスプレイに表示された情報に対しては適用できない。外部記憶媒体の大容量化で電子ファイルにも適用する必要があり、現実に事件も発生している。また、デジタルカメラや携帯電話機に付属したデジタルカメラの普及により、ディスプレイに表示された情報を簡単に持出すことができる。よって、印刷文書だけを対象としただけでは、不十分である。
【0005】
本発明の目的は、印刷文書に限らずディスプレイに表示された文書についても誰向けに表示したものであるかが判明するように表示することができる情報処理システムを提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は、個人情報リストを表示ないしは印刷する情報処理システムにおいて、
前記個人情報リスト中の各個人に割当てられた個人IDを異なる個人IDに変換するモジュールと、
姓と名との間に空白なし、半角の空白を挿入、全角の空白を挿入するモジュールと、
郵便番号の数字を半角ないしは全角で表記するモジュールと、
住所表記の際に都道府県名を表記ないしは表記しないモジュールと、
住所の番地表記の際に丁目、番、号の数字を半角ないしは全角で表記するモジュールと、
住所の番地表記の際に丁目、番、号という文字を表記ないしは表記しないモジュールと、
住所の番地表記の際に丁目、番、号という文字を表記しない場合に間の区切り文字を変えるモジュールと、
住所中のアパートの号室の表記の際に号室という文字を表記ないしは表記しないモジュールと、
住所中のアパートの号室の数字を半角ないしは全角で表記するモジュールと、
生年月日を表記する際に、年、月、日という文字を表記ないしは表記しないモジュールと、
生年月日を表記する際に、西暦か和暦かを変えるモジュールと、
生年月日を和暦で表記する際に、元号を大正と昭和と平成か、大と昭と平か、TとSとHかに変えるモジュールの各モジュールのうち複数のモジュールと、
閲覧者IDに応じて、前記各モジュールにより前記個人情報リストを構成する前記各情報の表記形式を異ならせ、閲覧者IDに応じて前記個人情報リストの表記形式が異なるリストを表示または印刷することを備えることを特徴とする。
また、閲覧者IDに応じて、前記個人情報リストに存在しない偽者の個人情報を付加して表示または印刷させる手段をさらに備えることを特徴とする。
【発明の効果】
【0007】
本発明によれば、不正に組織から流出した顧客や住民の個人情報のリストの名前や住所や生年月日の表記の方法から、誰向けに印刷したか、画面に表示したか、表形式のファイルにしたかが判明し、リストを漏洩した不正者を特定することができる。
【発明を実施するための最良の形態】
【0008】
図1は、本発明の対象となる顧客の個人情報を格納している顧客データベースのスキーマを示している。
図1において、101は顧客のIDであり、ここでは数字6桁の形式になっている。
102は顧客の姓、103は顧客の名、104は顧客居住地の郵便番号、105は顧客居住地の都道府県名、106は顧客居住地の市区町村である。本発明では住所のうち都道府県と番地を除いた部分を市区町村と呼ぶ。例えば、「東京都品川区南品川1−2−3」という住所では、「品川区南品川」を市区町村と呼ぶ。
107は顧客の居住地の番地であり、上記例では「1−2−3」に相当する。108は顧客の居住地のアパート名ないしはマンション名、ビル名である。109は顧客の居住地がアパートないしはマンション、ビルの場合、その部屋番号に相当する号室である。
110は顧客の生年月日であり、西暦表示でYYYYMMDD形式の8桁の数字である。
【0009】
図2は、図1のデータベースへのアクセス権限者である閲覧者が図1のデータベースを検索して、結果を表示する様々な形式を示している。
図1に示されていたデータを表示しているが、同じデータについて表示形式を変えて3通り表示している。これは閲覧者IDに応じて同じデータでも異なって表示される例を示しており、本発明の核となるアイデアを示している。
図2において、204は顧客IDを示しているが、図1の顧客データベースに格納されている顧客ID101とは異なって、閲覧者IDにより、本来の顧客IDを異ならせた形式の顧客IDが表示されている。
205は顧客の氏名を示しているが、姓と名の間の幅が異なっている。
201は姓と名を続けて表示している。202では姓と名の間に半角の空白を挿入している。
203では全角の空白を挿入している。他にも任意の幅のスペースを姓と名との間に挿入可能であるが、本実施形態では単純化のために空白なし、半角空白、全角空白の3種類を用いる。これは電子ファイルに格納した場合でも有効である。
206は郵便番号であるが、番号の数字を半角と全角の文字で変えている。文字のフォントを変えれば様々な方法で表示可能であるが、本実施形態では単純化のため全角か半角かの2種類を用いる。
207は住所である。住所の場合には多種の表現が可能である。(1)都道府県名の有無、(2)番地表記の中での「丁目」、「番」、「号」の有無、(3)番地の数字が全角か半角か、(4)番地の丁目、番、号の区切り文字が「−」か「〜」か、(5)マンションやアパートの部屋番号の数字が全角か半角か、(6)生年月日表記の際の西暦が和暦か、年月日を「年」、「月」、「日」で区切るか「/」で区切るか、元号の表記は「昭和」か「昭」か「S」か、を組み合わせることで同じ住所でも様々な表示方法が可能である。
【0010】
図3は、本発明に係る情報処理システムの実施形態を示すシステム構成図である。
図3において、301はデータベース検索部であり、図1に示したスキーマを持つ顧客データベース300を検索するモジュールである。データベース検索は、ネットワークで接続されたデータベースサーバに問合せ文319を送信して検索結果を受信する方法やローカルのファイルを検索する方法など、いくつかの方法があるが、方法は本発明の本質ではないので詳細は記述しない。ただし、データベースのスキーマが図1に示したような構成であることは重要である。
302は閲覧者のIDである。本形態では閲覧者IDは数値で示されると仮定する。
303は閲覧者ID302を元に、表示方法を選択するキーとなる情報を生成するモジュールである。本情報は各表示情報生成部への入力となる。各生成部への入力長は、それぞれ異なる。また、一部キー情報を組み合わせて閲覧者を特定できることが必要である。本実施形態では、顧客ID生成部304への入力は閲覧者IDをそのまま利用し、氏名生成部305は0〜2の値、郵便番号生成部306は0〜1の値、住所名生成部307は0〜1の値、番地生成部308は0〜4の値、アパート名生成部309は0〜1の値、生年月日生成部310は0〜7の値をとる。このキー生成方法については図11で説明する。
304は顧客ID生成部である。本モジュールの詳細は図4で説明する。
305は氏名生成部である。本モジュールの詳細は図5で説明する。
306は郵便番号生成部である。本モジュールの詳細は図6で説明する。
307は住所名生成部である。本モジュールの詳細は図7で説明する。
308は番地生成部である。本モジュールの詳細は図8で説明する。
309はアパート名生成部である。本モジュールの詳細は図9で説明する。
310は生年月日生成部である。本モジュールの詳細は図10で説明する。
311は偽顧客ID生成部である。本モジュールの詳細は図17で説明する。
312は偽氏名生成部である。本モジュールの詳細は図18で説明する。
313は偽住所生成部である。本モジュールの詳細は図19で説明する。
314は偽アパート生成部である。本モジュールの詳細は図20で説明する。
315は偽生年月日生成部である。本モジュールの詳細は図21で説明する。
316は個別に生成された顧客ID、氏名、郵便番号、住所名、番地、アパート名、生年月日をマージして一人分の個人情報として生成するマージ部である。
317は個別に生成された偽顧客ID、偽氏名、偽住所、偽アパート名、偽生年月日をマージして一人分の個人情報として生成するマージ部である。
318は検索内容に合わせて偽個人情報を生成する元となる情報を生成する偽データ生成部である。本モジュールの詳細は図12で説明する。
319は閲覧者が検索したい条件を含んだ顧客データベースへ300の問合せ文である。
320はマージ部316と偽データマージ部317で生成した個人情報をマージ、最終的に画面に表示したり、印刷する元となるデータを生成する出力データ生成部である。
321はシステムの共通鍵であり、顧客ID生成に使われる。
【0011】
図22は、閲覧者が顧客の基本情報を検索する際に、図2で説明したように、正規データに対してはその表記方法を閲覧者IDに応じて変え、さらに検索にあった偽データを生成することで、閲覧者を特定できる個人情報リスト生成処理の全体を示したフローチャートである。本説明の後、各モジュールの詳細について説明する。
まず、ステップ2201では、閲覧者が問合せ文319を入力する。入力方法は本発明の範囲外であるので省略する。
ステップ2202では、データベース検索部301が問合せ文319をデータベースサーバに送信し、データベースサーバが顧客データベース300から検索した結果を受け取る。顧客データベース300のデータ構成は図1に示した通りであり、姓名や住所が細かく属性に分割されている。
検索した結果は一般に複数の個人情報が含まれているが、データベース検索部301はそれぞれの個人情報をこのような属性に分割した形で受け取る。受け取った情報は1件ずつ、属性に応じて各種生成部304〜310に送る。
具体的には、顧客ID101は顧客ID生成部304に、姓102と名103は氏名生成部305に、郵便番号104は郵便番号生成部306に、都道府県105と市区町村106は住所名生成部307に、番地107は番地生成部308に、アパート名108と号室109はアパート名生成部309に、生年月日110は生年月日生成部310に送る。
また、データベース検索部301は検索結果の個人情報の件数を偽データマージ部317に送る。
【0012】
ステップ2203では、偽データ生成部318が問合せ文319を解析、問合せ文319に合わせた偽データを生成する。この偽データは偽データ生成部318に含まれる図13の偽姓データベース、図14の偽名データベース、図15の偽住所データベース、図16の偽アパート名データベースの格納情報に基づいて生成される。生成の方法は、図12を使って後に示す。
生成した偽データは、各種生成部に送られる。具体的には、偽の姓と偽の名は偽氏名生成部312に、偽住所は偽住所生成部313に、偽アパート名は偽アパート名生成部314に送る。
ステップ2204では、閲覧者ID302を元に閲覧者キー生成部303が閲覧者キーを生成し、各種生成部に送る。生成方法は図11を用いて後述する。
ステップ2205では、各種生成部がこれまで説明した検索結果の属性や偽データ、閲覧者キーを元に、個人情報の属性の一部を生成する。顧客ID生成部304の生成方法は図4を用いて後述する。氏名生成部305の生成方法は図5を用いて後述する。郵便番号生成部306の生成方法は図6を用いて後述する。住所名生成部307の生成方法は図7を用いて後述する。番地生成部308の生成方法は図8を用いて後述する。アパート名生成部309の生成方法は図9を用いて後述する。生年月日生成部310の生成方法は図10用いて後述する。
偽顧客ID生成部311の生成方法は図17を用いて後述する。偽氏名生成部312の生成方法は図18を用いて後述する。偽住所生成部313の生成方法は図19を用いて後述する。偽アパート名生成部314の生成方法は図20を用いて後述する。偽生年月日生成部315の生成方法は図21を用いて後述する。
【0013】
ステップ2206では、顧客ID生成部304と氏名生成部305と郵便番号生成部306と住所名生成部307と番地生成部308とアパート名生成部309と生年月日生成部310の生成結果を、マージ部316が検索結果の各個人情報に対応する属性を組合わせて1件の個人情報として生成、出力データ生成部に320に送る。対応するというのは、ステップ2202で述べた1件の個人情報を複数の属性に分割して、それぞれの生成部に入力、得られた生成データをマージして1件の個人情報にするという意味である。これにより、1件の個人情報の内容は変わらないが、表記方法が変わる。ステップ2202で述べた通り、検索結果の個人情報は一般に複数件数あるので、件数と同じ回数マージして、同じ件数が出力データ生成部320に送られる。
ステップ2207では、偽顧客ID生成部311と偽氏名生成部312と偽住所生成部313と偽アパート名生成部314と偽生年月日生成部315の生成結果を偽データマージ部317がマージして出力データ生成部320に送る。マージの方法はステップ2206で示したマージ部316の方法とは異なる。先の5つの生成部からは、一般に異なる個数の属性のデータが出力される。これは偽データ生成318で問合せ文319に応じた偽データを生成する場合、属性によって生成されるデータ数が異なるからである。
【0014】
例えば、偽姓は8件、偽名は1件、偽住所は1345件、偽アパート名が2件、偽生年月日が5件になり得る。偽データマージ部317は各偽の属性データをランダムに組み合わせることで偽の個人情報を出力する。原理的には偽姓、偽名、偽住所、偽アパート名、偽生年月日のそれぞれの件数を組み合わせた数の件数だけ個人情報を生成できる。しかし、本実施形態ではステップ2202にてデータベース検索部301から得られた正個人情報の検索結果件数に応じて偽データマージ部317が出力する件数を調整する。
すなわち、正個人情報にどの程度の割合で偽個人情報を含ませるか予め決めておき、その比率に応じてランダムに組み合わせる数を決める。割合の決め方は、固定であったり、件数に応じて変わったり、閲覧者によって変える場合も考えられるが、本実施形態では固定として、その割合を超えない範囲で出力する。
ステップ2208では、出力データ生成部320が、マージ部316が出力した正データと偽データマージ部317が出力した偽データとをランダムにマージ、正個人情報と偽個人情報が入り乱れるように出力する。
【0015】
以下は、各モジュールの詳細について説明する。
図12は、偽データ生成部318の偽データ生成手順を示すフローチャートである。
図12において、ステップ1201では、問合せ文319にマッチする姓を図13の偽姓データベースから検索する。マッチする姓1302は複数あるかもしれない。本実施の形態の偽姓データベースは1024個の姓1302と対応するキー1301からなるデータベースであり、マッチした姓1302をキー1301と一緒に出力、偽氏名生成部312に送る。なお、偽のデータの件数は1024件に限る必要はない。
ステップ1202では、問合せ文319にマッチする名を図14の偽名データベースから検索する。マッチする名1402は複数あるかもしれない。本実施の形態の偽名データベースは1024個の名1402と対応するキー1401からなるデータベースであり、マッチした名1402をキー1401と一緒に出力、偽氏名生成部312に送る。なお、偽のデータの件数は1024件に限る必要はない。
ステップ1203では、問合せ文319にマッチする住所を図15の偽住所データベースから検索する。マッチする住所1502は複数あるかもしれない。本実施の形態の偽住所データベースは32766個の住所1502と番地数1503と対応するキー1501からなるデータベースであり、マッチした住所1502を番地数1503とキー1501と一緒に出力、偽住所生成部313に送る。
ここで、図15の番地数1503とは、住所1502に続く丁目、番、号などの番地の個数である。例えば、東京都品川区東品川という住所1502では、丁目と番と号が使われるので番地数1503は3になる。
【0016】
ステップ1204では、問合せ文319にマッチするアパート名を図16の偽アパート名データベースから検索する。マッチするアパート名1602は複数あるかもしれない。本実施の形態の偽アパート名データベースは1024個のエントリがあるが、半数はNULLでブランクになっている。これは、アパートやマンションではなく戸建て住宅を示している。アパート名1602と対応するキー1601からなるデータベースであり、マッチしたアパート名1602をキー1601と一緒に出力、偽アパート名生成部314に送る。なお、偽のデータの件数は1024件に限る必要はない。
【0017】
図11は、閲覧者キー生成部303の閲覧者IDキー生成方法の処理手順を示すフローチャートである。
図11において、まず、閲覧者ID302をビット列とみなし、そのハッシュ値を計算する。ハッシュ値の計算にはSHA−1などの標準のハッシュ関数を用いるので詳細については触れないが、ここではハッシュ値は50ビット程度と仮定する。
次に、ステップ1102にて、ステップ1101におけるハッシュ値の第0ビットから第1ビットの2ビットを0〜3の値とみて、0なら閲覧者ID第1キーを0、1なら1、2ないし3なら2とし、氏名生成部305と偽氏名生成部312に送る。
次に、ステップ1103にて、ステップ1101のハッシュ値の第2ビットを0〜1の値とみて、閲覧者ID第2キーとし、郵便番号生成部306と番地生成部308とアパート名生成部309と生年月日生成部310と偽住所生成部313と偽アパート名生成部314と偽生年月日生成部315に送る。
続く、1104にて、ステップ1101のハッシュ値の第3ビットを0〜1の値とみて、閲覧者ID第3キーとし、住所名生成部307と偽住所生成部313に送る。
続くステップ1105にて、ステップ1101のハッシュ値の第4ビットから第6ビットの3ビットを0〜7の値とみて、0なら閲覧者ID第4キーを0、1なら1、2ないし3なら2、4ないし5なら3、6ないし7なら4とし、番地生成部308と偽住所生成部313に送る。
次に、ステップ1106にて、ステップ1101のハッシュ値の第7ビットを0〜1の値とみて、閲覧者ID第5キーとし、アパート名生成部309と偽アパート名生成部314に送る。
次に、ステップ1107にて、ステップ1101のハッシュ値の第8ビットから第10ビットの3ビットを0〜7の値とみて、閲覧者ID第6キーとし、生年月日生成部310と偽生年月日生成部315に送る。
次に、ステップ1108にて、ステップ1101のハッシュ値の第11ビットから第12ビットの2ビットを0〜3の値とみて、閲覧者ID第7キーとし、偽氏名生成部312に送る。
次に、ステップ1109にて、ステップ1101のハッシュ値の第13ビットから第14ビットの2ビットを0〜3の値とみて、閲覧者ID第8キーとし、偽氏名生成部312に送る。
次に、ステップ1110にて、ステップ1101のハッシュ値の第15ビットから第16ビットの2ビットを0〜3の値とみて、閲覧者ID第9キーとし、偽住所生成部313に送る。
次に、ステップ1111にて、ステップ1101のハッシュ値の第17ビットから第18ビットの2ビットを0〜3の値とみて、閲覧者ID第10キーとし、偽住所生成部313に送る。
次に、ステップ1112にて、ステップ1101のハッシュ値の第19ビットから第20ビットの2ビットを0〜3の値とみて、閲覧者ID第11キーとし、偽アパート名生成部314に送る。
次に、ステップ1113にて、ステップ1101のハッシュ値の第21ビットから第25ビットの5ビットを0〜31の値とみて、閲覧者ID第12キーとし、偽アパート名生成部314に送る。
次に、ステップ1114にて、ステップ1101のハッシュ値の第26ビットから第30ビットの5ビットを0〜31の値とみて、閲覧者ID第13キーとし、偽生年月日生成部315に送る。
【0018】
図4は、顧客ID生成部304の処理手順を示すフローチャートである。
図4において、まずステップ401にて、入力データとしてデータベース検索部301から受けた顧客ID101と閲覧者IDをビット列として連結する。
次に、ステップ402にて、これをシステムの共通鍵321で暗号化する。暗号化の方法は本発明の本質ではないので省略する。
次に、ステップ403にて、前記ステップ402にて生成した暗号化データを数字列に変換し、顧客IDとして出力する。
【0019】
図5は、氏名生成部305の処理手順を示すフローチャートである。
図5において、まずステップ501にて、入力データとしてデータベース検索部301から姓102と名103を、閲覧者キー生成部303から閲覧者ID第1キーを受け取る。第1キーの値が0ならステップ502に、1ならステップ503に、2ならステップ504に分岐する。
ステップ502では、ステップ501にて受けた姓102と名103を空白文字を入れることなく出力する。
ステップ503では、ステップ501にて受けた姓102と名103を半角空白文字を入れて出力する。
ステップ504では、ステップ501にて受けた姓102と名103を全角空白文字を入れて出力する。
【0020】
図6は、郵便番号生成部306の処理手順を示すフローチャートである。
図6において、まずステップ601にて、入力データとしてデータベース検索部301から郵便番号104を、閲覧者キー生成部303から閲覧者ID第2キーを受け取る。第2キーの値が0ならステップ602に、1ならステップ603に分岐する。
ステップ602では、ステップ601にて受けた郵便番号104を半角文字で出力する。
ステップ603では、ステップ601にて受けた郵便番号104を全角文字で出力する。
【0021】
図7は、所名生成部307の処理手順を示すフローチャートである。
図7において、まずステップ701にて、入力データとしてデータベース検索部301から都道府県105と市区町村106を、閲覧者キー生成部303から閲覧者ID第3キーを受け取る。第3キーの値が0ならステップ702に、1ならステップ703に分岐する。
ステップ702では、ステップ701にて受けた都道府県105と市区町村106を出力する。
ステップ703では、ステップ701にて受けた市区町村106のみを出力する。
【0022】
図8は、番地生成部308の処理手順を示すフローチャートである。
図8において、まずステップ801にて、入力データとしてデータベース検索部301から番地107を、閲覧者キー生成部303から閲覧者ID第2キーと第4キーを受け取る。第2キーの値が0で第4キーの値が0ならステップ802に、0と1ならステップ803に、0と2ならステップ804に、0と3ならステップ805に、0と4ならステップ806に、1と0ならステップ807に、1と1ならステップ808に、1と2ならステップ809に、1と3ならステップ810に、1と4ならステップ811に分岐する。
ステップ802では、ステップ801にて受けた番地を数字は半角、「丁目」、「番」、「号」を使って出力する。例えば「1−2−3」を「1丁目2番3号」と出力する。
ステップ803では、ステップ801にて受けた番地を数字は半角、「丁目」を入れ、番と号は半角の「‐」で区切って出力する。例えば「1−2−3」を「1丁目2‐3」と出力する。
ステップ804では、ステップ801にて受けた番地を数字は半角、「丁目」を入れ、番と号は半角の「〜」で区切って出力する。例えば「1−2−3」を「1丁目2〜3」と出力する。
ステップ805では、ステップ801にて受けた番地を数字は半角、丁目と番と号は半角の「‐」で区切って出力する。例えば「1−2−3」を「1‐2‐3」と出力する。
ステップ806では、ステップ801にて受けた番地を数字は半角、丁目と番と号は半角の「〜」で区切って出力する。例えば「1−2−3」を「1〜2〜3」と出力する。
ステップ807では、ステップ801にて受けた番地を数字は全角、「丁目」、「番」、「号」を使って出力する。例えば「1−2−3」を「1丁目2番3号」と出力する。
ステップ808では、ステップ801にて受けた番地を数字は全角、「丁目」を入れ、番と号は全角の「―」で区切って出力する。例えば「1−2−3」を「1丁目2―3」と出力する。
ステップ809では、ステップ801にて受けた番地を数字は全角、「丁目」を入れ、番と号は全角の「〜」で区切って出力する。例えば「1−2−3」を「1丁目2〜3」と出力する。
ステップ810では、801にて受けた番地を数字は全角、丁目と番と号は全角の「―」で区切って出力する。例えば「1−2−3」を「1―2―3」と出力する。
ステップ811では、ステップ801にて受けた番地を数字は全角、丁目と番と号は全角の「〜」で区切って出力する。例えば「1−2−3」を「1〜2〜3」と出力する。
【0023】
図9は、アパート名生成部309の処理手順を示すフローチャートである。
図9において、ステップ901にて、入力データとしてデータベース検索部301からアパート名108と号室109を、閲覧者キー生成部303から閲覧者ID第2キーと第5キーを受け取る。第2キーの値が0で第5キーの値が0ならステップ902に、0と1ならステップ903に、1と0ならステップ904に、1と1ならステップ905に分岐する。
ステップ902では、ステップ901にて受けたアパート名と号室番号を英数字は半角、「号室」を付けて出力する。例えば「品川シーサイドツインタワーのA3904号室」を「品川シーサイドツインタワーA3904号室」と出力する。
ステップ903では、ステップ901にて受けたアパート名と号室番号を英数字は半角、「号室」を付けずに出力する。例えば「品川シーサイドツインタワーのA3904号室」を「品川シーサイドツインタワーA3904」と出力する。
ステップ904では、ステップ901にて受けたアパート名と号室番号を英数字は全角、「号室」を付けて出力する。例えば「品川シーサイドツインタワーのA3904号室」を「品川シーサイドツインタワーA3904号室」と出力する。
ステップ905では、ステップ901にて受けたアパート名と号室番号を英数字は全角、「号室」を付けずに出力する。例えば「品川シーサイドツインタワーのA3904号室」を「品川シーサイドツインタワーA3904」と出力する。
【0024】
図10は、生年月日生成部310の処理手順を示すフローチャートである。
図10において、ステップ1001にて、入力データとしてデータベース検索部301から生年月日110を、閲覧者キー生成部303から閲覧者ID第2キーと第6キーを受け取る。第2キーの値が0で第6キーの値が0ならステップ1002に、0と1ならステップ1003に、0と2ならステップ1004に、0と3ならステップ1005に、0と4ならステップ1006に、0と5ならステップ1007に、0と6ならステップ1008に、0と7ならステップ1009に、1と0ならステップ1010に、1と1ならステップ1011に、1と2ならステップ1012に、1と3ならステップ1013に、1と4ならステップ1014に、1と5ならステップ1015に、1と6ならステップ1016に、1と7ならステップ1017に分岐する。
ステップ1002では、数字は半角、西暦で、年と月と日は「/」で区切って出力する。例えば、「19570123」は「1957/1/23」と出力する。
ステップ1003では、数字は半角、西暦で、年と月と日は「年」と「月」と「日」で区切って出力する。例えば、「19570123」は「1957年1月23日」と出力する。
ステップ1004では、数字は半角、和暦で、元号は「大正」、「昭和」、「平成」を付け、年と月と日は「/」で区切って出力する。例えば、「19570123」は「昭和32/1/23」と出力する。
ステップ1005では、数字は半角、和暦で、元号は「大正」、「昭和」、「平成」を付け、年と月と日は「年」と「月」と「日」で区切って出力する。例えば、「19570123」は「昭和32年1月23日」と出力する。
ステップ1006では、数字は半角、和暦で、元号は「大」、「昭」、「平」を付け、年と月と日は「/」で区切って出力する。例えば、「19570123」は「昭32/1/23」と出力する。
ステップ1007では、数字は半角、和暦で、元号は「大」、「昭」、「平」を付け、年と月と日は「年」と「月」と「日」で区切って出力する。例えば、「19570123」は「昭32年1月23日」と出力する。
ステップ1008では、数字は半角、和暦で、元号は「T」、「S」、「H」を付け、年と月と日は「/」で区切って出力する。例えば、「19570123」は「S32/1/23」と出力する。
ステップ1009では、数字は半角、和暦で、元号は「T」、「S」、「H」を付け、年と月と日は「年」と「月」と「日」で区切って出力する。例えば、「19570123」は「S32年1月23日」と出力する。
ステップ1010では、数字は全角、西暦で、年と月と日は「/」で区切って出力する。例えば、「19570123」は「1957/1/23」と出力する。
ステップ1011では、数字は全角、西暦で、年と月と日は「年」と「月」と「日」で区切って出力する。例えば、「19570123」は「1957年1月23日」と出力する。
ステップ1012では、数字は全角、和暦で、元号は「大正」、「昭和」、「平成」を付け、年と月と日は「/」で区切って出力する。例えば、「19570123」は「昭和32/1/23」と出力する。
ステップ1013では、数字は全角、和暦で、元号は「大正」、「昭和」、「平成」を付け、年と月と日は「年」と「月」と「日」で区切って出力する。例えば、「19570123」は「昭和32年1月23日」と出力する。
ステップ1014では、数字は全角、和暦で、元号は「大」、「昭」、「平」を付け、年と月と日は「/」で区切って出力する。例えば、「19570123」は「昭32/1/23」と出力する。
ステップ1015では、数字は全角、和暦で、元号は「大」、「昭」、「平」を付け、年と月と日は「年」と「月」と「日」で区切って出力する。例えば、「19570123」は「昭32年1月23日」と出力する。
ステップ1016では、数字は全角、和暦で、元号は「T」、「S」、「H」を付け、年と月と日は「/」で区切って出力する。例えば、「19570123」は「S32/1/23」と出力する。
ステップ1017では、数字は全角、和暦で、元号は「T」、「S」、「H」を付け、年と月と日は「年」と「月」と「日」で区切って出力する。例えば、「19570123」は「S32年1月23日」と出力する。
【0025】
図17は、偽顧客ID生成部311の処理手順を示すフローチャートである。
図17において、まず、ステップ1701にて、乱数を生成、これと閲覧者IDをビット列として連結する。
次に、ステップ1702にて、これをシステムの共通鍵321で暗号化する。暗号化の方法は本発明の本質ではないので省略する。
続くステップ1703にて、前記ステップ1702にて生成した暗号化データを数字列に変換、顧客IDとして出力する。
なお、偽顧客IDは、偽データマージ部317で出力する偽の個人情報の件数と同数生成する。
【0026】
図18は、偽氏名生成部312の処理手順を示すフローチャートである。
図18において、ステップ1801にて、入力データとして偽データ生成部318から偽の姓1302とそのキー1301を、閲覧者キー生成部303から閲覧者ID第7キーを受け取る。ここで図12のステップ1201に示したように、偽の姓は複数あるかもしれないので、キー1301を2進数表現したときの下位2ビットと閲覧者第7キーの値が一致した偽の姓を選択する。
次に、ステップ1802にて、入力データとして偽データ生成部318から偽の名1402とそのキー1401を、閲覧者キー生成部303から閲覧者ID第8キーを受け取る。ここで図12のステップ1202に示したように、偽の名は複数あるかもしれないので、キー1401を2進数表現したときの下位2ビットと閲覧者第8キーの値が一致した偽の姓を選択する。
次に、ステップ2003にて、閲覧者キー生成部303から閲覧者ID第1キーを受ける。ステップ1801で得た偽の姓とステップ1802で得た偽の名を組み合わせて、姓と名のペアを得る。このペアの姓と名を閲覧者ID第1キーが0なら空白なしで、1なら半角空白を入れて、2なら全角空白を入れて出力する。
なお、姓と名の組み合わせの方法は限定しない。あらゆる組み合わせをとる方法や1番目の姓と1番目の名を組み合わせ、2番目の姓と2番目の名を組み合わせるなどの方法がある。
【0027】
図19は、偽住所生成部313の処理手順を示すフローチャートである。
まず、ステップ1901にて、入力データとして偽データ生成部318から偽の住所名1502とそのキー1501と番地数1503を、閲覧者キー生成部303から閲覧者ID第9キーを受け取る。ここで図12のステップ1203に示したように、偽の住所名は複数あるかもしれないので、キー1501を2進数表現したときの下位2ビットと閲覧者第9キーの値が一致した偽の住所名を選択する。
次に、ステップ1902にて、入力データとして閲覧者キー生成部303から閲覧者ID第2キーと同第3キーと第4キーと第10キーを受け取る。2101で選択した住所ごとに、足して32で割った余りが閲覧者ID第10キーに等しくなる番地個数の乱数を生成して、出力する。ここで、郵便番号、都道府県名、番地の出力方法は、図6、図7、図8で説明したものに従う。
【0028】
図20は、偽アパート名生成部314の処理手順を示すフローチャートである。
まず、ステップ2001にて、入力データとして偽データ生成部318から偽のアパート名1602とそのキー1601とを、閲覧者キー生成部303から閲覧者ID第11キーを受け取る。
ここで図12のステップ1204に示したように、偽のアパート名は複数あるかもしれないので、キー1801を2進数表現したときの下位2ビットと閲覧者ID第11キーの値が一致した偽のアパート名を選択する。
次に、ステップ2002にて、入力データとして閲覧者キー生成部303から閲覧者ID第2キーと同第5キーと同第12キーを受け取る。ステップ2001で選択したアパート名ごとに、32で割った余りが閲覧者ID第12キーに等しくなる乱数を号室の番号として生成して、アパートと共に出力する。ここで、アパート名がNULLならNULLと出力する。ここで、号室の出力方法は、図9に従う。
【0029】
図21は、偽生年月日生成部315の処理手順を示すフローチャートである。
図21において、ステップ2101にて、閲覧者キー生成部303から閲覧者ID第13キーを受け取る。年と月と日のあたる乱数を生成する。ここで3つの数値の和を32で割った余りが閲覧者ID第13キーと同じになるように生成する。生成する個数は偽データマージ部317で出力する偽の個人情報の件数と同数生成する。
続くステップ2102にて、閲覧者キー生成部303から閲覧者ID第2キーと同6キーを受け取る。2301で生成した偽の生年月日を図10に従って出力する。
【0030】
以上、閲覧者ID302に基づいて個人情報の表記形式の変え方の形態を示した。続いて、個人情報の表記形式から閲覧者IDを得る方法について図23のフローチャートを用いて説明する。
図23において、ステップ2301にて、個人情報リストに顧客IDがあれば、これをシステムの共通鍵321で復号する。復号した結果は、図4ないしは図17に説明たとおり、顧客ID101ないしは乱数と閲覧者ID302を連結したビット列であるから、閲覧者IDがわかり、本処理を終える。必要なら個人情報リストにある全ての顧客IDを復号して、閲覧者IDをそれぞれ確かめても良い。顧客IDがない場合には、ステップ2302に進む。
ステップ2302にて、表記方法から閲覧者IDのキーを得る。図5で説明したように姓と名の間の空白から第1キーが、数字表記が半角か全角かで第2キーが、図7で示したように住所の都道府県の有無で第3キーが、図8で示したように番地の表記方法で第4キーが、図9で示したようにアパート表記の「号室」の有無で第5キーが、図10で示したように生年月日の表記で第6キーがわかる。全ての閲覧者IDのハッシュ値を計算、キーが一致する閲覧者IDを絞ることができる。ここで一つの閲覧者IDに絞れれば、本処理を終える。
ステップ2303にて、個人情報リストから偽の個人情報を選び出す。偽か否かはデータベースと付き合わせることでわかる。図18のステップ1801で説明したように偽の姓から第7キーが、またステップ1802に示ししたように偽の名から第8キーが、さらに図19のステップ1901で説明したように偽の住所名から第9キーが、ステップ1902に示したように番地の和の32で割った余りから第10キーが、図20のステップ2001に示したように偽のアパート名から第11キーが、ステップ2002に示したようにアパートの偽の号室から第12キーが、図21のステップ2101に示したように偽の生年月日から第13キーがわかる。これら新に判明した閲覧者IDキーからさらに閲覧者IDを絞ることができる。
【0031】
(その他の実施形態のその1)
先の実施の形態では電話番号は含めなかったが、電話番号の表記方法を変えて閲覧者情報を埋め込むことも可能である。例えば、「012−345−6789」という電話番号に対して、「012−345−6789」、「012(345)6789」、「012―345―6789」、「012(345)6789」といった表記方法がある。実施の形態としては、1ビットの閲覧者IDキーをもう1つ増やして、閲覧者ID第2キーの値と本キーの値に応じて、上記4つの表記方法を使えばよい。
偽データの生成方法については、図15の偽住所データベースのフィールドにもう1つ電話の市外局番と局番(上記の例で言えば012−345)のフィールドを追加して、図19のステップ1901において住所と一緒に市外局番と局番を選択する。末尾4桁(上記の例で言えば6789)については、0から9999の値をとる閲覧者IDキーを新たに設けて、このキーをそのまま末尾4桁にする方法や0から9の値をとる閲覧者IDキーを設けて、4桁の数の和がこのキーになるようにランダムに0から9999の値を生成する方法がある。
【0032】
(その他の実施形態その2)
先の実施の形態では、閲覧者IDが決まると、表記方法は各個人情報によらず、全ての個人情報について1つの表記方法を用いていたが、これに限らず、次のようにしてもよい。
すなわち、閲覧者IDキーを生成する際に閲覧者ID302だけからキーを生成するのではなく、顧客ID101を含めて閲覧者IDキーを生成する。具体的には、図11のステップ1101において、閲覧者キー生成部303がデータベース検索部301から顧客IDを受取り、顧客IDと閲覧者IDを連結してハッシュ値を生成する。各生成部が1件の個人情報を生成する際に、該当する個人情報ごとに閲覧者IDキーを受取り、このキーに応じた表記方法に従って個人情報を出力する。
【図面の簡単な説明】
【0033】
【図1】本発明に使用する個人情報データベースのスキーマ例を示す図である。
【図2】表記が異なる個人情報の例を示す図である。
【図3】本発明に係る情報処理システムの実施形態を示すシステム構成図である。
【図4】顧客ID生成部の処理手順を示すフローチャートである。
【図5】氏名生成部の処理手順を示すフローチャートである。
【図6】郵便番号生成部の処理手順を示すフローチャートである。
【図7】住所名生成部の処理手順を示すフローチャートである。
【図8】番地生成部の処理手順を示すフローチャートである。
【図9】アパート名生成部の処理手順を示すフローチャートである。
【図10】生年月日生成部の処理手順を示すフローチャートである。
【図11】閲覧者キー生成部の処理手順を示すフローチャートである。
【図12】偽データ生成部の処理手順を示すフローチャートである。
【図13】偽姓データベースの格納データ例を示す図である。
【図14】偽名データベースの格納データ例を示す図である。
【図15】偽住所データベースの格納データ例を示す図である。
【図16】偽アパート名データベースの格納データ例を示す図である。
【図17】偽顧客ID生成部の処理手順を示すフローチャートである。
【図18】偽氏名生成部の処理手順を示すフローチャートである。
【図19】偽住所生成部の処理手順を示すフローチャートである。
【図20】偽アパート名生成部の処理手順を示すフローチャートである。
【図21】偽生年月日生成部の処理手順を示すフローチャートである。
【図22】全体の処理手順を示すフローチャートである。
【図23】個人情報の表記形式から閲覧者IDを特定する際の処理手順を示すフローチャートである。
【符号の説明】
【0034】
301…データベース検索部、302…閲覧者ID、303…閲覧者キー生成部、304…顧客ID生成部、305…氏名生成部、306…郵便番号生成部、307…住所名生成部、308…番地生成部、309…アパート名生成部、310…生年月日生成部、311…偽顧客ID生成部、312…偽氏名生成部、313…偽住所生成部、314…偽アパート名生成部、315…偽生年月日生成部、316…マージ部、317…偽データマージ部、318…偽データ生成部、319…問合せ文、320…出力データ生成、321…共通鍵。
【技術分野】
【0001】
本発明は、顧客情報に代表される個人情報を表示したり、印刷する情報処理システムに係り、特に、どの閲覧者に向けて表示/印刷した個人情報かが特定可能なように、閲覧者に応じて表示または印刷の表記方法を異ならせるようにする情報処理システムに関するものである。
【背景技術】
【0002】
近時において、数千から数百万名にのぼる顧客情報の漏洩事件が続発している。多くの事件は顧客情報へのアクセス権限がある組織内部の閲覧者が、印刷したり外部媒体に保管して名簿業者に売っていると考えられるが、その閲覧者が特定できない場合が多い。
対策の1つとして挙げられるのが、下記の特許文献1にあるように、該当の顧客個人がアクセスキーを設定して閲覧者を制限する方法である。これは閲覧者やその所属グループや権限でアクセス認可を行うアクセス制御方法の一種である。
また、アクセス制御方法と異なる手法が、閲覧情報に透かしを入れる方法である。非特許文献1にあるように、印刷した文字の一部を変更、この変更方法を閲覧者ごとに変えることにより、文書が漏洩した際の閲覧者を特定することができる。
また、印刷物に人目にはわかりにくい方法で、複写禁止や追跡のための情報を埋め込む方法として、赤外線や紫外線を使って検出できるインクを使う下記の特許文献2に記載された法やイエロー色を使う方法が知られている。
これらの方法は、閲覧者を特定する情報を印刷文書に埋め込むのに利用できる。
【0003】
【特許文献1】特開2002−203109号公報
【特許文献2】特開平7−319347号公報
【非特許文献1】日立製作所, 紙に印刷された情報の追跡を可能にする、透かし強度を調節可能な二値画像電子透かし技術を開発, ニュースリリース2003年10月3日, http://www.hitachi.co.jp/New/cnews/031003.html
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、上記技術は印刷文書を対象にしており、電子ファイルやディスプレイに表示された情報に対しては適用できない。外部記憶媒体の大容量化で電子ファイルにも適用する必要があり、現実に事件も発生している。また、デジタルカメラや携帯電話機に付属したデジタルカメラの普及により、ディスプレイに表示された情報を簡単に持出すことができる。よって、印刷文書だけを対象としただけでは、不十分である。
【0005】
本発明の目的は、印刷文書に限らずディスプレイに表示された文書についても誰向けに表示したものであるかが判明するように表示することができる情報処理システムを提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は、個人情報リストを表示ないしは印刷する情報処理システムにおいて、
前記個人情報リスト中の各個人に割当てられた個人IDを異なる個人IDに変換するモジュールと、
姓と名との間に空白なし、半角の空白を挿入、全角の空白を挿入するモジュールと、
郵便番号の数字を半角ないしは全角で表記するモジュールと、
住所表記の際に都道府県名を表記ないしは表記しないモジュールと、
住所の番地表記の際に丁目、番、号の数字を半角ないしは全角で表記するモジュールと、
住所の番地表記の際に丁目、番、号という文字を表記ないしは表記しないモジュールと、
住所の番地表記の際に丁目、番、号という文字を表記しない場合に間の区切り文字を変えるモジュールと、
住所中のアパートの号室の表記の際に号室という文字を表記ないしは表記しないモジュールと、
住所中のアパートの号室の数字を半角ないしは全角で表記するモジュールと、
生年月日を表記する際に、年、月、日という文字を表記ないしは表記しないモジュールと、
生年月日を表記する際に、西暦か和暦かを変えるモジュールと、
生年月日を和暦で表記する際に、元号を大正と昭和と平成か、大と昭と平か、TとSとHかに変えるモジュールの各モジュールのうち複数のモジュールと、
閲覧者IDに応じて、前記各モジュールにより前記個人情報リストを構成する前記各情報の表記形式を異ならせ、閲覧者IDに応じて前記個人情報リストの表記形式が異なるリストを表示または印刷することを備えることを特徴とする。
また、閲覧者IDに応じて、前記個人情報リストに存在しない偽者の個人情報を付加して表示または印刷させる手段をさらに備えることを特徴とする。
【発明の効果】
【0007】
本発明によれば、不正に組織から流出した顧客や住民の個人情報のリストの名前や住所や生年月日の表記の方法から、誰向けに印刷したか、画面に表示したか、表形式のファイルにしたかが判明し、リストを漏洩した不正者を特定することができる。
【発明を実施するための最良の形態】
【0008】
図1は、本発明の対象となる顧客の個人情報を格納している顧客データベースのスキーマを示している。
図1において、101は顧客のIDであり、ここでは数字6桁の形式になっている。
102は顧客の姓、103は顧客の名、104は顧客居住地の郵便番号、105は顧客居住地の都道府県名、106は顧客居住地の市区町村である。本発明では住所のうち都道府県と番地を除いた部分を市区町村と呼ぶ。例えば、「東京都品川区南品川1−2−3」という住所では、「品川区南品川」を市区町村と呼ぶ。
107は顧客の居住地の番地であり、上記例では「1−2−3」に相当する。108は顧客の居住地のアパート名ないしはマンション名、ビル名である。109は顧客の居住地がアパートないしはマンション、ビルの場合、その部屋番号に相当する号室である。
110は顧客の生年月日であり、西暦表示でYYYYMMDD形式の8桁の数字である。
【0009】
図2は、図1のデータベースへのアクセス権限者である閲覧者が図1のデータベースを検索して、結果を表示する様々な形式を示している。
図1に示されていたデータを表示しているが、同じデータについて表示形式を変えて3通り表示している。これは閲覧者IDに応じて同じデータでも異なって表示される例を示しており、本発明の核となるアイデアを示している。
図2において、204は顧客IDを示しているが、図1の顧客データベースに格納されている顧客ID101とは異なって、閲覧者IDにより、本来の顧客IDを異ならせた形式の顧客IDが表示されている。
205は顧客の氏名を示しているが、姓と名の間の幅が異なっている。
201は姓と名を続けて表示している。202では姓と名の間に半角の空白を挿入している。
203では全角の空白を挿入している。他にも任意の幅のスペースを姓と名との間に挿入可能であるが、本実施形態では単純化のために空白なし、半角空白、全角空白の3種類を用いる。これは電子ファイルに格納した場合でも有効である。
206は郵便番号であるが、番号の数字を半角と全角の文字で変えている。文字のフォントを変えれば様々な方法で表示可能であるが、本実施形態では単純化のため全角か半角かの2種類を用いる。
207は住所である。住所の場合には多種の表現が可能である。(1)都道府県名の有無、(2)番地表記の中での「丁目」、「番」、「号」の有無、(3)番地の数字が全角か半角か、(4)番地の丁目、番、号の区切り文字が「−」か「〜」か、(5)マンションやアパートの部屋番号の数字が全角か半角か、(6)生年月日表記の際の西暦が和暦か、年月日を「年」、「月」、「日」で区切るか「/」で区切るか、元号の表記は「昭和」か「昭」か「S」か、を組み合わせることで同じ住所でも様々な表示方法が可能である。
【0010】
図3は、本発明に係る情報処理システムの実施形態を示すシステム構成図である。
図3において、301はデータベース検索部であり、図1に示したスキーマを持つ顧客データベース300を検索するモジュールである。データベース検索は、ネットワークで接続されたデータベースサーバに問合せ文319を送信して検索結果を受信する方法やローカルのファイルを検索する方法など、いくつかの方法があるが、方法は本発明の本質ではないので詳細は記述しない。ただし、データベースのスキーマが図1に示したような構成であることは重要である。
302は閲覧者のIDである。本形態では閲覧者IDは数値で示されると仮定する。
303は閲覧者ID302を元に、表示方法を選択するキーとなる情報を生成するモジュールである。本情報は各表示情報生成部への入力となる。各生成部への入力長は、それぞれ異なる。また、一部キー情報を組み合わせて閲覧者を特定できることが必要である。本実施形態では、顧客ID生成部304への入力は閲覧者IDをそのまま利用し、氏名生成部305は0〜2の値、郵便番号生成部306は0〜1の値、住所名生成部307は0〜1の値、番地生成部308は0〜4の値、アパート名生成部309は0〜1の値、生年月日生成部310は0〜7の値をとる。このキー生成方法については図11で説明する。
304は顧客ID生成部である。本モジュールの詳細は図4で説明する。
305は氏名生成部である。本モジュールの詳細は図5で説明する。
306は郵便番号生成部である。本モジュールの詳細は図6で説明する。
307は住所名生成部である。本モジュールの詳細は図7で説明する。
308は番地生成部である。本モジュールの詳細は図8で説明する。
309はアパート名生成部である。本モジュールの詳細は図9で説明する。
310は生年月日生成部である。本モジュールの詳細は図10で説明する。
311は偽顧客ID生成部である。本モジュールの詳細は図17で説明する。
312は偽氏名生成部である。本モジュールの詳細は図18で説明する。
313は偽住所生成部である。本モジュールの詳細は図19で説明する。
314は偽アパート生成部である。本モジュールの詳細は図20で説明する。
315は偽生年月日生成部である。本モジュールの詳細は図21で説明する。
316は個別に生成された顧客ID、氏名、郵便番号、住所名、番地、アパート名、生年月日をマージして一人分の個人情報として生成するマージ部である。
317は個別に生成された偽顧客ID、偽氏名、偽住所、偽アパート名、偽生年月日をマージして一人分の個人情報として生成するマージ部である。
318は検索内容に合わせて偽個人情報を生成する元となる情報を生成する偽データ生成部である。本モジュールの詳細は図12で説明する。
319は閲覧者が検索したい条件を含んだ顧客データベースへ300の問合せ文である。
320はマージ部316と偽データマージ部317で生成した個人情報をマージ、最終的に画面に表示したり、印刷する元となるデータを生成する出力データ生成部である。
321はシステムの共通鍵であり、顧客ID生成に使われる。
【0011】
図22は、閲覧者が顧客の基本情報を検索する際に、図2で説明したように、正規データに対してはその表記方法を閲覧者IDに応じて変え、さらに検索にあった偽データを生成することで、閲覧者を特定できる個人情報リスト生成処理の全体を示したフローチャートである。本説明の後、各モジュールの詳細について説明する。
まず、ステップ2201では、閲覧者が問合せ文319を入力する。入力方法は本発明の範囲外であるので省略する。
ステップ2202では、データベース検索部301が問合せ文319をデータベースサーバに送信し、データベースサーバが顧客データベース300から検索した結果を受け取る。顧客データベース300のデータ構成は図1に示した通りであり、姓名や住所が細かく属性に分割されている。
検索した結果は一般に複数の個人情報が含まれているが、データベース検索部301はそれぞれの個人情報をこのような属性に分割した形で受け取る。受け取った情報は1件ずつ、属性に応じて各種生成部304〜310に送る。
具体的には、顧客ID101は顧客ID生成部304に、姓102と名103は氏名生成部305に、郵便番号104は郵便番号生成部306に、都道府県105と市区町村106は住所名生成部307に、番地107は番地生成部308に、アパート名108と号室109はアパート名生成部309に、生年月日110は生年月日生成部310に送る。
また、データベース検索部301は検索結果の個人情報の件数を偽データマージ部317に送る。
【0012】
ステップ2203では、偽データ生成部318が問合せ文319を解析、問合せ文319に合わせた偽データを生成する。この偽データは偽データ生成部318に含まれる図13の偽姓データベース、図14の偽名データベース、図15の偽住所データベース、図16の偽アパート名データベースの格納情報に基づいて生成される。生成の方法は、図12を使って後に示す。
生成した偽データは、各種生成部に送られる。具体的には、偽の姓と偽の名は偽氏名生成部312に、偽住所は偽住所生成部313に、偽アパート名は偽アパート名生成部314に送る。
ステップ2204では、閲覧者ID302を元に閲覧者キー生成部303が閲覧者キーを生成し、各種生成部に送る。生成方法は図11を用いて後述する。
ステップ2205では、各種生成部がこれまで説明した検索結果の属性や偽データ、閲覧者キーを元に、個人情報の属性の一部を生成する。顧客ID生成部304の生成方法は図4を用いて後述する。氏名生成部305の生成方法は図5を用いて後述する。郵便番号生成部306の生成方法は図6を用いて後述する。住所名生成部307の生成方法は図7を用いて後述する。番地生成部308の生成方法は図8を用いて後述する。アパート名生成部309の生成方法は図9を用いて後述する。生年月日生成部310の生成方法は図10用いて後述する。
偽顧客ID生成部311の生成方法は図17を用いて後述する。偽氏名生成部312の生成方法は図18を用いて後述する。偽住所生成部313の生成方法は図19を用いて後述する。偽アパート名生成部314の生成方法は図20を用いて後述する。偽生年月日生成部315の生成方法は図21を用いて後述する。
【0013】
ステップ2206では、顧客ID生成部304と氏名生成部305と郵便番号生成部306と住所名生成部307と番地生成部308とアパート名生成部309と生年月日生成部310の生成結果を、マージ部316が検索結果の各個人情報に対応する属性を組合わせて1件の個人情報として生成、出力データ生成部に320に送る。対応するというのは、ステップ2202で述べた1件の個人情報を複数の属性に分割して、それぞれの生成部に入力、得られた生成データをマージして1件の個人情報にするという意味である。これにより、1件の個人情報の内容は変わらないが、表記方法が変わる。ステップ2202で述べた通り、検索結果の個人情報は一般に複数件数あるので、件数と同じ回数マージして、同じ件数が出力データ生成部320に送られる。
ステップ2207では、偽顧客ID生成部311と偽氏名生成部312と偽住所生成部313と偽アパート名生成部314と偽生年月日生成部315の生成結果を偽データマージ部317がマージして出力データ生成部320に送る。マージの方法はステップ2206で示したマージ部316の方法とは異なる。先の5つの生成部からは、一般に異なる個数の属性のデータが出力される。これは偽データ生成318で問合せ文319に応じた偽データを生成する場合、属性によって生成されるデータ数が異なるからである。
【0014】
例えば、偽姓は8件、偽名は1件、偽住所は1345件、偽アパート名が2件、偽生年月日が5件になり得る。偽データマージ部317は各偽の属性データをランダムに組み合わせることで偽の個人情報を出力する。原理的には偽姓、偽名、偽住所、偽アパート名、偽生年月日のそれぞれの件数を組み合わせた数の件数だけ個人情報を生成できる。しかし、本実施形態ではステップ2202にてデータベース検索部301から得られた正個人情報の検索結果件数に応じて偽データマージ部317が出力する件数を調整する。
すなわち、正個人情報にどの程度の割合で偽個人情報を含ませるか予め決めておき、その比率に応じてランダムに組み合わせる数を決める。割合の決め方は、固定であったり、件数に応じて変わったり、閲覧者によって変える場合も考えられるが、本実施形態では固定として、その割合を超えない範囲で出力する。
ステップ2208では、出力データ生成部320が、マージ部316が出力した正データと偽データマージ部317が出力した偽データとをランダムにマージ、正個人情報と偽個人情報が入り乱れるように出力する。
【0015】
以下は、各モジュールの詳細について説明する。
図12は、偽データ生成部318の偽データ生成手順を示すフローチャートである。
図12において、ステップ1201では、問合せ文319にマッチする姓を図13の偽姓データベースから検索する。マッチする姓1302は複数あるかもしれない。本実施の形態の偽姓データベースは1024個の姓1302と対応するキー1301からなるデータベースであり、マッチした姓1302をキー1301と一緒に出力、偽氏名生成部312に送る。なお、偽のデータの件数は1024件に限る必要はない。
ステップ1202では、問合せ文319にマッチする名を図14の偽名データベースから検索する。マッチする名1402は複数あるかもしれない。本実施の形態の偽名データベースは1024個の名1402と対応するキー1401からなるデータベースであり、マッチした名1402をキー1401と一緒に出力、偽氏名生成部312に送る。なお、偽のデータの件数は1024件に限る必要はない。
ステップ1203では、問合せ文319にマッチする住所を図15の偽住所データベースから検索する。マッチする住所1502は複数あるかもしれない。本実施の形態の偽住所データベースは32766個の住所1502と番地数1503と対応するキー1501からなるデータベースであり、マッチした住所1502を番地数1503とキー1501と一緒に出力、偽住所生成部313に送る。
ここで、図15の番地数1503とは、住所1502に続く丁目、番、号などの番地の個数である。例えば、東京都品川区東品川という住所1502では、丁目と番と号が使われるので番地数1503は3になる。
【0016】
ステップ1204では、問合せ文319にマッチするアパート名を図16の偽アパート名データベースから検索する。マッチするアパート名1602は複数あるかもしれない。本実施の形態の偽アパート名データベースは1024個のエントリがあるが、半数はNULLでブランクになっている。これは、アパートやマンションではなく戸建て住宅を示している。アパート名1602と対応するキー1601からなるデータベースであり、マッチしたアパート名1602をキー1601と一緒に出力、偽アパート名生成部314に送る。なお、偽のデータの件数は1024件に限る必要はない。
【0017】
図11は、閲覧者キー生成部303の閲覧者IDキー生成方法の処理手順を示すフローチャートである。
図11において、まず、閲覧者ID302をビット列とみなし、そのハッシュ値を計算する。ハッシュ値の計算にはSHA−1などの標準のハッシュ関数を用いるので詳細については触れないが、ここではハッシュ値は50ビット程度と仮定する。
次に、ステップ1102にて、ステップ1101におけるハッシュ値の第0ビットから第1ビットの2ビットを0〜3の値とみて、0なら閲覧者ID第1キーを0、1なら1、2ないし3なら2とし、氏名生成部305と偽氏名生成部312に送る。
次に、ステップ1103にて、ステップ1101のハッシュ値の第2ビットを0〜1の値とみて、閲覧者ID第2キーとし、郵便番号生成部306と番地生成部308とアパート名生成部309と生年月日生成部310と偽住所生成部313と偽アパート名生成部314と偽生年月日生成部315に送る。
続く、1104にて、ステップ1101のハッシュ値の第3ビットを0〜1の値とみて、閲覧者ID第3キーとし、住所名生成部307と偽住所生成部313に送る。
続くステップ1105にて、ステップ1101のハッシュ値の第4ビットから第6ビットの3ビットを0〜7の値とみて、0なら閲覧者ID第4キーを0、1なら1、2ないし3なら2、4ないし5なら3、6ないし7なら4とし、番地生成部308と偽住所生成部313に送る。
次に、ステップ1106にて、ステップ1101のハッシュ値の第7ビットを0〜1の値とみて、閲覧者ID第5キーとし、アパート名生成部309と偽アパート名生成部314に送る。
次に、ステップ1107にて、ステップ1101のハッシュ値の第8ビットから第10ビットの3ビットを0〜7の値とみて、閲覧者ID第6キーとし、生年月日生成部310と偽生年月日生成部315に送る。
次に、ステップ1108にて、ステップ1101のハッシュ値の第11ビットから第12ビットの2ビットを0〜3の値とみて、閲覧者ID第7キーとし、偽氏名生成部312に送る。
次に、ステップ1109にて、ステップ1101のハッシュ値の第13ビットから第14ビットの2ビットを0〜3の値とみて、閲覧者ID第8キーとし、偽氏名生成部312に送る。
次に、ステップ1110にて、ステップ1101のハッシュ値の第15ビットから第16ビットの2ビットを0〜3の値とみて、閲覧者ID第9キーとし、偽住所生成部313に送る。
次に、ステップ1111にて、ステップ1101のハッシュ値の第17ビットから第18ビットの2ビットを0〜3の値とみて、閲覧者ID第10キーとし、偽住所生成部313に送る。
次に、ステップ1112にて、ステップ1101のハッシュ値の第19ビットから第20ビットの2ビットを0〜3の値とみて、閲覧者ID第11キーとし、偽アパート名生成部314に送る。
次に、ステップ1113にて、ステップ1101のハッシュ値の第21ビットから第25ビットの5ビットを0〜31の値とみて、閲覧者ID第12キーとし、偽アパート名生成部314に送る。
次に、ステップ1114にて、ステップ1101のハッシュ値の第26ビットから第30ビットの5ビットを0〜31の値とみて、閲覧者ID第13キーとし、偽生年月日生成部315に送る。
【0018】
図4は、顧客ID生成部304の処理手順を示すフローチャートである。
図4において、まずステップ401にて、入力データとしてデータベース検索部301から受けた顧客ID101と閲覧者IDをビット列として連結する。
次に、ステップ402にて、これをシステムの共通鍵321で暗号化する。暗号化の方法は本発明の本質ではないので省略する。
次に、ステップ403にて、前記ステップ402にて生成した暗号化データを数字列に変換し、顧客IDとして出力する。
【0019】
図5は、氏名生成部305の処理手順を示すフローチャートである。
図5において、まずステップ501にて、入力データとしてデータベース検索部301から姓102と名103を、閲覧者キー生成部303から閲覧者ID第1キーを受け取る。第1キーの値が0ならステップ502に、1ならステップ503に、2ならステップ504に分岐する。
ステップ502では、ステップ501にて受けた姓102と名103を空白文字を入れることなく出力する。
ステップ503では、ステップ501にて受けた姓102と名103を半角空白文字を入れて出力する。
ステップ504では、ステップ501にて受けた姓102と名103を全角空白文字を入れて出力する。
【0020】
図6は、郵便番号生成部306の処理手順を示すフローチャートである。
図6において、まずステップ601にて、入力データとしてデータベース検索部301から郵便番号104を、閲覧者キー生成部303から閲覧者ID第2キーを受け取る。第2キーの値が0ならステップ602に、1ならステップ603に分岐する。
ステップ602では、ステップ601にて受けた郵便番号104を半角文字で出力する。
ステップ603では、ステップ601にて受けた郵便番号104を全角文字で出力する。
【0021】
図7は、所名生成部307の処理手順を示すフローチャートである。
図7において、まずステップ701にて、入力データとしてデータベース検索部301から都道府県105と市区町村106を、閲覧者キー生成部303から閲覧者ID第3キーを受け取る。第3キーの値が0ならステップ702に、1ならステップ703に分岐する。
ステップ702では、ステップ701にて受けた都道府県105と市区町村106を出力する。
ステップ703では、ステップ701にて受けた市区町村106のみを出力する。
【0022】
図8は、番地生成部308の処理手順を示すフローチャートである。
図8において、まずステップ801にて、入力データとしてデータベース検索部301から番地107を、閲覧者キー生成部303から閲覧者ID第2キーと第4キーを受け取る。第2キーの値が0で第4キーの値が0ならステップ802に、0と1ならステップ803に、0と2ならステップ804に、0と3ならステップ805に、0と4ならステップ806に、1と0ならステップ807に、1と1ならステップ808に、1と2ならステップ809に、1と3ならステップ810に、1と4ならステップ811に分岐する。
ステップ802では、ステップ801にて受けた番地を数字は半角、「丁目」、「番」、「号」を使って出力する。例えば「1−2−3」を「1丁目2番3号」と出力する。
ステップ803では、ステップ801にて受けた番地を数字は半角、「丁目」を入れ、番と号は半角の「‐」で区切って出力する。例えば「1−2−3」を「1丁目2‐3」と出力する。
ステップ804では、ステップ801にて受けた番地を数字は半角、「丁目」を入れ、番と号は半角の「〜」で区切って出力する。例えば「1−2−3」を「1丁目2〜3」と出力する。
ステップ805では、ステップ801にて受けた番地を数字は半角、丁目と番と号は半角の「‐」で区切って出力する。例えば「1−2−3」を「1‐2‐3」と出力する。
ステップ806では、ステップ801にて受けた番地を数字は半角、丁目と番と号は半角の「〜」で区切って出力する。例えば「1−2−3」を「1〜2〜3」と出力する。
ステップ807では、ステップ801にて受けた番地を数字は全角、「丁目」、「番」、「号」を使って出力する。例えば「1−2−3」を「1丁目2番3号」と出力する。
ステップ808では、ステップ801にて受けた番地を数字は全角、「丁目」を入れ、番と号は全角の「―」で区切って出力する。例えば「1−2−3」を「1丁目2―3」と出力する。
ステップ809では、ステップ801にて受けた番地を数字は全角、「丁目」を入れ、番と号は全角の「〜」で区切って出力する。例えば「1−2−3」を「1丁目2〜3」と出力する。
ステップ810では、801にて受けた番地を数字は全角、丁目と番と号は全角の「―」で区切って出力する。例えば「1−2−3」を「1―2―3」と出力する。
ステップ811では、ステップ801にて受けた番地を数字は全角、丁目と番と号は全角の「〜」で区切って出力する。例えば「1−2−3」を「1〜2〜3」と出力する。
【0023】
図9は、アパート名生成部309の処理手順を示すフローチャートである。
図9において、ステップ901にて、入力データとしてデータベース検索部301からアパート名108と号室109を、閲覧者キー生成部303から閲覧者ID第2キーと第5キーを受け取る。第2キーの値が0で第5キーの値が0ならステップ902に、0と1ならステップ903に、1と0ならステップ904に、1と1ならステップ905に分岐する。
ステップ902では、ステップ901にて受けたアパート名と号室番号を英数字は半角、「号室」を付けて出力する。例えば「品川シーサイドツインタワーのA3904号室」を「品川シーサイドツインタワーA3904号室」と出力する。
ステップ903では、ステップ901にて受けたアパート名と号室番号を英数字は半角、「号室」を付けずに出力する。例えば「品川シーサイドツインタワーのA3904号室」を「品川シーサイドツインタワーA3904」と出力する。
ステップ904では、ステップ901にて受けたアパート名と号室番号を英数字は全角、「号室」を付けて出力する。例えば「品川シーサイドツインタワーのA3904号室」を「品川シーサイドツインタワーA3904号室」と出力する。
ステップ905では、ステップ901にて受けたアパート名と号室番号を英数字は全角、「号室」を付けずに出力する。例えば「品川シーサイドツインタワーのA3904号室」を「品川シーサイドツインタワーA3904」と出力する。
【0024】
図10は、生年月日生成部310の処理手順を示すフローチャートである。
図10において、ステップ1001にて、入力データとしてデータベース検索部301から生年月日110を、閲覧者キー生成部303から閲覧者ID第2キーと第6キーを受け取る。第2キーの値が0で第6キーの値が0ならステップ1002に、0と1ならステップ1003に、0と2ならステップ1004に、0と3ならステップ1005に、0と4ならステップ1006に、0と5ならステップ1007に、0と6ならステップ1008に、0と7ならステップ1009に、1と0ならステップ1010に、1と1ならステップ1011に、1と2ならステップ1012に、1と3ならステップ1013に、1と4ならステップ1014に、1と5ならステップ1015に、1と6ならステップ1016に、1と7ならステップ1017に分岐する。
ステップ1002では、数字は半角、西暦で、年と月と日は「/」で区切って出力する。例えば、「19570123」は「1957/1/23」と出力する。
ステップ1003では、数字は半角、西暦で、年と月と日は「年」と「月」と「日」で区切って出力する。例えば、「19570123」は「1957年1月23日」と出力する。
ステップ1004では、数字は半角、和暦で、元号は「大正」、「昭和」、「平成」を付け、年と月と日は「/」で区切って出力する。例えば、「19570123」は「昭和32/1/23」と出力する。
ステップ1005では、数字は半角、和暦で、元号は「大正」、「昭和」、「平成」を付け、年と月と日は「年」と「月」と「日」で区切って出力する。例えば、「19570123」は「昭和32年1月23日」と出力する。
ステップ1006では、数字は半角、和暦で、元号は「大」、「昭」、「平」を付け、年と月と日は「/」で区切って出力する。例えば、「19570123」は「昭32/1/23」と出力する。
ステップ1007では、数字は半角、和暦で、元号は「大」、「昭」、「平」を付け、年と月と日は「年」と「月」と「日」で区切って出力する。例えば、「19570123」は「昭32年1月23日」と出力する。
ステップ1008では、数字は半角、和暦で、元号は「T」、「S」、「H」を付け、年と月と日は「/」で区切って出力する。例えば、「19570123」は「S32/1/23」と出力する。
ステップ1009では、数字は半角、和暦で、元号は「T」、「S」、「H」を付け、年と月と日は「年」と「月」と「日」で区切って出力する。例えば、「19570123」は「S32年1月23日」と出力する。
ステップ1010では、数字は全角、西暦で、年と月と日は「/」で区切って出力する。例えば、「19570123」は「1957/1/23」と出力する。
ステップ1011では、数字は全角、西暦で、年と月と日は「年」と「月」と「日」で区切って出力する。例えば、「19570123」は「1957年1月23日」と出力する。
ステップ1012では、数字は全角、和暦で、元号は「大正」、「昭和」、「平成」を付け、年と月と日は「/」で区切って出力する。例えば、「19570123」は「昭和32/1/23」と出力する。
ステップ1013では、数字は全角、和暦で、元号は「大正」、「昭和」、「平成」を付け、年と月と日は「年」と「月」と「日」で区切って出力する。例えば、「19570123」は「昭和32年1月23日」と出力する。
ステップ1014では、数字は全角、和暦で、元号は「大」、「昭」、「平」を付け、年と月と日は「/」で区切って出力する。例えば、「19570123」は「昭32/1/23」と出力する。
ステップ1015では、数字は全角、和暦で、元号は「大」、「昭」、「平」を付け、年と月と日は「年」と「月」と「日」で区切って出力する。例えば、「19570123」は「昭32年1月23日」と出力する。
ステップ1016では、数字は全角、和暦で、元号は「T」、「S」、「H」を付け、年と月と日は「/」で区切って出力する。例えば、「19570123」は「S32/1/23」と出力する。
ステップ1017では、数字は全角、和暦で、元号は「T」、「S」、「H」を付け、年と月と日は「年」と「月」と「日」で区切って出力する。例えば、「19570123」は「S32年1月23日」と出力する。
【0025】
図17は、偽顧客ID生成部311の処理手順を示すフローチャートである。
図17において、まず、ステップ1701にて、乱数を生成、これと閲覧者IDをビット列として連結する。
次に、ステップ1702にて、これをシステムの共通鍵321で暗号化する。暗号化の方法は本発明の本質ではないので省略する。
続くステップ1703にて、前記ステップ1702にて生成した暗号化データを数字列に変換、顧客IDとして出力する。
なお、偽顧客IDは、偽データマージ部317で出力する偽の個人情報の件数と同数生成する。
【0026】
図18は、偽氏名生成部312の処理手順を示すフローチャートである。
図18において、ステップ1801にて、入力データとして偽データ生成部318から偽の姓1302とそのキー1301を、閲覧者キー生成部303から閲覧者ID第7キーを受け取る。ここで図12のステップ1201に示したように、偽の姓は複数あるかもしれないので、キー1301を2進数表現したときの下位2ビットと閲覧者第7キーの値が一致した偽の姓を選択する。
次に、ステップ1802にて、入力データとして偽データ生成部318から偽の名1402とそのキー1401を、閲覧者キー生成部303から閲覧者ID第8キーを受け取る。ここで図12のステップ1202に示したように、偽の名は複数あるかもしれないので、キー1401を2進数表現したときの下位2ビットと閲覧者第8キーの値が一致した偽の姓を選択する。
次に、ステップ2003にて、閲覧者キー生成部303から閲覧者ID第1キーを受ける。ステップ1801で得た偽の姓とステップ1802で得た偽の名を組み合わせて、姓と名のペアを得る。このペアの姓と名を閲覧者ID第1キーが0なら空白なしで、1なら半角空白を入れて、2なら全角空白を入れて出力する。
なお、姓と名の組み合わせの方法は限定しない。あらゆる組み合わせをとる方法や1番目の姓と1番目の名を組み合わせ、2番目の姓と2番目の名を組み合わせるなどの方法がある。
【0027】
図19は、偽住所生成部313の処理手順を示すフローチャートである。
まず、ステップ1901にて、入力データとして偽データ生成部318から偽の住所名1502とそのキー1501と番地数1503を、閲覧者キー生成部303から閲覧者ID第9キーを受け取る。ここで図12のステップ1203に示したように、偽の住所名は複数あるかもしれないので、キー1501を2進数表現したときの下位2ビットと閲覧者第9キーの値が一致した偽の住所名を選択する。
次に、ステップ1902にて、入力データとして閲覧者キー生成部303から閲覧者ID第2キーと同第3キーと第4キーと第10キーを受け取る。2101で選択した住所ごとに、足して32で割った余りが閲覧者ID第10キーに等しくなる番地個数の乱数を生成して、出力する。ここで、郵便番号、都道府県名、番地の出力方法は、図6、図7、図8で説明したものに従う。
【0028】
図20は、偽アパート名生成部314の処理手順を示すフローチャートである。
まず、ステップ2001にて、入力データとして偽データ生成部318から偽のアパート名1602とそのキー1601とを、閲覧者キー生成部303から閲覧者ID第11キーを受け取る。
ここで図12のステップ1204に示したように、偽のアパート名は複数あるかもしれないので、キー1801を2進数表現したときの下位2ビットと閲覧者ID第11キーの値が一致した偽のアパート名を選択する。
次に、ステップ2002にて、入力データとして閲覧者キー生成部303から閲覧者ID第2キーと同第5キーと同第12キーを受け取る。ステップ2001で選択したアパート名ごとに、32で割った余りが閲覧者ID第12キーに等しくなる乱数を号室の番号として生成して、アパートと共に出力する。ここで、アパート名がNULLならNULLと出力する。ここで、号室の出力方法は、図9に従う。
【0029】
図21は、偽生年月日生成部315の処理手順を示すフローチャートである。
図21において、ステップ2101にて、閲覧者キー生成部303から閲覧者ID第13キーを受け取る。年と月と日のあたる乱数を生成する。ここで3つの数値の和を32で割った余りが閲覧者ID第13キーと同じになるように生成する。生成する個数は偽データマージ部317で出力する偽の個人情報の件数と同数生成する。
続くステップ2102にて、閲覧者キー生成部303から閲覧者ID第2キーと同6キーを受け取る。2301で生成した偽の生年月日を図10に従って出力する。
【0030】
以上、閲覧者ID302に基づいて個人情報の表記形式の変え方の形態を示した。続いて、個人情報の表記形式から閲覧者IDを得る方法について図23のフローチャートを用いて説明する。
図23において、ステップ2301にて、個人情報リストに顧客IDがあれば、これをシステムの共通鍵321で復号する。復号した結果は、図4ないしは図17に説明たとおり、顧客ID101ないしは乱数と閲覧者ID302を連結したビット列であるから、閲覧者IDがわかり、本処理を終える。必要なら個人情報リストにある全ての顧客IDを復号して、閲覧者IDをそれぞれ確かめても良い。顧客IDがない場合には、ステップ2302に進む。
ステップ2302にて、表記方法から閲覧者IDのキーを得る。図5で説明したように姓と名の間の空白から第1キーが、数字表記が半角か全角かで第2キーが、図7で示したように住所の都道府県の有無で第3キーが、図8で示したように番地の表記方法で第4キーが、図9で示したようにアパート表記の「号室」の有無で第5キーが、図10で示したように生年月日の表記で第6キーがわかる。全ての閲覧者IDのハッシュ値を計算、キーが一致する閲覧者IDを絞ることができる。ここで一つの閲覧者IDに絞れれば、本処理を終える。
ステップ2303にて、個人情報リストから偽の個人情報を選び出す。偽か否かはデータベースと付き合わせることでわかる。図18のステップ1801で説明したように偽の姓から第7キーが、またステップ1802に示ししたように偽の名から第8キーが、さらに図19のステップ1901で説明したように偽の住所名から第9キーが、ステップ1902に示したように番地の和の32で割った余りから第10キーが、図20のステップ2001に示したように偽のアパート名から第11キーが、ステップ2002に示したようにアパートの偽の号室から第12キーが、図21のステップ2101に示したように偽の生年月日から第13キーがわかる。これら新に判明した閲覧者IDキーからさらに閲覧者IDを絞ることができる。
【0031】
(その他の実施形態のその1)
先の実施の形態では電話番号は含めなかったが、電話番号の表記方法を変えて閲覧者情報を埋め込むことも可能である。例えば、「012−345−6789」という電話番号に対して、「012−345−6789」、「012(345)6789」、「012―345―6789」、「012(345)6789」といった表記方法がある。実施の形態としては、1ビットの閲覧者IDキーをもう1つ増やして、閲覧者ID第2キーの値と本キーの値に応じて、上記4つの表記方法を使えばよい。
偽データの生成方法については、図15の偽住所データベースのフィールドにもう1つ電話の市外局番と局番(上記の例で言えば012−345)のフィールドを追加して、図19のステップ1901において住所と一緒に市外局番と局番を選択する。末尾4桁(上記の例で言えば6789)については、0から9999の値をとる閲覧者IDキーを新たに設けて、このキーをそのまま末尾4桁にする方法や0から9の値をとる閲覧者IDキーを設けて、4桁の数の和がこのキーになるようにランダムに0から9999の値を生成する方法がある。
【0032】
(その他の実施形態その2)
先の実施の形態では、閲覧者IDが決まると、表記方法は各個人情報によらず、全ての個人情報について1つの表記方法を用いていたが、これに限らず、次のようにしてもよい。
すなわち、閲覧者IDキーを生成する際に閲覧者ID302だけからキーを生成するのではなく、顧客ID101を含めて閲覧者IDキーを生成する。具体的には、図11のステップ1101において、閲覧者キー生成部303がデータベース検索部301から顧客IDを受取り、顧客IDと閲覧者IDを連結してハッシュ値を生成する。各生成部が1件の個人情報を生成する際に、該当する個人情報ごとに閲覧者IDキーを受取り、このキーに応じた表記方法に従って個人情報を出力する。
【図面の簡単な説明】
【0033】
【図1】本発明に使用する個人情報データベースのスキーマ例を示す図である。
【図2】表記が異なる個人情報の例を示す図である。
【図3】本発明に係る情報処理システムの実施形態を示すシステム構成図である。
【図4】顧客ID生成部の処理手順を示すフローチャートである。
【図5】氏名生成部の処理手順を示すフローチャートである。
【図6】郵便番号生成部の処理手順を示すフローチャートである。
【図7】住所名生成部の処理手順を示すフローチャートである。
【図8】番地生成部の処理手順を示すフローチャートである。
【図9】アパート名生成部の処理手順を示すフローチャートである。
【図10】生年月日生成部の処理手順を示すフローチャートである。
【図11】閲覧者キー生成部の処理手順を示すフローチャートである。
【図12】偽データ生成部の処理手順を示すフローチャートである。
【図13】偽姓データベースの格納データ例を示す図である。
【図14】偽名データベースの格納データ例を示す図である。
【図15】偽住所データベースの格納データ例を示す図である。
【図16】偽アパート名データベースの格納データ例を示す図である。
【図17】偽顧客ID生成部の処理手順を示すフローチャートである。
【図18】偽氏名生成部の処理手順を示すフローチャートである。
【図19】偽住所生成部の処理手順を示すフローチャートである。
【図20】偽アパート名生成部の処理手順を示すフローチャートである。
【図21】偽生年月日生成部の処理手順を示すフローチャートである。
【図22】全体の処理手順を示すフローチャートである。
【図23】個人情報の表記形式から閲覧者IDを特定する際の処理手順を示すフローチャートである。
【符号の説明】
【0034】
301…データベース検索部、302…閲覧者ID、303…閲覧者キー生成部、304…顧客ID生成部、305…氏名生成部、306…郵便番号生成部、307…住所名生成部、308…番地生成部、309…アパート名生成部、310…生年月日生成部、311…偽顧客ID生成部、312…偽氏名生成部、313…偽住所生成部、314…偽アパート名生成部、315…偽生年月日生成部、316…マージ部、317…偽データマージ部、318…偽データ生成部、319…問合せ文、320…出力データ生成、321…共通鍵。
【特許請求の範囲】
【請求項1】
個人情報リストを表示ないしは印刷する情報処理システムにおいて、
前記個人情報リスト中の各個人に割当てられた個人IDを異なる個人IDに変換するモジュール、
姓と名との間に空白なし、半角の空白を挿入、全角の空白を挿入するモジュール、
郵便番号の数字を半角ないしは全角で表記するモジュール、
住所表記の際に都道府県名を表記ないしは表記しないモジュール、
住所の番地表記の際に丁目、番、号の数字を半角ないしは全角で表記するモジュール、
住所の番地表記の際に丁目、番、号という文字を表記ないしは表記しないモジュール、
住所の番地表記の際に丁目、番、号という文字を表記しない場合に間の区切り文字を変えるモジュール、
住所中のアパートの号室の表記の際に号室という文字を表記ないしは表記しないモジュール、
住所中のアパートの号室の数字を半角ないしは全角で表記するモジュール、
生年月日を表記する際に、年、月、日という文字を表記ないしは表記しないモジュール、
生年月日を表記する際に、西暦か和暦かを変えるモジュール、
または生年月日を和暦で表記する際に、元号を大正と昭和と平成か、大と昭と平か、TとSとHかに変えるモジュールの各モジュールのうち複数のモジュールと、
閲覧者IDに応じて、前記各モジュールにより前記個人情報リストを構成する前記各情報の表記形式を異ならせ、閲覧者IDに応じて前記個人情報リストの表記形式が異なるリストを表示または印刷することを備えることを特徴とする情報処理システム。
【請求項2】
閲覧者IDに応じて、前記個人情報リストに存在しない偽者の個人情報を付加して表示または印刷させる手段をさらに備えることを特徴とする請求項1に記載の情報処理システム。
【請求項1】
個人情報リストを表示ないしは印刷する情報処理システムにおいて、
前記個人情報リスト中の各個人に割当てられた個人IDを異なる個人IDに変換するモジュール、
姓と名との間に空白なし、半角の空白を挿入、全角の空白を挿入するモジュール、
郵便番号の数字を半角ないしは全角で表記するモジュール、
住所表記の際に都道府県名を表記ないしは表記しないモジュール、
住所の番地表記の際に丁目、番、号の数字を半角ないしは全角で表記するモジュール、
住所の番地表記の際に丁目、番、号という文字を表記ないしは表記しないモジュール、
住所の番地表記の際に丁目、番、号という文字を表記しない場合に間の区切り文字を変えるモジュール、
住所中のアパートの号室の表記の際に号室という文字を表記ないしは表記しないモジュール、
住所中のアパートの号室の数字を半角ないしは全角で表記するモジュール、
生年月日を表記する際に、年、月、日という文字を表記ないしは表記しないモジュール、
生年月日を表記する際に、西暦か和暦かを変えるモジュール、
または生年月日を和暦で表記する際に、元号を大正と昭和と平成か、大と昭と平か、TとSとHかに変えるモジュールの各モジュールのうち複数のモジュールと、
閲覧者IDに応じて、前記各モジュールにより前記個人情報リストを構成する前記各情報の表記形式を異ならせ、閲覧者IDに応じて前記個人情報リストの表記形式が異なるリストを表示または印刷することを備えることを特徴とする情報処理システム。
【請求項2】
閲覧者IDに応じて、前記個人情報リストに存在しない偽者の個人情報を付加して表示または印刷させる手段をさらに備えることを特徴とする請求項1に記載の情報処理システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2006−139007(P2006−139007A)
【公開日】平成18年6月1日(2006.6.1)
【国際特許分類】
【出願番号】特願2004−327694(P2004−327694)
【出願日】平成16年11月11日(2004.11.11)
【出願人】(000233055)日立ソフトウエアエンジニアリング株式会社 (1,610)
【Fターム(参考)】
【公開日】平成18年6月1日(2006.6.1)
【国際特許分類】
【出願日】平成16年11月11日(2004.11.11)
【出願人】(000233055)日立ソフトウエアエンジニアリング株式会社 (1,610)
【Fターム(参考)】
[ Back to top ]