Phương pháp LSB

Một phần của tài liệu lsb (Trang 30)

Phương pháp mã hoá LSB là cách đơn giản nhất để nhúng thông tin mâ ̣t vào trong dữ liê ̣u âm thanh số. Phương pháp này sẽ thay thế bít ít quan tro ̣ng nhất (thường là bít cuối) của mỗi mẫu dữ liê ̣u bằng bít thông tin mâ ̣t. Ưu điểm của phương pháp này là dễ cài đă ̣t, tính trong suốt cao và cho phép giấu nhiều dữ liê ̣u. Tuy nhiên với phương pháp này, thông tin mâ ̣t thường không bền vững, dễ bi ̣ thay đổi khi có tác đô ̣ng vào đối tượng chứa.

Phương pháp LSB hoạt động tốt nhất trong các tập tin ảnh số (Pictures) có độ phân giải cao, sử dụng nhiều màu sắc khác nhau, và với tập tin âm thanh

(Audio) có nhiều âm thanh khác nhau và tỷ lệ bít cao. Vì vâ ̣y dữ liê ̣u chứa phải đươ ̣c cho ̣n trước khi giấu thực hiê ̣n ẩn giấu thông tin sử du ̣ng phương pháp LSB. Để tăng đô ̣ an toàn cho kỹ thuâ ̣t này, ta sử du ̣ng bô ̣ sinh số nguyên ngẫu nhiên để sinh ra các vi ̣ trí các mẫu được cho ̣n để giấu tin chứ không phải là các mẫu liên tu ̣c. Bô ̣ sinh số này sử du ̣ng mô ̣t khoá bí mâ ̣t là phần tử khởi ta ̣o của bô ̣ sinh số, khoá bí mâ ̣t này được sử du ̣ng trong cả quá trình giấu tin và trích xuất tin mâ ̣t.

2.2.3. Hê ̣ thính giác HAS

Tai người có thể nghe được âm thanh có tần số từ 16-20000 Hz, ngưỡng nghe của âm thanh phu ̣ thuô ̣c vào tần số và cường đô ̣ của âm. Nếu hai âm thanh có cùng cường đô ̣, âm thanh nào có tần số cao hơn thì “to” hơn. Tai người nghe rõ nhất các âm nằm trong miền 1000-5000 Hz.

Hê ̣ thống thính giác của con người HAS có đă ̣c điểm như mô ̣t bô ̣ phân tích phổ, nó chia dải phổ âm thanh nghe thấy thành các băng tần go ̣i là các “băng tới ha ̣n” (critical bands) như mô ̣t dãy các bô ̣ lo ̣c thông dải. Các băng này có bề rô ̣ng dải thông là 100 Hz với các tần số dưới 500 Hz và tăng theo tần số tín hiê ̣u với các tần số lớn hơn 500 Hz. Bề rô ̣ng dải thông này tăng tới vài Khz khi tần số tín hiê ̣u lớn hơn 10 Khz.

Khi tín hiê ̣u âm thanh bao gồm các tần số gần kề nhau, hê ̣ thống thính giác của con người HAS sẽ tổ hợp chúng, ta ̣o thành mô ̣t nhóm có năng lượng cân bằng. Ngươ ̣c la ̣i, nếu âm thanh bao gồm nhiều tần số khác biê ̣t nhau chúng sẽ được xử lý bằng tách biê ̣t và đô ̣ lớn âm được xác đi ̣nh. Một vấn đề khó khăn ở đây là hệ thống thính giác của con người nghe được các tín hiệu ở các giải tần rộng và công suất lớn nên đã gây khó dễ đối với các phương pháp giấu tin trong âm thanh số. Nhưng thật may là HAS lại kém trong việc phát hiện sự khác biệt giữa các dải tần và công suất, điều này có nghĩa là các âm thanh to, cao tần có thể che giấu được các âm thanh nhỏ thấp một cách dễ dàng. Các mô hình phân

Psignal

Pnoise

SNR =

tích tâm lí đã chỉ ra điểm yếu trên và thông tin này sẽ giúp ích cho việc chọn các âm thanh số thích hợp cho việc giấu tin.

2.2.4. Tỷ lê ̣ tín hiê ̣u trên nhiễu

