CHƢƠNG I: TỔNG QUAN VỀ KỸ THUẬT GIẤU TRONG ẢNH1.1. Tổng quan về kỹ thuật giấu tin (Steganography)1.1.1. Định nghĩa kỹ thuật giấu tinGiấu thông tin là một kỹ thuật nhúng (giấu) một lượng thông tin số nàođó vào trong một đối tượng dữ liệu số khác (giấu thông tin chỉ mang tính quyước không phải là một hành động cụ thể).1.1.2. Mục đích của giấu tinCó hai mục đích của giấu tin: 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 đó và phát hiện xuyên tạc thông tin.Có thể thấy 2 mục đích này hoàn toàn trái ngược nhau và dần phát triểnthành 2 lĩnh vực với những yêu cầu và tính chất khác nhau.Hình 1.1: Hai lĩnh vực chính của kỹ thuật giấu thông tinKỹ thuật giấu thông tin bí mật (Steganography): với mục đích đảm bảo antoà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 đượcnhiều thông tin nhất. Thông tin mật được giấu kỹ trong một đối tượng khác saocho người khác khó phát hiện được.Kỹ thuật giấu thông tin theo kiểu đánh giấu – thủy vân (watermarking)với mục đích để bảo vệ bản quyền chính đối tượng dùng để chứa thông tin,thường 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ố.1.1.3. Mô hình kỹ thuật giấu thông tin cơ bảnGiấu thông tin vào phương tiện chứa và tách lấy thông tin là hai quá trìnhtrái ngược nhau và có thể mô tả qua sơ đồ khối của hệ thống như sau:
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
Nguyễ Hoàng Sơn
Bùi Minh Việt
Lớp: D11ATTT
Hà Nội,24/4/2015
Trang 21
MỤC LỤC
MỞ ĐẦU 2
CHƯƠNG I: TỔNG QUAN VỀ KỸ THUẬT GIẤU TRONG ẢNH 3
1.1 Tổng quan về kỹ thuật giấu tin (Steganography) 3
1.1.1 Định nghĩa kỹ thuật giấu tin 3
1.1.2 Mục đích của giấu tin 3
1.1.3 Mô hình kỹ thuật giấu thông tin cơ bản 3
1.1.4 Mô hình kỹ thuật tách thông tin cơ bản 4
1.1.5 Yêu cầu thiết yếu đối với một hệ thống giấu tin 5
1.1.6 Môi trường giấu tin 5
1.1.7 Một số đặc diểm của việc giấu tin trên ảnh 6
CHƯƠNG II: KỸ THUẬT GIẤU TIN TRÊN K BIT LSB CỦA ẢNH 8
2.1 Khái niệm bit LSB 8
2.2 Phương pháp giấu tin trên k bit LSB cổ điển 8
2.3 Phương pháp giấu tin trên k-LSBs nâng cao (sử dụng khóa hoán vị) 10
2.4 Ví dụ minh họa 13
CHƯƠNG III: CÀI ĐẶT THỬ NGHIỆM 15
3.1 Xây dựng CSDL lưu trữ ảnh Bitmap 15
3.2 Xây dưng phần mềm trên C# 15
3.2.1 Cấu trúc ảnh BITMAP 15
3.2.2 Cài đặt chương trình 17
KẾT LUẬN 23
Trang 32
MỞ ĐẦU
Tính cấp thiết của đề tài: giấu tin trong ảnh là một bộ phận chiếm tỷ lệ lớn nhất trong các chương trình ứng dụng, các phần mềm, hệ thống giấu tin trong dữ liệu da phương tiện bởi lượng thông tin dược trao đổi bằng ảnh là rất lớn Hơn nữa, giấu thông tin trong ảnh cũng đóng vai trò hết sức quan trọng trong hầu hết các ứng dụng bảo vệ an toàn thông tin : nhận thức thông tin, xác định xuyên tạc thông tin, bảo vệ bản quyền tác giả, diều khiển truy nhập, giấu thông tin mật…
Vì những lý do đó báo cáo nghiên cứu về kỹ thuật giấu tin trên K Bit LSB của ảnh trình bày về kỹ thuật giấu tin trên miền LSB bằng các thuật toán: LSB
cổ điển, LSB nâng cao
Để thực hiện được điều đó cần thực hiện những nhiệm vụ sau:
- Nghiên cứu tổng quan về kỹ thuật giấu tin trong ảnh;
- Tìm hiểu kỹ thuật giấu tin trên K Bit LSB của ảnh;
- Xây dựng phần mềm thực hiện quy trình giấu và tách tin dựa trên
thuật toán đã phân tích trong báo cáo
Trang 43
CHƯƠNG I: TỔNG QUAN VỀ KỸ THUẬT GIẤU TRONG ẢNH 1.1 Tổng quan về kỹ thuật giấu tin (Steganography)
1.1.1 Định nghĩa kỹ thuật giấu tin
Giấu thông tin là một kỹ thuật nhúng (giấu) một lượng thông tin số nào
đó vào trong một đối tượng dữ liệu số khác (giấu thông tin chỉ mang tính quy ước không phải là một hành động cụ thể)
1.1.2 Mục đích của giấu tin
Có hai mục đích của giấu tin:
- 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 đó và phát hiện xuyên tạc thông tin
Có thể thấy 2 mục đích này hoàn toàn trái ngược nhau và dần phát triển thành 2 lĩnh vực với những yêu cầu và tính chất khác nhau
Hình 1.1: 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ó phát hiện được
Kỹ thuật giấu thông tin theo kiểu đánh giấu – thủy vân (watermarking) với mục đích để bảo vệ bản quyền chính đối tượng dùng để chứa thông tin, thường 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ố
1.1.3 Mô hình kỹ thuật giấu thông tin cơ bản
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 như sau:
Giấu thông tin
Giấu tin bí mật (Steganography)
Thuỷ vân số (Watermarking)
Trang 54
Hình 1.2: Lược đồ chung cho quá trình giấu tin
- 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 đó
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
1.1.4 Mô hình kỹ thuật tách thông tin cơ bản
Hình 1.3: Lược đồ chung cho quá trình giải mã thông tin
Thông tin giấu
Bộ nhúng thông tin
Phân phối trên mạng
Khoá giấu tin
Bộ nhúng thông tin
Thông tin giấu
Phương tiện chứa (audio, ảnh, video)
Phương tiện
chứa đã được
giấu tin
Phân phối trên mạng
Trang 65
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
1.1.5 Yêu cầu thiết yếu đối với một hệ thống giấu tin
Có 3 yêu cầu thiết yếu đối với một hệ thống giấu tin:
- Tính không nhìn thấy: là một trong 3 yêu cầu của bất kì 1 hệ giấu tin nào Tính không nhìn thấy là tính chất vô hình của thông tin nhúng trong phương tiện nhúng
- Tính mạnh mẽ: là yêu cầu thứ 2 của một hệ giấu tin Tính mạnh mẽ là khả năng chịu được các thao tác biến đổi nào đó trên phương tiện nhúng và các cuộc tấn công có chủ đích
- Khả năng nhúng: là yêu cầu thứ 3 của một hệ giấu tin Khả năng nhúng chính là số lượng thông tin nhúng được nhúng trong phương tiện chứa
1.1.6 Môi trường giấu tin
1.1.6.1 Giấu tin trong ảnh
Giấu tin trong ảnh hiện đang rất được quan tâm Nó đóng vai trò hết sức quan trọng trong hầu hết các ứng dụng bảo vệ an toàn thông tin như: xác thực thông tin, xác định xuyên tạc thông tin, bảo vệ bản quyền tác giả…
Một đặc điểm của giấu thông tin trong ảnh nữa đó là thông tin được giấu một cách vô hình, nó như là cách truyền thông tin mật cho nhau mà người khác không thể biết được bởi sau khi giấu thông tin chất lượng ảnh gần như không thay đổi đặc biệt đối với ảnh màu hay ảnh xám
1.1.6.2 Giấu tin trong audio
Khác với kỹ thuật giấu thông tin trong ảnh: phụ thuộc vào hệ thống thị giác của con người – HSV (Human Vision System), kỹ thuật giấu thông tin trong audio lại phụ thuộc vào hệ thống thính giác HAS (Human Auditory System) Bởi vì tai con người rất kém trong việc phát hiện sự khác biệt giữa các giải tần và công suất, có nghĩa là các âm thanh to, cao tần có thể che giấu đi được các âm thanh nhỏ, thấp một cách dễ dàng
Yêu cầu cơ bản và quan trọng nhất của giấu tin trong audio 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
Trang 76
1.1.6.3 Giấu tin trong video
Cũng giống như giấu thông tin trong ảnh hay trong audio, giấu tin trong video cũng được quan tâm và được phát triển mạnh mẽ cho nhiều ứng dụng như điều khiển truy cập thông tin, nhận thức thông tin, bản quyền tác giả…
Một phương pháp giấu tin trong video được đưa ra bởi Cox là phương pháp phân bố đều Ý tưởng cơ bản của phương pháp là phân phối thông tin giấu dàn trải theo tần số của dữ liệu gốc
1.1.6.4 Giấu thông tin trong văn bản dạng text
Giấu tin trong văn bản dạng text khó thực hiện hơn do có ít các thông tin
dư thừa, để làm được điều này người ta phải khéo léo khai thác các dư thừa tự nhiên của ngôn ngữ Một cách khác là tận dụng các định dạng văn bản (mã hoá thông tin vào khoảng cách giữa các từ hay các dòng văn bản) => Kỹ thuật giấu tin đang được áp dụng cho nhiều loại đối tượng chứ không riêng dữ liệu đa phương tiện như ảnh, audio, video
1.1.7 Một số đặc diểm của việc giấu tin trên ảnh
Một kỹ thuật giấu tin trên ảnh có một số đặc điểm sau:
- Tính vô hình của thông tin được giấu
- Số lượng thông tin được giấu
- Tính an toàn và bảo mật của thông tin
- Ảnh môi trường đối với quá trình giải mã
1.1.7.1 Tính vô hình của thông tin
Khái niệm này dựa trên đặc điểm của hệ thống thị giác của con người Thông tin nhúng là không tri giác được nếu một người với thị giác bình thường không phân biệt được ảnh môi trường và ảnh kết quả (tức là không phân biệt
được ảnh trược và sau khi giấu thông tin) Trong khi image hiding (Steganography) yêu cầu tính vô hình của thông tin ở mức độ cao thì
Watermarking lại chỉ yêu cầu ở một cấp độ nhất định Chẳng hạn như người ta
áp dụng Watermarking cho việc gắn một biểu tượng mờ vào một chương trình
truyền hình để bảo vệ bản quyền
1.1.7.2 Tỷ lệ giấu tin
Lượng thông tin giấu so với kích thước ảnh môi trường cũng là một vấn
đề cần quan tâm trong một thuật toán giấu tin Rõ ràng là có thể chỉ giấu 1 bit thông tin vào mỗi ảnh mà không cần lo lắng về độ nhiễu của ảnh nhưng như vậy
sẽ rất kém hiệu quả khi mà thông tin giấu có kích thước bằng Kb Các thuật toán
Trang 8trọng đối với ảnh image hiding
1.1.7.4 Ảnh môi trường đối với quá trình giải mã
Yêu cầu cuối cùng là thuật toán phải cho phép lấy lại được những thông tin đã giấu trong ảnh mà không có ảnh môi trường Điều này là một thuận lợi khi ảnh môi trường là duy nhất nhưng lại làm giới hạn khả năng ứng dụng của
kỹ thuật giấu tin
Trang 9Ví dụ: Tách bit cuối cùng trong 8 bit biểu diễn mỗi điểm ảnh của ảnh 256
10011100 10010101 11100010
Hình 2.1: Mỗi điểm ảnh biểu diễn bởi 8 bit, bit cuối cùng được coi là bit ít quan
trọng nhất tức là bit bên phải nhất
Trong phép tách này ta coi bit cuối cùng là bit ít quan trọng nhất, thay đổi giá trị của bit này thì sẽ thay đổi giá trị của điểm ảnh lên hoặc xuống đúng một đơn vị, ví dụ như giá trị điểm ảnh là 234 thì khi thay đổi bit cuối cùng nó có thể 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 nhỏ
đó ta hi vọng là cấp độ màu của điểm ảnh sẽ không bị thay đổi nhỉều
2.2 Phương pháp giấu tin trên k bit LSB cổ điển
Trang 109
Với n' = × Việc ánh xạ giữa các n-bit thông điệp bí mật M = { }
và thông điệp nhúng M‟ = { } có thể được định nghĩa như sau:
∑
Thứ hai, tập hợp con điểm ảnh { , } được chọn từ ảnh gốc
C trong 1 chuỗi hành động liên tiếp nhau Tiến trình nhúng hoàn tất bằng việc thay thế k-LSBs của bởi Theo toán học, một giá trị của điểm ảnh được lựa chọn để lưu trữ k-bit thông điệp được thay đổi khớp với điểm ảnh đã giấu tin như sau:
Trong tiến trình tách, với ảnh đã giấu tin S, thông điệp nhúng có thể được tách ra mà không đề cập đến ảnh gốc Sử dụng cùng một trình tự như trong quá trình nhúng, tập hợp các điểm ảnh { , } lưu trữ các bit thông điệp bí mật được lựa chọn từ ảnh đã giấu tin K-LSBs của các điểm ảnh được tách ra và nối lại để tái tạo lại thông điệp bí mật Trong toán học, việc nhúng thông điệp bit mi có thể được khôi phục bằng:
Tiền xử lý thuật toán giấu và tách tin LSB cổ điển: để có thể thực hiện tốt chương trình, trước hết cần bổ sung một số hàm thành phần với mục đích cài đặt chương trình thuận lợi:
- Hàm chuyển đổi từ chuỗi kí tự sang số nhị phân
- Hàm chuyển đổi từ chuỗi số nhị phân sang chuỗi kí tự
2.2.2 Thuật toán giấu tin và tách tin trên k bit LSB cổ điển
2.2.2.1 Thuật toán giấu tin
- Đầu vào:
+ Ảnh gốc cấp xám
+ Thông điệp bí mật
+ Số bit LSB cần mã hóa (2 hoặc 4 bit)
- Đầu ra: Ảnh mang tin
- Các bước thực hiện:
+ Bước 1: Biểu diễn ma trận điểm ảnh về dạng số thập phân với m
x n phần tử, rồi chuyển ma trận ảnh về mảng 1 chiều I với i phần tử, chuyển các điểm ảnh về dạng nhị phân
+ Bước 2: Biểu diễn thông điệp dưới dạng số nhị phân
Trang 1110
+ Bước 3: Cứ 8 bit ảnh tách bỏ số bit LSB ngoài cùng bên phải và ghép phần còn lại với 2 bit nhị phân đầu của thông điệp, kết quả thu được đưa
về dạng thập phân rồi gán ngược lại vào I(i)
+ Bước 4: Thực hiện lại bước 3 cho đến khi lấy hết các bit của chuỗi nhị phân thông điệp ghép với các bit ảnh Chuyển đổi ảnh I từ mảng một chiều về mảng 2 chiều m x n phần tử Được ảnh mới đã giấu tin
2.2.2.2 Thuật toán tách tin
- Đầu vào: Ảnh mang tin
- Đầu ra: Ảnh đã tách tin và thông điệp mật
- Các bước thực hiện:
+ Bước 1: Biểu diễn ma trận điểm ảnh về dạng số thập phân với m
x n phần tử Chuyển đổi ma trận ảnh m x n phần tử về mảng 1 chiều I với i phần
Với trường hợp giấu trên 4 bit thông điệp làm tương tự, nhưng tách lấy 4 bit nhị phân đầu của ảnh ghép với 4 bit nhị phân thông điệp
2.3 Phương pháp giấu tin trên k-LSBs nâng cao (sử dụng khóa hoán vị) 2.3.1 Mô tả phương pháp
Đây là phương pháp tối ưu khi k là rất lớn Những hình ảnh C, và thông điệp bí mật M sẽ được sắp xếp lại hình thành các khối bit (blk) C” và M” tương
ứng:
C” = { | 0 ≤ i ≤ 2 blk – 1| {0, 1, 2, … , 2blk – 1 }}
M”= { | 0 ≤i ≤ 2 blk –1 | {0, 1, 2, …, 2blk – 1 }}
Theo toán học, quá trình mã khối sẽ được lấy bằng cách thực hiện trên bit XOR
điều hành mỗi khối C” và M” như sau:
if (cipheri= xor , 1≤ i ≤ length(M) in blk ( M blk))
cipher = {cipher|1 ≤ i ≤ length(M”) in blk | cipheri={0, 1, 2, …, 2blk – 1}} cipheri ={0, 1, 2, …, 2blk – 1}}
i = xor
end
Trang 1211
Để có thể thực hiện tốt chương trình, trước hết cần bổ sung một số hàm thành phần với mục đích cài đặt chương trình thuận lợi:
- Hàm mã hóa thông điệp
- Hàm giải mã thông điệp
- Với phương pháp giấu và tách tin nâng cao có quy đổi ta sử dụng bảng sau để quy đổi:
STT Kí tự Mã quy đổi STT Kí tự Mã quy đổi
Trang 1312
2.3.2 Thuật toán giấu tin và tách tin trên k bit LSB nâng cao
2.3.2.1 Thuật toán giấu tin
+ Bước 1: Biểu diễn ma trận điểm ảnh về dạng số thập phân với m
x n phần tử Chuyển đổi ma trận ảnh m x n phần tử về mảng 1 chiều I với i phần
tử
+ Bước 2: Biểu diễn thông tin giấu dưới dạng chuỗi nhị phân + Bước 3: Sử dụng một khóa 8 bit bất kỳ (khóa là kí tự, chuyển khóa về dạng mảng như với thông điệp) đem mã hóa với chuỗi thông điệp bí mật bằng phép XOR: cứ 8 bit khóa đem XOR với 8 bit đầu vào của thông điệp Thực hiện lại bước này cho đến khi nội dung thông điệp được mã hóa hết
+ Bước 4: Thông điệp đã mã hóa đem giấu vào ảnh tương tự như phương pháp thay thế k bit LSB cổ điển: Là tách lấy 6 bit đầu của bit ảnh đem ghép với 2 bit đầu trong thông điệp rồi chuyển về dạng thập phân và gán ngược lại vào ảnh
+ Bước 5: Thực hiện bước 4 cho đến khi lấy hết các bit của chuỗi nhị phân thông điệp để ghép với các bit ảnh Chuyển đổi ảnh I từ mảng một chiều về mảng 2 chiều m x n phần tử, được ảnh mới đã giấu tin
2.3.2.2 Thuật toán tách tin
Trang 1413
+ Bước 1: Biểu diễn ma trận điểm ảnh về dạng số thập phân với m
x n phần tử Chuyển đổi ma trận ảnh m x n phần tử về mảng 1 chiều I với i phần
+ Bước 4: Sử dụng hàm giải mã thực hiện giải mã thông điệp bằng khóa 8 bit, ta thu được kết quả là nội dung gốc của thông điệp
Trường hợp chuyển đổi thông điệp về bảng mã đã được quy ước sẵn: Tương tự như trường hợp chuyển đổi kí tự về mã nhị phân của nó, nhưng ở đây khi giấu tin ta sử dụng bảng quy đổi các kí tự và chữ số theo một chuẩn do người lập trình tự định nghĩa Đến bước tách ta lại quy đổi ngược lại về dạng kí
Cứ 8 bit ảnh, ta lấy 6 bit đầu của điểm ảnh (từ vị trí I0 đến I5) ghép với
2 bit thông điệp (từ vị trí a0 đến a1) sẽ được:
01111001 11000110 11010100 11111101 2.4.1.2 Tách tin
Lấy 2 bit ngoài cùng bên phải trong mỗi điểm ảnh mới:
01111001 11000110 11010100 11111101
Ghép lại với nhau được chuỗi nhị phân thông điệp, chính là chữ “a”:
0110001