logo search
Анин Б

Как спрятать один шифртекст в другом

Антон и Борис несколько месяцев обменивались шифрованными сообщениями. Контрразведка перехватила все эти сообщения, но так и не смогла прочесть ни единого слова. Контрразведчикам надоело коллекционировать переписку Антона и Бориса, не зная ее содержания, и они решили арестовать подозрительную парочку. Первый же допрос начался словами: “Где ключи к шифру?” “К какому такому шифру?!” — в один голос воскликнули Антон и Борис, но тут же осеклись и побледнели, заметив на столе у следователя зловещего вида клещи, покрытые пятнами то ли ржавчины, то ли крови.

Антон и Борис смогли бы выкрутиться из создавшегося положения, если бы шифровали каждое свое сообщение так, чтобы оно допускало два различных расшифрования в зависимости от используемого ключа. Свое настоящее секретное сообщение Борису Антон мог бы зашифровать на одном ключе, а вполне невинный открытый текст — на другом. Теперь, если от Антона потребуют ключ к шифру, он отдаст подставной ключ, который позволит прочесть невинное сообщение, а другой ключ сохранит в тайне.

Самый простой способ сделать это потребует использования одноразового блокнота. Пусть Р — секретный открытый текст, D — невинный открытый текст, С — шифрованный текст, К — настоящий ключ, а К' — подставной ключ. Антон шифрует Р:

P ⊕ K = C

Поскольку у Бориса имеется копия ключа К, он может без проблем расшифровать сообщение Антона:

С ⊕ К= Р

Если контрразведчики попытаются заставить Антона и Бориса выдать используемый ими ключ, то вместо К они могут сообщить в контрразведку:

К' = C ⊕ D

В результате контрразведчики смогут прочитать невинный открытый текст:

С ⊕ К'= D

Так как Антон и Борис пользуются одноразовым блокнотом, то К является полностью случайным и доказать, что К' является подставным ключом, практически невозможно (не прибегая к пыткам).

Антон мог бы зашифровать Р не с помощью одноразового блокнота, а пользуясь любым из своих самых любимых криптографических алгоритмов и ключом К. Сложив С с фрагментом какого-либо общеизвестного произведения (например, с отрывком из второй главы “Идиота”) по модулю 2, Антон получит К'. Теперь если к Антону пристанут злые “дяденьки” из контрразведки, он предъявит им С вместе с К' и скажет, что К' — это одноразовый блокнот для С и что он просто захотел попрактиковаться в криптографии, зашифровав для этой цели отрывок из первой попавшейся книги. РГ пока контрразведчики не получат в свое распоряжение ключ К, доказать, что Антон занимался чем-то противозаконным, они не смогут.