1. Introduce
  2. Hướng dẫn làm bài steg-fhss-extract
    1. tải lab
    2. khởi tạo lab trên labtainer:
    3. Các bước thực hiện bài lab

Introduce

FHSS - Tách tin trong âm thanh sử dụng kỹ thuật trải phổ nhảy tần

Hướng dẫn làm bài steg-fhss-extract

tải lab

Vào /home/student/labtainer/labtainer-student và gõ lệnh sau trên terminal:

imodule https://github.com/TuTran21195/steg-labs/raw/refs/heads/main/steg-fhss-extract/imodule.tar

khởi tạo lab trên labtainer:

labtainer -r steg-fhss-extract

Các bước thực hiện bài lab

Toàn bộ câu lệnh cần thực hiện như sau:

python3 step0_add_noise.py stego_audio.wav

python3 step1_generate_hopping_pattern.py 96 PTITsecretkey123
python3 step2_extract_bits.py noisy.wav hopping_pattern.txt
python3 step3_bits_to_message.py extracted_bits.txt

python3 step4_calculate_ber.py extracted_bits.txt original_bits.txt

=========Đánh giá file âm thanh dài hơn và chứa nhiều bit bản tin hơn===========
python3 step0_add_noise.py stego_audio2.wav

python3 step1_generate_hopping_pattern.py 96 PTITsecretkey123
python3 step2_extract_bits.py noisy.wav hopping_pattern.txt
python3 step3_bits_to_message.py extracted_bits.txt

python3 step4_calculate_ber.py extracted_bits.txt original_bits2.txt

Mở rộng: Ở trong file step0_add_noise.py có phần như sau:

	# 00_Thêm nhiễu trắng (giả lập nhiễu kênh truyền)
    data_noisy = add_gaussian_noise(data, snr_db=20)

	# Hãy cố gắng test với nhiều hệ số khác nhau để thấy được khả năng chống chịu của phương pháp fhss này trước tác động của nhiễu thông qua BER tại bước cuối.
    # 01_nhiễu trắng + thêm nhiễu xung nhẹ (Giả lập môi trường nhiễu khá lớn khi có  nhiễu cùng tác động lên bản âm thanh)
    # data_noisy = add_impulse_noise(data_noisy, num_impulses=15, amplitude= 0.5)

    # 02_nhiễu trắng + thêm nhiễu xung trung bình (Giả lập môi trường nhiễu mạnh -> có thể là do bị tấn công chèn nhiễu)
    # data_noisy = add_impulse_noise(data_noisy, num_impulses=30, amplitude= 0.7)

    # 03_Nhiễu trắng + thêm Nhiễu xung cực mạnh (giả lập môi trường nhiễu cực mạnh -> tình huống rất rất tệ, gần như là bản âm thanh đã bị phá hoại)
    # data_noisy = add_impulse_noise(data_noisy, num_impulses=50, amplitude=2.5)

Các bạn cần lần lượt thử nghiệm với các loại nhiễu khác nhau nhé, đầu tiên là chỉ có  00_Thêm nhiễu trắng sau đó các bạn bỏ comment câu lệnh dưới dòng 01_nhiễu trắng + thêm nhiễu xung nhẹ  đi.

Với thí nghiệm tiếp theo thì các bạn comment lại dòng lệnh dưới dòng 01_nhiễu trắng + thêm nhiễu xung nhẹ  vừa rồi để đổi sang uncomment loại nhiễu tiếp theo 02_nhiễu trắng + thêm nhiễu xung trung bình. Tương tự với dòng còn lại.

Việc này sẽ giúp các bạn hiểu được nhiễu sẽ tác động thế nào đến phương pháp giấu tin này (Sau khi thử nghiệm bạn sẽ thấy phương pháp này chống chịu với nhiễu khá tốt, nếu như kết hợp thêm với các loại ECC thì sẽ giảm được BER)