(57)【特許請求の範囲】
【請求項１】
暗号方式の公開鍵である個別の公開鍵を複数個と、
暗号方式の公開鍵である全体の公開鍵と、
コミットメントのパラメターと、
名称と、
が入力される装置を備え、
名称を複数の名称の分散に分散する分散装置を備え、
前記複数の名称の分散のそれぞれのコミットメントを生成する装置を備え、
前記それぞれのコミットメントの開示情報と前記複数の名称の分散のそれぞれを、前記個別の公開鍵で暗号化する装置を備え、
前記複数の名称の分散のそれぞれのコミットメントと、
前記それぞれのコミットメントの開示情報と前記複数の名称の分散の前記個別の公開鍵による暗号文と、
を出力する装置を備え、
ることを特徴とする名称暗号化装置。
【請求項２】
同様の構造を持つ他の装置と協力して仮名化を行う仮名化装置であって、
本装置に対応する個別の公開鍵と個別の秘密鍵を保存する装置を備え、
本装置の個別の公開鍵による、名称の分散と名称の分散のコミットメントの開示情報との暗号文と、
名称の分散のコミットメントと、
仮名化鍵のコミットメントと、
が入力される装置を備え、
前記暗号文を復号して名称の分散と名称の分散のコミットメントの開示情報を生成し、
これが前記名称の分散のコミットメントの開示となっている事を確認する装置を備え、
同様の構造を持つ他の装置と通信する事で、
名称と仮名化鍵の和の逆数の分散と、
を生成する逆数計算装置を備え、
名称と仮名化鍵の和の逆数の分散の、全体の公開鍵による暗号文を生成する装置を備え、
前記名称と仮名化鍵の和の逆数の分散の全体の公開鍵による暗号文を出力する出力装置を備えることを特徴とする仮名化装置。
【請求項３】
前記逆数計算装置が、
名称と仮名化鍵の和の逆数の分散のコミットメントと、
名称と仮名化鍵の和の逆数の分散のコミットメントの開示情報と、
も併せて生成する機能を持ち、
前記出力装置が、
前記名称と仮名化鍵の和の逆数の分散のコミットメントも併せて出力する機能を持ち、
前記それぞれの他の装置から名称の分散のコミットメントと、
仮名化鍵のコミットメントとを受け取り、
名称と仮名化鍵の和のコミットメントを生成し、
前記それぞれの他の装置から名称と仮名化鍵の和の逆数の分散のコミットメントと、名称と仮名化鍵の和の逆数の分散のコミットメントの開示情報とを受け取り、
前記名称と仮名化鍵の和の逆数のコミットメントを生成し、
前記名称と仮名化鍵の和のコミットメントにコミットされている値の逆数と、
前記名称と仮名化鍵の和の逆数のコミットメントにコミットされている値とが、一致する事を証明する装置を備え、
前記それぞれの他の装置から名称と仮名化鍵の和の逆数の分散の暗号文を受け取り、
名称と仮名化鍵の和の逆数の暗号文を生成し、
暗号化された前記名称と仮名化鍵の和の逆数と、
名称と仮名化鍵の和の逆数のコミットメントにコミットされた値が等しいことを証明する装置を備える、
事を特徴とする請求項２記載の仮名化装置。
【請求項４】
暗号方式の公開鍵である個別の公開鍵を複数個と、暗号方式の公開鍵である全体の公開鍵と、コミットメントのパラメターと、名称とを入力装置により入力し、
分散装置により前記入力装置で入力された名称を複数の名称の分散に分散し、
生成装置により前記複数の名称の分散のそれぞれのコミットメントを生成し、
暗号化装置により前記それぞれのコミットメントの開示情報と前記複数の名称の分散のそれぞれを前記個別の公開鍵で暗号化し、
出力装置により、前記複数の名称の分散のそれぞれのコミットメントと、前記それぞれのコミットメントの開示情報と前記複数の名称の分散の前記個別の公開鍵による暗号文とを出力することを特徴とする名称暗号化方法。
【請求項５】
同様の構造を持つ他の装置と協力して仮名化を行う仮名化装置における仮名化方法であって、
本装置に対応する個別の公開鍵と個別の秘密鍵を保存するステップと、
本装置の個別の公開鍵による、名称の分散と名称の分散のコミットメントの開示情報との暗号文と、
名称の分散のコミットメントと、
仮名化鍵のコミットメントと、
が入力されるステップと、
前記暗号文を復号して名称の分散と名称の分散のコミットメントの開示情報を生成し、
これが前記名称の分散のコミットメントの開示となっている事を確認するステップと、
同様の構造を持つ他の装置と通信する事で、
名称と仮名化鍵の和の逆数の分散と、
を生成するステップと、
名称と仮名化鍵の和の逆数の分散の、全体の公開鍵による暗号文を生成するステップと、
前記名称と仮名化鍵の和の逆数の分散の全体の公開鍵による暗号文を出力するステップと、
を有することを特徴とする仮名化方法。
【請求項６】
前記逆数計算ステップで、
名称と仮名化鍵の和の逆数の分散のコミットメントと、
名称と仮名化鍵の和の逆数の分散のコミットメントの開示情報と、
も併せて生成し、
前記出力ステップで、
前記名称と仮名化鍵の和の逆数の分散のコミットメントも併せて出力し、
前記それぞれの他の装置から名称の分散のコミットメントと、
仮名化鍵のコミットメントとを受け取り、
名称と仮名化鍵の和のコミットメントを生成し、
前記それぞれの他の装置から名称と仮名化鍵の和の逆数の分散のコミットメントと、名称と仮名化鍵の和の逆数の分散のコミットメントの開示情報とを受け取り、
前記名称と仮名化鍵の和の逆数のコミットメントを生成し、
前記名称と仮名化鍵の和のコミットメントにコミットされている値の逆数と、
前記名称と仮名化鍵の和の逆数のコミットメントにコミットされている値とが、一致する事を証明するステップと、
前記それぞれの他の装置から名称と仮名化鍵の和の逆数の分散の暗号文を受け取り、
名称と仮名化鍵の和の逆数の暗号文を生成し、
暗号化された前記名称と仮名化鍵の和の逆数と、
名称と仮名化鍵の和の逆数のコミットメントにコミットされた値が等しいことを証明するステップと、
を有することを特徴とする請求項５記載の仮名化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば患者の名称を仮名に変換し、その仮名に基づいて前記患者の個人情報を取り扱う技術に関する。
【背景技術】
【０００２】
関連する仮名化システムとして、非特許文献１に挙げられる方式がある。以下に、図３を参照して、非特許文献１の方法を説明する。【０００３】
仮名化を行う匿名化システム１００は、共通鍵暗号方式の暗号化関数１０２と、前記暗号化関数１０２に必要な鍵１０１とを有している。また匿名化システム１００は、臨床システム１０３から名称１０４の情報を暗号化関数１０２の要素として入力する。【０００４】
匿名化システム１００は権限者の操作に基づいて、名称１０４の情報を暗号化関数１０２に入力するとともに、前記鍵１０１の情報を暗号化関数１０２の要素として入力し、暗号化関数１０２による演算を行い、仮名１０５の情報を研究システム１０６に出力する。
【非特許文献１】著者 Alain Lemay, Jean-MarcLina1, タイトル Pseudonymization of Radiology Data for Research Purposes, 雑誌名Journal of Digital Imaging, Volume 20, Number 3 / September, 2007 ページ 284-295.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の関連技術は、権限者の所持する鍵１０１を知らない者にとって、匿名化システム１００に入力された名称１０４と、出力された仮名１０５とを比較しても、名称１０４と仮名１０５とが対応関係にあるのかどうかを判別できないという特徴を有している。【０００６】
上述の関連技術は、共通鍵暗号方式を用いて名称１０４を仮名１０５に仮名化している。しかし、前記関連技術で用いている共通鍵暗号の暗号化処理は効率よく分散して行うことが難しいものであるため、匿名化システム１００の管理者は、匿名化システム１００における共通鍵暗号化処理に必要な全ての鍵１０１を管理する必要がある。【０００７】
このことは、全ての鍵１０１の管理が１人の管理者に集中してしまい、その管理者は、全ての鍵１０１の情報を漏洩させようとすれば、簡単に漏洩することができることを意味しており、このような状況では、鍵の漏洩対策が難しくなる。共通鍵暗号の暗号化処理は代数的に単純ではなく、上述の関連技術では、仮名化に使った鍵を秘密にしつつ入力された名称とその仮名の対応を証明することを効率的に実行することに問題がある。【０００８】
上述の関連技術では、共通鍵暗号方式を用いることにより、名称１０４を暗号化して仮名１０５を出力しているが、その暗号化のアルゴリズムが、前記名称１０４を形成する要素の例えば入れ替えであって、その入れ替えた要素を元に戻すことにより、名称１０４と仮名１０５との情報を解読することが可能である。匿名化システム１００の管理者が前記解読可能な情報を入手することが可能となり、このことからしても名称１０４及び仮名１０５の情報が漏洩される可能性が残されている。【０００９】
本発明は、以上のような課題を解決するためになされたもので、入力される名称も出力される仮名も暗号文とすることでこれらのデータを権限者に隠すことができ、仮名化のための鍵は複数の権限者に分散されかつ仮名化もこれらの権限者の間で分散されて処理されることで、鍵を漏洩するために結託する必要のある権限者の数を増やすことで漏洩を困難にし、仮名化を単純な代数演算とすることでその零知識証明を容易にする、名称の暗号文を分散して仮名の暗号文に変換する名称暗号化装置、仮名化装置、名称暗号化方法及び仮名化方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の名称暗号化装置は、暗号方式の公開鍵である個別の公開鍵を複数個と、
暗号方式の公開鍵である全体の公開鍵と、
コミットメントのパラメターと、
名称と、
が入力される装置を備え、
名称を複数の名称の分散に分散する分散装置を備え、
前記複数の名称の分散のそれぞれのコミットメントを生成する装置を備え、
前記それぞれのコミットメントの開示情報と前記複数の名称の分散のそれぞれを、前記個別の公開鍵で暗号化する装置を備え、
前記複数の名称の分散のそれぞれのコミットメントと、
前記それぞれのコミットメントの開示情報と前記複数の名称の分散の前記個別の公開鍵による暗号文と、
を出力する装置を備え、
ることを特徴とする。【００１１】
また、本発明の仮名化装置は、同様の構造を持つ他の装置と協力して仮名化を行う仮名化装置であって、
本装置に対応する個別の公開鍵と個別の秘密鍵を保存する装置を備え、
本装置の個別の公開鍵による、名称の分散と名称の分散のコミットメントの開示情報との暗号文と、
名称の分散のコミットメントと、
仮名化鍵のコミットメントと、
が入力される装置を備え、
前記暗号文を復号して名称の分散と名称の分散のコミットメントの開示情報を生成し、
これが前記名称の分散のコミットメントの開示となっている事を確認する装置を備え、
同様の構造を持つ他の装置と通信する事で、
名称と仮名化鍵の和の逆数の分散と、
を生成する逆数計算装置を備え、
名称と仮名化鍵の和の逆数の分散の、全体の公開鍵による暗号文を生成する装置を備え、
前記名称と仮名化鍵の和の逆数の分散の全体の公開鍵による暗号文を出力する出力装置を備え、
ることを特徴とする。【００１２】
また、本発明の名称暗号化方法は、暗号方式の公開鍵である個別の公開鍵を複数個と、暗号方式の公開鍵である全体の公開鍵と、コミットメントのパラメターと、名称とを入力装置により入力し、分散装置により前記入力装置で入力された名称を複数の名称の分散に分散し、生成装置により前記複数の名称の分散のそれぞれのコミットメントを生成し、暗号化装置により前記それぞれのコミットメントの開示情報と前記複数の名称の分散のそれぞれを前記個別の公開鍵で暗号化し、出力装置により、前記複数の名称の分散のそれぞれのコミットメントと、前記それぞれのコミットメントの開示情報と前記複数の名称の分散の前記個別の公開鍵による暗号文とを出力することを特徴とする。
【００１３】
また、本発明の仮名化方法は、同様の構造を持つ他の装置と協力して仮名化を行う仮名化装置における仮名化方法であって、
本装置に対応する個別の公開鍵と個別の秘密鍵を保存するステップと、
本装置の個別の公開鍵による、名称の分散と名称の分散のコミットメントの開示情報との暗号文と、
名称の分散のコミットメントと、
仮名化鍵のコミットメントと、
が入力されるステップと、
前記暗号文を復号して名称の分散と名称の分散のコミットメントの開示情報を生成し、
これが前記名称の分散のコミットメントの開示となっている事を確認するステップと、
同様の構造を持つ他の装置と通信する事で、
名称と仮名化鍵の和の逆数の分散と、
を生成するステップと、
名称と仮名化鍵の和の逆数の分散の、全体の公開鍵による暗号文を生成するステップと、
前記名称と仮名化鍵の和の逆数の分散の全体の公開鍵による暗号文を出力するステップ
と、
を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、漏洩を困難にし、仮名化を単純な代数演算とすることでその零知識証明を容易にする、名称の暗号文を分散して仮名の暗号文に変換することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係る情報管理システムに用いる名称暗号化装置を示す構成図である。
【図２】本発明の実施形態に係る情報管理システムに用いる仮名化装置を示す構成図である。
【図３】関連する仮名化システムを示す構成図である。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態を図に基づいて詳細に説明する。【００１７】
本発明の実施形態に係る情報管理システムは、図１に示す名称暗号化装置２００と、図２に示す仮名化装置３００とを組み合わせたものである。本発明の実施形態に係る情報管理システム（２００，３００）は、例えば医学の臨床分野に適用されて、図３の臨床システム１０３のデータベースに記憶された患者の名称を仮名化することにより、その仮名の下において、前記データベースに記憶された前記患者の医療データを研究システム１０６で分析することを可能にするための装置である。
以下では、本発明の実施形態に係る情報管理システム（２００，３００）を患者の医療データを取り扱う臨床分野に適用した例を説明するが、本発明の実施形態の適用範囲は前記臨床分野に限られるものではない。本発明の実施形態に係る情報管理システム（２００，３００）は、利用者の名称を仮名化することにより、その仮名の下において、前記利用者の例えば個人情報を取り扱う分野であれば、いずれの分野にも適用できるものである。【００１８】
本発明の実施形態に係る情報管理システムに用いる名称暗号化装置２００は図３の臨床システム１０３のデータベースに記憶されている患者の名称を暗号化するものであり、分散モジュール２０３と、開示情報生成モジュール２０５と、コミットメント生成モジュール２０７と、暗号化モジュール２０８とを有している。【００１９】
前記分散モジュール２０３は、図３の臨床システム１０３のデータベースに記憶されている患者（利用者）の名称を読み出して、その名称を２以上のフレーズに分散することにより、前記分散された名称２０２によって前記患者を特定不可能にするものである。前記分散モジュール２０３は、前記患者の名称を分散するフレーズなどの数を、図２に示す仮名化装置３００の予め設定されている台数に対応させて設定する。なお、実施形態では、前記患者の名称をフレーズ単位に分散した例を示したが、これに限られるものではない。分散した名称から患者を特定できないようにする分散単位であれば、いずれのものであってもよい。【００２０】
前記開示情報生成モジュール２０５は、前記分散モジュール２０３が分散した名称２０２に関する情報を開示情報２０４として生成するものである。この開示情報２０４には、図２に示す２以上の仮名化装置３００に割り当てた前記名称２０２のフレームの情報、そのフレーズに含まれる名称２０２などが含まれている。【００２１】
前記コミットメント生成モジュール２０７は、前記分散モジュール２０３が出力する前記分散された名称２０４と、前記開示情報生成モジュール２０５が出力する開示情報２０４とを受け入れて、前記分散された名称２０２と前記開示情報２０４とに関するコミットメント２０６を生成するものである。【００２２】
前記暗号化モジュール２０８は、EIGamal暗号方式を用いることにより、前記分散された名称２０２と、その名称に関連するコミットメント２０６とを暗号化して暗号文を生成し、公開鍵暗号方式を用いることにより、前記開示情報２０４を暗号化して暗号文を生成するものである。図１では、前記名称２０２及び前記コミットメント２０６の暗号文と、前記開示情報２０４の暗号文とを纏めて、暗号文２０９として表記している。【００２３】
具体的に説明すると、前記暗号化モジュール２０８は、EIGamal暗号方式に必要な対をなす公開鍵と秘密鍵とを図２に示す仮名化装置３００の予め設置された台数に相当する数だけ生成するとともに、公開鍵暗号方式に必要な対をなす公開鍵と秘密鍵とを生成し、EIGamal暗号方式の公開鍵を用いて前記名称２０２及び前記コミットメント２０６の暗号文を生成し、公開鍵暗号方式の公開鍵を用いて前記開示情報２０４の暗号文を生成するものである。以下の説明では、EIGamal暗号方式に必要な対をなす公開鍵と秘密鍵とを個別公開鍵と個別秘密鍵として表記する。また、公開鍵暗号方式に必要な公開鍵と秘密鍵とを共通公開鍵と共通秘密鍵として表記する。【００２４】
前記暗号化モジュール２０８が図２に示す仮名化装置３００の予め設置された台数に相当する数に対応させて生成したEIGamal暗号方式の個別秘密鍵は、図２に示す２以上の仮名化装置３００にそれぞれ割り当てられる。したがって、前記２以上の仮名化装置３００は、個々に割り当てられた個別秘密鍵をそれぞれ所有し、前記暗号化モジュール２０８は、前記２以上の仮名化装置３００の個々に割り当てられた全ての個別公開鍵を所有している。この場合、前記２以上の仮名化装置３００の個々に割り当てられた個別秘密鍵は互いに異なっている。【００２５】
また、前記暗号化モジュール２０８が生成した公開鍵暗号方式の共通秘密鍵は、図２に示す２以上の仮名化装置３００にそれぞれ割り当てられる。したがって、前記２以上の仮名化装置３００は、共通に割り当てられた共通秘密鍵をそれぞれ所有し、前記暗号化モジュール２０８は、前記２以上の仮名化装置３００に共通に割り当てられた全ての共通公開鍵を所有している。この場合、前記２以上の仮名化装置３００の個々に割り当てられた個別秘密鍵は互いに同一のものである。【００２６】
本発明の実施形態に係る情報管理システムに用いる仮名化装置３００は図２に示す様に基本的な構成として、復号モジュール３０１と、逆数多者計算モジュール３０６と、暗号文生成モジュール３１０とを有している。また、前記仮名化装置３００は、前記構成に加えて、開示確認モジュール３０４と、零知識証明モジュール３０５と、零知識証明モジュール３１０と、零知識証明モジュール３１４とを有している。【００２７】
前記復号モジュール３０１は、前記名称暗号化装置２００が出力する暗号文２０９を受け取り、自装置に割り当てられているEIGamal暗号方式の個別秘密鍵を用いてコミットメント２０６を参照して、自装置に割り当てられている前記分散された名称３０２を復号するとともに、割り当てられている共通秘密鍵を用いて開示情報３０３を復号するものである。前記分散された名称３０２は、前記分散モジュール２０３が分散した前記名称２０２であって、自装置に割り当てられた名称２０２である。また、前記復号された開示情報３０３は、前記開示情報生成モジュール２０５が生成する前記開示情報２０４に相当するものである。【００２８】
前記逆数計算モジュール３０６は、前記分散された名称３０３を仮名に変換するための仮名化鍵を備えており、他の仮名化装置３００と相互に通信（３１５）を行ってマルチパーティー計算を行い、前記仮名化鍵を用いることにより、前記復号された名称３０３を、他の仮名化装置３００が生成する仮名と重複しない仮名に変換するものである。【００２９】
前記逆数計算モジュール３０６は、前記分散された名称３０３と前記仮名化鍵との和の逆数を、他の仮名化装置３００が生成する仮名と重複しないように分散して逆数の分散値を求め、これを仮名の情報（３０７）として生成するものである。【００３０】
また、前記逆数計算モジュール３０６は、前記変換された仮名に関するコミットメント３０８と、前記変換された仮名を公開するための開示情報３０９とを生成するものである。【００３１】
前記暗号文生成モジュール３１１は、EIGamal暗号方式を用いることにより、前記逆数多者計算モジュール３０６が生成した、変換後の仮名３０７と前記コミットメント３０８と前記開示情報３０９とを含む暗号文３１２を生成し、その暗号文３１２を通信網上に暗号文３１３として公開するものである。【００３２】
具体的に説明すると、前記暗号文生成モジュール３１１は、EIGamal暗号方式に必要な対をなす公開鍵と秘密鍵とを図３に示す研究システム１０６の予め設置された台数に相当する数だけ生成し、前記EIGamal暗号方式の公開鍵を用いて、前記変換後の仮名３０７と前記コミットメント３０８と前記開示情報３０９とを含む暗号文３１２を生成し、その暗号文３１２を通信網上に暗号文３１３として公開するものである。【００３３】
前記暗号文生成モジュール３１１が図３に示す研究システム１０６の予め設置された台数に相当する数に対応させて生成したEIGamal暗号方式の個別秘密鍵は、図１に示す２以上の研究システム１０６にそれぞれ割り当てられる。したがって、前記２以上の研究システム１０６は、個々に割り当てられた個別秘密鍵をそれぞれ所有し、前記暗号文生成モジュール３１１は、前記２以上の研究システム１０６の個々に割り当てられた全ての個別公開鍵を所有している。この場合、前記２以上の研究システム１０６の個々に割り当てられた個別秘密鍵は互いに異なっている。【００３４】
前記開示確認モジュール３０４は、前記復号モジュール３０１が復号した前記開示情報３０３を受け取って、その開示情報３０３が自装置宛のものであるか否かを確認するものである。前記零知識確認モジュール３０５は、前記開示確認モジュール３０４による確認結果に基づいて、前記復号された前記開示情報３０３が自装置のものである場合に、前記開示情報３０３の正当性を証明するものである。前記零知識確認モジュール３０５による証明結果は、仮名化装置３００を操作するオペレータに通知される。【００３５】
前記零知識確認モジュール３１０は、前記逆数多者計算モジュール３０６が生成した前記逆数の分散値３０７と前記開示情報３０９とを受け取って、前記変換された仮名が自装置のものであることを証明するものである。前記零知識確認モジュール３１０による証明結果は、仮名化装置３００を操作するオペレータに通知される。前記零知識確認モジュール３１４は、前記暗号文生成モジュール３１１が暗号文３１２を生成した過程を監視して、前記暗号文３１２が自装置のものであることを証明するものである。前記零知識確認モジュール３１４による証明結果は、仮名化装置３００を操作するオペレータに通知される。【００３６】
次に、本発明の実施形態に係る情報処理システムを医療の臨床システムに適用した例に基づいて、例えば個人情報を管理する場合について説明する。【００３７】
本発明の実施形態に係る情報管理システムは、図１に示す名称暗号化装置２００により患者の名称を２以上のフレーズに分散させた上で各フレーズの名称を暗号化させ、その名称を図３に示す２以上の仮名化装置３００によりフレーズ単位で仮名化させることにより、暗号化及び仮名化に必要な鍵を管理する権限者の数を増やして、前記鍵の漏洩、ひいては前記患者の情報の漏洩を困難としたものである。前記権限者とは、前記２以上の仮名化装置３００を操作するオペレータである。前記２以上の仮名化装置３００は、その設置台数がｍ（１〜ｍ）であり、前記２以上の仮名化装置３００に対応する権限者がｍ（１〜ｍ）人とする。また、前記２以上の仮名化装置３００のうち、ｉ番目の仮名化装置３００をD[i]として表記する。【００３８】
先ず、図１に示す名称暗号化装置２００を用いて、患者の名称を２以上のフレーズに分散させ、かつ各フレーズの名称を暗号化させる処理について説明する。【００３９】
図１に示す名称暗号化装置２００の分散モジュール２０３は、図３の臨床システム１０３のデータベースに記憶されている患者（利用者）の名称を読み出して、その名称を２以上のフレーズに分散することにより、前記分散された名称２０２によって前記患者を特定不可能にし、そのフレーム毎の患者の名称２０２を出力する。図１に示す例では、前記分散モジュール２０３は、前記患者の名称を、図２に示す仮名化装置３００の予め設定されている台数に対応させた数のフレーズに分散させている。【００４０】
具体的に説明すると、前記分散モジュール２０３は、患者の名称２０１を受け取る。前記受け取った患者の名称２０１をu ∈ Z/pZ で表す。前記分散モジュール２０３は、u = Σi=1m u[i] となるようにi=1,...,mに関して名称２０１を分散し、その分散した名称２０２をi=1,...,mの仮名化装置３００に割り当てる。【００４１】
前記分散モジュール２０３が患者の名称をフレーズ単位に分散して、その分散した患者の名称２０２を出力すると、前記開示情報生成モジュール２０５は、前記分散モジュール２０３が分散したフレーズ毎の名称２０２に関する情報を開示情報２０４として生成する。前記開示情報生成モジュール２０５は、前記開示情報２０４に、図２に示す２以上の仮名化装置３００のそれぞれに割り当てる前記名称２０２のフレーズの情報、そのフレーズに分散して含まれる名称２０２の情報などを含ませている。【００４２】
具体的に説明すると、前記開示情報モジュール２０５は、前記分散モジュール２０３によりi=1,...,mの仮名化装置３００に割り当てられたそれぞれの名称２０２に関する開示情報v[i]（２０４）を生成する。前記開示情報v[i]は、v[i]∈ Z/pZ で表される。【００４３】
前記分散モジュール２０３が患者の名称を分散して、その分散した患者の名称２０２を出力し、前記開示情報生成モジュール２０５が前記開示情報２０４を生成すると、前記コミットメント生成モジュール２０７は、前記分散モジュール２０３が出力する前記全てのフレーズの名称２０２と、前記開示情報生成モジュール２０５が出力する開示情報２０４とを受け入れて、前記分散された名称２０２と前記開示情報２０４とに関するコミットメント２０６を生成する。【００４４】
具体的に説明すると、前記コミットメント生成モジュール２０７は、前記分散された名称２０２と前記開示情報２０４とに関するコミットメントd[i]（２０６）をi=1,...,mの仮名化装置３００のそれぞれに対して生成する。前記コミットメントd[i]は、d[i]= gu[i]hv[i]で表される。【００４５】
次に、前記暗号化モジュール２０８は、EIGamal暗号方式を用いることにより、前記分散された名称２０２と、前記開示情報２０４と、その名称２０２に関連するコミットメント２０６とを暗号化して暗号文２０９を生成する。【００４６】
具体的に説明すると、前記暗号化モジュール２０８は、EIGamal暗号方式に基づく鍵を生成する際に、位数pが素数である乗法群G を用い、g と h をランダムに選ばれた乗法群G の生成子として取り扱う。そして、前記暗号化モジュール２０８は、i=1,...,mの仮名化装置D[i]（３００）にそれぞれ割り当てる個別の公開鍵y[i]と、i=1,...,mの仮名化装置３００に対するElGamal暗号方式の全体公開鍵yとを生成し、これらの公開鍵を公開する。【００４７】
さらに、前記暗号化モジュール２０８は、i=1,...,mの仮名化装置D[i]（３００）にそれぞれ割り当てる個別の公開鍵y[i]と対をなすEIGamal暗号方式に基づく個別の秘密鍵ｘ[i]と、i=1,...,mの仮名化装置３００に対するElGamal暗号方式の全体公開鍵yと対をなすEIGamal暗号方式に基づく全体秘密鍵ｘとを生成し、個別の秘密鍵y[i]をi=1,...,mの仮名化装置D[i]（３００）にそれぞれ送信する。
前記暗号化モジュール２０８は、前記仮名化装置D[i]（３００）に割り当てられた個別の公開鍵ｘ[i]をランダムに選択し、その公開鍵ｘ[i]を、x[i]
∈Z/pZの関係に設定し、全体公開鍵ｘを、x= Σi=1m x[i] として設定する。さらに、前記暗号化モジュール２０８は、全体秘密鍵ｙと全体秘密鍵ｘとをy=gxの関係に設定し、個別の公開鍵y[i]と個別の秘密鍵ｘ[i]とをy[i]=gx[i]の関係に設定する。【００４８】
また、前記暗号化モジュール２０８は、前記鍵を生成する際、公開鍵暗号方式の鍵空間を K とし、χ ∈ K を用いたメッセージm を暗号化し｛(enc(χ,m))、後述する仮名化装置３００において、χ ∈ K を用いることにより前記暗号文を復号｛dec(χ,C)｝する。
具体的には、前記暗号化モジュール２０８は、乗算群Gとしてφ-1φ =1 を用い、写像φ:K により暗号化し、前記仮名化装置３００は、φとφ-1imφとの関係からKを復号する。また、この様な写像が構成できる様にK は選ばれているものとする。【００４９】
さらに、前記暗号化モジュール２０８は、χ[i] ∈ K、w[i] ∈Z/pZ をランダムに選び、全てのi=1,...,m の各仮名化装置３００に関して、ElGamal 暗号文の個別公開鍵により前記分散した名称２０２の暗号文を作成すると共に、ElGamal 暗号文の共通公開鍵により前記開示情報２０４及び前記コミットメント２０６の暗号文を作成し、これらを暗号文２０９として出力する。共通公開鍵を用いた共通鍵暗号文は、(g'[i],y'[i])= (gw[i]、φ(χ[i]) y[i]w[i]) ε[i] =enc(χ[i],(u[i],v[i])として表記される。但し、(u[i],v[i])はパディングして長さを2|p| に揃えてある。なお、((g'[i],y'[i]),ε[i])i=1,...,m は公開鍵暗号化方式による名称の分散とそのコミットメントの開示情報の暗号文２０９である。【００５０】
次に、２以上の仮名化装置３００において、各仮名化装置３００により前記分散された名称２０２に基づいて仮名を生成する場合について説明する。【００５１】
２以上の仮名化装置３００の台数を m とし、1 からm に関して、i 番目の仮名化装置３００をD[i]と記す。i=1,...,m に関して各仮名化装置D[i]（３００） はランダムに選ばれた個別仮名化鍵s[i] ∈Z/pZ を所持し、２以上の仮名化装置３００に共通な共通化仮名化鍵sを s= Σi=1m s[i] とする。【００５２】
s ∈ Z/pZ を仮名化に使う仮名化鍵とする。仮名化鍵のコミットメントをc=gs hr とする。【００５３】
すなわち、仮名化鍵ｓは２以上の仮名化装置３００に s[i] の形で分散して割り当てられており、仮名化鍵のコメットメントｃは、c= Πi=1m c[i] であるため、仮名化鍵のコミットメントは公開されている。各仮名化装置３００に割り当てられたc[i] を仮名化鍵のコミットメントの分散と呼ぶ。各仮名化装置３００に割り当てられたs[i]を仮名化鍵の分散と呼ぶ。(g,h) の組をコミットメントのパラメターと呼ぶ。【００５４】
i=1,...,m の２以上の仮名化装置３００に関して、各仮名化装置D[i]（３００）に割り当てた仮名化鍵のコミットメントc[i]はc[i]= gs[i] hr[i] とし、c[i] は公開されているとする。【００５５】
また、式 c[i] = gs[i] hr[i]を満す s[i] と r[i] の知識の零知識証明が各仮名化装置D[i]（３００） によって、そのオペレータに対してなされているとする。【００５６】
また、式 y[i] = gx[i] を満す x[i] の知識の零知識証明が各仮名化装置D[i]（３００）によって、そのオペレータに対してなされているとする。【００５７】
また、  i=1,...,m の２以上の仮名化装置３００に関して各仮名化装置D[i]（３００）は、ｒ［ｉ］∈ Z/pZを所持している。ｒをｒΣi=1m ｒ[i]とする。また、式ｙ［ｉ］＝ｇｘ［ｉ］を満たす知識の零証明が仮名化装置D[i]（３００）によって、各仮名化装置３００のオペ-レータに対してなされているものとする。【００５８】
仮名化装置D[i]（３００）の復号モジュール３０１は、暗号化装置２００から暗号文２０９を受け取ると、個別に所有している個別秘密鍵により前記暗号文２０９を復号して、分散された名称３０２と開示情報３０３を取得する。前記分散された名称３０２が図１の分散モジュール２０３により仮名化装置D[I]（３００）に割り当てられて分散された名称２０２に相当するものである。また、前記開示情報３０３が図１の開示情報生成モジュール２０５により仮名化装置D[I]（３００）の割り当てられた前記名称２０２に関する前記開示情報２０４に相当するものである。【００５９】
仮名化装置D[I]（３００）の暗号モジュール３０１は、暗号文２０９を復号する際、相互に異なる個別秘密鍵を所有しているから、前記暗号文２０９に含まれる前記分散された名称２０２のうち、自装置に割り当てられた前記名称３０２及び前記開示情報３０３のみを復号することとなる。【００６０】
具体的に説明すると、仮名化装置D[I]（３００）の復号モジュール３０１は、ElGamal暗号文 (g'[i],y'[i])を自装置に割り当てられた秘密鍵ｘ［ｉ］を用いて復号し、さらに写像φの逆を計算して、χ'[i] = φ-1(y''[i]/g''[i]x[i])を得る。さらに、前記暗号モジュール３０１は、前記分散された名称３０２及び前記開示情報３０３に相当する(u'[i],v'[i])=dec(χ[i],ε[i])を求める。【００６１】
復号処理が終了すると、開示情報確認モジュール３０４は、復号された前記名称３０２と前記開示情報３０３を受け取り、d[i]= gu'[i]hv'[i]が成り立つことを確認することにより、自装置に割り当てられた前記分散された名称u[i]（３０２）が前記開示情報d[i]（３０３）に相当するものであることを確認する。【００６２】
具体的に説明すると、前記開示情報確認モジュール３０４による確認が終了すると、零知識証明モジュール３０５は、前記開示情報確認モジュール３０４からの情報を受け取って、d[i]= gu'[i]hv'[i]が成り立たない場合は、復号の正当性を零知識証明することにより、暗号文を復号することの不当性を仮名化装置D[I]（３００）のオペレータに通知する。【００６３】
前記零知識証明モジュール３０５は、前記開示情報確認モジュール３０４からの情報を受け取って、d[i]= gu'[i]hv'[i]が成り立たつ場合は、式 d[i]= gu[i]hv[i]が成り立つ前記分散された名称u[i]（３０２）及び前記開示情報v[i]（３０３）の零知識証明を仮名化装置D[I]（３００）のオペレータに通知する。【００６４】
次に、仮名化装置D[I]（３００）の逆数多者計算モジュール３０６は、はランダムに選ばれたr[i] ∈Z/pZ を所持しているとともに、s[i]+u[i]、r[i]+v[i] の知識を有している。s[i]は個別化名化鍵であり、u[i]は自装置に割り当てられた前記分散された名称３０２、v[i]は自装置に関する前記開示情報３０３である。rを r= Σi=1m r[i] とする。c[i] d[i] = gs[i]+u[i] hr[i]+v[i]である。また、(s[i]+u[i])i=1,...,m はu＋s の分散である。【００６５】
全ての仮名化装置３００（i=1,...,m）の逆数多者計算モジュール３０６は互いに通信３１５にて協力することにより、安全なマルチパーティー計算を行い、以下のようなt[i]，w[i]∈ Z/pZ と、f[i] ∈ G を得る。
Σi=1m t[i] = 1 / (u +s)
f[i] = gt[i] hw[i]
そして、仮名化装置D[I]（３００）の逆数多者計算モジュール３０６は、前記f[i]を公開する。
ここで、t[i]は、名称ｕと仮名化鍵ｓとの和の逆数の分散３０７であり、f[i]は名称ｕと仮名化鍵ｓとの和の逆数の分散３０７に関するコミットメント３０８であり、w[i]は名称ｕと仮名化鍵ｓとの和の逆数の分散３０７に関するコミットメント３０８を開示するための開示情報３０９である。【００６６】
仮名化装置３００（i=1,...,m）の逆数多者計算モジュール３０６が互いに通信３１５にて協力することにより、安全なマルチパーティー計算を行った後、仮名化装置D[I]（３００）の零知識証明モジュール３１０は、前記逆数多者計算モジュール３０６が計算した前記逆数の分散３０７とコミットメント３０８と開示情報３０９と受け取って、
全てのi=1,...,m に関する D[i] は互いに協力することで、
Πi=1m c[i] d[i] = gs+u
Πi=1m f[i] = g1/(s+u)hw
を満すｓ，ｕ、ｗの知識を仮名化装置D[I]（３００）のオペラレータに零知識証明する。【００６７】
仮名化装置D[I]（３００）の暗号分生成モジュール３１１は、ランダムにz[i] ∈Z.Z/pZ を選び、逆数の分散の暗号文３１２(g''[i],y''[i]) = (gv[i]、gt[i]yv[i])を生成して、これを逆数の暗号分３１１として公開する。【００６８】
具体的には、全ての仮名化装置D[I]（３００）の暗号分生成モジュール３１１は、g1/(u + s) のElGamal暗号文３１３を次のように生成する。
(Πi=1m g''[i],Π i=1my''[i])
ここでは、g1 /(u + s) が名称ｕの仮名化鍵ｓによる仮名である。【００６９】
また、仮名化装置D[I]（３００）の零知識証明モジュール３１４は、f[i] =gt[i] hw[i]、(g''[i],y''[i]) = (gv[i]、gt[i]yv[i])を満す、t[i]，w[i]，v[i] ∈ Z/pZ の知識を零知識証明する。【００７０】
上記の各実施の形態によれば、名称と仮名との仮名化鍵による対応が単純な代数的な関係となる。これにより、仮名鍵を分散所持しつつ名称と仮名との対応を零知識証明することが容易になる。この様な分散所持を可能であるため、仮名鍵全体を手にいれるには、分散所持している権限者全員から鍵を奪取する必要があり、単一の権限者からこれを奪取すれば良い場合に比べると、鍵を奪取する難しさが高まる。また、入出力共に暗号化されているので、権限者が利用者の個人情報を入手する機会も減る。【００７１】
以上説明したように、本発明によれば、利用者の名称を仮名化する事により、利用者のデータを、利用者のプライバシーを考慮して扱うことができるシステムが構成できる。例えば、患者の医療データを大量に扱うデータベース等で、利用者の名称を仮名化することで、利用者の名称を明らかにせずにデータを解析することなどが可能である。この様な方法で、名称と仮名の対応関係が漏洩しにくいシステムを構築できる。【００７２】
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。例えば、暗号化装置の機能を実現するためのプログラムを装置に読込ませて実行することにより装置の機能を実現する処理を行ってもよい。さらに、そのプログラムは、コンピュータ読み取り可能な記録媒体であるＣＤ−ＲＯＭまたは光磁気ディスクなどを介して、または伝送媒体であるインターネット、電話回線などを介して伝送波により他のコンピュータシステムに伝送されてもよい。また、装置の機能が他の装置によりまとめて実現されたり、追加の装置により機能が分散されて実現される形態も本発明の範囲内である。【００７３】
この出願は２００８年１０月７日に出願された日本出願特願２００８−２６０５８４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【００７４】
本発明は、情報の漏洩を困難にし、仮名化を単純な代数演算とすることでその零知識証明を容易にし、例えば個人情報などの保護に貢献できるものである。
【符号の説明】
【００７５】
２００  名称暗号装置
２０３  分散モジュール
２０５  開示情報生成モジュール
２０７  コミットメント生成モジュール
２０８  暗号化モジュール
３００  仮名化装置
３０１  復号モジュール
３０６  逆数多者計算モジュール
３１０  暗号文生成モジュール
【図１】
0005392264.tif 000002
【図２】
0005392264.tif 000003
【図３】
0005392264.tif 000004