Changes

Np1sec/algebraic

139 bytes removed, 9 years ago
Dmitri moved page [[MpOTR/algebraic]] to [[Np1sec/algebraic]]
|-
|align="right"| Receive other users' id/key
|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"|Broadcast key shares and confirmation
|align="center"|<math>(U_i, z_i, \sigma_i , kc_i)</math>
|-
|align="right"| Receive other users' key shares and confirmation
|-
|align="right"|Check validity of key confirmation
|align="center"|<math>kc_i[j] == kc_j[H(k_{j,i] }, U_j) \textrm{ for } j \in \{1,\dots,n\}</math>
|-
|align="right"|Check public shares
|-
|align="right"|Broadcast session key confirmation
|align="center"|<math>k_i skc_i \leftarrow H(k_i, sid_i, U_i)</math>
|}
!align="center"|Pseudo-code
|-
|align="right"| broadcast all user's identities (U_1|y_1|\dots|U_n|y_n)|align="center"|<math> x_i (U_1|y_1|\leftarrow [0, order(gdots|U_n|y_n)]</math>
|-
|align="right"| Receive other users' id/key and update participant list
|align="center"|<math>(plist_i|klist_i \textrm{append} (U_j|y_j)</math>|-|align="right"|Broadcast User identity and the DH key|align="center"|<math>(U_i, y_i)</math>|- |align="right"| Receive other users' id/key|align="center"|<math>plist_i|klist_i \leftarrow cup (U_j|y_j|\dots|U_j|y_j)</math>
|-
|align="right"|Compute Session Id
|-
|align="right"|Generate Triple Diffie-Hellman P2P key for the new participant
|align="center"|<math>k_{i,j} \leftarrow H({y_j}^{lp_i},LP_j^{x_i},y_j^{x_i})</math>}}
|-
|align="right"|Generate key confirmations
|align="center"|<math>kc_i kc_{i,j}\leftarrow (H(k_{i,j}, U_jU_i)</math>
|-
|align="right"|Generate secret shares
|-
|align="right"| Receive other users' key shares and new users confirmation
|align="center"|<math>(U_1|z_1,\sigma_1,\dots U_n|z_n,\sigma_n), kc_{iji,j}</math>
|-
|align="right"|Check validity of key confirmation
|align="center"|<math>kc_i[kc_{j] ,i} == kc_j[H(k_{i],j},U_j)</math>
|-
|align="right"|Check public shares
|-
|align="right"|Broadcast session key confirmation
|align="center"|<math>k_i skc_i \leftarrow H(k_i, sid_i, U_i)</math>
|}
|-
|align="right"| Remove leaving user's id/key and update participant list
|align="center"|<math>(plist_i|klist_i ) \textrm{remove} backslash (U_j|y_j)</math>
|-
|align="right"|Compute Session Id
|align="center"|<math>sid_i \leftarrow H(U_1|y_1|\dots|U_n|y_n)</math>
|-
|align="right"|Generate key confirmations
|align="center"|<math>kc_i \leftarrow (H(k_{i,j}, U_j)</math>
|-
|align="right"|Generate secret shares
|-
|align="right"|Broadcast key shares
|align="center"|<math>(U_i, z_i, \sigma_i,>kc_i</math>}}<math>)</math>
|-
|align="right"| Receive other users' key shares
|align="center"|<math>(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]</math>
|-
|align="right"|Check public shares
|align="center"|<math>skc_i \leftarrow H(k_i, sid_i, U_i)</math>
|}
 
==Send==
|-
|align="right"| Append the hash of the session digest up to parent of current message
|align="center"|<math> m \leftarrow (m, Digest(parnetparent(m)), parent\_id) </math>
|-
|align="right"| Sign the message
|-
|align="right"|Encrypt
|align="center"|<math>e \leftarrow Enc_k_Enc_{k_{sid}}(m)</math>}}
|-
|align="right"| Broadcast the message
|align="center"|<math>(sid_i, e, \sigma)</math>
|}
|-
|align="right"| check signature
|align="center"|<math> verify(m,\sigma) </math>|-|align="right"| update message block chain|align= "center"|<math> Insert(mBlackChain_{sid}, \sigmam) </math>
|-
|align="right"| decrypt messagen
|-
|align="right"| Verify session id and hash
|align="center"|<math>\sigma \leftarrow sid_i == sid_{rec} & \; \textrm{and} \; h == Digest(parent\_id)</math>
|-
|align="right"| Update sender key share or session share key|align="center"|<math>(y_j,\leftarrow s \; \textrm { or } \; z_{jij}\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="center"|<math>m</math>
|}
 
[[Category: mpOTR]]
Bureaucrat, emailconfirmed, administrator, translator
662
edits