Вскрытие вставкой

Синхронные потоковые шифры чувствительны к вскрытию вставкой [93]. Пусть Мэллори записал поток шифротекста, но не знает ни открытого текста, ни потока ключей, использованного для шифрования открытого текста.

Оригинальный открытый текст: pl p2 p3 p4 ...
Оригинальный поток ключей: k1 k2 k3 k4 ...
Оригинальный шифротекст: c1 c2 c3 c4 ...

Мэллори вставляет один известный ему бит, p', в открытый текст после p1 и затем пытается получить модифицированный открытый текст, шифрованный тем же потоком ключей. Он записывает получившийся новый шифротекст:

Новый открытый текст: pl p' p2 p3 p4 ...
Оригинальный поток ключей: k1 k2 k3 k4 k5 ...
Обновленный шифротекст: c1 c'2 c'3 c'4 c'5 ...

Так как он знает значение p', то может определить весь открытый текст после этого бита по оригинальному и новому шифротекстам:

k2 = c'2 A p', затем p2 = c2 A k2
k3 = c'3 A p2, затем p3 = c3 A k3
k4 = c'4 A p3, затем p4 = c4 A k4

Мэллори даже не нужно знать точное положение вставленного бита, он может просто сравнить оригинальный и обновленный шифротексты, чтобы обнаружить, где они начинают отличаться. Для предотвращения такого вскрытия никогда не используйте один поток ключей для шифрования двух различных сообщений.