Применение стеганографических методов по защите данных

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    420,94 Кб
  • Опубликовано:
    2013-02-17
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Применение стеганографических методов по защите данных

Введение

В современной стеганографии, в целом, можно выделить 2 направления: технологическую стеганографию и информационную стеганографию (рис. 1).

Рис. 1. Классификация методов стеганографической защиты

Стеганографические методы в их проекции на инструментарий и среду, которая реализуется на основе компьютерной техники и программного обеспечения в рамках отдельных вычислительных или управляющих систем, корпоративных или глобальных вычислительных сетей, составляют предмет изучения сравнительно нового научного направления информационной безопасности - компьютерной стеганографии.

В рамках компьютерной стеганографии рассматриваются вопросы, связанные с сокрытием информации, которая хранится на носителях или передается по сетям телекоммуникаций, с организацией скрытых каналов в компьютерных системах и сетях, а также с технологиями цифровых водяных знаков и отпечатка пальца.

Существуют определенные отличия между технологиями цифровых водяных знаков и отпечатка пальца, с одной стороны, и собственно стеганографическими технологиями сокрытия секретной информации для ее последующей передачи или хранения. Самое главное отличие - это то, что цифровые водяные знаки и отпечатки имеют целью защиту самого цифрового объекта (программы, изображения, музыкального файла и пр.), куда они внедряются, и обеспечивают доказательство прав собственности на данный объект.

При использовании методов компьютерной стеганографии должны учитываться следующие условия:

противник может иметь полное представление о стеганографической системе и деталях ее реализации. Единственной информацией, которая должна оставаться ему неизвестной, - это ключ, с помощью которого можно установить факт присутствия скрытого сообщения и его содержание;

если противнику каким-то образом удалось узнать о факте существования скрытого сообщения, то это не должно позволить ему извлечь подобные сообщения из других стеганограмм до тех пор, пока ключ хранится в тайне;

потенциальный противник должен быть лишен каких-либо технических и иных преимуществ в распознавании или раскрытии содержания тайных сообщений.

1. Общая классификация методов сокрытия информации

.1 Принципы компьютерной стеганографии

Большинство методов компьютерной стеганографии базируется на двух принципах.

Первый состоит в том, что файлы, которые не требуют абсолютной точности (например, файлы с изображением, звуковой информацией и пр.), могут быть до определенной степени видоизменены без потери функциональности.

Второй принцип основан на отсутствии специального инструментария или неспособности органов чувств человека надежно различать незначительные изменения в таких исходных файлах.

В основе базовых подходов к реализации методов компьютерной стеганографии в рамках той или иной информационной среды лежит выделение малозначимых фрагментов среды и замена существующей в них информации на информацию, которую предполагается защитить. Поскольку в компьютерной стеганографии рассматриваются среды, поддерживаемые средствами вычислительной техники и соответствующими сетями, то вся информационная среда, в конечном итоге, может представляться в цифровом виде. Таким образом, незначимые для кадра информационной среды фрагменты в соответствии с тем или иным алгоритмом или методикой заменяются (смешиваются) на фрагменты скрываемой информации. Под кадром информационной среды в данном случае подразумевается некоторая ее часть, выделенная по определенным признакам. Такими признаками часто бывают семантические характеристики выделяемой части информационной среды. Например, в качестве кадра может быть выбран некоторый отдельный рисунок, звуковой файл, Web-страница и др.

1.2 Классификация методов компьютерной стеганографии

Для методов компьютерной стеганографии можно ввести определенную классификацию (рис. 2).

Рис. 2. Классификация методов сокрытия информации

По способу отбора контейнера, как уже указывалось, различают методы суррогатной стеганографии, селективной стеганографии и конструирующей стеганографии.

В методах суррогатной (безальтернативной) стеганографии отсутствует возможность выбора контейнера и для сокрытия сообщения выбирается первый попавшийся контейнер, зачастую не совсем подходящий к встраиваемому сообщению. В этом случае, биты контейнера заменяются битами скрываемого сообщения таким образом, чтобы это изменение не было заметным. Основным недостатком метода является то, он позволяет скрывать лишь незначительное количество данных.

