## 4 Structure of SFrame Video Conferencing System
### SFrame's Key Management System  
The SFrame protocol was proposed to separate the use of the key from the encryption algorithm. Using this design, any key management system with E2 EE security can be applied to SFrame, for example, E2 EE security protocols such as Signal Protocol, Olm Protocol, MLS, etc. Currently, the IETF draft document on SFrame recommends the use of MLS as the key management system [3]. Analysis of MLS Protocol  
The MLS protocol is a key management system in the process of standardization by the IETF. MLS has been standardized since 2018, and recently, an RFC standard was proposed [4]. Figure 3 shows the initial group creation process for the MLS key management system. To describe this process, the Ratchet Tree, the key schedule of the MLS, and Secret Tree  
Figure 2: SFrame encryption/decryption process. structures have to be explained; however, this paper describes the process of adding members without explaining the tree structure. We describe progress of Figure 3 in terms of Algorithm 2:  
```
```  
\(A\): host, \(B\): client, \(\textit{pk}_{I}\): public key, \(\textit{sk}_{I}\): secret key, \(\textit{credential}_{I}\): credential, \(IVK_{I}\): verification key, \(\textit{ISK}_{I}\): signing key, \(\textit{ID}_{I}\): identity, \(\textit{path}\_{secret}\), \(\textit{joiner}\_{secret}\): parameters to generate key schedule, \(\textit{psk}\): pre-shared key AS: Authentication Service
``` ```
**Algorithm 2**E2E Key Exchange Process of MLS Protocol  
We describe progress of Figure 3 in terms of Algorithm 2:
```

```
1:procedure(MLS's E2 EE key exchange process)
2: For user \(A\), \(B\)do \(\triangleright I\in\{A\), \(B\}\)
3:\(\textit{credential}_{I}\stackrel{{ Verify}}{{\leftarrow}}\textit{AS}\) \(\triangleright\textit{credential}_{I}=\{IVK_{I}\), \(ID_{I}\}\)
4: Directory \(\leftarrow\) KeyPackage(\(I\)) \(\triangleright\)KeyPackage(\(I\))= \(\{pk_{I}\), \(\textit{ciphersuite}_{I}\), \(\textit{sig}_{I}\}\)
5: For user \(A\)do
6:\(\textit{path}\_{secret}[0]\), \(init\_{secret}[0]\)\(\stackrel{{\textsf{S}}}{{\leftarrow}}\) Secure RNG
7:\(\textit{joiner}\_{secret}\leftarrow\textbf{HKDF}(\textit{path}\_{secret}[0]\), \(init\_{secret}[0]\)
8: Directory \(\leftarrow\)Enc(\(\textit{pk}_{B}\), \(path\_{secret}[0]\)\(\parallel\)\(\textit{joiner}\_{secret}\)\(\parallel\)\(\textit{psk}(option)\))
9: For user \(B\)do
10:\(\textit{path}\_{secret}[0]\), \(joiner\_{secret}\), \(\textit{psk}(option)\)\(\leftarrow\)Dec(\(\textit{sk}_{B}\), Enc(\(\textit{pk}_{B}\), \(path\_{secret}[0]\)\(\parallel\)\(joiner\_{secret}\)\(\parallel\)\(\textit{psk}(option)\)))
11:endprocedure
```

**Algorithm 3**E2E Key Exchange Process of MLS Protocol

We describe progress of Figure 3 in terms of Algorithm 2:

```
1:procedure(MLS's E2 EE key exchange process)
2: For user \(A\), \(B\)do \(\triangleright I\in\{A\), \(B\}\)
3:\(\textit{credential}_{I}\stackrel{{ Verify}}{{\leftarrow}}\textit{AS}\) \(\triangleright\textit{credential}_{I}=\{IVK_{I}\), \(ID_{I}\}\)
4: Directory \(\leftarrow\) KeyPackage(\(I\)) \(\triangleright\)KeyPackage(\(I\))= \(\{pk_{I}\), \(\textit{ciphersuite}_{I}\), \(\textit{sig}_{I}\}\)
5: For user \(A\)do
6:\(\textit{path}\_{secret}[0]\), \(init\_{secret}[0]\)\(\stackrel{{\textsf{S}}}{{\leftarrow}}\) Secure RNG
7:\(\textit{joiner}\_{secret}\leftarrow\textbf{HKDF}(\textit{path}\_{secret}[0]\), \(init\_{secret}[0]\)
8: Directory \(\leftarrow\)Enc(\(\textit{pk}_{B}\), \(path\_{secret}[0]\)\(\parallel\)\(joiner\_{secret}\)\(\parallel\)\(\textit{psk}(option)\))
9: For user \(B\)do
10:\(\textit{path}\_{secret}[0]\), \(joiner\_{secret}\), \(\textit{psk}(option)\)\(\leftarrow\)Dec(\(\textit{sk}_{B}\), Enc(\(\textit{pk}_{B}\), \(path\_{secret}[0]\)\(\parallel\)\(joiner\_{secret}\)\(\parallel\)\(\textit{psk}(option)\)))
11:endprocedure
```

**Algorithm 4**E2E Key Exchange Process of MLS Protocol

Assume that a host creates a group, and a client joins a group. They join the group and present their credentials for authentication and undergo verification by the Authentication Service (AS) of the MLS server.