JP7359212B2 - 秘密計算システム、秘密計算方法、および秘密計算プログラム - Google Patents

秘密計算システム、秘密計算方法、および秘密計算プログラム Download PDF

Info

Publication number
JP7359212B2
JP7359212B2 JP2021538603A JP2021538603A JP7359212B2 JP 7359212 B2 JP7359212 B2 JP 7359212B2 JP 2021538603 A JP2021538603 A JP 2021538603A JP 2021538603 A JP2021538603 A JP 2021538603A JP 7359212 B2 JP7359212 B2 JP 7359212B2
Authority
JP
Japan
Prior art keywords
secure
cache unit
secret
calculation
result
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.)
Active
Application number
JP2021538603A
Other languages
English (en)
Other versions
JPWO2021024398A1 (ja
Inventor
隆夫 竹之内
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2021024398A1 publication Critical patent/JPWO2021024398A1/ja
Application granted granted Critical
Publication of JP7359212B2 publication Critical patent/JP7359212B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • 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/602Providing cryptographic facilities or services
    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Description

本発明は、秘密計算システム、秘密計算方法、および秘密計算プログラムに関するものである。
秘密計算方法は、関与する第3者に対して計算過程等を秘匿しながら計算結果を提供することができる技術である。秘密計算方法では、データをクラウドのような第3者が管理するサーバに保持した状態のデータに対して演算を実行する。なお、秘密計算方法は、任意の計算を実行するための基本処理の方法が知られている。第3者は、計算の基礎となるデータや計算過程等を知ることがないので、個人情報のような機微な情報に対する分析処理をアウトソースするために用いることができる。
代表的な秘密計算方法として、秘密分散を利用した方式と準同型暗号を利用した方式が知られている。秘密分散方式では、秘匿すべき情報をシェアと呼ばれるデータに分割して複雑のサーバに格納する。そして、秘密分散方式では、分割されたままのデータ、すなわち、秘匿処理されたままのデータを用いて任意の計算を実行することができる。非特許文献1には、秘密分散方式の計算方法の代表例が記載されている。また、準同型暗号方式も、秘匿処理されたままのデータを用いて計算を実行することができる。非特許文献2には、準同型暗号方式の計算方法の代表例が記載されている。
M. Ben Or, S. Goldwasser, and A. Wigderson. "Completeness theorems for non-cryptographic fault tolerant distributed computation (extended abstract)." T. E. Gamal. "A public key cryptosystem and a signature scheme based on discrete logarithms", IEEE Transactions on Information Theory, 31(4) 469-472, 1985.
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
ところで、秘密計算方法では多くの通信を行うため、通常の計算方法よりも数10~数100倍程度遅くなってしまう。特に、秘密分散を利用した秘密計算では、秘匿すべき情報をシェアと呼ばれるデータに分割して複数のサーバに格納するので、複数のサーバ間の通信量の増大する程度が大きい。
サーバ間の通信量を削減したり、途中の計算結果を有効活用したりする一般的技術としてキャッシュが知られている。しかしながら、一般に秘密計算では、秘匿処理された状態のデータは秘匿処理されていない状態のデータよりもデータ容量が大きく、キャッシュに用いる容量も多く必要とする。また、秘密分散を利用した秘密計算では、各サーバにキャッシュを備える必要があるので、単純に考えても秘匿すべき情報を分割するシェアの数の分だけ、キャッシュに用いる容量も多く必要となる。
本発明の目的は、上述した課題を鑑み、必要となるキャッシュの容量を低減することに寄与する秘密計算システム、秘密計算方法、および秘密計算プログラムを提供することである。
本発明の第1の視点では、秘匿処理されたデータを用いて計算処理を行った結果を前記秘匿処理したまま保持する秘匿キャッシュ部と、前記秘匿処理されたデータを用いて計算処理を行った結果を前記秘匿処理せず保持する通常キャッシュ部と、前記計算処理の結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第1秘匿性判断部と、を備えることを特徴とする秘密計算システムが提供される。
本発明の第2の視点では、秘匿処理されたデータを用いて計算処理を行った結果を、前記秘匿処理したまま保持する秘匿キャッシュ部と前記秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムを用いて行う秘密計算方法であって、前記秘匿処理されたデータを用いて計算処理を行う秘密計算ステップと、前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する秘匿性判断ステップと、を有する秘密計算方法が提供される。
本発明の第3の視点では、秘匿処理されたデータを用いて計算処理を行った結果を、前記秘匿処理したまま保持する秘匿キャッシュ部と前記秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムが実行する秘密計算プログラムであって、前記秘匿処理されたデータを用いて計算処理を行う秘密計算ステップと、前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する秘匿性判断ステップと、を有する秘密計算プログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
本発明の各視点によれば、必要となるキャッシュの容量を低減することに寄与する秘密計算システム、秘密計算方法、および秘密計算プログラムを提供することができる。
図1は、第1実施形態に係る秘密計算システムの概略構成を示す図である。 図2は、秘密計算方法の手順の例を示す図である。 図3は、秘密計算方法の手順の例を示す図である。 図4は、秘密計算方法の全体の手順の例を示す図である。 図5は、具体例の説明に用いる秘匿データを示す図である。 図6は、秘匿キャッシュに保持すべきデータを示す図である。 図7は、第2実施形態に係る秘密計算システムの概略構成を示す図である。 図8は、各サーバのハードウェア構成例を示す図である。
以下、図面を参照しながら、本発明の実施形態について説明する。ただし、以下に説明する実施形態により本発明が限定されるものではない。また、各図面において、同一または対応する要素には適宜同一の符号を付している。さらに、図面は模式的なものであり、各要素の寸法の関係、各要素の比率などは、現実のものとは異なる場合があることに留意する必要がある。図面の相互間においても、互いの寸法の関係や比率が異なる部分が含まれている場合がある。
[第1実施形態]
図1は、第1実施形態に係る秘密計算システムの概略構成を示す図である。図1に示すように、秘密計算システム10は、秘匿データ保持部11と、秘匿キャッシュ部12と、通常キャッシュ部13と、演算装置14とを備えている。秘密計算システム10は、データ提供者から提供を受けた秘匿データを秘匿したまま計算し、秘匿データの内容および計算過程を秘匿したまま計算結果のみをデータ分析者へ提供することが可能なシステムである。
なお、データ分析者は、データ提供者の構成員となる場合もある。すなわち、データ提供者がA氏、B氏、C氏である場合、A氏がデータ分析者となることがある。この場合、A氏は、B氏およびC氏から提供されたデータの内容を知ることなくB氏およびC氏から提供されたデータを含めた分析をすることができる。
秘匿データ保持部11は、データ提供者から提供された秘匿データを秘匿処理された状態で保持する記憶装置である。例えば、データ提供者から提供された秘匿データとは、個人情報が該当する。ただし、秘匿データの内容は、必ずしも個人情報に限定されず、秘匿することを希望するデータを秘匿データとして扱うことができる。
秘匿データ保持部11は、例えば秘密分散方式を用いる場合、データ提供者から提供された秘匿データをシェアと呼ばれるデータに分割して複数のサーバに格納する。したがって、図1では秘匿データ保持部11が単一の装置ないし機器であるように示されているが、同図は機能ブロックとして記載しており、物理的実体を示すものではない。一方、秘匿データ保持部11は、例えば準同型暗号方式を用いる場合、一つのサーバ内に設けられた記憶装置として構成することが可能である。
秘匿キャッシュ部12は、秘匿データ保持部11に保持されている秘匿データを用いて計算処理を行った結果を秘匿処理したまま保持するように構成した記憶装置である。なお、秘匿キャッシュ部12は、秘匿データ保持部11の記憶領域のうち一部を用いる構成とすることが可能であるが、秘匿データ保持部11とは物理的に別個の記憶装置として構成することも可能である。秘匿キャッシュ部12を秘匿データ保持部11とは物理的に別個の記憶装置として構成する場合、秘匿キャッシュ部12をより読み書きの処理速度が高いなどキャッシュの機能を実現するために好適な構成を採用することができる。
また、秘匿キャッシュ部12は、秘匿データ保持部11に保持されている秘匿データを用いて計算処理を行った結果を秘匿処理したまま保持するだけでなく、計算処理を行った結果と計算処理とを関連付けて保持する。そして、計算処理を検索キーとして、計算処理を行った結果を読み出すことができるようにデータを保持する。
通常キャッシュ部13は、秘匿データ保持部11に保持されている秘匿データを用いて計算処理を行った結果を秘匿処理せず保持する通常の記憶装置である。ここで、秘匿処理せず保持するとは、秘匿データ保持部11に保持されている秘匿データに処理されている秘匿処理を行わないという意味である。すなわち、秘匿データに処理されている秘匿処理とは異なる秘匿処理を施すことを含み得る。逆に言えば、通常キャッシュ部13に保持されるデータは、いわゆる平文に限定されない。例えば、秘匿キャッシュ部12と通常キャッシュ部13との間で、秘匿処理の種類を変えたり、暗号強度の高低に差を付けたりする運用も可能である。
また、通常キャッシュ部13は、秘匿データ保持部11の記憶領域のうち一部を用いる構成とすることが可能であるが、秘匿データ保持部11とは物理的に別個の記憶装置として構成することも可能である。例えば、準同型暗号方式を用いる場合、準同型暗号で暗号化しなければよいので、秘匿データ保持部11の記憶領域のうち一部に準同型暗号で暗号化しないデータをキャッシュすることが可能である。一方、秘密分散方式の場合、秘匿データ保持部11および秘匿キャッシュ部12は複数のサーバに分散して設けられる。したがって、通常キャッシュ部13は、どれか一つの秘匿キャッシュ部12のサーバに設ける可能性を排除するものではないが、秘匿キャッシュ部12を備えるサーバとは異なる計算装置に設けることが好ましい。
通常キャッシュ部13は、秘匿データ保持部11に保持されている秘匿データを用いて計算処理を行った結果を秘匿処理したまま保持するだけでなく、計算処理を行った結果と計算処理とを関連付けて保持する。そして、計算処理を検索キーとして、計算処理を行った結果を読み出すことができるようにデータを保持する。
演算装置14は、秘匿処理されたデータを用いて計算処理(いわゆる秘密計算)を行うように構成した演算装置である。さらに、演算装置14は、この計算処理の結果を秘匿キャッシュ部12に保持するか、通常キャッシュ部13に保持するかを判断する。
演算装置14は、汎用マイクロプロセッサを用いて構成することも可能であるが、秘密計算を好適に処理することが可能なように特別に構成したマイクロプロセッサを用いてもよい。また、演算装置14は、汎用マイクロプロセッサと秘密計算用のマイクロプロセッサとを組み合わせて構成することも可能である。また、秘密計算システム10を同一のサーバ内に構成した場合は、演算装置14を一つとすることも可能であるが、秘密分散方式を用いて複数のサーバの各々に秘匿データ保持部11および秘匿キャッシュ部12を設ける構成とした場合、各サーバに演算装置14を設けることになる。さらに、秘匿キャッシュ部12を備えるサーバとは異なる計算装置に通常キャッシュ部13を設ける場合、通常キャッシュ部13を設ける計算装置にも演算装置14を備える。秘匿キャッシュ部12を備えるサーバとは異なる計算装置に設けられた演算装置14は、秘匿処理されたデータを用いて計算処理(いわゆる秘密計算)を行う必要はないが、計算処理の結果を秘匿キャッシュ部12に保持するか、通常キャッシュ部13に保持するかを判断することがある。
(秘密計算方法)
ここで、秘匿処理されたデータを用いて計算処理を行った結果を、秘匿処理したまま保持する秘匿キャッシュ部と秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムを用いて行う秘密計算方法について説明する。なお、以下で説明する秘密計算方法自体は、秘匿処理したまま保持する秘匿キャッシュ部と秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムであれば実施可能であるが、説明を容易とするために図1に示した秘密計算システム10の構成を参照しながら説明するものとする。
図2および図3は、秘密計算方法の手順の例を示す図である。秘密計算方法は、秘匿されたデータを用いて計算処理を行う秘密計算ステップ(ステップA)と、秘密計算ステップの結果を秘匿キャッシュ部12に保持するか、通常キャッシュ部13に保持するかを判断する秘匿性判断ステップ(ステップB)とを有すればよいが、秘密計算ステップ(ステップA)と秘匿性判断ステップ(ステップB)との順序には2通りある。
図2に示すように、秘匿性判断ステップ(ステップB)が秘密計算ステップ(ステップA)の後に行われることもあれば、図3に示すように、秘匿性判断ステップ(ステップB)が秘密計算ステップ(ステップA)の前に行われることもあり得る。
例えば、個人情報を秘匿して秘密計算をする場合、計算結果がk匿名性を充足しているか否かは、計算結果を用いて判断をする必要があるので、図2に示すように、秘匿性判断ステップ(ステップB)が秘密計算ステップ(ステップA)の後に行われる。一方、平均値や合計値などを計算する場合、計算結果を用いて判断をする必要がないので、図3に示すように、秘匿性判断ステップ(ステップB)が秘密計算ステップ(ステップA)の前に行われる。その他、計算結果を用いて判断をする必要がある例として、k匿名性の他に、l多様性などがある。一方、計算結果を用いて判断をする必要がない例として、差分プライバシーを満たす程度のノイズを付加する方法が考えられる。
k匿名性とは、準識別子(同一属性)のデータがk件以上になることをいう。母集団にも依存するが、例えば、110歳の人というデータは、一般にk=1となってしまう個人情報である。一方、80歳の人というデータは、一般にkが十分に大きい。したがって、年齢が85歳以上というデータは個人情報に該当すると判断し、年齢が85歳より若いというデータは個人情報に該当しないと判断するのが一つの判断基準例となる。一般に最大値や最小値は、k=1となってしまうが、予め属性ごとに指定された値以上または以下でなければ、個人情報に該当しないと判断してもよい場合がある。
また、一般に複数の人の平均値や合計値などは、個人を識別することができないデータであるので、個人情報に該当しないと判断することができる。しかしながら、1名の平均値や合計値などは個人情報となるのはもちろんのこと、2名の平均値や合計値なども個人の識別につながる可能性が高い。k匿名性におけるkが十分に大きい(例えば10以上の)データの平均値や合計値でなければ、たとえ平均値や合計値などの値であっても個人情報であると判断することもできる。
なお、l多様性は、同じ準識別子を持つデータ群が少なくともl個の異なる情報を持つことを要求する。l多様性は、同時にl匿名性も満たすので、k匿名性よりも強力な判断基準である。
上記のように個人情報に該当するか否か、すなわち秘匿性の判断は、母集団の大きさや取り扱うデータの属性に依存する問題であるので、秘密計算システム10の管理者ないし設計者が適宜設定する。
また、秘匿キャッシュ部12または通常キャッシュ部13のどちらに保持するかの判断として、個人情報などの秘匿データの性質だけではなく、技術的観点からの判断を加味することも可能である。例えば、秘匿キャッシュ部12の容量に応じたしきい値を用いて、秘匿キャッシュ部12に保持するか、通常キャッシュ部13に保持するかを判断するとしてもよい。また、計算処理の処理時間が大きいものを優先的に、秘匿キャッシュ部12に保持するように判断するとしてもよい。
図4は、秘密計算方法の全体の手順の例を示す図である。図4に示される秘密計算方法の全体の手順は、図2および図3に示された秘密計算方法を一部に含むものであるが、図2および図3のいずれであってもよい。
図4に示すように、秘密計算方法の全体の手順では、最初に計算処理の分割が行われる(ステップS1)。通常の計算処理は、複数の計算処理の積み重ねとなっており、ここではデータ分析者から要求された計算処理を分割する。例えば、ある条件を満たす人数を計算するには、ある条件を満たす人を抽出する処理と、当該抽出した人の数を合算する処理とに分割することができる。
そして、上記のように分割された各計算処理の結果がキャッシュに保持されているかをチェックする(ステップS2)。ここで、キャッシュに保持されているかのチェックは、秘匿キャッシュ部12および通常キャッシュ部13の両方を含む。また、秘匿キャッシュ部12および通常キャッシュ部13は、計算処理を行った結果と計算処理とを関連付けて保持しているので、キャッシュに保持されているかをチェックする方法は、分割された各計算処理を検索キーとしてチェックする。
計算処理の結果がキャッシュに保持されている場合(ステップS2;Y)、キャッシュに保持されている計算処理の結果を利用する(ステップS3)。一方、計算処理の結果がキャッシュに保持されていない場合(ステップS2;N)、秘密計算を実行することになる。
ステップS4における秘密計算および秘匿性判断の実行については、上記説明したように、図2に示すように、秘匿性判断ステップ(ステップB)が秘密計算ステップ(ステップA)の後に行われることもあれば、図3に示すように、秘匿性判断ステップ(ステップB)が秘密計算ステップ(ステップA)の前に行われることもあり得る。すなわち、ステップS4における秘密計算および秘匿性判断の実行については、図2に示した秘密計算方法または図3に示した秘密計算方法のいずれかを適宜実行する。なお、データ分析者から要求された計算処理はステップS1にて分割されているが、ステップS4における秘密計算および秘匿性判断の実行は、分割された計算処理ごとに図2に示した秘密計算方法または図3に示した秘密計算方法のいずれかを選択することが可能である。
そして、ステップS4における結果を秘匿性判断ステップ(ステップB)にしたがって、秘匿キャッシュ部12または通常キャッシュ部13に保持する(ステップS5)。なお、最終的な計算処理の結果は、秘匿キャッシュ部12または通常キャッシュ部13に保持するだけではなく、データ分析者に対しても提供する。
(具体例)
ここで、上記秘密計算方法の具体例について説明する。ここで説明する具体例は、3つの計算処理が順次要求された場合の計算処理とキャッシュとの関係を示している。なお、以下の説明では、説明の容易性のため、図4に示したステップを参照する。
要求される3つの計算処理は、以下の通りであり、これら要求処理を図5に示される秘匿データに関して行う。
要求処理A:年収が100以上の男性の平均体重を計算する。
要求処理B:年収が100以上の男性の平均年収を計算する。
要求処理C:年収が100以上の男性の人数を計算する。
まず、要求処理Aを各計算処理に分割する(ステップS1)。ここでは、例えば、以下のように分割する。
計算処理A1:年収が100以上の男性を抽出する。
計算処理A2:年収が100以上の男性の体重を合算する。
計算処理A3:年収が100以上の男性の人数を合算する。
計算処理A4:年収が100以上の男性の体重の合計を年収が100以上の男性の人数で割る。
次に、各計算処理の結果がキャッシュに保持されているかをチェックする(ステップS2)。しかしながら、ここでは要求処理Aが最初の処理であるとし、全ての計算処理の結果がキャッシュに保持されていないものと考える。
そこで、各計算処理について秘密計算および秘匿性判断を実行する(ステップS4)。
計算処理A1の結果は、図6に示されるようなリストであり、これは個人情報に該当するので秘匿すべきものと判断する。
計算処理A2の結果は、「150」であり、これは個人情報に該当しないので、秘匿する必要がないと判断する。
計算処理A3の結果は、「2」であり、これは個人情報に該当しないので、秘匿する必要がないと判断する。
計算処理A4の結果は、「75」であり、これは個人情報に該当しないので、秘匿する必要がないと判断する。
上述したように一つの判断基準例としては、例えば合計平均といった複数の人のデータの集計は非個人情報となり、秘匿性なしとされる。
そして、上記計算処理の結果を、秘匿キャッシュ部12または通常キャッシュ部13に保持する(ステップS5)。具体的には、計算処理A1の結果は、個人情報なので秘匿キャッシュ部12に保持し、計算処理A2―4の結果は、個人情報ではないので、通常キャッシュ部13に保持する。なお、要求処理Aの結果は、計算処理A4の結果「75」であるので、これをデータ分析者に提供する。
次に、要求処理Bが要求されるとする。そこで、要求処理Bを各計算処理に分割する(ステップS1)。ここでは、例えば、以下のように分割する。
計算処理B1:年収が100以上の男性を抽出する。
計算処理B2:年収が100以上の男性の年収を合算する。
計算処理B3:年収が100以上の男性の人数を合算する。
計算処理B4:年収が100以上の男性の年収の合計を年収が100以上の男性の人数で割る。
次に、各計算処理の結果がキャッシュに保持されているかをチェックする(ステップS2)。すると、計算処理B1と計算処理B3は、計算処理A1と計算処理A3と同じ処理であるので、結果がキャッシュされている。そこで、計算処理B2と計算処理B4は、計算処理を実行せずキャッシュを利用する(ステップS3)。
一方、計算処理B2と計算処理B4は、キャッシュされていないので、秘密計算および秘匿性判断を実行する(ステップS4)。
計算処理B2の結果は、「220」であり、これは個人情報に該当しないので、秘匿する必要がないと判断する。
計算処理B4の結果は、「110」であり、これは個人情報に該当しないので、秘匿する必要がないと判断する。
そして、上記計算処理の結果を、秘匿キャッシュ部12または通常キャッシュ部13に保持する(ステップS5)。具体的には、計算処理B2およびB4の結果は、個人情報ではないので、通常キャッシュ部13に保持する。なお、要求処理Bの結果は、計算処理B4の結果「110」であるので、これをデータ分析者に提供する。
次に、要求処理Cが要求されるとする。そこで、要求処理Cを各計算処理に分割する(ステップS1)。ここでは、例えば、以下のように分割する。
計算処理C1:年収が100以上の男性を抽出する。
計算処理C2:年収が100以上の男性の人数を合算する。
次に、各計算処理の結果がキャッシュに保持されているかをチェックする(ステップS2)。すると、計算処理C1と計算処理C2は、計算処理A1と計算処理A3と同じ処理であるので、結果がキャッシュされている。そこで、計算処理C1と計算処理C2は、計算処理を実行せずキャッシュを利用する(ステップS3)。
さらに、要求処理Cでは、分割した全ての計算処理がキャッシュされていたので、秘密計算および秘匿性判断を実行する必要もない。そこで、要求処理Cの結果は、計算処理C2の結果「2」であるので、これをデータ分析者に提供する。
このように、秘匿キャッシュ部12と通常キャッシュ部13とを備える秘密計算システム10を用いて行う秘密計算方法では、計算処理の結果を秘匿キャッシュ部12に保持するか、通常キャッシュ部13に保持するかを判断することで、必要となるキャッシュの容量を低減することに寄与することが可能である。一般に秘密計算では、秘匿処理された状態のデータは秘匿処理されていない状態のデータよりもデータ容量が大きく、キャッシュに用いる容量も多く必要とする。そこで、秘匿キャッシュ部12を用いる必要がない計算処理の結果を通常キャッシュ部13にキャッシュすることで、秘匿キャッシュ部12および通常キャッシュ部13の全体のキャッシュを少なくすることが可能である。
[第2実施形態]
図7は、第2実施形態に係る秘密計算システムの概略構成を示す図である。図7に示すように、秘密計算システム100は、3つの秘密計算サーバ110,120,130と、フロントエンドサーバ140とを備えている。秘密計算システム100は、データ提供者から提供を受けた秘匿データを3つの秘密計算サーバ110,120,130に秘密分散し、秘匿データの内容および計算過程を秘匿したまま計算結果のみをデータ分析者へ提供することが可能なシステムである。つまり、秘密計算システム100は、第1実施形態の技術思想を秘密分散方式に適用した構成である。ただし、ここでは秘密計算サーバの個数を3つとしているが、紙面の都合上3つとしているものであり、3つよりも多くの秘密計算サーバを備える構成としても良い。
図7に示すように、秘密計算サーバ110は、秘匿データ保持部111と、秘匿キャッシュ部112と、演算装置114とを備えている。また、秘密計算サーバ120は、秘匿データ保持部121と、秘匿キャッシュ部122と、演算装置124とを備えている。また、秘密計算サーバ130は、秘匿データ保持部131と、秘匿キャッシュ部132と、演算装置134とを備えている。
秘匿データ保持部111,121,131は、データ提供者から提供された秘匿データを秘匿処理された状態で保持する記憶装置である。例えば、データ提供者から提供された秘匿データとは、個人情報が該当する。ただし、秘匿データの内容は、必ずしも個人情報に限定されず、秘匿することを希望するデータを秘匿データとして扱うことができる。秘密計算システム100は、データ提供者から提供された秘匿データをシェアと呼ばれるデータに分割して各秘匿データ保持部111,121,131に格納する。
秘匿キャッシュ部112,122,132は、秘匿データ保持部111,121,131に保持されている秘匿データを用いて計算処理を行った結果を秘密分散したまま保持するように構成した記憶装置である。なお、秘匿キャッシュ部112,122,132は、秘匿データ保持部111,121,131の記憶領域のうち一部を用いる構成とすることが可能であるが、秘匿データ保持部111,121,131とは物理的に別個の記憶装置として構成することも可能である。秘匿キャッシュ部112,122,132を秘匿データ保持部111,121,131とは物理的に別個の記憶装置として構成する場合、秘匿キャッシュ部112,122,132をより読み書きの処理速度が高いなどキャッシュの機能を実現するために好適な構成を採用することができる。
また、秘匿キャッシュ部112,122,132は、秘匿データ保持部111,121,131に保持されている秘匿データを用いて計算処理を行った結果を秘密分散したまま保持するだけでなく、計算処理を行った結果と計算処理とを関連付けて保持する。そして、計算処理を検索キーとして、計算処理を行った結果を読み出すことができるようにデータを保持する。
演算装置114,124,134は、秘密分散されたデータを用いて計算処理(いわゆる秘密計算)を行うように構成した演算装置である。さらに、演算装置114,124,134は、この計算処理の結果を秘匿キャッシュ部112,122,132に保持するか、通常キャッシュ部143に保持するかを判断する。例えば、個人情報を秘匿して秘密計算をする場合、計算結果がk匿名性を充足しているか否かは、計算結果を用いて判断をする必要があるので、演算装置114,124,134は、秘密計算サーバ110,120,130内で秘匿性判断を行う。
一方、フロントエンドサーバ140は、通常キャッシュ部143と、演算装置144とを備える計算装置である。
通常キャッシュ部143は、秘匿データ保持部111,121,131に保持されている秘匿データを用いて計算処理を行った結果を秘密分散せず保持する通常の記憶装置である。ここで、通常キャッシュ部143に保持されるデータは、いわゆる平文に限定されない。例えば、秘密分散方式とは異なる暗号を施す運用も可能である。また、通常キャッシュ部143は、フロントエンドサーバ140の記憶領域のうち一部を用いる構成とすることが可能である。
通常キャッシュ部143は、秘匿データ保持部111,121,131に保持されている秘匿データを用いて計算処理を行った結果を秘密分散したまま保持するだけでなく、計算処理を行った結果と計算処理とを関連付けて保持する。そして、計算処理を検索キーとして、計算処理を行った結果を読み出すことができるようにデータを保持する。
演算装置144は、データ分析者から要求された計算処理を分割することや、分割された各計算処理の結果がキャッシュに保持されているかをチェックすることなど、計算装置としての一般的な処理を行う。さらに、演算装置144は、この計算処理の結果を秘匿キャッシュ部112,122,132に保持するか、通常キャッシュ部143に保持するかを判断する。例えば、平均値や合計値などを計算する場合、計算結果を用いて秘匿性判断をする必要がないので、演算装置144は、フロントエンドサーバ140内で秘匿性判断を行う。
ここで、秘密計算システム100の構成に適用可能な秘密分散方式の秘密計算の例を説明する。ただし、秘密計算システム100の構成に適用可能な秘密分散方式の秘密計算の例は以下に限定されるものではなく、一般的な秘密分散方式の秘密計算を利用の目的に合わせて選択および改良して用いることが可能である。
ここでは、ある体上の値である秘密Sを、この体上の多項式FでF(0)=Sとなるものを使って複数の秘密計算サーバに分散する。その際、秘密計算サーバの数をN、秘密の個数がK未満であれば、関数の入力や出力に関する情報を得ることができないものとなっている。秘密計算サーバごとに異なるこの体上の値が割り当てられているとし、i番目の装置に割り当てられている体の値をX[i]とする(なお、1≦i≦Nとする)。
秘密Aをこれら複数の秘密計算サーバに分散する際、各i番目の装置にはF(0)=Aとなるランダムに選ばれた(K-1)次多項式Fに関する、F[i]:=F(X[i])を配布する。秘密Bに関しても同様に、G(0)=Bなる(K-1)次多項式Gに関する、G[i]:=G(X[i])を各i番目の秘密計算サーバに配布する。ここで、秘密は、K個以上の装置が集まれば(K-1)次多項式を解くことが可能となり、FやGの係数を求めることができ、F(0)やG(0)が計算可能となる。
秘密AとBの加算A+Bを各秘密計算サーバに分散した値により計算するには、各i番目の装置はH[i]=F[i]+G[i]を計算する。この値は、多項式FとGのそれぞれに対応する係数を足したものを係数とする多項式Hに、X[i]を代入して得られた値H(X[i])と等しいので、秘密Aや秘密Bと同様にA+Bを複数の秘密計算サーバに分散したものとなる。秘密Aや秘密Bの場合と同様に、K個以上の秘密計算サーバが集まれば(K-1)次多項式を解くことが可能で、Hの係数を求めることができ、H(0)を計算することが可能になる。
さらに、K*2≦N+1という条件の下で、秘密AとBの乗算A*Bを分散した値により計算するには、各i番目の秘密計算サーバがH[i]=F[i]*G[i]を計算する。この値は、2K次多項式H(X)=F(X)*G(X)にX[i]を代入して得られた値H(X[i])と等しいので、秘密Aや秘密Bと同様にA*Bを複数の秘密計算サーバに分散したものとなる。ただし、秘密Aや秘密Bの場合とは異なりHの次数は2Kとなるので、2K個以上の秘密計算サーバが集まれば2K次多項式を解くことが可能で、Hの係数を求めることができ、H(0)が計算可能となる。このように、A*Bの分散方法は、秘密Aや秘密Bとは分散のされ方が異なる。
A*Bを秘密Aや秘密Bと同様に、(K-1)次多項式を用いた形で分散するには、それぞれi番目の装置がH[i]から(K-1)次多項式Gを生成し、他のそれぞれj番目の装置にG[X(j)]を配布することで実現できる。このようにして、秘密分散方式の秘密計算では、加算と乗算からなる全ての関数が計算可能となる。
秘密分散方式の秘密計算では、元データに対する計算の結果を、分割されたデータに対して計算することによって行うことを可能としている。つまり、各秘密計算サーバにおいて計算された内容を合わせると、元データに対する計算結果が得られる。なお、原則として、分割された個々のデータからは元データを復元不可能なため、特定の秘密計算サーバの管理者が信頼できない場合にも堅牢であり、また計算過程でデータを復元する必要が無いため計算途中の漏洩にも堅牢である。
図8は、各サーバのハードウェア構成例を示す図である。すなわち、図8に示すハードウェア構成例は、秘密計算システム100が備える秘密計算サーバ110,120,130およびフロントエンドサーバ140のハードウェア構成例である。図8に示すハードウェア構成を採用した情報処理装置は、図4に示す秘密計算方法をプログラムとして実行することで、秘密計算システム100が備える秘密計算サーバ110,120,130およびフロントエンドサーバ140の機能を実現することを可能にする。
ただし、図8に示すハードウェア構成例は、秘密計算サーバ110,120,130およびフロントエンドサーバ140の機能を実現するハードウェア構成の一例であり、秘密計算サーバ110,120,130およびフロントエンドサーバ140のハードウェア構成を限定する趣旨ではない。秘密計算サーバ110,120,130およびフロントエンドサーバ140は、図8に示さないハードウェアを含むことができる。
図8に示すように、秘密計算サーバ110,120,130およびフロントエンドサーバ140が採用し得るハードウェア構成101は、例えば内部バスにより相互に接続される、CPU(Central Processing Unit)102、主記憶装置103、補助記憶装置104、およびIF(Interface)部105を備える。
CPU102は、秘密計算サーバ110,120,130およびフロントエンドサーバ140が実行する秘密計算プログラムなどの各種プログラムを実行する。主記憶装置103は、例えばRAM(Random Access Memory)であり、秘密計算サーバ110,120,130およびフロントエンドサーバ140が実行する秘密計算プログラムなどの各種プログラムなどをCPU102が処理するために一時記憶する。
補助記憶装置104は、例えば、HDD(Hard Disk Drive)であり、秘密計算サーバ110,120,130およびフロントエンドサーバ140が実行する秘密計算プログラムなどの各種プログラムなどを中長期的に記憶しておくことが可能である。秘密計算プログラムなどの各種プログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することができる。補助記憶装置104は、非一時的なコンピュータ可読記録媒体に記録された秘密計算プログラムなどの各種プログラムを中長期的に記憶することに利用することが可能である。
IF部105は、各サーバ間の入出力に関するインターフェイスを提供する。
上記のようなハードウェア構成101を採用した情報処理装置は、図4に示す秘密計算方法をプログラムとして実行することで、秘密計算システム100が備える秘密計算サーバ110,120,130およびフロントエンドサーバ140の機能を実現する。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
秘匿処理されたデータを用いて計算処理を行った結果を前記秘匿処理したまま保持する秘匿キャッシュ部と、
前記秘匿処理されたデータを用いて計算処理を行った結果を前記秘匿処理せず保持する通常キャッシュ部と、
前記計算処理の結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第1秘匿性判断部と、
を備えることを特徴とする秘密計算システム。
[付記2]
前記秘匿処理されたデータは、複数のサーバに秘密分散されたものであり、
前記秘匿キャッシュ部は、前記複数のサーバの各々に設けられている、
ことを特徴とする付記1に記載の秘密計算システム。
[付記3]
前記第1秘匿性判断部は、前記複数のサーバの各々に設けられている、ことを特徴とする付記2に記載の秘密計算システム。
[付記4]
前記通常キャッシュ部は、前記秘匿キャッシュ部を備えるサーバとは異なる計算装置に設けられている、ことを特徴とする付記1から付記3のいずれか1に記載の秘密計算システム。
[付記5]
前記計算処理の結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第2秘匿性判断部を前記通常キャッシュ部と同一のサーバに備えていることを特徴とする付記4に記載の秘密計算システム。
[付記6]
前記秘匿キャッシュ部および前記通常キャッシュ部は、前記計算処理を行った結果と前記計算処理とを関連付けて保持することを特徴とする付記1から付記5のいずれか1に記載の秘密計算システム。
[付記7]
前記第1秘匿性判断部は、前記計算処理の結果が個人情報であるか否かで、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記1から付記6のいずれか1に記載の秘密計算システム。
[付記8]
前記第1秘匿性判断部は、前記計算処理の結果がk匿名性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記1から付記6のいずれか1に記載の秘密計算システム。
[付記9]
前記第1秘匿性判断部は、前記計算処理の結果がl多様性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記1から付記6のいずれか1に記載の秘密計算システム。
[付記10]
前記第1秘匿性判断部は、前記秘匿キャッシュ部の容量に応じたしきい値を用いて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記1から付記6のいずれか1に記載の秘密計算システム。
[付記11]
前記第1秘匿性判断部は、前記計算処理の処理時間が大きいものを優先的に、前記秘匿キャッシュ部に保持するように判断することを特徴とする付記1から付記6のいずれか1に記載の秘密計算システム。
[付記12]
秘匿処理されたデータを用いて計算処理を行った結果を、前記秘匿処理したまま保持する秘匿キャッシュ部と前記秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムを用いて行う秘密計算方法であって、
前記秘匿処理されたデータを用いて計算処理を行う秘密計算ステップと、
前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する秘匿性判断ステップと、
を有する秘密計算方法。
[付記13]
前記秘匿性判断ステップは、前記秘密計算ステップの後に行われることを特徴とする付記12に記載の秘密計算方法。
[付記14]
前記秘匿性判断ステップは、前記秘密計算ステップの前に行われることを特徴とする付記12に記載の秘密計算方法。
[付記15]
秘匿処理されたデータを用いて計算処理を行った結果を、前記秘匿処理したまま保持する秘匿キャッシュ部と前記秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムが実行する秘密計算プログラムであって、
前記秘匿処理されたデータを用いて計算処理を行う秘密計算ステップと、
前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第1秘匿性判断ステップと、
を有する秘密計算プログラム。
[付記16]
前記秘匿処理されたデータは、複数のサーバに秘密分散されたものであり、
前記秘匿キャッシュ部は、前記複数のサーバの各々に設けられている、
ことを特徴とする付記15に記載の秘密計算プログラム。
[付記17]
前記第1秘匿性判断ステップは、前記複数のサーバの各々が実行することを特徴とする付記16に記載の秘密計算プログラム。
[付記18]
前記通常キャッシュ部は、前記秘匿キャッシュ部を備えるサーバとは異なる計算装置に設けられている、ことを特徴とする付記15から付記17のいずれか1に記載の秘密計算プログラム。
[付記19]
前記計算装置が、前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第2秘匿性判断ステップを有することを特徴とする付記18に記載の秘密計算プログラム。
[付記20]
前記計算処理を行った結果と前記秘密計算ステップとを関連付けて前記秘匿キャッシュ部または前記通常キャッシュ部に保持するキャッシュステップを有することを特徴とする付記15から付記19のいずれか1に記載の秘密計算プログラム。
[付記21]
前記第1秘匿性判断ステップは、前記秘密計算ステップの結果が個人情報であるか否かで、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記15から付記20のいずれか1に記載の秘密計算プログラム。
[付記22]
前記第1秘匿性判断ステップは、前記秘密計算ステップの結果がk匿名性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記15から付記20のいずれか1に記載の秘密計算プログラム。
[付記23]
前記第1秘匿性判断ステップは、前記秘密計算ステップの結果がl多様性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記15から付記20のいずれか1に記載の秘密計算プログラム。
[付記24]
前記第1秘匿性判断ステップは、前記秘匿キャッシュ部の容量に応じたしきい値を用いて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記15から付記20のいずれか1に記載の秘密計算プログラム。
[付記25]
前記第1秘匿性判断ステップは、前記計算処理の処理時間が大きいものを優先的に、前記秘匿キャッシュ部に保持するように判断することを特徴とする付記15から付記20のいずれか1に記載の秘密計算プログラム。
なお、上記の非特許文献の各開示は、本書に引用をもって繰り込み記載されているものとし、必要に応じて本発明の基礎ないし一部として用いることが出来るものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択(部分的削除を含む)が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るだろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
10,100 秘密計算システム
101 ハードウェア構成
102 CPU
103 主記憶装置
104 補助記憶装置
105 IF部
11,111,121,131 秘匿データ保持部
12,112,122,132 秘匿キャッシュ部
13,143 通常キャッシュ部
14,114,124,134,144 演算装置
110,120,130 秘密計算サーバ
140 フロントエンドサーバ

Claims (25)

  1. 秘匿処理されたデータを用いて秘密計算処理を行った結果を前記秘匿処理したまま保持する秘匿キャッシュ部と、
    前記秘匿処理されたデータを用いて秘密計算処理を行った結果を前記秘匿処理せず保持する通常キャッシュ部と、
    前記秘密計算処理の結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを前記秘密計算処理の結果の秘匿性に基づいて判断する第1秘匿性判断部と、
    を備えることを特徴とする秘密計算システム。
  2. 前記秘匿処理されたデータは、複数のサーバに秘密分散されたものであり、
    前記秘匿キャッシュ部は、前記複数のサーバの各々に設けられている、
    ことを特徴とする請求項1に記載の秘密計算システム。
  3. 前記第1秘匿性判断部は、前記複数のサーバの各々に設けられている、ことを特徴とする請求項2に記載の秘密計算システム。
  4. 前記通常キャッシュ部は、前記秘匿キャッシュ部を備えるサーバとは異なる計算装置に設けられている、ことを特徴とする請求項1から請求項3のいずれか1項に記載の秘密計算システム。
  5. 前記秘密計算処理の結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第2秘匿性判断部を前記通常キャッシュ部と同一のサーバに備えていることを特徴とする請求項4に記載の秘密計算システム。
  6. 前記秘匿キャッシュ部および前記通常キャッシュ部は、前記秘密計算処理を行った結果と前記秘密計算処理とを関連付けて保持することを特徴とする請求項1から請求項5のいずれか1項に記載の秘密計算システム。
  7. 前記第1秘匿性判断部は、前記秘密計算処理の結果が個人情報であるか否かで、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする請求項1から請求項6のいずれか1項に記載の秘密計算システム。
  8. 前記第1秘匿性判断部は、前記秘密計算処理の結果がk匿名性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする請求項1から請求項6のいずれか1項に記載の秘密計算システム。
  9. 前記第1秘匿性判断部は、前記秘密計算処理の結果がl多様性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする請求項1から請求項6のいずれか1項に記載の秘密計算システム。
  10. 前記第1秘匿性判断部は、前記秘匿キャッシュ部の容量に応じたしきい値を用いて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする請求項1から請求項6のいずれか1項に記載の秘密計算システム。
  11. 前記第1秘匿性判断部は、前記秘密計算処理の処理時間が大きいものを優先的に、前記秘匿キャッシュ部に保持するように判断することを特徴とする請求項1から請求項6のいずれか1項に記載の秘密計算システム。
  12. 秘匿処理されたデータを用いて秘密計算処理を行った結果を、前記秘匿処理したまま保持する秘匿キャッシュ部と前記秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムを用いて行う秘密計算方法であって、
    前記秘匿処理されたデータを用いて秘密計算処理を行う秘密計算ステップと、
    前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを前記秘密計算処理の結果の秘匿性に基づいて判断する秘匿性判断ステップと、
    を有する秘密計算方法。
  13. 前記秘匿性判断ステップは、前記秘密計算ステップの後に行われることを特徴とする請求項12に記載の秘密計算方法。
  14. 前記秘匿性判断ステップは、前記秘密計算ステップの前に行われることを特徴とする請求項12に記載の秘密計算方法。
  15. 秘匿処理されたデータを用いて秘密計算処理を行った結果を、前記秘匿処理したまま保持する秘匿キャッシュ部と前記秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムが実行する秘密計算プログラムであって、
    前記秘匿処理されたデータを用いて秘密計算処理を行う秘密計算ステップと、
    前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを前記秘密計算処理の結果の秘匿性に基づいて判断する第1秘匿性判断ステップと、
    を有する秘密計算プログラム。
  16. 前記秘匿処理されたデータは、複数のサーバに秘密分散されたものであり、
    前記秘匿キャッシュ部は、前記複数のサーバの各々に設けられている、
    ことを特徴とする請求項15に記載の秘密計算プログラム。
  17. 前記第1秘匿性判断ステップは、前記複数のサーバの各々が実行することを特徴とする請求項16に記載の秘密計算プログラム。
  18. 前記通常キャッシュ部は、前記秘匿キャッシュ部を備えるサーバとは異なる計算装置に設けられている、ことを特徴とする請求項15から請求項17のいずれか1項に記載の秘密計算プログラム。
  19. 前記計算装置が、前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第2秘匿性判断ステップを有することを特徴とする請求項18に記載の秘密計算プログラム。
  20. 前記秘密計算処理を行った結果と前記秘密計算ステップとを関連付けて前記秘匿キャッシュ部または前記通常キャッシュ部に保持するキャッシュステップを有することを特徴とする請求項15から請求項19のいずれか1項に記載の秘密計算プログラム。
  21. 前記第1秘匿性判断ステップは、前記秘密計算ステップの結果が個人情報であるか否かで、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする請求項15から請求項20のいずれか1項に記載の秘密計算プログラム。
  22. 前記第1秘匿性判断ステップは、前記秘密計算ステップの結果がk匿名性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする請求項15から請求項20のいずれか1項に記載の秘密計算プログラム。
  23. 前記第1秘匿性判断ステップは、前記秘密計算ステップの結果がl多様性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする請求項15から請求項20のいずれか1項に記載の秘密計算プログラム。
  24. 前記第1秘匿性判断ステップは、前記秘匿キャッシュ部の容量に応じたしきい値を用いて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする請求項15から請求項20のいずれか1項に記載の秘密計算プログラム。
  25. 前記第1秘匿性判断ステップは、前記秘密計算処理の処理時間が大きいものを優先的に、前記秘匿キャッシュ部に保持するように判断することを特徴とする請求項15から請求項20のいずれか1項に記載の秘密計算プログラム。
JP2021538603A 2019-08-07 2019-08-07 秘密計算システム、秘密計算方法、および秘密計算プログラム Active JP7359212B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/031057 WO2021024398A1 (ja) 2019-08-07 2019-08-07 秘密計算システム、秘密計算方法、および秘密計算プログラム

Publications (2)

Publication Number Publication Date
JPWO2021024398A1 JPWO2021024398A1 (ja) 2021-02-11
JP7359212B2 true JP7359212B2 (ja) 2023-10-11

Family

ID=74502886

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021538603A Active JP7359212B2 (ja) 2019-08-07 2019-08-07 秘密計算システム、秘密計算方法、および秘密計算プログラム

Country Status (3)

Country Link
US (1) US20220277110A1 (ja)
JP (1) JP7359212B2 (ja)
WO (1) WO2021024398A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012195733A (ja) 2011-03-16 2012-10-11 Fujitsu Ltd 秘匿分析処理方法、プログラム及び装置
JP2013125354A (ja) 2011-12-13 2013-06-24 Ntt Docomo Inc 情報処理装置および情報処理方法
WO2019009180A1 (ja) 2017-07-05 2019-01-10 日本電信電話株式会社 秘密計算システム、秘密計算装置、秘密計算方法、プログラム、および記録媒体

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9734355B2 (en) * 2014-04-11 2017-08-15 Rubicon Labs, Inc. System and method for an efficient authentication and key exchange protocol
US10019603B2 (en) * 2014-04-16 2018-07-10 Synopsys, Inc. Secured memory system and method therefor
JP6542883B2 (ja) * 2015-05-14 2019-07-10 日本電信電話株式会社 データベースシステム、データベース処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012195733A (ja) 2011-03-16 2012-10-11 Fujitsu Ltd 秘匿分析処理方法、プログラム及び装置
JP2013125354A (ja) 2011-12-13 2013-06-24 Ntt Docomo Inc 情報処理装置および情報処理方法
WO2019009180A1 (ja) 2017-07-05 2019-01-10 日本電信電話株式会社 秘密計算システム、秘密計算装置、秘密計算方法、プログラム、および記録媒体

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
今林広樹ほか,ストリーム処理による安全頻出パターンマイニングの高速化,第9回データ工学と情報マネジメントに関するフォーラム,日本,一般社団法人情報処理学会,2017年02月27日,p.1-7
澤田純一ほか,低遅延匿名化処理機構の提案と実装,情報処理学会研究報告,日本,一般社団法人情報処理学会,2011年04月15日,p.1-6

Also Published As

Publication number Publication date
WO2021024398A1 (ja) 2021-02-11
JPWO2021024398A1 (ja) 2021-02-11
US20220277110A1 (en) 2022-09-01

Similar Documents

Publication Publication Date Title
Pinkas et al. Efficient circuit-based PSI via cuckoo hashing
US10341103B2 (en) Data analytics on encrypted data elements
JP7159717B2 (ja) 秘密統計処理システム、方法、統計処理装置及びプログラム
Arora et al. Hybrid algorithm designed for handling remote integrity check mechanism over dynamic cloud environment
El Ouazzani et al. A classification of non-cryptographic anonymization techniques ensuring privacy in big data
JP5758315B2 (ja) 匿名データ提供システム、匿名データ装置、及びそれらが実行する方法
US20220413807A1 (en) Secure random number generation system, secure computation apparatus, secure random number generation method, and program
Luo et al. A distributed anonymization scheme for privacy-preserving recommendation systems
Rani et al. Tampering detection of distributed databases using blockchain technology
US20190294821A1 (en) Determining pseudonym values using tweak-based encryption
JP7359212B2 (ja) 秘密計算システム、秘密計算方法、および秘密計算プログラム
US11138338B2 (en) Statistical property preserving pseudonymization
Huang et al. Achieving data privacy on hybrid cloud
WO2019138584A1 (ja) 分類木生成方法、分類木生成装置および分類木生成プログラム
Balashunmugaraja et al. Optimal key generation for data sanitization and restoration of cloud data: Future of financial cyber security
Kumari et al. A survey on big data security: Issues, challenges and techniques
US20210320791A1 (en) Systems and methods for adaptive recursive descent data redundancy
JP7452669B2 (ja) 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム
Mahapatro et al. Blockchain segmentation: a storage optimization technique for large data
Bogdanov et al. K-Anonymity Versus PSI3 for Depersonalization and Security Assessment of Large Data Structures
US20190294820A1 (en) Converting plaintext values to pseudonyms using a hash function
Kumari et al. A Review on Challenges of Security for Secure Data Storage in Cloud
Dankar et al. Efficient private information retrieval for geographical aggregation
JP6927332B2 (ja) 検索装置、検索方法、プログラム、および記録媒体
US11886617B1 (en) Protecting membership and data in a secure multi-party computation and/or communication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230531

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230911

R151 Written notification of patent or utility model registration

Ref document number: 7359212

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151