diff --git a/docs/double_ratchet.dia b/docs/double_ratchet.dia new file mode 100644 index 0000000..7ad2c9d Binary files /dev/null and b/docs/double_ratchet.dia differ diff --git a/docs/double_ratchet.svg b/docs/double_ratchet.svg index 26ee8c3..dde48e5 100644 --- a/docs/double_ratchet.svg +++ b/docs/double_ratchet.svg @@ -1,1007 +1,433 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - - - Initial Shared Secret + + + + + + + HKDF + - - - - - - Secret - - HKDF - - - Root Key - - - - Chain Key - - - - Info - - "OLM_ROOT" - - - - Salt - - "" - - - - - - - Key - - - - Data - - HMAC - - - Chain Key - - "\x02" - - - - - - "\x01" - - - - - Key - - - - Data - - HMAC - - - Message Key - - - - - - - Secret - - - - - Salt - - "" - - - - Info - - "OLM_KEYS" - - HKDF - - - Cipher Key - - - - Mac Key - - - - IV - - - + + + - - - - - - Secret - - HKDF - - - Root Key - - - - Chain Key - - - - Info - - "OLM_RATCHET" - - - - Salt - - - - + + + + S + - Alice's Chain - Bob's Chain - - - - - - Bob's Key + + + + 0 + - - - Alice's Key + + + - ECDH - - - Shared Secret + + + + R[0] + + + + + C[0,0] + + + + + + + + + + + + + + + + + + M[0,0] + + + + + + + + + + HMAC + + + + + + + + + + HMAC + + + + + + + + + + C[0,1] + + + + + + + + + + M[0,1] + + + + + + + + + + HMAC + + + + + + HMAC + + + + + + + + + + + + + + C[0,2] + + + + + + T[0] + + + + + + T[1] + + + + + + DH + + + + + + + + + + + + + + HKDF + + + + + + + + + + R[1] + + + + + + C[1,0] + + + + + + + + + + + + + + + + + + M[1,0] + + + + + + + + + + HMAC + + + + + + + + + + HMAC + + + + + + + + + + + + + + DH + + + + + + HKDF + + + + + + + + + + R[2] + + + + + + C[2,0] + + + + + + + + + + + + + + + + + + M[2,0] + + + + + + + + + + HMAC + + + + + + + + + + HMAC + + + + + + + + + + + + + + + + + + + + + + C[1,1] + + + + + + + + + + M[1,1] + + + + + + + + + + HMAC + + + + + + HMAC + + + + + + + + + + + + + + C[1,2] + + + + + + + + + + + + + + C[2,1] + + + + + + + + + + M[2,1] + + + + + + + + + + HMAC + + + + + + + + + + T[2] + + + + + + + + + + + + + + + + + + + + + + Initiated by Alice + + + + + + Initiated by Alice + + + + Initiated by Bob + + + + +