Zhongtang Luo
Purdue University
Source: https://x.com/PR0GRAMMERHUM0R/status/1656766152817737733/
Source: https://medium.com/@justinomora/demystifying-the-signal-protocol-for-end-to-end-encryption-e2ee-ad6a567e6cb4
Decentralized Social Networking
~10 million users
Decentralized Anonymous Communication
~2 million users
Cryptocurrency
~$4 Trillion Market Cap
Develop interesting cryptographic tools
Find and achieve application goals
Examine and study existing systems
Develop interesting cryptographic tools
Find and achieve application goals
Examine and study existing systems
~70 million monthly users
~3 billion monthly users
[MKSG23] Parakeet: Practical key transparency for end-to-end encrypted messaging (NDSS'23)
Source: https://security.apple.com/blog/private-cloud-compute/
Source: https://engineering.fb.com/2025/04/29/security/whatsapp-private-processing-ai-tools/
[LJGK25] Cauchyproofs: Batch-Updatable Vector Commitment with Easy Aggregation and Application to Stateless Blockchains (IEEE SP'25)
updates proofs efficiently
updates digest inefficiently
(large proof size)
updates digest efficiently
(small aggregatable proof size)
updates proofs inefficiently
In Cauchyproofs [LJGK25], we show that batch proof updates in the KZG (algebra-based) vector commitment are quasi-linear through multiplication with Cauchy matrices
[LJGK25] Cauchyproofs: Batch-Updatable Vector Commitment with Easy Aggregation and Application to Stateless Blockchains (IEEE SP'25)
| Proof Size | ||||
| $O(\sqrt{n})$ |
BalanceProofs
[WanUliPap22] |
|||
| SNARK |
HyperProofs
[SCPT22] Merkle [PSGH24] |
|||
| $O(1)$ |
Cauchyproofs
[LJGK25] |
aSVC
[TABD20] |
||
| $\tilde{O}(|\alpha|+|\beta|)$ | $\tilde{O}((|\alpha|+|\beta|)^{5/4})$ | $\tilde{O}(|\alpha|\cdot|\beta|)$ | Batch Update Complexity |
multiplication with Cauchy matrices
Most algebra-based vector commits are based on quotient:
$$ \begin{align*} \underbrace{C}_{\text{commitment}}&=\sum_{i}\left(\sum_{j\neq i}\underbrace{\omega_j}_{\text{index}}\right)\underbrace{v_i}_{\text{value}}, \\ \underbrace{Q_k}_{\text{proof}}&=\sum_{i\neq k}\left(\sum_{j\neq i, j\neq k}\omega_j\right)v_i, \\ \text{Verification: }&C\overset{?}{=}Q_k\cdot\omega_k+\left(\sum_{j\neq k}\omega_j\right)\cdot v_k, \\ \text{Hardness: }&\frac{C-D}{\omega_{k}}\text{ is hard to solve.} \end{align*} $$
(Dynamic) structured matrix-vector multiplication is studied in theoretical computer science with many implications!
In Cauchyproofs [LJGK25], we show that batch proof updates in the KZG (algebra-based) vector commitment are quasi-linear through multiplication with Cauchy matrices
[LJGK25] Cauchyproofs: Batch-Updatable Vector Commitment with Easy Aggregation and Application to Stateless Blockchains (IEEE SP'25)
Interesting observation: Online updates are related to dynamic evaluation of Fourier transforms
Open problem last studied 20 years ago! [FHM01]
[FHM01] Lower Bounds for Dynamic Algebraic Problems
Develop interesting cryptographic tools
Find and achieve application goals
Examine and study existing systems
doesn't want to reveal
wants to reveal only a decryption
process of
worried the user might use some other random
cannot trust the decryption process of
The oracle joins
[ZMMG20] DECO: Liberating Web Data Using Decentralized Oracles for TLS (CCS'20)
[ChaCuiYue23] DIDO: Data Provenance from Restricted TLS 1.3 Websites (IPSEC'23)
[XYWY24] Lightweight Authentication of Web Data via Garble-Then-Prove (USENIX SEC'24)
The user proves
[LEFS25] Janus: Fast Privacy-Preserving Data Provenance for TLS (PETS'25)
[ELWG25] ORIGO: Proving Provenance of Sensitive Data with Constant Communication (PETS'25)
The user use different keys to decrypt
Hard to find different keys that decrypt
One popular way to achieve key commitment
Add 128 bytes of 0s to the front of the plaintext
Hard to decrypt to the same plaintext (0s) with different keys
Major cipher suites such as AES-GCM, Chacha20-Poly1305, etc.
AES-GCM: $\underbrace{c_i}_{\text{ciphertext}}=\underbrace{m_i}_{\text{plaintext}}+\underbrace{E_k}_{\text{cipher}}(\underbrace{n}_{\text{nonce}}+\underbrace{i}_{\text{block index}})$
Since for two keys $k$ and $k'$
we
have
$c_i=c'_i$ and $m_i=m'_i$
for $0\le
i<b$
$E_k(n+i)=E_{k'}(n'+i)\ (0\le i< b)$
$E_k(n+i)=E_{k'}(n'+i)\ (0\le i< b)$
| $E_k$: | $\cdots$ | $\cdots$ | $\cdots$ | |||||
|
$0$
|
$n$
|
$n+b$
|
$2^{128}-1$
|
|||||
| $E_{k'}$: | $\cdots$ | $\cdots$ | $\cdots$ | |||||
|
$0$
|
$n'$
|
$n'+b$
|
$2^{128}-1$
|
HTTP/1.1 200 OK
Date: Wed, 24 Jul 2024 23:41:36 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=UTF-8
...
HTTP/1.1 200 OK
date: Wed, 24 Jul 2024 23:47:49 GMT
perf: 7402827104
expiry: Tue, 31 Mar 1981 05:00:00 GMT
pragma: no-cache
...
HTTP/1.1 200 OK
Date: Wed, 24 Jul 2024 23:41:36 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=UTF-8
...
HTTP/1.1 200 OK
date: Wed, 24 Jul 2024 23:47:49 GMT
perf: 7402827104
expiry: Tue, 31 Mar 1981 05:00:00 GMT
pragma: no-cache
...
HTTP/1.1 200 OK
Date: Wed, 24 Jul 2024 23:41:36 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=UTF-8
...
HTTP/1.1 200 OK
date: Wed, 24 Jul 2024 23:47:49 GMT
perf: 7402827104
expiry: Tue, 31 Mar 1981 05:00:00 GMT
pragma: no-cache
...
| Work | Scenario | Record Type | Resp. | Key-Related | Record | ||
|---|---|---|---|---|---|---|---|
| Size | Off. | On. | Off. | On. | |||
| (B) | (s) | (s) | (s) | (s) | |||
| ORIGO (Groth16) | Circuit | Open (32 B) | 1429 | 22.47 | 1.08 | 10.55 | 0.61 |
| ORIGO (Plonk) | Circuit | Open (32 B) | 1429 | 27.51 | 14.84 | 13.99 | 7.67 |
| Janus | LAN | Open (256 B) | 2048 | 3.94 | 4.79 | 1.13 | 2.08 |
| Xie et al. | LAN | — | 1024 | — | 0.61 | — | |
| DECO (512 B Query) | LAN | — | — | 2.28 | 0.42 | — | |
| DECO (512 B Query) | WAN (100 Mbps) | — | — | 22.81 | 5.20 | — | |
| DECO (1 KB Query) | LAN | — | — | 2.50 | 0.47 | — | |
| DECO (1 KB Query) | WAN (100 Mbps) | — | — | 24.59 | 7.42 | — | |
| DECO | Circuit | Binary Options | — | — | — | — | 12.97 |
| DECO | Circuit | Age Proof | — | — | — | — | 3.67 |
| DECO | Circuit | Price Discrimination | — | — | — | — | 12.68 |
[LJSK25] Proxying Is Enough: Security of Proxying in TLS Oracles and AEAD Context Unforgeability (AFT'25)
| Work | Scenario | Record Type | Resp. | Key-Related | Record | ||
|---|---|---|---|---|---|---|---|
| Size | Off. | On. | Off. | On. | |||
| (B) | (s) | (s) | (s) | (s) | |||
| ORIGO (Groth16) | Circuit | Open (32 B) | 1429 | 22.47 | 1.08 | 10.55 | 0.61 |
| ORIGO (Plonk) | Circuit | Open (32 B) | 1429 | 27.51 | 14.84 | 13.99 | 7.67 |
| Janus | LAN | Open (256 B) | 2048 | 3.94 | 4.79 | 1.13 | 2.08 |
| Xie et al. | LAN | — | 1024 | — | 0.61 | — | |
| DECO (512 B Query) | LAN | — | — | 2.28 | 0.42 | — | |
| DECO (512 B Query) | WAN (100 Mbps) | — | — | 22.81 | 5.20 | — | |
| DECO (1 KB Query) | LAN | — | — | 2.50 | 0.47 | — | |
| DECO (1 KB Query) | WAN (100 Mbps) | — | — | 24.59 | 7.42 | — | |
| DECO | Circuit | Binary Options | — | — | — | — | 12.97 |
| DECO | Circuit | Age Proof | — | — | — | — | 3.67 |
| DECO | Circuit | Price Discrimination | — | — | — | — | 12.68 |
[LJSK25] Proxying Is Enough: Security of Proxying in TLS Oracles and AEAD Context Unforgeability (AFT'25)
Develop interesting cryptographic tools
Find and achieve application goals
Examine and study existing systems
Decentralized Anonymous Communication
~2 million users
Client asks one directory authority
What if one authority is compromised?
Client asks nine directory authorities
9x bandwidth overhead
Nine authorities communicate and sign a consensus document
We are the first to conduct a systematic documentation and study of the protocol [LBNK24]
[LBNK24] Attacking and Improving the Tor Directory Protocol (IEEE SP'24)
We discover a
critical vulnerability
that allows any single authority to corrupt relay information to
deanonymize users by equivocating
We implemented and merged a lightweight fix that detects equivocation by checking the message sent from each authority
Source: https://gitlab.torproject.org/tpo/network-health/depictor/-/merge_requests/1
In our subsequent work [LZNK26], we discover a DDoS attack that disables the directory protocol through 5 minutes of attack, highlighting the need for a re-design of the protocol based on robust assumptions
[LZNK26] Five Minutes of DDoS Brings down Tor: DDoS Attacks on the Tor Directory Protocol and Mitigations (EuroSys'26)
After some unknown global synchronization time (GST), every sent message is received within a known time bound $\Delta$
Safe
in bad network
Live
in good network
Guarantees delivery of every message from a correct sender when GST is
zero
Guarantees delivery of $(n-f)$ messages when GST is
non-zero
[LZNK25] Five Minutes of DDoS Brings down Tor: DDoS Attacks on the Tor Directory Protocol and Mitigations
We also propose a protocol that achieves interactive consistency under partial synchrony, and implemented a Rust prototype
Robust assumptions translate to security wins: our prototype has a comparable latency while being immune to DDoS attacks in the paper
(Is dynamic evaluation of
Fourier transforms sublinear?)
(Tor has a vulnerability!)
Develop interesting cryptographic tools
Find and achieve application goals
Examine and study existing systems