<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://learn.equalit.ie/mw/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://learn.equalit.ie/mw/index.php?action=history&amp;feed=atom&amp;title=Np1sec%2Fconcurrent_join</id>
		<title>Np1sec/concurrent join - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://learn.equalit.ie/mw/index.php?action=history&amp;feed=atom&amp;title=Np1sec%2Fconcurrent_join"/>
		<link rel="alternate" type="text/html" href="https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;action=history"/>
		<updated>2026-05-23T09:59:55Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.23.1</generator>

	<entry>
		<id>https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;diff=2953&amp;oldid=prev</id>
		<title>Vmon at 16:33, 13 March 2015</title>
		<link rel="alternate" type="text/html" href="https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;diff=2953&amp;oldid=prev"/>
				<updated>2015-03-13T16:33:12Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 16:33, 13 March 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt; sid, (U_1,y_1,...,U_{joiner},y_{joiner},...), kc_{i}, z_{i}&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt; sid, (U_1,y_1,...,U_{joiner},y_{joiner},...), kc_{i}, z_{i}&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;From each user &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;. The joiner makes a session for each &amp;lt;math&amp;gt;sid&amp;lt;/math&amp;gt; which contains them as a participant, the user initiates a session and gathers shares. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/del&gt;When a session receives all shares, it computes the session key becomes the current session.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''' &lt;/del&gt;All other sessions can remain in limbo or get discarded based on the memory capacity of the implementation and security requirement.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;From each user &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;. The joiner makes a session for each &amp;lt;math&amp;gt;sid&amp;lt;/math&amp;gt; which contains them as a participant, the user initiates a session and gathers shares. When a session receives all shares, it computes the session key &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and &lt;/ins&gt;becomes the current session. All other sessions can remain in limbo or get discarded based on the memory capacity of the implementation and security requirement.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Session picking protocol for current occupant of the current session==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Session picking protocol for current occupant of the current session==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; users are joining that session concurrently, there are &amp;lt;math&amp;gt;S_1,...,S_m&amp;lt;/math&amp;gt; sessions in-limbo which are receiving shares and authentication messages. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; users are joining that session concurrently, there are &amp;lt;math&amp;gt;S_1,...,S_m&amp;lt;/math&amp;gt; sessions in-limbo which are receiving shares and authentication messages. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/del&gt;If &amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt; currently in &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;room &lt;/del&gt;signals to leave the room a session &amp;lt;math&amp;gt;S_l&amp;lt;/math&amp;gt; is created. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Each &lt;/del&gt;session &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; results in the creation of session &amp;lt;math&amp;gt;S_{j'}&amp;lt;/math&amp;gt; with user &amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt; omitted&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;. &lt;/del&gt;&amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; is marked as dead.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''' &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If &amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;currently in &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the session, &lt;/ins&gt;signals to leave the room&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;new &lt;/ins&gt;session &amp;lt;math&amp;gt;S_l&amp;lt;/math&amp;gt; is created. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Furthermore, each &lt;/ins&gt;session &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;in-limbo which has &amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt; as participants, &lt;/ins&gt;results in the creation of &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;new &lt;/ins&gt;session &amp;lt;math&amp;gt;S_{j'}&amp;lt;/math&amp;gt; with user &amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt; omitted &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and &lt;/ins&gt;&amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; is marked as dead. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The user &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; sends the shares and authentication token necessary for each session. The first session which receives all confirmations will become the main session, and the joiner user of that session becomes the current session. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/del&gt;All other &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;results &lt;/del&gt;in new &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;session &lt;/del&gt;&amp;lt;math&amp;gt;S_{j''}&amp;lt;/math&amp;gt; to which &amp;lt;math&amp;gt;U_{joiner}&amp;lt;/math&amp;gt; is added. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;previous &amp;quot;&lt;/del&gt;current&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot; &lt;/del&gt;session becomes in-limbo.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The user &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; sends the shares and authentication token necessary for each session. The first session which receives all confirmations will become the main session, and the joiner user of that session becomes the current session. All other &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;result &lt;/ins&gt;in new &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sessions &lt;/ins&gt;&amp;lt;math&amp;gt;S_{j''}&amp;lt;/math&amp;gt; to which &amp;lt;math&amp;gt;U_{joiner}&amp;lt;/math&amp;gt; is added. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Previous active (&lt;/ins&gt;current&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;) &lt;/ins&gt;session &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;of the room &lt;/ins&gt;becomes in-limbo.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;in-limbo -&amp;gt; {in-limbo, dead, current}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;in-limbo -&amp;gt; {in-limbo, dead, current}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;current -&amp;gt; in-limbo&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;current -&amp;gt; in-limbo&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Vmon</name></author>	</entry>

	<entry>
		<id>https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;diff=2952&amp;oldid=prev</id>
		<title>Maja: /* Session picking protocol for new user joining the room */</title>
		<link rel="alternate" type="text/html" href="https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;diff=2952&amp;oldid=prev"/>
				<updated>2015-03-13T16:26:31Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Session picking protocol for new user joining the room&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 16:26, 13 March 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt; sid, (U_1,y_1,...,U_{joiner},y_{joiner},...), kc_{i}, z_{i}&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt; sid, (U_1,y_1,...,U_{joiner},y_{joiner},...), kc_{i}, z_{i}&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/del&gt;From each user &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;. The joiner makes a session for each &amp;lt;math&amp;gt;sid&amp;lt;/math&amp;gt; which contains them as a participant, the user initiates a session and gathers shares. When a session receives all shares, it computes the session key becomes the current session.''' All other sessions can remain in limbo or get discarded based on the memory capacity of the implementation and security requirement.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;From each user &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;. The joiner makes a session for each &amp;lt;math&amp;gt;sid&amp;lt;/math&amp;gt; which contains them as a participant, the user initiates a session and gathers shares. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;When a session receives all shares, it computes the session key becomes the current session.''' All other sessions can remain in limbo or get discarded based on the memory capacity of the implementation and security requirement.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Session picking protocol for current occupant of the current session==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Session picking protocol for current occupant of the current session==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maja</name></author>	</entry>

	<entry>
		<id>https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;diff=2951&amp;oldid=prev</id>
		<title>Maja: /* Session picking protocol for current occupant of the current session */</title>
		<link rel="alternate" type="text/html" href="https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;diff=2951&amp;oldid=prev"/>
				<updated>2015-03-13T16:25:19Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Session picking protocol for current occupant of the current session&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 16:25, 13 March 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; users are joining that session concurrently, there are &amp;lt;math&amp;gt;S_1,...,S_m&amp;lt;/math&amp;gt; sessions in-limbo which are receiving shares and authentication messages. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; users are joining that session concurrently, there are &amp;lt;math&amp;gt;S_1,...,S_m&amp;lt;/math&amp;gt; sessions in-limbo which are receiving shares and authentication messages. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''If &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/del&gt;&amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt; currently in room &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;signal &lt;/del&gt;to leave the room a session &amp;lt;math&amp;gt;S_l&amp;lt;/math&amp;gt; is created. Each session &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; results in the creation of session &amp;lt;math&amp;gt;S_{j'}&amp;lt;/math&amp;gt; with user &amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt; omitted. &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; is marked as dead.''' &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''If &amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt; currently in room &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;signals &lt;/ins&gt;to leave the room a session &amp;lt;math&amp;gt;S_l&amp;lt;/math&amp;gt; is created. Each session &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; results in the creation of session &amp;lt;math&amp;gt;S_{j'}&amp;lt;/math&amp;gt; with user &amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt; omitted. &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; is marked as dead.''' &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The user &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; sends the shares and authentication token necessary for each session. The first session which receives all confirmations will become the main session, and the joiner user of that session becomes the current session. '''All other &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; results in new session &amp;lt;math&amp;gt;S_{j''}&amp;lt;/math&amp;gt; to which &amp;lt;math&amp;gt;U_{joiner}&amp;lt;/math&amp;gt; is added. previous &amp;quot;current&amp;quot; session becomes in-limbo.'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The user &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; sends the shares and authentication token necessary for each session. The first session which receives all confirmations will become the main session, and the joiner user of that session becomes the current session. '''All other &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; results in new session &amp;lt;math&amp;gt;S_{j''}&amp;lt;/math&amp;gt; to which &amp;lt;math&amp;gt;U_{joiner}&amp;lt;/math&amp;gt; is added. previous &amp;quot;current&amp;quot; session becomes in-limbo.'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maja</name></author>	</entry>

	<entry>
		<id>https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;diff=2950&amp;oldid=prev</id>
		<title>Maja: /* Proposal for concurrent join */</title>
		<link rel="alternate" type="text/html" href="https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;diff=2950&amp;oldid=prev"/>
				<updated>2015-03-13T16:24:17Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Proposal for concurrent join&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 16:24, 13 March 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Each occupant can mark each session with one of the '''5 statuses: {current, in-limbo, dead}'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Each occupant can mark each session with one of the '''5 statuses: {current, in-limbo, dead}'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''current''': User messages are being encrypted and decrypted in the current session. The join request will be processed by this session.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''current''': User messages are being encrypted and decrypted in the current session. The join request will be processed by this session.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''in-limbo''': A session which is receiving shares and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;confirmation&lt;/del&gt;, this session can potentially become the next session if it receives session confirmation from all users.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''in-limbo''': A session which is receiving shares and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;confirmations&lt;/ins&gt;, this session can potentially become the next session if it receives session confirmation from all users.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''dead''': The session is abandoned and not going to become the current session.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''dead''': The session is abandoned and not going to become the current session.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maja</name></author>	</entry>

	<entry>
		<id>https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;diff=2949&amp;oldid=prev</id>
		<title>Maja: /* Proposal for concurrent join */</title>
		<link rel="alternate" type="text/html" href="https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;diff=2949&amp;oldid=prev"/>
				<updated>2015-03-13T16:23:12Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Proposal for concurrent join&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 16:23, 13 March 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Proposal for concurrent join=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Proposal for concurrent join=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;One can have following protocol to handle concurrent join.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;One can have &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/ins&gt;following protocol to handle concurrent join.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;each &lt;/del&gt;occupant can mark each session with one of the 5 &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;status&lt;/del&gt;: {current, in-limbo, dead}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Each &lt;/ins&gt;occupant can mark each session with one of the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;5 &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;statuses&lt;/ins&gt;: {current, in-limbo, dead}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''current''': User messages are being encrypted and decrypted in the current session. The join request will be &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;process &lt;/del&gt;by this session.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''current''': User messages are being encrypted and decrypted in the current session. The join request will be &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;processed &lt;/ins&gt;by this session.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''in-limbo''': A session which is receiving shares and confirmation, this session can potentially become the next session if it &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;receive &lt;/del&gt;session confirmation from all users.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''in-limbo''': A session which is receiving shares and confirmation, this session can potentially become the next session if it &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;receives &lt;/ins&gt;session confirmation from all users.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''dead''': The session is &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;abonden &lt;/del&gt;and not going to become current session.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''dead''': The session is &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;abandoned &lt;/ins&gt;and not going to become &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/ins&gt;current session.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The protocol &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;join &lt;/del&gt;one user at &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/del&gt;time but is greedy and non-blocking in respect to several concurrent &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;joiner &lt;/del&gt;and eventually results in &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;join &lt;/del&gt;of all new users as long as current users in the session cooperate with join process. The global order of messages is essential &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;in &lt;/del&gt;for the protocol to succeed which is a transport assumption for &amp;lt;math&amp;gt;n+1sec&amp;lt;/math&amp;gt; protocol.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The protocol &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;joins &lt;/ins&gt;one user at &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;a &lt;/ins&gt;time but is greedy and non-blocking in respect to several concurrent &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;joiners &lt;/ins&gt;and eventually results in &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;joins &lt;/ins&gt;of all new users &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(&lt;/ins&gt;as long as current users in the session cooperate with &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/ins&gt;join process&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;)&lt;/ins&gt;. The global order of messages is essential for the protocol to succeed&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;which is a transport assumption for &amp;lt;math&amp;gt;n+1sec&amp;lt;/math&amp;gt; protocol.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Session picking protocol for new user joining the room==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Session picking protocol for new user joining the room==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;New user &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;start &lt;/del&gt;a join process by sending &amp;lt;math&amp;gt;(U_{joiner}, y_{joiner})&amp;lt;/math&amp;gt;. In respose, it receives messages of the format&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;New user &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;starts &lt;/ins&gt;a join process by sending &amp;lt;math&amp;gt;(U_{joiner}, y_{joiner})&amp;lt;/math&amp;gt;. In respose, it receives messages of the format&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt; sid, (U_1,y_1,...,U_{joiner},y_{joiner},...), kc_{i}, z_{i}&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt; sid, (U_1,y_1,...,U_{joiner},y_{joiner},...), kc_{i}, z_{i}&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;From each user &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;. The joiner makes a session for each &amp;lt;math&amp;gt;sid&amp;lt;/math&amp;gt; which &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;contain &lt;/del&gt;them as a participant, the user &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;initiate &lt;/del&gt;a session and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;gather &lt;/del&gt;shares. When a session receives all shares it &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;compute &lt;/del&gt;the session key becomes the current session. All other &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;session &lt;/del&gt;can &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;remains &lt;/del&gt;in limbo or get discarded based on the memory capacity of the implementation and security requirement.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;From each user &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;. The joiner makes a session for each &amp;lt;math&amp;gt;sid&amp;lt;/math&amp;gt; which &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;contains &lt;/ins&gt;them as a participant, the user &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;initiates &lt;/ins&gt;a session and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;gathers &lt;/ins&gt;shares. When a session receives all shares&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;it &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;computes &lt;/ins&gt;the session key becomes the current session.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;''' &lt;/ins&gt;All other &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sessions &lt;/ins&gt;can &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;remain &lt;/ins&gt;in limbo or get discarded based on the memory capacity of the implementation and security requirement.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Session picking protocol for current occupant of the current session==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Session picking protocol for current occupant of the current session==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Suppose user &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; is in Session &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;. When new user &amp;lt;math&amp;gt;U_j&amp;lt;/math&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;send &lt;/del&gt;a join request, user &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;start &lt;/del&gt;a session in limbo &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;with the list of users in the current session plus the joining user. As &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;a &lt;/del&gt;part of initiation of each session &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; the current user &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;send &lt;/del&gt;a message of type:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Suppose user &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; is in Session &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;. When &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;a &lt;/ins&gt;new user &amp;lt;math&amp;gt;U_j&amp;lt;/math&amp;gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sends &lt;/ins&gt;a join request, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/ins&gt;user &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;starts &lt;/ins&gt;a session in limbo &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; with the list of users in the current session plus the joining user. As part of initiation of each session &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; the current user &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sends &lt;/ins&gt;a message of type:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt; sid, (U_1,y_1,...,U_{joiner},y_{joiner},...), kc_{i}, z_{i}&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt; sid, (U_1,y_1,...,U_{joiner},y_{joiner},...), kc_{i}, z_{i}&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; users are joining that session concurrently, there are &amp;lt;math&amp;gt;S_1,...,S_m&amp;lt;/math&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;sessions in-limbo which are receiving shares and authentication messages. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; users are joining that session concurrently, there are &amp;lt;math&amp;gt;S_1,...,S_m&amp;lt;/math&amp;gt; sessions in-limbo which are receiving shares and authentication messages. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If the &amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt; currently in room signal to leave the room a session &amp;lt;math&amp;gt;S_l&amp;lt;/math&amp;gt; is created. Each session &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; results in creation of session &amp;lt;math&amp;gt;S_{j'}&amp;lt;/math&amp;gt; with user &amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt; omitted. &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; is marked as dead. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;If the &amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt; currently in room signal to leave the room a session &amp;lt;math&amp;gt;S_l&amp;lt;/math&amp;gt; is created. Each session &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; results in &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/ins&gt;creation of session &amp;lt;math&amp;gt;S_{j'}&amp;lt;/math&amp;gt; with user &amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt; omitted. &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; is marked as dead.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;''' &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;User &lt;/del&gt;&amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;send &lt;/del&gt;the shares and authentication token necessary for each session. The first session which receives all &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;confirmation &lt;/del&gt;will become the main session, the joiner user of that session becomes the current session. All other &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; results in new session &amp;lt;math&amp;gt;S_{j''}&amp;lt;/math&amp;gt; to which &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;&amp;lt;math&amp;gt;U_{joiner}&amp;lt;/math&amp;gt; is added. previous &amp;quot;current&amp;quot; session becomes in-limbo.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The user &lt;/ins&gt;&amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sends &lt;/ins&gt;the shares and authentication token necessary for each session. The first session which receives all &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;confirmations &lt;/ins&gt;will become the main session, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and &lt;/ins&gt;the joiner user of that session becomes the current session. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;All other &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; results in new session &amp;lt;math&amp;gt;S_{j''}&amp;lt;/math&amp;gt; to which &amp;lt;math&amp;gt;U_{joiner}&amp;lt;/math&amp;gt; is added. previous &amp;quot;current&amp;quot; session becomes in-limbo.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;in-limbo -&amp;gt; {in-limbo, dead, current}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;in-limbo -&amp;gt; {in-limbo, dead, current}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;current -&amp;gt; in-limbo&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;current -&amp;gt; in-limbo&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maja</name></author>	</entry>

	<entry>
		<id>https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;diff=2948&amp;oldid=prev</id>
		<title>Vmon: No key confirmation</title>
		<link rel="alternate" type="text/html" href="https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;diff=2948&amp;oldid=prev"/>
				<updated>2015-03-13T15:56:04Z</updated>
		
		<summary type="html">&lt;p&gt;No key confirmation&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 15:56, 13 March 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Proposal for concurrent join=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Proposal for concurrent join=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;With having session key confirmation one &lt;/del&gt;can have following protocol to handle concurrent join.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;One &lt;/ins&gt;can have following protocol to handle concurrent join.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;each occupant can mark each session with one of the 5 status: {current, in-limbo, dead}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;each occupant can mark each session with one of the 5 status: {current, in-limbo, dead}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Vmon</name></author>	</entry>

	<entry>
		<id>https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;diff=2947&amp;oldid=prev</id>
		<title>Vmon: Simplifies the protocol without involving confirmation</title>
		<link rel="alternate" type="text/html" href="https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;diff=2947&amp;oldid=prev"/>
				<updated>2015-03-13T15:53:42Z</updated>
		
		<summary type="html">&lt;p&gt;Simplifies the protocol without involving confirmation&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 15:53, 13 March 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;With having session key confirmation one can have following protocol to handle concurrent join.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;With having session key confirmation one can have following protocol to handle concurrent join.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Each session &lt;/del&gt;can &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;have &lt;/del&gt;5 status: {current, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;potentially next&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;next, admissible, inadmissible&lt;/del&gt;}.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;each occupant &lt;/ins&gt;can &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;mark each session with one of the &lt;/ins&gt;5 status: {current, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;in-limbo&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;dead&lt;/ins&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''current''': User messages are being encrypted and decrypted in the current session. The join request will be process by this session.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''in-limbo''': A session which is receiving shares and confirmation, this session can potentially become the next session if it receive session confirmation from all users.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''dead''': The session is abonden and not going to become current session&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;==Session picking &lt;/del&gt;protocol &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;for &lt;/del&gt;current &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;occupant of &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;current &lt;/del&gt;session&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The &lt;/ins&gt;protocol &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;join one user at the time but is greedy and non-blocking in respect to several concurrent joiner and eventually results in join of all new users as long as &lt;/ins&gt;current &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;users in &lt;/ins&gt;the session &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;cooperate with join process. The global order of messages &lt;/ins&gt;is &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;essential &lt;/ins&gt;in &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;for the protocol to succeed which is &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;transport assumption for &lt;/ins&gt;&amp;lt;math&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;n+1sec&lt;/ins&gt;&amp;lt;/math&amp;gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;protocol&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Suppose user &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; &lt;/del&gt;is in &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Session &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;. When new user &amp;lt;math&amp;gt;Unew_j&amp;lt;/math&amp;gt; send &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;join request, user &lt;/del&gt;&amp;lt;math&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;U_i&lt;/del&gt;&amp;lt;/math&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;start an admissible session &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt;&amp;#160; with the list of authenticated participant in the room (not users in the session)&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;If &lt;/del&gt;&amp;lt;math&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;m&lt;/del&gt;&amp;lt;/math&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;users are joining that session concurrently, there are &amp;lt;math&amp;gt;S_1,..&lt;/del&gt;.,&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;S_m&amp;lt;/math&amp;gt; admissible which are receiving shares and authentication &lt;/del&gt;messages&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;==Session picking protocol for new user joining the room==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;New user start a join process by sending &lt;/ins&gt;&amp;lt;math&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(U_{joiner}, y_{joiner})&lt;/ins&gt;&amp;lt;/math&amp;gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;In respose&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;it receives &lt;/ins&gt;messages &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;of the format&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Suppose &lt;/del&gt;&amp;lt;math&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;S_j&amp;lt;/math&amp;gt; receives the mutual authentication of all new users in admissible session &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; that will become the potentially next session of &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt;. &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; then sends the combined list of (authenticated) participants in &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt;&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/del&gt;(U_1,y_1,...,&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Unew_m&lt;/del&gt;,&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ynew_m&lt;/del&gt;,...)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/math&amp;gt; to the room intending for new users not in the list to see and to authenticate to&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;and to old user to signal its potentially next session. It tags &amp;lt;math&amp;gt;S_1,...&lt;/del&gt;,&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;S_m&lt;/del&gt;&amp;lt;/math&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;as inadmissible sessions.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sid&lt;/ins&gt;, (U_1,y_1,...,&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;U_{joiner}&lt;/ins&gt;,&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;y_{joiner}&lt;/ins&gt;,...), &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;kc_{i}&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;z_{i}&lt;/ins&gt;&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;When &lt;/del&gt;&amp;lt;math&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;U_i&lt;/del&gt;&amp;lt;/math&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;receives all shares of potentially next &lt;/del&gt;session &amp;lt;math&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;S_j&lt;/del&gt;&amp;lt;/math&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;and the authenticated list from all users from current session&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;they tag &lt;/del&gt;the session &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;as next &lt;/del&gt;and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;send &lt;/del&gt;the session key &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;confirmation of &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt;&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The &lt;/del&gt;session &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;will not be tagged as inadmissible &lt;/del&gt;in &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;case &lt;/del&gt;of &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;new authenticated list, it just make new admissible session&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;From each user &lt;/ins&gt;&amp;lt;math&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;i&lt;/ins&gt;&amp;lt;/math&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. The joiner makes a &lt;/ins&gt;session &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;for each &lt;/ins&gt;&amp;lt;math&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sid&lt;/ins&gt;&amp;lt;/math&amp;gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;which contain them as a participant&lt;/ins&gt;, the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;user initiate a &lt;/ins&gt;session and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;gather shares. When a session receives all shares it compute &lt;/ins&gt;the session key &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;becomes the current session&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;All other &lt;/ins&gt;session &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;can remains &lt;/ins&gt;in &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;limbo or get discarded based on the memory capacity &lt;/ins&gt;of &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the implementation and security requirement&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;If &lt;/del&gt;user U_i &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;receives another authenticated list from another &lt;/del&gt;&amp;lt;math&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;S_j'&lt;/del&gt;&amp;lt;/math&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;then it tag &lt;/del&gt;&amp;lt;math&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;S_j&lt;/del&gt;&amp;lt;/math&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;inadmissible as well and &lt;/del&gt;start &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;an admissible &lt;/del&gt;session &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;with &lt;/del&gt;&amp;lt;math&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;plist_{&lt;/del&gt;S_j&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'} \cup plist_{S_j}&lt;/del&gt;&amp;lt;/math&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;as new admissible session waiting for authentication from new &lt;/del&gt;users.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;==Session picking protocol for current occupant of the current session==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Suppose &lt;/ins&gt;user &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;U_i&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;/&lt;/ins&gt;math&amp;gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;is in Session &amp;lt;math&amp;gt;S&lt;/ins&gt;&amp;lt;/math&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. When new user &lt;/ins&gt;&amp;lt;math&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;U_j&amp;lt;/math&amp;gt; send a join request, user &amp;lt;math&amp;gt;U_i&lt;/ins&gt;&amp;lt;/math&amp;gt; start &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;a &lt;/ins&gt;session &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;in limbo &lt;/ins&gt;&amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; with the list of &lt;/ins&gt;users &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;in the current session plus the joining user&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;As a part of initiation of each session &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; the current user send a message of type:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;If it receives key confirmation from all &amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt; in &lt;/del&gt;&amp;lt;math&amp;gt;(U_1,...,&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Unew_m&lt;/del&gt;,..)&amp;lt;/math&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;then it will make &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; as current session and send messages to this session.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sid, &lt;/ins&gt;(U_1&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;,y_1&lt;/ins&gt;,...,&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;U_{joiner},y_{joiner}&lt;/ins&gt;,&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;..)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, kc_{i}, z_{i}&lt;/ins&gt;&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Session picking protocol for new user joining the room==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;When a joining user Unew_l receives a list of potential users which is not including them, it authenticate to U_i's which new user has not yet authenticated to, and compute new share for the new share list. When they have all shares and authentication for plist_j then they send the key confirmation and wait for all of key confirmation.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;When they receive confirmation from every user &lt;/del&gt;in &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;plist_j&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;They make it current &lt;/del&gt;session &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;and start chatting&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;If &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; users are joining that session concurrently, there are &amp;lt;math&amp;gt;S_1,...,S_m&amp;lt;/math&amp;gt;&amp;#160; sessions &lt;/ins&gt;in&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;-limbo which are receiving shares and authentication messages&lt;/ins&gt;. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;If the &amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt; currently in room signal to leave the room a &lt;/ins&gt;session &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;S_l&amp;lt;/math&amp;gt; is created. Each session &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; results in creation of session &amp;lt;math&amp;gt;S_{j'}&amp;lt;/math&amp;gt; with user &amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt; omitted. &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; is marked as dead&lt;/ins&gt;. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;admissible -&lt;/del&gt;&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;{inadmissible&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;potentially next}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;User &amp;lt;math&lt;/ins&gt;&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;U_i&amp;lt;/math&amp;gt; send the shares and authentication token necessary for each session. The first session which receives all confirmation will become the main session&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the joiner user of that session becomes the current session. All other &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; results in new session &amp;lt;math&lt;/ins&gt;&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;S_&lt;/ins&gt;{&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;j''&lt;/ins&gt;}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/math&lt;/ins&gt;&amp;gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;to which&amp;#160; &amp;lt;math&amp;gt;U_&lt;/ins&gt;{&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;joiner&lt;/ins&gt;}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/math&amp;gt; is added. previous &amp;quot;current&amp;quot; session becomes in-limbo.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;potentially next -&lt;/del&gt;&amp;gt;{&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;inadmissible, next&lt;/del&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;next-&lt;/del&gt;&amp;gt;{&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;current&lt;/del&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;current &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;and inadmissible will be eventually discarded.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;in-limbo -&amp;gt; {in-limbo, dead, &lt;/ins&gt;current&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;current -&amp;gt; in-limbo&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Vmon</name></author>	</entry>

	<entry>
		<id>https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;diff=2941&amp;oldid=prev</id>
		<title>Vmon: First version</title>
		<link rel="alternate" type="text/html" href="https://learn.equalit.ie/mw/index.php?title=Np1sec/concurrent_join&amp;diff=2941&amp;oldid=prev"/>
				<updated>2015-02-12T18:42:00Z</updated>
		
		<summary type="html">&lt;p&gt;First version&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Proposal for concurrent join=&lt;br /&gt;
&lt;br /&gt;
With having session key confirmation one can have following protocol to handle concurrent join.&lt;br /&gt;
&lt;br /&gt;
Each session can have 5 status: {current, potentially next, next, admissible, inadmissible}.&lt;br /&gt;
&lt;br /&gt;
==Session picking protocol for current occupant of the current session==&lt;br /&gt;
Suppose user &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; is in Session &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;. When new user &amp;lt;math&amp;gt;Unew_j&amp;lt;/math&amp;gt; send a join request, user &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; start an admissible session &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt;  with the list of authenticated participant in the room (not users in the session).&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; users are joining that session concurrently, there are &amp;lt;math&amp;gt;S_1,...,S_m&amp;lt;/math&amp;gt; admissible which are receiving shares and authentication messages.&lt;br /&gt;
&lt;br /&gt;
Suppose &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; receives the mutual authentication of all new users in admissible session &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; that will become the potentially next session of &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt;. &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; then sends the combined list of (authenticated) participants in &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;(U_1,y_1,...,Unew_m,ynew_m,...)&amp;lt;/math&amp;gt; to the room intending for new users not in the list to see and to authenticate to, and to old user to signal its potentially next session. It tags &amp;lt;math&amp;gt;S_1,...,S_m&amp;lt;/math&amp;gt; as inadmissible sessions.&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; receives all shares of potentially next session &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; and the authenticated list from all users from current session, they tag the session as next and send the session key confirmation of &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt;. The session will not be tagged as inadmissible in case of new authenticated list, it just make new admissible session.&lt;br /&gt;
&lt;br /&gt;
If user U_i receives another authenticated list from another &amp;lt;math&amp;gt;S_j'&amp;lt;/math&amp;gt; then it tag &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; inadmissible as well and start an admissible session with &amp;lt;math&amp;gt;plist_{S_j'} \cup plist_{S_j}&amp;lt;/math&amp;gt; as new admissible session waiting for authentication from new users.&lt;br /&gt;
&lt;br /&gt;
If it receives key confirmation from all &amp;lt;math&amp;gt;U_l&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;(U_1,...,Unew_m,..)&amp;lt;/math&amp;gt; then it will make &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt; as current session and send messages to this session.&lt;br /&gt;
&lt;br /&gt;
==Session picking protocol for new user joining the room==&lt;br /&gt;
When a joining user Unew_l receives a list of potential users which is not including them, it authenticate to U_i's which new user has not yet authenticated to, and compute new share for the new share list. When they have all shares and authentication for plist_j then they send the key confirmation and wait for all of key confirmation.&lt;br /&gt;
&lt;br /&gt;
When they receive confirmation from every user in plist_j. They make it current session and start chatting.&lt;br /&gt;
&lt;br /&gt;
admissible -&amp;gt; {inadmissible, potentially next}&lt;br /&gt;
potentially next -&amp;gt;{inadmissible, next}&lt;br /&gt;
next-&amp;gt;{current}&lt;br /&gt;
&lt;br /&gt;
current and inadmissible will be eventually discarded.&lt;/div&gt;</summary>
		<author><name>Vmon</name></author>	</entry>

	</feed>