Services/Sync/P2P Key Exchange And Rotation: Difference between revisions

Jump to navigation Jump to search
Simplified Messaging protocol v1
(Simplified Registration protocol v1)
(Simplified Messaging protocol v1)
Line 93: Line 93:
<ol start="0">
<ol start="0">
<li>Each client publishes an identity key (AI, BI) and a set of ephemeral keys (AE{1..n}, BE{1..n})</li>
<li>Each client publishes an identity key (AI, BI) and a set of ephemeral keys (AE{1..n}, BE{1..n})</li>
<li>Client A generates a new ephemeral key (AE) and randomly selects one of client B's ephemeral keys (BE). Using 3DHE and a KDF, client A generates the shared secret (S) then sends message including own ephemeral key (AE) and identifier for client B's ephemeral key (X). Body can be encrypted with shared secret.</li>
<li>Client A generates a new ephemeral key (AE) and randomly selects one of client B's ephemeral keys (BE). Using 3DHE and a KDF, client A generates the shared secret (S) then sends message including own ephemeral key (AE) and identifier for client B's ephemeral key (X). Client B can now also generate the shared secret (S) and hence the message body can be encrypted immediately.</li>
<li>Client B receives client A's ephemeral key (AE) and identifier for own ephemeral key (BE). Using 3DHE and a KDF, client B generates the shared secret (S) and can then decrypt the message body.</li>
<li>Both client A and client B can now continue to communicate using the shared secret (S) as a session key</li>
</ol>
</ol>
Both Client A and Client B can now continue to communicate using the shared secret (S) as a session key.


<pre>
<pre>
Line 104: Line 104:
                                                   BE{1..n}p        BE{1..n}s
                                                   BE{1..n}p        BE{1..n}s


t1        AIs                                    AIp, BIp                    
t1        AIs                                    AIp, BIp         BIs
           AEs                                    AEp, BEp        
           AEs                                    AEp, BEp         BEs
          BIp                                                       
           S = KDF(3DHE(AIs, AEs, BIp, BEp))                       S = KDF(3DHE(BIs, BEs, AIp, AEp))
          BEp = BE[X]p, X ∈ {1..n}                                           
                                                                 
           S = KDF(3DHE(AIs, AEs, BIp, BEp))  
 
t2                                                                BIs
                                                                  BEs ∈ BE[X]s, X ∈ {1..n}
                                                                  AIp
                                                                  AEp
                                                                  S = KDF(3DHE(BIs, BEs, AIp, AEp))
</pre>
</pre>


113

edits

Navigation menu