(57)【要約】  本開示の一態様は、概して、第1のコンピュータ（110）と第2のコンピュータ（120）との間のデータ通信を保護するためのコンピュータシステム（100）および方法（200）に関する。方法（200）は、第1のコンピュータ（110）から第2のコンピュータ（120）へ第1のデータを通信するための第1のデータ通信命令を、第1のコンピュータ（110）および第2のコンピュータ（120）によって協働的に実行すること（202）と、第1のコンピュータ（110）によって第1のセッション鍵を生成すること（204）と、第1のセッション鍵を使用して第1のデータを第1のコンピュータ（110）によって暗号化すること（206）と、第1の公開鍵を使用して第1のセッション鍵を第1のコンピュータ（110）によって暗号化すること（208）であって、第1の公開鍵は第1の秘密鍵とペアにされ、第1の公開鍵と秘密鍵のペアは、第2のコンピュータ（120）のために生成される、暗号化すること（208）と、暗号化された第1のデータおよび第1のセッション鍵を第1のコンピュータ（110）から第2のコンピュータ（120）に送信すること（210）と、第1の秘密鍵を使用して暗号化された第1のセッション鍵を第2のコンピュータ（120）によって復号化すること（212）と、復号化された第1のセッション鍵を使用して、暗号化された第1のデータを第2のコンピュータ（120）によって復号化すること（214）と、第1のデータ通信命令に基づいて復号化された第1のデータを第2のコンピュータ（120）によって処理すること（216）とを含む。【選択図】  図1A
2021516491.tif 000002
【特許請求の範囲】
【請求項１】
第1のコンピュータと第2のコンピュータとの間のデータ通信を保護するための方法であって、前記方法は、前記第1および第2のコンピュータによって実行され、
前記第1のコンピュータから前記第2のコンピュータへ第1のデータを通信するための第1のデータ通信命令を、前記第1および第2のコンピュータによって協働的に実行することと、
前記第1のコンピュータによって第1のセッション鍵を生成することと、
前記第1のセッション鍵を使用して前記第1のデータを前記第1のコンピュータによって暗号化することと、
第1の公開鍵を使用して前記第1のセッション鍵を前記第1のコンピュータによって暗号化することであって、前記第1の公開鍵は第1の秘密鍵とペアにされ、前記第1の公開鍵と秘密鍵のペアは、前記第2のコンピュータのために生成される、暗号化することと、
前記暗号化された第1のデータおよび前記暗号化された第1のセッション鍵を前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記第1の秘密鍵を使用して前記暗号化された第1のセッション鍵を前記第2のコンピュータによって復号化することと、
前記復号化された第1のセッション鍵を使用して、前記暗号化された第1のデータを前記第2のコンピュータによって復号化することと、
前記第1のデータ通信命令に基づいて前記復号化された第1のデータを前記第2のコンピュータによって処理することとを含む方法。
【請求項２】
前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは
前記第1のコンピュータによってトークンセッション鍵を生成することと、
前記トークンセッション鍵を使用して、トークン要求を前記第1のコンピュータによって暗号化することと、
前記トークンセッション鍵と前記暗号化されたトークン要求を前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化されたトークン要求を前記第2のコンピュータによって復号化することと、
前記第2のコンピュータ用におよび前記第2のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
前記トークンセッション鍵を使用して、前記第1の公開鍵を前記第2のコンピュータによって暗号化することと、
前記暗号化された第1の公開鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化された第1の公開鍵を前記第1のコンピュータによって復号化することとを含む、請求項1に記載の方法。
【請求項３】
前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
前記第1のコンピュータによってトークンセッション鍵を生成することと、
前記第2のコンピュータのために前記第1のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
前記トークンセッション鍵を使用して、前記第1の秘密鍵を前記第1のコンピュータによって暗号化することと、
前記トークンセッション鍵と前記暗号化された第1の秘密鍵を前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化された第1の秘密鍵を前記第2のコンピュータによって復号化することとを含む、請求項1に記載の方法。
【請求項４】
前記第1の公開鍵と秘密鍵のペアは、有効期限条件が満たされる前に暗号化および復号化に有効であるように、有効期限条件を有する、請求項1〜3のいずれか一項に記載の方法。
【請求項５】
前記有効期限条件は、事前定義された有効な期間である、請求項4に記載の方法。
【請求項６】
前記有効期限条件は、事前定義された使用回数である、請求項4または5に記載の方法。
【請求項７】
前記トークンセッション鍵の有効期限後に前記有効期限条件が満たされる、請求項4〜6のいずれか一項に記載の方法。
【請求項８】
前記第1のコンピュータはローカルクライアントコンピュータであり、前記第2のコンピュータはリモートコンピュータサーバである、請求項1〜7のいずれか一項に記載の方法。
【請求項９】
前記第1のデータ通信命令は、前記第1のデータを前記リモートコンピュータサーバに保存することに関する、請求項8に記載の方法。
【請求項１０】
前記第1のコンピュータは、リモートコンピュータサーバであり、前記第2のコンピュータは、ローカルクライアントコンピュータである、請求項1〜7のいずれか一項に記載の方法。
【請求項１１】
前記第1のデータ通信命令は、前記リモートコンピュータサーバからの前記第1のデータの読み出しに関する、請求項10に記載の方法。
【請求項１２】
前記第2のコンピュータから前記第1のコンピュータへ第2のデータを通信するための第2のデータ通信命令を、前記第1および第2のコンピュータによって協働的に実行することと、
前記第2のコンピュータによって第2のセッション鍵を生成することと、
前記第2のセッション鍵を使用して、前記第2のデータを前記第2のコンピュータによって暗号化することと、
第2の公開鍵を使用して、前記第2のセッション鍵を前記第2のコンピュータによって暗号化することであって、前記第2の公開鍵は第2の秘密鍵とペアにされ、前記第2の公開鍵と秘密鍵のペアは、前記第1のコンピュータのために生成される、暗号化することと、
前記暗号化された第2のデータおよび前記暗号化された第2のセッション鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
前記第2の秘密鍵を使用して、前記暗号化された第2のセッション鍵を前記第1のコンピュータによって復号化することと、
前記復号化された第2のセッション鍵を使用して、前記暗号化された第2のデータを前記第1のコンピュータによって復号化することと、
前記第2のデータ通信命令に基づいて前記復号化された第2のデータを前記第1のコンピュータによって処理することとをさらに含む、請求項1に記載の方法。
【請求項１３】
前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは
前記第1のコンピュータによってトークンセッション鍵を生成することと、
前記トークンセッション鍵を使用して、トークン要求を前記第1のコンピュータによって暗号化することと、
前記トークンセッション鍵と前記暗号化されたトークン要求を前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化されたトークン要求を前記第2のコンピュータによって復号化することと、
前記第2のコンピュータ用におよび前記第2のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
前記第1のコンピュータ用に前記第2のコンピュータによって前記第2の公開鍵と秘密鍵のペアを生成することと、
前記トークンセッション鍵を使用して、前記第1の公開鍵および前記第2の秘密鍵を前記第2のコンピュータによって暗号化することと、
前記暗号化された第1の公開鍵および前記暗号化された第2の秘密鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化された第1の公開鍵および前記暗号化された第2の秘密鍵を前記第1のコンピュータによって復号化することとを含む、請求項12に記載の方法。
【請求項１４】
前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
前記第1のコンピュータによってトークンセッション鍵を生成することと、
前記第2のコンピュータのために前記第1の公開鍵と秘密鍵のペアを前記第1のコンピュータによって生成することと、
前記第1のコンピュータ用のおよび前記第1のコンピュータによって前記第2の公開鍵と秘密鍵のペアを生成することと、
前記トークンセッション鍵を使用して、前記第1の秘密鍵および前記第2の公開鍵を前記第1のコンピュータによって暗号化することと、
前記トークンセッション鍵と前記暗号化された第1の秘密鍵と前記暗号化された第2の公開鍵とを前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化された第1の秘密鍵および前記暗号化された第2の公開鍵を前記第2のコンピュータによって復号化することとを含む、請求項12に記載の方法。
【請求項１５】
前記第1および第2の公開鍵と秘密鍵のペアのそれぞれは、有効期限条件が満たされる前に暗号化および復号化に有効であるように、有効期限条件を有する、請求項12〜14のいずれか一項に記載の方法。
【請求項１６】
前記有効期限条件は、事前定義された有効な期間である、請求項15に記載の方法。
【請求項１７】
前記有効期限条件は、事前定義された使用回数である、請求項15または16に記載の方法。
【請求項１８】
前記トークンセッション鍵の有効期限後に前記有効期限条件が満たされる、請求項15〜17のいずれか一項に記載の方法。
【請求項１９】
前記第1のコンピュータはローカルクライアントコンピュータであり、前記第2のコンピュータはリモートコンピュータサーバである、請求項12〜18のいずれか一項に記載の方法。
【請求項２０】
前記第1のデータ通信命令は、前記第1のデータを前記リモートコンピュータサーバに保存することに関し、前記第2のデータ通信命令は、前記第2のデータを前記リモートコンピュータサーバから読み出すことに関する、請求項19に記載の方法。
【請求項２１】
前記第1のデータは、前記ローカルクライアントコンピュータのユーザの認証データを含み、前記第2のデータは、前記リモートコンピュータサーバによる前記認証データの認証の成功に応答して前記リモートコンピュータサーバによって生成されるメッセージ認証コード（MAC）を含む、請求項19に記載の方法。
【請求項２２】
前記第1のデータは、医療情報に関連する測定データを含む、請求項1〜21のいずれか一項に記載の方法。
【請求項２３】
互いに通信可能に接続された第1のコンピュータおよび第2のコンピュータを含み、前記第1および第2のコンピュータ間のデータ通信を保護するために構成されたコンピュータシステムであって、前記第1および第2のコンピュータは、
前記第1のコンピュータから前記第2のコンピュータへ第1のデータを通信するための第1のデータ通信命令を、前記第1および第2のコンピュータによって協働的に実行することと、
前記第1のコンピュータによって第1のセッション鍵を生成することと、
前記第1のセッション鍵を使用して前記第1のデータを前記第1のコンピュータによって暗号化することと、
第1の公開鍵を使用して、前記第1のセッション鍵を前記第1のコンピュータによって暗号化することであって、前記第1の公開鍵は第1の秘密鍵とペアにされ、前記第1の公開鍵と秘密鍵のペアは、前記第2のコンピュータのために生成される、暗号化することと、
前記暗号化された第1のデータおよび前記暗号化された第1のセッション鍵を前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記第1の秘密鍵を使用して、前記暗号化された第1のセッション鍵を前記第2のコンピュータによって復号化することと、
前記復号化された第1のセッション鍵を使用して、前記暗号化された第1のデータを前記第2のコンピュータによって復号化することと、
前記第1のデータ通信命令に基づいて前記復号化された第1のデータを前記第2のコンピュータによって処理することとを含むステップを実行するために構成されたコンピュータシステム。
【請求項２４】
前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
前記第1のコンピュータによってトークンセッション鍵を生成することと、
前記トークンセッション鍵を使用してトークン要求を前記第1のコンピュータによって暗号化することと、
前記トークンセッション鍵と前記暗号化されたトークン要求を前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化されたトークン要求を前記第2のコンピュータによって復号化することと、
前記第2のコンピュータ用におよび前記第2のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
前記トークンセッション鍵を使用して、前記第1の公開鍵を前記第2のコンピュータによって暗号化することと、
前記暗号化された第1の公開鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化された第1の公開鍵を前記第1のコンピュータによって復号化することとを含む、請求項23に記載のシステム。
【請求項２５】
前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
前記第1のコンピュータによってトークンセッション鍵を生成することと、
前記第2のコンピュータのために前記第1のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
前記トークンセッション鍵を使用して前記第1の秘密鍵を前記第1のコンピュータによって暗号化することと、
前記トークンセッション鍵と前記暗号化された第1の秘密鍵を前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化された第1の秘密鍵を前記第2のコンピュータによって復号化することとを含む、請求項23に記載のシステム。
【請求項２６】
前記第1のコンピュータはローカルクライアントコンピュータであり、前記第2のコンピュータはリモートコンピュータサーバである、請求項23〜25のいずれか一項に記載のシステム。
【請求項２７】
前記第1のデータ通信命令は、前記第1のデータを前記リモートコンピュータサーバに保存することに関する、請求項26に記載のシステム。
【請求項２８】
前記第1のコンピュータはリモートコンピュータサーバであり、前記第2のコンピュータはローカルクライアントコンピュータである、請求項23〜26のいずれか一項に記載のシステム。
【請求項２９】
前記第1のデータ通信命令は、前記リモートコンピュータサーバからの前記第1のデータの読み出しに関する、請求項28に記載のシステム。
【請求項３０】
前記ステップは、
前記第2のコンピュータから前記第1のコンピュータへ第2のデータを通信するための第2のデータ通信命令を、前記第1および第2のコンピュータによって協働的に実行することと、
前記第2のコンピュータによって第2のセッション鍵を生成することと、
前記第2のセッション鍵を使用して前記第2のデータを前記第2のコンピュータによって暗号化することと、
第2の公開鍵を使用して前記第2のセッション鍵を前記第2のコンピュータによって暗号化することであって、前記第2の公開鍵は第2の秘密鍵とペアにされ、前記第2の公開鍵と秘密鍵のペアは、前記第1のコンピュータのために生成される、暗号化することと、
前記暗号化された第2のデータおよび前記暗号化された第2のセッション鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
前記第2の秘密鍵を使用して前記暗号化された第2のセッション鍵を前記第1のコンピュータによって復号化することと、
前記復号化された第2のセッション鍵を使用して、前記暗号化された第2のデータを前記第1のコンピュータによって復号化することと、
前記第2のデータ通信命令に基づいて前記復号化された第2のデータを前記第1のコンピュータによって処理することとをさらに含む、請求項23に記載のシステム。
【請求項３１】
前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは
前記第1のコンピュータによってトークンセッション鍵を生成することと、
前記トークンセッション鍵を使用してトークン要求を前記第1のコンピュータによって暗号化することと、
前記トークンセッション鍵と前記暗号化されたトークン要求を前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化されたトークン要求を前記第2のコンピュータによって復号化することと、
前記第2のコンピュータ用におよび前記第2のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
前記第1のコンピュータ用に前記第2のコンピュータによって前記第2の公開鍵と秘密鍵のペアを生成することと、
前記トークンセッション鍵を使用して、前記第1の公開鍵および前記第2の公開鍵を前記第2のコンピュータによって暗号化することと、
前記暗号化された第1の公開鍵および前記暗号化された第2の秘密鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化された第1の公開鍵および前記暗号化された第2の秘密鍵を前記第1のコンピュータによって復号化することとを含む、請求項30に記載のシステム。
【請求項３２】
前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
前記第1のコンピュータによってトークンセッション鍵を生成することと、
前記第2のコンピュータのために前記第1のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
前記第1のコンピュータ用のおよび前記第1のコンピュータによって前記第2の公開鍵と秘密鍵のペアを生成することと、
前記トークンセッション鍵を使用して前記第1の秘密鍵および前記第2の公開鍵を前記第1のコンピュータによって暗号化することと、
前記トークンセッション鍵と前記暗号化された第1の秘密鍵と前記暗号化された第2の公開鍵とを前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化された第1の秘密鍵および前記暗号化された第2の公開鍵を前記第2のコンピュータによって復号化することとを含む、請求項30に記載のシステム。
【請求項３３】
前記第1のコンピュータはローカルクライアントコンピュータであり、前記第2のコンピュータはリモートコンピュータサーバである、請求項30から32のいずれか一項に記載のシステム。
【請求項３４】
前記第1のデータ通信命令は、前記第1のデータを前記リモートコンピュータサーバに保存することに関する、前記第2のデータ通信命令は、前記第2のデータを前記リモートコンピュータサーバから読み出すことに関する、請求項33に記載のシステム。
【請求項３５】
前記第1のデータは、前記ローカルクライアントコンピュータのユーザの認証データを含み、前記第2のデータは、前記リモートコンピュータサーバによる前記認証データの認証の成功に応答して前記リモートコンピュータサーバによって生成されるメッセージ認証コード（MAC）を含む、請求項33に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本開示は、2018年3月2日に出願されたシンガポール特許出願第10201801747W号の利益を主張し、これは参照により本明細書にその全体が組み込まれる。
【０００２】
本開示は、概して、コンピュータ間のデータ通信を保護するためのシステムおよび方法に関する。より具体的には、本開示は、暗号化および復号化のための様々なセキュリティキーを使用して、ローカルクライアントコンピュータとリモートコンピュータサーバ、例えばクラウドベースのサーバまたはプラットフォームとの間のデータ通信を保護するためのシステムおよび方法の様々な実施形態を説明する。
【背景技術】
【０００３】
多くの場合、コンピュータ間のデータ通信は暗号化されておらず、これにより、特にデータ通信に機密情報／慎重に扱うべき情報が含まれている場合、man−in−the−middle攻撃などのセキュリティリスクが発生する可能性がある。この現代的な環境では、個人および企業を含むユーザが、データの保存または情報共有などの様々な目的でクラウドベースのプラットフォームを使用するのが一般的である。クラウドコンピューティングサービスに対する高まる需要を満たすために、様々なクラウドコンピューティングプラットフォームが登場している。
【０００４】
クラウドコンピューティングサービスは、大まかに高レベルのサービスと低レベルのサービスに分けることができる。高レベルのサービスは通常、企業や組織に対応している。通常、エンドユーザアプリケーションのカスタマイズには制限があり、高レベルのサービスでは、低レベルのサービスとの直接の相互作用またはアクセスは許可されない。低レベルのサービスは通常、別の送信元から直接抽出された生データに対応する。企業は通常、機密情報／専有情報の保存、アクセス、および処理を含む、様々な機能を実行するためのコンピュータシステムを有する。機密情報には、医療情報または個人情報が含まれる場合がある。米国の医療保険の相互運用性と説明責任に関する法律（HIPAA）およびヨーロッパの一般データ保護規則（GDPR）など、不正使用を防止するために医療情報を保護するために、いくつかの政府のポリシーと規制が導入されている。これらの規制は、サードパーティのソースに提供される医療情報に特定のセキュリティ要件を課している。
【０００５】
従来のビジネス環境を超えて進化するにつれて、企業はますますクラウドコンピューティングサービスを使用している。一部の企業は、医療データおよび個人データなどの慎重に扱うべき情報へのアクセスを得たい可能性のある他の関係者と協働する必要がある場合がある。保険証券に情報を使用するなど、正当な意図を持っている関係者もいれば、不信感を抱いている関係者または悪意を持っている関係者がいる場合もある。これらの関係者は、クラウドコンピューティングサービスを介した情報の通信中に慎重に扱うべき情報へのアクセスを得ることを試みる場合がある。したがって、保護のために他の関係者に通信または配布する前に、データ／情報をある程度暗号化する必要がある。
【０００６】
バイタルサイン、個人データ、およびその他の形式の慎重に扱うべき情報に基づく医療情報、測定または生データなどの機密／慎重に扱うべき情報の保護は重要であり、そのような機密／慎重に扱うべき情報は、潜在的に未知のユーザによる不正アクセスを受けるからである。鍵ベースの暗号化プロセスなどの技術は、クラウドコンピューティングサービスを使用して通信されるデータを保護し、ユーザの要求を満たすために使用することができる。しかしながら、これらの暗号化アプローチでは、データの読み取り時に暗号化されたデータが一般的に復号化される場合でも、暗号化されたデータを送信して不明な受信者にそれを復号化させることが依然としてできるため、必要な保護を満たさないことがよくある。
【０００７】
米国特許第9，166，782号は、送信元コンピュータと宛先コンピュータとの間の通信を暗号化する方法を記載している。しかしながら、この方法は、コンピュータにセキュリティキーを提供するためのサードパーティの鍵保管サーバを含む。さらに、コンピュータ間で暗号化された通信を実現するために、コンピュータは秘密鍵を鍵保管サーバに保管する必要がある。この方法は、暗号化されるすべての通信で、鍵保管サーバと送信元コンピュータおよび宛先コンピュータの両方との間でアクションが必要になるため、一見複雑である。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
したがって、前述の問題および／または不利な点の少なくとも1つに対処または軽減するために、コンピュータ間のデータ通信を保護するための改善されたシステムおよび方法を提供する必要がある。
【課題を解決するための手段】
【０００９】
本開示の一態様によれば、第1のコンピュータと第2のコンピュータとの間のデータ通信を保護するための命令を含む、コンピュータシステム、方法、および非一時的なコンピュータ可読記憶媒体が存在する。このシステムは、互いに通信可能に接続された第1のコンピュータおよび第2のコンピュータを含む。第1および第2のコンピュータは、この方法を実行するように構成されている。この方法は、第1のコンピュータから第2のコンピュータへ第1のデータを通信するための第1のデータ通信命令を、第1および第2のコンピュータによって協働的に実行することと、第1のコンピュータによって第1のセッション鍵を生成することと、第1のセッション鍵を使用して第1のデータを第1のコンピュータによって暗号化することと、第1の公開鍵を使用して第1のセッション鍵を第1のコンピュータによって、暗号化することであって、第1の公開鍵は第1の秘密鍵とペアにされ、第1の公開鍵と秘密鍵のペアは、第2のコンピュータのために生成される、暗号化することと、暗号化された第1のデータおよび暗号化された第1のセッション鍵を第1のコンピュータから第2のコンピュータに送信することと、第1の秘密鍵を使用して暗号化された第1のセッション鍵を第2のコンピュータによって復号化することと、復号化された第1のセッション鍵を使用して、暗号化された第1のデータを第2のコンピュータによって復号化することと、第1のデータ通信命令に基づいて復号化された第1のデータを第2のコンピュータによって処理することとを含む。
【００１０】
したがって、本開示に係るコンピュータ間のデータ通信を保護するためのシステムおよび方法が本明細書に開示される。本開示の様々な特徴、態様、および利点は、添付の図面と共に、非限定的な例としてのみ、本開示の実施形態の以下の詳細な説明からより明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１Ａ】第1のコンピュータと第2のコンピュータとの間のデータ通信を保護するためのコンピュータシステムの概略図である。
【図１Ｂ】第1のコンピュータがローカルクライアントコンピュータであり、第2のコンピュータがリモートコンピュータサーバである、コンピュータ間のデータ通信を保護するためのコンピュータシステムの概略図である。
【図１Ｃ】第1のコンピュータがリモートコンピュータサーバであり、第2のコンピュータがローカルクライアントコンピュータである、コンピュータ間のデータ通信を保護するためのコンピュータシステムの概略図である。
【図２Ａ】第1のコンピュータと第2のコンピュータとの間のデータ通信を保護するための方法、特に第1のコンピュータから第2のコンピュータにデータを通信するための方法のフローチャート図である。
【図２Ｂ】第1のコンピュータと第2のコンピュータとの間のデータ通信を保護するための方法、特に第2のコンピュータから第1のコンピュータにデータを通信するための方法のフローチャート図である。
【図３Ａ】非対称鍵ペアを生成するために第2のコンピュータのために第1および第2のコンピュータによって実行されるトークン生成プロセスのフローチャート図である。
【図３Ｂ】第1のコンピュータが非対称鍵ペアを生成するために第1および第2のコンピュータによって実行されるトークン生成プロセスのフローチャート図である。
【図４Ａ】ローカルクライアントコンピュータおよびリモートコンピュータサーバによって実行されるトークン生成プロセスの概略図である。
【図４Ｂ】ローカルクライアントコンピュータおよびリモートコンピュータサーバによって実行されるトークン生成プロセスの概略図である。
【図４Ｃ】ローカルクライアントコンピュータおよびリモートコンピュータサーバによって実行されるトークン生成プロセスの概略図である。
【図４Ｄ】ローカルクライアントコンピュータおよびリモートコンピュータサーバによって実行されるトークン生成プロセスの概略図である。
【図５】HTTPSプロトコルを介してローカルクライアントコンピュータとリモートコンピュータサーバとの間に安全なセッションを確立する方法の概略図である。
【図６Ａ】ローカルクライアントコンピュータとリモートコンピュータサーバとの間のデータ通信を保護し、第1のデータをリモートコンピュータサーバに保存するための方法の概略図である。
【図６Ｂ】ローカルクライアントコンピュータとリモートコンピュータサーバとの間のデータ通信を保護し、リモートコンピュータサーバから第2のデータを読み出すための方法の概略図である。
【図７Ａ】ローカルクライアントコンピュータとリモートコンピュータサーバとの間のデータ通信を保護し、第1のデータを認証するための方法の概略図である。
【図７Ｂ】ローカルクライアントコンピュータとリモートコンピュータサーバとの間のデータ通信を保護し、第1のデータを認証するための方法の概略図である。
【図８Ａ】トークン生成プロセスの実行を含む、ローカルクライアントコンピュータとリモートコンピュータサーバとの間のデータ通信を保護するための方法の概略図である。
【図８Ｂ】トークン生成プロセスの実行を含む、ローカルクライアントコンピュータとリモートコンピュータサーバとの間のデータ通信を保護するための方法の概略図である。
【図８Ｃ】トークン生成プロセスの実行を含む、ローカルクライアントコンピュータとリモートコンピュータサーバとの間のデータ通信を保護するための方法の概略図である。
【図９Ａ】ローカルクライアントコンピュータに通信されたトークン生成プロセスからの応答の図である。
【図９Ｂ】ローカルクライアントコンピュータからリモートコンピュータサーバに通信される暗号化および復号化されたデータの図である。
【図９Ｃ】ローカルクライアントコンピュータからリモートコンピュータサーバに通信される暗号化および復号化されたデータの図である。
【図９Ｄ】1回使用のクライアントの秘密鍵と1回使用のサーバの公開鍵の図である。
【図１０】コンピュータの技術アーキテクチャのブロック図を示したものである。
【発明を実施するための形態】
【００１２】
簡潔さと明確さの目的で、本開示の実施形態の説明は、図面に従って、コンピュータ間のデータ通信を保護するためのシステムおよび方法に向けられている。本開示の態様は、本明細書で提供される実施形態と併せて説明されるが、それらは、本開示をこれらの実施形態に限定することを意図するものではないことが理解される。それどころか、本開示は、本明細書に記載の実施形態の代替、修正、および均等物を網羅することを意図しており、これらは、添付の特許請求の範囲によって定義される本開示の範囲内に含まれる。さらに、以下の詳細な説明では、本開示の完全な理解を提供するために、特定の詳細が記載されている。しかしながら、当該技術分野で通常の知識を有する個人、すなわち当業者によって、本開示は、特定の詳細なしで、および／または特定の実施形態の態様の組み合わせから生じる複数の詳細で実施され得ることが認識されるであろう。多くの場合、本開示の実施形態の態様を不必要に不明瞭にしないように、周知のシステム、方法、手順、および構成要素は詳細に説明されていない。
【００１３】
本開示の実施形態では、所与の要素の描写、または特定の図における特定の要素番号の考慮または使用、または対応する説明資料におけるそれへの参照は、別の図またはそれと関連する説明資料で識別される同じ、同等、または類似の要素または要素番号を包含することができる。
【００１４】
「一実施形態／一実施例」、「別の一実施形態／一実施例」、「いくつかの実施形態／実施例」、「いくつかの他の実施形態／実施例」などへの言及は、そのように記載された実施形態／実施例が、特定の構成、構造、特徴、特性、要素、または制限を含むが、すべての実施形態／実施例が必ずしもその特定の構成、構造、特徴、特性、要素、または制限を含まない可能性があることを示す。さらに、「一実施形態／一実施例において」または「別の一実施形態／一実施例において」という句の繰り返し使用は、必ずしも同じ実施形態／実施例を指すとは限らない。
【００１５】
「含む（comprising）」、「含む（including）」、「有する（having）」などの用語は、一実施形態に列挙されたもの以外の他の構成／要素／ステップの存在を排除するものではない。相互に異なる実施形態における特定の構成／要素／ステップの記述は、これらの構成／要素／ステップの組み合わせが一実施形態において使用できないことを示すものではない。
【００１６】
本明細書で使用される場合、用語「a」および「an」は、1つまたは複数のものとして定義される。図または関連するテキストでの「／」の使用は、特に明記されていない限り、「および／または」を意味すると理解される。「セット」という用語は、既知の数学的定義に従って、少なくとも1つのカーディナリティを数学的に示す要素の空でない有限組織（例えば、本明細書で定義されるようなセットは、ユニット、シングレット、または単一要素のセット、または複数の要素のセット）として定義される、
本明細書で使用される場合、「コンポーネント」、「モジュール」、「システム」、「インターフェース」などの用語は、一般的に、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアいずれかのコンピュータ関連エンティティを指すことを意図している。例えば、コンポーネントまたはモジュールは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および／またはコンピュータとすることができるが、これらに限定されない。例として、コントローラ上で実行されているアプリケーションとコントローラの両方をコンポーネント／モジュールとすることができる。1つまたは複数のコンポーネント／モジュールがプロセスおよび／または実行スレッド内に常駐する場合がある。コンポーネント／モジュールは、1つのコンピュータに局在化することができる、および／または複数のコンピュータに分散することができる。
【００１７】
本開示の代表的または例示的な実施形態では、図1Aに示されるように、通信ネットワーク130を介して互いに通信可能に接続された第1のコンピュータ110および第2のコンピュータ120を含むコンピュータシステム100がある。コンピュータシステム100は、暗号化および復号化のためにセキュリティキー140を使用することによって、第1のコンピュータ110と第2のコンピュータ120との間のデータ通信を保護するように構成される。第1のコンピュータ110および第2のコンピュータ120は、セキュリティキー140を使用して、通信ネットワーク130を介して第1のコンピュータ110と第2のコンピュータ120との間で通信されるデータを暗号化および復号化することを含む、データ通信命令を協働的に実行するように構成される。
【００１８】
第1のコンピュータ110および第2のコンピュータ120のそれぞれは、データを保存するために、それぞれ第1のデータベース112および第2のデータベース122を含むか、またはそれらに通信可能に接続される。データベース112および122は、それぞれ第1のコンピュータ110および第2のコンピュータ120上にローカルに、あるいは、第1のコンピュータ110および第2のコンピュータ120に通信可能にリンクされたそれぞれのリモートまたはクラウドサーバ上に常駐することができる。データベース112および122は、データを記憶するためのフラッシュ記憶メモリ、ハードドライブ、一時的な記憶場所などを有することができる。また、データベース112および122は、当業者によって容易に理解されるように、そこに保存されたデータを保護するおよび守るための様々なセキュリティ対策を用いて実装することができる。
【００１９】
通信ネットワーク130は、コンテンツ、通知、および／またはメッセージが、第1のコンピュータ110および第2のコンピュータ120を含む様々なエンティティ間で通信される媒体または環境である。通信ネットワーク130のいくつかの非限定的な例には、仮想プライベートネットワーク（VPN）、ワイヤレスフィデリティ（Wi−Fi）ネットワーク、ライトフィデリティ（Li−Fi）ネットワーク、ローカルエリアネットワーク（LAN）、ワイドエリアネットワーク（WAN）、メトロポリタンエリアネットワーク（MAN）、衛星ネットワーク、インターネット、光ファイバーネットワーク、同軸ケーブルネットワーク、赤外線（IR）ネットワーク、高周波（RF）ネットワーク、およびそれらの任意の組み合わせが含まれる。通信ネットワーク130への接続は、伝送制御プロトコル／インターネットプロトコル（TCP／IP）、ユーザデータグラムプロトコル（UDP）、第2から第5世代（2Gから5G）、ロングタームエボリューション（LTE）、ロングレンジ（LoRa）、およびそれらの任意の組み合わせなどの様々な有線および無線通信プロトコルに従うことができる。第1のコンピュータ110および第2のコンピュータ120のそれぞれは、通信ネットワーク130を介してデータを通信および送受信するためのデータ通信またはトランシーバモジュールを含む。トランシーバモジュールのいくつかの非限定的な例には、アンテナモジュール、高周波トランシーバモジュール、ワイヤレストランシーバモジュール、ブルートゥース（登録商標）トランシーバモジュール、イーサネットポート、ユニバーサルシリアルバス（USB）ポート、またはそれらの任意の組み合わせが含まれる。
【００２０】
暗号化および復号化のためにコンピュータシステム100で使用されるセキュリティキー140は、対称鍵と非対称鍵に分類することができる。対称鍵は、両方の関係者が所有する1つの対称鍵のみによって実行される対称暗号化に対して使用される。対称鍵は、データの暗号化と復号化に適用される。非対称鍵は、非対称暗号化または公開鍵暗号化用のキーのペアである。非対称鍵のそれぞれのペアは、公開鍵と秘密鍵で構成される。ユーザの公開鍵は、機密／慎重に扱うべきデータをユーザに伝達したい、および伝達するデータを暗号化したい他のユーザに対して利用可能にする。公開鍵を使用して暗号化されたデータは、同じ公開鍵と秘密鍵のペア内の秘密鍵を使用してのみ復号化できる。暗号化／復号化／対称／非対称鍵のそれぞれは、数字、単語、英数字の文字列、またはランダムな文字の文字列でとすることができる。
【００２１】
セッション鍵などの対称鍵は、Advanced Encryption Standard（AES）、Twofish、Serpent、Blowfish、Rivest Cipher 4（RC4）、Data Encryption Standard（DES）、Triple DES（3DES）などの対称暗号化アルゴリズム、およびそれらの任意の組み合わせを使用して生成される。非対称の公開鍵と秘密鍵のペアは、Rivest−Shamir−Adleman（RSA）アルゴリズム、Diffie−Hellman鍵交換法、Elliptic−Curve Cryptography（ECC）アプローチ、ElGamalアルゴリズム、デジタル署名アルゴリズム（DSA）などの非対称暗号化アルゴリズム、およびそれらの任意の組み合わせを使用して生成される。当業者は、対称鍵および非対称鍵を生成するための他のアルゴリズム、方法、またはアプローチがあり得ることを理解するであろう。また、それぞれの非対称鍵ペアは、信頼できるセキュリティ組織によって認定されており、鍵ペアに関連付けられたデジタル証明書を有する。デジタル証明書には、デジタル証明書を発行した信頼できる組織または認証局（CA）の名前、非対称鍵ペアが生成されるユーザの身元の詳細、同じ鍵ペア内のユーザの公開鍵などの情報が含まれる。デジタル証明書は通常、暗号化における公開鍵証明書のX．509規格に従って発行される。X．509証明書は、インターネットにアクセスするための安全なプロトコルであるHyper Text Transfer Protocol Secure（HTTPS）の基盤であるTransport Layer Security（TLS）／Secure Sockets Layer（SSL）を含む多くのインターネットプロトコルで使用される。
【００２２】
図2Aを参照して、第1のコンピュータ110と第2のコンピュータ120との間のデータ通信を保護するための方法200が示される。方法200は、方法200の様々な操作またはステップを実行するための様々なモジュール／コンポーネントをそれぞれが含む、第1のコンピュータ110および第2のコンピュータ120上に実装され、それらによって実行される。方法200は、第1のコンピュータ110から第2のコンピュータ120に第1のデータを通信するための第1のデータ通信命令を第1のコンピュータ110と第2のコンピュータ120によって協働的に実行するステップ202を含む。
【００２３】
方法200は、第1のコンピュータ110によって第1のセッション鍵を生成するステップ204をさらに含む。第1のセッション鍵は、暗号化と復号化の両方に使用される対称鍵である。方法200は、第1のセッション鍵を使用して第1のデータを第1のコンピュータ110によって暗号化するステップ206をさらに含み、第1のデータは、第1のコンピュータ110から第2のコンピュータ120に通信されるデータ／情報を含む。方法200は、第1の秘密鍵とペアにされた第1の公開鍵を使用して第1のコンピュータ110によって第1のセッション鍵を暗号化するステップ208をさらに含む。第1の公開鍵と秘密鍵のペアは、第2のコンピュータ120のために生成される非対称鍵ペアである。
【００２４】
方法200は、暗号化された第1のデータおよび暗号化された第1のセッション鍵を第1のコンピュータ110から第2のコンピュータ120に送信するステップ210をさらに含む。方法200は、第1のセッション鍵が同じ第1の非対称公開鍵と秘密鍵のペアの第1の公開鍵を使用して暗号化されたので、第1の秘密鍵を使用して暗号化された第1のセッション鍵を第2のコンピュータ120によって復号化するステップ212をさらに含む。方法200は、復号化された第1のセッション鍵を使用して、暗号化された第1のデータを第2のコンピュータ120によって復号化するステップ214をさらに含む。方法200は、第1のデータ通信命令に基づいて、復号化された第1のデータを第2のコンピュータ120によって処理するステップ216をさらに含む。例えば、第2のコンピュータ120は、安全なデータの保存およびその後の第1のコンピュータ110または第1のデータにアクセスする許可を有する他のコンピュータによる読み出しを行うために、復号化された第1のデータをその第2のデータベース122に保存する。第1のデータにアクセスする許可は、第1のデータが第1のコンピュータ110に由来するので、第1のコンピュータ110のユーザまたは管理者によって、ユーザが他のコンピュータのユーザに第1のデータへのアクセスを共有させたい場合など、他の構成者に与えることができる。いくつかの状況では、特定の関係者が第1のデータへのアクセスを要求している場合など、第2のコンピュータ120のユーザまたは管理者が、他のユーザに許可を与えることができる。
【００２５】
いくつかの実施形態では、第1の公開鍵と秘密鍵のペアは、有効期限が満たされる前に暗号化および復号化が有効となるように、第1の公開鍵と秘密鍵のペアは、有効期限条件を有する。一実施例では、有効期限条件は、事前定義された有効期間、例えば、第1の公開鍵と秘密鍵のペアの生成から始まる期間、または事前定義された有効期限日時である。第1の公開鍵と秘密鍵のペアは、事前定義された有効期間または事前定義された有効期限の日時の後に自動的に期限切れになり、事前定義された有効期間外または事前定義された有効期限の日時の後に暗号化と復号化は有効ではなくなる。事前定義された有効期間は少なくとも2時間であるが、それを任意の時間、分、日などに変更するように、第1のコンピュータ110および／または第2のコンピュータ120によって構成または定義することができる。別の一実施例では、有効期限条件は、第1の公開鍵と秘密鍵のペアの事前定義された使用回数であり、事前定義された使用回数の後に自動的に期限切れになる。事前定義された使用回数は、第1のコンピュータ110および／または第2のコンピュータ120によって構成可能または定義することができる。第1の公開鍵と秘密鍵のペアは、1回限りの使用または1度限りの使用のみに構成できる、つまり、第1の公開鍵と秘密鍵のペアは、1回の使用後に自動的に期限切れになる。有効期限条件は、上記の条件のいずれか1つまたは複数の組み合わせとすることができる。例えば、第1の公開鍵と秘密鍵のペアの事前定義された使用回数は、事前定義された有効期間中にのみ有効である。
【００２６】
上記の方法200は、第1のデータを第2のコンピュータ120に保存するためなど、第1のコンピュータ110から第2のコンピュータ120へのデータ通信を保護することに関する。いくつかの実施形態では、第1のコンピュータ110と第2のコンピュータ120との間でデータ交換が行われる。具体的には、第2のコンピュータ120は、図2Bに示されるように、方法250を介して暗号化されたデータを第1のコンピュータ110に戻すことができる。方法200は、方法250を実行することをさらに含む。方法200の様々な態様は、方法250と同様にまたは類似して適用され、逆もまた同様であり、そのような態様は、簡潔にするために方法250の説明から省略されていることが理解されるであろう。
【００２７】
図2Bを参照すると、方法250は、第2のコンピュータ120から第2のデータを読み出すための第1のコンピュータ110による要求のためなど、第2のコンピュータ120から第1のコンピュータ110に第2のデータを通信するための第2のデータ通信命令を第1のコンピュータ110および第2のコンピュータ120によって協働的に実行するステップ252を含む。
【００２８】
方法250は、第2のコンピュータ120によって第2のセッション鍵を生成するステップ254をさらに含む。第2のセッション鍵は、暗号化と復号化の両方に使用される対称鍵ですある。方法250は、第2のセッション鍵を使用して第2のデータを第2のコンピュータ120によって暗号化するステップ256をさらに含み、第2のデータは、第2のコンピュータ120から第1のコンピュータ110に通信されるデータ／情報を含む。方法250は、第2の秘密鍵とペアにされた第2の公開鍵を使用して第2のセッション鍵を第2のコンピュータ120によって暗号化するステップ258をさらに含む。第2の公開鍵と秘密鍵のペアは、第1のコンピュータ110のために生成される非対称鍵ペアである。
【００２９】
方法250は、暗号化された第2のデータおよび暗号化された第2のセッション鍵を第2のコンピュータ120から第1のコンピュータ110に送信するステップ260をさらに含む。方法250は、第2の秘密鍵を使用して暗号化された第2のセッション鍵を第1のコンピュータ110によって復号化するステップ262をさらに含む。方法250は、復号化された第2のセッション鍵を使用して、暗号化された第2のデータを第1のコンピュータ110によって復号化するステップ264をさらに含む。方法250は、第2のデータ通信命令に基づいて、復号化された第2のデータを第1のコンピュータ110によって処理するステップ266をさらに含む。例えば、第1のコンピュータ110は、その前記復号化に応答して復号化された第2のデータを抽出し、復号化された第2のデータをその第1のデータベース112に保存する。
【００３０】
いくつかの実施形態では、第1の公開鍵と秘密鍵のペアと同様に、第2の公開鍵と秘密鍵のペアは、有効期限が満たされる前に暗号化および復号化に対して有効であるように、有効期限条件を有する。上記の第1の公開鍵と秘密鍵のペアの有効期限条件は、第2の公開鍵と秘密鍵のペアと同様にまたは類似して適用されることが理解されるであろう。
【００３１】
上記の方法200および250は、第1のコンピュータ110および第2のコンピュータ120に対して生成される、関連する第1のセッション鍵、第2のセッション鍵、第1の公開鍵と秘密鍵のペア、および第2の公開鍵と秘密鍵のペアを使用することによる、第1のコンピュータ110と第2のコンピュータ120との間の安全なデータ通信に関する。特に、第1の公開鍵と秘密鍵のペアおよび第2の公開鍵と秘密鍵のペアは、第2のコンピュータ120と第1のコンピュータ110に対してそれぞれ生成される。しかしながら、前記安全なデータ通信は、第1のコンピュータ110のために生成された第1の公開鍵と秘密鍵のペアと、第2のコンピュータ120のために生成された第2の公開鍵と秘密鍵のペアを使用できることが理解されるであろう。
【００３２】
いくつかの実施形態では、第1／第2の公開鍵と秘密鍵のペアは、第2のコンピュータ120によって生成される。図3Aを参照すると、方法200は、第1のデータ通信命令を実行する前に、トークン生成プロセス300を第1のコンピュータ110および第2のコンピュータ120によって協働的に実行することをさらに含む。これは、第1のコンピュータ110が第1のデータを第2のコンピュータ120に初めて通信していて、第1／第2の公開鍵と秘密鍵のペアが以前に生成されていない場合に起こり得る。トークン生成プロセス300は、第1のコンピュータ110によってトークンセッション鍵を生成するステップ302を含む。トークンセッション鍵は、暗号化と復号化の両方に使用される対称鍵であり、事前定義された有効期間などの有効期限条件を有することができる。
【００３３】
トークン生成プロセス300は、トークンセッション鍵を使用してトークン要求を第1のコンピュータ110によって暗号化するステップ304をさらに含み、トークン要求は、第2のコンピュータ120から少なくとも第1／第2の公開鍵と秘密鍵のペアを要求するためのものである。トークン生成プロセス300は、トークンセッション鍵および暗号化されたトークン要求を第1のコンピュータ110から第2のコンピュータ120に送信するステップ306をさらに含む。トークン生成プロセス300は、トークンセッション鍵を使用して暗号化されたトークン要求を第2のコンピュータ120によって復号化するステップ308をさらに含む。トークン生成プロセス300は、第2のコンピュータ120／第1のコンピュータ110の第1の／第2の公開鍵と秘密鍵のペアを第2のコンピュータ120によってそれぞれ生成するステップ310をさらに含む。トークン生成プロセス300は、トークンセッション鍵を使用して、第1の公開鍵／第2の秘密鍵を第2のコンピュータ120によって暗号化するステップ312をさらに含む。トークン生成プロセス300は、暗号化された第1の公開鍵／第2の秘密鍵を第2のコンピュータ120から第1のコンピュータ110に送信するステップ314をさらに含む。トークン生成プロセス300は、トークンセッション鍵を使用して、暗号化された第1の公開鍵／第2の秘密鍵を第1のコンピュータ110によって復号化するステップ316をさらに含む。したがって、第1のコンピュータ110は、第1の公開鍵を使用して第1のセッション鍵を暗号化し、第2の秘密鍵を使用して第2のセッション鍵を復号化することができる。したがって、トークン生成プロセス300は、第2のコンピュータ120が第1の公開鍵と秘密鍵のペアおよび／または第2の公開鍵と秘密鍵のペアを生成することを可能にする。
【００３４】
いくつかの実施形態では、第1／第2の公開鍵と秘密鍵のペアは、第1のコンピュータ110によって生成される。図3Bを参照すると、方法200は、第1のデータ通信命令を実行する前に、トークン生成プロセス350を第1のコンピュータ110および第2のコンピュータ120によって協働的に実行することをさらに含む。トークン生成プロセス300の様々な態様は、トークン生成プロセス350と同様にまたは類似して適用され、その逆もまた同様であり、そのような態様は、簡潔にするためにトークン生成プロセス350の説明から省略されることが理解されるであろう。
【００３５】
トークン生成プロセス350は、第1のコンピュータ110によってトークンセッション鍵を生成するステップ352を含む。トークン生成プロセス350は、第2のコンピュータ120／第1のコンピュータ110に対して第1の／第2の公開鍵と秘密鍵のペアを第1のコンピュータ110によってそれぞれ生成するステップ354をさらに含む。トークン生成プロセス350は、トークンセッション鍵を使用して、第1の秘密鍵／第2の公開鍵を第1のコンピュータ110によって暗号化するステップ356をさらに含む。トークン生成プロセス350は、トークンセッション鍵および暗号化された第1の秘密鍵／第2の公開鍵を第1のコンピュータ110から第2のコンピュータ120に送信するステップ358をさらに含む。トークン生成プロセス350は、トークンセッション鍵を使用して、暗号化された第1の秘密鍵／第2の公開鍵を第2のコンピュータ120によって復号化するステップ360をさらに含む。したがって、第2のコンピュータ120は、第1の秘密鍵を使用して第1のセッション鍵を復号化し、第2の公開鍵を使用して第2のセッション鍵を暗号化することができる。したがって、トークン生成プロセス350は、第1のコンピュータ110が第1の公開鍵と秘密鍵のペアおよび／または第2の公開鍵と秘密鍵のペアを生成することを可能にする。
【００３６】
図1Bに示されるいくつかの実施形態では、第1のコンピュータ110はローカルクライアントコンピュータ150であり、第2のコンピュータ120はリモートコンピュータサーバ160である。図1Cに示されるいくつかの他の実施形態では、第1のコンピュータ110はリモートコンピュータサーバ160であり、第2のコンピュータ120はローカルクライアントコンピュータ150である。
【００３７】
ローカルクライアントコンピュータ150は、個人または企業のエンドユーザによって操作されるコンピュータまたはコンピューティングデバイスである。ローカルクライアントコンピュータ150のいくつかの非限定的な例には、デスクトップデバイス、モバイルデバイス、タブレットデバイス、ラップトップコンピュータ、ウェアラブルデバイス、およびプロセッサ、マイクロプロセッサ、中央処理装置、またはコントローラを有し得る他の任意の電子デバイスが含まれる。ローカルクライアントコンピュータ150は、データをリモートコンピュータサーバ160に転送してそこに保存するためなど、通信ネットワーク130を介してリモートコンピュータサーバ160と通信可能である。ローカルクライアントコンピュータ150は、データを保存するためのローカルデータベース152を含むか、または通信接続されており、リモートコンピュータサーバ160は、データを保存するためのサーバデータベース162を含むか、または通信接続されている。リモートコンピュータサーバ160は、ローカルクライアントコンピュータ150から離れて遠隔に配置されている、すなわち、ローカルクライアントコンピュータ150と同じローカルネットワークを共有していないコンピュータサーバである。本明細書で使用される場合、コンピュータサーバは、サーバプログラムが実行される物理的またはクラウドデータ処理システムである。サーバは、ハードウェアまたはソフトウェア、あるいはそれらの組み合わせに実装することができる。サーバには、コンピュータ、ラップトップ、ミニコンピュータ、メインフレームコンピュータ、機械可読コードを実行できる非一時的で有形の機械、クラウドベースのサーバ、分散サーバネットワーク、およびコンピュータシステムのネットワークが含まれる。
【００３８】
多くの実施形態では、リモートコンピュータサーバ160は、1つまたは複数のローカルクライアントコンピュータ150と通信可能なクラウドベースのサーバであるか、またはそれを含む。具体的には、クラウドベースのサーバは、ローカルクライアントコンピュータ150のエンドユーザにウェブサービスを提供する。クラウドベースのサーバには、オープンソースサーバ、エンタープライズサーバ、エンタープライズ間サーバ、エンタープライズ・オープンソース間サーバ、またはエンドユーザがデータを異なる場所に送信、転送、保存するのに適したその他のサーバ環境を有することができる。
【００３９】
非対称の公開鍵と秘密鍵のペアは、トークン生成プロセス400によって、ローカルクライアントコンピュータ150およびリモートコンピュータサーバ160のそれぞれに対して生成される。非対称の公開鍵と秘密鍵のペアは、リモートコンピュータサーバ160またはローカルクライアントコンピュータ150によって生成することができる。ローカルクライアントコンピュータ150のために生成された公開鍵と秘密鍵のペアは、クライアントの公開鍵と秘密鍵のペア154と呼ばれ、リモートコンピュータサーバ160のために生成された公開鍵と秘密鍵のペアは、サーバの公開鍵と秘密鍵のペア164と呼ばれる。クライアントの公開鍵と秘密鍵のペア154は、クライアントの公開鍵154−1とクライアントの秘密鍵154−2からなる。サーバの公開鍵と秘密鍵のペア164は、サーバの公開鍵164−1とサーバの秘密鍵164−2とからなる。クライアントの公開鍵と秘密鍵のペア154およびサーバの公開鍵と秘密鍵のペア164のそれぞれは、本明細書の様々な実施形態で説明される第1の公開鍵と秘密鍵のペアまたは第2の公開鍵とプライベート鍵のペアとすることができる。
【００４０】
トークン生成プロセス400は、ローカルクライアントコンピュータ150およびリモートコンピュータサーバ160がデータの暗号化／復号化を実行する前に、それらによって協働的に実行される。具体的には、トークン生成プロセス400は、第1のデータ通信命令を実行するステップ202の前、および第2のデータ通信命令を実行するステップ252の前に実行される。トークン生成プロセス400は、インターネット上での認証および承認のためのOAuth 2．0規格プロトコルの使用を通じて生じることができる。トークン生成プロセス400の様々なステップは、ローカルクライアントコンピュータ150上で実行される少なくとも1つのクライアントアプリケーションを使用して実行される。一実施形態では、クライアントアプリケーションは、ローカルクライアントコンピュータ150にプレリインストールされている。別の一実施形態では、クライアントアプリケーションはプレインストールされていないが、クライアントは、例えば、iOS、Androidなどのローカルクライアントコンピュータ150のオペレーティングシステムを介してクライアントアプリケーションを要求し、その後、クライアントアプリケーションをダウンロードしてインストールすることができる。
【００４１】
いくつかの実施形態では、トークン生成プロセス400は、ローカルクライアントコンピュータ150およびリモートコンピュータサーバ160によって協働的に実行され、非対称の公開鍵と秘密鍵のペアは、リモートコンピュータサーバ160によって生成される。トークン生成プロセス400は、図4A〜図4Cを参照して以下に説明するように、少なくとも3つのHTTPSセッションを含む。
【００４２】
図4Aを参照する第1のHTTPSセッションでは、ステップ402において、ローカルクライアントコンピュータ150は、対称鍵であるトークンセッション鍵を生成する。ステップ404において、ローカルクライアントコンピュータ150は、トークンセッション鍵をリモートコンピュータサーバ160に送信する。ステップ406において、ローカルクライアントコンピュータ150は、トークンセッション鍵を使用してログイン要求を暗号化し、ログイン要求は、クライアントアプリケーションの組み込みブラウザ上にログインページを提供するためのものである。ステップ408において、ローカルクライアントコンピュータ150は、暗号化されたログイン要求をリモートコンピュータサーバ160に送信する。ステップ410において、リモートコンピュータサーバ160は、トークンセッション鍵を使用して暗号化されたログイン要求を復号化し、さらにログイン要求を処理する。ステップ412において、リモートコンピュータサーバ160は、トークンセッション鍵を使用してクライアントログインページを暗号化する。ステップ414において、リモートコンピュータサーバ160は、暗号化されたクライアントログインページをローカルクライアントコンピュータ150に送信する。ステップ416において、ローカルクライアントコンピュータ150は、トークンセッション鍵を使用して暗号化されたクライアントログインページを復号化する。ステップ418において、ローカルクライアントコンピュータ150は、復号化されたクライアントログインページを組み込みブラウザ上に表示する。
【００４３】
いくつかの実施形態では、第1のHTTPSセッションには暗号化がない。具体的には、ローカルクライアントコンピュータ150は、ブラウザ上にログインページを提供するために、暗号化されていないログイン要求をリモートコンピュータサーバ160に送信する。リモートコンピュータサーバ160は、ログイン要求を受信して処理する。リモートコンピュータサーバ160は、暗号化されていないクライアントログインページをローカルクライアントコンピュータ150に送信して、組み込みブラウザ上に表示する。
【００４４】
図4Bを参照する第2のHTTPSセッションでは、ステップ420において、ユーザまたはクライアントは、クライアントログインページで、ユーザ名および／またはパスワードを含むクライアントログインの詳細を入力する。ユーザ名とパスワードのそれぞれは、数字、アルファベット、テキスト、文字などの任意の組み合わせまたは文字列とすることができる。ステップ422において、ローカルクライアントコンピュータ150は、認証のためにクライアントログインの詳細をリモートコンピュータサーバ160に送信する。ステップ424において、リモートコンピュータサーバ160は、クライアントログインの詳細を認証し、メッセージ認証コード（MAC）を生成する。MACはタグとも呼ばれ、クライアントログインの詳細など、メッセージを認証するための短い情報であり、それによってメッセージのデータの整合性と信頼性を保護する。ステップ426において、リモートコンピュータサーバ160は、トークンセッション鍵を使用してMACを暗号化する。ステップ428において、リモートコンピュータサーバ160は、暗号化されたMACをローカルクライアントコンピュータ150に送信する。ステップ430において、ローカルクライアントコンピュータ150は、トークンセッション鍵を使用して暗号化されたMACを復号化する。あるいはまた、MACは、暗号化されないことも可能である。MACは、クライアントがブラウザに正常にログインすることを許可し、クライアントは、クライアントが設定できる事前定義された期間、ログインしたままにすることができる。ここで、クライアントは、ブラウザを使用して、リモートコンピュータサーバ160に公開鍵と秘密鍵のペアを要求することができる。
【００４５】
図4Cを参照する第3のHTTPSセッションでは、ステップ432において、ローカルクライアントコンピュータ150は、リモートコンピュータサーバ160からの公開鍵と秘密鍵のペアに対するトークン要求を開始する。ステップ434において、ローカルクライアントコンピュータ150は、トークンセッション鍵を使用してトークン要求を暗号化する。ステップ436において、ローカルクライアントコンピュータ150は、暗号化されたトークン要求をリモートコンピュータサーバ160に送信する。ステップ438において、リモートコンピュータサーバ160は、トークンセッション鍵を使用して暗号化されたトークン要求を復号化し、さらにトークン要求を処理する。ステップ440において、リモートコンピュータサーバ160は、ローカルクライアントコンピュータ150のためのクライアントの公開鍵と秘密鍵のペア154およびリモートコンピュータサーバ160のためのサーバの公開鍵と秘密鍵のペア164を含む2つの公開鍵と秘密鍵のペアを生成する。任意選択として、ステップ440において、リモートコンピュータサーバ160は、ローカルクライアントコンピュータ150のためのクライアントトークンをさらに生成する。クライアントトークンは、クライアントおよび／またはローカルクライアントコンピュータ150を識別するのに役立てることができ、例えば、リモートコンピュータサーバ160が、ローカルクライアントコンピュータ150のために生成されたクライアントの公開鍵と秘密鍵のペア154を識別できるようにする。
【００４６】
ステップ442において、リモートコンピュータサーバ160は、トークンセッション鍵を使用して、クライアント秘密鍵154−2、サーバ公開鍵164−1、およびクライアントトークンを暗号化する。ステップ444において、リモートコンピュータサーバ160は、トークンセッション鍵を使用してローカルクライアントコンピュータ150によるその後の復号化のために、暗号化されたクライアント秘密鍵154−2、暗号化されたサーバ公開鍵164−1、および暗号化されたクライアントトークンをローカルクライアントコンピュータ150に送信する。これらは、当業者によって容易に理解されるように、連続して、並行して、ブロックで、またはパーティションで送信することができる。ステップ446において、ローカルクライアントコンピュータ150は、トークンセッション鍵を使用して、暗号化されたクライアント秘密鍵154−2、暗号化されたサーバ公開鍵164−1、および暗号化されたクライアントトークンを復号化する。ステップ448において、ローカルクライアントコンピュータ150は、それらの前記復号化に応答して、クライアント秘密鍵154−2、サーバ公開鍵164−1、およびクライアントトークンを抽出し、それらをそのローカルデータベース152に保存する。クライアントの公開鍵と秘密鍵のペア154、サーバの公開鍵と秘密鍵のペア164、およびクライアントトークンのそれぞれは、第1および第2の公開鍵と秘密鍵のペアに対して上記したものなど、ローカルクライアントコンピュータ150および／またはリモートコンピュータサーバ160によって構成可能な有効期限条件を有することができる。例えば、有効期限条件は、トークンセッション鍵の事前定義された有効期間に対応する事前定義された有効期間である。したがって、有効期限条件は、トークンセッション鍵の有効期限の後に満たされる。
【００４７】
いくつかの実施形態では、非対称の公開鍵と秘密鍵のペアは、リモートコンピュータサーバ160の代わりにローカルクライアントコンピュータ150によって生成される。これは、図4Dを参照して、トークン生成プロセス450として説明される。トークン生成プロセス450は、1つまたは複数のHTTPSセッションを介して、ローカルクライアントコンピュータ150およびリモートコンピュータサーバ160によって協働的に実行される。トークン生成プロセス400の様々な態様は、トークン生成プロセス450と同様にまたは類似して適用され、その逆もまた同様であり、そのような態様は、簡潔にするためにトークン生成プロセス450の説明から省略されることが理解されるであろう。
【００４８】
ステップ452において、ローカルクライアントコンピュータ150は、対称鍵であるトークンセッション鍵を生成する。ステップ454において、ローカルクライアントコンピュータ150は、ローカルクライアントコンピュータ150用のクライアントの公開鍵と秘密鍵のペア154およびリモートコンピュータサーバ160用のサーバの公開鍵と秘密鍵のペア164を含む、2つの公開鍵と秘密鍵のペアを生成する。任意選択として、ステップ454において、ローカルクライアントコンピュータ150は、ローカルクライアントコンピュータ150のクライアントトークンをさらに生成する。クライアントトークンは、クライアントおよび／またはローカルクライアントコンピュータ150を識別するのに役立てることができ、例えば、リモートコンピュータサーバ160が、ローカルクライアントコンピュータ150のために生成されたクライアントの公開鍵と秘密鍵のペア154を識別できるようにする。
【００４９】
ステップ456において、ローカルクライアントコンピュータ150は、トークンセッション鍵を使用して、クライアントの公開鍵154−1、サーバの秘密鍵164−2、およびクライアントトークンを暗号化する。ステップ458において、ローカルクライアントコンピュータ150は、トークンセッション鍵を使用して、リモートコンピュータサーバ160によって、その後の復号化のために、トークンセッション鍵、暗号化されたクライアントの公開鍵154−1、暗号化されたサーバの秘密鍵164−2、および暗号化されたクライアントトークンをリモートコンピュータサーバ160に送信する。これらは、当業者によって容易に理解されるように、連続して、並行して、ブロックで、またはパーティションで送信することができる。一実施形態では、鍵は、ローカルクライアントコンピュータ150とリモートコンピュータサーバ160との間にアクティブな通信リンクまたはアクティブなHTTPSセッションがあるときに生成され、リモートコンピュータサーバ160に送信される。別の一実施形態では、鍵は、インターネット接続の欠如などのために、ローカルクライアントコンピュータ150がリモートコンピュータサーバ160から通信的に切断されるオフラインモードで生成される。鍵は、ローカルクライアントコンピュータ150のローカルデータベース152に保存され、その後、リモートコンピュータサーバ160とのアクティブな通信リンクを確立した後、リモートコンピュータサーバ160に送信することができる。
【００５０】
ステップ460において、リモートコンピュータサーバ160は、トークンセッション鍵を使用して、暗号化されたクライアントの公開鍵154−1、暗号化されたサーバの秘密鍵164−2、および暗号化されたクライアントトークンを復号化する。ステップ462において、リモートコンピュータサーバ160は、それらの前記復号化に応答して、クライアントの公開鍵154−1、サーバの秘密鍵164−2、およびクライアントトークンを抽出し、それらをそのサーバデータベース162に保存する。
【００５１】
上記のHTTPSセッションなどのセッションベースの暗号化には、HTTPSプロトコルを介して安全なセッションを提供および確立するためのプロセス、機能、または方法500がある。図5を参照すると、ステップ502において、ユーザまたはクライアントは、クライアントアプリケーションを介して、リモートコンピュータサーバ160へのTLS／SSL接続を要求するように命令を提供する。ステップ504において、リモートコンピュータサーバ160は、プログラミング機能のセットを備えたアプリケーションプログラミングインターフェース（API）を使用して、サーバの公開鍵164−1に関連付けられ得るTLS／SSL証明書を読み出しまたは生成することができる。ステップ506において、リモートコンピュータサーバ160は、TLS／SSL証明書およびサーバの公開鍵164−1をローカルクライアントコンピュータ150に送信する。ステップ508において、ローカルクライアントコンピュータ150は、TLS／SSL証明書およびサーバの公開鍵164−1を検証および認証する。ステップ510において、ローカルクライアントコンピュータ150は、ステップ204の第1のセッション鍵およびステップ254の第2のセッション鍵などのセッション鍵または対称鍵を生成する。ステップ512において、ローカルクライアントコンピュータ150は、サーバの公開鍵164−1を使用してセッション鍵を暗号化する。ステップ514において、ローカルクライアントコンピュータ150は、暗号化されたセッション鍵をリモートコンピュータサーバ160に送信する。ステップ516において、リモートコンピュータサーバ160は、サーバの秘密鍵164−2を使用して暗号化されたセッション鍵を復号化する。ステップ518において、リモートコンピュータサーバ160は、セッション鍵の前記復号化の完了を確認するためにローカルクライアントコンピュータ150にメッセージを送信する。ステップ520において、ローカルクライアントコンピュータ150およびリモートコンピュータサーバ160は、その後、ここにおいてそれらの間で共有されているセッション鍵を使用して通信し、データを交換することができる。
【００５２】
図6Aを参照するいくつかの実施形態では、HTTPSプロトコルを介してローカルクライアントコンピュータ150とリモートコンピュータサーバ160との間のデータ通信を保護するためのプロセス、機能、または方法600が存在する。方法600の様々なステップは、ローカルクライアントコンピュータ150にインストールされ実行されたクライアントアプリケーションを使用して実行される。
【００５３】
方法600のステップ602において、ローカルクライアントコンピュータ150は、リモートコンピュータサーバ160に第1のデータを保存するために、リモートコンピュータサーバ160と協働して第1のデータ通信命令を実行する。第1のデータは、様々な被験者／患者に対して実施された医療処置から収集された測定データを含むことができる。測定データは、一連の心拍数データセット、一連の血圧データセット、一連の脈圧データセットのうちの少なくとも1つを含むことができる。例えば、測定データは、第1の期間に収集された第1の一連の心拍数データおよび第2の期間に収集された第2の一連の心拍数データを含む、複数の一連の心拍数データを含む。
【００５４】
ステップ604において、ローカルクライアントコンピュータ150は、ローカルデータベース152に保存された測定データを読み出す。ステップ606において、ローカルクライアントコンピュータ150は、例えば、ランレングス符号化（RLE）、ハフマンコーディング、LZ77、LZ78など、およびそれらの任意の組み合わせなどのデータ圧縮アルゴリズムを使用することによって、測定データを圧縮する。あるいはまた、測定データは圧縮されないが、圧縮可能とすることができる。ステップ608において、ローカルクライアントコンピュータ150は、第1のセッション鍵を生成する。ステップ610において、ローカルクライアントコンピュータ150は、第1のセッション鍵を使用して測定データを暗号化する。ステップ612において、ローカルクライアントコンピュータ150は、トークン生成プロセス400／450から生成されたサーバの公開鍵164−1を使用して、第1のセッション鍵を暗号化する。ステップ614において、ローカルクライアントコンピュータ150は、暗号化された測定データおよび暗号化された第1のセッション鍵をリモートコンピュータサーバ160に送信する。
【００５５】
したがって、方法600の上記のステップにおいて、ローカルクライアントコンピュータ150は、任意の所与の時点で、第1および第2の一連の心拍数データなどの測定データを、HTTPSプロトコルを介してリモートコンピュータサーバ160に送信することができる。ステップ616において、リモートコンピュータサーバ160は、サーバの秘密鍵164−2を使用して暗号化された第1のセッション鍵を復号化し、復号化された第1のセッション鍵を抽出する。ステップ618において、リモートコンピュータサーバ160は、復号化された第1のセッション鍵を使用して暗号化された測定データを復号化し、復号化された測定データを抽出する。ステップ620において、測定データは圧縮することができ、リモートコンピュータサーバ160は、圧縮された測定データをその元の非圧縮状態に解凍する。あるいはまた、測定データは元々圧縮されていなくてもよい。ステップ622において、リモートコンピュータサーバ160は、第1のデータ通信命令に基づいて、測定データをサーバデータベース162に保存する。
【００５６】
ステップ624において、リモートコンピュータサーバ160は、アルゴリズムのセットを使用して、測定データを結合および／または操作して、詳細データを生成する。ステップ626において、リモートコンピュータサーバ160は、詳細データを測定データと共にサーバデータベース162に保存する。当業者が容易に理解できるように、詳細データは、その中の各データ要素がクラウドコンピューティングのためのその独自のアクセス制御ポリシーを有するように生成することができる。いくつかの状況では、リモートコンピュータサーバ160は、クライアントがクラウドコンピューティングサービスの有料サブスクリプションを通じて加入するクラウドコンピューティングサービスを操作する。リモートコンピュータサーバ160は、サブスクリプション料金が適時に支払われる場合、きめ細かい生成を行う。逆に、サブスクリプション料金が適時に支払われない場合、160を超えるリモートコンピュータは、ステップ624でアルゴリズムのセットが詳細データを生成することを制限するなどによって、クラウドコンピュータサービスを終了または制限することができるが、これは、サーバデータベース162に測定データを保存するための方法600のプロセスフローを最適化できる。ステップ628において、リモートコンピュータサーバ160は、ローカルクライアントコンピュータ150にメッセージを送信して、測定データ／詳細データをサーバデータベース162に保存するステップ622の完了を確認する。
【００５７】
図6Bを参照するいくつかの実施形態では、HTTPSプロトコルを介してローカルクライアントコンピュータ150とリモートコンピュータサーバ160との間のデータ通信を保護するためのプロセス、機能、または方法650が存在する。方法650の様々なステップは、ローカルクライアントコンピュータ150にインストールされ実行されたクライアントアプリケーションを使用して実行される。方法650のステップ652において、ローカルクライアントコンピュータ150は、リモートコンピュータサーバ160から第2のデータを読み出すために、リモートコンピュータサーバ160と協働して第2のデータ通信命令を実行する。第2のデータは、方法600で前述したように、サーバデータベース162に保存された履歴測定データおよび／または履歴詳細データを含むことができる。
【００５８】
ステップ654において、リモートコンピュータサーバ160は、サーバデータベース162に保存された履歴測定／詳細データを読み出す。ステップ656において、リモートコンピュータサーバ160は、上記のデータ圧縮アルゴリズムを使用することによって、履歴測定／詳細データを圧縮する。あるいはまた、履歴測定／詳細データは圧縮されないが、圧縮可能とすることができる。ステップ658において、リモートコンピュータサーバ160は、第2のセッション鍵を生成する。ステップ660において、リモートコンピュータサーバ160は、第2のセッション鍵を使用して、履歴測定／詳細データを暗号化する。ステップ662において、リモートコンピュータサーバ160は、トークン生成プロセス400／450から生成されたクライアントの公開鍵154−1を使用して、第2のセッション鍵を暗号化する。第2のデータ通信命令は、ローカルクライアントコンピュータ150および／またはそれをリモートコンピュータサーバ160に使用してローカルクライアントコンピュータ150用に生成されたクライアントの公開鍵154−1を識別するクライアントを識別するクライアントトークンを含むことができる。ステップ664において、リモートコンピュータサーバ160は、暗号化された履歴測定／詳細データおよび暗号化された第2のセッション鍵をローカルクライアントコンピュータ150に送信する。
【００５９】
ステップ666において、ローカルクライアントコンピュータ150は、トークン生成プロセス400／450から生成されたクライアントの秘密鍵154−2を使用して暗号化された第2のセッション鍵を復号化し、復号化された第2のセッション鍵を抽出する。ステップ668において、ローカルクライアントコンピュータ150は、復号化された第2のセッション鍵を使用して暗号化された履歴測定／詳細データを復号化し、復号化された履歴測定／詳細データを抽出する。ステップ670において、履歴測定／詳細データは圧縮することができ、ローカルクライアントコンピュータ150は、圧縮された履歴測定／詳細データをその元の非圧縮状態に解凍する。あるいはまた、履歴測定／詳細データは元々圧縮されていなくてもよい。ステップ672において、ローカルクライアントコンピュータ150は、第2のデータ通信命令に基づいて、履歴測定／詳細データをローカルデータベース152に保存する。ステップ674において、ローカルクライアントコンピュータ150は、クライアントアプリケーション上の履歴測定／詳細データを表示する。一実施形態では、ローカルクライアントコンピュータ150は、履歴測定データのみを受信し、アルゴリズムのセットを使用して、履歴測定データを結合および／または操作して、詳細データを生成することができる。
【００６０】
したがって、方法650の上記のステップでは、ローカルクライアントコンピュータ150は、HTTPSプロトコルを介して、リモートコンピュータサーバ160から任意の時点で履歴測定／詳細データを読み出すことができる。一実施形態では、第2のデータ通信命令は、履歴測定／詳細データの少なくとも1つのセットを読み出すための単一の要求である。クライアントが履歴測定／詳細データの別のセットまたは追加のセットを読み出したい場合、追加の第2のデータ通信命令が実行される。したがって、当業者は、第2のデータ通信命令が、リモートコンピュータサーバ160から複数のパケットまたは履歴測定／詳細データのセットを読み出すために繰り返され得ることを容易に理解するであろう。
【００６１】
図7Aおよび図7Bを参照するいくつかの実施形態では、HTTPSプロトコルを介してローカルクライアントコンピュータ150とリモートコンピュータサーバ160との間のデータ通信を保護するためのプロセス、機能、または方法700が存在する。方法700の様々なステップは、ローカルクライアントコンピュータ150にインストールされ実行されたクライアントアプリケーションを使用して実行される。
【００６２】
図7Aを参照する方法700のステップ702において、ローカルクライアントコンピュータ150は、リモートコンピュータサーバ160が第1のデータを認証するために、リモートコンピュータサーバ160と協働して第1のデータ通信命令を実行する。第1のデータは、ローカルクライアントコンピュータ150のクライアントまたはユーザのユーザ名および／またはパスワードを含み得る認証データ／情報を含む。認証データは、ローカルクライアントコンピュータ150上の他のアプリケーションおよび／またはクライアントアプリケーションの他のモジュールにアクセスするために必要とされ得る。したがって、第1のデータ通信命令は、認証要求と呼ぶことができる。
【００６３】
ステップ704において、ローカルクライアントコンピュータ150は、認証データを取得する。認証データは、ローカルデータベース152から取り出すことができるか、またはクライアントによって提供されることができる。ステップ706において、ローカルクライアントコンピュータ150は、データ圧縮アルゴリズムを使用することによって認証データを圧縮する。あるいはまた、認証データは圧縮されないが、圧縮可能とすることができる。ステップ708において、ローカルクライアントコンピュータ150は、第1のセッション鍵を生成する。ステップ710において、ローカルクライアントコンピュータ150は、第1のセッション鍵を使用して認証データを暗号化する。ステップ712において、ローカルクライアントコンピュータ150は、トークン生成プロセス400／450から生成されたサーバの公開鍵164−1を使用して、第1のセッション鍵を暗号化する。ステップ714において、ローカルクライアントコンピュータ150は、暗号化された認証データおよび暗号化された第1のセッション鍵をリモートコンピュータサーバ160に送信する。
【００６４】
ステップ716において、リモートコンピュータサーバ160は、サーバの秘密鍵164−2を使用して暗号化された第1のセッション鍵を復号化し、復号化された第1のセッション鍵を抽出する。ステップ718において、リモートコンピュータサーバ160は、復号化された第1のセッション鍵を使用して暗号化された認証データを復号化し、復号化された認証データを抽出する。ステップ720において、認証データは圧縮することができ、リモートコンピュータサーバ160は、圧縮された認証データをその元の非圧縮状態に解凍する。あるいはまた、認証データは元々圧縮されていなくてもよい。ステップ722において、リモートコンピュータサーバ160は、第1のデータ通信命令に基づいて認証データを処理する。具体的には、リモートコンピュータサーバ160は、検証プロセスを通じて認証データを認証する。検証プロセスは、認証データを、クライアントから事前に取得され、サーバデータベース162に保存されている参照認証データと比較することを含む。ステップ724において、リモートコンピュータサーバ160は、認証データの認証の成功に応答してMACを生成する。
【００６５】
図7Bをさらに参照するステップ726において、リモートコンピュータサーバ160は、ローカルクライアントコンピュータ150と協働して、MACをローカルクライアントコンピュータ150に送信するための第2のデータ通信命令を実行する。ステップ728において、リモートコンピュータサーバ160は、データ圧縮アルゴリズムを使用することによってMACを圧縮する。あるいはまた、MACは非圧縮であるが、圧縮可能とすることができる。ステップ730において、リモートコンピュータサーバ160は、第2のセッション鍵を生成する。ステップ732において、リモートコンピュータサーバ160は、第2のセッション鍵を使用してMACを暗号化する。ステップ734において、リモートコンピュータサーバ160は、トークン生成プロセス400／450から生成されたクライアントの公開鍵154−1を使用して、第2のセッション鍵を暗号化する。ステップ736において、リモートコンピュータサーバ160は、暗号化されたMACおよび暗号化された第2のセッション鍵をローカルクライアントコンピュータ150に送信する。
【００６６】
ステップ738において、ローカルクライアントコンピュータ150は、トークン生成プロセス400／450から生成されたクライアントの秘密鍵154−2を使用して暗号化された第2のセッション鍵を復号化し、復号化された第2のセッション鍵を抽出する。ステップ740において、ローカルクライアントコンピュータ150は、復号化された第2のセッション鍵を使用して暗号化されたMACを復号化し、復号化されたMACを抽出する。ステップ742において、MACは圧縮することができ、ローカルクライアントコンピュータ150は、圧縮されたMACを元の非圧縮状態に解凍する。あるいはまた、MACは元々非圧縮とすることができる。ステップ744において、ローカルクライアントコンピュータ150は、第2のデータ通信命令に基づいてMACを処理する。例えば、MACは、クライアントが、ローカルクライアントコンピュータ150および／またはクライアントアプリケーションの他のモジュール上の他のアプリケーションに正常にアクセスすることを可能にする。
【００６７】
図8A〜図8Cを参照するいくつかの実施形態では、HTTPSプロトコルを介してローカルクライアントコンピュータ150とリモートコンピュータサーバ160との間のデータ通信を保護するためのプロセス、機能、または方法800および850が存在する。方法800および850の様々なステップは、ローカルクライアントコンピュータ150にインストールおよび実行されたクライアントアプリケーションを使用して実行される。方法800は、第1のデータをリモートコンピュータサーバ160と通信してそこに保存するために実行することができ、方法850は、リモートコンピュータサーバ160から第2のデータを読み出すために実行することができる。第1のデータは、現在のデータセットを含むことができ、第2のデータは、過去のデータセットを含むことができる。
【００６８】
現在のデータセットは、以前にリモートコンピュータサーバ160に送信されていない、最近収集された新しい個人／医療データを含むことができる。現在のデータセットは、文書形式、データ形式、データの記録、生データ、または他の任意の適切な形式とすることができる。現在のデータセットは、ローカルデータベース152に保存され、ローカルデータベース152から読み出すことができる。過去のデータセットは、サーバデータベース162に保存するためにリモートコンピュータサーバ160にすでに送信された、以前に収集された過去のデータ／情報を含むことができる。過去のデータセットは、クライアントアプリケーション上で視覚化するために、リモートコンピュータサーバ160から読み出し戻すことができる。
【００６９】
現在のデータセットおよび過去のデータセットのそれぞれは、準拠データセットおよび／または非準拠データセットを含むことができる。準拠データセットは、個人データセット、詳細データセット、またはローカルクライアントコンピュータ150およびリモートコンピュータサーバ160がアクセスを許可され得る前に規制またはポリシーが承認されることを要求し得る任意の他のデータを含むことができる。準拠データは、クライアントアカウントまたはクライアントプロファイルに関する情報（例えば、クライアントの身長、体重、年齢）が含むことができる。非準拠のデータセットは、測定データセット、生データセット、詳細データセット、またはアクセスが許可される前に通常チェックを必要としないその他のデータを含むことができる。詳細データセットは、ローカルクライアントコンピュータ150および／またはリモートコンピュータサーバ160に実装されたアルゴリズムのセットに基づいて生成することができる。詳細データセットは、活動データ、睡眠データ、ストレスデータ、または被験者／患者の生体認証に関連する任意の同様の形式のデータを含むことができる。詳細データは、心拍数、心拍変動、血圧、脈圧、センサーなどによって測定された関連データ、およびそれらの任意の組み合わせなどが挙げられるがこれらに限定されない測定データまたは生データに基づいて生成することができる。
【００７０】
リモートコンピュータサーバ160は、プログラミング機能のセットを備えたAPIを使用して、準拠／非準拠データをローカルクライアントコンピュータ150に通信することができる。プログラミング機能は、Java、JavaScript、Python、ハイパーテキストマークアップ言語（HTML）などが挙げられるがこれらに限定されない様々なプログラミング言語に基づくことができる。
【００７１】
図8Aを参照する方法800のステップ802において、ローカルクライアントコンピュータ150は、第1のクライアントの公開鍵と秘密鍵のペア154aおよび第1のサーバの公開鍵と秘密鍵のペア164aを生成するために、リモートコンピュータサーバ160と協働して第1のトークン生成プロセス400／450を実行する。ステップ804において、ローカルクライアントコンピュータ150は、リモートコンピュータサーバ160から第1のサーバの公開鍵164a−1および第1のクライアントの秘密鍵154a−2を受信する。ステップ806において、ローカルクライアントコンピュータ150は、リモートコンピュータサーバ160に第1のデータまたは現在のデータセットを保存するために、リモートコンピュータサーバ160と協働して第1のデータ通信命令を実行する。ステップ808において、ローカルクライアントコンピュータ150は、ローカルデータベース152に保存された現在のデータセットを読み出す。現在のデータセットは、上記の実施形態で説明したように圧縮することができる。ステップ810において、ローカルクライアントコンピュータ150は、第1のセッション鍵を生成する。ステップ812において、ローカルクライアントコンピュータ150は、第1のセッション鍵を使用して現在のデータセットを暗号化する。ステップ814において、ローカルクライアントコンピュータ150は、第1のサーバの公開鍵164a−1を使用して第1のセッション鍵を暗号化する。ステップ816において、ローカルクライアントコンピュータ150は、暗号化された現在のデータセットおよび暗号化された第1のセッション鍵をリモートコンピュータサーバ160に送信する。
【００７２】
いくつかの実施形態では、現在のデータセットは、準拠データおよび非準拠データを含む。一実施形態では、データの現在のセットは、第1のセッション鍵、すなわち、準拠データを使用して暗号化され、非準拠データは、同じ第1のセッション鍵を使用して暗号化される。別の一実施形態では、準拠データおよび非準拠データは、異なるセッション鍵を使用して暗号化される。ローカルクライアントコンピュータ150は、準拠データを暗号化するための第1のセッション鍵Aと、非準拠データを暗号化するための第1のセッション鍵Bとを生成するであろう。
【００７３】
第1のクライアントの公開鍵と秘密鍵のペア154aおよび第1のサーバの公開鍵と秘密鍵のペア154bは、それらが1回使用に対してのみ有効である有効期限条件を有することができる。1回使用の有効期限条件は、新しいクライアントアカウント／プロファイル情報の保存、またはリモートコンピュータサーバ160上のデータへアクセスするための許可の要求など、一時的または1回使用の状況に適している場合がある。
【００７４】
ステップ818において、リモートコンピュータサーバ160は、第1のサーバの秘密鍵164a−2を使用して暗号化された第1のセッション鍵を復号化し、復号化された第1のセッション鍵を抽出する。ステップ820において、リモートコンピュータサーバ160は、復号化された第1のセッション鍵を使用して暗号化された現在のデータセットを復号化し、復号化された現在のデータセットを抽出する。ステップ822において、リモートコンピュータサーバ160は、第1のデータ通信命令に基づいて、現在のデータセットをサーバデータベース162に保存する。
【００７５】
クライアントは、その後、方法850を使用することなどによって、リモートコンピュータサーバ160から現在のデータセットおよび／または過去のデータセットを読み出したいと思う可能性がある。図8Bを参照すると、ステップ852において、ローカルクライアントコンピュータ150は、現在のデータセットおよび／または過去のデータセットにアクセスする許可を要求するために、リモートコンピュータサーバ160と協働して第2のデータ通信命令を実行する。現在のデータセットおよび／または過去のデータセットは、準拠／非準拠のデータを含むことができる。ステップ854において、リモートコンピュータサーバ160は、クライアントが準拠／非準拠データへのアクセスを許可されているかどうかを決定するクライアント許可レベルを決定する。
【００７６】
ステップ856において、リモートコンピュータサーバ160は、要求されたデータの全部または一部のクライアントアクセスレベルを限定するために含まれるクライアント資格情報のセットをチェックする。準拠／非準拠データの処理および普及の一部として、リモートコンピュータサーバ160は、クライアントの資格情報に従って、クライアントが要求および取得することを許可され得るデータ、データレコード、生データ、詳細データ、処理されたデータ、または前記データのいずれかの一部のどのフィールドを決定するかを判定および／またはレビューすることができる。その後、クライアントは準拠／非準拠データのすべてまたは一部を閲覧またはアクセスできるようになる。また、リモートコンピュータサーバ160は、事前定義された期間内に準拠／非準拠データにアクセスすることのみをクライアントに許可することができる。これにより、リモートコンピュータサーバ160は、不要なデータがサーバデータベース162のアクティブな記憶場所に配置されるのを監視および防止することができ、不要なデータは、サーバデータベース162の休止中の記憶場所に保存させることができる。
【００７７】
ステップ858において、リモートコンピュータサーバ160は、ステップ856からのクライアントの成功した許可に応答して、MACを生成する。MACは、圧縮することができる。ステップ860において、リモートコンピュータサーバ160は、第2のセッション鍵を生成する。ステップ862において、リモートコンピュータサーバ160は、第2のセッション鍵を使用してMACを暗号化する。ステップ864において、リモートコンピュータサーバ160は、第1のクライアント公開鍵154a−1を使用して第2のセッション鍵を暗号化する。ステップ866において、リモートコンピュータサーバ160は、暗号化されたMACおよび暗号化された第2のセッション鍵をローカルクライアントコンピュータ150に送信する。
【００７８】
ステップ868において、ローカルクライアントコンピュータ150は、第1のクライアントの秘密鍵154a−2を使用して暗号化された第2のセッション鍵を復号化し、復号化された第2のセッション鍵を抽出する。ステップ870において、ローカルクライアントコンピュータ150は、復号化された第2のセッション鍵を使用して暗号化されたMACを復号化し、復号化されたMACを抽出する。ステップ872において、ローカルクライアントコンピュータ150は、第2のデータ通信命令に基づいてMACを処理する。例えば、MACは、クライアントに準拠／非準拠データへのアクセスを要求可能にする。
【００７９】
さらに図8Cを参照すると、ステップ874において、ローカルクライアントコンピュータ150は、第2のクライアントの公開鍵と秘密鍵のペア154b、第2のサーバの公開鍵と秘密鍵のペア164b、およびクライアントトークンを生成するために、リモートコンピュータサーバ160と協働して第2のトークン生成プロセス400／450を実行する。クライアントが準拠／非準拠データにアクセスするには、第2のクライアントの公開鍵と秘密鍵のペア154b、第2のサーバの公開鍵と秘密鍵のペア164b、およびクライアントトークンが必要となる。準拠／非準拠データにアクセスする期間は、データの量および／または重要性に応じて事前に設定できる。第2のクライアントの公開鍵と秘密鍵のペア154b、第2のサーバの公開鍵と秘密鍵のペア164b、およびクライアントトークンは、それらが事前定義された期間のみ有効である有効期限条件を有することができる。事前定義された期間は2時間とすることができ、未知のユーザまたはクライアントが準拠／非準拠データにアクセスするのを防ぐのに役立つことができる。ステップ876において、ローカルクライアントコンピュータ150は、第2のサーバの公開鍵164b−1、第2のクライアントの秘密鍵154b−2、およびクライアントトークンをリモートコンピュータサーバ160から受信する。
【００８０】
ステップ878において、ローカルクライアントコンピュータ150は、リモートコンピュータサーバ160から準拠／非準拠データにアクセスして読み出すために、リモートコンピュータサーバ160と協働して第3のデータ通信命令を実行する。第3のデータ通信命令は、ローカルクライアントコンピュータ150／クライアントを識別するためのクライアントトークンを含むことができ、クライアントトークンは、クライアントが準拠／非準拠データへのアクセスおよび読み出しからログアウトされた後、事前定義された有効期間の間、アクティブのままでいることができる。リモートコンピュータサーバ160は、クライアントトークンの有効期限切れ時に、タイムアウトまたはログアウトメッセージをローカルクライアントコンピュータ150に送信することができる。
【００８１】
ステップ880において、リモートコンピュータサーバ160は、サーバデータベース162に保存された準拠／非準拠データを照会および読み出す。ステップ882において、リモートコンピュータサーバ160は、第3のセッション鍵を生成する。ステップ884において、リモートコンピュータサーバ160は、第3のセッション鍵を使用して、準拠／非準拠データを暗号化する。ステップ886において、リモートコンピュータサーバ160は、第2のクライアントの公開鍵154b−1を使用して第3のセッション鍵を暗号化する。ステップ888において、リモートコンピュータサーバ160は、暗号化された準拠／非準拠データおよび暗号化された第3のセッション鍵をローカルクライアントコンピュータ150に送信する。
【００８２】
一実施形態では、準拠データおよび非準拠データは、同じ第3のセッション鍵を使用して暗号化される。別の一実施形態では、準拠データおよび非準拠データは、異なるセッション鍵を使用して暗号化される。リモートコンピュータサーバ160は、準拠データを暗号化するための第3のセッション鍵Aと、非準拠データを暗号化するための第3のセッション鍵Bとを生成するであろう。
【００８３】
ステップ890において、ローカルクライアントコンピュータ150は、生成された第2のクライアントの秘密鍵154b−2を使用して暗号化された第3のセッション鍵を復号化し、復号化された第3のセッション鍵を抽出する。ステップ892において、ローカルクライアントコンピュータ150は、復号化された第3のセッション鍵を使用して暗号化された準拠／非準拠データを復号化し、復号化された準拠／非準拠データを抽出する。ステップ894において、ローカルクライアントコンピュータ150は、第3のデータ通信命令に基づいて、準拠／非準拠データをローカルデータベース152に保存する。
【００８４】
一実施形態では、ローカルクライアントコンピュータ150は、クライアントアプリケーション上で視覚化するために準拠／非準拠データを表示する。別の一実施形態では、ローカルクライアントコンピュータ150は、準拠／非準拠データを他のクライアントコンピュータ／デバイスに配布する。ローカルクライアントコンピュータ150は、暗号化された準拠／非準拠データを他のクライアントコンピュータ／デバイスに通信する前に、準拠／非準拠データを暗号化するための配布セッション鍵のセットを生成することができる。準拠／非準拠データは、準拠／非準拠データの1つ以上のパーティションに分割できる。パーティションは、ローカルデータベース152の別個の保存場所に保存することができる。パーティションは、同じ配布セッション鍵で暗号化することができるか、またはそれぞれのパーティションをその独自の配布セッション鍵で暗号化することができる。準拠／非準拠データまたはそのパーティションを暗号化するために使用される配布セッション鍵はまた、受信したデータを復号化するために他のクライアントコンピュータ／デバイスに通信される。
【００８５】
本明細書で説明される様々な実施形態は、暗号化および復号化のためにセキュリティキー140を使用することによって、ローカルクライアントコンピュータ150とリモートコンピュータサーバ160との間のデータ通信を保護することに関する。セキュリティキー140は、トークン生成プロセス400／450によって生成されたクライアントの公開鍵と秘密鍵のペア154とサーバの公開鍵と秘密鍵のペア164とを含む。図9Aは、リモートコンピュータサーバ160からローカルクライアントコンピュータ150に通信されたトークン生成プロセス400からのOAuth 2．0応答900を示している。応答900は、クライアントの秘密鍵154−2のテキスト文字列902およびサーバの公開鍵164−1のテキスト文字列904を示している。図9Bは、ローカルクライアントコンピュータ150からリモートコンピュータサーバ160に通信される暗号化された非準拠データの暗号文906を示し、データはセッション鍵を使用して暗号化される。図9Cは、セッション鍵を使用して復号化された非準拠データのプレーンテキスト908を示している。
【００８６】
いくつかの実施形態では、クライアントの公開鍵と秘密鍵のペア154とサーバの公開鍵と秘密鍵のペア164は、1回使用の有効期限条件を有する。有効期限条件はさらに、事前定義された有効期間を含むことができるので、1回使用は、事前定義された有効期間中に実行されなければならない。クライアントの公開鍵と秘密鍵のペア154とサーバの公開鍵と秘密鍵のペア164は、それらが使用されていなくても、事前定義された有効期間の後に自動的に期限切れになる。図9Dは、1回使用のクライアントの秘密鍵154−2のテキスト文字列910および1回使用のサーバの公開鍵164−1のテキスト文字列912を示している。1回使用の鍵は、クライアントアプリケーションの組み込みブラウザまたは別のインターネットブラウザがログインページを読み出して、クライアントプロファイルの閲覧および編集などの様々な機能を実行する場合など、1回使用の状況に適している場合がある。クライアントはブラウザを使用してデータ通信命令を実行し、関連する1回使用のキーを使用してデータを暗号化／復号化する。一例では、1回使用のサーバ公開鍵164−1は、リモートコンピュータサーバ160に送信される認証データを暗号化するためにローカルクライアントコンピュータ150によって使用される。認証データには、ユーザ名および／またはパスワード、またはパスワードを変更するための命令が含まれる。別の一例では、1回使用のクライアントの公開鍵154−1は、ローカルクライアントコンピュータ150に送信されてブラウザに表示されるプロファイルページを暗号化するために、リモートコンピュータサーバ160によって使用される。
【００８７】
本明細書に記載の様々な実施形態は、有利には、ユーザまたはクライアントが、リモートコンピュータサーバ160によって生成されるクライアントの公開鍵と秘密鍵のペア154およびサーバの公開鍵と秘密鍵のペア164を含むセキュリティキー140を使用することによって、ローカルクライアントコンピュータ150とリモートコンピュータサーバ160との間の安全なデータ通信を実行することを可能にする。これにより、データ通信プロセスを複雑にするセキュリティキーを提供するサードパーティのサーバが不要になる。ローカルクライアントコンピュータ150は、リモートコンピュータサーバ160からセキュリティキー140を要求し、必要なときはいつでも、リモートコンピュータサーバ160との安全なデータ通信を開始することができる。データ通信は、セキュリティキー140を使用して暗号化された新しいデータを保存するため、または過去のデータを読み出すためのものとすることができる。
【００８８】
医療／個人情報の例では、一部のデータはすべての場合に機密であり、クライアントのグループのみがアクセスできると想定することができるが、他の一部のデータは選択されたクライアントのみがアクセスできる。したがって、異なるクラスのデータは、異なるクライアントの選択によってのみアクセスできる。クライアント固有の公開鍵154−1を使用してデータを暗号化し、対応するクライアント固有の秘密鍵154−2を使用して暗号化されたデータを復号化することにより、異なるクライアントが異なるクラスのデータにアクセスできる。これにより、有利には、選択されたクライアントのみが選択されたクラスのデータにアクセスでき、関連する規制／ポリシーの範囲内で医療／個人情報を依然として維持しながら、それらに特定の変更を加えることなどの目的を可能にする。これにより、許可されていないデータへの不正アクセスが防止され、したがって医療／個人情報の誤った集合分析につながる可能性のある慎重に扱うべき医療／個人情報の改ざんが防止される。
【００８９】
図10は、本開示の実施形態に係るコンピュータ1000の技術的アーキテクチャを示すブロック図である。コンピュータ1000のいくつかの非限定的な例は、第1のコンピュータ110、第2のコンピュータ120、ローカルクライアントコンピュータ150、およびリモートコンピュータサーバ160である。コンピュータ1000は、プロセッサ／中央処理装置（CPU）1002、メモリデバイス1004、データベース1006、データ通信モジュール1008、およびセキュリティモジュール1010を含む。
【００９０】
プロセッサ1002は、メモリデバイス1004からプロセッサ1002がアクセスする命令、コード、コンピュータプログラム、および／またはスクリプトを実行する。プロセッサ1002は、そのような操作またはステップを実行するための適切な論理、回路、および／またはインターフェースを含む。プロセッサ1002のいくつかの非限定的な例には、特定用途向け集積回路（ASIC）プロセッサ、縮小命令セットコンピューティング（RISC）プロセッサ、複合命令セットコンピューティング（CISC）プロセッサ、フィールドプログラマブルゲートアレイ（FPGA）などが含まれる。1つのプロセッサ1002のみが示されているが、複数のプロセッサ1002が存在してもよい。したがって、命令は、プロセッサ1002によって実行されるものとして説明することができるが、命令は、同時に、連続して、または他の方法で1つまたは複数のプロセッサ1002によって（例えば、マルチコア構成で）実行することができる。
【００９１】
メモリデバイス1004は、ストレージデバイス（フラッシュメモリ、ディスクドライブ、またはメモリカードなど）、読み取り専用メモリ（ROM）、およびランダムアクセスメモリ（RAM）を含むことができる。メモリデバイス1004は、本開示の様々な実施形態に係る方法の様々な操作またはステップを実行するために、プロセッサ1002によって動作可能な非一時的な命令を保存する。メモリデバイス1004は、コンピュータ可読記憶媒体および／または非一時的なコンピュータ可読媒体と呼ぶことができる。非一時的なコンピュータ可読媒体には、一時的な伝搬信号自体だけを除いて、すべてのコンピュータ可読媒体が含まれる。
【００９２】
データベース1006は、データを保存および／または読み出すのに適した任意のコンピュータ操作ハードウェアである。データベース1006のいくつかの非限定的な例は、データベース112、122、152、および162である。データベース1006は、ハードディスクおよび／または独立ディスクの冗長アレイ（RAID）構成のソリッドステートディスクなどの複数のストレージユニットを含み得る。データベース1006は、ストレージエリアネットワーク（SAN）および／またはネットワークアタッチトストレージ（NAS）システムを含むことができるが、これらに限定されない。データ通信モジュール1008は、他のコンピュータ1000と通信するように構成される。例えば、ローカルクライアントコンピュータ150のデータ通信モジュール1008は、リモートコンピュータサーバ160のデータ通信モジュール1008とデータを通信または交換することができる。
【００９３】
セキュリティモジュール1010は、本明細書で説明される様々な対称／非対称暗号化アルゴリズムに従ってセキュリティキー140を生成するように構成される。さらに、セキュリティモジュール1010は、セキュリティキー140を使用してデータの暗号化および復号化を実行するように構成される。セキュリティキー140のいくつかの非限定的な例は、セッション鍵、第1の公開鍵と秘密鍵のペア、第2の公開鍵と秘密鍵のペア、クライアントの公開鍵と秘密鍵のペア154、およびサーバの公開鍵と秘密鍵のペア164である。セキュリティモジュール1010は、データを暗号化するためのセッション鍵を生成し、また、トークン生成プロセス400／450を介して公開鍵と秘密鍵のペアを生成する。
【００９４】
前述の詳細な説明では、コンピュータ間のデータ通信を保護するためのシステムおよび方法に関する本開示の実施形態が、提供された図を参照して説明されている。本明細書の様々な実施形態の説明は、本開示の具体的なまたは特定の表現のみを呼び出すか、または限定することを意図するものではなく、単に本開示の非限定的な例を示すことを意図する。本開示は、先行技術に関連する言及された問題および問題点の少なくとも1つに対処するのに役立つ。本開示のいくつかの実施形態のみが本明細書に開示されているが、本開示を考慮して当業者には、開示された実施形態に本開示の範囲から逸脱することなく様々な変更および／または修正を行うことができることが明らかであろう。したがって、本開示の範囲ならびに以下の特許請求の範囲は、本明細書に記載の実施形態に限定されない。
【図１Ａ】
2021516491.tif 000003
【図１Ｂ】
2021516491.tif 000004
【図１Ｃ】
2021516491.tif 000005
【図２Ａ】
2021516491.tif 000006
【図２Ｂ】
2021516491.tif 000007
【図３Ａ】
2021516491.tif 000008
【図３Ｂ】
2021516491.tif 000009
【図４Ａ】
2021516491.tif 000010
【図４Ｂ】
2021516491.tif 000011
【図４Ｃ】
2021516491.tif 000012
【図４Ｄ】
2021516491.tif 000013
【図５】
2021516491.tif 000014
【図６Ａ】
2021516491.tif 000015
【図６Ｂ】
2021516491.tif 000016
【図７Ａ】
2021516491.tif 000017
【図７Ｂ】
2021516491.tif 000018
【図８Ａ】
2021516491.tif 000019
【図８Ｂ】
2021516491.tif 000020
【図８Ｃ】
2021516491.tif 000021
【図９Ａ】
2021516491.tif 000022
【図９Ｂ】
2021516491.tif 000023
2021516491.tif 000024
2021516491.tif 000025
【図９Ｃ】
2021516491.tif 000026
【図９Ｄ】
2021516491.tif 000027
【図１０】
2021516491.tif 000028
【手続補正書】
【提出日】令和2年1月29日(2020.1.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第1のコンピュータと第2のコンピュータとの間のデータ通信を保護するための方法であって、前記方法は、前記第1および第2のコンピュータによって実行され、
前記第1のコンピュータから前記第2のコンピュータへ第1のデータを通信するための第1のデータ通信命令を、前記第1および第2のコンピュータによって協働的に実行することと、
前記第1のコンピュータによって第1のセッション鍵を生成することと、
前記第1のセッション鍵を使用して前記第1のデータを前記第1のコンピュータによって暗号化することと、
第1の公開鍵を使用して前記第1のセッション鍵を前記第1のコンピュータによって暗号化することであって、前記第1の公開鍵は第1の秘密鍵とペアにされ、前記第1の公開鍵と秘密鍵のペアは、前記第1のコンピュータまたは第2のコンピュータによって前記第2のコンピュータのために生成される、暗号化することと、
前記暗号化された第1のデータおよび前記暗号化された第1のセッション鍵を前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記第1の秘密鍵を使用して前記暗号化された第1のセッション鍵を前記第2のコンピュータによって復号化することと、
前記復号化された第1のセッション鍵を使用して、前記暗号化された第1のデータを前記第2のコンピュータによって復号化することと、
前記第1のデータ通信命令に基づいて前記復号化された第1のデータを前記第2のコンピュータによって処理することとを含み、
前記第1の公開鍵または第1の秘密鍵は、前記第1のコンピュータによって生成されたトークンセッション鍵を用いて暗号化および復号化され、前記トークンセッション鍵は、前記第1のコンピュータから前記第2のコンピュータに通信され、
前記第1の公開鍵と秘密鍵のペアが前記第1のコンピュータによって生成される場合、前記第1の秘密鍵は前記トークンセッション鍵を使用して前記第1のコンピュータによって暗号化され、前記暗号化された第1の秘密鍵は、前記第1のコンピュータから前記第2のコンピュータに通信され、前記暗号化された第1の秘密鍵は、前記トークンセッション鍵を使用して前記第2のコンピュータによって復号化され、
前記第1の公開鍵と秘密鍵のペアが前記第2のコンピュータによって生成される場合、前記第1の秘密鍵は前記トークンセッション鍵を使用して前記第2のコンピュータによって暗号化され、前記暗号化された第1の公開鍵は、前記第2のコンピュータから前記第1のコンピュータに通信され、前記暗号化された第1の公開鍵は、前記トークンセッション鍵を使用して前記第1のコンピュータによって復号化される方法。
【請求項２】
前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
前記第1のコンピュータによって前記トークンセッション鍵を生成することと、
前記トークンセッション鍵を使用して、トークン要求を前記第1のコンピュータによって暗号化することと、
前記トークンセッション鍵と前記暗号化されたトークン要求を前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化されたトークン要求を前記第2のコンピュータによって復号化することと、
前記第2のコンピュータ用におよび前記第2のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
前記トークンセッション鍵を使用して、前記第1の公開鍵を前記第2のコンピュータによって暗号化することと、
前記暗号化された第1の公開鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化された第1の公開鍵を前記第1のコンピュータによって復号化することとを含む、請求項1に記載の方法
【請求項３】
前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
前記第1のコンピュータによって前記トークンセッション鍵を生成することと、
前記第2のコンピュータのために前記第1のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
前記トークンセッション鍵を使用して、前記第1の秘密鍵を前記第1のコンピュータによって暗号化することと、
前記トークンセッション鍵と前記暗号化された第1の秘密鍵を前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化された第1の秘密鍵を前記第2のコンピュータによって復号化することとを含む、請求項1に記載の方法。
【請求項４】
前記第1の公開鍵と秘密鍵のペアは、有効期限条件が満たされる前に暗号化および復号化に有効であるように、有効期限条件を有する、請求項1〜3のいずれか一項に記載の方法。
【請求項５】
前記有効期限条件は、事前定義された有効な期間である、請求項4に記載の方法。
【請求項６】
前記有効期限条件は、事前定義された使用回数である、請求項4または5に記載の方法。
【請求項７】
前記トークンセッション鍵の有効期限後に前記有効期限条件が満たされる、請求項4〜6のいずれか一項に記載の方法。
【請求項８】
前記第1のコンピュータはローカルクライアントコンピュータであり、前記第2のコンピュータはリモートコンピュータサーバである、請求項1〜7のいずれか一項に記載の方法。
【請求項９】
前記第1のデータ通信命令は、前記第1のデータを前記リモートコンピュータサーバに保存することに関する、請求項8に記載の方法。
【請求項１０】
前記第1のコンピュータは、リモートコンピュータサーバであり、前記第2のコンピュータは、ローカルクライアントコンピュータである、請求項1〜7のいずれか一項に記載の方法。
【請求項１１】
前記第1のデータ通信命令は、前記リモートコンピュータサーバからの前記第1のデータの読み出しに関する、請求項10に記載の方法。
【請求項１２】
前記第2のコンピュータから前記第1のコンピュータへ第2のデータを通信するための第2のデータ通信命令を、前記第1および第2のコンピュータによって協働的に実行することと、
前記第2のコンピュータによって第2のセッション鍵を生成することと、
前記第2のセッション鍵を使用して、前記第2のデータを前記第2のコンピュータによって暗号化することと、
第2の公開鍵を使用して、前記第2のセッション鍵を前記第2のコンピュータによって暗号化することであって、前記第2の公開鍵は第2の秘密鍵とペアにされ、前記第2の公開鍵と秘密鍵のペアは、前記第1のコンピュータまたは第2のコンピュータによって前記第1のコンピュータのために生成される、暗号化することと、
前記暗号化された第2のデータおよび前記暗号化された第2のセッション鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
前記第2の秘密鍵を使用して、前記暗号化された第2のセッション鍵を前記第1のコンピュータによって復号化することと、
前記復号化された第2のセッション鍵を使用して、前記暗号化された第2のデータを前記第1のコンピュータによって復号化することと、
前記第2のデータ通信命令に基づいて前記復号化された第2のデータを前記第1のコンピュータによって処理することとをさらに含み、
前記第2の公開鍵または第2の秘密鍵は、前記第1のコンピュータによって生成されたトークンセッション鍵を用いて暗号化および復号化され、前記トークンセッション鍵は、前記第1のコンピュータから前記第2のコンピュータに通信され、
前記第2の公開鍵と秘密鍵のペアが前記第1のコンピュータによって生成される場合、前記第2の公開鍵は前記トークンセッション鍵を使用して前記第1のコンピュータによって暗号化され、前記暗号化された第2の公開鍵は、前記第1のコンピュータから前記第2のコンピュータに通信され、前記暗号化された第2の公開鍵は、前記トークンセッション鍵を使用して前記第2のコンピュータによって復号化され、
前記第2の公開鍵と秘密鍵のペアが前記第2のコンピュータによって生成される場合、前記第2の秘密鍵は前記トークンセッション鍵を使用して前記第2のコンピュータによって暗号化され、前記暗号化された第2の秘密鍵は、前記第2のコンピュータから前記第1のコンピュータに通信され、前記暗号化された第2の秘密鍵は、前記トークンセッション鍵を使用して前記第1のコンピュータによって復号化される、請求項1に記載の方法。
【請求項１３】
前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
前記第1のコンピュータによって前記トークンセッション鍵を生成することと、
前記トークンセッション鍵を使用して、トークン要求を前記第1のコンピュータによって暗号化することと、
前記トークンセッション鍵と前記暗号化されたトークン要求を前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化されたトークン要求を前記第2のコンピュータによって復号化することと、
前記第2のコンピュータ用におよび前記第2のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
前記第1のコンピュータ用に前記第2のコンピュータによって前記第2の公開鍵と秘密鍵のペアを生成することと、
前記トークンセッション鍵を使用して、前記第1の公開鍵および前記第2の秘密鍵を前記第2のコンピュータによって暗号化することと、
前記暗号化された第1の公開鍵および前記暗号化された第2の秘密鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化された第1の公開鍵および前記暗号化された第2の秘密鍵を前記第1のコンピュータによって復号化することとを含む、請求項12に記載の方法。
【請求項１４】
前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
前記第1のコンピュータによって前記トークンセッション鍵を生成することと、
前記第2のコンピュータのために前記第1の公開鍵と秘密鍵のペアを前記第1のコンピュータによって生成することと、
前記第1のコンピュータ用のおよび前記第1のコンピュータによって前記第2の公開鍵と秘密鍵のペアを生成することと、
前記トークンセッション鍵を使用して、前記第1の秘密鍵および前記第2の公開鍵を前記第1のコンピュータによって暗号化することと、
前記トークンセッション鍵と前記暗号化された第1の秘密鍵と前記暗号化された第2の公開鍵とを前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化された第1の秘密鍵および前記暗号化された第2の公開鍵を前記第2のコンピュータによって復号化することとを含む、請求項12に記載の方法。
【請求項１５】
前記第1および第2の公開鍵と秘密鍵のペアのそれぞれは、有効期限条件が満たされる前に暗号化および復号化に有効であるように、有効期限条件を有する、請求項12〜14のいずれか一項に記載の方法。
【請求項１６】
前記有効期限条件は、事前定義された有効な期間である、請求項15に記載の方法。
【請求項１７】
前記有効期限条件は、事前定義された使用回数である、請求項15または16に記載の方法。
【請求項１８】
前記トークンセッション鍵の有効期限後に前記有効期限条件が満たされる、請求項15〜17のいずれか一項に記載の方法。
【請求項１９】
前記第1のコンピュータはローカルクライアントコンピュータであり、前記第2のコンピュータはリモートコンピュータサーバである、請求項12〜18のいずれか一項に記載の方法。
【請求項２０】
前記第1のデータ通信命令は、前記第1のデータを前記リモートコンピュータサーバに保存することに関し、前記第2のデータ通信命令は、前記第2のデータを前記リモートコンピュータサーバから読み出すことに関する、請求項19に記載の方法。
【請求項２１】
前記第1のデータは、前記ローカルクライアントコンピュータのユーザの認証データを含み、前記第2のデータは、前記リモートコンピュータサーバによる前記認証データの認証の成功に応答して前記リモートコンピュータサーバによって生成されるメッセージ認証コード（MAC）を含む、請求項19に記載の方法。
【請求項２２】
前記第1のデータは、医療情報に関連する測定データを含む、請求項1〜21のいずれか一項に記載の方法。
【請求項２３】
互いに通信可能に接続された第1のコンピュータおよび第2のコンピュータを含み、前記第1および第2のコンピュータ間のデータ通信を保護するために構成されたコンピュータシステムであって、前記第1および第2のコンピュータは、
前記第1のコンピュータから前記第2のコンピュータへ第1のデータを通信するための第1のデータ通信命令を、前記第1および第2のコンピュータによって協働的に実行することと、
前記第1のコンピュータによって第1のセッション鍵を生成することと、
前記第1のセッション鍵を使用して前記第1のデータを前記第1のコンピュータによって暗号化することと、
第1の公開鍵を使用して、前記第1のセッション鍵を前記第1のコンピュータによって暗号化することであって、前記第1の公開鍵は第1の秘密鍵とペアにされ、前記第1の公開鍵と秘密鍵のペアは、前記第1のコンピュータまたは第2のコンピュータによって前記第2のコンピュータのために生成される、暗号化することと、
前記暗号化された第1のデータおよび前記暗号化された第1のセッション鍵を前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記第1の秘密鍵を使用して、前記暗号化された第1のセッション鍵を前記第2のコンピュータによって復号化することと、
前記復号化された第1のセッション鍵を使用して、前記暗号化された第1のデータを前記第2のコンピュータによって復号化することと、
前記第1のデータ通信命令に基づいて前記復号化された第1のデータを前記第2のコンピュータによって処理することとを含むステップを実行するために構成され、
前記第1の公開鍵または第1の秘密鍵は、前記第1のコンピュータによって生成されたトークンセッション鍵を用いて暗号化および復号化され、前記トークンセッション鍵は、前記第1のコンピュータから前記第2のコンピュータに通信され、
前記第1の公開鍵と秘密鍵のペアが前記第1のコンピュータによって生成される場合、前記第1の秘密鍵は前記トークンセッション鍵を使用して前記第1のコンピュータによって暗号化され、前記暗号化された第1の秘密鍵は、前記第1のコンピュータから前記第2のコンピュータに通信され、前記暗号化された第1の秘密鍵は、前記トークンセッション鍵を使用して前記第2のコンピュータによって復号化され、
前記第1の公開鍵と秘密鍵のペアが前記第2のコンピュータによって生成される場合、前記第1の公開鍵は前記トークンセッション鍵を使用して前記第2のコンピュータによって暗号化され、前記暗号化された第1の公開鍵は、前記第2のコンピュータから前記第1のコンピュータに通信され、前記暗号化された第1の公開鍵は、前記トークンセッション鍵を使用して前記第1のコンピュータによって復号化されるコンピュータシステム。
【請求項２４】
前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは
前記第1のコンピュータによって前記トークンセッション鍵を生成することと、前記トークンセッション鍵を使用してトークン要求を前記第1のコンピュータによって暗号化することと、
前記トークンセッション鍵と前記暗号化されたトークン要求を前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化されたトークン要求を前記第2のコンピュータによって復号化することと、
前記第2のコンピュータ用におよび前記第2のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
前記トークンセッション鍵を使用して、前記第1の公開鍵を前記第2のコンピュータによって暗号化することと、
前記暗号化された第1の公開鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化された第1の公開鍵を前記第1のコンピュータによって復号化することとを含む、請求項23に記載のシステム。
【請求項２５】
前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
前記第1のコンピュータによって前記トークンセッション鍵を生成することと、
前記第2のコンピュータのために前記第1のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
前記トークンセッション鍵を使用して前記第1の秘密鍵を前記第1のコンピュータによって暗号化することと、
前記トークンセッション鍵と前記暗号化された第1の秘密鍵を前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化された第1の秘密鍵を前記第2のコンピュータによって復号化することとを含む、請求項23に記載のシステム。
【請求項２６】
前記第1のコンピュータはローカルクライアントコンピュータであり、前記第2のコンピュータはリモートコンピュータサーバである、請求項23〜25のいずれか一項に記載のシステム。
【請求項２７】
前記第1のデータ通信命令は、前記第1のデータを前記リモートコンピュータサーバに保存することに関する、請求項26に記載のシステム。
【請求項２８】
前記第1のコンピュータはリモートコンピュータサーバであり、前記第2のコンピュータはローカルクライアントコンピュータである、請求項23〜26のいずれか一項に記載のシステム。
【請求項２９】
前記第1のデータ通信命令は、前記リモートコンピュータサーバからの前記第1のデータの読み出しに関する、請求項28に記載のシステム。
【請求項３０】
前記ステップは、
前記第2のコンピュータから前記第1のコンピュータへ第2のデータを通信するための第2のデータ通信命令を、前記第1および第2のコンピュータによって協働的に実行することと、
前記第2のコンピュータによって第2のセッション鍵を生成することと、
前記第2のセッション鍵を使用して前記第2のデータを前記第2のコンピュータによって暗号化することと、
第2の公開鍵を使用して前記第2のセッション鍵を前記第2のコンピュータによって暗号化することであって、前記第2の公開鍵は第2の秘密鍵とペアにされ、前記第2の公開鍵と秘密鍵のペアは、前記第1のコンピュータまたは第2のコンピュータによって前記第1のコンピュータのために生成される、暗号化することと、
前記暗号化された第2のデータおよび前記暗号化された第2のセッション鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
前記第2の秘密鍵を使用して前記暗号化された第2のセッション鍵を前記第1のコンピュータによって復号化することと、
前記復号化された第2のセッション鍵を使用して、前記暗号化された第2のデータを前記第1のコンピュータによって復号化することと、
前記第2のデータ通信命令に基づいて前記復号化された第2のデータを前記第1のコンピュータによって処理することとをさらに含み、
前記第2の公開鍵または第2の秘密鍵は、前記第1のコンピュータによって生成されたトークンセッション鍵を用いて暗号化および復号化され、前記トークンセッション鍵は、前記第1のコンピュータから前記第2のコンピュータに通信され、
前記第2の公開鍵と秘密鍵のペアが前記第1のコンピュータによって生成される場合、前記第2の公開鍵は前記トークンセッション鍵を使用して前記第1のコンピュータによって暗号化され、前記暗号化された第2の公開鍵は、前記第1のコンピュータから前記第2のコンピュータに通信され、前記暗号化された第2の公開鍵は、前記トークンセッション鍵を使用して前記第2のコンピュータによって復号化され、
前記第2の公開鍵と秘密鍵のペアが前記第2のコンピュータによって生成される場合、前記第2の秘密鍵は前記トークンセッション鍵を使用して前記第2のコンピュータによって暗号化され、前記暗号化された第2の秘密鍵は、前記第2のコンピュータから前記第1のコンピュータに通信され、前記暗号化された第2の秘密鍵は、前記トークンセッション鍵を使用して前記第1のコンピュータによって復号化される、請求項23に記載のシステム。
【請求項３１】
前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
前記第1のコンピュータによって前記トークンセッション鍵を生成することと、
前記トークンセッション鍵を使用してトークン要求を前記第1のコンピュータによって暗号化することと、
前記トークンセッション鍵と前記暗号化されたトークン要求を前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化されたトークン要求を前記第2のコンピュータによって復号化することと、
前記第2のコンピュータ用におよび前記第2のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
前記第1のコンピュータ用に前記第2のコンピュータによって前記第2の公開鍵と秘密鍵のペアを生成することと、
前記トークンセッション鍵を使用して、前記第1の公開鍵および前記第2の秘密鍵を前記第2のコンピュータによって暗号化することと、
前記暗号化された第1の公開鍵および前記暗号化された第2の秘密鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化された第1の公開鍵および前記暗号化された第2の秘密鍵を前記第1のコンピュータによって復号化することとを含む、請求項30に記載のシステム。
【請求項３２】
前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
前記第1のコンピュータによって前記トークンセッション鍵を生成することと、
前記第2のコンピュータのために前記第1のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
前記第1のコンピュータ用のおよび前記第1のコンピュータによって前記第2の公開鍵と秘密鍵のペアを生成することと、
前記トークンセッション鍵を使用して前記第1の秘密鍵および前記第2の公開鍵を前記第1のコンピュータによって暗号化することと、
前記トークンセッション鍵と前記暗号化された第1の秘密鍵と前記暗号化された第2の公開鍵とを前記第1のコンピュータから前記第2のコンピュータに送信することと、
前記トークンセッション鍵を使用して、前記暗号化された第1の秘密鍵および前記暗号化された第2の公開鍵を前記第2のコンピュータによって復号化することとを含む、請求項30に記載のシステム。
【請求項３３】
前記第1のコンピュータはローカルクライアントコンピュータであり、前記第2のコンピュータはリモートコンピュータサーバである、請求項30から32のいずれか一項に記載のシステム。
【請求項３４】
前記第1のデータ通信命令は、前記第1のデータを前記リモートコンピュータサーバに保存することに関する、前記第2のデータ通信命令は、前記第2のデータを前記リモートコンピュータサーバから読み出すことに関する、請求項33に記載のシステム。
【請求項３５】
前記第1のデータは、前記ローカルクライアントコンピュータのユーザの認証データを含み、前記第2のデータは、前記リモートコンピュータサーバによる前記認証データの認証の成功に応答して前記リモートコンピュータサーバによって生成されるメッセージ認証コード（MAC）を含む、請求項33に記載のシステム。
【国際調査報告】
2021516491.tif 000029
2021516491.tif 000030