“Signal āđ€āļ›āļīāļ”āļ•āļąāļ§ Triple Ratchet — āļ›āđ‰āļ­āļ‡āļāļąāļ™āđāļŠāļ•āļˆāļēāļāļ āļąāļĒāļ„āļ§āļ­āļ™āļ•āļąāļĄ āļ”āđ‰āļ§āļĒ SPQR āđāļĨāļ°āļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāđāļšāļšāļœāļŠāļĄāļœāļŠāļēāļ™”

āđƒāļ™āļĒāļļāļ„āļ—āļĩāđˆāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļŠāđˆāļ§āļ™āļ•āļąāļ§āļœāđˆāļēāļ™āđāļ­āļ›āđāļŠāļ•āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™āđ€āļĢāļ·āđˆāļ­āļ‡āļžāļ·āđ‰āļ™āļāļēāļ™āļ‚āļ­āļ‡āļŠāļĩāļ§āļīāļ•āļ›āļĢāļ°āļˆāļģāļ§āļąāļ™ āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļ‚āļ­āļ‡āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļˆāļķāļ‡āđ€āļ›āđ‡āļ™āļŠāļīāđˆāļ‡āļ—āļĩāđˆāđ„āļĄāđˆāļ­āļēāļˆāļĨāļ°āđ€āļĨāļĒ āļĨāđˆāļēāļŠāļļāļ” Signal āđ„āļ”āđ‰āđ€āļ›āļīāļ”āļ•āļąāļ§āļāļēāļĢāļ­āļąāļ›āđ€āļāļĢāļ”āļ„āļĢāļąāđ‰āļ‡āļŠāļģāļ„āļąāļāļ‚āļ­āļ‡āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāļ‚āļ­āļ‡āļ•āļ™āđ€āļ­āļ‡ āđ‚āļ”āļĒāđ€āļžāļīāđˆāļĄāļāļĨāđ„āļāđƒāļŦāļĄāđˆāļŠāļ·āđˆāļ­āļ§āđˆāļē SPQR (Sparse Post-Quantum Ratchet) āđ€āļ‚āđ‰āļēāļĄāļēāđ€āļŠāļĢāļīāļĄāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ‚āļ­āļ‡āļĢāļ°āļšāļš Double Ratchet āđ€āļ”āļīāļĄ āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™ Triple Ratchet āļ—āļĩāđˆāļŠāļēāļĄāļēāļĢāļ–āļ•āđ‰āļēāļ™āļ—āļēāļ™āļāļēāļĢāđ‚āļˆāļĄāļ•āļĩāļˆāļēāļāļ„āļ­āļĄāļžāļīāļ§āđ€āļ•āļ­āļĢāđŒāļ„āļ§āļ­āļ™āļ•āļąāļĄāđƒāļ™āļ­āļ™āļēāļ„āļ•āđ„āļ”āđ‰

SPQR āļ–āļđāļāļ­āļ­āļāđāļšāļšāļĄāļēāđ€āļžāļ·āđˆāļ­āđ€āļŠāļĢāļīāļĄāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđƒāļ™āļŠāļ­āļ‡āļ”āđ‰āļēāļ™āļŦāļĨāļąāļāļ„āļ·āļ­ Forward Secrecy (FS) āđāļĨāļ° Post-Compromise Security (PCS) āđ‚āļ”āļĒāđƒāļŠāđ‰āđ€āļ—āļ„āļ™āļīāļ„āļāļēāļĢāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļļāļāđāļˆāđāļšāļšāđƒāļŦāļĄāđˆāļ—āļĩāđˆāđ€āļĢāļĩāļĒāļāļ§āđˆāļē ML-KEM āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āļĄāļēāļ•āļĢāļāļēāļ™āļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāļ—āļĩāđˆāļ—āļ™āļ—āļēāļ™āļ•āđˆāļ­āļāļēāļĢāļ–āļ­āļ”āļĢāļŦāļąāļŠāļ”āđ‰āļ§āļĒāļ„āļ§āļ­āļ™āļ•āļąāļĄ āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāļ‡āļēāļ™āļĢāđˆāļ§āļĄāļāļąāļšāļĢāļ°āļšāļšāđ€āļ”āļīāļĄāđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļĢāļēāļšāļĢāļ·āđˆāļ™

āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļāļēāļĢāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļļāļāđāļˆāļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļđāļ‡āļŠāļļāļ” āļ—āļĩāļĄāļ‡āļēāļ™ Signal āđ„āļ”āđ‰āļ­āļ­āļāđāļšāļšāļĢāļ°āļšāļš state machine āļ—āļĩāđˆāļŠāļēāļĄāļēāļĢāļ–āļˆāļąāļ”āļāļēāļĢāļāļēāļĢāļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāđāļšāļš chunk āđāļĨāļ°āđƒāļŠāđ‰āđ€āļ—āļ„āļ™āļīāļ„ erasure code āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļāļēāļĢāļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļĄāļĩāļ„āļ§āļēāļĄāļĒāļ·āļ”āļŦāļĒāļļāđˆāļ™āđāļĨāļ°āļ—āļ™āļ•āđˆāļ­āļāļēāļĢāļŠāļđāļāļŦāļēāļĒāļ‚āļ­āļ‡āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļĢāļ°āļŦāļ§āđˆāļēāļ‡āļ—āļēāļ‡

āļ—āļĩāđˆāļŠāļģāļ„āļąāļāļ„āļ·āļ­ Triple Ratchet āđ„āļĄāđˆāđ„āļ”āđ‰āđāļ—āļ™āļ—āļĩāđˆ Double Ratchet āđāļ•āđˆāđƒāļŠāđ‰āļĢāđˆāļ§āļĄāļāļąāļ™ āđ‚āļ”āļĒāļ™āļģāļāļļāļāđāļˆāļˆāļēāļāļ—āļąāđ‰āļ‡āļŠāļ­āļ‡āļĢāļ°āļšāļšāļĄāļēāļœāļŠāļĄāļœāđˆāļēāļ™ Key Derivation Function āđ€āļžāļ·āđˆāļ­āļŠāļĢāđ‰āļēāļ‡āļāļļāļāđāļˆāđƒāļŦāļĄāđˆāļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđāļšāļšāļœāļŠāļĄāļœāļŠāļēāļ™ āļ‹āļķāđˆāļ‡āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āđˆāļē āļœāļđāđ‰āđ‚āļˆāļĄāļ•āļĩāļ•āđ‰āļ­āļ‡āļŠāļēāļĄāļēāļĢāļ–āđ€āļˆāļēāļ°āļ—āļąāđ‰āļ‡āļĢāļ°āļšāļšāđ€āļ”āļīāļĄāđāļĨāļ°āļĢāļ°āļšāļšāđƒāļŦāļĄāđˆāļžāļĢāđ‰āļ­āļĄāļāļąāļ™ āļˆāļķāļ‡āļˆāļ°āļŠāļēāļĄāļēāļĢāļ–āļ–āļ­āļ”āļĢāļŦāļąāļŠāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđ„āļ”āđ‰

āļāļēāļĢāđ€āļ›āļīāļ”āļ•āļąāļ§ SPQR āļĒāļąāļ‡āļĄāļēāļžāļĢāđ‰āļ­āļĄāļāļēāļĢāļ­āļ­āļāđāļšāļšāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ– “downgrade” āđ„āļ”āđ‰āđƒāļ™āļāļĢāļ“āļĩāļ—āļĩāđˆāļœāļđāđ‰āđƒāļŠāđ‰āļĒāļąāļ‡āđ„āļĄāđˆāđ„āļ”āđ‰āļ­āļąāļ›āđ€āļ”āļ•āđāļ­āļ› āļ‹āļķāđˆāļ‡āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđ„āļĄāđˆāļŠāļ°āļ”āļļāļ” āđāļĨāļ°āļĒāļąāļ‡āļ„āļ‡āļ›āļĨāļ­āļ”āļ āļąāļĒāđƒāļ™āļĢāļ°āļ”āļąāļšāđ€āļ”āļīāļĄ āļˆāļ™āļāļ§āđˆāļēāļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āļˆāļ°āļ„āļĢāļ­āļšāļ„āļĨāļļāļĄāļ—āļļāļāļœāļđāđ‰āđƒāļŠāđ‰

Signal āļĒāļąāļ‡āđƒāļŠāđ‰āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāļ–āļđāļāļ•āđ‰āļ­āļ‡āļ‚āļ­āļ‡āđ‚āļ„āđ‰āļ”āļœāđˆāļēāļ™āļĢāļ°āļšāļš formal verification āđ‚āļ”āļĒāđƒāļŠāđ‰āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āđ€āļŠāđˆāļ™ ProVerif āđāļĨāļ° F* āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļĄāļąāđˆāļ™āđƒāļˆāļ§āđˆāļēāđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāđƒāļŦāļĄāđˆāļĄāļĩāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļˆāļĢāļīāļ‡āļ•āļēāļĄāļ—āļĩāđˆāļ­āļ­āļāđāļšāļš āđāļĨāļ°āļˆāļ°āļĒāļąāļ‡āļ„āļ‡āļ›āļĨāļ­āļ”āļ āļąāļĒāđāļĄāđ‰āļĄāļĩāļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āđƒāļ™āļ­āļ™āļēāļ„āļ•

āļ‚āđ‰āļ­āļĄāļđāļĨāļŠāļģāļ„āļąāļāļˆāļēāļāļ‚āđˆāļēāļ§
Signal āđ€āļ›āļīāļ”āļ•āļąāļ§ Triple Ratchet āđ‚āļ”āļĒāđ€āļžāļīāđˆāļĄ SPQR āđ€āļ‚āđ‰āļēāļĄāļēāđ€āļŠāļĢāļīāļĄ Double Ratchet
SPQR āđƒāļŠāđ‰ ML-KEM āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āļĄāļēāļ•āļĢāļāļēāļ™āļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāļ—āļĩāđˆāļ—āļ™āļ•āđˆāļ­āļ„āļ§āļ­āļ™āļ•āļąāļĄ
Triple Ratchet āđƒāļŦāđ‰āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđāļšāļš hybrid āđ‚āļ”āļĒāļœāļŠāļĄāļāļļāļāđāļˆāļˆāļēāļāļŠāļ­āļ‡āļĢāļ°āļšāļš
āđƒāļŠāđ‰ state machine āđāļĨāļ° erasure code āđ€āļžāļ·āđˆāļ­āļˆāļąāļ”āļāļēāļĢāļāļēāļĢāļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆ
āļĢāļ°āļšāļšāļŠāļēāļĄāļēāļĢāļ– downgrade āđ„āļ”āđ‰āļŦāļēāļāļœāļđāđ‰āđƒāļŠāđ‰āļĒāļąāļ‡āđ„āļĄāđˆāļĢāļ­āļ‡āļĢāļąāļš SPQR
āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāļ–āļđāļāļ•āđ‰āļ­āļ‡āļ‚āļ­āļ‡āđ‚āļ„āđ‰āļ”āđƒāļŠāđ‰ formal verification āļœāđˆāļēāļ™ ProVerif āđāļĨāļ° F*
SPQR āļˆāļ°āļ–āļđāļāļ™āļģāđ„āļ›āđƒāļŠāđ‰āļāļąāļšāļ—āļļāļāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđƒāļ™āļ­āļ™āļēāļ„āļ•āđ€āļĄāļ·āđˆāļ­āļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āļ„āļĢāļ­āļšāļ„āļĨāļļāļĄ
āļœāļđāđ‰āđƒāļŠāđ‰āđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļ—āļģāļ­āļ°āđ„āļĢāđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄ āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļˆāļ°āđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āđ€āļšāļ·āđ‰āļ­āļ‡āļŦāļĨāļąāļ‡

āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļŠāļĢāļīāļĄāļˆāļēāļāļ āļēāļĒāļ™āļ­āļ
Double Ratchet āđ€āļ›āđ‡āļ™āļĢāļ°āļšāļšāļ—āļĩāđˆāđƒāļŦāđ‰ FS āđāļĨāļ° PCS āđ‚āļ”āļĒāđƒāļŠāđ‰ ECDH āđāļĨāļ° hash function
ML-KEM āđ€āļ›āđ‡āļ™āļŦāļ™āļķāđˆāļ‡āđƒāļ™āļĄāļēāļ•āļĢāļāļēāļ™āļ—āļĩāđˆ NIST āļĢāļąāļšāļĢāļ­āļ‡āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāļŦāļĨāļąāļ‡āļĒāļļāļ„āļ„āļ§āļ­āļ™āļ•āļąāļĄ
Erasure code āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđāļšāļš chunk āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āđ€āļĢāļĩāļĒāļ‡āļĨāļģāļ”āļąāļš
Formal verification āđ€āļ›āđ‡āļ™āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāļ–āļđāļāļ•āđ‰āļ­āļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāđƒāļ™āļĢāļ°āļ”āļąāļšāļ„āļ“āļīāļ•āļĻāļēāļŠāļ•āļĢāđŒ
SPQR āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļžāļąāļ’āļ™āļēāđ‚āļ”āļĒāļĢāđˆāļ§āļĄāļĄāļ·āļ­āļāļąāļšāļ™āļąāļāļ§āļīāļˆāļąāļĒāļˆāļēāļ PQShield, AIST āđāļĨāļ° NYU

