説明

情報共有システム、データ処理装置、情報共有方法、情報共有プログラム、および、記録媒体

【課題】小さな値域から選択された情報を共有する場合であっても無関係な情報を他に知られることなく共通する情報を知る。
【解決手段】2以上のデータ処理装置100で構成され、データ処理装置100はそれぞれ、非公開データを記憶する記憶部130と、非公開データを他のデータ処理装置100の主暗号鍵で暗号化した第1暗号データを取得する暗号データ取得部111と、第1暗号データを自己の保有する主暗号鍵で暗号化することで第2暗号データを生成する暗号データ生成部112と、第2暗号データを他のデータ処理装置100と共通のハッシュ関数でハッシュ化することでハッシュデータを生成するハッシュデータ生成部113と、他のデータ処理装置が生成したハッシュデータを取得するハッシュデータ取得部114と、自己のハッシュデータと他のハッシュデータとを比較する判定部115とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数機関で情報を共有するための情報共有システム、データ処理装置、情報共有方法、情報共有プログラム、および、記録媒体に関する。
【背景技術】
【0002】
一方向ハッシュ関数を使った情報共有方法が知られている。ここでハッシュ関数とは、あるデータからそのデータの固有の数値(以下、「ハッシュ値」という)を得る関数のことをいう。また、一方向ハッシュ関数とは、ハッシュ値から元のデータを復元することが困難な性質(一方向性)を持ったハッシュ関数のことをいう(以下、一方向ハッシュ関数のことを単に「ハッシュ関数」とよぶ。また、一方向ハッシュ関数を使ってハッシュ値を得ることを「ハッシュ化」とよぶ)。この方法では、ハッシュ関数の一方向性を利用して、関係のない情報を相手に知られることなく情報を共有する。
【0003】
以下、新薬を開発する機関RとSが、ハッシュ関数を使って情報を共有する例を図16の概略図を参照して説明する。
【0004】
最初に、機関RとSは図2に示すような「薬番号表」を用意する。この表は機関RとSの事前の取り決めに基づいて、世界中の薬に一意の番号を付したものである。機関RとSはこの薬番号表を使ってそれぞれの持っている実験データの「薬番号リスト」(図16(a):「リストR」「リストS」)を作成する。
【0005】
次に、機関RとSは共通のハッシュ関数Hを使って自身の薬番号リストをハッシュ化し、ハッシュリストA1を生成する(図16(b):「ハッシュリストA1r」「ハッシュリストA1s」)。機関RとSは生成したハッシュリストA1を交換し(図16(c))、相手のハッシュリストA1と自身のハッシュリストA1とを照らし合わせる。同じ薬番号は同じハッシュ値になっているので、機関RとSは相手のハッシュリストと自身のハッシュリストを照らし合わせることで、互いに共通して実験データを持っている薬番号を特定することができる。なお、ハッシュ関数には一方向性があるので、両機関とも相手のハッシュリストA1から薬番号を逆算することはできない。薬番号の特定後、各機関は特定した薬の実験データを交換する。
【0006】
理解を深めるため、図16を参照して数値を具体的に追ってみる。まず薬Aの値に着目する。薬Aの薬番号は‘1010’であり(図16(a))、そのハッシュ値は‘4831’である(図16(b))。この値は両方のハッシュリストA1に含まれているので、機関RとSは、相手が薬Aの実験データを持っていると特定することができる。一方、薬Bと薬Cのハッシュ値は‘3217’と‘6942’である(図16(b))。これらの値は一方のハッシュリストA1にしか存在しない。そのため、機関RとSは、相手が薬Bもしくは薬Cの実験データを持っていると特定することはできない。また、ハッシュ関数には一方向性があることから、ハッシュ値から薬番号を逆算することもできない。これにより、機関RとSは、無関係な情報(薬Bと薬Cの薬番号)を相手に知られることなく、共通する情報(薬Aの薬番号)のみをお互いに知ることができる
【0007】
しかしながら、この方法には1つ問題がある。ハッシュ化前の値の値域が小さければ、相手の情報を容易に特定することができるという問題である。以下、上述の薬の例を使って、この問題を具体的に説明する。
【0008】
世界中に存在する薬の数は限られている。その数は多くても数万である。このことからすると、上述の薬番号の値域は最大でも0〜数万であるといえる。この0〜数万(0〜10)という値域は、現在主流の128ビット暗号の暗号鍵の値域が0〜1038であることを考慮すると極めて小さい値といえる。仮に上述の「薬番号表」に10万個の薬番号が記載されていたとする。現在のコンピュータ能力をもってすれば、10万個のハッシュ値を計算することは容易なことである。ここで、機関Rが全ての薬番号のハッシュ値を計算したハッシュリスト(図17(a))を作成したとする。機関Rは、そのハッシュリストと機関Sから得た「ハッシュリストA1s」(図17(b))とを照らし合わすことで、機関Sの薬番号を特定することができる。機関Sは知られたくない薬番号まで機関Rに知られることになる。
【0009】
この問題を解決するため、非特許文献1には、可換性のある暗号(以下、「可換性暗号」という)を使った情報共有方法が開示されている(以下、「従来方法」という)。ここで「可換性」とは、図18(a)に示すように、元のデータをどちらが先に暗号化しても同じ暗号値になるという性質(以下「暗号可換性」と呼ぶ)、および、図18(b)に示すように、1の暗号鍵(もしくは復号鍵)で暗号データを復号した結果は他の暗号鍵で元のデータを暗号化した結果に等しいという性質(以下「復号可換性」と呼ぶ)のことをいう。これらの性質は3つ以上の暗号鍵を使用して元のデータを暗号化した場合も同様である。非特許文献1の方法では、ハッシュリストA1を、可換性暗号を使ってさらに暗号化することで、ハッシュ値から薬番号を特定されることを防止する。以下、図19の概略図を参照して非特許文献1の方法を具体的に説明する。
【0010】
最初に、機関RとSはそれぞれの薬番号リスト(リストR、S)を共通のハッシュ関数Hを使ってハッシュ化し、ハッシュリストA1を生成する(図19(a))。機関RとSはハッシュリストA1を共通の可換性暗号Eを使用して暗号化し、暗号リストA2を生成する(図19(b))。可換性暗号Eの暗号鍵は機関RとSそれぞれで用意する。
【0011】
次に、機関RとSは上記で生成した暗号リストA2を交換する(図19(c))。そして、機関RとSは交換した暗号リストA2を同じ可換性暗号Eを使用して暗号化し、暗号リストA3を生成する(図19(d))。可換性暗号には可換性があることから、同じハッシュ値を暗号化した結果はどちらが先に暗号化しても同じ値になる。機関RとSは暗号化リストA3を交換し(図19(e))、自身の暗号リストA3と相手の暗号リストA3とを照らし合わすことで共通する薬番号を特定する。
【0012】
理解を深めるため、図19を参照して、数値を具体的に追ってみる。まず薬Aの値に着目する。薬Aのハッシュ値は‘4831’であるが(図19(a))、これを暗号化した値は機関Rと機関Sのどちらが先に暗号化しても‘7495’である(図19(d))。この‘7495’は「暗号リストA3r」「暗号リストA3s」のいずれにも存在するので、機関RとSは、相手が薬Aの実験データを持っていると特定することができる。一方、薬Bと薬Cの暗号値はそれぞれ‘9579’と‘2038’である(図19(d))。これらの値は「暗号リストA3r」と「暗号リストA3s」の一方にしか存在しない。そのため、機関RとSは、相手が薬Bもしくは薬Cの実験データを持っていると特定することはできない。また、この暗号値は相手の暗号鍵がなければ元のハッシュ値に戻すことはできない。したがって、例え機関Rもしくは機関Sが全ての薬番号のハッシュ値を計算したとしても、相手の薬番号を特定することはできない。
【先行技術文献】
【非特許文献】
【0013】
【非特許文献1】R.Agrawal,A.Evfinievski and R.Srikant,“Information sharing across private databases”,Proceedings of the 2003 ACM SIGMOD International Conference on Management of Data(SIGMOD 2003),pp.86−97,2003
【発明の概要】
【発明が解決しようとする課題】
【0014】
しかしながら、非特許文献1の方法にも問題がある。暗号リストA3を生成する過程で得られた情報を基に、自分の情報を相手に特定される可能性があるという問題である。以下、図19を参照して、この問題を具体的に説明する。
【0015】
最初に「暗号リストA3r」(図19(e))と「暗号リストA2r」(図19(b))の薬Bの値に着目する。暗号リストA3rでの薬Bの値は‘9579’であり、暗号リストA2rでの薬Bの値は‘6942’である。暗号リストA3rは暗号リストA2rを機関Sの暗号鍵で暗号化したものであるので、このことから、機関Rには‘6942’の機関Sの暗号鍵での暗号値は‘9579’であることがわかる。
【0016】
次に「暗号リストA2s」(図19(c))に着目する。暗号リストA2sの中には、暗号リストA3rと同じように、‘9579’の値が含まれていることが分かる。暗号リストA2sは機関SのハッシュリストA1s(図19(a))を機関Sの暗号鍵で暗号化したものであるので、このことから、機関Rには、機関Sが薬Cの実験データを持っていると特定することができる。
【0017】
なぜなら、機関Rには‘9579’の暗号化前の値は‘6942’であると分かっているので、ハッシュリストA1s(図19(a))の中に‘6942’の値が含まれていると容易に推測することができる。そうすると、図17の場合と同様に、全ての薬番号をハッシュ化したハッシュリスト(図17(a))を生成し、その中からハッシュ値‘6942’を探すことで、‘6942’のハッシュ化前の値が薬番号‘1030’(薬C)であると容易に特定することができるからである。機関Sは薬Aのほかに薬Cの薬番号まで機関Rに知られることになる。
【0018】
もちろん、リストの中に偶然一致する値がある場合ばかりではない。しかしながら、暗号化前(平文)と後(暗号文)の情報を相手に与えてしまうことは、違う暗号文の平文を相手に推測する余地を与える。特に、平文となる候補が少ない場合、従来方法における情報の機密性は極めて低いものになる。
【0019】
本発明はこれらの問題を鑑みてなされたものであり、小さな値域から選択された情報を共有する場合であっても、無関係な情報を他に知られることなく、共通する情報を知ることができる情報共有システム、データ処理装置、情報共有方法、情報共有プログラム、および、該情報共有プログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0020】
上記目的を達成するため、本発明の第1の観点にかかる情報共有システムは、
2以上のデータ処理装置で構成される情報共有システムであって、
前記データ処理装置はそれぞれ、
非公開データを記憶する非公開データ記憶手段と、
前記非公開データの暗号化に使用する主暗号鍵を記憶する主暗号鍵記憶手段と、
前記非公開データを他のデータ処理装置の保有する主暗号鍵で暗号化した第1暗号データを取得する暗号データ取得手段と、
前記第1暗号データを自己の保有する前記主暗号鍵で暗号化することで第2暗号データを生成する暗号データ生成手段と、
前記第2暗号データを他のデータ処理装置と共通のハッシュ関数でハッシュ化することでハッシュデータを生成するハッシュデータ生成手段と、
他のデータ処理装置の前記ハッシュデータ生成手段により生成されたハッシュデータを取得するハッシュデータ取得手段と、
前記ハッシュデータ生成手段で生成した自己のハッシュデータと前記ハッシュデータ取得手段で取得した他のデータ処理装置のハッシュデータとを比較することで、自己の保有する非公開データと他のデータ処理装置の保有する非公開データの内容の全部または一部が共通するか否かを判定する判定手段と、を有し、
前記第1暗号データおよび前記第2暗号データは、
共通の可換性暗号により生成されており、
前記可換性暗号は、
複数の暗号鍵を使用して異なった順番でデータを暗号化しても、いずれも同じ暗号データを生成する、
ことを特徴とする。
【0021】
前記非公開データは、
複数のデータブロックで構成されるデータであり、
前記暗号データ取得手段は、
前記非公開データを他のデータ処理装置の保有する前記主暗号鍵でデータブロックごとに暗号化した前記第1暗号データを取得し、
前記暗号データ生成手段は、
前記第1暗号データを自己の保有する前記主暗号鍵でデータブロックごとに暗号化することで前記第2暗号データを生成し、
前記ハッシュデータ生成手段は、
前記第2暗号データを他のデータ処理装置と共通の前記ハッシュ関数でデータブロックごとにハッシュ化することで前記ハッシュデータを生成し、
前記判定手段は、
前記ハッシュデータ生成手段で生成した自己のハッシュデータと前記ハッシュデータ取得手段で取得した他のデータ処理装置のハッシュデータとをデータブロック単位で比較することで、データブロックごとに内容が共通するか否かを判定してもよい。
【0022】
前記データ処理装置は、
前記第1暗号データの取得に使用する複数の副暗号鍵を記憶する副暗号鍵記憶手段、をさらに有し、
前記暗号データ取得手段は、
前記非公開データを1データブロックまたは所定数のデータブロックごとに前記副暗号鍵の値を変更してデータブロックごとに暗号化することで第3暗号データを生成し、
前記第3暗号データを他のデータ処理装置の主暗号鍵でデータブロックごとに暗号化した第4暗号データを取得し、
前記副暗号鍵もしくは前記副暗号鍵に対応する復号鍵で前記第4暗号データを復号することによって前記第1暗号データを生成し、
前記第3暗号データおよび前記第4暗号データは、
前記第1暗号データおよび前記第2暗号データと共通の可換性暗号により生成されてもよい。
【0023】
前記データ処理装置は、
前記判定手段の判定結果に基づいて、自己の保有する非公開データと他のデータ処理装置の保有する非公開データとの内容の共通するデータブロックを特定する共通ブロック特定手段、をさらに有していてもよい。
【0024】
前記データ処理装置は、
前記データブロックそれぞれに関連付けされた詳細データを記憶する詳細データ記憶手段と、
前記共通ブロック特定手段が特定したデータブロックに関連付けされた前記詳細データを前記詳細データ記憶手段から取得して他のデータ処理装置に送信する詳細データ送信手段、をさらに有していてもよい。
【0025】
前記情報共有システムは、
2以上の前記データ処理装置がアクセス可能なデータ記憶装置、をさらに有し、
2以上の前記データ処理装置は、それぞれ、
自己の保有する前記第3暗号データを前記データ記憶装置に保存し、
他のデータ処理装置が保存した前記第3暗号データ、もしくは、他のデータ処理装置が保存した前記第3暗号データであってさらにその他の前記データ処理装置が暗号化したデータを前記データ処理装置から取得して自己の前記主暗号鍵で暗号化し、
その暗号化したデータを前記データ記憶装置に保存してもよい。
【0026】
3以上の前記データ処理装置で構成される前記情報共有システムであって、
前記第1暗号データは、
2以上の他のデータ処理装置の前記主暗号鍵で順次暗号化されることによって生成されてもよい。
【0027】
上記目的を達成するため、本発明の第2の観点にかかるデータ処理装置は、
他のデータ処理装置と連携してデータを処理するデータ処理装置であって、
非公開データを記憶する非公開データ記憶手段と、
前記非公開データの暗号化に使用する主暗号鍵を記憶する主暗号鍵記憶手段と、
前記非公開データを他のデータ処理装置の保有する主暗号鍵で暗号化した第1暗号データを取得する暗号データ取得手段と、
前記第1暗号データを自己の保有する前記主暗号鍵で暗号化することで第2暗号データを生成する暗号データ生成手段と、
前記第2暗号データを他のデータ処理装置と共通のハッシュ関数でハッシュ化することでハッシュデータを生成するハッシュデータ生成手段と、
他のデータ処理装置の前記ハッシュデータ生成手段により生成されたハッシュデータを取得するハッシュデータ取得手段と、
前記ハッシュデータ生成手段で生成した自己のハッシュデータと前記ハッシュデータ取得手段で取得した他のデータ処理装置のハッシュデータとを比較することで、自己の保有する非公開データと他のデータ処理装置の保有する非公開データの内容の全部または一部が共通するか否かを判定する判定手段と、を有し、
前記第1暗号データおよび前記第2暗号データは、
共通の可換性暗号により生成されており、
前記可換性暗号は、
複数の暗号鍵を使用して異なった順番でデータを暗号化しても、いずれも同じ暗号データを生成する、
ことを特徴とする。
【0028】
上記目的を達成するため、本発明の第3の観点にかかる情報共有方法は、
他のデータ処理装置と連携してデータを処理するデータ処理装置により使用される情報共有方法であって、
非公開データを記憶する非公開データ記憶ステップと、
前記非公開データの暗号化に使用する主暗号鍵を記憶する主暗号鍵記憶ステップと、
前記非公開データを他のデータ処理装置の保有する主暗号鍵で暗号化した第1暗号データを取得する暗号データ取得ステップと、
前記第1暗号データを自己の保有する前記主暗号鍵で暗号化することで第2暗号データを生成する暗号データ生成ステップと、
前記第2暗号データを他のデータ処理装置と共通のハッシュ関数でハッシュ化することでハッシュデータを生成するハッシュデータ生成ステップと、
他のデータ処理装置の前記ハッシュデータ生成ステップにて生成されたハッシュデータを取得するハッシュデータ取得ステップと、
前記ハッシュデータ生成ステップで生成した自己のハッシュデータと前記ハッシュデータ取得ステップで取得した他のデータ処理装置のハッシュデータとを比較することで、自己の保有する非公開データと他のデータ処理装置の保有する非公開データの内容の全部または一部が共通するか否かを判定する判定ステップと、を有し、
前記第1暗号データおよび前記第2暗号データは、
共通の可換性暗号により生成されており、
前記可換性暗号は、
複数の暗号鍵を使用して異なった順番でデータを暗号化しても、いずれも同じ暗号データを生成する、
ことを特徴とする。
【0029】
上記目的を達成するため、本発明の第4の観点にかかる情報共有プログラムは、
他のコンピュータと連携してデータを処理するコンピュータにより実行される情報共有プログラムであって、
非公開データを記憶する非公開データ記憶ステップと、
前記非公開データの暗号化に使用する主暗号鍵を記憶する主暗号鍵記憶ステップと、
前記非公開データを他のコンピュータの保有する主暗号鍵で暗号化した第1暗号データを取得する暗号データ取得ステップと、
前記第1暗号データを自己の保有する前記主暗号鍵で暗号化することで第2暗号データを生成する暗号データ生成ステップと、
前記第2暗号データを他のコンピュータと共通のハッシュ関数でハッシュ化することでハッシュデータを生成するハッシュデータ生成ステップと、
他のコンピュータの前記ハッシュデータ生成ステップにて生成されたハッシュデータを取得するハッシュデータ取得ステップと、
前記ハッシュデータ生成ステップで生成した自己のハッシュデータと前記ハッシュデータ取得ステップで取得した他のコンピュータのハッシュデータとを比較することで、自己の保有する非公開データと他のコンピュータの保有する非公開データの内容の全部または一部が共通するか否かを判定する判定ステップと、をコンピュータに実行させ、
前記第1暗号データおよび前記第2暗号データは、
共通の可換性暗号により生成されており、
前記可換性暗号は、
複数の暗号鍵を使用して異なった順番でデータを暗号化しても、いずれも同じ暗号データを生成する、
ことを特徴とする。
【0030】
上記目的を達成するため、本発明の第5の観点にかかる記録媒体は、
上記情報共有プログラムが記録されていることを特徴とする。
【発明の効果】
【0031】
本発明によれば、小さな値域から選択された情報を共有する場合であっても、無関係な情報を他に知られることなく、共通する情報を知ることができる。
【図面の簡単な説明】
【0032】
【図1】本発明の実施の形態1にかかる情報共有システムの構成例を示すブロック図である。
【図2】複数機関による事前の取り決めに基づいて、世界中の薬に一意の番号を付した薬番号表を示す図である。
【図3】図2に示す薬番号表に基づいて、各機関が持っている実験データの薬番号をリストした薬番号リストを示す図であり、(a)と(b)は2つの機関でそれぞれ作成した薬番号リストを示す図である。
【図4】図1に示す制御部によって実現される機能を示す機能ブロック図である。
【図5】本発明の実施の形態1にかかる「情報共有処理」の概要を説明するための処理概要図である。
【図6】本発明の実施の形態1にかかる「情報共有処理」を説明するためのフローチャートである。
【図7】図6に示す「情報共有処理」で実行される「暗号データ取得処理」を説明するためのフローチャートである。
【図8】図6に示す「情報共有処理」で実行される「暗号データ取得処理」の概要を説明するための処理概要図である。
【図9】図6に示す「情報共有処理」で実行される「ハッシュデータ取得処理」を説明するためのフローチャートである。
【図10】本発明の実施の形態2にかかる情報共有システムの構成例を示すブロック図である。
【図11】本発明の実施の形態2にかかる「情報共有処理」を説明するためのフローチャートである。
【図12】図11に示す「情報共有処理」で実行される「暗号データ取得処理」を説明するためのフローチャートである。
【図13】図11に示す「情報共有処理」で実行される「ハッシュデータ取得処理」を説明するためのフローチャートである。
【図14】薬番号リストの各データブロックに実験データが関連付けられた様子を説明するための図であり、(a)は機関Rの薬番号リストに各実験データが関連付けられた様子を示す図であり、(b)は機関Sの薬番号リストに各実験データが関連付けられた様子を示す図である。
【図15】薬番号リストの各データブロックに詳細リストが関連付けられた様子を説明するための図であり、(a)は機関Rの薬番号リストに各詳細リストが関連付けられた様子を示す図であり、(b)は機関Sの薬番号リストに各詳細リストが関連付けられた様子を示す図である。
【図16】ハッシュ関数を使用した従来の情報共有方法を説明するための概略図である。
【図17】全薬番号のハッシュ値を記録したハッシュリスト(a)と相手機関から得たハッシュリスト(b)とを照らし合わせて、相手機関の薬番号を特定した様子を示す図である。
【図18】可換性暗号の可換性を説明するための図であり、(a)は可換性暗号の暗号可換性を説明するための図であり、(b)は可換性暗号の復号可換性を説明するための図である。
【図19】可換性暗号を使用した従来の情報共有方法を説明するための概略図である。
【発明を実施するための形態】
【0033】
(実施の形態1)
本実施の形態の情報共有システム1は、機関Rもしくは機関Sの持つ非公開情報のうち無関係な情報を相手に知られることなく、共通する情報のみをお互いに知るための情報共有システムである。以下、情報共有システム1について図面を参照しながら説明する。まず、図1を参照して情報共有システム1の構成について説明する。
【0034】
情報共有システム1は、図1に示すように、機関Rと機関Sそれぞれに設置された2台のデータ処理装置100と、それらを接続する通信線200とで構成される。2台のデータ処理装置100は通信線200を通じて互いにデータを送受信することで連携して1つの処理を実行する。
【0035】
データ処理装置100は、例えば、PCサーバやメインフレームなどで構成され、実験データ等の非公開情報を格納している。データ処理装置100は、図1に示すように、制御部110、通信部120、記憶部130、操作部140、インターフェース部150から構成される。
【0036】
制御部110は、CPU(Central Processing Unit)などで構成され、データ処理装置100の各部を制御する。また、制御部110は操作部140から「共有開始通知」を受信すると、後述の「情報共有処理」を実行する。「情報共有処理」は2台のデータ処理装置100それぞれで実行される。
【0037】
通信部120は、LANコネクタや送受信処理用のプロセッサなどから構成され、通信線200を通じて外部の装置(例えばパーソナルコンピュータ)との通信を行う。
【0038】
記憶部130は、ハードディスクやRAM(Random Access Memory)などの記憶装置から構成され、データ処理装置100の動作に必要なデータ(例えば「非公開データ」や「暗号鍵」)などを記憶する。
【0039】
ここで「非公開データ」とは「実験データ」や「薬番号リスト」などの非公開の情報のことをいう。また、「実験データ」とは、各研究機関で行った動物実験等の実験データのことであり、「薬番号リスト」とは、例えば図2に示す「薬番号表」に基づいて、機関RとSそれぞれが持っている実験データの薬番号を、例えば図3に示す薬番号リストとしてまとめたものである(以下、機関Rと機関Sの薬番号リストをそれぞれ「リストR」「リストS」とよぶ)。これらのリストは、1つの有意情報を1要素とした複数要素のリストとなっている。ここで、「有意情報」とは、例えば「薬番号」や「暗号鍵」などのように、リストの中の他の情報とは独立して意味を持つ情報のことをいう。薬番号リスト(「リストR」「リストS」)は1要素(ここでは「薬番号」)を1データブロックとした複数データブロックの構成となっている。暗号化やハッシュ化はこのデータブロックごとに実行される。
【0040】
また「暗号鍵」とは、データの暗号化に使用するための鍵となる数値であり、それぞれの機関において任意に選択される。本実施の形態では、記憶部130に2種類の暗号鍵が保存される。1つは「主暗号鍵」であり、もう1つは「副暗号鍵」である。「主暗号鍵」は、後述する暗号リストB1およびB2を生成するための暗号鍵であり、また、「副暗号鍵」は暗号リストB1を生成する過程で一時的に使用される暗号鍵である。「副暗号鍵」は複数個用意される(詳細は後述する)。
【0041】
操作部140は、データ処理装置100の外面上に構成されている各種ボタンなどによって構成される。ユーザにより所定のボタンが押されると、制御部110に対し「共有開始通知」を送信する。共有開始通知は、情報共有処理を開始するためのトリガとなるデータである。
【0042】
インターフェース部150は、例えば、USB(Universal Serial Bus)コネクタやビデオ出力端子などから構成され、外部の装置(例えばPCやモニタなど)へ処理結果を送信する。
【0043】
以上、情報共有システム1の構成について説明したが、次に、制御部110の備える機能について、図4の機能ブロック図、および、図5の処理概略図を参照しながら説明する。
【0044】
制御部110は複数の機関で情報を共有するための「情報共有処理」を実行する。情報共有処理は操作部140からの「共有開始通知」により開始される。以下に説明する各機能は、情報共有処理を実現するための機能である。
【0045】
暗号データ取得部111は、他機関のデータ処理装置100と連携して、自己の薬番号リスト(「リストR」「リストS」)を相手機関の主暗号鍵で暗号化した暗号リストB1(図5(a):「暗号リストB1r」「暗号リストB1s」)を取得する。暗号化には両機関で共通の可換性暗号Eが使用される。
【0046】
暗号データ生成部112は、暗号データ取得部111で取得した暗号リストB1を自己の主暗号鍵で暗号化することで暗号リストB2(図5(b):「暗号リストB2r」「暗号リストB2s」)を生成する。暗号化には、暗号リストB1を生成したのと同じアルゴリズムの可換性暗号Eを使用する。
【0047】
ハッシュデータ生成部113は、暗号データ生成部112で生成した暗号リストB2をハッシュ化することでハッシュリストB3(図5(c):「ハッシュリストB3r」「ハッシュリストB3s」)を生成する。ハッシュ化には相手機関と共通のハッシュ関数Hを使用する。
【0048】
ハッシュデータ取得部114は、ハッシュデータ生成部113で生成したハッシュリストB3と、他機関のハッシュリストB3とを交換する(図5(d))。
【0049】
判定部115は、ハッシュデータ生成部113で生成した自己のハッシュリストB3と、ハッシュデータ取得部114で取得した相手機関のハッシュリストB3とを比較することで、内容の共通するデータブロックを特定する。共通するデータブロックを特定したら、インターフェース部150を通じて外部の装置へ処理結果を送信する。
【0050】
以上、制御部110の機能について説明したが、次に、データ処理装置100で実行される「情報共有処理」について説明する。機関Rおよび機関Sに設置された2台のデータ処理装置100は、それぞれ同じ処理内容の「情報共有処理」を実行することで、無関係な情報(自己が持っている情報のうち相手機関が持っていない情報)を相手機関に知られることなく共通する情報のみをお互いに知る。
【0051】
制御部110は操作部140から「共有開始通知」を受信すると図6に示す「情報共有処理」を開始する。この「情報共有処理」は大きく5つのステップで構成される。以下、図5の処理概略図を参照しながら「情報共有処理」の概要について説明する。なお、以下に説明する各ステップの内容は、2台のデータ処理装置100それぞれで実行される。
【0052】
最初に、ステップS100の暗号データ取得処理について説明する。制御部110は、自己の「薬番号リスト」を暗号化した「暗号リストB1」(図5(a))を取得する。暗号リストB1は、相手機関が保有する主暗号鍵で暗号化される。暗号化には両機関で共通の可換性暗号Eが使用される。
【0053】
ここで1つ疑問が生じる。暗号リストB1を得るためには、相手機関に自身の薬番号リストを渡して暗号化してもらう必要があるため、その際に、自身の薬番号リストが相手機関に知られてしまうのではないかという疑問である。しかしながら、本実施の形態では、可換性暗号の性質を利用した斬新な方法により、自身の薬番号リストを相手に知られることなく、暗号リストB1を取得することが可能となっている。その具体的方法は後で詳しく述べる。
【0054】
次に、ステップS200の暗号データ生成処理について説明する。制御部110は暗号リストB1を自己の保有する主暗号鍵で暗号化することで「暗号リストB2」(図5(b))を生成する。暗号化には、暗号リストB1を生成したのと同じアルゴリズムの可換性暗号Eを使用する。同じアルゴリズムの可換性暗号を使用することで、可換性暗号の暗号可換性(どちらの暗号鍵で先に暗号化しても同じ暗号値になる性質)を利用することが可能になる。
【0055】
以上の処理(ステップS100とステップS200)により、機関RとSは、それぞれのリストをそれぞれの主暗号鍵で暗号化した暗号リストB2を生成したことになる。可換性暗号には暗号可換性があることから、ステップS200が完了した時点で同じ薬番号は同じ暗号値になっているはずである。また、この時点で、暗号リストB2の各データブロックの値域は暗号鍵の値域(0〜1038)にまで拡大している。この値域の広さは、最終的に生成されるリストへの攻撃防止に大きな役割を果たす(理由については後述する)。
【0056】
ステップS200の処理が完了すると、次に、制御部110はステップS300のハッシュデータ生成処理を実行する。制御部110は暗号リストB2をハッシュ化することで「ハッシュリストB3」(図5(c))を生成する。ハッシュ化には機関RとSで共通のハッシュ関数Hを使用する。
【0057】
このハッシュ化により、相手機関は暗号リストB2を復号することができなくなる。暗号リストB2が復号されるということは、自身の薬番号リストの暗号文を相手機関に与えるということを意味する(可換性暗号の復号可換性)。これは、平文の候補が限られた状況下では、平文を推測する糸口になりかねない。しかしながら、本実施の形態では、暗号リストB2をさらにハッシュ化し、暗号文としての規則性を失わせることで、暗号リストB2が復号されることを防止する。
【0058】
ステップS300の処理が完了すると、次に、制御部110はステップS400のハッシュデータ取得処理を開始する。制御部110は、ステップS300で生成されたハッシュリストB3を機関RとSで交換する(図5(d))。交換したハッシュリストB3は後述のステップ500で使用される。
【0059】
ステップS400の処理が完了すると、次に、制御部110はステップS500の判定処理を実行する。制御部110は、ステップS300で生成した自己の「ハッシュリストB3」とステップS400で交換した相手の「ハッシュリストB3」とを比較して、内容の共通するデータブロックを特定する。
【0060】
以上、情報共有処理の概要について説明したが、次に、情報共有処理について詳細に説明する。最初に、ステップS100の「暗号データ取得処理」について説明する。ステップS100は図7の「暗号データ取得処理」に対応している。以下、図7のフローチャートおよび図8の処理概略図を参照して「暗号データ取得処理」について説明する。なお、暗号データ取得処理は暗号データ取得部111で実行される。
【0061】
暗号データ取得部111は、薬番号リスト(「リストR」「リストS」)を記憶部130に保存されている副暗号鍵で暗号化して「暗号リストB4」を生成する。暗号データ取得部111は、図8(a)に示すように、薬番号リストをデータブロックごとに異なった暗号鍵を使用して暗号化する(ステップS101)。
【0062】
これにより、あるデータブロックの平文の推測に別のデータブロックの情報を使用することができなくなる。例えば、リストRとリストSの両方に薬番号‘1010’が含まれていたとする。この場合、機関Rは、本実施の形態の「情報共有処理」を実行することで、最終的に、薬番号‘1010’が機関Sの薬番号リストに含まれていると知ることになる。また、機関Rは機関Sから上述の「暗号リストB4s」を得ることで、‘1010’の機関Sの副暗号鍵での暗号値‘8587’を知ることになる。そうなると、機関Rは、薬番号‘1010’(平文)とその暗号値‘8587’(暗号文)を得ていることになり、もし全てのデータブロックで同じ副暗号鍵を使用していれば、他のデータブロックの平文の推測にこの情報が使用できることになる。かかる事態が発生しても、データブロックごとに異なった暗号鍵を使用していれば、他のデータブロックの平文の推測にこの情報を使用することはできない。
【0063】
なお、暗号化には機関Rと機関Sで共通の可換性暗号Eを使用する。後述の処理(ステップS107)において可換性暗号の復号可換性を利用するためである(詳細は後述する)。
【0064】
続いて図7のステップS102について説明する。暗号データ取得部111は生成した暗号リストB4を、通信部120を介して相手機関のデータ処理装置100に送信する(ステップS102)。
【0065】
暗号データ取得部111は、相手機関から暗号リストB4が送信されるのを待つ(ステップS103:No)。相手機関から暗号リストB4が送信されたら、ステップS104に進む(ステップS103:Yes)。
【0066】
暗号データ取得部111は、相手機関の暗号リストB4をデータブロックごとに自己の主暗号鍵を使用して暗号化し、暗号リストB5を生成する。このとき、暗号データ取得部111は、全てのデータブロックで同じ主暗号鍵を使用する。また、暗号化にはステップS101で使用したのと同じ可換性暗号Eを使用する。なお、本ステップでの暗号化に際しては、リスト中のデータブロックの順番を変更してはならない。後の処理(ステップS107)において、副暗号鍵とデータブロックとの対応関係がとれなくなるからである(ステップS104)。
【0067】
暗号データ取得部111は、ステップS104で生成した暗号リストB5を、通信部120を介して、相手機関のデータ処理装置100に送信する(ステップS105)。
【0068】
暗号データ取得部111は、相手機関から暗号リストB5が送信されるのを待つ(ステップS106:No)。相手機関から暗号リストB5が送信されたら、ステップS107に進む(ステップS106:Yes)。
【0069】
暗号データ取得部111は、暗号リストB5を図8(b)に示すように自己の保有する副暗号鍵(もしくは副暗号鍵に対応する復号鍵)で復号する。ここで、暗号リストB5を復号した結果は「暗号リストB1」である。これは、1の暗号鍵で復号した結果は他の暗号鍵で暗号化した結果に等しいという可換性暗号の「復号可換性」に基づく。暗号データ取得部111は、生成した暗号リストB1を記憶部130に保存する(ステップS107)。
【0070】
以上の処理により、暗号データ取得部111は相手機関に自身の薬番号リストを知られることなく暗号リストB1を取得したことになる。暗号リストB1の取得が完了すると、次に、制御部110は、図6のフローに戻り、ステップS200の暗号データ生成処理を開始する。暗号データ生成処理は暗号データ生成部112で実行される。
【0071】
暗号データ生成部112は、ステップS100で取得した暗号リストB1を自己の保有する主暗号鍵で暗号化することで「暗号リストB2」を生成する。暗号データ生成部112は暗号リストB1をデータブロックごとに暗号化する。このとき、暗号化にはステップS100で使用したのと同じ可換性暗号Eを使用する。また、暗号データ生成部112は、全てのデータブロックで同じ主暗号鍵を使用する。データブロックごとに違う主暗号鍵を使用すると、例えば、リストRとSの異なった位置に同じ薬番号が記録されている場合(例えばリストRの1番目のデータブロックに薬番号‘1010’が記録され、リストSの2番目のデータブロックに薬番号‘1010’が記録されている場合)、最終的に同じ薬番号が同じ暗号値にならないからである。なお、本ステップにおいては、各データブロックを任意の順番に並べ替えてもよい。副暗号鍵での復号はすでに完了しており、また、全てのデータブロックで同じ主暗号鍵を使用しているので、必ずしも暗号鍵とデータブロックの対応関係をとる必要がないからである(ステップS200)。
【0072】
なお、本ステップが完了した時点で、暗号リストB2の値域は主暗号鍵の値域(128ビット暗号であれば0〜1038)にまで拡大している。なぜなら、相手機関は相手の主暗号鍵の値を知らず、また、暗号リストB2は主暗号鍵の値次第で変化する値であるからである。この値域の広さは、最終的に生成されるハッシュリストB3への攻撃防止に大きな役割を果たす。すなわち、広い値域を確保することで現実時間において暗号リストB2の全ハッシュ値を計算することが実質上不可能になり、従来方法のように、全ハッシュ値を計算してハッシュ化前の値を特定することができなくなる。
【0073】
暗号リストB2の生成が完了すると、制御部110は、次に、ステップS300のハッシュデータ生成処理を開始する。ハッシュデータ生成処理はハッシュデータ生成部113で実行される。ハッシュデータ生成部113は、ステップS200で取得した暗号リストB2を他のデータ処理装置100と共通のハッシュ関数Hを使用してデータブロックごとにハッシュ化し、「ハッシュリストB3」を生成する。なお、本ステップにおいても、ステップS200と同様に、各データブロックを任意の順番に並べ替えてもよい(ステップS300)。
【0074】
以上の処理によりハッシュリストB3の生成が完了すると、制御部110は、次に、ステップS400(図6)の「ハッシュデータ取得処理」を開始する。ハッシュデータ取得処理はハッシュデータ取得部114で実行される。ハッシュデータ取得部114は、ステップS300で生成したハッシュリストB3を互いに相手機関に送信することで、自己の保有するハッシュリストB3と相手機関の保有するハッシュリストB3とを交換する。なお、ステップS400の「ハッシュデータ取得処理」は、図9の「ハッシュデータ取得処理」に対応している。以下、図9のフローチャートを参照して「ハッシュデータ取得処理」について説明する。
【0075】
ハッシュデータ取得部114は、ステップS300で生成したハッシュリストB3を、通信部120を介して、相手機関のデータ処理装置100に送信する(ステップS401)。
【0076】
ハッシュデータ取得部114は、相手機関からハッシュリストB3が送信されるのを待つ(ステップS402:No)。相手機関からハッシュリストB3が送信されたら、ステップS107に進む(ステップS402:Yes)。
【0077】
ハッシュデータ取得部114は、相手機関のハッシュリストB3を記憶部130に保存する(ステップS403)。
【0078】
以上の処理によりハッシュリストB3の取得が完了すると、次に、制御部110は、図6のフローに戻り、ステップS500の判定処理を開始する。判定処理は判定部115で実行される。判定部115は、ステップS300で生成したハッシュリストB3とステップS400で取得した相手機関のハッシュリストB3をデータブロックごとに比較し、内容が共通するか否かをデータブロックごとに判定する。そして、その判定結果に基づいて、両機関のハッシュリストB3において内容の共通するデータブロックを特定する。共通のデータブロックを特定したら、インターフェース部150を通じて処理結果を外部の装置へ出力する(ステップS500)。各機関は特定した薬の実験データを相手機関に送信する。
【0079】
本実施の形態によれば、一端、自己の副暗号鍵を使って暗号化した後で、薬番号リストを相手に渡しているので、自己の薬番号リストの内容を相手に知られることなく、暗号リストB1を取得することが可能になる。
【0080】
また、暗号リストB1の生成の過程でデータブロックごとに異なった副暗号鍵を使用しているので、あるデータブロックで平文と暗号文の情報を相手に取得されたとしても、他のデータブロックの平文の推測にその情報を使用することはできない。
【0081】
また、暗号リストB1を暗号化した後は、ハッシュリストB3が生成されるまで自己のリストが相手機関に渡ることはない。そのため、何らかの理由で平文の推測が可能な状況になったとしても、自己のリストの内容を推測される心配はない。
【0082】
また、一端データをハッシュ化した後は、暗号文としての規則性は完全に失われているため、その暗号文を復号することはできない。そのため、相手機関にハッシュリストB3を渡したとしても、相手機関に自身の薬番号リストを取得される心配はない。
【0083】
さらに、暗号リストB2(ハッシュリストB3を生成する前のリスト)の値域は相手機関の暗号鍵の値域に等しい。128ビット暗号であれば、暗号鍵の値域は0〜1038という天文学的な大きさになる。そのため、暗号リストB2の全ハッシュ値を計算することは実質上不可能であり、相手機関にハッシュリストB3を渡したとしてもハッシュ値から元の値が特定されることはない。
【0084】
このように本実施の形態の方法は、従来方法の弱点を克服した極めて機密性の高い方法となっている。よって、本実施の形態の方法を使用すれば、小さな値域から選択された情報であっても高い安全性のもと情報の共有が可能になる。
【0085】
(実施の形態2)
本実施の形態の情報共有システム1は、図10に示すように、複数のデータ処理装置100を備えるシステムである。複数のデータ処理装置100はデータ記憶装置300を介してデータを送受信することで、複数の機関での情報共有を可能にする。以下、情報共有システム1について図面を参照しながら説明する。まず、図10を参照して情報共有システム1の構成について説明する
【0086】
情報共有システム1は、図10に示すように、複数のデータ処理装置100と、データ処理装置100それぞれと通信線200で接続されたデータ記憶装置300とを備える情報共有システムである。なお、以下の説明では、データ処理装置100が、機関R、機関S、機関Tそれぞれに設置されているものとして説明する。以下、情報共有システム1の構成について説明する。なお、データ処理装置100の構成と機能については、実施の形態1と同様であるので説明を省略する。
【0087】
データ記憶装置300は、例えば、3つの機関とは別の機関内に設置されたサーバである。データ記憶装置300は、データを保存するための記録装置(ハードディスクやフラッシュメモリ等)や、データ処理装置100とデータを送受信するための通信装置などを備える。データ処理装置100は通信線200を介してデータ記憶装置300にデータを保存する。
【0088】
データ記憶装置300内部の記録装置には、機関ごとに専用のフォルダが用意されている。3つのデータ処理装置100は、それぞれの機関に用意された上記フォルダに暗号リスト等を格納する。また、各フォルダ内部にはデータ処理履歴を記録するための履歴ファイルが格納されている。各データ処理装置100はリストを処理するたびに履歴ファイルに所定のデータを記録する
【0089】
次に、情報共有システム1で実行される「情報共有処理」について説明する。制御部110は、操作部140から「共有開始通知」を受信すると、図11に示す「情報共有処理」を開始する。最初に、ステップS100の「暗号データ取得処理」について説明する。なお、ステップS100の「暗号データ取得処理」は、図12の「暗号データ取得処理」に対応している。以下、図12のフローチャートを参照して「暗号データ取得処理」について説明する。
【0090】
暗号データ取得部111は、薬番号リスト(「リストR」「リストS」「リストT」)を記憶部130に保存されている副暗号鍵で暗号化して暗号リストB4(「暗号リストB4r」「暗号リストB4s」「暗号リストB4t」)を生成する(ステップS111)。
【0091】
暗号データ取得部111は、生成した暗号リストB4を、通信部120を介して、データ記憶装置300に送信する(ステップS102)。データ記憶装置300は、暗号リストB4を受信して、指定のフォルダにデータを格納する。
【0092】
暗号データ取得部111は、他の機関のデータが格納されているか一定期間ごとにデータ記憶装置300をモニタする(ステップS113)。その機関の専用フォルダにデータが格納されていたら、ステップS114に進む(ステップS113:Yes)。
【0093】
暗号データ取得部111は、他の機関のデータをデータ記憶装置300から取得して暗号化する(ステップS114)。暗号データ取得部111は暗号化したデータをデータ記憶装置300に送信する(ステップS115)。データ記憶装置300はそのデータを受信して所定のフォルダに格納する。また、暗号データ取得部111は、履歴ファイルにデータを暗号化したことを記録する。
【0094】
暗号データ取得部111は、もう一方の機関のデータが格納されているか一定期間ごとにデータ記憶装置300をモニタする(ステップS116)。その機関の専用フォルダにデータが格納されていたら、ステップS117に進む(ステップS116:Yes)。
【0095】
暗号データ取得部111は、もう一方の機関のデータをデータ記憶装置300から取得して暗号化する(ステップS117)。暗号データ取得部111は暗号化したデータをデータ記憶装置300に送信する(ステップS118)。データ記憶装置300はデータを受信して所定のフォルダに格納する。また、暗号データ取得部111は、履歴ファイルにデータを暗号化したことを記録する。
【0096】
暗号データ取得部111は、自己の専用フォルダに保存されている履歴ファイルを一定期間ごとに取得して、自己の暗号リストB4の、他の2つの機関での暗号化が完了したかモニタする(ステップS119)。暗号化が完了していたら、ステップS120に進む(ステップS119:Yes)。
【0097】
暗号データ取得部111は、自己の専用フォルダから他の2つの機関で暗号化されたデータ(以下、「暗号リストB5」という)取得する。そして、取得した暗号リストB5を副暗号鍵で復号する。なお、暗号リストB5(「暗号リストB5r」「暗号リストB5s」「暗号リストB5t」)を復号したデータは、暗号リストB1(「暗号リストB1r」「暗号リストB1s」「暗号リストB1t」)となる。これは可換性暗号の「復号可換性」に基づく。暗号データ取得部111は生成した暗号リストB1を記憶部130に保存する(ステップS120)。
【0098】
以上の処理により暗号リストB1の取得が完了すると、次に、制御部110は、図11のフローに戻り、ステップS200の暗号データ生成処理を開始する。暗号データ生成部112は、ステップS100で取得した暗号リストB1を自己の保有する主暗号鍵で暗号化することで暗号リストB2(「暗号リストB2r」「暗号リストB2s」「暗号リストB2t」)を生成する(ステップS200)。
【0099】
暗号リストB2の生成が完了すると、制御部110は、次に、ステップS300のハッシュデータ生成処理を開始する。ハッシュデータ生成部113は、ステップS200で取得した暗号リストB2を他のデータ処理装置100と共通のハッシュ関数を使用してハッシュ化することでハッシュリストB3(「ハッシュリストB3r」「ハッシュリストB3s」「ハッシュリストB3t」)を生成する(ステップS300)。
【0100】
以上の処理によりハッシュリストB3の生成が完了すると、制御部110は、次に、ステップS400(図11)の「ハッシュデータ取得処理」を開始する。ステップS400の「ハッシュデータ取得処理」は、図13の「ハッシュデータ取得処理」に対応している。以下、図13のフローチャートを参照して「ハッシュデータ取得処理」について説明する。
【0101】
ハッシュデータ取得部114は、生成したハッシュリストB3を、通信部120を介して、データ記憶装置300に送信する(ステップS411)。データ記憶装置300はデータを受信して所定のフォルダに格納する。
【0102】
ハッシュデータ取得部114は、他の2つの機関のハッシュリストB3が格納されているか一定期間ごとにデータ記憶装置300をモニタする(ステップS412)。他の機関のハッシュリストB3が格納されていたら、ステップS413に進む(ステップS412:Yes)。
【0103】
ハッシュデータ取得部114は、他の2つの機関のハッシュリストB3をデータ記憶装置300から取得する。そして、ハッシュデータ取得部114は取得したハッシュリストB3を記憶部130に保存する(ステップS413)。
【0104】
以上の処理によりハッシュリストB3の取得が完了すると、次に、制御部110は、図11のフローに戻り、ステップS500の判定処理を開始する。判定処理は判定部115で実行される。判定部115はステップS300で生成したハッシュリストB3と、ステップS400で取得した他の2つの機関のハッシュリストB3とデータブロックごとに比較し、内容が共通するか否かをデータブロックごとに判定する。判定部115は、3つのハッシュリストB3でデータブロック内容が共通したときに「内容が共通する」と判定してもよいし、自己のハッシュリストB3と他機関のハッシュリストB3のいずれかでデータブロック内容が共通したときに「内容が共通する」と判定してもよい。そして、判定部115は、その判定結果に基づいて、他機関のハッシュリストB3と内容の共通するデータブロックを特定する。3つのハッシュリストB3で内容が共通するデータブロックを特定してもよいし、自己のハッシュリストB3と他機関のハッシュリストB3のいずれかと内容が共通するデータブロックを特定してもよい。判定部115はインターフェース部150を通じて処理結果を外部の装置へ出力する(ステップS500)。各機関は特定した薬の実験データを相手機関に送信する。
【0105】
本実施の形態によれば、データ記憶装置300を介してデータを送受信することで3つの機関での情報共有が可能になる。
【0106】
またデータ記憶装置300に保存されるデータは暗号化されたデータ(暗号リストB4やハッシュリストB3)であるので、機関R、S、T以外の機関がそのデータを取得したとしても、そこから有意な情報を得ることはできない。特に、暗号リストB4は副暗号鍵で暗号化されているので、他の2つの機関にとっても有意な情報ではない。そのため、各機関は安心してこれらのデータをデータ記憶装置300に保存しておくことができる。
【0107】
なお、情報共有システム1は4台以上のデータ処理装置100を有していてもよい。4台以上のデータ処理装置100がデータ記憶装置300にアクセスできるように構成し、実施の形態2と同様の処理を実行することで、4つ以上の機関での情報共有が可能になる。
【0108】
また、データ処理装置100は、データ記憶装置300を介さずに、例えばインターネットや専用回線等を使用して、複数のデータ処理装置100間で直接データを送受信してもよい。
【0109】
実施の形態1および2では、1データブロックごとに副暗号鍵の値を変更したが、複数のデータブロックごとに副暗号鍵を変更してもよい(例えば、8つのデータブロックを1つのまとまりとして、8データブロックごとに副暗号鍵の値を変更する)。複数のデータブロックごとに副暗号鍵を変更することで、用意すべき副暗号鍵の数を減らすことができる。
【0110】
データブロックに含まれる情報としては、薬番号のほかに、暗号鍵、実験データ、文書データ、バイナリデータ等であってもよい。なお、1つのデータブロックには複数の要素(すなわち、複数の有意情報)が含まれていてもよい(例えば、複数の暗号鍵が含まれるデータを1つのデータブロックとしてもよい)。また、データブロックは全て同じデータ長である必要はない。データブロックごとにデータ長を変えてもよい。
【0111】
実施の形態1および2では、複数のデータブロックで構成されるリストを対象に本方法を適用したが、本方法はリスト全体を対象に適用してもよい。この場合、データ処理装置100は、リスト全体の内容が他機関のリストと共通するか否かを判断してもよい。
【0112】
この方法の利用形態としては、例えば、通信途中でのデータの改竄の検証などが考えられる。例えば、機関Rが機関Sにデータ(文書データやバイナリデータ)を送信したとする。このとき、機関Rが送信したデータをリストR、機関Sが受信したデータをリストSとして、実施の形態1と同様に、それぞれハッシュリストB3を生成する。そして、それら2つのハッシュリストが一致するか否かを照らし合わせることで、送信途中でデータの改竄が行われていないか検証する。
【0113】
データ処理装置100は、共通するデータブロックを特定した後、そのデータブロックに関する詳細な情報を他のデータ処理装置100に自動的に送信してもよい。例えば、図14(a)と図14(b)に示すように、あらかじめ薬番号リスト(リストR、リストS)の各データブロック(薬番号)と各薬に関する実験データとを関連付けて記憶部130に記憶しておく。そして、データ処理装置100は判定部115で共通するデータブロックを特定したら、特定したデータブロックに関連付けられた実験データを記憶部130から取得し、他のデータ処理装置100に通信部120を介してこの実験データを送信する。
【0114】
実施の形態1および2の方法を複数回実行することで、さらに詳細に共通する情報を特定してもよい。以下、実施の形態1の薬番号リスト(リストRとS)の例を使用して、具体的に説明する。
【0115】
最初に、機関RとSは、図15(a)と図15(b)に示すように、薬番号リスト(リストR、リストS)および実験動物リスト(詳細リストRa、Rb、・・・、詳細リストSa、Sb、・・・)を用意する。実験動物リストは、薬番号リストの各データブロックに関する詳細を記載したリストであって、具体的には、薬番号リストに記載されている各薬を使用して動物実験を行ったときの実験動物の種類(動物実験番号)を羅列したリストである。実験動物リストは、それぞれリストRおよびリストSの各データブロックに関連付けられている。なお、図15に示した実験動物番号は、薬番号と同様に、機関RとSの事前の取り決めに基づいて付したものである。
【0116】
次に、機関RとSは、実施の形態1と同様に、リストRとSに対し本方法を実行することによって、薬Aの実験データを相手機関が持っていると特定する。その後、機関RとSは、薬Aに関する実験動物リスト(詳細リストRa、詳細リストSa)に対しさらにもう一回本方法を実行することによって、共通する実験動物の種類を特定する。
【0117】
このように、段階的に処理を行うことによって、共有すべき情報を選択するための判断指標を得ることができる(例えば、相手機関がマウスのような小動物でしか動物実験を行っていない場合は、初期段階の簡単な実験データの共有にとどめ、相手機関が人間に近い霊長類で動物実験を行っている場合は、全ての実験データを共有する)。また、詳細に共通する情報を特定することによって、相手機関の例えば薬Aに関する情報の信憑性を確認することができる。さらに、段階的に概要から詳細へ共通情報を特定することによって、始めから詳細データ全体で共通情報を特定することと比べ処理時間を短縮できる。
【0118】
なお、詳細リストRやSの内容は実験動物の種類に限られない。各薬の成分の情報であってもよいし、具体的な実験データの値であってもよい。
【0119】
可換性暗号Eとしては、例えば、DH(Diffie−Hellman)暗号、エルガマル(ElGamal)暗号、楕円曲線暗号などを使用してもよい。
【0120】
ハッシュ関数Hとしては、例えば、MD2、MD4、MD5、SHA、SHA−3などを使用してもよい。
【0121】
リストRやリストS等の内容としては、薬番号などのように値域が限定されたデータに限られない。暗号鍵のように広い値域を持つデータであってもよい。
【0122】
本システムの適用は研究機関の間の情報共有に限られない。会社間、部署間等、さまざまな組織間の情報共有に適用可能である。また、個人間の情報共有にも適用可能である。
【0123】
データ処理装置100は、専用のシステムによらず、通常のコンピュータシステムを用いても実現可能である。例えば、上述の動作を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に格納して配布し、該プログラムをコンピュータにインストールして、上述の処理を実行することによってデータ処理装置100を構成してもよい。また、インターネット等のネットワーク上のサーバ装置が備えるディスク装置に格納しておき、例えばコンピュータにダウンロード等できるようにしてもよい。また、上述の機能を、OSとアプリケーションソフトの共同より実現してもよい。この場合には、OS以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等してもよい。
【0124】
上記のプログラムを記録する記録媒体としては、USBメモリ、フレキシブルディスク、CD、DVD、Blu−ray Disc、MO、SDカード、MS(メモリースティック)、その他、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ、磁気テープ等のコンピュータ読取可能な記録媒体を使用することができる。また、HDD(ハードディスク)やSSD(ソリッドステートドライブ)等、通常、システム又は装置に固定して使用する記録媒体を使用することもできる。
【符号の説明】
【0125】
1 情報共有システム
100 データ処理装置
110 制御部
111 暗号データ取得部
112 暗号データ生成部
113 ハッシュデータ生成部
114 ハッシュデータ取得部
115 判定部
120 通信部
130 記憶部
140 操作部
150 インターフェース部
200 通信線
300 データ記憶装置

