鍵生成装置、端末装置、ストレージサーバおよびコンピュータプログラム
【課題】グループメンバの所有する端末装置が悪意の第三者に使用され、当該端末装置が保有している鍵が漏洩したとしても、他のグループメンバが暗号化した共有データを第三者によって復号化される可能性を軽減することを可能とする。
【解決手段】認証局3は、公開鍵と秘密鍵を生成する。また、認証局3は、第1の分散鍵と第2の分散鍵とからなる1組の分散鍵から秘密鍵を生成することが可能な分散鍵の組を生成する方法である秘密分散法を用いて、秘密鍵を生成することが可能な第1の分散鍵と第2の分散鍵との組をN組生成する。また、認証局3は、生成したN組の分散鍵の組に含まれるN個の第1の分散鍵をN台のグループメンバ端末(1−1〜1−N)に1個ずつ配布し、N台のグループメンバ端末(1−1〜1−N)それぞれに公開鍵を配布し、N組の分散鍵の組に含まれるN個の第2の分散鍵をストレージサーバ2に配布する。
【解決手段】認証局3は、公開鍵と秘密鍵を生成する。また、認証局3は、第1の分散鍵と第2の分散鍵とからなる1組の分散鍵から秘密鍵を生成することが可能な分散鍵の組を生成する方法である秘密分散法を用いて、秘密鍵を生成することが可能な第1の分散鍵と第2の分散鍵との組をN組生成する。また、認証局3は、生成したN組の分散鍵の組に含まれるN個の第1の分散鍵をN台のグループメンバ端末(1−1〜1−N)に1個ずつ配布し、N台のグループメンバ端末(1−1〜1−N)それぞれに公開鍵を配布し、N組の分散鍵の組に含まれるN個の第2の分散鍵をストレージサーバ2に配布する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、鍵生成装置、端末装置、ストレージサーバおよびコンピュータプログラムに関する。
【背景技術】
【0002】
従来、共有データを暗号化してグループ内で共有する方法が知られている(例えば、特許文献1参照)。ある共有データをグループ内で共有する場合、まずグループ内で共有したいデータ(MG)を、暗号鍵(KM)を用いて共通鍵暗号で暗号化(EKM(MG))する。そして、当該グループの全メンバ(U1,...,UN)が所有する公開鍵(pk1,...,pkN)でKMを暗号化(Epk1(KM),...,EpkN(KM))し、それをリスト化して、EKM(MG)と共にサーバ等に保存する。データを参照するグループメンバ(Ui)は、リスト内から自身の公開鍵(pki)で暗号化されたKM(Epki(KM)とEKM(MG)を取得し、暗号化されたKMを自身の秘密鍵(ski)を用いて復号することにより、KMを得る。そして、KMでEKM(MG)を復号し、元データMGを得る。
【特許文献1】特開2005−223953号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、特許文献1に記載の技術においては、グループメンバの所有する端末装置が悪意の第三者に使用された場合、端末装置が共有データの暗号化に使用している秘密鍵を保持しているため秘密鍵が漏洩してしまう可能性がある。そのため、他のグループメンバによって共有データが暗号化されていたとしても、漏洩した秘密鍵を使用して第三者が共有データの内容を復号化できる可能性があるという問題があった。また、グループメンバが共有データを初めて公開する際、共有データの暗号化に使用した鍵をグループメンバが所有する公開鍵で暗号化する、すなわち、グループメンバの人数分鍵暗号化処理を行う必要があった。そのため、初めて共有データを公開する時の処理の負荷が大きいという問題があった。また、共有データの暗号化に使用する暗号鍵を更新した後に初めて共有データを公開する場合もグループメンバの人数分鍵暗号化処理を行う必要があった。そのため、共有データの暗号化に使用する暗号鍵を更新した後に初めて共有データを公開する時の処理の負荷が大きいという問題があった。
【0004】
本発明は上記の課題を解決するためになされたものであり、グループメンバの所有する端末装置が悪意の第三者に使用され、当該端末装置が保有している鍵が漏洩したとしても、他のグループメンバが暗号化した共有データを第三者によって復号化される可能性を軽減することが可能であり、初めて共有データを公開する際の処理の負荷の軽減が可能であり、共有データの暗号化に使用する暗号鍵の更新後に初めて共有データを公開する際の処理の負荷の軽減が可能である鍵生成装置、端末装置、ストレージサーバおよびコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明は、暗号化された共有データ(後述する実施形態の共有データMG、MG’に対応)を保管するストレージサーバと、N台(Nは1以上の整数)の端末装置と、鍵生成装置(後述する実施形態の認証局に対応)とを備えたデータ共有システムに含まれる前記鍵生成装置において、公開鍵と秘密鍵を生成するグループ鍵生成部と、第1の分散鍵(後述する実施形態の分散鍵ski,U(i=1,・・・,N)に対応)と第2の分散鍵(後述する実施形態の分散鍵ski,S(i=1,・・・,N)に対応)とからなる1組の分散鍵から前記秘密鍵を生成することが可能な分散鍵の組を生成する方法である秘密分散法を用いて、前記秘密鍵を生成することが可能な前記第1の分散鍵と前記第2の分散鍵との組をN組生成する分散鍵生成部と、前記分散鍵生成部で生成したN組の前記分散鍵の組に含まれるN個の前記第1の分散鍵をN台の前記端末装置に1個ずつ配布し、N台の前記端末装置それぞれに前記公開鍵を配布し、N組の前記分散鍵の組に含まれるN個の前記第2の分散鍵を前記ストレージサーバに配布する鍵配布部と、を備えたことを特徴とする鍵生成装置である。
【0006】
また、本発明は、移行元端末装置の環境の移行先の端末装置である移行先端末装置を一意に特定する移行先端末装置情報を含む端末装置移行情報を受信する受信部を備え、前記受信部で端末装置移行情報を受信した際に、前記分散鍵生成部は、前記第1の分散鍵と前記第2の分散鍵との組を1組生成し、前記鍵配布部は、前記分散鍵生成部で生成した1組の前記分散鍵の組に含まれる1個の前記第1の分散鍵と前記公開鍵とを前記移行先端末装置に配布し、前記分散鍵生成部で生成した1組の前記分散鍵の組に含まれる1個の前記第2の分散鍵を前記ストレージサーバに配布することを特徴とする鍵生成装置である。
【0007】
また、本発明は、暗号化された共有データを保管するストレージサーバと、端末装置と、鍵生成装置とを備えたデータ共有システムに含まれる前記端末装置において、前記鍵生成装置から送付された第1の分散鍵と公開鍵とを受信する鍵受信部と、前記鍵受信部が受信した前記公開鍵から暗号鍵(後述する実施形態の暗号鍵KMに対応)と第1の鍵復元用情報(後述する実施形態の鍵復元用情報C0,1に対応)を生成する暗号鍵生成部と、前記暗号鍵を使用して共有データを暗号化する暗号部と、暗号化した前記共有データと前記第1の鍵復元用情報とを前記ストレージサーバに送信する送信部と、暗号化された共有データと、第1の鍵復元用情報と、前記ストレージサーバが生成した第2の鍵復元用情報(後述する実施形態の鍵復元用情報C1,1に対応)とを前記ストレージサーバから受信する受信部と、前記鍵受信部が受信した前記第1の分散鍵と、前記受信部が受信した前記第1の鍵復元用情報と前記第2の鍵復元用情報と、に基づいて前記暗号鍵を復元する暗号鍵復元部と、前記暗号鍵復元部で復元した前記暗号鍵を用いて、前記受信部で受信した暗号化された前記共有データを復号する復号部と、を備えたことを特徴とする端末装置である。
【0008】
また、本発明は、ストレージサーバと、端末装置と、鍵生成装置とを備えたデータ共有システムに含まれるストレージサーバにおいて、前記鍵生成装置より第2の分散鍵を受信し、前記端末装置より暗号化された共有データと第1の鍵復元用情報とを受信する受信部と、前記受信部が受信した前記共有データと前記第1の鍵復元用情報とを関連付けて記憶し、前記受信部が受信した前記第2の分散鍵を記憶する記憶部と、前記第1の鍵復元用情報と、前記第2の分散鍵とに基づいて、第2の鍵復元用情報を生成する鍵復元用情報生成部と、暗号化された共有データと、前記第1の鍵復元用情報と、前記第2の鍵復元用情報とを前記端末装置に送信する送信部と、を備えたことを特徴とするストレージサーバである。
【0009】
また、本発明は、公開鍵と秘密鍵を生成するグループ鍵生成ステップと、第1の分散鍵と第2の分散鍵とからなる1組の分散鍵から前記秘密鍵を生成することが可能な分散鍵の組を生成する方法である秘密分散法を用いて、前記秘密鍵を生成することが可能な前記第1の分散鍵と前記第2の分散鍵との組をN組(Nは1以上の整数)生成する分散鍵生成ステップと、前記分散鍵生成ステップで生成したN組の前記分散鍵の組に含まれるN個の前記第1の分散鍵をN台の前記端末装置に1個ずつ配布し、N台の前記端末装置それぞれに前記公開鍵を配布し、N組の前記分散鍵の組に含まれるN個の前記第2の分散鍵を前記ストレージサーバに配布する鍵配布ステップと、をコンピュータに実行させるためのプログラムである。
【0010】
また、本発明は、鍵生成装置から送付された第1の分散鍵と公開鍵とを受信する鍵受信ステップと、前記鍵受信ステップで受信した前記公開鍵から暗号鍵と第1の鍵復元用情報を生成する暗号鍵生成ステップと、前記暗号鍵を使用して共有データを暗号化する暗号ステップと、暗号化した前記共有データと前記第1の鍵復元用情報とを前記ストレージサーバに送信する送信ステップと、暗号化された共有データと、第1の鍵復元用情報と、前記ストレージサーバが生成した第2の鍵復元用情報とを前記ストレージサーバから受信する受信ステップと、前記鍵受信ステップで受信した前記第1の分散鍵と、前記受信ステップで受信した前記第1の鍵復元用情報と前記第2の鍵復元用情報と、に基づいて前記暗号鍵を復元する暗号鍵復元ステップと、前記暗号鍵復元ステップで復元した前記暗号鍵を用いて、前記受信ステップで受信した暗号化された前記共有データを復号する復号ステップと、をコンピュータに実行させるためのプログラムである。
【0011】
また、本発明は、鍵生成装置より第2の分散鍵を受信し、端末装置より暗号化された共有データと第1の鍵復元用情報とを受信する受信ステップと、前記受信ステップで受信した前記共有データと前記第1の鍵復元用情報とを関連付けて記憶し、前記受信ステップで受信した前記第2の分散鍵を記憶する記憶ステップと、前記第1の鍵復元用情報と、前記第2の分散鍵とに基づいて、第2の鍵復元用情報を生成する鍵復元用情報生成ステップと、暗号化された共有データと、前記第1の鍵復元用情報と、前記第2の鍵復元用情報とを前記端末装置に送信する送信ステップと、をコンピュータに実行させるためのプログラムである。
【発明の効果】
【0012】
本発明によれば、グループメンバの所有する端末装置が悪意の第三者に使用され、当該端末装置が保有している鍵が漏洩したとしても、他のグループメンバが暗号化した共有データを第三者によって復号化される可能性を軽減することが可能であり、初めて共有データを公開する際の処理の負荷の軽減が可能であり、共有データの暗号化に使用する暗号鍵の更新後に初めて共有データを公開する際の処理の負荷の軽減が可能である。
【発明を実施するための最良の形態】
【0013】
以下、本発明の第1の実施形態から第3の実施形態について説明する。はじめに、本発明の第1の実施形態から第3の実施形態で使用している秘密分散法について説明する。秘密分散法とは、秘密情報を数人で分散して保管することで、元の秘密情報を安全に保管する方法である。(k,n)閾値秘密分散法は、秘密分散法の一種であり、秘密情報をn個の分割情報(シェア)に分割してそれぞれ保管し、その内のk個以上の分割情報を入手することができれば、元の秘密情報を復元することができるものである。(参考文献:「A. Shamir,“How to share a secret,“Communications of the ACM,Vol.22,No.11,pp.612−613,1979」)
【0014】
また、共通鍵暗号で利用する暗号鍵を、公開鍵暗号を用いて安全に配送するための鍵カプセル化技術(KEM:Key Encapsulation Mechanism)であるRSA(アールエスエー)暗号をベースとしたRSA−KEMについて説明する。RSA−KEMの手順の概要は以下の通りである。
[鍵生成手順]RSA秘密鍵(e,n)および公開鍵(d,(n))を生成する。ここで、n=pq (p,qは素数)、ed≡1(mod λ(n))(eとλ(n)は互いに素、λ(n)=LCM(p−1,q−1)(LCM(a,b)はaとbの最小公倍数))である。
[暗号化、暗号鍵生成手順](ステップS101)乱数rを生成する。ここでrは(1)式を満たす。
【0015】
【数1】
【0016】
(ステップS102)rを(2)式で文字列に変換する。ここで、I2OSPはinterger to octet string conversionである。
【0017】
【数2】
【0018】
(ステップS103)暗号文C0を(3)式で生成する。
【0019】
【数3】
【0020】
(ステップS104)暗号鍵Kを(4)式で生成する。ここで、KDFは(Key Derivation Functionであり、KeyLenは暗号鍵の鍵長である。
【0021】
【数4】
【0022】
[復号、暗号鍵復元手順](ステップS110)文字列Rを(5)式で復元する。
【0023】
【数5】
【0024】
(ステップS111)暗号鍵Kを(6)式で復元する。
【0025】
【数6】
【0026】
(参考文献:「V.Shoup,“FCD 18033−2 Encryption algorithms−Part 2:Asymmetric ciphers”,http://shoup.net/iso/std6.pdf」)
【0027】
(第1の実施形態)
次に、本発明の第1の実施形態について図面を参照して説明する。図1は、本実施形態によるデータ共有システムを示す構成図である。図示する例では、データ共有システムはグループメンバ端末(端末装置)1−1、1−2、・・・、1−Nと、ストレージサーバ2と、認証局(鍵生成装置)3と、通信ネットワーク4とを備える。グループメンバ端末1−1、1−2、・・・、1−Nは、通信ネットワーク4を介してストレージサーバ2にアクセスし、ストレージサーバ2との間でデータを送受することができる。なお、通信ネットワーク4は、無線ネットワークであっても、有線ネットワークであってもよい。例えば、通信ネットワーク4は、インターネットと固定電話網や移動電話網などから構成されてもよい。
【0028】
グループメンバ端末1−1、1−2、・・・、1−Nは、移動しながら使用可能な装置(例えば、携帯型装置)であってもよく、或いは、固定して使用される装置(例えば、パーソナルコンピュータ等の据置き型装置)であってもよい。また、携帯型の端末装置としては、例えば、移動通信事業者が提供する移動通信網の端末装置(例えば、データ通信機能を有する携帯電話機、データ通信端末装置等)、PDA(Personal Digital Assistants:個人用情報機器)などが挙げられる。また、PDAの場合、通信手段を内蔵していてもよく、外部から通信手段を接続するものであってもよい。
【0029】
グループメンバ端末1−1、1−2、・・・、1−Nは、演算処理部、記憶部、通信部、入力部、表示部、外部インタフェースなどを備える。演算処理部は、CPU(中央処理装置)およびメモリ等から構成される。記憶部は、例えば、ハードディスク装置、光磁気ディスク装置、DVD(Digital Versatile Disk)等の光ディスク装置、フラッシュメモリ等の不揮発性のメモリ、DRAM(DynamicRandom Access Memory)等の揮発性のメモリ、などの記憶装置、あるいはそれらの組み合わせにより構成される。記憶部は、CPUで実行されるコンピュータプログラム等の各種データを記憶する。通信部は、通信ネットワーク4を介したデータ通信を行う。入力部は、キーボード、テンキー、マウス等の入力デバイスから構成され、ユーザの操作に応じたデータ入力を行う。表示部は、CRT(Cathode Ray Tube)や液晶表示装置等の表示デバイスから構成され、データ表示を行う。外部インタフェースは、外部機器との間で有線又は無線により直接にデータを送受する。
【0030】
グループメンバ端末1−1、1−2、・・・、1−Nは、CPUがコンピュータプログラムを実行することにより、暗号鍵生成機能と、送信機能と、受信機能と、暗号鍵復元機能と、復号機能と、更新情報受信機能と、分割鍵更新機能と、シェア生成機能とを実現する。なお、コンピュータプログラムは、グループメンバ端末1−1、1−2、・・・、1−Nに固定的にインストールされていてもよく、或いは、サーバ上にあるコンピュータプログラムが必要なときに通信回線を介してダウンロードされてもよい。
【0031】
ストレージサーバ2は、演算処理部、記憶部、通信部、入力部、表示部、外部インタフェースなどを備える。演算処理部は、CPUおよびメモリ等から構成される。記憶部は、例えば、ハードディスク装置、光磁気ディスク装置、DVD等の光ディスク装置、フラッシュメモリ等の不揮発性のメモリ、DRAM等の揮発性のメモリなどの記憶装置、あるいはそれらの組み合わせにより構成される。記憶部は、CPUで実行されるコンピュータプログラム等の各種データを記憶する。通信部は、通信ネットワーク4を介したデータ通信を行う。入力部は、キーボード、テンキー、マウス等の入力デバイスから構成され、ユーザの操作に応じたデータ入力を行う。表示部は、CRTや液晶表示装置等の表示デバイスから構成され、データ表示を行う。外部インタフェースは、外部機器との間で有線又は無線により直接にデータを送受する。また、記憶部は、グループメンバ端末1−1、1−2、・・・、1−Nから送られてきた各種データを記憶するデータ管理機能を有する。ストレージサーバ2の受信機能と、記憶機能と、鍵復元用情報生成機能と、送信機能と、分割鍵更新機能とは、ストレージサーバ2のCPUが上記機能を実現するためのコンピュータプログラムを実行することにより実現される。
【0032】
認証局3は、演算処理部、記憶部、通信部、入力部、表示部、外部インタフェースなどを備える。演算処理部は、CPUおよびメモリ等から構成される。記憶部は、例えば、ハードディスク装置、光磁気ディスク装置、DVD等の光ディスク装置、フラッシュメモリ等の不揮発性のメモリ、DRAM等の揮発性のメモリなどの記憶装置、あるいはそれらの組み合わせにより構成される。記憶部は、CPUで実行されるコンピュータプログラム等の各種データを記憶する。通信部は、通信ネットワーク4を介したデータ通信を行う。入力部は、キーボード、テンキー、マウス等の入力デバイスから構成され、ユーザの操作に応じたデータ入力を行う。表示部は、CRTや液晶表示装置等の表示デバイスから構成され、データ表示を行う。外部インタフェースは、外部機器との間で有線又は無線により直接にデータを送受する。認証局3のグループ鍵生成機能と、分散鍵生成機能と、分散鍵分割機能と、鍵配布機能と、受信機能と、分割鍵更新情報生成機能と、更新情報配布機能とは、認証局3のCPUが上記機能を実現するためのコンピュータプログラムを実行することにより実現される。
【0033】
[事前準備]
次に、本実施形態での事前準備について図2を参照して説明する。図2は、本実施形態での事前準備の処理動作を示すシーケンス図である。事前準備では、認証局3は暗号用の鍵を作成し、作成した鍵をグループメンバ端末1−1、1−2と、ストレージサーバ2に配布する。
【0034】
(ステップP1−1)認証局3はグループ用公開鍵と秘密鍵のペア(pkG,skG)を生成する。以下、RSA暗号の公開鍵をpkG、秘密鍵をskGとして説明する。すなわち、pkG=(e,n)、skG=(d)、ここでn=pq (p,qは素数、p=2p’+1,q=2q’+1,p’,q’は素数)、ed≡1(mod λ(n))、λ(n)=2p’q’、gcd(e,λ(n))=1である。
【0035】
(ステップP1−2)認証局3は、グループメンバ端末ごとに、(2,2)閾値秘密分散法を用いてskGを2個の分散鍵に分割する。グループメンバ端末1−1用の分散鍵は(sk1,U,sk1,S)である。グループメンバ端末1−2用の分散鍵は(sk2,U,sk2,S)である。具体的には、各グループメンバ端末に対応するする有限体GF(λ(n))上の多項式fi(x)を生成し、分散鍵ski,U,ski,Sを生成する。なお、ski,U,ski,Sは、以下の(7)式から(13)式を満たす。また、aiは乱数(ai=1,・・・,λ(n)−1)、IDiはグループメンバ端末iのID、IDSはストレージサーバのIDである。また、i=1,・・・,N(Nはデータ共有システムに含まれるグループメンバ端末数であり、Nは1以上の整数)である。
【0036】
【数7】
【0037】
【数8】
【0038】
【数9】
【0039】
【数10】
【0040】
【数11】
【0041】
【数12】
【0042】
【数13】
【0043】
(ステップP1−3)認証局3は、データ共有システムに含まれる各グループメンバ端末にグループ用公開鍵pkGを一つずつ配布する。また、認証局3は、ステップP1−2で各端末用に生成した分散鍵ski,U(i=1,・・・,N)を、対応する端末に配布する。また、認証局3は、ステップP1−2で各端末用に生成した分散鍵ski,S(i=1,・・・,N)を、ストレージサーバ2にすべて配布する。
【0044】
図3は、本実施形態における鍵の配布方法を示した図である。図示する例では、認証局3は、グループ用公開鍵pkGと、グループ用秘密鍵skGとを有している。また、認証局3は、グループ用秘密鍵skGから多項式f1(x)を生成し、生成した多項式f1(x)から分散鍵sk1,Sとsk1,Uとを生成している。また、認証局3は、グループ用秘密鍵skGから多項式f2(x)を生成し、生成した多項式f2(x)から分散鍵sk2,Sとsk2,Uとを生成している。以下同様に、認証局3は、データ共有システムに含まれているグループメンバ端末(1−1〜1−N)数と同数の分散鍵skN,SとskN,Uとを生成している。
【0045】
認証局3は、グループ用公開鍵pkGと、分散鍵sk1,Uとをグループメンバ端末1−1に配布する。また、認証局3は、グループ用公開鍵pkGと、分散鍵sk2,Uとをグループメンバ端末1−2に配布する。以下同様に、認証局3は、データ共有システムに含まれているグループメンバ端末(1−1〜1−N)それぞれに、グループ用公開鍵pkGと、分散鍵skN,Uとを配布する。認証局3は、分散鍵sk1,S〜skN,Sをストレージサーバ2に配布する。なお、認証局3がグループメンバ端末(1−1〜1−N)およびストレージサーバ2へ分散鍵を配布する方法としては、ネットワーク通信で配布してもよく、記録媒体などの外部デバイスを介して配布しても良い。
【0046】
[共有データ保存処理:共有データ新規保存、共有データ更新保存(鍵更新あり)]
次に、鍵の更新がある場合での本実施形態での共有データの新規保存または共有データの更新保存の処理について図4から図6を参照して説明する。図4は、本実施形態において、グループメンバ端末(1−1〜1−N)の記憶部が記憶するデータのリスト(ローカルデータリスト)のデータフォーマット(以下、メンバ端末フォーマットと記す。)を示した図である。図示する例では、メンバ端末フォーマットはデータID(D1)と、データラベル(L1)と、最終参照時刻(T1,1)と、暗号化データ(EKM(MG))との4つの属性を持つ。データIDは、データ共有システム内でデータを一意に識別するための識別子である。データラベルは、例えばファイル名など、データの内容や形態を表す名称である。最終参照時刻は、共有データを最後に参照した時刻である。暗号化データは、共有データを暗号化したデータである。
【0047】
図5は、本実施形態において、ストレージサーバ2の記憶部が記憶するデータのデータフォーマット(以下、ストレージサーバフォーマットと記す。)を示した図である。図示する例では、ストレージサーバフォーマットはデータID(D1)と、ユーザID(ID1)と、データラベル(L1)と、最終更新時刻(TS,1)と、暗号化データ(EKM(MG))と、鍵復元用情報(C0,1)との6つの属性を持つ。データIDと、データラベルと、暗号化データの3つの属性は、メンバ端末フォーマットの属性と同様である。ユーザIDは、暗号化データを生成したグループメンバ端末を一意に識別するための識別子である。最終更新時刻は共有データを最後に更新した時刻である。鍵復元用情報は、暗号化データを復号化する際に使用する鍵を作成する際に使用する情報である。
【0048】
図6は、本実施形態において、ストレージサーバ2の記憶部が記憶するデータの例を示した図である。図示する例では、ストレージサーバ2の記憶部はデータレコード1からデータレコードXまでのX個のデータを記憶する。各データレコードのフォーマットは図4と同様である。
【0049】
図7は、本実施形態において、グループメンバ端末1−1がストレージサーバ2にグループ共有データを保存する処理動作を示したシーケンス図である。
【0050】
(ステップW1−1)グループメンバ端末1−1を使用するユーザは、グループメンバ端末1−1を操作して、グループメンバ端末1−1に共有データMGを用意する。また、MGのファイル名をデータラベルL1とする。
(ステップW1−2)鍵カプセル化技術を用いて、グループメンバ端末1−1はpkGから暗号鍵KMと鍵復元用情報C0,1とを生成する。
【0051】
(ステップW1−3)共通鍵暗号により、グループメンバ端末1−1は、KMを用いて共有データMGを暗号化する。暗号化後の共有データ(暗号化データ)はEKM(MG)とする。暗号化完了後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するMGとKMとを削除する。
(ステップW1−4)グループメンバ端末1−1は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0052】
(ステップW1−5)グループメンバ端末1−1は、グループメンバ端末1−1が持つID(ID1)と、EKM(MG)と、C0,1と、L1と、UIDと、PNとをストレージサーバ2に送付する。
(ステップW1−6)ストレージサーバ2は、グループメンバ端末1−1より送信されたUIDとPNの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、ストレージサーバ2はグループメンバ端末1−1より受信した当該データの組にデータID(D1)を割り当てる。また、ストレージサーバ2はID1と、EKM(MG)と、C0,1と、L1と、D1と、最終更新時刻(TS,1)とをストレージサーバフォーマットに従ってストレージサーバ2の記憶部に格納する。最新更新時刻(TS,1)は、当該格納時の時刻である。
【0053】
(ステップW1−7)ステップW1−6での格納処理が終了したことをグループメンバ端末1−1に通知するために、ストレージサーバ2はACK(アック、Acknowledgement)メッセージをユーザ端末1に送信する。ACKメッセージにはD1とTS,1とが含まれる。
(ステップW1−8)ストレージサーバ2からACKメッセージを受信した後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するKMとC0,1とを削除する。また、グループメンバ端末1−1はローカルデータリストに当該データ用のエントリを新規に作成し、D1をデータIDとして、L1をデータラベルとして、T1,1(=TS,1)を最終参照時刻として、EKM(MG)を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、EKM(MG)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0054】
[共有データ保存処理:共有データ更新保存(鍵更新なし)]
次に、鍵の更新がない場合での本実施形態での共有データの更新保存の処理について図8を参照して説明する。鍵の更新がない共有データの更新保存の場合としては、共有データを更新するグループメンバ端末が、以前に自身でストレージサーバに登録した共有データを更新する場合などがある。この場合は、以前に共有データを保存した際に使用した暗号鍵KMを用いて、再度更新対象の共有データの暗号化を行うことができるため、鍵生成手順を省略する。
【0055】
図8は、本実施形態において、暗号鍵を更新しないで、グループメンバ端末1−1がストレージサーバ2にグループ共有データを更新保存する処理動作を示したシーケンス図である。
【0056】
(ステップWa1−1)グループメンバ端末1−1を使用するユーザは、グループメンバ端末1−1を操作して、グループメンバ端末1−1に共有データMG’を用意する。また、MG’のファイル名をデータラベルL1’とする。
(ステップWa1−2)共通鍵暗号により、グループメンバ端末1−1は、KMを用いて共有データMG’を暗号化する。暗号化後の共有データ(暗号化データ)はEKM(MG’)とする。暗号化完了後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するMG’を削除する。
(ステップWa1−3)グループメンバ端末1−1は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0057】
(ステップW1a−4)グループメンバ端末1−1は、グループメンバ端末1−1が持つID(ID1)と、EKM(MG’)と、L1’と、データID(D1)と、UIDと、PNとをストレージサーバ2に送付する。
(ステップW1a−5)ストレージサーバ2は、グループメンバ端末1−1より送信されたUIDとPNの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、ストレージサーバ2はID1と、EKM(MG’)と、L1’と、最終更新時刻(TS,1’)とをストレージサーバフォーマットのフォーマットに従って、更新前のデータを記憶するストレージサーバ2の記憶部に上書きする。最新更新時刻(TS,1’)は、当該上書き時の時刻である。
【0058】
(ステップW1a−6)ステップW1a−5での格納処理が終了したことをグループメンバ端末1−1に通知するために、ストレージサーバ2はACKメッセージをユーザ端末1に送信する。ACKメッセージにはTS,1’が含まれる。
(ステップW1a−7)ストレージサーバ2からACKメッセージを受信した後、グループメンバ端末1−1はローカルデータリストの当該データ用のエントリに、D1をデータIDとして、L1’をデータラベルとして、T1,1’(=TS,1’)を最終参照時刻として、EKM(MG’)を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、EKM(MG’)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0059】
[共有データ参照処理]
次に、グループメンバ端末1−1がストレージサーバ2に登録した共有データを、グループメンバ端末1−2が参照する際の処理について図9、図10を参照して説明する。
【0060】
図9は、本実施形態において、ストレージサーバが各グループメンバ端末に送信するデータリストを示した図である。データリストは、ストレージサーバ2の記憶部が記憶するデータのデータラベルを記憶する。また、データリストはデータラベルと当該データラベルの最終更新時刻とを関連付けて記憶する。図示する例では、ストレージサーバ2が記憶するデータのデータラベルは、データラベル1(D1)、データラベル2(D2)、・・・、データラベルX(DX)である。また、データラベル1(D1)の最終更新時刻は、最終更新時刻1(L1)、データラベル2(D2)の最終更新時刻は、最終更新時刻2(L2)、・・・、データラベルX(DX)の最終更新時刻は、最終更新時刻X(LX)である。
【0061】
図10は、本実施形態において、グループメンバ端末1−1がストレージサーバ2に登録した共有データを、グループメンバ端末1−2が参照する際の処理動作を示したシーケンス図である。
【0062】
(ステップR1−0)ストレージサーバ2はグループメンバ端末1−1とグループメンバ端末1−2とにデータリストを送付する。例えば、データリスト送付のタイミングは、データリストの更新がある度に送信しても良い。また、ユーザ端末からデータアクセス要求があった場合のみ送信しても良い。
【0063】
(ステップR1−1)グループメンバ端末1−2は、ユーザから共有データの参照要求の入力を受け付ける。続いて、グループメンバ端末1−2は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0064】
(ステップR1−2)グループメンバ端末1−2は、参照するデータMGのデータID(D1)と、グループメンバ端末1−2が持つID(ID2)と、UIDと、PNとをデータ要求メッセージとしてストレージサーバ2に送付する。当該データを過去に参照したことがある場合は、当該データの最終参照時刻(T2,1)をデータ要求メッセージに追加する。なお、グループメンバ端末内の暗号化データEKM(MG)の有無を知らせる情報をデータ要求メッセージ内に追加しても良い。図示する例では、グループメンバ端末1−2はデータMGを初めて参照するため、要求メッセージ内に最終参照時刻(T2,1)は含まれていない。
【0065】
(ステップR1−3)ストレージサーバ2は、グループメンバ端末1−2より送信されたUIDとPNの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、C0,1と、sk2,Sとを用いて、ストレージサーバ2は鍵復元用情報C1,1=C0,1W1を生成する。なお、W1は以下の(14)式を満たす。
【0066】
【数14】
【0067】
(ステップR1−4)ストレージサーバ2は、EKM(MG)と、最終更新時刻(TS,1)と、C0,1と、C1,1とをグループメンバ端末1−2に送付する。なお、ステップR1−0で要求メッセージ内に「グループメンバ端末内に暗号化データ有」を知らせる情報が付加されており、なおかつ当該データの更新がない場合はEKM(MG)を送付しない処理としても良い。ここで、当該データの更新の有無の判定方法として、例えば、グループメンバ端末より送られた最終参照時刻(T2,1)と、ストレージサーバ2内に格納されている最終更新時刻(TS,1)とを比較し、値が異なっている場合は更新されたと判定する方法がある。
【0068】
(ステップR1−5)グループメンバ端末1−2は、sk2,Uと、C0,1と、C1,1とを用いてKMを復元する。また、最終参照時刻(T2,1)をTS,1に更新する。なお、KMの復元方法は以下の通りである。まず、以下の(15)式よりrを復元する。続いて以下の(16)式よりKMを復元する。なお、W2は以下の(17)式を満たす。
【0069】
【数15】
【0070】
【数16】
【0071】
【数17】
【0072】
(ステップR1−6)グループメンバ端末1−2は、KMを用いてEKM(MG)を復号し、MGを取得する。
(ステップR1−7)MGの参照後、グループメンバ端末1−2はKMと、MGと、C0,1と、C1,1とを削除する。なお、EKM(MG)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0073】
[環境移行処理]
次に、グループメンバ端末1−2が紛失され、グループメンバ端末1−2の環境をグループメンバ端末1−3に移行する手順について図11を参照して説明する。環境移行とは、あるグループメンバ端末が有している共有データの暗号化・復号化を実行可能な環境を、別のグループメンバ端末に移行することを言う。本実施形態では、移行元の端末装置はグループメンバ端末1−2であり、移行先の端末装置はグループメンバ端末1−3である。図11は、本実施形態において、グループメンバ端末1−2が有している共有データの暗号化・復号化を実行可能な環境を、グループメンバ端末1−3に移行する処理動作を示したシーケンス図である。
【0074】
(ステップRE1−1)グループメンバ端末1−3は、グループメンバ端末1−2の紛失と、グループメンバ端末1−2の環境をグループメンバ端末1−3へ移行する要求とを含む端末装置移行情報を認証局3に通知する。端末装置移行情報には、端末装置の環境を移行する元の端末装置としてグループメンバ端末1−2の端末IDと、端末装置の環境を移行する先の端末装置としてグループメンバ端末1−3の端末IDとが含まれる。なお、通知方法はオンラインで通知しても良く、オフラインで通知しても良い。
【0075】
(ステップRE1−2)認証局3は、グループメンバ端末1−3より端末移行情報を受信する。続いて認証局3は、グループメンバ端末1−3用の分割鍵sk’2,Uと分割鍵sk’2,Sとを生成する。生成方法は、ステップP1−2と同様である。
(ステップRE1−3)認証局3は、分割鍵sk’2,Sをストレージサーバ2に送付する。ストレージサーバ2は、分割鍵sk’2,Sを受信後、グループメンバ端末1−2用の分割鍵sk2,Sを削除する。
(ステップRE1−4)認証局3は、グループメンバ端末1−3用の分割鍵sk’2,Uと公開鍵pkGとをグループメンバ端末1−3に送付する。
【0076】
以上より、暗号化された共有データの復号化には、必ずストレージサーバが保持する分散鍵sk2,Sと鍵復元用情報C0,1とが必要であるため、グループメンバの所有する端末装置が悪意の第三者に使用され、当該端末装置が保有している鍵が漏洩したとしても、他のグループメンバが暗号化した共有データを第三者によって復号化される可能性を軽減することが可能である。また、従来、初めて共有データを公開する際に必要であった、共有データの暗号化に使用した鍵をグループメンバが所有する公開鍵で暗号化する、すなわち、グループメンバの人数分鍵暗号化処理を行う必要がないため、初めて共有データを公開する際の処理の負荷の軽減が可能である。また、従来、共有データの暗号化に使用する暗号鍵を更新した後に初めて共有データを公開する場合に必要であった、グループメンバの人数分の鍵暗号化処理を行う必要がないため、共有データの暗号化に使用する暗号鍵の更新後に初めて共有データを公開する際の処理の負荷の軽減が可能である。
【0077】
(第2の実施形態)
次に、本発明の第2の実施形態について図面を参照して説明する。本実施形態では、第1の実施形態の鍵カプセル化技術による鍵交換処理に加え、秘密分散による鍵交換処理を追加する。具体的には、グループメンバ端末は、新規に共有データをストレージサーバに登録する際、または初めて共有データを参照する際に、当該データの暗号鍵を秘密分散法でS1とS2との2つのシェアに分散する。なお、暗号鍵は分散した2つのシェアS1とS2のみを用いて生成可能である。続いて、グループメンバ端末はシェアS1をストレージサーバに送付し、シェアS2を自端末内に保持する。また、本実施形態によるデータ共有システムは第1の実施形態のデータ共有システムと同様である。
【0078】
[事前準備]
次に、本実施形態での事前準備について説明する。本実施形態での事前準備の処理動作は第1の実施形態の事前準備の処理動作と同様に行う。
【0079】
[共有データ保存処理:共有データ新規保存、共有データ更新保存(鍵更新あり)]
次に、鍵の更新がある場合での本実施形態での共有データの新規保存または共有データの更新保存の処理について図12から図14を参照して説明する。図12は、本実施形態において、グループメンバ端末の記憶部が記憶するデータのリスト(ローカルデータリスト)のデータフォーマット(以下、メンバ端末フォーマットと記す。)を示した図である。図示する例では、メンバ端末フォーマットはデータID(D1)と、データラベル(L1)と、最終参照時刻(T1,1)と、最終鍵参照時刻(TK1,1)と、暗号鍵シェア(S1,2)と、暗号化データ(EKM(MG))との6つの属性を持つ。データIDは、データ共有システム内でデータを一意に識別するための識別子である。データラベルは、例えばファイル名など、データの内容や形態を表す名称である。最終参照時刻は、共有データを最後に参照した時刻である。最終鍵参照時刻は、暗号鍵を最後に参照した時刻である。暗号鍵シェアは、グループメンバ端末が暗号鍵を秘密分散法で分散して作成したシェアである。暗号化データは、共有データを暗号化したデータである。
【0080】
図13は、本実施形態において、ストレージサーバ2の記憶部が記憶するデータのデータフォーマット(以下、ストレージサーバフォーマットと記す。)を示した図である。図示する例では、ストレージサーバフォーマットはデータID(D1)と、データラベル(L1)と、最終更新時刻(TS,1)と、最終鍵更新時刻(TKS,1)と、暗号化データ(EKM(MG))と、鍵復元用情報(C0,1)と、ユーザID(ID1)と、暗号鍵シェア(S1,1)との8つの属性を持つ。データIDと、データラベルと、暗号化データと、暗号鍵シェアとの4つの属性は、メンバ端末フォーマットの属性と同様である。ユーザIDはグループメンバ端末を一意に識別するための識別子である。最終更新時刻は共有データを最後に更新した時刻である。最終鍵更新時刻は暗号鍵を最後に更新した時刻である。鍵復元用情報は、暗号化データを復号化する際に使用する鍵を作成する際に使用する情報である。
【0081】
図14は、本実施形態において、グループメンバ端末1−1がストレージサーバ2にグループ共有データを保存する処理動作を示したシーケンス図である。
【0082】
(ステップW2−1)グループメンバ端末1−1を使用するユーザは、グループメンバ端末1−1を操作して、グループメンバ端末1−1に共有データMGを用意する。また、MGのファイル名をデータラベルL1とする。
(ステップW2−2)鍵カプセル化技術を用いて、グループメンバ端末1−1はpkGから暗号鍵KMと鍵復号用情報C0,1とを生成する。
【0083】
(ステップW2−3)共通鍵暗号により、グループメンバ端末1−1は、KMを用いて共有データMGを暗号化する。暗号化後の共有データ(暗号化データ)はEKM(MG)とする。暗号化完了後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するMGを削除する。
(ステップW2−4)グループメンバ端末1−1は、(2,2)閾値分散法を用いてKMに対応するシェアS1,1とシェアS1,2とを作成する。なお、KMは分散した2つのシェアS1,1とシェアS1,2のみを用いて生成可能である。シェアを作成後、KMを削除する。なお、シェアSi,1は以下の(18)式を用いて生成する。ここで、Xi,1=h(IDi)(hはハッシュ関数)、u1(x)=b1x+KM、u1(x)は有限体GF(2b−1)上の多項式(bは暗号鍵の鍵長)である。
【0084】
【数18】
【0085】
また、シェアSi,2は以下の(19)式を用いて生成する。ここで、Xi,2=h(IDi‖r1)(r1は乱数、hはハッシュ関数)である。
【0086】
【数19】
【0087】
(ステップW2−5)グループメンバ端末1−1は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0088】
(ステップW2−6)グループメンバ端末1−1は、グループメンバ端末1−1が持つID(ID1)と、S1,1と、EKM(MG)と、C0,1と、L1と、UIDと、PNとをストレージサーバ2に送付する。
(ステップW2−7)ストレージサーバ2は、グループメンバ端末1−1より送信されたUIDとPNとの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、ストレージサーバ2は当該データにデータID(D1)を割り当てる。また、ストレージサーバ2はID1と、L1と、EKM(MG)と、C0,1と、S1,1と、D1と、最終更新時刻(TS,1)と、最終鍵更新時刻(TKS,1)とをストレージサーバフォーマットのフォーマットに従ってストレージサーバ2の記憶部に格納する。最新更新時刻(TS,1)および最終鍵更新時刻(TKS,1)は、当該格納時の時刻である。
【0089】
(ステップW2−8)ステップW2−7での格納処理が終了したことをグループメンバ端末1−1に通知するために、ストレージサーバ2はACK(アック、Acknowledgement)メッセージをユーザ端末1に送信する。ACKメッセージにはD1とTS,1とTKS,1とが含まれる。
(ステップW2−9)ストレージサーバ2からACKメッセージを受信した後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するKMと、C0,1とS1,1とを削除する。また、グループメンバ端末1−1はローカルデータリストに当該データ用のエントリを新規に作成し、D1をデータIDとして、L1をデータラベルとして、T1,1(=TS,1)を最終参照時刻として、TK1,1(=TKS,1)を最終鍵参照時刻として、S1,2を暗号鍵シェアとして、EKM(MG)を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、EKM(MG)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0090】
[共有データ保存処理:共有データ更新保存(鍵更新なし)]
次に、鍵の更新がない場合での本実施形態での共有データの更新保存の処理について説明する。鍵の更新がない場合での本実施形態での共有データの更新保存の処理動作は、第1の実施形態の鍵の更新がない場合での共有データの更新保存の処理動作と同様に行う。
【0091】
[共有データ参照処理]
次に、グループメンバ端末1−1がストレージサーバ2に登録した共有データを、グループメンバ端末1−2が参照する際の処理について図15を参照して説明する。図15は、本実施形態において、グループメンバ端末1−1がストレージサーバ2に登録した共有データを、グループメンバ端末1−2が参照する際の処理動作を示したシーケンス図である。
【0092】
(ステップR2−0)ストレージサーバ2はグループメンバ端末1−1とグループメンバ端末1−2とにデータリストを送付する。例えば、データリスト送付のタイミングは、データリストの更新がある度に送信しても良い。また、ユーザ端末からデータアクセス要求があった場合のみ送信しても良い。
【0093】
(ステップR2−1)グループメンバ端末1−2は、ユーザから共有データの参照要求の入力を受け付ける。続いて、グループメンバ端末1−2は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0094】
(ステップR2−2)グループメンバ端末1−2は、参照するデータMGのデータID(D1)と、グループメンバ端末1−2が持つID(ID2)と、UIDと、PNとをデータ要求メッセージとしてストレージサーバ2に送付する。当該データを過去に参照したことがある場合は、当該データの最終参照時刻(T2,1)と、最終鍵参照時刻(TK2,1)とをデータ要求メッセージに追加する。なお、グループメンバ端末内の暗号化データEKM(MG)の有無を知らせる情報をデータ要求メッセージ内に追加しても良い。図示する例では、グループメンバ端末1−2はデータMGを初めて参照するため、要求メッセージ内に最終参照時刻(T2,1)と、最終鍵参照時刻(TK2,1)とは含まれていない。
【0095】
(ステップR2−3)ストレージサーバ2は、グループメンバ端末1−2より送信されたUIDとPNの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、ストレージサーバ2は、グループメンバ端末1−2が当該データを参照した後に自身が保持している当該データ用の暗号鍵が更新されたか否か判断する。ここで、当該データ用の暗号鍵の更新の有無の判定方法として、例えば、グループメンバ端末より送られた暗号鍵の最終鍵参照時刻(TK2,1)と、ストレージサーバ2内に格納されている当該データ用の暗号鍵の最終更新時刻(TKS,1)とを比較し、値が異なっている場合は更新されたと判定する方法がある。
【0096】
(ステップR2−4)共有データを新規に参照する場合、もしくは鍵の更新がある共有データを参照する場合、グループメンバ端末は、鍵を作成して共有データを参照する。参照方法は後述する。
(ステップR2−5)グループメンバ端末は、鍵の更新がない共有データを参照する。参照方法は後述する。
【0097】
次に、ステップR2−4で、グループメンバ端末が鍵を作成して共有データを参照する際の手順について図16を参照して説明する。図16はグループメンバ端末が鍵を作成して共有データを参照する処理動作を示したシーケンス図である。
【0098】
(ステップR2−4a)ストレージサーバ2は、C0,1と、sk2,Sとを用いて、鍵復元用情報C1,1=C0,1W1を生成する。なお、鍵復元用情報の生成方法はステップR1−3と同様である。
【0099】
(ステップR2−4b)ストレージサーバ2は、D1と、EKM(MG)と、最終更新時刻(TS,1)と、最終鍵更新時刻(TKS,1)と、C0,1と、C1,1とをグループメンバ端末1−2に送付する。
(ステップR2−4c)グループメンバ端末1−2は、sk2,Uと、C0,1と、C1,1とを用いてKMを復元する。なお、KMの復元方法はステップR1−5と同様である。
【0100】
(ステップR2−4d)グループメンバ端末1−2は、KMを用いてEKM(MG)を復号し、MGを取得する。
(ステップR2−4e)グループメンバ端末1−2は、(2,2)閾値分散法を用いてKMに対応するシェアS2,1とシェアS2,2とを作成する。
(ステップR2−4f)グループメンバ端末1−2は、D1と、ID2と、S2,1とをストレージサーバ2に送付する。また、MGの参照後、グループメンバ端末1−2はKMと、MGと、C0,1と、C1,1と、S2,1とを削除する。また、ローカルデータリストの当該データ用のエントリに、D1をデータIDとして、L1をデータラベルとして、T’2,1(=TS,1)を最終参照時刻として、TK’2,1(=TKS,1)を最終鍵参照時刻として、S2,2を暗号鍵シェアとして、EKM(MG)を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、EKM(MG)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0101】
次に、ステップR2−5で、グループメンバ端末が鍵の更新がない共有データを参照する際の手順について図17を参照して説明する。図17はグループメンバ端末が鍵の更新がない共有データを参照する処理動作を示したシーケンス図である。
【0102】
(ステップR2−5a)ストレージサーバ2は、暗号鍵シェアS2,1と、EKM(MG)と、最終更新時刻(TS,1)とをグループメンバ端末1−2に送付する。なお、ステップR2−1で要求メッセージ内に「グループメンバ端末内に暗号化データ有」を知らせる情報が付加されており、なおかつ当該データの更新がない場合はEKM(MG)を送付しない処理としても良い。ここで、当該データの更新の有無の判定方法として、例えば、グループメンバ端末より送られた最終参照時刻(T2,1)と、ストレージサーバ2内に格納されている最終更新時刻(TS,1)とを比較し、値が異なっている場合は更新されたと判定する方法がある。
【0103】
(ステップR2−5b)グループメンバ端末1−2は、S2,2と、S2,1とを用いてKMを復元する。
(ステップR2−5c)グループメンバ端末1−2は、KMを用いてEKM(MG)を復号し、MGを取得する。
(ステップR2−5d)MGの参照後、グループメンバ端末1−2はKMと、MGと、S2,1とを削除する。また、グループメンバ端末1−2は、ローカルデータリストの当該データ用のエントリのT’2,1の値をTS,1の値として上書きする。なお、EKM(MG)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0104】
[環境移行処理]
次に、グループメンバ端末1−2が紛失され、グループメンバ端末1−2の環境をグループメンバ端末1−3に移行する手順について説明する。本実施形態での移行手順は、第1の実施形態での移行手順と同様に行う。
【0105】
以上、第2の実施形態について説明したとおり、本実施形態では第1の実施形態の鍵カプセル化技術による鍵交換処理に加え、秘密分散による鍵交換処理を追加する形態とした。よって、グループメンバ端末が同じ暗号鍵を用いた暗号化データを参照する際に、鍵復元情報C0およびC1をストレージサーバより取得する必要がなく、シェアS1だけを送付すればよい。そのため、ユーザ端末とストレージサーバ間のメッセージサイズを削減できる。例えば、公開鍵暗号の鍵長を1024ビット、共通鍵暗号の鍵長を256ビットにしたとすると、1回のデータ参照あたり1792ビットを削減できる。また、ユーザ端末側でべき乗演算および乗算を行う必要もなくなるため、ユーザ端末の負荷が軽減される。
【0106】
(第3の実施形態)
次に、本発明の第3の実施形態について図面を参照して説明する。本実施形態では、暗号鍵を生成する基の情報であるマスターシェアと呼ばれる情報をグループメンバ端末内に生成し、生成したマスターシェアを用いて暗号鍵と暗号鍵シェアを生成する。なお、暗号鍵は暗号鍵シェアとマスターシェアのみを用いて生成可能である。また、マスターシェアを秘密分散法で分割シェアSMS,1と分割シェアSMS,2との2つの分割シェアに分散する。なお、マスターシェアは分散した2つの分割シェアSMS,1とSMS,2のみを用いて生成可能である。また、本実施形態によるデータ共有システムは第1の実施形態のデータ共有システムと同様である。
【0107】
[事前準備]
次に、本実施形態での事前準備について説明する。
(ステップP3−1)認証局3はグループ用公開鍵と秘密鍵のペア(pkG、skG)を生成する。以下、RSA暗号の公開鍵をpkG、秘密鍵をskGとして説明する。
【0108】
(ステップP3−2)認証局3は、グループメンバ端末ごとに、(2,2)閾値秘密分散法を用いてskGを2個の分散鍵に分割する。グループメンバ端末1−1用の分散鍵は(sk1,U,sk1,S)である。グループメンバ端末1−2用の分散鍵は(sk2,U,sk2,S)である。なお、分散鍵の生成方法はステップP1−2と同様である。
【0109】
(ステップP3−3)認証局3は、データ共有システムに含まれる各グループメンバ端末にグループ用公開鍵pkGを一つずつ配布する。また、認証局3は、ステップP3−2で各端末用に生成した分散鍵ski,U(i=1,・・・,N)を、対応する端末に配布する。また、認証局3は、ステップP3−2で各端末用に生成した分散鍵ski,S(i=1,・・・,N)を、ストレージサーバ2にすべて配布する。
(ステップP3−4)各グループメンバ端末はマスターシェアの初期設定を行い、自端末内にマスターシェア(MSi)を保持する。マスターシェアの初期設定方法は後述する。
【0110】
次に、ステップP3−4で、グループメンバ端末がマスターシェアの初期設定を行う手順について図18を参照して説明する。図18はグループメンバ端末がマスターシェアの初期設定を行う処理動作を示したシーケンス図である。
【0111】
(ステップP3−4a)グループメンバ端末1−1はマスターシェアMS1を生成する。なお、マスターシェアMSiは以下の(20)式より生成される。ここで、XMS,i=h(IDi)(hはハッシュ関数、i=1,…,N+1)、g(x)は有限体GF(2b−1)上の多項式(bは暗号鍵の鍵長)である。
【0112】
【数20】
【0113】
(ステップP3−4b)グループメンバ端末1−1は、(2,2)閾値分散法を用いてマスターシェアMS1に対応する分割シェアSMS,1,1と分割シェアSMS,1,2とを生成する。なお、マスターシェアMS1は分割シェアSMS,1,1と分割シェアSMS,1,2のみを用いて生成可能である。また、分割シェアSMS,i,1は以下の(21)式を用いて生成する。
【0114】
【数21】
【0115】
また、分割シェアSMS,i,2は以下の(22)式を用いて生成する。ここで、Xi,2=h(IDi‖r3)(r3は乱数、hはハッシュ関数、i=1,…,N+1)である。
【0116】
【数22】
【0117】
(ステップP3−4c)グループメンバ端末1−1は、グループメンバ端末1−1が持つID(ID1)と、SMS,1,2とをストレージサーバ2に送付する。
(ステップP3−4d)グループメンバ端末1−1は、SMS,1,1を外部デバイスに送付する。外部デバイスは例えば、USBメモリなどの記憶装置である。なお、SMS,1,1を記憶した外部デバイスは、グループメンバ端末1−1から取り外され、金庫など安全な場所に保管される。また、外部デバイスは、環境復元処理以外の処理であるデータ保存処理やデータ参照処理には使用されない。
(ステップP3−4e)グループメンバ端末1−1は、SMS,1,1とSMS,1,2とを削除する。
【0118】
なお、マスターシェアは、グループメンバ端末1−1内に保持され、データ保存処理、データ参照処理の暗号鍵生成、暗号鍵分散処理に利用される。また、マスターシェアをグループメンバ端末1−1内で暗号化し、ストレージサーバ2へのユーザ認証後、ストレージサーバからマスターシェア復号用の鍵を取得することにより、マスターシェアが復号されるような処理を行うことで、安全性を高めても良い。
【0119】
[共有データ保存処理:共有データ新規保存]
次に、共有データの新規保存の処理について図19から図21を参照して説明する。図19は、本実施形態において、グループメンバ端末の記憶部が記憶するデータのリスト(ローカルデータリスト)のデータフォーマット(以下、メンバ端末フォーマットと記す。)を示した図である。図示する例では、メンバ端末フォーマットはデータID(D1)と、データラベル(L1)と、最終参照時刻(T1,1)と、暗号化データ(EKM(MG))との4つの属性を持つ。データIDは、データ共有システム内でデータを一意に識別するための識別子である。データラベルは、例えばファイル名など、データの内容や形態を表す名称である。最終参照時刻は、共有データを最後に参照した時刻である。暗号化データは、共有データを暗号化したデータである。
【0120】
図20は、本実施形態において、ストレージサーバ2の記憶部が記憶するデータのデータフォーマット(以下、ストレージサーバフォーマットと記す。)を示した図である。図示する例では、ストレージサーバフォーマットはデータID(D1)と、データラベル(L1)と、最終更新時刻(TS,1)と、暗号化データ(EKM(MG))と、鍵復元用情報(C0,1)と、ユーザID(ID1)と、暗号鍵シェア(SKM,1)との7つの属性を持つ。データIDと、データラベルと、暗号化データと、暗号鍵シェアとの4つの属性は、メンバ端末フォーマットの属性と同様である。ユーザIDはグループメンバ端末を一意に識別するための識別子である。最終更新時刻は共有データを最後に更新した時刻である。鍵復元用情報は、暗号化データを復号化する際に使用する鍵を作成する際に使用する情報である。
【0121】
図21は、本実施形態において、グループメンバ端末1−1がストレージサーバ2にグループ共有データを保存する処理動作を示したシーケンス図である。
【0122】
(ステップW3−1)グループメンバ端末1−1を使用するユーザは、グループメンバ端末1−1を操作して、グループメンバ端末1−1に共有データMGを用意する。また、MGのファイル名をデータラベルL1とする。
(ステップW3−2)鍵カプセル化技術を用いて、グループメンバ端末1−1はpkGから暗号鍵KMと鍵復号用情報C0,1とを生成する。
【0123】
(ステップW3−3)共通鍵暗号により、グループメンバ端末1−1は、KMを用いて共有データMGを暗号化する。暗号化後の共有データ(暗号化データ)はEKM(MG)とする。暗号化完了後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するMGを削除する。
(ステップW3−4)グループメンバ端末1−1は、マスターシェアMS1を用いてKMに対応する暗号鍵シェアSKM,1を生成する。暗号鍵シェアSKM,1は以下の(23)式を用いて生成する。ここで、XKM,1=h(ID1‖r2)(r2は乱数、hはハッシュ関数)である。なお、KMはマスターシェアMS1と暗号鍵シェアSKM,1のみを用いて生成可能である。
【0124】
【数23】
【0125】
(ステップW3−5)グループメンバ端末1−1は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0126】
(ステップW3−6)グループメンバ端末1−1は、グループメンバ端末1−1が持つID(ID1)と、EKM(MG)と、C0,1と、L1と、SKM,1と、UIDと、PNとをストレージサーバ2に送付する。
(ステップW3−7)ストレージサーバ2は、グループメンバ端末1−1より送信されたUIDとPNとの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、ストレージサーバ2は当該データにデータID(D1)を割り当てる。また、ストレージサーバ2はID1と、L1と、EKM(MG)と、C0,1と、SKM,1と、D1と、最終更新時刻(TS,1)とをストレージサーバフォーマットのフォーマットに従ってストレージサーバ2の記憶部に格納する。最新更新時刻(TS,1)は、当該格納時の時刻である。
【0127】
(ステップW3−8)ステップW3−7での格納処理が終了したことをグループメンバ端末1−1に通知するために、ストレージサーバ2はACK(アック、Acknowledgement)メッセージをユーザ端末1に送信する。ACKメッセージにはD1とTS,1とTKS,1とが含まれる。
(ステップW3−9)ストレージサーバ2からACKメッセージを受信した後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するKMとC0,1とSKM,1とを削除する。また、グループメンバ端末1−1はローカルデータリストに当該データ用のエントリを新規に作成し、D1をデータIDとして、L1をデータラベルとして、T1,1(=TS,1)を最終参照時刻として、EKM(MG)を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、EKM(MG)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0128】
[共有データ保存処理:共有データ更新保存(鍵更新あり)]
次に、鍵の更新がある場合での本実施形態での更新保存の処理について図22を参照して説明する。図22は、本実施形態において、グループメンバ端末1−1がストレージサーバ2にグループ共有データを保存する処理動作を示したシーケンス図である。
【0129】
(ステップW3a−1)グループメンバ端末1−1を使用するユーザは、グループメンバ端末1−1を操作して、グループメンバ端末1−1に共有データMG’を用意する。また、MG’のファイル名をデータラベルL1とする。
(ステップW3a−2)鍵カプセル化技術を用いて、グループメンバ端末1−1はpkGから暗号鍵KM’と鍵復号用情報C0,1’とを生成する。
【0130】
(ステップW3a−3)共通鍵暗号により、グループメンバ端末1−1は、KM’を用いて共有データMG’を暗号化する。暗号化後の共有データ(暗号化データ)はEKM’(MG’)とする。暗号化完了後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するMG’を削除する。
(ステップW3a−4)グループメンバ端末1−1は、マスターシェアMS1を用いてKM’に対応する暗号鍵シェアSKM,1’を生成する。暗号鍵シェアSKM,1’の生成方法は、ステップW3−4と同様である。
【0131】
(ステップW3a−5)グループメンバ端末1−1は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0132】
(ステップW3a−6)グループメンバ端末1−1は、グループメンバ端末1−1が持つID(ID1)と、EKM’(MG’)と、C0,1’と、L1と、SKM,1’と、UIDと、PNとをストレージサーバ2に送付する。
(ステップW3a−7)ストレージサーバ2は、グループメンバ端末1−1より送信されたUIDとPNとの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、ストレージサーバ2は当該データにデータID(D1)を割り当てる。また、ストレージサーバ2はID1と、L1と、EKM’(MG’)と、C0,1’と、SKM,1’と、D1と、最終更新時刻(TS,1’)とをストレージサーバフォーマットのフォーマットに従ってストレージサーバ2の記憶部に格納する。最新更新時刻(TS,1’)は、当該格納時の時刻である。
【0133】
(ステップW3a−8)ステップW3a−7での格納処理が終了したことをグループメンバ端末1−1に通知するために、ストレージサーバ2はACK(アック、Acknowledgement)メッセージをユーザ端末1に送信する。ACKメッセージにはD1とTS,1’とが含まれる。
(ステップW3a−9)ストレージサーバ2からACKメッセージを受信した後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するKMとC0,1’とSKM,1’とを削除する。また、グループメンバ端末1−1はローカルデータリストに当該データ用のエントリを新規に作成し、D1をデータIDとして、L1をデータラベルとして、T1,1’(=TS,1’)を最終参照時刻として、EKM’(MG’)を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、EKM’(MG’)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
(ステップW3a−10)ストレージサーバ2は、SKM,1とSKM,1’に基づいて、MGに関して他のユーザ(IDi)が使用する暗号鍵シェアSKM,iをSKM,i’に更新する。暗号鍵シェアSKM,i’は以下の(24)式を用いて生成する。ここで、X1=h(ID1)は、グループメンバ端末1−1のマスターシェアMS1のx座標、Xi=h(IDi)は、グループメンバ端末iのマスターシェアMSiのx座標、XKM,iは暗号鍵シェアSKM,iのx座標である。
【0134】
【数24】
【0135】
[共有データ保存処理:共有データ更新保存(鍵更新なし)]
次に、鍵の更新がない場合での本実施形態での共有データの更新保存の処理について説明する。鍵の更新がない場合での本実施形態での共有データの更新保存の処理動作は、第1の実施形態の鍵の更新がない場合での共有データの更新保存の処理動作と同様に行う。
【0136】
[共有データ参照処理(新規参照)]
次に、グループメンバ端末1−1がストレージサーバ2に登録した共有データを、グループメンバ端末1−2が初めて参照する際の処理について図23を参照して説明する。図23は、本実施形態において、グループメンバ端末1−1がストレージサーバ2に登録した共有データを、グループメンバ端末1−2が初めて参照する際の処理動作を示したシーケンス図である。
【0137】
(ステップR3−0)ストレージサーバ2はグループメンバ端末1−1とグループメンバ端末1−2とにデータリストを送付する。例えば、データリスト送付のタイミングは、データリストの更新がある度に送信しても良い。また、ユーザ端末からデータアクセス要求があった場合のみ送信しても良い。
【0138】
(ステップR3−1)グループメンバ端末1−2は、ユーザから共有データの参照要求の入力を受け付ける。続いて、グループメンバ端末1−2は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0139】
(ステップR3−2)グループメンバ端末1−2は、参照するデータMGのデータID(D1)と、グループメンバ端末1−2が持つID(ID2)と、UIDと、PNとをデータ要求メッセージとしてストレージサーバ2に送付する。
【0140】
(ステップR3−3)ストレージサーバ2は、グループメンバ端末1−2より送信されたUIDとPNの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、ストレージサーバ2は、C0,1と、sk2,Sとを用いて鍵復元用情報C1,1=C0,1W1を生成する。なお、鍵復元用情報の生成方法は、ステップR1−3と同様である。
【0141】
(ステップR3−4)ストレージサーバ2は、D1と、EKM(MG)と、最終更新時刻(TS,1)と、C0,1と、C1,1とをグループメンバ端末1−2に送付する。
(ステップR3−5)グループメンバ端末1−2は、sk2,Uと、C0,1と、C1,1とを用いてKMを復元する。なお、KMの復元方法は、ステップR1−5と同様である。
【0142】
(ステップR3−6)グループメンバ端末1−2は、KMを用いてEKM(MG)を復号し、MGを取得する。
(ステップR3−7)グループメンバ端末1−2は、マスターシェアMS2を用いてKMに対応する暗号化シェアSKM,2を生成する。
【0143】
(ステップR3−8)グループメンバ端末1−2は、D1と、ID2と、SKM,2とをストレージサーバ2に送付する。また、MGの参照後、グループメンバ端末1−2はKMと、MGと、C0,1と、C1,1と、SKM,2とを削除する。また、ローカルデータリストの当該データ用のエントリに、D1をデータIDとして、L1をデータラベルとして、T2,1(=TS,1)を最終参照時刻として、EKM(MG)を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、EKM(MG)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0144】
[共有データ参照処理(再参照)]
次に、グループメンバ端末1−1がストレージサーバ2に登録した共有データを、グループメンバ端末1−2が再度参照する際の処理について図24を参照して説明する。図24は、本実施形態において、グループメンバ端末1−1がストレージサーバ2に登録した共有データを、グループメンバ端末1−2が再度参照する際の処理動作を示したシーケンス図である。
【0145】
(ステップR3a−0)ストレージサーバ2はグループメンバ端末1−1とグループメンバ端末1−2とにデータリストを送付する。例えば、データリスト送付のタイミングは、データリストの更新がある度に送信しても良い。また、ユーザ端末からデータアクセス要求があった場合のみ送信しても良い。
【0146】
(ステップR3a−1)グループメンバ端末1−2は、ユーザから共有データの参照要求の入力を受け付ける。続いて、グループメンバ端末1−2は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0147】
(ステップR3a−2)グループメンバ端末1−2は、参照するデータMGのデータID(D1)と、グループメンバ端末1−2が持つID(ID2)と、UIDと、PNと、当該データの最終参照時刻(T2,1)とをデータ要求メッセージとしてストレージサーバ2に送付する。なお、グループメンバ端末内の暗号化データEKM(MG)の有無を知らせる情報をデータ要求メッセージ内に追加しても良い。
【0148】
(ステップR3a−3)ストレージサーバ2は、グループメンバ端末1−2より送信されたUIDとPNの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、ストレージサーバ2は、暗号鍵シェアSKM,2と、EKM(MG)と、最終更新時刻(TS,1)とをグループメンバ端末1−2に送付する。なお、ステップR3a−2で要求メッセージ内に「グループメンバ端末内に暗号化データ有」を知らせる情報が付加されており、なおかつ当該データの更新がない場合はEKM(MG)を送付しない処理としても良い。ここで、当該データの更新の有無の判定方法として、例えば、グループメンバ端末1−iより送られた最終参照時刻(Ti,1)と、ストレージサーバ2内に格納されている最終更新時刻(TS,1)とを比較し、値が異なっている場合は更新されたと判定する方法がある。
【0149】
(ステップR3a−4)グループメンバ端末1−2は、SKM,2と、MS2とを用いてKMを復元する。
(ステップR3a−5)グループメンバ端末1−2は、KMを用いてEKM(MG)を復号し、MGを取得する。
(ステップR3a−6)MGの参照後、グループメンバ端末1−2はKMと、MGと、SKM,2とを削除する。また、ローカルデータリストの当該データ用のエントリに、T2,1(=TS,1)を最終参照時刻としてメンバ端末フォーマットに従って格納する。なお、EKM(MG)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0150】
[環境移行処理]
次に、グループメンバ端末1−2が紛失され、グループメンバ端末1−2の環境をグループメンバ端末1−3に移行する手順について図25を参照して説明する。図25は、本実施形態において、グループメンバ端末1−2の環境をグループメンバ端末1−3に移行する処理動作を示したシーケンス図である。
【0151】
(ステップRE3−1)グループメンバ端末1−3は、グループメンバ端末1−2の紛失と、グループメンバ端末1−2の環境をグループメンバ端末1−3へ移行する要求とを認証局3に通知する。また、グループメンバ端末1−3は、ステップP3−4dで外部デバイスに保管したSMS,2,1を取得する。
【0152】
(ステップRE3−2)認証局3は、グループメンバ端末1−3より端末移行情報を受信する。続いて認証局3は、グループメンバ端末1−3用の分割鍵sk’2,Uと分割鍵sk’2,Sとを生成する。生成方法は、ステップP1−2と同様である。
(ステップRE3−3)認証局3は、分割鍵sk’2,Uと公開鍵pkGとをグループメンバ端末1−3に送付する。また、認証局3は、分割鍵sk’2,Sをストレージサーバ2に送付する。ストレージサーバ2は、分割鍵sk’2,Sを受信後、グループメンバ端末1−2用の分割鍵sk2,Sを削除する。
【0153】
(ステップRE3−4)ストレージサーバ2は分割シェアS’MS,2,2を生成し、それをグループメンバ端末1−3へ送付する。分割シェアS’MS,i,2は以下の(25)式を用いて生成する。ここで、gj(x)=bjx(bjは乱数)である。
【0154】
【数25】
【0155】
グループメンバ端末1−3は、S’MS,2,2と、SMS,2,1とよりMS3を生成する。なお、MS3は以下の式(26)を満たす。
【0156】
【数26】
【0157】
(ステップRE3−5)認証局3は、グループメンバ端末1−2の環境をグループメンバ端末1−3に移行したことをストレージサーバ2に通知する。
【0158】
以上、第3の実施形態について説明したとおり、本実施形態では、暗号鍵を生成する基の情報であるマスターシェアと呼ばれる情報をグループメンバ端末内に生成し、生成したマスターシェアを用いて暗号鍵と暗号鍵シェアを生成する形態とした。また、グループメンバ端末が暗号鍵を変更して共有データを更新保存した場合、更新された暗号鍵の情報に基づいて、ストレージサーバはステップW3a−10にて、ストレージサーバが記憶する全グループメンバ端末の暗号鍵シェアを更新する。よって、グループメンバ端末が暗号鍵を変更して共有データを更新保存した後に、他のグループメンバ端末が一度参照したデータを再度参照するときには、再度鍵カプセル化技術による鍵復元を行わずに秘密分散法による鍵復元を利用することができる。
【0159】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0160】
なお、ステップR2−3の鍵更新判定には、暗号鍵のハッシュ値HK=h(KM)を用いて判定してもよい。具体的には、グループメンバ端末は、データ保存処理時にハッシュ値を生成し、ストレージサーバ2に送信する。その後、データ参照処理時において、グループメンバ端末は、ステップR2−2で暗号鍵のハッシュ値をストレージサーバ2に送付する。ストレージサーバ2はデータ保存処理時の暗号鍵のハッシュ値と、ステップR2−2の暗号鍵のハッシュ値とを比較し、一致した場合は暗号鍵の更新がないと判断しても良い。
【0161】
また、上述した実施形態におけるグループメンバ端末の暗号鍵生成機能、送信機能、受信機能、暗号鍵復元機能、復号機能、更新情報受信機能、分割鍵更新機能、シェア生成機能の各処理機能全体あるいはその一部、ストレージサーバの受信機能、記憶機能、鍵復元用情報生成機能、送信機能、分割鍵更新機能の各処理機能全体あるいはその一部、認証局のグループ鍵生成機能、分散鍵生成機能、分散鍵分割機能、鍵配布機能、受信機能、分割鍵更新情報生成機能、更新情報配布機能の各処理機能全体あるいはその一部は、これらの機能実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0162】
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してコンピュータプログラムを送信する場合の通信線のように、短時間の間、動的にコンピュータプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間コンピュータプログラムを保持しているものも含むものとする。また上記コンピュータプログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているコンピュータプログラムとの組み合わせで実現できるものであっても良い。
【図面の簡単な説明】
【0163】
【図1】第1の実施形態によるデータ共有システムを示す構成図である。
【図2】第1の実施形態での事前準備の処理動作を示すシーケンス図である。
【図3】第1の実施形態における鍵の配布方法を示した図である。
【図4】第1の実施形態において、グループメンバ端末の記憶部が記憶するデータのリストのデータフォーマットを示した図である。
【図5】第1の実施形態において、ストレージサーバの記憶部が記憶するデータのデータフォーマットを示した図である。
【図6】第1の実施形態において、ストレージサーバの記憶部が記憶するデータの例を示した図である。
【図7】第1の実施形態において、グループメンバ端末がストレージサーバにグループ共有データを保存する処理動作を示したシーケンス図である。
【図8】第1の実施形態において、暗号鍵を更新しないで、グループメンバ端末がストレージサーバにグループ共有データを更新保存する処理動作を示したシーケンス図である。
【図9】第1の実施形態において、ストレージサーバが各グループメンバ端末に送信するデータリストを示した図である。
【図10】第1の実施形態において、グループメンバ端末1−1がストレージサーバに登録した共有データを、グループメンバ端末1−2が参照する際の処理動作を示したシーケンス図である。
【図11】第1の実施形態において、グループメンバ端末1−2の環境をグループメンバ端末1−3に移行する処理動作を示したシーケンス図である。
【図12】第2の実施形態において、グループメンバ端末の記憶部が記憶するデータのリストのデータフォーマットを示した図である。
【図13】第2の実施形態において、ストレージサーバの記憶部が記憶するデータのデータフォーマットを示した図である。
【図14】第2の実施形態において、グループメンバ端末1−1がストレージサーバにグループ共有データを保存する処理動作を示したシーケンス図である。
【図15】第2の実施形態において、グループメンバ端末1−1がストレージサーバに登録した共有データを、グループメンバ端末1−2が参照する際の処理動作を示したシーケンス図である。
【図16】第2の実施形態において、グループメンバ端末が鍵を作成して共有データを参照する処理動作を示したシーケンス図である。
【図17】第2の実施形態において、グループメンバ端末が鍵の更新がない共有データを参照する処理動作を示したシーケンス図である。
【図18】第3の実施形態において、グループメンバ端末がマスターシェアの初期設定の処理動作を示したシーケンス図である。
【図19】第3の実施形態において、グループメンバ端末の記憶部が記憶するデータのリストのデータフォーマットを示した図である。
【図20】第3の実施形態において、ストレージサーバの記憶部が記憶するデータのデータフォーマットを示した図である。
【図21】第3の実施形態において、グループメンバ端末1−1がストレージサーバにグループ共有データを保存する処理動作を示したシーケンス図である。
【図22】第3の実施形態において、グループメンバ端末1−1がストレージサーバにグループ共有データを保存する処理動作を示したシーケンス図である。
【図23】第3の実施形態において、グループメンバ端末1−1がストレージサーバに登録した共有データを、グループメンバ端末1−2が初めて参照する際の処理動作を示したシーケンス図である。
【図24】第3の実施形態において、グループメンバ端末1−1がストレージサーバに登録した共有データを、グループメンバ端末1−2が再度参照する際の処理動作を示したシーケンス図である。
【図25】第3の実施形態において、グループメンバ端末1−2の環境をグループメンバ端末1−3に移行する処理動作を示したシーケンス図である。
【符号の説明】
【0164】
1−1〜1−N・・・グループメンバ端末、2・・・ストレージサーバ、3・・・認証局、4・・・通信ネットワーク
【技術分野】
【0001】
本発明は、鍵生成装置、端末装置、ストレージサーバおよびコンピュータプログラムに関する。
【背景技術】
【0002】
従来、共有データを暗号化してグループ内で共有する方法が知られている(例えば、特許文献1参照)。ある共有データをグループ内で共有する場合、まずグループ内で共有したいデータ(MG)を、暗号鍵(KM)を用いて共通鍵暗号で暗号化(EKM(MG))する。そして、当該グループの全メンバ(U1,...,UN)が所有する公開鍵(pk1,...,pkN)でKMを暗号化(Epk1(KM),...,EpkN(KM))し、それをリスト化して、EKM(MG)と共にサーバ等に保存する。データを参照するグループメンバ(Ui)は、リスト内から自身の公開鍵(pki)で暗号化されたKM(Epki(KM)とEKM(MG)を取得し、暗号化されたKMを自身の秘密鍵(ski)を用いて復号することにより、KMを得る。そして、KMでEKM(MG)を復号し、元データMGを得る。
【特許文献1】特開2005−223953号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、特許文献1に記載の技術においては、グループメンバの所有する端末装置が悪意の第三者に使用された場合、端末装置が共有データの暗号化に使用している秘密鍵を保持しているため秘密鍵が漏洩してしまう可能性がある。そのため、他のグループメンバによって共有データが暗号化されていたとしても、漏洩した秘密鍵を使用して第三者が共有データの内容を復号化できる可能性があるという問題があった。また、グループメンバが共有データを初めて公開する際、共有データの暗号化に使用した鍵をグループメンバが所有する公開鍵で暗号化する、すなわち、グループメンバの人数分鍵暗号化処理を行う必要があった。そのため、初めて共有データを公開する時の処理の負荷が大きいという問題があった。また、共有データの暗号化に使用する暗号鍵を更新した後に初めて共有データを公開する場合もグループメンバの人数分鍵暗号化処理を行う必要があった。そのため、共有データの暗号化に使用する暗号鍵を更新した後に初めて共有データを公開する時の処理の負荷が大きいという問題があった。
【0004】
本発明は上記の課題を解決するためになされたものであり、グループメンバの所有する端末装置が悪意の第三者に使用され、当該端末装置が保有している鍵が漏洩したとしても、他のグループメンバが暗号化した共有データを第三者によって復号化される可能性を軽減することが可能であり、初めて共有データを公開する際の処理の負荷の軽減が可能であり、共有データの暗号化に使用する暗号鍵の更新後に初めて共有データを公開する際の処理の負荷の軽減が可能である鍵生成装置、端末装置、ストレージサーバおよびコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明は、暗号化された共有データ(後述する実施形態の共有データMG、MG’に対応)を保管するストレージサーバと、N台(Nは1以上の整数)の端末装置と、鍵生成装置(後述する実施形態の認証局に対応)とを備えたデータ共有システムに含まれる前記鍵生成装置において、公開鍵と秘密鍵を生成するグループ鍵生成部と、第1の分散鍵(後述する実施形態の分散鍵ski,U(i=1,・・・,N)に対応)と第2の分散鍵(後述する実施形態の分散鍵ski,S(i=1,・・・,N)に対応)とからなる1組の分散鍵から前記秘密鍵を生成することが可能な分散鍵の組を生成する方法である秘密分散法を用いて、前記秘密鍵を生成することが可能な前記第1の分散鍵と前記第2の分散鍵との組をN組生成する分散鍵生成部と、前記分散鍵生成部で生成したN組の前記分散鍵の組に含まれるN個の前記第1の分散鍵をN台の前記端末装置に1個ずつ配布し、N台の前記端末装置それぞれに前記公開鍵を配布し、N組の前記分散鍵の組に含まれるN個の前記第2の分散鍵を前記ストレージサーバに配布する鍵配布部と、を備えたことを特徴とする鍵生成装置である。
【0006】
また、本発明は、移行元端末装置の環境の移行先の端末装置である移行先端末装置を一意に特定する移行先端末装置情報を含む端末装置移行情報を受信する受信部を備え、前記受信部で端末装置移行情報を受信した際に、前記分散鍵生成部は、前記第1の分散鍵と前記第2の分散鍵との組を1組生成し、前記鍵配布部は、前記分散鍵生成部で生成した1組の前記分散鍵の組に含まれる1個の前記第1の分散鍵と前記公開鍵とを前記移行先端末装置に配布し、前記分散鍵生成部で生成した1組の前記分散鍵の組に含まれる1個の前記第2の分散鍵を前記ストレージサーバに配布することを特徴とする鍵生成装置である。
【0007】
また、本発明は、暗号化された共有データを保管するストレージサーバと、端末装置と、鍵生成装置とを備えたデータ共有システムに含まれる前記端末装置において、前記鍵生成装置から送付された第1の分散鍵と公開鍵とを受信する鍵受信部と、前記鍵受信部が受信した前記公開鍵から暗号鍵(後述する実施形態の暗号鍵KMに対応)と第1の鍵復元用情報(後述する実施形態の鍵復元用情報C0,1に対応)を生成する暗号鍵生成部と、前記暗号鍵を使用して共有データを暗号化する暗号部と、暗号化した前記共有データと前記第1の鍵復元用情報とを前記ストレージサーバに送信する送信部と、暗号化された共有データと、第1の鍵復元用情報と、前記ストレージサーバが生成した第2の鍵復元用情報(後述する実施形態の鍵復元用情報C1,1に対応)とを前記ストレージサーバから受信する受信部と、前記鍵受信部が受信した前記第1の分散鍵と、前記受信部が受信した前記第1の鍵復元用情報と前記第2の鍵復元用情報と、に基づいて前記暗号鍵を復元する暗号鍵復元部と、前記暗号鍵復元部で復元した前記暗号鍵を用いて、前記受信部で受信した暗号化された前記共有データを復号する復号部と、を備えたことを特徴とする端末装置である。
【0008】
また、本発明は、ストレージサーバと、端末装置と、鍵生成装置とを備えたデータ共有システムに含まれるストレージサーバにおいて、前記鍵生成装置より第2の分散鍵を受信し、前記端末装置より暗号化された共有データと第1の鍵復元用情報とを受信する受信部と、前記受信部が受信した前記共有データと前記第1の鍵復元用情報とを関連付けて記憶し、前記受信部が受信した前記第2の分散鍵を記憶する記憶部と、前記第1の鍵復元用情報と、前記第2の分散鍵とに基づいて、第2の鍵復元用情報を生成する鍵復元用情報生成部と、暗号化された共有データと、前記第1の鍵復元用情報と、前記第2の鍵復元用情報とを前記端末装置に送信する送信部と、を備えたことを特徴とするストレージサーバである。
【0009】
また、本発明は、公開鍵と秘密鍵を生成するグループ鍵生成ステップと、第1の分散鍵と第2の分散鍵とからなる1組の分散鍵から前記秘密鍵を生成することが可能な分散鍵の組を生成する方法である秘密分散法を用いて、前記秘密鍵を生成することが可能な前記第1の分散鍵と前記第2の分散鍵との組をN組(Nは1以上の整数)生成する分散鍵生成ステップと、前記分散鍵生成ステップで生成したN組の前記分散鍵の組に含まれるN個の前記第1の分散鍵をN台の前記端末装置に1個ずつ配布し、N台の前記端末装置それぞれに前記公開鍵を配布し、N組の前記分散鍵の組に含まれるN個の前記第2の分散鍵を前記ストレージサーバに配布する鍵配布ステップと、をコンピュータに実行させるためのプログラムである。
【0010】
また、本発明は、鍵生成装置から送付された第1の分散鍵と公開鍵とを受信する鍵受信ステップと、前記鍵受信ステップで受信した前記公開鍵から暗号鍵と第1の鍵復元用情報を生成する暗号鍵生成ステップと、前記暗号鍵を使用して共有データを暗号化する暗号ステップと、暗号化した前記共有データと前記第1の鍵復元用情報とを前記ストレージサーバに送信する送信ステップと、暗号化された共有データと、第1の鍵復元用情報と、前記ストレージサーバが生成した第2の鍵復元用情報とを前記ストレージサーバから受信する受信ステップと、前記鍵受信ステップで受信した前記第1の分散鍵と、前記受信ステップで受信した前記第1の鍵復元用情報と前記第2の鍵復元用情報と、に基づいて前記暗号鍵を復元する暗号鍵復元ステップと、前記暗号鍵復元ステップで復元した前記暗号鍵を用いて、前記受信ステップで受信した暗号化された前記共有データを復号する復号ステップと、をコンピュータに実行させるためのプログラムである。
【0011】
また、本発明は、鍵生成装置より第2の分散鍵を受信し、端末装置より暗号化された共有データと第1の鍵復元用情報とを受信する受信ステップと、前記受信ステップで受信した前記共有データと前記第1の鍵復元用情報とを関連付けて記憶し、前記受信ステップで受信した前記第2の分散鍵を記憶する記憶ステップと、前記第1の鍵復元用情報と、前記第2の分散鍵とに基づいて、第2の鍵復元用情報を生成する鍵復元用情報生成ステップと、暗号化された共有データと、前記第1の鍵復元用情報と、前記第2の鍵復元用情報とを前記端末装置に送信する送信ステップと、をコンピュータに実行させるためのプログラムである。
【発明の効果】
【0012】
本発明によれば、グループメンバの所有する端末装置が悪意の第三者に使用され、当該端末装置が保有している鍵が漏洩したとしても、他のグループメンバが暗号化した共有データを第三者によって復号化される可能性を軽減することが可能であり、初めて共有データを公開する際の処理の負荷の軽減が可能であり、共有データの暗号化に使用する暗号鍵の更新後に初めて共有データを公開する際の処理の負荷の軽減が可能である。
【発明を実施するための最良の形態】
【0013】
以下、本発明の第1の実施形態から第3の実施形態について説明する。はじめに、本発明の第1の実施形態から第3の実施形態で使用している秘密分散法について説明する。秘密分散法とは、秘密情報を数人で分散して保管することで、元の秘密情報を安全に保管する方法である。(k,n)閾値秘密分散法は、秘密分散法の一種であり、秘密情報をn個の分割情報(シェア)に分割してそれぞれ保管し、その内のk個以上の分割情報を入手することができれば、元の秘密情報を復元することができるものである。(参考文献:「A. Shamir,“How to share a secret,“Communications of the ACM,Vol.22,No.11,pp.612−613,1979」)
【0014】
また、共通鍵暗号で利用する暗号鍵を、公開鍵暗号を用いて安全に配送するための鍵カプセル化技術(KEM:Key Encapsulation Mechanism)であるRSA(アールエスエー)暗号をベースとしたRSA−KEMについて説明する。RSA−KEMの手順の概要は以下の通りである。
[鍵生成手順]RSA秘密鍵(e,n)および公開鍵(d,(n))を生成する。ここで、n=pq (p,qは素数)、ed≡1(mod λ(n))(eとλ(n)は互いに素、λ(n)=LCM(p−1,q−1)(LCM(a,b)はaとbの最小公倍数))である。
[暗号化、暗号鍵生成手順](ステップS101)乱数rを生成する。ここでrは(1)式を満たす。
【0015】
【数1】
【0016】
(ステップS102)rを(2)式で文字列に変換する。ここで、I2OSPはinterger to octet string conversionである。
【0017】
【数2】
【0018】
(ステップS103)暗号文C0を(3)式で生成する。
【0019】
【数3】
【0020】
(ステップS104)暗号鍵Kを(4)式で生成する。ここで、KDFは(Key Derivation Functionであり、KeyLenは暗号鍵の鍵長である。
【0021】
【数4】
【0022】
[復号、暗号鍵復元手順](ステップS110)文字列Rを(5)式で復元する。
【0023】
【数5】
【0024】
(ステップS111)暗号鍵Kを(6)式で復元する。
【0025】
【数6】
【0026】
(参考文献:「V.Shoup,“FCD 18033−2 Encryption algorithms−Part 2:Asymmetric ciphers”,http://shoup.net/iso/std6.pdf」)
【0027】
(第1の実施形態)
次に、本発明の第1の実施形態について図面を参照して説明する。図1は、本実施形態によるデータ共有システムを示す構成図である。図示する例では、データ共有システムはグループメンバ端末(端末装置)1−1、1−2、・・・、1−Nと、ストレージサーバ2と、認証局(鍵生成装置)3と、通信ネットワーク4とを備える。グループメンバ端末1−1、1−2、・・・、1−Nは、通信ネットワーク4を介してストレージサーバ2にアクセスし、ストレージサーバ2との間でデータを送受することができる。なお、通信ネットワーク4は、無線ネットワークであっても、有線ネットワークであってもよい。例えば、通信ネットワーク4は、インターネットと固定電話網や移動電話網などから構成されてもよい。
【0028】
グループメンバ端末1−1、1−2、・・・、1−Nは、移動しながら使用可能な装置(例えば、携帯型装置)であってもよく、或いは、固定して使用される装置(例えば、パーソナルコンピュータ等の据置き型装置)であってもよい。また、携帯型の端末装置としては、例えば、移動通信事業者が提供する移動通信網の端末装置(例えば、データ通信機能を有する携帯電話機、データ通信端末装置等)、PDA(Personal Digital Assistants:個人用情報機器)などが挙げられる。また、PDAの場合、通信手段を内蔵していてもよく、外部から通信手段を接続するものであってもよい。
【0029】
グループメンバ端末1−1、1−2、・・・、1−Nは、演算処理部、記憶部、通信部、入力部、表示部、外部インタフェースなどを備える。演算処理部は、CPU(中央処理装置)およびメモリ等から構成される。記憶部は、例えば、ハードディスク装置、光磁気ディスク装置、DVD(Digital Versatile Disk)等の光ディスク装置、フラッシュメモリ等の不揮発性のメモリ、DRAM(DynamicRandom Access Memory)等の揮発性のメモリ、などの記憶装置、あるいはそれらの組み合わせにより構成される。記憶部は、CPUで実行されるコンピュータプログラム等の各種データを記憶する。通信部は、通信ネットワーク4を介したデータ通信を行う。入力部は、キーボード、テンキー、マウス等の入力デバイスから構成され、ユーザの操作に応じたデータ入力を行う。表示部は、CRT(Cathode Ray Tube)や液晶表示装置等の表示デバイスから構成され、データ表示を行う。外部インタフェースは、外部機器との間で有線又は無線により直接にデータを送受する。
【0030】
グループメンバ端末1−1、1−2、・・・、1−Nは、CPUがコンピュータプログラムを実行することにより、暗号鍵生成機能と、送信機能と、受信機能と、暗号鍵復元機能と、復号機能と、更新情報受信機能と、分割鍵更新機能と、シェア生成機能とを実現する。なお、コンピュータプログラムは、グループメンバ端末1−1、1−2、・・・、1−Nに固定的にインストールされていてもよく、或いは、サーバ上にあるコンピュータプログラムが必要なときに通信回線を介してダウンロードされてもよい。
【0031】
ストレージサーバ2は、演算処理部、記憶部、通信部、入力部、表示部、外部インタフェースなどを備える。演算処理部は、CPUおよびメモリ等から構成される。記憶部は、例えば、ハードディスク装置、光磁気ディスク装置、DVD等の光ディスク装置、フラッシュメモリ等の不揮発性のメモリ、DRAM等の揮発性のメモリなどの記憶装置、あるいはそれらの組み合わせにより構成される。記憶部は、CPUで実行されるコンピュータプログラム等の各種データを記憶する。通信部は、通信ネットワーク4を介したデータ通信を行う。入力部は、キーボード、テンキー、マウス等の入力デバイスから構成され、ユーザの操作に応じたデータ入力を行う。表示部は、CRTや液晶表示装置等の表示デバイスから構成され、データ表示を行う。外部インタフェースは、外部機器との間で有線又は無線により直接にデータを送受する。また、記憶部は、グループメンバ端末1−1、1−2、・・・、1−Nから送られてきた各種データを記憶するデータ管理機能を有する。ストレージサーバ2の受信機能と、記憶機能と、鍵復元用情報生成機能と、送信機能と、分割鍵更新機能とは、ストレージサーバ2のCPUが上記機能を実現するためのコンピュータプログラムを実行することにより実現される。
【0032】
認証局3は、演算処理部、記憶部、通信部、入力部、表示部、外部インタフェースなどを備える。演算処理部は、CPUおよびメモリ等から構成される。記憶部は、例えば、ハードディスク装置、光磁気ディスク装置、DVD等の光ディスク装置、フラッシュメモリ等の不揮発性のメモリ、DRAM等の揮発性のメモリなどの記憶装置、あるいはそれらの組み合わせにより構成される。記憶部は、CPUで実行されるコンピュータプログラム等の各種データを記憶する。通信部は、通信ネットワーク4を介したデータ通信を行う。入力部は、キーボード、テンキー、マウス等の入力デバイスから構成され、ユーザの操作に応じたデータ入力を行う。表示部は、CRTや液晶表示装置等の表示デバイスから構成され、データ表示を行う。外部インタフェースは、外部機器との間で有線又は無線により直接にデータを送受する。認証局3のグループ鍵生成機能と、分散鍵生成機能と、分散鍵分割機能と、鍵配布機能と、受信機能と、分割鍵更新情報生成機能と、更新情報配布機能とは、認証局3のCPUが上記機能を実現するためのコンピュータプログラムを実行することにより実現される。
【0033】
[事前準備]
次に、本実施形態での事前準備について図2を参照して説明する。図2は、本実施形態での事前準備の処理動作を示すシーケンス図である。事前準備では、認証局3は暗号用の鍵を作成し、作成した鍵をグループメンバ端末1−1、1−2と、ストレージサーバ2に配布する。
【0034】
(ステップP1−1)認証局3はグループ用公開鍵と秘密鍵のペア(pkG,skG)を生成する。以下、RSA暗号の公開鍵をpkG、秘密鍵をskGとして説明する。すなわち、pkG=(e,n)、skG=(d)、ここでn=pq (p,qは素数、p=2p’+1,q=2q’+1,p’,q’は素数)、ed≡1(mod λ(n))、λ(n)=2p’q’、gcd(e,λ(n))=1である。
【0035】
(ステップP1−2)認証局3は、グループメンバ端末ごとに、(2,2)閾値秘密分散法を用いてskGを2個の分散鍵に分割する。グループメンバ端末1−1用の分散鍵は(sk1,U,sk1,S)である。グループメンバ端末1−2用の分散鍵は(sk2,U,sk2,S)である。具体的には、各グループメンバ端末に対応するする有限体GF(λ(n))上の多項式fi(x)を生成し、分散鍵ski,U,ski,Sを生成する。なお、ski,U,ski,Sは、以下の(7)式から(13)式を満たす。また、aiは乱数(ai=1,・・・,λ(n)−1)、IDiはグループメンバ端末iのID、IDSはストレージサーバのIDである。また、i=1,・・・,N(Nはデータ共有システムに含まれるグループメンバ端末数であり、Nは1以上の整数)である。
【0036】
【数7】
【0037】
【数8】
【0038】
【数9】
【0039】
【数10】
【0040】
【数11】
【0041】
【数12】
【0042】
【数13】
【0043】
(ステップP1−3)認証局3は、データ共有システムに含まれる各グループメンバ端末にグループ用公開鍵pkGを一つずつ配布する。また、認証局3は、ステップP1−2で各端末用に生成した分散鍵ski,U(i=1,・・・,N)を、対応する端末に配布する。また、認証局3は、ステップP1−2で各端末用に生成した分散鍵ski,S(i=1,・・・,N)を、ストレージサーバ2にすべて配布する。
【0044】
図3は、本実施形態における鍵の配布方法を示した図である。図示する例では、認証局3は、グループ用公開鍵pkGと、グループ用秘密鍵skGとを有している。また、認証局3は、グループ用秘密鍵skGから多項式f1(x)を生成し、生成した多項式f1(x)から分散鍵sk1,Sとsk1,Uとを生成している。また、認証局3は、グループ用秘密鍵skGから多項式f2(x)を生成し、生成した多項式f2(x)から分散鍵sk2,Sとsk2,Uとを生成している。以下同様に、認証局3は、データ共有システムに含まれているグループメンバ端末(1−1〜1−N)数と同数の分散鍵skN,SとskN,Uとを生成している。
【0045】
認証局3は、グループ用公開鍵pkGと、分散鍵sk1,Uとをグループメンバ端末1−1に配布する。また、認証局3は、グループ用公開鍵pkGと、分散鍵sk2,Uとをグループメンバ端末1−2に配布する。以下同様に、認証局3は、データ共有システムに含まれているグループメンバ端末(1−1〜1−N)それぞれに、グループ用公開鍵pkGと、分散鍵skN,Uとを配布する。認証局3は、分散鍵sk1,S〜skN,Sをストレージサーバ2に配布する。なお、認証局3がグループメンバ端末(1−1〜1−N)およびストレージサーバ2へ分散鍵を配布する方法としては、ネットワーク通信で配布してもよく、記録媒体などの外部デバイスを介して配布しても良い。
【0046】
[共有データ保存処理:共有データ新規保存、共有データ更新保存(鍵更新あり)]
次に、鍵の更新がある場合での本実施形態での共有データの新規保存または共有データの更新保存の処理について図4から図6を参照して説明する。図4は、本実施形態において、グループメンバ端末(1−1〜1−N)の記憶部が記憶するデータのリスト(ローカルデータリスト)のデータフォーマット(以下、メンバ端末フォーマットと記す。)を示した図である。図示する例では、メンバ端末フォーマットはデータID(D1)と、データラベル(L1)と、最終参照時刻(T1,1)と、暗号化データ(EKM(MG))との4つの属性を持つ。データIDは、データ共有システム内でデータを一意に識別するための識別子である。データラベルは、例えばファイル名など、データの内容や形態を表す名称である。最終参照時刻は、共有データを最後に参照した時刻である。暗号化データは、共有データを暗号化したデータである。
【0047】
図5は、本実施形態において、ストレージサーバ2の記憶部が記憶するデータのデータフォーマット(以下、ストレージサーバフォーマットと記す。)を示した図である。図示する例では、ストレージサーバフォーマットはデータID(D1)と、ユーザID(ID1)と、データラベル(L1)と、最終更新時刻(TS,1)と、暗号化データ(EKM(MG))と、鍵復元用情報(C0,1)との6つの属性を持つ。データIDと、データラベルと、暗号化データの3つの属性は、メンバ端末フォーマットの属性と同様である。ユーザIDは、暗号化データを生成したグループメンバ端末を一意に識別するための識別子である。最終更新時刻は共有データを最後に更新した時刻である。鍵復元用情報は、暗号化データを復号化する際に使用する鍵を作成する際に使用する情報である。
【0048】
図6は、本実施形態において、ストレージサーバ2の記憶部が記憶するデータの例を示した図である。図示する例では、ストレージサーバ2の記憶部はデータレコード1からデータレコードXまでのX個のデータを記憶する。各データレコードのフォーマットは図4と同様である。
【0049】
図7は、本実施形態において、グループメンバ端末1−1がストレージサーバ2にグループ共有データを保存する処理動作を示したシーケンス図である。
【0050】
(ステップW1−1)グループメンバ端末1−1を使用するユーザは、グループメンバ端末1−1を操作して、グループメンバ端末1−1に共有データMGを用意する。また、MGのファイル名をデータラベルL1とする。
(ステップW1−2)鍵カプセル化技術を用いて、グループメンバ端末1−1はpkGから暗号鍵KMと鍵復元用情報C0,1とを生成する。
【0051】
(ステップW1−3)共通鍵暗号により、グループメンバ端末1−1は、KMを用いて共有データMGを暗号化する。暗号化後の共有データ(暗号化データ)はEKM(MG)とする。暗号化完了後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するMGとKMとを削除する。
(ステップW1−4)グループメンバ端末1−1は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0052】
(ステップW1−5)グループメンバ端末1−1は、グループメンバ端末1−1が持つID(ID1)と、EKM(MG)と、C0,1と、L1と、UIDと、PNとをストレージサーバ2に送付する。
(ステップW1−6)ストレージサーバ2は、グループメンバ端末1−1より送信されたUIDとPNの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、ストレージサーバ2はグループメンバ端末1−1より受信した当該データの組にデータID(D1)を割り当てる。また、ストレージサーバ2はID1と、EKM(MG)と、C0,1と、L1と、D1と、最終更新時刻(TS,1)とをストレージサーバフォーマットに従ってストレージサーバ2の記憶部に格納する。最新更新時刻(TS,1)は、当該格納時の時刻である。
【0053】
(ステップW1−7)ステップW1−6での格納処理が終了したことをグループメンバ端末1−1に通知するために、ストレージサーバ2はACK(アック、Acknowledgement)メッセージをユーザ端末1に送信する。ACKメッセージにはD1とTS,1とが含まれる。
(ステップW1−8)ストレージサーバ2からACKメッセージを受信した後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するKMとC0,1とを削除する。また、グループメンバ端末1−1はローカルデータリストに当該データ用のエントリを新規に作成し、D1をデータIDとして、L1をデータラベルとして、T1,1(=TS,1)を最終参照時刻として、EKM(MG)を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、EKM(MG)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0054】
[共有データ保存処理:共有データ更新保存(鍵更新なし)]
次に、鍵の更新がない場合での本実施形態での共有データの更新保存の処理について図8を参照して説明する。鍵の更新がない共有データの更新保存の場合としては、共有データを更新するグループメンバ端末が、以前に自身でストレージサーバに登録した共有データを更新する場合などがある。この場合は、以前に共有データを保存した際に使用した暗号鍵KMを用いて、再度更新対象の共有データの暗号化を行うことができるため、鍵生成手順を省略する。
【0055】
図8は、本実施形態において、暗号鍵を更新しないで、グループメンバ端末1−1がストレージサーバ2にグループ共有データを更新保存する処理動作を示したシーケンス図である。
【0056】
(ステップWa1−1)グループメンバ端末1−1を使用するユーザは、グループメンバ端末1−1を操作して、グループメンバ端末1−1に共有データMG’を用意する。また、MG’のファイル名をデータラベルL1’とする。
(ステップWa1−2)共通鍵暗号により、グループメンバ端末1−1は、KMを用いて共有データMG’を暗号化する。暗号化後の共有データ(暗号化データ)はEKM(MG’)とする。暗号化完了後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するMG’を削除する。
(ステップWa1−3)グループメンバ端末1−1は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0057】
(ステップW1a−4)グループメンバ端末1−1は、グループメンバ端末1−1が持つID(ID1)と、EKM(MG’)と、L1’と、データID(D1)と、UIDと、PNとをストレージサーバ2に送付する。
(ステップW1a−5)ストレージサーバ2は、グループメンバ端末1−1より送信されたUIDとPNの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、ストレージサーバ2はID1と、EKM(MG’)と、L1’と、最終更新時刻(TS,1’)とをストレージサーバフォーマットのフォーマットに従って、更新前のデータを記憶するストレージサーバ2の記憶部に上書きする。最新更新時刻(TS,1’)は、当該上書き時の時刻である。
【0058】
(ステップW1a−6)ステップW1a−5での格納処理が終了したことをグループメンバ端末1−1に通知するために、ストレージサーバ2はACKメッセージをユーザ端末1に送信する。ACKメッセージにはTS,1’が含まれる。
(ステップW1a−7)ストレージサーバ2からACKメッセージを受信した後、グループメンバ端末1−1はローカルデータリストの当該データ用のエントリに、D1をデータIDとして、L1’をデータラベルとして、T1,1’(=TS,1’)を最終参照時刻として、EKM(MG’)を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、EKM(MG’)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0059】
[共有データ参照処理]
次に、グループメンバ端末1−1がストレージサーバ2に登録した共有データを、グループメンバ端末1−2が参照する際の処理について図9、図10を参照して説明する。
【0060】
図9は、本実施形態において、ストレージサーバが各グループメンバ端末に送信するデータリストを示した図である。データリストは、ストレージサーバ2の記憶部が記憶するデータのデータラベルを記憶する。また、データリストはデータラベルと当該データラベルの最終更新時刻とを関連付けて記憶する。図示する例では、ストレージサーバ2が記憶するデータのデータラベルは、データラベル1(D1)、データラベル2(D2)、・・・、データラベルX(DX)である。また、データラベル1(D1)の最終更新時刻は、最終更新時刻1(L1)、データラベル2(D2)の最終更新時刻は、最終更新時刻2(L2)、・・・、データラベルX(DX)の最終更新時刻は、最終更新時刻X(LX)である。
【0061】
図10は、本実施形態において、グループメンバ端末1−1がストレージサーバ2に登録した共有データを、グループメンバ端末1−2が参照する際の処理動作を示したシーケンス図である。
【0062】
(ステップR1−0)ストレージサーバ2はグループメンバ端末1−1とグループメンバ端末1−2とにデータリストを送付する。例えば、データリスト送付のタイミングは、データリストの更新がある度に送信しても良い。また、ユーザ端末からデータアクセス要求があった場合のみ送信しても良い。
【0063】
(ステップR1−1)グループメンバ端末1−2は、ユーザから共有データの参照要求の入力を受け付ける。続いて、グループメンバ端末1−2は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0064】
(ステップR1−2)グループメンバ端末1−2は、参照するデータMGのデータID(D1)と、グループメンバ端末1−2が持つID(ID2)と、UIDと、PNとをデータ要求メッセージとしてストレージサーバ2に送付する。当該データを過去に参照したことがある場合は、当該データの最終参照時刻(T2,1)をデータ要求メッセージに追加する。なお、グループメンバ端末内の暗号化データEKM(MG)の有無を知らせる情報をデータ要求メッセージ内に追加しても良い。図示する例では、グループメンバ端末1−2はデータMGを初めて参照するため、要求メッセージ内に最終参照時刻(T2,1)は含まれていない。
【0065】
(ステップR1−3)ストレージサーバ2は、グループメンバ端末1−2より送信されたUIDとPNの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、C0,1と、sk2,Sとを用いて、ストレージサーバ2は鍵復元用情報C1,1=C0,1W1を生成する。なお、W1は以下の(14)式を満たす。
【0066】
【数14】
【0067】
(ステップR1−4)ストレージサーバ2は、EKM(MG)と、最終更新時刻(TS,1)と、C0,1と、C1,1とをグループメンバ端末1−2に送付する。なお、ステップR1−0で要求メッセージ内に「グループメンバ端末内に暗号化データ有」を知らせる情報が付加されており、なおかつ当該データの更新がない場合はEKM(MG)を送付しない処理としても良い。ここで、当該データの更新の有無の判定方法として、例えば、グループメンバ端末より送られた最終参照時刻(T2,1)と、ストレージサーバ2内に格納されている最終更新時刻(TS,1)とを比較し、値が異なっている場合は更新されたと判定する方法がある。
【0068】
(ステップR1−5)グループメンバ端末1−2は、sk2,Uと、C0,1と、C1,1とを用いてKMを復元する。また、最終参照時刻(T2,1)をTS,1に更新する。なお、KMの復元方法は以下の通りである。まず、以下の(15)式よりrを復元する。続いて以下の(16)式よりKMを復元する。なお、W2は以下の(17)式を満たす。
【0069】
【数15】
【0070】
【数16】
【0071】
【数17】
【0072】
(ステップR1−6)グループメンバ端末1−2は、KMを用いてEKM(MG)を復号し、MGを取得する。
(ステップR1−7)MGの参照後、グループメンバ端末1−2はKMと、MGと、C0,1と、C1,1とを削除する。なお、EKM(MG)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0073】
[環境移行処理]
次に、グループメンバ端末1−2が紛失され、グループメンバ端末1−2の環境をグループメンバ端末1−3に移行する手順について図11を参照して説明する。環境移行とは、あるグループメンバ端末が有している共有データの暗号化・復号化を実行可能な環境を、別のグループメンバ端末に移行することを言う。本実施形態では、移行元の端末装置はグループメンバ端末1−2であり、移行先の端末装置はグループメンバ端末1−3である。図11は、本実施形態において、グループメンバ端末1−2が有している共有データの暗号化・復号化を実行可能な環境を、グループメンバ端末1−3に移行する処理動作を示したシーケンス図である。
【0074】
(ステップRE1−1)グループメンバ端末1−3は、グループメンバ端末1−2の紛失と、グループメンバ端末1−2の環境をグループメンバ端末1−3へ移行する要求とを含む端末装置移行情報を認証局3に通知する。端末装置移行情報には、端末装置の環境を移行する元の端末装置としてグループメンバ端末1−2の端末IDと、端末装置の環境を移行する先の端末装置としてグループメンバ端末1−3の端末IDとが含まれる。なお、通知方法はオンラインで通知しても良く、オフラインで通知しても良い。
【0075】
(ステップRE1−2)認証局3は、グループメンバ端末1−3より端末移行情報を受信する。続いて認証局3は、グループメンバ端末1−3用の分割鍵sk’2,Uと分割鍵sk’2,Sとを生成する。生成方法は、ステップP1−2と同様である。
(ステップRE1−3)認証局3は、分割鍵sk’2,Sをストレージサーバ2に送付する。ストレージサーバ2は、分割鍵sk’2,Sを受信後、グループメンバ端末1−2用の分割鍵sk2,Sを削除する。
(ステップRE1−4)認証局3は、グループメンバ端末1−3用の分割鍵sk’2,Uと公開鍵pkGとをグループメンバ端末1−3に送付する。
【0076】
以上より、暗号化された共有データの復号化には、必ずストレージサーバが保持する分散鍵sk2,Sと鍵復元用情報C0,1とが必要であるため、グループメンバの所有する端末装置が悪意の第三者に使用され、当該端末装置が保有している鍵が漏洩したとしても、他のグループメンバが暗号化した共有データを第三者によって復号化される可能性を軽減することが可能である。また、従来、初めて共有データを公開する際に必要であった、共有データの暗号化に使用した鍵をグループメンバが所有する公開鍵で暗号化する、すなわち、グループメンバの人数分鍵暗号化処理を行う必要がないため、初めて共有データを公開する際の処理の負荷の軽減が可能である。また、従来、共有データの暗号化に使用する暗号鍵を更新した後に初めて共有データを公開する場合に必要であった、グループメンバの人数分の鍵暗号化処理を行う必要がないため、共有データの暗号化に使用する暗号鍵の更新後に初めて共有データを公開する際の処理の負荷の軽減が可能である。
【0077】
(第2の実施形態)
次に、本発明の第2の実施形態について図面を参照して説明する。本実施形態では、第1の実施形態の鍵カプセル化技術による鍵交換処理に加え、秘密分散による鍵交換処理を追加する。具体的には、グループメンバ端末は、新規に共有データをストレージサーバに登録する際、または初めて共有データを参照する際に、当該データの暗号鍵を秘密分散法でS1とS2との2つのシェアに分散する。なお、暗号鍵は分散した2つのシェアS1とS2のみを用いて生成可能である。続いて、グループメンバ端末はシェアS1をストレージサーバに送付し、シェアS2を自端末内に保持する。また、本実施形態によるデータ共有システムは第1の実施形態のデータ共有システムと同様である。
【0078】
[事前準備]
次に、本実施形態での事前準備について説明する。本実施形態での事前準備の処理動作は第1の実施形態の事前準備の処理動作と同様に行う。
【0079】
[共有データ保存処理:共有データ新規保存、共有データ更新保存(鍵更新あり)]
次に、鍵の更新がある場合での本実施形態での共有データの新規保存または共有データの更新保存の処理について図12から図14を参照して説明する。図12は、本実施形態において、グループメンバ端末の記憶部が記憶するデータのリスト(ローカルデータリスト)のデータフォーマット(以下、メンバ端末フォーマットと記す。)を示した図である。図示する例では、メンバ端末フォーマットはデータID(D1)と、データラベル(L1)と、最終参照時刻(T1,1)と、最終鍵参照時刻(TK1,1)と、暗号鍵シェア(S1,2)と、暗号化データ(EKM(MG))との6つの属性を持つ。データIDは、データ共有システム内でデータを一意に識別するための識別子である。データラベルは、例えばファイル名など、データの内容や形態を表す名称である。最終参照時刻は、共有データを最後に参照した時刻である。最終鍵参照時刻は、暗号鍵を最後に参照した時刻である。暗号鍵シェアは、グループメンバ端末が暗号鍵を秘密分散法で分散して作成したシェアである。暗号化データは、共有データを暗号化したデータである。
【0080】
図13は、本実施形態において、ストレージサーバ2の記憶部が記憶するデータのデータフォーマット(以下、ストレージサーバフォーマットと記す。)を示した図である。図示する例では、ストレージサーバフォーマットはデータID(D1)と、データラベル(L1)と、最終更新時刻(TS,1)と、最終鍵更新時刻(TKS,1)と、暗号化データ(EKM(MG))と、鍵復元用情報(C0,1)と、ユーザID(ID1)と、暗号鍵シェア(S1,1)との8つの属性を持つ。データIDと、データラベルと、暗号化データと、暗号鍵シェアとの4つの属性は、メンバ端末フォーマットの属性と同様である。ユーザIDはグループメンバ端末を一意に識別するための識別子である。最終更新時刻は共有データを最後に更新した時刻である。最終鍵更新時刻は暗号鍵を最後に更新した時刻である。鍵復元用情報は、暗号化データを復号化する際に使用する鍵を作成する際に使用する情報である。
【0081】
図14は、本実施形態において、グループメンバ端末1−1がストレージサーバ2にグループ共有データを保存する処理動作を示したシーケンス図である。
【0082】
(ステップW2−1)グループメンバ端末1−1を使用するユーザは、グループメンバ端末1−1を操作して、グループメンバ端末1−1に共有データMGを用意する。また、MGのファイル名をデータラベルL1とする。
(ステップW2−2)鍵カプセル化技術を用いて、グループメンバ端末1−1はpkGから暗号鍵KMと鍵復号用情報C0,1とを生成する。
【0083】
(ステップW2−3)共通鍵暗号により、グループメンバ端末1−1は、KMを用いて共有データMGを暗号化する。暗号化後の共有データ(暗号化データ)はEKM(MG)とする。暗号化完了後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するMGを削除する。
(ステップW2−4)グループメンバ端末1−1は、(2,2)閾値分散法を用いてKMに対応するシェアS1,1とシェアS1,2とを作成する。なお、KMは分散した2つのシェアS1,1とシェアS1,2のみを用いて生成可能である。シェアを作成後、KMを削除する。なお、シェアSi,1は以下の(18)式を用いて生成する。ここで、Xi,1=h(IDi)(hはハッシュ関数)、u1(x)=b1x+KM、u1(x)は有限体GF(2b−1)上の多項式(bは暗号鍵の鍵長)である。
【0084】
【数18】
【0085】
また、シェアSi,2は以下の(19)式を用いて生成する。ここで、Xi,2=h(IDi‖r1)(r1は乱数、hはハッシュ関数)である。
【0086】
【数19】
【0087】
(ステップW2−5)グループメンバ端末1−1は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0088】
(ステップW2−6)グループメンバ端末1−1は、グループメンバ端末1−1が持つID(ID1)と、S1,1と、EKM(MG)と、C0,1と、L1と、UIDと、PNとをストレージサーバ2に送付する。
(ステップW2−7)ストレージサーバ2は、グループメンバ端末1−1より送信されたUIDとPNとの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、ストレージサーバ2は当該データにデータID(D1)を割り当てる。また、ストレージサーバ2はID1と、L1と、EKM(MG)と、C0,1と、S1,1と、D1と、最終更新時刻(TS,1)と、最終鍵更新時刻(TKS,1)とをストレージサーバフォーマットのフォーマットに従ってストレージサーバ2の記憶部に格納する。最新更新時刻(TS,1)および最終鍵更新時刻(TKS,1)は、当該格納時の時刻である。
【0089】
(ステップW2−8)ステップW2−7での格納処理が終了したことをグループメンバ端末1−1に通知するために、ストレージサーバ2はACK(アック、Acknowledgement)メッセージをユーザ端末1に送信する。ACKメッセージにはD1とTS,1とTKS,1とが含まれる。
(ステップW2−9)ストレージサーバ2からACKメッセージを受信した後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するKMと、C0,1とS1,1とを削除する。また、グループメンバ端末1−1はローカルデータリストに当該データ用のエントリを新規に作成し、D1をデータIDとして、L1をデータラベルとして、T1,1(=TS,1)を最終参照時刻として、TK1,1(=TKS,1)を最終鍵参照時刻として、S1,2を暗号鍵シェアとして、EKM(MG)を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、EKM(MG)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0090】
[共有データ保存処理:共有データ更新保存(鍵更新なし)]
次に、鍵の更新がない場合での本実施形態での共有データの更新保存の処理について説明する。鍵の更新がない場合での本実施形態での共有データの更新保存の処理動作は、第1の実施形態の鍵の更新がない場合での共有データの更新保存の処理動作と同様に行う。
【0091】
[共有データ参照処理]
次に、グループメンバ端末1−1がストレージサーバ2に登録した共有データを、グループメンバ端末1−2が参照する際の処理について図15を参照して説明する。図15は、本実施形態において、グループメンバ端末1−1がストレージサーバ2に登録した共有データを、グループメンバ端末1−2が参照する際の処理動作を示したシーケンス図である。
【0092】
(ステップR2−0)ストレージサーバ2はグループメンバ端末1−1とグループメンバ端末1−2とにデータリストを送付する。例えば、データリスト送付のタイミングは、データリストの更新がある度に送信しても良い。また、ユーザ端末からデータアクセス要求があった場合のみ送信しても良い。
【0093】
(ステップR2−1)グループメンバ端末1−2は、ユーザから共有データの参照要求の入力を受け付ける。続いて、グループメンバ端末1−2は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0094】
(ステップR2−2)グループメンバ端末1−2は、参照するデータMGのデータID(D1)と、グループメンバ端末1−2が持つID(ID2)と、UIDと、PNとをデータ要求メッセージとしてストレージサーバ2に送付する。当該データを過去に参照したことがある場合は、当該データの最終参照時刻(T2,1)と、最終鍵参照時刻(TK2,1)とをデータ要求メッセージに追加する。なお、グループメンバ端末内の暗号化データEKM(MG)の有無を知らせる情報をデータ要求メッセージ内に追加しても良い。図示する例では、グループメンバ端末1−2はデータMGを初めて参照するため、要求メッセージ内に最終参照時刻(T2,1)と、最終鍵参照時刻(TK2,1)とは含まれていない。
【0095】
(ステップR2−3)ストレージサーバ2は、グループメンバ端末1−2より送信されたUIDとPNの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、ストレージサーバ2は、グループメンバ端末1−2が当該データを参照した後に自身が保持している当該データ用の暗号鍵が更新されたか否か判断する。ここで、当該データ用の暗号鍵の更新の有無の判定方法として、例えば、グループメンバ端末より送られた暗号鍵の最終鍵参照時刻(TK2,1)と、ストレージサーバ2内に格納されている当該データ用の暗号鍵の最終更新時刻(TKS,1)とを比較し、値が異なっている場合は更新されたと判定する方法がある。
【0096】
(ステップR2−4)共有データを新規に参照する場合、もしくは鍵の更新がある共有データを参照する場合、グループメンバ端末は、鍵を作成して共有データを参照する。参照方法は後述する。
(ステップR2−5)グループメンバ端末は、鍵の更新がない共有データを参照する。参照方法は後述する。
【0097】
次に、ステップR2−4で、グループメンバ端末が鍵を作成して共有データを参照する際の手順について図16を参照して説明する。図16はグループメンバ端末が鍵を作成して共有データを参照する処理動作を示したシーケンス図である。
【0098】
(ステップR2−4a)ストレージサーバ2は、C0,1と、sk2,Sとを用いて、鍵復元用情報C1,1=C0,1W1を生成する。なお、鍵復元用情報の生成方法はステップR1−3と同様である。
【0099】
(ステップR2−4b)ストレージサーバ2は、D1と、EKM(MG)と、最終更新時刻(TS,1)と、最終鍵更新時刻(TKS,1)と、C0,1と、C1,1とをグループメンバ端末1−2に送付する。
(ステップR2−4c)グループメンバ端末1−2は、sk2,Uと、C0,1と、C1,1とを用いてKMを復元する。なお、KMの復元方法はステップR1−5と同様である。
【0100】
(ステップR2−4d)グループメンバ端末1−2は、KMを用いてEKM(MG)を復号し、MGを取得する。
(ステップR2−4e)グループメンバ端末1−2は、(2,2)閾値分散法を用いてKMに対応するシェアS2,1とシェアS2,2とを作成する。
(ステップR2−4f)グループメンバ端末1−2は、D1と、ID2と、S2,1とをストレージサーバ2に送付する。また、MGの参照後、グループメンバ端末1−2はKMと、MGと、C0,1と、C1,1と、S2,1とを削除する。また、ローカルデータリストの当該データ用のエントリに、D1をデータIDとして、L1をデータラベルとして、T’2,1(=TS,1)を最終参照時刻として、TK’2,1(=TKS,1)を最終鍵参照時刻として、S2,2を暗号鍵シェアとして、EKM(MG)を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、EKM(MG)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0101】
次に、ステップR2−5で、グループメンバ端末が鍵の更新がない共有データを参照する際の手順について図17を参照して説明する。図17はグループメンバ端末が鍵の更新がない共有データを参照する処理動作を示したシーケンス図である。
【0102】
(ステップR2−5a)ストレージサーバ2は、暗号鍵シェアS2,1と、EKM(MG)と、最終更新時刻(TS,1)とをグループメンバ端末1−2に送付する。なお、ステップR2−1で要求メッセージ内に「グループメンバ端末内に暗号化データ有」を知らせる情報が付加されており、なおかつ当該データの更新がない場合はEKM(MG)を送付しない処理としても良い。ここで、当該データの更新の有無の判定方法として、例えば、グループメンバ端末より送られた最終参照時刻(T2,1)と、ストレージサーバ2内に格納されている最終更新時刻(TS,1)とを比較し、値が異なっている場合は更新されたと判定する方法がある。
【0103】
(ステップR2−5b)グループメンバ端末1−2は、S2,2と、S2,1とを用いてKMを復元する。
(ステップR2−5c)グループメンバ端末1−2は、KMを用いてEKM(MG)を復号し、MGを取得する。
(ステップR2−5d)MGの参照後、グループメンバ端末1−2はKMと、MGと、S2,1とを削除する。また、グループメンバ端末1−2は、ローカルデータリストの当該データ用のエントリのT’2,1の値をTS,1の値として上書きする。なお、EKM(MG)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0104】
[環境移行処理]
次に、グループメンバ端末1−2が紛失され、グループメンバ端末1−2の環境をグループメンバ端末1−3に移行する手順について説明する。本実施形態での移行手順は、第1の実施形態での移行手順と同様に行う。
【0105】
以上、第2の実施形態について説明したとおり、本実施形態では第1の実施形態の鍵カプセル化技術による鍵交換処理に加え、秘密分散による鍵交換処理を追加する形態とした。よって、グループメンバ端末が同じ暗号鍵を用いた暗号化データを参照する際に、鍵復元情報C0およびC1をストレージサーバより取得する必要がなく、シェアS1だけを送付すればよい。そのため、ユーザ端末とストレージサーバ間のメッセージサイズを削減できる。例えば、公開鍵暗号の鍵長を1024ビット、共通鍵暗号の鍵長を256ビットにしたとすると、1回のデータ参照あたり1792ビットを削減できる。また、ユーザ端末側でべき乗演算および乗算を行う必要もなくなるため、ユーザ端末の負荷が軽減される。
【0106】
(第3の実施形態)
次に、本発明の第3の実施形態について図面を参照して説明する。本実施形態では、暗号鍵を生成する基の情報であるマスターシェアと呼ばれる情報をグループメンバ端末内に生成し、生成したマスターシェアを用いて暗号鍵と暗号鍵シェアを生成する。なお、暗号鍵は暗号鍵シェアとマスターシェアのみを用いて生成可能である。また、マスターシェアを秘密分散法で分割シェアSMS,1と分割シェアSMS,2との2つの分割シェアに分散する。なお、マスターシェアは分散した2つの分割シェアSMS,1とSMS,2のみを用いて生成可能である。また、本実施形態によるデータ共有システムは第1の実施形態のデータ共有システムと同様である。
【0107】
[事前準備]
次に、本実施形態での事前準備について説明する。
(ステップP3−1)認証局3はグループ用公開鍵と秘密鍵のペア(pkG、skG)を生成する。以下、RSA暗号の公開鍵をpkG、秘密鍵をskGとして説明する。
【0108】
(ステップP3−2)認証局3は、グループメンバ端末ごとに、(2,2)閾値秘密分散法を用いてskGを2個の分散鍵に分割する。グループメンバ端末1−1用の分散鍵は(sk1,U,sk1,S)である。グループメンバ端末1−2用の分散鍵は(sk2,U,sk2,S)である。なお、分散鍵の生成方法はステップP1−2と同様である。
【0109】
(ステップP3−3)認証局3は、データ共有システムに含まれる各グループメンバ端末にグループ用公開鍵pkGを一つずつ配布する。また、認証局3は、ステップP3−2で各端末用に生成した分散鍵ski,U(i=1,・・・,N)を、対応する端末に配布する。また、認証局3は、ステップP3−2で各端末用に生成した分散鍵ski,S(i=1,・・・,N)を、ストレージサーバ2にすべて配布する。
(ステップP3−4)各グループメンバ端末はマスターシェアの初期設定を行い、自端末内にマスターシェア(MSi)を保持する。マスターシェアの初期設定方法は後述する。
【0110】
次に、ステップP3−4で、グループメンバ端末がマスターシェアの初期設定を行う手順について図18を参照して説明する。図18はグループメンバ端末がマスターシェアの初期設定を行う処理動作を示したシーケンス図である。
【0111】
(ステップP3−4a)グループメンバ端末1−1はマスターシェアMS1を生成する。なお、マスターシェアMSiは以下の(20)式より生成される。ここで、XMS,i=h(IDi)(hはハッシュ関数、i=1,…,N+1)、g(x)は有限体GF(2b−1)上の多項式(bは暗号鍵の鍵長)である。
【0112】
【数20】
【0113】
(ステップP3−4b)グループメンバ端末1−1は、(2,2)閾値分散法を用いてマスターシェアMS1に対応する分割シェアSMS,1,1と分割シェアSMS,1,2とを生成する。なお、マスターシェアMS1は分割シェアSMS,1,1と分割シェアSMS,1,2のみを用いて生成可能である。また、分割シェアSMS,i,1は以下の(21)式を用いて生成する。
【0114】
【数21】
【0115】
また、分割シェアSMS,i,2は以下の(22)式を用いて生成する。ここで、Xi,2=h(IDi‖r3)(r3は乱数、hはハッシュ関数、i=1,…,N+1)である。
【0116】
【数22】
【0117】
(ステップP3−4c)グループメンバ端末1−1は、グループメンバ端末1−1が持つID(ID1)と、SMS,1,2とをストレージサーバ2に送付する。
(ステップP3−4d)グループメンバ端末1−1は、SMS,1,1を外部デバイスに送付する。外部デバイスは例えば、USBメモリなどの記憶装置である。なお、SMS,1,1を記憶した外部デバイスは、グループメンバ端末1−1から取り外され、金庫など安全な場所に保管される。また、外部デバイスは、環境復元処理以外の処理であるデータ保存処理やデータ参照処理には使用されない。
(ステップP3−4e)グループメンバ端末1−1は、SMS,1,1とSMS,1,2とを削除する。
【0118】
なお、マスターシェアは、グループメンバ端末1−1内に保持され、データ保存処理、データ参照処理の暗号鍵生成、暗号鍵分散処理に利用される。また、マスターシェアをグループメンバ端末1−1内で暗号化し、ストレージサーバ2へのユーザ認証後、ストレージサーバからマスターシェア復号用の鍵を取得することにより、マスターシェアが復号されるような処理を行うことで、安全性を高めても良い。
【0119】
[共有データ保存処理:共有データ新規保存]
次に、共有データの新規保存の処理について図19から図21を参照して説明する。図19は、本実施形態において、グループメンバ端末の記憶部が記憶するデータのリスト(ローカルデータリスト)のデータフォーマット(以下、メンバ端末フォーマットと記す。)を示した図である。図示する例では、メンバ端末フォーマットはデータID(D1)と、データラベル(L1)と、最終参照時刻(T1,1)と、暗号化データ(EKM(MG))との4つの属性を持つ。データIDは、データ共有システム内でデータを一意に識別するための識別子である。データラベルは、例えばファイル名など、データの内容や形態を表す名称である。最終参照時刻は、共有データを最後に参照した時刻である。暗号化データは、共有データを暗号化したデータである。
【0120】
図20は、本実施形態において、ストレージサーバ2の記憶部が記憶するデータのデータフォーマット(以下、ストレージサーバフォーマットと記す。)を示した図である。図示する例では、ストレージサーバフォーマットはデータID(D1)と、データラベル(L1)と、最終更新時刻(TS,1)と、暗号化データ(EKM(MG))と、鍵復元用情報(C0,1)と、ユーザID(ID1)と、暗号鍵シェア(SKM,1)との7つの属性を持つ。データIDと、データラベルと、暗号化データと、暗号鍵シェアとの4つの属性は、メンバ端末フォーマットの属性と同様である。ユーザIDはグループメンバ端末を一意に識別するための識別子である。最終更新時刻は共有データを最後に更新した時刻である。鍵復元用情報は、暗号化データを復号化する際に使用する鍵を作成する際に使用する情報である。
【0121】
図21は、本実施形態において、グループメンバ端末1−1がストレージサーバ2にグループ共有データを保存する処理動作を示したシーケンス図である。
【0122】
(ステップW3−1)グループメンバ端末1−1を使用するユーザは、グループメンバ端末1−1を操作して、グループメンバ端末1−1に共有データMGを用意する。また、MGのファイル名をデータラベルL1とする。
(ステップW3−2)鍵カプセル化技術を用いて、グループメンバ端末1−1はpkGから暗号鍵KMと鍵復号用情報C0,1とを生成する。
【0123】
(ステップW3−3)共通鍵暗号により、グループメンバ端末1−1は、KMを用いて共有データMGを暗号化する。暗号化後の共有データ(暗号化データ)はEKM(MG)とする。暗号化完了後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するMGを削除する。
(ステップW3−4)グループメンバ端末1−1は、マスターシェアMS1を用いてKMに対応する暗号鍵シェアSKM,1を生成する。暗号鍵シェアSKM,1は以下の(23)式を用いて生成する。ここで、XKM,1=h(ID1‖r2)(r2は乱数、hはハッシュ関数)である。なお、KMはマスターシェアMS1と暗号鍵シェアSKM,1のみを用いて生成可能である。
【0124】
【数23】
【0125】
(ステップW3−5)グループメンバ端末1−1は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0126】
(ステップW3−6)グループメンバ端末1−1は、グループメンバ端末1−1が持つID(ID1)と、EKM(MG)と、C0,1と、L1と、SKM,1と、UIDと、PNとをストレージサーバ2に送付する。
(ステップW3−7)ストレージサーバ2は、グループメンバ端末1−1より送信されたUIDとPNとの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、ストレージサーバ2は当該データにデータID(D1)を割り当てる。また、ストレージサーバ2はID1と、L1と、EKM(MG)と、C0,1と、SKM,1と、D1と、最終更新時刻(TS,1)とをストレージサーバフォーマットのフォーマットに従ってストレージサーバ2の記憶部に格納する。最新更新時刻(TS,1)は、当該格納時の時刻である。
【0127】
(ステップW3−8)ステップW3−7での格納処理が終了したことをグループメンバ端末1−1に通知するために、ストレージサーバ2はACK(アック、Acknowledgement)メッセージをユーザ端末1に送信する。ACKメッセージにはD1とTS,1とTKS,1とが含まれる。
(ステップW3−9)ストレージサーバ2からACKメッセージを受信した後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するKMとC0,1とSKM,1とを削除する。また、グループメンバ端末1−1はローカルデータリストに当該データ用のエントリを新規に作成し、D1をデータIDとして、L1をデータラベルとして、T1,1(=TS,1)を最終参照時刻として、EKM(MG)を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、EKM(MG)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0128】
[共有データ保存処理:共有データ更新保存(鍵更新あり)]
次に、鍵の更新がある場合での本実施形態での更新保存の処理について図22を参照して説明する。図22は、本実施形態において、グループメンバ端末1−1がストレージサーバ2にグループ共有データを保存する処理動作を示したシーケンス図である。
【0129】
(ステップW3a−1)グループメンバ端末1−1を使用するユーザは、グループメンバ端末1−1を操作して、グループメンバ端末1−1に共有データMG’を用意する。また、MG’のファイル名をデータラベルL1とする。
(ステップW3a−2)鍵カプセル化技術を用いて、グループメンバ端末1−1はpkGから暗号鍵KM’と鍵復号用情報C0,1’とを生成する。
【0130】
(ステップW3a−3)共通鍵暗号により、グループメンバ端末1−1は、KM’を用いて共有データMG’を暗号化する。暗号化後の共有データ(暗号化データ)はEKM’(MG’)とする。暗号化完了後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するMG’を削除する。
(ステップW3a−4)グループメンバ端末1−1は、マスターシェアMS1を用いてKM’に対応する暗号鍵シェアSKM,1’を生成する。暗号鍵シェアSKM,1’の生成方法は、ステップW3−4と同様である。
【0131】
(ステップW3a−5)グループメンバ端末1−1は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0132】
(ステップW3a−6)グループメンバ端末1−1は、グループメンバ端末1−1が持つID(ID1)と、EKM’(MG’)と、C0,1’と、L1と、SKM,1’と、UIDと、PNとをストレージサーバ2に送付する。
(ステップW3a−7)ストレージサーバ2は、グループメンバ端末1−1より送信されたUIDとPNとの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、ストレージサーバ2は当該データにデータID(D1)を割り当てる。また、ストレージサーバ2はID1と、L1と、EKM’(MG’)と、C0,1’と、SKM,1’と、D1と、最終更新時刻(TS,1’)とをストレージサーバフォーマットのフォーマットに従ってストレージサーバ2の記憶部に格納する。最新更新時刻(TS,1’)は、当該格納時の時刻である。
【0133】
(ステップW3a−8)ステップW3a−7での格納処理が終了したことをグループメンバ端末1−1に通知するために、ストレージサーバ2はACK(アック、Acknowledgement)メッセージをユーザ端末1に送信する。ACKメッセージにはD1とTS,1’とが含まれる。
(ステップW3a−9)ストレージサーバ2からACKメッセージを受信した後、グループメンバ端末1−1はグループメンバ端末1−1が記憶するKMとC0,1’とSKM,1’とを削除する。また、グループメンバ端末1−1はローカルデータリストに当該データ用のエントリを新規に作成し、D1をデータIDとして、L1をデータラベルとして、T1,1’(=TS,1’)を最終参照時刻として、EKM’(MG’)を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、EKM’(MG’)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
(ステップW3a−10)ストレージサーバ2は、SKM,1とSKM,1’に基づいて、MGに関して他のユーザ(IDi)が使用する暗号鍵シェアSKM,iをSKM,i’に更新する。暗号鍵シェアSKM,i’は以下の(24)式を用いて生成する。ここで、X1=h(ID1)は、グループメンバ端末1−1のマスターシェアMS1のx座標、Xi=h(IDi)は、グループメンバ端末iのマスターシェアMSiのx座標、XKM,iは暗号鍵シェアSKM,iのx座標である。
【0134】
【数24】
【0135】
[共有データ保存処理:共有データ更新保存(鍵更新なし)]
次に、鍵の更新がない場合での本実施形態での共有データの更新保存の処理について説明する。鍵の更新がない場合での本実施形態での共有データの更新保存の処理動作は、第1の実施形態の鍵の更新がない場合での共有データの更新保存の処理動作と同様に行う。
【0136】
[共有データ参照処理(新規参照)]
次に、グループメンバ端末1−1がストレージサーバ2に登録した共有データを、グループメンバ端末1−2が初めて参照する際の処理について図23を参照して説明する。図23は、本実施形態において、グループメンバ端末1−1がストレージサーバ2に登録した共有データを、グループメンバ端末1−2が初めて参照する際の処理動作を示したシーケンス図である。
【0137】
(ステップR3−0)ストレージサーバ2はグループメンバ端末1−1とグループメンバ端末1−2とにデータリストを送付する。例えば、データリスト送付のタイミングは、データリストの更新がある度に送信しても良い。また、ユーザ端末からデータアクセス要求があった場合のみ送信しても良い。
【0138】
(ステップR3−1)グループメンバ端末1−2は、ユーザから共有データの参照要求の入力を受け付ける。続いて、グループメンバ端末1−2は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0139】
(ステップR3−2)グループメンバ端末1−2は、参照するデータMGのデータID(D1)と、グループメンバ端末1−2が持つID(ID2)と、UIDと、PNとをデータ要求メッセージとしてストレージサーバ2に送付する。
【0140】
(ステップR3−3)ストレージサーバ2は、グループメンバ端末1−2より送信されたUIDとPNの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、ストレージサーバ2は、C0,1と、sk2,Sとを用いて鍵復元用情報C1,1=C0,1W1を生成する。なお、鍵復元用情報の生成方法は、ステップR1−3と同様である。
【0141】
(ステップR3−4)ストレージサーバ2は、D1と、EKM(MG)と、最終更新時刻(TS,1)と、C0,1と、C1,1とをグループメンバ端末1−2に送付する。
(ステップR3−5)グループメンバ端末1−2は、sk2,Uと、C0,1と、C1,1とを用いてKMを復元する。なお、KMの復元方法は、ステップR1−5と同様である。
【0142】
(ステップR3−6)グループメンバ端末1−2は、KMを用いてEKM(MG)を復号し、MGを取得する。
(ステップR3−7)グループメンバ端末1−2は、マスターシェアMS2を用いてKMに対応する暗号化シェアSKM,2を生成する。
【0143】
(ステップR3−8)グループメンバ端末1−2は、D1と、ID2と、SKM,2とをストレージサーバ2に送付する。また、MGの参照後、グループメンバ端末1−2はKMと、MGと、C0,1と、C1,1と、SKM,2とを削除する。また、ローカルデータリストの当該データ用のエントリに、D1をデータIDとして、L1をデータラベルとして、T2,1(=TS,1)を最終参照時刻として、EKM(MG)を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、EKM(MG)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0144】
[共有データ参照処理(再参照)]
次に、グループメンバ端末1−1がストレージサーバ2に登録した共有データを、グループメンバ端末1−2が再度参照する際の処理について図24を参照して説明する。図24は、本実施形態において、グループメンバ端末1−1がストレージサーバ2に登録した共有データを、グループメンバ端末1−2が再度参照する際の処理動作を示したシーケンス図である。
【0145】
(ステップR3a−0)ストレージサーバ2はグループメンバ端末1−1とグループメンバ端末1−2とにデータリストを送付する。例えば、データリスト送付のタイミングは、データリストの更新がある度に送信しても良い。また、ユーザ端末からデータアクセス要求があった場合のみ送信しても良い。
【0146】
(ステップR3a−1)グループメンバ端末1−2は、ユーザから共有データの参照要求の入力を受け付ける。続いて、グループメンバ端末1−2は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザID(UID)と認証情報(PN)である。認証情報は例えば暗証番号である。
【0147】
(ステップR3a−2)グループメンバ端末1−2は、参照するデータMGのデータID(D1)と、グループメンバ端末1−2が持つID(ID2)と、UIDと、PNと、当該データの最終参照時刻(T2,1)とをデータ要求メッセージとしてストレージサーバ2に送付する。なお、グループメンバ端末内の暗号化データEKM(MG)の有無を知らせる情報をデータ要求メッセージ内に追加しても良い。
【0148】
(ステップR3a−3)ストレージサーバ2は、グループメンバ端末1−2より送信されたUIDとPNの組と、予め記憶しているUIDとPNとの組とが一致するか否か照合する。一致した場合、ストレージサーバ2は、暗号鍵シェアSKM,2と、EKM(MG)と、最終更新時刻(TS,1)とをグループメンバ端末1−2に送付する。なお、ステップR3a−2で要求メッセージ内に「グループメンバ端末内に暗号化データ有」を知らせる情報が付加されており、なおかつ当該データの更新がない場合はEKM(MG)を送付しない処理としても良い。ここで、当該データの更新の有無の判定方法として、例えば、グループメンバ端末1−iより送られた最終参照時刻(Ti,1)と、ストレージサーバ2内に格納されている最終更新時刻(TS,1)とを比較し、値が異なっている場合は更新されたと判定する方法がある。
【0149】
(ステップR3a−4)グループメンバ端末1−2は、SKM,2と、MS2とを用いてKMを復元する。
(ステップR3a−5)グループメンバ端末1−2は、KMを用いてEKM(MG)を復号し、MGを取得する。
(ステップR3a−6)MGの参照後、グループメンバ端末1−2はKMと、MGと、SKM,2とを削除する。また、ローカルデータリストの当該データ用のエントリに、T2,1(=TS,1)を最終参照時刻としてメンバ端末フォーマットに従って格納する。なお、EKM(MG)の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【0150】
[環境移行処理]
次に、グループメンバ端末1−2が紛失され、グループメンバ端末1−2の環境をグループメンバ端末1−3に移行する手順について図25を参照して説明する。図25は、本実施形態において、グループメンバ端末1−2の環境をグループメンバ端末1−3に移行する処理動作を示したシーケンス図である。
【0151】
(ステップRE3−1)グループメンバ端末1−3は、グループメンバ端末1−2の紛失と、グループメンバ端末1−2の環境をグループメンバ端末1−3へ移行する要求とを認証局3に通知する。また、グループメンバ端末1−3は、ステップP3−4dで外部デバイスに保管したSMS,2,1を取得する。
【0152】
(ステップRE3−2)認証局3は、グループメンバ端末1−3より端末移行情報を受信する。続いて認証局3は、グループメンバ端末1−3用の分割鍵sk’2,Uと分割鍵sk’2,Sとを生成する。生成方法は、ステップP1−2と同様である。
(ステップRE3−3)認証局3は、分割鍵sk’2,Uと公開鍵pkGとをグループメンバ端末1−3に送付する。また、認証局3は、分割鍵sk’2,Sをストレージサーバ2に送付する。ストレージサーバ2は、分割鍵sk’2,Sを受信後、グループメンバ端末1−2用の分割鍵sk2,Sを削除する。
【0153】
(ステップRE3−4)ストレージサーバ2は分割シェアS’MS,2,2を生成し、それをグループメンバ端末1−3へ送付する。分割シェアS’MS,i,2は以下の(25)式を用いて生成する。ここで、gj(x)=bjx(bjは乱数)である。
【0154】
【数25】
【0155】
グループメンバ端末1−3は、S’MS,2,2と、SMS,2,1とよりMS3を生成する。なお、MS3は以下の式(26)を満たす。
【0156】
【数26】
【0157】
(ステップRE3−5)認証局3は、グループメンバ端末1−2の環境をグループメンバ端末1−3に移行したことをストレージサーバ2に通知する。
【0158】
以上、第3の実施形態について説明したとおり、本実施形態では、暗号鍵を生成する基の情報であるマスターシェアと呼ばれる情報をグループメンバ端末内に生成し、生成したマスターシェアを用いて暗号鍵と暗号鍵シェアを生成する形態とした。また、グループメンバ端末が暗号鍵を変更して共有データを更新保存した場合、更新された暗号鍵の情報に基づいて、ストレージサーバはステップW3a−10にて、ストレージサーバが記憶する全グループメンバ端末の暗号鍵シェアを更新する。よって、グループメンバ端末が暗号鍵を変更して共有データを更新保存した後に、他のグループメンバ端末が一度参照したデータを再度参照するときには、再度鍵カプセル化技術による鍵復元を行わずに秘密分散法による鍵復元を利用することができる。
【0159】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0160】
なお、ステップR2−3の鍵更新判定には、暗号鍵のハッシュ値HK=h(KM)を用いて判定してもよい。具体的には、グループメンバ端末は、データ保存処理時にハッシュ値を生成し、ストレージサーバ2に送信する。その後、データ参照処理時において、グループメンバ端末は、ステップR2−2で暗号鍵のハッシュ値をストレージサーバ2に送付する。ストレージサーバ2はデータ保存処理時の暗号鍵のハッシュ値と、ステップR2−2の暗号鍵のハッシュ値とを比較し、一致した場合は暗号鍵の更新がないと判断しても良い。
【0161】
また、上述した実施形態におけるグループメンバ端末の暗号鍵生成機能、送信機能、受信機能、暗号鍵復元機能、復号機能、更新情報受信機能、分割鍵更新機能、シェア生成機能の各処理機能全体あるいはその一部、ストレージサーバの受信機能、記憶機能、鍵復元用情報生成機能、送信機能、分割鍵更新機能の各処理機能全体あるいはその一部、認証局のグループ鍵生成機能、分散鍵生成機能、分散鍵分割機能、鍵配布機能、受信機能、分割鍵更新情報生成機能、更新情報配布機能の各処理機能全体あるいはその一部は、これらの機能実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0162】
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してコンピュータプログラムを送信する場合の通信線のように、短時間の間、動的にコンピュータプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間コンピュータプログラムを保持しているものも含むものとする。また上記コンピュータプログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているコンピュータプログラムとの組み合わせで実現できるものであっても良い。
【図面の簡単な説明】
【0163】
【図1】第1の実施形態によるデータ共有システムを示す構成図である。
【図2】第1の実施形態での事前準備の処理動作を示すシーケンス図である。
【図3】第1の実施形態における鍵の配布方法を示した図である。
【図4】第1の実施形態において、グループメンバ端末の記憶部が記憶するデータのリストのデータフォーマットを示した図である。
【図5】第1の実施形態において、ストレージサーバの記憶部が記憶するデータのデータフォーマットを示した図である。
【図6】第1の実施形態において、ストレージサーバの記憶部が記憶するデータの例を示した図である。
【図7】第1の実施形態において、グループメンバ端末がストレージサーバにグループ共有データを保存する処理動作を示したシーケンス図である。
【図8】第1の実施形態において、暗号鍵を更新しないで、グループメンバ端末がストレージサーバにグループ共有データを更新保存する処理動作を示したシーケンス図である。
【図9】第1の実施形態において、ストレージサーバが各グループメンバ端末に送信するデータリストを示した図である。
【図10】第1の実施形態において、グループメンバ端末1−1がストレージサーバに登録した共有データを、グループメンバ端末1−2が参照する際の処理動作を示したシーケンス図である。
【図11】第1の実施形態において、グループメンバ端末1−2の環境をグループメンバ端末1−3に移行する処理動作を示したシーケンス図である。
【図12】第2の実施形態において、グループメンバ端末の記憶部が記憶するデータのリストのデータフォーマットを示した図である。
【図13】第2の実施形態において、ストレージサーバの記憶部が記憶するデータのデータフォーマットを示した図である。
【図14】第2の実施形態において、グループメンバ端末1−1がストレージサーバにグループ共有データを保存する処理動作を示したシーケンス図である。
【図15】第2の実施形態において、グループメンバ端末1−1がストレージサーバに登録した共有データを、グループメンバ端末1−2が参照する際の処理動作を示したシーケンス図である。
【図16】第2の実施形態において、グループメンバ端末が鍵を作成して共有データを参照する処理動作を示したシーケンス図である。
【図17】第2の実施形態において、グループメンバ端末が鍵の更新がない共有データを参照する処理動作を示したシーケンス図である。
【図18】第3の実施形態において、グループメンバ端末がマスターシェアの初期設定の処理動作を示したシーケンス図である。
【図19】第3の実施形態において、グループメンバ端末の記憶部が記憶するデータのリストのデータフォーマットを示した図である。
【図20】第3の実施形態において、ストレージサーバの記憶部が記憶するデータのデータフォーマットを示した図である。
【図21】第3の実施形態において、グループメンバ端末1−1がストレージサーバにグループ共有データを保存する処理動作を示したシーケンス図である。
【図22】第3の実施形態において、グループメンバ端末1−1がストレージサーバにグループ共有データを保存する処理動作を示したシーケンス図である。
【図23】第3の実施形態において、グループメンバ端末1−1がストレージサーバに登録した共有データを、グループメンバ端末1−2が初めて参照する際の処理動作を示したシーケンス図である。
【図24】第3の実施形態において、グループメンバ端末1−1がストレージサーバに登録した共有データを、グループメンバ端末1−2が再度参照する際の処理動作を示したシーケンス図である。
【図25】第3の実施形態において、グループメンバ端末1−2の環境をグループメンバ端末1−3に移行する処理動作を示したシーケンス図である。
【符号の説明】
【0164】
1−1〜1−N・・・グループメンバ端末、2・・・ストレージサーバ、3・・・認証局、4・・・通信ネットワーク
【特許請求の範囲】
【請求項1】
暗号化された共有データを保管するストレージサーバと、N台(Nは1以上の整数)の端末装置と、鍵生成装置とを備えたデータ共有システムに含まれる前記鍵生成装置において、
公開鍵と秘密鍵を生成するグループ鍵生成部と、
第1の分散鍵と第2の分散鍵とからなる1組の分散鍵から前記秘密鍵を生成することが可能な分散鍵の組を生成する方法である秘密分散法を用いて、前記秘密鍵を生成することが可能な前記第1の分散鍵と前記第2の分散鍵との組をN組生成する分散鍵生成部と、
前記分散鍵生成部で生成したN組の前記分散鍵の組に含まれるN個の前記第1の分散鍵をN台の前記端末装置に1個ずつ配布し、N台の前記端末装置それぞれに前記公開鍵を配布し、N組の前記分散鍵の組に含まれるN個の前記第2の分散鍵を前記ストレージサーバに配布する鍵配布部と、
を備えたことを特徴とする鍵生成装置。
【請求項2】
移行元端末装置の環境の移行先の端末装置である移行先端末装置を一意に特定する移行先端末装置情報を含む端末装置移行情報を受信する受信部
を備え、
前記受信部で端末装置移行情報を受信した際に、前記分散鍵生成部は、前記第1の分散鍵と前記第2の分散鍵との組を1組生成し、
前記鍵配布部は、前記分散鍵生成部で生成した1組の前記分散鍵の組に含まれる1個の前記第1の分散鍵と前記公開鍵とを前記移行先端末装置に配布し、前記分散鍵生成部で生成した1組の前記分散鍵の組に含まれる1個の前記第2の分散鍵を前記ストレージサーバに配布する
ことを特徴とする請求項1に記載の鍵生成装置。
【請求項3】
暗号化された共有データを保管するストレージサーバと、端末装置と、鍵生成装置とを備えたデータ共有システムに含まれる前記端末装置において、
前記鍵生成装置から送付された第1の分散鍵と公開鍵とを受信する鍵受信部と、
前記鍵受信部が受信した前記公開鍵から暗号鍵と第1の鍵復元用情報を生成する暗号鍵生成部と、
前記暗号鍵を使用して共有データを暗号化する暗号部と、
暗号化した前記共有データと前記第1の鍵復元用情報とを前記ストレージサーバに送信する送信部と、
暗号化された共有データと、第1の鍵復元用情報と、前記ストレージサーバが生成した第2の鍵復元用情報とを前記ストレージサーバから受信する受信部と、
前記鍵受信部が受信した前記第1の分散鍵と、前記受信部が受信した前記第1の鍵復元用情報と前記第2の鍵復元用情報と、に基づいて前記暗号鍵を復元する暗号鍵復元部と、
前記暗号鍵復元部で復元した前記暗号鍵を用いて、前記受信部で受信した暗号化された前記共有データを復号する復号部と、
を備えたことを特徴とする端末装置。
【請求項4】
ストレージサーバと、端末装置と、鍵生成装置とを備えたデータ共有システムに含まれるストレージサーバにおいて、
前記鍵生成装置より第2の分散鍵を受信し、前記端末装置より暗号化された共有データと第1の鍵復元用情報とを受信する受信部と、
前記受信部が受信した前記共有データと前記第1の鍵復元用情報とを関連付けて記憶し、前記受信部が受信した前記第2の分散鍵を記憶する記憶部と、
前記第1の鍵復元用情報と、前記第2の分散鍵とに基づいて、第2の鍵復元用情報を生成する鍵復元用情報生成部と、
暗号化された共有データと、前記第1の鍵復元用情報と、前記第2の鍵復元用情報とを前記端末装置に送信する送信部と、
を備えたことを特徴とするストレージサーバ。
【請求項5】
公開鍵と秘密鍵を生成するグループ鍵生成ステップと、
第1の分散鍵と第2の分散鍵とからなる1組の分散鍵から前記秘密鍵を生成することが可能な分散鍵の組を生成する方法である秘密分散法を用いて、前記秘密鍵を生成することが可能な前記第1の分散鍵と前記第2の分散鍵との組をN組(Nは1以上の整数)生成する分散鍵生成ステップと、
前記分散鍵生成ステップで生成したN組の前記分散鍵の組に含まれるN個の前記第1の分散鍵をN台の前記端末装置に1個ずつ配布し、N台の前記端末装置それぞれに前記公開鍵を配布し、N組の前記分散鍵の組に含まれるN個の前記第2の分散鍵を前記ストレージサーバに配布する鍵配布ステップと、
をコンピュータに実行させるためのプログラム。
【請求項6】
鍵生成装置から送付された第1の分散鍵と公開鍵とを受信する鍵受信ステップと、
前記鍵受信ステップで受信した前記公開鍵から暗号鍵と第1の鍵復元用情報を生成する暗号鍵生成ステップと、
前記暗号鍵を使用して共有データを暗号化する暗号ステップと、
暗号化した前記共有データと前記第1の鍵復元用情報とを前記ストレージサーバに送信する送信ステップと、
暗号化された共有データと、第1の鍵復元用情報と、前記ストレージサーバが生成した第2の鍵復元用情報とを前記ストレージサーバから受信する受信ステップと、
前記鍵受信ステップで受信した前記第1の分散鍵と、前記受信ステップで受信した前記第1の鍵復元用情報と前記第2の鍵復元用情報と、に基づいて前記暗号鍵を復元する暗号鍵復元ステップと、
前記暗号鍵復元ステップで復元した前記暗号鍵を用いて、前記受信ステップで受信した暗号化された前記共有データを復号する復号ステップと、
をコンピュータに実行させるためのプログラム。
【請求項7】
鍵生成装置より第2の分散鍵を受信し、端末装置より暗号化された共有データと第1の鍵復元用情報とを受信する受信ステップと、
前記受信ステップで受信した前記共有データと前記第1の鍵復元用情報とを関連付けて記憶し、前記受信ステップで受信した前記第2の分散鍵を記憶する記憶ステップと、
前記第1の鍵復元用情報と、前記第2の分散鍵とに基づいて、第2の鍵復元用情報を生成する鍵復元用情報生成ステップと、
暗号化された共有データと、前記第1の鍵復元用情報と、前記第2の鍵復元用情報とを前記端末装置に送信する送信ステップと、
をコンピュータに実行させるためのプログラム。
【請求項1】
暗号化された共有データを保管するストレージサーバと、N台(Nは1以上の整数)の端末装置と、鍵生成装置とを備えたデータ共有システムに含まれる前記鍵生成装置において、
公開鍵と秘密鍵を生成するグループ鍵生成部と、
第1の分散鍵と第2の分散鍵とからなる1組の分散鍵から前記秘密鍵を生成することが可能な分散鍵の組を生成する方法である秘密分散法を用いて、前記秘密鍵を生成することが可能な前記第1の分散鍵と前記第2の分散鍵との組をN組生成する分散鍵生成部と、
前記分散鍵生成部で生成したN組の前記分散鍵の組に含まれるN個の前記第1の分散鍵をN台の前記端末装置に1個ずつ配布し、N台の前記端末装置それぞれに前記公開鍵を配布し、N組の前記分散鍵の組に含まれるN個の前記第2の分散鍵を前記ストレージサーバに配布する鍵配布部と、
を備えたことを特徴とする鍵生成装置。
【請求項2】
移行元端末装置の環境の移行先の端末装置である移行先端末装置を一意に特定する移行先端末装置情報を含む端末装置移行情報を受信する受信部
を備え、
前記受信部で端末装置移行情報を受信した際に、前記分散鍵生成部は、前記第1の分散鍵と前記第2の分散鍵との組を1組生成し、
前記鍵配布部は、前記分散鍵生成部で生成した1組の前記分散鍵の組に含まれる1個の前記第1の分散鍵と前記公開鍵とを前記移行先端末装置に配布し、前記分散鍵生成部で生成した1組の前記分散鍵の組に含まれる1個の前記第2の分散鍵を前記ストレージサーバに配布する
ことを特徴とする請求項1に記載の鍵生成装置。
【請求項3】
暗号化された共有データを保管するストレージサーバと、端末装置と、鍵生成装置とを備えたデータ共有システムに含まれる前記端末装置において、
前記鍵生成装置から送付された第1の分散鍵と公開鍵とを受信する鍵受信部と、
前記鍵受信部が受信した前記公開鍵から暗号鍵と第1の鍵復元用情報を生成する暗号鍵生成部と、
前記暗号鍵を使用して共有データを暗号化する暗号部と、
暗号化した前記共有データと前記第1の鍵復元用情報とを前記ストレージサーバに送信する送信部と、
暗号化された共有データと、第1の鍵復元用情報と、前記ストレージサーバが生成した第2の鍵復元用情報とを前記ストレージサーバから受信する受信部と、
前記鍵受信部が受信した前記第1の分散鍵と、前記受信部が受信した前記第1の鍵復元用情報と前記第2の鍵復元用情報と、に基づいて前記暗号鍵を復元する暗号鍵復元部と、
前記暗号鍵復元部で復元した前記暗号鍵を用いて、前記受信部で受信した暗号化された前記共有データを復号する復号部と、
を備えたことを特徴とする端末装置。
【請求項4】
ストレージサーバと、端末装置と、鍵生成装置とを備えたデータ共有システムに含まれるストレージサーバにおいて、
前記鍵生成装置より第2の分散鍵を受信し、前記端末装置より暗号化された共有データと第1の鍵復元用情報とを受信する受信部と、
前記受信部が受信した前記共有データと前記第1の鍵復元用情報とを関連付けて記憶し、前記受信部が受信した前記第2の分散鍵を記憶する記憶部と、
前記第1の鍵復元用情報と、前記第2の分散鍵とに基づいて、第2の鍵復元用情報を生成する鍵復元用情報生成部と、
暗号化された共有データと、前記第1の鍵復元用情報と、前記第2の鍵復元用情報とを前記端末装置に送信する送信部と、
を備えたことを特徴とするストレージサーバ。
【請求項5】
公開鍵と秘密鍵を生成するグループ鍵生成ステップと、
第1の分散鍵と第2の分散鍵とからなる1組の分散鍵から前記秘密鍵を生成することが可能な分散鍵の組を生成する方法である秘密分散法を用いて、前記秘密鍵を生成することが可能な前記第1の分散鍵と前記第2の分散鍵との組をN組(Nは1以上の整数)生成する分散鍵生成ステップと、
前記分散鍵生成ステップで生成したN組の前記分散鍵の組に含まれるN個の前記第1の分散鍵をN台の前記端末装置に1個ずつ配布し、N台の前記端末装置それぞれに前記公開鍵を配布し、N組の前記分散鍵の組に含まれるN個の前記第2の分散鍵を前記ストレージサーバに配布する鍵配布ステップと、
をコンピュータに実行させるためのプログラム。
【請求項6】
鍵生成装置から送付された第1の分散鍵と公開鍵とを受信する鍵受信ステップと、
前記鍵受信ステップで受信した前記公開鍵から暗号鍵と第1の鍵復元用情報を生成する暗号鍵生成ステップと、
前記暗号鍵を使用して共有データを暗号化する暗号ステップと、
暗号化した前記共有データと前記第1の鍵復元用情報とを前記ストレージサーバに送信する送信ステップと、
暗号化された共有データと、第1の鍵復元用情報と、前記ストレージサーバが生成した第2の鍵復元用情報とを前記ストレージサーバから受信する受信ステップと、
前記鍵受信ステップで受信した前記第1の分散鍵と、前記受信ステップで受信した前記第1の鍵復元用情報と前記第2の鍵復元用情報と、に基づいて前記暗号鍵を復元する暗号鍵復元ステップと、
前記暗号鍵復元ステップで復元した前記暗号鍵を用いて、前記受信ステップで受信した暗号化された前記共有データを復号する復号ステップと、
をコンピュータに実行させるためのプログラム。
【請求項7】
鍵生成装置より第2の分散鍵を受信し、端末装置より暗号化された共有データと第1の鍵復元用情報とを受信する受信ステップと、
前記受信ステップで受信した前記共有データと前記第1の鍵復元用情報とを関連付けて記憶し、前記受信ステップで受信した前記第2の分散鍵を記憶する記憶ステップと、
前記第1の鍵復元用情報と、前記第2の分散鍵とに基づいて、第2の鍵復元用情報を生成する鍵復元用情報生成ステップと、
暗号化された共有データと、前記第1の鍵復元用情報と、前記第2の鍵復元用情報とを前記端末装置に送信する送信ステップと、
をコンピュータに実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【公開番号】特開2009−103968(P2009−103968A)
【公開日】平成21年5月14日(2009.5.14)
【国際特許分類】
【出願番号】特願2007−276380(P2007−276380)
【出願日】平成19年10月24日(2007.10.24)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
【公開日】平成21年5月14日(2009.5.14)
【国際特許分類】
【出願日】平成19年10月24日(2007.10.24)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
[ Back to top ]