Еще более действенной является
Все эти атаки объединяет то, что аналитикам известны детали алгоритма. (Единственным исключением, которое мне известно, сегодня является японский код PURPLE.) Это не просто ученый ярлык, а очень хороший механизм. Если в программах будут использовать какой-то алгоритм, то его «раскрутят» и в обратную сторону. Среди секретных когда-то алгоритмов, которые уже «раскрутили» – RC4, все алгоритмы шифрования цифровой сотовой связи, DVD– и DIVX-алгоритмы шифрования видеоизображений и алгоритм Firewire. Захватят и расшифруют даже алгоритмы, глубоко запрятанные в военном оборудовании. Примерами могут служить «Энигма» во Второй мировой войне[21] или почти все алгоритмы НАТО и Варшавского договора во времена холодной войны. (Мы их не знаем, но весьма компетентные военные занимались их расшифровкой.) Полезно предполагать, что врагу известны подробности вашего алгоритма, потому что в конечном итоге они все равно станут ему известны. Август Керхкофф первым сформулировал это положение в 1883 году: «В алгоритме нет никакой тайны, вся тайна в ключе».
В разговоре об атаках всегда возникает один вопрос: как криптоаналитик распознает открытый текст? Ответ прост: его легко узнать, потому что он выглядит как открытый текст. Это сообщение на английском языке или файл компьютерного приложения, изображение в формате JPEG или база данных в каком-нибудь приемлемом формате. Когда вы смотрите на расшифрованный файл, он похож на что-нибудь вам известное. Когда вы смотрите на зашифрованный файл или файл, расшифрованный с применением неправильного ключа, он выглядит как полная тарабарщина. Человек или компьютер могут понимать эту разницу.
В 1940-х годах Клод Шеннон ввел понятие
Например, алгоритм RC4 зашифровывает данные в байтах. Представьте себе одну единственную букву в ASCII-кодировке в качестве открытого текста. На 26 букв приходится 256 возможных вариантов кодирования. Любой случайный ключ, если использовать его для расшифровки этого текста (буквы), с вероятностью 26/256 даст верный открытый текст. У аналитика нет никакого средства, позволяющего отличить ошибочный открытый текст от правильного.
Представьте теперь сообщение электронной почты размером 1 Кбайт. Аналитик пытается применять случайные ключи, и в конечном счете возникает открытый текст, который выглядит как сообщение электронной почты: слова, фразы, предложения, грамматика. Вероятность того, что это неправильный открытый текст, бесконечно мала.
Для стандартного англоязычного сообщения расстояние уникальности равно К/6,8, где К – это длина ключа в битах. (6,8 – степень естественной избыточности английского языка. Для других открытых текстов она будет больше или меньше, но незначительно.) Для ASCII-кода, применяемого согласно стандарту DES, расстояние уникальности составляет 8,2 байт. Для 128-битового шифра это примерно 19 байт. Таким образом, для англоязычных сообщений, длина которых превышает 19 байт, расшифрованный текст, похожий на английский, с большой вероятностью будет истинным открытым текстом. Почти такое же значение расстояния единственности имеют файлы электронных таблиц, текстовых процессоров и баз данных. (На самом деле оно может быть намного меньше, потому что форматы файлов предполагают стандартное начало файла.) Для сжатых файлов расстояние уникальности могло бы быть в два-три раза больше (но опять-таки, стандартное начало может его существенно снизить).
Отсюда мораль: «Распознать открытый текст просто, и для этого не требуется большого количества информации».
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии