(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024160651
(43)【公開日】2024-11-14
(54)【発明の名称】分析装置、分析方法及び分析プログラム
(51)【国際特許分類】
G09C 1/00 20060101AFI20241107BHJP
G06F 16/28 20190101ALI20241107BHJP
G06F 16/2455 20190101ALI20241107BHJP
【FI】
G09C1/00 650Z
G06F16/28
G06F16/2455
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2023075878
(22)【出願日】2023-05-01
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成30年度、内閣府(国立研究開発法人医薬基盤・健康・栄養研究所)、戦略的イノベーション創造プログラム(SIP)第2期「AI(人工知能)ホスピタルによる高度診断・治療システム」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】399035766
【氏名又は名称】エヌ・ティ・ティ・コミュニケーションズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】田中 哲士
(72)【発明者】
【氏名】櫻井 陽一
(72)【発明者】
【氏名】澤田 匡史
(72)【発明者】
【氏名】山際 龍太
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175BA01
5B175EA03
(57)【要約】
【課題】秘密計算によるテーブルの結合におけるメモリの使用量を低減させること。
【解決手段】実施形態の分析装置は、分割部、内部結合部及び行結合部を有する。分割部は、結合キーの値が重複するレコードを含む第1のテーブルを、結合キーの値が重複しない複数のレコード群に分割する。内部結合部は、複数のレコード群のそれぞれと、結合キーを持つ第2のテーブルと、の内部結合を秘密計算により行う。行結合部は、内部結合によって得られた複数のテーブルを行結合する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
キーの値が重複するレコードを含む第1のテーブルを、前記キーの値が重複しない複数のレコード群に分割する分割部と、
前記複数のレコード群のそれぞれと、前記キーを持つ第2のテーブルと、の内部結合を秘密計算により行う内部結合部と、
前記内部結合によって得られた複数のテーブルを行結合する行結合部と、
を有することを特徴とする分析装置。
【請求項2】
前記内部結合部は、前記複数のレコード群のそれぞれと、前記キーを持つ第2のテーブルと、の内部結合を並列して行うことを特徴とする請求項1に記載の分析装置。
【請求項3】
分析装置によって実行される分析方法であって、
キーの値が重複するレコードを含む第1のテーブルを、前記キーの値が重複しない複数のレコード群に分割する分割工程と、
前記複数のレコード群のそれぞれと、前記キーを持つ第2のテーブルと、の内部結合を秘密計算により行う内部結合工程と、
前記内部結合によって得られた複数のテーブルを行結合する行結合工程と、
を含むことを特徴とする分析方法。
【請求項4】
キーの値が重複するレコードを含む第1のテーブルを、前記キーの値が重複しない複数のレコード群に分割する分割ステップと、
前記複数のレコード群のそれぞれと、前記キーを持つ第2のテーブルと、の内部結合を秘密計算により行う内部結合ステップと、
前記内部結合によって得られた複数のテーブルを行結合する行結合ステップと、
をコンピュータに実行させることを特徴とする分析プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分析装置、分析方法及び分析プログラムに関する。
【背景技術】
【0002】
従来、データを秘匿したまま統計的な演算を行い、演算の結果得られた統計量をユーザに提供する秘密計算システムが知られている。例えば、秘密計算システムは、重要な個人情報を取り扱う医療分野等におけるデータの分析に利用される場合がある。
【0003】
また、秘密計算を用いてテーブル(表)の結合を行う方法が知られている(例えば、特許文献3を参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際公開第2019/124260号
【特許文献2】特開2020-042128号公報
【特許文献3】特開2014-139640号公報
【非特許文献】
【0005】
【非特許文献1】日本電信電話株式会社,秘密計算のシステムとその原理, [online],[令和4年11月24日検索]、インターネット<URL:https://www.rd.ntt/sil/project/sc/secure_computation.html>
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来の秘密計算によるテーブルの結合には、メモリの使用量が大きいという問題がある。
【0007】
例えば、従来の秘密計算を用いたテーブルの内部結合においては、左テーブルに含まれる特定のレコードの数に応じて右テーブルのレコードを複製することで、右テーブルを拡張する手順が行われる場合がある。その際、拡張された右テーブルを保持するために、メモリの使用量が増加する。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するために、本発明の分析装置は、キーの値が重複するレコードを含む第1のテーブルを、前記キーの値が重複しない複数のレコード群に分割する分割部と、前記複数のレコード群のそれぞれと、前記キーを持つ第2のテーブルと、の内部結合を秘密計算により行う内部結合部と、前記内部結合によって得られた複数のテーブルを行結合する行結合部と、を有することを特徴とする。
【発明の効果】
【0009】
本発明によれば、秘密計算によるテーブルの結合におけるメモリの使用量を低減させることができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施形態に係る分析システムの構成例を示す図である。
【
図2】
図2は、実施形態に係る分析装置の構成例を示す図である。
【
図3】
図3は、実施形態に係るテーブル結合の手順を説明する図である。
【
図4】
図4は、実施形態に係る分析装置の処理の流れを示すフローチャートである。
【
図5】
図5は、分析プログラムを実行するコンピュータの一例を示す図である。
【
図6】
図6は、従来のテーブル結合の手順を説明する図である。
【発明を実施するための形態】
【0011】
以下に、本願に係る分析装置、分析方法及び分析プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【0012】
まず、
図1を用いて、分析システムの構成を説明する。分析システムは、秘密計算を利用してデータの分析を行うためのシステムである。
【0013】
図1に示すように、分析システム1は、秘密計算システム10を含む。また、秘密計算システム10は、ネットワークNを介して提供装置20及び提供装置30と接続される。例えば、ネットワークNはインターネットである。また、秘密計算システム10は、端末装置40と接続される。
【0014】
提供装置20及び提供装置30は、データ提供者側の装置である。提供装置20及び提供装置30は、秘密計算システム10にデータを提供(登録)する。
【0015】
提供装置20及び提供装置30によって提供されるデータは、秘匿化されることが望ましい情報(例えば、個人の氏名、住所等の個人情報)を含む。例えば、提供装置20及び提供装置30は、医療機関で利用されるレセプト及びDPC(Diagnosis Procedure Combination)に関するデータを提供する。
【0016】
秘密計算システム10は、データ蓄積部11及びデータ処理部12を有する。データ蓄積部11は、秘密分散によりデータを蓄積する複数の蓄積装置(蓄積装置111、蓄積装置112、蓄積装置113)を含む。また、データ処理部12は、秘密計算によりデータを処理する複数の計算装置(計算装置121、計算装置122、計算装置123)を含む。なお、蓄積装置の数及び計算装置の数は、
図1に示す例に限られない。
【0017】
秘密計算システム10は、非特許文献1(掲載URL:https://www.rd.ntt/sil/project/sc/secure_computation.html)に記載された方法に従って、秘密分散及び秘密計算を実行することができる。
【0018】
まず、秘密計算システム10に提供されたデータは、複数のシェアに分割される(断片化)。そして、複数のシェアのそれぞれは、データ蓄積部11に含まれる複数の蓄積装置に分散して蓄積される。
図1の例では、提供されたデータが3つのシェアに分割される。そして、蓄積装置111、蓄積装置112、蓄積装置113が、それぞれ1つずつシェアを蓄積する。
【0019】
データ処理部12は、データ蓄積部11に蓄積されたシェアに対し、秘密計算を実行する。データ処理部12は、複数の計算装置を使ったマルチパーティ計算により秘密計算を実行する。
図1の例では、データ処理部12は、計算装置121、計算装置122、計算装置123により秘密計算を実行する。
【0020】
データ処理部12は、シェアを復元することなく各種の統計演算を行うことができる。例えば、データ処理部12は、ソート、結合等のテーブルの操作、レコード数の集計、総和、平均、最大値、最小値、標本分散等の統計量の計算、t検定等の統計的検定を行うことができる。さらに、データ処理部12は、回帰分析及び主成分分析といった統計的分析を行うことができる。
【0021】
分析装置13は、データ処理部12を利用してデータの分析を行う。分析装置13は、データ処理部12によって実行された秘密計算の結果に基づき、分析結果をデータ利用者側の端末装置40に提供する。利用者は、端末装置40を介してデータの分析結果を得ることができる。
【0022】
例えば、秘密計算システム10には、個人ごとの属性及び身体に関するデータが提供される場合がある。属性及び身体に関するデータは秘匿化されることが望ましい個人情報である。属性及び身体に関するデータには、例えば年齢、性別、身長、体重等が含まれる。データ蓄積部11は、提供されたデータを断片化したシェアを各蓄積装置に格納する。
【0023】
なお、分割された個々のシェアは、単独では意味のないデータである。そのため、1つのシェアから元のデータを復元することはできない。一方、複数のシェアを揃えることで元のデータを復元することが可能になる。
【0024】
データの利用者は、登録されたデータそのものを閲覧することはできないが、分析装置13及び端末装置40を介して、データの分析結果を閲覧することができる。例えば、データに個人の性別及び体重が含まれている場合、利用者は、各個人の性別及び体重を閲覧することはできないが、データの分析結果である「男性の平均体重」を閲覧することができる。
【0025】
一例として、データ蓄積部11は、Shamirの閾値秘密分散法という手法を使って秘密分散を行うことができる。このとき、データ蓄積部11は、元のデータを切片とする多項式を通る3つの座標をシェアとして各サーバに保管する。また、多項式の傾きはランダムに決定されるため、元のデータが同じであってもシェアが毎回同じであるとは限らない。なお、元のデータは、数値であってもよいし、数値に変換済みのデータであってもよい。
【0026】
秘密計算システム10は、複数のシェアから元のデータを復元することができる。多項式が1次式であれば、秘密計算システム10は、2つの座標(シェアに相当)を結ぶ直線と軸との交点から切片(元のデータに相当)を求めることができる。一方で、1つの座標からは直線が定まらないため、元のデータを復元することはできない。
【0027】
また、前述の通り、データ処理部12は、シェアを復元することなく元のデータに対し秘密計算を実行することができる。例えば、座標で表されたシェア同士を加算した結果は、各シェアの元のデータ同士を加算した結果のシェアに相当する。
【0028】
分析装置13は、端末装置40からの要求に応じて、データ処理部12に秘密計算による処理を実行させる。なお、データ処理部12又は端末装置40が、分析装置13と同等の機能を実現してもよい。例えば、分析システム1は、分析装置13を有さない構成であってもよい。その場合、端末装置40がデータ処理部12と接続され、分析装置13と同等の処理を実行する。さらに、シェアに基づく統計演算は、データ処理部12ではなく端末装置40によって実行されてもよい。
【0029】
第1の実施形態では、分析装置13が秘密計算によりテーブルの結合を行う場合の例を説明する。なお、分析装置13が結合の対象とするテーブルは、例えば複数のテーブルが関連付けられたリレーショナルデータベース(RDB:Relational Database)に含まれるテーブルである。
【0030】
ここで、
図6を用いて、従来の秘密計算におけるテーブル結合を説明する。
図6は、従来のテーブル結合の手順を説明する図である。なお、内部結合は、2つのテーブルから特定の1つ以上の列(以下、結合キー)の値が一致するレコードを抽出し、抽出したレコードを結合する操作である。例えば、内部結合は、SQLにおけるINNER JOINに相当する。
【0031】
図6の例では、従来の分析装置(以降、分析装置13a)は、テーブル51aとテーブル52aを結合する。また、
図6の例では、「ID」列が結合キーである。
【0032】
まず、分析装置13aは、テーブル51aとテーブル52aを以下のように拡張する(ステップS1a)。
【0033】
分析装置13aは、左テーブルであるテーブル51aに「Seqno」列を追加したテーブル61aを生成する。分析装置13aは、「ID」列の値が重複しているレコードに対して、「Seqno」列に異なる番号を付与する。
【0034】
例えば、テーブル51a「ID」列の値が「A0001」であるレコードは2つあるので、分析装置13aは、テーブル61aにおいて、当該2つのレコードのうち1つ目のレコードの「Seqno」列に「0」を付与し、2つ目のレコードの「Seqno」列に「1」を付与する。
【0035】
また、例えば、テーブル51aの「ID」列の値が「A0002」であるレコードは1つのみなので、分析装置13aは、テーブル61aにおいて、当該1つのレコードの「Seqno」列に「0」を付与する。また、例えば、テーブル51aの「ID」列の値が「A0003」であるレコードは1つのみなので、分析装置13aは、テーブル61aにおいて、当該1つのレコードの「Seqno」列に「0」を付与する。
【0036】
分析装置13aは、右テーブルであるテーブル52aに「Seqno」列を追加したテーブル62aを生成する。そして、分析装置13aは、テーブル51aのレコードの最大の重複数に応じて、テーブル62aの各レコードを複製する。分析装置13aは、複製元の各レコードのテーブル62aにおける複製後の数が、テーブル51aの最大の重複数と等しくなるように複製を行う。
【0037】
左テーブルであるテーブル51aの最大重複数は2なので、分析装置13aは、テーブル52aの各レコードを2つに複製する。これは、分析装置13aが、テーブル52aに「Seqno」列を追加しただけの状態のテーブル62aに対して、各レコードと同じレコードを1つ(最大重複数-1)だけ追加することと同意である。
【0038】
分析装置13aは、テーブル61aの場合と同様に、複製したテーブル62aの「ID」列の値が重複しているレコードに対して、「Seqno」列に異なる番号を付与する。例えば、分析装置13aは、テーブル62aの「ID」列が「A0001」であり、「薬品名」列が「カペシタビン」である2つのレコードのうち、1つ目のレコードの「Seqno」列に「0」を付与し、2つ目のレコードの「Seqno」列に「1」を付与する。
【0039】
分析装置13aは、「ID」列と「Seqno」列を結合キーとして、テーブル61aとテーブル62aの内部結合を行う(ステップS2a)。なお、テーブル61aとテーブル62aの内部結合における結合キーは「ID」列と「Seqno」列であるが、テーブル51aとテーブル52aの内部結合の手順全体における結合キーは「ID」列である。
【0040】
このように、従来の技術では、テーブル62aのようなサイズの大きいテーブルが生成され、メモリの使用量が増大する。これに対して、第1の実施形態の分析装置13は、従来技術と比べて、秘密計算によるテーブルの結合におけるメモリの使用量を低減させることができる。
【0041】
図2を用いて、分析装置13の構成を説明する。
図2は、実施形態に係る分析装置の構成例を示す図である。
【0042】
分析装置13の各部について説明する。
図2に示すように、分析装置13は、通信部131、入力部132、出力部133、記憶部134及び制御部135を有する。
【0043】
通信部131は、他の装置の間でデータの通信を行う。例えば、通信部131はNIC(Network Interface Card)である。通信部131は他の装置との間でデータの送受信を行うことができる。
【0044】
入力部132は、データの入力を受け付けるためのインタフェースである。入力部132は、例えばマウス及びキーボード等の入力装置と接続される。
【0045】
出力部133は、データを出力するためのインタフェースである。出力部133は、例えばディスプレイ及びスピーカ等の入力装置と接続される。
【0046】
記憶部134は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク等の記憶装置である。なお、記憶部134は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)等のデータを書き換え可能な半導体メモリであってもよい。記憶部134は、分析装置13で実行されるOS(Operating System)及び各種プログラムを記憶する。
【0047】
制御部135は、分析装置13全体を制御する。制御部135は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路である。また、制御部135は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。
【0048】
制御部135は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部135は、分割部1351、内部結合部1352、行結合部1353及び出力制御部1354を有する。
【0049】
図3を用いて、制御部135の各処理部の機能とともに、テーブル結合の手順を説明する。
図3は、実施形態に係るテーブル結合の手順を説明する図である。なお、説明のため、
図3には各テーブルの内容を自然言語として判読できる状態で示しているが、実際には、
図3に示す処理は、判読不可能なシェアの状態(例えば、無意味に見える数値の羅列)で蓄積されたテーブルを対象として、秘密計算により行われる。
【0050】
図3の例では、テーブル51とテーブル52が結合される。また、
図3の例では、「ID」列が結合キーである。テーブル51及びテーブル52は、それぞれ第1のテーブル及び第2のテーブルの一例である。テーブル51及びテーブル52においては、いずれも結合キーである「ID」列の値が「A0001」であるレコードが重複している。
【0051】
まず、分割部1351は、テーブル51に含まれる結合キーが重複するレコード群のそれぞれについて、1つのレコードを残して他のレコードを削除する(ステップS1)。例えば、分割部1351は、テーブル51から「ID」列の値が「A0001」であり、「病名」列の値が「糖尿病」であるレコードを削除することにより、レコード群61を生成する。
【0052】
さらに、分割部1351は、削除されたレコード、すなわち「ID」列の値が「A0001」であり、「病名」列の値が「糖尿病」であるレコードを持つレコード群62を生成する。仮にレコード群62に結合キーが重複するレコードが含まれる場合、分割部1351は、テーブル51に対して行った処理を再帰的に行うことで、さらにレコード群を生成する。
【0053】
言い換えると、ステップS1において、分割部1351は、キーの値が重複するレコードを含むテーブル51を、キーの値が重複しない複数のレコード群に分割する。
【0054】
次に、内部結合部1352は、複数のテーブルのそれぞれと、キーを持つテーブル52と、の内部結合を秘密計算により行う(ステップS2)。このとき、内部結合部1352は、複数の内部結合処理を並列して実行することができる。例えば、レコード群61とテーブル52との内部結合、及びレコード群61とテーブル52との内部結合は並列で実行されてもよい。
【0055】
データ処理部12の各計算装置のプロセッサは、複数のコアを持つものとする。このとき、内部結合部1352は、複数の内部結合処理を、複数のコアのそれぞれに割り当てて並列で実行させることができる。
【0056】
行結合部1353は、内部結合によって得られた複数のテーブル(
図3のテーブル71及びテーブル72)を行結合する(ステップS3)。これにより、テーブル51とテーブル52を内部結合した結果として、テーブル81が得られる。行結合は、一方のテーブルの行方向に、他方のテーブルを統合する操作である。行結合は、例えばSQLにおけるUNIONに相当する。
【0057】
出力制御部1354は、テーブル81を端末装置40に出力する。また、出力制御部1354は、テーブル81を用いてさらに統計的な分析を行った結果を出力してもよい。
【0058】
図4は、実施形態に係る分析装置の処理の流れを示すフローチャートである。
図4に示すように、分析装置13は、結合対象の左テーブル及び右テーブルを取得する(ステップS101)。ステップS101の処理は、シェアとしてデータ蓄積部11に蓄積されたテーブルを、データ処理部12に取得させることであってもよい。
【0059】
ここで、左テーブルは結合キーの値が重複するレコードを含む。結合キーは、主キーとして設定されている1つ以上の列であってもよいし、利用者等によって指定された1つ以上の列であってもよい。
【0060】
次に、分析装置13は、左テーブルを結合キーが重複しない複数のレコード群に分割する(ステップS102)。
【0061】
続いて、分析装置13は、分割した複数のレコード群のそれぞれを右テーブルと内部結合する(ステップS103)。分析装置13は、ステップS103に含まれる複数の内部結合処理を、並列して実行してもよい。
【0062】
ここで、分析装置13は、内部結合によって得られた複数のテーブルを行結合する(ステップS104)。分析装置13は、行結合処理並列して実行してもよい。
【0063】
そして、分析装置13は、行結合により得られたテーブルを出力する(ステップS105)。また、分析装置13は、行結合により得られたテーブルを用いて、さらに統計量の計算等を行い、その結果を分析結果として出力してもよい。
【0064】
[実施形態の効果]
これまで説明してきたように、分析装置13は、分割部1351、内部結合部1352及び行結合部1353を有する。分割部1351は、結合キーの値が重複するレコードを含む第1のテーブルを、結合キーの値が重複しない複数のレコード群に分割する。内部結合部1352は、複数のテーブルのそれぞれと、結合キーを持つ第2のテーブルと、の内部結合を秘密計算により行う。行結合部1353は、内部結合によって得られた複数のテーブルを行結合する。
【0065】
図6を用いて説明した通り、従来の秘密計算によるテーブルの結合においては、結合対象のテーブルが拡張されるため、メモリの使用量が増大する。一方で、第1の実施形態では、結合対象のテーブルが拡張されることなく秘密計算による結合が行われるため、メモリの使用量が低減する。
【0066】
内部結合部1352は、複数のテーブルのそれぞれと、結合キーを持つ第2のテーブルと、の内部結合を並列して行う。このように、複数の内部結合を並列で行うことにより、処理に要する時間が短くなる。
【0067】
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU(Central Processing Unit)及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。なお、プログラムは、CPUだけでなく、GPU等の他のプロセッサによって実行されてもよい。
【0068】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0069】
[プログラム]
一実施形態として、分析装置13は、パッケージソフトウェアやオンラインソフトウェアとして上記の分析処理を実行する分析プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の分析プログラムを情報処理装置に実行させることにより、情報処理装置を分析装置13として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
【0070】
また、分析装置13は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の分析処理に関するサービスを提供する分析サーバ装置として実装することもできる。例えば、分析サーバ装置は、結合対象の2つのテーブルを入力とし、結合したテーブルを出力とする分析サービスを提供するサーバ装置として実装される。
【0071】
図5は、分析プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0072】
メモリ1010は、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0073】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、分析装置13の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、分析装置13における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0074】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020は、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した実施形態の処理を実行する。
【0075】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0076】
1 分析システム
10 秘密計算システム
11 データ蓄積部
12 データ処理部
13 分析装置
131 通信部
132 入力部
133 出力部
134 記憶部
135 制御部
1351 分割部
1352 内部結合部
1353 行結合部
1354 出力制御部