В методах селективной стеганографии предполагается, что спрятанное сообщение должно воспроизводить специальные статистические характеристики шума контейнера. Для этого генерируют большое число альтернативных контейнеров, чтобы затем выбрать наиболее подходящий из них для конкретного сообщения. Частным случаем такого подхода является вычисление некоторой хеш-функция для каждого контейнера. При этом для сокрытия сообщения выбирается тот контейнер, хеш-функции которого совпадает со значением хеш-функции сообщения (т.е. стеганограммой является выбранный контейнер).

В методах конструирующей стеганографии контейнер генерируется самой стегосистемой. Здесь может быть несколько вариантов реализации. Так, например, шум контейнера может моделироваться скрываемым сообщением. Это реализуется с помощью процедур, которые не только кодируют скрываемое сообщение под шум, но и сохраняют модель первоначального шума. В предельном случае по модели шума может строиться целое сообщение. Примерами могут служить метод, который реализован в программе MandelSteg, где в качестве контейнера для встраивания сообщения генерируется фрактал Мандельброта, или же аппарат функций имитации (mumic function).

По способу доступа к скрываемой информации различают методы для потоковых (непрерывных) контейнеров и методы для контейнеров с произвольным доступом (ограниченной длины).

Методы, использующие потоковые контейнеры, работают с потоками непрерывных данных (например, интернет-телефония). В этом случае скрываемые биты необходимо в режиме реального времени включать в информационный поток. О потоковом контейнере нельзя предварительно сказать, когда он начнется, когда закончится и насколько продолжительным он будет. Более того, объективно нет возможности узнать заранее, какими будут последующие шумовые биты. Существует целый ряд трудностей, которые необходимо преодолеть корреспондентам при использовании потоковых контейнеров. Наибольшую проблему при этом составляет синхронизация начала скрытого сообщения.

Методы, которые используются для контейнеров с произвольным доступом, предназначены для работы с файлами фиксированной длины (текстовая информация, программы, графические или звуковые файлы). В этом случае заранее известны размеры файла и его содержимое. Скрываемые биты могут быть равномерно выбраны с помощью подходящей псевдослучайной функции. Недостаток таких контейнеров состоит в том, они обладают намного меньшими размерами, чем потоковые, а также то, что расстояния между скрываемыми битами равномерно распределены между наиболее коротким и наиболее длинным заданными расстояниями, в то время как истинный шум будет иметь экспоненциальное распределение длин интервала. Преимущество подобных контейнеров состоит в том, то они могут быть заранее оценены с точки зрения эффективности выбранного стеганографического преобразования.

По типу организации контейнеры, подобно помехозащищенным кодам, могут быть систематическими и несистематическими. В систематически организованных контейнерах можно указать конкретные места стеганограммы, где находятся информационные биты самого контейнера, а где - шумовые биты, предназначенные для скрываемой информации (как, например, в широко распространенном методе наименьшего значащего бита). При несистематической организации контейнера такого разделения сделать нельзя. В этом случае для выделения скрытой информации необходимо обрабатывать содержимое всей стеганограммы.

По используемым принципам стеганометоды можно разбить на два класса: цифровые методы и структурные методы. Если цифровые методы стеганографии, используя избыточность информационной среды, в основном, манипулируют с цифровым представлением элементов среды, куда внедряются скрываемые данные (например, в пиксели, в различные коэффициенты косинус-косинусных преобразований, преобразований Фурье, Уолша-Ра­де­ма­хе­ра или Лапласа), то структурные методы стеганографии для сокрытия данных используют семантически значимые структурные элементы информационной среды.

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

В особую группу можно также выделить методы, которые используют специальные свойства форматов представления файлов:

зарезервированные для расширения поля компьютерных форматов файлов, которые обычно заполняются нулями и не учитываются программой;

специальное форматирование данных (смещение слов, предложений, абзацев или выбор определенных позиций букв);

использование незадействованных мест на магнитных носителях;

удаление идентифицирующих заголовков для файла.

В основном, для таких методов характерны низкая степень скрытности, низкая пропускная способность и слабая производительность.

По предназначению различают стеганографические методы собственно для скрытой передачи или скрытого хранения данных и методы для сокрытия данных в цифровых объектах с целью защиты самих цифровых объектов.

По типу информационной среды выделяются стеганографические методы для текстовой среды, для аудио среды, а также для изображений (стоп-кадров) и видео среды.

