Difference between revisions of "Np1sec/algebraic"
(→Send) |
(→Receive) |
||
Line 200: | Line 200: | ||
|- | |- | ||
|align="right"| check signature | |align="right"| check signature | ||
− | |align="center"|<math> verify | + | |align="center"|<math> verify(m,\sigma) </math> |
|- | |- | ||
|align="right"| decrypt messagen | |align="right"| decrypt messagen | ||
Line 206: | Line 206: | ||
|- | |- | ||
|align="right"| Verify session id and hash | |align="right"| Verify session id and hash | ||
− | |align="center"|<math> | + | |align="center"|<math> sid_i == sid_{rec} \; \textrm{and} \; h == Digest(parent\_id)</math> |
|- | |- | ||
− | |align="right"| Update key | + | |align="right"| Update sender key or share key |
− | |align="center"|<math> | + | |align="center"|<math>y_j \leftarrow s \; \textrm { or } \; z_{j} \leftarrow s</math> |
+ | |- | ||
+ | |align="right"| if all users' share are received session key | ||
+ | |align="center"|<math>k_i \leftarrow ComputeSessionKey(z_1,...,z_n) </math> | ||
|- | |- | ||
|align="right"| return m | |align="right"| return m | ||
|align="center"|<math>m</math> | |align="center"|<math>m</math> | ||
|} | |} |
Revision as of 06:59, 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 | ![]() |
Broadcast the message | ![]() |
Receive
Description | Pseudo-code |
---|---|
check signature | ![]() |
decrypt messagen | ![]() |
Verify session id and hash | ![]() |
Update sender key or share key | ![]() |
if all users' share are received session key | ![]() |
return m | ![]() |