Changes

Np1sec/Specification

1,340 bytes removed, 9 years ago
Dmitri moved page [[MpOTR/Specification]] to [[Np1sec/Specification]]: protocol renamed
{{algorithm-end}}
=== Sending and receiving messages while joining is in progress ===
=== Leave ===
 
Leaving a chatroom involves only one procedure for those who are staying in the chatroom (Procedure Farewell) which is described in Algorithm [[mpCAT#Farewell|4]]. The remaining participants only need a notice from the server that the user is leaving to re-run the one round key update algorithm. Also, failure to receive a heartbeat from a user will result in executing Algorithm [[mpCAT#Farewell|4]] excluding users which did not update their key.
====Farewell====
<span style="font-family: serif; font-size: larger; font-variant:small-caps;">'''Broadcast</span>'''(":3mpCAT:3KeyShare:3", <math>myId</math>, <math>keyShare_{myId}</math>, <math>originAuthSignature</math>) # we can send this encrypted but leaving person can read it, hence theoretically it is the same as sending it unencrypted.
{{algorithm-end}}
 
=== Secure Send and Receive ===
 
After the session key is established, participants will use Algorithms [[mpCAT#Send|5]] and [[mpCAT#Receive|6]] to communicate securely.
 
On Send, the protocol checks the status of the new ephemeral Diffie-Hellman and key share using messages it receives from participants. It (re)sends any missing pieces. It also informs other participants which part of the key share is received by that user. The metadata flag indicates if the message being sent only contains meta data (e.g. heartbeat) or actual user communication.
 
On Receive, the protocol updates who has which pieces of the key shares. The protocol also generates a new group key if the new key shares have been received from all participants or those who have not updated their key shares time out on their heartbeat interval.
====Send====
Input: <math>lastMessage</math>
'''for each''' <math>message</math> in Messages Received from <math>lastDigestedMessage</math>+1 till <math>lastMessage</math>, '''do'''
<math>sesionDigest := HassHash(sessionDigest, message)</math>
<span style="font-family: serif; font-size: larger; font-variant:small-caps;">'''LRU Cache Store Digest</span>'''(<math>sessionDigest</math>, <math>message</math>)
'''return''' <math>sessionDigest</math>,<math>lastMessageId</math>
{{algorithm-begin|name=Hash}}
Input: <math>message</math>
'''return''' <span style="font-family: serif; font-size: larger; font-variant:small-caps;">'''SHA-512256</span>'''(<math>message</math>)
{{algorithm-end}}
[[Category: mpOTR]]
Bureaucrat, emailconfirmed, administrator, translator
662
edits