JP2019510261A - プライバシーが強化された中央データ・ストレージのためのコンピュータ実装方法、サーバ、ユーザ・デバイス、およびコンピュータ・プログラム製品 - Google Patents

プライバシーが強化された中央データ・ストレージのためのコンピュータ実装方法、サーバ、ユーザ・デバイス、およびコンピュータ・プログラム製品 Download PDF

Info

Publication number
JP2019510261A
JP2019510261A JP2018544223A JP2018544223A JP2019510261A JP 2019510261 A JP2019510261 A JP 2019510261A JP 2018544223 A JP2018544223 A JP 2018544223A JP 2018544223 A JP2018544223 A JP 2018544223A JP 2019510261 A JP2019510261 A JP 2019510261A
Authority
JP
Japan
Prior art keywords
tag
user
server
user device
user devices
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.)
Granted
Application number
JP2018544223A
Other languages
English (en)
Other versions
JP6781765B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2019510261A publication Critical patent/JP2019510261A/ja
Application granted granted Critical
Publication of JP6781765B2 publication Critical patent/JP6781765B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】本発明は、ユーザ・デバイスのセットの匿名読み取り/書き込みアクセスをサーバに対して実行する。
【解決手段】セットのユーザ・デバイスの書き込みアクセスは、匿名暗号化方式によって暗号化されたファイルを生成することと、疑似ランダム・タグを計算することと、このタグをユーザ・セットのユーザ・セット・インデックスとして使用して、暗号化済みファイルにインデックスを付けることと、暗号化済みファイルおよび関連するタグをサーバのストレージ・システムに書き込むこととを含む。セットのユーザ・デバイスの読み取りアクセスは、複数のタグに対応するタグ・データをサーバからダウンロードすることであって、このタグ・データが、各セットのユーザ・デバイスがユーザ・デバイスの各セットのユーザ・デバイスのうちの1つによって計算された、いわゆる「ユーザ・デバイス自身の」タグを認識できるようにする、ダウンロードすることと、複数のタグのうちからユーザ・デバイス自身のタグを決定することと、ユーザ・デバイス自身のタグに関連付けられた1つまたは複数の暗号化済みファイルを読み取ることと、暗号化済みファイルを暗号解読することとを含む。
【選択図】図1

Description

