(57)【特許請求の範囲】
【請求項１】
第１ユーザに関連付けられた第１デバイスを特定することであって、前記第１デバイスは第１公開識別鍵を有することと、
前記第１デバイスと、第２ユーザに関連付けられた第２デバイスと、の間の鍵交換を行うことであって、前記第１公開識別鍵は認証器へ送信され、かつ第１公開セッション鍵は前記第１デバイスから前記第２デバイスへ送信されることと、
前記第１ユーザと前記第２ユーザとの間の通信セッションを行うことであって、前記通信セッションの間に前記第２デバイスから前記第１デバイスへ送信されるメッセージは前記第１公開識別鍵および前記第１公開セッション鍵で暗号化されることと、を含み、
前記鍵交換を行うことは、
前記第２デバイスにおいて、前記認証器から前記第１公開識別鍵を取得することであって、前記第１デバイスは前記認証器に登録されていることと、
前記第２デバイスにおいて、第２公開セッション鍵と、前記第２公開セッション鍵に対応する第２秘密セッション鍵と、を生成することであって、前記第２公開セッション鍵および前記第２秘密セッション鍵は前記通信セッションおよび前記第２ユーザおよび前記第２デバイスに特有であることと、
第２公開識別鍵と前記第２公開セッション鍵とを含む第１鍵交換メッセージを前記認証器を介して前記第２デバイスから前記第１デバイスへ送信することであって、前記第１鍵交換メッセージは前記第１公開識別鍵で暗号化され、前記第２公開識別鍵は第２秘密識別鍵に対応し、前記第２公開識別鍵および前記第２秘密識別鍵は前記第２ユーザおよび前記第２デバイスに特有であることと、
前記第１デバイスにおいて、前記第１公開セッション鍵と、前記第１公開セッション鍵に対応する第１秘密セッション鍵と、を生成することであって、前記第１公開セッション鍵および前記第１秘密セッション鍵は前記通信セッションおよび前記第１ユーザおよび前記第１デバイスに特有であることと、
前記第１公開セッション鍵を含む第２鍵交換メッセージを前記第１デバイスから前記第２デバイスへ送信することと、を含む方法。
【請求項２】
前記鍵交換を行う前に、前記第１デバイスにおいて、前記第１公開識別鍵と、前記第１公開識別鍵に対応する第１秘密識別鍵と、を生成することであって、前記第１公開識別鍵および前記第１秘密識別鍵は前記第１ユーザおよび前記第１デバイスに特有であること、をさらに含む請求項１に記載の方法。
【請求項３】
公開鍵および対応する秘密鍵は、前記公開鍵で暗号化された暗号化メッセージが前記対応する秘密鍵でのみ解読可能であるように、数学的に互いにリンクされる請求項１または２に記載の方法。
【請求項４】
前記鍵交換を行う前に、前記第１デバイスからの前記第１公開識別鍵を前記認証器に送ることによって前記第１ユーザを前記認証器に登録することと、
前記第１デバイスにおいて、前記通信セッションを開始するための第１インジケーションであって前記第１ユーザからの第１インジケーションを受信することと、
前記通信セッションを開始するための要求を、前記第１デバイスから前記認証器へ送信することと、
前記認証器から前記要求を前記第２デバイスへ転送することと、
前記第２デバイスにおいて、前記要求を受け入れるための第２インジケーションであって前記第２ユーザからの第２インジケーションを受信することと、をさらに含む請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記第２鍵交換メッセージは前記認証器を介して送信される請求項１に記載の方法。
【請求項６】
前記第２鍵交換メッセージは前記第２公開識別鍵または前記第２公開セッション鍵のうちの少なくとも一方で暗号化される請求項１または５に記載の方法。
【請求項７】
前記通信セッションを行うことはさらに、
前記第１デバイスから前記第２デバイスへ暗号化メッセージを送信することであって、前記暗号化メッセージは前記第２公開識別鍵および前記第２公開セッション鍵で暗号化されることと、
前記第２デバイスにおいて、前記第２秘密識別鍵および前記第２秘密セッション鍵を用いて前記暗号化メッセージを解読することと、を含む請求項１、５、６のいずれか一項に記載の方法。
【請求項８】
前記暗号化メッセージは認証器を介してまたはピアツーピアを介して前記第１デバイスから前記第２デバイスへ送信される請求項７に記載の方法。
【請求項９】
前記第２デバイスから前記第１デバイスへ暗号化メッセージを送信することであって、前記暗号化メッセージは前記第１公開識別鍵および前記第１公開セッション鍵で暗号化されることと、
前記第１デバイスにおいて、第１秘密識別鍵および前記第１秘密セッション鍵を用いて前記暗号化メッセージを解読することと、をさらに含む請求項１または請求項５から８のいずれか一項に記載の方法。
【請求項１０】
前記第１公開セッション鍵は、前記通信セッションが完了すると、または後の通信セッションの前に、または前記通信セッション中に、失効するよう構成される請求項１から９のいずれか一項に記載の方法。
【請求項１１】
前記第１公開セッション鍵は前記通信セッション中に失効するよう構成され、
前記方法はさらに、
前記第１公開セッション鍵が失効すると、前記第１デバイスにおいて、前記通信セッションに関連付けられた新たな公開セッション鍵を生成することと、
前記第１デバイスと前記第２デバイスとの間の別の鍵交換を行うことであって、前記新たな公開セッション鍵は前記第１デバイスから前記第２デバイスへ送信されることと、
前記通信セッションをさらに行うことであって、前記通信セッション中に前記第２デバイスから前記第１デバイスへ送信されるひとつ以上のメッセージは前記第１公開識別鍵および前記新たな公開セッション鍵で暗号化されることと、を含む請求項１から１０のいずれか一項に記載の方法。
【請求項１２】
前記第１デバイスは前記第１デバイスに関連付けられた揮発性メモリに秘密セッション鍵を保持し、該秘密セッション鍵は前記第１公開セッション鍵に対応する請求項１から１１のいずれか一項に記載の方法。
【請求項１３】
プロセッサと、
インストラクションを保持するコンピュータ可読保持媒体と、を備え、
前記インストラクションは前記プロセッサによって実行された場合、前記プロセッサに、
第１ユーザに関連付けられた第１デバイスを特定することであって、前記第１デバイスは第１公開識別鍵および第１秘密識別鍵を含む第１識別鍵ペアを有することと、
前記第１デバイスのための第１セッション鍵ペアを生成することであって、前記第１セッション鍵ペアは第１公開セッション鍵および第１秘密セッション鍵を含むことと、
前記第１公開識別鍵を認証器へ送信し、前記第１公開セッション鍵を前記第１デバイスから第２デバイスへ送信することと、
前記第２デバイスにおいて、前記認証器から前記第１公開識別鍵を取得することであって、前記第１デバイスは前記認証器に登録されていることと、
前記第２デバイスにおいて、第２公開セッション鍵と、前記第２公開セッション鍵に対応する第２秘密セッション鍵と、を生成することであって、前記第２公開セッション鍵および前記第２秘密セッション鍵は、前記第１ユーザと前記第２デバイスの第２ユーザとの間の通信セッションおよび前記第２ユーザおよび前記第２デバイスに特有であることと、
第２公開識別鍵と前記第２公開セッション鍵とを含む第１鍵交換メッセージを前記認証器を介して前記第２デバイスから前記第１デバイスへ送信することであって、前記第１鍵交換メッセージは前記第１公開識別鍵で暗号化され、前記第２公開識別鍵は第２秘密識別鍵に対応し、前記第２公開識別鍵および前記第２秘密識別鍵は前記第２ユーザおよび前記第２デバイスに特有であることと、
前記第１デバイスにおいて、前記第１公開セッション鍵と、前記第１公開セッション鍵に対応する第１秘密セッション鍵と、を生成することであって、前記第１公開セッション鍵および前記第１秘密セッション鍵は前記通信セッションおよび前記第１ユーザおよび前記第１デバイスに特有であることと、
前記第１公開セッション鍵を含む第２鍵交換メッセージを前記第１デバイスから前記第２デバイスへ送信することと、
前記第２デバイスから前記第１デバイスへ送信されるメッセージを前記第１公開セッション鍵と前記第１公開識別鍵とで暗号化し、前記メッセージを前記第１秘密セッション鍵と前記第１秘密識別鍵とで解読することによって、前記第１ユーザと前記第２ユーザとの間の前記通信セッションを行うことと、
前記第１ユーザと前記第２ユーザとの間の後の通信セッションのいくらか前に、前記第１デバイスから前記第１秘密セッション鍵を削除することと、を含む動作を行わせるシステム。
【請求項１４】
インストラクションを有するコンピュータプログラムであって、
前記インストラクションはプロセッサによって実行された場合、前記プロセッサに、
第１識別鍵ペアと第１セッション鍵ペアとを有する第１デバイスを特定することであって、前記第１識別鍵ペアは第１公開識別鍵および第１秘密識別鍵を含み、前記第１セッション鍵ペアは第１公開セッション鍵および第１秘密セッション鍵を含むことと、
第２識別鍵ペアと第２セッション鍵ペアとを有する第２デバイスを特定することであって、前記第２デバイスが生成したものである前記第２識別鍵ペアは第２公開識別鍵および第２秘密識別鍵を含み、前記第２デバイスが生成したものである前記第２セッション鍵ペアは第２公開セッション鍵および第２秘密セッション鍵を含み、前記第２公開セッション鍵および前記第２秘密セッション鍵は、前記第１デバイスの第１ユーザと前記第２デバイスの第２ユーザとの間の通信セッションおよび前記第２ユーザおよび前記第２デバイスに特有であることと、
前記第１公開識別鍵をサーバに送信することによって前記第１デバイスを前記サーバに登録することと、
前記第２デバイスにおいて、前記サーバから前記第１公開識別鍵を取得することと、
鍵交換を行うことであって、前記第１デバイスは前記第２公開識別鍵および前記第２公開セッション鍵を受信すると共に前記第２デバイスは前記第１公開識別鍵および前記第１公開セッション鍵を受信することと、
ひとつ以上の暗号化メッセージを交換することによって前記第１デバイスと前記第２デバイスとの間の前記通信セッションを行うことであって、前記ひとつ以上の暗号化メッセージは、（１）前記第１デバイスにおいて前記第２公開識別鍵と前記第２公開セッション鍵とで暗号化され、かつ、前記第２デバイスにおいて前記第２秘密識別鍵と前記第２秘密セッション鍵とで解読されるものであるか、または（２）前記第２デバイスにおいて前記第１公開識別鍵と前記第１公開セッション鍵とで暗号化され、かつ、前記第１デバイスにおいて前記第１秘密識別鍵と前記第１秘密セッション鍵とで解読されるものであることと、
前記通信セッションが終わったあと、前記第２デバイスから前記第１公開セッション鍵を削除し、かつ、前記第１デバイスから前記第２公開セッション鍵を削除することと、を含む動作を行わせるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願へのクロスリファレンス
本願は、２０１４年１１月２１日に出願された米国特許出願第14/549,812号（タイトル「SYSTEM AND METHOD FOR NON-REPLAYABLE COMMUNICATION SESSIONS」）の優先権の利益を享受する。この出願は、参照によりその全体が本明細書に明示的に組み入れられる。
【０００２】
技術分野
本技術は通信セキュリティに関し、特にメッセージの再現を防ぐためにセキュリティ鍵を回すための技術に関する。
【背景技術】
【０００３】
近年の通信技術により、通信デバイスは離れていてもテキストや声や音やビデオや他の手段により安全に相互通信できる。しかしながら、通信の内容は必ずしも完全に安全というわけではない。それは第三者によって取得されるかまたは再生される可能性がある。例えば、あるデジタル通信セッションは、悪意の第三者による傍聴や盗聴に対して脆弱でありうる。加えて、法執行や政府団体による強制によって、過去の通信セッションに含まれるログやコンテンツを開示することを強制されるかもしれない。
【０００４】
ある通信は、盗聴をやめさせるか防ぐために暗号化されうる。しかしながら、従来の解は、鍵を生成し、鍵を交換し、次いで通信を暗号化するのに鍵を用いるために、ユーザ側のある程度の複雑化を要求する。加えて、ユーザは全ての通信において同じ鍵セットを用いる可能性が高いので、鍵は危険にさらされるかまたはユーザは第三者に鍵を開示することを強制されうる。したがって、通信の取得や再生が容易には行い得ない通信システムを生成する必要がある。さらに、暗号化されたデータが誰かに取得されたとしても、可能であれば通信に参加しているユーザからも、暗号化鍵を隠すか見えなくする方法が必要である。
【発明の概要】
【０００５】
本開示の追加的な特徴および利点は以下に説明されるであろうし、また部分的にはその説明から明らかであろうし、また本明細書で開示された原理の実施により学習されるであろう。本開示の特徴および利点は、添付の請求項において具体的に示す機器および組み合わせによって実現され、得られうるものである。本開示のこれらの特徴およびその他の特徴は、以下の記述および添付の請求項からさらに十分に明らかになるか、または本明細書で述べた原理の実施によっても分かるものである。
【０００６】
再生不能通信セッションを行うためのシステム、方法および非一時的コンピュータ可読保持媒体が開示される。通信セッションに参加する二つ以上の通信デバイスは、公開識別鍵を送信することで、中央認証機関に登録してもよい。他のデバイスとの通信を要求するデバイスは、中央認証機関を通じて他のデバイスに要求を送信してもよい。他のデバイスが要求を受け入れた場合、二つの通信デバイスは鍵交換を行い、その結果、各デバイスは二組の鍵−すなわち自身の一つの識別鍵ペアと自身の一つのセッション鍵ペア−と相手のデバイスからの二つの公開鍵と、を有することとなる。デバイスは、次いで、相手のデバイスの公開識別鍵とおよび／または公開セッション鍵とで出て行くメッセージを暗号化することによって、安全な通信を営むことができる。セッション鍵は規則的に、または通信セッションが完了すると、回されてもよく、この場合、通信内容は再生不能となる。
【図面の簡単な説明】
【０００７】
本開示の上記およびその他の利点および特徴は、添付の図面に示す特定の実施の形態を参照することにより明らかになるであろう。これらの図面は、本開示の例示的な実施の形態を示しているだけであり、それゆえ、本開示の範囲を限定しているとみなされてはならないことを理解した上で、添付の図面を用いてさらに具体的かつ詳細に本明細書の原理を記述して説明する。
【０００８】
【図１】二人のユーザの間の例示的な再生不能通信セッションを示す。
【０００９】
【図２】種々の暗号鍵を保持する例示的なクライアントデバイスを示す。
【００１０】
【図３Ａ】例示的な再生不能通信セッションを開始するためのシーケンス図を示す。
【００１１】
【図３Ｂ】例示的な再生不能通信セッションを行うためのシーケンス図を示す。
【００１２】
【図４】例示的な方法の実施の形態を示す。
【００１３】
【図５Ａ】本技術の種々の実施の形態を実装するための第１の例示的システムの実施の形態を示す。
【００１４】
【図５Ｂ】本技術の種々の実施の形態を実装するための第２の例示的システムの実施の形態を示す。
【発明を実施するための形態】
【００１５】
本開示のさまざまな実施の形態について、以下に詳しく論じる特定の実装について論じているが、これは説明のみを目的として行われていることを理解されたい。当業者は、本開示の趣旨および範囲から逸脱することなく他のコンポーネントや構成が用いられうることを認識するであろう。
【００１６】
本明細書で通信の文脈で用いられる「再生不能（non-replayable）」または「再現不能（non-recoverable）」という用語は、通信セッションが終わると、通信内容の再生成がもはや不可能であるかまたは現実的ではないことを意味してもよい。例えば、十分に大きな暗号鍵値で暗号化されたメッセージは、マッチする解読鍵の使用なしでは再生不能であるとされてもよい。正しい暗号鍵を用いることなく適切な時間内に暗号文を平文に変換することは現実的に実現不可能であるからである。したがって、再生不能性は、暗号化通信を再生成することが理論的または数学的に不可能であることを必ずしも暗示せず、むしろそうすることが計算機的にコストが高いかまたは禁止されうる程度のことを暗示するのである。
【００１７】
本明細書で用いられる「鍵」、「セキュリティ鍵」または「暗号鍵」という用語は、暗号アルゴリズムの機能的出力を決定する数値または情報を指し示してもよい。鍵は暗号アルゴリズムまたはサイファ（cipher）の基本的な構成ブロックのうちのひとつである。
【００１８】
開示される技術は、二人のユーザの間の通信セッションを、通信セッションの内容が再現可能とならないように行うことに対する本分野における必要性を解決するものである。図１は、二人のユーザ−すなわちユーザＡ１０２とユーザＢ１０４−の間の例示的な再生不能通信セッションを示す。通信システム１００はデバイスＡ１０６とデバイスＢ１０８と中央認証機関１１０とを備えてもよい。ユーザＡ１０２およびユーザＢ１０４はそれぞれ、デバイスＡ１０６およびデバイスＢ１０８などの通信デバイスへのアクセスを有してもよい。デバイス１０６、１０８はそれぞれ、他のデバイスと通信可能な任意のデバイスであってもよい。例えば、デバイス１０６、１０８はそれぞれ、コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、サーバ、パーソナルデジタルアシスタント（ＰＤＡ）、電話、携帯電話、スマートフォン、タブレットコンピュータ、ウエアラブルコンピュータ、または携帯コミュニケータであってもよい。デバイス１０６、１０８は、有線通信および／または無線通信可能であってもよい。例えば、デバイス１０６、１０８は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、公衆交換電話網（ＰＳＴＮ）、セルラネットワーク、ケーブルネットワーク、インターネット等を介して通信可能であってもよい。図１は通信デバイスを二つのみ示すが、当業者であれば、通信セッションに３つ以上の通信デバイスが同時に参加してもよいことを理解するであろう。
【００１９】
デバイスＡ１０６およびデバイスＢ１１０はピアツーピア方法を介して互いに直接通信することができるが、デバイスＡ１０６およびデバイスＢ１１０は認証器１１０などのサーバを通じて、またはサーバの助けを借りて通信してもよい。認証器１１０は、デバイスＡ１０６やデバイスＢ１０８などのクライアントデバイスを登録することができ、クライアントデバイスの情報を保持でき、クライアントデバイスの公開識別鍵を保持でき、クライアントデバイスの存在情報を提供でき、および／またはクライアントデバイス間で種々のパケットやメッセージを中継できる中央認証機関であってもよい。デバイスＡ１０６およびデバイスＢ１０８は、ネットワーク１１２を介してだけでなく直接的にも認証器１１０と通信できる。デバイスＡ１０６およびデバイスＢ１０８は、ネットワーク１１２を介して互いに通信できる。ネットワーク１１２は、ＷＡＮと、インターネットなどの公衆ネットワークと、を含んでもよいが、また、イントラネットなどのプライベートまたは準プライベートネットワークや、ホームネットワークや、仮想プライベートネットワーク（ＶＰＮ）や、別個の主体間の共有協調ネットワークなどを含んでもよい。実際、本明細書で説明される原理は、ＬＡＮや仮想ＬＡＮ（ＶＬＡＮ）や企業ネットワークやワイドエリアネットワークや適切な有線または無線ネットワークの他の任意の形態などの多くのタイプのネットワークに適用可能である。
【００２０】
デバイス１０６、１０８はテキスト、声、音、ビデオ等を通じて互いに通信してもよい。例えば、デバイス１０６、１０８は、電話の会話、電話会議、ビデオ会議、ショートメッセージサービス（ＳＭＳ）、マルチメディアメッセージサービス（ＭＭＳ）、インスタントメッセージ、ウエブチャット、インターネットリレーチャット（ＩＲＣ）、ピアツーピアメッセージ等により通信可能である。デバイスＡ１０６とデバイスＢ１０８との間で通信されているいくつかまたは全てのコンテンツは、ユーザＡ１０２およびユーザＢ１０４のプライバシを保護するために暗号化されうる。したがって、デバイスＡ１０６とデバイスＢ１０８との間で交換されるいくつかまたは全てのメッセージは、伝送前に、暗号アルゴリズムを用いることで暗号文に変換され（すなわち、暗号化され）、関連する暗号アルゴリズムを用いることで元の平文に再変換される（すなわち、解読される）。
【００２１】
そのような暗号化および解読は、アドバンストエンクリプションスタンダード（ＡＥＳ）などの対称鍵アルゴリズムによって、またはリベスト−シャミア−エーデルマン（ＲＳＡ）などの公開鍵暗号とも称される非対称鍵アルゴリズムによって、達成されてもよい。ＡＥＳでは、ひとつの暗号鍵が暗号化および解読の両方に用いられる。ＲＳＡでは、平文を暗号化するためにひとつの暗号鍵が用いられ、別の別個の、ただし関連する鍵を用いて暗号文を解読する。公開鍵暗号では、二つの鍵は公開鍵および秘密（または私的）鍵と称される。公開鍵は他の主体に広く分配される一方、秘密鍵は通常他に対して秘密のままとされる。二つの鍵は数学的に互いにリンクしており、それらは合わせて暗号鍵ペアを形成する。一方の鍵で暗号化されたメッセージは、マッチする鍵を用いることによってのみ解読可能である。理論的には、マッチする鍵を用いることなく暗号文を解読することが可能かもしれないが、鍵値がかなり大きい場合には特に、それは不可能または非現実的と言われる。高性能コンピュータのアレイの助けを借りたとしても、それを適切な時間の内になすことは不可能だからである。
【００２２】
デバイスＡ１０６およびデバイスＢ１０８は、「鍵交換」と称されるプロセスにおいて互いに鍵を送信できる。対称暗号においては、デバイスＡ１０６およびデバイスＢ１０８は安全なチャネルを通じてお互いの鍵を交換してもよい。この場合、各デバイスは相手のデバイスによって暗号化されたメッセージを解読することができる。非対称暗号では、デバイスＡ１０６およびデバイスＢ１０８は互いに公開鍵を送信できる。例えば、デバイスＡ１０６はデバイスＢ１０８に自身の公開鍵を送信し、この場合、デバイスＢ１０８はデバイスＡの公開鍵でそのメッセージを暗号化できる。続いて、デバイスＡ１０６がデバイスＢ１０８から暗号化メッセージを受信すると、デバイスＡ１０６は自身のマッチする秘密鍵を用いることでメッセージを解読できる。
【００２３】
デバイスＡ１０６とデバイスＢ１０８との間の通信は二重に暗号化されてもよい。すなわち、デバイスＡ１０６とデバイスＢ１０８との間で交換されているメッセージは、非対称暗号が用いられている場合、二つの別個の暗号鍵ペアを用いることで二回暗号化されてもよい。（対称暗号の場合、二つの別個の暗号鍵を用いてメッセージを二回、各鍵について一度ずつ、暗号化してもよい。）したがって、デバイスＡ１０６およびデバイスＢ１０８はそれぞれ二つの暗号鍵ペア（すなわち、二つの公開鍵および二つの秘密鍵）を有し、鍵交換の間、それらはそれぞれ二つの公開鍵を相手のデバイスに送信してもよい。続いて、デバイスＡ１０６は例えば、デバイスＢの二つの公開鍵でデバイスＢ１０８へ向かうメッセージを暗号化してもよい。暗号化メッセージを受信した後、デバイスＢ１０８は自身の二つの秘密鍵を用いてメッセージを解読してもよい。二重に暗号化されたメッセージは、二つのマッチする鍵でのみ解読可能である。二つのマッチする鍵のうちの一方がないと、ない方の鍵で暗号化されたメッセージは失われるであろう。ＲＳＡなどのある公開鍵暗号化アルゴリズムは可換性を示しうる。言い換えると、二つの異なる公開鍵で暗号化された暗号文メッセージは、マッチする秘密鍵で、任意の順序で解読可能であり、正しい平文メッセージを得ることができる。したがって、公開鍵１と秘密鍵１とがマッチする鍵ペアであり、公開鍵２と秘密鍵２とがマッチする別の鍵ペアであるとすると、最初に公開鍵１で、次に公開鍵２で暗号化されたメッセージは、秘密鍵１、次いで秘密鍵２で解読可能であり、また、秘密鍵２、次いで秘密鍵１でも解読可能である。
【００２４】
二つの暗号鍵ペアのうちの一方は、公開識別鍵と秘密識別鍵とからなる識別鍵ペアであってもよい。識別鍵ペアは、ユーザおよびその通信デバイスに一意に関連付けられてもよい。例えば、ユーザ１（１０２）およびデバイスＡ１０６に対して一意の識別鍵ペアが生成されてもよい。ユーザ１（１０２）が通信のために異なる通信デバイスを用いることを望む場合、そのユーザ−デバイスペアに対して識別鍵の異なるペアが生成されてもよい。逆に、異なるユーザ、例えばユーザ３、がデバイスＡ１０６を用いて誰かと通信することを望む場合、ユーザ３とデバイスＡ１０６とに対して、さらに別の識別鍵ペア（これはユーザ１（１０２）とデバイスＡ１０６とに対して発行された識別鍵ペアとは異なる）が生成されうる。同様に、ユーザ２（１０４）およびデバイスＢ１０８に対して一意の識別鍵ペアが生成されてもよい。デバイスＡ１０６およびデバイスＢ１０８は、認証器１１０などの中央認証機関に自身の一意の公開識別鍵を送信してもよい。この場合、それらは他のデバイスによって発見され、通信セッションが開始されうる。
【００２５】
二つの暗号鍵ペアのうちの他方は、公開セッション鍵（または「公開メッセージ鍵」）と秘密セッション鍵（または「秘密メッセージ鍵」）とからなるセッション鍵ペア（「メッセージ鍵ペア」とも称される）であってもよい。セッション鍵ペアは、ユーザ、その通信デバイスおよび通信セッションに関連付けられてもよい。したがって、ユーザおよびデバイスに特定的に関連付けられることに加えて、セッション鍵は、ユーザが参加していてもよい特定の通信セッションにも付随してもよい。したがって、ユーザ１（１０２）がユーザ２（１０４）との通信セッションを行っている場合、デバイスＡ１０６は、その特定の通信セッションのためだけに用いられるセッション鍵ペアを生成できる。通信セッションが終わってユーザ１（１０２）が新たな通信セッションをユーザ２（１０４）または他の誰かと始めることを望む場合、デバイスＡ１０６は以前に用いられた通信セッション鍵を破棄し、メッセージ鍵の新たな組を生成してもよい。デバイスＡ（１０６）は同じ通信セッション中においてもセッション鍵をリフレッシュしてもよい。異なる通信セッションに対して（または同じ通信セッションに対して）異なるセッション鍵を用いることで、過去の通信セッションを再生したり再生成したりすることが困難となる。メッセージを解読するのに必要な特定のセッション鍵はとっくに失われているか破壊されてしまっているからである。一方、デバイスＡ１０６は各通信セッションの前に認証器１００に登録しなければならないことを心配する必要は無い。登録はデバイスＡの公開識別鍵で実行可能であり、これはセッションごとに変わるものではないからである。
【００２６】
各通信セッションについてひとつのセッション鍵ペアを用いることに代えて、セッション鍵を種々の時間間隔でリフレッシュ（そうでなければ更新する、回す、または鍵回転するとして知られる）してもよい。ある態様では、セッション鍵は固定の時間スケジュールにしたがって規則的にリフレッシュされてもよい。例えば、デバイスＡ１０６およびデバイスＢ１０８は、２４時間ごとに、各デバイス−ユーザペアに対して新たなセッション鍵セットを生成するよう構成されてもよい。他の態様では、鍵回転スケジュールは種々のファクタに依存して動的に調整されてもよい。該ファクタは例えば、特定の通信セッションのセキュリティレベル（例えば、よりセンシティブな通信はより頻度の高い鍵リフレッシュを得る）や、ネットワークの全体的なセキュリティレベル（例えば、ネットワークへのハッキング試行が報告された場合に鍵をより高い頻度で回す）や、デバイス負荷（例えば、デバイスのプロセッサがビジーである場合に鍵をより低い頻度で回す）や、ユーザプリファレンス（すなわち、ユーザ１（１０２）はリフレッシュ間隔を手動で設定してもよい）などである。さらに、規則的なリフレッシュスケジュールの代わりにまたはそれに合わせて、デバイスＡ１０６は、通信セッションが完了すると、または後の通信セッションが始まる前の任意のときに、セッション鍵を破壊するかまたはリフレッシュするよう構成されてもよい。セッション鍵はメッセージごとに回されてもよい。その場合、デバイスＡ１０６とデバイスＢ１０８との間で交換される各メッセージの前に新たな鍵交換が発生してもよく、各メッセージは一意のセッション鍵で暗号化されてもよい。デバイスＡ１０６は自身のセッション鍵またはデバイスＢのセッション鍵もしくはその両方を破壊してもよい。ある態様では、識別鍵もまた回されてもよい。しかしながら、多くの場合識別鍵はセッション鍵よりもはるかに低い頻度で回されてもよく、識別鍵を回すことは通信の再生不能性を得るために必要なものではない。
【００２７】
図２は、特に鍵交換が完了した後に、種々の暗号鍵が例示的なクライアントデバイスにいかに保持されるかを示す。この例示的なストレージ構成２００では、デバイスＡ１０６およびデバイスＢ１０８はそれぞれ種々の暗号鍵を保持するためのストレージエリアを有してもよい。鍵ストレージ２０２において、デバイスＡ１０６はそれ自身の識別鍵ペア２０４とそれ自身のセッション鍵ペア２０６とを保持することができる。識別鍵ペア２０４は、秘密識別鍵１（２１２）と数学的に関連する公開識別鍵１（２１０）を備えてもよい。同様に、セッション鍵ペア２０６は、公開セッション鍵１（２１４）と、それと数学的にリンクする秘密セッション鍵１（２１６）と、を備えてもよい。デバイスＡ１０６は、図１の認証器１１０やデバイスＢ１０８などの他の主体に公開鍵２１０、２１４を公開してもよいが、秘密鍵２１２、２１６を秘密のまま（すなわち、非公開）としておいてもよい。デバイスＢもまた鍵ストレージ２２２などの別個のストレージエリアを有し、そこではそれはそれ自身の識別鍵ペア２２４とそれ自身のセッション鍵ペア２２６とを維持する。識別鍵ペア２２４は公開識別鍵２（２３０）と秘密識別鍵２（２３２）とを備え、一方セッション鍵ペア２２６は公開セッション鍵２（２３４）と秘密セッション鍵２（２３６）とを備えてもよい。図２に示される鍵は異なる時刻に生成および／または格納されてもよい。
【００２８】
加えて、デバイスＡ１０６およびデバイスＢ１０８は、鍵交換を通じてまたは中央認証機関から取得された互いの公開鍵２０８、２２８を保持してもよい。したがって、デバイスＡ１０６は、公開識別鍵２（２１８）および公開セッション鍵２（２２０）をその鍵ストレージ２０２に保持してもよい。同様に、デバイスＢ１０８は、公開識別鍵１（２３８）および公開セッション鍵１（２４０）を鍵ストレージ２２２に保持してもよい。したがって、デバイスＡ１０６はデバイスＢの公開鍵２０８のうちのひとつ以上でデバイスＢ１０８への外向きメッセージを暗号化し、一方、デバイスＢ１０８はデバイスＡの公開鍵２２８のうちのひとつ以上で同じことを行ってもよい。
【００２９】
鍵ストレージ２０２および鍵ストレージ２２２はそれぞれ、図５Ａに示されるような、ストレージデバイス５３０やＲＯＭ５２０などの不揮発性メモリであってもよい。あるいはまた、鍵ストレージ２０２および鍵ストレージ２２２はそれぞれ、図５Ａにさらに示されるような、システムメモリ５１５やＲＡＭ５２５などの揮発性メモリであってもよい。図２では鍵ストレージ２０２および鍵ストレージ２２２はそれぞれひとつのストレージデバイスであるかのように描かれているが、それらは同じまたは異なるタイプの二つ以上の物理的または論理的ストレージデバイスからなってもよい。例えば、デバイスＡ１０６は識別鍵２０４などのある鍵をより恒久的なストレージ、例えばハードディスクドライブに保持し、一方でそれはセッション鍵２０６や遠隔公開鍵２０８などの他の鍵をより揮発的なまたは一時的なストレージエリア、例えばＲＡＭに保持してもよい。さらに、デバイスＡ１０６はセッション鍵２１４、２１６、２２０をメモリの同じブロックに書き込むよう構成されてもよく、その結果、鍵のうちのひとつがリフレッシュされた場合に以前の鍵が上書きされ、したがって、古い鍵を取得することが不可能または少なくともより困難になる。ある態様では、セッション鍵２１４、２１６、２２０は揮発性メモリにのみ保持される。その結果、デバイスＡ１０６の電源が切られた場合（および特に再び電源を入れた場合）、鍵は自動的に取得不能となる。セッション鍵（特に秘密セッション鍵）を失うことは、過去の会話のうちのいくつかが解読不能（すなわち、再生不能または再生成不能）となることを意味するが、通信セッションは異なる鍵セットによることで継続可能である。
【００３０】
図３Ａは、クライアントＡ３０２とクライアントＢ３０４との間の例示的な再生不能通信セッションを開始するためのシーケンス図３００Ａを示す。通信セッションはサーバ３０６を含んでもよい。クライアントＡ３０２、クライアントＢ３０４およびサーバ３０６はそれぞれ、図１に示されるデバイスＡ１０６、デバイスＢ１０８および認証器１１０に対応してもよい。図３Ａおよび４Ｂに示される任意の通信はクライアントデバイスのうちのひとつから発せられ、サーバ３０６によって転送され、相手のクライアントデバイスで終端するが、該通信は一方のクライアントデバイスから他方のデバイスへ（すなわち、ピアツーピア）、最初にサーバ３０６を横断する必要なしに伝送されてもよい。再現不能通信セッションを行うために、デバイスは登録３０８と通信要求３１０と鍵交換３１２とを行ってもよい。
【００３１】
登録フェーズ３０８の間、クライアントＡは自身の識別鍵を生成してもよい（３１４）。識別鍵は、互いに数学的にリンクした公開識別鍵と秘密識別鍵とからなる識別鍵ペアであってもよい。識別鍵ペアはクライアントデバイスＡ３０２およびそのユーザに特有のものであってもよい。クライアントＡ３０２は、その公開識別鍵を中央認証機関（３１６）であってもよいサーバ３０６に預けることで、サーバ３０６に登録してもよい（３１８）。登録３１６中、クライアントＡ３０２はサーバ３０６に、ユーザの生体情報やクライアントＡ３０２のルーティング情報やデバイススペック／能力などの他の関連情報を提供してもよい。あるいはまた、識別鍵はサーバ３０６によって生成され、サーバ３０６は安全なチャネルを通じてクライアントＡに秘密識別鍵を送信してもよい。一方、クライアントＢ３０４もそれ自身の識別鍵セットを生成し（３２０）、サーバ３０６に登録し（３２２）、かつサーバ３０６にそれ自身の公開識別鍵を送信してもよい（３２４）。図３ＡではクライアントＡ３０２およびクライアントＢがサーバ３０６に同時に登録するように描かれているが、二つのデバイスは異なる時刻にサーバ３０６に登録してもよい。さらに、毎回、登録３０８が通信セッションの前にくる必要も無い。例えば、クライアントＡ３０２がサーバ３０６への登録をすでに済ませてしまっている場合、クライアントＡ３０２は、識別鍵の更新などのクライアントＡ３０２での変化がない限り、登録３０８の別のラウンドを行うことなしに、他の通信セッションを開始することができる。
【００３２】
クライアントＡ３０２とクライアントＢ３０４との間の通信セッションを開始するために、それらは通信要求フェーズ３１０に入ってもよい。このフェーズでは、クライアントＡ３０２などの要求デバイスは通信要求をサーバ３０６に送信できる（３２６）。要求を受信すると、サーバ３０６はまずクライアントＡ３０２のＩＤの認証を試みることで、それが登録されたクライアントデバイスのうちのひとつであることを確かめてもよい。サーバ３０６は各クライアントデバイスの存在情報（すなわち、デバイスおよび／またはその関連ユーザが現在通信可能であるか否か）を監視し、クライアントＢ３０４が現在通信不能であるとサーバ３０６が判定した場合にはクライアントＡ３０２の要求を拒否してもよい。例えば、クライアントＢ３０４の存在状態が「オフライン」、「利用不能」または「ビジー」として現れた場合、サーバ３０６はクライアントＡ３０２に、クライアントＢ３０４が利用不能であるために要求を完了することができなかったことを知らせてもよい。一方、クライアントＢ３０４が利用不能であるとサーバ３０６が判定しない場合、サーバ３０６はクライアントＢ３０４に要求を転送できる（３２８）。存在情報は、全てのユーザにグローバルに適用可能である代わりに、個別のユーザやデバイスに基づいて個別化されうる。言い換えると、クライアントＡ３０２は異なるユーザやデバイスに対してそれ自身の複数の存在状態を設定することができる。例えば、クライアントＡ３０２のユーザは、自身の家族に対しては自信を利用可能としつつ自身の同僚からのアクセスをブロックすることを望む場合がある。
【００３３】
クライアントＢは要求を受諾してもよい（３３０）。受諾はクライアントＢ３０４のユーザによって発行されてもよい。一方、クライアントＢが要求を拒否するかまたは単に所定期限内に要求を受諾しなかった場合、サーバ３０６はクライアントＡ３０２に要求が拒否されたことを知らせてもよく、それにより通信セッションを終えてもよい。クライアントＢ３０４が要求を受諾した（３３０）後、クライアントＢ３０４はクライアントＡの公開識別鍵を取得できる（３３２）。後述のように、公開鍵の取得は鍵交換フェーズ３１２の一部とされてもよい。クライアントＢ３０４は、図２の鍵ストレージ２２２などのストレージに、取得された公開識別鍵を格納できる。ある状況では、クライアントＡ３０２の最初の通信要求はその秘密識別鍵でサインされた（すなわち、暗号化された）デジタル署名を含んでもよい。クライアントＢ３０４がクライアントＡ３０２の公開識別鍵と共に署名を取得した後、クライアントＢ３０４はクライアントＡ３０２の公開識別鍵を用いて署名を検証し、それによって要求者（すなわち、クライアントＡ３０２）のＩＤを認証することができる。クライアントＢ３０４はまた、クライアントＡ３０２の公開識別鍵の一部としてまたはそれと共に、クライアントＡ３０２のルーティング情報を取得してもよい。この場合、クライアントＢ３０４は将来の通信において、サーバ３０６をバイパスし、データをクライアントＡに直接送信することができる。
【００３４】
クライアントＡ３０２の公開識別鍵が悪人の手に落ちないことを保証するために、サーバ３０６はセキュリティ手段を用いて、二つ以上のクライアントデバイスが鍵をダウンロードすることを防いでもよい。例えば、公開識別鍵が二つ以上のデバイスによってダウンロードされた場合、アラームをトリガしてその事実をクライアントＡ３０２および／またはクライアントＢ３０４に知らせてもよい。クライアントＢ３０４のユーザが二つ以上のクライアントデバイスからクライアントＡ３０２と通信することを望む場合、クライアントＢ３０４はクライアントＡ３０２に属する同じ公開識別鍵で他のクライアントデバイスに授粉することができる。
【００３５】
通信要求が受諾されると、クライアントＡ３０２およびクライアントＢ３０４は鍵交換３１２に入ってもよい。まず、クライアントＢ３０４は自身のセッション鍵ペア−ひとつの公開セッション鍵およびひとつの対応する秘密セッション鍵−を生成できる（３３４）。これらのセッション鍵は、クライアントＢ３０４、そのユーザおよびクライアントＡ３０２によって要求された通信セッションに特有となるよう生成されうる。クライアントＢ３０４は次いで、クライアントＢ３０４の公開識別鍵および公開セッション鍵を含む鍵交換メッセージを送信できる（３３６）。鍵交換メッセージはサーバ３０６に送信され、サーバ３０６はそのメッセージをクライアントＡ３０２に転送する（３３８）。あるいはまた、鍵交換メッセージはクライアントＡ３０２に直接送信されうる。鍵交換メッセージはクライアントＡ３０２の公開識別鍵で暗号化され、この場合、マッチする秘密識別鍵を有するデバイス（すなわち、クライアントＡ３０２）のみがそのメッセージを解読できる。ある態様では、鍵交換メッセージは、クライアントＢ３０４の公開セッション鍵と、クライアントＢの秘密識別鍵でサインされたデジタル署名と、を含んでもよい。クライアントＡ３０２は続いてそのメッセージを受信し、クライアントＢ３０４の公開識別鍵で署名を検証することによって、その送り手（すなわち、クライアントＢ３０４）を認証してもよい。クライアントＢ３０４の公開識別鍵は以前にクライアントＢ３０４によってサーバ３０６に掲示され、クライアントＡ３０２によって取得されたものである。クライアントＡ３０２が鍵交換メッセージを受信した後、それは（例えばそれ自身の秘密識別鍵を用いることによって）メッセージを解読し、クライアントＢ３０４から受信した公開識別鍵および／または公開セッション鍵を、図２に示される鍵ストレージ２０２などの鍵ストレージに格納することができる。
【００３６】
クライアントＡ３０２は次いで自身のセッション鍵セット−ひとつの公開セッション鍵およびひとつの対応する秘密鍵−を生成してもよい（３４０）。しかしながら、クライアントＡ３０２はクライアントＢ３０４の公開セッション鍵を受信する前にセッション鍵を生成してもよい。生成されたセッション鍵は、クライアントＡ３０２、そのユーザおよびクライアントＡ３０２によって要求された通信セッションに特有でありうる。クライアントＢ３０４の公開セッション鍵を用いて、クライアントＡ３０２は、クライアントＡ３０２自身の公開セッション鍵を含む別の鍵交換メッセージを暗号化できる。この第２鍵交換メッセージは、クライアントＢ３０４の公開識別鍵で二重に暗号化されうる。クライアントＡ３０２はサーバ３０６に暗号化された鍵交換メッセージを送信し（３４２）、サーバ３０６はそのメッセージをクライアントＢ３０４に渡してもよい（３４４）。あるいはまた、第２鍵交換メッセージは、サーバ３０６を通過すること無く、クライアントＡ３０２からクライアントＢ３０４へ直接送信されてもよい。メッセージを受信した後、クライアントＢ３０４はそのメッセージを解読し、受信した公開セッション鍵をそのストレージに格納できる。
【００３７】
図３Ｂは、例示的な再生不能通信セッションを行うためのシーケンス図３００Ｂを示す。シーケンス図３００Ｂは、シーケンス図３００Ａの続きであってもよく、通信セッション３４６は鍵交換３１２の後に直接続く。クライアントＡ３０２とクライアントＢ３０４との間の通信セッション３４６の間、オプションの鍵更新３４８が通信セッション３４６中に行われてもよい。通信セッション３４６が終了した後、鍵失効３５０が通信セッション３４６に続いてもよい。鍵交換３１２の後、かつ、通信セッション３４６の開始時点において、クライアントＡ３０２はそのストレージに、自身の識別鍵ペアおよび自身のセッション鍵ペアと、それがクライアントＢ３０４から受信した公開識別鍵および公開セッション鍵と、を有してもよい。逆に、クライアントＢ３０４はそれ自身のストレージに、クライアントＡ３０２に属する公開識別鍵および公開セッション鍵に加えて、その識別鍵ペアおよびセッション鍵ペアを有してもよい。
【００３８】
これらの種々の暗号鍵を用いることで、クライアントＡ３０２およびクライアントＢ３０４は、メッセージ１（３５２、３５４）やメッセージ２（３５６）やメッセージ３（３７０）やメッセージ４（３７２）などの複数の暗号化メッセージを通信セッション３４６中に交換することができる。これらのメッセージはテキストや声や音やビデオや文書等を含んでもよい。図３ＢではクライアントＡ３０２およびクライアントＢ３０４が四つのメッセージを交換するよう描かれているが、当業者であれば、通信セッション３４６の期間中に、二つのデバイスの間で、任意の数のメッセージが任意の順序で交換されうることを理解するであろう。これらのメッセージのサイズや持続期間や優先度やコンテンツタイプなどは変わりうる。メッセージ１（３５２、３５４）などのいくつかのメッセージはサーバ３０６を介して送信されうる。一方、メッセージ２（３５６）やメッセージ３（３７０）やメッセージ４（３７２）などの他のメッセージは、ピアツーピア通信プロトコル（例えば、ウエブリアルタイム通信（ＷｅｂＲＴＣ））を介して一方のクライアントデバイスから他方へ直接送信されうる。ある態様では、通信セッション３４６はサーバ中継型通信セッションとして開始され、その後、通信セッション３４６中にピアツーピアメッセージ交換へと移行してもよい。
【００３９】
各メッセージはレシーバに属する公開セッション鍵を用いて暗号化されてもよい。例えば、メッセージ１（３５２）はクライアントＡ３０２から発せられクライアントＢ３０４宛であるが、クライアントＢ３０４に属する公開セッション鍵で暗号化され、マッチする秘密セッション鍵によって解読されうる。他の例では、メッセージ２（３５６）はクライアントＢ３０４によって送信されクライアントＡ３０２によって受信されるが、クライアントＢ３０４によってクライアントＡ３０２の公開セッション鍵で暗号化され、クライアントＡ３０２によってその秘密セッション鍵を用いて解読されうる。さらに、交換されるメッセージは公開セッション鍵および公開識別鍵で二重に暗号化されうる。例えば、メッセージ１（３５２、３５４）はクライアントＡ３０２によって、クライアントＢ３０４の公開識別鍵および公開セッション鍵を用いて暗号化され、クライアントＢ３０４によってその秘密識別鍵および秘密セッション鍵を用いて解読されうる。通信セッション３４６は、相手のデバイスにセッション終了メッセージを発行することによって、いずれかのクライアントデバイスによって明示的に終了されうる。そうでなければ、通信セッション３４６は、二つのデバイスの間の通信がしばらくの間「アイドル」となったときに自動的に失効するよう構成されうる。例えば、通信セッション３４６は、所定の期間二つのデバイスの間でメッセージが交換されなければセッション３４６が終了するよう構成されうる。
【００４０】
オプションで、通信セッション３４６中にひとつ以上の鍵更新３４８が生じうる。鍵更新３４８では、ひとつ以上のセッション鍵が回され、新たなセッション鍵セットで置き換えられる。鍵更新３４８は種々の時間間隔で生じうる。例えば、通信セッション３４６は、１０分ごとに、または１０のメッセージが交換されるごとに、セッション鍵を回すように構成されてもよい。当業者であれば、鍵更新３４８のタイミングを決定するのに他の条件が用いられうることを認識するであろう。鍵の更新は多くの場合より多くの時間および／またはリソースを消費しうるが、セキュリティを向上させ、過去のメッセージの再現性を低減しうる。鍵更新３４８は鍵交換３１２と同様の態様で行われうる。例えば、鍵更新３４８の一部として、クライアントＡ３０２は保持されるそのセッション鍵３５８をリフレッシュしてもよい。これは、クライアントＡ３０２の公開セッション鍵を破壊することと、クライアントＡ３０２の秘密セッション鍵を破壊することと、クライアントＢ３０４の公開セッション鍵を破壊することと、および／またはクライアントＡ３０２の新たなセッション鍵ペアを生成することと、を含んでもよい。クライアントＡ３０２は次いでサーバ３０６に新たに生成された公開セッション鍵を送信し（３６０）、サーバ３０６はその鍵をクライアントＢ３０４に転送してもよい（３６２）。あるいはまた、鍵は、サーバ３０６を通過すること無く、クライアントＢ３０４へ直接送信されてもよい。
【００４１】
同様に、クライアントＢ３０４はひとつ以上のセッション鍵をリフレッシュし（３６４）、新たなその公開セッション鍵をクライアントＡ３０２へ送信してもよい（３６６、３６８）。図３Ｂでは、クライアントＡ３０４はクライアントＡ３０２の後にそのセッション鍵を更新するように描かれているが、当業者であれば、クライアントＢ３０４がクライアントＡ３０２の前またはそれと同時にセッション鍵をリフレッシュしてもよいことを理解するであろう。鍵更新３４８が完了すると、後続のメッセージは新たな公開セッション鍵で暗号化されうる。例えば、メッセージ３（３７０）はクライアントＢ３０４の新たな公開セッション鍵で暗号化され、クライアントＢ３０４の新たな秘密セッション鍵で解読されてもよく、一方で、メッセージ４（３７２）はクライアントＡ３０２の新たな公開セッション鍵で暗号化され、クライアントＡ３０２の新たな秘密セッション鍵で解読されてもよい。ある態様では、鍵更新３４８は現在の通信セッションの終了を示すと共に新たな通信セッションの開始を示してもよい。したがって、メッセージ３（３７０）およびメッセージ４（３７２）は通信セッション３４６とは別個の新たな通信セッションの一部とされてもよい。
【００４２】
通信セッション３４６が完了すると、または通信セッション３４６が終了したいくらか後であって新たな通信が始まる前、クライアントＡ３０２およびクライアントＢ３０４は、通信セッション３４６中に交換されたメッセージの再現性を低減するために、通信セッション３４６に含まれるひとつ以上のセッション鍵を破壊してもよい。通信セッション３４６中にメッセージを暗号化するために使用されたセッション鍵のうちのいくつかは、ひとつ以上の鍵更新プロセス３４８によって通信セッション３４６中に既に失効しているかもしれない。しかしながら、最後の残存するセッション鍵も、通信セッション３４６の終結において失効しうる。再生不能性要件を満たすために、クライアントＡ３０２はその鍵ストレージに保持されるひとつ以上のセッション鍵を破壊することができる（３７４）。これは、自身の秘密−公開セッション鍵ペアおよびクライアントＢ３０４の公開セッション鍵を含んでもよい。鍵の破壊は、メモリやハードディスクドライブなどのストレージから関連データを消去することによって達成可能である。セッション鍵を新たなセッション鍵データなどの他のデータで上書きすることで、古い鍵の回復をより困難または不可能にすることができる。同様に、クライアントＢ３０４もまたひとつ以上のセッション鍵を破壊してもよい（３７６）。オプションで、この段階でひとつ以上の識別鍵がリフレッシュされるか破壊されてもよい。しかしながら、そのようにすることは、再生不能性のためには必要ではない。
【００４３】
いくつかの基本的なシステムコンポーネントおよび概念を開示したので、開示は図４に示される例示的な方法の実施の形態に移る。明確性のため、方法を実行するよう構成された図１に示されるサーバ１１０および二つのクライアントデバイス１０６、１０８を備えるシステム１００によって方法を説明する。あるいはまた、しかしながら、方法は図５Ａに示されるシステム５００または図５Ｂに示されるシステム５５０によって実行されてもよい。本明細書で概説されるステップは例示的なものであり、それらの任意の組み合わせが任意の順序で実装されうるし、それは所定のステップを除いたり加えたり変更したりするような組み合わせを含むものである。
【００４４】
図４は、例示的な方法の実施の形態を示す。まず、システム１００は、第１ユーザに関連付けられた第１デバイスを特定してもよい。ここで、第１デバイスは公開識別鍵を有する（４０２）。公開識別鍵などの公開鍵、および秘密識別鍵などの対応する秘密鍵は、公開鍵で暗号化された暗号化メッセージが対応する秘密鍵でのみ解読可能であるように、数学的に互いにリンクされてもよい。システム１００は、第１デバイスと第２ユーザに関連付けられた第２デバイスとの間の鍵交換を行ってもよい。そこでは公開識別鍵および公開セッション鍵は第１デバイスから第２デバイスに送信される（４０４）。
【００４５】
鍵交換を行う前に、システム１００は、第１デバイスにおいて、第１公開識別鍵と、第１公開識別鍵に対応する第１秘密識別鍵と、を生成してもよい。ここで、第１公開識別鍵および第１秘密識別鍵は第１ユーザおよび第１デバイスに特有である。また、システム１００は、鍵交換を行う前に、第１デバイスからの公開識別鍵を認証器に送信することによって第１ユーザを認証器に登録してもよい。システム１００は第１デバイスにおいて、通信セッションを開始するための第１インジケーションであって第１ユーザからの第１インジケーションを受信してもよい。システム１００は次いで、通信セッションを開始するための要求を、第１デバイスから認証器へ送信してもよい。システム１００は、認証器からの要求を第２デバイスへ転送し、第２デバイスにおいて要求を受諾するための第２インジケーションであって第２ユーザからの第２インジケーションを受信してもよい。
【００４６】
鍵交換は、第２デバイスにおいて、認証器から第１公開識別鍵を取得することによって行われてもよく、この場合、第１デバイスは認証器に登録される。システム１００は第２デバイスにおいて、第２公開セッション鍵と第２公開セッション鍵に対応する第２秘密セッション鍵とを生成してもよい。この場合、第２公開セッション鍵および第２秘密セッション鍵は通信セッション、第２ユーザおよび第２デバイスに特有である。システム１００は、第２公開識別鍵と第２公開セッション鍵とを含む第１鍵交換メッセージを認証器を介して第２デバイスから第１デバイスへ送信してもよい。ここで、第１鍵交換メッセージは第１公開識別鍵で暗号化され、第２公開識別鍵は第２秘密識別鍵に対応し、第２公開識別鍵および第２秘密識別鍵は第２ユーザおよび第２デバイスに特有である。システム１００は第１デバイスにおいて、第１公開セッション鍵と第１公開セッション鍵に対応する第１秘密セッション鍵とを生成してもよい。この場合、第１公開セッション鍵および第１秘密セッション鍵は通信セッション、第１ユーザおよび第１デバイスに特有である。システム１００は次いで、第１公開セッション鍵を含む第２鍵交換メッセージを第１デバイスから第２デバイスへ送信してもよい。第２鍵交換メッセージは認証器を介して送信されてもよい。加えて、第２鍵交換メッセージは第２公開識別鍵および／または第２公開セッション鍵で暗号化されうる。第１デバイスは第１デバイスに関連付けられた揮発性メモリに秘密セッション鍵を保持可能であり、該秘密セッション鍵は公開セッション鍵に対応する。第１デバイスは、秘密セッション鍵が失効した場合、揮発性メモリのなかの秘密セッション鍵を他のデータで上書きするよう構成されうる。他のデータは新たな秘密セッション鍵でありうる。
【００４７】
鍵交換が行われた後、システム１００は第１ユーザと第２ユーザとの間の通信セッションを行ってもよい。ここで、通信セッションの間に第２デバイスから第１デバイスへ送信されるメッセージは公開識別鍵および公開セッション鍵で暗号化される（４０６）。メッセージは公開セッション鍵のみで暗号化されてもよい。通信セッションは、第１デバイスから第２デバイスへ暗号化メッセージを送信することを含み、暗号化メッセージは第２公開識別鍵および第２公開セッション鍵で暗号化されてもよい。システム１００は、第２デバイスにおいて、第２秘密識別鍵および第２秘密セッション鍵を用いて暗号化メッセージを解読してもよい。第１暗号化メッセージは認証器を介して第１デバイスから第２デバイスへ送信されうる。そうでなければ、第１暗号化メッセージはピアツーピア接続を介して第１デバイスから第２デバイスへ送信されうる。通信セッション中、システム１００は、第２デバイスから第１デバイスへ暗号化メッセージを送信することができ、暗号化メッセージは第１公開識別鍵および第１公開セッション鍵で暗号化されてもよい。システム１００は、第１デバイスにおいて、第１秘密識別鍵および第１秘密セッション鍵を用いて暗号化メッセージを解読してもよい。
【００４８】
公開セッション鍵は通信セッションが完了すると失効するよう構成されてもよい。公開セッション鍵は後の通信セッションの前に失効するよう構成されてもよい。加えて、公開セッション鍵は通信セッション中に失効するよう構成されてもよい。したがって、公開セッション鍵が失効すると、システム１００は第１デバイスにおいて、通信セッションに関連付けられた新たな公開セッション鍵を生成してもよい。システム１００は、第１デバイスと第２デバイスとの間の別の鍵交換を行ってもよい。そこでは新たな公開セッション鍵は第１デバイスから第２デバイスに送信される。通信セッションはさらに行われてもよい。そこでは、通信セッション中に第２デバイスから第１デバイスへ送信されるひとつ以上のメッセージは公開識別鍵および新たな公開セッション鍵で暗号化されてもよい。
【００４９】
図５Ａおよび図５Ｂは、例示的なシステムの実施の形態を示す。例えば、図１に示されるデバイスＡ１０６、デバイスＢ１０８および／または認証器１１０はそれぞれ図５Ａの例示的システム５００または図５Ｂの例示的システム５５０として実装されてもよい。本技術を実施する場合に、より好適な実施の形態は当業者には明らかであろう。他のシステムの実施の形態が可能であることは、当業者には容易に理解されるであろう。
【００５０】
図５Ａは、通常のシステムバス計算システムアーキテクチャ５００を示す。システムのコンポーネントはバス５０５を使用して互いに電気的に通信可能となっている。例示的なシステム５００は、処理ユニット（ＣＰＵすなわちプロセッサ）５１０と、読み取り専用メモリ（ＲＯＭ）５２０やランダムアクセスメモリ（ＲＡＭ）５２５などのシステムメモリ５１５を含む各種のシステムコンポーネントをプロセッサ５１０に接続するシステムバス５０５と、を含む。システム５００は、プロセッサ５１０に直接接続されているか、近接しているか、あるいはその一部として統合されている高速メモリのキャッシュを含んでもよい。システム５００は、データをメモリ５１５および／またはストレージデバイス５３０からキャッシュ５１２へコピーして、プロセッサ５１０が高速でアクセスできるようにしてもよい。このようにして、キャッシュは、データを待っている間のプロセッサ５１０の遅延を回避するパフォーマンスブーストを提供してもよい。これらおよびその他のモジュールは、各種の動作を行うようにプロセッサ５１０を制御するか、または制御するように構成されてもよい。その他のシステムメモリ５１５が同様に使用可能であってもよい。メモリ５１５は、異なる性能特性を持つ複数の異なるタイプのメモリを含んでもよい。プロセッサ５１０は、いかなる汎用プロセッサを含んでもよいし、プロセッサ５１０を制御するように構成されたハードウエアモジュールまたはソフトウエアモジュール、例えばストレージデバイス５３０の中に格納されたモジュール１（５３２）、モジュール２（５３４）、モジュール３（５３６）を含んでもよいし、実際のプロセッサ設計の中にソフトウエアインストラクションが組み込まれている専用プロセッサを含んでもよい。プロセッサ５１０は本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュ等を含んでいる、完全に自己完結型のコンピュータシステムであってもよい。マルチコアプロセッサは対称的または非対称的であってもよい。
【００５１】
ユーザと計算デバイス５００との対話を可能にするため、入力デバイス５４５は、音声用マイクロフォン、ジェスチャまたはグラフィカル入力用のタッチセンシティブスクリーン、キーボード、マウス、動作入力、音声等、いくつもの入力メカニズムを表してもよい。出力デバイス５３５は、当業者には公知の複数の出力メカニズムのうちの１つ以上であってもよい。場合によっては、マルチモーダルシステムによって、ユーザが、計算デバイス５００と通信するための複数のタイプの入力を行うことが可能になる。通常、通信インタフェース５４０が、ユーザ入力とシステム出力とを管理してもよい。特定のハードウェア構成上で動作することについての制限はなく、従って、本明細書での基本的な特徴は、改良型のハードウェア構成やファームウェア構成が開発されれば、それらと容易に置き換わりうる。
【００５２】
ストレージデバイス５３０は不揮発性メモリである。ストレージデバイス５３０はハードディスクや、コンピュータによってアクセス可能でありかつデータを保持可能な他のタイプのコンピュータ可読媒体、例えば、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタルバーサタイルディスク、カートリッジ、ランダムアクセスメモリ（ＲＡＭｓ）５２５、読み取り専用メモリ（ＲＯＭ）５２０、それらのハイブリッド、等であってもよい。
【００５３】
ストレージデバイス５３０は、プロセッサ５１０を制御するためのソフトウエアモジュール５３２、５３４、５３６を含んでいてもよい。その他のハードウエアモジュールやソフトウエアモジュールも考えられる。ストレージデバイス５３０は、システムバス５０５に接続されていてもよい。一態様では、或る機能を行うハードウエアモジュールは、プロセッサ５１０、バス５０５、ディスプレイ５３５等のような、その機能を実行するのに必要なハードウエアコンポーネントと関連してコンピュータ可読媒体の中に格納されたソフトウエアコンポーネントを含んでもよい。
【００５４】
図５Ｂは、説明された方法を実行したりグラフィカルユーザインタフェース（ＧＵＩ）を生成して表示したりする際に使用可能なチップセットアーキテクチャを有するコンピュータシステム５５０を示す。コンピュータシステム５５０は、開示された技術を実施するのに使用可能なコンピュータハードウエア、ソフトウエアおよびファームウエアの一例である。システム５５０はプロセッサ５５５を含んでもよい。プロセッサ５５５は、ソフトウエア、ファームウエアおよび特定された計算を行うよう構成されたハードウエアを実行可能な、任意の数の物理的および／または論理的に別個のリソースを表す。プロセッサ５５５は、プロセッサ５５５への入力およびプロセッサ５５５からの出力を制御可能なチップセット５６０と通信してもよい。本例では、チップセット５６０はディスプレイなどの出力５６５へ情報を出力し、ストレージデバイス５７０に対して情報の読み書きを行ってもよい。ストレージデバイス５７０は例えば磁気媒体やソリッドステート媒体を含んでもよい。チップセット５６０はまた、ＲＡＭ５７５からデータを読み出し、ＲＡＭ５７５へデータを書き込んでもよい。チップセット５６０とのインタフェースのために、種々のユーザインタフェースコンポーネント５８５とのインタフェースとなるブリッジ５８０が提供されてもよい。そのようなユーザインタフェースコンポーネント５８５は、キーボードやマイクロフォンやタッチ検出および処理回路やマウスなどのポインティングデバイスなどを含んでもよい。一般に、システム５５０への入力は種々のソースのうちの任意のものから来てもよく、または機械により生成されおよび／または人により生成されてもよい。
【００５５】
チップセット５６０は、異なる複数の物理的インタフェースを有しうるひとつ以上の通信インタフェース５９０と連結されてもよい。そのような通信インタフェースは、有線および無線ローカルエリアネットワークとのインタフェースと、ブロードバンド無線ネットワークとのインタフェースと、パーソナルエリアネットワークとのインタフェースと、を含んでもよい。本明細書で開示されるＧＵＩを生成し表示し使用する方法のいくつかの応用は、物理的なインタフェースを介して順序付けられたデータセットを受けること、または順序付けられたデータセットがプロセッサ５５５がストレージ５７０または５７５に保持されるデータを解析することで機械そのものにより生成されることを含んでもよい。さらに、機械はユーザインタフェースコンポーネント５８５を介してユーザから入力を受け、プロセッサ５５５を使用してこれらの入力を解釈することで、ブラウズ機能などの適切な機能を実行してもよい。
【００５６】
例示的なシステム５００および５５０はひとつ以上のプロセッサ５１０を有してもよく、または処理能力を高めるためにネットワーク化された計算デバイスのグループまたはクラスタの一部であってもよいことは理解されるであろう。
【００５７】
説明の明確化のため、ある例では、本技術はデバイスやデバイスコンポーネントやソフトウエアで実施される方法のステップまたはルーチンやハードウエアとソフトウエアとの組み合わせを含む機能ブロックを含む個々の機能ブロックを含むものとして提示されてもよい。
【００５８】
ある実施の形態では、コンピュータ可読保持デバイス、媒体およびメモリは、ビットストリームを含むケーブルや無線信号などを含んでもよい。しかしながら、言及される場合、非一時的コンピュータ可読保持媒体は、エネルギやキャリア信号や電磁波や信号そのものなどの媒体を明示的に除外する。
【００５９】
上述の例に係る方法は、コンピュータ可読媒体に保持されるかそうでなければその媒体から利用可能なコンピュータ実行可能インストラクションを使用して実装されてもよい。そのようなインストラクションは、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに所定の機能もしくは機能のグループを実行させるかそうでなければ実行するよう設定するインストラクションおよびデータを含んでもよい。使用されるコンピュータリソースの一部はネットワークを介してアクセス可能であってもよい。コンピュータ実行可能インストラクションは、例えば、バイナリや、アセンブリ言語などの中間フォーマットインストラクションや、ファームウエアや、ソースコードであってもよい。インストラクション、使用される情報、および／または説明された例に係る方法中に生成される情報を保持するのに使用されうるコンピュータ可読媒体の例は、磁気または光学ディスク、フラッシュメモリ、不揮発性メモリを備えるＵＳＢデバイス、ネットワークストレージデバイスなどを含む。
【００６０】
本開示に係る方法を実装するデバイスはハードウエア、ファームウエアおよび／またはソフトウエアを含んでもよく、種々の形状ファクタのうちの任意のものをとりうる。そのような形状ファクタの典型的な例は、ラップトップや、スマートフォンや、小さい形状ファクタのパーソナルコンピュータや、パーソナルデジタルアシスタントなどを含む。本明細書で説明される機能は周辺機器やアドインカードにおいて実現されてもよい。さらなる例として、そのような機能は回路基板上で異なる複数のチップの間でまたは単一デバイスで実行される異なる複数の処理の間で実現されてもよい。
【００６１】
インストラクション、そのようなインストラクションを運ぶための媒体、そのようなインストラクションを実行するための計算リソース、およびそのような計算リソースをサポートするための他の構成は、本開示で説明される機能を提供するための手段である。
【００６２】
添付の請求項の範囲内の態様を説明するために様々な例および他の情報が使用されたが、そのような例における特定の特徴や構成に基づくいかなる請求項の限定も暗示されてはならない。当業者であれば、これらの例を使用して多種多様な実装を導くことができるであろう。さらに、いくつかの主題が構造的特徴および／または方法ステップの例に特有の言語で記述されたかもしれないが、添付の請求項で規定される主題はこれらの記述された特徴や行為に限定される必要はないことは理解されるべきである。例えば、そのような機能は異なるように分散されてもよいし、本明細書で特定されたもの以外のコンポーネントで実行されてもよい。むしろ、記述された特徴およびステップは、添付の請求項の範囲内のシステムおよび方法のコンポーネントの例として開示される。したがって、請求項は本明細書で示される態様に限定されることを意図されたものではなく、請求項の文言に調和する全ての範囲を許容するよう意図されたものである。そこでは、要素の単数としての指定はそうであると明示的に指定されない限りは「ひとつであってひとつのみ」を意味するよう意図されたものではなく、むしろ「ひとつまたは複数」を意味するよう意図されたものである。
【００６３】
「態様（aspect）」などのフレーズは、そのような態様が主題の技術に必須であることを暗示するものではなく、またそのような態様が主題の技術の全ての構成に当てはまることを暗示するものでもない。ある態様に関連する開示は、全ての構成またはひとつ以上の構成に当てはまりうる。態様などのフレーズは、ひとつ以上の態様を指してもよく、逆もまたしかりである。「構成（configuration）」などのフレーズは、そのような構成が主題の技術に必須であることを暗示するものではなく、またそのような構成が主題の技術の全ての構成に当てはまることを暗示するものでもない。ある構成に関連する開示は、全ての構成またはひとつ以上の構成に当てはまりうる。構成などのフレーズは、ひとつ以上の構成を指してもよく、逆もまたしかりである。
【００６４】
「例示的」という語は、本明細書において、「例示または例として役に立つ」ことを意味するものとして用いられる。本明細書で「例示的」として説明される態様やデザインは、必ずしも、他の態様やデザインよりも好ましいものまたは有利であるものとして解釈されるべきではない。さらに、集合の「少なくともひとつ」を規定する請求項の用語は、その集合のひとつのメンバまたはその集合の複数のメンバが請求項を満足することを示す。
【図１】
0006307665.tif 000002
【図２】
0006307665.tif 000003
【図３Ａ】
0006307665.tif 000004
【図３Ｂ】
0006307665.tif 000005
【図４】
0006307665.tif 000006
【図５Ａ】
0006307665.tif 000007
【図５Ｂ】
0006307665.tif 000008