Tải bản đầy đủ (.docx) (50 trang)

Tiểu luận môn toán học cho khoa học máy tính TÌM HIỂU GIẤU TIN TRONG ẢNH VÀ ỨNG DỤNG GIẤU TIN TRONG ẢNH BITMAP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (401.17 KB, 50 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
oOo
GVHD: PGS.TSKH Đỗ Văn Nhơn
HV: Trương Hoài Phong
Mã số: CH1301048
TÌM HIỂU GIẤU TIN TRONG ẢNH VÀ ỨNG DỤNG GIẤU TIN
TRONG ẢNH BITMAP
TP. HỒ CHÍ MINH, NĂM 2014
MỤC LỤC
CHƯƠNG 1 : MỞ ĐẦU
1.1Giới thiệu:
Ngày nay, cùng với sự phát triển mạnh mẽ của ngành khoa học công nghệ thông tin,
internet đã trở thành một nhu cầu, phương tiện không thể thiếu đối với mọi người, việc
truyền tin qua mạng ngày càng lớn. Tuy nhiên, với lượng thông tin được truyền qua mạng
nhiều hơn thì nguy cơ dữ liệu bị truy cập trái phép cũng tăng lên vì vậy vấn đề bảo đảm
an toàn và bảo mật thông tin cho dữ liệu truyền trên mạng là rất cần thiết.
Để đảm bảo an toàn và bí mật cho một thông điệp truyền đi người ta thường dùng
phương pháp truyền thống là mã hóa thông điệp theo một qui tắc nào đó đã được thỏa
thuận trước giữa người gửi và người nhận. Tuy nhiên, phương thức này thường gây sự
chú ý của đối phương về tầm quan trọng của thông điệp. Thời gian gần đây đã xuất hiện
một cách tiếp cận mới để truyền các thông điệp bí mật, đó là giấu các thông tin quan
trọng trong những bức ảnh thông thường. Nhìn bề ngoài các bức ảnh có chứa thông tin
cũng không có gì khác với các bức ảnh khác nên hạn chế được tầm kiểm soát của đối
phương. Mặt khác, dù các bức ảnh đó bị phát hiện ra là có chứa thông tin trong đó thì với
các khóa có độ bảo mật cao thì việc tìm được nội dung của thông tin đó cũng rất khó có
thể thực hiện được.
Xét theo khía cạnh tổng quát thì giấu thông tin cũng là một hệ mã mật nhằm bảo
đảm tính an toàn thông tin, nhưng phương pháp này ưu điểm là ở chỗ giảm được khả
năng phát hiện được sự tồn tại của thông tin trong nguồn mang. Không giống như mã hóa
thông tin là chống sự truy cập và sửa chữa một cách trái phép thông tin, mục tiêu của


giấu thông tin là làm cho thông tin trộn lẫn với các điểm ảnh. Điều này sẽ đánh lừa được
sự phát hiện của các tin tặc và do đó làm giảm khả năng bị giải mã.
Kết hợp các kỹ thuật giấu tin với các kỹ thuật mã hóa ta có thể nâng cao độ an toàn
cho việc truyền tin.
1.2An toàn thông tin là gì?
Khi mà nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, các tiến bộ về
điện tử viễn thông và công nghệ thông tin không ngừng được phát triển để nâng cao chất
3
lượng cũng như lưu lượng truyền tin thì biện pháp bảo vệ thông tin ngày càng được đổi
mới. An toàn, bảo mật thông tin là một chủ đề rộng lớn, có liên quan đến nhiều lĩnh vực
khác nhau trong cuộc sống.
Vậy, an toàn, bảo mật thông tin là gì? Đó là việc đảm bảo an toàn cho thông tin gửi
cũng như thông tin nhận, giúp xác nhận đúng thông tin khi nhận và đảm bảo không bị tấn
công hay thay đổi thông tin khi truyền đi. Các hệ thống an toàn là những hệ thống có
những dịch vụ có khả năng chống lại những tai họa, lỗi và sự tác động không mong đợi,
các thay đổi tác động đến độ an toàn của hệ thống là nhỏ nhất. Có ba đặc tính cơ bản của
an toàn thông tin đó là tính bí mật, tính toàn vẹn và tính sẵn sàng phục vụ. Như vậy, ta có
thể hiểu, an toàn thông tin là việc đảm bảo các thuộc tính này. Tuy nhiên, tùy vào mục
đích sử dụng thông tin, mà người ta có thể chú trọng đến thuộc tính này hơn thuộc tính
kia, hoặc tập trung đảm bảo thật tốt cho thuộc tính này mà không cần đảm bảo thuộc tính
kia. Ví dụ, để công bố một văn bản nào đó thì người ta chú trọng đến việc làm sao để tài
liệu này không bị sửa đổi, còn đảm bảo bí mật thì không cần thiết.
1.3Vai trò của an toàn thông tin:
An toàn thông tin đang là vấn đề đang rất được quan tâm hiện nay, bởi xã hội phát
triển không ngừng dẫn đến nhu cầu trao đổi thông tin không ngừng tăng lên, các thông tin
đòi hỏi được đảm bảo an toàn ở mức tốt nhất có thể trước sự tấn công để đánh cắp, cũng
như sửa đổi thông tin.
Ví dụ như, muốn trao đổi tiền với ngân hàng phải sử dụng thẻ tín dụng và hệ thống
mạng để thực hiện giao dịch, bây giờ giả sử giao dịch không an toàn, người dùng bị mất
số tài khoản và mã PIN thì tác hại là rất lớn. Hay một ví dụ khác như khi truyền một

thông tin tối mật từ chính phủ đến cơ quan chỉ huy quân sự, chẳng hạn thông tin này
không được đảm bảo tốt, để xảy ra tình trạng thông tin lọt vào tay kẻ khác hoặc bị sửa đổi
trước khi đến nơi nhận thì hậu quả cũng thật khôn lường.
Công nghệ thông tin đang ngày càng phát triển chóng, đồng thời cũng gia tăng các
nguy cơ xâm nhập thông tin dữ liệu vào các hệ thống thông tin. Với kẻ tấn công, tùy theo
mục đích mà có những cách thức xâm nhập ngày càng tinh vi hơn, đòi hỏi yêu cầu bảo vệ
cần được cải tiến và phải hiệu quả hơn.
4
Các công nghệ bảo mật mới cần được nghiên cứu và ứng dụng vào trong thực tế để
kịp đáp ứng nhu cầu bảo vệ an toàn thông tin
CHƯƠNG 2: TỔNG QUAN VỀ GIẤU TIN TRONG ẢNH VÀ CÁC KỸ THUẬT
GIẤU TIN TRONG ẢNH
2.1Giấu tin như thế nào?
Cùng với sự phát triển của Internet và các phương tiện multimedia, nhiều vấn đề
như: ăn cắp bản quyền, xuyên tạc thông tin, truy cập thông tin trái phép… cũng tăng theo,
đòi hỏi phải tìm ra các giải pháp mới, hữu hiệu cho an toàn và bảo mật thông tin. Một
trong các giải pháp nhiều triển vọng là giấu tin(Data Hiding), đã và đang được nghiên
cứu và ứng dụng.
Giấu thông tin là kỹ thuật nhúng(embedding) một lượng thông tin số nào đó vào
trong một đối tượng dữ liệu số khác. Sự khác biệt giữa mã hóa thông tin và giấu thông tin
là mã hóa làm cho các thông tin hiện rõ là nó có được mã hóa hay không, còn với giấu
thông tin thì sẽ khó phát hiện ra được rằng có thông tin giấu bên trong.
Yêu cầu cơ bản của việc giấu tin là đảm bảo tính chất ẩn của thông tin được giấu
đồng thời không làm ảnh hưởng đến chất lượng của dữ liệu gốc.
Hiện tại thì giấu tin chia làm hai hướng lớn, đó là watermark(thủyvân), và
steganography. Phương pháp thủy vân quan tâm đến ứng dụng giấu các mẩu tin ngắn
nhưng đòi hỏi độ bền vững lớn của thông tin cần giấu trước các biến đổi thông th ường
của tệp dữ liệu môi trường. Trong khi đó, phương pháp Steganography quan tâm tới ứng
dụng che giấu các bản tin đòi hỏi độ bí mật và dung lượng càng lớn càng tốt.
Mục đích của giấu tin có hai khía cạnh chính:

Bảo mật cho dữ liệu đem giấu(embedded data), chẳng hạn như giấu thông tin mật
trong một đối tượng nào đó sao cho người khác không phát hiện được.
Đảm an toàn bảo mật cho chính đối tượng được dùng để giấu dữ liệu vào(host
data)
Kỹ thuật giấu tin đã được nghiên cứu và áp dụng trong nhiều môi trường dữ liệu
khác nhau như trong dữ liệu đa phương tiện (text, image, audio, video), trong các sản
5
phẩm phần mềm, và gần đây là trong cơ sở dữ liệu quan hệ, trong đó thì dữ liệu đa
phương tiện chiếm tỉ lệ chủ yếu trong kỹ thuật giấu tin.
2.2Lịch sử của phương pháp giấu tin như thế nào?
Trong một quá trình phát triển lâu dài, nhiều phương pháp bảo vệ thông tin đã
được đưa ra trong đó giải pháp dùng mật mã học là giải pháp được ứng dụng rộng rãi
nhất. Các hệ mã mật đã được phát triển nhanh chóng và được ứng dụng rất phổ biến cho
đến tận ngày nay. Thông tin ban đầu sẽ được mã hoá thành các ký hiệu vô nghĩa, sau đó
sẽ được lấy lại thông qua việc giải mã nhờ khoá của hệ mã. Đã có rất nhiều những hệ mã
phức tạp được sử dụng như DES, RSA, NAPSACK và phương pháp này đã được chứng
minh thực tế là rất hiệu quả và được ứng dụng phổ biến. Nhưng ở đây ta không định nói
về các hệ mã mật mà ta tìm hiểu về một phương pháp đã và đang được nghiên cứu và
ứng dụng rất mạnh mẽ ở nhiều nước trên thế giới đó là phương pháp giấu tin (data
hiding). Đây là phương pháp mới và phức tạp, nó đang được xem như một công nghệ
chìa khoá cho vấn đề bảo vệ bản quyền, nhận thực thông tin và điều khiển truy cập …
ứng dụng trong an toàn và bảo mật thông tin.
Đầu tiên các câu chuyện kể về kĩ thuật giấu thông tin được truyền qua nhiều thế
hệ, ý tưởng về che giấu thông tin đã có từ hàng nghìn năm về trước nhưng kĩ thuật này
được dùng chủ yếu trong quân đội và trong các cơ quan tình báo. Mãi cho tới vài thập
niên gần đây, giấu thông tin mới nhận được sự quan
tâm của các nhà nghiên cứu và các viện công nghệ thông tin với rất nhiều công trình
nghiên cứu. Cuộc cách mạng số hóa thông tin và sự phát triển nhanh chóng của mạng
truyền thông là nguyên nhân chính dẫn đến sự thay đổi này. Những phiên bản sao chép
hoàn hảo, các kĩ thuật thay thế, sửa đổi tinh vi cộng với sự lưu thông phân phối trên mạng

của các dữ liệu đa phương tiện đã sinh ra rất nhiều những vấn đề nhức nhối về nạn ăn cắp
bản quyền, phân phối bất hợp pháp, xuyên tạc trái phép…đây là lúc công nghệ giấu tin
được chú ý và phát triển.
Giấu thông tin là một kĩ thuật nhúng thông tin vào trong một nguồn đa phương
tiện gọi là các phương tiện chứa mà không gây ra sự nhận biết về sự tồn tại của thông tin
6
giấu. Phương pháp giấu tin là làm cho người ta khó có thể biết được có thông tin giấu bên
trong đó do tính chất ẩn của thông tin được giấu.
2.2.1 Mục đích của giấu tin
Giấu tin có hai mục đích:
• Bảo mật cho những dữ liệu được giấu
• Bảo đảm an toàn (bảo vệ bản quyền) cho chính các đối tượng chứa dữ liệu giấu
trong đó.
Có thể thấy hai mục đích này hoàn toàn trái ngược nhau và dần phát triển thành
hai lĩnh vực với những yêu cầu và tính chất khác nhau.
Hình: Hai lĩnh vực chính của kỹ thuật giấu thông tin
Kỹ thuật giấu thông tin bí mật (Steganography): với mục đích đảm bảo an toàn
và bảo mật thông tin tập trung vào các kỹ thuật giấu tin để có thể giấu được nhiều thông
tin nhất. Thông tin mật được giấu kỹ trong một đối tượng khác sao cho người khác không
phát hiện được.
Kỹ thuật giấu thông tin theo kiểu đánh giấu (watermarking) để bảo vệ bản
quyền của đối tượng chứa thông tin tập trung đảm bảo một số các yêu cầu như đảm bảo
tính bền vững… đây là ứng dụng cơ bản nhất của kỹ thuật thuỷ vân số.
2.2.2 Mô hình kỹ thuật giấu thông tin cơ bản
Để thực hiện giấu tin cần xây dựng được các thủ tục giấu tin. Các thủ tục này sẽ
thực hiện nhúng thông tin cần giấu vào môi trường giấu tin. Các thủ tục giấu tin thường
được thực hiện với một khóa giống như các hệ mật mã để tăng tính bảo mật. Sau khi giấu
tin ta thu được đối tượng chứa thông tin giấu và có thể phân phối đối tượng đó trên kênh
7
thông tin. Để giải mã thông tin cần nhận được đối tượng có chứa thông tin đã giấu, sử

dụng thủ tục giải mã cùng với khóa đã dung trong quá trình giấu để lấy lại thông tin.
Giấu thông tin vào phương tiện chứa và tách lấy thông tin là hai quá trình trái ngược
nhau và có thể mô tả qua sơ đồ khối của hệ thống trong đó:
• Thông tin cần giấu tuỳ theo mục đích của người sử dụng, nó có thể là thông điệp
(với các tin bí mật) hay các logo, hình ảnh bản quyền.
• Phương tiện chứa: các file ảnh, text, audio… là môi trường để nhúng tin
• Bộ nhúng thông tin: là những chương trình thực hiện việc giấu tin
• Đầu ra: là các phương tiện chứa đã có tin giấu trong đó
Hình: Lược đồ chung cho quá trình giấu tin
Tách thông tin từ các phương tiện chứa diễn ra theo quy trình ngược lại với đầu ra
là các thông tin đã được giấu vào phương tiện chứa. Phương tiện chứa sau khi tách lấy
thông tin có thể được sử dụng, quản lý theo những yêu cầu khác nhau.
8
Hình: Lược đồ chung cho quá trình giải mã
Hình vẽ chỉ ra các công việc giải mã thông tin đã giấu. Sau khi nhận được đối
tượng phương tiện chứa có giấu thông tin, quá trình giải mã được thực hiện thông qua
một bộ giải mã tương ứng với bộ nhúng thông tin cùng với khoá của quá trình nhúng. Kết
quả thu được gồm phương tiện chứa gốc và thông tin đã giấu. Bước tiếp theo thông tin đã
giấu sẽ được xử lý kiểm định so sánh với thông tin ban đầu.
2.3Các định dạng ảnh thường được sử dụng để giấu tin:
Cấu trúc ảnh nói chung gồm 3 phần chính: Header, dữ liệu, bảng màu. Tuy nhiên
mỗi loại ảnh có những đặc trưng khác nhau, định dạnh một số loại ảnh cơ bản:
2.3.1 Định dạng ảnh IMG.
Ảnh IMG là ảnh đen trắng. Phần đầu của ảnh IMG có 16 byte chứa các thông tin
cần thiết:
• 6 byte đầu: dùng để đánh dấu định dạng ảnh IMG. Giá trị của 6 byte này viết
0x0001 0x0008 0x0001.
• 2 byte tiếp theo: chứa độ dài mẫu tin. Đó là độ dài của dãy các byte kề liền nhau mà
dãy này sẽ được lặp lại một số lần nào đó. Số lần lặp này sẽ được lưu trữ trong
byte đếm. Nhiều dãy giống nhau được lưu trong một byte. Đó là cách lưu trữ nén.

• 4 byte tiếp: mô tả kích cỡ pixel.
• 2 byte tiếp: số pixel trên một dòng ảnh.
• 2 byte cuối: số dòng ảnh trong ảnh.
9
Ảnh IMG được nén theo từng dòng. Mỗi dòng bao gồm các gói (pack). Các dòng
giống nhau cũng được nén thành một gói.
2.3.2 Định dạng ảnh PCX:
Định dạng ảnh PCX là một trong những định dạng ảnh cổ điển nhất. Nó sử dụng
phương pháp mã loạt dài RLE để nén dữ liệu ảnh. Quá trình nén và giải nén được thực
hiện trên từng dòng ảnh. Thực tế, phương pháp giải nén PCX kém hiệu quả hơn so với
kiểu IMG. Tệp PCX gồm 3 phần: đầu tệp (header), dữ liệu ảnh (image data) và bảng màu
mở rộng.
Cấu trúc tệp ảnh dạng PCX
Hình: Cấu trúc ảnh PCX
Header của tệp PCX có kích thước cố định gồm 128 byte và được phân bố như
sau:
• 1 byte: chỉ ra kiểu định dạng. Nếu là kiểu PCX/PCC nó có giá trị là 0Ah.
• 1 byte: chỉ ra version sử dụng để nén ảnh, có thể có các giá trị sau:
- 0: version 2.5.
- 2: version 2.8 với bảng màu.
- 3: version 2.8 hay 3.0 không có bảng màu.
- 5: version 3.0 có bảng màu.
• 1 byte: chỉ ra phương pháp mã hoá. Nếu là 0 thì mã hoá theo phương pháp BYTE
PACKED, nếu không là phương pháp RLE.
• 1 byte: số bit cho một điểm ảnh plane.
10
• 1 word: toạ độ góc trái trên của ảnh. Với kiểu PCX nó có giá trị là (0,0); còn PCC
thì khác (0,0).
• 1 word: toạ độ góc phải dưới.
• 1 word: kích thước bề rộng và bề cao của ảnh.

• 1 word: số điểm ảnh.
• 1 word: độ phân giải màn hình.
• 1 word.
• 48 byte: chia thành 16 nhóm, mỗi nhóm 3 byte. Mỗi nhóm này chứa thông tin về
một thanh ghi màu. Như vậy ta có 16 thanh ghi màu.
• 1 byte: số bit plane mà ảnh sử dụng. Với ảnh 16 màu, giá trị này là 4, với ảnh 256
màu (1 pixel/ 8 bit) thì số bit plane lại là 1.
• 1 byte: số bytes cho một dòng quét ảnh.
• 1 word: kiểu bảng màu.
• 58 byte: không dùng.
Tóm lại, định dạng ảnh PCX thường được dùng để lưu trữ ảnh vì thao tác đơn
giản, cho phép nén và giải nén nhanh.
2.3.3 Định dạng ảnh TIFF:
Cấu trúc gồm có 3 phần:
• Phần header IFH (Image File Header) có trong tất cả các tệp TIFF và gồm 8 byte.
- 1 word: chỉ ra kiểu tạo tệp trên máy tính.
- 1 word: version.
- 2 word: giá trị Offset theo byte tính từ đầu file tới cấu trúc IFD.
• Phần thứ hai IFD (Image File Directory): Nó không ở ngay sau IFH mà vị trí của nó
được xác định bởi trường offset trong đầu tệp.Một IFD gồm:
- byte: chứa các DE (Directory Entry).
- 12 byte là các DE xếp liên tiếp. Mỗi DE chiếm 12 byte.
- 4 byte: chứa Offset trỏ tới IFD tiếp theo.
• Cấu trúc phần dữ liệu thứ 3: Các DE có độ dài cố định 12 byte và gồm 4 phần.
11
- 2 byte: chỉ ra dấu hiệu mà ảnh đã được xây dựng.
- 2 byte: kiểu dữ liệu của tham số ảnh.
- 4 byte trường độ dài.
- 4 byte đó là Offset tới điểm bắt đầu dữ liệu thực liên quan tới dấu hiệu, tức là dữ
liệu liên quan với DE không phải lưu trữ vật lý cùng với nó nằm ở một vị trí nào

đó trong file. Dữ liệu chứa trong tệp thường được tổ chức thành các nhóm dòng
(cột) quét của dữ liệu ảnh.
2.3.4 Định dang ảnh GIF:
Ảnh GIF (Graphics Interchange Format) Là một định dạng tập tin hình ảnh bitmap
cho các hình ảnh dùng ít hơn 256 màu sắc khác nhau và các hoạt hình dùng ít hơn 256
màu cho mỗi khung hình. Gif thường dùng cho sơ đồ, hình vẽ, nút bấm và các hình màu.
GIF là định dạng nén dữ liệu đặc biệt hữu ích cho việc truyền hình ảnh qua đường truyền
lưu lượng nhỏ. Đây là một giải pháp tốt cho hình ảnh trên mạng, cho các hoạt hình nhỏ
và ngắn.
GIF sử dụng thuật toán nén LOSS LESS (Không mất dữ liệu), điều đó cho phép
chúng tạo ra kích thước nhỏ mà không bị mất hoặc mờ bất kỳ chi tiết nào của ảnh dữ liệu
Hình: Cấu trúc ảnh Gif
Định dạng GIF có rất nhiều ưu điểm và đã được công nhận là chuẩn để lưu trữ ảnh
màu thực tế (chuẩn ISO 0918-1).
2.3.5 Định dạng ảnh .JPEG
12
Đây cũng là một định dạng ảnh phổ biến được sử dụng, nhưng đặc điểm của loại
ảnh này là đây là loại ảnh nén.
Ảnh JPEG là một trong những định dạng của phương pháp nén ảnh JPEG(Joint
Photographic Experts Group). Do đó sự mất mát thông tin có thể xảy ra khi tiến hành
nén và sau giải nén thì tập tin ảnh sẽ khác với ảnh ban đầu, chất lượng ảnh bị suy giảm
khi giải nén, sự suy giảm này tăng theo hệ số nén.
Ưu điểm của loại tập tin ảnh này là nếu được giấu tin thì có thể truyền trên mạng
bởi nó nhẹ hơn ảnh định dạng BMP rất nhiều lần. Mặt khác nó được hỗ trợ trên nhiều
trình duyệt
2.4Kỹ thuật được sử dụng để giấu tin trong ảnh:
2.4.1 Giấu tin theo khối bit đơn giản
2.4.1.1 Ý tưởng
Đây là kỹ thuật đơn giản nhất trong các kỹ thuật giấu tin mật trong ảnh. Ýtưởng cơ
bản của thuật toán là chia một ảnh gốc thành các khối nhỏ và mỗi khốinhỏ sẽ giấu 1 bit

thông tin. Thuật toán này dùng cho cả ảnh đa mức xám, ảnh màuvà ảnh đen trắng nhưng
để dễ trình bày thuật toán ta sẽ sử dụng ảnh đen trắng (nhị phân).
2.4.1.2 Thuật toán giấu tin
Vào:
- Một file ảnh Bitmap nhị phân F.
- Thông điệp bí mật cần giấu P.
- (m*n) là kích thước khối dùng để giấu 1 bit thông tin.
Ra: Một file ảnh đã giấu tin F‟.
Thực hiện:
- Tiền xử lý:
Chuyển thông điệp mật cần giấu P sang dạng nhị phân (giả sử thông điệp Pcó s
bit là p1, p2, …, ps).
Đọc toàn bộ dữ liệu của ảnh nhị phân F vào mảng I kích thước M*N (đượcmột
mảng giá trị các điểm ảnh nhị phân gốc I kích thước M*N) để sử dụng cho việcgiấu tin.
- Quá trình giấu tin:
13
 Bước 1. Kiểm tra khả năng giấu hết thông tin vào ảnh:
Số khối kích thước mxn có được là: (M div m) x (N div n).
Nếu (M div m) x (N div n) < s thì không đủ số khối để giấu hết thông tin.
Ngược lại thực hiện các bước 2, 3.
 Bước 2. Chia ma trận I thành các khối kích thước mxn, ký hiệu là Fi
(i=1 s).
 Bước 3. Tiến hành giấu tin:
Lần lượt giấu các bit pi của P vào từng khối Fi (i=1 s) theo nguyên tắc:
Với SUM(Fi) được định nghĩa là tổng các phần tử của Fi
Nếu SUM(Fi) mod 2 = pi thì giữ nguyên Fi
Ngược lại chọn ngẫu nhiên một bit trong Fi rồi đảo bit này.
Như vậy, ta luôn được: pi = SUM(Fi) mod 2 (1)
 Bước 4: Xây dựng ảnh mới F‟ từ mảng dữ liệu ảnh mới I”
14

Hình. Sơ đồ mô tả thuật toán Giấu tin theo khối bit đơn giản
2.4.2 Kỹ thuật giấu tin Wu M.Y và Lee J.H
Kỹ thuật giấu tin theo khối bit đơn giản thể hiện độ an toàn không cao vớiviệc sử
dụng duy nhất kích thước khối (m*n) là khoá cho quá trình giấu tin, đồngthời ảnh chứa
thông tin giấu cũng dễ bị phát hiện do kỹ thuật có thể đảo bit trongcác khối ảnh toàn màu
đen hoặc toàn màu trắng dẫn tới sự bất thường ở vị trí bitđảo so với các điểm lân cận
trong khối.
Năm 1998, Wu M.Y. và Lee J.H. đã đề xuất một kỹ thuật mới giấu tin trongảnh đen
trắng. Kỹ thuật này vẫn dựa trên tư tưởng giấu một bit thông tin vào mộtkhối ảnh gốc
nhưng đã khắc phục được phần nào những nhược điểm nêu trên để cóđược độ an toàn cao
hơn và chất lượng ảnh sau khi giấu tốt hơn. Bằng cách sử dụngthêm ma trận khoá K cho
15
việc giấu tin và đưa thêm các điều kiện để đảo bit trongmỗi khối, theo điều kiện đó các
khối ảnh gốc toàn màu đen hoặc toàn màu trắng sẽkhông được sử dụng để giấu tin.
2.4.2.1 Ý tưởng của thuật toán
Thuật toán Wu-Lee được áp dụng cho ảnh nhị phân có ý tưởng chính là: Mộtảnh nhị
phân dùng làm môi trường giấu tin cũng được chia thành các khối đều nhaucó kích thước
(m*n). Thông tin mật được giấu vào mỗi khối này bằng cách thay đổinhiều nhất một bit
của khối. Quá trình biến đổi khối ảnh F thành F‟ để giấu 1 bit piđược thực hiện sao cho
đạt được bất biến SUM(K^F‟) mod 2 = pi. Công thức nàycũng được sử dụng cho quá
trình tách lấy tin đã giấu (K là một ma trận nhị phâncũng có kích thước m*n được sử
dụng làm khóa nhằm tăng tính bảo mật của thuậttoán giấu tin).
2.4.2.2 Thuật toán giấu tin
a) Dữ liệu vào:
- Ma trận điểm ảnh nhị phân F dùng làm môi trường giấu tin (F được chiathành các
khối Fi(m*n)).
- K(m*n) là một ma trận nhị phân được sử dụng làm khóa.
- Chuỗi bit P = p1p2p3p4 là thông tin cần giấu vào ảnh F.
b) Dữ liệu ra:
- Một ma trận nhị phân F‟ chứa thông tin cần giấu.

