Các thuật toán mã hoá, chữ ký điện tử và ứng dụng

87 443 0
Các thuật toán mã hoá, chữ ký điện tử và ứng dụng

Đ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

MỤC LỤC LỜI NÓI ĐẦU .3 Chương .4 LÝ THUYẾT CHUNG VỀ MÃ HOÁ 1.1.Khái niệm mã hóa 1.2.Lý thuyết mã hoá 1.2.1.Mã hoá dùng nguồn 1.2.2.Mã hoá kênh truyền 1.3.Lý thuyết mật mã 1.3.1.Sự hình thành khoa học mật mã 1.3.2.Sự tiến triển hệ mật mã đại .7 1.4.Các phương thức mã hoá 11 1.5.Các chức băm nhỏ mã hoá 12 1.6.Các phương thức tạo nên khoá mã hoá ngẫu nhiên 13 1.7.Sức mạnh thuật toán mã hoá 14 1.8.Phá mã phá mã hệ thống 15 Chương 19 TỔNG QUAN VỀ CÁC HỆ MÃ CƠ BẢN .19 2.1.Mã hoá công khai 19 2.1.1.Khái niệm mã hoá công khai .19 2.1.2.Ứng dụng mã hoá công khai .20 2.1.3.Độ an toàn 21 2.2.Thuật toán mã hoá RSA 23 2.2.1.Giới thiệu thuật toán mã hoá RSA .23 2.2.2.Hoạt động 24 2.2.3.Ví dụ 26 2.2.4.Quá trình chuyển đổi văn rõ .27 2.2.5.An ninh 28 2.3.Thuật toán mã hoá DES 29 2.3.1.Giới thiệu thuật toán DES .29 2.3.2.Quy trình thuật toán DES 30 2.3.3.An ninh ứng dụng 32 2.4.Sơ đồ chữ kí Elgamal 34 2.4.1.Giới thiệu định nghĩa sơ đồ chữ kí Elgamal 34 2.4.2.Các cách giả mạo chữ kí sơ đồ chữ kí Elgamal: 35 2.4.3.Cách công sơ đồ chữ kí Elgamal 37 2.5.Hàm băm mật mã 38 2.5.1.Tổng quan hàm băm 38 2.5.2.Ứng dụng 39 2.5.3.Các phương thức tạo nên khoá mã hoá ngẫu nhiên 40 Chương 42 CHỮ KÝ ĐIỆN TỬ VÀ CÁC VẤN ĐỀ LIÊN QUAN 42 3.1.Chữ ký điện tử 42 3.1.1.Lịch sử hình thành chữ ký điện tử 42 3.1.2.Mục đích chữ ký điện tử 42 3.1.3.Đặc trưng chữ ký .42 3.1.4.Các chuẩn chữ ký số 42 3.1.5.Định nghĩa chữ ký điện tử 43 3.1.6.Những hàm hỗ trợ cho chữ ký số .45 3.1.7.Sự khác biệt chữ ký điện tử với chữ ký tay 45 3.1.8.Các ưu điểm chữ ký điện tử .46 3.1.9.Các yêu cầu chữ ký 47 3.1.10.Mô tả toán học chữ ký điện tử 48 3.2.Chứng số 49 3.2.1.Vì phải dùng chứng số? 49 3.2.2.Chứng số gì? 50 3.2.3.Nhà cung cấp chứng thực số CA .52 3.2.4.Cơ sở hạ tầng khoá công khai – PKI 52 3.2.5.Nhà quản lý đăng ký – RA 53 3.2.6.Lợi ích chứng số 53 3.3.Một số vấn đề đặt thực tế 56 3.3.1.Chọn mô hình nhà cung cấp chứng thực số (CA) .56 3.3.2.Chữ ký điện tử theo phương án ký lần hay ký hai lần 57 3.3.3.Cấp chữ ký số có giá trị dấu hay không? 59 3.3.4.Vấn đề sở hạ tầng cho giao dịch điện tử nói chung chữ ký số nói riêng……………………………………………………………………………….59 3.3.5.Sự đồng 60 3.3.6.Vấn đề nhận thức người sử dụng 61 Chương 62 CÁC KẾT QUẢ CÀI ĐẶT 62 4.1.Ngôn ngữ sử dụng 62 4.1.1.Nền tảng Net .62 4.1.2.Ngôn ngữ C# 62 4.1.3.Giải thuật MD5 63 4.2.Dịch vụ truyền file 65 4.2.1.Giới thiệu 65 4.2.2.Cơ sở lý thuyết 66 4.2.3.Một số lệnh FTP 67 4.2.4.Một số ưu điểm FTP 68 4.3.Giao diện chương trình 69 4.3.1.Giao diện chương trình 69 4.3.2.Giao diện tạo khoá RSA 70 4.3.3.Giao diện chương trình trước mã hoá tài liệu .70 4.3.4.Giao diện chương trình sau mã hoá tài liệu 71 4.3.5.Giao diện chương trình sau giải mã tài liệu 71 4.3.6.Giao diện chương trình trước truyền file 72 4.3.7.Giao diện chương trình sau truyền file 72 4.4.Kết 73 4.5.Phụ lục chương trình 73 1.Kết đạt 86 2.Hạn chế 86 3.Hướng phát triển đề tài 86 TÀI LIỆU THAM KHẢO 87 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Error! Bookmark not defined LỜI NÓI ĐẦU Trong năm gần đây, phát triển vượt bậc công nghệ thông tin làm tăng số lượng giao dịch thông tin mạng Internet cách đáng kể, đặc biệt thư viện điện tử, tin tức điện tử, … Do mà số lượng văn xuất mạng Internet tăng theo với tốc độ chóng mặt Với lượng thông tin đồ sộ vậy, yêu cầu lớn đặt với để thông tin truyền tải cách an toàn đáng tin cậy Để giải vấn đề này, người ta đưa cách vừa đơn giản, vừa hiệu sử dụng chữ ký số Việc sử dụng chữ ký số ngày có nhiều ứng dụng thực tế, không giới hạn ngành Công nghệ thông tin, ngành Mật mã mà áp dụng số lĩnh vực khác lĩnh vực ngân hàng để xác thực người gửi, người nhận, lĩnh vực Viễn thông để sử dụng thẻ thông minh,… Em tập trung thực đề tài “Các thuật toán mã hoá, chữ ký điện tử ứng dụng” nhằm tìm hiểu thử nghiệm phương pháp mã hoá liệu Trong đồ án em tìm hiểu số thuật toán mã hoá liệu RSA, DES, chữ ký điện tử,… xây dựng chương trình mã hoá sử dụng chữ ký điện tử Nội dung đồ án bao gồm chương: - Chương 1: Lý thuyết chung mã hoá - Chương 2: Tổng quan hệ mã - Chương 3: Chữ ký điện tử vấn đề liên quan - Chương 4: Các kết cài đặt Chương LÝ THUYẾT CHUNG VỀ MÃ HOÁ 1.1 Khái niệm mã hóa Trong thực tế, người muốn gửi thông điệp tới người nhận không muốn cho người khác biết nội dung Tuy nhiên xuất trường hợp người thứ mở thông điệp đọc nội dung Trong thuật ngữ mã hoá, thông điệp gọi plaintext hay cleartext (tạm dịch chữ thường) Mã hoá nội dung thông điệp để che giấu nội dung gọi thuật mã hoá Thông điệp mã hoá gọi văn mã hoá (ciphertext) Quá trình lấy nội dung ciphertext gọi decryption (giải mã) Mã hoá giải mã thường sử dụng key (chìa khoá) phương thức mã hoá mà trình giải mã thực người biết chìa khoá Thuật mã hoá nghệ thuật hay khoa học để giữ cho thông điệp bí mật Phá mã nghệ thuật lấy nội dung văn mã hoá mà không cần đến chìa khoá Người phá mã gọi cryptographers người mã hoá gọi cryptanalysts Thuật mã hoá liền với phương thức bảo mật thông tin, chứng thực, chữ ký điện tử, tiền tệ điện tử ứng dụng khác Cryptology nhánh toán học nghiên cứu phương thức mã hoá 1.2 Lý thuyết mã hoá Lý thuyết mã hóa (tiếng Anh: coding theory) ngành toán học (mathematics) khoa học điện toán (computer science) nhằm giải tình trạng lỗi dễ xảy trình truyền thông số liệu kênh truyền có độ nhiễu cao (noisy channels), dùng phương pháp tinh xảo khiến phần lớn lỗi xảy chỉnh sửa Nó xử lý đặc tính mã (codes), giúp phù hợp với ứng dụng cụ thể Có hai loại mã hiệu: Mã hóa dùng nguồn (Mã hoá Entropy (Entropy encoding)) Mã hóa kênh truyền (Sửa lỗi phía trước (Forward error correction)) Vấn đề thứ nói đến mã hóa dùng nguồn Ý định phương pháp nén liệu từ nguồn nó, trước truyền đi, giúp cho việc truyền thông có hiệu Chúng ta chứng kiến thói quen ngày Internet, cách dùng "zip" nén liệu để giảm lượng liệu phải truyền, giảm nhẹ gánh nặng cho mạng lưới truyền thông, đồng thời thu nhỏ cỡ tập tin Vấn đề thứ hai mã hóa kênh truyền Bằng việc cộng thêm bit vào liệu truyền, gọi bit chẵn lẻ (parity bits), kỹ thuật giúp cho việc truyền thông tín hiệu xác môi trường nhiễu loạn kênh truyền thông 1.2.1 Mã hoá dùng nguồn * Mục đích mã hóa dùng nguồn lấy liệu nguồn thu nhỏ chúng lại * Nguyên lý: Entrôpi nguồn đo đạc tin tức Căn mà nói, mã nguồn dùng để loại bỏ phần thừa, không cần thiết tồn nguồn, để lại phần nguồn với số lượng bit hơn, với nhiều tin tức Mỗi loại mã hóa nguồn sử dụng kỹ thuật khác hòng đạt giới hạn entrôpi nguồn C(x)  H(x), H(x) entrôpi nguồn (tần số bit), C(x) tần số bit sau số liệu nén Cụ thể là, phương pháp mã hóa nguồn tốt giới hạn entrôpi ký hiệu (the entropy limit of the symbol) 1.2.2 Mã hoá kênh truyền Mục đích lý thuyết Mã hóa kênh truyền (channel encoding theory) tìm mã truyền thông nhanh chóng, chứa đựng nhiều mã ký (code word) hợp lệ sửa lỗi (error correction) phát lỗi xảy (error detection) Các mục đích không phụ thuộc vào nhau, loại mã có công dụng tối ưu cho ứng dụng riêng biệt Những đặc tính mà loại mã cần tuỳ thuộc nhiều vào xác suất lỗi xảy trình truyền thông Từ "Lý thuyết mã hóa đại số" ám để chi nhánh lý thuyết mã hóa kênh truyền, đặc tính mã biểu đại số dựa vào mà nghiên cứu sâu Lý thuyết mã hóa đại số chia làm hai loại mã Mã khối tuyến tính (Linear block codes) Mã kết hợp (Convolutional codes) Chúng phân tích ba đặc tính sau mã là: Chiều Tổng dài mã (code word length) số mã ký hợp lệ (total number of valid code words) Khoảng cách Hamming tối thiểu hai mã ký hợp lệ (the minimum Hamming distance between two valid code words) Mã khối tuyến tính mang tính tuyến tính (linearity), chẳng hạn tổng hai mã ký lại mã ký; chúng ứng dụng vào bit nguồn khối Mã kết hợp (Convolutional codes) sử dụng modem dải tần âm (voiceband modems) (V.32, V.17, V.34) điện thoại di động GSM3, thiết bị truyền thông quân đội vũ trang thiết bị truyền thông với vệ tinh 1.3 Lý thuyết mật mã Lý thuyết mật mã (bao gồm thám mã) khoa học nghiên cứu mã hoá giải mã thông tin Đây kỹ thuật đảm bảo an toàn cao cho khối lượng lớn liệu hệ thống máy tính mạng truyền thông cần bảo vệ nghiêm ngặt có tính hiệu chống lại trộm giả mạo thông tin Lý thuyết giúp kỹ sư kỹ thuật viên làm việc nhiều lĩnh vực liên quan tới xử lý thông tin, tìm hiểu, nắm bắt nguyên lý, phương pháp thuật toán lý thuyết mật mã 1.3.1 Sự hình thành khoa học mật mã Mật mã nghệ thuật viết thông báo dạng mã hoá (còn gọi cách viết bí mật), lĩnh vực khiến số người liên tưởng tới giới đen tối bí hiểm hoạt động gián điệp Với số người khác, việc thao tác điều khiển số lại gợi nhớ tới khoa tướng số nhiều lĩnh vực bí hiểm khác Ngay từ thời xa xưa, khả giải mã bí mật thiên nhiên, người tìm thấy niềm vui việc thiết kế hệ mật mã thách đố giải mã thông tin mã hoá người khác Khoa học mật mã năm gần trở nên quan trọng, quan tâm nghiên cứu ứng dụng nhiều góc độ khác kiện thông tin mạng truyền liệu công cộng thực người truy cập Mật mã học đại phát triển nhanh chóng, dựa thành tựu lý thuyết thông tin, lý thuyết độ phức tạp tính toán, đặc biệt lý thuyết số có kết thiết lập từ lâu, có hội ứng dụng thực hành Cách không lâu, số hệ mật mã tưởng an toàn bị phá vỡ phải huỷ bỏ (chẳng hạn mã ma trận tuyến tính sách mã dựa từ điển) Ngày nay, khoa học mật mã làm phong phú thêm với phương pháp an toàn, chắn, nhiều nhà toán học tin học tiếng tham gia nghiên cứu, rời bỏ giới bí hiểm hoạt động tình báo, vượt qua thành luỹ công nghiệp, thương nghiệp, tài chính, chiến lược trị ngoại giao để thâm nhập mạnh mẽ vào lĩnh vực 1.3.2 Sự tiến triển hệ mật mã đại 1.3.2.1 Năm mươi năm phát triển Những người xây dựng kỹ thuật mã hoá dùng cho nhà tin học cho an toàn liệu họ người, sau qua khỏi chiến thứ hai, có nghệ thuật kiến thức đầy đủ khoa học mật mã Ngày nay, chối cãi phần lớn công trình quân thực chiến tranh truyền ngăn chặn thông báo mã hoá giữ kín, chưa công bố Từ tới nay, nhà toán học thuộc nhiều quốc gia khác bỏ nhiều công sức tìm phương pháp công cụ ngày phức tạp tin cậy việc tìm phương pháp mật mã với độ an toàn tuyệt đối mối quan tâm nhiều nhà nghiên cứu giới, làm việc quân đội mà lĩnh vực ngân hàng công nghiệp Từ thuật toán RSA thiết kế, sử dụng số nguyên tố, lý thuyết mật mã hướng tới việc sử dụng toán toán học phức tạp để xây dựng thuật toán cho thời gian cần cho việc giải mã lớn, chấp nhận Trong năm 80 kỷ trước, xuất hệ mật mã chuẩn chưa bị phá vỡ: hệ DES RSA Và năm gần đây, nhờ vào tốc độ tính toán nhanh máy vi tính mà khoa học mật mã trở thành công cụ nhiều người sử dụng 1.3.2.2 Mô tả không hình thức hệ thống mật mã Để gửi thông tin bí mật tới nơi nhận đó, ta chọn thuật toán tin cậy (chắc chắn), hay nhiều khóa an toàn môi trường truyền dẫn (một người, thư, hay mạng truyền thông điện tử công cộng hay riêng tư) Ta tạo vô số thuật toán mã hóa không khoá, với độ phức tạp chưa thấy độ an toàn hoàn toàn, chừng mà thuật toán chưa biết Một người, nhiều có am hiểu mật mã, đề xuất phương pháp viết mật mã loại thường thường bậc trung” Và thực giới có lúc có nhiều người làm mật mã không chuyên (tài tử) bán chuyên nghiệp Sau có dịp làm quen với số kỹ thuật sở kết hợp tổ hợp với để xây dựng thuật toán tốt Trong đó, thám báo khoa học nghiên cứu phương pháp giải mã để phá hệ mật không chứng minh tính an toàn hệ mật, sản phẩm người làm mật mã không chuyên, chừng mà chuyên gia lĩnh vực mật mã chưa tuyên bố tính bị phá hệ Như biết, có hai cách để giữ cho thông báo cần gửi khỏi lọt vào tay kẻ thù: - Ta cất dấu, che dấu thông báo hy vọng kẻ thù không tìm thấy thông báo, che dấu thông báo (steganography) Thí dụ viết thông báo loại mực không nhìn thấy Người nhận đọc thông báo cách cho tác dụng nhiệt hóa chất lên - Ta xáo trộn thông báo hy vọng kẻ thù khả đặt lại dạng ban đầu, mật mã (cryptography) Đương nhiên che dấu thông tin viết mật mã tổ hợp với nhau: thông báo xáo trộn sau che dấu (cất dấu) để có thêm an toàn Mặt khác, cần biết mật mã có mối liên hệ chặt chẽ với phận lý thuyết thông tin, cụ thể lý thuyết mã hoá (coding theory) Lý thuyết mã hoá bao gồm việc dịch thông tin thuộc loại (văn bản, liệu khoa học, hình ảnh, âm thanh, vv ) sang dạng chuẩn cho việc truyền tin bảo vệ thông tin chống lại bóp méo tiếng ồn ngẫu nhiên Tuy nhiên, rõ ràng có khác lớn nhiễu gây tiếng ồn ngẫu nhiên nhiễu gây kẻ thù cố ý, kỹ thuật sử dụng hoàn toàn khác Theo truyền thống, hai bên cần liên lạc với gọi theo thứ tự A (Alice) B (Bob), kẻ trộm tin cố gắng tìm cách đọc thông báo họ E (Eve) A B truy cập tới khoá, E Các hộp đen có đầu vào rõ khoá có đầu mã (trường hợp A), hay có đầu vào mã khoá có đầu rõ (trường hợp B) Ý nghĩa thuật ngữ sau: Bản rõ (Plaintext): Bản rõ không hoàn toàn giống thông báo cần gửi Thông báo phải dịch sang dạng chuẩn để mã hoá chẳng hạn, bỏ qua dấu chấm câu, chuyển thành mã ASCII, dãy số, vv bí mật giai đoạn này, biết rõ tương đương với biết thông báo Bản mã (Ciphertext), thực truyền Nói chung A B phải giả định E đặt tay lên mã, họ phải thiết kế hệ thống cho E khả khôi phục lại rõ Khoá (Key): Việc mã hoá/lập mã sử dụng thông tin thêm đó, gọi khoá, thay đổi theo lần truyền Cả A B phải có thông tin khoá, thay đổi theo lần truyền Cả A B phải có thông tin khoá để tiến hành mã hoá giải mã Có ba loại phương pháp mã hoá chính: Dịch chuyển (Transposition): Thứ tự chữ rõ xếp lại theo cách có hệ thống Trong trường hợp này, khoá phép hoán vị áp dụng cho vị trí Thay (Substitution): Các chữ cá thể thay chữ khác theo cách có hệ thống phức tạp việc dùng phép hoán vị Ta áp dụng hoán vị khác vị trí khác Trong trường hợp khoá dãy hoán vị áp dụng Sách mã (Codebook): Các từ đầy đủ thông báo thay từ khác, với ý nghĩa hoàn toàn khác Khóa sách mã, danh sách từ thay chúng Đương nhiên loại mật mã nêu không hoàn toàn tách biệt số tất dùng với Cần lưu ý thêm từ “mã” lý thuyết truyền tin dùng với nhiều nghĩa khác Thường có nghĩa lược đồ cho việc dịch thông tin từ khuôn dạng sang khuôn dạng khác Chẳng hạn mã Morse (trước thường dùng điện tín (telegraph) liên lạc radio) dịch từ “Code” thành dãy gồm dấu chấm dấu gạch (thường đọc tạch, tè) 10 4.4 Kết - Nắm hầu hết lý thuyết chữ ký điện tử vấn đề an ninh cho chữ ký điện tử - Cài đặt thuật toán RSA với số nguyên tố nhỏ - Tìm hiểu thuật toán MD5 ứng dụng thuật toán mã hóa trông tin thư viện DOT NET - Với số nguyên tố nhỏ, nên chương trình mã hóa giải mã tập tin có dung lượng nhỏ - Dưới số hình ảnh minh họa 4.5 Phụ lục chương trình namespace ChuKyDienTu { partial class frmMain { /// /// Required designer variable /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - not modify /// the contents of this method with the code editor /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmMain)); this.uiTab1 = new Janus.Windows.UI.Tab.UITab(); this.uiTabPage1 = new Janus.Windows.UI.Tab.UITabPage(); this.uiGroupBox1 = new Janus.Windows.EditControls.UIGroupBox(); this.uiGroupBox4 = new Janus.Windows.EditControls.UIGroupBox(); this.label2 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); this.txtPrivateKey = new System.Windows.Forms.TextBox(); this.txtPublicKey = new System.Windows.Forms.TextBox(); 73 this.uiGroupBox3 = new Janus.Windows.EditControls.UIGroupBox(); this.rtbDocument = new System.Windows.Forms.RichTextBox(); this.uiTabPage2 = new Janus.Windows.UI.Tab.UITabPage(); this.uiGroupBox2 = new Janus.Windows.EditControls.UIGroupBox(); this.btnRSA = new System.Windows.Forms.Button(); this.txtD = new System.Windows.Forms.TextBox(); this.label7 = new System.Windows.Forms.Label(); this.txtE = new System.Windows.Forms.TextBox(); this.label8 = new System.Windows.Forms.Label(); this.txtPhi_N = new System.Windows.Forms.TextBox(); this.label5 = new System.Windows.Forms.Label(); this.txtN = new System.Windows.Forms.TextBox(); this.label6 = new System.Windows.Forms.Label(); this.txtQ = new System.Windows.Forms.TextBox(); this.label4 = new System.Windows.Forms.Label(); this.txtP = new System.Windows.Forms.TextBox(); this.label3 = new System.Windows.Forms.Label(); this.menuStrip1 = new System.Windows.Forms.MenuStrip(); this.hệThốngToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.minLoadDocument = new System.Windows.Forms.ToolStripMenuItem(); this.mniLoadEncryptKey = new System.Windows.Forms.ToolStripMenuItem(); this.mniSave = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.mniLoadDecryptFile = new System.Windows.Forms.ToolStripMenuItem(); this.mniLoadDecryptKey = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.minClose = new System.Windows.Forms.ToolStripMenuItem(); this.thựcThiToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); this.minEncrypted = new System.Windows.Forms.ToolStripMenuItem(); this.minDecrypt = new System.Windows.Forms.ToolStripMenuItem(); this.truyềnFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); this.saveDialog_PublicKey = new System.Windows.Forms.SaveFileDialog(); this.saveDialog_PrivateKey = new System.Windows.Forms.SaveFileDialog(); this.openFileDialog_LoadPublicKey = new System.Windows.Forms.OpenFileDialog(); this.openFileDialog_LoadPrivateKey = new System.Windows.Forms.OpenFileDialog(); this.ofdFileDecrypted = new System.Windows.Forms.OpenFileDialog(); 74 this.sfdFileEncrypted = new System.Windows.Forms.SaveFileDialog(); ((System.ComponentModel.ISupportInitialize)(this.uiTab1)).BeginInit(); this.uiTab1.SuspendLayout(); this.uiTabPage1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.uiGroupBox1)).BeginIn it(); this.uiGroupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.uiGroupBox4)).BeginIn it(); this.uiGroupBox4.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.uiGroupBox3)).BeginIn it(); this.uiGroupBox3.SuspendLayout(); this.uiTabPage2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.uiGroupBox2)).BeginIn it(); this.uiGroupBox2.SuspendLayout(); this.menuStrip1.SuspendLayout(); this.SuspendLayout(); // // uiTab1 // this.uiTab1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorSty les.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.uiTab1.BackColor = System.Drawing.SystemColors.Control; this.uiTab1.Controls.Add(this.uiTabPage1); this.uiTab1.Controls.Add(this.uiTabPage2); this.uiTab1.Location = new System.Drawing.Point(0, 24); this.uiTab1.Name = "uiTab1"; this.uiTab1.RightToLeft = System.Windows.Forms.RightToLeft.No; this.uiTab1.SelectedIndex = 0; this.uiTab1.Size = new System.Drawing.Size(687, 345); this.uiTab1.TabIndex = 1; this.uiTab1.TabPages.AddRange(new Janus.Windows.UI.Tab.UITabPage[] { this.uiTabPage1, this.uiTabPage2}); this.uiTab1.VisualStyle = Janus.Windows.UI.Tab.TabVisualStyle.Office2003; // // uiTabPage1 // this.uiTabPage1.Controls.Add(this.uiGroupBox1); this.uiTabPage1.Icon = ((System.Drawing.Icon)(resources.GetObject("uiTabPage1.Icon"))); this.uiTabPage1.Location = new System.Drawing.Point(1, 23); this.uiTabPage1.Name = "uiTabPage1"; this.uiTabPage1.RightToLeft = System.Windows.Forms.RightToLeft.No; this.uiTabPage1.Size = new System.Drawing.Size(685, 321); 75 this.uiTabPage1.TabIndex = 0; this.uiTabPage1.Text = "Mã hóa Giải mã"; // // uiGroupBox1 // this.uiGroupBox1.BackColor = System.Drawing.Color.Transparent; this.uiGroupBox1.Controls.Add(this.uiGroupBox4); this.uiGroupBox1.Controls.Add(this.uiGroupBox3); this.uiGroupBox1.Location = new System.Drawing.Point(5, -1); this.uiGroupBox1.Name = "uiGroupBox1"; this.uiGroupBox1.Size = new System.Drawing.Size(676, 318); this.uiGroupBox1.TabIndex = 0; // // uiGroupBox4 // this.uiGroupBox4.Controls.Add(this.label2); this.uiGroupBox4.Controls.Add(this.label1); this.uiGroupBox4.Controls.Add(this.txtPrivateKey); this.uiGroupBox4.Controls.Add(this.txtPublicKey); this.uiGroupBox4.Location = new System.Drawing.Point(13, 233); this.uiGroupBox4.Name = "uiGroupBox4"; this.uiGroupBox4.Size = new System.Drawing.Size(648, 71); this.uiGroupBox4.TabIndex = 1; this.uiGroupBox4.Text = "Thông tin khóa"; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(8, 48); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(60, 13); this.label2.TabIndex = 12; this.label2.Text = "Private key"; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(8, 20); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(56, 13); this.label1.TabIndex = 11; this.label1.Text = "Public key"; // // txtPrivateKey // this.txtPrivateKey.Location = new System.Drawing.Point(80, 45); this.txtPrivateKey.Name = "txtPrivateKey"; this.txtPrivateKey.Size = new System.Drawing.Size(562, 20); this.txtPrivateKey.TabIndex = 10; // // txtPublicKey // this.txtPublicKey.Location = new System.Drawing.Point(80, 19); this.txtPublicKey.Name = "txtPublicKey"; this.txtPublicKey.Size = new System.Drawing.Size(562, 20); this.txtPublicKey.TabIndex = 9; 76 // // uiGroupBox3 // this.uiGroupBox3.Controls.Add(this.rtbDocument); this.uiGroupBox3.DisabledFormatStyle.ForeColor = System.Drawing.Color.Black; this.uiGroupBox3.Location = new System.Drawing.Point(13, 19); this.uiGroupBox3.Name = "uiGroupBox3"; this.uiGroupBox3.Size = new System.Drawing.Size(648, 208); this.uiGroupBox3.TabIndex = 0; this.uiGroupBox3.Text = "Tài liệu cần xử lý"; // // rtbDocument // this.rtbDocument.Location = new System.Drawing.Point(4, 21); this.rtbDocument.Name = "rtbDocument"; this.rtbDocument.Size = new System.Drawing.Size(638, 181); this.rtbDocument.TabIndex = 6; this.rtbDocument.Text = ""; // // uiTabPage2 // this.uiTabPage2.Controls.Add(this.uiGroupBox2); this.uiTabPage2.Icon = ((System.Drawing.Icon)(resources.GetObject("uiTabPage2.Icon"))); this.uiTabPage2.Location = new System.Drawing.Point(1, 23); this.uiTabPage2.Name = "uiTabPage2"; this.uiTabPage2.Size = new System.Drawing.Size(685, 321); this.uiTabPage2.TabIndex = 1; this.uiTabPage2.Text = "Thuật toán RSA"; // // uiGroupBox2 // this.uiGroupBox2.BackColor = System.Drawing.Color.Transparent; this.uiGroupBox2.Controls.Add(this.btnRSA); this.uiGroupBox2.Controls.Add(this.txtD); this.uiGroupBox2.Controls.Add(this.label7); this.uiGroupBox2.Controls.Add(this.txtE); this.uiGroupBox2.Controls.Add(this.label8); this.uiGroupBox2.Controls.Add(this.txtPhi_N); this.uiGroupBox2.Controls.Add(this.label5); this.uiGroupBox2.Controls.Add(this.txtN); this.uiGroupBox2.Controls.Add(this.label6); this.uiGroupBox2.Controls.Add(this.txtQ); this.uiGroupBox2.Controls.Add(this.label4); this.uiGroupBox2.Controls.Add(this.txtP); this.uiGroupBox2.Controls.Add(this.label3); this.uiGroupBox2.Location = new System.Drawing.Point(5, -1); this.uiGroupBox2.Name = "uiGroupBox2"; this.uiGroupBox2.Size = new System.Drawing.Size(676, 317); this.uiGroupBox2.TabIndex = 1; // // btnRSA // this.btnRSA.Location = new System.Drawing.Point(127, 37); this.btnRSA.Name = "btnRSA"; this.btnRSA.Size = new System.Drawing.Size(85, 24); this.btnRSA.TabIndex = 12; this.btnRSA.Text = "Khởi tạo RSA"; 77 this.btnRSA.UseVisualStyleBackColor = true; this.btnRSA.Click += new System.EventHandler(this.btnRSA_Click); // // txtD // this.txtD.Location = new System.Drawing.Point(112, 184); this.txtD.Name = "txtD"; this.txtD.Size = new System.Drawing.Size(100, 20); this.txtD.TabIndex = 11; // // label7 // this.label7.AutoSize = true; this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label7.Location = new System.Drawing.Point(74, 189); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(19, 15); this.label7.TabIndex = 10; this.label7.Text = "d:"; // // txtE // this.txtE.Location = new System.Drawing.Point(112, 255); this.txtE.Name = "txtE"; this.txtE.Size = new System.Drawing.Size(100, 20); this.txtE.TabIndex = 9; // // label8 // this.label8.AutoSize = true; this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label8.Location = new System.Drawing.Point(74, 260); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(19, 15); this.label8.TabIndex = 8; this.label8.Text = "e:"; // // txtPhi_N // this.txtPhi_N.Location = new System.Drawing.Point(112, 150); this.txtPhi_N.Name = "txtPhi_N"; this.txtPhi_N.Size = new System.Drawing.Size(100, 20); this.txtPhi_N.TabIndex = 7; // // label5 // this.label5.AutoSize = true; this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label5.Location = new System.Drawing.Point(43, 155); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(50, 15); this.label5.TabIndex = 6; this.label5.Text = "Phi_N:"; 78 // // txtN // this.txtN.Location = new System.Drawing.Point(112, 220); this.txtN.Name = "txtN"; this.txtN.Size = new System.Drawing.Size(100, 20); this.txtN.TabIndex = 5; // // label6 // this.label6.AutoSize = true; this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label6.Location = new System.Drawing.Point(74, 225); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(21, 15); this.label6.TabIndex = 4; this.label6.Text = "N:"; // // txtQ // this.txtQ.Location = new System.Drawing.Point(112, 115); this.txtQ.Name = "txtQ"; this.txtQ.Size = new System.Drawing.Size(100, 20); this.txtQ.TabIndex = 3; // // label4 // this.label4.AutoSize = true; this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label4.Location = new System.Drawing.Point(74, 120); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(19, 15); this.label4.TabIndex = 2; this.label4.Text = "q:"; // // txtP // this.txtP.Location = new System.Drawing.Point(112, 79); this.txtP.Name = "txtP"; this.txtP.Size = new System.Drawing.Size(100, 20); this.txtP.TabIndex = 1; // // label3 // this.label3.AutoSize = true; this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label3.Location = new System.Drawing.Point(74, 84); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(19, 15); this.label3.TabIndex = 0; this.label3.Text = "p:"; // // menuStrip1 // 79 this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.hệThốngToolStripMenuItem, this.thựcThiToolStripMenuItem, this.truyềnFileToolStripMenuItem}); this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Name = "menuStrip1"; this.menuStrip1.Size = new System.Drawing.Size(687, 24); this.menuStrip1.TabIndex = 3; this.menuStrip1.Text = "menuStrip1"; // // hệThốngToolStripMenuItem // this.hệThốngToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.minLoadDocument, this.mniLoadEncryptKey, this.mniSave, this.toolStripSeparator1, this.mniLoadDecryptFile, this.mniLoadDecryptKey, this.toolStripSeparator2, this.minClose}); this.hệThốngToolStripMenuItem.Image = global::ChuKyDienTu.Properties.Resources.Home; this.hệThốngToolStripMenuItem.Name = "hệThốngToolStripMenuItem"; this.hệThốngToolStripMenuItem.Size = new System.Drawing.Size(79, 20); this.hệThốngToolStripMenuItem.Text = "Hệ thống"; // // minLoadDocument // this.minLoadDocument.Name = "minLoadDocument"; this.minLoadDocument.Size = new System.Drawing.Size(191, 22); this.minLoadDocument.Text = "Tải file cần mã hóa "; this.minLoadDocument.Click += new System.EventHandler(this.minLoadDocument_Click); // // mniLoadEncryptKey // this.mniLoadEncryptKey.Name = "mniLoadEncryptKey"; this.mniLoadEncryptKey.Size = new System.Drawing.Size(191, 22); this.mniLoadEncryptKey.Text = "Tải khóa để mã hóa "; this.mniLoadEncryptKey.Click += new System.EventHandler(this.mniLoadEncryptKey_Click); // // mniSave // this.mniSave.Enabled = false; this.mniSave.Name = "mniSave"; this.mniSave.Size = new System.Drawing.Size(191, 22); this.mniSave.Text = "Lưu file mã hóa "; this.mniSave.Click += new System.EventHandler(this.mniSave_Click); // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; 80 this.toolStripSeparator1.Size = new System.Drawing.Size(188, 6); // // mniLoadDecryptFile // this.mniLoadDecryptFile.Name = "mniLoadDecryptFile"; this.mniLoadDecryptFile.Size = new System.Drawing.Size(191, 22); this.mniLoadDecryptFile.Text = "Tải file cần giải mã "; this.mniLoadDecryptFile.Click += new System.EventHandler(this.mniLoadDecryptFile_Click); // // mniLoadDecryptKey // this.mniLoadDecryptKey.Name = "mniLoadDecryptKey"; this.mniLoadDecryptKey.Size = new System.Drawing.Size(191, 22); this.mniLoadDecryptKey.Text = "Tải khóa để giải mã "; this.mniLoadDecryptKey.Click += new System.EventHandler(this.mniLoadDecryptKey_Click); // // toolStripSeparator2 // this.toolStripSeparator2.Name = "toolStripSeparator2"; this.toolStripSeparator2.Size = new System.Drawing.Size(188, 6); // // minClose // this.minClose.Image = global::ChuKyDienTu.Properties.Resources.delete; this.minClose.Name = "minClose"; this.minClose.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.X))); this.minClose.Size = new System.Drawing.Size(191, 22); this.minClose.Text = "Thoát"; this.minClose.Click += new System.EventHandler(this.minClose_Click); // // thựcThiToolStripMenuItem // this.thựcThiToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripMenuItem1, this.toolStripSeparator3, this.minEncrypted, this.minDecrypt}); this.thựcThiToolStripMenuItem.Image = global::ChuKyDienTu.Properties.Resources.exec; this.thựcThiToolStripMenuItem.Name = "thựcThiToolStripMenuItem"; this.thựcThiToolStripMenuItem.Size = new System.Drawing.Size(93, 20); this.thựcThiToolStripMenuItem.Text = "Xử lý tài liệu"; // // toolStripMenuItem1 // this.toolStripMenuItem1.Image = global::ChuKyDienTu.Properties.Resources.key; 81 this.toolStripMenuItem1.Name = "toolStripMenuItem1"; this.toolStripMenuItem1.Size = new System.Drawing.Size(154, 22); this.toolStripMenuItem1.Text = "Tạo khóa"; this.toolStripMenuItem1.Click += new System.EventHandler(this.toolStripMenuItem1_Click); // // toolStripSeparator3 // this.toolStripSeparator3.Name = "toolStripSeparator3"; this.toolStripSeparator3.Size = new System.Drawing.Size(151, 6); // // minEncrypted // this.minEncrypted.Image = global::ChuKyDienTu.Properties.Resources.Icon_2; this.minEncrypted.Name = "minEncrypted"; this.minEncrypted.Size = new System.Drawing.Size(154, 22); this.minEncrypted.Text = "Mã hóa tài liệu"; this.minEncrypted.Click += new System.EventHandler(this.minEncrypted_Click); // // minDecrypt // this.minDecrypt.Image = global::ChuKyDienTu.Properties.Resources.CPU_; this.minDecrypt.Name = "minDecrypt"; this.minDecrypt.Size = new System.Drawing.Size(154, 22); this.minDecrypt.Text = "Giải mã tài liệu"; this.minDecrypt.Click += new System.EventHandler(this.minDecrypt_Click); // // truyềnFileToolStripMenuItem // this.truyềnFileToolStripMenuItem.Image = global::ChuKyDienTu.Properties.Resources.net; this.truyềnFileToolStripMenuItem.Name = "truyềnFileToolStripMenuItem"; this.truyềnFileToolStripMenuItem.Size = new System.Drawing.Size(86, 20); this.truyềnFileToolStripMenuItem.Text = "Truyền file"; this.truyềnFileToolStripMenuItem.Click += new System.EventHandler(this.truyềnFileToolStripMenuItem_Click); // // openFileDialog1 // this.openFileDialog1.FileName = "openFileDialog1"; this.openFileDialog1.FileOk += new System.ComponentModel.CancelEventHandler(this.openFileDialog1_FileOk); // // saveDialog_PublicKey // this.saveDialog_PublicKey.FileOk += new System.ComponentModel.CancelEventHandler(this.saveDialog_PublicKey_Fil eOk); // // saveDialog_PrivateKey // 82 this.saveDialog_PrivateKey.FileOk += new System.ComponentModel.CancelEventHandler(this.saveDialog_PrivateKey_Fi leOk); // // openFileDialog_LoadPublicKey // this.openFileDialog_LoadPublicKey.FileName = "openFileDialog2"; this.openFileDialog_LoadPublicKey.FileOk += new System.ComponentModel.CancelEventHandler(this.openFileDialog_LoadPubli cKey_FileOk); // // openFileDialog_LoadPrivateKey // this.openFileDialog_LoadPrivateKey.FileName = "openFileDialog2"; this.openFileDialog_LoadPrivateKey.FileOk += new System.ComponentModel.CancelEventHandler(this.openFileDialog_LoadPriva teKey_FileOk); // // ofdFileDecrypted // this.ofdFileDecrypted.FileName = "openFileDialog2"; this.ofdFileDecrypted.FileOk += new System.ComponentModel.CancelEventHandler(this.ofdFileDecrypted_FileOk) ; // // sfdFileEncrypted // this.sfdFileEncrypted.FileOk += new System.ComponentModel.CancelEventHandler(this.sfdFileEncrypted_FileOk) ; // // frmMain // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(687, 371); this.Controls.Add(this.menuStrip1); this.Controls.Add(this.uiTab1); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "frmMain"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "CHU KY DIEN TU"; ((System.ComponentModel.ISupportInitialize)(this.uiTab1)).EndInit(); this.uiTab1.ResumeLayout(false); this.uiTabPage1.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.uiGroupBox1)).EndInit (); this.uiGroupBox1.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.uiGroupBox4)).EndInit (); this.uiGroupBox4.ResumeLayout(false); this.uiGroupBox4.PerformLayout(); 83 ((System.ComponentModel.ISupportInitialize)(this.uiGroupBox3)).EndInit (); this.uiGroupBox3.ResumeLayout(false); this.uiTabPage2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.uiGroupBox2)).EndInit (); this.uiGroupBox2.ResumeLayout(false); this.uiGroupBox2.PerformLayout(); this.menuStrip1.ResumeLayout(false); this.menuStrip1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private Janus.Windows.UI.Tab.UITab uiTab1; private Janus.Windows.UI.Tab.UITabPage uiTabPage1; private Janus.Windows.UI.Tab.UITabPage uiTabPage2; private Janus.Windows.EditControls.UIGroupBox uiGroupBox1; private Janus.Windows.EditControls.UIGroupBox uiGroupBox2; private Janus.Windows.EditControls.UIGroupBox uiGroupBox4; private Janus.Windows.EditControls.UIGroupBox uiGroupBox3; private System.Windows.Forms.MenuStrip menuStrip1; private System.Windows.Forms.ToolStripMenuItem hệThốngToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem minLoadDocument; private System.Windows.Forms.ToolStripMenuItem mniSave; private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; private System.Windows.Forms.ToolStripMenuItem mniLoadDecryptFile; private System.Windows.Forms.ToolStripMenuItem mniLoadDecryptKey; private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; private System.Windows.Forms.ToolStripMenuItem minClose; private System.Windows.Forms.ToolStripMenuItem thựcThiToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1; private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; private System.Windows.Forms.ToolStripMenuItem minEncrypted; private System.Windows.Forms.ToolStripMenuItem minDecrypt; private System.Windows.Forms.ToolStripMenuItem truyềnFileToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem mniLoadEncryptKey; private System.Windows.Forms.OpenFileDialog openFileDialog1; private System.Windows.Forms.RichTextBox rtbDocument; private System.Windows.Forms.TextBox txtPublicKey; private System.Windows.Forms.SaveFileDialog saveDialog_PublicKey; private System.Windows.Forms.SaveFileDialog saveDialog_PrivateKey; 84 private System.Windows.Forms.OpenFileDialog openFileDialog_LoadPublicKey; private System.Windows.Forms.OpenFileDialog openFileDialog_LoadPrivateKey; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox txtPrivateKey; private System.Windows.Forms.OpenFileDialog ofdFileDecrypted; private System.Windows.Forms.SaveFileDialog sfdFileEncrypted; private System.Windows.Forms.TextBox txtD; private System.Windows.Forms.Label label7; private System.Windows.Forms.TextBox txtE; private System.Windows.Forms.Label label8; private System.Windows.Forms.TextBox txtPhi_N; private System.Windows.Forms.Label label5; private System.Windows.Forms.TextBox txtN; private System.Windows.Forms.Label label6; private System.Windows.Forms.TextBox txtQ; private System.Windows.Forms.Label label4; private System.Windows.Forms.TextBox txtP; private System.Windows.Forms.Label label3; private System.Windows.Forms.Button btnRSA; } } 85 KẾT LUẬN Trong trình làm đồ án tốt nghiệp, cố gắng thân tận tình giúp đỡ thầy cô khoa, đặc biệt thầy giáo Vũ Vinh Quang, em hoàn thành đồ án theo thời gian yêu cầu đề Kết đạt - Nắm hầu hết lý thuyết chữ ký điện tử vấn đề an ninh cho chữ ký điện tử - Vai trò, tầm quan trọng ứng dụng thực tiễn chứng số - Các vấn đề thực tế đặt áp dụng chữ ký điện tử Việt Nam - Cài đặt thuật toán RSA với số nguyên tố nhỏ - Tìm hiểu thuật toán MD5 ứng dụng thuật toán mã hóa trông tin thư viện DOT NET - Hoàn thành báo cáo cài đặt chương trình Hạn chế - Chương trình dừng mức cài đặt thuật toán RSA với số nguyên tố nhỏ - Chương trình xây dựng với chức - Chức truyền file hai máy chưa hoàn thiện - … Hướng phát triển đề tài - Hoàn thiện đóng gói chương trình - Cài đặt sử dụng môi trường mạng 86 TÀI LIỆU THAM KHẢO An toàn bảo mật thông tin – PGS,TS Thái Hồng Nhị, TS Phạm Minh Việt – Nhà xuất khoa học kỹ thuật Lý thuyết mã – Nguyễn Thúy Vân – Nhà xuất khoa học kỹ thuật www.codeproject.com www.manguon.com www.vietnamnet.vn www.huflit.edu.vn Một số website khác 87

Ngày đăng: 04/08/2016, 15:23

Từ khóa liên quan

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

Tài liệu liên quan