説明

秘匿分析処理方法、プログラム及び装置

【課題】複数のユーザのデータを他のユーザ及び分析者にも秘匿化したまま分析処理を実施できるようにする。
【解決手段】本方法は、第1のユーザの秘密鍵と共通鍵との排他的論理和である第1の鍵と、第2のユーザの秘密鍵と共通鍵との排他的論理和である第2の鍵との排他的論理和を算出して第3の鍵を生成し、第1のユーザの秘密鍵と第1のユーザのデータとの排他的論理和である第1の秘匿化データと、第3の鍵との排他的論理和を算出して第2の秘匿化データを生成し、第2のユーザの秘密鍵と第2のユーザのデータとの排他的論理和である第3の秘匿化データと第2の秘匿化データとに対して、秘匿化を解除することなく所定の分析処理を実施し、分析結果データにおける秘匿化部分に対して第2の鍵との排他的論理和を算出して、共有鍵により秘匿化された分析結果データを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は、データ秘匿化技術に関する。
【背景技術】
【0002】
クラウドや外部サーバを利用した協業や共同開発などで、複数のユーザが有するデータを、第三者が組み合わせて分析するというニーズが増加している。しかしながら、各ユーザのデータについては他のユーザ及び第三者には開示せず分析するのは困難な場合が多い。
【0003】
このような目的のため、「値の置き換えによるデータの秘匿化」という手法がある。これは、データ値を、ランダムな値に置き換えることでデータを秘匿化する手法である。置き換え前後についての変換テーブルを有する人物のみ、秘匿化データの復元が可能である。同一データ値に対して、同じランダム値で変換を行うことにより、あるデータ値の出現回数や各データ値の出現条件などの関係性は保たれる。よって、クロス集計や相関ルール抽出といった分析処理を、秘匿化した値で行い、その結果を変換テーブルを有する人物のみが復号することで、データ分析者から分析結果を秘匿したままデータ分析処理を委託できる。
【0004】
しかし、この方法では複数のユーザの秘匿化データを合わせて分析することは不可能である。各ユーザが別々の変換テーブルで秘匿化すると、同じ値が別の値に変換されるため、統合したデータに対する分析ができない。しかし、各ユーザが同一の変換テーブルで秘匿化すると、秘匿化データが漏洩した場合に他のユーザによって実データが復元されてしまう。
【0005】
また、投票者が誰に投票したかを秘匿化したまま、第三者が投票結果を集計するという電子投票システムが存在している。この電子投票システムでは、準同型暗号を使用しているが、投票結果の集計といった単純な加算処理であれば可能であるが、データマイニングのような複雑な分析にはそのまま使用できない。また、厳密な秘匿性が必要となるが故に準同型暗号を使用しており、計算コストが大きいという問題もある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−279716号公報
【特許文献2】特開2009−278223号公報
【特許文献3】特開2006−311383号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
従って、本技術の目的は、一側面として、複数のユーザのデータを他のユーザ及び分析者にも秘匿化したまま分析処理を実施できるようにするための技術を提供することである。
【課題を解決するための手段】
【0008】
本方法は、(A)第1のユーザの秘密鍵と共通鍵との排他的論理和である第1の鍵と、第2のユーザの秘密鍵と共通鍵との排他的論理和である第2の鍵とを格納している第1のデータ格納部に格納されている第1の鍵と第2の鍵との排他的論理和を算出して第3の鍵を生成し、当該第3の鍵を第1のデータ格納部に格納するステップと、(B)第1のユーザの秘密鍵と第1のユーザのデータとの排他的論理和である第1の秘匿化データと、第2のユーザの秘密鍵と第2のユーザのデータとの排他的論理和である第2の秘匿化データとを格納する第2のデータ格納部に格納されている第1の秘匿化データと、第1のデータ格納部に格納されている第3の鍵との排他的論理和を算出して第3の秘匿化データを生成し、第2のデータ格納部に格納するステップと、(C)第2のデータ格納部に格納されている第2の秘匿化データ及び第3の秘匿化データに対して、秘匿化を解除することなく所定の分析処理を実施して、分析結果データを第3のデータ格納部に格納するステップと、(D)第3のデータ格納部に格納されている分析結果データにおける秘匿化部分に対して第1のデータ格納部に格納されている第2の鍵との排他的論理和を算出して、共有鍵により秘匿化された分析結果データを生成し、第4のデータ格納部に格納する分析結果秘匿化ステップとを含む。
【発明の効果】
【0009】
複数のユーザのデータを他のユーザ及び分析者にも秘匿化したまま分析処理を実施できるようになる。
【図面の簡単な説明】
【0010】
【図1】図1は、本技術の実施の形態の概要を示す図である。
【図2】図2は、本技術の実施の形態の概要を示す図である。
【図3】図3は、本技術の実施の形態の概要を示す図である。
【図4】図4は、実施の形態のシステム概要を示す図である。
【図5】図5は、ユーザ装置の機能ブロック図である。
【図6】図6は、分析装置の機能ブロック図である。
【図7】図7は、本実施の形態のメイン処理の処理フローを示す図である。
【図8】図8は、マスク化鍵生成処理の処理フローを示す図である。
【図9】図9は、変換鍵生成処理の処理フローを示す図である。
【図10】図10は、データ秘匿化処理の処理フローを示す図である。
【図11】図11は、ユーザAのデータの一例を示す図である。
【図12】図12は、ユーザAのデータの16進数表現の一例を示す図である。
【図13】図13は、ユーザBのデータの16進数表現の一例を示す図である。
【図14】図14は、秘密鍵の構成を説明するための図である。
【図15】図15は、共有鍵の構成を説明するための図である。
【図16】図16は、ユーザAのデータの秘匿化データの一例を示す図である。
【図17】図17は、ユーザBのデータの秘匿化データの一例を示す図である。
【図18】図18は、秘匿化データ分析処理の処理フローを示す図である。
【図19】図19は、変換データの一例を示す図である。
【図20】図20は、クロス集計の結果の一例を示す図である。
【図21】図21は、相関ルール抽出の処理フローの一例を示す図である。
【図22】図22は、相関ルール抽出によって抽出されたルールの一例を示す図である。
【図23】図23は、図20の分析結果から生成される配信データの一例を示す図である。
【図24】図24は、図22の分析結果から生成される配信データの他の例を示す図である。
【図25】図25は、分析結果取得処理の処理フローを示す図である。
【図26】図26は、図23の場合における分析結果データの一例を示す図である。
【図27】図27は、図24の場合における分析結果データの一例を示す図である。
【図28】図28は、図26の場合における分析結果の一例を示す図である。
【図29】図29は、図27の場合における分析結果の一例を示す図である。
【図30】図30は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【0011】
最初に、図1乃至図3を用いて、本技術の実施の形態におけるおおまかな処理の流れを説明しておく。本実施の形態では、2以上のユーザ装置(図1乃至図3ではユーザ装置Aとユーザ装置B)と、分析装置とがインターネット等のネットワークに接続されている。
【0012】
そして、図1に示すように、ユーザ装置Aとユーザ装置Bとは、何らかの方式で共有鍵Sを共有する(ステップ(1))。公開鍵暗号方式等で暗号化した上で一方のユーザ装置から他方のユーザ装置へ送信するようにしても良いし、何らかの装置から、協業する全てのユーザの全てのユーザ装置に公開鍵暗号方式などによって暗号化した上で配信するようにしても良い。
【0013】
そして、ユーザ装置Aは、秘密鍵Kaと共有鍵Sとの排他的論理和(以下、特に明示しない限り「+」は排他的論理和を表すものとする。)を算出することで、共有鍵Sでマスクされた秘密鍵Ka+Sを、公開鍵暗号方式などによって暗号化した上で、分析装置に送信する(ステップ(2))。また、ユーザ装置Bは、秘密鍵Kbと共有鍵Sとの排他的論理和を算出することで、共有鍵Sでマスクされた秘密鍵Kb+Sを、公開鍵暗号方式などによって暗号化した上で、分析装置に送信する(ステップ(3))。
【0014】
一方、分析装置は、ユーザ装置Aからマスクされた秘密鍵Ka+Sを、ユーザ装置Bからマスクされた秘密鍵Kb+Sを取得し、保持しておく。さらに、分析装置は、マスク化された秘密鍵Ka+SとKb+Sとの排他的論理和を算出して、変換鍵Ka+Kbを生成し、保持しておく(ステップ(4))。このように排他的論理和を行うと、同じデータである共有鍵Sがキャンセルされるという特性を用いている。
【0015】
図2の処理に移行し、ユーザ装置Aは、ユーザAのデータDaと秘密鍵Kaとの排他的論理和を算出することで、秘匿化データDa+Kaを生成し、秘匿化データDa+Kaを、分析装置に送信する(ステップ(5))。また、ユーザ装置Bは、ユーザBのデータDbと秘密鍵Kbとの排他的論理和を算出することで、秘匿化データDb+Kbを生成し、秘匿化データDb+Kbを、分析装置に送信する(ステップ(6))。
【0016】
これに対して分析装置は、ユーザ装置Aから秘匿化データDa+Kaを取得し、ユーザ装置Bから秘匿化データDb+Kbを取得し、保持しておく。そして、分析装置は、秘匿化データDa+Kaと変換鍵Ka+Kbとの排他的論理和を算出することで、第2の秘匿化データDa+Kbを生成する(ステップ(7))。具体的には、Da+Ka+Ka+Kb=Da+Kbとなる。その後、ユーザ装置Bからの秘匿化データDb+Kbと第2の秘匿化データDa+Kbとに対して、予め定められた分析処理を実施し、マスク化された分析結果R+Kbを生成する(ステップ(8))。本実施の形態では、ステップ(7)でマスク化のキーがKbに揃えられたので、同じデータ値であればマスク化されても同じ値になる。従って、マスク化を解除することなく、マスク化したままでも各種の分析処理を実施することができる。例えば、複数のデータ項目のデータ値の組み合わせについての出現頻度を集計するクロス集計や任意のデータ項目間で相関が高いデータ項目の組み合わせを抽出する相関ルール抽出などを行う。
【0017】
図3の処理に移行し、分析装置は、マスク化された分析結果R+Kbと第2のユーザからのマスク化された秘密鍵Kb+Sとを排他的論理和を算出することで、配信データR+Sを生成し(ステップ(9))、この配信データR+Sをユーザ装置A及びユーザ装置Bに送信する(ステップ(10))。共有鍵Sでマスクされたデータをネットワークを介して配信することで、秘密鍵が漏洩することを防止している。そうすると、ユーザ装置A及びユーザ装置Bは、それぞれ配信データR+Sを取得して、保持する。そして、分析結果Rが共有鍵Sでマスク化された配信データR+Sを使用する際には、ユーザ装置A及びユーザ装置Bは、それぞれ配信データR+Sと共有鍵Sとの排他的論理和を算出することで、分析結果Rを生成する(ステップ(11))。
【0018】
このようにすれば、ユーザは、分析装置には、秘密鍵を明かすことなく、ユーザの実データについても明かすことはないが、分析装置では集計処理等の分析処理を実施することができる。また、ユーザ間では共有鍵Sを共有するだけで、分析装置から、マスク化されていたとしても他人のデータについては送信しないようにすれば、ユーザの実データについても他のユーザに明かすことはない。
【0019】
すなわち、分析装置にも実データを明かすことなく、複数のユーザ間で実データを共有することなく、複数のユーザのデータについて集計結果などの分析結果を共有することができるようになる。よって、より大量のデータの分析結果のみを複数のユーザで活用できるようになる。また、分析処理自体は、従来の処理から変更することなく、分析処理のモジュールをそのまま活用することができる。
【0020】
次に、上で述べたような処理を実施するためのシステムについて図4乃至図27を用いて説明する。
【0021】
図4にシステム全体の概要図を示す。例えばインターネットであるネットワーク1には、分析装置3と、複数のユーザ装置とが接続されている。図4では、ユーザ装置A及びユーザ装置Bが示されているが、2以上であればいくつであっても良い。ユーザ装置Aは、例えば社内LAN(Local Area Network)などのネットワーク51を介して1又は複数のユーザ端末53が接続されている。同様に、ユーザ装置Bは、ネットワーク71を介して1又は複数のユーザ端末73が接続されている。ユーザ端末53は、ユーザ装置Aに対して指示やデータを出力したり、ユーザ装置Aから分析結果等のデータを取得するような例えばパーソナルコンピュータである。例えば、ユーザ装置AがWeb(ウェブ)サーバ機能を有しており、ユーザ端末53がWebブラウザを実行しており、Webサーバ機能とWebブラウザでデータのやりとりを行う。
【0022】
同様に、ユーザ端末73は、ユーザ装置Bに対して指示やデータを出力したり、ユーザ装置Bから分析結果等のデータを取得するような例えばパーソナルコンピュータである。例えば、ユーザ装置BがWebサーバ機能を有しており、ユーザ端末73がWebブラウザを実行しており、Webサーバ機能とWebブラウザでデータのやりとりを行う。
【0023】
ユーザ装置1000は、図5に示すような構成を有する。すなわち、ユーザ装置1000は、前処理部1100と、データ登録部1200と、データ取得部1300と、データ格納部1400と、鍵格納部1500と、端末インタフェース部1600とを有する。
【0024】
また、前処理部1100は、共有鍵取得部1110と、鍵生成部1120と、鍵マスク部1130と、鍵登録部1140とを有する。また、データ登録部1200は、データマスク部1210と、データ送信部1220とを有する。さらに、データ取得部1300は、データ受信部1310と、復号部1320とを有する。これらの処理部の処理内容については、処理フローの説明において述べる。
【0025】
さらに、分析装置300は、鍵登録部301と、鍵格納部302と、変換鍵生成部303と、データ変換部304と、データ格納部305と、データ登録部306と、分析処理部307と、分析結果格納部308と、配布データ生成部309と、配布データ格納部310と、データ送信部311とを有する。
【0026】
鍵登録部301は、ユーザ装置から受信したマスク化秘密鍵のデータを鍵格納部302に格納する。変換鍵生成部303は、鍵格納部302に格納されているマスク化秘密鍵から変換鍵を生成し、当該変換鍵を鍵格納部302に格納する。データ登録部306は、ユーザ装置から秘匿化データを受信し、データ格納部305に格納する。データ変換部304は、鍵格納部302に格納されている変換鍵を用いてデータ格納部305に格納されている秘匿化データを処理して、処理結果をデータ格納部305に格納する。分析処理部307は、データ格納部305に格納されている秘匿化データを用いて所定の分析処理を実施して、マスク化された分析結果を生成し、分析結果格納部308に格納する。配布データ生成部309は、鍵格納部302に格納されているマスク化鍵を用いて、分析結果格納部308に格納されている、マスク化された分析結果を処理して、処理結果である配布データを配布データ格納部310に格納する。データ送信部311は、配布データ格納部310に格納されている配布データを、ユーザ装置に送信する。
【0027】
次に、図7乃至図27を用いて図4乃至図6に示したシステムの動作について説明する。
【0028】
まず、図7を用いてメイン処理の処理フローを示す。最初に、ユーザ装置1000は、マスク化鍵生成処理を実施する(ステップS1)。この処理は、図1のステップ(1)乃至(3)に相当する。次に、分析装置300は、変換鍵生成処理を実施する(ステップS3)。この処理は図1のステップ(4)に相当する。その後、ユーザ装置1000は、データ秘匿化処理を実施する(ステップS5)。この処理は、図2のステップ(5)及び(6)に相当する。これに対して、分析装置300は、秘匿化データ分析処理を実施する(ステップS7)。この処理は、図2のステップ(7)及び(8)並びに図3のステップ(9)及び(10)に相当する。最後に、ユーザ装置1000は、分析結果取得処理を実施する(ステップS9)。この処理は、図3のステップ(11)に相当する。
【0029】
以下、これらの処理を具体的に説明する。
【0030】
最初に、マスク化鍵生成処理について図8を用いて説明する。まず、例えばユーザ端末などからの指示を端末インタフェース部1600で受け付けると、ユーザ装置1000の前処理部1100における共有鍵取得部1110は、共有鍵Sを取得し、鍵格納部1500に格納する(ステップS11)。協業するユーザのうち1人がコーディネータとして共有鍵Sを生成する場合には、コーディネータが、生成した共有鍵Sを、他のユーザの公開鍵で暗号化して、それぞれのユーザに配布する。配布先のユーザのユーザ装置1000の前処理部1100における共有鍵取得部1110は、秘密鍵で復号化して共有鍵Sを取得する。又は、信頼できる第三者機関が、共有鍵Sを生成して、協業する各ユーザの公開鍵で共有鍵Sを暗号化して配布し、各ユーザのユーザ装置100が、上で述べたのと同様に復号化することで共有鍵Sを取得する。
【0031】
また、ユーザ装置1000の前処理部1100における鍵生成部1120は、予め定められた方法によって秘密鍵Kuを生成し、鍵格納部1500に格納する(ステップS13)。なお、uはユーザを表しており、ユーザAであればa、ユーザBであればbとなる。
【0032】
その後、前処理部1100の鍵マスク部1130は、秘密鍵Kuと共有鍵Sとの排他的論理和を算出することでマスク化鍵Kum(=Ku+S)を生成し、鍵格納部1500に格納する(ステップS15)。その後、鍵登録部1140は、予め設定されている分析装置300宛に、マスク化鍵Kumを送信する(ステップS17)。なお、ステップS17では、公開鍵暗号方式などで暗号化した上で、分析装置300にマスク化鍵を送信する。
【0033】
このような処理を実施することで、分析装置1000に各ユーザのマスク化鍵Kumを登録することができるようになる。
【0034】
なお、以下で用いる具体例のために、共有鍵S、秘密鍵Ku及びマスク化鍵Kumについて示しておく。本実施の形態では、データベースの1レコードが6バイトであり、各鍵もレコードのバイト数と同じ長さであるものとする。
S=033efddaac35
Ka=ab92034af012
Kb=eff024acd33a
Kam=033efddaac35+ab92034af012
=a8acfe905c27
Kbm=033efddaac35+eff024acd33a
=ecced9767f0f
【0035】
次に、図9を用いて変換鍵生成処理について説明する。分析装置300の鍵登録部301は、ユーザ装置1000からマスク化鍵Kumを受信し、鍵格納部302に格納する(ステップS31)。また、変換鍵生成部303は、例えば協業するユーザからマスタとなるユーザを選択して、当該ユーザのマスク化鍵と他のユーザのマスク化鍵との排他的論理和を算出することで、変換鍵Kab(=Kam+Kbm=Ka+S+Kb+S)を生成し、鍵格納部302に格納する(ステップS33)。
【0036】
マスタとなるユーザの選択は、予めルールとして決定しておき、例えば所定時間毎に切り替える、又は所定時間毎にランダムに選択するなどの手法によって行う。
【0037】
上で述べた例では、Kabは、以下のような値となる。
Kab=a8acfe905c27+ecced9767f0f
=446277e62328
【0038】
このような処理を実施することで、以下で述べる分析処理で実データを復元することなく通常どおり分析処理を行うことができるようになる。
【0039】
次に、データ秘匿化処理について図10乃至図17を用いて説明する。例えば端末インタフェース部1600を介してユーザ端末などから分析の対象となるデータDuを受信し、データ格納部1400に格納する。その後、ユーザ装置1000のデータ登録部1200におけるデータマスク部1210は、分析データDuと秘密鍵Kuとの排他的論理和を算出することで秘匿化データDum(=Du+Ku)を生成し、メインメモリなどの記憶装置に格納する(ステップS41)。
【0040】
その後、データ送信部1220は、秘匿化データDumを分析装置300に送信する(ステップS43)。
【0041】
図11に、例えばユーザAのデータの一例を示す。図11の例では、日付と、性別と、年齢と、購入品とを含むレコードが含まれる。日付と、性別と、年齢とについてはそれぞれ1バイトであるものとする。また、購入品については3バイトであるものとする。このようなデータについては16進数表示で取り扱うものとすると、図12に示すようなデータとなる。データフォーマットは図11と同じである。
【0042】
また、図13に、例えばユーザBのデータ(16進数表示)の一例を示す。図12と同じデータフォーマットとなっている。
【0043】
本実施の形態では、図14に示すように、秘密鍵Ka及びKbのいずれも、先頭2桁は日付の属性(データ項目とも呼ぶ。)に対応付けられ、次の2桁は性別の属性に対応付けられ、次の2桁は年齢の属性に対応付けられ、最後の6桁は購入品の属性に対応付けられている。
【0044】
同様に、図15に示すように、共有鍵Sのいずれも、先頭2桁は日付の属性(データ項目とも呼ぶ。)に対応付けられ、次の2桁は性別の属性に対応付けられ、次の2桁は年齢の属性に対応付けられ、最後の6桁は購入品の属性に対応付けられている。
【0045】
そして、ユーザAのデータDaと秘密鍵Kaとの排他的論理和を算出することで秘匿化データKamを生成すると、図16に示すようなデータが得られる。同様に、ユーザBのデータDbと秘密鍵Kbとの排他的論理和を算出することで秘匿化データKbmを生成すると、図17に示すようなデータが得られる。
【0046】
次に、図18乃至図24を用いて秘匿化データ分析処理について説明する。まず、データ登録部306は、ユーザ装置1000から秘匿化データDum(上の例ではDam及びDbm)を受信し、データ格納部305に格納する(ステップS51)。そして、データ変換部304は、秘匿化データDamと変換鍵Kabとの排他的論理和を算出することで変換データを生成し、データ格納部305に格納する(ステップS53)。ここでは、ユーザBがマスタとして選択されているものとして、それ以外のユーザAについての秘匿化データDamに対して、変更鍵Kabを適用する。すなわち、Damc=Dam+Kab=Da+Ka+Ka+Kb=Da+Kbが算出されることになる。
【0047】
上で述べた例では、Kab=446277e62328と図16の秘匿化データとの排他的論理和を算出することになり、図19に示すようなデータが得られるようになる。Kbでマスクされた形になるので、図17に示すようなユーザBの秘匿化データと同様に取り扱うことができる。例えば同じ男性であれば両方共「f0」に変換されており、同じ値であれば実データ値も同じであることになる。
【0048】
そうすると、分析処理部307は、データ格納部305に格納されている秘匿化データDbm及びDamcを用いて、所定の分析処理を実施する(ステップS55)。所定の分析処理については任意であるが、ここでは、クロス集計と相関ルール抽出とを一例として示す。
【0049】
まず、クロス集計処理で年齢と購入品との組み合わせについて出現頻度をカウントするものとする。図17と図19とから、年齢と購入品との組み合わせについて出現頻度をカウントした結果は、図20に示すようなデータが得られる。図20の例では、横方向のカラム名には、購入品についての秘匿化されたデータ値が列挙されており、縦方向のカラム名には、年齢についての秘匿化されたデータ値が列挙されている。年齢と購入品との組み合わせについての出現頻度については実データ値である。なお、このようなデータは分析結果格納部308に格納される。
【0050】
一方、相関ルール抽出については、図21乃至図24を用いて説明する。まず、分析処理部307は、抽出条件を取得する(ステップS61)。例えば、以下で用いる最小支持度及び確信度閾値を予め設定しておき、それらを読み出す。そして、データ格納部305に格納されている秘匿化データにおける各値について支持度を算出し、例えばメインメモリなどの記憶装置に格納する(ステップS63)。本ステップでは、属性による区別はないので、日付の「ee」「ec」などの各々の値について、性別「f0」「f1」の各々の値について、年齢についても「3a」「0c」などの各々の値について、購入品「03e4b3」「8820e6」などの各々の値について、出現頻度を計数する。その後、出現頻度/全レコード数によって支持度を算出する。
【0051】
図17及び図19の例では、以下のような支持度が得られる。
「ee」:0.1
「ec」:0.5
「eb」:0.1
「ed」:0.1
「ea」:0.1
「e9」:0.1
「f0」:0.6
「f1」:0.4
「3a」:0.1
「0c」:0.2
「30」:0.6
「2e」:0.1
「03e4b3」:0.2
「8820e6」:0.5
「71ffef」:0.2
「db3091」:0.1
【0052】
次に、分析処理部307は、予め設定されている最小支持度以上の秘匿化データ値を特定する(ステップS65)。上で述べた例では、最小支持度=0.3とすると、「ec」と、「f0」と、「f1」と、「30」と、「8820e6」とが特定される。
【0053】
その後、分析処理部307は、特定された秘匿化データ値の全てのペアについて支持度を算出し、メインメモリなどの記憶装置に格納する(ステップS67)。例えば、「ec」かつ「f0」の支持度は、図17及び図19のデータからすると、4/10=0.4と算出される。その他の組み合わせを併せて記載すれば以下のとおりである。
「ec」かつ「f0」:0.4
「ec」かつ「f1」:0.1
「ec」かつ「30」:0.3
「ec」かつ「8820e6」:0.5
「f0」かつ「30」:0.2
「f0」かつ「8820e6」:0.4
「f1」かつ「30」:0.4
「f1」かつ「8820e6」:0.1
「30」かつ「8820e6」:0.3
【0054】
さらに、分析処理部307は、支持度が最小支持度以上のペアを抽出して、当該ペアから確信度を算出し、例えばメインメモリなどの記憶装置に格納する(ステップS69)。例えば、最低支持度0.3以上のペアを特定し、確信度を以下のように算出する。
AならばBの確信度=(AかつBの出現回数/Aの出現回数)
BならばAの確信度=(AかつBの出現回数/Bの出現回数)
【0055】
従って、「ec」ならば「f0」の確信度は、4回/5回=0.8であり、「f0」ならば「ec」の確信度は、4回/6回=0.66といったように算出される。
【0056】
その後、分析処理部307は、確信度が閾値以上のルールを特定し、分析結果格納部308に格納する(ステップS71)。上で述べた例では、図22に示すようなデータが得られるようになる。日付が「ec」ならば購入品「8820e6」となるというルールや、購入品「8820e6」ならば日付「ec」となるというルールや、性別が「f1」ならば年齢「30」となるというルールなどが抽出される。
【0057】
このような処理については従来技術と同じであり、本実施の形態のために変更しなくても良いので、既存のプログラムモジュールをそのまま使用できる。
【0058】
図18の処理の説明に戻って、配布データ生成部309は、分析結果格納部308に格納されている分析結果RbmとマスタであるユーザBのマスク化鍵Kbmとの排他的論理和を算出することで配布データRmを生成し、配布データ格納部310に格納する(ステップS57)。具体的には、RbmはKbでマスクされているので、マスク化鍵Kbm=Kb+Sとの排他的論理和を算出することで、KbがSで置換される。すなわち、Rm=実分析結果R+Sである。
【0059】
例えば図20に示すような分析結果が得られた場合、ステップS57を実施することで図23に示すようなデータが得られる。なお、横方向のデータ項目が購入品であり、縦方向のデータが項目が年齢であるから、マスク化鍵Kbmにおいても購入品に対応する桁(すなわち最も右から6桁まで)と、年齢に対応する桁(最も右から7桁目及び8桁目)とをそれぞれ利用する。すなわち、Kbm=ecced9767f0fの「767f0f」と購入品のデータ値との排他的論理和を算出し、Kbm=ecced9767f0fの「d9」と年齢のデータ値との排他的論理和を算出する。
【0060】
さらに、図22に示すような分析結果が得られた場合、ステップS57を実施することで、図24に示すようなデータが得られる。各データ値のデータ項目に対応する桁を用いる点については同じである。すなわち、「日付」「購入品」「性別」「年齢」といったデータ項目名については演算を行わず、データ値について演算を行う。
【0061】
図18の処理の説明に戻って、データ送信部311は、配信データRmをユーザ装置1000に送信する(ステップS59)。このようにRm=実分析結果R+Sを送信することで、秘密鍵の漏洩を防止している。
【0062】
次に、図25乃至図27を用いて分析結果取得処理について説明する。まず、ユーザ装置1000のデータ取得部1300におけるデータ受信部1310は、分析装置300から、配布データRmを受信し、データ格納部1400に格納する(ステップS81)。そして、データ取得部1300の復号部1320は、データ格納部1400に格納されている配布データと、鍵格納部1500に格納されている共有鍵Sとの排他的論理和を算出することで分析結果を復元し、データ格納部1400に格納する(ステップS83)。すなわち、R=Rm+S=R+S+Sを算出する。
【0063】
図23のような配布データの場合には、図26に示すような16進数表現に復号される。図26でも図23と同様に、購入品及び年齢のデータ値について復号が行われる。このような16進数表現が得られれば、図27に示すように、対応する具体的なデータ値にも直すことができるようになる。
【0064】
また、図24に示すような配布データの場合には、図28に示すような16進数表現に復号される。図28でも図24と同様に、各データ項目のデータ値について復号が行われる。このような16進数表現が得られれば、図29に示すように、対応する具体的なデータ値にも直すことができるようになる。
【0065】
例えばユーザ端末Aは、ユーザ装置Aにアクセスすると、端末インタフェース部1600が、データ格納部1400に格納されている実分析データを読み出して、要求元のユーザ端末Aに送信する。ユーザ端末Aは、ユーザ装置Aから実分析データを受信して、表示装置に表示する。これによってユーザは、分析結果を利用することができるようになる。ユーザ端末Bも同様の処理を行う。
【0066】
以上のような処理を実施すれば、分析装置300には、秘密鍵を明かすことなく、ユーザの実データについても明かすことはないが、分析装置300では分析処理を実施することができる。また、ユーザ同士では共有鍵Sを共有するだけで、分析装置300から、マスク化されていたとしても他人のデータについては送信しないようにすれば、ユーザの実データについても他のユーザに明かすことはない。
【0067】
すなわち、分析装置300にも実データを明かすことなく、複数のユーザ間で実データを共有することなく、複数のユーザのデータについて分析結果を共有することができるようになる。よって、より大量のデータの分析結果のみを複数のユーザで活用できるようになる。また、分析処理自体は、従来の処理から変更することなく、分析処理のモジュールをそのまま活用することができる。
【0068】
なお、マスタではないユーザAが複数の場合にも、上で述べたような処理をそのまま利用することができる。具体的には、ユーザC、ユーザDについても、それぞれ変換鍵を生成する。より具体的には、ユーザCのマスク化鍵Kcm+ユーザBのマスク化鍵Kbm=Kc+S+Kb+S=Kc+Kbで変換鍵Kcbを生成し、ユーザDのマスク化鍵Kdm+ユーザBのマスク化鍵Kbm=Kd+S+Kb+S=Kd+Kbを生成する。そして、ユーザCの秘匿化データDcm+ユーザCについての変換鍵Kcb=Dc+Kc+Kc+Kb=Dc+Kbを生成する。さらに、ユーザDの秘匿化データDdm+ユーザDについての変換鍵Kdb=Dd+Kd+Kd+Kb=Dd+Kbを生成する。そうすれば、上で述べたような分析処理をそのまま実施することができる。
【0069】
以上本技術の実施の形態について説明したが、本技術はこれに限定されるものではない。例えば、図4乃至図6の機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成と一致しない。また、処理フローについても、処理結果が変わらない限り、ステップの順番を入れ替えたり、並列に実行しても良い場合もある。
【0070】
なお、上で述べたユーザ装置1000、分析装置300は、コンピュータ装置であって、図30に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【0071】
以上述べた本実施の形態をまとめると、以下のようになる。
【0072】
本実施の形態に係る秘匿分析処理方法は、(A)第1のユーザの秘密鍵と共通鍵との排他的論理和である第1の鍵と、第2のユーザの秘密鍵と前記共通鍵との排他的論理和である第2の鍵とを格納している第1のデータ格納部に格納されている第1の鍵と第2の鍵との排他的論理和を算出して第3の鍵を生成し、当該第3の鍵を第1のデータ格納部に格納するステップと、(B)第1のユーザの秘密鍵と第1のユーザのデータとの排他的論理和である第1の秘匿化データと、第2のユーザの秘密鍵と第2のユーザのデータとの排他的論理和である第2の秘匿化データとを格納する第2のデータ格納部に格納されている第1の秘匿化データと、第1のデータ格納部に格納されている第3の鍵との排他的論理和を算出して第3の秘匿化データを生成し、第2のデータ格納部に格納するステップと、(C)第2のデータ格納部に格納されている第2の秘匿化データ及び第3の秘匿化データに対して、秘匿化を解除することなく所定の分析処理を実施して、分析結果データを第3のデータ格納部に格納するステップと、(D)第3のデータ格納部に格納されている分析結果データにおける秘匿化部分に対して第1のデータ格納部に格納されている第2の鍵との排他的論理和を算出して、共有鍵により秘匿化された分析結果データを生成し、第4のデータ格納部に格納する分析結果秘匿化ステップとを含む。
【0073】
このような処理を行うことで、複数のユーザのデータを他のユーザ及び分析者にも秘匿化したまま分析処理を実施することができるようになる。
【0074】
また、上で述べた第2の鍵が、第1のユーザのデータ及び第2のユーザのデータにおける担当データ項目のための桁を含む場合もある。このような場合には、分析結果秘匿化ステップにおいて、分析結果データにおける秘匿化部分に含まれるデータ項目のデータ値と、第2の鍵において対応する桁との排他的論理和を算出するようにしてもよい。これによって分析結果において一部のデータ項目のみのデータ値を用いる場合にも対処することができるようになる。
【0075】
さらに、上で述べた第1のユーザが複数である場合、第1のユーザの各々の第1の鍵について、上で述べた第3の鍵を生成するようにしてもよい。このようにすれば、3以上のユーザが存在する場合も対処することができる。
【0076】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
【0077】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0078】
(付記1)
第1のユーザの秘密鍵と共通鍵との排他的論理和である第1の鍵と、第2のユーザの秘密鍵と前記共通鍵との排他的論理和である第2の鍵とを格納している第1のデータ格納部に格納されている前記第1の鍵と前記第2の鍵との排他的論理和を算出して第3の鍵を生成し、当該第3の鍵を前記第1のデータ格納部に格納するステップと、
前記第1のユーザの秘密鍵と前記第1のユーザのデータとの排他的論理和である第1の秘匿化データと、前記第2のユーザの秘密鍵と前記第2のユーザのデータとの排他的論理和である第2の秘匿化データとを格納する第2のデータ格納部に格納されている前記第1の秘匿化データと、前記第1のデータ格納部に格納されている前記第3の鍵との排他的論理和を算出して第3の秘匿化データを生成し、前記第2のデータ格納部に格納するステップと、
前記第2のデータ格納部に格納されている前記第2の秘匿化データ及び前記第3の秘匿化データに対して、秘匿化を解除することなく所定の分析処理を実施して、分析結果データを第3のデータ格納部に格納するステップと、
前記第3のデータ格納部に格納されている分析結果データにおける秘匿化部分に対して前記第1のデータ格納部に格納されている前記第2の鍵との排他的論理和を算出して、前記共有鍵により秘匿化された分析結果データを生成し、第4のデータ格納部に格納する分析結果秘匿化ステップと、
を含み、コンピュータにより実行される秘匿分析処理方法。
【0079】
(付記2)
前記第2の鍵が、前記第1のユーザのデータ及び前記第2のユーザのデータにおける担当データ項目のための桁を含み、
前記分析結果秘匿化ステップにおいて
前記分析結果データにおける秘匿化部分に含まれるデータ項目のデータ値と、前記第2の鍵において対応する桁との排他的論理和を算出する
付記1記載の秘匿分析処理方法。
【0080】
(付記3)
前記第1のユーザが複数である場合、
前記第1のユーザの各々の第1の鍵について、前記第3の鍵を生成する
付記1又は2記載の秘匿分析処理方法。
【0081】
(付記4)
第1のユーザの秘密鍵と共通鍵との排他的論理和である第1の鍵と、第2のユーザの秘密鍵と前記共通鍵との排他的論理和である第2の鍵とを格納している第1のデータ格納部に格納されている前記第1の鍵と前記第2の鍵との排他的論理和を算出して第3の鍵を生成し、当該第3の鍵を前記第1のデータ格納部に格納するステップと、
前記第1のユーザの秘密鍵と前記第1のユーザのデータとの排他的論理和である第1の秘匿化データと、前記第2のユーザの秘密鍵と前記第2のユーザのデータとの排他的論理和である第2の秘匿化データとを格納する第2のデータ格納部に格納されている前記第1の秘匿化データと、前記第1のデータ格納部に格納されている前記第3の鍵との排他的論理和を算出して第3の秘匿化データを生成し、前記第2のデータ格納部に格納するステップと、
前記第2のデータ格納部に格納されている前記第2の秘匿化データ及び前記第3の秘匿化データに対して、秘匿化を解除することなく所定の分析処理を分析部に実施させ、当該分析部から分析結果データを取得して第3のデータ格納部に格納するステップと、
前記第3のデータ格納部に格納されている分析結果データにおける秘匿化部分に対して前記第1のデータ格納部に格納されている前記第2の鍵との排他的論理和を算出して、前記共有鍵により秘匿化された分析結果データを生成し、第4のデータ格納部に格納する分析結果秘匿化ステップと、
を、コンピュータに実行させるための秘匿分析処理プログラム。
【0082】
(付記5)
第1のユーザの秘密鍵と共通鍵との排他的論理和である第1の鍵と、第2のユーザの秘密鍵と前記共通鍵との排他的論理和である第2の鍵とを格納している第1のデータ格納部と、
前記第1のデータ格納部に格納されている前記第1の鍵と前記第2の鍵との排他的論理和を算出して第3の鍵を生成し、当該第3の鍵を前記第1のデータ格納部に格納する鍵生成部と、
前記第1のユーザの秘密鍵と前記第1のユーザのデータとの排他的論理和である第1の秘匿化データと、前記第2のユーザの秘密鍵と前記第2のユーザのデータとの排他的論理和である第2の秘匿化データとを格納する第2のデータ格納部と、
前記第2のデータ格納部に格納されている前記第1の秘匿化データと、前記第1のデータ格納部に格納されている前記第3の鍵との排他的論理和を算出して第3の秘匿化データを生成し、前記第2のデータ格納部に格納するデータ変換部と、
前記第2のデータ格納部に格納されている前記第2の秘匿化データ及び前記第3の秘匿化データに対して、秘匿化を解除することなく所定の分析処理を実施して、分析結果データを第3のデータ格納部に格納する分析処理部と、
前記第3のデータ格納部に格納されている分析結果データにおける秘匿化部分に対して前記第1のデータ格納部に格納されている前記第2の鍵との排他的論理和を算出して、前記共有鍵により秘匿化された分析結果データを生成し、第4のデータ格納部に格納するデータ生成部と、
を有する秘匿分析処理装置。
【符号の説明】
【0083】
1000 ユーザ装置
1100 前処理部
1200 データ登録部
1300 データ取得部
1400 データ格納部
1500 鍵格納部
1600 端末インタフェース部
300 分析装置
301 鍵登録部
302 鍵格納部
303 変換鍵生成部
304 データ変換部
305 データ格納部
306 データ登録部
307 分析処理部
308 分析結果格納部
309 配布データ生成部
310 配布データ格納部
311 データ送信部

