DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Приховування даних в аудіо файлах

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
Комп’ютерні науки
Кафедра:
Захист інформації

Інформація про роботу

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Методи і засоби стеганографії
Група:
КН-1
Коротко про документ

Про що ця робота

У лабораторній роботі досліджено методи приховування конфіденційної інформації в аудіофайлах за допомогою модифікації найменш значущих бітів. Наведено теоретичні відомості, програмну реалізацію на Python та результати тестування.

У роботі розглядаються

  • Стеганографія
  • Аудіоконтейнери
  • Найменш значущі біти
  • Кодування даних
  • Цифрова обробка сигналів
  • Мова програмування Python

Зміст і розділи

  1. Мета роботи
  2. Теоретичні відомості
  3. Код програми
  4. Аналіз файлу до і після вшивання даних
  5. Висновок
Для кого:Студенти технічних спеціальностей, які вивчають методи та засоби захисту інформації і стеганографії.
Викладачі:Іванюк В. М.

Ключові поняття

стеганографіяаудіофайлнайменш значущі бітидискретизаціячастотакодуваннядекодуванняфреймсемпл

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра ЗІ З В І Т до лабораторних робіт №3 з курсу «Методи і засоби стеганографії» на тему: «Приховування даних в аудіо файлах» мета роботи – ознайомитися із методами приховування інформації в аудіо файлах. Теоретичні відомості Кодування найменш значущих біт(тимчасова область) Кодування молодших розрядів є найпростішим способом введення конфіденційних даних в інші структури даних. Використовуючи звуковий сигнал, шляхом заміни НЗБ (найменших значущих бітів) кожної точки виконуються вибірки, представленою двійковою послідовністю, можна зашифрувати великий об’єм інформації. Теоретично, пропускна здатність стеганоканалу складає 1 кб\сек на 1 кГц в каналі без перешкод, бітова швидкість передачі даних складає 8 кб\сек в послідовності, яка оцифрована з частотою 8 кГц, і 44 кб\сек в послідовності з частотою дискретизації 44 кГц. Але платою за високу пропускну здатність каналу є відчутний на слух низькочастотний шум. Чутливість даного шуму безпосередньо залежить від складу сигнала-контейнера. Наприклад, шум глядачів під час ефіру спортивного змагання в достатній мірі маскував би шум найменших біт, модифікованих кодуванням. Однак вказаний шум буде відчутний на слух при використанні в якості контейнера аудіо записи гри струнного квартету. Для компенсації внесених спотворень доцільно буде використання адаптивної атенюації даних. Головним недоліком методу кодування НЗБ є його слабка стійкість до стороннього впливу. Вбудована інформація може бути знищена із-за шумів в каналі, в результаті пере дискретизації вибірки і т п..., за виключенням випадків, коли інформація вбудовувалась з внесенням надлишковості. Однак останнє, забезпечуючи достатню стійкість до перешкод, призводить до зменшення швидкості передачі даних, в основному на 1-2 порядки. На практиці метод корисний тільки в замкнутих, повністю цифрових середовищах, не потребуючих додаткового перетворення. Визначення довжини можливого повідомлення Довжина = Число фреймів* бітність фреймів * число семплів / 8 Код програми import wave import struct def simvol_v_int(text): s=[ord(x) for x in text] return s def int_simvol(int_list): word="" s=[chr(x) for x in int_list] for x in s: word+=x return word def codef(way,text): values=[] wav = wave.open(way, 'r') dani=wav.getparams() #print dani ks=str(dani[3])+"B" #print ks s=struct.unpack(ks,wav.readframes(dani[3])) #print s[:100] s=list(s) #print s[:100] wav.close() wav1=wave.open(way, 'w') wav1.setparams(dani) k=simvol_v_int(text)+[96,96,96] #print k for x in range(7,len(s)-1,8): if k==[]: break s[x]=k[0] k=k[1:] #print s[:100] for x in range(0,len(s)): packed_value = struct.pack('h', s[x]) values.append(packed_value) for x in range(0,len(values)): values[x]=values[x][0] value_str = ''.join(values) wav1.writeframes(value_str) wav1.close() def decoder(way): wavq = wave.open(way, 'r') dani=wavq.getparams() ks=str(dani[3])+"B" s=struct.unpack(ks,wavq.readframes(dani[3])) #l=wavq.readframes(dani[3]) s=list(s) k=[] for x in range(7,len(s),8): k.append(s[x]) print k[0:100] m=k[0:k.index(96)] print m text =int_simvol(m) wavq.close() return text def main(): print "Hi user" vubir=raw_input("1- coder 2 - decoder: ") if vubir=='1': way=raw_input("Get a way") text=raw_input("Get a text") codef(way,text) elif vubir=="2": way=raw_input("Get a way") print decoder(way) else: print "Vvedit pravilniy nomer" main() Аналіз файлу до вшивання даних  Аналіз даних після вшивання даних  Результат роботи програми Закодування  Декодування  Висновок: Під час виконання лабораторної роботи я навчився приховувати інформацію в wav файлах, дослідивши аналізатором файл до і після приховування була виявлено, що дуже важко помітити зміни в файлах коли дані приховуються в кожен 8 фрейм
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!