(57)【要約】データの暗号化を改善するシステムおよび方法が提供される。改善されたデータ暗号化プロセスは、格納されるデータや送信されるデータに対して用いることができ、また、ポータブル・ストレージ・デバイスのデータに対して用いることができる。システムは、データ・ファイルを暗号化するためにパスワード入力を受け取ることができる。システムは、パスワード入力の各バイトに基づいて数学関数を受け取ることができる。システムは、次に、各数学関数をデータ・ファイルの各バイトたに対して用いることができる。データ・ファイルに対して各数学関数を用いることを反復することができる。データ・ファイルのバイトの位置を置き換えること、およびデータ・ファイルへフィラー・バイトを付加することができる。システムはまた、データ・ファイルの開始バイトの位置を調節する。【選択図】図１６
2021505938.tif 000002
【特許請求の範囲】
【請求項１】
システムであって、
プロセッサと、
前記プロセッサと通信するように構成された実体的な非一時的メモリであって、命令が格納されており、前記プロセッサにより前記命令が実行されると、前記プロセッサは、
パスワード入力の、各バイトが十進値からなるバイトの数を、前記プロセッサにより決定することと、
前記パスワード入力の第１バイトの十進値に基づいて、数学関数を、前記プロセッサにより取り出すことと、
データ・ファイルの各バイトに対して、前記数学関数を、前記プロセッサにより用いることと
を含む動作を行うようにされる、実体的な非一時的メモリと
を含むシステム。
【請求項２】
請求項１に記載のシステムであって、
前記パスワード入力の第２バイトの十進値に基づいて、第２の数学関数を、前記プロセッサにより取り出すことと、
前記データ・ファイルの各バイトに対して、前記第２の数学関数を、前記プロセッサにより用いることと
を更に含むシステム。
【請求項３】
請求項２に記載のシステムであって、前記データ・ファイルの各バイトへの前記第１の数学関数および前記第２の数学関数を用いることを、前記プロセッサにより反復することを更に含み、前記用いることは、ユーザ入力、格納された値、または前記パスワード入力の選択されたバイトの十進値に基づいて反復される、システム。
【請求項４】
請求項１に記載のシステムであって、前記パスワード入力の少なくとも１つのバイトの十進値に基づいて、前記データ・ファイルのバイトの位置を、前記プロセッサにより置き換えることを更に含むシステム。
【請求項５】
請求項１に記載のシステムであって、前記データ・ファイルへフィラー・バイトを、前記プロセッサにより付加することを更に含み、前記データ・ファイルへ付加されるフィラー・バイトの数は、最小ファイル・サイズ、最大ファイル・サイズ、または前記パスワード入力の少なくとも１つのバイトの十進値のうちの少なくとも１つに基づく、システム。
【請求項６】
請求項１に記載のシステムであって、前記パスワード入力の少なくとも１つのバイトの十進値に基づいて、前記データ・ファイルの開始バイトの位置を、前記プロセッサにより調節することを更に含むシステム。
【請求項７】
請求項１に記載のシステムであって、前記データ・ファイルへランダムなファイル拡張子を、前記プロセッサにより割り当てることを更に含むシステム。
【請求項８】
請求項１に記載のシステムであって、前記数学関数は、前記データ・ファイルのデータ・バイトを暗号化または暗号化解除の前記データ・ファイルの少なくとも１つへ変更するように構成された可逆的な関数を含む、システム。
【請求項９】
ポータブル・ストレージ・デバイス（ＰＳＤ）であって、
プロセッサと、
数学関数リストを含むものであり、前記プロセッサから命令を受け取るように構成された暗号化モジュールであって、前記数学関数リストは、番号順になったリストに格納された数学関数を含む、暗号化モジュールと、
前記プロセッサと通信するように構成された実体的な非一時的メモリであって、命令が格納されており、前記プロセッサにより前記命令が実行されると、前記暗号化モジュールは、
パスワード入力に基づいて、前記数学関数リストから複数の数学関数を、前記暗号化モジュールにより取り出すことと、
データ・ファイルの各バイトに対して、前記数学関数を、前記暗号化モジュールにより用いることと、
前記データ・ファイルのバイトの位置を、前記プロセッサにより置き換えることと、
前記データ・ファイルへフィラー・バイトを、前記プロセッサにより付加することと、
前記データ・ファイルの開始バイトの位置を、前記プロセッサにより調節することと
を含む動作を行うようにされる、実体的な非一時的メモリと
を含むポータブル・ストレージ・デバイス（ＰＳＤ）。
【請求項１０】
請求項９に記載のＰＤＳであって、
前記パスワード入力のバイトの数を、前記暗号化モジュールにより決定することと、
前記パスワード入力の各バイトの十進値であって、情報交換用米国標準コード（ＡＳＣＩＩ）基づくものである前記十進値を、前記暗号化モジュールにより決定することと
を更に含むＰＳＤ。
【請求項１１】
請求項１０に記載のＰＳＤであって、前記パスワード入力を前記暗号化モジュールによりランダム化することを更に含み、前記パスワード入力は、前記パスワードの長さを変化させること、前記パスワード入力のバイトの位置を、各バイトの十進値に基づいて置き換えること、または各バイトの十進値の比較に基づいて１以上のバイトの十進値を加算または減算することのうちの少なくとも１つによりランダム化される、ＰＳＤ。
【請求項１２】
請求項１１に記載のＰＳＤであって、前記パスワード入力は、ランダム化のときに各バイトの十進値を数学関数の前記番号順になったリストより小さい数に制限する係数ロジックに基づいて、ランダム化される、ＰＳＤ。
【請求項１３】
請求項１０に記載のＰＳＤであって、それぞれの数学関数は、番号順になったリストの数値へ割り当てられ、前記パスワード入力の各バイトの十進値と一致する数値を有する前記数学関数を取り出すことにより、複数の前記数学関数が取り出される、ＰＳＤ。
【請求項１４】
請求項９に記載のＰＳＤであって、前記データ・ファイルの各バイトに対して前記数学関数を用いることは、前記データ・ファイルの各バイトに対して複数の前記数学関数からの各数学関数を反復して用いることを含む、ＰＳＤ。
【請求項１５】
請求項１４に記載のＰＳＤであって、前記データ・ファイルの各バイトに対して前記数学関数を前記反復して用いることを、前記暗号化モジュールにより反復することを更に含み、前記反復して用いることは、ユーザ入力、格納された値、または前記パスワード入力の選択されたバイトの十進値に基づいて反復される、ＰＳＤ。
【請求項１６】
請求項９に記載のＰＳＤであって、
前記プロセッサと電子的に通信するストレージ・モジュールと、
前記プロセッサと電子的に通信する通信モジュールと
を更に含み、前記データ・ファイルは、前記ストレージ・モジュールから取り出されるか、または前記通信モジュールから受け取られる、ＰＳＤ。
【請求項１７】
データ・ファイルの暗号化の方法であって、
パスワード入力に基づいて複数の数学関数をプロセッサにより取り出すことと、
前記データ・ファイルの各バイトに対して前記数学関数を前記プロセッサにより用いることとであって、前記複数の数学関数からの各数学関数を、前記データ・ファイルの各バイトに対して反復して用いることと、
前記パスワード入力に基づいて前記データ・ファイルのバイトの位置を前記プロセッサにより置き換えることと、
前記パスワード入力に基づいて前記データ・ファイルへフィラー・バイトを前記プロセッサにより付加することと、
前記パスワード入力に基づいて前記データ・ファイルの開始バイトの位置を前記プロセッサにより調節することと
を含む方法。
【請求項１８】
請求項１７に記載の方法であって、ユーザ入力、格納された値、または前記パスワード入力の選択されたバイトの十進値に基づいて、前記データ・ファイルの各バイトに対して前記数学関数を前記反復して用いることを、前記プロセッサにより反復することを更に含む方法。
【請求項１９】
請求項１７に記載の方法であって、前記データ・ファイルのバイトの位置は前記バイトの十進値に基づいて置き換えられ、前記データ・ファイルのバイトの位置は、前記データ・ファイルの各バイトが置き換えられてしまうまで、または置き換えの所定の数に基づいて、置き換えられる、方法。
【請求項２０】
請求項１７に記載の方法であって、前記データ・ファイルへ付加されるフィラー・バイトの数は、最小ファイル・サイズ、最大ファイル・サイズ、または前記パスワード入力の少なくとも１つのバイトの十進値のうちの少なくとも１つに基づくものであり、前記開始バイトの位置は、前記パスワード入力の少なくとも１つのバイトの十進値に基づいて調節される、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願に対する相互参照
[0001]  仮出願ではない本特許出願は、２０１７年１２月１日に出願され、発明の名称が「SYSTEMS AND METHODS FOR IMPROVED DATA ENCRYPTION」である米国仮出願第６２／５９３６０３号に基づく優先権を主張するものであり、この言及により、この米国仮出願の全体がここに組み込まれる。
【０００２】
分野
[0002]  本開示は、一般には、データ暗号法と関連し、より具体的には、ポータブル・ストレージ・デバイスにおけるデータ暗号化を改善するシステムおよび方法と関連する。
【背景技術】
【０００３】
[0003]  デバイス間での通信は、典型的には、インターネットやローカル・エリア・ネットワークなどのようなネットワーク上で行われる。しかし、ネットワークは、デバイス間での通信のために常に使用可能であるとは限らず、更には、通信が露出されてネットワーク上でセキュリティが突破されてしまうことがあり得る。Ｂｌｕｅｔｏｏｔｈ（登録商標）を用いてイネーブルにされるデバイスは、直接に通信することができる。しかし、Ｂｌｕｅｔｏｏｔｈ（登録商標）によりイネーブルにされるデバイスは、制限された範囲内にある必要があり、また、通信速度は比較的遅くなり得る。消費者は、１つのデバイスに格納されたファイルを有しており、別のデバイスからそのファイルへアクセスすることを望むことがあり得る。インターネット接続無しで、またはデータ通信サービスのデータを使用せずに、ファイルを転送することは困難であり得る。更に、情報を転送すると、その情報がハッカーに対して露出され、セキュリティが突破されてしまうことがあり得る。
【０００４】
[0004]  情報をポータブル・ストレージ・デバイス（例えば、ＵＳＢスティック）に格納して、或るデバイスから第２のデバイスへのデータの物理的な転送を容易にすることができる。ストレージ・デバイスに保持したデータは暗号化することができ、第三者がデータへアクセスして見ることを部分的に妨げることができる。典型的な暗号化の方法は、暗号を用いて、暗号化し易いが暗号を知らなければ逆にすることが困難であるデータを作るか、または、一方向ハッシュを用いて、一致するように比較して確認することができるハッシュ値を作るが、格納されたデータはその後は見ることができなくなる。典型的な暗号化の方法は、ハッカーや第三者による攻撃の影響を受けやすい。
【発明の概要】
【０００５】
[0005]  ポータブル・ストレージ・デバイスのデータ・ファイルの暗号化のシステムおよび方法が開示される。システムは、パスワード入力に基づいて複数の数学関数を取り出すことができる。システムは、数学関数を、データ・ファイルの各バイトに対して用いることができる。システムは、パスワード入力に基づいて、データ・ファイルのバイトの位置を置き換えることができる。システムは、パスワード入力に基づいて、データ・ファイルへフィラー・バイト（filler byte）を付加することができる。システムはパスワード入力に基づいて、データ・ファイルの開始バイト位置を調節することができる。
【０００６】
[0006]  データは、ポータブル・ストレージ・デバイスを含む任意のデバイスでのエンクローズド・プロセス（enclosed process）を用いて暗号化することができる。システムおよび方法は、データの一方向暗号化のための機構を提供することができ、これは、データの暗号化に使用されたパスワード／キーと同じもの無しでは、それ自体で逆にすることできない。例えば、ユーザは、選択したデータ・ファイルを暗号化するためにパスワード／キーを入力することができる。その選択されたデータ・ファイルは、データ・ファイルのバイトに対して様々な数学関数を用いることにより、また、データ・ファイルにおいてバイトを再配置および付加することにより、暗号化されることができ、これらは全てパスワード／キーに基づくものである。パスワード／キーは、格納されず、また、暗号化されたデータに含まれないので、暗号化されたデータのセキュリティが増加され、パスワード／キーが危険にさらされる可能性が低減される。ユーザは、暗号化されたデータ・ファイルの暗号化解除のためにパスワード／キーを入力することができる。ユーザは、暗号化解除が成功したかどうかを、暗号化解除したデータを見ることによってのみ知ることができる。暗号化解除プロセスの間における誤ったパスワード／キー（例えば、元の入力されたパスワード／キーと一致しないパスワード／キー）の入力に応答し、得られる暗号化解除されたデータは、暗号化前の元のデータとは異なるものとなる。
【０００７】
[0007]  更に完全な理解は、図面と関連させて詳細な説明および特許請求の範囲を参照して考慮することにより、導き出されることができ、それらの図面では、同じ参照番号は類似のエレメントを指す。
【図面の簡単な説明】
【０００８】
【図１】図１は、本開示の様々な実施形態に従った、メッセージを送信するシステムの概略図を示す。
【図２】図２は、様々な実施形態に従った、デバイス間でデータを送信するプロセスを示す。
【図３】図３は、様々な実施形態に従った、ファイル送信プロトコルに関するプロセスを示す。
【図４】図４は、様々な実施形態に従った、探索プロトコルを示す。
【図５】図５は、様々な実施形態に従った、探索プロトコルの定義を示す。
【図６】図６は、様々な実施形態に従った、ファイル転送要求の定義を示す。
【図７】図７は、様々な実施形態に従った、ファイル転送要求に対する応答の定義を示す。
【図８】図８は、様々な実施形態に従った、ポータブル・ストレージ・デバイスを示す。
【図９Ａ】図９Ａ−９Ｃは、様々な実施形態に従った、モジュール式ポータブル・ストレージ・システムの様々なコンポーネントへの電子的および機械的な結合に適したポータブル・ストレージ・デバイスを示す。
【図９Ｂ】図９Ａ−９Ｃは、様々な実施形態に従った、モジュール式ポータブル・ストレージ・システムの様々なコンポーネントへの電子的および機械的な結合に適したポータブル・ストレージ・デバイスを示す。
【図９Ｃ】図９Ａ−９Ｃは、様々な実施形態に従った、モジュール式ポータブル・ストレージ・システムの様々なコンポーネントへの電子的および機械的な結合に適したポータブル・ストレージ・デバイスを示す。
【図１０Ａ】図１０Ａ−１０Ｃは、様々な実施形態に従った、モバイル・デバイスへの機械的取り付けのためのケースを含むポータブル・ストレージ・アセンブリを示し、ケースは、ポータブル・ストレージ・デバイスを保持するために適した凹部を有する。
【図１０Ｂ】図１０Ａ−１０Ｃは、様々な実施形態に従った、モバイル・デバイスへの機械的取り付けのためのケースを含むポータブル・ストレージ・アセンブリを示し、ケースは、ポータブル・ストレージ・デバイスを保持するために適した凹部を有する。
【図１０Ｃ】図１０Ａ−１０Ｃは、様々な実施形態に従った、モバイル・デバイスへの機械的取り付けのためのケースを含むポータブル・ストレージ・アセンブリを示し、ケースは、ポータブル・ストレージ・デバイスを保持するために適した凹部を有する。
【図１１】図１１は、様々な実施形態に従った、エッジ・ピン構成を含む一次モジュールの斜視図を示す。
【図１２】図１２は、様々な実施形態に従った、図１１の一次モジュールのピン図を示す。
【図１３】図１３は、様々な実施形態に従った、一次モジュールと電話機とを伴う電話機ケースを示す。
【図１４】図１４は、様々な実施形態に従った、バッテリを含む二次モジュールを示す。
【図１５】図１５は、様々な実施形態に従った、データを暗号化するためのポータブル・ストレージ・デバイスを示す。
【図１６】図１６は、様々な実施形態に従った、データの暗号化の方法の処理の流れを示す。
【発明を実施するための形態】
【０００９】
[0024]  ここでの例示の実施形態の詳細な説明では、様々な実施形態を例示する添付の図および絵を参照する。それらの様々な実施形態は、当業者が本開示を実施できるように十分詳細に説明されるが、本開示の精神および範囲から離れずに、他の実施形態を実現でき得ることと、論理的および機械的な変更を行え得ることとを、理解すべきである。すなわち、ここでの詳細な説明は、例示のみを目的として示され、限定は目的としていない。例えば、何れかの方法やプロセスの記載において説明されているステップは、任意の順に実行することができ、示された順に限定されない。更に、何れかの機能やステップは、１以上のサード・パーティーへ委託することや、サード・パーティーにより行われるようにすることができる。更に、単数についての言及は、複数の実施形態を含み、また、１より多くのコンポーネントについての言及は、単一の実施形態を含み得る。
【００１０】
[0025]  本開示は、システム、方法、およびコンピュータ・プログラム製品に関する。ここでの詳細な説明では、「様々な実施形態」、「１つの実施形態」、「実施形態」、「例示の実施形態」などに対する言及は、説明される実施形態が特定の構成や構造や特徴を含み得ることを示すが、全ての実施形態がその特定の構成や構造や特徴を必ずしも含むとは限らない。更に、そのような語は、同じ実施形態を必ずしも言及するとは限らない。更に、特定の構成や構造や特徴が実施形態と関連して記載されている場合、そのような特定の構成や構造や特徴を他の実施形態と関連して実施することは、それが明確に記載されているか否かにかかわらず、当業者の知識の範囲内でなされることを、述べておく。記載を読んだ後、代替の実施形態において本開示をインプリメントする方法が、当業者には明らかとなるであろう。
【００１１】
[0026]  ここではデータの暗号化を改善するシステムおよび方法が開示される。データは、ポータブル・ストレージ・デバイスを含む任意のデバイスでエンクローズド・プロセスを暗号化用いて暗号化することができる。システムおよび方法は、データの一方向暗号化のための機構を提供することができ、これは、データの暗号化に使用されたパスワード／キーと同じもの無しでは、それ自体で逆にすることできない。ユーザは、選択したデータ・ファイルを暗号化するためにパスワード／キーを入力することができる。ここで後に説明するように、その選択されたデータ・ファイルは、データ・ファイルのバイトに対して様々な数学関数（パスワード／キーに基づく）を用いることにより、また、データ・ファイルにおいてバイトを再配置および付加することにより、暗号化されることができる。パスワード／キーは、格納されず、また、暗号化されたデータに含まれないので、暗号化されたデータのセキュリティが増加され、パスワード／キーが危険にさらされる可能性が低減される。また、本開示は、暗号化解除が成功したか成功しなかったかについてのチェックまたは確認をしないことにより、暗号化されたデータのブルート・フォース攻撃に対しての感受性を低減することができる。この点に関して、ユーザは、暗号化解除が成功したかどうかを、暗号化解除したデータを見ることによってのみ知ることができる。暗号化解除プロセスの間における誤ったパスワード／キーの入力に応答し、得られる暗号化解除されたデータは、暗号化前の元のデータとは異なるものとなる。
【００１２】
[0027]  ここで説明するシステムおよび方法は、ＳＣＳを暗号化用いて、インターネットや他のネットワークへの接続無しで、デバイス間での通信を可能にすることができる。標準化された通信システム（「ＳＣＳ」（standardized communication system））は、本開示のコンピューティング・デバイスで動作させることができる。ＳＣＳは、ハードウェアおよび／またはソフトウェアの任意の組み合わせを含むことができる。ＳＣＳは、他の任意のデバイスとの通信のために、８０２．１１または８０２．２（２）ワイヤレス・チップやＢｌｕｅｔｏｏｔｈ（登録商標）システムなどのような、デバイスの既存の物理コンポーネントを用いることができる。ＳＣＳは、ＩＰ、ＴＣＰ／ＵＤＰ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、生マンチェスター・エンコーディング（raw Manchester encoding）、および他の任意のワイヤレス通信形態などのような、任意の通信プロトコルに適し得る。
【００１３】
[0028]  ＳＣＳは、様々な形式およびプラットフォームのデバイス間での通信を可能とすることができる。更に、ネットワークを介してデータを送信せずに直接にデバイス間で通信を行うことができるので、ネットワークが使用できないときに通信を行うことができ、また、ネットワーク上の盗聴者から通信を保護することができる。更に、デバイス間での直接の通信は、セルラ・データ・プランでのデータ課金を避けることができる。
【００１４】
[0029]  図１を参照すると、様々な実施形態に従った、メッセージを送信するためのシステム１００が示されている。ＳＣＳ１１２を含む第１デバイスと、ＳＣＳ１２２を含む第２デバイス１２０とが、様々な実施形態に従って示されている。様々な実施形態において、ＳＣＳ１１２およびＳＣＳ１２２は、第１デバイス１１０および第２デバイス１２０へインストールされたアフターマーケットのソフトウェアとすることができる。例えば、ユーザは、ＳＣＳアプリ（SCS app）をスマートフォンや他のデバイスにダウンロードすることができる。しかし、様々な実施形態において、Ｓ１１２およびＳＣＳ１２２は、第１デバイス１１０および／または第２デバイス１２０における８０２．１１ワイヤレス・チップなどのようなチップへ、埋め込むことができる。
【００１５】
[0030]  様々な実施形態において、ＳＣＳは、標準化した通信プロトコル（「ＳＣＰ」）をデバイスでインプリメントすることができる。ＳＣＰは、データグラム１５０をＳＣＰデータグラムとして識別するように、ＳＣＰヘッダー１５２をパケットへ添付することができる。第１デバイス１１０は、ＳＣＰを介して第２デバイス１２０と通信することができる。ＳＣＳは、ＳＣＰヘッダーを認識し、ＳＣＰに従うことができる。ＳＣＰは、デバイスに関しての、互いの探索、生データの転送の要求、データ受信時の確認の送信、およびデータ送信と関連する他の何れかのステップの実行のための能力を、定義することができる。
【００１６】
[0031]  様々な実施形態において、ＳＣＳは、開放型システム間相互接続（「ＯＳＩ」）モデルにおけるネットワーク層（またはＴＣＰ／ＩＰモデルにおけるインターネット層）で、インプリメントすることができる。トランスポート層で使用されるプロトコル（例えば、ＴＣＰ、ＵＤＰ、ＳＣＴＰ、ＤＣＣＰ）にかかわらず、ＳＣＰヘッダーは、ＳＣＳを含むデバイスがＳＣＰを介して通信することを、可能とすることができる。
【００１７】
[0032]  様々な実施形態において、第１デバイス１１０と第２デバイス１２０との少なくとも１つは、スマートフォンを含むことができる。しかし、様々な実施形態において、第１デバイス１１０および第２デバイス１２０は、データの送信および／または受信が可能な任意の形式のデバイスを含むことができる。
【００１８】
[0033]  図２を参照すると、様々な実施形態に従った、デバイス間でデータを送信するためのプロセス２００が示されている。様々な実施形態において、第１ユーザは、第１デバイス１１０から第２デバイス１２０へデータを送信することを望む。データは、テキスト・メッセージ、イメージ、ビデオ、テキスト文書、または他の任意の形式のファイルなどのような、任意の形式のデータを含むことができる。
【００１９】
[0034]  第１デバイス１１０は、使用可能なデバイスを探索する（ステップ２１０）。第１デバイス１１０は、様々な方法により他のデバイスの探索を試みる。様々な実施形態において、第１デバイス１１０は、カメラや他の光学デバイスを介して、他のデバイスを探索することができる。様々な実施形態において、第２デバイス１２０は、ＱＲコード（登録商標）やバーコードやテキストなどのようなシンボルを表示する。シンボルは、第２デバイス１２０についての識別用特徴を含むことができる。例えば、様々な実施形態において、識別用特徴は、デバイス名、デバイスのＩＰアドレス、所有者名、デバイスのエンドポイント、およびデバイス上の使用可能なトランスポート層のうちの少なくとも１つを含むことができる。第１デバイス１１０は、カメラを用いてシンボルをスキャンすることができる。第１デバイス１１０は、シンボルから識別用特徴を得て、データを第２デバイス１２０へ送信するために、その識別用特徴を用いることができる。
【００２０】
[0035]  様々な実施形態において、第１デバイス１１０のＳＣＳは、第１デバイス１１０内のワイヤレス・チップを用いて、他のデバイスを探すことができる。ＳＣＳを含むデバイスは、ブロードキャスト・メッセージを送信することができる。ブロードキャスト・メッセージは、デバイスの識別用特徴を含むことができる。様々な実施形態において、第１デバイス１１０は、第２デバイス１２０の送信範囲内にあり得る。送信範囲は、第１デバイス１１０および第２デバイス１２０のワイヤレス・チップの特定の形式に応じたものである。しかし、様々な実施形態において、送信範囲は、約２００フィートないし３００フィート（約６０メートルないし９０メートル）までとすることができる。ＳＣＳは、ブロードキャスト・メッセージを聞き取れるように、第１デバイス１１０のソケットを開くことができる。ブロードキャスト・メッセージは、様々なハードウェアにより送ることができる。例えば、ブロードキャスト・メッセージは、８０２．１１ワイヤレス・チップや、Ｂｌｕｅｔｏｏｔｈ（登録商標）チップや、ＮＦＣを介して送信することができる。
【００２１】
[0036]  様々な実施形態において、第１デバイス１１０および第２デバイス１２０は、互いに通信範囲内にない場合がある。しかし、ホットスポット技術を装備したスマートフォンなどのような中間デバイスが、第１デバイス１１０の送信範囲内にある場合がある。第１デバイス１１０は、中間デバイスへメッセージを送り、使用可能なデバイスを探すことを中間デバイスへ指示することにより、使用可能なデバイスを探すことができる。中間デバイスは、第２デバイス１２０からブロードキャスト・メッセージを受信し、中間デバイスは、そのブロードキャスト・メッセージを第１デバイス１１０へ送信することができる。したがって、第１デバイス１１０は、第１デバイス１１０が第２デバイス１２０の送信範囲内になくとも、インターネットやセルラ・ネットワークへ接続せずに、第２デバイス１２０を探索することができる。様々な実施形態において、任意の数の中間デバイスをデイジー・チェーンでつなぐことができ、それにより、第１デバイス１１０は、数マイル（１マイル＝約１６０９ｍ）離れたところから、一連の中間デバイスを介してデータを送信することにより、第２デバイス１２０を探索することができる。
【００２２】
[0037]  第１デバイス１１０は、発見された全てのデバイスのリストを、ユーザに表示することができる。ユーザは、データを第２デバイス１２０へ送信するために、第２デバイス１２０を選択することができる。ユーザは、第２デバイス１２０へ送信されるファイルやメッセージを選択することができる。
【００２３】
[0038]  第１デバイス１１０のＳＣＳ１１２は、送信のために使用する送信ハードウェアを決定する（ステップ２２０）。様々な実施形態において、第１デバイス１１０および第２デバイス１２０のそれぞれは、８０２．１１ワイヤレス・チップなどのような１つの形式のみの送信ハードウェアを有し、したがって、ＳＣＳ１１２は、データを送信するために８０２．１１ワイヤレス・チップを選択する。しかし、様々な実施形態において、第１デバイス１１０と第２デバイス１２０との間で、複数の送信経路が使用可能であり得る。例えば、第１デバイス１１０および第２デバイス１２０のそれぞれは、８０２．１１ワイヤレス・チップとＢｌｕｅｔｏｏｔｈ（登録商標）チップとを有することができる。様々な実施形態において、ＳＣＳ１１２は、最速の送信経路を決定することができ、データを送信するために、その最速の送信経路を選択することができる。様々な実施形態において、送信経路は、デフォールト設定により選択することができる。例えば、ＳＣＳ１１２は、８０２．１１ワイヤレス経路を送信に使用可能なときには常にそれを選択し、ＳＣＳ１１２は、８０２．１１ワイヤレス経路が使用できない場合に、Ｂｌｕｅｔｏｏｔｈ（登録商標）経路を選択することができる。しかし、様々な実施形態において、第１デバイス１１０のＳＣＳ１１２は、それぞれの使用可能な送信経路を介して、速度テスト・メッセージを第２デバイス１２０へ送信し、ＳＣＳ１１２は、速度テストの結果に基づいて、最速の送信経路を選択することができる。
【００２４】
[0039]  様々な実施形態において、ＳＣＳ１１２は、第１デバイス１１０に対して、複数の送信経路を介してデータを第２デバイス１２０へ送信するように、命令することができる。メッセージは、複数のパケットへと分割することができる。ＳＣＳ１１２は、使用可能な送信経路を分析して、メッセージ全体の送信を速くするために、複数の送信経路を介してメッセージを送ることができる。例えば、ＳＣＳ１１２は、メッセージを送信する最速の方法は、９０％のパケットを８０２．１１ワイヤレス経路を介して送信し、１０％のパケットをＢｌｕｅｔｏｏｔｈ（登録商標）経路を介して送信することである、と決定することができる。ＳＣＳ１１２は、８０２．１１ワイヤレスを介するかＢｌｕｅｔｏｏｔｈ（登録商標）を介するかにかかわらず、第２デバイス１２０へ送信される各パケットへＳＣＰヘッダーを添付する。したがって、デバイス１２０のＳＣＳ１２２は、それらのパケットを、ＳＣＰで受信されたパケットとして認識し、ＳＣＳ１２２は、メッセージ全体を再構築するためにパケットを再構成する。様々な実施形態において、ＳＣＳ１１２は、最速の送信方法を選択するために、使用可能な全ての送信経路を分析することができ、それらの送信経路は、限定するわけではないが、複数の８０２．１１ワイヤレス・チップ、Ｂｌｕｅｔｏｏｔｈ（登録商標）チップ、ＮＦＣ、ＰＤＱ、または他の任意の送信経路を含む。第１デバイス１１０のＳＣＳは、ファイル送信プロトコルを開始し、データを第２デバイス１２０へ送信する（ステップ２３０）。
【００２５】
[0040]  様々な実施形態において、第１デバイス１１０および第２デバイス１２０は、同じローカル・ネットワークへ接続することができる。第１デバイス１１０は、ＱＲコード（登録商標）などのようなリンクを、セルラ・ネットワークやローカル・ネットワークを介して、第２デバイス１２０へ送信する。様々な実施形態において、リンクは、１０ｋｂ以下のデータを含むことができる。第２デバイス１２０は、ファイル転送の要求または受け入れのために、リンクを用いることができる。第１デバイス１１０は、ローカル・ネットワークを介して、ファイルを送信することができる。様々な実施形態において、ファイルは、ＴＣＰ／ＩＰを直接に用いてローカル・ネットワークを介して、転送することができる。
【００２６】
[0041]  様々な実施形態において、第２デバイス１２０は、インターネット接続へアクセスすることができる。第１デバイス１１０は、セルラ送信経路を介して、リンクを第２デバイス１２０へ送信することができ、第２デバイス１２０は、クラウドおよび／またはサーバに格納されているファイルを、インターネットを介してダウンロードするために、そのリンクを用いることができる。様々な実施形態において、第２デバイス１２０は、ＴＣＰ／ＩＰを用いてファイルをダウンロードすることができる。
【００２７】
[0042]  様々な実施形態において、第１デバイス１１０は、そのコンテンツをクラウド・データベースと同期させることができる。様々な実施形態において、第１デバイス１１０はＳＣＳフォルダーを含むことができ、ＳＣＳフォルダーに格納されているファイルのみを、データベースと同期させることができる。第１デバイス１１０は、セルラ送信経路を介して第２デバイス１２０へリンクを送信して、データベースに格納されているファイルを識別できるようにする。様々な実施形態において、第２デバイス１２０は、第２デバイス１２０がリンクを受信した時点では、８０２．１１ワイヤレス・ネットワークへのアクセスを行えない場合がある。第２デバイス１２０は、第２デバイス１２０が８０２．１１ワイヤレス・ネットワークへのアクセスを得られるときにはいつも、セルラ・データ課金を避けるために、そのリンクを用いてファイルへアクセスすることができる。様々な実施形態において、第２デバイス１２０は、セルラ・ネットワークを介してファイルへアクセスするためのリンクを、用いることができる。様々な実施形態において、第２デバイス１２０は、セルラ・ネットワークと８０２．１１ワイヤレス・ネットワークとの何れかを介して、ファイルの全てまたは一部をストリームで送ることができる。
【００２８】
[0043]  様々な実施形態において、第１デバイス１１０は、オンライン・フォルダーを、第２デバイス１２０と共有することができる。第１デバイス１１０は、第２デバイス１２０がオンライン・フォルダーへアクセスできることを、示すことができる。第１デバイス１１０はオンライン・フォルダーと同期して、第１デバイス１１０に格納さけたファイルをオンライン・フォルダーへアップロードすることができる。第２デバイス１２０はオンライン・フォルダーと同期して、オンライン・フォルダーに格納されているファイルを第２デバイス１２０へダウンロードすることができる。
【００２９】
[0044]  図３を参照すると、様々な実施形態に従ったファイル送信プロトコル（file send protocol）のプロセス３００が示されている。第１デバイス１１０は、第２デバイス１２０との接続を確立させるための要求を送信する（ステップ３１０）。様々な実施形態において、接続は、ＴＣＰ接続を含むことができる。しかし、様々な実施形態において、接続は、デバイス間でデータを送信するための任意の形式の接続とすることができる。第２デバイス１２０は、接続要求を受け入れる（ステップ３２０）。様々な実施形態において、接続は、第１デバイス１１０および第２デバイス１２０のセキュアなソケット間でのものとすることができる。
【００３０】
[0045]  様々な実施形態において、第１デバイス１１０は、暗号ブックを含むメッセージを、第２デバイス１２０へ送信する（ステップ３３０）。暗号ブックは、ワンタイム暗号リストを含み、第２デバイス１２０が、ワンタイム暗号を用いてセキュアなソケットを介して第２デバイス１２０へ送信されたデータの暗号化解除を行うことを、可能とする。様々な実施形態において、第１デバイス１１０は、高度暗号化標準（Advanced Encryption Standard）（ＡＥＳ）やＲＳＡ暗号化などのような既知の暗号化方法を用いて、暗号ブックを含むメッセージを暗号化することができる。しかし、転送セッション中の後続のメッセージは、暗号ブックに含まれるワンタイム暗号を用いて暗号化することができる。ワンタイム暗号を用いて暗号化されたメッセージは、ＡＥＳやＲＳＡを用いて暗号化されたメッセージよりも、大幅に少ない処理力および時間で暗号化および暗号化解除することができる。更に、ワンタイム暗号を用いて送られたメッセージは、暗号ブックを含まないパーティーでは暗号化解除することができない。
【００３１】
[0046]  第１デバイス１１０は、ファイル転送要求を送る（ステップ３４０）。ファイル転送要求の例については、図５を参照されたい。第２デバイス１２０は、ファイル転送要求を受け入れる（ステップ３５０）。第２デバイス１２０がファイル転送要求を受け入れたことに応答して、第１デバイス１１０は、ファイルをセグメントへと分解して、第２デバイス１２０へのセグメントの送信を開始する（ステップ３６０）。第１デバイス１１０がファイルの全セグメントを送信した後、第１デバイス１１０は、第２デバイス１２０が全セグメントを受信したことの確認を待つ。第２デバイス１２０は、全セグメントを受信したことを示す確認メッセージを、第１デバイス１１０へ送信する（ステップ３７０）。第２デバイス１２０は、ファイルを再構築するために、ＳＣＰに従ってセグメントの暗号化解除を行い再構成する（ステップ３８０）。
【００３２】
[0047]  図４を参照すると、様々な実施形態に従った探索プロトコル４００の例が示されている。探索プロトコル４００は、ＴＣＰ／ＵＤＰを用いてトランスポート層にインプリメントすることができる。しかし、様々な実施形態において、探索プロトコルは、Ｂｌｕｅｔｏｏｔｈ（登録商標）シリアル・ポートやＲＳ−２３２を用いてインプリメントすることや、データグラムまたはＷｉｎｓｏｗｓ（登録商標）Ｓｏｃｋｅｔ  ＡＰＩ（ＷＳＡ）を介して全体を送ることができる。例示の実施形態におけるＬｏｃａｌＣｌｉｅｎｔは、デバイス名、ユーザ名、プリビュー・イメージ、およびエンドポイント（この場合はＩＰアドレスおよびポート）などのようなデバイスの識別用特徴が書き込まれる、ＩＤｉｓｃｏｖｅｒｅｄＣｌｉｅｎｔ（図５）クラスの新たなインスタンスであり得る。第１デバイス１１０は、ブロードキャスト・メッセージに対して新たなソケットを開くことができる（４１０）。第１デバイス１１０は、ブロードキャスト・メッセージへの応答のために、第１デバイス１１０が待ち受けているＩＰアドレスを送信することができる（４２０）。第１デバイス１１０は、応答メッセージを聞き取れるように、新たなデータグラム・ソケットを開くことができる（４３０）。応答メッセージを受信した後、第１デバイス１１０は、応答メッセージを、第１デバイス１１０の送信した元のＩＤｉｓｃｏｖｅｒｅｄＣｌｉｅｎｔメッセージへと、暗号化解除することができる（４４０）。
【００３３】
[0048]  図５を参照すると、様々な実施形態に従った、例示の探索プロトコル５００のための定義が示されている。定義は、送信側デバイスおよび受信側デバイスによりインプリメントすることができるＩＤｉｓｃｏｖｅｒｅｄＣｌｉｅｎｔと呼ばれる１つの共通クラスとすることができる。様々な実施形態において、定義は、ユーザの望み得るカスタムのフィールドや他の任意の情報を含むように、拡張することができる。様々な実施形態において、定義は、デバイスの名前（５１０）、デバイスのＩＰアドレス（５２０）、デバイスの所有者（５３０）、およびデバイスのエンドポイント（５４０）、およびデバイスが発見されたトランスポート層（５５０）を含むことができる。しかし、当業者は、使用される特定のフィールドを任意の望まれるフィールドに置換でき得ることを、理解するであろう。
【００３４】
[0049]  図６を参照すると、様々な実施形態に従った例示のファイル転送要求プロトコル６００の定義が示されている。定義は、「ＩＦｉｌｅＴｒａｎｓｆｅｒＲｅｑｕｅｓｔ」と呼ぶことができる。様々な実施形態において、定義は、ファイルを送信するデバイスの名前（６１０）、送られるファイル名（６２０）、ファイルのサイズ（６３０）、ファイルを受信するデバイス（６４０）、ファイル転送に対する一意の識別（６５０）、およびファイル転送と関連するトランスポート層（６６０）を含むことができる。
【００３５】
[0050]  図７を参照すると、様々な実施形態に従った、ファイル転送要求への応答７００の定義が示されている。受信側デバイスは、受信側デバイスがファイル転送を受け入れることを示すように、ＩＦｉｌｅＴｒａｎｓｆｅｒＲｅｓｐｏｎｓｅと呼ばれる定義を用いて応答することができる。様々な実施形態において、ＩＦｉｌｅＴｒａｎｓｆｅｒＲｅｓｐｏｎｓｅは、ユーザからの応答（７１０）とファイル転送に対する一意の識別（７２０）とを含むことができる。送信側デバイスは、受信側デバイスから応答を受信し、送信側デバイスは、受信側デバイスへのファイルの送信を進める。ファイル転送が完了すると、受信側デバイスは、送信側へ確認を送信する（７３０）。
【００３６】
[0051]  図８を参照すると、様々な実施形態に従った、ポータブル・ストレージ・デバイス（「ＰＳＤ」）８００が示されている。ＰＳＤ８００は、情報を格納できる任意のタイプのポータブル・デバイスを含むことができる。例えば、そして、様々な実施形態に従うと、ＰＳＤ８００は、モジュール式の構成をサポートすること、および／または２０１７年７月７日に出願され発明の名称が「PORTABLE STORAGE DEVICE WITH MODULAR POWER AND HOUSING SYSTEM」である米国出願第１５／６４４５５６号に開示されたポータブル・ストレージ・デバイスと類似の外部ハウジング、モバイル・コンピューティング・デバイス（例えば、タブレット、スマートフォン、スマート・ウォッチ、ラップトップなど）のためのケース、および／またはそれらと類似のものを、含むことができる。ＰＳＤ８００はまた、ウエアラブル・デバイス、小型時計、ネックレス、電話ケース、スマートフォン、ラップトップ／ノートブック、モバイル・ワークステーション、インプラントされるチップ、衣類、財布などを含むことができる。
【００３７】
[0052]  ＰＳＤ８００は、ストレージ・モジュール８１０、通信モジュール８２０、プロセッサ８３０、およびバッテリ８０５を含むことができる。ストレージ・モジュール８１０は、メモリ・カードを含むことができる。例えば、ストレージ・モジュール８１０は、ＳＤカード、ｘＤカード、ＣｏｍｐａｃｔＦｌａｓｈ（コンパクトフラッシュ）（登録商標）カード、または任意の他の適切なメモリ・カードを含むことができる。ストレージ・モジュール８１０は、ｉＳＳＤ、ＳＳＤ、ｉＮＡＮＤ、またはフラッシュＳＤなどのような内部メモリを含むことができる。通信モジュール８２０は、ワイヤレス通信が可能な１以上のコンポーネントを含むことができる。例えば、通信モジュールは、８０２．１１または８０２．２（２）ワイヤレス・チップや、Ｂｌｕｅｔｏｏｔｈ（登録商標）チップや、ＮＦＣチップなどを含むことができる。プロセッサ８３０は、命令をストレージ・モジュール８１０および通信モジュール８２０へ提供できるハードウェアおよび／またはソフトウェアの任意の組み合わせを含むことができる。
【００３８】
[0053]  ＰＳＤ８００は、先に述べたように、標準通信システム（「ＳＣＳ」）を含むことができる。ＳＣＳは、先に述べたように、標準通信プロトコル（「ＳＣＰ」）を介して通信できるハードウェアおよび／またはソフトウェアの任意の組み合わせとすることができる。様々な実施形態では、ＳＣＳは、ストレージ・モジュール８１０と通信モジュール８２０とプロセッサ８３０とのうちの少なくとも１つのものにインプリメントすることができる。ＰＳＤ８００は、スマートフォン、テレビジョン、ゲーム・コンソール、タブレット、パーソナル・コンピュータ、プリンターなどのような他のデバイスと、ファイル及び通信を、ワイヤレスで受信および送信することができる。ＳＣＳにより、ＰＳＤ８００は、何れかの特定の銘柄や製造者のデバイスとの通信に限定されないようにできる。対照的に、ＰＳＤ８００は、複数のプラットフォームを通して通信することができるものであり、Ａｐｐｌｅ（登録商標）のデバイス、Ａｎｄｒｏｉｄ（登録商標）のデバイス、Ｗｉｎｄｏｗｓ（登録商標）のデバイス、ＵＮＩＸ（登録商標）のデバイス、または任意の他の適切なデバイスなどと通信することができる。
【００３９】
[0054]  様々な実施形態では、ＰＳＤ８００は、ユーザが何処へ行ったときにでも、ユーザがユーザのファイルヘアクセスすることを、可能にすることができる。例えば、ユーザは、ラップトップ・コンピュータに格納された文書を有する。ユーザは、ＳＣＳを用いて、その文書をラップトップ・コンピュータからＰＳＤ８００へ送信することができる。ＰＳＤ８００は、その文書をストレージ・モジュール８１０に格納することができる。次に、ユーザは、ＳＣＳを用いて、その文書をＰＳＤ８００からスマートフォンなどのような別のデバイスへ送信することができる。
【００４０】
[0055]  様々な実施形態では、ＰＳＤ８００は、他のデバイスと、ネットワークを使用せずに直接に通信することができる。従って、情報を、ＰＳＤ８００と他のデバイスとの間で安全に送信することができる。しかし、様々な実施形態では、ＰＳＤ８００は、通信モジュール８２０のワイヤレス・チップを用いて、ネットワークを介して通信することができる。通信モジュール８２０は２つのワイヤレス・チップを含むことができ、ＰＳＤ８００が、第１ワイヤレス・チップでのネットワークを通じての通信と、第２ワイヤレス・チップでの別のデバイスとの直接の通信とを同時に行うことを、可能にすることができる。
【００４１】
[0056]  様々な実施形態では、ＰＳＤ８００は、データをデバイスに格納せずにそのデータがデバイスからＰＳＤ８００へ転送されることを、可能にすることができる。例えば、スマートフォンは、ピクチャをキャプチャし、スマートフォンのハード・ドライブにそのピクチャを格納せずにスマートフォンのＲＡＭを用い、そのピクチャをＰＳＤ８００へ直接に送信することができる。従って、スマートフォンは、紛失、盗難、売却、または寄贈されることがあっても、そのピクチャや、ＰＳＤ８００に格納されているがスマートフォンには格納されていない他のデータが、第三者により獲得される危険性が無い。同様に、ユーザは、ラップトップなどのようなデバイスのＳＣＳを起動し、そのデバイスを用いてＰＳＤ８００に格納されたファイルを開くことができる。ユーザは、そのデバイスでそのファイルを編集し、編集したファイルをそのデバイスでセーブせずに、直接にＰＳＤ８００でセーブすることができる。
【００４２】
[0057]  ユーザは、ユーザのファイルの全てを格納するためにＰＳＤ８００を用いることができる。ユーザがＰＳＤ８００にあるファイルへアクセスするために何れのデバイスを用いているかにかかわらず、ユーザは、パーソナル・コンピュータなどのような別のデバイスを用いてＰＳＤ８００で直接にファイルの作成、編集、および削除を行うことができる。様々な実施形態において、ＰＳＤ８００はネットワーク・ドライブをエミュレートすることができる。したがって、ＰＳＤ８００は、カスタムのソフトウェアのダウンロードやインストールをできないデバイスと通信することができる。例えば、ＰＳＤ８００は、ＤＬＮＡ（登録商標）メディア・デバイスやＷｉｎｄｏｗｓ（登録商標）ネットワークをエミュレートすることができる。ＰＳＤ８００は、デバイスでパスワードが入力されることを要求し、その後、デバイスはＰＳＤ８００に格納されたファイルへアクセスすることができる。
【００４３】
[0058]  様々な実施形態において、ＰＳＤ８００は、バッテリ８０５を充電するときに自動的に同期することができ、ワイヤレスで又は充電ケーブルで充電することができる。ＰＳＤ１０１０は、同期を開始する前に所定のバッテリ・レベルへ到達し得る。例えば、充電器上へ置かれたとき、ＰＳＤ１０１０は、バッテリ・レベルが少なくとも５０％、または少なくとも９０％に到達したことに応答して、同期を開始することができる。ＰＳＤ１０１０は、サーバ１０３０やローカル・デバイスや別のＰＳＤなどのような、ユーザにより指定された何れかの位置へ同期することができる。
【００４４】
[0059]  様々な実施形態において、ＰＳＤ８００は、任意の適切な寸法および形状を有する任意の適切なフォーム・ファクタを含むことができる。例えば、また、図９Ａ−９Ｃを参照すると、ＰＳＤ９００は、ハウジング９０２を含むことができる。ハウジング９０２は、金属、プラスチック、および／またはゴムを含む材料で作られることができる。例えば、ハウジング９０２は、打ち抜きや融着されたアルミニウムのシートや、成形されたプラスチックや、他の適切な材料で作られることができる。また、ハウジング９０２は、熱の発散を増やすように熱伝導性材料で作られることができる。様々な実施形態において、ハウジング９０２は、直方体の形状または長斜方形の形状を有することができる。各側面は、各側面の内側の面に対向する側面と実質的に合同である寸法を有することができる。この点に関して、ハウジング９０２は、３対の似た寸法を有する側面を有することができる。ハウジング９０２の寸法が小さければ、後に詳細に説明するモジュール式ストレージおよび電力解決策（power solution）における使用に適し得る。表面９１５の周囲とハウジング９０２の他の側面との境界は丸みのある縁部９１９とすることができる。
【００４５】
[0060]  ハウジング９０２の表面は、様々なインターフェースおよびコンポーネントを露出した状態にしておくことができる。例えば、ハウジング９０２の表面９０５は、電子インターフェース・パネル９０４を含むことができる。電子インターフェース・パネル９０４は、更に、表面９０５から少し突き出た、またはそれと同一平面の、またはそれから少しくぼんだ導電性パッド９０６を含むことができる。導電性パッド９０６は、表面９０５と接触するか近傍にある対向する面に形成された導電性ピンおよび／または導電性パッドとの電気的接続を形成することができる。様々な実施形態において、電子インターフェース・パネル９０４は、更に、ハウジング９０２から露出しているデータ・ポート９０８を含むことができる。データ・ポート９０８は、所定の形式の電子的接続を介して電力および／または信号を送るように構成されることができる。例えば、データ・ポート９０８は、ＵＳＢ、ファイアーワイヤ（登録商標）、ライトニング・ケーブル、ＳＡＴＡ、ＰＣＩｅ、またはデータおよび／または電力の送信のための他の適切なケーブル・インターフェースなどのようなプロトコルを、用いることができる。データ・ポート９０８はまた、プロプリエタリのピン構成およびスロット形状を用いることができる。
【００４６】
[0061]  様々な実施形態において、ハウジング９０２は、図９Ｂの上面図で示す矩形の形状の表面９１５を更に含む。表面９１５は、電源ボタンおよび／または光源９１０と、インターフェース・ボタンおよび／または光源９１２とを含むヒューマンＩ／Ｏインターフェース９１４を含むことができる。照明は、発光ダイオードや他の低電力消費の光源からのもとすることができる。電源ボタン９１０およびインターフェース・ボタン９１２は、静電容量式タッチ・ボタン、作動ボタン、またはユーザによるタッチ・コントロールに適切な他の入力機構を含むことができる。ハウジング９０２はまた、様々な実施形態においてマイクロフォンや他のＩ／Ｏデバイスを保持することができ、それにより、ユーザは、例えば、音声コマンドを用いて、ポータブル・ストレージ・デバイス９００と対話することができる。ここで図９Ｃを参照すると、様々な実施形態に従ったハウジング９０２の側面図が示されている。電子インターフェース・パネル９０４は、表面９２１に設定されることができ、表面９２１から露出した導電性パッド９０６およびデータ・ポート９０８を備える。表面９２１に設定されたコンポーネントは、表面９２１の縁部から表面９２１の対称および／または非対称の位置へずらすことができる。
【００４７】
[0062]  ここで図１０Ａ−１０Ｃを参照すると、様々な実施形態に従った、モバイル・コンピューティング・デバイスのためのケース１０１２が、ポータブル・ストレージ・アセンブリ１０１０として示されている。ケース１０１２は、例えば、タブレット、スマートフォン、スマート・ウォッチ、ラップトップ、または他の適切なコンピューティング・デバイスなどのようなポータブル・コンピューティング・デバイスにフィットし得る。ケース１０１２は、コンピューティング・デバイスを保持するために、コンピューティング・デバイスの輪郭と一致する内部輪郭を有することができる。ケース１０１２は、外面に１以上の開口部を設定し、コンピューティング・デバイスがケース１０１２内に保持されることに応じて、コンピューティング・デバイスの入力部、出力部、ボタン、およびそれらと同様のものへアクセスすることを、可能とすることができる。例えば、ケース１０１２は、コンピューティング・デバイスがケース１０１２内に保持されているときに、コンピューティング・デバイスが電源（例えば、ＵＳＢタイプＣインターフェース、アップル・アイフォン（登録商標）ライトニング・コネクタなど）、３．５ｍｍオーディオ入力、またはそれらと同様のものとインターフェースすることを可能にするための開口部を設定することができる。ケース１０１２は、ＰＳＤ９００を受けて保持ために適切な形状を有する窪み１０１４を設定することができる。この点に関して、ＰＳＤ９００は、取り外し可能にケース１０１２と結合することができ、窪み１０１４は、ポータブル・ストレージ・デバイスの５つの側面を反映する形状を有することができ、開口はポータブル・ストレージ・デバイスの表面のような形状とされている。従って、窪みは、５つの直交する表面により設定されることができる。ＰＳＤ９００は、表面がケース１０１２の内側と同じ高さになるように置かれることができる。
【００４８】
[0063]  様々な実施形態において、ケース１０１２は、データ・ポート９０８や導電性パッド９０６（例えば、図９Ａ−９Ｃのもの）との通信に適切なインターフェース１０１８を含むことができる。インターフェース１０１８は、ワイヤなどのような電気的コンジット１０１７により、データ・プラグ１０１６と電気的に接続することができる。データ・プラグ１０１６は、ケース１０１２内に保持されるコンピューティング・デバイスの対応するデータ・ポートとインターフェースすることができる。従って、データ・プラグ１０１６は、例えば、スマートフォンの底部ポートへプラグ・インして、ケース１０１２をスマートフォンへ電気的に結合することができる。ケース１０１２は、窪み１０１４のみならず、ここで説明するＰＳＤ９００および関連するコンポーネント（例えば、電源）を収容するように構成された突出部１０２２を、更に含むことができる。
【００４９】
[0064]  様々な実施形態において、ケース１０１２は、ポータブル・ストレージ・デバイス９００、電源、印刷回路基板ＰＣＢ（ＰＣＢ）、またはケース１０１２内に保持される他の電子デバイスの間での電気的通信を可能にすることができる。更に、ケース１０１２は、ケース１０１２内に保持されるモバイル・デバイスへの、および／またはそれからの、電力および／または信号の通信を可能にすることができる。ポータブル・ストレージ・デバイス９００はまた、上記のようにケース１０１２内に保持されたモバイル・デバイスとワイヤレス通信することができる。
【００５０】
[0065]  様々な実施形態において、ＰＳＤ９００はまた、一次モジュールおよび二次モジュールなどのような、互いに結合されるモジュール式コンポーネントを含むことができる。一次モジュールは、プロセッサ、ハード・ドライブ、ワイヤレス・チップ、バッテリなどのようなコンピューティング・コンポーネントを含むことができる。様々な二次モジュールは、バッテリ、充電ステーション、ストレージ・ユニット、ＬＴＥホットスポット・デバイス、カバー・プレート、カメラ、バーチャル・リアリティ・ユニット、スピーカー、ビデオ・スクリーン、ユーザ・インターフェースなどのような、一次モジュールと取り外し可能に結合することができる。二次モジュールは、一次モジュールと二次モジュールとを互いに結合するために、一次モジュールの受け側スロットと係合する接続ポストを含むことができる。二次モジュールのアライメント・ポストは、一次モジュールのアライメント窪みと係合することができる。二次モジュールの金属ピンは、一次モジュールのパッドと接触して、一次モジュールと二次モジュールとの間での電子的信号の交換を可能とすることができる。
【００５１】
[0066]  一次モジュールは、カメラ、スマートフォン、テレビジョン、ゲーム・コンソール、タブレット、パーソナル・コンピュータ、プリンタなどのような他のデバイスからファイルおよび通信をワイヤレスで受信および送信することができる。一次モジュールは、アップル（登録商標）のデバイス、アンドロイド（登録商標）のデバイス、ウィンドウズ（登録商標）のデバイス、ＵＮＩＸ（登録商標）のデバイス、または任意の他の適切なデバイスを用いるようなプラットフォームを介して通信することができる。様々な実施形態において、一次モジュールは、ユーザがどこへ行こうと、ユーザがユーザのファイルへアクセスすることを可能にすることができる。例えば、ユーザは、ラップトップ・コンピュータに格納された文書を有することができる。ユーザは、その文書を、ラップトップ・コンピュータから一次モジュールへワイヤレスで送信することができる。様々な実施形態において、一次モジュールは、ネットワークを用いずに、他のデバイスと直接に通信することができる。従って、情報は、一次モジュールと他のデバイスとの間でセキュアに送信されることができる。しかし、様々な実施形態において、一次モジュールは、一次モジュールのワイヤレス・チップを用いて、ネットワークを介して通信することができる。一次モジュールの能力に関する更なる情報に関しては２０１６年１２月２日に出願され発明の名称が「SYSTEMS AND METHODS FOR MEMORY CARD EMULATION」である米国出願第１５／３６７９６１号を参照するのがよく、この言及により、この米国出願の内容の全体がここに組み込まれる。
【００５２】
[0067]  図１１を参照すると、様々な実施形態に従った、エッジ・ピン構成を含む一次モジュール１１００の斜視図が示されている。１つのこのような例示のエッジ・ピン構成およびコネクタ・アセンブリは、２０１８年１０月１８日に出願され発明の名称が「PORTABLE ELECTRONIC DEVICE CONNECTION SYSTEMS」である米国出願第１５／３６７９６１号に開示されており、この言及により、この米国出願の内容がここに組み込まれる。一次モジュール１１００は、プロセッサ、ハード・ドライブ、ワイヤレス・チップ、バッテリなどのようなコンピューティング・コンポーネントを含むことができる。一次モジュール１１００は、一般に、直方体の形状を含むことができ、一次モジュール１１００は、６つの側面を含み、各側面は矩形である。一次モジュール１１００は、第１ピン・セット１１１０と第２ピン・セット１１２０とを含むことができる。第１ピン・セット１１１０および第２ピン・セット１１２０は、一次モジュール１１００の上側面１１０２と前側面１１０４との間の接合部に配置することができる。第１ピン・セット１１１０および第２ピン・セット１１２０は、二次モジュールの対応するピンと接続するように構成することができる。
【００５３】
[0068]  一次モジュール１１００は、接続ポート１１３０を更に含むことができる。接続ポート１１３０は、一次モジュール１１００をコンピュータ、カメラ、プリンタなどのような別のコンポーネントへ接続するためのコードを受けるように構成することができる。様々な実施形態において、接続ポート１１３０は、ＵＳＢタイプＣポート、任意の他のＵＳＢタイプのポート、シリアル・ポート、または他のデバイスへ接続可能な任意の他のタイプの接続ポートとすることができる。しかし、ＵＳＢタイプＣポートは、一次モジュールが非常に薄いパッケージとして構築されることを可能にする。例えば、様々な実施形態において、一次モジュール１１００の高さは０．３インチ（約７．６ｍｍ）より低い。様々な実施形態において、接続ポート１１３０は、一次モジュール１１００の前側面１１０４の第１ピン・セット１１１０と第２ピン・セット１１２０との間に配置することができる。
【００５４】
[0069]  図１２を参照すると、様々な実施形態に従った一次モジュール１１００のピン図（pin diagram）が示されている。第１ピン・セット１１１０は、第１ピン１２０１、第２ピン１２０２、第３ピン１２０３、第４ピン１２０４、第５ピン１２０５、第６ピン１２０６、第７ピン１２０７、第８ピン１２０８、第９ピン１２０９、および第１０ピン１２１０を含むことができる。第２ピン・セット１１２０は、第１ピン１３０１、第２ピン１３０２、第３ピン１３０３、第４ピン１３０４、第５ピン１３０５、第６ピン１３０６、第７ピン１３０７、第８ピン１３０８、第９ピン１３０９、および第１０ピン１３１０を含むことができる。
【００５５】
[0070]  第１ピン・セット１１１０に関して、第１ピン１２０１はバッテリ・パック・プラス・ピンを含むことができ、第２ピン１２０２はバッテリ・パック・プラス・ピンを含むことができ、第３ピン１２０３はシステム・グランド・ピンを含むことができ、第４ピン１２０４はＵＳＢ２．０Ｄａｔａ（＋）ピンを含むことができ、第５ピン１２０５はＵＳＢ２．０Ｄａｔａ（−）ピンを含むことができ、第６ピン１２０６はシステム・グランド・ピンを含むことができ、第７ピン１２０７はＵＡＲＴデータ受信ピンを含むことができ、第８ピン１２０８はＵＡＲＴデータ送信ピンを含むことができ、第９ピン１２０９はシステム・グランド・ピンを含むことができ、第１０ピン１２１０はシステム・グランド・ピンを含むことができる。
【００５６】
[0071]  第２ピン・セット１１２０に関して、第１ピン１３０１は外部電力プラス・ピンを含むことができ、第２ピン１３０２は外部電力プラス・ピンを含むことができ、第３ピン１３０３はバッテリ・パック温度センサ・ピンを含むことができ、第４ピン１３０４はオン・スイッチ／信号（ロー）ピンを含むことができ、第５ピン１３０５はリセット信号（ロー）ピンを含むことができ、第６ピン１３０６はモード選択（ロー）ピンを含むことができ、第７ピン１３０７はシリアル通信データ・ピンを含むことができ、第８ピン１３０８はシリアル通信クロック・ピンを含むことができ、第９ピン１３０９はシステム・グランド・ピンを含むことができ、および第１０ピン１３１０はシステム・グランド・ピンを含むことができる。
【００５７】
[0072]  図１３を参照すると、様々な実施形態に従った、電話機ケース１３３０と、電話機ケース１３３０へ一次モジュール１１００が取り付けられている電話機ケース１３３０と、電話機ケース１３３０へ取り付けられた電話機１３４０とが示されている。電話機ケース１３３０は、一次モジュール１１００に対する二次モジュールとして機能することができる。電話機ケース１３３０は、任意の特定の電話機モデルに合うように、望まれる寸法に製造することができる。電話機ケース１３３０は、ハウジング１３３１を含むことができ、バッテリ１３３２はハウジング内に配置される。様々な実施形態において、バッテリ１３３２は。ハウジング１３３１内に永久的に封入することができる。しかし、様々な実施形態において、バッテリ１３３２は、電話機ケース１３３０から取り外し可能とすることができる。
【００５８】
[0073]  電話機ケース１３３０は、第１ピン・セット１３３３および第２ピン・セット１３３４を含むことができる。第１ピン・セット１３３３および第２ピン・セット１３３４は、一次モジュール１１００のピンとインターフェースするように構成することができる。様々な実施形態において、電話機ケース１３３０の第１ピン・セット１３３３および第２ピン・セット１３３４はオス型ピンとすることができ、一次モジュール１１００のピンはメス型ピンとすることができる。様々な実施形態において、一次モジュール１１００のピンをオス型ピンとすることができ、第１ピン・セット１３３３および第２ピン・セット１３３４をメス型ピンとすることができる。
【００５９】
[0074]  電話機ケース１３３０はモジュール収容窪み１３３５を含むことができる。モジュール収容窪み１３３５は、一次モジュール１１００を受けるように構成することができる。モジュール収容窪み１３３５は、一次モジュール１１００と同じ寸法および形状を有することができる。電話機ケース１３３０は、電話機１３４０を受けるように構成された電話機収容窪み１３３６を更に含むことができる。モジュール収容窪み１３３５は、背壁１３３７を含むことができ、これは、電話機１３４０が電話機収容窪み１３３６へ取り付けられたときに一次モジュール１１００を背壁１３３７と電話機１３４０との間の位置に維持するように構成される。
【００６０】
[0075]  電話機ケース１３３０は、電話機ジャック１３３８を含むことができる。電話機ジャック１３３８は、電話機１３４０の接続ポートを介してバッテリ１３３２および／または一次モジュール１１００を電話機１３４０へ電気的に接続するように、構成することができる。接続ポートは、充電および／または電話機１３４０への／からのデータの転送に典型的に用いられる標準のポートとすることができる。電話機ケース１３３０は、一次モジュール１１００、パッテリ１３３２、および電話機ジャック１３３８を接続する内部ワイヤ１３３９を含むことができる。
【００６１】
[0076]  図１４を参照すると、バッテリ１４１０を含む二次モジュール１４００へ挿入された一次モジュール１１００が示されている。二次モジュール１４００は、一次モジュール１１００およびバッテリ１４１０を封入することができるハウジング１４２０を含むことができる。二次モジュール１４００は、一次モジュール１１００を受けるように構成された第１収容窪みと、バッテリ１４１０を受けるように構成された第２収容窪みとを含むことができる。様々な実施形態において、バッテリ１４１０は、ハウジング１４２０内に永久的に取り付けることができ、また、バッテリ１４１０は、ハウジング１４２０へ取り外し可能に取り付けることができる。二次モジュール１４００は、ＵＳＢタイプＣポートなどのような接続ポート１４３０を含むことができ、これは、コードを用いて、二次モジュール１４００が、バッテリ１４１０を充電するために電源（例えば、電気アウトレット）へ電気的に接続することや、コンピュータなどのような他のコンポーネントへデータを転送することを、可能にする。バッテリ１４１０は、一次モジュール１１００が二次モジュール１４００内へ取り付けられたときに、一次モジュール１１００へ電力を提供することができる。二次モジュール１４００はまた、一次モジュール１１００の上述のピンと係合するように構成されたピンを含むことができ、かつ／または二次モジュール１４００は、一次モジュール１１００、バッテリ１４１０、および接続ポート１４３０を電気的に接続するワイヤを含むことができる。
【００６２】
[0077]  上述のように、一次モジュール１１００は、他のデバイスとワイヤレスで通信することができる。しかし、様々な実施形態において、一次モジュール１１００は、有線接続を用いて、ワイヤレス接続よりも速くデータを転送および受信することができる。従って、図１３に示すように一次モジュール１１００を電話機へ電気的に接続することにより、または図１４で説明するようにケーブルを用いて一次モジュール１１００を外部デバイスへ電気的に接続することにより、一次モジュール１１００は、より速くデータを転送および受信することができる。
【００６３】
[0078]  当業者であれば、様々なピン構成を使用でき得ることを認識するであろう。更に、２つのみの二次モジュールを例示したが、多くの異なる寸法、形状、および機能の二次モジュールを一次モジュールと結合することができる。例示の実施形態は二次モジュールに接続ポストおよびピンを含むが、様々な実施形態において、接続ポストおよび／またはピンを一次モジュールに配置することができ、受け側スロットおよび／または接触パッドを二次モジュールに配置することができる。
【００６４】
[0079]  様々な実施形態において、また、図１５を参照すると、ＰＳＤ１５００が示されている。ＰＳＤ１５００は、ここで説明した特徴および機能を様々に含むことができる。ＰＳＤ１５００は、ＰＳＤ１５００に格納されたデータを暗号化して、第三者やハッカーがデータへアクセスして見ることを部分的に妨げるように、構成することができる。ＰＳＤ１５００はまた、暗号化されたデータの暗号化解除を行うように構成され、許可されたユーザが暗号化されたデータへアクセスすることを可能にする。本開示は、ＰＳＤ１５００でのデータの暗号化について説明するが、本システムおよび本方法は、任意の適切な環境、コンピュータ・ベースのシステム、またはそれらと同様のものにおいて、格納される暗号データと送信される暗号データとの双方に対して用いることができることを、理解すべきである。ＰＳＤ１５００は、ストレージ・モジュール１５１０、通信モジュール１５２０、プロセッサ１５３０、および／または暗号モジュール１５４０を含むことができる。ＰＳＤ１５００は、ここで説明した任意の他のコンポーネント、能力、およびそれらと同様のもの、例えばバッテリ、を更に含むことができる。
【００６５】
[0080]  図８を簡単に参照するが、様々な実施形態において、ストレージ・モジュール１５１０はストレージ・モジュール８１０と同様のものとすることができ、メモリ・カード、内部メモリ、および／またはそれらと同様のものを含むことができる。ストレージ・モジュール１５１０は、暗号化されたデータ・ファイルを含むデータ・ファイルを格納および維持するように、構成することができる。データ・ファイルは、例えば、テキスト、オーディオ、イメージ、ビデオ、および／またはそれらと同様のものなどのような、任意の適切な電子ファイルを含むことができる。図８を簡単に参照するが、通信モジュール１５２０は通信モジュール８２０と同様のものとすることができ、例えば、８０２．１１または８０２．２（２）ワイヤレス・チップや、Ｂｌｕｅｔｏｏｔｈ（登録商標）チップや、ＮＦＣチップや、それらと同様のものなどのような、ワイヤレス通信が可能な１以上のコンポーネントを含むことができる。通信モジュール１５２０はまた、タッチスクリーン、キーボード、マウス、またはそれらと同様のものを介してユーザから入力を受け取るように、構成することができる。図８を簡単に参照するが、プロセッサ１５３０はプロセッサ８３０と同様のものとすることができ、命令をストレージ・モジュール１５１０、通信モジュール１５２０、および／または暗号モジュール１５４０へ提供できるハードウェアおよび／またはソフトウェアの任意の組み合わせを含むことができる。プロセッサ１５３０は、命令が格納された具体的な非一時的なコンピュータ読取可能メモリを含むことができ、コンポーネントがここで説明する様々な機能を行うことを可能にする。
【００６６】
[0081]  様々な実施形態において、暗号モジュール１５４０は、ハードウェアおよび／またはソフトウェアの任意の組み合わせを含むことができ、データ・ファイルの暗号化および暗号化解除を行うように構成することができる。暗号モジュール１５４０は、プロセッサ１５３０のサブコンポーネントを含むこと、またはＰＳＤ１５００の物理的および／または論理的に別のコンポーネントを含むことができる。暗号モジュール１５４０は、ここで更に説明するように、データの暗号化および暗号化解除のための様々な動作を行うように、構成することができる。
【００６７】
[0082]  様々な実施形態において、暗号モジュール１５４０は、数学関数リスト１５４５を含むことができる。数学関数リスト１５４５は、データベース（例えば、リレーショナル、階層、グラフィカル、ブロックチェーン、またはオブジェクト指向の構造）、フラット・ファイル構造、および／またはデータの格納および維持が可能な任意の他の適切なデータ構造を含むことができる。数学関数リスト１５４５は、１以上の数学関数を含むことができる。ここで用いる「数学関数」とは、データ・バイトを変更するために用いることが可能な任意の適切な数学的および可逆的な関数のことであり得る。例えば、例としての数学関数は、バイトを２で割り、２つのバイトからランダムな半部を生成する命令を含むことができる（例えば、１００という値を構成するバイトを、２つの個別のバイトへと分割し、バイト［０］に５７という値を割り当て、バイト［１］に４３という値を割り当てる）。数学関数リスト１５４５は、任意の適切な数の数学関数を含むことができる。数学関数リスト１５４５の数学関数は番号順に並べられることができ、それぞれの数学関数は、番号順（例えば、１、２、３、４など）に対応する数値（識別子）が割り当てられる。様々な実施形態において、ユーザは、数学関数リスト１５４５へ更なる数学関数を入力するために、ＰＳＤ１５００と対話することができる（ＰＳＤ１５００との論理通信において二次デバイスを介してや、直接入力を介してなど）。
【００６８】
[0083]  様々な実施形態において、また、図１６を参照し且つ図１５の参照を継続すると、データの暗号化の方法１６０１が開示されている。方法１６０１は、ＰＳＤ１５００でのデータの暗号化について言及するが、本ステップおよび本プロセスを、任意の適切な環境、コンピュータ・ベースのシステム、データベース、またはそれらと同様のものにおいてデータに対して用いることができ得ることを、理解すべきである。
【００６９】
[0084]  方法１６０１は、パスワード入力を受け取ること（ステップ１６０２）を含むことができる。ＰＳＤ１５００は、通信モジュール１５２０またはプロセッサ１５３０を介して、パスワード入力を受け取るように構成されることができる。パスワード入力は、文字、数字、およびシンボルの任意の適切な組み合わせを含むことができ、ここで更に説明するように、データ・ファイルを暗号化するために入力されることができる。パスワード入力は、ユーザにより、任意の適切なデバイス（例えば、キーボード、マウス、タッチスクリーンなどや、ＰＳＤ１５００と論理的に通信する二次デバイス）を介して、入力されることができる。プロセッサ１５３０は、パスワード入力内のバイトの数を決定するためにパスワードをパースするように、構成することができる。また、プロセッサ１５３０は、各バイトの十進値を決定するように、構成することができる。例えば、「Ｈｅｌｌｏ１」というパスワード入力は、合計で６バイトを含む（例えば、「Ｈ」はバイト［０］、「ｅ」はバイト［１］、「ｌ」はバイト［２］、「ｌ」はバイト［３］、「ｏ」はバイト［４］、「１」はバイト［５］）。各バイトは、情報交換用米国標準コード（ＡＳＣＩＩ）の各バイトの十進値に基づく数値を含むことができる。例えば、文字「Ｈ」に対応するバイト［０］は、７２というＡＳＣＩＩ十進値から成るものであり得、文字「ｅ」に対応するバイト［１］は、１０１というＡＳＣＩＩ十進値から成るものであり得、文字「ｌ」に対応するバイト［２］は、１０８というＡＳＣＩＩ十進値から成るものであり得、文字「ｌ」に対応するバイト［３］は、１０８というＡＳＣＩＩ十進値から成るものであり得、文字「ｏ」に対応するバイト［４］は、１１１というＡＳＣＩＩ十進値から成るものであり得、文字「１」に対応するバイト［５］は、４９というＡＳＣＩＩ十進値から成るものであり得る。
【００７０】
[0085]  様々な実施形態において、方法１６０１は、パスワード入力をランダム化すること（ステップ１６０４）を含むことができる。プロセッサ１５３０は、パスワード入力をランダム化するように構成することができる。パスワード入力は、パスワードの長さを変化させるようにランダム化することができる。パスワードの長さを変化させることは、暗号の強さを増加させることができ、第三者やハッカーによるパスワード入力の正しい推測を部分的に減少させることができる。パスワード入力は、任意の適切な技術を用いてランダム化することができる。例えば、プロセッサ１５３０は、パスワード入力の各バイトの十進値の比較に基づいて、パスワード入力をランダム化することができる。その点に関して、パスワード入力は、バイト毎にランダム化することができる。例えば、バイト［０］から開始して全バイトを通してループするようにするが、バイト［０］の十進値がバイト［１］の十進値より大きいことに応答して、バイト［０］の十進値をバイト［０］の十進値に加算するか、または、バイト［０］の十進値がバイト［１］の十進値以下であることに応答して、バイト［２］の十進値をバイト［０］の十進値へ加算することができ、バイト［２］の十進値とのバイト［０］の十進値の係数がバイト［２］の十進値より大きいことに応答して、バイト［０］の十進値からバイト［１］の十進値を減算するか、またはバイト［２］の十進値とのバイト［０］の十進値の係数がバイト［２］の十進値以下であることに応答して、バイト［０］の十進値に２を乗算することができ、かつ／または、同様のことを行うことができる。この点に関して、パスワード入力の全バイトをランダム化することができる。様々な実施形態において、プロセッサ１５３０は、係数ロジックをインプリメントすることができ、各バイトの十進値が、数学関数リスト１５４５のリスト・サイズより大きい数へとランダム化されないようにする。
【００７１】
[0086]  様々な実施形態において、方法１６０１は、パスワード入力の各バイトに基づいて数学関数を選択すること（ステップ１６０６）を含むことができる。プロセッサ１５３０は、パスワード入力、バイト・データ、および十進値データを暗号モジュール１４０へ送るように構成することができる。暗号モジュール１５４０は、数学関数リスト１５４５から数学関数を取り出すように及び選択するように構成することができる。この点に関して、数学関数リスト１５４５の各数学関数は、番号順に並べることができ、各数学関数には、順番に対応する数値（例えば、１、２、３、４など）を割り当てることができる。暗号モジュール１５４０は、バイトの十進値に基づいて、パスワード入力の各バイトに対しての数学関数を取り出すこと及び選択するこができる。例えば、「Ｈｅｌｌｏ１」というデータ入力と関連する上記の例を用いると、暗号モジュール１５４０は、バイト［０］に関して、数値７２が割り当てられた数学関数、バイト［１］に関して、数値１０１が割り当てられた数学関数、バイト［２］に関して、数値１０８が割り当てられた数学関数、バイト［３］に関して、数値１０８が割り当てられた数学関数、バイト［４］に関して、数値１１１が割り当てられた数学関数、そしてバイト［５］に関して、数値４９が割り当てられた数学関数を、選択することができる。
【００７２】
[0087]  様々な実施形態において、方法１６０１は、暗号化されるデータ・ファイルを取り出すこと（ステップ１６０８）を含むことができる。暗号モジュール１５４０は、ストレージ・モジュール１５１０からデータ・ファイルを取り出すように、構成することができる。様々な実施形態において、データ・ファイルも、通信モジュール１５２０および／またはプロセッサ１５３０を介して、ＰＳＤ１５００へ入力され受信されることができ、暗号化のために暗号モジュール１５４０へ送信されることができる。
【００７３】
[0088]  様々な実施形態において、方法１６０１は、データ・ファイルの各バイトに対して第１の数学関数を用いること（ステップ１６１０）を含むことができる。暗号モジュール１５４０は、データ・ファイルの各バイトに対して第１の数学関数（例えば、パスワードのバイト［０］に基づいて選択される数学関数）を用いるように、構成することができる。例えば、暗号モジュール１５４０は、第１の数学関数がデータ・ファイルの全バイトに対して用いられるまで、第１の数学関数を各バイトに対して順に（例えば、バイト［０］、バイト［１］、バイト［２］など）用いることができる。
【００７４】
[0089]  様々な実施形態において、方法１６０１は、残りの選択された数学関数に関してステップ１６１０を反復すること（ステップ１６１２）を含むことができる。この点に関して、暗号モジュール１５４０は、選択された数学関数の全てが用いられるまで、数学関数をデータ・ファイルの各バイトに対して用いることを継続するように、構成することができる。例えば、合計６バイトを有する「Ｈｅｌｌｏ１」、従って、合計６つの数学関数が選択される場合を例とすると、暗号モジュール１５４０は、ステップ１６０６で選択された各数学関数を個別に用いるために、ステップ１６１０の追加の５回の反復を行うことができる。
【００７５】
[0090]  様々な実施形態において、方法１６０１は、データ・ファイルに対して数学関数を用いることを反復すること（ステップ１６１４）を含むことができる。暗号モジュール１５４０は、数学関数を暗号化用いることを反復するように、構成することができる。ステップ１６１０、１６１２は、任意の適切かつ／または望ましい回数だけ反復することができる。例えば、ステップ１６１０、１６１２は、ユーザ入力または格納した値に基づいて、反復することができる。様々な実施形態において、ステップ１６１０、１６１２は、データ入力からのバイトのうちの１つのものの十進値に基づいて、反復することができる。例えば、上記の「Ｈｅｌｌｏ１」の例を用いると、これはバイト［２］がＡＳＣＩＩ十進値１０８を有するものであり、ステップ１６１０、１６１２は、１０８回反復することができる（例えば、全ての数学関数が１０８回用いられる）。暗号モジュール１５４０は、ステップ１６１０、１６１２を反復する回数を決定するために、データ入力における特定のバイト（例えば、バイト［０］、バイト［１］など）を選択するように、予め構成しておくことができる。
【００７６】
[0091]  様々な実施形態において、方法１６０１は、データ・ファイルのバイトの位置を置き換えること（ステップ１６１６）を含むことができる。データ・ファイルのバイト位置は、暗号化されたデータ・ファイルにおいて関係パターンが発見されることを部分的に妨げるように、置き換えることができる。暗号モジュール１５４０は、データ・ファイルのバイトを入れ替えるように構成することができる。暗号モジュール１５４０は、任意の適切なプロセスを用いてデータ・ファイルのバイトを置き換えることができる。例えば、データ・ファイルのバイトは、パスワード入力のバイトに基づいて置き換えることができ、例えば、現在の位置のデータ・ファイル・バイト（バイト［０］から開始）を、パスワード入力の現在のデータ・ファイル・バイトからずれた位置のデータ・ファイル・バイトと置き換えるなどのようにする。例えば、パスワード入力のＡＳＣＩＩ十進値３から成る第１バイトに応答して、第１データ・ファイル・バイト（例えば、バイト［０］）は、３バイトずれたデータ・ファイル・バイト（例えば、バイト［３］）と置き換えることができる。更なる例として、各バイトは、バイトのＡＳＣＩＩ十進値に基づいて置き換えることができる。例えば、十進値３から成るバイト［０］に応じて、バイト［０］をバイト［２］と置き換えることができ、十進値１５から成るバイト［２］に応じて、バイト［２］をバイト［１５］と置き換えることができ、以下同様のことを行うことができる。様々な実施形態において、データ・ファイルの全バイトが置き換えられるまで、データ・ファイルのバイトの置き換えを継続することができる。様々な実施形態において、バイトの置き換えは、置き換えの所定回数またはそれと同様のものに基づいて、継続することができる。
【００７７】
[0092]  様々な実施形態において、方法１６０１は、データ・ファイルへフィラー・バイトを付加すること（ステップ１６１８）を含むことができる。フィラー・バイトをデータ・ファイルへ付加して、パスワード入力の長さまたは元のデータ・ファイルの長さ（例えば、方法１６０１のプロセスが用いられる前）をデータ・ファイルの最終的ファイル・サイズにより決定できなくすることを、保証することができる。暗号モジュール１５４０は、フィラー・バイトをデータ・ファイルへ付加するように、構成することができる。フィラー・バイトは、任意の適切なプロセスを用いて付加することができる。例えば、フィラー・バイトは、最小ファイル・サイズおよび／または最大ファイル・サイズに基づいて、付加することができる。最小ファイル・サイズおよび／または最大ファイル・サイズは、ユーザにより特定することができ、任意の適切なファイル・サイズを有することができる。様々な実施形態において、最大ファイル・サイズは、ストレージ・モジュール１５１０の空いたディスクまたはメモリ空間により制限され得る。様々な実施形態において、暗号モジュール１５４０は、データ・ファイルのサイズが最小ファイル・サイズより大きく且つ最大ファイル・サイズより小さくなるまで、フィラー・バイトをデータ・ファイルへ付加するように、構成することができる。様々な実施形態において、フィラー・バイトは、パスワード入力に基づいて付加することができる。例えば、パスワード入力からのバイト［１］の十進値をバイト［０］の十進値へ乗算して、付加するフィラー・バイトの合計数を計算することができる。
【００７８】
[0093]  様々な実施形態において、方法１６０１は、データ・ファイルの開始位置を調節すること（ステップ１６２０）を含むことができる。暗号モジュール１５４０は、データ・ファイルの開始位置を調節するように、構成することができる。データ・ファイルの開始位置は、初期のデータ・ファイルのファイル・ヘッダー、またはデータ・ファイルの開始位置へのハッカーや第三者による攻撃から部分的に保護するように、調節することができる。データ・ファイルの開始位置は、任意の適切な技術を用いて調節することができる。例えば、開始位置は、パスワード入力に基づいて、例えば、開始位置の値を計算することなどにより、計算および調節することができる。開始位置の値は、開始位置の値を生成するようにパスワード入力からデータ・バイトを選択することにより、計算することができる。
【００７９】
[0094]  バイト［１］の係数がバイト［２］の十進値より大きいことに応じて、開始位置の値に５が乗算され、バイト［２］の係数がバイト［３］の十進値未満であることに応じて、開始位置の値が３で除算され、またはバイト［２］の係数がバイト［３］の十進値以上であることに応じて、開始位置の値に２が乗算され、バイト［３］の係数が０であることに応じて、開始位置の値として値０が割り当てられ、バイト［４］の十進値ががバイト［２］より大きいことに応じて、バイト［４］、バイト［１］、およびバイト［２］を乗算した十進値へ開始位置の値が付加され、かつ／または同様のことが行われる。データ・ファイルの開始点は、開始位置の値に基づいて割り当てることができる。
【００８０】
[0095]  様々な実施形態において、結果的に得られる暗号化されたデータ・ファイルは、ストレージ・モジュール１５１０に格納すること、または任意の他の適切なストレージへ送信することができる。この点に関して、暗号化されたデータ・ファイルは、既知のファイル拡張子（例えば、ｅｘｅ、ｐｄｆなど）を含まないように、および／または元のデータ・ファイルのファイル拡張子を含まないようにすることができる。様々な実施形態において、暗号化されたデータ・ファイルへランダムな拡張子を割り当てることができる。様々な実施形態において、ＰＳＤ１５００は、ファイル・マネジャ、グラフィック・ユーザ・インタフェース、またはユーザが暗号化されたデータ・ファイルおよび対応する元のデータ・ファイルおよびデータ名を追跡することを可能とするように構成された他の適切なソフトウェア・インタフェースを、含むことができる。様々な実施形態において、データ・ファイル・リストを、暗号化されたデータ・ファイルおよび対応する元のデータ・ファイルおよびデータ名を追跡するように、ストレージ・モジュール１５１０において格納、維持、および守護することができる。
【００８１】
[0096]  様々な実施形態において、暗号化されたデータ・ファイルは、方法１６０１のステップと同じ又は似たステップを用いて暗号化解除されることができる。この点に関して、第２パスワード入力を受け取ったことに応答して、プロセッサ１５３０は、ステップ１６０４でのランダム化と同様に第２パスワード入力をランダム化することができる。暗号モジュール１５４０は、第２パスワード入力に基づいて、ステップ１６１８と同様に、暗号化されたデータ・ファイルの開始バイト位置を調節することができる。暗号モジュール１５４０は、第２パスワード入力に基づいて、ステップ１６１６と同様に、暗号化されたデータ・ファイルからフィラー・バイトを取り除くことができる。暗号モジュール１５４０は、第２パスワード入力のバイトに基づいて、ステップ１６０６と同様に、数学関数リスト１５４５を取り出し、数学関数を選択することができる。暗号モジュール１５４０は、ステップ１６１０、１６１２、および１６１４の逆の形で、第２パスワード入力のバイトに基づいて、選択された各数学関数をデータ・ファイルの各バイトに対して用い、数学関数を暗号化用いることを反復することができる。この点に関して、暗号化されたデータ・ファイルは暗号化解除されることができる。前記パスワード入力と一致する第２パスワード入力に応答して、暗号化解除されたデータ・ファイルは元のデータ・ファイルと同じものとなる。前記パスワード入力と一致しない第２パスワード入力に応答して、暗号化解除されたデータ・ファイルは元のデータ・ファイルと同じではなくなる。
【００８２】
[0097]  様々な実施形態において、ここで説明する方法は、ここで説明する様々な特定の機械でインプリメントされる。当業者には容易に理解できるように、ここで説明する方法は、下記の特定の機械および後に開発される機械を用いて、任意の適切な組み合わせで、インプリメントすることができる。更に、本開示から明らかなようにら、ここで説明する方法は、特定の物品を様々に変化させたものとなり得る。
【００８３】
[0098]  簡潔にするために、従来のデータ・ネットワーク化、アプリケーション開発、およびシステムの他の機能的特徴（およびシステムの個々の動作するコンポーネントのコンポーネント）について、ここでは詳細に説明しない。更に、ここに含まれる様々な図面における接続線は、様々な構成要素間の例としての機能的関係および／または物理的結合を表すことを意図している。実際のシステムにおいて、多くの代替または追加の機能的関係や物理的接続が存在し得ることに留意されたい。
【００８４】
[0099]  ここで用いられる「送信」は、電子データの少なくとも一部を１つのコンポーネントから別のものへ送ることを含み得る。更に、ここで用いる「データ」、「情報」、またはこれらと同様のものは、デジタル形態または他の任意の形態のコマンド、クエリ、ファイル、メッセージ、格納するデータ、およびその他の似たようなのものなどのような情報を含むことを、含み得る。
【００８５】
[00100]  ここで用いられる「電子通信」は、コンポーネントがデータを送信および受信することを可能にすることができる物理的結合および／または非物理的結合を含み得る。例えば、「電子通信」は有線またはワイヤレスのプロトコルを指すものであり得、それは、ＣＡＮバス・プロトコル、Ｅｔｈｅｒｎｅｔ（登録商標）物理層プロトコル（例えば、１０ＢＡＳＥ−Ｔ、１００ＢＡＳＥ−Ｔ、１０００ＢＡＳＥ−Ｔなどを用いるもの）、ＩＥＥＥ１３９４インタフェース（例えば、ファイアーワイヤ（登録商標））、デジタル総合サービス網（ＩＳＤＮ）、デジタル・サブスクライバ・ライン（ＤＳＬ）、８０２．１１ａ／ｂ／ｇ／ｎ／ａｃ信号（例えば、Ｗｉ−Ｆｉ）、短波長ＵＨＦラジオ波を用いＩＥＥＥ８０２．１５．１により少なくとも部分的に既定されるワイヤレス通信プロトコル（例えば、ブルートゥース（登録商標）・スペシャル・インタレスト・グループにより維持されるＢＬＵＥＴＯＯＴＨ（登録商標）プロトコル）、ＩＥＥＥ８０２．１５．４により少なくとも部分的に既定されるワイヤレス通信プロトコル（例えば、ジクビー・アライアンスにより維持されるＺＩＧＢＥＥ（登録商標）プロトコル）、セルラ・プロトコル、赤外線プロトコル、光プロトコル、または有線接続またはワイヤレス接続を介して情報を送信可能な任意の他のプロトコルなどである。
【００８６】
[00101]  ここで説明したコンポーネントの１以上のものは、ネットワークを介して電子的に通信することができる。ここで用いられる「ネットワーク」は、ハードウェアおよび／またはソフトウェアを組み込んだ任意のクラウド、クラウド・コンピューティング・システム、または電子通信のシステムまたは方法を更に含むことができる。ノード間での通信は、任意の適切な通信チャンネルを通じて達成することができ、通信チャンネルは、例えば、電話ネットワーク、エクストラネット、イントラネット、インターネット、ポイント・オブ・インタラクション・デバイス（パーソナル・デジタル・アシスタント、セルラ電話機、キオスク、タブレットなど）、オンライン通信、衛星通信、オフライン通信、ワイヤレス通信、トランスポンダー通信、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、バーチャル・プライベート・ネットワーク（ＶＰＮ）、ネットワーク化またはリンクされたデバイス、キーボード、マウス、および／または任意の適切な通信またはデータ入力のモダリティなどである。更に、ここでは、ＴＣＰ／ＩＰ通信プロトコルを用いてシステムがインプリメントされる旨を頻繁に記載しているが、システムは、インターネットワーク・パケット・エクスチェンジ（ＩＰＸ）、ＡＰＰＬＥＴＡＬＫ（登録商標）プログラム、ＩＰ−６、ＮｅｔＢＩＯＳ、ＯＳＩ、任意のトンネリング・プロトコル（例えば、ＩＰｓｅｃ、ＳＳＨなど）、または任意の数の既存のまたは将来のプロトコルを用いて、インプリメントすることもできる。ネットワークが、インターネットなどのような公共ネットワークの性質を持つものである場合、ネットワークはセキュアではなく盗聴者に対して開かれたものであると想定するのがよいであろう。インターネットと関連して用いられるプロトコル、標準、およびアプリケーション・ソフトウェアと関連する特定の情報は、一般に、当業者には知られているので、ここで説明する必要はない。
【００８７】
[00102]  「クラウド」または「クラウド・コンピューティング」は、コンフィギュレーション可能コンピューティング・リソース（例えば、ネットワーク、サーバ、ストレージ、アプリケーション、およびサービス）の共有されるプールへの、便利なオンデマンドのネットワーク・アクセスを可能にするモデルを含み、それらのコンフィギュレーション可能コンピューティング・リソースは、最小の管理努力やサービス・プロバイダとの対話で、迅速に供給およびリリースされることが可能である。クラウド・コンピューティングは、位置に依存しないコンピューティングを含むことができ、それにより、共有されるサーバは、リソース、ソフトウェア、およびデータを、オンデマンドでコンピュータおよび他のデバイスへ提供する。クラウド・コンピューティングに関する更なる情報については、ＮＩＳＴ（National Institute of Standards and Technology)のクラウド・コンピューティングの定義を参照されたい。
【００８８】
[00103]  様々なシステム・コンポーネントは、独立して、または分離して、または集合して、データ・リンクを介してネットワークへ適切に結合されることができ、データ・リンクは、例えば、標準モデム通信、ケーブル・モデム、ディッシュ・ネットワーク（登録商標）、ＩＳＤＮ、ＤＳＬ、または様々なワイヤレス通信方法と関連して典型的に使用されるローカル・ループを介してのインターネット・サービス・プロバイダ（ＩＳＰ）への接続を含む。ネットワークは、インタラクティブ・テレビジョン（ＩＴＶ）・ネットワークなどのような他の形式のネットワークとしてインプリメントできることにも留意されたい。更に、システムは、ここで記載する機能と類似の機能を有する任意のネットワークを介しての、任意の商品やサービスや情報の使用や販売や頒布も考慮している。
【００８９】
[00104]  ネットワークはセキュアではないかもしれない。従って、ネットワークを介しての通信ではデータ暗号化を用いることができる。暗号化は、当該分野で現在使用可能または使用可能になり得る技術のうちの任意のものにより行うことができ、それらは、例えば、Twofish、RSA、エルガマル、Schorr signature（シュノア署名）、DSA、PGP、PKI、GPG (GnuPG)、ＨＰＥフォーマット保持暗号化（ＦＰＥ）、Voltage、トリプルＤＥＳ、ブローフィッシュ、AES、MD5、HMAC、IDEA、RC6、および対称および非対称の暗号システムである。ネットワーク通信はまた、ＳＨＡシリーズ暗号法、楕円曲線暗号（例えば、ECC、ECDH、ECDSAなど）、および／または開発中の他のポスト量子暗号アルゴリズムを組み込むことができる。
【００９０】
[00105]  ここで説明する任意の通信、送信、および／またはチャンネルは、コンテンツ（例えば、データ、情報、メタデータなど）および／またはコンテンツ自体を送るための任意のシステムや方法を含むことができる。コンテンツは、任意の形態や媒体で呈示することができ、様々な実施形態において、コンテンツは、電子的に送られることができ、かつ／または電子的に呈示されることができる。例えば、チャンネルは、ウェブサイトやデバイス（例えば、FACEBOOK（登録商標）、YOUTUBE（登録商標）、PANDORA（登録商標）、APPLE TV（登録商標）、MICROSOFT（登録商標）XBOX（登録商標）、ROKU（登録商標）、AMAZON FIRE（登録商標）、GOOGLE（登録商標）CHROMECAST（商標）、SONY（登録商標）PLAYSTATION（登録商標）、NINTENDO（登録商標）SWITCH（登録商標）など）、ユニフォーム・リソース・ロケータ（ＵＲＬ）、文書（例えば、MICROSOFT（登録商標）Word（商標）文書、MICROSOFT（登録商標）Excel（登録商標）文書、ADOBE（登録商標）pdf文書など）、電子書籍、Ｅマガジン（emagazine）、アプリケーションやマイクロアプリケーション（ここで説明されたもの）、ＳＭＳや他のタイプのテキスト・メッセージ、Ｅメール、FACEBOOK（登録商標）メッセージ、TWITTER（登録商標）ツイート、ＭＭＳ、および／または他のタイプの通信技術を含むことができる。様々な実施形態において、チャンネルは、データ・パートナーによりホストまたは提供されることができる。様々な実施形態において、ディストリビューション・チャンネルは、ソーシャル・メディア・サイト、外部ベンダ、およびモバイル・デバイス通信のうちの少なくとも１つを含むことができる。ソーシャル・メディア・サイトの例は、FACEBOOK（登録商標）、FOURSQUARE（登録商標）、TWITTER（登録商標）、LINKEDIN（登録商標）、INSTAGRAM（登録商標）、PINTEREST（登録商標）、TUMBLR（登録商標）、REDDIT（登録商標）、SNAPCHAT（登録商標）、WHATSAPP（登録商標）、FLICKR（登録商標）、VK（登録商標）、QZONE（登録商標）、WECHAT（登録商標）などを含む。モバイル・デバイス通信の例は、スマートフォンに関するテキスティング、Ｅメール、およびモバイル・アプリケーションを含む。
【００９１】
[00106]  ここで説明する様々なシステム・コンポーネントは、デジタル・データを処理するプロセッサを含むホスト・サーバまたは他の計算システムと、プロセッサと結合され、デジタル・データを格納するメモリと、プロセッサと結合され、デジタル・データを入力する入力デジタイザと、メモリに格納されプロセッサによりアクセス可能であり、プロセッサによるデジタル・データの処理を命令するアプリケーション・プログラムと、プロセッサおよびメモリと結合され、プロセッサにより処理されたデジタル・データから導出される情報を表示するディスプレイ・デバイスと、複数のデータベースとのうちの１以上のものを含むことができる。ここで用いられる様々なデータベースは、クライアント・データ、商人データ、金融機関データ、および／またはシステムの動作に有用な同様のデータを含むことができる。当業者には理解できるように、ユーザ・コンピュータは、オペレーティング・システム（例えば、WINDOWS（登録商標）、UNIX（登録商標）、LINUX（登録商標）、SOLARIS（登録商標）、MacOS（登録商標）など）と、典型的にコンピュータと関連する様々な従来のサポート・ソフトウェアおよびドライバとを含む。
【００９２】
[00107]  本システムまたは本システムの何の部分（１以上）や機能（１以上）も、ハードウェア、ソフトウェア、またはそれらの組み合わせを用いてインプリメントすることができ、１以上のコンピュータ・システムまたは他の処理システムでインプリメントすることができる。しかし、実施形態により行われる操作は、人間である操作者により行われる精神的動作と一般的に関連する「一致する」や「選択する」などの用語で述べられている。ここで説明する何れの動作においても、人間である操作者のそのような能力は不要であり、また、ほとんどの場合において望ましくない。むしろ、動作は機械の動作であり得、何れの動作も人工知能（ＡＩ）や機械学習により行われたり高められたりする。様々な実施形態を行うために有用な機械は、汎用デジタル・コンピュータやそれと同様のデバイスを含む。
【００９３】
[00108]  様々な実施形態において、実施形態は、ここに記載する機能を実行できる１以上のコンピュータ・システムに向けたものである。コンピュータ・システムは、１以上のプロセッサを含む。プロセッサは、通信インフラストラクチャ（例えば、通信バス、クロス・オーバー・バー、ネットワークなど）と接続される。様々なソフトウェア実施形態は、この例示のコンピュータ・システムに関して説明される。この記載を読んだ後、当業者には、他のコンピュータ・システムおよび／またはアーキテクチャーを用いて様々な実施形態をインプリメントする方法が、明らかになるであろう。コンピュータ・システムは、ディスプレイ・ユニットでの表示のために、通信インフラストラクチャーから（または示していないフレーム・バッファから）グラフィックス、テキスト、および他のデータを送るディスプレイ・インターフェイスを含むことができる。
【００９４】
[00109]  また、コンピュータ・システムは、ランダム・アクセス・メモリ（ＲＡＭ）などのようなメイン・メモリを含み、また、２次メモリも含むことができる。２次メモリは、例えば、ハード・ディスク・ドライブ、ソリッドステート・ドライブ、および／または取り外し可能ストレージ・ドライブを含むことができる。取り外し可能ストレージ・デバイスは、既知の様式で、取り外し可能ストレージ・ユニットからの読み出しおよび／またはそれヘの書き込みを行う。理解されるように、取り外し可能ストレージ・ユニットは、コンピュータにより使用可能でありコンピュータ・ソフトウェアおよび／またはデータを記録した、コンピュータにより使用可能なストレージ媒体を含む。
【００９５】
[00110]  「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」、および「コンピュータ読取可能媒体」という用語は、一般に、取り外し可能ストレージ・ドライブおよびハード・ディスク・ドライブにインストールされているハード・ディスクなどのような媒体を指すために用いられる。これらのコンピュータ・プログラム製品は、コンピュータ・システムへソフトウェアを提供する。
【００９６】
[00111]  コンピュータ・システムはまた、通信インターフェイスを含むことができる。通信インターフェイスは、ソフトウェアおよびデータがコンピュータ・システムと外部デバイスとの間で転送されることを可能にする。通信インターフェイスの例は、モデム、ネットワーク・インターフェイス（Ｅｔｈｅｒｎｅｔ（登録商標）カードなど）、通信ポートなどを含むことができる。通信インターフェイスを介して転送されるソフトウェアおよびデータは、信号の形態であり、それは、電子信号、電磁信号、光信号、または通信インターフェイスにより受信可能な他の信号とすることができる。これらの信号は、通信経路（例えば、チャンネル）を介して通信インターフェイスへ提供される。このチャンネルは、信号を運ぶものであり、ワイヤー、ケーブル、光ファイバ、電話線、セルラ・リンク、無線周波数（ＲＦ）リンク、ワイヤレスおよび他の通信のチャンネルを用いてインプリメントすることができる。
【００９７】
[00112]  コンピュータ・プログラム（コンピュータ制御ロジックとも言われる）は、メイン・メモリおよび／または２次メモリに格納される。また、コンピュータ・プログラムは、通信インターフェイスを介して受け取られることができる。そのようなコンピュータ・プログラムは、それが実行されたときに、ここに記載する機能をコンピュータ・システムに行わせることを可能にする。具体的には、コンピュータ・プログラムが実行されると、様々な実施形態の機能をプロセッサにより行わせることを可能にする。したがって、そのようなコンピュータ・プログラムは、コンピュータ・システムのコントローラーに相当する。
【００９８】
[00113]  それらのコンピュータ・プログラム命令は、汎用コンピュータ、特定用途向けコンピュータ、または他のプログラマブル・データ処理装置へ、マシンを作成するためにロードすることができ、コンピュータまたは他のプログラマブル・データ処理装置で実行されるそれらの命令は、フローチャートの１または複数のブロックで示された機能をインプリメントするための手段を作成する。それらのコンピュータ・プログラム命令はまた、コンピュータ読み取り可能メモリへ格納することができ、それらの命令は、コンピュータまたは他のプログラマブル・データ処理装置へ、特定の様式で機能するように指示することができ、コンピュータ読み取り可能メモリへ格納された命令は、フローチャートの１または複数のブロックで示された機能をインプリメントする命令手段を含む製品を作り出す。コンピュータ・プログラム命令はまた、コンピュータによりインプリメントされるプロセスを作り出すために、コンピュータまたは他のプログラマブル・データ処理装置で一連の動作ステップが行われるように、コンピュータまたは他のプログラマブル・データ処理装置へロードすることができ、コンピュータまたは他のプログラマブル・データ処理装置で実行される命令は、フローチャートの１または複数のブロックで示された機能をインプリメントするためのステップを提供する。
【００９９】
[00114]  従って、ブロック図およびフローチャートの例示の機能ブロックは、指定された機能を行う手段の組み合わせ、指定された機能を行うステップの組み合わせ、および指定された機能を行うプログラム命令手段をサポートする。また、ブロック図およびフローチャートの例示の各機能ブロック、およびブロック図およびフローチャートの例示の機能ブロックの組み合わせを、指定された機能またはステップを行う特定用途向けのハードウェア・ベースのコンピュータ、または特定用途向けのハードウェアとコンピュータ命令との適切な組み合わせによりインプリメントできることも、理解されるであろう。更に、プロセスの流れの図とその説明とは、ユーザＷＩＮＤＯＷＳ（登録商標）アプリケーション、ウェブページ、ウェブサイト、ウェブ・フォーム、プロンプトなどに言及することもある。ここで説明された例示のステップが、ＷＩＮＤＯＷＳ（登録商標）アプリケーション、ウェブページ、ウェブ・フォーム、ポップアップＷＩＮＤＯＷＳ（登録商標）アプリケーション、プロンプト、およびこれらと同様のものの使用を含む任意の数のコンフィギュレーションに含まれ得ることを、専門家は理解するであろう。更に、図示および記載された複数のステップは、簡潔にするために、展開されているが、１つのウェブページおよび／またはＷＩＮＤＯＷＳ（登録商標）アプリケーションへと組み合わせることができることも、理解すべきである。他の場合において、１つの処理ステップとして図示および記載されたステップは、簡素化のために、組み合わされているが、複数のウェブページおよび／またはＷＩＮＤＯＷＳ（登録商標）アプリケーションへと分割することができる。
【０１００】
[00115]  様々な実施形態において、ソフトウェアは、コンピュータ・プログラム製品に格納し、取り外し可能ストレージ・ドライブ、ハード・ディスク・ドライブ、または通信インターフェイスを用いてコンピュータ・システムへロードすることができる。制御ロジック（ソフトウェア）は、プロセッサにより実行されると、ここに記載する様々な実施形態の機能をプロセッサに行わせる。様々な実施形態において、ハードウェア・コンポーネントは特定用途向け集積回路（ＡＳＩＣ）の形態をとり得る。ここに記載する機能を行うようにハードウェア状態マシンをインプリメントすることは、当業者には明らかである。
【０１０１】
[00116]  様々な実施形態において、ここで説明したコンポーネント、モジュール、および／またはエンジンは、マイクロアプリケーション（micro-application）またはマイクロアプ（micro-app）としてインプリメントすることができる。マイクロアプは、典型的には、モバイル・オペレーティング・システムで展開され、モバイル・オペレーティング・システムは、例えば、ＷＩＮＤＯＷＳ（登録商標）モバイル・オペレーティング・システム、ＡＮＤＲＯＩＤ（登録商標）オペレーティング・システム、ＡＰＰＬＥ（登録商標）ｉＯＳオペレーティング・システム、ＢＬＡＣＫＢＥＲＲＹ（登録商標）社のオペレーティング・システム、およびその他の類似のものを含む。マイクロアプは、様々なオペレーティング・システムおよびハードウェア・リソースの動作を管理する予め定めた規則の組を介して、大きいオペレーティング・システムおよび関連するハードウェアのリソースを活用するように、構成することができる。例えば、マイクロアプが、モバイル・デバイスまたはモバイル・オペレーティング・システム以外のデバイスまたはネットワークと通信することを望む場合、マイクロアプは、モバイル・オペレーティング・システムの予め定められた規則の下で、オペレーティング・システムおよび関連するデバイス・ハードウェアの通信プロトコルを活用することができる。更に、マイクロアプがユーザからの入力を望む場合、マイクロアプは、オペレーティング・システムに対して応答を要求するように構成することができ、オペレーティング・システムは、様々なハードウェア・コンポーネントを監視し、その後、検出した入力をハードウェアからマイクロアプへ通信する。
【０１０２】
[00117]  様々な実施形態において、システムは、ソフトウェア・アプリケーションおよびサービスを提供するために、および／またはオペレーティング・システム、データベース、アプリケーションなどのようなコンピュータ・ベースのシステムのソフトウェア・コンポーネントを橋渡しするために、ミドルウェアをインプリメントすることができる。ミドルウェアは、異なるコンピュータ・システム間での通信および／またはプロセスのトランザクションを容易にするように適切に構成される任意のハードウェアおよび／またはソフトウェアを含むことができる。ミドルウェア・コンポーネントは、商業的に入手可能であり、当該分野では知られている。ミドルウェアは、商業的に入手可能なハードウェアおよび／またはソフトウェアを通じて、またはカスタムのハードウェアおよび／またはソフトウェア・コンポーネントを通じて、またはそれらの組み合わせを通じて、インプリメントすることができる。ミドルウェアは、様々なコンフィギュレーションの中で存在することができ、また、スタンドアローンのシステムとして存在することができ、また、インターネット・サーバに存在するソフトウェア・コンポーネントとすることができる。ミドルウェアは、ここで説明する何れもの目的のために、アプリケーション・サーバの様々コンポーネントと任意の数の内部または外部のシステムとの間でのトランザクションを処理するように、構成することができる。商業的に入手可能なミドルウェア製品の例は、ＩＢＭ（登録商標）社（ニューヨーク州アーモンク）のWEBSPHERE（登録商標）MQTM（以前はMQSeries）である。ミドルウェアの別の例は、Enterprise Service Bus（「ＥＳＢ」）アプリケーションである。
【０１０３】
[00118]  ここで開示したシステム、コンピュータ、コンピュータ・ベースのシステム、およびそれらと同様のものは、ユーザがアクセス可能な適切なウェブ・サイトや他のインターネット・ベースのグラフィカル・ユーザ・インタフェースを提供することができる。専門家は、ブラウザ・ベースの文書内でデータを表示するための方法が多数あることを、理解するであろう。データは、標準のテキストで表すことができ、また、固定されたリスト、スクロール可能リスト、ドロップダウン・リスト、編集可能テキスト・フィールド、固定テキスト・フィールド、ポップアップ・ウィンドゥ、またはその他の類似のものの中で表すことができる。同様に、ウェブ・ページ内のデータを変更するために使用可能な多数の方法があり、それらは、例えば、キーボードを用いての自由テキスト入力、メニュー項目の選択、チェック・ボックス、オプション・ボックス、およびそれらと類似のものなどである。
【０１０４】
[00119]  ここで論じる何れの通信、入力、ストレージ、データベース、またはディスプレイも、ウェブ・ページを有するウェブサイトを通じて促進され得る。ここで用いられる「ウェブ・ページ」という用語は、ユーザとの対話に使用され得る文書およびアプリケーションの形式を限定することを意図していない。例えば、典型的なウェブサイトは、標準のＨＴＭＬ文書に加えて、様々なフォーム、ＪＡＶＡ（登録商標）アプレット、ＪＡＶＡＳＣＲＩＰＴ（登録商標）プログラム、アクティブ・サーバ・ページ（ＡＳＰ）、コモン・ゲートウェイ・インターフェイス・スクリプト（ＣＧＩ）、エクステンシブル・マークアップ・ランゲージ（ＸＭＬ）、ダイナミックＨＴＭＬ、カスケーディング・スタイル・シート（ＣＳＳ）、ＡＪＡＸ（Asynchronous JAVASCRIPT and XML）プログラム、ヘルパー・アプリケーション、プラグイン、およびこれらと同様のものを含むことができる。サーバは、ウェブ・サーバからの要求を受け取るウェブ・サービスを含むことができ、要求は、ＵＲＬおよびＩＰアドレス（192.168.1.1）を含む。ウェブ・サーバは、適切なウェブ・ページを検索し、そのウェブ・ページに関するデータまたはアプリケーションをＩＰアドレスへ送る。ウェブ・サービスはアプリケーションであり、このアプリケーションは、インターネットなどのような通信手段を介して他のアプリケーションと対話することが可能である。ウェブ・サービスは、典型的には、ＸＭＬ、ＳＯＡＰ、ＡＪＡＸ、ＷＳＤＬ、およびＵＤＤＩなどのような標準またはプロトコルに基づく。ウェブ・サービスの方法は当該分野では知られており、多くの標準的な教科書に記載されている。更なる例としては、representational state transfer（ＲＥＳＴ）またはＲＥＳＴｆｕｌのウェブ・サービスは、アプリケーション間での相互運用性を可能にする１つの方法を提供することができる。
【０１０５】
[00120]  １つの実施形態では、マイクロソフト（登録商標）社のInternet Information Services（ＩＩＳ）、Transaction Server（ＭＴＳ）サービス、およびSQL SERVER（登録商標）データベースが、マイクロソフト（登録商標）・オペレーティング・システム、ＷＩＮＤＯＷＳ  ＮＴ（登録商標）ウェブ・サーバ・ソフトウェア、ＳＱＬ  ＳＥＲＶＥＲ（登録商標）データベース、およびマイクロソフト（登録商標）Ｃｏｍｍｅｒｃｅ  Ｓｅｒｖｅｒと関連して用いられる。更に、ACCESS（登録商標）ソフトウェア、SQL SERVER（登録商標）データベース、ORACLE（登録商標）ソフトウェア、SYBASE（登録商標）ソフトウェア、INFORMIX（登録商標）ソフトウェア、MYSQL登録商標）ソフトウェア、INTERBASE（登録商標）ソフトウェアなどのようなコンポーネントを、Active Data Object（ＡＤＯ）対応のデータベース管理システムを提供するために使用することができる。１つの実施形態において、Apache（登録商標）ウェブ・サーバが、LINUX（登録商標）オペレーティング・システム、MYSQL（登録商標）データベース、およびPERL（登録商標）、PHP、および／またはPYTHON（登録商標）プログラミング言語と関連して用いられる。
【０１０６】
[00121]  様々な実施形態において、サーバはアプリケーション・サーバ（例えば、WEBSPHERE（登録商標）、WEBLOGIC（登録商標）、JOSS（登録商標）、POSTGRES PLUS ADVANCED SERVER（登録商標）など）を含むことができる。様々な実施形態において、サーバは、ウェブ・サーバ（例えば、Apache、IIS、GOOGLE（登録商標）ウェブ・サーバ、SUN JAVA（登録商標）システム・ウェブ・サーバ、LINUX（登録商標）またはWINDOWS（登録商標）オペレーティング・システム上で実行されるJAVA（登録商標）バーチャル・マシン）を含むことができる。
【０１０７】
[00122]  ユーザ、システム、コンピュータ・ベースのシステム、またはそれらと同様のものは、ウェブ・クライアントを介してサーバと通信する。ウェブ・クライアントは、例えば、ここで説明した任意のデバイスやソフトウェアなどのような任意のネットワークを介して通信する任意のデバイスやソフトウェアを含む。ウェブ・クライアントは、通信を行うために、コンピューティング・ユニットまたはシステム内にインストールされたインターネット・ブラウジング・ソフトウェアを含むことができる。それらのコンピューティング・ユニットまたはシステムは、コンピュータやコンピュータの組の形とすることができるが、他のタイプのコンピューティング・ユニットまたはシステムを使うこともでき、それらは、パーソナル・コンピュータ、ラップトップ、ノートブック、タブレット、スマート・フォン、セルラ・フォン、パーソナル・デジタル・アシスタント、サーバ、プールのサーバ、メインフレーム・コンピュータ、分散型コンピューティング・クラスタ、キオスク、端末、ポイント・オブ・セール（ＰＯＳ）装置または端末、テレビジョン、またはネットワークを介してデータを受信できる任意の他のデバイスを含む。ウェブ・クライアントは、オペレーティング・システム（例えば、ＷＩＮＤＯＷＳ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）ＭＯＢＩＬＥ（登録商標）オペレーティング・システム、ＵＮＩＸ（登録商標）オペレーティング・システム、ＬＩＮＵＸ（登録商標）オペレーティング・システム、ＡＰＰＬＥ（登録商標）ＯＳ（登録商標）オペレーティング・システムなど）と、典型的にはコンピュータと関連する様々な従来のサポート・ソフトウェアおよびドライバとを含むことができる。ウェブ・クライアントはまた、MICROSOFT（登録商標）INTERNET EXPLORER（登録商標）ソフトウェア、MOZILLA（登録商標）FIREFOX（登録商標）ソフトウェア、GOOGLE（登録商標）CHROME（登録商標）ソフトウェア、APPLE（登録商標）SAFARI（登録商標）ソフトウェア、またはインターネットのブラウジングを可能とする他の多数のソフトウェア・パッケージのうちの任意のものを実行することができる。
【０１０８】
[00123]  当業者には理解できるように、ウェブ・クライアントは、サーバ（例えば、ここで説明したアプリケーション・サーバ、ウェブ・サーバなど）と直接に接触する場合もしない場合もある。例えば、ウェブ・クライアントは、サーバのサービスへ、インターネット・サーバへの直接的または間接的に接続され得る別のサーバおよび／またはハードウェア・コンポーネントを介して、アクセスすることができる。例えば、ウェブ・クライアントは、ロード・バランサを介してサーバと通信することができる。様々な実施形態において、ウェブ・クライアントのアクセスは、商業的に入手可能なウェブ・ブラウザ・ソフトウェア・パッケージを通じてネットワークまたはインターネットを通じて行われる。この点に関して、ウェブ・クライアントは、ネットワークまたはインターネットへアクセスできる家庭または仕事の環境にあり得る。ウェブ・クライアントは、セキュリティ・ソケット・レイヤー（ＳＳＬ）やトランスポート・レイヤー・セキュリティ（ＴＬＳ）などのようなセキュリティ・プロトコルをインプリメントすることができる。ウェブ・クライアントは、ＨＴＴＰ、ＨＴＴＰＳ、ＦＴＰ、およびＳＦＴＰを含む幾つかのアプリケーション層プロトコルをインプリメントすることができる。
【０１０９】
[00124]  ここで論じる何れのデータベース、データ構造、またはそれらと同様のものも、リレーショナル、階層、グラフィカル、ブロックチェーン、オブジェクト指向の構造、および／または任意の他のデータベース構成を含むことができる。また、何れのデータベース、データ構造、またはそれらと同様のものも、フラット・ファイル構造を含み、データは、行および列の形の１つのファイルに格納することができ、インデックスのための構造はなく、また、レコード間の構造的関係もない。例えば、フラット・ファイル構造は、範囲を定められたテキスト・ファイル、ＣＳＶ（コンマ区切り）ファイル、および／または任意の他の適切なフラット・ファイル構造を含むことができる。データベースをインプリメントするために使用できる共通のデータベース製品は、ＩＢＭ（登録商標）（ニューヨーク州アーモンク）のＤＢ２（登録商標）、Ｏｒａｃｌｅ（登録商標）Ｃｏｒｐｏｒａｔｉｏｎ（カリフォルニア州レッドウッド・ショア）から入手可能な様々なデータベース製品、ＭＩＣＲＯＳＯＦＴ（登録商標）Ｃｏｒｐｏｒａｔｉｏｎ（ワシントン州レドモンド）のＭＩＣＲＯＳＯＦＴ（登録商標）Ａｃｃｅｓｓ（登録商標）やＭＩＣＲＯＳＯＦＴ（登録商標）ＳＱＬ  Ｓｅｒｖｅｒ（登録商標）、ＭｙＳＱＬ  ＡＢ（スウェーデン、アップサラ）のＭＹＳＱＬ（登録商標）、ＭＯＮＧＯＤＢ（登録商標）、Ｒｅｄｉｓ、Ａｐａｃｈｅ  Ｃａｓｓａｎｄｒａ（登録商標）、ＡＰＡＣＨＥ（登録商標）のＨＢＡＳＥ（登録商標）、ＭＡＰＲ（登録商標）社のＭａｐＲ−ＤＢ、または他の任意の適切なデータベース製品を含む。更に、任意のデータベースは、例えば、データ・テーブルやルックアップ・テーブルのように、任意の適切な様式に編成することができる。各レコードは、１つのファイル、一連のファイル、リンクされた一連のデータ・フィールド、または他の任意のデータ構造とすることができる。
【０１１０】
[00125]  また、当業者には理解されるように、セキュリティに関する理由により、何れのデータベース、システム、デバイス、サーバ、またはシステムの他のコンポーネントも、１つの位置または複数の位置において、それらの任意の組み合わせからなることができ、それぞれのデータベース、システム、デバイス、サーバ、および／または他のコンポーネントは、ファイアーウォール、アクセス・コード、暗号化、暗号化解除、圧縮、圧縮解除、および／またはその他の類似のものなどのような様々な適切なセキュリティ機能のうちの任意のものを含む。
【０１１１】
[00126]  暗号化は、当該分野で現在使用可能または使用可能になり得る技術のうちの任意のものにより行うことができ、それらは、例えば、Twofish、RSA、El Gamal、Schorr signature、DSA、PGP、PKI、GPG (GnuPG)、ＨＰＥフォーマット保持暗号化（ＦＰＥ）、Voltage、トリプルＤＥＳ、ブローフィッシュ、AES、MD5、HMAC、IDEA、RC6、および対称および非対称の暗号システムである。ネットワーク通信はまた、ＳＨＡシリーズ暗号法、楕円曲線暗号（例えば、ECC、ECDH、ECDSAなど）、および／または開発中の他のポスト量子暗号アルゴリズムを組み込むことができる。
【０１１２】
[00127]  ファイアーウォールは、他のネットワークのユーザからＣＭＳコンポーネントおよび／またはエンタープライズ・コンピューティング・リソースを保護するために適切に構成された任意のハードウェアおよび／またはソフトウェアを含むことができる。更に、ファイアーウォールは、ウェブ・サーバを介して接続するウェブ・クライアントのために、ファイアーウォールの後ろにある様々なシステムおよびコンポーネントへのアクセスを限定または制限するように構成することができる。ファイアーウォールは、数ある中でもステートフル・インスペクション、プロキシ・ベースのアクセス制御リスト、およびパケット・フィルタリングを含む変化するコンフィギュレーション内に存在することができる。ファイアーウォールは、ウェブ・サーバまたは他の任意のＣＭＳコンポーネントの中へ統合することができ、また、更に、別個のエンティティとして存在することができる。ファイアーウォールは、ネットワーク・アドレス・トランスレーション（ＮＡＴ）および／またはネットワーク・アドレス・ポート・トランスレーション（ＮＡＰＴ）をインプリメントすることができる。ファイアーウォールは、仮想プライベート・ネットワーキングで用いられているもののように、セキュアな通信を容易にするために様々なトンネリング・プロトコルを適用させることができる。ファイアーウォールは、インターネットなどのような公共ネットワークとの通信を容易にするために、非武装地帯（ＤＭＺ）をインプリメントすることができる。ファイアーウォールは、インターネット・サーバ内または他の任意のアプリケーション・サーバ・コンポーネント内でソフトウェアとして統合することができ、また、別のコンピューティング・デバイス内に存在することができ、また、スタンドアローンのハードウェア・コンポーネントの形態をとることができる。
【０１１３】
[00128]  ここでは、システムおよび方法は、機能ブロック・コンポーネント、スクリーン・ショット、オプション的な選択、および様々な処理ステップに関して説明されていることがある。そのような機能ブロックは、指定された機能を行うように構成された任意の数のハードウェアおよび／またはソフトウェア・コンポーネントにより実現できることを、理解すべきである。例えば、システムは、１以上のマイクロプロセッサまたは他の制御デバイスの制御の下で様々な機能を実施することができる様々な集積回路コンポーネント、例えば、メモリ・エレメント、処理エレメント、論理エレメント、ルックアップ・テーブル、およびその他の類似のものを、用いることができる。同様に、システムのソフトウェア・エレメントは、任意のプログラミング言語やスクリプティング言語と、データ構造、オブジェクト、プロセス、ルーチン、または他のプログラミング・エレメントの任意の組み合わせを用いてインプリメントされる様々なアルゴリズムとを用いて、インプリメントすることができ、プログラミング言語やスクリプティング言語は、C、C++、C#、JAVA（登録商標）、JAVASCRIPT（登録商標）、JAVASCRIPT（登録商標）Object Notation (JSON)、VBScript、Macromedia COLD FUSION、COBOL、MICROSOFT（登録商標）社のActive Server Pages、アセンブリ、PERL（登録商標）、PHP、awk、PYTHON（登録商標）、Visual Basic、SQL Stored Procedures、PL/SQL、何れかのUNIX（登録商標）シェル・スクリプト、およびエクステンシブル・マークアップ・ランゲージ (XML)などである。更に、システムは、データ送信、信号発信、データ処理、ネットワーク制御、およびその他の類似のもののための任意の数の従来技術を用いることができることに、留意されたい。更に、システムは、JAVASCRIPT（登録商標）、VBScript、またはその他の類似のものなどのようなクライアント側のスクリプティング言語でのセキュリティの問題を検出または回避するために、使用することができる。暗号およびネットワーク・セキュリティの方法は当該技術では良く知られており、多くの標準的な文書で扱われている。
【０１１４】
[00129]  様々な実施形態において、ここで説明したソフトウェア・エレメントはまた、ＮＯＤＥ．ＪＳ（登録商標）コンポーネントを用いてインプリメントすることができる。ＮＯＤＥ．ＪＳ（登録商標）プログラムは、様々なコア機能を扱うための幾つかのモジュールをインプリメントすることができる。例えば、ＮＰＭ（登録商標）などのようなパッケージ管理モジュールは、第三者のＮＯＤＥ．ＪＳ（登録商標）プログラムのインストレーションおよび管理を計画して行う際の援助のために、オープン・ソース・ライブラリとしてインプリメントすることができる。ＮＯＤＥ．ＪＳ（登録商標）プログラムはまた、例えばパラレル・マルチスレッド・マシン（ＰＭ２）などのようなプロセス・マネージャ、例えばノード・アプリケーション・メトリックス（appmetrics）などのようなリソースおよび性能の監視ツール、ユーザ・インタフェースを構築するためのライブラリ・モジュール、および／または他の適切な且つ／又は望ましいモジュールをインプリメントすることができる。
【０１１５】
[00130]  通常の当業者には理解できるように、システムは、既存のシステムをカスタム化したもの、アドオン製品、アップグレードされたソフトウェアを実行する処理装置、スタンドアローンのシステム、分散型のシステム、方法、データ処理システム、データ処理のためのデバイス、および／またはコンピュータ・プログラム製品として、実現することができる。したがって、システムまたはモジュールの何れの部分も、コードを実行する処理装置、インターネット・ベースの実施形態、全てハードウェアの実施形態、またはインターネット、ソフトウェア、およびハードウェアの構成を組み合わせた実施形態の形とすることができる。更に、システムは、コンピュータ読み取り可能な格納媒体上のコンピュータ・プログラム製品の形とすることができ、この格納媒体においてコンピュータ読み取り可能なプログラム・コード手段が実現されている。任意の適切コンピュータ読み取り可能な格納媒体を用いることができ、格納媒体は、ハード・ディスク、ＣＤ−ＲＯＭ、ＳＯＮＹ（登録商標）ＢＬＵ−ＲＡＹ  ＤＩＳＣ（登録商標）、光学式格納デバイス、磁気格納デバイス、および／またはその他の類似のものを含む。
【０１１６】
[00131]  ここで説明したシステムはまた、ウェブ・サービス、ユーティリティー・コンピューティング、普及型および個人向けのコンピューティング、セキュリティおよびアイデンティティーのソリューション、自動コンピューティング、クラウド・コンピューティング、商品コンピューティング、モビリティおよびワイヤレスのソリューション、オープン・ソース、バイオメトリックス、グリッド・コンピューティング、および／またはメッシュ・コンピューティングと関連しての使用についても考慮している。
【０１１７】
[00132]  「非一時的（non-transitory）」という用語は、伝搬する一時的な信号自体のみを特許請求の範囲から除くものと理解され、伝搬する一時的な信号自体のみではない全ての標準的なコンピュータ読み取り可能媒体に対しての権利は放棄しない。換言すると、「非一時的なコンピュータ読み取り可能媒体」および「非一時的なコンピュータ読み取り可能格納媒体」という用語は、Ｉｎ  Ｒｅ  Ｎｕｉｊｔｅｎにおいて、３５  Ｕ．Ｓ．Ｃ．  セクション１０１の下で特許可能な主題の範囲外にあるとされた形態の一時的コンピュータ読み取り可能媒体のみを除くものと、解釈されるべきである。
【０１１８】
[00133]  ここでは、特定の実施形態についての利益、他の利点、および問題の解決法を説明した。しかし、利益、利点、問題の解決法、および利益、利点、または解決法を生じさせるか又はより明白にさせる何れのエレメントも、本開示の決定的な、必要な、または本質的な特徴またはエレメントとして解釈されない。従って、本開示の範囲は、添付の特許請求の範囲以外では限定されず、特許請求の範囲では、単数形でのエレメントに対する言及は、明確に「唯一」と述べていないかぎり、「唯一」を意味することを意図しておらず、むしろ「１以上」を意味する。更に、「Ａ、Ｂ、およびＣのうちの少なくとも１つ」や「Ａ、Ｂ、またはＣのうちの少なくとも１つ」のような文が特許請求の範囲や明細書で用いられる場合、その文は、Ａのみが実施形態において存在し得る、Ｂのみが実施形態において存在し得る、Ｃのみが実施形態において存在し得る、またはＡとＢとＣとの任意の組み合わせ、例えば、ＡとＢ、ＡとＣ、ＢとＣ、またはＡとＢとＣが１つの実施形態において存在し得る、ということを意味すると解釈されることを、意図している。
【０１１９】
[00134]  本開示は方法を含むが、それが、磁気または光メモリや磁気または光ディスクなどのような実体的なコンピュータ読み取り可能キャリア上のコンピュータ・プログラム命令として実施され得ることが、考慮されている。当業者には知られている上記の様々な実施形態のエレメントと構造的、化学的、および機能的に等価の全てのものは、この言及により明確にここに組み込まれるものとし、本特許請求の範囲の範囲にあることが意図される。更に、デバイスまたは方法は、本開示による解決が求められる個々および全ての問題に向けたものとする必要はなく、なぜなら、それは本特許請求の範囲の範囲内にあるからである。更に、本開示における何れのエレメント、コンポーネント、または方法のステップも、そのエレメント、コンポーネント、または方法のステップが明確に特許請求の範囲に記載されているか否かにかかわらず、公衆に献呈することは意図していない。ここでの特許請求されるエレメントは、エレメントが明確に「ための手段」という語を用いて記載されていないかぎり、３５  Ｕ．Ｓ．Ｃ．  １１２（ｆ）の規定の下で解釈されない。ここで用いられる「含む（comprises）」、「含む（comprising）」、またはこれらの変形した用語の何れも、非排他的包含を範囲に含むことを意図しており、列挙されるエレメントを含むプロセス、方法、物、または装置は、それらのエレメントのみを含むのではなく、明確には列挙されていない他のエレメントや、そのようなプロセス、方法、物、または装置に固有の他のエレメントも含み得る。
【図１】
2021505938.tif 000003
【図２】
2021505938.tif 000004
【図３】
2021505938.tif 000005
【図４】
2021505938.tif 000006
【図５】
2021505938.tif 000007
【図６】
2021505938.tif 000008
【図７】
2021505938.tif 000009
【図８】
2021505938.tif 000010
【図９Ａ】
2021505938.tif 000011
【図９Ｂ】
2021505938.tif 000012
【図９Ｃ】
2021505938.tif 000013
【図１０Ａ】
2021505938.tif 000014
【図１０Ｂ】
2021505938.tif 000015
【図１０Ｃ】
2021505938.tif 000016
【図１１】
2021505938.tif 000017
【図１２】
2021505938.tif 000018
【図１３】
2021505938.tif 000019
【図１４】
2021505938.tif 000020
【図１５】
2021505938.tif 000021
【図１６】
2021505938.tif 000022
【国際調査報告】
2021505938.tif 000023
2021505938.tif 000024