JP2022519688A - エポック鍵交換を用いたエンドツーエンドの二重ラチェット暗号化 - Google Patents

エポック鍵交換を用いたエンドツーエンドの二重ラチェット暗号化 Download PDF

Info

Publication number
JP2022519688A
JP2022519688A JP2021545987A JP2021545987A JP2022519688A JP 2022519688 A JP2022519688 A JP 2022519688A JP 2021545987 A JP2021545987 A JP 2021545987A JP 2021545987 A JP2021545987 A JP 2021545987A JP 2022519688 A JP2022519688 A JP 2022519688A
Authority
JP
Japan
Prior art keywords
key
message
epoch
state
generating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021545987A
Other languages
English (en)
Other versions
JP7353375B2 (ja
Inventor
マンディッチ,デニス
ドディス,エフゲニー
Original Assignee
クリプト,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クリプト,インコーポレイテッド filed Critical クリプト,インコーポレイテッド
Publication of JP2022519688A publication Critical patent/JP2022519688A/ja
Application granted granted Critical
Publication of JP7353375B2 publication Critical patent/JP7353375B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/061Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying further key derivation, e.g. deriving traffic keys from a pair-wise master key

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

二重ラチェット通信プロトコルを用いて前方秘匿性と漏洩後の安全性を維持しながら、エンドツーエンドの暗号化されたセキュアメッセージングセッションでデータを瞬時に復号するためのシステム、デバイス、および方法が開示される。一意のメッセージ鍵は、各デバイスで個別に予測可能な進行で生成でき、必要に応じて各メッセージのラチェット鍵を生成でき、予測可能な進行のシード鍵および状態は、デバイス間の非対称鍵交換に基づいて更新でき、これにより、第2のラチェットとして機能する。メッセージ鍵を疑似乱数ジェネレータ(PRG)に供給して、進行中の次のメッセージ鍵を生成できる。連続鍵共有(CKA)エンジンは、非対称鍵ペアを用いて共有秘密鍵を生成し、疑似ランダム関数(PRF-PRNG)に供給してPRGの状態をリセットし、PRGにリフレッシュ鍵を提供することができる。【選択図】図1

Description

(関連出願への相互参照)
本出願は、2019年2月5日に出願された米国特許出願第16/267,819号に基づく優先権を主張するものであり、その開示全体が、参照により本明細書に援用される。
(技術分野)
本発明は、概して電子デバイス通信に関し、より詳細には、エンドツーエンド暗号化に関する。
コンピュータネットワーク上の通信安全性には、暗号化鍵の生成、配布、保存、および管理が必要である。送信される情報には、テキストメッセージ、ファイル、音声、映像、およびその他の形式が含まれる(ここでの目的では、メッセージングは暗号化され、任意の形式で配信されるデータとして定義される)。メッセージは通常、送信前に暗号化された状態で保存され、すでに暗号化されたデータに対して操作を実行できる。エンドツーエンド暗号化は、一般に、通信相手がメッセージを復号できる唯一のユーザであることによって特徴付けられる。エンドツーエンド暗号化により、通信を容易にするために利用される仲介者や第三者による盗聴を防ぎ、漏洩が生じたネットワーク上でも安全な通信を促進することができる。
セキュアメッセージング(SM)は、世界中の何十億もの人々の間の主要な通信手段になっているが、この用語には、いくつかの例外を除いて、広く受け入れられている正式な定義と証明がない。二重ラチェットアルゴリズムとしても知られるアホロートルラチェットは、オフレコ(OTR)メッセージングシステムのディフィー・ヘルマン非対称ラチェットや、サイレント・サークル・メッセージングプロトコルで用いられる対称鍵ラチェットをモデルにしており、現在普及している信号プロトコルになっている。新しい対称鍵を用いてすべてのメッセージを暗号化および認証することは、商用利用されている多くの最新のエンドツーエンド暗号化メッセージング製品の基盤である。
具体的な実施におけるセキュリティー証明は限定的な数ながら存在するものの、一般化されたプロトコルのセキュリティー証明はなく、量子コンピュータによる総当たり攻撃に対しておそらく安全性を有するセキュリティー証明もない。具体的には、ディフィー・ヘルマンアルゴリズム(現在、非対称ラチェットの信号プロトコルで用いられている)は、ラティスまたはコードベースのアルゴリズム等のポスト量子暗号と比較して、一般的に脆弱である。一部の既存のラチェットプロトコルは、前方秘匿性や漏洩後の安全性等の望ましいプロパティを実現するが、信号のようなプロトコルの正式な証明では、即時の復号が犠牲となり、メッセージ損失検索(MLR)機能が制限されるかまったくない。
したがって、エンドツーエンドのメッセージ暗号化を改善するための改善された方法、デバイス、およびシステムが必要である。
本発明の目的は、前方秘匿性および漏洩後の安全性を維持しながら、エンドツーエンドの暗号化されたセキュアメッセージングセッションでデータを自動的かつ瞬時に復号するシステム、デバイス、および方法を提供することである。一般に、本明細書に提示される例示的な通信デバイスは、メッセージ鍵のシーケンスを生成するための擬似乱数ジェネレータ(PRG)、連続鍵共有(CKA)エンジン、CKAによって供給されて、PRGの状態をリセットし、PRGにリフレッシュ鍵を提供する擬似ランダム関数(PRF-PRNG)をそれぞれ含むことができる。通信セッションの各通信デバイスは、連続鍵共有(CKA)を用いて、各デバイスで対称鍵を個別に生成し、対称鍵およびPRGの前回の状態をPRF-PRNGに提供し、対称鍵および前回の状態に基づいてPRF-PRNGで更新状態およびリフレッシュ鍵を生成し、PRGを当該状態で初期化し、PRGにルート鍵を提供して第1のメッセージ鍵を生成し、各メッセージ鍵をPRGに再帰的に供給して後続のメッセージ鍵および特定の一方向通信エポック(epoch)のメッセージ鍵のシーケンスを生成し、受信デバイスが送信デバイスになるようにメッセージ送信の方向が変更された場合、CKAを介して新しい対称鍵を生成し、第1のエポックのメッセージ鍵を生成するために用いられたのと同様の方法でPRF-PRNGとPRGを用いてメッセージの新しいシーケンスを生成する。メッセージ鍵の新しいシーケンスは、第2の一方向通信エポックメッセージ鍵である。
本発明の別の目的は、メッセージが送信者から順不同で受信されることがあるにもかかわらず、受信者によってメッセージングキュー内で即座に復号および適切に順序付けられ得るプロトコルを提供することである。一部のメッセージが永久に失われた場合でも、暗号化ラチェットを用いてライブ感を維持できる。各メッセージは、メッセージの信憑性を検証するため、かつ/またはメッセージが送信デバイスから送信された順序を決定するために受信デバイスによって用いられ得るヘッダを含むことができる。
デバイス間でメッセージを交換する方法の例は、特定の順序で提示されていない以下の工程の1つ以上を含むことができ、この方法は本記載に含まれていない追加の工程を含むことができる。エンドツーエンド暗号化プロトコルを介して相互にデータを送信可能な2つの通信デバイス「デバイスA」および「デバイスB」を提供できる。ルート状態ならびに第1の公開鍵および第1の秘密鍵を有する第1の非対称鍵ペアを含むエンドツーエンド暗号化を容易にすることができるデータ構造を提供できる。ルート状態はデバイスAおよびデバイスBの両方に保存でき、第1の公開鍵はデバイスAに保存でき、第1の秘密鍵はデバイスBに保存できる。第1のエポック鍵は、第1の公開鍵に基づいてデバイスAで生成でき、デバイスAは、第2の秘密鍵および第2の公開鍵を有する第2の非対称鍵ペアを生成することもできる。第1のエポック鍵および第2の公開鍵は、デバイスAによって送信され、デバイスBによって受信され得る。デバイスAおよびBのそれぞれは、第1のリフレッシュ鍵および第1の状態を個別に生成することができる。デバイスAでは、第1の公開鍵およびルート状態に基づいて、第1のリフレッシュ鍵および第1の状態をそれぞれ生成できる。デバイスBでは、第1のリフレッシュ鍵および第1の状態のそれぞれは、第1の秘密鍵、第1のエポック鍵、およびルート状態に基づいて生成できる。デバイスAおよびBのそれぞれは、各デバイスにおいて第1のメッセージ鍵が第1の状態および第1のリフレッシュ鍵に基づくように、第1のメッセージ鍵を個別に生成することができる。
デバイスAに第1のメッセージ鍵があれば、デバイスAは暗号化されたメッセージをデバイスBに送信し始めることができる。デバイスAは、第1のメッセージを第1のメッセージ鍵で暗号化し、暗号化された第1のメッセージをデバイスBに送信できる。デバイスBは、第1のメッセージ鍵を受信し、第1のメッセージ鍵を用いて復号することができる。この第1のメッセージ鍵は、デバイスBが、予め生成または第1のメッセージの受信時に生成したものである。
第2のメッセージ鍵は、デバイスAおよびデバイスBのそれぞれで個別に生成することができる。この第2のメッセージ鍵は、第1の状態および第1のメッセージ鍵に基づいて生成される。デバイスAに第2のメッセージ鍵があれば、デバイスAは第2の暗号化されたメッセージをデバイスBに送信できる。デバイスAは、第2のメッセージを第2のメッセージ鍵で暗号化し、第2の暗号化されたメッセージをデバイスBに送信できる。デバイスBは、第2の暗号化されたメッセージを受信し、第2のメッセージ鍵で復号することができる。この第2のメッセージ鍵は、デバイスBが、予め生成または第2のメッセージの受信時に生成したものである。
デバイスBがデバイスAに応答し始めると、第1の状態を第2の状態に更新し、第1のリフレッシュ鍵を第2のリフレッシュ鍵に更新して、メッセージ鍵の新しいシーケンスを生成できる。デバイスBは、デバイスAによって以前に生成および送信された第2の公開鍵に基づいて第2のエポック鍵を生成することができる。デバイスBは、第3の秘密鍵および第3の公開鍵を有する第3の非対称鍵ペアを生成することもできる。第2のエポック鍵および第3の公開鍵はデバイスBで送信し、デバイスAで受信できる。デバイスAおよびデバイスBは、各デバイスで第2のリフレッシュ鍵および第2の状態を個別に生成できる。デバイスBでは、第2のリフレッシュ鍵および第2の状態のそれぞれは、デバイスBで以前に生成された第2の公開鍵および第1の状態に基づいて生成できる。デバイスAでは、第2のリフレッシュ鍵および第2の状態のそれぞれは、デバイスAで以前に生成された第2の秘密鍵、デバイスBから受信した第2のエポック鍵、およびデバイスAで以前に生成された第1の状態に基づいて生成できる。各デバイスに第2の状態および第2のリフレッシュ鍵があれば、デバイスAとBは、第1および第2のメッセージ鍵が上記のように生成されたのと同様の方法で、第3および第4のメッセージ鍵を個別に生成できる。
さらに、デバイスBが第2のエポック鍵および第1の公開鍵をデバイスAに送信する前に、デバイスBから第1のメッセージ鍵および/または第2のメッセージ鍵を削除することができる。
デバイスAによって送信された第1のメッセージを参照すると、デバイスAはヘッダを含む第1の暗号文を生成でき、第1の暗号文はデバイスBに送信できる。デバイスBは、第1のメッセージ鍵が第1の暗号文を復号するための適切なメッセージ鍵であることを、ヘッダを用いて確認できる。ヘッダは、デバイスAによって生成され、第1のメッセージ鍵に関連付けられた第1のメッセージインデックスおよび第1の状態に関連付けられた第1のエポックインデックスを含めることができる。デバイスBは、第1のメッセージインデックスおよび第1のエポックインデックスに基づいて第1のメッセージ鍵を検証できる。
さらに、または代わりに、デバイスAは、第1のエポック鍵および第2の公開鍵を含む第1のヘッダを生成することができ、第1のエポック鍵および第2の公開鍵は、第1の暗号文の第1のヘッダでデバイスBに送信することができる。
デバイスAおよびデバイスBのそれぞれでの第1のメッセージ鍵の生成を参照すると、第1の共有鍵は、第1のメッセージ鍵を生成する前に実行される中間工程として、各デバイスで個別に生成することができる。デバイスAおよびデバイスBのそれぞれで、第1のリフレッシュ鍵および第1の状態は、第1の共有鍵およびルート状態に基づいて生成できる。デバイスAでは、第1の公開鍵に基づいて第1の共有鍵を生成でき、デバイスBでは、第1の秘密鍵および第1のエポック鍵に基づいて第1の共有鍵を生成できる。
デバイスAおよびデバイスBのそれぞれは、それぞれの疑似ランダム関数を有することができる。各デバイスで個別に第1の共有鍵およびルート鍵を疑似ランダム関数への入力として提供でき、第1の状態鍵および第1のリフレッシュ鍵を疑似ランダム関数の出力として生成できる。
デバイスAおよびデバイスBに保存されているルート状態を参照すると、各デバイスが受信したルート鍵に基づいて、各デバイスで個別にルート状態を生成できる。デバイスAおよびデバイスBで個別にルート鍵をそれぞれの疑似ランダム関数に提供し、ルート状態をそれぞれの疑似ランダム関数からの出力として生成できる。
デバイスAおよびデバイスBのそれぞれは、各エポックのメッセージ鍵のシーケンスを生成するために用いることができるそれぞれの乱数ジェネレータを有することができる。第1および第2のメッセージ鍵の生成に関して、乱数ジェネレータを各デバイスで用いて、第1のメッセージ鍵および第2のメッセージ鍵を個別に生成することができる。デバイスAおよびデバイスBのそれぞれにおいて、それぞれの乱数ジェネレータは、第1の状態に初期化することができ、第1のリフレッシュ鍵は、乱数ジェネレータへの入力として提供され得る。第1のメッセージ鍵は、第1の状態で初期化された乱数ジェネレータによって、第1のリフレッシュ鍵に基づいて生成できる。第1のメッセージ鍵を、第1の状態で初期化された乱数ジェネレータへの入力として提供して、第2のメッセージ鍵を生成することができる。
あるいは、それぞれの乱数ジェネレータおよびそれぞれの擬似ランダム関数を用いて、各エポックのメッセージ鍵のシーケンスを生成することができる。各デバイスで、第1のメッセージ鍵を上記のように生成できる。第2のメッセージ鍵は、第1のメッセージ鍵に基づいて生成するのではなく、第1の状態を疑似ランダム関数への入力として提供し、第2の状態を疑似ランダム関数への出力として生成し、第2の状態で乱数ジェネレータを初期化し、第2の状態に初期化された乱数ジェネレータで第2のメッセージを生成することによって生成できる。
メッセージを交換する別の例示的な方法は、特定の順序で提示されていない以下の工程の1つ以上を含むことができ、この方法は本記載に含まれていない追加の工程を含むことができる。エンドツーエンド暗号化プロトコルを介して相互にデータを送信可能な2つの通信デバイス「デバイスA」および「デバイスB」を提供できる。第1の公開鍵および第1の秘密鍵を有する第1の非対称鍵ペアを含むエンドツーエンド暗号化を容易にすることができるデータ構造を提供できる。第1の公開鍵はデバイスAに保存でき、第1の秘密鍵はデバイスBに保存できる。デバイスAおよびデバイスBのそれぞれは、それぞれの疑似ランダムジェネレータを保存できる。
第1のエポック鍵は、第1の公開鍵に基づいてデバイスA上で生成することができ、デバイスAは、第2の秘密鍵および第2の公開鍵を有する第2の非対称鍵ペアを生成することもできる。第1のエポック鍵および第2の公開鍵は、デバイスAによって送信され、デバイスBによって受信され得る。第1のメッセージ鍵および第2のメッセージ鍵は、デバイスAおよびデバイスBのそれぞれで個別に生成され得る。鍵は、第1の公開鍵に基づくことができる。デバイスBでは、第1のメッセージ鍵は、第1の秘密鍵および第1のエポック鍵に基づくことができる。各デバイスで、第1のメッセージ鍵をそれぞれの疑似乱数ジェネレータへの入力として提供し、第2のメッセージ鍵を各疑似乱数ジェネレータの出力として生成できる。
デバイスAは、第1のメッセージを第1のメッセージ鍵で暗号化し、第2のメッセージを第2のメッセージ鍵で暗号化し、第1の暗号化されたメッセージおよび第2の暗号化されたメッセージを含む第1のエポックを送信することができる。デバイスBは、第1のエポックを受信し、第1の暗号化されたメッセージを第1のメッセージ鍵で復号し、第2の暗号化されたメッセージを第2のメッセージ鍵で復号できる。
デバイスBがデバイスAに応答し始めると、デバイスBはデバイスAによって以前に送信された第2の公開鍵に基づいて第2のエポック鍵を生成でき、デバイスBは第3の秘密鍵および第3の公開鍵を有する第3の非対称鍵ペアを生成できる。第2のエポック鍵および第3の公開鍵は、デバイスBによって送信され、デバイスAによって受信される。デバイスAおよびデバイスBは、第3のメッセージ鍵を個別に生成できる。デバイスBでは、第3のメッセージ鍵は第2の公開鍵に基づくことができる。デバイスAでは、第3のメッセージ鍵は第2の秘密鍵および第2のエポック鍵に基づくことができる。
デバイスBは、第3のメッセージを第3のメッセージ鍵で暗号化し、第3の暗号化されたメッセージを含む第2のエポックを送信できる。デバイスBは、第2のエポックを送信する前に、第1のエポックから第1のメッセージ鍵および第2のメッセージ鍵を削除できる。デバイスAは、第2のエポックを受信し、第3のメッセージ鍵を用いて第3の暗号化されたメッセージを復号できる。
複数のエポック(各エポックには1つ以上の暗号化されたメッセージが含まれる)を送信できる。エポックごとに、送信されるエポック内のすべての暗号化されたメッセージは、デバイスAまたはデバイスBのいずれかからのみ送信できる。デバイスAがすべての奇数番目のエポックを送信し、デバイスBがすべての偶数番目のエポックを送信するように、エポックはデバイスAおよびデバイスBのそれぞれから交互に送信できる。
例示的な方法の第1のメッセージを参照すると、第1のヘッダはデバイスAで生成でき、デバイスAは暗号化されたヘッダおよび第1の暗号化されたメッセージを含む第1の暗号文を生成でき、平文のヘッダを第1の暗号文に追加できる。デバイスAは、第1の暗号文と平文のヘッダを送信できる。デバイスBは、第1の暗号文と平文のヘッダを受信し、平文のヘッダに基づいて暗号文を認証できる。
デバイスAは、メッセージインデックスを生成でき、第1のヘッダにはメッセージインデックスを含めることができる。デバイスBは、メッセージインデックスに基づいて第nのメッセージ鍵を生成できる。
デバイスAおよびデバイスBのそれぞれにルート状態を提供できる。デバイスAおよびデバイスBのそれぞれにあるそれぞれの疑似乱数ジェネレータは、ルート状態に基づいて初期化できる。ルート状態に基づいてデバイスAおよびデバイスBのそれぞれで更新状態を生成でき、更新状態に基づいて疑似乱数ジェネレータを再初期化できる。
第1の共有鍵は、デバイスAおよびデバイスBのそれぞれで個別に生成できる。デバイスAでは、第1の公開鍵に基づいて第1の共有鍵を生成でき、デバイスBでは、第1の秘密鍵および第1のエポック鍵に基づいて第1の共有鍵を生成できる。リフレッシュ鍵および第1の状態のそれぞれは、共有鍵およびルート状態に基づいて、デバイスAおよびデバイスBのそれぞれで個別に生成できる。各デバイスで第1のメッセージ鍵を生成するには、疑似乱数ジェネレータを第1の状態に初期化し、第1のリフレッシュ鍵を初期化された疑似乱数ジェネレータへの入力として提供し、第1のメッセージ鍵を疑似乱数ジェネレータの出力として生成できる。
本発明の上記およびさらなる態様は、別の図面であっても同一の数字が同様の構造要素や特徴を示す添付の図面と併せて以下の説明を参照してさらに説明される。図面は必ずしも原寸に比例しておらず、代わりに本発明の原理を説明することに重点が置かれている。これらの図は、限定としてではなく、例としてのみ、本発明のデバイスの1つ以上の実装を示している。
本発明の態様に係る、第1のデバイスから第2のデバイスへとメッセージを送信するために用いることができる例示的な機能ブロック、データ構造、および方法工程を示すフロー図である。 本発明の態様に係る、メッセージ鍵のシーケンスを生成するための擬似乱数ジェネレータへの反復呼び出しを含む例示的な実装を示すフロー図である。 本発明の態様に係る、送信ラチェットに含めることができる例示的な機能ブロック、データ構造、および方法工程を概説するフロー図である。 本発明の態様に係る、受信ラチェットに含めることができる例示的な機能ブロック、データ構造、および方法工程を概説するフロー図である。 本発明の態様に係る、CKAの初期化を示すフロー図である。 本発明の態様に係る、非対称鍵ペアに基づく送信デバイスおよび受信デバイスでの共有鍵の生成を示すフロー図である。 本発明の態様に係る、後続のエポックラチェットの対称鍵を生成するための公開鍵の交換および秘密鍵の伝播の例を示すフロー図である。 本発明の態様に係る、送信デバイスの観点からの例示的なCKA機能ブロックの機能を示すフロー図である。 本発明の態様に係る、受信デバイスの観点からの例示的なCKA機能ブロックの機能を示すフロー図である。 本発明の態様に係る、PRGの初期化、シード、および進行を示すフロー図である。 本発明の態様に係る、PRGの初期化、シード、および進行を示すフロー図である。 本発明の態様に係る、PRGの初期化、シード、および進行を示すフロー図である。 本発明の態様に係る、PRGの初期化、シード、および進行を示すフロー図である。 本発明の態様に係る、メッセージグループ化メカニズムとしてのエポックの使用を示すフロー図である。 本発明の態様に係る、ヘッダを含む各メッセージを第1のデバイスから第2のデバイスへと送信するための例示的な機能ブロック、データ構造、および方法工程を示すフロー図である。 本発明の態様に係る、PRGおよびエポック内のメッセージをカウントするためのインデックスを初期化するために用いることができる例示的な機能ブロック、データ構造、および方法工程を示すフロー図である。 本発明の態様に係る、送信デバイスの観点から、ヘッダを含むメッセージを送信するための例示的な機能ブロック、データ構造、および方法工程を示すフロー図である。 本発明の態様に係る、受信デバイスの観点からのヘッダを含むメッセージを受信するための例示的な機能ブロック、データ構造、および方法工程を示すフロー図である。 本発明の態様に係る、ラチェットを実行するための例示的な機能ブロック、データ構造、および方法工程を示すフロー図である。 本発明の態様に係る、ラチェットを実行するための例示的な機能ブロック、データ構造、および方法工程を示すフロー図である。 本発明の態様に係る、メッセージ回復を示すフロー図である。 本発明の特定の態様を容易にするために用いることができる例示的なシステム環境を示す図である。 本発明の特定の態様を容易にするために用いることができる例示的なシステム環境を示す図である。 本発明の特定の態様を容易にするために用いることができる例示的なシステム環境を示す図である。
本明細書において、以下の頭字語を用いる。
CKA 連続鍵共有(Continuous Key Agreement)
Dec カプセル化解除(Decapsulation)
Enc カプセル化(Encapsulation)
FS 前方秘匿性(Forward Secrecy)
FS-AEAD 関連データを用いた前方秘匿性認証付き暗号化(Forward-Secure Authenticated Encryption with Associated Data)
KG 鍵ジェネレータ(Key Generator)
mKey メッセージ鍵(Message Key)
PRF-PRNG 疑似ランダム関数(Pseudo-Random Function)
PRG 疑似乱数ジェネレータ(Pseudo-Random Number Generator)
PRG(w) 状態wに初期化されたPRG (PRG initialized to state w)
QMP Qryptメッセージングプロトコル(Qrypt Messaging Protocol)
一般に、本明細書に提示される例示的なデバイス、システム、および方法は、Qryptメッセージングプロトコル(QMP)を介した安全でないチャネルを介した通信デバイス間の安全なエンドツーエンドのメッセージ転送を可能にすることができる。QMPは、即時復号、前方秘匿性、および漏洩後の安全性を提供する二重ラチェットのソフトウェア実装にすることができる。いくつかの例において、QMPを用いると、最新の正当なメッセージの前に1つ以上のメッセージが受信されていなくても、受信した正当なメッセージを迅速に復号できる。いくつかの例において、QMPはメッセージ損失の回復を促進することができ、これにより、メッセージが完全に失われた場合でも、当事者は通信を継続できる。通信デバイス状態に漏洩が生じた場合に以前のメッセージが漏洩しないように、セキュアメッセージングセッション中に前方秘匿性を維持できる。漏洩後の安全性は、セキュアメッセージングセッションを通して維持できるため、通信デバイス状態の暴露が終了すると、数回の通信ラウンド後に安全性を回復できる。
図1は、第1のデバイス(デバイスA)100のアリスから第2のデバイス(デバイスB)200のボブにメッセージを送信するために用いることができる例示的な機能ブロック、データ構造、および方法工程を概略的に示すフロー図である。デバイスA100には、メッセージ102(すなわち、平文、音声、映像、センサデータ、および他のフォーマット)、およびメッセージ102を送信のために暗号化することを要求する送信コマンド104が提供され得る。送信コマンド104は、デバイスA100にラチェットクエリ110を開始させることができる。メッセージ鍵をラチェットによってリフレッシュされるべきであるとラチェットクエリ110が判断した場合、デバイスAは、送信ラチェット120のアルゴリズムを開始することができ、次に、送信ラチェット120は、メッセージ102を暗号化するために用いられる次のメッセージ暗号化鍵170を生成することができる。メッセージ鍵をラチェットによってリフレッシュする必要がないとラチェットクエリ110が判断した場合、デバイスAは、次のメッセージ鍵170を生成するための擬似乱数ジェネレータ(PRG)150を開始することができる。そして、次のメッセージ鍵170およびメッセージ102は、暗号化アルゴリズム160への入力として提供され得る。暗号化アルゴリズム160は、メッセージ鍵170によって暗号化されたメッセージ102を含む暗号テキスト104を生成し得、暗号テキスト104は、デバイスB200に送信され得る。
デバイスB200は、暗号文204および暗号文204の到着によってトリガーされる受信コマンド206を受信することができる。QMPの目的は、安全でない通信チャネルを介したアリスとボブとの間の安全な通信を可能にすることであり、したがって、ボブによって受信された送信は、アリスによる送信と同一である場合もそうでない場合もある。ボブによって受信された暗号文204は、暗号文104が送信中にその完全性を保持している(例えば、攻撃によって変更されていない、または劣化していない)場合、アリスによって送信された暗号文104と同一である。
受信コマンド206は、デバイスB200にラチェットクエリ210を実行させることができる。同様に、デバイスA100の場合と同様に、デバイスB200上のメッセージ鍵をラチェットによってリフレッシュされるべきであるとラチェットクエリ210が判断した場合、デバイスB200は、受信ラチェット220のアルゴリズムを開始することができ、次に、受信ラチェット120は、暗号文204を復号するために用いられる次のメッセージ暗号化鍵270を生成することができる。メッセージ鍵をラチェットによってリフレッシュする必要がないとラチェットクエリ210が判断した場合、デバイスB200は、次のメッセージ鍵270を生成するための擬似乱数ジェネレータ(PRG)250を開始することができる。そして、次のメッセージ鍵270および暗号文204は、暗号化アルゴリズム260への入力として提供され得る。暗号化アルゴリズム260は、メッセージ鍵270によって復号されたメッセージ202を生成することができる。
デバイスA100およびデバイスB200のそれぞれは、以下のように、送信されたメッセージ102と同一であるメッセージ202の受信を容易にするために、それぞれのデバイス100、200で生成されたメッセージ鍵170、270が互換性を有するか、かつ/または同一であるように構成することができる。デバイスA100およびデバイスB200の両方のラチェットクエリ110、210は、メッセージ鍵をリフレッシュすべきであると両方のラチェットクエリ110、210が判断するか、またはメッセージ鍵をリフレッシュすべきではないと両方のラチェットクエリ110、210が判断するように調整することができる。メッセージ鍵をリフレッシュすべきであると両方のラチェットクエリ110、210が判断した場合、送信ラチェット120および受信ラチェットは、互換性を有するか、かつ/または同一のメッセージ鍵170、270を個別に生成することができる。同様に、メッセージ鍵をリフレッシュすべきではないと両方のラチェットクエリ110、210が判断した場合、それぞれのデバイス100、200上のPRG150、250は、互換性を有するか、かつ/または同一のメッセージ鍵170、270を個別に生成することができる。デバイスB200によって受信される暗号文204は、暗号文104が送信中に改ざんされていない、または劣化していない場合、デバイスA100によって送信される暗号文104と同一である。暗号化アルゴリズム160は、復号アルゴリズム260との互換性を有し得、その結果、メッセージ102およびメッセージ鍵170に基づいて暗号化アルゴリズム160によって生成された暗号文104は、メッセージ鍵270を用いて復号アルゴリズム260によって復号され、送信されたメッセージ102と同一のメッセージ202を生成することができる。
いくつかの例において、PRG150、250は、前回のメッセージ鍵に基づいて次のメッセージ鍵170、270を生成することができ、送信ラチェット120および受信ラチェット220は、PRG150、250によって生成された鍵のシーケンスをシードするための第1の鍵を生成するために用いられ、それによって二重ラチェットプロトコルを容易にすることができる。
図2は、メッセージ鍵71、72、73のシーケンスを生成するためのPRG50への反復呼び出しを含む例示的な実装を示す。いくつかの例において、セキュアセッションで通信する各デバイスは、各通信デバイスでメッセージ鍵の進行を個別に生成するための同一または互換性を有するPRGを有することができる。デバイスA100およびデバイスB200のそれぞれは、図2のPRG50によって示されるように機能するPRG150、250を有することができる。同一の初期値またはシード鍵71をシードすると、PRG50は、暗号化および復号用の鍵72、73の予測可能なセットを生成することができる。メッセージ鍵ラチェット工程は、メッセージ鍵をシーケンス中の1つのメッセージ鍵から次のメッセージ鍵へと進めるためのPRG50への呼び出しを含むことができる。メッセージ鍵の進行は、ハッシュ等の予測可能な一方向性関数を介してPRG50によって生成できる。メッセージを送受信するとき、送信デバイスおよび受信デバイス(例えば、図1に示すデバイスA100およびデバイスB200)は、各デバイスが同一のシード鍵71で開始するように、第1のメッセージで同期できる。それぞれのデバイスでPRG50を個別にインクリメントして、同一の後続の第nのメッセージ鍵73を生成する。
いくつかの例において、PRG50は、複数の状態52のうちの1つで操作することができ、シード鍵71でシードされた第1の状態のPRG50は、PRGが第1の状態とは異なる第2の状態にある場合、同一のシード鍵71によってシードされた同一のPRG50によって生成することができる第nのメッセージ鍵73とは異なる第nのメッセージ鍵73を生成することができる。すなわち、異なる状態52によって初期化される同一のシード鍵71によって供給される同一のPRG50は、互換性を有するメッセージ鍵を生成せず、同一のシード鍵71によって供給される同一の状態52内の同一のPRG50は、互換性を有するメッセージ鍵を確実に生成することができる。
いくつかの例において、PRGは、ストリーム暗号から構成可能であり、「入力」データが与えられた場合に、未知のまたは可変長の「鍵」データの出力を生成することができる。PRGは、将来にわたって継続的に実行されて保存用にシリアル化できる暗号化アルゴリズムのストリーム状態を容易にするために保存できる。いくつかの例において、特定のPRGは、セキュアメッセージング構築の開始時に決定することができ、再構成時に再構築(リセット)することができる。ある会話の構成と別の会話構成(つまり、セキュアメッセージングインスタンス内の任意の2人のユーザ間の会話とその送受信用のPRG)とは異なる場合がある。
いくつかの例において、メッセージ鍵ラチェットは、PRGを更新状態52に再初期化し、新しいシード鍵またはリフレッシュ鍵71を提供することによりリセットすることができる。新しいシード鍵の再初期化および提供は、二重ラチェットプロトコルにおける第2のラチェットまたはエポックラチェットとして機能することができる。
図3は、図1に示される送信ラチェット120等の送信ラチェットに含めることができる例示的な機能ブロック、データ構造、および方法工程を概説するフロー図である。図1、図3をまとめて参照すると、いくつかの例において、送信デバイス100は、前回のエポックからの第1の公開鍵122およびPRG状態151で開始することができる。送信ラチェット120は、更新されたPRG状態152、第1のメッセージ鍵171、第2の秘密鍵126および第2の公開鍵128を含む非対称鍵ペア、およびエポック鍵124を出力として提供し得る。PRG150は、送信ラチェット120によって更新状態152で初期化することができ、第1のメッセージ鍵171は、図2に関連して説明されるように、PRG150がメッセージ鍵のシーケンスを生成することができるシード鍵として用いることができる。
エポック鍵124および第2の公開鍵128は、受信デバイス200に送信することができる。第2の秘密鍵126は、デバイスA100が受信デバイスとなり、デバイスB200が送信デバイスになる後続のエポックにおける後続の受信ラチェット工程で用いるために送信デバイス100に保存することができる。
図4は、図1に示される受信ラチェット220等の受信ラチェットに含めることができる例示的な機能ブロック、データ構造、および方法工程を概説するフロー図である。図1、図3、および図4をまとめて参照すると、いくつかの例において、受信デバイス200は、送信デバイス100によって送信されるエポック鍵124であり得るエポック鍵224、および送信デバイス100から送信される第2の公開鍵128と同一であり得る第2の公開鍵228を受信することができる。エポック鍵124および第2の公開鍵128は、安全でない通信チャネルを介してアリスからボブに送信することができ、したがって、ボブによって受信されるエポック鍵224および第2の公開鍵228は、アリスによって送信された鍵124、128と同一である場合もそうでない場合もある。この例の目的のために、ボブによって受信されたエポック鍵224および第2の公開鍵224は、アリスによって送信されたエポック鍵124および第2の公開鍵128と同一であると想定される。受信デバイスであるデバイスB200は、前回のエポックからのPRG状態251をメモリに記憶することができ、当該状態は、送信デバイス100上の前回のエポックからのPRG状態151と同一であり得る。
デバイスB200において、受信ラチェット220は、送信デバイス100上で生成された、更新されたPRG状態152と同一であり得る更新されたPRG状態252、ならびに送信デバイス100上で生成された第1のメッセージ鍵171と同一であるか、かつ/または互換性を有し得る第1のメッセージ鍵271を出力として生成し得る。PRG250は、受信ラチェット220によって更新状態252で初期化することができ、第1のメッセージ鍵271は、図2に関連して説明したように、受信デバイス200のPRG250がメッセージ鍵のシーケンスを生成することができるシード鍵として用いることができる。
各デバイス100、200は、連続鍵共有(CKA)機能ブロック190、290を含むことができる。各CKA190、290は、2つの主要な機能、すなわち鍵ペア126、128を生成する方法および共有または共有鍵(カプセル化/カプセル化解除)124、224を算出する方法を提供することができる共有アルゴリズムを実行することができる。図3を参照すると、送信デバイスは、第1の公開鍵122で開始することができ、当該公開鍵は、対称鍵130およびエポック鍵124を出力として生成し得るカプセル化機能132への入力として提供され得る。図4を参照すると、受信デバイス上のエポック鍵224は、送信デバイス上で生成されたエポック鍵124と同一であり得、エポック鍵124は、エポック鍵224が、第1の公開鍵122に関連付けられた第1の秘密鍵232と共にカプセル化解除機能234に入力されると、受信デバイスで生成された対称鍵230は、送信デバイスで生成された対称鍵130と同一であるか、かつ/または互換性を有し得るように生成することができる。言い換えれば、第1の非対称鍵ペア122、232を用いて、各デバイス上に対称鍵130、230を生成することができる。
図5は、CKAの初期化を示すフロー図である。図5に示されるように、通信セッションの開始時に、第1の非対称鍵ペアは、サーバ300(集中鍵機関として機能することができる)から提供することができ、第1の公開鍵122は、送信デバイスA100によって受信され、第1の秘密鍵232は、受信デバイスB200によって受信される。サーバ300からデバイス100、200への通信は、安全でないネットワークを介して、または安全性を強化するために、安全なネットワークを介して行うことができる。各デバイス100、200が第1の非対称鍵ペアで初期化されると、デバイス間の通信は、安全でないネットワークを介して行うことができる。
図6は、非対称鍵ペア122、232に基づく各デバイス100、200上での共有鍵130、230の生成を示すフロー図である。図6は、第1の公開鍵122が送信デバイス100によって用いられて共有鍵130および追加の公開鍵(エポック鍵)124を生成し、追加の公開鍵224が受信デバイス200によって受信され、追加の公開鍵224が第1の秘密鍵232と組み合わされて共有鍵230を生成することを示す。エポック鍵124は、安全でないネットワークを介して送信される可能性がある。
図7は、後続のエポックラチェット用の対称鍵を生成するための公開鍵の交換と秘密鍵の伝播の例を示すフロー図である。この例において、アリスが第1の送信者であり、デバイスAから奇数番目のエポックごとにメッセージを送信し、ボブが第1の受信者であり、奇数番目のエポックごとにメッセージを受信し、偶数番目のエポックごとにメッセージを送信する。デバイスAは、第1の送信デバイス100として開始する。デバイスAは、初期化工程によって提供された第1の公開鍵122を提供されるか、または前回のエポックでデバイスBから提供された第1の公開鍵122を保存していてもよい。デバイスAは、カプセル化機能132を用いて、公開鍵すなわちエポック鍵124および共有秘密鍵すなわち対称鍵130を生成することができる。デバイスAは、鍵生成機能136を用いて、非対称鍵ペア126、128を生成することができる。第2の公開鍵128およびエポック鍵124は、デバイスBに送信することができる。デバイスBは、第1の受信デバイス200として開始する。デバイスBは、第1の送信デバイス100として機能するデバイスAから送信されるエポック鍵124であり得る公開鍵すなわちエポック鍵224を受信することができる。デバイスBは、初期化工程で提供されるか、または前回のエポックから保存された秘密鍵232を有することができる。エポック鍵224および秘密鍵232は、カプセル化解除機能234において組み合わされて、第1の送信デバイス100であるところのデバイスAによって生成された第1の対称鍵130と同一であるか、かつ/または互換性を有し得る共有秘密鍵すなわち対称鍵230を生成することができる。
第1のエポックの間、第1の送信デバイス100であるところのデバイスAは、第1の対称鍵130に基づいて生成されたメッセージ鍵で暗号化されたメッセージを送信でき、第1の受信デバイス200であるところのデバイスBは、第1の対称鍵230に基づいて生成されたメッセージ鍵で受信した暗号文を復号できる。
第2のエポックを開始するために、ボブはデバイスBからメッセージを送信し始めることができ、その時点でデバイスBは第1の受信デバイス200から移行して第2の送信デバイス100'になることができる。第2の送信デバイス100'として機能するデバイスBは、(アリスが前回のエポックで送信していたときに)デバイスA100から送信された第2の公開鍵128であり得る第2の公開鍵122'をカプセル化機能132'に供給することができる。当該カプセル化機能は、第1の送信デバイス100として機能していたときにデバイスAによって用いられたカプセル化機能132と同一または相当するものである。カプセル化機能132'は、第2のエポック鍵124'および第2の共有秘密鍵すなわち対称鍵130'を生成することができる。第2の送信デバイス100'として機能するデバイスBは、第3の非対称鍵ペア126'、128'を生成する鍵生成機能136'を有することができる。第2のエポック鍵124'および第3の公開鍵128'は、第2の送信デバイス100'として機能するデバイスBから送信することができる。
アリスがボブからのメッセージの受信を開始すると、デバイスAは、第1の送信デバイス100から第2の受信デバイス200'に移行することができる。第2の受信デバイス200'として、デバイスAは、第2の送信デバイス100'として機能するデバイスBから送信された第2のエポック鍵124'であり得る第2のエポック鍵224'を受信することができる。第2の受信デバイス200'として機能するデバイスAは、第2のエポック鍵224'を、第1の送信デバイス100として機能していたときにデバイスAによって生成された第2の秘密鍵126であり得る秘密鍵232'と組み合わせることができる。第2のエポック鍵224'および秘密鍵232'は、カプセル化解除機能234'で組み合わせることができる。当該カプセル化解除機能は、第1の受信デバイス200として機能するデバイスBによって用いられるカプセル化解除機能234と同一または相当し得るものである。カプセル化解除機能234'は、第2の送信デバイス100'として機能するデバイスBによって生成された第2の共有秘密130'と同一であるか、かつ/または互換性を有し得る第2の共有秘密230'を出力することができる。第3の公開鍵128'は、デバイスAが次のエポックで第3の送信デバイスになるときに用いるための第2の受信デバイス200'として機能するデバイスAによって受信することができる。
図8は、送信デバイス100の観点からのCKA機能ブロック121の例示的な図である。CKA機能ブロック121は、カプセル化機能132および鍵生成機能136を含むことができる。送信デバイス100は、前回のエポックから、受信デバイスの秘密鍵に関連付けられた公開鍵122(すなわち、デバイスBの公開鍵)を提供されるか、または保存することができる。公開鍵122が手元にある場合、共有鍵(すなわち、対称鍵)130は、受信者の公開鍵122をカプセル化機能132に渡すことによって生成することができる。カプセル化機能132は、送信デバイス100に関連付けられた追加の公開鍵(すなわち、エポック鍵)124を生成することもできる。第2の公開鍵128および第2の秘密鍵126を含む新しい鍵ペアは、鍵生成機能136によって生成することができる。追加の公開鍵(エポック鍵)124とペアを形成するために秘密鍵を生成する必要はない。というのも、追加の公開鍵124は、現在のエポックにおいて受信デバイスで対称鍵を生成するためにのみ用いることができ、新しく生成された鍵ペア126、128は、送信デバイスが次のエポックで受信デバイスになるときに用いることができるからである。
新しい鍵ペア126、128および追加の公開鍵(エポック鍵)124が生成されると、それらはCKAメッセージT138にパッケージ化することができる。公開鍵124、128は、暗号化された暗号文の一部としてのメッセージ内または暗号化されていないヘッダ内のいずれかにカプセル化された状態で送信デバイス100から受信デバイス200に渡すことができる(例えば、図8を参照)。新しい秘密鍵126は、送信デバイス100に保存して、送信デバイス100が現在の受信デバイスからメッセージを受信するときに用いることができる。
図9は、受信デバイス200の観点からの例示的なCKA機能ブロック221の図である。図7および図8をまとめて参照すると、受信デバイス200は、前回のエポックから、受信デバイスの第1の公開鍵122に関連付けられた秘密鍵232を提供されるか、または保存することができる。受信デバイス200は、送信デバイス100によって送信されたCKAメッセージT138であり得るCKAメッセージT238を受信することができる。CKAメッセージ238は、送信デバイス100によって送信される追加の公開鍵124と同一であり得る追加の公開鍵224、および送信デバイス100に保存された秘密鍵126に関連付けられた第2の公開鍵228を含むことができる。送信デバイス100上のカプセル化機能132によって生成された秘密鍵232および追加の公開鍵224は両方とも、受信デバイス200上のカプセル化解除機能234への入力として提供でき、カプセル化解除機能234は、共有鍵230を出力として生成できる。受信デバイス200上で生成された共有鍵230は、送信デバイス100上で生成された共有鍵130と同一であるか、かつ/または互換性を有し得る。追加の公開鍵228は、受信デバイス200に保存して、受信デバイスが送信デバイスになる次のエポックで用いることができる。
いくつかの例において、CKAは、ディフィー・ヘルマンアルゴリズム等の非対称アルゴリズムを用いて、初期共有秘密鍵すなわち対称鍵を確立できる。CKAは設定可能であり、特定の実装例としては、RSA、EC25519、または格子ベースやコードベース等のポスト量子暗号の安全なアルゴリズムがある。この設定可能なパラメータは、セキュアメッセージングセッションの構築の開始時に決定できるため、再構築または再設定時にリセットできる。ある会話の一構成は、別の会話構成とは異なる場合がある。鍵共有のための非対称および/または対称アルゴリズムの利用を含む、CKAの多数の特定の実装が検討されている。
図3および図4を再び参照すると、送信デバイスおよび受信デバイスのそれぞれで対称鍵130、230が生成されると、CKA190、290は暗号鍵共有(すなわち、共有鍵または対称鍵)130、230を擬似ランダム関数(PRF-PRNG)192、292への入力として提供し、PRF-PRNG192、292の結果の出力をPRG150、250への入力として提供して予測可能なメッセージ鍵生成をリフレッシュできる。各PRF-PRNG192、292は、更新機能140、240および初期化機能142、242を有することができる。更新機能140、240への入力は、対称鍵130、230および前回の状態151、251を含んで、更新状態152、252およびシード鍵144、244を出力として生成することができる。初期化機能142、242は、PRG150、250を更新状態152、252に初期化することができる。PRG150、250は、シード鍵144、244を提供されて、図2に関連して説明したように、予測可能な鍵(つまり、メッセージ鍵171、271)を生成することができ、当該鍵は、メッセージの暗号化/復号に用いることができる。したがって、攻撃者がPRG150、250に漏洩を生じさせても、CKAを介した後続のリフレッシュ(エポックラチェットの進行)によって安全性を回復できる。
各PRF-PRNG192、292は、CKA鍵130、230が攻撃者に知られている場合に、追加の保護層を提供できる。いくつかの例において、PRF-PRNG192、292は、2つのランダムな入力を受け入れることができ、したがって、共有鍵の1つまたはPRG状態のいずれかの漏洩に対して回復を行うことができる。いくつかの例において、2つの入力は、CKA(共有秘密鍵すなわち対称鍵)130、230によって生成された鍵、およびPRG151、251の前回の状態である。したがって、CKA鍵130、230が漏洩した場合、PRF-PRNG192、292を介して更新されると、安全性を復元できる。同様に、PRG150、250の状態が漏洩した場合、PRF-PRNG192、292を介して更新されると、安全性を回復できる。ただし、CKA鍵130、230およびPRG状態152、252の両方が漏洩した場合、PRF-PRNG192、292を介した更新では安全性を回復できない可能性がある。
いくつかの例において、CKAを各エポクラチェットで用いて、意図された通信デバイスでは予測可能であるが意図しない受信者では予測が難しい方法で、新しい共有秘密を生成できる。新しい共有秘密は、PRGによるメッセージ鍵の生成をリフレッシュするために用いられる。比較的計算量の少ないPRGで各メッセージ鍵を生成し、比較的計算量の多いCKAアルゴリズムでPRGをリフレッシュすることにより、ここで紹介するいくつかの例は、計算リソースを効率的に用いて堅牢なエンドツーエンド暗号化を提供できる。
図10、図11、図12、および図13は、PRG50の初期化、シード、および進行を示している。いくつかの例において、PRG50の状態は、その前回の状態に基づいて更新することができる。会話を開始するとき、対称初期化鍵54は、図10に示されるように、サーバ300から各通信デバイスによって検索できる。初期化鍵54は、初期化機能46への入力として提供され得る。初期化機能46は、ルート状態51を出力として提供し得る。図11に示すように、ルート状態51および対称鍵30は、更新機能40への入力として提供され得、更新機能40は、第1の状態52およびシード鍵44を生成することができる。対称鍵30は、本明細書に記載のCKAアルゴリズムによって生成された対称鍵130、230であり得る。更新機能40は、本明細書で説明されるように、PRF-PRNG140、240の更新機能であり得る。PRG50は、第1の状態52で操作して、会話においてメッセージ鍵71、73の第1のシーケンスを生成することができる。その後、現在のPRG状態および現在の対称鍵は、図12に示されるように、次のエポックのための状態およびシード鍵を生成するために、更新機能40への入力として提供され得る。
あるいは、図13に示すように、第1のメッセージ鍵71を生成した後、エポックでメッセージ鍵72'、73'を生成するために、現在のPRG状態および現在のPRG状態のみを更新機能40への入力として提供して、更新状態52'、52''、52nを生成し、PRGは更新状態52'、52''で繰り返し初期化され、各状態で新しいメッセージ鍵72'、73'を生成できる。第1の鍵71は、図11および12に示される例に関連して説明されるように、更新機能40にルート状態51および対称鍵30を提供して第1の状態52およびシード鍵44を生成し、第1の状態52でPRGを初期化し、シード鍵44をPRGに提供することによって、第1の鍵71を生成できる。第1の鍵71の生成後、図12に示すように後続の鍵を生成するのではなく、更新された対称鍵30を提供せずに第1の状態52を更新機能40に供給することができ、更新機能40は、第1の状態52に基づいて第1の更新状態52'を生成することができ、PRG50は更新状態52'で初期化でき、更新状態52'のPRG50'は、第2のメッセージ鍵72'を生成することができる。その後、更新機能40に現在のPRG状態52'を提供して、更新状態52''を生成することができ、PRGが更新状態で再初期化されるたびに、PRGは新しいメッセージ鍵72'、73'を出力することができる。新しいエポックの開始時に、前回のエポックからの最終PRG状態52nおよびCKAからの新しい対称鍵を入力51、30として更新機能40に提供して、リフレッシュ鍵44および新しい状態52を生成することができる。次に、図12、図13、またはそれらの組み合わせに示すように、新しいエポックにおけるメッセージ鍵を生成できる。
したがって、送信デバイスおよび受信デバイスの両方が同一の状態52のPRG50で開始することができ、したがって、各デバイスが同一のシード鍵44をそれぞれのPRG50に供給する場合、各デバイスはメッセージ鍵71、73の同一のシーケンスを生成することができる。エポックラチェットの増分ごとに、PRGがその前回の状態に基づいて更新される場合、PRG状態の進行は、意図された通信デバイスのそれぞれによって予測可能であり、それにより、メッセージ損失検索を容易にする。
図14は、エポックラチェットをいつ実行できるかを示すグループ化メカニズムとしてのエポックの使用を示している。いくつかの例において、エポックは、エポックで送信されるすべてのメッセージが一のデバイスから送信され、次のエポックでは、すべてのメッセージが別のデバイスによって送信されるように、デバイスAからデバイスBへの単一方向での一連のデータ送信、ブロック、またはメッセージとして定義できる。新しいエポックが新しいCKAセッションをエポック鍵で初期化する前に、個々のエポックはCKAセッションを表すことができる。エポック内では、各メッセージを新しいメッセージ鍵で暗号化できる。エポックラチェットを完了するかどうかの判断は、現在のエポックが変更されたばかりかどうか、つまり、アリスが受信を完了して現在ボブに送信しているのか、アリスが送信を完了して現在ボブから受信しているのかを分析することによって行うことができる。いくつかの例において、エポックラチェット工程中に、シード鍵およびPRGの状態をリフレッシュまたは更新して、メッセージ鍵の新しいシーケンスを生成することができる。したがって、攻撃者がエポックセッションを漏洩させた場合、デバイスが次のエポックに入ると安全性が回復する。これにより、エポックラチェット工程は、漏洩後の安全性を提供できる。
いくつかの例において、エポック内のメッセージは、当該エポック内のメッセージの進行を追跡するために、メッセージカウンタインデックスまたは他の指標によって計数することができる。メッセージカウンタインデックスまたは指標は、新しいエポックごとにリセットできる。
いくつかの例には、メッセージを暗号化および復号するための、関連データを用いた前方秘匿性認証付き暗号化(FS-AEAD)アルゴリズムが含まれる。FS-AEADアルゴリズムは、メッセージごとに一意の鍵を用い、ヘッダを用いて各メッセージの整合性を検証できる。FS-AEADは、文字列、ファイル、または音声会話パケットを含むストリームを入力として受け入れ、出力として、復号または暗号化された形式のストリームを生成できるメッセージ暗号化および復号メカニズムにすることができる。FS-AEAD暗号は、機密性、整合性、および信頼性を同時に提供できる。
いくつかの例において、FS-AEADはブロック暗号であり、暗号化/復号は定義されたサイズのパケットで供給される。FS-AEADは、例えばCCM(カウンタモードおよびCBC-MACモードの組み合わせ)を用いた高度暗号化標準(AES)含む対称アルゴリズムに基づくことができる。CCMは、カウンタ(CTR)および暗号文ブロック連鎖(CBC)からなる2つのモードを1つの暗号化プリミティブに組み合わせることにより、暗号化と認証の両方を組み合わせることができる。CTRモードでは、インクリメントカウンタを暗号化してブロックのシーケンスを生成し、それを平文でXORに供して暗号文を生成できる。CBCモードでは、暗号化する前に、平文を前回の暗号文でXORに供することができる。一部の実装では、第1の平文の前に暗号文がないため、代わりにランダムに選択された初期化ベクトル(IV)を用いることができる。例えば、CBC-MACメッセージは標準のAESで暗号化してから、最後のブロックを固定長のメッセージ認証コード(MAC)として用いることができる。CTRモードを用いて、実際の暗号文を提供できる。このような実装では、CBC-MACは認証を提供でき(1バイトの変更でも認証失敗となり得る)、CTRは平文のメッセージの実際の暗号化/復号を提供できる。
いくつかの例において、FS-AEADアルゴリズムは、検証可能な関連データを暗号化されたメッセージに追加して、送信デバイスで暗号文を生成できる。次に、意図された受信デバイスで、入力として暗号文を受信するFS-AEADアルゴリズムは関連データを用いることができる。暗号化されたメッセージが正しく復号され、改ざんされていないことを確認する。これにより、FS-AEADは、暗号化されたメッセージやヘッダの改ざんを検出できる。
図15は、メッセージ102をアリス(デバイスA)100からボブ(デバイスB)200に送信するために実行できる例示的な方法工程を概略的に示すフロー図であり、各メッセージ102はヘッダ180を含む。デバイスA100は、エポック内で生成された鍵のシーケンスにおけるメッセージ鍵170の位置を示すメッセージインデックス182または他の指標、およびデバイス100、エポック、メッセージ102、会話等に関連する他のデータ184を生成することができる。
関連データ184は、エポックカウンタ、前回のメッセージおよび/またはやり取りに関する情報、およびメッセージングセッションに関連する他の変数を含むがこれらに限定されない1つ以上のフィールドから構成することができる。これらのフィールドは、ヘッダ構造180に追加され、平文のメッセージ102と共に送信デバイス100上のFS-AEAD160への入力として提供され得、それにより、送信デバイス100は、ヘッダ180および平文のメッセージ102の両方を表す暗号文104をFS-AEAD160への出力として生成し得る。この暗号文104は、平文181のヘッダとともに、送信デバイス100から送信され、意図された受信デバイス200によって受信され得る。デバイス200は、受信した暗号文204および受信した平文のヘッダ281をそのFS-AEAD260に提供することができる。平文のヘッダ281、ならびにヘッダ180および平文のメッセージ102を表す暗号文204の両方があれば、受信デバイス200は、FS-AEADアルゴリズム260を利用して、暗号文204および/または平文281のヘッダが改ざんされているかどうかを検出することができる。復号された暗号文204が対応する平文のヘッダ281と一致しない場合、受信デバイス上のFS-AEADアルゴリズム260は不一致の表示を提供でき、デバイス200は暗号文204が漏洩したか、または復号に失敗したという表示を提供することにより応答できる。
図16は、PRGおよびエポック内のメッセージをカウントするためのインデックスを初期化するために用いることができる機能ブロック、データ構造、およびメソッド工程の例を示すフロー図である。会話を開始すると、対称初期化鍵54は、サーバ300からデバイスA100およびデバイスB200に送信され得る。各デバイス100、200によって受信されたそれぞれの初期化鍵154、254は、それぞれの初期化機能146、246への入力として提供されて、各デバイス100、200でルート状態151、251を生成することができる。メッセージカウンタすなわちメッセージインデックス281、282は、会話またはエポックの開始に対応するように、各デバイス100、200で初期化することができる。
図17は、送信デバイス100によってヘッダを含むメッセージを送信するための例示的な機能ブロック、データ構造、および方法工程を示すフロー図である。送信時に、デバイスA100は、暗号化して関連するデータ構造184aとともに送信する平文のメッセージm102を選択することができる。この工程で、メッセージカウンタi182を1つインクリメントすることができる。PRGは、入力として現在のストリーム暗号状態wを受信して、新しいAEAD鍵K、メッセージ鍵171、およびwを置き換える新しいストリーム暗号状態w'152を生成することができる。インデックスI182は、関連するデータa184と共にヘッダh180に追加することができる。メッセージm102は、新しく生成されたメッセージ鍵K171を用いて暗号化され、暗号化されていないヘッダh181が付加されて暗号文104を生成することができる。
図18は、受信デバイス200によってヘッダを含むメッセージを受信するための例示的な機能ブロック、データ構造、および方法工程を示すフロー図である。受信時に、受信デバイス200として機能するデバイスBは、暗号テキストc204および入力としてのヘッダh281(平文)を受け入れることができる。同時に、デバイスB200は、ストリーム暗号状態wを用いて、新しいAEAD鍵K271を生成し、新しいストリーム暗号状態w'252を確立することができる。暗号文c204は、鍵K271およびヘッダh281情報を用いて復号され、メッセージm202を回復することができる。
ヘッダ281は、暗号文204が改ざんされていないことを確認するために平文として送信することができ、ヘッダ180(図15を参照)は、認証された暗号化操作160中に暗号文104に元々紐づけられている場合があり、ヘッダ180は、平文のメッセージ102と共に渡されて、一の暗号文出力104を生成している場合もある。あるいは、メッセージ102だけを認証された暗号化160操作に渡し、暗号文出力102およびタグの両方を生成して、暗号文202が改ざんされていないことを確認するために受信デバイス200に送信することができる。
図19は、システムの例示的な機能ブロック、データ構造、および方法工程を示すフロー図であり、アリスのデバイスであるところのデバイスA100は、エポックの開始時に送信コマンド104を受信すると、送信ラチェット120を実行することができ、ボブのデバイスであるところのデバイスB200は、エポックの開始時に暗号文204を受信すると、受信ラチェットを実行することができる。図19に示すフロー図は、図1に関連して説明したプロセスに従うことができる。QMPでは、個々のラチェット工程を「必要に応じて」ベースに制限できる。つまり、鍵は必要になるまで生成されない。これにより、一時的または永続的なデバイスの漏洩が発生した場合に、鍵に関する情報の早期保存と漏洩を防ぐことができる。図19に示すような必要に応じた鍵の生成は、図20に示すような、不要な場合でも独立したラチェットを1つの工程に結びつける実装とは対照的である。
図20は、図1および図19に関連して説明されたものの代替として、送信ラチェットおよび受信ラチェットを実行するための例示的な機能ブロック、データ構造、および方法工程を示すフロー図であり、ボブのデバイスであるところのデバイスB200は、エポックの開始時に暗号文204を受信すると、受信ラチェット220と送信ラチェット120'の両方を実行することができる。受信ラチェット220は、暗号文204を復号するためのメッセージ鍵170を生成することができ、送信ラチェット120'は、デバイスBがアリスに送信を行う次のエポックでメッセージを暗号化するために、現在のエポックの終わりにPRG150'をリフレッシュするためのリフレッシュ鍵144'を生成することができる。送信ラチェット120'は、送信デバイス用のCKA190'に基づいて対称鍵130'を確立することができる。対称鍵130'をPRF-PRNG192'に提供して、リフレッシュ鍵144'を生成することができる。PRG150'は、リフレッシュ鍵144'で初期化できる。
図21は、メッセージ損失の回復を示すフロー図である。いくつかの例において、エポック内の各メッセージは、メッセージが順不同で受信されたり完全に失われたりした場合でも、受信デバイスがメッセージ鍵を正しく計算するために用いることができるメッセージインデックス付きのヘッダを含むことができる。正しいエポックの個々のメッセージ鍵を計算して、メッセージを復号し、ヘッダが変更されていないことを確認できる。暗号文3を含むペイロードには、3に設定されたメッセージインデックスiおよび関連データを含めることもできる。デバイスBは、メッセージを正しく順序付けて、メッセージ鍵ジェネレータを正しい復号鍵に進め、メッセージを迅速に復号できる。
図22A、図22B、および図22Cは、各通信デバイスを初期化するために、および/または各通信デバイス間の通信を容易にするために用いることができる例示的なシステム環境の図である。本明細書で説明するように、いくつかの例において、通信デバイス100、200は、互いに、およびサーバ300と通信することができる。サーバ300は、鍵および/またはデータをデバイス100、200に提供して、初期鍵共有を確立したり、かつ/またはデバイス100、200間の鍵共有を維持したりすることができる。
各通信デバイス100、200は、ネットワークを介してメッセージを送受信することができる電子デバイスであり得る。通信デバイス100、200の例は、モバイルデバイス、スマートフォン、汎用コンピュータ、タブレットコンピュータ、ラップトップコンピュータ、電話、PSTNランドライン、スマートウェアラブルデバイス、音声コマンドデバイス、他のモバイルコンピューティングデバイス、センサまたは監視デバイス、あるいはまたはネットワークを介してデータを送受信するように適合された他のデバイスを含むことができる。
各通信デバイス100、200は、本明細書に記載されるかそうでなければ当業者に知られているように、鍵を生成し、状態を生成し、暗号化、および復号するためのプロセッサ、記憶媒体、および/または追加の電子機器を含むことができる。本明細書に記載の機能ブロック、機能、データ構造、およびアルゴリズムは、当業者によって理解されるように、ハードウェアおよび/またはソフトウェアで実装することができる。各通信デバイス100、200は、プロセッサによって実行されると、本明細書に記載の方法、機能、およびアルゴリズムを実行する命令を備えたコンピュータ可読媒体を含むことができる。メッセージは、各通信デバイス100、200で生成されるか、かつ/または各デバイス100、200に提供されることができる。各通信デバイス100、200は、メッセージを入力するためのユーザインターフェース、外部デバイスからメッセージを受信するためのポート、センサ、またはその他のメッセージジェネレーターを含むか、および/またはこれらと通信することができる。
サーバ300は、暗号化鍵を生成および/または受信し、ネットワークを介して鍵を送信することができる電子デバイスであり得る。サーバ300は、鍵および/または状態を生成および/または受信するためのプロセッサ、記憶媒体、および/または追加の電子機器を含むことができる。サーバ300は、鍵を送信するための送信機を含むことができる。サーバ300は、サーバ300を介したデバイス100、200間の通信を容易にするため、かつ/または各デバイス100、200からデータを受信するための送受信機を含むことができる。
図22Aに示されるように、個々のデバイス100、200からサーバ300への通信は、第1のネットワーク400を介して送信され得、デバイス100、200間の通信は、第2のネットワーク500を介して送信され得る。第1のネットワーク400上の一部またはすべての通信チャネルが第2のネットワーク500上の一部またはすべての通信チャネルから分離されるように第1のネットワークと第2のネットワークとを分離させることができる。いくつかの例において、第1のネットワーク400は安全なネットワークであり得、第2のネットワーク500は、安全でないネットワークであり得、初期の鍵共有(例えば、図5、図10、図13、および図16を参照)は、1つ以上の安全なチャネルを介して、サーバ300から第1のネットワーク400を介して提供することができ、デバイス100、200間のその後の送信は、第2のネットワーク500内の1つ以上の安全でないチャネルを介して発生し得る。
図22Bに示されるように、図22Aに示されるシステムの代替として、サーバ300およびデバイス100、200は、共通ネットワーク600を介して互いに通信することができる。共通ネットワーク600は、安全でないネットワークであり得、初期の鍵共有を含めて、すべての送信は、共通ネットワーク600を介して発生し得る。
図22Cに示されるように、図22Aおよび22Bに示されるシステムの代替として、通信デバイス100、200は、サーバへの通信リンクがない場合、ネットワーク600を介して通信することができる。いくつかの例において、サーバによってネットワーク上で初期鍵共有を配布する代わりに(例えば、図5、図10、図13、および図16を参照)、初期鍵共有を各デバイスに事前に保存でき、初期鍵共有は、第1のデバイス100上で生成され、第2のデバイス200、またはそれらの何らかの組み合わせに送信される。例えば、各デバイスは、PRGを初期化するための初期状態またはルート鍵を保存することができ、第1の受信デバイスとして機能するデバイスB200は、鍵生成機能を用いて第1の非対称鍵ペアを生成し、第1の非対称鍵ペアの公開鍵をデバイスAへ送信して、会話を初期化し、受信の準備ができていることを示すことができる。
本明細書に含まれる説明は、本発明の実施形態の例であり、本発明の範囲を限定することを決して意図するものではない。本明細書に記載されるように、本発明は、本明細書に記載される機能を実行するための代替ソフトウェアモジュール、代替データ構造、代替鍵共有アルゴリズム、代替鍵生成アルゴリズム等を含む、本明細書に記載されるシステム、方法、およびデバイスの多くの変更および修正が意図される。これらの修正は本発明に関する当業者には明らかであり、以下の特許請求の範囲内にあることが意図されている。

Claims (19)

  1. デバイス間でメッセージを交換する方法であって、
    第1の通信デバイスを準備する工程と、
    第2の通信デバイスを準備する工程と、
    第1の公開鍵および第1の秘密鍵を含む第1の非対称鍵ペアを準備する工程と、
    ルート状態を提供する工程と、
    前記第1の公開鍵を前記第1のデバイスに保存する工程と、
    前記第1の秘密鍵を前記第2のデバイスに保存する工程と、
    前記ルート状態を前記第1のデバイスおよび前記第2のデバイスに保存する工程と、
    前記第1のデバイスにおいて、第1のエポック(epoch)鍵ならびに第2の秘密鍵および第2の公開鍵を含む第2の非対称鍵ペアを生成する工程であって、
    前記第1のエポック鍵は、少なくとも部分的に前記第1の公開鍵に基づいて生成される工程と、
    前記第1のデバイスから前記第1のエポック鍵および前記第2の公開鍵を送信する工程と、
    前記第2のデバイスが前記第1のエポック鍵および前記第2の公開鍵を受信する工程と、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて個別に第1のリフレッシュ鍵を生成する工程であって、
    前記第1のリフレッシュ鍵は、前記第1のデバイスにおいて少なくとも部分的に前記第1の公開鍵および前記ルート状態に基づいて生成され、
    前記第1のリフレッシュ鍵は、前記第1のエポック鍵に対応する秘密鍵を必要とすることなく前記第1のデバイスにおいて生成され、
    前記第1のリフレッシュ鍵は、前記第2のデバイスにおいて少なくとも部分的に前記第1の秘密鍵、前記第1のエポック鍵、および前記ルート状態に基づいて生成される工程と、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて個別に第1の状態を生成する工程であって、
    前記第1の状態は、前記第1のデバイスにおいて少なくとも部分的に前記第1の公開鍵および前記ルート状態に基づいて生成され、
    前記第1の状態は、前記第1のエポック鍵に対応する秘密鍵を必要とすることなく前記第1のデバイスにおいて生成され、
    前記第1の状態は、前記第2のデバイスにおいて少なくとも部分的に前記第1の秘密鍵、前記第1のエポック鍵、および前記ルート状態に基づいて生成される工程と、
    前記第1のデバイスおよび前記第2のデバイスにおいて個別に第1のメッセージ鍵を生成する工程であって、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて、前記第1のメッセージ鍵は、少なくとも部分的に前記第1の状態および前記第1のリフレッシュ鍵に基づいて生成される工程と、
    前記第1のデバイスにおいて、第1のメッセージを前記第1のメッセージ鍵で暗号化する工程と、
    前記第2のデバイスが前記暗号化された第1のメッセージを受信する工程と、
    前記第2のデバイスにおいて、暗号化された前記第1のメッセージを前記第1のメッセージ鍵で復号する工程とを備える方法。
  2. 前記第1のデバイスおよび前記第2のデバイスにおいて個別に第2のメッセージ鍵を生成する工程であって、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて、前記第2のメッセージ鍵は、少なくとも部分的に前記第1の状態および前記第1のメッセージ鍵に基づいて生成される工程と、
    前記第1のデバイスにおいて、第2のメッセージを前記第2のメッセージ鍵で暗号化する工程と、
    前記第1のデバイスから前記暗号化された第2のメッセージを送信する工程と、
    前記第2のデバイスが前記暗号化された第2のメッセージを受信する工程と、
    前記第2のデバイスにおいて、暗号化された前記第2のメッセージを前記第2のメッセージ鍵で復号する工程とをさらに備える、請求項1に記載の方法。
  3. 前記第2のデバイスにおいて、第2のエポック鍵ならびに第3の秘密鍵および第3の公開鍵を含む第3の非対称鍵ペアを生成する工程であって、
    前記第2のエポック鍵は、少なくとも部分的に前記第2の公開鍵に基づいて生成される工程と、
    前記第2のデバイスから前記第2のエポック鍵および前記第3の公開鍵を送信する工程と、
    前記第1のデバイスが前記第2のエポック鍵および前記第3の公開鍵を受信する工程と、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて個別に第2のリフレッシュ鍵を生成する工程であって、
    前記第2のリフレッシュ鍵は、前記第2のデバイスにおいて少なくとも部分的に前記第2の公開鍵および前記第1の状態に基づいて生成され、
    前記第2のリフレッシュ鍵は、前記第1のデバイスにおいて少なくとも部分的に前記第2の秘密鍵、前記第2のエポック鍵、および前記第1の状態に基づいて生成される工程と、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて個別に第2の状態を生成する工程であって、
    前記第2の状態は、前記第2のデバイスにおいて少なくとも部分的に前記第2の公開鍵および前記第1の状態に基づいて生成され、
    前記第2の状態は、前記第1のデバイスにおいて少なくとも部分的に前記第2の秘密鍵、前記第2のエポック鍵、および前記第1の状態に基づいて生成される工程とをさらに備える、請求項1または請求項2に記載の方法。
  4. 前記第2のデバイスから前記第2のエポック鍵および前記第3の公開鍵を送信する工程を実行する前に、前記第2のデバイスから前記第1のメッセージ鍵を削除する工程をさらに備える、請求項3に記載の方法。
  5. 前記第1のデバイスにおいて、前記第1のメッセージ鍵に関連付けられた第1のメッセージインデックスおよび前記第1の状態に関連付けられた第1のエポックインデックスを生成する工程と、
    前記第1のデバイスにおいて、前記第1のメッセージインデックスおよび前記第1のエポックインデックスを含む第1のヘッダを生成する工程と、
    前記第1のデバイスにおいて、前記ヘッダおよび前記第1の暗号化されたメッセージを含む第1の暗号文を生成する工程と、
    前記第1のデバイスから前記第1の暗号文を送信する工程とをさらに備える、請求項1から請求項4のいずれか一項に記載の方法。
  6. 前記第2のデバイスが前記第1の暗号文を受信する工程と、
    前記第2のデバイスが前記第1のメッセージインデックスおよび前記第1のエポックインデックスに基づいて前記第1のメッセージ鍵を検証する工程とをさらに備える、請求項5に記載の方法。
  7. 前記第1のデバイスにおいて、前記第1のエポック鍵および前記第2の公開鍵を含む第1のヘッダを生成する工程と、
    前記第1のデバイスにおいて、前記ヘッダおよび前記第1の暗号化されたメッセージを含む第1の暗号文を生成する工程と、
    前記第1のデバイスから前記第1の暗号文を送信する工程とをさらに備える、請求項1から請求項4のいずれか一項に記載の方法。
  8. 前記ルート状態を提供する工程は、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれがルート鍵を受信する工程と、
    前記ルート鍵をそれぞれの擬似ランダム関数に提供して、ルート状態を各擬似ランダム関数の出力として生成することによって、前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて個別に前記ルート状態を生成する工程とをさらに含む、請求項1から請求項7のいずれか一項に記載の方法。
  9. 前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて個別に第1の共有鍵を生成する工程をさらに備え、
    前記第1の共有鍵は、前記第1のデバイスにおいて少なくとも部分的に前記第1の公開鍵に基づいて生成され、
    前記第1の共有鍵は、前記第2のデバイスにおいて少なくとも部分的に前記第1の秘密鍵および前記第1のエポック鍵に基づいて生成され、
    前記第1のリフレッシュ鍵は、前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて、前記第1の共有鍵および前記ルート状態に基づいて生成され、
    前記第1の状態は、前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて、前記第1の共有鍵および前記ルート状態に基づいて生成される、請求項1から請求項7のいずれか一項に記載の方法。
  10. 擬似ランダム関数への入力として前記共有鍵および前記ルート状態を提供する工程と、
    前記擬似ランダム関数からの出力として前記第1の状態および前記第1のリフレッシュ鍵を生成する工程とをさらに備える、請求項9に記載の方法。
  11. 前記第1の状態で乱数ジェネレータを初期化する工程と、
    前記乱数ジェネレータへの入力として前記第1のリフレッシュ鍵を提供する工程と、
    前記乱数ジェネレータからの出力として前記第1のメッセージ鍵を生成する工程と、
    前記乱数ジェネレータへの入力として前記第1のメッセージ鍵を提供する工程と、
    前記乱数ジェネレータからの出力として前記第2のメッセージ鍵を生成する工程とをさらに備える、請求項2から請求項10のいずれか一項に記載の方法。
  12. 前記第1の状態で乱数ジェネレータを初期化する工程と、
    前記第1の状態に初期化された前記乱数ジェネレータへの入力として、前記第1のリフレッシュ鍵を提供する工程と、
    前記第1の状態に初期化されて前記第1のリフレッシュ鍵が提供された前記乱数ジェネレータからの出力として、前記第1のメッセージ鍵を生成する工程と、
    第2の状態で前記乱数ジェネレータを初期化する工程と、
    前記第2の状態に初期化された前記乱数ジェネレータからの出力として、前記第2のメッセージ鍵を生成する工程とをさらに備える、請求項2または請求項5から請求項10のいずれか一項に記載の方法。
  13. デバイス間でメッセージを交換する方法であって、
    第1の通信デバイスを準備する工程と、
    第2の通信デバイスを準備する工程と、
    第1の公開鍵および第1の秘密鍵を含む第1の非対称鍵ペアを準備する工程と、
    疑似乱数ジェネレータを準備する工程と、
    前記第1の公開鍵を前記第1のデバイスに保存する工程と、
    前記第1の秘密鍵を前記第2のデバイスに保存する工程と、
    前記疑似乱数ジェネレータを前記第1のデバイスおよび前記第2のデバイスの両方に保存する工程と、
    前記第1のデバイスにおいて、第1のエポック鍵ならびに第2の秘密鍵および第2の公開鍵を含む第2の非対称鍵ペアを生成する工程であって、
    前記第1のエポック鍵は、少なくとも部分的に前記第1の公開鍵に基づいて生成される工程と、
    前記第1のデバイスから前記第1のエポック鍵および前記第2の公開鍵を送信する工程と、
    前記第2のデバイスが前記第1のエポック鍵および前記第2の公開鍵を受信する工程と、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて個別に第1のメッセージ鍵を生成する工程であって、
    前記第1のメッセージ鍵は、前記第1のデバイスにおいて少なくとも部分的に前記第1の公開鍵に基づいて生成され、
    前記第1のメッセージ鍵は、前記第1のエポック鍵に対応する秘密鍵を必要とすることなく前記第1のデバイスにおいて生成され、
    前記第1のメッセージ鍵は、前記第2のデバイスにおいて少なくとも部分的に前記第1の秘密鍵および前記第1のエポック鍵に基づいて生成される工程と、
    前記疑似乱数ジェネレータへの入力として前記第1のメッセージ鍵を提供することにより、前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて個別に第2のメッセージ鍵を生成し、当該第2のメッセージ鍵は、前記第1のメッセージ鍵を提供した結果としての前記疑似乱数ジェネレータの出力として得られる工程と、
    前記第1のデバイスにおいて、第1のメッセージを前記第1のメッセージ鍵で暗号化し、第2のメッセージを前記第2のメッセージ鍵で暗号化する工程と、
    前記第1のデバイスから、前記暗号化された第1のメッセージおよび前記暗号化された第2のメッセージを含む第1のエポックを送信する工程と、
    前記第2のデバイスが前記第1のエポックを受信する工程と、
    前記第2のデバイスにおいて、前記暗号化された第1のメッセージを前記第1のメッセージ鍵で復号し、前記第2の暗号化されたメッセージを前記第2のメッセージ鍵で復号する工程と、
    前記第2のデバイスにおいて、第2のエポック鍵ならびに第3の秘密鍵および第3の公開鍵を含む第3の非対称鍵ペアを生成する工程であって、
    前記第2のエポック鍵は、少なくとも部分的に前記第2の公開鍵に基づいて生成される工程と、
    前記第2のデバイスから前記第2のエポック鍵および前記第3の公開鍵を送信する工程と、
    前記第1のデバイスが前記第2のエポック鍵および前記第3の公開鍵を受信する工程と、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて個別に第3のメッセージ鍵を生成する工程であって、
    前記第3のメッセージ鍵は、前記第2のデバイスにおいて少なくとも部分的に前記第2の公開鍵に基づいて生成され、
    前記第3のメッセージ鍵は、前記第2のエポック鍵に対応する秘密鍵を必要とすることなく前記第2のデバイスにおいて生成され、
    前記第3のメッセージ鍵は、前記第1のデバイスにおいて少なくとも部分的に前記第2の秘密鍵および前記第2のエポック鍵に基づいて生成される工程と、
    前記第2のデバイスにおいて、第3のメッセージを前記第3のメッセージ鍵で暗号化する工程と、
    前記第2のデバイスから前記暗号化された第3のメッセージを含む第2のエポックを送信する工程と、
    前記第2のデバイスから前記暗号化された第3のメッセージを含む前記第2のエポックを送信する工程の前に、前記第2のデバイスから前記第1のメッセージ鍵および前記第2のメッセージ鍵を削除する工程とを備える方法。
  14. 複数のエポックを送信する工程をさらに備え、
    各エポックは、1つ以上の暗号化されたメッセージを含み、
    前記複数のエポックの各エポックにおける前記1つ以上の暗号化されたメッセージは、前記第1のデバイスおよび前記第2のデバイスの一方のみから送信され、
    前記複数のエポックは、前記第2のデバイスに送信されたエポックの後に、前記第1のデバイスに送信されたエポックが続き、さらにその後に、前記第2のデバイスに送信された別のエポックが続くように交互に送信される、請求項13に記載の方法。
  15. 前記第1のデバイスにおいて第1のヘッダを生成する工程と、
    前記第1のデバイスにおいて、前記第1のヘッダおよび前記第1の暗号化されたメッセージを含む第1の暗号文を生成する工程と、
    前記第1のデバイスにおいて、平文の前記第1のヘッダを前記第1の暗号文に付加する工程と、
    前記第1のデバイスから前記第1の暗号文および前記平文の第1のヘッダを送信する工程とをさらに備える、請求項13または請求項14に記載の方法。
  16. 前記第2のデバイスが前記第1の暗号文および前記平文の第1のヘッダを受信する工程と、
    前記第2のデバイスが前記平文の第1のヘッダに基づいて前記暗号文を認証する工程とをさらに備える、請求項15に記載の方法。
  17. 前記第1のデバイスにおいて、メッセージインデックスを生成する工程をさらに備え、
    前記第1のデバイスにおいて前記第1のヘッダを生成する工程は、前記メッセージインデックスを含むように前記第1のヘッダを生成する工程をさらに含み、
    前記第2のデバイスが前記平文の第1のヘッダに基づいて前記暗号文を認証する工程は、前記メッセージインデックスに基づいて第nのメッセージ鍵を生成する工程をさらに含む、請求項16に記載の方法。
  18. 前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいてルート状態を提供する工程と、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて、前記ルート状態に基づいて前記疑似乱数ジェネレータを初期化する工程と、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて、前記ルート状態に基づいて更新状態を生成する工程と、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて、前記更新状態に基づいて前記疑似乱数ジェネレータを再初期化する工程とをさらに備える、請求項13から請求項17のいずれか一項に記載の方法。
  19. 前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいてルート状態を提供する工程と、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて個別に第1の共有鍵を生成する工程と、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて個別に第1の状態を生成する工程と、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて個別に第1のリフレッシュ鍵を生成する工程とさらに備え、
    前記第1の共有鍵は、前記第1のデバイスにおいて少なくとも部分的に前記第1の公開鍵に基づいて生成され、
    前記第1の共有鍵は、前記第2のデバイスにおいて少なくとも部分的に前記第1の秘密鍵および前記第1のエポック鍵に基づいて生成され、
    前記第1のリフレッシュ鍵は、前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて、前記共有鍵および前記ルート状態に基づいて生成され、
    前記第1の状態は、前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて、前記第1の共有鍵および前記ルート状態に基づいて生成され、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて個別に第1のメッセージ鍵を生成する工程は、
    前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて、前記第1の状態で前記疑似乱数ジェネレータを初期化する工程と、
    前記初期化された疑似乱数ジェネレータへの入力として、前記第1のリフレッシュ鍵を提供する工程と、
    前記疑似乱数ジェネレータが、前記第1のデバイスおよび前記第2のデバイスのそれぞれにおいて、少なくとも部分的に前記第1のリフレッシュ鍵に基づいて前記第1のメッセージ鍵を生成する工程とをさらに含む、請求項13から請求項17のいずれか一項に記載の方法。
JP2021545987A 2019-02-05 2019-09-09 エポック鍵交換を用いたエンドツーエンドの二重ラチェット暗号化 Active JP7353375B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/267,819 2019-02-05
US16/267,819 US10412063B1 (en) 2019-02-05 2019-02-05 End-to-end double-ratchet encryption with epoch key exchange
PCT/US2019/050139 WO2020162982A1 (en) 2019-02-05 2019-09-09 End-to-end double-ratchet encryption with epoch key exchange

Publications (2)

Publication Number Publication Date
JP2022519688A true JP2022519688A (ja) 2022-03-24
JP7353375B2 JP7353375B2 (ja) 2023-09-29

Family

ID=67845117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021545987A Active JP7353375B2 (ja) 2019-02-05 2019-09-09 エポック鍵交換を用いたエンドツーエンドの二重ラチェット暗号化

Country Status (5)

Country Link
US (2) US10412063B1 (ja)
EP (1) EP3921971A1 (ja)
JP (1) JP7353375B2 (ja)
KR (1) KR102619383B1 (ja)
WO (1) WO2020162982A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI835580B (zh) * 2023-03-09 2024-03-11 中華電信股份有限公司 多終端之端對端加密通訊方法及電腦可讀媒介

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10574451B2 (en) * 2017-10-19 2020-02-25 Bank Of America Corporation Method and apparatus for perfect forward secrecy using deterministic hierarchy
US11394565B2 (en) * 2019-06-18 2022-07-19 Intel Corporation Asymmetric device attestation using physically unclonable functions
US11153080B1 (en) * 2020-07-29 2021-10-19 John A. Nix Network securing device data using two post-quantum cryptography key encapsulation mechanisms
KR20220052016A (ko) * 2020-10-20 2022-04-27 삼성전자주식회사 스토리지 장치에서의 보안 동작을 위한 키 교환 방법 및 이를 이용한 접근 권한 이관 방법
CN114697054B (zh) * 2020-12-26 2023-10-27 科大国盾量子技术股份有限公司 数据的传输方法、装置、电子设备及计算机存储介质
US12003629B2 (en) 2020-12-30 2024-06-04 John A. Nix Secure server digital signature generation for post-quantum cryptography key encapsulations
CN113037474B (zh) * 2021-03-01 2022-09-23 南京大学 一种非对称的量子会议密钥协商方法及系统
CN113630407B (zh) * 2021-08-02 2022-12-27 中电信量子科技有限公司 使用对称密码技术增强mqtt协议传输安全的方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007189456A (ja) * 2006-01-12 2007-07-26 Nippon Telegr & Teleph Corp <Ntt> 暗号化方法と復号方法、それらの方法を利用した装置、システム、プログラムおよび記録媒体
JP2007316108A (ja) * 2006-05-23 2007-12-06 Nippon Telegr & Teleph Corp <Ntt> 暗号化装置、復号装置、暗号化方法、復号方法、それらの方法を用いたプログラム、および記録媒体
WO2018016330A1 (ja) * 2016-07-19 2018-01-25 日本電信電話株式会社 通信端末、サーバ装置、プログラム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4731840A (en) 1985-05-06 1988-03-15 The United States Of America As Represented By The United States Department Of Energy Method for encryption and transmission of digital keying data
US5748735A (en) 1994-07-18 1998-05-05 Bell Atlantic Network Services, Inc. Securing E-mail communications and encrypted file storage using yaksha split private key asymmetric cryptography
US5737419A (en) 1994-11-09 1998-04-07 Bell Atlantic Network Services, Inc. Computer system for securing communications using split private key asymmetric cryptography
US6694025B1 (en) 1999-06-02 2004-02-17 Koninklijke Philips Electronics N.V. Method and apparatus for secure distribution of public/private key pairs
US7181016B2 (en) 2003-01-27 2007-02-20 Microsoft Corporation Deriving a symmetric key from an asymmetric key for file encryption or decryption
WO2006003675A2 (en) 2004-07-12 2006-01-12 Syed Ibrahim Abdul Hameed Khan System, method of generation and use of bilaterally generated variable instant passwords
KR100988198B1 (ko) 2010-05-31 2010-10-18 주식회사 아이넵 분산 컴퓨팅 기반 유틸리티 컴퓨팅 환경에서의 정보유출 방지를 위한 암호화 방법 및 이를 위한 시스템
US20130028419A1 (en) 2011-07-26 2013-01-31 Debabrata Das System and a method for use in a symmetric key cryptographic communications
US9032212B1 (en) * 2013-03-15 2015-05-12 Emc Corporation Self-refreshing distributed cryptography
US9225516B1 (en) 2013-10-03 2015-12-29 Whatsapp Inc. Combined authentication and encryption
US9698976B1 (en) 2014-02-24 2017-07-04 Wickr Inc. Key management and dynamic perfect forward secrecy
US9923844B1 (en) 2014-07-30 2018-03-20 Whatsapp Inc. Conveying instant messages via HTTP
US9929863B2 (en) 2015-10-30 2018-03-27 Palo Alto Research Center Incorporated System and method for efficient and semantically secure symmetric encryption over channels with limited bandwidth
US9584493B1 (en) 2015-12-18 2017-02-28 Wickr Inc. Decentralized authoritative messaging
US9596079B1 (en) 2016-04-14 2017-03-14 Wickr Inc. Secure telecommunications
US10367792B2 (en) 2016-08-25 2019-07-30 Orion Labs End-to end encryption for personal communication nodes
US10129223B1 (en) 2016-11-23 2018-11-13 Amazon Technologies, Inc. Lightweight encrypted communication protocol
US10230524B2 (en) 2017-01-26 2019-03-12 Wickr Inc. Securely transferring user information between applications
US10735384B2 (en) 2017-02-17 2020-08-04 Whatsapp Inc. Techniques for key ratcheting with multiple step sizes
US10582036B2 (en) 2017-02-17 2020-03-03 Whatsapp Inc. Methods and systems for generating an ephemeral content message

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007189456A (ja) * 2006-01-12 2007-07-26 Nippon Telegr & Teleph Corp <Ntt> 暗号化方法と復号方法、それらの方法を利用した装置、システム、プログラムおよび記録媒体
JP2007316108A (ja) * 2006-05-23 2007-12-06 Nippon Telegr & Teleph Corp <Ntt> 暗号化装置、復号装置、暗号化方法、復号方法、それらの方法を用いたプログラム、および記録媒体
WO2018016330A1 (ja) * 2016-07-19 2018-01-25 日本電信電話株式会社 通信端末、サーバ装置、プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ALWEN, J., CORETTI, S. AND DODIS, Y.: "The Double Ratchet: Security Notions, Proofs, and Modularization for the Signal Protocol", CRYPTOLOGY EPRINT ARCHIVE, vol. Paper 2018/1037 ver:20181207:142143, JPN6023033205, 7 December 2018 (2018-12-07), pages 1 - 48, ISSN: 0005133504 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI835580B (zh) * 2023-03-09 2024-03-11 中華電信股份有限公司 多終端之端對端加密通訊方法及電腦可讀媒介

Also Published As

Publication number Publication date
US20220131838A1 (en) 2022-04-28
US10412063B1 (en) 2019-09-10
WO2020162982A1 (en) 2020-08-13
KR20210124368A (ko) 2021-10-14
EP3921971A1 (en) 2021-12-15
JP7353375B2 (ja) 2023-09-29
US11831764B2 (en) 2023-11-28
KR102619383B1 (ko) 2023-12-29

Similar Documents

Publication Publication Date Title
JP7353375B2 (ja) エポック鍵交換を用いたエンドツーエンドの二重ラチェット暗号化
US11575660B2 (en) End-to-end encryption for personal communication nodes
RU2736870C1 (ru) Комплекс для защищенной передачи данных в цифровой сети передачи данных с использованием однопроходной системы квантового распределения ключей и способ согласования ключей при работе комплекса
US8259934B2 (en) Methods and devices for a chained encryption mode
CN104023013A (zh) 数据传输方法、服务端和客户端
US12010216B2 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
KR102172181B1 (ko) 실시간 데이터 전송을 위한 블록 암호 장치 및 방법
US11528127B2 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
CN114726538A (zh) 一种基于区块链环签名的隐蔽通信方法
CN111049738B (zh) 基于混合加密的电子邮件数据安全保护方法
KR100551992B1 (ko) 어플리케이션 데이터의 암호화 및 복호화 방법
KR20020051597A (ko) 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법
CN111901101B (zh) 一种密钥更新方法与系统
JP4150328B2 (ja) ハイブリッド暗号装置およびハイブリッド暗号・復号方法
JP5314240B2 (ja) 通信路システム
Strenzke et al. Legacy Encryption Downgrade Attacks against LibrePGP and CMS
Cho et al. Secure deployment of quantum key distribution in optical communication systems
TWI248276B (en) System and method for secure encryption
CN118316613A (en) Lightweight channel encryption method, device, equipment and storage medium
CN118338291A (zh) 一种应急通信无线Mesh自组网身份认证与数据安全传输方法
CN118214558A (zh) 一种数据流通处理方法、系统、装置及存储介质
CN116846541A (zh) 一种基于sm3摘要算法的私有网络组件通信方法和系统
Yu An RC4 based lightweight security protocol.
Suttuchaya et al. Chain rule protection over the internet using PUGGAD algorithm

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230724

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230822

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230919

R150 Certificate of patent or registration of utility model

Ref document number: 7353375

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150