(57)【要約】  複数のステップサイズによる鍵ラチェットのための技法が記載される。１つの実施形態では、装置が、メッセージングコンポーネントであって、暗号化メッセージを受信し、暗号化メッセージは多次元のラチェット暗号化方式に従って暗号化されており、暗号化メッセージのメッセージ反復回数を判定し、復号鍵に基づいて暗号化メッセージを復号することによって復号後メッセージを生成するように動作する、メッセージングコンポーネントと、メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解し、複数のメッセージチェーン鍵反復回数に基づいて復号鍵を決定するように、プロセッサ回路上で動作する鍵管理コンポーネントと、を備え得る。他の実施形態が記載され、特許権を請求される。【選択図】図４
2020507962.tif 000002
【特許請求の範囲】
【請求項１】
多次元のラチェット暗号化方式に従って暗号化されている暗号化メッセージを受信することと、
前記暗号化メッセージのメッセージ反復回数を判定することと、
前記メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解することと、
前記複数のメッセージチェーン鍵反復回数に基づいて復号鍵を決定することと、
前記復号鍵に基づいて前記暗号化メッセージを復号することにより復号後メッセージを生成することと、
を含む、コンピュータ実装方法。
【請求項２】
前記復号鍵は複数のクライアントチェーン鍵に基づくものであり、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数の次元は、前記複数のクライアントチェーン鍵の可変ステップの前進を可能にする、請求項１に記載の方法。
【請求項３】
前記複数のクライアントチェーン鍵の可変ステップの前進は、１つまたは複数の暗号化メッセージを破棄することに相当する、請求項２に記載の方法。
【請求項４】
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
前記複数のクライアントチェーン鍵反復回数が前記複数のメッセージチェーン鍵反復回数と等しいと判定することと、
前記複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を前記復号鍵として決定することと、
前記最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合、前記暗号化メッセージの復号に応答して前記複数のクライアントチェーン鍵のうち２つ以上のクライアントチェーン鍵を前進させることと、
をさらに含む、請求項１に記載の方法。
【請求項５】
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
クライアント反復回数が前記メッセージ反復回数未満であることを判定することであって、前記クライアント反復回数は前記複数のクライアントチェーン鍵反復回数を合成したものに対応する、クライアント反復回数が前記メッセージ反復回数未満であると判定することと、
前記クライアント反復回数と前記メッセージ反復回数との間の反復距離に基づいて前記複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成することと、
前記複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を前記復号鍵として決定することと、
をさらに含む、請求項１に記載の方法。
【請求項６】
前記複数のクライアントチェーン鍵を前進させることは、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み、前記より次元の高いクライアントチェーン鍵を再生成することは、前記より次元の高いクライアントチェーン鍵の１つまたは複数の許容反復回数をスキップすることを含む、請求項５に記載の方法。
【請求項７】
メッセージングコンポーネントであって、暗号化メッセージを受信し、前記暗号化メッセージは多次元のラチェット暗号化方式に従って暗号化されており、前記暗号化メッセージのメッセージ反復回数を判定し、復号鍵に基づいて前記暗号化メッセージを復号することによって復号後メッセージを生成するように動作する、メッセージングコンポーネントと、
前記メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解し、前記複数のメッセージチェーン鍵反復回数に基づいて前記復号鍵を決定するように、プロセッサ回路上で動作する鍵管理コンポーネントと、
を備える装置。
【請求項８】
前記復号鍵は複数のクライアントチェーン鍵に基づくものであり、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数の次元は、前記複数のクライアントチェーン鍵の可変ステップの前進を可能にする、請求項７に記載の装置。
【請求項９】
前記複数のクライアントチェーン鍵の可変ステップの前進は、１つまたは複数の暗号化メッセージを破棄することに相当する、請求項８に記載の装置。
【請求項１０】
前記鍵管理コンポーネントが、
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
前記複数のクライアントチェーン鍵反復回数が前記複数のメッセージチェーン鍵反復回数と等しいと判定することと、
前記複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を前記復号鍵として決定することと、
前記最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合、前記暗号化メッセージの復号に応答して前記複数のクライアントチェーン鍵のうち２つ以上のクライアントチェーン鍵を前進させることと、
を行うように動作することをさらに含む、請求項７に記載の装置。
【請求項１１】
前記鍵管理コンポーネントが、
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
クライアント反復回数が前記メッセージ反復回数未満であることを判定することであって、前記クライアント反復回数は前記複数のクライアントチェーン鍵反復回数を合成したものに対応する、クライアント反復回数が前記メッセージ反復回数未満であることを判定することと、
前記クライアント反復回数と前記メッセージ反復回数との間の反復距離に基づいて前記複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成することと、
前記複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を前記復号鍵として決定することと、
を行うように動作することをさらに含む、請求項７に記載の装置。
【請求項１２】
前記複数のクライアントチェーン鍵を前進させることは、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み、前記より次元の高いクライアントチェーン鍵を再生成することは、前記より次元の高いクライアントチェーン鍵の１つまたは複数の許容反復回数をスキップすることを含む、請求項１１に記載の装置。
【請求項１３】
少なくとも１つのコンピュータ可読記憶媒体であって、実行されたとき、システムに、
多次元のラチェット暗号化方式に従って暗号化されている暗号化メッセージを受信することと、
前記暗号化メッセージのメッセージ反復回数を判定することと、
前記メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解することと、
前記複数のメッセージチェーン鍵反復回数に基づいて復号鍵を決定することと、
前記復号鍵に基づいて前記暗号化メッセージを復号することにより復号後メッセージを生成することと、
を行わせる命令を備える、少なくとも１つのコンピュータ可読記憶媒体。
【請求項１４】
前記復号鍵は複数のクライアントチェーン鍵に基づくものであり、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数の次元は、前記複数のクライアントチェーン鍵の可変ステップの前進を可能にする、請求項１３に記載のコンピュータ可読記憶媒体。
【請求項１５】
前記複数のクライアントチェーン鍵の可変ステップの前進は、１つまたは複数の暗号化メッセージを破棄することに相当する、請求項１４に記載のコンピュータ可読記憶媒体。
【請求項１６】
実行されたとき、システムに、
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
前記複数のクライアントチェーン鍵反復回数が前記複数のメッセージチェーン鍵反復回数と等しいと判定することと、
前記複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を前記復号鍵として決定することと、
を行わせるさらなる命令を備える、請求項１３に記載のコンピュータ可読記憶媒体。
【請求項１７】
実行されたとき、システムに、
前記最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値未満である場合、前記暗号化メッセージの復号に応答して前記最も次元の高いクライアントチェーン鍵を１ステップ前進させる、さらなる命令を備える、請求項１６に記載のコンピュータ可読記憶媒体。
【請求項１８】
実行されたとき、システムに、
前記最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合、前記暗号化メッセージの復号に応答して前記複数のクライアントチェーン鍵のうち２つ以上のクライアントチェーン鍵を前進させる、さらなる命令を備える、請求項１６に記載のコンピュータ可読記憶媒体。
【請求項１９】
実行されたとき、システムに、
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
クライアント反復回数が前記メッセージ反復回数未満であることを判定することであって、前記クライアント反復回数は前記複数のクライアントチェーン鍵反復回数を合成したものに対応する、クライアント反復回数が前記メッセージ反復回数未満であると判定することと、
前記クライアント反復回数と前記メッセージ反復回数との間の反復距離に基づいて前記複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成することと、
前記複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を前記復号鍵として決定することと、
を行わせるさらなる命令を備える、請求項１３に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記複数のクライアントチェーン鍵を前進させることは、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み、前記より次元の高いクライアントチェーン鍵を再生成することは、前記より次元の高いクライアントチェーン鍵の１つまたは複数の許容反復回数をスキップすることを含む、請求項１３に記載のコンピュータ可読記憶媒体。
【請求項２１】
特にメッセージングシステム内でメッセージの暗号化交換を行うための、コンピュータ実装方法であって、
多次元のラチェット暗号化方式に従って暗号化されている暗号化メッセージを受信することと、
前記暗号化メッセージのメッセージ反復回数を判定することと、
前記メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解することと、
前記複数のメッセージチェーン鍵反復回数に基づいて復号鍵を決定することと、
前記復号鍵に基づいて前記暗号化メッセージを復号することにより復号後メッセージを生成することと、
を含む、コンピュータ実装方法。
【請求項２２】
前記復号鍵は複数のクライアントチェーン鍵に基づくものであり、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数の次元は、前記複数のクライアントチェーン鍵の可変ステップの前進を可能にし、前記複数のクライアントチェーン鍵の前記可変ステップの前進は、任意選択で、１つまたは複数の暗号化メッセージを破棄することに相当する、請求項２１に記載の方法。
【請求項２３】
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得すること、
前記複数のクライアントチェーン鍵反復回数が前記複数のメッセージチェーン鍵反復回数と等しいと判定すること、および
前記複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を前記復号鍵として決定すること、および
任意選択で、前記最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合、前記暗号化メッセージの復号に応答して前記複数のクライアントチェーン鍵のうち２つ以上のクライアントチェーン鍵を前進させること、または
任意選択で、前記最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値未満である場合、前記暗号化メッセージの復号に応答して前記最も次元の高いクライアントチェーン鍵を１ステップ前進させること、
をさらに含む、請求項２１または２２に記載の方法。
【請求項２４】
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
クライアント反復回数が前記メッセージ反復回数未満であることを判定することであって、前記クライアント反復回数は前記複数のクライアントチェーン鍵反復回数を合成したものに対応する、クライアント反復回数が前記メッセージ反復回数未満であると判定することと、
前記クライアント反復回数と前記メッセージ反復回数との間の反復距離に基づいて前記複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成することと、
前記複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を前記復号鍵として決定することと、
をさらに含み、
前記複数のクライアントチェーン鍵を前進させることは、任意選択で、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み、前記より次元の高いクライアントチェーン鍵を再生成することは、前記より次元の高いクライアントチェーン鍵の１つまたは複数の許容反復回数をスキップすることを含む、請求項２１から２３のいずれか一項に記載の方法。
【請求項２５】
前記メッセージ反復回数は、前記暗号化メッセージを復号する際に少なくとも部分的に使用される前記メッセージの順序付けおよび順番情報を標示し、前記メッセージ反復回数は、任意選択で、前記暗号化メッセージの非暗号化ラッパー、特に非暗号化ヘッダ、の一コンポーネントであり、前記暗号化メッセージの秘密情報、プライベートな情報、またはその他の形で保護される情報が、前記暗号化メッセージの暗号化されたペイロード中に置かれ、前記暗号化メッセージおよび前記非暗号化ラッパーは、任意選択で、メッセージパッケージの一部としてメッセージングサーバを介して送られ、メッセージングコンポーネントにより、前記暗号化メッセージの前記非暗号化ラッパーから前記メッセージ反復回数を抽出することにより前記メッセージ反復回数を判定する、請求項２１から２４のいずれか一項に記載の方法。
【請求項２６】
メッセージングコンポーネントであって、暗号化メッセージを受信し、前記暗号化メッセージは多次元のラチェット暗号化方式に従って暗号化されており、前記暗号化メッセージのメッセージ反復回数を判定し、復号鍵に基づいて前記暗号化メッセージを復号することによって復号後メッセージを生成するように動作する、メッセージングコンポーネントと、
前記メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解し、前記複数のメッセージチェーン鍵反復回数に基づいて前記復号鍵を決定するように、プロセッサ回路上で動作する鍵管理コンポーネントと、
を備える装置。
【請求項２７】
前記復号鍵は複数のクライアントチェーン鍵に基づくものであり、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数の次元は、前記複数のクライアントチェーン鍵の可変ステップの前進を可能にし、前記複数のクライアントチェーン鍵の前記可変ステップの前進は、任意選択で、１つまたは複数の暗号化メッセージを破棄することに相当する、請求項２６に記載の装置。
【請求項２８】
前記鍵管理コンポーネントが、
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
前記複数のクライアントチェーン鍵反復回数が前記複数のメッセージチェーン鍵反復回数と等しいと判定することと、
前記複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を前記復号鍵として決定することと、
前記最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合、前記暗号化メッセージの復号に応答して前記複数のクライアントチェーン鍵のうち２つ以上のクライアントチェーン鍵を前進させることと、
を行うように動作することをさらに含む、請求項２６または２７に記載の装置。
【請求項２９】
前記鍵管理コンポーネントが、
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
クライアント反復回数が前記メッセージ反復回数未満であることを判定することであって、前記クライアント反復回数は前記複数のクライアントチェーン鍵反復回数を合成したものに対応する、クライアント反復回数が前記メッセージ反復回数未満であることを判定することと、
前記クライアント反復回数と前記メッセージ反復回数との間の反復距離に基づいて前記複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成することと、
前記複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を前記復号鍵として決定することと、
を行うように動作することをさらに含み、
前記複数のクライアントチェーン鍵を前進させることは、任意選択で、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み、前記より次元の高いクライアントチェーン鍵を再生成することは、前記より次元の高いクライアントチェーン鍵の１つまたは複数の許容反復回数をスキップすることを含む、請求項２６から２８のいずれか一項に記載の装置。
【請求項３０】
前記メッセージ反復回数は、前記暗号化メッセージを復号する際に少なくとも部分的に使用される前記メッセージの順序付けおよび順番情報を標示し、前記メッセージ反復回数は、任意選択で、前記暗号化メッセージの非暗号化ラッパー、特に非暗号化ヘッダ、の一コンポーネントであり、前記暗号化メッセージの秘密情報、プライベートな情報、またはその他の形で保護される情報が、前記暗号化メッセージの暗号化されたペイロード中に置かれ、前記暗号化メッセージおよび前記非暗号化ラッパーは、任意選択で、メッセージパッケージの一部としてメッセージングサーバを介して送られ、メッセージングコンポーネントが、前記暗号化メッセージの前記非暗号化ラッパーから前記メッセージ反復回数を抽出することにより前記メッセージ反復回数を判定するように動作可能である、請求項２６から２９のいずれか一項に記載の装置。
【請求項３１】
実行されたとき、システム、特に請求項２６から３０のいずれか一項に記載の装置に、請求項２１から２５の少なくとも１つに記載の方法の全てのステップを実施させる命令を備える、少なくとも１つのコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願は、２０１７年７月１４日出願の米国特許出願第１５／６４９，９２９号、名称「Ｔｅｃｈｎｉｑｕｅｓ  ｆｏｒ  Ｋｅｙ  Ｒａｔｃｈｅｔｉｎｇ  ｗｉｔｈ  Ｍｕｌｔｉｐｌｅ  Ｓｔｅｐ  Ｓｉｚｅｓ」、代理人整理番号１３６０Ｆ０１８４、２０１７年２月１７日出願の米国仮特許出願第６２／４６０，１２８号、名称「Ｔｅｃｈｎｉｑｕｅｓ  ｆｏｒ  Ｋｅｙ  Ｒａｔｃｈｅｔｉｎｇ  ｗｉｔｈ  Ｍｕｌｔｉｐｌｅ  Ｓｔｅｐ  Ｓｉｚｅｓ」、代理人整理番号１３６０Ｆ０１８４Ｚに対する米国特許法第１１９条（ｅ）の下における優先権の利益を主張し、両出願は全体が参照により本明細書に組み込まれる。
【背景技術】
【０００２】
ユーザは、２人以上のユーザ間のテキストによる会話の中で互いとメッセージをやり取りすることにより、メッセージングシステム内で互いと対話することがある。ユーザは、メッセージングシステム内で自身に関連付けられたユーザアカウントを有することがあり、ユーザアカウントは、ユーザのオンライン識別を提供し、ユーザに向けられたメッセージの宛先を提供し、そして一般にはメッセージングシステムへのユーザのアクセスおよび使用を協調させる。ユーザは、モバイルデバイス（例えば携帯電話）、デスクトップコンピュータ、ウェブブラウザ、特化したメッセージングクライアント等を含む各種のエンドポイントから、メッセージングシステムにアクセスし得る。
【発明の概要】
【０００３】
以下では、本明細書に記載されるいくつかの新規な実施形態についての基本的な理解を提供するために、簡略化された概要を提示する。この概要は、広範な概説ではなく、主要な／必須の要素を識別すること、またはそれらの範囲を明確にすることは意図されていない。いくつかの概念は、後で提示されるより詳細な説明への前置きとして、簡略化された形態で提示される。
【０００４】
様々な実施形態は、概して、複数のステップサイズによる鍵ラチェットのための技法を対象とする。いくつかの実施形態は、多次元のラチェットのための複数のステップサイズによる鍵ラチェットのための技法を特に対象とする。１つの実施形態では、例えば、装置は、メッセージングコンポーネントであって、暗号化メッセージを受信し、暗号化メッセージは多次元のラチェット暗号化方式に従って暗号化されており、暗号化メッセージのメッセージ反復回数を判定し、復号鍵に基づいて暗号化メッセージを復号することによって復号後メッセージを生成するように動作する、メッセージングコンポーネントと、メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解し、複数のメッセージチェーン鍵反復回数に基づいて復号鍵を決定するように、プロセッサ回路上で動作する鍵管理コンポーネントと、を備え得る。他の実施形態が記載され、特許権を請求される。
【０００５】
上記および関連する目的を達成するために、ある特定の例示的な態様が、以下の説明および添付の図面との関連で本明細書に記載される。これらの態様は、本明細書に開示される原理を実行することができる様々なやり方を示し、全ての態様およびその均等物が、特許請求される主題の範囲内にあることが意図される。他の利点および新規な特徴は、図面と併せて検討することにより以下の詳細な説明から明らかになろう。
【０００６】
本発明による実施形態は、特に、方法、記憶媒体、装置、およびコンピュータプログラム製品を対象とする添付の特許請求の範囲において開示され、１つの請求項カテゴリ、例えば、方法において言及された特徴はいずれも、別の請求項カテゴリ、例えば、システムにおいても特許請求され得る。添付の特許請求の範囲における前述に対する従属または参照は、もっぱら形式的な理由から選択される。しかし、いずれかの先行請求項に対する意図的な参照（特に複数の従属）からもたらされるいかなる主題も、請求項およびその特徴のいずれかの組合せが開示されるように、同様に特許請求され得、添付の特許請求の範囲において選択される従属に関わらず、特許請求され得る。特許請求されることが可能な主題は、添付の特許請求の範囲において述べられる特徴の組合せばかりでなく、特許請求の範囲における特徴の他の任意の組合せも備え、特許請求の範囲において言及された各特徴は、特許請求の範囲における他の任意の特徴または他の特徴の組合せと組み合わされ得る。さらに、本明細書において説明または描写される実施形態および特徴はいずれも、単独の請求項において、および／または本明細書において説明もしくは描写される任意の実施形態もしくは特徴との、もしくは添付の特許請求の範囲の特徴のいずれかとの任意の組合せで、特許請求され得る。
【図面の簡単な説明】
【０００７】
【図１】暗号化メッセージシステムの一実施形態を示す図である。
【図２】メッセージングシステムの一実施形態を示す図である。
【図３】暗号化メッセージシステムによるメッセージの送出および復号の一実施形態を示す図である。
【図４】図１のシステムに関する論理フローの一実施形態を示す図である。
【図５】図１のシステムに関する中央集中システムの一実施形態を示す図である。
【図６】図１のシステムに関する分散システムの一実施形態を示す図である。
【図７】コンピューティングアーキテクチャの一実施形態を示す図である。
【図８】通信アーキテクチャの一実施形態を示す図である。
【図９】無線デバイスアーキテクチャの一実施形態を示す図である。
【発明を実施するための形態】
【０００８】
デバイス間で送られるメッセージは、デバイス間を移動する間、暗号化されることがある。メッセージは、暗号鍵に従って暗号化され、復号鍵に従って復号されることがあり、これらの鍵は同じ鍵であり得る。メッセージの暗号化と復号に使用される１つまたは複数の鍵は、正しい復号鍵に従った暗号化メッセージの復号を可能にするために、デバイス間で同期され得る。
【０００９】
デバイスは鍵のラチェットを使用して、連続したメッセージの暗号化および復号に使用される１つまたは複数の鍵を反復的に前進させることができる。ラチェット機能が使用されることがあり、その場合は一連の鍵を生成することができ、それによりメッセージごとに異なる鍵を使用できるようにして、一連のメッセージを復号するために使用される一連の復号鍵のうち先行する復号鍵でメッセージを復号するために、攻撃者による鍵の復元を使用できないようにする。
【００１０】
暗号鍵を前進させることは、演算的に高費用な一連の動作であり得る。少なくとも、可能な場合には多数のラチェット前進を回避することが有益となる程度には、演算的に高費用であり得る。そのため、メッセージの一続きのシーケンスを破棄すべき場合には、破棄されたメッセージに関連付けられた復号鍵を生成することを控え、代わりに前方にスキップして、破棄されるのではなく復号されるべき次のメッセージの復号鍵を生成することが有益と考えられる。そのようにすることにより、デバイスは、破棄された復号鍵の一部または全てにわたって前進せずに済み、時間の節減となり、またそれによりデバイスの応答性と、特にモバイルデバイスにおける電力を増大させ得る。
【００１１】
多数の鍵を破棄することが有益であり得るシナリオは、着信する暗号化メッセージが頻繁に更新されるライブ情報を包含しており、このライブ情報の最も最近の反復のみが意味を持つある場合であり得る。例えば、あるグループメッセージスレッドへの参加者が互いに対してライブ位置情報を送ることがあり、このライブ位置情報は、各ユーザの現在の位置の正確な表示を可能にするために頻繁に更新される。ライブ位置機構は、ユーザの最も最近の位置を共有し、知ることに関するので、特定のユーザについての最も最近のライブ位置更新のみが意味を持つ。そのため、更新は、より最近の更新によって意味を持たなくなった場合には期限切れになることがあり、安全に破棄され得る。
【００１２】
デバイスがある期間にわたってオフラインであった場合は、ライブ位置機構の結果、デバイスが多数の期限切れの更新を受信し得る。デバイスは、それらの期限切れの更新を破棄し、それら期限切れの更新のための復号鍵の少なくとも一部分の生成をスキップし、代わりに前方にスキップして最も最近の更新のための復号鍵をより効率的に生成することから利益を得る可能性がある。そのため、実施形態は、ユーザに対するメッセージングシステムの効率および応答性を改良し得る。
【００１３】
次いで図面を参照するが、全ての図面を通じて同様の参照番号を使用して同様の要素を参照する。以下の記載では、その完全な理解を与えるため、説明を目的として、多数の具体的詳細が記載される。しかし、これら特定の詳細を省いても、新規な実施形態を実施できることは明らかであろう。他の事例では、周知の構造およびデバイスについては、その説明を容易とするために、ブロック図の形態で示している。その意図は、請求項に係る主題に矛盾しないあらゆる変更、均等物、および代替案を包括することである。
【００１４】
本明細書において使用される「ａ」および「ｂ」および「ｃ」ならびに同様の指示子は、任意の正の整数を表す変数と意図されることに留意されたい。よって、例えば、ある実装形態がａ＝５と値を設定する場合、コンポーネント１２２−１〜１２２−ａと例示されるコンポーネント１２２の完全なセットは、コンポーネント１２２−１、１２２−２、１２２−３、１２２−４、および１２２−５を含み得る。実施形態はこれに関して制限されない。
【００１５】
図１は、暗号化メッセージシステム１００のブロック図を例示する。１つの実施形態では、暗号化メッセージシステム１００は、１つまたは複数のコンポーネントを備えるソフトウェアアプリケーションを有する、コンピュータにより実施されるシステムからなり得る。図１に示す暗号化メッセージシステム１００は、限られた数の要素をあるトポロジーで有するが、暗号化メッセージシステム１００は、所与の実装形態に望まれるようにより多くのまたはより少ない要素を代替のトポロジーで含み得ることが認識できよう。
【００１６】
メッセージングサーバ１１０は、メッセージングシステムの一部としてのメッセージングプラットフォームによって運用される、１つまたは複数のメッセージングサーバを備え得る。メッセージングサーバは、インターネットアクセス可能なサーバを備えることができ、ネットワーク１２０がメッセージングシステムの様々なデバイス同士を接続し、少なくとも部分的にインターネットを備える。メッセージングシステムは、メッセージングサーバ１１０を使用して様々なユーザクライアントデバイスに対するメッセージングを支援し得る。
【００１７】
ユーザは、スマートフォンデバイス１５０を所有し、操作し得る。スマートフォンデバイス１５０は、ｉＰｈｏｎｅ（登録商標）デバイス、Ａｎｄｒｏｉｄ（登録商標）デバイス、Ｂｌａｃｋｂｅｒｒｙ（登録商標）デバイス、またはスマートフォン形態に準拠する任意の他のコンピューティングデバイスからなり得る。スマートフォンデバイス１５０は、セルラー信号１３５を使用してセルシステム１３０を介してネットワーク１２０に接続することが可能なセルラーデバイスであり得る。いくつかの実施形態およびいくつかの場合には、スマートフォンデバイス１５０は、追加的または代替的にＷｉ−Ｆｉまたは他のネットワーキング技術を使用してネットワーク１２０に接続してもよい。スマートフォンデバイス１５０は、メッセージングサーバ１１０にアクセスするために、メッセージングクライアント、ウェブブラウザ、または他のローカルアプリケーションを実行し得る。
【００１８】
同じユーザがタブレットデバイス１６０を所有し、操作し得る。タブレットデバイス１６０は、ｉＰａｄ（登録商標）デバイス、Ａｎｄｒｏｉｄ（登録商標）  タブレットデバイス、Ｋｉｎｄｌｅ  Ｆｉｒｅ（登録商標）デバイス、またはタブレット形態に準拠する任意の他のモバイルコンピューティングデバイスからなり得る。タブレットデバイス１６０は、Ｗｉ−Ｆｉ信号１４５を使用してＷｉ−Ｆｉアクセスポイント１４０を介してネットワーク１２０に接続することが可能なＷｉ−Ｆｉデバイスであり得る。いくつかの実施形態およびいくつかの場合には、タブレットデバイス１６０は、追加的または代替的にセルラーまたは他のネットワーキング技術を使用してネットワーク１２０に接続してもよい。タブレットデバイス１６０は、メッセージングサーバ１１０にアクセスするために、メッセージングクライアント、ウェブブラウザ、または他のローカルアプリケーションを実行し得る。
【００１９】
同じユーザがパーソナルコンピュータデバイス１８０を所有し、操作し得る。パーソナルコンピュータデバイス１８０は、Ｍａｃ  ＯＳ（登録商標）デバイス、Ｗｉｎｄｏｗｓ（登録商標）デバイス、Ｌｉｎｕｘ（登録商標）デバイス、または別のオペレーティングシステムを走らせる他のコンピュータデバイスからなり得る。パーソナルコンピュータデバイス１８０は、イーサネット接続を介してネットワーク１２０に接続することが可能なイーサネットデバイスであり得る。いくつかの実施形態およびいくつかの場合には、パーソナルコンピュータデバイス１８０は、追加的または代替的に、セルラー、Ｗｉ−Ｆｉ、または他のネットワーキング技術を使用してネットワーク１２０に接続してもよい。パーソナルコンピュータデバイス１８０は、メッセージングサーバ１１０にアクセスするために、メッセージングクライアント、ウェブブラウザ１７０、または他のローカルアプリケーションを実行し得る。
【００２０】
メッセージングクライアントは、専用のメッセージングクライアントであり得る。専用のメッセージングクライアントは、メッセージングサーバ１１０を含むメッセージングプラットフォームを管理するメッセージング提供者に特定的に関連付けられ得る。専用のメッセージングクライアントは、メッセージングサーバ１１０を含むメッセージングプラットフォームを管理するメッセージング提供者を含む、複数の異なるメッセージング提供者と協働するように動作する、一般的なクライアントであり得る。
【００２１】
メッセージングクライアントは、追加的な機能性を提供するアプリケーションのコンポーネントであり得る。例えば、ソーシャルネットワーキングサービスが、当該ソーシャルネットワーキングサービスにアクセスし、使用するためにモバイルデバイス上で使用するソーシャルネットワーキングアプリケーションを提供することがある。ソーシャルネットワーキングサービスは、メッセージングサーバ１１０によって提供され得るようなメッセージング機能性を含み得る。メッセージングサーバ１１０は、ソーシャルネットワーキングサービスのためのコンピューティングデバイスのコンポーネントの１つであってよく、コンピューティングデバイスがソーシャルネットワーキングサービスの追加的な機能性を提供することが認識されよう。同様に、ソーシャルネットワーキングアプリケーションが、メッセージング機能性と追加的なソーシャルネットワーキング機能性の両方を提供してもよい。
【００２２】
場合によっては、メッセージングエンドポイントがユーザセッション間に状態を保持することがあり、場合によっては、メッセージングエンドポイントがユーザセッション間に状態を放棄することがある。メッセージングエンドポイントは、ローカルストアを使用して、メッセージ受信箱の現在の状態を保持し得る。このローカルストアは、１回のセッションと次のセッションとの間に状態が取得できるように、恒久的ストレージに保存されてよく、これには、例えば、ローカルアプリケーションが終了されるかもしくはその他の形でメモリから除去される、またはデバイスの電源がオフにされ、再度投入されるといった状況が含まれる。代替的に、メッセージングエンドポイントは、メモリキャッシュを使用してメッセージ受信箱の現在の状態を保持するものの、メッセージ受信箱の状態を恒久的ストレージに投入することは控えてもよい。
【００２３】
メッセージ受信箱の状態を保持するメッセージングエンドポイントは、専用のメッセージングアプリケーション、またはソーシャルネットワーキングアプリケーションなどの別のローカルアプリケーションに組み込まれたメッセージングユーティリティを備え得る。メッセージ受信箱の状態を放棄するメッセージングエンドポイントは、ウェブブラウザ内に実施されるメッセージングアクセスを備え得る。１つの実施形態では、ウェブブラウザ、例えばパーソナルコンピュータデバイス１８０上で実行されるウェブブラウザ１７０が、メッセージングサーバと対話してユーザにメッセージング機能性を提示するＨＴＭＬ５コードを実行し得る。
【００２４】
ユーザは、スマートフォンデバイス１５０、タブレットデバイス１６０、およびパーソナルコンピュータデバイス１８０を含む複数のデバイスからメッセージを送受信し得る。ユーザは、スマートフォンデバイス１５０の第１のメッセージングアプリケーション、タブレットデバイス１６０の第２のメッセージングアプリケーション、およびパーソナルコンピュータデバイス１８０のウェブブラウザ１７０を使用し得る。第１および第２のメッセージングアプリケーションは、両デバイスへの同じアプリケーションのインストールからなり得る。第１および第２のメッセージングアプリケーションは、共通のアプリケーションのスマートフォン固有バージョンおよびタブレット固有バージョンからなり得る。第１および第２のメッセージングアプリケーションは、別個のアプリケーションからなり得る。
【００２５】
ユーザは、自身のデバイス間で自身のメッセージ受信箱を一致させておくことから利益を得る可能性がある。ユーザは、家の外にいる間はセルシステム１３０上で自身のスマートフォンデバイス１５０を使用して、セルシステム１３０を介してメッセージを送受信し得る。ユーザは、コーヒーショップまたはＷｉ−Ｆｉを供与する他の場所に立ち寄り、自身のタブレットデバイス１６０をＷｉ−Ｆｉアクセスポイント１４０に接続し得る。タブレットデバイス１６０は、メッセージ受信箱に関する自身の既存の既知の状態を取得し、タブレットデバイス１６０がネットワークにアクセスすることができた前回の機会以降に発生した更新を受信することができ、そのような更新には、スマートフォンデバイス１５０から送られたメッセージ、およびスマートフォンデバイス１５０を操作している間にユーザによって受信された可能性のあるメッセージが含まれる。ユーザは次いで家に帰り、パーソナルコンピュータデバイス１８０でウェブブラウザ１７０を使用して自身のメッセージ受信箱にアクセスし得る。ウェブブラウザ１７０は、メッセージ受信箱に関する既存の状態を維持していないか、またはその他の理由で既存の状態にアクセスできないため、メッセージングサーバ１１０からメッセージ受信箱の現在の状態のスナップショットを受信し得る。ウェブブラウザ１７０は、次いで、メッセージングサーバ１１０とユーザセッションを維持している限り、メッセージ受信箱の状態に対する新たな変更があれば、その増加分の更新を取得し、ウェブブラウザ１７０がユーザによって閉じられたときなど、セッションの最後に、メッセージ受信箱に関する自身の既知の状態を破棄し得る。制限なく、更新は、メールボックスへのメッセージの追加、メールボックスからのメッセージの削除、および開封確認に対応し得る。
【００２６】
メッセージングシステムは、複数のメッセージを備えるものとしてメッセージング受信箱を定義することによって動作することができ、各メッセージは、２人以上の参加者間の通信の個々のトランザクションである。メールサーバは、メッセージング受信箱に関してメッセージインデックスを維持することによって動作し得る。メールサーバは、メッセージを受信して、そのメッセージをメールアーカイブに記憶することができ、メールアーカイブからメッセージインデックスへの参照を介してメッセージが取得され得る。メールクライアントは、メールサーバに接続し、前回の更新以降に自身のメールアーカイブに追加されたメッセージを取得し得る。メールクライアントは、どのようなメッセージがメールアーカイブに記憶されているかを指示するメールアーカイブからのメールインデックスを受信し得る。メールクライアントは、どのメッセージを受信し損ねているかを判定するために、メールアーカイブを自身の現在の受信箱と比較することができ、次いでそれらのメッセージをメールアーカイブに要求する。メールクライアントは自身の受信箱に変更を加えることがあり、その結果、メール受信箱命令がメールアーカイブに送信されて、メールアーカイブにおいてメールクライアントのメール受信箱の表現に行うべき修正をメールアーカイブに命令する。
【００２７】
メッセージングシステムによって仲介されるメッセージング対話は、メッセージスレッドとして知られる共有空間へと編成され得る。メッセージスレッドは、特定のグループのユーザ間で共有されるメッセージを一緒に収集し得る。ユーザのペア間で個々に送られるメッセージは、当該ユーザのペア間のプライベートなメッセージングに一意に関連付けられた一対一のメッセージスレッドに収集され得る。３人以上のユーザからなるグループ間で送られるメッセージは、ユーザのメンバーシップによって一意に定義されるのではなく、代わりに、いくつかの実施形態では、グループスレッドを一意に識別する識別子によって識別され得る。グループスレッド内でのメンバーシップは、いくつかの実施形態では、時間と共に変化して、メンバーを追加する、および／または失い得る。
【００２８】
メッセージング対話は、クライアントデバイス間の終端間暗号化通信を使用し得る。送出側のクライアントデバイスは、受信側のデバイスのみが（例えば公開鍵暗号法を使用することにより）発信メッセージを復号することができるか、または送出側デバイスと受信側デバイスのみが（例えば共有鍵暗号法を使用することにより）発信メッセージを復号することができるか、の一方を確立するセキュリティ技法を使用して、発信メッセージを暗号化し得る。これらの実施形態では、メッセージングシステムのサーバは、クライアント間で送られるメッセージを復号できないようにされ得る。しかし、他の実施形態では、クライアントデバイスおよびサーバデバイス間で暗号化通信が使用され得る一方で、メッセージングサーバデバイスは、ユーザメッセージの内容を検査することを可能にされ得る。そのような検査は、メッセージングシステムのユーザにサービスを提供するために使用され得る。いくつかの実施形態では、ユーザは、特定のメッセージスレッドが終端間暗号化を使用する（およびそれにより、メッセージングサーバがメッセージの内容を検査できないようにされるという追加的なプライバシーを受け取る）か、または使用しない（およびそれにより、メッセージングシステムがプログラム的にメッセージを検査し、関連するサービスをユーザに供与できることの利益を受ける）かを選択することを可能にされ得る。
【００２９】
メッセージングシステムは、ユーザ間の対話から生成された知識を使用し得る。メッセージングシステムは、ソーシャルネットワーキングシステムのコンポーネントからなることができ、ソーシャルネットワーキングシステムのより広範な対話から生成された知識を使用し得る。そのため、メッセージングシステムと、さらに大きいソーシャルネットワーキングシステムとのユーザのプライバシーを保護するために、メッセージングシステムは、許可サーバ（または他の適切なコンポーネント）を含むことができ、許可サーバは、ユーザが、例えば適当なプライバシー設定を設定することによって、自身のアクションをメッセージングシステムによってログに記録させる、または他のシステム（例えばサードパーティシステム）と共有させることをオプトイン（opt in）またはオプトアウト（opt out）できるようにする。ユーザのプライバシー設定は、ユーザに関連付けられたどの情報がログに記録され得るか、ユーザに関連付けられた情報がどのようにログに記録され得るか、ユーザに関連付けられた情報がいつログに記録され得るか、ユーザに関連付けられた情報を誰がログに記録し得るか、ユーザに関連付けられた情報が誰と共有され得るか、およびユーザに関連付けられた情報がどのような目的でログに記録または共有され得るか、を決定し得る。許可サーバまたは他の許可コンポーネントは、ブロッキング、データのハッシュ化、匿名化、または適宜他の適切な技法を通じて、ソーシャルネットワーキングシステムのメッセージングシステムおよび他の要素のユーザの１つまたは複数のプライバシー設定を守らせるために使用され得る。
【００３０】
図２は、メッセージングシステム２００の様々な機能を実施する複数のサーバの一実施形態を例示する。メッセージングシステム２００の様々な実施形態において、作業および機能の種々の分散が使用され得ることが認識されよう。メッセージングシステム２００は、暗号化メッセージシステム１００を備えることができ、暗号化メッセージシステム１００の動作は、メッセージングシステム２００の全体的な動作の一部分を構成する。メッセージングシステム２００の例示される実施形態は特に、図１を参照して説明したメッセージングサーバ１１０の一部分に対応することができ、メッセージングサーバ１１０は、メッセージングシステム２００のユーザにメッセージングサービスを提供する１つまたは複数のサーバデバイスを備える。
【００３１】
メッセージングシステム２００は、ドメイン名フロントエンド２１０を備え得る。ドメイン名フロントエンド２１０には、ドメイン名システム（ＤＮＳ）内でメッセージングシステム２００に関連付けられた１つまたは複数のドメイン名が割り当てられ得る。ドメイン名フロントエンド２１０は、着信する接続を受信し、その接続を、様々なメッセージングサービスを提供するサーバに分配し得る。
【００３２】
メッセージングシステム２００は、１つまたは複数のチャットサーバ２１５を備え得る。チャットサーバ２１５は、チャットメッセージなどのユーザ間のメッセージング更新を受信および送信するためのフロントエンドサーバを備え得る。着信する接続は、作業負荷分散に基づいてドメイン名フロントエンド２１０によってチャットサーバ２１５に割り当てられ得る。
【００３３】
メッセージングシステム２００は、バックエンドサーバ２３０を備え得る。バックエンドサーバ２３０は、フロントエンドチャットサーバ２１５のチャット動作を支援する特化されたタスクを行い得る。複数の異なるタイプのバックエンドサーバ２３０が使用され得る。異なるバックエンドサーバ２３０へのタスクのタイプの割り当ては、異なる実施形態ごとに変化し得ることが認識されよう。いくつかの実施形態では、専用のサーバによって提供されるバックエンドサービスのいくつかが、単一のサーバ、または、本明細書に記載される実施形態において異なるサーバ間に分割される複数のタスクを各々が行うサーバのセットとして、組み合わせられ得る。同様に、いくつかの実施形態では、本明細書に記載される専用バックエンドサーバのうちいくつかのタスクが、異なるサーバグループに属する異なるサーバ間に分割され得る。
【００３４】
メッセージングシステム２００は、１つまたは複数のオフライン記憶サーバ２３１を備え得る。１つまたは複数のオフライン記憶サーバ２３１は、現在オフラインのメッセージングエンドポイントに関するメッセージング内容を、それらのメッセージングエンドポイントが再接続するときのために、保留して記憶しておくことができる。
【００３５】
メッセージングシステム２００は、１つまたは複数のセッションサーバ２３２を備え得る。１つまたは複数のセッションサーバ２３２は、接続されているメッセージングエンドポイントのセッション状態を維持し得る。
【００３６】
メッセージングシステム２００は、１つまたは複数のプレゼンスサーバ２３３を備え得る。１つまたは複数のプレゼンスサーバ２３３は、メッセージングシステム２００のプレゼンス情報を維持し得る。プレゼンス情報は、ユーザ固有の情報に対応することができ、所与のユーザがオンラインのメッセージングエンドポイントを有しているかおよびチャットが利用可能であるか否か、オンラインのメッセージングエンドポイントを有しているが現在はそこから離れているかどうか、オンラインのメッセージングエンドポイントを有していないかどうか、ならびに任意の他のプレゼンス状態を指示する。
【００３７】
メッセージングシステム２００は、１つまたは複数のプッシュ記憶サーバ２３４を備え得る。１つまたは複数のプッシュ記憶サーバ２３４は、プッシュ要求をキャッシュし、そのプッシュ要求をメッセージングエンドポイントに送信し得る。プッシュ要求は、メッセージングエンドポイントを起動させるため、メッセージング更新が利用可能な状態であることをメッセージングエンドポイントに通知するため、およびメッセージングエンドポイントとの間でサーバ側から開始される対話をその他の形で行うために使用され得る。
【００３８】
メッセージングシステム２００は、１つまたは複数のチャット活動監視サーバ２３５を備え得る。１つまたは複数のチャット活動監視サーバ２３５は、ユーザのチャットを監視して、メッセージングシステム２００のユーザによる不正な挙動または推奨されない挙動を判定し得る。１つまたは複数のチャット活動監視サーバ２３５は、スパムロギングサーバ２３９およびブロックリストサーバ２３６と協働し、１つまたは複数のチャット活動監視サーバ２３５は、スパムまたは他の推奨されない挙動を識別し、スパムロギングサーバ２３９にスパム情報を提供し、適当な場合にはブロックリストサーバ２３６にブロッキング情報を提供する。
【００３９】
メッセージングシステム２００は、１つまたは複数のブロックリストサーバ２３６を備え得る。１つまたは複数のブロックリストサーバ２３６は、ユーザ固有のブロックリストを維持することができ、ユーザ固有の着信ブロックリストは、ユーザごとに、そのユーザにメッセージを送信することを禁じられている１人または複数の他のユーザを指示する。代替的または追加的に、１つまたは複数のブロックリストサーバ２３６は、ユーザごとに、そのユーザがメッセージを送信することを禁じられている１人または複数の他のユーザを指示する、ユーザ固有の発信ブロックリストを維持してもよい。着信ブロックリストおよび発信ブロックリストは、組み合わせて例えばデータベースに記憶されてよく、着信ブロックリストと発信ブロックリストは、ブロック情報の同じリポジトリの異なる見方に相当することが認識されよう。
【００４０】
メッセージングシステム２００は、１つまたは複数の最後に見られた情報サーバ２３７を備え得る。１つまたは複数の最後に見られた情報サーバ２３７は、最後に見られた位置、ステータス、メッセージングエンドポイント、およびメッセージングシステム２００へのユーザの最後に見られた接続のその他の要素を指示する情報を受信、記憶、維持し得る。
【００４１】
メッセージングシステム２００は、１つまたは複数のプロフィール写真サーバ２３８を備え得る。１つまたは複数のプロフィール写真サーバ２３８は、メッセージングシステム２００の複数のユーザのプロフィール写真を記憶し、取得可能な状態にし得る。
【００４２】
メッセージングシステム２００は、１つまたは複数のスパムロギングサーバ２３９を備え得る。１つまたは複数のスパムロギングサーバ２３９は、既知のスパムおよびスパムの疑いのあるもの（例えば不要メッセージ、特に販売促進用の性質のもの）をログに記録し得る。１つまたは複数のスパムロギングサーバ２３９は、メッセージを分析してメッセージがスパムであるかどうかを判定し、いくつかの実施形態では、疑われるスパム送信者（スパムメッセージの送出元ユーザ）に対する処罰措置を行うように動作し得る。
【００４３】
メッセージングシステム２００は、１つまたは複数の統計サーバ２４０を備え得る。１つまたは複数の統計サーバは、メッセージングシステム２００の動作とメッセージングシステム２００のユーザの挙動とに関係する統計情報を集計し、記憶し得る。
【００４４】
メッセージングシステム２００は、１つまたは複数の同期サーバ２４１を備え得る。１つまたは複数の同期サーバ２４１は、メッセージングシステム２４０を、モバイル電話上のアドレス帳などの、メッセージングエンドポイントからの連絡先情報と同期させて、メッセージングシステム２００内のユーザに関する連絡先を判定し得る。
【００４５】
メッセージングシステム２００は、１つまたは複数のウェブサーバ２４２を備え得る。１つまたは複数のウェブサーバ２４２は、ウェブブラウザとのハイパーテキスト転送プロトコル（ＨＴＴＰ）およびハイパーテキスト転送プロトコルセキュア（ＨＴＴＰＳ）接続に関与し得る。１つまたは複数のウェブサーバ２４２は、いくつかの実施形態では、暗号化メッセージシステム１００の動作の一部としてリモートのウェブサーバ３５０をホストし得る。
【００４６】
メッセージングシステム２００は、１つまたは複数の鍵サーバ２４３を備え得る。１つまたは複数の鍵サーバ２４３は、公開鍵／秘密鍵による暗号化通信のための公開鍵をホストし得る。
【００４７】
メッセージングシステム２００は、１つまたは複数のグループサーバ２４４を備え得る。１つまたは複数のグループサーバ２４４は、グループのリストを維持し、グループにユーザを追加し、グループからユーザを除去し、グループチャットメッセージの受信、キャッシュ、および転送を行い得る。
【００４８】
メッセージングシステム２００は、１つまたは複数のマルチメディアデータベース（ＭＭＤ）サーバ２４５を備え得る。ＭＭＤサーバ２４５は、メッセージングシステム２００に知られているメディアオブジェクトのデータベースを記憶することができ、このデータベースは分散データベースであり得る。いくつかの実施形態では、現在記憶されているかまたはその他の形でメッセージングシステム２００内を移動中であるメディアオブジェクトのみが、ＭＭＤサーバ２４５によって追跡され得る。他の実施形態では、ＭＭＤサーバ２４５は、人気度を追跡するため、またはその他のデータ採取の目的などのために、もう移動中ではないメディアオブジェクトの記録を維持し得る。
【００４９】
ＭＭＤサーバ２４５は、メッセージングシステム２００によって記憶されるときのメディアオブジェクトの記憶位置を、マルチメディアサーバ２４６などに決定し得る。ＭＭＤサーバ２４５は、複数のマルチメディアサーバ２３６のうちどれが特定のメディアオブジェクトを記憶しているかなど、メディアオブジェクトがメッセージングシステム２００によって送信されるとき、当該メディアオブジェクトの既存の記憶位置を判定し得る。ＭＭＤサーバ２４５は、メディアオブジェクトを要求し取得するためにメッセージングクライアントが使用する、ユニフォームリソースロケータ（ＵＲＬ）を生成し得る。ＭＭＤサーバ２４５は、いつメディアオブジェクトが破損したかまたはその他の形で失われ、再獲得されるべきかを追跡し得る。
【００５０】
メッセージングシステム２００は、１つまたは複数のマルチメディアサーバ２４６を備え得る。１つまたは複数のマルチメディアサーバは、メッセージングエンドポイント間を移動中のマルチメディア（例えば画像、映像、オーディオ）、オフラインのエンドポイントのためにキャッシュされているマルチメディアを記憶し、マルチメディアのトランスコーディングを行い得る。
【００５１】
メッセージングシステム２００は、１つまたは複数の支払いサーバ２４７を備え得る。１つまたは複数の支払いサーバ２４７は、ユーザからの支払いを処理し得る。１つまたは複数の支払いサーバ２４７は、支払いの実施のために外部のサードパーティサーバに接続し得る。
【００５２】
メッセージングシステム２００は、１つまたは複数の登録サーバ２４８を備え得る。１つまたは複数の登録サーバ２４８は、メッセージングシステム２００の新しいユーザを登録し得る。
【００５３】
メッセージングシステム２００は、１つまたは複数の音声中継サーバ２４９を備え得る。１つまたは複数の音声中継サーバ２４９は、ＶｏＩＰ呼の実施のためにメッセージングエンドポイント間でインターネットを通じた音声プロトコル（ＶｏＩＰ）の音声通信を中継し得る。
【００５４】
図３は、暗号化メッセージシステム１００によるメッセージの送出および復号の一実施形態を例示する。
【００５５】
送出側クライアントデバイス３１０および受信側クライアントデバイス３６０は、メッセージングシステムを使用して通信し、暗号化メッセージシステム１００を実施する複数のクライアントデバイスのうちの２つであり得る。送出側クライアントデバイス３１０および受信側クライアントデバイス３６０となるデバイスの割り当ては、図３に記載される具体的な対話に対応してよく、クライアントデバイス３１０、３６０間での能力の特定の分割を反映しているとは限らない。メッセージングシステムによって支援されるあらゆるクライアントデバイス上のあらゆるメッセージングクライアント３２０は、メッセージおよびメディアアイテムの送出および受信両方を支援し得る。クライアントデバイス３１０、３６０は各々、メッセージングクライアント３２０を実行する。各デバイスのメッセージングクライアント３２０は複数のコンポーネントを備える。複数のコンポーネントは、ソフトウェアコンポーネントを備え得る。メッセージングクライアント３２０のコンポーネントは、ここに記載される以外のコンポーネントを含んでよく、メッセージングクライアント３２０の動作は、異なる実施形態においては異なる構成でコンポーネント間に分割され得る。
【００５６】
メッセージングクライアント３２０は、メッセージングコンポーネント３４０を備え得る。メッセージングコンポーネント３４０は、一般に、メッセージングクライアント３２０とメッセージングサーバ１１０との間の対話を行うように成され得る。メッセージングコンポーネント３４０は、メッセージングシステムのメッセージングサーバ１１０にネットワーク通信を送出し、メッセージングサーバ１１０からネットワーク通信を受信し得る。メッセージングコンポーネント３４０は、暗号化メッセージ３５０などのメッセージを、メッセージスレッドの状態に対する更新を備えたメッセージパッケージの交換を介して送受信し得る。
【００５７】
メッセージングクライアント３２０は、ユーザインターフェースコンポーネント３３０を備え得る。ユーザインターフェースコンポーネント３３０は、一般に、クライアントデバイスのユーザに情報を提示し、クライアントデバイスのユーザからユーザコマンドを受信するように成され得る。ユーザインターフェースコンポーネント３３０は、視覚的情報を表示し、オーディオ情報を出力し、またその他の形でユーザに情報を提示し得る。ユーザインターフェースコンポーネント３３０は、タッチコマンド、テキストコマンド、音声コマンド、およびメッセージングクライアント３２０を操作するための任意の他の種のコマンドを受信し得る。
【００５８】
メッセージングクライアント３２０は、鍵管理コンポーネント３６０を備え得る。鍵管理コンポーネント３６０は、暗号化メッセージシステム１００の一部として送られるメッセージの暗号化および／または復号に使用される鍵を維持し得る。鍵管理コンポーネント３６０は、メッセージの暗号化および復号のためにメッセージングコンポーネント３４０に暗号鍵および復号鍵を提供し得る。
【００５９】
あるメッセージスレッドまたはメッセージシステム機構に関連付けられているものなどの特定のシーケンスのメッセージが、鍵のラチェットに基づいて生成される特定の鍵シーケンスに従った暗号化および復号のために関連付けられ得る。例として、特定のユーザからのライブ位置更新が、ラチェット後の鍵の特定のシーケンスに関連付けられ得る。
【００６０】
送出側クライアントデバイス３１０のメッセージングコンポーネント３４０は、受信側クライアントデバイス３６０に送る非暗号化メッセージ３３５を受け取る。場合によっては、非暗号化メッセージ３３５は、非暗号化メッセージ３３５がテキストメッセージまたはユーザによって生成された他のメッセージである場合などには、ユーザインターフェースコンポーネント３３０から受け取られることもある。他の場合、非暗号化メッセージ３３５は、送出側クライアントデバイス３１０の位置情報を判定して提供するように動作するジオロケーションコンポーネントから受け取られるライブ位置更新など、異なるコンポーネントから受け取られ得る。
【００６１】
送出側クライアントデバイスのメッセージングコンポーネント３４０は、暗号鍵３６５に従って非暗号化メッセージ３３５を暗号化して、暗号化メッセージ３５０を生成する。暗号鍵３６５は、多次元のラチェット暗号化方式に従って鍵管理コンポーネント３６０によって決定される。送出側クライアントデバイス３１０が多次元のラチェット暗号化方式を使用することで、受信側クライアントデバイス３６０は、送出側クライアントデバイス３１０によって送られた１つまたは複数のメッセージを復号するために使用されるはずの特定の鍵の生成をスキップすることを可能にされる。
【００６２】
送出側クライアントデバイス３１０のメッセージングコンポーネント３４０は、受信側クライアントデバイス３６０に暗号化メッセージ３５０を送出する。いくつかの実施形態では、メッセージングコンポーネント３４０は、メッセージングシステムのメッセージングサーバ１１０を介して暗号化メッセージ３５０を送出し得る。他の実施形態では、メッセージングコンポーネント３４０は、ピアツーピア通信を使用して暗号化メッセージ３５０を送出し得る。受信側クライアントデバイス３６０のメッセージングコンポーネント３４０は、それにより暗号化メッセージ３５０を受信し、暗号化メッセージ３５０は多次元のラチェット暗号化方式に従って暗号化されている。メッセージングサーバ１１０が使用される場合、受信側クライアントデバイス３６０のメッセージングコンポーネント３４０は、メッセージングサーバデバイスから暗号化メッセージを受信する。
【００６３】
メッセージングコンポーネント３４０は、暗号化メッセージ３５０のメッセージ反復回数を判定する。メッセージ反復回数は、暗号化メッセージ３５０を復号する際に少なくとも部分的に使用されるメッセージの順序付けおよび順番情報を標示する。メッセージ反復回数は、暗号化メッセージ３５０の、非暗号化ヘッダの一部のような非暗号化ラッパーの一コンポーネントであってよく、暗号化メッセージ３５０の秘密情報、プライベートな情報、またはその他の形で保護される情報は、暗号化メッセージ３５０の暗号化されたペイロード中に置かれる。暗号化メッセージ３５０および非暗号化ラッパーは、メッセージパッケージの一部としてメッセージングサーバ１１０を介して送られ得る。メッセージングコンポーネント３４０は、暗号化メッセージ３５０の非暗号化ラッパーからメッセージ反復回数を抽出することにより、メッセージ反復回数を判定し得る。
【００６４】
メッセージングコンポーネント３４０は、暗号化メッセージ３５０の暗号化されたペイロードを復号する際に使用するなど、暗号化メッセージ３５０を復号する際に使用する復号鍵３８０を決定するのに使用するために、メッセージ反復回数を鍵管理コンポーネント３７０に提供する。メッセージングコンポーネント３４０は、暗号化メッセージ３５０を復号する際に使用するクライアントチェーン鍵の特定のセットを識別する情報などの、追加的な情報を提供し得る。鍵管理コンポーネント３７０は、復号鍵３８０をメッセージングコンポーネント３４０に提供する。復号鍵３８０は、対称暗号化が使用される場合には暗号鍵３６５と同じであることもあり、または非対称暗号化が使用される場合には別個の鍵であることもある。メッセージングコンポーネント３４０は、復号鍵３８０に基づいて暗号化メッセージ３５０を復号することにより、復号後メッセージ３５５を生成する。復号後メッセージ３５５は、送出側クライアントデバイス３１０上での非暗号化メッセージ３３５に対応する。メッセージングコンポーネント３４０は、復号後メッセージ３５５をユーザインターフェースコンポーネント３３０に渡す。ユーザインターフェースコンポーネント３３０は、次いで、復号後メッセージ３５５を受信側クライアントデバイス３６０上に表示し得る。
【００６５】
送出側クライアントデバイス３１０の鍵管理コンポーネント３６０は、ラチェット機能を使用してメッセージを送出するたびに鍵を変更する。また、鍵管理コンポーネント３６０は、対応するメッセージ反復回数を増分して、鍵を前進させるためにラチェットが適用された回数を与える。受信者は次いでこのメッセージ反復回数を使用して自身の鍵のコピーを該当する回数までラチェットすることにより、暗号化メッセージ３５０を復号する。
【００６６】
多次元のラチェット暗号化方式では、複数のメッセージチェーン鍵が鍵管理コンポーネント３６０によって維持される。この複数のメッセージチェーン鍵は、送出側クライアントデバイス３１０と受信側クライアントデバイス３６０との間の鍵交換のときグループとして初期化される。多次元のラチェット暗号化方式を使用すると使用中の鍵の数が増すため、この方式を使用すると、クライアントデバイス３１０、３６０間で鍵を設定する際のネットワークおよび記憶コストが増大し、これは、複数の鍵を先へと前進させる計算コストを低減することとのトレードオフになる。
【００６７】
非暗号化メッセージ３３５を暗号鍵３６５に従って暗号化して暗号化メッセージ３５０を生成した後、複数のチェーン鍵は、１ステップだけ先へとラチェットされる。各チェーン鍵は、別個のラチェット機能を使用する。複数のラチェット機能は各々、複数の入力を取ることが可能な一般的な暗号化機能のインスタンスであってよく、多次元のラチェット暗号化方式の次元ごとに入力の１つに異なる値が割り当てられ、それにより、各チェーン鍵に使用されるラチェット機能同士を区別し、複数のチェーン鍵の各々に関連付けられた複数のラチェット機能を生成する。
【００６８】
最も次元の高いチェーン鍵を調べて、当該チェーン鍵を前進させるべきか、それとも再生成すべきかを判定する。各チェーン鍵は、そのチェーン鍵が生成されて以来何回ラチェットされたかを指示する反復回数に関連付けられる。この反復回数が最大チェーン鍵反復値に達すると、チェーン鍵は、次に次元の低いチェーン鍵に基づいて再生成され、次に次元の低いチェーン鍵自体も次いでラチェットされ、反復回数がリセットされる。反復回数がまだ最大チェーン鍵反復値に達していない場合は、最も次元の高いラチェット機能に従ってチェーン鍵が１ステップ前進される。この技法は、任意の次元のチェーン鍵に使用され、許される場合には前進させ、最大反復値に達したときにはより次元の低いチェーン鍵から再生成する。最も次元の低いチェーン鍵が最大反復値に達すると、チェーン鍵の全く新しいセットが生成され、デバイス３１０、３６０間で共有される。
【００６９】
どのチェーン鍵を使用すべきかを判定するために、鍵管理コンポーネント３７０は、メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解する。鍵管理コンポーネント３７０は、必要な場合には自身の現在のクライアントチェーン鍵を先へとラチェットすることにより、複数のメッセージチェーン鍵反復回数に基づいて復号鍵３８０を決定する。
【００７０】
復号鍵３８０は、複数のクライアントチェーン鍵に基づく。複数のクライアントチェーン鍵は、多次元のラチェット暗号化方式の複数の次元に対応する。この複数の次元の使用により、複数のクライアントチェーン鍵の可変ステップの前進を可能にする。複数のクライアントチェーン鍵の可変ステップの前進は、１つまたは複数の暗号化メッセージを破棄することに相当し、これは、スキップされたクライアントチェーン鍵は、それらが関連付けられた暗号化メッセージが破棄される場合には有用でないためである。
【００７１】
鍵管理コンポーネント３７０は、複数のクライアントチェーン鍵を取得し、この複数のクライアントチェーン鍵は、多次元のラチェット暗号化方式の複数の次元に対応する。また、複数のクライアントチェーン鍵は、より次元の低いチェーン鍵に基づいて各チェーン鍵が生成されて以来何回ラチェットされたかを指示する、複数のクライアントチェーン鍵反復回数にも対応する。
【００７２】
鍵管理コンポーネント３７０が、複数のクライアントチェーン鍵反復回数が複数のメッセージチェーン鍵反復回数と等しいと判定した場合（これは受信した暗号化メッセージ３５０のチェーン鍵の前進が予想通りであり、列内での順番が次であることを意味する）には、取得されたクライアントチェーン鍵は、復号鍵３８０を生成するためにラチェットされる必要はない。代わりに、鍵管理コンポーネント３７０は、複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を、復号鍵３８０として決定する。
【００７３】
鍵管理コンポーネント３７０は、暗号化メッセージ３５０の復号に応答してチェーン鍵反復回数を１ステップ前進させる。鍵管理コンポーネント３７０は次いで、最大反復値が許す場合には最も次元の高いクライアントチェーン鍵を前進させ、当該チェーン鍵の回数が最大反復値に達しているときにはチェーン鍵を再生成する。鍵管理コンポーネント３７０は、最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値未満である場合には、暗号化メッセージ３５０の復号に応答して最も次元の高いクライアントチェーン鍵を１ステップだけ前進させる。
【００７４】
鍵管理コンポーネント３７０は、最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合には、暗号化メッセージ３５０の復号に応答して複数のクライアントチェーン鍵のうち２つ以上のクライアントチェーン鍵を前進させる。代わりとなる最も次元の高いクライアントチェーン鍵は、最も次元の高いラチェット機能への入力として次に最も低いチェーン鍵を使用することによるなど、次に最も低いチェーン鍵に基づいて生成される。次いで、１ステップ前進させるか、またはより次元の低いチェーン鍵によって再帰的に生成されるかのどちらかによって、次に最も低いチェーン鍵がラチェットされ、この再帰は、より次元の低いチェーン鍵のチェーン鍵反復回数が最大チェーン鍵反復値に達した場合には、さらなるより次元の低いチェーン鍵にわたって継続し得る。そのため、再帰は、最も低い次元以外のチェーン鍵が全て再生成された場合、最も次元の低いチェーン鍵まで継続し得る。
【００７５】
鍵管理コンポーネント３７０は、メッセージ反復回数に基づいて、１つまたは複数のメッセージを破棄すべきことを判定し得る。メッセージングコンポーネント３４０は、期限切れであることに基づいて１つまたは複数のメッセージを破棄すべきことを判定し、スキップしたメッセージの後の最初の復号すべきメッセージのメッセージ反復回数を提供し得る。そして、鍵管理コンポーネント３７０は、スキップしたメッセージの少なくとも一部について、復号鍵の生成をスキップし得る。
【００７６】
鍵管理コンポーネント３７０は、クライアント反復回数が、メッセージ反復回数未満であることを判定し得る。クライアント反復回数は、複数のクライアントチェーン鍵反復回数を合成したものに対応し、複数のクライアントチェーン鍵反復回数は、したがって、クライアント反復回数を分解したものに対応する。鍵管理コンポーネント３７０は次いで、クライアント反復回数とメッセージ反復回数との間の反復距離に基づいて複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成する。
【００７７】
鍵管理コンポーネント３７０は、クライアントチェーン鍵を該当するメッセージチェーン鍵反復回数まで先へとラチェットする過程で、当該クライアントチェーン鍵がより次元の低いクライアントチェーン鍵から再生成されることになるかどうかを判定する。再生成されることになる場合、当該クライアントチェーン鍵は実際にはその最大反復値まで先へとラチェットされる必要はなく、代わりに、最大反復値まで先へとラチェットすることを控えながら再生成することができる。各クライアントチェーン鍵は、最も次元が低いものから最も次元が高いものへと検討され、当該クライアントチェーン鍵に関連付けられたクライアントチェーン鍵反復回数を受信されたメッセージチェーン鍵反復回数まで増すために必要な回数だけ先へとラチェットされて、ラチェット後のクライアントチェーン鍵が作成される。より次元の高いクライアントチェーン鍵が先へとラチェットされるのは、したがって、クライアント反復回数をメッセージ反復回数まで前進させる際に、より次元の低いクライアントチェーン鍵が任意の程度だけ先へとラチェットされた後のみである。そのため、複数のクライアントチェーン鍵を前進させることは、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み得、より次元の高いクライアントチェーン鍵の再生成は、当該より次元の高いクライアントチェーン鍵の１つまたは複数の許容反復回数をスキップする。鍵管理コンポーネント３７０は、次いで、複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を復号鍵として決定する。
【００７８】
本明細書には、開示されるアーキテクチャの新規な態様を行うための例示的方法論を表すフローチャートのセットが含まれる。説明を単純にするために、例えばフローチャートまたはフロー図の形態で本明細書に示す１つまたは複数の方法論は、一連の行為として図示され、記載されるが、一部の行為は、それに従い、本明細書に図示し、記載するものとは異なる順番で、および／または他の行為と同時に発生してもよいため、方法論は行為の順番によって制限されるものではないことは理解され、認識されるべきである。例えば、当業者は、方法論が、代替的に、状態図にあるように、一連の相関した状態またはイベントとして表すこともできることを理解し、認識するであろう。さらに、方法論に例示される全ての行為が新規の実装形態のために必要であるとは限らない。
【００７９】
図４は、論理フロー４００の１つの実施形態を例示する。論理フロー４００は、本明細書に記載される１つまたは複数の実施形態によって実行される動作の一部または全てを表し得る。
【００８０】
図４に示す例示の実施形態では、論理フロー４００は、ブロック４０２で、暗号化メッセージを受信することができ、暗号化メッセージは、多次元のラチェット暗号化方式に従って暗号化されている。
【００８１】
論理フロー４００は、ブロック４０４で、暗号化メッセージのメッセージ反復回数を判定し得る。
【００８２】
論理フロー４００は、ブロック４０６で、メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解し得る。
【００８３】
論理フロー４００は、ブロック４０８で、この複数のメッセージチェーン鍵反復回数に基づいて復号鍵を決定し得る。
【００８４】
論理フロー４００は、ブロック４１０で、復号鍵に基づいて暗号化メッセージを復号することによって復号後メッセージを生成し得る。
【００８５】
実施形態はこの例に制限されない。
【００８６】
図５は、中央集中システム５００のブロック図を例示する。中央集中システム５００は、暗号化メッセージシステム１００に関する構造および／または動作の一部または全てを、単一の中央集中サーバデバイス５２０内に完全に実施するなど、単一のコンピューティングエンティティ内に実施し得る。
【００８７】
中央集中サーバデバイス５２０は、暗号化メッセージシステム１００に関して情報を受信、処理、および送出することが可能な任意の電子デバイスからなり得る。電子デバイスの例には、制限ではないが、ウルトラモバイルデバイス、モバイルデバイス、携帯情報端末（ＰＤＡ）、モバイルコンピューティングデバイス、スマートフォン、電話機、デジタル電話機、セルラー電話機、電子書籍リーダ、ハンドセット、一方向ページャ、双方向ページャ、メッセージングデバイス、コンピュータ、パーソナルコンピュータ（ＰＣ）、デスクトップコンピュータ、ラップトップコンピュータ、ノート型コンピュータ、ネットブックコンピュータ、手持ち型コンピュータ、タブレットコンピュータ、サーバ、サーバアレイもしくはサーバファーム、ウェブサーバ、ネットワークサーバ、インターネットサーバ、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサを利用したシステム、消費者家電、プログラム可能な消費者家電、ゲームデバイス、テレビ、デジタルテレビ、セットトップボックス、ワイヤレスアクセスポイント、基地局、加入者局、モバイル加入者センター、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、機械、またはそれらの組合せが含まれ得る。実施形態はこれに関して制限されない。
【００８８】
中央集中サーバデバイス５２０は、処理コンポーネント５３０を使用して、暗号化メッセージシステム１００に関する処理動作またはロジックを実行し得る。処理コンポーネント５３０は、様々なハードウェア要素、ソフトウェア要素、または両者の組合せを備え得る。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ回路、回路素子（例えばトランジスタ、抵抗器、コンデンサ、インダクタ等）、集積回路、特定用途集積回路（ＡＳＩＣ）、プログラム可能論理デバイス（ＰＬＤ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含み得る。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインターフェース、アプリケーションプログラムインターフェース（ＡＰＩ）、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、記号、またはそれらの任意の組合せを含み得る。実施形態がハードウェア要素を用いて実施されるか、および／またはソフトウェア要素を用いて実施されるかの決定は、求められる計算速度、電力レベル、熱耐性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度、および他の設計または性能の制約など、所与の実装形態に要求される任意の数の要因に応じて変化し得る。
【００８９】
中央集中サーバデバイス５２０は、通信コンポーネント５４０を用いて、暗号化メッセージシステム１００に関する通信動作またはロジックを実行し得る。通信コンポーネント５４０は、パケット交換ネットワーク（例えばインターネットなどの公共ネットワーク、社内イントラネット等のプライベートネットワーク等）、回路交換網（例えば公衆交換電話網）、またはパケット交換ネットワークと回路交換網の（適切なゲートウェイおよびトランスレータを用いた）との組合せ等と共に使用するのに適した技法等の、任意のよく知られた通信技法およびプロトコルを実施し得る。通信コンポーネント５４０は、１つまたは複数の通信インターフェース、ネットワークインターフェース、ネットワークインターフェースカード（ＮＩＣ）、無線通信装置、ワイヤレス送信機／受信機（トランシーバ）、有線および／または無線通信媒体、物理的コネクタ等の様々なタイプの標準的な通信要素を含み得る。限定ではなく、例として、通信媒体５１２は有線通信媒体および無線通信媒体を含む。有線通信媒体の例は、配線、ケーブル、金属導線、プリント回路基板（ＰＣＢ）、バックプレーン、スイッチファブリック、半導体材料、ツイストペア線、同軸ケーブル、光ファイバ、伝搬信号等を含み得る。無線通信媒体の例は、音響、無線周波数（ＲＦ）スペクトル、赤外線および他の無線媒体を含み得る。
【００９０】
中央集中サーバデバイス５２０は、通信コンポーネント５４０を介して、通信信号５１４を使用して、通信媒体５１２を通じて他のデバイスと通信し得る。デバイスは、所与の実装形態にとって望ましいように、中央集中サーバデバイス５２０の内部または外部にあり得る。
【００９１】
中央集中サーバデバイス５２０は、メッセージングサーバ５５０を実行し得る。メッセージングサーバ５５０は、メッセージングシステム１１０のためのメッセージングサーバを備え得る。メッセージングサーバ５５０は、複数のクライアントデバイス５１０に関するメッセージング動作を提供し、クライアントデバイス５１０間でメッセージを受信および送出し得る。クライアントデバイス５１０は、スマートフォンデバイス１５０、タブレットデバイス１６０、パーソナルコンピュータデバイス１７０、および／または任意の他のクライアントデバイスの１つまたは複数に対応し得る。
【００９２】
図６は、分散システム６００のブロック図を例示する。分散システム６００は、暗号化メッセージシステム１００に関する構造および／または動作を、複数のコンピューティングエンティティに分散させることができる。分散システム６００の例は、限定するものではないが、クライアントサーバアーキテクチャ、３層アーキテクチャ、Ｎ層アーキテクチャ、密結合またはクラスタアーキテクチャ、ピアツーピアアーキテクチャ、マスタースレーブアーキテクチャ、共有データベースアーキテクチャ、および他のタイプの分散システムを含み得る。実施形態はこれに関して制限されない。
【００９３】
分散システム６００は、複数の分散サーバデバイス６２０を備え得る。一般に、分散サーバデバイス６２０は、図６を参照して説明した中央集中サーバデバイス６２０と同じまたは類似したものであり得る。例として、分散サーバデバイス６２０はそれぞれ、処理コンポーネント６３０および通信コンポーネント６４０を有することができ、それらは、図５を参照して説明した処理コンポーネント７３０および通信コンポーネント７４０とそれぞれ同じまたは類似したものである。別の例では、分散サーバデバイス６２０は、通信コンポーネント６４０を介して、通信信号６１４を使用して通信媒体６１２を通じて通信することができる。
【００９４】
分散サーバデバイス６２０は、記載される実施形態に従って様々な方法論を行うように動作する１つまたは複数のサーバプログラムを備えるか、または用いることができる。１つの実施形態では、例えば、分散サーバデバイス６２０は各々、複数のメッセージングサーバ６５０のうちの１つを実行し得る。メッセージングサーバ６５０は、メッセージングシステム１１０のためのメッセージングサーバを備え得る。メッセージングサーバ６５０は、複数のクライアントデバイス６１０に関するメッセージング動作を提供し、クライアントデバイス６１０間でメッセージを受信および送出し得る。クライアントデバイス６１０は、スマートフォンデバイス１５０、タブレットデバイス１６０、パーソナルコンピュータデバイス１８０、および／または任意の他のクライアントデバイスの１つまたは複数に対応し得る。
【００９５】
図７は、上記に記載の様々な実施形態を実施するのに適した例示的なコンピューティングアーキテクチャ７００の一実施形態を示す。１つの実施形態では、コンピューティングアーキテクチャ７００は、電子デバイスを備えるか、電子デバイスの一部として実施され得る。電子デバイスの例は、とりわけ、図８を参照して説明したものを含むことができる。実施形態はこれに関して制限されない。
【００９６】
本願において使用される場合、用語「システム」および「コンポーネント」は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピュータに関係したエンティティを指すことを意図し、それらの例が、例示的なコンピューティングアーキテクチャ７００によって提供される。例えば、コンポーネントは、限定ではないが、プロセッサにおいて走るプロセス、プロセッサ、ハードディスクドライブ、（光学および／または磁気記憶媒体の）複数の記憶ドライブ、オブジェクト、実行ファイル、実行スレッド、プログラムおよび／またはコンピュータであり得る。例示として、サーバ上で走るアプリケーションとサーバの両方がコンポーネントであり得る。１つまたは複数のコンポーネントがプロセスおよび／または実行スレッド内に常駐することができ、コンポーネントは、１つのコンピュータ上に局在することができ、および／または２つ以上のコンピュータ間で分散され得る。さらに、コンポーネントは、動作を協調させるように、様々なタイプの通信媒体によって互いに通信可能に結合され得る。協調は、情報の一方向または双方向の交換を伴い得る。例として、コンポーネントは、通信媒体を通じて通信される信号の形態で情報を通信することができる。情報は、様々な信号線に割り振られる信号として実施することができる。そのような割り振りにおいては、各メッセージが信号となる。一方、さらなる実施形態は、代替的にデータメッセージを用いることができる。そのようなデータメッセージは、様々な接続にわたって送信され得る。例示的な接続は、パラレルインターフェース、シリアルインターフェース、およびバスインターフェースを含む。
【００９７】
コンピューティングアーキテクチャ７００は、１つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インターフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入出力（Ｉ／Ｏ）コンポーネント、電源等の様々な一般的なコンピューティング要素を含む。しかし、実施形態は、コンピューティングアーキテクチャ７００による実装に限定されない。
【００９８】
図７に示すように、コンピューティングアーキテクチャ７００は、処理ユニット７０４、システムメモリ７０６、およびシステムバス７０８を備える。処理ユニット７０４は、限定ではないが、ＡＭＤ（登録商標）Ａｔｈｌｏｎ（登録商標）、Ｄｕｒｏｎ（登録商標）およびＯｐｔｅｒｏｎ（登録商標）プロセッサ、ＡＲＭ（登録商標）アプリケーション、組み込み型およびセキュアプロセッサ、ＩＢＭ（登録商標）およびＭｏｔｏｒｏｌａ（登録商標）ＤｒａｇｏｎＢａｌｌ（登録商標）およびＰｏｗｅｒＰＣ（登録商標）プロセッサ、ＩＢＭおよびＳｏｎｙ（登録商標）のＣｅｌｌプロセッサ、Ｉｎｔｅｌ（登録商標）Ｃｅｌｅｒｏｎ（登録商標）、Ｃｏｒｅ（２）Ｄｕｏ（登録商標）、Ｉｔａｎｉｕｍ（登録商標）、Ｐｅｎｔｉｕｍ（登録商標）、Ｘｅｏｎ（登録商標）、およびＸＳｃａｌｅ（登録商標）プロセッサ、ならびに同様のプロセッサを含む、様々な市販のプロセッサのうちの任意のものであり得る。デュアルマイクロプロセッサ、マルチコアプロセッサ、および他のマルチプロセッサアーキテクチャも処理ユニット７０４として用いられ得る。
【００９９】
システムバス７０８は、限定ではないがシステムメモリ７０６を含むシステムコンポーネントのためのインターフェースを処理ユニット７０４に提供する。システムバス７０８は、各種の市販のバスアーキテクチャのうちの任意のものを用いてメモリバス（メモリコントローラを有するかまたは有しない）、周辺バス、およびローカルバスにさらに相互接続することができるいくつかのタイプのバス構造のうち、任意のものとすることができる。インターフェースアダプタが、スロットアーキテクチャを介してシステムバス７０８に接続し得る。例示的なスロットアーキテクチャは、限定ではないが、アクセラレーテッドグラフィックスポート（ＡＧＰ）、カードバス、（拡張）業界標準アーキテクチャ（（Ｅ）ＩＳＡ）、マイクロチャネルアーキテクチャ（ＭＣＡ）、ＮｕＢｕｓ、周辺コンポーネント相互接続（拡張）（ＰＣＩ（Ｘ））、ＰＣＩエクスプレス、パーソナルコンピュータメモリカード国際組織（ＰＣＭＣＩＡ）等を含み得る。
【０１００】
コンピューティングアーキテクチャ７００は、様々な製造品を含むかまたは実施することができる。製造品は、ロジックを記憶するためのコンピュータ可読記憶媒体を備え得る。コンピュータ可読記憶媒体の例は、揮発性メモリまたは不揮発性メモリ、取外し可能または非取外し可能メモリ、消去可能または非消去可能メモリ、書き込み可能または書き換え可能メモリ等を含む、電子データを記憶することが可能な任意の有形媒体を含み得る。ロジックの例は、ソースコード、コンパイルされたコード、解釈実行されたコード、実行可能コード、静的コード、動的コード、オブジェクト指向コード、視覚コード等の、任意の適切なタイプのコードを用いて実施される実行可能なコンピュータプログラム命令を含み得る。実施形態は少なくとも部分的に、１つまたは複数のプロセッサによって読出しおよび実行されて、本明細書に記載の動作を実行させる、非一時的コンピュータ可読媒体に含まれるかまたは非一時的コンピュータ可読媒体上にある命令として実施されることも可能である。
【０１０１】
システムメモリ７０６は、読出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、ダブルデータレートＤＲＡＭ（ＤＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能なプログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、強誘電性ポリマーメモリ等のポリマーメモリ、オーボニックメモリ（ovonic memory）、相変化または強誘電性メモリ、シリコン−酸化物−窒化物−酸化物−シリコン（ＳＯＮＯＳ）メモリ、磁気カードまたは光カード、独立ディスクの冗長アレイ（ＲＡＩＤ）ドライブ等のデバイスのアレイ、ソリッドステートメモリデバイス（例えばＵＳＢメモリ、ソリッドステートドライブ（ＳＳＤ））および情報を記憶するのに適した任意の他のタイプの記憶媒体等の、１つまたは複数の高速メモリユニットの形態の様々なタイプのコンピュータ記憶媒体を含み得る。図７に示す例示される実施形態では、システムメモリ７０６は、不揮発性メモリ７１０および／または揮発性メモリ７１２を含むことができる。基本入出力システム（ＢＩＯＳ）を不揮発性メモリ７１０に記憶することができる。
【０１０２】
コンピュータ７０２は、内部（または外部）ハードディスクドライブ（ＨＤＤ）７１４、取外し可能な磁気ディスク７１８の読出しまたは書き込みを行うための磁気フロッピーディスクドライブ（ＦＤＤ）７１６、および取外し可能な光ディスク７２２（例えばＣＤ−ＲＯＭまたはＤＶＤ）の読出しまたは書き込みを行うための光ディスクドライブ７２０を含む１つまたは複数の低速メモリユニットの形態で、様々なタイプのコンピュータ可読記憶媒体を備えることができる。ＨＤＤ７１４、ＦＤＤ７１６、および光ディスクドライブ７２０は、それぞれＨＤＤインターフェース７２４、ＦＤＤインターフェース７２６、および光ドライブインターフェース７２８によって、システムバス７０８に接続することができる。外部ドライブ実装のためのＨＤＤインターフェース７２４は、ユニバーサルシリアルバス（ＵＳＢ）およびＩＥＥＥ１３９４インターフェース技術の少なくとも一方または双方を含むことができる。
【０１０３】
ドライブおよび関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令等の揮発性の記憶および／または不揮発性の記憶を提供する。例えば、オペレーティングシステム７３０、１つまたは複数のアプリケーションプログラム７３２、他のプログラムモジュール７３４、およびプログラムデータ７３６を含む複数のプログラムモジュールを、ドライブおよびメモリユニット７１０、７１２に記憶することができる。１つの実施形態では、１つまたは複数のアプリケーションプログラム７３２、他のプログラムモジュール７３４、およびプログラムデータ７３６は、例えば、暗号化メッセージシステム１００の様々なアプリケーションおよび／またはコンポーネントを含むことができる。
【０１０４】
ユーザは、１つまたは複数の有線／無線の入力デバイス、例えば、キーボード７３８、およびマウス７４０などのポインティングデバイスを通じてコンピュータ７０２にコマンドおよび情報を入力することができる。他の入力デバイスは、マイクロフォン、赤外線（ＩＲ）リモートコントロール、無線周波数（ＲＦ）リモートコントロール、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、グローブ、グラフィックタブレット、ジョイスティック、キーボード、網膜リーダ、タッチスクリーン（例えば容量型、抵抗型等）、トラックボール、トラックパッド、センサ、スタイラス等を含むことができる。これらのおよび他の入力デバイスは、多くの場合、システムバス７０８に結合された入力デバイスインターフェース７４２を通じて処理ユニット７０４に接続されるが、パラレルポート、ＩＥＥＥ１３９４シリアルポート、ゲームポート、ＵＳＢポート、ＩＲインターフェース等の他のインターフェースによって接続されることもある。
【０１０５】
モニタ７４４または他のタイプの表示デバイスも、ビデオアダプタ７４６などのインターフェースを介してシステムバス７０８に接続される。モニタ７４４は、コンピュータ７０２に対し内部にある場合も外部にある場合もある。モニタ７４４に加えて、コンピュータは通常、スピーカ、プリンタ等の他の周辺出力デバイスを備える。
【０１０６】
コンピュータ７０２は、リモートコンピュータ７４８などの１つまたは複数のリモートコンピュータへの有線および／または無線通信を介した論理接続を使用して、ネットワーク化された環境において動作することができる。リモートコンピュータ７４８は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、携帯型コンピュータ、マイクロプロセッサを利用した娯楽機器、ピアデバイス、または他の一般的なネットワークノードであり得、通常は、コンピュータ７０２に関して記載した要素のうちの多くまたは全てを備えるが、簡潔にするために、メモリ／記憶デバイス７５０のみが示されている。描かれる論理接続は、ローカルエリアネットワーク（ＬＡＮ）７５２および／またはより大きなネットワーク、例えば広域ネットワーク（ＷＡＮ）７５４への有線／無線接続を含む。そのようなＬＡＮおよびＷＡＮネットワーキング環境は、事務所や会社において一般的であり、イントラネットなどの企業規模のコンピュータネットワークを容易にし、コンピュータネットワークは全て、グローバル通信ネットワーク、例えばインターネットに接続することができる。
【０１０７】
ＬＡＮネットワーキング環境で用いられるとき、コンピュータ７０２は、有線および／または無線通信ネットワークインターフェースまたはアダプタ７５６を通じてＬＡＮ７５２に接続される。アダプタ７５６は、ＬＡＮ７５２への有線および／または無線通信を容易にすることができ、ＬＡＮ７５２は、アダプタ７５６の無線機能と通信するために配置された無線アクセスポイントも含むことができる。
【０１０８】
ＷＡＮネットワーキング環境で用いられるとき、コンピュータ７０２は、モデム７５８を含むことができるか、またはＷＡＮ７５４上の通信サーバに接続されるか、またはインターネットを介するなど、ＷＡＮ７５４を介して通信を確立する他の手段を有する。モデム７５８は、内部または外部の、有線および／または無線デバイスであり得、入力デバイスインターフェース７４２を介してシステムバス７０８に接続する。ネットワーク化された環境では、コンピュータ７０２に関して描かれたプログラムモジュールまたはその一部分をリモートメモリ／記憶デバイス７５０に記憶することができる。示されるネットワーク接続は例示であり、コンピュータ間で通信リンクを確立する他の手段を使用できることが認識されよう。
【０１０９】
コンピュータ７０２は、ＩＥＥＥ８０２系規格を使用して、無線通信（例えば、ＩＥＥＥ８０２．１１オーバーザエアー変調技法）において動作可能に配置される無線デバイスなどの、有線および無線デバイスまたはエンティティと通信するように動作可能である。これは少なくとも、とりわけ、Ｗｉ−Ｆｉ（または無線フィデリティ）、ＷｉＭａｘおよびＢｌｕｅｔｏｏｔｈ（商標）の無線通信技術を含む。よって、通信は、従来のネットワークと同じように予め定義された通信構造であり得るか、または、単に少なくとも２つの装置の間におけるアドホック通信であり得る。Ｗｉ−Ｆｉネットワークは、安全で信頼性が高く高速な無線接続を提供するＩＥＥＥ８０２．１１ｘ（ａ、ｂ、ｇ、ｎ等）と称される無線技術を用いる。Ｗｉ−Ｆｉネットワークは、コンピュータを互いに、インターネットに、および有線ネットワーク（ＩＥＥＥ８０２．３関連の媒体および機能を用いる）に接続するために使用され得る。
【０１１０】
図８は、上記の様々な実施形態を実施するのに適した例示的な通信アーキテクチャ８００のブロック図を例示する。通信アーキテクチャ８００は、送信機、受信機、トランシーバ、無線通信装置、ネットワークインターフェース、ベースバンドプロセッサ、アンテナ、増幅器、フィルタ、電源等の様々な一般的な通信要素を含む。しかし、実施形態は通信アーキテクチャ８００による実施に限定されない。
【０１１１】
図８に示すように、通信アーキテクチャ８００は、１つまたは複数のクライアント８０２と、サーバ８０４とを備える。クライアント８０２は、ここに記載されるクライアントおよびクライアントデバイスに対応し得る。サーバ８０４は、ここに記載されるサーバおよびサーバデバイスに対応し得る。クライアント８０２およびサーバ８０４は、クッキーおよび／または関連付けられた状況情報などの情報を、それぞれのクライアント８０２およびサーバ８０４に対してローカルに記憶するために利用できる、１つまたは複数のそれぞれのクライアントデータストア８０８およびサーバデータストア８１０に動作可能に接続される。
【０１１２】
クライアント８０２およびサーバ８０４は、通信フレームワーク８０６を使用して互いの間で情報を通信することができる。通信フレームワーク８０６は、任意のよく知られた通信技法およびプロトコルを実施することができる。通信フレームワーク８０６は、パケット交換網（例えばインターネット等の公衆ネットワーク、社内イントラネット等のプライベートネットワーク等）、回線交換網（例えば公衆交換電話網）、またはパケット交換網と回線交換網との組合せ（適切なゲートウェイおよびトランスレータを備える）として実施され得る。
【０１１３】
通信フレームワーク８０６は、通信ネットワークを受け入れ、通信ネットワークと通信し、通信ネットワークに接続するように成される様々なネットワークインターフェースを実施することができる。ネットワークインターフェースは、特殊な形態の入出力インターフェースと見なすことができる。ネットワークインターフェースは、限定ではないが、直接接続、イーサネット（例えばシック、シン、ツイストペア１０／１００／１０００ＢａｓｅＴ等）、トークンリング、無線ネットワークインターフェース、セルラーネットワークインターフェース、ＩＥＥＥ８０２．１１ａ−ｘネットワークインターフェース、ＩＥＥＥ８０２．１６ネットワークインターフェース、ＩＥＥＥ８０２．２０ネットワークインターフェース等を含む接続プロトコルを用いることができる。さらに、様々な通信ネットワークタイプと関わるために複数のネットワークインターフェースが用いられ得る。例えば、ブロードキャスト、マルチキャストおよびユニキャストネットワークによる通信を実現するために、複数のネットワークインターフェースが用いられ得る。処理要件がより高い速度およびより多くの容量を求める場合には、分散ネットワークコントローラアーキテクチャを同様に利用して、クライアント８０２およびサーバ８０４によって必要とされる通信帯域幅をプールし、負荷分散し、他の形で増大させることが可能である。通信ネットワークは、限定ではないが、直接相互接続、セキュア化されたカスタム接続、プライベートネットワーク（例えば社内イントラネット）、公衆ネットワーク（例えばインターネット）、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネット上のノードとして動作しているミッション（ＯＭＮＩ）、広域ネットワーク（ＷＡＮ）、無線ネットワーク、セルラーネットワークおよび他の通信ネットワークを含む、有線および／または無線ネットワークのうちの任意の１つおよびそれらの組合せであり得る。
【０１１４】
図９は、暗号化メッセージシステム１００などのマルチキャリアＯＦＤＭシステムで使用するためのデバイス９００の一実施形態を例示する。デバイス９００は、例えば、暗号化メッセージシステム１００を参照して説明したようなソフトウェアコンポーネント９６０、および／または論理回路９３５を実施し得る。論理回路９３５は、暗号化メッセージシステム１００に関して説明した動作を行うための物理回路を含み得る。図９に示すように、デバイス９００は、無線インターフェース９１０、ベースバンド回路構成９２０、およびコンピューティングプラットフォーム９３０を含み得るが、実施形態はこの構成に制限されない。
【０１１５】
デバイス９００は、暗号化メッセージシステム１００および／または論理回路９３５について、その構造および／または動作の一部または全てを、完全に単一のデバイス内にあるなどの単一のコンピューティングエンティティ内に実施することができる。代替的に、デバイス９００は、クライアントサーバアーキテクチャ、３層アーキテクチャ、Ｎ層アーキテクチャ、密結合またはクラスタアーキテクチャ、ピアツーピアアーキテクチャ、マスタースレーブアーキテクチャ、共有データベースアーキテクチャ、および他のタイプの分散システムなどの分散システムアーキテクチャを使用して、暗号化メッセージシステム１００および／または論理回路９３５について、その構造および／または動作のいくつかの部分を複数のコンピューティングエンティティに分散させることができる。実施形態はこれに関して制限されない。
【０１１６】
１つの実施形態では、無線インターフェース９１０は、（例えば、相補型符号変調（ＣＣＫ）および／または直交周波数分割多重（ＯＦＤＭ）シンボルを含む）シングルキャリアまたはマルチキャリア変調信号を送信および／または受信するように適合されたコンポーネントもしくはコンポーネントの組合せを含み得るが、実施形態は、どの特定の空中（over-the-air）インターフェースまたは変調方式にも限定されない。無線インターフェース９１０は、例えば、受信機９１２、送信機９１６、および／または周波数シンセサイザ９１４を含み得る。無線インターフェース９１０は、バイアスコントロール、水晶発振器、および／または１つもしくは複数のアンテナ９１８を含み得る。別の実施形態では、無線インターフェース９１０は、必要に応じて、外部の電圧制御発振器（ＶＣＯ）、弾性表面波フィルタ、中間周波数（ＩＦ）フィルタ、および／またはＲＦフィルタを使用することができる。可能なＲＦインターフェース設計は多様であるため、その広範な説明は省略する。
【０１１７】
ベースバンド回路構成９２０は、受信信号および／または送信信号を処理するために無線インターフェース９１０と通信することができ、例えば、受信信号をダウンコンバートするためのアナログデジタル変換器９２２、信号を送信用にアップコンバートするためのデジタルアナログ変換器９２４を含み得る。さらに、ベースバンド回路構成９２０は、個々の受信信号／送信信号のＰＨＹリンク層処理のためのベースバンドまたは物理層（ＰＨＹ）処理回路９５６を含み得る。ベースバンド回路構成９２０は、例えば、メディアアクセス制御（ＭＡＣ）／データリンク層処理のための処理回路９２８を含み得る。ベースバンド回路構成９２０は、例えば、１つまたは複数のインターフェース９３４を介した処理回路９２８および／またはコンピューティングプラットフォーム９３０と通信するためのメモリコントローラ９３２を含み得る。
【０１１８】
いくつかの実施形態では、ＰＨＹ処理回路９２６は、無線フレームなどの通信フレームを構築および／または分解するために、バッファメモリのような追加的回路構成と組み合わせて、フレーム構築および／または検出モジュールを含み得る。代替的または追加的に、ＭＡＣ処理回路９２８は、これらの機能のうちのいくつかの処理を共有するか、またはこれらのプロセスをＰＨＹ処理回路９２６とは独立に行い得る。いくつかの実施形態では、ＭＡＣの処理とＰＨＹの処理は、単一の回路に統合され得る。
【０１１９】
コンピューティングプラットフォーム９３０は、デバイス９００にコンピューティング機能性を提供し得る。図示のように、コンピューティングプラットフォーム９３０は、処理コンポーネント９４０を含み得る。ベースバンド回路構成９２０に加えて、またはその代わりに、デバイス９００は、処理コンポーネント９４０を使用して、暗号化メッセージシステム１００および／または論理回路９３５に関する処理動作またはロジックを実行することができる。処理コンポーネント９４０（および／またはＰＨＹ９２６および／またはＭＡＣ９２８）は、各種ハードウェア要素、ソフトウェア要素、または両者の組合せを含み得る。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ回路、回路素子（例えばトランジスタ、抵抗器、コンデンサ、インダクタなど）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能ロジックデバイス（ＰＬＤ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含み得る。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインターフェース、アプリケーションプログラムインターフェース（ＡＰＩ）、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、記号、またはそれらの任意の組合せを含み得る。実施形態がハードウェア要素を用いて実施されるか、および／またはソフトウェア要素を用いて実施されるかの決定は、求められる計算速度、電力レベル、熱耐性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度、および他の設計または性能の制約など、所与の実装形態に要求される任意の数の要因に応じて変化し得る。
【０１２０】
コンピューティングプラットフォーム９３０は、さらに、他のプラットフォームコンポーネント９５０を含み得る。他のプラットフォームコンポーネント９５０は、１つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インターフェース、発振器、タイミング装置、ビデオカード、オーディオカード、マルチメディア入力／出力（Ｉ／Ｏ）コンポーネント（例えばデジタルディスプレイ）、電源等の、一般的なコンピューティング要素を含む。メモリユニットの例は、限定するものではないが、読出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、ダブルデータレートＤＲＡＭ（ＤＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能なプログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、強誘電性ポリマーメモリ等のポリマーメモリ、オーボニックメモリ、相変化または強誘電性メモリ、シリコン−酸化物−窒化物−酸化物−シリコン（ＳＯＮＯＳ）メモリ、磁気カードまたは光カード、独立ディスクの冗長アレイ（ＲＡＩＤ）ドライブ等のデバイスのアレイ、ソリッドステートメモリデバイス（例えばＵＳＢメモリ、ソリッドステートドライブ（ＳＳＤ））および情報を記憶するのに適した任意の他のタイプの記憶媒体等の、１つまたは複数の高速メモリユニットの形態の様々なタイプのコンピュータ可読および機械可読の記憶媒体を含み得る。
【０１２１】
デバイス９００は、例えば、ウルトラモバイルデバイス、モバイルデバイス、固定デバイス、マシンツーマシン（Ｍ２Ｍ）デバイス、携帯情報端末（ＰＤＡ）、モバイルコンピューティングデバイス、スマートフォン、電話機、デジタル電話機、セルラー電話機、ユーザ機器、電子書籍リーダ、ハンドセット、一方向ページャ、双方向ページャ、メッセージングデバイス、コンピュータ、パーソナルコンピュータ（ＰＣ）、デスクトップコンピュータ、ラップトップコンピュータ、ノート型コンピュータ、ネットブックコンピュータ、手持ち型コンピュータ、タブレットコンピュータ、サーバ、サーバアレイまたはサーバファーム、ウェブサーバ、ネットワークサーバ、インターネットサーバ、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサを利用したシステム、消費者家電、プログラム可能な消費者家電、ゲームデバイス、テレビ、デジタルテレビ、セットトップボックス、無線アクセスポイント、基地局、ノードＢ、発展型ノードＢ（ｅＮＢ）、加入者局、モバイル加入者センター、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、機械、またはそれらの組合せであり得る。したがって、本明細書に記載のデバイス９００の機能および／または具体的な構成は、要求に応じて適宜、デバイス９００の様々な実施形態に含めることも、または省くこともできる。いくつかの実施形態では、デバイス９００は、３ＧＰＰ  ＬＴＥ仕様および／またはＷＭＡＮ用のＩＥＥＥ１１０２．１６規格および／または本明細書で引用される他の広帯域無線ネットワークの１つ以上に関連したプロトコルおよび周波数に準拠するように構成することができるが、実施形態はこの点に関して限定されない。
【０１２２】
デバイス９００の実施形態は、単入力単出力（ＳＩＳＯ）アーキテクチャを用いて実施することができる。しかし、ある実装形態は、ビームフォーミングまたは空間分割多重アクセス（ＳＤＭＡ）のための適応アンテナ技法、および／またはＭＩＭＯ通信技法を用いた送信および／または受信用の複数のアンテナ（例えばアンテナ９１８）を含み得る。
【０１２３】
デバイス９００のコンポーネントおよび特徴は、ディスクリート回路構成、特定用途向け集積回路（ＡＳＩＣ）、論理ゲート、および／またはシングルチップアーキテクチャの任意の組合せを用いて実施され得る。さらに、デバイス９００の特徴は、適宜、マイクロコントローラ、プログラマブルロジックアレイ、および／またはマイクロプロセッサ、またはそれらの任意の組合せを用いて実施され得る。本明細書において、ハードウェア、ファームウェア、および／またはソフトウェア要素を、「ロジック」または「回路」と総称または個称する場合があることに留意すべきである。
【０１２４】
図９のブロック図に示す例示的なデバイス９００は、多くの可能性のある実装形態の１つの機能的説明例を表し得るということは認識されるべきである。したがって、添付の図面に描かれる機能ブロックの分割、省略、または包含は、それらの機能を実施するためのハードウェアコンポーネント、回路、ソフトウェア、および／または要素が実施形態において必ず分割、省略、または包含されることを示唆するものではない。
【０１２５】
コンピュータ実装方法は、
多次元のラチェット暗号化方式に従って暗号化されている暗号化メッセージを受信することと、
暗号化メッセージのメッセージ反復回数を判定することと、
メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解することと、
複数のメッセージチェーン鍵反復回数に基づいて復号鍵を決定することと、
復号鍵に基づいて暗号化メッセージを復号することにより復号後メッセージを生成することと、
を含み得る。
【０１２６】
コンピュータ実装方法は、
暗号化メッセージを、メッセージングサーバデバイスからクライアントデバイスで受信することと、
復号後メッセージをクライアントデバイス上に表示することと、
をさらに含み得る。
【０１２７】
コンピュータ実装方法は、復号鍵が複数のクライアントチェーン鍵に基づくものであり、複数のクライアントチェーン鍵が、多次元のラチェット暗号化方式の複数の次元に対応し、複数の次元が、複数のクライアントチェーン鍵の可変ステップの前進を可能にすること、をさらに含み得る。
【０１２８】
コンピュータ実装方法は、複数のクライアントチェーン鍵の可変ステップの前進が、１つまたは複数の暗号化メッセージを破棄することに相当することをさらに含み得る。
【０１２９】
コンピュータ実装方法は、暗号化メッセージの復号に応答してチェーン鍵反復回数を１ステップ前進させることをさらに含み得る。
【０１３０】
コンピュータ実装方法は、
複数のクライアントチェーン鍵を取得することであって、複数のクライアントチェーン鍵は多次元のラチェット暗号化方式の複数の次元に対応し、複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
複数のクライアントチェーン鍵反復回数が複数のメッセージチェーン鍵反復回数と等しいと判定することと、
複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を復号鍵として決定することと、
をさらに含み得る。
【０１３１】
コンピュータ実装方法は、最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値未満である場合、暗号化メッセージの復号に応答して最も次元の高いクライアントチェーン鍵を１ステップ前進させることをさらに含み得る。
【０１３２】
コンピュータ実装方法は、最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合、暗号化メッセージの復号に応答して複数のクライアントチェーン鍵のうち２つ以上のクライアントチェーン鍵を前進させることをさらに含み得る。
【０１３３】
コンピュータ実装方法は、
複数のクライアントチェーン鍵を取得することであって、複数のクライアントチェーン鍵は多次元のラチェット暗号化方式の複数の次元に対応し、複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
クライアント反復回数がメッセージ反復回数未満であることを判定することであって、クライアント反復回数は複数のクライアントチェーン鍵反復回数を合成したものに対応する、クライアント反復回数がメッセージ反復回数未満であると判定することと、
クライアント反復回数とメッセージ反復回数との間の反復距離に基づいて複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成することと、
複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を復号鍵として決定することと、
をさらに含み得る。
【０１３４】
コンピュータ実装方法は、複数のクライアントチェーン鍵を前進させることが、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み、より次元の高いクライアントチェーン鍵を再生成することが、より次元の高いクライアントチェーン鍵の１つまたは複数の許容反復回数をスキップすることを含むこと、をさらに含み得る。
【０１３５】
装置は、メッセージングコンポーネントであって、暗号化メッセージを受信し、暗号化メッセージは多次元のラチェット暗号化方式に従って暗号化されており、暗号化メッセージのメッセージ反復回数を判定し、復号鍵に基づいて暗号化メッセージを復号することによって復号後メッセージを生成するように動作する、メッセージングコンポーネントと、メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解し、複数のメッセージチェーン鍵反復回数に基づいて復号鍵を決定するように、プロセッサ回路上で動作する鍵管理コンポーネントと、を備え得る。装置は、本明細書に記載されるコンピュータ実装方法のいずれかを実施するように動作し得る。
【０１３６】
少なくとも１つのコンピュータ可読記憶媒体は、実行されたとき、システムに、本明細書に記載されるコンピュータ実装方法のいずれかを行わせる命令を備え得る。
【０１３７】
コンピュータ実装方法は、
多次元のラチェット暗号化方式に従って暗号化されている暗号化メッセージを受信することと、
暗号化メッセージのメッセージ反復回数を判定することと、
メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解することと、
複数のメッセージチェーン鍵反復回数に基づいて復号鍵を決定することと、
復号鍵に基づいて暗号化メッセージを復号することにより復号後メッセージを生成することと、
を含み得る。
【０１３８】
コンピュータ実装方法は、復号鍵が複数のクライアントチェーン鍵に基づくものであり、複数のクライアントチェーン鍵が多次元のラチェット暗号化方式の複数の次元に対応し、複数の次元が、複数のクライアントチェーン鍵の可変ステップの前進を可能にし、複数のクライアントチェーン鍵の可変ステップの前進が、任意選択で、１つまたは複数の暗号化メッセージを破棄することに相当すること、をさらに含み得る。
【０１３９】
コンピュータ実装方法は、複数のクライアントチェーン鍵を取得することであって、複数のクライアントチェーン鍵は多次元のラチェット暗号化方式の複数の次元に対応し、複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得すること、複数のクライアントチェーン鍵反復回数が複数のメッセージチェーン鍵反復回数と等しいと判定すること、および、複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を復号鍵として決定すること、および、任意選択で、最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合、暗号化メッセージの復号に応答して複数のクライアントチェーン鍵のうち２つ以上のクライアントチェーン鍵を前進させること、または、任意選択で、最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値未満である場合、暗号化メッセージの復号に応答して最も次元の高いクライアントチェーン鍵を１ステップ前進させること、をさらに含み得る。
【０１４０】
コンピュータ実装方法は、
複数のクライアントチェーン鍵を取得することであって、複数のクライアントチェーン鍵は多次元のラチェット暗号化方式の複数の次元に対応し、複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
クライアント反復回数がメッセージ反復回数未満であることを判定することであって、クライアント反復回数は複数のクライアントチェーン鍵反復回数を合成したものに対応する、クライアント反復回数がメッセージ反復回数未満であると判定することと、
クライアント反復回数とメッセージ反復回数との間の反復距離に基づいて複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成することと、
複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を復号鍵として決定することと、
をさらに含み得る。ここで、複数のクライアントチェーン鍵を前進させることは、任意選択で、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み、より次元の高いクライアントチェーン鍵を再生成することは、より次元の高いクライアントチェーン鍵の１つまたは複数の許容反復回数をスキップすることを含む。
【０１４１】
コンピュータ実装方法は、メッセージ反復回数が、暗号化メッセージを復号する際に少なくとも部分的に使用されるメッセージの順序付けおよび順番情報を標示し、メッセージ反復回数が、任意選択で、暗号化メッセージの非暗号化ラッパー、特に非暗号化ヘッダ、の一コンポーネントであり、暗号化メッセージの秘密情報、プライベートな情報、またはその他の形で保護される情報が、暗号化メッセージの暗号化されたペイロード中に置かれ、暗号化メッセージおよび非暗号化ラッパーが、任意選択で、メッセージパッケージの一部としてメッセージングサーバを介して送られ、メッセージングコンポーネントにより、暗号化メッセージの非暗号化ラッパーからメッセージ反復回数を抽出することによりメッセージ反復回数を判定すること、をさらに含み得る。
【０１４２】
装置は、メッセージングコンポーネントであって、暗号化メッセージを受信し、暗号化メッセージは多次元のラチェット暗号化方式に従って暗号化されており、暗号化メッセージのメッセージ反復回数を判定し、復号鍵に基づいて暗号化メッセージを復号することによって復号後メッセージを生成するように動作する、メッセージングコンポーネントと、メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解し、複数のメッセージチェーン鍵反復回数に基づいて復号鍵を決定するように、プロセッサ回路上で動作する鍵管理コンポーネントと、を備え得る。
【０１４３】
装置は、復号鍵が複数のクライアントチェーン鍵に基づくものであり、複数のクライアントチェーン鍵が多次元のラチェット暗号化方式の複数の次元に対応し、複数の次元が、複数のクライアントチェーン鍵の可変ステップの前進を可能にし、複数のクライアントチェーン鍵の可変ステップの前進が、任意選択で、１つまたは複数の暗号化メッセージを破棄することに相当すること、をさらに含み得る。
【０１４４】
装置は、
鍵管理コンポーネントが、
複数のクライアントチェーン鍵を取得することであって、複数のクライアントチェーン鍵は多次元のラチェット暗号化方式の複数の次元に対応し、複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
複数のクライアントチェーン鍵反復回数が複数のメッセージチェーン鍵反復回数と等しいと判定することと、複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を復号鍵として決定することと、
最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合、暗号化メッセージの復号に応答して複数のクライアントチェーン鍵のうち２つ以上のクライアントチェーン鍵を前進させることと、
を行うように動作すること、をさらに含み得る。
【０１４５】
装置は、
鍵管理コンポーネントが、
複数のクライアントチェーン鍵を取得することであって、複数のクライアントチェーン鍵は多次元のラチェット暗号化方式の複数の次元に対応し、複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
クライアント反復回数がメッセージ反復回数未満であることを判定することであって、クライアント反復回数は複数のクライアントチェーン鍵反復回数を合成したものに対応する、クライアント反復回数がメッセージ反復回数未満であることを判定することと、
クライアント反復回数とメッセージ反復回数との間の反復距離に基づいて複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成することと、
複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を復号鍵として決定することと、
を行うように動作することをさらに含み得、複数のクライアントチェーン鍵を前進させることは、任意選択で、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み、より次元の高いクライアントチェーン鍵を再生成することは、より次元の高いクライアントチェーン鍵の１つまたは複数の許容反復回数をスキップすることを含む。
【０１４６】
装置は、メッセージ反復回数が、暗号化メッセージを復号する際に少なくとも部分的に使用されるメッセージの順序付けおよび順番情報を標示し、メッセージ反復回数が、任意選択で、暗号化メッセージの非暗号化ラッパー、特に非暗号化ヘッダ、の一コンポーネントであり、暗号化メッセージの秘密情報、プライベートな情報、またはその他の形で保護される情報が、暗号化メッセージの暗号化されたペイロード中に置かれ、暗号化メッセージおよび非暗号化ラッパーが、任意選択で、メッセージパッケージの一部としてメッセージングサーバを介して送られ、メッセージングコンポーネントが、暗号化メッセージの非暗号化ラッパーからメッセージ反復回数を抽出することによりメッセージ反復回数を判定するように動作可能であること、をさらに含み得る。
【０１４７】
少なくとも１つのコンピュータ可読記憶媒体は、実行されたとき、システム、特に請求項２６から３０のいずれか一項に記載の装置に、請求項２１から２５の少なくとも１つに記載の方法の全てのステップを実施させる命令を備え得る。
【０１４８】
いくつかの実施形態は、「１つの実施形態」または「一実施形態」という表現と、それらの派生語とを用いて説明されることがある。これらの用語は、当該実施形態に関して説明される特定の特徴、構造または特性が少なくとも１つの実施形態に含まれることを意味する。本明細書の様々な箇所に現れる「１つの実施形態において」というフレーズは、必ずしも全てが同じ実施形態を指すわけではない。さらに、いくつかの実施形態は、「結合された」および「接続された」という表現と、それらの派生語とを用いて説明されることがある。これらの表現は必ずしも互いの同義語として意図されているとは限らない。例えば、いくつかの実施形態は、「接続された」および／または「結合された」という表現を用いることにより、２つ以上の要素が物理的または電気的に直接互いと接触していることを示すように説明され得る。ただし、「結合された」という用語は、２つ以上の要素が互いに直接接触していないものの、互いに協働または対話することを意味する場合もある。
【０１４９】
本明細書において用いられる表記および専門用語を全体的に参照すると、本明細書における詳細な説明は、コンピュータまたはコンピュータのネットワーク上で実行されるプログラムプロシージャの観点から与えられることがある。これらの手続き的記載および表現は、当業者が当該技術分野における他の当業者に自身の研究の本質を最も効果的に伝えるために用いられる。
【０１５０】
プロシージャとは、ここでは、また一般的に、所望の結果をもたらす動作の自己矛盾のないシーケンスであると考えられる。これらの動作は、物理的量の物理的操作を必要とする動作である。通常、ただし必ずそうであるとは限らないが、これらの量は、記憶、転送、組合せ、比較および他の形で操作されることが可能な電気信号、磁気信号または光信号の形態を取る。場合によっては、主に広く使用されているという理由から、これらの信号を、ビット、値、要素、記号、文字、項、数等と呼ぶことが利便であることが判明している。しかし、これらの用語および同様の用語は全て適切な物理的量に関連付けられ、これらの量に適用される利便な標識にすぎないことに留意されたい。
【０１５１】
さらに、実行される操作は、多くの場合、一般的には人間のオペレータによって実行される知的動作に関連付けられる、追加または比較等の用語で参照される。１つまたは複数の実施形態の一部を形成する、本明細書に記載される動作のいずれにおいても、人間のオペレータのそのような能力は必要でないか、ほとんどの場合に望ましくない。むしろ、それらの動作は機械動作である。様々な実施形態の動作を実行するための有用な機械は、汎用デジタルコンピュータまたは同様のデバイスを含む。
【０１５２】
様々な実施形態は、これらの動作を実行するための装置またはシステムにも関する。この装置は、必要とされる目的のために特に構築されるか、またはコンピュータに記憶されるコンピュータプログラムによって選択的に作動または再構成される汎用コンピュータを含むことができる。本明細書において提示されるプロシージャは本質的に、特定のコンピュータまたは他の装置に関係しない。様々な汎用機械が、本明細書における教示に従って書かれたプログラムと共に用いられ得るか、または、必要とされる方法ステップを実行するためのより特殊な装置を構築することが好都合であると判明する場合がある。様々なこれらの機械のために必要とされる構造は、与えられる説明から明らかとなるであろう。
【０１５３】
本開示の要約書は、読み手が技術的開示の本質を迅速に理解できるようにするために提供されていることを強調しておく。要約書は、特許請求の範囲の範囲または意味を解釈または限定することには用いられないという理解のもとに提出されている。また、上記した「発明を実施するための形態」においては、開示を効率化するために様々な特徴がまとめて単一の実施形態にされていることを見てとることができる。この開示方法は、特許請求される実施形態が各請求項に明示的に記された特徴以外のものを必要とするという意図を表すものと解釈されるべきではない。むしろ、以下の特許請求の範囲が表しているように、本発明の主題は、開示されている単一の実施形態の全特徴よりも少ない特徴にある。よって、以下の特許請求の範囲は本明細書において「発明を実施するための形態」に組み込まれ、各請求項は独立した１つの実施形態に基づく。添付の特許請求の範囲において、「ｉｎｃｌｕｄｉｎｇ」および「ｉｎ  ｗｈｉｃｈ」という用語は、それぞれ「ｃｏｍｐｒｉｓｉｎｇ」および「ｗｈｅｒｅｉｎ」の平易な英語における等価語として使用されている。さらに、「第１の」、「第２の」、「第３の」等の用語は単に標識として用いられており、それらの対象物に数値的限定を課すことを意図したものではない。
【０１５４】
上記の記載は、開示されるアーキテクチャの例を含む。当然ながら、コンポーネントおよび／または方法論の全ての考え得る組合せを記載することは不可能であるが、当業者であれば、多くのさらなる組合せおよび置き換えが可能であることを認識することができる。したがって、本発明の新規のアーキテクチャは、添付の特許請求の範囲の趣旨および範囲内にある全ての改変、修正、および変形を包含することが意図される。
【図１】
2020507962.tif 000003
【図２】
2020507962.tif 000004
【図３】
2020507962.tif 000005
【図４】
2020507962.tif 000006
【図５】
2020507962.tif 000007
【図６】
2020507962.tif 000008
【図７】
2020507962.tif 000009
【図８】
2020507962.tif 000010
【図９】
2020507962.tif 000011
【国際調査報告】
2020507962.tif 000012
2020507962.tif 000013