日本では改正個人情報保護法が2015年に成立し2017年5月に施行された。データ主体の同意なしに流通できる匿名加工情報が導入されたが,どのような匿名化処理を施すべきか検討が続いている。EUでは全体の統一的なパーソナルデータ保護規則「一般データ保護規則」が成立し,2018年からの施行に向け,これに適合するプライバシー保護の方策が模索されている。本稿では,プライバシー保護技術を保護対象となる個人が,(1)質問者である場合に (a)質問者が誰であるか,および (b)質問内容自体,を検索エンジン側から秘匿する方法,(2)データベースに個人データが格納されているデータ主体の個人に関して識別を防ぐ場合に分けて,代表的なプライバシー保護技術を概観する。
ビッグデータの中でも個人データ注1)はビジネス的価値が高いものとして注目されている。個人データとしては,氏名,住所,職業,収入,ゲノムなどの固定的な個人情報と時間とともに集積していく履歴データがある。履歴データとしては,医療履歴,購買履歴,移動履歴,行動履歴(Web閲覧履歴,ITサービス利用履歴)注2)などがあり,その利活用はビジネスとして大きな価値を生む。履歴データは個人データなので,プライバシー保護の対象になるが,誰のどのような個人データを保護するかを分類したのが以下の2章である。
検索エンジンやITサービスの利用の場合,検索における質問者やサービス利用者に関する情報の秘匿が目標になる。
質問者の個人識別情報,ネットワーク上のアドレス,質問ないし利用したときの位置情報が秘匿対象である。
質問そのもの,あるいはITサービス利用のために投入する情報も,検索エンジンやITサービス事業者から秘匿するべき場合がある。
データベースを組織間移転,転売,公開,ないしは検索サービスに供する場合,データベースに格納された個人データのプライバシー保護が問題になる。重要な課題は,データベースに含まれている個人データに関して,対応する個人すなわちデータ主体を「特定」注3)されることを防ぐことである。データ主体が特定されることの問題点は,特定された当該データと同じデータ主体に関する他の個人データがひも付けされてしまい,データ主体本人の気づかないまま詳細な個人データ,個人情報が特定の事業者などに集積されてしまうことである。
データベース中の個人データのプライバシー保護には,データベース自体を改変する方法とデータベースへの検索結果を改変する方法がある。前者については5章,後者については6章で述べる。これから述べる保護技術の概略は図1にある。
2章1節(1)の情報の秘匿で古くから知られているのは質問者,サービス利用者(以下,まとめて「質問者」と記す)を複数人からなるグループに紛れさせてしまう方法である。
参考文献1の手法では,あらかじめ参加しているメンバーからなるグループの中で,質問者が発した質問メッセージをグループのメンバー間でランダムに送付することを繰り返す。ただし,メッセージを受け取ったメンバーは質問を他のメンバーではなく検索システムに送付する。検索システムへの送付はあらかじめ決められた確率で行う。
検索結果は,ランダムな経路を逆にたどって質問者まで戻される。ただし,この逆送付ができるのは,グループのメンバーに限られるので,検索システムからは質問者を特定できない。
質問者が自身の位置情報を入力してサービスを受ける場合について考えてみよう。たとえば,自分の現在位置に近いレストランを検索するサービスなどである。自身の位置情報が質問内容になるので,サービス供給者まで届いてしまうが,自分が誰であるかが推定されないので,位置情報のプライバシーは守られていると考えられる。
3.2 Tor:通信時の匿名化Tor(The Onion Routing)は質問者を最終受信者からオニオン・ルーティングと呼ばれる公開鍵暗号を利用したプロトコルで隠蔽(いんぺい)する方法であり,質問者の匿名化ができる2)。以下に図2を用いてオニオン・ルーティングを簡単に説明する。
左端の質問者は受信者(検索エンジンやITサービス業者)にデータを送りたい。簡潔にするため,この例では質問者をTorのネットワークの入り口としている。
(1)Torの出口ルーターZの公開鍵で,受信者と送信したいデータ:Dを暗号化,
(2)Y→Zという経路をYの公開鍵で暗号化,
(3)X→Yという経路をXの公開鍵で暗号化して中継ルーターXに送る。
(1)Xの秘密鍵でX→Yという次に送る中継ルーターへの経路だけを復号する。
(2)その内側内容データ:Dは暗号化されたままYへ送られる。
(1)Yの秘密鍵で復号され,
(2)Y→Zという経路をYは知っているので,暗号化されたデータ:DはZに送られる。
(1)Zの秘密鍵で復号され,受信者とデータ:Dが得られる。
(2)出口ルーターZはデータ:Dを受信者に送る。
多重になされた暗号化が中継ルーターと出口ルーターでタマネギの皮をむくように復号化(データ復元)されていくので,オニオン・ルーティングと呼ばれる。なお,中継ルーターはもっと多段になっていてもよい。
中継ルーターが復号して解読できるのは次の送り先だけである。したがって中継ルーターはメッセージを直接に送受した前後のルーターしかわからない。したがって,中継ルーターが自分への送り手ルーターを明かさなければ,元の情報を発信した質問者について受信者からはわからない。
このようにTorは質問者を秘匿する強力な方法だが,問題点もある。まず,中継ルーターのすべてを信用できないことがある。したがって,中継ルーターのすべてが結託すると質問者が割り出されてしまう。また,トラフィックパターン(具体的には,時刻ごとにどのような相手ルーターとどのような頻度で通信したかを表すパターン)の類似性を使った逆経路追跡注4),3)も可能性がある。
質問自体を検索エンジンに知られたくないことはしばしばある。たとえば,企業の研究開発者が特許検索において用いる質問の単語は,その企業の製品開発方針という重要な企業秘密を内包している。よって,質問の単語を知られることは企業秘密の漏えいにつながりかねない。
質問を秘匿する方法の一つに質問改変がある。まず,質問Qを単語の集合{q1…qk}とする。この状況で質問改変には以下のような方法がある。
Qを1単語からなるk個の質問q1…qkに分解して,1単語ずつの質問を繰り返す。得られた結果を質問者の計算機上で処理して,Qに対する結果を作る。たとえば,単語qiに対する結果をR(qi)とすると,それらの共通部分をQに対する結果とする。
ただしこの方法は,検索エンジン側が質問の発信者が同一であることを知っている場合は効果がない。よって,質問者を秘匿する方法と併用せざるをえないであろう。
単語を類似の単語で置き換える方法である。ただし,単語間の類似度を何らかの外部情報で補う必要がある。一つの方法としては既存の類義語辞書あるいはシソーラスを使う方法がある。
紛らわしい単語をノイズとして質問に加え,真の質問単語を知られにくくする方法である。紛らわしい単語は,既存のシソーラスなどを使う。この方法のベースライン的存在であるTrackMeNot4)では,Yahoo!の公開しているcategories, sub-categoriesを用いている。
質問改変方法は必ずしも強力な質問秘匿方法とはいえない。たとえば,(3)の方法だと,k単語からなる質問にノイズ付加をして総数Nk単語としても,1/Nの確率で真の質問単語を推定される。さらに,(2)(3)のいずれも検索エンジンすなわち攻撃者は,質問者の過去の質問履歴を知っていてそれから学習すれば,高い精度で真の質問を推定できる。
以上まとめると,質問改変は弱い秘匿方法である。ただし,質問者のPCのブラウザにおけるプラグインとして使える簡便さがある。
計算量は大きいが,質問改変より格段に秘匿性能がよい方法として「準同型性公開鍵暗号による秘密計算」がある。この暗号は,公開鍵で暗号化したままで平文のデータの加算ができる。すなわち,E[x]×E[y]=E[x+y],ただしEは公開鍵による暗号化を表す。加算ができるので,時間をかければ乗算もできる。加算と乗算ができれば内積が計算できる。質問xもデータベースのレコードyもベクトルで表されると,2つのベクトルx,yの内積はxとyの相関の高さ,すなわち類似性を表す。このことを使う検索を図3に示す。ここで{ }は集合を表し,たとえば{y}はデータベースの全レコードの集合である。
質問者は公開鍵Koと秘密鍵Ksをもっている。
この方法は質問の秘匿性は完全に近いが,計算量が膨大であることが難点である。つまり,Step 2において,データベースの全レコードを質問者の公開鍵が到着してから暗号化する計算は特に重く,検索のパフォーマンスを極端に劣化させる。あらかじめ暗号化しておこうにも,質問者ごとに別々の公開鍵で暗号化する必要があるため,データベース量が質問者数に比例して巨大化し,現実的ではない。
むしろ,データベースのレコードをコンパクトな表現にすることが有望である。たとえば,質問として特定の化合物を与え,化合物データベースから類似の構造をもつ化合物検索に応用する場合,特徴的な構造の有無を0,1で表すフィンガープリントという図4のような表現で,質問およびデータベース中の各化合物を表すことが考えられる。
産業技術総合研究所(産総研)で開発した類似化合物検索システム5)では上記のフィンガープリントの利用に加えて,並列化するなどの対策を施し,実用レベルを目指している。
日本では改正個人情報保護法が2015年に成立し,データ主体の同意なしに流通できる匿名加工情報が導入された。匿名加工情報とするためにどのような匿名化処理を施すべきかについて以下の各節で述べる。
5.1 仮名化データベースに個人1名のデータが1レコードとして格納されているとする。このレコードは表1のようになる。
このレコードのデータ主体である個人が識別されないためには,まず氏名ないし個人ごとに異なる個人ID(マイナンバーなど)を削除する。とはいえ,レコードの残りの部分をインデックスするために何らかの名前が必要である。これを氏名などからハッシュ関数などを使って発生した値,すなわち仮名で置き換える。これを仮名化という。
個人識別情報 | 個人データ | 機微情報 |
---|---|---|
氏名, 個人ID, 住所, 年齢, 性別など | 購買履歴, 移動履歴, Web閲覧履歴など | 病歴, 前科前歴など |
仮名化はデータベースにおける個人データの匿名化に必要な処理だが,それだけで匿名化ができるわけではない。表1の個人データにおいて購買履歴,移動履歴,Web閲覧履歴などが長期間にわたって収集され続けると,履歴情報が他のデータベースなどの情報源と突き合わされて個人が識別される可能性が高くなる。そこで,履歴データを分割して分割ごとに異なる仮名を付ける。これによって,分割された履歴データが連結できなくなるため,識別の困難さが増す。極端なケースとして履歴の1データごとに仮名を変える注5)なら,個人識別は非常に困難になる。
一般に仮名の変更が頻繁になるほどデータの有用性は低下する。たとえば,患者の健康状態の推移などでは履歴を分割するとほとんど有用性が消滅する情報もある。一方,購買履歴は,かなり細かく分割しても日時ごとの特定商品の販売個数などビジネスに有用な統計情報は取り出せる。つまり,履歴分割による有用性の低下は対象データの種類に依存する。
5.3 k-匿名化,l-多様化Sweeney6)は複数のデータベースの名寄せの具体例を挙げて危険性を指摘している。
米国では図5のように氏名,住所,ZIP(郵便番号)コード,生年月日,性別などを含む有権者名簿が公開されている。一方,病院の医療記録は,患者の氏名は削除したもののZIPコード,生年月日,性別,人種,診断などが記載されている。Sweeney6)によれば1990年当時,公開されている投票者名簿においてマサチューセッツ州知事のZIPコード,生年月日,性別を医療記録と照合した結果,6人が知事と同じ生年月日,うち3人が知事と同じく男性,うち1名が同じZIPであったため一意絞り込みができ,本人の病歴が漏えいしてしまった。
単語を類似の単語で置き換える方法である。ただし,単語間の類似度を何らかの外部情報で補う必要がある。一つの方法としては既存の類義語辞書あるいはシソーラスを使う方法がある。
このような状況を防ぐために導入されたのが「k-匿名化」6)である。一般的にいえば,データベースにおいて誕生日,性別,ZIPが同一の人がk人以上いるように情報を粗くする処理をk-匿名化と呼ぶ。
氏名(以下の表2,表3では簡単な表記のために,名前のみ記載する)は仮名化したうえで,他の個人識別情報の精度を粗くする。表2に実例を示す。
上の表から下の表への変換は次のようにして行う。まず,氏名を仮名で置き換える。次に誕生日を10年ごとの年代に置き換える。性別は削除する。ZIPコードは5桁から上2桁にする。こうすると,誕生年代,性別,ZIP2桁だけみると,A01と03Bは区別できず,CC8とXY9も区別できない。また,412はどのように情報を粗くしても他人と等しくできないので,レコードそのものを削除する。こうすると,誕生年代,性別,ZIP2桁は同一の人が2名以上いるので,1名に絞り込めない。この処理を「2-匿名化」と呼ぶ。一般的にいえば,データベースにおいて誕生日,性別,ZIPが同一の人がk人以上いるように情報を粗くする処理をk-匿名化と呼ぶ。なお,情報を粗くする処理を最小限に抑える処理は,レコード数に対してNP完全と呼ばれる計算量が非常に大きく大規模データでは実用性が低い処理であることが知られており,かなり重い処理である。
氏名 | 太郎 | 次郎 | 花子 | 一郎 | 京子 | 恵子 |
性別 | 男 | 男 | 女 | 男 | 女 | 女 |
金額(万円) | 10 | 30 | 25 | 40 | 30 | 20 |
ところで,表2においては2-匿名化はできているが,A01,03Bの2名の病名は2名とも同一の大腸炎なので,2-匿名化によっても病名という機微な情報は漏えいしてしまう可能性が高い。これを防ぐためにk-匿名化のk人のグループ内に知られては困る情報,つまり機微情報の種類がl種類以上存在するように情報を粗くする処理を調節する方法を「l-多様化」7)と呼ぶ。表2の場合,CC8,XY9の2名は2-匿名化されているうえに,病名も2種類あるので,この部分だけみれば2-多様化されている。データベース全体のl-多様化をk-匿名化に加味する匿名化処理は,計算量が大きいうえにデータ有用性をさらに低下させる可能性がある。
データベースに投入された質問への回答結果を改変する主要な方法は「差分プライバシー」である8)。改変は回答への雑音加算によって行う。差分プライバシーは数学的に込み入っており難解だといわれることが多い。以下では,あえて厳密さを犠牲にして直感的な説明を試みる。
表3に示す貴金属店で金の延べ棒を購入した人の氏名,性別,購入額を記載したデータベース-1があったとする。
このデータベースに購入者の人数性別を質問すると,男=3,女=3という回答が得られる。しばらくしてこの貴金属店に新規顧客が入店し,買い物をしたとする。その後,データベースが表4のように変化した(データベース-2)とする。
ここで同じ質問をすると,男=4,女=3という回答が得られ,新規来店者(五郎)は金の延べ棒を購入したことがわかる。そこで,差分プライバシーではデータベースの差分に当たる新規来店者の存在を秘匿するために,質問への回答においてデータベース-1では男に+1,女に-1,データベース-2では男に-1,女に0という雑音を付加する。すると,回答はデータベース-1では男=4,女=2,データベース-2では男=3,女=3となり,回答からは新規顧客の存在の有無がわからなくなる。このように差分プライバシーは顧客のデータを秘匿するのではなく,顧客の存在自体を秘匿するのでその秘匿能力は高い。
このデータベース-1,データベース-2のように1レコードだけ異なるデータベースを隣接データベースと呼ぶ。元のデータベースとその隣接データベースの間の差分の有無を秘匿する手法であるため,この回答への雑音加算法を「差分プライバシー」と呼ぶ。
ここで問題になるのは差分の有無を秘匿するために加算すべき雑音の大きさである。質問として,購入金額の最大値を考えてみよう。この場合,データベース-1では40万円だが,データベース-2では90万円である。よって,絶対値で50万円近い雑音を加算しないと,回答から差分すなわち五郎が新規購入者として追加されたことを知られてしまう。雑音が大きくなると,当然,回答の有用性が下がるため,差分の大きな隣接データベースの場合は弱点となる。
加算する雑音の大きさとデータベースの性質との関係の数学的なモデルは難解なので,詳細は参考文献9を参照していただきたい。
氏名 | 太郎 | 次郎 | 花子 | 一郎 | 京子 | 恵子 | 五郎 |
性別 | 男 | 男 | 女 | 男 | 女 | 女 | 男 |
金額(万円) | 10 | 30 | 25 | 40 | 30 | 20 | 90 |
本稿では,プライバシー保護技術を保護対象となる個人が,(1)質問者である場合,(2)データベースに個人データが格納されているデータ主体である場合に分けて,代表的な保護技術を概観した。
プライバシー保護はEUの一般データ保護規則導入にみられるように世界的に重視されてきている。国内での個人情報保護はもちろん,EUなど海外でプライバシーに関わるデータを利用する企業にとっても,プライバシー保護技術による法制度の順守,サービス利用者に対する信頼性確保は必須の要件になっている。このような状況で重要なプライバシー保護技術に関して本稿によって興味をもっていただければ幸いである。
1975年 東京大学 工学部卒業。1980年 東京大学 大学院工学系研究科博士課程修了(工学博士)。1980年 横浜国立大学 工学部勤務。1999年から東京大学 情報基盤センター教授。2017年から理化学研究所 革新知能統合研究センター 社会における人工知能研究グループ長。人工知能,プライバシー保護等の研究に従事。