説明

再暗号化システム、再暗号化装置及びプログラム

【課題】利便性とセキュリティを両立させる。
【解決手段】実施形態の再暗号化システムは、ファイル共有装置及び再暗号化装置を備えている。前記ファイル共有装置は、ファイル要求を前記クライアント装置から受けると、前記ファイル要求内のファイル名に基づいて第1暗号化ファイルを取得し、前記第1暗号化ファイルを含む再暗号化要求を前記再暗号化装置に送信する。前記再暗号化装置は、前記再暗号化鍵に基づいて前記再暗号化要求内の第1暗号化ファイルを前記第2暗号化ファイルに再暗号化し、前記第2暗号化ファイルを前記ファイル共有装置に送信する。前記ファイル共有装置は、当該第2暗号化ファイルを前記クライアント装置に送信する。前記クライアント装置は、前記ファイル共有装置から受けた第2暗号化ファイルを前記メンバの公開鍵に対応する秘密鍵に基づいて復号することにより、前記ファイルを得る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、再暗号化システム、再暗号化装置及びプログラムに関する。
【背景技術】
【0002】
近年、情報技術基盤(ITインフラ)や運用管理のコストを削減し得ると同時に、サービスの柔軟性や拡張性を確保して利便性にも優れていることから、クラウドコンピューティング(以下、クラウドという)が急速に普及してきている。一方、既存のクラウドのセキュリティは不十分である。特にパブリッククラウドについては、セキュリティの不安感からクラウドの利用に踏み切れない企業が多い。
【0003】
その反面、複数のメンバからなるグループがデータをクラウドストレージ内に共有したいニーズが高く、このニーズはクラウドの用途の上位にも上げられている。しかし、既存のクラウドを利用してデータを共有すると、次のような課題が考えられる。
【0004】
既存のクラウドサービスを利用して、データをグループ間で共有する場合、あるユーザがデータをクラウドストレージ上にアップロードし、グループのメンバがダウンロードして利用することになる。
【0005】
しかしながら、アップロードの際に、図12に示すように、通信路上のデータDはSSL/TLSにより保護されるが、クラウドストレージ1内のデータDは暗号化されていない。このため、クラウドストレージ1内のデータDのセキュリティは、全てクラウドサービスの信頼性に依存してしまう。例えばクラウドストレージ1は多くの企業・ユーザに利用されているが、設定ミスにより他テナントのデータが見えてしまう心配や、認証処理が適切に行われない心配がある。また、サーバ管理者による内部犯行により、預けているデータが漏えいしてしまう心配もある。
【0006】
これに対し、既存のクラウドサービスにおいて、図13に示すように、サーバ内でデータDを共通鍵暗号方式の共通鍵kによって暗号化し、暗号化データE(k,D)をクラウドストレージ1に保管する場合がある。この場合、クラウドストレージ1内の暗号化データE(k,D)は保護される。しかしながら、暗号化前のデータDの受け取り(アップロード)時と、復号したデータDの配布(ダウンロード)時には暗号化されていない状態であることや、サーバの管理者が暗号化データE(k,D)を復号できることから、セキュリティ上の課題が残っている。
【0007】
以上のような課題から、既存クラウドの導入に踏み切れない企業が多数ある。
【0008】
これら課題を解決する1つの方法として、アップロード前にデータを暗号化することが考えられるが、利便性が低下する問題がある。例えば、従来の暗号化技術を用いてデータを暗号化しグループで共有する場合、大きく2つの方法(i)(ii)が考えられる。但し、どちらの方法(i)(ii)にもメリットとデメリットがあり、利便性とセキュリティのトレードオフとなる。これら(i)(ii)の方法について以下に説明する。
【0009】
(i)グループの鍵を共有する方法
上記(i)の方法のメリットとしては、クラウド上でデータを常に暗号化した状態で保管できる点と、暗号化鍵の管理が容易である点が挙げられる。例えば、図14に示すように、グループで暗号化鍵ekGr1/復号化鍵dkGr1を共有し、公開鍵暗号を用いて暗号化する場合、暗号化鍵ekGr1/復号鍵dkGr1は1つの組なので、アップロードするメンバ、ダウンロードするメンバともに管理は容易であり、クラウド上では常に暗号化した状態でデータを保管できるため、セキュリティの不安を払拭できる。
【0010】
上記(i)の方法のデメリットとしては、復号鍵dkGr1をメンバ間で共有する必要がある点と、復号鍵dkGr1の配布・共有を安全に行う方法が必要な点が挙げられる。例えば、各メンバが復号鍵dkGr1を共有することから、メンバが増加するほど復号鍵dkGr1の漏洩リスクが増えてしまう。仮に復号鍵dkGr1を漏えいした場合、漏洩した復号鍵dkGr1の利用を防ぐ趣旨で、グループで共有する復号鍵dkGr1を更新する必要が生じるため、利便性を低下させてしまう。また、グループからメンバが抜けた場合、抜けたメンバによる復号を防ぐ趣旨で、他のメンバの復号鍵dkGr1を更新する必要が生じるため、メンバ追加・削除時の手続きにより利便性を低下させてしまう。
【0011】
このように、上記(i)のグループで鍵を共有する方法においては、鍵の管理が容易となる一方、鍵の共有方法などに課題が残る。
【0012】
(ii)メンバそれぞれの鍵で暗号化する方法
上記(ii)の方法のメリットとしては、クラウド上で常に暗号化したデータを保管できる点と、メンバ間で鍵を共有しない点が挙げられる。例えば、図15に示すように、メンバA,…毎に公開鍵pkA/秘密鍵skA,…を作成し、公開鍵暗号を用いてデータDを暗号化し、暗号化データE(pkA,D),…をクラウドストレージ1に保管する場合、他のメンバと秘密鍵skA,…を共有しないため、鍵を配布・共有する必要がない。このため、あるメンバIが秘密鍵skIを漏えいさせたとしても、他のメンバが秘密鍵skIを更新する必要はない。
【0013】
上記(ii)の方法のデメリットとしては、暗号化するメンバが各メンバの公開鍵pkA,…を管理する必要がある点と、あるメンバHをグループに追加した場合、追加したメンバHの公開鍵pkHでデータDを暗号化しなおす必要がある点が挙げられる。例えば、データDを暗号化するメンバに関しては各メンバの鍵管理が煩雑になり、利便性を低下させてしまう。また、追加メンバが生じた場合、暗号化するメンバに関しては、追加メンバHの公開鍵pkHでデータDを暗号化してクラウドストレージ1に保管する必要が生じるため、利便性を低下させてしまう。
【0014】
このように従来の暗号化技術では、利便性とセキュリティが二律背反の関係にある。
【0015】
なお、以下は実施形態に関連する先行技術文献を示している。このうち、特にハイブリッド暗号方式やJava(登録商標)に関する非特許文献1,2については、同様の技術を示す他の文献があると推測される。
【先行技術文献】
【特許文献】
【0016】
【特許文献1】特許第4061288号公報
【非特許文献】
【0017】
【非特許文献1】ハイブリッド暗号方式−−−共通鍵暗号と公開鍵暗号を組み合わせる−情報セキュリティ入門:ITpro、http://itpro.nikkeibp.co.jp/article/COLUMN/20060620/241303/
【非特許文献2】Javaの道:Servlet(10.フィルタ)、http://www.javaroad.jp/servletjsp/sj_servlet10.htm
【非特許文献3】B. Libert and D. Vergnaud, “Unidirectional Chosen-Ciphertext Secure Proxy Re-encryption,” Proc. PKC 2008, LNCS 4939, pp.360-379, Springer, 2008.
【発明の概要】
【発明が解決しようとする課題】
【0018】
以上説明したように、従来の暗号化技術を用いて暗号化データを保管する場合、利便性とセキュリティが二律背反の関係にある。
【0019】
本発明が解決しようとする課題は、利便性とセキュリティを両立し得る再暗号化システム、再暗号化装置及びプログラムを提供することである。
【課題を解決するための手段】
【0020】
実施形態の再暗号化システムは、グループに属するメンバに操作されるクライアント装置に通信可能なファイル共有装置及び再暗号化装置を備えている。
【0021】
前記ファイル共有装置は、ファイル記憶手段を備えている。
【0022】
前記ファイル記憶手段は、前記グループの公開鍵に基づいてファイルが暗号化されてなる第1暗号化ファイルを記憶する。
【0023】
前記ファイル共有装置は、前記メンバを識別するメンバID及び前記第1暗号化ファイルのファイル名を含むファイル要求を前記クライアント装置から受けると、前記ファイル要求内のファイル名に基づいて前記ファイル記憶手段から前記第1暗号化ファイルを取得する。
【0024】
前記ファイル共有装置は、前記取得した第1暗号化ファイル及び前記ファイル要求内のメンバIDを含む再暗号化要求を前記再暗号化装置に送信する。
【0025】
前記ファイル共有装置は、前記メンバIDの公開鍵に基づいて前記ファイルが暗号化されてなる第2暗号化ファイルを前記再暗号化装置から受けると、当該第2暗号化ファイルを前記クライアント装置に送信する。
【0026】
前記再暗号化装置は、再暗号化鍵記憶手段を備えている。
【0027】
前記再暗号化鍵記憶手段は、前記メンバを識別するメンバIDと、前記第1暗号化ファイルを復号せずに前記第2暗号化ファイルに再暗号化するための再暗号化鍵とを関連付けて記憶する。
【0028】
前記再暗号化装置は、前記再暗号化要求を前記ファイル共有装置から受けると、当該再暗号化要求内のメンバIDに基づいて前記再暗号化鍵記憶手段から前記再暗号化鍵を取得する。
【0029】
前記再暗号化装置は、前記取得した再暗号化鍵に基づいて、前記再暗号化要求内の第1暗号化ファイルを前記第2暗号化ファイルに再暗号化する。
【0030】
前記再暗号化装置は、前記再暗号化により得られた第2暗号化ファイルを前記ファイル共有装置に送信する。
【0031】
前記クライアント装置は、前記ファイル共有装置から受けた第2暗号化ファイルを前記メンバの公開鍵に対応する秘密鍵に基づいて復号することにより、前記ファイルを得る。
【図面の簡単な説明】
【0032】
【図1】第1の実施形態に係る再暗号化システムの構成を示す模式図である。
【図2】同実施形態におけるグループ情報記憶部を説明するための模式図である。
【図3】同実施形態における再暗号化鍵記憶部を説明するための模式図である。
【図4】同実施形態におけるファイルアップロードの処理を説明するためのフローチャートである。
【図5】同実施形態におけるファイルアップロードの処理を説明するためのシーケンス図である。
【図6】同実施形態におけるファイルダウンロードの処理を説明するためのフローチャートである。
【図7】同実施形態におけるファイルダウンロードの処理を説明するためのシーケンス図である。
【図8】同実施形態におけるメンバ追加の処理を説明するためのフローチャートである。
【図9】同実施形態におけるメンバ追加の処理を説明するためのシーケンス図である。
【図10】同実施形態におけるメンバ削除の処理を説明するためのフローチャートである。
【図11】同実施形態におけるメンバ削除の処理を説明するためのシーケンス図である。
【図12】従来のクラウドストレージの課題を説明するための模式図である。
【図13】従来の共通鍵で暗号化する場合の課題を説明するための模式図である。
【図14】従来のグループの公開鍵で暗号化する場合の課題を説明するための模式図である。
【図15】従来のメンバ毎の公開鍵で暗号化する場合の課題を説明するための模式図である。
【図16】一般的な再暗号化技術を従来の暗号化技術と比較して示す模式図である。
【図17】一般的な再暗号化鍵の作成過程を説明するための模式図である。
【図18】各実施形態の概要に係る再暗号化システムを説明するための模式図である。
【図19】各実施形態の概要における再暗号化システムによるメンバ追加を説明するための模式図である。
【図20】一般的なハイブリッド方式を説明するための模式図である。
【図21】各実施形態の概要における再暗号化システムにフィルタ機能を適用した場合の利点を説明するための模式図である。
【図22】ハイブリッド方式におけるファイルのフォーマットを示す模式図である。
【図23】ハイブリッド方式を適用した再暗号化システムを説明するための模式図である。
【図24】ハイブリッド方式を適用した再暗号化システムの処理時間を説明するための模式図である。
【発明を実施するための形態】
【0033】
以下、各実施形態について図面を用いて説明するが、その前に各実施形態の前提となる再暗号化技術、ハイブリッド方式及び各実施形態の概要を述べる。
【0034】
利便性とセキュリティを両立させる方法として、再暗号化技術(非特許文献3参照。)が知られている。
【0035】
再暗号化とは、図16(a)及び図16(b)に従来の暗号化技術と比較して示すように、あるメンバの公開鍵pkGr1で暗号化したデータE(pkGr1,D)を、復号することなく、別のメンバAの公開鍵pkAで暗号化したデータE(pkA,D)に変換できる、つまり鍵を付け替えることができる技術である。
【0036】
このような再暗号化処理を行うには再暗号化鍵rkGr1→Aが必要である。再暗号化鍵rkGr1→Aは、図17に示すように、付け替える前の秘密鍵skGr1と、付け替える後の公開鍵pkAから作成される。再暗号化鍵rkGr1→Aは公開しても問題ない。
【0037】
再暗号化技術を用いた場合、図18に示すように、データDとしてのファイルが、暗号化された状態でクラウドストレージ1にアップロード・ダウンロードされる。
【0038】
すなわち、アップロードするメンバは、グループの公開鍵pkGr1でデータDを暗号化し、暗号化データE(pkGr1,D)をクラウドストレージ1に保管する。これにより、グループ内の各メンバの鍵管理が不要になった。
【0039】
グループのメンバAがデータDをダウンロードするとき、サーバ上で暗号化データE(pkGr1,D)を当該メンバA向けの再暗号化鍵rkGr1→Aにより再暗号化し、得られた再暗号化データE(pkA,D)をダウンロードする。
【0040】
このような再暗号化システムのメリットとしては、クラウド上でデータを常に暗号化した状態で保管できる点と、暗号化鍵の管理が容易な点と、メンバ間で鍵を共有しない点が挙げられる。例えば、再暗号化処理はデータDを暗号化した状態で実行できるので、クラウドストレージ1上でデータDが復号されない。また、各メンバは他のメンバと秘密鍵skA,…を共有する必要がない。
【0041】
なお、再暗号化技術を利用したグループのメンバ管理は、図19に示すように、クラウドストレージ1上に再暗号化鍵rkGr1→A,…の追加・削除を行うことになる。追加の場合、グループ管理者が追加するメンバCの公開鍵pkCを取得する。グループ管理者は、グループの秘密鍵skGr1と取得した公開鍵pkCから再暗号化鍵rkGr1→Cを作成し、作成した再暗号化鍵rkGr1→Cをクラウドストレージ1に配置する。このようなメンバ変更がある場合でも、従来とは異なり、暗号化データE(pkGr1,D)をクラウドストレージ1上で暗号化しなおす必要が無いので、利便性が低下しない。
【0042】
一方、再暗号化システムのデメリットとしては、特に見当たらない。
【0043】
なお、公開鍵暗号を用いてデータを暗号化する場合、一般的に、暗号・復号処理が速い共通鍵暗号技術と組み合わせたハイブリッド暗号と呼ばれる方式(以下、ハイブリッド方式という)を用いて高速化が図られている(非特許文献1参照。)。ハイブリッド方式では、図20に示すように、保護対象のデータDを共通鍵暗号方式の共通鍵kで高速に暗号化して暗号化データE(k,D)を作成し、この共通鍵kを公開鍵暗号方式の公開鍵pkで暗号化して暗号化鍵E(pk,k)を作成する。
【0044】
ハイブリッド方式を用いることで、鍵の配布・管理が容易な公開鍵暗号方式のメリットと、処理が高速な共通鍵暗号方式のメリットの両方を活かすことができる。
【0045】
なお、ハイブリッド方式を使用するか否かは別にして、再暗号化技術を用いる構成であれば、クラウドストレージ上で、メンバ間で安全にデータを共有することが可能になる。
【0046】
この再暗号化技術を用いた再暗号化システムを構築する場合、新たに構築するケースと、既存のファイル共有システムに対して再暗号化機能を追加して構築するケースが考えられる。
【0047】
後者のケースの場合、既存のファイル共有システムに対し、再暗号化機能を組み込んで構築する場合、大きな手間とコストが必要になる。
【0048】
既存のファイル共有システムの処理を大きく改修することなく、新たに別の機能と連携する一つの方法として、Javaのフィルタ(非特許文献2参照。)を利用する方法が考えられる。フィルタ機能を利用することで、ファイル共有装置(クラウドストレージ1と呼んでいたものに相当する装置)とそのクライアント間のリクエスト・レスポンス処理に、処理を追加することができる。このフィルタ処理で再暗号化処理を行うことで、既存のファイル共有システムを大きく修正することなく、また再暗号化機能を組み込むことなく、少ない改修で再暗号化機能を追加できる。
【0049】
すなわち、図21に示すように、ファイル共有装置2に追加する構成要素は、再暗号化装置3と連携する処理(例、フィルタ4)のみである。
【0050】
なお、上述した再暗号化システムは、そのまま実施してもよいが、本発明者の検討によれば、データの配布処理を改善した形態の方がより好ましい。そこで、第1の実施形態では、データの配布処理を改善した形態について述べている。
【0051】
補足すると、再暗号化システムにおいて、単純に再暗号化装置3と連携した場合、ファイル共有装置2に保管している暗号化データE(pkGr1,D)を再暗号化する必要があるため、メンバに配布するためには必ず再暗号化処理を待たなければならない。再暗号化処理は既存の公開鍵暗号方式と比べて複雑なため、処理時間がかかる。
【0052】
そこで、図22に示すように、ハイブリッド方式におけるファイルのフォーマットに注目する。このフォーマットによれば、ファイル共有装置2内の暗号化ファイルのうち、再暗号化処理を行う部分は、(公開鍵で暗号化された)共通鍵部分だけになる。そこで、図21に示した暗号化データE(pkGr1,D)に代えて、図23に示すように、(公開鍵pkGr1で暗号化された)共通鍵kからなる暗号化共通鍵E(pkGr1,k)部分と、共通鍵kで暗号化されたデータDからなる暗号化データE(k,D)部分とからなる暗号化ファイルをファイル共有装置2に保管し、暗号化共通鍵E(pkGr1,k)部分のみ再暗号化装置3に送付する。暗号化データE(k,D)部分が、データの大きさに依存するが、暗号化共通鍵E(pkGr1,k)部分と比べて大幅にサイズが大きいことを考えると、ファイル共有装置2と再暗号化装置3の間での通信処理を軽減することができる。
【0053】
また、図24に示すように、再暗号化装置3に暗号化共通鍵E(pkGr1,k)部分を送信する処理に並行して、暗号化データE(k,D)部分をメンバ(クライアント)に送信する。暗号化データE(k,D)部分の大きさやネットワークの速さに依存するが、一般的にダウンロード処理の方が再暗号化処理よりも時間がかかるため、ダウンロード処理の実行中に再暗号化処理が終わる。このため、再暗号化処理によるサーバ処理時間は、クライアント装置へ暗号化データE(k,D)部分を送信している間に完了することが期待できる。
【0054】
以上のように、データの配布処理を改善した形態は、図22乃至図24に示したように、ハイブリッド方式のデータフォーマットに着目し、暗号化共通鍵E(pkGr1,k)部分の再暗号化処理と暗号化データE(k,D)部分の送信を並行して行なうことから、図21に示した形態に比べ、ダウンロード処理全体の時間を短縮できる点で好ましい。
【0055】
以上がデータの配布処理を改善した形態についての補足説明である。続いて、各実施形態について具体的に説明する。なお、第1の実施形態は、データの配布処理を改善した応用形態であり、第2の実施形態は、データの配布処理を改善していない基本形態である。
【0056】
<第1の実施形態>
図1は第1の実施形態に係る再暗号化システムの構成を示す模式図である。この再暗号化システムは、クライアント/サーバ構成であり、グループに属するメンバに操作されるクライアント装置20に通信可能なファイル共有装置10及び再暗号化装置30を備えている。なお、ファイル共有装置10及び再暗号化装置30はサーバ装置であり、各装置10,20,30は、互いにインターネット5を介して通信可能となっている。また、各装置10,20,30は、それぞれハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。これらのことは、後述する変形例でも同様である。
【0057】
ここで、ファイル共有装置10は、制御部11、通信部12、挿入処理部13、ファイル共有部14、ファイル記憶部15、グループ情報記憶部16、公開鍵取得部17、再暗号化鍵登録部18及びグループ管理部19を備えている。
【0058】
制御部11、通信部12、挿入処理部13、ファイル共有部14、公開鍵取得部17、再暗号化鍵登録部18及びグループ管理部19は、例えば図示しないCPUが、後述するファイル共有装置10内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。また、通信部12は、他の装置20,30との間の通信インターフェースである。但し、以下の説明中では、説明の簡単化の観点から、他の装置20,30との間のデータの送受信に通信部12を介する旨の記載を省略している。
【0059】
また、例えば再暗号化装置30に連携する挿入処理部13、公開鍵取得部17及び再暗号化鍵登録部18については、既存のファイル共有システムを大きく修正せずに再暗号化システムを構築したい観点から、Javaのフィルタ機能を利用して実現してもよい。
【0060】
ファイル記憶部15は、図示しないCPUから読出/書込可能な記憶装置として実現可能となっており、グループの公開鍵に基づいて共通鍵が暗号化されてなる第1暗号化共通鍵部分と、当該共通鍵に基づいてデータが暗号化されてなる暗号化データ部分とを含む暗号化ファイルを記憶する。なお、「第1暗号化共通鍵部分」は、「第1暗号化共通鍵」又は「暗号化共通鍵」と読み替えてもよい。また、「暗号化データ部分」は、「暗号化データ」と読み替えてもよい。
【0061】
グループ情報記憶部16は、図示しないCPUから読出/書込可能な記憶装置として実現可能となっており、図2に示すように、グループを識別するグループIDと、当該グループに属するメンバを識別するメンバIDとを関連付けて記憶する。
【0062】
一方、クライアント装置20は、制御部21、通信部22、ファイル記憶部23、秘密鍵記憶部24、暗号処理部25、共通鍵生成部26及び再暗号化鍵作成部27を備えている。
【0063】
制御部21、通信部22、暗号処理部25、共通鍵生成部26及び再暗号化鍵作成部27は、例えば図示しないCPUが、後述するクライアント装置20内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。また、通信部22は、他の装置10,30との間の通信インターフェースである。但し、以下の説明中では、説明の簡単化の観点から、他の装置10,30との間のデータの送受信に通信部22を介する旨の記載を省略している。
【0064】
ファイル記憶部23は、図示しないCPUから読出/書込可能な記憶装置として実現可能となっており、例えば、アップロード対象のファイルを記憶する。
【0065】
秘密鍵記憶部24は、図示しないCPUから読出/書込可能な記憶装置として実現可能となっており、例えば、メンバの公開鍵に対応する秘密鍵を記憶する。また、メンバがグループ管理者の場合、秘密鍵記憶部24は、更に、グループの公開鍵に対応する秘密鍵を記憶する。
【0066】
他方、再暗号化装置30は、制御部31、通信部32、再暗号化処理部33、公開鍵記憶部34及び再暗号化鍵記憶部35を備えている。
【0067】
制御部31、通信部32及び再暗号化処理部33は、例えば図示しないCPUが、後述する再暗号化装置30内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。また、通信部32は、他の装置10,20との間の通信インターフェースである。但し、以下の説明中では、説明の簡単化の観点から、他の装置10,20との間のデータの送受信に通信部32を介する旨の記載を省略している。
【0068】
公開鍵記憶部34は、図示しないCPUから読出/書込可能な記憶装置として実現可能となっており、グループを識別するグループIDと、当該グループの公開鍵と、メンバを識別するメンバIDと、当該メンバの公開鍵とを関連付けて記憶する。
【0069】
再暗号化鍵記憶部35は、図示しないCPUから読出/書込可能な記憶装置として実現可能となっており、図3に示すように、メンバを識別するメンバIDと、第1暗号化共通鍵部分を復号せずに第2暗号化共通鍵部分に再暗号化するための再暗号化鍵とを関連付けて記憶する。なお、「第2暗号化共通鍵部分」は、「第2暗号化共通鍵」又は「再暗号化共通鍵」と読み替えてもよい。
【0070】
次に、以上のように構成された再暗号化システムの動作を図4乃至図11を用いて説明する。なお、以下の説明は、ファイルアップロードの処理(図4及び図5)、ファイルダウンロードの処理(図6及び図7)、メンバ追加の処理(図8及び図9)及びメンバ追加の処理(図10及び図11)の順に行う。
【0071】
始めに、ファイルアップロードの処理の流れを図4及び図5に示す。
【0072】
クライアント装置20では、制御部21がファイル記憶部23からアップロードするファイルを読み込む(ST1)。
【0073】
クライアント装置20では、制御部21が共通鍵生成部26により共通鍵kを生成する。制御部21は、この共通鍵kとステップST1で読み込んだファイルを暗号処理部25に渡す(ST2)。
【0074】
クライアント装置20では、暗号処理部25が、ファイルのデータDを共通鍵kで暗号化し、得られた暗号化データ部分(E(k,D))を制御部21に渡す(ST3)。
【0075】
ステップST4では、以下のステップST4−1〜ST4−7が実行される。
【0076】
クライアント装置20では、制御部21が、アップロードするファイルを公開するグループの公開鍵pkGr1をファイル共有装置10に要求する(ST4−1)。具体的には、グループを識別するグループIDを含む公開鍵要求をファイル共有装置10に送信する。
【0077】
ファイル共有装置10では、制御部11が、この公開鍵要求を公開鍵取得部17に送出する(ST4−2)。
【0078】
ファイル共有装置10では、公開鍵取得部17が、この公開鍵要求を再暗号化装置30に送信する(ST4−3)。
【0079】
再暗号化装置30では、制御部31が、公開鍵要求内のグループIDに基づいて、公開鍵記憶部34からグループの公開鍵pkGr1を取り出す(ST4−4)。
【0080】
再暗号化装置30では、制御部31がグループの公開鍵pkGr1をファイル共有装置10に送信する(ST4−5)。
【0081】
ファイル共有装置10では、公開鍵取得部17が、制御部11にグループの公開鍵pkGr1を渡す(ST4−6)。
【0082】
ファイル共有装置10では、制御部11が、グループの公開鍵pkGr1をクライアント装置20に送信する(ST4−7)。
【0083】
クライアント装置20では、制御部21が、受信したグループの公開鍵pkGr1と、ステップST2で生成した共通鍵kを暗号処理部25に渡す。暗号処理部25は、共通鍵kをグループの公開鍵pkGr1で暗号化し、得られた第1暗号化共通鍵部分(E(pkGr1,k))を制御部21に渡す(ST5)。
【0084】
ステップST6では、以下のステップST6−1〜ST6−3が実行される。
【0085】
クライアント装置20では、制御部21が、ステップST2で渡された暗号化データ部分(E(k,D))と、ステップST5で得られた第1暗号化共通鍵部分(E(pkGr1,k))とを1つのファイル(暗号化ファイル)に纏め、纏めた暗号化ファイルをファイル共有装置10に送信する(ST6−1)。
【0086】
ファイル共有装置10では、制御部11が、暗号化ファイルをファイル共有部14に渡す。ファイル共有部14は、暗号化ファイルをファイル記憶部15に書込む(ST6−2)。
【0087】
ファイル共有装置10では、制御部11が、ファイルアップロードが完了した旨をクライアント装置20に通知する(ST6−3)。
【0088】
クライアント装置20では、制御部21が、この通知を表示部(図示せず)に表示する。
【0089】
以上により、ファイルアップロードの処理が完了する。
【0090】
続いて、ファイルダウンロードの処理の流れを図6及び図7に示す。
【0091】
クライアント装置20では、制御部21が、メンバを識別するメンバID及びグループを識別するグループID(フォルダ内のファイルをグループで共有する場合は、フォルダ名をグループIDとしてもよい)と、暗号化ファイルのファイル名を含むファイル要求をファイル共有装置10に送信する(ST11)。なお、メンバIDについては、クライアント装置20から送付するのがメンバIDではなくてセッションIDである場合、ファイル共有装置10の制御部11でセッションIDとメンバIDとを結び付けて管理し、その管理しているメンバIDを利用して、セッションIDから逆算してメンバIDを導くようにしてもよい。
【0092】
ステップST12では、以下のステップST12−1〜ST12−2が実行される。
【0093】
ファイル共有装置10では、制御部11が、メンバを識別するメンバID及び暗号化ファイルのファイル名を含むファイル要求をクライアント装置20から受けると、ファイル共有部14を介して、ファイル要求内のファイル名に基づいてファイル記憶部15から暗号化ファイルを取得する。具体的には、制御部11は、クライアント装置20から受けたファイル要求をファイル共有部14に送出する。ファイル共有部14は、ファイル記憶部15から暗号化ファイルを取得し、制御部11に渡す(ST12−1)。
【0094】
ファイル共有装置10では、制御部11が、取得した暗号化ファイルを挿入処理部13に渡す[処理の挿入](ST12−2)。
【0095】
ファイル共有装置10では、処理挿入部13が、渡された暗号化ファイルを、第1暗号化共通鍵部分(E(pkGr1,k))と暗号化データ部分(E(k,D))に分離する(ST13)。
【0096】
ステップST14’及びST14は、並列に実行される。ステップST14’では、以下のステップST14’−1〜ST14’−2が実行される。
【0097】
ファイル共有装置10では、挿入処理部13が、ステップST14の処理と並行して、暗号化データ部分(E(k,D))を制御部11に渡す(ST14’−1)。
【0098】
ファイル共有装置10では、制御部11が、クライアント装置20に暗号化データ部分(E(k,D))を送信する(ST14’−2)。
【0099】
ステップST14では、以下のステップST14−1〜ST14−5が実行される。
【0100】
ファイル共有装置10では、処理挿入部13が、分離された暗号化データ部分(E(k,D))をクライアント装置20に送信する処理と並行して、第1暗号化共通鍵部分(E(pkGr1,k))及びファイル要求内のメンバID及びグループIDを含む再暗号化要求を再暗号化装置30に送信する(ST14−1)。
【0101】
再暗号化装置30では、再暗号化要求をファイル共有装置10から受けると、当該再暗号化要求内のメンバID(例、A)とグループID(例、Gr1)に基づいて再暗号化鍵記憶部35から再暗号化鍵rkGr1→Aを取得し、当該取得した再暗号化鍵rkGr1→Aに基づいて、再暗号化要求内の第1暗号化共通鍵部分(E(pkGr1,k))を第2暗号化共通鍵部分(E(pkA,k))に再暗号化する。
【0102】
具体的には、制御部31は、再暗号化要求内の第1暗号化共通鍵部分(E(pkGr1,k)及びメンバID(例、A)及びグループID(例、Gr1)を再暗号化処理部33に渡す。再暗号化処理部33は、このメンバIDとグループIDに基づいて再暗号化鍵記憶部35から再暗号化鍵rkGr1→Aを取得し、第1暗号化共通鍵部分(E(pkGr1,k))を第2暗号化共通鍵部分(E(pkA,k)に再暗号化し、得られた第2暗号化共通鍵部分(E(pkA,k))を制御部31に渡す(ST14−2)。
【0103】
再暗号化装置30では、制御部31が、再暗号化により得られた第2暗号化共通鍵部分(E(pkA,k))をファイル共有装置10に送信する(ST14−3)。
【0104】
ファイル共有装置10では、挿入処理部13が、ステップST14’−2の送信処理が終わっていなければ終わるまで待って、制御部11に第2暗号化共通鍵部分(E(pkA,k))を渡す。ステップST14’−2の送信処理が終わっていればすぐ渡す(ST14−4)。
【0105】
ファイル共有装置10では、制御部11が、第2暗号化共通鍵部分(E(pkA,k))をクライアント装置20に送信する[挿入した処理の終了](ST14−5)。
【0106】
ファイル共有装置10からクライアント装置20へのレスポンスはステップST14−5とステップST14’−2との2回送信しているが、これは1つの通信のレスポンスとして2段階でデータを送付している。
【0107】
クライアント装置20は、ファイル共有装置10から受けた第2暗号化共通鍵部分(E(pkA,k))をメンバの公開鍵pkAに対応する秘密鍵skAに基づいて復号することによって共通鍵kを得ることと、ファイル共有装置10から受けた暗号化データ部分(E(k,D))を、当該得られた共通鍵kに基づいて復号することとにより、ファイルのデータDを得る。
【0108】
具体的には、クライアント装置20では、制御部21が、秘密鍵記憶部24から秘密鍵skAを取得し、秘密鍵skAと第2暗号化共通鍵部分(E(pkA,k))を暗号処理部25に渡す。暗号処理部25は、第2暗号化共通鍵部分(E(pkA,k))を秘密鍵skAで復号し、得られた共通鍵kを制御部21に渡す(ST15)。
【0109】
クライアント装置20では、制御部21が、ステップST14’で受信した第2暗号化データ部分(E(k,D))とステップST15で得た共通鍵kを暗号処理部25に渡す。暗号処理部25は、第2暗号化データ部分を共通鍵kで復号し、ファイルの平文のデータDを得る。データDのファイルを制御部21に渡す(ST16)。
【0110】
以上により、ファイルダウンロードの処理が完了する。
【0111】
次に、グループにメンバを追加する処理の流れを図8及び図9に示す。ただし、ここでクライアント装置20は、グループ管理者が利用しているものとする。
【0112】
クライアント装置20では、制御部21が、追加したいメンバを識別するメンバID(例、C)を含むメンバ追加リクエストをファイル共有装置10に送信する(ST21)。
【0113】
ファイル共有装置10では、制御部11が、メンバ追加リクエストを受けると、挿入処理部13を呼出す[処理の挿入](ST22)。
【0114】
ファイル共有装置10では、挿入処理部13が、メンバ追加リクエスト内のメンバID(C)に基づいて、再暗号化装置30にメンバの公開鍵pkCを要求する(ST23)。
【0115】
再暗号化装置30では、制御部31が、要求されたメンバID(C)に関連付けられた公開鍵pkCを公開鍵記憶部34から読み込む(ST24)。
【0116】
再暗号化装置30では、制御部31が、ファイル共有装置10の挿入処理部13にメンバの公開鍵pkC及びメンバID(C)を返す(ST25)。
【0117】
ファイル共有装置10では、挿入処理部13が、制御部11に処理を戻す(取得したメンバの公開鍵pkC及びメンバID(C)も渡す)[挿入した処理の終了](ST26)。
【0118】
ファイル共有装置10では、制御部11が、メンバの公開鍵pkC及びメンバID(C)をクライアント装置20に送信する(ST27)。
【0119】
本来、既成の機能部は、メンバ追加リクエストの受信時にステップST36のメンバ追加処理を行うが、挿入処理部13の機能により行わないようにする。
【0120】
クライアント装置20では、制御部21が、秘密鍵記憶部24からグループの秘密鍵skGr1を読み込む(ST28)。
【0121】
クライアント装置20では、制御部21が、メンバの公開鍵pkCとグループの秘密鍵skGr1を再暗号化鍵作成部27に渡す。再暗号化鍵作成部27は、メンバの公開鍵pkCとグループの秘密鍵skGr1から、メンバの再暗号化鍵rkGr1→Cを作成し、メンバの再暗号化鍵rkGr1→C及びメンバID(C)を制御部21に渡す(ST29)。
【0122】
クライアント装置20では、制御部21が、メンバの再暗号化鍵rkGr1→C及びメンバID(C)及びグループID(Gr1)をファイル共有装置10に送信する(ST30)。
【0123】
ファイル共有装置10では、制御部11が、再暗号化鍵登録部18にメンバの再暗号化鍵rkGr1→C及びメンバID(C)とグループID(Gr1)を渡す(ST31)。
【0124】
ファイル共有装置10では、処理挿入部13が、再暗号化装置30に再暗号化鍵rkGr1→C及びメンバID(C)を渡す(ST32)。
【0125】
再暗号化装置30では、制御部31が、再暗号化鍵記憶部35に再暗号化鍵rkGr1→C及びメンバID(C)を関連付けて書込む(ST33)。
【0126】
再暗号化装置30では、制御部31が、メンバID(C)とグループID(Gr1)に関連付けて再暗号化鍵rkGr1→Cを登録した旨をファイル共有装置10に通知する(ST34)。
【0127】
ファイル共有装置10では、再暗号化鍵登録部18が、この通知を受けると、メンバID(C)とグループID(Gr1)を含むメンバ追加依頼をグループ管理部19に送出する(ST35)。
【0128】
ファイル共有装置10では、グループ管理部19が、メンバ追加依頼を受けると、グループ情報記憶部16のグループ情報にメンバID(C)とグループID(Gr1)を追加する(ST36)。
【0129】
なお、再暗号化鍵の登録リクエストでメンバ追加処理を行う理由は、ファイル共有装置10のグループ情報記憶部16と、再暗号化装置30の再暗号化鍵記憶部35との間に不整合が起こらないようにするためである。
【0130】
ファイル共有装置10では、ファイル共有部14が、メンバ追加処理が完了した旨を再暗号化鍵登録部18に通知する(ST37)。
【0131】
ファイル共有装置10では、暗号化鍵登録部18が、メンバID(C)とグループID(Gr1)に対応する再暗号化鍵rkGr1→Cを登録した旨を制御部11に通知する(ST38)。
【0132】
ファイル共有装置10では、制御部11が、メンバID(C)とグループID(Gr1)に対応する再暗号化鍵rkGr1→Cを登録した旨をクライアント装置20に通知する(ST39)。
【0133】
クライアント装置20では、制御部21が、この通知を表示部(図示せず)に表示する。
【0134】
以上により、メンバ追加の処理が完了する。
【0135】
続いて、グループにメンバを削除する処理の流れを図10及び図11に示す。ただし、ここでクライアント装置20はグループ管理者が利用しているものとする。
【0136】
クライアント装置20では、制御部21が、削除したいメンバを識別するメンバID(例、C)及びそのメンバを削除するグループを識別するグループID(例、Gr1)を含むメンバ削除リクエストをファイル共有装置10に送信する(ST41)。
【0137】
ファイル共有装置10では、制御部11が、メンバ削除リクエストを受けると、処理挿入部13を呼出す[処理の挿入](ST42)。
【0138】
ファイル共有装置10では、処理挿入部13が、メンバ削除リクエスト内のメンバID(C)とグループID(Gr1)を含む再暗号化鍵削除リクエストを再暗号化装置30に送信する(ST43)。
【0139】
再暗号化装置30では、制御部31が、再暗号化鍵削除リクエスト内のメンバID(C)に基づいて、当該メンバID(C)とグループID(Gr1)に関連付けられた再暗号化鍵rkGr1→Cを再暗号化鍵記憶部35から削除する(ST44)。
【0140】
再暗号化装置30では、制御部31が、メンバID(C)とグループID(Gr1)に関連付けられた再暗号化鍵rkGr1→Cを削除した旨をファイル共有装置10に通知する(ST45)。
【0141】
ファイル共有装置10では、処理挿入部13が、この通知を受けると、制御部11に処理を戻す[処理の挿入終了](ST46)。
【0142】
ファイル共有装置10では、制御部11が、この通知に基づいて、メンバID(C)とグループID(Gr1)を含むメンバ削除依頼をグループ管理部19に送出する。グループ管理部19は、メンバ削除依頼を受けると、グループ情報記憶部16のグループ情報からメンバID(C)とグループID(Gr1)が関連付けられている行を削除する(ST47)。
【0143】
ファイル共有装置10では、制御部11が、メンバ削除処理が完了した旨をクライアント装置20に通知する(ST48)。
【0144】
クライアント装置20では、制御部21が、この通知を表示部(図示せず)に表示する。
【0145】
以上により、メンバ削除の処理が完了する。
【0146】
上述したように本実施形態によれば、ファイル共有装置10が、クライアント装置20から受けたファイル要求に基づいてファイル記憶部15から暗号化ファイルを取得し、当該暗号化ファイルを第1暗号化共通鍵部分と暗号化データ部分に分離し、当該暗号化データ部分をクライアント装置20に送信する処理と並行して、当該第1暗号化共通鍵部分及びメンバIDを含む再暗号化要求を再暗号化装置30に送信し、再暗号化装置30が、再暗号化要求に基づいて再暗号化鍵記憶部35から再暗号化鍵を取得し、当該再暗号化鍵に基づいて再暗号化要求内の第1暗号化共通鍵部分を第2暗号化共通鍵部分に再暗号化し、当該第2暗号化共通鍵部分をファイル共有装置10を介してクライアント装置20に送信する構成により、クライアント装置20が、第2暗号化共通鍵部分をメンバの公開鍵に対応する秘密鍵に基づいて復号することによって共通鍵を得ると共に、暗号化データ部分を、当該得られた共通鍵に基づいて復号することにより、データを得るようにしたので、利便性とセキュリティを両立させることができる。
【0147】
また、本実施形態によれば、ファイル共有装置10においては、既存のファイル共有システムの機能を提供している部分を変更せずに、フィルタ機能で再暗号化装置30と連携することができるため、改修コストを削減することができる。
【0148】
また、ファイル共有装置10がハイブリッド暗号のデータを切り離して鍵部分だけを再暗号化装置に送付することで、通信時間を短縮することができる。データ部分の送信と並行して再暗号化処理を行うことによって、再暗号処理による処理時間の増大を軽減することができる。別途、再暗号化装置30を用意しているので、既存のファイル共有装置にCPU負荷をかけずに再暗号化処理を追加することができる。
【0149】
続いて、本実施形態と特許文献1との相違について補足的に説明する。
【0150】
本実施形態では、図23に示したようにハイブリッド方式での共通鍵部分とデータ部分を切り離し、データ部分をクライアント装置に送付する間に、共通鍵部分の再暗号化処理を行うことで、再暗号化処理に費やす時間によるサービスレベル低下の軽減を図っている。
【0151】
これに対し、特許文献1記載の技術は、クライアント端末でSOAPメッセージに対して暗号化処理を行う際に、ボディ部とヘッダ部に分割し、ボディ部をゲートウェイに送信すると共にボディ部に対して暗号化処理を行い、ヘッダ部を作成する。そして、特許文献1記載の技術は、ボディ部の送信後にヘッダ部をゲートウェイに送信し、ゲートウェイで本来のSOAPメッセージを作成するものである。ここで、特許文献1記載の技術は、クライアント端末の処理のみに注目するとデータの送信と暗号化処理を並行して行っていることから、本実施形態に似た内容にも見えるが、以下の点で本実施形態とは構成・機能が異なっている。
【0152】
(1)特許文献1記載の技術においては、ボディ部とヘッダ部が揃わないとゲートウェイから本来のサーバへ送信できないため、クライアント端末での暗号化処理とデータ送信を並列に行うことでクライアント端末全体での処理を軽減している。しかしながら、特許文献1記載の技術では、ゲートウェイからサーバに送るデータ送信時間が削減できていない点と、SOAPメッセージ構築の時間が削減できていない点と、ゲートウェイ装置を別途発明の内容で構築しなければならない点が異なる。また、特許文献1記載の技術でシステム全体の負荷が軽減できるか否かは、暗号化処理を実行するクライアント端末の性能に依存する。
【0153】
(2)特許文献1記載の技術においては、暗号化処理をクライアント端末でしか実行できず、ゲートウェイに委託することができない。そのため、特許文献1記載の技術は、クライアント端末での暗号化処理の負荷を軽減できない。
【0154】
上記(1)(2)に対し、本実施形態では、メッセージ構築に該当する処理が存在しないこと、そのためゲートウェイの機能に該当する処理が不要なこと、および暗号化処理を外部に委託することが可能になる点と、システム全体の負荷が軽減できる点で優れている。また、本実施形態は、メッセージ構築が不要な点や暗号化処理の委託ができることから、特許文献1記載の技術とは構成・機能が異なっている。
【0155】
<第2の実施形態>
次に、第2の実施形態に係る再暗号化システムについて図1を参照して説明する。
第2の実施形態は、図18に示した如き、ハイブリッド方式を用いない基本形態であり、ファイル全体を暗号化及び再暗号化する構成となっている。
【0156】
この再暗号化システムは、図1を参照して示すように、前述同様に、クライアント/サーバ構成であり、グループに属するメンバに操作されるクライアント装置20に通信可能なファイル共有装置10及び再暗号化装置30を備えている。但し、共通鍵kを用いないため、クライアント装置20の共通鍵生成部26は省略される。クライアント装置20の他の構成は、以下の動作説明中に示す通りである。
【0157】
ここで、ファイル共有装置10のファイル記憶部15は、グループの公開鍵pkGr1に基づいてファイル(D)が暗号化されてなる第1暗号化ファイルE(pkGr1,D)を記憶する。また、ファイル共有装置10は、例えばファイルダウンロードに関し、以下の各機能(f10-1)〜(f10-1)をもっている。
【0158】
(f10-1) 制御部11及び通信部12により、メンバを識別するメンバID(例、A)及びとグループID(例、Gr1)と、第1暗号化ファイルE(pkGr1,D)のファイル名を含むファイル要求をクライアント装置20から受けると、制御部11及びファイル共有部14により、当該ファイル要求内のファイル名に基づいてファイル記憶部15から第1暗号化ファイルE(pkGr1,D)を取得する機能。
【0159】
(f10-2) 制御部11、通信部12及び挿入処理部13により、当該取得した第1暗号化ファイルE(pkGr1,D)及び当該ファイル要求内のメンバID(A)とグループID(Gr1)を含む再暗号化要求を再暗号化装置30に送信する機能。
【0160】
(f10-3) 制御部11、通信部12及び挿入処理部13により、メンバID(A)とグループID(Gr1)の公開鍵pkAに基づいてファイルが暗号化されてなる第2暗号化ファイルE(pkA,D)を再暗号化装置30から受けると、制御部11及び通信部12により、当該第2暗号化ファイルE(pkA,D)をクライアント装置に送信する。
【0161】
ファイル共有装置10の他の構成(ファイルアップロード・メンバ追加処理・メンバ削除処理に関する構成)は、以下の動作説明中に示す通りである。
【0162】
また、再暗号化装置30の再暗号化鍵記憶部35は、メンバを識別するメンバID(A,B,…)及びグループを識別するグループID(Gr1,Gr2,…)と、第1暗号化ファイルを復号せずに第2暗号化ファイルに再暗号化するための再暗号化鍵(rkGr1→A,rkGr1→B,…)とを関連付けて記憶する。また、再暗号化装置30は、例えばファイルダウンロードに関し、以下の各機能(f30-1)〜(f30-3)をもっている。
【0163】
(f30-1) 制御部31及び通信部32により、再暗号化要求をファイル共有装置10から受けると、制御部31及び再暗号化処理部33により、当該再暗号化要求内のメンバID(例、A)とグループID(例、Gr1)に基づいて再暗号化鍵記憶部35から再暗号化鍵rkGr1→Aを取得する機能。
【0164】
(f30-2) 再暗号化処理部33により、当該取得した再暗号化鍵rkGr1→Aに基づいて、再暗号化要求内の第1暗号化ファイルE(pkGr1,D)を第2暗号化ファイルE(pkA,D)に再暗号化する機能。
【0165】
(f30-3) 制御部31及び通信部32により、当該再暗号化により得られた第2暗号化ファイルE(pkA,D)をファイル共有装置10に送信する機能。
【0166】
再暗号化装置30の他の構成(ファイルアップロード・メンバ追加処理・メンバ削除処理に関する構成)は、以下の動作説明中に示す通りである。
【0167】
次に、以上のように構成された再暗号化システムの動作について説明する。
【0168】
始めに、ファイルアップロードの処理の流れを述べる。
【0169】
クライアント装置20では、制御部21がファイル記憶部23からアップロードするファイル(D)を読み込む。
【0170】
クライアント装置20では、制御部21が、アップロードするファイルを公開するグループの公開鍵pkGr1をファイル共有装置10に要求する。具体的には、グループを識別するグループID(例、Gr1)を含む公開鍵要求をファイル共有装置10に送信する。
【0171】
ファイル共有装置10では、制御部11が、この公開鍵要求を公開鍵取得部17に送出する。
【0172】
ファイル共有装置10では、公開鍵取得部17が、この公開鍵要求を再暗号化装置30に送信する。
【0173】
再暗号化装置30では、制御部31が、公開鍵要求内のグループID(例、Gr1)に基づいて、公開鍵記憶部34からグループの公開鍵pkGr1を取り出す。
【0174】
再暗号化装置30では、制御部31がグループの公開鍵pkGr1をファイル共有装置10に送信する。
【0175】
ファイル共有装置10では、公開鍵取得部17が、制御部11にグループの公開鍵pkGr1を渡す。
【0176】
ファイル共有装置10では、制御部11が、グループの公開鍵pkGr1をクライアント装置20に送信する。
【0177】
クライアント装置20では、制御部21が、受信したグループの公開鍵pkGr1と、アップロードするファイルとを暗号処理部25に渡す。暗号処理部25は、ファイル(D)をグループの公開鍵pkGr1で暗号化し、得られた第1暗号化ファイルE(pkGr1,D)を制御部21に渡す。
【0178】
クライアント装置20では、制御部21が、第1暗号化ファイルE(pkGr1,D)をファイル共有装置10に送信する。
【0179】
ファイル共有装置10では、制御部11が、第1暗号化ファイルE(pkGr1,D)をファイル共有部14に渡す。ファイル共有部14は、第1暗号化ファイルE(pkGr1,D)をファイル記憶部15に書込む。
【0180】
ファイル共有装置10では、制御部11が、ファイルアップロードが完了した旨をクライアント装置20に通知する。
【0181】
クライアント装置20では、制御部21が、この通知を表示部(図示せず)に表示する。
【0182】
以上により、ファイルアップロードの処理が完了する。
【0183】
続いて、ファイルダウンロードの処理の流れを説明する。
【0184】
クライアント装置20では、制御部21が、メンバを識別するメンバID(例、A)及びグループを識別するグループID(例、Gr1)と、第1暗号化ファイルE(pkGr1,D)のファイル名を含むファイル要求をファイル共有装置10に送信する。
【0185】
ファイル共有装置10では、制御部11が、ファイル要求をクライアント装置20から受けると、ファイル共有部14を介して、ファイル要求内のファイル名に基づいてファイル記憶部15から第1暗号化ファイルE(pkGr1,D)を取得する。具体的には、制御部11は、クライアント装置20から受けたファイル要求をファイル共有部14に送出する。ファイル共有部14は、ファイル記憶部15から第1暗号化ファイルE(pkGr1,D)を取得し、制御部11に渡す。
【0186】
ファイル共有装置10では、制御部11が、取得した第1暗号化ファイルE(pkGr1,D)を挿入処理部13に渡す[処理の挿入]。
【0187】
ファイル共有装置10では、処理挿入部13が、渡された第1暗号化ファイルE(pkGr1,D)及びファイル要求内のメンバIDを含む再暗号化要求を再暗号化装置30に送信する。
【0188】
再暗号化装置30では、再暗号化要求をファイル共有装置10から受けると、当該再暗号化要求内のメンバID(例、A)とグループID(例、Gr1)に基づいて再暗号化鍵記憶部35から再暗号化鍵rkGr1→Aを取得し、当該取得した再暗号化鍵rkGr1→Aに基づいて、再暗号化要求内の第1暗号化ファイル(E(pkGr1,D)を第2暗号化ファイル(E(pkA,D)に再暗号化する。
【0189】
具体的には、制御部31は、再暗号化要求内の第1暗号化ファイルE(pkGr1,D)及びメンバID(例、A)とグループID(例、Gr1)を再暗号化処理部33に渡す。再暗号化処理部33は、このメンバIDに基づいて再暗号化鍵記憶部34から再暗号化鍵rkGr1→Aを取得し、第1暗号化ファイルE(pkGr1,D)を第2暗号化ファイルE(pkA,D)に再暗号化し、得られた第2暗号化ファイルE(pkA,D)を制御部31に渡す。
【0190】
再暗号化装置30では、制御部31が、再暗号化により得られた第2暗号化ファイルE(pkA,D)をファイル共有装置10に送信する。
【0191】
ファイル共有装置10では、挿入処理部13が、制御部11に第2暗号化ファイルE(pkA,D)を渡す。
【0192】
ファイル共有装置10では、制御部11が、第2暗号化ファイルE(pkA,D)をクライアント装置20に送信する[挿入した処理の終了]。
【0193】
クライアント装置20は、ファイル共有装置10から受けた第2暗号化ファイルE(pkA,D)をメンバの公開鍵pkAに対応する秘密鍵skAに基づいて復号することにより、ファイル(D)を得る。
【0194】
具体的には、クライアント装置20では、制御部21が、秘密鍵記憶部24から秘密鍵skAを取得し、秘密鍵skAと第2暗号化ファイルE(pkA,D)を暗号処理部25に渡す。暗号処理部25は、第2暗号化ファイルE(pkA,D)を秘密鍵skAで復号し、得られたファイル(D)を制御部21に渡す。
【0195】
以上により、ファイルダウンロードの処理が完了する。
【0196】
なお、メンバ追加処理及びメンバ削除処理は、第1の実施形態と同様である。
【0197】
上述したように本実施形態によれば、ファイル共有装置10が、クライアント装置20から受けたファイル要求に基づいてファイル記憶部15から第1暗号化ファイルを取得し、当該第1暗号化ファイルを含む再暗号化要求を再暗号化装置30に送信し、再暗号化装置30が、再暗号化鍵に基づいて再暗号化鍵記憶部35から再暗号化鍵を取得し、当該再暗号化鍵に基づいて再暗号化要求内の第1暗号化ファイルを第2暗号化ファイルに再暗号化し、当該第2暗号化ファイルをファイル共有装置10を介してクライアント装置20に送信し、クライアント装置20が、第2暗号化ファイルをメンバの公開鍵に対応する秘密鍵に基づいて復号することによってファイルを得る構成により、第1暗号化ファイル全体を再暗号化することから、第1の実施形態に比べて処理時間がかかる点を除き、第1の実施形態と同様の効果を得ることができる。
【0198】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0199】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0200】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
【0201】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0202】
また、記憶媒体は1つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0203】
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0204】
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0205】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0206】
10…ファイル共有装置、11,21,31…制御部、12,22,32…通信部、13…挿入処理部、14…ファイル共有部、15,23…ファイル記憶部、16…グループ情報記憶部、17…公開鍵取得部、18…再暗号化鍵登録部、19…グループ管理部、20…クライアント装置、24…秘密鍵記憶部、25…暗号処理部、26…共通鍵生成部、27…再暗号化鍵作成部、30…再暗号化装置、33…再暗号化処理部、34…公開鍵記憶部、35…再暗号化鍵記憶部。

【特許請求の範囲】
【請求項1】
グループに属するメンバに操作されるクライアント装置に通信可能なファイル共有装置及び再暗号化装置を備えた再暗号化システムであって、
前記ファイル共有装置は、
前記グループの公開鍵に基づいてファイルが暗号化されてなる第1暗号化ファイルを記憶するファイル記憶手段と、
前記メンバを識別するメンバID及び前記第1暗号化ファイルのファイル名を含むファイル要求を前記クライアント装置から受けると、前記ファイル要求内のファイル名に基づいて前記ファイル記憶手段から前記第1暗号化ファイルを取得する手段と、
前記取得した第1暗号化ファイル及び前記ファイル要求内のメンバIDを含む再暗号化要求を前記再暗号化装置に送信する手段と、
前記メンバIDの公開鍵に基づいて前記ファイルが暗号化されてなる第2暗号化ファイルを前記再暗号化装置から受けると、当該第2暗号化ファイルを前記クライアント装置に送信する手段と
を備え、
前記再暗号化装置は、
前記メンバを識別するメンバIDと、前記第1暗号化ファイルを復号せずに前記第2暗号化ファイルに再暗号化するための再暗号化鍵とを関連付けて記憶する再暗号化鍵記憶手段と、
前記再暗号化要求を前記ファイル共有装置から受けると、当該再暗号化要求内のメンバIDに基づいて前記再暗号化鍵記憶手段から前記再暗号化鍵を取得する手段と、
前記取得した再暗号化鍵に基づいて、前記再暗号化要求内の第1暗号化ファイルを前記第2暗号化ファイルに再暗号化する手段と、
前記再暗号化により得られた第2暗号化ファイルを前記ファイル共有装置に送信する手段と
を備え、
前記クライアント装置は、前記ファイル共有装置から受けた第2暗号化ファイルを前記メンバの公開鍵に対応する秘密鍵に基づいて復号することにより、前記ファイルを得ることを特徴とする再暗号化システム。
【請求項2】
グループに属するメンバに操作されるクライアント装置に通信可能なファイル共有装置及び再暗号化装置を備えた再暗号化システムであって、
前記ファイル共有装置は、
前記グループの公開鍵に基づいて共通鍵が暗号化されてなる第1暗号化共通鍵部分と、前記共通鍵に基づいてデータが暗号化されてなる暗号化データ部分とを含む暗号化ファイルを記憶するファイル記憶手段と、
前記メンバを識別するメンバID及び前記暗号化ファイルのファイル名を含むファイル要求を前記クライアント装置から受けると、前記ファイル要求内のファイル名に基づいて前記ファイル記憶手段から前記暗号化ファイルを取得する手段と、
前記取得した暗号化ファイルを前記第1暗号化共通鍵部分と前記暗号化データ部分に分離する手段と、
前記分離された暗号化データ部分を前記クライアント装置に送信する処理と並行して、前記第1暗号化共通鍵部分及び前記ファイル要求内のメンバIDを含む再暗号化要求を前記再暗号化装置に送信する手段と、
前記メンバIDの公開鍵に基づいて前記共通鍵が暗号化されてなる第2暗号化共通鍵部分を前記再暗号化装置から受けると、当該第2暗号化共通鍵部分を前記クライアント装置に送信する手段と
を備え、
前記再暗号化装置は、
前記メンバを識別するメンバIDと、前記第1暗号化共通鍵部分を復号せずに前記第2暗号化共通鍵部分に再暗号化するための再暗号化鍵とを関連付けて記憶する再暗号化鍵記憶手段と、
前記再暗号化要求を前記ファイル共有装置から受けると、当該再暗号化要求内のメンバIDに基づいて前記再暗号化鍵記憶手段から前記再暗号化鍵を取得する手段と、
前記取得した再暗号化鍵に基づいて、前記再暗号化要求内の第1暗号化共通鍵部分を前記第2暗号化共通鍵部分に再暗号化する手段と、
前記再暗号化により得られた第2暗号化共通鍵部分を前記ファイル共有装置に送信する手段と
を備え、
前記クライアント装置は、前記ファイル共有装置から受けた第2暗号化共通鍵部分を前記メンバの公開鍵に対応する秘密鍵に基づいて復号することによって前記共通鍵を得ることと、前記ファイル共有装置から受けた暗号化データ部分を、当該得られた共通鍵に基づいて復号することとにより、前記データを得ることを特徴とする再暗号化システム。
【請求項3】
グループに属するメンバに操作されるクライアント装置に通信可能なファイル共有装置であって、前記グループの公開鍵に基づいてファイルが暗号化されてなる第1暗号化ファイルをメモリに記憶し、前記メンバを識別するメンバID及び前記第1暗号化ファイルのファイル名を含むファイル要求を前記クライアント装置から受けると、前記ファイル要求内のファイル名に基づいて前記メモリから前記第1暗号化ファイルを取得し、前記取得した第1暗号化ファイル及び前記ファイル要求内のメンバIDを含む再暗号化要求を再暗号化装置に送信し、前記メンバIDの公開鍵に基づいて前記ファイルが暗号化されてなる第2暗号化ファイルを前記再暗号化装置から受けると、当該第2暗号化ファイルを前記クライアント装置に送信する前記ファイル共有装置に通信可能な前記再暗号化装置であって、
前記メンバを識別するメンバIDと、前記第1暗号化ファイルを復号せずに前記第2暗号化ファイルに再暗号化するための再暗号化鍵とを関連付けて記憶する再暗号化鍵記憶手段と、
前記再暗号化要求を前記ファイル共有装置から受けると、当該再暗号化要求内のメンバIDに基づいて前記再暗号化鍵記憶手段から前記再暗号化鍵を取得する手段と、
前記取得した再暗号化鍵に基づいて、前記再暗号化要求内の第1暗号化ファイルを前記第2暗号化ファイルに再暗号化する手段と、
前記再暗号化により得られた第2暗号化ファイルを前記ファイル共有装置に送信する手段と
を備えており、
前記クライアント装置は、前記ファイル共有装置から受けた第2暗号化ファイルを前記メンバの公開鍵に対応する秘密鍵に基づいて復号することにより、前記ファイルを得ることを特徴とする再暗号化装置。
【請求項4】
グループに属するメンバに操作されるクライアント装置に通信可能なファイル共有装置であって、前記グループの公開鍵に基づいて共通鍵が暗号化されてなる第1暗号化共通鍵部分と、前記共通鍵に基づいてデータが暗号化されてなる暗号化データ部分とを含む暗号化ファイルをメモリに記憶し、前記メンバを識別するメンバID及び前記暗号化ファイルのファイル名を含むファイル要求を前記クライアント装置から受けると、前記ファイル要求内のファイル名に基づいて前記ファイル記憶手段から前記暗号化ファイルを取得し、前記取得した暗号化ファイルを前記第1暗号化共通鍵部分と前記暗号化データ部分に分離し、前記分離した暗号化データ部分を前記クライアント装置に送信する処理と並行して、前記第1暗号化共通鍵部分及び前記ファイル要求内のメンバIDを含む再暗号化要求を前記再暗号化装置に送信し、前記メンバIDの公開鍵に基づいて前記共通鍵が暗号化されてなる第2暗号化共通鍵部分を前記再暗号化装置から受けると、当該第2暗号化共通鍵部分を前記クライアント装置に送信する前記ファイル共有装置に通信可能な前記再暗号化装置であって、
前記メンバを識別するメンバIDと、前記第1暗号化共通鍵部分を復号せずに前記第2暗号化共通鍵部分に再暗号化するための再暗号化鍵とを関連付けて記憶する再暗号化鍵記憶手段と、
前記再暗号化要求を前記ファイル共有装置から受けると、当該再暗号化要求内のメンバIDに基づいて前記再暗号化鍵記憶手段から前記再暗号化鍵を取得する手段と、
前記取得した再暗号化鍵に基づいて、前記再暗号化要求内の第1暗号化共通鍵部分を前記第2暗号化共通鍵部分に再暗号化する手段と、
前記再暗号化により得られた第2暗号化共通鍵部分を前記ファイル共有装置に送信する手段と
を備えており、
前記クライアント装置は、前記ファイル共有装置から受けた第2暗号化共通鍵部分を前記メンバの公開鍵に対応する秘密鍵に基づいて復号することによって前記共通鍵を得ることと、前記ファイル共有装置から受けた暗号化データ部分を、当該得られた共通鍵に基づいて復号することとにより、前記データを得ることを特徴とする再暗号化装置。
【請求項5】
グループに属するメンバに操作されるクライアント装置に通信可能なファイル共有装置であって、前記グループの公開鍵に基づいてファイルが暗号化されてなる第1暗号化ファイルをメモリに記憶し、前記メンバを識別するメンバID及び前記第1暗号化ファイルのファイル名を含むファイル要求を前記クライアント装置から受けると、前記ファイル要求内のファイル名に基づいて前記メモリから前記第1暗号化ファイルを取得し、前記取得した第1暗号化ファイル及び前記ファイル要求内のメンバIDを含む再暗号化要求を再暗号化装置に送信し、前記メンバIDの公開鍵に基づいて前記ファイルが暗号化されてなる第2暗号化ファイルを前記再暗号化装置から受けると、当該第2暗号化ファイルを前記クライアント装置に送信する前記ファイル共有装置に通信可能であり、且つ再暗号化鍵記憶手段を備えた前記再暗号化装置に用いられるプログラムであって、
前記再暗号化鍵装置を、
前記メンバを識別するメンバIDと、前記第1暗号化ファイルを復号せずに前記第2暗号化ファイルに再暗号化するための再暗号化鍵とを関連付けて再暗号化鍵記憶手段に書込む手段、
前記再暗号化要求を前記ファイル共有装置から受けると、当該再暗号化要求内のメンバIDに基づいて前記再暗号化鍵記憶手段から前記再暗号化鍵を取得する手段、
前記取得した再暗号化鍵に基づいて、前記再暗号化要求内の第1暗号化ファイルを前記第2暗号化ファイルに再暗号化する手段、
前記再暗号化により得られた第2暗号化ファイルを前記ファイル共有装置に送信する手段、
として機能させ、
前記クライアント装置は、前記ファイル共有装置から受けた第2暗号化ファイルを前記メンバの公開鍵に対応する秘密鍵に基づいて復号することにより、前記ファイルを得るようにしたことを特徴とするプログラム。

【図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

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate