JP2015194959A - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP2015194959A
JP2015194959A JP2014073262A JP2014073262A JP2015194959A JP 2015194959 A JP2015194959 A JP 2015194959A JP 2014073262 A JP2014073262 A JP 2014073262A JP 2014073262 A JP2014073262 A JP 2014073262A JP 2015194959 A JP2015194959 A JP 2015194959A
Authority
JP
Japan
Prior art keywords
protocol
calculation
secure
value
confidentiality
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014073262A
Other languages
English (en)
Inventor
洋平 川元
Yohei Kawamoto
洋平 川元
白井 太三
Taizo Shirai
太三 白井
雄 田中
Takeshi Tanaka
雄 田中
紘一 作本
Koichi Sakumoto
紘一 作本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2014073262A priority Critical patent/JP2015194959A/ja
Priority to US14/663,789 priority patent/US9607173B2/en
Publication of JP2015194959A publication Critical patent/JP2015194959A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6272Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/88Medical equipments

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】セキュア計算プロトコルの実行時間をより短縮することを可能にする。
【解決手段】複数の入力値に基づいて複数の演算処理装置によって出力値が算出されるセキュア計算プロトコルに基づいて、前記入力値の秘匿性を保つために実行される秘匿性確保プロトコルを含まない第1の計算プロトコルを生成する第1計算プロトコル生成部と、前記第1の計算プロトコルにおける前記秘匿性が確保される位置に前記秘匿性確保プロトコルを配置することにより第2の計算プロトコルを生成する第2計算プロトコル生成部と、を備える、情報処理装置を提供する。
【選択図】図6

Description