本発明は、ユーザ・デバイスのセットの匿名読み取り/書き込みアクセスをサーバに対して実行するためのコンピュータ実装方法に関する。ユーザ・デバイスのセットは、ユーザまたはユーザ・グループに関連付けられる。本発明は、さらに、対応するサーバ、対応するユーザ・デバイス、および対応するコンピュータ・プログラム製品に関する。
電子デバイスのユーザの多くは、電子取引を実行するために使用する複数のデバイス(例えば、1つまたは複数の携帯電話、ラップトップ、タブレット・コンピュータ、またはデスクトップ・コンピュータ、あるいはその組み合わせ)のセットを持っている。そのようなデバイスのセットは、1人によってのみ使用されることもあれば、複数人のグループ(例えば、家族のメンバー)によって共有されることもある。
電子取引は通常、サービス・プロバイダに対する認証を含んでいる。サービス・プロバイダに対する認証は、サーバを運用しているサービス・プロバイダの各サービスとのアカウントおよび対応する認証情報の最初の確立、ならびにその後のサービスへの再接続、およびアカウント・ホルダとしての識別を含むことがある。また、取引は、電子データに変換され、ユーザ・デバイス上で処理されて格納される。セットの複数のデバイスを使用する場合、それらのデバイス間でデータを同期させることが課題になる。
1つの可能な解決策は、すべてのデータをクラウド内のサーバに格納し、その後、データが必要とされるときに、情報をクラウドからデバイスに取り出すことである。取引の完了後に、更新された情報が再びクラウド内に蓄積される。そのような方法の場合、セットのすべてのユーザ・デバイスは、同じ暗号化/暗号解読キーを共有してよい。
この方法に伴う1つの問題は、多くの付帯情報がクラウド・プロバイダに漏洩する恐れがあることである。さらに詳細には、どのユーザがどの時点で情報を取り出し、蓄積するかを、クラウド・プロバイダが知る恐れがある。
米国特許第2015/0180905 A1号は、複数のコンピューティング・デバイス間のデータの安全な同期のためのシステムおよび方法を開示する。この方法は、第1のクライアント・コンピュータ・システム上のファイル内容の更新を検出することを含み、このファイルは、複数の形式で、複数の異なるタイプのクライアント・コンピュータ・システム上で同期させる。この方法は、セキュリティ・ポリシーをファイルに関連付けることであって、このセキュリティ・ポリシーが、ファイルに対して実行され得る1つまたは複数の操作を限定するための制限を含む、関連付けることと、セキュリティ・ポリシーを適用して第2のクライアント・コンピュータ・システムでの制限の実施を制御しながら、ファイルを第2のクライアント・コンピューティングシステムと同期させることとをさらに含む。
米国特許第2014/0068254号は、オンライン・サービス、あるいはクラウドベース・プラットフォームまたはクラウドベース環境との間でのアップロードまたはダウンロードあるいはその両方のストリーミング暗号化のためのシステムおよび方法を開示する。暗号化プロセスは、アップロードでの暗号化、ダウンロードでの暗号解読、およびインターバル・キー・サーバ(IKS:Interval Key Server)と呼ばれる主要なインフラストラクチャを含む。アップロードおよびダウンロードの両方の間、ファイルがアップロード/ダウンロードされているときに、暗号化プロセスおよび暗号解読プロセスが実行される。
米国特許第8925075 B2号は、データの準同型暗号化を含んでいるクラウド・コンピューティングの保護のための方法を開示する。提案された方式は、代数的アプローチおよび分析的アプローチの両方と共に使用され得る。クラウド・サービスは、サーバ上に実装される。クライアントは、完全準同型暗号化を使用してデータを暗号化し、サーバに送信する。クラウド・サーバは、データを暗号解読せずに計算を実行し、暗号化された計算結果をクライアントに返す。クライアントは結果を暗号解読し、その結果は、最初のプレーンテキスト・データに対して実行された同じ計算の結果と一致する。
米国特許第2010/0325441号は、信頼当事者(RP:relying party)での、IDプロバイダ(IdP:identity provider)によって仲介される、プライバシーを保護して柔軟にユーザ選択される匿名アクセスおよび仮名アクセス(pseudonymous access)のためのシステムおよび方法を開示する。匿名アクセスは、RPでのユーザの過去または未来のどのアクセスにも関連付けることができない。ユーザは、仮名アクセスを使用して、アクセスを、RPで以前に登録された仮名に関連付けることができる。仮名システムが開示されている。仮名システムは、ユーザによって保持された少数の秘密のみを使用して、多数の異なる関連付けが不可能な仮名を生成することができるようにする。
米国特許第2015/0180905 A1号 米国特許第2014/0068254号 米国特許第8925075 B2号 米国特許第2010/0325441号
Mohassel, P., Abe, M. (Ed.): A closer look at anonymity and robustness in encryption schemes, ASIACRYPT 2010, LNCS 6477, pp. 501-518, 2010 Abadi, M., Rogaway, P.: Reconciling two views of cryptography (the computational soundness of formal encryption) 20(3) 395(2007) Desai, A.: The security of all-or-nothing encryption: Protecting against exhaustive key search, pp.359-375 (2000) Fischlin, M.: Pseudorandom function tribe ensembles based on one-way permutations: Improvements and applications, pp. 432-445 (1999) Abdalla, M., Bellare, M., Rogaway,P.: The oracle Diffie-Hellman assumptions and ananalysis of DHIES, pp. 143-158 (2001) 8.Boneh, D., Franklin, M.K.:Identity-based encryption from the Weil pairing, pp. 213-229 (2001) Boyen, X., Waters, B.: Anonymous hierarchical identity-based encryption (without random oracles), pp. 290-307 (2006) Cramer, R., Shoup,V.: Design and analysis of practical public-key encryption schemes secure against adaptive chosen ciphertext attack, vol.33(1), pp. 167-226 (2003) Chor, B. et al: Private Information Retrieval, Journal of the ACM(JACM), Volume 45 Issue 6, Nov. 1998, Pages 965-981
したがって、中央サーバでプライバシーが強化されたデータの格納を可能にする方法ならびに対応するユーザ・デバイスおよびサーバを提供する必要がある。さらに、セットの複数のユーザ・デバイスが、プライバシーが強化された方法で、データを、そのような中央サーバに格納して同期させること、およびそのような中央サーバから取り出すことができるようにする方法および対応するユーザ・デバイスを提供する必要がある。
第1の態様によれば、本発明は、ユーザ・デバイスのセットの匿名読み取り/書き込みアクセスをサーバに対して実行するためのコンピュータ実装方法として具現化される。ユーザ・デバイスのセットは、ユーザまたはユーザ・グループに関連付けられる。セットのユーザ・デバイスのうちの1つの書き込みアクセスは、匿名暗号化方式(anonymous encryption scheme)によって暗号化されたファイルを作成することと、疑似ランダム・タグ(pseudorandom tag)を計算することと、このタグをユーザ・セットのユーザ・セット・インデックス(user set index)として使用して、暗号化済みファイルにインデックスを付けることと、暗号化済みファイルおよび関連するタグをサーバのストレージ・システムに送信することとを含む。セットのユーザ・デバイスの読み取りアクセスは、複数のタグに対応するタグ・データをサーバからダウンロードすることを含む。タグ・データは、各セットのユーザ・デバイスが、ユーザ・デバイスの各セットのユーザ・デバイスのうちの1つによって計算されたそのユーザ・デバイス自身のタグを認識できるようにする。読み取りアクセスは、複数のタグのうちからユーザ・デバイス自身のタグを決定することと、ユーザ・デバイス自身のタグに関連付けられた1つまたは複数の暗号化済みファイルを読み取ることと、暗号化済みファイルを暗号解読することとをさらに含む。
本発明の1つまたは複数の実施形態に従う1つのアイデアは、例えばユーザがファイルの更新を保存したい場合に、ユーザ・デバイスの書き込みアクセスごとに匿名暗号化方式を使用することである。デバイスは、更新を行おうとするたびに、匿名暗号化方式を使用することによって、古いファイルに関連付けることができない新しい暗号化済みファイルを生成する。
1つまたは複数の実施形態によれば、匿名暗号化方式は、秘密キーおよび秘密キーの所有者の同一性に関するどのような情報も明らかにしない方式として定義されてよい。非対称匿名暗号化方式の場合、暗号文は、暗号文の作成に使用された公開キーに関するどのような情報も明らかにしない。
ユーザ・デバイスのセットの別のデバイスによって蓄積された暗号化済みファイルを効率的に認識できるようにするために、疑似ランダム・タグを使用して暗号化済みファイルにインデックスが付けられる。そのような疑似ランダム・タグは、サーバに対して互いに関連付けることができない。ただし、それらのタグは、ユーザ・デバイスがそれ自身のタグ(すなわち、ユーザ・デバイス自身が生成したタグ、およびユーザ・デバイスの各セットの別のユーザ・デバイスによって生成されたタグ)を認識できる方法で生成される。したがって、ユーザ・デバイスのセットのデバイスは、それ自身のタグを認識した後に、対応する暗号化済みファイルをダウンロードすることができる。これによって、それらのユーザ・デバイスは、プライバシーが強化された方法で、セットのさまざまなユーザ・デバイスのファイルを書き込むこと、および読み取ることができる。
1つまたは複数の実施形態によれば、疑似ランダム・タグを計算することは、シードおよびタグ番号の疑似ランダム関数を計算することを含む。タグ番号は、ユーザ・デバイスのセットのタグの計算のための、一意の番号である。
これは、サーバによって関連付けることができないが、ユーザ・デバイスのセットのユーザ・デバイスによって認識できるタグを生成するための効率的で信頼性が高く、洗練された方法である。さらに詳細には、セットのすべてのユーザ・デバイスは、疑似ランダム関数およびシードを認識することができ、一意のタグ番号によって、ダウンロードされたタグ・データが、各セットのデバイスのうちの1つによって生成されたタグに一致するかどうかをチェックすることができる。
1つまたは複数の実施形態によれば、方法は、匿名暗号化方式の1つまたは複数の暗号化キーおよび1つまたは複数の対応する暗号解読キーをユーザ・デバイスに提供するステップと、共有疑似ランダム関数(joint pseudorandom function)および共有シードをユーザ・デバイスに提供するステップと、1つまたは複数の暗号化キーのうちの少なくとも1つを使用して格納されるファイルを暗号化するステップと、疑似ランダム関数を用いて共有シードおよびタグ番号から疑似ランダム・タグを計算するステップとを含む。
これは、サーバによって関連付けることができないが、ユーザ・デバイスのセットのユーザ・デバイスによって認識できるタグを生成するための効率的で信頼性が高く、洗練された方法である。
さらに詳細には、セットのすべてのユーザ・デバイスは、共有疑似ランダム関数および共有シードを保持している。これによって、一意のタグ番号によって、ダウンロードされたタグ・データが、各セットのデバイスのうちの1つによって生成されたタグと一致するかどうかをチェックすることが可能になる。
1つまたは複数の暗号化キーは、対称暗号化方式の秘密キーまたは非対称暗号化方式の公開キーであってよい。実施形態によれば、すべてのユーザ・デバイスが、共有暗号化キーと同じ暗号化キーを使用してよく、またはユーザ・デバイスが、デバイスごとに異なる暗号化キーを使用してもよい。後者の実施形態では、各ユーザ・デバイスには、そのユーザ・デバイスの暗号解読キーが提供される。
1つまたは複数の実施形態によれば、タグ番号は、ユーザ・デバイスのカウンタによって計算されるカウンタ値である。そのような実施形態によれば、セットのすべてのユーザ・デバイスは、タグ番号を生成するためのカウンタを備えている。これは、タグの生成に使用されたタグ番号を追跡するための効率的で洗練された方法である。さらに、セットの各ユーザ・デバイスは、セットの他のユーザ・デバイスがタグ番号を生成する方式を認識する。これによって、セットのユーザ・デバイスの同期を容易にする。さらに、ユーザ・デバイスは、それ自身のセットのタグ番号だけをチェックすればよい。これによって、一致の効率的な計算を促進する。
1つまたは複数の実施形態によれば、タグ番号は、ユーザ・デバイスによって生成されるノンスである。さらに、書き込みアクセスは、ノンスを暗号化済みファイルおよび関連するタグと一緒にサーバに書き込むことを含み、読み取りアクセスは、タグ・データおよび対応するノンスをサーバからダウンロードすることを含む。
これは、タグ番号を生成し、各セットによって使用されたタグ番号を追跡する、別の効率的な方法である。
1つまたは複数の実施形態によれば、タグ番号は、サーバによって提供されたサーバ・インデックスである。
そのような実施形態によれば、タグ番号は、サーバによって中心的に提供される。これは、タグ番号を生成し、各セットによって使用されたタグ番号を追跡する、別の効率的な方法である。
1つまたは複数の実施形態によれば、1つまたは複数の暗号化済みファイルを読み取ることは、プライベート情報検索(PIR:private information retrieval)プロトコルを実行することを含む。
そのようなPIRプロトコルは、当技術分野において知られており、サーバがユーザ・デバイスによって取り出されたファイルの同一性に関する情報を取得しないということを保証することができる。したがって、そのようなPIRプロトコルを使用して、サーバおよび関連するクラウド・サービスが、デバイスがどの暗号化済みファイルをダウンロードしているかを知ることがないということが、保証されてよい。これによって、プライバシーをさらに強化する。
1つまたは複数の実施形態によれば、1つまたは複数の暗号化済みファイルを読み取ることは、紛失通信プロトコル(oblivious transfer protocol)を実行することを含む。
そのような紛失通信プロトコルを使用して、サーバおよび関連するクラウド・サービスが、デバイスがどの暗号化済みファイルをダウンロードしているかを知ることがないということが、保証されてよい。これによって、プライバシーをさらに強化する。
1つまたは複数の実施形態によれば、ユーザ・デバイス自身のタグを決定することは、シードおよび事前に定義されたタグ番号のセットの疑似ランダム関数を計算することによって比較タグを計算することを含む。さらに、ダウンロードされたタグ・データは、一致するタグを識別するために、計算された比較タグと比較される。本明細書では、事前に定義されたタグ番号のセットは、ユーザ・デバイスの1つまたは複数のセットのユーザ・デバイスによって以前に使用されたタグ番号を含む。
これは、ユーザ・デバイス自身のタグを決定するための効率的で信頼性の高い方法である。
1つまたは複数の実施形態によれば、タグ・データをダウンロードすることは、複数のタグをダウンロードすることを含む。そのような実施形態によれば、ユーザ・デバイスは、それ自身のタグ・データをサーバから読み取る/ダウンロードする。これによって、タグの直接比較が可能になる。
1つまたは複数の実施形態によれば、タグ・データをダウンロードすることは、1つまたは複数のブルーム・フィルタをダウンロードすることを含む。ブルーム・フィルタは、ブルーム・フィルタの配列の1つまたは複数の位置へのタグのマッピングを含む。
これは、計算された比較タグが、ブルーム・フィルタによって表されたタグのメンバーであるかどうかをチェックするための効率的かつ高速な方法である。
本発明の別の態様によれば、1つまたは複数の実施形態は、サーバによって匿名ストレージ・サービス(anonymous storage services)をユーザ・デバイスのセットに提供するためのコンピュータ実装方法であり、ユーザ・デバイスのセットはユーザまたはユーザ・グループに関連付けられている。方法は、サーバで、格納されるファイルを受信するステップであって、ファイルが、匿名暗号化方式に従って暗号化されている、受信するステップと、疑似ランダム・タグをユーザ・セット・インデックスとして受信するステップと、暗号化済みファイルを関連するタグ・データと一緒に格納するステップであって、タグ・データが、各セットのユーザ・デバイスがユーザ・デバイスの各セットのユーザ・デバイスのうちの1つによって計算されたユーザ・デバイス自身のタグを認識できるようにする、格納するステップとを含む。方法は、ユーザ・デバイスの読み取り要求に応答して、複数のタグに対応するタグ・データをユーザ・デバイスに提供するステップをさらに含む。
1つまたは複数の実施形態では、クラウド環境内でストレージ・サービスが提供される。
本発明の別の態様によれば、1つまたは複数の実施形態では、匿名ストレージ・サービスをユーザ・デバイスのセットに提供するためのサーバが提供される。ユーザ・デバイスのセットは、ユーザまたはユーザ・グループに関連付けられる。サーバは、匿名暗号化方式に従って暗号化された、格納されるファイルを受信するように構成される。サーバは、疑似ランダム・タグをユーザ・セット・インデックスとして受信することと、暗号化済みファイルを関連するタグ・データと一緒に格納することであって、タグ・データが、各セットのユーザ・デバイスがユーザ・デバイスの各セットのユーザ・デバイスのうちの1つによって計算されたユーザ・デバイス自身のタグを認識できるようにする、格納することと、ユーザ・デバイスの読み取り要求に応答して、複数のタグに対応するタグ・データをユーザ・デバイスに提供することとを実行するようにさらに構成される。
1つまたは複数の実施形態では、このサーバは、クラウド環境内でストレージ・サービスを提供するように構成される。
本発明の別の態様によれば、1つまたは複数の実施形態は、匿名読み取り/書き込みアクセスをサーバに対して実行するためのユーザ・デバイスを提供する。ユーザ・デバイスは、ユーザまたはユーザ・グループに関連付けられる。ユーザ・デバイスは、匿名暗号化方式によって暗号化されたファイルを生成することと、疑似ランダム・タグを計算することと、タグをユーザ・セットのユーザ・セット・インデックスとして使用して暗号化済みファイルにインデックスを付けることと、暗号化済みファイルおよび関連するタグをサーバのストレージ・システムに送信することとを含んでいる書き込みアクセスを実行するように構成される。ユーザ・デバイスは、複数のタグに対応するタグ・データをサーバからダウンロードすることを含んでいる読み取りアクセスを実行するようにさらに構成され、タグ・データは、各セットのユーザ・デバイスがユーザ・デバイスの各セットのユーザ・デバイスのうちの1つによって計算されたユーザ・デバイス自身のタグを認識できるようにする。ユーザ・デバイスは、複数のタグのうちからユーザ・デバイス自身のタグを決定することと、ユーザ・デバイス自身のタグに関連付けられた1つまたは複数の暗号化済みファイルを読み取ることと、暗号化済みファイルを暗号解読することとを実行するようにさらに構成される。
さらに別の態様によれば、1つまたは複数の実施形態は、サーバに対するユーザ・デバイスのセットの匿名読み取り/書き込みアクセスのためのコンピュータ・プログラム製品を提供する。ユーザ・デバイスのセットは、ユーザまたはユーザ・グループに関連付けられる。コンピュータ・プログラム製品は、プログラム命令が具現化された非一時的コンピュータ可読記憶媒体を備え、これらのプログラム命令は、ユーザ・デバイスに方法を実行させるように、ユーザ・デバイスによって実行可能であり、方法は、書き込みアクセスを実行するステップを含んでおり、書き込みアクセスを実行するステップは、匿名暗号化方式によって暗号化されたファイルを生成するステップと、疑似ランダム・タグを計算するステップと、タグをユーザ・セットのユーザ・セット・インデックスとして使用して、暗号化済みファイルにインデックスを付けるステップと、暗号化済みファイルおよび関連するタグをサーバのストレージ・システムに送信するステップとを含んでいる。さらに、これらのプログラム命令は、ユーザ・デバイスに、複数のタグに対応するタグ・データをサーバからダウンロードするステップを含んでいる読み取りアクセスを実行するステップを含んでいる方法を実行させ、タグ・データは、各セットのユーザ・デバイスがユーザ・デバイスの各セットのユーザ・デバイスのうちの1つによって計算されたユーザ・デバイス自身のタグを認識できるようにする。さらに、これらのプログラム命令は、ユーザ・デバイスに、複数のタグのうちからユーザ・デバイス自身のタグを決定するステップと、ユーザ・デバイス自身のタグに関連付けられた1つまたは複数の暗号化済みファイルを読み取るステップと、暗号化済みファイルを暗号解読するステップとを含んでいる方法を実行させる。
本発明の実施形態は、実例および非限定的な例の目的で添付の図面を参照して、下でさらに詳細に説明される。
本発明の1つまたは複数の実施形態に記載されたクラウド・コンピューティング・ノードを示す図である。 本発明の1つまたは複数の実施形態に記載されたクラウド・コンピューティング環境を示す図である。 本発明の1つまたは複数の実施形態に記載された抽象モデル・レイヤを示す図である。 本発明の1つまたは複数の実施形態に記載されたシステムの基本設定および対応する方法のステップを示す図である。 1つまたは複数の実施形態に記載された、ユーザ・デバイスのセットのユーザ・デバイスの書き込みアクセスの方法のステップのフローチャートを示す図である。 1つまたは複数の実施形態に記載された、ユーザ・デバイスのセットのユーザ・デバイスの読み取りアクセスの方法のステップのフローチャートを示す図である。 1つまたは複数の実施形態に記載された、図4のシステムに従って読み取りアクセスの方法のステップのフローチャートをさらに詳細に示す図である。 本発明の1つまたは複数の実施形態に記載されたブルーム・フィルタを示す図である。 ブルーム・フィルタを使用する本発明の1つまたは複数の実施形態に記載されたシステムの別の基本設定および対応する方法のステップを示す図である。 図9のシステムの読み取りアクセスの方法のステップのフローチャートをさらに詳細に示す図である。 本発明の1つまたは複数の実施形態に記載されたユーザ・デバイスの詳細なブロック図を示す図である。
この説明の文脈では、以下の規則、用語、または表現、あるいはその組み合わせを使用できる。
匿名暗号化方式は、秘密キーおよび秘密キーの所有者の同一性に関するどのような情報も明らかにしない方式として定義されてよい。匿名暗号化方式は、当技術分野においてよく知られている。そのような匿名暗号化方式の概要は、例えば、Mohassel, P., Abe,M. (Ed.): A closer look at anonymity and robustness in encryption schemes, ASIACRYPT 2010, LNCS 6477, pp. 501-518, 2010で提供されている。匿名暗号化方式は、対称または非対称であってよい。非対称匿名暗号化方式の場合、暗号文は、暗号文の作成に使用された公開キーに関するどのような情報も明らかにしない。対称匿名暗号化方式は、例えば、Abadi, M., Rogaway, P.: Reconciling two views of cryptography (the computational soundness of formal encryption) 20(3) 395 (2007)、またはDesai, A.: The security of all-or-nothing encryption: Protecting against exhaustive key search, pp. 359-375 (2000)、またはFischlin, M.: Pseudorandom functiontribe ensembles based on one-way permutations: Improvements and applications,pp. 432-445 (1999)に記載されている。
非対称匿名暗号化方式は、例えば、Abdalla, M., Bellare, M., Rogaway,P.: The oracle Diffie-Hellman assumptions and ananalysis of DHIES, pp. 143-158 (2001)、または8.Boneh, D.,Franklin, M.K.: Identity-based encryption from the Weil pairing, pp. 213-229(2001)、またはBoyen, X., Waters, B.: Anonymous hierarchical identity-based encryption(without random oracles), pp. 290-307 (2006)、またはCramer,R., Shoup, V.: Design and analysis of practical public-key encryption schemes secure against adaptive chosen ciphertext attack, vol. 33(1), pp. 167-226 (2003)に記載されている。
上で引用された参考文献は、本発明の1つまたは複数の実施形態に従って使用されてよい匿名暗号化方式の単なる例であるが、通常は、前述の特性を有する任意の匿名暗号化方式が使用されてよい。
本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において示された内容の実装は、クラウド・コンピューティング環境に限定されないと理解されるべきである。本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間とサービス・プロバイダとのやりとりを最小限に抑えて、それらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含むことができる。
特徴は、次のとおりである。
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間、ネットワーク・ストレージなどのコンピューティング能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
幅広いネットワーク・アクセス:クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
リソース・プール:プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベル(例えば、国、州、データセンタ)では、場所を指定できる場合がある。
迅速な順応性:クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用量は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
サービス・モデルは、次のとおりである。
SaaS(Software as a Service):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
PaaS(Platform as a Service):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
IaaS(Infrastructure as a Service):利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、およびデプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
デプロイメント・モデルは、次のとおりである。
プライベート・クラウド:このクラウド・インフラストラクチャは、ある組織のためにのみ運用される。このクラウド・インフラストラクチャは、この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。このクラウド・インフラストラクチャは、これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含んでいるインフラストラクチャである。
ここで図1を参照すると、クラウド・コンピューティング・ノード10の例の概略図が示されている。クラウド・コンピューティング・ノード10は、適切なクラウド・コンピューティング・ノードの一例に過ぎず、本明細書に記載された本発明の実施形態の使用または機能の範囲に関して、いかなる限定を示唆することも意図されていない。いずれにせよ、クラウド・コンピューティング・ノード10は、前述した機能のいずれかを実装すること、または実行すること、あるいはその両方を行うことができる。
クラウド・コンピューティング・ノード10内には、他の多数の汎用または専用のコンピューティング・システム環境または構成で運用できるサーバ12が存在する。サーバ12での使用に適したものにすることができる既知のコンピューティング・システム、環境、または構成、あるいはその組み合わせの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マイクロプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、マイクロコンピュータ・システム、メインフレーム・コンピュータ・システム、およびこれらのシステムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などを含むが、これらに限定されない。
サーバ12は、コンピュータ・システムによって実行されているプログラム・モジュールなどの、コンピュータ・システムによって実行可能な命令との一般的な関連で説明することができる。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。サーバ12は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散クラウド・コンピューティング環境で実行されてよい。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモートの両方のコンピュータ・システム・ストレージ媒体に配置されてよい。
図1に示すように、クラウド・コンピューティング・ノード10内のサーバ12は、汎用コンピューティング・デバイスの形態で示されている。サーバ12のコンポーネントは、1つまたは複数のプロセッサまたはプロセッシング・ユニット16、システム・メモリ28、およびシステム・メモリ28を含むさまざまなシステム・コンポーネントをプロセッサ16に結合するバス18を含むことができるが、これらに限定されない。
バス18は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、および任意のさまざまなバス・アーキテクチャを使用するプロセッサまたはローカル・バスを含む、1つまたは複数の任意の種類のバス構造を表す。例として、そのようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカル・バス、およびPCI(Peripheral Component Interconnect)バスを含むが、これらに限定されない。
サーバ12は、通常、さまざまなコンピュータ・システム可読媒体を含む。そのような媒体は、サーバ12によってアクセスできる任意の使用可能な媒体にすることができ、揮発性および不揮発性媒体、取り外し可能および取り外し不可の媒体の両方を含む。
システム・メモリ28は、ランダム・アクセス・メモリ(RAM:random access memory)30またはキャッシュ・メモリ32あるいはその両方などの、揮発性メモリの形態でのコンピュータ・システム可読媒体を含むことができる。サーバ12は、その他の取り外し可能/取り外し不可、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単に例として、取り外し不可、不揮発性の磁気媒体(図示されておらず、通常は「ハード・ドライブ」と呼ばれる)に対する読み取りと書き込みを行うために、ストレージ・システム34を提供することができる。図示されていないが、取り外し可能、不揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、およびCD−ROM、DVD−ROM、またはその他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りと書き込みを行うための光ディスク・ドライブを提供することができる。そのような例では、それぞれを、1つまたは複数のデータ媒体インターフェイスによってバス18に接続することができる。下で詳細に示され、説明されるように、メモリ28は、本発明の実施形態の機能を実行するように構成された一連の(例えば、少なくとも1つの)プログラム・モジュールを備える少なくとも1つのプログラム製品を含むことができる。
例えば、一連の(少なくとも1つの)プログラム・モジュール42を含んでいるプログラム/ユーティリティ40がメモリ28に格納されてよいが、これに限定されず、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データも格納されてよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データまたはこれらの組み合わせは、それぞれネットワーク環境の実装を含むことができる。プログラム・モジュール42は、通常、本明細書に記載された本発明の実施形態の機能または方法あるいはその両方を実行する。
サーバ12は、キーボード、ポインティング・デバイス、ディスプレイ24などの1つまたは複数の外部デバイス14、ユーザがサーバ12と情報をやりとりできるようにする1つまたは複数のデバイス、またはサーバ12が1つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはその組み合わせと通信することもできる。そのような通信は、入出力(I/O:Input/Output)インターフェイス22を介して行うことができる。さらに、サーバ12は、ローカル・エリア・ネットワーク(LAN:Local Area Network)、一般的な広域ネットワーク(WAN:Wide Area Network)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはその組み合わせなどの1つまたは複数のネットワークと、ネットワーク・アダプタ20を介して通信することができる。図示されているように、ネットワーク・アダプタ20は、バス18を介してサーバ12の他のコンポーネントと通信する。図示されていないが、その他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、サーバ12と併用できるということが理解されるべきである。その例として、マイクロコード、デバイス・ドライバ、冗長プロセッシング・ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、これらに限定されない。
ここで図2を参照すると、クラウド・コンピューティング環境50の例が示されている。図示されているように、クラウド・コンピューティング環境50は、クラウドの利用者によって使用されるローカル・ユーザ・デバイス(例えば、PDA(Personal Digital Assistant)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組み合わせなど)が通信できる1つまたは複数のクラウド・コンピューティング・ノード10を含んでいる。ユーザ・デバイス54A、54B、54C、および54Nは、以下において、ユーザ・デバイス54と総称されてもよい。ユーザ・デバイス54は、同じユーザまたはユーザ・グループに属してよい。同じユーザまたはユーザ・グループに属しているユーザ・デバイス54は、ユーザ・デバイス54のセット55と呼ばれる。ノード10は、互いに通信することができる。ノード10は、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組み合わせなどの、1つまたは複数のネットワーク内で物理的または仮想的にグループ化されてよい(図示されていない)。これによって、クラウド・コンピューティング環境50は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組み合わせをサービスとして提供できる。図1に示されたコンピューティング・デバイス54A〜Nの種類は、例示のみが意図されており、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意の種類のネットワークまたはネットワーク・アドレス指定可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
ここで図3を参照すると、クラウド・コンピューティング環境50(図2)によって提供される機能的抽象レイヤのセットが示されている。図3に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム61、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーク・コンポーネント66が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
仮想化レイヤ70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75などの仮想的実体を提供できる抽象レイヤを備える。
一例を挙げると、管理レイヤ80は、以下で説明される機能を提供できる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定82は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理84は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行85は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
ワークロード・レイヤ90は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供されてよいワークロードおよび機能の例としては、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育の配信93、データ分析処理94、トランザクション処理95、および匿名ストレージ・サービス96の提供が挙げられる。
図4は、本発明の1つまたは複数の実施形態に従ってシステムの基本設定および対応する方法のステップを示している。左側では、サーバ12のストレージ・システム34に対する匿名読み取り/書き込みアクセスを実行するように構成されたユーザ・デバイス54のセット55が示されている。ユーザ・デバイス54は、図2のユーザ・デバイス54A、54B、54C、および54Nに対応してよい。ユーザ・デバイス54のセット55は、一般ユーザ56またはユーザ・グループ57に関連付けられる。言い換えると、ユーザ・デバイス54は、1人のユーザ56によって操作されるか、またはユーザ・グループ57の複数のユーザによって操作される。ユーザ・グループ57は、例えば、ユーザ・デバイス54およびユーザ・デバイス54上で実行されているいくつかのアプリケーションを共有している家族または同僚のグループであってよい。ユーザ・デバイス54は、サーバ12のストレージ・システム34に対する匿名読み取り/書き込みアクセスを実行するように構成される。さらに、ユーザ・デバイス54は、ユーザ・デバイス54がストレージ・システム34に書き込む/格納するデータ、およびストレージ・システム34から読み取る/取り出すデータを同期させるように構成される。それに応じて、ユーザ・デバイス54のセット55のユーザ56が、サーバ12のストレージ・システム34からデータを読み取る/取り出すときに、ユーザ56には、データの最新バージョンが提供される。サーバ12は、特に、クラウド内のストレージ・サービスおよびその他のサービスを提供するクラウド・サーバであってよい。一例として、ユーザ56は、ユーザ・デバイスのセット55のすべてのユーザ・デバイス54上でカレンダー・アプリケーションを実行してよい。そのようなカレンダー・アプリケーションは、すべてのユーザ・デバイス54が、ユーザ・デバイス54のうちの1つに対して作成された最新のカレンダー・エントリにアクセスできるように、ユーザ・デバイス54間で、定期的に更新する/同期させる必要がある。
ユーザ・デバイス54は、共有暗号化キー、共有疑似ランダム関数PRF、および疑似ランダム関数の共有シードを共有するように構成される。暗号化キー、疑似ランダム関数PRF、およびシードは、ユーザ・デバイス54の安全なメモリに格納されてよい。さらに、図4の実施形態によれば、すべてのデバイス54は、タグ番号を計算するためのカウンタ58を備えている。
サーバ12のストレージ・システム34は、図4のテーブル410に示されているように、複数の暗号文Ciをサーバ・インデックスiおよび対応するタグtagと一緒に格納するように構成されている。
図5は、図4のセット55のユーザ・デバイス54の書き込みアクセスの方法のステップのフローチャートを示している。
図6は、図4のセット55のユーザ・デバイス54の読み取りアクセスの方法のステップのフローチャートを示している。
以下では、図4、5、および6を参照して、書き込みアクセスおよび読み取りアクセスの方法のステップの実施形態例について説明する。
ステップ510で、ユーザ・デバイス54のうちの1つが、匿名暗号化方式によって暗号化済みファイルを生成する。図4を参照すると、ユーザ・デバイス54は、暗号化キーを使用して書き込まれるデータを暗号化することによって、暗号文CN+1を暗号化されたファイルとして計算する。暗号化キーは、対称暗号化方式の秘密キーまたは非対称暗号化方式の公開キーであってよい。
ステップ520で、ユーザ・デバイス54が、シードおよびカウンタ値ctrの疑似ランダム関数を計算することによって、疑似ランダム・タグtagN+1を計算する。カウンタ値ctrは、ユーザ・デバイス54の各カウンタ58によって提供される。カウンタ値ctrはタグ番号を表し、タグ番号ctrは、ユーザ・デバイス54のセット55のタグの計算のための一意の番号である。言い換えると、タグ番号ctrが、各セット55のタグの計算に一度だけ使用されるということが保証される。これによって、ユーザ・デバイスは、その後、そのユーザ・デバイス自身のタグ(すなわち、各セット55のユーザ・デバイス54のうちの1つによって計算されたタグ)を用いて暗号化済みファイルを識別/認識できるようになる。
ステップ530で、各ユーザ・デバイス54が、タグtagN+1をユーザ・セットのユーザ・セット・インデックスとして使用して、暗号化済みファイルにインデックスを付ける。言い換えると、タグtagN+1は、このタグがセット55のユーザ・デバイス54のうちの1つによって暗号化された暗号化済みファイルに属しているということを、セットのユーザ・デバイスに示すタグを表している。
ステップ540で、ユーザ・デバイス54が、暗号化済みファイルおよび関連するタグを中央サーバ12に送信する/書き込む。図4を参照すると、ユーザ・デバイス54が、暗号文CN+1および対応するタグtagN+1を、ストレージ・システム34のテーブル410に書き込むか、または送信する。
ここで図6を参照すると、ユーザ・デバイス54のうちの1つの読み取りアクセスは、ステップ610で、複数のタグに対応するタグ・データをサーバ12からダウンロードすることを含んでいる。
タグ・データは、各セット55のユーザ・デバイス54のすべてが、それ自身のタグを認識できるようにするデータとして通常は定義されてよい。ユーザ・デバイス自身のタグは、ユーザ・デバイスの各セット55のユーザ・デバイス54のうちの1つによって計算されたとタグとして理解される。言い換えると、タグは、各セット55のユーザ・デバイス54のうちの1つによって生成された暗号化済みファイルを識別するために、各セット55のユーザ・デバイス54の識別子として機能する。
図4を参照して説明されるような実施形態によれば、タグ・データはタグ自体によって具現化され、したがって、タグ・データをダウンロードするステップは、複数のタグ(tag、…、tag)をダウンロードする/読み取るステップを含む。1つまたは複数の実施形態によれば、タグ・データをダウンロードするステップは、1つまたは複数のブルーム・フィルタ(下でさらに説明される)をダウンロードするステップを含んでよい。
ステップ620で、ユーザ・デバイス自身のタグ(すなわち、ユーザ・デバイス54の各セット55のタグ)が、複数のダウンロードされたタグ(tag、…、tag)のうちから決定される。さらに詳細には、ダウンロードされたタグ(tag、…、tag)は、ユーザ・デバイス自身のセットのタグだけでなく、ユーザ・デバイスのその他セットのタグも含む。
ステップ620は、次のサブステップを含む。
ステップ622で、各ユーザ・デバイス54が、シードおよび事前に定義されたタグ番号のセットの疑似ランダム関数PRFを計算することによって、比較タグctagを計算する。図4の例では、タグ番号はカウンタ値ctrである。通常、事前に定義されたタグ番号のセットは、ユーザ・デバイスの1つまたは複数のセット55のユーザ・デバイス54によって以前に使用されたタグ番号を含む。図4の例では、タグ番号は、ユーザ・デバイス54のカウンタ58のうちの1つによって以前に発行されたカウンタ値ctrである。
ステップ624で、各ユーザ・デバイス54が、ダウンロードされたタグ・データを計算された比較タグと比較して、一致するタグを識別する。再び図4を参照すると、計算された比較タグctagが、ダウンロードされたタグ(tag、…、tag)と比較されている。
その後、ステップ626で、各ユーザ・デバイス54によって、それ自身のタグが識別される。その後、ステップ630で、タグtagを用いてユーザ・デバイス自身のファイルとして識別された暗号化済みファイル/暗号文Ciが、サーバ12のストレージ・システム34から読み取られ/取り出される。この取り出しは、特に、プライベート情報検索(PIR)プロトコルを実行することによって、または紛失通信プロトコルを実行することによって実行されてよい。そのようなプロトコルは、当技術分野においてよく知られている。プライベート情報検索プロトコルは、例えば、Chor, B. et al:Private Information Retrieval, Journal of the ACM (JACM), Volume 45 Issue 6,Nov. 1998, Pages 965-981に記載されている。
最後にステップ640で、ユーザ・デバイス54によって、匿名暗号化方式の秘密キーを用いて、暗号化済みファイルCiが暗号解読される。
図7は、図4のシステムに従って読み取りアクセスの方法のステップのフローチャートをさらに詳細に示している。したがって、ユーザ・デバイス54はカウンタ58を備えている。
ステップ710で、複数のタグ(tag、…、tag)がサーバ12からダウンロードされる。
ステップ720で、タグ(tag、…、tag)をダウンロードした各ユーザ・デバイス54が、シードおよびカウンタ値ctr_iの疑似ランダム関数として比較タグctag_iを計算する。カウンタ値ctr_iは、各デバイス54のカウンタ58によって使用された最後のカウンタ値である。
ctag_i/ctag、ctr_i/ctr、およびC_i/Cという表現が交換可能なように使用されていることに注意するべきである。
ステップ730で、ユーザ・デバイス54が、ダウンロードされたタグ(tag、…、tag)をctag_iと比較する。ステップ740で、ユーザ・デバイス54が、一致が存在するかどうか(すなわち、タグ(tag、…、tag)のうちの1つがctag_iに等しいかどうか)を決定する。
一致が存在しない場合、この方法はステップ710に戻り、さらにタグをダウンロードする。これは、例えば、各ユーザ・デバイス54が長期間使用されなかったため、各ユーザ・デバイスのタグが非常に古くなり、1回目のダウンロードのステップではダウンロードされなかった場合であることがある。
一致が存在する場合、ステップ750で、ユーザ・デバイス54がカウンタ値を1だけ増やす(すなわち、カウンタ値をctr_i+1に設定するか、または一般的に言えば、ctr_inew=ctr_iold+1のように設定する)。次に、ステップ755で、ユーザ・デバイス54が、新しい比較タグctag_iを、シードおよび新しい増やされたカウンタ値ctr_iの疑似ランダム関数として計算する。この背後にある論理的根拠は、セット55のさまざまなユーザ・デバイス54のカウンタ58を同期させることである。一例として、現在の読み取りアクセスが図2の携帯電話54Aによって実行される場合、携帯電話54Aによって実行された最後の更新/書き込みアクセスの後に、デスクトップ・コンピュータ54Bが何らかの更新されたデータ/ファイルをストレージ・システム34に書き込んだ可能性がある。それに応じて、デスクトップ・コンピュータ54Bのカウンタは、携帯電話54Aのカウンタよりも大きい値を持つ。
ステップ760で、ユーザ・デバイス54が、ダウンロードされたタグ(tag、…、tag)をctag_iと比較する。ステップ770で、ユーザ・デバイス54が、一致が存在するかどうか(すなわち、タグ(tag、…、tag)のうちの1つがctag_iに等しいかどうか)を決定する。
一致が存在する場合、この方法は再びステップ750に戻ってカウンタ値を増やし、新しいステップ755で、別の新しい比較タグctag_iを、シードおよび増やされたカウンタ値ctr_iの疑似ランダム関数として計算する。このループが、一致が存在しなくなるまで繰り返される。
一致が存在しない場合、ユーザ・デバイス54は、前のカウンタ値ctr_iが、各セット55のユーザ・デバイス54のうちの1つによって使用された最新のカウンタ値だったと結論を下す。次にステップ780で、ユーザ・デバイス54は、比較タグctag_i−1と対応する一致するダウンロードされたタグの間における最後の一致の比較によってこのユーザ・デバイス自身のファイルとして識別された暗号化済みファイルC_i−1を読み取る/取り出す。したがって、ユーザ・デバイス54は、一致をもたらした最大のカウンタ値を含むタグに関連付けられた暗号化済みファイルを読み取る。
最後にステップ790で、ユーザ・デバイス54によって、匿名暗号化方式の秘密キーを用いて暗号化済みファイルC_i−1が暗号解読される。
図8は、ブルーム・フィルタ800の実施形態例を示している。ブルーム・フィルタ800は、ブルーム・フィルタ800の配列820の1つまたは複数のビット位置810へのタグのマッピングを実行する。ブルーム・フィルタ800は、簡単かつ効率的な方法で、タグtagが、ブルーム・フィルタにマッピングされたタグ(tag、…、tag)のメンバーであるかどうかをテストできるようにする、確率的データ構造である。タグをブルーム・フィルタ800に追加するために、k個の異なるハッシュ関数H、…、Hがタグに対して計算され、各ハッシュ関数が、均一なランダム分布で、タグを配列820のm個の配列位置810のうちの1つにマッピングする。数学的用語では、これは次のように記述されてよい。
1,...,k:{0,1}*→{1,...,m}
タグがブルーム・フィルタBに含まれているかどうかをテストするには、そのタグを、i=1,...,kのすべてについて次の式が成り立つかどうかチェックする必要がある。
Hi(tag)=1
ブルーム・フィルタ800は、誤検出することがあるが、検出漏れを引き起こすことはない。誤検出率がpの場合のおおよそのフィルタ長mは、m≒−2n ln(p)によって推定されてよい。
ここで、nは、ブルーム・フィルタに格納されなければならないタグの数である。
図9は、本発明の1つまたは複数の実施形態に従って別のシステムの基本設定および対応する方法のステップを示している。全体的な設定は、図4を参照して説明された設定に対応している。したがって、左側には、サーバ12のストレージ・システム34に対する匿名読み取り/書き込みアクセスを実行するように構成されたユーザ・デバイス54のセット55がある。ユーザ・デバイス54は、秘密キー、疑似ランダム関数PRF、および疑似ランダム関数のシードを共有するように構成される。ただし、図4の設定とは対照的に、ユーザ・デバイス54はカウンタを備えておらず、サーバ12から受信されたサーバ・インデックスをタグ番号として使用する。加えて、図9の設定によれば、ストレージ・システム34は、タグ自体の代わりに、タグのブルーム・フィルタを格納するように構成される。
サーバ12のストレージ・システム34は、暗号文Ciをサーバ・インデックスiと一緒にテーブル910に格納するように構成される。さらに、ストレージ・システム34は、ブルーム・フィルタB、B、および場合によってはさらに多くのブルーム・フィルタをテーブル920に格納するように構成され、これらのブルーム・フィルタは、ブルーム・フィルタの配列の配列位置への、ユーザ・デバイス54から受信されたタグのマッピングを含む。この例では、ブルーム・フィルタB1はタグtag、…、tag10000のマッピングを含み、ブルーム・フィルタB2はタグtag10000、…、tag20000のマッピングを含む。
図10は、図9のセット55のユーザ・デバイス54の読み取りアクセスの方法のステップのフローチャートをさらに詳細に示している。
以下では、図9および10を参照して、書き込みアクセスおよび読み取りアクセスの方法のステップの実施形態例について説明する。
書き込みアクセスの場合、ユーザ・デバイス54のうちの1つは、暗号化キーを使用して書き込まれるデータを暗号化することによって、暗号文CN+1を暗号化されたファイルとして計算する。さらに、ユーザ・デバイス54が、シードおよびサーバ・インデックスN+1の疑似ランダム関数を計算することによって、疑似ランダム・タグtagN+1を計算する。サーバ・インデックスN+1はサーバ12から受信されてよく、ストレージ・システム34の次のストレージ空き容量のスロットと見なされてよい。したがって、この例では、サーバ・インデックスN+1はタグ番号を表し、タグ番号は、この場合も、ユーザ・デバイス54のセット55のタグの計算のための一意の番号である。この実施形態によれば、ユーザ・デバイス54が、暗号文CN+1をサーバ12に送信し、サーバ12が暗号文CN+1をストレージ・システム34のテーブル910に書き込む。さらに、サーバ12は、対応するタグtagN+1をテーブル920の現在のブルーム・フィルタに追加する。さらに詳細には、サーバ12は、タグtagN+1を受信し、タグtagN+1の対応するハッシュ関数を計算し、現在のブルーム・フィルタBの対応する配列を更新する。
読み取りアクセスの場合、ステップ1010で、各デバイス54が、サーバ12によって発行された最新のサーバ・インデックスNに加えて、1つまたは複数のブルーム・フィルタB、B、…、Bをダウンロードする。
ステップ1020で、ブルーム・フィルタをダウンロードした各ユーザ・デバイス54が、シードおよびサーバ12から受信された最新のサーバ・インデックスNの疑似ランダム関数として比較タグctag_iを計算する。
ステップ1030で、ユーザ・デバイス54が、比較タグctag_iをダウンロードされたブルーム・フィルタBおよびBと比較する。ステップ1040で、ユーザ・デバイス54が、一致が存在するかどうか(すなわち、比較タグctag_iがブルーム・フィルタBおよびBのうちの1つのメンバーであるかどうか)を決定する。
一致が存在しない場合、ステップ1050で、ユーザ・デバイス54がサーバ・インデックスを1だけ減らす(すなわち、サーバ・インデックスをN−1に設定するか、または一般的に言えば、inew=iold−1のように設定する)。次に、ユーザ・デバイス54はステップ1020に戻り、別のステップ1030で、新しい比較タグctag_N−1をシードおよび減らされたサーバ・インデックスN−1の疑似ランダム関数として計算する。その後、新しいステップ1040で、ユーザ・デバイス54が、一致が存在するかどうかを決定する。やはり一致が存在しない場合、一致が存在するまで、再びサーバ・インデックスを減らすことによって、ループが繰り返される。
一致が存在する場合、ステップ1060で、ユーザ・デバイス54が暗号化済みファイル/暗号文C_iを読み取る/取り出す。
最後にステップ1070で、ユーザ・デバイス54によって、匿名暗号化方式の秘密キーを用いて暗号化済みファイルC_iが暗号解読される。
代替の実施形態によれば、タグ番号は、ユーザ・デバイス54によって生成されるノンスであってよい。そのような実施形態によれば、書き込みアクセスは、ノンスを暗号化済みファイルおよび関連するタグと一緒にサーバ12に書き込むステップを含む。さらに、読み取りアクセスは、タグ・データまたはタグおよび対応するノンスをサーバ12からダウンロードするステップと、シードおよびダウンロードされたノンスの疑似ランダム関数を計算することによって比較タグを計算するステップとを含む。
図11は、ユーザ・デバイス54のより詳細な実施形態を含んでいるシステム1100の概略ブロック図を示している。この例によれば、ユーザ・デバイス54はデスクトップ・コンピュータとして示されている。実施形態例では、ハードウェア・アーキテクチャに関して図11に示されているように、ユーザ・デバイス54は、プロセッサ1105、メモリ・コントローラ1115に結合されたメモリ1110、ならびにローカル入出力コントローラ1135を介して通信可能に結合された1つまたは複数の入力または出力あるいはその両方の(I/O:input and/or output)デバイス1140、1145、1150、1155(または周辺機器)を含む。入出力コントローラ1135は、1つまたは複数のバスあるいは当技術分野において知られたその他の有線接続または無線接続であることができるが、これらに限定されない。入出力コントローラ1135は、簡単にするために省略されている、通信を可能にするためのコントローラ、バッファ(キャッシュ)、ドライバ、リピータ、およびレシーバなどのその他の要素を含むことができる。さらに、ローカル・インターフェイスは、前述のコンポーネント間の適切な通信を可能にするために、アドレス、制御部、またはデータ接続、あるいはその組み合わせを含んでよい。
プロセッサ1105は、ソフトウェア、詳細には、メモリ1110に格納されたソフトウェアを実行するためのハードウェア・デバイスである。プロセッサ1105は、カスタムメイドであるか、あるいは市販されたプロセッサ、中央処理装置(CPU:central processing unit)、コンピュータ1101に関連付けられた複数のプロセッサ間の補助プロセッサ、(マイクロチップまたはチップ・セットの形態での)半導体ベースのマイクロプロセッサ、または一般的に、ソフトウェア命令を実行するため任意のデバイスであることができる。
メモリ1110は、揮発性メモリ素子(例えば、ランダム・アクセス・メモリ)および不揮発性メモリ素子のうちの任意の1つまたは組み合わせを含むことができる。さらに、メモリ1110は電子、磁気、光、またはその他の種類のストレージ媒体、あるいはその組み合わせを組み込んでよい。メモリ1110が、さまざまなコンポーネントが互いに遠く離れた位置にあるが、プロセッサ1105によってアクセスされ得る、分散アーキテクチャを含むことができるということに注意する。
メモリ1110内のソフトウェアは、1つまたは複数の別々のプログラム、特に、中央クラウド・サーバに対する匿名読み取り/書き込みアクセスを実行するためのプログラムを含んでよい。図11の例では、メモリ1110内のソフトウェアは、実施形態例に従う本明細書に記載された方法、および適切なオペレーティング・システム(OS:operating system)1111を含む。OS1111は、基本的に、本明細書に記載された方法などの他のコンピュータ・プログラムの実行を制御し、スケジューリング、入出力制御、ファイルおよびデータの管理、メモリ管理、ならびに通信制御および関連するサービスを提供する。
場合によっては、従来のキーボード1150およびマウス1155が(特に、必要に応じてBS用の)入出力コントローラ1135に結合され得る。その他のI/Oデバイス1140〜1155は、(特にネットワーク要素の場合に)センサ(すなわち、温度または圧力(監視される物理データ)のような物理的条件における変化に対する測定可能な応答を生成するハードウェア・デバイス)を含んでよい。通常は、センサによって生成されたアナログ信号が、アナログ/デジタル・コンバータによってデジタル化され、さらに処理するためにコントローラ1135に送信される。
加えて、I/Oデバイス1140〜1155は、入力および出力の両方を伝達するデバイスをさらに含んでよい。システム1100は、ディスプレイ1140に結合されたディスプレイ・コントローラ1125をさらに含むことができる。実施形態例では、システム1100は、ネットワーク1165に結合するためのネットワーク・インターフェイスまたはトランシーバ1160をさらに含むことができる。
ネットワーク1165は、ユーザ・デバイス54と外部システム(特に、図1を参照して説明されたように、サーバ12)の間でデータを送受信する。ネットワーク1165は、例えば、WiFi、WiMaxなどの無線プロトコルおよび無線技術を使用して、無線方式で実装されることがある。ネットワーク1165は、固定無線ネットワーク、無線ローカル・エリア・ネットワーク(LAN:local area network)、無線広域ネットワーク(WAN:wide area network)、パーソナル・エリア・ネットワーク(PAN:personal area network)、仮想プライベート・ネットワーク(VPN:virtual private network)、インターネット、またはその他の適切なネットワーク・システムであってよく、信号を送受信するための機器を含む。
ネットワーク1165は、ユニット1101と、任意の外部サーバ、クライアントなどとの間でブロードバンド接続(特に、図1を参照して説明されたようなサーバ12などのクラウド・サーバとの接続)を介して通信するためのIPベースのネットワークであることもできる。実施形態例では、ネットワーク1165は、サービス・プロバイダによって管理された管理IPネットワークであることができる。加えて、ネットワーク1165は、LAN、WAN、インターネット・ネットワークなどのパケット交換ネットワークであることができる。
ユニット1101がPC、ワークステーション、インテリジェント・デバイスなどである場合、メモリ1110内のソフトウェアは、基本入出力システム(BIOS:basic input output system)をさらに含んでよい。BIOSは、コンピュータ1101を起動させたときにBIOSを実行できるように、ROMに格納される。
ユーザ・デバイス54が動作中であるときに、プロセッサ1105は、メモリ1110内に格納されたソフトウェアを実行することと、データをメモリ1110との間で伝達することと、ソフトウェアに従ってコンピュータ1101の動作を全体的に制御することとを実行するように構成される。本明細書に記載された方法およびOS1111は、全体的または部分的に、プロセッサ1105によって読み取られ、通常はプロセッサ1105内のバッファに格納されてから、実行される。
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、サーバ12またはユーザ・デバイス54あるいはその両方のプロセッサ/プロセッシング・ユニットに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいる1つまたは複数のコンピュータ可読記憶媒体を含んでよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されているコンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一時的信号であると解釈されるべきではない。
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
本発明の処理を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
本発明の態様は、本明細書において、本発明の実施形態に記載された方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ実施プロセスを作出するべく、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれ、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行させるものであってもよい。
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に記載されているシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および処理を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、指定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令を組み合わせて実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
本発明のさまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に限定されない。記載された実施形態の範囲および思想を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかである。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択された。

Claims (25)

  1. サーバに対するユーザ・デバイスのセットの匿名読み取り/書き込みアクセスを実行するためのコンピュータ実装方法であって、前記ユーザ・デバイスのセットがユーザまたはユーザ・グループに関連付けられており、
    前記セットの前記ユーザ・デバイスのうちの1つの書き込みアクセスが、
    前記セットの前記ユーザ・デバイスのうちの前記1つのプロセッサ・システムを使用して、匿名暗号化方式によって暗号化済みファイルを生成するステップと、
    前記プロセッサ・システムを使用して疑似ランダム・タグを計算するステップと、
    前記タグを前記ユーザ・セットのユーザ・セット・インデックスとして使用して、前記暗号化済みファイルにインデックスを付けるステップと、
    前記暗号化済みファイルおよび前記関連するタグを前記サーバのストレージ・システムに送信するステップと
    を含んでおり、
    前記セットの前記ユーザ・デバイスのうちの前記1つの読み取りアクセスが、
    複数のタグに対応するタグ・データを前記サーバからダウンロードするステップであって、前記タグ・データが、各セットの前記ユーザ・デバイスがそれ自身のタグを認識できるようにし、前記ユーザ・デバイス自身のタグが前記ユーザ・デバイスの各セットの前記ユーザ・デバイスのうちの1つによって計算されたタグを含んでいる、前記ダウンロードするステップと、
    前記複数のタグのうちから前記ユーザ・デバイス自身のタグを決定するステップと、
    前記ユーザ・デバイス自身のタグに関連付けられた1つまたは複数の暗号化済みファイルを読み取るステップと、
    前記暗号化済みファイルを暗号解読するステップと
    を含む、コンピュータ実装方法。
  2. 疑似ランダム・タグを計算するステップが、シードおよびタグ番号の疑似ランダム関数を計算するステップを含み、前記タグ番号が前記ユーザ・デバイスのセットの前記タグの前記計算のための一意の番号である、請求項1に記載のコンピュータ実装方法。
  3. 前記ユーザ・デバイスに、前記匿名暗号化方式の1つまたは複数の暗号化キーおよび1つまたは複数の対応する暗号解読キーを提供するステップと、
    前記ユーザ・デバイスに、共有疑似ランダム関数および共有シードを提供するステップと、
    前記1つまたは複数の暗号化キーのうちの少なくとも1つを使用して、格納されるファイルを暗号化するステップと、
    前記疑似ランダム関数を用いて前記共有シードおよび前記タグ番号から前記疑似ランダム・タグを計算するステップと
    をさらに含む、請求項2に記載のコンピュータ実装方法。
  4. 前記タグ番号が、前記ユーザ・デバイスのカウンタによって計算されるカウンタ値である、請求項2または3に記載のコンピュータ実装方法。
  5. 前記タグ番号が、前記ユーザ・デバイスによって生成されたノンスであり、
    書き込みアクセスが、前記ノンスを前記暗号化済みファイルおよび前記関連するタグと一緒に前記サーバに書き込むステップを含み、
    読み取りアクセスが、前記タグ・データおよび前記対応するノンスを前記サーバからダウンロードするステップを含む、請求項2または3に記載のコンピュータ実装方法。
  6. 前記タグ番号が、前記サーバによって提供されたサーバ・インデックスである、請求項2または3に記載のコンピュータ実装方法。
  7. 1つまたは複数の暗号化済みファイルを読み取るステップが、プライベート情報検索(PIR)プロトコルを実行するステップを含む、請求項1ないし6のいずれか一項に記載のコンピュータ実装方法。
  8. 1つまたは複数の暗号化済みファイルを読み取るステップが、紛失通信プロトコルを実行するステップを含む、請求項1ないし7のいずれか一項に記載のコンピュータ実装方法。
  9. 前記ユーザ・デバイス自身のタグを決定するステップが、
    前記シードおよび事前に定義されたタグ番号のセットの疑似ランダム関数を計算することによって比較タグを計算するステップと、
    前記ダウンロードされたタグ・データを前記計算された比較タグと比較して、一致するタグを識別するステップと
    を含み、
    前記事前に定義されたタグ番号のセットが、ユーザ・デバイスの1つまたは複数のセットのユーザ・デバイスによって以前に使用されたタグ番号を含む、請求項2ないし6のいずれか一項に記載のコンピュータ実装方法。
  10. 前記匿名暗号化方式が対称暗号化方式または非対称暗号化方式である、請求項1ないし9のいずれか一項に記載のコンピュータ実装方法。
  11. タグ・データをダウンロードするステップが、複数のタグをダウンロードするステップを含む、請求項1ないし10のいずれか一項に記載のコンピュータ実装方法。
  12. タグ・データをダウンロードするステップが、1つまたは複数のブルーム・フィルタをダウンロードするステップを含み、前記ブルーム・フィルタが、前記ブルーム・フィルタの配列の1つまたは複数の位置への前記タグのマッピングを含む、請求項1ないし11のいずれか一項に記載のコンピュータ実装方法。
  13. 前記各ユーザ・デバイスによって、前記ユーザ・デバイスによって計算された最新のタグを前記ダウンロードされたタグ・データと比較するステップと、
    一致が存在しない場合にさらにタグをダウンロードするステップと、
    一致が存在する場合に、前記カウンタ値を増やし、前記疑似ランダム関数を用いて前記シードおよび前記増やされたカウンタ値から新しいタグを計算するステップと、
    前記各ユーザ・デバイスによって、前記新しいタグを前記ダウンロードされたタグ・データと比較するステップと、
    前記増やし計算するステップおよびその後の前記比較するステップを、一致が検出されなくなるまで繰り返すステップと、
    一致をもたらした最大のカウンタ値を含む前記タグに関連付けられた前記暗号化済みファイルを読み取るステップと
    を含む、請求項4に記載のコンピュータ実装方法。
  14. 複数のタグおよび前記関連するノンスを前記サーバからダウンロードするステップと、
    前記シードおよび前記ダウンロードされたノンスの前記疑似ランダム関数を計算することによって比較タグを計算するステップと、
    前記比較タグを前記タグ・データと比較して一致を識別するステップと
    を含む、請求項5に記載のコンピュータ実装方法。
  15. 読み取りアクセスが、
    前記サーバから発行された最新のサーバ・インデックスを受信するステップと、
    比較タグを、前記シードおよびタグ番号の疑似ランダム関数として連続的に減少する順序で計算するステップであって、前記タグ番号が前記最新のサーバ・インデックスから開始して連続的に減らされる、前記計算するステップと、
    前記比較タグを前記タグ・データと比較して一致を識別するステップと
    を含む、請求項6に記載のコンピュータ実装方法。
  16. サーバによって匿名ストレージ・サービスをユーザ・デバイスのセットに提供するためのコンピュータ実装方法であって、前記ユーザ・デバイスのセットがユーザまたはユーザ・グループに関連付けられており、前記方法が、
    前記サーバによって、格納されるファイルを受信するステップであって、前記ファイルが匿名暗号化方式に従って暗号化されている、前記受信するステップと、
    前記サーバによって、疑似ランダム・タグをユーザ・セット・インデックスとして受信するステップと、
    前記暗号化済みファイルを関連するタグ・データと一緒に格納するステップであって、前記タグ・データが、各セットの前記ユーザ・デバイスがそれ自身のタグを認識できるようにし、前記ユーザ・デバイス自身のタグが前記ユーザ・デバイスの各セットの前記ユーザ・デバイスのうちの1つによって計算されたタグを含んでいる、前記格納するステップと、
    ユーザ・デバイスの読み取り要求に応答して、複数のタグに対応するタグ・データを前記ユーザ・デバイスに提供するステップと
    を含む、コンピュータ実装方法。
  17. 前記ストレージ・サービスがクラウド環境内で提供される、請求項16に記載のコンピュータ実装方法。
  18. 前記サーバによって、前記ユーザ・デバイスから受信された前記タグをブルーム・フィルタに追加するステップを含み、前記ブルーム・フィルタが前記ブルーム・フィルタの配列の1つまたは複数の配列位置への前記タグのマッピングを実行する、請求項16または17に記載のコンピュータ実装方法。
  19. 匿名ストレージ・サービスをユーザ・デバイスのセットに提供するためのサーバであって、前記ユーザ・デバイスのセットがユーザまたはユーザ・グループに関連付けられており、前記サーバが、
    格納されるファイルを受信することであって、前記ファイルが匿名暗号化方式に従って暗号化されている、前記受信することと、
    疑似ランダム・タグをユーザ・セット・インデックスとして受信することと、
    前記暗号化済みファイルを関連するタグ・データと一緒に格納することであって、前記タグ・データが、各セットの前記ユーザ・デバイスが前記ユーザ・デバイスの各セットの前記ユーザ・デバイスのうちの1つによって計算された前記ユーザ・デバイス自身のタグを認識できるようにする、前記格納することと、
    ユーザ・デバイスの読み取り要求に応答して、複数のタグに対応するタグ・データを前記ユーザ・デバイスに提供することと
    を実行するように構成されている、サーバ。
  20. 前記サーバが、クラウド環境内でストレージ・サービスを提供するように構成されている、請求項19に記載のサーバ。
  21. 前記サーバが、前記ユーザ・デバイスから受信された前記タグをブルーム・フィルタに追加するように構成されており、前記ブルーム・フィルタが前記ブルーム・フィルタの配列の1つまたは複数の配列位置への前記タグのマッピングを実行するように構成されている、請求項19または20に記載のサーバ。
  22. サーバに対する匿名読み取り/書き込みアクセスを実行するためのユーザ・デバイスであって、前記ユーザ・デバイスがユーザまたはユーザ・グループに関連付けられており、前記ユーザ・デバイスが、
    書き込みアクセスを実行することであって、
    前記ユーザ・デバイスのプロセッサ・システムを使用して、匿名暗号化方式によって暗号化済みファイルを生成すること、
    前記プロセッサ・システムを使用して疑似ランダム・タグを計算すること、
    前記タグを前記ユーザ・セットのユーザ・セット・インデックスとして使用して、前記暗号化済みファイルにインデックスを付けること、ならびに
    前記暗号化済みファイルおよび前記関連するタグを前記サーバのストレージ・システムに送信すること
    を含んでいる、前記書き込みアクセスを実行することと、
    読み取りアクセスを実行することであって、
    複数のタグに対応するタグ・データを前記サーバからダウンロードすることであって、前記タグ・データが、各セットの前記ユーザ・デバイスが前記ユーザ・デバイスの各セットの前記ユーザ・デバイスのうちの1つによって計算された前記ユーザ・デバイス自身のタグを認識できるようにする、前記ダウンロードすること、
    前記複数のタグのうちから前記ユーザ・デバイス自身のタグを決定すること、
    前記ユーザ・デバイス自身のタグに関連付けられた1つまたは複数の暗号化済みファイルを読み取ること、および
    前記暗号化済みファイルを暗号解読すること
    を含んでいる、前記読み取りアクセスを実行することと
    を実行するように構成されている、ユーザ・デバイス。
  23. 前記ユーザ・デバイスが、
    前記疑似ランダム・タグを、前記ユーザ・デバイスのセットの共有シードおよびタグ番号の疑似ランダム関数として計算することであって、前記タグ番号が、前記ユーザ・デバイスのセットの前記タグの前記計算のための一意の番号である、前記計算することと、
    前記ユーザ・デバイスのセットの共有暗号化キーを使用して、格納されるファイルを暗号化することと
    を実行するように構成されている、請求項22に記載のユーザ・デバイス。
  24. サーバに対するユーザ・デバイスのセットの匿名読み取り/書き込みアクセスのためのコンピュータ・プログラム製品であって、前記ユーザ・デバイスのセットがユーザまたはユーザ・グループに関連付けられており、
    前記コンピュータ・プログラム製品が、プログラム命令が具現化されている非一時的コンピュータ可読記憶媒体を備えており、前記プログラム命令が、前記ユーザ・デバイスに方法を実行させるように、前記ユーザ・デバイスによって実行可能であり、前記方法が、
    書き込みアクセスを実行するステップであって、
    匿名暗号化方式によって暗号化済みファイルを生成するステップ、
    疑似ランダム・タグを計算するステップ、
    前記タグを前記ユーザ・セットのユーザ・セット・インデックスとして使用して、前記暗号化済みファイルにインデックスを付けるステップ、ならびに
    前記暗号化済みファイルおよび前記関連するタグを前記サーバのストレージ・システムに送信するステップ
    を含んでいる、前記書き込みアクセスを実行するステップと、
    読み取りアクセスを実行するステップであって、
    複数のタグに対応するタグ・データを前記サーバからダウンロードするステップであって、前記タグ・データが、各セットの前記ユーザ・デバイスがそれ自身のタグを認識できるようにし、前記ユーザ・デバイス自身のタグが前記ユーザ・デバイスの各セットの前記ユーザ・デバイスのうちの1つによって計算されたタグを含んでいる、前記ダウンロードするステップ、
    前記複数のタグのうちから前記ユーザ・デバイス自身のタグを決定するステップ、
    前記ユーザ・デバイス自身のタグに関連付けられた1つまたは複数の暗号化済みファイルを読み取るステップ、および
    前記暗号化済みファイルを暗号解読するステップ
    を含んでいる、前記読み取りアクセスを実行するステップと
    を含んでいる、コンピュータ・プログラム製品。
  25. 前記プログラム命令が、前記ユーザ・デバイスに方法を実行させるように、前記ユーザ・デバイスによって実行可能であり、前記方法が、
    前記疑似ランダム・タグを、前記ユーザ・デバイスのセットの共有シードおよびタグ番号の疑似ランダム関数として計算するステップであって、前記タグ番号が、前記ユーザ・デバイスのセットの前記タグの前記計算のための一意の番号である、前記計算するステップと、
    前記ユーザ・デバイスのセットの共有暗号化キーを使用して、格納されるファイルを暗号化するステップと
    を含んでいる、請求項24に記載のコンピュータ・プログラム製品。
