Отправитель и получатель. Сообщения и шифрование 21 глава
Неедхэм и Шредер [1159] показали, что количество и размер сообщений при алгоритмах с открытыми ключами намного больше, чем при симметричных алгоритмах. Согласно их выводам симметричный алгоритм гораздо эффективнее алгоритма с открытыми ключами. Тем не менее, этот анализ показал значительные преимущества криптографии с открытыми ключами. Уитфилд Диффи пишет [492, 494]:
Рассматривая криптографию с открытыми ключами как новую форму криптографии, а не новую форму управления ключами, я перевел спор на почву безопасности и эффективности одновременно. Оппоненты правильно заметили, что скорость системы RSA составляет одну тысячную от скорости работы DES, а необходимые ключи должны быть в десять раз длиннее. Хотя с самого начала было очевидно, что использование систем с открытыми ключами может быть ограничено обменом ключей для обычной (симметричной) криптографии, немедленной ясности в необходимости такого ее использования не было. В этом контексте предложение создать гибридные системы [879] по праву приветствовалось как открытие.
Криптография с открытыми ключами и симметричная криптография - это совсем разные звери, они решают различные проблемы. Симметричная криптография лучше подходит для шифрования данных. Она на несколько порядков быстрее и не столь чувствительна к вскрытиям с использованием выбранного шифротекста. Криптография с открытыми ключами может сделать то, чего в принципе не может симметричная криптография, она лучше подходит для управления ключей и множества протоколов, рассмотренных в Части I.
В Части I обсуждались и другие примитивы: однонаправленные хэш-функции, коды проверки подлинности сообщений, и т.д. В Табл. -1 перечисляются различные типы алгоритмов и их свойства [804].
Табл. -1.
Классы алгоритмов
Алгоритм | Конфиденциальность | Проверка подлинности | Целостность | Управление ключами |
Алгоритмы симметричного шифрования | Да | Нет | Нет | Да |
Алгоритмы шифрования с открытыми ключами | Да | Нет | Нет | Да |
Алгоритмы цифровой подписи | Нет | Да | Да | Нет |
Алгоритмы согласования ключей | Да | Необязательно | Нет | Да |
Одно направленные хэш-функции | Нет | Нет | Да | Нет |
Коды проверки подлинности сообщения | Нет | Да | Да | Нет |
10.3 Шифрование каналов связи
Вот классическая проблема Алисы и Боба: Алиса хочет послать Бобу безопасное сообщение. Как ей быть? Она шифрует сообщение.
В теории, это шифрование может быть выполнено на любом уровне коммуникационной модели OSI (Open Systems Interface, взаимодействие открытых систем). (Дополнительную информацию о стандарте архитектуры безопасности OSI можно найти в [305].) На практике, шифрование выполняется либо на самых нижних уровнях (первом и втором), либо на верхних уровнях. Если оно происходит на нижних уровнях, оно называется канальным шифрованием,шифруется все, проходящее через конкретный канал данных. Если шифрование происходит на верхних уровнях, оно называется сквозным шифрованием, данные шифруются выборочно и остаются зашифрованными, пока их не расшифрует окончательный получатель. У каждого подхода есть свои преимущества и недостатки.
Канальное шифрование
Проще всего добавить шифрование на физическом уровне (см. Рис. -1). Оно называется канальным шифрованием. Интерфейсы физического уровня обычно стандартизированы, и подключить аппаратуру шифрования в этой точке несложно. Такие устройства шифруют все данные, проходящие через них, включая данные, информацию о маршрутизации и о протоколах. Их можно использовать для любого типа цифрового канала связи. С другой стороны, для дешифрирования потока данных перед его обработкой между отправителем и получателем необходимы какие-то интеллектуальные узлы коммутации и хранения.
Этот тип шифрования очень эффективен. Так как шифруется все, у криптоаналитика нет никаких сведений о структуре информации. Он не представляет, кто с кем говорит, какова длина сообщения, которыми они обмениваются, в какое время для связываются и т.д. Это называются безопасностью трафика: враг не только не может получить доступ к информации, но он и не может получить доступ к сведениям о том, куда передается информация, и каков ее объем.
Безопасность не зависит от методов управления трафиком. Управление ключами несложно, только двум оконечным точкам линии нужен общий ключ, и они могут изменить этот ключ независимо от остальной сети.
Рис. -1. Канальное шифрование.
Представьте себе синхронную линию связи, шифрованную 1-битовым CFB.После инициализации линия может работать бесконечно долго, автоматически восстанавливаясь при битовых сбоях или ошибках синхронизации. Линия шифрует любые передаваемые сообщения, в отсутствии сообщений она шифрует и дешифрирует случайные данные. Ева не знает, когда сообщения посылаются, а когда нет, она не знает, ни где начало сообщений, ни где их конец. Все, что она видит - это бесконечный поток похожих на случайные битов.
Если линия связи асинхронна, можно использовать то же самое 1-битовый режим CFB. Разница в том, враг может получить информацию о скорости передачи. Если эту информацию необходимо скрыть, во время простоя придется передавать сообщения-заглушки.
Самой большой проблемой при шифровании на физическом уровне является то, что каждый физический канал сети должен быть зашифрован: появление одного нешифруемого канала подвергает опасности безопасность всей сети. Если сеть велика, стоимость может заставить отказаться от этого типа шифрования.
Кроме того, каждый узел сети должен быть защищен, так как он обрабатывает незашифрованные данные. Если все пользователи сети доверяют друг другу, и все узлы расположены в безопасных местах, такая схема может работать. Но это маловероятно. Даже в одной корпорации информация должна храниться в секрете от других отделов. Если сеть случайно изменит маршрут сообщения, кто угодно сможет его прочитать. В Табл. -2 суммируются за и против канального шифрования.
Табл. -2.
Канальное шифрование: преимущества и недостатки
Преимущества:
Работает просто, так как может быть сделан прозрачным для пользователя. То есть, перед передачей по каналу все шифруется.
Требуется только один набор ключей на канал.
Обеспечивает безопасность трафика, так как шифруется любая информация о маршрутизации.
Диалоговое шифрование.
Недостатки:
Данные раскрываются на промежуточных узлах
Сквозное шифрование
Другим подходом является размещение аппаратуры шифрования между сетевым и транспортными уровнями. Шифрующее устройство должно понимать протоколы до третьего уровня включительно и шифровать только данные транспортного уровня, которые затем снова объединяются с маршрутной информацией и выдаются на нижние уровни для передачи.
Такой подход позволяет избежать проблемы шифрования/дешифрирования на физическом уровне. При сквозном шифровании данные остаются зашифрованными, пока не будут доставлены к месту назначения (см Рис. -2). Основной проблемой сквозного шифрования является открытость информации о маршрутизации. Хороший криптоаналитик многое может узнать из того, кто, кому, когда передает информацию и каков ее объем, даже не зная содержания этой информации. Усложняется и управление ключами, так как пользователи должны быть уверены, что они используют общие.
Рис. -2. Сквозное шифрование.
Создавать аппаратуру сквозного шифрования нелегко. Каждая конкретная система связи может использовать свои собственные протоколы. Иногда межуровневые интерфейсы недостаточно полно специфицированы, что делает задачу еще сложнее.
Если данные шифруются на высоком уровне архитектуры связи, таком как уровень приложения или уровень представления, то шифрование может не зависеть от типа используемой системы связи. Это все еще сквозное шифрование, но у такой реализации нет проблем с кодами линии, синхронизацией модемов, физическими интерфейсами, и т.д. Во времена электромеханической криптографии шифрование и дешифрирование всегда выполнялись в автономном режиме, шифрование на высоких уровнях от этого ушло недалеко.
Шифрование на этих высоких уровнях взаимодействует с программным обеспечением пользователя. Оно различно для различных компьютерных архитектур, следовательно , шифрование может быть оптимизировано для конкретной компьютерной системы. Шифрование может быть реализовано программно или с использованием специальной аппаратуры. В последнем случае компьютер посылает шифруемые данные в специальное устройство перед тем, как выдавать их на нижние уровни системы связи для передачи. Этот процесс требует определенного интеллекта и не подходит для тупых терминалов. Кроме того, могут возникнуть проблемы совместимости с компьютерами других типов.
Основным недостатком сквозного шифрования является возможность анализа трафика. Анализ трафика - это анализ шифрованных сообщений: откуда, куда и когда они отправлены, каков их размер, как часто они передаются, как они связаны с различными внешними событиями, например, какими-то встречами, и т.п. В таких сведениях спрятано множество полезной информации, которую хотел бы заполучить криптоаналитик. В Табл. -3 представлены положительные и отрицательные стороны сквозного шифрования.
Табл. -3.
Сквозное шифрование: преимущества и недостатки
Преимущества:
Высокий уровень безопасности.
Недостатки:
Необходима более сложная система управления ключами.
Возможен анализ трафика, так как маршрутная информация не шифруется.
Шифрование выполняется в автономном режиме.
Объединение двух подходов
В Табл. -4, прообраз которой взят из [1244], выполнено сравнение канального и сквозного шифрований. Объединение обоих подходов хотя и весьма дорого, но является самым эффективным способом обеспечить безопасность сети. Шифрование каждого физического канала делает невозможным анализ маршрутной информации, а сквозное шифрование уменьшает угрозу для незашифрованных данных на различных узлах сети. Управление ключами в обеих схемах может быть совершенно независимым: сетевые администраторы занимаются шифрованием на физическом уровне, а пользователи отвечают за сквозное шифрование.
10.4 Шифрование данных для хранения
Шифрование данных для хранения и последующего извлечение также можно рассмотреть, используя модель Алисы и Боба. Алиса все также отправляет сообщение Бобу, но в этот раз "Боб" - это та же Алиса, но спустя какое-то время. Однако, эта проблема значительно отличается от предыдущей.
В каналах связи передаваемые сообщения сами по себе не имеют значения. Если Боб не получит какое-то сообщение, Алиса всегда сможет передать его еще раз. Это не так для хранящихся шифрованных данных. Если Алиса не сможет расшифровать свое сообщение, она не сможет вернуться в прошлое и снова зашифровать его. Данные будут потеряны навсегда. Это значит, что приложения, шифрующие данные для хранения, должны содержать некие механизмы для предотвращения невосстановимых ошибок, вызванных сбоями шифротекста.
Ключ шифрования имеет тот же смысл, что и для передачи сообщений, но меньшее значение. По сути, криптография превращает большие секреты в маленькие. А маленькие секреты терять не так страшно. Процедуры управления ключами должны учитывать, что одни и те же ключи будут использованы снова и снова, и что данные могут годами храниться на диске, ожидая дешифрирования.
Более того, ключи должны быть под рукой в течение длительного времени. Ключ, используемый при передаче информации, в идеале существует только во время передачи. Ключ, используемый для хранения данных, может использоваться в течение нескольких лет и, следовательно, должен все это время надежно храниться.
В [357] перечислены другие проблемы, присущие шифрованию компьютерных данных для хранения:
— Данные могут одновременно существовать и в открытом виде на другом диске, на другом компьютере или на бумаге. Криптоаналитик получает дополнительные возможности для вскрытия с помощью известного открытого текста.
— В базах данных блоки данных могут быть меньше, чем размеры блоков большинства алгоритмов. Это приведет к тому, что шифротекст будет заметно больше открытого текста.
— Скорость устройств ввода/вывода предъявляет высокие требования к скорости шифрования и дешифрирования и, возможно, потребует использования аппаратного шифрования. В некоторых приложениях могут понадобиться специальные высокоскоростные алгоритмы.
— Необходимо долго и надежно хранить ключи.
— Намного усложняется управление ключами, так как различным людям нужен доступ к различным файлам, различным частям одного файла и т.д..
Табл. -4.
Сравнение канального и сквозного шифрований
Канальное шифрование | Сквозное шифрование | |
Безопасность внутри главных компьютеров | ||
На посылающем компьютере сообщение открыто На промежуточных узлах сообщение открыто | На посылающем компьютере сообщение зашифровано На промежуточных узлах сообщение зашифровано | |
Роль пользователя | ||
Реализуется посылающим компьютером Невидимо для пользователя Шифрование выполняет компьютер Единое средство для всех пользователей Может быть выполнено аппаратно Шифруются все сообщения или ни одного | Реализуется посылающим процессом Шифрование выполняет пользователь Пользователь должен найти алгоритм Пользователь выбирает шифрование Легче выполнить программно Для каждого сообщения пользователь выбирает, шифровать или нет | |
Соображения по реализации | ||
Требует одной пары ключей для пары компьютеров Требует установки на каждый компьютер аппаратуры или программного обеспечения шифрования Обеспечивает проверку подлинности узлов | Требует одной пары ключей для пары пользователей Требует установки на каждый узел аппаратуры или программного обеспечения шифрования Обеспечивает проверку подлинности пользователей | |
Если зашифрованный файл не структурирован по записям и полям (например, это текстовый файл), то дешифрирование выполняется проще: перед использованием расшифровывается весь файл. Если зашифрованы файлы базы данных, решение проблематично. Дешифрирование всей базы данных для чтения единственной записи неэффективно, а независимое шифрование записей может быть уязвимо по отношению к вскрытию повтором блока.
Кроме того, вы должны убедиться, что незашифрованный файл удаляется после шифрования (см. раздел 10.9). Дальнейшие подробности и соображения можно найти в [425, 569].
Маскировка ключей
При шифровании большого жесткого диска у вас есть две возможности. Можно зашифровать все данные одним ключом. Это даст криптоаналитику для анализа большой объем шифротекста и сделает невозможным просмотр различными пользователями только части диска. Или можно зашифровать каждый файл отдельным ключом, при этом заставляя пользователей запоминать различный ключ для каждого файла.
Решение заключается в том, чтобы зашифровать каждый файл отдельным ключом и зашифровать ключи другим ключом, известным пользователям. Каждому пользователю нужно будет запомнить только один ключ. Для различных пользователей их ключами будут зашифрованы различные подмножества ключей шифрования файлов. К тому же, может быть главный ключ, которым зашифрованы все ключи шифрования файлов. Это даже безопаснее, потому что ключи шифрования файлов случайны и менее уязвимы по отношению к вскрытию со словарем.
Шифрование на уровне драйвера и на файловом уровне
Существует два способа зашифровать жесткий диск: на уровне драйвера и на файловом уровне. Шифрование на файловом уровне означает, что каждый файл шифруется отдельно. Для использования зашифрованного файла его надо будет сначала расшифровать, а после использования снова зашифровать.
Шифрование на уровне драйвера создает на машине пользователя логический диск, на котором все данные хранятся в зашифрованном виде. При хорошей реализации такой способ предоставляет безопасность, которая, за исключением выбора хороших паролей, не создает пользователю никаких неудобств. Однако, драйвер должен быть намного сложнее, чем простая программа шифрования файлов, потому что он должен быть связан с вопросами загружаемого драйвера устройства, выделением новых секторов для файлов, повторным использованием освобождающихся секторов, чтением с произвольным доступом, запросами на обновление данных логического диска, и т.д.
Обычно перед запуском драйвер предлагает пользователю ввести пароль. Он используется для генерации главного ключа дешифрирования, который затем может быть использован для дешифрирования действительных ключей шифрования различных данных.
Табл. -5.
Сравнение шифрования на уровне драйвера и на уровне
Шифрование на файловом уровне | Шифрование на уровне драйвера |
Преимущества | |
Легко реализовать и использовать. Гибкое. Относительно небольшая потеря производительности. Пользователи могут без проблем переносить файлы с машины на машину. Пользователи могут без проблем создавать резервные копии файлов. | Временные файлы, рабочие файлы, и т.п., могут храниться на безопасном диске. В подобных системах тяжелее забыть что-нибудь зашифровать. |
Вопросы безопасности | |
Потенциальная утечка при работе программ, не заботящихся о безопасности. (Программа может, например, сохранить на диске временный файл.) Плохие реализации могут при повторном шифровании всегда использовать один и тот же ключ для данного пароля | Может произойти сбой драйвера устройства или резидентной программы. Плохие реализации создадут предпосылки для вскрытия с выбранным открытым текстом или даже с выбранным шифротекстом. Если вся система пользуется главным ключом, закрытым одним паролем, потеря этого пароля позволит взломщику получить доступ ко всему. Для приложений этого типа спектр возможных шифров более ограничен. Например, потоковые шифры OFB работать не будут. |
Проблемы использования | |
Пользователь должен знать, что делать. Для различных файлов могут использоваться различные пароли. Единственным способом управления доступом является ручное шифрование выбранных файлов. | Неизбежна потеря производительности. Может быть затруднено взаимодействие драйвера с Windows, режимом эмуляции DOS в OS/2, драйверами устройств, и т.д. |
Обеспечение произвольного доступа к зашифрованному диску
От большинства систем требуется возможность произвольного доступа к отдельным секторам диска. Это определенным образом усложняет использование многих потоковых и блочных шифров в любом из режимов сцепления.
При генерации уникального IV для каждого шифруемого или дешифрируемого сектора используйте адрес сектора. Недостатком такого приема является то, что каждый сектор всегда будет шифроваться с одинаковым IV. Убедитесь, что это не влияет на безопасность.
Для главного ключа создайте псевдослучайный блок размером с сектор. (Это можно сделать, например, используя алгоритм в режиме OFB.) Для шифрования любого сектора сначала выполните его XOR с этим псевдослучайным блоком, а затем зашифруйте его, как обычно, блочным шифром в режиме ECB. Такой прием называется ECB+OFB (см. раздел 15.4).
Так как CBC и CFB являются самовосстанавливающимися режимами, вы можете использовать все блоки сектора, кроме первого или первых двух, при генерации IV для этого сектора. Например, IV для сектора 3001 может быть хэш-значением всех, кроме первых 128, битов данных сектора. Создав IV, шифруйте, как обычно, в режиме CBC. Для дешифрирования сектора используйте в качестве IV второй 64-битовый блок сектора и расшифровывайте оставшуюся часть сектора. Затем, используя расшифрованные данные, вы сможете восстановить IV и расшифровать первые 128 бит.
Блочный шифр можно использовать с блоком, достаточно большим, чтобы сразу шифровать целый сектор. Примером такой реализации является Crab (см. раздел 14.6).
10.5 Аппаратный и программный способы шифрования
Аппаратура
До самого недавнего времени все продукты для шифрования представляли собой специализированную аппаратуру. Эти коробочки для шифрования/дешифрирования встраивались в линии связи и шифровали все передаваемые по линии данные. Хотя роль программного шифрования сегодня возросла, аппаратное решение все еще овеществляет выбор для военных и серьезных коммерческих применений. NSA, например, разрешает только аппаратное шифрование. Для этого есть несколько причин.
Во первых, скорость. Как мы увидим в Части III, алгоритмы шифрования состоят из множества сложных операций над битами открытого текста, и эти операции не относятся к числу тех, для которых оптимизированы универсальные компьютеры. Два самых распространенных алгоритма, DES и RSA, на универсальных компьютерах работают весьма неэффективно. Хотя ряд криптографов пытался сделать свои алгоритмы более приспособленными для программной реализации, гонки на скорость всегда будет выигрывать специализированная аппаратура.
Кроме того, шифрование требует много вычислительных ресурсов. Выполнение шифрования на центральном процессоре компьютера неэффективно. Использование для этого другой микросхемы, даже есл эта микросхема - просто еще один такой же процессор, делает систему в целом быстрее.
Второй причиной является безопасность. У алгоритма шифрования, работающего на универсальном компьютере, отсутствует физическая защита. С помощью различных средств отладки Мэллори может тайком изменить алгоритм, и никто этого не заметит. Аппаратные же устройства шифрования могут быть заключены в надежный корпус. Устойчивые к взлому корпуса помешают изменить что-либо в устройстве аппаратного шифрования. Специализированные СБИС могут быть покрыты таким специальным химическим составом, что любая попытка проникнуть внутрь микросхемы, приведет к разрушению ее логики. Правительственные микросхемы Clipper и Capstone (разделы 24.16 и 24.17) сконструированы устойчивыми к взлому. Конструкция микросхем может сделать чтение незашифрованного ключа невозможным для Мэллори.
IBM разработала криптографическую систему для шифрования данных и линий связи на компьютерах-мэйнфреймах [515, 1027]. Она содержит защищенные от взлома модули хранения ключей. Эта система рассматривается в разделе 24.1.
Иногда то, что происходит внутри электронных приборов, можно узнать по электромагнитному излучению. Специализированные устройства шифрования могут быть экранированы, что не допускает утечки компрометирующей информации. Универсальные компьютеры также могут быть экранированы, но это гораздо более сложная проблема. Военные США называют ее TEMPEST, но ее обсуждение выходит за рамки данной книги.
Последним преимуществом аппаратного решения является простота установки. Для большинства применения шифрования не нужны универсальные компьютеры. Люди могут хотеть шифровать свои телефонные разговоры, передачу факсов или данных. В телефоны, факсы и модемы дешевле вставить специализированные устройства, чем микропроцессор и программное обеспечение.
Даже если источником шифруемых данных является компьютер, легче установить специализированное устройство шифрования, чем модернизировать системное программное обеспечение компьютера. Шифрование должно быть невидимым, оно не должно мешать пользователю. Единственный способ реализовать это требование программно - это спрятать шифрование поглубже в операционную систему. А это непросто. С другой стороны, даже новичок сможет включить блок шифрования между своим компьютером и внешним модемом.
Сегодня на рынке есть три основных типа аппаратуры шифрования: самодостаточные модули шифрования (выполняющие такие функции как проверка паролей и управление ключами для банков), специализированные блоки шифрования для каналов связи и платы, вставляемые в персональные компьютеры.
Некоторые блоки шифрования спроектированы для определенных типов каналов связи, например, блоки шифрования канала Т1 сконструированы так, чтобы не шифровать биты синхронизации. Существуют различные блоки для синхронных и асинхронных линий связи. Более новые блоки стремятся работать с большей скоростью и являются более универсальными.
Несмотря на это многие из этих устройств несовместимы. Покупатели должны помнить об этом и должны хорошо знать, что им нужно, чтобы не оказаться владельцами шифрующего оборудования, неспособного решить нужные задачи. Обращайте внимание на тип аппаратуры, операционной системы, прикладного программного обеспечения, есть и так далее.
Шифраторы, выполненные как платы PC, обычно шифруют все, записываемое на жесткий диск, и могут быть настроены так, чтобы шифровать все, отправляемое на жесткий диск или в последовательный порт. Эти платы не экранированы от утечки электромагнитного излучения и не защищены от физического вмешательства, поэтому если защита этих плат без защиты компьютера бессмысленна.
Многие компании начинают встраивать аппаратуру шифрования в свое коммуникационное оборудование. Сейчас доступны безопасные телефоны, факсы и модемы.
Встроенное управление ключами в этих устройствах обычно держится в секрете, хотя существует столько же различных схем, сколько поставщиков аппаратуры. Для некоторых ситуаций ряд схем подходит больше, чем другие, и покупатели должны знать, какое управление ключами встроено в блок шифрования, а что должны будут обеспечить сами пользователи.
Программное обеспечение
Любой алгоритм шифрования может быть реализован программно. Недостатками являются скорость, стоимость и легкость модификации (или манипулирования). К преимуществам относятся гибкость и переносимость, простота использования и обновления. Алгоритмы, приведенные в конце этой книги написанные на C, с небольшими изменениями могут быть реализованы на любом компьютере. Они могут быть скопированы и установлены на многих машинах. Они могут быть встроены в большие приложения, такие как программы связи или текстовые процессоры.
Программы шифрования широко распространены и доступны для всех основных операционных систем. Они предназначены для защиты личных файлов, пользователям обычно нужно вручную шифровать и дешифрировать конкретные файлы. Важно, чтобы была безопасной схема управления ключами: ключи не должны храниться нигде на диске (или в области памяти, которую операционная система может сохранить на диске). После шифрования ключи и открытые тексты файлов должны быть удалены. Многие программы неаккуратны в этом отношении, и пользователь должен тщательно выбирать программу шифрования.
Конечно, Мэллори может всегда заменить алгоритм программного шифрования чем-нибудь мерзким. Но для большинства пользователей это не проблема. Если Мэллори может вломиться в наш офис и изменить нашу программу шифрования, он также может вмонтировать в стену скрытую камеру, жучка в телефон и детектор TEMPEST на улице. Если Мэллори настолько могущественнее пользователя, то пользователь проиграет игру, прежде чем она начнется.
10.6 Сжатие, кодирование и шифрование
Использовать алгоритм сжатия данных вместе с алгоритмом шифрования имеет смысл по следующим двум причинам:
— Криптоанализ опирается на избыточность открытого текста, сжатие файла перед шифрованием снижает эту избыточность.
— Шифрование - процесс длительный, за счет сжатия файла перед шифрованием процесс в целом ускоряется.
Важно сжимать данные именно перед шифрованием - если алгоритм шифрования хоть сколько-нибудь хорош, сжать шифротекст уже не удастся, он выглядит как набор случайных данных. (Это позволяет проверить алгоритм шифрования - если шифротекст сжимается, то алгоритм, скорее всего, недостаточно хорош.)
Если вы собираетесь использовать кодирование передачи или обнаружение и восстановление ошибок, не забывайте добавлять кодирование после шифрования. Если в канале связи присутствуют шумы, распространение ошибки при дешифрировании только усилит шум. Рекомендуемая последовательность операций показана на Рис. -3.
Рис. -3. Шифрование с сжатием и контролем ошибок.
10.7 Обнаружение шифрования
Как Ева может обнаружить зашифрованный файл? Ева - профессионал в шпионском бизнесе, поэтому это важный вопрос. Представьте себе, что ей удалось вклиниться в сеть, в которой во всех направлениях с большой скоростью летают сообщения, и Еве нужно выбрать те, которые ее интересуют. Шифрованные файлы всегда интересны, но как узнать какие файлы шифрованы?
Обычно можно воспользоваться тем фактом, что наиболее популярные программы шифрования создают хорошо известные заголовки. Сообщения электронной почты, зашифрованные PEM или PGP (см. разделы 24.10 и 24.12), легко обнаружить именно по этой причине.
Дата добавления: 2021-01-26; просмотров: 288;