The foundations of end-to-end encryption: Domain separation (with code example)
kerkour.com