Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 87 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
87
Dung lượng
2,02 MB
Nội dung
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG ––––––––––––––––– ĐỖ THU HOÀI NGHIÊN CỨU VỀ HÀM BĂM TRÊN CƠ SỞ MẠNG HOÁN VỊ THAY THẾ ĐIỀU KHIỂN ĐƯỢC VÀ ỨNG DỤNG TRONG MÃ HÕA XÁC THỰC VĂN BẢN Chuyên ngành: Khoa học máy tính Mã số : 62.48.01 LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH Thái Nguyên, năm 2013 1 Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ LỜI CAM ĐOAN Em xin cam đoan toàn bộ luận văn: “Nghiên cứu về hàm băm trên cơ sở mạng hoán vị thay thế điều khiển đƣợc và ứng dụng trong mã hóa xác thực văn bản” là do bản thân tìm hiểu, nghiên cứu. Không có sự sao chép nội dung từ các luận văn khác. Tất cả nội dung hoặc hình ảnh minh họa đều có nguồn gốc xuất xứ rõ ràng từ các tài liệu tham khảo ở nhiều nguồn khác nhau mà xây dựng nên. Ngoài ra còn có sự góp ý và định hƣớng của thầy giáo TS Vũ Đức Thái. Em xin cam đoan những lời trên là đúng, mọi thông tin sai lệch em xin hoàn toàn chịu trách nhiệm trƣớc Hội đồng. 2 Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ MỤC LỤC LỜI CAM ĐOAN 1 MỤC LỤC 2 DANH MỤC CÁC CHỮ VIẾT TẮT 4 DANH MỤC HÌNH ẢNH 5 DANH MỤC BẢNG BIỂU 7 CHƢƠNG 1 TỔNG QUAN VỀ HÀM BĂM 10 1.1 Giới thiệu về hàm băm 10 1.1.1 Định nghĩa về hàm băm 10 1.1.2 Lịch sử phát triển của hàm băm 11 1.1.3 Thuộc tính an toàn của hàm băm 13 1.1.4 Các quan niệm an toàn 15 1.2 Ứng dụng của hàm băm 16 1.3 Xu hƣớng thiết kế 17 1.3.1 Hàm băm không khóa và có khóa 17 1.3.2 Hàm băm lặp 18 1.3.3 Hàm băm dựa trên hình cây 28 1.3.4 Hàm nén 29 CHƢƠNG 2 KIẾN TRÚC MẠNG CHUYỂN VỊ THAY THẾ ĐIỀU KHIỂN ĐƢỢC 30 2.1 Các phần tử mã hóa cơ bản điều khiển đƣợc dựa trên mạng chuyển vị thay thế 30 2.1.1 Phần tử điều khiển cơ bản 30 2.1.2 Phân loại các phần tử cơ bản. 32 2.1.3 Nhóm phụ của các phần tử U 2/1 với một đầu ra tuyến tính 37 2.2 Tô pô đối xứng 41 CHƢƠNG 3 XÂY DỰNG VÀ CÀI ĐẶT CHƢƠNG TRÌNH MÔ PHỎNG 51 3.1 Bài toán ứng dụng 51 3.2 Thiết kế CSDL, thuật toán và giao diện chƣơng trình hàm băm 51 3.2.1 Thiết kế cơ sở dữ liệu 51 3.2.2 Thuật toán thực hiện 53 3.2.3 Phân tích các modul chƣơng trình chính 54 3.2.4 Giao diện chƣơng trình 58 3 Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ 3.3 Cài đặt chƣơng trình 58 3.4 Tích hợp Add-In vào cho phần mềm Microsoftword 2007 59 3.5 Thử nghiệm và đánh giá kết quả 60 3.5.1 Một số kết quả thử nghiệm của chƣơng trình 60 3.5.2 Đánh giá kết quả 61 3.6 Nghiên cứu sử dụng công nghệ FPGA để cấu hình các phần tử điều khiển đƣợc. 62 3.7 Kết luận 69 KẾT LUẬN 71 TÀI LIỆU THAM KHẢO 72 PHỤ LỤC 74 4 Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ DANH MỤC CÁC CHỮ VIẾT TẮT Từ viết tắt Nghĩa tiếng Anh Nghĩa tiếng Việt AES Advanced Encryption Standard Tiêu chuẩn mã hóa tiên tiến CE Controlled Element Phần tử điều khiển đƣợc CSPN Controlled Substitution Permutation Network Mạng Hoán vị-Thay thế điều khiển đƣợc DES Data Encrypt Standar Chuẩn mã hóa dữ liệu DDP Data Dependent Permutation (data- driven permutation) Hoán vị phụ thuộc vào dữ liệu FPGA Field Programmable Gate Array Thiết bị lập trình có khá năng tái cấu hình. HMAC Hashed Message Authentication Code Xác thực thông điệp bằng hàm băm NIST National Institute of Standards and Technology Viện Tiêu chuẩn và Công nghệ Quốc gia của Mỹ NMAC Non-Message Authentication Code Không mã xác thực thông điệp MAC Message Authentication Code Mã xác thực thông điệp MD5 Message-Digest algorithm 5 Giải thuật tóm tắt thông điệp MDP Message-Digest Permutation Hoán vị tóm tắt thông điệp NL Non Linearity Phi tuyến PKC Public Key Cryptographic Mật mã khóa công khai RIPEMD Race Integrity Primitives Evaluation Message Digest Phân loại đánh giá tính toàn vẹn nguyên thủy của thông điệp RO Reverse Osmosis Thẩm thấu ngƣợc SHA Secure Hash Algorithm Thuật giải băm an toàn SPN Substitution Permutation Network Mạng hoán vị thay thế TT Truth Table Bảng giá trị chân lý của các phép toán logic UOWHFs Universal One -Way Hash Functions Hàm băm 1 chiều phổ dụng 5 Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ DANH MỤC HÌNH ẢNH Hình 1.1. Hoạt động của một hàm băm 11 Hình 1.2. Sơ đồ biểu diễn các thuộc tính khả năng chống đụng độ, ngăn sự nghịch ảnh và nghịch ảnh thứ 2. 14 Hình 1.3. Thuật toán bƣớc đệm Merkle-Damgard. 20 Hình 1.4. Cấu trúc Merkle-Damgard 20 Hình 1.5. Tấn công đa đụng độ 21 Hình 1.6. Cấu trúc kim cƣơng. 24 Hình 1.7. Cấu trúc NMAC (a) và HMAC (b) 27 Hình 1.8. Cấu trúc MDP. 28 Hình 1.9. Cấu trúc cây mẫu 29 Hình 2.1. Phần tử cơ bản F 2/1 : a. Sơ đồ tổng quát; b. Sơ đồ dạng hàm Logic với 3 biến vào; c. Sơ đồ dạng 2 phép thế; d,e. Biểu diễn CE thuộc loại P 2/1 ; f. Đặc trƣng vi phân của F 2/1 30 Hình 2.2. Mô tả trực quan toàn bộ các khả năng có thể có của hộp S 2x2 34 Hình 2.3. Tô pô của các phần tử F 8/12 (a), F -1 8/12 (b), F 32/96 (c), và F -1 32/96 (d) 44 Hình 2.4. Cấu trúc của các phần tử 32/96 (a), -1 32/96 (b), 64/384 (c) và -1 64/384 (d) 45 Hình 2.5. Cấu trúc các phần tử đối xứng F 2n/4m (a), P 16/32 (b) và F 64/256 46 Hình 3.1: Kết quả thử nghiệm với file *.doc 52 Hình 3.2 : Kết quả thử nghiệm với file *.txt 53 Hình 3.3. Các phần tử cơ bản (a,e), (e,g), (f,i), (p,h), (x,d). 55 Hình 3.4. Phần tử CP F 8/12 55 Hình 3.5. Phần tử CP F -1 8/12 56 Hình 3.6. Phần tử F 96/1 56 Hình 3.7. Phần tử F 32/96 (a), F -1 32/96 (b) . 57 Hình 3.8. Phần tử F 32/32 57 Hình 3.9. Giao diện chƣơng trình 58 Hình 3.10. Xây dựng thƣ viện HashDLL.dll 59 Hình 3.11. Giao diện sử dụng Add-In “Ez Hash Function” trong word 2007. 60 Hình 3.12. Phần tử (a) đƣợc biểu diễn thành một cặp hàm logic 4 biến (b) hoặc thành 4 phép thế 2x2 (c). 64 Hình 3.13. Cấu trúc tổng quát của các phần tử n/m 65 6 Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ Hình 3.14. Các đặc trƣng vi phân có thể của các phần tử F 2/2 66 7 Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ DANH MỤC BẢNG BIỂU Bảng 1.2. Một số thuật ngữ về hàm băm 18 Bảng 2.1. Xác suất của các đặc trƣng vi phân của các phần tử 35 Bảng 2.2. Toàn bộ các phần tử điều khiển đƣợc thỏa mãn tiêu chí lựa chọn 36 Bảng 2.3. Tập các đối hợp phi tuyến tính cơ bản điều khiển đƣợc 38 Bảng 2.4. Xác suất của các đặc trƣng vi phân của các phần tử và tập 40 Bảng 2.5. Các phần tử hoán vị điều khiển đƣợc với cấu trúc đối xứng 47 8 Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ MỞ ĐẦU Mật mã (Cryptography) là ngành khoa học nghiên cứu các nội dung về toán học, kỹ thuật nhằm cung cấp các dịch vụ bảo vệ thông tin trong quá trình tuyền tin. Khoa học mật mã đã ra đời và phát triển từ rất sớm, các kết quả nghiên cứu của lĩnh vực này đƣợc sử dụng nhiều trong lĩnh vực quân sự, chính trị, ngoại giao Ngày nay, khi công nghệ thông tin phát triển các ứng dụng mã hóa và bảo mật thông tin đang đƣợc sử dụng rộng rãi sang nhiều lĩnh vực khác nhƣ kinh tế, thƣơng mại điện tử, ngân hàng… Với sự phát triển của công nghệ truyền thông và các mạng giao dịch toàn cầu, việc trao đổi thông tin ngày càng đơn giản và thuận tiện hơn, bên cạnh đó cũng nảy sinh nhiều yêu cầu cao hơn về bảo mật thông tin trong các hệ thống và các ứng dụng điện tử. Xã hội càng phát triển, nhu cầu sử dụng các dịch vụ mạng ngày càng lớn và chúng không ngừng đƣợc nâng cao về mọi mặt để có thể đáp ứng xu thế thời đại. Trong môi trƣờng mạng, việc truy nhập, lƣu giữ và trao đổi thông tin (trong đó có các thông tin rất nhạy cảm) đƣợc phát triển với tốc độ cao. Điều này đã tạo điều kiện cho các hoạt động phi pháp trên mạng ngày càng gia tăng. Việc xâm phạm dƣới các hình thức khác nhau có thể gây ra các hậu quả nặng nề cho các cá nhân và tổ chức xã hội. Và trên thực tế đã hình thành mâu thuẫn giữa nhu cầu phát triển các ứng dụng mạng với các nguy cơ an toàn về thông tin. Do nhu cầu thực tế, khoa học mật mã không ngừng đƣợc nghiên cứu, phát triển và ứng dụng. Trên thực tế, mật mã có thể phân chia hình thức thành ba hƣớng chính - mật mã khóa bí mật, mật mã khóa công khai, hàm băm mật mã. Trong đó các hàm băm mật mã đóng một vai trò vô cùng quan trọng trong các ứng dụng bảo vệ an toàn thông tin (xác thực, kiểm tra tính toàn vẹn, chữ ký số, …). Trong những năm qua vấn đề nghiên cứu về mật mã tại Việt Nam cũng còn nhiều hạn chế bởi nhiều lý do hoặc có những kết quả nghiên cứu chỉ mang nội dung cơ bản, đặc thù áp dụng trong những tình huống cụ thể của mỗi đơn vị sử dụng. Còn 9 Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ lại đa số các công nghệ, kỹ thuật mã hóa trong các ứng dụng và thiết bị đều theo các mô hình mã hóa của thế giới nhƣ DES, AES, MD5, Do đó, việc nghiên cứu và phát triển các hàm băm mật mã tốt, luôn đƣợc sử dụng trong thực tiễn nhằm phát triển các thuật toán ngày càng tối ƣu, hoặc các thuật toán phù hợp cho các ứng dụng - một trong những mục tiêu chính đƣợc đặt ra nhằm nâng cao tính độc lập trong xây dựng các giải pháp an toàn thông tin. Với mục đích phát triển một hàm băm có độ phức tạp cao có khả năng ứng dụng trong thực tiễn em đã chọn đề tài: “Nghiên cứu về hàm băm trên cơ sở mạng hoán vị thay thế điều khiển được và ứng dụng trong mã hóa xác thực văn bản” cho luận văn tốt nghiệp của mình. Nội dung đề tài nghiên cứu gồm có: Tìm hiểu thuật toán về hàm băm; mạng chuyển vị thay thế điều khiển đƣợc; xây dựng và cài đặt mô phỏng thuật toán băm; mã hóa xác thực văn bản; đánh giá độ tin cậy của thuật toán và đề xuất khả năng ứng dụng. [...]... tử mã hóa cơ bản điều khiển đƣợc dựa trên mạng chuyển vị thay thế 2.1.1 Phần tử điều khiển cơ bản Khối cấu trúc chính trong các phần tử hoán vị phân tầng điều khiển đƣợc là các phần tử hoán vị thực hiện phép chuyển vị điều khiển đƣợc của 2 bit đầu vào Phép biến đổi điều khiển đƣợc giản đơn đƣợc thực hiện với đƣợc mô tả bởi 2 hàm logic phi tuyến với 3 biến, cụ thể là: Với v là bit điều khiển Chọn 2 hàm. .. các hàm băm có khóa chuyên dụng Các hàm băm đƣợc thiết kế cho trƣờng hợp khóa chuyên dụng là họ các hàm băm mà ở đây các hàm thành viên đƣợc đánh số bởi các khóa khác nhau Trong trƣờng hợp này, nếu một thành viên của họ hàm băm bị phá thì sẽ có một số ảnh hƣởng nhỏ tới các thành viên khác trong cùng một họ (điều này không đúng trong trƣờng hợp hàm băm không khóa mà một cuộc tấn công đơn độc vào một hàm. .. mẫu 1.3.4 Hàm nén Một số hàm băm MD5 và SHA-1 đƣợc gọi là hàm băm chuyên dụng Các hàm khác đƣợc xây dựng dựa trên các phần tử mật mã học hoặc toán học không đƣợc thiết kế để sử dụng cho hàm băm cũng có thể đƣợc điều chỉnh Cho đến nay, vẫn chƣa thảo luận sâu về cách xây dựng hàm nén vì khi thiết kế một hàm băm, có ngƣời sẽ áp dụng sự có mặt của hàm nén « tốt » và thiết kế một cấu trúc theo đó Điều này... tin cho việc xác định nguồn file, tải xuống và kiểm tra nội dung 1.3 Xu hƣớng thiết kế 1.3.1 Hàm băm không khóa và có khóa Nhìn chung, các hàm băm đƣợc phân loại thành có khóa hoặc không có khóa Các hàm băm không có khóa chấp nhận một thông điệp M có chiều dài biến động và cho ra một giá trị băm cố định ( Mặt khác, các hàm băm có khóa chấp nhận cả thông điệp có chiều dài biến động M và khóa có chiều... một hàm và phá hủy hoàn toàn hàm đó) Tuy nhiên Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ 18 một yếu điểm rất rõ ràng của hàm băm trong trƣờng hợp khóa chuyên dụng đó là hiệu quả bị thấp đi vì trong trƣờng hợp này hàm băm ngoài có đầu vào (thông điệp) phải có thêm đầu vào (khóa) Xem bảng 1.1 để rõ hơn về các định nghĩa ngắn gọn (không chính thức) của thuật ngữ về hàm băm đƣợc sử dụng trong. .. đƣợc sử dụng trung gian, biến số tính trạng bên trong nhƣ đầu vào cuộc gọi với hàm nén theo sau Giá trị băm, giá trị băm cuối cùng, mật Kết quả cuối cùng của việc băm một mã băm, kết quả băm, băm, phân loại thông điệp, gọi là một chuỗi có chiều dài cố định Tóm lại, một hàm băm (có khóa hay không khóa) đƣợc xây dựng bằng hai bộ phận là: Một hàm nén f và cấu trúc H Hàm nén là một hàm ánh xạ một đầu vào có... ra 1 giá trị băm cố định, Hàm băm có khóa còn đƣợc tiếp tục phân loại dựa trên việc khóa là khóa bí mật hay khóa công khai Các hàm băm có khóa bí mật thƣờng đƣợc sử dụng để xây dựng thông điệp các mã xác thực thông điệp (MAC - Message Authentication Code) , một ví dụ phù hợp tiêu chuẩn này đó là (HMAC - Hashed Message Authentication Code) rõ hơn về MAC Tuy nhiên, nếu các hàm băm có khóa công khai,... các chức năng mật mã khác, điều này cho phép trên thực tế có thể đơn giản hóa nhiều giao thức mật mã, cả những giao thức đang tồn tại và cả những giao thức đang đƣợc thiết kế Do đó, dù thuật toán nào đƣợc lựa chọn thì điều đó đều đánh dấu một bƣớc tiến quan trọng trong nghiên cứu hàm băm 1.1.3 Thuộc tính an toàn của hàm băm Các thuộc tính an toàn cơ bản (truyền thống) mà một hàm băm nên có đó là [8]:... TỔNG QUAN VỀ HÀM BĂM 1.1 Giới thiệu về hàm băm 1.1.1 Định nghĩa về hàm băm Hàm băm (hash function) là một ánh xạ, ánh xạ các chuỗi nhị phân có độ dài tuỳ ý thành các chuỗi nhị phân có độ dài cố định đƣợc gọi là giá trị băm Hàm băm là giải thuật nhằm sinh ra các giá trị băm tƣơng ứng với mỗi khối dữ liệu (có thể là một chuỗi kí tự, một đối tƣợng trong lập trình hƣớng đối tƣợng, ) Giá trị băm đóng vai... ảnh và nghịch ảnh thứ 2 a, Khả năng chống đụng độ Một vụ đụng độ hàm băm xảy ra khi hai thông điệp khác nhau bất kỳ băm thành cùng một giá trị Tức là với một hàm băm chống đụng độ H, thì nó không thể tính toán để tìm ra hai thông điệp M và M' bất kỳ sao cho trong khi Điều này cũng có thể áp dụng cho họ hàm băm (tức là các hàm băm có khóa, ở đây các thành viên của họ hàm băm đƣợc thống kê bởi các khóa . có khả năng ứng dụng trong thực tiễn em đã chọn đề tài: Nghiên cứu về hàm băm trên cơ sở mạng hoán vị thay thế điều khiển được và ứng dụng trong mã hóa xác thực văn bản cho luận văn tốt nghiệp. NGHIÊN CỨU VỀ HÀM BĂM TRÊN CƠ SỞ MẠNG HOÁN VỊ THAY THẾ ĐIỀU KHIỂN ĐƯỢC VÀ ỨNG DỤNG TRONG MÃ HÕA XÁC THỰC VĂN BẢN Chuyên ngành: Khoa học máy tính Mã số : 62.48.01 LUẬN VĂN THẠC SỸ KHOA. CHUYỂN VỊ THAY THẾ ĐIỀU KHIỂN ĐƢỢC 30 2.1 Các phần tử mã hóa cơ bản điều khiển đƣợc dựa trên mạng chuyển vị thay thế 30 2.1.1 Phần tử điều khiển cơ bản 30 2.1.2 Phân loại các phần tử cơ bản.