2. Стеганографические методы в изображениях

.1 Метод замены

Популярность метода НЗБ обусловлена его простотой и тем, что он позволяет скрывать в относительно небольших файлах довольно большие объемы информации. Данный метод обычно работает с растровыми изображениями, которые представлены в формате без сжатия (например, GIF и BMP). Основным его недостатком является сильная чувствительность к малейшим искажениям контейнера. Для ослабления этой чувствительности часто применяют помехоустойчивое кодирование.

Суть метода НЗБ заключается в замене наименее значащих битов пикселей изображения битами секретного сообщения. В простейшем случае проводится замена НЗБ всех последовательно расположенных пикселей изображения. Однако, так как длина секретного сообщения обычно меньше количества пикселей изображения, то после его внедрения в контейнере будут присутствовать две области с различными статистическими свойствами (область, в которой незначащие биты были изменены, и область, в которой они не менялись). Это может быть легко обнаружено с помощью статистических тестов. Для создания эквивалентного изменения вероятности всего контейнера секретное сообщение обычно дополняют случайными битами так, чтобы его длина в битах была равна количеству пикселей в исходном изображении.

Другой подход, метод случайного интервала, заключается в случайном распределении битов секретного сообщения по контейнеру, в результате чего расстояние между двумя встроенными битами определяется псевдослучайно. Эта методика наиболее эффективна при использовании потоковых контейнеров (видео).

Для контейнеров произвольного доступа (изображений) может использоваться метод псевдослучайной перестановки.

Его суть заключается в том, что генератор псевдослучайных чисел производит последовательность индексов j1, ..., jl(m) и сохраняет k-й бит сообщения в пикселе с индексом jk. Однако в этом случае один индекс может появиться в последовательности более одного раза, т.е. может произойти “пересечение” - искажение уже встроенного бита. Если число битов сообщения намного меньше размера изображения, то вероятность пересечения незначительна, и поврежденные биты могут быть восстановлены с помощью корректирующих кодов. Вероятность, по крайней мере, одного пересечения оценивается как

p~1 - exp, при условии, что l(m)<< l(c).

При увеличении l(m) и l(c)=const данная вероятность стремится к единице. Для предотвращения пересечений необходимо сохранять все индексы использованных элементов ji и перед сокрытием нового пикселя проводить проверку его на повторяемость.

.2 Метод блочного сокрытия

Еще один подход в реализации метода замены (метод блочного сокрытия) состоит в следующем. Исходное изображение-контейнер разбивается на l(m) непересекающихся блоков Ii произвольной конфигурации и для каждого из них вычисляется бит четности p(Ii):

(I) =

В каждом блоке проводится сокрытие одного секретного бита mi. Если бит четности p(Ii) блока Ii не совпадает с секретным битом mi, то происходит инвертирование одного из НЗБ блока Ii, в результате чего p(Ii) = mi. Выбор блока может производиться случайно с использованием стегоключа. Хотя этот метод обладает такой же устойчивостью к искажениям, как и все предыдущие, он имеет ряд преимуществ. Прежде всего, имеется возможность изменять значения такого пикселя в блоке, для которого статистика контейнера изменится минимально. Кроме того, влияние последствий встраивания секретных данных в контейнер можно уменьшить за счет увеличения размера блока.

.3 Метод расширения палитры

Для сокрытия данных можно также воспользоваться палитрой цветов, которая присутствует в формате изображения.

Палитра из N цветов определяется как список пар индексов (i, ci), который определяет соответствие между индексом i и его вектором цветности ci. В изображении каждому пикселю присваивается индекс в палитре. Так как цвета в палитре не всегда упорядочены, то скрываемую информацию можно кодировать последовательностью хранения цветов в палитре. Существует N! различных способов перестановки N-цветной палитры, что вполне достаточно для сокрытия небольшого сообщения. Однако методы сокрытия, в основе которых лежит порядок формирования палитры, также неустойчивы: любая атака, связанная с изменениями палитры, уничтожает секретное сообщение.