c) Các bước thực hiện:
 Bước 1:
Tính Ti = Fi^ K.
Tính Si = SUM(Ti).
 Bước 2:
IF 0 < Si <SUM(K) THEN
chuyển sang bước 3 để giấu tin (việc giấu thựcchất là biến đổi Fi
thành Fi‟ sao cho Si‟ mod 2 = pi).
ELSE
bỏ qua khối này, chuyển sang khối khác để giấu.
 Bước 3:
16
Giấu pi vào trong khối Fi.
IF (Si mod 2 = pi) THEN
Thực hiện giấu mà không cần thay đổi bit nào của Fi (vì khi đó đã
đạt đượcbất biến).
ELSE IF (Si = 1) THEN
Chọn ngẫu nhiên bit (j,k) của Fi thảo mãn đồng thời Fj,k = 0 và
Kj,k = 1 sau đóchuyển bit Fi(j,k) thành 1.
ELSE IF (Si = Sum(K) -1) THEN
Chọn ngẫu nhiên bit (j,k) của Fi thỏa mãn đồng thời Fi(j,k) = 1 và
Kj,k = 1 sauđó chuyển bit Fi(j,k) thành 0.
ELSE
Chọn ngẫu nhiên bit (j,k) của Fi thỏa mãn Kj,k = 1 sau đó thay đổi
bit Fj,k.
2.4.3 Kỹ thuật giấu tin Chen-Pan-Tseng:
2.4.3.1 Ý tưởng:
Kỹthuật này sử dụng một ma trận khoá K và một ma trận trọng số W trong quá
trìnhgiấu và tách thông tin.Quá trình biến đổi khối ảnh F thành F’ kích thước m×n để giấu
r bit thông tinb1b2 br được thực hiện sao cho: SUM((F‟⊕ K) ⊗ W) ≡ b1b2 br (mod 2r).

