JP5366755B2 - データ編集システム、書込み装置、読取装置及びデータ編集方法 - Google Patents

データ編集システム、書込み装置、読取装置及びデータ編集方法 Download PDF

Info

Publication number
JP5366755B2
JP5366755B2 JP2009238962A JP2009238962A JP5366755B2 JP 5366755 B2 JP5366755 B2 JP 5366755B2 JP 2009238962 A JP2009238962 A JP 2009238962A JP 2009238962 A JP2009238962 A JP 2009238962A JP 5366755 B2 JP5366755 B2 JP 5366755B2
Authority
JP
Japan
Prior art keywords
data
writer
unit
encrypted
reader
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009238962A
Other languages
English (en)
Other versions
JP2011087150A (ja
Inventor
哲 小田
玄武 諸橋
麗生 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2009238962A priority Critical patent/JP5366755B2/ja
Publication of JP2011087150A publication Critical patent/JP2011087150A/ja
Application granted granted Critical
Publication of JP5366755B2 publication Critical patent/JP5366755B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、複数者によるデータ編集が可能なデータ編集技術に関し、特に、編集されたデータに対してアクセス制限を課すことが可能な技術に関する。
ネットワークにサーバ装置と複数の端末装置とが接続され、複数の書込み者がそれぞれの端末装置を用いて当該サーバ装置にアクセスし、当該サーバ装置に格納されたデータの編集を共同で行うデータ編集技術が存在する。このようなデータ編集技術は広範囲な分野に適用可能である。しかしながら、何のアクセス制限も課されず、誰に対してもオープンな状態でサーバ装置にデータが格納される方式では、特定のグループに対してのみ開示すべき秘匿データの編集に適用することはできない。
これに対し、例えば、"Active Directory"や"Samba"のように、サーバ装置がデータの読み書きが許可された利用者(書込み者や読取者)のリスト(ACL:アクセスコントロールリスト)を管理し、利用者がサーバ装置に対してデータの読み書きのアクションを起こす前に利用者認証を実施することで、データの読み書きを制限する方法が存在する(例えば、非特許文献1,2参照)。
"Active Directory 技術情報"、[online]、平成14年9月26日、Microsoft Corporation、[平成21年10月6日検索]、インターネット<http://www.microsoft.com/japan/windowsserver2003/techinfo/overview/activedirectory.mspx> "Windows Server 2003を超える Samba新版で作る 最強ファイル・サーバー Part1(3)"、[online]、平成15年12月11日、Nikkei Business Publications, Inc、[平成21年10月6日]、インターネット<http://itpro.nikkeibp.co.jp/members/LIN/oss/20031208/1/>
しかしながら、"Active Directory"や"Samba"のような従来の方式は、編集対象となるデータ自体がアクセス制御の機能を具備しているのではなく、編集対象となるデータが格納されるサーバ装置に利用者認証機能を持たせることでアクセス制御を実現する。そのため、このような従来方式では、利用者認証機能を持ったサーバ装置にデータが格納されている場合にしか当該データに対するアクセス制御を行うことができない。また、たとえ編集対象となるデータが格納されたサーバ装置に利用者認証の機能を持たせていたとしても、編集前後のデータを他の装置に移動させてしまうと、もはやデータの秘匿性は維持できない。さらに、サーバ装置に利用者認証の機能を持たせていたとしても、そのサーバの管理者に対してはデータを秘匿できない。また、複数の書込み者によって編集されたデータを各読取者にそれぞれ開示する範囲は、そのデータを生成・編集した書込み者が合意した範囲とすべきである。しかしながら、サーバ装置に利用者認証機能を持たせることでアクセス制御を実現する従来の方式では、このようなアクセス制御を行うことができない。
なお、このような問題は、サーバ装置に格納されたデータがネットワーク経由で複数の端末装置によって編集される場合に限定されたものではなく、例えば、USBメモリなどの可搬型記録媒体に格納されたデータを複数の端末装置を用いて編集する場合などにも共通するものである。すなわち、上記の問題は、ストレージ装置に格納された編集対象のデータが複数の利用者によって編集される環境に共通するものである。
本発明はこのような点に鑑みてなされたものであり、ストレージ装置に格納されたデータが複数の利用者によって編集される場合において、データに対するアクセス制御の機能をデータ自体に持たせ、データの開示範囲を各書込み者が合意した範囲とすることが可能な技術を提供することを目的とする。
本発明では、データを新規作成する書込み者W(1)が利用する書込み装置WA(1)の第1差分データ記憶部に、書込み者W(1)が生成した新規作成データである差分データD(1)を格納し、書込み装置WA(1)の第1オブジェクトデータ暗号化部が、差分データD(1)を含むオブジェクトデータOB(1)を、設定された1以上の読取者R(ac(1))(ac(1)∈{1,...,M}, M≧2)の各第1復号鍵DKO(ac(1))で復号可能なように暗号化し、暗号化オブジェクトデータCO(1)を生成し、書込み装置WA(1)の第1出力部が、暗号化オブジェクトデータCO(1)を含む処理済みデータPD(1)をストレージ装置に出力する。また、データ編集を行う各書込み者W(j)(j∈{2,...,N}, N≧2)がそれぞれ利用する書込み装置WA(j)の履歴データ記憶部に、書込み者W(j-1)が利用する書込み装置WA(j-1)から出力された処理済みデータPD(j-1)から一意に定まる履歴データH(j-1)を格納し、書込み装置WA(j)の第2差分データ記憶部に、書込み者W(j)が生成した新たな差分データD(j)を格納し、書込み装置WA(j)の第2オブジェクトデータ暗号化部が、履歴データH(j-1)及び差分データD(j)を含むオブジェクトデータOB(j)を、設定された1以上の読取者R(ac(j))(ac(j)∈{1,...,M})の各第1復号鍵DKO(ac(j))で復号可能なように暗号化し、暗号化オブジェクトデータCO(j)を生成し、書込み装置WA(j)の第2出力部が、暗号化オブジェクトデータCO(j)を含む処理済みデータPD(j)をストレージ装置に出力する。ストレージ装置は、書込み装置WA(n)(n∈{1,...,N})から出力された各処理済みデータPD(n)を格納する。
読取者R(m)(m∈{1,...,M}が利用する読取装置RA(m)の入力部には各処理済みデータPD(n)が入力され、読取装置RA(m)のオブジェクトデータ復号部が、読取者R(m)の第1復号鍵DKO(m)を用い、入力された処理済みデータPD(n)が含む暗号化オブジェクトデータCO(n)を復号する。オブジェクトデータ復号部で、履歴データH(j-1)及び差分データD(j)を含むオブジェクトデータOB(j)が得られた場合、読取装置RA(m)の履歴データ検証部が、得られた履歴データH(j-1)が、入力部に入力された処理済みデータPD(j-1)から一意に定まるものであるか否かを判定する。読取データ生成部は、オブジェクトデータ復号部で得られたオブジェクトデータOB(1)が含む差分データD(1)と、履歴データ検証部で処理済みデータPD(j-1)から一意に定まるものであると判定された履歴データH(j-1)を含むオブジェクトデータOB(j)が含む差分データD(j)と、からなる集合に属する要素(差分データ)の少なくとも一部を用いて読取データを生成して出力する。
ここで、読取装置RA(m)の読取データ生成部で生成される読取データは、履歴データ検証部から出力された差分データD(n)を用いて生成されるが、各差分データD(n)を得ることができるのは、各書込み者W(n)が設定した読取者の第1復号鍵を持つ読取装置RA(m)だけである。これにより、編集対象となるデータ自体にアクセス制御の機能を持たせることができる。また、このアクセス制御は、各書込み者W(n)がそれぞれ生成した各差分データD(n)単位で行われるため、各読取者に開示されるデータの範囲は書込み者が合意した範囲となる。
以上のように、本発明では、ストレージ装置に格納されたデータが複数の利用者によって編集される場合において、データに対するアクセス制御の機能をデータ自体に持たせ、データの開示範囲を各書込み者が合意した範囲とすることができる。
図1は、第1実施形態のデータ編集システムの全体構成を説明するための図である。 図2は、データを新規作成する書込み者W(1)が利用する書込み装置の機能構成を説明するためのブロック図である。 図3は、データ編集を行う書込み者W(j)が利用する書込み装置の機能構成を説明するためのブロック図である。 図4は、データの読取者R(m)が利用する読取装置の機能構成を説明するためのブロック図である。 図5(a)は、編集対象のデータが格納されるストレージ装置の機能構成を説明するためのブロック図である。図5(b)は、鍵を管理する鍵管理装置の機能構成を説明するためのブロック図である。 図6は、第1実施形態の処理を説明するための図である。 図7は、第1実施形態の処理を説明するための図である。 図8は、第1実施形態の書込み装置で実行される新規作成処理を説明するためのフローチャートである。 図9は、第1実施形態の書込み装置で実行されるデータ編集処理を説明するためのフローチャートである。 図10は、第1実施形態の読取装置で実行される読取処理を説明するためのフローチャートである。 図11は、第1実施形態の読取装置で実行される読取処理を説明するためのフローチャートである。 図12(a)−(c)は、第1実施形態の適用事例を説明するための図である。
以下、図面を参照して本発明の実施形態を説明する。
〔第1実施形態〕
まず、第1実施形態のデータ編集システムの構成を説明する。
<構成>
図1は、第1実施形態のデータ編集システム1の全体構成を説明するための図である。
図1に例示するように、本形態のデータ編集システム1は、ストレージ装置11と、各書込み者W(n)(n∈{1,...,N}, N≧2)がそれぞれ利用する書込み装置12−n(書込み装置WA(n))と、各読取者R(m)(m∈{1,...,M}, M≧2)がそれぞれ利用する読取装置13−m(読取装置RA(m))と、鍵を管理する鍵管理装置14とを有し、これらはネットワーク15を通じて通信可能に構成されている。なお、本形態では、データ編集システム1が1つずつのストレージ装置11及び鍵管理装置14を持つ構成を例示するが、データ編集システム1が2つ以上のストレージ装置11や鍵管理装置14を持っていてもよい。また、本形態では、各書込み者W(n)がそれぞれ別個の書込み装置12−nを利用し、各読取者R(m)がそれぞれ別個の読取装置13−mを利用する構成を例示するが、複数の書込み者W(n)が1つの書込み装置を共有してもよく、複数の読取者R(m)が1つの読取装置を共有してもよい。また、書込み装置12−nの少なくとも一部と読取装置13−mの少なくとも一部とが1つの筐体内に納められていてもよい。また、各書込み者W(n)は、それぞれ、別の者であってもよいし、少なくとも一部の書込み者W(n)が同一の者であってもよい。同様に、各読取者R(m)は、それぞれ、別の者であってもよいし、少なくとも一部の読取者R(m)が同一の者であってもよい。さらに、書込み者W(n)と読取者R(m)とは別の者であってもよいし、書込み者W(n)の少なくとも一部と読取者R(m)の少なくとも一部とが同一の者であってもよい。
[書込み装置12−1(書込み装置WA(1))]
図2は、データを新規作成する書込み者W(1)が利用する書込み装置12−1の機能構成を説明するためのブロック図である。
図2に例示するように、本形態の書込み装置12−1は、入力部121a−1と、鍵通信部121b−1と、出力部121c−1と、記憶部122−1と、制御部123−1と、鍵取得処理部124a−1と、オブジェクトデータ生成部124b−1と、オブジェクトデータ暗号化部124c−1と、電子署名部124d−1と、書込み者データ暗号化部124e−1と、合成部124f−1とを有する。
書込み装置12−1は、例えば、CPU(central processing unit)、RAM(random-access memory)、ROM(read-only memory)、通信装置等を具備する公知のコンピュータに所定のプログラムが読み込まれて実行されることで構成される。具体的には、入力部121a−1は、例えば、キーボードやマウスなどの入力インタフェース、入力ポート又は通信装置などである。また、鍵通信部121b−1及び出力部121c−1は、例えば、所定のプログラムを実行するCPUの制御のもとで駆動する通信装置である。記憶部122−1は、例えば、ハードディスク等の補助記憶装置、RAM、キャッシュメモリ或いはレジスタ、又は、それらの結合からなる記憶領域である。また、制御部123−1、鍵取得処理部124a−1、オブジェクトデータ生成部124b−1、オブジェクトデータ暗号化部124c−1、電子署名部124d−1、書込み者データ暗号化部124e−1及び合成部124f−1は、例えば、CPUに所定のプログラムが読み込まれて構築される処理部である。また、書込み装置12−1は、制御部123−1の制御のもと各処理を実行する。また、各処理部から出力されたデータは逐一記憶部122−1に格納され、必要に応じて別の処理の際に読み出されて利用される。
[書込み装置12−j(書込み装置WA(j)(j∈{2,...,N}))]
図3は、データ編集を行う書込み者W(j)が利用する書込み装置12−jの機能構成を説明するためのブロック図である。
図3に例示するように、本形態の書込み装置12−jは、入力部121a−j,121g−jと、鍵通信部121b−jと、出力部121c−jと、記憶部122−jと、制御部123−jと、鍵取得処理部124a−jと、オブジェクトデータ生成部124b−jと、オブジェクトデータ暗号化部124c−jと、電子署名部124d−jと、書込み者データ暗号化部124e−jと、合成部124f−jと、履歴データ生成部124g−jを有する。
書込み装置12−jは、例えば、公知のコンピュータに所定のプログラムが読み込まれて実行されることで構成される。具体的には、入力部121a−jは、例えば、キーボードやマウスなどの入力インタフェース、入力ポート又は通信装置などである。また、入力部121g−j、鍵通信部121b−1及び出力部121c−jは、例えば、所定のプログラムを実行するCPUの制御のもとで駆動する通信装置である。記憶部122−jは、例えば、ハードディスク等の補助記憶装置、RAM、キャッシュメモリ或いはレジスタ、又は、それらの結合からなる記憶領域である。また、制御部123−j、鍵取得処理部124a−j、オブジェクトデータ生成部124b−j、オブジェクトデータ暗号化部124c−j、電子署名部124d−j、書込み者データ暗号化部124e−j、合成部124f−j及び履歴データ生成部124g−jは、例えば、CPUに所定のプログラムが読み込まれて構築される処理部である。また、書込み装置12−jは、制御部123−jの制御のもと各処理を実行する。また、各処理部から出力されたデータは逐一記憶部122−jに格納され、必要に応じて別の処理の際に読み出されて利用される。
[読取装置13−m(読取装置RA(m))]
図4は、データの読取者R(m)が利用する読取装置13−mの機能構成を説明するためのブロック図である。
図4に例示するように、本形態の読取装置13−mは、入力部131a−m,131c−mと、鍵通信部131b−mと、記憶部132−mと、制御部133−mと、鍵取得処理部134a−mと、書込み者データ復号部134b−mと、署名検証部134c−mと、書込み者検証部134d−mと、オブジェクトデータ復号部134e−mと、履歴データ検証部134f−mと、読取データ生成部134g−mとを有する。
読取装置13−mは、例えば、公知のコンピュータに所定のプログラムが読み込まれて実行されることで構成される。具体的には、入力部131a−m及び鍵通信部131b−mは、例えば、所定のプログラムを実行するCPUの制御のもとで駆動する通信装置である。入力部131c−mは、例えば、キーボードやマウスなどの入力インタフェース、入力ポート又は通信装置などである。記憶部132−mは、例えば、ハードディスク等の補助記憶装置、RAM、キャッシュメモリ或いはレジスタ、又は、それらの結合からなる記憶領域である。また、制御部133−m、鍵取得処理部134a−m、書込み者データ復号部134b−m、署名検証部134c−m、書込み者検証部134d−m、オブジェクトデータ復号部134e−m、履歴データ検証部134f−m及び読取データ生成部134g−mは、例えば、CPUに所定のプログラムが読み込まれて構築される処理部である。また、読取装置13−mは、制御部133−mの制御のもと各処理を実行する。また、各処理部から出力されたデータは逐一記憶部132−mに格納され、必要に応じて別の処理の際に読み出されて利用される。
[ストレージ装置11]
図5(a)は、編集対象のデータが格納されるストレージ装置11の機能構成を説明するためのブロック図である。
図5(a)に例示するように、本形態のストレージ装置11は、入力部111と、出力部112と、記憶部113とを有する。ストレージ装置11は、例えば、公知のコンピュータに所定のプログラムが読み込まれて実行されることで構成される。具体的には、入力部111及び出力部112は、例えば、所定のプログラムを実行するCPUの制御のもとで駆動する通信装置である。また、記憶部113は、例えば、ハードディスク等の補助記憶装置、RAM、キャッシュメモリ或いはレジスタ、又は、それらの結合からなる記憶領域である。
[鍵管理装置14]
図5(b)は、鍵を管理する鍵管理装置14の機能構成を説明するためのブロック図である。
図5(b)に例示するように、本形態の鍵管理装置14は、入力部141と、出力部142と、抽出部143と、記憶部144とを有する。鍵管理装置14は、例えば、公知のコンピュータに所定のプログラムが読み込まれて実行されることで構成される。具体的には、入力部141及び出力部142は、例えば、所定のプログラムを実行するCPUの制御のもとで駆動する通信装置である。また、記憶部143は、例えば、ハードディスク等の補助記憶装置、RAM、キャッシュメモリ或いはレジスタ、又は、それらの結合からなる記憶領域である。また、抽出部143は、CPUに所定のプログラムが読み込まれて構築される処理部である。
<処理>
次に、本形態の処理を説明する。
図6及び図7は、本形態の処理を説明するための図である。ここで、図7はN=3の場合の処理を例示している。また、図8は、書込み装置12−1で実行される新規作成処理を説明するためのフローチャートであり、図9は、書込み装置12−j(j∈{2,...,N})で実行されるデータ編集処理を説明するためのフローチャートである。また、図10及び図11は、読取装置13−mで実行される読取処理を説明するためのフローチャートである。以下、これらの図を参照しつつ、本形態の処理を説明する。
[事前処理]
事前処理として、各書込み者W(n)には、それぞれを特定するための書込み者データWID(n)が設定され、各読取者R(m)には、それぞれを特定するための読取者データRID(m)が設定されている。設定された書込み者データWID(n)は、それぞれに対応する書込み者W(n)が使用する書込み装置12−nの記憶部122−nに格納される。また、書込み装置12−nの記憶部122−nには、それぞれ、書込み者W(n)の電子署名を作成するための鍵SK(n)が格納され(図2,図3)、鍵管理装置14の記憶部144には、書込み者W(n)の書込み者データWID(n)と、当該書込み者W(n)が作成した電子署名を検証するための鍵PK(n)とが、書込み者W(n)毎に対応付けられて格納される(図5(b))。なお、鍵SK(n)及びPK(n)の一例は、RSA等の公開鍵暗号方式の秘密鍵及び公開鍵からなる鍵ペアである。
また、鍵管理装置14の記憶部144には、さらに、読取者R(m)に対して設定された読取者データRID(m)と、暗号化鍵EKW(m)と、暗号化鍵EKO(m)とが、読取者データRID(m)毎に対応付けられて格納される(図5(b))。また、暗号化鍵EKW(m)で暗号化された暗号文を復号するための復号鍵DKW(m)(第2復号鍵)と、暗号化鍵EKO(m)で暗号化された暗号文を復号するための復号鍵DKO(m)(第1復号鍵)とが、読取装置13−mの記憶部132−m(鍵記憶部)に格納される。なお、暗号化鍵EKW(m)及び復号鍵DKW(m)の一例は、RSA等の公開鍵暗号方式の公開鍵及び秘密鍵からなる鍵ペアである。同様に、暗号化鍵EKO(m)及び復号鍵DKO(m)の一例は、RSA等の公開鍵暗号方式の公開鍵及び秘密鍵からなる鍵ペアである。
また、各書込み者W(n)は、自らの「アクセスポリシーACP(n)」と「プライバシーポリシーPRP(n)」を定め、各読取者R(m)は、自らの「受け入れポリシーPEP(m)」を定める。
アクセスポリシーACP(n)とは、書込み者W(n)が作成した差分データD(n)を開示する読取者R(ac(n))(ac(n)∈{1,...,M})の範囲を特定するデータである。本形態では、差分データD(n)を開示する1以上の読取者R(ac(n))の各読取者データRID(ac(n))からなるリストをアクセスポリシーACP(n)とする。例えば、書込み者W(1)が読取者R(1), R(2), R(5), R(7), R(10)に差分データD(1)を開示する場合、書込み者W(1)のアクセスポリシーACP(1)は、読取者データRID(1), RID(2), RID(5), RID(10)からなるリストである。
プライバシーポリシーPRP(n)とは、差分データD(n)を作成した書込み者W(n)を開示する読取者R(pr(n))(pr(n)∈{1,...,M})の範囲を特定するデータである。本形態では、差分データD(n)を作成した書込み者W(n)を開示する1以上の読取者R(pr(n))の各読取者データRID(pr(n))からなるリストをプライバシーポリシーPRP(n)とする。例えば、書込み者W(2)が読取者R(2), R(5), R(7)に差分データD(2)の作成者が自らであることを開示する場合、書込み者W(2)のプライバシーポリシーPRP(2)は、読取者データRID(2), RID(5), RID(7)からなるリストである。
受け入れポリシーPEP(m)とは、読取者R(m)が受け入れを許可する書込み者W(pe(m))(pe(m)∈{1,...,N})の範囲を特定するデータであり、言い換えると、読取者R(m)がどの書込み者W(pe(m))が作成したデータを受け入れるかを示すデータである。本形態では、読取者R(m)が受け入れを許可する1以上の書込み者W(pe(m))の各書込み者データWID(pe(m))からなるリストを受け入れポリシーPEP(m)とする。例えば、読取者R(3)が書込み者W(1),W(3),W(7)の作成したデータを受け入れるのであれば、読取者R(3)の受け入れポリシーPEP(m)は、書込み者データWID(1),WID(3),WID(7)からなるリストである。
[新規作成処理]
次に、データを新規作成する新規作成処理を説明する。
図6−8に例示するように、まず、データを新規作成する書込み者W(1)が利用する書込み装置12−1の入力部121a−1(図2)に、書込み者W(1)が生成した新規作成データである差分データD(1)が入力され、記憶部122−1(第1差分データ記憶部)に格納される(ステップS11)。
また、書込み装置12−1の入力部121a−1には、書込み者W(1)のアクセスポリシーACP(1)が入力され、記憶部122−1に格納される(ステップS12)。さらに、書込み装置12−1の入力部121a−1には、書込み者W(1)のプライバシーポリシーPRP(1)が入力され、記憶部122−1に格納される(ステップS13)。
次に、書込み装置12−1のオブジェクトデータ生成部124b−1が記憶部122−1から差分データD(1)を読み込み、これを含むオブジェクトデータOB(1)を生成し、記憶部122−1に格納する(ステップS15)。本形態の例では、オブジェクトデータ生成部124b−1は、所定の固定データH(0)及び差分データD(1)を含むオブジェクトデータOB(1)を生成する。なお、所定の固定データH(0)は、例えば、差分データD(1)が新規作成されたデータであることを示すデータであり、本形態では固定データH(0)=NULLとする。
次に、書込み装置12−1の鍵取得処理部124a−1は、記憶部122−1からアクセスポリシーACP(1)を読み込み、アクセスポリシーACP(1)が含む1以上の読取者データRID(ac(1))(ac(1)∈{1,...,M})からなるリストを含む鍵取得要求データを作成する。作成された鍵取得要求データは、鍵通信部121b−1に送られ、そこからネットワーク15経由で鍵管理装置14に送信される。鍵取得要求データは、鍵管理装置14(図5(b))の入力部141に入力され、抽出部143に送られる。抽出部143は、鍵取得要求データが含む各読取者データRID(ac(1))に対応付けられた暗号化鍵EKO(ac(1))を記憶部144から抽出する。抽出された暗号化鍵EKO(ac(1))は、出力部142からネットワーク経由で書込み装置12−1に送信される。送信された暗号化鍵EKO(ac(1))は、書込み装置12−1(図2)の鍵通信部121b−1で受信され、鍵取得処理部124a−1に送られる。鍵取得処理部124a−1は、アクセスポリシーACP(1)が含む各読取者データRID(ac(1))にそれぞれ対応する各暗号化鍵EKO(ac(1))をオブジェクトデータ暗号化部124c−1に送る。オブジェクトデータ暗号化部124c−1(第1オブジェクトデータ暗号化部)は、記憶部122−1からオブジェクトデータOB(1)を読み出し、各暗号化鍵EKO(ac(1))を用い、オブジェクトデータOB(1)を、設定された1以上の読取者R(ac(1))(ac(1)∈{1,...,M})の各復号鍵DKO(ac(1))で復号可能なように暗号化して暗号化オブジェクトデータCO(1)を生成し、記憶部122−1に格納する(ステップS16)。例えば、KEM方式で暗号化される場合、オブジェクトデータ暗号化部124c−1は、例えば、AESやcamellia等の共通鍵暗号方式の共通鍵CMK(1)を用いてオブジェクトデータOB(1)を暗号化して第1暗号文を作成し、各暗号化鍵EKO(ac(1))をそれぞれ用いて共通鍵CMK(1)を暗号化した1以上の第2暗号文を作成し、第1暗号文と第2暗号文とのセットを暗号化オブジェクトデータCO(1)とする。なお、図7では、暗号化オブジェクトデータCO(1)のうち、差分データD(1)に対応する暗号文をCD(1)と表記し、固定データH(0)=NULLに対応する暗号文をCH(0)と表記している。
次に、電子署名部124d−1(第1電子署名部)が、記憶部122−1から鍵SK(1)とオブジェクトデータOB(1)とを読み出し、鍵SK(1)を用い、暗号化オブジェクトデータCO(1)に対する、書込み者W(1)の電子署名SIG(1)を生成し、記憶部122−1に格納する(ステップS17)。なお、電子署名SIG(1)の一例は、RSA署名などである。例えば、暗号化オブジェクトデータCO(1)のハッシュ値を鍵SK(1)を用いてRSA方式で暗号化したものを電子署名SIG(1)とする。また、電子署名SIG(1)は、差分データD(1)に対応する暗号文CD(1)及び固定データH(0)=NULLに対応する暗号文CH(0)の両方に対する電子署名となっている(図7)。
次に、書込み装置12−1の鍵取得処理部124a−1は、記憶部122−1からプライバシーポリシーPRP(1)を読み込み、プライバシーポリシーPRP(1)が含む1以上の読取者データRID(pr(1))(pr(1)∈{1,...,M})からなるリストを含む鍵取得要求データを作成する。作成された鍵取得要求データは、鍵通信部121b−1に送られ、そこからネットワーク15経由で鍵管理装置14に送信される。鍵取得要求データは、鍵管理装置14(図5(b))の入力部141に入力され、抽出部143に送られる。抽出部143は、鍵取得要求データが含む各読取者データRID(pr(1))に対応付けられた暗号化鍵EKW(pr(1))を記憶部144から抽出する。抽出された暗号化鍵EKW(pr(1))は、出力部142からネットワーク経由で書込み装置12−1に送信される。送信された暗号化鍵EKW(pr(1))は、書込み装置12−1(図2)の鍵通信部121b−1で受信され、鍵取得処理部124a−1に送られる。鍵取得処理部124a−1は、プライバシーポリシーPRP(1)が含む各読取者データRID(pr(1))にそれぞれ対応する各暗号化鍵EKW(pr(1))を書込み者データ暗号化部124e−1に送る。書込み者データ暗号化部124e−1(第1書込み者データ暗号化部)は、記憶部122−1から書込み者データWID(1)を読み出し、各暗号化鍵EKW(pr(1))を用い、書込み者データWID(1)を、設定された1以上の読取者R(pr(1))(pr(1)∈{1,...,M})の各復号鍵DKW(pr(1))で復号可能なように暗号化し、暗号化書込み者データCW(1)を生成し、記憶部122−1に格納する(ステップS18)。例えば、KEM方式で暗号化される場合、書込み者データ暗号化部124e−1は、例えば、AESやcamellia等の共通鍵暗号方式の共通鍵CMK2(1)を用いて書込み者データWID(1)を暗号化して第3暗号文を作成し、各暗号化鍵EKO(pr(1))をそれぞれ用いて共通鍵CMK2(1)を暗号化した1以上の第4暗号文を作成し、第3暗号文と第4暗号文とのセットを暗号化書込み者データCW(1)とする。
ステップS16−S18で生成された、暗号化オブジェクトデータCO(1)、電子署名SIG(1)及び暗号化書込み者データCW(1)は合成部124f−1に送られ、合成部124f−1は、これらを含む処理済みデータPD(1)を合成する。処理済みデータPD(1)は出力部121c−1(第1出力部)に送られ、そこからネットワーク15経由でストレージ装置11(図5(a))に送信され(ステップS19)、ストレージ装置11の入力部111に受信されて記憶部113に格納される。
[データ編集処理]
次に、データを編集するデータ編集処理を説明する。
図6に例示するように、書込み者W(1)が新規作成したデータである差分データD(1)は、各書込み者W(j)(j∈{2,...,N})によって順次編集される。具体的には、例えば、書込み者W(2)は、書込み者W(1)によって生成された差分データD(1)に対する変更部分を差分データD(2)として生成し、書込み者W(3)は、差分データD(1)に対して差分データD(2)を反映させた編集データに対する変更部分を差分データD(3)として生成し、書込み者W(4)は、差分データD(1)に対して差分データD(2),D(3)を反映させた編集データに対する変更部分を差分データD(4)として生成する。すなわち、各書込み者W(j)(j∈{2,...,N})は、差分データD(1)に対して編集がなされていない場合には差分データD(1)に対する変更部分を差分データD(j)として生成し、差分データD(1)に対して編集がなされている場合には、差分データD(1)に対して差分データD(2),...,D(j-1)を反映させた編集データに対する変更部分を差分データD(j)として生成する。そして、書込み者W(j)が利用する書込み装置12−jは、書込み者W(j)が作成した差分データD(j)と、書込み装置12−(j−1)が生成した処理済みデータPD(j-1)とを用い、新たな処理済みデータPD(j)を生成する。以下に、各書込み装置12−jが実行するデータ編集処理を説明する。
図6,7,9に例示するように、データの編集を行う書込み者W(j)(j∈{2,...,N})は、書込み装置12−jの入力部121a−j(図3)に、書込み者W(j)が生成した差分データD(j)を入力し、当該差分データD(j)は記憶部122−j(第2差分データ記憶部)に格納される(ステップS21)。
また、書込み装置12−jの入力部121a−jには、書込み者W(j)のアクセスポリシーACP(j)が入力され、記憶部122−jに格納される(ステップS22)。さらに、書込み装置12−jの入力部121a−jには、書込み者W(j)のプライバシーポリシーPRP(j)が入力され、記憶部122−jに格納される(ステップS23)。
次に、書込み装置12−jは、ストレージ装置11(図5(A))にアクセスし、処理済みデータPD(j-1)の取得を要求する。これに対し、ストレージ装置11の出力部112は、記憶部113に格納されている処理済みデータPD(j-1)をネットワーク15経由で書込み装置12−jに送信する。処理済みデータPD(j-1)は、書込み装置12−j(図3)の入力部121g−jで受信され、記憶部122−jに格納される。次に、書込み装置12−jの履歴データ生成部124g−jが、記憶部122−jから処理済みデータPD(j-1)を読み出し、処理済みデータPD(j-1)から一意に定まる履歴データH(j-1)を生成して記憶部122−j(履歴データ記憶部)に格納する(ステップS24)。なお、履歴データH(j-1)の例は、処理済みデータPD(j-1)のハッシュ値などの関数値である。
次に、書込み装置12−jのオブジェクトデータ生成部124b−jが記憶部122−jから履歴データH(j-1)及び差分データD(j)を読み込み、これらを含むオブジェクトデータOB(j)を生成し、記憶部122−jに格納する(ステップS25)。
次に、書込み装置12−jの鍵取得処理部124a−jは、記憶部122−jからアクセスポリシーACP(j)を読み込み、アクセスポリシーACP(j)が含む1以上の読取者データRID(ac(j))(ac(j)∈{1,...,M})からなるリストを含む鍵取得要求データを作成する。作成された鍵取得要求データは、鍵通信部121b−jに送られ、そこからネットワーク15経由で鍵管理装置14に送信される。鍵取得要求データは、鍵管理装置14(図5(b))の入力部141に入力され、抽出部143に送られる。抽出部143は、鍵取得要求データが含む各読取者データRID(ac(j))に対応付けられた暗号化鍵EKO(ac(j))を記憶部144から抽出する。抽出された暗号化鍵EKO(ac(j))は、出力部142からネットワーク経由で書込み装置12−jに送信される。送信された暗号化鍵EKO(ac(j))は、書込み装置12−j(図3)の鍵通信部121b−jで受信され、鍵取得処理部124a−jに送られる。鍵取得処理部124a−jは、アクセスポリシーACP(j)が含む各読取者データRID(ac(j))にそれぞれ対応する各暗号化鍵EKO(ac(j))をオブジェクトデータ暗号化部124c−jに送る。オブジェクトデータ暗号化部124c−j(第2オブジェクトデータ暗号化部)は、記憶部122−jからオブジェクトデータOB(j)を読み出し、各暗号化鍵EKO(ac(j))を用い、オブジェクトデータOB(j)を、設定された1以上の読取者R(ac(j))(ac(j)∈{1,...,M})の各復号鍵DKO(ac(j))で復号可能なように暗号化して暗号化オブジェクトデータCO(j)を生成し、記憶部122−jに格納する(ステップS26)。例えば、KEM方式で暗号化される場合、オブジェクトデータ暗号化部124c−jは、例えば、AESやcamellia等の共通鍵暗号方式の共通鍵CMK(j)を用いてオブジェクトデータOB(j)を暗号化して第1暗号文を作成し、各暗号化鍵EKO(ac(j))をそれぞれ用いて共通鍵CMK(j)を暗号化した1以上の第2暗号文を作成し、第1暗号文と第2暗号文とのセットを暗号化オブジェクトデータCO(j)とする。なお、図7では、暗号化オブジェクトデータCO(j)のうち、差分データD(j)に対応する暗号文をCD(j)と表記し、履歴データH(j-1)に対応する暗号文をCH(j-1)と表記している。
次に、電子署名部124d−j(第2電子署名部)が、記憶部122−jから鍵SK(j)とオブジェクトデータOB(j)とを読み出し、鍵SK(j)を用い、暗号化オブジェクトデータCO(j)に対する、書込み者W(j)の電子署名SIG(j)を生成し、記憶部122−jに格納する(ステップS27)。なお、電子署名SIG(j)の一例は、RSA署名などである。また、電子署名SIG(j)は、差分データD(j)に対応する暗号文CD(j)及び履歴データH(j-1)に対応するCH(j-1)の両方に対する電子署名となっている(図7)。
次に、書込み装置12−jの鍵取得処理部124a−jは、記憶部122−jからプライバシーポリシーPRP(j)を読み込み、プライバシーポリシーPRP(j)が含む1以上の読取者データRID(pr(j))(pr(j)∈{1,...,M})からなるリストを含む鍵取得要求データを作成する。作成された鍵取得要求データは、鍵通信部121b−jに送られ、そこからネットワーク15経由で鍵管理装置14に送信される。鍵取得要求データは、鍵管理装置14(図5(b))の入力部141に入力され、抽出部143に送られる。抽出部143は、鍵取得要求データが含む各読取者データRID(pr(j))に対応付けられた暗号化鍵EKW(pr(j))を記憶部144から抽出する。抽出された暗号化鍵EKW(pr(j))は、出力部142からネットワーク経由で書込み装置12−jに送信される。送信された暗号化鍵EKW(pr(j))は、書込み装置12−j(図3)の鍵通信部121b−jで受信され、鍵取得処理部124a−jに送られる。鍵取得処理部124a−jは、プライバシーポリシーPRP(j)が含む各読取者データRID(pr(j))にそれぞれ対応する各暗号化鍵EKW(pr(j))を書込み者データ暗号化部124e−jに送る。書込み者データ暗号化部124e−j(第2書込み者データ暗号化部)は、記憶部122−jから書込み者データWID(j)を読み出し、各暗号化鍵EKW(pr(j))を用い、書込み者データWID(j)を、設定された1以上の読取者R(pr(j))(pr(j)∈{1,...,M})の各復号鍵DKW(pr(j))で復号可能なように暗号化し、暗号化書込み者データCW(j)を生成し、記憶部122−jに格納する(ステップS28)。例えば、KEM方式で暗号化される場合、書込み者データ暗号化部124e−jは、例えば、AESやcamellia等の共通鍵暗号方式の共通鍵CMK2(j)を用いて書込み者データWID(j)を暗号化して第3暗号文を作成し、各暗号化鍵EKO(pr(j))をそれぞれ用いて共通鍵CMK2(j)を暗号化した1以上の第4暗号文を作成し、第3暗号文と第4暗号文とのセットを暗号化書込み者データCW(j)とする。
ステップS26−S28で生成された、暗号化オブジェクトデータCO(j)、電子署名SIG(j)及び暗号化書込み者データCW(j)は合成部124f−jに送られ、合成部124f−jは、これらを含む処理済みデータPD(j)を合成する。処理済みデータPD(j)は出力部121c−j(第2出力部)に送られ、そこからネットワーク15経由でストレージ装置11(図5(a))に送信され(ステップS29)、ストレージ装置11の入力部111に受信されて記憶部113に格納される。
[データ読取処理]
次に、ストレージ装置11からデータを読取るデータ読取処理を説明する。なお、以下では、N個の書込み装置12−1,2,...,Nで処理済みデータPD(1),PD(2),...,PD(N)が生成され、それらがストレージ装置11の記憶部113に格納されているものとする。
図6,7,10に例示するように、ストレージ装置11からデータの読取を行う読取者R(m)(m∈{1,...,M})は、まず、自らが利用する読取装置13−m(図4)の入力部131c−mに受け入れポリシーPEP(m)を入力し、当該受け入れポリシーPEP(m)は、読取装置13−mの記憶部132mに格納される(ステップS51)。
次に、読取装置13−mの制御部133−mが変数iの値をi=1に設定し、その内容を記憶部132−mに格納する(ステップS52)。
次に、読取装置13−mは、ストレージ装置11(図5(A))にアクセスし、処理済みデータPD(i)の取得を要求する。これに対し、ストレージ装置11の出力部112は、記憶部113に格納されている処理済みデータPD(i)をネットワーク15経由で読取装置13−mに送信する。処理済みデータPD(i)は、読取装置13−m(図4)の入力部131a−mで受信され、記憶部132−mに格納される(ステップS53)。
次に、読取装置13−mの書込み者データ復号部134b−mは、記憶部132−mから、復号鍵DKW(m)と処理済みデータPD(i)が含む暗号化書込み者データCW(i)とを読込み、復号鍵DKW(m)を用い、暗号化書込み者データCW(i)を復号する(ステップS54)。例えば、暗号化書込み者データCW(i)がKEM方式で暗号化されたものであるならば、書込み者データ復号部134b−mは、復号鍵DKW(m)を用いて暗号化書込み者データCW(i)が含む第4暗号文の復号処理を行い、何れかの第4暗号文から共通鍵CMK2(i)が復号されたのであれば、その共通鍵CMK2(i)を用いて暗号化書込み者データCW(i)が含む第3暗号文を復号して書込み者データWID(i)を得る。なお、復号鍵DKW(m)を用いて暗号化書込み者データCW(i)が復号できるのは、書込み者W(i)が読取者R(m)に暗号化書込み者データCW(i)の復号を許容していた場合、言い換えると、書込み者W(i)のプライバシーポリシーPRP(i)に読取者データRID(m)が含まれていた場合である。
ここで、書込み者データ復号部134b−mが暗号化書込み者データCW(i)を復号できなかった場合(ステップS55)、書込み者検証部134d−mが、記憶部132−mから受け入れポリシーPEP(m)を読み出し、受け入れポリシーPEP(m)がすべての書込み者W(1),...,W(N)の受け入れを許可するものか、言い換えると、受け入れポリシーPEP(m)がすべての書込み者W(1),...,W(N)に対応する書込み者データWID(1),...,WID(N)を含んでいるかを判定する(ステップS56)。ここで、受け入れポリシーPEP(m)がすべての書込み者データWID(1),...,WID(N)を含んでいると判定されたならば後述するステップS60の処理に進み、そうでなければ後述するステップS68の処理に進む。
一方、書込み者データ復号部134b−mが暗号化書込み者データCW(i)を復号できた場合(ステップS55)、それによって得られた書込み者データWID(i)が鍵取得処理部134a−mに入力される。鍵取得処理部134a−mは、この書込み者データWID(i)を含む鍵取得要求データを作成する。作成された鍵取得要求データは、鍵通信部131b−mに送られ、そこからネットワーク15経由で鍵管理装置14に送信される。鍵取得要求データは、鍵管理装置14(図5(b))の入力部141に入力され、抽出部143に送られる。抽出部143は、鍵取得要求データが含む書込み者データWID(i)に対応付けられた鍵PK(i)を記憶部144から抽出する。抽出された鍵PK(i)は、出力部142からネットワーク経由で読取装置13−mに送信される。送信された鍵PK(i)は、読取装置13−m(図4)の鍵通信部131b−mで受信され、鍵取得処理部134a−m経由で署名検証部134c−mに送られる。署名検証部134c−mは、記憶部132−mから、処理済みデータPD(i)が含む暗号化オブジェクトデータCO(i)及び電子署名SIG(i)を読み出し、鍵PK(i)を用い、電子署名SIG(i)が、オブジェクトデータCO(i)に対する、書込み者データWID(i)によって特定される書込み者W(i)の正しい電子署名であるか否かを判定する(ステップS58)。すなわち、署名検証部134c−mは、鍵PK(i)を用いてオブジェクトデータCO(i)に付された電子署名SIG(i)を検証する。ここで、電子署名SIG(i)が正しい電子署名ではないと判定された場合には、後述するステップS68の処理に進む。一方、電子署名SIG(i)が正しい電子署名であると判定された場合には、書込み者検証部134d−mが、記憶部132−mから受け入れポリシーPEP(m)を読み出し、受け入れポリシーPEP(m)が書込み者W(i)の受け入れを許可するものか、言い換えると、受け入れポリシーPEP(m)が書込み者W(i)に対応する書込み者データWID(i)を含んでいるかを判定する(ステップS59)。ここで、受け入れポリシーPEP(m)が書込み者W(i)に対応する書込み者データWID(i)を含んでいないのであれば、後述するステップS68の処理に進む。一方、受け入れポリシーPEP(m)が書込み者W(i)に対応する書込み者データWID(i)を含んでいるのであれば、次のステップS60の処理に進む。
ステップS60の処理では、オブジェクトデータ復号部134e−mが、記憶部132−mから、復号鍵DKO(m)と処理済データPD(i)が含む暗号化オブジェクトデータCO(i)とを読み出し、復号鍵DKO(m)を用いて暗号化オブジェクトデータCO(i)を復号する(ステップS60)。例えば、暗号化オブジェクトデータCO(i)がKEM方式で暗号化されたものであるならば、オブジェクトデータ復号部134e−mは、復号鍵DKO(m)を用いて暗号化オブジェクトデータCO(i)が含む第2暗号文の復号処理を行い、何れかの第4暗号文から共通鍵CMK(i)が復号されたのであれば、その共通鍵CMK(i)を用いて暗号化オブジェクトデータCO(i)が含む第1暗号文を復号してオブジェクトデータOB(i)を得る。なお、復号鍵DKO(m)を用いて暗号化オブジェクトデータCO(i)が復号できるのは、書込み者W(i)が読取者R(m)に暗号化オブジェクトデータCO(i)の復号を許容していた場合、言い換えると、書込み者W(i)のアクセスポリシーACP(i)に読取者データRID(m)が含まれていた場合である。
ここで、オブジェクトデータ復号部134e−mが暗号化オブジェクトデータCO(i)を復号できなかったのであれば(ステップS61)、後述するステップS68の処理に進む。一方、オブジェクトデータ復号部134e−mが暗号化オブジェクトデータCO(i)を復号できたのであれば(ステップS61)、次のステップS62の処理に進む。
ステップS62の処理では、制御部133−mが、記憶部132−mに格納した変数iの値がi=1であるか否かを判定する。ここで、i=1であると判定された場合、後述のステップS65の処理に進む。
一方、i=1でないと判定された場合、読取装置13−mは、ストレージ装置11(図5(A))にアクセスし、処理済みデータPD(i-1)の取得を要求する。これに対し、ストレージ装置11の出力部112は、記憶部113に格納されている処理済みデータPD(i-1)をネットワーク15経由で読取装置13−mに送信する。処理済みデータPD(i-1)は、読取装置13−m(図4)の入力部131a−mで受信され、記憶部132−mに格納される(ステップS63)。
次に、履歴データ検証部134f−mに、復号処理によって得られたオブジェクトデータOB(i)が含む履歴データH(i-1)と、記憶部132−mから読み出された処理済みデータPD(i-1)とが入力される。履歴データ検証部134f−mは、履歴データH(i-1)が処理済みデータPD(i-1)から一意に定まるものであるか否かを判定する(ステップS64)。例えば、この判定方法は、ステップS24の処理内容に依存するが、例えば、ステップS24で処理済みデータのハッシュ値を履歴データとしていたのであれば、履歴データ検証部134f−mは、処理済みデータPD(i-1)のハッシュ値と履歴データH(i-1)とが一致するか否かを判定する。ここで、履歴データH(i-1)が処理済みデータPD(i-1)から一意に定まるものでないと判定されたのであれば、後述のステップS68の処理に進む。一方、履歴データH(i-1)が処理済みデータPD(i-1)から一意に定まるものであると判定されたのであれば、次のステップS65の処理に進む。
ステップS65の処理では、オブジェクトデータ復号部134e−mは、ステップS60の復号処理によって得られたオブジェクトデータOB(i)が含む差分データD(i)を出力して、記憶部132−mに格納する(ステップS65)。次に、制御部133−mが、記憶部132−mに格納された変数iの値がi=Nであるか否かを判定する(ステップS66)。ここで、i=Nでなければ、制御部133−mは、i+1を新たな変数iの値として処理をステップS53に戻す。一方、i=Nであれば、次のステップS68の処理に進む。
ステップS68の処理では、読取データ生成部134g−mが、ステップS60の処理で得られたオブジェクトデータOB(1)が含む差分データD(1)と、ステップS64の処理で処理済みデータPD(j-1)(j∈{2,...,N})から一意に定まるものであると判定された履歴データH(j-1)を含むオブジェクトデータOB(j)が含む差分データD(j)とを入力とし、それらを用いて読取データDATAを生成して出力する(ステップS68)。すなわち、読取データ生成部134g−mは、ステップS60の処理で得られた差分データD(1)を、ステップS64の処理で処理済みデータPD(j-1)(j∈{2,...,N})から一意に定まるものであると判定された履歴データH(j-1)を含むオブジェクトデータOB(j)が含む差分データD(j)を用いて更新したものを読取データDATAとして生成する。なお、初期データである差分データD(1)の各差分データD(j)を用いた更新は、値が小さなjに対応する差分データD(j)から順番に用いて行われる。例えば、差分データD(1)を差分データD(2),D(3),D(4)を用いて更新する場合、まず、初期データである差分データD(1)を差分データD(2)を用いて更新し、その更新結果を差分データD(3)を用いて更新し、その更新結果を差分データD(4)を用いて更新する。なお、本形態の読取データ生成部134g−mは、署名検証部134c−mで正しい電子署名でないと判定された電子署名SIG(n)に対応する暗号化オブジェクトデータCO(n)を復号して得られた差分データD(n)を用いることなく読取データDATAを生成することになる。また、本形態の読取データ生成部134g−mは、受け入れポリシーPEP(m)によって設定された1以上の書込み者W(pe(m))に含まれない書込み者W(n)が生成したと判定された差分データD(n)を用いることなく読取データDATAを生成することになる。
<適用事例>
次に、本形態の適用事例を示す。
今、N=4とし、書込み者W(1)が新規の文書α(1)である差分データD(1)を作成し、書込み者W(2)が文書α(1)を差分データD(2)で修正した文書α(2)を作成し、書込み者W(3)が文書α(2)を差分データD(3)で修正した文書α(3)を作成し、書込み者W(4)が文書α(3)を差分データD(4)で修正した文書α(4)を作成する状況を考える。また、M=3とし、これらの文書α(1), α(2), α(3), α(4)を読取者R(1),R(2),R(3)が閲覧するものとする。
ここで、書込み者W(1)が作成した文書α(1)を閲覧する権限がある読取者の集合をRS(W(1))とし、書込み者W(2)が作成した新規文書α(2)を閲覧する権限がある読取者の集合をRS(W(2))とし、書込み者W(3)が作成した新規文書α(3)を閲覧する権限がある読取者の集合をRS(W(3))とし、書込み者W(4)が作成した新規文書α(4)を閲覧する権限がある読取者の集合をRS(W(4))とすると、
RS(W(1))={R(1),R(2),R(3)}
RS(W(2))={R(1),R(2)}
RS(W(3))={R(2),R(3)}
RS(W(4))={R(2),R(3)}
と表現されるような状況であるとする。なお、書込み者W(n)が作成した文書α(n)を閲覧する権限がある読取者の集合とは、書込み者W(n)のアクセスポリシーACP(n)が含む各読取者データRID(ac(n))がそれぞれ示す読取者R(ac(n))の集合を意味する。
今、読取者R(3)が文書α(2)を閲覧しようとしたとする。これまでの一般的な技術の場合、たとえ書込み者W(2)が読取者R(3)に文書α(2)の閲覧を許可していない場合であっても、書込み者W(3)やW(4)が読取者R(3)に文書α(3)やα(4)の閲覧を許可すれば、読取者R(3)は、書込み者W(3)やW(4)によって上書きされていない限り、書込み者W(2)が作成した差分データD(2)を閲覧することが可能であった。しかし、本形態の方式では、書込み者W(2)に閲覧を許可されていない読取者R(3)は、たとえ、書込み者W(3)やW(4)が読取者R(3)に文書α(3)やα(4)の閲覧を許可していても、書込み者W(2)が作成した差分データD(2)を閲覧することはできない(ステップS61)。これにより、例えば、ネットワーク上のファイル中の情報が、その閲覧を許可されていないものに不正に二次利用されることを防止できる。
次に、上記の事例ですべての文書α(1), α(2), α(3), α(4)の閲覧がすべての読取者R(1),R(2),R(3)に許可されているとする。すなわち、
RS(W(1))={R(1),R(2),R(3)}
RS(W(2))={R(1),R(2),R(3)}
RS(W(3))={R(1),R(2),R(3)}
RS(W(4))={R(1),R(2),R(3)}
と表現されるような状況であるとする。加えて、読取者R(1)が受け入れを許可した書込み者の集合をLS(R(1))とし、読取者R(2)が受け入れを許可した書込み者の集合をLS(R(2))とし、読取者R(3)が受け入れを許可した書込み者の集合をLS(R(3))とし、読取者R(4)が受け入れを許可した書込み者の集合をLS(R(4))とすると、
LS(R(1))={W(1),W(2),W(3),W(4)}
LS(R(2))={W(1), W(3)}
LS(R(3))={W(1),W(2),W(4)}
と表現されるような状況であるとする。なお、読取者R(m)が受け入れを許可した書込み者の集合とは、読取者R(m)の受け入れポリシーPEP(m)が含む各書込み者データWID(pe(m))がそれぞれ示す書込み者W(pe(m))の集合を意味する。今、読取者R(3)が、書込み者W(3)が作成した文書α(3)を閲覧しようとしたとする。しかし、読取者R(3)は、書込み者W(3)の受け入れを許可していないため、読取者R(3)は、文書α(2)を閲覧することになる(ステップS59)。これにより、例えば、SPAMメールであるとか、フィッシング詐欺サイトに誘導する文書などにアクセスしてしまうことを防止できる。
図12(a)−(c)は、第1実施形態の適用事例を説明するための図である。
次に、第1実施形態の適用事例を図に従って説明する。
この事例では、ユーザIが書込み者W(1)となって新規文書β(1)である差分データD(1)を生成する。その後、ユーザIIIが書込み者W(2)となって差分データD(2)によって文書β(1)を文書β(2)に修正し、ユーザIVが書込み者W(3)となって差分データD(3)によって文書β(2)を文書β(3)に修正し、ユーザIが書込み者W(4)となって差分データD(4)によって文書β(3)を文書β(4)に修正している。一方で、ユーザIIが書込み者W'(4)となって差分データD'(4)によって文書β(3)を文書β(5)に修正している。また、ユーザIIが書込み者W''(2)となって差分データD''(2)によって文書β(1)を文書β(6)に修正し、ユーザIIIが書込み者W''(3)となって差分データD''(3)によって文書β(6)を文書β(7)に修正し、ユーザIIが書込み者W''(4)となって差分データD''(4)によって文書β(7)を文書β(8)に修正し、ユーザIVが書込み者W''(5)となって差分データD''(5)によって文書β(8)を文書β(9)に修正している。これらの文書β(1)-β(9)を読取者R(1)が読取ることを考える。
図12(a)は、すべてのユーザI-IVの各アクセスポリシーACP(n)がそれぞれ含む各読取者データRID(ac(n))がそれぞれ示す読取者R(ac(n))に、読取者R(1)が含まれている状態を示す。すなわち、すべてのユーザI-IVは、読取者R(1)が文書β(1)-β(9)を閲覧することを許可している。この場合、読取者R(1)の受け入れポリシーに制約がなければ、読取者R(1)はすべての文書β(1)-β(9)を閲覧できる。
図12(b)は、ユーザI,IIの各アクセスポリシーACP(n)がそれぞれ含む各読取者データRID(ac(n))がそれぞれ示す読取者R(ac(n))に読取者R(1)が含まれているが、ユーザIII,IVの各アクセスポリシーACP(n)がそれぞれ含む各読取者データRID(ac(n))がそれぞれ示す読取者R(ac(n))には、読取者R(1)が含まれていない状態を示す。すなわち、ユーザI,IIは、自ら作成した差分データの閲覧を許可しているが、ユーザIII,IVは、自ら作成した差分データの閲覧を許可していない。この場合、読取者R(1)は、文書β(1),β(6)については、そのすべての部分を閲覧することができるが、その他の文書β(2)-β(5), β(7)-β(9)については、その一部分しか閲覧できない(ステップS61)。
図12(c)は、ユーザI,III,IVの各アクセスポリシーACP(n)がそれぞれ含む各読取者データRID(ac(n))がそれぞれ示す読取者R(ac(n))に読取者R(1)が含まれているが、ユーザIIのアクセスポリシーACP(n)がそれぞれ含む各読取者データRID(ac(n))がそれぞれ示す読取者R(ac(n))には、読取者R(1)が含まれていない状態を示す。すなわち、ユーザI,III,IVは、自ら作成した差分データの閲覧を許可しているが、ユーザIIは、自ら作成した差分データの閲覧を許可していない。この場合、読取者R(1)は、文書β(1)-β(4)については、そのすべての部分を閲覧することができるが、その他の文書β(5)-β(9)については、その一部分しか閲覧できない(ステップS61)。
<本形態の特徴>
本形態のアクセスポリシーACP(n)に従った制御により(ステップS16,S26,S61)、データに対するアクセス制御の機能をデータ自体に持たせ、データの開示範囲を各書込み者が合意した範囲とすることができる(秘匿性)。
また、本形態では、処理済データPD(n)が、それを作成した書込み装置12−nを利用した書込み者W(n)に対応する暗号化書込み者データCW(n)を含むこととした。そのため、読取者R(m)は、各編集部分である差分データD(n)を生成した書込み者W(n)を知ることができる(完全性)。これにより、編集されたデータの信頼性を担保できる。
本形態のプライバシーポリシーPRP(n)に従った制御により(ステップS18,S28,S55)、書込み者W(n)が望む場合にはそのプライバシーを保護することができる(プライバシー)。
さらに、本形態の受け入れポリシーPEP(m)に従った制御により(ステップS56,S59)、読取者R(m)が不正なデータにアクセスすることを防止できる。
また、本形態の方式では、ストレージ装置11の認証機能を用いることなく、これらの機能を実現できる。その結果、処理済データPD(n)をストレージ装置11以外の場所に移したとしても、上記の機能が担保されている。また、上記の制御はストレージ装置11の管理者に対しても有効である。
〔第2実施形態〕
次に、本発明の第2実施形態を説明する。第2実施形態は第1実施形態の変形例であり、データ読取処理のみが相違する。すなわち、図11に示した通り、第1実施形態では、ステップS61の判定結果やステップS64の判定結果がnoである場合、ステップS68の処理に進み、それ以上大きなiに対する処理を実行しないこととした。しかし、第2実施形態では、ステップS61の判定結果やステップS64の判定結果がnoである場合、ステップS66の処理に進み、i=Nでない限り、それ以上大きなiに対する処理を実行する。これにより、読取者R(m)は、復号できない差分データや不当な差分データの閲覧が不可能であることは変わりないが、すべての電子署名SIG(1),...,SIG(N)の検証や、受け入れポリシーPEP(m)の適合の可否判定を行い、編集データ全体の完全性を検証することができる。
〔第3実施形態〕
次に、本発明の第3実施形態を説明する。暗号化オブジェクトデータCO(n)が、オブジェクトデータOB(n)と付加情報とを含む情報の暗号文であってもよいし、暗号化書込み者データCW(n)が、書込み者データWID(n)と付加情報とを含む情報の暗号文であってもよい。また、受け入れポリシーPEP(m)が、各書込み者データWID(pe(m))だけではなく、さらに付加情報を含み、読取装置13−mが、暗号化オブジェクトデータCO(n)や書込み者データWID(n)を復号して得られた付加情報が受け入れポリシーPEP(m)が含む付加情報に合致するかを判定し(例えば、ステップS59の追加された判定処理)、合致しない場合には受け入れを拒否する構成でもよい(ステップS59の判定結果でnoとする)。なお、付加情報の例としては、以下を例示できる。
・編集時間(処理済データPD(n)の生成時刻など)
・編集場所(処理済データPD(n)の生成が行われた場所、ネットワーク上の位置、国、地方等)
・編集された状況
〔第4実施形態〕
次に第4実施形態を説明する。上記実施形態では、暗号化方式や署名方式として公開鍵暗号方式等を用いた。しかし、暗号化方式として述語暗号を用いてもよい。
述語暗号とは、「属性情報」と呼ばれる情報と「述語情報」と呼ばれる情報との組み合わせが所定の論理式を「真」にする場合に暗号文が復号できる方式である。すなわち、述語暗号では、「属性情報」と「述語情報」の一方が暗号文に埋め込まれ、他方が鍵情報に埋め込まれ、暗号文又は鍵情報である第1情報に対応する属性情報と、鍵情報又は暗号文である第2情報に対応する述語情報とが予め定められた関数に入力された場合の当該関数値が予め定められた値となる場合に、正しい復号結果を生成する。これにより、上述した「アクセスポリシーACP(n)」「プライバシーポリシーPRP(n)」「受け入れポリシーPEP(m)」による制御を容易に実現できる。例えば、書込み装置12−nが、「アクセスポリシーACP(n)」や「プライバシーポリシーPRP(n)」に対応するRID(ac(n))やRID(pr(n))や上記「付加情報」に対応する属性情報を含む暗号文を暗号化オブジェクトデータCO(n)や暗号化書込み者データCW(n)として生成し、読取装置13−mが、自らに対応するWID(m)や「受け入れポリシーPEP(m)」に対応するWID(pe(m))や上記「付加情報」に対応する「述語情報」を含む鍵情報でこれらを復号する構成でもよい。
従来の述語暗号の構成は、例えば、参考文献1「"Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products," with Amit Sahai and Brent Waters One of 4 papers from Eurocrypt 2008 invited to the Journal of Cryptology」等に開示されている。しかし、述語暗号方式として、以下の内積述語暗号を用いてもよい。
<内積述語暗号>
〔定義〕
まず、本形態で使用する用語や記号を定義する。なお、以下の定義は本形態のみに適用されるものである。
行列:演算が定義された集合の元を矩形に並べたもの。環の元を要素とするものだけではなく、群の元を要素とするものも「行列」と表現する。
(・)T:・の転置行列。
(・)-1:・の逆行列。
∧:論理積。
∨:論理和。
Z:整数集合。
k:セキュリティパラメータ(k∈Z, k>0)。
{0,1}*:任意ビット長のバイナリ系列。その一例は、整数0及び1からなる系列である。しかし、整数0及び1からなる系列に限定されない。位数2の有限体又はその拡大体と同義である。
q:1以上の整数。
Zq:位数qの有限環。有限環上の演算は、例えば、位数qを法とする剰余演算によって容易に構成できる。
Fq:位数qの有限体。Fqが有限体であるためには、位数qは素数又は素数のべき乗値でなければならない。有限体Fqの例は素体やそれを基礎体とした拡大体である。なお、有限体Fqが素体である場合の演算は、例えば、位数qを法とする剰余演算によって容易に構成できる。また、有限体Fqが拡大体である場合の演算は、例えば、既約多項式を法とする剰余演算によって容易に構成できる。有限体Fqの具体的な構成方法は、例えば、参考文献1「ISO/IEC 18033-2: Information technology - Security techniques - Encryption algorithms - Part 2: Asymmetric ciphers」に開示されている。
0F:有限体Fqの加法単位元。
1F:有限体Fqの乗法単位元。
δ(i,j):クロネッカーのデルタ関数。i=jの場合にδ(i,j)=1Fを満たし、i≠jの場合にδ(i,j)=0 Fを満たす。
E:有限体Fq上で定義された楕円曲線。アフィン(affine)座標版のWeierstrass方程式
y2+a1・x・y+a3・y=x3+a2・x2+a4・x+a6 …(1)
警告 1(ただし、a1,a2,a3,a4,a6∈Fq)を満たすx,y∈Fqからなる点(x,y)の集合に無限遠点と呼ばれる特別な点Oを付加したもので定義される。楕円曲線E上の任意の2点に対して楕円加算と呼ばれる二項演算+及び楕円曲線E上の任意の1点に対して楕円逆元と呼ばれる単項演算−がそれぞれ定義できる。また、楕円曲線E上の有理点からなる有限集合が楕円加算に関して群をなすこと、楕円加算を用いて楕円スカラー倍算と呼ばれる演算が定義できること、及びコンピュータ上での楕円加算などの楕円演算の具体的な演算方法はよく知られている(例えば、参考文献1、参考文献2「RFC 5091: Identity-Based Cryptography Standard (IBCS) #1: Supersingular Curve Implementations of the BF and BB1 Cryptosystems」、参考文献3「イアン・F・ブラケ、ガディエル・セロッシ、ナイジェル・P・スマート=著、「楕円曲線暗号」、出版=ピアソン・エデュケーション、ISBN4-89471-431-0」等参照)。
また、楕円曲線E上の有理点からなる有限集合は位数p(p≧1)の部分群を持つ。例えば、楕円曲線E上の有理点からなる有限集合の要素数を#Eとし、pを#Eを割り切る大きい素数とした場合、楕円曲線Eのp等分点からなる有限集合E[p]は、楕円曲線E上の有理点からなる有限集合の部分群を構成する。なお、楕円曲線Eのp等分点とは、楕円曲線E上の点Aのうち、楕円曲線E上での楕円スカラー倍算値p・Aがp・A=Oを満たす点を意味する。
G1, G2, GT:位数qの巡回群。巡回群G1, G2の具体例は、楕円曲線Eのp等分点からなる有限集合E[p]やその部分群である。G1=G2であってもよいしG1≠G2であってもよい。また、巡回群GTの具体例は、有限体Fqを基礎体とする拡大体の加法についての部分群である。その一例は、有限体Fqの代数閉包における1のp乗根からなる有限集合である。
なお、本形態では、巡回群G1, G2上で定義された演算を加法的に表現し、巡回群GT上で定義された演算を乗法的に表現する。すなわち、χ∈Fq及びΩ∈G1に対するχ・Ω∈G1は、Ω∈G1に対して巡回群G1で定義された演算をχ回施すことを意味し、Ω1, Ω2∈G1に対するΩ12∈G1は、Ω1∈G1とΩ2∈G1とを被演算子として巡回群G1で定義された演算を行うことを意味する。同様に、χ∈Fq及びΩ∈G2に対するχ・Ω∈G2は、Ω∈G2に対して巡回群G2で定義された演算をχ回施すことを意味し、Ω1, Ω2∈G2に対するΩ12∈G2は、Ω1∈G2とΩ2∈G2とを被演算子として巡回群G2で定義された演算を行うことを意味する。一方、χ∈Fq及びΩ∈GTに対するΩχ∈GTは、Ω∈GTに対して巡回群GTで定義された演算をχ回施すことを意味し、Ω12∈GTに対するΩ1・Ω2∈GTは、Ω1∈GTとΩ2∈GTとを被演算子として巡回群GTで定義された演算を行うことを意味する。
G1 n+1:n+1(n≧1)個の巡回群G1の直積。
G2 n+1:n+1個の巡回群G2の直積。
g1, g2,gT:巡回群G1, G2, GTの生成元。
V:n+1個の巡回群G1の直積からなるn+1次元のベクトル空間。
V*:n+1個の巡回群G2の直積からなるn+1次元のベクトル空間。
e:直積G1 n+1と直積G2 n+1との直積G1 n+1×G2 n+1を巡回群GTに写す非退化な双線形写像(bilinear map)を計算するための関数(「双線形関数」と呼ぶ)。双線形関数eは、巡回群G1のn+1個の元γL(L=1,...,n+1)(n≧1)と巡回群G2のn+1個の元γL *(L=1,...,n+1)とを入力とし、巡回群GTの1個の元を出力する。
e:G1 n+1×G2 n+1→GT …(2)
双線形関数eは以下の性質を満たす。
[双線形性]すべてのΓ1∈G1 n+1,Γ2∈G2 n+1及びν,κ∈Fqについて以下の関係を満たす。
e(ν・Γ1,κ・Γ2)=e(Γ12)ν・κ …(3)
[非退化性]すべてのΓ1∈G1 n+1,Γ2∈G2 n+1を巡回群GTの単位元に写す関数ではない。
[計算可能性]あらゆるΓ1∈G1 n+1,Γ2∈G2 n+1についてe(Γ12)を効率的に計算するアルゴリズムが存在する。
本形態では、巡回群G1と巡回群G2との直積G1×G2を巡回群GTに写す非退化な双線形写像を計算するための関数
Pair:G1×G2→GT …(4)
を用いて双線形関数eを構成する。本形態の双線形関数eは、巡回群G1のn+1個の元γL(L=1,...,n+1)からなるn+1次元ベクトル(γ1,...,γn+1)と、巡回群G2のn+1個の元γL *(i=1,...,n+1)からなるn+1次元ベクトル(γ1 *,...,γn+1 *)との入力に対し、巡回群GTの1個の元
e=ΠL=1 n+1 Pair(γL, γL *) …(5)
を出力する関数である。
なお、双線形関数Pairは、巡回群G1の1個の元と巡回群G2の1個の元との組を入力とし、巡回群GTの1個の元を出力する関数であり、以下の性質を満たす。
[双線形性]すべてのΩ1∈G1,Ω2∈G2及びν,κ∈Fqについて以下の関係を満たす。
Pair(ν・Ω1,κ・Ω2)=Pair(Ω12)ν・κ …(6)
[非退化性]すべてのΩ1∈G1,Ω2∈G2を巡回群GTの単位元に写す関数ではない。
[計算可能性]あらゆるΩ1∈G1,Ω2∈G2についてPair(Ω12)を効率的に計算するアルゴリズムが存在する。
なお、双線形関数Pairの具体例は、WeilペアリングやTateペアリングなどのペアリング演算を行うための関数である(例えば、参考文献4「Alfred. J. Menezes,ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS, KLUWER ACADEMIC PUBLISHERS, ISBN0-7923-9368-6,pp. 61-81」等参照)。また、楕円曲線Eの種類に応じ、Tateペアリングなどのペアリング演算を行うための関数と所定の関数phiを組み合わせた変更ペアリング関数e(Ω1,phi(Ω2))(Ω1∈G1,Ω2∈G2)を双線形関数Pairとして用いてもよい(例えば、参考文献2等参照)。また、ペアリング演算をコンピュータ上で行うためのアルゴリズムとしては、周知のMiller のアルゴリズム(参考文献5「V. S. Miller, “Short Programs for functions on Curves,”1986,インターネット<http://crypto.stanford.edu/miller/miller.pdf>」などが存在する。また、ペアリング演算を効率的に行うための楕円曲線や巡回群の構成方法はよく知られている(例えば、参考文献2、参考文献5「A. Miyaji, M. Nakabayashi, S.Takano, "New explicit conditions of elliptic curve Traces for FR-Reduction," IEICE Trans. Fundamentals, vol. E84-A, no05, pp. 1234-1243, May 2001」、参考文献6「P.S.L.M. Barreto, B. Lynn, M. Scott, "Constructing elliptic curves with prescribed embedding degrees," Proc. SCN '2002, LNCS 2576, pp.257-267, Springer-Verlag. 2003」、参考文献7「R. Dupont, A. Enge, F. Morain, "Building curves with arbitrary small MOV degree over finite prime fields," http://eprint.iacr.org/2002/094/」等参照)。
ai(i=1,...,n+1):巡回群G1のn+1個の元を要素とするn+1次元の基底ベクトル。基底ベクトルaiの一例は、κ1・g1∈G1をi次元目の要素とし、残りのn個の要素を巡回群G1の単位元(加法的に「0」と表現)とするn+1次元の基底ベクトルである。この場合、n+1次元の基底ベクトルai(i=1,...,n+1)の各要素をそれぞれ列挙して表現すると、以下のようになる。
a1=(κ1・g1,0,0,...,0)
a2=(0,κ1・g1,0,...,0) …(7)
...
an+1=(0,0,0,...,κ1・g1)
ここで、κ1は加法単位元0F以外の有限体Fqの元からなる定数であり、κ1∈Fqの具体例はκ1=1Fである。基底ベクトルaiは直交基底であり、巡回群G1のn+1個の元を要素とするすべてのn+1次元ベクトルは、n+1次元の基底ベクトルai(i=1,...,n+1)の線形和によって表される。すなわち、n+1次元の基底ベクトルaiは前述のベクトル空間Vを張る。
ai *(i=1,...,n+1):巡回群G2のn+1個の元を要素とするn+1次元の基底ベクトル。基底ベクトルai *の一例は、κ2・g2∈G2をi次元目の要素とし、残りのn個の要素を巡回群G2の単位元(加法的に「0」と表現)とするn+1次元の基底ベクトルである。この場合、基底ベクトルai *(i=1,...,n+1)の各要素をそれぞれ列挙して表現すると、以下のようになる。
a1 *=(κ2・g2,0,0,...,0)
a2 *=(0,κ2・g2,0,...,0) …(8)
...
an+1 *=(0,0,0,...,κ2・g2)
ここで、κ2は加法単位元0F以外の有限体Fqの元からなる定数であり、κ2∈Fqの具体例はκ2=1Fである。基底ベクトルai *は直交基底であり、巡回群G2のn+1個の元を要素とするすべてのn+1次元ベクトルは、n+1次元の基底ベクトルai *(i=1,...,n+1)の線形和によって表される。すなわち、n+1次元の基底ベクトルai *は前述のベクトル空間V*を張る。
なお、基底ベクトルaiと基底ベクトルai *とは、0Fを除く有限体Fqの元τ=κ1・κ2について
e(ai, aj *)=gT τ・δ(i,j) …(9)
を満たす。すなわち、i=jの場合には、式(5)(6)の関係から、
e(ai, aj *)= Pair(κ1・g12・g2)・Pair(0, 0)・...・Pair(0, 0)
= Pair(g1, g2)κ1・κ2・Pair(g1, g2)0・0・...・Pair(g1, g2)0・0
= Pair(g1, g2)κ1・κ2=gT τ
を満たす。一方、i≠jの場合には、e(ai, aj *)は、Pair(κ1・g12・g2)を含まず、Pair(κ1・g1,0)と Pair(0,κ2・g2)とPair(0,0)との積になる。さらに、式(6)の関係からPair(g1, 0)=Pair(0, g2)=Pair(g1, g2)0を満たす。そのため、i≠jの場合には、
e(ai, aj *)=e(g1, g2)0=gT 0
を満たす。
特に、τ=κ1・κ2=1Fである場合(例えば、κ12=1Fの場合)、
e(ai, aj *)=gT δ(i,j) …(10)
を満たす。ここで、gT 0=1は巡回群GTの単位元であり、gT 1= gTは巡回群GTの生成元である。この場合、基底ベクトルaiと基底ベクトルai *とは双対正規直交基底であり、ベクトル空間Vとベクトル空間V*とは、双線形写像を構成可能な双対ベクトル空間〔双対ペアリングベクトル空間(DPVS:Dual Paring Vector space)〕である。
A:基底ベクトルai(i=1,...,n+1)を要素とするn+1行n+1列の行列。例えば、基底ベクトルai(i=1,...,n+1)が式(7)によって表現される場合、行列Aは、
Figure 0005366755
となる。
A*:基底ベクトルai *(i=1,...,n+1)を要素とするn+1行n+1列の行列。例えば、基底ベクトルai *(i=1,...,n+1)が式(8)によって表現される場合、行列A*は、
Figure 0005366755
となる。
X:有限体Fqの元を要素とするn+1行n+1列の行列。基底ベクトルaiの座標変換に用いられる。行列Xのi行j列(i=1,...,n+1,j=1,...,n+1)の要素をχi,j∈Fqとすると、行列Xは、
Figure 0005366755
となる。なお、行列Xの各要素χi,jを変換係数と呼ぶ。
X *:行列Xの逆行列の転置行列X*=(X-1)T。基底ベクトルai *の座標変換に用いられる。行列X *のi行j列の要素をχi,j *∈Fqとすると、行列X*は、
Figure 0005366755
となる。なお、行列X*の各要素χi,j *を変換係数と呼ぶ。
この場合、n+1行n+1列の単位行列をIとするとX・(X*)T=Iを満たす。すなわち、単位行列
Figure 0005366755
に対し、
Figure 0005366755
を満たす。ここで、n+1次元ベクトル
χi =(χi,1,...,χi,n+1) …(17)
χj →*=(χj,1 *,...,χj,n+1 *) …(18)
を定義する。すると、式(16)の関係から、n+1次元ベクトルχi とχj →*との内積は、
χi ・χj →*=δ(i,j) …(19)
となる。
bi:巡回群G1のn+1個の元を要素とするn+1次元の基底ベクトル。行列Xを用いて基底ベクトルai(i=1,...,n+1)を座標変換することで得られる。具体的には、基底ベクトルbiは、
bij=1 n+1χi,j・aj …(20)
の演算によって得られる。例えば、基底ベクトルaj(j=1,...,n+1)が式(7)によって表現される場合、基底ベクトルbiの各要素をそれぞれ列挙して表現すると、以下のようになる。
bi=(χi,1・κ1・g1i,2・κ1・g1 ,...,χi,n+1・κ1・g1) …(21)
巡回群G1のn+1個の元を要素とするすべてのn+1次元ベクトルは、n+1次元の基底ベクトルbi(i=1,...,n+1)の線形和によって表される。すなわち、n+1次元の基底ベクトルbiは前述のベクトル空間Vを張る。
bi *:巡回群G2のn+1個の元を要素とするn+1次元の基底ベクトル。行列X*を用いて基底ベクトルai *(i=1,...,n+1)を座標変換することで得られる。具体的には、基底ベクトルbi *は、
bi *j=1 n+1χi,j *・aj * …(22)
の演算によって得られる。例えば、基底ベクトルaj *(j=1,...,n+1)が式(8)によって表現される場合、基底ベクトルbi *の各要素をそれぞれ列挙して表現すると、以下のようになる。
bi *=(χi,1 *・κ2・g2i,2 *・κ2・g2 ,...,χi,n+1 *・κ2・g2) …(23)
巡回群G2のn+1個の元を要素とするすべてのn+1次元ベクトルは、n+1次元の基底ベクトルbi *(i=1,...,n+1)の線形和によって表される。すなわち、n+1次元の基底ベクトルbi *は前述のベクトル空間V*を張る。
なお、基底ベクトルbiと基底ベクトルbi *とは、0Fを除く有限体Fqの元τ=κ1・κ2について
e(bi, bj *)=gT τ・δ(i,j) …(24)
を満たす。すなわち、式(5)(19)(21)(23)の関係から、
Figure 0005366755
を満たす。特に、τ=κ1・κ2=1Fである場合(例えば、κ12=1Fの場合)、
e(bi, bj *)=gT δ(i,j) …(25)
を満たす。この場合、基底ベクトルbiと基底ベクトルbi *とは、双対ペアリングベクトル空間(ベクトル空間Vとベクトル空間V*)の双対正規直交基底である。
なお、式(24)の関係を満たすのであれば、式(7)(8)で例示したもの以外の基底ベクトルai及びai *や、式(20)(22)で例示したもの以外の基底ベクトルbi及びbi *を用いてもよい。
B:基底ベクトルbi(i=1,...,n+1)を要素とするn+1行n+1列の行列。B=X・Aを満たす。例えば、基底ベクトルbiが式(21)によって表現される場合、行列Bは、
Figure 0005366755
となる。
B*:基底ベクトルbi *(i=1,...,n+1)を要素とするn+1行n+1列の行列。B*=X*・A*を満たす。例えば、基底ベクトルbi *(i=1,...,n+1)が式(23)によって表現される場合、行列B*は、
Figure 0005366755
となる。
w:有限体Fqの元を要素とするn次元ベクトル。
w=(w1,...,wn)∈Fq n …(28)
wμ:n次元ベクトルのμ(μ=1,...,n)番目の要素。
v:有限体Fqの元を要素とするn次元ベクトル。
v=(v1,...,vn)∈Fq n …(29)
vμ:n次元ベクトルのμ(μ=1,...,n)番目の要素。
Enc:共通鍵暗号方式の暗号化処理を示す共通鍵暗号関数。共通鍵暗号方式の具体例は、カメリア(Camellia)やAESなどである。
Enck(M):共通鍵Kを用い、共通鍵暗号関数Encに従って平文Mを暗号化して得られた暗号文。
Dec:共通鍵暗号方式の復号処理を示す共通鍵復号関数。
Deck(C):共通鍵Kを用い、共通鍵復号関数Decに従って暗号文Cを復号して得られた復号結果。
〔内積述語暗号〕
次に、内積述語暗号の基本的な構成を例示する。
内積述語暗号は、属性情報や述語情報として互いに次元が等しいベクトルを用い、それらの内積が0となる場合に暗号文が復号される述語暗号である。内積述語暗号では、内積が0となることと論理式が「真」となることとが等価である。なお、参考文献1に記載された述語暗号も内積述語暗号の一種である。
[論理式と多項式との関係]
内積述語暗号では、論理和や論理積からなる論理式を多項式で表現する。
まず、「xがη0である」という命題1と「xがη1である」という命題2との論理和 (x=η0)∨(x=η1)を
(x-η0)・(x-η1) …(30)
という多項式で表現する。すると、各真理値と式(30)の関数値との関係は以下のようになる。
Figure 0005366755
[表1]から分かるように、論理和(x=η0)∨(x=η1)が真である場合、式(30)の関数値は0になり、論理和(x=η0)∨(x=η1)が偽である場合、式(30)の関数値は0以外の値となる。すなわち、論理和(x=η0)∨(x=η1)が真であることと、式(30)の関数値が0となることとは等価である。よって、論理和は式(30)で表現できる。
また、「xがη0である」という命題1と「xがη1である」という命題2との論理積 (x=η0)∧(x=η1)を
ι0・(x-η0)+ι1・(x-η1) …(31)
という多項式で表現する。ただし、ι0及びι1は乱数である(その他の添え字が付いたιも同様)。すると、真理値と式(31)の関数値とは以下の関係となる。
Figure 0005366755
[表2]から分かるように、論理積 (x=η0)∧(x=η1)が真である場合、式(31)の関数値は0になり、論理積 (x=η0)∧(x=η1)が偽である場合、式(31)の関数値は0以外の値となる。すなわち、論理積 (x=η0)∧(x=η1)が真であることと、式(31)の関数値が0となることとは等価である。よって、論理積は式(31)で表現できる。
以上のように、式(30)と式(31)とを用いることで論理和や論理積からなる論理式を多項式f(x)で表現できる。例えば、論理式{(x=η0)∨(x=η1)∨(x=η2)}∧(x=η3)∧(x=η4)は、多項式
f(x)=ι0・{(x-η0)・(x-η1)・(x-η2)}+ι1・(x=η3)+ι2・(x=η4) …(32)
で表現できる。
なお、式(30)では、1つの不定元xを用いて論理和を表現したが、複数の不定元を用いて論理和を表現することも可能である。例えば、2つの不定元x0及びx1を用い、「x0がη0である」という命題1と「x1がη1である」という命題2との論理和 (x00)∨(x11)を
(x00)・(x11) …(33)
という多項式で表現することも可能であり、3つ以上の不定元を用い、論理和を多項式で表現することも可能である。
また、式(31)では、1つの不定元xを用いて論理積を表現したが、複数の不定元を用いて論理積を表現することも可能である。例えば、また、「x0がη0である」という命題1と「x1がη1である」という命題2との論理積 (x00)∧(x11)を
ι0・(x00)+ι1・(x11) …(34)
という多項式で表現することも可能であり、3つ以上の不定元を用い、論理積を多項式で表現することも可能である。
以下では、論理和及び/又は論理積を含む論理式をH(H≧1)個の不定元x0,...,xH-1を用いて表現した多項式をf(x0,...,xH-1) と表現する。また、各不定元x0,...,xH-1に対応する命題を「xhがηhである」とする。ただし、ηh(h=0,...H-1)は命題ごとに定まる定数である。この場合、当該論理式を示す多項式f(x0,...,xH-1)は、不定元xhと定数ηhとの差をとる多項式によって当該不定元xhが当該定数ηhであるという命題を表現し、命題をそれぞれ表現する多項式の積によって当該命題の論理和を表現し、命題又は命題の論理和をそれぞれ表現する多項式の線形和によって当該命題又は命題の論理和の論理積を表現し、それによって論理式を表現した多項式となる。例えば、5つの不定元x0,...,x4を用い、論理式{(x00)∨(x11)∨(x22)}∧(x33)∧(x44)を多項式で表現すると、
f(x0,...,x4)=ι0・{(x00)・(x11)・(x22)}+ι1・(x33)+ι2・(x44)
となる。
[多項式と内積の関係]
論理式を示す多項式f(x0,...,xH-1)は、2つのn次元ベクトルの内積で表現できる。すなわち、多項式f(x0,...,xH-1)は、当該多項式f(x0,...,xH-1)の各項の不定元成分を各要素とするベクトル
v=(v1,...,vn) …(35)
と、当該多項式f(x0,...,xH-1)の各項の係数成分を各要素とするベクトル
w=(w1,...,wn) …(36)
との内積
f(x0,...,xH-1)=w・v …(37)
に等しい。例えば、1つの不定元xで表現された多項式f(x)=θ0・x01・x+...+θn-1・xn-1は、2つのn次元ベクトル
v=(v1,...,vn)=(x0 ,...,xn-1) …(38)
w=(w1,...,wn)=(θ0,...,θn-1) …(39)
の内積
f(x)= w・v …(40)
に等しい。
すなわち、論理式を示す多項式f(x0,...,xH-1)が0であるか否かと、多項式f(x0,...,xH-1)の各項の不定元成分を各要素とするベクトルvと、多項式f(x0,...,xH-1)の各項の係数成分を各要素とするベクトルwとの内積が0であるか否かとは等価である。
f(x0,...,xH-1)=0 ←→ w・v=0 …(41)
本形態で例示する内積述語暗号では、当該不定元成分にプロトコルごと又は当該プロトコルの組み合わせごとに定められた識別子が代入された値を各要素とするベクトルv=(v0,...,vn-1)を属性情報ATTとし、係数成分を各要素とするベクトルw=(w0,...,wn-1)を述語情報PREとする。すなわち、
属性情報ATT:v=(v1,...,vn) …(42)
述語情報PRE:w=(w1,...,wn) …(43)
である。そして、属性情報ATTと述語情報PREの一方が暗号文に埋め込まれ、他方が鍵情報に埋め込まれる。
[内積述語暗号の基本構成例1]
次に、内積述語暗号の具体例を示す。基本構成例1は、内積述語暗号によって鍵カプセル化メカニズムKEM (Key Encapsulation Mechanisms)を構成する例である。基本構成例1では、述語情報PREに対応する暗号文が生成され、属性情報ATTに対応する鍵情報が生成される。基本構成例1は、Setup(1k),GenKey(MSK,w),Enc(PA,v),Dec(SKw,C1,C2)を含む。
《Setup(1k):セットアップ》
−入力:セキュリティパラメータk
−出力:マスター鍵情報MSK,公開パラメータPK
Setup(1k)の一例では、まず、セキュリティパラメータkをnとして、n+1次元の基底ベクトルai(i=1,...,n+1)を要素とするn+1行n+1列の行列Aと、基底ベクトルai *(i=1,...,n+1)を要素とするn+1行n+1列の行列A*と、座標変換のためのn+1行n+1列の行列X,X*とが選択される。次に、式(20)に従って座標変換されたn+1次元の基底ベクトルbi(i=1,...,n+1)が算出され、式(22)に従って座標変換されたn+1次元の基底ベクトルbi *(i=1,...,n+1)が算出される。そして、基底ベクトルbi *(i=1,...,n+1)を要素とするn+1行n+1列の行列B*がマスター鍵情報MSKとして出力され、ベクトル空間V, V*、基底ベクトルbi(i=1,...,n+1)を要素とするn+1行n+1列の行列B、セキュリティパラメータk、有限体Fq、楕円曲線E、巡回群G1, G2,GT、生成元g1, g2, gT、双線形関数eなどが公開パラメータPKとして出力される。
《GenKey(MSK,w):鍵情報生成》
−入力:マスター鍵情報MSK,ベクトルw
−出力:ベクトルwに対応する鍵情報D*
GenKey(MSK,w)の一例では、まず、有限体Fqから元α∈Fqが選択される。そして、マスター鍵情報MSKである行列B*を用い、ベクトルwに対応する鍵情報
D*=α・(Σμ=1 nwμ・bμ *)+bn+1 *∈G2 n+1 …(44)
が生成され、出力される。なお、巡回群G2上での離散対数問題の求解が困難である場合、鍵情報D*からwμ・bμ *やbn+1 *の成分を分離抽出することは困難である。
《Enc(PA,v):暗号化》
−入力:公開パラメータPK,ベクトルv,平文M
−出力:暗号文C1,C2,共通鍵K
Enc(PA,v)の一例では、まず、共通鍵Kと有限体Fqの元である乱数υ1とが生成される。そして、行列Bなどの公開パラメータPKと、共通鍵Kを含む値に対応する有限体Fqの元υ2と、ベクトルvと、乱数υ1とを用い、暗号文
C21・(Σμ=1 nvμ・bμ)+υ2・bn+1∈G1 n+1 …(45)
が生成される。
そして、暗号文
C1=Enck(M) …(46)
が生成され、暗号文C1と暗号文C2と共通鍵Kとが出力される。共通鍵Kの一例はK=gT τ・υ2∈GTである。ここで、添え字のυ2はυ2を意味する。また、前述のようにτの一例はτ=1Fである。なお、巡回群G1上での離散対数問題の求解が困難である場合、暗号文C2からvμ・bμやυ2・bn+1の成分を分離抽出することは困難である。
《Dec(SKw,C1,C2):鍵共有・復号》
−入力:ベクトルwに対応する鍵情報D1 *,暗号文C1,C2
−出力:共通鍵K,平文M
Dec(SKw,C1,C2)の一例では、まず、暗号文C2と鍵情報D1 *とが式(2)の双線形関数eに入力される。すると、式(3)(24)の性質から、
Figure 0005366755
を満たす。
ここで、内積w・v=0であれば、式(47)は、
Figure 0005366755
と変形できる。この結果から共通鍵Kが生成され出力される。共通鍵Kの一例はK=gT τ・υ2∈GTである。
次に、当該共通鍵Kと暗号文C1とを用い、復号結果
M=Deck(C1) …(49)
が算出され出力される。
[内積述語暗号の基本構成例2]
基本構成例2も、内積述語暗号を用いて鍵カプセル化メカニズムKEMを構成する場合の基本構成例であるが、基本構成例2では、属性情報ATTに対応する暗号文が生成され、述語情報PREに対応する鍵情報が生成される。この構成は、Setup(1k),GenKey(MSK,v),Enc(PA,w),Dec(SKv,C1,C2)を含む。基本構成例2は、基本構成例1のベクトルvとベクトルwとを逆にした構成となる。
すなわち、GenKey(MSK,v)では、式(44)の代わりに、鍵情報
D*=α・(Σμ=1 nvμ・bμ *)+bn+1 *∈G2 n+1 …(50)
が生成され、出力される。また、Enc(PA,w)では、式(45)の代わりに、暗号文
C21・(Σμ=1 nwμ・bμ)+υ2・bn+1∈G1 n+1 …(51)
が生成される。また、Dec(SKv,C1,C2)では、式(44)で生成された鍵情報の代わりに式(50)で生成された鍵情報が用いられる。その他は、基本構成例1と同様である。
また、例えば、前述の基本構成例1,2で例示した暗号文C2はn+1次元の基底ベクトルを用いて構成されたが(式(45)(51))、互いに直交するn+2次元以上の基底ベクトルb1,...bn+ξを用いて暗号文C2が構成されてもよい。例えば、以下の式(52)(53)の暗号文C2が生成されてもよい。なお、ξは2以上の整数であり、υξ+1は定数や変数などである。
C21・(Σμ=1 nvμ・bμ)+υ2・bn+1+…+υξ+1・bn+ξ∈G1 n+ξ …(52)
C21・(Σμ=1 nwμ・bμ)+υ2・bn+1+…+υξ+1・bn+ξ∈G1 n+ξ …(53)
また、上述の有限体Fq上で定義された各演算を環Zq上で定義された演算に置き換えてもよい。有限体Fq上で定義された各演算を環Zq上で定義された演算に置き換える方法の一例は、素数やそのべき乗値以外のqを許容する方法である。この場合、パラメータや入力値によっては零因子が分母となって乗法についての逆元が計算できない場合も生じるが、その場合にはエラーとして処理をやり直すことにすればよい。
〔その他の変形例〕
なお、本発明は上述の実施の形態に限定されるものではない。例えば、ストレージ装置は、ネットワーク上の装置に限定されず、例えば、ストレージ装置11がUSBメモリなどの可搬型記録媒体であってもよい。その場合、読込み装置12−nや読取装置13−mは、自らに接続されたストレージ装置11に対して各処理を行う。
また、ステップS68の処理の代わりに、読取データ生成部134g−mが、ステップS60の処理で得られたオブジェクトデータOB(1)が含む差分データD(1)と、ステップS64の処理で処理済みデータPD(j-1)(j∈{2,...,N})から一意に定まるものであると判定された履歴データH(j-1)を含むオブジェクトデータOB(j)が含む差分データD(j)と、からなる集合に属する要素(差分データ)の一部を入力とし、それらを用いて読取データDATAを生成してもよい。また、「プライバシーポリシーPRP(n)」や「受け入れポリシーPEP(m)」による制御を実施しない構成でもよい。
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読取可能な記録媒体に記録しておくことができる。コンピュータで読取可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読取、読取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読取、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
1 データ編集システム
11 ストレージ装置
12−n 書込み装置
13−m 読取装置

Claims (12)

  1. ストレージ装置と、各書込み者W(n)(n∈{1,...,N}, N≧2)がそれぞれ利用する書込み装置WA(n)と、各読取者R(m)(m∈{1,...,M}, M≧2)がそれぞれ利用する読取装置RA(m)と、を有し、
    データを新規作成する書込み者W(1)が利用する書込み装置WA(1)は、
    前記書込み者W(1)が生成した新規作成データである差分データD(1)を格納する第1差分データ記憶部と、
    前記差分データD(1)を含むオブジェクトデータOB(1)を、設定された1以上の読取者R(ac(1))(ac(1)∈{1,...,M})の各第1復号鍵DKO(ac(1))で復号可能なように暗号化し、暗号化オブジェクトデータCO(1)を生成する第1オブジェクトデータ暗号化部と、
    前記暗号化オブジェクトデータCO(1)を含む処理済みデータPD(1)を出力する第1出力部と、を含み、
    データ編集を行う各書込み者W(j)(j∈{2,...,N})がそれぞれ利用する書込み装置WA(j)は、
    書込み者W(j-1)が利用する書込み装置WA(j-1)から出力された処理済みデータPD(j-1)から一意に定まる履歴データH(j-1)を格納する履歴データ記憶部と、
    前記書込み者W(j)が生成した新たな差分データD(j)を格納する第2差分データ記憶部と、
    前記履歴データH(j-1)及び前記差分データD(j)を含むオブジェクトデータOB(j)を、設定された1以上の読取者R(ac(j))(ac(j)∈{1,...,M})の各第1復号鍵DKO(ac(j))で復号可能なように暗号化し、暗号化オブジェクトデータCO(j)を生成する第2オブジェクトデータ暗号化部と、
    前記暗号化オブジェクトデータCO(j)を含む処理済みデータPD(j)を出力する第2出力部と、を含み、
    前記ストレージ装置は、前記書込み装置WA(n)から出力された各処理済みデータPD(n)を格納し、
    前記読取装置RA(m)は、
    前記読取装置RA(m)をそれぞれ利用する読取者R(m)の第1復号鍵DKO(m)を格納する鍵記憶部と、
    前記処理済みデータPD(n)が入力される入力部と、
    前記鍵記憶部に格納された前記第1復号鍵DKO(m)を用い、入力された前記処理済みデータPD(n)が含む暗号化オブジェクトデータCO(n)を復号するオブジェクトデータ復号部と、
    前記オブジェクトデータ復号部で、前記履歴データH(j-1)及び前記差分データD(j)を含むオブジェクトデータOB(j)が得られた場合に、得られた前記履歴データH(j-1)が、前記入力部に入力された処理済みデータPD(j-1)から一意に定まるものであるか否かを判定する履歴データ検証部と、
    前記オブジェクトデータ復号部で得られたオブジェクトデータOB(1)が含む差分データD(1)と、前記履歴データ検証部で前記処理済みデータPD(j-1)から一意に定まるものであると判定された前記履歴データH(j-1)を含む前記オブジェクトデータOB(j)が含む前記差分データD(j)と、からなる集合に属する要素の少なくとも一部を用いて読取データを生成して出力する読取データ生成部と、を含む、
    ことを特徴とするデータ編集システム。
  2. 請求項1のデータ編集システムであって、
    前記書込み装置WA(1)は、さらに、前記書込み者W(1)を特定するための書込み者データを、設定された1以上の読取者R(pr(1))(pr(1)∈{1,...,M})の各第2復号鍵DKW(pr(1))で復号可能なように暗号化し、暗号化書込み者データCW(1)を生成する第1書込み者データ暗号化部を含み、
    前記処理済みデータPD(1)は、さらに、前記暗号化書込み者データCW(1)を含み、
    前記書込み装置WA(j)は、さらに、前記書込み者W(j)を特定するための書込み者データを、設定された1以上の読取者R(pr(j))(pr(j)∈{1,...,M})の各第2復号鍵DKW(pr(j))で復号可能なように暗号化し、暗号化書込み者データCW(j)を生成する第2書込み者データ暗号化部を含み、
    前記処理済みデータPD(j)は、さらに、前記暗号化書込み者データCW(j)を含み、
    前記読取装置RA(m)の前記鍵記憶部は、さらに、前記読取装置RA(m)をそれぞれ利用する読取者R(m)の第2復号鍵DKW(m)を格納し、
    前記読取装置RA(m)は、さらに、前記第2復号鍵DKW(m)を用い、入力された前記処理済みデータPD(n)が含む暗号化書込み者データCW(n)を復号する書込み者データ復号部を含む、
    ことを特徴とするデータ編集システム。
  3. 請求項2のデータ編集システムであって、
    前記読取装置RA(m)は、さらに、前記書込み者データ復号部で何れかの書込み者W(n)を特定するための書込み者データが得られた場合に、前記書込み者データ復号部で得られた書込み者データによって特定される前記書込み者W(n)が、設定された1以上の書込み者W(pe(m))(pe(m)∈{1,...,N})に含まれるか否かを判定する受け入れ判定部を有し、
    前記読取データ生成部は、設定された1以上の書込み者W(pe(m))に含まれない書込み者W(n)が生成したと判定された前記差分データD(n)を用いることなく前記読取データを生成する、
    ことを特徴とするデータ編集システム。
  4. 請求項2又は3のデータ編集システムであって、
    前記書込み装置WA(1)は、さらに、前記暗号化オブジェクトデータCO(1)に対する、書込み者W(1)の電子署名SIG(1)を生成する第1電子署名部を有し、
    前記処理済みデータPD(1)は、さらに、前記電子署名SIG(1)を含み、
    前記書込み装置WA(j)は、さらに、前記暗号化オブジェクトデータCO(j)に対する、書込み者W(j)の電子署名SIG(j)を生成する第2電子署名部を有し、
    前記処理済みデータPD(j)は、さらに、前記電子署名SIG(j)を含み、
    前記読取装置RA(m)は、前記書込み者データ復号部で何れかの書込み者W(n)を特定するための書込み者データが得られた場合に、前記入力部に入力された前記処理済みデータPD(n)が含む電子署名SIG(n)が、前記入力部に入力された前記処理済みデータPD(n)が含む暗号化オブジェクトデータCO(n)に対する、前記書込み者データ復号部で得られた書込み者データによって特定される前記書込み者W(n)の正しい電子署名であるか否かを判定する署名検証部をさらに有し、
    前記読取データ生成部は、前記署名検証部で正しい電子署名でないと判定された前記電子署名SIG(n)に対応する前記暗号化オブジェクトデータCO(n)を復号して得られた前記差分データD(n)を用いることなく前記読取データを生成する、
    ことを特徴とするデータ編集システム。
  5. 書込み者W(n)(n∈{1,...,N}, N≧2)の何れかが利用する書込み装置であって、
    書込み者W(j-1)が利用する書込み装置WA(j-1)から出力された処理済みデータPD(j-1)(j∈{2,...,N})から一意に定まる履歴データH(j-1)を格納する履歴データ記憶部と、
    書込み者W(j)が生成した新たな差分データD(j)を格納する差分データ記憶部と、
    前記履歴データH(j-1)及び前記差分データD(j)を含むオブジェクトデータOB(j)を、設定された1以上の読取者R(ac(j))(ac(j)∈{1,...,M}, M≧2)の各第1復号鍵DKO(ac(j))で復号可能なように暗号化し、暗号化オブジェクトデータCO(j)を生成するオブジェクトデータ暗号化部と、
    前記暗号化オブジェクトデータCO(j)を含む処理済みデータPD(j)を出力する出力部と、を有する書込み装置。
  6. 請求項5の書込み装置であって、
    前記書込み者W(j)を特定するための書込み者データを、設定された1以上の読取者R(pr(j))(pr(j)∈{1,...,M})の各第2復号鍵DKW(pr(j))で復号可能なように暗号化し、暗号化書込み者データCW(j)を生成する第2書込み者データ暗号化部をさらに有し、
    前記処理済みデータPD(j)は、さらに、前記暗号化書込み者データCW(j)を含む、
    ことを特徴とする書込み装置。
  7. 請求項6の書込み装置であって、
    前記書込み装置WA(j)は、さらに、前記暗号化オブジェクトデータCO(j)に対する、書込み者W(j)の電子署名SIG(j)を生成する第2電子署名部を有し、
    前記処理済みデータPD(j)は、さらに、前記電子署名SIG(j)を含む、
    ことを特徴とする書込み装置。
  8. 読取者R(m)(m∈{1,...,M}, M≧2)の何れかが利用する読取装置であって、
    前記読取者R(m)の第1復号鍵DKO(m)を格納する鍵記憶部と、
    処理済みデータPD(n)(n∈{1,...,N}, N≧2)が入力される入力部と、
    前記鍵記憶部に格納された前記第1復号鍵DKO(m)を用い、入力された前記処理済みデータPD(n)が含む暗号化オブジェクトデータCO(n)を復号するオブジェクトデータ復号部と、
    前記オブジェクトデータ復号部で履歴データH(j-1)及び差分データD(j)を含むオブジェクトデータOB(j)が得られた場合に、得られた前記履歴データH(j-1)が、前記入力部に入力された処理済みデータPD(j-1)から一意に定まるものであるか否かを判定する履歴データ検証部と、
    前記オブジェクトデータ復号部で得られたオブジェクトデータOB(1)が含む差分データD(1)と、前記履歴データ検証部で前記処理済みデータPD(j-1)から一意に定まるものであると判定された前記履歴データH(j-1)を含む前記オブジェクトデータOB(j)が含む前記差分データD(j)と、からなる集合に属する要素の少なくとも一部を用いて読取データを生成して出力する読取データ生成部と、
    を有する読取装置。
  9. 請求項8の読取装置であって、
    前記鍵記憶部は、さらに、前記読取者R(m)の第2復号鍵DKW(m)を格納し、
    当該読取装置は、さらに、前記第2復号鍵DKW(m)を用い、入力された前記処理済みデータPD(n)が含む暗号化書込み者データCW(n)を復号する書込み者データ復号部を有する、
    ことを特徴とする読取装置。
  10. 請求項9の読取装置であって、
    前記読取装置RA(m)は、さらに、前記書込み者データ復号部で何れかの書込み者W(n)を特定するための書込み者データが得られた場合に、前記書込み者データ復号部で得られた書込み者データによって特定される前記書込み者W(n)が、設定された1以上の書込み者W(pe(m))(pe(m)∈{1,...,N})に含まれるか否かを判定する受け入れ判定部を有し、
    前記読取データ生成部は、設定された1以上の書込み者W(pe(m))に含まれる書込み者W(n)が生成したと判定された前記差分データD(n)を用いることなく前記読取データを生成する、
    ことを特徴とする読取装置。
  11. 請求項9又は10の読取装置であって、
    前記書込み者データ復号部で何れかの書込み者W(n)を特定するための書込み者データが得られた場合に、前記入力部に入力された前記処理済みデータPD(n)が含む電子署名SIG(n)が、前記入力部に入力された前記処理済みデータPD(n)が含む暗号化オブジェクトデータCO(n)に対する、前記書込み者データ復号部で得られた書込み者データによって特定される前記書込み者W(n)の正しい電子署名であるか否かを判定する署名検証部をさらに有し、
    前記読取データ生成部は、前記署名検証部で正しい電子署名でないと判定された前記電子署名SIG(n)に対応する前記暗号化オブジェクトデータCO(n)を復号して得られた前記差分データD(n)を用いることなく前記読取データを生成する、
    ことを特徴とする読取装置。
  12. ストレージ装置と、各書込み者W(n)(n∈{1,...,N}, N≧2)がそれぞれ利用する書込み装置WA(n)と、各読取者R(m)(m∈{1,...,M}, M≧2)がそれぞれ利用する読取装置RA(m)と、を有するデータ編集システムのデータ編集方法であって、
    (a-1) データを新規作成する書込み者W(1)が利用する書込み装置WA(1)の第1差分データ記憶部に、前記書込み者W(1)が生成した新規作成データである差分データD(1)を格納するステップと、
    (a-2) 前記書込み装置WA(1)の第1オブジェクトデータ暗号化部が、前記差分データD(1)を含むオブジェクトデータOB(1)を、設定された1以上の読取者R(ac(1))(ac(1)∈{1,...,M})の各第1復号鍵DKO(ac(1))で復号可能なように暗号化し、暗号化オブジェクトデータCO(1)を生成するステップと、
    (a-3) 前記書込み装置WA(1)の第1出力部が、前記暗号化オブジェクトデータCO(1)を含む処理済みデータPD(1)を前記ストレージ装置に出力するステップと、
    (b-1) データ編集を行う各書込み者W(j)(j∈{2,...,N})がそれぞれ利用する書込み装置WA(j)の履歴データ記憶部に、書込み者W(j-1)が利用する書込み装置WA(j-1)から出力された処理済みデータPD(j-1)から一意に定まる履歴データH(j-1)を格納するステップと、
    (b-2) 前記書込み装置WA(j)の第2差分データ記憶部に、前記書込み者W(j)が生成した新たな差分データD(j)を格納するステップと、
    (b-3) 前記書込み装置WA(j)の第2オブジェクトデータ暗号化部が、前記履歴データH(j-1)及び前記差分データD(j)を含むオブジェクトデータOB(j)を、設定された1以上の読取者R(ac(j))(ac(j)∈{1,...,M})の各第1復号鍵DKO(ac(j))で復号可能なように暗号化し、暗号化オブジェクトデータCO(j)を生成するステップと、
    (b-4) 前記書込み装置WA(j)の第2出力部が、前記暗号化オブジェクトデータCO(j)を含む処理済みデータPD(j)を前記ストレージ装置に出力するステップと、
    (c-1) 前記読取装置RA(m)の入力部に、前記処理済みデータPD(n)が入力されるステップと、
    (c-2) 前記読取装置RA(m)のオブジェクトデータ復号部が、読取者R(m)の第1復号鍵DKO(m)を用い、入力された前記処理済みデータPD(n)が含む暗号化オブジェクトデータCO(n)を復号するステップと、
    (c-3) 前記読取装置RA(m)の履歴データ検証部が、前記ステップ(c-2)で前記履歴データH(j-1)及び前記差分データD(j)を含むオブジェクトデータOB(j)が得られた場合に、得られた前記履歴データH(j-1)が、前記入力部に入力された処理済みデータPD(j-1)から一意に定まるものであるか否かを判定するステップと、
    (c-4) 前記ステップ(c-2)で得られたオブジェクトデータOB(1)が含む差分データD(1)と、前記ステップ(c-3)で前記処理済みデータPD(j-1)から一意に定まるものであると判定された前記履歴データH(j-1)を含む前記オブジェクトデータOB(j)が含む前記差分データD(n)と、からなる集合に属する要素の少なくとも一部を用いて読取データを生成して出力するステップと、
    を有するデータ編集方法。
JP2009238962A 2009-10-16 2009-10-16 データ編集システム、書込み装置、読取装置及びデータ編集方法 Expired - Fee Related JP5366755B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009238962A JP5366755B2 (ja) 2009-10-16 2009-10-16 データ編集システム、書込み装置、読取装置及びデータ編集方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009238962A JP5366755B2 (ja) 2009-10-16 2009-10-16 データ編集システム、書込み装置、読取装置及びデータ編集方法

Publications (2)

Publication Number Publication Date
JP2011087150A JP2011087150A (ja) 2011-04-28
JP5366755B2 true JP5366755B2 (ja) 2013-12-11

Family

ID=44079773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009238962A Expired - Fee Related JP5366755B2 (ja) 2009-10-16 2009-10-16 データ編集システム、書込み装置、読取装置及びデータ編集方法

Country Status (1)

Country Link
JP (1) JP5366755B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023145240A1 (ja) * 2022-01-27 2023-08-03 株式会社Nttドコモ 情報処理装置および情報処理システム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3173352B2 (ja) * 1995-11-15 2001-06-04 株式会社日立製作所 ディジタル著作物流通システム
JPH10260902A (ja) * 1997-03-18 1998-09-29 Fujitsu Ltd 情報保護方法
JP2005109661A (ja) * 2003-09-29 2005-04-21 Fuji Xerox Co Ltd 情報復号方法および装置並びにプログラム、暗号化情報作成方法および装置並びにプログラム、暗号化情報、文書編集方法および装置並びにプログラム
JP4423227B2 (ja) * 2005-04-25 2010-03-03 日本電信電話株式会社 プロファイル発行システム
JP2009284138A (ja) * 2008-05-21 2009-12-03 Fuji Xerox Co Ltd 文書処理装置および文書処理プログラム

Also Published As

Publication number Publication date
JP2011087150A (ja) 2011-04-28

Similar Documents

Publication Publication Date Title
Li et al. Multi-authority fine-grained access control with accountability and its application in cloud
Li et al. Full verifiability for outsourced decryption in attribute based encryption
Wang et al. Ciphertext-policy attribute-based encryption with delegated equality test in cloud computing
Liang et al. Attribute based proxy re-encryption with delegating capabilities
Kumar et al. Secure storage and access of data in cloud computing
KR101418254B1 (ko) 암호 시스템, 암호 통신 방법, 암호화 장치, 키 생성 장치, 복호 장치, 콘텐츠 서버 장치, 프로그램, 기억매체
JP5253567B2 (ja) 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体
JP5291795B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、セキュリティ方法、プログラム及び記録媒体
JP5562475B2 (ja) 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム
JP5379914B2 (ja) 秘密分散システム、分散装置、分散管理装置、取得装置、秘密分散方法、プログラム、及び記録媒体
JP5466763B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、プログラム、及び記録媒体
Zhou et al. Privacy-preserved access control for cloud computing
Fang et al. Privacy protection for medical data sharing in smart healthcare
WO2012057134A1 (ja) 代理計算システム、計算装置、能力提供装置、代理計算方法、能力提供方法、プログラム、及び記録媒体
US20120163588A1 (en) Functional encryption applied system, information output apparatus, information processing apparatus, encryption protocol execution method, information output method, information processing method, program and recording medium
JP5400740B2 (ja) 検索可能暗号システム、検索可能暗号方法、ストレージ装置、検索装置、及び登録者装置
Ye et al. Controllable keyword search scheme supporting multiple users
Wang et al. Efficient privacy preserving predicate encryption with fine-grained searchable capability for Cloud storage
Pervez et al. SAPDS: self-healing attribute-based privacy aware data sharing in cloud
Katz et al. Tracing insider attacks in the context of predicate encryption schemes
JP2010160235A (ja) 検索システム、端末装置、データベース装置、検索方法及びプログラム
Sepehri et al. Secure Data Sharing in Cloud Usingan Efficient Inner-Product ProxyRe-Encryption Scheme.
Sepehri et al. Secure and efficient data sharing with atribute-based proxy re-encryption scheme
JP5366755B2 (ja) データ編集システム、書込み装置、読取装置及びデータ編集方法
JP5486519B2 (ja) 検索システム、判定装置、ベクトル構成装置、その方法及びプログラム

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110721

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120307

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130910

R150 Certificate of patent or registration of utility model

Ref document number: 5366755

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees