<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>Gr1g0ry K blog</title><description>стеганография, стегоанализ, обработка изображений, веб прогаммирование... и многое другое</description><managingEditor>noreply@blogger.com (Gr1g0ry)</managingEditor><pubDate>Mon, 7 Oct 2024 08:02:47 +0300</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">19</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://gr1g0ry.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:keywords>Steganography,steganalysis,image,processing</itunes:keywords><itunes:subtitle>All about steganography &amp; steganalysis</itunes:subtitle><itunes:category text="Education"><itunes:category text="Higher Education"/></itunes:category><itunes:category text="Technology"><itunes:category text="Software How-To"/></itunes:category><itunes:category text="Technology"><itunes:category text="Tech News"/></itunes:category><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><title>Использование Zend_Form в Моделях</title><link>http://gr1g0ry.blogspot.com/2013/02/using-zend-form-in-your-models.html</link><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Mon, 4 Feb 2013 14:05:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-3517706065950094116</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;h2 style="text-align: justify;"&gt;
&lt;/h2&gt;
&lt;div style="text-align: justify;"&gt;
В последнее время в сообществе Zend Framework (ZF) выросло количество постов посвященных обсуждению Модели в шаблоне Модель-Вид-Контроллер. В ZF нет конкретного класса или интерфейса Модели; авторы фреймворка придерживаются позиции, что модели для каждого приложения специфичны и только разработчик может точно определить наиболее подходящий вариант.
Многие другие фреймворки привязывают Модель к шаблонам доступа к данным - как правило: &lt;a href="http://ru.wikipedia.org/wiki/ActiveRecord" rel="nofollow" target="_blank"&gt;ActiveRecord&lt;/a&gt; или &lt;a href="http://martinfowler.com/eaaCatalog/tableDataGateway.html" rel="nofollow" target="_blank"&gt;Table Data Gateway&lt;/a&gt;, не обращая внимания на тот факт, что Модель привязывается к способу сохранения данных.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
А что произойдет, если Вы начнете использовать Memcached? или перейдете на архитектуру SOA? Что, если с самого начала Ваши данные поступают из веб-сервиса? Что делать, если вы используете базу данных, но бизнес-логика опирается на связи между таблицами?&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Замечательные публикации, которые упомянуты выше, обсуждают различные подходы (используемые при создании модели), но не обязательно указывают на какие-либо конкретные подходы, которые разработчик может использовать при создании своих моделей. Таким образом, это будет первый пост из серии публикаций о некоторых конкретных методах, которые можно использовать при создании моделей. Подходы будут опираться на компоненты ZF, но могут быть использованы и для ряда других фреймворков.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h3 style="text-align: justify;"&gt;
Формы и фильтрация входных данных&lt;/h3&gt;
&lt;div style="text-align: justify;"&gt;
В большинстве случаев программист хочет, чтобы Модель самостоятельно выполняла фильтрацию входящих данных. Причина в том, что фильтрация ввода принадлежит доменной логике (бизнес логике): это набор правил, которые определяют валидность входящих данных и привила их нормализации.
&lt;br /&gt;
Однако, как это согласуется с формами? ZF имеет компонент Zend_Form, который позволяет использовать как цепочки валидаторов и фильтров для проверки входных данных, так и декораторы, определяющие внешний вид. Типичным подходом является создание Формы в Контроллере и передача входящих данных в нее; если данные проходят валидацию, они далее передаются в Модель.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
А что, если привязывать Форму к Модели?
Некоторые возразят, что это нарушает понятие "разделение ответственности" в связи с тем, что логика отображения Формы примешивается к Модели. Однако, по мнению Matthew O'Phinney, такая забота о чистоте кода является слишком педантичной. При подключении к Модели Форма может быть использована исключительно в качестве входного фильтра; когда же возникнут все специфичные для логики отображения действия, например, конфигурирование декораторов, установка атрибутов action и method и т.д. они выполняются через скрипт Вида. Кроме того, различные плагины такие, как - валидаторы, фильтры или декораторы - не загружается до их использования - то есть, практически, нет накладных расходов, при использовании Форм в качестве фильтра входящих данных.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Такой подход поможет придерживаться принципа DRY, одновременно помогая поддерживать четкое разделение бизнес логики и отображения. Наконец, можно вызывать как одну, так и несколько Форм из Модели, что поспособствует быстрой разработке приложений, а также обеспечит прочную семантическую связь между моделью и представлением. Перейдем непосредственно к методике.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style="text-align: justify;"&gt;
Прикрепление Форм к Моделям&amp;nbsp;&lt;/h3&gt;
&lt;div style="text-align: justify;"&gt;
Просто добавьте в модель метод getForm(), передав ему один необязательный параметр – тип запрашиваемой формы. Используйте Форму, возвращаемую этим методом, каждый раз, когда потребуется валидация данных. (Некоторые модели требуют нескольких форм, что лучше спланировать заранее. Хорошим примером является модель пользователя, для которой понадобятся формы логина и регистрации.) Давайте посмотрим на это в действии:&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre class="brush: php"&gt;class Spindle_Model_Bug
{
    protected $_forms = array();

    public function getForm($type = 'bug')
    {
        $type  = ucfirst($type);
        if (!isset($this-&amp;gt;_forms[$type])) {
            $class = 'Spindle_Model_Form_' . $type;
            $this-&amp;gt;_forms[$type] = new $class;
        }
        return $this-&amp;gt;_forms[$type];
    }

    public function save(array $data)
    {
        $form = $this-&amp;gt;getForm();
        if (!$form-&amp;gt;isValid($data)) {
            return false;
        }

        $storage = $this-&amp;gt;getStorage();
        if ($form-&amp;gt;getValue('id')) {
            $id = $form-&amp;gt;getValue('id');
            $storage-&amp;gt;update($form-&amp;gt;getValues(), $id));
        } else {
            $id = $storage-&amp;gt;insert($form-&amp;gt;getValues());
        }

        return $id;
    }
}&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
В фрагменте кода, приведенном выше, показано, как Форма выступает в качестве фильтра для входных данных.  Вначале Форма используется для проверки допустимости входных данных, а затем, чтобы (с помощью фильтров) обеспечить нормализацию входящих данных. Вы также можете использовать Форму, чтобы проверить наличие некоторых дополнительных значений, как это делается здесь, чтобы, например, выбрать действия, необходимые для сохранения данных.
Что происходит в Контроллере и Виде?
В Контроллерах действий происходит небольшое изменение подхода. Вместо проверки данных с помощью Формы и передачи данных модели, Вы просто пытаетесь сохранить данные в модель:&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre class="brush: php"&gt;class BugController
{
    public function processAction()
    {
        $request = $this-&amp;gt;getRequest();
        if (!$request-&amp;gt;isPost()) {
            return $this-&amp;gt;_helper-&amp;gt;redirector('new');
        }

        if (!$id = $this-&amp;gt;model-&amp;gt;save($request-&amp;gt;getPost())) {
            // Failed validation; re-render form page
            $this-&amp;gt;view-&amp;gt;model = $model;
            return $this-&amp;gt;render('new');
        }

        // redirect to view newly saved bug
        $this-&amp;gt;_helper-&amp;gt;redirector('view', null, null, array('id' =&amp;gt; $id));
    }
}&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Как видите, в Контроллере   немного кода и вообще не упоминаются формы. Итак, как мы будем отображать Форму? Заметим, что Модель передается в Вид - что в конечном итоге дает нам доступ к Форме.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre class="brush: php"&gt;$form = $this-&amp;gt;model-&amp;gt;getForm();
$form-&amp;gt;setMethod('post')
     -&amp;gt;setAction($this-&amp;gt;url(array('action' =&amp;gt; 'process')));