Công thứcnày cũng được sử dụng để tách chuỗi bit đã giấu b1b2 br từ khối ảnh F‟.
Lược đồCPT cho phép giấu r bit thông tin vào một khối ảnh nhị phân kích thước m×n
(với2r < m×n) bằng cách chỉ thay đổi nhiều nhất 2 bit trong khối ảnh gốc. Trước khi đi
vào phần chi tiết của kỹ thuật này ta tìm hiểu một số khái niệmdùng trong thuật toán.
2.4.3.2 Thuật toán
a) Vào:
- F là một ma trận dữ liệu ảnh gốc nhị phân dùng để giấu thông tin. F đượcchia
thành các khối Fi có kích thước là m*n.
- K là một ma trận khóa cấp m*n.
- W là một ma trận trọng số cấp m*n.
- r: Số lượng bit sẽ nhúng trong mỗi một khối ảnh Fi(m*n).
17
- B : là lượng thông tin cần giấu gồm k*r bit, k sẽ là số khối ảnh giấu.
b) Ra:
- Ma trận ảnh đích F’ chứa B. F’ được tạo từ các khối Fi’, Mỗi Fi’ thu được từ
- khối Fi tương ứng sau khi đã giấu r bit thông tin từ B.
c) Thực hiện:
Thuật toán sẽ thực hiện việc biến đổi mỗi Fi thành Fi‟ sao cho luôn thỏa mãnđiều
kiện sau:
SUM (Fi‟ ⊕ K) ⊗W) ≡b1b2b3…br mod 2r.
Trong đó b1b2b3…br là dạng biều diễn của một số nhị phân tạo từ dãy r bitliên tiếp
trong B. Mỗi Fi bị biến đổi nhiều nhất là 2 bit. Quá trình biến đổi gồm 4bước sau đây:
• Bước 1: Tính ma trận T=Fi ⊕ K, Tính ma trận P = T ⊗W
• Bước 2: Tính tổng Sum = SUM(P)
• Bước 3: Với ma trận T và với mọi w=1,2,…,2r-1 ta xác định tập hợp Sw nhưsau:
Sw={(j,k)|(W[i,j]=w Λ T[i,j]=0) ν (W[j,k] =2r –wΛ T[j,k]=1)}
Dễ nhận thấy Sw là tập hợp các tọa độ (i,k) của ma trận Fi sao cho khi đảo bitFi[i,j]
thì Sum ở bước hai tăng lên w đơn vị. Thực vậy, ta có:
• Trường hợp 1: Nếu W[i,j]=w và T[i,j]=0
Khi đó đảo bit Fi[i,j] sẽ làm cho T[j,k]=1, do đó Sum tăng lên w.