【特許請求の範囲】
【請求項1】
2以上のデータ処理装置で構成される情報共有システムであって、
前記データ処理装置はそれぞれ、
非公開データを記憶する非公開データ記憶手段と、
前記非公開データの暗号化に使用する主暗号鍵を記憶する主暗号鍵記憶手段と、
前記非公開データを他のデータ処理装置の保有する主暗号鍵で暗号化した第1暗号データを取得する暗号データ取得手段と、
前記第1暗号データを自己の保有する前記主暗号鍵で暗号化することで第2暗号データを生成する暗号データ生成手段と、
前記第2暗号データを他のデータ処理装置と共通のハッシュ関数でハッシュ化することでハッシュデータを生成するハッシュデータ生成手段と、
他のデータ処理装置の前記ハッシュデータ生成手段により生成されたハッシュデータを取得するハッシュデータ取得手段と、
前記ハッシュデータ生成手段で生成した自己のハッシュデータと前記ハッシュデータ取得手段で取得した他のデータ処理装置のハッシュデータとを比較することで、自己の保有する非公開データと他のデータ処理装置の保有する非公開データの内容の全部または一部が共通するか否かを判定する判定手段と、を有し、
前記第1暗号データおよび前記第2暗号データは、
共通の可換性暗号により生成されており、
前記可換性暗号は、
複数の暗号鍵を使用して異なった順番でデータを暗号化しても、いずれも同じ暗号データを生成する、
ことを特徴とする情報共有システム。
【請求項2】
前記非公開データは、
複数のデータブロックで構成されるデータであり、
前記暗号データ取得手段は、
前記非公開データを他のデータ処理装置の保有する前記主暗号鍵でデータブロックごとに暗号化した前記第1暗号データを取得し、
前記暗号データ生成手段は、
前記第1暗号データを自己の保有する前記主暗号鍵でデータブロックごとに暗号化することで前記第2暗号データを生成し、
前記ハッシュデータ生成手段は、
前記第2暗号データを他のデータ処理装置と共通の前記ハッシュ関数でデータブロックごとにハッシュ化することで前記ハッシュデータを生成し、
前記判定手段は、
前記ハッシュデータ生成手段で生成した自己のハッシュデータと前記ハッシュデータ取得手段で取得した他のデータ処理装置のハッシュデータとをデータブロック単位で比較することで、データブロックごとに内容が共通するか否かを判定する、
ことを特徴とする請求項1に記載の情報共有システム。
【請求項3】
前記データ処理装置は、
前記第1暗号データの取得に使用する複数の副暗号鍵を記憶する副暗号鍵記憶手段、をさらに有し、
前記暗号データ取得手段は、
前記非公開データを1データブロックまたは所定数のデータブロックごとに前記副暗号鍵の値を変更してデータブロックごとに暗号化することで第3暗号データを生成し、
前記第3暗号データを他のデータ処理装置の主暗号鍵でデータブロックごとに暗号化した第4暗号データを取得し、
前記副暗号鍵もしくは前記副暗号鍵に対応する復号鍵で前記第4暗号データを復号することによって前記第1暗号データを生成し、
前記第3暗号データおよび前記第4暗号データは、
前記第1暗号データおよび前記第2暗号データと共通の可換性暗号により生成される、
ことを特徴とする請求項2に記載の情報共有システム。
【請求項4】
前記データ処理装置は、
前記判定手段の判定結果に基づいて、自己の保有する非公開データと他のデータ処理装置の保有する非公開データとの内容の共通するデータブロックを特定する共通ブロック特定手段、をさらに有する
ことを特徴とする請求項2または3に記載の情報共有システム。
【請求項5】
前記データ処理装置は、
前記データブロックそれぞれに関連付けされた詳細データを記憶する詳細データ記憶手段と、
前記共通ブロック特定手段が特定したデータブロックに関連付けされた前記詳細データを前記詳細データ記憶手段から取得して他のデータ処理装置に送信する詳細データ送信手段、をさらに有する、
ことを特徴とする請求項4に記載の情報共有システム。
【請求項6】
前記情報共有システムは、
2以上の前記データ処理装置がアクセス可能なデータ記憶装置、をさらに有し、
2以上の前記データ処理装置は、それぞれ、
自己の保有する前記第3暗号データを前記データ記憶装置に保存し、
他のデータ処理装置が保存した前記第3暗号データ、もしくは、他のデータ処理装置が保存した前記第3暗号データであってさらにその他の前記データ処理装置が暗号化したデータを前記データ処理装置から取得して自己の前記主暗号鍵で暗号化し、
その暗号化したデータを前記データ記憶装置に保存する、
ことを特徴とする請求項3乃至5のいずれか1項に記載の情報共有システム。
【請求項7】
3以上の前記データ処理装置で構成される前記情報共有システムであって、
前記第1暗号データは、
2以上の他のデータ処理装置の前記主暗号鍵で順次暗号化されることによって生成される、
ことを特徴とする請求項1乃至6のいずれか1項に記載の情報共有システム。
【請求項8】
他のデータ処理装置と連携してデータを処理するデータ処理装置であって、
非公開データを記憶する非公開データ記憶手段と、
前記非公開データの暗号化に使用する主暗号鍵を記憶する主暗号鍵記憶手段と、
前記非公開データを他のデータ処理装置の保有する主暗号鍵で暗号化した第1暗号データを取得する暗号データ取得手段と、
前記第1暗号データを自己の保有する前記主暗号鍵で暗号化することで第2暗号データを生成する暗号データ生成手段と、
前記第2暗号データを他のデータ処理装置と共通のハッシュ関数でハッシュ化することでハッシュデータを生成するハッシュデータ生成手段と、
他のデータ処理装置の前記ハッシュデータ生成手段により生成されたハッシュデータを取得するハッシュデータ取得手段と、
前記ハッシュデータ生成手段で生成した自己のハッシュデータと前記ハッシュデータ取得手段で取得した他のデータ処理装置のハッシュデータとを比較することで、自己の保有する非公開データと他のデータ処理装置の保有する非公開データの内容の全部または一部が共通するか否かを判定する判定手段と、を有し、
前記第1暗号データおよび前記第2暗号データは、
共通の可換性暗号により生成されており、
前記可換性暗号は、
複数の暗号鍵を使用して異なった順番でデータを暗号化しても、いずれも同じ暗号データを生成する、
ことを特徴とするデータ処理装置。
【請求項9】
他のデータ処理装置と連携してデータを処理するデータ処理装置により使用される情報共有方法であって、
非公開データを記憶する非公開データ記憶ステップと、
前記非公開データの暗号化に使用する主暗号鍵を記憶する主暗号鍵記憶ステップと、
前記非公開データを他のデータ処理装置の保有する主暗号鍵で暗号化した第1暗号データを取得する暗号データ取得ステップと、
前記第1暗号データを自己の保有する前記主暗号鍵で暗号化することで第2暗号データを生成する暗号データ生成ステップと、
前記第2暗号データを他のデータ処理装置と共通のハッシュ関数でハッシュ化することでハッシュデータを生成するハッシュデータ生成ステップと、
他のデータ処理装置の前記ハッシュデータ生成ステップにて生成されたハッシュデータを取得するハッシュデータ取得ステップと、
前記ハッシュデータ生成ステップで生成した自己のハッシュデータと前記ハッシュデータ取得ステップで取得した他のデータ処理装置のハッシュデータとを比較することで、自己の保有する非公開データと他のデータ処理装置の保有する非公開データの内容の全部または一部が共通するか否かを判定する判定ステップと、を有し、
前記第1暗号データおよび前記第2暗号データは、
共通の可換性暗号により生成されており、
前記可換性暗号は、
複数の暗号鍵を使用して異なった順番でデータを暗号化しても、いずれも同じ暗号データを生成する、
ことを特徴とする情報共有方法。
【請求項10】
他のコンピュータと連携してデータを処理するコンピュータにより実行される情報共有プログラムであって、
非公開データを記憶する非公開データ記憶ステップと、
前記非公開データの暗号化に使用する主暗号鍵を記憶する主暗号鍵記憶ステップと、
前記非公開データを他のコンピュータの保有する主暗号鍵で暗号化した第1暗号データを取得する暗号データ取得ステップと、
前記第1暗号データを自己の保有する前記主暗号鍵で暗号化することで第2暗号データを生成する暗号データ生成ステップと、
前記第2暗号データを他のコンピュータと共通のハッシュ関数でハッシュ化することでハッシュデータを生成するハッシュデータ生成ステップと、
他のコンピュータの前記ハッシュデータ生成ステップにて生成されたハッシュデータを取得するハッシュデータ取得ステップと、
前記ハッシュデータ生成ステップで生成した自己のハッシュデータと前記ハッシュデータ取得ステップで取得した他のコンピュータのハッシュデータとを比較することで、自己の保有する非公開データと他のコンピュータの保有する非公開データの内容の全部または一部が共通するか否かを判定する判定ステップと、をコンピュータに実行させ、
前記第1暗号データおよび前記第2暗号データは、
共通の可換性暗号により生成されており、
前記可換性暗号は、
複数の暗号鍵を使用して異なった順番でデータを暗号化しても、いずれも同じ暗号データを生成する、
ことを特徴とする情報共有プログラム。
【請求項11】
請求項10に記載の情報共有プログラムが記録されていることを特徴とするコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2012−34250(P2012−34250A)
【公開日】平成24年2月16日(2012.2.16)
【国際特許分類】
【出願番号】特願2010−173085(P2010−173085)
【出願日】平成22年7月30日(2010.7.30)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 広島市立大学、広島市立大学大学院 情報科学研究科 情報工学専攻 平成21年度 修士論文内容梗概、平成22年2月
【出願人】(510108951)公立大学法人広島市立大学 (11)
【Fターム(参考)】