Difference between revisions of "Np1sec/algebraic"
(→Accept) |
(→Join) |
||
Line 31: | Line 31: | ||
|- | |- | ||
|align="right"| Receive other users' id/key | |align="right"| Receive other users' id/key | ||
− | |align="center"|<math>plist_i|klist_i \leftarrow (U_1|y_1|\dots|U_n|y_n)</math> | + | |align="center"|<math>plist_i|klist_i \leftarrow (U_1|y_1|\dots|U_n|y_n)\cup(U_i,y_i)</math> |
|- | |- | ||
|align="right"|Compute Session Id | |align="right"|Compute Session Id | ||
Line 52: | Line 52: | ||
|- | |- | ||
|align="right"|Broadcast key shares and confirmation | |align="right"|Broadcast key shares and confirmation | ||
− | |align="center"|<math>(U_i, z_i, \sigma_i kc_i)</math> | + | |align="center"|<math>(U_i, z_i, \sigma_i, kc_i)</math> |
|- | |- | ||
|align="right"| Receive other users' key shares and confirmation | |align="right"| Receive other users' key shares and confirmation | ||
Line 58: | Line 58: | ||
|- | |- | ||
|align="right"|Check validity of key confirmation | |align="right"|Check validity of key confirmation | ||
− | |align="center"|<math>kc_i[j] == | + | |align="center"|<math>kc_i[j] == H(k_{j,i}, U_j) \textrm{ for } j \in \{1,\dots,n\}</math> |
|- | |- | ||
|align="right"|Check public shares | |align="right"|Check public shares |
Revision as of 06:34, 11 September 2014
Chatroom Setup
Description | Pseudo-code |
---|---|
Generate ephemeral DH private key of the room initiator | |
Generate DH key for BD, Triple DH and Signature | |
Set participant list |
Join
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 |
Accept
Description | Pseudo-code |
---|---|
broadcast all user's identities | |
Receive other users' id/key and update participant list | |
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 |
Leave
Description | Pseudo-code |
---|---|
Remove leaving user's id/key and update participant list | |
Compute Session Id | |
Generate key confirmations | |
Generate secret shares | |
Generate public shares | |
Sign identity, shares | |
Broadcast key shares | }} |
Receive other users' key shares | Failed to parse (lexing error): (U_1|z_1,\sigma_1,\dots U_n|z_n,\sigma_n) |- |align="right"|Check validity of key confirmation |align="center"|<math>kc_i[j] == kc_j[i] |
Check public shares | |
Check signatures | |
Recover secret shares | |
Generate session key | |
Broadcast session key confirmation |
Send
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 |
Receive
Description | Pseudo-code |
---|---|
check signature | |
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 |