• Trường hợp 2: Nếu W[j,k] =2r –w và T[j,k]=1
Khi đó đảo bit Fi[i,j] sẽ làm T[i,j]=0, do đó Sum sẽ giảm đi 2r-1-w, tức là tăng
lên w theo mod 2
r
.
Từ định nghĩa của tập Sw ta có: Sw’ =Sw
• Bước 4: Ký hiệu d=(b1b2 br) –SUM(P)(mod2
r
).
Ta cần thực hiện việc đảo bit trên Fi để được Fi’ sao cho tổng Sum tính được
ở bước 2 khi thay Fi bởi Fi’ sẽ tăng lên d.
- Nếu d=0, không cần thay đổi Fi
- Nếu d ≠ 0 ta thực hiện các công việc sau:
 Chọn h bất kỳ thuộc tập {1,2,3…,2r-1} sao cho Shd ≠ Φ và S-(h-1)d ≠ Φ
18
 Chọn phần tử (j,k) bất kỳ thuộc Shd và đảo bit Fi[j,k]
 Chọn phần tử (u,v) bất kỳ thuộc S-(h-1)d và đảo bit Fi[u,v]
Rõ ràng là để tăng Sum lên d, ta có thể chọn hai tập khác trống Shd và S-(h-
1)d.Thật vậy, hai tập này chứa các vị trí bit trong khối Fi mà ta có thể đảo để tăng Sumlên
dh và –(h-1)d một cách tương ứng, kết quả cuối cùng là Sum sẽ tăng lên hd+(-(h-1)d) =d;
Tương tự như các tập Sw khác ta cũng có thể coi tập S0 là tập chứa các vị trímà khi
đảo những bit có vị trí này trên Fi, thì sẽ tăng Sum lên 0. Kết quả này cũngđạt được nếu
ta không đảo bất kỳ bit nào trên Fi. Vì vậy, ta có thể coi S0 là tập trốngvà khi nói đảo 1
bit có vị trí thuộc tậpS0 có nghĩa là không làm gì.
2.4.4 Kỹ thuật giấu tin LSB
2.4.4.1 Ý tưởng:
Việc nhúng tin trong miền không gian thường được thực hiện với kỹ thuậtgiấu tin
mật. Các thuật toán giấu tin mật nổi tiếng nhất hiện nay đều dựa trên sựthay đổi các bit ít
ý nghĩa nhất (Least Significant Bit-LSB) của các điểm ảnh 8 bithoặc 24 bit màu và được
gọi là kỹ thuật LSB.

Vậy đối với ảnh màu và ảnh đa mức xám (8 – 16 – 24 bit màu) thì bit ít quantrọng
nhất là các bit thất (cuối). Ví dụ với ảnh 256 màu thì bit cuối cùng trong 8 bitbiểu diễn
một điểm ảnh được coi là bit ít quan trọng nhất theo nghĩa là nếu thay đổibit này thì ảnh
hưởng ít nhất đến cảm nhận của mắt người về điểm ảnh.
LSB của một điểm ảnh có vị trí tương tự như chữ số hàng đơn vị của một sốtự
nhiên, khi bị thay đổi, giá trị chênh lệch giữa số cũ và số mới sẽ ít nhất, so vớikhi ta thay
đổi giá trị của chữ số hàng chục hoặc hàng trăm. Việc xác định LSB củamỗi điểm ảnh
trong một bức ảnh phụ thuộc vào định dạng của ảnh và số bit màudành cho mỗi điểm ảnh
của ảnh đó.
LSB (Least Significant Bit) là bit có ảnh hưởng ít nhất tới việc quyết địnhmàu sắc
của mỗi điểm ảnh, vì vậy khi ta thay đổi bit này thì màu sắc của điểm ảnhmới sẽ gần như
không khác biệt so với điểm ảnh cũ.Ví dụ trong ảnh 256 màu (8 bit màu). Mỗi điểm ảnh
cần 8 bit để biểu diễn.Ta thực hiện tách bit cuối cùng (bit ít quan trọng nhất) ra để xử lý.
19
Thay đổi giá trị của bit này thì sẽ thay đổi giá trị của điểm ảnh lên hoặcxuống đúng
một đơn vị, ví dụ như giá trị điểm ảnh là 234 thì khi thay đổi bit cuốicùng nó sẽ mang giá
trị mới là 235 nếu đổi bit cuối cùng từ 0 thành 1. Với sự thayđổi đó thì cấp độ màu của
điểm ảnh sẽ không bị thay đổi nhiều và với khả năng cảmnhận của mắt người sẽ khó mà
phát hiện được sự khác biệt.
2.4.4.2 Thuật toán:
Mục đích của phương pháp là chọn ra các bit ít quan trọng (ít làm thay đổichất
lượng của ảnh nền) và thay thế chúng bằng các bit thông tin cần giấu. Để khóbị phát hiện,
thông tin giấu thường được nhúng vào những vùng mắt người kémnhạy cảm với màu sắc.
Với ảnh 24 bit, mỗi màu được chứa trong 3 byte, theo thứ tựtừ trái sang phải, byte đầu
tiên chứa giá trị biểu thị cường độ màu lam (B), byte thứhai chứa giá trị biểu thị cường độ
màu lục (G), byte thứ ba chứa giá trị biểu thịcường độ màu đỏ (R). Như vậy, mỗi màu
được xác định bởi một số nguyên có giátrị trong khoảng 0 – 255.
• Quá trình giấu tin:
Tư tưởng của thuật toán là chọn ngẫu nhiên một điểm ảnh, với mỗi điểm ảnh,chọn
ngẫu nhiên một byte màu, sau đó giấu bit tin vào bit màu có trọng số thấpnhất. Để tăng

