(57)【要約】【課題】暗号化されたデータの安全性を確保しつつ、暗号化されたデータを復号するために必要な情報の情報量を抑えること。【解決手段】予め決められた複数のパスワードに基づき暗号化されたシードの復号を補助する情報であって、少なくとも、一のパスワードに関する情報と、前記複数のパスワードのうち前記一のパスワード以外の他のパスワードに関する情報とに基づき求められる補助情報と、入力された前記一のパスワードとに基づき、前記暗号化されたシードを復号するシード復号部と、前記シード復号部により復号されたシードに基づき、対象データを復号する復号鍵を生成する復号鍵生成部と、を備える。【選択図】図１
2015023550.tif 000002
【特許請求の範囲】
【請求項１】
予め決められた複数のパスワードに基づき暗号化されたシードの復号を補助する情報であって、少なくとも、一のパスワードに関する情報と、前記複数のパスワードのうち前記一のパスワード以外の他のパスワードに関する情報とに基づき求められる補助情報と、入力された前記一のパスワードとに基づき、前記暗号化されたシードを復号するシード復号部と、
前記シード復号部により復号されたシードに基づき、対象データを復号する復号鍵を生成する復号鍵生成部と、
を備えることを特徴とするデータ復号システム。
【請求項２】
前記補助情報は、
少なくとも、前記パスワードごとに予め決められた乱数と、前記複数のパスワードのうち前記一のパスワード以外の他のパスワードに関する情報とに基づき求められ情報であることを特徴とする請求項１に記載のデータ復号システム。
【請求項３】
前記パスワードは、
前記対象データの復号が許可されている複数のユーザにそれぞれ割り当てられた固有の情報であることを特徴とする請求項１又は２に記載のデータ復号システム。
【請求項４】
前記補助情報は、
少なくとも、前記対象データの復号が許可されている複数のパスワードの組み合わせごとに異なる情報と、前記パスワードごとに異なる情報とに基づき求められる情報であることを特徴とする請求項１から３のうちいずれか一項に記載のデータ復号システム。
【請求項５】
前記シード復号部は、
予め決められた２つのパスワードに基づき暗号化されたシードの復号を補助する第１補助情報に基づき、前記２つのパスワードを含む複数のパスワードに基づき暗号化されたシードの復号を補助する第２補助情報を算出し、算出した前記第２補助情報に基づき、暗号化されたシードを復号することを特徴とする請求項１から４のうちいずれか一項に記載のデータ復号システム。
【請求項６】
前記シード復号部は、
前記補助情報と前記一のパスワードに関する情報に加え、前記パスワードごとに決められた変動値に基づき、前記暗号化されたシードを復号することを特徴とする請求項１から５のうちいずれか一項に記載のデータ復号システム。
【請求項７】
コンピュータを、
予め決められた複数のパスワードに基づき暗号化されたシードの復号を補助する情報であって、少なくとも、一のパスワードに関する情報と、前記複数のパスワードのうち前記一のパスワード以外の他のパスワードに関する情報とに基づき求められる補助情報と、入力された前記一のパスワードとに基づき、前記暗号化されたシードを復号するシード復号手段、
前記シード復号手段により復号されたシードに基づき、対象データを復号する復号鍵を生成する復号鍵生成手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化されたデータを復号するデータ復号システム及びプログラムに関する。
【背景技術】
【０００２】
近年、スマートフォンなどの端末の高性能化に伴い、サーバ等に保存されているデータを、携帯端末にダウンロードして、遠隔地においても所定のデータを開くことができるようになってきている。また、一つの携帯端末を、複数のユーザで利用することにより、携帯端末の有効利用を図る傾向もみられる。そこで、問題となるのは、閲覧が制限されているデータが、許可されてないユーザによって不正に閲覧されることである。
これに対して、例えば、閲覧が制限されているデータを暗号化するものがある。例えば、特許文献１には、複数のユーザが、同一の暗号鍵で暗号化した暗号コンテンツを、同一の復号鍵で復号することにより、利用可能なユーザを制限するものが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１１０４６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、複数のユーザ間で同一の復号鍵を共有すると、復号鍵が漏えいする危険性が高まり、不正なユーザによってデータが閲覧される危険性も高まるという虞がある。
これに対して、複数のユーザのそれぞれに割り当てられた秘密の情報（以下、鍵のリストという）を用いて復号する手法が考えられる。この場合、ユーザごとに、復号鍵を生成するための情報を用意する必要があるため、データを復号するために必要な情報の情報量が増大する問題があった。また、復号鍵を生成するための情報に各ユーザの秘密の情報が含まれている場合、鍵のリストが漏えいすることにより、各ユーザの秘密の情報が漏えいし、不正なユーザによってデータが閲覧される危険性が高まる虞がある。
【０００５】
本発明は、上記の課題を解決することができるデータ復号システム及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明は上述した課題を解決するためになされたもので、本発明の一態様によるデータ復号システムは、予め決められた複数のパスワードに基づき暗号化されたシードの復号を補助する情報であって、少なくとも、一のパスワードに関する情報と、前記複数のパスワードのうち前記一のパスワード以外の他のパスワードに関する情報とに基づき求められる補助情報と、入力された前記一のパスワードとに基づき、前記暗号化されたシードを復号するシード復号部と、前記シード復号部により復号されたシードに基づき、対象データを復号する復号鍵を生成する復号鍵生成部と、を備える。
【０００７】
また、この発明は上述した課題を解決するためになされたもので、本発明の一態様によるプログラムは、コンピュータを、予め決められた複数のパスワードに基づき暗号化されたシードの復号を補助する情報であって、少なくとも、一のパスワードに関する情報と、前記複数のパスワードのうち前記一のパスワード以外の他のパスワードに関する情報とに基づき求められる補助情報と、入力された前記一のパスワードとに基づき、前記暗号化されたシードを復号するシード復号手段、前記シード復号手段により復号されたシードに基づき、対象データを復号する復号鍵を生成する復号鍵生成手段、として機能させるためのプログラム。
【発明の効果】
【０００８】
本発明によれば、暗号化されたデータの安全性を確保しつつ、暗号化されたデータを復号するために必要な情報の情報量を抑えることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係るデータ復号システムの構成の一例を示すブロック図である。
【図２】本発明の一実施形態に係る復号部と暗号化部の構成例を示すブロック図である。
【図３】本発明の一実施形態において用いられる数式の一例を示す表である。
【図４】本発明の一実施形態において用いられる数式の一般式の一例を示す表である。
【図５】本発明の一実施形態において用いられる補助情報の一例を示す表である。
【図６】本発明の一実施形態において用いられる補助情報の他の例を示す表である。
【図７】本発明の一実施形態において用いられる補助情報の他の例を示す表である。
【図８】本発明の一実施形態において用いられる補助情報の他の例を示す表である。
【図９】本発明の一実施形態において用いられる補助情報の他の例を示す表である。
【図１０】本発明の一実施形態において用いられる補助情報の他の例を示す表である。
【図１１】本発明の一実施形態に係る暗号化処理方法の一例を示すフローチャートである。
【図１２】本発明の一実施形態に係る復号化処理方法の一例を示すフローチャートである。
【図１３】本発明の第３実施形態において用いられる数式の一例を示す表である。
【発明を実施するための形態】
【００１０】
［第１実施形態］
以下、本発明の一実施形態について、図面を参照して説明する。
図１は、本実施形態に係るデータ復号システム１００の構成例を示す図である。図１に示す通り、本実施形態に係るデータ復号システム１００は、ネットワークを介して互いに通信可能に接続される端末１と情報管理装置２とを備える。
端末１は、持ち運びが可能な端末であって、複数のユーザによる共有利用が可能な端末であることが好ましく、例えば、スマートフォン、携帯ゲーム機、ＰＤＡ（Ｐｅｒｓｏｎａｌ Ｄｉｇｉｔａｌ Ａｓｓｉｓｔａｎｔ）、タブレット型ＰＣ（Ｐｅｒｓｏｎａｌ Ｃｏｍｐｕｔｅｒ）、あるいは、ノート型ＰＣ等が利用可能である。
情報管理装置２は、一定のセキュリティが確保されたサーバ等である。この情報管理装置２は、例えば、管理者によって操作される装置である。
【００１１】
この端末１は、通信部１１と、操作部１２と、出力部１３と、復号部１４と、設定ファイル記憶部１５とを備える。
通信部１１は、無線通信を利用して、情報管理装置２と情報の送受信を行う。
操作部１２は、例えば、操作パネルであって、ユーザからの操作を受け付けるセンサーを備え、センサーによる検出結果を復号部１４に出力する。本実施形態において、操作部１２は、操作画面に接触するユーザの指の接触位置を、一定の時間間隔ごとに、センサーにより検出し、このセンサーの検出結果を出力する。なお、本発明はこれに限られず、操作部１２は、例えば、操作画面に近接するユーザの指や操作指示手段（スタイラスペン）等の位置を非接触センサーにより検出するものであってもよい。
出力部１３は、画像や動画を出力する表示部と、音声を出力するスピーカーを含む構成である。表示部としての出力部１３は、操作部１２とともに一体的に設けられるタッチパネルであってもよい。
復号部１４は、暗号化されたシードを復号して、復号されたシードに基づき、対象データを復号する復号鍵を生成する。
設定ファイル記憶部１５は、情報管理装置２によって作成された設定ファイルを記憶する。この設定ファイルには、以下に説明するような、暗号化されたシードや補助情報が格納されている。
【００１２】
情報管理装置２は、通信部２１と、操作部２２と、入力部２３と、暗号化部２４と、管理記憶部２５と、キーストア２６とを備える。
通信部２１は、無線通信を利用して、端末１と情報の送受信を行う。
操作部２２は、例えば、マウスやキーボードであって、ユーザからの操作を受け付ける。
入力部２３は、情報を入力するインターフェースであって、例えば、暗号化の対象となる業務ファイルや、キーストアに格納する各ユーザのパスワードを入力する。
暗号化部２４は、乱数などからシードを生成し、生成したシードに基づき暗号化鍵を生成し、対象データを暗号化する。この暗号化された対象データは、管理記憶部２５に格納される。また、暗号化部２４は、この暗号化された対象データの復号が許可されている全てのユーザのパスワードを利用して、生成したシードを暗号化する。この暗号化されたシードは、管理記憶部２５の設定ファイルに格納される。
管理記憶部２５は、暗号化された対象データや、暗号化されたシード等を含む設定を格納する。
キーストア２６は、各ユーザのパスワードを記憶する。
【００１３】
次に、図２を参照して、端末１の復号部１４と情報管理装置２の暗号化部２４について詳細に説明する。図２は、本実施形態に係る復号部と暗号化部の構成例を示す図である。
図２に示す通り、復号部１４は、シード復号部１４１と、復号鍵生成部１４２と、データ復号部１４３とを備える。
シード復号部１４１は、予め決められた複数のパスワードに基づき算出されるシード秘密鍵の演算を補助する補助情報と、複数のパスワードのうち一のパスワードとに基づき、暗号化されたシードを復号する。なお、この補助情報とは、情報管理装置２の暗号化部２４によって生成され、設定ファイルに格納されている情報である。
復号鍵生成部１４２は、シード復号部１４１により復号されたシードに基づき、対象データを復号する復号鍵を生成する。
データ復号部１４３は、復号鍵生成部１４２によって生成された復号鍵に基づき、対象データを復号する。
【００１４】
シード秘密鍵とは、対象データの復号が許可されている複数のパスワードに基づき算出される値であって、この対象データの復号が許可されている複数のパスワードの組み合わせの集合ごとに、１つの値が決められている。
【００１５】
本実施形態において、補助情報は、シード秘密鍵ごとに、つまり、暗号化された対象データの復号が許可されている複数のユーザの組み合わせの集合ごとに、各ユーザに応じて決められている情報である。例えば、暗号化された対象データの復号が許可されている複数のユーザの組み合わせが、ユーザＡ，Ｂ，Ｃである場合、ユーザＡに割り当てられた補助情報ｓαβγ，ｔαと、ユーザＢに割り当てられた補助情報ｓβαγ，ｔβと、ユーザＣに割り当てられた補助情報ｓγαβ，ｔγとが、情報管理装置２の暗号化部２４によって作成される。この場合、Ａ，Ｂ，Ｃ（つまり、全てのパスワードα，β，γ）に対して共通する１つのシード秘密鍵ｘαβγが、定義される。
詳細については後述するが、補助情報は、複数のパスワードのうち一のパスワード以外の他のパスワードに関する情報を、一のパスワードに基づき算出する情報である。
また、補助情報は、複数のパスワードのうち一のパスワード以外の他のパスワードに関する情報を、パスワードごとに予め決められた乱数に基づき算出する情報である。
さらに、補助情報は、対象データの復号が許可されている複数のパスワードの組み合わせの集合ごとに異なる情報（例えば、シード秘密鍵ｘαβγを含むシード公開鍵ｙαβγを求める方程式）と、パスワードごとに異なる情報（例えば、補助情報ｓαβγ，ｓβαγ，ｓγαβ，ｔα，ｔβ，ｔγ）とを含む情報である。
【００１６】
本実施形態において、パスワードは、対象データの復号が許可されている複数のユーザにそれぞれ割り当てられた固有の情報である。例えば、パスワードは、社員ＩＤ（Ｉｄｅｎｔｉｔｙ Ｄｏｃｕｍｅｎｔ）や、各ユーザが任意に設定する固有のパスワードであってもよい。
【００１７】
暗号化部２４は、シード生成部２４１と、暗号化鍵生成部２４２と、データ暗号化部２４３と、シード公開鍵生成部２４４と、シード暗号化部２４５と、設定ファイル生成部２４６とを備える。
シード生成部２４１は、乱数などからシードｍαβγを生成し、暗号化鍵生成部２４２とシード暗号化部２４５に出力する。
暗号化鍵生成部２４２は、シード生成部２４１によって生成されたシードｍαβγに基づき、暗号化鍵ｅ−Ｋｅｙαβγを生成し、データ暗号化部２４３に出力する。
データ暗号化部２４３は、暗号化鍵生成部２４２によって生成された暗号化鍵ｅ−Ｋｅｙαβγにより、対象データを暗号化し、管理記憶部２５に格納する。
シード公開鍵生成部２４４は、キーストア２６から、暗号化された対象データを共有するメンバーとして決定されたユーザのパスワードを読み出す。また、シード公開鍵生成部２４４は、暗号化された対象データを共有するメンバーとして決定されたユーザのパスワードと、管理記憶部２５から読み出した乱数ｋαβγと、データ暗号化部２４３が暗号化した対象データの識別情報θとに基づき、シード秘密鍵ｘαβγを生成する。また、シード公開鍵生成部２４４は、算出したシード秘密鍵ｘαβγに基づき、シード公開鍵ｙαβγを生成する。
【００１８】
シード暗号化部２４５は、シード公開鍵生成部２４４によって生成されたシード公開鍵ｙαβγにより、シード生成部２４１により生成されたシードｍαβγを暗号化した暗号化シードｃ１，ｃ２を生成し、設定ファイル生成部２４６に出力する。
設定ファイル生成部２４６は、補助情報を生成し、生成した補助情報と、暗号化シードｃ１，ｃ２に基づき、設定ファイルを生成し、管理記憶部２５に格納する。
【００１９】
次に、図３を参照して、本実施形態に係る復号部１４及び暗号化部２４において用いられる数式の一例について説明する。図３は、本実施形態において用いられる数式の一例を示す表である。ここでは、２人のユーザＡ，Ｂが自身のパスワードα，βのいずれかを入力することにより、暗号化されている業務ファイルＦ１を開封するための演算処理に用いる数式の一例について説明する。
【００２０】
シード秘密鍵ｘαβは、ユーザＡのパスワードαと業務ファイルＦ１の識別子θとのハッシュ値ｈ（α，θ）と、ユーザＢのパスワードβと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）と、所定の乱数ｋαβとの総和を、（ｐ−１）で除算した余りである。なお、このｘαβ＝・・・で示す方程式を、シード秘密鍵の方程式という。このシード秘密鍵の方程式のみでシード秘密鍵ｘαβを算出するためには、ユーザＡのパスワードαとユーザＢのパスワードβの情報が必要となる。
【００２１】
入力されたパスワードがαだけであって、ユーザＡが業務ファイルＦ１を開封する場合、補助情報ｓαが用いられる。補助情報ｓαは、ユーザＡのパスワードαと業務ファイルＦ１の識別子θとのハッシュ値ｈ（α，θ）に乱数ｔαを乗じた値と、ユーザＢのパスワードβと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）と、所定の乱数ｋαβとの総和を、（ｐ−１）で除算した余りである。なお、このｓα＝・・・で示す方程式を、ユーザＡの補助情報という。本実施形態において、補助情報ｓαと、乱数ｔαとは、設定ファイルに記憶されている値である。
【００２２】
なお、入力されたパスワードがβだけであって、ユーザＢが業務ファイルＦ１を開封する場合、補助情報ｓβが用いられる。補助情報ｓβは、ユーザＢのパスワードβと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）に乱数ｔβを乗じた値と、ユーザＡのパスワードαと業務ファイルＦ１の識別子θとのハッシュ値ｈ（α，θ）と、所定の乱数ｋαβとの総和を、（ｐ−１）で除算した余りである。
【００２３】
シード公開鍵ｙαβは、生成元ｇをシード秘密鍵ｘαβの回数だけかけ合わせた値を、十分大きな素数ｐで除算した余りである。なお、このｙαβ＝・・・で示す方程式を、シード公開鍵の方程式という。
【００２４】
暗号化シードｃ１は、生成元ｇを所定の乱数ｒの回数だけかけ合わせた値を、十分大きな素数ｐで除算した余りである。また、暗号化シードｃ２は、シード公開鍵ｙαβを所定の乱数ｒの回数だけかけ合わせた値と、シードｍαβγの値とを乗算した積を、十分大きな素数ｐで除算した余りである。なお、このｃ１＝・・・，ｃ２＝・・・で示す方程式を、暗号化シードの方程式という。
【００２５】
復号されたシードｍαβγは、暗号化シードｃ２を「ｃ１αｃ１（ｓα―αｔα）」で除算した商を、さらに十分大きな素数ｐで除算した余りである。なお、このｍαβγ＝・・・で示す方程式を、復号シードの方程式という。また、復号を指示するユーザ、つまり、入力されるパスワードが異なる場合、図３に示す「ｃ１αｃ１（ｓα―αｔα）」内のαを、他のパスワードに置き換えることで、シードｍαβγを算出することは可能である。
【００２６】
次に、図４を参照して、図３に示した数式の一般式について説明する。図４は、本実施形態において用いられる数式の一般式の一例を示す表である。
シード秘密鍵の方程式を一般化すると、図４に示すｘαβγ…＝・・・の方程式で表すことができる。対象データ（例えば、業務ファイル）の復号が許可されている複数のユーザＡ，Ｂ，Ｃ・・・のそれぞれに割り当てられたパスワードα，β，γ・・・に基づくハッシュ値と、所定の乱数ｋαβγ…との総和を、（ｐ−１）で除算した余りである。具体的に説明すると、シード秘密鍵ｘαβγ…は、ユーザＡのパスワードαと業務ファイルの識別子θとのハッシュ値ｈ（α，θ）と、ユーザＢのパスワードβと業務ファイルの識別子θとのハッシュ値ｈ（β，θ）と、ユーザＣのパスワードγと業務ファイルの識別子θとのハッシュ値ｈ（β，θ）と・・・の総和、つまり、対象データの復号が許可されている全てのユーザＡ，Ｂ，Ｃ・・・のパスワードに基づくハッシュ値の総和に基づき算出される。なお、所定の乱数ｋαβγ…は、対象データの復号が許可されている複数のユーザＡ，Ｂ，Ｃ・・・の組み合わせごとに、予め決められている。
【００２７】
シード公開鍵の方程式を一般化すると、図４に示すｙαβγ…＝・・・の方程式で表すことができる。このシード公開鍵ｙαβγ…は、生成元ｇをシード秘密鍵ｘαβγ…の回数だけかけ合わせた値を、十分大きな素数ｐで除算した余りである。
【００２８】
補助情報の方程式を一般化すると、図４に示すｓα＝・・・，ｓβ＝・・・，ｓγ＝・・・，・・・の方程式で表すことができる。これら補助情報ｓα，ｓβ，ｓγ，・・・は、ユーザごと、つまり、パスワードごとに作成される。すなわち、補助情報の方程式は、対象データの復号が許可されている複数のユーザＡ，Ｂ，Ｃ・・・の数だけ存在する。
補助情報ｓαは、ユーザＡのパスワードαと業務ファイルＦ１の識別子θとのハッシュ値ｈ（α，θ）に、ユーザＡのパスワードαに応じて決められた乱数ｔαを乗じた値と、他のユーザＢ，Ｃ・・・のパスワードβ，γ・・・に基づくハッシュ値と、所定の乱数ｋαβγ…との総和を、（ｐ−１）で除算した余りである。具体的に説明すると、補助情報ｓαは、補助情報ｓαのユーザＡ以外のユーザＢのパスワードβと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）と、補助情報ｓαのユーザＡ以外のユーザＣのパスワードγと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）と・・・の総和、つまり、対象データの復号が許可されている全てのユーザＡ，Ｂ，Ｃ・・・のうち、ユーザＡ以外のユーザＢ，Ｃ・・・のパスワードに基づくハッシュ値の総和に基づき算出される。
なお、補助情報ｓβも同様に、ユーザＢのパスワードβと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）に、ユーザＢのパスワードβに応じて決められた乱数ｔβを乗じた値と、他のユーザＡ，Ｃ・・・のパスワードα，γ・・・に基づくハッシュ値と、所定の乱数ｋαβγ…との総和を、（ｐ−１）で除算した余りである。
補助情報ｓγも同様に、ユーザＣのパスワードγと業務ファイルＦ１の識別子θとのハッシュ値ｈ（γ，θ）に、ユーザＣのパスワードγに応じて決められた乱数ｔγを乗じた値と、他のユーザＡ，Ｂ・・・のパスワードα，β・・・に基づくハッシュ値と、所定の乱数ｋαβγ…との総和を、（ｐ−１）で除算した余りとの和である。
なお、乱数ｔα，ｔβ，ｔγは、ユーザＡ，Ｂ，Ｃ・・・毎に予め決められている乱数であってもよく、暗号化部２４によってパスワードα，β，γ・・・に基づき算出される乱数であってもよい。
【００２９】
暗号化シードの方程式を一般化すると、図４に示すｃ１＝・・・，ｃ２＝・・・の方程式で表すことができる。この暗号化シードｃ１は、図３に示す式と同じであって、生成元ｇを所定の乱数ｒの回数だけかけ合わせた値を、十分大きな素数ｐで除算した余りである。また、暗号化シードｃ２は、シード公開鍵ｙαβγ…を所定の乱数ｒの回数だけかけ合わせた値と、シードｍαβγ…をの値とを乗算した積を、十分大きな素数ｐで除算した余りである。
【００３０】
復号シードの方程式を一般化すると、図４に示すｍαβγ…＝・・・の方程式で表すことができる。この復号されたシードｍαβγ…は、暗号化シードｃ２を「ｃ１αｃ１（ｓα―αｔα）」で除算した商を、さらに十分大きな素数ｐで除算した余りである。
【００３１】
次に、図５を参照して、本実施形態において用いられる数式の具体例について説明する。図５は、２人のユーザＢ，Ｃが自身のパスワードβ，γのいずれかを入力することにより、暗号化されている業務ファイルを開封するための演算処理に用いる数式の一例を示す表である。
シード秘密鍵ｘβγを算出するためのシード秘密鍵の方程式は、全てのパスワードに対して共通の方程式であって、１つである。
補助情報は、ユーザＢがパスワードβを入力することにより業務ファイルＦ１を開封する場合、及び、ユーザＣがパスワードγを入力することにより業務ファイルＦ１を開封する場合に応じて、それぞれ設定されている。
ユーザＢがパスワードβを入力することにより業務ファイルＦ１を開封する場合に復号部１４に用いられる補助情報ｓβγは、上述の通り、ユーザＢのパスワードβと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）に乱数ｔβを乗じた値と、ユーザＣのパスワードγと業務ファイルＦ１の識別子θとのハッシュ値ｈ（γ，θ）と、所定の乱数ｋβγとの総和を、（ｐ−１）で除算した余りである。また、乱数ｔβは、ユーザＢに固有の情報、又は、パスワードβに固有の情報であって、ユーザごと又はパスワードごとに予め決められており、例えば、パスワードβに基づき算出される乱数である。
ユーザＣがパスワードγを入力することにより業務ファイルＦ１を開封する場合に復号部１４に用いられる補助情報ｓγβは、上述の通り、ユーザＣのパスワードγと業務ファイルＦ１の識別子θとのハッシュ値ｈ（γ，θ）に乱数ｔγを乗じた値と、ユーザＢのパスワードβと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）と、所定の乱数ｋβγとの総和を、（ｐ−１）で除算した余りである。また、乱数ｔγは、ユーザＣに固有の情報、又は、パスワードγに固有の情報であって、ユーザごと又はパスワードごとに予め決められており、例えば、パスワードγに基づき算出される乱数である。
【００３２】
次に、図６を参照して、本実施形態において用いられる数式の具体例について説明する。図６は、２人のユーザＡ，Ｂが自身のパスワードα，βのいずれかを入力することにより、暗号化されている業務ファイルＦ１を開封するための演算処理に用いる数式の一例を示す表である。
これは、図５を参照して説明したパスワードがα，βに置き変わっただけで、その他は図５に示した数式と同一であるため、詳細な説明は省略する。
【００３３】
次に、図７を参照して、本実施形態において用いられる数式の具体例について説明する。図７は、２人のユーザＡ，Ｃが自身のパスワードα，γのいずれかを入力することにより、暗号化されている業務ファイルＦ１を開封するための演算処理に用いる数式の一例を示す表である。
これは、図５を参照して説明したパスワードがα，γに置き変わっただけで、その他は図５に示した数式と同一であるため、詳細な説明は省略する。
【００３４】
次に、図８を参照して、本実施形態において用いられる数式の具体例について説明する。図８は、３人のユーザＡ，Ｂ，Ｃが自身のパスワードα，β，γのいずれかを入力することにより、暗号化されている業務ファイルＦ１を開封するための演算処理に用いる数式の一例を示す表である。
シード秘密鍵ｘαβγを算出するためのシード秘密鍵の方程式は、全てのパスワードに対して共通の方程式であって、１つである。
補助情報は、ユーザＡがパスワードαを入力することにより業務ファイルＦ１を開封する場合、ユーザＢがパスワードβを入力することにより業務ファイルＦ１を開封する場合、及び、ユーザＣがパスワードγを入力することにより業務ファイルＦ１を開封する場合に応じて、それぞれ設定されている。
ユーザＡがパスワードαを入力することにより業務ファイルＦ１を開封する場合に復号部１４により用いられる補助情報ｓαβγは、ユーザＡのパスワードαと業務ファイルＦ１の識別子θとのハッシュ値ｈ（α，θ）に乱数ｔαを乗じた値と、ユーザＢのパスワードβと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）と、ユーザＣのパスワードγと業務ファイルＦ１の識別子θとのハッシュ値ｈ（γ，θ）と、所定の乱数ｋαβγとの総和を、（ｐ−１）で除算した余りである。
ユーザＢがパスワードβを入力することにより業務ファイルＦ１を開封する場合に復号部１４により用いられる補助情報ｓβαγは、ユーザＢのパスワードβと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）に乱数ｔβを乗じた値と、ユーザＡのパスワードαと業務ファイルＦ１の識別子θとのハッシュ値ｈ（α，θ）と、ユーザＣのパスワードγと業務ファイルＦ１の識別子θとのハッシュ値ｈ（γ，θ）と、所定の乱数ｋαβγとの総和を、（ｐ−１）で除算した余りである。
ユーザＣがパスワードγを入力することにより業務ファイルＦ１を開封する場合に復号部１４により用いられる補助情報ｓγαβは、ユーザＣのパスワードγと業務ファイルＦ１の識別子θとのハッシュ値ｈ（γ，θ）に乱数ｔγを乗じた値と、ユーザＡのパスワードαと業務ファイルＦ１の識別子θとのハッシュ値ｈ（α，θ）と、ユーザＢのパスワードβと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）と、所定の乱数ｋαβγとの総和を、（ｐ−１）で除算した余りである。
【００３５】
なお、詳細については、第２実施形態において説明するが、暗号化された対象データの復号が許可されているユーザが３人以上である場合の補助情報ｓαβγ，ｓβαγ，ｓγαβは、暗号化された対象データの復号が許可されているユーザが２人である場合の補助情報ｓβγ，ｓγβ，ｓαβ，ｓβα，ｓαγ，ｓγαにより、図８に示すように表すことができる。ただし、この時に入力する乱数ｔα，ｔβ，ｔγは、２倍の値とする。
【００３６】
次に、図９を参照して、本実施形態において用いられる数式の具体例について説明する。図９は、４人のユーザＡ，Ｂ，Ｃ，Ｄが自身のパスワードα，β，γ，δのいずれかを入力することにより、暗号化されている業務ファイルを開封するための演算処理に用いる数式の一例を示す表である。
シード秘密鍵ｘαβγδを算出するためのシード秘密鍵の方程式は、全てのパスワードに対して共通の方程式であって、１つである。
補助情報は、ユーザＡがパスワードαを入力することにより業務ファイルＦ１を開封する場合、ユーザＢがパスワードβを入力することにより業務ファイルＦ１を開封する場合、ユーザＣがパスワードγを入力することにより業務ファイルＦ１を開封する場合、及び、ユーザＤがパスワードδを入力することにより業務ファイルＦ１を開封する場合に応じて、それぞれ設定されている。
【００３７】
ユーザＡがパスワードαを入力することにより業務ファイルＦ１を開封する場合、補助情報ｓαβγδは、ユーザＡのパスワードαと業務ファイルの識別子θとのハッシュ値ｈ（α，θ）に乱数ｔαを乗じた値と、ユーザＢのパスワードβと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）と、ユーザＣのパスワードγと業務ファイルＦ１の識別子θとのハッシュ値ｈ（γ，θ）と、ユーザＤのパスワードδと業務ファイルＦ１の識別子θとのハッシュ値ｈ（δ，θ）と、所定の乱数ｋαβγσとの総和を、（ｐ−１）で除算した余りである。
ユーザＢがパスワードβを入力することにより業務ファイルＦ１を開封する場合、補助情報ｓβαγδは、ユーザＢのパスワードβと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）に乱数ｔβを乗じた値と、ユーザＡのパスワードαと業務ファイルＦ１の識別子θとのハッシュ値ｈ（α，θ）と、ユーザＣのパスワードγと業務ファイルＦ１の識別子θとのハッシュ値ｈ（γ，θ）と、ユーザＤのパスワードδと業務ファイルＦ１の識別子θとのハッシュ値ｈ（δ，θ）と、所定の乱数ｋαβγδとの総和を、（ｐ−１）で除算した余りである。
【００３８】
ユーザＣがパスワードγを入力することにより業務ファイルＦ１を開封する場合、補助情報ｓγαβδは、ユーザＣのパスワードγと業務ファイルＦ１の識別子θとのハッシュ値ｈ（γ，θ）に乱数ｔγを乗じた値と、ユーザＡのパスワードαと業務ファイルＦ１の識別子θとのハッシュ値ｈ（α，θ）と、ユーザＢのパスワードβと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）と、ユーザＤのパスワードδと業務ファイルＦ１の識別子θとのハッシュ値ｈ（δ，θ）と、所定の乱数ｋαβγδとの総和を、（ｐ−１）で除算した余りである。
ユーザＤがパスワードδを入力することにより業務ファイルＦ１を開封する場合、補助情報ｓγαβδは、ユーザＤのパスワードδと業務ファイルＦ１の識別子θとのハッシュ値ｈ（δ，θ）に乱数ｔδを乗じた値と、ユーザＡのパスワードαと業務ファイルＦ１の識別子θとのハッシュ値ｈ（α，θ）と、ユーザＢのパスワードβと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）と、ユーザＣのパスワードγと業務ファイルＦ１の識別子θとのハッシュ値ｈ（γ，θ）と、所定の乱数ｋαβγδとの総和を、（ｐ−１）で除算した余りである。
【００３９】
なお、詳細については、第２実施形態において説明するが、暗号化された対象データの復号が許可されているユーザが３人以上である場合の補助情報ｓαβγδ，ｓβαγδ，ｓγαβδ，ｓδαβγは、暗号化された対象データの復号が許可されているユーザが２人である場合の補助情報ｓβγ，ｓγβ，ｓαβ，ｓβα，ｓαγ，ｓγα，ｓαδ，ｓδα，ｓβδ，ｓδβ，ｓγδ，ｓδγにより、図９に示すように表すことができる。なお、補助情報ｓαδ，ｓδα，ｓβδ，ｓδβ，ｓγδ，ｓδγは、図１０に示す。ただし、この時に入力する乱数ｔα，ｔβ，ｔγは、３倍の値とする。
【００４０】
図１０には、ユーザＤが、ユーザＡ，Ｂ，Ｃのそれぞれと、暗号化されている業務ファイルの復号が許可されている場合に用いる数式の一例を示す表である。
図１０に示す通り、ユーザＡ，Ｄに暗号化されている業務ファイルの復号が許可されている場合、シード秘密鍵ｘαδを算出するためのシード秘密鍵の方程式は、全てのパスワードα，δに対して共通の方程式であって、１つである。一方、補助情報は、ユーザＡがパスワードαを入力することにより業務ファイルを開封する場合のｓαδと、ユーザＤがパスワードδを入力することにより業務ファイルを開封する場合のｓδαとの、２つが設定されている。
また、ユーザＢ，Ｄに暗号化されている業務ファイルの復号が許可されている場合と、ユーザＣ，Ｄに暗号化されている業務ファイルの復号が許可されている場合も同様、それぞれ、シード秘密鍵ｘβδ，ｘγδを算出するためのシード秘密鍵の方程式は、全てのパスワードβ，δ、又は、γ，δに対して共通の方程式であって、補助情報は、入力されるパスワードごとに、ｓβδ，ｓδα，又は、ｓγδ，ｓδγの２つが、それぞれ設定されている。
【００４１】
次に、図１１を参照して、暗号化部２４による処理フローの一例を説明する。図１１は、本実施形態に係る暗号化処理方法の一例を示すフローチャートである。なお、この暗号化処理方法の処理は、情報管理装置２により実行される処理である。
（ステップＳＴ１０１）
操作部２２は、管理者からの操作に基づき、暗号化する業務ファイルの指定を受け付ける。ここで、操作部２２は、例えば、業務ファイルＦ１の指定を受け付ける。
（ステップＳＴ１０２）
次いで、操作部２２は、管理者からの操作に基づき、ステップＳＴ１０１において指定された業務ファイルＦ１を共有するメンバーの決定を受け付ける。ここで、操作部２２は、例えば、暗号化された業務ファイルＦ１の復号を許可されるメンバーとして、ユーザＡ，Ｂ，Ｃの決定を受け付ける。
（ステップＳＴ１０３）
そして、シード公開鍵生成部２４４は、キーストア２６から、ステップＳＴ１０２において決定されたメンバーのパスワードを読み出す。ここで、シード公開鍵生成部２４４は、ユーザＡ，Ｂ，Ｃのそれぞれのパスワードであるα，β，γをキーストア２６から読み出す。
【００４２】
（ステップＳＴ１０４）
次いで、シード生成部２４１は、乱数などからシードｍαβγを生成し、暗号化鍵生成部２４２とシード暗号化部２４５に出力する。
（ステップＳＴ１０５）
そして、暗号化鍵生成部２４２は、シード生成部２４１によって生成されたシードｍαβγに基づき、暗号化鍵ｅ−Ｋｅｙαβγを生成し、データ暗号化部２４３に出力する。
（ステップＳＴ１０６）
次いで、データ暗号化部２４３は、暗号化鍵生成部２４２によって生成された暗号化鍵ｅ−Ｋｅｙαβγにより、ステップＳＴ１０１において指定された業務ファイルＦ１を暗号化し、管理記憶部２５に格納する。
【００４３】
（ステップＳＴ１０７）
一方、シード公開鍵生成部２４４は、ステップＳＴ１０３において読み出されたユーザＡ，Ｂ，Ｃのそれぞれのパスワードであるα，β，γと、管理記憶部２５から読み出した乱数ｋαβγに基づき、シード秘密鍵ｘαβγを生成する。具体的に説明すると、シード公開鍵生成部２４４は、ユーザＡのパスワードαと業務ファイルＦ１の識別子θとのハッシュ値ｈ（α，θ）と、ユーザＢのパスワードβと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）と、ユーザＣのパスワードγと業務ファイルＦ１の識別子θとのハッシュ値ｈ（γ，θ）と、ｋαβγとの総和を（ｐ−１）で除算した余りを算出し、シード秘密鍵ｘαβγとする。つまり、シード公開鍵生成部２４４は、図８に示すシード秘密鍵の方程式に従って、シード秘密鍵ｘαβγを算出する。
次いで、シード公開鍵生成部２４４は、算出したシード秘密鍵ｘαβγに基づき、シード公開鍵ｙαβγを生成する。具体的に説明すると、シード公開鍵生成部２４４は、シード生成部２４１が生成したシードｍαβγをシード秘密鍵ｘαβγの回数だけ掛け合わせた値を、十分大きな素数ｐで除算した余りを算出し、シード公開鍵ｙαβγとする。つまり、シード公開鍵生成部２４４は、図４に示す一般化されたシード公開鍵の方程式から決められる通り、ｘαβγ＝・・・で示される方程式に従って、シード公開鍵ｙαβγを算出する。
なお、ここでは、わかりやすいように、シード秘密鍵ｘαβγを算出する例を説明したが、シード公開鍵生成部２４４は、シード秘密鍵ｘαβγを算出することなく、シード公開鍵の方程式に含まれるシード秘密鍵ｘαβγに、シード秘密鍵の方程式に代入する値を代入してシード公開鍵ｙαβγを算出するものであってもよい。
【００４４】
そして、シード暗号化部２４５は、シード公開鍵生成部２４４によって生成されたシード公開鍵ｙαβγにより、シード生成部２４１により生成されたシードｍαβγを暗号化した暗号化シードｃ１，ｃ２を生成し、設定ファイル生成部２４６に出力する。
【００４５】
（ステップＳＴ１０８）
次いで、設定ファイル生成部２４６は、補助情報を生成し、生成した補助情報と、暗号化シードｃ１，ｃ２に基づき、指定された業務ファイルＦ１の設定ファイルを生成する。
具体的に説明すると、設定ファイル生成部２４６は、管理記憶部２５から読み出した乱数ｋαβγ、十分大きな素数ｐ、及び乱数ｔα，ｔβ，ｔγと、ステップＳＴ１０３においてキーストア２６から読み出されたユーザＡ，Ｂ，Ｃのそれぞれのパスワードであるα，β，γとに基づき、補助情報ｓαβγ，ｓβαγ，ｓγαβを算出する。そして、設定ファイル生成部２４６は、算出した補助情報ｓαβγ，ｓβαγ，ｓγαβと、シード暗号化部２４５によって生成された暗号化シードｃ１，ｃ２と、十分大きな素数ｐと、乱数ｔα，ｔβ，ｔγとを、業務ファイルＦ１の識別子θと関連付けた情報を、設定ファイルに格納する。
【００４６】
なお、本発明はこれに限られず、生成した補助情報を、暗号化された業務ファイルの復号が許可されたメンバーの組み合わせに応じて、それぞれ対応付けて設定ファイルに格納するものであってもよい。この場合、図１０に示すように、ユーザごと、つまり、パスワードごとに、補助情報やシード秘密鍵の方程式を対応付けた情報が、設定ファイルに格納されているものであってもよい。
このように、設定ファイル内の形式は、一つに限られない。例えば、乱数ｔα，ｔβ，ｔγ・・・や、十分大きな素数ｐ、補助情報など、共通して利用できる情報の重複を防止するように、ユーザごと、パスワードごと、暗号化された業務ファイルの復号が許可されたメンバーの組み合わせごとに、それぞれ対応付けて格納されていてもよい。この場合、暗号化された業務ファイルの復号が許可されているメンバーを示す情報や、暗号化シードｃ１，ｃ２は、該当する業務ファイルを示す情報（例えば識別子θ）と対応付けておけばよい。
また、シード公開鍵を算出するロジック（例えばプログラム）も、設定ファイル内に格納されている。
【００４７】
次に、図１２を参照して、復号部１４による処理フローの一例を説明する。図１２は、本実施形態に係る復号処理方法の一例を示すフローチャートである。なお、この復号処理方法の処理は、端末１により実行される処理である。
（ステップＳＴ２０１）
操作部１２は、例えば、ユーザＡからの操作に基づき、暗号化されている業務ファイルの復号の指示を受け付ける。ここで、操作部１２は、例えば、業務ファイルＦ１の復号の指示を受け付ける。そして、操作部１２は、業務ファイルＦ１の識別子θを取得し、復号部１４に出力する。
（ステップＳＴ２０２）
次いで、操作部１２は、ユーザＡからの操作に基づき、ユーザＡのパスワードαの入力を受け付け、復号部１４に出力する。
（ステップＳＴ２０３）
そして、シード復号部１４１は、指定された業務ファイルＦ１の識別子θと対応付られた暗号化シードｃ１，ｃ２、及び、補助情報を、設定ファイル記憶部１５の設定ファイルから呼び出す。なお、設定ファイル記憶部１５には、ステップＳＴ２０１又はＳ２０２あるいはそれよりも前の段階で、情報管理装置２の暗号化部２４によって生成された設定ファイルが通信部１１を介して受信され、格納されている。
【００４８】
（ステップＳＴ２０４）
次いで、シード復号部１４１は、呼び出した補助情報ｓαβγ，ｓβαγ，ｓγαβ（なお、乱数ｔα，ｔβ，ｔγや素数ｐを含む）に基づき、暗号化シードｃ１，ｃ２を復号し、復号されたシードｍαβγを復号鍵生成部１４２に出力する。言い換えると、シード復号部１４１は、復号シードの方程式に、暗号化シードｃ１，ｃ２、補助情報ｓαβγ、乱数ｔα、パスワードα及び素数ｐを代入して、シードｍαβγを算出する。
（ステップＳＴ２０５）
そして、復号鍵生成部１４２は、復号されたシードｍαβγに基づき、復号鍵ｄ−Ｋｅｙαβγを生成し、データ復号部１４３に出力する。
（ステップＳＴ２０６）
次いで、データ復号部１４３は、復号鍵ｄ−Ｋｅｙαβγにより、ステップＳＴ２０１により指定された暗号化されている業務ファイルＦ１を復号する。
【００４９】
（ステップＳＴ２０７）
データ復号部１４３により業務ファイルＦ１が復号されたか否かにより、以下の処理を行う。
（ステップＳＴ２０８）
つまり、業務ファイルＦ１が復号できた場合、データ復号部１４３は、復号した業務ファイルＦ１を開封し、出力部１３に出力する。これにより、業務ファイルＦ１は、例えば、出力部１３に表示される。
（ステップＳＴ２０９）
一方、業務ファイルＦ１が復号できなかった場合、データ復号部１４３は、エラーメッセージを出力部１３に出力する。
【００５０】
以上説明した通り、本実施形態に係る復号部１４は、予め決められた複数のパスワードに基づき暗号化されたシードの復号を補助する補助情報を用いることにより、一のパスワードのみを入力しただけで、暗号化されたデータを復号することができる。
すなわち、本実施形態に係る補助情報は、複数のパスワードα，β，γのうち一のパスワードα以外の他のパスワードβ，γに関する情報（例えば、「ｈ（β，θ）＋ｈ（γ，θ）＋ｋαβγ」と、一のパスワードαに関する情報とに基づき求めることができる情報である。このため、復号部１４は、複数のパスワードに基づき暗号化されている業務ファイルを復号する場合、補助情報を用いることにより、一のパスワードのみを入力しただけで、この業務ファイルを復号することができる。
よって、暗号化されたシードを復号する際に、暗号化されたデータの復号が許可されている全てのユーザのパスワードに基づきシード公開鍵を生成する必要がないため、シードを復号するための情報（つまり、復号鍵を生成するための情報）の情報量を抑えることができる。
また、設定ファイルには、暗号化されたデータの復号が許可されているユーザのパスワードが含まれていないため、仮に設定ファイルが漏えいした場合であっても、不正なユーザに各ユーザのパスワードが漏えいする事態を回避することができ、不正なユーザによってデータが閲覧される危険性を低減させることができる。従って、暗号化されたデータの安全性を確保することができる。
【００５１】
また、本実施形態に係る復号部１４は、複数のパスワードα，β，γのうち一のパスワードα以外の他のパスワードβ，γに関する情報（例えば、「ｈ（β，θ）＋ｈ（γ，θ）＋ｋαβγ」を、一のパスワードαに関する情報と、パスワードごとに決められた乱数ｔαに基づき求めることができる情報である。
【００５２】
［第２実施形態］
次に、本発明の第２実施形態について、図面を参照して説明する。なお、主な構成素は、第１実施形態に係るデータ復号システム１００と同様であるため、同一の符号を付して、詳細な説明は省略する。
本実施形態では、シード復号部１４１は、予め決められた２つのパスワードに基づき暗号化されたシードの復号を補助する第１補助情報と、複数のパスワードのうち一のパスワードとに基づき、前記２つのパスワードを含む複数のパスワードに基づき暗号化されたシードの復号を補助する第２補助情報を算出し、算出した第２補助情報に基づき、暗号化されたシードを復号することができる。
【００５３】
ここで、第１補助情報とは、図５〜７に示す通り、暗号化された対象データの復号が許可されているユーザが２人である場合の補助情報であって、具体的には、ｓβγ，ｓγβ，ｓαβ，ｓβα，ｓαγ，ｓγα（乱数ｔα，ｔβ，ｔγも含む）である。
一方、第２補助情報とは、図８に示す通り、暗号化された対象データの復号が許可されているユーザが３人以上（第１補助情報の２人のユーザを含む）である場合の補助情報であって、具体的には、ｓαβγ，ｓβαγ，ｓγαβ（乱数ｔα，ｔβ，ｔγも含む）である。
また、第２補助情報としては、図９に示す通り、暗号化された対象データの復号が許可されているユーザが４人（第１補助情報の２人のユーザを含む）である場合の補助情報も含み、具体的には、ｓαβγδ，ｓβαγδ，ｓγαβδ，，ｓδαβγ（乱数ｔα，ｔβ，ｔγ，ｔδも含む）である。
【００５４】
次に、本実施形態に係るシード復号部１４１の処理の一例について具体的に説明する。ここでは、上述したステップＳＴ２０４の処理を、本実施形態に係る方法で実施した場合の一例を説明する。
本実施形態では、上記の例と同様、業務ファイルＦ１の復号は、ユーザＡ，Ｂ，Ｃにのみ許可されている。
ここでは、ユーザＡのパスワードαが既に入力されている。そこで、シード復号部１４１は、ユーザＡ（つまり、パスワードα）に対応する乱数ｔαと、第１補助情報であるｓαβ，ｓαγとを、設定ファイル記憶部１５から呼び出す。つまり、第２補助情報ｓαβγは読み出さない。なお、本実施形態において、第２補助情報ｓαβγは、設定ファイル記憶部１５に記憶されていない。また、シード復号部１４１は、第１補助情報であるｓαβ，ｓαγに基づき第２補助情報であるｓαβγを算出するためのロジックも、設定ファイル記憶部１５から呼び出す。なお、このロジックとは、第１補助情報から第２補助情報を算出するためのプログラム等である。また、このロジックは、第１補助情報と第２補助情報との関係に基づき、第２補助情報を算出するための数式を含むものであってもよい。例えば、第２補助情報に含まれる「ｈ（α，θ）ｔα＋ｈ（β，θ）＋ｈ（γ，θ）＋ｋαβγ」は、第１補助情報に含まれる「ｈ（α，θ）ｔα＋ｈ（β，θ）＋ｋαβ」と「ｈ（α，θ）ｔα＋ｈ（γ，θ）＋ｋαγ」の和である。よって、第２補助情報ｓαβγ＝・・・の方程式は、「ｓαβγ＝｛ｓαβ＋ｓαγ｝ｍｏｄ（ｐ−１）」と表すことができる。ただし、「ｈ（α，θ）ｔα＋ｈ（β，θ）＋ｈ（γ，θ）＋ｋαβγ」における「ｔα」は、ｔα＝２ｔαである。
【００５５】
そして、シード復号部１４１は、ユーザＡのパスワードαと業務ファイルＦ１の識別子θとのハッシュ値ｈ（α，θ）と、呼び出した第１補助情報であるｓαβ，ｓαγと乱数ｔαに基づき、第２補助情報ｓαβγ＝・・・を算出する。
次いで、シード復号部１４１は、算出した第２補助情報ｓαβγと、乱数ｔαと、ユーザＡのパスワードαと、十分大きさ素数ｐと、暗号化されたシードｃ１＝・・・，ｃ２＝・・・とを、ｍαβγ＝・・・で示すシード復号の方程式に代入して、復号されたシードｍαβγを算出する。
【００５６】
このように、シード復号部１４１は、第１補助情報を用いて第２補助情報を算出することにより、暗号化された業務ファイルの復号が許可されているメンバーが３人以上である場合であっても、業務ファイルごとに、又は、メンバーごとに、それぞれ第２補助情報を作成し、設定ファイルに格納する必要がなくなる。よって、暗号化部２４の処理負荷を軽減するととに、設定ファイルに用いる記憶容量を削減することができる。
【００５７】
次に、本実施形態に係るシード復号部１４１の処理の他の例について具体的に説明する。ここでは、上述したステップＳＴ２０４の処理を、本実施形態に係る方法で実施した場合の他の例を説明する。
この例では、業務ファイルＦ１の復号は、ユーザＡ，Ｂ，Ｃ，Ｄにのみ許可されている。
ここでは、ユーザＡのパスワードαが既に入力されている。そこで、シード復号部１４１は、ユーザＡ（つまり、パスワードα）に対応する乱数ｔαと、第１補助情報であるｓαβ，ｓαγ，ｓαδとを、設定ファイル記憶部１５から呼び出す。つまり、第２補助情報ｓαβγδは読み出さない。なお、本実施形態において、第２補助情報ｓαβγδは、設定ファイル記憶部１５に記憶されていない。また、シード復号部１４１は、第１補助情報であるｓαβ，ｓαγ，ｓαδに基づき第２補助情報であるｓαβγδを算出するためのロジックも、設定ファイル記憶部１５から呼び出す。第１補助情報と第２補助情報との関係は、例えば、第２補助情報に含まれる「ｈ（α，θ）ｔα＋ｈ（β，θ）＋ｈ（γ，θ）＋ｈ（δ，θ）＋ｋαβγδ」は、第１補助情報に含まれる「ｈ（α，θ）ｔα＋ｈ（β，θ）＋ｋαβ」と「ｈ（α，θ）ｔα＋ｈ（γ，θ）＋ｋαγ」と「ｈ（α，θ）ｔα＋ｈ（δ，θ）＋ｋαδ」の和である。よって、第２補助情報ｓαβγδ＝・・・の方程式は、「ｓαβγ＝｛ｓαβ＋ｓαγ＋ｓαδ｝ｍｏｄ（ｐ−１）」と表すことができる。ただし、「ｈ（α，θ）ｔα＋ｈ（β，θ）＋ｈ（γ，θ）＋ｈ（δ，θ）＋ｋαβγδ」における「ｔα」は、ｔα＝３ｔαである。
【００５８】
そして、シード復号部１４１は、ユーザＡのパスワードαと業務ファイルＦ１の識別子θとのハッシュ値ｈ（α，θ）と、呼び出した第１補助情報であるｓαβ，ｓαγ，ｓαδと乱数ｔαに基づき、第２補助情報ｓαβγ＝・・・を算出する。
次いで、シード復号部１４１は、算出した第２補助情報ｓαβγと、乱数ｔαと、ユーザＡのパスワードαと、十分大きさ素数ｐと、暗号化されたシードｃ１＝・・・，ｃ２＝・・・とを、ｍαβγδ＝・・・で示すシード復号の方程式に代入して、復号されたシードｍαβγδを算出する。
【００５９】
［第３実施形態］
次に、本発明の第３実施形態について、図面を参照して説明する。なお、主な構成素は、第１実施形態に係るデータ復号システム１００と同様であるため、同一の符号を付して、詳細な説明は省略する。
図１３を参照して、本実施形態に係る復号部１４及び暗号化部２４において用いられる数式の一例について説明する。図１３は、本実施形態において用いられる数式の一例を示す表である。
【００６０】
シード秘密鍵ｘαβは、ユーザＡのパスワードαと業務ファイルＦ１の識別子θとのハッシュ値ｈ（α，θ）と、ユーザＢのパスワードβと業務ファイルＦ１の識別子θとのハッシュ値ｈ（β，θ）と、所定の乱数ｋαβと、変動値μとの総和を、（ｐ−１）で除算した余りである。なお、このｘαβ＝・・・で示す方程式は、図３，４に示す第１実施形態とは、変動値μを含む点で異なる。また、変動値μは、業務ファイルＦの復号が許可されているユーザＡ，Ｂ，Ｃに与えられる変動値である。
また、復号されたシードｍαβγは、暗号化シードｃ２を「ｃ１αｃ１（ｓα―αｔα＋μα）」で除算した商を、さらに十分大きな素数ｐで除算した余りである。なお、このｍαβγ＝・・・で示す方程式は、図３，４に示す第１実施形態とは、「ｃ１αｃ１（ｓα―αｔα＋μα）」のカッコ内に変動値μαを含む点で異なる。この変動値μαは、ユーザごと、つまり、パスワードごとに設定されている変動値の値である。つまり、変動値μαは、ユーザＡの変動値であって、ユーザＢの変動値はμβ、ユーザＣの変動値はμγである。
【００６１】
本実施形態において、変動値μα，μβ，μγは、ユーザごと、つまり、パスワードごとに予め設定されている。例えば、原則として業務ファイルＦの復号が許可されているユーザＡ，Ｂ，Ｃのうち、ユーザＢによる復号を制限したい場合、ユーザＡ，Ｃの変動値μα，μγ＝１とし、ユーザＢの変動値μβ＝０とする。
そして、暗号化部２４のシード公開鍵生成部２４４は、図１３にｘαβ＝・・・で示すシード秘密鍵の方程式において、μ＝１を代入して、シード秘密鍵ｘαβを算出し、算出したシード秘密鍵ｘαβに基づき、シード公開鍵ｙαβを生成する。そして、シード暗号化部２４５は、シード公開鍵生成部２４４によって生成されたシード公開鍵ｙαβにより、シード生成部２４１により生成されたシードｍαβを暗号化した暗号化シードｃ１，ｃ２を生成し、設定ファイル生成部２４６に出力する。
よって、ユーザＢが復号する場合、変動値μβ＝０が、図１３に示すｍαβ＝・・・の復号シードのの方程式に代入されるため、正しいシードｍαβの値とならない。つまり、暗号化されたシードｃ１，ｃ２を、シードｍαβに復号することができない。
このように、変動値μβ＝０と設定されているユーザＢによりパスワードβを入力されたとしても、復号部１４は、暗号化されたシードを正しく復号することができないため、復号鍵を生成することができない。よって、業務ファイルＦ１の復号が制限される。一方、変動値μα，μγ＝１と設定されているユーザＡ，Ｃによりパスワードα，γが入力された場合、復号部１４は、暗号化されたシードを正しく復号することができるため、復号鍵を生成することができ、業務ファイルＦ１の復号することができる。
【００６２】
なお、変動値μα，μβ，μγは、業務ファイルごとに設定されているものであってもよく、時間帯に応じて変化するように設定されているものであってもよい。例えば、特定の一週間は、ユーザＢによる復号を制限した場合、この一週間だけ、ユーザＢの変動値μβ＝０として、その他のユーザの変動値μα，μγ＝１とすればよい。
【００６３】
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより工程毎の認証処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００６４】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００６５】
１  端末
２  情報管理装置
１１  通信部
１２  操作部
１３  出力部
１４  復号部
１５  設定ファイル記憶部
２１  通信部
２２  操作部
２３  入力部
２４  暗号化部
２５  管理記憶部
２６  キーストア
１４１  シード復号部
１４２  復号鍵生成部
１４３  データ復号部
２４１  シード生成部
２４２  暗号化鍵生成部
２４３  データ暗号化部
２４４  シード公開鍵生成部
２４５  シード暗号化部
２４６  設定ファイル生成部
【図１】
2015023550.tif 000003
【図２】
2015023550.tif 000004
【図３】
2015023550.tif 000005
【図４】
2015023550.tif 000006
【図５】
2015023550.tif 000007
【図６】
2015023550.tif 000008
【図７】
2015023550.tif 000009
【図８】
2015023550.tif 000010
【図９】
2015023550.tif 000011
【図１０】
2015023550.tif 000012
【図１１】
2015023550.tif 000013
【図１２】
2015023550.tif 000014
【図１３】
2015023550.tif 000015