From 11d34f79af674c6716f88ef2eb1e6048175da13c Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Mon, 23 Nov 2020 18:25:54 +0000 Subject: [PATCH] update double-ratchet diagrams --- docs/double_ratchet.dia | Bin 0 -> 5463 bytes docs/double_ratchet.svg | 1422 ++++++++++++--------------------------- 2 files changed, 424 insertions(+), 998 deletions(-) create mode 100644 docs/double_ratchet.dia diff --git a/docs/double_ratchet.dia b/docs/double_ratchet.dia new file mode 100644 index 0000000000000000000000000000000000000000..7ad2c9d6ddcba84b215f6809692084f721743500 GIT binary patch literal 5463 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 - - - - - - - - - - - - - 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 + + + + +