Tỷ lê ̣ tín hiê ̣u trên nhiễu (thường go ̣i là SNR hay S/N) là mô ̣t biê ̣n pháp đươ ̣c sử du ̣ng để đi ̣nh lượng xem có bao nhiêu tín hiê ̣u bi ̣ hỏng bởi tiếng ồn. Nó đươ ̣c đi ̣nh nghĩa là tỷ lê ̣ năng lượng của tín hiê ̣u gốc so với năng lượng của tín hiê ̣u nhiễu làm hư hỏng. Thường thì SNR được trích dẫn cho các tín hiê ̣u điê ̣n, nhưng nó có thể được áp du ̣ng cho bất kỳ hình thức tín hiê ̣u nào. Trong ít thuâ ̣t ngữ kỹ thuâ ̣t, SNR so sánh mức đô ̣ của mô ̣t tín hiê ̣u mong muốn (như là tiếng nha ̣c) với mức đô ̣ tiếng ồn xung quanh. Nếu tỷ lê ̣ này cao, các tiếng ồn gây khó chi ̣u ít. SNR đôi khi được sử du ̣ng chính thức để chỉ tỷ lê ̣ các thông tin hữu ích cho dữ liê ̣u sai hoă ̣c không liên quan trong mô ̣t cuô ̣c trò chuyê ̣n, trao đổi. Ví du ̣, trong các diễn đàn thảo luâ ̣n trực tuyến và cô ̣ng đồng trực tuyến khác, các bài viết ngoài chủ đề thảo luâ ̣n và các thư rác được coi là “tiếng ồn” là can thiê ̣p vào “tín hiê ̣u” của cuô ̣c thảo luâ ̣n.

SNR đươ ̣c đi ̣nh nghĩa là tỷ lê ̣ năng lượng giữa mô ̣t tín hiê ̣u (có ý nghĩa thông tin) và tiếng ồn nền (tín hiê ̣u không mong muốn):

Với P là năng lượng trung bình. Cả hai tín hiê ̣u và tiếng ồn phải được đo ta ̣i các điểm giống nhau hoă ̣c tương đương trong mô ̣t hê ̣ thống và trong cùng mô ̣t hê ̣ thống băng thông. Nếu tín hiê ̣u và tiếng ồn được đo trên cùng mô ̣t trở kháng, thì SNR có thể thu được bằng cách tính toán bình phương của biên đô ̣ tỷ lê ̣ với công thức như sau:

2

Trong đó A là bình phương trung bình của giá tri ̣ gốc (Root Mean Square hay RMS) biên đô ̣ (ví du ̣: điê ̣n áp RMS). Bởi vì nhiều tín hiê ̣u có mô ̣t pha ̣m vi đô ̣ng, SNRs thường được biểu diễn bằng cách sử du ̣ng logarit decibel (dB). Trong decibel, SNR đươ ̣c tính bằng cách sử du ̣ng tỷ lê ̣ biên đô ̣ như sau:

2

SNRdB = 10log10 Asignal = 20log10

Anoise

Asignal

CHƯƠNG 3 PHÂN TÍCH HỆ THỐNG 3.1. Phân tích các yêu cầu của hê ̣ thống

Khi mà môi trường truyền tin ngày mô ̣t đa da ̣ng, tốc đô ̣ truyền tin nhanh chóng thì cũng xuất hiê ̣n nhiều vấn na ̣n như là ăn cắp, sao chép, rò rỉ thông tin… Cần có phương án để bảo vê ̣ thông tin trước các vấn na ̣n đó, chính vì vâ ̣y mà chương trình ẩn giấu thông tin bằng phương pháp LSB cải tiến được xây dựng. Chương trình với chức năng chính là thực hiê ̣n ẩn giấu và trích xuất thông tin trên tê ̣p WAVE. Chính vì vâ ̣y chương trình yêu cầu phải có những chức năng sau:

- Đo ̣c và ghi thông tin tê ̣p WAVE với da ̣ng chuẩn PCM hai kênh 16 bít. - Đo ̣c thông tin mâ ̣t từ tê ̣p hoă ̣c cho phép nhâ ̣p từ bàn phím và ghi thông

tin mâ ̣t ra tê ̣p.

- Ta ̣o khoá để thực hiê ̣n mã hoá thông tin mâ ̣t và thực hiê ̣n nhúng thông tin mâ ̣t vào tê ̣p WAVE hay trích xuất thông tin mâ ̣t từ tê ̣p WAVE. - Nhúng và trích xuất thông tin mâ ̣t trên tê ̣p WAVE.

- Đánh giá mức đô ̣ ảnh hưởng của viê ̣c ẩn giấu thông tin mâ ̣t trong tê ̣p WAVE.

Bên ca ̣nh đó thì chương trình cũng cần phải có thiết kế go ̣n nhe ̣, giao diê ̣n thân thiê ̣n, dễ sử du ̣ng. Chương trình được xây dựng bằng công nghê ̣ Java với công cu ̣ lâ ̣p trình NetBean IDE 6.9.1.

3.2. Phân tích các yêu cầu về xử lý và dữ liê ̣u

Chương trình tương tác với người sử du ̣ng để tác đô ̣ng lên các đối tượng bao gồm tê ̣p WAVE và thông tin mâ ̣t. Với yêu cầu về chức năng của hê ̣ thống đã được nêu ở trên, các yêu cầu về xử lý và dữ liê ̣u như sau:

Quy trình giấu thông tin:

Hình 3.1. Sơ đồ quy trình giấu thông tin

4. Người dùng thực hiê ̣n chức năng giấu thông tin mâ ̣t vào trong tê ̣p WAVE thì chương trình thực hiê ̣n mã hoá thông tin mâ ̣t với khoá đã nhâ ̣p. Thông tin sau khi được mã hoá sẽ được nhúng từng bít vào các mẫu với tro ̣ng số được quy đi ̣nh trong chế đô ̣ giấu. Trong khi giấu thông tin mâ ̣t, thực hiê ̣n tính toán mức đô ̣ ảnh hưởng (SNR) của viê ̣c giấu tin đối với tê ̣p WAVE gốc. Quá trình giấu hoàn tất, chương trình thực hiê ̣n ghi ra tê ̣p WAVE mới có dung lượng giống với tê ̣p WAVE gốc nhưng có chứa thông tin mâ ̣t, chỉ phân biê ̣t được khi thực hiê ̣n kiểm tra HASHES (MD5 Hash, SHA-1 Hash, CRC-32).

3. Người dùng cho ̣n tê ̣p tin chứa thông tin mâ ̣t hoă ̣c nhâ ̣p trực tiếp thông tin mâ ̣t vào ô nhâ ̣p thông tin mâ ̣t. Chương trình thông báo đô ̣ dài thông tin mâ ̣t hiê ̣n ta ̣i và đô ̣ dài cho phép tối đa của thông tin mâ ̣t.

2. Người dùng cho ̣n tê ̣p tin khoá, cho ̣n chế đô ̣ giấu và nhâ ̣p mâ ̣t khẩu, chương trình thực hiê ̣n tính toán ra tâ ̣p hợp các vi ̣ trí mẫu giấu tin dựa trên thông tin tê ̣p WAVE và khoá theo mô ̣t tiêu chí nào đó.

1. Người sử du ̣ng cho ̣n tê ̣p WAVE dùng để chứa thông tin mâ ̣t, chương trình tiến hành đo ̣c thông tin và hiển thi ̣ các thông tin cơ bản của tê ̣p WAVE hoă ̣c thông báo lỗi nếu đi ̣nh da ̣ng tê ̣p không được hỗ trợ.

Quy trình trích xuất thông tin:

Hình 3.2. Sơ đồ quy trình trích xuất thông tin

Ngoài hai quy trình chính còn có các quy trình phu ̣ với mu ̣c đích ta ̣o dữ liê ̣u đầu vào phu ̣c vu ̣ cho quy trình chính, hoă ̣c nhâ ̣n dữ liê ̣u đầu ra của quy trình chính để sử du ̣ng trong công tác đánh giá. Có hai quy trình phu ̣ là:

Quy trình ta ̣o khoá: người dùng cho ̣n tê ̣p tin WAVE dùng để chứa thông tin mâ ̣t, cho ̣n tê ̣p tin khoá (là mô ̣t tê ̣p tin có đi ̣nh da ̣ng và kích thước bất kì) và nhâ ̣p mâ ̣t khẩu. Sau đó cho ̣n chức năng ta ̣o khoá, chương trình sẽ thực hiê ̣n tính toán tìm ra mô ̣t tâ ̣p các giá tri ̣ là vi ̣ trí của các mẫu dùng để giấu tin trong tê ̣p tin WAVE dựa trên khoá được ta ̣o. Thông tin mâ ̣t cũng sẽ được mã hoá bằng khoá này trước khi được nhúng vào trong tê ̣p tin WAVE.

4. Người dùng có thể chỉnh sửa, sao chép trực tiếp thông tin mâ ̣t hoă ̣c lưu thông tin mâ ̣t ra da ̣ng tê ̣p tin văn bản.

