IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ワッツアップ・インコーポレイテッドの特許一覧

特許7030128複数のステップサイズによる鍵ラチェットのための技法
<>
  • 特許-複数のステップサイズによる鍵ラチェットのための技法 図1
  • 特許-複数のステップサイズによる鍵ラチェットのための技法 図2
  • 特許-複数のステップサイズによる鍵ラチェットのための技法 図3
  • 特許-複数のステップサイズによる鍵ラチェットのための技法 図4
  • 特許-複数のステップサイズによる鍵ラチェットのための技法 図5
  • 特許-複数のステップサイズによる鍵ラチェットのための技法 図6
  • 特許-複数のステップサイズによる鍵ラチェットのための技法 図7
  • 特許-複数のステップサイズによる鍵ラチェットのための技法 図8
  • 特許-複数のステップサイズによる鍵ラチェットのための技法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-24
(45)【発行日】2022-03-04
(54)【発明の名称】複数のステップサイズによる鍵ラチェットのための技法
(51)【国際特許分類】
   H04L 9/16 20060101AFI20220225BHJP
   G06F 21/62 20130101ALI20220225BHJP
【FI】
H04L9/16
G06F21/62
【請求項の数】 31
(21)【出願番号】P 2019539881
(86)(22)【出願日】2017-07-17
(65)【公表番号】
(43)【公表日】2020-03-12
(86)【国際出願番号】 US2017042399
(87)【国際公開番号】W WO2018147895
(87)【国際公開日】2018-08-16
【審査請求日】2020-04-21
(31)【優先権主張番号】62/460,128
(32)【優先日】2017-02-17
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/649,929
(32)【優先日】2017-07-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515333190
【氏名又は名称】ワッツアップ エルエルシー
(74)【代理人】
【識別番号】110002974
【氏名又は名称】特許業務法人World IP
(72)【発明者】
【氏名】ケーニヒスベルク, デレク アラン
(72)【発明者】
【氏名】ナフマン, ジョージ
(72)【発明者】
【氏名】ユイエン, チュン ウィン
(72)【発明者】
【氏名】クレット, アーレン アンドリュー
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2016-100632(JP,A)
【文献】特開2017-038143(JP,A)
【文献】国際公開第2007/046376(WO,A1)
【文献】MARLINSPIKE, M. et al.,The Double Ratchet Algorithm,2016年11月20日,pp.1-35,[令和3年5月14日検索],インターネット<URL:https://www.signal.org/docs/specifications/doubleratchet/doubleratchet.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/16
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
メッセージングコンポーネントにより、最も次元の低い鍵から最も次元の高い鍵まで配置された複数のメッセージチェーン鍵を含む多次元のラチェット暗号化方式に従って暗号化されている暗号化メッセージを受信することと、
前記メッセージングコンポーネントにより、前記暗号化メッセージのメッセージ反復回数を判定することと、
前記メッセージングコンポーネントにより、前記メッセージ反復回数に基づいて、1つまたは複数の暗号化されたメッセージを破棄することを決定し、それらのメッセージを破棄することと、
鍵管理コンポーネントにより、前記メッセージ反復回数に基づいて、前記複数のメッセージチェーン鍵をラチェットすることと、
前記鍵管理コンポーネントにより、最も次元の高いメッセージチェーン鍵を復号鍵として決定することと、
前記メッセージングコンポーネントにより、決定された前記復号鍵に基づいて前記暗号化メッセージを復号することにより復号後メッセージを生成することと、
を含む、コンピュータ実装方法。
【請求項2】
前記復号鍵はさらに複数のクライアントチェーン鍵に基づくものであり、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数の次元は、前記複数のクライアントチェーン鍵の可変ステップの前進を可能にする、請求項1に記載の方法。
【請求項3】
前記複数のクライアントチェーン鍵の可変ステップの前進は、1つまたは複数の暗号化メッセージを破棄することに相当する、請求項2に記載の方法。
【請求項4】
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
前記複数のクライアントチェーン鍵反復回数が複数のメッセージチェーン鍵反復回数と等しいと判定することと、
前記複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を前記復号鍵として決定することと、
前記最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合、前記暗号化メッセージの復号に応答して前記複数のクライアントチェーン鍵のうち2つ以上のクライアントチェーン鍵を前進させることと、
をさらに含む、請求項1に記載の方法。
【請求項5】
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
クライアント反復回数が前記メッセージ反復回数未満であることを判定することであって、前記クライアント反復回数は前記複数のクライアントチェーン鍵反復回数を合成したものに対応する、クライアント反復回数が前記メッセージ反復回数未満であると判定することと、
前記クライアント反復回数と前記メッセージ反復回数との間の反復距離に基づいて前記複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成することと、
前記複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を前記復号鍵として決定することと、
をさらに含む、請求項1に記載の方法。
【請求項6】
前記複数のクライアントチェーン鍵を前進させることは、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み、前記より次元の高いクライアントチェーン鍵を再生成することは、前記より次元の高いクライアントチェーン鍵の1つまたは複数の許容反復回数をスキップすることを含む、請求項5に記載の方法。
【請求項7】
メッセージングコンポーネントであって、暗号化メッセージを受信し、前記暗号化メッセージは、最も次元の低い鍵から最も次元の高い鍵まで配置された複数のメッセージチェーン鍵を含む多次元のラチェット暗号化方式に従って暗号化されており、前記暗号化メッセージのメッセージ反復回数を判定し、前記メッセージ反復回数に基づいて、1つまたは複数の暗号化されたメッセージを破棄することを決定し、それらのメッセージを破棄し、決定される復号鍵に基づいて前記暗号化メッセージを復号することによって復号後メッセージを生成するように動作する、メッセージングコンポーネントと、
前記メッセージ反復回数に基づいて、前記複数のメッセージチェーン鍵をラチェットし、最も次元の高いメッセージチェーン鍵を復号鍵として決定するように、プロセッサ回路上で動作する鍵管理コンポーネントと、
を備える装置。
【請求項8】
前記復号鍵はさらに複数のクライアントチェーン鍵に基づくものであり、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数の次元は、前記複数のクライアントチェーン鍵の可変ステップの前進を可能にする、請求項7に記載の装置。
【請求項9】
前記複数のクライアントチェーン鍵の可変ステップの前進は、1つまたは複数の暗号化メッセージを破棄することに相当する、請求項8に記載の装置。
【請求項10】
前記鍵管理コンポーネントが、
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
前記複数のクライアントチェーン鍵反復回数が複数のメッセージチェーン鍵反復回数と等しいと判定することと、
前記複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を前記復号鍵として決定することと、
前記最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合、前記暗号化メッセージの復号に応答して前記複数のクライアントチェーン鍵のうち2つ以上のクライアントチェーン鍵を前進させることと、
を行うように動作することをさらに含む、請求項7に記載の装置。
【請求項11】
前記鍵管理コンポーネントが、
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
クライアント反復回数が前記メッセージ反復回数未満であることを判定することであって、前記クライアント反復回数は前記複数のクライアントチェーン鍵反復回数を合成したものに対応する、クライアント反復回数が前記メッセージ反復回数未満であることを判定することと、
前記クライアント反復回数と前記メッセージ反復回数との間の反復距離に基づいて前記複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成することと、
前記複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を前記復号鍵として決定することと、
を行うように動作することをさらに含む、請求項7に記載の装置。
【請求項12】
前記複数のクライアントチェーン鍵を前進させることは、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み、前記より次元の高いクライアントチェーン鍵を再生成することは、前記より次元の高いクライアントチェーン鍵の1つまたは複数の許容反復回数をスキップすることを含む、請求項11に記載の装置。
【請求項13】
少なくとも1つのコンピュータ可読記憶媒体であって、実行されたとき、システムに、
最も次元の低い鍵から最も次元の高い鍵まで配置された複数のメッセージチェーン鍵を含む多次元のラチェット暗号化方式に従って暗号化されている暗号化メッセージを受信することと、
前記暗号化メッセージのメッセージ反復回数を判定することと、
前記メッセージ反復回数に基づいて、1つまたは複数の暗号化されたメッセージを破棄することを決定し、それらのメッセージを破棄することと、
前記メッセージ反復回数に基づいて、前記複数のメッセージチェーン鍵をラチェットすることと、
最も次元の高いメッセージチェーン鍵を復号鍵として決定することと、
決定された前記復号鍵に基づいて前記暗号化メッセージを復号することにより復号後メッセージを生成することと、
を行わせる命令を備える、少なくとも1つのコンピュータ可読記憶媒体。
【請求項14】
前記復号鍵はさらに複数のクライアントチェーン鍵に基づくものであり、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数の次元は、前記複数のクライアントチェーン鍵の可変ステップの前進を可能にする、請求項13に記載のコンピュータ可読記憶媒体。
【請求項15】
前記複数のクライアントチェーン鍵の可変ステップの前進は、1つまたは複数の暗号化メッセージを破棄することに相当する、請求項14に記載のコンピュータ可読記憶媒体。
【請求項16】
実行されたとき、システムに、
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
前記複数のクライアントチェーン鍵反復回数が複数のメッセージチェーン鍵反復回数と等しいと判定することと、
前記複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を前記復号鍵として決定することと、
を行わせるさらなる命令を備える、請求項13に記載のコンピュータ可読記憶媒体。
【請求項17】
実行されたとき、システムに、
前記最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値未満である場合、前記暗号化メッセージの復号に応答して前記最も次元の高いクライアントチェーン鍵を1ステップ前進させる、さらなる命令を備える、請求項16に記載のコンピュータ可読記憶媒体。
【請求項18】
実行されたとき、システムに、
前記最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合、前記暗号化メッセージの復号に応答して前記複数のクライアントチェーン鍵のうち2つ以上のクライアントチェーン鍵を前進させる、さらなる命令を備える、請求項16に記載のコンピュータ可読記憶媒体。
【請求項19】
実行されたとき、システムに、
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
クライアント反復回数が前記メッセージ反復回数未満であることを判定することであって、前記クライアント反復回数は前記複数のクライアントチェーン鍵反復回数を合成したものに対応する、クライアント反復回数が前記メッセージ反復回数未満であると判定することと、
前記クライアント反復回数と前記メッセージ反復回数との間の反復距離に基づいて前記複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成することと、
前記複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を前記復号鍵として決定することと、
を行わせるさらなる命令を備える、請求項13に記載のコンピュータ可読記憶媒体。
【請求項20】
数のクライアントチェーン鍵を前進させることは、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み、前記より次元の高いクライアントチェーン鍵を再生成することは、前記より次元の高いクライアントチェーン鍵の1つまたは複数の許容反復回数をスキップすることを含む、請求項13に記載のコンピュータ可読記憶媒体。
【請求項21】
特にメッセージングシステム内でメッセージの暗号化交換を行うための、コンピュータ実装方法であって、
メッセージングコンポーネントにより、最も次元の低い鍵から最も次元の高い鍵まで配置された複数のメッセージチェーン鍵を含む多次元のラチェット暗号化方式に従って暗号化されている暗号化メッセージを受信することと、
前記メッセージングコンポーネントにより、前記暗号化メッセージのメッセージ反復回数を判定することと、
前記メッセージングコンポーネントにより、前記メッセージ反復回数に基づいて、1つまたは複数の暗号化されたメッセージを破棄することを決定し、それらのメッセージを破棄することと、
鍵管理コンポーネントにより、前記メッセージ反復回数に基づいて、前記複数のメッセージチェーン鍵をラチェットすることと、
前記鍵管理コンポーネントにより、最も次元の高いメッセージチェーン鍵を復号鍵として決定することと、
前記メッセージングコンポーネントにより、決定された前記復号鍵に基づいて前記暗号化メッセージを復号することにより復号後メッセージを生成することと、
を含む、コンピュータ実装方法。
【請求項22】
前記復号鍵はさらに複数のクライアントチェーン鍵に基づくものであり、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数の次元は、前記複数のクライアントチェーン鍵の可変ステップの前進を可能にし、前記複数のクライアントチェーン鍵の前記可変ステップの前進は、任意選択で、1つまたは複数の暗号化メッセージを破棄することに相当する、請求項21に記載の方法。
【請求項23】
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得すること、
前記複数のクライアントチェーン鍵反復回数が複数のメッセージチェーン鍵反復回数と等しいと判定すること、および
前記複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を前記復号鍵として決定すること、および
任意選択で、前記最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合、前記暗号化メッセージの復号に応答して前記複数のクライアントチェーン鍵のうち2つ以上のクライアントチェーン鍵を前進させること、または
任意選択で、前記最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値未満である場合、前記暗号化メッセージの復号に応答して前記最も次元の高いクライアントチェーン鍵を1ステップ前進させること、
をさらに含む、請求項21または22に記載の方法。
【請求項24】
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
クライアント反復回数が前記メッセージ反復回数未満であることを判定することであって、前記クライアント反復回数は前記複数のクライアントチェーン鍵反復回数を合成したものに対応する、クライアント反復回数が前記メッセージ反復回数未満であると判定することと、
前記クライアント反復回数と前記メッセージ反復回数との間の反復距離に基づいて前記複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成することと、
前記複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を前記復号鍵として決定することと、
をさらに含み、
前記複数のクライアントチェーン鍵を前進させることは、任意選択で、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み、前記より次元の高いクライアントチェーン鍵を再生成することは、前記より次元の高いクライアントチェーン鍵の1つまたは複数の許容反復回数をスキップすることを含む、請求項21から23のいずれか一項に記載の方法。
【請求項25】
前記メッセージ反復回数は、前記暗号化メッセージを復号する際に少なくとも部分的に使用される前記メッセージの順序付けおよび順番情報を標示し、前記メッセージ反復回数は、任意選択で、前記暗号化メッセージの非暗号化ラッパー、特に非暗号化ヘッダ、の一コンポーネントであり、前記暗号化メッセージの秘密情報、プライベートな情報、またはその他の形で保護される情報が、前記暗号化メッセージの暗号化されたペイロード中に置かれ、前記暗号化メッセージおよび前記非暗号化ラッパーは、任意選択で、メッセージパッケージの一部としてメッセージングサーバを介して送られ、メッセージングコンポーネントにより、前記暗号化メッセージの前記非暗号化ラッパーから前記メッセージ反復回数を抽出することにより前記メッセージ反復回数を判定する、請求項21から24のいずれか一項に記載の方法。
【請求項26】
メッセージングコンポーネントであって、暗号化メッセージを受信し、前記暗号化メッセージは、最も次元の低い鍵から最も次元の高い鍵まで配置された複数のメッセージチェーン鍵を含む多次元のラチェット暗号化方式に従って暗号化されており、前記暗号化メッセージのメッセージ反復回数を判定し、前記メッセージ反復回数に基づいて、1つまたは複数の暗号化されたメッセージを破棄することを決定し、それらのメッセージを破棄し、決定される復号鍵に基づいて前記暗号化メッセージを復号することによって復号後メッセージを生成するように動作する、メッセージングコンポーネントと、
前記メッセージ反復回数に基づいて、前記複数のメッセージチェーン鍵をラチェットし、最も次元の高いメッセージチェーン鍵を復号鍵として決定するように、プロセッサ回路上で動作する鍵管理コンポーネントと、
を備える装置。
【請求項27】
前記復号鍵はさらに複数のクライアントチェーン鍵に基づくものであり、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数の次元は、前記複数のクライアントチェーン鍵の可変ステップの前進を可能にし、前記複数のクライアントチェーン鍵の前記可変ステップの前進は、任意選択で、1つまたは複数の暗号化メッセージを破棄することに相当する、請求項26に記載の装置。
【請求項28】
前記鍵管理コンポーネントが、
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
前記複数のクライアントチェーン鍵反復回数が複数のメッセージチェーン鍵反復回数と等しいと判定することと、
前記複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を前記復号鍵として決定することと、
前記最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合、前記暗号化メッセージの復号に応答して前記複数のクライアントチェーン鍵のうち2つ以上のクライアントチェーン鍵を前進させることと、
を行うように動作することをさらに含む、請求項26または27に記載の装置。
【請求項29】
前記鍵管理コンポーネントが、
複数のクライアントチェーン鍵を取得することであって、前記複数のクライアントチェーン鍵は前記多次元のラチェット暗号化方式の複数の次元に対応し、前記複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
クライアント反復回数が前記メッセージ反復回数未満であることを判定することであって、前記クライアント反復回数は前記複数のクライアントチェーン鍵反復回数を合成したものに対応する、クライアント反復回数が前記メッセージ反復回数未満であることを判定することと、
前記クライアント反復回数と前記メッセージ反復回数との間の反復距離に基づいて前記複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成することと、
前記複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を前記復号鍵として決定することと、
を行うように動作することをさらに含み、
前記複数のクライアントチェーン鍵を前進させることは、任意選択で、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み、前記より次元の高いクライアントチェーン鍵を再生成することは、前記より次元の高いクライアントチェーン鍵の1つまたは複数の許容反復回数をスキップすることを含む、請求項26から28のいずれか一項に記載の装置。
【請求項30】
前記メッセージ反復回数は、前記暗号化メッセージを復号する際に少なくとも部分的に使用される前記メッセージの順序付けおよび順番情報を標示し、前記メッセージ反復回数は、任意選択で、前記暗号化メッセージの非暗号化ラッパー、特に非暗号化ヘッダ、の一コンポーネントであり、前記暗号化メッセージの秘密情報、プライベートな情報、またはその他の形で保護される情報が、前記暗号化メッセージの暗号化されたペイロード中に置かれ、前記暗号化メッセージおよび前記非暗号化ラッパーは、任意選択で、メッセージパッケージの一部としてメッセージングサーバを介して送られ、メッセージングコンポーネントが、前記暗号化メッセージの前記非暗号化ラッパーから前記メッセージ反復回数を抽出することにより前記メッセージ反復回数を判定するように動作可能である、請求項26から29のいずれか一項に記載の装置。
【請求項31】
実行されたとき、システム、特に装置に、請求項21から25の少なくとも1つに記載の方法の全てのステップを実施させる命令を備える、少なくとも1つのコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本願は、2017年7月14日出願の米国特許出願第15/649,929号、名称「Techniques for Key Ratcheting with Multiple Step Sizes」、代理人整理番号1360F0184、2017年2月17日出願の米国仮特許出願第62/460,128号、名称「Techniques for Key Ratcheting with Multiple Step Sizes」、代理人整理番号1360F0184Zに対する米国特許法第119条(e)の下における優先権の利益を主張し、両出願は全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
ユーザは、2人以上のユーザ間のテキストによる会話の中で互いとメッセージをやり取りすることにより、メッセージングシステム内で互いと対話することがある。ユーザは、メッセージングシステム内で自身に関連付けられたユーザアカウントを有することがあり、ユーザアカウントは、ユーザのオンライン識別を提供し、ユーザに向けられたメッセージの宛先を提供し、そして一般にはメッセージングシステムへのユーザのアクセスおよび使用を協調させる。ユーザは、モバイルデバイス(例えば携帯電話)、デスクトップコンピュータ、ウェブブラウザ、特化したメッセージングクライアント等を含む各種のエンドポイントから、メッセージングシステムにアクセスし得る。
【発明の概要】
【0003】
以下では、本明細書に記載されるいくつかの新規な実施形態についての基本的な理解を提供するために、簡略化された概要を提示する。この概要は、広範な概説ではなく、主要な/必須の要素を識別すること、またはそれらの範囲を明確にすることは意図されていない。いくつかの概念は、後で提示されるより詳細な説明への前置きとして、簡略化された形態で提示される。
【0004】
様々な実施形態は、概して、複数のステップサイズによる鍵ラチェットのための技法を対象とする。いくつかの実施形態は、多次元のラチェットのための複数のステップサイズによる鍵ラチェットのための技法を特に対象とする。1つの実施形態では、例えば、装置は、メッセージングコンポーネントであって、暗号化メッセージを受信し、暗号化メッセージは多次元のラチェット暗号化方式に従って暗号化されており、暗号化メッセージのメッセージ反復回数を判定し、復号鍵に基づいて暗号化メッセージを復号することによって復号後メッセージを生成するように動作する、メッセージングコンポーネントと、メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解し、複数のメッセージチェーン鍵反復回数に基づいて復号鍵を決定するように、プロセッサ回路上で動作する鍵管理コンポーネントと、を備え得る。他の実施形態が記載され、特許権を請求される。
【0005】
上記および関連する目的を達成するために、ある特定の例示的な態様が、以下の説明および添付の図面との関連で本明細書に記載される。これらの態様は、本明細書に開示される原理を実行することができる様々なやり方を示し、全ての態様およびその均等物が、特許請求される主題の範囲内にあることが意図される。他の利点および新規な特徴は、図面と併せて検討することにより以下の詳細な説明から明らかになろう。
【0006】
本発明による実施形態は、特に、方法、記憶媒体、装置、およびコンピュータプログラム製品を対象とする添付の特許請求の範囲において開示され、1つの請求項カテゴリ、例えば、方法において言及された特徴はいずれも、別の請求項カテゴリ、例えば、システムにおいても特許請求され得る。添付の特許請求の範囲における前述に対する従属または参照は、もっぱら形式的な理由から選択される。しかし、いずれかの先行請求項に対する意図的な参照(特に複数の従属)からもたらされるいかなる主題も、請求項およびその特徴のいずれかの組合せが開示されるように、同様に特許請求され得、添付の特許請求の範囲において選択される従属に関わらず、特許請求され得る。特許請求されることが可能な主題は、添付の特許請求の範囲において述べられる特徴の組合せばかりでなく、特許請求の範囲における特徴の他の任意の組合せも備え、特許請求の範囲において言及された各特徴は、特許請求の範囲における他の任意の特徴または他の特徴の組合せと組み合わされ得る。さらに、本明細書において説明または描写される実施形態および特徴はいずれも、単独の請求項において、および/または本明細書において説明もしくは描写される任意の実施形態もしくは特徴との、もしくは添付の特許請求の範囲の特徴のいずれかとの任意の組合せで、特許請求され得る。
【図面の簡単な説明】
【0007】
図1】暗号化メッセージシステムの一実施形態を示す図である。
図2】メッセージングシステムの一実施形態を示す図である。
図3】暗号化メッセージシステムによるメッセージの送出および復号の一実施形態を示す図である。
図4図1のシステムに関する論理フローの一実施形態を示す図である。
図5図1のシステムに関する中央集中システムの一実施形態を示す図である。
図6図1のシステムに関する分散システムの一実施形態を示す図である。
図7】コンピューティングアーキテクチャの一実施形態を示す図である。
図8】通信アーキテクチャの一実施形態を示す図である。
図9】無線デバイスアーキテクチャの一実施形態を示す図である。
【発明を実施するための形態】
【0008】
デバイス間で送られるメッセージは、デバイス間を移動する間、暗号化されることがある。メッセージは、暗号鍵に従って暗号化され、復号鍵に従って復号されることがあり、これらの鍵は同じ鍵であり得る。メッセージの暗号化と復号に使用される1つまたは複数の鍵は、正しい復号鍵に従った暗号化メッセージの復号を可能にするために、デバイス間で同期され得る。
【0009】
デバイスは鍵のラチェットを使用して、連続したメッセージの暗号化および復号に使用される1つまたは複数の鍵を反復的に前進させることができる。ラチェット機能が使用されることがあり、その場合は一連の鍵を生成することができ、それによりメッセージごとに異なる鍵を使用できるようにして、一連のメッセージを復号するために使用される一連の復号鍵のうち先行する復号鍵でメッセージを復号するために、攻撃者による鍵の復元を使用できないようにする。
【0010】
暗号鍵を前進させることは、演算的に高費用な一連の動作であり得る。少なくとも、可能な場合には多数のラチェット前進を回避することが有益となる程度には、演算的に高費用であり得る。そのため、メッセージの一続きのシーケンスを破棄すべき場合には、破棄されたメッセージに関連付けられた復号鍵を生成することを控え、代わりに前方にスキップして、破棄されるのではなく復号されるべき次のメッセージの復号鍵を生成することが有益と考えられる。そのようにすることにより、デバイスは、破棄された復号鍵の一部または全てにわたって前進せずに済み、時間の節減となり、またそれによりデバイスの応答性と、特にモバイルデバイスにおける電力を増大させ得る。
【0011】
多数の鍵を破棄することが有益であり得るシナリオは、着信する暗号化メッセージが頻繁に更新されるライブ情報を包含しており、このライブ情報の最も最近の反復のみが意味を持つある場合であり得る。例えば、あるグループメッセージスレッドへの参加者が互いに対してライブ位置情報を送ることがあり、このライブ位置情報は、各ユーザの現在の位置の正確な表示を可能にするために頻繁に更新される。ライブ位置機構は、ユーザの最も最近の位置を共有し、知ることに関するので、特定のユーザについての最も最近のライブ位置更新のみが意味を持つ。そのため、更新は、より最近の更新によって意味を持たなくなった場合には期限切れになることがあり、安全に破棄され得る。
【0012】
デバイスがある期間にわたってオフラインであった場合は、ライブ位置機構の結果、デバイスが多数の期限切れの更新を受信し得る。デバイスは、それらの期限切れの更新を破棄し、それら期限切れの更新のための復号鍵の少なくとも一部分の生成をスキップし、代わりに前方にスキップして最も最近の更新のための復号鍵をより効率的に生成することから利益を得る可能性がある。そのため、実施形態は、ユーザに対するメッセージングシステムの効率および応答性を改良し得る。
【0013】
次いで図面を参照するが、全ての図面を通じて同様の参照番号を使用して同様の要素を参照する。以下の記載では、その完全な理解を与えるため、説明を目的として、多数の具体的詳細が記載される。しかし、これら特定の詳細を省いても、新規な実施形態を実施できることは明らかであろう。他の事例では、周知の構造およびデバイスについては、その説明を容易とするために、ブロック図の形態で示している。その意図は、請求項に係る主題に矛盾しないあらゆる変更、均等物、および代替案を包括することである。
【0014】
本明細書において使用される「a」および「b」および「c」ならびに同様の指示子は、任意の正の整数を表す変数と意図されることに留意されたい。よって、例えば、ある実装形態がa=5と値を設定する場合、コンポーネント122-1~122-aと例示されるコンポーネント122の完全なセットは、コンポーネント122-1、122-2、122-3、122-4、および122-5を含み得る。実施形態はこれに関して制限されない。
【0015】
図1は、暗号化メッセージシステム100のブロック図を例示する。1つの実施形態では、暗号化メッセージシステム100は、1つまたは複数のコンポーネントを備えるソフトウェアアプリケーションを有する、コンピュータにより実施されるシステムからなり得る。図1に示す暗号化メッセージシステム100は、限られた数の要素をあるトポロジーで有するが、暗号化メッセージシステム100は、所与の実装形態に望まれるようにより多くのまたはより少ない要素を代替のトポロジーで含み得ることが認識できよう。
【0016】
メッセージングサーバ110は、メッセージングシステムの一部としてのメッセージングプラットフォームによって運用される、1つまたは複数のメッセージングサーバを備え得る。メッセージングサーバは、インターネットアクセス可能なサーバを備えることができ、ネットワーク120がメッセージングシステムの様々なデバイス同士を接続し、少なくとも部分的にインターネットを備える。メッセージングシステムは、メッセージングサーバ110を使用して様々なユーザクライアントデバイスに対するメッセージングを支援し得る。
【0017】
ユーザは、スマートフォンデバイス150を所有し、操作し得る。スマートフォンデバイス150は、iPhone(登録商標)デバイス、Android(登録商標)デバイス、Blackberry(登録商標)デバイス、またはスマートフォン形態に準拠する任意の他のコンピューティングデバイスからなり得る。スマートフォンデバイス150は、セルラー信号135を使用してセルシステム130を介してネットワーク120に接続することが可能なセルラーデバイスであり得る。いくつかの実施形態およびいくつかの場合には、スマートフォンデバイス150は、追加的または代替的にWi-Fiまたは他のネットワーキング技術を使用してネットワーク120に接続してもよい。スマートフォンデバイス150は、メッセージングサーバ110にアクセスするために、メッセージングクライアント、ウェブブラウザ、または他のローカルアプリケーションを実行し得る。
【0018】
同じユーザがタブレットデバイス160を所有し、操作し得る。タブレットデバイス160は、iPad(登録商標)デバイス、Android(登録商標) タブレットデバイス、Kindle Fire(登録商標)デバイス、またはタブレット形態に準拠する任意の他のモバイルコンピューティングデバイスからなり得る。タブレットデバイス160は、Wi-Fi信号145を使用してWi-Fiアクセスポイント140を介してネットワーク120に接続することが可能なWi-Fiデバイスであり得る。いくつかの実施形態およびいくつかの場合には、タブレットデバイス160は、追加的または代替的にセルラーまたは他のネットワーキング技術を使用してネットワーク120に接続してもよい。タブレットデバイス160は、メッセージングサーバ110にアクセスするために、メッセージングクライアント、ウェブブラウザ、または他のローカルアプリケーションを実行し得る。
【0019】
同じユーザがパーソナルコンピュータデバイス180を所有し、操作し得る。パーソナルコンピュータデバイス180は、Mac OS(登録商標)デバイス、Windows(登録商標)デバイス、Linux(登録商標)デバイス、または別のオペレーティングシステムを走らせる他のコンピュータデバイスからなり得る。パーソナルコンピュータデバイス180は、イーサネット接続を介してネットワーク120に接続することが可能なイーサネットデバイスであり得る。いくつかの実施形態およびいくつかの場合には、パーソナルコンピュータデバイス180は、追加的または代替的に、セルラー、Wi-Fi、または他のネットワーキング技術を使用してネットワーク120に接続してもよい。パーソナルコンピュータデバイス180は、メッセージングサーバ110にアクセスするために、メッセージングクライアント、ウェブブラウザ170、または他のローカルアプリケーションを実行し得る。
【0020】
メッセージングクライアントは、専用のメッセージングクライアントであり得る。専用のメッセージングクライアントは、メッセージングサーバ110を含むメッセージングプラットフォームを管理するメッセージング提供者に特定的に関連付けられ得る。専用のメッセージングクライアントは、メッセージングサーバ110を含むメッセージングプラットフォームを管理するメッセージング提供者を含む、複数の異なるメッセージング提供者と協働するように動作する、一般的なクライアントであり得る。
【0021】
メッセージングクライアントは、追加的な機能性を提供するアプリケーションのコンポーネントであり得る。例えば、ソーシャルネットワーキングサービスが、当該ソーシャルネットワーキングサービスにアクセスし、使用するためにモバイルデバイス上で使用するソーシャルネットワーキングアプリケーションを提供することがある。ソーシャルネットワーキングサービスは、メッセージングサーバ110によって提供され得るようなメッセージング機能性を含み得る。メッセージングサーバ110は、ソーシャルネットワーキングサービスのためのコンピューティングデバイスのコンポーネントの1つであってよく、コンピューティングデバイスがソーシャルネットワーキングサービスの追加的な機能性を提供することが認識されよう。同様に、ソーシャルネットワーキングアプリケーションが、メッセージング機能性と追加的なソーシャルネットワーキング機能性の両方を提供してもよい。
【0022】
場合によっては、メッセージングエンドポイントがユーザセッション間に状態を保持することがあり、場合によっては、メッセージングエンドポイントがユーザセッション間に状態を放棄することがある。メッセージングエンドポイントは、ローカルストアを使用して、メッセージ受信箱の現在の状態を保持し得る。このローカルストアは、1回のセッションと次のセッションとの間に状態が取得できるように、恒久的ストレージに保存されてよく、これには、例えば、ローカルアプリケーションが終了されるかもしくはその他の形でメモリから除去される、またはデバイスの電源がオフにされ、再度投入されるといった状況が含まれる。代替的に、メッセージングエンドポイントは、メモリキャッシュを使用してメッセージ受信箱の現在の状態を保持するものの、メッセージ受信箱の状態を恒久的ストレージに投入することは控えてもよい。
【0023】
メッセージ受信箱の状態を保持するメッセージングエンドポイントは、専用のメッセージングアプリケーション、またはソーシャルネットワーキングアプリケーションなどの別のローカルアプリケーションに組み込まれたメッセージングユーティリティを備え得る。メッセージ受信箱の状態を放棄するメッセージングエンドポイントは、ウェブブラウザ内に実施されるメッセージングアクセスを備え得る。1つの実施形態では、ウェブブラウザ、例えばパーソナルコンピュータデバイス180上で実行されるウェブブラウザ170が、メッセージングサーバと対話してユーザにメッセージング機能性を提示するHTML5コードを実行し得る。
【0024】
ユーザは、スマートフォンデバイス150、タブレットデバイス160、およびパーソナルコンピュータデバイス180を含む複数のデバイスからメッセージを送受信し得る。ユーザは、スマートフォンデバイス150の第1のメッセージングアプリケーション、タブレットデバイス160の第2のメッセージングアプリケーション、およびパーソナルコンピュータデバイス180のウェブブラウザ170を使用し得る。第1および第2のメッセージングアプリケーションは、両デバイスへの同じアプリケーションのインストールからなり得る。第1および第2のメッセージングアプリケーションは、共通のアプリケーションのスマートフォン固有バージョンおよびタブレット固有バージョンからなり得る。第1および第2のメッセージングアプリケーションは、別個のアプリケーションからなり得る。
【0025】
ユーザは、自身のデバイス間で自身のメッセージ受信箱を一致させておくことから利益を得る可能性がある。ユーザは、家の外にいる間はセルシステム130上で自身のスマートフォンデバイス150を使用して、セルシステム130を介してメッセージを送受信し得る。ユーザは、コーヒーショップまたはWi-Fiを供与する他の場所に立ち寄り、自身のタブレットデバイス160をWi-Fiアクセスポイント140に接続し得る。タブレットデバイス160は、メッセージ受信箱に関する自身の既存の既知の状態を取得し、タブレットデバイス160がネットワークにアクセスすることができた前回の機会以降に発生した更新を受信することができ、そのような更新には、スマートフォンデバイス150から送られたメッセージ、およびスマートフォンデバイス150を操作している間にユーザによって受信された可能性のあるメッセージが含まれる。ユーザは次いで家に帰り、パーソナルコンピュータデバイス180でウェブブラウザ170を使用して自身のメッセージ受信箱にアクセスし得る。ウェブブラウザ170は、メッセージ受信箱に関する既存の状態を維持していないか、またはその他の理由で既存の状態にアクセスできないため、メッセージングサーバ110からメッセージ受信箱の現在の状態のスナップショットを受信し得る。ウェブブラウザ170は、次いで、メッセージングサーバ110とユーザセッションを維持している限り、メッセージ受信箱の状態に対する新たな変更があれば、その増加分の更新を取得し、ウェブブラウザ170がユーザによって閉じられたときなど、セッションの最後に、メッセージ受信箱に関する自身の既知の状態を破棄し得る。制限なく、更新は、メールボックスへのメッセージの追加、メールボックスからのメッセージの削除、および開封確認に対応し得る。
【0026】
メッセージングシステムは、複数のメッセージを備えるものとしてメッセージング受信箱を定義することによって動作することができ、各メッセージは、2人以上の参加者間の通信の個々のトランザクションである。メールサーバは、メッセージング受信箱に関してメッセージインデックスを維持することによって動作し得る。メールサーバは、メッセージを受信して、そのメッセージをメールアーカイブに記憶することができ、メールアーカイブからメッセージインデックスへの参照を介してメッセージが取得され得る。メールクライアントは、メールサーバに接続し、前回の更新以降に自身のメールアーカイブに追加されたメッセージを取得し得る。メールクライアントは、どのようなメッセージがメールアーカイブに記憶されているかを指示するメールアーカイブからのメールインデックスを受信し得る。メールクライアントは、どのメッセージを受信し損ねているかを判定するために、メールアーカイブを自身の現在の受信箱と比較することができ、次いでそれらのメッセージをメールアーカイブに要求する。メールクライアントは自身の受信箱に変更を加えることがあり、その結果、メール受信箱命令がメールアーカイブに送信されて、メールアーカイブにおいてメールクライアントのメール受信箱の表現に行うべき修正をメールアーカイブに命令する。
【0027】
メッセージングシステムによって仲介されるメッセージング対話は、メッセージスレッドとして知られる共有空間へと編成され得る。メッセージスレッドは、特定のグループのユーザ間で共有されるメッセージを一緒に収集し得る。ユーザのペア間で個々に送られるメッセージは、当該ユーザのペア間のプライベートなメッセージングに一意に関連付けられた一対一のメッセージスレッドに収集され得る。3人以上のユーザからなるグループ間で送られるメッセージは、ユーザのメンバーシップによって一意に定義されるのではなく、代わりに、いくつかの実施形態では、グループスレッドを一意に識別する識別子によって識別され得る。グループスレッド内でのメンバーシップは、いくつかの実施形態では、時間と共に変化して、メンバーを追加する、および/または失い得る。
【0028】
メッセージング対話は、クライアントデバイス間の終端間暗号化通信を使用し得る。送出側のクライアントデバイスは、受信側のデバイスのみが(例えば公開鍵暗号法を使用することにより)発信メッセージを復号することができるか、または送出側デバイスと受信側デバイスのみが(例えば共有鍵暗号法を使用することにより)発信メッセージを復号することができるか、の一方を確立するセキュリティ技法を使用して、発信メッセージを暗号化し得る。これらの実施形態では、メッセージングシステムのサーバは、クライアント間で送られるメッセージを復号できないようにされ得る。しかし、他の実施形態では、クライアントデバイスおよびサーバデバイス間で暗号化通信が使用され得る一方で、メッセージングサーバデバイスは、ユーザメッセージの内容を検査することを可能にされ得る。そのような検査は、メッセージングシステムのユーザにサービスを提供するために使用され得る。いくつかの実施形態では、ユーザは、特定のメッセージスレッドが終端間暗号化を使用する(およびそれにより、メッセージングサーバがメッセージの内容を検査できないようにされるという追加的なプライバシーを受け取る)か、または使用しない(およびそれにより、メッセージングシステムがプログラム的にメッセージを検査し、関連するサービスをユーザに供与できることの利益を受ける)かを選択することを可能にされ得る。
【0029】
メッセージングシステムは、ユーザ間の対話から生成された知識を使用し得る。メッセージングシステムは、ソーシャルネットワーキングシステムのコンポーネントからなることができ、ソーシャルネットワーキングシステムのより広範な対話から生成された知識を使用し得る。そのため、メッセージングシステムと、さらに大きいソーシャルネットワーキングシステムとのユーザのプライバシーを保護するために、メッセージングシステムは、許可サーバ(または他の適切なコンポーネント)を含むことができ、許可サーバは、ユーザが、例えば適当なプライバシー設定を設定することによって、自身のアクションをメッセージングシステムによってログに記録させる、または他のシステム(例えばサードパーティシステム)と共有させることをオプトイン(opt in)またはオプトアウト(opt out)できるようにする。ユーザのプライバシー設定は、ユーザに関連付けられたどの情報がログに記録され得るか、ユーザに関連付けられた情報がどのようにログに記録され得るか、ユーザに関連付けられた情報がいつログに記録され得るか、ユーザに関連付けられた情報を誰がログに記録し得るか、ユーザに関連付けられた情報が誰と共有され得るか、およびユーザに関連付けられた情報がどのような目的でログに記録または共有され得るか、を決定し得る。許可サーバまたは他の許可コンポーネントは、ブロッキング、データのハッシュ化、匿名化、または適宜他の適切な技法を通じて、ソーシャルネットワーキングシステムのメッセージングシステムおよび他の要素のユーザの1つまたは複数のプライバシー設定を守らせるために使用され得る。
【0030】
図2は、メッセージングシステム200の様々な機能を実施する複数のサーバの一実施形態を例示する。メッセージングシステム200の様々な実施形態において、作業および機能の種々の分散が使用され得ることが認識されよう。メッセージングシステム200は、暗号化メッセージシステム100を備えることができ、暗号化メッセージシステム100の動作は、メッセージングシステム200の全体的な動作の一部分を構成する。メッセージングシステム200の例示される実施形態は特に、図1を参照して説明したメッセージングサーバ110の一部分に対応することができ、メッセージングサーバ110は、メッセージングシステム200のユーザにメッセージングサービスを提供する1つまたは複数のサーバデバイスを備える。
【0031】
メッセージングシステム200は、ドメイン名フロントエンド210を備え得る。ドメイン名フロントエンド210には、ドメイン名システム(DNS)内でメッセージングシステム200に関連付けられた1つまたは複数のドメイン名が割り当てられ得る。ドメイン名フロントエンド210は、着信する接続を受信し、その接続を、様々なメッセージングサービスを提供するサーバに分配し得る。
【0032】
メッセージングシステム200は、1つまたは複数のチャットサーバ215を備え得る。チャットサーバ215は、チャットメッセージなどのユーザ間のメッセージング更新を受信および送信するためのフロントエンドサーバを備え得る。着信する接続は、作業負荷分散に基づいてドメイン名フロントエンド210によってチャットサーバ215に割り当てられ得る。
【0033】
メッセージングシステム200は、バックエンドサーバ230を備え得る。バックエンドサーバ230は、フロントエンドチャットサーバ215のチャット動作を支援する特化されたタスクを行い得る。複数の異なるタイプのバックエンドサーバ230が使用され得る。異なるバックエンドサーバ230へのタスクのタイプの割り当ては、異なる実施形態ごとに変化し得ることが認識されよう。いくつかの実施形態では、専用のサーバによって提供されるバックエンドサービスのいくつかが、単一のサーバ、または、本明細書に記載される実施形態において異なるサーバ間に分割される複数のタスクを各々が行うサーバのセットとして、組み合わせられ得る。同様に、いくつかの実施形態では、本明細書に記載される専用バックエンドサーバのうちいくつかのタスクが、異なるサーバグループに属する異なるサーバ間に分割され得る。
【0034】
メッセージングシステム200は、1つまたは複数のオフライン記憶サーバ231を備え得る。1つまたは複数のオフライン記憶サーバ231は、現在オフラインのメッセージングエンドポイントに関するメッセージング内容を、それらのメッセージングエンドポイントが再接続するときのために、保留して記憶しておくことができる。
【0035】
メッセージングシステム200は、1つまたは複数のセッションサーバ232を備え得る。1つまたは複数のセッションサーバ232は、接続されているメッセージングエンドポイントのセッション状態を維持し得る。
【0036】
メッセージングシステム200は、1つまたは複数のプレゼンスサーバ233を備え得る。1つまたは複数のプレゼンスサーバ233は、メッセージングシステム200のプレゼンス情報を維持し得る。プレゼンス情報は、ユーザ固有の情報に対応することができ、所与のユーザがオンラインのメッセージングエンドポイントを有しているかおよびチャットが利用可能であるか否か、オンラインのメッセージングエンドポイントを有しているが現在はそこから離れているかどうか、オンラインのメッセージングエンドポイントを有していないかどうか、ならびに任意の他のプレゼンス状態を指示する。
【0037】
メッセージングシステム200は、1つまたは複数のプッシュ記憶サーバ234を備え得る。1つまたは複数のプッシュ記憶サーバ234は、プッシュ要求をキャッシュし、そのプッシュ要求をメッセージングエンドポイントに送信し得る。プッシュ要求は、メッセージングエンドポイントを起動させるため、メッセージング更新が利用可能な状態であることをメッセージングエンドポイントに通知するため、およびメッセージングエンドポイントとの間でサーバ側から開始される対話をその他の形で行うために使用され得る。
【0038】
メッセージングシステム200は、1つまたは複数のチャット活動監視サーバ235を備え得る。1つまたは複数のチャット活動監視サーバ235は、ユーザのチャットを監視して、メッセージングシステム200のユーザによる不正な挙動または推奨されない挙動を判定し得る。1つまたは複数のチャット活動監視サーバ235は、スパムロギングサーバ239およびブロックリストサーバ236と協働し、1つまたは複数のチャット活動監視サーバ235は、スパムまたは他の推奨されない挙動を識別し、スパムロギングサーバ239にスパム情報を提供し、適当な場合にはブロックリストサーバ236にブロッキング情報を提供する。
【0039】
メッセージングシステム200は、1つまたは複数のブロックリストサーバ236を備え得る。1つまたは複数のブロックリストサーバ236は、ユーザ固有のブロックリストを維持することができ、ユーザ固有の着信ブロックリストは、ユーザごとに、そのユーザにメッセージを送信することを禁じられている1人または複数の他のユーザを指示する。代替的または追加的に、1つまたは複数のブロックリストサーバ236は、ユーザごとに、そのユーザがメッセージを送信することを禁じられている1人または複数の他のユーザを指示する、ユーザ固有の発信ブロックリストを維持してもよい。着信ブロックリストおよび発信ブロックリストは、組み合わせて例えばデータベースに記憶されてよく、着信ブロックリストと発信ブロックリストは、ブロック情報の同じリポジトリの異なる見方に相当することが認識されよう。
【0040】
メッセージングシステム200は、1つまたは複数の最後に見られた情報サーバ237を備え得る。1つまたは複数の最後に見られた情報サーバ237は、最後に見られた位置、ステータス、メッセージングエンドポイント、およびメッセージングシステム200へのユーザの最後に見られた接続のその他の要素を指示する情報を受信、記憶、維持し得る。
【0041】
メッセージングシステム200は、1つまたは複数のプロフィール写真サーバ238を備え得る。1つまたは複数のプロフィール写真サーバ238は、メッセージングシステム200の複数のユーザのプロフィール写真を記憶し、取得可能な状態にし得る。
【0042】
メッセージングシステム200は、1つまたは複数のスパムロギングサーバ239を備え得る。1つまたは複数のスパムロギングサーバ239は、既知のスパムおよびスパムの疑いのあるもの(例えば不要メッセージ、特に販売促進用の性質のもの)をログに記録し得る。1つまたは複数のスパムロギングサーバ239は、メッセージを分析してメッセージがスパムであるかどうかを判定し、いくつかの実施形態では、疑われるスパム送信者(スパムメッセージの送出元ユーザ)に対する処罰措置を行うように動作し得る。
【0043】
メッセージングシステム200は、1つまたは複数の統計サーバ240を備え得る。1つまたは複数の統計サーバは、メッセージングシステム200の動作とメッセージングシステム200のユーザの挙動とに関係する統計情報を集計し、記憶し得る。
【0044】
メッセージングシステム200は、1つまたは複数の同期サーバ241を備え得る。1つまたは複数の同期サーバ241は、メッセージングシステム240を、モバイル電話上のアドレス帳などの、メッセージングエンドポイントからの連絡先情報と同期させて、メッセージングシステム200内のユーザに関する連絡先を判定し得る。
【0045】
メッセージングシステム200は、1つまたは複数のウェブサーバ242を備え得る。1つまたは複数のウェブサーバ242は、ウェブブラウザとのハイパーテキスト転送プロトコル(HTTP)およびハイパーテキスト転送プロトコルセキュア(HTTPS)接続に関与し得る。1つまたは複数のウェブサーバ242は、いくつかの実施形態では、暗号化メッセージシステム100の動作の一部としてリモートのウェブサーバ350をホストし得る。
【0046】
メッセージングシステム200は、1つまたは複数の鍵サーバ243を備え得る。1つまたは複数の鍵サーバ243は、公開鍵/秘密鍵による暗号化通信のための公開鍵をホストし得る。
【0047】
メッセージングシステム200は、1つまたは複数のグループサーバ244を備え得る。1つまたは複数のグループサーバ244は、グループのリストを維持し、グループにユーザを追加し、グループからユーザを除去し、グループチャットメッセージの受信、キャッシュ、および転送を行い得る。
【0048】
メッセージングシステム200は、1つまたは複数のマルチメディアデータベース(MMD)サーバ245を備え得る。MMDサーバ245は、メッセージングシステム200に知られているメディアオブジェクトのデータベースを記憶することができ、このデータベースは分散データベースであり得る。いくつかの実施形態では、現在記憶されているかまたはその他の形でメッセージングシステム200内を移動中であるメディアオブジェクトのみが、MMDサーバ245によって追跡され得る。他の実施形態では、MMDサーバ245は、人気度を追跡するため、またはその他のデータ採取の目的などのために、もう移動中ではないメディアオブジェクトの記録を維持し得る。
【0049】
MMDサーバ245は、メッセージングシステム200によって記憶されるときのメディアオブジェクトの記憶位置を、マルチメディアサーバ246などに決定し得る。MMDサーバ245は、複数のマルチメディアサーバ236のうちどれが特定のメディアオブジェクトを記憶しているかなど、メディアオブジェクトがメッセージングシステム200によって送信されるとき、当該メディアオブジェクトの既存の記憶位置を判定し得る。MMDサーバ245は、メディアオブジェクトを要求し取得するためにメッセージングクライアントが使用する、ユニフォームリソースロケータ(URL)を生成し得る。MMDサーバ245は、いつメディアオブジェクトが破損したかまたはその他の形で失われ、再獲得されるべきかを追跡し得る。
【0050】
メッセージングシステム200は、1つまたは複数のマルチメディアサーバ246を備え得る。1つまたは複数のマルチメディアサーバは、メッセージングエンドポイント間を移動中のマルチメディア(例えば画像、映像、オーディオ)、オフラインのエンドポイントのためにキャッシュされているマルチメディアを記憶し、マルチメディアのトランスコーディングを行い得る。
【0051】
メッセージングシステム200は、1つまたは複数の支払いサーバ247を備え得る。1つまたは複数の支払いサーバ247は、ユーザからの支払いを処理し得る。1つまたは複数の支払いサーバ247は、支払いの実施のために外部のサードパーティサーバに接続し得る。
【0052】
メッセージングシステム200は、1つまたは複数の登録サーバ248を備え得る。1つまたは複数の登録サーバ248は、メッセージングシステム200の新しいユーザを登録し得る。
【0053】
メッセージングシステム200は、1つまたは複数の音声中継サーバ249を備え得る。1つまたは複数の音声中継サーバ249は、VoIP呼の実施のためにメッセージングエンドポイント間でインターネットを通じた音声プロトコル(VoIP)の音声通信を中継し得る。
【0054】
図3は、暗号化メッセージシステム100によるメッセージの送出および復号の一実施形態を例示する。
【0055】
送出側クライアントデバイス310および受信側クライアントデバイス360は、メッセージングシステムを使用して通信し、暗号化メッセージシステム100を実施する複数のクライアントデバイスのうちの2つであり得る。送出側クライアントデバイス310および受信側クライアントデバイス360となるデバイスの割り当ては、図3に記載される具体的な対話に対応してよく、クライアントデバイス310、360間での能力の特定の分割を反映しているとは限らない。メッセージングシステムによって支援されるあらゆるクライアントデバイス上のあらゆるメッセージングクライアント320は、メッセージおよびメディアアイテムの送出および受信両方を支援し得る。クライアントデバイス310、360は各々、メッセージングクライアント320を実行する。各デバイスのメッセージングクライアント320は複数のコンポーネントを備える。複数のコンポーネントは、ソフトウェアコンポーネントを備え得る。メッセージングクライアント320のコンポーネントは、ここに記載される以外のコンポーネントを含んでよく、メッセージングクライアント320の動作は、異なる実施形態においては異なる構成でコンポーネント間に分割され得る。
【0056】
メッセージングクライアント320は、メッセージングコンポーネント340を備え得る。メッセージングコンポーネント340は、一般に、メッセージングクライアント320とメッセージングサーバ110との間の対話を行うように成され得る。メッセージングコンポーネント340は、メッセージングシステムのメッセージングサーバ110にネットワーク通信を送出し、メッセージングサーバ110からネットワーク通信を受信し得る。メッセージングコンポーネント340は、暗号化メッセージ350などのメッセージを、メッセージスレッドの状態に対する更新を備えたメッセージパッケージの交換を介して送受信し得る。
【0057】
メッセージングクライアント320は、ユーザインターフェースコンポーネント330を備え得る。ユーザインターフェースコンポーネント330は、一般に、クライアントデバイスのユーザに情報を提示し、クライアントデバイスのユーザからユーザコマンドを受信するように成され得る。ユーザインターフェースコンポーネント330は、視覚的情報を表示し、オーディオ情報を出力し、またその他の形でユーザに情報を提示し得る。ユーザインターフェースコンポーネント330は、タッチコマンド、テキストコマンド、音声コマンド、およびメッセージングクライアント320を操作するための任意の他の種のコマンドを受信し得る。
【0058】
メッセージングクライアント320は、鍵管理コンポーネント360を備え得る。鍵管理コンポーネント360は、暗号化メッセージシステム100の一部として送られるメッセージの暗号化および/または復号に使用される鍵を維持し得る。鍵管理コンポーネント360は、メッセージの暗号化および復号のためにメッセージングコンポーネント340に暗号鍵および復号鍵を提供し得る。
【0059】
あるメッセージスレッドまたはメッセージシステム機構に関連付けられているものなどの特定のシーケンスのメッセージが、鍵のラチェットに基づいて生成される特定の鍵シーケンスに従った暗号化および復号のために関連付けられ得る。例として、特定のユーザからのライブ位置更新が、ラチェット後の鍵の特定のシーケンスに関連付けられ得る。
【0060】
送出側クライアントデバイス310のメッセージングコンポーネント340は、受信側クライアントデバイス360に送る非暗号化メッセージ335を受け取る。場合によっては、非暗号化メッセージ335は、非暗号化メッセージ335がテキストメッセージまたはユーザによって生成された他のメッセージである場合などには、ユーザインターフェースコンポーネント330から受け取られることもある。他の場合、非暗号化メッセージ335は、送出側クライアントデバイス310の位置情報を判定して提供するように動作するジオロケーションコンポーネントから受け取られるライブ位置更新など、異なるコンポーネントから受け取られ得る。
【0061】
送出側クライアントデバイスのメッセージングコンポーネント340は、暗号鍵365に従って非暗号化メッセージ335を暗号化して、暗号化メッセージ350を生成する。暗号鍵365は、多次元のラチェット暗号化方式に従って鍵管理コンポーネント360によって決定される。送出側クライアントデバイス310が多次元のラチェット暗号化方式を使用することで、受信側クライアントデバイス360は、送出側クライアントデバイス310によって送られた1つまたは複数のメッセージを復号するために使用されるはずの特定の鍵の生成をスキップすることを可能にされる。
【0062】
送出側クライアントデバイス310のメッセージングコンポーネント340は、受信側クライアントデバイス360に暗号化メッセージ350を送出する。いくつかの実施形態では、メッセージングコンポーネント340は、メッセージングシステムのメッセージングサーバ110を介して暗号化メッセージ350を送出し得る。他の実施形態では、メッセージングコンポーネント340は、ピアツーピア通信を使用して暗号化メッセージ350を送出し得る。受信側クライアントデバイス360のメッセージングコンポーネント340は、それにより暗号化メッセージ350を受信し、暗号化メッセージ350は多次元のラチェット暗号化方式に従って暗号化されている。メッセージングサーバ110が使用される場合、受信側クライアントデバイス360のメッセージングコンポーネント340は、メッセージングサーバデバイスから暗号化メッセージを受信する。
【0063】
メッセージングコンポーネント340は、暗号化メッセージ350のメッセージ反復回数を判定する。メッセージ反復回数は、暗号化メッセージ350を復号する際に少なくとも部分的に使用されるメッセージの順序付けおよび順番情報を標示する。メッセージ反復回数は、暗号化メッセージ350の、非暗号化ヘッダの一部のような非暗号化ラッパーの一コンポーネントであってよく、暗号化メッセージ350の秘密情報、プライベートな情報、またはその他の形で保護される情報は、暗号化メッセージ350の暗号化されたペイロード中に置かれる。暗号化メッセージ350および非暗号化ラッパーは、メッセージパッケージの一部としてメッセージングサーバ110を介して送られ得る。メッセージングコンポーネント340は、暗号化メッセージ350の非暗号化ラッパーからメッセージ反復回数を抽出することにより、メッセージ反復回数を判定し得る。
【0064】
メッセージングコンポーネント340は、暗号化メッセージ350の暗号化されたペイロードを復号する際に使用するなど、暗号化メッセージ350を復号する際に使用する復号鍵380を決定するのに使用するために、メッセージ反復回数を鍵管理コンポーネント370に提供する。メッセージングコンポーネント340は、暗号化メッセージ350を復号する際に使用するクライアントチェーン鍵の特定のセットを識別する情報などの、追加的な情報を提供し得る。鍵管理コンポーネント370は、復号鍵380をメッセージングコンポーネント340に提供する。復号鍵380は、対称暗号化が使用される場合には暗号鍵365と同じであることもあり、または非対称暗号化が使用される場合には別個の鍵であることもある。メッセージングコンポーネント340は、復号鍵380に基づいて暗号化メッセージ350を復号することにより、復号後メッセージ355を生成する。復号後メッセージ355は、送出側クライアントデバイス310上での非暗号化メッセージ335に対応する。メッセージングコンポーネント340は、復号後メッセージ355をユーザインターフェースコンポーネント330に渡す。ユーザインターフェースコンポーネント330は、次いで、復号後メッセージ355を受信側クライアントデバイス360上に表示し得る。
【0065】
送出側クライアントデバイス310の鍵管理コンポーネント360は、ラチェット機能を使用してメッセージを送出するたびに鍵を変更する。また、鍵管理コンポーネント360は、対応するメッセージ反復回数を増分して、鍵を前進させるためにラチェットが適用された回数を与える。受信者は次いでこのメッセージ反復回数を使用して自身の鍵のコピーを該当する回数までラチェットすることにより、暗号化メッセージ350を復号する。
【0066】
多次元のラチェット暗号化方式では、複数のメッセージチェーン鍵が鍵管理コンポーネント360によって維持される。この複数のメッセージチェーン鍵は、送出側クライアントデバイス310と受信側クライアントデバイス360との間の鍵交換のときグループとして初期化される。多次元のラチェット暗号化方式を使用すると使用中の鍵の数が増すため、この方式を使用すると、クライアントデバイス310、360間で鍵を設定する際のネットワークおよび記憶コストが増大し、これは、複数の鍵を先へと前進させる計算コストを低減することとのトレードオフになる。
【0067】
非暗号化メッセージ335を暗号鍵365に従って暗号化して暗号化メッセージ350を生成した後、複数のチェーン鍵は、1ステップだけ先へとラチェットされる。各チェーン鍵は、別個のラチェット機能を使用する。複数のラチェット機能は各々、複数の入力を取ることが可能な一般的な暗号化機能のインスタンスであってよく、多次元のラチェット暗号化方式の次元ごとに入力の1つに異なる値が割り当てられ、それにより、各チェーン鍵に使用されるラチェット機能同士を区別し、複数のチェーン鍵の各々に関連付けられた複数のラチェット機能を生成する。
【0068】
最も次元の高いチェーン鍵を調べて、当該チェーン鍵を前進させるべきか、それとも再生成すべきかを判定する。各チェーン鍵は、そのチェーン鍵が生成されて以来何回ラチェットされたかを指示する反復回数に関連付けられる。この反復回数が最大チェーン鍵反復値に達すると、チェーン鍵は、次に次元の低いチェーン鍵に基づいて再生成され、次に次元の低いチェーン鍵自体も次いでラチェットされ、反復回数がリセットされる。反復回数がまだ最大チェーン鍵反復値に達していない場合は、最も次元の高いラチェット機能に従ってチェーン鍵が1ステップ前進される。この技法は、任意の次元のチェーン鍵に使用され、許される場合には前進させ、最大反復値に達したときにはより次元の低いチェーン鍵から再生成する。最も次元の低いチェーン鍵が最大反復値に達すると、チェーン鍵の全く新しいセットが生成され、デバイス310、360間で共有される。
【0069】
どのチェーン鍵を使用すべきかを判定するために、鍵管理コンポーネント370は、メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解する。鍵管理コンポーネント370は、必要な場合には自身の現在のクライアントチェーン鍵を先へとラチェットすることにより、複数のメッセージチェーン鍵反復回数に基づいて復号鍵380を決定する。
【0070】
復号鍵380は、複数のクライアントチェーン鍵に基づく。複数のクライアントチェーン鍵は、多次元のラチェット暗号化方式の複数の次元に対応する。この複数の次元の使用により、複数のクライアントチェーン鍵の可変ステップの前進を可能にする。複数のクライアントチェーン鍵の可変ステップの前進は、1つまたは複数の暗号化メッセージを破棄することに相当し、これは、スキップされたクライアントチェーン鍵は、それらが関連付けられた暗号化メッセージが破棄される場合には有用でないためである。
【0071】
鍵管理コンポーネント370は、複数のクライアントチェーン鍵を取得し、この複数のクライアントチェーン鍵は、多次元のラチェット暗号化方式の複数の次元に対応する。また、複数のクライアントチェーン鍵は、より次元の低いチェーン鍵に基づいて各チェーン鍵が生成されて以来何回ラチェットされたかを指示する、複数のクライアントチェーン鍵反復回数にも対応する。
【0072】
鍵管理コンポーネント370が、複数のクライアントチェーン鍵反復回数が複数のメッセージチェーン鍵反復回数と等しいと判定した場合(これは受信した暗号化メッセージ350のチェーン鍵の前進が予想通りであり、列内での順番が次であることを意味する)には、取得されたクライアントチェーン鍵は、復号鍵380を生成するためにラチェットされる必要はない。代わりに、鍵管理コンポーネント370は、複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を、復号鍵380として決定する。
【0073】
鍵管理コンポーネント370は、暗号化メッセージ350の復号に応答してチェーン鍵反復回数を1ステップ前進させる。鍵管理コンポーネント370は次いで、最大反復値が許す場合には最も次元の高いクライアントチェーン鍵を前進させ、当該チェーン鍵の回数が最大反復値に達しているときにはチェーン鍵を再生成する。鍵管理コンポーネント370は、最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値未満である場合には、暗号化メッセージ350の復号に応答して最も次元の高いクライアントチェーン鍵を1ステップだけ前進させる。
【0074】
鍵管理コンポーネント370は、最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合には、暗号化メッセージ350の復号に応答して複数のクライアントチェーン鍵のうち2つ以上のクライアントチェーン鍵を前進させる。代わりとなる最も次元の高いクライアントチェーン鍵は、最も次元の高いラチェット機能への入力として次に最も低いチェーン鍵を使用することによるなど、次に最も低いチェーン鍵に基づいて生成される。次いで、1ステップ前進させるか、またはより次元の低いチェーン鍵によって再帰的に生成されるかのどちらかによって、次に最も低いチェーン鍵がラチェットされ、この再帰は、より次元の低いチェーン鍵のチェーン鍵反復回数が最大チェーン鍵反復値に達した場合には、さらなるより次元の低いチェーン鍵にわたって継続し得る。そのため、再帰は、最も低い次元以外のチェーン鍵が全て再生成された場合、最も次元の低いチェーン鍵まで継続し得る。
【0075】
鍵管理コンポーネント370は、メッセージ反復回数に基づいて、1つまたは複数のメッセージを破棄すべきことを判定し得る。メッセージングコンポーネント340は、期限切れであることに基づいて1つまたは複数のメッセージを破棄すべきことを判定し、スキップしたメッセージの後の最初の復号すべきメッセージのメッセージ反復回数を提供し得る。そして、鍵管理コンポーネント370は、スキップしたメッセージの少なくとも一部について、復号鍵の生成をスキップし得る。
【0076】
鍵管理コンポーネント370は、クライアント反復回数が、メッセージ反復回数未満であることを判定し得る。クライアント反復回数は、複数のクライアントチェーン鍵反復回数を合成したものに対応し、複数のクライアントチェーン鍵反復回数は、したがって、クライアント反復回数を分解したものに対応する。鍵管理コンポーネント370は次いで、クライアント反復回数とメッセージ反復回数との間の反復距離に基づいて複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成する。
【0077】
鍵管理コンポーネント370は、クライアントチェーン鍵を該当するメッセージチェーン鍵反復回数まで先へとラチェットする過程で、当該クライアントチェーン鍵がより次元の低いクライアントチェーン鍵から再生成されることになるかどうかを判定する。再生成されることになる場合、当該クライアントチェーン鍵は実際にはその最大反復値まで先へとラチェットされる必要はなく、代わりに、最大反復値まで先へとラチェットすることを控えながら再生成することができる。各クライアントチェーン鍵は、最も次元が低いものから最も次元が高いものへと検討され、当該クライアントチェーン鍵に関連付けられたクライアントチェーン鍵反復回数を受信されたメッセージチェーン鍵反復回数まで増すために必要な回数だけ先へとラチェットされて、ラチェット後のクライアントチェーン鍵が作成される。より次元の高いクライアントチェーン鍵が先へとラチェットされるのは、したがって、クライアント反復回数をメッセージ反復回数まで前進させる際に、より次元の低いクライアントチェーン鍵が任意の程度だけ先へとラチェットされた後のみである。そのため、複数のクライアントチェーン鍵を前進させることは、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み得、より次元の高いクライアントチェーン鍵の再生成は、当該より次元の高いクライアントチェーン鍵の1つまたは複数の許容反復回数をスキップする。鍵管理コンポーネント370は、次いで、複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を復号鍵として決定する。
【0078】
本明細書には、開示されるアーキテクチャの新規な態様を行うための例示的方法論を表すフローチャートのセットが含まれる。説明を単純にするために、例えばフローチャートまたはフロー図の形態で本明細書に示す1つまたは複数の方法論は、一連の行為として図示され、記載されるが、一部の行為は、それに従い、本明細書に図示し、記載するものとは異なる順番で、および/または他の行為と同時に発生してもよいため、方法論は行為の順番によって制限されるものではないことは理解され、認識されるべきである。例えば、当業者は、方法論が、代替的に、状態図にあるように、一連の相関した状態またはイベントとして表すこともできることを理解し、認識するであろう。さらに、方法論に例示される全ての行為が新規の実装形態のために必要であるとは限らない。
【0079】
図4は、論理フロー400の1つの実施形態を例示する。論理フロー400は、本明細書に記載される1つまたは複数の実施形態によって実行される動作の一部または全てを表し得る。
【0080】
図4に示す例示の実施形態では、論理フロー400は、ブロック402で、暗号化メッセージを受信することができ、暗号化メッセージは、多次元のラチェット暗号化方式に従って暗号化されている。
【0081】
論理フロー400は、ブロック404で、暗号化メッセージのメッセージ反復回数を判定し得る。
【0082】
論理フロー400は、ブロック406で、メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解し得る。
【0083】
論理フロー400は、ブロック408で、この複数のメッセージチェーン鍵反復回数に基づいて復号鍵を決定し得る。
【0084】
論理フロー400は、ブロック410で、復号鍵に基づいて暗号化メッセージを復号することによって復号後メッセージを生成し得る。
【0085】
実施形態はこの例に制限されない。
【0086】
図5は、中央集中システム500のブロック図を例示する。中央集中システム500は、暗号化メッセージシステム100に関する構造および/または動作の一部または全てを、単一の中央集中サーバデバイス520内に完全に実施するなど、単一のコンピューティングエンティティ内に実施し得る。
【0087】
中央集中サーバデバイス520は、暗号化メッセージシステム100に関して情報を受信、処理、および送出することが可能な任意の電子デバイスからなり得る。電子デバイスの例には、制限ではないが、ウルトラモバイルデバイス、モバイルデバイス、携帯情報端末(PDA)、モバイルコンピューティングデバイス、スマートフォン、電話機、デジタル電話機、セルラー電話機、電子書籍リーダ、ハンドセット、一方向ページャ、双方向ページャ、メッセージングデバイス、コンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、ラップトップコンピュータ、ノート型コンピュータ、ネットブックコンピュータ、手持ち型コンピュータ、タブレットコンピュータ、サーバ、サーバアレイもしくはサーバファーム、ウェブサーバ、ネットワークサーバ、インターネットサーバ、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサを利用したシステム、消費者家電、プログラム可能な消費者家電、ゲームデバイス、テレビ、デジタルテレビ、セットトップボックス、ワイヤレスアクセスポイント、基地局、加入者局、モバイル加入者センター、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、機械、またはそれらの組合せが含まれ得る。実施形態はこれに関して制限されない。
【0088】
中央集中サーバデバイス520は、処理コンポーネント530を使用して、暗号化メッセージシステム100に関する処理動作またはロジックを実行し得る。処理コンポーネント530は、様々なハードウェア要素、ソフトウェア要素、または両者の組合せを備え得る。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ回路、回路素子(例えばトランジスタ、抵抗器、コンデンサ、インダクタ等)、集積回路、特定用途集積回路(ASIC)、プログラム可能論理デバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含み得る。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインターフェース、アプリケーションプログラムインターフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、記号、またはそれらの任意の組合せを含み得る。実施形態がハードウェア要素を用いて実施されるか、および/またはソフトウェア要素を用いて実施されるかの決定は、求められる計算速度、電力レベル、熱耐性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度、および他の設計または性能の制約など、所与の実装形態に要求される任意の数の要因に応じて変化し得る。
【0089】
中央集中サーバデバイス520は、通信コンポーネント540を用いて、暗号化メッセージシステム100に関する通信動作またはロジックを実行し得る。通信コンポーネント540は、パケット交換ネットワーク(例えばインターネットなどの公共ネットワーク、社内イントラネット等のプライベートネットワーク等)、回路交換網(例えば公衆交換電話網)、またはパケット交換ネットワークと回路交換網の(適切なゲートウェイおよびトランスレータを用いた)との組合せ等と共に使用するのに適した技法等の、任意のよく知られた通信技法およびプロトコルを実施し得る。通信コンポーネント540は、1つまたは複数の通信インターフェース、ネットワークインターフェース、ネットワークインターフェースカード(NIC)、無線通信装置、ワイヤレス送信機/受信機(トランシーバ)、有線および/または無線通信媒体、物理的コネクタ等の様々なタイプの標準的な通信要素を含み得る。限定ではなく、例として、通信媒体512は有線通信媒体および無線通信媒体を含む。有線通信媒体の例は、配線、ケーブル、金属導線、プリント回路基板(PCB)、バックプレーン、スイッチファブリック、半導体材料、ツイストペア線、同軸ケーブル、光ファイバ、伝搬信号等を含み得る。無線通信媒体の例は、音響、無線周波数(RF)スペクトル、赤外線および他の無線媒体を含み得る。
【0090】
中央集中サーバデバイス520は、通信コンポーネント540を介して、通信信号514を使用して、通信媒体512を通じて他のデバイスと通信し得る。デバイスは、所与の実装形態にとって望ましいように、中央集中サーバデバイス520の内部または外部にあり得る。
【0091】
中央集中サーバデバイス520は、メッセージングサーバ550を実行し得る。メッセージングサーバ550は、メッセージングシステム110のためのメッセージングサーバを備え得る。メッセージングサーバ550は、複数のクライアントデバイス510に関するメッセージング動作を提供し、クライアントデバイス510間でメッセージを受信および送出し得る。クライアントデバイス510は、スマートフォンデバイス150、タブレットデバイス160、パーソナルコンピュータデバイス170、および/または任意の他のクライアントデバイスの1つまたは複数に対応し得る。
【0092】
図6は、分散システム600のブロック図を例示する。分散システム600は、暗号化メッセージシステム100に関する構造および/または動作を、複数のコンピューティングエンティティに分散させることができる。分散システム600の例は、限定するものではないが、クライアントサーバアーキテクチャ、3層アーキテクチャ、N層アーキテクチャ、密結合またはクラスタアーキテクチャ、ピアツーピアアーキテクチャ、マスタースレーブアーキテクチャ、共有データベースアーキテクチャ、および他のタイプの分散システムを含み得る。実施形態はこれに関して制限されない。
【0093】
分散システム600は、複数の分散サーバデバイス620を備え得る。一般に、分散サーバデバイス620は、図6を参照して説明した中央集中サーバデバイス620と同じまたは類似したものであり得る。例として、分散サーバデバイス620はそれぞれ、処理コンポーネント630および通信コンポーネント640を有することができ、それらは、図5を参照して説明した処理コンポーネント730および通信コンポーネント740とそれぞれ同じまたは類似したものである。別の例では、分散サーバデバイス620は、通信コンポーネント640を介して、通信信号614を使用して通信媒体612を通じて通信することができる。
【0094】
分散サーバデバイス620は、記載される実施形態に従って様々な方法論を行うように動作する1つまたは複数のサーバプログラムを備えるか、または用いることができる。1つの実施形態では、例えば、分散サーバデバイス620は各々、複数のメッセージングサーバ650のうちの1つを実行し得る。メッセージングサーバ650は、メッセージングシステム110のためのメッセージングサーバを備え得る。メッセージングサーバ650は、複数のクライアントデバイス610に関するメッセージング動作を提供し、クライアントデバイス610間でメッセージを受信および送出し得る。クライアントデバイス610は、スマートフォンデバイス150、タブレットデバイス160、パーソナルコンピュータデバイス180、および/または任意の他のクライアントデバイスの1つまたは複数に対応し得る。
【0095】
図7は、上記に記載の様々な実施形態を実施するのに適した例示的なコンピューティングアーキテクチャ700の一実施形態を示す。1つの実施形態では、コンピューティングアーキテクチャ700は、電子デバイスを備えるか、電子デバイスの一部として実施され得る。電子デバイスの例は、とりわけ、図8を参照して説明したものを含むことができる。実施形態はこれに関して制限されない。
【0096】
本願において使用される場合、用語「システム」および「コンポーネント」は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピュータに関係したエンティティを指すことを意図し、それらの例が、例示的なコンピューティングアーキテクチャ700によって提供される。例えば、コンポーネントは、限定ではないが、プロセッサにおいて走るプロセス、プロセッサ、ハードディスクドライブ、(光学および/または磁気記憶媒体の)複数の記憶ドライブ、オブジェクト、実行ファイル、実行スレッド、プログラムおよび/またはコンピュータであり得る。例示として、サーバ上で走るアプリケーションとサーバの両方がコンポーネントであり得る。1つまたは複数のコンポーネントがプロセスおよび/または実行スレッド内に常駐することができ、コンポーネントは、1つのコンピュータ上に局在することができ、および/または2つ以上のコンピュータ間で分散され得る。さらに、コンポーネントは、動作を協調させるように、様々なタイプの通信媒体によって互いに通信可能に結合され得る。協調は、情報の一方向または双方向の交換を伴い得る。例として、コンポーネントは、通信媒体を通じて通信される信号の形態で情報を通信することができる。情報は、様々な信号線に割り振られる信号として実施することができる。そのような割り振りにおいては、各メッセージが信号となる。一方、さらなる実施形態は、代替的にデータメッセージを用いることができる。そのようなデータメッセージは、様々な接続にわたって送信され得る。例示的な接続は、パラレルインターフェース、シリアルインターフェース、およびバスインターフェースを含む。
【0097】
コンピューティングアーキテクチャ700は、1つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インターフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入出力(I/O)コンポーネント、電源等の様々な一般的なコンピューティング要素を含む。しかし、実施形態は、コンピューティングアーキテクチャ700による実装に限定されない。
【0098】
図7に示すように、コンピューティングアーキテクチャ700は、処理ユニット704、システムメモリ706、およびシステムバス708を備える。処理ユニット704は、限定ではないが、AMD(登録商標)Athlon(登録商標)、Duron(登録商標)およびOpteron(登録商標)プロセッサ、ARM(登録商標)アプリケーション、組み込み型およびセキュアプロセッサ、IBM(登録商標)およびMotorola(登録商標)DragonBall(登録商標)およびPowerPC(登録商標)プロセッサ、IBMおよびSony(登録商標)のCellプロセッサ、Intel(登録商標)Celeron(登録商標)、Core(2)Duo(登録商標)、Itanium(登録商標)、Pentium(登録商標)、Xeon(登録商標)、およびXScale(登録商標)プロセッサ、ならびに同様のプロセッサを含む、様々な市販のプロセッサのうちの任意のものであり得る。デュアルマイクロプロセッサ、マルチコアプロセッサ、および他のマルチプロセッサアーキテクチャも処理ユニット704として用いられ得る。
【0099】
システムバス708は、限定ではないがシステムメモリ706を含むシステムコンポーネントのためのインターフェースを処理ユニット704に提供する。システムバス708は、各種の市販のバスアーキテクチャのうちの任意のものを用いてメモリバス(メモリコントローラを有するかまたは有しない)、周辺バス、およびローカルバスにさらに相互接続することができるいくつかのタイプのバス構造のうち、任意のものとすることができる。インターフェースアダプタが、スロットアーキテクチャを介してシステムバス708に接続し得る。例示的なスロットアーキテクチャは、限定ではないが、アクセラレーテッドグラフィックスポート(AGP)、カードバス、(拡張)業界標準アーキテクチャ((E)ISA)、マイクロチャネルアーキテクチャ(MCA)、NuBus、周辺コンポーネント相互接続(拡張)(PCI(X))、PCIエクスプレス、パーソナルコンピュータメモリカード国際組織(PCMCIA)等を含み得る。
【0100】
コンピューティングアーキテクチャ700は、様々な製造品を含むかまたは実施することができる。製造品は、ロジックを記憶するためのコンピュータ可読記憶媒体を備え得る。コンピュータ可読記憶媒体の例は、揮発性メモリまたは不揮発性メモリ、取外し可能または非取外し可能メモリ、消去可能または非消去可能メモリ、書き込み可能または書き換え可能メモリ等を含む、電子データを記憶することが可能な任意の有形媒体を含み得る。ロジックの例は、ソースコード、コンパイルされたコード、解釈実行されたコード、実行可能コード、静的コード、動的コード、オブジェクト指向コード、視覚コード等の、任意の適切なタイプのコードを用いて実施される実行可能なコンピュータプログラム命令を含み得る。実施形態は少なくとも部分的に、1つまたは複数のプロセッサによって読出しおよび実行されて、本明細書に記載の動作を実行させる、非一時的コンピュータ可読媒体に含まれるかまたは非一時的コンピュータ可読媒体上にある命令として実施されることも可能である。
【0101】
システムメモリ706は、読出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDRAM)、同期DRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能なプログラマブルROM(EPROM)、電気的に消去可能なプログラマブルROM(EEPROM)、フラッシュメモリ、強誘電性ポリマーメモリ等のポリマーメモリ、オーボニックメモリ(ovonic memory)、相変化または強誘電性メモリ、シリコン-酸化物-窒化物-酸化物-シリコン(SONOS)メモリ、磁気カードまたは光カード、独立ディスクの冗長アレイ(RAID)ドライブ等のデバイスのアレイ、ソリッドステートメモリデバイス(例えばUSBメモリ、ソリッドステートドライブ(SSD))および情報を記憶するのに適した任意の他のタイプの記憶媒体等の、1つまたは複数の高速メモリユニットの形態の様々なタイプのコンピュータ記憶媒体を含み得る。図7に示す例示される実施形態では、システムメモリ706は、不揮発性メモリ710および/または揮発性メモリ712を含むことができる。基本入出力システム(BIOS)を不揮発性メモリ710に記憶することができる。
【0102】
コンピュータ702は、内部(または外部)ハードディスクドライブ(HDD)714、取外し可能な磁気ディスク718の読出しまたは書き込みを行うための磁気フロッピーディスクドライブ(FDD)716、および取外し可能な光ディスク722(例えばCD-ROMまたはDVD)の読出しまたは書き込みを行うための光ディスクドライブ720を含む1つまたは複数の低速メモリユニットの形態で、様々なタイプのコンピュータ可読記憶媒体を備えることができる。HDD714、FDD716、および光ディスクドライブ720は、それぞれHDDインターフェース724、FDDインターフェース726、および光ドライブインターフェース728によって、システムバス708に接続することができる。外部ドライブ実装のためのHDDインターフェース724は、ユニバーサルシリアルバス(USB)およびIEEE1394インターフェース技術の少なくとも一方または双方を含むことができる。
【0103】
ドライブおよび関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令等の揮発性の記憶および/または不揮発性の記憶を提供する。例えば、オペレーティングシステム730、1つまたは複数のアプリケーションプログラム732、他のプログラムモジュール734、およびプログラムデータ736を含む複数のプログラムモジュールを、ドライブおよびメモリユニット710、712に記憶することができる。1つの実施形態では、1つまたは複数のアプリケーションプログラム732、他のプログラムモジュール734、およびプログラムデータ736は、例えば、暗号化メッセージシステム100の様々なアプリケーションおよび/またはコンポーネントを含むことができる。
【0104】
ユーザは、1つまたは複数の有線/無線の入力デバイス、例えば、キーボード738、およびマウス740などのポインティングデバイスを通じてコンピュータ702にコマンドおよび情報を入力することができる。他の入力デバイスは、マイクロフォン、赤外線(IR)リモートコントロール、無線周波数(RF)リモートコントロール、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、グローブ、グラフィックタブレット、ジョイスティック、キーボード、網膜リーダ、タッチスクリーン(例えば容量型、抵抗型等)、トラックボール、トラックパッド、センサ、スタイラス等を含むことができる。これらのおよび他の入力デバイスは、多くの場合、システムバス708に結合された入力デバイスインターフェース742を通じて処理ユニット704に接続されるが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインターフェース等の他のインターフェースによって接続されることもある。
【0105】
モニタ744または他のタイプの表示デバイスも、ビデオアダプタ746などのインターフェースを介してシステムバス708に接続される。モニタ744は、コンピュータ702に対し内部にある場合も外部にある場合もある。モニタ744に加えて、コンピュータは通常、スピーカ、プリンタ等の他の周辺出力デバイスを備える。
【0106】
コンピュータ702は、リモートコンピュータ748などの1つまたは複数のリモートコンピュータへの有線および/または無線通信を介した論理接続を使用して、ネットワーク化された環境において動作することができる。リモートコンピュータ748は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、携帯型コンピュータ、マイクロプロセッサを利用した娯楽機器、ピアデバイス、または他の一般的なネットワークノードであり得、通常は、コンピュータ702に関して記載した要素のうちの多くまたは全てを備えるが、簡潔にするために、メモリ/記憶デバイス750のみが示されている。描かれる論理接続は、ローカルエリアネットワーク(LAN)752および/またはより大きなネットワーク、例えば広域ネットワーク(WAN)754への有線/無線接続を含む。そのようなLANおよびWANネットワーキング環境は、事務所や会社において一般的であり、イントラネットなどの企業規模のコンピュータネットワークを容易にし、コンピュータネットワークは全て、グローバル通信ネットワーク、例えばインターネットに接続することができる。
【0107】
LANネットワーキング環境で用いられるとき、コンピュータ702は、有線および/または無線通信ネットワークインターフェースまたはアダプタ756を通じてLAN752に接続される。アダプタ756は、LAN752への有線および/または無線通信を容易にすることができ、LAN752は、アダプタ756の無線機能と通信するために配置された無線アクセスポイントも含むことができる。
【0108】
WANネットワーキング環境で用いられるとき、コンピュータ702は、モデム758を含むことができるか、またはWAN754上の通信サーバに接続されるか、またはインターネットを介するなど、WAN754を介して通信を確立する他の手段を有する。モデム758は、内部または外部の、有線および/または無線デバイスであり得、入力デバイスインターフェース742を介してシステムバス708に接続する。ネットワーク化された環境では、コンピュータ702に関して描かれたプログラムモジュールまたはその一部分をリモートメモリ/記憶デバイス750に記憶することができる。示されるネットワーク接続は例示であり、コンピュータ間で通信リンクを確立する他の手段を使用できることが認識されよう。
【0109】
コンピュータ702は、IEEE802系規格を使用して、無線通信(例えば、IEEE802.11オーバーザエアー変調技法)において動作可能に配置される無線デバイスなどの、有線および無線デバイスまたはエンティティと通信するように動作可能である。これは少なくとも、とりわけ、Wi-Fi(または無線フィデリティ)、WiMaxおよびBluetooth(商標)の無線通信技術を含む。よって、通信は、従来のネットワークと同じように予め定義された通信構造であり得るか、または、単に少なくとも2つの装置の間におけるアドホック通信であり得る。Wi-Fiネットワークは、安全で信頼性が高く高速な無線接続を提供するIEEE802.11x(a、b、g、n等)と称される無線技術を用いる。Wi-Fiネットワークは、コンピュータを互いに、インターネットに、および有線ネットワーク(IEEE802.3関連の媒体および機能を用いる)に接続するために使用され得る。
【0110】
図8は、上記の様々な実施形態を実施するのに適した例示的な通信アーキテクチャ800のブロック図を例示する。通信アーキテクチャ800は、送信機、受信機、トランシーバ、無線通信装置、ネットワークインターフェース、ベースバンドプロセッサ、アンテナ、増幅器、フィルタ、電源等の様々な一般的な通信要素を含む。しかし、実施形態は通信アーキテクチャ800による実施に限定されない。
【0111】
図8に示すように、通信アーキテクチャ800は、1つまたは複数のクライアント802と、サーバ804とを備える。クライアント802は、ここに記載されるクライアントおよびクライアントデバイスに対応し得る。サーバ804は、ここに記載されるサーバおよびサーバデバイスに対応し得る。クライアント802およびサーバ804は、クッキーおよび/または関連付けられた状況情報などの情報を、それぞれのクライアント802およびサーバ804に対してローカルに記憶するために利用できる、1つまたは複数のそれぞれのクライアントデータストア808およびサーバデータストア810に動作可能に接続される。
【0112】
クライアント802およびサーバ804は、通信フレームワーク806を使用して互いの間で情報を通信することができる。通信フレームワーク806は、任意のよく知られた通信技法およびプロトコルを実施することができる。通信フレームワーク806は、パケット交換網(例えばインターネット等の公衆ネットワーク、社内イントラネット等のプライベートネットワーク等)、回線交換網(例えば公衆交換電話網)、またはパケット交換網と回線交換網との組合せ(適切なゲートウェイおよびトランスレータを備える)として実施され得る。
【0113】
通信フレームワーク806は、通信ネットワークを受け入れ、通信ネットワークと通信し、通信ネットワークに接続するように成される様々なネットワークインターフェースを実施することができる。ネットワークインターフェースは、特殊な形態の入出力インターフェースと見なすことができる。ネットワークインターフェースは、限定ではないが、直接接続、イーサネット(例えばシック、シン、ツイストペア10/100/1000BaseT等)、トークンリング、無線ネットワークインターフェース、セルラーネットワークインターフェース、IEEE802.11a-xネットワークインターフェース、IEEE802.16ネットワークインターフェース、IEEE802.20ネットワークインターフェース等を含む接続プロトコルを用いることができる。さらに、様々な通信ネットワークタイプと関わるために複数のネットワークインターフェースが用いられ得る。例えば、ブロードキャスト、マルチキャストおよびユニキャストネットワークによる通信を実現するために、複数のネットワークインターフェースが用いられ得る。処理要件がより高い速度およびより多くの容量を求める場合には、分散ネットワークコントローラアーキテクチャを同様に利用して、クライアント802およびサーバ804によって必要とされる通信帯域幅をプールし、負荷分散し、他の形で増大させることが可能である。通信ネットワークは、限定ではないが、直接相互接続、セキュア化されたカスタム接続、プライベートネットワーク(例えば社内イントラネット)、公衆ネットワーク(例えばインターネット)、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、インターネット上のノードとして動作しているミッション(OMNI)、広域ネットワーク(WAN)、無線ネットワーク、セルラーネットワークおよび他の通信ネットワークを含む、有線および/または無線ネットワークのうちの任意の1つおよびそれらの組合せであり得る。
【0114】
図9は、暗号化メッセージシステム100などのマルチキャリアOFDMシステムで使用するためのデバイス900の一実施形態を例示する。デバイス900は、例えば、暗号化メッセージシステム100を参照して説明したようなソフトウェアコンポーネント960、および/または論理回路935を実施し得る。論理回路935は、暗号化メッセージシステム100に関して説明した動作を行うための物理回路を含み得る。図9に示すように、デバイス900は、無線インターフェース910、ベースバンド回路構成920、およびコンピューティングプラットフォーム930を含み得るが、実施形態はこの構成に制限されない。
【0115】
デバイス900は、暗号化メッセージシステム100および/または論理回路935について、その構造および/または動作の一部または全てを、完全に単一のデバイス内にあるなどの単一のコンピューティングエンティティ内に実施することができる。代替的に、デバイス900は、クライアントサーバアーキテクチャ、3層アーキテクチャ、N層アーキテクチャ、密結合またはクラスタアーキテクチャ、ピアツーピアアーキテクチャ、マスタースレーブアーキテクチャ、共有データベースアーキテクチャ、および他のタイプの分散システムなどの分散システムアーキテクチャを使用して、暗号化メッセージシステム100および/または論理回路935について、その構造および/または動作のいくつかの部分を複数のコンピューティングエンティティに分散させることができる。実施形態はこれに関して制限されない。
【0116】
1つの実施形態では、無線インターフェース910は、(例えば、相補型符号変調(CCK)および/または直交周波数分割多重(OFDM)シンボルを含む)シングルキャリアまたはマルチキャリア変調信号を送信および/または受信するように適合されたコンポーネントもしくはコンポーネントの組合せを含み得るが、実施形態は、どの特定の空中(over-the-air)インターフェースまたは変調方式にも限定されない。無線インターフェース910は、例えば、受信機912、送信機916、および/または周波数シンセサイザ914を含み得る。無線インターフェース910は、バイアスコントロール、水晶発振器、および/または1つもしくは複数のアンテナ918を含み得る。別の実施形態では、無線インターフェース910は、必要に応じて、外部の電圧制御発振器(VCO)、弾性表面波フィルタ、中間周波数(IF)フィルタ、および/またはRFフィルタを使用することができる。可能なRFインターフェース設計は多様であるため、その広範な説明は省略する。
【0117】
ベースバンド回路構成920は、受信信号および/または送信信号を処理するために無線インターフェース910と通信することができ、例えば、受信信号をダウンコンバートするためのアナログデジタル変換器922、信号を送信用にアップコンバートするためのデジタルアナログ変換器924を含み得る。さらに、ベースバンド回路構成920は、個々の受信信号/送信信号のPHYリンク層処理のためのベースバンドまたは物理層(PHY)処理回路956を含み得る。ベースバンド回路構成920は、例えば、メディアアクセス制御(MAC)/データリンク層処理のための処理回路928を含み得る。ベースバンド回路構成920は、例えば、1つまたは複数のインターフェース934を介した処理回路928および/またはコンピューティングプラットフォーム930と通信するためのメモリコントローラ932を含み得る。
【0118】
いくつかの実施形態では、PHY処理回路926は、無線フレームなどの通信フレームを構築および/または分解するために、バッファメモリのような追加的回路構成と組み合わせて、フレーム構築および/または検出モジュールを含み得る。代替的または追加的に、MAC処理回路928は、これらの機能のうちのいくつかの処理を共有するか、またはこれらのプロセスをPHY処理回路926とは独立に行い得る。いくつかの実施形態では、MACの処理とPHYの処理は、単一の回路に統合され得る。
【0119】
コンピューティングプラットフォーム930は、デバイス900にコンピューティング機能性を提供し得る。図示のように、コンピューティングプラットフォーム930は、処理コンポーネント940を含み得る。ベースバンド回路構成920に加えて、またはその代わりに、デバイス900は、処理コンポーネント940を使用して、暗号化メッセージシステム100および/または論理回路935に関する処理動作またはロジックを実行することができる。処理コンポーネント940(および/またはPHY926および/またはMAC928)は、各種ハードウェア要素、ソフトウェア要素、または両者の組合せを含み得る。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ回路、回路素子(例えばトランジスタ、抵抗器、コンデンサ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラム可能ロジックデバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含み得る。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインターフェース、アプリケーションプログラムインターフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、記号、またはそれらの任意の組合せを含み得る。実施形態がハードウェア要素を用いて実施されるか、および/またはソフトウェア要素を用いて実施されるかの決定は、求められる計算速度、電力レベル、熱耐性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度、および他の設計または性能の制約など、所与の実装形態に要求される任意の数の要因に応じて変化し得る。
【0120】
コンピューティングプラットフォーム930は、さらに、他のプラットフォームコンポーネント950を含み得る。他のプラットフォームコンポーネント950は、1つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インターフェース、発振器、タイミング装置、ビデオカード、オーディオカード、マルチメディア入力/出力(I/O)コンポーネント(例えばデジタルディスプレイ)、電源等の、一般的なコンピューティング要素を含む。メモリユニットの例は、限定するものではないが、読出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDRAM)、同期DRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能なプログラマブルROM(EPROM)、電気的に消去可能なプログラマブルROM(EEPROM)、フラッシュメモリ、強誘電性ポリマーメモリ等のポリマーメモリ、オーボニックメモリ、相変化または強誘電性メモリ、シリコン-酸化物-窒化物-酸化物-シリコン(SONOS)メモリ、磁気カードまたは光カード、独立ディスクの冗長アレイ(RAID)ドライブ等のデバイスのアレイ、ソリッドステートメモリデバイス(例えばUSBメモリ、ソリッドステートドライブ(SSD))および情報を記憶するのに適した任意の他のタイプの記憶媒体等の、1つまたは複数の高速メモリユニットの形態の様々なタイプのコンピュータ可読および機械可読の記憶媒体を含み得る。
【0121】
デバイス900は、例えば、ウルトラモバイルデバイス、モバイルデバイス、固定デバイス、マシンツーマシン(M2M)デバイス、携帯情報端末(PDA)、モバイルコンピューティングデバイス、スマートフォン、電話機、デジタル電話機、セルラー電話機、ユーザ機器、電子書籍リーダ、ハンドセット、一方向ページャ、双方向ページャ、メッセージングデバイス、コンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、ラップトップコンピュータ、ノート型コンピュータ、ネットブックコンピュータ、手持ち型コンピュータ、タブレットコンピュータ、サーバ、サーバアレイまたはサーバファーム、ウェブサーバ、ネットワークサーバ、インターネットサーバ、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサを利用したシステム、消費者家電、プログラム可能な消費者家電、ゲームデバイス、テレビ、デジタルテレビ、セットトップボックス、無線アクセスポイント、基地局、ノードB、発展型ノードB(eNB)、加入者局、モバイル加入者センター、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、機械、またはそれらの組合せであり得る。したがって、本明細書に記載のデバイス900の機能および/または具体的な構成は、要求に応じて適宜、デバイス900の様々な実施形態に含めることも、または省くこともできる。いくつかの実施形態では、デバイス900は、3GPP LTE仕様および/またはWMAN用のIEEE1102.16規格および/または本明細書で引用される他の広帯域無線ネットワークの1つ以上に関連したプロトコルおよび周波数に準拠するように構成することができるが、実施形態はこの点に関して限定されない。
【0122】
デバイス900の実施形態は、単入力単出力(SISO)アーキテクチャを用いて実施することができる。しかし、ある実装形態は、ビームフォーミングまたは空間分割多重アクセス(SDMA)のための適応アンテナ技法、および/またはMIMO通信技法を用いた送信および/または受信用の複数のアンテナ(例えばアンテナ918)を含み得る。
【0123】
デバイス900のコンポーネントおよび特徴は、ディスクリート回路構成、特定用途向け集積回路(ASIC)、論理ゲート、および/またはシングルチップアーキテクチャの任意の組合せを用いて実施され得る。さらに、デバイス900の特徴は、適宜、マイクロコントローラ、プログラマブルロジックアレイ、および/またはマイクロプロセッサ、またはそれらの任意の組合せを用いて実施され得る。本明細書において、ハードウェア、ファームウェア、および/またはソフトウェア要素を、「ロジック」または「回路」と総称または個称する場合があることに留意すべきである。
【0124】
図9のブロック図に示す例示的なデバイス900は、多くの可能性のある実装形態の1つの機能的説明例を表し得るということは認識されるべきである。したがって、添付の図面に描かれる機能ブロックの分割、省略、または包含は、それらの機能を実施するためのハードウェアコンポーネント、回路、ソフトウェア、および/または要素が実施形態において必ず分割、省略、または包含されることを示唆するものではない。
【0125】
コンピュータ実装方法は、
多次元のラチェット暗号化方式に従って暗号化されている暗号化メッセージを受信することと、
暗号化メッセージのメッセージ反復回数を判定することと、
メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解することと、
複数のメッセージチェーン鍵反復回数に基づいて復号鍵を決定することと、
復号鍵に基づいて暗号化メッセージを復号することにより復号後メッセージを生成することと、
を含み得る。
【0126】
コンピュータ実装方法は、
暗号化メッセージを、メッセージングサーバデバイスからクライアントデバイスで受信することと、
復号後メッセージをクライアントデバイス上に表示することと、
をさらに含み得る。
【0127】
コンピュータ実装方法は、復号鍵が複数のクライアントチェーン鍵に基づくものであり、複数のクライアントチェーン鍵が、多次元のラチェット暗号化方式の複数の次元に対応し、複数の次元が、複数のクライアントチェーン鍵の可変ステップの前進を可能にすること、をさらに含み得る。
【0128】
コンピュータ実装方法は、複数のクライアントチェーン鍵の可変ステップの前進が、1つまたは複数の暗号化メッセージを破棄することに相当することをさらに含み得る。
【0129】
コンピュータ実装方法は、暗号化メッセージの復号に応答してチェーン鍵反復回数を1ステップ前進させることをさらに含み得る。
【0130】
コンピュータ実装方法は、
複数のクライアントチェーン鍵を取得することであって、複数のクライアントチェーン鍵は多次元のラチェット暗号化方式の複数の次元に対応し、複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
複数のクライアントチェーン鍵反復回数が複数のメッセージチェーン鍵反復回数と等しいと判定することと、
複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を復号鍵として決定することと、
をさらに含み得る。
【0131】
コンピュータ実装方法は、最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値未満である場合、暗号化メッセージの復号に応答して最も次元の高いクライアントチェーン鍵を1ステップ前進させることをさらに含み得る。
【0132】
コンピュータ実装方法は、最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合、暗号化メッセージの復号に応答して複数のクライアントチェーン鍵のうち2つ以上のクライアントチェーン鍵を前進させることをさらに含み得る。
【0133】
コンピュータ実装方法は、
複数のクライアントチェーン鍵を取得することであって、複数のクライアントチェーン鍵は多次元のラチェット暗号化方式の複数の次元に対応し、複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
クライアント反復回数がメッセージ反復回数未満であることを判定することであって、クライアント反復回数は複数のクライアントチェーン鍵反復回数を合成したものに対応する、クライアント反復回数がメッセージ反復回数未満であると判定することと、
クライアント反復回数とメッセージ反復回数との間の反復距離に基づいて複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成することと、
複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を復号鍵として決定することと、
をさらに含み得る。
【0134】
コンピュータ実装方法は、複数のクライアントチェーン鍵を前進させることが、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み、より次元の高いクライアントチェーン鍵を再生成することが、より次元の高いクライアントチェーン鍵の1つまたは複数の許容反復回数をスキップすることを含むこと、をさらに含み得る。
【0135】
装置は、メッセージングコンポーネントであって、暗号化メッセージを受信し、暗号化メッセージは多次元のラチェット暗号化方式に従って暗号化されており、暗号化メッセージのメッセージ反復回数を判定し、復号鍵に基づいて暗号化メッセージを復号することによって復号後メッセージを生成するように動作する、メッセージングコンポーネントと、メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解し、複数のメッセージチェーン鍵反復回数に基づいて復号鍵を決定するように、プロセッサ回路上で動作する鍵管理コンポーネントと、を備え得る。装置は、本明細書に記載されるコンピュータ実装方法のいずれかを実施するように動作し得る。
【0136】
少なくとも1つのコンピュータ可読記憶媒体は、実行されたとき、システムに、本明細書に記載されるコンピュータ実装方法のいずれかを行わせる命令を備え得る。
【0137】
コンピュータ実装方法は、
多次元のラチェット暗号化方式に従って暗号化されている暗号化メッセージを受信することと、
暗号化メッセージのメッセージ反復回数を判定することと、
メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解することと、
複数のメッセージチェーン鍵反復回数に基づいて復号鍵を決定することと、
復号鍵に基づいて暗号化メッセージを復号することにより復号後メッセージを生成することと、
を含み得る。
【0138】
コンピュータ実装方法は、復号鍵が複数のクライアントチェーン鍵に基づくものであり、複数のクライアントチェーン鍵が多次元のラチェット暗号化方式の複数の次元に対応し、複数の次元が、複数のクライアントチェーン鍵の可変ステップの前進を可能にし、複数のクライアントチェーン鍵の可変ステップの前進が、任意選択で、1つまたは複数の暗号化メッセージを破棄することに相当すること、をさらに含み得る。
【0139】
コンピュータ実装方法は、複数のクライアントチェーン鍵を取得することであって、複数のクライアントチェーン鍵は多次元のラチェット暗号化方式の複数の次元に対応し、複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得すること、複数のクライアントチェーン鍵反復回数が複数のメッセージチェーン鍵反復回数と等しいと判定すること、および、複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を復号鍵として決定すること、および、任意選択で、最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合、暗号化メッセージの復号に応答して複数のクライアントチェーン鍵のうち2つ以上のクライアントチェーン鍵を前進させること、または、任意選択で、最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値未満である場合、暗号化メッセージの復号に応答して最も次元の高いクライアントチェーン鍵を1ステップ前進させること、をさらに含み得る。
【0140】
コンピュータ実装方法は、
複数のクライアントチェーン鍵を取得することであって、複数のクライアントチェーン鍵は多次元のラチェット暗号化方式の複数の次元に対応し、複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
クライアント反復回数がメッセージ反復回数未満であることを判定することであって、クライアント反復回数は複数のクライアントチェーン鍵反復回数を合成したものに対応する、クライアント反復回数がメッセージ反復回数未満であると判定することと、
クライアント反復回数とメッセージ反復回数との間の反復距離に基づいて複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成することと、
複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を復号鍵として決定することと、
をさらに含み得る。ここで、複数のクライアントチェーン鍵を前進させることは、任意選択で、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み、より次元の高いクライアントチェーン鍵を再生成することは、より次元の高いクライアントチェーン鍵の1つまたは複数の許容反復回数をスキップすることを含む。
【0141】
コンピュータ実装方法は、メッセージ反復回数が、暗号化メッセージを復号する際に少なくとも部分的に使用されるメッセージの順序付けおよび順番情報を標示し、メッセージ反復回数が、任意選択で、暗号化メッセージの非暗号化ラッパー、特に非暗号化ヘッダ、の一コンポーネントであり、暗号化メッセージの秘密情報、プライベートな情報、またはその他の形で保護される情報が、暗号化メッセージの暗号化されたペイロード中に置かれ、暗号化メッセージおよび非暗号化ラッパーが、任意選択で、メッセージパッケージの一部としてメッセージングサーバを介して送られ、メッセージングコンポーネントにより、暗号化メッセージの非暗号化ラッパーからメッセージ反復回数を抽出することによりメッセージ反復回数を判定すること、をさらに含み得る。
【0142】
装置は、メッセージングコンポーネントであって、暗号化メッセージを受信し、暗号化メッセージは多次元のラチェット暗号化方式に従って暗号化されており、暗号化メッセージのメッセージ反復回数を判定し、復号鍵に基づいて暗号化メッセージを復号することによって復号後メッセージを生成するように動作する、メッセージングコンポーネントと、メッセージ反復回数を複数のメッセージチェーン鍵反復回数に分解し、複数のメッセージチェーン鍵反復回数に基づいて復号鍵を決定するように、プロセッサ回路上で動作する鍵管理コンポーネントと、を備え得る。
【0143】
装置は、復号鍵が複数のクライアントチェーン鍵に基づくものであり、複数のクライアントチェーン鍵が多次元のラチェット暗号化方式の複数の次元に対応し、複数の次元が、複数のクライアントチェーン鍵の可変ステップの前進を可能にし、複数のクライアントチェーン鍵の可変ステップの前進が、任意選択で、1つまたは複数の暗号化メッセージを破棄することに相当すること、をさらに含み得る。
【0144】
装置は、
鍵管理コンポーネントが、
複数のクライアントチェーン鍵を取得することであって、複数のクライアントチェーン鍵は多次元のラチェット暗号化方式の複数の次元に対応し、複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
複数のクライアントチェーン鍵反復回数が複数のメッセージチェーン鍵反復回数と等しいと判定することと、複数のクライアントチェーン鍵のうち最も次元の高いクライアントチェーン鍵を復号鍵として決定することと、
最も次元の高いクライアントチェーン鍵に対応する最も次元の高いクライアントチェーン鍵反復回数が最大チェーン鍵反復値と等しい場合、暗号化メッセージの復号に応答して複数のクライアントチェーン鍵のうち2つ以上のクライアントチェーン鍵を前進させることと、
を行うように動作すること、をさらに含み得る。
【0145】
装置は、
鍵管理コンポーネントが、
複数のクライアントチェーン鍵を取得することであって、複数のクライアントチェーン鍵は多次元のラチェット暗号化方式の複数の次元に対応し、複数のクライアントチェーン鍵は複数のクライアントチェーン鍵反復回数に対応する、複数のクライアントチェーン鍵を取得することと、
クライアント反復回数がメッセージ反復回数未満であることを判定することであって、クライアント反復回数は複数のクライアントチェーン鍵反復回数を合成したものに対応する、クライアント反復回数がメッセージ反復回数未満であることを判定することと、
クライアント反復回数とメッセージ反復回数との間の反復距離に基づいて複数のクライアントチェーン鍵を前進させることにより、複数のラチェット後クライアントチェーン鍵を生成することと、
複数のラチェット後クライアントチェーン鍵のうち最も次元の高いラチェット後クライアントチェーン鍵を復号鍵として決定することと、
を行うように動作することをさらに含み得、複数のクライアントチェーン鍵を前進させることは、任意選択で、より次元の低いクライアントチェーン鍵を前進させることに基づいてより次元の高いクライアントチェーン鍵を再生成することを含み、より次元の高いクライアントチェーン鍵を再生成することは、より次元の高いクライアントチェーン鍵の1つまたは複数の許容反復回数をスキップすることを含む。
【0146】
装置は、メッセージ反復回数が、暗号化メッセージを復号する際に少なくとも部分的に使用されるメッセージの順序付けおよび順番情報を標示し、メッセージ反復回数が、任意選択で、暗号化メッセージの非暗号化ラッパー、特に非暗号化ヘッダ、の一コンポーネントであり、暗号化メッセージの秘密情報、プライベートな情報、またはその他の形で保護される情報が、暗号化メッセージの暗号化されたペイロード中に置かれ、暗号化メッセージおよび非暗号化ラッパーが、任意選択で、メッセージパッケージの一部としてメッセージングサーバを介して送られ、メッセージングコンポーネントが、暗号化メッセージの非暗号化ラッパーからメッセージ反復回数を抽出することによりメッセージ反復回数を判定するように動作可能であること、をさらに含み得る。
【0147】
少なくとも1つのコンピュータ可読記憶媒体は、実行されたとき、システム、特に請求項26から30のいずれか一項に記載の装置に、請求項21から25の少なくとも1つに記載の方法の全てのステップを実施させる命令を備え得る。
【0148】
いくつかの実施形態は、「1つの実施形態」または「一実施形態」という表現と、それらの派生語とを用いて説明されることがある。これらの用語は、当該実施形態に関して説明される特定の特徴、構造または特性が少なくとも1つの実施形態に含まれることを意味する。本明細書の様々な箇所に現れる「1つの実施形態において」というフレーズは、必ずしも全てが同じ実施形態を指すわけではない。さらに、いくつかの実施形態は、「結合された」および「接続された」という表現と、それらの派生語とを用いて説明されることがある。これらの表現は必ずしも互いの同義語として意図されているとは限らない。例えば、いくつかの実施形態は、「接続された」および/または「結合された」という表現を用いることにより、2つ以上の要素が物理的または電気的に直接互いと接触していることを示すように説明され得る。ただし、「結合された」という用語は、2つ以上の要素が互いに直接接触していないものの、互いに協働または対話することを意味する場合もある。
【0149】
本明細書において用いられる表記および専門用語を全体的に参照すると、本明細書における詳細な説明は、コンピュータまたはコンピュータのネットワーク上で実行されるプログラムプロシージャの観点から与えられることがある。これらの手続き的記載および表現は、当業者が当該技術分野における他の当業者に自身の研究の本質を最も効果的に伝えるために用いられる。
【0150】
プロシージャとは、ここでは、また一般的に、所望の結果をもたらす動作の自己矛盾のないシーケンスであると考えられる。これらの動作は、物理的量の物理的操作を必要とする動作である。通常、ただし必ずそうであるとは限らないが、これらの量は、記憶、転送、組合せ、比較および他の形で操作されることが可能な電気信号、磁気信号または光信号の形態を取る。場合によっては、主に広く使用されているという理由から、これらの信号を、ビット、値、要素、記号、文字、項、数等と呼ぶことが利便であることが判明している。しかし、これらの用語および同様の用語は全て適切な物理的量に関連付けられ、これらの量に適用される利便な標識にすぎないことに留意されたい。
【0151】
さらに、実行される操作は、多くの場合、一般的には人間のオペレータによって実行される知的動作に関連付けられる、追加または比較等の用語で参照される。1つまたは複数の実施形態の一部を形成する、本明細書に記載される動作のいずれにおいても、人間のオペレータのそのような能力は必要でないか、ほとんどの場合に望ましくない。むしろ、それらの動作は機械動作である。様々な実施形態の動作を実行するための有用な機械は、汎用デジタルコンピュータまたは同様のデバイスを含む。
【0152】
様々な実施形態は、これらの動作を実行するための装置またはシステムにも関する。この装置は、必要とされる目的のために特に構築されるか、またはコンピュータに記憶されるコンピュータプログラムによって選択的に作動または再構成される汎用コンピュータを含むことができる。本明細書において提示されるプロシージャは本質的に、特定のコンピュータまたは他の装置に関係しない。様々な汎用機械が、本明細書における教示に従って書かれたプログラムと共に用いられ得るか、または、必要とされる方法ステップを実行するためのより特殊な装置を構築することが好都合であると判明する場合がある。様々なこれらの機械のために必要とされる構造は、与えられる説明から明らかとなるであろう。
【0153】
本開示の要約書は、読み手が技術的開示の本質を迅速に理解できるようにするために提供されていることを強調しておく。要約書は、特許請求の範囲の範囲または意味を解釈または限定することには用いられないという理解のもとに提出されている。また、上記した「発明を実施するための形態」においては、開示を効率化するために様々な特徴がまとめて単一の実施形態にされていることを見てとることができる。この開示方法は、特許請求される実施形態が各請求項に明示的に記された特徴以外のものを必要とするという意図を表すものと解釈されるべきではない。むしろ、以下の特許請求の範囲が表しているように、本発明の主題は、開示されている単一の実施形態の全特徴よりも少ない特徴にある。よって、以下の特許請求の範囲は本明細書において「発明を実施するための形態」に組み込まれ、各請求項は独立した1つの実施形態に基づく。添付の特許請求の範囲において、「including」および「in which」という用語は、それぞれ「comprising」および「wherein」の平易な英語における等価語として使用されている。さらに、「第1の」、「第2の」、「第3の」等の用語は単に標識として用いられており、それらの対象物に数値的限定を課すことを意図したものではない。
【0154】
上記の記載は、開示されるアーキテクチャの例を含む。当然ながら、コンポーネントおよび/または方法論の全ての考え得る組合せを記載することは不可能であるが、当業者であれば、多くのさらなる組合せおよび置き換えが可能であることを認識することができる。したがって、本発明の新規のアーキテクチャは、添付の特許請求の範囲の趣旨および範囲内にある全ての改変、修正、および変形を包含することが意図される。
図1
図2
図3
図4
図5
図6
図7
図8
図9