diff --git a/slides/2-3.tex b/slides/2-3.tex index dec3e09..d7bd530 100644 --- a/slides/2-3.tex +++ b/slides/2-3.tex @@ -1802,7 +1802,7 @@ \begin{frame}{The Group Messaging Problem} \begin{columns}[c] \begin{column}{0.5\textwidth} - \textbf{Two-party protocols work great for... two parties} + \textbf{Two-party protocols work great for\ldots two parties} \begin{itemize} \item Signal Protocol: Alice $\leftrightarrow$ Bob \item OTR: Real-time 1-on-1 chat @@ -1845,6 +1845,68 @@ \end{itemize} \end{frame} +\begin{frame}{WhatsApp's approach: sender keys} + \begin{columns}[c] + \begin{column}{0.5\textwidth} + \textbf{How Sender Keys Work:} + \begin{itemize} + \item Each group member has a ``sender key'' + \item Shared with all other members + \item One encryption per message (not per recipient!) + \end{itemize} + \textbf{Sender Key Components:} + \begin{itemize} + \item $SK = (spk, ck)$ + \item $spk$: Public signature key + \item $ck$: Symmetric chain key + \item Chain key ratchets forward + \end{itemize} + \end{column} + \begin{column}{0.5\textwidth} + \textbf{Sending a Message:} + \begin{enumerate} + \item Derive message key: $mk = H_1(ck)$ + \item Encrypt: $c = \func{enc}{mk, m}$ + \item Sign: $\sigma = \func{sign}{ssk, c}$ + \item Erase $mk$ immediately + \item Ratchet: $ck_{new} = H_2(ck)$ + \end{enumerate} + \textbf{Benefits:} + \begin{itemize} + \item $O(1)$ encryptions per message + \item Handles out-of-order delivery + \item Scales to large groups + \end{itemize} + \end{column} + \end{columns} +\end{frame} + +\begin{frame}{WhatsApp's approach: sender keys} + \bigimagewithcaption{sender_keys.png}{Source: David Balbás, Daniel Collins and Phillip Gajland, \textit{WhatsUpp with Sender Keys? Analysis, Improvements and Security Proofs}, IACR Asiacrypt, 2023.} +\end{frame} + +\begin{frame}{Sender keys: trade-offs} + \begin{columns}[c] + \begin{column}{0.5\textwidth} + \textbf{What we gain:} + \begin{itemize} + \item \textbf{Efficiency}: Single encryption + \item \textbf{Scalability}: Works for 256+ members\footnote{Recently increased to 1,024.} + \item \textbf{Battery life}: Less crypto work + \item \textbf{Bandwidth}: Constant message size + \end{itemize} + \end{column} + \begin{column}{0.5\textwidth} + \textbf{What we lose:} + \begin{itemize} + \item Weaker forward secrecy + \item Weaker post-compromise security + \item Malicious server can add/remove parties + \end{itemize} + \end{column} + \end{columns} +\end{frame} + \begin{frame}{Enter MLS: Messaging Layer Security} \begin{columns}[c] \begin{column}{0.5\textwidth} @@ -1867,8 +1929,6 @@ \end{columns} \end{frame} -% Sender keys, etc. - \begin{frame}{TreeKEM} \bigimagewithcaption{treekem.pdf}{Source: Joy of Cryptography} \end{frame} diff --git a/slides/images/sender_keys.png b/slides/images/sender_keys.png new file mode 100644 index 0000000..ec1a65d --- /dev/null +++ b/slides/images/sender_keys.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e523aebfd2be5699f98fc0de22a03c23ce75f7ef9529f32b0704b1c44bb79b27 +size 88380 diff --git a/website/index.html b/website/index.html index 2e3ad93..494d00a 100755 --- a/website/index.html +++ b/website/index.html @@ -241,6 +241,7 @@