среда, 2 мая 2012 г.

Текстовая стеганография: Метод изменения регистра символов


Метод изменения регистра символов предполагает кодирование нулевого бита стего сообщения за счет строчного регистра символа файла-контейнера, а единичного – за счет строчного регистра. Этот метод чрезвычайно прост. Для кодирования стеганосообщения могут использоваться только буквенные символы файла-контейнера.
            При сокрытии стего, файл-контейнер считывается посимвольно. В случае, если текущий символ явялется буковой, происходит кодирование очередного бита стегосообщения, представленного в двоичном формате. 

if (char.IsLetter(currentChar))
{
     

if (encoding)
{
// получаем младший бит текущего символа стего
if ((c & 1) == 1)
// будем кодировать "единицу"
                  currentChar = char.ToUpper(currentChar); // заглавный символ кодирует единицу
else
// будем кодировать "ноль"
currentChar = char.ToLower(currentChar); // строчный символ кодирует ноль

// переходим к следующему биту
c = c >> 1;
}

}

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

// читаем символ
currentChar = (char)sr.Read();

if (char.IsLetter(currentChar))
{

// раскодируем бит
      if (char.IsUpper(currentChar))
      {
            // раскодируем единицу
            c = c | 0x80; // 1000 0000
decoding = true;
}
else if (char.IsLower(currentChar))
{
// раскодируем ноль
c = c & 0x7F; // 0111 1111
decoding = true;
}
else
decoding = false;

      …
}

            Единственным неоспоримым достоинством этого метода является высокая пропускная способность, которая достигает 11% объема файла-контейнера. При всех оценках пропускной способности стегосистемы я считаю, что тектовый файл состоит из строк, длина которых составляет 80 символов, при этом 70 из них являются буквенными. Файл со скрытым стего выглядит крайне подозрительно для человеческого взгляда: на первый взгляд он представляет собой хаотичное использование заглавных и строчных букв. Этот метод нельзя признать пригодным для использования даже с учетом предварительного шифрования стеганосообщения.

2 комментария:

  1. Думаю вы знаете, что такое стеганография. Так вот, этот алгоритм по сути не относится к стеганографии.
    Ведь если после обработки, текст вида "СегОДнЯ пРемьЕР..." будет бросаться в глаза. А уничтожить встроенные данные несоставит труда.
    Тогда уж нужно применять более незаметные алгоритмы. Например неплохие результаты можно получить, используя алгоритм, основанный на методе замены символов на визуально похожие.
    А практически идеальный алгоритм - лингвистицеский. В нем информация внедряется с использованием синонимов слов.

    ОтветитьУдалить
  2. В корне с Вами не соглашусь!
    Применимость у этого метода достаточно широкая, в частности для регистронезависимых языков разметки.
    Представьте, что у вас есть html
    <hTMl lAnG="RU"> <hEAd> <MeTA Http-eqUIv= ...
    Для человека все эти изменения будут не заметны - браузер обработает данные, и конечному пользователю стеганография будет не заметна. А вот пользователь, знающий что тут может содержаться скрытое сообщение, получит его без труда.

    Алгоритм, основанный на методе замены символов на визуально похожие этого достоинства лишен.

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

    ОтветитьУдалить