Зачастую соседние цвета в палитре не обязательно являются схожими, поэтому некоторые стеганометоды перед сокрытием данных проводят упорядочивание палитры так, что смежные цвета становятся подобными. Например, значения цвета может быть упорядочено по расстоянию d в RGB-пространстве, где d = . Так как орган зрения человека более чувствителен к изменениям яркости цвета, то намного лучше сортировать содержимое палитры по значениям яркости сигнала. После сортировки палитры можно изменять НЗБ индексов цвета без особого искажения изображения.

Некоторые стеганометоды предусматривают уменьшение общего количества значений цветов (до N/2) путем “размывания” изображения. При этом элементы палитры дублируются так, чтобы значения цветов для них различались незначительно. В итоге каждое значение цвета размытого изображения соответствует двум элементам палитры, которые выбираются в соответствии с битом секретного сообщения.

2.4 Применение методов в GIF изображениях

Файлы формата GIF имеют блочную структуру. Данные блоки всегда имеют фиксированную длину (либо она зависит от некоторых флагов), так что ошибиться в том, где какой блок находится, практически невозможно. Структура простейшего неанимированного GIF-изображения формата GIF89a (рис.3.):

Рис.3. Структура простейшего неанимированного GIF-изображения формата GIF89a

Из всех блоков структуры в данном случае нас будут интересовать блок глобальной палитры и параметры, отвечающие за палитру:- наличие глобальной палитры. Если этот флаг установлен, то сразу после дескриптора логического экрана должна начинаться глобальная палитра.- размер палитры и число цветов картинки.

В программе будут использоваться в рамках метода LSB два последних бита в байтах глобальной палитры. Это означает, что для 24-битного изображения, где цвет палитры представляет собой три байта для красного, синего, и зеленого цветов, после внедрения сообщения в него, каждая составляющая цвета изменится максимум на 3/255 градации. Такое изменение, во-первых, будет незаметно или труднозаметно для человеческого глаза, а во-вторых, не будет различимо на низкокачественных устройствах вывода информации.

Количество информации будет напрямую зависеть от размера палитры изображения. Поскольку максимальный размер палитры 256 цветов и, если записывать по два бита сообщения в составляющую каждого цвета, то максимальная длина сообщения (при максимальной палитре в изображении) составляет 192 байта. После внедрения сообщения в изображение, размер файла не изменяется.

Метод расширения палитры, работающий только для структуры GIF. Он будет наиболее эффективен в изображениях с палитрой небольших размеров. Суть его состоит в том, что он увеличивает размер палитры, тем самым дав дополнительное пространство для записи необходимых байт на месте байт цветов. Если учесть что минимальный размер палитры составляет 2 цвета (6 байт), то максимальный размер внедряемого сообщения может быть 256×3-6=762 байт. Недостаток - низкая криптозащищенность, прочесть внедренное сообщение можно при помощи любого текстового редактора, если сообщение не подвергалось дополнительному шифрованию.

3. Практическая реализация

Все необходимые инструменты для реализации алгоритмов шифрования и дешифрования будут находиться в пакете com.prog.steg. Этот пакет включает в себя интерфейс Encryptor с методами encrypt и decrypt, класс Binary, предоставляющий возможность работы с массивами битов, а также классы исключений UnableToEncryptException и UnableToDecryptException, которые должны быть использованы в методах интерфейса Encryptor в случае ошибок кодирования и декодирования соответственно.

Основной пакет программы com.prog.steg будет включать в себя запускаемый класс программы со статическим методом main, позволяющий запускать программу; класс, хранящий в себе параметры программы; и пакеты с другими классами.

Реализация непосредственно самих алгоритмов будет представлена в пакете com.prog.steg.gif классами GIFEncryptorByLSBMethod и GIFEncryptorByPaletteExtensionMethod. Оба этих класса будут реализовать интерфейс Encryptor.

На основе структуры формата GIF можно составить общий алгоритм внедрения сообщения в палитру изображения:

Рис. 4. Общий алгоритм внедрения сообщения в палитру изображения

Для определения присутствия сообщения в изображении необходимо в начало сообщения добавлять некую последовательность бит, которую дешифратор считывает в первую очередь и проверяет на корректность. Если она не совпадает, то считается, что в изображении нет сокрытого сообщения. Далее надо указывать длину сообщения. Затем сам текст сообщения.

компьютерная стеганография сокрытие информация

3.1 Реализация программы

