(57)【要約】  本明細書に記載の一実施形態では、クライアントとサーバとの間の安全な通信チャネルを確立するシステム及び方法が提供される。動作中、クライアントは、第１の動的メッセージを含むサービス要求を生成し、第１の動的メッセージに基づいてクライアントを認証するサーバに対して、第１のサービス要求を伝送し、第１の動的メッセージに応答して、サーバから第２の動的メッセージを受信する。クライアントは、第２の動的メッセージに基づいて、サーバを認証し、量子鍵配布プロセスを用いて、クライアントとサーバとの間で共有される秘密鍵を取り決める。次いで、クライアント及びサーバは、秘密鍵の少なくとも第１の部分に基づいて、安全な通信チャネルを確立する。
2019517184.tif 000002
【特許請求の範囲】
【請求項１】
クライアントとサーバとの間の安全な通信チャネルを確立するコンピュータ実施方法であって、
前記クライアントによって、第１の動的メッセージを含む第１のサービス要求を生成することと、
前記第１の動的メッセージに基づいて前記クライアントを認証する前記サーバに対して、前記第１のサービス要求を伝送することと、
前記第１の動的メッセージに応答して、前記サーバから第２の動的メッセージを受信することと、
前記第２の動的メッセージに基づいて前記サーバを認証することと、
量子鍵配布プロセスを用いて、前記クライアントと前記サーバとの間で共有される秘密鍵を取り決めることと、
前記秘密鍵の少なくとも第１の部分に基づいて、前記クライアントと前記サーバとの間の安全な通信チャネルを確立することと、
を含む方法。
【請求項２】
前記安全な通信チャネルを確立することが、データ伝送用の対称暗号化／復号鍵として、前記秘密鍵の前記第１の部分を用いることを含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記第１の動的メッセージが、
前記クライアントの識別情報（ＩＤ）、
前記クライアントのＩＤ及びクライアント固有鍵に基づいて計算された第１のハッシュ関数であって、前記クライアント固有鍵が、前記クライアントと前記サーバとの間で前もって共有されている、第１のハッシュ関数、及び
乱数、
の少なくとも１つを含む、請求項１に記載のコンピュータ実施方法。
【請求項４】
前記乱数が、前記クライアント固有鍵を用いて暗号化される、請求項３に記載のコンピュータ実施方法。
【請求項５】
前記第２の動的メッセージが、前記乱数の第２のハッシュ関数、又は前記サーバのＩＤと前記乱数との連結の第２のハッシュ関数を含む、請求項３に記載のコンピュータ実施方法。
【請求項６】
前記サーバを認証することが、
少なくとも前記乱数に基づいて、第３のハッシュ関数を計算することと、
前記計算した第３のハッシュ関数を前記第２の動的メッセージに含まれる前記第２のハッシュ関数と比較することと、
を含む、請求項５に記載のコンピュータ実施方法。
【請求項７】
前記秘密鍵の第２の部分を抽出することと、
前記秘密鍵の第２の部分を用いて、前記クライアント固有鍵を更新することと、
をさらに含む、請求項３に記載のコンピュータ実施方法。
【請求項８】
クライアントデバイスとサーバデバイスとの間の安全な通信チャネルを確立する前記クライアントデバイスであって、
第１の動的メッセージを含むサービス要求を生成するように構成されたサービス要求生成部と、
前記第１の動的メッセージに基づいて前記クライアントデバイスを認証する前記サーバデバイスに対して、前記第１の動的メッセージを伝送するように構成されたサービス要求トランスミッタと、
前記第１の動的メッセージに応答して、前記サーバデバイスから第２の動的メッセージを受信するように構成されたレシーバと、
前記第２の動的メッセージに基づいて前記サーバデバイスを認証するように構成された認証モジュールと、
前記クライアントと前記サーバとの間の秘密鍵を配布するように構成された量子鍵配布モジュールと、
前記安全な通信チャネル用の対称暗号化／復号鍵として使用される前記秘密鍵の少なくとも第１の部分を抽出するように構成された鍵管理モジュールと、
を含むクライアントデバイス。
【請求項９】
前記クライアントデバイスが、少なくとも前記クライアントの識別情報及びクライアント固有鍵に基づいて、第１のハッシュ関数を計算するように構成されたハッシュモジュールをさらに含み、前記クライアント固有鍵が、前記クライアントと前記サーバとの間で前もって共有されており、前記第１の動的メッセージが、
前記クライアントＩＤ、
前記計算した第１のハッシュ関数、及び
乱数、
の少なくとも１つを含む、請求項８に記載のクライアントデバイス。
【請求項１０】
前記第２の動的メッセージが、前記乱数の第２のハッシュ関数、又は前記サーバのＩＤと前記乱数との連結の第２のハッシュ関数を含み、前記認証モジュールが、
少なくとも前記乱数に基づいて、第３のハッシュ関数を計算することと、
前記計算した第３のハッシュ関数を前記第２の動的メッセージに含まれる前記第２のハッシュ関数と比較することと、
によって、前記サーバデバイスを認証する、請求項９に記載のクライアントデバイス。
【請求項１１】
前記鍵管理モジュールが、
前記秘密鍵の第２の部分を抽出することと、
前記秘密鍵の前記第２の部分を用いて、前記クライアント固有鍵を更新することと、
を行うようにさらに構成される、請求項８に記載のクライアントデバイス。
【請求項１２】
クライアントとサーバとの間の安全な通信チャネルを確立するコンピュータ実施方法であって、
前記サーバによって、第１の動的メッセージを含むサービス要求を受信することと、
前記第１の動的メッセージに基づいて、前記クライアントを認証することと、
前記第１の動的メッセージに含まれる情報に基づいて、第２の動的メッセージを生成することと、
前記第２の動的メッセージに基づいて前記サーバを認証する前記クライアントに対して、前記第２の動的メッセージを送信することと、
量子鍵配布プロセスを用いて、前記クライアントと前記サーバとの間で共有される秘密鍵を取り決めることと、
前記秘密鍵の少なくとも第１の部分に基づいて、前記クライアントと前記サーバとの間の安全な通信チャネルを確立することと、
を含む方法。
【請求項１３】
前記安全な通信チャネルを確立することが、データ伝送用の対称暗号化／復号鍵として、前記秘密鍵の前記第１の部分を用いることを含む、請求項１２に記載のコンピュータ実施方法。
【請求項１４】
前記第１の動的メッセージが、
前記クライアントの識別情報（ＩＤ）、
前記クライアントのＩＤ及びクライアント固有鍵に基づいて計算された第１のハッシュ関数であって、前記クライアント固有鍵が、前記クライアントと前記サーバとの間で前もって共有されている、第１のハッシュ関数、及び
乱数、
の少なくとも１つを含む、請求項１３に記載のコンピュータ実施方法。
【請求項１５】
前記クライアントを認証することが、
前記第１の動的メッセージに含まれる前記クライアントＩＤに基づいて、ローカルに保存されたクライアント固有鍵を識別するために鍵データベースをルックアップすることと、
前記ローカルに保存されたクライアント固有鍵に基づいて、第２のハッシュ関数を計算することと、
前記計算した第２のハッシュ関数を前記第１の動的メッセージに含まれる前記第１のハッシュ関数と比較することと、
を含む、請求項１４に記載のコンピュータ実施方法。
【請求項１６】
前記第２の動的メッセージを生成することが、前記乱数の第３のハッシュ関数、又は前記サーバのＩＤと前記乱数との連結の第３のハッシュ関数を計算することを含む、請求項１４に記載のコンピュータ実施方法。
【請求項１７】
前記秘密鍵の第２の部分を抽出することと、
前記秘密鍵の前記第２の部分を用いて、前記ローカルに保存されたクライアント固有鍵を更新することと、
をさらに含む、請求項１４に記載のコンピュータ実施方法。
【請求項１８】
クライアントデバイスとサーバとの間の安全な通信チャネルを確立する前記サーバデバイスであって、
前記クライアントデバイスから、第１の動的メッセージを含むサービス要求を受信するように構成されたサービス要求レシーバと、
前記第１の動的メッセージに基づいて前記クライアントデバイスを認証するように構成された認証モジュールと、
前記第１の動的メッセージに含まれる情報に基づいて、第２の動的メッセージを生成するように構成されたメッセージ生成部と、
前記第２の動的メッセージに基づいて前記サーバデバイスを認証する前記クライアントデバイスに対して、前記第２の動的メッセージを伝送するように構成されたトランスミッタと、
前記クライアントデバイスと前記サーバデバイスとの間の秘密鍵を配布するように構成された量子鍵配布モジュールと、
前記安全な通信チャネル用の対称暗号化／復号鍵として使用される前記秘密鍵の少なくとも第１の部分を抽出するように構成された鍵管理モジュールと、
を含む、サーバデバイス。
【請求項１９】
前記第１の動的メッセージが、
前記クライアントの識別情報（ＩＤ）、
前記クライアントのＩＤ及びクライアント固有鍵に基づいて計算された第１のハッシュ関数であって、前記クライアント固有鍵が、前記クライアントと前記サーバとの間で前もって共有される、第１のハッシュ関数、及び
乱数、
の少なくとも１つを含む、請求項１８に記載のサーバデバイス。
【請求項２０】
前記クライアントを認証する間に、前記認証モジュールが、
前記第１の動的メッセージに含まれる前記クライアントＩＤに基づいて、ローカルに保存されたクライアント固有鍵を識別するために鍵データベースをルックアップすることと、
前記ローカルに保存されたクライアント固有鍵に基づいて、第２のハッシュ関数を計算することと、
前記計算した第２のハッシュ関数を前記第１の動的メッセージに含まれる前記第１のハッシュ関数と比較することと、
を行うように構成される、請求項１９に記載のサーバデバイス。
【請求項２１】
前記第２の動的メッセージを生成する間に、前記メッセージ生成部が、前記乱数の第３のハッシュ関数、又は前記サーバのＩＤと前記乱数との連結の第３のハッシュ関数を計算するように構成される、請求項１９に記載のサーバデバイス。
【請求項２２】
前記鍵管理モジュールが、
前記秘密鍵の第２の部分を抽出することと、
前記秘密鍵の前記第２の部分を用いて、前記ローカルに保存されたクライアント固有鍵を更新することと、
をさらに行うように構成される、請求項１９に記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
分野
この開示は、一般に、安全なデータ伝送技術に関する。より詳細には、本開示は、量子状態に基づいた安全なデータ伝送システムに関する。
【背景技術】
【０００２】
関連技術
インターネットを含むコンピュータネットワーク上でのデータ通信及び電気通信の指数関数的成長と共に、これらのコンピュータネットワーク上で伝送される個人情報を盗聴及び他の攻撃から保護するための技術も絶えず向上及び進化してきた。検索要求、検索結果、及び電子商取引に関係した金融情報を含む、インターネット上で伝送される様々なユーザデータを保護するために、様々なデータ暗号化技術が使用されてきた。これらの技術には、対称及び非対称暗号化技術の両方が含まれ、使用されてきた。対称暗号化アルゴリズムは、一般的に、非対称暗号化アルゴリズムよりも効率的である。しかし、通信関係者間の暗号化／復号鍵の配布は、多少のセキュリティリスクをもたらし得る。一方、非対称暗号化（公開鍵暗号化とも呼ばれる）には、データの暗号化及び復号に異なる鍵（公開及び秘密）が使用されるため、鍵配布問題がない。公開鍵暗号化は、多くの場合、対称暗号化鍵の安全な交換を目的として使用される。公開鍵暗号システムは、現在のところ効率的解法が認められない数学問題に基づいた暗号アルゴリズムに依存するため（特に、特定の整数因数分解、離散対数、及び楕円曲線関係に固有のもの）、より安全であると考えられる。
【０００３】
安全なインターネットプロトコルの１つであるＨＴＴＰＳ（Hypertext Transfer Protocol Secure）は、インターネットベースの商業活動において重要な役割を担う。それは、例えば、ワールドワイドウェブ上の支払取引又は銀行業務に使用されてきた。従来のＨＴＴＰＳの設定では、データ伝送の前に、サーバ側とクライアント側とが、データの交換のために使用される暗号化スキーム及び鍵について合意する。クライアントは、プレマスタ鍵を生成し、サーバの公開鍵を用いてプレマスタ鍵を暗号化し、暗号化したプレマスタ鍵をサーバに送信する。次いで、サーバ及びクライアントの両方が、プレマスタ鍵からマスタ鍵（セッション鍵としても知られている）を生成することができる。次いで、クライアントとサーバとの間のデータフローを暗号化するために、セッション鍵を使用することができる。
【０００４】
ＨＴＴＰＳを含む現在の安全なデータ伝送技術は、単純な中間者攻撃及び盗聴攻撃などの一般的な攻撃に対する一定の保護を提供することができるが、それらは、今なお、他の種類の攻撃に弱い場合がある。例えば、ＨＴＴＰＳは、より高度な中間者攻撃及び様々なトラフィック解析攻撃に弱い可能性がある。さらに、クラウドコンピューティング及び量子計算によってもたらされる計算能力の進歩は、総当たり攻撃が成功する可能性を向上させた。例えば、攻撃者は、盗聴により、公開鍵暗号化マスタ鍵を取得して、マスタ鍵を取得するために総当たり攻撃を仕掛けることができる。その結果、そのマスタ鍵を使用した、その後のあらゆるデータ通信が危険にさらされる。
【０００５】
さらに、現在の鍵配布プロセスは、関与する非対称暗号化アルゴリズムが複雑であることにより、時間がかかる場合がある。一例としてＨＴＴＰＳプロトコルを使用することによって、非対称暗号化／復号のみに使用される計算量が、トランスポートレイヤーセキュリティ（ＴＬＳ）又はセキュアソケットレイヤー（ＳＳＬ）に必要な計算の９０％を占め得る。これは、ＨＴＴＰＳチャネルを確立するための応答時間の遅さの原因となり得る。
【発明の概要】
【課題を解決するための手段】
【０００６】
概要
本明細書に記載の一実施形態では、クライアントとサーバとの間の安全な通信チャネルを確立するシステム及び方法が提供される。動作中、クライアントは、第１の動的メッセージを含むサービス要求を生成し、第１の動的メッセージに基づいてクライアントを認証するサーバに対して、第１のサービス要求を伝送し、第１の動的メッセージに応答して、サーバから第２の動的メッセージを受信する。クライアントは、第２の動的メッセージに基づいて、サーバを認証し、量子鍵配布プロセスを用いて、クライアントとサーバとの間で共有される秘密鍵を取り決める。次いで、クライアント及びサーバは、秘密鍵の少なくとも第１の部分に基づいて、安全な通信チャネルを確立する。
【０００７】
本実施形態のある変形形態では、安全な通信チャネルを確立することは、データ伝送用の対称暗号化／復号鍵として、秘密鍵の第１の部分を用いることを含む。
【０００８】
本実施形態のある変形形態では、第１の動的メッセージは、クライアントの識別情報（ＩＤ）、クライアントのＩＤ及びクライアントとサーバとの間で前もって共有されたクライアント固有鍵に基づいて計算された第１のハッシュ関数、及び乱数の少なくとも１つを含む。
【０００９】
さらなる変形形態では、クライアントは、クライアント固有鍵を用いて、乱数を暗号化する。
【００１０】
さらなる変形形態では、第２の動的メッセージは、乱数の第２のハッシュ関数、又はサーバのＩＤと乱数との連結の第２のハッシュ関数を含む。
【００１１】
さらなる変形形態では、サーバを認証することは、少なくとも乱数に基づいて、第３のハッシュ関数を計算することと、計算した第３のハッシュ関数を、第２の動的メッセージに含まれる第２のハッシュ関数と比較することとを含む。
【００１２】
さらなる変形形態では、クライアントはさらに、秘密鍵の第２の部分を抽出し、秘密鍵の第２の部分を用いて、クライアント固有鍵を更新する。
【００１３】
本明細書に記載のある実施形態では、クライアントとサーバとの間の安全な通信チャネルを確立するシステム及び方法が提供される。動作中、サーバは、第１の動的メッセージを含むサービス要求をクライアントから受信し、第１の動的メッセージに基づいてクライアントを認証する。サーバは、第１の動的メッセージに含まれる情報に基づいて、第２の動的メッセージを生成し、第２の動的メッセージに基づいてサーバを認証するクライアントに対して、第２の動的メッセージを送信する。サーバは、量子鍵配布プロセスを用いて、クライアントとサーバとの間で共有される秘密鍵を取り決める。次いで、クライアント及びサーバは、データ伝送用の対称暗号化／復号鍵として、秘密鍵の少なくとも第１の部分を用いることによって、安全な通信チャネルを確立する。
【図面の簡単な説明】
【００１４】
【図１】従来のＨＴＴＰＳセッションを確立するプロセスを表す時間状態図を示す。
【図２】本発明の一実施形態による、システム初期化のプロセスを表す時間状態図を示す。
【図３Ａ】本発明の一実施形態による、クライアントがサーバを認証するプロセスを表す時間状態図を示す。
【図３Ｂ】本発明の一実施形態による、サーバがクライアントを認証するプロセスを表す時間状態図を示す。
【図３Ｃ】本発明の一実施形態による、クライアントとサーバとの間の相互認証のプロセスを表す時間状態図を示す。
【図４】本発明の一実施形態による、サーバとクライアントとの間の安全な通信チャネルを確立するプロセスを表すフローチャートを示す。
【図５】本発明の一実施形態による、クライアントとサーバとの間で秘密ストリングを取り決める例示的プロセスを表す図を示す。
【図６】本発明の一実施形態による、例示的クライアントデバイスを表す図を示す。
【図７】本発明の一実施形態による、例示的サーバデバイスを表す図を示す。
【図８】本明細書に記載の幾つかの実施形態による、開示の盗聴検出技術を実施するための例示的クライアント−サーバネットワーク環境を示す。
【図９】本明細書に記載の幾つかの実施形態による、それを用いて本技術の幾つかの実施態様が実施される電子システムを概念的に示す。
【発明を実施するための形態】
【００１５】
表１は、本明細書に記載の一実施形態による、２つの異なる量子状態の集合の使用に基づいた、２つの例示的な力学的量測定スキームを示す。
【００１６】
表ＩＩは、本明細書に記載の一実施形態による、クライアントＩＤとクライアント固有鍵との間のマッピングを示す。
【００１７】
図面では、同様の参照符号が、同じ図面要素を指す。
【００１８】
詳細な説明
以下の説明は、当業者が実施形態を製造及び使用できるようにするために示されるとともに、ある特定の適用例及びそれの要件の文脈で提供される。開示の実施形態に対する様々な変更形態が、当業者には容易に明白となり、本開示の精神及び範囲から逸脱することなく、本明細書で定義される一般原理を他の実施形態及び適用例に適用することができる。従って、本発明は、示される実施形態に限定されるのではなく、本明細書に開示される諸原理及び特徴と一致した最も広い範囲と合致するものとする。
【００１９】
概要
本開示では、一方が通常の光信号であり、他方が量子光信号である、二種類の光信号が導入される。通常の光信号は、古典力学の法則が当てはまる従来の通信システムにおいて使用することができ、一方、量子光信号は、量子力学の法則が当てはまる量子通信システムにおいて使用することができる。量子光信号は、一般的に、弱いコヒーレントパルス（理想的には、各パルスに１光子）で構成することができる。一方、通常の光信号における光パルスは、多くの場合、さらに多くの光子を有し、従って、はるかに高い強度を有する。本開示では、通常の光信号は、量子光信号と比べてより高い強度に起因して、高強度光信号とも呼ぶことができる。
【００２０】
量子通信においては、情報は、量子状態に基づいて伝送され、データセキュリティは、不確定性原理、量子状態測定の原理、及び量子複製不可能定理などの量子力学の法則によって保証することができる。量子暗号が、無条件のデータ伝送セキュリティ及び盗聴者に対する検出能を達成できることが示されている。
【００２１】
本明細書に開示する様々な実施形態では、サーバとクライアントとの間の安全な通信チャネルを確立するためのシステム及び方法が提供される。より詳細には、非対称鍵交換に必要とされる計算量を減らすため、及びセキュリティを向上させるために、サーバ及びクライアントは、ハッシュベースの技術を用いることによって（例えば、サーバ及びクライアントだけに知られているクライアント又はノード固有鍵のハッシュ値を計算することによって）互いを認証することができる。認証後に、サーバ及びクライアントは、量子鍵交換プロセスを用いて、対称セッション鍵を交換することができる。次いで、クライアントとサーバとの間に安全なチャネルを確立するために、対称セッション鍵を使用することができる。対称セッション鍵に加えて、量子鍵交換プロセス中に交換される情報には、クライアント及びサーバを認証するために後で使用することができる、新しいノード固有鍵も含めることができる。従来の鍵交換プロセス中に使用される非対称暗号化／復号を排除することにより、且つ量子鍵交換を使用することによって、安全な通信チャネルを確立する開示のプロセスは、計算的により効率的でありながら、より優れたセキュリティを提供することができる。
【００２２】
背景
基本量子論
量子物理学によれば、微視的世界のある物理量は、連続的に変化することはできないが、ある離散値をとり、２つの隣接する離散値間の差は、「量子」と呼ばれ、例えば、光子は、光の単一量子である。
【００２３】
量子状態
古典力学の法則が当てはまる従来の通信では、デジタル情報は、ビットとして表すことができ、各ビットは、２つの状態、例えば「０」及び「１」、又は「高」及び「低」電圧を有することができる。それに対して、古典力学の法則が当てはまる量子通信では、情報は、一般的に、量子情報の単位である量子ビット（キュービット）として表される。各キュービットは、２つの基本状態、｜０＞又は＜−＞及び｜１＞又は
【数１】
2019517184.tif 000003
を有することができる。この場合、２つの量子状態｜０＞及び｜１＞は、｛｜０＞，｜１＞｝として表すことができる量子状態基底を形成する。
【００２４】
さらに、量子量は、係数α、βそれぞれとの２つの基本状態の重ね合わせによって得られた混合状態をとることもできる。例えば、量子基底｛｜０＞，｜１＞｝を使用した場合、混合状態は、
｜φ＞＝α｜０＞＋β｜１＞
で表すことができる。例えば、混合量子状態基底｛｜＋＞，｜−＞｝は、以下の式：
【数２】
2019517184.tif 000004
を用いて、基本量子状態｜０＞／＜−＞及び｜１＞／
【数３】
2019517184.tif 000005
を重ね合わせることによって生成することができる。なお、量子状態表現の上記２つの基底では、状態｜０＞及び｜１＞は、互いに直交し、状態｜＋＞及び｜−＞は、互いに直交する。
【００２５】
量子測定の原理
量子力学では、「測定基底」とも呼ばれる上記量子状態を用いて、ある力学量を測定することができる。例えば、各力学量は、エルミート演算子（又はエルミート行列）によって表すことができる。このような力学量を測定する際に、その測定結果は、この力学量に関するエルミート演算子の固有値（又は「特性値」）に対応する。測定後に、測定された量子状態は、取得した固有値に対応する固有状態（又は「固有ベクトル」）に崩壊する。表１は、本明細書に記載の一実施形態による、２つの異なる量子状態の集合の使用に基づいた、２つの例示的な力学量測定スキームを示す。
【００２６】
【表１】
2019517184.tif 000006
【００２７】
例えば、量子状態基底｛｜０＞，｜１＞｝を使用して、量子状態｜φ＞＝α｜０＞＋β｜１＞（但し、｜α｜２＋｜β｜２＝１）を測定する場合に、｜α｜２の確率で測定値１を取得し（ここでは、測定後に、量子状態は、｜０＞に崩壊する）、及び｜β｜２の確率で測定値−１を取得し（ここでは、測定後に、量子状態は、｜１＞に崩壊する）。
【００２８】
別の例では、量子状態基底｛｜０＞，｜１＞｝を使用して、量子状態｜０＞を測定する場合に、確率１で状態｜０＞を取得する。同様に、量子状態基底｛｜＋＞，｜−＞｝を使用して、量子状態｜＋＞を測定する場合に、確率１で状態｜＋＞を取得する。
【００２９】
さらに、量子状態基底｛｜０＞，｜１＞｝を使用して、量子状態｜＋＞を測定する場合に、状態｜０＞又は状態｜１＞をランダムに取得する。同様に、量子状態基底｛｜＋＞，｜−＞｝を使用して、状態｜０＞を測定する場合に、状態｜＋＞又は状態｜−＞をランダムに取得する。
【００３０】
従来のＨＴＴＰＳ
図１は、従来のＨＴＴＰＳセッションを確立するプロセスを表す時間状態図を示す。動作中、クライアント１０２が、ＨＴＴＰＳ要求をサーバ１０４に送信する（動作１０６）。例えば、ユーザは、ウェブブラウザのアドレスバーに、ＨＴＴＰＳウェブサイトのアドレスを打ち込むことができる。ＨＴＴＰＳウェブサイトは、デジタル証明書（例えば、セキュアソケットレイヤー（ＳＳＬ）証明書）を、クライアント１０２のウェブブラウザに伝送する（動作１０８）。ＳＳＬ証明書は、トラストオーソリティから取得されたもの、又はサーバ１０４によって生成されたものでもよい。自己生成又は自己署名されたデジタル証明書は、プロセスが継続するためには、クライアント１０２によって検証される必要がある場合がある。デジタル証明書は、安全なセッションを開始するのに必要な公開鍵を含むことができる。デジタル証明書は、認証局の名称、有効期限などを含む、他の有用な情報も含むことができる。公開鍵及びそれに対応する秘密鍵は、ＲＳＡなどの様々な非対称アルゴリズムを用いて生成することができる。
【００３１】
デジタル証明書を受信すると、クライアント１０２は、デジタル証明書を検証する（動作１１０）。デジタル証明書が無効であれば、クライアント１０２は、そのブラウザにエラーメッセージを表示することができる。デジタル証明書が有効であれば、クライアント１０２は、ランダム鍵（例えば、乱数）を生成し、デジタル証明書に含まれる公開鍵を用いて、生成したランダム鍵を暗号化する（動作１１２）。次いで、クライアント１０２は、暗号化したランダム鍵をサーバ１０４に送信し（動作１１４）、次いで、サーバ１０４は、自身の秘密鍵を用いてランダム鍵を取得することができる（動作１１６）。ランダム鍵は、クライアント１０２とサーバ１０４との間の共有秘密鍵となる。次いで、クライアント及びサーバは、ランダム鍵を用いて、互いに通信することができる（動作１１８）。例えば、サーバは、ランダム鍵を用いて暗号化した内容を送信することができ、クライアントは、同じランダム鍵を用いて、その内容を復号することができる。
【００３２】
現在のＨＴＴＰＳ技術には、一定のセキュリティ上の欠陥がある。例えば、それは、中間者（ＭＩＴＭ）攻撃に対して弱い場合がある。なお、デジタル証明書が検証されない場合、クライアントブラウザは、多くの場合、警告メッセージを表示し、継続するか否かをユーザに選択させる。ユーザの多くは、警告を無視し、ＳＳＬ中間者攻撃を受ける。さらに、クライアントとサーバとの間の共有秘密鍵（すなわち、ランダム鍵）の交換は、公開鍵暗号化機構によって保護されるが、クラウドコンピューティング又は量子計算の進歩により、古典的暗号スキームの安全性が低下した。例えば、ショアのアルゴリズムは、公開鍵の暗号スキーム（例えば、ＲＳＡ）を破る能力を示し、グローバーのアルゴリズムは、対称暗号鍵を総当たり攻撃で見つけるために使用される計算量を大幅に減少させた。
【００３３】
セキュリティ上の欠陥に加えて、現在のＨＴＴＰＳは、計算量が多く、且つ時間がかかることにも苦しむ（特に、ランダム鍵の非対称暗号化及び復号）。安全なチャネルを確立するための、より効率的及び安全な方法が必要である。
【００３４】
仮定
一部の実施形態では、開示の安全なデータ伝送技術は、以下の仮定に基づく。古典的チャネルは、ＨＴＴＰＳチャネルなどの安全なチャネルの従来の要件を満たすと仮定する。例えば、データ通信を開始する前に、クライアント及びサーバのそれぞれが、自身の公開及び秘密鍵ペアと、関連する識別証明書とを有すると仮定され得る。
【００３５】
初期化中、クライアントは、サーバから、ノード固有鍵を取得することができる。このプロセスは、非対称暗号化／復号を含むことができる。例えば、クライアントＡは、自身の公開鍵証明書を有した要求をサーバに送信することができる。サーバは、証明書を検証し、クライアントＡに特別に割り当てられた鍵（これは、クライアントＡの公開鍵を用いて暗号化することができる）をクライアントＡに伝送し返すことができる。同様に、クライアントＢは、クライアントＢに特別に割り当てられた鍵を取得するために、自身の公開鍵証明書を有した要求をサーバに送信することができる。サーバは、クライアントと、クライアント又はノード固有鍵との間のマッピングを保持することができる。セキュリティをさらに向上させるために、クライアント又はノード固有鍵を動的に更新することができる。例えば、サーバは、周期的に、又はランダムな間隔で、更新したクライアント固有鍵をクライアントに送ってもよい。代替的に、クライアントは、周期的に、又はランダムな間隔で、更新したクライアント固有鍵を要求することもできる。
【００３６】
さらに、各通信関係者（例えば、サーバ及びクライアント）は、軽量量子状態基底ライブラリをインストールする。量子状態基底ライブラリは、差別化のためにラベル付けすることができる、それぞれが直交する量子状態を含む複数の量子状態基底を保存する。例えば、直交基底｛｜０＞，｜１＞｝を１とラベル付けする場合、状態｜０＞は、１．１とラベル付けすることができ、状態｜１＞は、１．２とラベル付けすることができ、直交基底｛｜＋＞，｜−＞｝を２とラベル付けすると、状態｜＋＞は、２．１とラベル付けすることができ、及び状態｜−＞は、２．２とラベル付けすることができるなどである。一部の実施形態では、量子状態基底ライブラリ内の各量子状態基底は、一意の量子状態基底識別子（ＱＩＤ）によって識別することができる。
【００３７】
一部の実施形態では、量子状態は、所定のラベル付けスキームに基づいて、クライアント及びサーバの両方の側で、周期的に同期してラベル付けすることができる。例えば、ｘが、ある量子状態の現在の識別子を表し、ｙが、次のサービス要求に関する同じ量子状態の識別子を表す場合、ある推論規則を用いて、ｙをｘから推論することができる。例えば、推論規則は、ｙ＝２ｘ、若しくはｙ＝２＋ｘでもよく、又はクライアントとサーバとの間の認証プロセスの前に、クライアントとサーバとの間で、他の規則の取り決め及び同意を行うことができる。一部の実施形態では、開示の動的パスワード認証技術に照らして、クライアントは、サーバによって伝送される動的情報を測定するための測定基底として、量子状態基底の量子状態を使用することができ、一方サーバは、同じ量子状態基底を使用して、動的情報を符号化することができる。
【００３８】
ハッシュベース及び量子増強安全データ伝送
一部の実施形態では、開示の安全なデータ伝送技術は、暗号化された安全な通信チャネルなどの、古典的ＨＴＴＰＳ通信によって使用される特定のセキュリティ対策を含むことができる。しかし、認証及び鍵交換のために公開鍵証明書を使用する代わりに、認証プロセスは、今やハッシュベースの認証プロセスを含み、鍵交換は、量子鍵交換プロセスを含む。クライアント用のノード固有鍵を確立するシステムの初期化中を除き、サーバとクライアントとの間の後続の通信では、非対称アルゴリズムは全く必要とされない。
【００３９】
図２は、本発明の一実施形態による、システム初期化のプロセスを表す時間状態図を示す。動作中、クライアント２０２は、クライアント初期化要求をサーバ２０４に送信する（動作２０６）。この要求には、クライアント２０２を認証するために使用することができるデジタル証明書が含まれる。クライアントのデジタル証明書は、クライアント２０２の公開鍵も含むことができる。
【００４０】
クライアント初期化要求を受信すると、サーバ２０４は、クライアントのデジタル証明書を検証する（動作２０８）。クライアントのデジタル証明書が無効であれば、サーバ２０４は、エラーメッセージ又は警告をクライアント２０２に送信することができ、その要求を破棄する。クライアントのデジタル証明書が有効であれば、サーバ２０４は、クライアント２０２の公開鍵を用いて暗号化されたストリングを送信することによって、クライアント初期化要求に応答することができる（動作２１０）。このストリングは、後に、クライアント２０２のクライアント固有鍵として機能する。つまり、サーバ２０４は、同じストリングを他の何れのクライアントにも送信しない。サーバ２０４は、クライアント２０２と、それのクライアント固有鍵との間のマッピングを鍵データベースに保存することができる（動作２１２）。例えば、鍵データベースは、以下に示すような、各クライアントの識別情報（ＣＩＤ）によってインデックスが付けられた表を含むことができる。
【００４１】
【表２】
2019517184.tif 000007
【００４２】
一部の実施形態では、サーバ２０４は、クライアント２０２に対する応答に、サーバ自体のデジタル証明書を含めることもできる。サーバ２０４から応答を受信すると、クライアント２０２は、サーバのデジタル証明書を検証する（動作２１４）。サーバのデジタル証明書が無効であれば、クライアント２０２は、これ以上の通信を中止してもよい。サーバのデジタル証明書が有効であれば、クライアント２０２は、自身の対応する秘密鍵を用いて、サーバ２０４からの応答に含まれたクライアント固有鍵を復号することができる（動作２１６）。次いで、クライアント２０２は、クライアント固有鍵を保存することができ、システム初期化を完了する（動作２１８）。
【００４３】
システムが初期化されると（すなわち、一旦クライアントがサーバからクライアント固有鍵を取得すると）、クライアント及びサーバは、このようなクライアント固有鍵を用いて、互いを認証することができる。図３Ａは、本発明の一実施形態による、クライアントがサーバを認証するプロセスを表す時間状態図を示す。動作中、クライアント３０２は、ID_Cで表現されるクライアント３０２の識別情報（ＩＤ）を平文で含む認証要求をサーバ３０４に送信することができる（動作３０６）。認証要求を受信すると、サーバ３０４は、IDC_Keyと表現される、クライアント３０２に特別に割り当てられた鍵を取得するために、自身の鍵データベースでルックアップを行うことができ（動作３０８）、自身のハッシュ関数（例えば、暗号ハッシュ関数）であるhash（IDC_Key）を計算することができる（動作３１０）。なお、ハッシュ関数を計算する方法は、以前に、サーバ３０４とクライアント３０２との間で合意がなされている。次いで、サーバ３０４は、認証要求に対する応答として、計算したハッシュ関数をクライアント３０２に送り返すことができる（動作３１２）。この応答を受信すると、クライアント３０２は、自身のローカルに保存されたクライアント固有鍵の同じハッシュ関数を計算することができ（動作３１４）、その計算したハッシュ関数を、サーバ３０４から受信したハッシュ関数と比較する（動作３１６）。それらが一致すれば、クライアント３０２は、サーバ３０４を成功裏に認証することができる。そうでなければ、サーバ３０４の認証は、失敗である。任意選択的に、クライアント３０２は、認証結果をサーバ３０４に送り返すことができる（動作３１８）。
【００４４】
なお、IDC_Keyのハッシュ関数の計算及び送信に加えて、サーバ３０４は、サーバ３０４の認証のためにクライアント３０２が使用することができる追加情報を送信することもできる。例えば、サーバは、クライアント固有鍵のハッシュ関数と共に、サーバ自体の識別情報（ID_S）を送信してもよい。一部の実施形態では、サーバは、２つのストリングの連結である、（ID_S, IDC_Key）のハッシュ関数を計算し、｛ID_S, hash(ID_S, IDC_Key)｝をクライアントに送信することができる。次いで、クライアントは、受信したID_S及び自身のローカルに保存されたIDC_Keyを使用して、hash(ID_S, IDC_Key)を計算し、その計算したハッシュ関数を、ユーザによって送信されたものと比較することができる。
【００４５】
サーバ認証に加えて、クライアントを認証するために、サーバによって、クライアント固有鍵も使用することができる。図３Ｂは、本発明の一実施形態による、サーバがクライアントを認証するプロセスを表す時間状態図を示す。動作中、クライアント３０２は、クライアント固有鍵及び任意選択的にクライアントＩＤに基づいて、ハッシュ関数を計算することができる（動作３２２）。例えば、ハッシュ関数は、hash(IDC_Key)又はhash(ID_C, IDC_Key)でもよい。クライアント３０２は、自身のクライアントＩＤを平文で含有するメッセージ及びハッシュ関数をサーバ３０４に送信することができる（動作３２４）。例えば、メッセージは、｛ID_C, hash(ID_C, IDC_Key)｝でもよい。
【００４６】
このようなメッセージを受信すると、サーバ３０４は、受信したクライアントＩＤ（ID_C）に基づいて、自身の鍵データベースで、クライアント３０２に割り当てられたクライアント固有鍵のルックアップを行うことができ（動作３２６）、ルックアップ結果及び任意選択的に受信したクライアントＩＤに基づいて、ハッシュ関数を計算することができる（動作３２８）。クライアント３０２とサーバ３０４との間の合意に応じて、サーバ３０４は、hash(ID_C, IDC_Key)又はhash(IDC_Key)を計算してもよい。次いで、サーバ３０４は、その計算したハッシュ関数を、クライアント３０２から受信したハッシュ関数と比較することができる（動作３３０）。それらが一致すれば、サーバ３０４は、クライアント３０２を成功裏に認証することができる。そうでなければ、クライアント３０２の認証は、失敗である。任意選択的に、サーバ３０４は、認証結果をクライアント３０２に送り返すことができる（動作３３２）。
【００４７】
一部の実施形態では、安全なチャネルを確立する前に、サーバ及びクライアントは、サーバによって割り当てられたクライアント固有鍵を用いて互いを認証する必要がある。図３Ｃは、本発明の一実施形態による、クライアントとサーバとの間の相互認証のプロセスを表す時間状態図を示す。
【００４８】
動作中、クライアント３０２は、クライアントＩＤ（ID_C）及びクライアント固有鍵（IDC_Key）に基づいて、ハッシュ関数を計算することができる（動作３４２）。クライアント３０２は、動的ストリング（ｒ）を生成し、クライアント固有鍵を用いて、動的ストリングを暗号化することもできる（動作３４４）。暗号化メッセージは、EnIDC_Key(r)と書くことができる。動的ストリングｒは、ランダムに、又は所定のアルゴリズムを用いて生成することができる。ｒは、認証動作毎に変化するので、プレイバック攻撃を防ぐことができる。クライアント３０２は、平文のクライアントＩＤ、ハッシュ関数、及び暗号化動的ストリングをサーバ３０４に送信することができる（動作３４６）。例えば、クライアント３０２は、動的メッセージ｛ID_C, hash(ID_C, IDC_Key), EnIDC_Key(r)｝をサーバ３０４に送信することができる。
【００４９】
動的メッセージをクライアント３０２から受信すると、サーバ３０４は、受信したクライアントＩＤ（ID_C）に基づいて、自身の鍵データベースにおいて、クライアント３０２に割り当てられたクライアント固有鍵のルックアップを行うことができ（動作３４８）、ルックアップ結果及び任意選択的に受信したクライアントＩＤに基づいてハッシュ関数を計算することができる（動作３５０）。次いで、サーバ３０４は、その計算したハッシュ関数を、クライアント３０２から受信したハッシュ関数と比較することができる（動作３５２）。それらが一致すれば、サーバ３０４は、クライアント３０２を成功裏に認証することができ、そうでなければ、クライアント３０２の認証は、失敗である。
【００５０】
サーバ３０４は、IDC_Keyを使用して、受信した暗号化メッセージEnIDC_Key(r)を復号することによって、動的ストリングを取得することができ（動作３５４）、サーバの識別情報（ID_S）及び動的ストリングに基づいて、ハッシュ関数を生成することができる（動作３５６）。ハッシュ関数は、hash(ID_S, r)として生成することができる（ここで、（ID_S, r）は、サーバのＩＤ及び動的ストリングの連結である）。次いで、サーバ３０４は、平文のサーバの識別情報、及びハッシュ関数をクライアント３０２に送信することができる（動作３５８）。例えば、サーバ３０４は、動的メッセージ｛ID_S, hash(ID_S, r)｝をクライアント３０２に送信することができる。ある代替実施形態では、サーバ３０４は、単に、｛hash(r)｝をクライアント３０２に送信してもよい。
【００５１】
サーバ３０４からメッセージを受信すると、クライアント３０２は、受信したサーバＩＤ及び以前に生成した動的ストリングｒに基づいて、ハッシュ関数（例えば、hash(ID_S, r)）を計算することができ（動作３６０）、計算したハッシュ関数を、クライアント３０２から受信したハッシュ関数と比較することができる（動作３６２）。それらが一致すれば、クライアント３０２は、サーバ３０４を成功裏に認証することができ、それによって、相互認証を完了する。そうでなければ、サーバ３０４の認証は、失敗である。一部の実施形態では、任意選択的に、クライアント３０２は、認証結果をサーバ３０４に送信することができる（動作３６４）。
【００５２】
一部の実施形態では、セキュリティをさらに確実にするために、動作３５６において、サーバ３０４は、ID_S及び動的ストリングｒから導出された値に基づいて、ハッシュ関数を生成してもよい。例えば、サーバ３０４は、hash(ID_S, r + n)（ここでは、ｎは、クライアント３０２と３０４との間で同期して更新することができる動的シード値である）を生成することができる。つまり、ｎは、クライアント３０２とサーバ３０４との間で共有される秘密である。例えば、ｎは、クライアント３０２とサーバ３０４との間の交換の回数でもよい。シード値ｎの同期更新に関するさらなる詳細は、後に説明する。サーバ３０４が、hash(ID_S, r + n)をクライアント３０２に送信する場合、クライアント３０２は、自身のローカルに保存された動的ストリングｒ及びシード値ｎを使用して、hash(ID_S, r + n)を生成する必要があり、生成したハッシュ関数を、受信したハッシュ関数と比較する。
【００５３】
公開鍵証明書の交換に基づいた従来の認証と比較して、図３Ａ〜３Ｃに示されたもののような新しい認証スキームでは、もはや公開鍵証明書を必要としない。サーバが、別の安全なチャネルを介してクライアント固有鍵をクライアントに送信することができる場合、サーバ及びクライアントのどちらも、公開鍵証明書を取得及び／又は保持する必要がない。認証局（ＣＡ）からデジタル証明書を取得するのに必要とされるコスト及び複雑さを考慮すると、この新しい認証スキームは、セキュリティを損なうことなく、コストを大幅に減少させることができる。
【００５４】
クライアントとサーバとの間の相互認証の後に、クライアント及びサーバは、安全な通信のために使用することができる対称鍵を交換することができる。非対称暗号化／復号を使用することなく、対称鍵の秘密性を保証するために、一部の実施形態では、量子鍵配布スキームを使用して、クライアントとサーバとの間で対称鍵を配布することができ、それによって、安全な通信チャネルの確立を促進する。図４は、本発明の一実施形態による、サーバとクライアントとの間の安全な通信チャネルを確立するプロセスを表すフローチャートを示す。
【００５５】
動作中、クライアント及びサーバは、サーバがクライアントを認証すること、クライアントがサーバを認証すること、又はその両方を含むことができる認証プロセスを行うことができる（動作４０２）。認証プロセスは、図３Ａ、３Ｂ、又は３Ｃに示されるものと類似してもよい。認証が失敗すると、プロセスは停止する。認証の成功後に、クライアント及びサーバは、量子鍵配布スキームを用いて、秘密ストリングを取り決めることができる（動作４０４）。Bennett-Brassard-84（BB84）又はEkert-91（E91）プロトコルに基づいたスキームを含む（但し、それらに限定されない）様々な量子鍵配布スキームを、秘密ストリングを配布するために使用することができる。一部の実施形態では、クライアント及びサーバのそれぞれが、量子鍵配布プロセスを用いて以前に取り決められた量子鍵を含有した量子鍵プールを以前に確立している場合、動作４０４は、任意選択でもよい。代わりに、クライアント及びサーバは、量子鍵プールから、秘密ストリングとして使用される量子鍵を同期して取得することができる。
【００５６】
次いで、サーバは、ビットセットを含むことができる秘密ストリングから、クライアントとサーバとの間の後続の安全な通信のための対称鍵として使用することができる第１のビットサブセットを抽出することができる（動作４０６）。クライアントとサーバとの間の安全な通信チャネルを確立するために使用することができる対称鍵に加えて、秘密ストリングから、第２のビットサブセットも抽出する（例えば、サーバによって）ことができる（動作４０８）。この第２のビットセットは、以前にサーバによってクライアントに割り当てられたクライアント固有鍵を置換／更新するために使用することができる。サーバは、第１及び第２のサブセットの抽出基準（例えば、ビットの数及びビットの位置）をクライアントに伝達することにより、クライアントが、秘密ストリングから同じビットサブセットを抽出することが可能となる（動作４１０）。クライアントが、抽出基準を決定し、それをサーバに送信することも可能である。代替的に、クライアントとサーバとの間で、抽出基準を事前に確立することができ、この場合は抽出基準を伝達する必要がない。例えば、クライアント及びサーバは、対称鍵として使用するために、秘密ストリングから最初のｎビットを抽出し、更新クライアント固有鍵として使用するために後続のｍビットを抽出することを合意してもよい。代替的に、クライアント及びサーバは、更新クライアント固有鍵として使用するために秘密ストリングから最初のｍビットを抽出し、対称鍵として使用するために後続のｎビットを抽出することを合意してもよい。
【００５７】
対称鍵及び更新クライアント固有鍵の抽出後に、クライアント及びサーバのそれぞれは、対称鍵及び更新クライアント固有鍵を保存する（動作４１２）。より具体的には、サーバは、自身の鍵データベースに、この特定のクライアントに関する更新クライアント固有鍵を保存することができる。更新クライアント固有鍵は、後に、クライアント及びサーバが、新しい安全通信セッションを開始する際に、認証目的で使用することができる。次いで、クライアント及びサーバは、暗号化／復号鍵として対称鍵を使用して、互いに通信することを開始することができる（動作４１４）。
【００５８】
図５は、本発明の一実施形態による、クライアントとサーバとの間で秘密ストリングを取り決める例示的プロセスを表す図を示す。動作中、クライアント５０２は、量子制御シーケンスとして知られるランダムバイナリストリングを生成することができる（動作５０６）。クライアント５０２は、プレインストールされた量子状態基底ライブラリから、量子状態基底の集合を選択することができ、各選択した量子状態基底に対して、長さ値を割り当てる（動作５０８）。一部の実施形態では、選択された量子状態基底の長さ値の合計は、量子制御シーケンスの長さに等しい。例えば、選択された量子状態基底の量子状態基底識別子（ＱＩＤ）を、連続的にＱＩＤ１、ＱＩＤ２、…、ＱＩＤｎと表示することができ、それらに対応する長さ値を、ｌ１、ｌ２、…、ｌｎと表示することができる。量子制御シーケンスの長さがｍである場合、ｍ＝ｌ１＋ｌ２＋…＋ｌｎである。
【００５９】
次いで、クライアント５０２は、選択された量子状態基底、それらに割り当てられた長さ、及び量子制御シーケンスに基づいて、量子ストリングとしても知られる量子ビット（キュービット）のシーケンスを生成することができる（動作５１０）。量子ストリングの長さは、量子制御シーケンスの長さに等しく、各キュービットは、量子制御シーケンス中のビットに対応する。例えば、ある特定のキュービットは、量子制御シーケンス中の対応するビットのビット位置及びビット値に対応した量子状態基底に応じて、ある偏光状態の単一光子によって表すことができる。一例として、９ビットのバイナリストリング１０１００１０１１を用いることによって、クライアント５０２は、ＱＩＤ＝２及びＱＩＤ＝４の量子状態基底を選択し、長さ値３及び６を、選択した量子状態基底にそれぞれ割り当ててもよい。従って、９ビットのバイナリストリング１０１００１０１１の最初の３ビットが、ＱＩＤ＝２の量子状態基底を用いて符号化され、量子状態２．１が、ビット値「１」に対して使用され、及び量子状態２．２が、ビット値「０」に対して使用される。同様に、このストリングの後続の６ビットは、ＱＩＤ＝４の量子状態基底を用いて符号化することができ、量子状態４．１が、ビット値「１」に対して使用され、及び量子状態４．２が、ビット値「０」に対して使用される。
【００６０】
次いで、クライアント５０２は、量子チャネルを介して、量子ストリング（すなわち、単一光子のシーケンス）をサーバ５０４に送信することができる（動作５１２）。量子チャネルは、光ファイバ又は自由空間を含むことができる。量子ストリングの受信時に、サーバ５０４は、それの量子状態基底ライブラリから、量子状態基底の集合を選択し、選択した量子状態基底を用いて、受信している量子ストリングを測定することができる（動作５１４）。
【００６１】
クライアント５０２は、キュービットの生成に使用される量子状態基底に関する情報を含むメッセージを生成し（動作５１６）、そのメッセージをサーバ５０４に送信することができる（動作５１８）。一部の実施形態では、メッセージは、暗号化することができ（例えば、クライアント固有鍵を用いて）、ＱＩＤとそれらに割り当てられた長さ値とを含むことができる。例えば、クライアント５０２は、ＱＩＤが２及び４の２つの量子状態基底を前もって選択し、ＱＩＤ＝２の量子状態基底を用いて、バイナリストリングの最初の３ビットを符号化し、及びＱＩＤ＝４の量子基底を用いてバイナリストリングの６つの後続のビットを符号化し、その場合、メッセージは、｛２，３；４，６｝IDC_Keyを含むことができ、ここでは、IDC_Keyは、クライアント５０２の現在のクライアント固有鍵である。メッセージの一般形態は、｛ＱＩＤ１，ｌ１；ＱＩＤ２，ｌ２；…；ＱＩＤｎ，ｌｎ｝IDC_Keyでもよい。代替的に、メッセージは、各キュービットを符号化するために使用されるＱＩＤを指定してもよい。上記例におけるメッセージは、｛２，２，２，４，４，４，４，４，４｝IDC_Keyでもよい。この場合、各量子状態基底によって符号化されるビットの数を指定する代わりに、全９ビットに対応するＱＩＤが、リストされる。
【００６２】
セキュリティを向上させるために、各ＱＩＤに対応したビット数（又は長さ値）も、符号化することができる。例えば、クライアント５０２及びサーバ５０４はそれぞれ、ビット長さを様々なコードにマッピングすることができる長さ値データベースを保持することができる。量子状態基底に割り当てられた、ある特定の長さ値を送信する代わりに、クライアント５０２は、その長さ値に対応したコードを送信することができる。コードを受信すると、サーバ５０４は、ある特定の量子状態基底に割り当てられた上記特定の長さ値を決定するために、長さ値データベースでルックアップを行うことができる。
【００６３】
クライアント５０２からメッセージを受信すると、サーバ５０４は、量子状態基底情報（例えば、データストリング：ＱＩＤ１，ｌ１；ＱＩＤ２，ｌ２；…；ＱＩＤｎ，ｌｎ）を取得することができる（動作５２０）。一部の実施形態では、サーバ５０４は、受信したメッセージを復号する（例えば、サーバに保存されたクライアント固有鍵を用いて）必要がある場合がある。サーバ５０４は、受信したキュービットを測定するためにサーバ５０４が使用する量子状態基底に関する情報を含有したメッセージを、クライアント５０２に送信することもできる（動作５２２）。これらの交換メッセージに基づいて、クライアント５０２及びサーバ５０４はそれぞれ、サーバ５０４が測定のために異なる量子状態基底を使用しているビットを破棄し、残りのビットを秘密ストリングとして保持する（動作５２４及び５２６）。例えば、クライアント５０２によって送信されたメッセージが、｛２，３；４，６｝であり、及びサーバ５０４によって送信されたメッセージが、｛２，９｝である場合（これは、サーバ５０４が、全ての受信したキュービットを測定するために、ＱＩＤ＝２の量子状態基底を使用することを意味する）、クライアント５０２及びサーバ５０４は、最初の３ビットのみを保持し、残りの６ビットを破棄する。
【００６４】
盗聴を検出するために、サーバ５０４は、量子状態基底情報に基づいて、受信した量子ストリングの測定結果が、１つ又は複数の所定の基準を満たすか否かを決定することもできる（動作５２８）。満たす場合、サーバ５０４は、盗聴が検出されないと決定することができ、鍵交換は、成功する。そうでなければ、サーバ５０４は、盗聴行為が検出されたと決定することができ、鍵交換は、失敗する。盗聴の検出に使用される所定の基準は、光子損失率、ビット誤り率、又はその両方を含むことができる。盗聴の検出に使用される基準に関するより詳細な説明は、２０１７年４月２６日に出願された、「データ伝送中に盗聴を検出するための方法及びシステム」という名称の米国特許出願第１５／４９７，６７８号（代理人整理番号：ＡＬＩ−Ａ９２６２ＵＳ）に見つけることができ、この開示内容は、その全体が、本明細書に援用される。サーバ５０４は、盗聴検出結果をクライアント５０２に送信することができる（動作５３０）。
【００６５】
従来の鍵交換スキームと比較して、量子鍵交換スキームは、もはや非同期暗号化／復号を必要とせず、従って、計算的により効率的であり、且つより高速となることができる。さらに、量子鍵交換スキームは、あらゆる可能な盗聴を検出することによって、セキュリティを向上させることができる。
【００６６】
図６は、本発明の一実施形態による、例示的クライアントデバイスを表す図を示す。クライアント６００は、通常の信号を扱う通常ゾーン６１０と、量子信号を扱う量子ゾーン６２０とを含むことができる。より具体的には、通常ゾーン６１０は、通信要求生成部６０２、鍵管理モジュール６０４、ランダムストリング生成部６０６、暗号化／復号モジュール６０８、ハッシュモジュール６１２、及び通常光モジュール６１４を含むことができ、量子ゾーン６２０は、量子状態基底ライブラリ６２２、単一光子生成部６２４、及び量子エンコーダ６２６を含むことができる。
【００６７】
通常ゾーン６１０では、通信要求生成部６０２は、安全な通信チャネル（例えば、ＨＴＴＰＳチャネル）を開始する要求の生成を担うことができる。鍵管理モジュール６０４は、クライアント６００に割り当てられたクライアント固有鍵、及びクライアント６００とサーバとの間で取り決められた対称セッション鍵の保存及び更新を担うことができる。鍵管理モジュール６０４は、クライアント固有鍵と共に、クライアントＩＤも保存することもできる。ランダムストリング生成部６０６は、ランダムストリングの生成を担うことができる。暗号化／復号モジュール６０８は、認証及び鍵の取り決め中を含む、メッセージの暗号化及び復号と、それに続く安全な通信とを担うことができる。ハッシュモジュール６１２は、ハッシュ関数を計算し、計算したハッシュ関数を、受信したハッシュ関数と比較するためのものである。通常光モジュール６１４は、通常ゾーン６１０の様々なモジュールによって生成された電気信号に基づく、通常の光信号の伝送及び受信を担うことができる。例えば、通信要求生成部６０２が生成した通信要求は、光ファイバなどの光チャネルを介してサーバに送信される前に、通常光モジュール６１４によって、通常の光信号に変換することができる。通常の光信号には、量子状態情報を搬送又は保持しないあらゆる光信号が含まれ得る。さらに、通常の光信号は、量子状態情報を搬送する量子信号と比較した、より高い相対強度に起因して、時に、高強度光信号と呼ばれる場合がある。
【００６８】
量子ゾーン６２０では、量子状態基底ライブラリ６２２は、それぞれが一意の識別子（ＱＩＤ）によって識別される量子状態基底を保存する。単一光子生成部６２４は、単一光子の生成を担うことができる。量子エンコーダ６２６は、量子状態基底ライブラリ６２２から量子状態基底を選択すること、及びランダムストリング生成部６０６によって生成されたランダムストリングに基づいて、選択した量子状態基底を用いて単一光子を符号化することを担うことができる。
【００６９】
動作中、通信要求生成部６０２は、クライアント６００とリモートサーバとの間の安全な通信を開始する要求を生成する。このような要求は、認証要求の形態であってもよい。一部の実施形態では、クライアント６００からの認証要求は、クライアント６００のＩＤ、ハッシュモジュール６１２によって生成されたハッシュ関数、及び暗号化されたランダムストリング又は乱数ｒを含むことができる。ランダムストリング又は乱数ｒは、ランダムストリング生成部６０６によって生成され、鍵管理モジュール６０４によって管理されるクライアント固有鍵を用いて、暗号化／復号モジュール６０８によって暗号化することができる。ハッシュ関数は、hash(ID_C, IDC_Key)でもよく、ここでは、ID_Cは、クライアントＩＤであり、IDC_Keyは、クライアント固有鍵であり、(ID_C, IDC_Key)は、２つのストリングの連結でもよい。要求の情報を搬送する通常の光信号は、通常光モジュール６１４によって生成し、通常光チャネルを介してサーバに送信することができる。
【００７０】
認証要求の送信の後に、通常光モジュール６１４は、サーバの応答を搬送する通常の光信号をサーバから受信することができ、かかるサーバの応答は、サーバのＩＤ（ID_S）と、サーバのＩＤ及びクライアント６００によって送信されたランダムストリングのハッシュ関数（例えば、hash(ID_S, r)）とを含むことができる。ハッシュモジュール６１２は、サーバのＩＤ及びランダムストリングを用いて、ハッシュ関数を計算し、サーバを認証するために、計算したハッシュ関数を、受信したハッシュ関数と比較する。
【００７１】
サーバが認証されると、量子エンコーダ６２６は、量子状態基底ライブラリ６２２から選択された量子状態基底を用いて、単一光子のシーケンスを符号化することにより、量子信号を生成することができる。各光子の特定の量子状態（例えば、偏光状態）は、対応する選択された量子状態基底及びランダムストリング生成部６０６によって生成されたランダム量子制御シーケンスに基づいて、決定することができる。つまり、ランダム量子制御シーケンスと関連した情報は、単一光子の量子状態によって表される。量子エンコーダ６２６は、量子チャネルを介して、量子信号をサーバに送信することができる。
【００７２】
クライアント６００は、通常光モジュール６１４を介して、符号化に使用される量子状態基底に関する情報をサーバに送信し、量子信号の測定のためにサーバが使用する量子状態基底を示すサーバのフィードバックを、受信することもできる。このような情報を受信すると、鍵管理モジュール６０４は、異なる量子状態基底を用いて測定されたキュービットに対応したビットを、量子制御シーケンスから破棄することによって、クライアント６００とサーバとの間で共有される秘密ストリングを取得することができる。秘密ストリングは、鍵管理モジュール６０４に保存することができる。クライアント固有鍵を更新するために、秘密ストリングの一部を使用することができ、残りの部分は、クライアント６００とサーバとの間の安全な通信のための対称セッション鍵として使用することができる。そのような安全な通信は、通常光モジュール６１４によって生成された通常の光信号のみを必要とする。
【００７３】
一部の実施形態では、クライアント６００は、鍵管理モジュール６０４の一部でもよいカウンタ（図６では不図示）も含んでもよい。このカウンタは、サーバに位置する同様のカウンタと同期することができる。両カウンタは、クライアント６００及びサーバが互いにインタラクトする度に、値を１増加させる。カウンタ値ｎは、乱数（これに基づいて、ハッシュ関数が計算される）を変更するために、サーバによって使用することができる。このように、サーバからクライアント６００に送信し返されたハッシュ関数は、hash(ID_S, r + n)となる。サーバからハッシュ関数を受信すると、ハッシュモジュール６１２は、現在のカウンタ値ｎを取得し、それに応じてhash(ID_S, r + n)を計算することができる。
【００７４】
図７は、本発明の一実施形態による、例示的サーバデバイスを表す図を示す。クライアント６００と同様に、サーバ７００は、通常の信号を扱う通常ゾーン７１０と、量子信号を扱う量子ゾーン７２０とを含むことができる。より具体的には、通常ゾーン７１０は、通常光モジュール７０２、通信要求受信モジュール７０４、鍵データベース７０６、ハッシュモジュール７０８、暗号化／復号モジュール７１２、量子鍵管理モジュール７１４、及び盗聴検出結果生成部７１６を含むことができ、量子ゾーン７２０は、量子状態基底ライブラリ７２２、及び量子状態測定モジュール７２４を含むことができる。サーバ７００の様々なモジュールの機能は、クライアント６００の対応する機能に類似してもよい。
【００７５】
動作中、通信要求受信モジュール７０４は、通常光モジュール７０２を介して、安全な通信の要求をクライアントから受信することができる。このような要求は、クライアントＩＤ、ハッシュ関数、及び暗号化されたランダムストリング又は乱数ｒを含む認証要求の形態であってもよい。一部の実施形態では、ハッシュ関数は、hash(ID_C, IDC_Key)などのクライアントＩＤ及びクライアント固有鍵のハッシュでもよい。クライアントから要求を受信すると、ハッシュモジュール７０８は、鍵データベース７０６からクライアントＩＤに対応したクライアント固有鍵を取得し、取得したクライアント固有鍵及びクライアントＩＤに基づいて、ハッシュ関数を計算することができる。ハッシュモジュール７０８はさらに、クライアントの認証を行うために、計算したハッシュ関数を、受信したハッシュ関数と比較することができる。暗号化／復号モジュール７１２は、ランダムストリング又は乱数ｒを取得するために、復号動作を行うことができる。ハッシュモジュール７０８は、サーバのＩＤ（ID_S）、及びランダムストリング又は乱数ｒに基づいて、ハッシュ関数を生成することもできる。一部の実施形態では、サーバ７００は、クライアントに位置する同様のカウンタと同期することができるカウンタ（図７では不図示）も含んでもよい。ハッシュ関数を生成する際に、ハッシュモジュール７０８は、カウンタ値ｎを用いてランダムストリングを変更してもよい。例えば、ハッシュモジュール７０８は、ランダムストリング及びカウンタ値の合計を計算し、サーバのＩＤ及び当該合計に基づいて、ハッシュを計算することができる。ハッシュ関数は、hash(ID_S, r + n)として計算される。
【００７６】
量子状態測定モジュール７２４は、クライアントから量子信号（例えば、単一光子）を受信することができ、量子状態基底ライブラリ７２２から１つ又は複数の量子状態をランダムに選択して、受信した単一光子の量子状態を測定し、それによって、測定量子制御シーケンスを取得することができる。測定に使用される量子状態基底が、伝送のためにクライアントによって使用されるものと同じではないので、測定量子制御シーケンスは、クライアントによって送信される制御シーケンスと同じではない。
【００７７】
通常光モジュール７０２は、単一光子を符号化するためにクライアントが使用する量子状態基底に関する情報を含むメッセージをクライアントから受信することもできる。このメッセージは、暗号化することもできる（例えば、クライアント固有鍵を使用して）。暗号化／復号モジュール７１２は、受信したメッセージを復号して、量子状態基底に関する情報を取得することができる。一部の実施形態では、このメッセージは、量子制御シーケンス自体も含んでもよい。
【００７８】
量子鍵管理モジュール７１４は、測定に使用される量子状態基底と、符号化のためにクライアントによって使用される量子状態基底とに基づいて、測定量子制御シーケンス内のどのビットを破棄すべきかを決定することができる。次いで、量子鍵管理モジュール７１４は、残りのビットを秘密ストリングとして保持することができる。秘密ストリングの一部を使用して、鍵データベース７０６に保存されたクライアント固有鍵を更新することができ、一方、残りの部分は、クライアントとサーバ７００との間の安全な通信のための対称セッション鍵として使用することができる。対称セッション鍵は、量子鍵管理モジュール７１４によって維持することができる。後続の安全な通信中に、暗号化／復号モジュール７１２は、量子鍵管理モジュール７１４から対称セッション鍵を取得することができる。
【００７９】
盗聴検出結果生成部７１６は、クライアント側での符号化に使用される量子状態基底、及び任意選択的に暗号化／復号モジュール７１２からの量子制御シーケンス、並びに、量子状態測定モジュール７２４からの測定量子制御シーケンス及び測定に使用される量子状態基底に関する情報を取得することができる。次いで、盗聴検出結果生成部７１６は、取得した情報に基づいて、盗聴検出結果を生成することができる。より詳細には、盗聴検出結果生成部７１６は、測定結果が１つ又は複数の所定の基準を満たすか否かを決定することができ、盗聴が検出されたか否かを示す結果を生成することができる。生成された盗聴検出結果は、通常光モジュール７０２を介してクライアントに送信することができる。所定の基準は、光子損失率、測定量子制御シーケンスのビット誤り率（ＢＥＲ）、又はその両方に基づいてもよい。例えば、光子損失率が所定の閾値を超えることを盗聴検出結果生成部７１６が決定すると、盗聴検出結果生成部７１６は、盗聴が検出されたことを示す結果を生成してもよい。
【００８０】
図６及び７に示す例では、クライアントは、古典的チャネル（例えば、光ファイバ又は自由空間）及び量子チャネル（例えば、偏光保持ファイバ又は自由空間）を介してサーバに結合されてもよく、その逆でもよい。このように、純粋な通常の光信号は、古典的チャネル上で伝送及び受信を行うことができ、量子信号は、量子チャネル上で伝送及び受信を行うことができる。実際には、量子チャネル上で通常の光信号を伝送することも可能である。一部の実施形態では、通常の光信号及び量子信号は、波長領域多重化（ＷＤＭ）及び時間領域多重化技術を含む（但し、それらに限定されない）様々な多重化技術を用いて、一緒に多重化することができる。このように、量子チャネルのみが、クライアント及びサーバをつなぐ必要があり、従って、システムコストが減少する。
【００８１】
上述の例では、認証プロセス全体及び鍵交換プロセスは、暗号化／復号のために、非対称鍵ペアの使用を必要としない。代わりに、クライアント及びサーバによって行われる計算は、特定のハッシュ関数及び対称暗号化／復号の計算のみを含み、両計算は、非対称暗号化／復号よりも計算的にはるかに効率的である。さらに、量子鍵交換プロセスは、不確定性原理、量子状態測定の原理、及び量子複製不可能定理などの量子力学の法則により、交換された対称鍵のセキュリティを保証することができる。
【００８２】
さらに、様々な上述の例においては、クライアントとサーバとの間に確立された安全な通信チャネルは、クライアントとサーバとの間に確立されたＨＴＴＰＳチャネルに類似することができる。実際には、現在開示の技術を用いて、あらゆる種類のネットワークノード間の安全なデータ伝送を可能にすることができる。例えば、参加ノードが、ノード又はノードペアの一方に固有の特定の秘密鍵を事前に確立することができる限り、同様の技術を用いて、安全なピアツーピア通信チャネルも確立することができる。
【００８３】
図８は、本明細書に記載の幾つかの実施形態による、開示の盗聴検出技術を実施するための例示的クライアント−サーバネットワーク環境を示す。ネットワーク環境８００は、ネットワーク８０８によってサーバ８１０に通信可能に接続された幾つかの電子デバイス８０２、８０４及び８０６を含む。１つ又は複数のリモートサーバ８２０が、サーバ８１０及び／又は１つ又は複数の電子デバイス８０２、８０４及び８０６にさらに結合される。
【００８４】
一部の例示的実施形態では、電子デバイス８０２、８０４及び８０６は、それに結合された、又は内部に埋め込まれた１つ又は複数のプロセッサを備えた、ラップトップ又はデスクトップコンピュータ、スマートフォン、ＰＤＡ、携帯型メディアプレーヤ、タブレットコンピュータ、テレビ又は他のディスプレイ、又はウェブページ又はウェブアプリケーションの表示に使用することができる他の適切なコンピューティングデバイスなどのコンピューティングデバイスでもよい。一例では、電子デバイス８０２、８０４及び８０６は、ブラウザ又はアプリケーションなどのユーザエージェントを保存する。図８の例では、電子デバイス８０２は、スマートフォンとして示され、電子デバイス８０４は、デスクトップコンピュータとして示され、及び電子デバイス８０６は、ＰＤＡとして示される。
【００８５】
サーバ８１０は、処理デバイス８１２及びデータ記憶装置８１４を含む。処理デバイス８１２は、例えば、サービススケジューリングプロセス中に、サービスプロバイダと、電子デバイス８０２、８０４及び８０６の顧客との間の、顧客が開始したサービス又はサービスプロバイダが開始したサービスのスケジューリングを支援するために、データ記憶装置８１４に保存されたコンピュータ命令を実行する。
【００８６】
一部の例示的態様では、サーバ８１０は、コンピュータサーバなどの単一コンピューティングデバイスでもよい。他の実施形態では、サーバ８１０は、サーバコンピュータのアクションを行うために（例えば、クラウドコンピューティング）連携する２つ以上のコンピューティングデバイスを表すことができる。サーバ８１０は、ネットワーク８０８を介して、クライアントデバイス（例えば、電子デバイス８０２、８０４又は８０６）のブラウザと通信可能に結合されたウェブサーバをホスティングしてもよい。一例では、サーバ８１０は、サービススケジューリングプロセス中に、サービスプロバイダと顧客との間の、
顧客が開始したサービス又はサービスプロバイダが開始したサービスの、スケジューリングを行うクライアントアプリケーションをホスティングしてもよい。サーバ８１０はさらに、ネットワーク８０８を介して、又は別のネットワーク若しくは通信手段を介して、１つ又は複数のリモートサーバ８２０と通信してもよい。
【００８７】
１つ又は複数のリモートサーバ８２０は、単独、あるいはサーバ８１０と一緒に、サーバ８１０に関して本明細書に記載した様々な機能及び／又は記憶能力を果たしてもよい。１つ又は複数のリモートサーバ８２０のそれぞれは、様々なサービスをホスティングしてもよい。例えば、サーバ８２０は、ウェブページなどの１つ又は複数の提案場所、又は提案場所に関連したウェブサイトに関する情報を提供するサービス、一人又は複数のユーザ又は機関の場所を決定するサービス、ユーザクエリの結果を識別する検索エンジン、１つ又は複数のユーザレビュー又はクエリサービス、又は１つ又は複数の機関、顧客及び／又は機関に関するレビュー又はフィードバックに関する情報を提供する１つ又は複数の他のサービスをホスティングしてもよい。
【００８８】
サーバ８１０はさらに、１つ又は複数のリモートサーバ８２０上でホスティングされるソーシャルネットワーキングサービスを維持してもよく、又はそれと通信してもよい。１つ又は複数のソーシャルネットワーキングサービスは、様々なサービスを提供することができ、ユーザがプロフィールを作成し、自身をリモートソーシャルネットワーキングサービスの他のユーザに関連付けることを可能にすることができる。サーバ８１０及び／又は１つ又は複数のリモートサーバ８２０は、ユーザが作成したつながりを含むソーシャルグラフの生成及び維持管理をさらに促進することができる。ソーシャルグラフには、例えば、リモートソーシャルネットワーキングサービスの全ユーザのリスト、及びリモートソーシャルネットワーキングサービスの他のユーザとの彼らのつながりが含まれてもよい。
【００８９】
１つ又は複数のリモートサーバ８２０のそれぞれは、コンピュータサーバなどの単一のコンピューティングデバイスでもよく、又はサーバコンピュータのアクションを行うために（例えば、クラウドコンピューティング）連携する２つ以上のコンピューティングデバイスを表すことができる。ある実施形態では、サーバ８１０及び１つ又は複数のリモートサーバ８２０は、単一サーバ又はサーバ群として実施されてもよい。一例では、サーバ８１０及び１つ又は複数のリモートサーバ８２０は、ネットワーク８０８を介して、クライアントデバイス（例えば、電子デバイス８０２、８０４又は８０６）のユーザエージェントを通じて通信してもよい。
【００９０】
ユーザは、電子デバイス８０２、８０４及び８０６にインストールされたクライアントアプリケーションによって、サーバ８１０がホスティングするシステム、及び／又はリモートサーバ８２０がホスティングする１つ又は複数のサービスとインタラクトすることができる。代替的に、ユーザは、電子デバイス８０２、８０４、８０６のウェブベースのブラウザアプリケーションによって、システム及び１つ又は複数のソーシャルネットワーキングサービスとインタラクトすることができる。クライアントデバイス８０２、８０４、８０６及びシステム、及び／又は１つ又は複数のサービス間の通信は、ネットワーク（例えば、ネットワーク８０８）によって促進することができる。
【００９１】
クライアントデバイス８０２、８０４、８０６、サーバ８１０、及び／又は１つ又は複数のリモートサーバ８２０間の通信は、様々な通信プロトコルによって促進することができる。一部の態様では、クライアントデバイス８０２、８０４、８０６、サーバ８１０、及び／又は１つ又は複数のリモートサーバ８２０は、通信インタフェース（不図示）によって無線で通信してもよく、通信インタフェースは、必要であれば、デジタル信号処理回路を含んでもよい。通信インタフェースは、特に、グローバルシステムフォーモバイルコミュニケーション（ＧＳＭ（登録商標））音声電話；ショートメッセージサービス（ＳＭＳ）、拡張メッセージングサービス（ＥＭＳ）、又はマルチメディアメッセージングサービス（ＭＭＳ）メッセージング；符号分割多元接続（ＣＤＭＡ）、時分割多元接続（ＴＤＭＡ）、パーソナルデジタルセルラー（ＰＤＣ）、広帯域符号分割多元接続（ＷＣＤＭＡ（登録商標））、CDMA2000、又は汎用パケット無線システム（ＧＰＲＳ）を含む様々なモード又はプロトコル下の通信を提供することができる。例えば、通信は、無線周波トランシーバ（不図示）によって行われてもよい。さらに、Bluetooth（登録商標）使用可能デバイス、WiFi、又はそのような他のトランシーバの使用を介することを含む、短距離通信が行われてもよい。
【００９２】
ネットワーク８０８は、例えば、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、キャンパスエリアネットワーク（ＣＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、広域ネットワーク（ＷＡＮ）、ブロードバンドネットワーク（ＢＢＮ）、インターネットなどのうちの何れか１つ又は複数を含むことができる。さらに、ネットワーク８０８は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター・バスネットワーク、ツリー又は階層ネットワークなどを含むネットワークトポロジーのうちの何れか１つ又は複数を含むことができる（但し、それらに限定されない）。
【００９３】
図９は、本技術の幾つかの実施態様が実施される電子システムを概念的に示す。電子システム９００は、内部に埋め込まれた、又はそれに結合された１つ又は複数のプロセッサを備えた、クライアント、サーバ、コンピュータ、スマートフォン、ＰＤＡ、ラップトップ、又はタブレットコンピュータ、又はその他の種類の電子デバイスでもよい。このような電子システムは、様々な種類のコンピュータ可読媒体、及び他の様々な種類のコンピュータ可読媒体用のインタフェースを含む。電子システム９００は、バス９０８、処理装置９１２、システムメモリ９０４、読み出し専用メモリ（ＲＯＭ）９１０、永久記憶装置９０２、入力装置インタフェース９１４、出力装置インタフェース９０６、及びネットワークインタフェース９１６を含む。
【００９４】
バス９０８は、電子システム９００の多数の内部装置を通信可能に接続する全てのシステムバス、周辺機器用バス、及びチップセットバスを集合的に表す。例えば、バス９０８は、処理装置９１２をＲＯＭ９１０、システムメモリ９０４、及び永久記憶装置９０２と通信可能に接続する。
【００９５】
これらの様々なメモリ装置から、処理装置９１２は、本開示のプロセスを実行するために、実行すべき命令及び処理すべきデータを取り出す。処理装置は、異なる実施態様では、単一プロセッサ又はマルチコアプロセッサでもよい。
【００９６】
ＲＯＭ９１０は、処理装置９１２及び電子システム９００の他のモジュールが必要とする静的データ及び命令を保存する。一方、永久記憶装置９０２は、読み書きメモリデバイスである。この装置は、電子システム９００がオフの時でも命令及びデータを保存する不揮発性メモリ装置である。本開示の一部の実施態様では、永久記憶装置９０２として、大容量記憶装置（磁気又は光ディスク及びそれに対応するディスクドライブなど）が使用される。
【００９７】
他の実施態様では、永久記憶装置９０２として、取り外し可能記憶装置（フロッピーディスク、フラッシュドライブ、及びそれに対応するディスクドライブ）が使用される。永久記憶装置９０２と同様に、システムメモリ９０４は、読み書きメモリデバイスである。但し、記憶装置９０２とは異なり、システムメモリ９０４は、ランダムアクセスメモリ等の揮発性読み書きメモリである。システムメモリ９０４は、プロセッサが実行時に必要とする命令及びデータの一部を保存する。一部の実施態様においては、本開示のプロセスは、システムメモリ９０４、永久記憶装置９０２、及び／又はＲＯＭ９１０に保存される。これらの様々なメモリ装置から、処理装置９１２は、一部の実施態様のプロセスを実行するために、実行すべき命令及び処理すべきデータを取り出す。
【００９８】
バス９０８は、入力装置インタフェース９１４及び出力装置インタフェース９０６にも接続する。入力装置インタフェース９１４により、ユーザが、電子システムに対して情報を伝達し、コマンドを選択することが可能となる。入力装置インタフェース９１４と共に使用される入力装置には、例えば、英数字キーボード及びポインティングデバイス（「カーソル制御装置」とも呼ばれる）が含まれる。出力装置インタフェース９０６により、例えば、電子システム９００によって生成された画像の表示が可能となる。出力装置インタフェース９０６と共に使用される出力装置には、例えば、プリンタ及び陰極線管（ＣＲＴ）又は液晶ディスプレイ（ＬＣＤ）などのディスプレイ装置が含まれる。一部の実施態様は、入力装置及び出力装置の両方として機能するタッチスクリーンなどの装置を含む。
【００９９】
最後に、図９に示すように、バス９０８はまた、ネットワークインタフェース９１６によって、電子システム９００をネットワーク（不図示）に結合させる。このようにして、コンピュータは、複数のコンピュータのネットワーク（ローカルエリアネットワーク（「ＬＡＮ」）、広域ネットワーク（「ＷＡＮ」）、又はインターネットなど、又はインターネットなどの複数のネットワークのネットワークの一部でもよい。本開示に関連して、電子システム９００の何れか又は全ての構成要素を使用することができる。
【０１００】
これらの上記機能は、デジタル電子回路において、すなわち、コンピュータソフトウェア、ファームウェア、又はハードウェアにおいて実施することができる。これらの技術は、１つ又は複数のコンピュータプログラムプロダクトを使用して実施することができる。プログラム可能プロセッサ及びコンピュータが、モバイル機器内に含まれてもよく、又はモバイル機器としてパッケージ化されてもよい。１つ又は複数のプログラム可能プロセッサによって、又は１つ又は複数のプログラム可能論理回路によって、プロセス及び論理フローを行うことができる。汎用及び専用コンピューティングデバイス及び記憶装置は、通信ネットワークによって、相互接続することができる。
【０１０１】
単なる例示及び説明目的で、様々な実施形態の上記記載を提示してきた。これらは、包括的であること、又は本発明を開示の形態に限定することを意図したものではない。従って、多くの変更形態及び変形形態が、当業者には明らかとなるだろう。さらに、上記の開示は、本発明を限定することを意図するものではない。
【図１】
2019517184.tif 000008
【図２】
2019517184.tif 000009
【図３Ａ】
2019517184.tif 000010
【図３Ｂ】
2019517184.tif 000011
【図３Ｃ】
2019517184.tif 000012
【図４】
2019517184.tif 000013
【図５】
2019517184.tif 000014
【図６】
2019517184.tif 000015
【図７】
2019517184.tif 000016
【図８】
2019517184.tif 000017
【図９】
2019517184.tif 000018
【国際調査報告】
2019517184.tif 000019