JP7124282B2 - 情報処理装置及び情報処理プログラム - Google Patents

情報処理装置及び情報処理プログラム Download PDF

Info

Publication number
JP7124282B2
JP7124282B2 JP2017183336A JP2017183336A JP7124282B2 JP 7124282 B2 JP7124282 B2 JP 7124282B2 JP 2017183336 A JP2017183336 A JP 2017183336A JP 2017183336 A JP2017183336 A JP 2017183336A JP 7124282 B2 JP7124282 B2 JP 7124282B2
Authority
JP
Japan
Prior art keywords
data
identifier
privileged
public
information processing
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.)
Active
Application number
JP2017183336A
Other languages
English (en)
Other versions
JP2019060920A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation 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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2017183336A priority Critical patent/JP7124282B2/ja
Publication of JP2019060920A publication Critical patent/JP2019060920A/ja
Application granted granted Critical
Publication of JP7124282B2 publication Critical patent/JP7124282B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報処理装置及び情報処理プログラムに関する。
特許文献1には、代表的なピアツーピアネットワークにおいては、ピアツーピアネットワークのユーザーはだれでもキー及びそのキーに関連する値の検索を要求することができることを課題とし、格納されたキー値ペアへのアクセスを制限するために、ユーザーノードはピアツーピアネットワークにおけるキー値ペアを、そのキー値ペアへのアクセスを許可されたユーザーノードをリストアップしたアクセスリストと関連させて登録することができ、アクセスリストには、1つ又は複数の取出し識別子を含めることができ、情報をさらにセキュアにするために、取出し識別子及び/又はペイロードは暗号化することができ、取出しユーザーが暗号化されたペイロードを復号することを可能にするために、格納されたキー値ペアに関連するグループキーを用いてペイロードを暗号化することができ、グループキーは、取出しユーザーにとって既知のキーを用いて暗号化できることが開示されている。
特開2006-236349号公報
通信回線を介して接続されているサーバー(クラウドであってもよい)に、データを記憶させる場合、データそのものを記憶させると、そのサーバーの管理者にデータの内容を知られてしまう可能性がある。そこで、データを暗号化した場合、記憶するデータの重複排除を行うことは困難である。
本発明は、記憶するデータの重複排除を行うことができる情報処理装置及び情報処理装プログラムを提供することを目的としている。
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
発明(1)は、データに対して特権識別子と公開識別子と暗号化データを生成する生成手段と、公開可能な記憶装置に、前記公開識別子で前記暗号化データをアクセスできるように保存する第1の保存手段と、前記特権識別子で前記公開識別子をアクセスできるように秘密裡に保存する第2の保存手段を有し、前記生成手段は、前記特権識別子を、前記データに対してハッシュ関数を用いて生成し、前記暗号化データを、前記特権識別子と前記データに対して暗号化関数を用いて生成し、前記公開識別子を、前記暗号化データに対してハッシュ関数用いて生成する、情報処理装置である。
発明(2)は、前記記憶装置から、前記公開識別子から前記暗号化データを取得する取得手段と、前記暗号化データを、前記特権識別子を用いて復号する復号手段をさらに有する(1)に記載の情報処理装置である。
発明(3)は、前記データの取得要求を外部装置から受けた場合は、該外部装置に、前記特権識別子と前記公開識別子を送信する送信手段をさらに有する(1)に記載の情報処理装置である。
発明(4)は、前記データを廃棄する場合は、該データに対応する特権識別子と公開識別子を削除する削除手段をさらに有する(1)に記載の情報処理装置である。
発明(5)は、前記生成手段は、特権識別子と公開識別子の複数の組をデータとして、特権識別子と公開識別子と暗号化データを生成する、(1)に記載の情報処理装置である。
発明(6)は、前記生成手段は、予め定められた期間より長く又は以上、使用されていない特権識別子と公開識別子の複数の組を対象として、特権識別子と公開識別子と暗号化データを生成する、(5)に記載の情報処理装置である。
発明(7)は、コンピュータを、データに対して特権識別子と公開識別子と暗号化データを生成する生成手段と、公開可能な記憶装置に、前記公開識別子で前記暗号化データをアクセスできるように保存する第1の保存手段と、前記特権識別子で前記公開識別子をアクセスできるように秘密裡に保存する第2の保存手段として機能させ、前記生成手段は、前記特権識別子を、前記データに対してハッシュ関数を用いて生成し、前記暗号化データを、前記特権識別子と前記データに対して暗号化関数を用いて生成し、前記公開識別子を、前記暗号化データに対してハッシュ関数用いて生成する、情報処理プログラムである。
(1)の情報処理装置によれば、記憶するデータの重複排除を行うことができる。
(2)の情報処理装置によれば、公開識別子から取得した暗号化データを、特権識別子を用いて復号することができる。
(3)の情報処理装置によれば、データの取得要求を行った外部装置に、特権識別子と公開識別子を送信することができる。
(4)の情報処理装置によれば、データを廃棄することができる。
(5)の情報処理装置によれば、特権識別子と公開識別子の複数の組をデータとして、特権識別子と公開識別子と暗号化データを生成することができる。
(6)の情報処理装置によれば、使用されていない特権識別子と公開識別子の複数の組を対象として、特権識別子と公開識別子と暗号化データを生成することができる。
(7)の情報処理プログラムによれば、記憶するデータの重複排除を行うことができる。
本実施の形態の構成例についての概念的なモジュール構成図である。 本実施の形態を利用したシステム構成例を示す説明図である。 記憶装置側データテーブルのデータ構造例を示す説明図である。 デバイス側データテーブルのデータ構造例を示す説明図である。 デバイス側データテーブルのデータ構造例を示す説明図である。 暗号化データテーブルのデータ構造例を示す説明図である。 公開識別子データテーブルのデータ構造例を示す説明図である。 本実施の形態による処理例を示すフローチャートである。 本実施の形態による処理例を示すフローチャートである。 本実施の形態による処理例を示すフローチャートである。 本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、全ての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。また、「A、B、C」等のように事物を列挙した場合は、断りがない限り例示列挙であり、その1つのみを選んでいる場合(例えば、Aのみ)を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
本実施の形態である情報処理装置100は、サーバーに記憶させるデータの重複排除を行うことができるものであって、図1の例に示すように、データ制御モジュール105、通信モジュール150を有している。
データ制御モジュール105は、データ受付モジュール110、生成モジュール115、保存(A)モジュール120、保存(B)モジュール125、データ記憶モジュール130、取得モジュール135、復号モジュール140、出力モジュール145を有しており、通信モジュール150と接続されている。データ制御モジュール105は、データの制御を行う。特に、データの記憶、アクセスに関する処理を行う。
データ受付モジュール110は、対象となるデータ(以下、データチャンク(1個以上のデータ群)ともいう)を受け付ける。例えば、通信モジュール150を介して、他の外部装置(例えば、図2を用いて後述するデバイス210(他の情報処理装置100を有しているデバイス210))からデータを受け付けてもよいし、USBメモリ等の記憶媒体からデータを読み込んでもよいし、キーボード等のユーザーインタフェースを介してデータを受け付けてもよい。
生成モジュール115は、データ受付モジュール110が受け付けたデータに対して特権識別子と公開識別子と暗号化データを生成する。
生成モジュール115は、以下のように、特権識別子、暗号化データ、公開識別子を生成する。
(1)特権識別子を、データに対してハッシュ関数を用いて生成する。
(2)暗号化データを、特権識別子とデータに対して暗号化関数を用いて生成する。
(3)公開識別子を、暗号化データに対してハッシュ関数を用いて生成する。
なお、同じデータであれば、同じハッシュ値になり、公開識別子と暗号化データも同じになるので、重複排除を行うことができる。
データのハッシュ値そのものを利用して暗号化を行っているので、データのハッシュ値を鍵として利用しない場合に比べて、鍵の管理も容易になる。
また、生成モジュール115は、特権識別子と公開識別子の複数の組をデータとして、特権識別子と公開識別子と暗号化データを生成するようにしてもよい。つまり、データアーカイブ方法として、ローカルである情報処理装置100には多数の(特権識別子、公開識別子)の組が保存されている場合、これ自体の(特権識別子、公開識別子)を生成し、暗号化データを記憶装置250に保存することで、事後的にアーカイブされたデータを復元できる。
さらに、生成モジュール115は、予め定められた期間より長く又は以上、使用されていない特権識別子と公開識別子の複数の組を対象として、特権識別子と公開識別子と暗号化データを生成するようにしてもよい。つまり、自動的なコンパクションを行うものである。この場合、(特権識別子、公開識別子)の組のうち、使われていなかったものをまとめて、アーカイブする。アーカイブされてしまった特権識別子は見つからなくなってしまうので、重畳されたアーカイブから、必要な特権識別子を効率的に探し出す方法として、ブルームフィルタ(Bloom Filter)を利用してもよい。
保存(A)モジュール120は、公開可能な記憶装置(例えば、図2を用いて後述する記憶装置250)に、公開識別子で暗号化データをアクセスできるように保存する。
ここで「公開識別子で暗号化データをアクセスできるように保存する」として、例えば、公開識別子と暗号化データとを対応させて記憶するテーブルを生成すればよい。
保存(B)モジュール125は、データ記憶モジュール130と接続されている。保存(B)モジュール125は、特権識別子で公開識別子をアクセスできるように秘密裡にデータ記憶モジュール130に保存する。
ここで「特権識別子で公開識別子をアクセスできるように秘密裡に保存する」として、例えば、特権識別子と公開識別子とを対応させて記憶するテーブルを生成し、そのテーブルを秘密裡に記憶すればよい。「秘密裡に」として、他者からアクセスできないようにしていればよく、例えば、TPM(Trusted Platform Module)セキュリティチップを用いてもよいし、そのテーブルを暗号化してもよい。
また、保存(B)モジュール125は、データを廃棄する場合は、そのデータに対応する特権識別子と公開識別子の組み合わせを削除するようにしてもよい。つまり、ローカルである情報処理装置100には(特権識別子、公開識別子)の組(ペア)が保存されているが、この組を削除するだけで、リモートストレージである情報処理装置100に保存された暗号化データを利用することはできなくなるので、早急にデータを廃棄することが可能になる。
データ記憶モジュール130は、保存(B)モジュール125と接続されている。データ記憶モジュール130は、保存(B)モジュール125の処理によって、特権識別子で公開識別子をアクセスできるように保存する。ここでの保存は、秘密裡に行われるが、前述したように、他者からアクセスできないようにしていればよい。ローカルである情報処理装置100のストレージであるデータ記憶モジュール130にも、(特権識別子、生データ)の形では保存せず、(特権識別子、公開識別子)の形で保存しておき、生データはレンダリング時に安全に生成するようにしてもよい。例えば、保護されたメモリ内でのみ復号されるようにしてもよい。
取得モジュール135は、記憶装置(例えば、図2を用いて後述する記憶装置250)から、公開識別子から暗号化データを取得する。
復号モジュール140は、取得モジュール135が取得した暗号化データを、特権識別子を用いて復号する。
出力モジュール145は、データの取得要求を外部装置(例えば、図2を用いて後述するデバイス210(他の情報処理装置100を有しているデバイス210))から受け付けた場合は、その外部装置に、そのデータに対応する特権識別子と公開識別子を送信する。
通信モジュール150は、データ制御モジュール105と接続されている。通信モジュール150は、例えば、図2を用いて後述するデバイス210(他の情報処理装置100を有しているデバイス210)、記憶装置250と通信を行う。例えば、デバイス210、記憶装置250との間で、対象となるデータ、公開識別子等の送受信を行ってもよい。例えば、暗号化データの転送は並列に処理できる。データチャンク間に依存関係がない(独立している)ためである。そして、暗号化データの格納場所は分散できる。識別子は格納場所には依存しないためである。これらによって、データ格納の効率化・ロバスト化を図ることができる。
図2は、本実施の形態を利用したシステム構成例を示す説明図である。
デバイス210Aは、情報処理装置100Aを有している。デバイス210Bは、情報処理装置100Bを有している。デバイス210Cは、情報処理装置100Cを有している。デバイス210として、データの処理(生成、取得等)を行うものであればよく、例えば、PC(パーソナルコンピュータ)、携帯情報通信機器、情報家電、ロボット、画像処理装置等がある。
デバイス210A、デバイス210B、デバイス210C、記憶装置250A、記憶装置250Bは、通信回線290を介してそれぞれ接続されている。通信回線290は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット、イントラネット等であってもよい。また、公開されている記憶装置250による機能は、クラウドサービスとして実現してもよい。
例えば、IOT(Internet Of Things)、ビックデータ化等によって、記憶するデータは大規模化してきている。データストアの容量は増えるが、記憶装置(記憶媒体)のコストは安くなる傾向はある。
また、二度と使わないかもしれないが、必要になれば参照したいデータがある。つまり、データが再利用されるか、塩漬けにされるか(二度と使われないか)は事前には計画できない。
一方、頻繁に利用するデータは素早くアクセスしたい。そして、デバイス210内のローカルなストレージには容量の限界がある。
そこで、データの識別子でデータ内容を同定したい。つまり異なるデータは異なる識別子を持つようにしたい。
つまり、コンテンツのハッシュ値を識別子とするデータストアについて、必要性が高まっている。
デバイス210のローカルストレージが溢れないようにするために、データチャンクを記憶装置250側に移行させる。
このとき、データチャンクをそのまま記憶装置250側に保存すると、記憶装置250の管理者にデータチャンクの内容が知られてしまうおそれがある。
そこで、記憶装置250側にデータチャンクを保存するときに暗号化することが考えられる。しかし、以下の2点が問題になる。
・暗号化(又は復号)する際の鍵の管理(つまり、データと鍵の紐付け管理を複雑化させたくない)
・データの効率的な保存(つまり、重複排除やキャッシュ制御)
コンテンツハッシュ型(つまり、ハッシュ値をキーとして、そのハッシュ値を持つデータを取り出せるもの)のデータストアを前提として、記憶装置250には暗号化されたデータが登録される。なお、記憶装置250には暗号化されたデータのみが登録されるようにしてもよい。
元データのハッシュ値(これを特権識別子(privid)と呼ぶ)を暗号鍵として元データを暗号化したもののハッシュ値(これを公開識別子(publid)と呼ぶ)という二種類のコンテンツハッシュを利用する。
・公開識別子を公開し、それに対応する特権識別子を知るユーザー(仲間といえるユーザー)に特権識別子を教えてもらうことによって、データを復元(回復)する。
・「データへのアクセス」をデータ自体から決定される「データを特定する識別子」と「データを復元する識別子」のペアに分解する。
ここで「データ自体から決定される」ため、「鍵の管理」と「データの効率的な保存」が両立して満たされる。
生成モジュール115が行う処理について、詳細に説明する。
基本的な関数として、次の2つを用いる。
(1)h:ハッシュ関数(hash function)
(2)e:暗号化関数(encipher function)
なお、ハッシュ関数、暗号化関数として用いられるものであれば、既存の関数であってよい。
諸量として、次の4つを用いる。
(1)M:データチャンク(対象とするデータである)
(2)s:h(M)データチャンクのハッシュ値(特権識別子)
(3)C:e(s, M)暗号化されたデータチャンク(暗号化データ)
(4)p:h(C)暗号化されたデータチャンクのハッシュ値(公開識別子)
名称として、次の2つを用いる。
(1)publid:データチャンクの公開識別子(上記のp)
(2)privid:データチャンクの特権識別子(上記のs)
記憶装置250側のデータストアでは、次の2つの処理(関数)が行われる。
(1)bind(C):データチャンクCを送信すると保存される。
(2)resolve(p):データチャンクのハッシュ値pで、対応するデータチャンクを取得できる。
記憶装置250では、例えば、記憶装置側データテーブル300を記憶して、pとCを管理している。つまり、公開可能な記憶装置250では、p(公開識別子)でC(暗号化データ)をアクセスできるように保存されている。記憶装置250は、例えば、記憶装置側データテーブル300を記憶している。図3は、記憶装置側データテーブル300のデータ構造例を示す説明図である。記憶装置側データテーブル300は、key欄310、value欄320を有している。key欄310は、keyを記憶している。value欄320は、valueを記憶している。つまり、key欄310に、pを記憶し、value欄320にそのpに対応するCを記憶する。したがって、記憶装置250に記憶されるデータは、全て暗号化されていることになる。
デバイス210では、例えば、デバイス側データテーブル400又はデバイス側データテーブル500を記憶して、sとM又はsとpを管理している。つまり、デバイス側データテーブル400でsとMを管理する場合は、sでデータ(生のデータ、暗号化されていないデータ)であるMをアクセスできるようにしている。デバイス側データテーブル500sとpを管理する場合は、sで公開識別子であるpをアクセスできるようにしている。
図4は、デバイス側データテーブル400のデータ構造例を示す説明図である。デバイス側データテーブル400は、key欄410、value欄420を有している。key欄410は、keyを記憶している。value欄420は、valueを記憶している。つまり、key欄410に、sを記憶し、value欄420にそのsに対応するMを記憶する。
図5は、デバイス側データテーブル500のデータ構造例を示す説明図である。デバイス側データテーブル500は、key欄510、value欄520を有している。key欄510は、keyを記憶している。value欄520は、valueを記憶している。つまり、key欄510に、sを記憶し、value欄520にそのsに対応するpを記憶する。
なお、デバイス側データテーブル400とデバイス側データテーブル500を統合してもよい。つまり、sでM又はpをアクセスできるようにしてもよい。
暗号化データを保持するチャンクストアとして、例えば、暗号化データテーブル600がある。なお、暗号化データのみを保持するチャンクストアとしてもよい。
図6は、暗号化データテーブル600のデータ構造例を示す説明図である。暗号化データテーブル600は、key欄610、value欄620を有している。key欄610は、keyを記憶している。value欄620は、valueを記憶している。つまり、key欄610に、pを記憶し、value欄620にそのpに対応するCを記憶する。
公開識別子を保持する参照ストアとして、例えば、公開識別子データテーブル700がある。なお、公開識別子のみを保持する参照ストアとしてもよい。
図7は、公開識別子データテーブル700のデータ構造例を示す説明図である。公開識別子データテーブル700は、key欄710、value欄720を有している。key欄710は、keyを記憶している。value欄720は、valueを記憶している。つまり、key欄710に、sを記憶し、value欄720にそのsに対応するpを記憶する。
デバイス210(情報処理装置100)は、以下に示すような同期処理を行う。
・データチャンクは、情報処理装置100の内部で、特権識別子で管理される(例えば、図4の例に示したデバイス側データテーブル400を参照)。
・オンライン時(通信可能となっているとき)に暗号化データチャンクを記憶装置250側に送信する。
・記憶装置250側への送信に成功したとき、特権識別子に公開識別子を対応付ける(例えば、図5の例に示したデバイス側データテーブル500を参照)。
・データ削減要求を受け付けたときに、公開識別子の生成されたデータチャンクを削除する。
デバイス210(情報処理装置100)は、データチャンクに対して、公開識別子と特権識別子と暗号化データチャンクを生成し、公開識別子で暗号化データチャンクを特定できるようにする。
図8は、本実施の形態による処理例を示すフローチャートである。デバイス210(情報処理装置100)の動作を示すものである。
ステップS802では、privid(M)=h(M)を計算する。つまり、s=h(M)を計算する。データ生成に応じて、原データのハッシュ値(データのプライベート識別子)を計算し、データのプライベート識別子でそのデータを取得できるようにしておくものである。
ステップS804では、cipher(M)=e(h(M), M)を計算する。つまり、C=e(p,M)を計算する。原データをデータのプライベート識別子を暗号鍵として暗号化データを生成する。
ステップS806では、publid(M)=h(cipher(M))を計算する。つまり、p=h(C)を計算する。暗号化データのハッシュ値(データのパブリック識別子)を計算している。
ステップS808では、privid(M)とpublid(M)との対応を記憶する。つまり、データのパブリック識別子でそのデータのプライベート識別子を取得できるようにしておく。
ステップS810では、cipher(M)を記憶装置250側に転送する。
この処理によって、Mから、p、s、Cを生成している。
説明の単純化のため、以下の様なファイルシステムを想定する。
・ファイルのデータ実体は固定長(例えば64KiB)のデータチャンクの列で実装される。
・データチャンクは、固有のIDを持つ。
・ファイルシステムはパス名に対して対応するデータチャンクの列を保持している。
例えば、fooとbarという二つのファイルを含むディレクトリは以下の様に実現されている。