Реализацию всей программы можно разбить на две составляющие: реализация методов шифрования и дешифрования интерфейса Encryptor, в классах GIFEncryptorByLSBMethod и GIFEncryptorByPaletteExtensionMethod, и реализация интерфейса пользователя.

Поля firstLSBit и secondLSBit содержат номера битов каждого байта изображения, в которые должно заноситься и откуда считываться сообщение. Поле checkSequence хранит контрольную последовательность бит для обеспечения распознавания встроенного сообщения. Статический метод getEncryptingFileParameters возвращает параметры указанного файла и характеристики потенциального сообщения.

Код метода encrypt класса GIFEncryptorByLSBMethod:

@Overridevoid encrypt(File in, File out, String text) throws UnableToEncodeException, NullPointerException, IOException {(in == null) {new NullPointerException("Input file is null");

}(out == null) {new NullPointerException("Output file is null");

}(text == null) {new NullPointerException("Text is null");

}

// read bytes from input file[] bytes = new byte[(int)in.length()];is = new FileInputStream(in);.read(bytes);.close();

// check format(!(new String(bytes, 0, 6)).equals("GIF89a")) {new UnableToEncodeException("Input file has wrong GIF format");

}

// read palette size property from first three bits in the 10-th byte from the file[] b10 = Binary.toBitArray(bytes[10]);bsize = Binary.toByte(new byte[] {b10[0], b10[1], b10[2]});

// calculate color count and possible message lengthbOrigColorCount = (int)Math.pow(2, bsize+1);possibleMessageLength = bOrigColorCount*3/4;possibleTextLength = possibleMessageLength-2;// one byte for check and one byte for message length(possibleTextLength < text.length()) {new UnableToEncodeException("Text is too big");

}n = 13;

// write check sequence(int i = 0; i < checkSequence.length/2; i++) {[] ba = Binary.toBitArray(bytes[n]);[firstLSBit] = checkSequence[2*i];[secondLSBit] = checkSequence[2*i+1];[n] = Binary.toByte(ba);++;

}

// write text length[] cl = Binary.toBitArray((byte)text.length());(int i = 0; i < cl.length/2; i++) {[] ba = Binary.toBitArray(bytes[n]);[firstLSBit] = cl[2*i];[secondLSBit] = cl[2*i+1];[n] = Binary.toByte(ba);++;

}

// write message[] textBytes = text.getBytes();(int i = 0; i < textBytes.length; i++) {[] c = Binary.toBitArray(textBytes[i]);(int ci = 0; ci < c.length/2; ci++) {[] ba = Binary.toBitArray(bytes[n]);[firstLSBit] = c[2*ci];[secondLSBit] = c[2*ci+1];[n] = Binary.toByte(ba);++;

}

}

// write output fileos = new FileOutputStream(out);.write(bytes);.close();

}

Алгоритм и исходный код метода decrypt класса GIFEncryptorByLSBMethod:

Рис. 5. Алгоритм метода decrypt

@OverrideString decrypt(File in) throws UnableToDecodeException, NullPointerException, IOException {(in == null) {new NullPointerException("Input file is null");

}

// read bytes from input file[] bytes = new byte[(int)in.length()];is = new FileInputStream(in);.read(bytes);.close();

// check format(!(new String(bytes, 0, 6)).equals("GIF89a")) {new UnableToDecodeException("Input file has wrong GIF format");

}

// read palette size property from first three bits in the 10-th byte from the file[] b10 = Binary.toBitArray(bytes[10]);bsize = Binary.toByte(new byte[] {b10[0], b10[1], b10[2]});

// calculate color count and possible message lengthbOrigColorCount = (int)Math.pow(2, bsize+1);possibleMessageLength = bOrigColorCount*3/4;possibleTextLength = possibleMessageLength-2; // one byte for check and one byte for message lengthn = 13;

// read check sequence[] csBits = new byte[checkSequence.length];(int i = 0; i < 4; i++) {[] ba = Binary.toBitArray(bytes[n]);[2*i] = ba[firstLSBit];[2*i+1] = ba[secondLSBit];++;

}cs = Binary.toByte(csBits);(cs != Binary.toByte(checkSequence)) {new UnableToDecodeException("There is no encrypted message in the image (Check sequence is incorrect)");

}

