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:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN AN TOÀN MẬT MÃ VÀ ỨNG DỤNG NGHIÊN CỨU KỸ THUẬT GIẤU TIN TRÊN K BIT LSB CỦA ẢNH Giảng Viên HD: T.S Đỗ Xuân Chợ Thành Viên TH: Bạch Tuấn Đạt Lê Việt Hưng Nhữ Đình Hưng Nguyễn Đỗ Nhật Quân Nguyễ Hoàng Sơn Bùi Minh Việt Lớp: D11ATTT Hà Nội,24/4/2015 MỤC LỤC MỞ ĐẦU CHƢƠNG I: TỔNG QUAN VỀ KỸ THUẬT GIẤU TRONG ẢNH 1.1 Tổng quan kỹ thuật giấu tin (Steganography) 1.1.1 Định nghĩa kỹ thuật giấu tin 1.1.2 Mục đích giấu tin 1.1.3 Mô hình kỹ thuật giấu thông tin 1.1.4 Mô hình kỹ thuật tách thông tin 1.1.5 Yêu cầu thiết yếu hệ thống giấu tin 1.1.6 Môi trường giấu tin 1.1.7 Một số đặc diểm việc giấu tin ảnh CHƢƠNG II: KỸ THUẬT GIẤU TIN TRÊN K BIT LSB CỦA ẢNH 2.1 Khái niệm bit LSB 2.2 Phƣơng pháp giấu tin k bit LSB cổ điển 2.3 Phƣơng pháp giấu tin 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 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 MỞ ĐẦU Tính cấp thiết đề tài: giấu tin ảnh phận chiếm tỷ lệ lớn chương trình ứng dụng, phần mềm, hệ thống giấu tin liệu da phương tiện lượng thông tin dược trao đổi ảnh lớn Hơn nữa, giấu thông tin ảnh đóng vai trò quan trọng hầu hết ứ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ệ quyền tác giả, diều khiển truy nhập, giấu thông tin mật… Vì lý báo cáo nghiên cứu kỹ thuật giấu tin K Bit LSB ảnh trình bày kỹ thuật giấu tin miền LSB thuật toán: LSB cổ điển, LSB nâng cao Để thực điều cần thực nhiệm vụ sau: - Nghiên cứu tổng quan kỹ thuật giấu tin ảnh; - Tìm hiểu kỹ thuật giấu tin K Bit LSB ảnh; - Xây dựng phần mềm thực quy trình giấu tách tin dựa thuật toán phân tích báo cáo CHƢƠNG I: TỔNG QUAN VỀ KỸ THUẬT GIẤU TRONG ẢNH 1.1 Tổng quan kỹ thuật giấu tin (Steganography) 1.1.1 Định nghĩa kỹ thuật giấu tin Giấu thông tin kỹ thuật nhúng (giấu) lượng thông tin số vào đối tượng liệu số khác (giấu thông tin mang tính quy ước hành động cụ thể) 1.1.2 Mục đích giấu tin Có hai mục đích giấu tin: - Bảo mật cho liệu giấu - Bảo đảm an toàn (bảo vệ quyền) cho đối tượng chứa liệu giấu phát xuyên tạc thông tin Có thể thấy mục đích hoàn toàn trái ngược dần phát triển thành lĩnh vực với yêu cầu tính chất khác Giấu thông tin Giấu tin bí mật (Steganography) Thuỷ vân số (Watermarking) Hình 1.1: Hai lĩnh vực 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 bảo mật thông tin tập trung vào kỹ thuật giấu tin để giấu nhiều thông tin Thông tin mật giấu kỹ đối tượng khác cho người khác khó phát 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ệ quyền đối tượng dùng để chứa thông tin, thường tập trung đảm bảo số yêu cầu đảm bảo tính bền vững… Đây ứng dụng kỹ thuật thuỷ vân số 1.1.3 Mô hình kỹ thuật giấu thông tin Giấu thông tin vào phương tiện chứa tách lấy thông tin hai trình trái ngược mô tả qua sơ đồ khối hệ thống sau: Thông tin giấu Phương tiện chứa (audio, ảnh, video) Phương tiện chứa giấu tin Bộ nhúng thông tin Phân phối mạng Khoá Hình 1.2: Lược đồ chung cho trình giấu tin - Thông tin cần giấu tuỳ theo mục đích người sử dụng, thông điệp (với tin bí mật) hay logo, hình ảnh quyền - Phương tiện chứa: file ảnh, text, audio… môi trường để nhúng tin - Bộ nhúng thông tin: chương trình thực việc giấu tin - Đầu ra: phương tiện chứa có tin giấu Tách thông tin từ phương tiện chứa diễn theo quy trình ngược lại, với đầu thông tin giấu vào phương tiện chứa Phương tiện chứa sau tách lấy thông tin sử dụng, quản lý theo yêu cầu khác 1.1.4 Mô hình kỹ thuật tách thông tin Khoá giấu tin Phương tiện chứa giấu tin Phương tiện chứa (audio, ảnh, video) Bộ nhúng thông tin Thông tin giấu Hình 1.3: Lược đồ chung cho trình giải mã thông tin Phân phối mạng Sau nhận đối tượng phương tiện chứa có giấu thông tin, trình giải mã thực thông qua giải mã tương ứng với nhúng thông tin với khoá trình nhúng Kết thu gồm phương tiện chứa gốc thông tin giấu Bước thông tin giấu 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 hệ thống giấu tin Có yêu cầu thiết yếu hệ thống giấu tin: - Tính không nhìn thấy: yêu cầu hệ giấu tin Tính không nhìn thấy tính chất vô hình thông tin nhúng phương tiện nhúng - Tính mạnh mẽ: yêu cầu thứ hệ giấu tin Tính mạnh mẽ khả chịu thao tác biến đổi phương tiện nhúng công có chủ đích - Khả nhúng: yêu cầu thứ hệ giấu tin Khả nhúng số lượng thông tin nhúng nhúng phương tiện chứa 1.1.6 Môi trường giấu tin 1.1.6.1 Giấu tin ảnh Giấu tin ảnh quan tâm Nó đóng vai trò quan trọng hầu hết ứ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ệ quyền tác giả… Một đặc điểm giấu thông tin ảnh thông tin giấu cách vô hình, cách truyền thông tin mật cho mà người khác biết sau giấu thông tin chất lượng ảnh gần không thay đổi đặc biệt ảnh màu hay ảnh xám 1.1.6.2 Giấu tin audio Khác với kỹ thuật giấu thông tin ảnh: phụ thuộc vào hệ thống thị giác người – HSV (Human Vision System), kỹ thuật giấu thông tin audio lại phụ thuộc vào hệ thống thính giác HAS (Human Auditory System) Bởi tai người việc phát khác biệt giải tần công suất, có nghĩa âm to, cao tần che giấu âm nhỏ, thấp cách dễ dàng Yêu cầu quan trọng giấu tin audio đảm bảo tính chất ẩn thông tin giấu đồng thời không làm ảnh hưởng đến chất lượng liệu 1.1.6.3 Giấu tin video Cũng giống giấu thông tin ảnh hay audio, giấu tin video quan tâm phát triển mạnh mẽ cho nhiều ứng dụng điều khiển truy cập thông tin, nhận thức thông tin, quyền tác giả… Một phương pháp giấu tin video đưa Cox phương pháp phân bố Ý tưởng phương pháp phân phối thông tin giấu dàn trải theo tần số liệu gốc 1.1.6.4 Giấu thông tin văn dạng text Giấu tin văn dạng text khó thực có thông tin dư thừa, để làm điều người ta phải khéo léo khai thác dư thừa tự nhiên ngôn ngữ Một cách khác tận dụng định dạng văn (mã hoá thông tin vào khoảng cách từ hay dòng văn bản) => Kỹ thuật giấu tin áp dụng cho nhiều loại đối tượng không riêng liệu đa phương tiện ảnh, audio, video 1.1.7 Một số đặc diểm việc giấu tin ảnh Một kỹ thuật giấu tin ảnh có số đặc điểm sau: - Tính vô hình thông tin giấu - Số lượng thông tin giấu - Tính an toàn bảo mật thông tin - Ảnh môi trường trình giải mã 1.1.7.1 Tính vô hình thông tin Khái niệm dựa đặc điểm hệ thống thị giác người Thông tin nhúng không tri giác người với thị giác bình thường không phân biệt ảnh môi trường ảnh kết (tức không phân biệt ảnh trược sau giấu thông tin) Trong image hiding (Steganography) yêu cầu tính vô hình thông tin mức độ cao Watermarking lại yêu cầu cấp độ định Chẳng hạn người ta áp dụng Watermarking cho việc gắn biểu tượng mờ vào chương trình truyền hình để bảo vệ 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 vấn đề cần quan tâm thuật toán giấu tin Rõ ràng giấu bit thông tin vào ảnh mà không cần lo lắng độ nhiễu ảnh hiệu mà thông tin giấu có kích thước Kb Các thuật toán cố gắng đạt mục đích làm giấu nhiều thông tin mà không gây nhiễu đáng kể 1.1.7.3 Tính bảo mật Thuật toán nhúng tin coi có tính bảo mật thông tin nhúng không bị tìm bị công cách có chủ đích sở có hiểu biết đầy đủ thuật toán nhúng tin có giải mãn (trừ khóa bí mật), có ảnh có mang thông tin (ảnh kết quả) Đây yêu cầu quan trọng ảnh image hiding 1.1.7.4 Ảnh môi trƣờng trình giải mã Yêu cầu cuối thuật toán phải cho phép lấy lại thông tin giấu ảnh mà ảnh môi trường Điều thuận lợi ảnh môi trường lại làm giới hạn khả ứng dụng kỹ thuật giấu tin CHƢƠNG II: KỸ THUẬT GIẤU TIN TRÊN K BIT LSB CỦA ẢNH 2.1 Khái niệm bit LSB Bit có trọng số thấp bit có ảnh hưởng tới việc định tới màu sắc điểm ảnh, ta thay đổi bit quan trọng điểm ảnh màu sắc điểm ảnh tương đối gần với điểm ảnh cũ Như kỹ thuật tách bit xử lý ảnh sử dụng nhiều quy trình giấu tin Việc xác định LSB điểm ảnh ảnh phụ thuộc vào định dạng ảnh số bit màu dành cho điểm ảnh Ví dụ ảnh 16 bit 15 bit biểu diễn màu RGB điểm ảnh bit cuối không dùng đến tách bit điểm ảnh để giấu tin, với ảnh 256 màu bit cuối bit biểu diễn điểm ảnh coi bit quan trọng nhất… Ví dụ: Tách bit cuối bit biểu diễn điểm ảnh ảnh 256 10011100 10010101 11100010 Hình 2.1: Mỗi điểm ảnh biểu diễn bit, bit cuối coi bit quan trọng tức bit bên phải Trong phép tách ta coi bit cuối bit quan trọng nhất, thay đổi giá trị bit thay đổi giá trị điểm ảnh lên xuống đơn vị, ví dụ giá trị điểm ảnh 234 thay đổi bit cuối mang giá trị 235 đổi bit cuối từ thành Với thay đổi nhỏ ta hi vọng cấp độ màu điểm ảnh không bị thay đổi nhỉều 2.2 Phƣơng pháp giấu tin k bit LSB cổ điển 2.2.1 Mô tả phƣơng pháp Với C ảnh nguyên 8-bit màu xám, kích thước × điểm ảnh, có C = { | ≤ i ≤ , ≤j ≤ , ={0, 1, 2, …, 255 }} M thông điệp dài n bit biểu diễn dạng: M={ |0≤i< {0,1}} Giả sử n-bit thông điệp bí mật M nhúng vào k bit LSB bên phải ảnh gốc C Trước tiên, thông điệp bí mật M xếp lại để tạo thành hình ảnh ảo k-bit, biểu diễn M dạng: M‟ = { | ≤ i < , {0,1…, }} Với n' = × Việc ánh xạ n-bit thông điệp bí mật M = { thông điệp nhúng M‟ = { } định nghĩa sau: } ∑ Thứ hai, tập hợp điểm ảnh { , } chọn từ ảnh gốc C chuỗi hành động liên tiếp Tiến trình nhúng hoàn tất việc thay k-LSBs Theo toán học, giá trị điểm ảnh lựa chọn để lưu trữ k-bit thông điệp thay đổi khớp với điểm ảnh giấu tin sau: Trong tiến trình tách, với ảnh giấu tin S, thông điệp nhúng tách mà không đề cập đến ảnh gốc Sử dụng trình tự trình nhúng, tập hợp điểm ảnh { , } lưu trữ bit thông điệp bí mật lựa chọn từ ảnh giấu tin K-LSBs điểm ảnh tách 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 khôi phục bằng: Tiền xử lý thuật toán giấu tách tin LSB cổ điển: để thực tốt chương trình, trước hết cần bổ sung 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 tách tin 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 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 dạng số thập phân với m x n phần tử, chuyển ma trận ảnh mảng chiều I với i phần tử, chuyển điểm ảnh dạng nhị phân + Bước 2: Biểu diễn thông điệp dạng số nhị phân + Bước 3: Cứ bit ảnh tách bỏ số bit LSB bên phải ghép phần lại với bit nhị phân đầu thông điệp, kết thu đưa dạng thập phân gán ngược lại vào I(i) + Bước 4: Thực lại bước lấy hết bit chuỗi nhị phân thông điệp ghép với bit ảnh Chuyển đổi ảnh I từ mảng chiều mảng chiều m x n phần tử Được ảnh 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 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 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ử mảng chiều I với i phần tử + Bước 2: Chuyển bit ảnh dạng nhị phân, bit ảnh tách lấy bit bên phải Đem ghép kết lại với + Bước 3: Kết thu sử dụng hàm chuyển đổi từ chuỗi số nhị phân chuỗi kí tự Sau lặp lại trình số lần số lần duyệt, ta thu nội dung thông điệp Với trường hợp giấu bit thông điệp làm tương tự, tách lấy bit nhị phân đầu ảnh ghép với bit nhị phân thông điệp 2.3 Phƣơng pháp giấu tin k-LSBs nâng cao (sử dụng khóa hoán vị) 2.3.1 Mô tả phƣơng pháp Đây phương pháp tối ưu k lớn Những hình ảnh C, thông điệp bí mật M xếp lại hình thành khối bit (blk) C” M” tương ứng: C” = { | ≤ i ≤ 2blk – 1| {0, 1, 2, … , 2blk – }} M”= { | ≤i ≤ 2blk – | {0, 1, 2, …, 2blk – }} Theo toán học, trình mã khối lấy cách thực bit XOR điều hành khối C” M” sau: if (cipheri= xor , 1≤ i ≤ length(M) in blk ( Mblk)) cipher = {cipher|1 ≤ i ≤ length(M”) in blk | cipheri={0, 1, 2, …, 2blk – 1}} cipheri ={0, 1, 2, …, 2blk – 1}} i = xor end 10 Để thực tốt chương trình, trước hết cần bổ sung 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 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 A, a 000001 20 T, t 010100 B, b 000010 21 U, u 010101 C, c 000011 22 V, v 010110 D, d 000100 23 W, w 010111 E, e 000101 24 X, x 011000 F, f 000110 25 Y, y 011001 G, g 000111 26 Z, z 011010 H, h 001000 27 011011 I, i 001001 28 011100 10 J, j 001010 29 011101 11 K, k 001011 30 011110 12 L, l 001100 31 011111 13 M, m 001101 32 100000 14 N, n 001110 33 100001 15 O, o 001111 34 100010 16 P, p 010000 35 100011 17 Q, q 010001 36 100100 18 R, r 010010 37 „„ 100101 19 S, s 010011 Bảng 1: Bảng quy đổi 11 2.3.2 Thuật toán giấu tin tách tin k bit LSB nâng cao 2.3.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 + Khóa (8 bit) + Số bit LSB cần mã hóa điểm ảnh (2 bit) - Đầu ra: + Ảnh mang tin + Khóa + Số bit thông điệp cần mã hóa - Các bước thực hiện: + Bước 1: Biểu diễn ma trận điểm ảnh 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ử mảng chiều I với i phần tử + Bước 2: Biểu diễn thông tin giấu dạng chuỗi nhị phân + Bước 3: Sử dụng khóa bit (khóa kí tự, chuyển khóa dạng mảng với thông điệp) đem mã hóa với chuỗi thông điệp bí mật phép XOR: bit khóa đem XOR với bit đầu vào thông điệp Thực lại bước nội dung thông điệp mã hóa hết + Bước 4: Thông điệp mã hóa đem giấu vào ảnh tương tự phương pháp thay k bit LSB cổ điển: Là tách lấy bit đầu bit ảnh đem ghép với bit đầu thông điệp chuyển dạng thập phân gán ngược lại vào ảnh + Bước 5: Thực bước lấy hết bit chuỗi nhị phân thông điệp để ghép với bit ảnh Chuyển đổi ảnh I từ mảng chiều mảng chiều m x n phần tử, ảnh giấu tin 2.3.2.2 Thuật toán tách tin - Đầu vào: + Ảnh giấu tin + Khóa (8 bit) + Số lần duyệt + Số bit thông điệp cần mã hóa - Đầu ra: + Ảnh tách tin + Thông điệp - Các bước thực hiện: 12 + Bước 1: Biểu diễn ma trận điểm ảnh 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ử mảng chiều I với i phần tử + Bước 2: Chuyển bit ảnh dạng nhị phân, bit ảnh tách lấy bit bên phải Đem ghép kết lại với + Bước 3: Kết thu sử dụng hàm chuyển đổi từ chuỗi số nhị phân chuỗi kí tự Sau lặp lại trình số lần số lần duyệt, ta thu nội dung thông điệp mã hóa + Bước 4: Sử dụng hàm giải mã thực giải mã thông điệp khóa bit, ta thu kết nội dung gốc thông điệp Trường hợp chuyển đổi thông điệp bảng mã quy ước sẵn: Tương tự trường hợp chuyển đổi kí tự mã nhị phân nó, giấu tin ta sử dụng bảng quy đổi kí tự chữ số theo chuẩn người lập trình tự định nghĩa Đến bước tách ta lại quy đổi ngược lại dạng kí tự số ban đầu 2.4 Ví dụ minh họa 2.4.1 Trƣờng hợp giấu tách tin LSB cổ điển 2.4.1.1 Giấu tin Giả sử ta có điểm ảnh sau: 123 197 213 Chuyển điểm ảnh dạng nhị phân: 01111011 11000101 11010101 255 11111111 Thông điệp bí mật: chữ „a‟ có mã ASCII 97, biểu diễn dạng nhị phân sau: 01100001 Cứ bit ảnh, ta lấy bit đầu điểm ảnh (từ vị trí I0 đến I5) ghép với bit thông điệp (từ vị trí a0 đến a1) được: 01111001 11000110 11010100 11111101 2.4.1.2 Tách tin Lấy bit bên phải điểm ảnh mới: 01111001 11000110 11010100 11111101 Ghép lại với chuỗi nhị phân thông điệp, chữ “a”: 0110001 13 2.4.2 Trƣờng hợp giấu tách tin LSB nâng cao 2.4.2.1 Giấu tin Giả sử ta có điểm ảnh sau: 123 197 213 Chuyển điểm ảnh dạng nhị phân: 01111011 11000101 11010101 255 11111111 Thông điệp bí mật: chữ „a‟ có mã ASCII 97, biểu diễn dạng nhị phân sau: 01100001 Nhập khóa, kí tự bit, giả sử chữ „b‟, có dạng nhị phân sau: 01100010 Mã hóa thông điệp dùng phép XOR(a, b) được: 00000011 Cứ bit ảnh, ta lấy bit đầu điểm ảnh ghép với bit thông điệp mã hóa được: 01111000 11000100 11010100 11111111 2.4.2.2 Tách tin Lấy bit bên phải điểm ảnh mới: 01111000 11000100 11010100 11111111 Ghép lại với chuỗi nhị phân thông điệp bị mã hóa: 0000011 Sử dụng hàm mã hóa để lấy lại thông điệp gốc M, cách XOR(M, b) ta nhị phân chữ „a‟: 01100001 Trường hợp giấu tách tin LSB nâng cao có quy đổi, tương tự không chuyển chữ „a‟ dạng nhị phân mà a => 000001 14 CHƢƠNG III: CÀI ĐẶT THỬ NGHIỆM 3.1 Xây dựng CSDL lƣu trữ ảnh Bitmap - CSDL lưu trữ ảnh Bitmap: Hình 3.1: CSDL lưu trữ ảnh bitmap 3.2 Xây dƣng phần mềm C# 3.2.1 Cấu trúc ảnh BITMAP Ảnh BITMAP định dạng ảnh Microsoft đề xuất , có phần mở rộng BMP Ảnh bitmap chia thành ba dạng: ảnh nhị phân (ảnh đen trắng), ảnh đa mức xám , ảnh màu Ảnh đen trắng: ảnh mà điểm ảnh thể hai trạng thái để biểu diễn trạng thái điểm ảnh đen hay trắng 15 Hình 3.2: Ví dụ ảnh đen trắng Ảnh đa cấp xám: ảnh mà điểm ảnh biểu diễn giá trị cường độ sáng điểm ảnh Hình 3.3: Ví dụ ảnh đa cấp xám Ảnh màu: ảnh mà điểm ảnh biểu diễn ba đại lượng R, G, B Số lượng màu loại ảnh lên tới 2653 màu khác nhau, số lượng màu thực tế ảnh thường nhỏ Để tiết kiệm nhớ với ảnh có số lượng màu nhỏ 256 màu điểm ảnh lưu trữ dạng bảng màu Với ảnh có số màu lớn điểm ảnh không tổ chức dạng bảng màu, giá trị điẻm ảnh giá trị thành phần màu R, G, B Với ảnh có số lượng màu lớn, tùy theo chất lượng ảnh mà định số bit để biểu diễn cho màu thường 24 bit, 32 bit Với ảnh 24 bit thành phần màu biểu diễn byte (8 bit) Hình 3.4: Ví dụ ảnh màu 16 Ảnh bitmap đựợc lưu trữ dạng nhị phân, tệp dạng bitmap chia thành phần : - Phần tiêu để tệp (Bitmap header): Mô tả thông tin chung tệp định dạng bitmap, độ lớn phần cố định với tệp bitmap - Thông tin ảnh (Bitmap Infor): Mô tả thông tin ảnh lưu trữ, độ lớn phần cố định - Bảng màu (Palette Table): Bảng màu ảnh bitmap, độ lớn phần không ( bảng màu) ảnh đen trắng ảnh màu có số lượng màu lớn 256 màu - Vùng liệu (Data): Thông tin điểm ảnh , độ lớn phần phụ thuộc vào kich thước ảnh Phần Data lưu trữ ảnh theo hướng từ lên từ trái qua phải Thứ tự lưu trữ nhớ sau: Bitmap Header → Bitmap Infor → Palette Table → Data 3.2.2 Cài đặt chƣơng trình Xây dựng class có tên Crypto.cs chứa phương thức public static byte[] Encrypt (byte[] message, string password) Phương thức nhận vào tham số gồm: thông điệp mà ta muốn mã hóa mật để trao đổi tin người gửi người nhận Phương thức biến đối mật thành khóa có độ dài 128 byte thông qua lớp PasswordDeriveBytes Microsoft.NET nhằm tăng tính bảo mật Sau kết hợp trộn thông điệp khóa toán tử XOR để tạo mảng byte ta thực đem giấu vào ảnh public static byte[] Decrypt (byte[] message, string password) Phương thức trình giải mã ngược phương thức trên,tham số thứ mảng byte sau trích từ file ảnh cần giải mã,tham số thứ mật để lấy thông tin người nhận nhập vào,với mật này,ta dùng lớp PasswordDeriveBytes Microsoft.NET để tạo khóa 128byte (lưu ý người dùng nhập mật khẩu,thì sinh khóa lúc ta mã hóa) Dùng phép XOR mảng byte khóa ta nhận thông điệp gốc ban đầu 17 Xây dựng class có tên LSB.CS chứa phương thức public static void Encode (FileStream inStream, byte[] Message, FileStream outStream) Phương thức nhận vào tham số: file ảnh đầu vào, mảng byte cần đưa vào ảnh ảnh đầu public static byte[] Decode (FileStream inStream, int length) Phương thức nhận vào file ảnh có chứa tin giấu, độ dài thông điệp chứa ết trả mảng byte mà ta giấu thủ tục Encode Kết quả: - Giao diện giấu tin: Hình 3.5: Giao diện giấu tin 18 - Chọn ảnh cần giấu tin có kích cỡ 512*512: Hình 3.6: Giao diện ảnh cần giấu tin 19 - Nhập tin nhắn cần giấu “Ptit-Báo Cáo Môn An Toàn Mật Mã-Lớp D11ATTT” mật D11ATTT Nhấn OK chọn tên file nơi lưu file ảnh sau giấu: Hình 3.7: Giao diện chọn ảnh cần giấu tin 20 - Quá trình giấu tin hoàn tất, ảnh sau giấu tin nằm bên phải: Hình 3.8: Giao diện giấu tin hoàn tất - Giao diện tách tin: Hình 3.9: Giao diện tách tin 21 - Chọn ảnh cần tách tin nhập mật ”D11ATTT” nhấn OK trình tách tin hoàn tất ta tin nhắn ban đầu: Hình 4.0: Giao diện trình tách tin hoàn tất 22 KẾT LUẬN Bài báo cáo giả tất yêu cầu đặt Cụ thể thực công việc: - Nghiên cứu tổng quan kỹ thuật giấu tin ảnh; - Tìm hiểu kỹ thuật giấu tin k bit LSB ảnh.; - Xây dựng CSDL lưu trữ ảnh bitmap; - Tìm hiểu cấu trúc ảnh bitmap; - Xây dựng phần mềm giấu tách tin C# 23 TÀI LIỆU THAM KHẢO [1] Nguyễn Diễm Hương, Kỹ thuật giấu tin k bit LSB ảnh, Trường đại học dân lập Hải Phòng, 2012 [2] Nguyễn Xuân Huy, Trần Quốc Dũng, Giáo trình giấu tin thuỷ vân ảnh, Trung tâm thông tin tư liệu, TTKHTN - CN 2003 [3] Ingemar Cox, Jeffrey Bloom, Matthew Miller, Ton Kalker, Jessica Fridrich, Digital Watermarking and Steganography, Morgan Kaufmann, 2008 24 [...]... diện ảnh cần giấu tin 19 - Nhập tin nhắn cần giấu “Ptit-Báo Cáo Môn An Toàn Mật Mã-Lớp D11ATTT” và mật khẩu là D11ATTT Nhấn OK chọn tên file và nơi lưu file ảnh sau khi giấu: Hình 3.7: Giao diện chọn ảnh cần giấu tin 20 - Quá trình giấu tin hoàn tất, ảnh sau khi giấu tin nằm bên phải: Hình 3.8: Giao diện giấu tin hoàn tất - Giao diện tách tin: Hình 3.9: Giao diện tách tin 21 - Chọn ảnh cần tách tin. .. tham số: file ảnh đầu vào, mảng các byte cần đưa vào trong ảnh và ảnh đầu ra 2 public static byte[] Decode (FileStream inStream, int length) Phương thức này nhận vào 1 file ảnh có chứa tin giấu, độ dài của thông điệp chứa trong đó ết quả trả về là 1 mảng các byte mà ta đã giấu trong thủ tục Encode ở trên Kết quả: - Giao diện giấu tin: Hình 3.5: Giao diện giấu tin 18 - Chọn ảnh cần giấu tin có kích... tách tin hoàn tất ta được tin nhắn ban đầu: Hình 4.0: Giao diện quá trình tách tin hoàn tất 22 KẾT LUẬN Bài báo cáo đã giả quyết tất cả những yêu cầu được đặt ra Cụ thể đã thực hiện được các công việc: - Nghiên cứu tổng quan 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 CSDL lưu trữ ảnh bitmap; - Tìm hiểu cấu trúc ảnh bitmap; - Xây dựng phần mềm giấu. .. 3.1 Xây dựng CSDL lƣu trữ ảnh Bitmap - CSDL lưu trữ ảnh Bitmap: Hình 3.1: CSDL lưu trữ ảnh bitmap 3.2 Xây dƣng phần mềm trên C# 3.2.1 Cấu trúc ảnh BITMAP Ảnh BITMAP là định dạng ảnh do Microsoft đề xuất , có phần mở rộng là BMP Ảnh bitmap được chia thành ba dạng: ảnh nhị phân (ảnh đen trắng), ảnh đa mức xám , ảnh màu Ảnh đen trắng: là ảnh mà mỗi điểm ảnh chỉ thể hiện một trong hai trạng thái 0 và 1... 11 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 - Đầu vào: + Ảnh gốc cấp xám + Thông điệp bí mật + Khóa (8 bit) + Số bit LSB cần mã hóa trên mỗi điểm ảnh (2 hoặc 4 bit) - Đầu ra: + Ảnh mang tin + Khóa + Số bit thông điệp cần mã hóa - 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... 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 - Đầu vào: + Ảnh đã giấu tin + Khóa (8 bit) + Số lần... trạng thái điểm ảnh đen hay trắng 15 Hình 3.2: Ví dụ về ảnh đen trắng Ảnh đa cấp xám: là ảnh mà mỗi điểm ảnh được biểu diễn bởi một giá trị và đó là cường độ sáng của điểm ảnh Hình 3.3: Ví dụ về ảnh đa cấp xám Ảnh màu: là ảnh mà mỗi điểm ảnh được biểu diễn bởi ba đại lượng R, G, B Số lượng màu có thể của loại ảnh này lên tới 2653 màu khác nhau, nhưng số lượng màu trên thực tế của một ảnh nào đó thường... CSDL lưu trữ ảnh bitmap; - Tìm hiểu cấu trúc ảnh bitmap; - Xây dựng phần mềm giấu và tách tin trên C# 23 TÀI LIỆU THAM KHẢO [1] Nguyễn Diễm Hương, Kỹ thuật giấu tin trên k bit LSB của ảnh, Trường đại học dân lập Hải Phòng, 2012 [2] Nguyễn Xuân Huy, Trần Quốc Dũng, Giáo trình giấu tin và thuỷ vân ảnh, Trung tâm thông tin tư liệu, TTKHTN - CN 2003 [3] Ingemar Cox, Jeffrey Bloom, Matthew Miller, Ton Kalker,... 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 13 2.4.2 Trƣờng hợp giấu và tách tin LSB nâng cao 2.4.2.1 Giấu tin. .. Ví dụ về ảnh màu 16 Ảnh bitmap đựợc lưu trữ dưới dạng nhị phân, một tệp dạng bitmap được chia thành các phần cơ bản như : - Phần tiêu để tệp (Bitmap header): Mô tả thông tin chung về tệp định dạng bitmap, độ lớn của phần này cố định với mọi tệp bitmap - Thông tin về ảnh (Bitmap Infor): Mô tả thông tin về ảnh được lưu trữ, độ lớn của phần này cố định - Bảng màu (Palette Table): Bảng màu của ảnh bitmap,