(57)【要約】【課題】これまでよりも効率的に、各保有者が保有するプライベートデータを他の保有者に知られることなく分類する。【解決手段】複数のパーティが保有する複数のプライベートデータ（以下、ＰＤ）を種類毎に分類するシステムを提供する。複数のパーティの各々は、多重暗号化において順序が可換な暗号鍵を有している。まず、既に分類されたＰＤの種類毎に、その種類のＰＤを保有するパーティの代表パーティＰ１、Ｐ３を選択する。次に、Ｐ１・Ｐ３と処理対象の対象パーティＰ５との間で、各パーティのＰＤを暗号化した暗号データを交換させる。そして、Ｐ５が取得した各々の暗号データをＰ５の暗号鍵で更に暗号化してデータ１を取得し、Ｐ１・Ｐ３が取得した暗号データをＰ１・Ｐ３の暗号鍵で更に暗号化してデータ２を取得する。Ｐ１・Ｐ３のデータ１がデータ２と一致すれば、Ｐ１・Ｐ３およびＰ５が共に同一種類のＰＤを有すると判断する。【選択図】図１
2006339895.tif 000002
【特許請求の範囲】
【請求項１】
複数のパーティが保有する複数のプライベートデータを種類毎に分類するシステムとして、情報システムを機能させるプログラムであって、
前記複数のパーティのそれぞれは、暗号化の順序によらず同一の暗号データを得ることができる複数の暗号鍵のそれぞれを有し、
既に分類されたプライベートデータの種類毎に、当該種類のプライベートデータを保有するパーティを代表する代表パーティを選択する代表パーティ選択部と、
各々の前記代表パーティと、新たに分類の対象とするプライベートデータを保有する対象パーティとの間で、各々の暗号鍵で当該パーティのプライベートデータを暗号化した暗号データを交換させる交換部と、
前記対象パーティが各々の前記代表パーティから取得した暗号データを、前記対象パーティの暗号鍵で更に暗号化することにより生成された第１相互暗号データを取得する第１取得部と、
各々の前記代表パーティが前記対象パーティから取得した暗号データを、前記代表パーティの暗号鍵で更に暗号化することにより生成された第２相互暗号データを取得する第２取得部と、
各々の前記代表パーティについて、当該代表パーティについて生成された第１相互暗号データが第２相互暗号データと一致することを条件として、当該代表パーティおよび当該対象パーティが共に同一種類のプライベートデータを有すると判断する判断部と
して機能させるプログラム。
【請求項２】
前記情報システムを、既に分類されたプライベートデータの種類毎に、当該種類のプライベートデータを保有しているパーティを代表する代表パーティを記録する記録部として更に機能させ、
前記代表パーティ選択部は、プライベートデータの各々の種類に対応する代表パーティを前記記録部から検索し、
前記情報システムを、
前記対象パーティのプライベートデータの種類が、何れの代表パーティのプライベートデータの種類にも一致しなかったことを条件として、前記対象パーティを新たな代表パーティとして前記記録部に登録する登録部として更に機能させる
請求項１に記載のプログラム。
【請求項３】
前記情報システムを、既に分類されたプライベートデータの種類の各々に対応付けて、当該種類のプライベートデータを保有しているパーティの組を記録する記録部として更に機能させ、
前記代表パーティ選択部は、プライベートデータの各々の種類に対応する代表パーティを、前記記録部において当該種類に対応して記録されたパーティの中から選択し、
前記情報システムを、前記判断部によって判断された前記対象パーティの種類に基づいて、前記対象パーティを前記記録部に追加して登録する登録部として更に機能させる
請求項１に記載のプログラム。
【請求項４】
前記情報システムを、未だに分類されていないプライベートデータを有する複数のパーティの中から、予め定められた順序に従って、前記対象パーティを順次選択する対象パーティ選択部として更に機能させ、
前記代表パーティ選択部は、少なくとも１つの種類のプライベートデータについて、前記対象パーティ選択部によって対象パーティが選択される毎に、当該種類に対応して記録されたパーティの組の中から、予め定められた順序で代表パーティを選択する
請求項３に記載のプログラム。
【請求項５】
前記情報システムを、
未だに分類されていないプライベートデータを有する複数のパーティの中から、予め定められた順序に従って、前記対象パーティを順次選択する対象パーティ選択部として更に機能させ、
前記代表パーティ選択部は、少なくとも１つの種類のプライベートデータについて、前記対象パーティ選択部によって対象パーティが選択される毎に、当該種類に対応して記録されたパーティの組の中から、当該対象パーティとの間の通信速度が所定の基準速度以上のパーティを前記代表パーティとして選択する
請求項３に記載のプログラム。
【請求項６】
前記代表パーティ選択部は、少なくとも１つのプライベートデータを保有するパーティの組の中から前記代表パーティを無作為に選択する
請求項１に記載にプログラム。
【請求項７】
前記複数のパーティの各々は、互いに異なる個体の遺伝子情報を、前記プライベートデータとして保有し、
前記代表パーティ選択部は、既に分類された遺伝子情報の種類の各々について、当該種類の遺伝子情報を保有しているパーティを代表する代表パーティを選択し、
前記交換部は、前記代表パーティ選択部によって選択された各々の前記代表パーティと、新たに分類の対象とする遺伝子情報を保有する対象パーティとの間で、各々の暗号鍵で当該パーティの遺伝子情報を暗号化した暗号データを交換させ、
前記判断部は、各々の前記代表パーティについて、当該代表パーティについて生成された第１相互暗号データが第２相互暗号データに一致することを条件として、当該代表パーティおよび前記対象パーティが共に同一種類の遺伝子情報を有すると判断する
請求項１に記載のプログラム。
【請求項８】
各々のパーティが保有する複数のプライベートデータを種類毎に分類するシステムとして、情報システムを機能させるプログラムであって、
前記複数のパーティのそれぞれは、暗号化の順序によらず同一の暗号データを得ることができる複数の暗号鍵のそれぞれを有し、
既にプライベートデータの種類が分類されたパーティである基準パーティについて、当該基準パーティが有する複数のプライベートデータの種類毎に、当該種類のプライベートデータの組を代表する代表データを選択する代表データ選択部と、
前記基準パーティ以外のパーティの中から、新たに分類の対象とするプライベートデータを保有する対象パーティを順次選択する対象パーティ選択部と、
前記基準パーティと前記対象パーティとの間で、各々の前記代表データを前記基準パーティの暗号鍵で暗号化した暗号データの各々と、前記対象パーティが有する少なくとも１つのプライベートデータを前記対象パーティの暗号鍵で暗号化した暗号データの各々とを交換させる交換部と、
前記基準パーティが前記対象パーティから取得した各々の暗号データを、前記基準パーティの暗号鍵で更に暗号化することにより生成された各々の第１相互暗号データを取得する第１取得部と、
前記対象パーティが前記基準パーティから取得した各々の暗号データを、前記対象パーティの暗号鍵で更に暗号化することにより生成された各々の第２相互暗号データを取得する第２取得部と、
各々の第１相互暗号データが、何れかの第２相互暗号データに一致することを条件として、前記基準パーティと前記対象パーティとが同一種類のプライベートデータを保有していると判断する判断部と
して機能させるプログラム。
【請求項９】
前記代表データ選択部は、更に、各々の前記対象パーティについて、当該対象パーティに保有されるプライベートデータから少なくとも１つの代表データを選択し、
前記交換部は、前記基準パーティと前記対象パーティとの間で、前記基準パーティの各々の前記代表データを前記基準パーティの暗号鍵で暗号化した暗号データの各々と、前記対象パーティの各々の前記代表データを前記対象パーティの暗号鍵で暗号化した暗号データの各々とを交換させる
請求項８に記載のプログラム。
【請求項１０】
前記システムは、各々のパーティに対応して当該パーティにおける暗号化処理を行う複数の端末装置と、何れのパーティとも異なる管理者によって管理された管理装置を有し、
前記管理装置を、前記代表データ選択部、前記対象パーティ選択部、前記交換部、前記第１取得部、および前記第２取得部として機能させる
請求項８に記載のプログラム。
【請求項１１】
前記管理装置を、前記交換部の処理において、前記基準パーティから前記対象パーティに対して送信される前記暗号データをキャッシュするキャッシュ部として更に機能させ、
前記交換部は、前記キャッシュ部にキャッシュされた各々の暗号データを、他の各々の前記対象パーティに対して送信することにより、前記基準パーティおよび各々の前記対象パーティとの間で暗号データを順次交換する
請求項１０に記載のプログラム。
【請求項１２】
前記複数のパーティの各々は、少なくとも１つの個体の遺伝子情報を、少なくとも１つの前記プライベートデータとして保有し、
前記代表データ選択部は、前記基準パーティが有する複数の遺伝子情報の種類毎に、当該種類の遺伝子情報の組を代表する代表データを選択し、
前記対象パーティ選択部は、前記基準パーティ以外のパーティの中から、新たに分類の対象とする遺伝子情報を保有する対象パーティを順次選択し、
前記交換部は、前記基準パーティと前記対象パーティとの間で、各々の前記代表データを前記基準パーティの暗号鍵で暗号化した暗号データの各々と、前記対象パーティが有する少なくとも１つの遺伝子情報を前記対象パーティの暗号鍵で暗号化した暗号データの各々とを交換し、
前記判断部は、各々の第１相互暗号データが、何れかの第２相互暗号データに一致することを条件として、前記基準パーティおよび前記対象パーティが共に同一種類の遺伝子情報を保有していると判断する
請求項８に記載のプログラム。
【請求項１３】
複数のパーティが保有する複数のプライベートデータを種類毎に分類するシステムとして、情報システムを機能させるプログラムであって、
前記複数のパーティのそれぞれは、暗号化の順序によらず同一の暗号データを得ることができる複数の暗号鍵のそれぞれを有し、
既に分類されたプライベートデータを保有するパーティを基準パーティとして順次選択する基準パーティ選択部と、
未だに分類されていないプライベートデータを保有している未分類パーティを順次選択する未分類パーティ選択部と、
各々の前記未分類パーティと前記基準パーティとの間で、各々の暗号鍵で当該パーティのプライベートデータを暗号化した暗号データを交換させる交換部と、
前記基準パーティが各々の前記未分類パーティから取得した暗号データを、前記基準パーティの暗号鍵で更に暗号化することにより生成された第１相互暗号データを取得する第１取得部と、
各々の前記未分類パーティが前記基準パーティから取得した暗号データを、当該未分類パーティの暗号鍵で更に暗号化することにより生成された第２相互暗号データを取得する第２取得部と、
各々の前記未分類パーティについて、当該未分類パーティについて生成された第１相互暗号データが第２相互暗号データに一致することを条件として、当該未分類パーティのおよび前記基準パーティが共に同一種類のプライベートデータを保有していると判断する判断部と
して機能させ、
前記未分類パーティ選択部は、前記基準パーティのプライベートデータの種類と一致しなかった未分類パーティの各々を、次の未分類パーティとして選択し、
前記基準パーティ選択部は、前記基準パーティのプライベートデータの種類と一致した未分類パーティの何れかを、次の基準パーティとして選択する
プログラム。
【請求項１４】
複数のパーティが保有する複数のプライベートデータを種類毎に分類する分類方法であって、
前記複数のパーティのそれぞれは、暗号化の順序によらず同一の暗号データを得ることができる複数の暗号鍵のそれぞれを有し、
既に分類されたプライベートデータの種類毎に、当該種類のプライベートデータを保有するパーティを代表する代表パーティを選択する代表パーティ選択段階と、
各々の前記代表パーティと、新たに分類の対象とするプライベートデータを保有する対象パーティとの間で、各々の暗号鍵で当該パーティのプライベートデータを暗号化した暗号データを交換させる交換段階と、
前記対象パーティが各々の前記代表パーティから取得した暗号データを、前記対象パーティの暗号鍵で更に暗号化することにより生成された第１相互暗号データを取得する第１取得段階と、
各々の前記代表パーティが前記対象パーティから取得した暗号データを、前記代表パーティの暗号鍵で更に暗号化することにより生成された第２相互暗号データを取得する第２取得段階と、
各々の前記代表パーティについて、当該代表パーティについて生成された第１相互暗号データが第２相互暗号データと一致することを条件として、当該代表パーティおよび当該対象パーティが共に同一種類のプライベートデータを有すると判断する判断段階と
を有する分類方法。
【請求項１５】
複数のパーティが保有する複数のプライベートデータを種類毎に分類するシステムであって、
前記複数のパーティのそれぞれは、暗号化の順序によらず同一の暗号データを得ることができる複数の暗号鍵のそれぞれを有し、
既に分類されたプライベートデータの種類毎に、当該種類のプライベートデータを保有するパーティを代表する代表パーティを選択する代表パーティ選択部と、
各々の前記代表パーティと、新たに分類の対象とするプライベートデータを保有する対象パーティとの間で、各々の暗号鍵で当該パーティのプライベートデータを暗号化した暗号データを交換させる交換部と、
前記対象パーティが各々の前記代表パーティから取得した暗号データを、前記対象パーティの暗号鍵で更に暗号化することにより生成された第１相互暗号データを取得する第１取得部と、
各々の前記代表パーティが前記対象パーティから取得した暗号データを、前記代表パーティの暗号鍵で更に暗号化することにより生成された第２相互暗号データを取得する第２取得部と、
各々の前記代表パーティについて、当該代表パーティについて生成された第１相互暗号データが第２相互暗号データと一致することを条件として、当該代表パーティおよび当該対象パーティが共に同一種類のプライベートデータを有すると判断する判断部と
を備えるシステム。
【請求項１６】
各々のパーティが保有する複数のプライベートデータを種類毎に分類する分類方法であって、
前記複数のパーティのそれぞれは、暗号化の順序によらず同一の暗号データを得ることができる複数の暗号鍵のそれぞれを有し、
既にプライベートデータの種類が分類されたパーティである基準パーティについて、当該基準パーティが有する複数のプライベートデータの種類毎に、当該種類のプライベートデータの組を代表する代表データを選択する代表データ選択段階と、
前記基準パーティ以外のパーティの中から、新たに分類の対象とするプライベートデータを保有する対象パーティを順次選択する対象パーティ選択段階と、
前記基準パーティと前記対象パーティとの間で、各々の前記代表データを前記基準パーティの暗号鍵で暗号化した暗号データの各々と、前記対象パーティが有する少なくとも１つのプライベートデータを前記対象パーティの暗号鍵で暗号化した暗号データの各々とを交換させる交換段階と、
前記基準パーティが前記対象パーティから取得した各々の暗号データを、前記基準パーティの暗号鍵で更に暗号化することにより生成された各々の第１相互暗号データを取得する第１取得段階と、
前記対象パーティが前記基準パーティから取得した各々の暗号データを、前記対象パーティの暗号鍵で更に暗号化することにより生成された各々の第２相互暗号データを取得する第２取得段階と、
各々の第１相互暗号データが、何れかの第２相互暗号データに一致することを条件として、前記基準パーティと前記対象パーティとが同一種類のプライベートデータを保有していると判断する判断段階と
を有する分類方法。
【請求項１７】
各々のパーティが保有する複数のプライベートデータを種類毎に分類するシステムであって、
前記複数のパーティのそれぞれは、暗号化の順序によらず同一の暗号データを得ることができる複数の暗号鍵のそれぞれを有し、
既にプライベートデータの種類が分類されたパーティである基準パーティについて、当該基準パーティが有する複数のプライベートデータの種類毎に、当該種類のプライベートデータの組を代表する代表データを選択する代表データ選択部と、
前記基準パーティ以外のパーティの中から、新たに分類の対象とするプライベートデータを保有する対象パーティを順次選択する対象パーティ選択部と、
前記基準パーティと前記対象パーティとの間で、各々の前記代表データを前記基準パーティの暗号鍵で暗号化した暗号データの各々と、前記対象パーティが有する少なくとも１つのプライベートデータを前記対象パーティの暗号鍵で暗号化した暗号データの各々とを交換させる交換部と、
前記基準パーティが前記対象パーティから取得した各々の暗号データを、前記基準パーティの暗号鍵で更に暗号化することにより生成された各々の第１相互暗号データを取得する第１取得部と、
前記対象パーティが前記基準パーティから取得した各々の暗号データを、前記対象パーティの暗号鍵で更に暗号化することにより生成された各々の第２相互暗号データを取得する第２取得部と、
各々の第１相互暗号データが、何れかの第２相互暗号データに一致することを条件として、前記基準パーティと前記対象パーティとが同一種類のプライベートデータを保有していると判断する判断部と
を備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、分類方法およびシステムに関する。特に、本発明は、複数のパーティが保有する複数のプライベートデータを種類毎に分類するプログラム、分類方法およびシステムに関する。
【背景技術】
【０００２】
近年、遺伝子配列と、薬の副作用や疾患などの形質（特徴）とを対応付けることにより、疾患の原因遺伝子を発見する研究が行われている。特に、遺伝子配列中で、１塩基が置換・欠損して起こる１塩基遺伝子多型性（SNP）は、個体の形質を特徴付けるものであり、個人の体質にあった医療（テーラーメード医療）や連鎖解析の目的である疾患原因遺伝子探索のための重要な手がかりとなる。
【０００３】
SNPの中から疾患原因となる遺伝子座位を同定するためには、疾患を抱える個体の遺伝子情報と、そうでない個体の遺伝子情報とを大量に取得して、それらの違いを統計的に分析する必要がある。これには、従来、代表的な技術として、罹患同胞対解析(affected sib-pair analysis)が用いられている（非特許文献１参照。）。また、その解析用ソフトウェアが公開されている（非特許文献２参照。）。
【０００４】
上述の技術によって遺伝子情報を解析するためには、様々な個体から遺伝子情報を取得して集計する必要がある。しかしながら、人の遺伝子情報は、その人の疾患の原因となり得る情報を含むので、プライバシー保護の観点から第三者に開示できない場合がある。このため、従来は、全ての情報提供者から信頼された特別な機関によってのみ、これらの情報を収集し、処理することができた（非特許文献３参照。）。また、従来、そのような特別な機関が準備できない場合においては、疾患の情報および遺伝子情報を、患者の氏名から切り離して収集することも考えられていた。
【０００５】
しかしながら、全ての情報提供者から信頼された特別の機関を準備することは困難な場合が多い。また、遺伝子情報等を患者の氏名から切り離したとしても、患者が極めて特殊な疾患を有している場合等には、その患者を特定できてしまう場合があった。これに対して、遺伝子情報自体を開示することなく、遺伝子情報をその種類毎に分類して、罹患同胞対解析等に必要な統計的な情報を得る技術が提案されている（非特許文献４参照。）。
図１４は、遺伝子情報を開示することなく遺伝子情報を種類毎に分類する処理の概念図である。本図の処理によって、遺伝子情報の受信者は、自己の遺伝子情報が送信者の遺伝子情報と同じ種類か否かを判断できる。その処理を説明する。
【０００６】
ＶＳは、送信者の遺伝子情報を示し、ＶＲは、受信者の遺伝子情報を示す。送信者および受信者は、共に、自らの遺伝子情報に共通のハッシュ関数を適用してハッシュ値を得る（Ｓ１）。これをＸＳおよびＸＲとする。送信者は、ハッシュ値ＸＳを自らの暗号鍵で暗号化することにより暗号化済データＹＳを得る（Ｓ２）。また、受信者は、ハッシュ値ＸＲを自らの暗号鍵で暗号化することにより暗号化済みデータＹＲを得る（Ｓ２）。送信者および受信者はＹＳおよびＹＲを交換する（Ｓ３）。そして、送信者は、取得したＹＲを更に自らの暗号鍵で暗号化して受信者に送信する（Ｓ４）。また、受信者は、取得したＹＳを更に自らの暗号鍵で暗号化する（Ｓ５）。受信者は、これらの暗号化済データが同一であれば、自らの遺伝子情報および送信者の遺伝子情報の種類が同一と判断する（Ｓ６）。なお、送信者および受信者の暗号は、暗号化の順序によらず同一の暗号データを得ることができるという性質を有する（より詳しくは、非特許文献６を参照。）。
【０００７】
情報提供者が３以上の場合には、情報提供者の任意の組について、上記の処理を行う。これにより、各々の情報提供者は、他の情報提供者の中で自己と同一の遺伝子情報を保有する者の数を求めることができる。一方で、各々の情報提供者は、他の情報提供者と遺伝子情報が異なる場合には、当該他の情報提供者が保有する遺伝子情報を知ることはできない。各々の情報提供者について求めた当該数を集計することによって、遺伝子情報自体を開示することなく、各情報提供者によって保有されている遺伝子情報の数をその種類毎に求めることができる。
また、非特許文献５によって提案されている技術によっても、同様に、各々の情報提供者が他の情報提供者と同一種類の遺伝子情報を保有していることを、その内容を開示することなく判断できる。
【０００８】
【非特許文献１】「形質マッピングホームページ」ホームページＵＲＬ「http://www.genstat.net/ 」鎌谷 直之他著。平成１７年５月１０日検索。
【非特許文献２】Mapmaker/sibs,「http://linkage.rockefeller.edu/soft/」平成１７年５月１０日検索。
【非特許文献３】A Proposed Architecture for Trusted Third Party Services, N Jefferies, C Mitchell, M Walker, in Cryptography:Policy and Algorithms, Springer LNCS v 1029 pp 98-104 (1995).
【非特許文献４】R. Agrawal, A. Evfimievski, and R. Srikant. Information sharing across private databases. In Proc. of SIGMOD 2003.
【非特許文献５】沼尾雅之  著,「プライバシーを保持したリストマッチングプロトコル」CSS '2001 予稿集.
【非特許文献６】T. ElGamal, A public key cryptosystem and a signature scheme based on discrete logarithms, IEEE Transactions on Information Theory, IT-31(4):469・72, July 1985.
【発明の開示】
【発明が解決しようとする課題】
【０００９】
非特許文献４に記載の技術において、各々の情報提供者は、他の各々の情報提供者との間で、暗号化された遺伝子情報を交換する必要がある。この交換処理の回数は、概ね、情報提供者の数の２乗に比例する。このため、情報提供者が膨大な数となれば、その遺伝子情報の集計処理は、現実的な処理時間で完了できなくなってしまう場合があった。本発明は、遺伝子情報等のプライベートデータを、その具体的な内容を開示することなく、かつ現実的な処理時間で完了できるアルゴリズムによって集計し、上述の罹患同胞対解析等の統計的手法を適用可能とすることを課題とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の第１の形態においては、複数のパーティが保有する複数のプライベートデータを種類毎に分類するシステムとして、情報システムを機能させるプログラムであって、複数のパーティのそれぞれは、暗号化の順序によらず同一の暗号データを得ることができる複数の暗号鍵のそれぞれを有し、既に分類されたプライベートデータの種類毎に、当該種類のプライベートデータを保有するパーティを代表する代表パーティを選択する代表パーティ選択部と、各々の代表パーティと、新たに分類の対象とするプライベートデータを保有する対象パーティとの間で、各々の暗号鍵で当該パーティのプライベートデータを暗号化した暗号データを交換させる交換部と、対象パーティが各々の代表パーティから取得した暗号データを、対象パーティの暗号鍵で更に暗号化することにより生成された第１相互暗号データを取得する第１取得部と、各々の代表パーティが対象パーティから取得した暗号データを、代表パーティの暗号鍵で更に暗号化することにより生成された第２相互暗号データを取得する第２取得部と、各々の代表パーティについて、当該代表パーティについて生成された第１相互暗号データが第２相互暗号データと一致することを条件として、当該代表パーティおよび当該対象パーティが共に同一種類のプライベートデータを有すると判断する判断部として機能させるプログラム、当該プログラムによってプライベートデータを分類する分類方法、および、当該プログラムによって動作するシステムを提供する。
【００１１】
本発明の第２の形態においては、各々のパーティが保有する複数のプライベートデータを種類毎に分類するシステムとして、情報システムを機能させるプログラムであって、複数のパーティのそれぞれは、暗号化の順序によらず同一の暗号データを得ることができる複数の暗号鍵のそれぞれを有し、既にプライベートデータの種類が分類されたパーティである基準パーティについて、当該基準パーティが有する複数のプライベートデータの種類毎に、当該種類のプライベートデータの組を代表する代表データを選択する代表データ選択部と、基準パーティ以外のパーティの中から、新たに分類の対象とするプライベートデータを保有する対象パーティを順次選択する対象パーティ選択部と、基準パーティと対象パーティとの間で、各々の代表データを基準パーティの暗号鍵で暗号化した暗号データの各々と、対象パーティが有する少なくとも１つのプライベートデータを対象パーティの暗号鍵で暗号化した暗号データの各々とを交換させる交換部と、基準パーティが対象パーティから取得した各々の暗号データを、基準パーティの暗号鍵で更に暗号化することにより生成された各々の第１相互暗号データを取得する第１取得部と、対象パーティが基準パーティから取得した各々の暗号データを、対象パーティの暗号鍵で更に暗号化することにより生成された各々の第２相互暗号データを取得する第２取得部と、各々の第１相互暗号データが、何れかの第２相互暗号データに一致することを条件として、基準パーティと対象パーティとが同一種類のプライベートデータを保有していると判断する判断部として機能させるプログラム、当該プログラムによってプライベートデータを分類する分類方法、および、当該プログラムによって動作するシステムを提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【００１２】
本発明によれば、これまでよりも効率的に、各保有者が保有するプライベートデータを、他の保有者に知られることなく分類することができる。
【発明を実施するための最良の形態】
【００１３】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１４】
（第１実施例）
図１は、遺伝子情報分類システム１０の全体構成を示す（第１実施例）。遺伝子情報分類システム１０は、パーティ２０−１〜Ｎを備える。パーティ２０−１〜Ｎの各々は、情報の機密性を保持できる組織毎に設けられている。例えば、パーティ２０−１〜Ｎの各々は、複数の組織の各々に対応する複数の端末装置の各々であってもよい。より詳しくは、パーティ２０−１〜Ｎの各々は、各個人所有のパーソナルコンピュータであってもよい。また、パーティ２０−１〜Ｎの各々は、各病院に設けられた患者管理用のサーバコンピュータであってもよい。この場合、各患者がその患者の遺伝子情報を記録した磁気記録カードを保有し、サーバコンピュータは、その磁気記録カードから遺伝子情報をカードリーダによって読み出して保持してもよい。
【００１５】
パーティ２０−１〜Ｎの各々は、遺伝子情報を有する。本図では、遺伝子情報の種類毎に番号を付して示す。例えば、パーティ２０−１の遺伝子情報の種類ｖ１は１であり、パーティ２０−２の遺伝子情報の種類ｖ２は１である。パーティ２０−１〜４の遺伝子情報は既に分類されているのでその種類は判明している。一方で、パーティ２０−５の遺伝子情報はこれから分類するのでその種類は不明であるが、実際には２である。
【００１６】
本例において、パーティ２０−１〜Ｎの各々は、当該パーティの遺伝子情報の種類が他の遺伝子情報の種類と一致するか否かを順次この順に解析していく。この解析処理の過程においては、既に分類された遺伝子情報を有する全てのパーティとの間で一致を判断するのではなく、既に分類された遺伝子情報を有するパーティを代表するパーティのみとの間で一致を判断する。例えば、パーティ２０−５は、パーティ２０−１〜４の各々に代えて、パーティ２０−１およびパーティ２０−３との間においてのみ、遺伝子情報の種類が一致するか否かを判断する。これにより、これまでより効率的に遺伝子情報を分類することを目的とする。
【００１７】
なお、パーティ２０−１〜Ｎの各々は、遺伝子情報に代えて、他のプライベートデータを有していてもよい。本実施例に示す構成によれば、どのようなプライベートデータをも、各々のパーティが他のパーティにその内容を知らせることなく分類することができる。
【００１８】
図２は、パーティ２０−５の機能構成の一例を示す。パーティ２０−５を除くパーティ２０−１〜Ｎの各々も、本図で説明するパーティ２０−５と略同一の機能を有するが、本図においてはパーティ２０−１〜Ｎを代表してパーティ２０−５の機能を説明する。パーティ２０−５は、遺伝子情報記録部２００と、暗号処理部２１０と、管理装置３０とを有する。遺伝子情報記録部２００は、パーティ２０−５が保有する遺伝子情報を保有する。暗号処理部２１０は、管理装置３０から受けた指示に応じて、パーティ２０−５が有する暗号鍵でその遺伝子情報を暗号化してパーティ２０−１〜Ｎの少なくとも１つに送信する。なお、遺伝子情報を更に漏洩しにくくするために、遺伝子情報に対してハッシュ関数を適用した適用後のデータを暗号化してもよい。また、暗号処理部２１０は、パーティ２０−１〜Ｎの少なくとも１つから受信した暗号化データを更に暗号化して第１相互暗号化データを生成し、管理装置３０に出力する。管理装置３０は、暗号処理部２１０を制御することにより、パーティ２０−５および他のパーティが共に同一種類の遺伝子情報を有するか否かを判断する。
【００１９】
図３は、管理装置３０の機能を機能ブロック毎に示す。管理装置３０は、記録部３００と、代表パーティ選択部３１０と、対象パーティ選択部３２０と、交換部３３０と、第１取得部３４０と、第２取得部３５０と、判断部３６０と、登録部３７０とを有する。本機能の説明にあたり、パーティ２０−１〜４の各々における遺伝子情報は、既にその種類毎に分類されているとする。記録部３００は、既に分類された遺伝子情報の種類毎に、その種類の遺伝子情報を保有しているパーティを代表する代表パーティを記録する。記録部３００は、これら代表パーティを示す情報をパーティ２０−４の記録部３００から受信して記録してもよい。
【００２０】
より具体的には、記録部３００は、種類１の遺伝子情報を保有する代表パーティとしてパーティ２０−１を記録し、種類２の遺伝子情報を保有する代表パーティとしてパーティ２０−３を記録している。記録部３００は、パーティ２０−２およびパーティ２０−４は記録していない。また、記録部３００は、代表パーティのみを記録し、その代表パーティが保有する遺伝子情報の種類は記録しない。即ち、パーティ２０−５の管理者は、記録部３００の記録内容を解析しても、各々の代表パーティが有している遺伝子情報の種類を知ることはできない。
【００２１】
代表パーティ選択部３１０は、既に分類された遺伝子情報の種類毎に、その種類の遺伝子情報を保有するパーティを代表する代表パーティを選択する。具体的には、代表パーティ選択部３１０は、遺伝子情報の各々の種類に対応する代表パーティを記録部３００から検索して特定する。本実施例においては、代表パーティ選択部３１０は、パーティ２０−１およびパーティ２０−３を代表パーティとして選択する。対象パーティ選択部３２０は、未だに分類されていない遺伝子情報を有する複数のパーティの中から、予め定められた順序に従って対象パーティを順次選択する。本例において、当該予め定められた順序はパーティ２０−１〜Ｎをこの順序で指定する順序とする。対象パーティ選択部３２０は、例えば、パーティ２０−４の対象パーティ選択部３２０から指示を受けて、当該予め定められた順序においてパーティ２０−４の次に配列されるパーティ２０−５（つまり自分自身）を対象パーティとして選択する。更に、対象パーティ選択部３２０は、次の対象パーティとしてパーティ２０−６を指定する旨をパーティ２０−６の対象パーティ選択部３２０に通知してもよい。
【００２２】
交換部３３０は、各々の代表パーティと対象パーティとの間で、各々の暗号鍵で当該パーティのプライベートデータを暗号化した暗号データを交換させる。即ち交換部３３０は、暗号処理部２１０に指示してパーティ２０−５の遺伝子情報を暗号化させる。また、交換部３３０は、パーティ２０−１およびパーティ２０−３に指示して、パーティ２０−１の遺伝子情報をパーティ２０−１で暗号化させ、パーティ２０−３の遺伝子情報をパーティ２０−３の暗号鍵で暗号化させる。そして、交換部３３０は、暗号処理部２１０において得られた暗号データと、パーティ２０−１およびパーティ２０−３の各々において得られた暗号データとを交換させる。
【００２３】
第１取得部３４０は、対象パーティが各々の代表パーティから取得した暗号データを、対象パーティの暗号鍵で更に暗号化することにより生成された第１相互暗号データを取得する。即ち、第１取得部３４０は、パーティ２０−１の遺伝子情報をパーティ２０−１の暗号鍵で暗号化し、かつパーティ２０−５の暗号鍵で更に暗号化した暗号データを、パーティ２０−１についての第１相互暗号データとして取得する。また、第１取得部３４０は、パーティ２０−３の遺伝子情報をパーティ２０−３の暗号鍵で暗号化し、かつパーティ２０−５の暗号鍵で更に暗号化した暗号データを、パーティ２０−３についての第１相互暗号データとして取得する。
【００２４】
第２取得部３５０は、各々の代表パーティが対象パーティから取得した暗号データを、その代表パーティの暗号鍵で更に暗号化することにより生成された第２相互暗号データを取得する。即ち、第２取得部３５０は、パーティ２０−５の遺伝子情報をパーティ２０−５の暗号鍵で暗号化し、かつパーティ２０−１の暗号鍵で更に暗号化した暗号データを、パーティ２０−１についての第２相互暗号データとして取得する。また、第２取得部３５０は、パーティ２０−５の遺伝子情報をパーティ２０−５の暗号鍵で暗号化し、かつパーティ２０−３の暗号鍵で更に暗号化した暗号データを、パーティ２０−３についての第２相互暗号データとして取得する。
【００２５】
判断部３６０は、各々の代表パーティについて、その代表パーティについて生成された第１相互暗号データが第２相互暗号データと一致することを条件として、その代表パーティおよび対象パーティが共に同一種類の遺伝子情報を有すると判断する。図１に示したように、パーティ２０−５は種類２の遺伝子情報を有する。従って、判断部３６０は、パーティ２０−３について生成された第１相互暗号データが第２相互暗号データと一致すると判断する。この結果、判断部３６０は、パーティ２０−３およびパーティ２０−５が共に同一種類の遺伝子情報を有すると判断し、判断結果を出力する。
【００２６】
登録部３７０は、対象パーティの遺伝子情報の種類が、何れの代表パーティの遺伝子情報の種類にも一致しなかったことを条件として、その対象パーティを新たな代表パーティとして記録部３００に登録する。例えば、登録部３７０は、パーティ２０−５の遺伝子情報の種類が、パーティ２０−１およびパーティ２０−３の何れの遺伝子情報の種類とも一致しなければ、パーティ２０−５を新たな代表パーティとして登録する。これを受けて、記録部３００は、次の対象パーティであるパーティ２０−６の記録部３００に対して、新たに登録された代表パーティを含めた全ての代表パーティの情報を送信する。
【００２７】
以上、本図で説明した機能をパーティ２０−１〜Ｎの各々が有しているので、パーティ２０−１〜Ｎの各々は、自らが有する遺伝子情報の種類が他の何れのパーティと同一であるか否かを判断できる。この判断の判断結果を集計することにより、各々の遺伝子情報をその種類毎に分類できる。更に、この分類結果を利用すれば、遺伝子情報の母集団全体に対する各種類の遺伝子情報が占める割合等の、各種の統計情報を得ることができる。統計情報の利用・分析方法については、上述の罹患同胞対解析の文献（非特許文献１）等に詳しいので、説明を省略する。
【００２８】
また、本図で説明した機能によれば、パーティ２０−１〜Ｎの各々は、自らが有する遺伝子情報の種類を他のパーティに知らせる必要がない。また、上記判断結果を集計する場合においても、同一種類の遺伝子情報を共有するパーティの組が判明するのみで、各々のパーティが保有する遺伝子情報の具体的な内容は漏洩しない。これにより、疾患の原因として疑われる遺伝子情報等のプライベートデータを第三者から保護して秘密を保持できる。
【００２９】
図４は、管理装置３０が遺伝子情報を分類する処理の一例を示す。パーティ２０−１〜Ｎの各々において、管理装置３０は、これより述べる処理を、１つの遺伝子座位について１回ずつ実行する。まず、対象パーティ選択部３２０は、未だに分類されていない遺伝子情報を有する複数のパーティの中から、予め定められた順序に従って対象パーティを選択する（Ｓ４００）。
【００３０】
代表パーティ選択部３１０は、既に分類された遺伝子情報の種類毎に、その種類の遺伝子情報を保有するパーティを代表する代表パーティを選択する（Ｓ４１０）。代表パーティの選択処理には、以下の２つのバリエーションが考えられる。
【００３１】
（１）代表パーティを登録する方法
図３で述べたように、記録部３００は、既に分類された遺伝子情報の種類毎に、その種類の遺伝子情報を保有しているパーティを代表する代表パーティを記録する。代表パーティ選択部３１０は、記録部３００に記録されている代表パーティを検索して読み出すことによって、代表パーティを選択できる。記録部３００の記録内容を変数Ｙとすれば、Ｙ＝｛Ｐ１，Ｐ３｝と表記できる。
【００３２】
（２）パーティの組を遺伝子情報の種類毎に登録する方法
図３で述べた構成とは異なり、記録部３００は、既に分類された遺伝子情報の種類の各々に対応付けて、その種類の遺伝子情報を保有しているパーティの組を記録する。即ち図１を例に採れば、記録部３００は、種類１の遺伝子情報を保有しているパーティの組として、パーティ２０−１、パーティ２０−２、およびパーティ２０−４を記録する。そして、記録部３００は、種類２の遺伝子情報を保有しているパーティの組としてパーティ２０−３のみを記録する。記録部３００の記録内容を変数Ｙとすれば、Ｙ＝｛｛Ｐ１，Ｐ２，Ｐ４｝，｛Ｐ３｝｝と表記できる。
【００３３】
この場合、代表パーティ選択部３１０は、遺伝子情報の各々の種類に対応する代表パーティを、記録部３００においてその種類に対応して記録されたパーティの中から選択する。即ち代表パーティ選択部３１０は、パーティ２０−１、パーティ２０−２、およびパーティ２０−４の中から何れか１つの代表パーティを選択し、パーティ２０−３を代表パーティとして選択する。このとき、好ましくは、代表パーティ選択部３１０は、少なくとも１つの遺伝子情報を保有するパーティの組の中から代表パーティを無作為に選択する。即ち、パーティ２０−１、パーティ２０−２、およびパーティ２０−４の中から代表パーティが無作為に選択される。これにより、特定のパーティのみに通信トラフィックが集中することを防止できる。
【００３４】
更に好ましくは、代表パーティ選択部３１０は、少なくとも１つの種類の遺伝子情報について、対象パーティ選択部３２０によって対象パーティが選択される毎に、その種類に対応して記録されたパーティの組の中から、予め定められた順序で代表パーティを選択する。即ち、対象パーティがパーティ２０−Ｍ、パーティ２０−（Ｍ＋１）、およびパーティ２０−（Ｍ＋２）の順に順次選択されるのに従って、パーティ２０−１、パーティ２０−２およびパーティ２０−４が順次この順に代表パーティとして選択される。これによって、通信トラフィックを一層分散させることができる。
【００３５】
更に他の例として、代表パーティ選択部３１０は、少なくとも１つの種類のプライベートデータについて、対象パーティ選択部３２０によって対象パーティが選択される毎に、その種類に対応して記録されたパーティの組の中から、その対象パーティとの間の通信速度が所定の基準速度以上のパーティを代表パーティとして選択する。各パーティ間の通信速度は、見積もり速度として予め定められていてもよいし、対象パーティを選択する毎に測定されてもよい。
Ｓ４１０の説明を終わる。
【００３６】
交換部３３０は、各々の代表パーティと対象パーティとの間で、各々の暗号鍵で当該パーティのプライベートデータを暗号化した暗号データを交換させる（Ｓ４２０）。第１取得部３４０は、対象パーティが各々の代表パーティから取得した暗号データを、対象パーティの暗号鍵で更に暗号化することにより生成された第１相互暗号データを取得する（Ｓ４３０）。また、第２取得部３５０は、各々の代表パーティが対象パーティから取得した暗号データを、その代表パーティの暗号鍵で更に暗号化することにより生成された第２相互暗号データを取得する（Ｓ４４０）。
【００３７】
判断部３６０は、各々の代表パーティについて、その代表パーティについて生成された第１相互暗号データが第２相互暗号データと一致することを条件として、その代表パーティおよび対象パーティが共に同一種類の遺伝子情報を有すると判断する（Ｓ４５０）。このとき、遺伝子情報の分類処理を効率化するために、管理装置３０は、以下の処理を行ってもよい。
【００３８】
判断部３６０は、対象パーティの遺伝子情報の種類が、何れの代表パーティの遺伝子情報の種類にも一致しなかったことを条件として、その対象パーティの遺伝子情報をその対象パーティの暗号鍵で暗号化した暗号データを生成して保持しておく。そして、判断部３６０は、その暗号データを、当該対象パーティが保持している遺伝子情報の代わりに公開される換字データとして、遺伝子情報の集計者に通知してもよい。一方で、判断部３６０は、何れかの代表パーティの遺伝子情報が対象パーティの遺伝子情報と一致したことを条件として、その代表パーティが公開する換字データを、対象パーティの換字データとして公開してもよい。これによって、遺伝子情報の集計者は、遺伝子情報の内容を知ることなく、各種類の遺伝子情報が保有されている数のみを知ることができる。
【００３９】
続いて、判断部３６０による判断結果に基づいて、登録部３７０は、パーティを記録部３００に登録する（Ｓ４６０）。登録処理は、Ｓ４１０で述べた代表パーティの選択処理によって異なる。
【００４０】
（１）代表パーティを登録する方法の場合
登録部３７０は、対象パーティの遺伝子情報の種類が、何れの代表パーティの遺伝子情報の種類にも一致しなかったことを条件として、その対象パーティを新たな代表パーティとして記録部３００に登録する。
【００４１】
（２）パーティの組を遺伝子情報の種類毎に登録する方法の場合
登録部３７０は、対象パーティの遺伝子情報の種類が各代表パーティの遺伝子情報の種類に一致するか否かに関わらず、判断部３６０によって判断された対象パーティの種類に基づいて、対象パーティを記録部３００に追加して登録する。具体的には、登録部３７０は、何れかの代表パーティおよび対象パーティが共に同一種類の遺伝子情報を有する場合には、その代表パーティが属するパーティの組に対象パーティを追加して登録する。一方で、登録部３７０は、何れの代表パーティも対象パーティと同一種類の遺伝子情報を有しない場合には、その対象パーティを単一のパーティから成る新たなパーティの組として記録部３００に登録する。
Ｓ４６０の説明を終わる。
【００４２】
以上に示す第１実施例によれば、これまでより効率的に、各保有者が保有するプライベートデータを、他の保有者に知られることなく分類することができる。特に、プライベートデータが対立遺伝子の情報である場合には、以下の仮定１が成り立つ。
【００４３】
仮定１：プライベートデータの種類は、対立遺伝子の種類であり、これは高々十数個であって、すべてが既知である(未知の対立遺伝子は存在しない)
【００４４】
ここで、代表パーティは対立遺伝子の種類毎に選択されるものであるから、代表パーティの数は、高々対立遺伝子の種類の数となる。従って、各々の対象パーティにおいて遺伝子情報を交換する処理は、高々対立遺伝子の種類数となる。このように、本実施例によれば、分析の対象となるパーティの数が増加しても、分類の処理時間が爆発的に増加することを防ぎ、効率的な処理を行うことができる。
【００４５】
なお、本実施例において、管理装置３０は、パーティ２０−５をはじめパーティ２０−１〜Ｎの各々に設けられている。これに代えて、管理装置３０は、パーティ２０−１〜Ｎとは別体に設けられ、パーティ２０−１〜Ｎによって共用されてもよい。このような構成における処理の流れを変形例として説明する。
【００４６】
図５は、第１実施例の変形例における処理の流れを説明する概念図である。パーティ２０−１〜５の各々は、同一のハッシュ関数ｈ（ｘ）を有している。また、パーティ２０−１は、種類１の遺伝子情報を有し、パーティ２０−３は、種類２の遺伝子情報を有し、パーティ２０−５は、種類２の遺伝子情報を有している。また、本例の管理装置３０は、パーティ２０−１〜Ｎの何れとも異なる管理者によって管理されている。交換部３３０の指示に基づいて、パーティ２０−１およびパーティ２０−５は暗号データを生成して交換する。具体的には、まず、パーティ２０−５は、種類２の遺伝子情報にハッシュ関数を適用してハッシュ値ｈ（２）を算出する（Ｓ１）。そして、パーティ２０−５は、パーティ２０−５の暗号鍵でｈ（２）を暗号化して暗号データｋ５（ｈ（２））を得る（Ｓ２）。そして、交換部３３０は、ｋ５（ｈ（２））をパーティ２０−５から取得し（Ｓ３）、パーティ２０−１に送信し（Ｓ４）、パーティ２０−３に送信する（Ｓ６）。
【００４７】
パーティ２０−１は、受信したｋ５（ｈ（２））を、自らの暗号鍵で更に暗号化することにより第１相互暗号データｋ１（ｋ５（ｈ（２）））を生成する。また、パーティ２０−１は、種類１の遺伝子情報にハッシュ関数を適用した上で、自らの暗号鍵で暗号化することにより暗号データｋ１（ｈ（１））を生成する。そして、第１取得部３４０は、ｋ１（ｋ５（ｈ（２）））をパーティ２０−１から取得し、交換部３３０は、ｋ１（ｈ（１））をパーティ２０−１から取得する（Ｓ５）。
【００４８】
パーティ２０−３は、受信したｋ５（ｈ（２））を、自らの暗号鍵で更に暗号化することにより第１相互暗号データｋ３（ｋ５（ｈ（２）））を生成する。また、パーティ２０−３は、種類２の遺伝子情報にハッシュ関数を適用してｈ（２）を算出し、算出したｈ（２）を自らの暗号鍵で暗号化することによりｋ３（ｈ（２））を生成する。第１取得部３４０は、第１相互暗号データｋ３（ｋ５（ｈ（２）））をパーティ２０−３から取得し、交換部３３０は、暗号データｋ３（ｈ（２））をパーティ２０−３から取得する（Ｓ７）。
【００４９】
交換部３３０は、取得したｋ１（ｈ（１））およびｋ３（ｈ（２））をパーティ２０−５に送信する（Ｓ８）。パーティ２０−５は、受信したｋ１（ｈ（１））およびｋ３（ｈ（２））の各々を自らの暗号鍵で暗号化して第２相互暗号データであるｋ５（ｋ１（ｈ（１）））およびｋ５（ｋ３（ｈ（２）））を生成する。第２取得部３５０は、ｋ５（ｋ１（ｈ（１）））およびｋ５（ｋ３（ｈ（２）））をパーティ２０−５から取得する（Ｓ９）。
【００５０】
判断部３６０は、ｋ１（ｋ５（ｈ（２）））およびｋ５（ｋ１（ｈ（１）））が一致しないことから、パーティ２０−１およびパーティ２０−５は互いに異なる種類の遺伝子情報を有していると判断する（Ｓ１０）。また、判断部３６０は、ｋ３（ｋ５（ｈ（２）））およびｋ５（ｋ３（ｈ２）））が一致することから、パーティ２０−３およびパーティ２０−５が同一種類の遺伝子情報を有していると判断する。これらの判断結果に基づいて、分類処理が実現される。
【００５１】
以上、本変形例によっても、これまでより効率的に遺伝子情報を分類することができる。更に、本変形例によれば、同一種類の遺伝子情報を保有しているパーティの組は、管理装置３０のみによって判定され、その判定結果はパーティ２０−１〜Ｎの何れにも開示されない。更に、管理装置３０においては、暗号データのみが処理の対象とされ、実際の遺伝子情報は用いられない。即ち、管理装置３０においても、各々のパーティが保有する遺伝子情報は特定できない。このように、本変形例によれば、プライベートデータの漏洩量を一層少なくすることができる。
【００５２】
（第２実施例）
図６は、遺伝子情報分類システム１０の全体構成を示す（第２実施例）。遺伝子情報分類システム１０は、パーティ６０−１〜Ｎと、管理装置７０とを備える。パーティ６０−１〜Ｎの各々は、情報の機密性を保持できる組織毎に設けられている。例えば、パーティ６０−１〜Ｎの各々は、複数の組織の各々に設けられた複数の端末装置の各々であってもよい。一例として、パーティ６０−１〜Ｎの各々は、各病院に設けられた患者管理用のサーバコンピュータであってもよい。
【００５３】
パーティ６０−１〜Ｎの各々は、複数の遺伝子情報を有する。本図では、遺伝子情報の種類毎に番号を付して示す。例えば、パーティ６０−１は、種類１の遺伝子情報、種類３の遺伝子情報、および、種類４の遺伝子情報その他を有する。パーティ６０−１〜４の遺伝子情報は既に分類されているのでその種類は判明している。一方で、パーティ６０−５の遺伝子情報はこれから分類するのでその種類は不明であるが、実際には、パーティ６０−５は、種類２の遺伝子情報、種類１１の遺伝子情報、および、種類１２の遺伝子情報その他を有する。
また、パーティ６０−１〜Ｎの各々は、暗号化の順序によらず同一の暗号データを得ることができる複数の暗号鍵をそれぞれ有する。
【００５４】
管理装置７０は、パーティ６０−１〜Ｎの何れとも異なる管理者によって管理されている。そして、管理装置７０は、パーティ６０−１〜Ｎの各々によって保有されている遺伝子情報を分類して所定の判断を行い、判断結果を出力する。
【００５５】
図７は、管理装置７０の機能を機能ブロック毎に示す。管理装置７０は、代表データ選択部７００と、対象パーティ選択部７１０と、交換部７２０と、キャッシュ部７３０と、第１取得部７４０と、第２取得部７５０と、判断部７６０とを有する。代表データ選択部７００は、既に遺伝子情報の種類が分類されたパーティである基準パーティについて、その基準パーティが有する複数の遺伝子情報の種類毎に、その種類の遺伝子情報の組を代表する代表データを選択する。本例では、パーティ６０−１が基準パーティとして予め定められている。従って、代表データ選択部７００は、パーティ６０−１が有する種類１の遺伝子情報について代表データを選択し、種類３の遺伝子情報について代表データを選択し、種類４の遺伝子情報から代表データを選択する。なお、パーティ６０−１内における遺伝子情報の分類は、第１実施例で述べた方法のほか、従来公知の方法によって実現される。
【００５６】
対象パーティ選択部７１０は、基準パーティ以外のパーティの中から、新たに分類の対象とする遺伝子情報を保有する対象パーティを順次選択する。ここで、対象パーティの選択順序は、予め定められている。例えば、この選択順序によれば、パーティ６０−１〜Ｎは、順次この順に対象パーティとして選択される。この場合、対象パーティ選択部７１０は、判断部７６０によって、ある対象パーティについて遺伝子情報が分類されたことに応答して、その次の対象パーティを選択してもよい。いま、パーティ６０−１〜４における遺伝子情報は既に分類されているので、対象パーティ選択部７１０は、パーティ６０−５を対象パーティとして選択する。
【００５７】
交換部７２０は、基準パーティと対象パーティとの間で、各々の代表データを基準パーティの暗号鍵で暗号化した暗号データの各々と、対象パーティが有する少なくとも１つの遺伝子情報を対象パーティの暗号鍵で暗号化した暗号データの各々とを交換させる。例えば、まず、交換部７２０は、各々の代表データをパーティ６０−１の暗号鍵で暗号化させて暗号データの各々を生成させる。また、交換部７２０は、パーティ６０−５が有する全ての遺伝子情報をパーティ６０−５の暗号鍵で暗号化させて暗号データの各々を生成させる。そして、交換部７２０は、パーティ６０−１において生成された暗号データの各々と、パーティ６０−５において生成された暗号データの各々とを交換させる。
【００５８】
キャッシュ部７３０は、交換部７２０の処理において、基準パーティから対象パーティに対して送信される暗号データをキャッシュする。ここで、対象パーティがパーティ６０−２〜Ｎの何れの場合であっても、基準パーティであるパーティ６０−１から他のパーティに送信される暗号データは同一である。このため、キャッシュ部７３０は、この暗号データを一旦取得すれば、それをキャッシュして再利用することで、暗号データを再度取得する処理を不要とすることができる。従って例えば、キャッシュ部７３０は、パーティ６０−１からパーティ６０−２に対して送信される暗号データを取得してキャッシュする。そして、交換部７２０は、キャッシュ部７３０にキャッシュされた各々の暗号データを、他の各々の対象パーティ（パーティ６０−３〜Ｎ）に送信する。これにより、交換部７２０は、暗号データを取得する処理を一部省略して効率的に、基準パーティおよび各々の対象パーティとの間で暗号データを順次交換することができる。
【００５９】
第１取得部７４０は、基準パーティが対象パーティから取得した各々の暗号データを、基準パーティの暗号鍵で更に暗号化することにより生成された各々の第１相互暗号データを取得する。即ち例えば、第１取得部７４０は、パーティ６０−１がパーティ６０−５から取得した各々の暗号データを、パーティ６０−１の暗号鍵で更に暗号化させ、暗号化されたデータを第１相互暗号データとして取得する。
【００６０】
第２取得部７５０は、対象パーティが基準パーティから取得した各々の暗号データを、対象パーティの暗号鍵で更に暗号化することにより生成された各々の第２相互暗号データを取得する。即ち例えば、第２取得部７５０は、パーティ６０−５がパーティ６０−１から取得した各々の暗号データを、パーティ６０−５の暗号鍵で更に暗号化させ、暗号化されたデータを第２相互暗号データとして取得する。
【００６１】
判断部７６０は、各々の第１相互暗号データが、何れかの第２相互暗号データと一致することを条件として、基準パーティと対象パーティとが同一種類の遺伝子情報を保有していると判断する。即ち例えば、判断部７６０は、パーティ６０−１から取得した第１相互暗号データと、パーティ６０−５から取得した第２相互暗号データとが一致するので、パーティ６０−１およびパーティ６０−５が共に同一種類の遺伝子情報を保有していると判断し、判断結果を出力する。図３で既に説明したように、判断結果の活用技術は従来公知であるので説明を省略する。
【００６２】
なお、本実施例において、管理装置７０は、パーティ６０−１〜Ｎの何れとも異なる管理者によって管理され、パーティ６０−１〜Ｎとは別体に設けられている。これに代えて、管理装置７０は、パーティ６０−１〜Ｎの少なくとも何れか１つに設けられていてもよい。このような構成によっても、各々のパーティに他のパーティの遺伝子情報を開示することなく、かつ効率的に、遺伝子情報を分類することができる。
【００６３】
図８は、管理装置７０が遺伝子情報を分類する処理の一例を示す。管理装置７０は、各々の対象パーティについて以下の処理を繰り返す。代表データ選択部７００は、既に遺伝子情報の種類が分類されたパーティである基準パーティについて、その基準パーティが有する複数の遺伝子情報の種類毎に、その種類の遺伝子情報の組を代表する代表データを選択する（Ｓ８００）。対象パーティ選択部７１０は、基準パーティ以外のパーティの中から、新たに分類の対象とする遺伝子情報を保有する対象パーティを選択する（Ｓ８１０）。更にこの場合、代表データ選択部７００は、当該対象パーティに保有される遺伝子情報から少なくとも１つの代表データを選択してもよい。
【００６４】
交換部７２０は、基準パーティと対象パーティとの間で、各々の代表データを基準パーティの暗号鍵で暗号化した暗号データの各々と、対象パーティが有する少なくとも１つの遺伝子情報を対象パーティの暗号鍵で暗号化した暗号データの各々とを交換させる（Ｓ８２０）。上記Ｓ８１０において対象パーティからも代表データを選択した場合においては、各々のパーティの代表データを交換させてもよい。即ち、交換部７２０は、基準パーティと対象パーティとの間で、基準パーティの各々の代表データを基準パーティの暗号鍵で暗号化した暗号データの各々と、対象パーティの各々の代表データを対象パーティの暗号鍵で暗号化した暗号データの各々とを交換させてもよい。
【００６５】
第１取得部７４０は、基準パーティが対象パーティから取得した各々の暗号データを、基準パーティの暗号鍵で更に暗号化することにより生成された各々の第１相互暗号データを取得する（Ｓ８３０）。第２取得部７５０は、対象パーティが基準パーティから取得した各々の暗号データを、対象パーティの暗号鍵で更に暗号化することにより生成された各々の第２相互暗号データを取得する（Ｓ８４０）。
【００６６】
判断部７６０は、各々の第１相互暗号データが、何れかの第２相互暗号データと一致することを条件として、基準パーティと対象パーティとが同一種類の遺伝子情報を保有していると判断する（Ｓ８５０）。例えば、判断部７６０は、各代表データについて、第１相互暗号データが第２相互暗号データと一致する数に基づいて、当該代表データと同一種類の遺伝子情報の数を求めてもよい。キャッシュ部７３０は、交換部７２０の処理において、基準パーティから対象パーティに対して送信される暗号データをキャッシュし、次回以降の処理において交換部７２０に利用させる（Ｓ８６０）。
【００６７】
図９は、第２実施例における処理の流れを説明する概念図である。パーティ６０−１〜５の各々は、同一のハッシュ関数ｈ（ｘ）を有している。また、パーティ６０−１は、種類１の遺伝子情報を有し、パーティ６０−５は、種類２の遺伝子情報を有している。交換部７２０の指示に基づいて、パーティ６０−１およびパーティ６０−５は暗号データを生成して交換する。具体的には、まず、パーティ６０−５は、種類２の遺伝子情報にハッシュ関数を適用してハッシュ値ｈ（２）を算出する（Ｓ１）。そして、パーティ６０−５は、パーティ６０−５の暗号鍵でｈ（２）を暗号化してｋ５（ｈ（２））を得る（Ｓ２）。そして、パーティ６０−５は、ｋ５（ｈ（２））を管理装置７０に送信する（Ｓ３）。
【００６８】
次に、管理装置７０は、ｋ５（ｈ（２））をパーティ６０−１に送信する（Ｓ４）。そして、パーティ６０−１は、受信したｋ５（ｈ（２））をパーティ６０−１の暗号鍵で暗号化したｋ１（ｋ５（ｈ（２）））を管理装置７０に送信する（Ｓ５）。更に、パーティ６０−１は、自らが保有する種類１の遺伝子情報にハッシュ関数を適用してハッシュ値ｈ（１）を算出し、算出したｈ（１）を暗号化して暗号データｋ１（ｈ（１））を求め、管理装置７０に送信する。
【００６９】
管理装置７０は、受信した暗号データのうちｋ１（ｈ（１））のみをパーティ６０−５に送信する（Ｓ６）。パーティ６０−５は、受信したｋ１（ｈ（１））を自らの暗号鍵で暗号化してｋ５（ｋ１（ｈ（１）））を生成し、管理装置７０に送信する（Ｓ７）。管理装置７０は、ｋ１（ｋ５（ｈ（２）））と、ｋ５（ｋ１（ｈ（１）））とを比較し、比較結果に基づいて遺伝子情報を分類する（Ｓ８）。
【００７０】
以上に示す第２実施例によっても、これまでより効率的に、各保有者が保有するプライベートデータを、他の保有者に知られることなく分類することができる。特に、プライベートデータが対立遺伝子の情報であって、各々のパーティが遺伝子研究を行う病院である場合には、上述の仮定１に加えて以下の仮定２が成り立つ。
【００７１】
仮定２：患者は、自分の遺伝子情報を自ら検査して秘密情報として自身で管理することはなく、信用ある医療機関にて遺伝子情報を調査し、それを医療機関が保持するデータベースに登録する。この場合、遺伝子情報はある程度のデータ量が単一の医療機関に集約される。このため、パーティの数は患者の全数にくらべ少ない。また一つの医療機関に保有されたデータにおいて、すべての対立遺伝子が現れる。
【００７２】
この仮定によれば、処理の対象となるパーティの数を減少させ、分類処理を更に効率化することができる。また、医療機関が相互に遺伝子情報の内容を開示する必要が無いので、患者のプライバシーを保護することができる。
【００７３】
（第３実施例）
図１０は、遺伝子情報分類システム１０の全体構成を示す（第３実施例）。遺伝子情報分類システム１０は、パーティ１００−１〜Ｎと、管理装置１１０とを備える。パーティ１００−１〜Ｎの各々は、情報の機密性を保持できる組織毎に設けられている。例えば、パーティ１００−１〜Ｎの各々は、当該パーティに対応して当該パーティにおける暗号化処理を行う複数の端末装置によって実現されてもよい。
【００７４】
パーティ１００−１〜Ｎの各々は、遺伝子情報を有する。本図では、遺伝子情報の種類毎に番号を付して示す。例えば、パーティ１００−１は、種類１の遺伝子情報を有し、パーティ１００−２は、種類２の遺伝子情報を有する。パーティ１００−１、パーティ１００−３およびパーティ１００−６の遺伝子情報は既に分類されているのでその種類は判明している。一方で、パーティ１００−２、パーティ１００−４およびパーティ１００−５の遺伝子情報はこれから分類するのでその種類は不明である。実際には、パーティ１００−２は、種類２の遺伝子情報を有し、パーティ１００−４は、種類２の遺伝子情報を有し、パーティ１００−５は、種類３の遺伝子情報を有する。
【００７５】
管理装置１１０は、パーティ１００−１〜Ｎの何れとも異なる管理者によって管理されている。そして、管理装置１１０は、パーティ１００−１〜Ｎの各々によって保有されている遺伝子情報を分類して所定の判断を行い、判断結果を出力する。
【００７６】
図１１は、管理装置１１０の機能を機能ブロックにより示す。管理装置１１０は、基準パーティ選択部１０００と、未分類パーティ選択部１０１０と、交換部１０２０と、第１取得部１０３０と、第２取得部１０４０と、判断部１０５０とを有する。基準パーティ選択部１０００は、既に分類された遺伝子情報を保有するパーティを基準パーティとして順次選択する。未分類パーティ選択部１０１０は、未だに分類されていない遺伝子情報を保有している未分類パーティを順次選択する。交換部１０２０は、各々の未分類パーティと基準パーティとの間で、各々の暗号鍵で当該パーティの遺伝子情報を暗号化した暗号データを交換させる。
【００７７】
第１取得部１０３０は、基準パーティが各々の未分類パーティから取得した暗号データを、前記基準パーティの暗号鍵で更に暗号化することにより生成された第１相互暗号データを取得する。第２取得部１０４０は、各々の未分類パーティが基準パーティから取得した暗号データを、当該未分類パーティの暗号鍵で更に暗号化することにより生成された第２相互暗号データを取得する。判断部１０５０は、各々の未分類パーティについて、当該未分類パーティについて生成された第１相互暗号データが第２相互暗号データに一致することを条件として、当該未分類パーティのおよび基準パーティが共に同一種類の遺伝子情報を保有していると判断する。
【００７８】
判断部１０５０による判断結果を受けて、基準パーティ選択部１０００は、次の基準パーティを選択し、未分類パーティ選択部１０１０は、次の未分類パーティを選択する。具体的には、未分類パーティ選択部１０１０は、基準パーティの遺伝子情報の種類と一致しなかった未分類パーティの各々を、次の未分類パーティとして選択する。また、基準パーティ選択部１０００は、基準パーティの遺伝子情報の種類と一致した未分類パーティの何れかを、次の基準パーティとして選択する。
【００７９】
図１２は、管理装置１１０が遺伝子情報を分類する処理の一例を示す。基準パーティ選択部１０００は、既に分類された遺伝子情報を保有するパーティを基準パーティとして選択する（Ｓ１２００）。未分類パーティ選択部１０１０は、未だに分類されていない遺伝子情報を保有している未分類パーティを選択する（Ｓ１２１０）。交換部１０２０は、各々の未分類パーティと基準パーティとの間で、各々の暗号鍵で当該パーティの遺伝子情報を暗号化した暗号データを交換させる（Ｓ１２２０）。
【００８０】
第１取得部１０３０は、基準パーティが各々の未分類パーティから取得した暗号データを、基準パーティの暗号鍵で更に暗号化することにより生成された第１相互暗号データを取得する（Ｓ１２３０）。第２取得部１０４０は、各々の未分類パーティが基準パーティから取得した暗号データを、当該未分類パーティの暗号鍵で更に暗号化することにより生成された第２相互暗号データを取得する（Ｓ１２４０）。判断部１０５０は、各々の未分類パーティについて、当該未分類パーティについて生成された第１相互暗号データが第２相互暗号データに一致することを条件として、当該未分類パーティのおよび基準パーティが共に同一種類の遺伝子情報を保有していると判断する（Ｓ１２５０）。
【００８１】
全てのパーティについて、その遺伝子情報が既に分類できた場合には（Ｓ１２６０：ＹＥＳ）、管理装置１１０は、本図の処理を終了する。一方で、何れかのパーティが依然として未分類パーティである場合には（Ｓ１２６０：ＮＯ）、管理装置１１０は、Ｓ１２００に処理を戻す。Ｓ１２００において、基準パーティ選択部１０００は、基準パーティの遺伝子情報の種類と一致した未分類パーティの何れかを、次の基準パーティとして選択する（Ｓ１２００）。また、未分類パーティ選択部１０１０は、基準パーティの遺伝子情報の種類と一致しなかった未分類パーティの各々を、次の未分類パーティとして選択する（Ｓ１２１０）。これらの基準パーティおよび未分類パーティについて、交換部１０２０は、交換処理を行う（Ｓ１２２０）。以降の処理は既に述べた処理と同一であるので説明を省略する。
【００８２】
以上、本図の処理によっても、第１実施例および第２実施例と同様に、各保有者が保有するプライベートデータを、他の保有者に知られることなく分類することができる。更に、第１実施例および第２実施例と同様に、分類処理に要する処理時間をこれまでよりも短縮して処理を効率化できる。
【００８３】
図１３は、以上の各々の実施例においてパーティ２０−５、管理装置７０または管理装置１１０として機能する情報システム５００のハードウェア構成の一例を示す。情報システム５００は、ホストコントローラ１３８２により相互に接続されるＣＰＵ１３００、ＲＡＭ１３２０、及びグラフィックコントローラ１３７５を有するＣＰＵ周辺部と、入出力コントローラ１３８４によりホストコントローラ１３８２に接続される通信インターフェイス１３３０、ハードディスクドライブ１３４０、及びＣＤ−ＲＯＭドライブ１３６０を有する入出力部と、入出力コントローラ１３８４に接続されるＲＯＭ１３１０、フレキシブルディスクドライブ１３５０、及び入出力チップ１３７０を有するレガシー入出力部とを備える。
【００８４】
ホストコントローラ１３８２は、ＲＡＭ１３２０と、高い転送レートでＲＡＭ１３２０をアクセスするＣＰＵ１３００及びグラフィックコントローラ１３７５とを接続する。ＣＰＵ１３００は、ＲＯＭ１３１０及びＲＡＭ１３２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１３７５は、ＣＰＵ１３００等がＲＡＭ１３２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１３８０上に表示させる。これに代えて、グラフィックコントローラ１３７５は、ＣＰＵ１３００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００８５】
入出力コントローラ１３８４は、ホストコントローラ１３８２と、比較的高速な入出力装置である通信インターフェイス１３３０、ハードディスクドライブ１３４０、及びＣＤ−ＲＯＭドライブ１３６０を接続する。通信インターフェイス１３３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１３４０は、情報システム５００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１３６０は、ＣＤ−ＲＯＭ１３９５からプログラム又はデータを読み取り、ＲＡＭ１３２０又はハードディスクドライブ１３４０に提供する。
【００８６】
また、入出力コントローラ１３８４には、ＲＯＭ１３１０と、フレキシブルディスクドライブ１３５０や入出力チップ１３７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１３１０は、情報システム５００の起動時にＣＰＵ１３００が実行するブートプログラムや、情報システム５００のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１３５０は、フレキシブルディスク１３９０からプログラム又はデータを読み取り、入出力チップ１３７０を介してＲＡＭ１３２０またはハードディスクドライブ１３４０に提供する。入出力チップ１３７０は、フレキシブルディスク１３９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００８７】
情報システム５００に提供されるプログラムは、フレキシブルディスク１３９０、ＣＤ−ＲＯＭ１３９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１３７０及び/又は入出力コントローラ１３８４を介して、記録媒体から読み出され情報システム５００にインストールされて実行される。プログラムが情報システム５００等に働きかけて行わせる動作は、図１から図１２において説明したパーティ２０−５、管理装置７０または管理装置１１０における動作と同一であるから、説明を省略する。
【００８８】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１３９０、ＣＤ−ＲＯＭ１３９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを情報システム５００に提供してもよい。
【００８９】
以下、上述の各実施例において説明した処理の詳細について補足説明する。
（１）罹患同胞対解析について
第１実施例において、パーティ２０−１〜Ｎは、自らが有する遺伝子情報の種類が他の何れのパーティと同一であるかを判断できる。この判断結果を集計することにより、各々の遺伝子情報をその種類毎に分類することができる。この分類結果は、罹患同胞対解析に活用できる。以下、罹患同胞対解析について説明する。
【００９０】
罹患同胞対解析は、例えば以下のようなデータを解析の対象とする。
家族ID=1 個体ID=21 父親ID=0 母親ID=0 性別ID=1 疾患ID=1 対立遺伝子1=1/1 対立遺伝子2=3/5
家族ID=1 個体ID=22 父親ID=0 母親ID=0 性別ID=2 疾患ID=1 対立遺伝子1=1/1 対立遺伝子2=4/7
家族ID=1 個体ID=23 父親ID=21 母親ID=22 性別ID=1 疾患ID=2 対立遺伝子1=1/1 対立遺伝子2=5/7
家族ID=1 個体ID=24 父親ID=21 母親ID=22 性別ID=2 疾患ID=2 対立遺伝子1=1/1 対立遺伝子2=3/4
【００９１】
このデータにおいて、対立遺伝子１とは、ある遺伝子座における対立遺伝子の組を示す。また、対立遺伝子２とは、対立遺伝子１とは異なる他の遺伝子座における対立遺伝子の組を示す。罹患同胞対解析においては、IBD(Identity By Descent)というパラメータが用いられる。IBD とは、二個体の対立遺伝子が、祖先と同じものを共有する状態をいう。罹患同胞対解析では、血縁関係にあるに個体の間のIBD を考える。例えば、ある遺伝子座において、父親F の遺伝型が1/2、母親M の遺伝子型が3/4 であるする。両者の四人の子Ck, (i = 1, ..., 4) の遺伝型がそれぞれ、1/3, 1/3, 1/4, 2/4 であるとすると、F,Ck およびM,Ck はそれぞれ一つの対立遺伝子を共有しているので、IBD = 1 である。なお、親子間のIBD は必ず1 である。
【００９２】
一方、兄弟間のIBD は、C1(1/3), C1(1/3) では、1, 3 を共有しているので、IBD = 2, C1(1/3), C3(1/4) では、1 のみを共有しているので、IBD = 1, C1(1/3), C4(2/4)では、一つも共有していないので、IBD = 0 である。この場合、兄弟同士のIBD は、IBD = 0, 2 である確率が0.25、IBD = 1 である確率が0.5 である。
【００９３】
続いて、罹患同胞対解析の原理を簡単に説明する。罹患同胞対（疾患が発症している兄弟）のデータを集めてきて、この集団について同じように調べたとき、もし観察したマーカー遺伝子が疾患と連鎖している場合はこの比（１：２：１）がずれる（IBD=2 のペアの数が増え、IBD=0 のペアの数が減る）と考えられる。一方、疾患遺伝子と連鎖してい
ないマーカー遺伝子では、任意な兄弟と同じ配分（＝１：２：１）になると考えられる。
【００９４】
罹患同胞対解析においてはこの仮説を利用し、罹患同胞対における対立遺伝子の共有する割合のズレを指標に観察データの尤度を算出する。尤度は、次のように表される。
【数１】
2006339895.tif 000003
【００９５】
ここで、wij はj 番目の家系の罹患同胞対がIBD = i である確率である。変数はz = (z0, z1, z2) であり、自由度は2（z2 = 1−z1−z0）ゆえ独立変数はz0, z1 の２つである。マーカー遺伝子と、疾患遺伝子が連鎖していないとき(即ち、z0 = 0.25、z1 = 0.5、z2 = 0.25 の場合) の尤度との比をとり、最尤法により、尤度最大となるz を求める。家系データと各個人の遺伝子情報から，尤度最大となるz を求めるソフトウェアが公開されている（非特許文献２を参照）。
【００９６】
（２）暗号化の順序によらず同一の暗号データを得ることができる暗号鍵について
既に述べたように、本実施例において各パーティが用いる暗号の暗号化関数は、暗号化の順序によらず同一の暗号データを得ることが必要である。即ち例えば、暗号化関数f, g およびメッセージx について、f(g(x)) = g(f(x)) となる必要がある。このような暗号化方式は、Commutative encruption(CE)と呼ばれている。以下に、Commutative Encryptionを構成するために必要な性質を示す（より詳細には、非特許文献６を参照。）。
（２−１）indistinguishability
有限の定義域Ωk ⊆ {0, 1}k における分布をD1,D2 とし、x ∈ Ωk が与えられたときにtrue,false を返すk に関する多項式時間アルゴリズムをAk(x)、任意の多項式をp(k) とし、全ての十分大きいk について、
【数２】
2006339895.tif 000004
を満たすとする。このときD1 はD2 に対してcomputationally indistinguishable である、という。
（２−２）Communicative Encryption
Communicative Encryption は、以下の性質を満たす有限の定義域における関数f : KeyF ×DomF → DomFである。
(a) 全てのe, e' ∈ Key において、fe・fe = fe'・fe'
(b) fe について、DomF → DomF は全単射
(c) インバースfe−1 はe が与えられれば多項式時間で計算可能
(d) 分布＜x, fe(x), y, fe(x)＞ は分布＜x, fe(x), y, z＞ とindistinguishable である。ここで、x, y, z ∈r DomF, e ∈rDomF である。∈r は定義域からの一様ランダムな選択を意味する。
（３−３） Example of Commutative Encryption
ドメインF を全てのmodulo p における平方剰余数とする。つまり、p, q = (p−1)/2 は両方とも素数であり、これを安全な素数(safe prime) と呼ぶ。またKeyF を{1, 2,…q−1} とする。このとき、DecisionaDiffie-Hellman 仮説を想定すると、
【数３】
2006339895.tif 000005
はcommutative encryption である。たとえば、
【数４】
2006339895.tif 000006
である。またそのほかの条件も満足している（非特許文献４を参照のこと）。
【００９７】
以上、上記の各実施例によれば、各保有者が保有するプライベートデータを他の保有者に知られることなく、全ての保有者が保有するプライベートデータを効率的に分類することができる。この分類処理は、処理時間が保有者数の２乗に比例するこれまでの方法よりも、極めて短い処理時間によって実現される。実際に保有者が１０００である場合について実験したところ、第１実施例の方法では従来の７０分の１程度の処理時間を要した。更に、第２実施例の方法で病院の数を１０とした場合には、従来の１０００分の１程度の処理時間を要した。このように、上記の各実施例によれば、罹患同胞対解析等の各種解析処理に適用可能な分類結果を、これまでより極めて効率的に求めることができる。
【００９８】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００９９】
【図１】図１は、遺伝子情報分類システム１０の全体構成を示す（第１実施例）。
【図２】図２は、パーティ２０−５の機能構成の一例を示す。
【図３】図３は、管理装置３０の機能を機能ブロック毎に示す。
【図４】図４は、管理装置３０が遺伝子情報を分類する処理の一例を示す。
【図５】図５は、第１実施例の変形例における処理の流れを説明する概念図である。
【図６】図６は、遺伝子情報分類システム１０の全体構成を示す（第２実施例）。
【図７】図７は、管理装置７０の機能を機能ブロック毎に示す。
【図８】図８は、管理装置７０が遺伝子情報を分類する処理の一例を示す。
【図９】図９は、第２実施例における処理の流れを説明する概念図である。
【図１０】図１０は、遺伝子情報分類システム１０の全体構成を示す（第３実施例）。
【図１１】図１１は、管理装置１１０の機能を機能ブロックにより示す。
【図１２】図１２は、管理装置１１０が遺伝子情報を分類する処理の一例を示す。
【図１３】図１３は、以上の各々の実施例においてパーティ２０−５、パーティ６０およびパーティ１００として機能する情報システム５００のハードウェア構成の一例を示す。
【図１４】図１４は、遺伝子情報を開示することなく遺伝子情報を種類毎に分類する処理の概念図である。
【符号の説明】
【０１００】
１０  遺伝子情報分類システム
２０  パーティ
３０  管理装置
６０  パーティ
７０  管理装置
１００  パーティ
１１０  管理装置
２００  遺伝子情報記録部
２１０  暗号処理部
３００  記録部
３１０  代表パーティ選択部
３２０  対象パーティ選択部
３３０  交換部
３４０  第１取得部
３５０  第２取得部
３６０  判断部
３７０  登録部
５００  情報システム
７００  代表データ選択部
７１０  対象パーティ選択部
７２０  交換部
７３０  キャッシュ部
７４０  第１取得部
７５０  第２取得部
７６０  判断部
１０００  基準パーティ選択部
１０１０  未分類パーティ選択部
１０２０  交換部
１０３０  第１取得部
１０４０  第２取得部
１０５０  判断部
【図１】
2006339895.tif 000007
【図２】
2006339895.tif 000008
【図３】
2006339895.tif 000009
【図４】
2006339895.tif 000010
【図５】
2006339895.tif 000011
【図６】
2006339895.tif 000012
【図７】
2006339895.tif 000013
【図８】
2006339895.tif 000014
【図９】
2006339895.tif 000015
【図１０】
2006339895.tif 000016
【図１１】
2006339895.tif 000017
【図１２】
2006339895.tif 000018
【図１３】
2006339895.tif 000019
【図１４】
2006339895.tif 000020