https://signal.org/blog/spqr/
🔐 “Signal āđ€āļ›āļīāļ”āļ•āļąāļ§ Triple Ratchet — āļ›āđ‰āļ­āļ‡āļāļąāļ™āđāļŠāļ•āļˆāļēāļāļ āļąāļĒāļ„āļ§āļ­āļ™āļ•āļąāļĄ āļ”āđ‰āļ§āļĒ SPQR āđāļĨāļ°āļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāđāļšāļšāļœāļŠāļĄāļœāļŠāļēāļ™” āđƒāļ™āļĒāļļāļ„āļ—āļĩāđˆāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļŠāđˆāļ§āļ™āļ•āļąāļ§āļœāđˆāļēāļ™āđāļ­āļ›āđāļŠāļ•āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™āđ€āļĢāļ·āđˆāļ­āļ‡āļžāļ·āđ‰āļ™āļāļēāļ™āļ‚āļ­āļ‡āļŠāļĩāļ§āļīāļ•āļ›āļĢāļ°āļˆāļģāļ§āļąāļ™ āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļ‚āļ­āļ‡āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļˆāļķāļ‡āđ€āļ›āđ‡āļ™āļŠāļīāđˆāļ‡āļ—āļĩāđˆāđ„āļĄāđˆāļ­āļēāļˆāļĨāļ°āđ€āļĨāļĒ āļĨāđˆāļēāļŠāļļāļ” Signal āđ„āļ”āđ‰āđ€āļ›āļīāļ”āļ•āļąāļ§āļāļēāļĢāļ­āļąāļ›āđ€āļāļĢāļ”āļ„āļĢāļąāđ‰āļ‡āļŠāļģāļ„āļąāļāļ‚āļ­āļ‡āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāļ‚āļ­āļ‡āļ•āļ™āđ€āļ­āļ‡ āđ‚āļ”āļĒāđ€āļžāļīāđˆāļĄāļāļĨāđ„āļāđƒāļŦāļĄāđˆāļŠāļ·āđˆāļ­āļ§āđˆāļē SPQR (Sparse Post-Quantum Ratchet) āđ€āļ‚āđ‰āļēāļĄāļēāđ€āļŠāļĢāļīāļĄāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ‚āļ­āļ‡āļĢāļ°āļšāļš Double Ratchet āđ€āļ”āļīāļĄ āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™ Triple Ratchet āļ—āļĩāđˆāļŠāļēāļĄāļēāļĢāļ–āļ•āđ‰āļēāļ™āļ—āļēāļ™āļāļēāļĢāđ‚āļˆāļĄāļ•āļĩāļˆāļēāļāļ„āļ­āļĄāļžāļīāļ§āđ€āļ•āļ­āļĢāđŒāļ„āļ§āļ­āļ™āļ•āļąāļĄāđƒāļ™āļ­āļ™āļēāļ„āļ•āđ„āļ”āđ‰ SPQR āļ–āļđāļāļ­āļ­āļāđāļšāļšāļĄāļēāđ€āļžāļ·āđˆāļ­āđ€āļŠāļĢāļīāļĄāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđƒāļ™āļŠāļ­āļ‡āļ”āđ‰āļēāļ™āļŦāļĨāļąāļāļ„āļ·āļ­ Forward Secrecy (FS) āđāļĨāļ° Post-Compromise Security (PCS) āđ‚āļ”āļĒāđƒāļŠāđ‰āđ€āļ—āļ„āļ™āļīāļ„āļāļēāļĢāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļļāļāđāļˆāđāļšāļšāđƒāļŦāļĄāđˆāļ—āļĩāđˆāđ€āļĢāļĩāļĒāļāļ§āđˆāļē ML-KEM āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āļĄāļēāļ•āļĢāļāļēāļ™āļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāļ—āļĩāđˆāļ—āļ™āļ—āļēāļ™āļ•āđˆāļ­āļāļēāļĢāļ–āļ­āļ”āļĢāļŦāļąāļŠāļ”āđ‰āļ§āļĒāļ„āļ§āļ­āļ™āļ•āļąāļĄ āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāļ‡āļēāļ™āļĢāđˆāļ§āļĄāļāļąāļšāļĢāļ°āļšāļšāđ€āļ”āļīāļĄāđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļĢāļēāļšāļĢāļ·āđˆāļ™ āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļāļēāļĢāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļļāļāđāļˆāļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļđāļ‡āļŠāļļāļ” āļ—āļĩāļĄāļ‡āļēāļ™ Signal āđ„āļ”āđ‰āļ­āļ­āļāđāļšāļšāļĢāļ°āļšāļš state machine āļ—āļĩāđˆāļŠāļēāļĄāļēāļĢāļ–āļˆāļąāļ”āļāļēāļĢāļāļēāļĢāļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāđāļšāļš chunk āđāļĨāļ°āđƒāļŠāđ‰āđ€āļ—āļ„āļ™āļīāļ„ erasure code āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļāļēāļĢāļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļĄāļĩāļ„āļ§āļēāļĄāļĒāļ·āļ”āļŦāļĒāļļāđˆāļ™āđāļĨāļ°āļ—āļ™āļ•āđˆāļ­āļāļēāļĢāļŠāļđāļāļŦāļēāļĒāļ‚āļ­āļ‡āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļĢāļ°āļŦāļ§āđˆāļēāļ‡āļ—āļēāļ‡ āļ—āļĩāđˆāļŠāļģāļ„āļąāļāļ„āļ·āļ­ Triple Ratchet āđ„āļĄāđˆāđ„āļ”āđ‰āđāļ—āļ™āļ—āļĩāđˆ Double Ratchet āđāļ•āđˆāđƒāļŠāđ‰āļĢāđˆāļ§āļĄāļāļąāļ™ āđ‚āļ”āļĒāļ™āļģāļāļļāļāđāļˆāļˆāļēāļāļ—āļąāđ‰āļ‡āļŠāļ­āļ‡āļĢāļ°āļšāļšāļĄāļēāļœāļŠāļĄāļœāđˆāļēāļ™ Key Derivation Function āđ€āļžāļ·āđˆāļ­āļŠāļĢāđ‰āļēāļ‡āļāļļāļāđāļˆāđƒāļŦāļĄāđˆāļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđāļšāļšāļœāļŠāļĄāļœāļŠāļēāļ™ āļ‹āļķāđˆāļ‡āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āđˆāļē āļœāļđāđ‰āđ‚āļˆāļĄāļ•āļĩāļ•āđ‰āļ­āļ‡āļŠāļēāļĄāļēāļĢāļ–āđ€āļˆāļēāļ°āļ—āļąāđ‰āļ‡āļĢāļ°āļšāļšāđ€āļ”āļīāļĄāđāļĨāļ°āļĢāļ°āļšāļšāđƒāļŦāļĄāđˆāļžāļĢāđ‰āļ­āļĄāļāļąāļ™ āļˆāļķāļ‡āļˆāļ°āļŠāļēāļĄāļēāļĢāļ–āļ–āļ­āļ”āļĢāļŦāļąāļŠāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđ„āļ”āđ‰ āļāļēāļĢāđ€āļ›āļīāļ”āļ•āļąāļ§ SPQR āļĒāļąāļ‡āļĄāļēāļžāļĢāđ‰āļ­āļĄāļāļēāļĢāļ­āļ­āļāđāļšāļšāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ– “downgrade” āđ„āļ”āđ‰āđƒāļ™āļāļĢāļ“āļĩāļ—āļĩāđˆāļœāļđāđ‰āđƒāļŠāđ‰āļĒāļąāļ‡āđ„āļĄāđˆāđ„āļ”āđ‰āļ­āļąāļ›āđ€āļ”āļ•āđāļ­āļ› āļ‹āļķāđˆāļ‡āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđ„āļĄāđˆāļŠāļ°āļ”āļļāļ” āđāļĨāļ°āļĒāļąāļ‡āļ„āļ‡āļ›āļĨāļ­āļ”āļ āļąāļĒāđƒāļ™āļĢāļ°āļ”āļąāļšāđ€āļ”āļīāļĄ āļˆāļ™āļāļ§āđˆāļēāļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āļˆāļ°āļ„āļĢāļ­āļšāļ„āļĨāļļāļĄāļ—āļļāļāļœāļđāđ‰āđƒāļŠāđ‰ Signal āļĒāļąāļ‡āđƒāļŠāđ‰āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāļ–āļđāļāļ•āđ‰āļ­āļ‡āļ‚āļ­āļ‡āđ‚āļ„āđ‰āļ”āļœāđˆāļēāļ™āļĢāļ°āļšāļš formal verification āđ‚āļ”āļĒāđƒāļŠāđ‰āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āđ€āļŠāđˆāļ™ ProVerif āđāļĨāļ° F* āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļĄāļąāđˆāļ™āđƒāļˆāļ§āđˆāļēāđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāđƒāļŦāļĄāđˆāļĄāļĩāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļˆāļĢāļīāļ‡āļ•āļēāļĄāļ—āļĩāđˆāļ­āļ­āļāđāļšāļš āđāļĨāļ°āļˆāļ°āļĒāļąāļ‡āļ„āļ‡āļ›āļĨāļ­āļ”āļ āļąāļĒāđāļĄāđ‰āļĄāļĩāļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āđƒāļ™āļ­āļ™āļēāļ„āļ• âœ… āļ‚āđ‰āļ­āļĄāļđāļĨāļŠāļģāļ„āļąāļāļˆāļēāļāļ‚āđˆāļēāļ§ âžĄïļ Signal āđ€āļ›āļīāļ”āļ•āļąāļ§ Triple Ratchet āđ‚āļ”āļĒāđ€āļžāļīāđˆāļĄ SPQR āđ€āļ‚āđ‰āļēāļĄāļēāđ€āļŠāļĢāļīāļĄ Double Ratchet ➡ïļ SPQR āđƒāļŠāđ‰ ML-KEM āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āļĄāļēāļ•āļĢāļāļēāļ™āļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāļ—āļĩāđˆāļ—āļ™āļ•āđˆāļ­āļ„āļ§āļ­āļ™āļ•āļąāļĄ âžĄïļ Triple Ratchet āđƒāļŦāđ‰āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđāļšāļš hybrid āđ‚āļ”āļĒāļœāļŠāļĄāļāļļāļāđāļˆāļˆāļēāļāļŠāļ­āļ‡āļĢāļ°āļšāļš âžĄïļ āđƒāļŠāđ‰ state machine āđāļĨāļ° erasure code āđ€āļžāļ·āđˆāļ­āļˆāļąāļ”āļāļēāļĢāļāļēāļĢāļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆ ➡ïļ āļĢāļ°āļšāļšāļŠāļēāļĄāļēāļĢāļ– downgrade āđ„āļ”āđ‰āļŦāļēāļāļœāļđāđ‰āđƒāļŠāđ‰āļĒāļąāļ‡āđ„āļĄāđˆāļĢāļ­āļ‡āļĢāļąāļš SPQR ➡ïļ āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāļ–āļđāļāļ•āđ‰āļ­āļ‡āļ‚āļ­āļ‡āđ‚āļ„āđ‰āļ”āđƒāļŠāđ‰ formal verification āļœāđˆāļēāļ™ ProVerif āđāļĨāļ° F* ➡ïļ SPQR āļˆāļ°āļ–āļđāļāļ™āļģāđ„āļ›āđƒāļŠāđ‰āļāļąāļšāļ—āļļāļāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđƒāļ™āļ­āļ™āļēāļ„āļ•āđ€āļĄāļ·āđˆāļ­āļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āļ„āļĢāļ­āļšāļ„āļĨāļļāļĄ âžĄïļ āļœāļđāđ‰āđƒāļŠāđ‰āđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļ—āļģāļ­āļ°āđ„āļĢāđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄ āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļˆāļ°āđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āđ€āļšāļ·āđ‰āļ­āļ‡āļŦāļĨāļąāļ‡ âœ… āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļŠāļĢāļīāļĄāļˆāļēāļāļ āļēāļĒāļ™āļ­āļ âžĄïļ Double Ratchet āđ€āļ›āđ‡āļ™āļĢāļ°āļšāļšāļ—āļĩāđˆāđƒāļŦāđ‰ FS āđāļĨāļ° PCS āđ‚āļ”āļĒāđƒāļŠāđ‰ ECDH āđāļĨāļ° hash function ➡ïļ ML-KEM āđ€āļ›āđ‡āļ™āļŦāļ™āļķāđˆāļ‡āđƒāļ™āļĄāļēāļ•āļĢāļāļēāļ™āļ—āļĩāđˆ NIST āļĢāļąāļšāļĢāļ­āļ‡āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāļŦāļĨāļąāļ‡āļĒāļļāļ„āļ„āļ§āļ­āļ™āļ•āļąāļĄ âžĄïļ Erasure code āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđāļšāļš chunk āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āđ€āļĢāļĩāļĒāļ‡āļĨāļģāļ”āļąāļš âžĄïļ Formal verification āđ€āļ›āđ‡āļ™āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāļ–āļđāļāļ•āđ‰āļ­āļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāđƒāļ™āļĢāļ°āļ”āļąāļšāļ„āļ“āļīāļ•āļĻāļēāļŠāļ•āļĢāđŒ ➡ïļ SPQR āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļžāļąāļ’āļ™āļēāđ‚āļ”āļĒāļĢāđˆāļ§āļĄāļĄāļ·āļ­āļāļąāļšāļ™āļąāļāļ§āļīāļˆāļąāļĒāļˆāļēāļ PQShield, AIST āđāļĨāļ° NYU https://signal.org/blog/spqr/
SIGNAL.ORG
Signal Protocol and Post-Quantum Ratchets
We are excited to announce a significant advancement in the security of the Signal Protocol: the introduction of the Sparse Post Quantum Ratchet (SPQR). This new ratchet enhances the Signal Protocol’s resilience against future quantum computing threats while maintaining our existing security guar...
0 Comments 0 Shares 55 Views 0 Reviews