tính bảo mật, thông tin thường được nhúng vào các vùng trong ảnhmà mắt người kém
nhạy cảm. Đối với ảnh 24 bit màu, mỗi điểm ảnh được chứatrong 3 byte, như vậy mỗi
màu được xác định bởi 1 số nguyên có giá trị trong miềntừ 1 đến 256. Thuật toán thay thế
k bit có trọng số nhỏ nhất sử dụng trong ảnh 24 bitmàu, có thể biểu diễn qua các bước
sau:
 Bước 1: Thông tin cần giấu được biểu thị bởi luồng bit, và luồng bit này được
chia nhỏthành các cụm k bit: EiB, EiG, EiR.Điểm ảnh thứ i ký hiệu Hi chứa 24 bit được
tách ra làm 3 byte riêng Bi, Gi, Riứng với màu xanh lục, xanh lam, đỏ. Từ các byte này,
lại tách ra các khối k bit cuốikí hiệu Bik, Gik, Rik.
20
 Bước 2: Thay thế Bik, Gik, Rik bởi các giá trị tương ứng EiB, EiG, EiRMỗi
điểm ảnh mới nhận được, ký hiệu Hi’ sẽ mang 3 × (8 - k) bit có trọng sốcao cho thông tin
về ảnh, và 3 × k bit trọng số thấp cho thông tin giấu. Gọi ảnh nhậnđược sau khi thay thế
là H’.
• Quá trình tách tin:
 Tách các thông tin bằng cách tách từ mỗi điểm ảnh 3 cụm k bit từ các byte Bi,
