Sơ đồ luồng dữ liệu

Một phần của tài liệu ẨN GIẤU THÔNG TIN BẰNG PHƯƠNG PHÁP LSB (LEAST SIGNIFICANT BIT) CẢI TIẾN (Trang 39)

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:

Đối với người giấu: người giấu thực đưa dữ liệu đầu vào bao gồm thông tin tệp WAVE gốc, tệp khoá và mật khẩu vào chương trình thông qua chức năng tính toán khoá, dữ liệu đầu ra là khoá bí mật và mảng vị trí giấu tin. Dữ liệu này là đầu vào của chức năng nhúng thông tin mật, kết hợp với thông tin mật do người giấu đưa vào, kết quả trả về là tệp WAVE chứa thông tin mật.

Đối với người nhận: người nhận thực hiện đưa dữ liệu đầu vào là các thông tin giống với quá trình giấu tin và tệp WAVE chứa thông tin mật, thực hiện chức năng tính toán khoá, dữ liệu trả về là khoá bí mật và mảng vị trí giấu tin. Là dữ liệu đầu vào của chức năng trích thông tin mật, dữ liệu trả về của chức năng này là thông tin mật.

1 TÍNH TOÁN KHOÁ 2 NHÚNG THÔNG TIN MẬT 3 TRÍCH THÔNG TIN MẬT 4 TÍNH TOÁN SNR

Tệp WAVE chứa thông tin mật

Giá trị SNR

Tệp WAVE gốc, mật khẩu, tệp khoá

Yêu cầu tính toán SNR Đồ thị SNR

Thông tin mật

Thông tin mật Khoá bí mật

mảng vị trí

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

K ho á bi ́ m ật m ản g vi ̣ tr í NGƯỜI GIẤU

Chức năng tính toán khoá:

Hình 3.6. Sơ đồ luồng dữ liệu (chức năng 1) (adsbygoogle = window.adsbygoogle || []).push({});

Diễn giải:

Người dùng bao gồm người giấu và người nhận thông tin, trước khi thực hiện chức năng nhúng hoặc trích xuất thông tin mật thì cần phải thực hiện chức năng tạo khoá bí mật.

Người dùng nhập chọn tệp tin WAVE gốc, nếu tệp tin này không tồn tại hoặc có định dạng không được hỗ trợ thì chức năng Đọc Tệp Tin WAVE sẽ đưa ra thông báo yêu cầu nhập lại. Đối với mật khẩu và tệp tin khoá thì quá trình cũng diễn ra tương tự.

Khi các thông tin nhập vào là đầy đủ và được chấp nhận thì thực hiện quá trình đọc để lấy thông tin phục vụ cho quá trình Tạo Khoá, đầu ra của chức năng này là khoá bí mật được sử dụng trong quá trình nhúng hoặc trích xuất thông tin mật sau này. Hoàn thành quá trình tạo khoá.

1.1ĐỌC TỆP ĐỌC TỆP TIN WAVE 1.4 TẠO KHOÁ 1.2 ĐỌC TỆP TIN KHOÁ 1.3 NHẬP MẬT KHẨU

Chọn tệp WAVE gốc

Nhập mật khẩu

Thông tin tệp WAVE

Nội dung mật khẩu Thông tin

tệp khoá

NGƯỜI DÙNG

Yêu cầu lại nhập mật khẩu Yêu cầu tệp WAVE gốc

Yêu cầu tệp tin khoá

Chức năng nhúng thông tin mật:

Hình 3.7. Sơ đồ luồng dữ liệu (chức năng 2)

Diễn giải:

Người giấu thực hiện nhập thông tin mật trước khi thực hiện chức năng Nhúng Thông Tin Mật, nếu thông tin mật là trống thì chức năng Nhập Thông Tin Mật yêu cầu nhập thông tin mật. Thông tin mật sau khi nhập vào sẽ được mã hoá và khoá bí mật lấy từ chức năng Tính Toán Khoá được đưa vào chức năng Nhúng Thông Tin Mật, quá trình nhúng thực hiện thành công thì kết quả đầu ra là dữ liệu tệp WAVE có chứa thông tin mật. Đây là dữ liệu đầu vào của chức năng Ghi Tệp Chứa Thông Tin Mật, đầu ra của chức năng này là tệp WAVE có chứa thông tin mật. Hoàn thành quá trình nhúng thông tin mật vào tệp tin WAVE gốc. 2.4 GHI TỆP CHỨA TIN MẬT 2.3 NHÚNG THÔNG TIN MẬT 2.2 MÃ HOÁ THÔNG TIN MẬT 2.1 NHẬP THÔNG TIN MẬT Nhập thông tin mật T hô ng tin m ật

Thông tin bị mã hoá

D ữ liê ̣u ch ứa tin m ật Tệp chứa tin mật

NGƯỜI GIẤU Yêu cầu nhập

Chức năng trích thông tin mật:

Hình 3.8. Sơ đồ luồng dữ liệu (chức năng 3)

Diễn giải:

Trước khi thực hiện chức năng này người nhận cần thực hiện chức năng Tính Toán Khoá trước. Sau đó người nhận thực hiện nhập tệp WAVE có chứa thông tin mật vào, nếu tệp tin WAVE không tồn tại thì yêu cầu nhập lại. Thông tin nhập vào đầy đủ thì thực hiện quá trình trích xuất thông tin mật, đầu ra là thông tin mật ở dạng bị mã hoá và đây là dữ liệu đầu vào của chức năng Giải Mã Thông Tin Mật. Thông tin mật sau khi được giải mã được hiện thị dạng văn bản kết thúc quá trình trích xuất thông tin mật, người dùng có thể thực hiện chức năng Lưu Thông Tin Mật để thực hiện việc lưu thông tin mật ra dạng tệp văn bản. 3.4 LƯU THÔNG TIN MẬT 3.2 GIẢI MÃ THÔNG TIN MẬT 3.1 TRÍCH THÔNG TIN MẬT 3.3 HIỆN THÔNG TIN MẬT

Thông tin mật dạng văn bản

Thông tin mật dạng nhị phân

Thông tin mật dạng mã hoá

Thông tin mật dạng tệp Tệp WAVE chứa

thông tin mật

Yêu cầu thông tin mật (adsbygoogle = window.adsbygoogle || []).push({});

Thông tin mật dạng nhị phân

NGƯỜI NHẬN

Yêu cầu lưu thông tin mật

Y êu c ầu c un g câ ́p đu ̉ th ôn g tin

Chức năng tính toán SNR:

Hình 3.9. Sơ đồ luồng dữ liệu (chức năng 4)

Diễn giải:

Người giấu sau khi thực hiện giấu thông tin mật thành công, nếu muốn xem kết quả đánh giá mức độ ảnh hưởng của việc giấu tin mật lên đối tượng gốc có thể thực hiện chức năng Tính Toán SNR. Nếu chưa thực hiện giấu thông tin, chức năng yêu cầu thực hiện giấu thông tin để có dữ liệu tính toán. Thông tin sau khi được tính toán sẽ được vẽ biểu đồ SNR hiển thị kết quả đối với người giấu. Người giấu có thể chọn chức năng Lưu Biểu Đồ SNR để thực hiện lưu kết quả sang dạng tệp tin hình ảnh.

4.1 TÍNH TOÁN SNR 4.2 VẼ BIỂU ĐỒ SNR 4.3 LƯU BIỀU ĐỒ SNR

Yêu cầu tính toán SNR Tệp ảnh thể hiện

biểu đồ SNR

Thông tin phục vụ vẽ biểu đồ SNR Thông tin biểu đồ

SNR

Biểu đồ SNR

NGƯỜI GIẤU

Yêu cầu lưu biểu đồ SNR

Yêu cầu thông tin biểu đồ SNR

Yêu cầu thông tin SNR

CHƯƠNG 4 THIẾT KẾ HỆ THỐNG 4.1. Thiết kế giao diện

4.1.1. Giao diện menu chính

Hình 4.1. Giao diện menu chính

Diễn giải:

Giao diện menu chính của chương trình gồm có ba mục là “Tệp Tin”, “Chức Năng” và “Trợ Giúp”. Chi tiết của từng mục menu:

Tệp Tin: bao gồm 6 mục với chức năng thực hiện các yêu cầu chuyên biệt như Chọn tệp tin WAVE gốc, Chọn tệp tin WAVE chứa thông tin mật, Chọn tệp tin khoá, Chọn tệp tin mật, Chọn thư mục ra và Thoát.

Chức Năng: bao gồm 4 mục với chức năng thực hiện các yêu cầu chính của chương trình như Giấu thông tin, Lấy thông tin, Biểu đồ SNR và Kiểm Tra Bít Lỗi.

Trợ Giúp: bao gồm 2 mục với chức năng thực hiện các yêu cầu hỗ trợ người dùng như Trợ Giúp và Thông Tin chương trình.

Tất cả các mục con trong các mục menu chính đều có thêm biểu tượng (icon) và phím tắt đối với từng chức năng cụ thể.

4.1.2. Giao diện đặc thù theo chức nănga. Giao diện chức năng tạo khoá a. Giao diện chức năng tạo khoá

