端末装置、データ管理装置およびコンピュータプログラム
【課題】グループメンバの所有する端末装置から鍵が漏洩するような場合の共有データの安全性確保に貢献すると共に共有データ公開時などの処理負荷軽減を図る。
【解決手段】グループメンバ端末1は、共通シェア用鍵と自端末固有のマスターシェアとから共通シェアを生成し、共通シェア及び自端末識別子をストレージサーバ2に送り登録要求する端末登録手段と、暗号鍵を用いて共通鍵暗号方式により共有データを暗号化し、該暗号鍵とマスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自端末識別子をストレージサーバ2に送り保存要求するデータ保存手段と、ストレージサーバ2から暗号化データ及び自己用の暗号鍵シェアを取得し、暗号鍵シェア及びマスターシェアを用いて暗号鍵を復元し、該暗号鍵を用いてストレージサーバ2から取得した暗号化データを復号するデータ参照手段と、を備える。
【解決手段】グループメンバ端末1は、共通シェア用鍵と自端末固有のマスターシェアとから共通シェアを生成し、共通シェア及び自端末識別子をストレージサーバ2に送り登録要求する端末登録手段と、暗号鍵を用いて共通鍵暗号方式により共有データを暗号化し、該暗号鍵とマスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自端末識別子をストレージサーバ2に送り保存要求するデータ保存手段と、ストレージサーバ2から暗号化データ及び自己用の暗号鍵シェアを取得し、暗号鍵シェア及びマスターシェアを用いて暗号鍵を復元し、該暗号鍵を用いてストレージサーバ2から取得した暗号化データを復号するデータ参照手段と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、端末装置、データ管理装置およびコンピュータプログラムに関する。
【背景技術】
【0002】
従来、情報秘匿技術として、例えば非特許文献1に記載の秘密分散法が知られている。秘密分散法とは、秘密情報を数人で分散して保管することで、元の秘密情報を安全に保管する方法である。非特許文献1に記載の(k, n)閾値秘密分散法は、秘密分散法の一種であり、秘密情報をn個の分割情報(シェア)に分割してそれぞれ保管し、その内のk個以上の分割情報を入手することができれば、元の秘密情報を復元することができるものである。
【0003】
また、特許文献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】A. Shamir,“How to share a secret”,Communications of the ACM,Vol.22,No.11,pp.612-613,1979
【特許文献1】特開2005−223953号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の技術では、共有データを公開する際に、グループメンバの人数(N)分、すなわちN回公開鍵暗号処理を行う必要があり、データ公開者の処理負荷が大きくなる。又、グループメンバの所有する端末装置が盗難にあうなどし悪意の第三者に使用された場合、共有データの暗号化に使用している秘密鍵が該端末装置から漏洩してしまう可能性がある。この場合、秘密鍵を更新することで漏えい被害を抑えることができるが、共有データ公開時と同様、N回公開鍵暗号処理を行うことになり処理負荷が大きい。
【0005】
本発明は、このような事情を考慮してなされたもので、その目的は、グループメンバの所有する端末装置から鍵が漏洩するような場合の共有データの安全性確保に貢献すると共に、共有データ公開時などの処理負荷軽減を図ることのできる端末装置、データ管理装置およびコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0006】
上記の課題を解決するために、本発明に係る端末装置は、メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムにおける前記端末装置であり、前記グループ内で共通の共通シェア用鍵と自端末固有のマスターシェアとから共通シェアを生成し、該共通シェア及び自己の端末識別子を前記データ管理装置に送り登録要求する端末登録手段と、暗号鍵を用いて共通鍵暗号方式により共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り保存要求するデータ保存手段と、前記データ管理装置から暗号化データ及び自己用の暗号鍵シェアを取得し、該暗号鍵シェア及び前記マスターシェアを用いて暗号鍵を復元し、該暗号鍵を用いて前記データ管理装置から取得した暗号化データを復号するデータ参照手段と、を備えたことを特徴とする。
【0007】
本発明に係るデータ管理装置は、メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムにおける前記データ管理装置であり、端末装置から登録要求された共通シェア及び端末識別子を関連付けて記録する端末登録手段と、端末装置から保存要求された暗号化データ、暗号鍵シェア及び端末識別子に関し、暗号化データに対して暗号鍵シェアと端末識別子の組を関連付けて記録するデータ保存手段と、前記端末装置から参照要求された前記データ保存手段に格納される暗号化データと、該要求元の端末装置用の暗号鍵シェアとを該要求元の端末装置に送るデータ参照手段と、を備えたことを特徴とする。
【0008】
本発明に係るデータ管理装置において、前記データ参照手段は、データ参照要求元の端末装置用の暗号鍵シェアが参照対象の暗号化データに関連付けて記録されていない場合、参照対象の暗号化データに関連付けて記録されている任意の端末装置用の暗号鍵シェア及び該端末装置の共通シェア、並びにデータ参照要求元の端末装置の共通シェアから、データ参照要求元の端末装置用の暗号鍵シェアを生成し、該データ参照要求元の端末装置用の暗号鍵シェアを参照対象の暗号化データに関連付けて記録することを特徴とする。
【0009】
本発明に係る端末装置において、暗号鍵を用いて共通鍵暗号方式により更新対象の共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り更新要求するデータ更新手段を備えたことを特徴とする。
【0010】
本発明に係るデータ管理装置において、前記端末装置から受け取った更新対象の暗号化データ、暗号鍵シェア及び端末識別子によって更新対象の保存データを書き換えるデータ更新手段を備えたことを特徴とする。
【0011】
本発明に係るデータ管理装置において、前記データ更新手段は、更新対象の暗号化データに関連付けて記録されている未更新の暗号鍵シェアを、更新後の暗号鍵に対応する暗号鍵シェアに更新することを特徴とする。
【0012】
本発明に係るデータ管理装置において、前記データ更新手段は、前記暗号鍵シェアの更新をまとめて行うことを特徴とする。
【0013】
本発明に係るデータ管理装置において、前記データ更新手段は、前記暗号鍵シェアの更新を、端末装置毎にデータ参照時に行うことを特徴とする。
【0014】
本発明に係るデータ管理装置において、前記グループに属するメンバの端末装置として失効した端末装置に関するデータを全て消去する環境移行手段を備えたことを特徴とする。
【0015】
本発明に係るコンピュータプログラムは、メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムの前記端末装置におけるデータ共有処理を行うためのコンピュータプログラムであって、前記グループ内で共通の共通シェア用鍵と自端末固有のマスターシェアとから共通シェアを生成し、該共通シェア及び自己の端末識別子を前記データ管理装置に送り登録要求する端末登録機能と、暗号鍵を用いて共通鍵暗号方式により共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り保存要求するデータ保存機能と、前記データ管理装置から暗号化データ及び自己用の暗号鍵シェアを取得し、該暗号鍵シェア及び前記マスターシェアを用いて暗号鍵を復元し、該暗号鍵を用いて前記データ管理装置から取得した暗号化データを復号するデータ参照機能と、をコンピュータに実現させることを特徴とする。
これにより、前述の端末装置がコンピュータを利用して実現できるようになる。
【0016】
本発明に係るコンピュータプログラムは、メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムの前記データ管理装置におけるデータ共有処理を行うためのコンピュータプログラムであって、端末装置から登録要求された共通シェア及び端末識別子を関連付けて記録する端末登録機能と、端末装置から保存要求された暗号化データ、暗号鍵シェア及び端末識別子に関し、暗号化データに対して暗号鍵シェアと端末識別子の組を関連付けて記録するデータ保存機能と、前記端末装置から参照要求された前記データ保存手段に格納される暗号化データと、該要求元の端末装置用の暗号鍵シェアとを該要求元の端末装置に送るデータ参照機能と、をコンピュータに実現させることを特徴とする。
これにより、前述のデータ管理装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【0017】
本発明によれば、グループメンバの所有する端末装置から鍵が漏洩するような場合の共有データの安全性確保に貢献すると共に、共有データ公開時などの処理負荷軽減を図ることができるという効果が得られる。
【発明を実施するための最良の形態】
【0018】
以下、図面を参照し、本発明の実施形態について説明する。
図1は、本発明の一実施形態に係るデータ共有システムの全体構成を示すブロック図である。図1において、図1において、グループメンバ端末1は、メンバ間でデータを共有するグループに属するメンバの端末装置である。図1にはN台のグループメンバ端末1−1〜Nが示されている。グループメンバ端末(以下、端末と称する)1は、通信ネットワーク4を介してストレージサーバ2にアクセスし、ストレージサーバ2との間でデータを送受することができる。なお、通信ネットワーク4は、無線ネットワークであっても、有線ネットワークであってもよい。例えば、通信ネットワーク4は、インターネットと固定電話網や移動電話網などから構成されてもよい。
【0019】
端末1は、移動しながら使用可能な装置(例えば、携帯型装置)であってもよく、或いは、固定して使用される装置(例えば、パーソナルコンピュータ等の据置き型装置)であってもよい。また、携帯型の端末装置としては、例えば、移動通信事業者が提供する移動通信網の端末装置(例えば、データ通信機能を有する携帯電話機、データ通信端末装置等)、PDA(Personal Digital Assistants:個人用情報機器)などが挙げられる。また、PDAの場合、通信手段を内蔵していてもよく、外部から通信手段を接続するものであってもよい。
【0020】
端末1は、演算処理部、記憶部、通信部、入力部、表示部、外部インタフェースなどを備える。演算処理部は、CPU(中央処理装置)およびメモリ等から構成される。記憶部は、例えば、ハードディスク装置、光磁気ディスク装置、DVD(Digital Versatile Disk)等の光ディスク装置、フラッシュメモリ等の不揮発性のメモリ、DRAM(Dynamic Random Access Memory)等の揮発性のメモリ、などの記憶装置、あるいはそれらの組み合わせにより構成される。記憶部は、CPUで実行されるコンピュータプログラム等の各種データを記憶する。通信部は、通信ネットワーク4を介したデータ通信を行う。入力部は、キーボード、テンキー、マウス等の入力デバイスから構成され、ユーザの操作に応じたデータ入力を行う。表示部は、CRT(Cathode Ray Tube)や液晶表示装置等の表示デバイスから構成され、データ表示を行う。外部インタフェースは、外部機器との間で有線又は無線により直接にデータを送受する。
【0021】
端末1は、CPUがコンピュータプログラムを実行することにより、データ共有機能を実現する。データ共有機能を実現するためのコンピュータプログラムは、端末1に固定的にインストールされていてもよく、或いは、サーバ上にあるコンピュータプログラムが必要なときに通信回線を介してダウンロードされてもよい。
【0022】
ストレージサーバ2は、CPUおよびメモリ等から構成される演算処理部、ハードディスク装置等の記憶装置から構成される記憶部、通信部などを備える。記憶部は、端末1から送られてきたデータ等、各種データを記憶する。ストレージサーバ2のデータ保管機能は、ストレージサーバ2のCPUがデータ保管機能を実現するためのコンピュータプログラムを実行することにより実現される。
【0023】
鍵管理サーバ3は、CPUおよびメモリ等から構成される演算処理部、ハードディスク装置等の記憶装置から構成される記憶部などを備える。記憶部は、鍵管理に係る各種データを記憶する。鍵管理サーバ3の鍵管理機能は、鍵管理サーバ3のCPUが鍵管理機能を実現するためのコンピュータプログラムを実行することにより実現される。なお、鍵管理サーバ3は、通信部を有し通信ネットワーク4に接続されていてもよく、或いは、通信部を有さず通信ネットワーク4に接続されていなくてもよい。鍵管理サーバ3は、通信ネットワーク4に接続されている場合、通信ネットワーク4を介して端末1及びストレージサーバ2との間でデータを送受することができる。鍵管理サーバ3は、通信ネットワーク4に接続されていない場合には、外部デバイス5を介して端末1及びストレージサーバ2との間でデータを送受する。外部デバイス5は、データの書き込み及び読み出しが可能な記録媒体である。外部デバイス5としては、例えば、メモリカード、ICカード、USB(Universal Serial Bus)メモリなどが利用可能である。
【0024】
以下、図1に示すデータ共有システムの動作を順次詳細に説明する。
【0025】
[メンバ端末登録段階]
まず図2を参照してメンバ端末登録段階の処理を説明する。
図2は、本実施形態に係るデータ共有処理のメンバ端末登録段階の手順を示すシーケンスチャートである。図2においては、グループメンバ(ユーザ識別子(ユーザID)=UIDi)の端末1−i(端末識別子(端末ID)=IDi)が登録されるとする。
【0026】
ステップP1−0;鍵管理サーバ3は、あらかじめグループ用の共通シェア用鍵CKGを生成する。
ステップP1−1;鍵管理サーバ3は、端末1−iに対して、共通シェア用鍵CKGを配布する。この鍵配布方法は、セキュリティの確保された通信路を介して配布してもよいし、外部デバイス5を介して配布してもよい。また、鍵管理サーバ3は、端末1−iのメンバのユーザID(UIDi)と認証情報AUTHiをストレージサーバに送る。
【0027】
ステップP1−2;端末1−iは、マスターシェアMSiをランダムに生成する。マスターシェアMSiは次式により算出する。
MSi=(XMS,i,YMS,i)
XMS,i=h(IDi)
但し、hはハッシュ関数である。YMS,iはランダムに生成する。ここで、XMS,i及びYMS,iの絶対値は、共通鍵暗号方式の鍵長b以下である。
【0028】
ステップP1−3;端末1−iは、共通シェア用鍵CKGとマスターシェアMSiから、共通シェアCSiを生成する。共通シェアCSiは次式により算出する。
CSi=(XCS,i,YCS,i)
XCS,i=h(IDi||r1)
YCS,i=fi(XCS,i)
但し、「IDi||r1」はIDiとr1の連結データである。r1は乱数である。fi(x)は「fi(x)={(YMS,i−CKG)/XMS,i}×x+CKG mod(2b−1)」となる多項式である。x mod(y)は、xに対してモジュロyをとった値である。
【0029】
ステップP1−4;端末1−iは、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID(UIDi)と認証情報AUTHi’を入力する。
ステップP1−5;端末1−iは、端末ID(IDi)、ユーザID(UIDi)、認証情報AUTHi’及び共通シェアCSiをストレージサーバ2に送信する。
【0030】
ステップP1−6;ストレージサーバ2は、鍵管理サーバ3から受け取ったユーザID及び認証情報に基づいて、端末1−iから受け取ったユーザID(UIDi)および認証情報AUTHi’を検証する。ストレージサーバ2は、端末1−iの使用者が正当なユーザであると確認できた場合に、端末1−iから受け取った端末ID(IDi)及び共通シェアCSiを関連付けて記録する。
【0031】
ステップP1−7;端末1−iは、共通シェア用鍵CKG及び共通シェアCSiを消去する。なお、共通シェア用鍵CKGが外部デバイス5を介して配布された場合は、外部デバイス5内の共通シェア用鍵CKGも消去する。
端末1−iは、端末ID(IDi)とマスターシェアMSiを保持する。
【0032】
[データ保存段階]
次に、図3を参照してデータ保存段階の処理を説明する。
図3は、本実施形態に係るデータ共有処理のデータ保存段階の手順を示すシーケンスチャートである。図3において、ユーザは、端末1−iにより、共有データMGをストレージサーバ2に保存するための操作を行う。
【0033】
ステップW1−1;ユーザは、端末1−iを操作して共有データMGを生成する。
ステップW1−2;端末1−iは、暗号鍵Kdをランダムに生成し、暗号鍵Kdを用いて共通鍵暗号方式により共有データMGを暗号化し、暗号化データEKd(MG)を生成する。暗号化後、共有データMGを消去する。
【0034】
ステップW1−3;端末1−iは、マスターシェアMSiを用いて暗号鍵シェアSKd,iを生成する。暗号鍵シェアSKd,iは次式により算出する。
SKd,i=(XKd,i,YKd,i)
XKd,i=XCS,i
YKd,i=gd(XKd,i)
但し、gd(x)は「gd(x)={(YMS,i−Kd)/XMS,i}×x+Kd mod(2b−1)」となる多項式である。又、マスターシェアMSi=(XMS,i,YMS,i)である。
【0035】
ステップW1−4;端末1−iは、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID(UIDi)と認証情報AUTHi’を入力する。
ステップW1−5;端末1−iは、端末ID(IDi)、ユーザID(UIDi)、認証情報AUTHi’、暗号化データEKd(MG)、暗号鍵シェアSKd,i及びデータラベルLdをストレージサーバ2に送信し、データ保存を要求する。
【0036】
なお、暗号化データEKd(MG)の送信に関しては、端末アイドル時、大容量通信利用可能時など、暗号鍵シェアSKd,iの送信タイミングとは別のタイミングで送信するようにしてもよい。
【0037】
ステップW1−6;ストレージサーバ2は、鍵管理サーバ3から受け取ったユーザID及び認証情報に基づいて、端末1−iから受け取ったユーザID(UIDi)および認証情報AUTHi’を検証する。ストレージサーバ2は、端末1−iの使用者が正当なユーザであると確認できた場合に、端末1−iから受け取った端末ID(IDi)、暗号化データEKd(MG)、暗号鍵シェアSKd,i及びデータラベルLdを関連付けて記録する。さらに、該記録データに対してデータ識別子(データID)「DIDd」を割り当てて、該記録データとデータID(DIDd)を関連付ける。さらに、該記録時点の時刻TS,dを、該記録データの最終更新時刻として該記録データに追加する。
なお、データラベルとは、データの内容や形態を表す名称であり、例えばファイル名である。
【0038】
ステップW1−7;ストレージサーバ2は、データ保存が完了したことを伝えるために、データID(DIDd)及び最終更新時刻TS,dを含む応答(ACK)メッセージを端末1−iに送信する。
ステップW1−8;端末1−iは、ストレージサーバ2からのACKメッセージを受信すると、暗号鍵Kdと暗号鍵シェアSKd,iを消去する。さらに、ローカルデータリストに当該共有データのエントリを新規に作成し、データID(DIDd)、最終更新時刻TS,d、暗号化データEKd(MG)及びデータラベルLdを組にして格納する。但し、ストレージサーバ2から通知された最終更新時刻TS,dは、最終参照時刻(Ti,d=TS,d)として格納する。図4に端末記憶部の構成が示されている。
【0039】
なお、暗号化データEKd(MG)については端末1−iで保持せず、消去するようにしてもよい。その暗号化データEKd(MG)の消去に関しては、設定ファイルなどにより、消去する/しないの設定を行うようにしてもよい。
【0040】
図5に、ストレージサーバ2の記憶部の構成が示されている。データを共有するグループの識別子(GID)に関連付けて、当該グループで共有されるデータレコードが記憶される。個々のデータレコードにはデータID(DID)が付与される。図6に、データレコードの構成が示されている。データレコードは、データラベル、最終更新時刻、暗号化データ、端末ID及び暗号鍵シェアを含む。端末ID及び暗号鍵シェアは、端末別のデータである。
【0041】
図7に本実施形態に係る鍵配布図を示す。図7において、鍵管理サーバ3は、共通シェア用鍵CKGを保管する。共通シェア用鍵CKGは、外部デバイス5等を介してデータ共有グループに属するメンバの端末1−1〜Nへ配布される。端末1−i(i=1〜N)は、自己に固有のマスターシェアMSiを有する。ストレージサーバ2は、端末1−iの共通シェアCSiを保管する。さらに、ストレージサーバ2は、共有される暗号化データに関連付けて端末1−iの暗号鍵シェアSKd,iを記録する。
【0042】
[データ参照段階]
次に、図8を参照してデータ参照段階の処理を説明する。
図8は、本実施形態に係るデータ共有処理のデータ参照段階の手順を示すシーケンスチャートである。図8において、ユーザは、端末1−jにより、ストレージサーバ2に保存されている暗号化データEKd(MG)を初めて参照するための操作を行う。
【0043】
ステップR1−0;ストレージサーバ2は、各端末1にデータリストを送信する。図9にデータリストの構成が示されている。データリストには、送信先の端末1が属するグループで共有される全てのデータレコードの情報(データラベル、データID及び最終更新時刻)が記載される。
【0044】
なお、データリストの送信タイミングは、データリストの更新時であってもよく、或いは、端末1からの要求時であってもよい。
【0045】
ステップR1−1;ユーザは、端末1−jを操作し、データリスト中の所望のデータラベルのデータID(DIDd)を指定してデータ参照要求を行う。端末1−jは、ユーザによるデータ参照要求に応じて、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID(UIDj)と認証情報AUTHj’を入力する。
ステップR1−2;端末1−jは、参照対象の暗号化データEKd(MG)に関するデータID(DIDd)、端末ID(IDj)、ユーザID(UIDj)、認証情報AUTHj’をデータ要求メッセージに含めてストレージサーバ2に送信する。
【0046】
ステップR1−3;ストレージサーバ2は、鍵管理サーバ3から受け取ったユーザID及び認証情報に基づいて、端末1−jから受け取ったユーザID(UIDj)および認証情報AUTHj’を検証する。
ステップR1−4;ストレージサーバ2は、端末1−jの使用者が正当なユーザであると確認できた場合に、端末1−jから受け取ったデータID(DIDd)に対応するデータレコードを参照し、端末1−jの暗号鍵シェアSKd,jがあるか調べる。ここでは、初めての参照なので、端末1−jの暗号鍵シェアSKd,jは当該データレコードに含まれていない。
【0047】
ステップR1−5;ストレージサーバ2は、端末1−jの暗号鍵シェアSKd,jがデータレコードに含まれていないことを確認すると、当該データレコード内の任意の端末1−iの暗号鍵シェアSKd,i、該端末1−iの共通シェアCSi及び端末1−jの共通シェアCSjを取得する。そして、その取得した暗号鍵シェアSKd,i、共通シェアCSi,CSjを用いて、端末1−jの暗号鍵シェアSKd,jを生成する。暗号鍵シェアSKd,jは次式により算出する。
SKd,j=(XKd,j,YKd,j)
XKd,j=XCS,j
YKd,j=YCS,j+(Li/Lj)×(YKd,i−YCS,i)mod(2b−1)
但し、Lr=XMS,r/(XMS,r−XCS,r)mod(2b−1)、である。又、共通シェアCSi=(XCS,i,YCS,i)である。
【0048】
ステップR1−6;ストレージサーバ2は、当該データレコード内の暗号化データEKd(MG)、最終更新時刻TS,d及び暗号鍵シェアSKd,jを端末1−jに送信する。又、ストレージサーバ2は、端末1−jの端末ID(IDj)及び暗号鍵シェアSKd,jを当該データレコードに追加し記録する。
【0049】
ステップR1−7;端末1−jは、ストレージサーバ2から受け取った暗号鍵シェアSKd,j及び自己のマスターシェアMSjを用いて、暗号鍵Kdを復元する。暗号鍵Kdは次式により算出する。
Kd=YMS,j×XKd,j/(XKd,j−XMS,j)+YKd,j×XMS,j/(XMS,j−XKd,j) mod(2b−1)
但し、マスターシェアMSj=(XMS,j,YMS,j)である。
ステップR1−8;端末1−jは、暗号鍵Kdを用いて暗号化データEKd(MG)を復号し、共有データMGを得る。
【0050】
ステップR1−9;端末1−jは、データ参照後に、暗号鍵Kd、暗号鍵シェアSKd,j及び共有データMGを消去する。端末1−jは、当該共有データMGに関するローカルデータリスト中のエントリを、ストレージサーバ2から通知された最終更新時刻TS,dにより最終参照時刻(Tj,d=TS,d)として更新する。なお、暗号化データEKd(MG)の消去に関しては、設定ファイルなどにより、消去する/しないの設定を行うようにしてもよい。
【0051】
次に、図10を参照して2回目以降のデータ参照段階の処理を説明する。
図10は、本実施形態に係るデータ共有処理の2回目以降のデータ参照段階の手順を示すシーケンスチャートである。図10において、ユーザは、端末1−iにより、ストレージサーバ2に保存されている暗号化データEKd(MG)を再度参照するための操作を行う。
【0052】
ステップR2−0;ストレージサーバ2は、各端末1にデータリストを送信する。
ステップR2−1;ユーザは、端末1−iを操作し、データリスト中の所望のデータラベル(データID(DIDd))を指定してデータ参照要求を行う。端末1−iは、ユーザによるデータ参照要求に応じて、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID(UIDj)と認証情報AUTHj’を入力する。
ステップR2−2;端末1−iは、参照対象の暗号化データEKd(MG)に関するデータID(DIDd)、端末ID(IDi)、ユーザID(UIDi)、認証情報AUTHi’をデータ要求メッセージに含めてストレージサーバ2に送信する。
【0053】
ステップR2−3;ストレージサーバ2は、鍵管理サーバ3から受け取ったユーザID及び認証情報に基づいて、端末1−iから受け取ったユーザID(UIDi)および認証情報AUTHi’を検証する。
ステップR2−4;ストレージサーバ2は、端末1−iの使用者が正当なユーザであると確認できた場合に、端末1−iから受け取ったデータID(DIDd)に対応するデータレコードを参照し、端末1−iの暗号鍵シェアSKd,iがあるか調べる。ここでは、2回目以降の参照なので、端末1−iの暗号鍵シェアSKd,iは当該データレコードに含まれている。
【0054】
ステップR2−5;ストレージサーバ2は、端末1−iの暗号鍵シェアSKd,iがデータレコードに含まれていることを確認すると、当該データレコードから端末1−iの暗号鍵シェアSKd,i、暗号化データEKd(MG)及び最終更新時刻TS,dを取得する。そして、その取得した暗号鍵シェアSKd,i、暗号化データEKd(MG)及び最終更新時刻TS,dを端末1−iに送信する。
【0055】
ステップR2−6;端末1−iは、ストレージサーバ2から受け取った暗号鍵シェアSKd,i及び自己のマスターシェアMSiを用いて、暗号鍵Kdを復元する。暗号鍵Kdは次式により算出する。
Kd=YMS,i×XKd,i/(XKd,i−XMS,i)+YKd,i×XMS,i/(XMS,i−XKd,i) mod(2b−1)
但し、マスターシェアMSi=(XMS,i,YMS,i)である。
ステップR2−7;端末1−iは、暗号鍵Kdを用いて暗号化データEKd(MG)を復号し、共有データMGを得る。
【0056】
ステップR2−8;端末1−iは、データ参照後に、暗号鍵Kd、暗号鍵シェアSKd,i及び共有データMGを消去する。端末1−iは、当該共有データMGに関するローカルデータリスト中のエントリを、ストレージサーバ2から通知された最終更新時刻TS,dにより最終参照時刻(Ti,d=TS,d)として更新する。なお、暗号化データEKd(MG)の消去に関しては、設定ファイルなどにより、消去する/しないの設定を行うようにしてもよい。
【0057】
[データ更新段階]
次に、図11を参照してデータ更新段階の処理を説明する。
図11は、本実施形態に係るデータ共有処理のデータ更新段階の手順を示すシーケンスチャートである。図11において、ユーザは、端末1−jにより、ストレージサーバ2に保存されている暗号化データEKd(MG)を更新するための操作を行う。
【0058】
ステップW2−1;ユーザは、端末1−jを操作し、更新対象のデータラベル(データID(DIDd))を指定して共有データMG2を生成する。
ステップW2−2;端末1−jは、暗号鍵Kd2をランダムに生成し、暗号鍵Kd2を用いて共通鍵暗号方式により共有データMG2を暗号化し、暗号化データEKd2(MG2)を生成する。暗号化後、共有データMG2を消去する。
【0059】
ステップW2−3;端末1−jは、マスターシェアMSjを用いて暗号鍵シェアSKd2,jを生成する。暗号鍵シェアSKd2,jは次式により算出する。
SKd2,j=(XKd2,j,YKd2,j)
XKd2,j=XCS,j
YKd2,j=gd2(XKd2,j)
但し、gd2(x)は「gd2(x)={(YMS,j−Kd2)/XMS,j}×x+Kd2 mod(2b−1)」となる多項式である。
【0060】
ステップW2−4;端末1−jは、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID(UIDj)と認証情報AUTHj’を入力する。
ステップW2−5;端末1−jは、更新対象のデータID(DIDd)、端末ID(IDj)、ユーザID(UIDj)、認証情報AUTHj’、暗号化データEKd2(MG2)、暗号鍵シェアSKd2,j及びデータラベルLd2をストレージサーバ2に送信し、データ更新を要求する。
【0061】
ステップW2−6;ストレージサーバ2は、鍵管理サーバ3から受け取ったユーザID及び認証情報に基づいて、端末1−jから受け取ったユーザID(UIDj)および認証情報AUTHj’を検証する。ストレージサーバ2は、端末1−jの使用者が正当なユーザであると確認できた場合に、更新対象のデータID(DIDd)のデータレコードを書き換える。このデータレコード書き換えでは、データラベル、暗号化データをそれぞれデータラベルLd2、暗号化データEKd2(MG2)に書き換える。さらに、端末ID(IDj)の暗号鍵シェアを暗号鍵シェアSKd2,jに書き換える。さらに、最終更新時刻を現在時刻TS,d2に書き換える。
【0062】
ステップW2−7;ストレージサーバ2は、データ更新が完了したことを伝えるために、データID(DIDd)及び最終更新時刻TS,d2を含む応答(ACK)メッセージを端末1−jに送信する。
ステップW2−8;端末1−jは、ストレージサーバ2からのACKメッセージを受信すると、暗号鍵Kd2と暗号鍵シェアSKd2,jを消去する。さらに、ローカルデータリスト中の当該共有データのエントリを、最終参照時刻(Ti,d=TS,d2)、暗号化データEKd2(MG2)及びデータラベルLd2で書き換える。
【0063】
ステップW2−9;ストレージサーバ2は、端末1−j以外の他の端末1−iに関し、更新対象のデータID(DIDd)のデータレコードに更新前の暗号鍵Kdに対応する暗号鍵シェアSKd,iがある場合、該暗号鍵シェアを更新後の暗号鍵Kd2に対応する暗号鍵シェアSKd2,iに更新する。暗号鍵シェアSKd2,iは次式により算出する。
SKd2,i=(XKd2,i,YKd2,i)
XKd2,i=XCS,i
YKd2,i=YCS,i+(Lj/Li)×(YKd2,j−YCS,j)mod(2b−1)
但し、Lr=XMS,r/(XMS,r−XCS,r)mod(2b−1)、である。
【0064】
なお、端末1−j以外の他の端末1−iの暗号鍵シェアの更新は、他の端末1−iが当該データレコードへのアクセスを要求した際に行うようにしてもよい。この場合、当該データレコードに、暗号鍵シェアの更新状況(未更新/更新済)を示す情報を含めておく。
【0065】
[環境移行段階]
次に、図12を参照して環境移行段階の処理を説明する。
図12は、本実施形態に係るデータ共有処理の環境移行段階の手順を示すシーケンスチャートである。環境移行段階は、ユーザが端末を紛失等した場合に、該端末の環境を他の端末に移行するためのものである。図12において、ユーザは、端末1−iの環境を他の端末1−i’に移行する。端末1−i’の端末IDはIDi'である。
【0066】
ステップRE1−1;ユーザは、端末1−i’を操作し、端末1−iの環境を端末1−i’に移行することを鍵管理サーバ3に通知する。なお、この環境移行通知はオフラインで行ってもよい。
ステップRE1−2;鍵管理サーバ3は、端末1−i’に対して、端末1−iが属するグループ用の共通シェア用鍵CKGを配布する。この共通シェア用鍵CKGの配布は、セキュリティの確保された通信路を介して配布してもよいし、或いは、外部デバイス5を介して配布してもよい。さらに、鍵管理サーバ3は、端末1−iが当該グループに所属のメンバの端末として失効したことをストレージサーバ2に通知する。
【0067】
ステップRE1−3;ストレージサーバ2は、端末1−iに関するデータ(暗号鍵シェア等)を全て消去する。
ステップRE1−4;端末1−i’は、マスターシェアMSi'をランダムに生成する。マスターシェアMSi'は次式により算出する。
MSi'=(XMS,i',YMS,i')
XMS,i'=h(IDi')
但し、hはハッシュ関数である。YMS,i'はランダムに生成する。ここで、XMS,i'及びYMS,i'の絶対値は、共通鍵暗号方式の鍵長b以下である。
【0068】
ステップRE1−5;端末1−i’は、共通シェア用鍵CKGとマスターシェアMSi'から、共通シェアCSi'を生成する。共通シェアCSi'は次式により算出する。
CSi'=(XCS,i',YCS,i')
XCS,i'=h(IDi'||r1)
YCS,i'=fi'(XCS,i')
但し、「IDi'||r1」はIDi'とr1の連結データである。r1は乱数である。fi'(x)は「fi'(x)={(YMS,i'−CKG)/XMS,i'}×x+CKG mod(2b−1)」となる多項式である。
【0069】
ステップRE1−6;端末1−i’は、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID(UIDi)と認証情報AUTHi’を入力する。
ステップRE1−7;端末1−i’は、端末ID(IDi')、ユーザID(UIDi)、認証情報AUTHi’及び共通シェアCSi'をストレージサーバ2に送信する。
【0070】
ステップRE1−8;ストレージサーバ2は、鍵管理サーバ3から受け取ったユーザID及び認証情報に基づいて、端末1−i’から受け取ったユーザID(UIDi)および認証情報AUTHi’を検証する。ストレージサーバ2は、端末1−i’の使用者が正当なユーザであると確認できた場合に、端末1−i’から受け取った端末ID(IDi')及び共通シェアCSi'を関連付けて記録する。
【0071】
ステップRE1−9;端末1−i’は、共通シェア用鍵CKG及び共通シェアCSi'を消去する。なお、共通シェア用鍵CKGが外部デバイス5を介して配布された場合は、外部デバイス5内の共通シェア用鍵CKGも消去する。
端末1−i’は、端末ID(IDi')とマスターシェアMSi'を保持する。
【0072】
以上が本実施形態に係るデータ共有システムの動作の説明である。
【0073】
上述した実施形態によれば、以下に示すような効果が得られる。
(1)共有データの暗号化に使用している暗号鍵は、ストレージサーバで保管される暗号鍵シェアが無いと復元できないので、盗難、紛失などにより端末がグループメンバ以外の者の手に渡ったとしても、共有データの漏洩を防ぐ効果が得られる。又、同じグループに属する複数のメンバの端末がグループメンバ以外の者の手に渡ったとしても、同様に暗号鍵の復元を行うことができないので、共有データの安全性確保に貢献することができる。又、ストレージサーバで保管される共通シェア及び暗号鍵シェアがたとえ漏洩したとしても、端末で保持される端末固有のマスターシェアが無いと暗号鍵を復元できないので、共有データの安全性確保に貢献することができる。
【0074】
(2)公開鍵暗号方式を利用せずに、(2,2)しきい値秘密分散法と共通鍵暗号方式のみで実現できるため、データ共有システム全体の処理負荷を軽減することができる。また、グループ内データ共有機能を容易に実現することが可能になる。
【0075】
なお、(k,n)しきい値秘密分散法とは、秘密分散法の一種であり、秘密情報をn個の分割情報(シェア)に分割してそれぞれ保管し、その内のk個以上の分割情報を入手することができれば、元の秘密情報を復元することができるものである。秘密分散法とは、秘密情報を数人で分散して保管することで、元の秘密情報を安全に保管する方法である。
【0076】
なお、図2、3、8、10〜12に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、データ共有処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0077】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0078】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【0079】
【図1】本発明の一実施形態に係るデータ共有システムの全体構成を示すブロック図である。
【図2】同実施形態に係るデータ共有処理のメンバ端末登録段階の手順を示すシーケンスチャートである。
【図3】同実施形態に係るデータ共有処理のデータ保存段階の手順を示すシーケンスチャートである。
【図4】図1に示す端末1の記憶部の構成例である。
【図5】図1に示すストレージサーバ2の記憶部の構成例である。
【図6】図5に示すデータレコードの構成例である。
【図7】本発明の一実施形態に係る鍵配布図である。
【図8】同実施形態に係るデータ共有処理のデータ参照段階の手順を示すシーケンスチャートである。
【図9】同実施形態に係るデータリストの構成例である。
【図10】同実施形態に係るデータ共有処理の2回目以降のデータ参照段階の手順を示すシーケンスチャートである。
【図11】同実施形態に係るデータ共有処理のデータ更新段階の手順を示すシーケンスチャートである。
【図12】同実施形態に係るデータ共有処理の環境移行段階の手順を示すシーケンスチャートである。
【符号の説明】
【0080】
1…グループメンバ端末(端末装置)、2…ストレージサーバ(データ管理装置)、3…鍵管理サーバ、4…通信ネットワーク、5…外部デバイス
【技術分野】
【0001】
本発明は、端末装置、データ管理装置およびコンピュータプログラムに関する。
【背景技術】
【0002】
従来、情報秘匿技術として、例えば非特許文献1に記載の秘密分散法が知られている。秘密分散法とは、秘密情報を数人で分散して保管することで、元の秘密情報を安全に保管する方法である。非特許文献1に記載の(k, n)閾値秘密分散法は、秘密分散法の一種であり、秘密情報をn個の分割情報(シェア)に分割してそれぞれ保管し、その内のk個以上の分割情報を入手することができれば、元の秘密情報を復元することができるものである。
【0003】
また、特許文献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】A. Shamir,“How to share a secret”,Communications of the ACM,Vol.22,No.11,pp.612-613,1979
【特許文献1】特開2005−223953号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の技術では、共有データを公開する際に、グループメンバの人数(N)分、すなわちN回公開鍵暗号処理を行う必要があり、データ公開者の処理負荷が大きくなる。又、グループメンバの所有する端末装置が盗難にあうなどし悪意の第三者に使用された場合、共有データの暗号化に使用している秘密鍵が該端末装置から漏洩してしまう可能性がある。この場合、秘密鍵を更新することで漏えい被害を抑えることができるが、共有データ公開時と同様、N回公開鍵暗号処理を行うことになり処理負荷が大きい。
【0005】
本発明は、このような事情を考慮してなされたもので、その目的は、グループメンバの所有する端末装置から鍵が漏洩するような場合の共有データの安全性確保に貢献すると共に、共有データ公開時などの処理負荷軽減を図ることのできる端末装置、データ管理装置およびコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0006】
上記の課題を解決するために、本発明に係る端末装置は、メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムにおける前記端末装置であり、前記グループ内で共通の共通シェア用鍵と自端末固有のマスターシェアとから共通シェアを生成し、該共通シェア及び自己の端末識別子を前記データ管理装置に送り登録要求する端末登録手段と、暗号鍵を用いて共通鍵暗号方式により共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り保存要求するデータ保存手段と、前記データ管理装置から暗号化データ及び自己用の暗号鍵シェアを取得し、該暗号鍵シェア及び前記マスターシェアを用いて暗号鍵を復元し、該暗号鍵を用いて前記データ管理装置から取得した暗号化データを復号するデータ参照手段と、を備えたことを特徴とする。
【0007】
本発明に係るデータ管理装置は、メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムにおける前記データ管理装置であり、端末装置から登録要求された共通シェア及び端末識別子を関連付けて記録する端末登録手段と、端末装置から保存要求された暗号化データ、暗号鍵シェア及び端末識別子に関し、暗号化データに対して暗号鍵シェアと端末識別子の組を関連付けて記録するデータ保存手段と、前記端末装置から参照要求された前記データ保存手段に格納される暗号化データと、該要求元の端末装置用の暗号鍵シェアとを該要求元の端末装置に送るデータ参照手段と、を備えたことを特徴とする。
【0008】
本発明に係るデータ管理装置において、前記データ参照手段は、データ参照要求元の端末装置用の暗号鍵シェアが参照対象の暗号化データに関連付けて記録されていない場合、参照対象の暗号化データに関連付けて記録されている任意の端末装置用の暗号鍵シェア及び該端末装置の共通シェア、並びにデータ参照要求元の端末装置の共通シェアから、データ参照要求元の端末装置用の暗号鍵シェアを生成し、該データ参照要求元の端末装置用の暗号鍵シェアを参照対象の暗号化データに関連付けて記録することを特徴とする。
【0009】
本発明に係る端末装置において、暗号鍵を用いて共通鍵暗号方式により更新対象の共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り更新要求するデータ更新手段を備えたことを特徴とする。
【0010】
本発明に係るデータ管理装置において、前記端末装置から受け取った更新対象の暗号化データ、暗号鍵シェア及び端末識別子によって更新対象の保存データを書き換えるデータ更新手段を備えたことを特徴とする。
【0011】
本発明に係るデータ管理装置において、前記データ更新手段は、更新対象の暗号化データに関連付けて記録されている未更新の暗号鍵シェアを、更新後の暗号鍵に対応する暗号鍵シェアに更新することを特徴とする。
【0012】
本発明に係るデータ管理装置において、前記データ更新手段は、前記暗号鍵シェアの更新をまとめて行うことを特徴とする。
【0013】
本発明に係るデータ管理装置において、前記データ更新手段は、前記暗号鍵シェアの更新を、端末装置毎にデータ参照時に行うことを特徴とする。
【0014】
本発明に係るデータ管理装置において、前記グループに属するメンバの端末装置として失効した端末装置に関するデータを全て消去する環境移行手段を備えたことを特徴とする。
【0015】
本発明に係るコンピュータプログラムは、メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムの前記端末装置におけるデータ共有処理を行うためのコンピュータプログラムであって、前記グループ内で共通の共通シェア用鍵と自端末固有のマスターシェアとから共通シェアを生成し、該共通シェア及び自己の端末識別子を前記データ管理装置に送り登録要求する端末登録機能と、暗号鍵を用いて共通鍵暗号方式により共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り保存要求するデータ保存機能と、前記データ管理装置から暗号化データ及び自己用の暗号鍵シェアを取得し、該暗号鍵シェア及び前記マスターシェアを用いて暗号鍵を復元し、該暗号鍵を用いて前記データ管理装置から取得した暗号化データを復号するデータ参照機能と、をコンピュータに実現させることを特徴とする。
これにより、前述の端末装置がコンピュータを利用して実現できるようになる。
【0016】
本発明に係るコンピュータプログラムは、メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムの前記データ管理装置におけるデータ共有処理を行うためのコンピュータプログラムであって、端末装置から登録要求された共通シェア及び端末識別子を関連付けて記録する端末登録機能と、端末装置から保存要求された暗号化データ、暗号鍵シェア及び端末識別子に関し、暗号化データに対して暗号鍵シェアと端末識別子の組を関連付けて記録するデータ保存機能と、前記端末装置から参照要求された前記データ保存手段に格納される暗号化データと、該要求元の端末装置用の暗号鍵シェアとを該要求元の端末装置に送るデータ参照機能と、をコンピュータに実現させることを特徴とする。
これにより、前述のデータ管理装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【0017】
本発明によれば、グループメンバの所有する端末装置から鍵が漏洩するような場合の共有データの安全性確保に貢献すると共に、共有データ公開時などの処理負荷軽減を図ることができるという効果が得られる。
【発明を実施するための最良の形態】
【0018】
以下、図面を参照し、本発明の実施形態について説明する。
図1は、本発明の一実施形態に係るデータ共有システムの全体構成を示すブロック図である。図1において、図1において、グループメンバ端末1は、メンバ間でデータを共有するグループに属するメンバの端末装置である。図1にはN台のグループメンバ端末1−1〜Nが示されている。グループメンバ端末(以下、端末と称する)1は、通信ネットワーク4を介してストレージサーバ2にアクセスし、ストレージサーバ2との間でデータを送受することができる。なお、通信ネットワーク4は、無線ネットワークであっても、有線ネットワークであってもよい。例えば、通信ネットワーク4は、インターネットと固定電話網や移動電話網などから構成されてもよい。
【0019】
端末1は、移動しながら使用可能な装置(例えば、携帯型装置)であってもよく、或いは、固定して使用される装置(例えば、パーソナルコンピュータ等の据置き型装置)であってもよい。また、携帯型の端末装置としては、例えば、移動通信事業者が提供する移動通信網の端末装置(例えば、データ通信機能を有する携帯電話機、データ通信端末装置等)、PDA(Personal Digital Assistants:個人用情報機器)などが挙げられる。また、PDAの場合、通信手段を内蔵していてもよく、外部から通信手段を接続するものであってもよい。
【0020】
端末1は、演算処理部、記憶部、通信部、入力部、表示部、外部インタフェースなどを備える。演算処理部は、CPU(中央処理装置)およびメモリ等から構成される。記憶部は、例えば、ハードディスク装置、光磁気ディスク装置、DVD(Digital Versatile Disk)等の光ディスク装置、フラッシュメモリ等の不揮発性のメモリ、DRAM(Dynamic Random Access Memory)等の揮発性のメモリ、などの記憶装置、あるいはそれらの組み合わせにより構成される。記憶部は、CPUで実行されるコンピュータプログラム等の各種データを記憶する。通信部は、通信ネットワーク4を介したデータ通信を行う。入力部は、キーボード、テンキー、マウス等の入力デバイスから構成され、ユーザの操作に応じたデータ入力を行う。表示部は、CRT(Cathode Ray Tube)や液晶表示装置等の表示デバイスから構成され、データ表示を行う。外部インタフェースは、外部機器との間で有線又は無線により直接にデータを送受する。
【0021】
端末1は、CPUがコンピュータプログラムを実行することにより、データ共有機能を実現する。データ共有機能を実現するためのコンピュータプログラムは、端末1に固定的にインストールされていてもよく、或いは、サーバ上にあるコンピュータプログラムが必要なときに通信回線を介してダウンロードされてもよい。
【0022】
ストレージサーバ2は、CPUおよびメモリ等から構成される演算処理部、ハードディスク装置等の記憶装置から構成される記憶部、通信部などを備える。記憶部は、端末1から送られてきたデータ等、各種データを記憶する。ストレージサーバ2のデータ保管機能は、ストレージサーバ2のCPUがデータ保管機能を実現するためのコンピュータプログラムを実行することにより実現される。
【0023】
鍵管理サーバ3は、CPUおよびメモリ等から構成される演算処理部、ハードディスク装置等の記憶装置から構成される記憶部などを備える。記憶部は、鍵管理に係る各種データを記憶する。鍵管理サーバ3の鍵管理機能は、鍵管理サーバ3のCPUが鍵管理機能を実現するためのコンピュータプログラムを実行することにより実現される。なお、鍵管理サーバ3は、通信部を有し通信ネットワーク4に接続されていてもよく、或いは、通信部を有さず通信ネットワーク4に接続されていなくてもよい。鍵管理サーバ3は、通信ネットワーク4に接続されている場合、通信ネットワーク4を介して端末1及びストレージサーバ2との間でデータを送受することができる。鍵管理サーバ3は、通信ネットワーク4に接続されていない場合には、外部デバイス5を介して端末1及びストレージサーバ2との間でデータを送受する。外部デバイス5は、データの書き込み及び読み出しが可能な記録媒体である。外部デバイス5としては、例えば、メモリカード、ICカード、USB(Universal Serial Bus)メモリなどが利用可能である。
【0024】
以下、図1に示すデータ共有システムの動作を順次詳細に説明する。
【0025】
[メンバ端末登録段階]
まず図2を参照してメンバ端末登録段階の処理を説明する。
図2は、本実施形態に係るデータ共有処理のメンバ端末登録段階の手順を示すシーケンスチャートである。図2においては、グループメンバ(ユーザ識別子(ユーザID)=UIDi)の端末1−i(端末識別子(端末ID)=IDi)が登録されるとする。
【0026】
ステップP1−0;鍵管理サーバ3は、あらかじめグループ用の共通シェア用鍵CKGを生成する。
ステップP1−1;鍵管理サーバ3は、端末1−iに対して、共通シェア用鍵CKGを配布する。この鍵配布方法は、セキュリティの確保された通信路を介して配布してもよいし、外部デバイス5を介して配布してもよい。また、鍵管理サーバ3は、端末1−iのメンバのユーザID(UIDi)と認証情報AUTHiをストレージサーバに送る。
【0027】
ステップP1−2;端末1−iは、マスターシェアMSiをランダムに生成する。マスターシェアMSiは次式により算出する。
MSi=(XMS,i,YMS,i)
XMS,i=h(IDi)
但し、hはハッシュ関数である。YMS,iはランダムに生成する。ここで、XMS,i及びYMS,iの絶対値は、共通鍵暗号方式の鍵長b以下である。
【0028】
ステップP1−3;端末1−iは、共通シェア用鍵CKGとマスターシェアMSiから、共通シェアCSiを生成する。共通シェアCSiは次式により算出する。
CSi=(XCS,i,YCS,i)
XCS,i=h(IDi||r1)
YCS,i=fi(XCS,i)
但し、「IDi||r1」はIDiとr1の連結データである。r1は乱数である。fi(x)は「fi(x)={(YMS,i−CKG)/XMS,i}×x+CKG mod(2b−1)」となる多項式である。x mod(y)は、xに対してモジュロyをとった値である。
【0029】
ステップP1−4;端末1−iは、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID(UIDi)と認証情報AUTHi’を入力する。
ステップP1−5;端末1−iは、端末ID(IDi)、ユーザID(UIDi)、認証情報AUTHi’及び共通シェアCSiをストレージサーバ2に送信する。
【0030】
ステップP1−6;ストレージサーバ2は、鍵管理サーバ3から受け取ったユーザID及び認証情報に基づいて、端末1−iから受け取ったユーザID(UIDi)および認証情報AUTHi’を検証する。ストレージサーバ2は、端末1−iの使用者が正当なユーザであると確認できた場合に、端末1−iから受け取った端末ID(IDi)及び共通シェアCSiを関連付けて記録する。
【0031】
ステップP1−7;端末1−iは、共通シェア用鍵CKG及び共通シェアCSiを消去する。なお、共通シェア用鍵CKGが外部デバイス5を介して配布された場合は、外部デバイス5内の共通シェア用鍵CKGも消去する。
端末1−iは、端末ID(IDi)とマスターシェアMSiを保持する。
【0032】
[データ保存段階]
次に、図3を参照してデータ保存段階の処理を説明する。
図3は、本実施形態に係るデータ共有処理のデータ保存段階の手順を示すシーケンスチャートである。図3において、ユーザは、端末1−iにより、共有データMGをストレージサーバ2に保存するための操作を行う。
【0033】
ステップW1−1;ユーザは、端末1−iを操作して共有データMGを生成する。
ステップW1−2;端末1−iは、暗号鍵Kdをランダムに生成し、暗号鍵Kdを用いて共通鍵暗号方式により共有データMGを暗号化し、暗号化データEKd(MG)を生成する。暗号化後、共有データMGを消去する。
【0034】
ステップW1−3;端末1−iは、マスターシェアMSiを用いて暗号鍵シェアSKd,iを生成する。暗号鍵シェアSKd,iは次式により算出する。
SKd,i=(XKd,i,YKd,i)
XKd,i=XCS,i
YKd,i=gd(XKd,i)
但し、gd(x)は「gd(x)={(YMS,i−Kd)/XMS,i}×x+Kd mod(2b−1)」となる多項式である。又、マスターシェアMSi=(XMS,i,YMS,i)である。
【0035】
ステップW1−4;端末1−iは、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID(UIDi)と認証情報AUTHi’を入力する。
ステップW1−5;端末1−iは、端末ID(IDi)、ユーザID(UIDi)、認証情報AUTHi’、暗号化データEKd(MG)、暗号鍵シェアSKd,i及びデータラベルLdをストレージサーバ2に送信し、データ保存を要求する。
【0036】
なお、暗号化データEKd(MG)の送信に関しては、端末アイドル時、大容量通信利用可能時など、暗号鍵シェアSKd,iの送信タイミングとは別のタイミングで送信するようにしてもよい。
【0037】
ステップW1−6;ストレージサーバ2は、鍵管理サーバ3から受け取ったユーザID及び認証情報に基づいて、端末1−iから受け取ったユーザID(UIDi)および認証情報AUTHi’を検証する。ストレージサーバ2は、端末1−iの使用者が正当なユーザであると確認できた場合に、端末1−iから受け取った端末ID(IDi)、暗号化データEKd(MG)、暗号鍵シェアSKd,i及びデータラベルLdを関連付けて記録する。さらに、該記録データに対してデータ識別子(データID)「DIDd」を割り当てて、該記録データとデータID(DIDd)を関連付ける。さらに、該記録時点の時刻TS,dを、該記録データの最終更新時刻として該記録データに追加する。
なお、データラベルとは、データの内容や形態を表す名称であり、例えばファイル名である。
【0038】
ステップW1−7;ストレージサーバ2は、データ保存が完了したことを伝えるために、データID(DIDd)及び最終更新時刻TS,dを含む応答(ACK)メッセージを端末1−iに送信する。
ステップW1−8;端末1−iは、ストレージサーバ2からのACKメッセージを受信すると、暗号鍵Kdと暗号鍵シェアSKd,iを消去する。さらに、ローカルデータリストに当該共有データのエントリを新規に作成し、データID(DIDd)、最終更新時刻TS,d、暗号化データEKd(MG)及びデータラベルLdを組にして格納する。但し、ストレージサーバ2から通知された最終更新時刻TS,dは、最終参照時刻(Ti,d=TS,d)として格納する。図4に端末記憶部の構成が示されている。
【0039】
なお、暗号化データEKd(MG)については端末1−iで保持せず、消去するようにしてもよい。その暗号化データEKd(MG)の消去に関しては、設定ファイルなどにより、消去する/しないの設定を行うようにしてもよい。
【0040】
図5に、ストレージサーバ2の記憶部の構成が示されている。データを共有するグループの識別子(GID)に関連付けて、当該グループで共有されるデータレコードが記憶される。個々のデータレコードにはデータID(DID)が付与される。図6に、データレコードの構成が示されている。データレコードは、データラベル、最終更新時刻、暗号化データ、端末ID及び暗号鍵シェアを含む。端末ID及び暗号鍵シェアは、端末別のデータである。
【0041】
図7に本実施形態に係る鍵配布図を示す。図7において、鍵管理サーバ3は、共通シェア用鍵CKGを保管する。共通シェア用鍵CKGは、外部デバイス5等を介してデータ共有グループに属するメンバの端末1−1〜Nへ配布される。端末1−i(i=1〜N)は、自己に固有のマスターシェアMSiを有する。ストレージサーバ2は、端末1−iの共通シェアCSiを保管する。さらに、ストレージサーバ2は、共有される暗号化データに関連付けて端末1−iの暗号鍵シェアSKd,iを記録する。
【0042】
[データ参照段階]
次に、図8を参照してデータ参照段階の処理を説明する。
図8は、本実施形態に係るデータ共有処理のデータ参照段階の手順を示すシーケンスチャートである。図8において、ユーザは、端末1−jにより、ストレージサーバ2に保存されている暗号化データEKd(MG)を初めて参照するための操作を行う。
【0043】
ステップR1−0;ストレージサーバ2は、各端末1にデータリストを送信する。図9にデータリストの構成が示されている。データリストには、送信先の端末1が属するグループで共有される全てのデータレコードの情報(データラベル、データID及び最終更新時刻)が記載される。
【0044】
なお、データリストの送信タイミングは、データリストの更新時であってもよく、或いは、端末1からの要求時であってもよい。
【0045】
ステップR1−1;ユーザは、端末1−jを操作し、データリスト中の所望のデータラベルのデータID(DIDd)を指定してデータ参照要求を行う。端末1−jは、ユーザによるデータ参照要求に応じて、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID(UIDj)と認証情報AUTHj’を入力する。
ステップR1−2;端末1−jは、参照対象の暗号化データEKd(MG)に関するデータID(DIDd)、端末ID(IDj)、ユーザID(UIDj)、認証情報AUTHj’をデータ要求メッセージに含めてストレージサーバ2に送信する。
【0046】
ステップR1−3;ストレージサーバ2は、鍵管理サーバ3から受け取ったユーザID及び認証情報に基づいて、端末1−jから受け取ったユーザID(UIDj)および認証情報AUTHj’を検証する。
ステップR1−4;ストレージサーバ2は、端末1−jの使用者が正当なユーザであると確認できた場合に、端末1−jから受け取ったデータID(DIDd)に対応するデータレコードを参照し、端末1−jの暗号鍵シェアSKd,jがあるか調べる。ここでは、初めての参照なので、端末1−jの暗号鍵シェアSKd,jは当該データレコードに含まれていない。
【0047】
ステップR1−5;ストレージサーバ2は、端末1−jの暗号鍵シェアSKd,jがデータレコードに含まれていないことを確認すると、当該データレコード内の任意の端末1−iの暗号鍵シェアSKd,i、該端末1−iの共通シェアCSi及び端末1−jの共通シェアCSjを取得する。そして、その取得した暗号鍵シェアSKd,i、共通シェアCSi,CSjを用いて、端末1−jの暗号鍵シェアSKd,jを生成する。暗号鍵シェアSKd,jは次式により算出する。
SKd,j=(XKd,j,YKd,j)
XKd,j=XCS,j
YKd,j=YCS,j+(Li/Lj)×(YKd,i−YCS,i)mod(2b−1)
但し、Lr=XMS,r/(XMS,r−XCS,r)mod(2b−1)、である。又、共通シェアCSi=(XCS,i,YCS,i)である。
【0048】
ステップR1−6;ストレージサーバ2は、当該データレコード内の暗号化データEKd(MG)、最終更新時刻TS,d及び暗号鍵シェアSKd,jを端末1−jに送信する。又、ストレージサーバ2は、端末1−jの端末ID(IDj)及び暗号鍵シェアSKd,jを当該データレコードに追加し記録する。
【0049】
ステップR1−7;端末1−jは、ストレージサーバ2から受け取った暗号鍵シェアSKd,j及び自己のマスターシェアMSjを用いて、暗号鍵Kdを復元する。暗号鍵Kdは次式により算出する。
Kd=YMS,j×XKd,j/(XKd,j−XMS,j)+YKd,j×XMS,j/(XMS,j−XKd,j) mod(2b−1)
但し、マスターシェアMSj=(XMS,j,YMS,j)である。
ステップR1−8;端末1−jは、暗号鍵Kdを用いて暗号化データEKd(MG)を復号し、共有データMGを得る。
【0050】
ステップR1−9;端末1−jは、データ参照後に、暗号鍵Kd、暗号鍵シェアSKd,j及び共有データMGを消去する。端末1−jは、当該共有データMGに関するローカルデータリスト中のエントリを、ストレージサーバ2から通知された最終更新時刻TS,dにより最終参照時刻(Tj,d=TS,d)として更新する。なお、暗号化データEKd(MG)の消去に関しては、設定ファイルなどにより、消去する/しないの設定を行うようにしてもよい。
【0051】
次に、図10を参照して2回目以降のデータ参照段階の処理を説明する。
図10は、本実施形態に係るデータ共有処理の2回目以降のデータ参照段階の手順を示すシーケンスチャートである。図10において、ユーザは、端末1−iにより、ストレージサーバ2に保存されている暗号化データEKd(MG)を再度参照するための操作を行う。
【0052】
ステップR2−0;ストレージサーバ2は、各端末1にデータリストを送信する。
ステップR2−1;ユーザは、端末1−iを操作し、データリスト中の所望のデータラベル(データID(DIDd))を指定してデータ参照要求を行う。端末1−iは、ユーザによるデータ参照要求に応じて、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID(UIDj)と認証情報AUTHj’を入力する。
ステップR2−2;端末1−iは、参照対象の暗号化データEKd(MG)に関するデータID(DIDd)、端末ID(IDi)、ユーザID(UIDi)、認証情報AUTHi’をデータ要求メッセージに含めてストレージサーバ2に送信する。
【0053】
ステップR2−3;ストレージサーバ2は、鍵管理サーバ3から受け取ったユーザID及び認証情報に基づいて、端末1−iから受け取ったユーザID(UIDi)および認証情報AUTHi’を検証する。
ステップR2−4;ストレージサーバ2は、端末1−iの使用者が正当なユーザであると確認できた場合に、端末1−iから受け取ったデータID(DIDd)に対応するデータレコードを参照し、端末1−iの暗号鍵シェアSKd,iがあるか調べる。ここでは、2回目以降の参照なので、端末1−iの暗号鍵シェアSKd,iは当該データレコードに含まれている。
【0054】
ステップR2−5;ストレージサーバ2は、端末1−iの暗号鍵シェアSKd,iがデータレコードに含まれていることを確認すると、当該データレコードから端末1−iの暗号鍵シェアSKd,i、暗号化データEKd(MG)及び最終更新時刻TS,dを取得する。そして、その取得した暗号鍵シェアSKd,i、暗号化データEKd(MG)及び最終更新時刻TS,dを端末1−iに送信する。
【0055】
ステップR2−6;端末1−iは、ストレージサーバ2から受け取った暗号鍵シェアSKd,i及び自己のマスターシェアMSiを用いて、暗号鍵Kdを復元する。暗号鍵Kdは次式により算出する。
Kd=YMS,i×XKd,i/(XKd,i−XMS,i)+YKd,i×XMS,i/(XMS,i−XKd,i) mod(2b−1)
但し、マスターシェアMSi=(XMS,i,YMS,i)である。
ステップR2−7;端末1−iは、暗号鍵Kdを用いて暗号化データEKd(MG)を復号し、共有データMGを得る。
【0056】
ステップR2−8;端末1−iは、データ参照後に、暗号鍵Kd、暗号鍵シェアSKd,i及び共有データMGを消去する。端末1−iは、当該共有データMGに関するローカルデータリスト中のエントリを、ストレージサーバ2から通知された最終更新時刻TS,dにより最終参照時刻(Ti,d=TS,d)として更新する。なお、暗号化データEKd(MG)の消去に関しては、設定ファイルなどにより、消去する/しないの設定を行うようにしてもよい。
【0057】
[データ更新段階]
次に、図11を参照してデータ更新段階の処理を説明する。
図11は、本実施形態に係るデータ共有処理のデータ更新段階の手順を示すシーケンスチャートである。図11において、ユーザは、端末1−jにより、ストレージサーバ2に保存されている暗号化データEKd(MG)を更新するための操作を行う。
【0058】
ステップW2−1;ユーザは、端末1−jを操作し、更新対象のデータラベル(データID(DIDd))を指定して共有データMG2を生成する。
ステップW2−2;端末1−jは、暗号鍵Kd2をランダムに生成し、暗号鍵Kd2を用いて共通鍵暗号方式により共有データMG2を暗号化し、暗号化データEKd2(MG2)を生成する。暗号化後、共有データMG2を消去する。
【0059】
ステップW2−3;端末1−jは、マスターシェアMSjを用いて暗号鍵シェアSKd2,jを生成する。暗号鍵シェアSKd2,jは次式により算出する。
SKd2,j=(XKd2,j,YKd2,j)
XKd2,j=XCS,j
YKd2,j=gd2(XKd2,j)
但し、gd2(x)は「gd2(x)={(YMS,j−Kd2)/XMS,j}×x+Kd2 mod(2b−1)」となる多項式である。
【0060】
ステップW2−4;端末1−jは、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID(UIDj)と認証情報AUTHj’を入力する。
ステップW2−5;端末1−jは、更新対象のデータID(DIDd)、端末ID(IDj)、ユーザID(UIDj)、認証情報AUTHj’、暗号化データEKd2(MG2)、暗号鍵シェアSKd2,j及びデータラベルLd2をストレージサーバ2に送信し、データ更新を要求する。
【0061】
ステップW2−6;ストレージサーバ2は、鍵管理サーバ3から受け取ったユーザID及び認証情報に基づいて、端末1−jから受け取ったユーザID(UIDj)および認証情報AUTHj’を検証する。ストレージサーバ2は、端末1−jの使用者が正当なユーザであると確認できた場合に、更新対象のデータID(DIDd)のデータレコードを書き換える。このデータレコード書き換えでは、データラベル、暗号化データをそれぞれデータラベルLd2、暗号化データEKd2(MG2)に書き換える。さらに、端末ID(IDj)の暗号鍵シェアを暗号鍵シェアSKd2,jに書き換える。さらに、最終更新時刻を現在時刻TS,d2に書き換える。
【0062】
ステップW2−7;ストレージサーバ2は、データ更新が完了したことを伝えるために、データID(DIDd)及び最終更新時刻TS,d2を含む応答(ACK)メッセージを端末1−jに送信する。
ステップW2−8;端末1−jは、ストレージサーバ2からのACKメッセージを受信すると、暗号鍵Kd2と暗号鍵シェアSKd2,jを消去する。さらに、ローカルデータリスト中の当該共有データのエントリを、最終参照時刻(Ti,d=TS,d2)、暗号化データEKd2(MG2)及びデータラベルLd2で書き換える。
【0063】
ステップW2−9;ストレージサーバ2は、端末1−j以外の他の端末1−iに関し、更新対象のデータID(DIDd)のデータレコードに更新前の暗号鍵Kdに対応する暗号鍵シェアSKd,iがある場合、該暗号鍵シェアを更新後の暗号鍵Kd2に対応する暗号鍵シェアSKd2,iに更新する。暗号鍵シェアSKd2,iは次式により算出する。
SKd2,i=(XKd2,i,YKd2,i)
XKd2,i=XCS,i
YKd2,i=YCS,i+(Lj/Li)×(YKd2,j−YCS,j)mod(2b−1)
但し、Lr=XMS,r/(XMS,r−XCS,r)mod(2b−1)、である。
【0064】
なお、端末1−j以外の他の端末1−iの暗号鍵シェアの更新は、他の端末1−iが当該データレコードへのアクセスを要求した際に行うようにしてもよい。この場合、当該データレコードに、暗号鍵シェアの更新状況(未更新/更新済)を示す情報を含めておく。
【0065】
[環境移行段階]
次に、図12を参照して環境移行段階の処理を説明する。
図12は、本実施形態に係るデータ共有処理の環境移行段階の手順を示すシーケンスチャートである。環境移行段階は、ユーザが端末を紛失等した場合に、該端末の環境を他の端末に移行するためのものである。図12において、ユーザは、端末1−iの環境を他の端末1−i’に移行する。端末1−i’の端末IDはIDi'である。
【0066】
ステップRE1−1;ユーザは、端末1−i’を操作し、端末1−iの環境を端末1−i’に移行することを鍵管理サーバ3に通知する。なお、この環境移行通知はオフラインで行ってもよい。
ステップRE1−2;鍵管理サーバ3は、端末1−i’に対して、端末1−iが属するグループ用の共通シェア用鍵CKGを配布する。この共通シェア用鍵CKGの配布は、セキュリティの確保された通信路を介して配布してもよいし、或いは、外部デバイス5を介して配布してもよい。さらに、鍵管理サーバ3は、端末1−iが当該グループに所属のメンバの端末として失効したことをストレージサーバ2に通知する。
【0067】
ステップRE1−3;ストレージサーバ2は、端末1−iに関するデータ(暗号鍵シェア等)を全て消去する。
ステップRE1−4;端末1−i’は、マスターシェアMSi'をランダムに生成する。マスターシェアMSi'は次式により算出する。
MSi'=(XMS,i',YMS,i')
XMS,i'=h(IDi')
但し、hはハッシュ関数である。YMS,i'はランダムに生成する。ここで、XMS,i'及びYMS,i'の絶対値は、共通鍵暗号方式の鍵長b以下である。
【0068】
ステップRE1−5;端末1−i’は、共通シェア用鍵CKGとマスターシェアMSi'から、共通シェアCSi'を生成する。共通シェアCSi'は次式により算出する。
CSi'=(XCS,i',YCS,i')
XCS,i'=h(IDi'||r1)
YCS,i'=fi'(XCS,i')
但し、「IDi'||r1」はIDi'とr1の連結データである。r1は乱数である。fi'(x)は「fi'(x)={(YMS,i'−CKG)/XMS,i'}×x+CKG mod(2b−1)」となる多項式である。
【0069】
ステップRE1−6;端末1−i’は、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID(UIDi)と認証情報AUTHi’を入力する。
ステップRE1−7;端末1−i’は、端末ID(IDi')、ユーザID(UIDi)、認証情報AUTHi’及び共通シェアCSi'をストレージサーバ2に送信する。
【0070】
ステップRE1−8;ストレージサーバ2は、鍵管理サーバ3から受け取ったユーザID及び認証情報に基づいて、端末1−i’から受け取ったユーザID(UIDi)および認証情報AUTHi’を検証する。ストレージサーバ2は、端末1−i’の使用者が正当なユーザであると確認できた場合に、端末1−i’から受け取った端末ID(IDi')及び共通シェアCSi'を関連付けて記録する。
【0071】
ステップRE1−9;端末1−i’は、共通シェア用鍵CKG及び共通シェアCSi'を消去する。なお、共通シェア用鍵CKGが外部デバイス5を介して配布された場合は、外部デバイス5内の共通シェア用鍵CKGも消去する。
端末1−i’は、端末ID(IDi')とマスターシェアMSi'を保持する。
【0072】
以上が本実施形態に係るデータ共有システムの動作の説明である。
【0073】
上述した実施形態によれば、以下に示すような効果が得られる。
(1)共有データの暗号化に使用している暗号鍵は、ストレージサーバで保管される暗号鍵シェアが無いと復元できないので、盗難、紛失などにより端末がグループメンバ以外の者の手に渡ったとしても、共有データの漏洩を防ぐ効果が得られる。又、同じグループに属する複数のメンバの端末がグループメンバ以外の者の手に渡ったとしても、同様に暗号鍵の復元を行うことができないので、共有データの安全性確保に貢献することができる。又、ストレージサーバで保管される共通シェア及び暗号鍵シェアがたとえ漏洩したとしても、端末で保持される端末固有のマスターシェアが無いと暗号鍵を復元できないので、共有データの安全性確保に貢献することができる。
【0074】
(2)公開鍵暗号方式を利用せずに、(2,2)しきい値秘密分散法と共通鍵暗号方式のみで実現できるため、データ共有システム全体の処理負荷を軽減することができる。また、グループ内データ共有機能を容易に実現することが可能になる。
【0075】
なお、(k,n)しきい値秘密分散法とは、秘密分散法の一種であり、秘密情報をn個の分割情報(シェア)に分割してそれぞれ保管し、その内のk個以上の分割情報を入手することができれば、元の秘密情報を復元することができるものである。秘密分散法とは、秘密情報を数人で分散して保管することで、元の秘密情報を安全に保管する方法である。
【0076】
なお、図2、3、8、10〜12に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、データ共有処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0077】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0078】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【0079】
【図1】本発明の一実施形態に係るデータ共有システムの全体構成を示すブロック図である。
【図2】同実施形態に係るデータ共有処理のメンバ端末登録段階の手順を示すシーケンスチャートである。
【図3】同実施形態に係るデータ共有処理のデータ保存段階の手順を示すシーケンスチャートである。
【図4】図1に示す端末1の記憶部の構成例である。
【図5】図1に示すストレージサーバ2の記憶部の構成例である。
【図6】図5に示すデータレコードの構成例である。
【図7】本発明の一実施形態に係る鍵配布図である。
【図8】同実施形態に係るデータ共有処理のデータ参照段階の手順を示すシーケンスチャートである。
【図9】同実施形態に係るデータリストの構成例である。
【図10】同実施形態に係るデータ共有処理の2回目以降のデータ参照段階の手順を示すシーケンスチャートである。
【図11】同実施形態に係るデータ共有処理のデータ更新段階の手順を示すシーケンスチャートである。
【図12】同実施形態に係るデータ共有処理の環境移行段階の手順を示すシーケンスチャートである。
【符号の説明】
【0080】
1…グループメンバ端末(端末装置)、2…ストレージサーバ(データ管理装置)、3…鍵管理サーバ、4…通信ネットワーク、5…外部デバイス
【特許請求の範囲】
【請求項1】
メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムにおける前記端末装置であり、
前記グループ内で共通の共通シェア用鍵と自端末固有のマスターシェアとから共通シェアを生成し、該共通シェア及び自己の端末識別子を前記データ管理装置に送り登録要求する端末登録手段と、
暗号鍵を用いて共通鍵暗号方式により共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り保存要求するデータ保存手段と、
前記データ管理装置から暗号化データ及び自己用の暗号鍵シェアを取得し、該暗号鍵シェア及び前記マスターシェアを用いて暗号鍵を復元し、該暗号鍵を用いて前記データ管理装置から取得した暗号化データを復号するデータ参照手段と、
を備えたことを特徴とする端末装置。
【請求項2】
メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムにおける前記データ管理装置であり、
端末装置から登録要求された共通シェア及び端末識別子を関連付けて記録する端末登録手段と、
端末装置から保存要求された暗号化データ、暗号鍵シェア及び端末識別子に関し、暗号化データに対して暗号鍵シェアと端末識別子の組を関連付けて記録するデータ保存手段と、
前記端末装置から参照要求された前記データ保存手段に格納される暗号化データと、該要求元の端末装置用の暗号鍵シェアとを該要求元の端末装置に送るデータ参照手段と、
を備えたことを特徴とするデータ管理装置。
【請求項3】
前記データ参照手段は、データ参照要求元の端末装置用の暗号鍵シェアが参照対象の暗号化データに関連付けて記録されていない場合、参照対象の暗号化データに関連付けて記録されている任意の端末装置用の暗号鍵シェア及び該端末装置の共通シェア、並びにデータ参照要求元の端末装置の共通シェアから、データ参照要求元の端末装置用の暗号鍵シェアを生成し、該データ参照要求元の端末装置用の暗号鍵シェアを参照対象の暗号化データに関連付けて記録することを特徴とする請求項2に記載のデータ管理装置。
【請求項4】
暗号鍵を用いて共通鍵暗号方式により更新対象の共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り更新要求するデータ更新手段を備えたことを特徴とする請求項1に記載の端末装置。
【請求項5】
前記端末装置から受け取った更新対象の暗号化データ、暗号鍵シェア及び端末識別子によって更新対象の保存データを書き換えるデータ更新手段を備えたことを特徴とする請求項2又は請求項3に記載のデータ管理装置。
【請求項6】
前記データ更新手段は、更新対象の暗号化データに関連付けて記録されている未更新の暗号鍵シェアを、更新後の暗号鍵に対応する暗号鍵シェアに更新することを特徴とする請求項5に記載のデータ管理装置。
【請求項7】
前記データ更新手段は、前記暗号鍵シェアの更新をまとめて行うことを特徴とする請求項6に記載のデータ管理装置。
【請求項8】
前記データ更新手段は、前記暗号鍵シェアの更新を、端末装置毎にデータ参照時に行うことを特徴とする請求項6に記載のデータ管理装置。
【請求項9】
前記グループに属するメンバの端末装置として失効した端末装置に関するデータを全て消去する環境移行手段を備えたことを特徴とする請求項2、3、5、6、7、8のいずれか1項に記載のデータ管理装置。
【請求項10】
メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムの前記端末装置におけるデータ共有処理を行うためのコンピュータプログラムであって、
前記グループ内で共通の共通シェア用鍵と自端末固有のマスターシェアとから共通シェアを生成し、該共通シェア及び自己の端末識別子を前記データ管理装置に送り登録要求する端末登録機能と、
暗号鍵を用いて共通鍵暗号方式により共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り保存要求するデータ保存機能と、
前記データ管理装置から暗号化データ及び自己用の暗号鍵シェアを取得し、該暗号鍵シェア及び前記マスターシェアを用いて暗号鍵を復元し、該暗号鍵を用いて前記データ管理装置から取得した暗号化データを復号するデータ参照機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項11】
メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムの前記データ管理装置におけるデータ共有処理を行うためのコンピュータプログラムであって、
端末装置から登録要求された共通シェア及び端末識別子を関連付けて記録する端末登録機能と、
端末装置から保存要求された暗号化データ、暗号鍵シェア及び端末識別子に関し、暗号化データに対して暗号鍵シェアと端末識別子の組を関連付けて記録するデータ保存機能と、
前記端末装置から参照要求された前記データ保存手段に格納される暗号化データと、該要求元の端末装置用の暗号鍵シェアとを該要求元の端末装置に送るデータ参照機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項1】
メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムにおける前記端末装置であり、
前記グループ内で共通の共通シェア用鍵と自端末固有のマスターシェアとから共通シェアを生成し、該共通シェア及び自己の端末識別子を前記データ管理装置に送り登録要求する端末登録手段と、
暗号鍵を用いて共通鍵暗号方式により共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り保存要求するデータ保存手段と、
前記データ管理装置から暗号化データ及び自己用の暗号鍵シェアを取得し、該暗号鍵シェア及び前記マスターシェアを用いて暗号鍵を復元し、該暗号鍵を用いて前記データ管理装置から取得した暗号化データを復号するデータ参照手段と、
を備えたことを特徴とする端末装置。
【請求項2】
メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムにおける前記データ管理装置であり、
端末装置から登録要求された共通シェア及び端末識別子を関連付けて記録する端末登録手段と、
端末装置から保存要求された暗号化データ、暗号鍵シェア及び端末識別子に関し、暗号化データに対して暗号鍵シェアと端末識別子の組を関連付けて記録するデータ保存手段と、
前記端末装置から参照要求された前記データ保存手段に格納される暗号化データと、該要求元の端末装置用の暗号鍵シェアとを該要求元の端末装置に送るデータ参照手段と、
を備えたことを特徴とするデータ管理装置。
【請求項3】
前記データ参照手段は、データ参照要求元の端末装置用の暗号鍵シェアが参照対象の暗号化データに関連付けて記録されていない場合、参照対象の暗号化データに関連付けて記録されている任意の端末装置用の暗号鍵シェア及び該端末装置の共通シェア、並びにデータ参照要求元の端末装置の共通シェアから、データ参照要求元の端末装置用の暗号鍵シェアを生成し、該データ参照要求元の端末装置用の暗号鍵シェアを参照対象の暗号化データに関連付けて記録することを特徴とする請求項2に記載のデータ管理装置。
【請求項4】
暗号鍵を用いて共通鍵暗号方式により更新対象の共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り更新要求するデータ更新手段を備えたことを特徴とする請求項1に記載の端末装置。
【請求項5】
前記端末装置から受け取った更新対象の暗号化データ、暗号鍵シェア及び端末識別子によって更新対象の保存データを書き換えるデータ更新手段を備えたことを特徴とする請求項2又は請求項3に記載のデータ管理装置。
【請求項6】
前記データ更新手段は、更新対象の暗号化データに関連付けて記録されている未更新の暗号鍵シェアを、更新後の暗号鍵に対応する暗号鍵シェアに更新することを特徴とする請求項5に記載のデータ管理装置。
【請求項7】
前記データ更新手段は、前記暗号鍵シェアの更新をまとめて行うことを特徴とする請求項6に記載のデータ管理装置。
【請求項8】
前記データ更新手段は、前記暗号鍵シェアの更新を、端末装置毎にデータ参照時に行うことを特徴とする請求項6に記載のデータ管理装置。
【請求項9】
前記グループに属するメンバの端末装置として失効した端末装置に関するデータを全て消去する環境移行手段を備えたことを特徴とする請求項2、3、5、6、7、8のいずれか1項に記載のデータ管理装置。
【請求項10】
メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムの前記端末装置におけるデータ共有処理を行うためのコンピュータプログラムであって、
前記グループ内で共通の共通シェア用鍵と自端末固有のマスターシェアとから共通シェアを生成し、該共通シェア及び自己の端末識別子を前記データ管理装置に送り登録要求する端末登録機能と、
暗号鍵を用いて共通鍵暗号方式により共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り保存要求するデータ保存機能と、
前記データ管理装置から暗号化データ及び自己用の暗号鍵シェアを取得し、該暗号鍵シェア及び前記マスターシェアを用いて暗号鍵を復元し、該暗号鍵を用いて前記データ管理装置から取得した暗号化データを復号するデータ参照機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項11】
メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムの前記データ管理装置におけるデータ共有処理を行うためのコンピュータプログラムであって、
端末装置から登録要求された共通シェア及び端末識別子を関連付けて記録する端末登録機能と、
端末装置から保存要求された暗号化データ、暗号鍵シェア及び端末識別子に関し、暗号化データに対して暗号鍵シェアと端末識別子の組を関連付けて記録するデータ保存機能と、
前記端末装置から参照要求された前記データ保存手段に格納される暗号化データと、該要求元の端末装置用の暗号鍵シェアとを該要求元の端末装置に送るデータ参照機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2009−163415(P2009−163415A)
【公開日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願番号】特願2007−341082(P2007−341082)
【出願日】平成19年12月28日(2007.12.28)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
【公開日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願日】平成19年12月28日(2007.12.28)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
[ Back to top ]