MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii DANH SÁCH BẢNG vi DANH SÁCH ĐOẠN MÃ vii KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT viii MỞ ĐẦU 1 CHƯƠNG 1: TỔNG QUAN VỀ MÃ HÓA VÀ ẨN MÃ 4 1.1. Giới thiệu chung 4 1.2. Tổng quan về mã hóa 5 1.3. Tổng quan về ẩn mã. 16 CHƯƠNG 2: PHƯƠNG PHÁP ĐỐI SÁNH CHUỖI VÀ ỨNG DỤNG VÀO KẾT HỢP MÃ HÓA VÀ ẨN MÃ 20 2.1. Phương pháp ẩn mã truyền thống 20 2.2. Phương pháp ẩn mã mới 22 2.2.1. Mô tả phương pháp ẩn mã mới 23 2.2.2. Quá trình ẩn mã của người gửi 25 2.2.3. Quá trình giải mã 54 CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG MÃ HÓA KẾT HỢP VỚI ẨN MÃ 57 3.1. Mô hình quá trình mã hóa và giải mã. 57 3.2. Cài đặt thử nghiệm chương trình. 58 3.2.1. Giới thiệu 58 3.2.2. Mô tả giao diện và các modul chính của chương trình. 59 3.3. Các kịch bản thực nghiệm 68 3.3.1. Một số kịch bản 68 3.3.2. Đánh giá kết quả 71 KẾT LUẬN VÀ KIẾN NGHỊ 73 DANH MỤC TÀI LIỆU THAM KHẢO
Trang 1NGHIÊN CỨU VÀ PHÁT TRIỂN PHƯƠNG PHÁP
ẨN MÃ KẾT HỢP VỚI MẬT MÃ NHẰM TĂNG CƯỜNG MỨC ĐỘ AN TOÀN THÔNG TIN
Hà Nội - 2017
Trang 2NGUYỄN VIỆT THẮNG
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU VÀ PHÁT TRIỂN PHƯƠNG PHÁP
ẨN MÃ KẾT HỢP VỚI MẬT MÃ NHẰM TĂNG CƯỜNG MỨC ĐỘ AN TOÀN THÔNG TIN
Chuyên ngành : Công nghệ thông tin
Mã ngành : 52480201 GIÁO VIÊN HƯỚNG DẪN: ThS BÙI THỊ THÙY
Hà Nội - 2017
Trang 3LỜI CAM ĐOAN
Em xin cam đoan đây là đề tài nghiên cứu của riêng em và được sự hướng
dẫn khoa học của ThS Bùi Thị Thùy Các nội dung nghiên cứu, kết quả trong đề
tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây Những
số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chínhtác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo
Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệucủa các tác giả khác, cơ quan tổ chức khác và đều có trích dẫn cụ thể Nếu phát hiện
có bất kỳ sự gian lận nào em xin hoàn toàn chịu trách nhiệm về nội dung đồ án củamình Trường đại học Tài nguyên và Môi trường Hà Nội cùng Khoa Công nghệthông tin không liên quan đến vi phạm tác quyền, bản quyền do em gây ra trong quátrình thực hiện (nếu có)
Sinh viên
Nguyễn Việt Thắng
Trang 4LỜI CẢM ƠN
Tôi xin cảm ơn sâu sắc đến cô giáo, ThS Bùi Thị Thùy – Khoa công nghệthông tin – Đại học tài nguyên và môi trường Hà Nội, cô đã chỉ bảo tận tình, đầytrách nhiệm, cho tôi các ý kiến chỉ đạo trong suốt quá trình làm đồ án, đã động viên,tạo điều kiện thuận lợi để tôi hoàn thành đồ án này
Tôi xin chân thành cảm ơn toàn thể các thầy cô nói chung và các thầy côKhoa công nghệ thông tin nói riêng – Đại học tài nguyên và môi trường Hà Nộiđãtruyền đạt những kiến thức bổ ích và lý thú, giúp ích cho tôi trên con đường sựnghiệp của mình
Cuối cùng, tôi xin cảm ơn sự ủng hộ của gia đình và bạn bè đã đóng góp ýkiến, động viên, giúp đỡ cho tôi hoàn thành đồ án này
Nguyễn Việt Thắng
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
DANH SÁCH BẢNG vi
DANH SÁCH ĐOẠN MÃ vii
KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT viii
MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ MÃ HÓA VÀ ẨN MÃ 4
1.1 Giới thiệu chung 4
1.2 Tổng quan về mã hóa 5
1.3 Tổng quan về ẩn mã 16
CHƯƠNG 2: PHƯƠNG PHÁP ĐỐI SÁNH CHUỖI VÀ ỨNG DỤNG VÀO KẾT HỢP MÃ HÓA VÀ ẨN MÃ 20
2.1 Phương pháp ẩn mã truyền thống 20
2.2 Phương pháp ẩn mã mới 22
2.2.1 Mô tả phương pháp ẩn mã mới 23
2.2.2 Quá trình ẩn mã của người gửi 25
2.2.3 Quá trình giải mã 54
CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG MÃ HÓA KẾT HỢP VỚI ẨN MÃ .57 3.1 Mô hình quá trình mã hóa và giải mã 57
3.2 Cài đặt thử nghiệm chương trình 58
3.2.1 Giới thiệu 58
3.2.2 Mô tả giao diện và các modul chính của chương trình 59
3.3 Các kịch bản thực nghiệm 68
3.3.1 Một số kịch bản 68
3.3.2 Đánh giá kết quả 71
KẾT LUẬN VÀ KIẾN NGHỊ 73 DANH MỤC TÀI LIỆU THAM KHẢO
Trang 6DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Phân cấp các lĩnh vực nghiên cứu của mật mã học 5
Hình 1.2: Quá trình mã hóa và giải mã 7
Hình 1.3: Mô hình mã hóa đối xứng 8
Hình 1.4: Mô hình mã hóa và giải mã hệ mã hóa công khai 9
Hình 1.6: Xác thực chữ ký số 13
Hình 1.7: Phân loại hàm băm 14
Hình 1.8: Phân loại các kỹ thuật ẩn mã 18
Hình 2.1: Mô hình ẩn mã thông thường 20
Hình 2.2: Mô hình tiếp kết hợp ẩn mã và mật mã 21
Hình 2.3: Mô hình ẩn mã không sử dụng vật phủ 22
Hình 2.4: Sơ đồ khối phương pháp ẩn mã kết hợp mã hóa không sửa vật phủ 25
Hình 2.5: Phép dịch chuyển cửa sổ của thuật toán Morris Pratt 33
Hình 2.6: Phép dịch chuyển Knuth-Morris-Pratt 35
Hình 2.7: Mô tả phép so khớp miss-match khi đang so sánh ở vị trí thứ j 39
Hình 2.9: Good-suffix shift, trường hợp chỉ suffix của u xuất hiện trong P 39
Hình 2.10: Good-suffix shift, trường hợp a xuất hiện trong P 40
Hình 2.10: Thuật toán Boyer-Moore-Horpool (T[s+m-1] xuất hiện trong P) 45
Hình 2.11: Thuật toán Boyer-Moore-Horpool (T[s+m-1] không xuất hiện trong P) .45
Hình 2.12: Sơ đồ giải mã phương pháp ẩn mã không sửa vật phủ 55
Hình 3.1: Mô hình quá trình mã hóa 57
Hình 3.2: Mô hình quá trình mã hóa 58
Hình 3.4: Giao diện chọn file dùng làm vật phủ 60
Hình 3.5: Giao diện Load Data 61
Hình 3.6: Giao diện load Secret Message 62
Hình 3.7: Giao diện mã hóa dữ liệu 63
Hình 3.8: Mã hóa thành công, hiển thị các vector vị trí 64
Trang 7Hình 3.9: Save vector output sau khi mã hóa ra dưới dạng file 65
Hình 3.10: Giao diện giải mã tệp tin 66
Hình 3.11: Giao diện sau khi giải mã để có được chuỗi bit ban đầu 67
Hình 3.12: Giao diện save file để có được tệp tin trước khi mã hóa 68
Hình 3.13: Biểu đồ so sánh thời gian xử lý của các thuật toán đối sánh chuỗi với kích thước vật phủ cố định 69
Hình 3.14: Biểu đồ so sánh thời gian xử lý của các thuật toán đối sánh chuỗi với kích thước secret message cố định 70
Trang 8DANH SÁCH BẢNG
Bảng 1.1: Các hàm băm 14Bảng 1.2: Phân biệt giữa Steganography và Watermarking 19Bảng 2.1: Bảng so sánh độ phực tạp các thuật toán đối sánh chuỗi 52Bảng 3.1: Bảng so sánh thời gian xử lý của các thuật toán đối sánh chuỗi với kíchthước tệp tin được chọn làm vật phủ là cố định 69Bảng 3.1: Bảng so sánh thời gian xử lý của các thuật toán đối sánh chuỗi với kíchthước tệp tin bí mật là cố định 70
Trang 9DANH SÁCH ĐOẠN MÃ
Đoạn mã 1: Giải thuật ẩn mã 26
Đoạn mã 2: Giải thuật Brute Force 31
Đoạn mã 3: Giải thuật Morris-Pratt 34
Đoạn mã 4: Giải thuật Knuth-Morris-Pratt 37
Đoạn mã 5: Giải thuật Boyer-Moore (BM) 43
Đoạn mã 6: Giải thuật Boyer-Moore-Horspool (BMH) 46
Đoạn mã 7: Giải thuật Rabin-Karp 51
Trang 10KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT
một giải thuật mã hóa bí mậtAES Advanced Encryption Standard Chuẩn mã hóa nâng cao, là
một giải thuật mã hóa khóa
bí mậtRSA Ron Rivest, Adi Shamir và Len
Adleman
Là một thuật toán mã hóa
công khaiSPS Static Parsing Steganography Phân tích cú pháp tĩnh
Trang 11MỞ ĐẦU
1 Lý do lựa chọn đề tài
Ngày nay vấn đề an toàn thông tin được xem là một trong những quan tâmhàng đầu của xã hội, có ảnh hưởng rất nhiều đến hầu hết các ngành khoa học tựnhiên, kỹ thuật, khoa học xã hội và kinh tế Đặc biệt với sự phát triển của công nghệthông tin đặc biệt là Internet, khiến việc bảo mật an toàn thông tin của người sửdụng càng quan trọng và thiết yếu
Mã hóa và ẩn mã là hai phương pháp được sử dụng phổ biến trong việc bảo
vệ thông tin trên các kênh truyền không tin cậy Tuy nhiên, những phương pháp nàythường được sử dụng độc lập trong quá trình truyền tin Việc lựa chọn một phươngpháp kết hợp giữa ẩn mã và mã hóa sẽ phát huy tối đa hiệu quả của từng phươngpháp Vì vậy em lựa chọn nghiên cứu phát triển đề tài này nhằm tìm hiểu phươngpháp làm tăng độ tin cậy và an toàn cho thông tin được truyền đi của người gửi, qua
đó ứng dụng vào nhiều vấn đề bảo mật khác nhau
2 Nội dung đề tài
Mã hóa và ẩn mã đều là những phương pháp đảm bảo sự an toàn cho thôngtin được trao đổi trên các kênh truyền không tin cậy Phương pháp mã hóa nhằm ẩn
mã thông tin mật bằng cách biến đổi thông tin ban đầu (bản rõ) thành một dạngkhác (bản mã) bí mật Phương pháp ẩn mã lại tập trung vào việc Ẩn đi sự tồn tại củathông tin trong các vật phủ (hình ảnh, âm thanh, văn bản,…)
Mã hóa là một ngành khoa học có lịch sử phát triển lâu đời và được ứngdụng rất nhiều trong thực tế, đặc biệt trong các cuộc chiến tranh Đây là lĩnh vựcnghiên cứu về các phương pháp truyền tin theo cách mã hóa dữ liệu hoặc thông báothành bản mã để không ai đọc được nếu không có khóa giải mã phù hợp Thôngthường, mã hóa được chia thành: Mã hóa khóa bí mật (hay còn gọi là mã hóa đốixứng), mã hóa khóa công khai (mã hóa bất đối xứng), chữ kí số và hàm băm
Mã hóa ngày càng được ứng dụng rộng rãi và trở thành những tiêu chuẩnđảm bảo truyền thông tin an toàn, tin cậy, kiểm soát truy nhập tài nguyên cũng như
Trang 12những giao dịch điện tử Nó được sử dụng để giới hạn truy cập tới những dữ liệunhạy cảm Trong thực tế, mã hóa là thành phần rất quan trọng trong những chínhsách an toàn của tổ chức.
Cùng với sự phát triển của mã hóa là ẩn mã Ngày nay các kỹ thuật ẩn mãđược sử dụng như một chuẩn mã hóa để che dấu thông tin trên đường truyền không
bí mật Có rất nhiều phương pháp ẩn mã khác nhau: ẩn mã trong ảnh, âm thanh,video, văn bản
Mã hóa và ẩn mã là hai phương pháp được sử dụng phổ biến trong việc bảo
vệ thông tin trên các kênh truyền không tin cậy Tuy nhiên, những phương pháp nàythường được sử dụng độc lập trong quá trình truyền tin Sự kết hợp mã hóa với ẩn
mã nhằm làm tăng độ tin cậy và an toàn cho thông tin được truyền đi
3 Phương pháp nghiên cứu
- Phương pháp lý thuyết: Nghiên cứu tìm hiểu lý thuyết, chức năng, nhiệm vụ của phương pháp mã hóa và ẩn mã có trước, nâng cấp để đạt kết quả cao hơn
- Phương pháp phân tích: Đưa ra các nhận định riêng về các tính năng của phương pháp, độ khả thi và những nhu cầu thực tiễn của phương pháp
- Phương pháp thực nghiệm: Thực hiện xây dựng ứng dụng bằng những kiến thức
đã có, kết hợp quá trình xử lý lỗi để đạt được sản phẩm hoàn thiện
4 Cấu trúc đồ án
Nội dung đồ án gồm phần mở đầu và 3 chương như sau:
Chương 1: Tổng quan về mã hóa và ẩn mã.
Trình bày định nghĩa, khái niệm, lịch sử ra đời cũng như phát triển của mã hóa
và ẩn mã Phân loại các phương pháp mã hóa và ẩn mã, nêu ra các ưu điểm vànhược điểm của từng phương pháp Bên cạnh đó cũng nêu lên tầm quan trọng vànhững ứng dụng của mã hóa và ẩn mã
Trang 13 Chương 2: Phương pháp kết hợp mã hóa và ẩn mã.
Chương này sẽ đi sâu vào phân tích, nghiên cứu phương pháp ẩn mã mới,phương pháp ẩn mã không thay đổi “Vật phủ” Trình bày cơ sở toán học,nghiên cứu các giải thuật đối sánh chuỗi và ứng dụng của giải thuật vào xâydựng ứng dụng mã hóa kết hợp với ẩn mã
Chương 3: Xây dựng ứng dụng mã hóa kết hợp với ẩn mã.
Chương này trình bày phương pháp cài đặt giải thuật mã hóa, đưa ra mô hình kếthợp mã hóa và ẩn mã Từ đó xây dụng ứng dụng mã hóa và ẩn mã Đánh giámức độ phức tạp trong việc cài đặt, khả năng bảo mật và khả năng bị phá mã
Trang 14CHƯƠNG 1: TỔNG QUAN VỀ MÃ HÓA VÀ ẨN MÃ 1.1 Giới thiệu chung
Cuộc cách mạng thông tin kỹ thuật số đã đem lại những thay đổi sâu sắctrong xã hội và trong cuộc sống của chúng ta Những thuận lợi mà thông tin kỹthuật số mang lại cũng sinh ra những thách thức và cơ hội cho quá trình đổi mới Sự
ra đời những phần mềm có tính năng rất mạnh, các thiết bị mới như máy ảnh kỹthuật số, máy quét chất lượng cao, máy in, máy ghi âm kỹ thuật số, v.v , đã đượcsáng tạo trên cơ sở thoả mãn thế giới tiêu dùng rộng lớn, để xử lý và thưởng thứccác dữ liệu đa phương tiện (multimedia data) Mạng Internet toàn cầu đã hình thànhmột xã hội ảo nơi diễn ra quá trình trao đổi thông tin trong mọi lĩnh vực chính trị,quân sự, quốc phòng, kinh tế, thương mại…Chính trong môi trường mở và tiện nghinhư thế xuất hiện những vấn nạn, tiêu cực đang rất cần đến các giải pháp hữu hiệucho vấn đề an toàn thông tin như nạn ăn cắp bản quyền, nạn xuyên tạc thông tin,truy nhập thông tin trái phép v.v Tìm giải pháp cho những vấn đề nêu trên khôngchỉ tạo điều kiện đi sâu vào lĩnh vực công nghệ phức tạp đang phát triển rất nhanhnày mà còn dẫn đến những cơ hội phát triển kinh tế
Giải pháp cho những vấn đề trên:
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ụngrộng rãi nhất Các hệ mật mã đã được phát triển nhanh chóng và được ứng dụng rấtphổ biến cho đến tận ngày nay Thông tin ban đầu đượ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 Các phương phápnày trong thực tế tỏ ra rất hiệu quả và được ứng dụng phổ biến Tuy nhiên trong báocáo không đi sâu nghiên cứu về các hệ mật mã mà chỉ tiếp cận với một phươngpháp đã và đang được nghiên cứu, phát triển ở nhiều nước trên thế giới, đó làphương pháp ẩn mã thông tin Phương pháp này còn mới và phức tạp, ứng dụngtrong an toàn và bảo mật thông tin, đ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 …
Trang 15Để bảo đảm an toàn cho nội dung của thông tin, người ta thường sử dụngphương pháp mã hoá thông tin, nhằm ẩn đi ý nghĩa của nó Để giữ bí mật cho thôngtin, người ta tìm ra cách ẩn mã đi sự hiện diện của nó Xu hướng hiện nay là kết hợphai kỹ thuật: mã hóa thông tin sau đó ẩn mã thông tin Mã hoá và ẩn mã thông tin cóquan hệ chặt chẽ với nhau Nhiều ý tưởng của kỹ thuật mật mã (Cryptography) rấthữu ích trong những công việc ẩn mã sự hiện hữu của thông tin Nghiên cứu việckết hợp hai kỹ thuật mật mã và ẩn mã dữ liệu, nhằm khắc phục những nhược điểmhoặc những hạn chế của từng loại, cho phép xây dựng những hệ thống bảo mật, antoàn cho việc chuyển tảidữ liệu trên các phương tiện thông tin đại chúng.[2]
Cryptology Ngành mật mã
Cryptology Ngành mật mã
Cryptography Mật mã
Cryptography Mật mã
Mã hóa đã được con người sử dụng từ lâu đời Các hình thức mã hóa sơ khai
đã được tìm thấy từ khoảng bốn nghìn năm trước trong nền văn minh Ai Cập cổ đại.Trải qua hàng nghìn năm lịch sử, mã hóa đã được sử dụng rộng rãi ở khắp nơi trênthế giới từ Đông sang Tây để giữ bí mật cho việc giao lưu thông tin trong nhiều lĩnhvực hoạt động giữa con người và các quốc gia, đặc biệt trong các lĩnh vực quân sự,chính trị, ngoại giao Mã hóa trước hết là một loại hoạt động thực tiễn, nội dungchính của nó là để giữ bí mật thông tin Ví dụ muốn gửi một văn bản từ một ngườigửi A đến một người nhận B, A phải tạo cho văn bản đó một bản mã mật tương ứng
và thay vì gửi văn bản rõ thì A chỉ gửi cho B bản mã mật, B nhận được bản mã mật
và khôi phục lại văn bản rõ để hiểu được thông tin mà A muốn gửi cho mình Dovăn bản gửi đi thường được chuyển qua các con đường công khai nên người ngoài
Trang 16có thể “lấy trộm” được, nhưng vì đó là bản mã hóa nên không đọc hiểu được; Còn
A có thể tạo ra bản mã mật và B có thể giải bản mã mật thành bản rõ để hiểu được
là do hai người đã có một thoả thuận về một chìa khoá chung, chỉ với khoá chungnày thì A mới tạo được bản mã mật từ bản rõ và B mới khôi phục được bản rõ từbản mã mật Khoá chung đó được gọi là khoá mã hóa Để thực hiện được một phép
mã hóa, ta còn cần có một thuật toán biến bản rõ cùng với khoá mã hóa thành bản
mã mật và một thuật toán ngược lại biến bản mật cùng với khoá mã hóa thành bản
rõ Các thuật toán đó được gọi tương ứng là thuật toán lập mã và thuật toán giải mã.Các thuật toán này thường không nhất thiết phải giữ bí mật, mà cái luôn cần đượcgiữ bí mật là khoá mã hóa Trong thực tiễn, có những hoạt động ngược lại với hoạtđộng bảo mật là khám phá bí mật từ các bản mã “lấy trộm” được, hoạt động nàythường được gọi là mã thám hay phá khoá.[6]
Các chức năng cơ bản của mã hóa
Đảm bảo tính bí mật (confidentiality) – giải quyết vấn đề bảo vệ thông tinchống lại sự tìm hiểu nội dung thông tin từ các đối tượng không có quyền truy nhậpchúng Thuật ngữ sự bí mật (secrecy) hoặc sự riêng tư (privacy) cũng đồng nghĩavới confidentiality.[6]
Đảm bảo tính toàn vẹn dữ liệu (data integrity) – đảm bảo khả năng phát hiệnsửa đổi trái phép thông tin Để đảm bảo toàn vẹn dữ liệu, cần có các phương phápđơn giản và tin cậy phát hiện bất kỳ sự can thiệp không mong muốn vào dữ liệu(các can thiệp như chèn, xóa và thay thế trong bản tin).[6]
Đảm bảo sự xác thực (authentication) – chức năng này có liên hệ với sự địnhdanh (identification) Vì thế nó được thực hiện xác thực trên cả thực thể (hai đốitượng trong một phiên liên lạc sẽ định danh lẫn nhau) và bản thân thông tin (thôngtin được truyền trên kênh truyền sẽ được xác thực về nguồn gốc, nội dung, thời giangửi, …) Vì thế vấn đề xác thực trong mật mã được chia thành hai lớp chính – xácthực thực thể (identity authentication) và xác thực nguồn gốc dữ liệu (data originauthentication).[6]
Trang 17Đảm bảo chống sự từ chối (non-repudiation) – chức năng ngăn ngừa mộtthực thể từ chối (phủ nhận) một cam kết hoặc hành động trước đó Khi xuất hiệntranh chấp vì một thực thể từ chối một hành động chắc chắn đã xảy ra, một biệnpháp giải quyết là cần thiết.[6]
5 D là tập các hàm giải mã Với mỗi k ∈ K, có một hàm lập mã
ek∈ E, ek: P → C và một hàm giải mã dk∈ D, dk: C → P sao cho
Hình 1.2: Quá trình mã hóa và giải mã.
Mã hóa khóa đối xứng
Là những hệ mật dùng chung một khoá cả trong quá trình mã hoá dữ liệu và giải mã dữ liệu Do đó khoá phải được giữ bí mật tuyệt đối Một số thuật toán nổi tiếng trong mã hoá đối xứng là: DES, Triple DES(3DES), RC4, AES…
Những đặc điểm của mã hóa đối xứng:
- Quá trình mã hóa và giải mã thông tin sử dụng cùng một khóa bí mật
Trang 18- Mã hóa đối xứng chuyển đổi bản rõ – plaintext thành bản mã – ciphertext thông qua sử dụng khóa và thuật toán mã hóa Ciphertext được chuyển về dạng gốc thông qua sử dụng khóa và thuật toán giải mã.
Mô hình mã hóa đối xứng (Symmetric Cipher Model)
- Plaintext: Dữ liệu gốc (Original Data) – P
- Secret key: Khóa bí mật – K Sự xáo trộn, thay thế được thực hiện phụ thuộc vào khóa này
- Encryption Algorithms: Thuật toán mã hóa dữ liệu – E Thực hiện thay thế
và biến đổi dữ liệu gốc
- Ciphertext: Bản mã – C Bản tin đã bị biến đổi sau khi áp dụng thuật toán, nóphụ thuộc vào plaintext và khóa bí mật
- Decryption Algorithm: Thuật toán giải mã dữ liệu – D Thuật toán giải mã (phép biến đổi ngược) Sử dụng ciphertext và khóa bí mật để đưa ra bản tin gốc
Mô hình mã hóa đối xứng
Hình 1.3: Mô hình mã hóa đối xứng
Các giải thuật mã hóa đối xứng
Mã hóa đối xứng sử dụng sự kết hợp giữa các phương pháp mã hóa cổ điển,
mã hóa dòng mã hóa khối, với các đặc điểm sau:
- Sử dụng một khóa duy nhất cho cả quá trình mã hóa và giải mã
- Kích thước khóa tương đối ngắn (64, 128, 192 bit)
Trang 19- Tốc độ mã hóa, giải mã nhanh.
- Độ an toàn cao
- Khó khăn trong việc quản lý và phân phối khóa
Mã hóa khóa công khai.
Để giải quyết vấn đề phân phối và thoả thuận khoá của mật mã khoá đốixứng, năm 1976 Diffie và Hellman đã đưa ra khái niệm về hệ mật mã khoá côngkhai và một phương pháp trao đổi công khai để tạo ra một khoá bí mật chung màtính an toàn được bảo đảm bởi độ khó của một bài toán toán học cụ thể (là bài toántính “logarit rời rạc”) Hệ mật mã khoá công khai hay còn được gọi là hệ mật mãphi đối xứng, sử dụng một cặp khoá, khoá mã hoá còn gọi là khoá công khai (publickey) và khoá giải mã được gọi là khoá bí mật hay khóa riêng (private key) Trong
hệ mật này, khoá mã hoá khác với khoá giải mã Về mặt toán học thì từ khoá côngrất khó tính được khoá riêng Biết được khoá này không dễ dàng tìm được khoá kia.Khoá giải mã được giữ bí mật trong khi khoá mã hoá được công bố công khai Mộtngười bất kỳ có thể sử dụng khoá công khai để mã hoá tin tức, nhưng chỉ có ngườinào có đúng khoá giải mã mới có khả năng xem được bản rõ.[7]
Người gửi A sẽ mã hoá thông điệp bằng khóa công của người nhận và ngườinhận B sẽ giải mã thông điệp với khoá riêng tương ứng của mình
Encryption Algorithm
Encryption
Decryption Algorithm
Plainttext
Message, m
Plainttext Message, m
e k Publich Key
d k Private Key
e k (m) Ciphertext
d k (T) = d k (e k (m)) = m
Hình 1.4: Mô hình mã hóa và giải mã hệ mã hóa công khai
Việc phát minh ra phương pháp mã công khai tạo ra một cuộc “cách mạng”trong công nghệ an toàn thông tin điện tử Nhưng thực tiễn triễn khai cho thấy tốc
độ mã hoá khối dữ liệu lớn bằng các thuật toán mã hoá công khai chậm hơn rất
Trang 20nhiều so với hệ mã hoá đối xứng Ví dụ, để đạt được độ an toàn như các hệ mã đốixứng mạnh cùng thời, RSA đòi hỏi thời gian cho việc mã hoá một văn bản lâu hơngấp hàng ngàn lần Do đó, thay bằng việc mã hoá văn bản có kích thước lớn bằnglược đồ khoá công khai thì văn bản này sẽ được mã hoá bằng một hệ mã đối xứng
có tốc độ cao như DES, IDEA,…sau đó khoá được sử dụng trong hệ mã đối xứng sẽđược mã hoá sử dụng mật mã khoá công khai Phương pháp này rất khả thi trongviệc mã và giải mã những văn bản có kích thước lớn.[6]
Ưu và nhược điểm của hệ mật mã khoá công khai
Vấn đề còn tồn đọng của hệ mật mã khoá đối xứng được giải quyết nhờhệmật mã khoá công khai Chính ưu điểm này đã thu hút nhiều trí tuệ vào việc đềxuất, đánh giá các hệ mật mã công khai Nhưng do bản thân các hệ mật mã khoácông khai đều dựa vào các giả thiết liên quan đến các bài toán khó nên đa số các hệmật mã này đều có tốc độ mã dịch không nhanh lắm Chính nhược điểm này làmcho các hệ mật mã khoá công khai khó được dùng một cách độc lập
Một vấn đề nữa nảy sinh khi sử dụng các hệ mật mã khóa công khai là việcxác thực mà trong mô hình hệ mật mã đối xứng không đặt ra Do các khoá mã côngkhai được công bố một cách công khai trên mạng cho nên việc đảm bảo rằng “khoáđược công bố có đúng là của đối tượng cần liên lạc hay không?” là một kẽ hở có thể
bị lợi dụng Vấn đề xác thực này được giải quyết cũng chính bằng các hệ mật mãkhoá công khai Nhiều thủ tục xác thực đã được nghiên cứu và sử dụng nhưKerberos, X.509… Một ưu điểm nữa của các hệ mật mã khoá công khai là các ứngdụng của nó trong lĩnh vực chữ ký số, cùng với các kết quả về hàm băm, thủ tục ký
để bảo đảm tính toàn vẹn của một văn bản được giải quyết.[6]
Chữ ký số
Mật mã khoá công khai có thể được sử dụng theo nhiều cách khác nhau Chữ
ký số là một ví dụ minh chứng cho việc đảm bảo xác thực người dùng và toàn vẹn
dữ liệu Nếu người gửi A mã hoá thông điệp hay tài liệu với khoá riêng của mình thìbất kỳ ai cũng có thể giải mã thông điệp với khoá công của A Do đó, người nhận cóthể chắc chắn rằng thông điệp mình nhận chỉ có thể do A mã hóa vì chỉ A mới có
Trang 21khoá riêng của mình Quá trình mã hoá thông điệp với khoá riêng của người gửi gọi
là quá trình “ký số”
Trong thực tế, quá trình ký số thường khó hơn Thay bằng việc mã bảnthôngđiệp gốc với khoá riêng của người gửi thì chỉ có bản đại diện thông điệp (bản băm)
có độ dài cố định được mã hoá với khoá riêng của người gửi và bản băm đã được
mã hoá này được gắn vào với thông điệp gốc Người nhận B sau khi nhận đượcthông điệp đầu tiên sẽ giải mã bản băm với khoá công của người gửi, sau đó bămthông điệp đi kèm bằng thuật toán băm tương ứng với thuật toán băm người gửi đã
sử dụng B so sánh hai giá trị băm nếu giống nhau thì chắc chắn rằng thông điệp Agửi cho B còn nguyên vẹn, đồng thời xác thực được người gửi thông tin là ai
Tính toàn vẹn của thông điệp được đảm bảo vì chỉ thay đổi một bittrongthông điệp gửi đi thì kết quả hai giá trị băm sẽ khác nhau Tính xác thực củangười gửi cũng được đảm bảo vì chỉ có người gửi A mới có khoá riêng để mã bảnbăm
Chữ ký số cũng chứng minh được tính chống chối bỏ bản gốc vì chỉ có Amới có khoá riêng dùng để ký số
- Sơ đồ chữ ký được định nghĩa như sau:
Sơ đồ chữ ký là một bộ năm (P, A, K, S, V), trong đó:
1 P là một tập hữu hạn các văn bản có thể
2 A là một tập hữu hạn các chữ ký có thể
3 K là một tập hữu hạn các khoá có thể
4 S là tập các thuật toán ký
5 V là tập các thuật toán kiểm thử
6 Với mỗi k ∈ K, có một thuật toán ký sig k ∈ S, sig k: P → A và một thuậttoán kiểm thử ver k ∈ V, ver k: P x A → {đúng, sai}, thoả mãn điều kiện sauđây với mọi x ∈ P, y ∈ A:
(x)(x, y)
(x)
k k
k
true if y sig ver
Trang 22- Quy trình ký và kiểm tra chữ ký:
- Quá trình ký văn bản:
Giả sử A muốn gửi cho B thông điệp x, A thực hiện các bước sau:
1 A băm thông điệp x, thu được bản đại diện z = h(x) – có kích thước cố định
128 bit hoặc 160 bit
2 A ký số trên bản đại diện z, bằng khóa bí mật của mình, thu được bản ký số y
Chữ ký số sig k (z) (sử dụng các sơ đồ RSA,Elgamal,DS S)
Bản ký số (y = sig k (x))
Bản ký số (y = sig k (x))
Độ dài tùy ý Độ dài cố định 128 với MD, 160 với SHA
Khóa bí mật của người gửi
Hình 1.5: Quá trình ký văn bản
- Quá trình xác thực chữ ký số:
Khi B nhận được (x, y) B thực hiện các bước sau:
1 B kiểm tra chữ ký số để xác minh xem thông điệp mà mình nhận được cóphải được gửi từ A hay không bằng cách giải mã chữ ký số y, bằng khóacông khai của A, được z
2 B dùng một thuật toán băm – tương ứng với thuật toán băm mà A dùng – đểbăm thông điệp x đi kèm, nhận được h(x)
3 B so sánh 2 giá trị băm z và h(x), nếu giống nhau thì chắc chắn rằng thôngđiệp x – mà A muốn gửi cho B – còn nguyên vẹn, bên cạnh đó cũng xác thựcđược người gửi thông tin là ai [6]
Trang 23Bản ký số (y = sig k (x))
Bản ký số (y = sig k (x))
Bản ký số (y = sig k (x))
Bản ký số (y = sig k (x)) Khóa công khai của
Hàm băm là hàm chuyển đổi một thông điệp có độ dài bất kỳ thành một dãy bit có
độ dài cố định Các hàm băm nhận một chuỗi bit có chiều dài tùy ý (hữu hạn) làm
dữ liệu đầu vào và tạo ra một chuỗi bit mới có chiều dài cố định n bit (n > 0), đượcgọi là giá trị băm hay mã băm
Như vậy, hàm băm là một hàm h có ít nhất hai tính chất sau:
- Tính chất nén: H sẽ ánh xạ một đầu vào x có độ dài bit hữu hạn tuỳ tới một
đầu ra H(x) có độ dài bit n hữu hạn
- Tính chất dễ dàng tính toán: Với H cho trước và một đầu vào x, có thể dễ
dàng tính được H(x)
Các hàm băm (H) tạo ra bản nhận dạng (fingerprint) cho một tập tin, thôngđiệp hay một khối dữ liệu truyền đi nhằm kiểm tra tính toàn vẹn.[6]
Đặc trưng cơ bản của hàm băm H(x):
- H có thể được áp dụng trên khối dữ liệu có độ dài bất kỳ.
- H tạo đầu ra có độ dài cố định
- H(x) tính toán mọi x tương đối dễ dàng, tạo điều kiện cho việc cài đặt trên
phần cứng lẫn phần mềm được thiết thực
- Với bất kỳ giá trị băm h, không thể tính được x sao cho H(x)=h Hay H được
gọi là hàm một chiều
- Tính bền xung đột yếu (weak collision resistance): với bất kỳ giá trị x,
không thể tính được y ≠ x sao cho H(y) = H(x)
Trang 24- Tính bền xung đột mạnh (strong collision resistance): Không thể tính được
một cặp (x, y) sao cho H(x) = H(y)
Phân loại hàm băm:
Hàm Băm
Có khóa Không khóa
MDC Các ứng dụng
khác
Các ứng dụng khác Các ứng dụng khác
Các ứng dụng
OWHF CRHF
Hình 1.7: Phân loại hàm băm
Liệt kê một số loại hàm băm:
Bảng 1.1: Các hàm băm
Thuật toán
Kích thước đầu
ra
Kích thước trạng thái trong
Kích thước khối Độ dài
Kích thước world
Trang 25- Key Stretching (tạo khóa bí mật từ mật khẩu)
- Integrity checking (kiểm tra tính toàn vẹn dữ liệu)
- HMAC - Hashed Message Authentication Code (mã chứng thực thông điệp
sử dụng hàm băm)
- Chữ ký điện tử
Trang 261.3 Tổng quan về ẩn mã.
Ẩn mã, xét theo khía cạnh tổng quát cũng là một hệ mã mật, nhằm đảm bảo tính an toàn thông tin Phương pháp này ưu điểm là làm vô hình nội dung thông tin được chứa trong tệp tin, đó chính là biện pháp hữu hiệu, hạn chế tối đa được sự phá hoại của những tên tin tặc (hacker) Việc gửi đi những tệp tin thông thường sẽ không gây ra sự tò mò, chú ý của những tên tin tặc.[7]
Khái niệm về ẩn mã:
Ẩn mã là một kỹ thuật nhúng (Ẩn) một lượng thông tin số nào đó vào trong một đối tượng dữ liệu số (vật phủ) khác theo một phương pháp nào đó Có thể làm thay đổi nội dung của đối tượng khác mà không thể phân biệt được hoặc có thể sử dụng những đối tượng định trước để truy xuất thông tin.
Ẩn mã là thuật ngữ xuất phát từ tiếng Hi Lạp có nghĩa là “cách viết được che phủ” nhưng vẫn có thể tìm ra được bản gốc và đã có từ năm 440 trước công nguyên Các tài liệu lịch sử cho thấy con người đã áp dụng phương pháp ẩn mã như viết thông báo lên bảng gỗ sau đó phủ bằng một lớp sáp ong hoặc cạo trọc đầu
và xăm thông báo rồi đợi tóc mọc dài lại, Sau này, người ta đã sử dụng các loại
“mực vô hình” được làm từ các nguyên liệu hữu cơ như sữa, nước hoa quả… và các bản viết chỉ hiện lên khi được hơ nóng trên lửa Vào thế kỉ 21, nhiều nước đã bắt đầu sử dụng ẩn mã để bảo vệ tiền tệ không bị làm giả, bằng những loại mực đặc biệt, thuốc nhuộm, sợi chỉ và những mảnh vải nhỏ nhúng bên trong để kí hiệu giá trị của đồng tiền Khi Internet ra đời, kéo theo sự phát triển mạnh mẽ của phương pháp ẩn mã để trao đổi các thông tin một cách bí mật trên các kênh không
an toàn Có rất nhiều phương pháp ẩn mã khác nhau: ẩn mã trong ảnh, âm thanh, video, văn bản,…
Kỹ thuật ẩn thông tin nhằm hai mục đích đảm bảo an toàn và bảo mật thôngtin: một là bảo mật cho dữ liệu được đem ẩn, hai là bảo mật cho chính đối tượngđược dùng để ẩn mã Hai mục đích khác nhau này dẫn đến hai khuynh hướng kỹthuật chủ yếu của ẩn mã Khuynh hướng thứ nhất là ẩn mã mật (steganography)
Trang 27Khuynh hướng này tập trung vào các kỹ thuật ẩn mã sao cho thông tin ẩn đượcnhiều và quan trọng là làm người khác khó phát hiện được một đối tượng có bị ẩn
mã bên trong hay không Khuynh hướng thứ hai là thuỷ vân số (watermarking).Khuynh hướng thuỷ vân số có miền ứng dụng lớn hơn nên được quan tâm nghiêncứu nhiều hơn và thực tế đã có rất nhiều kỹ thuật thuộc về khuynh hướng này Thuỷvân số tập trung vào việc sử dụng kỹ thuật ẩn mã, dùng thông tin ẩn để bảo vệ sảnphẩm thông tin số như ảnh, audio hay video Nổi bật nhất là ứng dụng trong bảo vệbản quyền
Tuy nhiên để bảo mật cho chính đối tượng được dùng để ẩn mã lại là mộtvấn đề lớn trong quá trình truyền dữ liệu trên mạng Chính vì thế Khalil Challita vàHikmat Farhat đã đề xuất một kỹ thuật ẩn mã hoàn toàn mới, không sửa vật phủ(đối tượng ẩn mã), vật phủ này sẽ được cả bên gửi và bên nhận thỏa thuận trước.Báo cáo sẽ đi sâu vào tìm hiểu phương pháp mới này từ đó có thể đưa ra được sự sosánh giữa các phương pháp và tìm ra được giải pháp cho công nghệ ẩn mã trongtương lai.[7]
Phân loại các kỹ thuật ẩn mã:
Do kỹ thuật ẩn thông tin số mới được hình thành trong thời gian gần đây nên
xu hướng phát triển vẫn chưa ổn định Nhiều phương pháp mới, theo nhiều khíacạnh khác nhau đang và sẽ được đề xuất, bởi vậy chưa thể có được một định nghĩachính xác, một sự đánh giá phân loại rõ ràng Một số tác giả đã đưa ra các cáchđánh giá phân loại, thậm chí các định nghĩa, nhưng không lâu sau lại có các địnhnghĩa khác, một sự phân loại khác được đề xuất Sơ đồ phân loại trên hình 2 đượcFabien A P Petitcolas đưa ra năm 1999, sau hội nghị quốc tế lần thứ hai về ẩn mãnăm 1998 và đã được chấp nhận rộng rãi trong giới nghiên cứu
Trang 28Ẩn thông tin
Information hiding
Ẩn thông tin
Robust Copyright marking
Thuỷ vân bền vững
Robust Copyright marking
Thuỷ vân “dễ vỡ”
Fragile Watermarking
Thuỷ vân “dễ vỡ”
Imperceptible Watermarking
Thuỷ vân ẩn
Imperceptible Watermarking
Thuỷ vân ẩn
Visible Watermarking
Thuỷ vân hiện
Visible Watermarking
Thuỷ vân hiện
Hình 1.8: Phân loại các kỹ thuật ẩn mã
Sơ đồ phân loại này như một bức tranh khái quát về ứng dụng và kỹ thuật ẩnthông tin Dựa trên việc thống kê sắp xếp khoảng 100 công trình đã công bố trênmột số tạp chí, cùng với thông tin về tên và tóm tắt nội dung của khoảng 200 côngtrình đã công bố trên internet, có thể chia lĩnh vực ẩn dữ liệu ra làm hai hướng lớn,
đó là watermarking và steganography Nếu như watermarking quan tâm nhiềuđến các ứng dụng ẩn các mẩu tin ngắn nhưng đòi hỏi độ bền vững lớn của thông tincần ẩn (trước các biến đổi thông thường của tệp dữ liệu môi trường) thìsteganography lại quan tâm tới các ứng dụng che ẩn các bản tin đòi hỏi mật độ vàdung lượng càng lớn càng tốt Đối với từng hướng lớn này, quá trình phân loại theocác tiêu chí khác có thể tiếp tục được thực hiện, ví dụ dựa theo ảnh hưởng các tácđộng từ bên ngoài có thể chia watermarking thành hai loại, một loại bền vững vớicác tác động sao chép trái phép, loại thứ hai lại cần tính chất hoàn toàn đối lập, phải
dễ bị phá huỷ trước các tác động nói trên Cũng có thể chia watermarking theo đặctính, một loại cần được che dấu để chỉ có một số những người tiếp xúc với nó có thểthấy được thông tin, loại thứ hai đối lập, cần được mọi người nhìn thấy.[7]
Trang 29Bảng 1.2: Phân biệt giữa Steganography và Watermarking
- Tập trung vào việc giấu được càng
nhiều thông tin càng tốt, ứng dụng trong
truyền dữ liệu thông tin mật
- Cố gắng làm nhỏ nhất những ảnh
hưởng đến chất lượng của đối tượng phủ
để không bị chú ý đến dữ liệu đã được
giấu trong đó
- Thay đổi stego-object cũng làm cho dữ
liệu giấu bị sai lệch (nhất là ứng dụng
trong nhận thực thông tin)
- Không cần giấu nhiều thông tin, chỉ cần lượng thông tin nhỏ đặc trưng cho bản quyền của người sở hữu
- Trong trường hợp thuỷ vân nhìn thấy thì thuỷ vân sẽ hiện ra
- Thuỷ vân phải bền vững với mọi tấn công có chủ đích hoặc không có chủ đích vào sản phẩm
Kết chương
Trong chương 1 đồ án đã trình bày tổng quan về lịch sử ra đời, phát triển củamật mã và ẩn mã Những đặc trưng cơ bản của một hệt mật, cơ bản về phươngpháp mã hóa đối xứng, bất đối xứng, hàm băm và chữ ký số Nội dung chương 1cũng trình bày khái quát về ẩn mã, phân loại các phương pháp ẩn mã truyền thống
Chương 2 đồ án sẽ đi nghiên cứu phương pháp ẩn mã kết hợp với mã hóamới giúp tăng cường an toàn thông tin trong quá trình truyền tin
Trang 30CHƯƠNG 2: PHƯƠNG PHÁP ĐỐI SÁNH CHUỖI VÀ ỨNG DỤNG VÀO
KẾT HỢP MÃ HÓA VÀ ẨN MÃ
Chương này sẽ đi sâu vào phân tích, nghiên cứu phương pháp ẩn mã mới,phương pháp ẩn mã không thay đổi “Vật phủ” Nghiên cứu các giải thuật đối sánhchuỗi và ứng dụng của giải thuật vào xây dựng ứng dụng mã hóa kết hợp với ẩn mã
2.1 Phương pháp ẩn mã truyền thống
Phương pháp ẩn mã nhúng tin vào vật phủ
Phương pháp này đã được sử dụng rất phổ biến Trước tiên, người gửi mãhóa thông báo bí mật bằng một phương pháp mật mã nào đó để biến thành một bản
mã khó hiểu Sau đó, người gửi tiếp tục sử dụng kĩ thuật ẩn mã để che giấu sự tồntại của nó trong một vật phủ Hình 2.1 dưới đây mô tả quá trình thực hiện của cáchthức này so với phương pháp ẩn mã thông thường (không dùng mật mã).[7]
Vật phủ
Bản tin Nhúng tin
Vật phủ đã nhúng tin
Vật phủ đã nhúng tin
Trích xuất Bản tin
Trang 31Vật phủ Bản tin
Nhúng tin
Vật phủ đã nhúng tin
Vật phủ đã nhúng tin
Trích xuất Bản mã
Bên gửi
Kênh truyền không an toàn
Khi có được đối tượng chứa tin trong đó, người nhận tiến hành trích xuất thông tin
để có được bản mã sau đó tiến hành quá trình giải mã sử dụng khóa bí mật hoặckhóa công khai mà người gửi và người nhận thỏa thuận trước đó
Quá trình trên là một quy trình phức tạp với nhiều phiên làm việc giữa người gửi
và người nhận Tuy nhiên đây là một phương pháp có độ an toàn cao do được bảomật nhiều lớp
Có một phương pháp mới vừa ẩn mã và vừa mã hóa được thực hiện đơn giản hơn
và độ an toàn tốt Phần sau đồ án sẽ trình bày về phương pháp ẩn mã kết hợp mãhóa mới này
Trang 322.2 Phương pháp ẩn mã mới
Do phương pháp ẩn mã mới này không làm thay đổi đối tượng được sử dụng để ẩntin nên ta tạm gọi phương pháp này là phương pháp ẩn mã mới không sửa vật phủ.Sau khi trình bày phương pháp ẩn mã không sửa vật phủ này, ta sẽ đi phân tích xemtại sao nó là một phương pháp ẩn mã kết hợp với mật mã
Phương pháp ẩn mã không sửa vật phủ
Đây là phương pháp lần đầu tiên được Khalil Challita và Hikmat Farhat giớithiệu vào năm 2011 Ý tưởng của cách tiếp cận này chưa từng được đưa ra trong bất
cứ một tài liệu nào trước đó Đầu tiên, bên gửi và bên nhận đồng ý sử dụng một vậtphủ Người gửi không phải chỉnh sửa vật phủ, mà chỉ xác định những bit của thôngbáo bí mật nào giống với các bit trong vật phủ, thì lưu vào các vị trí khác nhau(chẳng hạn trong vật phủ) dưới dạng một vector Vector này sau đó được gửi (thậmchí có thể tăng cường sự an toàn bằng cách mã hóa vector) cho người nhận Khi ấy,
kẻ tấn công có thể chặn được vector đã gửi (có thể đã được mã hoá) nhưng khôngthể biết được vật phủ tương ứng Vì vậy, để phá được lược đồ ẩn mã này, kẻ tấncông không những phải chặn được thông tin bí mật đã gửi mà còn phải biết đượcvật phủ[3] Hình 1.10 mô tả quá trình thực hiện của phương pháp này
Chọn vật phủ
Tìm các bit giống nhau
Tìm các bit giống nhau trí các bitVector vị Xác định các bit
Vector vị trí các bit
Vật phủ
Vật phủ
Hình 2.3: Mô hình ẩn mã không sửa vật phủ
Cách ẩn mã này có một khó khăn ở khâu thống nhất vật phủ giữa người gửi
và người nhận, để kẻ tấn công không thể biết được Thông thường, hai bên đều cótrước một tập các vật phủ và kí hiệu vật phủ được sử dụng trong mỗi lần trao đổi.Thực chất ở đây không sử dụng bất kỳ một kĩ thuật ẩn mã cũng như mật mã thông
Trang 33thường nào Đây chính là sự sáng tạo hết sức tinh tế của các tác giả đã đề xuất raphương pháp này
Quá trình mã hóa rất thông minh, thể hiện ở chỗ tìm ra các bit giống nhaugiữa thông báo và vật phủ rồi lưu thành một vector chứa các vị trí bắt đầu và kếtthúc của các chuỗi bit con đó Sự ẩn mã cũng là một cách thực hiện tinh tế khôngkém vì thực chất là ẩn vào vật phủ thông qua vector vừa xác định mà không hề thayđổi vật phủ Do vậy, thông tin truyền đi không phải là một vật phủ có nhúng thôngbáo mà chỉ đơn giản là một vector chứa các vị trí khác nhau của vật phủ Ngườinhận có vật phủ và dựa vào vector này để xác định các vị trí trong vật phủ từ đó đểtìm ra các bit tương ứng và đó cũng chính là các bit trong thông báo của người gửi
2.2.1 Mô tả phương pháp ẩn mã mới
Người gửi A muốn gửi một thông điệp bí mậtM (secrectMessage) cho ngườinhận B A thực hiện mã hóa và ẩn mã thông điệp M vào một tệp tin được gọi là vậtphủ O (coverObject) đã được thống nhất từ trước Chưa đề cập đến việc làm thế nào
để A và B thống nhất với nhau đối tượng được chọn làm vật phủ Khi đã có vật phủ
A sẽ tiến hành ẩn thông điệp bí mật M theo vật phủ O bằng phương pháp ẩn mãkhông sửa vật phủ Khi đó A sẽ có được vector V là vector lưu vị trí bắt đầu và kếtthúc của thông điệp bí mật M theo vật phủ O.Sau đó A sẽ gửi một thông điệp Vchứa vector vị trí cho B bằng kênh truyền thông thường Khi B nhận được Vector vịtrí V, B sẽ tiến hành giải mã thông điệp bằng việc dịch từ vật phủ các giá trị bit khởiđầu và kết thúc để có được M ban đầu
Dưới đây là thuật toán thực hiện dựa trên cách phân tích cú pháp tĩnh (StaticParsing Steganography – SPS), gồm hai bước:
• Bước 1: Vật phủ (cả bên gửi và bên nhận chia sẻ) và thông báo bí mật được
chuyển thành các bit, kí hiệu các tệp đầu ra này lần lượt là coverObject1 vàsecretMessage1
• Bước 2: Mã hóa thông báo bí mật secretMessage1theo coverObject1, tìm ra các
bit giống nhau giữa thông báo và vật phủ rồi lưu thành một vector chứa các vị trí bắt
Trang 34đầu và kết thúc của các chuỗi bit con đó Do vậy, thông tin truyền đi không phải làmột vật phủ có nhúng thông báo mà chỉ đơn giản là một vector chứa các vị trí khácnhau của vật phủ Người nhận có vật phủ và dựa vào vector này để xác định các vịtrí trong vật phủ từ đó để tìm ra các bit tương ứng và đó cũng chính là các bit trongthông báo của người gửi Ý tưởng được dựa trên bài toán tìm xâu con giống nhaudài nhất của hai xâu Thuật toán sử dụng chiến lược chia để trị và thực hiện như sau:Bắt đầu với toàn bộ các bit của secretMessage1 và tìm một xâu có các bit giốngnhau ở cả secretMessage1 và coverObject1 Nếu tìm được một xâu thỏa mãn yêucầu thì thuật toán sẽ lưu các chỉ số bắt đầu và kết thúc của xâu secretMessage1 màxuất hiện trong coverObject1 vào một tệp đầu ra là Output1 Nếu không tìm thấy,thì thuật toán tiếp tục đệ quy để tìm ra một xâu giống nhau trong nửa trái và nửaphải của secretMessage1 với coverObject1 Tiếp tục lặp quá trình này cho tới khitìm ra được tất cả các bit của secretMessage1 khớp với các bit của coverObject1.Như vậy phương pháp ẩn mã không sửa vật phủ cũng gồm có 3 quá trình giống vớicác phương pháp ẩn mã và mã hóa khác đó là:
- Quá trình ẩn mã của người gửi
- Quá trình giải mã trích xuất để có được bản rõ của người nhận
- Quá trình phân phối và thỏa thuận vật phủ giữa người gửi và người nhận.Trong phạm vi nghiên cứu đồ án chỉ trình bày chi tiết quá trình ẩn mã củangười gửi và quá trình giải mã trích xuất bản rõ của người nhận Những giải thuật
sử dụng và cách thức ứng dụng giải thuật đó vào quá trình ẩn mã và giải mã Đốivới quá trình phân phối và thỏa thuận vật phủ đồ án chỉ đề xuất sử dụng phươngpháp phân phối khóa đã biết.[8]
2.2.2 Quá trình ẩn mã của người gửi
a Mô tả
Trang 35Ký hiệu LCS(S1,O1) là thuật toán tìm chỉ số đầu tiên mà S1(secretMessage1)xuất hiện trong O1(coverObject1), và trả về true nếu toàn bộ S1 nằm thuộc O1 SPS(secretMessage, coverObject) là hàm thực hiện việc ẩn mã Sinh ra vector lưu lần lượtcác chỉ số bắt đầu và kết thúc của xâu S1 mà xuất hiện trong xâu O1
Quá trình ẩn mã của người gửi mô tả cụ thể như sau: Bắt đầu với toàn bộ cácbit của S1 sử dụng thuật toán SPS (secretMessage, coverObject) phân tích cú pháptĩnh của S1 và O1 Sau đó sử dụng thuật toán LCS (S1,O1) tìm những chuối conchung dài nhất của S1 và O1 Nếu tìm được chuỗi chung thì thuật toánVectorIndex(startIndex,endIndex) sẽ lưu các chỉ số bắt đầu và kết thúc của chuỗi bitS1 mà xuất hiện trong O1 vào 1 tệp đầu ra là Output1 Nếu không tìm thấy, thì thuậttuấn tiếp tục đệ quy để tìm ra một chuỗi giống nhau trong nửa trái SPS (LeftPart-secretMessage,coverObject) và nửa phảiSPS (LeftPart-secretMessage,coverObject)của S1 với O1 Tiếp tục lặp quá trình này cho tới khi tìm ra được tất cả các bit củaS1 khớp với các bit của O1
SPS(LeftPart−secretMessage, coverObject)
LCS(secretMessage, coverObject)
VectorIndex(startIndex,e ndindex) coverObject, secretMessage
SPS(LeftPart−secretM essage, coverObject)
SPS(RightPart−secret Message, coverObject)
T
F
Hình 2.4: Sơ đồ khối phương pháp ẩn mã kết hợp mã hóa không sửa vật phủ
Giải thuật ẩn mã sẽ như sau:
Trang 36if LCS(secretMessage, coverObject) is true,
then
store the positionsof the indexes
of the start and end bits of Secret
that occur within Object the output
Đoạn mã 1: Giải thuật ẩn mã
Việc lựa chọn thuật toán tìm chỉ số đầu tiên mà S1 xuất hiện trong O1 là vấn
đề tiên quyết đánh giá khả năng xử lý của phương pháp
Có rất nhiều giải thuật được sử dụng để thực hiện hàm LCS trên, trong phạm
vi nghiên cứu đồ án sẽ trình bày giải thuật được sử dụng phổ biến nhất và cũngmang hiệu quả nhất đó chính là các giải thuật đối sánh chuỗi
b Giải thuật đối sánh chuỗi.
*)Khái quát về đối sánhchuỗi
Khái niệm đối sánhchuỗi
Trong khoa học máy tính, đối sánh chuỗi (còn được gọi là tìm kiếm chuỗi) là
kỹ thuật cho phép tìm ra vị trí xuất hiện của một hoặc một vài chuỗi (gọi là mẫu Patern) trong một chuỗi lớn (gọi là văn bản -Text)
-Ta có thể phát biểu dưới dạng toán học như sau:
T[0 n-1] là chuỗi văn bản bao gồm n ký tự
P[0 m-1] là chuỗi mẫu bao gồm m kýtự
Trang 37Σ* là tập hữu hạn các ký tự trong bảng chữcái.
Trong đĩ, m và n là các giá trị nguyên dương (0<m<n) Tập Σ* cĩ thể làbảng chữ cái thơng thường của con người, cĩ thể là bảng chữ cái nhị phân(Σ*={0,1}) hoặc bảng chữ cái DNA trong tin sinh học (Σ*={A,C,G,T}) Các ký tựtrong T và P phải nằm trong tập Σ* hữu hạn nĩitrên
Tìm sự xuất hiện của P trong T được hiểu là tìm số nguyên s (0≤ s≤ n-m)thỏa mãn:
T[s s+m-1] = P[0 m-1]hayT[s+i] = P[i] với i nằm trong khoảng [0 m-1]
Giá trị s được gọi là độ dịch chuyển Trong trường hợp P xuất hiện trong T,
ta nĩi s là độ dịch chuyển hợp lê Khi P khơng xuất hiện trong T, ta gọi s là độ dịchchuyển khơng hợplệ
Ví dụ, ta xét văn bản T[n] và P[m] như sau:
-Thuật tốn cổ điển (Classical algorithms): Thuật tốn cổ điển chủ yếu dựa
vào sự so sánh lần lượt các ký tự với nhau Các thuật tốn điển hình thuộc dạng này
là Nạve, BruteForce…
Trang 38-Thuật tốn máy tự động hậu tố (Suffix automata algorithms): Thuật tốn
máy tự động hậu tố chủ yếu sử dụng các cấu trúc tự động để nhận ra các hậu tố củachuỗi Pattern Từ đĩ, thuật tốn đưa sẵn những phương án dịch chuyển (tìm kiếmtiếp) so khớp P với T thất bại hoặc khi so khớp thành cơng Các thuật tiêu biểu cĩthể kể tới là: Knuth–Morris–Pratt (KMP), Boyer Moore (BM), Boyer MooreHorspool(BMH)…
-Thuật tốn Bit song song (Bit-Parallelism algorithms): Thuật tốn Bit song
song khai thác các phép tốn Bitwise để thực hiện nhiều thao tác cùng lúc Mộtthuật tốn điển hình thuộc dạng này làShift-Or
-Thuật tốn băm (Hashing algorithms): Thuật tốn băm sửa dụng hàm băm để
so sánh giá trị băm của chuỗi mẫu với giá trị băm của các chuỗi con trong văn bản.Phương pháp này giúp giảm bớt sự so sánh trực tiếp các ký tự với nhau, giúp giảm
độ phức tạp của thuật tốn Thuật tốn điển hình sử dụng cách tiếp cận này Karp
làKabin- Phân loại kỹ thuật đối sánhchuỗi
Hiện nay, các thuật tốn đối sánh chuỗi tương đối đa dạng Chúng ta cĩ thểphân loại kỹ thuật đối sánh chuỗi theo nhiều cách khác nhau Một số phương phápphân loại cĩ thể kể tới là: phân loại dựa theo thứ tự đối sánh, phân loại dựa theo sốlượng mẫu, phân loại dựa theo độ chínhxác
- Phân loại dựa theo thứ tự đốisánh
Dựa theo thứ tự đối sánh, chúng ta cĩ thể chia các thuật tốn đối sánh chuỗi thành hainhĩm:
oĐối sánh chuỗi theo thứ tự từ trái sang phải: Các ký tự trong pattern sẽ được so
khớp theo thứ tự từ trái sang phải Cụ thể, các phần tử từ P[0] đến P[m-1] sẽ lầnlượt được so sánh với các phần tử từ T[s] đến T[s+m-1] trong chuỗi văn bản (text)
Ví dụ: thuật tốn Nạve,KMP…
oĐối sánh chuỗi theo thứ tự từ phải sang trái:Các ký tự trong pattern sẽ lần lượt
đượcsosánhtheothứtựtừphảisangtrái.Vídụ:thuậttốnBoyerMoore, Horpool…
Trang 39- Phân loại dựa theo số lượng mẫu(pattern)
Dựa theo số lượng pattern, các thuật tốn đối sánh chuỗi được chia thành hai nhĩm:
o Đối sánh chuỗi đơn pattern: Cơng việc so khớp chỉ được thực hiện giữa một
Pattern với một chuỗi Text cho trước Các thuật tốn đối sánh đơn pattern là Nạve,BoyerMoore…
o Đối sánh chuỗi đa pattern: Với các thuật tốn thuộc nhĩm này, các chuỗi
Pattern sẽ được so khớp đồng thời với các chuỗi con trong Text Thuật tốn đapattern tiêu biểu làAho-Corasick
- Phân loại dựa theo độ chínhxác
Dựa trên độ chính xác khi tìm kiếm Pattern trong Text, các thuật tốn được chiathành haidạng:
o Đối sánh chuỗi chính xác: Thuật tốn sẽ so khớp một cách tuyệt đối Pattern và
các chuỗi con trong Text để tìm ra các vị trí xuất hiện của P[m] trongT[n]
o Đối sánh chuỗi gần đúng: Thuật tốn sẽ tìm kiếm những chuỗi con của Text
gần đúng so với chuỗiPattern
Tiêu chí đánh giá các thuật tốn đối sánh chuỗi
Để đánh giá hiệu năng của thuật tốn đối sánh chuỗi, chúng ta cĩ thể dựa trênnhững tiêu chí sau:
- Sự biểu diễn kỹ thuật pattern
Ứng dụng của đối sánhchuỗi
Trang 40Đối sánh chuỗi là một trong những bài toán cơ bản nhất, xuất phát từ chínhnhu cầu thực tiễn Bởi vậy, nó có miền ứng dụng rất rộng ngoài thực tế Chúng ta sẽxem xét một vài ứng dụng/lĩnh vực sử dụng kỹ thuật đối sánhchuỗi.
Trình soạn thảo văn bản, trình duyệt web, hệ điều hành: Trong trình
soạn thảo văn bản và trình duyệt web, tính năng “search” thường được sử dụng.Người dùng khi có nhu cầu tìm một từ hoặc một đoạn nào đó trong văn bản hoặcnội dung trang web sẽ sử dụng chức năng tìm kiếm chuỗi này Ngoài ra, trong các
hệ điều hành, kỹ thuật đối sánh chuỗi cũng được ứng dụng vào chức năng tìm kiếmtập tin/thư mục hoặc tìm kiếm các từ trong nội dung tập tin (lệnh “grep” trongLinux)
Website: Các website thương mại điện tử, website thư viện trực tuyến
thường cung cấp công cụ hỗ trợ tìm kiếm các mặt hàng, các tài liệu theo nhu cầungười dùng Các thông tin này sẽ được người dùng nhập vào giao diện tìm kiếm,thực hiện truy vấn tới cơ sở dữ liệu và trả lại kết quả dựa vào việc so sánh thông tintruy vấn với thông tin lưu trữ trong cơ sở dữliệu
Tin sinh học: Trong lĩnh vực tin sinh học, các giải thuật đối sánh chuỗi được
ứng dụng hiệu quả để tìm kiếm, nhận diện, phân tích các chuỗi DNA vàprotein
Máy tìm kiếm: Các máy tìm kiếm như Google, Bing, Yahoo… được sử
dụng các thuật toán đối sánh chuỗi hiệu năng cao để tìm kiếm thông tin trong một
cơ sở dữ liệu khổng lồ Kỹ thuật đối sánh chuỗi thường được kết hợp với một số kỹthuật khác như đánh chỉ mục trong cơ sở dữ liệu để cải thiện hiệu quả tìmkiếm
Hệ thống phát hiện đột nhập: Hệ thống phát hiện đột nhập có chức năng
phát hiện sớm những nguy cơ xâm nhập dựa vào các gói tin truyền thông trongmạng Để phát hiện kịp thời những nguy cơ này, kỹ thuật đối sánh chuỗi chính xácđược sửdụngđểtìmkiếmnhữngdấuhiệuđộtnhậptrongdữliệugóitinđãđượctiềnxử lý.Nếu sự so khớp thành công, hệ thống sẽ ghi nhận và đưa ra cảnh báo chongườidùng.[7]
*) Các thuật toán đối sánh chuỗi