3
BTTH03: n dœ li»u trên văn b£n b‹ng phương pháp chèn kho£ng tr›ng Môn: ADL & CSTT ============= “Smile, breathe, and go slowly.” – Thich Nhat Hanh Trƒn Trung Kiên Email: [email protected] Ngày 25 tháng 11 năm 2013 1 Phƒn code 1.1 Phương phép chèn kho£ng tr›ng Trong phƒn này, b/n s‡ cài đt phương pháp 'n dœ li»u trên văn b£n b‹ng cách chèn kho£ng tr›ng. C th”, b/n s‡ code 2 hàm: function embedSpace(coverFile, msgFile, stegoFile): hàm nhúng dœ li»u. Trong đó: coverFile: file văn b£n. msgFile: file chøa chuØi message cƒn nhúng. stegoFile: file văn b£n đã đưæc nhúng chuØi message. function msg = extractSpace(stegoFile): hàm rút trích dœ li»u. Hàm này nh“n vào stegoFile - file văn b£n đã đưæc nhúng chuØi message VÀ tr£ v• msg - chuØi message đưæc rút trích. 1

Ex03-DataHidingInText

  • Upload
    pi-po

  • View
    69

  • Download
    0

Embed Size (px)

DESCRIPTION

a

Citation preview

Page 1: Ex03-DataHidingInText

BTTH03: Ẩn dữ liệu trên văn bản bằngphương pháp chèn khoảng trắng

Môn: ADL & CSTT

=============“Smile, breathe, and go slowly.” – Thich Nhat Hanh

Trần Trung KiênEmail: [email protected]

Ngày 25 tháng 11 năm 2013

1 Phần code

1.1 Phương phép chèn khoảng trắng

Trong phần này, bạn sẽ cài đặt phương pháp ẩn dữ liệu trên văn bản bằngcách chèn khoảng trắng. Cụ thể, bạn sẽ code 2 hàm:

• function embedSpace(coverFile, msgFile, stegoFile): hàm nhúngdữ liệu. Trong đó:

– coverFile: file văn bản.

– msgFile: file chứa chuỗi message cần nhúng.

– stegoFile: file văn bản đã được nhúng chuỗi message.

• function msg = extractSpace(stegoFile): hàm rút trích dữ liệu.Hàm này nhận vào stegoFile - file văn bản đã được nhúng chuỗi

message VÀ trả về msg - chuỗi message được rút trích.

1

Page 2: Ex03-DataHidingInText

1.2 Cải tiến

Ta thấy rằng một nhược điểm của phương pháp nhúng khoảng trắng ở trênlà: không nhúng được nhiều vì từ chuỗi bit ban đầu ta phải chuyển sang mộtchuỗi bit có chiều dài gấp đôi rồi mới nhúng. Cụ thể, với một văn bản, số bittối đa có thể nhúng được là:

max =

⌊số khoảng trắng trong văn bản

2

⌋Nhận thấy, nếu ta nhúng trực tiếp chuỗi bit ban đầu thì sẽ nhúng được

nhiều hơn. Tuy nhiên, để rút trích được, ta cần phải làm sao đó để đánh dấukết thúc chuỗi bit nhúng. Trong phần này, bạn sẽ được học một kỹ thuật rấtđơn giản để đánh dấu kết thúc chuỗi bit nhúng. Bạn sẽ thấy, nếu dùng kỹthuật này thì số bit tối đa có thể nhúng sẽ là:

max = số khoảng trắng trong văn bản− 1

Kỹ thuật này như sau:

• Quá trình nhúng: Giả sử văn bản của ta có tất cả 7 khoảng trắng(có thể nhúng được 7 bit) và chuỗi bit cần nhúng là 100. Để đánh dấukết thúc chuỗi bit nhúng, ta sẽ thêm vào cuối một bit 1 và còn lại làcác bit 0. Chẳng hạn, trong ví dụ trên, chuỗi bit sau khi được đánhdấu kết thúc sẽ là 1001000; và ta sẽ nhúng chuỗi bit này vào văn bản.

• Quá trình rút trích: Như vậy khi rút trích, ta sẽ rút trích được chuỗibit 1001000. Để lấy lại được chuỗi bit ban đầu (100), ta sẽ duyệt từcuối về đầu chuỗi bit rút trích được (1001000), và khi nào gặp bit 1 thìSTOP! Từ vị trí này trở về đầu chính là chuỗi bit ta cần lấy.

Trong phần này, bạn sẽ cài đặt hai hàm ứng với thuật toán nhúng khoảngtrắng cải tiến vừa trình bày:

• function embedImprovedSpace(coverFile, msgFile, stegoFile)

• function msg = extractImprovedSpace(stegoFile)

2

Page 3: Ex03-DataHidingInText

2 Phần báo cáo

Trong báo cáo, bạn sẽ tổng kết lại mức độ hoàn thành (đã cài đặt chưa?nếu đã cài đặt rồi thì chạy có lỗi không? nếu không có lỗi thì chạy có đúngkhông?) ở những phần sau:

• Phương pháp chèn khoảng trắng:

– Hàm nhúng.

– Hàm rút trích.

• Phương pháp chèn khoảng trắng cải tiến:

– Hàm nhúng.

– Hàm rút trích.

3 Qui định

• Những trường hợp giống bài nhau sẽ bị 0 điểm!

• Trong thư mục <MSSV> gồm có:

– Bốn file *.m ứng với bốn hàm ở trên.

– File báo cáo Report.pdf.

Enjoy coding!

3