
2) Метод lsb
Суть этого метода заключается в замене последних значащих битов в контейнере (изображения, аудио или видеозаписи) на биты скрываемого текста. Разница между пустым и заполненным контейнерами должна быть невидима человеческому глазу. Методы LSB являются неустойчивыми ко всем видам атак и могут быть использованы только при отсутствии шума в канале передачи данных.
Все методы LSB являются аддитивными (A17, L18D).
Другие методы скрытия информации в графических файлах ориентированы на форматы файлов с потерей, такие, как JPEG. В отличие от LSB они более устойчивы к геометрическим преобразованиям. Это получается за счёт варьирования в широком диапазоне качества изображения, что приводит к невозможности определения источника изображения.
2 Разработка приложения
2.1 Разработка блок-схемы алгоритма
В качестве исходных данных в алгоритме используется изображение в формате bmp, размер которого может варьироваться, а также текст, который необходимо зашифровать. Разрабатываемое приложение состоит из двух частей: первая часть – собственно зашифровка текста в изображении, вторая – его декодирование для проверки полученного результата.
Словесное описание алгоритма:
1 часть
1. Начало
2. Загрузить изображение
3. Загрузить текст сообщения в двоичном коде
4. Выбрать матрицу, в которой будет проведена зашифровка текста
5. Рассчитать размер матрицы
6. Если размер изображения превышает размер кодируемого текста, то перейти к п.7
7. Перевести матрицу из десятичной системы счисления в двоичную
8. В последний бит каждого пикселя рабочей матрицы записать бит информации из скрываемого сообщения
9. Перевести матрицу с закодированным изображением в десятичную систему счисления
10. Записать измененное изображение
11. Вывести на экран исходное и полученное в результате зашифровки изображения сообщение
12. Записать полученное изображение в файл
13. Конец
2 часть
1. Начало
2. Загрузить изображение, в котором зашифрован текст
3. Выбрать матрицу, в которой зашифрован текст
4. Создать цикл от первого значения матрицы до последнего бита закодированного текста
5. Перевести матрицу в двоичный код
6. В новый массив записать все переведенные значения
7. Вывести полученный массив
8. Конец
В качестве кодируемого текста используется слово LISA. После перевода в двоичный код с помощью таблицы ASCII-кодов слово будет выглядеть следующим образом:0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1. В двоичном коде текста используется 32 символа.
Блок-схема алгоритма, 1 часть:
начало

Загрузить изображение C:\Users\Лиза\Desktop\19000-1680x1050.bmp'

загрузить матрицу R=X(:,:,1)

Рассчитать размер матрицы: [a,b]=size(R)


загрузить текст сообщения F=[0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1]
1
1

a>32
да нет
for i=1:1:32
R(i,1)=bin2dec(A)




X_n=X

X_n(:,:,1)=R

A=dec2bin(R(i,1),8)
«ввести изображение большего размера
A(8)=dec2bin(F(i),1)
Вывести исходное и преобразованное изображение

Записать изображение в файл

конец

Описание переменных:
X – загружаемое изображение, представленное в виде матрицы.
F – массив, содержащий биты текста, который будет зашифрован.
R – матрица RED, в которой будет произведена зашифровка текста.
[a, b] – размер матрицы RED.
A – матрица R, переведенная в двоичный код и представленная в виде матрицы с восемью столбцами.
X_n – матрица, полученная в результате кодировки изображения
Блок-схема алгоритма, 2 часть:
начало



for i=1:1:32


F(i)=A(8)


F

конец
R=X(:,:,1)
Загрузить изображение C:\Users\Лиза\Desktop\rty1.bmp
A=dec2bin(R(i,1),8)
Описание переменных:
X – загружаемое изображение, представленное в виде матрицы.
R – матрица RED.
A – матрица R, переведенная в двоичный код и представленная в виде матрицы с восемью столбцами.
F – массив, представляющий собой двоичный код зашифрованного в изображении сообщения.