(57)【要約】  異なるデータファイルからのデータのランダムに選択された部分を含む、暗号化されたデータの複数のサブセットを生成するためにデータファイルを前処理する、データの分散型ストレージのためのシステムおよび方法が提供される。暗号化されたデータのサブセットは次いで、暗号化されたデータの各サブセットに対してランダムに選ばれる複数のリモートサーバに送信される。データを暗号化するために使用されたローカルの暗号鍵が、データファイルを復元するために必要とされる。このシステムおよび方法は、医療データの分散型ストレージに特に適している。【特許請求の範囲】
【請求項１】
データの分散型ストレージのためのシステムであって、
プロセッサと、
前記プロセッサによってアクセス可能なメモリと、
前記メモリに記憶されたプロセッサ可読命令のセットとを備え、プロセッサ可読命令の前記セットが、前記プロセッサによって、
複数のデータファイルを受信することと、
暗号化されたデータの複数のサブセットを生成するために前記複数のデータファイルを前処理することであって、暗号化されたデータの各サブセットが異なるデータファイルからのデータのランダムに選択された部分を備える、前処理することと、
データの前記複数のサブセットを複数のリモートサーバに送信することであって、データの各サブセットがランダムに選択されたリモートサーバに送信される、送信することと
を行うように実行可能である、システム。
【請求項２】
前記複数のデータファイルを前記前処理することが、
複数の暗号化されたデータファイルを生成するために前記複数のデータファイルの各々を暗号化することと、
複数の暗号化されたデータファイル部分を生成するために前記複数の暗号化されたデータファイルの各々を区分することと、
前記暗号化されたデータファイルのうちの少なくとも2つからの暗号化されたデータファイル部分を備える暗号化されたデータファイル部分の第1のサブセットを生成することと、
前記2つの暗号化されたデータファイルからの暗号化されたデータファイル部分を備える暗号化されたデータファイル部分の第2のサブセットを生成することと、
暗号化されたデータファイル部分の前記第1のサブセットを第1のリモートサーバに送信することと、
暗号化されたデータファイル部分の前記第2のサブセットを第2のリモートサーバに送信することとを備える、請求項1に記載のシステム。
【請求項３】
前記複数の暗号化されたデータファイル部分の各々が、それらのそれぞれの暗号化されたデータファイルからのランダムな長さのランダムファイル部分を備える、請求項2に記載のシステム。
【請求項４】
前記リモートサーバが互いに地理的に離れている、請求項1に記載のシステム。
【請求項５】
暗号化されたデータファイル部分の前記第1のサブセットおよび前記第2のサブセットが、重複する暗号化されたデータファイル部分を備える、請求項2に記載のシステム。
【請求項６】
前記リモートサーバが少なくとも1つのクラウドストレージプロバイダと通信している、請求項1に記載のシステム。
【請求項７】
前記複数のデータファイルの各々が暗号鍵を使用して暗号化される、請求項2に記載のシステム。
【請求項８】
前記暗号鍵が前記メモリにローカルに記憶される、請求項7に記載のシステム。
【請求項９】
前記複数のデータファイルが複数の医療データファイルを備える、請求項1に記載のシステム。
【請求項１０】
前記複数のデータファイルを前記前処理することが、
複数のデータファイル部分を生成するために前記複数のデータファイルの各々を区分することと、
複数の暗号化されたデータファイル部分を生成するために前記複数のデータファイル部分の各々を暗号化することと、
前記暗号化されたデータファイルのうちの少なくとも2つからの暗号化されたデータファイル部分を備える暗号化されたデータファイル部分の第1のサブセットを生成することと、
前記2つの暗号化されたデータファイルからの暗号化されたデータファイル部分を備える暗号化されたデータファイル部分の第2のサブセットを生成することと、
暗号化されたデータファイル部分の前記第1のサブセットを第1のリモートサーバに送信することと、
暗号化されたデータファイル部分の前記第2のサブセットを第2のリモートサーバに送信することとを備える、請求項1に記載のシステム。
【請求項１１】
データの分散型ストレージのための方法であって、
複数のデータファイルを受信するステップと、
暗号化されたデータの複数のサブセットを生成するために前記複数のデータファイルを前処理するステップであって、暗号化されたデータの各サブセットが異なるデータファイルからのデータのランダムに選択された部分を備える、ステップと、
データの前記複数のサブセットを複数のリモートサーバに送信するステップであって、データの各サブセットがランダムに選択されたリモートサーバに送信される、ステップとを備える、方法。
【請求項１２】
前記複数のデータファイルを前処理するステップが、
複数の暗号化されたデータファイルを生成するために前記複数のデータファイルの各々を暗号化するステップと、
複数の暗号化されたデータファイル部分を生成するために前記複数の暗号化されたデータファイルの各々を区分するステップと、
前記暗号化されたデータファイルのうちの少なくとも2つからの暗号化されたデータファイル部分を備える暗号化されたデータファイル部分の第1のサブセットを生成するステップと、
前記2つの暗号化されたデータファイルからの暗号化されたデータファイル部分を備える暗号化されたデータファイル部分の第2のサブセットを生成するステップと、
暗号化されたデータファイル部分の前記第1のサブセットを第1のリモートサーバに送信するステップと、
暗号化されたデータファイル部分の前記第2のサブセットを第2のリモートサーバに送信するステップとを備える、請求項11に記載の方法。
【請求項１３】
前記複数の暗号化されたデータファイル部分の各々が、それらのそれぞれの暗号化されたデータファイルからのランダムな長さのランダムファイル部分を備える、請求項12に記載の方法。
【請求項１４】
前記リモートサーバが互いに地理的に離れている、請求項11に記載の方法。
【請求項１５】
暗号化されたデータファイル部分の前記第1のサブセットおよび前記第2のサブセットが、重複する暗号化されたデータファイル部分を備える、請求項12に記載の方法。
【請求項１６】
前記リモートサーバが少なくとも1つのクラウドストレージプロバイダと通信している、請求項11に記載の方法。
【請求項１７】
前記複数のデータファイルの各々が暗号鍵を使用して暗号化される、請求項12に記載の方法。
【請求項１８】
前記暗号鍵が前記メモリにローカルに記憶される、請求項17に記載の方法。
【請求項１９】
前記複数のデータファイルが複数の医療データファイルを備える、請求項11に記載の方法。
【請求項２０】
前記複数のデータファイルを前処理する前記ステップが、
複数のデータファイル部分を生成するために前記複数のデータファイルの各々を区分するステップと、
複数の暗号化されたデータファイル部分を生成するために前記複数のデータファイル部分の各々を暗号化するステップと、
前記暗号化されたデータファイルのうちの少なくとも2つからの暗号化されたデータファイル部分を備える暗号化されたデータファイル部分の第1のサブセットを生成するステップと、
前記2つの暗号化されたデータファイルからの暗号化されたデータファイル部分を備える暗号化されたデータファイル部分の第2のサブセットを生成するステップと、
暗号化されたデータファイル部分の前記第1のサブセットを第1のリモートサーバに送信するステップと、
暗号化されたデータファイル部分の前記第2のサブセットを第2のリモートサーバに送信するステップとを備える、請求項11に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2018年2月7日に出願された米国仮特許出願第62/627,456号の優先権を主張し、その開示全体が参照によって本明細書に組み込まれる。
【０００２】
本発明は、セキュアなデータストレージに関し、より詳細には、セキュアで、かつローカルのデータストレージ要件を下げる、分散型データストレージのシステムおよび方法に関する。
【背景技術】
【０００３】
現在の医療データストレージシステムは、医療ファイルをローカルに記憶し、大量のストレージ空間を必要とする。そのような医療データストレージシステムは、停電、不満をもつ従業員、ハッカー、および他のネットワーク管理リスクによる紛失が生じやすい。現在のシステムでは、プロバイダが、特定された各々の新たな脅威に対してローカルネットワークセキュリティを維持して更新することが必要である。さらに、単一位置での紛失事故が、複数の患者の複数のファイルの紛失をもたらし得る。現在のシステムには、医療データを安全に記憶するためのセキュリティと冗長性が欠けている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、少なくとも上記の問題および/または欠点を解決し、少なくとも以後に説明される利点を提供することである。
【課題を解決するための手段】
【０００５】
本発明は、異なるデータファイルからのデータのランダムに選択された部分を含む暗号化されたデータの複数のサブセットを生成するためにデータファイルを前処理する、データの分散型ストレージのためのシステムおよび方法を提供する。暗号化されたデータのサブセットは次いで、暗号化されたデータの各サブセットに対してランダムに選ばれる複数のリモートサーバに送信される。データを暗号化するために使用されたローカルの暗号鍵が、データファイルを復元するために必要とされる。このシステムおよび方法は、医療データの分散型ストレージに特に適している。
【０００６】
本発明のある実施形態は、プロセッサと、プロセッサによってアクセス可能なメモリと、メモリに記憶されたプロセッサ可読命令のセットとを備える、データの分散型ストレージのためのシステムであり、このプロセッサ可読命令のセットは、プロセッサによって、複数のデータファイルを受信することと、暗号化されたデータの複数のサブセットを生成するために複数のデータファイルを前処理することであって、暗号化されたデータの各サブセットが異なるデータファイルからのデータのランダムに選択された部分を備える、前処理することと、データの複数のサブセットを複数のリモートサーバに送信することであって、データの各サブセットがランダムに選択されたリモートサーバに送信される、送信することとを行うように実行可能である。
【０００７】
本発明の別の実施形態は、データの分散型ストレージのための方法であり、この方法は、複数のデータファイルを受信するステップと、暗号化されたデータの複数のサブセットを生成するために複数のデータファイルを前処理するステップであって、暗号化されたデータの各サブセットが異なるデータファイルからのデータのランダムに選択された部分を備える、ステップと、データの複数のサブセットを複数のリモートサーバに送信するステップであって、データの各サブセットがランダムに選択されたリモートサーバに送信される、ステップとを備える。
【０００８】
本発明は、同様の参照番号が同様の要素を指す以下の図面を参照して詳しく説明される。
【図面の簡単な説明】
【０００９】
【図１】本発明のある例示的な実施形態による、データの分散型ストレージのためのシステムのブロック図である。
【図２】本発明の別の例示的な実施形態による、データの分散型ストレージのためのシステムのブロック図である。
【図３】本発明のある例示的な実施形態による、データの分散型ストレージのための方法のフローチャートである。
【図４】本発明のある例示的な実施形態による、図1および図2のシステムと図3の方法とを実装するための構成要素のブロック図である。
【図５】本発明のある例示的な実施形態による、図4の通信インターフェースのブロック図である。
【図６】本発明のある例示的な実施形態による、図4のメモリサブシステムのブロック図である。
【発明を実施するための形態】
【００１０】
本発明のシステムおよび方法の様々な実施形態の以下の詳細な説明において、1つまたは複数の実施形態の様々な態様の完全な理解をもたらすために、多数の具体的な詳細が記載される。しかしながら、1つまたは複数の実施形態は、これらの具体的な詳細の一部またはすべてを伴わずに実践され得る。他の事例では、実施形態の態様を不必要に曖昧にしないように、よく知られている方法、手順、および/または構成要素は詳しく説明されていない。
【００１１】
冠詞「a」および「an」は、冠詞の文法的な対象の1つまたは1つより多く(すなわち、少なくとも1つ)を指すために本明細書で使用される。例として、「要素(an element)」は、少なくとも1つの要素を意味し、1つより多くの要素を含み得る。別様に定義されない限り、本明細書で使用されるすべての技術用語は、本開示が属する当業者により一般に理解されるようなものと同じ意味を有する。
【００１２】
図面の外観は必ずしも縮尺通りではなく、本発明のいくつかの特徴は、明瞭さおよび簡潔さのために、大きさが誇張されて、またはいくらか概略的な形で示されていることがある。この説明では、「水平の」、「垂直の」、「上方」、「下方」、「上部」、「下部」、ならびにこれらの派生語(たとえば、「水平に」、「下方に」、「上方に」など)などの相対的な用語は、次いで説明されるような、または議論の対象である図面の外観において示されるような向きを指すものと解釈されるべきである。これらの相対的な用語は、説明の便宜上のためのものであり、通常は特定の向きを必要とすることは意図されない。
【００１３】
「内側に」対「外側に」、「縦に」対「横に」などを含む用語は、適宜、互いに対して、または長さ方向の軸に対して、または回転の軸もしくは中心に対して解釈されるべきである。「電気的に接続される」、「電気的に結合される」、または「信号通信している」などの、電気的な接触、結合などに関する用語は、要素が、互いに直接電気的に結合されるか、または、介在する要素を通じて、有線もしくはワイヤレス通信チャネルの任意の組合せを通じて、間接的に電気的に結合されるかのいずれかであるような、関係を指す。
【００１４】
本明細書で使用されるような「モジュール」という用語は、たとえば特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)を含み得る、ハードウェアを使用して実装される現実世界のデバイス、構成要素、もしくは構成要素の取り合わせ、または、(実行される間に)モジュールの機能を実行するための専用デバイスへとプロセッサシステムを変換する、モジュールの機能を実装するためのプロセッサシステムおよび命令のセットを意味する。
【００１５】
モジュールはまた、ハードウェア単独とソフトウェア制御されたハードウェアとの組合せとして実装されてもよく、いくつかの機能はハードウェア単独で支援され、他の機能はハードウェアとソフトウェアの組合せにより支援される。いくつかの実装形態では、モジュールの少なくとも一部分、およびいくつかの場合にはすべてが、オペレーティングシステム、システムプログラム、およびアプリケーションプログラムを実行するコンピュータまたはデバイスのプロセッサ上で実行されながら、マルチタスキング、マルチスレッディング、分散型(たとえば、クラウド)処理、または他のそのような技法を使用してモジュールを実装してもよい。そのようなコンピュータまたはデバイスの例は、限定はされないが、パーソナルコンピュータ(たとえば、デスクトップコンピュータまたはノートブックコンピュータ)、サーバ、自動支払機(ATM)、point-of-sale端末、家電機器、スマートフォン、タブレット、または携帯情報端末(PDA)などのモバイルコンピューティングデバイス、医療デジタルビデオレコーダ、および医療デジタルキャプチャデバイスを含む。
【００１６】
好ましい実施形態が開示されるが、本発明のシステムおよび方法のさらに他の実施形態が、例示的な実施形態を示して説明する以下の詳細な説明から当業者に明らかとなる。了解されるように、以下の開示は、様々な明らかな態様において、それらのすべてが本発明の趣旨および範囲から逸脱することなく、修正が可能である。また、本発明の特定の実施形態に言及することまたは言及しないことは、本発明の範囲を限定するものと解釈されるべきではない。
【００１７】
データの分散型ストレージのためのシステムおよび方法が開示される。このシステムおよび方法は特に、医療データの分散型ストレージに適しているので、本発明は医療データの文脈で説明される。しかしながら、本発明のシステムおよび方法は、あらゆるタイプのデータの分散型ストレージに使用できることを認識されたい。したがって、「医療データ」という用語が本発明の例示的な使用法として全体で使用されるが、「医療データ」の代わりにあらゆるデータが用いられ得ることを理解されたい。
【００１８】
図1は、本発明の1つの例示的な実施形態による、データの分散型ストレージのためのシステムのブロック図である。システム2は、1人または複数の介護者、プロバイダ、および/または他のデータ生成者からの医療データなどの、1つまたは複数のデータソース10a〜10nからデータ11を受信するように構成されるプロセッサ4を含む。様々な実施形態において、プロセッサ4は、コンピュータ、医療デジタルビデオレコーダ、医療デジタル画像キャプチャデバイスなどの中のプロセッサである。データ11が医療データである場合、医療データ11は、医療提供者(医師、専門医、介護者など)、医療施設(病院、医院、ホスピスケアなど)、および/または任意の他の適切なデータソース10a〜10nによって生成される医療ファイル12a〜12nを含み得る。データ11は、単一のソース(たとえば、ソース10a)から提供されてもよく、または複数のソース(たとえば、ソース10a〜10n)から提供されてもよい。
【００１９】
プロセッサ4は、データ11を受信してデータ11を前処理する。前処理は、たとえば、データ11内に含まれる個々のファイル12a〜12nの各々を暗号化することと、ファイル12a〜12nの各々を複数のランダムなデータ部分15a〜15nへと分離することとを含み得る。プロセッサ4は、複数のファイル12a〜12nの各々のための1つまたは複数のデータ部分15a〜15nを、ストレージのために1つまたは複数のランダムに選択されたリモートサーバ20a〜20nに送信する。リモートサーバ20a〜20nは、ランダムに選択された地理的位置に位置する。データ内の各ファイルの復元は、前処理の間に使用されるローカルの暗号鍵を保有するエンティティによってのみ可能である。システム2は、ローカルの鍵および/または他のローカルのセキュリティ対策がプロセッサ4によりアクセスされるローカルストレージに記憶されることだけが必要であることにより、ローカルストレージの要件を下げる。
【００２０】
図2は、本発明の別の例示的な実施形態による、データの分散型ストレージのためのシステムのブロック図である。図2の実施形態では、デバイス4は、暗号化モジュール30と、区分モジュール32と、サブセット生成モジュール34とを含む。
【００２１】
図3は、本発明のある例示的な実施形態による、医療データの分散型ストレージのための方法のフローチャートである。この方法は、図2のシステムを用いて実装されることが可能であり、図2に関して論じられる。
【００２２】
方法は、暗号化モジュール30がデジタル医療ファイル12a〜12nを受信する、ステップ102において開始する。次いで、ステップ104において、暗号化モジュール30が、複数の暗号化されたファイル14a〜14nを生成する。暗号化されたファイル14a〜14nの各々は、受信されたデジタル医療ファイル12a〜12nの各々に暗号鍵を適用することによって生成され得る。暗号鍵は、メモリに記憶されているローカルの暗号鍵、ネットワーク化されたストレージモジュール(図示せず)から受信されたネットワーク暗号鍵、1つまたは複数の規則に従って生成される生成された暗号鍵、および/または任意の他の適切な暗号鍵であり得る。
【００２３】
いくつかの実施形態では、同じ暗号鍵が、暗号化モジュール30によって受信されるデジタル医療ファイル12a〜12nの各々に適用される。他の実施形態では、2つ以上の暗号鍵が、デジタル医療ファイル12a〜12nの選択されたサブセットに適用され得る。たとえば、いくつかの実施形態では、暗号鍵は、ユーザ識別データ、クライアント識別データ、患者グループ識別データ、コーディングデータ、位置データ、および/または、受信されたデジタル医療ファイル12a〜12nと関連付けられる、かつ/もしくはその中に記憶されている任意の他の適切なデータに基づいて、複数の暗号鍵から選択され得る。
【００２４】
複数の暗号化されたファイル14a〜14nは、任意の適切な暗号化アルゴリズムを使用して暗号化モジュール30によって生成され得る。たとえば、様々な実施形態において、複数の暗号化されたファイル14a〜14nは、対称的暗号化アルゴリズム、非対称的暗号化アルゴリズム(たとえば、公開/非公開鍵暗号)、ハッシュアルゴリズム、鍵交換アルゴリズム、および/または任意の他の適切な暗号化アルゴリズムのうちの1つまたは複数によって生成され得る。適切な既知のアルゴリズムの例は、限定はされないが、トリプルDES/3DES(データ暗号化規格)、RSA(Rivest-Shamir-Adleman)、AES(Advanced Encryption Standard)、Blowfish、Twofish、MD5、SHA(Secure Hash Algorithm)、および/またはHMAC(Hash-based Message Authentication Code)を含み得る。
【００２５】
ステップ106において、区分モジュール32は、各々の暗号化されたファイル14a〜14nを複数のファイル部分18a〜18nへと区分する。ファイル部分18a〜18nの各々は、暗号化されたファイル14a〜14nの一部分を含む。ファイル部分18a〜18nの各々は、サイズがランダムであり、デジタル医療ファイル12のランダム部分を含む。いくつかの実施形態では、生成されるファイル部分18a〜18nの数は、各々の暗号化されたファイル14a〜14nに対してランダム化される。
【００２６】
図2および図3は、デジタル医療ファイル12a〜12nが暗号化モジュール30によってまず暗号化され、次いで区分モジュール32によって区分される過程を説明するが、デジタルメディアファイル12a〜12nが暗号化の前に区分モジュール32によって区分されてもよく、次いで区分されたファイルが暗号化モジュール30によって暗号化されてもよいことを認識されたい。
【００２７】
ステップ108において、サブセット生成モジュール34は、リモートサーバ20a〜20nへの送信のためのファイル部分18a〜18nのサブセット22a〜22nを生成する。リモートサーバ20a〜20nの各々に提供されるファイル部分18a〜18nのサブセット22a〜22nは、2つ以上の暗号化されたファイル14a〜14nと関連付けられるファイル部分18a〜18nを選択して、ファイル部分18a〜18nの選択されたサブセットをランダムに選択された順序でリモートサーバ20a〜20nに送信することによって、サブセット生成モジュール34によってランダムに生成される。たとえば、ステップ110において、第1の暗号化されたファイル14aと関連付けられる第1の数のファイル部分18a〜18nおよび第2の暗号化されたファイル14bと関連付けられる第1の数のファイル部分18a〜18nが選択され、第1のリモートサーバ20aへサブセット22aとしてランダムに送信され得る。ステップ112において、第1の暗号化されたファイル14aと関連付けられる第2の数のファイル部分18a〜18nおよび第2の暗号化されたファイル14bと関連付けられる第2の数のファイル部分18a〜18nが次いで選択され、第2のリモートサーバ20bへサブセット22bとしてランダムに送信され得る。リモートサーバ20a〜20nおよび/または第1の部分18a〜18nのサブセット22a〜22nの数は、ランダムに選択されてもよく、かつ/またはあらかじめ決められていてもよい。
【００２８】
リモートストレージサーバ20a〜20nは、暗号化されたファイル14a〜14nのうちの2つ以上のために生成される複数のファイル部分18a〜18nのサブセット22a〜22nを受信して記憶するように構成される。いくつかの実施形態では、リモートサーバ20a〜20nは、クラウドストレージプロバイダと関連付けられてもよく、デバイス4と関連付けられるエンティティによって維持されてもよく、かつ/または集中型の組織によって提供されてもよい。
【００２９】
いくつかの実施形態では、第1の部分18a〜18nのサブセット22a〜22nの各々は、重複するファイル部分18a〜18nを含み得る。たとえば、第1のサブセット22aは第1の部分18a、18nを含むことがあり、第2のサブセット22bはファイル部分18b、18nを含むことがあり、第3のサブセット22nはファイル部分18a、18bを含むことがある。重複するサブセット22a〜22nを生成することによって、システム2は冗長性を提供し、リモートサーバ20a〜20nのうちの1つまたは複数が利用不可能であるときであっても医療データファイル12a〜12nが確実に復元できるようにする。いくつかの実施形態では、ファイル部分18a〜18nの各サブセット22a〜22cに対して、最小限のレベルの冗長性が必要とされる。
【００３０】
いくつかの実施形態では、リモートサーバ20a〜20nは、複数のエンティティ(複数のクラウドストレージプロバイダなど)と関連付けられ、かつ/または、地理的に別個の位置に位置する。リモートサーバ20a〜20nの各々の厳密な地理的位置は、第1の部分18a〜18nの各サブセット22a〜22nを送信するときデバイス4によって選択されることがあり、かつ/または、ファイル部分18a〜18nのサブセット22a〜22nを受信するとリモートシステム(クラウドストレージシステムなど)によって選択されることがある。システム2および3は、最小限の数の地理的に多様な位置に位置する最小限の数のリモートサーバ20a〜20nを使用するように構成され得る。いくつかの実施形態では、地理的に多様な位置は、たとえば、1つまたは複数の好ましい地理的位置、1つまたは複数の除外される地理的位置、最小限の数の地理的に別個の位置、および/または任意の他の適切な基準を示す規則などの、1つまたは複数の規則に従って選択され得る。
【００３１】
いくつかの実施形態では、デバイス4と関連付けられるローカルストレージモジュール(図示せず)は、暗号化されたファイル14a〜14nに適用される暗号鍵および/もしくは任意の他のセキュリティ対策、どのファイル部分がどのリモートサーバ20a〜20nに送信されたかの記録、ならびに/または、デジタル医療ファイル12a〜12nを取り出し、および/もしくは復元するために必要な任意の他の情報を記憶するように構成される。必要なローカルストレージの量は、医療データファイル12a〜12nのストレージをローカルに提供する必要をなくすことによって、システム2および3を使用して減らされる。
【００３２】
システム2および3は、「ローカル」側と「リモート」側とを備えるものとして特徴付けられ得る。ローカル側に関して、デジタル医療データをクラウドストレージに転送する前に、ローカルシステム2または3はデジタル医療データを前処理する。前処理は、各々の個々のファイルの暗号化と、データの複数のランダムなチャンク(たとえば、ランダムサイズ、ファイルのランダム部分など)への各々の個々のファイルの分離とを含み得る。異なるファイルおよび異なる患者からのデータのチャンクは、ランダムな順序でクラウドストレージプロバイダに転送される(複数の患者の複数のファイルからのランダムなチャンクは、混合されて転送される)。
【００３３】
リモート側に関して、データの各チャンクは、ランダムサーバにおいてランダムな位置(たとえば、複数の地理的位置から選択される位置)に記憶され、必要とされる冗長性はリモートストレージサーバによって選択される。各ファイルの復元は、前処理の間に使用されたローカルの暗号鍵を保有するエンティティによってのみ可能である。ローカルストレージの要件は、リモートサーバおよびリモートファイルチャンクにアクセスするために必要なローカル鍵および/または他のセキュリティ対策を維持することだけに下がる。
【００３４】
いくつかの実施形態では、リモート(またはクラウド)側は、インターネットまたは他のネットワークを介して、ファイル部分18a〜18nのサブセット22a〜22nを記憶するための独立したクラウドストレージプロバイダ(ICSP)40の1つまたは複数のピアツーピアネットワークにさらに接続される、サーバ20a〜20nを含み得る。ICSP40のネットワークは、様々な国および様々な大陸に広がっている。これらのネットワーク40はタイプが異なっていてもよい。
【００３５】
リモートサーバ20a〜20nは、システム2、3とICSP40のネットワークとの間の橋渡しとして機能する。リモートサーバ20a〜20nは、クライアントファイルを記憶するための十分な冗長性を提供し、個々のプロバイダ間での、かつ複数の大陸の複数の国にわたる、クライアントファイルの平均的な拡散をもたらすように構成され得る。いくつかの実施形態では、リモートサーバ20a〜20nは、地元の不換通貨でクライアントに請求を行いながら、異なる不換通貨または暗号トークンでICSPネットワーク40の請求書に対して支払を行うことによって、支払の橋渡しとして構成される。
【００３６】
リモートサーバ20a〜20nは、記憶されているコンテンツの利用可能性についてICSP40を監視し得る。ICSPがある期間オフラインである場合、または記憶されているファイルが利用可能ではない場合、リモートサーバ20a〜20nは、そのICSPとのデジタル契約を取り消し、冗長のソースからファイルのコピーを取得することによって他のICSPにあるファイルを見つけることができる。
【００３７】
いくつかの実施形態では、システム2、3は、分散型ストレージをサポートしない1つまたは複数の追加のシステム(図示せず)に結合される。システム2、3は、1つまたは複数の追加のシステムから、ビデオファイルなどの1つまたは複数のファイルを受信し、本明細書で説明される分散型データストレージの開示される方法を適用するように構成され得る。
【００３８】
図4は、本発明のある例示的な実施形態による、システム2および3を実装するための構成要素と、たとえば、図2の暗号化モジュール30、区分モジュール32、およびサブセット生成モジュール34などの、上で説明された機能との、概略図である。これらの構成要素は、プロセッササブシステム204、入力/出力サブシステム206、メモリサブシステム208、通信インターフェース210、およびシステムバス212を備え得る。いくつかの実施形態では、構成要素のうちの1つまたは複数は、組み合わされることがあり、または省略されることがあり、たとえば、通信インターフェース210が省略されることなどがある。システム2および3のいくつかの実施形態では、図4に示されるもの以外の追加の構成要素が含まれ得る。たとえば、システム2および3は電力サブシステムも備え得る。他の実施形態では、システム2および3は、図4に示される構成要素のいくつかの事例を備え得る。たとえば、システム2および3は、複数のメモリサブシステム208を備え得る。限定ではなく、簡潔さおよび明瞭さのために、構成要素の各々の1つが図4に示される。
【００３９】
プロセッササブシステム204は、システム2および3の動作と性能を制御するように動作する、任意の処理回路を備え得る。様々な態様において、プロセッササブシステム204は、汎用プロセッサ、チップマルチプロセッサ(CMP)、専用プロセッサ、組み込みプロセッサ、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、入力/出力(I/O)プロセッサ、媒体アクセス制御(MAC)プロセッサ、無線ベースバンドプロセッサ、コプロセッサ、複雑命令セットコンピュータ(CISC)マイクロプロセッサ、削減命令セットコンピューティング(RISC)マイクロプロセッサ、および/または超長命令語(VLIW)マイクロプロセッサなどのマイクロプロセッサ、または他の処理デバイスとして実装され得る。プロセッササブシステム204はまた、コントローラ、マイクロコントローラ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)などによって実装され得る。
【００４０】
様々な態様において、プロセッササブシステム204は、オペレーティングシステム(OS)および様々なアプリケーションを実行するようになされ得る。OSの例には、たとえば、Apple OS、Microsoft Windows OS、Android OSという商標名で一般に知られているオペレーティングシステム、および任意の他のプロプライエタリまたはオープンソースOSがある。アプリケーションの例には、たとえば、電話アプリケーション、カメラ(たとえば、デジタルカメラ、ビデオカメラ)アプリケーション、ブラウザアプリケーション、マルチメディアプレーヤアプリケーション、ゲームアプリケーション、メッセージングアプリケーション(たとえば、電子メール、ショートメッセージ、マルチメディア)、ビューワアプリケーションなどがある。
【００４１】
いくつかの実施形態では、システム2および3は、処理サブシステム204、入力/出力サブシステム206、メモリサブシステム208、および/または通信サブシステム210を含む、様々なシステム構成要素を結合するシステムバス212を備え得る。システムバス212は、限定はされないが、9ビットバス、Industrial Standard Architecture (ISA)、Micro-Channel Architecture(MSA)、Extended ISA (EISA)、Intelligent Drive Electronics (IDE)、VESA Local Bus (VLB)、Peripheral Component Interconnect Card International Association Bus (PCMCIA)、Small Computers Interface (SCSI)もしくは他のプロプライエタリバス、またはコンピューティングデバイスアプリケーションに適した任意のカスタムバスを含む、任意の種類の利用可能なバスアーキテクチャを使用する、メモリバスもしくはメモリコントローラ、周辺バスもしくは外部バス、および/またはローカルバスを含むいくつかのタイプのバス構造のいずれかであり得る。
【００４２】
図5は、通信インターフェース210の1つの例示的な実施形態を示す。通信インターフェース210は、システム2aを1つまたは複数のネットワークおよび/またはデバイスに結合することが可能な、任意の適切なハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せを備え得る。通信インターフェース210は、通信プロトコル、サービス、または操作手順の所望のセットを使用して情報信号を制御するための任意の適切な技法を用いて動作するようになされ得る。通信インターフェース210は、有線であるかワイヤレスであるかにかかわらず、対応する通信媒体と接続するための適切な物理的な接続子を備え得る。
【００４３】
通信の媒体はネットワークを含む。様々な態様において、ネットワークは、限定はされないが、インターネット、有線チャネル、ワイヤレスチャネル、電話を含む通信デバイス、コンピュータ、ワイヤ、無線、光学チャネルもしくは他の電磁チャネル、ならびに、データを通信することが可能な/それと関連付けられる他のデバイスおよび/または構成要素を含むそれらの組合せを含む、ローカルエリアネットワーク(LAN)ならびにワイドエリアネットワーク(WAN)を備え得る。たとえば、通信環境は、体内通信、様々なデバイス、ならびに、ワイヤレス通信、有線通信、およびそれらの組合せなどの通信の様々なモードを備える。
【００４４】
ワイヤレス通信モードは、ワイヤレス送信、データ、およびデバイスと関連付けられる、様々なプロトコルおよびプロトコルの組合せを含むワイヤレス技術を少なくとも一部利用する、地点(たとえば、ノード)間の通信の任意のモードを備える。これらの地点は、たとえば、ワイヤレスヘッドセット、オーディオプレーヤおよびマルチメディアプレーヤなどのオーディオとマルチメディアのデバイスおよび機器、携帯電話およびコードレス電話を含む電話、ならびに、コンピュータおよびプリンタなどのコンピュータ関連のデバイスと構成要素などの、ワイヤレスデバイスを備える。
【００４５】
有線通信モードは、有線送信、データ、およびデバイスと関連付けられる、様々なプロトコルおよびプロトコルの組合せを含む有線技術を利用する、地点間の通信の任意のモードを備える。これらの地点は、たとえば、オーディオプレーヤおよびマルチメディアプレーヤなどのオーディオとマルチメディアのデバイスおよび機器、携帯電話およびコードレス電話を含む電話、ならびに、コンピュータおよびプリンタなどのコンピュータ関連のデバイスと構成要素などの、デバイスを備える。様々な実装形態において、有線通信モジュールは、いくつかの有線プロトコルに従って通信し得る。有線プロトコルの例には、ほんの少数の例を挙げると、Universal Serial Bus (USB)通信、RS-232、RS-422、RS-423、RS-485シリアルプロトコル、FireWire、Ethernet、Fibre Channel、MIDI、ATA、Serial ATA、PCI Express、T-1(および変形)、Industry Standard Architecture (ISA)並列通信、Small Computer System Interface (SCSI)通信、またはPeripheral Component Interconnect (PCI)通信があり得る。
【００４６】
したがって、様々な態様において、通信インターフェース210は、たとえば、ワイヤレス通信インターフェース222、有線通信インターフェース224、ネットワークインターフェース、送信インターフェース、受信インターフェース、媒体インターフェース、システムインターフェース226、構成要素インターフェース、切り替えインターフェース、チップインターフェース、コントローラなどの、1つまたは複数のインターフェースを備え得る。ワイヤレスデバイスによって、またはワイヤレスシステム内で実装されるとき、たとえば、通信インターフェース210は、1つまたは複数のアンテナ228、送信機、受信機、トランシーバ、増幅器、フィルタ、制御論理回路などを備える、ワイヤレスインターフェース222を備え得る。
【００４７】
様々な態様において、通信インターフェース210は、異なるタイプのセルラー無線電話システムに従って、音声および/またはデータ通信機能を提供し得る。様々な実装形態において、説明される態様は、いくつかのワイヤレスプロトコルに従って、ワイヤレス共有媒体を介して通信し得る。ワイヤレスプロトコルの例には、Institute of Electrical and Electronics Engineers (IEEE)802.11a/b/g/n、IEEE 802.16、IEEE 802.20などの、IEEE 802.xxシリーズのプロトコルを含む、様々なワイヤレスローカルエリアネットワーク(WLAN)プロトコルを備え得る。ワイヤレスプロトコルの他の例には、GPRSを用いたGSMセルラー無線電話システムプロトコル、1xRTTを用いたCDMAセルラー無線電話通信システム、EDGEシステム、EV-DOシステム、EV-DVシステム、HSDPAシステムなどの、様々なワイヤレスワイドエリアネットワーク(WWAN)プロトコルを備え得る。ワイヤレスプロトコルのさらなる例は、赤外線プロトコル、Enhanced Data Rate (EDR)を用いたBluetooth Specificationバージョンv1.0、v1.1、v1.2、v2.0、v2.0、ならびに1つまたは複数のBluetooth Profilesなどを含む、Bluetooth Special Interest Group (SIG)シリーズのプロトコルからのプロトコルなどの、ワイヤレスパーソナルエリアネットワーク(PAN)プロトコルを備え得る。ワイヤレスプロトコルのさらに別の例は、電磁誘導(EMI)技法などの、近距離通信技法およびプロトコルを備え得る。EMI技法の例は、パッシブまたはアクティブ無線周波数識別(RFID)プロトコルおよびデバイスを備え得る。他の適切なプロトコルは、Ultra Wide Band (UWB)、Digital Office (DO)、Digital Home、Trusted Platform Module (TPM)、ZigBeeなどを備え得る。
【００４８】
様々な実装形態において、説明される態様は、セルラー通信システムの一部を備え得る。セルラー通信システムの例は、CDMAセルラー無線電話通信システム、GSMセルラー無線電話システム、North American Digital Cellular (NADC)セルラー無線電話システム、時分割多重接続(TDMA)セルラー無線電話システム、Extended-TDMA(E-TDMA)セルラー無線電話システム、Narrowband Advanced Mobile Phone Service (NAMPS)セルラー無線電話システム、第3世代パートナーシッププロジェクト(3GPP)に準拠するWCDMA（登録商標）、CDMA-2000、UMTSセルラー無線電話システムなどの第3世代(3G)ワイヤレス規格システム、第4世代(4G)ワイヤレス規格などを備え得る。
【００４９】
図6は、メモリサブシステム208のある例示的な実施形態を示す。メモリサブシステム208は、揮発性/不揮発性メモリと取り外し可能/取り外し不可能なメモリの両方を含む、データを記憶することが可能な任意の機械可読媒体またはコンピュータ可読媒体を備え得る。メモリサブシステム208は、少なくとも1つの不揮発性メモリユニット230およびローカルバス234を備え得る。不揮発性メモリユニット230は、1つまたは複数のソフトウェアプログラム232_1-232_nを記憶することが可能である。ソフトウェアプログラム232_1-232_nは、たとえば、ほんの少数の例を挙げると、アプリケーション、ユーザデータ、デバイスデータ、および/または構成データ、またはこれらの組合せを含み得る。ソフトウェアプログラム232_1-232_nは、システム2および3の様々な構成要素によって実行可能な命令を含み得る。
【００５０】
様々な態様において、メモリサブシステム208は、揮発性/不揮発性メモリと取り外し可能/取り外し不可能なメモリの両方を含む、データを記憶することが可能な任意の機械可読媒体またはコンピュータ可読媒体を備え得る。たとえば、メモリは、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDR-RAM)、同期DRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ(たとえば、NORまたはNANDフラッシュメモリ)、コンテンツアドレス指定可能メモリ(CAM)、ポリマーメモリ(たとえば、強誘電性ポリマーメモリ)、相変化メモリ(たとえば、オボニックメモリ)、強誘電性メモリ、シリコン-酸化物-窒化物-酸化物-シリコン(SONOS)メモリ、ディスクメモリ(たとえば、フロッピーディスク、ハードドライブ、光学ディスク、磁気ディスク)、またはカード(たとえば、磁気カード、光学カード)、または情報を記憶するのに適した任意の他のタイプの媒体を備え得る。
【００５１】
いくつかの実施形態では、メモリサブシステム208は、図1および図2に関連して論じられたように、受信された医療データファイルを暗号化し、医療データファイルおよび/または暗号化されたデータファイルを区分し、システム2および3の能力を使用して、区分された暗号化されたデータファイルのサブセットを送信するための、ソフトウェアプログラムを含み得る。1つの実施形態では、メモリサブシステム208は、分散型ストレージのための複数の暗号化されたファイル部分を生成して分散させる方法を実行するための命令セットをファイル232_nの形で含み得る。命令セットは、ソースコードまたは様々な適切なプログラミング言語を含む、任意の許容可能な形式の機械可読命令で記憶され得る。命令セットを記憶するために使用され得るプログラミング言語のいくつかの例は、限定はされないが、Java、C、C++、C#、Python、Objective-C、Visual Basic、または.NETプログラミングを備える。いくつかの実施形態では、処理サブシステム204による実行のための機械実行可能コードへと命令セットを変換するために、コンパイラまたはインタプリタが含まれる。
【００５２】
前述の実施形態および利点は例示的なものにすぎず、本発明を限定するものとして解釈されるべきではない。本発明の説明は、特許請求の範囲を限定するものではなく、例示的であることが意図されている。多くの代替、修正、および変形が当業者に明らかになるであろう。本発明の趣旨および範囲から逸脱することなく、様々な変更が行われ得る。
【符号の説明】
【００５３】
4  デバイス、プロセッサ
10  データソース
11  データ
12  医療ファイル
14  暗号化されたファイル
15  データ部分
18  ファイル部分
20  リモートサーバ
22  ファイル部分のサブセット
30  暗号化モジュール
32  区分モジュール
34  サブセット生成モジュール
40  ICSPネットワーク
204  プロセッササブシステム
206  入力/出力サブシステム
208  メモリサブシステム
210  通信インターフェース
212  システムバス
222  ワイヤレス通信インターフェース
224  有線通信インターフェース
226  システムインターフェース
228  アンテナ
230  不揮発性メモリユニット
232  ソフトウェアプログラム
234  ローカルバス
【図１】
2021513712.tif 000002
【図２】
2021513712.tif 000003
【図３】
2021513712.tif 000004
【図４】
2021513712.tif 000005
【図５】
2021513712.tif 000006
【図６】
2021513712.tif 000007
【手続補正書】
【提出日】令和2年10月7日(2020.10.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データの分散型ストレージのための方法であって、
複数のデータファイルを受信するステップと、
暗号化されたデータの複数のサブセットを生成するために前記複数のデータファイルを前処理するステップであって、暗号化されたデータの各サブセットが異なるデータファイルからのデータのランダムに選択された部分を備える、ステップと、
データの前記複数のサブセットを複数のリモートサーバに送信するステップであって、データの各サブセットがランダムに選択されたリモートサーバに送信される、ステップとを備える、方法。
【請求項２】
前記複数のデータファイルを前処理するステップが、
複数の暗号化されたデータファイルを生成するために前記複数のデータファイルの各々を暗号化するステップと、
複数の暗号化されたデータファイル部分を生成するために前記複数の暗号化されたデータファイルの各々を区分するステップと、
前記暗号化されたデータファイルのうちの少なくとも2つからの暗号化されたデータファイル部分を備える暗号化されたデータファイル部分の第1のサブセットを生成するステップと、
前記2つの暗号化されたデータファイルからの暗号化されたデータファイル部分を備える暗号化されたデータファイル部分の第2のサブセットを生成するステップと、
暗号化されたデータファイル部分の前記第1のサブセットを第1のリモートサーバに送信するステップと、
暗号化されたデータファイル部分の前記第2のサブセットを第2のリモートサーバに送信するステップとを備える、請求項1に記載の方法。
【請求項３】
前記複数の暗号化されたデータファイル部分の各々が、それらのそれぞれの暗号化されたデータファイルからのランダムな長さのランダムファイル部分を備える、請求項2に記載の方法。
【請求項４】
前記リモートサーバが互いに地理的に離れている、請求項1に記載の方法。
【請求項５】
暗号化されたデータファイル部分の前記第1のサブセットおよび前記第2のサブセットが、重複する暗号化されたデータファイル部分を備える、請求項2に記載の方法。
【請求項６】
前記リモートサーバが少なくとも1つのクラウドストレージプロバイダと通信している、請求項1に記載の方法。
【請求項７】
前記複数のデータファイルの各々が暗号鍵を使用して暗号化される、請求項2に記載の方法。
【請求項８】
前記暗号鍵がメモリにローカルに記憶される、請求項7に記載の方法。
【請求項９】
前記複数のデータファイルが複数の医療データファイルを備える、請求項1に記載の方法。
【請求項１０】
前記複数のデータファイルを前処理する前記ステップが、
複数のデータファイル部分を生成するために前記複数のデータファイルの各々を区分するステップと、
複数の暗号化されたデータファイル部分を生成するために前記複数のデータファイル部分の各々を暗号化するステップと、
前記暗号化されたデータファイルのうちの少なくとも2つからの暗号化されたデータファイル部分を備える暗号化されたデータファイル部分の第1のサブセットを生成するステップと、
前記2つの暗号化されたデータファイルからの暗号化されたデータファイル部分を備える暗号化されたデータファイル部分の第2のサブセットを生成するステップと、
暗号化されたデータファイル部分の前記第1のサブセットを第1のリモートサーバに送信するステップと、
暗号化されたデータファイル部分の前記第2のサブセットを第2のリモートサーバに送信するステップとを備える、請求項1に記載の方法。
【請求項１１】
データの分散型ストレージのためのシステムであって、
プロセッサと、
前記プロセッサによってアクセス可能なメモリと、
前記メモリに記憶されたプロセッサ可読命令のセットと、を備え、プロセッサ可読命令の前記セットが、前記プロセッサによって、請求項１乃至１０のいずれか一項に記載の方法を行うように実行可能である、システム。
【国際調査報告】
2021513712.tif 000008