пятница, 11 мая 2012 г.

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


Метод изменения кода пробела заключается в том, что во многих кодовых страницах один и тот же символ (пробел) может кодироваться несколькими кодами. В кодовой странице Windows-1251 пробел обычно кодируется кодом 32. Однако в этой же кодовой странице пробел кодируется также и числом 160. Таким образом, можно кодировать биты 1 стеганосообщения заменяя пробелы с кодом 32 в файле-контейнере на пробелы с кодом 160. Пробелы с кодом 32 будут кодировать бит 0 стего.
            Скрытие 

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

if (currentChar == ' ')
{


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

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


} // currentChar == ' '

и извлечение стеганограммы довольно просты:

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

if (currentChar == 32 || currentChar == 160)
{

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


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

            Оценить пропускную способность этой стегосистемы можно, воспользовавшись таблицей частот символов русского языка. Относительная частота встречаемости пробела составляет около 17.0%. Таким образом, пропускная способность метода составляет около 2.1%. Это довольно хороший показатель, а кроме того, текст с измененными кодами пробелов успешно отображается во всех проверенных мной текстовых редакторах и средствах просмотра. Этот метод можно успешно применять в работе, особенно если предварительно зашифровать сообщение. Реализация этого метода в Интернете ранее не встречалась.

Комментариев нет:

Отправить комментарий