| 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
|
|