Повторное использование nonce
Повторное использование nonce с тем же ключом — один из самых быстрых способов сломать потоковый шифр или конструкцию на GCM.
Потоковые режимы вроде CTR и GCM исходят из того, что пара «ключ — nonce» никогда не повторяется. Два открытых текста, зашифрованных одной гаммой, при сложении шифртекстов выдают XOR открытых текстов, и этого достаточно, чтобы начать ломать оба. В GCM ущерб ещё больше: Антуан Жу показал в 2006 году, что повторный nonce позволяет восстановить ключ аутентификации и подделывать сообщения.
Обычные виновники — счётчик, обнулившийся после перезагрузки, или случайный nonce, давший коллизию после слишком многих шифрований. Решение просто сформулировать и сложнее внедрить: постоянные счётчики или режим, устойчивый к ошибкам использования, такой как AES-GCM-SIV.