echo $form;&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Такой подход позволяет разделить зоны ответственности. Вы выводите форму, которая дальше будет использоваться для фильтрации данных текущей модели. Обратите внимание на логику отображения, помещенную в файл Вида. Здесь задаются параметры method и action для текущей Формы, что как раз соответствует логике отображения.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style="text-align: justify;"&gt;
Резюме&amp;nbsp;&lt;/h3&gt;
&lt;div style="text-align: justify;"&gt;
&amp;nbsp;Есть, конечно, и другие способы решения проблемы, но это удобное и выгодное решение, которое максимизирует использование существующих компонентов. Привязка Форм к Моделям помещает всю логику, связанную с проверкой входных данных - в том числе сообщений об ошибках - в одном месте, и гарантирует, что Ваши формы останутся актуальными в случае изменения модели, например правил валидации или списка разрешенных входных данных.(&lt;span style="font-size: x-small;"&gt;перевод поста &lt;a href="http://www.mwop.net/blog/200-Using-Zend_Form-in-Your-Models.html" target="_blank"&gt;&lt;span class="main_title"&gt;Matthew O'Phinney.&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;)&lt;/div&gt;
&lt;/div&gt;
</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Программы для стеганографии. Fox Secret</title><link>http://gr1g0ry.blogspot.com/2011/08/steganographysoftfoxsecret.html</link><category>ru</category><category>Стеганография</category><category>Стегоанализ</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Sat, 20 Aug 2011 13:02:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-3727881766307126996</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div align="justify"&gt;Думаю, читателям будет интересным познакомиться с существующими программами для стеганографии.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Начнем с простенькой разработки &lt;b&gt;Fox Secret 1.00&lt;/b&gt;. Согласно тому, что написано в справке, автор программы: Леев Леонид Владимирович, Россия, Москва. Сайт:&lt;span class="Apple-style-span" style="color: blue;"&gt; &lt;a href="http://www.gray-fox.ru/"&gt;http://www.gray-fox.ru/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Программа бесплатная, имеет только одну версию и не обновлялась автором с 28 мая 2006&amp;nbsp;г. Однако данное ПО заслуживает, чтобы о нем сказать пару слов.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Предлагаемая&amp;nbsp;&lt;b&gt;криптография&lt;/b&gt;:&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;- симметричные алгоритмы шифрования Blowfish, IDEA, RC5, AES32, ГОСТ 28147-89, 3Way;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;- ассиметричный алгоритм RSA.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Из &lt;b&gt;стеганографии &lt;/b&gt;предлагается:&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;- сокрытие в текстовых форматах: TXT, RTF и HTML;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;- сокрытие в графических форматах: Windows BMP (16-битный, 24-битный и 32-битный цвет), PNG, JPEG, TIFF;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;- сокрытие в звуковых форматах: WAV и MP3.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Сокрытие в JPEG файл&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Рассмотрим процесс сокрытия на примере JPEG файла.&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Внешний вид программы при запуске:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTJKvhKIjvNLIfZ0aFmy5aYxdWqhm2mxElzZlenk85amgksUjIZxmcgWy2frpT9W6PTT3PXeXeAfLMi7kFA3XCwTCP5sluREfruWfz2Jp75UOtaXu5EkM6i4LI3xtZXA10GinwJLXqcA4/s1600/10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTJKvhKIjvNLIfZ0aFmy5aYxdWqhm2mxElzZlenk85amgksUjIZxmcgWy2frpT9W6PTT3PXeXeAfLMi7kFA3XCwTCP5sluREfruWfz2Jp75UOtaXu5EkM6i4LI3xtZXA10GinwJLXqcA4/s320/10.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;v:shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;  &lt;v:path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f"&gt;  &lt;o:lock aspectratio="t" v:ext="edit"&gt; &lt;/o:lock&gt;&lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" style="height: 156pt; width: 261pt;" type="#_x0000_t75"&gt;  &lt;v:imagedata o:title="" src="file:///C:\WINDOWS\TEMP\msohtml1\01\clip_image001.png"&gt; &lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Попытаемся что-либо спрятать. Выбираем меню &lt;i&gt;Секрет / Новый&lt;/i&gt;. Открывается окно:&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;v:shape id="_x0000_i1026" style="height: 145.5pt; width: 225pt;" type="#_x0000_t75"&gt;  &lt;v:imagedata o:title="" src="file:///C:\WINDOWS\TEMP\msohtml1\01\clip_image003.png"&gt; &lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXUxjWkxcP7Bax4Y5FoaPPC0qmeVFltJwMJaaevbH3oPlcO1m_aymtbkadce73rV7PbQ6RHWwI2r0cqdrQdxxQ6NZ6IG4Q0IPFlTpy9PUvmnJ6jFqb4aCGqVhO8HKLO37zWp4UmFEOpes/s1600/11.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="206" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXUxjWkxcP7Bax4Y5FoaPPC0qmeVFltJwMJaaevbH3oPlcO1m_aymtbkadce73rV7PbQ6RHWwI2r0cqdrQdxxQ6NZ6IG4Q0IPFlTpy9PUvmnJ6jFqb4aCGqVhO8HKLO37zWp4UmFEOpes/s320/11.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Нам дается возможность выбрать что будем прятать. Иконки &lt;i&gt;Текст &lt;/i&gt;и &lt;i&gt;Файл &lt;/i&gt;- очевидны. Если же мы выберем иконку &lt;i&gt;Сейф&lt;/i&gt;, то прятать сможем целые группы файлов и каталоги с сохранением их структуры. &lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Выбираем иконку &lt;i&gt;Файл&lt;/i&gt; и жмем кнопку &lt;i&gt;Вперед&lt;/i&gt;. Открывается диалог выбора контейнера - файла изображения. &lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Судя по перечисленным в диалоге форматам, программа умеет скрывать данные в BMP, PNG, JPEG и TIFF. Первым попробуем JPEG. Следует обратить внимание на то, что FoxSecret скрывает данные непосредственно в выбранное изображение. Так что, если хотите не потерять исходное изображение, сделайте предварительно его копию. &lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIeMw2N0hUwXdHbLHJgpC23KOwxfBepR2VzjCqbSNwhEzstOQvd_2PpRhI9F2sCcNXoLnCRDQi6KOHR9G6mJQ4ERL1Pqnnj6ezhHQ0MIpt7IdAPdFryhWtlGA5RVk3yo8xVNVE2AsE41o/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="249" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIeMw2N0hUwXdHbLHJgpC23KOwxfBepR2VzjCqbSNwhEzstOQvd_2PpRhI9F2sCcNXoLnCRDQi6KOHR9G6mJQ4ERL1Pqnnj6ezhHQ0MIpt7IdAPdFryhWtlGA5RVk3yo8xVNVE2AsE41o/s320/1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Нам предлагают возможность зашифровать наши скрываемые данные. Обратите внимание на вместимость контейнера. Она указывает, что данные будут прятаться либо в комментарии файла JPEG, либо в конец путем дописывания.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgszrC8IGoqDMwP51bUYjRWG-6Y8Lbk5fNMNsLm2buHiQi08Se7tH2PhCqIpPaCShOJEtlELDzycO4GiaVvIbnCHoQSYC9ZUnj5S9YjEpPG_9aLF2enqbEJGP0Nl7Rsp4KCs83KnNZIsY/s1600/12.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="206" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgszrC8IGoqDMwP51bUYjRWG-6Y8Lbk5fNMNsLm2buHiQi08Se7tH2PhCqIpPaCShOJEtlELDzycO4GiaVvIbnCHoQSYC9ZUnj5S9YjEpPG_9aLF2enqbEJGP0Nl7Rsp4KCs83KnNZIsY/s320/12.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Вводим пароль и жмем &lt;i&gt;Вперед&lt;/i&gt;. Будет предложен выбор файла который будем прятать. Выберем другое изображение «800px-Dirij-angar.JPG», размер которого даже превосходит по размеру файл-контейнер.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipmxau6v8JQknByAQIP0hW2wH2aMuBPTxOu858BdpivG59Y3L6hUPXoCLToOs8x8Bs3xKOFznJ4yUscVz3e2wDuValobwO0l-2AoK4P5GRFVZcXPkyftdxA-kM_TrbvVLrUovja4IJuis/s1600/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="234" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipmxau6v8JQknByAQIP0hW2wH2aMuBPTxOu858BdpivG59Y3L6hUPXoCLToOs8x8Bs3xKOFznJ4yUscVz3e2wDuValobwO0l-2AoK4P5GRFVZcXPkyftdxA-kM_TrbvVLrUovja4IJuis/s320/2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Получаем контейнер со спрятанными данными. &lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkoYC7627-k8HWoV2kn2zpYw07Ko4hjdw1bk1CtIVlBMkwmRKihFf9NtkKOUY3T42WJl59ZXneRoP2SSRGHDhs7geq5wsnTf5guYWrrc3rVN_ulZHww_AuL3FfefPhR-yG32tndrUi_qA/s1600/3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkoYC7627-k8HWoV2kn2zpYw07Ko4hjdw1bk1CtIVlBMkwmRKihFf9NtkKOUY3T42WJl59ZXneRoP2SSRGHDhs7geq5wsnTf5guYWrrc3rVN_ulZHww_AuL3FfefPhR-yG32tndrUi_qA/s320/3.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Можно закрывать программу. Вложение прошло успешно. Естественно размер изображения-контейнера увеличился на размер вложенного изображения. &lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXD_K2PrY2hnYYJaCA6abWty_7HTXhdFo3Da_vKVGdtBFRMH8xRhr8YtUPTGeIazWkA_Rd3FoJtbpC4c1lzakCVgnUfmuz-AkiAMdM84xMQoR1Brmvkw6pUADdHVlZw8_M4vPGaCgYN_A/s1600/4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXD_K2PrY2hnYYJaCA6abWty_7HTXhdFo3Da_vKVGdtBFRMH8xRhr8YtUPTGeIazWkA_Rd3FoJtbpC4c1lzakCVgnUfmuz-AkiAMdM84xMQoR1Brmvkw6pUADdHVlZw8_M4vPGaCgYN_A/s320/4.jpg" width="254" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Извлечение и стеганоанализ&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Чтобы извлечь данные нужно выбрать &lt;i&gt;Секрет/Открыть&lt;/i&gt;, выбрать изображение, в которое были спрятаны данные. Пользователь сразу видит окно предложение ввода пароля для извлечения.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4l8CjbvLAXjocVmD3hfW2JeDfDikrXKULGX6EGL67Tb-OM22fI5FOE9M8pIWwnC1TewQExXr5J8XYRSz6uRHfFxO43bMBvZuvDCSpJrJqkxmjahIGcIkFzLPELSDxsv5rtlcawQ4BH7M/s1600/5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="206" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4l8CjbvLAXjocVmD3hfW2JeDfDikrXKULGX6EGL67Tb-OM22fI5FOE9M8pIWwnC1TewQExXr5J8XYRSz6uRHfFxO43bMBvZuvDCSpJrJqkxmjahIGcIkFzLPELSDxsv5rtlcawQ4BH7M/s320/5.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Далее нужно ввести пароль. В следующем окне вызвать пункт &lt;i&gt;Достать &lt;/i&gt;из меню &lt;i&gt;Файл &lt;/i&gt;и сохранить на диске полученное вложение.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Следует отметить, что при доставании СКРЫТОЕ ВЛОЖЕНИЕ ИЗ КОНТЕЙНЕРА НЕ УДАЛЯЕТСЯ. Т.е. достать его можно повторно. &lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;ИНТЕРЕСНО, если выбрать JPEG файл без скрытого вложения, FoxSecret сообщит о том, что в данном файле вложение не обнаружено (:-D). &lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1QrzcLY9abCbNetuKwz1hLco7wzCSzy98hFFEX0PEhMraDVMjUcgGGAUTX8BZ8dJK7sAKJWJO_46A724WgZv-_t84C-Y9ImtcQDbwaK4NrvYWerjklk0-lC8aEni1izmlWPJ3JKwF4iU/s1600/14.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1QrzcLY9abCbNetuKwz1hLco7wzCSzy98hFFEX0PEhMraDVMjUcgGGAUTX8BZ8dJK7sAKJWJO_46A724WgZv-_t84C-Y9ImtcQDbwaK4NrvYWerjklk0-lC8aEni1izmlWPJ3JKwF4iU/s1600/14.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Таким образом Fox Secret&amp;nbsp;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;ПРЯМО ПОДСКАЗЫВАЕТ ПОЛЬЗОВАТЕЛЮ ГДЕ ФАЙЛ С ВЛОЖЕНИЕМ, А ГДЕ ПУСТОЙ.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Откроем изображение со вложенными данными в бесплатной программе для просмотра изображений - IrfanView. Далее следует выбрать пункт меню &lt;i&gt;изображение/информация&lt;/i&gt;. &lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhnGqI2bXHkIj1Iz6VZQ2DIZONCEmkFGB6BVoxcI0l1qWguEcsDCB0qt1zcDqvqkdsfY6jS14C3FNUORN8tFFSVxh1Kq2MFsWfhrCp0sbRrYOmxgRCZFVZvP0fg2erO8mHwimOk46yc5Q/s1600/7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhnGqI2bXHkIj1Iz6VZQ2DIZONCEmkFGB6BVoxcI0l1qWguEcsDCB0qt1zcDqvqkdsfY6jS14C3FNUORN8tFFSVxh1Kq2MFsWfhrCp0sbRrYOmxgRCZFVZvP0fg2erO8mHwimOk46yc5Q/s320/7.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;v:shape id="_x0000_i1035" style="height: 397.5pt; width: 467.25pt;" type="#_x0000_t75"&gt;  &lt;v:imagedata o:title="" src="file:///C:\WINDOWS\TEMP\msohtml1\01\clip_image021.png"&gt; &lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;В открывшемся окне «свойства изображения» выбираем кнопку комментарий и наблюдаем зашифрованное и «надежно (:-D)» спрятанное сообщение.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiarsAzZr4YnzC65Svar1z0PJjt-m7aNPZbLGHCOmORArhqQiofWJv_5S4j-fEjvv46TZDEe-7W1peqiKG11vvK6WNzYDWqhSbJSWi72jvxhvhpCT4dMcrIqFLtdHOLbZJaVvveB7KwRjM/s1600/8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="241" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiarsAzZr4YnzC65Svar1z0PJjt-m7aNPZbLGHCOmORArhqQiofWJv_5S4j-fEjvv46TZDEe-7W1peqiKG11vvK6WNzYDWqhSbJSWi72jvxhvhpCT4dMcrIqFLtdHOLbZJaVvveB7KwRjM/s320/8.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;После удаления данного комментария файл-контейнер возвращается к первозданному виду.&lt;br /&gt;
Продолжение следует...&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTJKvhKIjvNLIfZ0aFmy5aYxdWqhm2mxElzZlenk85amgksUjIZxmcgWy2frpT9W6PTT3PXeXeAfLMi7kFA3XCwTCP5sluREfruWfz2Jp75UOtaXu5EkM6i4LI3xtZXA10GinwJLXqcA4/s72-c/10.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total></item><item><title>Стеганография, голограммы и комерция от Хабиба Хамама</title><link>http://gr1g0ry.blogspot.com/2011/07/steganography-approach-from-habib-hamam.html</link><category>ru</category><category>Новости</category><category>Стеганография</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Sat, 23 Jul 2011 13:18:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-9092066440028988029</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga8ekYC0l8czsjNTpm5iQ_SlykW7lKDLoX2ib3PjXMsV_2nrzMULrKqCZOlW7EuwCrN98Df91brSLZVfkzQ9KduXjLJWcjNEqO34gY47XSaHjfDuzpzqIGeBHP29IEDZTURfvp6YvpDfg/s1600/Habib+Hamam.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga8ekYC0l8czsjNTpm5iQ_SlykW7lKDLoX2ib3PjXMsV_2nrzMULrKqCZOlW7EuwCrN98Df91brSLZVfkzQ9KduXjLJWcjNEqO34gY47XSaHjfDuzpzqIGeBHP29IEDZTURfvp6YvpDfg/s320/Habib+Hamam.jpeg" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 12pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;Université de Moncton's Dr. Habib Hamam, &lt;/span&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 12pt;"&gt;P.Eng.,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 12pt;"&gt;HDR, разрабатывает новые подходы сокрытия&lt;/span&gt;&lt;br /&gt;
&lt;span lang="EN-US" style="font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 12pt;"&gt;данных от хакеров. &lt;/span&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 12pt;"&gt;Photo: COLE BURSTON&lt;/span&gt;&lt;br /&gt;
&lt;span lang="EN-US" style="font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 12pt;"&gt;/Canadaeast News Service&amp;nbsp;&lt;/span&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: inherit;"&gt;По материалам &lt;a href="http://telegraphjournal.canadaeast.com/rss/article/1408740"&gt;telegraphjournal.canadaeast.com/rss/article/1408740&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Профессор канадского университета &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Université de Moncton разрабатывает стеганографическое программное обеспечение основанное на новых принципах.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Голограммы в их наиболее общей форме - это иллюзии. Они принуждают глаз видеть что-то, чего на самом деле там нет. Доктор Хабиб Хамам&amp;nbsp; использует их для сокрытия секретов.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Профессор университета de Moncton заявил, что он разработал ПО которое использует общедоступные изображения, например фотографии Белого дома и скрывает конфиденциальную информацию. Оригинальное изображение Белого дома будет изменено, возможно некоторые голубые пиксели неба будут затемнены, но увидеть это невооруженным глазом невозможно . Однако, хакер используя технологии потенциально может обнаружить сокрытие.&lt;a name='more'&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;В этом месте подключаются голограммы доктора Хамам. Дотошный хакер основывается на различиях и глубоко разбирает форматы данных, но любые подозрения могут быть устранены когда он столкнется с голограммой. Конечно вместо пикселизированого трехмерного героя из Аватара выступающего из экрана, хакер увидит мешанину из цифр. Ошибочно пропустив эту «кашу» как цифровую бессмыслицу он продолжит свои поиски. По крайней мере на это рассчитывает доктор Хамам.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Метод сокрытия данных во внешне безобидных данных называется стеганографией. Когда юноша-подросток дает порнографическому видеофайлу&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;название «Рефераты и курсовые», он использует именно эту технику.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Слово стеганография происходит от греческого слова «сокрытие». Стеганография объединяет различные методы, например, водяные знаки, которые обычно используются для защиты интеллектуальной собственности.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;«Криптография используется со времен Иисуса»,- гворит Hamam. Она эволюционировала от древних шифров до цифрового кодирования. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Но проблема криптографии в том, что если она усложняет доступ к данным и их расшифровке, то вы все равно знаете: они там.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Стеганография же подобна технологи стелс. Хакеры с меньшей вероятностью будут расшифровывать сообщение, которое выглядит абсолютно обычным.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Хамам первый, кто добавил второй уровень защиты основанный на голограммах. Однако это принесло так же дополнительную выгоду. Стало возможным скрывать больше информации в одном изображении. Обычно чтобы факт сокрытия прошел незамеченным контейнер должен&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;быть значительно больше чем данные которые вы пытаетесь спрятать.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;«Вы можете поместить детеныша кенгуру в карман кенгуру-матери, но нельзя сделать обратное», - говорит Хамам.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;С помощью голографии Хамама «кенгуренок» может иметь размеры лишь в четыре раза меньше его матери и оставаться незамеченным. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Автор метода заявляет, что он уже разработал программное обеспечение, которое легко может модифицировать изображения. Сейчас планируется следующий шаг. Хамам говорит, что хочет посмотреть возможно ли применить голографические идеи к аудиоданным. Для этого Хамам, который является участником Canada Research Chair, взаимодействует с &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;профессором Саид Ахмет из Selouani Université de Moncton's Shippagan, который специализируется на обработке звука.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;«Я хорошо разбираюсь&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;в изображениях, но теперь я решил попробовать иной путь», - говорит Хамам.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Хамам оценивает стоимость продукта в 1,7 миллиона долларов. Исследования получают поддержку из различных источников, включая New Brunswick Innovation Fund. По словам автора, исследование будет готово к коммерциализации за два года. Когда это произойдет, теоретически каждый сможет купить данное ПО. Также планируется данное приложение для мобильных устройств. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Голограммы могли бы так же использоваться компаниями которые хотят защитить свои продукты от незаконного копирования на другие компьютеры, скрыто маркируя подлинную информацию в свое ПО. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;По словам Хамама, он также имеет маркетингового партнера связанного с министром обороны. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;У каждого есть что защищать говорит ученый-бизнесмен.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 12pt;"&gt; &lt;/span&gt; &lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga8ekYC0l8czsjNTpm5iQ_SlykW7lKDLoX2ib3PjXMsV_2nrzMULrKqCZOlW7EuwCrN98Df91brSLZVfkzQ9KduXjLJWcjNEqO34gY47XSaHjfDuzpzqIGeBHP29IEDZTURfvp6YvpDfg/s72-c/Habib+Hamam.jpeg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Реализация простейшего генератора псевдослучайной последовательности (ПСП) в Matlab</title><link>http://gr1g0ry.blogspot.com/2011/06/pseudo-random-sequence-generation-in.html</link><category>MATLAB</category><category>ru</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Mon, 20 Jun 2011 13:53:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-8991216037728553720</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: 0pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Прошу прощения за большой перерыв в публикациях.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: 35.45pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Псевдослучайные последовательности чисел используются в криптографии буквально во всех методах. Очевидно, что для ее родственницы - стеганографии они тоже имеют большую важность. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: 35.45pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Псевдослучайная последовательность – это… последовательность т. е. ее элементы можно пронумеровать: 1, 2, 3, … В то же время, элементы последовательности не должны зависеть от своих соседей или соседей соседей, это значит что следующий элемент последовательности должен быть непредсказуем.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: 35.45pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Реализуем простенький алгоритм генерации ПСП на &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;MATLAB. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Реализовывать будем предложенный Д.Г. Лехмером в 1949г. конгруэнтный генератор ПСП. (В викисловаре одно из значений слова «конгруэтный» обозначает свойство алгебраического объекта — быть связанным с другим алгебраическим объектом стабильным отношением эквивалентности на алгебраической системе). &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: 35.45pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Последовательность чисел данного ПСП генератора определяется формулой: Линейный конгруэнтный метод заключается в вычислении членов линейной рекуррентной последовательности по модулю некоторого натурального числа &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;, задаваемой следующей формулой:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK6DM9xJbWFrHu_fCdjJiOIR4k1vAIAeO1oapVPLB12EtVAwREpFFTrMnTeOw3EwVrP-urczr0ZEg12l38MFvqo8pdR9f4Q3PEta3h4-O4oI91HQgc-gPweP45ioMKYnxdR6cW-ozj6w8/s1600/Formula_PRS.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="30" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK6DM9xJbWFrHu_fCdjJiOIR4k1vAIAeO1oapVPLB12EtVAwREpFFTrMnTeOw3EwVrP-urczr0ZEg12l38MFvqo8pdR9f4Q3PEta3h4-O4oI91HQgc-gPweP45ioMKYnxdR6cW-ozj6w8/s200/Formula_PRS.gif" width="200" /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: 35.45pt; text-justify: inter-ideograph;"&gt;&lt;span style="mso-text-raise: -5.0pt; position: relative; top: 5.0pt;"&gt;&lt;v:shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;v:formulas&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;v:path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/o:lock&gt;&lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" o:ole="" style="height: 27.75pt; width: 180pt;" type="#_x0000_t75"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;v:imagedata o:title="" src="file:///C:\WINDOWS\TEMP\msohtml1\01\clip_image001.wmz"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;xml&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;o:oleobject drawaspect="Content" objectid="_1370083182" progid="Equation.3" shapeid="_x0000_i1025" type="Embed"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/o:oleobject&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/xml&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: 35.45pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;данная последовательность определяется целочисленными коэффициентами &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;a, c&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; и начальным членом &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;X(0)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Максимально возможная длинна ряда порождаемого данным генератором равна &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;При превышении данной длинны последовательность начнет повторять цикл «случайных» чисел.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Чтобы длина последовательности была максимальной коэффициенты &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;a, c&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; и &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; должны подчиняться правилам:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: 35.45pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 53.45pt; mso-list: l1 level1 lfo1; tab-stops: list 53.45pt; text-align: justify; text-indent: -18.0pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;1.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;НОД(c,m) = 1&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; то есть, c и m взаимно просты (НОД - наибольший общий делитель. Например, для 12 и 20 НОД равен 4, что записывается как (12,20) = 4&amp;nbsp;. Наибольший общий делитель для взаимно простых чисел - 1)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 53.45pt; mso-list: l1 level1 lfo1; tab-stops: list 53.45pt; text-align: justify; text-indent: -18.0pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;2.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;-1 кратно p для всех простых делителей &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;p&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; числа &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;. Данное условие означает, что &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;-1 должно&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;состоять как&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;минимум из всех простых делителей числа, исключая их повторение. Например если число &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;450&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; =2*3*3*5&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;*5, то&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;-1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; может быть произведением &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;2*3*5=30&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;следовательно &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; = 31&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 53.45pt; mso-list: l1 level1 lfo1; tab-stops: list 53.45pt; text-align: justify; text-indent: -18.0pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;3.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;-1 кратно 4, если &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; кратно 4.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Данное условие означает, что если &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;делится на 4 без остатка, то значение &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;-1 так же должно делится на 4 без остатка.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: 35.45pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Несоблюдение перечисленных правил резко (в 2-5 раз) сокращает длину псевдослучайной последовательности по сравнению с максимальной. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: 35.45pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Привила 2 и 3 накладывают некоторые ограничения и на выбор числа &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 53.45pt; mso-list: l0 level1 lfo2; tab-stops: list 53.45pt; text-align: justify; text-indent: -18.0pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;−&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;если число &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; простое, длинна ПСП будет меньше максимальной;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 53.45pt; mso-list: l0 level1 lfo2; tab-stops: list 53.45pt; text-align: justify; text-indent: -18.0pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;−&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;если &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; будет состоять из простых делителей, &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;которые не повторяются&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;-1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; будет равно &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Например, если &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; =&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;2*3*5=30&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;, невозможно подобрать такое &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;-1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;, которое меньше &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; и кратно всем простым делителям – &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;5&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 53.45pt; mso-list: l0 level1 lfo2; tab-stops: list 53.45pt; text-align: justify; text-indent: -18.0pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;−&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;аналогично не решает проблему наличие двух делителей равных 2 (см. правило 3). Например, нельзя подобрать &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;-1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; для &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; =&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;*2&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;*3*5=&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;6&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: 35.45pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Учитывая сказанное, для формирования ПСП максимальной длинны будем брать &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;кратным 8, тогда &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;-1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; может быть равно произведению всех простых делителей кроме первой двойки. Например, если &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;m&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; =&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;*2*2&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;*3&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;*5 =120, то &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;-1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;= 2*2&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;*3&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;*5 = 60.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Простой &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Matlab &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;скрипт реализует описанный ПСП - генератор:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;function&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; [X_PRS, O ] = psp( M )&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;%%PSP&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;X_(k+1)=(a*X_k+c)mod m. Length = m.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;%% searching for (m &amp;lt; M) &amp;amp; (m mod 8 = 0)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;X=mod(M,8);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;m=M-X;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% prime factor decomposition&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;f = factor(m);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;%% getting a&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;a=1;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;k=find(f&amp;gt;2);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;for&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; l=1:size(k,2)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;a=a*f(k(l));&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;end&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;a=a*4+1;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;%% getting c&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;c=2*round(m./3);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;while&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; gcd(m,c)~=1&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;c=c+1;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;end&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;%% generation of pseudorandom sequence&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;X0=c+2;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;X_PRS=zeros(1,m);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;X_PRS(1)=X0;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;for&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; k=2:m&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;X_PRS(k)=mod((a*X_PRS(k-1)+c),m);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;end&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% ranking PRS &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;O = sort(X_PRS);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;end&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: 35.45pt; text-justify: inter-ideograph;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Выполним данный скрипт в командной строке Matlab.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;gt;&amp;gt; [X_PRS, O ] = psp(3145728);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;В результате имеем массив - псевдослучайную последовательность&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;X_PRS и ряд O, состоящий из тех же чисел но упорядоченных по возрастанию.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Первая двадцатка &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;X_PRS выглядит так:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;br /&gt;
&amp;gt;&amp;gt; X_PRS20=X_PRS(1:20)&lt;br /&gt;
&lt;br /&gt;
X_PRS20 =&lt;br /&gt;
&lt;br /&gt;
Columns 1 through 6&lt;br /&gt;
&lt;br /&gt;
2097157     1048644         887     2108686     1198521     1949288&lt;br /&gt;
&lt;br /&gt;
Columns 7 through 12&lt;br /&gt;
&lt;br /&gt;
2272075      176850     1250477     2624716     1615455     1077974&lt;br /&gt;
&lt;br /&gt;
Columns 13 through 18&lt;br /&gt;
&lt;br /&gt;
382177      774000     2721971     2879770     1785429      141908&lt;br /&gt;
&lt;br /&gt;
Columns 19 through 20&lt;br /&gt;
&lt;br /&gt;
796231     3010974&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt; &lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Первая двадцатка &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;O, очевидно, выглядит так:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;br /&gt;
&amp;gt;&amp;gt; O20=O(1:20)&lt;br /&gt;
&lt;br /&gt;
O20 =&lt;br /&gt;
&lt;br /&gt;
Columns 1 through 12&lt;br /&gt;
&lt;br /&gt;
0     1     2     3     4     5     6     7     8     9    10    11&lt;br /&gt;
&lt;br /&gt;
Columns 13 through 20&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;   12    13    14    15    16    17    18    19&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;График первой тысячи псевдослучайных чисел выглядит так:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaQIbRo3gvFPxQ0Gbvnh0Oyho-Csm56S_bGmgSGVpHqvUdBmrccCoFv4I9-lbfLtktOE9uh7iMhI20IqYrcSXg4CJ9a-fCn5mdMbiyAdtpBQ4Wyql5_-wxD5W5tpJ1tz0TQBWn4oSyPbQ/s1600/PSP1000.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaQIbRo3gvFPxQ0Gbvnh0Oyho-Csm56S_bGmgSGVpHqvUdBmrccCoFv4I9-lbfLtktOE9uh7iMhI20IqYrcSXg4CJ9a-fCn5mdMbiyAdtpBQ4Wyql5_-wxD5W5tpJ1tz0TQBWn4oSyPbQ/s400/PSP1000.gif" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK6DM9xJbWFrHu_fCdjJiOIR4k1vAIAeO1oapVPLB12EtVAwREpFFTrMnTeOw3EwVrP-urczr0ZEg12l38MFvqo8pdR9f4Q3PEta3h4-O4oI91HQgc-gPweP45ioMKYnxdR6cW-ozj6w8/s72-c/Formula_PRS.gif" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Гистограммный статистический стегоанализ. Пример практической реализации</title><link>http://gr1g0ry.blogspot.com/2011/04/histogram-steganalysis-practical.html</link><category>MATLAB</category><category>ru</category><category>Стегоанализ</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Sat, 16 Apr 2011 11:56:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-8482265436756303633</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;Учитывая пожелания читателей и статистику посещаемости для сообщений, этот пост посвящается &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: inherit;"&gt;практической реализации&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: inherit;"&gt; одного из методов стегоанализа (стеганоанализа, &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;steganalysis&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;). &lt;a href="http://gr1g0ry.blogspot.com/2011/01/histogram-steganalysis.html"&gt;&lt;span style="color: blue;"&gt;&lt;u&gt;Ранее уже приводилось&lt;/u&gt;&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: inherit;"&gt;теоретическое обоснование различия гистограмм яркостей цветовых компонент для пустого изображения-контейнера и заполненного стегоизображения.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin: 0cm 0cm 0.0001pt;"&gt;&lt;span style="font-family: inherit;"&gt;В русскоязычном интернете невозможно найти хоть какую-нибудь работающую программу для стегоанализа. Однако, &lt;/span&gt;&lt;a href="http://dde.binghamton.edu/index.php"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="color: blue;"&gt;&lt;u&gt;теоретические&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: inherit;"&gt; &amp;nbsp;и &lt;/span&gt;&lt;a href="http://www.sarc-wv.com/"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="color: blue;"&gt;&lt;u&gt;практические (коммерческие) разработки&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: inherit;"&gt; в мире шагнули весьма далеко. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhELn12cta8Z-1M7oBiA_qMVzRJRcOhAvtcu2dJ16GrU2pWhb5-Jl8-NI6Gn2ySkEbHJq_bRkuEVI2mxxAf-__G_rai4rUN6qxnK2U4aCZjdHn-QDIQ7wFDgvjYicnZIHsbpcmzxPHL5_Y/s1600/gistogramma.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhELn12cta8Z-1M7oBiA_qMVzRJRcOhAvtcu2dJ16GrU2pWhb5-Jl8-NI6Gn2ySkEbHJq_bRkuEVI2mxxAf-__G_rai4rUN6qxnK2U4aCZjdHn-QDIQ7wFDgvjYicnZIHsbpcmzxPHL5_Y/s400/gistogramma.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Рис. 1 Гистограмма &lt;b&gt;&lt;span style="color: blue;"&gt;пустого&lt;/span&gt;&lt;/b&gt; и &lt;b&gt;&lt;span style="color: red;"&gt;заполненного&lt;/span&gt;&lt;/b&gt; изображений&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;Не будем отставать и создадим наш собственный скрипт для &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;Matlab&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;, который будет отыскивать последовательное вложение. (Встроить вложение можно, с помощью &lt;/span&gt;&lt;a href="http://gr1g0ry.blogspot.com/2011/03/steganography-in-matlab.html"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="color: blue;"&gt;&lt;u&gt;ранее описанного метода&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: inherit;"&gt;). Метод обнаружения последовательного встраивания будем разрабатывать для 24 битного BMP изображения.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;a href="http://gr1g0ry.blogspot.com/2011/01/steganalysis-methods-classification.html"&gt;&lt;span style="font-family: inherit;"&gt;По приведенной ранее классификации&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: inherit;"&gt;, описываемый метод стегоанализа относится к &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;вероятностным методам,&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;которые в пространственной форме представления изображения&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;с помощью статистического критерия Хи квадрат &lt;/span&gt;&lt;span style="font-family: inherit;"&gt;ищут стеганографические вложения,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&amp;nbsp;сделанные определенным алгоритмом.&lt;/span&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;Кто не понял предыдущее предложение - не переживайте: я сам его до конца не понимаю, а стереть жалко.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: inherit;"&gt;Общее описание алгоритма:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;1.&amp;nbsp;&amp;nbsp;Разбиваем изображение на цветовые компоненты.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;2.&amp;nbsp;&amp;nbsp;Каждую цветовую компоненту разбиваем на непересекающиеся прямоугольные блоки достаточной величины (Что такое «достаточная величина» требует особого исследования).&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;3. &amp;nbsp;Для каждого блока строим эмпирическую гистограмму яркости. (Эмпирический – основанный на опыте, изучении фактов, опирающийся на непосредственное наблюдение, эксперимент.) На рисунке 1 гистограмма обозначена синим цветом.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;4.&amp;nbsp;&amp;nbsp;Для каждого блока строим теоретическую гистограмму на основе эмпирической. Для построения теоретической гистограммы найдем среднее арифметическое количества пикселей с соседними яркостями.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;Соседними будут яркости 0&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&amp;lt;-&amp;gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;1 2&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&amp;lt;-&amp;gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;3 … 254&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&amp;lt;-&amp;gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;255, или в двоичной системе исчисления:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;0000 000&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;&amp;lt;-&amp;gt;0000 000&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;0000 001&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;&amp;lt;-&amp;gt;0000 001&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;...&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;1111 111&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;&amp;lt;-&amp;gt;1111 111&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;Теоретическая гистограмма наблюдается при встраивании данных в каждый бит (пиксель) цветовой компоненты. На рисунке 1 - обозначена красным цветом. Можно сказать, что при встраивании количество пикселей в соседних парах распределено равновероятно.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;5.&amp;nbsp;&amp;nbsp;Для каждого блока сравним схожесть теоретической и эмпирической гистограмм с помощью статистики Хи квадрат (Пирсона). Если теоретическая и эмпирическая гистограммы различаются несущественно&lt;/span&gt;&lt;span lang="UK"&gt;&lt;span style="font-family: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; то вероятно, что в каждый пиксель цветовой компоненты исследуемого блока встроена скрытая информация. Вычисляем значение статистики для проверяемого блока цветовой компоненты:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXFAvV1I-tV1T3Xq8eMJX2EvuYdEqUHP39SEMz7Fqh_kOFIkPNV7KG5YEf9ocr182iLbPMJJPv0I5tGrk0OvDvHooZRRRp3iHzZKsfAggPn48ybuCOLnJc_kZ19GrMSiki5iRnRwj9758/s1600/chi_form.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="83" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXFAvV1I-tV1T3Xq8eMJX2EvuYdEqUHP39SEMz7Fqh_kOFIkPNV7KG5YEf9ocr182iLbPMJJPv0I5tGrk0OvDvHooZRRRp3iHzZKsfAggPn48ybuCOLnJc_kZ19GrMSiki5iRnRwj9758/s320/chi_form.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;span style="font-family: inherit;"&gt;Теоретическая и эмпирическая гистограммы считаются схожими, если &amp;nbsp;полученное эмпирическое значение статистики Хи квадрат меньше теоретического значения статистики Хи квадрат при заданном уровне значимости &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 16pt;"&gt;&lt;span style="font-family: inherit;"&gt;а&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-family: inherit;"&gt; и количестве степеней свободы &lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;k-1&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSNdvmI8mniyFanb3svj8Xjnq8l25wEa6EltSDYD2rAM8xewz1sDrMKFHru5ypYDlyYhd6TMreREzrG301SY5uIS0wZhPJJLqFeHu4VPrObuJjFJcWmy2sXrnOkB-7kq1hPzdV2sAZFss/s1600/chi_form2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="46" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSNdvmI8mniyFanb3svj8Xjnq8l25wEa6EltSDYD2rAM8xewz1sDrMKFHru5ypYDlyYhd6TMreREzrG301SY5uIS0wZhPJJLqFeHu4VPrObuJjFJcWmy2sXrnOkB-7kq1hPzdV2sAZFss/s200/chi_form2.png" width="200" /&gt;&lt;/a&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;Если данное неравенство справедливо, то мы обнаружили встраивание в проверяемый блок. Однако, хватит уже теории.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: inherit;"&gt;Matlab&lt;/span&gt;&lt;/b&gt; &amp;nbsp;&lt;b&gt;c&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: inherit;"&gt;крипт для гистограммного статистического стегоанализа&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;Данный скрипт является функцией, которую можно вызвать из командной строки &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;MATLAB. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: inherit;"&gt;На вход функции подаются&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: inherit;"&gt;: адрес анализируемого изображения, размер непересекающихся прямоугольных блоков по горизонтали и вертикали, уровень значимости &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 16pt;"&gt;&lt;span style="font-family: inherit;"&gt;а&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-family: inherit;"&gt; (рекомендуется 0.9).&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;b&gt;На выходе получаем &lt;/b&gt;изображения трех цветовых компонент: &lt;/span&gt;&lt;span style="font-family: inherit;"&gt;RED_out, GREEN_out, BLUE_out. &lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;b&gt;&lt;span style="color: #999999;"&gt;Серым цветом&lt;/span&gt; &lt;/b&gt;показаны места, где соседние пары яркостей имеют равновероятное распределение, т.е. предполагается встраивание. &lt;b&gt;&lt;span style="color: red;"&gt;Красным&lt;/span&gt;&lt;/b&gt;, &lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;&lt;span style="color: #38761d;"&gt;зеленым&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; и &lt;b&gt;&lt;span style="color: blue;"&gt;синим&lt;/span&gt;&lt;/b&gt; цветом, соответственно, обозначены места цветовых компонент, где встраивания нет.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;function&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; [RED_out,GREEN_out,BLUE_out] = histo_chi2_steganalysis(IMG_in,stepX,stepY,Prbb);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% pirson_Xi_2_Analiz&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;Читаем картинку из файла, раскладываем ее на цветовые компоненты, вычисляем ее размер.&lt;br /&gt;
&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Picture = imread(IMG_in,&lt;/span&gt;&lt;span style="color: #a020f0; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;'bmp'&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Red = Picture(:,:,1); &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Green = Picture(:,:,2); &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Blue = Picture(:,:,3); &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;[Pheight,Pwidth] = size(Red);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;Создаем индексные переменные для блоков, на которые будет разбито изображение.&lt;br /&gt;
&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;a_ind_X = 1:stepX:Pwidth;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;a_ind_Y = 1:stepY:Pheight;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;Подсчитываем, сколько блоков по горизонтали и по вертикали у нас будет.&lt;br /&gt;
&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;countX = size(a_ind_X,2);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;countY = size(a_ind_Y,2);&lt;/span&gt;&lt;/div&gt;Добавляем к изображению широкую «границу» из пикселей, чтобы крайние блоки не были обрезаны границей изображения.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;brdrd_Red = [Red;Red((countY-1)*stepY:-1:(countY-2)*stepY+1,:)];&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;brdrd_Red = [brdrd_Red,brdrd_Red(:,(countX-1)*stepX:-1:(countX-2)*stepX+1)];&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;brdrd_Green = [Green; Green((countY-1)*stepY:-1:(countY-2)*stepY+1,:)];&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;brdrd_Green = [brdrd_Green, brdrd_Green(:,(countX-1)*stepX:-1:(countX-2)*stepX+1)];&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;brdrd_Blue = [Blue;Blue((countY-1)*stepY:-1:(countY-2)*stepY+1,:)];&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;brdrd_Blue = [brdrd_Blue,brdrd_Blue(:,(countX-1)*stepX:-1:(countX-2)*stepX+1)];&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
Формируем изображение с добавленными границами.&lt;br /&gt;
&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;brdrd_Picture(:,:,1) = brdrd_Red(:,:);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;brdrd_Picture(:,:,2) = brdrd_Green(:,:);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;brdrd_Picture(:,:,3) = brdrd_Blue(:,:); &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
Зададим размеры массивов для хранения гистограммы, наблюдаемого значения Хи квадрат - &lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;ArrayReal &lt;/span&gt;и теоретического значения Хи квадрат - &lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;ArrayTeor:&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;HistoTeor=zeros(1,256);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;ArrayReal = zeros(size(a_ind_Y,2),size(a_ind_X,2));&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;ArrayTeor = zeros(size(a_ind_Y,2),size(a_ind_X,2));&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
В цикле будем обращаться последовательно к &lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="color: red;"&gt;первой&lt;/span&gt;&lt;/b&gt;, &lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="color: green;"&gt;второй&lt;/span&gt;&lt;/b&gt; и &lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="color: blue;"&gt;третьей&lt;/span&gt;&lt;/b&gt; цветовой компонентам.&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt; Z = 1:3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; IMG = brdrd_Picture(:,:,Z);&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
Для каждой цветовой компоненты последовательно переберем все, исследуемые на предмет встраивания, блоки. Для каждого блока определим эмпирическое и теоретическое значения Хи квадрат (процесс достаточно подробно прокомментирован в самом коде).&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;for&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; Y = 1:stepY:Pheight&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;for&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; X = 1:stepX:Pwidth&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; areaXY = IMG(Y:Y+stepY,X:X+stepX);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% POSTROENIE EMPIRICHESKOI GISTOGRAMMY &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% REZUL'TAT - VERTIKAL'NYI VEKTOR #HistoEmpir#&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HistoEmpir = imhist(areaXY);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% TRANSPONIROVANIE VEKTORA #HistoEmpir# &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% REZUL'TAT - GORIZONTAL'NYI VEKTOR #HistoEmpir#&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HistoEmpir = transpose(HistoEmpir);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% POSTROENIE TEORETIChESKOI GISTOGRAMMY #HistoTeor#&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% REZUL'TAT - GORIZONTAL'NYI VEKTOR #HistoTeor# &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; k = 1:2:256;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HistoTeor(k) = (HistoEmpir(k)+HistoEmpir(k+1))/2;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HistoTeor(k+1) = (HistoEmpir(k)+HistoEmpir(k+1))/2;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;%*******************************************************************&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% RASChET VEROYaTNOSTEI EMPIRICHESKOI i TEORETIChESKOI YaRKOSTEI #VarTeor# #VarEmpir#&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% REZUL'TAT - GORIZONTAL'NYE VEKTORA #VarEmpir# #VarTeor#&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VarEmpir = HistoEmpir;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VarTeor = HistoTeor;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zero_ind = find(VarTeor &amp;lt;=20);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VarEmpir(zero_ind) = [];&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VarTeor(zero_ind) = [];&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% RASChET MASSIVA-SYR'Ya DLYa RASChETA REAL'NOGO ZNAChENIYa #Xi2#&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% REZUL'TAT - GORIZONTAL'NYI VEKTOR #Xi2#&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Xi2 = ((VarEmpir-VarTeor).^2)./VarTeor;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% UDALENIE OShIBOChNYH ZNAChENII DELENIYa NA NOL' IZ #Xi2#&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Xi2 = Xi2(~isnan(Xi2));&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% RASChET REAL'NOGO ZNAChENIYa #Xi2#&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Xi2Real = sum(Xi2);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% RASChET TABLIChNOGO ZNAChENIYa #Xi2#&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Xi2Teor = chi2inv(Prbb,size(Xi2,2)-1);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% FORMIROVANIE NAGLYaDNYH MASSIVOV REAL'NOGO I TABLIChNOGO ZNAChENII #Xi2#&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ArrayReal((Y-1)/stepY+1,(X-1)/stepX+1) = Xi2Real;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ArrayTeor((Y-1)/stepY+1,(X-1)/stepX+1) = Xi2Teor;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;end&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;end&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
Результаты расчетов статистик Хи квадрат занесем в соответствующие массивы для &lt;b&gt;&lt;span style="color: red;"&gt;первой&lt;/span&gt;&lt;/b&gt;, &lt;b&gt;&lt;span style="color: green;"&gt;второй&lt;/span&gt;&lt;/b&gt; и &lt;b&gt;&lt;span style="color: blue;"&gt;третьей&lt;/span&gt;&lt;/b&gt; цветовых компонент. Массивы &lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;ArrayCompare &lt;/span&gt;хранят логические значения для каждой из анализируемых областей: &lt;b&gt;«1»&lt;/b&gt; - &lt;b&gt;встраивание&lt;/b&gt; &lt;b&gt;есть&lt;/b&gt;, &lt;b&gt;«0»&lt;/b&gt; - &lt;b&gt;встраивания&lt;/b&gt; &lt;b&gt;нет&lt;/b&gt;.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;if&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; (Z == 1)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RED_ArrayReal = ArrayReal;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RED_ArrayTeor = ArrayTeor;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RED_ArrayCompare = uint8(RED_ArrayReal&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;end&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;if&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; (Z == 2)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GREEN_ArrayReal = ArrayReal;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GREEN_ArrayTeor = ArrayTeor;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GREEN_ArrayCompare = uint8(GREEN_ArrayReal&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;end&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;if&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; (Z == 3)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BLUE_ArrayReal = ArrayReal./ArrayTeor;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BLUE_ArrayTeor = ArrayTeor./ArrayTeor;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BLUE_ArrayCompare = uint8(BLUE_ArrayReal&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;end&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;end&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
На данном этапе у нас уже есть информация о «загрязненности» блоков изображения встраиванием. Для удобства пользователя покажем данные блоки на изображении. &lt;/div&gt;&lt;div align="justify"&gt;В цикле перебираются все анализируемые блоки для каждой компоненты. Если анализируемый блок чистый, выводим его «родным» (&lt;span style="font-family: inherit;"&gt;&lt;b&gt;&lt;span style="color: red;"&gt;красным&lt;/span&gt;&lt;/b&gt;, &lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;&lt;span style="color: #38761d;"&gt;зеленым&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; или &lt;b&gt;&lt;span style="color: blue;"&gt;синим&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;) для компоненты цветом. Если блок со встраиванием, выводим его серым цветом&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;for&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; Y = 1:stepY:Pheight&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;for&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; X = 1:stepX:Pwidth&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RED_out(Y:Y+stepY-1,X:X+stepX-1,1) = brdrd_Red(Y:Y+stepY-1,X:X+stepX-1);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RED_out(Y:Y+stepY-1,X:X+stepX-1,2) = brdrd_Red(Y:Y+stepY-1,X:X+stepX-1).*RED_ArrayCompare((Y-1)/stepY+1,(X-1)/stepX+1);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RED_out(Y:Y+stepY-1,X:X+stepX-1,3) = brdrd_Red(Y:Y+stepY-1,X:X+stepX-1).*RED_ArrayCompare((Y-1)/stepY+1,(X-1)/stepX+1);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GREEN_out(Y:Y+stepY-1,X:X+stepX-1,1) = brdrd_Green(Y:Y+stepY-1,X:X+stepX-1).*GREEN_ArrayCompare((Y-1)/stepY+1,(X-1)/stepX+1);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GREEN_out(Y:Y+stepY-1,X:X+stepX-1,2) = brdrd_Green(Y:Y+stepY-1,X:X+stepX-1);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GREEN_out(Y:Y+stepY-1,X:X+stepX-1,3) = brdrd_Green(Y:Y+stepY-1,X:X+stepX-1).*GREEN_ArrayCompare((Y-1)/stepY+1,(X-1)/stepX+1);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BLUE_out(Y:Y+stepY-1,X:X+stepX-1,1) = brdrd_Blue(Y:Y+stepY-1,X:X+stepX-1).*BLUE_ArrayCompare((Y-1)/stepY+1,(X-1)/stepX+1);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BLUE_out(Y:Y+stepY-1,X:X+stepX-1,2) = brdrd_Blue(Y:Y+stepY-1,X:X+stepX-1).*BLUE_ArrayCompare((Y-1)/stepY+1,(X-1)/stepX+1);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BLUE_out(Y:Y+stepY-1,X:X+stepX-1,3) = brdrd_Blue(Y:Y+stepY-1,X:X+stepX-1);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;end&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;end&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
Избавляемся от широкой границы, добавленной для работы с крайними блоками.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp; RED_out = RED_out(1:Pheight,1:Pwidth,:);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp; GREEN_out = GREEN_out(1:Pheight,1:Pwidth,:);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp; BLUE_out = BLUE_out(1:Pheight,1:Pwidth,:);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
На данном этапе функция уже сформировала переменные-изображения, на которых видны результаты анализа. Для удобства добавим вывод результатов на экран. По желанию следующие три строки можно закомментировать или удалить.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;figure;imagesc(RED_out);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp; figure;imagesc(GREEN_out); &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp; figure;imagesc(BLUE_out); &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Практическое использование функции для стегоанализа последовательного вложения&lt;/b&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
Кратко посмотрим, как работает наша функция.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Для анализа возьмем изображение &lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;'stego_murzik3.bmp',&lt;/span&gt; ширину и высоту блока возьмем в четверть размера изображения, уровень значимости зададим 0.8:&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;[RED_out,GREEN_out,BLUE_out] = histo_chi2_steganalysis('stego_murzik3.bmp',512,512,0.8);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;В результате получаем следующие изображения:&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixZnVkgfmAlt9xw_Bh4K46iSjE6XHpJVyVm2ueRmv7BL3k3mhyphenhyphenDei9RiSdk1xzL5_Kycz4aKUf1dqbxThWyxyqdJJH2JXviPE4OcbjEIKdjDwEQ9LO1X5UtFlE_Um2xfpYZY9FCy7Ee8o/s1600/chi1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="151" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixZnVkgfmAlt9xw_Bh4K46iSjE6XHpJVyVm2ueRmv7BL3k3mhyphenhyphenDei9RiSdk1xzL5_Kycz4aKUf1dqbxThWyxyqdJJH2JXviPE4OcbjEIKdjDwEQ9LO1X5UtFlE_Um2xfpYZY9FCy7Ee8o/s400/chi1.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Красная компонента вся отображается серым цветом, что означает полное встраивание в красную компоненту. Зеленая компонента – зелена лишь наполовину, что проявляет области со встраиванием (серая) и без встраивания (зеленая). Синяя компонента показывает отсутствие встраивания по всей площади. &lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Кажется все замечательно. Однако попробуем уменьшить размер блоков, на которые изображение разбивается для анализа. Используем блоки размером 200х200 пикселей:&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;[RED_out,GREEN_out,BLUE_out] = histo_chi2_steganalysis('stego_murzik3.bmp',200,200,0.8);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRtyqXeEf1Cn8Kw8-WQ2CH3-_dp3ZEOng9a8uHUSU4edVd5x2POne6lpDm14FHn-KXpDR5zGOUFLXKsScWWfd5Z0GTV9Q7_Ermqx1uSKavKgtWbCYnamRqkjJBULDtTR7mYwrlGR_OsTw/s1600/chi2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRtyqXeEf1Cn8Kw8-WQ2CH3-_dp3ZEOng9a8uHUSU4edVd5x2POne6lpDm14FHn-KXpDR5zGOUFLXKsScWWfd5Z0GTV9Q7_Ermqx1uSKavKgtWbCYnamRqkjJBULDtTR7mYwrlGR_OsTw/s400/chi2.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;Как видим, в местах определенных предыдущим анализом как чистые от встраивания оно "появилось". Это говорит о важности выбора размера и формы блоков, на которые разбивается для анализа изображение.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Результат прохода узкими вертикальными полосками 30х1023:&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;[RED_out,GREEN_out,BLUE_out] = histo_chi2_steganalysis('stego_murzik3.bmp',30,1023,0.8);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjthjgblPKZKDsbYbDrCf75Qp6_MwPtQFjX0Q2Irwd4sEquZG33XiOeZB2x-CJdU4meoaxOGxgDrEXtrH4qTWLT9xgz42fv1M0KgEB0nw0BnF7bvg81zTrmWtrWnHiPpy_Ps_tjdbxSfAo/s1600/chi3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjthjgblPKZKDsbYbDrCf75Qp6_MwPtQFjX0Q2Irwd4sEquZG33XiOeZB2x-CJdU4meoaxOGxgDrEXtrH4qTWLT9xgz42fv1M0KgEB0nw0BnF7bvg81zTrmWtrWnHiPpy_Ps_tjdbxSfAo/s400/chi3.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Анализ квадратиками 30х30:&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;[RED_out,GREEN_out,BLUE_out] = histo_chi2_steganalysis('stego_murzik3.bmp',30,30,0.8);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikNtuE7KeYrUwer9FHZSgJeRfsegMowCoGgcQ_MId6K9WsrDhohyphenhyphenW5i3Xn360Ce0KfP116541mBkdhkqD_9EYUUBgCdONibG1EEZ9Vtusxd994iFOLD0ik9aoM7Gbh63dj9M7sS_qCSwU/s1600/chi4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikNtuE7KeYrUwer9FHZSgJeRfsegMowCoGgcQ_MId6K9WsrDhohyphenhyphenW5i3Xn360Ce0KfP116541mBkdhkqD_9EYUUBgCdONibG1EEZ9Vtusxd994iFOLD0ik9aoM7Gbh63dj9M7sS_qCSwU/s400/chi4.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;Все желающие могут &lt;b style="color: blue;"&gt;&lt;u&gt;&lt;a href="http://narod.ru/disk/10388746001/public_chi2.rar.html"&gt;скачать&lt;/a&gt;&lt;/u&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;данную функцию и изображения, на которых можно самостоятельно посмотреть, как она работает.&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhELn12cta8Z-1M7oBiA_qMVzRJRcOhAvtcu2dJ16GrU2pWhb5-Jl8-NI6Gn2ySkEbHJq_bRkuEVI2mxxAf-__G_rai4rUN6qxnK2U4aCZjdHn-QDIQ7wFDgvjYicnZIHsbpcmzxPHL5_Y/s72-c/gistogramma.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">17</thr:total></item><item><title>Прекращено существование крупнейшей ботнет сети.</title><link>http://gr1g0ry.blogspot.com/2011/04/massive-botnet-halted.html</link><category>ru</category><category>Новости</category><category>Стеганография</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Mon, 11 Apr 2011 20:20:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-4066708584061465351</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Согласно сообщениям службы BBC (http://www.bbc.co.uk/news/technology-12772319), благодаря усилиям Microsoft была разрушена спамерская сеть ботнет, содержащая около миллиона инфицированных компьютеров.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Исследователи по вопросам безопасности заявляют, что возможно это была наибольшая сеть компьютеров, зараженная вредоносным программным обеспечением. Не вполне ясно, был ли ботнет Rustock международной сетью. Согласно заявлениям экспертов, после отключения сети она может восстановиться в течение нескольких дней.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;«В 2010 году Rustock - совокупность инфицированных машин, был наиболее активным источником спама в интернет. По оценкам экспертов, почти половина всех спамерских сообщений в наиболее интенсивный период – около 200 миллиардов сообщений в день принадлежат Rustock», – говорится в сообщении службы BBC. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Многие типы вредоносного ПО распространяются с высокой скоростью, что ослабляет уверенность пользователей в полной безопасности системы.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;В отчете, опубликованном Panda Security, сообщается, что за первые три месяца 2011 года обнаружено около 73000 новых вредоносных программ, большинство из которых трояны. На 26% повысилось количество новых угроз по сравнению с тем же периодом за прошлый год.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;«Возрастание количества сетевых приложений позволяют неспециалистам быстро создать троян и начать преступное дело, например, получить доступ к банковским реквизитам», – говорит Luis Corrons - технический директор PandaLabs.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Согласно исследованию Symantec в ежегодном отчете MessageLabs Intelligence 2010 Security Report (http://www.messagelabs.com/mlireport/MessageLabsIntelligence_2010_Annual_Report_FINAL.pdf), сеть Rustock  ответственна, в среднем, за более чем 44 миллиарда спамерских email в день и имела более миллиона подконтрольных компьютеров-ботов. Ботнеты Grum и Cutwail - это, соответственно, вторая и третья, по величине, сети.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Руководители Symantec прогнозируют, что в 2011 году для управления ботнетами, злоумышленники пребегнут к стеганографическим методам для управления подконтрольными компьютерами. Это означает размещение команд на видном месте, возможно, в изображениях или музыкальных файлах расположенных на web-серверах файловых или социальных сетей. Такой подход позволит злоумышленникам тайно отдавать инструкции независимо от особенностей провайдера, что минимизирует шансы обнаружения.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Переведено с &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.techzone360.com/topics/techzone/articles/155140-massive-botnet-virus-halted-mid-campaign.htm"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;http://www.techzone360.com/topics/techzone/articles/155140-massive-botnet-virus-halted-mid-campaign.htm&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Новый алгоритм встраивания ЦВЗ.</title><link>http://gr1g0ry.blogspot.com/2011/03/new-digital-watermarking-method.html</link><category>ru</category><category>Новости</category><category>Стеганография</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Tue, 29 Mar 2011 20:20:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-8830420645818985622</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: #999999;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;(переведено с сайта http://spectrum.ieee.org/...).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Стоит поблагодарить русских шпионов за подогрев интереса к теме стеганографии или методам сокрытия сообщений в внешне&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; безопасных &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;файлах (часто изображениях).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Прошлым летом в США раскрыли русских агентов, которые передавали скрытые сообщения в изображениях. Как сообщал &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;&lt;a href="http://spectrum.ieee.org/tech-talk/computing/networks/russian-spies-thwarted-by-old-technology"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Tech&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Talk&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;post&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; относительно устаревшая система &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;сделала их легкой целью. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Мицуо Окада, выпускник Киотского университета в Японии продемонстрировал новую стеганографическую систему на &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;&lt;a href="http://www.ieee-ccnc.org/2011/"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Consumer&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Communications&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;and&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Networking&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Conference&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;, которая проходила в этом году. Автор не требует, чтобы его приложение подходило для целей ЦРУ :), однако отмечает, что программу можно использовать и для &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;iPhone&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Окаду, скорее, интересует использование его стеганографического метода для защиты документов, чем сокрытие информации. Он желает предоставить цифровым файлам свой эквивалент водяных знаков для документов, которые позволяют пользователю определить их подлинность просто посмотрев сквозь них на свет.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Проблема большинства стеганографических методов, по словам Окады, в том, что для извлечения скрытой информации нужна специальная программа.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Для примера рассмотрим встраивания сообщения в безобидное изображение кошки с помощью широко используемого НЗБ (&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;LSB&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;) метода. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Алгоритм &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;прячет&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; файл в так &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;называемых&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;некритичных битах яркости пикселя. Некритичные пиксели - это именно то, о чем говорит их название – наименее важная информация в пикселе. Пусть, например, серый пиксель однородно серой шерсти закодирован числом &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;00 10 01 00. Если изменить два последних НЗБ, то цвет изображения изменится на одну миллионную часть, что абсолютно неотличимо для человеческого глаза.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Окада отмечает, что пользователь не может проверить легитимность программы для извлечения данных, и что хуже эта программа становится уязвимой для декомпиляции и вмешательства в ее работу.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Его альтернативный подход использует черно-белое изображение в качестве передаваемого сообщения.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Алгоритм встраивания изменяет яркость изображения-носителя, чтобы закодировать посылаемое сообщение. Если пиксель изображения контейнера яркий, его яркость дополнительно усиливается; если пиксель темный, то его яркость дополнительно ослабляется в соответствии с яркостью встраиваемого сообщения.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwFXOKWQ2Rx8QcC5Qns5yCVre8wsXQpnH-KojniDn5h7W6MDNNroroMeTCQjvfEgM3FBda5yHbVU7ODEFIRKKHGfOB16DvCwige1vh7DZ38Bd6sgYcbpVjwH3lEfvj6RmvDqpqVzJUm4I/s1600/pepper.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwFXOKWQ2Rx8QcC5Qns5yCVre8wsXQpnH-KojniDn5h7W6MDNNroroMeTCQjvfEgM3FBda5yHbVU7ODEFIRKKHGfOB16DvCwige1vh7DZ38Bd6sgYcbpVjwH3lEfvj6RmvDqpqVzJUm4I/s1600/pepper.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Для &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;проверки наличия ЦВЗ нужен&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;инвертированный полупрозрачный оригинал. Перетаскиваем его поверх исходного изображения и получим скрытый ЦВЗ.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;div align="justify"&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiatXhbBh4N8Exooj1R25d2Z2mb2f7A-xx0VEJyY1arrTffkU2OMkydwGtNiUnf7-d_ym-noO-7LfTy2G5GiMhGGdvDH9A4mZ4QCKeWKw48Ot_n_YqNHo0MXtlKwbtyMl94_VAzA4cFYeY/s1600/pepper1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiatXhbBh4N8Exooj1R25d2Z2mb2f7A-xx0VEJyY1arrTffkU2OMkydwGtNiUnf7-d_ym-noO-7LfTy2G5GiMhGGdvDH9A4mZ4QCKeWKw48Ot_n_YqNHo0MXtlKwbtyMl94_VAzA4cFYeY/s1600/pepper1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;В данном случае в перце был сокрыт щенок.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjISgAWQdIPimleFEmvPOFxFklAnDQs8H7kmrEh7U8EZD_elfTFOTuAu5oGLw20_7urT7_Pd0htQgxchtSgvg89KuNIrCys6VGoGnw0Ea76GTaBaXBFfFL0ajWtA0Xvil7oHDzcYBQKzyY/s1600/puppy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjISgAWQdIPimleFEmvPOFxFklAnDQs8H7kmrEh7U8EZD_elfTFOTuAu5oGLw20_7urT7_Pd0htQgxchtSgvg89KuNIrCys6VGoGnw0Ea76GTaBaXBFfFL0ajWtA0Xvil7oHDzcYBQKzyY/s1600/puppy.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Командой Окады было создано два сайта &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;http://tg.net.ist.i.kyoto-u.ac.jp/easyext/ &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;для &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;PC&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; и &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;http://&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;tg.net.ist.i.kyoto-u.ac.jp/easyext/PM/ipad.html&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; для &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;iPhon&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;and&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;iPad&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;, где можно попробовать описанное самостоятельно&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Чтобы показать стойкость системы, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;представлены изображения со сжатием и добавлением шума. Для совершенно секретных систем существуют системы, которые оставляют меньше следов. (&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;&lt;a href="http://gr1g0ry.blogspot.com/2011/02/hiding-information-in-voip.html"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;VOIP&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;стеганография&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;).&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Насколько система безопасна или насколько "фальшивомонетчикам" легко добавить ЦВЗ, который основывается на преобразовании яркости? &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Как только появится возможность обеспечить какие-либо гарантии безопасности системы, определенно, исчезнет и легкость её эксплуатации вместе с внедренным щенком :-)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: xx-small;"&gt;&lt;span style="color: #cccccc;"&gt;&lt;code&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: xx-small;"&gt;&lt;span style="color: #cccccc;"&gt;&lt;code&gt;&lt;span style="font-family: inherit;"&gt;e57dbf9741e28d993ee6c71ae0a02e5c&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;;"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;;"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwFXOKWQ2Rx8QcC5Qns5yCVre8wsXQpnH-KojniDn5h7W6MDNNroroMeTCQjvfEgM3FBda5yHbVU7ODEFIRKKHGfOB16DvCwige1vh7DZ38Bd6sgYcbpVjwH3lEfvj6RmvDqpqVzJUm4I/s72-c/pepper.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Стегоанализ с известным контейнером или попиксельное сравнение изображений в Matlab.</title><link>http://gr1g0ry.blogspot.com/2011/03/images-comparison.html</link><category>MATLAB</category><category>ru</category><category>Стегоанализ</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Fri, 25 Mar 2011 17:10:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-6826684633920293434</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;
&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Одним из наиболее простых способов стегоанализа является стегоанализ с известным контейнером. Он возможен при наличии исходного изображения. Заведомо пустая картинка сравнивается с той, которая подозревается в содержании скрытой информации. Однако, разницу в один бит (и даже больше) человеческий глаз &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;увидеть&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; не может. Напишем скрипт в системе математического моделирования &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Matlab&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;, который произведет попиксельное сравнение цветовых компонент изображений и сделает их разницу более очевидной.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaKojK-NtZDbnG6DkUUU5mWU8Ra8TNj0K_uCkxwznqhil2yIgINCSRuiCqf-KkxUU5AQ0-j6CHSSbdJ_cPHej0CP-LArUHQKd8zU0N7W6v1MOtC5JJ3M8Jfc93b0-a3WgQCa9OFR_AaQY/s1600/murzik.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaKojK-NtZDbnG6DkUUU5mWU8Ra8TNj0K_uCkxwznqhil2yIgINCSRuiCqf-KkxUU5AQ0-j6CHSSbdJ_cPHej0CP-LArUHQKd8zU0N7W6v1MOtC5JJ3M8Jfc93b0-a3WgQCa9OFR_AaQY/s200/murzik.jpg" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Рис.1 Мурзик без вложений :)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Загружаем изображения в &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Matlab&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;. Возможен такой случай, когда мы не знаем какой из файлов является пустым, а какой содержит стегосообщение. Поэтому обозначим изображения переменными &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;IMG&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;_1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt; и &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;IMG&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;_2 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;без указания, какое из изображений чистое, а какое со встраиванием.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;IMG_1_name=&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: #a020f0; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;'./images/murzik.bmp'&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;IMG&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;_1 = &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;imread&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;IMG&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;_1_&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;IMG_2_name=&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: #a020f0; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;'./stego_murzik1.bmp'&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;% IMG_2_name='./stego_murzik2.bmp';&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;% IMG_2_name='./stego_murzik3.bmp';&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;IMG_2 = imread(IMG_2_name);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Определим размер изображений на тот случай, если ошибочно были выбраны изображения разного размера. Попиксельное сравнение неодинаковых по размеру изображений -&amp;nbsp; невозможно.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;IMG_size_y=size(IMG_1,1);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;IMG_size_x=size(IMG_1,2);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;IMG_size_y2=size(IMG_2,1);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;IMG_size_x2=size(IMG_2,2);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Если размеры изображений не совпадают, выводим сообщение об ошибке и завершаем работу.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt; ((IMG_size_y~=IMG_size_y2)||(IMG_size_x~=IMG_size_x2))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;error(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a020f0; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;'Выбранные изображения имеют неодинаковый размер. Попиксельное сравнение невозможно.'&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;В случае, если все нормально и &lt;/span&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: small;"&gt;изображения одинакового размера, продолжаем:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt; ((IMG_size_y==IMG_size_y2)&amp;amp;&amp;amp;(IMG_size_x==IMG_size_x2))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div style="text-align: right;"&gt;&lt;/div&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Разделим трехмерный массив изображения на двумерные массивы цветовых компонент &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black;"&gt;&lt;span style="font-size: small;"&gt;RGB&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;R_1=IMG_1(:,:,1);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;G_1=IMG_1(:,:,2);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;B_1=IMG_1(:,:,3);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;R_2 =IMG_2 (:,:,1);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;G_2 =IMG_2 (:,:,2);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;B_2 =IMG_2 (:,:,3);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Проиндексируем те пиксели, которые полностью одинаковы, т.е. те, у которых значения для всех цветовых компонент совпадают:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ind_R=uint32(find((B_1==B_2) &amp;amp; (R_1==R_2) &amp;amp; (G_1==G_2 )));&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;ind_G=uint32(find((B_1==B_2) &amp;amp; (R_1==R_2) &amp;amp; (G_1==G_2 )));&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;ind_G=ind_G+IMG_size_y*IMG_size_x;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;ind_B=uint32(find((B_1==B_2) &amp;amp; (R_1==R_2) &amp;amp; (G_1==G_2 )));&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;ind_B=ind_B+2*IMG_size_y*IMG_size_x;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Создадим новое изображение, в котором яркими точками будем показывать места неодинаковости пикселей:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;IMG=IMG_2;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Определим цвет, который будет означать, что пиксели различаются&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;IMG(:,:,1)=255;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;IMG(:,:,2)=0;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;IMG(:,:,3)=0;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Места, где пиксели различны, будут выделяться &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: red;"&gt;красным&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt; цветом.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Запишем одинаковые значения цветовых компонент на свои места.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;IMG(ind_R)=IMG_2(ind_R);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;IMG(ind_G)=IMG_2(ind_G);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;IMG(ind_B)=IMG_2(ind_B);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Выведем на экран изображение, которое ясно показывает несовпадения пикселей.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;imshow(IMG);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;С помощью нашего скрипта сравним пустую фотографию уже знакомого нам Мурзика. С его же фотографиями, в LSB которых встроены архивы трех литературных произведений:&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;«Утопия» Томаса Мора&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;«Мертвые души» Николая Гоголя&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;«Война и мир» (&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;1-й том) Льва Толстого&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Скрипты для &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: blue; font-size: small;"&gt;&lt;a href="http://gr1g0ry.blogspot.com/2011/03/steganography-in-matlab.html"&gt;&lt;span style="color: blue;"&gt;встраивания&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;и &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://gr1g0ry.blogspot.com/2011/03/steganography-in-matlab-extracting.html"&gt;&lt;span style="color: blue;"&gt;&lt;b&gt;извлечения&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt; данных можно посмотреть в предыдущих постах.&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
Т.к. мы же и были авторами встраивания, то знаем, что встраивание происходило по столбцам, слева направо поочередно в красную, зеленую и &amp;nbsp;синюю цветовые компоненты. Учтем эту информацию в дальнейшем анализе.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie3UMkhPjTdSgWo80nSed4DN083eE7wFJ7vP7PUw3CbJ637V1cxUbCjL7hE22OSLcyh674jTGDJdFb1cOs6R8-vFc4orb-a6g_uXOJrLlIu4WqO2xgIhm4zvSS4BmjDbnUjzSx-tvox80/s1600/murzik+mor_tomas_utopiya.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie3UMkhPjTdSgWo80nSed4DN083eE7wFJ7vP7PUw3CbJ637V1cxUbCjL7hE22OSLcyh674jTGDJdFb1cOs6R8-vFc4orb-a6g_uXOJrLlIu4WqO2xgIhm4zvSS4BmjDbnUjzSx-tvox80/s200/murzik+mor_tomas_utopiya.png" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Рис.2 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;«Утопия»&lt;br /&gt;
&amp;nbsp;Т. Мор&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Как видно, после встраивания архива &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;«Утопии» правая&amp;nbsp; часть изображения осталась совершенно незатронутой. Можно сделать вывод, что данный архив занимает только часть 1-й цветовой компоненты изображения (Рис.2).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Рассмотрим внимательно левую часть рисунка, ту, где есть встраивание. Среди красных точек, где сравниваемые изображения не совпадают, можно увидеть пиксели, которые одинаковы для обоих изображений. Более внимательное изучение показывает, что &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;«&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;загрязнению&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;»&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt; подверглось 50% Мурзика. Следовательно, вероятность изменения байта цветовой компоненты &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;встраиванием равна 0.5&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb0Bt7R3fvl8De2-ujHsIqruwmEnuq4xJ6cQRn2N3bhzQcFIDDAytNfqE0dcU2wUkiYRTfpMukuDvcwii9FVRSxKqyiLFvi2gpHmlW7rXz4Gk3qKancQGMHiCtWRSxg_D0lKjQJIio7hg/s1600/murzik+mertvie_dushi.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb0Bt7R3fvl8De2-ujHsIqruwmEnuq4xJ6cQRn2N3bhzQcFIDDAytNfqE0dcU2wUkiYRTfpMukuDvcwii9FVRSxKqyiLFvi2gpHmlW7rXz4Gk3qKancQGMHiCtWRSxg_D0lKjQJIio7hg/s200/murzik+mertvie_dushi.png" width="199" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Рис.3 «Мертвые души» &lt;br /&gt;
&amp;nbsp;Н. Гоголь&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Рассмотрим встраивание большего объема. Архив &lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;«Мертвых душ&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;»&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Николая Гоголя занимает всю 1-ю цветовую компоненту и &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;чуть более половины второй (Рис.3). &amp;nbsp;В п&lt;/span&gt;&lt;/span&gt;равой части рисунка 3 подобно левой части рисунка 2 изменения коснулись только половины пикселей (изменению подверглась только первая цветовая компонента).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Левая часть рисунка 3 гораздо сильнее &lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;«&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;загрязнена&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;»&lt;/span&gt;&lt;/span&gt; по сравнению с исходным изображением. Это объясняется объединением случайных событий: &lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;«изменение&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt; пикселя в &lt;b&gt;1-й&lt;/b&gt; цветовой компоненте&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;» и&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;«&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;изменение &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;пикселя во &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;2-й&lt;/b&gt; цветовой компоненте&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;».&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align="center"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;P(A+B)=P(A)+P(B)-P(AB)=&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;=0.5+0.5-0.5*0.5=0.75&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
Следовательно, в левой части рисунка 3 &lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;«&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;загрязнено&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;»&lt;/span&gt;&lt;/span&gt; уже 3/4 пикселей.&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpb3xCvrnyvfqDRZHiFVUHBNV3bXqv6h1gdtW_Hg0LjDGsP5oWOZqJz3OCXKoJJgpRu1L4dGmNT9YaGJA0gDNh_dhdLXs2lOjvfdEbx5I007eHKHGZuIGFQXNd5ld_HOaJ3nJdsWSa8ZY/s1600/murzik+voina_i_mir.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpb3xCvrnyvfqDRZHiFVUHBNV3bXqv6h1gdtW_Hg0LjDGsP5oWOZqJz3OCXKoJJgpRu1L4dGmNT9YaGJA0gDNh_dhdLXs2lOjvfdEbx5I007eHKHGZuIGFQXNd5ld_HOaJ3nJdsWSa8ZY/s200/murzik+voina_i_mir.png" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Рис.4 «Война и мир» &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&amp;nbsp;1-й том Л. Толстой&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Наибольшее встраивание - &lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;1-й том&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;«Войны и мира»&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt; Льва Толстого занимает все три цветовые компоненты. Сквозь пелену измененных пикселей едва проглядываются те, которые остались без изменений.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Посчитаем вероятность того, что пиксель останется неизменным после рассеянного встраивания во &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;все цветовые компоненты.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div align="center"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;P(A+B+С)=P(A)+P(B)+&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;P(С)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;-P(AB)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;-P(BС)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;-&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;-P(СA)+P(ABC)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;=0.5+0.5&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;+0.5-0.25&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;-0.25&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;-0.25+0.125&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;=0.875&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;При встраивании во все пиксели всех цветовых компонент без изменения останется лишь 12,5 % пикселей.&lt;br /&gt;
Загрузить скрипт сравнения с файлами, которые использовались в публикации можно по &lt;u&gt;&lt;b&gt;&lt;a href="http://narod.ru/disk/8623386001/public_cmpr.rar.html" target="blank"&gt;&lt;span style="color: blue;"&gt;ссылке.&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaKojK-NtZDbnG6DkUUU5mWU8Ra8TNj0K_uCkxwznqhil2yIgINCSRuiCqf-KkxUU5AQ0-j6CHSSbdJ_cPHej0CP-LArUHQKd8zU0N7W6v1MOtC5JJ3M8Jfc93b0-a3WgQCa9OFR_AaQY/s72-c/murzik.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><title>Стеганография в Matlab (извлечение)</title><link>http://gr1g0ry.blogspot.com/2011/03/steganography-in-matlab-extracting.html</link><category>MATLAB</category><category>ru</category><category>Стеганография</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Thu, 17 Mar 2011 18:02:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-1040755832832415413</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Пример извлечения скрытой&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;информации из графического файла.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Имеем файл &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;BMP&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; – формата со скрытым в его НЗБ (&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;LSB&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;) файлом архива. Процесс сокрытия описан в предыдущем посте.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Для извлечения, как и для внедрения будем использовать систему математического моделирования &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Matlab&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;. Причины использования &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Matlab&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; так же описаны в предыдущем посте.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Будем считать, что&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Matlab&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; запущен и текущим каталогом является каталог с файлом, который содержит скрытое сообщение. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Загружаем в &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Matlab&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; изображение, которое служит контейнером для скрываемого сообщения:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_IMG_name = &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: #a020f0; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;'./stego_murzik2.bmp'&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_IMG = imread(ext_IMG_name);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;В &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Workspace&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;появилась массив цветовых компонент (&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;RGB&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;) &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;ext&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;_&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;IMG&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;который&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;и хранит скрываемый файл. В первых битах в красной компоненте закодирован размер сокрытого файла. Естественно он мог находиться и в других битах. Будем считать, что об этом мы заранее договорились с тем, кто встраивал сообщение.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Определим размер рисунка в пикселях:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_IMG_size_y = size(ext_IMG,1);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_IMG_size_x = size(ext_IMG,2);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Рассчитаем количество информации которую можно было максимально внедрить в НЗБ:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none; text-indent: 35.4pt;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_max_Bytes = ext_IMG_size_y*ext_IMG_size_x*3/8;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;% Bytes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-align: justify; text-autospace: none; text-indent: 35.45pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Определяем в скольких битах зашифрован размер файла.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none; text-indent: 35.4pt;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_num_bits = ceil(log2(ext_max_Bytes));&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;% bits&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Извлекаем из изображения те пиксели (вернее значения яркости красной компоненты) в которых зашифрован размер файла.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_ind = 1:ext_num_bits;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_FILE_size_bits_arr = ext_IMG(ext_ind);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Выделяем НЗБ из байтов изображения. Получим массив бит которые составляют размер спрятанного файла.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_FILE_size_bits_arr = uint32(bitand(ext_FILE_size_bits_arr ,1));&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Из массива получим число - размер спрятанного файла.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt; ext_ind = 1:1:ext_num_bits&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;ext_FILE_size_bits_arr(ext_ind) = ext_FILE_size_bits_arr(ext_ind)*(2^(ext_ind-1));&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_FILE_size_bits_arr = ext_FILE_size_bits_arr';&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_FILE_size = uint32(sum(ext_FILE_size_bits_arr));&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Создадим индекс байтов цветовых компонент, в которые занесена скрытая информация&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;_&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ind&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_ind = ext_num_bits+1 : ext_num_bits+ext_FILE_size*8;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Выделим байты со скрытой информацией:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_pixels_with_bits = ext_IMG(ext_ind);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Оставим только значимые для нас наименее значимые биты:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none; text-indent: 35.4pt;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_BITS_arr=bitand(ext_pixels_with_bits,1)';&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Разобьем длинный столбец бит на восемь равной длинны частей и поставим эти части рядом. Полученный прямоугольный массив представляет собой те байты информации, которые были внедрены в изображение:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none; text-indent: 35.4pt;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_BITS_arr=reshape(ext_BITS_arr,ext_FILE_size,8);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Сформируем из нашего прямоугольного массива бит последовательность байт данных, которые были изначально внедрены.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_BITS_arr = uint8([ext_BITS_arr(:,1)*128,&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;ext_BITS_arr(:,2)*64,&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;ext_BITS_arr(:,3)*32,&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;ext_BITS_arr(:,4)*16,&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;ext_BITS_arr(:,5)*8,&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;ext_BITS_arr(:,6)*4,&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;ext_BITS_arr(:,7)*2,&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: small;"&gt;ext_BITS_arr(:,8)*1]);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;ext_BYTES = sum(ext_BITS_arr,2);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Запишем последовательность данных в файл.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;fid = fopen(&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: #a020f0; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;'./default.rar'&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: #a020f0; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;'w'&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;count = fwrite(fid, ext_BYTES);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;fclose(fid);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Вуаля. В каталоге с данным скриптом появится извлеченный архив.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Текст скрипта для &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Matlab&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; и изображения со выстраиваниями прилагаю в &lt;/span&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;&lt;u&gt;&lt;a href="http://narod.ru/disk/7728375001/public_ext.rar.html" target="blank"&gt;&lt;span style="font-size: small;"&gt;архиве&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;В одном из изображений как было сказано находится первый том «Войны и мира» Во втором – впрочем посмотрите сами…&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><title>Стеганография в Matlab. Пример последовательного вcтраивания в НЗБ. (LSB embedding).</title><link>http://gr1g0ry.blogspot.com/2011/03/steganography-in-matlab.html</link><category>MATLAB</category><category>ru</category><category>Стеганография</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Thu, 10 Mar 2011 15:56:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-643724168200150904</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;Теория хороша только в случае подтверждения практикой. Так и в вопросах стеганографии знать, что скрываемое сообщение можно поместить в НЗБ (наименее значимые биты), не значит уметь это сделать. Существует несколько готовых стеганографических программ, как платных, так и бесплатных, которые спрячут файл в изображение или аудио. Однако использование таких программ не дает полного контроля над процессом. Куда происходит встраивание? Насколько оно стойко к обнаружению? Насколько изменяется файл?.. На многие подобные вопросы ответа не будет.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;Для начала сделаем простой стеганографический скрипт в системе математического моделирования &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;Matlab&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;.&lt;a name='more'&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;Почему &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;Matlab&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;? Просто эта система позволяет сконцентрировать внимание на алгоритме сокрытия. Не нужно уметь открывать файл, распознавать его формат, показывать изображение на экране… Все это &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;Matlab&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; уже умеет. Так же он умеет работать с изображением как с матрицей, выполнять битовые операции (&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;and&lt;/span&gt;&lt;/span&gt;&lt;span lang="UK" style="mso-ansi-language: UK;"&gt;&lt;span style="font-family: inherit;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;or&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;, &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;xor&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;…) и многое, многое другое. Язык написания скриптов же очень прост и становится интуитивно понятным для любого кто хоть немного знаком с программированием.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;Будем считать, что&lt;/span&gt;&lt;span style="mso-ansi-language: RU-MO;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;Matlab&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; у вас уже установлен и запущен. Об основных окнах и приемах работы в &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;matlab&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;можно почитать в &lt;a href="http://matlab.exponenta.ru/ml/book1/index.php"&gt;&lt;span style="color: blue;"&gt;&lt;u&gt;http://matlab.exponenta.ru/ml/book1/index.php&amp;nbsp;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;- в рабочем каталоге создаем папку, «&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;images&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;». Помещает в папку цветное изображение, в которое будем прятать данные; &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;- создаем пустой &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;M&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;-&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;File&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;- назовем этот файл sample_embedding&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;Загружаем в &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;Matlab&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;изображение, которое будет служить контейнером для скрываемого сообщения:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmkIeJOlufQygiW8Wa7ZPLHRhV1ZYiMFe6FIhIXfzd41N3KTDYi3K5F44kfC0HjB4iMSe_LG7mSgdmiCNDtfMCcWokQViibC7CdMkg4ZfbeOAdtpIjQyWdS0Rk0bj0iyAbpUxgft0ThMw/s1600/murzik3layer.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="131" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmkIeJOlufQygiW8Wa7ZPLHRhV1ZYiMFe6FIhIXfzd41N3KTDYi3K5F44kfC0HjB4iMSe_LG7mSgdmiCNDtfMCcWokQViibC7CdMkg4ZfbeOAdtpIjQyWdS0Rk0bj0iyAbpUxgft0ThMw/s200/murzik3layer.jpg" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Рис. 1. &amp;nbsp;Наглядное представление цветовых&lt;br /&gt;
компонент изображения&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;emb_IMG_name=&lt;/span&gt;&lt;span lang="EN-US" style="color: #a020f0; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;'./images/murzik.bmp'&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;emb_IMG = imread(emb_IMG_name);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;В Workspace появилась переменная &lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="font-family: inherit;"&gt;IMG &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; mso-fareast-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;lt;1024&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;xl&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; mso-fareast-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;024&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; mso-fareast-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;3 &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;uint&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; mso-fareast-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;3&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="font-family: inherit;"&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;Это трехмерный массив цветовых компонент &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;RGB&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; (&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;red&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;, &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;green&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;, &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;blue&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;).&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;В &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;Matlab&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; принята особая система работы с матрицами, которая несколько отличается от привычной для программистов работы с массивами. К элементам матриц можно обращаться как традиционным способом :&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none; text-indent: 35.45pt;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;RedComponentPixel&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;IMG&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;(1,1,1); &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;или &lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none; text-indent: 35.45pt;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;GreenComponentPixel=IMG(1,1,2); &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-family: inherit;"&gt;так и с помощью линейной индексации:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none; text-indent: 35.45pt;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;RedComponentPixel=IMG(1); &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;или&lt;span style="mso-ansi-language: EN-US;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none; text-indent: 35.45pt;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;GreenComponentPixel=IMG(1048577).&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span style="font-family: inherit;"&gt;в приведенных строках переменным &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;RedComponentPixel&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;и &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;GreenComponentPixel&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;. присваиваются значения яркости красной и зеленой компоненты левого верхнего пикселя рисунка 1024х1024.&amp;nbsp;&lt;/span&gt;  &lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdaXb7BStFQgNW-su2lD3H-dOlUxHpooOvYKjOxhg8pCf7vrCYildKV4XKJ_eblMwMiEWFf3Qb46-7J7_A1bfKPyCzgKsppRMRnJAbCAfkAzO2pLUv3vZg-e6ce8WnKbb-Ngixj5SYuGU/s1600/indexing_matlab.gif" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdaXb7BStFQgNW-su2lD3H-dOlUxHpooOvYKjOxhg8pCf7vrCYildKV4XKJ_eblMwMiEWFf3Qb46-7J7_A1bfKPyCzgKsppRMRnJAbCAfkAzO2pLUv3vZg-e6ce8WnKbb-Ngixj5SYuGU/s200/indexing_matlab.gif" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Рис. 2. Представление индексации &lt;br /&gt;
массивов в Matlab&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: 35.45pt;"&gt;Понять линейное индексирование цветовых компонент можно из рисунка 2.&amp;nbsp;&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;Подробнее о работе с матрицами в matlab &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;можно почитать на &lt;/span&gt;&lt;a href="http://matlab.exponenta.ru/ml/book1/matlab/chapter3/3_5.php"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="color: blue;"&gt;&lt;u&gt;http://matlab.exponenta.ru/ml/book1/matlab/chapter3/3_5.php&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: inherit;"&gt;.&lt;/span&gt; &lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;Определим размер рисунка в пикселях:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;emb_IMG_size_y=size(emb_IMG,1);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;emb_IMG_size_x=size(emb_IMG,2);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;Рассчитаем количество информации которую можно внедрить в НЗБ:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none; text-indent: 35.4pt;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;emb_max_Bytes=emb_IMG_size_y*emb_IMG_size_x*3/8;&lt;/span&gt;&lt;span lang="EN-US" style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% Bytes&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none; text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;Определяем сколько бит необходимо для хранения максимально возможного &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;размера файла.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none; text-indent: 35.4pt;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;emb_num_bits=ceil(log2(emb_max_Bytes));&lt;/span&gt;&lt;span lang="EN-US" style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% bits&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;Загружаем в переменную &lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;emb&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;_&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;FILE&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; &lt;/span&gt;файл, который будем встраивать.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;fid = fopen(emb_FILE_name);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;emb_FILE = fread(fid);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;status =fclose(fid);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;emb_FILE_size=size(emb_FILE,1);&lt;/span&gt;&lt;span lang="EN-US" style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% Bytes&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;Для примера объемности встраиваемых данных был взят &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;RAR&lt;/span&gt;&lt;/span&gt;&lt;span lang="UK" style="mso-ansi-language: UK;"&gt;&lt;span style="font-family: inherit;"&gt;-архив&lt;/span&gt;&lt;/span&gt;&lt;span lang="UK"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;первого тома «Войны и мира» в текстовом формате. Пароль архива: &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: inherit;"&gt;Password&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;Проверяем, не превышает ли&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;встраиваемый файл максимально допустимый размер.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;if&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; (emb_FILE_size*8+emb_num_bits&amp;lt;=emb_max_Bytes*8)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;emb_possible=true;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;else&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;emb_possible=false;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;end&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;Если стеганографическое встраивание возможно, кодируем длину скрываемого файла последовательностью бит.&lt;/span&gt; &lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% FILE size -&amp;gt; bit's row &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;emb_FILE_size_arr=zeros(emb_num_bits,1);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;for&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; &lt;st1:state w:st="on"&gt;&lt;st1:place w:st="on"&gt;ind&lt;/st1:place&gt;&lt;/st1:state&gt;=0:1:emb_num_bits-1,&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;emb_FILE_size_arr(&lt;st1:state w:st="on"&gt;ind&lt;/st1:state&gt;+1)=bitand(bitshift(emb_FILE_size,-&lt;st1:state w:st="on"&gt;&lt;st1:place w:st="on"&gt;ind&lt;/st1:place&gt;&lt;/st1:state&gt;),1);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;end&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;Так же разделяем байты файла который будем встраивать на биты. Этот шаг нужен так как встраивание будет происходить побитно.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;% hidded FILE -&amp;gt; bit's row&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;emb_DATA_bits = uint8(im2bw([bitand(emb_FILE,128),&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;bitand(emb_FILE,64), &lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;bitand(emb_FILE,32), &lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;bitand(emb_FILE,16), &lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;bitand(emb_FILE,8),&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;bitand(emb_FILE,4),&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;bitand(emb_FILE,2),&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;bitand(emb_FILE,1)],0.6));&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;Объединяем битовую последовательность в которой закодирован размер файла с битовой последовательностью самого файла.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: forestgreen; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;%FILE size bits + FILE data bits&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;emb_BITs=[emb_FILE_size_arr; emb_DATA_bits(:)];&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;Формируем индекс для встраивания битовой последовательности:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;emb_BITs_ind=1:size(emb_BITs,1);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;emb_BITs_ind=emb_BITs_ind';&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Долгожданный момент! Встраиваем битовый ряд файла в НЗБ изображения.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;emb_new_IMG(emb_BITs_ind)=bitshift(emb_IMG(emb_BITs_ind),-1);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;emb_new_IMG(emb_BITs_ind)=bitshift(emb_new_IMG(emb_BITs_ind),1)+emb_BITs;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;Записываем стеганоизображение в файл и показываем его пользователю.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;imwrite(emb_new_IMG,&lt;/span&gt;&lt;span lang="EN-US" style="color: #a020f0; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;'stego_murzik2.bmp'&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span lang="EN-US" style="color: #a020f0; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;'bmp'&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin-left: 35.4pt; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;imshow(emb_new_IMG);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="text-indent: 35.45pt;"&gt;&lt;span style="font-family: inherit;"&gt;В той же папке, где располагается скрипт для встраивания появится &lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;BMP&lt;/span&gt;-файл. Наименее значимые биты которого содержат скрытое сообщение.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;Для тех у кого нет желания собирать весь скрипт из текста сообщения, искать файл для изображения и файл который можно спрятать, а попробовать как это все работает хочется, даю &lt;a href="http://narod.ru/disk/27799355001/public.rar.html" target="blanck"&gt;&lt;span style="color: blue;"&gt;&lt;u&gt;&lt;b&gt;ссылку&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt; на архив со всеми файлами.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmkIeJOlufQygiW8Wa7ZPLHRhV1ZYiMFe6FIhIXfzd41N3KTDYi3K5F44kfC0HjB4iMSe_LG7mSgdmiCNDtfMCcWokQViibC7CdMkg4ZfbeOAdtpIjQyWdS0Rk0bj0iyAbpUxgft0ThMw/s72-c/murzik3layer.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">24</thr:total></item><item><title>Разработчики стеганографических алгоритмов обратили внимание на VoIP</title><link>http://gr1g0ry.blogspot.com/2011/02/hiding-information-in-voip.html</link><category>ru</category><category>Новости</category><category>Стеганография</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Fri, 25 Feb 2011 13:14:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-6237065919270366364</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="MsoNormal"&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;div align="justify" class="MsoNormal"&gt;&lt;a href="http://www.scmagazineuk.com/steganography-developers-turn-their-attention-to-hiding-information-in-voip/article/112102/"&gt;Польские исследователи разработали стеганографические методы&lt;/a&gt;, которые предоставляют возможность скрыть информацию в  &lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;a href="http://ru.wikipedia.org/wiki/VoIP"&gt;VoIP&lt;/a&gt;&lt;/span&gt; (Voice over IP; IP-телефония)&amp;nbsp;трафике.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN_OydUduM3lBdGBjE58_1Cb4NqxBcW2HgaKbtV0mZbLcif6FAzL_aNWRSTNMDJZpyEo-7pDZvT-1CLlIi0fVpg9B3q_kkrA1G2FXl615KwrMDT4idZyCBbFsNxMODdc8IW-MUDJuAr88/s1600/voip.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN_OydUduM3lBdGBjE58_1Cb4NqxBcW2HgaKbtV0mZbLcif6FAzL_aNWRSTNMDJZpyEo-7pDZvT-1CLlIi0fVpg9B3q_kkrA1G2FXl615KwrMDT4idZyCBbFsNxMODdc8IW-MUDJuAr88/s400/voip.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Сетевая стеганография, т.е. сокрытие информации в сетевом трафике, уже получила некоторое распространение, однако для сокрытия обычно использовался стандартный поток данных.&amp;nbsp;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Исследователи, Войцех Мазурчек (&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Wojciech&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Mazurczyk&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;) и Кжиштоф Джипйорски (&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Krzysztof&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Szczypiorski&lt;/span&gt;), предложили три метода для сокрытия информации в голосовом потоке. Подобно другим видам стеганографии, их методы могут быть опасны для организаций из-за риска утечки конфиденциальной информации.&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Мазурчек и Джипйорски являются исследователями по вопросам сетевой безопасности, в Варшавском технологическом университете. Разработчики шутливо называют свои методы "стеганофонией": как комбинацию стеганографии и телефонии.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Реальное название этих методов: &lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;LACK&lt;/span&gt;, &lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;HICCUPS&lt;/span&gt; и &lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Security&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Mechanism&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Steganography&lt;/span&gt;.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;LACK&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;передает скрытую информацию путем в преднамеренно задержанных &lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;VoIP&lt;/span&gt;-пакетах. Поскольку приемники &lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;VoIP&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;отбрасывают пакеты пришедшие с задержкой, скрытая информация проходит по каналу не обнаруженной.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;HICCUPS&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;могут использоваться в голосовых беспроводных &lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;LAN&lt;/span&gt; (Local Area Network – локальная сеть) и использует поврежденные пакеты с несовпадающими контрольными суммами, чтобы избегать обнаружения.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Security&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Mechanism&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Steganography&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;изменяет служебные данные &lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;VoIP&lt;/span&gt;-пакетов , например, поля для аутентификации, в каждом случае сокрытия. Исследователи убеждены, что эта техника защитит обнаружения от стеганоаналитическими системами.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;«Поскольку число предложенных стеганографических методов высоко, и нет универсального метода стегоанализа, &lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;VOIP&lt;/span&gt; стеганография является угрозой безопасности для организаций»,- заявляют исследователи.&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;Пропускная способность новых методов позволят передавать до 1.3&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Mb&lt;/span&gt; информации за секунду в обоих направлениях.&lt;/div&gt;&lt;a href="http://www.scmagazineuk.com/steganography-developers-turn-their-attention-to-hiding-information-in-voip/article/112102/"&gt;&lt;/a&gt; &lt;/div&gt;&lt;div align="justify" class="MsoNormal"&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN_OydUduM3lBdGBjE58_1Cb4NqxBcW2HgaKbtV0mZbLcif6FAzL_aNWRSTNMDJZpyEo-7pDZvT-1CLlIi0fVpg9B3q_kkrA1G2FXl615KwrMDT4idZyCBbFsNxMODdc8IW-MUDJuAr88/s72-c/voip.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Система стегоанализа, работающая в реальном времени</title><link>http://gr1g0ry.blogspot.com/2011/02/steganalysis-real-time-sistem.html</link><category>ru</category><category>Новости</category><category>Стегоанализ</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Wed, 2 Feb 2011 14:31:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-1847649507558384860</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h3&gt;&lt;/h3&gt;&lt;div align="justify"&gt;&lt;a href="http://www.backbonesecurity.com/Latest_News/Entries/2010/12/20_Backbone_Announces_High_Speed_Real-Time_Steganography_Detection_System.html"&gt; &lt;span style="color: blue;"&gt;Backbone Security&lt;/span&gt;&lt;/a&gt; выпустила сетевую версию ПО для стегоанализа, которое обнаруживает стеганографиические вложения и защищает от кражи конфиденциальной информации.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;Стегоаналитический сканер реального времени &lt;b&gt;StegAlyzerRTS&lt;/b&gt;, разработанный в &lt;b&gt;&lt;a href="http://www.sarc-wv.com/"&gt;&lt;span style="color: blue;"&gt;SARC&lt;/span&gt;&lt;/a&gt;&lt;/b&gt; (Steganography Analysis and Research Center) является единственной в мире коммерчески доступной системой стегоанализа в режиме реального времени. Последняя версия StegAlyzerRTS способна работать в сетях с пропускной способностью 1 Гбит / с.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;С помощью стеганографических алгоритмов, в один файл может быть скрытно помещен другой. В отличие от криптографии, которая переводит информацию в последовательность знаков, стеганография скрывает само существование информации.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;Одним из последствий экономического кризиса является то, является повышение вероятности кражи информации изнутри. В некотором отношении, информация стала более ценна, чем деньги, потому что может быть продана и перепроданы много раз на черном рынке.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;Темпы кражи внутренними пользователями растут угрожающими темпами. Угрозе подвергаются персональные данные, медицинская тайна, данные являющиеся интеллектуальной собственностью… Сотрудники могут использовать свободное или условно бесплатное стеганографическое ПО (более 1.000 программ) для кражи информации.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;StegAlyzerRTS может обнаружить загрузку любого из 900 приложений для стеганографии используя архив SARC's. Обнаружение такого типа пользовательской  активности позволяет на ранних этапах предупредить кражу конфиденциальной информации. Система обнаруживает стеганографическое ПО посредством модели сгнатур.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;"&lt;i&gt;Любой компании, со значительным количеством конфиденциальной информации или интеллектуальной собственности следует беспокоиться об использовании стеганографии ее сотрудниками&lt;/i&gt;", –  заявляет Bart Guerreri, председатель и главный исполнительный директор Backbone Security: "&lt;i&gt;Наша единственная в своем роде система учитывает указанные угрозы. Не существует другого ПО, способного в режиме реального времени обнаруживать стеганографические вложения и  извлекать скрытую информацию.&lt;/i&gt;"&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Классификация методов стегоанализа</title><link>http://gr1g0ry.blogspot.com/2011/01/steganalysis-methods-classification.html</link><category>ru</category><category>Стегоанализ</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Thu, 27 Jan 2011 13:21:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-177151945987862897</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div align="justify"&gt;Как и любое сложное явление, &lt;b&gt;стего&lt;/b&gt;аналитические или &lt;b&gt;стегано&lt;/b&gt;аналитические методы можно классифицировать по многим критериям. &lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;"&gt;В русскоязычной среде еще нет устоявшейся традиции написания слова стегоанализ. &lt;/span&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;"&gt;Если исходить из мировой практики то правильнее писать &lt;b&gt;стего&lt;/b&gt;анализ от английского варианта написания (&lt;b&gt;steg&lt;/b&gt;analysis). Однако если следовать написанию популярных отечественных книг по данной тематике: &lt;a href="http://www.infanata.com/tags/%F1%F2%E5%E3%E0%ED%EE%E3%F0%E0%F4%E8%FF/"&gt;Конахович Г.Ф., Пузыренко А.Ю. "Компьютерная стеганография. Теория и практика"&lt;/a&gt; или &lt;a href="http://www.infanata.com/2005/11/08/cifrovaya_steganografiya.html"&gt;В. Г. Грибунин, И. Н. Оков, И. В. Туринцев "Цифровая стеганография"&lt;/a&gt;&lt;/span&gt;, ... &lt;span style="font-family: &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;"&gt;следует писать &lt;b&gt;стегано&lt;/b&gt;анализ. Опираясь на количество результатов поиска того и другого вариантов (поиск производился в google и yandex) более употребителен в интернет сообществе термин &lt;b&gt;стегоанализ.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div align="justify"&gt;&lt;b&gt;По широте анализа контейнеров&lt;/b&gt;, в которых скрываются данные, методы стегоанализа делятся на:&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul align="justify"&gt;&lt;li&gt;методы, предназначенные для выявления данных, скрытых определенным алгоритмом;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;методы „слепого” распознавания.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div align="justify"&gt;Конечно же, узконаправленные методы, то есть ориентированные на определенный алгоритм, имеют лучшие показатели нахождения скрытых данных. Их недостатком является то, что в случае небольшого изменения алгоритма сокрытия, искомые данные уже могут не обнаруживаться. Преимуществом „слепых” или же универсальных методов является широкий спектр стеганографических алгоритмов сокрытия, над которыми они могут работать. Вместе с тем эти методы нуждаются в „обучении”, от качества которого зависят их стегоаналитические возможности.      &amp;nbsp;&lt;/div&gt;&lt;div align="justify"&gt;&lt;b&gt;По влиянию на файл-контейнер&lt;/b&gt;, которое содержит скрытые данные, стегоаналитические методы делятся на :      &amp;nbsp;&lt;/div&gt;&lt;br /&gt;
&lt;ul align="justify"&gt;&lt;li&gt;методы пассивного стегоанализа, которые определяют наличие/отсутствие скрытых данных в стегоконтейнери, или что определяют алгоритм, за которым происходило встраивание.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;методы активного стегоанализа, которые определяют длину встроенного документа, его расположение, некоторые параметры алгоритма встраивания, а также изымают скрытую информацию.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div align="justify"&gt;&lt;b&gt;По объекту поиска в стегоконтейнерах&lt;/b&gt; стегоаналитические методы  можно разделить на такие типы:      &amp;nbsp;&lt;/div&gt;&lt;ul align="justify"&gt;&lt;li&gt;сигнатурные методы, построенные на поиске в стеганограммах так называемых „отпечатков пальцев" (fingerprints), - фрагментов кода, которые оставляют после своей работы стеганографические программы;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;вероятностные   методы, которые основаны на анализе вероятностных показателей, характерных для стегосообщений.&lt;br /&gt;
&lt;br /&gt;
К методам &lt;b&gt;&lt;i&gt;сигнатурного типа&lt;/i&gt;&lt;/b&gt; относятся:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;визуальная атака на стегосистемы;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;анализ соответствия формата данных (поиск лишних включений).&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;Так в определенных видах изображений оказываются достаточно тесные связки всех бит изображения. Используя для таких изображений программы-фильтры, можно увидеть встроенную информацию, которая нарушает имеющиеся зависимости. Визуальная атака полностью основывается на способности зрительной системы человека анализировать зрительные обиды и обнаруживать существенные расхождения в сравниваемых изображениях.         &lt;br /&gt;
Примерами “лишней” информации являются дополнительные байты информации, которые дописываются в конец графического файла, или дублирование цветов, в палитре. &lt;br /&gt;
&lt;br /&gt;
К &lt;b&gt;&lt;i&gt;вероятностным  методам&lt;/i&gt;&lt;/b&gt; можно отнести:       &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;анализ статистики Хи-квадрат;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;метод исследования статистических моделей высшего порядка.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;Идея статистического  стегоанализа заключается в сравнении теоретического распределения наименее значимых бит рисунка с фактическим распределением этих же бит в этом же рисунке. При этом мера сходства теоретического и фактического распределения является мерой достоверности встраивания скрытой информации.Cтатистические модели высшего порядка основываются, к примеру, на вейвлет-декомпозиции изображений. По результатам декомпозиции строится „характеристический" вектор, который используется для дифференцирования изображений с сокрытыми данными и «чистых». Наилучшие результаты модель дает после „тренировки" на некотором наборе изображений-контейнеров и соответствующих им стегоизображений.    &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;&lt;div align="justify"&gt;По форме &lt;b&gt;представления исследуемого изображения&lt;/b&gt;, методы стегоанализа можно разделить на:    &amp;nbsp;&lt;/div&gt;&lt;ul align="justify"&gt;&lt;li&gt;методы, которые анализируют изображение непосредственно, то есть в пространственной форме представления;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;методы, которые анализируют частотные формы представления изображения, то есть после перевода его к частотной форме с помощью дискретного превращения косинуса, или вейвлет-преобразования.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div align="justify"&gt;По виду &lt;b&gt;математических инструментов&lt;/b&gt;, которые используются для определения факта встраивания, различают:     &lt;/div&gt;&lt;ul align="justify"&gt;&lt;li&gt;методы, которые используют статистические критерии согласия (Хи-квадрат);&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;методы, которые используют меры подобия цифровой совокупности;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;метод определения JPEG- совместимости.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;Напоследок хочу сказать что никакая классификация не является бесспорной и однозначной :)&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Гистограммный стегоанализ</title><link>http://gr1g0ry.blogspot.com/2011/01/histogram-steganalysis.html</link><category>ru</category><category>Стегоанализ</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Wed, 26 Jan 2011 11:01:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-5882431156619477105</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div align="justify"&gt;&lt;br /&gt;
В русскоязычном интернете почти не встречается статей посвященных алгоритмам и кухне стегоанализа или стеганоанализа (steganalysis). Восполним это пробел. Стегоанализ - это противодействие стеганографии, как криптоанализ - это противодействие криптографии. &lt;b&gt;Основная цель стеганографии - &lt;/b&gt;скрыть факт передачи данных. Следовательно,&lt;b&gt; основная цель стегоанализа &lt;/b&gt;- обнаружить факт сокрытия передачи данных.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим метод обнаружения последовательного &lt;a href="http://gr1g0ry.blogspot.com/2011/01/lsb.html"&gt;встраивания в &lt;/a&gt;LSB&amp;nbsp;на примере изображения формата BMP.&lt;br /&gt;
&lt;br /&gt;
Бытует мнение, что Указатели в LSB изображений являются случайными. На самом деле это не так! Хотя человеческий глаз и не заметит изменений изображения при изменении последнего бита, статистические параметры изображения будут изменены. Перед сокрытием данные обычно архивируются (для уменьшения объема) или шифруются (для обеспечения дополнительной стойкости сообщения при попадании в чужие руки). Это делает биты данных очень близкими к случайным. &lt;b&gt;Последовательное встраивание такой информации заменит  &lt;/b&gt;&lt;strong&gt;LSB&lt;/strong&gt; &lt;b&gt;изображения случайными битами. &lt;/b&gt;И это &lt;b&gt;можно&lt;/b&gt; обнаружить!&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
Для примера возьмем одну цветовую компоненту&amp;nbsp;полноцветного изображения BMP и на ней покажем процесс отыскания встраивания. Яркость цветовой компоненты может принимать значения от 0 до 255. В двоичной системе исчисления - от &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;0000 0000&lt;/span&gt; до &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;1111 1111. &lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;Рассмотрим пары:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div align="left"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;0000 000&lt;b&gt;0&lt;/b&gt;&amp;lt;-&amp;gt;0000 000&lt;b&gt;1&lt;/b&gt;;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;0000 001&lt;b&gt;0&lt;/b&gt;&amp;lt;-&amp;gt;0000 001&lt;b&gt;1&lt;/b&gt;;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;...&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;1111 110&lt;b&gt;0&lt;/b&gt;&amp;lt;-&amp;gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;1111 110&lt;b&gt;1&lt;/b&gt;;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;1111 111&lt;b&gt;0&lt;/b&gt;&amp;lt;-&amp;gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;1111 111&lt;b&gt;1&lt;/b&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: inherit;"&gt;Данные числа различаются между собою только в  &lt;/span&gt;LSB &lt;span style="font-family: inherit;"&gt;(выделены жирным). Таких пар для цветовой компоненты BMP изображения: &lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;256/2=128&lt;/span&gt;&lt;br /&gt;
&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;В случае стеганографического встраивания т.е. замены  &lt;/span&gt;LSB &lt;span style="font-family: inherit;"&gt;на случайную последовательность, количество пикселей в парах выравняется. Гистограмма станет ступеньками (по два соседних значения яркости см.рис.)&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjBDMgxV9P34kr1z9JcUqduYf7q_bizfPenf8m1IBsTgNcKxZcsX4VfSVsX13jR1bD9Ps9NQoxxaQJPiXDjWHtIlHK5pkFxdzIvAA5I7k31Ew2rdqCQlr6FShA0UQsSrt6zSXB-UkIhv4/s1600/gistogramma.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img alt="Гистограммы пустого и заполненного изображений" border="0" height="183" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjBDMgxV9P34kr1z9JcUqduYf7q_bizfPenf8m1IBsTgNcKxZcsX4VfSVsX13jR1bD9Ps9NQoxxaQJPiXDjWHtIlHK5pkFxdzIvAA5I7k31Ew2rdqCQlr6FShA0UQsSrt6zSXB-UkIhv4/s320/gistogramma.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
На рисунке синим цветом обозначена гистограмма изображения без встраивания, а  красным - гистограмма того же изображения после встраивания заархивированных данных вместо последнего слоя. Сравнение двух гистограмм и дает возможность стегоанализа последовательно скрываемых бит.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjBDMgxV9P34kr1z9JcUqduYf7q_bizfPenf8m1IBsTgNcKxZcsX4VfSVsX13jR1bD9Ps9NQoxxaQJPiXDjWHtIlHK5pkFxdzIvAA5I7k31Ew2rdqCQlr6FShA0UQsSrt6zSXB-UkIhv4/s72-c/gistogramma.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total></item><item><title>Типы указателей в С++</title><link>http://gr1g0ry.blogspot.com/2011/01/cpp-pointer-types.html</link><category>C++</category><category>ru</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Tue, 25 Jan 2011 13:12:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-9053701089738895444</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;В С++ Существует три ситуации, связанные с константами, указателями и объектами, на которые они указывают:&lt;br /&gt;
- указатель на константный объект;&lt;br /&gt;
- константный указатель на объект;&lt;br /&gt;
- константный указатель на константный объект.&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
В &lt;b&gt;первой ситуации &lt;/b&gt;объект, на который указывает указатель, не может быть модифицирован, но можно установить указатель на что-нибудь другое:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;const char* pstring = "Некоторый текст";&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Во &lt;b&gt;второй ситуации &lt;/b&gt;адрес, сохраненный в указателе, не может быть изменен, но объект, на который он указывает, может:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Georgia&amp;quot;, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;char* const pstring = "Некоторый текст";&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
И, наконец, в &lt;b&gt;третьей ситуации &lt;/b&gt;как указатель, так и объект, на который он указывает, определены как константы, а потому никогда не могут быть изменены:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;const char* const pstring = Некоторый текст";&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Все это касается указателей любого типа. Указатель на тип char использован исключительно для примера.&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Стеганоанализ аудиофайлов от актера кино</title><link>http://gr1g0ry.blogspot.com/2011/01/next-generation-of-cybersleuths.html</link><category>ru</category><category>Новости</category><category>Стегоанализ</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Wed, 19 Jan 2011 13:29:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-5661913803871636594</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;a href="http://www.newscientist.com/article/dn19985-competition-finds-next-generation-of-cybersleuths.html?full=true"&gt;Соревнование выявило новое поколение кибер-сыщиков.&lt;/a&gt; &amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align="justify"&gt;Актер &lt;b&gt;Пол Лейврок&lt;/b&gt; (&lt;b&gt;Paul Laverack&lt;/b&gt;) исполнял роль преступника в нескольких эпизодах австралийского шоу Stingers о копах. «Я, собственно, играл преступника, который пытался купить ребенка», - смеется он. Тем не менее, сейчас он мог бы раскрыть реальное преступление. Только что Пол занял первое место, победив команды профессионалов в борьбе за главный приз, британского соревновании кибер-сыщиков.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div align="justify"&gt;Британские Соревнования по Кибер Безопасности (&lt;a href="https://cybersecuritychallenge.org.uk/cyber-security-challenge-uk-announces-first-2010-competition-winner.html#more-680"&gt;UK Cyber Security Challenge&lt;/a&gt;) основаны фирмами разыскивающими новые компьютерные таланты. Соревнования призваны выявить следующее поколение компьютерных детективов в борьбе с надвигающимися из киберпространства опасностями.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;Лейврок– завоевал приз по цифровым экспертизам. При этом он – абсолютный самоучка, а знания получил, ремонтируя собственные компьютеры и подрабатывая в сфере IT в перерывах между ролями.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;В качестве приза он пойдет на мастер-класс, в Detica  – отделение по кибербезопасности BAE Systems – компании, которая занимается разработкой военных технологий. Там Laverack сможет отшлифовать свои умения.&lt;/div&gt;&lt;div align="justify"&gt;Догадка, которая позволила выиграть этот приз – это обнаружение зашифрованного  текста спрятанного с помощью стеганографии в аудио-файле. Все профессионалы пропустили данный текст.&lt;/div&gt;&lt;div align="justify"&gt;Закодированное сообщение или информация спрятанная таким способом сложна для обнаружения и требует глубокого знания множества аудио- форматов. Как Laverack смог собрать такие знания? &lt;/div&gt;&lt;div align="justify"&gt;«Не смотря на то, что я актер, я всегда интересовался компьютерами»,- говорит он. «Я рос с компьютерами. Случались различные неполадки, вирусные атаки из интернета. На них и развились мои знания компьютерной безопасности.»&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align="justify"&gt;Случай с Лейвроком продемонстрировал то, на что надеялся руководитель конкурса, Джуди Бейкер: «Он показал существование обычных людей способных к решению проблем, возникающих в борьбе с компьютерной преступностью». &lt;/div&gt;&lt;div align="justify"&gt;Британские соревнования по кибер-безопасности спонсируются британской оборонной исследовательской компанией Qinetiq, антивирусной фирмой Sophos, европейской аэрокосмической фирмой EADS, британским Open University и Field Fisher Waterhouse а также Европейской&amp;nbsp;юридической фирмой, специализирующаяся на  нарушениях в  сфере IT. &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;С июля прошлого года, около 4000 британцев приняли в конкурсе – возраст большинства участников 25-30, интересным исключением были 16-ние участники. Подавляющее большинство составляли  мужчины.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;В минувшие выходные, некоторые из них сражались за новый приз конкурса и строили домашнюю и бизнес-сети. Задачей было обеспечить защиту от множества угроз, в том числе USB - вирусов и взлома через Wi-Fi.&lt;/div&gt;&lt;br /&gt;
&lt;h3&gt;Плохие парни побеждают?&lt;/h3&gt;&lt;br /&gt;
Ведущий специалист компании Sophos - Джеймс Лин говорит о необходимости  обучения компьютерных специалистов в ногу со временем, чтобы&amp;nbsp;противостоять постоянно меняющейся тактике компьютерных преступников.&lt;br /&gt;
&lt;br /&gt;
В качестве примера он приводит программное обеспечения, которое рекламирует себя как антивирусная система, загружается бесплатно&amp;nbsp;и… дает преступникам полный контроль над компьютером.&amp;nbsp;Эта программа даже устанавливает McAfee Antivirus, для защиты от других вирусов и имеет весьма дружелюбный пользовательский&amp;nbsp;интерфейс сообщает Джеймс. &lt;br /&gt;
&lt;br /&gt;
«Дело в том»,- поясняет он, что: «правонарушители совершенствуют свой уровень ежесекундно, &amp;nbsp;а те кто борятся с ними&amp;nbsp;улучшают свои знания гораздо реже".&lt;br /&gt;
&lt;br /&gt;
По оценкам  Sophos каждый день происходит около 60000 компьютерных атак. Что показывает огромную пропасть между числом угроз и&amp;nbsp;числом людей, которые им противостоят.&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Общая классификация стеганографии</title><link>http://gr1g0ry.blogspot.com/2011/01/general-steganography-classification.html</link><category>ru</category><category>Стеганография</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Tue, 18 Jan 2011 13:09:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-3940695456969591805</guid><description>&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAhRrdpaEqwnbXrGKBUXOsiX3dFSm5EBZh9LfHCULo8hwYep2MhIucntS_bqKlphKrDm7C9Nhz42DTP-k5n-KCoF1wPGrNwCxViwY7eVmmL8CrGYh0_oWqbG9pp6syRPRNMB8q0IjiFbE/s1600/classification1.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img border="0" id="BLOGGER_PHOTO_ID_5480317845932081826" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAhRrdpaEqwnbXrGKBUXOsiX3dFSm5EBZh9LfHCULo8hwYep2MhIucntS_bqKlphKrDm7C9Nhz42DTP-k5n-KCoF1wPGrNwCxViwY7eVmmL8CrGYh0_oWqbG9pp6syRPRNMB8q0IjiFbE/s320/classification1.png" style="cursor: hand; cursor: pointer; float: right; height: 320px; margin: 0 0 10px 10px; width: 214px;" alt="Классификация стеганографии" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align="justify"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size: small;"&gt;Стеганография&lt;/span&gt;&lt;/span&gt; — это наука о скрытой передаче информации путём сохранения в тайне самого факта передачи. В отличие от криптографии, которая скрывает содержимое секретного сообщения, стеганография скрывает само его существование. &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div align="justify"&gt;В самом общем виде стеганографию я бы классифицировал по используемым методам (классификация не претендует на уникальность и может быть проведена по другим критериям):&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;i&gt;&lt;b&gt;Техническая стеганография&lt;/b&gt;&lt;/i&gt; использует технические методы, чтобы скрыть сообщение. К техническим методам можно отнести использование &lt;i&gt;симпатических&lt;/i&gt; (невидимых) чернил. Текст, записанный такими чернилами, проявляется только при определенных условиях (нагрев, освещение, химический проявитель и т. д.). Еще один пример технической стеганографии – микроточки активно использовались во время Второй мировой войны. (&lt;i&gt;Микроточки&lt;/i&gt; – микроскопические фотоснимки, вклеиваемые в текст писем, телеграмм.)&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div align="justify"&gt;&lt;i&gt;&lt;b&gt;Лингвистическая стеганография&lt;/b&gt;&lt;/i&gt; скрывает сообщение, изменяя параметры элементов из которых состоит носитель или создавая новый носитель таким образом, чтобы он содержал передаваемое сообщение. Пример лингвистической стеганографии – модификация семаграмм которая и будет нести скрытую информацию (это может быть небольшое изменение размера или гарнитуры шрифта). Также к лингвистической стеганографии относят "жаргонные шифры" – язык, который понятен определённой группе людей, но непонятен другим. &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;i&gt;&lt;b&gt;Цифровая стеганография &lt;/b&gt;&lt;/i&gt;основывается на внедрении дополнительной информации в цифровые объекты (как правило мультимедиа: изображения, видео, аудио, текстуры 3D-объектов). Наиболее распространенным методом цифровой стеганографии является внедрение в LSB (Least Significant Bit, наименьший значащий бит). Для целей внедрения скрытых меток в медиафайлы также используются методы внедрения в частотную форму представления контейнера.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAhRrdpaEqwnbXrGKBUXOsiX3dFSm5EBZh9LfHCULo8hwYep2MhIucntS_bqKlphKrDm7C9Nhz42DTP-k5n-KCoF1wPGrNwCxViwY7eVmmL8CrGYh0_oWqbG9pp6syRPRNMB8q0IjiFbE/s72-c/classification1.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Встраивание в НЗБ (LSB embedding). Просто и доступно.</title><link>http://gr1g0ry.blogspot.com/2011/01/lsb.html</link><category>ru</category><category>Стеганография</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Sat, 15 Jan 2011 12:12:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-5189271755227807326</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div align="justify"&gt;&lt;b&gt;Внедрение в наименее значимый бит&lt;/b&gt; (НЗБ или LSB - Least Significant Bit) - один из наиболее используемых и исследуемых способов стеганографического сокрытия. Сущность этого метода отображена в самом его названии и заключается в замене НЗБ &lt;b&gt;контейнера&lt;/b&gt; - файла в который будет встраиваться скрытая информация. В качестве контейнера могут выступать  несжатые изображения и аудио. Прежде всего разберемся, что какие же биты наименее значимы и что это вообще такое. Для примера возьмем изображение формата BMP глубиной в 8*3=24 бита. В такой картинке цвет представлен сочетанием трех &lt;b&gt;цветовых компонент:&lt;/b&gt; &lt;span style="color: red;"&gt;&lt;b&gt;красной&lt;/b&gt;&lt;/span&gt;, &lt;span style="color: green;"&gt;&lt;b&gt;зеленой&lt;/b&gt;&lt;/span&gt; и &lt;span style="color: blue;"&gt;&lt;b&gt;синей&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;(см.рис.).&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvtbKS6pPVbF8admWHTIHPs99WbAfnZZCc37l5ZiDfW_QuinoZgsDRGfQTCgijBJbFtQlPuQSrR0ynoWAQJIBGU_ruPb6FJiqSxR1Uj_Nh6r2lsvKDm7TtxMT4i69dHv_y3LbTWbLZQYs/s1600/cat.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvtbKS6pPVbF8admWHTIHPs99WbAfnZZCc37l5ZiDfW_QuinoZgsDRGfQTCgijBJbFtQlPuQSrR0ynoWAQJIBGU_ruPb6FJiqSxR1Uj_Nh6r2lsvKDm7TtxMT4i69dHv_y3LbTWbLZQYs/s320/cat.gif" width="320" alt="Цветовые компоненты изображения" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
Каждая цветовая компонента кодируется &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;1&lt;/span&gt;-м &lt;b&gt;байт&lt;/b&gt;ом (&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;8&lt;/span&gt;-ю битами. &lt;b&gt;Бит&lt;/b&gt; - это наименьшая единица измерения в двоичной системе исчисления равняется "&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;0&lt;/span&gt;" или "&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;1&lt;/span&gt;"). Биты в байте имеют неодинаковый вес. Если самый правый бит принимает значение 0 или 1 то это и означает &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;0&lt;/span&gt; и &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;1&lt;/span&gt;. Значение второго (справа налево) бита  будут означать в десятичной системе - &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;0&lt;/span&gt; или &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;2&lt;/span&gt;, третьего - &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;0&lt;/span&gt; или &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;4&lt;/span&gt;,..., восьмого - &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;0&lt;/span&gt; или &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;128&lt;/span&gt;. Наименьшее число, которое можно представить одним байтом будет, конечно &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;0 - 0000 0000&lt;/span&gt;, а наибольшее - &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;255 - 1111 1111&lt;/span&gt;.&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhheqdoCEF1e2W0kp-wFdmj71gCAFfeG9BemM2KeIxlVXD5nL3ISTDWjkFATweUh36jsqf6XYqFoAqKb2dgA4pImbjEvKhsr8jPvTcAcn2IfipnWFHvzKUxiuQgbZAKJtqai1SBniJ-AMQ/s1600/cat_3dG.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="198" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhheqdoCEF1e2W0kp-wFdmj71gCAFfeG9BemM2KeIxlVXD5nL3ISTDWjkFATweUh36jsqf6XYqFoAqKb2dgA4pImbjEvKhsr8jPvTcAcn2IfipnWFHvzKUxiuQgbZAKJtqai1SBniJ-AMQ/s320/cat_3dG.gif" width="320" alt="Трехмерное представление цветовой компоненты" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div align="justify"&gt;Для наглядности представим яркость зеленой компоненты в 3D формате. Яркие точки изображения представлены пиками, а темные - впадинами.  Из рисунка выделим одну строку и посмотрим на нее как бы сбоку (для наглядности взята лишь часть строки). &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxalVXVV4USXmmMCbY-eFOc9eY3D6P0UgY1iOpNU3gV6rVYLtbArG-6yKWrPnRYmU-KQzRpKs6FjEk9iRZafhdJttiaoTiH9iMNTWxdlmCwJjPbSYA8ztB5-E-LfL5mY-Vy-Jr2j8rlw0/s1600/line.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxalVXVV4USXmmMCbY-eFOc9eY3D6P0UgY1iOpNU3gV6rVYLtbArG-6yKWrPnRYmU-KQzRpKs6FjEk9iRZafhdJttiaoTiH9iMNTWxdlmCwJjPbSYA8ztB5-E-LfL5mY-Vy-Jr2j8rlw0/s320/line.png" width="320" alt="Вес НЗБ в строке пикселей" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;b&gt;&lt;span style="color: #ef0000;"&gt;8&lt;/span&gt;,7,&lt;span style="color: #ffef00;"&gt;6&lt;/span&gt;,&lt;span style="color: #8fff70;"&gt;5&lt;/span&gt;&lt;/b&gt;&lt;/span&gt; (считая справа) - биты обозначены &lt;b&gt;&lt;span style="color: #ef0000;"&gt;красным&lt;/span&gt;, оранжевым, &lt;span style="color: #ffef00;"&gt;желтым&lt;/span&gt;, и &lt;span style="color: #8fff70;"&gt; зеленым &lt;/span&gt;&lt;/b&gt; цветами. &lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;4,3,2,1&lt;/span&gt;&lt;/b&gt; - всеми оттенками &lt;span style="color: #10ffef;"&gt;голубого&lt;/span&gt; и &lt;span style="color: #0010ff;"&gt;синего&lt;/span&gt;.&lt;br /&gt;
Из гистограммы наглядно видно видно насколько малый вклад вносят темно-синие биты. Вот они то и называются наименее значимыми и именно в них обычно происходит встраивание информации. &lt;br /&gt;
Рассчитаем максимальный объем стеганографического встраивания в BMP-изображение разрешением 1024х768 пикселей и с глубиной цвета 24 бита. Будем считать, что встраивание происходит лишь в 1-й бит цветовых компонент. Умножаем высоту на ширину и получаем количество бит, которые можно спрятать в одной цветовой компоненте.&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;1024*768=786 432&lt;/span&gt;&lt;/b&gt; Бит&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;Для трех цветовых компонент объем встраивания будет равен.&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;786 432*3 = 2 359 296&lt;/span&gt;&lt;/b&gt; Бит &lt;b&gt; = &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;294 912&lt;/span&gt;&lt;/b&gt; Байт&lt;b&gt; = &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;288&lt;/span&gt;&lt;/b&gt; килоБайт.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;Эта величина приблизительно равна 20% от емкости дискеты. (Если кто-то еще помнит как они выглядели :-)&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvtbKS6pPVbF8admWHTIHPs99WbAfnZZCc37l5ZiDfW_QuinoZgsDRGfQTCgijBJbFtQlPuQSrR0ynoWAQJIBGU_ruPb6FJiqSxR1Uj_Nh6r2lsvKDm7TtxMT4i69dHv_y3LbTWbLZQYs/s72-c/cat.gif" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><title>Нейронные сети в Matlab. Аппроксимация функций</title><link>http://gr1g0ry.blogspot.com/2010/06/blog-post_15.html</link><category>MATLAB</category><category>ru</category><author>noreply@blogger.com (Gr1g0ry)</author><pubDate>Tue, 15 Jun 2010 15:05:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6332755210988308351.post-3751052723622410174</guid><description>&lt;div align="justify"&gt;Нейронные сети хорошо осуществляют сглаживание или подбор значений функций по точкам. Нейронные сети могут эмпирически подобрать большинство функций. Причем, это могут быт как функции одной переменной, так и нескольких. Для первого примера возьмем зашумленную функцию одной переменной.&amp;nbsp;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsdUKtsaosu7Y87sOL2hsTJKoLAnyp2DBbP-2Dc8Wua_vQbUHcd-b-zT047BmR_hurh_eOnhuQ9rckjEix2wjKMYdrpRTOLi4LDclm5LhqEWyiKGc_ToQh0yp2m6RzdyDKlOpnvE-des0/s1600/image002.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsdUKtsaosu7Y87sOL2hsTJKoLAnyp2DBbP-2Dc8Wua_vQbUHcd-b-zT047BmR_hurh_eOnhuQ9rckjEix2wjKMYdrpRTOLi4LDclm5LhqEWyiKGc_ToQh0yp2m6RzdyDKlOpnvE-des0/s320/image002.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align="justify"&gt;Пусть необходимо создать и обучить нейронную сеть, которая бы находила значение функции по заданному аргументу. Функция задана таблицей&lt;/div&gt;&lt;br /&gt;
&lt;table border="1"&gt;&lt;tbody&gt;
&lt;tr align="right"&gt;  &lt;td&gt;1&lt;/td&gt; &lt;td&gt;2&lt;/td&gt;  &lt;td&gt;3&lt;/td&gt;  &lt;td&gt;4&lt;/td&gt;  &lt;td&gt;5&lt;/td&gt;  &lt;td&gt;6&lt;/td&gt;  &lt;td&gt;7&lt;/td&gt;  &lt;td&gt;...&lt;/td&gt; &lt;/tr&gt;
&lt;tr align="right"&gt;  &lt;td&gt;4,19&lt;/td&gt;  &lt;td&gt;9,85&lt;/td&gt;  &lt;td&gt;8,64&lt;/td&gt;  &lt;td&gt;-8,16&lt;/td&gt;  &lt;td&gt;9,07&lt;/td&gt;  &lt;td&gt;-6,74&lt;/td&gt;  &lt;td&gt;9,41&lt;/td&gt;  &lt;td&gt;...&lt;/td&gt; &lt;/tr&gt;
&lt;tr align="right"&gt; &lt;td&gt;-2,12&lt;/td&gt;  &lt;td&gt;-8,89&lt;/td&gt;  &lt;td&gt;-6,30&lt;/td&gt;  &lt;td&gt;2,44&lt;/td&gt;  &lt;td&gt;-8,44&lt;/td&gt;  &lt;td&gt;-6,28&lt;/td&gt;  &lt;td&gt;-9,42&lt;/td&gt;  &lt;td&gt;...&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;div align="justify"&gt;Для наглядности изобразим точки функции на плоскости:&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv_VvhWM1DLp1XB8023zp0A3gWaBxEErpokx7qaJ1Du2heW0ZS2sH51WpF_yLXSBZGR4YKCM3yDC3ZZGWlYo6QY4KfHf0mvsEZGFv-6kTRxbqQ9kkh0BIOGZyStrrBZoCa_qo0Y_lrT2U/s1600/image004.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="331" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv_VvhWM1DLp1XB8023zp0A3gWaBxEErpokx7qaJ1Du2heW0ZS2sH51WpF_yLXSBZGR4YKCM3yDC3ZZGWlYo6QY4KfHf0mvsEZGFv-6kTRxbqQ9kkh0BIOGZyStrrBZoCa_qo0Y_lrT2U/s400/image004.gif" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align="justify"&gt;Создать нейронную сеть в Matlab возможно тремя способами:&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;ul align="justify"&gt;&lt;li&gt;с помощью функции командной строки&lt;/li&gt;
&lt;li&gt;используя графический интерфейс пользователя&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp;nftool&lt;/li&gt;
&lt;li&gt;&amp;nbsp; &amp;nbsp;nntool&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;div align="justify"&gt;Мы рассмотрим первый из них. Разобрав его можно будет с легкостью разобраться с командами&amp;nbsp;&lt;/div&gt;&lt;div align="justify"&gt;nftool и nntool.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;b&gt;&lt;span style="color: black;"&gt;Представление исходных данных&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;Для аппроксимации&amp;nbsp; функции, ее аргументы (x1,[x2,…]) представим в виде столбцов, сгруппированных в матрицу. Значения (y1,[y2,…])- аналогично. Столбцы матриц аргуменов X и значений Y должны соответствовать.&lt;/div&gt;&lt;div align="justify"&gt;Например, аргументы и результаты для задачи XOR будут такими:&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp; Inputs &amp;nbsp;= [0 1 0 1;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 0 1 1];&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp; Targets = [0 0 0 1];&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;В нашем примере мы сами создадим исходные значения функции. &lt;/div&gt;&lt;div align="justify"&gt;L=100;&lt;/div&gt;&lt;div align="justify"&gt;NOISE=rand(1,L)*1.5-0.75;&lt;/div&gt;&lt;div align="justify"&gt;X=rand(1,L)*20-10;&lt;/div&gt;&lt;div align="justify"&gt;Y=X.*cos(X)+NOISE;&lt;/div&gt;&lt;div align="justify"&gt;TABLE=[X;Y];&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;b&gt;&lt;span style="color: black;"&gt;Создание НС из командной строки&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;Создадим сеть. Для этого примера, используем однонаправленную сеть с обратным распространением ошибок и сигмоидальной функцией передачи в скрытом слое и линейной функцией передачи в выходном слое. Эта структура хорошо подходит для аппроксимации функций.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Количество нейронов N используемых в скрытом слое зависит от сложности решаемой задачи (в данном случае аппроксимируемой функции). &lt;/div&gt;&lt;div align="justify"&gt;NET = newfit(X,Y,N);&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;Обучение сети&lt;/div&gt;&lt;div align="justify"&gt;По умолчанию для обучения данная нейронная сеть использует алгоритм Левенберга-Маркварта [Levenberg-Marquardt]. Входные и целевые векторы в случайном порядке данные делятся на три набора:&lt;/div&gt;&lt;ul align="justify"&gt;&lt;li&gt;&amp;nbsp;60% векторов используются для обучения;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;20% векторов – для проверки достоверности результатов и чтобы избежать перетренировки сети;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Последние 20% используются для независимого испытания сети&lt;/li&gt;
&lt;/ul&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;b&gt;Тренировка НС&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы тренировать сеть, введите:&lt;/div&gt;&lt;div align="justify"&gt;NET=train(NET, X,Y);&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;Откроется окно&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOqB9sweT96EnHQ3tUT6SWZdq04wSBRK2Uf55Z_myhpwX90Fq0sAwlY1WVwqMWbrRf9uU3kRvh4k-Vls4qIGRl7sYRkdb_FG7mr94HSmNfwiuIhVN20PvQYIa7Oermz__FRObjBmnaIBE/s1600/image006.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOqB9sweT96EnHQ3tUT6SWZdq04wSBRK2Uf55Z_myhpwX90Fq0sAwlY1WVwqMWbrRf9uU3kRvh4k-Vls4qIGRl7sYRkdb_FG7mr94HSmNfwiuIhVN20PvQYIa7Oermz__FRObjBmnaIBE/s400/image006.jpg" width="287" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;Оно показывает процесс тренировки сети и позволяет его прервать, нажав кнопку “Stop Training”.&lt;/div&gt;&lt;div align="justify"&gt;По умолчанию остановка процесса обучения происходит, когда среднеквадратичная ошибка проверки достоверности результатов возрастает шесть эпох подряд.&amp;nbsp;&lt;/div&gt;&lt;div align="justify"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHgPmpmmtWve7f7w0csJIxvd0sqb28jPiq38ColphQmELlL-Zuv2Wx6UGqswzsjqRbSnHBbl_P-71WLhE-jyG9JhDvnu0wrdXfdlp_ogtRwyCh8es8nvphVGrVYtgcETYyZWaVzXAZ1KU/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="396" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHgPmpmmtWve7f7w0csJIxvd0sqb28jPiq38ColphQmELlL-Zuv2Wx6UGqswzsjqRbSnHBbl_P-71WLhE-jyG9JhDvnu0wrdXfdlp_ogtRwyCh8es8nvphVGrVYtgcETYyZWaVzXAZ1KU/s400/1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;В этом примере, результат адекватен из следующих соображений:&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Заключительная среднеквадратичная ошибка (СКО) мала.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Ошибка проверочного (Validation) и тестового (Test) наборов утверждения имеют подобные характеристики.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Переобучения не произошло (после точки остановки происходит лишь увеличение СКО проверочного набора до 16-й эпохи ). &lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;На следующем рисунке можем увидеть аппроксимированную функцию-результат.&lt;/div&gt;&lt;div align="justify"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRWBDXXN3eLUY7gt5yCQ5foTJBhfssmHV8KP5Y0BEVHflJXiGItWhiyVVkK5Jyzf5ymTv0YmPLHJuheg8wd7rzI7AWYTwMITeqrlpgfiD69cIaRh_WE8yo9sajO4wB9Aj2rqi1m2iEEFQ/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRWBDXXN3eLUY7gt5yCQ5foTJBhfssmHV8KP5Y0BEVHflJXiGItWhiyVVkK5Jyzf5ymTv0YmPLHJuheg8wd7rzI7AWYTwMITeqrlpgfiD69cIaRh_WE8yo9sajO4wB9Aj2rqi1m2iEEFQ/s400/2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;Еще одним полезным инструментом оценки результата обучения нейронной сети может быть построение функций регрессии &amp;nbsp;результатов Output (которые дает обученная нейронная сеть) &amp;nbsp;от целевых значений Y (которые были изначальным условием нашей задачи).&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX6uesESGXBpOe8BS9qrZ1Gu_AtxSS3UV6p1Cjb-sfRNmgXaSCpl_9D0qE_segXZVnkMANfYZCsySBd6wfp9soY9SnRSp2PPoPa_3h0cEuZSv99quefOuj8J2bbDVkmIrr1fR-Dy90_uk/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX6uesESGXBpOe8BS9qrZ1Gu_AtxSS3UV6p1Cjb-sfRNmgXaSCpl_9D0qE_segXZVnkMANfYZCsySBd6wfp9soY9SnRSp2PPoPa_3h0cEuZSv99quefOuj8J2bbDVkmIrr1fR-Dy90_uk/s400/3.png" width="381" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align="justify"&gt;Если результаты аппроксимации оказались неудовлетворительными можно попробовать какой-либо из следующих подходов:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Увеличить число скрытых нейронов.&lt;/li&gt;
&lt;li&gt;Увеличить число учебных векторов.&lt;/li&gt;
&lt;li&gt;Увеличьте число входных переменных, если таковые имеются.&lt;/li&gt;
&lt;li&gt;Использовать другой алгоритм обучения (&lt;a href="http://www.mathworks.com/access/helpdesk/help/toolbox/nnet/backpro7.html"&gt;http://www.mathworks.com/access/helpdesk/help/toolbox/nnet/backpro7.html&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div align="justify"&gt;&amp;nbsp;В данном случае, нас устраивает тренированность сети NET.&lt;/div&gt;&lt;br /&gt;
&lt;div align="justify"&gt;&lt;br /&gt;
&lt;b&gt;Использование нейронной сети для получения значений &amp;nbsp;аппроксимируемой функции.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Используя тренированную сеть NET, получим значения искомой функции для аргументов из интервала [-10;10] с интервалом 0.5. &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;X_rez=-10:0.5:10;&lt;/div&gt;&lt;div align="justify"&gt;Y_rez = sim(NET, X_rez);&lt;/div&gt;&lt;div align="justify"&gt;plot(X_rez,Y_rez,'LineStyle','none','Marker','.','MarkerSize',15);&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_u0N3wb_hxLQcfHBwWbtYaNHzYAHqIBwIXkja_fcVoK4yOwmwsmTAhMciyErmaDIOx2ga2kvdYxjkEayePMeiDGV-kvarPTZhCOGT53CQk5OHUX8ZWmN7z-NHbW5zFnKNb7a5RQlBmdM/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_u0N3wb_hxLQcfHBwWbtYaNHzYAHqIBwIXkja_fcVoK4yOwmwsmTAhMciyErmaDIOx2ga2kvdYxjkEayePMeiDGV-kvarPTZhCOGT53CQk5OHUX8ZWmN7z-NHbW5zFnKNb7a5RQlBmdM/s400/4.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsdUKtsaosu7Y87sOL2hsTJKoLAnyp2DBbP-2Dc8Wua_vQbUHcd-b-zT047BmR_hurh_eOnhuQ9rckjEix2wjKMYdrpRTOLi4LDclm5LhqEWyiKGc_ToQh0yp2m6RzdyDKlOpnvE-des0/s72-c/image002.gif" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item></channel></rss>