Double Ratchetアルゴリズム
通信当事者は、通信相手と対話できる場合はディフィー・ヘルマン(DH)ラチェットを使って、対話できない場合はハッシュラチェットを使って単独でセッション鍵マテリアルを更新する。各ハッシュラチェットは、それぞれDHラチェットから導出した共通の秘密の値でシードされる。メッセージを送受信するたびに、2つのハッシュラチェット(送信用と受信用)のどちらかが1段階進められる。また、可能であれば常にDHラチェットの前進と新しい公開DH値の通信相手への通知を試み、相手から新しいDH値を受け取った場合はDHラチェットを1段階進める。新しい共通の秘密の値が確立されると、ハッシュラチェットが初期化される。
Double Ratchetアルゴリズムは、暗号プリミティブに以下を使用する。