Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра БІТ
ЗВІТ
до лабораторної роботи №3
з дисципліни:
«Методи і засоби стеганографії»
на тему:
«Стеганографічні методи приховування
інформації в аудіофайлах»
Львів - 2013
Мета
Навчитися приховувати інформацію в аудіофайлах з розширенням .wav різними стеганографічними методами (наприклад метод НЗБ) , використовуючи середовище програми Matlab.
Хід роботи
1.Маємо контейнер у вигляді аудіофайлу та повідомлення у вигляді тексту.
2. Аналізуємо контейнер на можливість вбудовування в нього повідомлення. Тобто обчислюємо кількість інформації , яку можна вбудувати в найменш значущі біти. Також обчислюємо ,скільки біт необхідно для зберігання максимально можливого розміру файла.
3.Після отримання підтвердження , що у контейнер можна вбудувати повідомлення, приховуємо повідомлення у НЗБ контейнера. При цьому перевіряємо, чи не перевищує файл який ми вбудовуємо максимально допустимий розмір.
4. При вбудовуванні в аудіофайли секретного повідомлення, ми розбиваємо аудіофайл на послідовність відліків , потім кожен відлік переводимо у двійкове представлення і міняємо НЗБ в певних відліках, де це буде найменш помітно для людського вуха..
Аналогічним способом буде відбуватися видобування повідомлення зі заповненого контейнера:
1.Ми вже знаємо, що у перших бітах цього контейнера міститься інформація про розмір прихованого файлу.
2.Обчислюємо кількість інформації, яка може бути прихована.
3.Видобуваємо саме початкове зображення, виділяємо найменш значущі біти.
4.Виділяємо байти з прихованою інформацією,виділяємо найбільш значущі біти.
5.Після того, як отримаємо прямокутний масив бітів, записуємо послідовність даних в файл. Таким чином ми відновили вихідне секретне повідомлення.
Лістинг програми для вбудовування
f = fread(fopen('audio.wav'));
n = fread(fopen('text.doc'));
fclose all;
f_bin = dec2bin(f);
n_bin = dec2bin(n);
fBytesMax = size(f, 1)/8;
fRankMax = ceil(log2(fBytesMax));
nRankMax = ceil(log2(n));
nBitsSize = size(n, 1);
nRankSize = size(dec2bin(nBitsSize), 2);
if nBitsSize > fBytesMax
temp = 'Too big message'
else
a(1 : fRankMax) = dec2bin(0); % Holds mBitsSize binary representation in lower rank bits
a(fRankMax-nRankSize+1 : end) = dec2bin(nBitsSize);
k = 1;s = 512; % To prevent header modification
for e=(s + 1):1:(s + fRankMax)
f_bin(e, 8) = a(k); % Writing message length in bits into container
k = k + 1;
end
for i=1:1:nBitsSize
x = i*8 - 7 + s + fRankMax; % Position of bit to rewrite
for j=0:1:7 % Displacement
f_bin(x+j, 8) = n_bin(i, j+1); % Encoding process itself
end
end
fwrite(fopen('stego_audio.wav','w'),bin2dec(f_bin));
fclose all;
clear all;
end
Лістинг програми для видобування
f = fread(fopen('stego_audio.wav'));
fclose all;
f_bin = dec2bin (f);
fBytesMax = size(f, 1)/8;
fRankMax = ceil(log2(fBytesMax));
mBitsSize(1:fRankMax) = dec2bin(0);
t = 1; s= 512;
for e=(s+ 1):1:(s + fRankMax)
mBitsSize(t) = f_bin(e, 8);
t = t + 1;
end
mBitsSize = bin2dec(mBitsSize);
for i=1:1:mBitsSize
x = i*8 - 7 + fRankMax + s;
for j=0:1:7
m_bin(i, j+1) = f_bin(x+j, 8);
end
end
fwrite(fopen('textrenew2.doc','w'), bin2dec(m_bin));
fclose all;
clear all;
Висновок
На цій лабораторній роботі я навчився застосовувати стеганографічний метод НЗБ для вбудовування повідомлення в аудіофайл з розширенням .wav секретного текстового повідомлення.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!