![]() |
При работе со звуком (возможно, это заметно на рис. 2) там, где уровень сигнала был нулевым, стала заметна "рябь", которая может выдать наличие посторонней информации. Поэтому мой совет: прятать секреты лучше в самодельных звуковых оцифровках, чтобы информацию в звуковом файле, ежели кому вздумается анализировать его, проще было принять за шум. Исходя из этой рекомендации сперва можно сделать вывод, что данные хранятся ненадежно, ведь если наличие зафиксировано, алгоритм известен, то извлечь их, собрав младшие биты, останется лишь делом техники... Но не тут то было. На помощь приходит комбинирование стеганографии с криптографией. S-tools работает следующим образом: скрываемые данные сначала сжимаются (степень сжатия можно программно регулировать из меню File/Properties), затем шифруются по алгоритму (IDEA, DES или MDC) со 128 битным ключом, полученным из введенного пароля, после чего распределяются по графическому или звуковому файлу в последовательности, определяемой генератором псевдослучайных чисел, начальное значение которого также связано с тем же паролем. (Ух! Ничего себе игрушечка, аж дух захватывает!) Так что передаю большой привет любителям рыться в спаме, валящемся из групп новостей. Даже если они обнаружат передаваемую агентами информацию в графическом или звуковом файле, то извлечь ее не смогут. Откуда есть пошла скрытописьДавайте рассмотрим, как работает программа, а потом сделаем выводы. Суть примененного здесь метода стеганографии (а по-русски будет "скрытопись") базируется на том, что оцифрованные данные (изображение или звук) принципиально не могут быть точны. Всегда существует погрешность дискретизации, равная значению младшего бита отсчета. Так как эти значения малы, то органы чувств человека неспособны уловить изменение сигнала на такую величину, поэтому вполне возможно сохранить данные, "размазав" их по младшим, наименее значимым битам оцифрованных данных. Пусть имеется число 180, в двоичном коде оно выглядит так: 10110100. Давайте спрячем его в последовательности из восьми байт, приведенной в первой колонке таблицы. Для этого заменим в двоичном представлении чисел последовательности (вторая колонка) младшие биты (выделены красным) битами нашего числа. Получим третью колонку таблицы, десятичное представление чисел которой запишем в четвертой колонке. [таб.1]
Как видно из полученного результата, изменение значений последовательности не превышает единицы. Если взять 24- битное кодирование цветов (для хранения каждого элемента используется три байта), то объем информации, который можно "запрятать" в картинку: (640х480х3)/8 = 115200 байт. Правда, объем самого изображения в формате BMP велик (921600 байт), что, по мнению автора программы, само по себе может привлечь внимание противника. Но, очевидно, сжимать изображение каким-либо методом, вносящим потери, нельзя, так как информация будет безвозвратно утеряна -- возможно лишь запаковать его архиватором. Такая же схема применяется и для звука. Для изображений формата GIF (число цветов в которых принципиально не может превышать 256) программа предлагает либо преобразовать его в 24-битное, либо уменьшить число цветов до 32. В последнем случае "размазывание" данных будет сделано по трем младшим битам каждого байта, но, как я уже говорил, качество 32-цветной картинки явно неудовлетворительное. Вышеперечисленные недостатки не способствуют широкому применению этой программы, которая годится лишь для игры или для секретных спамеров. Кстати, хотите поиграть в шпионов? Зайдите на мою страницу www.uc.ru/~shelter/ и попробуйте прочесть послание, спрятанное в находящихся там картинках. JPEG + STEG = JSTEGЧтобы немного повысить степень серьезности этой затеи, избавив ее от указанных выше недостатков, предлагается неожиданная мысль: спрятать данные в файл очень распространенного формата JPEG. Но как же, скажете вы, JPEG ведь вносит потери, которые так "зашифруют" всю информацию, что восстановить ее не получится даже на квантовом компьютере -- теоретическом изделии, обладающем огромными возможностями параллельных вычислений. Однако выход найден -- он кроется в механизме сжатия по алгоритму JPEG, состоящему из двух стадий. Первая стадия -- дискретное косинусное преобразование, после которого и возникают потери данных. Вторая стадия -- сжатие по методу Хаффмана -- потерь не вносит. Вот между этими стадиями и происходит вставка наших секретных данных. Образец программы для DOS, называемой JSTEG и реализующей этот алгоритм, можно достать по указанному выше адресу. В архиве находятся два исполнимых файла cjpeg.exe и djpeg.exe. Первый позволяет создать файл в формате JPG и вставить в него секретную информацию, второй -- распаковать файл и извлечь данные. В качестве исходного файла используется формат PPM (многие программы умеют сохранять в нем изображения -- например, Lview -- www.lview.com). Простейшая командная строка для запуска: cjpeg.exe -steg file.txt img.ppm img.jpg Здесь file.txt -- секретная информация, подлежащая запрятыванию -- файл может быть и не текстовым, img.ppm -- исходная картинка, img.jpg -- результат. Для распаковки используется следующее "заклинание": djpeg.exe -steg file.txt img.jpg img.ppm Здесь file.txt -- файл, куда будет помещена секретная информация, вытащенная из картинки, img.jpg -- картинка с секретом, img.ppm -- распакованное изображение (его можно выбросить, если картинка вам не понравилась). О результатах работы вы можете судить, посетив мою домашнюю страницу. Сразу скажу, что картинка, содержащая информацию, отличается от той, что не содержит, но определить наличие информации в ней без сравнения с оригиналом вряд ли возможно, так как JPEG вносит искажения. Предлагаю вам отгадать, в какой из двух картинок спрятано послание, а заодно и прочитать его. Так как программа JSTEG в общем-то демонстрационная, то никакой дополнительной защиты (пароль, шифрование, сжатие информации) она не делает. Но для тех, кто захочет использовать ее в своих разработках, в состав архива входят исходные тексты программ. Если нельзя, но очень надо...В заключение вопрос: а надо ли нам все это и насколько серьезно применение таких методов скрытия информации? Да, штука забавная, "размазать" по картинке несколько десятков килобайт данных, да чтобы их можно было восстановить, да чтобы картинка не портилась -- это интересно, причем в чем-то она перекликается с идеей цифровой подписи для документов или водяного знака для изображений (digital watermark). Однако же идея цифровых водяных знаков проработана гораздо лучше, они не исчезают даже при сканировании изображений (чего никак нельзя сказать про стеганографическую информацию) Практическое применение? С одной стороны, такая штука вроде как и не нужна. После появления программы PGP вести секретную переписку можно легко и непринужденно, не прибегая к экзотическому упрятыванию информации. К тому же нетрудно подсчитать, что полезных данных в приходящем мусоре (коим может считаться картинка-контейнер) содержится лишь 12%. Однако, Указом президента Российской Федерации # 334 от 3 апреля 1995 г. запрещено применение криптографии в любом виде без лицензии ФАПСИ, то есть запрещается использовать даже ZIP с паролем, не говоря уже о более сильных средствах. Подробнее о юридических аспектах криптографии, а также о проблемах защиты личной информации в Сети и не только можно прочитать здесь: www.geocities.com/SiliconValley/Vista/6001/legal.htm. Так что посмотрите, поразвлекайтесь, заходите в гости на www.uc.ru/~shelter/, посмотрите картинки, попробуйте прочитать послания, спрятанные в них, а потом выбросьте это из головы.
| |||||||||||||||||||||||||||||||||||||||||||||
| Журнал "Интернет". Регистрационное свидетельство Госкомпечати РФ N. 016370 от 16.07.1997 г. Распространяется через сети розничной торговли, через компьютерные сети, а также путем подписки. Мнение редакции по тем или иным вопросам может не всегда совпадать с мнениями авторов. Редакция не несет ответственности за содержание рекламных материалов. Перепечтка или копирование запрещены, при цитировании ссылка на журнал "Интернет" обязательна. |
| Copyright © 1997-1998 Журнал "Internet" Copyright © 1997-1998 Netskate |
E-mail: imag@netskate.ru Телефон: 245-45-84 |