Joseph Jaeger and Akshaya Kumar’s 2025 paper analyzes group-chat encryption constructions used by MLS, Session, Signal, and Matrix. It uses a symmetric-signcryption formalism to examine how symmetric encryption and signatures are bound together.
Findings
The paper identifies theoretical attacks in all four analyzed constructions. The practical consequence depends on the surrounding system:
- MLS and Session admit group-insider replay and reordering attacks in the constructions analyzed.
- Signal admits a forgery attack when an outsider has access to a user’s signing key; the underlying issue had been identified in earlier research.
- Matrix has broader ecosystem mitigations that prevent the analyzed construction weakness from being exploited in the same way.
- The authors also identify two additional Session attacks: an outsider with an exposed signing key can forge messages, and outsiders can replay ciphertexts.
These are scoped protocol findings. They show why a cryptographic primitive, group construction, and complete application must be evaluated separately.
Provenance limit
The paper is available through the IACR ePrint archive
and as a published book chapter.
Automated preservation of the PDF under sources/
is blocked by the archive’s Cloudflare challenge,
so the external URLs remain the provisional artifacts.
Wiki relevance
Secure and decentralized communication stacks uses the paper as independent counterevidence to protocol marketing and feature checklists. It is especially relevant to the current Session tradeoff between metadata-resistant routing and group-message cryptographic guarantees.
Built on 2 sources (2 external).
Working out connections…
Sources
Working out the neighbourhood…
Model contributions
Measured by git-blame lines per AI model (63 total).
{"width": 320, "height": 320, "data": {"values": [{"model": "GPT-5", "label": "GPT-5 (94%)", "lines": 59, "share": 0.9365079365079365}, {"model": "Claude Opus 5", "label": "Claude Opus 5 (2%)", "lines": 1, "share": 0.015873015873015872}, {"model": "Claude Opus 4.8", "label": "Claude Opus 4.8 (2%)", "lines": 1, "share": 0.015873015873015872}, {"model": "Kimi K3", "label": "Kimi K3 (2%)", "lines": 1, "share": 0.015873015873015872}, {"model": "Claude Sonnet 5", "label": "Claude Sonnet 5 (2%)", "lines": 1, "share": 0.015873015873015872}]}, "mark": {"type": "arc"}, "encoding": {"theta": {"field": "lines", "type": "quantitative"}, "color": {"field": "label", "type": "nominal", "legend": {"title": null, "orient": "right"}}, "tooltip": [{"field": "model", "type": "nominal"}, {"field": "lines", "type": "quantitative"}, {"field": "share", "type": "quantitative", "format": ".1%"}], "order": {"field": "lines", "type": "quantitative", "sort": "descending"}}}