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 tinCHƯƠNG 2: TỔNG QUAN VỀ GIẤU TIN TRONG ẢNH VÀ CÁC KỸ THUẬT GIẤU T
Trang 1ĐẠ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
Trang 2MỤC LỤC
CHƯƠNG 1 : MỞ ĐẦU 4
1.1 Giới thiệu: 4
1.2 An toàn thông tin là gì? 4
1.3 Vai trò của an toàn thông tin: 5
CHƯƠNG 2: TỔNG QUAN VỀ GIẤU TIN TRONG ẢNH VÀ CÁC KỸ THUẬT GIẤU TIN TRONG ẢNH 6
2.1 Giấu tin như thế nào? 6
2.2 Lịch sử của phương pháp giấu tin như thế nào? 7
2.2.1 Mục đích của giấu tin 8
2.2.2 Mô hình kỹ thuật giấu thông tin cơ bản 8
2.3 Các định dạng ảnh thường được sử dụng để giấu tin: 10
2.3.1 Định dạng ảnh IMG 10
2.3.2 Định dạng ảnh PCX: 10
2.3.3 Định dạng ảnh TIFF: 12
2.3.4 Định dang ảnh GIF: 12
2.3.5 Định dạng ảnh JPEG 13
2.4 Kỹ thuật được sử dụng để giấu tin trong ảnh: 14
2.4.1 Giấu tin theo khối bit đơn giản 14
2.4.1.1 Ý tưởng 14
2.4.1.2 Thuật toán giấu tin 14
2.4.2 Kỹ thuật giấu tin Wu M.Y và Lee J.H 15
2.4.2.1 Ý tưởng của thuật toán 16
2.4.2.2 Thuật toán giấu tin 16
2.4.3 Kỹ thuật giấu tin Chen-Pan-Tseng: 17
2.4.3.1 Ý tưởng: 17
Trang 32.4.3.2 Thuật toán 17
2.4.4 Kỹ thuật giấu tin LSB 19
2.4.4.1 Ý tưởng: 19
2.4.4.2 Thuật toán: 20
2.4.5 Kỹ thuật sử dụng phép biến đổi DCT 21
2.4.6 Kỹ thuật giấu tin thuận nghịch dựa trên dịch chuyển Histogram 22
2.4.6.1 Kỹ thuật giấu thuận nghịch NSAS 22
2.4.6.2 Kỹ thuật giấu thuận nghịch HKC 23
CHƯƠNG 3: ỨNG DỤNG GIẤU TIN TRONG ẢNH BITMAP 25
3.1 Tổng quan về ảnh Bitmap 25
3.1.1 Khái niệm về ảnh đen trắng, ảnh màu và ảnh đa mức xám 25
3.1.2 Cấu trúc tập tin ảnh bitmap: 27
3.2 Thuật toán: 29
3.3 Đặc điểm của thuật toán 33
3.4 Cài đặt: 33
CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 49
4.1 KẾT LUẬN 49
4.2 HƯỚNG PHÁT TRIỂN 49
DANH MỤC TÀI LIỆU THAM KHẢO 50
Trang 4CHƯƠNG 1 : MỞ ĐẦU 1.1 Giớ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ệctruyề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ạngnhiề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ùngphươ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ỏathuậ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ệnmộ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 quantrọ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 tincũ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 đốiphươ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ớicá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óathô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ấuthô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àncho việc truyền tin
1.2 An 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
Trang 5lượ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 đổimớ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ựckhá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ửicũ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ấncô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ínhkia, 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ínhkia 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àiliệ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.3 Vai 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áttriể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ũngnhư 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ốngmạ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ộtthô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àykhô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 đổitrướ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ácnguy 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 theomụ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
Trang 6Cá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.1 Giấ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
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ậttrong 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(hostdata)
Kỹ thuật giấu tin đã được nghiên cứu và áp dụng trong nhiều môi trường dữ liệukhác nhau như trong dữ liệu đa phương tiện (text, image, audio, video), trong các sản
Trang 7phẩm phần mềm, và gần đây là trong cơ sở dữ liệu quan hệ, trong đó thì dữ liệu đaphương tiện chiếm tỉ lệ chủ yếu trong kỹ thuật giấu tin.
2.2 Lị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ãinhấ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ứngminh 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à ứngdụ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ụngtrong 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ậpniê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ìnhnghiê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ạngtruyề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éphoà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ạngcủ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ắpbả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ươngtiệ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
Trang 8giấ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êntrong đó 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ấutrong đó
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ànhhai 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ôngtin 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ôngphá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ảotí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ấutin 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
Trang 9thô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ượcnhau 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
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ấythông tin có thể được sử dụng, quản lý theo những yêu cầu khác nhau
Trang 10Hì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 đốitượ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 quamộ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ếtquả 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.3 Cá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ênmỗ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 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.
Ả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ònggiố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ụngphươ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ựchiệ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ớikiể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
Trang 11Hì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 BYTEPACKED, nếu không là phương pháp RLE
1 byte: số bit cho một điểm ảnh plane
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 PCCthì 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
Trang 12 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 256mà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
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
- 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étcủ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 bitmapcho 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
Trang 13mà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ềnlư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ỏ
Ả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ảmkhi 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ạngbở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ềutrình duyệt
2.4 Kỹ thuật được sử dụng để giấu tin trong ảnh:
2.4.1 Giấu tin theo khối bit đơn giản
Trang 142.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 bitthô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‟.
- Quá trình giấu tin:
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)
Trang 15Bước 4: Xây dựng ảnh mới F‟ từ mảng dữ liệu ảnh mới I”
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ứathô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ậntrong 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 đentrắ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ốcnhư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
Trang 16hơ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 choviệ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áckhố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 bitcủ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ànhcá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
Trang 17Bước 3:
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
(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ướcm×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
Trang 18- r: Số lượng bit sẽ nhúng trong mỗi một khối ảnh Fi(m*n).
- 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
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 –wT[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ănglên w theo mod 2r
Từ định nghĩa của tập Sw ta có: Sw’ =Sw
Bước 4: Ký hiệu d=(b1b2 br) –SUM(P)(mod2r)
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
Trang 19 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à 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
S-(h-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 1bit 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
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 ảnhtrong 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 ảnhcủa ảnh đó
LSB (Least Significant Bit) là bit có ảnh hưởng ít nhất tới việc quyết địnhmàu sắccủ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 ảnhcầ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ý
Trang 20Thay đổi giá trị của bit này thì sẽ thay đổi giá trị của điểm ảnh lên hoặcxuống đúngmộ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ấtlượ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 đầutiê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ọnngẫ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ăngtí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émnhạ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ỗimà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ướcsau:
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 đượctá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
Trang 21 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 đổití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ọnphé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ườngbiế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ácphé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 ảnhsang 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épbiến đổi DCT đã được dùng trong dạng chuẩnảnh JPEG Nếu áp dụng DCT thì cũng theochuẩ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ểncá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ấtcủ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
Trang 22để biểu 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ácthuật toán tính toán nhanh DFT ta gọi là phép biến đổi Fourier nhanhFFT(Fast FourierTransform).
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àocá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ư yhọ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ôngnhữ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ởiHonsingercùng các đồng nghiệp, từ đó đến nay nhiều kỹ thuật giấu thuận nghịchdựa trên dịchchuyển histogram của ảnh được công bố Sau đây chúng ta đi tìm hiểuhai thuật toán giấutin NSAS do Ni cùng các đồng nghiệp đề xuất và kỹ thuật HKCdo Hwang cùng các đồngnghiệ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
Trang 23Hì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ếulà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 ảnh154vẫ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ểmpeak, như ví dụ trên khả năng giấu lượng thông tin không quá 2859 bit trongảnh Để cảitiế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ểmpeak,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ểmpeak)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 trái
Trang 24mộ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 peakvàđ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