(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-03
(45)【発行日】2023-04-11
(54)【発明の名称】評価方法、評価プログラムおよび情報処理装置
(51)【国際特許分類】
G06F 21/62 20130101AFI20230404BHJP
G06Q 50/10 20120101ALI20230404BHJP
【FI】
G06F21/62 345
G06Q50/10
(21)【出願番号】P 2019186757
(22)【出願日】2019-10-10
【審査請求日】2022-06-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】萱場 啓太
(72)【発明者】
【氏名】小栗 秀暢
(72)【発明者】
【氏名】山岡 裕司
【審査官】平井 誠
(56)【参考文献】
【文献】国際公開第2013/027782(WO,A1)
【文献】特開2016-162271(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-88
G06Q 50/10
(57)【特許請求の範囲】
【請求項1】
複数の個人の個人データに基づく所定の項目の項目値の分布を示す分布情報と、前記複数の個人のいずれかの個人の個人データとを入力として、前記いずれかの個人が情報提供の対象者であるか否かを示す情報を出力するプログラムを受け付け、
所定の規則に基づき、前記分布情報が示す分布を変化させて、互いに異なる分布を示す複数の分布情報を生成し、
生成した前記複数の分布情報それぞれと前記いずれかの個人の個人データとを入力として、前記プログラムを実行することで、前記複数の分布情報それぞれについて、前記いずれかの個人が情報提供の対象者であるか否かを示す情報を取得し、
前記複数の分布情報それぞれについて取得した前記情報に相違が生じるか否かによって、前記プログラムの正当性を評価する、
処理をコンピュータが実行することを特徴とする評価方法。
【請求項2】
前記評価する処理は、
前記複数の分布情報それぞれについて取得した前記情報に相違が生じない場合に、前記プログラムが正当であると判定し、
前記複数の分布情報それぞれについて取得した前記情報に相違が生じる場合には、前記プログラムが正当でないと判定する、
ことを特徴とする請求項1に記載の評価方法。
【請求項3】
前記複数の個人の個人データを統計処理して所定の項目の項目値の分布を示す分布情報を作成する際の条件の指定を受け付け、
前記条件を参照して、前記複数の個人の個人データに基づき前記所定の項目の項目値を統計処理することで、前記分布情報を作成する、
処理を前記コンピュータが実行することを特徴とする請求項1または2に記載の評価方法。
【請求項4】
前記分布情報は、前記複数の個人の個人データに基づき前記所定の項目の項目値を統計処理して得られる前記所定の項目に関する複数の統計値を示し、
前記生成する処理は、
前記分布情報が示す前記複数の統計値それぞれに所定のノイズを加えることにより、前記複数の分布情報を生成する、ことを特徴とする請求項1~3のいずれか一つに記載の評価方法。
【請求項5】
前記プログラムが正当であると判定した場合、前記複数の分布情報のいずれかの分布情報と前記いずれかの個人の個人データとを入力として、前記プログラムを実行して得られる出力結果から、前記いずれかの個人が情報提供の対象者であるか否かを判断する、
処理を前記コンピュータが実行することを特徴とする請求項1~4のいずれか一つに記載の評価方法。
【請求項6】
評価した前記プログラムの評価結果を出力する、処理を前記コンピュータが実行することを特徴とする請求項1~5のいずれか一つに記載の評価方法。
【請求項7】
複数の個人の個人データに基づく所定の項目の項目値の分布を示す分布情報と、前記複数の個人のいずれかの個人の個人データとを入力として、前記いずれかの個人が情報提供の対象者であるか否かを示す情報を出力するプログラムを受け付け、
所定の規則に基づき、前記分布情報が示す分布を変化させて、互いに異なる分布を示す複数の分布情報を生成し、
生成した前記複数の分布情報それぞれと前記いずれかの個人の個人データとを入力として、前記プログラムを実行することで、前記複数の分布情報それぞれについて、前記いずれかの個人が情報提供の対象者であるか否かを示す情報を取得し、
前記複数の分布情報それぞれについて取得した前記情報に相違が生じるか否かによって、前記プログラムの正当性を評価する、
処理をコンピュータに実行させることを特徴とする評価プログラム。
【請求項8】
複数の個人の個人データに基づく所定の項目の項目値の分布を示す分布情報と、前記複数の個人のいずれかの個人の個人データとを入力として、前記いずれかの個人が情報提供の対象者であるか否かを示す情報を出力するプログラムを受け付ける受付部と、
所定の規則に基づき、前記分布情報が示す分布を変化させて、互いに異なる分布を示す複数の分布情報を生成する生成部と、
前記生成部によって生成された前記複数の分布情報それぞれと前記いずれかの個人の個人データとを入力として、前記プログラムを実行することで、前記複数の分布情報それぞれについて、前記いずれかの個人が情報提供の対象者であるか否かを示す情報を取得し、前記複数の分布情報それぞれについて取得した前記情報に相違が生じるか否かによって、前記プログラムの正当性を評価する評価部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、評価方法、評価プログラムおよび情報処理装置に関する。
【背景技術】
【0002】
従来、個人の様々なデータを本人の同意のもと収集・管理する、情報銀行と呼ばれる仕組みがある。例えば、情報銀行で管理されているデータを一定の条件下で事業者に提供することで、事業者はデータを活用して個人のニーズに合致した情報やサービスなどのオファーを配信することが可能になる(例えば、下記非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【文献】JTB、大日本印刷と「情報銀行」の実証実験、12月から、[online]、トラベルビジョン、[令和1年9月30日検索]、インターネット<URL:http://www.travelvision.jp/news/detail.php?id=83767>
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術では、個人データの流出リスクが高いという問題がある。例えば、オファーを作成する事業者へのデータ提供後は、情報銀行が事業者によるデータの取り扱いを監視することは困難であり、事業者の不注意によるデータ漏洩やデータ転売による流出が起こるおそれがある。
【0005】
一つの側面では、本発明は、個人データの流出リスクを低減させることを目的とする。
【課題を解決するための手段】
【0006】
一つの実施態様では、複数の個人の個人データに基づく所定の項目の項目値の分布を示す分布情報と、前記複数の個人のいずれかの個人の個人データとを入力として、前記いずれかの個人が情報提供の対象者であるか否かを示す情報を出力するプログラムを受け付け、所定の規則に基づき、前記分布情報が示す分布を変化させて、互いに異なる分布を示す複数の分布情報を生成し、生成した前記複数の分布情報それぞれと前記いずれかの個人の個人データとを入力として、前記プログラムを実行することで、前記複数の分布情報それぞれについて、前記いずれかの個人が情報提供の対象者であるか否かを示す情報を取得し、前記複数の分布情報それぞれについて取得した前記情報に相違が生じるか否かによって、前記プログラムの正当性を評価する、評価方法が提供される。
【発明の効果】
【0007】
本発明の一側面によれば、個人データの流出リスクを低減させることができるという効果を奏する。
【図面の簡単な説明】
【0008】
【
図1】
図1は、実施の形態にかかる評価方法の一実施例を示す説明図である。
【
図2】
図2は、情報提供システム200のシステム構成例を示す説明図である。
【
図3】
図3は、情報処理装置101のハードウェア構成例を示すブロック図である。
【
図4】
図4は、個人端末202のハードウェア構成例を示すブロック図である。
【
図5】
図5は、個人データベースDの記憶内容の一例を示す説明図である。
【
図6】
図6は、情報処理装置101の機能的構成例を示すブロック図である。
【
図7】
図7は、データ作成指定gの具体例を示す説明図である。
【
図8】
図8は、実行ファイルの具体例を示す説明図である。
【
図9】
図9は、プログラムfの具体例を示す説明図である。
【
図10】
図10は、統計データsを作成する具体的な処理内容の一例を示す説明図である。
【
図11】
図11は、プログラムfを実行した際の動作例を示す説明図である。
【
図12】
図12は、攻撃用のプログラムfの具体例を示す説明図である。
【
図13】
図13は、プログラムfの評価例を示す説明図である。
【
図14】
図14は、情報提供システム200の動作例を示すシーケンス図である。
【
図15】
図15は、情報処理装置101の評価処理手順の一例を示すフローチャート(その1)である。
【
図16】
図16は、情報処理装置101の評価処理手順の一例を示すフローチャート(その2)である。
【発明を実施するための形態】
【0009】
以下に図面を参照して、本発明にかかる評価方法、評価プログラムおよび情報処理装置の実施の形態を詳細に説明する。
【0010】
(実施の形態)
図1は、実施の形態にかかる評価方法の一実施例を示す説明図である。
図1において、情報処理装置101は、ある個人が情報提供の対象者であるか否かを示す情報を出力するプログラムfを評価するコンピュータである。情報処理装置101は、例えば、情報銀行に適用される。プログラムfは、例えば、情報提供の依頼元である事業者によって作成され、情報提供の提供先となる個人を決めるために用いられる。
【0011】
情報銀行は、多種多様なオファーを作成する事業者が、個人の様々なデータを分析して、個人に最適なオファーを配信できるようにする仕組みである。しかし、事業者へのデータ提供後は、情報銀行が事業者によるデータの取り扱いを監視することは難しく、事業者へのデータ提供を前提とする既存の仕組みでは、個人データの流出リスクが高い。
【0012】
信頼の上に成り立つ情報銀行にとっては、一度のデータ漏洩・流出が致命的であるため、データ提供なしで事業者がデータを利活用可能な仕組みが望まれる。
【0013】
ここで、事業者へのデータ提供なしでオファー配信する仕組みとして、事業者が、情報銀行が事前に準備した条件を指定してオファー配信対象とする個人を指示することが考えられる。しかし、事前に準備された条件(選択肢)から選択することになるため、条件指定の自由度が低い。情報銀行が、事業者が選択したいデータ項目や、その組み合わせ方を全て網羅した条件を事前に準備しておくことは困難である。
【0014】
また、事業者へのデータ提供なしでオファー配信する他の仕組みとして、事業者がオファー配信対象とする個人を指示するプログラムを作成し、情報銀行でプログラムを動作させ、プログラムの指示に応じてオファー配信を行うことが考えられる。
【0015】
より詳細に説明すると、例えば、情報銀行は、『事業者が作成したプログラムによって、オファー配信の有無を判断するため』という利用目的に個人が同意した属性の個人データをレコードとするデータベースを持ち、属性の項目とデータ型を事業者へ公開する。属性の項目としては、例えば、住所、年齢、年収、位置情報、SNS(Social Networking Service)投稿などがある。
【0016】
データ型としては、例えば、整数型、文字列型などがある。事業者は、情報銀行に対して、データベースを分析して個人に対するオファー配信の有無の指示を出力するプログラムとオファーを送付する。情報銀行は、事業者からのプログラムを実行して得られる出力結果に従って、個人へオファーを配信する。
【0017】
このプログラム送付型オファー配信の方式によれば、事業者へ個人データを提供しないため、個人データの悪用や漏洩の発生リスクを低減したオファー配信機能を提供することができる。また、プログラムで柔軟に個人を指示できるため、情報銀行が事前に準備した条件を指定して個人を指示する場合に比べて自由度が高い。
【0018】
しかしながら、この方式では、ある個人(結託個人)と結託した悪意ある事業者が、結託個人と攻撃対象の個人の両者の個人データを用いてオファー配信指示を意図的に変更する攻撃用プログラムを情報銀行に送付することで、攻撃対象の個人のデータを盗取する脅威(以下、「結託攻撃」という)がある。
【0019】
結託攻撃の目的は、攻撃対象の個人について、未知のデータ(属性)を知ることである。攻撃者(悪意ある事業者)は、攻撃対象の個人が情報銀行を利用していることや、情報銀行のデータベースにおいて攻撃対象の個人を特定する情報を知識として持っている。個人を特定する情報としては、例えば、氏名、年齢、位置情報、購買履歴や、それらの組み合わせなどである。
【0020】
また、前提として、情報銀行を利用する個人の中に、攻撃者と結託する個人(結託個人)が1人以上いるとする。攻撃者は、結託個人へのオファー配信の有無を知ることができ、結託個人が情報銀行に預託するデータの属性や属性値を操作可能であるとする。このような知識や前提のもと、事業者が個人と結託し、攻撃用プログラムを情報銀行に送付することで、攻撃対象の個人のデータを盗取される場合がある。
【0021】
ここで、
図17を用いて、結託攻撃の具体例について説明する。
【0022】
図17は、結託攻撃の具体例を示す説明図である。ここでは、結託攻撃の目的を、攻撃対象の個人の年収が800万円以上であるかを知ることとする。攻撃対象の個人を特定する情報を、氏名“タロウ”とする。攻撃者は、「攻撃対象の個人の年収が800万円以上なら結託個人へオファーを配信し、それ以外なら結託個人へオファーを配信しない」プログラムを情報銀行に送付する。
【0023】
図17の例では、事業者が、個人(666)と結託する。そして、事業者が、攻撃対象の個人(氏名“タロウ”)の年収に反応して、結託個人(個人666)にオファーを配信するプログラムTを情報銀行に送付する。これにより、事業者は、結託個人(個人666)へオファーが来たとき、攻撃対象のタロウ(個人2)の年収が800万円以上であると知ることができる。
【0024】
そこで、本実施の形態では、例えば、事業者へのデータ提供なしにオファー配信(情報提供)を実現するにあたり、プログラム送付型オファー配信により条件指定の自由度を確保しつつ、結託個人を介して攻撃対象のデータを盗取する結託攻撃を防いで、個人データの流出リスクを低減させる評価方法について説明する。
【0025】
上述した従来方式のプログラム送付型オファー配信では、事業者が作成したプログラムが、個人全員のデータにアクセスできるため、攻撃による情報盗取が容易である。例えば、
図17の例では、タロウ(個人2)のデータを参照して、結託個人(個人666)へのオファーの配信有無を変更できるため、結託攻撃を容易に行うことができる。
【0026】
本実施の形態では、事業者が作成したプログラムへのデータの入力を制限することで、攻撃による情報盗取を防ぐ。ただし、ある個人へのオファー配信の有無を指示するにあたり、他の個人のデータを一切使用できないようにすると、例えば、「他者と比べて疲れている」などの相対評価を行うことができず、正当な事業者にとって制限が強い。
【0027】
このため、事業者が指定した方法によって作成した統計データ(分布情報)に限りアクセスできるようにする。統計データは、複数の個人のデータを統計処理して得られる情報であり、例えば、年収800万円以上の人数などの情報である。統計データは、複数の個人のデータの分布を調べ、その結果を数値で表現したものであるため、個人を特定する情報ではない。
【0028】
ところが、統計データからも、状況によっては情報盗取が可能な場合がある。例えば、統計処理して得られた値(統計値)が「1」の場合、個人を特定できてしまうため攻撃が可能となる。一例として、攻撃対象の個人(氏名“タロウ”)の年収が800万円以上かを知りたい場合を想定する。なお、氏名“タロウ”は、個人を特定できるデータとする。
【0029】
この場合、統計データの値(氏名“タロウ”、かつ、年収“800万円以上”の人数)が「1」の場合に、結託個人へオファー配信するプログラムを作成することで、攻撃者が“タロウ”の年収が800万円以上であることを知ることができる。このため、統計データが「1」の値を含む場合、統計データを開示しない対策を取ることで、情報盗取を防ぐことが考えられる。
【0030】
しかし、値が2以上であっても、結託している個人の人数が多いと、攻撃が可能となる。例えば、攻撃者が、9人の個人と結託して、結託個人の氏名を“タロウ”とし、年収を“800万円以上”として個人データを登録したとする。この場合、統計データの値(氏名“タロウ”、かつ、年収“800万円以上”の人数)が「10」の場合に、結託個人へオファー配信するプログラムを作成することで、攻撃者が“タロウ”の年収が800万円以上であることを知ることができる。
【0031】
すなわち、10人中9人は結託個人のため、結託個人へオファー配信されたということは、残り1人の攻撃対象の“タロウ”の年収が800万円以上であることがわかる。このように、統計データの値(人数)を監視するだけでは、結託攻撃による情報盗取を防ぐことは困難である。
【0032】
そこで、本実施の形態では、情報盗取が攻撃対象の個人1人のデータに依存したプログラムにより実現されることに着目し、例えば、統計データの人数が少し変化するだけで、出力が変わるようなプログラムを攻撃とみなすことで、結託攻撃を防ぐ。以下、情報処理装置101の処理例について説明する。
【0033】
(1)情報処理装置101は、プログラムfを受け付ける。ここで、プログラムfは、複数の個人の個人データに基づく所定の項目の項目値の分布を示す分布情報と、複数の個人のいずれかの個人の個人データとを入力として、当該いずれかの個人が情報提供の対象者であるか否かを示す情報を出力するプログラムである。プログラムf内の個人データに係る処理において、ある個人が情報提供の対象者であるかを決める際には、分布情報と同個人の個人データのみしか参照できないように制限される。
【0034】
以下の説明では、複数の個人を「個人1~m」と表記し(m:2以上の自然数)、個人1~mのいずれかの個人を「個人i」と表記する場合がある(i=1,2,…,m)。
【0035】
ここで、所定の項目は、各個人iの特徴をあらわすものであり、例えば、個人データに含まれる項目(例えば、年収)であってもよいし、また、個人データに含まれる複数の項目を組み合わせたもの(例えば、住所+年収)であってもよい。項目値は、例えば、所定の項目を「年収」とすると、854万円などの具体的な値である。
【0036】
分布情報は、個人1~mの所定の項目の項目値がどのように分布しているのかを特定する情報であり、例えば、個人1~mの所定の項目の項目値を統計処理して得られる複数の統計値(人数)を示す統計データである。例えば、統計値は、「年収が800万円以上の人数」や「年収が800万円未満の人数」などである。
【0037】
図1の例では、情報処理装置101は、事業者Xからオファー(高級温泉プラン)の配信依頼とともに、データ作成指定g
xとプログラムf
xとを受け付けた場合を想定する。データ作成指定g
xは、個人データベースDを統計処理して統計データsを作成する際の条件の指定を示す。統計データsは、分布情報に相当する。個人データベースDは、個人1~nの個人データd
1~d
mを記憶する。個人データd
iは、例えば、『事業者が作成したプログラムfによって、オファー配信の有無を判断するため』という利用目的に個人iが同意した項目(属性)のデータである。
【0038】
データ作成指定gxでは、例えば、情報銀行が公開している個人データの項目(例えば、年収)、その統計化の粒度(例えば、年収100万円刻み)、統計値の算出方法(例えば、SNS投稿に“温泉”が含まれていたら1人加算)などが指定される。プログラムfxは、統計データsと個人iの個人データdiとを入力として、個人iが情報提供の対象者であるか否かを示す情報oiを出力する。
【0039】
(2)情報処理装置101は、所定の規則に基づき、分布情報が示す分布を変化させて、互いに異なる分布を示す複数の分布情報を生成する。ここで、所定の規則は、任意に設定可能であり、例えば、分布情報(統計データs)が示す統計値を変化(増減)させる変化量を規定する。
【0040】
具体的には、例えば、情報処理装置101は、個人データベースDとデータ作成指定gxから統計データsを作成する。つぎに、情報処理装置101は、統計データsが示す統計値(人数)に所定のノイズ(例えば、「1」または「-1」)を加えることにより、互いに異なる複数の統計データs’を作成する。なお、統計データs’の一つとして、統計データsを流用することにしてもよい。
【0041】
図1の例では、統計データsが示す4個の統計値それぞれにノイズ(人数を1減らす)を加えることにより、統計データs’
1~s’
4が作成された場合を想定する。
【0042】
(3)情報処理装置101は、生成した複数の分布情報それぞれと個人iの個人データとを入力として、プログラムfを実行することで、複数の分布情報それぞれについて、個人iが情報提供の対象者であるか否かを示す情報を取得する。
【0043】
図1の例では、情報処理装置101は、各統計データs’
1~s’
4と個人iの個人データd
iとを入力として、プログラムf
xを実行することで、統計データs’
1~s’
4それぞれについて、個人iが情報提供の対象者であるか否かを示す情報o’
1~o’
4を取得する。
【0044】
(4)情報処理装置101は、複数の分布情報それぞれについて取得した情報に相違が生じるか否かによって、プログラムfの正当性を評価する。ここで、プログラムfの正当性を評価するとは、プログラムfが、正当であるか、正当ではない(攻撃用)かを判定することである。
【0045】
図1の例では、情報処理装置101は、例えば、情報o’
1~o’
4に相違が生じない場合(情報o’
1~o’
4が全て同じ情報)に、プログラムf
xが正当であると判定する。また、情報処理装置101は、情報o’
1~o’
4に相違が生じる場合(情報o’
1~o’
4の少なくともいずれかの情報が他の情報と異なる)には、プログラムf
xが正当ではないと判定する。
【0046】
このように、情報処理装置101によれば、結託攻撃が攻撃対象となる個人1人のデータに依存したプログラムにより実現されることに着目して、個人iへの情報提供(オファー配信)の有無を指示するプログラムfの正当性を評価することができる。これにより、プログラムfを用いて事業者へのデータ提供なしにオファー配信を行うにあたり、攻撃用プログラムを検出して結託攻撃を防ぐことができ、個人データの流出リスクを低減させることができる。
【0047】
図1の例では、プログラムf
xが正当ではないと判定された場合には、プログラムf
xを攻撃用プログラムとして検出でき、事業者Xによる結託攻撃を防いで、個人iの情報が盗取されるのを防ぐことができる。なお、プログラムf
xが正当であると判定された場合には、例えば、情報処理装置101は、プログラムf
xを実行して得られる出力結果に従って、個人iへオファー(高級温泉プラン)を配信する。
【0048】
(情報提供システム200のシステム構成例)
つぎに、
図1に示した情報処理装置101を含む情報提供システム200のシステム構成例について説明する。情報提供システム200は、例えば、情報銀行を介して、事業者からのオファーを個人へ配信するコンピュータシステムに適用される。
【0049】
図2は、情報提供システム200のシステム構成例を示す説明図である。
図2において、情報提供システム200は、情報処理装置101と、複数の事業者端末201と、複数の個人端末202と、を含む。情報提供システム200において、情報処理装置101、複数の事業者端末201および複数の個人端末202は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
【0050】
情報処理装置101は、個人データベースDを有し、個人iが情報提供の対象者であるか否かを示す情報o
iを出力するプログラムfを評価する。情報処理装置101は、例えば、情報銀行が運用するサーバである。なお、個人データベースDの記憶内容については、
図5を用いて後述する。
【0051】
事業者端末201は、オファー配信の依頼元である事業者が使用するコンピュータである。事業者端末201は、例えば、サーバであってもよく、また、PC(Personal Computer)、タブレット型PCなどであってもよい。
【0052】
個人端末202は、情報提供システム200のユーザ(個人i)が使用するコンピュータである。個人端末202は、例えば、スマートフォン、タブレット型PCなどである。
【0053】
(情報処理装置101のハードウェア構成例)
つぎに、情報処理装置101のハードウェア構成例について説明する。
【0054】
図3は、情報処理装置101のハードウェア構成例を示すブロック図である。
図3において、情報処理装置101は、CPU(Central Processing Unit)301と、メモリ302と、ディスクドライブ303と、ディスク304と、通信I/F(Interface)305と、可搬型記録媒体I/F306と、可搬型記録媒体307と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
【0055】
ここで、CPU301は、情報処理装置101の全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOS(Operating System)のプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
【0056】
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【0057】
通信I/F305は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、
図2に示した事業者端末201、個人端末202)に接続される。そして、通信I/F305は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F305には、例えば、モデムやLANアダプタなどを採用することができる。
【0058】
可搬型記録媒体I/F306は、CPU301の制御に従って可搬型記録媒体307に対するデータのリード/ライトを制御する。可搬型記録媒体307は、可搬型記録媒体I/F306の制御で書き込まれたデータを記憶する。可搬型記録媒体307としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
【0059】
なお、情報処理装置101は、上述した構成部のほかに、例えば、SSD(Solid State Drive)、入力装置、ディスプレイ等を有することにしてもよい。また、情報処理装置101は、上述した構成部のうち、例えば、ディスクドライブ303、ディスク304、可搬型記録媒体I/F306、可搬型記録媒体307を有していなくてもよい。
図2に示した事業者端末201についても、情報処理装置101と同様のハードウェア構成により実現することができる。
【0060】
(個人端末202のハードウェア構成例)
つぎに、個人端末202のハードウェア構成例について説明する。
【0061】
図4は、個人端末202のハードウェア構成例を示すブロック図である。
図4において、個人端末202は、CPU401と、メモリ402と、GPS(Global Positioning System)ユニット403と、通信I/F404と、ディスプレイ405と、入力装置406と、可搬型記録媒体I/F407と、可搬型記録媒体408と、を有する。また、各構成部はバス400によってそれぞれ接続される。
【0062】
ここで、CPU401は、個人端末202の全体の制御を司る。CPU401は、複数のコアを有していてもよい。メモリ402は、例えば、ROM、RAMおよびフラッシュROMなどを有する記憶部である。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU401のワークエリアとして使用される。メモリ402に記憶されるプログラムは、CPU401にロードされることで、コーディングされている処理をCPU401に実行させる。
【0063】
GPSユニット403は、GPS衛星からの電波を受信し、個人端末202の位置情報を出力する。個人端末202の位置情報は、例えば、緯度、経度などの地球上の1点を特定する情報である。また、情報処理装置101は、DGPS(Differential GPS)により、GPSユニット403から出力される位置情報を補正することにしてもよい。また、衛星として、例えば、準天頂衛星システムの衛星を用いることにしてもよい。
【0064】
通信I/F404は、通信回線を通じてネットワーク210(
図2参照)に接続され、ネットワーク210を介して外部のコンピュータ(例えば、情報処理装置101)に接続される。そして、通信I/F404は、ネットワーク210と自装置内部とのインターフェースを司り、外部装置からのデータの入出力を制御する。
【0065】
ディスプレイ405は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する表示装置である。ディスプレイ405としては、例えば、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどを採用することができる。
【0066】
入力装置406は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置406は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。
【0067】
可搬型記録媒体I/F407は、CPU401の制御に従って可搬型記録媒体408に対するデータのリード/ライトを制御する。可搬型記録媒体408は、可搬型記録媒体I/F407の制御で書き込まれたデータを記憶する。
【0068】
なお、個人端末202は、上述した構成部のほかに、例えば、HDD(Hard Disk Drive)、SSD、スキャナ、プリンタなどを有することにしてもよい。また、個人端末202は、上述した構成部のうち、例えば、可搬型記録媒体I/F407、可搬型記録媒体408を有していなくてもよい。
【0069】
(個人データベースDの記憶内容)
つぎに、情報処理装置101が有する個人データベースDの記憶内容について説明する。個人データベースDは、例えば、
図3に示したメモリ302、ディスク304などの記憶装置により実現される。
【0070】
図5は、個人データベースDの記憶内容の一例を示す説明図である。
図5において、個人データベースDは、個人ID、位置情報、年収、性別および年齢のフィールドを有し、各フィールドに情報を設定することで、個人データd
1~d
mをレコードとして記憶する。個人データd
iは、『事業者が作成したプログラムfによって、オファー配信の有無を判断するため』という利用目的に個人iが同意した項目(属性項目)のデータである。
【0071】
ここで、個人IDは、個人iを一意に識別する識別子である。位置情報は、個人iの現在地を示す位置情報(緯度、経度)である。位置情報は、例えば、個人端末202のGPSユニット403(
図4参照)により計測され、個人端末202から情報銀行(情報処理装置101)に定期的にアップされる。年収は、個人iの年収である(単位:万円)。性別は、個人iの性別である。年齢は、個人iの年齢である。
【0072】
なお、図示は省略するが、個人データdiには、例えば、住所、健康データ、購入履歴、趣味、SNS投稿などの他のフィールド(項目)を有していてもよい。また、個人データdiには、情報が未設定のフィールドが含まれていてもよい。
【0073】
(情報処理装置101の機能的構成例)
図6は、情報処理装置101の機能的構成例を示すブロック図である。
図6において、情報処理装置101は、受付部601と、作成部602と、生成部603と、評価部604と、提供部605と、出力部606と、を含む。具体的には、例えば、受付部601~出力部606は、
図3に示したメモリ302、ディスク304、可搬型記録媒体307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。
【0074】
受付部601は、プログラムfを受け付ける。ここで、プログラムfは、統計データsと個人iの個人データdiとを入力として、個人iが情報提供の対象者であるか否かを示す情報oiを出力する(oi=f(s,di))。統計データsは、個人1~mの個人データd1~dmに基づく所定の項目の項目値の分布を示す分布情報である。プログラムf内の個人データに係る処理において、個人iへの情報提供(オファー配信)の有無を決める際には、統計データsと同個人iの個人データdiのみしか参照できないように制限される。
【0075】
また、受付部601は、データ作成指定gを受け付ける。ここで、データ作成指定gは、個人1~mの個人データd
1~d
mを統計処理して統計データsを作成する際の条件の指定を示す。具体的には、例えば、受付部601は、事業者端末201(
図2参照)からオファー配信依頼を受信することにより、当該オファー配信依頼に含まれるデータ作成指定gとプログラムfとを受け付けることにしてもよい。
【0076】
オファー配信依頼は、個人iへのオファーの配信を依頼するものである。オファーの内容は、例えば、事業者によって任意に設定可能である。なお、オファー配信依頼に含まれるデータ作成指定gおよびプログラムfは、例えば、オファー配信依頼の依頼元の事業者と対応付けて管理される。
【0077】
ここで、
図7および
図8を用いて、データ作成指定gの具体例について説明する。
【0078】
図7は、データ作成指定gの具体例を示す説明図である。
図7において、データ作成指定gは、個人データベースDを統計処理して統計データs(分布情報)を作成する際の条件の指定を示す。データ作成指定gは、ファイル指定g.Pと条件g.Sとを含む。
【0079】
ファイル指定g.Pは、統計データsの作成に用いる実行ファイル(例えば、
図8参照)と実行ファイルの引数として利用する属性項目との組を示す。実行ファイルIDは、実行ファイルを一意に識別する識別子である。属性項目は、個人データd
iの項目(フィールド)に相当する。ファイル指定g.Pは、統計データsを作成するにあたり、個人iをカウントするか否かを決めるための情報である。
【0080】
また、条件g.Sは、統計データsを作成する際の条件を示す。ここでは、条件g.Sは、どの実行ファイルの組み合わせで統計データsを作成するのかを示す。実行ファイルIDで指示された実行ファイルの戻り値に基づいて統計データsが作成される。
【0081】
図8は、実行ファイルの具体例を示す説明図である。
図8において、実行ファイル801~804は、統計データsの作成に用いられる実行ファイルのコード例を示す。実行ファイル801は、
図7に示した実行ファイルID「1」の実行ファイル「a.exe」に相当する。
【0082】
実行ファイル802は、
図7に示した実行ファイルID「2」の実行ファイル「b.exe」に相当する。なお、calDis(x,y)は、x、y間の距離(m)を算出する関数である。実行ファイル803は、
図7に示した実行ファイルID「3」の実行ファイル「c.exe」に相当する。実行ファイル804は、
図7に示した実行ファイルID「4」の実行ファイル「d.exe」に相当する。
【0083】
図7および
図8に示したデータ作成指定gによれば、「武蔵中原駅/武蔵小杉駅から1km以内」と「年収800万円以上/未満」とを条件として統計データsを作成するよう指定することができる。
【0084】
つぎに、
図9を用いて、プログラムfの具体例について説明する。ここでは、高所得者(年収800万円以上)が最多の駅周辺にいる個人iへ、駅近くの高級マンションのオファーを配信する場合を例に挙げて説明する。
【0085】
図9は、プログラムfの具体例を示す説明図である。
図9において、プログラム900は、統計データsと個人iの個人データd
iとを入力として、個人iが情報提供の対象者であるか否かを示す情報o
iを出力するプログラムfの一例である。“d.属性項目名”は、個人iの個人データd
iから抽出される、属性項目名で指定された属性項目の項目値を示す。
【0086】
プログラム900には、統計データsの要素s1,s2のうち、要素s1が示す統計値が大きいときは、個人iが、武蔵中原駅の1km以内に存在し、かつ、年収800万円以上の場合に「oi=1」とし、それ以外は「oi=0」とする処理が記述されている。要素s1が示す統計値は、「武蔵中原駅の1km以内に存在し、かつ、年収800万円以上の人数」である。要素s2が示す統計値は、「武蔵小杉駅の1km以内に存在し、かつ、年収800万円以上の人数」である。
【0087】
また、要素s1,s2のうち、要素s2が示す統計値が大きいときは、個人iが、武蔵小杉駅の1km以内に存在し、かつ、年収800万円以上の場合に「oi=1」とし、それ以外は「oi=0」とする処理が記述されている。なお、calDis(x,y)は、x、y間の距離(m)を算出する関数である。argmax(s,index)は、配列indexの要素で指定された要素番号(今回は1と2)で参照されるsの要素のうち、最大値となる要素の要素番号(今回は1または2)を返す関数である。
【0088】
図6の説明に戻り、作成部602は、個人データベースDを統計処理して統計データsを作成する。具体的には、例えば、作成部602は、データ作成指定gを参照して、個人1~mの個人データd
1~d
mに基づき所定の項目の項目値を統計処理することで、所定の項目に関する複数の統計値を示す統計データsを作成する。
【0089】
所定の項目は、個人データdiに含まれる項目、または、個人データdiに含まれる複数の項目の組合せによって指定される。所定の項目は、例えば、ファイル指定g.Pで指定される。統計処理の内容は、例えば、条件g.Sで指定される。
【0090】
ここで、
図10を用いて、統計データsを作成する際の具体的な処理内容について説明する。
【0091】
図10は、統計データsを作成する具体的な処理内容の一例を示す説明図である。
図10において、(処理手順1.)作成部602は、統計データsの全ての要素s(s[1]~s[4])に0を代入する。なお、s[1]~s[4]は、要素s1~s4に対応する。(処理手順2.)作成部602は、個人データベースD内の全ての個人データd
iについて、下記(a)、(b)および(c)の処理を実行する。
【0092】
(a)作成部602は、ファイル指定g.Pで指定された属性項目の項目値を個人データdiから抽出して、実行ファイルに引数として入力する。
【0093】
(b)作成部602は、ファイル指定g.Pの実行ファイルをサンドボックス上で実行する。
【0094】
(c)作成部602は、条件g.Sの統計データID「k」に紐付いた実行ファイルの戻り値の全てが“True"の場合に、「s[k]←s[k]+1」を実行する。
【0095】
これにより、要素s1~s4を含む統計データsを作成することができる。要素s1は、「武蔵中原駅の1km以内に存在し、かつ、年収800万円以上の人数」である。要素s2は、「武蔵小杉駅の1km以内に存在し、かつ、年収800万円以上の人数」を示す。要素s3は、「武蔵中原駅の1km以内に存在し、かつ、年収800万円未満の人数」である。要素s4は、「武蔵小杉駅の1km以内に存在し、かつ、年収800万円未満の人数」を示す。
【0096】
つぎに、
図11を用いて、情報処理装置101においてプログラムfを実行した際の動作例について説明する。ここでは、プログラムfとして、
図9に示したプログラム900を実行する場合を例に挙げて説明する。また、プログラムfに入力として与える統計データsとして、
図10に示した統計データsを例に挙げて説明する。
【0097】
図11は、プログラムfを実行した際の動作例を示す説明図である。
図11において、情報処理装置101は、個人データベースD内の全ての個人データd
iについて、下記(i)、(ii)および(iii)の処理を実行する(m回実行)。
【0098】
(i)情報処理装置101は、統計データsと個人データdiとを引数としてプログラムfに与える。
【0099】
(ii)情報処理装置101は、プログラムfをサンドボックス上で実行する。サンドボックスとは、インターネットへの接続やプログラムによるファイル入出力、他のプログラムとの連携などを制限するセキュリティ機構(環境)である。
【0100】
(iii)情報処理装置101は、戻り値をoiへ代入する。
【0101】
これにより、プログラムf(
図9に示したプログラム900)によれば、統計データsから高所得者(年収800万円以上)が最多の駅が武蔵中原駅であることを特定し、個人データd
iに基づき高所得者かつ武蔵中原駅周辺にいる個人iのo
iを「1」にすることができる。なお、プログラムfは統計データsと個人データd
iとを入力として処理を実行するため、個人iへのオファー配信の有無を示す結果(o
i)は、統計データsと個人データd
iに基づいてのみ決定される。
【0102】
図6の説明に戻り、生成部603は、所定の規則に基づき、統計データs(分布情報)が示す分布を変化させて、互いに異なる分布を示す複数の統計データs’を生成する。具体的には、例えば、生成部603は、統計データsが示す複数の統計値(要素)それぞれに所定のノイズを加えることにより、互いに異なる分布を示す複数の統計データs’を生成する。所定のノイズは、任意に設定可能であり、例えば、1または-1に設定される。
【0103】
これにより、統計データsが示す分布を変化させて、当該分布とは異なり、かつ、互いに異なる分布を示す複数の統計データs’を生成することができる。なお、複数の統計データs’の生成例については、
図13を用いて後述する。
【0104】
評価部604は、生成された複数の統計データs’それぞれと個人iの個人データdiとを入力として、プログラムfを実行することで、複数の統計データs’それぞれについて、個人iが情報提供の対象者であるか否かを示す情報o’iを取得する。そして、評価部604は、複数の統計データs’それぞれについて取得した情報o’iに相違が生じるか否かによって、プログラムfの正当性を評価する。
【0105】
以下の説明では、複数の統計データs’を「統計データs’1~s’n」と表記する場合がある(n:2以上の自然数)。また、統計データs’1~s’nのうちの任意の統計データを「統計データs’j」と表記する場合がある(j=1,2,…,n)。また、統計データs’jと個人データdiとを入力として、プログラムfを実行することで得られる情報o’iを「o’j,i」と表記する場合がある。
【0106】
具体的には、例えば、評価部604は、統計データs’
jそれぞれについて取得した情報o’
j,iに相違が生じない場合に、プログラムfが正当であると判定する。また、評価部604は、統計データs’
jそれぞれについて取得した情報o’
j,iに相違が生じる場合には、プログラムfが正当ではないと判定する。なお、プログラムfの評価例については、
図13を用いて後述する。
【0107】
提供部605は、プログラムfが正当であると判定された場合、生成された統計データs’1~s’nのいずれかの統計データs’jと個人データdiとを入力として、プログラムfを実行して得られる出力結果(o’j,i)から、個人iが情報提供の対象者であるか否かを判断する。
【0108】
具体的には、例えば、提供部605は、出力結果が「o’j,i=1」の場合、個人iが情報提供の対象者であると判断する。また、提供部605は、出力結果が「o’j,i=0」の場合には、個人iが情報提供の対象者ではないと判断する。
【0109】
なお、提供部605は、統計データsと個人データdiとを入力として、プログラムfを実行して得られる出力結果(oi)から、個人iが情報提供の対象者であるか否かを判断することにしてもよい。
【0110】
また、提供部605は、情報提供の対象者であると判断した個人iに対する情報提供を行う。具体的には、例えば、提供部605は、情報提供の対象者であると判断した個人iの個人端末202に対して、事業者から配信依頼されたオファーを配信する。ただし個人iに対する情報提供は、情報処理装置101とは異なる他のコンピュータから行うことにしてもよい。
【0111】
出力部606は、プログラムfの評価結果を出力する。具体的には、例えば、出力部606は、プログラムfが正当ではないと判定された場合に、情報提供の依頼元を特定する情報と対応付けて、プログラムfの評価結果を出力することにしてもよい。情報提供の依頼元は、プログラムfを含むオファー配信(情報提供)の依頼元の事業者である。
【0112】
また、出力部606は、プログラムfが正当ではないと判定された場合に、生成された統計データs’j間で情報o’j,iの相違が生じた個人iを特定する情報を出力することにしてもよい。ここで、統計データs’j間で情報o’j,iの相違が生じた個人iは、結託個人である可能性が高い個人である。
【0113】
具体的には、例えば、出力部606は、プログラムfが正当ではないと判定された場合に、情報提供の依頼元を特定する情報と、統計データs’j間で情報o’j,iの相違が生じた個人iを特定する情報とを対応付けて、プログラムfの評価結果を出力することにしてもよい。
【0114】
なお、出力部606の出力形式としては、例えば、メモリ302、ディスク304などの記憶装置への記憶、通信I/F305による他のコンピュータへの送信、不図示のディスプレイへの表示、不図示のプリンタへの印刷出力などがある。
【0115】
また、提供部605は、プログラムfが正当でないと判定された場合には、配信停止等の処理を行うことにしてもよい。具体的には、例えば、提供部605は、正当でないと判定されたプログラムfに対応する事業者から依頼されたオファーについて、全個人1~mへのオファー配信を行わないことにしてもよい。また、提供部605は、統計データs’j間で情報o’j,iの相違が生じた個人i(結託個人と予想される個人)へのオファー配信を確率的に変化させる処理を行うことにしてもよい。
【0116】
(攻撃用のプログラムfの具体例)
つぎに、
図12を用いて、攻撃用のプログラムfの具体例について説明する。
【0117】
図12は、攻撃用のプログラムfの具体例を示す説明図である。ここでは、攻撃者の目的は、攻撃対象の個人の年収が800万円以上であるかを知ることであるとする。攻撃者の知識として、武蔵中原駅の1km以内に個人1人しかおらず、その個人が攻撃対象であることを知っているとする。
【0118】
また、前提として、攻撃者が結託個人を80人用意し、以下のように個人データベースD内の個人データの属性項目の項目値を操作したとする。なお、「年齢:120歳」は、個人データベースD内に1人しかいない値であり、個人を特定可能な情報であるとする。
【0119】
結託個人30人⇒位置情報:武蔵中原駅の1km以内、年収:900万円
結託個人50人⇒位置情報:武蔵中原駅の1km以内、年収:400万円
結託個人80人のうちのいずれか1人の個人(個人666)⇒年齢:120歳
【0120】
図12において、プログラム1200は、攻撃対象の個人666が年収800万円以上であるかを知るための攻撃用のプログラムfの一例である。プログラム1200には、統計データs(
図10参照)の要素s1が示す統計値から30を減算した値が1であれば、属性項目「年齢」の項目値が「120」の個人iが情報提供の対象者であるか否かを示す情報o
iを「o
i=1」とするコード1201が記述されている。
【0121】
プログラム1200によれば、何ら対策を講じなければ、攻撃者は、個人666にオファーが配信されると、攻撃対象である個人の年収が800万円以上であると知ることができてしまう。
【0122】
つぎに、
図13を用いて、プログラムfの評価例について説明する。ここでは、評価対象のプログラムfとして、
図9に示したプログラム900および
図12に示したプログラム1200を例に挙げて説明する。
【0123】
図13は、プログラムfの評価例を示す説明図である。
図13において、統計データsは、事業者から評価対象のプログラムfとともに受け付けた、
図7に示したデータ作成指定gをもとに作成された情報であり、以下の4つの要素(要素s1~s4)を含む。
【0124】
要素s1:武蔵中原駅の1km以内に存在し、かつ、年収800万円以上の人数
要素s2:武蔵小杉駅の1km以内に存在し、かつ、年収800万円以上の人数
要素s3:武蔵中原駅の1km以内に存在し、かつ、年収800万円未満の人数
要素s4:武蔵小杉駅の1km以内に存在し、かつ、年収800万円未満の人数
【0125】
この場合、生成部603は、統計データsが示す要素s1~s4それぞれに所定のノイズを加えることにより、互いに異なる分布を示す統計データs’1~s’4を生成する。ここでは、所定のノイズを「-1」とする。
【0126】
統計データs’1は、統計データsの要素s1に「-1」を加えたものである。統計データs’2は、統計データsの要素s2に「-1」を加えたものである。統計データs’3は、統計データsの要素s3に「-1」を加えたものである。統計データs’4は、統計データsの要素s4に「-1」を加えたものである。
【0127】
評価部604は、生成された統計データs’1~s’4それぞれと個人データdiとを入力として、プログラムf(プログラム900,1200)を実行することで、統計データs’1~s’4それぞれについて、個人iが情報提供の対象者であるか否かを示す情報o’1,i~o’4,iを取得する。
【0128】
ここで、出力結果1301は、
図9に示したプログラム900を評価対象のプログラムfとした場合の出力結果を示している。出力結果1302は、
図12に示したプログラム1200を評価対象のプログラムfとした場合の出力結果を示している。なお、出力結果1301,1302において、i(縦)と各o’
1~o’
4(横)とに対応する値が情報o’
1,i~o’
4,iを示している。
【0129】
評価部604は、各出力結果1301,1302を参照して、情報o’1,i~o’4,iに相違が生じるか否かによって、各プログラムf(プログラム900,1200)を評価する。ここでは、評価部604は、出力結果1301から、情報o’1,i~o’4,iに相違が生じないため、プログラムf(プログラム900)が正当であると判定する。この場合、提供部605は、例えば、情報o’1,i~o’4,iからランダムに選択した情報o’j,iをもとに、個人iにオファーを配信するか否か判断する。
【0130】
一方、出力結果1302では、情報o’1,2~o’4,2に相違が生じている。この場合、評価部604は、プログラムf(プログラム1200)が正当ではないと判定する。すなわち、統計データs’jが1人変わったくらいで出力が同一でなくなるのは攻撃の可能性が高いため、評価部604は、プログラムf(プログラム1200)が、攻撃用のプログラムfであると判定する。この場合、提供部605は、例えば、配信停止等の処理を行う。
【0131】
(情報提供システム200の動作例)
つぎに、情報提供システム200の動作例について説明する。
【0132】
図14は、情報提供システム200の動作例を示すシーケンス図である。
図14のシーケンス図において、個人iは、個人端末202を用いて、情報銀行に個人データd
iを提供する(ステップS1401)。個人iから提供された個人データd
iは、個人データベースDに登録される。
【0133】
事業者は、事業者端末201を用いて、情報処理装置101(情報銀行)にオファー配信依頼を送付する(ステップS1402)。オファー配信依頼には、データ作成指定gとプログラムfとが含まれる。
【0134】
情報処理装置101は、事業者からのオファー配信依頼に応じて、当該オファー配信依頼に含まれるプログラムfの正当性を評価する評価処理を実行する(ステップS1403)。評価処理の具体的な処理手順については、
図15および
図16を用いて後述する。
【0135】
情報処理装置101は、プログラムfが正当であると判定した場合、プログラムfを実行して得られた出力結果(後述する「ベクトルO’j」)に従って、事業者から配信依頼されたオファーを個人iに配信する(ステップS1404)。
【0136】
これにより、事業者からのオファー配信依頼に応じて、事業者が作成したプログラムfの正当性が確認できた場合に、プログラムfを実行して得られた出力結果に従って、個人iに対してオファーを配信することができる。
【0137】
(情報処理装置101の評価処理手順)
つぎに、
図15および
図16を用いて、情報処理装置101の評価処理手順について説明する。
【0138】
図15および
図16は、情報処理装置101の評価処理手順の一例を示すフローチャートである。
図15のフローチャートにおいて、まず、情報処理装置101は、事業者からのオファー配信依頼に含まれるデータ作成指定gとプログラムfとを受け付ける(ステップS1501)。
【0139】
そして、情報処理装置101は、受け付けたデータ作成指定gを参照して、個人データベースDの統計データsを作成する(ステップS1502)。統計データsは、個人データベースD内の個人データd1~dmに基づき所定の項目の項目値を統計処理して得られる分布情報である。統計データsは、データ作成指定gで指定された属性項目(所定の項目)に関するn個の要素(統計値)を含む。
【0140】
つぎに、情報処理装置101は、統計データsが示すn個の各要素に少量ノイズを加えることにより、互いに異なる分布を示す統計データs’1~s’nを生成する(ステップS1503)。つぎに、情報処理装置101は、統計データs’jの「j」を「j=1」とし(ステップS1504)、個人データdiの「i」を「i=1」とする(ステップS1505)。
【0141】
そして、情報処理装置101は、統計データs’jと個人データdiとを入力として、プログラムfを実行することで、個人iが情報提供の対象者であるか否かを示す情報o’j,iを取得する(ステップS1506)。なお、プログラムfは統計データs’jと個人データdiとを入力として処理を実行するため、個人iへの情報提供(オファー配信)の有無を示す結果(o’j,i)は、統計データs’jと個人データdiに基づいてのみ決定される。
【0142】
つぎに、情報処理装置101は、「i」をインクリメントして(ステップS1507)、「i」が「m」より大きくなったか否かを判断する(ステップS1508)。ここで、「i」が「m」以下の場合(ステップS1508:No)、情報処理装置101は、ステップS1506に戻る。一方、「i」が「m」より大きくなった場合(ステップS1508:Yes)、情報処理装置101は、i番目の要素をo’j,iとするベクトルO’jを作成する(ステップS1509)。
【0143】
つぎに、情報処理装置101は、「j」をインクリメントして(ステップS1510)、「j」が「n」より大きくなったか否かを判断する(ステップS1511)。ここで、「j」が「n」以下の場合(ステップS1511:No)、情報処理装置101は、ステップS1505に戻る。一方、「j」が「n」より大きくなった場合(ステップS1511:Yes)、情報処理装置101は、
図16に示すステップS1601に移行する。
【0144】
図16のフローチャートにおいて、まず、情報処理装置101は、個人データd
iの「i」を「i=1」とし(ステップS1601)、変数xを「x=0」とし(ステップS1602)、ベクトルO’
jの「j」を「j=1」とする(ステップS1603)。
【0145】
つぎに、情報処理装置101は、変数xを「x=x+o’j,i」とする(ステップS1604)。そして、情報処理装置101は、「j」をインクリメントして(ステップS1605)、「j」が「n」より大きくなったか否かを判断する(ステップS1606)。ここで、「j」が「n」以下の場合(ステップS1606:No)、情報処理装置101は、ステップS1604に戻る。
【0146】
一方、「j」が「n」より大きくなった場合(ステップS1606:Yes)、情報処理装置101は、変数xが「x=0」または「x=n」であるか否かを判断する(ステップS1607)。ここで、変数xが「x=0」または「x=n」の場合(ステップS1607:Yes)、情報処理装置101は、「i」をインクリメントする(ステップS1608)。
【0147】
そして、情報処理装置101は、「i」が「m」より大きくなったか否かを判断する(ステップS1609)。ここで、「i」が「m」以下の場合(ステップS1609:No)、情報処理装置101は、ステップS1602に戻る。
【0148】
一方、「i」が「m」より大きくなった場合(ステップS1609:Yes)、情報処理装置101は、ベクトルO’1~O’nからベクトルO’jをランダムに選択して(ステップS1610)、本フローチャートによる一連の処理を終了する。
【0149】
また、ステップS1607において、変数xが「x=0」または「x=n」ではない場合(ステップS1607:No)、情報処理装置101は、事業者から配信要求されたオファーの配信停止等の処理を行って(ステップS1611)、本フローチャートによる一連の処理を終了する。
【0150】
これにより、事業者が作成したプログラムfの正当性を評価することができる。また、プログラムfが正当ではないと判定した場合には、事業者から配信要求されたオファーの配信停止等の処理を行うことができる。
【0151】
なお、ステップS1611において、情報処理装置101は、例えば、オファー配信の依頼元である事業者を特定する情報と対応付けて、プログラムfの評価結果を出力することにしてもよい。この際、情報処理装置101は、統計データs’j間で情報o’j,iの相違が生じた個人iを特定する情報をあわせて出力することにしてもよい。
【0152】
以上説明したように、実施の形態にかかる情報処理装置101によれば、個人データベースD(個人1~mの個人データd1~dm)の統計データsと、個人iの個人データdiとを入力として、個人iが情報提供の対象者であるか否かを示す情報oiを出力するプログラムfを受け付け、所定の規則に基づき、統計データsが示す分布を変化させて、互いに異なる分布を示す複数の統計データs’1~s’nを生成することができる。そして、情報処理装置101によれば、生成した複数の統計データs’jそれぞれと個人データdiとを入力として、プログラムfを実行することで、複数の統計データs’jそれぞれについて、個人iが情報提供の対象者であるか否かを示す情報o’j,iを取得し、複数の統計データs’jそれぞれについて取得した情報o’j,iに相違が生じるか否かによって、プログラムfの正当性を評価することができる。
【0153】
これにより、結託攻撃が攻撃対象となる個人1人のデータに依存したプログラムにより実現されることに着目して、個人iへのオファー配信(情報提供)の有無を指示するプログラムfの正当性を評価することができる。このため、プログラムfを用いて事業者へのデータ提供なしにオファー配信を行うにあたり、攻撃用プログラムを検出して結託攻撃を防ぐことができ、個人データの流出リスクを低減させることができる。
【0154】
また、情報処理装置101によれば、複数の統計データs’jそれぞれについて取得した情報o’j,iに相違が生じない場合に、プログラムfが正当であると判定し、複数の統計データs’jそれぞれについて取得した情報o’j,iに相違が生じる場合には、プログラムfが正当でないと判定することができる。
【0155】
これにより、統計データsの値(人数)が少し変化するだけで、出力(オファー配信の有無)が変わるようなプログラムfを攻撃用プログラムとして検出することができる。また、正当な事業者のプログラムfは統計的な情報に依存しており、例えば、人数が少し変化するだけで出力が変わることは少ないため、攻撃用プログラムの誤検出は少ないといえる。
【0156】
また、情報処理装置101によれば、個人データベースDを統計処理して所定の項目の項目値の分布を示す統計データsを作成する際のデータ作成指定gの指定を受け付けることができる。そして、情報処理装置101によれば、データ作成指定gを参照して、個人データベースDに基づき所定の項目の項目値を統計処理することで、統計データsを作成することができる。
【0157】
これにより、個人iへのオファー配信の有無を決める際に利用される統計データsをどのように作成するのかを指定することが可能となり、オファー配信の依頼元である事業者による条件指定の自由度を高めることができる。
【0158】
また、情報処理装置101によれば、統計データsが示すn個の各要素に所定のノイズを加えることにより、互いに異なる分布を示す統計データs’1~s’nを生成することができる。所定のノイズは、例えば、1または-1である。
【0159】
これにより、統計データsが表している個人1~m全体の特徴(性質、傾向など)を残しつつ、互いに異なる統計データs’1~s’nを生成することができる。
【0160】
また、情報処理装置101によれば、プログラムfが正当であると判定した場合、統計データs’1~s’nのいずれかの統計データs’jと個人データdiとを入力として、プログラムfを実行して得られる出力結果o’j,iから、個人iが情報提供の対象者であるか否かを判断することができる。
【0161】
これにより、統計データsに少量ノイズを加えると出力が変化するプログラムfを攻撃とみなすという仕組みを、攻撃者に気付かれた場合の脅威を防ぐことができる。例えば、仕組みを知った攻撃者は、自身の攻撃が検出されないように、「統計データsにノイズを加える」という処理を検出したら、オファーの配信有無の結果が全て「1」または「0」となるプログラムfを作成することが考えられる。この場合、情報o’j,iに相違が生じないことになる。しかし、このような不正が行われたとしても、個人iへのオファー配信の有無を決める際に用いる統計データを、統計データsではなく、統計データs’1~s’nから選ぶことで、オファー配信の有無をコントロールできなくして、攻撃者による情報盗取を防ぐことができる。また、統計データsに加えるノイズを少量(例えば、1または-1)とすることで、正当な事業者が期待する配信先にオファーが送られなくなるといった事態を防ぐことができる。
【0162】
また、情報処理装置101によれば、プログラムfの評価結果を出力することができる。これにより、攻撃用プログラムである可能性が高いプログラムfを特定可能な情報を提供することができる。
【0163】
また、情報処理装置101によれば、プログラムfが正当でないと判定した場合、オファー配信の依頼元を特定する情報を出力することができる。これにより、攻撃者である可能性が高い事業者を特定可能な情報を提供することができる。
【0164】
また、情報処理装置101によれば、プログラムfが正当ではないと判定した場合、統計データs’j間で情報o’j,iの相違が生じた個人iを特定する情報を出力することができる。これにより、結託個人である可能性が高い個人iを特定可能な情報を提供することができる。
【0165】
これらのことから、情報処理装置101および情報提供システム200によれば、情報銀行における安全なプログラム送付型オファー配信を実現して、個人データの利活用を促進することができる。例えば、事業者へのデータ提供なしにオファー配信を行うにあたり、個人データベースDの統計データsを利用して、個人iへのオファー配信の有無を指示することが可能となり、事業者による条件指定の自由度を高めることができる。また、結託攻撃が攻撃対象となる個人1人のデータに依存したプログラムにより実現されることを利用して、攻撃用プログラムを精度よく検出可能となり、結託攻撃による個人データの流出リスクを低減させることができる。
【0166】
なお、本実施の形態で説明した評価方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本評価プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本評価プログラムは、インターネット等のネットワークを介して配布してもよい。
【0167】
また、本実施の形態で説明した情報処理装置101は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
【0168】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0169】
(付記1)複数の個人の個人データに基づく所定の項目の項目値の分布を示す分布情報と、前記複数の個人のいずれかの個人の個人データとを入力として、前記いずれかの個人が情報提供の対象者であるか否かを示す情報を出力するプログラムを受け付け、
所定の規則に基づき、前記分布情報が示す分布を変化させて、互いに異なる分布を示す複数の分布情報を生成し、
生成した前記複数の分布情報それぞれと前記いずれかの個人の個人データとを入力として、前記プログラムを実行することで、前記複数の分布情報それぞれについて、前記いずれかの個人が情報提供の対象者であるか否かを示す情報を取得し、
前記複数の分布情報それぞれについて取得した前記情報に相違が生じるか否かによって、前記プログラムの正当性を評価する、
処理をコンピュータが実行することを特徴とする評価方法。
【0170】
(付記2)前記評価する処理は、
前記複数の分布情報それぞれについて取得した前記情報に相違が生じない場合に、前記プログラムが正当であると判定し、
前記複数の分布情報それぞれについて取得した前記情報に相違が生じる場合には、前記プログラムが正当でないと判定する、
ことを特徴とする付記1に記載の評価方法。
【0171】
(付記3)前記複数の個人の個人データを統計処理して所定の項目の項目値の分布を示す分布情報を作成する際の条件の指定を受け付け、
前記条件を参照して、前記複数の個人の個人データに基づき前記所定の項目の項目値を統計処理することで、前記分布情報を作成する、
処理を前記コンピュータが実行することを特徴とする付記1または2に記載の評価方法。
【0172】
(付記4)前記分布情報は、前記複数の個人の個人データに基づき前記所定の項目の項目値を統計処理して得られる前記所定の項目に関する複数の統計値を示し、
前記生成する処理は、
前記分布情報が示す前記複数の統計値それぞれに所定のノイズを加えることにより、前記複数の分布情報を生成する、ことを特徴とする付記1~3のいずれか一つに記載の評価方法。
【0173】
(付記5)前記ノイズは、1または-1である、ことを特徴とする付記4に記載の評価方法。
【0174】
(付記6)前記プログラムが正当であると判定した場合、前記複数の分布情報のいずれかの分布情報と前記いずれかの個人の個人データとを入力として、前記プログラムを実行して得られる出力結果から、前記いずれかの個人が情報提供の対象者であるか否かを判断する、
処理を前記コンピュータが実行することを特徴とする付記1~5のいずれか一つに記載の評価方法。
【0175】
(付記7)評価した前記プログラムの評価結果を出力する、処理を前記コンピュータが実行することを特徴とする付記1~6のいずれか一つに記載の評価方法。
【0176】
(付記8)前記プログラムが正当でないと判定した場合、情報提供の依頼元を特定する情報を出力する、処理を前記コンピュータが実行することを特徴とする付記1~7のいずれか一つに記載の評価方法。
【0177】
(付記9)前記プログラムが正当ではないと判定した場合、前記いずれかの個人を特定する情報を出力する、処理を前記コンピュータが実行することを特徴とする付記2に記載の評価方法。
【0178】
(付記10)複数の個人の個人データに基づく所定の項目の項目値の分布を示す分布情報と、前記複数の個人のいずれかの個人の個人データとを入力として、前記いずれかの個人が情報提供の対象者であるか否かを示す情報を出力するプログラムを受け付け、
所定の規則に基づき、前記分布情報が示す分布を変化させて、互いに異なる分布を示す複数の分布情報を生成し、
生成した前記複数の分布情報それぞれと前記いずれかの個人の個人データとを入力として、前記プログラムを実行することで、前記複数の分布情報それぞれについて、前記いずれかの個人が情報提供の対象者であるか否かを示す情報を取得し、
前記複数の分布情報それぞれについて取得した前記情報に相違が生じるか否かによって、前記プログラムの正当性を評価する、
処理をコンピュータに実行させることを特徴とする評価プログラム。
【0179】
(付記11)複数の個人の個人データに基づく所定の項目の項目値の分布を示す分布情報と、前記複数の個人のいずれかの個人の個人データとを入力として、前記いずれかの個人が情報提供の対象者であるか否かを示す情報を出力するプログラムを受け付ける受付部と、
所定の規則に基づき、前記分布情報が示す分布を変化させて、互いに異なる分布を示す複数の分布情報を生成する生成部と、
前記生成部によって生成された前記複数の分布情報それぞれと前記いずれかの個人の個人データとを入力として、前記プログラムを実行することで、前記複数の分布情報それぞれについて、前記いずれかの個人が情報提供の対象者であるか否かを示す情報を取得し、前記複数の分布情報それぞれについて取得した前記情報に相違が生じるか否かによって、前記プログラムの正当性を評価する評価部と、
を有することを特徴とする情報処理装置。
【符号の説明】
【0180】
101 情報処理装置
200 情報提供システム
201 事業者端末
202 個人端末
210 ネットワーク
300,400 バス
301,401 CPU
302,402 メモリ
303 ディスクドライブ
304 ディスク
305,404 通信I/F
306,407 可搬型記録媒体I/F
307,408 可搬型記録媒体
403 GPSユニット
405 ディスプレイ
406 入力装置
601 受付部
602 作成部
603 生成部
604 評価部
605 提供部
606 出力部
900,1200,f プログラム
D 個人データベース
d1~dm,di 個人データ
s 統計データ
g データ作成指定