Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 114 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
114
Dung lượng
1,72 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ––––––––––––– ––––––––––––– Nguyễn Hải Thanh NGHIÊN CỨU PHÁT TRIỂN CÁC THUẬT TOÁN GIẤU TIN TRONG ẢNH VÀ ỨNG DỤNG TRONG MÃ ĐÀN HỒI Chun ngành: Đảm bảo tốn học cho máy tính hệ thống tính tốn Mã số: 62.46.35.01 LUẬN ÁN TIẾN SĨ TOÁN HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS Phan Trung Huy PGS.TS Tống Đình Quỳ Hà Nội–2012 LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng tơi Các kết viết chung với tác giả khác đồng ý đồng tác giả trước đưa vào luận án Các kết nêu luận án trung thực chưa cơng bố cơng trình khác Hà Nội, ngày 07 tháng 09 năm 2012 Nguyễn Hải Thanh LỜI CẢM ƠN Trước hết, tác giả xin gửi lời cảm ơn sâu sắc tập thể hướng dẫn khoa học, PGS.TS Phan Trung Huy PGS.TS Tống Đình Quỳ, người thầy hướng nghiên cứu lý thú Các thầy gương cho nghiên cứu sống Tác giả xin gửi lời cảm ơn đến thày/cơ Viện Tốn ứng dụng Tin học, thày/cô Trung tâm Đào tạo Sau đại học Trường Đại học Bách khoa Hà Nội đồng nghiệp Vụ Khoa học, Công nghệ Môi trường - Bộ Giáo dục Đào tạo hỗ trợ, giúp đỡ tác giả công tác để tác giả dành thời gian thực luận án Tác giả xin gửi lời cảm ơn chân thành đến thầy phản biện thầy hội đồng trao đổi góp nhiều dẫn quý báu, giúp cho luận án trình bày tốt Tác giả xin gửi lời cảm ơn đến bạn bè nhiều người chưa nhắc đến Cuối tất cả, tác giả xin bày tỏ lịng biết ơn gia đình động viên giúp đỡ nhiều tinh thần, thời gian để tác giả hoàn thành luận án MỤC LỤC DANH MỤC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ MỞ ĐẦU Chương CÁC KIẾN THỨC CƠ BẢN 15 1.1 Một số khái niệm 15 1.1.1 Nhóm 15 1.1.2 Nhóm xyclic 15 1.1.3 Vành 16 1.1.4 Môđun 16 1.1.5 Vị nhóm 16 1.1.6 Ngôn ngữ 17 1.1.7 Otomat 18 1.1.8 Các phép toán ma trận 18 1.2 Các tính chất mã 19 1.2.1 Mã đồng cấu mã 19 1.2.2 Kiểm tra tính chất mã 20 1.3 Mật mã học 21 1.3.1 Giới thiệu chung mã hóa 21 1.3.2 Khóa 21 1.3.3 Mã đối xứng phi đối xứng 22 1.3.4 Thám mã (Cryptanalyis) 22 1.4 Giấu tin ảnh 23 1.4.1 Các kỹ thuật sử dụng để giấu tin 24 1.4.2 Phương pháp LSB (LSB- Least significant bit) 25 1.4.3 Phương pháp Wu-Lee ảnh nhị phân 26 1.4.4 Phương pháp Wu-Lee ảnh Bitmap 28 1.4.5 Phương pháp CPT ảnh nhị phân 29 Chương GIẤU TIN TRÊN ẢNH NHỊ PHÂN 32 2.1 Tỷ lệ giấu tin tối đa lược đồ giấu tin k-block 32 2.2 Các lược đồ giấu tin CPT mở rộng 33 2.2.1 Phương pháp giấu tin CPTE 33 2.2.2 Phương pháp CPTE1 39 2.2.3 Phương pháp CPTE2 42 2.3 Tăng cường chất lượng ảnh nhị phân 46 2.3.1 Phương pháp tăng cường chất lượng ảnh nhị phân MCPTE2 48 2.3.2 Chứng minh tính đắn thuật toán MCPTE2 52 2.4 Phương pháp môđun 52 2.4.1 Giấu tin theo phương pháp module sử dụng tập 1-cơ sở 53 2.4.2 Giấu tin theo phương pháp module sử dụng tập 2-cơ sở 54 2.4.3 Tính đắn sơ đồ giấu tin 1-M, 2-M 54 2.4.4 Lược đồ giấu tin sử dụng phương pháp môđun vành Z2 55 2.4.5 Lược đồ giấu tin sử dụng phương pháp môđun vành Z3 57 2.5 Đánh giá chất lượng ảnh nhị phân sau giấu tin 59 Chương GIẤU TIN TRÊN ẢNH MÀU 62 3.1 Tổng quan giấu tin theo tiếp cận chẵn lẻ 62 3.2 Các thuật toán giấu tin dựa tiếp cận chẵn lẻ 64 3.2.1 Thuật toán EzStego 64 3.2.2 Thuật toán chẵn lẻ tối ưu 66 3.2.3 Thuật toán xác định chẵn lẻ theo vòng lặp 68 3.2.4 Thuật toán Rho 69 3.3 Đánh giá thuật toán giấu tin theo tiếp cận chẵn lẻ 72 3.4 Các thuật toán tăng cường chất lượng ảnh số 73 3.4.1 Thuật toán MFOPA1 75 3.4.2 Thuật toán MFOPA2 78 3.4.3 Thuật toán MFOPA3 79 3.5 Lược đồ giấu tin ảnh số theo tiếp cận môđun 80 3.5.1 Lược đồ giấu tin 2-M3 80 3.5.2 Lược đồ giấu tin 2-M4 82 3.6 Đánh giá chất lượng ảnh màu sau giấu tin 84 Chương SƠ ĐỒ MẬT MÃ SỬ DỤNG KỸ THUẬT GIẤU TIN VÀ TÌM KIẾM THƠNG TIN TRÊN DỮ LIỆU MÃ HĨA 86 4.1 Mã đàn hồi 86 4.1.1 Đồ thị mã đàn hồi 88 4.1.2 Tích đàn hồi 89 4.1.3 Mã đàn hồi 90 4.2 Đánh giá độ an tồn thuật tốn giấu tin 91 4.2.1 Thuật toán giấu tin lược đồ giấu tin CPTE 91 4.2.2 Thuật toán giấu tin lược đồ giấu tin CPTE1 92 4.2.3 Thuật toán giấu tin lược đồ giấu tin CPTE2 92 4.2.4 Thuật toán giấu tin lược đồ giấu tin MCPTE2 93 4.3 Sơ đồ mã hóa đàn hồi theo tiếp cận giấu tin 95 4.3.1 Thao tác ảo 97 4.3.2 Mã đàn hồi đồ thị với tiếp cận giấu tin 98 4.4 Tìm kiếm thơng tin 100 4.4.1 Tìm kiếm xấp xỉ 100 4.4.2 Tìm kiếm văn mã hóa 103 4.5 Tìm kiếm theo tiếp cận mờ 105 4.5.1 Khái niệm độ mờ 105 4.5.2 Ơtơmát mờ sánh mẫu 105 4.5.3 Tìm kiếm văn mã hóa đàn hồi sử dụng kỹ thuật giấu tin 106 KẾT LUẬN 109 TÀI LIỆU THAM KHẢO 111 DANH MỤC CÔNG TRÌNH CỦA TÁC GIẢ 113 DANH MỤC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT STT Ký hiệu/chữ viết tắt Ý nghĩa |A| Lực lượng tập A x Giá trị phần nguyên x CPT Chen-Pan-Tseng CPTE CPT Extension FOPA Fastest Optimal Parity Assignment (phương pháp chẵn lẻ tối ưu nhanh nhất) GIF Graphics Interchange Format JPEG Joint Photographic Experts Group MCPT Modification CPT LSB Least significant bit (bit quan trọng nhất) 10 LCS Longest Common Subsequence (Dãy chung dài nhất) 11 LCF Longest Common Factor (Xâu chung dài hay khúc chung dài nhất) 12 MSDR Maximality of Secret Data Ratio (Tỷ lệ giấu tin tối đa) 13 OPA Optimal Parity Assignment (phương pháp chẵn lẻ tối ưu) 14 PA Parity Assignment (phương pháp chẵn lẻ) 15 PSNR Peak signal-to-noise ratio (tỷ lệ tín hiệu nhiễu) 16 RLE Run – Length - Encoded DANH MỤC CÁC BẢNG TT Tên bảng số liệu Trang Bảng 2.1: So sánh tỷ lệ giấu tin tối đa với sơ đồ CPT, CPTE, CPTE2 62 Bảng 2.2: So sánh chất lượng ảnh có giấu tin phương pháp 63 DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ TT Tên hình vẽ, đồ thị Trang Hình 1: Phân loại kỹ thuật giấu tin Hình 2.1: Ví dụ ảnh nhị phân có giấu tin 48 Hình 2.2: Ví dụ ảnh có giấu tin điều khiển chất lượng 51 Hình 2.3: Các ảnh sử dụng để đánh giá số PSNR 63 Hình 3.1: Ví dụ đường Halminton trường hợp cụm điểm màu khơng gian P phân bố xa 68 Hình 3.2: Ví dụ OPA 70 Hình 3.3: Ví dụ Rho 73 Hình 3.4a: Ví dụ phương pháp giấu tin ảnh số 76 Hình 3.4b: Ví dụ phương pháp giấu tin ảnh số 76 10 Hình 3.5: Ví dụ ảnh số có giấu tin khơng điều khiển chất lượng 77 11 Hình 3.6: Ví dụ ảnh có giấu tin kiểm sốt chất lượng 80 12 Hình 3.7a: So sánh chất lượng ảnh có giấu tin phương pháp 88 13 Hình 3.7b: So sánh chất lượng ảnh có giấu tin phương pháp 88 14 Hình 4.1: Đồ thị mã đàn hồi G3 92 15 Hình 4.2: Mã hóa sử dụng tích đàn hồi 94 16 Hình 4.3: Sơ đồ mã hóa theo tiếp cận giấu tin 98 17 Hình 4.4: Phương pháp so mẫu miền mã hóa có sử dụng otomat mờ 108 18 Hình 4.5: Phương pháp so mẫu không giải mã 108 MỞ ĐẦU Về khía cạnh lịch sử, giấu tin (Steganography) hiểu viết che giấu Steganography có lịch sử phát triển lâu đời từ 440 năm trước công nguyên Steganography có nguồn gốc từ tiếng Hy Lạp, Steganos (có nghĩa phủ bí mật) graphy (có nghĩa văn vẽ) Một kỹ thuật che giấu thông tin sớm sử dụng liên quan đến người Hy Lạp tên Histaeus Để thông báo thông tin cho quân đội ơng cạo đầu nơ lệ xăm thông tin vào đầu người nô lệ Khi tóc người nơ lệ mọc trở lại, Histaeus gửi người nô lệ đến nơi nhận tin, người ta tiến hành cạo tóc người nô lệ để nhận lại thông tin giấu Một ví dụ khác đại chiến giới thứ người ta sử dụng tranh có vệt cỏ dài ngắn bờ sông biểu diễn bit 0, mật điện Trong năm gần với phát triển công nghệ thông tin, đặc biệt đời Internet kết hợp với sức mạnh máy tính điện tử, phương pháp giấu tin môi trường multimedia sở liệu quan tâm nghiên cứu phát triển mạnh Môi trường che giấu quan tâm nhiều thường file ảnh, video, âm (audio) văn (text) Trong dạng thức ẩn giấu nhiều thơng tin dạng ảnh (đây định dạng thông tin phổ biến sử dụng để trao đổi mạng có dung lượng khơng lớn, dung lượng ảnh từ vài KB vài MB) Các file ảnh môi trường lựa chọn nghiên cứu luận án Các kỹ thuật giấu tin ảnh nghiên cứu, phát triển luận án ứng dụng mở rộng cho môi trường khác audio, video Mặc dù có lịch sử phát triển từ lâu, kỹ thuật giấu tin ý phát triển mạnh khoảng 10 năm trở lại đây, giới có số cách tiếp cận phân loại kỹ thuật giấu tin Sơ đồ phân loại sau đưa năm 1999 nhiều người chấp nhận: Giấu tin (Information hiding) Giấu tin mật (Steganography) Thủy vân số (Digital watermarking) Thủy vân bền vững (Robust watermarking) Thủy vân dễ vỡ (Fragile watermarking) Hình 1: Phân loại kỹ thuật giấu tin A truyền dãy bít mã hóa đàn hồi b = b1b2 bn mã Dãy đàn hồi có chất ngẫu nhiên tùy thuộc hàm T(W,K,i,a), điều khiển bước ngẫu nhiên D, xem dãy đỉnh đồ thị lớn Bước giải mã B nhận mã dãy dãy bit Li, giải ngược lại giải thuật giải mã: Giải thuật giải mã: DecodeKBlock() a) j = 1; b) i =1; c) while đọc dãy bit L=bi từ dãy b Begin +) = D(j,W,K); +) {L,t} =T(W,K,j,ai); +) j= t; +) i= i+1 ; End; d) Return P=a1a2 an rõ cần giải Cơ sở toán học hai giải thuật thiết lập dựa định lý sau, mà chứng minh dễ dàng từ sơ đồ mã giải mã, nhờ quy nạp theo i Định lý 4.3.1: Giải thuật giải mã giải rõ P = a1a2 an nhận mã dãy bit b = b1b2 bn đầu giải thuật mã hóa Độ khó phá hệ mã phụ thuộc yếu tố: - Tìm ma trận W, K (đã phân tích độ khó phá theo độ phức tạp lũy thừa báo quốc tế sơ đồ CPT) - Tìm đỉnh xuất phát F, mà để đơn giản ta chọn F1 - Việc xác định bước nhảy j, ta xây dựng hàm đa thức để sinh j, chẳng hạn j =c0.i+c1.i+c2.i2+c3.i3+ +ckik mod N (với N số khối F), số k > 10 (chọn tùy ý), với c1, ,ck < N k số tự nhiên chọn sinh từ ma trận K W theo cách bí mật, c0 sinh từ giá trị giải mã - Xác định hàm bí mật T(W,K,i,a) file dùng chung D (điều không thể, đặc biệt T thiết kế phụ thuộc K,W có tham số ngẫu nhiên, thay đổi thường xuyên) Ví dụ 4.3.2 Ta sử dụng file nhị phân D có số block F D chọn F1,F2, ,FN, kích thước khối F 6×6=36, số khối N=106, ta sử dụng thuật tốn mơdun (thay đổi giá trị phần tử) để giấu tin giấu log2(37) =5 bit Ma trận trọng số nhận giá trị tập {1,2,…,25-1} gồm 31 phần tử Ta có: - 236 cách chọn ma trận khóa K (cỡ 6×6) 99 - Tối thiểu 31!.315 cách chọn ma trận trọng số W - 106 cách chọn đỉnh xuất phát Chưa cần dựa độ phức tạp cách xây dựng hàm T cách thức chọn đỉnh đồ thị, ta thấy số khả tối thiểu cần phải duyệt để tìm kết là: Q = 236.31!.315.106 có giá trị xấp xỉ 236.2112.224.220 = 2192 Giá trị Q đủ lớn để chống cơng vét cạn 4.4 Tìm kiếm thơng tin Kiểu văn (Text) dạng biểu diễn liệu hay gặp hệ thống thơng tin Tìm kiếm văn (text searching) vấn đề chủ yếu thuộc lĩnh vực quản lý văn Một dạng tổng quát tìm kiếm chuỗi (hay xâu) (string searching) hay đối sánh chuỗi (string matching) Khái niệm “chuỗi” rộng, chuỗi văn gồm dãy chữ, số kí tự đặc biệt, chuỗi nhị phân hay chuỗi gene, Tìm kiếm chuỗi tốn tìm mẫu (pattern) với số đặc tính chuỗi kí hiệu cho trước, tốn cịn gọi so xâu mẫu hay gọi ngắn gọn so mẫu (string pattern matching) Dạng đơn giản tìm xuất xâu cho trước chuỗi (còn gọi xâu đích) Thời gian gần đây, vấn đề đối sánh chuỗi trở nên quan trọng quan tâm nhiều tăng trưởng nhanh chóng hệ thống trích rút thơng tin hệ thống sinh - tin học (computational biology) Một lý nữa, người ngày không đối mặt với lượng thơng tin khổng lồ mà cịn địi hỏi u cầu tìm kiếm ngày phức tạp Các mẫu đưa vào khơng đơn xâu kí tự mà cịn chứa kí tự thay (wild card), khoảng trống (gaps) biểu thức qui (regular expressions) Sự "tìm thấy" khơng đơn giản xuất xác mẫu mà cịn cho phép có "một sai khác" mẫu xuất văn Từ đó, bên cạnh vấn đề kinh điển “tìm kiếm xác”, nảy sinh hướng nghiên cứu thú vị "tìm kiếm xấp xỉ" (approximate matching, approximate searching) 4.4.1 Tìm kiếm xấp xỉ Tìm kiếm xấp xỉ tốn tìm xuất mẫu văn bản, “khớp” mẫu xuất chấp nhận k “lỗi” (k giới hạn cho trước) Có thể kể vài kiểu “lỗi”, lỗi đánh máy hay lỗi tả hệ thống trích rút thơng tin, biến đổi chuỗi gen hay lỗi đo đạc sinh-tin học lỗi truyền liệu hệ thống xử lý tín hiệu, Vì hệ thống tin học khó tránh “lỗi” nên vấn đề tìm kiếm xấp xỉ trở nên quan trọng Đặc biệt, sử dụng hệ thống trích rút thơng tin, người dùng ngày cịn đòi hỏi kết gần giống có kết phù hợp trả có sai sót mẫu hay văn Để đo độ tương tự xâu ta dựa vào hàm khoảng cách kinh điển khoảng cách soạn thảo (Edit 100 Distance), xâu chung dài hay khúc chung dài (LCF), dãy chung dài (LCS) 4.4.1.1 Khái niệm xấp xỉ tựa ngữ nghĩa câu văn Khái niệm tựa ngữ nghĩa cho phép đo độ tương tự mặt ngữ nghĩa câu văn theo quan điểm thống kê Trong câu văn có độ tương tự tựa ngữ nghĩa hiểu theo nghĩa rộng có dính líu cao ngữ nghĩa theo quan điểm thống kê có tương tự ngữ nghĩa với tỷ lệ cao (có thể có cá biệt gặp câu theo nghĩa phủ định, nhiên góc độ tìm kiếm theo nghĩa rộng phủ định có vai trị lớn thơng tin, xét góc độ tìm, chẳng hạn ta cần tìm văn có câu C liên quan “tác dụng chữa bệnh thuốc A” lại gặp câu đích C’ “phản tác dụng chữa bệnh thuốc A số tình ” vai trị thơng tin, câu đích có dính líu cao nhiều lại bổ sung tư liệu tra cứu tìm hiểu cho người dùng Trong tốn tìm kiếm câu có độ tương tự tựa ngữ nghĩa với câu mẫu ta xét ngữ cảnh câu mẫu có ý nghĩa mặt ngữ nghĩa khơng đặt vấn đề việc xem xét cú pháp câu văn Một câu văn C có ngữ nghĩa, C’ câu văn có sai khác so với C tỷ lệ lỗi từ, lỗi vị trí từ xem có có dính líu mặt ngữ nghĩa với câu văn C Xem xét câu văn bản: câu câu 2, tìm cách đánh giá độ tương tự câu Ví dụ 4.4.1 xét câu sau: - Câu 1: Ngày hôm bão số mạnh lên cấp - Câu 2: Cơn bão số đổ vào Quảng Trị, dự báo bão tiếp tục mạnh lên - Câu 3: Sức gió bão số mạnh tới cấp - Câu 4: Cơn bão số đổ vào Quảng Trị, sức gió mạnh lên cấp Rõ ràng qua ví dụ trên, xét theo khía cạnh ngữ nghĩa ta thấy: - Câu gần nghĩa với câu câu - Câu gần nghĩa với câu câu câu Qua nhiều ví dụ khác thực tế rút số nhận xét sau: - Số lượng từ chung câu lớn gần mặt ngữ nghĩa - Độ bảo toàn thứ tự xuất từ chung lớn gần (theo nghĩa thống kê) mặt ngữ nghĩa Độ bảo tồn thứ tự hiểu “các từ chung với khả bảo toàn thứ tự xuất hiện” Sau giới thiệu khái niệm mới, liên quan đến gần phản ánh độ xấp xỉ tựa ngữ nghĩa câu, mà ý tưởng xuất phát từ khía cạnh vật lý, hình học giải tích hình thức, chưa đề cập đến giải thuật biết 4.4.1.2 Độ đo xấp xỉ tựa ngữ nghĩa câu văn 101 a) Độ lệch từ Để đánh giá độ lệch từ thuộc câu so với câu 1, ta xét ví dụ cụ thể minh họa phương pháp Giả sử có Câu (viết tắt-C1) gồm từ A, B : A B C D A D B E Câu (viết tắt- C2) gồm từ B, A, B A D C E F B C Khi độ lệch từ thứ i câu 2: Ti câu tính sau: D(C1,C2,Ti) = d(index(C2, Ti), C1(Ti)) (Ti phải nằm câu 1, câu 2), i = index(C2,Ti) vị trí (tính từ trái sang) Ti câu 2, C1(Ti) tập (địi hỏi khác rỗng) vị trí từ Ti câu C1, d(x,Y) khoảng cách số x đến tập Y, tính theo d(x,Y) = Min y∈Y|x − y| Trên ví dụ cụ thể: D(T3) độ lệch từ D C2 so với C1 Min{|3 − 4|, |3 −6|} = 1; T6 = F không xuất C1, nên bỏ qua, số từ thứ C2 mà có C1 xem từ B, D(T6) độ lệch từ B C2 so với C1, |6 − 7| = 1, từ C cuối C2 so với C1 |7-3|=4 b) Độ lệch tích lũy Độ lệch tích lũy câu câu đại lượng tính tổng độ lệch từ thuộc câu câu 1, kí hiệu DTL(câu 1,câu 2): m DTL(C1,C2) = ∑ i =1 D(C1,C2,Ti) , với m độ dài C2 Trong ví dụ trên, DTL(C1,C2) = + + + + + + =12 Ký hiệu tần suất xuất theo số lượng từ câu có câu 1là Fr(câu 1, câu 2) c) Độ đo xấp xỉ tựa ngữ nghĩa Sau đây, ta đưa cách xây dựng hàm toán học f(câu 1, câu 2) để đánh giá độ gần (xấp xỉ) tựa ngữ nghĩa câu câu Một cách hình thức, ta mong muốn xây dựng f có tính chất sau: Tính chất 4.4.1(Giới nội): Min ≤ f(câu 1, câu 2) ≤ Max (Giá trị Min, Max đó) Tính chất 4.4.2: f(câu 1, câu 2) = f(câu 2, câu 1) Hai tính chất cực trị: Tính chất 4.4.3: f(câu 1, câu 2) = Max (lớn nhất) câu = câu Tính chất 4.4.4: f(câu 1, câu 2) =Min (nhỏ nhất) câu câu khơng có từ chung 102 Tính chất 4.4.5 (đồng biến): f(câu 1, câu 2) lớn thỏa mãn “một cách tổng hợp” hai yếu tố: - Số lượng từ chung câu câu lớn; - Tổng độ lệch tích lũy từ chung câu với câu nhỏ (do độ bảo toàn thứ tự xuất từ chung cao) Để thiết kế, ta xét hàm sau: f(c1, c2) = - α × dl1 + L c(c1, c 2) lc1 Trong đó: - lc1 số từ câu - Lc(c1, c2): số từ chung câu câu - dl1 (độ lệch tích lũy tương đối câu câu 2) = DTL(câu1, câu 2) lc1 * (lc1 + 1) Khi khởi tạo DTL = giá trị Dmax lớn đó, chẳng hạn Dmax = lc1 * (lc1+1), câu câu có từ chung, khởi đầu lại DTL= để tính tốn độ lệch tích lũy thực DTL(câu 1,câu 2) d) Độ dài dãy chung dài (LCS) xâu văn Bài toán LCS phát biểu sau: Cho xâu mẫu P độ dài m, P = P1P2 Pm xâu S độ dài n, S = S1S2 Sn bảng chữ A Tìm dãy chung dài P S, kí hiệu LCS(P, S) có độ dài ML(P,S) Ví dụ 4.4.2 P = “anautomaton” , m = 11; S = “theautomata”, n = 11 Khi đó: dãy chung dài LCS(P,S) là: “automat”, độ dài ML(P,S) = Khi thực cài đặt thuật tốn tìm kiếm xấp xỉ tựa ngữ nghĩa cho câu văn ta dùng kết hợp với khái niệm từ xấp xỉ (nếu LCS từ lớn ngưỡng quy định đó, ví dụ: tỷ lệ LCS từ độ dài từ nhỏ >=0.7), cách tiếp cận cho ta kết tìm kiếm đa dạng đáp ứng nhu cầu thực tiễn (do việc gõ sai tả từ phổ biến) 4.4.2 Tìm kiếm văn mã hóa Khi tìm kiếm văn mã hóa, toán đặt sau: Cho mẫu P xâu độ dài m (P = P1P2 Pm) bảng chữ A Xâu vào S mã hoá thành xâu Y = Y1Y2 Yn bảng chữ B phương pháp mã hoá biết trước Tìm tất xuất mẫu P Y Đối với văn mã hóa, đem lại hiệu rõ rệt mặt bảo mật, song lại làm phần lớn cấu trúc liệu, dẫn đến khó khăn cho việc tìm kiếm trích rút thơng tin Cách đơn giản song tốn thời gian (và khó khả thi với văn lớn) giải mã toàn tiến hành tìm kiếm thuật tốn so mẫu kinh điển Cách làm dễ bị lộ thông tin liệu giải mã cần phải lưu vào file văn máy tính Hiện có nhiều giải pháp tốt 103 cho phép tìm kiếm trực tiếp liệu mã mà khơng cần giảm thiểu việc giải mã Tìm kiếm không giải mã gọi so mẫu mã hóa, mẫu mã đem so với văn mã Tuy nhiên phương pháp nhiều khơng khả thi, đặc biệt với thuật tốn mã hóa có tính đa trị (chẳng hạn mã đàn hồi xâu x mã hóa thành xâu x1, x2 khác văn mã thành x1 mẫu mã thành x2 việc tìm kiếm khơng cho kết mong muốn), tuỳ thuộc vào ngữ cảnh xâu Một kỹ thuật khác so mẫu miền mã, sử dụng biện pháp giải mã phận văn bản, nhờ mà tránh số hạn chế phương pháp so mẫu mã hóa mà đảm bảo khơng phải giải mã tồn Ý tưởng chung thuật toán so mẫu miền mã hóa có sử dụng tiếp cận otomat mờ mơ tả Hình 4.4 Hình 4.4: Phương pháp so mẫu miền mã hóa có sử dụng otomat mờ Đối với văn mã hoá, yêu cầu tính bảo mật quan trọng Mặc dù liệu giải mã cục lưu giữ thời gian ngắn nhớ trong, song chắn không sơ hở gây thơng tin Để nâng cao tính bảo mật, tránh rị rỉ thơng tin q trình tìm kiếm, ý tưởng tìm kiếm xâu mẫu văn mã hố mà không cần giải mã cục đưa Phương pháp gọi so mẫu không giải mã Khả có nhờ sử dụng tiếp cận otomat cho trình tìm kiếm Hình 4.5 mô tả ý tưởng chung phương pháp so mẫu không giải mã Với tiếp cận otomat mờ, thuật tốn tìm kiếm xác văn nén mã hố trình bày dễ dàng chuyển đổi sang tìm kiếm gần cách sử dụng otomat so mẫu xấp xỉ 104 Hình 4.5: Phương pháp so mẫu khơng giải mã 4.5 Tìm kiếm theo tiếp cận mờ 4.5.1 Khái niệm độ mờ Định nghĩa 4.5.1 ([8]) Cho xâu mẫu P độ dài m xâu đích S độ dài n Độ mờ xuất mẫu P S vị trí j giá trị nguyên λ ≥ thoả mãn: - λ = Sj ≠ P1 - λ số lớn cho P1P2 Pλ = Sj-λ+1 Sj-λ+2 Sj * Ý tưởng chung phương pháp so mẫu theo tiếp cận ôtômát mờ: Giai đoạn tiền xử lý mẫu P: Dựa vào thông tin mẫu P, xây dựng ôtômát mờ sánh mẫu Giai đoạn sánh mẫu: Duyệt xâu đích S từ trái sang phải, lần kí tự Khởi đầu độ mờ Giả sử biết độ mờ vị trí j (j = 0, , n -1) S λ Khi đọc kí tự Sj+1, tính độ mờ vị trí j+1 S λ’ = δ(λ, Sj+1), δ hàm chuyển ôtômát mờ xác định giai đoạn tiền xử lý mẫu Ưu điểm quan trọng thuật tốn so mẫu theo tiếp cận ơtơmát mờ khơng địi hỏi lưu trữ tồn S sánh mẫu, chất đọc ký tự S, nên áp dụng thuật tốn hướng online, đặc biệt mơi trường mạng, với không gian lưu trữ đệm cho S khơng lớn, tuỳ ứng dụng 4.5.2 Ơtơmát mờ sánh mẫu Định nghĩa 4.5.2 ([8]) Ơtơmát mờ sánh mẫu năm A(P)= (A, Q, q0, δ, F), đó: 105 - Bảng chữ vào A = AP ∪ {#}, AP tập kí tự xuất trong mẫu P, # kí tự khơng thuộc AP đại diện cho tất kí tự không xuất P - Tập trạng thái Q = {0, 1, , m} - Trạng thái khởi đầu q0 = - Trạng thái kết F = m - Hàm chuyển δ: Q × A → Q, δ(q, a) = TFuzz(q, a) Cách xác định hàm TFuzz thực qua bổ đề sau: (chi tiết xem [7]) Bổ đề 4.5.1 ([8]) Giả sử độ mờ xuất mẫu P vị trí Sj λ, độ mờ λ’ Sj+1 xác định phụ thuộc hàm λ’ = TFuzz(λ, Sj+1), với TFuzz xác định sau: 0, ∀ x ≠ P1 1, x = P1 TFuzz(0,x) = TFuzz(i, ≠) = 0, ∀ i = 0,1, ,m i+1, x = Pi+1 j, j ≤ i j số lớn cho P1P2 Pj-1 = Pi-j+2Pi-j+3 Pi Pj=x x ∉ {Pi+1, ≠} TFuzz(i,x) = Ví dụ 4.5.1 Với mẫu P = ababa, bảng TFuzz xây dựng sau: Q A a b # 0 1 2 0 4 0 Khi với xâu đích S = a a c d a b a b a b Quá trình tìm kiếm diễn sau: j Sj λ 10 a a c d a b a b a b 1 0 4.5.3 Tìm kiếm văn mã hóa đàn hồi sử dụng kỹ thuật giấu tin Với thuật toán theo tiếp cận mờ nêu ta áp dụng tệp liệu mã hóa mà khơng cần giải mã tồn Thuật tốn ứng dụng việc tìm kiếm, chia sẻ thơng tin mạng để đảm bảo an tồn cao việc trao đổi liệu môi trường khơng an tồn Ý tưởng đọc tệp mã hóa 106 giải mã phần, lưu kết giải mã cục vào vùng đệm áp dụng thuật toán theo tiếp cận mờ vùng đệm Cụ thể sau: - Ta sử dụng cấu trúc liệu dựa vùng đệm mảng kí tự có độ dài buf_len, buf_len = max_encode_len, với max_encode_len độ dài tối đa giải mã khối mã có kích thước nhỏ giá trị xác định (chẳng hạn ta tiến hành giải mã khối mã có độ dài < 100 byte) - Duyệt tuần từ phần tử vùng đệm sử dụng hàm TFuzz để xác định độ mờ xuất mẫu Sau duyệt qua tất phần từ vùng đệm ta giải mã cập nhật liệu cho vùng đệm Mô tả thuật tốn tìm kiếm mờ văn mã hóa: Vào: - Mẫu P độ dài m, dòng liệu S dạng mã hóa (được mã hóa thuật toán EncodeCPTE() đề cập mục 3.2.2) - Otomat mờ so mẫu P Ra: - Mảng arrpos lưu vị trí xuất mẫu văn sau giải mã - counter lưu số lần xuất mẫu P Thuật tốn tìm kiếm: buffer: array[1 buf_len] of char; {vùng đệm chứa liệu giải mã} i, n1, n1’: integer; {i biến số sử dụng để duyệt phần tử buffer, n1, n1’ xác định độ mờ xuất mẫu} DecodeCPTE(buffer, data_len); {hàm thực giải mã liệu mã hóa hàm EncodeCPTE trả độ dài liệu cập nhật vào đệm buffer thông qua biến data_len} if data_len=0 then return -1; {lỗi đọc liệu} n1 := 0; i:= 0; j:=0; repeat i=i+1; j:=j+1; {biến j lưu độ dài đoạn văn giải mã tính đến ký tự xem xét} n1’:= TFuzz (n1, buffer[i]); rõ S} if n1’= m then {nếu phát xuất xâu P counter := counter + 1; arrpos[counter] := j – m + 1; endif; if i >buf_len then 107 DecodeCPTE(buffer, data_len); i:=0; endif; n1 := n1’; until data_len