Đề xuất sơ đồ mã hóa và giải mã cho bảo mật dữ liệu nhờ mã luân phiên

78 268 0
Đề xuất sơ đồ mã hóa và giải mã cho bảo mật dữ liệu nhờ mã luân phiên

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

LỜI CAM ĐOAN Tôi xin cam đoan toàn nội dung luận văn số liệu công trình nghiên cứu hướng dẫn PGS.TS Phan Trung Huy giảng viên Viện Toán ứng dụng Tin học, Trường Đại học Bách khoa Hà Nội NGƯỜI HƯỚNG DẪN TÁC GIẢ PGS.TS Phan Trung Huy Nguyễn Văn Tiến MỤC LỤC Trang DANH MỤC CÁC HÌNH ẢNH PHẦN MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ CÁC HỆ 1.1 lược lịch sử mật 1.2 Các hệ thống mật 13 1.2.1 đồ hệ thống mật 13 1.2.2 hóa theo khối theo dòng 15 1.3 Các toán an toàn thông tin 17 1.4 Thám tính an toàn hệ mật 18 1.4.1 Vấn đề thám 18 1.4.2 Tính an toàn hệ mật 19 1.5 lược hệ Affine 21 1.5.1 Nghiên cứu Affine vành Z26 21 1.5.2 Thám với hệ Affine 26 CHƯƠNG 2: HỆ LUÂN PHIÊN 28 2.1 Tích không nhập nhằng 29 2.2 luân phiên đặc trưng luân phiên 33 2.3 Thuật toán kiểm tra luân phiên chẵn, luân phiên 37 CHƯƠNG 3: KỸ THUẬT TẤN CÔNG, PHƯƠNG PHÁP PHÒNG CHỐNG CHƯƠNG TRÌNH HÓA, GIẢI 39 3.1 Kỹ thuật công 39 3.1.1 Tổng quan kỹ thuật công 39 3.1.2 Các giai đoạn công website gồm: 40 3.2 Phương pháp phòng chống 42 3.2.1 Đối với hệ thống 42 3.2.2 Đối với người tham gia 47 3.3 Chương trình hóa giải với hệ kết hợp ALT - Affine 52 3.3.1 đồ hóa giải với hệ Affine 52 3.3.2 đồ hóa giải với hệ kết hợp ALT - Affine 53 3.3.3 Chương trình ứng dụng 55 3.3.4 Các bước chạy chương trình hóa giải ALT - Affine 56 KẾT LUẬN 63 TÀI LIỆU THAM KHẢO 65 PHỤ LỤC 68 DANH MỤC CÁC HÌNH ẢNH Trang Hình 2.1 Các bao trùm hai phân tích từ w 31 Hình 3.1 đồ hóa với hệ Affine 52 Hình 3.2 đồ giải với hệ Affine 52 Hình 3.3 đồ hóa với hệ kết hợp ALT - Affine 53 Hình 3.4 đồ giải với hệ kết hợp ALT - Affine 54 Hình 3.5 Giao diện chương trình 55 Hình 3.6 Thông báo việc tạo ghi thành công 56 Hình 3.7 Hộp thoại Open dùng để chọn tệp khóa 57 Hình 3.8 Hộp thoại Open dùng để chọn tệp tin cần hóa 57 Hình 3.9 Giao diện chương trình 58 Hình 3.10 Thông báo thực việc hóa thành công 58 Hình 3.11 Hộp thoại Open dùng để chọn tệp khóa 59 Hình 3.12 Hộp thoại Open dùng để chọn tệp tin cần giải 60 Hình 3.13 Giao diện chương trình 60 Hình 3.14 Hộp thoại Save As dùng để lưu tệp tin sau giải 61 Hình 3.15 Thông báo thực việc giải thành công 61 PHẦN MỞ ĐẦU Lý chọn đề tài Sự phát triển mạnh mẽ công nghệ thông tin, việc ứng dụng mạng máy tính để trao đổi thông tin lớn Thông tin trao đổi chia sẻ cách dễ dàng Các thông tin kinh tế, trị, khoa học xã hội trao đổi rộng rãi Tuy nhiên vấn đề an toàn thông tin đơn vị, cá nhân quan tâm, thông tin quan trọng bị đánh cắp để lại hậu khó lường trước Để vừa đảm bảo tính bảo mật thông tin lại không làm giảm phát triển việc trao đổi thông tin giải pháp tốt hóa thông tin Ta hiểu lược hóa thông tin che thông tin mình, làm cho kẻ công chặn thông tin đường truyền đọc thông tin phải có giao thức người gửi người nhận để trao đổi thông tin, chế hóa giải thông tin Ngày việc hóa trở nên phổ cập ngày có nhiều nghiên cứu xây dựng công cụ, thuật toán hóa để áp dụng cho thực tế Qua đó, chế hóa chọn làm luận văn “Đề xuất đồ hóa giải cho bảo mật liệu nhờ luân phiên” Mục đích nghiên cứu Luận văn tập trung nghiên cứu đồ hóa giải cho bảo mật liệu nhờ luân phiên (Alternative code - ALT), kết hợp hệ ALT hệ Affine để tạo ứng dụng bảo mật liệu tổng hợp Đối tượng nghiên cứu Tìm hiểu hệ ALT, hệ Affine, cài đặt chương trình hóa giải ngôn ngữ lập trình C# Giả thuyết khoa học Nếu ta sử dụng hệ ALT kết hợp với hệ cổ điển (ví dụ hệ Affine) để hóa hai lớp liệu hóa hai lần, làm cho phần mềm thám khó thám liệu Nhiệm vụ nghiên cứu - Nghiên cứu hệ Affine: Nghiên cứu Affine vành Zm, thám với hệ Affine - Nghiên cứu hệ ALT: Tích không nhập nhằng, luân phiên đặc trưng luân phiên, thuật toán kiểm tra luân phiên chẵn, luân phiên - Nghiên cứu đồ hóa kết hợp ALT hệ Affine - Đưa chương trình hóa giải với hệ kết hợp ALT – Affine Phạm vi nghiên cứu Luận văn tập trung nghiên cứu kiến thức có liên quan, sở lý thuyết: hệ thống mật mã, toán an toàn thông tin, thám tính an toàn hệ mật mã, hệ Affine, hệ ALT, kỹ thuật công phương pháp phòng chống công website Phương pháp nghiên cứu Nghiên cứu lý luận: Nghiên cứu hệ Affine, nghiên cứu Affine vành Zm, thám với hệ Affine; nghiên cứu hệ ALT: Tích không nhập nhằng, luân phiên đặc trưng luân phiên, thuật toán kiểm tra luân phiên chẵn, luân phiên; nghiên cứu đồ hóa kết hợp luân phiên hệ Affine Nghiên cứu thực tiễn: viết chương trình hóa giải với hệ kết hợp ALT – Affine ngôn ngữ lập trình C# Luận văn gồm có phần mở đầu, chương, phần kết luận, tài liệu tham khảo phụ lục Trong đó: Chương Tổng quan hệ mã: trình bày lược lịch sử mật mã, hệ thống mật mã, toán an toàn thông tin, thám tính an toàn hệ mật mã, lược hệ Affine Chương Hệ luân phiên: trình bày tích không nhập nhằng, luân phiên đặc trưng luân phiên, thuật toán kiểm tra luân phiên chẵn, luân phiên Chương Kỹ thuật công, phương pháp phòng chống chương trình hóa, giải mã: trình bày kỹ thuật công phương pháp phòng chống công website; chương trình hóa giải với hệ kết hợp ALT – Affine Phần phụ lục trình bày chương trình hóa giải với hệ kết hợp ALT – Affine viết ngôn ngữ lập trình C# Trong suốt trình học tập hoàn thành luận văn này, nhận hướng dẫn, giúp đỡ quý báu lãnh đạo, thầy cô, anh chị, em bạn đồng nghiệp Với lòng kính trọng biết ơn sâu sắc xin bày tỏ lời cảm ơn chân thành tới: Ban giám hiệu, Viện đào tạo sau đại học, Viện Toán ứng dụng Tin học, thầy, cô giáo trường Đại Học Bách Khoa Hà Nội, Viện Nghiên cứu Đào tạo nguồn nhân lực Quốc tế tạo điều kiện thuận lợi giúp đỡ trình học tập hoàn thành luận văn Tôi xin gửi lời cảm ơn sâu sắc đến PGS.TS Phan Trung Huy giảng viên khoa Toán ứng dụng Tin học, Trường Đại học Bách khoa Hà Nội, người trực tiếp hướng dẫn, định hướng chuyên môn, quan tâm, giúp đỡ tận tình tạo điều kiện thuận lợi trình thực luận văn Tôi xin chân thành cảm ơn tiến sỹ Hồ Ngọc Vinh, trưởng khoa Công nghệ thông tin, Trường Đại học sư phạm kỹ thuật Vinh quan tâm giúp đỡ hoàn thành tốt luận văn Xin gửi lời cảm ơn tới bạn bè, đồng nghiệp, anh chị em lớp Cao học Toán Tin, thành viên gia đình động viên giúp đỡ trình học tập lúc gặp khó khăn CHƯƠNG 1: TỔNG QUAN VỀ CÁC HỆ 1.1 lược lịch sử mật Như giới thiệu lời mở đầu, nhu cầu sử dụng mật xuất từ sớm, người biết trao đổi truyền đưa thông tin cho nhau, đặc biệt thông tin thể hình thức ngôn ngữ, thư từ Lịch sử cho ta biết, hình thức mật khai tìm thấy từ khoảng bốn nghìn năm trước văn minh Ai cập cổ đại Trải qua hàng nghìn năm lịch sử, mật sử dụng rộng rãi khắp giới từ Đông sang Tây để giữ bí mật cho việc giao lưu thông tin nhiều lĩnh vực hoạt động người quốc gia, đặc biệt lĩnh vực quân sự, trị, ngoại giao Mật trước hết loại hoạt động thực tiễn, nội dung để giữ bí mật thông tin (chẳng hạn dạng văn bản) từ người gửi A đến người nhận B, A phải tạo cho văn mật tương ứng, thay gửi văn rõ A gửi cho B mật, B nhận mật có cách từ khôi phục lại văn rõ để hiểu thông tin A muốn gửi cho Vì gửi thường chuyển qua đường công khai nên người "lấy trộm" được, mật nên không đọc hiểu được, A tạo mật B giải mật thành rõ để hiểu hai người có thỏa thuận chìa khóa chung, với chìa khóa chung A tạo mật từ rõ, B từ mật khôi phục lại rõ Sau ta gọi đơn giản chìa khóa chung khóa mật Tất nhiên để thực phép mật mã, ta cần có thuật toán biến rõ, với khóa mật mã, thành mật, thuật toán ngược lại, biến mật, với khóa mật mã, thành rõ Các thuật toán gọi tương ứng thuật toán lập mật thuật toán giải mật Các thuật toán thường không thiết phải giữ bí mật, cần giữ tuyệt mật luôn khóa mật Trong thực tiễn, có hoạt động bảo mật có hoạt động ngược lại khám phá bí mật từ mật "lấy trộm" được, ta thường gọi hoạt động thám, hoạt động quan trọng không hoạt động bảo mật! Vì thuật toán lập mật giải mật không thiết bí mật, nên thám thường tập trung vào việc tìm khóa mật mã, có người gọi công việc phá khóa Suốt nghìn năm lịch sử, thông báo, thư từ truyền đưa trao đổi với thường văn bản, tức có dạng dãy ký tự ngôn ngữ đó; vậy, thuật toán lập mật thường đơn giản thuật toán xáo trộn, thay đổi ký tự xác định phép chuyển dịch, thay hay hoán vị ký tự bảng ký tự ngôn ngữ tương ứng; khóa mật thông tin dùng để thực phép lập mật giải mật cụ thể, ví dụ số vị trí phép chuyển dịch, bảng xác định cặp ký tự tương ứng phép thay hay hoán vị, Mật chưa phải khoa học, chưa có nhiều kiến thức sách để lại, nhiên hoạt động bảo mật thám lịch sử đấu tranh trị, ngoại giao quân hết 10 Trên nhiều phương pháp xây dựng đồ hóa Với đề tài tác giả mong muốn đóng góp phần nhỏ vào việc xây dựng đồ hóa, mong góp ý thầy cô giáo bạn bè, đồng nghiệp để nâng cao chất lượng đề tài Những kết nghiên cứu bước đầu phương pháp để xây dựng đồ hóa, giải Vì vậy, để ngành mật phát huy tính ưu việt cần phải áp dụng hóa nhiều lớp, luận văn cần phát triển mở rộng đồ hóa, ứng dụng công nghệ để xây dựng phần mềm hóa làm chương trình chạy trung gian chương trình ứng dụng, website Có việc hóa thực đáp ứng yêu cầu xã hội 64 TÀI LIỆU THAM KHẢO Tiếng Việt: [1] Phan Đình Diệu, Lý thuyết mật & An toàn thông tin, NXB Đại học Quốc gia Hà Nội – 2002 [2] Phan Trung Huy, Vũ Thành Nam (2004) luân phiên tiền ngữ cảnh Kỷ yếu Hội thảo quốc gia lần thứ VII “Một số vấn đề chọn lọc Công nghệ thông tin Truyền thông”, Đà Nẵng 18 20 tháng 8/2004 pp 188-197 [3] Vũ Thành Nam, Nghiên cứu ứng dụng mật xây dựng giải pháp bảo vệ nội dung website, Đề tài khoa học công nghệ cấp Bộ, 2009 2011 [4] Hồ Ngọc Vinh, với hình thức tích mới, Kỷ yếu Hội thảo quốc gia lần thứ XII “Một số vấn đề chọn lọc công nghệ thông tin truyền thông”, Biên Hòa - 6/8/2009, pp 186-197 [5] Hồ Ngọc Vinh, Mở rộng thuật toán kiểm định luân phiên từ định biên, Tạp chí Tin học điều khiển học, Tập 26, Số 4, 2010, pp 301-311 Tiếng Anh: [6] A.MeneZes, P.V.Oorschot, S.Vanstone, Handbook of Applied Cryptography, CRC Press, 1996 [7] Aldo de Luca (1976) A note on Variable Length Codes Information and Computation, Vol 32, No 3, pp 263-271 [8] A Mateescu, G D Mateescu, G Rozenberg, A Salomaa (1997) Shuffle–Like Operations on –words New Trends in Formal 65 Languages, Lecture Notes in Computer Science, Vol 1218, pp 395411 Springer-Verlag, Berlin, Heidelberg [9] A Mateescu, G Rozenberg, A Salomaa (1998) Shuffle on Trajectories: Syntactic Constraints Theoretical Computer Science, Vol 197, pp.1-56 [10] C E Shannon (1949) Communication Theory of Secrecy Systems Bell Systems Technical Journal, Vol 28, pp 656–715 [11] D L Van, B L Saec, and I Litovsky (1992) On coding morphisms for zigzag codes Theoretical Informatics and Applications, Vol 26, No 6, pp 565-580 [12] D L Van, B L Saec, and I Litovsky (1993) Stability for the Zigzag Submonoids Theoretical Computer Science, Vol 108, No 2, pp 237-249 [13] G Lallement (1979) Simigroups and combinatorial applications John Wiley & Sons Inc [14] Ho Ngoc Vinh, Codes based on unambiguous products Lecture Notes in Computer Science, Vol 6423, pp 252-262 SpringerVerlag Berlin Heidelberg 2010 [15] K Ahmad (2002) Quelques problèmes de mélanges contrôlés Thèse de doctorat, Université de Nice - Sophia Antipolis [16] P T Huy (2001) On Ambiguities and Unambiguities Related with –Languages Invited Report in International "Combinatorics and Applications", Hanoi 3-5/12/2001 66 Conference [17] M P Schützenberger (1966) On a question concerning certain free submonoids Journal of Combinatorial Theory, Vol 1, No 4, pp 437-442 [18] M Madonia, S Salemi, T Sportelli (1991) On z-submonoids and zcode R.A.I.R.O Theoretical Informatics and Applications, Vol 25, No 4, pp 305-322 [19] M Anselmo (1991) Automates et codes zigzag R.A.I.R.O Theoretical Informatics and Applications, Vol 25, No 1, pp 49-66 [20] P T Huy, D L Van (2000) On Non-Ambiguous Büchi Vautomata Proceedings of the Third Asian Mathematical Conference 2000, Diliman, Philippines 23-27 October 2000, pp 224-233, World Scientific 2002 [21] P Weil (1985) Groups, codes and unambiguous automata Theoretical Aspects of Computer Science, 2nd ann Symp., Saarbrcken/Ger 1985, Lect Notes Comput Sci 182, pp 351-362 [22] S Eilenberg (1974) Automata, languages and Machines Vol A, Academic Press, New York and London [23] John R Vacca, Computer and Information Security Handbook, Morgan Kaufmann Publishers is an imprint of Elsevier, 2009 [24] Johntalbot, Dominicwelsh, Complexityand Cryptography, Cambridge University Press, 2006 [25] J Berstel, D Perrin (1985) Theory of Codes Academic Press Inc., NewYork [26] J E Pin, P Weil (1997) Polynomial closure and unambiguous products Theory of Computing Systems 30, pp 383-422 [27] J E Pin (1982) Variété des Languages Infinis et variete de semigroupes Thèse Docteur d’Etat 67 PHỤ LỤC Code chương trình hóa giải với hệ kết hợp ALT - Affine: + Form_main.cs: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using Public; using Business; using DataAccess; namespace Ma_hoa_Affine { public partial class Form_main : Form { public Form_main() { InitializeComponent(); } // Hàm cài đặt chức load Form public void caidat_Form() { rbtMahoa.Checked = true; txtFile.Clear(); txtFile.ReadOnly = true; txtKhoa.Clear(); txtKhoa.ReadOnly = true; btnGiaima.Enabled = false; } // Khởi tạo biến // Affine_public cls=new Affine_public(); private void Form_main_Load(object sender, EventArgs e) 68 { cls.N = 256; caidat_Form(); } private void btnTaokhoa_Click(object sender, EventArgs e) { try { cls.B = Affine_business.soNgaunhien(); { cls.A = Affine_business.soNgaunhien(); } while (!Affine_business.nguyentoCungnhau(cls.A, cls.N)); Affine_business.writeKey(cls); MessageBox.Show("Tạo ghi thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("Xảy lỗi Thử lại sau", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void rbtMahoa_CheckedChanged(object sender, EventArgs e) { if (rbtMahoa.Checked == true) btnMahoa.Enabled = true; else btnMahoa.Enabled = false; txtFile.Clear(); txtKhoa.Clear(); } 69 private void rbtGiaima_CheckedChanged(object sender, EventArgs e) { if (rbtGiaima.Checked == true) btnGiaima.Enabled = true; else btnGiaima.Enabled = false; txtFile.Clear(); txtKhoa.Clear(); } private void btnKhoa_Click(object sender, EventArgs e) { txtKhoa.Text = Affine_business.selectKey(); } private void btnFile_Click(object sender, EventArgs e) { if (rbtMahoa.Checked == true) txtFile.Text = Affine_business.select_File(1); else if (rbtGiaima.Checked == true) txtFile.Text = Affine_business.select_File(2); } private void btnMahoa_Click(object sender, EventArgs e) { try { // Đọc khóa // Affine_business.readKey(txtKhoa.Text, cls); // Khởi tạo biến đọc tệp tin // Stream inputstream = File.OpenRead(txtFile.Text); 70 BufferedStream bufInput = new BufferedStream(inputstream); Stream outputstream = File.OpenWrite(System.IO.Directory.GetCurrentDirectory() + @"/encript.enc"); BufferedStream bufOutput = new BufferedStream(outputstream); long d = bufInput.Length; byte[] buffer = new byte[d]; int bytesRead; while ((bytesRead = bufInput.Read(buffer, 0, buffer.Length)) > 0) { // hóa Affine // for (int i = 0; i < d; i++) { buffer[i] = (byte)(Affine_business.Affine(buffer[i], cls)); } bufOutput.Write(buffer, 0, bytesRead); bufOutput.Flush(); bufOutput.Close(); MessageBox.Show("Thực thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { MessageBox.Show("Xảy lỗi Thử lại sau!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void btnGiaima_Click(object sender, EventArgs e) { try 71 { // Đọc khóa // Affine_business.readKey(txtKhoa.Text, cls); // Tìm nghịch đảo // int a_mu_tru1 = Affine_business.nghichDao(cls); // Khởi tạo biến đọc tệp tin // Stream inputstream = File.OpenRead(txtFile.Text); BufferedStream bufInput = new BufferedStream(inputstream); Stream outputstream = File.OpenWrite(Affine_business.saveFile()); BufferedStream bufOutput = new BufferedStream(outputstream); long d = bufInput.Length; byte[] buffer = new byte[d]; int bytesRead; while ((bytesRead = bufInput.Read(buffer, 0, buffer.Length)) > 0) { // hóa Affine // for (int i = 0; i < d; i++) { buffer[i] = (byte)(Affine_business.deAffine(buffer[i], a_mu_tru1, cls)); } bufOutput.Write(buffer, 0, bytesRead); bufOutput.Flush(); bufOutput.Close(); MessageBox.Show("Thực thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) 72 { MessageBox.Show("Xảy lỗi Thử lại sau!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void btnReset_Click(object sender, EventArgs e) { Form_main_Load(sender, e); } private void btnExit_Click(object sender, EventArgs e) { Application.Exit(); } } } + Affine_dataccess.cs: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Public; using System.IO; a namespace DataAccess { public class Affine_dataccess { // Hàm đọc khóa // public static void readKey_da(string path,Affine_public cls) { StreamReader reader=File.OpenText(path); cls.A = Convert.ToInt32(reader.ReadLine()); cls.B = Convert.ToInt32(reader.ReadLine()); reader.Close(); 73 } // Hàm hóa Affine // public static byte Affine_da(byte a, Affine_public cls) { return (byte)(((cls.A * a) + cls.B) % cls.N); } // Hàm giải Affine -// public static byte deAffine_da(byte a,int a_mu_tru1, Affine_public cls) { return (byte)((a_mu_tru1 * (a - cls.B)) % cls.N); } // Hàm tìm nghịch đảo A (mod N) // public static int nghichDao_da(Affine_public cls) { int y0, y1, y=0, r, q, A, N; y0 = 0; y1 = 1; A=cls.A; N = cls.N; while (A > 0) { r = N % A; if (r == 0) break; q = N / A; y = (y0 - y1 * q); N = A; A = r; y0 = y1; y1 = y; } if (A > 1) { y = 0; return 0; } if (y < 0) y = cls.N + y; return y; } } } 74 + Affine_business.cs: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using Public; using DataAccess; using System.Windows.Forms; namespace Business { public class Affine_business { // Hàm tạo số ngẫu nhiên từ 10-255 // public static int soNgaunhien() { Random rand = new Random(); return rand.Next(10, 255); } // Hàm kiểm tra Nguyên tố public static bool nguyentoCungnhau(int a, int b) { bool kiemtra = true; for (int i = 2; i

Ngày đăng: 15/07/2017, 23:17

Từ khóa liên quan

Mục lục

  • loi cam doan

  • muc luc

  • danh muc cac hinh anh

  • phan mo dau

  • chuong 1

  • chuong 2

  • chuong 3

  • ket luan

  • tai lieu tham khao

  • phu luc

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan