(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-06
(54)【発明の名称】端末装置によりORAMデータベースを使用するための方法、それに対応するコンピュータプログラム製品および機器
(51)【国際特許分類】
G06F 21/60 20130101AFI20241029BHJP
G09C 1/00 20060101ALI20241029BHJP
H04L 9/08 20060101ALI20241029BHJP
【FI】
G06F21/60 320
G09C1/00 660D
H04L9/08 B
H04L9/08 E
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024529932
(86)(22)【出願日】2022-11-18
(85)【翻訳文提出日】2024-05-17
(86)【国際出願番号】 EP2022082420
(87)【国際公開番号】W WO2023089098
(87)【国際公開日】2023-05-25
(32)【優先日】2021-11-19
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】522305092
【氏名又は名称】ナグラビジョン エス アー エール エル
【氏名又は名称原語表記】NAGRAVISION SARL
【住所又は居所原語表記】22-24 route de Geneve 1033 Cheseaux-sur-Lausanne Switzerland
(74)【代理人】
【識別番号】100098394
【氏名又は名称】山川 茂樹
(72)【発明者】
【氏名】ガリアルドーニ,トマソ
(72)【発明者】
【氏名】アミエット,ニルス
(57)【要約】
端末装置(100)により、遠隔サーバ(150)で作成されたORAMデータベースを使用するための方法を提案する。そのために、サードパーティの機器は、通信ネットワークを通して端末装置および遠隔サーバに接続され、-端末装置が送信した、遠隔サーバでORAMデータベースの作成をサードパーティの機器に開始させるリクエストを受信するステップ(S210)と、-前記遠隔サーバにORAMデータベース要素を送信することにより、遠隔サーバでORAMデータベースの作成を初期化するステップ(S220)と、-遠隔サーバで作成された前記ORAMデータベースに関連するメタデータを生成するステップ(S230)と、-端末装置に、遠隔サーバで作成された前記ORAMデータベースをサードパーティの機器を経ることなく端末装置が使用できるようにするためにメタデータを送信するステップ(S231)とを実行する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
端末装置(100)により、遠隔サーバ(150)で作成されたOblivious Random-Access Memoryデータベース,以後ORAMデータベース(150db)を使用するための方法であって、
サードパーティの機器は、通信ネットワーク(110、120)を通して前記端末装置および前記遠隔サーバに接続され、
-前記通信ネットワークを通して前記端末装置が送信した、前記遠隔サーバで前記ORAMデータベースの作成を前記サードパーティの機器に開始させるリクエストを受信するステップ(S210)
を実行すること、
ならびに前記リクエストを受信する前記ステップに応答して、前記サードパーティの機器は、
-前記通信ネットワークを通してORAMデータベース要素を前記遠隔サーバに送信することにより、前記遠隔サーバで前記ORAMデータベースの前記作成を初期化するステップ(S220)と、
-前記遠隔サーバで作成された前記ORAMデータベースに関連するメタデータ(130md)を生成するステップ(S230)と、
-前記通信ネットワークを通して前記端末装置に、前記遠隔サーバで作成された前記ORAMデータベースを前記サードパーティの機器を経ることなく前記端末装置が使用できるようにするために前記メタデータを送信するステップ(S231)と
を実行すること
を特徴とする方法。
【請求項2】
前記ORAMデータベースの前記作成を初期化する前記ステップ(S220)は、
-一時的対称暗号鍵(130tk)を生成するステップ(S221)と、
-前記一時的対称暗号鍵を用いて前記ORAMデータベースの初期データブロックを暗号化するステップ(S221)と、
-前記通信ネットワークを通して前記遠隔サーバに、前記ORAMデータベース要素の一部として、暗号化された初期データブロックを送信するステップ(S222)と
を備える、請求項1に記載の方法。
【請求項3】
前記メタデータは、前記一時的対称暗号鍵を備える、請求項2に記載の方法。
【請求項4】
前記サードパーティの機器は、前記端末装置に前記メタデータを送信する前記ステップに応答して、
-前記サードパーティの機器に記憶された前記メタデータを削除するステップ(S232)
を実行する、請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記サードパーティの機器は、前記端末装置に前記メタデータを送信する前記ステップの後に、
-前記通信ネットワークを通して前記端末装置から、前記一時的対称暗号鍵(130kt)と異なる秘密暗号鍵(100sk)に基づき暗号化された形で前記ORAMデータベースに関連するメタデータを受信するステップ(S270)
を実行する、請求項1~4のいずれか一項に記載の方法。
【請求項6】
端末装置(100)により、遠隔サーバ(150)で作成されたOblivious Random-Access Memoryデータベース,以後ORAMデータベース(150db)を使用するための方法であって、
前記端末装置は、通信ネットワークを通してサードパーティの機器および前記遠隔サーバに接続され、
-前記通信ネットワークを通して、前記遠隔サーバで前記ORAMデータベースの作成を前記サードパーティの機器に開始させるリクエストを送信するステップ(S210)と、
-前記通信ネットワークを通して前記サードパーティの機器から、前記遠隔サーバで作成されたORAMデータベースを前記サードパーティの機器を経ることなく前記端末装置が使用できるようにするメタデータ(130md)を受信するステップ(S231)と
を実行することを特徴とする方法。
【請求項7】
前記メタデータは、前記遠隔サーバに記憶された前記ORAMデータベースの初期ブロックを暗号化するために前記サードパーティの機器が使用した一時的対称暗号鍵(130kt)を備える、請求項6に記載の方法。
【請求項8】
前記端末装置は、
-前記通信ネットワークを通して前記サードパーティの機器に、前記サードパーティの機器が前記遠隔サーバで前記ORAMデータベースの前記作成を初期化するために前記遠隔サーバにアクセスできるように、アクセストークンを送信するステップ(S200)
を実行する、請求項6または7に記載の方法。
【請求項9】
前記端末装置は、前記サードパーティの機器から前記メタデータを受信する前記ステップの後に、
-前記サードパーティの機器が前記遠隔サーバで前記ORAMデータベースにこれ以上アクセスできないように、前記サードパーティの機器に送信した前記アクセストークンを取り消すステップ(S250)
を実行する、請求項8に記載の方法。
【請求項10】
前記端末装置は、前記ORAMデータベースで少なくとも1つのデータブロックの書込み(S260)を実行し、前記書込みは、
-前記一時的対称暗号鍵と異なる秘密暗号鍵(100sk)を用いて、前記ORAMデータベースの前記少なくとも1つのデータブロックを暗号化するステップ(S261)と、
-前記通信ネットワークを通して前記遠隔サーバに、前記ORAMデータベースに記憶するために、暗号化された前記少なくとも1つのデータブロックを送信するステップ(S262)と、
-前記暗号化された少なくとも1つのデータブロックの前記送信を考慮して前記メタデータを更新するステップ(S263)と
を備える、請求項6~9のいずれか一項に記載の方法。
【請求項11】
前記端末装置は、前記ORAMデータベースの前記少なくとも1つの暗号化されたデータブロックの読出し(S280)を実行し、前記読出しは、
-前記通信ネットワークを通して前記遠隔サーバから、前記ORAMデータベースの前記少なくとも1つの暗号化されたデータブロックを受信するステップ(S281)と、
-前記暗号化されたデータブロックを
-前記暗号化されたデータブロックが、前記サードパーティの機器が暗号化した、前記ORAMデータベースの初期ブロックであることを前記メタデータが示す場合には前記一時的対称暗号鍵(130tk)、または
-前記暗号化されたデータブロックが、前記端末装置が暗号化した、前記ORAMデータベースのデータブロックであることを前記メタデータが示す場合には前記秘密暗号鍵(100sk)
に基づき解読するステップ(S282)と
を備える、請求項6~10のいずれか一項に記載の方法。
【請求項12】
前記端末装置は、
-前記通信ネットワークを通して前記サードパーティの機器に、前記秘密暗号鍵に基づき暗号化された形で前記メタデータを送信するステップ(S270)
を実行する、請求項6~11のいずれか一項に記載の方法。
【請求項13】
コンピュータプログラム製品であって、請求項1~12のいずれか一項に記載の方法を実装するためのプログラムコード命令を備えるコンピュータプログラム製品。
【請求項14】
端末装置(100)により、遠隔サーバ(150)で作成されたOblivious Random-Access Memoryデータベース,以後ORAMデータベース(150db)を使用するための機器(100d)であって、
-通信ネットワークを通して前記端末装置が送信した、前記遠隔サーバで前記ORAMデータベースの作成をサードパーティの機器に開始させるリクエストを受信する
ように構成されたプロセッサ(302)または専用計算機械を備えること、
ならびに前記プロセッサまたは前記専用計算機械は、前記リクエストを受信することに応答して、
-前記通信ネットワークを通してORAMデータベース要素を前記遠隔サーバに送信することにより、前記遠隔サーバで前記ORAMデータベースの作成を初期化し、
-前記遠隔サーバで作成された前記ORAMデータベースに関連するメタデータ(130md)を生成し、
-前記通信ネットワークを通して前記端末装置に、前記遠隔サーバで作成された前記ORAMデータベースを前記サードパーティの機器を経ることなく前記端末装置が使用できるようにするために前記メタデータを送信する
ように構成されること
を特徴とする機器(100d)。
【請求項15】
端末装置(100)により、遠隔サーバ(150)で作成されたOblivious Random-Access Memoryデータベース,以後ORAMデータベース(150db)を使用するための機器(130d)であって、
-通信ネットワークを通してサードパーティの機器に、前記遠隔サーバで前記ORAMデータベースの作成を前記サードパーティの機器に開始させるリクエストを送信し、
-前記通信ネットワークを通して前記サードパーティの機器から、前記遠隔サーバで作成されたORAMデータベースを前記サードパーティの機器を経ることなく前記端末装置が使用できるようにするメタデータ(130md)を受信する
ように構成されたプロセッサ(402)または専用計算機械を備えること、
を特徴とする機器(130d)。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の分野は、遠隔サーバ上での、たとえば、クラウドでのデータバックアップの分野である。
【0002】
より具体的には、本開示は、端末装置から遠隔サーバ上でのそのようなデータバックアップのための方法に関する。
【0003】
本開示は、そのような端末装置が遠隔サーバ上でデータをバックアップする必要があるどんな分野でも対象となる可能性がある。これは、実例ではスマートホン、タブレットなどのような端末装置の場合である。
【背景技術】
【0004】
結局、より詳細には、本発明出願の発明者らが直面した移動機器(たとえば、スマートホン、タブレットなど)の分野での既存の問題について、記述することに集中する。本発明は当然のことながら、この特定の出願分野に限定されるのではなく、任意のタイプの端末装置(たとえば、ホームサーバ)のための、遠隔サーバ上でのデータバックアップが対象となる。
【0005】
たとえば、Google Driveなどのクラウド・プロバイダ・サービスで端末装置からデータをバックアップすることは公知である。これは多くの場合、好都合であるが、クラウド・ストレージ・プロバイダは、信頼できない可能性があり、ユーザにより記憶された機密データにアクセスできるので、プライバシーの必要性と対立する。そのようなデータの暗号化は、ユーザがファイルを読み出すかそれとも書き込むか、およびデータのどの部分にアクセスしているかをクラウドプロバイダが依然として理解できるので、プライバシーを保証するのに十分ではない。その情報を使用してユーザの活動を追跡できる。
【0006】
ORAM(Oblivious Random-Access Memory)は、これらのプライバシー問題に対処するための公知の解決手段である。より詳細には、ORAMは、何らかの性能損失という代償を払ってアクセスパターンを不明瞭にすることによりユーザのプライバシーを保護する暗号方式である。特に移動機器のような、限られた計算能力を有する装置で、この性能損失は著しく、ORAM解決手段をほとんど実用的でなくする。実際は、移動機器に関して多数の制約を認識できる。
-記憶装置を初期化し暗号化する必要があるので、ORAMの初期セットアップはかなり遅い。
-ORAMは、ORAMを動作させるために必要なクライアント側メタデータ(たとえば、データベースのデータブロックの位置マップなど)を記憶する必要がある。このクライアントメタデータが失われる、または機器が壊れる場合、暗号化されたデータは、使用できなくなり、永遠に失われる。
【発明の概要】
【発明が解決しようとする課題】
【0007】
このように、端末装置が限られた計算能力を有する場合でさえ、端末装置が遠隔サーバに記憶したデータの機密性を改善するための解決手段が必要である。
【課題を解決するための手段】
【0008】
本開示の特定の様態は、端末装置により、遠隔サーバが作成したORAMデータベースを使用するための方法に関する。通信ネットワークを通して、端末装置および遠隔サーバにサードパーティの機器を接続する。そのような方法によれば、サードパーティの機器は、通信ネットワークを通して端末装置が送信した、遠隔サーバでORAMデータベースの作成をサードパーティの機器に開始させるリクエストを受信するステップを実行する。リクエストを受信するステップに応答して、サードパーティの機器は、
-通信ネットワークを通して遠隔サーバにORAMデータベース要素を送信することにより、遠隔サーバでORAMデータベースの作成を初期化するステップと、
-遠隔サーバで作成したORAMデータベースに関連するメタデータを生成するステップと、
-通信ネットワークを通して端末装置に、遠隔サーバで作成したORAMデータベースをサードパーティの機器を経ることなく端末装置が使用できるようにするためにメタデータを送信するステップと
を実行する。
【0009】
このように、本開示は、端末装置が限られた計算能力を有する場合(たとえば、スマートホンまたはタブレット)でさえ、端末装置が遠隔サーバに記憶したデータの機密性を改善するための、新しく創意に富む解決手段を提案する。
【0010】
より詳細には、提案する解決手段により、そのような端末装置は、そのようなORAMデータベースの使用に関係する、最も計算を要求するステップの権限を、すなわち、遠隔サーバでORAMデータベースを自身で作成(または初期化)する権限をサードパーティの機器に委任することにより、ORAMデータベースを使用できるようになる。詳細には、ORAMデータベースが作成されると、ORAMデータベースを使用するために必要なメタデータは、端末装置に提供され、その結果、端末装置はさらに、作成されたORAMデータベースに(サードパーティの機器を経ることなく)直接アクセスできる。このように、データの機密性は、ORAMデータベースを作成するためにサードパーティの機器を使用するにもかかわらず、端末装置に保証される。
【0011】
いくつかの実施形態では、ORAMデータベースの生成を初期化するステップは、
一時的対称暗号鍵を生成するステップと、
一時的暗号鍵を用いてORAMデータベースの初期データブロックを暗号化するステップと、
-通信ネットワークを通して遠隔サーバに、ORAMデータベース要素の一部として、暗号化された初期データブロックを送信するステップと
を備える。
【0012】
いくつかの実施形態では、メタデータは、一時的対称暗号鍵を備える。
【0013】
このように、端末装置は、サードパーティの機器が初期化したときのORAMデータベースのデータブロックを解読できる。
【0014】
いくつかの実施形態では、端末装置にメタデータを送信するステップは、通信ネットワークを通して、暗号化され認証された通信チャネルを端末装置と確立するステップを備える。メタデータは、暗号化され認証された通信チャネルを通して送信される。
【0015】
いくつかの実施形態では、サードパーティの機器は、端末装置にメタデータを送信するステップに応答して、サードパーティの機器に記憶されたメタデータを削除するステップを実行する。
【0016】
このように、端末装置は、ORAMデータベースの所有権を獲得する。
【0017】
いくつかの実施形態では、サードパーティの機器は、端末装置にメタデータを送信した後に、通信ネットワークを通して端末装置から、一時的対称暗号鍵と異なる秘密暗号鍵に基づき暗号化された形で、ORAMデータベースに関連するメタデータを受信するステップを実行する。
【0018】
このように、メタデータのバックアップは、サードパーティの機器の中に記憶される。さらに、秘密暗号鍵はサードパーティの機器に未知であるので、サードパーティの機器は、メタデータを使用してORAMデータベースにアクセスできない。ORAMデータベースに記憶されたデータの機密性は守られる。
【0019】
本開示の別の様態によれば、端末装置は、通信ネットワークを通してサードパーティの機器および遠隔サーバに接続されるので、
-通信ネットワークを通してサードパーティの機器に、遠隔サーバでORAMデータベースの作成をサードパーティの機器に開始させるリクエストを送信するステップと、
-通信ネットワークを通してサードパーティの機器から、遠隔サーバで作成されたORAMデータベースをサードパーティの機器を経ることなく端末装置が使用できるようにするメタデータを受信するステップと
を実行する。
【0020】
いくつかの実施形態では、受信したメタデータは、遠隔サーバに記憶されたORAMデータベースの初期ブロックを暗号化するためにサードパーティの機器が使用した一時的対称暗号鍵を備える。
【0021】
いくつかの実施形態では、サードパーティの機器からメタデータを受信するステップは、通信ネットワークを通して、暗号化され認証された通信チャネルをサードパーティの機器と確立するステップを備える。メタデータは、暗号化され認証された通信チャネルを通して受信される。
【0022】
いくつかの実施形態では、端末装置は、通信ネットワークを通してサードパーティの機器に、サードパーティの機器が遠隔サーバでORAMデータベースの作成を初期化するために遠隔サーバをアクセスできるように、アクセストークンを送信するステップを実行する。
【0023】
いくつかの実施形態では、端末装置は、サードパーティの機器からメタデータを受信した後に、サードパーティの機器が遠隔サーバでORAMデータベースをこれ以上アクセスできないように、サードパーティの機器に送信したアクセストークンを取り消すステップを実行する。
【0024】
このように、ORAMデータベースに記憶されたデータの機密性は改善される。
【0025】
いくつかの実施形態では、端末装置は、ORAMデータベースで少なくとも1つのデータブロックの書込みを実行し、書込みは、
-一時的対称暗号鍵と異なる秘密暗号鍵を用いてORAMデータベースの少なくとも1つのデータブロックを暗号化するステップと、
-通信ネットワークを通して遠隔サーバに、ORAMデータベースに記憶するために、暗号化された少なくとも1つのデータブロックを送信するステップと、
-暗号化された少なくとも1つのデータブロックの送信を考慮して、メタデータを更新するステップと
を備える。
【0026】
いくつかの実施形態では、端末装置は、秘密暗号鍵を生成するステップを実行する。
【0027】
いくつかの実施形態では、端末装置は、ORAMデータベースの少なくとも1つの暗号化されたデータブロックの読出しを実行し、読出しは、
-通信ネットワークを通して遠隔サーバから、ORAMデータベースの少なくとも1つの暗号化されたデータブロックを受信するステップと、
-暗号化されたデータブロックが、サードパーティの機器が暗号化した、ORAMデータベースの初期ブロックであることをメタデータが示す場合には一時的暗号鍵に基づき、または暗号化されたデータブロックが、端末装置が暗号化した、ORAMデータベースのデータブロックであることをメタデータが示す場合には秘密暗号鍵に基づき、暗号化されたデータブロックを解読するステップと
を備える。
【0028】
いくつかの実施形態では、端末装置は、通信ネットワークを通してサードパーティの機器に、秘密暗号鍵に基づき暗号化された形でメタデータを送信するステップを実行する。
【0029】
いくつかの実施形態では、ORAMデータベースは、pathORAMタイプである。
【0030】
いくつかの実施形態では、メタデータは、データベースおよび隠し場所の情報の位置マップを備える。
【0031】
本開示の別の様態は、コンピュータプログラム製品であって、前記プログラムがコンピュータまたはプロセッサ上で実行されるときに、(上記で論じる異なる実施形態のいずれかで)ORAMデータベースを使用するための上述の方法を実装するためのプログラムコード命令を備えるコンピュータプログラム製品に関する。
【0032】
本開示の別の様態は、(上記で論じる異なる実施形態のいずれかで)端末装置が実行するときにORAMデータベースを使用するための上述の方法のステップのすべてまたは一部を実装するように構成された機器に関する。このように、この機器の特徴および有利な点は、前記方法の対応するステップの特徴および有利な点と同じである。したがって、この機器の特徴および有利な点についてこれ以上詳述しない。
【0033】
本開示の別の様態は、(上記で論じる異なる実施形態のいずれかで)サードパーティの機器が実行するときにORAMデータベースを使用するための上述の方法のステップのすべてまたは一部を実装するように構成された機器に関する。このように、この機器の特徴および有利な点は、前記方法の対応するステップの特徴および有利な点と同じである。したがって、この機器の特徴および有利な点についてこれ以上詳述しない。
【0034】
実施形態の他の特徴および有利な点は、示唆する網羅的ではない例として示す以下の記述、および添付図面から明らかになるであろう。
【図面の簡単な説明】
【0035】
【
図1】本開示の一実施形態による、サードパーティの機器および遠隔サーバと通信状態にある端末装置を例示する。
【
図2】本開示の一実施形態による、
図1の端末装置により、
図1の遠隔サーバで作成されたORAMデータベースを使用するための方法のステップを例示する。
【
図3】
図2の方法の対応するステップのすべてまたは一部を
図1の端末装置が実装できるようにする機器の構造ブロックの例を示す。
【
図4】
図2の方法の対応するステップのすべてまたは一部を
図1のサードパーティの機器が実装できるようにする機器の構造ブロックの例を示す。
【発明を実施するための形態】
【0036】
本明細書の図のすべてでは、同じ数値の参照符号は、類似する要素およびステップを指定する。
【0037】
次に
図1を参照して、本開示の一実施形態による、サードパーティの機器130および遠隔サーバ150と通信状態にある端末装置100について記述する。
【0038】
端末装置100(たとえば、スマートホン、無線通信モジュールを備え付けたタブレット)は、通信ネットワークを通してサードパーティの機器130および遠隔サーバ150(たとえば、ストレージプロバイダのサーバ)と通信状態にある。通信ネットワークは、無線通信ネットワーク、たとえば、3GPP(Third Generation Partnership Project)、本明細書では以後3GPP、2G、3G、4G、または5Gセルラーネットワークである。そのような通信ネットワークは、端末装置100との電波インタフェースを実装する基地局110と、サードパーティの機器130およびサーバ150とインタフェースで接続するコアネットワーク120とを備える。
【0039】
しかしながら、他の実施形態では、通信ネットワークは、たとえば、端末装置100が移動装置ではないとき(たとえば、端末装置100がホームサーバであるとき)、有線通信ネットワークである。
【0040】
図1に戻ると、
図2に関連して以下でさらに詳述する本開示の方法によれば、端末装置100は、サーバ150でORAMデータベース150dbを作成する権限をサードパーティの機器130に委任する。このように、サードパーティの機器130は、サーバ150でORAMデータベース150dbの作成を開始し、データベース150dbに関連するメタデータ130mdを生成する。メタデータ130mdは、端末装置100が直接、すなわちサードパーティの機器130を経ることなく、データベース150dbを使用できるようにするために、端末装置100に送信される。実例として、メタデータ130mdは、「スクランブルを元に戻す」ことができるようにし、かつクライアントが、すなわちこの場合、端末装置100が使用できるブロックの論理的順序づけにデータベース150db内のブロックの位置を戻すように連結する「位置マップ」(たとえば、ルックアップテーブル)を備える。
【0041】
サードパーティの機器130はまた、データベース150dbの初期データブロックを暗号化するための一時的対象暗号鍵130tkを生成する。実例では、サードパーティの機器130が生成するメタデータ130mdは、サードパーティの機器130が初期化したときのデータベース150dbのデータブロックを端末装置100が解読できるように、一時的対称暗号鍵130tkを備える。
【0042】
しかしながら、他の実施形態では、サードパーティの機器130は、データベース150dbの初期データブロックを暗号化するために、そのような一時的対象暗号鍵130tkを使用しない。そのような実施形態では、メタデータ130mdは、一時的対称暗号鍵130tkを備えない。
【0043】
図1に戻ると、端末装置100は、データベース150dbに記憶されるデータブロックを暗号化するために、一時的対称暗号鍵130tkと異なる秘密暗号鍵100skを使用する。このように、サードパーティの機器130は、秘密暗号鍵100skの知識がないので、端末装置100がデータベース150dbに記憶したデータブロックにアクセスできない。
【0044】
しかしながら、他の実施形態では、端末装置100は、データベース150dbに記憶されるデータブロックを暗号化するために一時的対称暗号鍵130tkと異なる秘密暗号鍵100skを使用しない。
【0045】
図1に戻ると、端末装置100は、
図2に関連して以下で論じるORAMデータベースを使用するための方法の対応するステップのすべてまたは一部を実装するように構成された手段を備える機器100dを備える。機器100dに実装された手段について、
図3に関連して以下でさらに論じる。
【0046】
サードパーティの機器130は、
図2に関連して以下で論じるORAMデータベースを使用するための方法の対応するステップのすべてまたは一部を実装するように構成された手段を備える機器130dを備える。機器130dに実装された手段について、
図4に関連して以下でさらに論じる。
【0047】
次に
図2を参照して、本開示の一実施形態による、端末装置100によりORAMデータベース150dbを使用するための方法について記述する。
【0048】
より具体的には、ステップS200で、端末装置100は、通信ネットワークを通してサードパーティの機器130にアクセストークンを送信する。アクセストークンは、サードパーティの機器130が遠隔サーバ150にアクセスして、遠隔サーバ150でデータベース150dbの作成を開始できるようにする。
【0049】
それに対応して、ステップS200で、サードパーティの機器130は、端末装置100が送信したアクセストークンを受信する。
【0050】
実例では、端末装置100は、そのようなアクセストークンを受信するリクエストを遠隔サーバ150に送信する。端末装置100が送信したリクエストを受信したことに応答して、遠隔サーバ150は、アクセストークンを生成して端末装置100に送信する。そのようなアクセストークンを使用して、トークンを所有する任意の機器が遠隔サーバ150にアクセスできる。したがって、アクセストークンは、サードパーティの機器130が、たとえば、データベース150dbの作成を開始するために、遠隔サーバ150にアクセスできるように、端末装置100によりサードパーティの機器130に送信される。
【0051】
しかしながら、他の実施形態では、アクセストークンを伴うそのような仕組みは実装されない。実例では、サードパーティの機器130は、たとえば、サードパーティの機器130および遠隔サーバ150を管理する当事者間で一般協定がある場合、遠隔サーバ150へのアクセス権をすでに与えられていてよい。
【0052】
図2に戻ると、ステップ210で、端末装置100は、通信ネットワークを通してサードパーティの機器130に、サーバ150でデータベース150dbの作成をサードパーティの機器130に開始させるリクエストを送信する。
【0053】
それに対応して、ステップS210で、サードパーティの機器130は、端末装置100が送信したリクエストを受信する。
【0054】
端末装置100が送信したリクエストを受信したことに応答して、サードパーティの機器130は、ステップS220の間に遠隔サーバ150にデータベース要素を送信することにより、遠隔サーバ150でデータベース150dbの作成を開始する。このように、データベース150dbの作成を開始する権限は、端末装置100からサードパーティの機器130に委任される。
【0055】
より詳細には、ステップS221で、サードパーティの機器130は、一時的対称暗号鍵130tkを生成し、一時的対称暗号鍵130tkを用いてデータベース150dbの初期データブロックを暗号化する。ステップS222で、サードパーティの機器130は、データベース要素の一部として、暗号化された初期データブロックを遠隔サーバ150に送信する。
【0056】
しかしながら、他の実施形態では、サードパーティの機器130は、データベース150dbの初期データブロックを暗号化するために、そのような一時的対象暗号鍵130tkを使用しない。いくつかの実施形態では、データベース要素は、たとえば、作成すべきデータベース150dbのサイズを含む、データベース150dbの作成を可能にする追加情報を備える。いくつかの実施形態では、データベース150dbの作成を開始する権限は、サードパーティの機器130から遠隔サーバ150にさらに委任される。
【0057】
図2に戻ると、ステップS230で、サードパーティの機器130は、遠隔サーバ150で作成されたデータベース150dbに関連するメタデータ130md(たとえば、
図1に関連して上記で論じるような「位置マップ」)を生成する。ステップS231で、サードパーティの機器130は、遠隔サーバ150で作成されたデータベース150dbを端末装置100が直接使用できるようにするために、メタデータ130mdを端末装置100に送信する。
【0058】
それに対応して、ステップS231で、端末装置100は、サードパーティの機器130が送信したメタデータ130mdを受信する。
【0059】
データベース150dbの初期データブロックを暗号化するために、サードパーティの機器130が一時的対称暗号鍵130tkを使用するいくつかの実施形態では、メタデータ130mdは、一時的対称暗号鍵130tkを備える。それに応じて、端末装置100は、サードパーティの機器130が初期化したときのデータベース150dbのデータブロックを解読できる。
【0060】
いくつかの実施形態では、サードパーティの機器130および端末装置100は、暗号化され認証された通信チャネルを確立して、通信ネットワークを通して互いに通信する。サードパーティの機器130は、暗号化され認証された通信チャネルを通して端末装置100にメタデータ130mdを送信する。それに対応して、端末装置100は、暗号化され認証された通信チャネルを通して、サードパーティの機器130が送信したメタデータ130mdを受信する。それに応じて、端末装置100とサードパーティの機器130の間の情報交換は安全になる。
【0061】
いくつかの実施形態では、データベース150dbは、移動機器に特に適したpathORAMタイプである。そのような実施形態では、メタデータ130mdは、データベース150dbの「位置マップ」に加えて、隠し場所情報を備える。
【0062】
図2に戻ると、ステップS232で、ステップS231の間に端末装置100にメタデータ130mdを送信したことに応答して、サードパーティの機器130は、生成したメタデータ130mdを削除する。このように、サードパーティの機器130が生成したときのメタデータ130mdは、サードパーティの機器130に記憶されたままではない。したがって、端末装置100は、データベース150dbの所有権を獲得する。
【0063】
しかしながら、他の実施形態では、サードパーティの機器130は、生成したメタデータ130mdを削除しない。
【0064】
図2に戻ると、ステップS250で、メタデータ130mdを受信した後、端末装置100は、ステップS200の間にサードパーティの機器130に送信したアクセストークンを取り消す。このように、サードパーティの機器130は、遠隔サーバ150でデータベース150dbにこれ以上アクセスできない。
【0065】
しかしながら、ステップS200を実装しない実施形態では、端末装置100は、ステップS250を実装しない。
【0066】
図2に戻ると、ステップS200~S250を実行した後、端末装置100は、今では自身の中に記憶された1つまたは複数のデータブロックを書き込むために、データベース150dbを使用できる。
【0067】
実例として、ステップS260で、端末装置100は、データベース150dbで1つまたは複数のデータブロックの書込みを実行する。
【0068】
その点に関して、ステップS261で、端末装置100は、一時的対称暗号鍵130tkと異なる秘密暗号鍵100skを生成し、秘密暗号鍵100skを用いて1つまたは複数のデータブロックを暗号化する。ステップS262で、端末装置100は、データベース150dbに記憶するために、1つまたは複数の暗号化されたデータブロックを遠隔サーバ150に送信する。ステップS263で、端末装置100は、1つまたは複数の暗号化されたデータブロックの送信を考慮してメタデータ130mdを更新する。
【0069】
しかしながら、他の実施形態では、端末装置100は、データベース150dbに記憶されるデータブロックを暗号化するために、一時的対称暗号鍵130tkと異なる秘密暗号鍵100skを使用しない。
【0070】
図2に戻ると、ステップS270で、端末装置100は、秘密暗号鍵100skに基づき暗号化された形でメタデータ130mdをサードパーティの機器130に送信する。それに対応して、ステップS270で、サードパーティの機器130は、端末装置100が送信した、秘密暗号鍵100skに基づき暗号化された形でメタデータ130mdを受信する。このように、メタデータ130mdのバックアップは、サードパーティの機器130の中に記憶される。さらに、秘密暗号鍵100skは、サードパーティの機器130に未知であるので、サードパーティの機器130は、メタデータ130mdを使用してデータベース150dbにアクセスできない。データベース150dbに記憶されたデータの機密性は、機器130の中にメタデータ130mdのバックアップがあるにもかかわらず守られる。
【0071】
しかしながら、他の実施形態では、端末装置100は、ステップS270を実行せず、メタデータ130mdは、バックアップとして記憶するためにサードパーティの機器130に送信されない。
【0072】
図2に戻ると、ステップS200~S250を実行した後、端末装置100はまた、データベース150dbの中に記憶された1つまたは複数のデータブロックを読み出すためにデータベース150dbを使用できる。
【0073】
実例として、ステップS280で、端末装置100は、データベース150dbに記憶された1つまたは複数のデータブロックの読出しを実行する。
【0074】
その点に関して、ステップS281で、遠隔サーバ150は、たとえば、端末装置100が送信したそのような1つまたは複数のデータブロックのリクエストに応答して、データベース150dbの1つまたは複数の暗号化されたデータブロックを端末装置100に送信する。それに応答して、ステップS281で、端末装置100は、データベース150dbの1つまたは複数の暗号化されたデータブロックを遠隔サーバ150から受信する。ステップS282で、端末装置100は、
-対応する暗号化されたデータブロックが、サードパーティの機器130が暗号化した、データベース150dbの初期ブロックであることをメタデータ130mdが示す場合には一時的対称暗号鍵130tk、または
-対応する暗号化されたデータブロックが、端末装置100が暗号化した、データベース150dbのデータブロックであることをメタデータ130mdが示す場合には秘密暗号鍵100sk
に基づき、1つまたは複数の暗号化されたデータブロックを解読する。
【0075】
データベース150dbに記憶された1つまたは複数のデータブロックを暗号化するために、一時的対称暗号鍵130tkおよび/または秘密暗号鍵100skを使用しない他の実施形態では、端末装置100は、データベース150dbに記憶された1つまたは複数のデータブロックを必ずしも解読しない。いずれの場合にも、端末装置100は、解読を必要とするかどうかを、該当する場合にはどちらかの暗号鍵に基づき決定するために、メタデータ130md内の情報に依存する。
【0076】
次に
図3を参照して、機器100dの中に実装された構造ブロックの例について記述する。
【0077】
より詳細には、(上記で開示する実施形態のいずれかによる)端末装置100が実行するような、
図2に関連して上記で論じる方法のステップのすべてまたは一部を実装できるために、いくつかの実施形態では、機器100dは、
-不揮発性メモリ303(たとえば、読出し専用メモリ(ROM)、ハードディスク、フラッシュメモリなど)と、
-揮発性メモリ301(たとえば、ランダムアクセスメモリ(RAM))およびプロセッサ302と
を備える。
【0078】
不揮発性メモリ303は、非一時的コンピュータ可読記憶キャリア媒体である。不揮発性メモリ303は、
図2に関連して上記で開示するさまざまな実施形態で、上記で記述する方法(ORAMデータベースを使用するための方法)のいくつかのステップを実装可能にするために、プロセッサ302が実行する実行可能プログラムコード命令を記憶する。
【0079】
初期化すると、上述のプログラムコード命令は、プロセッサ302が実行するように、不揮発性メモリ303から揮発性メモリ301に転送される。揮発性メモリ301は、同様にこの実行のために必要とされる変数およびパラメータを記憶するためのレジスタを含む。
【0080】
端末装置100が実行するような、ORAMデータベースを使用するための方法のステップは、
-PCタイプの装置、DSP(digital signal processor、デジタル・シグナル・プロセッサ)、またはマイクロプロセッサなどの再プログラム可能計算機械が実行する、取外し可能な(たとえば、CD-ROM、DVD-ROM、USBキー)または分離不能の非一時的コンピュータ可読キャリア媒体に記憶できる1組のプログラムコード命令を実行することにより、または
-FPGA(Field Programmable Gate Array)、ASIC(Application-Specific Integrated Circuit、特定用途向け集積回路)、または任意の専用ハードウェア構成要素などの専用機械または構成要素により
同じように満足のいくように実装されてよい。
【0081】
換言すれば、本開示は、コンピュータプログラム命令の形をとる純粋にソフトウェアに基づく実装に限定されるのではなく、同じくハードウェアの形、またはハードウェア部分およびソフトウェア部分を組み合わせる任意の形で実装されてよい。
【0082】
次に
図4を参照して、機器130dの中に実装された構造ブロックの例について記述する。
【0083】
より詳細には、(上記で開示する実施形態のいずれかによる)サードパーティの機器130が実行するような、
図2に関連して上記で論じる方法のステップのすべてまたは一部を実装できるために、いくつかの実施形態では、機器130dは、
-不揮発性メモリ403(たとえば、読出し専用メモリ(ROM)、ハードディスク、フラッシュメモリなど)と、
-揮発性メモリ401(たとえば、ランダムアクセスメモリ(RAM))およびプロセッサ402と
を備える。
【0084】
不揮発性メモリ403は、非一時的コンピュータ可読記憶キャリア媒体である。不揮発性メモリ403は、
図2に関連して上記で開示するさまざまな実施形態で、上記で記述する方法(ORAMデータベースを使用する方法)のいくつかのステップを実装可能にするために、プロセッサ402が実行する実行可能プログラムコード命令を記憶する。
【0085】
初期化すると、上述のプログラムコード命令は、プロセッサ402が実行するように、不揮発性メモリ403から揮発性メモリ401に転送される。揮発性メモリ401は、同様にこの実行のために必要とされる変数およびパラメータを記憶するためのレジスタを含む。
【0086】
サードパーティの機器130が実行するような、ORAMデータベースを使用するための方法のステップは、
-PCタイプの装置、DSP(digital signal processor、デジタル・シグナル・プロセッサ)、またはマイクロプロセッサなどの再プログラム可能計算機械が実行する、取外し可能な(たとえば、CD-ROM、DVD-ROM、USBキー)または分離不能の非一時的コンピュータ可読キャリア媒体に記憶できる1組のプログラムコード命令を実行することにより、または
-FPGA(Field Programmable Gate Array)、ASIC(Application-Specific Integrated Circuit、特定用途向け集積回路)、または任意の専用ハードウェア構成要素などの専用機械または構成要素により
同じように満足のいくように実装されてよい。
【0087】
換言すれば、本開示は、コンピュータプログラム命令の形をとる、純粋にソフトウェアに基づく実装に限定されるのではなく、同じくハードウェアの形、またはハードウェア部分およびソフトウェア部分を組み合わせる形で実装されてよい。
【手続補正書】
【提出日】2024-05-21
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
端末装置(100)により、遠隔サーバ(150)で作成されたOblivious Random-Access Memory(ORAM)データベース(150db)を使用するための方法であって、
サードパーティの機器は、通信ネットワーク(110、120)を通して前記端末装置および前記遠隔サーバに接続され、
-前記通信ネットワークを通して前記端末装置が送信した、前記遠隔サーバで前記ORAMデータベースの作成を前記サードパーティの機器に開始させるリクエストを受信するステップ(S210)
を実行すること、
ならびに前記リクエストを受信する前記ステップに応答して、前記サードパーティの機器は、
-前記通信ネットワークを通してORAMデータベース要素を前記遠隔サーバに送信することにより、前記遠隔サーバで前記ORAMデータベースの前記作成を初期化するステップ(S220)と、
-前記遠隔サーバで作成された前記ORAMデータベースに関連するメタデータ(130md)を生成するステップ(S230)と、
-前記通信ネットワークを通して前記端末装置に、前記遠隔サーバで作成された前記ORAMデータベースを前記サードパーティの機器を経ることなく前記端末装置が使用できるようにするために前記メタデータを送信するステップ(S231)と
を実行すること
を特徴とする方法。
【請求項2】
前記ORAMデータベースの前記作成を初期化する前記ステップ(S220)は、
-一時的対称暗号鍵(130tk)を生成するステップ(S221)と、
-前記一時的対称暗号鍵を用いて前記ORAMデータベースの初期データブロックを暗号化するステップ(S221)と、
-前記通信ネットワークを通して前記遠隔サーバに、前記ORAMデータベース要素の一部として、暗号化された初期データブロックを送信するステップ(S222)と
を備える、請求項1に記載の方法。
【請求項3】
前記メタデータは、前記一時的対称暗号鍵を備える、請求項2に記載の方法。
【請求項4】
前記サードパーティの機器は、前記端末装置に前記メタデータを送信する前記ステップに応答して、
-前記サードパーティの機器に記憶された前記メタデータを削除するステップ(S232)
を実行する、請求項1に記載の方法。
【請求項5】
前記サードパーティの機器は、前記端末装置に前記メタデータを送信する前記ステップの後に、
-前記通信ネットワークを通して前記端末装置から、前記一時的対称暗号鍵(130kt)と異なる秘密暗号鍵(100sk)に基づき暗号化された形で前記ORAMデータベースに関連するメタデータを受信するステップ(S270)
を実行する、請求項2に記載の方法。
【請求項6】
端末装置(100)により、遠隔サーバ(150)で作成されたOblivious Random-Access Memory(ORAM)データベース(150db)を使用するための方法であって、
前記端末装置は、通信ネットワークを通してサードパーティの機器および前記遠隔サーバに接続され、
-前記通信ネットワークを通して、前記遠隔サーバで前記ORAMデータベースの作成を前記サードパーティの機器に開始させるリクエストを送信するステップ(S210)と、
-前記通信ネットワークを通して前記サードパーティの機器から、前記遠隔サーバで作成されたORAMデータベースを前記サードパーティの機器を経ることなく前記端末装置が使用できるようにするメタデータ(130md)を受信するステップ(S231)と
を実行することを特徴とする方法。
【請求項7】
前記メタデータは、前記遠隔サーバに記憶された前記ORAMデータベースの初期ブロックを暗号化するために前記サードパーティの機器が使用した一時的対称暗号鍵(130kt)を備える、請求項6に記載の方法。
【請求項8】
前記端末装置は、
-前記通信ネットワークを通して前記サードパーティの機器に、前記サードパーティの機器が前記遠隔サーバで前記ORAMデータベースの前記作成を初期化するために前記遠隔サーバにアクセスできるように、アクセストークンを送信するステップ(S200)
を実行する、請求項6に記載の方法。
【請求項9】
前記端末装置は、前記サードパーティの機器から前記メタデータを受信する前記ステップの後に、
-前記サードパーティの機器が前記遠隔サーバで前記ORAMデータベースにこれ以上アクセスできないように、前記サードパーティの機器に送信した前記アクセストークンを取り消すステップ(S250)
を実行する、請求項8に記載の方法。
【請求項10】
前記端末装置は、前記ORAMデータベースで少なくとも1つのデータブロックの書込み(S260)を実行し、前記書込みは、
-前記一時的対称暗号鍵と異なる秘密暗号鍵(100sk)を用いて、前記ORAMデータベースの前記少なくとも1つのデータブロックを暗号化するステップ(S261)と、
-前記通信ネットワークを通して前記遠隔サーバに、前記ORAMデータベースに記憶するために、暗号化された前記少なくとも1つのデータブロックを送信するステップ(S262)と、
-前記暗号化された少なくとも1つのデータブロックの前記送信を考慮して前記メタデータを更新するステップ(S263)と
を備える、請求項7に記載の方法。
【請求項11】
前記端末装置は、前記ORAMデータベースの暗号化された前記少なくとも1つのデータブロックの読出し(S280)を実行し、前記読出しは、
-前記通信ネットワークを通して前記遠隔サーバから、前記ORAMデータベースの暗号化された前記少なくとも1つのデータブロックを受信するステップ(S281)と、
-前記暗号化されたデータブロックを
-前記暗号化されたデータブロックが、前記サードパーティの機器が暗号化した、前記ORAMデータベースの初期ブロックであることを前記メタデータが示す場合には前記一時的対称暗号鍵(130tk)、または
-前記暗号化されたデータブロックが、前記端末装置が暗号化した、前記ORAMデータベースのデータブロックであることを前記メタデータが示す場合には前記秘密暗号鍵(100sk)
に基づき解読するステップ(S282)と
を備える、請求項10に記載の方法。
【請求項12】
前記端末装置は、
-前記通信ネットワークを通して前記サードパーティの機器に、前記秘密暗号鍵に基づき暗号化された形で前記メタデータを送信するステップ(S270)
を実行する、請求項10に記載の方法。
【請求項13】
コンピュータプログラム製品であって、請求項1~12のいずれか一項に記載の方法を実装するためのプログラムコード命令を備えるコンピュータプログラム製品。
【請求項14】
端末装置(100)により、遠隔サーバ(150)で作成されたOblivious Random-Access Memory(ORAM)データベース(150db)を使用するための機器(100d)であって、
-通信ネットワークを通して前記端末装置が送信した、前記遠隔サーバで前記ORAMデータベースの作成をサードパーティの機器に開始させるリクエストを受信する
ように構成されたプロセッサ(302)または専用計算機械を備えること、
ならびに前記プロセッサまたは前記専用計算機械は、前記リクエストを受信することに応答して、
-前記通信ネットワークを通してORAMデータベース要素を前記遠隔サーバに送信することにより、前記遠隔サーバで前記ORAMデータベースの作成を初期化し、
-前記遠隔サーバで作成された前記ORAMデータベースに関連するメタデータ(130md)を生成し、
-前記通信ネットワークを通して前記端末装置に、前記遠隔サーバで作成された前記ORAMデータベースを前記サードパーティの機器を経ることなく前記端末装置が使用できるようにするために前記メタデータを送信する
ように構成されること
を特徴とする機器(100d)。
【請求項15】
端末装置(100)により、遠隔サーバ(150)で作成されたOblivious Random-Access Memory(ORAM)データベース(150db)を使用するための機器(130d)であって、
-通信ネットワークを通してサードパーティの機器に、前記遠隔サーバで前記ORAMデータベースの作成を前記サードパーティの機器に開始させるリクエストを送信し、
-前記通信ネットワークを通して前記サードパーティの機器から、前記遠隔サーバで作成されたORAMデータベースを前記サードパーティの機器を経ることなく前記端末装置が使用できるようにするメタデータ(130md)を受信する
ように構成されたプロセッサ(402)または専用計算機械を備えること、
を特徴とする機器(130d)。
【国際調査報告】