foo:{type:’application/json’,buf:[s0,s1,...] },
bar:{type:’text/plain’,buf:[s0,s1,...]}

ここでファイル内容bufのデータチャンクが、上で説明したデータストアに格納されている。
なお、特権識別子sの代わりに公開識別子pを使ってもよい。
また、特権識別子列[s0,s1,・・・]自体がデータチャンクの固定長を超えれば、再帰的に識別子に置き換えてもよい。
図9は、本実施の形態による処理例を示すフローチャートである。デバイス210(情報処理装置100)によるデータMの取得処理例を示すものである。つまり、データチャンクの特権識別子sでデータ取得を行うものである。
ステップS902では、sを受け付ける。
ステップS904では、sに対応するMがあるか否かを判断し、ある場合はステップS912へ進み、それ以外の場合はステップS906へ進む。つまり、生のデータチャンクがあれば、それを直接利用する(ステップS912)。生のデータチャンクがない場合、公開識別子で暗号化データチャンクを取得し、特権識別子で復号する(ステップS906~ステップS910)。
ステップS906では、sに対応するpを取得する。
ステップS908では、記憶装置250からpに対応するCを取得する。
ステップS910では、Cをsで復号する。つまり、Mを再現する。
ステップS912では、Mにアクセスする。
図10は、本実施の形態による処理例を示すフローチャートである。デバイス210Aがデバイス210Bからデータの取得要求を受けた場合の、デバイス210Aによる処理例を示したものである。つまり、信頼できる外部ノード(デバイス210B)に対しては、(特権識別子、公開識別子)ペアを渡し、復号までさせてしまうものである。これによって、データチャンクの復号を分散させることができるようになる。
ステップS1002では、デバイス210Aが、デバイス210Bからのデータ取得要求を受け付ける。
ステップS1004では、デバイス210Aが、データ取得要求を許諾するか否かを判断し、許諾する場合はステップS1006へ進み、それ以外の場合はステップS1008へ進む。この許諾するか否かの判断は、予め定められたユーザー(デバイス210)であるか否かによって判断してもよいし、アクセス制御を用いてもよいし、デバイス210Aのユーザーが判断してもよい。
ステップS1006では、デバイス210Aは、取得要求されたデータに対応する(s,p)のペアをデバイス210Bに応答する。
ステップS1008では、デバイス210Aは、デバイス210Bに許諾できない旨を応答する。
データのプリフェッチ処理として、以下のようにしてもよい。
データのダウンロードを行いたいデバイス210に、一連の公開識別子を渡し、公開データチャンクをダウンロードしておく。後で、(特権識別子、公開識別子)ペアを知ることで、リモートによって記憶装置250からデータを改めてダウンロードすることなく必要な元データを取得できる。
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、図11に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバーとなり得るコンピュータ等である。つまり、具体例として、処理部(演算部)としてCPU1101を用い、記憶装置としてRAM1102、ROM1103、HD1104を用いている。HD1104として、例えばハードディスク、SSD(Solid State Drive)を用いてもよい。データ制御モジュール105、データ受付モジュール110、生成モジュール115、保存(A)モジュール120、保存(B)モジュール125、取得モジュール135、復号モジュール140、出力モジュール145、通信モジュール150等のプログラムを実行するCPU1101と、そのプログラムやデータを記憶するRAM1102と、本コンピュータを起動するためのプログラム等が格納されているROM1103と、データ記憶モジュール130としての機能を有する補助記憶装置(フラッシュ・メモリ等であってもよい)であるHD1104と、キーボード、マウス、タッチスクリーン、マイク、カメラ(視線検知カメラ等を含む)等に対する利用者の操作(動作、音声、視線等を含む)に基づいてデータを受け付ける受付装置1106と、CRT、液晶ディスプレイ、スピーカー等の出力装置1105と、ネットワークインタフェースカード等の通信ネットワークと接続するための通信回線インタフェース1107、そして、それらをつないでデータのやりとりをするためのバス1108により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、図11に示すハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、図11に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに図11に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器(携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む)、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD-R、DVD-RW、DVD-RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD-ROM)、CDレコーダブル(CD-R)、CDリライタブル(CD-RW)等、ブルーレイ・ディスク(Blu-ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分若しくは全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
100…情報処理装置
105…データ制御モジュール
110…データ受付モジュール
115…生成モジュール
120…保存(A)モジュール
125…保存(B)モジュール
130…データ記憶モジュール
135…取得モジュール
140…復号モジュール
145…出力モジュール
150…通信モジュール
210…デバイス
250…記憶装置
290…通信回線

Claims (4)

  1. データに対して特権識別子と公開識別子と暗号化データを生成する生成手段と、
    通信回線により接続された記憶装置に、前記公開識別子と前記暗号化データとを対応させて保存する第1の保存手段と、
    本情報処理装置内の第2記憶装置に、特権識別子と公開識別子とを対応させて、TPMセキュリティチップを用いて又は該対応を暗号化して保存する第2の保存手段と、
    前記データを廃棄する場合は、該データに対応する、前記第2記憶装置内の特権識別子と公開識別子の組を削除する削除手段
    を有し、
    前記特権識別子は、暗号化関数における鍵であり、
    前記生成手段は、
    前記特権識別子として、前記データのハッシュ値を用い、
    前記暗号化データを、前記特権識別子と前記データに対して暗号化関数を用いて生成し、
    前記公開識別子を、前記暗号化データに対してハッシュ関数を用いて生成し、
    複数の特権識別子と公開識別子との対応に対して、該対応の特権識別子と公開識別子を生成する、
    情報処理装置。
  2. 前記記憶装置から、前記公開識別子に対応する前記暗号化データを取得する取得手段と、
    前記暗号化データを、前記特権識別子を用いて復号する復号手段
    をさらに有する請求項1に記載の情報処理装置。
  3. 前記データの取得要求を外部装置から受けた場合は、該外部装置に、前記特権識別子と前記公開識別子を送信する送信手段
    をさらに有する請求項1に記載の情報処理装置。
  4. コンピュータを、
    データに対して特権識別子と公開識別子と暗号化データを生成する生成手段と、
    通信回線により接続された記憶装置に、前記公開識別子と前記暗号化データとを対応させて保存する第1の保存手段と、
    本情報処理装置内の第2記憶装置に、特権識別子と公開識別子とを対応させて、TPMセキュリティチップを用いて又は該対応を暗号化して保存する第2の保存手段と、
    前記データを廃棄する場合は、該データに対応する、前記第2記憶装置内の特権識別子と公開識別子の組を削除する削除手段
    として機能させ、
    前記特権識別子は、暗号化関数における鍵であり、
    前記生成手段は、
    前記特権識別子として、前記データのハッシュ値を用い、
    前記暗号化データを、前記特権識別子と前記データに対して暗号化関数を用いて生成し、
    前記公開識別子を、前記暗号化データに対してハッシュ関数を用いて生成し、
    複数の特権識別子と公開識別子との対応に対して、該対応の特権識別子と公開識別子を生成する、
    情報処理プログラム。

JP2017183336A 2017-09-25 2017-09-25 情報処理装置及び情報処理プログラム Active JP7124282B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017183336A JP7124282B2 (ja) 2017-09-25 2017-09-25 情報処理装置及び情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017183336A JP7124282B2 (ja) 2017-09-25 2017-09-25 情報処理装置及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2019060920A JP2019060920A (ja) 2019-04-18
JP7124282B2 true JP7124282B2 (ja) 2022-08-24

Family

ID=66176566

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017183336A Active JP7124282B2 (ja) 2017-09-25 2017-09-25 情報処理装置及び情報処理プログラム

Country Status (1)

Country Link
JP (1) JP7124282B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003508995A (ja) 1999-09-07 2003-03-04 イーエムシー・コーポレーション 内容が参照可能な情報を、安全に記憶し転送し検索するためのシステムおよび方法
JP2009225437A (ja) 2008-02-01 2009-10-01 Seagate Technology Llc 記憶データの安全な処分
US20150143112A1 (en) 2013-10-18 2015-05-21 Robert Bosch Gmbh System and method for dynamic, non-interactive, and parallelizable searchable symmetric encryption
JP2017503191A (ja) 2014-01-15 2017-01-26 インテル・コーポレーション 重複排除に基づくデータセキュリティ

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003508995A (ja) 1999-09-07 2003-03-04 イーエムシー・コーポレーション 内容が参照可能な情報を、安全に記憶し転送し検索するためのシステムおよび方法
JP2009225437A (ja) 2008-02-01 2009-10-01 Seagate Technology Llc 記憶データの安全な処分
US20150143112A1 (en) 2013-10-18 2015-05-21 Robert Bosch Gmbh System and method for dynamic, non-interactive, and parallelizable searchable symmetric encryption
JP2017503191A (ja) 2014-01-15 2017-01-26 インテル・コーポレーション 重複排除に基づくデータセキュリティ

Also Published As

Publication number Publication date
JP2019060920A (ja) 2019-04-18

Similar Documents

Publication Publication Date Title
US9740639B2 (en) Map-based rapid data encryption policy compliance
US8300823B2 (en) Encryption and compression of data for storage
JP5196883B2 (ja) 情報セキュリティ装置および情報セキュリティシステム
EP3103048B1 (en) Content item encryption on mobile devices
EP2751735B1 (en) Encrypted chunk-based rapid data encryption policy compliance
JPWO2009004732A1 (ja) 共有暗号ファイルの暗号化、復号処理方法
EP3000071A1 (en) Data protection for organizations on computing devices
US10698940B2 (en) Method for searching for multimedia file, terminal device, and server
KR101979267B1 (ko) 클라우드 저장 기반 암호화 시스템 및 방법
CN105095785A (zh) 分布式文件系统的文件访问处理、访问方法及装置
CN110784302A (zh) 加密数据生成装置、数字签名生成装置、带数字签名的数据生成装置和系统
CN112685753A (zh) 一种用于加密数据存储的方法及设备
US20130061059A1 (en) Information processing apparatus, information processing method, and non-transitory computer readable medium
JP2009064055A (ja) 計算機システム及びセキュリティ管理方法
EP3953848A1 (en) Methods for encrypting and updating virtual disks
JP7124282B2 (ja) 情報処理装置及び情報処理プログラム
WO2014114987A1 (en) Personal device encryption
JP6648461B2 (ja) 情報処理装置およびプログラム
JP2006279151A (ja) 文書処理装置、文書処理プログラムおよび文書処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210701

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220224

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: 20220712

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220725

R150 Certificate of patent or registration of utility model

Ref document number: 7124282

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150