本開示は、情報処理装置、情報処理方法及びプログラムに関する。
近年、ユーザのパーソナルデータを利活用することにより、ユーザに対してより利便性の高いサービスを提供する技術が提案されている。しかしながら、このようなサービスでは、ユーザのパーソナルデータを集積して解析を行う際に、秘匿されるべき情報であるユーザのプライバシー情報が漏えいすることが懸念される。そこで、ユーザのプライバシー情報の漏えいの防止と、パーソナルデータの利活用とを両立する手法として、セキュア計算プロトコル(セキュア計算手順)又は秘密計算プロトコル等と呼ばれる手法が注目されている。
セキュア計算プロトコルでは、複数の入力値に基づいて、複数のエンティティ(計算パーティ)が協働して、お互いに入力値を開示することなく計算を行い、所定の計算式に対応する出力値を得ることができる。従って、ユーザのパーソナルデータを入力値として扱い、セキュア計算プロトコルを実行することにより、各計算パーティには入力値であるユーザのパーソナルデータは開示されないまま、出力値として、当該パーソナルデータから導出され得る各種の情報を得ることができる。
セキュア計算プロトコルを実行するためのツールとして、例えば、非特許文献1には、計算パーティ数を3に限定し、32ビット演算に限定することにより、より高速にセキュア計算プロトコルを実行することが可能な技術が開示されている。
High−performance secure multi−party computation for data mining applications, Dan Bogdanov, Margus Niitsoo, Tomas Toft, Jan Willemson, International Journal of Information Security, November 2012, volume 11, Issue 6, pp 403−418.
ここで、非特許文献1に記載の技術では、セキュア計算プロトコルにおいて計算される計算式が、基本的な演算処理に対応するプロトコル(以下、基本演算プロトコルとも呼称する。)である、加算プロトコルと乗算プロトコルとを組み合わせることによって表現される。従って、セキュア計算プロトコルにおける演算時間は、当該計算式を構成し得る基本演算プロトコル(加算プロトコル及び乗算プロトコル)の数に、各基本演算プロトコルの演算時間を乗じたものとなるため、計算式の内容によっては、セキュア計算プロトコルの実行時間が膨大なものになる可能性がある。
そこで、本開示では、セキュア計算プロトコルの実行時間をより短縮することが可能な、新規かつ改良された情報処理装置、情報処理方法及びプログラムを提案する。
本開示によれば、複数の入力値に基づいて複数の演算処理装置によって出力値が算出されるセキュア計算プロトコルに基づいて、前記入力値の秘匿性を保つために実行される秘匿性確保プロトコルを含まない第1の計算プロトコルを生成する第1計算プロトコル生成部と、前記第1の計算プロトコルにおける前記秘匿性が確保される位置に前記秘匿性確保プロトコルを配置することにより第2の計算プロトコルを生成する第2計算プロトコル生成部と、を備える、情報処理装置が提供される。
また、本開示によれば、プロセッサが、複数の入力値に基づいて複数の演算処理装置によって出力値が算出されるセキュア計算プロトコルに基づいて、前記入力値の秘匿性を保つために実行される秘匿性確保プロトコルを含まない第1の計算プロトコルを生成することと、プロセッサが、前記第1の計算プロトコルにおける前記秘匿性が確保される位置に前記秘匿性確保プロトコルを配置することにより第2の計算プロトコルを生成することと、を含む、情報処理方法が提供される。
また、本開示によれば、コンピュータのプロセッサに、複数の入力値に基づいて複数の演算処理装置によって出力値が算出されるセキュア計算プロトコルに基づいて、前記入力値の秘匿性を保つために実行される秘匿性確保プロトコルを含まない第1の計算プロトコルを生成する機能と、前記第1の計算プロトコルにおける前記秘匿性が確保される位置に前記秘匿性確保プロトコルを配置することにより第2の計算プロトコルを生成する機能と、を実現させる、プログラムが提供される。
本開示によれば、セキュア計算プロトコルにおいて、入力値の秘匿性を保つための秘匿性確保プロトコルを含まない第1の計算プロトコルが生成される、また、当該第1の計算プロトコルに対して、入力値の秘匿性が確保される位置に秘匿性確保プロトコルが再度配置されることにより第2の計算プロトコルが生成される。従って、第2の計算プロトコルは、冗長な秘匿性確保プロトコルが除去され、適切な位置に秘匿性確保プロトコルが配置されたセキュア計算プロトコルであり得る。よって、入力値の秘匿性は保たれたまま、セキュア計算プロトコルの実行時間を短縮することが可能となる。
以上説明したように本開示によれば、セキュア計算プロトコルの実行時間をより短縮することが可能となる。なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
セキュア計算プロトコルの概要について説明するための説明図である。 本実施形態に係るセキュア計算プロトコルの処理手順を説明するための説明図である。 本実施形態に係るセキュア計算プロトコルの処理手順を示すフロー図である。 本実施形態に係るセキュア計算プロトコルが実行されるセキュア計算システムの一構成例を示す図である。 本実施形態に係るセキュア計算プロトコルが実行されるセキュア計算システムの他の構成例を示す図である。 本実施形態に係る情報処理装置の機能構成を示す機能ブロック図である。 本実施形態に係る情報処理方法の処理手順の一例を示すフロー図である。 図7に示すステップS201における処理において作成される計算グラフの一例を示す図である。 本実施形態に係るセキュア計算プロトコルを用いた、医療情報に基づくデータマイニングについて説明するための説明図である。 本実施形態に係るセキュア計算プロトコルを用いた、医療情報に対する統計解析処理について説明するための説明図である。 本実施形態に係るセキュア計算プロトコルを用いた、リコメンドサービスにおける分析処理について説明するための説明図である。 本実施形態に係るセキュア計算プロトコルを用いた、リコメンドサービスにおける分析処理について説明するための説明図である。 本実施形態に係るセキュア計算プロトコルを用いた、オークションにおける落札者及び/又は落札価格の決定処理について説明するための説明図である。 本実施形態に係る情報処理装置のハードウェア構成の一例を示す機能ブロック図である。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.セキュア計算プロトコルについて
1−1.セキュア計算プロトコルの概要
1−2.セキュア計算プロトコルの処理手順
1−3.システム構成
2.一般的なセキュア計算プロトコルについての検討
2−1.一般的なセキュア計算プロトコルの詳細
2−2.一般的なセキュア計算プロトコルについての検討
3.情報処理装置の構成
4.情報処理方法の処理手順
4−1.情報処理方法の概要
4−2.情報処理方法の詳細
5.適用例
5−1.医療情報の二次利用
5−1−1.医療情報に基づくデータマイニング
5−1−2.医療情報に対する統計解析処理
5−2.推薦(リコメンド)サービス
5−3.オークション
6.ハードウェア構成
7.プロトコル
8.補足
(1.セキュア計算プロトコルについて)
(1−1.セキュア計算プロトコルの概要)
まず、図1を参照して、本開示の一実施形態に係るセキュア計算プロトコルの概要について説明する。図1は、セキュア計算プロトコルの概要について説明するための説明図である。
セキュア計算プロトコルでは、複数のエンティティ(計算パーティ)が協働して、お互いに入力値を開示することなく計算を行い、最終的に所定の計算式に対応する出力値が得られる。セキュア計算プロトコルは、マルチパーティ計算(MPC:multiparty computation)とも呼ばれる。セキュア計算プロトコルを用いることにより、例えば、二者間で資産額を比較する際に、お互いの資産額を開示することなく、より多く資産を有する方を決定する等の、互いの情報を秘匿しつつ、当該情報を利用した計算を行うことが可能となる。
例えば、図1に示す例では、計算を実行する4つの計算パーティ30a〜30dが、互いに異なる4つの入力値x〜xをそれぞれ有している(図中(a))。入力値x〜xは互いに秘匿されている。以下では、セキュア計算プロトコルに対する入力値のことを、他の入力値と区別するために、便宜的に秘密入力値とも呼称する。なお、図1では、模式的に計算パーティ30a〜30dをヒトとして表しているが、実際には、計算パーティ30a〜30dは、各種の演算が可能な演算処理装置によって実現され得る。
この状態で、計算パーティ30a〜30dが協働してセキュア計算プロトコルを実行する(図中(b))。セキュア計算プロトコルでは、各計算パーティ30a〜30d間において計算に用いられる情報の通信が実行され得るが、各計算パーティ30a〜30dは自身が有している入力値x〜x以外は知り得ないように、計算が行われる。セキュア計算プロトコルが実行された結果、各入力値x〜xが各計算パーティ30a〜30dに対して互いに秘匿されたままの状態で、最終的な出力値である関数f(x,x,x,x)が得られる(図中(c))。
(1−2.セキュア計算プロトコルの処理手順)
図2及び図3を参照して、本実施形態に係るセキュア計算プロトコルにおける各処理について、より詳しく説明する。図2は、本実施形態に係るセキュア計算プロトコルの処理手順を説明するための説明図である。図3は、本実施形態に係るセキュア計算プロトコルの処理手順を示すフロー図である。
本実施形態に係るセキュア計算プロトコルには、秘密分散法と呼ばれる計算手法が好適に適用され得る。図2及び図3に示す例では、2つの計算パーティ30a、30bによって、2つの入力値(x,y)から出力値として関数f(x,y)を得る場合における、秘密分散法が用いられたセキュア計算プロトコルにおける処理手順が図示されている。なお、本実施形態に係るセキュア計算プロトコルにおける計算パーティ数や入力値の数はこれらの例に限定されず、より多くの計算パーティによって、異なる数の入力値に基づく計算が行われてもよい。
まず、セキュア計算プロトコルが実行される前段の処理として、各計算パーティ30a、30bに、入力値x、yがそれぞれ入力される。入力値x、yは、セキュア計算プロトコルの処理全体を通して、計算パーティ30a、30bにおいて互いに秘匿に保たれる。
各計算パーティ30a、30bに、入力値x、yが入力されると、セキュア計算プロトコルでは、まず、入力値x、yが各計算パーティ30a、30bに分配される(ステップS101)。計算パーティ30a、30bに分配された値のことを分散値と呼称する。例えば、図2に示すように、入力値xから分散値x、xが生成され、分散値x、xが各計算パーティ30a、30bに分配される。同様に、入力値yから分散値y、yが生成され、分散値y、yが各計算パーティ30a、30bに分配される。なお、以下では、入力値を分配して分散値を生成するプロトコルのことを、入力値分配プロトコルとも呼称する。入力値分配プロトコル及び後述する出力値復号プロトコルについては、下記(2.一般的なセキュア計算プロトコルについての検討)で、上記非特許文献1に記載の手法を例に挙げて、改めて詳しく説明する。なお、本実施形態では、入力値分配プロトコル実行後に後述する再分配プロトコルが実行されてもよい。入力値分配プロトコル実行後に再分配プロトコルを行うことで、分散値の一様分布性を更に保証することができる。
次に、分散値x、x、y、yに対してセキュア計算が行われる(ステップS103)。ここで、分散値に対するセキュア計算とは、分散値を入力値として、所定の計算式に対応する計算プロトコル(以下、計算式プロトコルとも呼称する。)が実行されることを意味する。当該所定の計算式とは、セキュア計算プロトコルにおいて最終的に得たい出力値を示す、入力値x、yを入力値とする関数f(x,y)のことである。以下、単に「計算式」と記載した場合には、特に記載のない限り、関数f(x,y)に対応する、セキュア計算プロトコルにおいて計算される計算式のことを示していてもよい。計算式プロトコルが実行された結果、計算パーティ30aにおいてf(x,y)が算出され、計算パーティ30bにおいてf(x,y)が算出される。ここで、f(x,y)及びf(x,y)は、f(x,y)の分散値に対応している。
最後に、f(x,y)及びf(x,y)から出力値f(x,y)が計算される(ステップS105)。ステップS105では、分散値であるf(x,y)及びf(x,y)からf(x,y)を復号する処理が行われることにより、最終的な出力値であるf(x,y)が算出されることとなる。ステップS105に示す処理は、計算パーティ30a、30bのいずれか又は両者において行われてもよいし、計算パーティ30a、30bからf(x,y)及びf(x,y)を取得した他のパーティにおいて行われてもよい。なお、以下では、分散値を複合して出力値を得るプロトコルのことを、出力値復号プロトコルとも呼称する。
以上、図2及び図3を参照して、本実施形態に係るセキュア計算プロトコルの処理手順の一例について説明した。以上説明したように、本実施形態に係るセキュア計算プロトコルは、入力値を分配する入力値分配プロトコル、計算式に対応する計算式プロトコル及び出力値を復号する出力値分配プロトコルが、組み合わされて構成され得る。入力値分配プロトコルにおいて秘密入力値が複数の計算パーティ30a、30bに分散されることにより、各計算パーティ30a、30bにおいては、当該分散値を入力値として計算式プロトコルが実行される。従って、各計算パーティ30a、30bでは、秘密入力値が互いに開示されることなく計算が実行される。よって、本実施形態においては、秘密入力値の秘匿性が確保された状態で、当該秘密入力値を入力値とした所望の計算を行うことが可能となる。
(1−3.システム構成)
次に、図4及び図5を参照して、本実施形態に係るセキュア計算プロトコルが実行されるセキュア計算システムの構成について説明する。図4は、本実施形態に係るセキュア計算プロトコルが実行されるセキュア計算システムの一構成例を示す図である。また、図5は、本実施形態に係るセキュア計算プロトコルが実行されるセキュア計算システムの他の構成例を示す図である。
本実施形態に係るセキュア計算システムでは、秘密入力値を保有するパーティ(入力者)と、秘密入力値に基づいてセキュア計算プロトコルを実行するパーティ(計算パーティ)が存在する。図4では、入力者と計算パーティとが異なる場合におけるセキュア計算システムの一構成例を示している。図4を参照すると、セキュア計算システム1は、2つの入力者D、Dと、3つの計算パーティP、P、Pによって構成され得る。
入力者D、Dは、それぞれ秘密入力値を互いに秘匿された状態で保有している。入力者D、Dは、秘密入力値を分散化し、計算パーティP、P、Pに分配する。このように、セキュア計算システム1においては、上述した図2及び図3に示すステップS101における処理は、計算パーティP、P、Pではなく、入力者D、Dによって実行され得る。
計算パーティP、P、Pは、分散値を入力値として計算式プロトコルに基づく計算を行い、出力値に関する分散値を保持する状態に至る(図2及び図3に示すステップS103における処理に対応)。そして、最終的に、計算パーティP、P、Pが有する出力値の分散値を集めることにより出力値が復号される(図2及び図3に示すステップS105における処理に対応)。
一方、図5では、入力者が計算パーティを兼ねる場合におけるセキュア計算システムの一構成例を示している。図5を参照すると、セキュア計算システム2は、3つの計算パーティP、P、Pによって構成され得る。ただし、そのうちの2つの計算パーティP、Pは、入力者を兼ねており、秘密入力値を互いに秘匿された状態で保有している。なお、図5に示す例では、3つの計算パーティP、P、Pのうちの2つの計算パーティP、Pが入力者を兼ねる場合について図示しているが、本実施形態はかかる例に限定されず、計算パーティP、P、Pの一部又は全てが入力者の役割を果たすことができる。
入力者である計算パーティP、Pは、秘密入力値を分散化し、他の計算パーティP、P、Pに分配する。つまり、セキュア計算システム2においては、上述した図2及び図3に示すステップS101における処理は、入力者を兼ねる計算パーティP、Pによって実行され得る。
その後の処理は図4に示すセキュア計算システム1と同様である。計算パーティP、P、Pは、分散値を入力値として計算式プロトコルに基づく演算を行い、出力値に関する分散値を得る(図2及び図3に示すステップS103における処理に対応)。そして、最終的に、計算パーティP、P、Pが有する出力値の分散値を集めることにより出力値が復号される(図2及び図3に示すステップS105における処理に対応)。なお、セキュア計算システム1、2の双方において、出力値の復号を行うパーティ(出力値取得者)は限定されず、出力値の復号は、計算パーティP、P、Pのいずれかによって行われてもよいし、あるいは、図4には図示しない他のパーティ(他の情報処理端末)において行われてもよい。
以上、図4及び図5を参照して、本実施形態に係るセキュア計算システムの構成について説明した。このように、本実施形態では、入力者、計算パーティ及び出力値取得者は、同一のパーティであってもよいし、互いに異なるパーティであってもよい。セキュア計算システムの構成は、セキュア計算プロトコルが適用され得る状況に応じて適宜設定されてよい。なお、図4及び図5に示すセキュア計算システムの構成はあくまで一例であり、セキュア計算システムを構成する入力者、計算パーティ及び出力値取得者の数は、任意に設定されてよい。
(2.一般的なセキュア計算プロトコルについて)
ここで、本発明者らが、一般的なセキュア計算プロトコルについて検討した結果について説明する。ここでは、一例として、上述した非特許文献1に記載の方法を例に挙げて、一般的なセキュア計算プロトコルについて説明を行う。
(2−1.一般的なセキュア計算プロトコルの詳細)
非特許文献1に記載の方法においても、図2及び図3に示す処理と略同様な処理が実行され得る。非特許文献1に記載の方法では、まず、入力者が有する秘密入力値が複数の計算パーティに分配される(図2及び図3に示すステップS101に対応)。例えば、非特許文献1に記載の方法によれば、入力者が、入力値uについて、u=u+u+u(mod Z2^n、以下の演算でも同様)となるように分散値u、u、uを生成し,計算パーティに分配する。以下では、秘密入力値uが計算パーティに分配されている状態のことを、<u>=(u,u,u)と表す。当該処理は、上述した入力値分配プロトコルに対応する処理であり、例えば入力値uに対する入力値分配プロトコルのことを、以下では、「<u>←Share(u)」とも表す。なお、入力値分配プロトコルにおいて行われる具体的な処理については下記(7.プロトコル)に示す。また、下記(7.プロトコル)に示す入力値分配プロトコル内に記載されている「ランダム値r←Z」は、整数環Zからランダムに要素を1つ取得し、変数rに代入することを意味している。
次に、計算パーティにおいて、分散値を入力値として、セキュア計算プロトコルにおいて計算される計算式に対応する計算式プロトコルが実行される(図2及び図3に示すステップS103に対応)。ここで、非特許文献1に記載の方法では、計算式プロトコルが、基本的な演算処理(演算の基本単位、以下、基本演算処理とも呼称する。)に対応するプロトコルである基本演算プロトコルを組み合わせることで表現される。基本演算プロトコルでは、分散値を入力値として、整数環上での加算又は乗算が行われる。整数環上の加乗算に対応する基本演算プロトコルを用意することにより、それらを組み合わせて、任意の算術演算及び論理演算を表現することが可能となる。
例えば、3つの秘密入力値u、v、sについて、「(u+v)×s」を計算することを考える。この場合、計算式「(u+v)×s」に対応する計算式プロトコルは、入力値u、vを整数環上で加算する加算プロトコルと、その出力結果である「u+v」に他の入力値sを整数環上で乗算する乗算プロトコルと、を組み合わせることによって表現され得る。
加算プロトコル及び乗算プロトコルでは、分散値である<u>、<v>、<s>を入力値として計算が行われる。まず、加算プロトコルによって、入力値<u>、<v>から出力値として<u+v>が得られる。そして、<u+v>と<s>を入力値として乗算プロトコルが実行されることにより、出力値として<(u+v)×s>が得られる。
なお、例えば入力値u、vに対応する分散値<u>、<v>から、u+v=wであるwの分散値<w>が得られる加算プロトコルのことを、以下では、「<w>←Add(<u>,<v>)」とも表す。また、例えば入力値u、vに対応する分散値<u>,<v>から、u×v=w’であるw’の分散値<w’>が得られる乗算プロトコルのことを、以下では、「<w’>←Mult(<u>,<v>)」とも表す。加算プロトコル及び乗算プロトコルにおいて行われる具体的な処理については下記(7.プロトコル)に示す。なお、下記(7.プロトコル)に示す乗算プロトコル内に記載されている「<u’>←Reshare(<u>)」は、再分配プロトコルと呼ばれるプロトコルを表している。再分配プロトコルでは、例えば入力値uの分散値<u>について、その値を保ちながら別の分散値<w>(w=u)に変換する処理が行われる。つまり、再分配プロトコルでは、文字通り入力値の計算パーティへの再分配が行われる。再分配プロトコルにおいて行われる具体的な処理についても下記(7.プロトコル)に併せて示している。
<(u+v)×s>が得られたら、次に、出力データ取得者によって出力値が復号化される(図2及び図3に示すステップS105に対応)。<(u+v)×s>が復号化されることにより、出力値である「(u+v)×s」が得られる。当該処理は、上述した出力値復号プロトコルに対応する処理であり、例えば入力値wに対する出力値復号プロトコルのことを、以下では、「w←Decode(w)」とも表す。なお、出力値復号プロトコルにおいて行われる具体的な処理については下記(7.プロトコル)に示す。
(2−2.一般的なセキュア計算プロトコルについての検討)
ここで、セキュア計算プロトコルの実行時間には、各計算パーティでのローカルな演算時間に加えて、計算パーティ間における通信における待機時間やデータ伝送時間が含まれる。特に、通信の待機時間がセキュア計算プロトコルのトータルの実行時間に与える影響は少なくないことが知られている。従って、セキュア計算プロトコルの実行時間をより短縮するためには、計算パーティ間での通信量をより削減することが求められる。
一方、下記(7.プロトコル)に示すように、非特許文献1に記載の方法における乗算プロトコルでは、計算パーティ間における通信が行われる。具体的には、下記(7.プロトコル)に示す乗算プロトコルに含まれる一連の処理の中で、再分配プロトコルが行われるステップ1、2、9と、分散値の送受信が行われるステップ3〜5に示す処理において、パーティ間の通信が行われる。従って、一般的なセキュア計算プロトコルにおいては、乗算プロトコルを多数含む計算が行われる場合には、計算パーティ間での通信量が増加し、セキュア計算プロトコルの実行時間が増加する可能性がある。
ここで、乗算プロトコルが2回連続する計算式プロトコル(例えば、計算式「(a×b)×c」に対応する計算式プロトコル)を考える。この場合、当該計算式プロトコルが実行されると、1回目の乗算プロトコルにおけるステップ9の処理(例えば<a×b>に対する再分配プロトコル)が実行された直後に、2回目の乗算プロトコルにおけるステップ1又はステップ2の処理(例えば、<a×b>に対する再分配プロトコルと<c>に対する再分配プロトコル)が実行されることとなる。すなわち、同一の処理(例えば、<a×b>に対する再分配プロトコル)が2回連続で実行され得る。このように、一般的なセキュア計算プロトコルでは、その具体的な処理手順が必ずしも最適化されているとはいえず、セキュア計算プロトコルの実行時間を長大化させている可能性があった。
本発明者らは、以上の一般的なセキュア計算プロトコルに対する検討結果に基づいて、セキュア計算プロトコルの実行時間をより短縮するための技術について鋭意検討した結果、以下に示す本開示の好適な一実施形態に想到した。以下では、本発明者らが想到した、本開示の好適な一実施形態について詳細に説明する。なお、以下に説明する実施形態では、非特許文献1に記載の技術と比較するために、非特許文献1に記載の技術と同様の条件(例えば、計算パーティ数が3であり、下記(7.プロトコル)に示す各プロトコルが用いられ得る)に対応したセキュア計算プロトコルを例に挙げて説明を行う。しかし、本実施形態はかかる例に限定されず、計算パーティ数が異なる場合等、他の条件に対応するセキュア計算プロトコルに対しても同様に適用可能である。
(3.情報処理装置の構成)
上述したように、一般的なセキュア計算プロトコルにおいては、同一の分散値に対して再分配プロトコルが連続して実行される場合が生じ得る。ここで、再分配プロトコルは、入力値の秘匿性を確保し、セキュア計算プロトコルの安全性を保証するために行われるプロトコル(いわば、入力値秘匿性確保プロトコル)である。例えば、下記(7.プロトコル)に示す一般的なセキュア計算プロトコルにおける乗算プロトコルであれば、ステップ1、2の処理は、分散化された入力値をランダムにするために行われ、ステップ9の処理は、出力値の分散値を入力値の分散値とは独立に、計算パーティ間で一様に分布させるために行われる。従って、再分配プロトコルが行われる理由を考慮すれば、同一の分散値に対して連続して実行されている(すなわち、機能が重複する)再分配プロトコルの回数を削減したとしても、入力値の秘匿性は十分に確保され、セキュア計算プロトコルの安全性は維持されると考えられる。
そこで、本実施形態では、セキュア計算プロトコルの構成をより最適化することにより、そのトータルの実行時間を短縮することを図る。具体的には、セキュア計算プロトコルから、上述したような機能が重複するプロトコルを削減することによって、より効率的なセキュア計算プロトコルを導出する(生成する)。以下では、本実施形態において得られるより効率的なセキュア計算プロトコルのことを、一般的なセキュア計算プロトコルと区別するために、便宜的に、改良セキュア計算プロトコルとも呼称する。
より具体的には、本実施形態では、セキュア計算プロトコルにおける計算式を入力として、当該計算式に対応する計算式プロトコルから機能が重複する再分配プロトコルが取り除かれ、再分配プロトコルが適切に再度配置された、計算式プロトコル(以下、一般的な計算式プロトコルと区別するため、便宜的に、改良計算式プロトコルと呼称する。)が生成される。以下では、このような、改良計算式プロトコルを生成する機能を有する情報処理装置の構成について詳しく説明する。
なお、上記の改良セキュア計算プロトコルは、入力値分配プロトコルと、改良計算式プロトコルと、出力値復号プロトコルと、が組み合わされたものに対応している。一方、一般的なセキュア計算プロトコルは、入力値分配プロトコルと、計算式プロトコルと、出力値復号プロトコルと、が組み合わされて構成され得る。このように、本実施形態に係る改良セキュア計算プロトコルは、セキュア計算プロトコルにおける計算式プロトコルが改良計算式プロトコルに置き換えられたものであってよい。従って、改良セキュア計算プロトコルを生成するとは、改良計算式プロトコルを生成することを意味していてよく、本実施形態に係る情報処理装置は、改良セキュア計算プロトコル又は改良計算式プロトコルを生成する機能を有しているとも言える。
図6を参照して、本実施形態に係る情報処理装置の機能構成について説明する。図6は、本実施形態に係る情報処理装置の機能構成を示す機能ブロック図である。
なお、改良セキュア計算プロトコル又は改良計算式プロトコルは、改良セキュア計算プロトコルを実行する計算パーティのいずれかにおいて生成されてもよいし、他の情報処理装置において生成され、各計算パーティに入力されてもよい。図6では、一例として、計算パーティとは異なる他の情報処理装置において改良計算式プロトコルが生成される場合について説明する。また、図6では、説明のため、計算パーティに対応する機能構成(後述する演算処理装置20)も併せて図示している。
図6を参照すると、本実施形態に係る情報処理装置10は、第1計算プロトコル生成部104と、第2計算プロトコル生成部105と、を備える。なお、情報処理装置10が備える各機能は、情報処理装置10に搭載されるCPU(Central Processing Unit)やDSP(Digital Signal Pocessor)等の各種のプロセッサが所定のプログラムに従って動作することによって実現され得る。
第1計算プロトコル生成部104は、セキュア計算プロトコルに基づいて、再分配プロトコルを含まない第1の計算プロトコルを生成する。具体的には、第1計算プロトコル生成部104は、セキュア計算プロトコルにおける計算式に対応する計算式プロトコルから、再分配プロトコルを取り除く機能を有する。すなわち、第1の計算プロトコルとは、計算式プロトコルから再分配プロトコルが取り除かれたプロトコルのことを意味していてよい。
第1計算プロトコル生成部104の機能についてより詳しく説明する。第1計算プロトコル生成部104は、その機能として、計算式分解部101と、演算プロトコル割当部103と、を有する。
計算式分解部101は、セキュア計算プロトコルにおける計算式を所定の演算処理に分解する。例えば、計算式分解部101は、計算式を、上述した基本演算プロトコル(加算プロトコル及び乗算プロトコル)に対応する演算処理に分解することができる。計算式分解部101は、分解された計算式についての情報を、演算プロトコル割当部103に提供する。
演算プロトコル割当部103は、分解された計算式に対して、所定の演算処理を表すプロトコルを割り当てる。ここで、演算プロトコル割当部103が割り当てるプロトコルとしては、所定の演算処理を表すプロトコルであって、再分配プロトコルが含まれないプロトコルが選択される。例えば、上記(2.一般的なセキュア計算プロトコルについて)で説明した非特許文献1に記載の技術では、基本演算プロトコルである加算プロトコル及び乗算プロトコルのうち、乗算プロトコルに再分配処理が含まれている(下記(7.プロトコル)を参照。)。本実施形態では、当該乗算プロトコルの代わりに、再分配プロトコルが含まれない乗算プロトコル(以下、分散値乗算プロトコルとも呼称する。)が用いられる。なお、分散値乗算プロトコルは、例えば入力値u、vに対応する分散値<u>、<v>から、u×v=wであるwの分散値<w>が得られる乗算プロトコルのことである。以下では、分散値乗算プロトコルのことを「<w>←Mult2(<u>,<v>)」とも表す。分散値乗算プロトコルにおいて行われる具体的な処理については下記(7.プロトコル)に示す。
例えば、計算式分解部101によって、計算式が、基本演算プロトコルに対応する基本演算処理である加算及び乗算に分解されているとする。演算プロトコル割当部103は、分解された計算式に対して、加算に対応する部分には加算プロトコルを割り当て、乗算に対応する部分には分散値乗算プロトコルを割り当てる。これにより、演算プロトコル割当部103によって生成されるプロトコル(すなわち第1の計算プロトコル)は、計算式プロトコルから再分配プロトコルが取り除かれたプロトコル(すなわち、再分配プロトコルを含まない計算式プロトコル)となる。演算プロトコル割当部103は、生成した第1の計算プロトコルについての情報を、第2計算プロトコル生成部105に提供する。
第2計算プロトコル生成部105は、生成された第1の計算プロトコルに対して、入力値の秘匿性が確保され得る適切な位置に再分配プロトコルを再度配置することにより、第2の計算プロトコルを生成する。上述したように、再分配プロトコルは、入力値の秘匿性を確保し、セキュア計算プロトコルの安全性を保証するために行われるプロトコルである。従って、入力値の秘匿性を考慮すると、再分配プロトコルが配置されるべき適切な位置は、計算パーティ間での通信を伴う処理が実行された後であり得る。従って、第2計算プロトコル生成部105は、計算パーティ間での通信を伴う処理の少なくともいずれかの後に再分配プロトコルを配置することにより、重複する再分配プロトコルが取り除かれた第2の計算プロトコル(すなわち、改良計算式プロトコル)を生成することができる。なお、具体的には、計算パーティ間で分散値の送受信が行われた場合には、セキュア計算プロトコルの入力値である分散値と、出力値である分散値とが独立ではなくなり、セキュア計算プロトコルの安全性が低下する可能性がある。従って、第2計算プロトコル生成部105は、計算パーティ間での分散値の通信を伴う処理の少なくともいずれかの後に再分配プロトコルを配置してもよい。
ここで、計算パーティ間で分散値の通信が行われた場合であっても、各計算パーティが当該分散値に対する計算結果である分散値をローカルで保持し続けている段階では、セキュリティ上問題はないと考えられる。しかし、その後に、その分散値を更に他の計算パーティに送信するときに、セキュリティ上の問題が生じ得る。従って、本実施形態では、第2計算プロトコル生成部105は、計算パーティ間での通信を伴う第1の処理の後に、計算パーティ間での通信を伴う第2の処理が再度行われる場合に、当該第1の処理と当該第2の処理との間に再分配プロトコルを配置してもよい。
第2計算プロトコル生成部105は、生成した改良計算式プロトコルを演算処理装置20(すなわち、計算パーティP、P、P)に送信し、演算処理装置20では、改良計算式プロトコルに基づく改良セキュア計算プロトコルが実行される。
以上、情報処理装置10の機能構成について説明した。なお、上述した計算式分解部101、演算プロトコル割当部103及び第2計算プロトコル生成部105によって実行される処理は、下記(4.情報処理方法の処理手順)で説明する、図7に示す各処理に対応している。従って、計算式分解部101、演算プロトコル割当部103及び第2計算プロトコル生成部105によって実行される処理については、下記(4.情報処理方法の処理手順)で改めて詳しく説明する。
以上説明したように、本実施形態によれば、計算式プロトコルから機能が重複している再分配プロトコルを取り除くために、乗算プロトコルから再分配プロトコルが分離された分散値乗算プロトコルが用いられる。計算式を分解し、その乗算に対応する部分に分散値乗算プロトコルを当てはめることにより、再分配プロトコルを含まない計算式プロトコルである第1の計算プロトコルが生成される。その後に、入力値の秘匿性を確保するために適切な位置に再分配プロトコルを配置することにより、機能が重複している再分配プロトコルが取り除かれるとともに、入力値の秘匿性も確保された、第2の計算プロトコルが生成され得る。
ここで、以上では、情報処理装置10が、計算式(すなわち計算式プロトコル)を入力として、当該計算式プロトコルから重複する再分配プロトコルが取り除かれた改良計算式プロトコルを生成する場合について説明したが、本実施形態はかかる例に限定されない。本実施形態では、情報処理装置10は、セキュア計算プロトコル全体を入力として、当該セキュア計算プロトコルから重複する再分配プロトコルが取り除かれた改良セキュア計算プロトコルを生成してもよい。上述したように、改良セキュア計算プロトコルは、セキュア計算プロトコルにおいて計算式プロトコルが改良計算式プロトコルに置き換えられたものに対応しているため(すなわち、入力値分配プロトコル及び出力値復号プロトコルは変更されないため)、入力としてセキュア計算プロトコルが与えられた場合であっても、当該セキュア計算プロトコルに含まれる計算式プロトコルに対して以上説明した各処理が実行されることにより、改良セキュア計算プロトコルが生成され得る。上記の説明において、第1の計算プロトコルとは、「計算式プロトコルから再分配プロトコルが取り除かれたもの」のことを意味していてもよいし、「セキュア計算プロトコル内の計算式プロトコルから再分配プロトコルが取り除かれたもの」のことを意味していてもよい。同様に、第2の計算プロトコルとは、「改良計算式プロトコル」のことを意味していてもよいし、「改良セキュア計算プロトコル」のことを意味していてもよい。
また、上記では、計算式分解部101は、計算式を基本演算処理に分解し、演算プロトコル割当部103は、分解された計算式に対して基本演算プロトコルを割り当てる場合について説明したが、本実施形態はかかる例に限定されない。例えば、計算式分解部101は、複数の基本演算処理が組み合わされて構成される所定の演算処理に計算式を分解してもよい。つまり、本実施形態では、計算式分解部101が計算式を分解する際の基準は、最小単位の演算である基本演算処理であってもよいし、基本演算処理が適宜組み合わされて構成される任意の演算処理であってもよい。また、計算式分解部101が、複数の基本演算処理が組み合わされて構成される所定の演算処理に計算式を分解した場合には、演算プロトコル割当部103は、分解された計算式に対して、計算式分解部101が計算式を分解する際に基準として用いた演算処理に対応する、複数の基本演算プロトコルが組み合わされて構成される演算プロトコルを割り当ててもよい。この場合、演算プロトコル割当部103が割り当てる演算プロトコルは、計算式分解部101が計算式を分解する際に基準として用いた所定の演算処理に対応するプロトコルから、再分配プロトコルが取り除かれたものであってよい。
次に、演算処理装置20に機能構成について説明する。図6を参照すると、本実施形態に係る演算処理装置20は、入力値分配部201と、分散値セキュア計算部203と、出力値計算部205と、を備える。なお、演算処理装置20が備える各機能は、演算処理装置20に搭載されるCPUやDSP等の各種のプロセッサが所定のプログラムに従って動作することによって実現され得る。
ここで、演算処理装置20は、図4及び図5に示す計算パーティP、P、Pに対応するものである。実際にはセキュア計算プロトコルを実行するための複数の演算処理装置20が存在し得るが、各演算処理装置20が有する機能は同様であってよいため、簡単のため、図6では代表的に1つの演算処理装置20を図示している。また、図6に示す例では、演算処理装置20として、入力者及び出力値取得者としての機能を併せ持つ計算パーティの機能構成を図示している。
入力値分配部201は、入力された秘密入力値に基づいて分散値を生成し、計算パーティを構成する各演算処理装置20に分配する。入力値分配部201が行う処理は、上記図2及び図3に示すステップS101における処理に対応している。入力値分配部201は、入力値分配プロトコルを実行することにより、入力された秘密入力値の分散値を各演算処理装置20に分配することができる。なお、図4に示すセキュア計算システム1のように、入力者D、Dと、計算パーティP、P、Pとが別々に構成される場合には、計算パーティP、P、P(すなわち、演算処理装置20)は入力値分配部201の機能を有していなくてもよく、入力者D、Dに対応するパーティ(例えば他の情報処理端末)において入力値分配部201の機能が実行され、分散値が当該入力者D、Dに対応するパーティから演算処理装置20に送信され得る。
分散値セキュア計算部203は、情報処理装置10によって生成された改良計算式プロトコルに基づいて、分配された分散値に対してセキュア計算を実行する。具体的には、分散値セキュア計算部203は、秘密入力値の分散値を入力として、情報処理装置10によって生成された改良計算式プロトコルを実行する。なお、分散値セキュア計算部203が行う処理は、上記図2及び図3に示すステップS103における処理に対応している。
出力値計算部205は、分散値セキュア計算部203によるセキュア計算の結果(これは、出力値の分散値である)から出力値を計算する。出力値計算部205は、分散値セキュア計算部203によるセキュア計算の結果に対して出力値復号プロトコルを実行することにより、出力値を算出することができる。なお、出力値計算部205が行う処理は、上記図2及び図3に示すステップS105における処理に対応している。また、出力値取得者と、計算パーティP、P、Pとが別々に構成される場合には、計算パーティP、P、P(すなわち、演算処理装置20)は出力値計算部205の機能を有していなくてもよく、出力値取得者に対応するパーティ(例えば他の情報処理端末)に、分散値セキュア計算部203によるセキュア計算の結果が送信され、当該出力値取得者に対応するパーティにおいて出力値計算部205の機能が実行され得る。
以上、図6を参照して、本実施形態に係る情報処理装置10及び演算処理装置20の機能構成について説明した。以上説明したように、本実施形態によれば、情報処理装置10によって、機能が重複する再分配プロトコルが取り除かれた改良計算式プロトコル又は改良セキュア計算プロトコルが生成される。そして、複数の演算処理装置20において、当該改良計算式プロトコル又は改良セキュア計算プロトコルを用いたセキュア計算プロトコルが実行される。ここで、再分配プロトコルは、演算処理装置20間の通信を伴うプロトコルであるため、通信が行われない他のプロトコルに比べて実行時間が長くなる傾向がある。本実施形態では、機能が重複する再分配プロトコルが取り除かれた、すなわち、再分配プロトコルが適切に配置された計算式プロトコルを用いてセキュア計算プロトコルが実行されることにより、セキュア計算プロトコル全体の実行時間をより短縮することができる。
なお、上記の説明における再分配プロトコルは、入力値の秘匿性を保つために行われる秘匿性確保プロトコルの一例であり得る。セキュア計算プロトコルでは、演算処理装置20間で分散値の送受信が行われた場合に、入力値の秘匿性を保つために、再分配プロトコルに例示されるような秘匿性確保プロトコルが実行され得る。本実施形態では、例えばセキュア計算プロトコルの中に、秘匿性確保プロトコルが重複して実行される部分があり、その機能が重複している場合(すなわち、1回秘匿性確保プロトコルが実行されるだけでも入力値の秘匿性が確保され得る場合)であれば、以上説明した方法と同様の方法によって、冗長な秘匿性確保プロトコルが取り除かれた改良セキュア計算プロトコルが生成され得る。
また、図6に示す例では、改良セキュア計算プロトコルを生成する装置(すなわち、情報処理装置10)と、当該改良セキュア計算プロトコルを実行する装置(すなわち、演算処理装置20)とが別々の装置として構成される場合について図示しているが、本実施形態はかかる例に限定されない。演算処理装置20(すなわち、計算パーティ)自身が改良セキュア計算プロトコルを生成してもよい。その場合、演算処理装置20が、図6に示す情報処理装置10が備える各機能を更に備えることとなる。また、情報処理装置10が備える各機能(計算式分解部101、演算プロトコル割当部103及び第2計算プロトコル生成部105)は、1台の装置において実行されなくてもよく、複数の装置の協働によって実行されてもよい。更に、情報処理装置10は、ネットワーク上(いわゆるクラウド上)に設置されるサーバ又はサーバ群であってもよく、情報処理装置10が備える各機能が当該ネットワーク上のサーバ又はサーバ群によって実行されてもよい。
なお、上述のような本実施形態に係る情報処理装置10又は演算処理装置20の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
(4.情報処理方法の処理手順)
(4−1.情報処理方法の概要)
次に、図7を参照して、本実施形態に係る情報処理方法の処理手順について説明する。図7は、本実施形態に係る情報処理方法の処理手順の一例を示すフロー図である。
図7を参照すると、本実施形態に係る情報処理方法では、まず、セキュア計算プロトコルの計算式が、所定の演算処理に分解される(ステップS201)。例えば、ステップS201では、セキュア計算プロトコルの計算式が基本演算処理に分解される。なお、ステップS201に示す処理は、上述した図6に示す計算式分解部101によって実行される処理に対応している。
次に、分解された計算式に対して、所定の演算処理を表すプロトコルが割り当てられる(ステップS203)。ステップS203において割り当てられるプロトコルとしては、再分配プロトコルが含まれないプロトコルが選択される。例えば、ステップS201において、計算式が基本演算処理である加算と乗算とに分解されている場合であれば、ステップS203では、分解された計算式に対して、加算に対応する部分には加算プロトコルが割り当てられ、乗算に対応する部分には分散値乗算プロトコルが割り当てられる。なお、ステップS203に示す処理は、上述した図6に示す演算プロトコル割当部103によって実行される処理に対応しており、ステップS203においては、上述した第1の計算プロトコルが生成されることとなる。
次に、ステップS203で生成された第1の計算プロトコルに対して、入力値の秘匿性が確保され得る適切な位置に再分配プロトコルが再度配置されることにより、第2の計算プロトコルが生成される(ステップS205)。なお、ステップS205に示す処理は、上述した図6に示す第2計算プロトコル生成部105によって実行される処理に対応しており、第2の計算プロトコルは改良セキュア計算プロトコル又は改良計算式プロトコルに対応している。ステップS205で生成された第2の計算プロトコルに基づいて、計算パーティ間において計算が実行される。
(4−2.情報処理方法の詳細)
以上説明した情報処理方法における各処理の詳細について順に説明する。なお、以下の説明では、計算式が基本演算処理である加算と乗算とに分解される場合を例に挙げて説明する。また、具体例として、計算式が下記数式(1)で示される場合について説明する。
Figure 2015194959
ここで、x、x、x、x、xは秘密入力値であり、yは出力値である。すなわち、本具体例に係るセキュア計算プロトコルは、3つの計算パーティP、P、Pが、秘密入力値x、x、x、x、xに基づいて、上記数式(1)で表される出力値yを、秘密入力値x、x、x、x、xが互いに秘匿された状態で算出するプロトコルである。
(ステップS201:計算式の分解)
ステップS201に示す処理では、計算式が、加算又は乗算の2項演算からなる計算手続き(以下、計算過程とも呼称する。)に分解される。そして、分解された計算式を利用して、計算式が、加算又は乗算が順に計算されていく過程を表す計算グラフに変換される。この際、計算式に対応する演算は全て環上の演算であるため、減算は加算に変換される。
(S201−1)
まず、計算式について、2つの入力変数(入力値に対応する変数)に対する2項演算を、中間変数で置き換える処理が行われる。置き換えられた中間変数に対しても、更に、入力変数と中間変数又は中間変数と中間変数に対する2項演算を、他の中間変数で置き換える処理が繰り返し行われる。当該処理が、(出力変数)=(入力変数又は中間変数)の関係になるまで繰り返される。
例えば上記数式(1)であれば、xに中間変数であるvが割り当てられる(v=x)。同様に、数式(1)に含まれる変数同士の2項演算が、中間変数によって置き換えられる。
(S201−2)
ステップS201−1に示す処理が終了したら、中間変数及び出力変数を左辺とし、変数同士の2項演算を右辺とする数式を列挙する処理が行われる。式を列挙する順序は、2項演算を中間変数に置換した順序である。例えば、上記数式(1)に対してステップS201−1、S201−2に示す処理が行われた結果は、下記数式(2)のようになる。
Figure 2015194959
ここで、v、v、v、vは中間変数である。上記数式(2)は、上記数式(1)を複数の数式からなる計算過程に分解したものに対応している。
(S201−3)
計算式が計算過程に分解されると、当該計算過程が計算グラフで表現される。計算グラフは、入力変数、出力変数及び中間変数に対応する頂点を有しており、計算過程を表す数式の右辺の変数に対応する頂点から、当該数式の左辺の変数に対応する頂点に向かって(すなわち、始点を右辺の変数、終点を左辺の変数として)有向枝が結ばれる。また、中間変数に対応する頂点には、2項演算子が割り当てられる。
図8に計算グラフの一例を示す。図8は、図7に示すステップS201における処理において作成される計算グラフの一例を示す図である。図8では、上記数式(2)に示す計算過程に対応する計算グラフが図示されている。
例えば、図8に示すように、上記数式(2)の1番目の数式である「v=x」は、計算グラフでは、xを示す頂点からvを示す頂点に有向枝が伸ばされ、xを示す頂点からvを示す頂点に有向枝が伸ばされるように表現される。また、中間変数vを示す頂点には、乗算を表す記号が割り当てられる。
(ステップS203:演算プロトコルの割り当て)
ステップS203に示す処理では、計算式に対して基本演算プロトコルが割り当てられ、計算式が第1の計算プロトコルに変換される。具体的には、ステップS201で求められた計算過程の加算及び乗算に対して、基本演算プロトコルである加算プロトコル及び分散値乗算プロトコルが、それぞれ割り当てられる。
例えば、上記数式(2)の1番目の数式である「v=x」は、乗算であるため、当該数式には、分散値乗算プロトコル<v>←Mult2(<x>,<x>)が割り当てられる。最終的に、上記数式(2)は、下記数式(3)に変換される。下記数式(3)は、上記数式(2)を計算プロトコルとして表したものであり、上述した第1の計算プロトコルに対応するものである。
Figure 2015194959
なお、上記数式(3)における5行目の数式(<y>←<v>)は、中間変数v4の分散値から、最終的な出力値であるyの分散値を生成する処理に対応している。
(ステップS205:改良計算式プロトコルの生成(再分配プロトコルの再配置))
ステップS205に示す処理では、ステップS203で生成された第1の計算プロトコルに対して、再分配プロトコルが適切な位置に再配置されることにより、改良計算式プロトコル(第2の計算プロトコル)が生成される。再分配プロトコルが配置される位置は具体的には、以下で説明する手順に基づいて、計算グラフを用いて決定される。
(S205−1)
まず、計算グラフにおける全ての中間変数に対応する頂点の中から、割り当てられた演算子が乗算である頂点が抽出される。抽出された頂点の集合をVとする。図8に示す例であれば、該当する中間変数の集合は、V={v,v,v}である。
(S205−2)
次に、全ての頂点v∈Vについて、以下のステップS205−2−1、S205−2−2の処理が実行される。
(S205−2−1)
頂点v=vを始点として、有向枝で辿れる全頂点(中間変数)を抽出する。そして、抽出された頂点の中から、他の中間変数にそれ以上辿ることができない、始点となり得ない頂点を抽出し、その集合をVとする。このとき、出力変数に対応する頂点に向かう有向枝は対象としない。図8に示す例であれば、v=vのとき、vを始点として有向枝で辿れる頂点はv,vである。その中で始点にならない頂点はvなので、V={v}となる。ステップS205−2−1では、乗算を表す頂点に対して、当該乗算の後段でなされる演算の順序を表す経路(パス)の終点が抽出されることとなる。
(S205−2−2)
次に、始点v=vに対応する、抽出された全ての頂点v∈Vについて、以下の手続きを行う。すなわち、始点と各頂点の間のパスに存在する、全ての頂点の集合をVijとする。図8に示す例であれば、始点v=vから頂点vに向かうパスを考えると、V14={v,v,v}となる。そして、Vij内の全ての頂点w=vについて、始点から終点に向けて、下記で説明する終了条件に達するまで、順番に以下の処理を行う。すなわち、頂点wを始点としたときの有向枝の終点の頂点が、乗算が割り当てられた中間変数に対応する頂点である場合又は出力変数に対応する頂点である場合、この頂点wを抽出し、Vという頂点集合に入れ、当該処理を終了する。終点の演算子が加算の場合は、この終点を始点wとして同じ手続きを繰り返し行う。図8に示す例であれば、V14={v,v,v}のとき、まず初めにw=vとして、vを始点とする有向枝の終点が判断される。vを始点とする有向枝の終点はvであり、vは乗算であるため、Vの中にvが入れられ、この集合V14内での探索が終了される。ステップS205−2−2では、ステップS205−2−1で抽出された終点までのパスにおいて、後段に乗算又は出力値に対応する頂点が存在する頂点vが抽出されることとなる。このように、ステップS205−2−1、S205−2−2に示す処理を行うことにより、計算グラフの中で、乗算の後に乗算又は出力値の出力が行われる部分が抽出される。
ステップS205−2−1、S205−2−2の処理を全ての頂点v∈Vについて実行すると、図8に示す例であれば、v=vの場合はv、v=vの場合はv、v=vの場合はvが抽出されることとなる。従って、V={v,v}となる。
(S205−3)
次に、ステップS205−2で抽出された、集合Vに含まれる頂点の演算に対応する基本演算プロトコルの直後に、再分配プロトコルが配置される。図8に示す例であれば、V={v,v}であるため、上記数式(3)の1番目、4番目のプロトコルの後に、再分配プロトコルが配置される。最終的に得られる再分配プロトコルが配置された後の改良計算式プロトコルは、下記数式(4)のようなプロトコルとなる。
Figure 2015194959
以上、本実施形態に係る情報処理方法の処理手順について説明した。ここで、以上説明した本実施形態に係る情報処理方法によって得られる改良セキュア計算プロトコルと、一般的な方法において用いられているセキュア計算プロトコルとの比較を行う。
例えば、上記数式(1)の計算式を、上記非特許文献1に記載の方法での計算式プロトコルで表現すると、下記数式(5)のようになる。
Figure 2015194959
ここで、セキュア計算プロトコルでは、実行したい計算に対応する計算式が、基本演算処理を表す基本演算プロトコル(例えば、加算プロトコル、乗算プロトコル及び分散値乗算プロトコル)を組み合わせることで実現できる。一方、セキュア計算プロトコルにおいてその安全性を保証するためには、計算式に対応する計算式プロトコルの入力値である分散値と、当該計算式プロトコルの出力値である分散値とが互いに独立であり、かつ、その出力値が計算パーティ間で一様に分布する必要がある。従って、非特許文献1に記載されているような一般的な方法では、基本演算プロトコルとして用いられている加算プロトコル及び乗算プロトコルが、このような条件を満たすように設計されていた。具体的には乗算プロトコル内に、分散値を各計算パーティに再分配することによってその独立性を確保する再分配プロトコルが含まれる。しかしながら、一般的な方法では、計算式を基本演算プロトコルによって構成する際に、乗算プロトコルが複数含まれる場合には、パーティ間での通信を伴うプロトコルである再分配プロトコルが多数実行されることとなり、通信量が増加してしまう可能性があった。
一方、一般的な方法では、単純に加算プロトコル及び乗算プロトコルを組み合わせることによって計算式に対応する計算式プロトコルが構成されるため、同一の機能を果たす再分配プロトコルが重複して実行される場合がある等、当該計算式プロトコルが必ずしも最適化されていなかった。従って、計算式プロトコルにおいて再分配プロトコルを適切な位置に再配置することにより、セキュア計算プロトコルをより効率的なものにでき、通信量を削減できる可能性がある。
そこで、本実施形態では、基本演算プロトコルとして、乗算プロトコルから再分配プロトコルが分離されたプロトコルである、分散値乗算プロトコルを導入する。そして、加算プロトコルと分散値乗算プロトコルとで、計算式に対応する計算式プロトコルを作成した後、適切な位置、すなわち、分散値の独立性が保たれるような位置に再分配プロトコルを再配置することにより、より効率化されたセキュア計算プロトコル(改良セキュア計算プロトコル)を作成する。
ここで、再分配プロトコルを配置する位置について考察すると、出力値が入力値と独立にならなくなるのは、計算パーティ間で分散値の送受信が行われる分散値乗算プロトコルが行われた後である。ただし、分散値乗算プロトコルを行った後であっても、各計算パーティがその計算結果である分散値をローカルで保持し続けている段階では、当該分散値が入力値に依存していてもセキュリティ上問題はない。しかし、その後に、その分散値を更に他の計算パーティに送信するときに、セキュリティ上問題が生じ得る。計算パーティ間で分散値の送受信が行われるのは、分散値乗算プロトコルが行われる場合と、最終的な出力値に対する分散値が生成される場合である。従って、本実施形態では、分散値乗算プロトコルが実行され、かつ、その後にその結果を他の計算パーティに送信する演算がある場合に、当該他の計算パーティに送信する前に再分配プロトコルが実行されるように、再分配プロトコルの配置位置を決定する。具体的には、上記(4−2.情報処理方法の詳細)で説明したアルゴリズムにより、このような再配分プロトコルを実行する必要がある位置(すなわち、再配分プロトコルの適切な配置位置)が特定され得る。
上述したように、本実施形態によって得られる改良計算式プロトコルは、上記数式(4)のようになる。一方、一般的な方法によって実行され得る計算式プロトコルは、上記数式(5)のようになる。両者を比較すると、上記数式(5)では、再分配プロトコルが6回実行されることとなる。一方、上記数式(4)では、再分配プロトコルが2回しか実行されない。このように、本実施形態によれば、通信を伴うプロトコルである再分配プロトコルの回数を削減することができるため、セキュア計算プロトコルの実行時間を短縮することができる。また、分散値の独立性を保つために必要な箇所にはセキュア計算プロトコルが適切に配置されるため、実行時間を低減しつつも、秘密入力値の秘匿性は確保され得る。
(5.適用例)
本実施形態に係るセキュア計算プロトコルは、例えば別々のシステムにおいて管理されている複数の情報に対して、当該情報を相手のシステムには秘匿した状態で、所定の処理を行いたい場合に、好適に適用され得る。例えば、近い将来、ユーザのパーソナルデータの流動性が増し、当該パーソナルデータの利活用が活発になる状況では、ユーザのプライバシー情報の保護が重要になることが想定される。このような場合に、セキュア計算プロトコルを用いることにより、複数のシステムに点在するユーザのパーソナルデータを一箇所に集めることなく、統計解析や知識抽出(いわゆるデータマイニング)を行うことが可能となる。その結果、情報漏えいリスクを分散化できるとともに、必要以上にプライバシー情報が抽出されることを防止できる利点がある。ここでは、本実施形態に係るセキュア計算プロトコルのいくつかの適用例について説明する。
(5−1.医療情報の二次利用)
本実施形態に係るセキュア計算プロトコルは、医療情報に対して各種の解析処理を行う際に好適に適用され得る。ここで、医療情報とは、例えば患者の病歴や年齢、身体の様子を表す基礎データ等、一般的にカルテに記載され得るような情報であってよい。このような医療情報は、患者の個人情報であり、プライバシー情報の保護の観点から、当該医療情報を管理している病院等のシステム以外に持ち出されることは好ましくない。一方で、多数の医療情報を統合し、例えば統計的な処理を行うことにより、治療に有益なデータを得ることができる可能性もある。本実施形態によれば、医療情報を、当該医療情報を管理しているシステム以外に漏えいさせることなく、当該医療情報に対する解析処理を行うことができる。
(5−1−1.医療情報に基づくデータマイニング)
まず、図9を参照して、本実施形態に係るセキュア計算プロトコルを用いた、医療情報に基づくデータマイニングについて説明する。図9は、本実施形態に係るセキュア計算プロトコルを用いた、医療情報に基づくデータマイニングについて説明するための説明図である。データマイニングでは、複数のシステムに点在する情報を網羅的に解析することにより、新たな情報が取り出される。
図9を参照すると、本適用例では、ライフログサービス330が管理しているユーザのライフログと、病院340が管理している患者の医療情報と、を解析の対象としている。ライフログサービス330は、ユーザの生活に係るあらゆる情報(ライフログ)を管理し得る。当該ライフログは、例えばユーザ自身によって能動的に記録されてもよいし、例えばユーザが身に付けて使用するウェアラブル端末や、スマートフォン等の携帯端末に備えられる各種のセンサによって自動的に記録されてもよい。図9に示す例では、ライフログサービス330には、ライフログとして、ユーザの睡眠時間や運動時間等についての情報が記録されている。
一方、病院340には、病院340を受診した患者の医療情報が管理されている。図9に示す例では、病院340には、医療情報として、患者の血圧、年齢及び病歴等についての情報が記録されている。ライフログサービス330と病院340とは、互いに連携しており、ユーザのIDと患者のIDとに基づいて個人を特定することまでは可能であるが、両者がそれぞれ有するライフログと医療情報とは、プライバシー情報の保護の観点から互いに開示されないことが好ましい。このような場合に、ライフログ及び医療情報を互いに秘匿にしたまま解析を行う手法として、セキュア計算プロトコルが好適に適用され得る。
本適用例では、ライフログサービス330及び病院340は、セキュア計算プロトコルにおける入力者と計算パーティとを兼ねており、ライフログサービス330及び病院340から分散値として互いに提供されたライフログ及び医療情報に基づいて、セキュア計算プロトコルを実行する。これにより、ライフログ及び医療情報は互いに秘匿されたまま、ライフログ及び医療情報を用いた各種の解析処理が実行され得る。
医療情報管理・解析サービス320は、ライフログサービス330及び病院340によるセキュア計算プロトコルの実行を管理する。また、医療情報管理・解析サービス320は、セキュア計算プロトコルにおける出力値取得者であってもよく、後述する情報処理装置端末310(一ユーザを模式的に表す)に対してセキュア計算プロトコルの実行結果を提供することができる。例えば、医療情報管理・解析サービス320は、セキュア計算プロトコルを生成し、生成したセキュア計算プロトコルをライフログサービス330及び病院340に配布するとともにセキュア計算プロトコルを実行させる。医療情報管理・解析サービス320においてセキュア計算プロトコルが生成される際に、本実施形態に係る手法が好適に適用され得る。本実施形態に係る手法を適用することにより、ライフログサービス330及び病院340におけるセキュア計算プロトコルの実行時間をより短くすることができ、より短時間でライフログ及び医療情報に基づく各種の解析を行うことが可能となる。
情報処理装置端末310は、ライフログ及び医療情報に基づいて所定の解析結果を得たいと考えているユーザを表している。当該ユーザは、医療情報管理・解析サービス320にアクセスすることにより、例えば血圧と睡眠時間との相関や、病歴と運動時間との相関等、ライフログ及び医療情報に基づく各種の解析結果を得ることができる。
なお、本適用例は上述した構成例に限定されず、ライフログサービス330及び病院340に加えて、医療情報管理・解析サービス320も計算パーティとして参加し、三者でセキュア計算プロトコルが実行されてもよい。また、医療情報管理・解析サービス320は存在しなくてもよく、情報処理装置端末310(すなわちユーザ)が、ライフログサービス330及び病院340のいずれかに直接アクセスすることにより、セキュア計算プロトコルの実行結果を取得してもよい。その場合、ライフログサービス330及び病院340のいずれかが出力値取得者を兼ねることとなる。
(5−1−2.医療情報に対する統計解析処理)
次に、図10を参照して、本実施形態に係るセキュア計算プロトコルを用いた、医療情報に対する統計解析処理について説明する。図10は、本実施形態に係るセキュア計算プロトコルを用いた、医療情報に対する統計解析処理について説明するための説明図である。
図10を参照すると、本適用例では、互いに異なる病院350、360、370が管理している患者の医療情報を解析の対象としている。図10に示す例では、病院350、360、370には、医療情報として、患者の年齢及び病歴等についての情報が記録されている。患者の医療情報は、プライバシー性の高い情報であり、厳重に管理されるべき情報であるが、その反面、例えば医療情報に対して各種の統計的な解析を行うことにより、例えば所定の病気に罹患しやすい年齢や性別等の傾向といった、有益な情報を得ることができる可能性がある。本適用例では、セキュア計算プロトコルを用いることにより、病院350、360、370が管理している患者の医療情報が開示されることなく、これらの医療情報に対する解析処理を行うことが可能となる。
本適用例では、病院350、360、370は、セキュア計算プロトコルにおける入力者と計算パーティとを兼ねており、病院350、360、370から分散値として互いに提供された医療情報に基づいて、セキュア計算プロトコルを実行する。これにより、病院350、360、370がそれぞれ管理する医療情報は互いに秘匿されたまま、医療情報を用いた各種の解析処理が実行され得る。
医療情報管理・解析サービス320は、病院350、360、370によるセキュア計算プロトコルの実行を管理する。また、医療情報管理・解析サービス320は、セキュア計算プロトコルにおける出力値取得者であってもよく、情報処理装置端末310(一ユーザを模式的に表す)に対してセキュア計算プロトコルの実行結果を提供することができる。例えば、医療情報管理・解析サービス320は、セキュア計算プロトコルを生成し、生成したセキュア計算プロトコルを病院350、360、370に配布するとともにセキュア計算プロトコルを実行させる。医療情報管理・解析サービス320においてセキュア計算プロトコルが生成される際に、本実施形態に係る手法が好適に適用され得る。本実施形態に係る手法を適用することにより、病院350、360、370におけるセキュア計算プロトコルの実行時間をより短くすることができ、より短時間で医療情報に基づく各種の解析を行うことが可能となる。
情報処理装置端末310は、医療情報に基づいて所定の解析結果を得たいと考えているユーザを表している。当該ユーザは、医療情報管理・解析サービス320にアクセスすることにより、例えばある病気に罹患している患者の平均年齢や、性別等の、医療情報に基づく各種の統計情報を得ることができる。
なお、本適用例は上述した構成例に限定されず、病院350、360、370に加えて、医療情報管理・解析サービス320も計算パーティとして参加し、四者でセキュア計算プロトコルが実行されてもよい。また、医療情報管理・解析サービス320は存在しなくてもよく、情報処理装置端末310(すなわちユーザ)が、病院350、360、370のいずれかに直接アクセスすることにより、セキュア計算プロトコルの実行結果を取得してもよい。その場合、病院350、360、370のいずれかが出力値取得者を兼ねることとなる。
以上、セキュア計算プロトコルが、医療情報に対する各種の解析処理を行う際に適用される場合について説明した。なお、図9及び図10に示すライフログ及び医療情報は一例であって、本実施形態に係るセキュア計算プロトコルを用いた解析には、一般的にライフログ及び医療情報として管理され得るあらゆる情報が入力値として用いられてよい。
(5−2.推薦(リコメンド)サービス)
本実施形態に係るセキュア計算プロトコルは、ユーザの好み(嗜好)を分析し、その分析結果に基づいてユーザごとに適すると思われる情報を提供するサービスであるリコメンドサービスにおいて、ユーザの好みを分析する際に好適に適用され得る。図11及び図12を参照して、本実施形態に係るセキュア計算プロトコルを用いた、リコメンドサービスにおける分析処理について説明する。図11及び図12は、本実施形態に係るセキュア計算プロトコルを用いた、リコメンドサービスにおける分析処理について説明するための説明図である。
図11を参照すると、本適用例では、ある会社X社430が管理している各ユーザの購入履歴情報と、別の会社Y社440が管理している各ユーザの購入履歴情報と、を解析の対象としている。例えば、X社430が管理している購入履歴情報とY社440が管理している購入履歴情報とは、それぞれ、各ユーザが互いに異なるサービスを介して購入した商品についての情報であるとする。この場合、プライバシー情報の保護の観点から、X社430及びY社440が、互いが保有する購入履歴情報をそれぞれに提供し、ある特定のユーザ410の好みを分析するために用いることは好ましくない。しかし、X社430及びY社440が保有する購入履歴情報を両方用いることにより、ユーザ410の好みをより的確に解析することができる可能性がある。このようなより精度の高い解析が行われることにより、ユーザ410がより興味を持つような商品がユーザ410に対して推薦されることとなり、商品を推薦する側であるX社430及びY社440にとっても、商品を購入する側であるユーザ410にとってもメリットがある。
本適用例では、X社430及びY社440は、セキュア計算プロトコルにおける入力者と計算パーティとを兼ねており、X社430及びY社440から分散値として互いに提供された購入履歴情報に基づいて、セキュア計算プロトコルを実行する。これにより、X社430及びY社440がそれぞれ管理する購入履歴情報は互いに秘匿されたまま、購入履歴情報を用いた各種の解析処理(例えば、あるユーザ410の好みの解析処理)が実行され得る。
購入履歴情報管理・解析サービス420は、X社430及びY社440によるセキュア計算プロトコルの実行を管理する。また、購入履歴情報管理・解析サービス420は、セキュア計算プロトコルにおける出力値取得者であってもよく、セキュア計算プロトコルの実行結果であるユーザ410の好みについての情報に基づいて、当該ユーザ410に対して商品の広告、推薦、通知等に関する情報を提供することができる。例えば、購入履歴情報管理・解析サービス420は、セキュア計算プロトコルを生成し、生成したセキュア計算プロトコルをX社430及びY社440に配布するとともにセキュア計算プロトコルを実行させる。購入履歴情報管理・解析サービス420においてセキュア計算プロトコルが生成される際に、本実施形態に係る手法が好適に適用され得る。本実施形態に係る手法を適用することにより、X社430及びY社440におけるセキュア計算プロトコルの実行時間をより短くすることができ、より短時間で購入履歴情報に基づく各種の解析を行うことが可能となる。
なお、本適用例は上述した構成例に限定されず、X社430及びY社440に加えて、購入履歴情報管理・解析サービス420も計算パーティとして参加し、三者でセキュア計算プロトコルが実行されてもよい。また、購入履歴情報管理・解析サービス420は存在しなくてもよく、X社430及びY社440のいずれかから直接ユーザ410に対して、セキュア計算プロトコルの実行結果に基づく商品の広告、推薦、通知等に関する情報が提供されてもよい。その場合、X社430及びY社440のいずれかが出力値取得者を兼ねることとなる。
図12では、本適用例において実行され得るセキュア計算プロトコルの具体的な処理の一例について図示している。図12に示す表では、各行はユーザを表しており、各列は商品の種類を表している。表中に丸が付いている部分は、当該ユーザが当該商品を購入したことを表している。つまり、図12に示す表は、各ユーザの購入履歴を表すものである。ここで、例えば、商品1〜4についての購入履歴情報はX社430管理しているものであり、商品5〜7についての購入履歴情報は、Y社440が管理しているものである。
例えば、ユーザAを、商品が推薦される対象者であるとする。本適用例では、各ユーザの商品の購入履歴をベクトル(以下、商品購入ベクトルとも呼称する。)として表現し、商品が推薦される対象であるユーザ(ユーザA)と、他のユーザ(ユーザB〜ユーザG)との間での商品購入ベクトルの相関量(例えば、Jaccard係数)を算出する。そして、当該相関量を重みとして他のユーザ(ユーザB〜ユーザG)の商品購入ベクトルを足し合わせることにより、商品が推薦される対象であるユーザ(ユーザA)に対して推薦される商品が推定される。
具体的には、図12に示す表の各行について、丸を「1」、空欄を「0」として表現することにより、各ユーザの商品購入ベクトルを取得する。例えばユーザAの商品購入ベクトルは(0,0,1,0,0,1,0)であり、ユーザDの商品購入ベクトルは(1,0,1,0,0,1,0)である。
次に、ユーザAの商品購入ベクトルと、他の全てのユーザB〜ユーザGの商品購入ベクトルとの間で相関量を計算する。ここでは、相関量の一例として、Jaccard係数を計算する場合について説明する。しかし、本適用例はかかる例に限定されず、商品購入ベクトル間の相関量としては、相関を表す他の各種の値が計算されてもよい。
本適用例の場合、Jaccard係数は、(ユーザがともに購入した商品の種類数(すなわち、2人のユーザの購入商品の「AND」))/(ユーザがそれぞれ購入した商品の総種類数(すなわち、2人のユーザの購入商品の「OR」))と定義できるため、例えばユーザAとユーザDのJaccard係数は、2/3となる。同様にして、ユーザAと、他の全てのユーザB〜ユーザGとの間でJaccard係数を計算する。
次に、算出されたJaccard係数を重みとして、ユーザB〜ユーザGの商品購入ベクトルを足し合わせる。図12に示す例であれば、(1×(0,0,1,0,0,1,0)+2/3×(1,0,1,0,0,1,0)+・・・+0×(0,1,0,1,1,0,0))が計算されることとなる。当該計算の結果得られたベクトルの要素の中で、最も値が大きい要素に対応する商品が、ユーザAに対して推薦される商品として選択され得る。図12に示す例では、ユーザAに推薦される商品として、商品1が選択される。
以上、セキュア計算プロトコルが、リコメンドサービスにおける分析処理に適用される場合について説明した。
(5−3.オークション)
本実施形態に係るセキュア計算プロトコルは、買い手(入札者)の提示価格(入札価格)が相互に開示されない、いわゆる封印入札方式のオークションにおける落札者及び/又は落札価格の決定処理に対して好適に適用され得る。図13を参照して、本実施形態に係るセキュア計算プロトコルを用いた、オークションにおける落札者及び/又は落札価格の決定処理について説明する。図13は、本実施形態に係るセキュア計算プロトコルを用いた、オークションにおける落札者及び/又は落札価格の決定処理について説明するための説明図である。
図13を参照すると、本適用例では、入札者(オークション参加者)510による入札価格についての情報(入札価格情報)をセキュア計算プロトコルにおける処理の対象としている。例えば、落札対象の商品に対して複数のオークション参加者510が互いに利害関係がある場合には、オークションを適正に実行するためにも、オークション参加者510には互いの入札価格は開示されないことが好ましい。本適用例では、セキュア計算プロトコルを用いることにより、オークション参加者510の入札価格情報が互いに開示されることなく、これらの入札価格情報に対する処理を行うことが可能となる。具体的には、オークション参加者510の入札価格情報を入力値(秘密入力値)として、セキュア計算プロトコルが実行される。
図13に示す例では、オークション参加者510はセキュア計算プロトコルにおける入力者の役割を果たし、複数のオークション参加者510から入札価格情報が秘密入力値として仲介者520に集積される。本適用例では、入札価格情報がオークション参加者510から仲介者520に送信される際に、当該入札価格情報は既に分散化され分散値となっている。仲介者520は、オークション参加者510と計算パーティ530a、530b、530cとを仲介する役割を果たし、オークション参加者510から送信された入札価格情報の分散値を計算パーティ530a、530b、530cのそれぞれに入力する。なお、入札価格情報の分散値がオークション参加者510から仲介者520に送信される際には、例えば当該入札価格情報の分散値には適宜暗号化処理が施されており、仲介者520によって分散値から入札価格情報が復号できない状態になっている。ここで、仲介者520は、セキュア計算プロトコルの実行を管理する役割を有してもよく、例えばセキュア計算プロトコルを生成したり、生成したセキュア計算プロトコルを計算パーティ530a、530b、530cに配布するとともにセキュア計算プロトコルを実行させたりしてもよい。
仲介者520から秘密入力値である入札価格情報の分散値が入力されると、計算パーティ530a、530b、530cにおいて、当該入札価格情報の分散値に基づいてセキュア計算プロトコルが実行され、例えば落札者や落札価格等の、オークションの結果が出力されることとなる。当該セキュア計算プロトコルに対して、本実施形態に係る手法を適用することにより、より短時間でオークションの結果を得るための処理を行うことが可能となる。なお、図13では、一例として、3つの計算パーティ530a、530b、530cによってセキュア計算プロトコルが実行される場合について図示しているが、異なる数の計算パーティによってセキュア計算プロトコルが実行されてもよい。
以上、本実施形態に係るセキュア計算プロトコルが好適に適用され得るいくつかの適用例について説明した。以上説明したような別々のシステムにおいて管理されている複数の情報を統合して所定の処理を行う場合に、本実施形態に係るセキュア計算プロトコルを適用することにより、これらの情報を互いのシステムには秘匿した状態で、より短時間で当該所定の処理を実行することが可能となる。従って、より利便性の高いサービスをユーザに提供することができる。
(6.ハードウェア構成)
次に、図14を参照して、本実施形態に係る情報処理装置のハードウェア構成について説明する。図14は、本実施形態に係る情報処理装置のハードウェア構成の一例を示す機能ブロック図である。なお、図14に示す情報処理装置900は、例えば、図4及び図5に示す入力者D、D及び計算パーティP、P、Pを構成し得る演算処理装置や、図6に示す情報処理装置10及び演算処理装置20を実現し得る。
情報処理装置900は、CPU901、ROM(Read Only Memory)903及びRAM(Random Access Memory)905を備える。また、情報処理装置900は、ホストバス907、ブリッジ909、外部バス911、インターフェース913、入力装置915、出力装置917、ストレージ装置919、通信装置921、ドライブ923及び接続ポート925を備えてもよい。情報処理装置900は、CPU901に代えて、又はこれとともに、DSP若しくはASIC(Application Specific Integrated Circuit)と呼ばれるような処理回路を有してもよい。
CPU901は、演算処理装置及び制御装置として機能し、ROM903、RAM905、ストレージ装置919又はリムーバブル記録媒体929に記録された各種のプログラムに従って、情報処理装置900内の動作全般又はその一部を制御する。ROM903は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM905は、CPU901の実行において使用するプログラムや、その実行時のパラメータ等を一次記憶する。CPU901、ROM903及びRAM905は、CPUバス等の内部バスにより構成されるホストバス907により相互に接続されている。更に、ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バス等の外部バス911に接続されている。本実施形態では、例えばCPU901が所定のプログラムに従って動作することにより、上述した情報処理装置10及び演算処理装置20の各機能が実現され得る。
ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バス等の外部バス911に接続されている。
入力装置915は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ及びレバー等、ユーザによって操作される装置によって構成される。また、入力装置915は、例えば、赤外線やその他の電波を利用したリモートコントロール装置(いわゆる、リモコン)であってもよいし、情報処理装置900の操作に対応した携帯電話やPDA等の外部接続機器931であってもよい。更に、入力装置915は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU901に出力する入力制御回路などから構成されている。情報処理装置900のユーザは、この入力装置915を操作することにより、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりすることができる。本実施形態では、ユーザによって、入力装置915を介して、例えば、計算式についての情報や秘密入力値についての情報、セキュア計算プロトコルに係る各種のパラメータ等が入力されてよい。
出力装置917は、取得した情報をユーザに対して視覚的又は聴覚的に通知することが可能な装置で構成される。このような装置として、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置及びランプ等の表示装置や、スピーカ及びヘッドホン等の音声出力装置や、プリンタ装置等がある。出力装置917は、例えば、情報処理装置900が行った各種処理により得られた結果を出力する。具体的には、表示装置は、情報処理装置900が行った各種処理により得られた結果を、テキスト、イメージ、表、グラフ等、様々な形式で視覚的に表示する。本実施形態では、当該表示装置に、例えばセキュア計算プロトコルの実行結果が表示されてよい。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して聴覚的に出力する。
ストレージ装置919は、情報処理装置900の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置919は、例えば、HDD等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等により構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ及び外部から取得した各種のデータ等を格納する。本実施形態では、例えばセキュア計算プロトコルに係る各種の情報(例えば、計算式についての情報、秘密入力値(分散値)についての情報、セキュア計算プロトコルの計算過程で得られる情報及び/又はセキュア計算プロトコルの実行結果についての情報等)が、ストレージ装置919に格納されてよい。
通信装置921は、例えば、通信網(ネットワーク)927に接続するための通信デバイス等で構成された通信インターフェースである。通信装置921は、例えば、有線若しくは無線LAN(Local Area Network)、Bluetooth(登録商標)又はWUSB(Wireless USB)用の通信カード等である。また、通信装置921は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ又は各種通信用のモデム等であってもよい。この通信装置921は、例えば、インターネットや他の通信機器との間で、例えばTCP/IP等の所定のプロトコルに則して信号等を送受信することができる。また、通信装置921に接続されるネットワーク927は、有線又は無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信又は衛星通信等であってもよい。本実施形態では、例えば、図4及び図5に示す入力者D、Dと計算パーティP、P、Pとの間での通信や計算パーティP、P、P間での通信、図6に示す情報処理装置10と演算処理装置20との間の通信が、通信装置921によってネットワーク927を介して実行されてよい。
ドライブ923は、記録媒体用リーダライタであり、情報処理装置900に内蔵、あるいは外付けされる。ドライブ923は、装着されている磁気ディスク、光ディスク、光磁気ディスク又は半導体メモリ等のリムーバブル記録媒体929に記録されている情報を読み出して、RAM905に出力する。また、ドライブ923は、装着されている磁気ディスク、光ディスク、光磁気ディスク又は半導体メモリ等のリムーバブル記録媒体929に情報を書き込むことも可能である。リムーバブル記録媒体929は、例えば、DVDメディア、HD−DVDメディア、Blu−ray(登録商標)メディア等である。また、リムーバブル記録媒体929は、コンパクトフラッシュ(登録商標)(CompactFlash:CF)、フラッシュメモリ又はSDメモリカード(Secure Digital memory card)等であってもよい。また、リムーバブル記録媒体929は、例えば、非接触型ICチップを搭載したICカード(Integrated Circuit card)又は電子機器等であってもよい。本実施形態では、例えば上述したようなセキュア計算プロトコルに係る各種の情報が、ドライブ923によってリムーバブル記録媒体929から読み出されたり、リムーバブル記録媒体929に書き込まれたりしてもよい。
接続ポート925は、機器を情報処理装置900に直接接続するためのポートである。接続ポート925の一例として、USB(Universal Serial Bus)ポート、IEEE1394ポート及びSCSI(Small Computer System Interface)ポート等がある。接続ポート925の別の例として、RS−232Cポート、光オーディオ端子及びHDMI(登録商標)(High−Definition Multimedia Interface)ポート等がある。この接続ポート925に外部接続機器931を接続することで、情報処理装置900は、外部接続機器931から直接各種のデータを取得したり、外部接続機器931に各種のデータを提供したりする。本実施形態では、例えば上述したようなセキュア計算プロトコルに係る各種の情報が、接続ポート925を介して外部接続機器931から取得されたり、外部接続機器931に出力されたりしてもよい。
以上、本実施形態に係る情報処理装置900の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
なお、上述のような本実施形態に係る情報処理装置900の各機能を実現するためのコンピュータプログラムを作製し、PC等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ等である。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信されてもよい。
(7.プロトコル)
上述した入力値分配プロトコル、加算プロトコル、乗算プロトコル、再分配プロトコル、出力値復号プロトコル及び分散値乗算プロトコルにおける具体的な処理について以下に示す。ただし、以下に示す各プロトコルは、上述した非特許文献1に対応するものであり、他のセキュア計算プロトコルにおいては、当該他のセキュア計算プロトコルの様式に応じたプロトコルが適用され得る。
(入力値分配プロトコル)
<u>←Share(u)
Data:入力値u(∈Z2^n
Result:u=u+u+uとなる分散値<u>=(u,u,u
(u,u,uは、P,P,Pがそれぞれ有する分散値)
1.入力者はランダム値u←Z,u←Zを生成
2.入力者はu←u−u−uを計算
3.u(i=1,2,3)を入力者からPに送信
(加算プロトコル)
<w>←Add(<u>,<v>)
Data:P,P,Pが有する分散値<u>,<v>
Result:w=u+vとなる分散値<w>
1.Pはw←u+vを計算
2.Pはw←u+vを計算
3.Pはw←u+vを計算
4.<w>を返す
(乗算プロトコル)
<w’>←Mult(<u>,<v>)
Data:P,P,Pが有する分散値<u>,<v>
Result:w’=uvとなる分散値<w’>
1.<u’>←Reshare(<u>)
2.<v’>←Reshare(<v>)
3.PはPにu’とv’を送信
4.PはPにu’とv’を送信
5.PはPにu’とv’を送信
6.Pはw←u’v’+u’v’+u’v’を計算
7.Pはw←u’v’+u’v’+u’v’を計算
8.Pはw←u’v’+u’v’+u’v’を計算
9.<w’>←Reshare(<w>)を返す
(再分配プロトコル)
<w>←Reshare(<u>)
Data:P,P,Pが有する分散値<u>
Result:w=uとなる分散値<w>
1.Pはランダム値r12←Zを生成
2.Pはランダム値r23←Zを生成
3.Pはランダム値r31←Zを生成
4.全ての値*ijをPからPに送信
5.Pはw←u+r12−r31を計算
6.Pはw←u+r23−r12を計算
7.Pはw←u+r31−r23を計算
8.<w>を返す
(出力値復号プロトコル)
w←Decode(<w>)
Data:P,P,Pが有する分散値<w>=(w,w,w
Result:w=w+w+w
1.w(i=1,2,3)をPから出力値取得者に送信
2.出力値取得者はw=w+w+wを計算
(分散値乗算プロトコル)
<w>←Mult2(<u>,<v>)
Data:P,P,Pが有する分散値<u>,<v>
Result:w=uvとなる分散値<w>
1.PはPにuとvを送信
2.PはPにuとvを送信
3.PはPにuとvを送信
4.Pはw←u+u+uを計算
5.Pはw←u+u+uを計算
6.Pはw←u+u+uを計算
(8.補足)
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)複数の入力値に基づいて複数の演算処理装置によって出力値が算出されるセキュア計算プロトコルに基づいて、前記入力値の秘匿性を保つために実行される秘匿性確保プロトコルを含まない第1の計算プロトコルを生成する第1計算プロトコル生成部と、前記第1の計算プロトコルにおける前記秘匿性が確保される位置に前記秘匿性確保プロトコルを配置することにより第2の計算プロトコルを生成する第2計算プロトコル生成部と、を備える、情報処理装置。
(2)前記第2計算プロトコル生成部は、前記第1の計算プロトコルにおける前記演算処理装置間での通信を伴う処理の少なくともいずれかの後に、前記秘匿性確保プロトコルを配置する、前記(1)に記載の情報処理装置。
(3)前記第2計算プロトコル生成部は、前記第1の計算プロトコルにおける前記演算処理装置間での通信を伴う第1の処理の後に、前記演算処理装置間での通信を伴う第2の処理が行われる場合に、前記第1の処理と前記第2の処理との間に前記秘匿性確保プロトコルを配置する、前記(1)又は(2)に記載の情報処理装置。
(4)複数の前記演算処理装置は、複数の前記入力値のそれぞれが分配された値である分散値をそれぞれ有し、当該分散値を用いて前記セキュア計算プロトコルを実行する、前記(1)〜(3)のいずれか1項に記載の情報処理装置。
(5)前記秘匿性確保プロトコルは、前記入力値の値を保持しつつ前記分散値を異なる分散値に変換する、再分配プロトコルである、前記(4)に記載の情報処理装置。
(6)前記第2計算プロトコル生成部は、前記第1の計算プロトコルにおける前記演算処理装置間での前記分散値の通信を伴う処理の少なくともいずれかの後に、前記再分配プロトコルを配置する、前記(5)に記載の情報処理装置。
(7)前記第2計算プロトコル生成部は、前記第1の計算プロトコルにおける前記演算処理装置間での前記分散値の通信を伴う第1の処理の後に、前記演算処理装置間での前記分散値の通信を伴う第2の処理が行われる場合に、前記第1の処理と前記第2の処理との間に前記秘匿性確保プロトコルを配置する、前記(5)又は(6)に記載の情報処理装置。
(8)前記第1計算プロトコル生成部は、前記セキュア計算プロトコルにおいて計算される計算式を所定の演算処理に分解する計算式分解部と、分解された前記計算式に対して、前記所定の演算処理に対応する演算プロトコルであって前記秘匿性確保プロトコルを含まないプロトコルを割り当てる演算プロトコル割当部と、を含む、前記(1)〜(7)のいずれか1項に記載の情報処理装置。
(9)前記計算式分解部は、前記計算式を、最小単位の演算処理である基本演算処理に分解し、前記演算プロトコル割当部は、分解された前記計算式に対して、前記基本演算処理に対応する基本演算プロトコルを割り当てる、前記(8)に記載の情報処理装置。
(10)前記基本演算処理は、整数環上の加算又は乗算である、前記(9)に記載の情報処理装置。
(11)前記演算処理装置と前記情報処理装置とは、一体的に構成される、前記(1)〜(10)のいずれか1項に記載の情報処理装置。
(12)前記入力値は、互いに異なるシステムにおいて管理される医療情報であり、前記セキュア計算プロトコルでは、当該医療情報の統計値が計算される、前記(1)〜(11)のいずれか1項に記載の情報処理装置。
(13)前記入力値は、互いに異なるシステムにおいて管理されるユーザの商品の購入履歴情報であり、前記セキュア計算プロトコルでは、当該購入履歴情報に基づいて所定の前記ユーザの嗜好が解析される、前記(1)〜(11)のいずれか1項に記載の情報処理装置。
(14)前記入力値は、オークションにおいて複数の入札者から入力される入札価格情報であり、前記セキュア計算プロトコルでは、当該入札価格情報に基づいて対象商品の落札価格及び落札者の少なくともいずれかが決定される、前記(1)〜(11)のいずれか1項に記載の情報処理装置。
(15)プロセッサが、複数の入力値に基づいて複数の演算処理装置によって出力値が算出されるセキュア計算プロトコルに基づいて、前記入力値の秘匿性を保つために実行される秘匿性確保プロトコルを含まない第1の計算プロトコルを生成することと、プロセッサが、前記第1の計算プロトコルにおける前記秘匿性が確保される位置に前記秘匿性確保プロトコルを配置することにより第2の計算プロトコルを生成することと、を含む、情報処理方法。
(16)コンピュータのプロセッサに、複数の入力値に基づいて複数の演算処理装置によって出力値が算出されるセキュア計算プロトコルに基づいて、前記入力値の秘匿性を保つために実行される秘匿性確保プロトコルを含まない第1の計算プロトコルを生成する機能と、前記第1の計算プロトコルにおける前記秘匿性が確保される位置に前記秘匿性確保プロトコルを配置することにより第2の計算プロトコルを生成する機能と、を実現させる、プログラム。
1、2 セキュア計算システム
10 情報処理装置
20 演算処理装置
30a〜30d 計算パーティ
101 計算式分解部
103 演算プロトコル割当部
104 第1計算プロトコル生成部
105 第2計算プロトコル生成部
201 入力値分配部
203 分散値セキュア計算部
205 出力値計算部


Claims (16)

  1. 複数の入力値に基づいて複数の演算処理装置によって出力値が算出されるセキュア計算プロトコルに基づいて、前記入力値の秘匿性を保つために実行される秘匿性確保プロトコルを含まない第1の計算プロトコルを生成する第1計算プロトコル生成部と、
    前記第1の計算プロトコルにおける前記秘匿性が確保される位置に前記秘匿性確保プロトコルを配置することにより第2の計算プロトコルを生成する第2計算プロトコル生成部と、
    を備える、情報処理装置。
  2. 前記第2計算プロトコル生成部は、前記第1の計算プロトコルにおける前記演算処理装置間での通信を伴う処理の少なくともいずれかの後に、前記秘匿性確保プロトコルを配置する、
    請求項1に記載の情報処理装置。
  3. 前記第2計算プロトコル生成部は、前記第1の計算プロトコルにおける前記演算処理装置間での通信を伴う第1の処理の後に、前記演算処理装置間での通信を伴う第2の処理が行われる場合に、前記第1の処理と前記第2の処理との間に前記秘匿性確保プロトコルを配置する、
    請求項1に記載の情報処理装置。
  4. 複数の前記演算処理装置は、複数の前記入力値のそれぞれが分配された値である分散値をそれぞれ有し、当該分散値を用いて前記セキュア計算プロトコルを実行する、
    請求項1に記載の情報処理装置。
  5. 前記秘匿性確保プロトコルは、前記分散値を異なる分散値に変換する、再分配プロトコルである、
    請求項4に記載の情報処理装置。
  6. 前記第2計算プロトコル生成部は、前記第1の計算プロトコルにおける前記演算処理装置間での前記分散値の通信を伴う処理の少なくともいずれかの後に、前記再分配プロトコルを配置する、
    請求項5に記載の情報処理装置。
  7. 前記第2計算プロトコル生成部は、前記第1の計算プロトコルにおける前記演算処理装置間での前記分散値の通信を伴う第1の処理の後に、前記演算処理装置間での前記分散値の通信を伴う第2の処理が行われる場合に、前記第1の処理と前記第2の処理との間に前記秘匿性確保プロトコルを配置する、
    請求項5に記載の情報処理装置。
  8. 前記第1計算プロトコル生成部は、
    前記セキュア計算プロトコルにおいて計算される計算式を所定の演算処理に分解する計算式分解部と、
    分解された前記計算式に対して、前記所定の演算処理に対応する演算プロトコルであって前記秘匿性確保プロトコルを含まないプロトコルを割り当てる演算プロトコル割当部と、
    を含む、
    請求項1に記載の情報処理装置。
  9. 前記計算式分解部は、前記計算式を、演算の基本単位である基本演算処理に分解し、
    前記演算プロトコル割当部は、分解された前記計算式に対して、前記基本演算処理に対応する基本演算プロトコルを割り当てる、
    請求項8に記載の情報処理装置。
  10. 前記基本演算処理は、整数環上の加算又は乗算である、
    請求項9に記載の情報処理装置。
  11. 前記演算処理装置と前記情報処理装置とは、一体的に構成される、
    請求項1に記載の情報処理装置。
  12. 前記入力値は、互いに異なるシステムにおいて管理される医療情報であり、
    前記セキュア計算プロトコルでは、当該医療情報の統計値が計算される、
    請求項1に記載の情報処理装置。
  13. 前記入力値は、互いに異なるシステムにおいて管理されるユーザの商品の購入履歴情報であり、
    前記セキュア計算プロトコルでは、当該購入履歴情報に基づいて所定の前記ユーザの嗜好が解析される、
    請求項1に記載の情報処理装置。
  14. 前記入力値は、オークションにおいて複数の入札者から入力される入札価格情報であり、
    前記セキュア計算プロトコルでは、当該入札価格情報に基づいて対象商品の落札価格及び落札者の少なくともいずれかが決定される、
    請求項1に記載の情報処理装置。
  15. プロセッサが、複数の入力値に基づいて複数の演算処理装置によって出力値が算出されるセキュア計算プロトコルに基づいて、前記入力値の秘匿性を保つために実行される秘匿性確保プロトコルを含まない第1の計算プロトコルを生成することと、
    プロセッサが、前記第1の計算プロトコルにおける前記秘匿性が確保される位置に前記秘匿性確保プロトコルを配置することにより第2の計算プロトコルを生成することと、
    を含む、情報処理方法。
  16. コンピュータのプロセッサに、
    複数の入力値に基づいて複数の演算処理装置によって出力値が算出されるセキュア計算プロトコルに基づいて、前記入力値の秘匿性を保つために実行される秘匿性確保プロトコルを含まない第1の計算プロトコルを生成する機能と、
    前記第1の計算プロトコルにおける前記秘匿性が確保される位置に前記秘匿性確保プロトコルを配置することにより第2の計算プロトコルを生成する機能と、
    を実現させる、プログラム。


JP2014073262A 2014-03-31 2014-03-31 情報処理装置、情報処理方法及びプログラム Pending JP2015194959A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014073262A JP2015194959A (ja) 2014-03-31 2014-03-31 情報処理装置、情報処理方法及びプログラム
US14/663,789 US9607173B2 (en) 2014-03-31 2015-03-20 Information processing apparatus, information processing method, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014073262A JP2015194959A (ja) 2014-03-31 2014-03-31 情報処理装置、情報処理方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2015194959A true JP2015194959A (ja) 2015-11-05

Family

ID=54190809

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014073262A Pending JP2015194959A (ja) 2014-03-31 2014-03-31 情報処理装置、情報処理方法及びプログラム

Country Status (2)

Country Link
US (1) US9607173B2 (ja)
JP (1) JP2015194959A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017119211A1 (ja) * 2016-01-07 2017-07-13 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
JP2017203855A (ja) * 2016-05-10 2017-11-16 Kddi株式会社 演算システム、演算方法及び演算プログラム
WO2018135334A1 (ja) * 2017-01-19 2018-07-26 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JPWO2017122437A1 (ja) * 2016-01-12 2018-11-08 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
JP2019205157A (ja) * 2018-04-04 2019-11-28 エスアールアイ インターナショナル テンプレートのプライバシー及び非対話型の再登録を伴う生体計測認証
JP2020532771A (ja) * 2017-08-30 2020-11-12 インファー,インク. 高精度プライバシ保護実数値関数評価
US11023569B2 (en) 2018-05-29 2021-06-01 Sri International Secure re-enrollment of biometric templates using functional encryption
JP7471425B2 (ja) 2020-12-14 2024-04-19 グーグル エルエルシー 秘密共有を使用するフィードバックコントローラ
KR102667837B1 (ko) 2017-08-30 2024-05-21 인퍼, 인코포레이티드 고정밀 프라이버시 보호 실가 함수 평가

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6023858B1 (ja) * 2015-08-17 2016-11-09 日本電信電話株式会社 計算システム、計算装置、その方法、およびプログラム
US11042358B2 (en) * 2016-08-18 2021-06-22 Nec Corporation Secure computation system, secure computation method, secure computation apparatus, distribution information generation apparatus, and methods and programs therefor
CN112463332A (zh) * 2020-12-01 2021-03-09 华控清交信息科技(北京)有限公司 一种数据处理方法、密文计算系统和用于数据处理的装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140372769A1 (en) * 2013-06-18 2014-12-18 Sap Ag Automatic Protocol Selection in Mixed-Protocol Secure Computation

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2017119211A1 (ja) * 2016-01-07 2018-10-25 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
WO2017119211A1 (ja) * 2016-01-07 2017-07-13 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
US10650083B2 (en) 2016-01-12 2020-05-12 Sony Corporation Information processing device, information processing system, and information processing method to determine correlation of data
JPWO2017122437A1 (ja) * 2016-01-12 2018-11-08 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
JP2017203855A (ja) * 2016-05-10 2017-11-16 Kddi株式会社 演算システム、演算方法及び演算プログラム
WO2018135334A1 (ja) * 2017-01-19 2018-07-26 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2020532771A (ja) * 2017-08-30 2020-11-12 インファー,インク. 高精度プライバシ保護実数値関数評価
JP7272363B2 (ja) 2017-08-30 2023-05-12 インファー,インク. 高精度プライバシ保護実数値関数評価
KR102667837B1 (ko) 2017-08-30 2024-05-21 인퍼, 인코포레이티드 고정밀 프라이버시 보호 실가 함수 평가
JP2019205157A (ja) * 2018-04-04 2019-11-28 エスアールアイ インターナショナル テンプレートのプライバシー及び非対話型の再登録を伴う生体計測認証
US11223478B2 (en) 2018-04-04 2022-01-11 Sri International Biometric authentication with template privacy and non-interactive re-enrollment
US11023569B2 (en) 2018-05-29 2021-06-01 Sri International Secure re-enrollment of biometric templates using functional encryption
JP7471425B2 (ja) 2020-12-14 2024-04-19 グーグル エルエルシー 秘密共有を使用するフィードバックコントローラ

Also Published As

Publication number Publication date
US9607173B2 (en) 2017-03-28
US20150278547A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
JP2015194959A (ja) 情報処理装置、情報処理方法及びプログラム
Khalid et al. Privacy-preserving artificial intelligence in healthcare: Techniques and applications
Li et al. Machine learning–based interpretation and visualization of nonlinear interactions in prostate cancer survival
CN111898137A (zh) 一种联邦学习的隐私数据处理方法、设备及系统
Huang et al. {Privacy-Preserving} Applications on Smartphones
JP2019215512A (ja) 予測モデル分散方法および予測モデル分散システム
JP2018054765A (ja) データ処理装置、データ処理方法、およびプログラム
Parekh et al. Designing a cloud based framework for healthcare system and applying clustering techniques for region wise diagnosis
Li et al. Review on security of federated learning and its application in healthcare
CN111709051A (zh) 数据处理方法、装置、系统、计算机存储介质及电子设备
Singh et al. Cloud-based patient health information exchange system using blockchain technology
CN106909617A (zh) 一种基于数据拟合的个性化隐私信息检索方法
Srivastava et al. Digital Transformation of Healthcare: A blockchain study
Jan et al. IEFHAC: Image encryption framework based on hessenberg transform and chaotic theory for smart health
JP2014211607A (ja) 情報処理装置およびその方法
CN114006769A (zh) 基于横向联邦学习的模型训练方法及其设备
Dewangan et al. Patient feedback based physician selection in blockchain healthcare using deep learning
Priyadarshini et al. Medchain for Securing Data in Decentralized Healthcare System Using Dynamic Smart Contracts
Moghaddasi et al. Applications of cloud computing in health systems
JP7076167B1 (ja) 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム
Achar et al. Confimizer: A novel algorithm to optimize cloud resource by confidentiality-cost trade-off using bilstm network
CN115346668A (zh) 健康风险等级评估模型的训练方法及装置
Mohindra et al. Industry cloud: A driver for enterprise transformation
Gowri et al. Secured machine learning using Approximate homomorphic scheme for healthcare
US20170193241A1 (en) Enhancing privacy of sensor data from devices using ephemeral cohorts