Digital Signatures, CCA Security, Authenticated Encryption and HPKE
The public-key alternative to message authentication.
accept or rejectThe same security framework, a new setting.
Digital signatures with trapdoors.
Discrete log-based signatures.
How does the verifier get the right public key?
The right security target for encryption.
0x00 0x02; “valid padding” means the decrypted RSA output starts with that prefix0x00 0x02?”
Closing the loop on textbook RSA.
From CCA security to practical AEAD.
reject
reject (useless)reject: decrypt or reject if tamperedAES-GCM internals and nonce misuse resistance.
The public-key abstraction that makes hybrid encryption clean.
\[ \begin{aligned} &\textbf{Encrypt}(pk, m): \\ &\quad (k, c_\text{KEM}) \leftarrow \text{Encaps}(pk) \\ &\quad c_\text{DEM} \leftarrow E_s(k, m) \\ &\quad \textbf{return } (c_\text{KEM}, c_\text{DEM}) \\[4pt] &\textbf{Decrypt}(sk, (c_\text{KEM}, c_\text{DEM})): \\ &\quad k \leftarrow \text{Decaps}(sk, c_\text{KEM}) \\ &\quad \textbf{return } D_s(k, c_\text{DEM}) \end{aligned} \]
The KEM behind almost every deployed hybrid scheme.
Hybrid public-key encryption: RFC 9180.
alg, HPKE ciphersuite IDs)| Mode | Extra input | Sender auth | Typical use case |
|---|---|---|---|
| Base (0x00) | None | No | Anonymous (TLS-ECH, OHTTP) |
| PSK (0x01) | PSK + PSK_ID | PSK only | IoT bootstrapping |
| Auth (0x02) | Sender static key | Yes | Secure logging |
| Auth-PSK (0x03) | Both | Yes | Hardened channels |
Two AEAD edge cases worth knowing.
\[ \begin{aligned} &(k_\text{auth}, k_\text{enc}) \leftarrow \text{DeriveKeys}(k, N) \\ &s \leftarrow \text{POLYVAL}(k_\text{auth}, d, m) \oplus N \\ &\text{tag} \leftarrow E(k_\text{enc}, s) \\ &c \leftarrow \text{AES-CTR}(k_\text{enc}, \text{tag}, m) \\ &\textbf{return } (c, \text{tag}) \end{aligned} \]
What did we learn?
Ask now, catch me after class, or email eoin@eoin.ai