Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 75 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
75
Dung lượng
0,96 MB
Nội dung
i LỜI CAM ĐOAN Với mục đích nghiên cứu, tìm hiểu để nâng cao kiến thức trình độ chuyên mơnđểápdụngtrongcácbàitốncụthểtrongtươnglainêntơiđãlàmluậnvănnày cách nghiêm túc hồn tồn trung thực Nội dung luận văn tự tơi tìm hiểu hồnthành Trong luận văn, tơi có sử dụng tài liệu tham khảo số tác giả nước để hoàn thành luận văn nêu phần tài liệu tham khảo Tơixincamđoanvàchịutráchnhiệmvềnộidung,sựtrungthựctrongluậnvăn tốt nghiệp Thạc sỹ củamình Thái Nguyên, tháng năm 2016 Học viên Vũ Ngọc Hòa ii LỜI CẢM ƠN Em xin chân thành cảm ơn tồn thể thầycơ giáo trường Đại học công nghệ thông tin truyền thông Đại học Thái Nguyên hết lòng dạy dỗ bảo, tạo điều kiện tốt cho em suốt trình học tập thời gian thực khóa luậnnày Đặc biệt em gửi lời cảm ơn chân thành sâu sắc tới TS Hồ Văn Canh người trực tiếp quan tâm, tận tình hướng dẫn giúp đỡ tạo điều kiện thuận lợi cho em trình thực khóa luận Cảmơncácbạnđồngkhóavàgiađìnhđãđộngviên,giúpđỡtơirấtnhiềutrong q trình học tập trường Đại học công nghệ thông tin truyền thơng Đại học Thái Ngun q trình thực khóaluận Thái Nguyên, tháng năm 2016 Học viên Vũ Ngọc Hòa iii MỤC LỤC LỜICAMĐOAN I LỜICẢMƠN II MỤCLỤC III DANHMỤCBẢNG V DANH MỤC CHỮVIẾTTẮT VIII PHẦNMỞĐẦU CHƯƠNG TỔNG QUAN VỀ HỆMẬTMÃ 1.1 Lý thuyết mã hóathơngtin 1.1.1 Kháiniệm 1.1.2 Vai trị mật mãhóa 1.1.3 Các thành phần hệmãhóa 1.2 Tiêu chuẩn để đánh giá hệmãhóa 1.2.1 Độ an tồn củathuậttốn 1.2.2 Tốc độ mã hóa vàgiảimã 1.2.3 Phânphốikhóa 1.3 Phân loại hệ mậtmã 1.3.1 Mật cổđiển 1.3.2 Mật mãhiệnđại 32 1.3.3 Mã hóa khóacơngkhai 33 1.4Kếtluận 43 CHƯƠNG 2:THUẬT TOÁN KẾT HỢP GIỮA VIGENERE VÀ CHUYỂN VỊ 442.1 Hệ mậtmãvigenere 44 2.1.1 Địnhnghĩa 44 2.1.2 Phương pháp mã hóa 45 2.1.3 Phương pháp giải mã 46 2.1.4 Phântích,đánhgiá 46 2.2 Hệ mật mãchuyểnvị 48 2.2.1 Địnhnghĩa 48 2.2.2 Phương pháp mã hóa 49 2.2.3 Phương pháp giảimã 49 2.2.4 Phân tích ,đánhgiá 50 2.3 Sự kết hợp hai mã chuyển vị mãvigenere 51 iv 2.3.1 Thuật tốn khóa k có độ dài 16ký tự 51 2.3.2 Thuật tốn khóa k có độ dài 21ký tự 53 2.3.3 Thuật tốn khóa k có độdàitùy 56 2.4 Đánh giákếtquả 57 CHƯƠNG 3: CÀI ĐẶT VÀTHỬNGHIỆM 58 3.1 Yêu cầuhệthống 58 3.2 Thử nghiệmchươngtrình 58 3.2.1 Mô tả liệuthửnghiệm 58 3.2.2 Quy trìnhmãhóa 59 KẾTLUẬN 66 TÀI LIỆU THAM KHẢO 68 v DANH MỤC BẢNG Bảng 1.1Bảngmã 12 Bảng 1.2 Bảng tầnsốđơn 13 Bảng 1.3 Mã trùngbô 3,4,6 14 Bảng 1.4 Bảng tần sốđịnhkỳ 16 Bảng 1.5 Bảng tần số đơncủa26 17 Bảng 1.6 Bản giả mã độdài41 21 Bảng 1.7 Độdài79 22 Bảng 1.8 Phương phápthámmã 23 Bảng 1.9 Phương pháp thámmã1 23 Bảng 1.10 Phương pháp thámmã 23 Bảng 1.11 Phương pháp thámmã 24 Bảng 1.12 Thámmã1 24 Bảng 1.13 Thámmã2 25 Bảng 1.14 Thámmã3 25 Bảng 1.15 Thámmã4 26 Bảng 1.16 Thámmã5 27 Bảng 1.17 Thámmã6 27 Bảng 1.18 Bảng mãdịchchuyển 28 Bảng 1.19 Bảng mã dịchchuyển1 28 Bảng 1.20 Bảng mã dịchchuyển2 29 Bảng 1.21 Bảng mã dịchchuyển3 29 Bảng 1.22 π cho bởihoán vị 30 Bảng 1.23 Mãaphin 31 Bảng 1.24 Quy đổi ký tự rõthànhsố 31 Bảng 1.25 Quy đổi ký tự mãthànhsố 32 Bảng 1.26BảngRSA 35 Bảng 1.27BảngElgama 39 Bảng 1.2 Bảng thuậttoán Rabin 42 vi Bảng 2.1 Phương pháp mãhóa 45 Bảng 2.2 Phương pháp giải mã 46 Bảng 2.3 Phân tích,đánhgiá 47 Bảng 2.4 Phương pháp mãhóa 49 Bảng 2.5 Phương pháp mãhóa 50 Bảng 2.6 Bảngchuyểnvị 54 Bảng 2.7 Bảng mã5-bít 55 vii DANH MỤC HÌNH Hình 1.1: Mơ hìnhmã hóa Hình 1.2: Apolyalphabetictableau 10 Hình 1.3: Mơhình mã hóa khóacơngkhai 33 viii DANH MỤC CHỮ VIẾT TẮT Viết tắt Tiếng Anh Tiếng Việt VGR Vigenere Nhiều vần chữ PHẦN MỞ ĐẦU Chúng ta biết rằng, việc bảo mật thơng tin hình thành từ xa xưa chúng phát triển theo phát triển xã hội loài người Từ trước đến việc bảo mật thông tin “nhạy cảm” chủ yếu hệ mật mã thủ công Với pháttriển nhanh chóng Internet việc lưu trữ dự liệu nhạy cảm mạng máy tính, mật mã trở thành công cụ quan trọng bảo mật thơng tin truyền lưutrênmáytính.Nhiềuthuậttốnmãhóađãđượcsửdụngrấtphổbiếntrênthếgiới đểđảmbảoantồnthơngtin.Ngồihệmậtmãtruyềnthống,đãcónhiềuHệmậtmã rađờinhưcáchệmậtmãkhóađốixứngcó:DES,trip-DES,AES,IDEA,RC4,RC5, v.v Hệ mật mã khóa cơng khai có: RSA, ELGAMAL, D-H (Diffie - Hellman), v.v Tuy nhiên biết ngôn ngữ tự nhiên có hai quy luật làquy luậttầnsốvàquyluậtMarkov,mãhóatứclàđưaramộtthuậttốnnàođónhằmxóa bỏ hai quy luật để đầu dãy giả ngẫu nhiên, độc lập thuật tốn mã hóa, khóa đối xứng thực theo ý tưởngtrên Mặt khác hệ mật mã khóa đối xứng đại DES,3DES, AES, IDEA, RC4, RC5… sử dụng phương pháp thay chuyển vị mà hệ mật mã truyền thống thực nhằm xóa bỏ quy luật rõ bảng mã Do việc tìm hiểu mật mã truyền thống quan trọng cần thiết.Vì tính cần thiết nên em chọn hướng xây dựng tìm hiểu nghiên cứu cho đề tài luận văn cao học là: “Xây dựng hệ mật mã tích dựa hệ mật mã truyền thống giải toán trao đổi mã khóa” vậy: - Mục đích Đềtài + Xây dựng hệ mật mã tích chuyển vị VGR, dựa đánh giá ưu/ nhược điểm hai hệ mật mã Đồng thời đề xuất phương pháp trao đổi khóa mật mã đối xứng khơng sử dụng mật mã khóa cơngkhai - Phạm vi nghiên cứu đềtài: + Tìm hiểu tổng quan hệ mật mã + Tìm hiểu xây dựng hệ mật mã tích dựa mật mã truyền thống + Giải tốn trao đổi khóa bí mật Nội dung luận văn gồm: phần mở đầu, ba chương chính, kết luận tài liệu tham khảo, cụ thể: Phần mở đầu: Nêu lý chọn đề tài bố cục luận văn Chương 1: TÌM HIỂU TỔNG QUAN CÁC HỆ MẬT MÃ Chươngnàygiớithiệukếtquảtìmhiểuvềlýthuyếtmậtmãhệtruyềnthống,hệ mật mã đại, tìm hiểu hai hệ mật mã truyền thống thay nhiều vần chữ vàmậtmãchuyểnvị.Trêncơsởđó,xâydựngmộthệmậtmãbằngcáchkếthợpgiữa hai hệ mật mã thành hệ mật mã xâydựng Chương 2: THUẬT TOÁN KẾT HỢP GIỮA MÃ VIGENERE VÀ CHUYỂN VỊ Nộidungtrongphầnnàylàtìmhiểutổngquanvềbàitốntraođổikhóa,những ưu nhược điểm phương pháp ứng dụng Trên sở em xây dựng phương pháp trao đổi khóa mật mã khơng cần sử dụng mật mã khóa cơngkhai Chương 3: THỬ NGHIỆM CHƯƠNG TRÌNH Chương em chạy thử nghiệm chương trình Phần kết luận: Nhận xét kết luận hướng phát triển 53 Bước Chuyển vị dãy Y(1) thành dãy Y bới khóa chuyển vị : Bảng 2.6 Bảng chuyển vị Stt 10 13 11 12 15 14 Bước Nhặt số bảng theo thứ tự cột từ xuống từ nhỏ đến lớn, ta nhận dãy Y = (10, 8, 2, 6, 12, 1, 0, 7, 3, 14, 13, 15, 5, 11, 4, 9) Bước Ta có Y ↔ (1010 1000 0010 0110 1100 0001 0000 0111 0011 1110 1101 1111 0101 1011 0100 1001) = k Đây khóa mã cho DES mà ta cần Để mở rộng cho trường hợp khóa k có độ dài tùy ý, không sử dụng mã ASCII8 bít mà sử dụng mã - bít tác giả xây dựng Việc xây dựng mã 5-bít dựa đa thức nguyên thủy p(x) = x5+x+1 trường GF(2) Ta có bảng mã 5-bít sau đây: 54 Bảng 2.7 Bảng mã 5-bít Số T.T 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 01111 10000 10001 10010 11010 11011 11100 11101 11110 11111 00000 Chế độ I A B C D E F G H I J K L M N O P Q R S T U V W X Y Z I II Quay trở lại Hiệu đính Dấu dán cách Chấm hêt Chế độ II y/c k/g ′ ? ~ : ! + ; ông bà anh Chị em Hà Nội Việt Nam Sứ quán Lãnh sứ qn Tùy viên 55 2.3.3 Thuật tốn khóa K có độ dàitùy Các lý luận trình bày thuật tốn thuật tốn hồn tồn mở rộng cho việc trao đổi khóa bí mật có độ dài tùy ý Thật vậy, để thuận lợi mà khơngmấttínhtổngqt,tagiảthiếtrằngkhóaklàmộtdãycáckýtựLatinhđộdài ℓ, tức k = k1,k2, ,kℓ , vớikiϵ{ a,b,c, ,z }, i = 1,2, ,ℓ Để chuyển khóa k kênh cơng cộng, trước hết ta lấy đoạn rõ tùy ý thuộc ngôn ngữ La tinh: X = x1,x2, ,xn , xiϵ{ a,b,c, ,z }, i = 1,2, ,n , đó, n = ℓ +√ ℓ ℓ ≤ 26 n =ℓ ℓ 26 Trên sở đó, ta có thuật toán mở rộng sauđây: Bước 1, Bước 2, Bước Thực bước 1, Bước 2, Bước cho toàn đoạn rõ X Kết quả, ta nhận dãy số Y =(y1, y2, , yn) ; Bước Chuyển dãy chữ số dãy Y sang số 26: Y ↔ Z = (z1, z2, , zm) , ziϵ{ a,b,c, ,z }, i = 1,2, ,m (m ≥ ℓ) Bước Nhặt ℓ ký tự để tạo khóa k, Bước Với i = ℓ+1, ℓ+2, ,m- ℓ , quay bước đến bước , sau đến bước ; Bước Kết bước sử dụng làm khóa chuyển vị ; Bước Thực chuyển vị dãy (z1, z2, , zℓ) để thu dãy k = (k1, k2, ,kℓ) Dãy k khóa mã mà cần thuật tốn kết thúc Ví dụ Giả sử, khóa k gồm 32 chữ La tinh Ta lấy đoạn rõ, chẳng hạn X = Coongj Hoaf xax hooij chur nghiax Viee Saucácbước1,2,3,tacóY=(3,21,22,19,8,17,10,23,0,7,29,1,30,11,24, 25,14,18,4,12,27,26,20,9,13,15,2,31,28,16,5,6).Bâygiờtađổidãynàysang số 26 nhận : Z = (D, V, W, T, I, R, K, X, A, H, BD, B, BE, L, Y, Z, 0,S, E, M, BB, BA, U, J, N, P, C, BF, BC, Q, F, G) Viết tách thành chữ riêng lẽ, ta có : Z = (D, V, W, T, I, R, K, X, A, H, B, D, B, B, E, L, Y, Z, O, S, E, M, B, B, B, A, U, J, N, P, C, B, F, B, C, Q, F, G) Tiếp theo, 32 ký tự đầu dùng để tạo khóak,cịn6kýtựcuốicùngsẽđượcdùnglàmkhóachuyểnvị.Đólà(F,B,C,Q,F,G) ↔ (3,1,2,6,4,5) Nhờ khóa này, chuyển vị dãy 32 ký tự đầu véc tơ Z 56 Thành khóa mã k khóa mà cần: Đó k = (V,X,B,S,A,B,W,A,E,E,U,D,K,B,O,B,C,I,B,Y,B,N,R,D,Z,B,P,T,H,L,M,J) 2.4 Đánh giá kếtquả Với việc kết hợp ta tạo an tồn qua hai lớp khóa, việc tìm kết hợp hai phương pháp gây nhiều khó khăn nhượcđiểm củamãchuyểnvịđãđượckhắcphụcbởithuậttốnmãhóaVGRvàngượclạinhững nhược điểm mật mã VGR khắc phục mật mã chuyển vị Do cáckhóađượcgiữbímậtthìhệmậtmãnàycóthểđượcứngdụngtrongthựctế,đảm bảo thơng tin bí mậttốt 57 Chương 3: CÀI ĐẶT VÀ THỬ NGHIỆM 3.1 Yêu cầu hệthống Chương trình thử nghiệm “Phương pháp trao đổi khóa mã đối xứng khơng sử dụng mật mã khóa bất đối xứng” viết ngơn ngữ C# Visual Studio 2013 sử dụng phiên Net Framewok 4.0 Yêu cầu tối thiểu hệ thống sử dụng chương trình: - Cài đặt Net Framework phiên 4.0 trởlên - Hệ điều hành tối thiểu Windows XPSP2 Phiên Net Framework 4.0 hỗ trợ hệ điều hành Windows XP SP3 trở lên Để cài đặt Windows XP SP2, cần cài đặt thêm phần mở rộng WindowsImaging Component (WIC) trước cài đặt Net Framework4.0 Mã nguồn biên dịch thành tệp thực thi exe môi trường Windowsnên cần cài đặt thư viện yêu cầu chạy chương trình 3.2 Thử nghiệm chươngtrình 3.2.1 Mơ tả liệu thửnghiệm Dữ liệu đầu vào chương trình sau: Khóa chuyển vị: đoạn văn dùng mã hóa chuyển vị có dạng K = k1k2…kn, kiϵ{ a,b,c, ,z }, i =1,2, ,n Khóa vigenere: đoạn văn dùng mã hóa vigenere có dạng K = k1k2…kn, kiϵ{ a,b,c, ,z }, i =1,2, ,n Tệptinvănbảntextchứabảnrõcầnmãhóa Nộidungbảnrõhỗtrợkí tự latinh có dấu Chưa hỗ trợ mã hóa kí tự đặcbiệt 58 Hình 3.1-Nội ội dung rõ r ợc sử dụng thử nghiệm Đểể giảm nhớ nh tăng tốc độ chương trình, ữ liệu dạng chuỗi lưu trữ ới dạng m mã ASCII mở rộng tương ứng 3.2.2 Quy trình mãhóa Ở chương trình thử nghiệm, tác ggiả sử dụng hai phương ương pháp m mã hóa mã hóa chuyển vị vàà mã hóa vigenere Quy trình mã hóa thực th sau: Hình 3.2-Quy 3.2 trình mã hóa liệu 59 Bước 1: Sử dụng thuật tốn mã hóa chuyển vị để mã hóa rõ khóa chuyển vị, kết bước tạo mã chuyển vị làm đầu vào cho bước sau // Tinh toan kich thuoc cua ma tran int cipherTextLength = cipherText.Length; int keyLength = key.Length; int column = keyLength; int row = cipherTextLength % keyLength == ? cipherTextLength / keyLength : cipherTextLength / keyLength + 1; char[,] matrix = new char[row, column]; for (int i = 0; i < matrix.GetLength(0); i++) { for (int j = 0; j < matrix.GetLength(1); j++) { matrix[i, j] = '*'; } } // Chi so cot duoc phep dien day gia tri int limitIndex = cipherTextLength % keyLength; if (limitIndex == 0) { limitIndex = keyLength - 1; } else { limitIndex ; } // Thuc hien chuyen vi int step = 0; for (int i = 0; i < header.Count; i++) { // Tim cot nho nhat va dien tu tren xuong int index = header.IndexOf(i + 1); // Truong hop dien kin cot if (index