(57)【要約】  分析クエリ応答システムは、分析クエリを生成して送信する利用者端末１と、分析クエリが所定のプライバシ保護指標を満たすか第一の検証を行う検証実行部２２２を含む分析クエリ検証装置２２と、個人データが記憶されている個人データ記憶部２１１、及び、第一の検証に成功した場合には、個人データ記憶部から読み込んだ個人データに対して分析クエリに対応する分析を行うことにより分析結果を取得し、取得した分析結果に対して所定のプライバシ保護加工を行う分析クエリ実行保護加工部２１４を含む分析クエリ実行装置２１と、を含むデータベース装置２と、を備えている。
2020130082.tif 000002
【特許請求の範囲】
【請求項１】
分析クエリを生成して送信する利用者端末と、
前記分析クエリが所定のプライバシ保護指標を満たすか第一の検証を行う検証実行部を含む分析クエリ検証装置と、個人データが記憶されている個人データ記憶部、及び、前記第一の検証に成功した場合には、前記個人データ記憶部から読み込んだ前記個人データに対して前記分析クエリに対応する分析を行うことにより分析結果を取得し、前記取得した分析結果に対して所定のプライバシ保護加工を行う分析クエリ実行保護加工部を含む分析クエリ実行装置と、を含むデータベース装置と、
を含む分析クエリ応答システム。
【請求項２】
請求項１の分析クエリ応答システムであって、
前記利用者端末は、所定のプライバシ保護指標及び所定のプログラム言語の下で前記分析クエリを生成し、
前記分析クエリ実行保護加工部は、前記第一の検証に成功しなかった場合には、前記分析クエリを棄却する、
分析クエリ応答システム。
【請求項３】
請求項２の分析クエリ応答システムであって、
前記利用者端末は、前記分析クエリが前記所定のプライバシ保護指標を満たすことについての証明に関する情報である証明情報を更に生成して送信する、
前記検証実行部は、前記証明情報を用いて前記分析クエリが所定のプライバシ保護指標を満たすか第一の検証を行う、
分析クエリ応答システム。
【請求項４】
請求項３の分析クエリ応答システムであって、
前記所定のプライバシ保護指標は、ε-差分プライバシであり、
前記証明情報は、前記分析クエリに対応する分析計算の大域感度に関する証明情報であり、
前記利用者端末は、前記分析クエリによって消費するプライバシ量を更に送信し、
前記分析クエリ実行保護加工部は、前記利用者端末の予め定められたプライバシ予算の残余が、前記プライバシ量を上回るか第二の検証を更に行い、前記第一の検証及び前記第二の検証に成功した場合には、前記個人データ記憶部から読み込んだ前記個人データに対して前記分析クエリに対応する分析を行うことにより分析結果を取得し、前記取得した分析結果に対して所定のプライバシ保護加工を行い、
前記分析クエリ実行保護加工部は、前記第一の検証及び前記第二の検証の何れかに成功しなかった場合には、前記分析クエリを棄却する、
分析クエリ応答システム。
【請求項５】
請求項１から４の何れかの分析クエリ応答システムの分析クエリ実行装置。
【請求項６】
請求項１から４の何れかの分析クエリ応答システムの前記分析クエリ検証装置であって、
前記分析クエリ検証装置は、前記分析クエリを受信する分析クエリ受信部、及び、前記検証実行部による検証結果を前記分析クエリ実行装置に送信する検証結果送信を更に含む、
分析クエリ検証装置。
【請求項７】
利用者端末が、分析クエリを生成して送信するステップと、
データベース装置の検証実行部が、前記分析クエリが所定のプライバシ保護指標を満たすか第一の検証を行うステップと、
データベース装置の分析クエリ実行保護加工部が、前記第一の検証に成功した場合には、個人データが記憶されている個人データ記憶部から読み込んだ前記個人データに対して前記分析クエリに対応する分析を行うことにより分析結果を取得し、前記取得した分析結果に対して所定のプライバシ保護加工を行うステップと、
を含む分析クエリ応答方法。
【請求項８】
請求項５の分析クエリ実行装置又は請求項６の分析クエリ検証装置の各部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データのプライバシを保護しながら分析を要求できる、プライバシ保護クエリ応答技術に関する。
【背景技術】
【０００２】
近年、様々な情報の利活用に関心が集まっている。特に、個人に密接に関わる情報である個人データについては、商業、医療及び福祉などのあらゆる分野で利活用の需要が高まっている。【０００３】
一方で、個人データを利活用する際には、個人データに含まれる機微な情報であるプライバシに対する十分な配慮が求められる。特に、複数の個人データから得られた統計値などの分析結果を他者へ開示、提供する場合には、開示される統計値から個人データを逆推定されないように適切なプライバシ保護加工を行う必要がある。【０００４】
こうした、プライバシ保護とデータ開示を両立させる方法は、「プライバシ保護データ出版(privacy-preserving data publishing)」と総称される。【０００５】
プライバシ保護データ出版のモデルの１つに「プライバシ保護クエリ応答」というものがある。これは複数の個人データを保存するデータベース装置と、個人データに対し分析を要求するユーザ装置とからなるモデルである。プライバシ保護クエリ応答においては、まず、ユーザ装置がデータベース装置中のデータに対して実施したい分析クエリを作成し、データベース装置へ送付する。この分析クエリは、例えば何らかのプログラミング言語によって記述される。【０００６】
データベース装置は、送付された分析クエリを自身の持つデータに対して実行し、予め自身で定めていたプライバシ保護指標に則り、分析実行結果に対してプライバシ保護加工を行ってユーザへと返送する。【０００７】
プライバシ保護クエリ応答を実現する既存の方法として、非特許文献１及び２の方法などが知られている。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】F.McSherry,“Privacy integrated queries: An Extensible Platform for Privacy-Preserving Data Analysis”, In Proceedings of the 35th SIGMOD International Conference on Management of Data (SIGMOD), 2009.
【非特許文献２】J.Hou, X.-Y.Li, T.Jung, Y.Wang,and D.Zheng,“CASTLE: Enhancing the utility of inequality query auditing without denial threats”, TIFS, 2018.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来技術において実現されるプライバシ保護クエリ応答では、データベース装置側で実装、整備された定型の計算であるライブラリ関数の計算と、その組み合わせによって実現できる分析クエリのみが、クエリとして送付できる。【００１０】
四則演算、等号比較などの基本計算の組み合わせで構成される分析クエリなどの、ライブラリ関数に依存しない自由な分析クエリをクエリとして送付可能になれば、より幅広くデータの利活用が可能となるはずである。【００１１】
しかしながら、作成可能な分析クエリの自由度が上がるほど、データのプライバシ侵害を目的とする不正な分析クエリの作成も容易になり、それによりデータベース装置で適切なプライバシ保護加工を行うことが困難となってしまう可能性がある。【００１２】
そのため、従来技術ではライブラリ関数とその組み合わせのみに自由度を絞ることでプライバシ侵害を防いでいた。【００１３】
本発明の目的は、従来よりも自由な分析クエリへの応答を可能とする分析クエリ応答システム、分析クエリ実行装置、分析クエリ検証装置、分析クエリ応答方法及びプログラムを提供することである。
【課題を解決するための手段】
【００１４】
この発明の一態様による分析クエリ応答システムは、分析クエリを生成して送信する利用者端末と、分析クエリが所定のプライバシ保護指標を満たすか第一の検証を行う検証実行部を含む分析クエリ検証装置と、個人データが記憶されている個人データ記憶部、及び、第一の検証に成功した場合には、個人データ記憶部から読み込んだ個人データに対して分析クエリに対応する分析を行うことにより分析結果を取得し、取得した分析結果に対して所定のプライバシ保護加工を行う分析クエリ実行保護加工部を含む分析クエリ実行装置と、を含むデータベース装置と、を備えている。
【発明の効果】
【００１５】
分析クエリが所定のプライバシ保護指標を満たすか検証する検証機能をデータベース装置に付与することで、従来よりも自由な分析クエリへの応答が可能となる。
【図面の簡単な説明】
【００１６】
【図１】図１は、分析クエリ応答システムの機能構成の例を示す図である。
【図２】図２は、データベース装置の機能構成の例を示す図である。
【図３】図３は、分析クエリ応答方法の処理手続きの例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００１８】
分析クエリ応答システムは、例えば図１に示すように、複数の個人データを蓄積、保存するデータベース装置２と、データベース装置２に対し分析クエリを作成、送信するユーザ装置である利用者端末１とを備えている。後述するように、データベース装置２は、予め定めたプライバシ保護指標に従って、任意に作成された分析クエリに対するプライバシ保護クエリ応答を実現する。分析クエリ応答方法は、分析クエリ応答システムの構成部が、図３及び以下に説明するステップＳ１からＳ４の処理を行うことにより例えば実現される。
【００１９】
データベース装置２は、個人データを記憶する記憶機能と、受信した分析クエリがプライバシ保護指標を満たし得ることを検証する検証機能と、個人データに対して分析クエリを実施しプライバシ保護加工を行うプライバシ保護加工機能とを有する。記憶機能は、個人データ記憶部２１１によって実現される。検証機能は、検証実行部２２２によって実現される。プライバシ保護加工機能は、分析クエリ実行保護加工部２１４によって実現される。
【００２０】
分析クエリは、予めデータベース装置２が予め指定したプログラミング言語によって記述される。データベース装置２及び利用者端末１では、このプログラミング言語の実行環境が構築できるものとする。
【００２１】
後述する本実施形態においては、「プライバシ保護指標」と「プログラミング言語」として、それぞれ従来技術である「差分プライバシ」と「ACL2」（例えば、参考文献１参照。）を用いる。ただし、プログラミング言語についてはACL2と同等かそれ以上の性能の定理証明機能を有するプログラミング言語を用いてもよい。
【００２２】
〔参考文献１〕"User manual for the ACL2 Theorem Prover and the ACL2 Community Books",［online］、［平成30年12月13日検索］、インターネット〈URL：http://www.cs.utexas.edu/users/moore/acl2/v8-0/combined-manual/index.html〉
【００２３】
差分プライバシは、例えば参考文献２で提案されるプライバシ保護指標である。
【００２４】
〔参考文献２〕C.Dwork,"Differential privacy",In Proceedings of the International Colloquium on Automata, Languages and Programming (ICALP)(2), 112, 2006.
【００２５】
プライバシ保護指標の定義では、複数のデータの組Dと、その中の１つのデータだけが異なる組~Dと、パラメータεとに対して、分析計算qとプライバシ保護加工Mが不等式Pr[M(q(D))=x]≦eεPr[M(q(~D))=x]を満たすとき、分析計算qとプライバシ保護加工Mはε-差分プライバシを満たす、とされる。パラメータεは０に近い所定の数を表し、Prは確率を表し、eは自然対数を表す。
【００２６】
上記の不等式は、分析計算qに異なる２つのデータD,~Dを入力した値q(D),q(~D)がプライバシ保護加工Mを行うことにより高い確率で同じ値xとなることを示している。これは、言い換えれば、分析元のデータがD,~Dのどちらであるか分析結果からの推定が困難になるということである。
【００２７】
差分プライバシにおいては、分析計算qの「振る舞い」に依存して適切なプライバシ保護加工Mを定める従来技法が多く存在する。分析計算qの「振る舞い」は、差分プライバシの文脈では「感度」と呼ばれる。
【００２８】
特に、「大域感度」と呼ばれるパラメータδq及びラプラスノイズLapを用いるプライバシ保護加工M(q(D))=q(D)+Lap(δq/ε)がε-差分プライバシを満たすことが知られている。したがって、どんな分析計算qに対しても、qの大域感度δqが得られれば、プライバシ保護加工Mを構成することが可能となる。大域感度は、例えばδq=maxD,~D(|q(D)-q(~D)|)として得ることができる。この大域感度δqの意味は、「qへの入力データを高々１つだけ変更(D→~D)した場合に生じ得る差分の最大値」である。
【００２９】
ACL2は、Common Lispをベースとするプログラミング言語であり、形式手法、定理証明器の１つである。
【００３０】
ACL2は、Common Lispと同様、四則演算などの基本計算を組み合わせて任意の計算を行う関数を記述できる。また、ACL2により、関数が「ある性質を満たしていること」の証明を記述することができ、証明が正しいことを検証することが可能である。
【００３１】
本実施形態は、ACL2によって記述された分析クエリに対し、適切にプライバシを保護して分析結果を応答するものである。
【００３２】
本実施形態では、初めにデータベース装置２が許容できるプライバシ予算を表すパラメータεの初期値が利用者端末１ごとに個別に定められているとする。また、必要に応じて、利用者端末１へ提供するライブラリ関数群及びライブラリ定理群をデータベース装置２でACL2により記述しておいてもよい。
【００３３】
<利用者端末１>
利用者端末１は、分析クエリを生成して送信する（ステップＳ１）。
【００３４】
分析クエリには、分析計算を行う関数qについての情報が少なくとも含まれているとする。分析クエリは、所定のプライバシ保護指標及び所定のプログラム言語の下で生成される。
【００３５】
利用者端末１は、分析クエリが所定のプライバシ保護指標を満たすことについての証明に関する情報である証明情報を更に生成して送信してもよい。所定のプライバシ保護指標がε-差分プライバシである場合には、証明情報は、分析クエリに対応する分析計算の大域感度に関する証明情報であってもよい。証明情報の例は、関数qの大域感度が性質δq≦Δdを満たすことの証明についての情報である。証明情報は、所定のプログラム言語の１つであるACL2によって例えば記述される。
【００３６】
データベース装置２から提供されたライブラリ関数群及びライブラリ定理群がある場合には、分析クエリ及び証明情報はライブラリ関数群及びライブラリ定理群によって記述されてもよい。
【００３７】
更に、利用者端末１は、分析クエリによって消費するプライバシ量を更に送信してもよい。所定のプライバシ保護指標がε-差分プライバシである場合には、このプライバシ量は、例えばパラメータεqである。
【００３８】
なお、利用者端末１は、データベース装置上の実データD(及び~D等)を知らないため、大域感度δqを直接算出することはできない。そのため、D,~Dの代わりに、関数qの入力変数X=(x1,...,xn)と、変数dを用いてXの任意の位置i(1≦i≦n)を加工した入力変数~X=(x1,...,xi+d,...,xn)の２つを用いて性質を証明する。すなわち、任意のX,~Xについて|q(X)-q(~X)|≦Δdを満たすならば、(X,~X)=(D,~D)においても同様であることから、max(|q(D)-q(~D)|)≦Δdが成り立つ。ただし、このΔdは定数であっても、d,Xを入力変数とする関数であってもよい。
【００３９】
例えば関数qが線形結合q(X)=Σ1≦k≦nakxkである場合には、q(~X)=(Σ1≦k≦n,k≠iakxk)+ai(xi+d)=(Σ1≦k≦nakxk)+aidより、|q(X)-q(~X)|=|aid|≦|maxi(ai)・d|となり、dが実データの値域の幅と一致するときΔd=|maxi(ai)・d|はqの大域感度と一致する。ここで、a1,...,anは、所定の数である。したがって、利用者端末１は、変数X,~X及びdについて、「|q(X)-q(~X)|≦|maxi(ai)・d|であることを証明する。
【００４０】
例えば、このようにして、利用者端末１は、実際の個人データを知ることなく、データベース装置２にとって未知の分析クエリに対応する分析計算の大域感度に関する証明情報を生成することができる。
【００４１】
<データベース装置２>
データベース装置２は、図２に示すように、分析クエリ実行装置２１及び分析クエリ検証装置２２を例えば備えている。
【００４２】
分析クエリ実行装置２１は、個人データ記憶部２１１、分析クエリ受信部２１２、検証要求部２１３、分析クエリ実行保護加工部２１４及び分析結果送信部２１５を備えている。
【００４３】
分析クエリ検証装置２２は、分析クエリ受信部２２１、検証実行部２２２及び検証結果送信部２２３を備えている。
【００４４】
個人データ記憶部２１１には、個人データが記憶されている。個人データは、例えば、数値、文字列など、形式を問わない任意の情報の組み合わせにより構成される。
【００４５】
分析クエリ受信部２１２は、利用者端末１が送信した分析クエリを受信する。分析クエリ受信部２１２は、分析クエリを検証要求部２１３に出力する。
【００４６】
検証要求部２１３は、分析クエリ及びその分析クエリに対応する検証要求を、分析クエリ検証装置２２の分析クエリ受信部２２１に出力する。また、検証要求部２１３は、分析クエリを分析クエリ実行保護加工部２１４に出力する。
【００４７】
分析クエリ受信部２２１は、分析クエリ及びその分析クエリに対応する検証要求を、検証実行部２２２に出力する。
【００４８】
検証実行部２２２は、分析クエリに対応する検証要求を受けて、分析クエリが所定のプライバシ保護指標を満たすか第一の検証を行う（ステップＳ２）。第一の検証の結果は、検証結果送信部２２３に出力される。
【００４９】
なお、利用者端末１が証明情報を出力した場合には、分析クエリと共に証明情報が、分析クエリ受信部２１２、検証要求部２１３及び分析クエリ受信部２２１を介して、検証要求部２１３に入力される。この場合、検証実行部２２２は、証明情報を用いて、分析クエリが所定のプライバシ保護指標を満たすか第一の検証を行ってもよい。証明情報を用いることにより、第一の検証をより容易に行うことができる。
【００５０】
例えば、検証実行部２２２は、分析クエリに対応する分析計算qの性質について、利用者端末１によって主張される証明が正しいことをACL2の実行によって検証する。
【００５１】
検証結果送信部２２３は、第一の検証の結果を分析クエリ実行保護加工部２１４に出力する。
【００５２】
分析クエリ実行保護加工部２１４は、第一の検証の結果に基づいて第一の検証に成功したかを判断し、第一の検証に成功しなかった場合には、分析クエリを棄却する。
【００５３】
一方、第一の検証に成功した場合には、分析クエリ実行保護加工部２１４は、個人データ記憶部から読み込んだ個人データに対して分析クエリに対応する分析を行うことにより分析結果を取得し、取得した分析結果に対して所定のプライバシ保護加工を行う（ステップＳ３）。
【００５４】
分析クエリ実行保護加工部２１４は、例えば、証明された分析計算qの性質から大域感度の上界を導出し、εq-差分プライバシを満たすようにノイズνを生成して、分析結果q(D)に加算することによりプライバシ保護加工を行う。この場合、プライバシ保護加工された分析結果は、q(D)+νとなる。ノイズνは上述のようにν=Lap(Δd/εq)として生成してもよいし、その他の方法でεq-差分プライバシを満たすよう生成してもよい。
【００５５】
なお、利用者端末１が分析クエリによって消費するプライバシ量を更に送信した場合には、分析クエリと共にプライバシ量が、分析クエリ受信部２１２及び検証要求部２１３を介して、分析クエリ実行保護加工部２１４に入力される。
【００５６】
この場合、分析クエリ実行保護加工部２１４は、利用者端末１の予め定められたプライバシ予算の残余が、プライバシ量を上回るか第二の検証を更に行い、第一の検証及び第二の検証に成功した場合には、個人データ記憶部２１１から読み込んだ個人データに対して分析クエリに対応する分析を行うことにより分析結果を取得し、取得した分析結果に対して所定のプライバシ保護加工を行ってもよい。
【００５７】
すなわち、例えば、分析クエリ実行保護加工部２１４は、第一の検証に成功した場合には、消費するプライバシ量を表すパラメータεqと、プライバシ予算を表すパラメータεとを比較し、εq≦εが成り立つときのみ分析クエリを実行してもよい。
【００５８】
なお、プライバシ予算を表すパラメータεは、プライバシ予算を表すパラメータεから消費するプライバシ量εqを差し引いた残余ε-εqによって更新、保存される。
【００５９】
分析クエリ実行保護加工部２１４によって生成された分析結果は、分析結果送信部２１５に出力される。
【００６０】
分析結果送信部２１５は、分析結果を利用者端末１に送信する（ステップＳ４）。
【００６１】
以上により、分析クエリを従来よりも自由に作成できるプライバシ保護クエリ応答データベース装置を実現できる。
【００６２】
[変形例]
以上、本発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、本発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、本発明に含まれることはいうまでもない。
【００６３】
実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【００６４】
例えば、分析クエリ応答システムの構成部間のデータのやり取りは直接行われてもよいし、図示していない記憶部を介して行われてもよい。
【００６５】
[プログラム、記録媒体]
上記説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００６６】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００６７】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。更に、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００６８】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、更に、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００６９】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【００７０】
１ 利用者端末
２ データベース装置
２１ 分析クエリ実行装置
２１１ 個人データ記憶部
２１２ 分析クエリ受信部
２１３ 検証要求部
２１４ 分析クエリ実行保護加工部
２１５ 分析結果送信部
２２ 分析クエリ検証装置
２２１ 分析クエリ受信部
２２２ 検証実行部
２２３ 検証結果送信部
【図１】
2020130082.tif 000003
【図２】
2020130082.tif 000004
【図３】
2020130082.tif 000005
【国際調査報告】
2020130082.tif 000006
2020130082.tif 000007
2020130082.tif 000008
2020130082.tif 000009
2020130082.tif 000010