3. Người dùng cho ̣n chức năng trích xuất thông tin mâ ̣t, chương trình thực hiê ̣n tính toán và trích xuất thông tin mâ ̣t từ tê ̣p WAVE có chứa thông tin mâ ̣t sau đó hiển thi ̣ nô ̣i dung thông tin mâ ̣t.

2. Người dùng cho ̣n tê ̣p tin khoá, cho ̣n chế đô ̣ giấu và nhâ ̣p mâ ̣t khẩu, các thông tin này phải giống với thông tin đã được sử du ̣ng trong quá trình giấu thông tin.

1. Người dùng cho ̣n tê ̣p WAVE gốc và tê ̣p WAVE chứa thông tin mâ ̣t, chương trình tiến hành đo ̣c thông tin và hiển thi ̣ các thông tin cơ bản của tê ̣p WAVE.

Quy trình tính toán SNR: chức năng thực hiê ̣n tính toán sự biến đổi năng lươ ̣ng giữa tín hiê ̣u gốc và tín hiê ̣n sau khi nhúng thông tin dựa trên số lượng mẫu bi ̣ tác đô ̣ng. Các giá tri ̣ này được sử du ̣ng để vẽ đồ thi ̣ SRN thể hiê ̣n mức đô ̣ ảnh hưởng của viê ̣c giấu thông tin mâ ̣t đối với tê ̣p tin WAVE gốc.

3.3. Phân tích các yêu cầu về chức năng3.3.1. Sơ đồ chức năng 3.3.1. Sơ đồ chức năng

Dựa vào các yêu cầu của hê ̣ thống cần xây dựng, các yêu cầu về dữ liê ̣u và xử lý có thể vẽ biểu đồ chức năng của chương trình ẩn giấu thông tin bằng phương pháp LSB cải tiến như sau:

Hình 3.3. Sơ đồ chức năng

CHƯƠNG TRÌNH ẨN GIẤU THÔNG TIN BẰNG PHƯƠNG PHÁP LSB CẢI TIẾN

1.0 TÍNH TOÁN KHOÁ

2.0 NHÚNG THÔNG TIN MẬT

3.0 TRÍCH XUẤT

THÔNG TIN MẬT 4.0 TÍNH TOÁN SNR

3.1 Trích Xuất Thông Tin Mâ ̣t 3.2 Giải Mã Thông Tin Mâ ̣t

3.3 Hiển Thi ̣ Thông Tin Mâ ̣t

3.3 Lưu Tê ̣p Thông Tin Mâ ̣t 1.1 Đo ̣c Tê ̣p Tin

WAVE 1.2 Đo ̣c Tê ̣p Tin

Khoá 1.3 Đo ̣c Mâ ̣t

Khẩu 1.3 Ta ̣o Khoá Bí

Mâ ̣t

2.1 Nhâ ̣p Thông Tin Mâ ̣t 3.2 Mã Hoá Thông Tin Mâ ̣t 3.3 Nhúng Thông

Tin Mâ ̣t 3.3 Lưu Tê ̣p Chứa Tin Mâ ̣t

4.1 Tính Toán SNR 4.2 Vẽ Biểu Đồ

SNR 4.3 Lưu Biểu Đồ

Giải thích:

Tính toán khoá: ta ̣o khoá phu ̣c vu ̣ cho quá trình nhúng và trích xuất thông tin mâ ̣t. Các dữ liê ̣u tham gia vào quá trình ta ̣o khoá bao gồm thông tin tê ̣p WAVE đươ ̣c đo ̣c từ tê ̣p WAVE do người dùng chỉ đi ̣nh. Trong quá trình nhúng thông tin mâ ̣t tê ̣p này đóng vai trò là tê ̣p chứa, trong quá trình trích xuất thông tin mâ ̣t tê ̣p này đóng vai trò tê ̣p gốc và cần phải có tê ̣p WAVE chứa thông tin mâ ̣t phu ̣c vu ̣ cho viê ̣c trích xuất thông tin. Ngoài ra còn có thông tin tê ̣p khoá và mâ ̣t khẩu do người dùng nhâ ̣p vào, tất cả các dữ liê ̣u này này phu ̣c vu ̣ cho quá trình ta ̣o khoá.

Nhúng thông tin mâ ̣t: thực hiê ̣n nhúng nô ̣i dung thông tin mâ ̣t vào trong tê ̣p chứa. Thông tin mâ ̣t được lấy từ tê ̣p hoă ̣c do người dùng nhâ ̣p từ bàn phím, sau đó thông tin này được mã hoá bằng khoá đã được ta ̣o. Thông tin mâ ̣t sau khi đươ ̣c mã hoá sẽ được nhúng vào tê ̣p chứa WAVE, vi ̣ trí nhúng từng bít tin của thông tin mâ ̣t đươ ̣c quy đi ̣nh bởi khoá. Sau khi nhúng thông tin mâ ̣t thành công thì ghi tê ̣p WAVE mới có chứa thông tin mâ ̣t.

Trích xuất thông tin mâ ̣t: thực hiê ̣n trích xuất nô ̣i dung thông tin mâ ̣t từ tê ̣p WAVE có chứa thông tin mâ ̣t. Sử du ̣ng khoá trong quá trình nhúng thông tin mâ ̣t để thực hiê ̣n trích xuất thông tin mâ ̣t, thông tin mâ ̣t sau khi được trích xuất đang ở da ̣ng mã hoá. Sử du ̣ng khoá để giải mã thu la ̣i thông tin mâ ̣t ban đầu, có thể chỉnh sửa, sao chép thông tin mâ ̣t trên chương trình hoă ̣c lưu la ̣i thành tê ̣p.

Tính toán SNR: trong thao tác trên tê ̣p thông tin kỹ thuâ ̣t số, đă ̣c biê ̣t là tê ̣p WAVE thì có mô ̣t tỉ số quan tro ̣ng đánh giá viê ̣c tái hiê ̣n la ̣i tín hiê ̣u gốc là SNR. Chương trình thực hiê ̣n tính toán SNR và thể hiê ̣n trên đồ thi ̣ trực quan, bên ca ̣nh đó còn cho phép lưu la ̣i đồ thi ̣ thông tin SNR dưới da ̣ng hình ảnh.

3.3.2. Sơ đồ luồng dữ liê ̣u a. Sơ đồ ngữ cảnh

Hình 3.4. Sơ đồ ngữ cảnh

Luồng dữ liê ̣u:

Đối với người giấu: dữ liê ̣u bao gồm tê ̣p WAVE gốc, thông tin mâ ̣t và các thông tin cần thiết như tê ̣p tin khoá và mâ ̣t khẩu được người giấu đưa vào chương trình để thực hiê ̣n công viê ̣c ẩn giấu thông tin, dữ liê ̣u trả về là tê ̣p WAVE chứa thông tin mâ ̣t bên trong.

Đối với người nhâ ̣n: dữ liê ̣u bao gồm tê ̣p WAVE chứa thông tin mâ ̣t và các thông tin giống với quá trình giấu tin được thực hiê ̣n bởi người giấu bao gồm tê ̣p WAVE gốc, tê ̣p tin khoá và mâ ̣t khẩu (thông tin này được cung cấp bởi người giấu). Được đưa vào chương trình để thực hiê ̣n công viê ̣c trích xuất thông tin, dữ liê ̣u trả về là thông tin mâ ̣t.

Đối với người thứ ba: là người không có quyền truy câ ̣p vào thông tin mâ ̣t đươ ̣c giấu trong tê ̣p WAVE. Do người này không có các thông tin cần thiết mô ̣t cách chính xác (tê ̣p WAVE gốc, tê ̣p khoá và mâ ̣t khẩu) nên viê ̣c đưa thông tin vào chương trình là sai lê ̣ch, nên kết quả trả về là sai hoă ̣c vô nghĩa.

Tê ̣p WAVE gốc và tê ̣p WAVE chứa tin mâ ̣t, mâ ̣t khẩu, tê ̣p khoá

0 ẨN GIẤU THÔNG TIN BẰNG PHƯƠNG PHÁP LSB CẢI TIẾN

Tê ̣p WAVE gốc, mâ ̣t khẩu, tin mâ ̣t

Tê ̣p WAVE chứa thông tin mâ ̣t

Thông tin mâ ̣t

Tấn công tìm cách lấy thông tin

Thông tin vô nghĩa

NGƯỜI GIẤU NGƯỜI NHẬN

b. Sơ đồ luồng dữ liê ̣u mức khác

Hình 3.5. Sơ đồ luồng dữ liệu mức đỉnh

Luồng dữ liê ̣u:

Một phần của tài liệu lsb (Trang 30)

Tải bản đầy đủ (DOC)

(86 trang)
w