Gi, Ri, và chắp lại thành bản tin giấu.
 Kỹ thuật này tuy đơn giản, nhưng nếu bản tin trước khi giấu đã được mã hóa và
trật tự giấu tin được chọn theo một quy luật nào đó, thì việc tách thông tin từ H’ sẽ không
đơn giản.
2.4.5 Kỹ thuật sử dụng phép biến đổi DCT
Để khảo sát hệ thống rời rạc, trong nhiều trường hợp, chúng ta thường biếnđổi hệ
thống rời rạc đó sang một miền biến số khác. Có nhiều phép biến đổi khácnhau biến đổi
tín hiệu và hệ thống rời rạc sang miền miền tần số liên tục hay sangmiền tần số rời rạc.
Mỗi phép biến đổi có những thuận lợi riêng, tùy theo yêu cầukhảo sát mà ta sẽ lựa chọn
phép biến đổi phù hợp. Trong trường hợp khảo sát miềnkhông gian ảnh người ta thường
biến đổi miền không gian rời rạc tín hiệu các điểmảnh sang miền tần số rời rạc bằng các
phép biến đổi như Fourier, Cosin rời rạc haywavelet (sóng lăn)…vv.
Phép biến đổi cosin rời rạc: Biến đổi cosin rời rạc viết tắt là DCT (DiscreteCosin
Transform) được đưa ra bởi Ahmed và các đồng nghiệp của ông vào năm1974. Từ đó cho

đến nay, nó được sử dụng rất phổ biến trong nhiều kỹ thuật xử lýảnh số nói riêng và xử lý
tín hiệu số nói chung. Trong các kỹ thuật thủy vân ảnh dựatrên phép biến đổi dữ liệu ảnh
sang miền tần số cho phép biến đổi DCT được sửdụng nhiều nhất. Lý do ở đây là phép
biến đổi DCT đã được dùng trong dạng chuẩnảnh JPEG. Nếu áp dụng DCT thì cũng theo
chuẩn của JPEG và do đó sẽ tránh đượcmất thủy vân do phép nén JPEG.
Phép biến đổi Fourier rời rạc: Phép biến đổi Fourier rời rạc viết tắt là
DFT(Discrete Fourier Transform) là một công cụ toán học được dùng để chuyển cáchbiểu
diễn tín hiệu và hệ thống rời rạc hoặc liên tục sang miền tần số rời rạc. Thựcchất của cách
biểu diễn này là lấy từng điểm rời rạc trên vòng tròn đơn vị trong mặtphẳng Z để biểu
21
diễn. Việc biểu diễn trong miền tần số rời rạc đặc biệt hiệu quả khixuất hiện các thuật
toán tính toán nhanh DFT ta gọi là phép biến đổi Fourier nhanhFFT(Fast Fourier
Transform).
2.4.6 Kỹ thuật giấu tin thuận nghịch dựa trên dịch chuyển Histogram
Trong thời gian gần đây giấu tin mật trong đa phương tiện ngày càng trở nênphổ
biến trong môi trường truyền thông công cộng. Tuy nhiên với các kỹ thuật nhưgiấu vào
các bit có trọng số thấy LSB, hay giấu tin vào các khối điểm ảnh, sau khitách thông điệp,
khó khôi phục lại được ảnh gốc ban đầu. Trong khi đó một vài lĩnhvực nghiên cứu như y
học, quân đội hoặc nghiên cứu thực nghiệm vật lý phân tử hạtnhân vv, nó đòi hỏi không
những tách đúng thông điệp giấu mà còn khôi phục xấpxỉ đúng ảnh gốc ban đầu.
Vào năm 2001, phương pháp giấu thuận nghịch đầu tiên được đề xuất bởiHonsinger
cùng các đồng nghiệp, từ đó đến nay nhiều kỹ thuật giấu thuận nghịchdựa trên dịch
chuyển histogram của ảnh được công bố. Sau đây chúng ta đi tìm hiểuhai thuật toán giấu
tin NSAS do Ni cùng các đồng nghiệp đề xuất và kỹ thuật HKCdo Hwang cùng các đồng
nghiệp đề xuất. Với hai kỹ thuật này, họ chỉ ra rằng nó cóđộ phức tạp tính toán thất,
không làm thay đổi nhiều nội dung ảnh.
2.4.6.1 Kỹ thuật giấu thuận nghịch NSAS
Năm 2006, Ni và các đồng nghiệp đưa ra lược đồ giấu tin thuận nghịchNSAS trên
ảnh dựa vào dịch chuyển histogram của ảnh. Sau đây là Thuật toán giấu tin:
• Bước 1: Tìm một điểm không (zero) và điẻm cực trị (peak), đây là hai điểm có