JP2018544223A 2016-03-22 2017-02-24 プライバシーが強化された中央データ・ストレージのためのコンピュータ実装方法、サーバ、ユーザ・デバイス、およびコンピュータ・プログラム製品 Active JP6781765B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/076,806 2016-03-22
US15/076,806 US10229285B2 (en) 2016-03-22 2016-03-22 Privacy enhanced central data storage
PCT/IB2017/051082 WO2017163140A1 (en) 2016-03-22 2017-02-24 Privacy enhanced central data storage

Publications (2)

Publication Number Publication Date
JP2019510261A true JP2019510261A (ja) 2019-04-11
JP6781765B2 JP6781765B2 (ja) 2020-11-04

Family

ID=59898653

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018544223A Active JP6781765B2 (ja) 2016-03-22 2017-02-24 プライバシーが強化された中央データ・ストレージのためのコンピュータ実装方法、サーバ、ユーザ・デバイス、およびコンピュータ・プログラム製品

Country Status (4)

Country Link
US (1) US10229285B2 (ja)
JP (1) JP6781765B2 (ja)
GB (1) GB2562825B (ja)
WO (1) WO2017163140A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022531496A (ja) * 2019-05-09 2022-07-06 グーグル エルエルシー Rlwe暗号文の圧縮および忘却型展開

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10437215B2 (en) * 2014-09-25 2019-10-08 Siemens Aktiengesellschaft Method and system for performing a configuration of an automation system
JP6696373B2 (ja) * 2016-09-09 2020-05-20 富士通株式会社 管理装置及び共用ネットワークシステム
GB2571049B (en) * 2016-12-30 2022-05-11 Bosch Gmbh Robert Method and system for search pattern oblivious dynamic symmetric searchable encryption
US11025596B1 (en) * 2017-03-02 2021-06-01 Apple Inc. Cloud messaging system
US10423449B2 (en) * 2017-11-20 2019-09-24 International Business Machines Corporation Allocating tasks in a computing environment
US20190244138A1 (en) * 2018-02-08 2019-08-08 Apple Inc. Privatized machine learning using generative adversarial networks
EP3776317B1 (en) * 2018-05-07 2022-07-06 Google LLC Private information retrieval with sublinear public-key operations
CN110661764A (zh) * 2018-06-29 2020-01-07 阿里巴巴集团控股有限公司 安全多方计算协议的输入获取方法和装置
US10942909B2 (en) * 2018-09-25 2021-03-09 Salesforce.Com, Inc. Efficient production and consumption for data changes in a database under high concurrency
CN112585620A (zh) 2018-09-28 2021-03-30 苹果公司 用于监督式学习的分布式标记
US11893127B2 (en) * 2018-12-21 2024-02-06 Acronis International Gmbh System and method for indexing and searching encrypted archives
US10790961B2 (en) * 2019-07-31 2020-09-29 Alibaba Group Holding Limited Ciphertext preprocessing and acquisition
CN111092715B (zh) * 2019-12-27 2023-06-16 山东师范大学 一种网约车信息安全处理方法、系统及设备
US11552958B2 (en) * 2020-10-01 2023-01-10 Bank Of America Corporation Geo-aware capture with reduced personal information disclosure
CN112966168B (zh) * 2021-03-11 2022-05-17 支付宝(杭州)信息技术有限公司 实现隐私保护的业务标签查询方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050259817A1 (en) * 2004-05-20 2005-11-24 Ramzan Zulfikar A Method and apparatus for communication efficient private information retrieval and oblivious transfer
JP2006210964A (ja) * 2005-01-24 2006-08-10 National Institute Of Information & Communication Technology エルガマル暗号による情報授受伝達方法及び装置
JP2009110401A (ja) * 2007-10-31 2009-05-21 Hitachi Ltd ファイル共有システム及びファイル共有方法
US20100191975A1 (en) * 2009-01-29 2010-07-29 Microsoft Corporation Privacy-preserving communication
JP2010165275A (ja) * 2009-01-19 2010-07-29 Mitsubishi Electric Corp データ格納システム及び情報送信装置及びサーバ装置
JP2012034250A (ja) * 2010-07-30 2012-02-16 Hiroshima City Univ 情報共有システム、データ処理装置、情報共有方法、情報共有プログラム、および、記録媒体
CN103916480A (zh) * 2014-04-15 2014-07-09 武汉理工大学 一种面向共享文件的文件加密系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134551A (en) * 1995-09-15 2000-10-17 Intel Corporation Method of caching digital certificate revocation lists
EP2166484A1 (fr) * 2008-09-19 2010-03-24 SCP Asclépios Procédé d'accès à des données nominatives, tel qu'un dossier médical personnalisé, à partir d'un agent local de génération
US8281149B2 (en) 2009-06-23 2012-10-02 Google Inc. Privacy-preserving flexible anonymous-pseudonymous access
US8788843B2 (en) 2011-10-28 2014-07-22 LogMeln, Inc. Storing user data in a service provider cloud without exposing user-specific secrets to the service provider
EP2590129A1 (en) * 2011-11-01 2013-05-08 Nederlandse Organisatie voor toegepast -natuurwetenschappelijk onderzoek TNO Recommender system that records group information
US8925075B2 (en) 2011-11-07 2014-12-30 Parallels IP Holdings GmbH Method for protecting data used in cloud computing with homomorphic encryption
US9160535B2 (en) 2012-03-19 2015-10-13 Dell Inc Truly anonymous cloud key broker
US8984582B2 (en) 2012-08-14 2015-03-17 Confidela Ltd. System and method for secure synchronization of data across multiple computing devices
US9135462B2 (en) 2012-08-29 2015-09-15 Box, Inc. Upload and download streaming encryption to/from a cloud-based platform
US9305298B2 (en) 2013-03-22 2016-04-05 Nok Nok Labs, Inc. System and method for location-based authentication
WO2016114842A1 (en) * 2014-10-31 2016-07-21 Convida Wireless, Llc End-to-end service layer authentication
US9894042B2 (en) * 2015-07-24 2018-02-13 Skyhigh Networks, Inc. Searchable encryption enabling encrypted search based on document type
US9704245B2 (en) * 2015-08-18 2017-07-11 International Business Machines Corporation Determining localization from images of a vicinity
US20170060941A1 (en) * 2015-08-25 2017-03-02 Futurewei Technologies, Inc. Systems and Methods for Searching Heterogeneous Indexes of Metadata and Tags in File Systems

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050259817A1 (en) * 2004-05-20 2005-11-24 Ramzan Zulfikar A Method and apparatus for communication efficient private information retrieval and oblivious transfer
JP2008500598A (ja) * 2004-05-20 2008-01-10 株式会社エヌ・ティ・ティ・ドコモ 通信効率の良い秘匿情報検索及び紛失通信のための方法及び装置
JP2006210964A (ja) * 2005-01-24 2006-08-10 National Institute Of Information & Communication Technology エルガマル暗号による情報授受伝達方法及び装置
JP2009110401A (ja) * 2007-10-31 2009-05-21 Hitachi Ltd ファイル共有システム及びファイル共有方法
JP2010165275A (ja) * 2009-01-19 2010-07-29 Mitsubishi Electric Corp データ格納システム及び情報送信装置及びサーバ装置
US20100191975A1 (en) * 2009-01-29 2010-07-29 Microsoft Corporation Privacy-preserving communication
JP2012034250A (ja) * 2010-07-30 2012-02-16 Hiroshima City Univ 情報共有システム、データ処理装置、情報共有方法、情報共有プログラム、および、記録媒体
CN103916480A (zh) * 2014-04-15 2014-07-09 武汉理工大学 一种面向共享文件的文件加密系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"より効率的な秘匿情報検索", 2009年暗号と情報セキュリティシンポジウム SCIS2009, JPN6020036860, 20 January 2009 (2009-01-20), pages 1 - 6, ISSN: 0004356357 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022531496A (ja) * 2019-05-09 2022-07-06 グーグル エルエルシー Rlwe暗号文の圧縮および忘却型展開
JP7212179B2 (ja) 2019-05-09 2023-01-24 グーグル エルエルシー Rlwe暗号文の圧縮および忘却型展開