【特許請求の範囲】
【請求項1】
第1のユーザの秘密鍵と共通鍵との排他的論理和である第1の鍵と、第2のユーザの秘密鍵と前記共通鍵との排他的論理和である第2の鍵とを格納している第1のデータ格納部に格納されている前記第1の鍵と前記第2の鍵との排他的論理和を算出して第3の鍵を生成し、当該第3の鍵を前記第1のデータ格納部に格納するステップと、
前記第1のユーザの秘密鍵と前記第1のユーザのデータとの排他的論理和である第1の秘匿化データと、前記第2のユーザの秘密鍵と前記第2のユーザのデータとの排他的論理和である第2の秘匿化データとを格納する第2のデータ格納部に格納されている前記第1の秘匿化データと、前記第1のデータ格納部に格納されている前記第3の鍵との排他的論理和を算出して第3の秘匿化データを生成し、前記第2のデータ格納部に格納するステップと、
前記第2のデータ格納部に格納されている前記第2の秘匿化データ及び前記第3の秘匿化データに対して、秘匿化を解除することなく所定の分析処理を実施して、分析結果データを第3のデータ格納部に格納するステップと、
前記第3のデータ格納部に格納されている分析結果データにおける秘匿化部分に対して前記第1のデータ格納部に格納されている前記第2の鍵との排他的論理和を算出して、前記共有鍵により秘匿化された分析結果データを生成し、第4のデータ格納部に格納する分析結果秘匿化ステップと、
を含み、コンピュータにより実行される秘匿分析処理方法。
【請求項2】
前記第2の鍵が、前記第1のユーザのデータ及び前記第2のユーザのデータにおける担当データ項目のための桁を含み、
前記分析結果秘匿化ステップにおいて
前記分析結果データにおける秘匿化部分に含まれるデータ項目のデータ値と、前記第2の鍵において対応する桁との排他的論理和を算出する
請求項1記載の秘匿分析処理方法。
【請求項3】
前記第1のユーザが複数である場合、
前記第1のユーザの各々の第1の鍵について、前記第3の鍵を生成する
請求項1又は2記載の秘匿分析処理方法。
【請求項4】
第1のユーザの秘密鍵と共通鍵との排他的論理和である第1の鍵と、第2のユーザの秘密鍵と前記共通鍵との排他的論理和である第2の鍵とを格納している第1のデータ格納部に格納されている前記第1の鍵と前記第2の鍵との排他的論理和を算出して第3の鍵を生成し、当該第3の鍵を前記第1のデータ格納部に格納するステップと、
前記第1のユーザの秘密鍵と前記第1のユーザのデータとの排他的論理和である第1の秘匿化データと、前記第2のユーザの秘密鍵と前記第2のユーザのデータとの排他的論理和である第2の秘匿化データとを格納する第2のデータ格納部に格納されている前記第1の秘匿化データと、前記第1のデータ格納部に格納されている前記第3の鍵との排他的論理和を算出して第3の秘匿化データを生成し、前記第2のデータ格納部に格納するステップと、
前記第2のデータ格納部に格納されている前記第2の秘匿化データ及び前記第3の秘匿化データに対して、秘匿化を解除することなく所定の分析処理を分析部に実施させ、当該分析部から分析結果データを取得して第3のデータ格納部に格納するステップと、
前記第3のデータ格納部に格納されている分析結果データにおける秘匿化部分に対して前記第1のデータ格納部に格納されている前記第2の鍵との排他的論理和を算出して、前記共有鍵により秘匿化された分析結果データを生成し、第4のデータ格納部に格納する分析結果秘匿化ステップと、
を、コンピュータに実行させるための秘匿分析処理プログラム。
【請求項5】
第1のユーザの秘密鍵と共通鍵との排他的論理和である第1の鍵と、第2のユーザの秘密鍵と前記共通鍵との排他的論理和である第2の鍵とを格納している第1のデータ格納部と、
前記第1のデータ格納部に格納されている前記第1の鍵と前記第2の鍵との排他的論理和を算出して第3の鍵を生成し、当該第3の鍵を前記第1のデータ格納部に格納する鍵生成部と、
前記第1のユーザの秘密鍵と前記第1のユーザのデータとの排他的論理和である第1の秘匿化データと、前記第2のユーザの秘密鍵と前記第2のユーザのデータとの排他的論理和である第2の秘匿化データとを格納する第2のデータ格納部と、
前記第2のデータ格納部に格納されている前記第1の秘匿化データと、前記第1のデータ格納部に格納されている前記第3の鍵との排他的論理和を算出して第3の秘匿化データを生成し、前記第2のデータ格納部に格納する分析データ生成部と、
前記第2のデータ格納部に格納されている前記第2の秘匿化データ及び前記第3の秘匿化データに対して、秘匿化を解除することなく所定の分析処理を実施して、分析結果データを第3のデータ格納部に格納する分析処理部と、
前記第3のデータ格納部に格納されている分析結果データにおける秘匿化部分に対して前記第1のデータ格納部に格納されている前記第2の鍵との排他的論理和を算出して、前記共有鍵により秘匿化された分析結果データを生成し、第4のデータ格納部に格納する分析結果秘匿化部と、
を有する秘匿分析処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate


【公開番号】特開2012−195733(P2012−195733A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2011−57701(P2011−57701)
【出願日】平成23年3月16日(2011.3.16)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】