Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 84 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
84
Dung lượng
1,28 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG ĐỖ VĂN DŨNG NGHIÊN CỨU ĐỀ XUẤT THUẬT TỐN Mà HĨA VĂN BẢN CĨ ĐỘ BẢO MẬT CAO TRÊN CƠ SỞ MẬT Mà TRUYỀN THỐNG LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH HỆ THỐNG THÔNG TIN Mà SỐ: 60 48 01 04 NGƯỜI HƯỚNG DẪN KHOA HỌC: TS HỒ VĂN CANH .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án LỜI CAM ĐOAN Tôi cam đoan luận văn thân tự nghiên cứu thực theo hướng dẫn khoa học TS Hồ Văn Canh Tơi hồn tồn chịu trách nhiệm tính pháp lý q trình nghiên cứu khoa học luận văn Hải Phòng, ngày tháng 10 năm 2017 Người Cam đoan Đỗ Văn Dũng Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án LỜI CẢM ƠN Trước tiên bày tỏ lời cảm ơn chân thành đến Thầy, cô giáo giảng dạy, hướng dẫn giúp đỡ tơi thời gian học tập nghiên cứu hồn thành luận văn Xin bày tỏ lòng biết ơn sâu sắc tới Thầy giáo TS Hồ Văn Canh tận tình hướng dẫn, giúp đỡ đóng góp cho tơi nhiều ý kiến q báu để hồn thành luận văn Xin chân thành cảm ơn Thầy, Cơ giáo Trường Đại Học Dân Lập Hải Phịng , đặt biệt thầy cô khoa CNTT giảng dạy, giúp đỡ tạo điều kiện thuận lợi cho thời gian học tập Trường Cuối cùng, xin chân thành cảm ơn gia đình bạn bè động viên, quan tâm, giúp đỡ tơi hồn thành khóa học luận văn .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án MỤC LỤC MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ CÁC HỆ MẬT Mà 1.1 Tổng quan lý thuyết mật mã 1.1.1 Một số khái niệm 1.1.2 Cơ sở toán học lý thuyết số 10 1.2 Mật mã truyền thống 18 1.2.1 Mã chuyển dịch (shift cipher) 18 1.2.2 Mã thay (substitution cipher) 20 1.2.3 Mã apphin 21 1.2.4 Mã Vigenere 22 1.2.5 Mã Hill 23 1.2.6 Mã hoán vị ( chuyển vị - Transposition ) 24 1.3 Thám mã mã Vigenere 26 1.4 Mật mã khóa cơng khai 31 1.4.1 Hệ mật mã công khai RSA 31 1.4.2 Hệ mật mã khố cơng khai Rabin 32 1.4.3 Hệ mật mã khố cơng khai ElGamal 34 CHƯƠNG 2: MỘT SỐ PHƯƠNG PHÁP TẤN CÔNG HỆ Mà TRUYỀN THỐNG 38 2.1 Các bước để tiến hành thám mã 38 2.2 Mã thay đơn phương pháp thám mã 44 2.2.1 Mã thay đơn 44 2.2.2 Phương pháp thám mã 45 2.3 Luật mã CAESAR phương pháp thám 52 Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 2.3.1 Khái quát 52 2.3.2 Phương pháp thám mã 54 CHƯƠNG 3: ĐỀ XUẤT THUẬT TOÁN CẢI TIẾN NHẰM NÂNG CAO ĐỘ AN TOÀN CHO HỆ MẬT Mà TRUYỀN THỐNG 59 3.1 Mục đích ý nghĩa 59 3.2 Đề xuất thuật toán 59 3.3 Đánh giá độ an toàn hệ mật mã đề xuất 63 3.4 Cài đặt kiểm thử 63 3.4.1 Giới thiệu thuật toán 63 3.4.2 Giới thiệu thuật toán 65 KẾT LUẬN 82 TÀI LIỆU THAM KHẢO 82 Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án MỞ ĐẦU Ngày hoạt động người thông tin đóng vai trị quan trọng khơng thể thiếu Xã hội phát triển nhu cầu trao đổi thông tin thành phần xã hội ngày lớn Mạng máy tính đời mang lại cho người nhiều lợi ích việc trao đổi xử lý thơng tin cách nhanh chóng xác Chính từ thuận lợi đặt cho câu hỏi, liệu thông tin từ nơi gửi đến nơi nhận có đảm bảo tuyệt đối an tồn, đảm bảo thơng tin ta không bị truy cập bất hợp pháp Thông tin lưu giữ, truyền dẫn, sử dụng mạng lưới thơng tin cơng cộng bị nghe trộm, chiếm đoạt, xuyên tạc phá huỷ dẫn đến tổn thất lường Đặc biệt số liệu hệ thống ngân hàng, hệ thống thương mại, quan quản lý phủ thuộc lĩnh vực quân lưu giữ truyền dẫn mạng Các kỹ thuật đảm bảo an tồn thơng tin cho thơng tin liên lạc số chia thành loại Đó mật mã (Cryptography), giấu tin mật (Steganography) thủy phân số (Watermarking) Mỗi loại có ứng dụng mục tiêu khác đề đảm bảo an toàn cho việc truyền tin mật kênh khơng an tồn Các kỹ thuật Cryptography Steganography nói chung dùng để truyền thông tin nhạy cảm hai hay nhiều thực thể nhóm với Tuy nhiên chúng có khác Cryptography sử dụng phép biến đổi tốn học để mã hóa thơng điệp, biến thơng điệp đọc có nghĩa thành dãy giả ngẫu nhiên, mà người ta gọi mã, để truyền mạng công cộng đến người nhận có chủ đích Đó hai người thí dụ la người A B liên lạc với người C khơng đọc nội dung thông tin người C rõ ràng biết hai người A B có ý đồ ‘đen tối’ .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Ngược lại, với Steganography người C biết hai người A B có liên lạc truyền thơng tin mật cho Để đảm bảo điều này, hai người A B sử dụng vật trung gian số đa phương tiện số (Multimedia) cụ thể như: audio, video, images… Con thủy vân số (Watermarking) nguyên lý tương tự Steganography có khác mục đích ứng dụng Mục tiêu Watermarking thông tin nhúng ảnh phải đảm bảo cho Watermarking bị dịch chuyển mà khơng pháp hủy ảnh mang tin Watermarking thường ứng dụng lĩnh vực bảo vệ quyền Để đảm bảo mức độ an toàn cao, trước giấu tin vào Multimedia, người ta mã hóa liệu cần giấu thuật tốn mã hóa truyền thống Do tầm quan trọng nên em chọn đề tài "Nghiên cứu đề xuất thuật tốn mã hóa văn có độ bảo mật cao sở mật mã truyền thống" Nội dung luận văn gồm ba chương phần kết luận Chương 1: Tổng quan hệ mật mã Chương giới thiệu số thông tin tổng quan hệ mật mã, trình bày lý thuyết mật mã, mật mã truyền thống, mật mã khóa cơng khai Chương 2: Một số phương pháp công hệ mật mã truyền thống Chương giới thiệu số phương pháp công hệ mật mã truyền thống Trên sở đó, học viên đưa số nhược điểm hệ mật mã truyền thống Chương 3: Đề xuất thuật toán nhằm nâng cao độ an toàn cho hệ mật mã truyền thống .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Chương dựa sở nghiên cứu chương để đưa thuật toán nâng cao độ an tồn So sánh thuật tốn cũ để thấy độ an toàn bảo mật văn mã hóa? Đề xuất thuật toán, xây dựng thuật toán, cài đặt thuật toán thử nghiệm Đánh giá kết quả, hướng nghiên cứu tiếp kết luận .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án CHƯƠNG 1: TỔNG QUAN VỀ CÁC HỆ MẬT Mà 1.1 Tổng quan lý thuyết mật mã 1.1.1 Một số khái niệm a, Các mơ hình mã hóa có chung số thuật ngữ sau: Bản rõ: Là nội dung thông điệp cần gửi cần bảo vệ an tồn Nó xâu bít, file văn bản, file có cấu trúc Mã hố: Là q trình biến đổi rõ thành dãy ký tự khơng đọc có nghĩa trước gửi đến người nhận đích thực Bản mã: Là kết thu mã hóa rõ theo thuật tốn mã hóa Giải mã: Là trình xử lý ngược, tiến hành giải mã mã để thu lại rõ Ví dụ: Mã hóa văn có nội dung “ABC” với luật mã tịnh tiến vòng đơn vị mã ASCII kí tự Vậy ta có: Bản rõ: “ABC” Mã hóa: Thực mã hóa theo luật mã Biến đổi kí tự thành số theo mã ASCII kí tự A ↔ 65, B ↔ 66, C ↔ 67 Thu mã sau tịnh tiến là: 66 67 68 Biến đổi mã thành kí tự Bản mã: “BCD” Giải mã: Thu rõ “ABC” b, Hệ mật mã Hệ mật mã gồm thành phần (P, C, K, E, D),trong đó, P (Plaintext): tập hợp hữu hạn rõ C (Ciphertext): tập hữu hạn mã K (Key): tập hữu hạn khóa .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án E (Encrytion): tập hàm lập mã D (Decrytion): tập hàm giải mã Chúng ta biết thông báo thường xem rõ Người gửi có nhiệm vụ mã hóa rõ thuật tốn mã hóa kết gọi mã Và mã gửi đường truyền khơng an tồn tới người nhận Người nhận giải mã mã để tìm hiểu nội dung rõ Với k K, có hàm lập mã ek E, ek : PC , hàm giải mã dk D, dk : CP cho: dx (ek(x)) = x, x P c, Những tính hệ mật mã Cung cấp mức cao tính bảo mật, tồn vẹn, chống chối bỏ xác thực Tính bảo mật: Bảo đảm bí mật cho nội dung thơng báo liệu nhờ kỹ thuật mã hóa Tính tồn vẹn: Bảo đảm với bên tin không bị thay đổi đường truyền tin Chống chối bỏ: Có thể xác nhận tài liệu đến từ đó, họ cố gắng từ chối Tính xác thực: Cung cấp hai dịch vụ: Nhận dạng nguồn gốc thơng báo, đảm bảo thực Kiểm tra định danh người đăng nhập hệ thống, tiếp tục kiểm tra đặc điểm họ trường hợp cố gắng kết nối giả danh người sử dụng hợp pháp .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án { sFileName = sPath + "\\" + KEY_FILE; fs = new FileStream(sFileName, FileMode.OpenOrCreate); BinaryFormatter bf = new BinaryFormatter(); objKey = (Key)bf.Deserialize(fs); fs.Close(); } catch { fs.Close(); return false; } return true; } //Tạo key random public static List GenneraKey(int l) { //MessageBox.Show("call1"); List k = new List(l); Random rd = new Random(); for (int i = 1; i = 0) { a = rd.Next(l); } Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 69 .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án k.Add(a); } return k; } //Chuyển key thành chuỗi public static string StringKey(List k) { string strkey = ""; foreach (int i in k) { strkey = strkey + i.ToString() + "; "; } return strkey; } public static string encryption(string P, List key, int n) { string str = ""; int l = key.Count; char[] PChar = new char[P.Length]; PChar = P.ToCharArray(); char[,] strArr = new char[n, l];//khai báo bảng //Lập bảng int count = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < l; j++) { Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 70 .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án if (count < P.Length) { //MessageBox.Show("i="+i.ToString() + ";J="+j.ToString()+ PChar[count].ToString()); strArr[i, j] = PChar[count]; } count += 1; } } //Lấy chuỗi theo khóa k for (int i = 0; i < l; i++) { int j = key.IndexOf(i); //MessageBox.Show(j.ToString()); for (int x = 0; x < n; x++) { //MessageBox.Show("x=" + x.ToString() + ";J=" + j.ToString() + strArr[x, j].ToString()); str += strArr[x, j]; } } return str; } public static string Dencryption(string P, List key, int n) { string str = ""; int l = key.Count; Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 71 .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án char[] PChar = new char[P.Length]; PChar = P.ToCharArray(); char[,] strArr = new char[n, l];//khai báo bảng //Lập bảng theo cột khóa k int count = 0; for (int i = 0; i < l; i++) { int j = key.IndexOf(i); //MessageBox.Show(j.ToString()); for (int x = 0; x < n; x++) { if (count < P.Length) { // MessageBox.Show("i="+i.ToString() + ";J="+j.ToString()+ PChar[count].ToString()); strArr[x, j] = PChar[count]; } count += 1; } } //Lấy chuỗi theo hàng MessageBox.Show(str); for (int i = 0; i < n; i++) { for (int j = 0; j < l; j++) { str += strArr[i, j]; Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 72 .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án } } return str; } } - Giao diện phần mã hóa: gồm có form đối tượng Button, Panel, Textbox, OpentFileDailog, SaveFileDailog, RichTextBox, Lable Các phương thức Form: Sự kiện nhấn vào nút để mở file cần mã hóa: private void btnOpent_Click(object sender, EventArgs e) { if (opfile.ShowDialog() == DialogResult.OK) { try { FileStream fs = new FileStream(opfile.FileName, FileMode.Open); StreamReader str = new StreamReader(fs); Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 73 .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án rtfFile.Text = str.ReadToEnd(); l = rtfFile.Text.Length; rtfFile1.Text = ""; } catch(IOException io) { MessageBox.Show(io.Message); } } } Sự kiện tạo key 1: private void btnK1_Click(object sender, EventArgs e) { try { //MessageBox.Show("Click me"); l1 = Convert.ToInt32(txtL1.Text.Trim()); k1 = new List(l1); k1= Utlities.GenneraKey(l1); lblK1.Text = "Key1 = " + Utlities.StringKey(k1); if (rtfFile.Text.Length > 0) { if (rtfFile.Text.Length % l1 == 0) { n1 = rtfFile.Text.Length / l1; Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 74 .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án } else { n1 = rtfFile.Text.Length / l1 + 1; } //MessageBox.Show(n1.ToString()); lblN1.Text = "n1 = " + n1.ToString(); } } catch(Exception ex) { MessageBox.Show(ex.Message); } } Sự kiện tạo key2: private void btnK2_Click(object sender, EventArgs e) { try { l2 = Convert.ToInt32(txtL2.Text.Trim()); k2 = new List(l2); k2 = Utlities.GenneraKey(l2); lblK2.Text = "Key2 = " + Utlities.StringKey(k2); if (rtfFile.Text.Length > 0) { if (rtfFile.Text.Length % l2 == 0) Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 75 .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án { n2 = rtfFile.Text.Length / l2; } else { n2 = rtfFile.Text.Length / l2 + 1; } lblN2.Text = "n2 = " + n2.ToString(); // MessageBox.Show(n2.ToString()); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } Sự kiện mã hóa lần 1: private void btnEncryption1_Click(object sender, EventArgs e) { rtfFile1.Text = Utlities.encryption(rtfFile.Text, k1, n1); } Sự kiện mã hóa lần 2: private void btnEncryption2_Click(object sender, EventArgs e) { rtfFile.Text = rtfFile1.Text; rtfFile1.Text = Utlities.encryption(rtfFile.Text, k2, n2); Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 76 .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án } Sự kiện ghi file mã hóa với key: private void btnSave_Click(object sender, EventArgs e) { if (savefile.ShowDialog() == DialogResult.OK) { Key objKey = new Key(l1, l2); objKey.K1 = k1; objKey.K2 = k2; objKey.N1 = n1; objKey.N2 = n2; try { FileStream fs = new FileStream(savefile.FileName + ".txt", FileMode.OpenOrCreate); StreamWriter sw = new StreamWriter(fs, Encoding.Unicode); foreach (string line in rtfFile1.Lines) sw.WriteLine(line); sw.Close(); string local = savefile.FileName; local = local.Remove(local.LastIndexOf("\\")); Utlities.SaveKey(objKey, local); //MessageBox.Show(savefile.FileName); } catch (IOException io) { MessageBox.Show(io.Message); Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 77 .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án } } } - Giao diện phần giải mã: gồm có form đối tượng Button, Panel, Textbox, OpentFileDailog, SaveFileDailog,RichTextBox, Lable Các phương thức Form: Đọc file cần giải mã: private void btnOpent_Click(object sender, EventArgs e) { if (opfile.ShowDialog() == DialogResult.OK) { try { FileStream fs = new FileStream(opfile.FileName, FileMode.Open); StreamReader str = new StreamReader(fs); Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 78 .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án rtfFile.Text = str.ReadToEnd(); l = rtfFile.Text.Length; } catch(IOException io) { MessageBox.Show(io.Message); } } } Đọc file chứa key: private void btnLoadKey_Click(object sender, EventArgs e) { if (opfile.ShowDialog() == DialogResult.OK) { try { if (Utlities.loadKey(opfile.FileName)) objKey = Utlities.objKey; txtL1.Text = objKey.L1.ToString(); lblK1.Text = "k1: " + Utlities.StringKey(objKey.K1); lblK2.Text = "k2: " + Utlities.StringKey(objKey.K2); lblN1.Text = objKey.N1.ToString(); lblN2.Text = objKey.N2.ToString(); } catch (IOException io) { MessageBox.Show(io.Message); Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 79 .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án } } } Giải mã lần 1: private void btnDecryption1_Click(object sender, EventArgs e) { rtfFile1.Text = Utlities.Dencryption(rtfFile.Text, objKey.K2, objKey.N2); } Giải mã lần 2: private void btnDecryption2_Click(object sender, EventArgs e) { rtfFile.Text = rtfFile1.Text; rtfFile1.Text = Utlities.Dencryption(rtfFile.Text, objKey.K1, objKey.N1); } Ghi File giải mã: private void btnSave_Click(object sender, EventArgs e) { if (savefile.ShowDialog() == DialogResult.OK) { try { FileStream fs = new FileStream(savefile.FileName + ".txt", FileMode.OpenOrCreate); StreamWriter sw = new StreamWriter(fs, Encoding.Unicode); Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 80 .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án foreach (string line in rtfFile1.Lines) sw.WriteLine(line); sw.Close(); //MessageBox.Show(savefile.FileName); } catch (IOException io) { MessageBox.Show(io.Message); } } } Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 81 .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án KẾT LUẬN Phần làm làm được: Sau trình nghiên cứu, thực luận văn, em tìm hiểu nắm số vấn đề như: - Tìm hiểu số loại mã hóa cổ điển số loại mã hóa cao cấp sử dụng - Tìm hiểu NET Framework NET Framework bảo mật thông tin - Xây dựng chương trình demo mã hóa file với thuật tốn mã hóa giải mã cải tiến mã cổ điển Phần chưa làm được: Bên cạnh phần thực được, luận văn tồn số hạn chế như: - Chưa đánh giá thời gian mã hóa giải mã - Chương trình ứng dụng cịn đơn giản, giao diện chưa thân thiện - Chưa giải vấn đề trao đổi khóa mã k1 khóa k2 - Chưa so sánh, đánh giá mức độ an tồn thuật tốn tốt so với thuật toán cổ điển khác Hướng phát triển: Tôi tập trung giải vấn đề trao đổi khóa mã hồn thiện vấn đề tồn như: độ dài khóa mã k1 k2 đủ mức độ an toàn nhằm đưa kết nghiên cứu Luận văn vào ứng dụng thử thực tế Vì thời gian hạn chế mức độ nghiên cứu chưa sâu rộng Em mong luận văn tài liệu tham khảo cho bạn sinh viên khóa sau khắc phục số khuyết điểm để chương trình hoàn thiện như: - Xây dựng ứng dụng có giao diện thân thiện dễ sử dụng - Bắt lỗi chi tiết lỗi nêu lỗi đâu - Xây dựng hệ thống trợ giúp TÀI LIỆU THAM KHẢO Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 82 .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án