Как спрятать один шифртекст в другом
Антон и Борис несколько месяцев обменивались шифрованными сообщениями. Контрразведка перехватила все эти сообщения, но так и не смогла прочесть ни единого слова. Контрразведчикам надоело коллекционировать переписку Антона и Бориса, не зная ее содержания, и они решили арестовать подозрительную парочку. Первый же допрос начался словами: "Где ключи к шифру?" "К какому такому шифру?!" – в один голос воскликнули Антон и Борис, но тут же осеклись и побледнели, заметив на столе у следователя зловещего вида клещи, покрытые пятнами то ли ржавчины, то ли крови.
Антон и Борис смогли бы выкрутиться из создавшегося положения, если бы шифровали каждое свое сообщение так, чтобы оно допускало два различных расшифрования в зависимости от используемого ключа. Свое настоящее секретное сообщение Борису Антон мог бы зашифровать на одном ключе, а вполне невинный открытый текст – на другом. Теперь, если от Антона потребуют ключ к шифру, он отдаст подставной ключ, который позволит прочесть невинное сообщение, а другой ключ сохранит в тайне.
Самый простой способ сделать это потребует использования одноразового блокнота. Пусть Р – секретный открытый текст, D – невинный открытый текст, С – шифрованный текст, К – настоящий ключ, а К' – подставной ключ. Антон шифрует Р:
Р Å К = С
Поскольку у Бориса имеется копия ключа К, он может без проблем расшифровать сообщение Антона:
С Å К = Р
Если контрразведчики попытаются заставить Антона и Бориса выдать используемый ими ключ, то вместо К они могут сообщить в контрразведку:
К'= С Å D
В результате контрразведчики смогут прочитать невинный открытый текст:
С Å К'= D
Так как Антон и Борис пользуются одноразовым блокнотом, то К является полностью случайным и доказать, что К' является подставным ключом, практически невозможно (не прибегая к пыткам).
Антон мог бы зашифровать Р не с помощью одноразового блокнота, а пользуясь любым из своих самых любимых криптографических алгоритмов и ключом К. Сложив С с фрагментом какого-либо общеизвестного произведения (например, с отрывком из второй главы "Идиота") по модулю 2, Антон получит К'. Теперь если к Антону пристанут злые "дяденьки" из контрразведки, он предъявит им С вместе с К' и скажет, что К' – это одноразовый блокнот для С и что он просто захотел попрактиковаться в криптографии, зашифровав для этой цели отрывок из первой попавшейся книги. И пока контрразведчики не получат в свое распоряжение ключ К, доказать, что Антон занимался чем-то противозаконным, они не смогут.