Показаны сообщения с ярлыком MATLAB. Показать все сообщения
Показаны сообщения с ярлыком MATLAB. Показать все сообщения

20 июня 2011 г.

Реализация простейшего генератора псевдослучайной последовательности (ПСП) в Matlab

Прошу прощения за большой перерыв в публикациях.
Псевдослучайные последовательности чисел используются в криптографии буквально во всех методах. Очевидно, что для ее родственницы - стеганографии они тоже имеют большую важность.
Псевдослучайная последовательность – это… последовательность т. е. ее элементы можно пронумеровать: 1, 2, 3, … В то же время, элементы последовательности не должны зависеть от своих соседей или соседей соседей, это значит что следующий элемент последовательности должен быть непредсказуем.
Реализуем простенький алгоритм генерации ПСП на MATLAB. Реализовывать будем предложенный Д.Г. Лехмером в 1949г. конгруэнтный генератор ПСП. (В викисловаре одно из значений слова «конгруэтный» обозначает свойство алгебраического объекта — быть связанным с другим алгебраическим объектом стабильным отношением эквивалентности на алгебраической системе).
Последовательность чисел данного ПСП генератора определяется формулой: Линейный конгруэнтный метод заключается в вычислении членов линейной рекуррентной последовательности по модулю некоторого натурального числа m, задаваемой следующей формулой:

16 апреля 2011 г.

Гистограммный статистический стегоанализ. Пример практической реализации

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

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

25 марта 2011 г.

Стегоанализ с известным контейнером или попиксельное сравнение изображений в Matlab.


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

Рис.1 Мурзик без вложений :)
Загружаем изображения в Matlab. Возможен такой случай, когда мы не знаем какой из файлов является пустым, а какой содержит стегосообщение. Поэтому обозначим изображения переменными IMG_1 и IMG_2 без указания, какое из изображений чистое, а какое со встраиванием.

IMG_1_name='./images/murzik.bmp';
IMG_1 = imread(IMG_1_name);

IMG_2_name='./stego_murzik1.bmp';
% IMG_2_name='./stego_murzik2.bmp';
% IMG_2_name='./stego_murzik3.bmp';
IMG_2 = imread(IMG_2_name);


17 марта 2011 г.

Стеганография в Matlab (извлечение)


Пример извлечения скрытой  информации из графического файла.
Имеем файл BMP – формата со скрытым в его НЗБ (LSB) файлом архива. Процесс сокрытия описан в предыдущем посте.
Для извлечения, как и для внедрения будем использовать систему математического моделирования Matlab. Причины использования Matlab так же описаны в предыдущем посте.
Будем считать, что Matlab запущен и текущим каталогом является каталог с файлом, который содержит скрытое сообщение.
Загружаем в Matlab изображение, которое служит контейнером для скрываемого сообщения:
ext_IMG_name = './stego_murzik2.bmp';
ext_IMG = imread(ext_IMG_name);

10 марта 2011 г.

Стеганография в Matlab. Пример последовательного вcтраивания в НЗБ. (LSB embedding).

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

15 июня 2010 г.

Нейронные сети в Matlab. Аппроксимация функций

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



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

1 2 3 4 5 6 7 ...
4,19 9,85 8,64 -8,16 9,07 -6,74 9,41 ...
-2,12 -8,89 -6,30 2,44 -8,44 -6,28 -9,42 ...

Для наглядности изобразим точки функции на плоскости: