(57)【要約】一意のストレージスペースが一意の識別子に関連付けられる。リモートデバイス（サーバ、コンピュータ、スマートフォン等）はクライアントデバイスから一意の識別子及びユーザパスワードを受信する。リモートデバイスは、該一意の識別子及び該ユーザパスワードを用いて一意のストレージスペースに固有の暗号化鍵を生成し、該暗号化鍵を用いてクライアントデバイスから受信したデータを暗号化し、暗号化されたデータを該一意のストレージスペースに格納し、該暗号化鍵を用いてクライアントデバイスから要求されたデータを復号して復号されたデータをクライアントデバイスに送信し、該暗号化鍵と、暗号化されていないデータと、復号されたデータと、を削除する。【選択図】図１
2016510962.tif 000002
【特許請求の範囲】
【請求項１】
暗号化データをリモートデバイスに格納する方法であって、
ユーザ固有の一意の識別子とユーザパスワードとをクライアントデバイスから前記リモートデバイスにネットワーク経由で転送するステップであって、前記一意の識別子が一意のストレージスペースに固有である、ステップと、
前記リモートデバイスが、前記一意の識別子と前記ユーザパスワードとを用いて前記一意のストレージスペースに固有の暗号化鍵を生成するステップであって、前記暗号化鍵が前記リモートデバイスの揮発性メモリ内に一時的に作成される、ステップと、
前記クライアントデバイスから前記一意のストレージスペースへとデータを転送するステップと、
前記データを前記リモートデバイスによって前記暗号化鍵を用いて暗号化して暗号化データを生成するステップと、
前記暗号化データを前記一意のストレージスペースに格納するステップと、
前記データの暗号化に成功した後、前記データを削除し、前記暗号化鍵を前記リモートデバイスの前記揮発性メモリから削除するステップと、
を含む、方法。
【請求項２】
請求項１に記載の方法であって、前記一意の識別子をランダムに生成することにより前記一意のストレージスペースを作成するステップと、前記一意の識別子と前記一意のストレージスペースとの間の関連付けを前記リモートデバイスに格納するステップと、を更に含む、方法。
【請求項３】
請求項２に記載の方法であって、前記一意の識別子をランダムに生成することは、少なくともユーザエントロピーからハッシュ値を算出することを含む、方法。
【請求項４】
請求項３に記載の方法であって、前記ハッシュ値を算出することは、不可逆暗号ハッシュを適用することを含む、方法。
【請求項５】
請求項１に記載の方法であって、前記リモートデバイスから前記暗号化鍵を削除する前に、前記クライアントデバイスから受信された追加データの暗号化及び前記クライアントデバイスによって要求されるデータの復号化の期間にわたって、前記リモートデバイスの前記揮発性メモリ内に前記暗号化鍵を保持するステップを更に含む、方法。
【請求項６】
請求項１に記載の方法であって、前記暗号化鍵を生成するステップは、前記一意の識別子と前記ユーザパスワードとの暗号ハッシュを算出することを含む、方法。
【請求項７】
請求項１に記載の方法であって、前記データは、前記クライアントデバイスにアクセス可能な１以上のサーバーベースアプリケーションに関連付けられ、前記データは、ブラウジングデータ、ダウンロードデータ、ユーザ履歴又はログ、電子メールメッセージ、チャットメッセージ、音声ログ、及び動画ログのうち１以上を含む、方法。
【請求項８】
請求項１に記載の方法であって、
ハッシュ化されたユーザパスワードを、前記一意の識別子と関連付けて前記リモートデバイスに格納するステップと、
前記クライアントデバイスから前記一意の識別子と前記ユーザパスワードを受信する際、前記リモートデバイスが、前記受信されたユーザパスワードを前記格納されたハッシュ化されたユーザパスワードと比較して前記ユーザを認証するステップと、
前記ユーザが認証される際、前記クライアントデバイスにおける前記ユーザ向けに認証済みセッションを作成するステップと、を更に含む、方法。
【請求項９】
請求項８に記載の方法であって、前記リモートデバイスが、前記暗号化鍵を用いて前記認証済みセッションのセッション変数を暗号化し、前記セッション変数を前記クライアントデバイスに格納するステップを更に含む、方法。
【請求項１０】
請求項１に記載の方法であって、前記一意の識別子と前記ユーザパスワードとを前駆クライアントデバイスから前記リモートデバイスに転送するステップは、セッション変数から前記一意の識別子と前記ユーザパスワードとを読み込むことを含む、方法。
【請求項１１】
請求項１に記載の方法であって、前記ユーザパスワードに代わる新規ユーザパスワードを受信する際、前記リモートデバイスが、前記暗号化鍵を用いて前記一意のストレージスペースに格納されたデータを復号し、前記新規ユーザパスワードと前記一意の識別子とから生成された新規暗号化鍵を用いて前記格納されたデータを暗号化する、方法。
【請求項１２】
請求項１に記載の方法であって、前記一意のストレージスペースは、データファイルを格納するためのメモリを含む、方法。
【請求項１３】
請求項１に記載の方法であって、前記一意のストレージスペースは、データベースを含む、方法。
【請求項１４】
請求項１に記載の方法であって、前記データは、暗号化されない形式で前記クライアントデバイスから前記一意のストレージスペースへと転送される、方法。
【請求項１５】
リモートデバイスからデータを取得する方法であって、
ユーザ固有の一意の識別子とユーザパスワードとをクライアントデバイスから前記リモートデバイスにネットワーク経由で転送するステップであって、前記一意の識別子が一意のストレージスペースに固有である、ステップと、
前記リモートデバイスが、前記一意の識別子と前記ユーザパスワードとを用いて前記一意のストレージスペースに固有の暗号化鍵を生成するステップであって、前記リモートデバイスが前記暗号化鍵を前記リモートデバイスの揮発性メモリ内に一時的に作成するステップと、
暗号化されたデータを前記リモートデバイスによって前記暗号化鍵を用いて復号して復号データを生成するステップと、
前記復号されたデータを前記一意のストレージスペースから前記クライアントデバイスへと転送するステップと、
前記暗号化されたデータの復号に成功した後、前記復号されたデータを削除し、前記暗号化鍵を前記リモートデバイスの前記揮発性メモリから削除するステップと、
を含む、方法。
【請求項１６】
暗号化されたデータを格納するための装置であって、
１以上の一意のストレージスペースを画定するストレージであって、前記１以上の一意のストレージスペースがユーザ固有の一意の識別子に関連付けられる、ストレージと、
ネットワーク経由でのクライアントデバイスへの接続のためのネットワークインターフェースコントローラと、
前記クライアントデバイスから前記一意の識別子とユーザパスワードとを受信し、前記一意の識別子と前記ユーザパスワードとを用いて前記一意のストレージスペースに固有の暗号化鍵を生成して揮発性メモリ内で前記暗号化鍵を一時的に作成し、前記クライアントデバイスから受信されたデータを前記暗号化鍵を用いて暗号化して暗号化されたデータを前記一意のストレージスペースに格納し、前記クライアントデバイスによって要求されたデータを前記暗号化鍵を用いて復号して復号されたデータを前記クライアントデバイスに送信し、前記暗号化鍵の利用に成功した後で前記暗号化鍵を前記揮発性メモリから削除し、暗号化されていないデータ又は復号されたデータを削除するよう構成される暗号化エンジンと、
を含む、装置。
【請求項１７】
請求項１６に記載の装置であって、一意の識別子をランダムに生成することにより一意のストレージスペースを作成し、各一意の識別子と各一意のストレージスペースとの間の関連付けを格納するように構成される認証エンジンを更に含む、装置。
【請求項１８】
請求項１６に記載の装置であって、ハッシュ化ユーザパスワードを前記一意の識別子と関連付けて格納し、前記クライアントデバイスから前記一意の識別子と前記ユーザパスワードとを受信した際、受信されたユーザパスワードを前記格納されたハッシュ化ユーザパスワードと比較して前記ユーザを認証し、前記クライアントデバイスにおける認証済みユーザ向けに認証済みセッションを作成するように構成される認証エンジンを更に含む、装置。
【請求項１９】
請求項１８に記載の装置であって、前記暗号化エンジンは、前記認証済みセッションのセッション変数を前記暗号化鍵を用いて暗号化するよう更に構成され、前記認証エンジンは、前記セッション変数を前記クライアントデバイスに格納するように構成される、装置。
【請求項２０】
請求項１６に記載の装置であって、前記暗号化エンジンは、少なくともユーザエントロピーからハッシュ値を算出することにより前記一意の識別子をランダムに生成するように更に構成される、装置。
【請求項２１】
請求項２０に記載の装置であって、前記ハッシュ値を算出することは、不可逆暗号ハッシュを適用することを含む、装置。
【請求項２２】
請求項１６に記載の装置であって、前記暗号化エンジンは、前記暗号化鍵を削除する前に、前記クライアントデバイスから受信されたデータの暗号化及び前記クライアントデバイスによって要求されるデータの復号化の期間にわたって、前記暗号化鍵を前記揮発性メモリ内に保持するように更に構成される、装置。
【請求項２３】
請求項１６に記載の装置であって、前記暗号化エンジンは、前記一意の識別子と前記ユーザパスワードとの暗号ハッシュを算出することにより前記暗号化鍵を生成するように更に構成される、装置。
【請求項２４】
請求項１６に記載の装置であって、前記データは、前記クライアントデバイスにアクセス可能な１以上のサーバーベースアプリケーションに関連付けられ、前記データは、ブラウジングデータ、ダウンロードデータ、ユーザ履歴又はログ、電子メールメッセージ、チャットメッセージ、音声ログ、及び動画ログのうち１以上を含む、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の参照
本願は、参照により本願に援用される２０１３年３月１３日出願の米国仮出願第６１／７７９，９８４号、ならびに２０１３年３月２２日出願の第６１／８０４，５０１号の優先権を主張する。
【０００２】
本発明は、暗号化ストレージ装置に関する。
【背景技術】
【０００３】
仮想「クラウド」ネットワークは、サードパーティによって提供及び保守され、インターネットへのアクセスを有する有線及び無線ネットワークを含むデータ通信ネットワーク経由でユーザがアクセス可能なハードウェア及びソフトウェアリソースの集合体を指す。インターネットに接続されたリモートデバイスやコンピュータに格納されたプライベートデータを安全にするために、様々な方法が提案され実装されてきた。従来のクラウドデータストレージソリューションには、暗号化されていない、又は暗号化されたストレージが含まれる。暗号化ストレージソリューションには、ディスク暗号化又はファイル暗号化が含まれてよく、いずれもデータを安全にするために暗号化鍵を用いる。暗号化ストレージソリューションを含むリモートデバイス及びコンピュータは、システム管理者からアクセス可能であり、システム管理者によって保守される。システム管理者及びコンピュータシステムは、安全にされたデータを復号又は読み取りするために、典型的にはデータベースに格納される暗号化鍵を制御する。リモートデータストレージソリューションのユーザは典型的には、ログイン認証情報及びパスワードを用いることにより、インターネットに接続された装置及びコンピュータ内に含まれる自分のデータにアクセス可能である。典型的に、ユーザは自分のデータのための暗号化鍵を保持又は制御しない。リモートデータストレージソリューションの大半は、インターネット経由でアクセス可能な遠隔地におけるプライベートデータの安全な格納を望む消費者及びビジネスによって主に利用されている。典型的な安全なデータストレージソリューションには、（ａ）システム管理者及びコンピュータシステムによって制御されるリモートデバイス及びコンピュータにデータを安全に格納すること、及び（ｂ）システム管理者及びコンピュータシステムによって保守されるリモートデバイス及びコンピュータにあるプライベートデータ及びデータベースに安全にアクセスすること、の必要性が存在する、数多くの潜在的な安全面の問題が含まれる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、Ｌｕｍｍｅ−Ｍａｋｉ−Ｖｅｐｓａｌａｉｎｅｎ（米国特許出願ＵＳ２０１３００１９２９９  Ａｌ）は、認証を必要とする特定の格納されたデータへユーザがアクセスする必要性に応じ、該格納されたデータへの要求であって、ユーザを識別しない要求をデータクラウドへ送信すること含む方法を開示している。Ｌｕｍｍｅ−Ｍａｋｉ−Ｖｅｐｓａｌａｉｎｅｎは、自分のリモートデータストレージへのアクセスを試みるユーザを識別する必要性を排除することによりセキュリティの強化を提供するが、（ａ）暗号化鍵を作成又は格納する、及び（ｂ）安全にされたデータの復号又は読み取りする、ためのシステム管理者の能力なしでより安全な暗号化されたデータ格納を行う必要性が未だにある。また、インターネットに接続された装置及びコンピュータ上のデータ及びデータベースにリモートアクセスする際の、向上した安全性と匿名性の必要性も存在する。
【課題を解決するための手段】
【０００５】
本発明の一の態様によれば、暗号化データをリモートデバイス（サーバ、コンピュータ、スマートフォン等）に格納する方法は、ユーザ固有の一意の識別子とユーザパスワードとをクライアントデバイスからリモートデバイスにネットワーク経由で転送することであって、一意の識別子が一意のストレージスペースに固有であること、を含む。該方法は、リモートデバイスが、一意の識別子とユーザパスワードとを用いて一意の格納スペースに固有の暗号化鍵を生成すること、クライアントデバイスから一意のストレージスペースへと暗号化されていないデータを転送すること、暗号化されていないデータをリモートデバイスによって暗号化鍵を用いて暗号化して暗号化データを生成すること、暗号化データを一意のストレージスペースに格納すること、及び、暗号化されていないデータと暗号化鍵とをリモートデバイスから削除すること、を更に含む。
【０００６】
本発明の別の態様によれば、リモートデバイスからデータを取得する方法は、ユーザ固有の一意の識別子とユーザパスワードとをクライアントデバイスから前記リモートデバイスにネットワーク経由で転送することであって、一意の識別子が一意のストレージスペースに固有であること、を含む。該方法は、前記リモートデバイスが、前記一意の識別子と前記ユーザパスワードとを用いて前記一意のストレージスペースに固有の暗号化鍵を生成すること、暗号化されたデータを前記リモートデバイスによって前記暗号化鍵を用いて復号して復号データを生成すること、復号されたデータを前記一意のストレージスペースから前記クライアントデバイスへと転送すること、及び、復号されたデータと暗号化鍵とを前記リモートデバイスから削除すること、を更に含む。
【０００７】
本発明の別の態様によれば、暗号化されたデータを格納するための装置（サーバ、コンピュータ、スマートフォン等）は、１以上の一意のストレージスペースを画定するストレージであって、１以上の一意のストレージスペースが一意の識別子に関連付けられる、ストレージを含む。該装置は、ネットワーク経由でのクライアントデバイスへの接続のためのネットワークインターフェースコントローラを更に含む。該装置は、クライアントデバイスから一意の識別子とユーザパスワードとを受信し、一意の識別子とユーザパスワードとを用いて一意のストレージスペースに固有の暗号化鍵を生成し、クライアントデバイスから受信されたデータを暗号化鍵を用いて暗号化して暗号化されたデータを一意のストレージスペースに格納し、クライアントデバイスによって要求されたデータを暗号化鍵を用いて復号して復号されたデータをクライアントデバイスに送信し、暗号化鍵、暗号化されていないデータ、及び復号されたデータを削除するよう構成される暗号化エンジンを更に含む。
【図面の簡単な説明】
【０００８】
添付の図面を参照して、本発明の実施形態が、例示のみを目的として以下に説明される。
【図１】ソフトウェアコンポーネントのブロック図である。
【図２】ハードウェアコンポーネントのブロック図である。
【図３】一意の暗号化クラウド及びデータストレージを作成するプロセス図である。
【図４】一意の暗号化クラウド及びデータストレージへの認証のプロセス図である。
【図５】一意の暗号化クラウドでデータを暗号化及び格納するプロセス図である。
【図６】一意の暗号化クラウド及びデータストレージからデータを復号及び読み取りするプロセス図である。
【発明を実施するための形態】
【０００９】
本発明は、インターネットに接続されたリモートデバイス及びコンピュータ上の暗号化データストレージに関する。より具体的には、本発明は、仮想クラウドネットワーク内のリモートデバイス及びコンピュータ上にデータストレージ及びデータベースを作成及び保護することに関する。より具体的には、本発明は、仮想クラウドネットワーク内の暗号化データストレージ及びデータベースに対する安全で匿名のアクセスを提供できる。
【００１０】
本発明は、いかなる人物またはシステムからアクセス可能な暗号化鍵も無しに、リモートデバイス及びコンピュータ上で暗号化データストレージの安全な作成及びアクセスを提供できる。暗号化データストレージの作成及びアクセスのための安全な機構は、ユーザが（ａ）リモートデバイス及びコンピュータに暗号化データストレージを安全に作成すること、（ｂ）暗号化鍵を作成するために必要な情報の制御をリモートデバイス及びコンピュータから分離すること、（ｃ）リモート格納された暗号化データに安全かつ匿名でアクセスすること、を可能にする。これらのプロセスを組み合わせて用いることで、インターネットに接続されたリモートデバイス又はコンピュータ上でユーザの暗号化データストレージの作成を開始したユーザによってのみアクセス及び保守が可能な、安全な暗号化データストレージの作成が可能となる。
【００１１】
本発明は、リモートデータストレージソリューションのユーザに、暗号化データストレージへのリモートアクセス中、認証セッションの一部としてプライベート暗号化鍵を作成するために必要な情報の唯一の所有者権限とアクセスを提供できる。より具体的には、ユーザのプライベート暗号化鍵は、システム管理者またはコンピュータシステムからアクセスされるデータベースに格納されることは決してない。ユーザにより開始された暗号化及び復号のプロセス（これらのプロセスは明示的なユーザ許可を必要とし、特定のユーザの要求によってのみ開始できる）中、暗号化鍵はシステムによってリアルタイムで生成される。
【００１２】
本発明はユーザに、全システム及びログを含む完全なデータプライバシーとセキュリティのために、暗号化データ値をデータベース内に格納し、暗号化ファイルをクラウドストレージスペースに格納することにより、インターネットに接続されたリモートデバイス及びコンピュータに保存された暗号化データの完全な制御を提供できる。本発明は、リモートストレージ装置又はコンピュータでの安全な認証プロセスを通じたユーザの暗号化データへの安全なアクセスを提供できる。認証に成功すると、ユーザは暗号化クラウドストレージスペースにデータファイルを、又はデータ値を暗号化クラウドデータベースに、格納できる。暗号化クラウドデータベース及び暗号化クラウドストレージは、リモートデバイス又はコンピュータ上で利用可能な他のシステム認証済アプリケーションまたはアプリによって用いられることができる。
【００１３】
アプリケーションには、ブラウズ及びダウンロード用のアプリ、安全なファイル共有アプリ、安全な電子メールアプリ、安全なテキスト、音声、及び動画アプリが含まれる。これらのクラウドベースアプリケーションは、ユーザデータの完全なプライバシーのために、暗号化ユーザ履歴及びログ、暗号化ユーザ電子メール、暗号化ユーザチャット、音声及び動画ログ等の暗号化データ値を安全に格納できる。本発明は、インターネットに接続されたリモートデバイス及びコンピュータ上、及び仮想クラウドネットワーク内の暗号化ストレージソリューション内にあるデータへのアクセスに対する完全な制御をユーザに提供できる。
【００１４】
本発明をより詳細に説明すると、図１及び図２にはそれぞれ、本発明の実施形態を実装するために用いられることのできる複数のソフトウェア及びハードウェアコンポーネントが示されている。
【００１５】
１００  暗号化エンジン
１１０  暗号化及び復号鍵の生成
１２０  データの暗号化
１３０  データの復号
１４０  暗号化ハッシュの生成
１５０  一意のクラウド識別子の生成
２００  クラウド認証エンジン
２１０  一意の暗号化クラウドストレージスペースの作成
２２０  一意の暗号化クラウドへの認証
２３０  認証セッションの作成
３００  プロセッサ
３０２  入力デバイス
３０４  グラフィックプロセッサ
３０６  ネットワークインターフェースコントローラ
３２０  プロセッサ
３２２  メモリ
３２４  ネットワークインターフェースコントローラ
３２６  ストレージ装置
９０１  パーソナル暗号化鍵
９０２  パーソナルアクセスパスワード
９０３  一意のクラウドストレージ識別子
９０４  認証済みセッション
９０５  クラウドコンピュータデータベース
９０６  クラウドコンピュータストレージスペース
９０７  入力データ
９０８  グラフィックユーザインタフェース（ＧＵＩ）
９０９  クライアントデバイス又はコンピュータ
９１０  サーバコンピュータ
【００１６】
図２を参照すると、クライアントデバイス９０９は、プロセッサ（例えばＣＰＵ）３００、入力装置３０２、グラフィックプロセッサ（例えばＧＰＵ）３０４、ネットワークインターフェースコントローラ３０６、及びメモリ（図示せず）を含んでよい。サーバ９１０はプロセッサ（例えばＣＰＵ）３２０、ランダムアクセスメモリ（ＲＡＭ）３２２、ネットワークインターフェースコントローラ３２４、及びクラウドコンピュータデータベース９０５、クラウドコンピュータファイルストレージ９０６等として機能するストレージ装置３２６、を含んでよい。サーバ９１０はリモートデバイスの一例であり、リモートデバイスのその他の例には、コンピュータ、モバイル装置（例えばスマートフォン）等が含まれる。
【００１７】
図１及び図２の実施形態を参照すると、まず、リモートサーバコンピュータ９１０にアクセスするユーザによって一意の暗号化クラウドストレージスペースが作成（２１０）される。ユーザによって必要とされ要求された場合、暗号化鍵１１０がランタイムで生成及び利用される。暗号化鍵１１０はどこにも格納されず、いかなる人物又はシステムによるアクセスも可能でないことが好ましい。暗号化鍵１１０は、データ又はデータベースの暗号化の間、一時的にメモリに存在する。認証済みユーザは（ａ）データファイルを暗号化クラウドコンピュータストレージスペース９０６に、及び（ｂ）データ値を暗号化クラウドコンピュータデータベース９０５に、安全に格納できる一方、システム管理者及びコンピュータシステムは暗号化鍵１１０に読み取り又はアクセスできず、暗号化データを読み取り又はアクセスできない。
【００１８】
更に詳細に、図１及び図２の実施形態を参照すると、本発明はユーザに、クライアントデバイス又はコンピュータ９０９から、リモートサーバコンピュータ９１０へのアクセスを有するグラフィックユーザインタフェース（ＧＵＩ）９０８内で、一意の暗号化クラウドストレージ２１０を作成することを可能にする。リモートサーバコンピュータ９１０へのアクセスが可能なＧＵＩ９０８は、典型的には、統合ウェブサイト、Ｗｅｂベースアプリケーション、デスクトップソフトウェア、又はモバイルソフトウェア経由でアクセス可能である。ＧＵＩ９０８は、ユーザが一意の暗号化クラウドストレージ２１０とインタラクションするフロントエンドグラフィック環境である。ＧＵＩ９０８はＷｅｂサイト、Ｗｅｂベースアプリケーション、デスクトップソフトウェア、又はモバイルソフトウェアに統合可能である。ユーザは一意の暗号化クラウドストレージ２１０を作成し、ＧＵＩ９０８内で、一意のクラウド認証２２０による認証済みセッション２３０でプライベートデータにアクセス可能である。認証セッション２３０は、ユーザデータの暗号化と復号に用いられるデータを含む。成功した認証セッション２３０は、ユーザに、プライベートファイルを暗号化クラウドコンピュータストレージスペース９０６に、又はデータ値を暗号化クラウドコンピュータデータベース９０５に、格納させる。成功した認証セッション２３０により、ユーザはデータファイルを暗号化クラウドコンピュータストレージスペース９０６に、又はデータ値を暗号化クラウドコンピュータデータベース９０５に、格納できる。暗号化クラウドコンピュータデータベース９０５及び暗号化クラウドコンピュータストレージスペース９０６は、仮想クラウドネットワーク内の接続された機器又はコンピュータ上で利用可能な他のシステム認証済アプリケーション又はアプリによって用いられることができる。一意の暗号化クラウドストレージ２１０におけるファイルの格納及び暗号化は、ＧＵＩ９０８内でユーザによってトリガされるファイルの転送によって開始する。ファイルは、サーバコンピュータ９１０に転送されると、一時変数「Ａ」内に格納される。一時変数「Ａ」は、データの暗号化プロセス１２０に記載のとおり暗号化エンジン１００を用いて暗号化される。暗号化された値が返されると、値は暗号化クラウドコンピュータストレージスペース９０６に格納され、暗号化されない値は変数「Ａ」からクリアされ、サーバコンピュータのシステムメモリ９０１から削除される。暗号化ファイルは暗号化クラウドコンピュータストレージスペース９０６に格納され、それを作成したユーザによってのみアクセス及び復号が可能である。データの復号プロセス１３０に記載のとおり、復号プロセスは暗号化エンジン１００を利用する。暗号化クラウドコンピュータデータベースプロセス９０５におけるデータ値の格納及び暗号化は、ユーザによって渡される値が、暗号化クラウドコンピュータストレージ９０６ではなく暗号化クラウドコンピュータデータベース９０５から格納及び読み取りされる点を除いて、暗号化クラウドコンピュータストレージプロセス９０６におけるデータファイルの格納と暗号化と略同様である。
【００１９】
ここで図３を参照すると、一意の暗号化クラウドストレージ２１０の作成は、クラウド認証エンジン２００が、要求されるパラメータ「クラウド名（ｃｌｏｕｄ  ｎａｍｅ）」及び「パスワード（ｐａｓｓｗｏｒｄ）」と共にアクションコマンド「作成（ｃｒｅａｔｅ）」を受信した際にトリガされる。クラウド認証エンジン２００は、サーバコンピュータ９１０上にインストールされ実行されるソフトウェアコンポーネント又はスクリプトとして実装されてよい。クラウド認証エンジン２００は、具体的な所定のＩＰアドレス及びインバウンドポートにおいてコマンドを待機する；それは、クラウドコンピュータデータベース９０５において一意の暗号化クラウドストレージ２１０を新たに作成し、（ａ）データベース内の既存の一意の暗号化クラウドストレージを、（ｂ）クラウド名とパスワードの組み合わせクエリと照合するよう構成される。両パラメータは、ＧＵＩ９０８コンポーネントで入力されたままの生の状態で受信され、一時変数に格納される。ＧＵＩ９０８は、ユーザが一意の暗号化クラウドストレージ２１０とインタラクションするフロントエンドグラフィック環境である。ＧＵＩ９０８はＷｅｂサイト、Ｗｅｂベースアプリケーション、デスクトップソフトウェア、又はモバイルソフトウェアに統合可能である。入力されると、パラメータはチェックされ、要求されたパラメータが最小限のセキュリティ要件と最小限の値の長さ要件を満たせば、「クラウド名」として渡されたその値は、同じ名前を持つ既存の一意の暗号化クラウド２１０を探すために、データベース内でクエリされる。「クラウド名」は一意の識別子であり、すなわち一意の値とされ、同一システム上には１つしか存在できない。「クラウド名」の既存のインスタンスが見つからない場合、一意の暗号化クラウドストレージ２１０の作成が開始できる。一意のクラウドストレージ識別子９０３（「クラウド名」とも呼ぶ）を除く全ての値は、一意のクラウド固有の暗号化内に格納される。
【００２０】
第１のステップにおいて、一意の暗号化クラウドストレージ２１０の作成は、一意のクラウド識別子１５０を生成する。この値は第１のＪＳＯＮ配列に格納される；ＪＳＯＮ、またはＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎは、データ交換向けの、単純なデータ構造を表すために設計されたテキストベースのオープン標準である。一意のクラウド識別子１５０の生成は、暗号化エンジン１００が、要求されるパラメータ「マウスエントロピー（ｍｏｕｓｅ  ｅｎｔｒｏｐｙ）」と共にコマンド「一意のクラウド識別子を生成（ｇｅｎｅｒａｔｅ  ｕｎｉｑｕｅ  ｃｌｏｕｄ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）」１５０を受信した際にトリガされる。本実装において、暗号化エンジンプロセス１００は、Ｕｎｉｘ（登録商標）エポック時間、１６桁のランダムな数字、及びフロントエンドＧＵＩ９０８から渡されたマウスエントロピー、を用いる。これらの値は、一時変数「Ｚ」において組み合わされる。変数「Ｚ」は、内部プロセス１４０を用いて暗号学的にハッシュ化される。暗号化ハッシュ１４０の生成は、暗号化エンジン１００が、要求されるパラメータ「値（ｖａｌｕｅ）」と共にコマンド「ハッシュ（ｈａｓｈ）」を受信した際にトリガされる。値パラメータは一時変数「Ｚ」に格納される。このプロセスが成功裏に完了すると、変数「Ｚ」の値はクリアされ、メモリから削除される。暗号化エンジン１００は、例えばグローバルなシステム（ＳＨＡ−２、ＳＨＡ−３）によって定義された不可逆暗号ハッシュ化方法の１つを用いて変数「Ｚ」の値をハッシュ化し、このプロセスの結果としてそれを返す。クラウド認証エンジン２００は、プロセス１５０に記載される一意のクラウド識別コードを生成及び返す暗号化エンジン１００と通信する。
【００２１】
更に詳細に図３を参照すると、暗号化エンジン１００は、サーバコンピュータ９１０上でインストール及び実行されるソフトウェアコンポーネント又はスクリプトである。サーバコンピュータ９１０は、一意の暗号化クラウド２１０とインタラクションする、又はその一部である、サーバコンピュータ９１０に存在するストレージ及びメモリ内のデータ値及びデータファイルを格納及び実行する（図２参照）。暗号化エンジン１００は、具体的な所定のＩＰアドレス及びインバウンドポートにおいてコマンドを待機する；暗号化エンジン１００は、ユーザデータを暗号化し、ユーザデータを復号し、暗号化鍵を構築及び生成し、ユーザセッションに暗号化鍵を読み書きし、暗号化ハッシュ１４０を生成するように構成される。変数の値はクリアされ、メモリから削除される。暗号化ハッシュ生成プロセス１４０から返された値は一時変数「Ｂ」に格納される。変数「Ｂ」の値はクラウドコンピュータデータベース９０５内で、マッチする既存の値があるかどうかクエリされる。クラウドコンピュータデータベース９０５内で一意のクラウド識別子１５０が見つかったら、一意のクラウド識別子生成プロセス１５０は、生成されたクラウド識別子１５０が一意であり既存の一意の暗号化クラウド２１０のデータベース内で見つからなくなるまでループされ繰り返される。このプロセスの結果として、ハッシュ化された一意の値が返される。一意の識別子の値は一時変数に格納され、一意の暗号化クラウド２１０の作成が成功した後、変数からクリアされる。
【００２２】
第２のステップにおいて、一意の暗号化クラウドストレージ２１０の作成は、暗号化鍵を生成する。クラウド認証エンジン２００は、プロセス１１０に記載のとおりクラウド固有の暗号化鍵を生成して返す暗号化エンジン１００と通信する。プライベート暗号化／復号鍵１１０の作成は、暗号化エンジン１００が、要求されるパラメータ「パスワード（ｐａｓｓｗｏｒｄ）」及び「一意のクラウド識別子（ｕｎｉｑｕｅ  ｃｌｏｕｄ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）」と共にアクションコマンド「鍵の生成（ｇｅｎｅｒａｔｅ  ｋｅｙ）」を受信した際にトリガされる。「パスワード」及び「一意のクラウド識別子」パラメータが手動で渡されない場合、これらはクラウド認証セッション９０４から読み取られる。認証セッション９０４は、一意の暗号化クラウド２１０にアクセスを試みる認証済ユーザからのデータを保持する暗号化された一連のデータ値を含む。パスワードパラメータは生の未ハッシュ状態で受信され、一時変数に格納される。一時変数には一意のクラウド識別子１５０も格納される。生の未ハッシュパスワード及び一意のクラウド識別子１５０は組み合わされて１つの値にされ、一時変数「Ｃ」に格納される。変数「Ｃ」は内部的に渡され、１４０に記載の暗号化ハッシュを生成する。返された値は最終結果であり、クラウド固有の暗号化鍵である。「パスワード」と「一意のクラウド識別子」との組み合わせは、同じ暗号化鍵を生成するよう構成されている。この機能の結果はセッション、データベース、又はその他任意の永久ストレージに格納されることなく、プロセス完了時にメモリから削除される。暗号化鍵は一時変数内に格納され、一意の暗号化クラウド２１０の作成が成功した後、変数からクリアされる。暗号化鍵はいかなる時点においても格納されない。
【００２３】
第３のステップにおいて、一意の暗号化クラウドストレージ２１０の作成は、クラウドアクセスパスワードの不可逆ハッシュ値を生成する。この値は、第１のＪＳＯＮ配列に格納される。クラウド認証エンジン２００は、プロセス１４０に記載のとおり「クラウドパスワード（ｃｌｏｕｄ  ｐａｓｓｗｏｒｄ）」のハッシュ値を生成して返す暗号化エンジン１００と通信する。ハッシュ値は一時変数に格納され、クラウドの作成が成功した後で変数からクリアされる。
【００２４】
第４のステップにおいて、一意の暗号化クラウドストレージ２１０の作成は、２つの別個のＪＳＯＮデータ配列を作成する。第１の配列は、システムによって読み取られることのできるシステム固有の、機密でない、要求された情報を含む；これは、「クラウド名」、「一意のクラウド識別子」、「作成日（ｄａｔｅ  ｃｒｅａｔｅｄ）」、「ハッシュ化パスワード（ｈａｓｈｅｄ  ｐａｓｓｗｏｒｄ）」等の値、及びその他の機密でないデータを含む。第２の配列は空で、プロセス１１０に記載のとおり暗号化エンジンによって暗号化されている。これは将来的なデータを格納するための安全で暗号化されたスペースとして機能する。データの第１の配列及び第２の配列は、一意の暗号化クラウドを作成するデータベースに格納される。全ての変数はクリアされ、内容は破壊される。
【００２５】
図４を参照すると、クラウド認証エンジン２００が、要求されるパラメータ「クラウド名」及び「パスワード」と共にアクションコマンド「認証（ａｕｔｈｅｎｔｉｃａｔｅ）」を受信すると、一意の暗号化クラウド２２０への認証がトリガされる。両パラメータは、ＧＵＩ９０８コンポーネントで入力されたままの生の状態で受信され、一時変数に格納される。ＧＵＩ９０８は、ユーザが一意の暗号化クラウドストレージ２１０とインタラクションするフロントエンドグラフィック環境である。ＧＵＩはＷｅｂサイト、Ｗｅｂベースアプリケーション、デスクトップソフトウェア、又はモバイルソフトウェアに統合可能である。ＧＵＩ９０８に入力されると、パラメータはチェックされ、要求されたパラメータが最小限のセキュリティ要件と最小限の値の長さ要件を満たせば一意の暗号化クラウドへの認証アクセスプロセス２２０は継続され、さもなければ失敗する。
【００２６】
第１のステップにおいて、一意の暗号化クラウド２２０への認証は、一意の暗号化クラウドアクセスパスワードの不可逆ハッシュ値を生成する。クラウド認証エンジン２００は、プロセス１４０に記載のとおり「クラウドパスワード」のハッシュ値を生成して返す暗号化エンジン１００と通信する。暗号化エンジン１００は、サーバコンピュータ９１０上でインストール及び実行されるソフトウェアコンポーネント又はスクリプトである。暗号化エンジン１００は、具体的な所定のＩＰアドレス及びインバウンドポートにおいてコマンドを待機する；暗号化エンジン１００は、ユーザデータを暗号化し、ユーザデータを復号し、暗号化鍵を構築及び生成し、ユーザセッションに暗号化鍵を読み書きし、暗号化ハッシュ１４０を生成するように構成される。暗号化ハッシュ１４０の生成は、暗号化エンジン１００が、要求されるパラメータ「値」と共にコマンド「ハッシュ」を受信した際にトリガされる。値パラメータは一時変数「Ｚ」に格納される。プロセスが成功裏に完了すると、変数「Ｚ」の値はクリアされ、メモリから削除される。暗号化エンジン１００は、例えばグローバルなシステム（ＳＨＡ−２、ＳＨＡ−３）によって定義された不可逆暗号ハッシュ化方法の１つを用いて変数「Ｚ」の値をハッシュ化し、このプロセスの結果としてそれを返す。変数の値はクリアされ、メモリから削除される。ハッシュ値は一時変数に格納され、一意の暗号化クラウド認証２２０が成功した後で変数からクリアされる。
【００２７】
第２のステップにおいて、一意の暗号化クラウド２２０への認証は「クラウド名」と「ハッシュ化パスワード」との組み合わせを探してデータベースをクエリする。データベース内に一致が見つかると、一意の暗号化クラウドへの認証プロセス２２０は継続され、見つからない場合には失敗する。
【００２８】
第３のステップにおいて、一意の暗号化クラウド２２０への認証は「クラウド名」、「クラウドの一意の識別子」、及び「パスワードの生の値（ｒａｗ  ｖａｌｕｅ  ｏｆ  ｔｈｅ  ｐａｓｓｗｏｒｄ）」を内部的に渡して認証セッション９０４を作成し、プロセス２３０に記載のとおり認証セッションを作成する。認証セッション９０４は、一意の暗号化クラウド２１０にアクセスを試みる認証済ユーザからのデータを保持する暗号化された一連のデータ値を含む。
【００２９】
認証セッションを作成するプロセス２３０は、クラウド認証エンジン２００が、要求されるパラメータ「クラウド名」、「クラウドの一意の識別子」、及び「生パスワード（ｒａｗ  ｐａｓｓｗｏｒｄ）」と共にアクションコマンド「セッションの作成（ｃｒｅａｔｅ  ｓｅｓｓｉｏｎ）」を受信した際にトリガされる。
【００３０】
第１のステップにおいて、認証セッションの作成プロセス２３０は、暗号化鍵のグローバルに設定されたシステム値を取得する。認証セッションは暗号化された形で格納されるのが好ましい。セッションはクライアントサイドに格納されるため、なりすましの可能性を防ぐため、その内部の情報は常に保護される必要がある。暗号化鍵は、ハウジングシステム内の全てのセッション値を暗号化及び復号するために用いられる静的値である。暗号化鍵は一時変数に格納され、セッションの作成が成功した後で変数からクリアされる。
【００３１】
第２のステップにおいて、認証セッションの作成プロセス２３０は、全てのセッション変数を格納するＪＳＯＮ配列を作成する。「クラウド名」、「クラウドの一意の識別子」、及び「生のパスワード」は、ＪＳＯＮ配列に格納され、一時変数に格納される。
【００３２】
第３のステップにおいて、認証セッションの作成２３０は、配列を暗号化し、ハウジングシステムの設定により制限時間と有効性が設定されているセッションを作成する。このステップは認証セッションの作成を完了する。認証セッション９０４が作成されてクライアントサイドに格納されると、一意の暗号化されたクラウドの認証、すなわち「ログイン」が完了する。
【００３３】
図５を参照すると、データ暗号化プロセス１２０は、暗号化エンジン１００が、要求されるパラメータ「データ」と共にアクションコマンド「データの暗号化」を受信した際にトリガされる。「データ」パラメータは、ユーザが自分の一意な暗号化クラウドにアップロードしようとしている、９０７で表される暗号化されていないファイルである。入力データ９０７は、ユーザが一意の暗号化クラウドに安全に格納することを望んでいる、ユーザのデータの暗号化されていない形である。暗号化エンジン１００は、サーバコンピュータ９１０上でインストール及び実行されるソフトウェアコンポーネント又はスクリプトである。サーバコンピュータ９１０は、一意の暗号化クラウド２１０とインタラクションするのに用いられる、又はその一部である、サーバコンピュータに存在するストレージ及びメモリ内のデータ値及びデータファイルを格納及び実行する。暗号化エンジン１００は、具体的な所定のＩＰアドレス及びインバウンドポートにおいてコマンドを待機する。暗号化エンジン１００は、ユーザデータを暗号化し、ユーザデータを復号し、暗号化鍵を構築及び生成し、ユーザセッションに暗号化鍵を読み書きし、暗号化ハッシュ１４０を生成するように構成される。データパラメータは一時変数「Ａ」に格納され、データの暗号化が成功裏に完了した後でクリアされる。
【００３４】
第１のステップにおいて、データの暗号化プロセス１２０はクライアントサイドセッションからのデータを、「一意のクラウド識別子」、「生のパスワード」及び「クラウド名」へのアクセスを提供する一時変数に格納する。これはプロセス１１０と内部的に通信して、１１０に記載のとおり一意のクラウド暗号化鍵を生成する。プライベート暗号化／復号鍵を作成するプロセス１１０は、暗号化エンジン１００が、要求されるパラメータ「パスワード」及び「一意のクラウド識別子」と共にアクションコマンド「鍵の生成」を受信した際にトリガされる。「パスワード」及び「一意のクラウド識別子」パラメータが手動で渡されない場合、これらはクラウド認証セッション２３０から読み取られる。パスワードパラメータは生の未ハッシュ状態で受信され、一時変数に格納される。一時変数には一意のクラウド識別子９０３も格納される。生の未ハッシュパスワード及び一意のクラウド識別子９０３は組み合わされて１つの値にされ、一時変数「Ｃ」に格納される。変数「Ｃ」は内部的に渡され、１４０に記載の暗号化ハッシュを生成する。暗号化ハッシュを生成するプロセス１４０は、暗号化エンジン１００が、要求されるパラメータ「値」と共にコマンド「ハッシュ」を受信した際にトリガされる。値パラメータは一時変数「Ａ」に格納される。このプロセスが成功裏に完了した後、一時変数「Ａ」の値はクリアされメモリから削除される。暗号化エンジン１００は、例えばグローバルなシステム（ＳＨＡ−２、ＳＨＡ−３）によって定義された不可逆暗号ハッシュ化方法の１つを用いて変数「Ａ」の値をハッシュ化し、このプロセスの結果としてそれを返す。変数の値はクリアされメモリから削除される。返された値は最終結果であり、クラウド固有のパーソナル暗号化鍵９０１である。パーソナル暗号化鍵９０１は、一意の暗号化クラウド上でパーソナルユーザデータを暗号化及び復号するのに用いられる。暗号化鍵は「一意のクラウド識別子」９０３と「パーソナルアクセスパスワード（ｐｅｒｓｏｎａｌ  ａｃｃｅｓｓ  ｐａｓｓｗｏｒｄ）」９０２から生成される。ユーザによって必要とされ要求された場合にのみ、暗号化鍵１１０がランタイムで生成される。これはどこにも格納されないが、データの暗号化又は復号のために必要とされる間メモリ内に残存する。暗号化プロセス１２０又は復号プロセス１３０が完了するとすぐにメモリからクリアされる。「一意のクラウド識別子」と「パーソナルアクセスパスワード」との同じ組み合わせからは、常に同じ暗号化鍵９０１が生成される。ユーザの要求で、ユーザによってパスワードが変更された場合、暗号化鍵９０１は変更され、一意の暗号化クラウドに既に格納されているユーザの全データは、ユーザの旧パスワードを使って復号され、ユーザの新パスワードを使って再度暗号化される必要がある。「パスワード」と「一意のクラウド識別子」との組み合わせは、同じ暗号化鍵を生成するように構成されている。この機能の結果はセッション、データベース、又はその他任意の永久ストレージに格納されない。プロセス完了時にメモリから削除される。内部プロセス１１０が一意のクラウド暗号化鍵の生成に成功すると、これは一時変数「Ｂ」に格納され、暗��化プロセス１２０が完了すると一時変数「Ｂ」はクリア及び破壊される。
【００３５】
第２のステップにおいて、データの暗号化プロセス１２０は変数「Ａ」を、システム定義された暗号化アルゴリズム（例えばＡＥＳ、ＲＳＡ、Ｓｅｒｐｅｎｔ、Ｔｗｏ−ｆｉｓｈ）を利用して変数「Ｂ」の暗号化鍵によって暗号化する。暗号化されたデータは返され、プリファレンスに従ってクラウドコンピュータストレージスペース９０６又はクラウドコンピュータデータベース９０５のいずれかに格納される。クラウドコンピュータデータベース９０５は、クラウドでホストされた一連のサーバ上で運用されるＳＱＬ又は非ＳＱＬデータベースである。クラウドコンピュータストレージスペース９０６は、仮想化ストレージプールにデータが格納されるネットワーク化されたオンラインストレージサーバの一モデルである。変数はクリアされ、システムメモリから削除される。これにより、データの暗号化プロセス１２０が完了する。
【００３６】
図６を参照すると、データの復号プロセス１３０は、暗号化エンジン１００が、要求されるパラメータ「暗号化データ（ｅｎｃｒｙｐｔｅｄ  ｄａｔａ）」と共にアクションコマンド「データの復号化（ｄｅｃｒｙｐｔ  ｄａｔａ）」を受信した際にトリガされる。「暗号化データ」パラメータは以前に暗号化され、ファイルストレージプリファレンスに従って暗号化クラウドコンピュータストレージスペース９０６又は暗号化クラウドコンピュータデータベース９０５内に格納されたファイルである。ユーザは、一意の暗号化クラウド２１０からユーザのクライアントデバイス又はコンピュータ９０９にファイルをダウンロード及び復号できる。クライアントデバイス又はコンピュータ９０９は、ＧＵＩ９０８とのインタラクションに用いられるユーザ装置上にあるストレージ又はメモリを表す；この一例が、Ｗｅｂブラウザ内のセッションデータである。暗号化エンジン１００は、サーバコンピュータ９１０上でインストール及び実行されるソフトウェアコンポーネント又はスクリプトである。サーバコンピュータ９１０は、一意の暗号化クラウド２１０とインタラクションする、又はその一部である、サーバコンピュータに存在するストレージ及びメモリ内のデータ値及びデータファイルを格納及び実行する。暗号化エンジン１００は、具体的な所定のＩＰアドレス及びインバウンドポートにおいてコマンドを待機する。暗号化エンジン１００は、ユーザデータを暗号化し、ユーザデータを復号し、暗号化鍵を構築及び生成し、ユーザセッションに暗号化鍵を読み書きし、暗号化ハッシュ１４０を生成するように構成される。暗号化データパラメータは一時変数「Ａ」に格納され、データの復号が成功裏に完了した後でクリアされる。
【００３７】
第１のステップにおいて、データの復号プロセス１３０はクライアントサイドセッションからのデータを、「一意のクラウド識別子」、「生のパスワード」及び「クラウド名」へのアクセスを提供する一時変数に格納する。システムはプロセス１１０と内部的に通信して、１１０に記載のとおり一意のクラウド復号鍵を生成する。プライベート暗号化／復号鍵を作成するプロセス１１０は、暗号化エンジンプロセス１１０が、要求されるパラメータ「パスワード」及び「一意のクラウド識別子」と共にアクションコマンド「鍵の生成」を受信した際にトリガされる。「パスワード」及び「一意のクラウド識別子」パラメータが手動で渡されない場合、これらはクラウド認証セッション９０４から読み取られる。パスワードパラメータは生の未ハッシュ状態で受信され、一時変数に格納される。一時変数には一意のクラウド識別子９０３も格納される。生の未ハッシュパスワード及び一意のクラウド識別子９０３は組み合わされて１つの値にされ、一時変数「Ｃ」に格納される。変数「Ｃ」は内部的に渡され、１４０に記載の暗号化ハッシュを生成する。暗号化ハッシュを生成するプロセス１４０は、暗号化エンジン１００が、要求されるパラメータ「値」と共にコマンド「ハッシュ」を受信した際にトリガされる。値パラメータは一時変数「Ａ」に格納される。このプロセスが成功裏に完了した後、一時変数「Ａ」の値はクリアされメモリから削除される。暗号化エンジン１００は、例えばグローバルなシステム（ＳＨＡ−２、ＳＨＡ−３）によって定義された不可逆暗号ハッシュ化方法の１つを用いて変数「Ａ」の値をハッシュ化し、このプロセスの結果としてそれを返す。変数の値はクリアされメモリから削除される。返された値は最終結果であり、クラウド固有の暗号化鍵９０１である。パーソナル暗号化鍵９０１は、一意の暗号化クラウド上でパーソナルユーザデータを暗号化及び復号化するのに用いられる。暗号化鍵は「一意のクラウド識別子」９０３と「パーソナルアクセスパスワード」９０２から生成される。ユーザによって必要とされ要求された場合にのみ、暗号化鍵がランタイムで生成される。これはどこにも格納されないが、データの暗号化又は復号化のために必要とされる間メモリ内に残存する。暗号化プロセス１２０又は復号化プロセス１３０が完了するとすぐにメモリからクリアされる。「一意のクラウド識別子」と「パーソナルアクセスパスワード」との同じ組み合わせからは、常に同じ暗号化鍵が生成される。ユーザの要求で、ユーザによってパスワードが変更された場合、暗号化鍵は変更され、一意の暗号化クラウドに既に格納されているユーザの全データは、ユーザの旧パスワードを使って復号化され、ユーザの新パスワードを使って再度暗号化される必要がある。「パスワード」と「一意のクラウド識別子」との組み合わせは、同じ暗号化鍵を生成するように構成されている。パーソナル暗号化鍵９０１は、一意の暗号化クラウド上のパーソナルユーザデータの暗号化及び復号化に用いられる。暗号化鍵は、「一意のクラウド識別子」９０３及び「パーソナルアクセスパスワード」９０２から生成される。本実施形態において、パーソナルアクセス９０２パスワードは一意の暗号化クラウドシステムに必須の要素である。パスワードは、プロセス１１０に記載のとおり、一意のパーソナル暗号化鍵を生成するために用いられる。パーソナルアクセスパスワードはサーバコンピュータ９１０には格納されない。ユーザによって必要とされ要求された場合にのみ、暗号化鍵がランタイムで生成される。これはどこにも格納されないが、データの暗号化又は復号化のために必要とされる間メモリ内に残存する。暗号化プロセス１２０又は復号化プロセス１３０が完了するとすぐにメモリからクリアされる。「一意のクラウド識別子」と「パーソナルアクセスパスワード」との同じ組み合わせからは、常に同じ暗号化鍵９０１が生成される。ユーザの要求で、ユーザによってパスワードが変更された場合、暗号化鍵は変更され、一意の暗号化クラウドに既に格納されているユーザの全データは、ユーザの旧パスワードを使って復号され、ユーザの新パスワードを使って再度暗号化される必要がある。この機能の結果はセッション、データベース、又はその他任意の永久ストレージに格納されない。プロセス完了時にメモリから削除される。内部プロセス１１０が一意のクラウド復号鍵の生成に成功すると、これは一時変数「Ｂ」に格納され、暗号化プロセス１２０が完了すると一時変数「Ｂ」はクリア及び破壊される。
【００３８】
第２のステップにおいて、データの復号プロセス１３０は変数「Ａ」を、システム定義された暗号化アルゴリズム（例えばＡＥＳ、ＲＳＡ、Ｓｅｒｐｅｎｔ、Ｔｗｏ−ｆｉｓｈ）を利用して変数「Ｂ」の暗号化鍵によって暗号化する。復号されたデータ９０７は返され、暗号化されていない方たちでダウンロードされる。変数はクリアされ、システムメモリから削除される。これにより、データの復号プロセス１３０が完了する。
【００３９】
本明細書内の例は、暗号化されていない／復号済みデータをクライアントデバイスと、サーバやコンピュータ等のリモートデバイスとの間で送信することについて記載されているが、送信されるデータが、リモートデバイスでのストレージにおける暗号化とは別に暗号化されてよいことが、当業者によって理解される。例えば、ＨＴＴＰＳ等の技術、又はセキュリティ証明書を用いて、送信時にデータを保護することができ、また、その他の方式の暗号化によっても保護可能である。
【００４０】
上述の内容は、特定の非限定的な例示的実施形態を提供するが、上述の事項の組み合わせ、部分集合、変異が想定されることが理解されるべきである。意図される独占権は請求の範囲によって定義される。
【図１】
2016510962.tif 000003
【図２】
2016510962.tif 000004
【図３】
2016510962.tif 000005
【図４】
2016510962.tif 000006
【図５】
2016510962.tif 000007
【図６】
2016510962.tif 000008
【国際調査報告】
2016510962.tif 000009
2016510962.tif 000010
2016510962.tif 000011