Difference between revisions of "Np1sec/algebraic"
(→Join) |
(→Leave) |
||
Line 137: | Line 137: | ||
|- | |- | ||
|align="right"| Remove leaving user's id/key and update participant list | |align="right"| Remove leaving user's id/key and update participant list | ||
− | |align="center"|<math>plist_i|klist_i \ | + | |align="center"|<math>(plist_i|klist_i) \backslash (U_j|y_j)</math> |
|- | |- | ||
|align="right"|Compute Session Id | |align="right"|Compute Session Id | ||
|align="center"|<math>sid_i \leftarrow H(U_1|y_1|\dots|U_n|y_n)</math> | |align="center"|<math>sid_i \leftarrow H(U_1|y_1|\dots|U_n|y_n)</math> | ||
− | |||
− | |||
− | |||
|- | |- | ||
|align="right"|Generate secret shares | |align="right"|Generate secret shares | ||
Line 155: | Line 152: | ||
|- | |- | ||
|align="right"|Broadcast key shares | |align="right"|Broadcast key shares | ||
− | |align="center"|<math>(U_i, z_i, \sigma_i | + | |align="center"|<math>(U_i, z_i, \sigma_i)</math> |
|- | |- | ||
|align="right"| Receive other users' key shares | |align="right"| Receive other users' key shares | ||
− | |align="center"|<math>(U_1|z_1,\sigma_1,\dots U_n|z_n,\sigma_n) | + | |align="center"|<math>(U_1|z_1,\sigma_1,\dots U_n|z_n,\sigma_n)</math> |
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
|align="right"|Check public shares | |align="right"|Check public shares | ||
Line 178: | Line 172: | ||
|align="center"|<math>skc_i \leftarrow H(k_i, sid_i, U_i)</math> | |align="center"|<math>skc_i \leftarrow H(k_i, sid_i, U_i)</math> | ||
|} | |} | ||
− | |||
==Send== | ==Send== |
Revision as of 06:42, 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 secret shares | ![]() |
Generate public shares | ![]() |
Sign identity, shares | ![]() |
Broadcast key shares | ![]() |
Receive other users' key shares | ![]() |
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 | ![]() |