The Signal Protocol @ VanLug
BorisReitman.com
The Signal Protocol @ VanLug BorisReitman.com Agenda OTR Double - - PowerPoint PPT Presentation
The Signal Protocol @ VanLug BorisReitman.com Agenda OTR Double Ratchet X3DH Sesame Overview First the parties will use X3DH key agreement protocol to agree on a shared secret key. Then, the parties will use the Double
BorisReitman.com
agree on a shared secret key.
receive encrypted messages.
(symmetric)
(public / private keys)
This is the resulting MAC Throw away result Throw away result Throw away result
Original Message M = m1 || m2 || m3 || … || mx
compromised?
encrypted messages.
signatures.
message.
key.
may himself made up the MAC.
first key (X3DH).
messages, because MACs offer the Repudiation property.
Paper from 2004
as messages are received.
encrypted with key #4, and also includes DH value to make key #5.
decrypted the message #5.
encrypted by key #5, and also includes DH value to make key #6.
Note: the notation here is using powers instead of multiplying by scalar. The encryption key k is derived from the last received and last sent g^x and g^y values. The next round of DH pub key g^x or g^y is sent together with each message.
reading them, but does not reply?
messages.
KDF ratchet, until Bob answers.
key.
H0, H1, H2, H3 are resulting independent secret keys.
Part of the output is used as output key, and another part as another KDF key for the next round.
ratchet.
First root key is established by X3DH 2nd ratchet is hash based 1st ratchet is the OTR DH
Get message key A1 Move chain forward Use A1 to encrypt, then discard it.
Receiving KDF chain 4. Decryption key for message B1
KDF chain
user (Bob) is offline but has published some information to a server. Another user (Alice) wants to use that information to send encrypted data to Bob, and also establish a shared secret key for future communication.”
some operation, and the result is still in the set.
“bG”.
from Bob.
to sleep.
then it won’t help decrypt past messages.
session.
keys:
SPK = pre-shared Public Key
Bob would know Alice’s ID when he wakes up. It’s part of Alice’s contact entry metadata. Bob uploaded this to server, before he went offline.
There are many signed pre-keys SPK_B on the server that belong to Bob. Alice chooses a random one.
EK = Ephemeral Key
This is the basic DH exchange, with ephemeral keys. This results in a new session key every time.
SPK_B = b’G
encrypted the message, from the parts he received.
key: b’
Time Prekey.
fourth DH exchange.
going to initiate the protocol run.
DH1 and DH2 provide mutual authentication DH3 and DH4 provide forward secrecy ID key of Alice Ephemeral key
ID key of Bob
Signed Prekey uploaded by Bob to the server One-time prekey uploaded by Bob to the server
Result Session Key = KDF( DH1 || DH2 || DH3 || DH4 )
each other.
Alice’s keys, causing a mismatch.
synchronization.
across communicating devices.
for delayed messages.
prekeys.
messages.
DeviceRecords of other devices that belong to this user.
DeviceRecord.
(UserID, DeviceID). If mismatched, a new record is created, and replaces the old one.
messages.
authentic.
(public / private keys)
building block.
function.
This is the resulting MAC Throw away result Throw away result Throw away result
Original Message M = m1 || m2 || m3 || … || mx
compromised?
encrypted messages.
signatures.
message.
ID key.
MAC on his end, and compare.
may himself made up the MAC.
between Alice and Bob. Sign(ID_A, aG)
messages, because MACs offer the Repudiation property.
some operation, and the result is still in the set.
that doesn’t do anything.
A + A + … + A, that means that the group has all the elements on a circle.
Basic braid patterns can generate a complex longer braid, when combined.
This braid is uniquely identified by this expression:
The group operation is concatenation, and it is represented by multiplication “x” operation.
“Multiply” two braids
asked to write down a formula for it in terms of generators.
write a formula for it based on a basic element and exponent.
The “+” operation mixes together x and y coordinates according to weird formula that arises from a geometric construction.