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 lsb (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 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:

Đố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 vi ̣ 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 vi ̣ 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á tri ̣ SNR

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

Yêu cầu tính toán SNR Đồ thi ̣ SNR

Thông tin mâ ̣t

Thông tin mâ ̣t Khoá bí mâ ̣t

mảng vi ̣ trí

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

K ho a ́ bí m ật m a ̉n g vị tr i ́ 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 ta ̣o khoá bí mâ ̣t.

Người dùng nhâ ̣p cho ̣n tê ̣p tin WAVE gốc, nếu tê ̣p tin này không tồn ta ̣i hoă ̣c có đi ̣nh da ̣ng không được hỗ trợ thì chức năng Đo ̣c Tê ̣p Tin WAVE sẽ đưa ra thông báo yêu cầu nhâ ̣p la ̣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 đo ̣c để lấy thông tin phu ̣c vu ̣ cho quá trình Ta ̣o Khoá, đầu ra của chức năng này là khoá bí mâ ̣t được sử du ̣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 ta ̣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

Cho ̣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 la ̣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 bi ̣ 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 ta ̣i thì yêu cầu nhâ ̣p la ̣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 ở da ̣ng bi ̣ 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 thi ̣ da ̣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 da ̣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 da ̣ng văn bản

Thông tin mâ ̣t da ̣ng nhi ̣ phân

Thông tin mâ ̣t da ̣ng mã hoá

Thông tin mâ ̣t da ̣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 da ̣ng nhi ̣ 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 thi ̣ kết quả đối với người giấu. Người giấu có thể cho ̣n chức năng Lưu Biểu Đồ SNR để thực hiê ̣n lưu kết quả sang da ̣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 phu ̣c vu ̣ 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 mu ̣c là “Tê ̣p Tin”, “Chức Năng” và “Trợ Giúp”. Chi tiết của từng mu ̣c menu:

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

Chức Năng: bao gồm 4 mu ̣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 mu ̣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 mu ̣c con trong các mu ̣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 cu ̣ thể.

4.1.2. Giao diê ̣n đă ̣c thù theo chức năng

a. Giao diê ̣n chức năng ta ̣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 ta ̣o khoá gồm có bốn khu vực là Cho ̣n tê ̣p tin WAVE gốc, Cho ̣n tê ̣p tin WAVE chứa thông tin mâ ̣t, Thiết lâ ̣p chế đô ̣ giấu và cho ̣n tê ̣p tin khoá, Nhâ ̣p mâ ̣t khẩu và thực hiê ̣n lấy khoá.

Khu vực Cho ̣n tê ̣p tin WAVE gốc và Cho ̣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ư mu ̣c chứa tê ̣p tin WAVE tương ứng, mô ̣t nút bấm để mở hô ̣p thoa ̣i cho ̣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 đi ̣nh da ̣ng mà chương trình không hỗ trợ.

Khu vực Thiết lâ ̣p chế đô ̣ giấu và cho ̣n tê ̣p tin khoá bao gồm ô mô ̣t ô nhâ ̣p đường dẫn tới thư mu ̣c chứa tê ̣p tin khoá tương ứng, mô ̣t nút bấm để mở hô ̣p thoa ̣i cho ̣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 ta ̣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 la ̣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 da ̣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ư mu ̣c chứa tê ̣p thông tin mâ ̣t hoă ̣c sử du ̣ng nút bấm để mở hô ̣p thoa ̣i cho ̣n đường dẫn.

Đối với chế đô ̣ nhâ ̣p trực tiếp thông tin mâ ̣t da ̣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ể cho ̣n nút bấm Lưu để lưu trông tin mâ ̣t ra da ̣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 hoa ̣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 thi ̣ là mô ̣t đồ thi ̣ hai chiều với tru ̣c tung thể hiê ̣n giá tri ̣ của SNR và tru ̣c hoành thể hiê ̣n giá tri ̣ của SNR dựa trên số lươ ̣ng mẫu dữ liê ̣u âm thanh sử du ̣ng.

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

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

(86 trang)
w