Also Published As

Publication number Publication date
WO2017163140A1 (en) 2017-09-28
US10229285B2 (en) 2019-03-12
US20170277906A1 (en) 2017-09-28
GB201803470D0 (en) 2018-04-18
GB2562825B (en) 2022-03-30
GB2562825A (en) 2018-11-28
JP6781765B2 (ja) 2020-11-04

Similar Documents

Publication Publication Date Title
JP6781765B2 (ja) プライバシーが強化された中央データ・ストレージのためのコンピュータ実装方法、サーバ、ユーザ・デバイス、およびコンピュータ・プログラム製品
US11991273B2 (en) Storage device key management for encrypted host data
US10491568B1 (en) Management of encrypted data storage
JP7268948B2 (ja) 鍵管理システムにおける紛失疑似ランダム関数
US10686765B2 (en) Data access levels
US10887293B2 (en) Key identifiers in an obliviousness pseudorandom function (OPRF)-based key management service (KMS)
US10623186B1 (en) Authenticated encryption with multiple contexts
US20160173502A1 (en) Jurisdictional cloud data access
US10841081B2 (en) Threshold oblivious pseudorandom function in a key management system
KR20230078706A (ko) 포스트 양자 암호화를 사용하는 인증서 기반 보안
US9755832B2 (en) Password-authenticated public key encryption and decryption
US10754987B2 (en) Secure micro-service data and service provisioning for IoT platforms
US10135793B2 (en) Security maximization for a computer related device based on real-time reaction
US10715318B2 (en) Lightweight cryptographic service for simplified key life-cycle management
US10182121B2 (en) Cookie based session timeout detection and management
JP2023526793A (ja) 暗号化されたオブジェクトの作成者の識別
US20210281608A1 (en) Separation of handshake and record protocol
US11032708B2 (en) Securing public WLAN hotspot network access
US10972455B2 (en) Secure authentication in TLS sessions
US10554626B2 (en) Filtering of authenticated synthetic transactions
US11646878B2 (en) Distributing encrypted data objects with encryption information as metadata
US11201856B2 (en) Message security
KR20230096626A (ko) 속성 기반 접근 제어를 지원하는 실시간 IoT 데이터 공유 시스템 및 그 방법
JP2024510881A (ja) マルチクラウド環境における量子鍵配送

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181225

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190729

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200903

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201016

R150 Certificate of patent or registration of utility model

Ref document number: 6781765

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150