giátrị cấp xám của điểm ảnh trong lược đồ histogram của ảnh nhỏ nhất và lớn
nhất. Đểđơn giản ta ví du điểm zero ở vị trí 255 (h(255)=0) và điểm peak ở vị trí
154(h(154)=2859).
• Bước 2: Quét toàn bộ ảnh theo thứ tự từ trái sang phải và từ trên xuống dưới.
Cácđiểm ảnh có giá trị cấp xám nằm trong khoảng [155,254] được tăng lên 1 giá
trị, nósẽ làm cho tần số của 155=0.
22
Hình. Histogram của ảnh cùng điểm peak và điểm zero
• Bước 3: Nhúng bit thông điệp “0” và “1” lần lượt vào các giá trị xám 154 và
155theo nguyên tắc sau: Giả sử điểm ảnh đang xét là 154 kiểm tra bit cần nhúng,
nếu làbit “1” thì điểm ảnh 154 sẽ tăng lên 1, ngược lại nếu bit cần giấu là “0” thì
điểm ảnh154 vẫn giữ nguyên.
Cuối cùng chúng ta nhận được ảnh sau khi giấu tin. Người nhận sau khi cóảnh này
có thể khôi phục lại thông điệp và ảnh gốc bằng kỹ thuật ngược lại.
2.4.6.2 Kỹ thuật giấu thuận nghịch HKC
Trong kỹ thuật NSAS, khả năng giấu thông điệp phụ thuộc vào độ lớn củađiểm
peak, như ví dụ trên khả năng giấu lượng thông tin không quá 2859 bit trongảnh. Để cải
tiến vấn đề này, Hwang và các đồng nghiệp đã đề xuất kỹ thuật giấuthuận nghịch HKC.
Sau đây là thuật toán:
• Bước 1: Tìm một điểm peak (ví dụ đó là vị trí 154 trong ảnh a) và hai điểm min
(đólà điểm 23 và 255). Điểm peak và hai điểm min tương ứng với số điểm ảnh của
chúng là lớn nhất và nhỏ nhất trong ảnh.
• Bước 2: Nhằm để khôi phục chính xác ảnh gốc, một bản đồ định vị dùng để lưu
trữthông tin vị trí của các điểm ảnh (như là điểm peak, điểm min bên trái điểm
peak,lượng điểm nảh ban đầu của điểm min bên trái và điểm min bên phải điểm
peak)trong lược đồ HKC.
• Bước 3: Khởi tạo không gian để giấu tin. Các điểm ảnh được định vị
tronghistogram năm ở bên trái giữa điểm peak và điểm min bên trái sẽ dịch sang
23
trái mộtđiểm ảnh. Tương tự, các điểm ảnh được định vị nằm ở bên phải giữa điểm

peak vàđiểm min bên phải sẽ dịch sạng phải một điẻm ảnh.
• Bước 4: Giấu thông tin vào trong ảnh. Nếu điểm ảnh đang xét có giá trị bằng peak-
2hoặc bằng peak+2 thì kiểm tra bit cần nhúng: nếu là bit “1” thì điểm ảnh có giá
trị làpeak sẽ tăng lên 1, điểm ảnh có giá trị là peak+2 sẽ giảm đi một, còn nếu bit
thôngđiệp là “0” thì vẫn giữ nguyên.
Hình. Histogram của ảnh cùng điểm peak và hai điểm zero
24
CHƯƠNG 3: ỨNG DỤNG GIẤU TIN TRONG ẢNH BITMAP
3.1Tổng quan về ảnh Bitmap
Trong đồ họa máy tính, BMP còn được biết đến với tên tiếng anh khác làWindows
bitmap, là một định dạng tập tin hình ảnh khá phổ biến. Các tập tin đồ họalưu dưới dạng
BMP thường có đuôi là .BMP hoặc .DIB. Các thuộc tính tiêu biểucủa một tập tin ảnh
BMP (cũng như file ảnh nói chung) là:
• Số bit trên mỗi điểm ảnh (bit per pixel), thường được ký hiệu bởi n. Mộtảnh BMP
n-bit có 2n màu. Giá trị n càng lớn thì ảnh càng có nhiều màu, và càng rõnét hơn.
Giá trị tiêu biểu của n là 1 (ảnh đen trắng nhị phân), 4 (ảnh 16 màu), 8 (ảnh256
màu), 16 (ảnh 65536 màu) và 24 (ảnh trên 16 triệu màu). Ảnh BMP 24-bit cóchất
lượng hình ảnh trung thực nhất.
• Chiều cao của ảnh (height), cho bởi điểm ảnh (pixel).
• Chiều rộng của ảnh (width), cho bởi điểm ảnh.
Đặc điểm nổi bật nhất của định dạng BMP là tập tin hình ảnh thường khôngđược
nén bằng bất kỳ thuật toán nào. Khi lưu ảnh, các điểm ảnh được ghi trực tiếpvào tập tin -
một điểm ảnh sẽ được mô tả bởi một hay nhiều byte tùy thuộc vào giátrị n của ảnh. Do
đó, một hình ảnh lưu dưới dạng BMP thường có kích cỡ rất lớn,gấp nhiều lần so với các
ảnh được nén (chẳng hạn GIF, JPEG hay PNG).
3.1.1 Khái niệm về ảnh đen trắng, ảnh màu và ảnh đa mức xám
• Điểm ảnh (Picture Element): Gốc của ảnh (ảnh tự nhiên) là ảnh liên tục vềkhông
gian và độ sáng. Để xử lý bằng máy tính (số), ảnh cần phải được số hoá. Sốhoá
ảnh là sự biến đổi gần đúng một ảnh liên tục thành một tập điểm phù hợp vớiảnh
thật về vị trí (không gian) và độ sáng (mức xám). Khoảng cách giữa các điểmảnh

đó được thiết lập sao cho mắt người không phân biệt được ranh giới giữachúng.
Mỗi một điểm như vậy gọi là điểm ảnh (PEL: Picture Element) hay gọi tắt làPixel.
Trong khuôn khổ ảnh hai chiều, mỗi pixel ứng với cặp tọa độ (x, y).
25

×