Description
|
Pseudo-code
|
Generate ephemeral DH private key
|
|
Generate DH key for BD, Triple DH and Signature
|
|
Broadcast User identity and the DH key
|
|
Receive other users' id/key
|
|
Compute Session Id
|
|
Generate Triple Diffie-Hellman P2P keys
|
}}
|
Generate key confirmations
|
}}
|
Generate secret shares
|
|
Generate public shares
|
|
Sign identity, shares
|
|
Broadcast key shares and confirmation
|
|
Receive other users' key shares and confirmation
|
|
Check validity of key confirmation
|
|
Check public shares
|
|
Check signatures
|
|
Recover secret shares
|
|
Generate session key
|
|
Broadcast session key confirmation
|
|
Description
|
Pseudo-code
|
broadcast all user's identities (U_1|y_1|\dots|U_n|y_n)
|
|
Receive other users' id/key and update participant list
|
|
Broadcast User identity and the DH key
|
|
Receive other users' id/key
|
|
Compute Session Id
|
|
Generate Triple Diffie-Hellman P2P key for the new participant
|
}}
|
Generate key confirmations
|
|
Generate secret shares
|
|
Generate public shares
|
|
Sign identity, shares
|
|
Broadcast key shares and confirmation
|
|
Receive other users' key shares and new users confirmation
|
|
Check validity of key confirmation
|
|
Check public shares
|
|
Check signatures
|
|
Recover secret shares
|
|
Generate session key
|
|
Broadcast session key confirmation
|
|
Description
|
Pseudo-code
|
Generate new DH Key or new key share if needed and append
|
|
Append the hash of the session digest up to parent of current message
|
|
Sign the message
|
|
Encrypt
|
Failed to parse (PNG conversion failed; check for correct installation of latex and dvipng (or dvips + gs + convert)): e\leftarrow Enc_{k}_{{sid}}(m)
}}
|
Broadcast the message
|
Failed to parse (syntax error): (sid_i, e, \sigma) |} ==Receive== {| border="1" cellspacing="0" cellpadding="5" align="center" !align="right"|Description !align="center"|Pseudo-code |- |align="right"| check signature |align="center"|<math> verify(m) == (m, \sigma)
|
decrypt messagen
|
|
Verify session id and hash
|
Failed to parse (syntax error): \sigma \leftarrow sid_i == sid_{rec} & h == Digest(parent\_id)
|
Update key share or session key
|
|
return m
|
|