(57)【特許請求の範囲】
【請求項１】
ユーザの間における情報共有の可否及び方向性の関係を規定した鍵付替情報と、前記鍵付替情報において、一方のユーザから他方のユーザへの情報共有可との情報共有の方向性が規定されているユーザ間について、前記一方のユーザの暗号化データを、前記他方のユーザが保持する復号化鍵で復号化可能に再暗号化する付替鍵と、前記各ユーザのうち少なくともいずれかのユーザによる暗号化データと、を格納する記憶装置と、
所定ユーザによる暗号化データについて、他ユーザのユーザ端末から送信要求を受信し、前記鍵付替情報において、前記所定ユーザから前記他ユーザへの情報共有可との情報共有の方向性が規定されている場合、該当規定に対応したユーザ間に関する前記付替鍵で、前記所定ユーザの暗号化データを再暗号化して前記他ユーザのユーザ端末に送信する演算装置と、
を備える鍵付替サーバと、
各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記他方のユーザの復号化用マスタ鍵及び前記一方のユーザの識別情報のハッシュ値により生成し、前記他方のユーザのユーザ端末に対して配信し、前記鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザによる暗号化データを前記他方のユーザが復号化する場合に用いる復号化鍵と、前記一方のユーザの暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する演算装置、を備える鍵生成サーバと、
を含むことを特徴とする鍵付替え方向制御システム。
【請求項２】
前記鍵生成サーバの演算装置は、
前記付替鍵を前記鍵付替サーバに送信する処理に際し、
前記鍵付替えグラフにおいて、一方のユーザから或るユーザを介して他方のユーザに至る方向でユーザ各間が辺で結ばれている場合、前記一方のユーザによる暗号化データを前記或るユーザが保持する復号化鍵で復号可能に再暗号化する付替鍵と、前記或るユーザが暗号化したデータを前記他方のユーザが復号する場合に用いる復号化鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを、前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信するものである、
ことを特徴とする請求項１に記載の鍵付替え方向制御システム。
【請求項３】
前記鍵生成サーバより配信された、前記暗号化用秘密鍵、復号化用マスタ鍵、及び前記復号化鍵を格納する記憶装置と、
前記鍵付替サーバに対する暗号化データの登録に際し、所定アルゴリズムで生成した共通鍵暗号用鍵により、当該ユーザ端末のユーザの所定データを暗号化して暗号文を生成する処理と、前記共通鍵暗号用鍵と前記記憶装置で保持する前記暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を前記暗号文に結合して暗号化データを生成し、前記鍵付替サーバに送信する処理を実行し、
前記鍵付替サーバへの暗号化データの送信要求に応じて得た、前記付替鍵で再暗号化された情報共有先ユーザの暗号化データについて、記憶装置にて保持する、前記情報共有先ユーザによる暗号化データを当該ユーザ端末のユーザが復号化する場合に用いる復号化鍵と、前記再暗号化された暗号化データのうち暗号文に結合した演算結果部分と、について所定の可換演算を実行し、当該演算結果を共通鍵暗号の復号鍵として前記暗号文を復号化し、出力装置に出力する処理を実行する、演算装置と、
を備えるユーザ端末を更に含むことを特徴とする請求項１に記載の鍵付替え方向制御システム。
【請求項４】
前記鍵付替サーバの演算装置は、
前記付替鍵で前記暗号化データを再暗号化して前記他ユーザのユーザ端末に送信する処理に際し、前記送信要求に対し、前記鍵付替情報において、前記所定ユーザから前記他ユーザへの情報共有可との情報共有の方向性が規定されている場合、該当規定に対応したユーザ間に関する前記付替鍵と、前記暗号化データにおいて前記暗号文と結合している演算結果と、について所定の可換演算を実行し、当該演算結果を前記暗号文に結合させて前記再暗号化した暗号化データを生成し、前記他ユーザのユーザ端末に送信するものである、
ことを特徴とする請求項３に記載の鍵付替え方向制御システム。
【請求項５】
各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、
各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、
一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記一方のユーザおよび前記他方のユーザにそれぞれ対応した復号用部分鍵を所定アルゴリズムで生成する処理と、前記一方および他方の各ユーザの復号用部分鍵について、所定の可換演算を実行し、当該演算結果を前記復号化鍵として生成する処理により得て、前記他方のユーザのユーザ端末に対して配信し、
前記鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザの暗号化用秘密鍵と、前記生成した復号化鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する演算装置、
を備える鍵生成サーバを更に含むことを特徴とする請求項１に記載の鍵付替え方向制御システム。
【請求項６】
ユーザの間における情報共有の可否及び方向性の関係を規定した鍵付替情報と、前記鍵付替情報において、一方のユーザから他方のユーザへの情報共有可との情報共有の方向性が規定されているユーザ間について、前記一方のユーザの暗号化データを、前記他方のユーザが保持する復号化鍵で復号化可能に再暗号化する付替鍵と、前記各ユーザのうち少なくともいずれかのユーザによる暗号化データと、を格納する記憶装置を備える鍵付替サーバが、
所定ユーザによる暗号化データについて、他ユーザのユーザ端末から送信要求を受信し、前記鍵付替情報において、前記所定ユーザから前記他ユーザへの情報共有可との情報共有の方向性が規定されている場合、該当規定に対応したユーザ間に関する前記付替鍵で、前記所定ユーザの暗号化データを再暗号化して前記他ユーザのユーザ端末に送信し、
鍵生成サーバが、
各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、
各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、
一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記他方のユーザの復号化用マスタ鍵及び前記一方のユーザの識別情報のハッシュ値により生成し、前記他方のユーザのユーザ端末に対して配信し、
前記鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザによる暗号化データを前記他方のユーザが復号化する場合に用いる復号化鍵と、前記一方のユーザの暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する、
ことを特徴とする鍵付替え方向制御方法。
【請求項７】
前記鍵生成サーバが、
前記付替鍵を前記鍵付替サーバに送信する処理に際し、
前記鍵付替えグラフにおいて、一方のユーザから或るユーザを介して他方のユーザに至る方向でユーザ各間が辺で結ばれている場合、前記一方のユーザによる暗号化データを前記或るユーザが保持する復号化鍵で復号可能に再暗号化する付替鍵と、前記或るユーザが暗号化したデータを前記他方のユーザが復号する場合に用いる復号化鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを、前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する、
ことを特徴とする請求項６に記載の鍵付替え方向制御方法。
【請求項８】
前記鍵生成サーバより配信された、前記暗号化用秘密鍵、復号化用マスタ鍵、及び前記復号化鍵を格納する記憶装置を備えたユーザ端末が、
前記鍵付替サーバに対する暗号化データの登録に際し、所定アルゴリズムで生成した共通鍵暗号用鍵により、当該ユーザ端末のユーザの所定データを暗号化して暗号文を生成する処理と、前記共通鍵暗号用鍵と前記記憶装置で保持する前記暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を前記暗号文に結合して暗号化データを生成し、前記鍵付替サーバに送信する処理を実行し、
前記鍵付替サーバへの暗号化データの送信要求に応じて得た、前記付替鍵で再暗号化された情報共有先ユーザの暗号化データについて、記憶装置にて保持する、前記情報共有先ユーザによる暗号化データを当該ユーザ端末のユーザが復号化する場合に用いる復号化鍵と、前記再暗号化された暗号化データのうち暗号文に結合した演算結果部分と、について所定の可換演算を実行し、当該演算結果を共通鍵暗号の復号鍵として前記暗号文を復号化し、出力装置に出力する処理を実行する、
ことを特徴とする請求項６に記載の鍵付替え方向制御方法。
【請求項９】
前記鍵付替サーバが、
前記付替鍵で前記暗号化データを再暗号化して前記他ユーザのユーザ端末に送信する処理に際し、前記送信要求に対し、前記鍵付替情報において、前記所定ユーザから前記他ユーザへの情報共有可との情報共有の方向性が規定されている場合、該当規定に対応したユーザ間に関する前記付替鍵と、前記暗号化データにおいて前記暗号文と結合している演算結果と、について所定の可換演算を実行し、当該演算結果を前記暗号文に結合させて前記再暗号化した暗号化データを生成し、前記他ユーザのユーザ端末に送信する、
ことを特徴とする請求項８に記載の鍵付替え方向制御方法。
【請求項１０】
鍵生成サーバが、
各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、
各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、
一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記一方のユーザおよび前記他方のユーザにそれぞれ対応した復号用部分鍵を所定アルゴリズムで生成する処理と、前記一方および他方の各ユーザの復号用部分鍵について、所定の可換演算を実行し、当該演算結果を前記復号化鍵として生成する処理により得て、前記他方のユーザのユーザ端末に対して配信し、
前記鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザの暗号化用秘密鍵と、前記生成した復号化鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する、
ことを特徴とする請求項６に記載の鍵付替え方向制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵付替え方向制御システムおよび鍵付替え方向制御方法に関するものであり、具体的には、ユーザ間の情報共有に伴う複数回の鍵付替えと、鍵付替え方向の制御を可能とする技術に関する。
【背景技術】
【０００２】
ネットワークを介した情報のやりとりを、他者に盗聴されることなく実行する方法として暗号技術がある。近年では、クラウドに代表される、情報保有者や情報受信者以外の第３者が中間に介在して情報のやりとりを行うシステムが、広く利用されるようになっている。そうしたクラウドシステムにおいて、情報保有者とクラウド間、またクラウドと情報受信者間で通信暗号を適用するだけでは、クラウドの管理者が悪意を持つ場合、クラウド上での情報の漏えいを防止することが難しい。
【０００３】
そのため、情報保有者と情報受信者との間、すなわちエンドtoエンドでの情報の暗号化が望ましいが、その場合、情報保有者での暗号化処理に際し、情報受信者が復号できるよう、手立てを講じる必要がある。
【０００４】
その手立てとして、例えば従来の暗号技術のうち共通鍵暗号を採用する場合、情報保有者（送信者）と情報受信者がいずれかの時点で暗復号化鍵を共有しなければならない。また送信者、受信者が多数になれば、共有して秘密裏に管理しなければならない鍵の数が増え、システムの運用性やセキュリティ上の問題が生じやすい。
【０００５】
一方、公開鍵暗号を採用する場合、暗号化鍵を公開できるため、共通鍵暗号における鍵管理の問題は軽減できるが、情報保有者は送信前の暗号化の際、情報受信者を決めて、対応する鍵で暗号化を行う必要がある点は、共通鍵暗号を採用する場合と変わらない。
【０００６】
しかし、クラウドを利用したストレージなどでは、情報保有者が暗号化データをクラウド上のストーレジにアップロードし、希望者（かつ許可されたもの）が暗号化データをクラウドからダウンロードして復号し、これを利用するといった利用形態が可能でなければならない。アップロード時点で送信者が特定の受信者向けの暗号化を行うことが必要である従来の暗号技術では、このような利用形態に対応できない。
【０００７】
これに対し、鍵の付替え技術、あるいは再暗号化と呼ばれる技術が提案されており、セキュアな情報共有技術として注目されている。このような情報共有技術としては、例えば、グループに属するメンバに操作されるクライアン卜装置に通信可能なファイル共有装置及び再暗号化装置を備えた再暗号化システムであって、グループの公開鍵に基づいてファイルが暗号化されてなる第１暗号化ファイルを記憶し、グループのメンバからのファイル要求を受けて、該当ファイルの第１暗号化ファイルを取得し、これの再暗号化要求を再暗号化装置に送信し、メンバの公開鍵に基づいてファイルが暗号化されてなる第２暗号化ファイルを再暗号化装置から受けると、当該第２暗号化ファイルをクライアン卜装置に送信するファイル共有装置と、再暗号化要求に応じ、該当メンバに応じた再暗号化鍵を取得して、これに基づいて第１暗号化ファイルを第２暗号化ファイルに再暗号化し、これをファイル共有装置に送信する再暗号化装置と、ファイル共有装置から受けた第２暗号化ファイルを該当メンバの公開鍵に対応する秘密鍵に基づいて復号することにより、ファイルを得る再暗号化装置とを含む再暗号化システム（特許文献１参照）などが提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】ＷＯ２０１３０６９５０５
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した再暗号化の従来技術では、情報共有するプレイヤーの各間で、情報閲覧権限が階層的になっている場合など、情報の暗号化、復号化の方向性について複雑な配慮が必要な場合には対応できない。また、再暗号化は１回しか出来ず、二段階の再暗号化や鍵の付替えのためには、該当情報をいったん復号化する必要がある。この場合、処理効率は低下し、復号時の情報漏えいリスクは高まる事態となり、いずれにしても望ましい形態ではない。
【００１０】
一方、例えばビット列の排他的論理和などの可換演算のように、演算の入力順序を入れ替えても結果が同じとなる演算を利用して、複数回の鍵付替えが可能な手法も存在する。この手法によれば、取り扱う鍵の個数を制限しつつ鍵の付替えを実行できる。
【００１１】
しかし、こうした演算の可換性を利用した鍵付替え手法においては、例えばユーザＡが暗号化したデータをユーザＢが復号できるように鍵を付替える場合、ユーザＢが暗号化したデータをユーザＡが復号できるように鍵を付替えることも可能であり、すなわち鍵の付替え方向が該当ユーザ間で対称性を持っている。
【００１２】
この対称性の存在は、クラウド管理者など第３者に鍵付替えを委託した場合、本来は許可されていない方向での鍵の付替えをクラウド管理者が無断で実行可能であることを意味する。更に、クラウド管理者と或る（正当な）ユーザとが結託することで、鍵付替えのための情報から他のユーザの暗号化鍵など重要な情報が漏洩する危険性があり、このような結託攻撃に脆弱である問題点もある。
【００１３】
そこで本発明の目的は、ユーザ間の情報共有に伴う複数回の鍵付替えと、鍵付替え方向の制御を可能とする技術を提供することにある。
【課題を解決するための手段】
【００１４】
上記課題を解決する本発明の鍵付替え方向制御システムは、ユーザの間における情報共有の可否及び方向性の関係を規定した鍵付替情報と、前記鍵付替情報において、一方のユーザから他方のユーザへの情報共有可との情報共有の方向性が規定されているユーザ間について、前記一方のユーザの暗号化データを、前記他方のユーザが保持する復号化鍵で復号化可能に再暗号化する付替鍵と、前記各ユーザのうち少なくともいずれかのユーザによる暗号化データと、を格納する記憶装置と、所定ユーザによる暗号化データについて、他ユーザのユーザ端末から送信要求を受信し、前記鍵付替情報において、前記所定ユーザから前記他ユーザへの情報共有可との情報共有の方向性が規定されている場合、該当規定に対応したユーザ間に関する前記付替鍵で、前記所定ユーザの暗号化データを再暗号化して前記他ユーザのユーザ端末に送信する演算装置と、を備える鍵付替サーバと、各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記他方のユーザの復号化用マスタ鍵及び前記一方のユーザの識別情報のハッシュ値により生成し、前記他方のユーザのユーザ端末に対して配信し、前記鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザによる暗号化データを前記他方のユーザが復号化する場合に用いる復号化鍵と、前記一方のユーザの暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する演算装置、を備える鍵生成サーバと、を含むことを特徴とする。
【００１５】
また、本発明の鍵付替え方向制御方法は、ユーザの間における情報共有の可否及び方向性の関係を規定した鍵付替情報と、前記鍵付替情報において、一方のユーザから他方のユーザへの情報共有可との情報共有の方向性が規定されているユーザ間について、前記一方のユーザの暗号化データを、前記他方のユーザが保持する復号化鍵で復号化可能に再暗号化する付替鍵と、前記各ユーザのうち少なくともいずれかのユーザによる暗号化データと、を格納する記憶装置を備える鍵付替サーバが、所定ユーザによる暗号化データについて、他ユーザのユーザ端末から送信要求を受信し、前記鍵付替情報において、前記所定ユーザから前記他ユーザへの情報共有可との情報共有の方向性が規定されている場合、該当規定に対応したユーザ間に関する前記付替鍵で、前記所定ユーザの暗号化データを再暗号化して前記他ユーザのユーザ端末に送信し、鍵生成サーバが、各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記他方のユーザの復号化用マスタ鍵及び前記一方のユーザの識別情報のハッシュ値により生成し、前記他方のユーザのユーザ端末に対して配信し、前記鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザによる暗号化データを前記他方のユーザが復号化する場合に用いる復号化鍵と、前記一方のユーザの暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する、ことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、ユーザ間の情報共有に伴う複数回の鍵付替えと、鍵付替え方向の制御が可能となる。
【図面の簡単な説明】
【００１７】
【図１】第１実施形態に係る暗号化鍵付替えシステムの構成例を示す図である。
【図２】第１実施形態に係る鍵付替サーバの構成例を示す図である。
【図３】第１実施形態に係るユーザ端末の構成例を示す図である。
【図４】第１実施形態に係る鍵生成サーバの構成例を示す図である。
【図５】第１実施形態に係る鍵付替え方向制御システムのハードウェア構成例を示す図である。
【図６】第１実施形態に係る鍵付替えグラフの例を示す図である。
【図７】第１実施形態に係る鍵付替えグラフに対応した鍵付替えテーブルの例を示す図である。
【図８】第１実施形態における鍵付替え方向制御方法の手順例１を示すフロー図である。
【図９】第１実施形態における鍵付替え方向制御方法の手順例２を示すフロー図である。
【図１０】第１実施形態における鍵付替え方向制御方法の手順例３を示すフロー図である。
【図１１】第１実施形態における鍵付替え方向制御方法の手順例４を示すフロー図である。
【図１２】第１実施形態における鍵付替え方向制御方法の手順例５を示すフロー図である。
【図１３】第２実施形態に係るユーザの階層モデルを示す図である。
【図１４】第３実施形態に係る情報収集モデルを示す図である。
【発明を実施するための形態】
【００１８】
《第１実施形態》
−−−システム構成−−−
【００１９】
以下に本発明の実施形態について図面を用いて詳細に説明する。図１は、第１実施形態の鍵付替え方向制御システム１００を含むネットワーク構成図である。図１に示す鍵付替え方向制御システム１００は、ユーザ間の情報共有に伴う複数回の鍵付替えと、鍵付替え方向の制御を可能とするコンピュータシステムである。
【００２０】
図１に例示する鍵付替え方向制御システム１００は、暗号化データ保管・鍵付替サービス業者が運用する鍵付替サーバ２００と、この鍵付替サーバ２００を介した暗号化データの預託と利用を行う各ユーザのユーザ端末３００〜６００と、復号化鍵や付替鍵などの鍵生成と配信を行う鍵生成・配布サービス業者の鍵生成サーバ１０００とがネットワーク１５０を介して互いに接続された構成となっている。
【００２１】
但し、鍵付替え方向制御システム１００の最小構成としては鍵付替サーバ２００を想定出来る。その他にも、鍵付替サーバ２００と鍵生成サーバ１０００とで鍵付替え方向制御システム１００を構成する場合も想定出来る。
【００２２】
なお、上述の鍵付替サーバ２００は、クラウド事業者において暗号化データの仲介を行うクラウドサービスの提供主体として管理、運用する状況を想定出来る。この場合、クラウド事業者が提供するクラウドサービスを利用するユーザが持つ携帯電話などの端末が、上述のユーザ端末３００〜６００である。このユーザ端末の数は、図１の例示した例に限定されない。
【００２３】
続いて、鍵付替え方向制御システム１００の各装置における機能構成について説明する。上述したように、以下に説明する機能部は、例えば該当装置が備えるプログラムを実行することで実装される機能、或いは適宜な電子回路により実装される機能と言える。
【００２４】
図２は、第１実施形態に係る鍵付替サーバ２００の構成例を示す機能概略図である。図２にて例示するように、鍵付替サーバ２００は、各種処理を実行する制御部２１０と、データを記憶する記憶部２２０と、外部からの情報入力を受け付ける入力部２０１と、出力装置等に情報出力を行う出力部２０２と、外部装置とのデータの送受信を行う通信部２０３とを備えている。
【００２５】
上述の制御部２１０は、全体処理部２１１と、鍵付替処理部２１２とから構成されている。このうち全体処理部２１１は、当該鍵付替サーバ２００における処理を統括制御し、入力部２０１を介し受け付けた情報を記憶部２２０に格納する処理や、ユーザ端末３００〜６００との情報の送受信の処理等を制御する。また、全体処理部２１１は、データを出力部２０２に表示する処理や、記憶部２２０に格納されているデータを読み込み、通信部２０３を介してユーザ端末２００〜６００へ送信する処理も実行する。
【００２６】
他方、鍵付替処理部２１２は、所定ユーザによる暗号化データについて、その所定ユーザとは異なる他ユーザのユーザ端末から送信要求を受信し、上述の付替鍵テーブル２３２において、上述の所定ユーザから他ユーザへの情報共有可との情報共有の方向性が規定されている場合、該当規定に対応したユーザ間に関する付替鍵で、所定ユーザの暗号化データ（上述の暗号化データ２３１から読み出したもの）を再暗号化し、これを上述の他ユーザのユーザ端末に送信するものとなる。
【００２７】
また、記憶部２２０のデータ記憶部２３０には、暗号化データ２３１と付替鍵テーブル２３２とが格納されている。このうち暗号化データ２３１は、ユーザ端末３００〜６００から受け付けた暗号化データである。また、付替鍵テーブル２３２は、ユーザの間における情報共有の可否及び方向性の関係を規定した鍵付替情報に該当する。この鍵付替情報は、各ユーザの識別情報を頂点とし情報共有の可否及び方向性の関係を辺とする鍵付替えグラフ２３３も含むものとする。
【００２８】
また、一時情報記憶部２４０は、制御部２１０での処理で一時的に必要となる情報が格納される。
【００２９】
続いてユーザ端末３００について説明する。図３は、第１実施形態に係るユーザＡのユーザ端末３００の構成例を示す図である。なお、特にユーザを特定した説明でない限り、ユーザ端末はユーザ端末３００として記載することとする（以下同様）。よって、図３に示すユーザ端末３００と、他のユーザ端末４００〜６００とは同様の構成となっている。
【００３０】
図３にて例示するユーザ端末３００は、各種処理を実行する制御部３１０と、データを記憶する記憶部３２０と、外部からの情報入力を受け付ける入力部３０１と、出力装置等において情報出力を行う出力部３０２と、外部装置とのデータの送受信を行う通信部３０３とを備えている。
【００３１】
上述の制御部３１０は、全体処理部３１１と、暗号化処理部３１２と、復号化処理部３１３とから構成されている。このうち全体処理部３１１は、当該ユーザ端末３００における処理を統括制御し、入力部３０１を介し受け付けた情報を記憶部３２０に格納する処理や、鍵付替サーバ２００との情報の送受信の処理等を制御する。また、全体処理部３１１は、データを出力部３０２に表示する処理や、記憶部３２０に格納されているデータを読み込んで暗号化処理部３１２にて暗号化を実行させる処理や、復号化処理部３１３に暗号化データの復号化をさせる処理や、暗号化データを通信部３０３を介し鍵付替サーバ２００へ送信する処理を実行する。
【００３２】
上述の暗号化処理部３１２は、鍵付替サーバ２００に対する暗号化データの登録に際し、所定アルゴリズムで生成した共通鍵暗号用鍵により、当該ユーザ端末３００のユーザ（この場合、ユーザＡ）の暗号化対象データ（データ記憶部３３０に保持）を暗号化して暗号文を生成する処理と、上述の共通鍵暗号用鍵と、暗号化鍵３４１として保持する暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を上述の暗号文に結合して暗号化データを生成し、鍵付替サーバ２００に送信するものとなる。
【００３３】
また、復号化処理部３１３は、鍵付替サーバ２００への暗号化データの送信要求に応じて得た、付替鍵で再暗号化された情報共有先ユーザの暗号化データについて、暗復号化鍵記憶部３４０にて復号化鍵３４２として保持する、情報共有先ユーザによる暗号化データを当該ユーザ端末３００のユーザが復号化する場合に用いる復号化鍵と、再暗号化された暗号化データのうち暗号文に結合した演算結果部分と、について所定の可換演算を実行し、当該演算結果を共通鍵暗号の復号鍵として暗号文を復号化し、出力部３０２を介して所定の出力装置に出力するものとなる。
【００３４】
また、記憶部３２０は、データ記憶部３３０、暗復号化鍵記憶部３４０と、一時情報記憶部３５０が含まれている。このうちデータ記憶部３３０は、暗号化対象データすなわち平文のデータが格納されている。また、暗復号化鍵記憶部３４０には、暗号化鍵と復号化鍵が格納されている。上述の暗号化鍵３４１は、鍵生成サーバ１０００より配信された、暗号化用秘密鍵となる。また、復号化鍵３４２は、同じく鍵生成サーバ１０００から配信された復号化用マスタ鍵及び復号化鍵となる。
【００３５】
また、一時情報記憶部３５０は、制御部３１０での処理で一時的に必要となる情報が格納される。
【００３６】
次に鍵生成サーバ１０００について説明する。図４は、第１実施形態に係る鍵生成サーバ１０００の構成例を示す図である。図４にて例示するように、鍵生成サーバ１０００は、各種処理を実行する制御部１０１０と、データを記憶する記憶部１０２０と、外部からの情報入力を受け付ける入力部１００１と、出力装置等において情報出力を行う出力部１００２と、外部装置とのデータの送受信を行う通信部１００３とを備えている。
【００３７】
上述の制御部１０１０は、全体処理部１０１１と、暗号化鍵生成部１０１２と、復号化鍵生成部１０１３と、付替鍵生成部１０１４とを備える。このうち全体処理部１０１１は、当該鍵生成サーバ１０００における処理を統括制御し、入力部１００１を介し受け付けた情報を記憶部１０２０に格納する処理や、ユーザ端末３００〜６００や鍵付替サーバ２００との情報の送受信の処理等を制御する。
【００３８】
また、全体処理部１０１１は、データを出力部１００２に表示する処理や、記憶部１０２０に格納されているデータを読み込んで暗号化鍵生成部１０１２に暗号化鍵を生成させる処理や、復号化鍵生成部１０１３に復号化鍵を生成させる処理や、付替鍵生成部１０１４に付替鍵を生成させる処理を実行させる。また全体処理部１０１１は、こうして生成し
た暗号化鍵および復号化鍵を、ユーザ端末３００〜６００へ送信し、付替鍵を鍵付替サーバ２００へ送信する。
【００３９】
上述の暗号化鍵生成部１０１２は、各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成するものとなる。
【００４０】
また、復号化鍵生成部１０１３は、一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、上述の他方のユーザの復号化用マスタ鍵及び上述の一方のユーザの識別情報（例：ユーザＩＤ等であり、記憶部１０２０に予め保持）のハッシュ値により生成するものとなる。
【００４１】
また、付替鍵生成部１０１４は、各ユーザの識別情報を頂点とし情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを鍵付替情報として生成し、この鍵付替えグラフを鍵付替サーバ２００に送信する処理を実行する。また、付替鍵生成部１０１４は、上述の鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵１０４２と、一方のユーザの暗号化用秘密鍵１０４１と、について所定の可換演算を実行し、当該演算結果を、一方のユーザによる暗号化データを他方のユーザが復号可能に再暗号化する付替鍵１０４３として生成するものとなる。
【００４２】
また、記憶部１０２０は暗復号化鍵記憶部１０４０と一時情報記憶部１０５０とが含まれている。このうち暗復号化鍵記憶部１０４０には、暗号化鍵１０４１と復号化鍵１０４２と付替鍵１０４３が格納されている。
【００４３】
また、一時情報記憶部１０５０は、制御部１０１０での処理で一時的に必要となる情報が格納される。
−−−ハードウェア構成−−−
【００４４】
また、本実施形態の鍵付替え方向制御システム１００を構成する各装置を計算機１０として代表させた場合のハードウェア構成は以下の如くとなる。計算機１０は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）やハードディスクドライブなど適宜な不揮発性記憶素子で構成される記憶装置１１、ＲＡＭなど揮発性記憶素子で構成されるメモリ１３、記憶装置１１に保持されるプログラム１２をメモリ１３に読み出すなどして実行し装置自体の統括制御を行なうとともに適宜にデータ類１８を用いて各種判定、演算及び制御処理を行なうＣＰＵなどの演算装置１４、外部からのキー入力や音声入力を受け付ける入力装置１５、処理データの表示を行うディスプレイ等の出力装置１６、ネットワーク１５０と接続し他装置との通信処理を担う通信装置１７を備える。
【００４５】
このうち、記憶装置１１のリソースが各装置の記憶部となり、演算装置１４のリソースが各装置の制御部となり、入力装置１５のリソースが各装置の入力部となり、出力装置１６のリソースが各装置の出力部となり、通信装置１７ののリソースが各装置の通信部となる。また、データ類１８は各装置における記憶部に格納されるデータに対応する。
−−−データ構造例−−−
【００４６】
次に、第１実施形態の鍵付替え方向制御システム１００において用いるデータの構造例について説明する。ここでは、鍵付替えグラフと、これに対応した鍵付替えテーブルの具体例を示すものとする。図６は、第１実施形態に係る鍵付替えグラフ２３３の例を示す図であり、図７は、第１実施形態に係る鍵付替えグラフ２３３に対応した鍵付替えテーブル２３２の例を示す図である。
【００４７】
図６に例示する鍵付替グラフ２３３は、各ユーザ端末３００〜６００の間の鍵付替えの許可方向、すなわち情報共有の方向性を示しており、この鍵付替グラフ２３３をテーブル化したのが図７の鍵付替えテーブル２３２となる。なお、この鍵付替えテーブル２３２においては、あるユーザから他のユーザ端末への情報共有が許可された対応関係については該当する付替鍵を保持している。
【００４８】
図６においては、例えば、ユーザＡが暗号化したデータは、鍵付替サーバ２００により、ユーザＢが復号化できるように鍵の付替えを行うことができることを、ユーザＡからユーザＢへの矢印の線分（辺）であらわしている。同様にユーザＢが暗号化したデータはユーザＣとユーザＤが復号できるように、鍵付替サーバ２００が鍵の付替えを行うことができることを、該当ユーザ間を対応する方向で結ぶ矢印の線分であらわしている。
【００４９】
また、図７の鍵付替えテーブル２３２は、鍵付替えグラフ２３３で示された鍵付替え可否、すなわち情報共有可否の関係に対応して、付替鍵を保持したテーブルの例を表している。例えばユーザＡが暗号化したデータを、ユーザＢが復号できるように鍵付替サーバ２００が鍵の付替え（再暗号化）を行うために必要な情報がＫＡ→Ｂである。この鍵付替えテーブル２３２のうち、空白欄に対応した関係は情報共有、すなわち該当ユーザ間の該当方向について鍵付替が許可されてない関係にあることを意味している。
−−−鍵生成・配布処理−−−
【００５０】
以下、本実施形態における鍵付替え方向制御方法の実際手順について図に基づき説明する。以下で説明する鍵付替え方向制御方法に対応する各種動作は、鍵付替え方向制御システム１００を構成する各装置がメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
【００５１】
図８は、本実施形態における鍵付替え方向制御方法の処理手順例１を示すフロー図であり、具体的には、第１実施形態に係る鍵生成サーバ１０００が実行する、各ユーザ３００〜６００が保持する暗号化鍵および復号化鍵と、鍵付替サーバ２００が保持する鍵付替えテーブル２３２とを生成する手順を示すフロー図である。
【００５２】
この場合まず、鍵生成サーバ１０００は、予め記憶部１０２０で保持する各ユーザの識別情報を頂点とし、鍵付替可否すなわち情報共有の可否及び方向性の関係を、例えば入力部１００１にて管理者等から指定を受けて、この指定に応じて各ユーザの識別情報間を線分で接続し、鍵付替えグラフ２３３を生成する（Ｓ６０１）。この鍵付替えグラフ２３３は鍵付替サーバ２００にこのまま送信するとしてもよい。
【００５３】
続いて鍵生成サーバ１０００は、上述の鍵付替えグラフ２３２に応じて、各ユーザの暗号化鍵、復号化鍵を生成する（Ｓ６０２）。この処理の詳細は後述する。
【００５４】
次に、鍵生成サーバ１０００は、上述のステップＳ６０２で生成した各ユーザの暗号化鍵、復号化鍵を、該当ユーザのユーザ端末３００に送信する（Ｓ６０３）。このときの送信処理は、暗号化通信などにより他者からの盗聴対策が施されていなければならない。
【００５５】
一方、ユーザ端末３００は、鍵生成サーバ１０００から暗号化鍵、復号化鍵を受信し、これを記憶部３２０の暗復号化鍵記憶部３４０の、暗号化鍵３４１、復号化鍵３４２としてそれぞれ格納する（Ｓ６０６）。
【００５６】
続いて鍵生成サーバ１０００は、鍵付替えグラフ２３２と、上述のステップＳ６０２で生成した各ユーザの暗号化鍵および復号化鍵とに基づき、付替鍵を生成し、これをユーザ
間での情報共有の可否の方向性を規定する所定形式のテーブルに格納することで鍵付替えテーブル２３３を生成する（Ｓ６０４）。
【００５７】
次に鍵生成サーバ１０００は、上述のステップＳ６０４で生成した鍵付替えテーブル２３２を、鍵付替サーバ２００に送信する（Ｓ６０５）。このときの送信処理は、暗号化通信などにより他者からの盗聴対策が施されていなければならない。
【００５８】
一方、鍵付替サーバ２００は、鍵生成サーバ１０００から鍵付替えテーブル２３２を受信し、これを記憶部２２０に格納する（Ｓ６０７）。
【００５９】
−−−暗号化、鍵の付替え、復号処理−−−
【００６０】
次に、ユーザＡが保有するデータの暗号化と、暗号化データの鍵付替サーバ２００への送信、鍵付替サーバ２００によるユーザＢ４００が復号可能な暗号化データへの鍵の付替えとその暗号化データの送信、およびユーザＢ４００による復号化の手順を説明する。図９は、第１実施形態における鍵付替え方向制御方法の手順例２を示すフロー図である。
【００６１】
この場合まず、ユーザＡのユーザ端末３００は、例えばユーザＡからのデータ暗号化指示を入力部３０１で受け付けて、これに伴い、データ記憶部３３０に保持する暗号化対象データを読みだして、自身の暗号化鍵３４１（乱数等の所定アルゴリズムで生成した共通鍵暗号用鍵）で暗号化して暗号文を生成し、暗号化鍵３４１として保持する上述の共通鍵暗号用鍵と暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を、上述の暗号文に結合して暗号化データを生成し（Ｓ７０１）、これを鍵付替サーバ２００へ送信する（Ｓ７０２）。
【００６２】
一方、鍵付替サーバ２００は、例えばユーザＢのユーザ端末４００からの送信要求に応じて、データ記憶部２３０に保持する鍵付替えグラフ２３３（図６）または鍵付替えテーブル２３２（図７）において、上述のユーザＡからユーザＢへの情報共有すなわち鍵付替えが許可されていることを確認し、許可されている場合は、鍵付替えテーブル２３２等での該当規定に対応したユーザＡからユーザＢの間に関する付替鍵で、ユーザＡの暗号化データを再暗号化し、鍵の付替えを行う（Ｓ７０５）。
【００６３】
また、鍵付替サーバ２００は、上述のステップＳ７０５で鍵付替えが施された暗号化データを、ユーザＢのユーザ端末４００に送信する（Ｓ７０６）。
【００６４】
他方、鍵付替サーバ２００から上述の暗号化データを受信したユーザ端末４００は、ユーザＡによる暗号化データを復号するための復号化鍵３４２を、暗復号化鍵記憶部３４０から読み出し、その復号化鍵３４２と、上述の鍵付替が施された（再暗号化された）暗号化データのうち暗号文に結合した演算結果部分と、について所定の可換演算を実行し、当該演算結果を共通鍵暗号の復号鍵として暗号文を復号化し、出力部３０２に出力する（Ｓ７０７）。
【００６５】
−−−暗号化鍵、復号化鍵、付替鍵の生成手順１−−−
【００６６】
図１０は、第１実施形態における鍵付替え方向制御方法の手順例３を示すフロー図であり、具体的には、第１実施形態に係る、図８における鍵生成サーバ１０００の、暗号化鍵、復号化鍵、および付替鍵の第１の生成手順を示すフロー図である。
【００６７】
ここでは例として、ユーザＡによる暗号化データを、ユーザＢのユーザ端末４００が復号可能に再暗号化する、すなわち鍵付替えを行うために必要なユーザＡの暗号化鍵と、ユ
ーザＢの復号化鍵と、鍵付替サーバ２００が保持する付替鍵を生成する手順を示す。
【００６８】
この場合まず、鍵生成サーバ１０００は、ユーザＡの暗号化鍵ＫｅＡを乱数等の所定のアルゴリズムによりランダムに生成する（Ｓ８０１）。また、鍵生成サーバ１０００は、ユーザＢの復号化用マスタ鍵ＫｄＢを、同様に乱数等の所定のアルゴリズムによりランダムに生成する（Ｓ８０２）。
【００６９】
続いて鍵生成サーバ１０００は、上述のステップＳ８０１で得た暗号化鍵ＫｅＡを、ユーザＡのユーザ端末３００に、同様に、上述のステップＳ８０２で得た復号化用マスタ鍵ＫｄＢ（Ａ）をユーザＢのユーザ端末４００に、セキュアに送信する（Ｓ８０３）。
【００７０】
続いて鍵生成サーバ１０００は、上述のユーザＡによる暗号化データをユーザＢのユーザ端末４００が復号化するときに用いる復号化鍵を、ＫｄＢ（Ａ）＝Ｈ（ＫｄＢ，ＩＤＡ）、の算定処理を行って生成する（Ｓ８０４）。ここでＨ（＊）はハッシュ関数、ＩＤＡはユーザＡをあらわす識別子とし、公開されていて記憶部１０２０にて予め保持しているものとする。
【００７１】
また、鍵生成サーバ１０００は、上述のユーザＡによる暗号化データをユーザＢのユーザ端末４００が復号可能に再暗号化するための付替鍵ＫＡ→Ｂを、ＫＡ→Ｂ＝ＫｅＡ Ｘ
ＯＲ ＫｄＢ（Ａ）（ただしＸＯＲはビットごとの排他的論理和）なる演算にて生成し（
Ｓ８０５）、これを鍵付替えテーブル（例：記憶部１０２０にて付替鍵１０４３として格納）の該当箇所、すなわちユーザＡからユーザＢへの情報共有を許可する関係に対応した欄に追加し、この鍵付替えテーブルを鍵付替サーバ２００にセキュアに送信する（Ｓ８０６）。
−−−付替鍵生成手順−−−
【００７２】
図１１は、第１実施形態における鍵付替え方向制御方法の手順例４を示すフロー図であり、具体的には、第１実施形態に係る、鍵生成サーバ１０００の、複雑な鍵付替えグラフ２３３における付替鍵生成手順を示すフローチャートである。
【００７３】
この実施形態における鍵付替えグラフ２３３（図６）では、ユーザＡからユーザＣに至るグラフ上のパス（辺）が複数あることを想定している。その最長のパスがユーザＡ→ユーザＢ→ユーザＣであるとする。
【００７４】
この場合、鍵生成サーバ１０００は、すでに生成済の付替鍵ＫＡ→Ｂと付替鍵ＫＢ→Ｃとを用いて、ユーザＡからユーザＣへの付替鍵をＫＡ→Ｃ＝ＫＡ→Ｂ ＸＯＲ ＫＢ→Ｃ、と演算し（Ｓ９０１）、ＫＡ→Ｃを鍵付替えテーブルに追加し、鍵付替サーバ２００にセキュアに送信する（Ｓ９０２）。
【００７５】
さらに鍵生成サーバ１０００は、上述のユーザＡによる暗号化データをユーザＣが復号化する場合の復号化鍵をＫｄＣ（Ａ）＝ＫｄＢ（Ａ） ＸＯＲ ＫＢ→Ｃ、と演算して（Ｓ９０３）、最後にＫｄＣ（Ａ）をユーザＣのユーザ端末５００にセキュアに送信する（Ｓ９０４）。
【００７６】
−−−暗号化鍵、復号化鍵、付替鍵の生成手順２−−−
【００７７】
図１２は、第１実施形態における鍵付替え方向制御方法の手順例５を示すフロー図であり、具体的には、第１実施形態に係る、図８における鍵生成サーバ１０００の、暗号化鍵、復号化鍵、および付替鍵の第２の生成手順を示すフロー図である。
【００７８】
ここでは例として、ユーザＡによる暗号化データをユーザＢのユーザ端末４００が復号可能に再暗号化するための、すなわち鍵付替えに必要なユーザＡの暗号化鍵と、ユーザＢの復号化鍵と、鍵付替サーバ２００が保持する付替鍵を生成する手順を示す。
【００７９】
この場合まず、鍵生成サーバ１０００は、ユーザＡの暗号化鍵ＫｅＡを乱数等の所定アルゴリズムによりランダムに生成する（Ｓ１００１）。また、鍵生成サーバ１０００は、ユーザＡに対応した復号用部分鍵ｈＡを、乱数等の所定アルゴリズムによりランダムに生成し（Ｓ１００３）、同様にユーザＢに対応した復号用部分鍵ｈＢを乱数等の所定アルゴリズムによりランダムに生成する（Ｓ１００４）。
【００８０】
続いて、鍵生成サーバ１０００は、上述のユーザＡによる暗号化データをユーザＢが復号化する場合の復号鍵を、ＫｄＢ（Ａ）＝ｈＡ ＸＯＲ ｈＢ、と演算し（Ｓ１００５）、この復号鍵ＫｄＢ（Ａ）をユーザＢのユーザ端末４００にセキュアに送信する（Ｓ１００６）。
【００８１】
さらに鍵生成サーバ１０００は、上述のユーザＡによる暗号化データをユーザＢのユーザ端末４００が復号可能に再暗号化するための付替鍵を、ＫＡ→Ｂ＝ＫｅＡ ＸＯＲ ＫｄＢ（Ａ）、と演算し（Ｓ１００７）、これを鍵付替えテーブルの該当箇所に追加し、これを鍵付替サーバ２００にセキュアに送信する（Ｓ１００８）。
【００８２】
上述の説明においてｈ、鍵同士の演算に排他的論理和ＸＯＲを用いる例を示したが、一般にビット系列や、鍵空間上に定義された可換な演算であればいずれの手法を採用するとしてもよい。
【００８３】
なお、ユーザ端末３００におけるデータ暗号化の一例として、共通鍵暗号方式用の鍵Ｒをランダムに生成し、その鍵Ｒで暗号化対象データを暗号化して暗号文Ｃを生成し、さらに上述の鍵Ｒとユーザ端末自身が持つ暗号化用鍵Ｋｅ＊（＊はユーザ名）との排他的論理和、あるいは決められた可換演算の演算結果をＸとするとき、Ｃ｜｜Ｘを最終的な暗号文とする、といった手法が適用出来る。この場合、鍵の付替えは上述の演算結果Ｘの部分を、この演算結果Ｘと付替鍵とついて所定の可換演算の演算結果で置き換えることで実行できる。勿論、上述のデータ暗号化の手法は一例であり、これに限定されない。
【００８４】
上述してきた第１実施形態によれば、あるユーザＡが暗号化したデータを別のユーザＢが復号化を許可されていて、逆は許可されていない場合、すなわち対応するユーザＢからユーザＡへの方向での情報共有を可能とする付替鍵が鍵付替えテーブル２３２にて設定されていない場合、鍵付替サーバ２００の（悪意の）独断ではユーザＢが暗号化したデータをユーザＡが復号可能にすることができない。これは従来の可換演算を基にした方式では実現できなかった情報セキュリティに関わる性質である。
【００８５】
またユーザ間における規定方向での情報共有の許可、不許可の関係で導出される鍵付替えグラフ２３３が、例えば、膨大なユーザに関して複雑に辺で接続されている構成を示す場合、すなわちユーザ間の情報共有の関係が複雑である場合であっても矛盾無く、鍵付替えの処理が実行できる。鍵付替えグラフ２３３におけるユーザ間の情報共有の関係性は矛盾が生じないよう設定されるため、本来許可していない方向の鍵付替えが鍵付替えグラフ２３３内の或るループの存在により許可された状態になってしまうといった事態も抑止できる。
【００８６】
また各ユーザが保有する復号鍵のバリエーションを適切に増やすことにより、鍵付替サーバ２００と或るユーザ（例えばＡ）の結託により漏えいする他のユーザの鍵の個数を低減出来る。より正確には、ユーザＡが得ることができる他のユーザの鍵は、ユーザＡが暗
号化したデータを復号できる権限を持つユーザの、ユーザＡに対応した復号鍵と、ユーザＡが復号できる別のユーザの暗号化鍵である。これらは実質、得られてもユーザＡは自身が本来知ることができる情報以上のことは何も得られない。
《第２実施形態》
【００８７】
次に、図１３を参照して本発明に係る第２実施形態について説明する。この第２実施形態は、上述の第１実施形態において示した、（鍵付替えテーブル２３２等で規定した）一方向の鍵付替え手法を、或る組織におけるユーザ間の階層構造（職位等）に適用したものである。図１３で例示する階層モデル１３００は、ユーザ間が情報共有の権限別に３階層に階層化された例であり、鍵付替えグラフ２３３として鍵生成サーバ１０００が生成し、鍵付替サーバ２００に配信され、保持されるものである。よって、この第２実施形態における階層モデル１３００に基づく、鍵付替え方向制御方法の各処理は第１実施形態のものと同様である。勿論、この階層モデル１３００は２階層や４階層以上でも同様に構成できる。
【００８８】
こうした階層モデル１３００における矢印は、例えばＣ階層に属するユーザ（図１３ではユーザＣ１（５０１）、ユーザＣ２（５０２）、ユーザＣ３（５０３））が暗号化したデータを、該当ユーザ端末が鍵付替サーバ２００にアップロードしたものは、鍵付替サーバ２００がＢ階層、Ａ階層のユーザの鍵に付替え、Ｂ階層、Ａ階層のユーザのユーザ端末がダウンロードして復号、閲覧してよいことを表している。同様にＢ階層のユーザが暗号化したデータは鍵付替サーバ２００がＡ階層のユーザの鍵に付替え、Ａ階層のユーザのユーザ端末がダウンロード、復号して閲覧できる。
【００８９】
しかし一方で、この階層モデル１３００において、逆向きの鍵付替えは許可されていないものとする。すなわち、例えばＢ階層のユーザが暗号化したデータは、Ｃ階層のユーザの鍵に付替えられない。
【００９０】
この第２実施形態においても、上述の第１実施形態において示したように、各ユーザ毎に異なる鍵を用いるとしても良いが、各階層のユーザに対し、階層で共通の鍵を用いるとしても良い。
《第３実施形態》
【００９１】
次に、図１４を参照して、本発明に係る第３実施形態を説明する。第３実施形態は、上述の第１実施形態において示した、（鍵付替えテーブル２３２等で規定した）一方向の鍵付替え手法を、或る情報集約システムに適用したものである。
【００９２】
図１４で例示する階層モデル１４００の構成では、鍵付替サーバ２００が、４人のユーザＡ〜Ｄの各ユーザ端末から暗号化データを収集し、いずれの暗号化データについても、情報利用者Ｘの端末７００が復号できるよう再暗号化すべく鍵を付替え、情報利用者Ｘの端末７００に送付し、情報利用者Ｘの端末７００にて復号化および利用がなされる。この第３実施形態においても、鍵付替え方向制御方法の基本的な手順については第１実施形態で示した具体例と同様である。
【００９３】
この階層モデル１４００における矢印は、ユーザＡ〜Ｄが暗号化したデータを、該当ユーザ端末３００〜６００のそれぞれが鍵付替サーバ２００にアップロードしたものが、ユーザＡ〜Ｄの各間で復号可能なように鍵付替えが出来ない規定となっていることを意味する。
【００９４】
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【００９５】
こうした本実施形態によれば、或るユーザが暗号化したデータを、鍵付替サーバを介して別のユーザが復号可能な暗号化データに変換して送信するシステムにおいて、複数回の鍵付替えと、規定とは逆方向への鍵付替えの抑止が可能であり、更に、ユーザと鍵付替サーバの結託による情報漏洩も防止可能で、クラウドなど第３者を通じてもユーザ間でのセキュアな情報共有が、ユーザ間の関係（情報閲覧可／不可等）が複雑な構成となっている状況でも矛盾無く可能となる。
【００９６】
すなわち、ユーザ間の情報共有に伴う複数回の鍵付替えと、鍵付替え方向の制御を可能となる。
【００９７】
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態の鍵付替え方向制御システムにおいて、各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記他方のユーザの復号化用マスタ鍵及び前記一方のユーザの識別情報のハッシュ値により生成し、前記他方のユーザのユーザ端末に対して配信し、前記鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザによる暗号化データを前記他方のユーザが復号化する場合に用いる復号化鍵と、前記一方のユーザの暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する演算装置を備える鍵生成サーバを更に含むとしてもよい。
【００９８】
これによれば、上述の復号化鍵や付替鍵をユーザ構成に応じて効率的に生成し、鍵付替サーバやユーザ端末に配信することが可能となる。
【００９９】
また、本実施形態の鍵付替え方向制御システムにおいて、前記鍵生成サーバの演算装置は、前記付替鍵を前記鍵付替サーバに送信する処理に際し、前記鍵付替えグラフにおいて、一方のユーザから或るユーザを介して他方のユーザに至る方向でユーザ各間が辺で結ばれている場合、前記一方のユーザによる暗号化データを前記或るユーザが保持する復号化鍵で復号可能に再暗号化する付替鍵と、前記或るユーザが暗号化したデータを前記他方のユーザが復号する場合に用いる復号化鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを、前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信するものである、としてもよい。
【０１００】
これによれば、鍵付替えグラフにおいて直接は結ばれていないユーザ間に関しても、（許可されていれば）情報共有を可能とする付替鍵を生成し、鍵付替サーバに配信できる。そのため、各ユーザの各間すべての関係についての各種鍵の生成を行う必要がなく、効率的でセキュアな鍵管理が可能となる。
【０１０１】
また、本実施形態の鍵付替え方向制御システムにおいて、前記鍵生成サーバより配信された、前記暗号化用秘密鍵、復号化用マスタ鍵、及び前記復号化鍵を格納する記憶装置と、前記鍵付替サーバに対する暗号化データの登録に際し、所定アルゴリズムで生成した共通鍵暗号用鍵により、当該ユーザ端末のユーザの所定データを暗号化して暗号文を生成する処理と、前記共通鍵暗号用鍵と前記記憶装置で保持する前記暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を前記暗号文に結合して暗号化データを生成し
、前記鍵付替サーバに送信する処理を実行し、前記鍵付替サーバへの暗号化データの送信要求に応じて得た、前記付替鍵で再暗号化された情報共有先ユーザの暗号化データについて、記憶装置にて保持する、前記情報共有先ユーザによる暗号化データを当該ユーザ端末のユーザが復号化する場合に用いる復号化鍵と、前記再暗号化された暗号化データのうち暗号文に結合した演算結果部分と、について所定の可換演算を実行し、当該演算結果を共通鍵暗号の復号鍵として前記暗号文を復号化し、出力装置に出力する処理を実行する、演算装置と、を備えるユーザ端末を更に含むとしてもよい。
【０１０２】
これによれば、規定した方向性に応じたセキュアな情報共有をユーザ間で効率的に行うことが可能となる。
【０１０３】
また、本実施形態の鍵付替え方向制御システムにおいて、前記鍵付替サーバの演算装置は、前記付替鍵で前記暗号化データを再暗号化して前記他ユーザのユーザ端末に送信する処理に際し、前記送信要求に対し、前記鍵付替情報において、前記所定ユーザから前記他ユーザへの情報共有可との情報共有の方向性が規定されている場合、該当規定に対応したユーザ間に関する前記付替鍵と、前記暗号化データにおいて前記暗号文と結合している演算結果と、について所定の可換演算を実行し、当該演算結果を前記暗号文に結合させて前記再暗号化した暗号化データを生成し、前記他ユーザのユーザ端末に送信するものである、としてもよい。
【０１０４】
これによれば、鍵付替サーバにおいて、再暗号化した暗号化データすなわち鍵の付け替えを行った暗号化データを効率的かつセキュアに生成し、ユーザ端末に送信することが出来る。
【０１０５】
また、本実施形態の鍵付替え方向制御システムにおいて、各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記一方のユーザおよび前記他方のユーザにそれぞれ対応した復号用部分鍵を所定アルゴリズムで生成する処理と、前記一方および他方の各ユーザの復号用部分鍵について、所定の可換演算を実行し、当該演算結果を前記復号化鍵として生成する処理により得て、前記他方のユーザのユーザ端末に対して配信し、前記鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザの暗号化用秘密鍵と、前記生成した復号化鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する演算装置、を備える鍵生成サーバを更に含むとしてもよい。
【０１０６】
これによれば、復号化鍵を、復号化用マスタ鍵及びユーザの識別情報のハッシュ値により生成する場合よりも、全体として鍵数を抑制でき、効率的でセキュアな鍵管理が可能である。
【０１０７】
また、本実施形態の鍵付替え方向制御方法において、鍵生成サーバが、各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記他方のユーザの復号化用マスタ鍵及び前記一方のユーザの識別情報のハッシュ値により生成し、前記他方のユーザのユーザ端末に対して配信し、前記鍵付
替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザによる暗号化データを前記他方のユーザが復号化する場合に用いる復号化鍵と、前記一方のユーザの暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する、としてもよい。
【０１０８】
また、本実施形態の鍵付替え方向制御方法において、前記鍵生成サーバが、前記付替鍵を前記鍵付替サーバに送信する処理に際し、前記鍵付替えグラフにおいて、一方のユーザから或るユーザを介して他方のユーザに至る方向でユーザ各間が辺で結ばれている場合、前記一方のユーザによる暗号化データを前記或るユーザが保持する復号化鍵で復号可能に再暗号化する付替鍵と、前記或るユーザが暗号化したデータを前記他方のユーザが復号する場合に用いる復号化鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを、前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する、としてもよい。
【０１０９】
また、本実施形態の鍵付替え方向制御方法において、前記鍵生成サーバより配信された、前記暗号化用秘密鍵、復号化用マスタ鍵、及び前記復号化鍵を格納する記憶装置を備えたユーザ端末が、前記鍵付替サーバに対する暗号化データの登録に際し、所定アルゴリズムで生成した共通鍵暗号用鍵により、当該ユーザ端末のユーザの所定データを暗号化して暗号文を生成する処理と、前記共通鍵暗号用鍵と前記記憶装置で保持する前記暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を前記暗号文に結合して暗号化データを生成し、前記鍵付替サーバに送信する処理を実行し、前記鍵付替サーバへの暗号化データの送信要求に応じて得た、前記付替鍵で再暗号化された情報共有先ユーザの暗号化データについて、記憶装置にて保持する、前記情報共有先ユーザによる暗号化データを当該ユーザ端末のユーザが復号化する場合に用いる復号化鍵と、前記再暗号化された暗号化データのうち暗号文に結合した演算結果部分と、について所定の可換演算を実行し、当該演算結果を共通鍵暗号の復号鍵として前記暗号文を復号化し、出力装置に出力する処理を実行する、としてもよい。
【０１１０】
また、本実施形態の鍵付替え方向制御方法において、前記鍵付替サーバが、前記付替鍵で前記暗号化データを再暗号化して前記他ユーザのユーザ端末に送信する処理に際し、前記送信要求に対し、前記鍵付替情報において、前記所定ユーザから前記他ユーザへの情報共有可との情報共有の方向性が規定されている場合、該当規定に対応したユーザ間に関する前記付替鍵と、前記暗号化データにおいて前記暗号文と結合している演算結果と、について所定の可換演算を実行し、当該演算結果を前記暗号文に結合させて前記再暗号化した暗号化データを生成し、前記他ユーザのユーザ端末に送信する、としてもよい。
【０１１１】
また、本実施形態の鍵付替え方向制御方法において、鍵生成サーバが、各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記一方のユーザおよび前記他方のユーザにそれぞれ対応した復号用部分鍵を所定アルゴリズムで生成する処理と、前記一方および他方の各ユーザの復号用部分鍵について、所定の可換演算を実行し、当該演算結果を前記復号化鍵として生成する処理により得て、前記他方のユーザのユーザ端末に対して配信し、前記鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザの暗号化用秘密鍵と、前記生成した復号化鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが
復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する、としてもよい。
【符号の説明】
【０１１２】
１０  計算機
１１  記憶装置
１２  プログラム
１３  メモリ
１４  演算装置
１５  入力装置
１６  出力装置
１７  通信装置
１８  データ類
１００  鍵付替え方向制御システム
１５０  ネットワーク
２００  鍵付替サーバ
２０１  入力部
２０２  出力部
２０３  通信部
２１０  制御部
２１１  全体処理部
２１２  鍵付替処理部
２２０  記憶部
２３０  データ記憶部
２３１  暗号化データ
２３２  付替鍵テーブル
２３３  鍵付替えグラフ
２４０  一時情報記憶部
３００  ユーザ端末
３０１  入力部
３０２  出力部
３０３  通信部
３１０  制御部
３１１  全体処理部
３１２  暗号化処理部
３１３  復号化処理部
３２０  記憶部
３３０  データ記憶部
３４０  暗復号化鍵記憶部
３４１  暗号化鍵
３４２  復号化鍵
３５０  一時情報記憶部
１０００  鍵生成サーバ
１００１  入力部
１００２  出力部
１００３  通信部
１０１０  制御部
１０１１  全体処理部
１０１２  暗号化鍵生成部
１０１３  復号化鍵生成部
１０１４  付替鍵生成部
１０２０  記憶部
１０４０  暗復号化鍵記憶部
１０４１  暗号化鍵
１０４２  復号化鍵
１０５０  一時情報記憶部
【図１】
0006363032.tif 000002
【図２】
0006363032.tif 000003
【図３】
0006363032.tif 000004
【図４】
0006363032.tif 000005
【図５】
0006363032.tif 000006
【図６】
0006363032.tif 000007
【図７】
0006363032.tif 000008
【図８】
0006363032.tif 000009
【図９】
0006363032.tif 000010
【図１０】
0006363032.tif 000011
【図１１】
0006363032.tif 000012
【図１２】
0006363032.tif 000013
【図１３】
0006363032.tif 000014
【図１４】
0006363032.tif 000015