четверг, 3 мая 2012 г.

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


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

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

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

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

// раскодируем бит
if (clLen >= 2) // возможно строка содержит кодированный бит стего (а именно один или два пробела)
{
if (currentLine[clLen - 2] == ' ' && currentLine[clLen - 1] == ' ')
{
// раскодируем единицу
c = c | 0x80; // 1000 0000
decoding = true;
}
else if (currentLine[clLen - 1] == ' ')
{
// раскодируем ноль
c = c & 0x7F; // 0111 1111
decoding = true;
}
else
decoding = false;
}

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

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

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