(57)【要約】【課題】  秘匿情報からの情報漏洩を抑制することができる、情報秘匿装置、情報秘匿方法、および情報秘匿プログラムを提供する。【解決手段】  情報秘匿装置は、Ｎ次元ベクトルを所定の単位で分割することによって得られる複数の単位空間のうち、Ｎ次元データが属する単位空間の識別子、および当該単位空間に隣接する少なくとも１つの隣接単位空間の識別子を一方向関数で変換することで得られた秘匿値のそれぞれに、前記Ｎ次元データのＩＤから得られたそれぞれ異なる仮ＩＤを関連付けることで、仮ＩＤと秘匿値との組み合わせを作成する作成部と、所定のＩＤのＮ次元データに対して前記作成部が作成した組み合わせを順に出力する場合に、当該組み合わせの少なくとも２組の間に他のＩＤのＮ次元データに対して前記作成部が作成した組み合わせの少なくともいずれかを挿入して出力する出力部と、を備える。【選択図】  図７
2016042632.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ次元ベクトルを所定の単位で分割することによって得られる複数の単位空間のうち、Ｎ次元データが属する単位空間の識別子、および当該単位空間に隣接する少なくとも１つの隣接単位空間の識別子を一方向関数で変換することで得られた秘匿値のそれぞれに、前記Ｎ次元データのＩＤから得られたそれぞれ異なる仮ＩＤを関連付けることで、仮ＩＤと秘匿値との組み合わせを作成する作成部と、
所定のＩＤのＮ次元データに対して前記作成部が作成した組み合わせを順に出力する場合に、当該組み合わせの少なくとも２組の間に他のＩＤのＮ次元データに対して前記作成部が作成した組み合わせの少なくともいずれかを挿入して出力する出力部と、を備えることを特徴とする情報秘匿装置。
【請求項２】
前記作成部は、秘密鍵を用いた非決定的暗号化によって、ＩＤから仮ＩＤを作成することを特徴とする請求項１記載の情報秘匿装置。
【請求項３】
仮ＩＤの組み合わせを受信する受信部と、
前記秘密鍵を用いて、前記受信部が受信した仮ＩＤを復号することで元のＩＤを得る復号部と、を備えることを特徴とする請求項２記載の情報秘匿装置。
【請求項４】
前記作成部は、前記Ｎ次元データが属する単位空間における前記Ｎ次元データの位置に応じて、前記一方向関数の対象とする隣接単位空間を選択することを特徴とする請求項１〜３のいずれか一項に記載の情報秘匿装置。
【請求項５】
前記Ｎ次元データは、緯度、経度、および時刻を含むことを特徴とする請求項１〜４のいずれか一項に記載の情報秘匿装置。
【請求項６】
Ｎ次元ベクトルを所定の単位で分割することによって得られる複数の単位空間のうち、Ｎ次元データが属する単位空間の識別子、および当該単位空間に隣接する少なくとも１つの隣接単位空間の識別子を一方向関数で変換することで得られた秘匿値のそれぞれに、前記Ｎ次元データのＩＤから得られたそれぞれ異なる仮ＩＤを関連付けることで、仮ＩＤと秘匿値との組み合わせを作成する作成処理と、
所定のＩＤのＮ次元データに対して前記作成処理で作成された組み合わせを順に出力する場合に、当該組み合わせの少なくとも２組の間に他のＩＤのＮ次元データに対して前記作成処理で作成された組み合わせの少なくともいずれかを挿入して出力する出力処理と、を含むことを特徴とする情報秘匿方法。
【請求項７】
Ｎ次元ベクトルを所定の単位で分割することによって得られる複数の単位空間のうち、Ｎ次元データが属する単位空間の識別子、および当該単位空間に隣接する少なくとも１つの隣接単位空間の識別子を一方向関数で変換することで得られた秘匿値のそれぞれに、前記Ｎ次元データのＩＤから得られたそれぞれ異なる仮ＩＤを関連付けることで、仮ＩＤと秘匿値との組み合わせを作成する作成処理と、
所定のＩＤのＮ次元データに対して前記作成処理で作成された組み合わせを順に出力する場合に、当該組み合わせの少なくとも２組の間に他のＩＤのＮ次元データに対して前記作成処理で作成された組み合わせの少なくともいずれかを挿入して出力する出力処理と、をコンピュータに実行させることを特徴とする情報秘匿プログラム。
【請求項８】
Ｎ次元ベクトルを所定の単位で分割することによって得られる複数の単位空間のうち、Ｎ次元データが属する単位空間の識別子、および当該単位空間に隣接する隣接単位空間の識別子を一方向関数で変換することで秘匿値を作成する作成部を備え、
前記作成部は、前記Ｎ次元データが属する単位空間における前記Ｎ次元データの位置に応じて、前記隣接単位空間のうち、一部を前記一方向関数の対象として選択することを特徴とする情報秘匿装置。
【請求項９】
Ｎ次元ベクトルを所定の単位で分割することによって得られる複数の単位空間のうち、Ｎ次元データが属する単位空間の識別子、および当該単位空間に隣接する隣接単位空間の識別子を一方向関数で変換することで秘匿値を作成する作成処理を含み、
前記作成処理において、前記Ｎ次元データが属する単位空間における前記Ｎ次元データの位置に応じて、前記隣接単位空間のうち、一部を前記一方向関数の対象として選択することを特徴とする情報秘匿方法。
【請求項１０】
Ｎ次元ベクトルを所定の単位で分割することによって得られる複数の単位空間のうち、Ｎ次元データが属する単位空間の識別子、および当該単位空間に隣接する隣接単位空間の識別子を一方向関数で変換することで秘匿値を作成する作成処理をコンピュータに実行させ、
前記作成処理において、前記Ｎ次元データが属する単位空間における前記Ｎ次元データの位置に応じて、前記隣接単位空間のうち、一部を前記一方向関数の対象として選択することを特徴とする情報秘匿プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、情報秘匿装置、情報秘匿方法、および情報秘匿プログラムに関する。
【背景技術】
【０００２】
データを秘匿化する技術が望まれている。非特許文献１は、データに係るＩＤを削除する、または仮ＩＤに置き換える技術を開示している。非特許文献２および特許文献１は、データが属する範囲をブロックで規定し、当該データが属するブロックおよびその隣接ブロックをハッシュ化することで、データを秘匿化しつつ他のデータとの隣接関係を検索する技術を開示している。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Beresford. A.R. and F.Stajano, ”Location Privacy in Pervasive Computing” in IEEE Pervasive Computing Magazine. 2003, IEEE p.46-55
【非特許文献２】L.Siksnys,J R. Thomsen, S.Saltenis, M.L. Yiu, O.Andersen, ” A Location Privacy Aware Friend Locator” in Advances in Spatial and Temporal Databases . 2009, LNCS Volume 5644, pp 405-410
【特許文献】
【０００４】
【特許文献１】特開２０１３−８５１６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１の技術では、データ自体からそのデータの人物が特定されるおそれがある。非特許文献２および特許文献１の技術では、秘匿値の出現頻度の分布を作成することで、秘匿値の隣接関係から秘匿前のデータが推定されるおそれがある。
【０００６】
１つの側面では、本件は、秘匿情報からの情報漏洩を抑制することができる、情報秘匿装置、情報秘匿方法、および情報秘匿プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様では、情報秘匿装置は、Ｎ次元ベクトルを所定の単位で分割することによって得られる複数の単位空間のうち、Ｎ次元データが属する単位空間の識別子、および当該単位空間に隣接する少なくとも１つの隣接単位空間の識別子を一方向関数で変換することで得られた秘匿値のそれぞれに、前記Ｎ次元データのＩＤから得られたそれぞれ異なる仮ＩＤを関連付けることで、仮ＩＤと秘匿値との組み合わせを作成する作成部と、所定のＩＤのＮ次元データに対して前記作成部が作成した組み合わせを順に出力する場合に、当該組み合わせの少なくとも２組の間に他のＩＤのＮ次元データに対して前記作成部が作成した組み合わせの少なくともいずれかを挿入して出力する出力部と、を備える。
【発明の効果】
【０００８】
秘匿情報からの情報漏洩を抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】位置データサービスの一例を例示する図である。
【図２】キューブを例示する図である。
【図３】（ａ）および（ｂ）は異なるキューブに位置している近接者を検索する例である。
【図４】（ａ）および（ｂ）は分布攻撃を表す図である。
【図５】（ａ）および（ｂ）は秘匿値を並び替える例である。
【図６】実施例１に係る情報秘匿装置を備える情報処理システムの全体構成を例示するブロック図である。
【図７】情報秘匿装置および検索装置の詳細を例示するブロック図である。
【図８】（ａ）は位置データＬＤを例示する図であり、（ｂ）は秘匿化位置データＨＬＤを例示する図である。
【図９】秘匿化部による秘匿化を表すフローチャートの一例である。
【図１０】図９のステップＳ２の詳細を表すフローチャートである。
【図１１】図１０のステップＳ１２の詳細を表すフローチャートである。
【図１２】図１０のステップＳ１２の詳細の他の例を表すフローチャートである。
【図１３】（ａ）は図１１の手順に従って選択されるキューブを表す図であり、（ｂ）は図１２の手順に従って選択されるキューブを表す図である。
【図１４】（ａ）および（ｂ）は検索精度の評価を表す図である。
【図１５】（ａ）および（ｂ）は検索精度の評価を表す図である。
【図１６】（ａ）は検索部による検索処理の一例を表すフローチャートであり、（ｂ）は解析部による解析処理の一例を表すフローチャートである。
【図１７】情報秘匿装置の処理の流れについて整理するための図である。
【図１８】実施例２に係る情報秘匿装置を備える情報処理システムの全体構成を例示するブロック図である。
【図１９】情報秘匿装置および検索装置の詳細を例示するブロック図である。
【図２０】秘匿化部による秘匿化を表すフローチャートの一例である。
【図２１】（ａ）および（ｂ）は検索部による検索処理の一例を表すフローチャートである。
【図２２】情報秘匿装置のハードウェア構成を説明するためのブロック図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しつつ、実施例について説明する。
【実施例１】
【００１１】
近年、携帯電話や自動車など、ＧＰＳ（Global Positioning System）を搭載した移動端末が普及している。これらの端末を用いることで、様々な企業が、自社のサービスの利用者の位置データを大量に収集することが可能になっている。しかしながら、位置データは、個人のプライバシー情報を含む。このため、各企業は、取得した位置データの扱いに十分に注意することが望まれている。
【００１２】
一方、大量に収集した位置データを分析して有益な情報を得るために、大量の計算機リソースが用いられる。また、他の企業の持っている位置データと組み合わせることで、より有益なデータ分析やそれに基づいた新たなサービスが行える可能性がある。それゆえ、データ分析・協業の場として、クラウドコンピューティング（以後、クラウド）などの第三者機関の大規模リソースを利用できることが望ましい。しかしながら、社外のクラウドに、利用者のプライバシー情報を含む位置データを預けることは安易にはできない。そこで、位置データから個人のプライバシー情報が漏洩しないよう、位置データを加工する秘匿化手法の開発が望まれている。
【００１３】
位置データサービスの一つに、利用者と近接する他の利用者を検索するサービス(位置データの近傍検索サービス)がある。この位置データの近傍検索サービスを、複数企業間で、お互いが保有する位置データを開示せずに行うことが想定されている。
【００１４】
図１は、位置データサービスの一例を例示する図である。図１の例は、歩行者が近くのタクシーを探すことができる近傍検索サービスである。例えば、歩行者が携帯している携帯機器は、位置データ収集者Ａに位置データを随時送信する。一方、タクシーは、自身が所属するタクシー会社（位置データ収集者Ｂ）に定期的に位置データを随時送信する。位置データには、例えば、ＩＤ、緯度、経度、時刻などが含まれる。ＩＤは、携帯機器、タクシー等の物体の機器ＩＤなどである。
【００１５】
位置データ収集者Ａは、各歩行者の位置データを秘匿化して近傍検索サービサに送信する。位置データ収集者Ｂは、各タクシーのプライバシー情報を秘匿化して近傍検索サービサに送信する。近傍検索サービサは、近くにいる歩行者とタクシーとのペアを検索し、その検索結果を位置データ収集者Ａに送信する。位置データ収集者Ａは、歩行者からタクシー検索を依頼された場合に、当該歩行者とペアになっているタクシーに係る情報を当該歩行者に送信する。このような手順により、歩行者およびタクシーのプライバシー情報の漏洩を防止しつつ、サービスの提供を行うことができる。
【００１６】
プライバシー情報の秘匿化として、ＩＤの削除または仮ＩＤに置き換える技術が考えられる。しかしながら、この技術では、ＩＤが秘匿化される利点がある一方で、緯度、経度などの位置を表す情報は秘匿化されない。したがって、ある位置データが誰のものかわからなくても、例えばＡさん宅に夜遅くに向かっている位置データがあれば、その位置データがＡさんのものであると推定される。このように、ＩＤを削除または仮ＩＤに置き換えても、プライバシー情報が漏洩するおそれがある。
【００１７】
次に、緯度、経度、および時刻を決定的暗号化／ハッシュ化する技術が考えられる。この技術では、ＩＤが秘匿されるのではなく、緯度、経度、および時刻が秘匿化される。以後、決定的暗号化／ハッシュ化された値を秘匿値と称する。位置データ収集者間で、秘密鍵を用いて決定的暗号化／ハッシュ化を行うことによって、第三者が秘匿値と位置とを紐付けることが防止される。以後、決定的暗号化／ハッシュ化すると述べたときは、秘密鍵を使用していることを前提とする。
【００１８】
決定的暗号化／ハッシュ化前の緯度および経度が一致していれば、緯度および経度の決定的暗号化/ハッシュ化した値も一致する。それにより、同一場所に存在した利用者同士を探し出すことができる。また、一定時間ごとに緯度および経度の秘匿値を変更し、秘匿値の出現推移から現実の場所を特定しにくくするために、時刻の情報も含めて、決定的暗号化／ハッシュ化することも考えられる。
【００１９】
しかしながら、単純に緯度、経度、および時刻を決定的暗号化／ハッシュ化すると、少しでも位置が異なる利用者同士の検索ができない。そこで、図２で例示するように、緯度、経度、および時刻の３次元ベクトルを所定の単位でキューブという単位空間に分割し、各キューブにキューブＩＤを付与することが考えられる。例えば、キューブＩＤ＝Ｐ１に歩行者およびタクシーの両者が位置しているとする。この場合、歩行者が属するキューブＩＤの秘匿値と、タクシーが属するキューブＩＤの秘匿値とが一致する。したがって、歩行者およびタクシーがキューブＩＤ＝Ｐ１内において異なる場所に位置していても、両者の近傍検索が可能となる。しかしながら、この技術では、キューブを跨いで近接する利用者同士を検索することができない。
【００２０】
そこで、異なるキューブに位置していても近接する利用者を検索する技術が考えられる。例えば、図３（ａ）で例示するように、キューブにおいて原点に最も近い点を（ｋ，ｍ）とし、最も遠い点を（ｋ＋１，ｍ＋１）とし、これらの座標を決定的暗号化／ハッシュ化することが考えられる。この場合、図３（ｂ）で例示するように、歩行者が位置するキューブと隣接するキューブが検索範囲となる。なお、図３（ａ）および図３（ｂ）の例では、説明の簡略化のため、３次元キューブのうち一平面（例えば緯度および経度の２次元）についての座標が表されている。
【００２１】
しかしながら、この技術においては、現実の人口分布と秘匿値の出現頻度との比較によって、秘匿値から位置が推定されるおそれがある（分布攻撃）。具体的には、秘匿値の隣接関係を調べることによって、秘匿値を並べることができる。それにより、図４（ａ）で例示するように、秘匿値の出現頻度から、秘匿値と、秘匿値の表す現実の位置とのマッピングを行うことができる。次に、秘匿値が密集している範囲の位置関係を図４（ｂ）の実在の位置と照らし合わせることによって。利用者の実在する位置を推定することができる。なお、利用者のＩＤを仮ＩＤに置き換えていても、位置が把握されると、その位置から利用者のプライバシー情報が漏洩するおそれがある。
【００２２】
そこで、図５（ａ）で例示するように、分布攻撃を防止するために、複数の秘匿値を一定時間蓄積してそれらの秘匿値を送信する順番を入れ替える技術が考えられる。または、図５（ｂ）で例示するように、特定の位置データから作成された秘匿値を別々のタイミングで送信することによって秘匿値の隣接関係を秘匿する技術が考えられる。しかしながら、これらの技術では、秘匿値を一定時間蓄積する必要があるため、リアルタイムに近傍検索結果を得られないという課題がある。
【００２３】
そこで、実施例１では、情報漏洩を抑制しつつ、近接する情報同士のリアルタイム検索を可能とする秘匿情報を作成することができる、情報秘匿装置、情報秘匿方法、および情報秘匿プログラムについて説明する。
【００２４】
図６は、実施例１に係る情報秘匿装置を備える情報処理システム１００の全体構成を例示するブロック図である。図６で例示するように、情報処理システム１００は、位置データ収集者Ａの情報秘匿装置１０、位置データ収集者Ｂの情報秘匿装置２０、検索装置３０などを備える。本実施例においては、一例として、位置データ収集者Ａは携帯電話会社であり、位置データ収集者Ｂはタクシー会社である。
【００２５】
情報秘匿装置１０は、歩行者が保持する携帯電話４０から受信した位置データの秘匿値と、秘密鍵を用いて当該携帯電話４０のＩＤから得られた仮ＩＤとを関連付けて、検索装置３０に送信する。情報秘匿装置２０は、タクシーが備える携帯端末５０から受信した位置データの秘匿値と、情報秘匿装置１０と同じ秘密鍵を用いて当該携帯端末５０のＩＤから得られた仮ＩＤとを関連付けて、検索装置３０に送信する。検索装置３０は、情報秘匿装置１０から受信した秘匿値と、情報秘匿装置２０から受信した秘匿値とのうち、一致するペアの仮ＩＤを情報秘匿装置１０に送信する。情報秘匿装置１０は、秘密鍵を用いて、受信したペアの仮ＩＤを復号する。情報秘匿装置１０は、携帯電話４０からタクシー検索の問い合わせを受信した場合に、当該携帯電話４０のＩＤとペアになっているタクシーのＩＤを当該携帯電話４０に送信する。それにより、当該携帯電話４０を保持する利用者は、自身に近いタクシーの情報を得ることができる。
【００２６】
図７は、情報秘匿装置１０および検索装置３０の詳細を例示するブロック図である。図７で例示するように、情報秘匿装置１０は、無線装置１１、位置データ格納部１２、秘密鍵格納部１３、秘匿化部１４、送受信装置１５、解析部１６などを備える。検索装置３０は、送受信装置３１、秘匿位置データ格納部３２、検索部３３、パラメータ格納部３４などを備える。なお、情報秘匿装置２０も、情報秘匿装置１０と同様の構成を有する。
【００２７】
無線装置１１は、携帯電話４０との間で情報を無線で送受信する装置である。無線装置１１は、例えば、携帯電話４０から送信された位置データを受信する。また、無線装置１１は、携帯電話４０から送信されたタクシー検索の問い合わせを受信する。また、無線装置１１は、タクシー検索の結果を携帯電話４０に送信する。
【００２８】
位置データ格納部１２は、１以上の携帯電話４０から送信されてくる位置データＬＤを格納する。図８（ａ）は、位置データＬＤを例示する図である。図８（ａ）で例示するように、位置データＬＤは、一例として、携帯電話４０の利用者ＩＤ、緯度、経度、および時刻を含む。秘密鍵格納部１３は、秘密鍵Ｋを格納する。
【００２９】
秘匿化部１４は、位置データ格納部１２から、複数の利用者の位置データＬＤを取得する。秘匿化部１４は、秘密鍵Ｋおよびパラメータ格納部３４に格納されたパラメータを用いて位置データＬＤが属するキューブＩＤと、それに隣接するキューブＩＤとをハッシュ化して位置データＬＤを秘匿化し、秘匿値Ｈを得る。なお、以下の説明において、「隣接するキューブ」とは、辺や面が共通するキューブに限らず、頂点が共通するキューブが含まれる。また、秘匿化部１４は、秘密鍵Ｋおよび乱数を用いて、各位置データＬＤに係る利用者ＩＤから仮ＩＤを作成する。秘密鍵Ｋは、情報秘匿装置２０と共通の秘密鍵である。
【００３０】
なお、パラメータ格納部３４に格納されるパラメータは、位置データＬＤが属するキューブの大きさ、隣接キューブの設定条件などである。具体的には、上記パラメータは、緯度、経度、および時刻の３次元空間を構成する各キューブの大きさ｛Ｄｘ，Ｄｙ，Ｄｚ｝、キューブの分割に用いる始点｛Ｄｘ０，Ｄｙ０，Ｄｚ０｝などを含む。Ｄｘはキューブにおける緯度の範囲を表し、Ｄｙはキューブにおける経度の範囲を表し、Ｄｚはキューブにおける時間の範囲を表す。例えば、｛Ｄｘ０，Ｄｙ０，Ｄｚ０｝＝｛緯度０度，経度０度，時刻０時００分００秒}とし、｛Ｄｘ，Ｄｙ，Ｄｚ｝＝｛０．１度，０．１度，１分｝などとすると、ある位置データＬＤが存在するキューブを簡単に求めることができる。なお、パラメータは、情報秘匿装置１０および情報秘匿装置２０が保持していてもよい。
【００３１】
秘匿化部１４は、各秘匿値Ｈにそれぞれ異なる仮ＩＤを関連付けることによって、秘匿化位置データＨＬＤを得る。図８（ｂ）は、秘匿化位置データＨＬＤを例示する。１つの位置データＬＤに対して、当該位置データＬＤが属するキューブおよび隣接キューブの秘匿値が作成されることから、秘匿化位置データＨＬＤは、各位置データＬＤに対して複数作成されることになる。なお、ハッシュ化に限らず、他の一方向性関数を用いてもよい。その後、秘匿化部１４は、送受信装置１５を介して、秘匿化位置データＨＬＤをランダムに並び替えて、検索装置３０に送信する。すなわち、秘匿化部１４は、複数の利用者に係る位置データＬＤからそれぞれ複数生成された秘匿化位置データを、ランダムに並び替えて検索装置３０に送信する。送受信装置１５は、電気通信回線に接続されるインタフェースなどである。なお、送受信装置１５は、無線装置であってもよい。
【００３２】
図９は、秘匿化部１４による秘匿化を表すフローチャートの一例である。図９で例示するように、秘匿化部１４は、位置データ格納部１２から、複数の利用者の位置データＬＤ０，ＬＤ１，…ＬＤｎ−１を取得し、パラメータ格納部３４からパラメータを取得する（ステップＳ１）。秘匿化部１４は、パラメータを用いて位置データＬＤ０，ＬＤ１，…ＬＤｎ−１を秘匿化することによって、秘匿化位置データＨＬＤ０，ＨＬＤ１，…ＨＬＤｍ−１を作成する（ステップＳ２）。次に、秘匿化部１４は、秘匿化位置データＨＬＤ０，ＨＬＤ１，…ＨＬＤｍ−１をランダムに並び替え、送受信装置１５を介して検索装置３０に送信する（ステップＳ３）。
【００３３】
図１０は、図９のステップＳ２の詳細を表すフローチャートである。図１０で例示するように、秘匿化部１４は、秘匿データ集合をＨＬＤＳ＝｛  ｝とする（ステップＳ１１）。次に、秘匿化部１４は、パラメータを用いて、位置データＬＤが属するキューブのＩＤと、当該キューブが隣接するキューブのＩＤとを取得する（ステップＳ１２）。例えば、位置データＬＤが属するキューブに隣接する全てのキューブの秘匿値を作成する場合には、合計で２７個のキューブのＩＤ（Ｃ０〜Ｃ２６）が取得される。
【００３４】
次に、秘匿化部１４は、乱数Ｒを選択する（ステップＳ１３）。次に、秘匿化部１４は、秘密鍵Ｋと乱数Ｒとを用いて位置データＤｊの利用者ＩＤに対して非決定的暗号化することによって、仮ＩＤｊを算出する（ステップＳ１４）。次に、秘匿化部１４は、秘密鍵Ｋを用いて、キューブＩＤｊをハッシュ化することによって、秘匿値Ｈｊを算出する（ステップＳ１５）。次に、秘匿化部１４は、秘匿データ集合ＨＬＤＳに｛仮ＩＤｊ，秘匿値Ｈｊ｝を格納する（ステップＳ１６）。なお、秘匿化部１４は、ｊ＝０〜２６に対して、ステップＳ１３〜ステップＳ１６を繰り返す。また、秘匿化部１４は、位置データＬＤ０，ＬＤ１，…ＬＤｎ−１に対して、ステップＳ１２〜ステップＳ１６を繰り返す。次に、秘匿化部１４は、得られた秘匿データ集合ＨＬＤＳを出力する（ステップＳ１７）。
【００３５】
図１１は、図１０のステップＳ１２の詳細を表すフローチャートである。図１１で例示するように、秘匿化部１４は、秘匿化対象のキューブＩＤの集合を集合Ｃ＝｛  ｝とする（ステップＳ２１）。次に、秘匿化部１４は、パラメータ格納部３４に格納されたパラメータを用いて、位置データＬＤが属するキューブの範囲Ｃ（（ｘ，ｙ，ｚ）∈Ｃ）を取得する（ステップＳ２２）。（ｘ，ｙ，ｚ）は、各位置データＬＤの座標である。
【００３６】
次に、秘匿化部１４は、位置データＬＤが属するキューブ内の最小の緯度、経度、時刻を（ｘｃ，ｙｃ，ｚｃ）とする（ステップＳ２３）。次に、秘匿化部１４は、隣接キューブのリストＬ＝｛Ｌｘ，Ｌｙ，Ｌｚ｝とし、Ｌｘ＝Ｌｙ＝Ｌｚ＝｛−１，０，１｝とする（ステップＳ２４）。次に、秘匿化部１４は、全ての隣接キューブリストの要素（ｌｘ，ｌｙ，ｌｚ）∈｛Ｌｘ，Ｌｙ，Ｌｚ｝に対して、秘匿対象のキューブＩＤをｃ´＝｛ｘｃ＋ｌｘ×Ｄｘ，ｙｃ＋ｌｙ×Ｄｙ，ｚｃ＋ｌｚ×Ｄｚ｝とする。秘匿化部１４は、ｃ´を集合Ｃに格納する（ステップＳ２５）。その後、秘匿化部１４は、集合Ｃを出力する（ステップＳ２６）。図１１の手順によれば、利用者が属するキューブに隣接する全てのキューブが選択される。
【００３７】
なお、図１１の手順では、利用者が属するキューブに隣接する全てのキューブが選択されているが、隣接するキューブのうち少なくとも１つが選択されればよい。例えば、利用者がキューブ内における相対位置に応じて、隣接する全てのキューブの一部を選択してもよい。具体的には、利用者のキューブ内の相対位置に近いキューブを選択してもよい。
【００３８】
図１２は、図１０のステップＳ１２の詳細の他の例を表すフローチャートである。図１２で例示するように、秘匿化部１４は、秘匿化対象のキューブＩＤの集合を集合Ｃ＝｛  ｝とする（ステップＳ３１）。次に、秘匿化部１４は、パラメータ格納部３４に格納されたパラメータを用いて、位置データＬＤが属するキューブのキューブＩＤ＝Ｃ０を取得する（ステップＳ３２）。
【００３９】
次に、秘匿化部１４は、位置データＬＤが属するキューブ内の最小の緯度、経度、時刻を（ｘｃ，ｙｃ，ｚｃ）とする（ステップＳ３３）。次に、秘匿化部１４は、隣接キューブのリストＬ＝｛Ｌｘ，Ｌｙ，Ｌｚ｝とする。また、秘匿化部１４は、リストＬの各要素を｛−１，０｝または｛０，１｝とする（ステップＳ３４）。次に、秘匿化部１４は、ｉがｘ，ｙ，ｚの場合に対して、Δｉ＝ｉ−ｉｃとし、Δｉ≦Ｄｉ／２のときにＬｉ＝｛−１，０｝、Δｉ＞Ｄｉ／２のときにＬｉ＝｛０，１｝とする（ステップＳ３５）。
【００４０】
次に、秘匿化部１４は、全ての隣接キューブリストの要素（ｌｘ，ｌｙ，ｌｚ）∈｛Ｌｘ，Ｌｙ，Ｌｚ｝に対して、秘匿対象のキューブＩＤをｃ´＝｛ｘｃ＋ｌｘ×Ｄｘ，ｙｃ＋ｌｙ×Ｄｙ，ｚｃ＋ｌｚ×Ｄｚ｝とする。秘匿化部１４は、ｃ´を集合Ｃに格納する（ステップＳ３６）。その後、秘匿化部１４は、集合Ｃを出力する（ステップＳ３７）。
【００４１】
図１３（ａ）は、図１１の手順に従って選択されるキューブを表す図である。図１１の手順に従った場合には、利用者が属するキューブに隣接する全てのキューブが選択される。図１３（ａ）の例は２次元で表されているため、９個のキューブが選択されているが、３次元では、２７個選択されることになる。
【００４２】
これに対して、図１３（ｂ）は、図１２の手順に従って選択されるキューブを表す図である。図１３（ｂ）で例示するように、キューブが複数の小領域に分割され、利用者が属する小領域に近いキューブが選択され、遠いキューブが選択されない。図１３（ｂ）の例では、キューブが４つの小領域に分割され、利用者が属する小領域に近い３つのキューブがさらに選択される。図１３（ｂ）の例は２次元で表されているため、４個のキューブが選択されているが、３次元キューブでは８個選択されることになる。このように、図１２の手順に従って選択することにより、キューブ数を削減することができる。
【００４３】
ここで、図１１および図１２の手順の比較を行う。図１１の手順は、検索したい利用者間の距離のしきい値をｔｄとし、Ｄｘ＝Ｄｙ＝ｔｄ／２とし、距離ｔｄ以内の全ての近接する利用者を検索する例である。また、時刻のしきい値ｔｔに関しても、Ｄｚ＝ｔｔ／２とすると、位置データＬＤの発信時刻がｔｔまでずれた他の利用者を検索することができる。一方、図１２の手順は、Ｄｘ＝Ｄｙ＝ｔｄとし、距離ｔｄ以内の全ての近接する利用者を検索する例である。また、時刻のしきい値ｔｔに関しても、Ｄｚ＝ｔｔとすれば、位置データＬＤの発信時刻がｔｔまでずれた他の利用者を検索することができる。
【００４４】
これらの場合の検索精度の見積もりについて説明する。検索精度の評価軸として、「Ｒｅｃａｌｌ」と「Ｐｒｅｃｉｓｉｏｎ」とが挙げられる。Ｒｅｃａｌｌは、本来検索したかった要素のうち、実際に検索できた要素の割合で表すことができる。Ｒｅｃａｌｌが「１」に近づくほど、検索漏れの少ない検索方法であるといえる。
【００４５】
図１４（ａ）で例示するように、利用者が「×」印のキューブに位置し、他の利用者がこのキューブまたは隣接するキューブに位置していれば、当該他の利用者は漏れることなく検索される。したがって、Ｒｅｃａｌｌは「１」となる。図１４（ｂ）で例示するように、利用者が「×」印のキューブに位置している場合、他の利用者が検索される検索範囲は、５×５の範囲となる。例えば、他の利用者が「△」印のキューブに位置していても、互いの隣接キューブが重複するからである。この場合、Ｐｒｅｃｉｓｉｏｎは、検索範囲の面積（５ｃ２）に対するしきい値の範囲の面積（２ｃ）２の比と定義され、０．５０２４となる。なお、このＰｒｅｃｉｓｉｏｎは、２次元での値である。
【００４６】
一方、図１５（ａ）で例示するように、利用者が「×」印の小領域に位置し、他の利用者がこの小領域に近い４つのキューブのいずれかに位置していれば、当該他の利用者は漏れることなく検索される。したがって、Ｒｅｃａｌｌは「１」となる。図１５（ｂ）で例示するように、利用者が「×」印のキューブに位置している場合、他の利用者が検索される検索範囲は、３×３の範囲となる。例えば、他の利用者が「△」印の小領域に位置していても、互いの隣接キューブが重複するからである。この場合のＰｒｅｃｉｓｉｏｎは、検索範囲の面積（３ｃ）２に対するしきい値の範囲の面積ｃ２の比と定義され、０．３５となる。なお、このＰｒｅｃｉｓｉｏｎは、２次元での値である。
【００４７】
Ｐｒｅｃｉｓｉｏｎは、検索範囲に占める、本来検索したかった範囲の割合であるため、１に近づくほど誤検索の少ない検索方法といえる。表１に、上述した検索精度の評価結果を整理する。ＲｅｃａｌｌおよびＰｒｅｃｉｓｉｏｎは、簡単のために距離に関してのみの評価を行った結果であり、データ量は秘匿化位置データを作成する個数を表している。また、Ｐｒｅｃｉｓｉｏｎは、位置データが一様に分布していた場合の値である。実際には位置データの分布は道路の形状などに依存するため、一様分布ではない。このため、現実の位置データを用いて検索処理を行った場合、Ｐｒｅｃｉｓｉｏｎの値は表1よりも高い値が出ることが期待できる。表１のように、図１１の手順と図１２の手順との間で、Ｐｒｅｃｉｓｉｏｎとデータ量とがトレードオフの関係にある。したがって、要求に応じて両者を選択して使用すればよい。
【表１】
2016042632.tif 000003
【００４８】
次に、検索装置３０の動作の詳細について説明する。送受信装置３１は、情報秘匿装置１０から秘匿化位置データＨＬＤＡ０〜ＨＬＤＡｎ−１を受信し、情報秘匿装置２０から秘匿化位置データＨＬＤＢ０〜ＨＬＤＢｍ−１を受信する。送受信装置３１は、電気通信回線に接続されるインタフェースなどである。なお、送受信装置３１は、無線装置であってもよい。秘匿位置データ格納部３２は、情報秘匿装置１０および情報秘匿装置２０から受信した秘匿化位置データを格納する。
【００４９】
検索部３３は、検索処理を行う。図１６（ａ）は、検索部３３による検索処理の一例を表すフローチャートである。図１６（ａ）で例示するように、検索部３３は、秘匿位置データ格納部３２から、秘匿化位置データＨＬＤＡ０〜ＨＬＤＡｎ−１および秘匿化位置データＨＬＤＢ０〜ＨＬＤＢｍ−１を取得する（ステップＳ４１）。次に、検索部３３は、秘匿化位置データＨＬＤＡ０〜ＨＬＤＡｎ−１と、秘匿化位置データＨＬＤＢ０〜ＨＬＤＢｍ−１とから、秘匿値が一致する仮ＩＤのペアを検索して出力する（ステップＳ４２）。次に、送受信装置３１は、ステップＳ４２で出力された仮ＩＤのペアを情報秘匿装置１０に送信する（ステップＳ４３）。
【００５０】
情報秘匿装置１０の解析部１６は、検索装置３０が出力する仮ＩＤのペアに対して解析処理を行う。図１６（ｂ）は、解析部１６による解析処理の一例を表すフローチャートである。図１６（ｂ）で例示するように、解析部１６は、送受信装置１５を介して仮ＩＤのペアを受け取る（ステップＳ５１）。次に、解析部１６は、受け取った仮ＩＤを、秘密鍵Ｋを用いて復号する（ステップＳ５２）。なお、復号の結果として位置データ収集者Ａの利用者Ａと位置データ収集者Ｂの利用者Ｂとを得るものとする。解析部１６は、無線装置１１を介して、利用者Ａに「利用者Ｂ」に係る情報を送信する（ステップＳ５３）。
【００５１】
図１７は、情報秘匿装置１０の処理の流れについて整理するための図である。まず、図１７で例示するように、タクシー検索サービスを利用する利用者ｕ１が所定のキューブに位置する場合、情報秘匿装置１０は、当該キューブの秘匿値、および隣接する各キューブの秘匿値を算出する。このように、利用者が位置するキューブに隣接するキューブも近傍検索の範囲となるため、キューブをまたいで近接する他の利用者を検索できるようになる。なお、図１７の例では、利用者ｕ１についてｍ個のキューブが選択されており、＃１〜＃ｍの秘匿値が生成されている。
【００５２】
次に、情報秘匿装置１０は、複数の利用者の秘匿値を混ぜることから、例えば利用者ｕ２の秘匿値＃１〜＃ｍも算出する。また、情報秘匿装置１０は、秘匿値と利用者ＩＤとの組み合わせのそれぞれに対して、秘密鍵Ｋおよび乱数Ｒを用いてそれぞれ異なる仮ＩＤを発行する。情報秘匿装置１０は、得られた秘匿位置データをランダムに並び替えて検索装置３０に送信する。このように、複数の利用者の位置データを混ぜ合わせてランダムに並び替えて送信することから、秘匿位置データからいつ誰が何処に存在したかを示す情報の漏えいを防止することができる。すなわち、分布攻撃を防止することができる。さらに、秘匿位置データを一定時間蓄積しておく必要がないため、リアルタイムでの近傍検索が可能となる。
【００５３】
仮ＩＤａおよび仮ＩＤｚの秘匿値が一致する場合、情報秘匿装置１０は、仮ＩＤａおよび仮ＩＤｚを検索装置３０から受け取る。情報秘匿装置１０は、秘密鍵Ｋを用いて仮ＩＤａおよび仮ＩＤｚを復号することによって、利用者ｕ１および利用者ｕ２を得ることができる。したがって、情報秘匿装置１０は、利用者ｕ１に、利用者ｕ２に関する情報を送信することができる。
【００５４】
以上、実施例１について述べたが、実施例１はあくまでも一例である。実施例１では３次元の位置データＬＤを対象としているが、それに限られない。例えば、位置に限らず、Ｎ個の数値データを含むＮ次元データの近傍検索を行ってもよい。この場合、Ｎ次元ベクトルを所定の単位で分割することによって単位空間を作成することができる。
【００５５】
例えば、お見合いサイトで結婚相手を紹介してもらう際に、自身のプロフィールと相手に求めるプロフィールとを登録するものとする。例えば、プロフィールは{年齢，年収，身長，体重}を含むものとする。このとき、お見合いサイトは、会員同士のマッチング作業（会員Ａが相手に求めるプロフィールと、会員Ｂのプロフィールとが近いか否か)を近傍検索サービス会社に委託することになる。しかしながら、会員のプロフィールも、その会員が相手に求めるプロフィールも、機微なプライバシー情報であるため秘匿されることが望まれる。そこで、近傍検索サービス会社にプロフィールの秘匿値を渡すことで、会員のプライバシー情報を守ることができる。また、この秘匿値を用いて、会員同士のマッチング作業を近傍検索サービス会社に委託することができる。
【００５６】
なお、本実施例においては、秘匿化部１４が、仮ＩＤと秘匿値との組み合わせを作成する作成部として機能する。また、秘匿化部１４は、所定のＩＤのＮ次元データに対して作成部が作成した組み合わせと、他のＩＤのＮ次元データに対して作成部が作成した組み合わせとを混ぜて出力する出力部として機能する。また、送受信装置１５は、検索装置３０から仮ＩＤの組み合わせを受信する受信部として機能する。解析部１６は、秘密鍵を用いて、受信部が受信した仮ＩＤを復号することで元のＩＤを得る復号部として機能する。
【実施例２】
【００５７】
実施例２では、Ｎ次元データが属するキューブにおける位置に対応させてデータサイズを抑制することができる情報秘匿装置について説明する。図１８は、実施例２に係る情報秘匿装置を備える情報処理システム１００ａの全体構成を例示するブロック図である。図１８で例示するように、情報処理システム１００ａは、情報秘匿装置１０ａ、検索装置３０ａなどを備える。
【００５８】
情報秘匿装置１０ａには、利用者のＮ次元のデータが入力される。情報秘匿装置１０ａは、入力されたＮ次元データに対して秘密鍵を用いて得た秘匿値と、当該Ｎ次元データに係る利用者のＩＤとを関連付けて、検索装置３０ａに送信する。検索装置３０ａは、受信した秘匿値とＩＤとを関連づけて蓄積しておく。検索装置３０ａは、所定の時間間隔で（定期的に）一致する秘匿値のＩＤのペアを検索し、情報秘匿装置１０ａに送信する。それにより、情報秘匿装置１０ａは、Ｎ次元データが近接する利用者のペアを取得することができる。
【００５９】
図１９は、情報秘匿装置１０ａおよび検索装置３０ａの詳細を例示するブロック図である。図１９で例示するように、情報秘匿装置１０ａは、入力装置１１ａ、Ｎ次元データ格納部１２ａ、秘密鍵格納部１３ａ、秘匿化部１４ａ、送受信装置１５ａ、パラメータ格納部１６ａなどを備える。検索装置３０ａは、送受信装置３１ａ、秘匿データ格納部３２ａ、検索部３３ａなどを備える。
【００６０】
入力装置１１ａは、利用者のＮ次元データを入力するための装置であり、例えばキーボードなどである。Ｎ次元データ格納部１２ａは、１以上の利用者のＮ次元データを格納する。秘密鍵格納部１３ａは、秘密鍵Ｋを格納する。秘匿化部１４ａは、Ｎ次元データ格納部１２ａから、複数の利用者のＮ次元データを取得する。秘匿化部１４ａは、秘密鍵格納部１３ａに格納された秘密鍵Ｋと、パラメータ格納部１６ａに格納されたパラメータとを用いてＮ次元データをハッシュ化することによってＮ次元データを秘匿化し、秘匿値Ｈを得る。なお、上記パラメータは、Ｎ次元データが属するキューブの大きさ、隣接キューブの設定条件などである。具体的には、上記パラメータは、各キューブの各次元の幅｛Ｄ０，…，Ｄｎ−１｝、キューブの分割に用いる始点｛Ｄ０，０，…，Ｄｎ−１，０｝などを含む。
【００６１】
秘匿化部１４ａは、各秘匿値ＨにＩＤを関連付けることによって、秘匿化Ｎ次元データを得る。なお、ハッシュ化に限らず、他の一方向性関数を用いてもよい。その後、秘匿化部１４ａは、送受信装置１５ａを介して、秘匿化Ｎ次元データを検索装置３０ａに送信する。
【００６２】
図２０は、秘匿化部１４ａによる秘匿化を表すフローチャートの一例である。図２０で例示するように、秘匿化部１４ａは、Ｎ次元データ格納部１２ａから、複数の会員のＮ次元データを取得する。Ｎ次元データには、会員ＩＤと、Ｎ次元ベクトルの数値データ（ｘ０，…，ｘｎ−１）とが含まれる。また、秘匿化部１４ａは、パラメータ格納部１７ａから、各キューブの各次元の幅｛Ｄ０，…，Ｄｎ−１｝およびキューブの分割に用いる始点｛Ｄ０，０，…，Ｄｎ−１，０｝を取得する（ステップＳ６１）。
【００６３】
次に、秘匿化部１４ａは、Ｎ次元ベクトルデータ（ｘ０，…，ｘｎ−１）が属するキューブｃ内の各ベクトルの最小の値を（ｃ０，…，ｃｎ−１）とし、各キューブの識別子を｛ｃ０，…，ｃｎ−１｝とする（ステップＳ６２）。次に、秘匿化部１４ａは、秘匿するキューブの識別子の集合を集合Ｃ＝｛  ｝にキューブｃを格納する（ステップＳ６３）。
【００６４】
次に、秘匿化部１４ａは、隣接キューブリストをＬ＝｛Ｌ０，…，Ｌｎ−１｝とする（ステップＳ６４）。次に、秘匿化部１４ａは、Ｌ０，…，Ｌｎ−１に対し、Δｉ＝ｘｉ−ｃｉとする、また、秘匿化部１４ａは、Δｉ≦Ｄｉ／２のときＬｉ＝｛−１，０｝とし、Δｉ＞Ｄｉ／２のときＬｉ＝｛０，１｝とする（ステップＳ６５）。次に、秘匿化部１４ａは、隣接キューブリストの全ての要素｛ｌ０，…，ｌｎ−１｝∈｛Ｌ０，…，Ｌｎ−１｝に対して、秘匿するキューブの識別子ｃ´＝｛ｃ０＋ｌ０×Ｄ０，…，ｃｎ−１＋ｌｎ−１×Ｄｎ−１｝とし、集合Ｃに格納する（ステップＳ６６）。次に、秘匿化部１４ａは、集合Ｃの全ての要素のハッシュ値を算出し、秘匿値集合を作成し、｛ＩＤ,秘匿値集合｝を出力する（ステップＳ６７）。
【００６５】
次に、検索装置３０ａの動作の詳細について説明する。図２１（ａ）は、検索部３３ａによる検索処理の一例を表すフローチャートである。図２１（ａ）で例示するように、検索部３３ａは、秘匿データ格納部３２ａから、秘匿データを取得する（ステップＳ７１）。検索部３３ａは、同じ秘匿値を持つデータセットを検索し、その２つのデータセットのＩＤのペアを検索して出力する（ステップＳ７２）。次に、送受信装置３１ａは、ステップＳ７２で出力されたＩＤのペアを情報秘匿装置１０ａに送信する（ステップＳ７３）。
【００６６】
本実施例によれば、Ｎ次元データが属するキューブにおける当該Ｎ次元データの位置に応じて、隣接キューブの一部が選択される。それにより、Ｎ次元データが属するキューブにおける位置に対応させて、データサイズを削減することができる。具体的には、Ｎ次元データが属するキューブが複数の小領域に分割され、Ｎ次元データが位置する小領域に応じて隣接キューブの一部が選択される。図２０の手順では、利用者が属する小領域から所定距離内の近いキューブが選択され、遠いキューブが選択されない。この場合、検索精度を維持しつつ、データサイズを削減することができる。
【００６７】
（変形例）
上記例では、情報所定の時間間隔で（定期的に）一致する秘匿値のＩＤのペアが検索され、情報秘匿装置１０ａに送信されていたが、それに限られない。例えば、検索装置３０ａは、情報秘匿装置１０ａから要求があった場合に、検索処理を行ってもよい。
【００６８】
図２１（ｂ）は、この場合の検索処理の一例を表すフローチャートである。前提として、検索装置３０ａの秘匿データ格納部３２ａには、複数の利用者の秘匿値が格納されており、情報秘匿装置１０ａから、新たな利用者の秘匿値が検索要求として検索装置３０ａに入力されるものとする。図２１（ｂ）で例示するように、検索部３３ａは、情報秘匿装置１０ａから、検索要求として、新たな利用者のＩＤと、その利用者のＮ次元データが属するキューブと隣接キューブの秘匿値を受け取る（ステップＳ８１）。次に、検索部３３ａは、当該秘匿値と一致する秘匿値を持つＩＤを、秘匿データ格納部３２ａに格納された秘匿データから検索する（ステップＳ８２）次に、送受信装置３１ａは、ステップＳ８２の検索結果を情報秘匿装置１０ａに送信する（ステップＳ８３）。なお、秘匿値の蓄積用の情報秘匿装置と、検索要求用の秘匿値を作成するための情報秘匿装置とが別々に備わっていてもよい。
【００６９】
（ハードウェア構成）
図２２は、情報秘匿装置のハードウェア構成を説明するためのブロック図である。図２２を参照して、情報秘匿装置は、ＣＰＵ１０１、ＲＡＭ１０２、記憶装置１０３、通信機器１０４などを備える。これらの各機器は、バスなどによって接続されている。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１は、中央演算処理装置である。ＣＰＵ１０１は、１以上のコアを含む。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２は、ＣＰＵ１０１が実行するプログラム、ＣＰＵ１０１が処理するデータなどを一時的に記憶する揮発性メモリである。記憶装置１０３は、不揮発性記憶装置である。記憶装置１０３として、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリなどのソリッド・ステート・ドライブ（ＳＳＤ）、ハードディスクドライブに駆動されるハードディスクなどを用いることができる。通信機器１０４は、無線の送受信装置、優先の送受信装置などである。ＣＰＵ１０１が所定のプログラムを実行することによって、情報秘匿装置の各部が実現される。
【００７０】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７１】
１０，２０  情報秘匿装置
１１  無線装置
１２  位置データ格納部
１３  秘密鍵格納部
１４  秘匿化部
１５  送受信装置
１６  解析部
３０  検索装置
３１  送受信装置
３２  秘匿位置データ格納部
３３  検索部
３４  パラメータ格納部
４０  携帯電話
５０  携帯端末
１００  情報処理システム
【図１】
2016042632.tif 000004
【図２】
2016042632.tif 000005
【図３】
2016042632.tif 000006
【図４】
2016042632.tif 000007
【図５】
2016042632.tif 000008
【図６】
2016042632.tif 000009
【図７】
2016042632.tif 000010
【図８】
2016042632.tif 000011
【図９】
2016042632.tif 000012
【図１０】
2016042632.tif 000013
【図１１】
2016042632.tif 000014
【図１２】
2016042632.tif 000015
【図１３】
2016042632.tif 000016
【図１４】
2016042632.tif 000017
【図１５】
2016042632.tif 000018
【図１６】
2016042632.tif 000019
【図１７】
2016042632.tif 000020
【図１８】
2016042632.tif 000021
【図１９】
2016042632.tif 000022
【図２０】
2016042632.tif 000023
【図２１】
2016042632.tif 000024
【図２２】
2016042632.tif 000025