// read text length[] cl = new byte[8];(int i = 0; i < 4; i++) {[] ba = Binary.toBitArray(bytes[n]);[2*i] = ba[firstLSBit];[2*i+1] = ba[secondLSBit];++;

}textLength = Binary.toByte(cl);(textLength < 0) {new UnableToDecodeException("Decoded text length is less than 0");

}(possibleTextLength < textLength) {new UnableToDecodeException("There is no messages (Decoded message length (" + textLength + ") is less than Possible message length (" + possibleTextLength + "))");

}

// read text bits and make text bytes[] bt = new byte[textLength];(int i = 0; i < bt.length; i++) {[] bc = new byte[8];(int bci = 0; bci < bc.length/2; bci++) {[] ba = Binary.toBitArray(bytes[n]);[2*bci] = ba[firstLSBit];[2*bci+1] = ba[secondLSBit];++;

}[i] = Binary.toByte(bc);

}new String(bt);

}

Реализация GIFEncryptorByPaletteExtensionMethod будет аналогичной, только отличается метод сохранения/считывания информации.

В классе MainFrame описаны методы-«обертки»: encryptImage(Encryptor encryptor) и decryptImage(Encryptor encryptor), обрабатывающие результаты методов интерфейса Encryptor и осуществляющие взаимодействие с пользователем, т.е открывают диалог выбора файлов, показывают сообщения об ошибках и т.д.; а также и другие методы: openImage(), дающий возможность пользователю выбора изображения, exit(), осуществляющий выход из приложения. Эти методы вызываются из Action'ов соответствующих пунктов меню. В этом классе дополнительно реализованы вспомогательные методы: createComponents() - создание компонентов формы, loadImageFile(File f) - загрузка изображения в специальный компонент из файла. Реализация класса GIFEncryptorByPaletteExtensionMethod аналогична реализации класса GIFEncryptorByLSBMethod, основное отличие состоит в способе записи и чтении байтов сообщения из палитры.

3.2 Работа программы

Метод LSB

Допустим есть такое изображение:


В данном изображении палитра состоит из 256 цветов (так сохраняет Paint). Первые четыре цвета: белый, черный, красный, зеленый. Остальные цвета - черные. Последовательность бит глобальной палитры будет следующая:

11111111 11111111 00000000 00000000 00000000 11111111 00000000 00000000 00000000 11111111 00000000…

Рис. 6. Внедрение текста с помощью LSB

После внедрения сообщения подчеркнутые биты будут заменены битами из сообщения. Полученное изображение почти не отличается от оригинала.

Метод расширения палитры

Открыв изображение, в которое помещено сообщение по данному методу, можно обнаружить такую картину

Рис. 7. Просмотр текста внедренного с помощью метода расширения палитры

Шифрование/дешифрование в анимированных изображениях работает, как и в обычных статических изображениях, при этом анимация не нарушается.

Заключение

Рассмотренные методы, позволяют скрывать текстовую информацию в GIF изображениях, при этом незначительно нарушается качество изображения, но как правило человеческий глаз не может различить эти незначительные изменения.

На сегодняшний день существует огромное количество стеганографичечких методов, позволяющих скрывать конфиденциальную информацию внутри различных источников, но как правило большинство из них малоэффективны, либо легко обнаружимы.

Из этого следует вывод, что рассмотренные методы эффективны лишь при небольшом количестве информации, если попытаться зашифровать больше информации, то контейнер (в данном случае изображение) сильно искажается и нарушается палитра данного изображения.

Список использованных источников

Генне О. В. “Основные положения стеганографии” Защита информации. Конфидент” №3, 2000

Артехин Б.В. Стеганография. Журнал «Защита информации. Конфидент» - 1996 - №4.

Конахович Г.Ф., Пузыренко А.Ю., «Компьютерная стеганография. Теория и практика» - Киев: МК-Пресс, 2006.

Аграновский А.В., Девянин П.Н., Хади Р.А. «Основы компьютерной стеганографии» - М.: Радио и связь, 2003.

Хорошко В.О., Азаров О.Д., Шелест М.С., Яремчук Ю.С., «Основы компьютерной стеганографии», Винница: ВДТУ, 2003.

Методы и средства защиты информации - В. А. Хорошко, А. А. Чекатков

Похожие работы на - Применение стеганографических методов по защите данных

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!