JP6534778B2 - 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム - Google Patents
秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム Download PDFInfo
- Publication number
- JP6534778B2 JP6534778B2 JP2018526338A JP2018526338A JP6534778B2 JP 6534778 B2 JP6534778 B2 JP 6534778B2 JP 2018526338 A JP2018526338 A JP 2018526338A JP 2018526338 A JP2018526338 A JP 2018526338A JP 6534778 B2 JP6534778 B2 JP 6534778B2
- Authority
- JP
- Japan
- Prior art keywords
- secret
- array
- row
- column
- frequency
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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 in cryptographic circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
- H04L63/0421—Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Probability & Statistics with Applications (AREA)
- Operations Research (AREA)
- Evolutionary Biology (AREA)
- Algebra (AREA)
- Bioinformatics & Computational Biology (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Complex Calculations (AREA)
- Storage Device Security (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
この発明は、暗号応用技術に関し、特に、入力データを明かすことなくフィッシャー正確検定(Fisher's exact test)を計算する技術に関する。
2×2の分割表として与えられた説明変数と目的変数との関連の有無に関して仮説検定を行う統計学的検定法の一つとして、フィッシャーの正確検定が広く知られている。非特許文献1には、フィッシャー正確検定の利用例として、ゲノムワイド関連解析(GWAS: Genome-Wide Association Study)が記載されている。
フィッシャー正確検定について説明する。次表はn人の被験者を変異の有無と特定の疾患の発症の有無で分類および数え上げした2×2分割表の例である。
このとき、非負整数iについて、式(1)で定義される確率piを計算し、式(2)に示す確率の和pと、有意水準と呼ばれる所定の値αとの大小関係により、説明変数(上表の例では変異の有無)と目的変数(上表の例では疾患の有無)との関連の有無を調査する。ここで、paは実際の集計値であるa, b, c, dを度数とする分割表について式(1)により算出した確率値である。
暗号化された数値を復元すること無く特定の演算結果を得る方法として、秘密計算と呼ばれる方法がある(例えば非特許文献2参照)。非特許文献2の方法では、3つの秘密計算装置に数値の断片を分散させるという暗号化を行い、3つの秘密計算装置が協調計算を行うことにより、数値を復元すること無く、加減算、定数加算、乗算、定数倍、論理演算(否定、論理積、論理和、排他的論理和)、データ形式変換(整数、二進数)の結果を3つの秘密計算装置に分散された状態、すなわち暗号化されたまま保持させることができる。
ゲノム情報の機微性や機密性から、ゲノム情報を暗号技術によって秘匿しつつゲノムワイド関連解析を行う先行研究がある(例えば非特許文献3参照)。非特許文献3ではゲノム情報を秘匿しつつカイ二乗検定を行う方法が提案されている。
Konrad Karczewski, "How to do a GWAS", Lecture note in GENE 210: Genomics and Personalized Medicine, 2015.
千田浩司、濱田浩気、五十嵐大、高橋克巳、"軽量検証可能3パーティ秘匿関数計算の再考"、CSS2010、2010
Yihua Zhang, Marina Blanton, and Ghada Almashaqbeh, "Secure distributed genome analysis for gwas and sequence comparison computation", BMC medical informatics and decision making, Vol. 15, No. Suppl 5, p. S4, 2015.
フィッシャー正確検定で各確率piを計算する際には、x!やlog(x!)などの同じ計算が多数現れる。この計算を関数f(x)として、関数f(x)の計算結果…, f(-1), f(0), f(1), f(2), …をあらかじめ計算しておいて、必要に応じて計算結果の値を参照することで効率化することができる。しかしながら、従来技術はai=a+i, bi=b-i, ci=c-i, di=d+iとして、f(a+b), f(c+d), f(a+c), f(b+d), f(a+b+c+d), f(ai), f(bi), f(ci), f(di)を計算する際に計算結果の値をm種類、計算する確率piをn種類(すなわち、i=0, …, n-1)とすると、大きさmの表の参照を4n+5回行う必要があった。特に、秘密計算でこれを実現しようとする場合、大きさmの表の参照にO(m)の計算量を要するため、全体の計算量がO(mn)となっていた。
この発明の秘密計算技術は、上述のような点に鑑みて、フィッシャー正確検定を秘密計算により効率よく計算することを目的とする。
上記の課題を解決するために、この発明の秘密計算システムは、3台以上の秘密計算装置を含む秘密計算システムであって、秘密計算装置は、a, b, c, dを非負整数とし、aを2×2の分割表における第1行第1列の度数とし、bを分割表における第1行第2列の度数とし、cを分割表における第2行第1列の度数とし、dを分割表における第2行第2列の度数とし、<a>, <b>, <c>, <d>をそれぞれ度数a, b, c, dの秘匿文とし、BatchRead(<α>; <β>; j0, …, jm-1)は大きさnの配列の秘匿文<α>=(<α[0]>,<α[1]>, …, <α[n-1]>)から大きさmの配列の秘匿文(<α[β+j0mod n]>, …, <α[β+jm-1 mod n]>)を生成する関数を表し、i0≦i1, x0≦x1を満たすi0, i1, x0, x1を決定する計算範囲決定部と、任意の関数f(x)について、f(x0), …, f(x1)を計算し、配列M=(f(x0), …, f(x1))を生成する事前計算部と、配列Mを秘匿化して秘匿文の配列<M>=(<f(x0)>, …, <f(x1)>)を生成する秘匿化部と、次式を実行して、関数値の秘匿文(<f(ai)>, <f(bi)>, <f(ci)>, <f(di)>)(i0≦i≦i1)を生成する一括読み込み部と、を含むものである。
この発明によれば、フィッシャー正確検定の入力となる分割表の度数a, b, c, dを明かすことなく、計算対象となる度数の関数値f(ai), f(bi), f(ci), f(di)を効率よく求めることができる。したがって、フィッシャー正確検定を秘密計算により効率よく計算することができる。さらには、ゲノム情報を秘匿しつつフィッシャー正確検定を実行することができる。これは例えば、複数の研究機関が所持するゲノムデータを秘匿したまま相互に開示することなく、統合されたデータのフィッシャー正確検定の実行結果を得ることができ、極めてセキュリティレベルの高いゲノム解析の実行環境の提供、ひいては医療の更なる発展へとつながることが期待できる。
実施形態の説明に先立ち、この明細書における表記方法およびこの明細書において用いる用語の定義について説明する。
<表記方法>
ある値aを暗号化や秘密分散などにより秘匿化した値をaの秘匿文と呼び、<a>と表記する。また、aを<a>の平文と呼ぶ。秘匿化が秘密分散である場合は、<a>により各パーティが持つ秘密分散の断片の集合を参照する。
ある値aを暗号化や秘密分散などにより秘匿化した値をaの秘匿文と呼び、<a>と表記する。また、aを<a>の平文と呼ぶ。秘匿化が秘密分散である場合は、<a>により各パーティが持つ秘密分散の断片の集合を参照する。
<秘匿シフト>
大きさnの秘匿文の配列<a>=(<a[0]>, <a[1]>, …, <a[n-1]>)とシフト量dの秘匿文<d>とを入力とし、<a>を左にdだけシフトした秘匿文の配列<a'>=(<a[d]>, <a[d+1]>, …, <a[n-1]>, <a[0]>, <a[1]>, …, <a[d-1]>)を計算する処理を秘匿シフトと呼び、次式で記述する。
大きさnの秘匿文の配列<a>=(<a[0]>, <a[1]>, …, <a[n-1]>)とシフト量dの秘匿文<d>とを入力とし、<a>を左にdだけシフトした秘匿文の配列<a'>=(<a[d]>, <a[d+1]>, …, <a[n-1]>, <a[0]>, <a[1]>, …, <a[d-1]>)を計算する処理を秘匿シフトと呼び、次式で記述する。
秘匿シフトを実現する方法は、下記参考文献1に記載されている。
〔参考文献1〕濱田浩気、桐淵直人、五十嵐大、“ラウンド効率のよい秘密計算パターンマッチング”、コンピュータセキュリティシンポジウム2014論文集、第2014巻、pp. 674-681、2014年10月
〔参考文献1〕濱田浩気、桐淵直人、五十嵐大、“ラウンド効率のよい秘密計算パターンマッチング”、コンピュータセキュリティシンポジウム2014論文集、第2014巻、pp. 674-681、2014年10月
<一括読み込みアルゴリズム>
一括読み込みアルゴリズムは、大きさnの秘匿文の配列<a>=(<a[0]>, <a[1]>, …, <a[n-1]>)、位置を表す自然数xの秘匿文<x>、およびxからの相対的な位置を表すm個の平文j0,j1, …, jm-1を入力とし、xやa[0], a[1], …, a[n-1]の値を明らかにすることなく、m個の秘匿文<b>=(<a[x+j0 mod n]>, <a[x+j1 mod n]>, …, <a[x+jm-1mod n]>)を得る方法である。以下、一括読み込みアルゴリズムは次式で記述する。
一括読み込みアルゴリズムは、大きさnの秘匿文の配列<a>=(<a[0]>, <a[1]>, …, <a[n-1]>)、位置を表す自然数xの秘匿文<x>、およびxからの相対的な位置を表すm個の平文j0,j1, …, jm-1を入力とし、xやa[0], a[1], …, a[n-1]の値を明らかにすることなく、m個の秘匿文<b>=(<a[x+j0 mod n]>, <a[x+j1 mod n]>, …, <a[x+jm-1mod n]>)を得る方法である。以下、一括読み込みアルゴリズムは次式で記述する。
一括読み込みアルゴリズムは上記の秘匿シフトを用いて以下のように実装することで、より効率的に実行することができる。ただし、この発明で適用可能な一括読み込みアルゴリズムはこれに限定されず、上述の入出力を実現することができるアルゴリズムであればどのようなものであってもよい。まず、大きさnの秘匿文の配列<a>=(<a[0]>, <a[1]>, …, <a[n-1]>)、位置を表す0以上n未満の整数xの秘匿文<x>、およびxからの相対的な位置を表すm個の平文j0, …, jm-1が入力される。次に、<a'>←Shift(<a>, <x>)により、配列<a>を<x>だけ左シフトした配列<a'>=(<a'[0]>, <a'[1]>, …, <a'[n-1]>)を得る。そして、<b[k]>=<a'[jk]>(0≦k<m)として、秘匿文の配列<b>=(<b[0]>, <b[1]>, …, <b[m-1]>)=(<a'[j0]>, <a'[j1]>, …, <a'[jm-1]>)を生成する。
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
<第一実施形態>
第一実施形態の秘密計算システムは、図1に例示するように、n(≧3)台の秘密計算装置11, …, 1nを含む。この実施形態では、秘密計算装置11, …, 1nはそれぞれ通信網2へ接続される。通信網2は、秘密計算装置11, …, 1nそれぞれが相互に通信可能なように構成された回線交換方式もしくはパケット交換方式の通信網であり、例えばインターネットやLAN(Local Area Network)、WAN(Wide Area Network)などを用いることができる。なお、各装置は必ずしも通信網2を介してオンラインで通信可能である必要はない。例えば、秘密計算装置1i(i∈{1, …, n})へ入力する情報を磁気テープやUSBメモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体からオフラインで入力するように構成してもよい。
第一実施形態の秘密計算システムは、図1に例示するように、n(≧3)台の秘密計算装置11, …, 1nを含む。この実施形態では、秘密計算装置11, …, 1nはそれぞれ通信網2へ接続される。通信網2は、秘密計算装置11, …, 1nそれぞれが相互に通信可能なように構成された回線交換方式もしくはパケット交換方式の通信網であり、例えばインターネットやLAN(Local Area Network)、WAN(Wide Area Network)などを用いることができる。なお、各装置は必ずしも通信網2を介してオンラインで通信可能である必要はない。例えば、秘密計算装置1i(i∈{1, …, n})へ入力する情報を磁気テープやUSBメモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体からオフラインで入力するように構成してもよい。
秘密計算装置1は、図2に例示するように、入力部11、計算範囲決定部12、事前計算部13、秘匿化部14、一括読み込み部15、および出力部16を含む。この秘密計算装置1が、図3に例示する各ステップの処理を行うことにより第一実施形態の秘密計算方法が実現される。
秘密計算装置1は、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。秘密計算装置1は、例えば、中央演算処理装置の制御のもとで各処理を実行する。秘密計算装置1に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。秘密計算装置1の各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
図3を参照して、第一実施形態の秘密計算方法の処理手続きを説明する。
ステップS11において、入力部11へ、2×2分割表の度数の組(a, b, c, d)の秘匿文(<a>, <b>, <c>, <d>)が入力される。ここで、2×2分割表は次表で定義され、a, b, c, dは非負整数である。
ステップS12において、計算範囲決定部12は、i0≦i1, x0≦x1を満たす値i0, i1, x0, x1を決定する。ここでは、i0=-n, i1=n, x0=-n, x1=2nと決定するものとする。値x0,x1は事前計算部13へ送られる。値i0, i1は一括読み込み部15へ送られる。
ステップS13において、事前計算部13は、関数f(x)について、f(x0), f(x0+1),…,f(x1)を計算し、配列M=(f(x0), f(x0+1),…, f(x1))を生成する。第一実施形態では、次式で定義される確率pi(i0≦i≦i1)を計算するために、関数f(x)はf(x):=x!とする。
ステップS14において、秘匿化部14は、配列Mを秘匿化した秘匿文の配列<M>=(<f(x0)>, <f(x0+1)>, …, <f(x1)>)を生成する。秘匿文の配列<M>は一括読み込み部15へ送られる。
ステップS15において、一括読み込み部15は、次式を実行して、関数値の秘匿文(<f(ai)>, <f(bi)>, <f(ci)>, <f(di)>)(i=i0, …, i1)を生成する。
ステップS16において、出力部16から、関数値の秘匿文(<f(ai)>, <f(bi)>, <f(ci)>, <f(di)>)が出力される。
<第二実施形態>
図3を参照して、第二実施形態の秘密計算方法の処理手続きを説明する。以下では、上述の第一実施形態との相違点を中心に説明する。
図3を参照して、第二実施形態の秘密計算方法の処理手続きを説明する。以下では、上述の第一実施形態との相違点を中心に説明する。
ステップS13において、事前計算部13は、関数f(x)について、f(x0), f(x0+1),…,f(x1)を計算し、配列M=(f(x0), f(x0+1),…, f(x1))を生成する。第二実施形態では、次式で定義される確率log pi(i0≦i≦i1)を計算した後に確率pi=exp(log pi)を計算するために、関数f(x)はf(x):=log(x!)とする。
この発明のポイントは、関数値f(ai0), f(ai0+1), …, f(ai1)の入力ai0, ai0+1, …, ai1の差が公開してもよい情報であることを利用して、関数値の秘匿文<f(ai0)>, <f(ai0+1)>, …, <f(ai1)>の計算を、一括読み込みアルゴリズムを使って効率よく実現することである。
このように構成することにより、この発明の秘密計算技術によれば、複数の表参照を一括で実行することにより、フィッシャー正確検定を秘密計算で効率的に計算できる。大きさnの配列からの一括読み込みがO(n)の計算量であるので、1+i1-i0=K, 1+x1-x0=Lとして、全体の計算量がO(KL)からO(L)に改善される。
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[プログラム、記録媒体]
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
この発明の秘密計算技術は、例えば、機微情報を取り扱うゲノムワイド関連解析において、ゲノム情報を秘匿したまま秘密計算によりフィッシャー正確検定を行うことに適用することが可能である。
Claims (6)
- 3台以上の秘密計算装置を含む秘密計算システムであって、
上記秘密計算装置は、
a, b, c, dを非負整数とし、aを2×2の分割表における第1行第1列の度数とし、bを上記分割表における第1行第2列の度数とし、cを上記分割表における第2行第1列の度数とし、dを上記分割表における第2行第2列の度数とし、<a>, <b>, <c>, <d>をそれぞれ度数a, b, c, dの秘匿文とし、BatchRead(<α>; <β>; j0, …, jm-1)は大きさnの配列の秘匿文<α>=(<α[0]>, <α[1]>, …, <α[n-1]>)から大きさmの配列の秘匿文(<α[β+j0mod n]>, …, <α[β+jm-1 mod n]>)を生成する関数を表し、
i0≦i1, x0≦x1を満たすi0, i1, x0, x1を決定する計算範囲決定部と、
任意の関数f(x)について、f(x0), …, f(x1)を計算し、配列M=(f(x0), …, f(x1))を生成する事前計算部と、
上記配列Mを秘匿化して秘匿文の配列<M>=(<f(x0)>, …, <f(x1)>)を生成する秘匿化部と、
次式を実行して、関数値の秘匿文(<f(ai)>, <f(bi)>, <f(ci)>, <f(di)>)(i0≦i≦i1)を生成する一括読み込み部と、
を含むものである秘密計算システム。 - a, b, c, dを非負整数とし、aを2×2の分割表における第1行第1列の度数とし、bを上記分割表における第1行第2列の度数とし、cを上記分割表における第2行第1列の度数とし、dを上記分割表における第2行第2列の度数とし、<a>, <b>, <c>, <d>をそれぞれ度数a, b, c, dの秘匿文とし、BatchRead(<α>; <β>; j0, …, jm-1)は大きさnの配列の秘匿文<α>=(<α[0]>, <α[1]>, …, <α[n-1]>)から大きさmの配列の秘匿文(<α[β+j0mod n]>, …, <α[β+jm-1 mod n]>)を生成する関数を表し、
i0≦i1, x0≦x1を満たすi0, i1, x0, x1を決定する計算範囲決定部と、
任意の関数f(x)について、f(x0), …, f(x1)を計算し、配列M=(f(x0), …, f(x1))を生成する事前計算部と、
上記配列Mを秘匿化して秘匿文の配列<M>=(<f(x0)>, …, <f(x1)>)を生成する秘匿化部と、
次式を実行して、関数値の秘匿文(<f(ai)>, <f(bi)>, <f(ci)>, <f(di)>)(i0≦i≦i1)を生成する一括読み込み部と、
を含む秘密計算装置。 - a, b, c, dを非負整数とし、aを2×2の分割表における第1行第1列の度数とし、bを上記分割表における第1行第2列の度数とし、cを上記分割表における第2行第1列の度数とし、dを上記分割表における第2行第2列の度数とし、<a>, <b>, <c>, <d>をそれぞれ度数a, b, c, dの秘匿文とし、BatchRead(<α>; <β>; j0, …, jm-1)は大きさnの配列の秘匿文<α>=(<α[0]>, <α[1]>, …, <α[n-1]>)から大きさmの配列の秘匿文(<α[β+j0mod n]>, …, <α[β+jm-1 mod n]>)を生成する関数を表し、
計算範囲決定部が、i0≦i1, x0≦x1を満たすi0, i1, x0, x1を決定し、
事前計算部が、任意の関数f(x)について、f(x0), …, f(x1)を計算し、配列M=(f(x0), …, f(x1))を生成し、
秘匿化部が、上記配列Mを秘匿化して秘匿文の配列<M>=(<f(x0)>, …, <f(x1)>)を生成し、
一括読み込み部が、次式を実行して、関数値の秘匿文(<f(ai)>, <f(bi)>, <f(ci)>, <f(di)>)(i0≦i≦i1)を生成する、
秘密計算方法。 - 請求項4に記載の秘密計算装置としてコンピュータを機能させるためのプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016134089 | 2016-07-06 | ||
JP2016134089 | 2016-07-06 | ||
PCT/JP2017/024140 WO2018008545A1 (ja) | 2016-07-06 | 2017-06-30 | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2018008545A1 JPWO2018008545A1 (ja) | 2019-04-04 |
JP6534778B2 true JP6534778B2 (ja) | 2019-06-26 |
Family
ID=60912177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018526338A Active JP6534778B2 (ja) | 2016-07-06 | 2017-06-30 | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US11121868B2 (ja) |
EP (1) | EP3483866B1 (ja) |
JP (1) | JP6534778B2 (ja) |
CN (1) | CN109328377B (ja) |
WO (1) | WO2018008545A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018034079A1 (ja) * | 2016-08-18 | 2018-02-22 | 日本電気株式会社 | 秘密計算システム、秘密計算方法、秘密計算装置、分散情報生成装置およびそれらの方法とプログラム |
US11456862B2 (en) * | 2017-07-05 | 2022-09-27 | Nippon Telegraph And Telephone Corporation | Secure computation system, secure computation apparatus, secure computation method, and recording medium |
US11914740B2 (en) * | 2019-03-11 | 2024-02-27 | Nippon Telegraph And Telephone Corporation | Data generalization apparatus, data generalization method, and program |
JP7205623B2 (ja) * | 2019-06-07 | 2023-01-17 | 日本電信電話株式会社 | 秘密共役勾配法計算システム、秘密計算装置、共役勾配法計算装置、秘密共役勾配法計算方法、共役勾配法計算方法、およびプログラム |
EP4016507A4 (en) * | 2019-08-14 | 2023-05-10 | Nippon Telegraph And Telephone Corporation | SECRET GRADIENT DESCENT CALCULATION METHOD, SECRET DEEP LEARNING METHOD, SECRET GRADIENT DESCENT CALCULATION SYSTEM, SECRET DEEP LEARNING SYSTEM, SECRET CALCULATION DEVICE AND PROGRAM |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007080629A1 (ja) * | 2006-01-10 | 2007-07-19 | Fujitsu Limited | 携帯型端末装置、アドレス帳転送装置、携帯型端末装置における情報の表示方法、アドレス帳転送方法、およびコンピュータプログラム |
JP5075553B2 (ja) * | 2007-09-27 | 2012-11-21 | 株式会社日立ソリューションズ | 2×n型分割表の総数数え上げ処理装置 |
US20090182797A1 (en) * | 2008-01-10 | 2009-07-16 | Microsoft Corporation | Consistent contingency table release |
KR101336349B1 (ko) * | 2009-11-20 | 2013-12-04 | 니폰덴신뎅와 가부시키가이샤 | 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 |
US9946810B1 (en) * | 2010-04-21 | 2018-04-17 | Stan Trepetin | Mathematical method for performing homomorphic operations |
JP5531154B2 (ja) * | 2011-03-10 | 2014-06-25 | 日本電信電話株式会社 | 秘匿積和結合システム、計算装置、秘匿積和結合方法、及びそれらのプログラム |
US9237013B2 (en) * | 2011-12-20 | 2016-01-12 | Mitsubishi Electric Corporation | Encrypted data management device, encrypted data management method, and encrypted data management program |
CN105027180B (zh) * | 2013-01-17 | 2017-03-29 | 日本电信电话株式会社 | 保密计算***、运算装置、以及保密计算方法 |
JP5907902B2 (ja) * | 2013-01-21 | 2016-04-26 | 日本電信電話株式会社 | 秘密計算による表の等結合システム、方法 |
EP3057079A4 (en) * | 2013-10-10 | 2017-06-07 | Nippon Telegraph And Telephone Corporation | Secret parallel processing device, secret parallel processing method, and program |
US9524392B2 (en) * | 2013-11-30 | 2016-12-20 | Microsoft Technology Licensing, Llc | Encrypting genomic data for storage and genomic computations |
US10496638B2 (en) * | 2016-12-07 | 2019-12-03 | City University Of Hong Kong | Systems and methods for privacy-assured similarity joins over encrypted datasets |
-
2017
- 2017-06-30 JP JP2018526338A patent/JP6534778B2/ja active Active
- 2017-06-30 CN CN201780037589.4A patent/CN109328377B/zh active Active
- 2017-06-30 US US16/309,034 patent/US11121868B2/en active Active
- 2017-06-30 WO PCT/JP2017/024140 patent/WO2018008545A1/ja unknown
- 2017-06-30 EP EP17824150.1A patent/EP3483866B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11121868B2 (en) | 2021-09-14 |
CN109328377B (zh) | 2021-12-21 |
CN109328377A (zh) | 2019-02-12 |
JPWO2018008545A1 (ja) | 2019-04-04 |
WO2018008545A1 (ja) | 2018-01-11 |
EP3483866A1 (en) | 2019-05-15 |
EP3483866B1 (en) | 2020-12-23 |
US20190229904A1 (en) | 2019-07-25 |
EP3483866A4 (en) | 2020-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6534778B2 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
Kim et al. | Private genome analysis through homomorphic encryption | |
Blatt et al. | Optimized homomorphic encryption solution for secure genome-wide association studies | |
Joye et al. | Private yet efficient decision tree evaluation | |
EP3573039B1 (en) | Secure computing system, secure computing device, secure computing method, and program | |
JP7067632B2 (ja) | 秘密シグモイド関数計算システム、秘密ロジスティック回帰計算システム、秘密シグモイド関数計算装置、秘密ロジスティック回帰計算装置、秘密シグモイド関数計算方法、秘密ロジスティック回帰計算方法、プログラム | |
US20190333415A1 (en) | Secure computation system, secure computation device, secure computation method, and program | |
Kim et al. | Privacy-preserving approximate GWAS computation based on homomorphic encryption | |
JP6585846B2 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
JP2020519968A (ja) | ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム | |
EP3633656B1 (en) | Secret tampering detection system, secret tampering detection apparatus, secret tampering detection method, and program | |
JP6541048B2 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
JP6682105B2 (ja) | フィッシャー正確検定計算装置、方法及びプログラム | |
JP6699066B2 (ja) | フィッシャー正確検定計算装置、方法及びプログラム | |
WO2019059042A1 (ja) | 秘密読み込み装置、秘密書き込み装置、それらの方法、およびプログラム | |
JP7359225B2 (ja) | 秘密最大値計算装置、方法及びプログラム | |
JP7173328B2 (ja) | 秘密除算システム、秘密計算装置、秘密除算方法、およびプログラム | |
WO2019059069A1 (ja) | 秘密読み書き装置、秘密読み書き方法、およびプログラム | |
Karimi et al. | A secure system for genomics clinical decision support | |
Elkabbany et al. | Lightweight Computational Complexity Stepping Up the NTRU Post-Quantum Algorithm Using Parallel Computing. Symmetry 2024, 16, 12 | |
WO2019180787A1 (ja) | 復号装置、復号方法及びプログラム記録媒体 | |
CN117581227A (zh) | 秘密计算***、装置、方法以及程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181203 |
|
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: 20190528 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190529 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6534778 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |