Phân tích các yêu cầu về chức năng

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 37)

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 Thị Thông Tin Mật

3.3 Lưu Tệp Thông Tin Mật 1.1 Đọc Tệp Tin

WAVE 1.2 Đọc Tệp Tin

Khoá 1.3 Đọc Mật

Khẩu 1.3 Tạ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á: tạo khoá phục vụ 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 tạo khoá bao gồm thông tin tệp WAVE được đọc từ tệp WAVE do người dùng chỉ đị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 phục vụ 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 phục vụ cho quá trình tạ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 tạo. Thông tin mật sau khi được mã hoá sẽ được nhúng vào tệp chứa WAVE, vị trí nhúng từng bít tin của thông tin mật được quy đị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ử dụ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 ở dạng mã hoá. Sử dụng khoá để giải mã thu lạ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 lạ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 trọng đánh giá việc tái hiện lạ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 đồ thị trực quan, bên cạnh đó còn cho phép lưu lại đồ thị thông tin SNR dưới dạng hình ảnh.

3.3.2. Sơ đồ luồng dữ liệua. Sơ đồ ngữ cảnh 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á (adsbygoogle = window.adsbygoogle || []).push({});

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)

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 (adsbygoogle = window.adsbygoogle || []).push({});

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

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) (adsbygoogle = window.adsbygoogle || []).push({});

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:

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 (adsbygoogle = window.adsbygoogle || []).push({});

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

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 37)