(57)【特許請求の範囲】
【請求項１】
グループに属するメンバに操作されるクライアント装置に通信可能なファイル共有装置及び再暗号化装置を備えた再暗号化システムであって、
前記ファイル共有装置は、
前記グループの公開鍵に基づいて共通鍵が暗号化されてなる第１暗号化共通鍵部分と、前記共通鍵に基づいてデータが暗号化されてなる暗号化データ部分とを含む暗号化ファイルを記憶するファイル記憶手段と、
前記メンバを識別するメンバＩＤ及び前記暗号化ファイルのファイル名を含むファイル要求を前記クライアント装置から受けると、前記ファイル要求内のファイル名に基づいて前記ファイル記憶手段から前記暗号化ファイルを取得する手段と、
前記取得した暗号化ファイルを前記第１暗号化共通鍵部分と前記暗号化データ部分に分離する手段と、
前記分離された暗号化データ部分を前記クライアント装置に送信する暗号化データ送信処理と並行して、前記第１暗号化共通鍵部分及び前記ファイル要求内のメンバＩＤを含む再暗号化要求を前記再暗号化装置に送信する手段と、
前記メンバＩＤの公開鍵に基づいて前記共通鍵が暗号化されてなる第２暗号化共通鍵部分を前記再暗号化装置から前記暗号化データ送信処理に並行して受けると、当該暗号化データ送信処理の後に当該第２暗号化共通鍵部分を前記クライアント装置に送信する手段と
を備え、
前記再暗号化装置は、
前記メンバを識別するメンバＩＤと、前記第１暗号化共通鍵部分を復号せずに前記第２暗号化共通鍵部分に再暗号化するための再暗号化鍵とを関連付けて記憶する再暗号化鍵記憶手段と、
前記再暗号化要求を前記ファイル共有装置から受けると、当該再暗号化要求内のメンバＩＤに基づいて前記再暗号化鍵記憶手段から前記再暗号化鍵を取得する手段と、
前記取得した再暗号化鍵に基づいて、前記再暗号化要求内の第１暗号化共通鍵部分を前記第２暗号化共通鍵部分に再暗号化する手段と、
前記再暗号化により得られた第２暗号化共通鍵部分を前記ファイル共有装置に送信する手段と
を備え、
前記クライアント装置は、前記ファイル共有装置から受けた第２暗号化共通鍵部分を前記メンバの公開鍵に対応する秘密鍵に基づいて復号することによって前記共通鍵を得ることと、前記ファイル共有装置から受けた暗号化データ部分を、当該得られた共通鍵に基づいて復号することとにより、前記データを得ることを特徴とする再暗号化システム。
【請求項２】
請求項１に記載の再暗号化システムにおいて、
前記ファイル共有装置における前記暗号化ファイルを取得する手段、前記分離する手段、前記再暗号化要求を前記再暗号化装置に送信する手段、及び前記第２暗号化共通鍵部分を前記クライアント装置に送信する手段は、所定の処理を追加するフィルタ機能を用いて構成されていることを特徴とする再暗号化システム。
【請求項３】
グループに属するメンバに操作されるクライアント装置に通信可能なファイル共有装置であって、前記グループの公開鍵に基づいて共通鍵が暗号化されてなる第１暗号化共通鍵部分と、前記共通鍵に基づいてデータが暗号化されてなる暗号化データ部分とを含む暗号化ファイルをファイル記憶手段に記憶し、前記メンバを識別するメンバＩＤ及び前記暗号化ファイルのファイル名を含むファイル要求を前記クライアント装置から受けると、前記ファイル要求内のファイル名に基づいて前記ファイル記憶手段から前記暗号化ファイルを取得し、前記取得した暗号化ファイルを前記第１暗号化共通鍵部分と前記暗号化データ部分に分離し、前記分離した暗号化データ部分を前記クライアント装置に送信する暗号化データ送信処理と並行して、前記第１暗号化共通鍵部分及び前記ファイル要求内のメンバＩＤを含む再暗号化要求を再暗号化装置に送信し、前記メンバＩＤの公開鍵に基づいて前記共通鍵が暗号化されてなる第２暗号化共通鍵部分を前記再暗号化装置から前記暗号化データ送信処理に並行して受けると、当該暗号化データ送信処理の後に当該第２暗号化共通鍵部分を前記クライアント装置に送信する前記ファイル共有装置に通信可能な前記再暗号化装置であって、
前記メンバを識別するメンバＩＤと、前記第１暗号化共通鍵部分を復号せずに前記第２暗号化共通鍵部分に再暗号化するための再暗号化鍵とを関連付けて記憶する再暗号化鍵記憶手段と、
前記再暗号化要求を前記ファイル共有装置から受けると、当該再暗号化要求内のメンバＩＤに基づいて前記再暗号化鍵記憶手段から前記再暗号化鍵を取得する手段と、
前記取得した再暗号化鍵に基づいて、前記再暗号化要求内の第１暗号化共通鍵部分を前記第２暗号化共通鍵部分に再暗号化する手段と、
前記再暗号化により得られた第２暗号化共通鍵部分を前記ファイル共有装置に送信する手段と
を備えており、
前記クライアント装置は、前記ファイル共有装置から受けた第２暗号化共通鍵部分を前記メンバの公開鍵に対応する秘密鍵に基づいて復号することによって前記共通鍵を得ることと、前記ファイル共有装置から受けた暗号化データ部分を、当該得られた共通鍵に基づいて復号することとにより、前記データを得ることを特徴とする再暗号化装置。
【請求項４】
請求項３に記載の再暗号化装置において、
前記ファイル共有装置における、前記暗号化ファイルを取得し、前記分離し、前記暗号化データ部分を前記クライアント装置に送信し、前記再暗号化要求を前記再暗号化装置に送信し、前記第２暗号化共通鍵部分を前記クライアント装置に送信する処理は、所定の処理を追加するフィルタ機能を用いて行われることを特徴とする再暗号化装置。
【請求項５】
グループに属するメンバに操作されるクライアント装置に通信可能なファイル共有装置であって、前記グループの公開鍵に基づいて共通鍵が暗号化されてなる第１暗号化共通鍵部分と、前記共通鍵に基づいてデータが暗号化されてなる暗号化データ部分とを含む暗号化ファイルをファイル記憶手段に記憶し、前記メンバを識別するメンバＩＤ及び前記暗号化ファイルのファイル名を含むファイル要求を前記クライアント装置から受けると、前記ファイル要求内のファイル名に基づいて前記ファイル記憶手段から前記暗号化ファイルを取得し、前記取得した暗号化ファイルを前記第１暗号化共通鍵部分と前記暗号化データ部分に分離し、前記分離した暗号化データ部分を前記クライアント装置に送信する暗号化データ送信処理と並行して、前記第１暗号化共通鍵部分及び前記ファイル要求内のメンバＩＤを含む再暗号化要求を再暗号化装置に送信し、前記メンバＩＤの公開鍵に基づいて前記共通鍵が暗号化されてなる第２暗号化共通鍵部分を前記再暗号化装置から前記暗号化データ送信処理に並行して受けると、当該暗号化データ送信処理の後に当該第２暗号化共通鍵部分を前記クライアント装置に送信する前記ファイル共有装置に通信可能であり、且つ再暗号化鍵記憶手段を備えた前記再暗号化装置に用いられるプログラムであって、
前記再暗号化鍵装置を、
前記メンバを識別するメンバＩＤと、前記第１暗号化共通鍵部分を復号せずに前記第２暗号化共通鍵部分に再暗号化するための再暗号化鍵とを関連付けて再暗号化鍵記憶手段に書込む手段、
前記再暗号化要求を前記ファイル共有装置から受けると、当該再暗号化要求内のメンバＩＤに基づいて前記再暗号化鍵記憶手段から前記再暗号化鍵を取得する手段、
前記取得した再暗号化鍵に基づいて、前記再暗号化要求内の第１暗号化共通鍵部分を前記第２暗号化共通鍵部分に再暗号化する手段、
前記再暗号化により得られた第２暗号化共通鍵部分を前記ファイル共有装置に送信する手段、
として機能させ、
前記クライアント装置は、前記ファイル共有装置から受けた第２暗号化共通鍵部分を前記メンバの公開鍵に対応する秘密鍵に基づいて復号することによって前記共通鍵を得ることと、前記ファイル共有装置から受けた暗号化データ部分を、当該得られた共通鍵に基づいて復号することとにより、前記データを得るようにしたことを特徴とするプログラム。
【請求項６】
請求項５に記載のプログラムにおいて、
前記ファイル共有装置における、前記暗号化ファイルを取得し、前記分離し、前記暗号化データ部分を前記クライアント装置に送信し、前記再暗号化要求を前記再暗号化装置に送信し、前記第２暗号化共通鍵部分を前記クライアント装置に送信する処理は、所定の処理を追加するフィルタ機能を用いて行われることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、再暗号化システム、再暗号化装置及びプログラムに関する。
【背景技術】
【０００２】
近年、情報技術基盤（ＩＴインフラ）や運用管理のコストを削減し得ると同時に、サービスの柔軟性や拡張性を確保して利便性にも優れていることから、クラウドコンピューティング（以下、クラウドという）が急速に普及してきている。一方、既存のクラウドのセキュリティは不十分である。特にパブリッククラウドについては、セキュリティの不安感からクラウドの利用に踏み切れない企業が多い。
【０００３】
その反面、複数のメンバからなるグループがデータをクラウドストレージ内に共有したいニーズが高く、このニーズはクラウドの用途の上位にも上げられている。しかし、既存のクラウドを利用してデータを共有すると、次のような課題が考えられる。
【０００４】
既存のクラウドサービスを利用して、データをグループ間で共有する場合、あるユーザがデータをクラウドストレージ上にアップロードし、グループのメンバがダウンロードして利用することになる。
【０００５】
しかしながら、アップロードの際に、図１２に示すように、通信路上のデータＤはＳＳＬ／ＴＬＳにより保護されるが、クラウドストレージ１内のデータＤは暗号化されていない。このため、クラウドストレージ１内のデータＤのセキュリティは、全てクラウドサービスの信頼性に依存してしまう。例えばクラウドストレージ１は多くの企業・ユーザに利用されているが、設定ミスにより他テナントのデータが見えてしまう心配や、認証処理が適切に行われない心配がある。また、サーバ管理者による内部犯行により、預けているデータが漏えいしてしまう心配もある。
【０００６】
これに対し、既存のクラウドサービスにおいて、図１３に示すように、サーバ内でデータＤを共通鍵暗号方式の共通鍵ｋによって暗号化し、暗号化データＥ（ｋ，Ｄ）をクラウドストレージ１に保管する場合がある。この場合、クラウドストレージ１内の暗号化データＥ（ｋ，Ｄ）は保護される。しかしながら、暗号化前のデータＤの受け取り（アップロード）時と、復号したデータＤの配布（ダウンロード）時には暗号化されていない状態であることや、サーバの管理者が暗号化データＥ（ｋ，Ｄ）を復号できることから、セキュリティ上の課題が残っている。
【０００７】
以上のような課題から、既存クラウドの導入に踏み切れない企業が多数ある。
【０００８】
これら課題を解決する１つの方法として、アップロード前にデータを暗号化することが考えられるが、利便性が低下する問題がある。例えば、従来の暗号化技術を用いてデータを暗号化しグループで共有する場合、大きく２つの方法（ｉ）（ｉｉ）が考えられる。但し、どちらの方法（ｉ）（ｉｉ）にもメリットとデメリットがあり、利便性とセキュリティのトレードオフとなる。これら（ｉ）（ｉｉ）の方法について以下に説明する。
【０００９】
（ｉ）グループの鍵を共有する方法
上記（ｉ）の方法のメリットとしては、クラウド上でデータを常に暗号化した状態で保管できる点と、暗号化鍵の管理が容易である点が挙げられる。例えば、図１４に示すように、グループで暗号化鍵ｅｋGr1／復号化鍵ｄｋGr1を共有し、公開鍵暗号を用いて暗号化する場合、暗号化鍵ｅｋGr1／復号鍵ｄｋGr1は１つの組なので、アップロードするメンバ、ダウンロードするメンバともに管理は容易であり、クラウド上では常に暗号化した状態でデータを保管できるため、セキュリティの不安を払拭できる。
【００１０】
上記（ｉ）の方法のデメリットとしては、復号鍵ｄｋGr1をメンバ間で共有する必要がある点と、復号鍵ｄｋGr1の配布・共有を安全に行う方法が必要な点が挙げられる。例えば、各メンバが復号鍵ｄｋGr1を共有することから、メンバが増加するほど復号鍵ｄｋGr1の漏洩リスクが増えてしまう。仮に復号鍵ｄｋGr1を漏えいした場合、漏洩した復号鍵ｄｋGr1の利用を防ぐ趣旨で、グループで共有する復号鍵ｄｋGr1を更新する必要が生じるため、利便性を低下させてしまう。また、グループからメンバが抜けた場合、抜けたメンバによる復号を防ぐ趣旨で、他のメンバの復号鍵ｄｋGr1を更新する必要が生じるため、メンバ追加・削除時の手続きにより利便性を低下させてしまう。
【００１１】
このように、上記（ｉ）のグループで鍵を共有する方法においては、鍵の管理が容易となる一方、鍵の共有方法などに課題が残る。
【００１２】
（ｉｉ）メンバそれぞれの鍵で暗号化する方法
上記（ｉｉ）の方法のメリットとしては、クラウド上で常に暗号化したデータを保管できる点と、メンバ間で鍵を共有しない点が挙げられる。例えば、図１５に示すように、メンバＡ，…毎に公開鍵ｐｋA／秘密鍵ｓｋA，…を作成し、公開鍵暗号を用いてデータＤを暗号化し、暗号化データＥ（ｐｋA，Ｄ），…をクラウドストレージ１に保管する場合、他のメンバと秘密鍵ｓｋA，…を共有しないため、鍵を配布・共有する必要がない。このため、あるメンバＩが秘密鍵ｓｋIを漏えいさせたとしても、他のメンバが秘密鍵ｓｋIを更新する必要はない。
【００１３】
上記（ｉｉ）の方法のデメリットとしては、暗号化するメンバが各メンバの公開鍵ｐｋA，…を管理する必要がある点と、あるメンバＨをグループに追加した場合、追加したメンバＨの公開鍵ｐｋHでデータＤを暗号化しなおす必要がある点が挙げられる。例えば、データＤを暗号化するメンバに関しては各メンバの鍵管理が煩雑になり、利便性を低下させてしまう。また、追加メンバが生じた場合、暗号化するメンバに関しては、追加メンバＨの公開鍵ｐｋHでデータＤを暗号化してクラウドストレージ１に保管する必要が生じるため、利便性を低下させてしまう。
【００１４】
このように従来の暗号化技術では、利便性とセキュリティが二律背反の関係にある。
【００１５】
なお、以下は実施形態に関連する先行技術文献を示している。このうち、特にハイブリッド暗号方式やＪａｖａ（登録商標）に関する非特許文献１，２については、同様の技術を示す他の文献があると推測される。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特許第４０６１２８８号公報
【非特許文献】
【００１７】
【非特許文献１】ハイブリッド暗号方式−−−共通鍵暗号と公開鍵暗号を組み合わせる−情報セキュリティ入門：ITpro、http://itpro.nikkeibp.co.jp/article/COLUMN/20060620/241303/
【非特許文献２】Javaの道：Servlet（10.フィルタ）、http://www.javaroad.jp/servletjsp/sj_servlet10.htm
【非特許文献３】B. Libert and D. Vergnaud, “Unidirectional Chosen-Ciphertext Secure Proxy Re-encryption,” Proc. PKC 2008, LNCS 4939, pp.360-379, Springer, 2008.
【発明の概要】
【発明が解決しようとする課題】
【００１８】
以上説明したように、従来の暗号化技術を用いて暗号化データを保管する場合、利便性とセキュリティが二律背反の関係にある。
【００１９】
本発明が解決しようとする課題は、利便性とセキュリティを両立し得る再暗号化システム、再暗号化装置及びプログラムを提供することである。
【課題を解決するための手段】
【００２０】
実施形態の再暗号化システムは、グループに属するメンバに操作されるクライアント装置に通信可能なファイル共有装置及び再暗号化装置を備えている。
【００２１】
前記ファイル共有装置は、ファイル記憶手段を備えている。
【００２２】
前記ファイル記憶手段は、前記グループの公開鍵に基づいてファイルが暗号化されてなる第１暗号化ファイルを記憶する。
【００２３】
前記ファイル共有装置は、前記メンバを識別するメンバＩＤ及び前記第１暗号化ファイルのファイル名を含むファイル要求を前記クライアント装置から受けると、前記ファイル要求内のファイル名に基づいて前記ファイル記憶手段から前記第１暗号化ファイルを取得する。
【００２４】
前記ファイル共有装置は、前記取得した第１暗号化ファイル及び前記ファイル要求内のメンバＩＤを含む再暗号化要求を前記再暗号化装置に送信する。
【００２５】
前記ファイル共有装置は、前記メンバＩＤの公開鍵に基づいて前記ファイルが暗号化されてなる第２暗号化ファイルを前記再暗号化装置から受けると、当該第２暗号化ファイルを前記クライアント装置に送信する。
【００２６】
前記再暗号化装置は、再暗号化鍵記憶手段を備えている。
【００２７】
前記再暗号化鍵記憶手段は、前記メンバを識別するメンバＩＤと、前記第１暗号化ファイルを復号せずに前記第２暗号化ファイルに再暗号化するための再暗号化鍵とを関連付けて記憶する。
【００２８】
前記再暗号化装置は、前記再暗号化要求を前記ファイル共有装置から受けると、当該再暗号化要求内のメンバＩＤに基づいて前記再暗号化鍵記憶手段から前記再暗号化鍵を取得する。
【００２９】
前記再暗号化装置は、前記取得した再暗号化鍵に基づいて、前記再暗号化要求内の第１暗号化ファイルを前記第２暗号化ファイルに再暗号化する。
【００３０】
前記再暗号化装置は、前記再暗号化により得られた第２暗号化ファイルを前記ファイル共有装置に送信する。
【００３１】
前記クライアント装置は、前記ファイル共有装置から受けた第２暗号化ファイルを前記メンバの公開鍵に対応する秘密鍵に基づいて復号することにより、前記ファイルを得る。
【図面の簡単な説明】
【００３２】
【図１】第１の実施形態に係る再暗号化システムの構成を示す模式図である。
【図２】同実施形態におけるグループ情報記憶部を説明するための模式図である。
【図３】同実施形態における再暗号化鍵記憶部を説明するための模式図である。
【図４】同実施形態におけるファイルアップロードの処理を説明するためのフローチャートである。
【図５】同実施形態におけるファイルアップロードの処理を説明するためのシーケンス図である。
【図６】同実施形態におけるファイルダウンロードの処理を説明するためのフローチャートである。
【図７】同実施形態におけるファイルダウンロードの処理を説明するためのシーケンス図である。
【図８】同実施形態におけるメンバ追加の処理を説明するためのフローチャートである。
【図９】同実施形態におけるメンバ追加の処理を説明するためのシーケンス図である。
【図１０】同実施形態におけるメンバ削除の処理を説明するためのフローチャートである。
【図１１】同実施形態におけるメンバ削除の処理を説明するためのシーケンス図である。
【図１２】従来のクラウドストレージの課題を説明するための模式図である。
【図１３】従来の共通鍵で暗号化する場合の課題を説明するための模式図である。
【図１４】従来のグループの公開鍵で暗号化する場合の課題を説明するための模式図である。
【図１５】従来のメンバ毎の公開鍵で暗号化する場合の課題を説明するための模式図である。
【図１６】一般的な再暗号化技術を従来の暗号化技術と比較して示す模式図である。
【図１７】一般的な再暗号化鍵の作成過程を説明するための模式図である。
【図１８】各実施形態の概要に係る再暗号化システムを説明するための模式図である。
【図１９】各実施形態の概要における再暗号化システムによるメンバ追加を説明するための模式図である。
【図２０】一般的なハイブリッド方式を説明するための模式図である。
【図２１】各実施形態の概要における再暗号化システムにフィルタ機能を適用した場合の利点を説明するための模式図である。
【図２２】ハイブリッド方式におけるファイルのフォーマットを示す模式図である。
【図２３】ハイブリッド方式を適用した再暗号化システムを説明するための模式図である。
【図２４】ハイブリッド方式を適用した再暗号化システムの処理時間を説明するための模式図である。
【発明を実施するための形態】
【００３３】
以下、各実施形態について図面を用いて説明するが、その前に各実施形態の前提となる再暗号化技術、ハイブリッド方式及び各実施形態の概要を述べる。
【００３４】
利便性とセキュリティを両立させる方法として、再暗号化技術（非特許文献３参照。）が知られている。
【００３５】
再暗号化とは、図１６（ａ）及び図１６（ｂ）に従来の暗号化技術と比較して示すように、あるメンバの公開鍵ｐｋGr1で暗号化したデータＥ（ｐｋGr1，Ｄ）を、復号することなく、別のメンバＡの公開鍵ｐｋAで暗号化したデータＥ（ｐｋA，Ｄ）に変換できる、つまり鍵を付け替えることができる技術である。
【００３６】
このような再暗号化処理を行うには再暗号化鍵ｒｋGr1→Aが必要である。再暗号化鍵ｒｋGr1→Aは、図１７に示すように、付け替える前の秘密鍵ｓｋGr1と、付け替える後の公開鍵ｐｋAから作成される。再暗号化鍵ｒｋGr1→Aは公開しても問題ない。
【００３７】
再暗号化技術を用いた場合、図１８に示すように、データＤとしてのファイルが、暗号化された状態でクラウドストレージ１にアップロード・ダウンロードされる。
【００３８】
すなわち、アップロードするメンバは、グループの公開鍵ｐｋGr1でデータＤを暗号化し、暗号化データＥ（ｐｋGr1，Ｄ）をクラウドストレージ１に保管する。これにより、グループ内の各メンバの鍵管理が不要になった。
【００３９】
グループのメンバＡがデータＤをダウンロードするとき、サーバ上で暗号化データＥ（ｐｋGr1，Ｄ）を当該メンバＡ向けの再暗号化鍵ｒｋGr1→Aにより再暗号化し、得られた再暗号化データＥ（ｐｋA，Ｄ）をダウンロードする。
【００４０】
このような再暗号化システムのメリットとしては、クラウド上でデータを常に暗号化した状態で保管できる点と、暗号化鍵の管理が容易な点と、メンバ間で鍵を共有しない点が挙げられる。例えば、再暗号化処理はデータＤを暗号化した状態で実行できるので、クラウドストレージ１上でデータＤが復号されない。また、各メンバは他のメンバと秘密鍵ｓｋA，…を共有する必要がない。
【００４１】
なお、再暗号化技術を利用したグループのメンバ管理は、図１９に示すように、クラウドストレージ１上に再暗号化鍵ｒｋGr1→A，…の追加・削除を行うことになる。追加の場合、グループ管理者が追加するメンバＣの公開鍵ｐｋCを取得する。グループ管理者は、グループの秘密鍵ｓｋGr1と取得した公開鍵ｐｋCから再暗号化鍵ｒｋGr1→Cを作成し、作成した再暗号化鍵ｒｋGr1→Cをクラウドストレージ１に配置する。このようなメンバ変更がある場合でも、従来とは異なり、暗号化データＥ（ｐｋGr1，Ｄ）をクラウドストレージ１上で暗号化しなおす必要が無いので、利便性が低下しない。
【００４２】
一方、再暗号化システムのデメリットとしては、特に見当たらない。
【００４３】
なお、公開鍵暗号を用いてデータを暗号化する場合、一般的に、暗号・復号処理が速い共通鍵暗号技術と組み合わせたハイブリッド暗号と呼ばれる方式（以下、ハイブリッド方式という）を用いて高速化が図られている（非特許文献１参照。）。ハイブリッド方式では、図２０に示すように、保護対象のデータＤを共通鍵暗号方式の共通鍵ｋで高速に暗号化して暗号化データＥ（ｋ，Ｄ）を作成し、この共通鍵ｋを公開鍵暗号方式の公開鍵ｐｋで暗号化して暗号化鍵Ｅ（ｐｋ，ｋ）を作成する。
【００４４】
ハイブリッド方式を用いることで、鍵の配布・管理が容易な公開鍵暗号方式のメリットと、処理が高速な共通鍵暗号方式のメリットの両方を活かすことができる。
【００４５】
なお、ハイブリッド方式を使用するか否かは別にして、再暗号化技術を用いる構成であれば、クラウドストレージ上で、メンバ間で安全にデータを共有することが可能になる。
【００４６】
この再暗号化技術を用いた再暗号化システムを構築する場合、新たに構築するケースと、既存のファイル共有システムに対して再暗号化機能を追加して構築するケースが考えられる。
【００４７】
後者のケースの場合、既存のファイル共有システムに対し、再暗号化機能を組み込んで構築する場合、大きな手間とコストが必要になる。
【００４８】
既存のファイル共有システムの処理を大きく改修することなく、新たに別の機能と連携する一つの方法として、Ｊａｖａのフィルタ（非特許文献２参照。）を利用する方法が考えられる。フィルタ機能を利用することで、ファイル共有装置（クラウドストレージ１と呼んでいたものに相当する装置）とそのクライアント間のリクエスト・レスポンス処理に、処理を追加することができる。このフィルタ処理で再暗号化処理を行うことで、既存のファイル共有システムを大きく修正することなく、また再暗号化機能を組み込むことなく、少ない改修で再暗号化機能を追加できる。
【００４９】
すなわち、図２１に示すように、ファイル共有装置２に追加する構成要素は、再暗号化装置３と連携する処理（例、フィルタ４）のみである。
【００５０】
なお、上述した再暗号化システムは、そのまま実施してもよいが、本発明者の検討によれば、データの配布処理を改善した形態の方がより好ましい。そこで、第１の実施形態では、データの配布処理を改善した形態について述べている。
【００５１】
補足すると、再暗号化システムにおいて、単純に再暗号化装置３と連携した場合、ファイル共有装置２に保管している暗号化データＥ（ｐｋGr1，Ｄ）を再暗号化する必要があるため、メンバに配布するためには必ず再暗号化処理を待たなければならない。再暗号化処理は既存の公開鍵暗号方式と比べて複雑なため、処理時間がかかる。
【００５２】
そこで、図２２に示すように、ハイブリッド方式におけるファイルのフォーマットに注目する。このフォーマットによれば、ファイル共有装置２内の暗号化ファイルのうち、再暗号化処理を行う部分は、（公開鍵で暗号化された）共通鍵部分だけになる。そこで、図２１に示した暗号化データＥ（ｐｋGr1，Ｄ）に代えて、図２３に示すように、（公開鍵ｐｋGr1で暗号化された）共通鍵ｋからなる暗号化共通鍵Ｅ（ｐｋGr1，ｋ）部分と、共通鍵ｋで暗号化されたデータＤからなる暗号化データＥ（ｋ，Ｄ）部分とからなる暗号化ファイルをファイル共有装置２に保管し、暗号化共通鍵Ｅ（ｐｋGr1，ｋ）部分のみ再暗号化装置３に送付する。暗号化データＥ（ｋ，Ｄ）部分が、データの大きさに依存するが、暗号化共通鍵Ｅ（ｐｋGr1，ｋ）部分と比べて大幅にサイズが大きいことを考えると、ファイル共有装置２と再暗号化装置３の間での通信処理を軽減することができる。
【００５３】
また、図２４に示すように、再暗号化装置３に暗号化共通鍵Ｅ（ｐｋGr1，ｋ）部分を送信する処理に並行して、暗号化データＥ（ｋ，Ｄ）部分をメンバ（クライアント）に送信する。暗号化データＥ（ｋ，Ｄ）部分の大きさやネットワークの速さに依存するが、一般的にダウンロード処理の方が再暗号化処理よりも時間がかかるため、ダウンロード処理の実行中に再暗号化処理が終わる。このため、再暗号化処理によるサーバ処理時間は、クライアント装置へ暗号化データＥ（ｋ，Ｄ）部分を送信している間に完了することが期待できる。
【００５４】
以上のように、データの配布処理を改善した形態は、図２２乃至図２４に示したように、ハイブリッド方式のデータフォーマットに着目し、暗号化共通鍵Ｅ（ｐｋGr1，ｋ）部分の再暗号化処理と暗号化データＥ（ｋ，Ｄ）部分の送信を並行して行なうことから、図２１に示した形態に比べ、ダウンロード処理全体の時間を短縮できる点で好ましい。
【００５５】
以上がデータの配布処理を改善した形態についての補足説明である。続いて、各実施形態について具体的に説明する。なお、第１の実施形態は、データの配布処理を改善した応用形態であり、第２の実施形態は、データの配布処理を改善していない基本形態である。
【００５６】
＜第１の実施形態＞
図１は第１の実施形態に係る再暗号化システムの構成を示す模式図である。この再暗号化システムは、クライアント／サーバ構成であり、グループに属するメンバに操作されるクライアント装置２０に通信可能なファイル共有装置１０及び再暗号化装置３０を備えている。なお、ファイル共有装置１０及び再暗号化装置３０はサーバ装置であり、各装置１０，２０，３０は、互いにインターネット５を介して通信可能となっている。また、各装置１０，２０，３０は、それぞれハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。これらのことは、後述する変形例でも同様である。
【００５７】
ここで、ファイル共有装置１０は、制御部１１、通信部１２、挿入処理部１３、ファイル共有部１４、ファイル記憶部１５、グループ情報記憶部１６、公開鍵取得部１７、再暗号化鍵登録部１８及びグループ管理部１９を備えている。
【００５８】
制御部１１、通信部１２、挿入処理部１３、ファイル共有部１４、公開鍵取得部１７、再暗号化鍵登録部１８及びグループ管理部１９は、例えば図示しないＣＰＵが、後述するファイル共有装置１０内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。また、通信部１２は、他の装置２０，３０との間の通信インターフェースである。但し、以下の説明中では、説明の簡単化の観点から、他の装置２０，３０との間のデータの送受信に通信部１２を介する旨の記載を省略している。
【００５９】
また、例えば再暗号化装置３０に連携する挿入処理部１３、公開鍵取得部１７及び再暗号化鍵登録部１８については、既存のファイル共有システムを大きく修正せずに再暗号化システムを構築したい観点から、Ｊａｖａのフィルタ機能を利用して実現してもよい。
【００６０】
ファイル記憶部１５は、図示しないＣＰＵから読出／書込可能な記憶装置として実現可能となっており、グループの公開鍵に基づいて共通鍵が暗号化されてなる第１暗号化共通鍵部分と、当該共通鍵に基づいてデータが暗号化されてなる暗号化データ部分とを含む暗号化ファイルを記憶する。なお、「第１暗号化共通鍵部分」は、「第１暗号化共通鍵」又は「暗号化共通鍵」と読み替えてもよい。また、「暗号化データ部分」は、「暗号化データ」と読み替えてもよい。
【００６１】
グループ情報記憶部１６は、図示しないＣＰＵから読出／書込可能な記憶装置として実現可能となっており、図２に示すように、グループを識別するグループＩＤと、当該グループに属するメンバを識別するメンバＩＤとを関連付けて記憶する。
【００６２】
一方、クライアント装置２０は、制御部２１、通信部２２、ファイル記憶部２３、秘密鍵記憶部２４、暗号処理部２５、共通鍵生成部２６及び再暗号化鍵作成部２７を備えている。
【００６３】
制御部２１、通信部２２、暗号処理部２５、共通鍵生成部２６及び再暗号化鍵作成部２７は、例えば図示しないＣＰＵが、後述するクライアント装置２０内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。また、通信部２２は、他の装置１０，３０との間の通信インターフェースである。但し、以下の説明中では、説明の簡単化の観点から、他の装置１０，３０との間のデータの送受信に通信部２２を介する旨の記載を省略している。
【００６４】
ファイル記憶部２３は、図示しないＣＰＵから読出／書込可能な記憶装置として実現可能となっており、例えば、アップロード対象のファイルを記憶する。
【００６５】
秘密鍵記憶部２４は、図示しないＣＰＵから読出／書込可能な記憶装置として実現可能となっており、例えば、メンバの公開鍵に対応する秘密鍵を記憶する。また、メンバがグループ管理者の場合、秘密鍵記憶部２４は、更に、グループの公開鍵に対応する秘密鍵を記憶する。
【００６６】
他方、再暗号化装置３０は、制御部３１、通信部３２、再暗号化処理部３３、公開鍵記憶部３４及び再暗号化鍵記憶部３５を備えている。
【００６７】
制御部３１、通信部３２及び再暗号化処理部３３は、例えば図示しないＣＰＵが、後述する再暗号化装置３０内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。また、通信部３２は、他の装置１０，２０との間の通信インターフェースである。但し、以下の説明中では、説明の簡単化の観点から、他の装置１０，２０との間のデータの送受信に通信部３２を介する旨の記載を省略している。
【００６８】
公開鍵記憶部３４は、図示しないＣＰＵから読出／書込可能な記憶装置として実現可能となっており、グループを識別するグループＩＤと、当該グループの公開鍵と、メンバを識別するメンバＩＤと、当該メンバの公開鍵とを関連付けて記憶する。
【００６９】
再暗号化鍵記憶部３５は、図示しないＣＰＵから読出／書込可能な記憶装置として実現可能となっており、図３に示すように、メンバを識別するメンバＩＤと、第１暗号化共通鍵部分を復号せずに第２暗号化共通鍵部分に再暗号化するための再暗号化鍵とを関連付けて記憶する。なお、「第２暗号化共通鍵部分」は、「第２暗号化共通鍵」又は「再暗号化共通鍵」と読み替えてもよい。
【００７０】
次に、以上のように構成された再暗号化システムの動作を図４乃至図１１を用いて説明する。なお、以下の説明は、ファイルアップロードの処理（図４及び図５）、ファイルダウンロードの処理（図６及び図７）、メンバ追加の処理（図８及び図９）及びメンバ追加の処理（図１０及び図１１）の順に行う。
【００７１】
始めに、ファイルアップロードの処理の流れを図４及び図５に示す。
【００７２】
クライアント装置２０では、制御部２１がファイル記憶部２３からアップロードするファイルを読み込む（ＳＴ１）。
【００７３】
クライアント装置２０では、制御部２１が共通鍵生成部２６により共通鍵ｋを生成する。制御部２１は、この共通鍵ｋとステップＳＴ１で読み込んだファイルを暗号処理部２５に渡す（ＳＴ２）。
【００７４】
クライアント装置２０では、暗号処理部２５が、ファイルのデータＤを共通鍵ｋで暗号化し、得られた暗号化データ部分（Ｅ（ｋ，Ｄ））を制御部２１に渡す（ＳＴ３）。
【００７５】
ステップＳＴ４では、以下のステップＳＴ４−１〜ＳＴ４−７が実行される。
【００７６】
クライアント装置２０では、制御部２１が、アップロードするファイルを公開するグループの公開鍵ｐｋGr1をファイル共有装置１０に要求する（ＳＴ４−１）。具体的には、グループを識別するグループＩＤを含む公開鍵要求をファイル共有装置１０に送信する。
【００７７】
ファイル共有装置１０では、制御部１１が、この公開鍵要求を公開鍵取得部１７に送出する（ＳＴ４−２）。
【００７８】
ファイル共有装置１０では、公開鍵取得部１７が、この公開鍵要求を再暗号化装置３０に送信する（ＳＴ４−３）。
【００７９】
再暗号化装置３０では、制御部３１が、公開鍵要求内のグループＩＤに基づいて、公開鍵記憶部３４からグループの公開鍵ｐｋGr1を取り出す（ＳＴ４−４）。
【００８０】
再暗号化装置３０では、制御部３１がグループの公開鍵ｐｋGr1をファイル共有装置１０に送信する（ＳＴ４−５）。
【００８１】
ファイル共有装置１０では、公開鍵取得部１７が、制御部１１にグループの公開鍵ｐｋGr1を渡す（ＳＴ４−６）。
【００８２】
ファイル共有装置１０では、制御部１１が、グループの公開鍵ｐｋGr1をクライアント装置２０に送信する（ＳＴ４−７）。
【００８３】
クライアント装置２０では、制御部２１が、受信したグループの公開鍵ｐｋGr1と、ステップＳＴ２で生成した共通鍵ｋを暗号処理部２５に渡す。暗号処理部２５は、共通鍵ｋをグループの公開鍵ｐｋGr1で暗号化し、得られた第１暗号化共通鍵部分（Ｅ（ｐｋGr1，ｋ））を制御部２１に渡す（ＳＴ５）。
【００８４】
ステップＳＴ６では、以下のステップＳＴ６−１〜ＳＴ６−３が実行される。
【００８５】
クライアント装置２０では、制御部２１が、ステップＳＴ２で渡された暗号化データ部分（Ｅ（ｋ，Ｄ））と、ステップＳＴ５で得られた第１暗号化共通鍵部分（Ｅ（ｐｋGr1，ｋ））とを１つのファイル（暗号化ファイル）に纏め、纏めた暗号化ファイルをファイル共有装置１０に送信する（ＳＴ６−１）。
【００８６】
ファイル共有装置１０では、制御部１１が、暗号化ファイルをファイル共有部１４に渡す。ファイル共有部１４は、暗号化ファイルをファイル記憶部１５に書込む（ＳＴ６−２）。
【００８７】
ファイル共有装置１０では、制御部１１が、ファイルアップロードが完了した旨をクライアント装置２０に通知する（ＳＴ６−３）。
【００８８】
クライアント装置２０では、制御部２１が、この通知を表示部（図示せず）に表示する。
【００８９】
以上により、ファイルアップロードの処理が完了する。
【００９０】
続いて、ファイルダウンロードの処理の流れを図６及び図７に示す。
【００９１】
クライアント装置２０では、制御部２１が、メンバを識別するメンバＩＤ及びグループを識別するグループＩＤ（フォルダ内のファイルをグループで共有する場合は、フォルダ名をグループＩＤとしてもよい）と、暗号化ファイルのファイル名を含むファイル要求をファイル共有装置１０に送信する（ＳＴ１１）。なお、メンバＩＤについては、クライアント装置２０から送付するのがメンバＩＤではなくてセッションＩＤである場合、ファイル共有装置１０の制御部１１でセッションＩＤとメンバＩＤとを結び付けて管理し、その管理しているメンバＩＤを利用して、セッションＩＤから逆算してメンバＩＤを導くようにしてもよい。
【００９２】
ステップＳＴ１２では、以下のステップＳＴ１２−１〜ＳＴ１２−２が実行される。
【００９３】
ファイル共有装置１０では、制御部１１が、メンバを識別するメンバＩＤ及び暗号化ファイルのファイル名を含むファイル要求をクライアント装置２０から受けると、ファイル共有部１４を介して、ファイル要求内のファイル名に基づいてファイル記憶部１５から暗号化ファイルを取得する。具体的には、制御部１１は、クライアント装置２０から受けたファイル要求をファイル共有部１４に送出する。ファイル共有部１４は、ファイル記憶部１５から暗号化ファイルを取得し、制御部１１に渡す（ＳＴ１２−１）。
【００９４】
ファイル共有装置１０では、制御部１１が、取得した暗号化ファイルを挿入処理部１３に渡す［処理の挿入］（ＳＴ１２−２）。
【００９５】
ファイル共有装置１０では、処理挿入部１３が、渡された暗号化ファイルを、第１暗号化共通鍵部分（Ｅ（ｐｋGr1，ｋ））と暗号化データ部分（Ｅ（ｋ，Ｄ））に分離する（ＳＴ１３）。
【００９６】
ステップＳＴ１４’及びＳＴ１４は、並列に実行される。ステップＳＴ１４’では、以下のステップＳＴ１４’−１〜ＳＴ１４’−２が実行される。
【００９７】
ファイル共有装置１０では、挿入処理部１３が、ステップＳＴ１４の処理と並行して、暗号化データ部分（Ｅ（ｋ，Ｄ））を制御部１１に渡す（ＳＴ１４’−１）。
【００９８】
ファイル共有装置１０では、制御部１１が、クライアント装置２０に暗号化データ部分（Ｅ（ｋ，Ｄ））を送信する（ＳＴ１４’−２）。
【００９９】
ステップＳＴ１４では、以下のステップＳＴ１４−１〜ＳＴ１４−５が実行される。
【０１００】
ファイル共有装置１０では、処理挿入部１３が、分離された暗号化データ部分（Ｅ（ｋ，Ｄ））をクライアント装置２０に送信する処理と並行して、第１暗号化共通鍵部分（Ｅ（ｐｋGr1，ｋ））及びファイル要求内のメンバＩＤ及びグループＩＤを含む再暗号化要求を再暗号化装置３０に送信する（ＳＴ１４−１）。
【０１０１】
再暗号化装置３０では、再暗号化要求をファイル共有装置１０から受けると、当該再暗号化要求内のメンバＩＤ（例、Ａ）とグループＩＤ（例、Ｇｒ１）に基づいて再暗号化鍵記憶部３５から再暗号化鍵ｒｋGr1→Aを取得し、当該取得した再暗号化鍵ｒｋGr1→Aに基づいて、再暗号化要求内の第１暗号化共通鍵部分（Ｅ（ｐｋGr1，ｋ））を第２暗号化共通鍵部分（Ｅ（ｐｋA，ｋ））に再暗号化する。
【０１０２】
具体的には、制御部３１は、再暗号化要求内の第１暗号化共通鍵部分（Ｅ（ｐｋGr1，ｋ）及びメンバＩＤ（例、Ａ）及びグループＩＤ（例、Ｇｒ１）を再暗号化処理部３３に渡す。再暗号化処理部３３は、このメンバＩＤとグループＩＤに基づいて再暗号化鍵記憶部３５から再暗号化鍵ｒｋGr1→Aを取得し、第１暗号化共通鍵部分（Ｅ（ｐｋGr1，ｋ））を第２暗号化共通鍵部分（Ｅ（ｐｋA，ｋ）に再暗号化し、得られた第２暗号化共通鍵部分（Ｅ（ｐｋA，ｋ））を制御部３１に渡す（ＳＴ１４−２）。
【０１０３】
再暗号化装置３０では、制御部３１が、再暗号化により得られた第２暗号化共通鍵部分（Ｅ（ｐｋA，ｋ））をファイル共有装置１０に送信する（ＳＴ１４−３）。
【０１０４】
ファイル共有装置１０では、挿入処理部１３が、ステップＳＴ１４’−２の送信処理が終わっていなければ終わるまで待って、制御部１１に第２暗号化共通鍵部分（Ｅ（ｐｋA，ｋ））を渡す。ステップＳＴ１４’−２の送信処理が終わっていればすぐ渡す（ＳＴ１４−４）。
【０１０５】
ファイル共有装置１０では、制御部１１が、第２暗号化共通鍵部分（Ｅ（ｐｋA，ｋ））をクライアント装置２０に送信する［挿入した処理の終了］（ＳＴ１４−５）。
【０１０６】
ファイル共有装置１０からクライアント装置２０へのレスポンスはステップＳＴ１４−５とステップＳＴ１４’−２との２回送信しているが、これは１つの通信のレスポンスとして２段階でデータを送付している。
【０１０７】
クライアント装置２０は、ファイル共有装置１０から受けた第２暗号化共通鍵部分（Ｅ（ｐｋA，ｋ））をメンバの公開鍵ｐｋAに対応する秘密鍵ｓｋAに基づいて復号することによって共通鍵ｋを得ることと、ファイル共有装置１０から受けた暗号化データ部分（Ｅ（ｋ，Ｄ））を、当該得られた共通鍵ｋに基づいて復号することとにより、ファイルのデータＤを得る。
【０１０８】
具体的には、クライアント装置２０では、制御部２１が、秘密鍵記憶部２４から秘密鍵ｓｋAを取得し、秘密鍵ｓｋAと第２暗号化共通鍵部分（Ｅ（ｐｋA，ｋ））を暗号処理部２５に渡す。暗号処理部２５は、第２暗号化共通鍵部分（Ｅ（ｐｋA，ｋ））を秘密鍵ｓｋAで復号し、得られた共通鍵ｋを制御部２１に渡す（ＳＴ１５）。
【０１０９】
クライアント装置２０では、制御部２１が、ステップＳＴ１４’で受信した第２暗号化データ部分（Ｅ（ｋ，Ｄ））とステップＳＴ１５で得た共通鍵ｋを暗号処理部２５に渡す。暗号処理部２５は、第２暗号化データ部分を共通鍵ｋで復号し、ファイルの平文のデータＤを得る。データＤのファイルを制御部２１に渡す（ＳＴ１６）。
【０１１０】
以上により、ファイルダウンロードの処理が完了する。
【０１１１】
次に、グループにメンバを追加する処理の流れを図８及び図９に示す。ただし、ここでクライアント装置２０は、グループ管理者が利用しているものとする。
【０１１２】
クライアント装置２０では、制御部２１が、追加したいメンバを識別するメンバＩＤ（例、Ｃ）を含むメンバ追加リクエストをファイル共有装置１０に送信する（ＳＴ２１）。
【０１１３】
ファイル共有装置１０では、制御部１１が、メンバ追加リクエストを受けると、挿入処理部１３を呼出す［処理の挿入］（ＳＴ２２）。
【０１１４】
ファイル共有装置１０では、挿入処理部１３が、メンバ追加リクエスト内のメンバＩＤ（Ｃ）に基づいて、再暗号化装置３０にメンバの公開鍵ｐｋCを要求する（ＳＴ２３）。
【０１１５】
再暗号化装置３０では、制御部３１が、要求されたメンバＩＤ（Ｃ）に関連付けられた公開鍵ｐｋCを公開鍵記憶部３４から読み込む（ＳＴ２４）。
【０１１６】
再暗号化装置３０では、制御部３１が、ファイル共有装置１０の挿入処理部１３にメンバの公開鍵ｐｋC及びメンバＩＤ（Ｃ）を返す（ＳＴ２５）。
【０１１７】
ファイル共有装置１０では、挿入処理部１３が、制御部１１に処理を戻す（取得したメンバの公開鍵ｐｋC及びメンバＩＤ（Ｃ）も渡す）［挿入した処理の終了］（ＳＴ２６）。
【０１１８】
ファイル共有装置１０では、制御部１１が、メンバの公開鍵ｐｋC及びメンバＩＤ（Ｃ）をクライアント装置２０に送信する（ＳＴ２７）。
【０１１９】
本来、既成の機能部は、メンバ追加リクエストの受信時にステップＳＴ３６のメンバ追加処理を行うが、挿入処理部１３の機能により行わないようにする。
【０１２０】
クライアント装置２０では、制御部２１が、秘密鍵記憶部２４からグループの秘密鍵ｓｋGr1を読み込む（ＳＴ２８）。
【０１２１】
クライアント装置２０では、制御部２１が、メンバの公開鍵ｐｋCとグループの秘密鍵ｓｋGr1を再暗号化鍵作成部２７に渡す。再暗号化鍵作成部２７は、メンバの公開鍵ｐｋCとグループの秘密鍵ｓｋGr1から、メンバの再暗号化鍵ｒｋGr1→Cを作成し、メンバの再暗号化鍵ｒｋGr1→C及びメンバＩＤ（Ｃ）を制御部２１に渡す（ＳＴ２９）。
【０１２２】
クライアント装置２０では、制御部２１が、メンバの再暗号化鍵ｒｋGr1→C及びメンバＩＤ（Ｃ）及びグループＩＤ（Ｇｒ１）をファイル共有装置１０に送信する（ＳＴ３０）。
【０１２３】
ファイル共有装置１０では、制御部１１が、再暗号化鍵登録部１８にメンバの再暗号化鍵ｒｋGr1→C及びメンバＩＤ（Ｃ）とグループＩＤ（Ｇｒ１）を渡す（ＳＴ３１）。
【０１２４】
ファイル共有装置１０では、処理挿入部１３が、再暗号化装置３０に再暗号化鍵ｒｋGr1→C及びメンバＩＤ（Ｃ）を渡す（ＳＴ３２）。
【０１２５】
再暗号化装置３０では、制御部３１が、再暗号化鍵記憶部３５に再暗号化鍵ｒｋGr1→C及びメンバＩＤ（Ｃ）を関連付けて書込む（ＳＴ３３）。
【０１２６】
再暗号化装置３０では、制御部３１が、メンバＩＤ（Ｃ）とグループＩＤ（Ｇｒ１）に関連付けて再暗号化鍵ｒｋGr1→Cを登録した旨をファイル共有装置１０に通知する（ＳＴ３４）。
【０１２７】
ファイル共有装置１０では、再暗号化鍵登録部１８が、この通知を受けると、メンバＩＤ（Ｃ）とグループＩＤ（Ｇｒ１）を含むメンバ追加依頼をグループ管理部１９に送出する（ＳＴ３５）。
【０１２８】
ファイル共有装置１０では、グループ管理部１９が、メンバ追加依頼を受けると、グループ情報記憶部１６のグループ情報にメンバＩＤ（Ｃ）とグループＩＤ（Ｇｒ１）を追加する（ＳＴ３６）。
【０１２９】
なお、再暗号化鍵の登録リクエストでメンバ追加処理を行う理由は、ファイル共有装置１０のグループ情報記憶部１６と、再暗号化装置３０の再暗号化鍵記憶部３５との間に不整合が起こらないようにするためである。
【０１３０】
ファイル共有装置１０では、ファイル共有部１４が、メンバ追加処理が完了した旨を再暗号化鍵登録部１８に通知する（ＳＴ３７）。
【０１３１】
ファイル共有装置１０では、暗号化鍵登録部１８が、メンバＩＤ（Ｃ）とグループＩＤ（Ｇｒ１）に対応する再暗号化鍵ｒｋGr1→Cを登録した旨を制御部１１に通知する（ＳＴ３８）。
【０１３２】
ファイル共有装置１０では、制御部１１が、メンバＩＤ（Ｃ）とグループＩＤ（Ｇｒ１）に対応する再暗号化鍵ｒｋGr1→Cを登録した旨をクライアント装置２０に通知する（ＳＴ３９）。
【０１３３】
クライアント装置２０では、制御部２１が、この通知を表示部（図示せず）に表示する。
【０１３４】
以上により、メンバ追加の処理が完了する。
【０１３５】
続いて、グループにメンバを削除する処理の流れを図１０及び図１１に示す。ただし、ここでクライアント装置２０はグループ管理者が利用しているものとする。
【０１３６】
クライアント装置２０では、制御部２１が、削除したいメンバを識別するメンバＩＤ（例、Ｃ）及びそのメンバを削除するグループを識別するグループＩＤ（例、Ｇｒ１）を含むメンバ削除リクエストをファイル共有装置１０に送信する（ＳＴ４１）。
【０１３７】
ファイル共有装置１０では、制御部１１が、メンバ削除リクエストを受けると、処理挿入部１３を呼出す［処理の挿入］（ＳＴ４２）。
【０１３８】
ファイル共有装置１０では、処理挿入部１３が、メンバ削除リクエスト内のメンバＩＤ（Ｃ）とグループＩＤ（Ｇｒ１）を含む再暗号化鍵削除リクエストを再暗号化装置３０に送信する（ＳＴ４３）。
【０１３９】
再暗号化装置３０では、制御部３１が、再暗号化鍵削除リクエスト内のメンバＩＤ（Ｃ）に基づいて、当該メンバＩＤ（Ｃ）とグループＩＤ（Ｇｒ１）に関連付けられた再暗号化鍵ｒｋGr1→Cを再暗号化鍵記憶部３５から削除する（ＳＴ４４）。
【０１４０】
再暗号化装置３０では、制御部３１が、メンバＩＤ（Ｃ）とグループＩＤ（Ｇｒ１）に関連付けられた再暗号化鍵ｒｋGr1→Cを削除した旨をファイル共有装置１０に通知する（ＳＴ４５）。
【０１４１】
ファイル共有装置１０では、処理挿入部１３が、この通知を受けると、制御部１１に処理を戻す［処理の挿入終了］（ＳＴ４６）。
【０１４２】
ファイル共有装置１０では、制御部１１が、この通知に基づいて、メンバＩＤ（Ｃ）とグループＩＤ（Ｇｒ１）を含むメンバ削除依頼をグループ管理部１９に送出する。グループ管理部１９は、メンバ削除依頼を受けると、グループ情報記憶部１６のグループ情報からメンバＩＤ（Ｃ）とグループＩＤ（Ｇｒ１）が関連付けられている行を削除する（ＳＴ４７）。
【０１４３】
ファイル共有装置１０では、制御部１１が、メンバ削除処理が完了した旨をクライアント装置２０に通知する（ＳＴ４８）。
【０１４４】
クライアント装置２０では、制御部２１が、この通知を表示部（図示せず）に表示する。
【０１４５】
以上により、メンバ削除の処理が完了する。
【０１４６】
上述したように本実施形態によれば、ファイル共有装置１０が、クライアント装置２０から受けたファイル要求に基づいてファイル記憶部１５から暗号化ファイルを取得し、当該暗号化ファイルを第１暗号化共通鍵部分と暗号化データ部分に分離し、当該暗号化データ部分をクライアント装置２０に送信する処理と並行して、当該第１暗号化共通鍵部分及びメンバＩＤを含む再暗号化要求を再暗号化装置３０に送信し、再暗号化装置３０が、再暗号化要求に基づいて再暗号化鍵記憶部３５から再暗号化鍵を取得し、当該再暗号化鍵に基づいて再暗号化要求内の第１暗号化共通鍵部分を第２暗号化共通鍵部分に再暗号化し、当該第２暗号化共通鍵部分をファイル共有装置１０を介してクライアント装置２０に送信する構成により、クライアント装置２０が、第２暗号化共通鍵部分をメンバの公開鍵に対応する秘密鍵に基づいて復号することによって共通鍵を得ると共に、暗号化データ部分を、当該得られた共通鍵に基づいて復号することにより、データを得るようにしたので、利便性とセキュリティを両立させることができる。
【０１４７】
また、本実施形態によれば、ファイル共有装置１０においては、既存のファイル共有システムの機能を提供している部分を変更せずに、フィルタ機能で再暗号化装置３０と連携することができるため、改修コストを削減することができる。
【０１４８】
また、ファイル共有装置１０がハイブリッド暗号のデータを切り離して鍵部分だけを再暗号化装置に送付することで、通信時間を短縮することができる。データ部分の送信と並行して再暗号化処理を行うことによって、再暗号処理による処理時間の増大を軽減することができる。別途、再暗号化装置３０を用意しているので、既存のファイル共有装置にＣＰＵ負荷をかけずに再暗号化処理を追加することができる。
【０１４９】
続いて、本実施形態と特許文献１との相違について補足的に説明する。
【０１５０】
本実施形態では、図２３に示したようにハイブリッド方式での共通鍵部分とデータ部分を切り離し、データ部分をクライアント装置に送付する間に、共通鍵部分の再暗号化処理を行うことで、再暗号化処理に費やす時間によるサービスレベル低下の軽減を図っている。
【０１５１】
これに対し、特許文献１記載の技術は、クライアント端末でＳＯＡＰメッセージに対して暗号化処理を行う際に、ボディ部とヘッダ部に分割し、ボディ部をゲートウェイに送信すると共にボディ部に対して暗号化処理を行い、ヘッダ部を作成する。そして、特許文献１記載の技術は、ボディ部の送信後にヘッダ部をゲートウェイに送信し、ゲートウェイで本来のＳＯＡＰメッセージを作成するものである。ここで、特許文献１記載の技術は、クライアント端末の処理のみに注目するとデータの送信と暗号化処理を並行して行っていることから、本実施形態に似た内容にも見えるが、以下の点で本実施形態とは構成・機能が異なっている。
【０１５２】
（１）特許文献１記載の技術においては、ボディ部とヘッダ部が揃わないとゲートウェイから本来のサーバへ送信できないため、クライアント端末での暗号化処理とデータ送信を並列に行うことでクライアント端末全体での処理を軽減している。しかしながら、特許文献１記載の技術では、ゲートウェイからサーバに送るデータ送信時間が削減できていない点と、ＳＯＡＰメッセージ構築の時間が削減できていない点と、ゲートウェイ装置を別途発明の内容で構築しなければならない点が異なる。また、特許文献１記載の技術でシステム全体の負荷が軽減できるか否かは、暗号化処理を実行するクライアント端末の性能に依存する。
【０１５３】
（２）特許文献１記載の技術においては、暗号化処理をクライアント端末でしか実行できず、ゲートウェイに委託することができない。そのため、特許文献１記載の技術は、クライアント端末での暗号化処理の負荷を軽減できない。
【０１５４】
上記（１）（２）に対し、本実施形態では、メッセージ構築に該当する処理が存在しないこと、そのためゲートウェイの機能に該当する処理が不要なこと、および暗号化処理を外部に委託することが可能になる点と、システム全体の負荷が軽減できる点で優れている。また、本実施形態は、メッセージ構築が不要な点や暗号化処理の委託ができることから、特許文献１記載の技術とは構成・機能が異なっている。
【０１５５】
＜第２の実施形態＞
次に、第２の実施形態に係る再暗号化システムについて図１を参照して説明する。  
第２の実施形態は、図１８に示した如き、ハイブリッド方式を用いない基本形態であり、ファイル全体を暗号化及び再暗号化する構成となっている。
【０１５６】
この再暗号化システムは、図１を参照して示すように、前述同様に、クライアント／サーバ構成であり、グループに属するメンバに操作されるクライアント装置２０に通信可能なファイル共有装置１０及び再暗号化装置３０を備えている。但し、共通鍵ｋを用いないため、クライアント装置２０の共通鍵生成部２６は省略される。クライアント装置２０の他の構成は、以下の動作説明中に示す通りである。
【０１５７】
ここで、ファイル共有装置１０のファイル記憶部１５は、グループの公開鍵ｐｋGr1に基づいてファイル（Ｄ）が暗号化されてなる第１暗号化ファイルＥ（ｐｋGr1，Ｄ）を記憶する。また、ファイル共有装置１０は、例えばファイルダウンロードに関し、以下の各機能(f10-1)〜(f10-1)をもっている。
【０１５８】
(f10-1)  制御部１１及び通信部１２により、メンバを識別するメンバＩＤ（例、Ａ）及びとグループＩＤ（例、Ｇｒ１）と、第１暗号化ファイルＥ（ｐｋGr1，Ｄ）のファイル名を含むファイル要求をクライアント装置２０から受けると、制御部１１及びファイル共有部１４により、当該ファイル要求内のファイル名に基づいてファイル記憶部１５から第１暗号化ファイルＥ（ｐｋGr1，Ｄ）を取得する機能。
【０１５９】
(f10-2)  制御部１１、通信部１２及び挿入処理部１３により、当該取得した第１暗号化ファイルＥ（ｐｋGr1，Ｄ）及び当該ファイル要求内のメンバＩＤ（Ａ）とグループＩＤ（Ｇｒ１）を含む再暗号化要求を再暗号化装置３０に送信する機能。
【０１６０】
(f10-3)  制御部１１、通信部１２及び挿入処理部１３により、メンバＩＤ（Ａ）とグループＩＤ（Ｇｒ１）の公開鍵ｐｋAに基づいてファイルが暗号化されてなる第２暗号化ファイルＥ（ｐｋA，Ｄ）を再暗号化装置３０から受けると、制御部１１及び通信部１２により、当該第２暗号化ファイルＥ（ｐｋA，Ｄ）をクライアント装置に送信する。
【０１６１】
ファイル共有装置１０の他の構成（ファイルアップロード・メンバ追加処理・メンバ削除処理に関する構成）は、以下の動作説明中に示す通りである。
【０１６２】
また、再暗号化装置３０の再暗号化鍵記憶部３５は、メンバを識別するメンバＩＤ（Ａ，Ｂ，…）及びグループを識別するグループＩＤ（Ｇｒ１，Ｇｒ２，…）と、第１暗号化ファイルを復号せずに第２暗号化ファイルに再暗号化するための再暗号化鍵（ｒｋGr1→A，ｒｋGr1→B，…）とを関連付けて記憶する。また、再暗号化装置３０は、例えばファイルダウンロードに関し、以下の各機能(f30-1)〜(f30-3)をもっている。
【０１６３】
(f30-1)  制御部３１及び通信部３２により、再暗号化要求をファイル共有装置１０から受けると、制御部３１及び再暗号化処理部３３により、当該再暗号化要求内のメンバＩＤ（例、Ａ）とグループＩＤ（例、Ｇｒ１）に基づいて再暗号化鍵記憶部３５から再暗号化鍵ｒｋGr1→Aを取得する機能。
【０１６４】
(f30-2)  再暗号化処理部３３により、当該取得した再暗号化鍵ｒｋGr1→Aに基づいて、再暗号化要求内の第１暗号化ファイルＥ（ｐｋGr1，Ｄ）を第２暗号化ファイルＥ（ｐｋA，Ｄ）に再暗号化する機能。
【０１６５】
(f30-3)  制御部３１及び通信部３２により、当該再暗号化により得られた第２暗号化ファイルＥ（ｐｋA，Ｄ）をファイル共有装置１０に送信する機能。
【０１６６】
再暗号化装置３０の他の構成（ファイルアップロード・メンバ追加処理・メンバ削除処理に関する構成）は、以下の動作説明中に示す通りである。
【０１６７】
次に、以上のように構成された再暗号化システムの動作について説明する。
【０１６８】
始めに、ファイルアップロードの処理の流れを述べる。
【０１６９】
クライアント装置２０では、制御部２１がファイル記憶部２３からアップロードするファイル（Ｄ）を読み込む。
【０１７０】
クライアント装置２０では、制御部２１が、アップロードするファイルを公開するグループの公開鍵ｐｋGr1をファイル共有装置１０に要求する。具体的には、グループを識別するグループＩＤ（例、Ｇｒ１）を含む公開鍵要求をファイル共有装置１０に送信する。
【０１７１】
ファイル共有装置１０では、制御部１１が、この公開鍵要求を公開鍵取得部１７に送出する。
【０１７２】
ファイル共有装置１０では、公開鍵取得部１７が、この公開鍵要求を再暗号化装置３０に送信する。
【０１７３】
再暗号化装置３０では、制御部３１が、公開鍵要求内のグループＩＤ（例、Ｇｒ１）に基づいて、公開鍵記憶部３４からグループの公開鍵ｐｋGr1を取り出す。
【０１７４】
再暗号化装置３０では、制御部３１がグループの公開鍵ｐｋGr1をファイル共有装置１０に送信する。
【０１７５】
ファイル共有装置１０では、公開鍵取得部１７が、制御部１１にグループの公開鍵ｐｋGr1を渡す。
【０１７６】
ファイル共有装置１０では、制御部１１が、グループの公開鍵ｐｋGr1をクライアント装置２０に送信する。
【０１７７】
クライアント装置２０では、制御部２１が、受信したグループの公開鍵ｐｋGr1と、アップロードするファイルとを暗号処理部２５に渡す。暗号処理部２５は、ファイル（Ｄ）をグループの公開鍵ｐｋGr1で暗号化し、得られた第１暗号化ファイルＥ（ｐｋGr1，Ｄ）を制御部２１に渡す。
【０１７８】
クライアント装置２０では、制御部２１が、第１暗号化ファイルＥ（ｐｋGr1，Ｄ）をファイル共有装置１０に送信する。
【０１７９】
ファイル共有装置１０では、制御部１１が、第１暗号化ファイルＥ（ｐｋGr1，Ｄ）をファイル共有部１４に渡す。ファイル共有部１４は、第１暗号化ファイルＥ（ｐｋGr1，Ｄ）をファイル記憶部１５に書込む。
【０１８０】
ファイル共有装置１０では、制御部１１が、ファイルアップロードが完了した旨をクライアント装置２０に通知する。
【０１８１】
クライアント装置２０では、制御部２１が、この通知を表示部（図示せず）に表示する。
【０１８２】
以上により、ファイルアップロードの処理が完了する。
【０１８３】
続いて、ファイルダウンロードの処理の流れを説明する。
【０１８４】
クライアント装置２０では、制御部２１が、メンバを識別するメンバＩＤ（例、Ａ）及びグループを識別するグループＩＤ（例、Ｇｒ１）と、第１暗号化ファイルＥ（ｐｋGr1，Ｄ）のファイル名を含むファイル要求をファイル共有装置１０に送信する。
【０１８５】
ファイル共有装置１０では、制御部１１が、ファイル要求をクライアント装置２０から受けると、ファイル共有部１４を介して、ファイル要求内のファイル名に基づいてファイル記憶部１５から第１暗号化ファイルＥ（ｐｋGr1，Ｄ）を取得する。具体的には、制御部１１は、クライアント装置２０から受けたファイル要求をファイル共有部１４に送出する。ファイル共有部１４は、ファイル記憶部１５から第１暗号化ファイルＥ（ｐｋGr1，Ｄ）を取得し、制御部１１に渡す。
【０１８６】
ファイル共有装置１０では、制御部１１が、取得した第１暗号化ファイルＥ（ｐｋGr1，Ｄ）を挿入処理部１３に渡す［処理の挿入］。
【０１８７】
ファイル共有装置１０では、処理挿入部１３が、渡された第１暗号化ファイルＥ（ｐｋGr1，Ｄ）及びファイル要求内のメンバＩＤを含む再暗号化要求を再暗号化装置３０に送信する。
【０１８８】
再暗号化装置３０では、再暗号化要求をファイル共有装置１０から受けると、当該再暗号化要求内のメンバＩＤ（例、Ａ）とグループＩＤ（例、Ｇｒ１）に基づいて再暗号化鍵記憶部３５から再暗号化鍵ｒｋGr1→Aを取得し、当該取得した再暗号化鍵ｒｋGr1→Aに基づいて、再暗号化要求内の第１暗号化ファイル（Ｅ（ｐｋGr1，Ｄ）を第２暗号化ファイル（Ｅ（ｐｋA，Ｄ）に再暗号化する。
【０１８９】
具体的には、制御部３１は、再暗号化要求内の第１暗号化ファイルＥ（ｐｋGr1，Ｄ）及びメンバＩＤ（例、Ａ）とグループＩＤ（例、Ｇｒ１）を再暗号化処理部３３に渡す。再暗号化処理部３３は、このメンバＩＤに基づいて再暗号化鍵記憶部３４から再暗号化鍵ｒｋGr1→Aを取得し、第１暗号化ファイルＥ（ｐｋGr1，Ｄ）を第２暗号化ファイルＥ（ｐｋA，Ｄ）に再暗号化し、得られた第２暗号化ファイルＥ（ｐｋA，Ｄ）を制御部３１に渡す。
【０１９０】
再暗号化装置３０では、制御部３１が、再暗号化により得られた第２暗号化ファイルＥ（ｐｋA，Ｄ）をファイル共有装置１０に送信する。
【０１９１】
ファイル共有装置１０では、挿入処理部１３が、制御部１１に第２暗号化ファイルＥ（ｐｋA，Ｄ）を渡す。
【０１９２】
ファイル共有装置１０では、制御部１１が、第２暗号化ファイルＥ（ｐｋA，Ｄ）をクライアント装置２０に送信する［挿入した処理の終了］。
【０１９３】
クライアント装置２０は、ファイル共有装置１０から受けた第２暗号化ファイルＥ（ｐｋA，Ｄ）をメンバの公開鍵ｐｋAに対応する秘密鍵ｓｋAに基づいて復号することにより、ファイル（Ｄ）を得る。
【０１９４】
具体的には、クライアント装置２０では、制御部２１が、秘密鍵記憶部２４から秘密鍵ｓｋAを取得し、秘密鍵ｓｋAと第２暗号化ファイルＥ（ｐｋA，Ｄ）を暗号処理部２５に渡す。暗号処理部２５は、第２暗号化ファイルＥ（ｐｋA，Ｄ）を秘密鍵ｓｋAで復号し、得られたファイル（Ｄ）を制御部２１に渡す。
【０１９５】
以上により、ファイルダウンロードの処理が完了する。
【０１９６】
なお、メンバ追加処理及びメンバ削除処理は、第１の実施形態と同様である。
【０１９７】
上述したように本実施形態によれば、ファイル共有装置１０が、クライアント装置２０から受けたファイル要求に基づいてファイル記憶部１５から第１暗号化ファイルを取得し、当該第１暗号化ファイルを含む再暗号化要求を再暗号化装置３０に送信し、再暗号化装置３０が、再暗号化鍵に基づいて再暗号化鍵記憶部３５から再暗号化鍵を取得し、当該再暗号化鍵に基づいて再暗号化要求内の第１暗号化ファイルを第２暗号化ファイルに再暗号化し、当該第２暗号化ファイルをファイル共有装置１０を介してクライアント装置２０に送信し、クライアント装置２０が、第２暗号化ファイルをメンバの公開鍵に対応する秘密鍵に基づいて復号することによってファイルを得る構成により、第１暗号化ファイル全体を再暗号化することから、第１の実施形態に比べて処理時間がかかる点を除き、第１の実施形態と同様の効果を得ることができる。
【０１９８】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【０１９９】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【０２００】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が上記実施形態を実現するための各処理の一部を実行しても良い。
【０２０１】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【０２０２】
また、記憶媒体は１つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【０２０３】
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【０２０４】
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【０２０５】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０２０６】
１０…ファイル共有装置、１１，２１，３１…制御部、１２，２２，３２…通信部、１３…挿入処理部、１４…ファイル共有部、１５，２３…ファイル記憶部、１６…グループ情報記憶部、１７…公開鍵取得部、１８…再暗号化鍵登録部、１９…グループ管理部、２０…クライアント装置、２４…秘密鍵記憶部、２５…暗号処理部、２６…共通鍵生成部、２７…再暗号化鍵作成部、３０…再暗号化装置、３３…再暗号化処理部、３４…公開鍵記憶部、３５…再暗号化鍵記憶部。
【図１】
0005454960.tif 000002
【図２】
0005454960.tif 000003
【図３】
0005454960.tif 000004
【図４】
0005454960.tif 000005
【図５】
0005454960.tif 000006
【図６】
0005454960.tif 000007
【図７】
0005454960.tif 000008
【図８】
0005454960.tif 000009
【図９】
0005454960.tif 000010
【図１０】
0005454960.tif 000011
【図１１】
0005454960.tif 000012
【図１２】
0005454960.tif 000013
【図１３】
0005454960.tif 000014
【図１４】
0005454960.tif 000015
【図１５】
0005454960.tif 000016
【図１６】
0005454960.tif 000017
【図１７】
0005454960.tif 000018
【図１８】
0005454960.tif 000019
【図１９】
0005454960.tif 000020
【図２０】
0005454960.tif 000021
【図２１】
0005454960.tif 000022
【図２２】
0005454960.tif 000023
【図２３】
0005454960.tif 000024
【図２４】
0005454960.tif 000025