Hình 4.2. Giao diện chức năng tạo khoá

Diễn giải: (adsbygoogle = window.adsbygoogle || []).push({});

Giao diện chức năng tạo khoá gồm có bốn khu vực là Chọn tệp tin WAVE gốc, Chọn tệp tin WAVE chứa thông tin mật, Thiết lập chế độ giấu và chọn tệp tin khoá, Nhập mật khẩu và thực hiện lấy khoá.

Khu vực Chọn tệp tin WAVE gốc và Chọn tệp tin WAVE chứa thông tin mật có giao diện giống nhau. Bao gồm một ô nhập đường dẫn tới thư mục chứa tệp tin WAVE tương ứng, một nút bấm để mở hộp thoại chọn đường dẫn và một nhãn thông báo kết quả trả về. Kết quả trả về là nội dung của tệp WAVE hoặc thông báo lỗi đối với tệp WAVE định dạng mà chương trình không hỗ trợ.

Khu vực Thiết lập chế độ giấu và chọn tệp tin khoá bao gồm ô một ô nhập đường dẫn tới thư mục chứa tệp tin khoá tương ứng, một nút bấm để mở hộp thoại chọn đường dẫn và một nhãn thông báo kết quả trả về. Kết quả trả về là thông báo lỗi đối với trường hợp đường dẫn tới tệp tin khoá không tồn tại hoặc lỗi vào ra dữ liệu.

Khu vực Nhập mật khẩu và thực hiện lấy khoá bao gồm hai ô nhập mật khẩu và nhập lại mật khẩu, một nhãn thông báo lỗi nếu như hai mật khẩu không trùng khớp. Một nút bấm thực hiện tính toán khoá sau khi nhập đầy đủ thông tin.

b. Giao diện chức năng nhúng và trích xuất dữ liệu

Hình 4.3. Giao diện chức năng nhúng và trích xuất dữ liệu

Diễn giải:

Giao diện chức năng nhúng và trích xuất dữ liệu bao gồm hai khu vực là nhập và các nút thực hiện chức năng. Trong thực hiện giấu tin có hai chế độ nhập thông tin mật là chế độ nhập từ Tệp Tin chứa thông tin mật hoặc nhập trực tiếp thông tin mật dưới dạng Văn Bản.

Đối với chế độ nhập thông tin mật từ tệp tin, có thể nhập trực tiếp đường dẫn tới thư mục chứa tệp thông tin mật hoặc sử dụng nút bấm để mở hộp thoại chọn đường dẫn.

Đối với chế độ nhập trực tiếp thông tin mật dạng Văn Bản, người dùng có thể nhập trực tiếp vào ô nhập thông tin mật. Đối với trường hợp trích xuất thông tin, có thể chọn nút bấm Lưu để lưu trông tin mật ra dạng tệp tin văn bản.

Các nút bấm Giấu Tin, Lấy Tin và Hiện SNR thực hiện các chức năng tương ứng khi được kích hoạt.

c. Giao diện chức năng đánh giá SNR

Hình 4.4. Giao diện chức năng đánh giá SNR

Diễn giải:

Sau khi thực hiện nhúng thông tin mật vào tệp tin chứa thành công, người dùng có thể thực hiện chức năng đánh giá mức độ nhiễu của thông tin mật tới chất lượng tín hiệu gốc. Giao diện hiển thị là một đồ thị hai chiều với trục tung thể hiện giá trị của SNR và trục hoành thể hiện giá trị của SNR dựa trên số lượng mẫu dữ liệu âm thanh sử dụng.

Hiển thị chế độ và phương pháp giấu cũng như giá trị trung bình trong hộp thoại “SNR chế độ giấu” đối với từng trường hợp chọn chế độ giấu cụ thể và phương pháp điều chỉnh hoặc không điều chỉnh bít.

d. Giao diện tổng thể chương trình

Hình 4.5. Giao diện tổng thể chương trình

Diễn giải:

Giao diện tổng thể chương trình là sự tổng hợp, sắp xếp có hợp lý của các giao diện nhỏ được thiết kế ở trên. Giao diện này không bao gồm Giao diện chức năng đánh giá SNR. Ngoài ra còn có thêm giao diện của chức năng chọn đường dẫn thư mục ra của tệp tin chứa thông tin mật. Trong quá quá trình thực hiện nhúng thông tin mật vào tệp WAVE gốc, tệp WAVE chứa thông tin mật sẽ được ghi ra một tệp tin mới mà không thực hiện ghi vào tệp tin gốc. Chỉ định đường dẫn nơi chứa tệp tin này bằng cách nhập vào ô đường dẫn hoặc chọn nút bấm Chọn để mở hộp thoại chọn đường dẫn. Có thể chọn nút Mở để mở cửa sổ hiển thị thư mục được chỉ định trong đường dẫn.

4.2. Thiết kế các module chương trình4.2.1. Mô tả thuật toán 4.2.1. Mô tả thuật toán

Ẩn giấu thông tin bằng phương pháp LSB là phương pháp giấu tin vào bít ít quan trọng trong mẫu là bít có trọng số là 0, giá trị tác động của bít này lên mẫu là ±1 đơn vị. Với phạm vi của đề tài là thực hiện ẩn giấu thông tin bằng phương pháp LSB cải tiến nên thực hiện giấu tin vào các bít có trọng số cao hơn như là 1, 2, 3… và trọng số cao nhất mà đề tài này đề cập đến là 6, giá trị tác động của bít này lên mẫu là ±64 đơn vị. Bên cạnh đó ngoài việc thực hiện giấu tin vào các bít có trọng số cao, phương pháp cải tiến này còn thực hiện điều chỉnh giá trị của các bít có trọng số thấp hơn nhằm làm giảm thiểu việc tác động đến tín hiệu gốc. Cụ thể là nếu tăng hay giảm giá trị của mẫu (thông qua việc thay đổi trạng thái của bít chứa tin) sẽ làm ảnh hưởng đến chất lượng tín hiệu gốc. Để hạn chế điều này, khi tăng hay giảm giá trị của mẫu tại bít tin giấu thông tin mật thì đồng thời tiến hành giảm hay tăng giá trị của mẫu tại các bít tin đằng sau nó để sao cho việc tác động lên tín hiệu gốc là ít nhất.

Việc tệp WAVE chứa thông tin mật bị tấn công là điều hoàn toàn có thể xảy ra, khi bị tấn công việc cộng thêm hoặc trừ đi một giá trị nhỏ vào mẫu có thể tác động vào các bít thấp dẫn đến tác động đến các bít cao hơn. Điều này làm sai lệch giá trị của bít thông tin mật được giấu, dẫn đến nhận được thông tin sai trong quá trình trích xuất. Vì vậy tiến hành đặt một bít đệm có trạng thái giống trạng thái của bít chứa bít tin mật, bít này có trọng số nằm ngay sau trọng số của bít chứa bít tin mật.

Như vậy với trường hợp xấu nhất sảy ra thì tín hiệu gốc bị ảnh hưởng ±96 đơn vị trong chế độ giấu bít ở trọng số 6 (trong trường hợp nhúng bít tin mật giá trị 1 vào byte dạng xx001111 và bít tin mật giá trị 0 vào byte dạng xx110000). Trường hợp tốt nhất sảy ra thì tín hiệu gốc không bị thay đổi (giấu bít tin 1 vào byte dạng xx110000 hoặc bít 0 vào byte dạng xx001111).

Tệp WAVE (ở dạng chuẩn) mà chương trình tác động đều có hai kênh, tần số lấy mẫu là 44100Hz, số bít mỗi mẫu là 16 nên có số lượng mẫu là 44100*2*t với t là thời lượng của âm thanh, nghĩa là 1s phát âm thanh cần 88200 mẫu. Nếu thực hiện giấu lần lượt các bít tin vào các mẫu liên tiếp thì sẽ giấu được 11025 bytes thông tin mật tương đương với gần 6000 ký tự unicode 2 bytes trong 1s phát âm thanh. Tuy nhiên việc đó sẽ làm cho tín hiệu gốc bị thay đổi nhiều và dễ dàng bị trích xuất thông tin một cách không hợp pháp.

Để giải quyết vấn đề này chương trình thực hiện mã hoá thông tin mật bằng một khoá bí mật trước khi thực hiện nhúng. Thêm vào đó sẽ rải các bít tin vào các vị trí không liên tục nhau trong mảng các giá trị mẫu, các bước nhảy này cũng được quy định bởi khoá bí mật. Thực hiện tính toán lần thứ nhất trên mảng dữ liệu mẫu của tệp WAVE gốc để lấy ra các giá trị vị trí của mẫu phù hợp với khoá. Tuy nhiên trong mảng các vị trí được lấy ra có các giá trị mẫu bằng 0, nghĩa là âm thanh lúc này ở trạng thái im lặng. Việc giấu tin vào mẫu này sẽ làm

Một phần của tài liệu ẨN GIẤU THÔNG TIN BẰNG PHƯƠNG PHÁP LSB (LEAST SIGNIFICANT BIT) CẢI TIẾN (Trang 39)