Lý thuyết mã hóa và vấn đề xác minh thông tin

93 237 0
Lý thuyết mã hóa và vấn đề xác minh thông tin

Đ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

1 LỜI CAM ĐOAN Sau trình học tập Trường Đại học công nghệ thông tin & truyền thông, với kiến thức lý thuyết thực hành tích lũy được, với việc vận dụng kiến thức vào thực tế, em tự nghiên cứu tài liệu, công trình nghiên cứu, đồng thời có phân tích, tổng hợp, đúc kết phát triển để hoàn thành luận văn thạc sĩ Em xin cam đoan luận văn công trình thân em tự tìm hiểu, nghiên cứu hoàn thành hướng dẫn thầy giáo TS Vũ Vinh Quang Thái Nguyên, tháng năm 2014 Học viên Đặng Thị Như Trang LỜI CẢM ƠN Trong thời gian hai năm chương trình đào tạo thạc sĩ, gần nửa thời gian dành cho môn học, thời gian lại dành cho việc lựa chọn đề tài, giáo viên hướng dẫn, tập trung vào nghiên cứu, viết, chỉnh sửa hoàn thiện luận văn Với quỹ thời gian với vị trí công việc phải đảm nhận, không riêng thân em mà hầu hết học viên cao học muốn hoàn thành tốt luận văn trước hết phải có xếp thời gian hợp lý, có tập trung học tập nghiên cứu với tinh thần nghiêm túc, nỗ lực hết mình; tiếp đến cần có ủng hộ tinh thần, giúp đỡ chuyên môn, điều kiện thiếu định đến việc thành công luận văn Để hoàn thành luận văn trước tiên em xin gửi lời cảm ơn đến thầy giáo hướng dẫn TS Vũ Vinh Quang, người có định hướng cho em nội dung hướng phát triển đề tài, người có đóng góp quý báu cho em vấn đề chuyên môn luận văn, giúp em tháo gỡ kịp thời vướng mắc trình làm luận văn Em xin cảm ơn thầy cô giáo Trường Đại học Công nghệ thông tin Truyền thông bạn bè lớp có ý kiến đóng góp bổ sung cho đề tài luận văn em Xin cảm ơn gia đình, người thân đồng nghiệp quan tâm, ủng hộ hỗ trợ mặt tinh thần suốt thời gian từ nhận đề tài đến hoàn thiện luận văn Em xin hứa cố gắng nữa, tự trau dồi thân, tích cực nâng cao lực chuyên môn để sau hoàn thành luận văn có hướng tập trung nghiên cứu sâu hơn, không ngừng hoàn thiện luận văn để có ứng dụng thực tiễn cao thực tế Thái Nguyên, tháng năm 2014 Học viên Đặng Thị Như Trang MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC CÁC CHỮ VIẾT TẮT DANH MỤC BẢNG BIỂU DANH MỤC HÌNH VẼ MỞ ĐẦU Chương TỔNG QUAN VỀ HỆ Mà 12 1.1 GIỚI THIỆU CHUNG VỀ Mà HÓA 12 1.1.1 An toàn bảo mật thông tin 12 1.1.2 Mục tiêu an toàn bảo mật thông tin 13 1.1.3 Các chiến lược an toàn hệ thống 14 1.1.4 An toàn thông tin mật mã 15 1.1.5 Vai trò hệ mật mã 16 1.1.6 Các thành phần hệ mật mã 16 1.1.7 Tiêu chuẩn đánh giá hệ mật mã 17 1.2 CƠ SỞ TOÁN HỌC 18 1.2.1 Cơ sở toán học 18 1.2.2 Số nguyên tố phân tích thành thừa số 19 1.2.3 Phép mũ hóa khai modul 22 1.3 MẬT Mà HỌC VÀ MẬT Mà KHÓA CÔNG KHAI RSA 23 1.3.1 Mã hóa liệu 23 1.3.2 Ứng dụng mã hóa 24 1.3.3 Phân loại mã hóa 24 1.3.4 Ưu khuyết điểm hai phương pháp 27 1.3.5 Hệ mã RSA (R.Rivest, A.Shamir, L.Adleman) 28 1.3.6 Một số vấn đề khóa RSA 33 1.3.7 Module hệ thống RSA 39 1.3.8 Tốc độ RSA 41 1.3.9 Vấn đề tìm văn RSA 42 1.3.10 Vấn đề sử dụng RSA 42 1.4 KẾT LUẬN CHƯƠNG 43 Chương CHỮ KÝ ĐIỆN TỬ 44 2.1 ĐẶT VẤN ĐỀ 44 2.1.1 Vấn đề xác thực 44 2.1.2 Vấn đề chữ ký số 45 2.2 HÀM BĂM MẬT Mà 46 2.2.1 Định nghĩa 46 2.2.2 Phân loại 47 2.2.3 Cấu trúc thuật toán băm 47 2.2.4 Hàm băm MD5 48 2.2.5 Hàm băm SHA-1 49 2.3 MỘT SỐ KHÁI NIỆM VÀ TÍNH CHẤT CHỮ KÝ ĐIỆN TỬ 49 2.3.1 Khái niệm: 49 2.3.2 Các bước tạo kiểm tra chữ ký điện tử 50 2.3.3 Vị trí, vai trò chữ ký số 50 2.3.4 Phân loại chữ ký số 51 2.3.5 Sơ đồ chữ ký số 52 2.3.6 Sơ đồ chữ ký RSA 53 2.3.7 Lược đồ chữ ký số 54 2.3.8 Yêu cầu chữ ký số 55 2.3.9 Đặc điểm chữ ký số 55 2.3.10 Tấn công chữ ký số 56 2.3.11 So sánh chữ ký thông thường chữ ký số 57 2.3.12 Độ an toàn chữ ký RSA 58 2.4 MÔ HÌNH CHỮ KÝ SỐ DỰA TRÊN RSA 59 2.4.1 Quá trình ký gửi tệp văn 59 2.4.2 Quá trình nhận tệp văn 60 2.5 KẾT LUẬN CHƯƠNG 61 Chương MỘT SỐ KẾT QUẢ ỨNG DỤNG CHỮ KÝ ĐIỆN TỬ 62 3.1 MÔ HÌNH BÀI TOÁN THỰC TẾ 62 3.1.1 Một vài nét tổ chức quan 62 3.1.2 Vấn đề ứng dụng công nghệ thông tin 63 3.1.3 Vấn đề lưu trữ văn 65 3.1.4 Vấn đề bảo mật văn 67 3.2 ĐỀ XUẤT PHƯƠNG ÁN BẢO MẬT 72 3.2.1 Các module 76 3.2.2 Cấu hình hệ thống 77 3.2.3 Quy trình thực ký văn gửi có xác thực 78 3.3 MỘT SỐ HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH CHỮ KÝ SỐ 78 3.3.1 Giao diện 78 3.3.2 Giao diện chương trình nhập khóa cho thuật toán RSA 79 3.3.3 Giao diện chương trình thuật toán RSA 79 3.3.4 Giao diện chương trình chữ ký (phần ký kiểm tra chữ ký) 81 3.4 MỘT SỐ ĐÁNH GIÁ KHI THỬ NGHIỆM TẠI CƠ SỞ THỰC TẾ 82 3.5 KẾT LUẬN CHƯƠNG 82 KẾT LUẬN 83 TÀI LIỆU THAM KHẢO 84 PHỤ LỤC 85 Phụ lục 1: Tạo cặp khóa bí mật – công khai 85 Phụ lục 2: Tạo chữ ký số 86 Phụ lục 3: Xác thực chữ ký số 90 DANH MỤC CÁC CHỮ VIẾT TẮT RSA R.Rivest A.Shamir L.Adleman DES Data Encrypt Standar MAC Media Access Control DANH MỤC BẢNG BIỂU Các ưu khuyết điểm hệ thống khóa bí mật 20 Các ưu khuyết điểm hệ thống mã hóa khóa công khai 21 Chiều dài khóa công khai 27 DANH MỤC HÌNH VẼ Hình 1.1 Mã hoá với khóa mã khóa giải giống 10 Hinh 1.2 Quy trình mã hóa liệu 16 Hình 1.3 Sơ đồ mã hóa giải mã 17 Hình 1.4 Sơ đồ mã hóa giải mã khóa riêng 19 Hình 1.5 Sơ đồ mã hóa giải mã khóa công khai 20 Hình 1.6 Kiểm tra khóa 30 Hình 1.7 Hình thức kiểm tra khóa bảo mật 30 Hình 1.8 Bảo mật nơi nơi nhận vào hai người sử dụng 31 Hình 1.9 Bảo mật nơi người gửi nơi nhận trước vào hệ 31 thống người nhận Hình 1.10 Kết hợp bảo mật máy chủ 32 Hình 2.1 Tổng quan chữ ký số 38 Hình 2.2 Minh họa chữ ký số bên gửi cho thông báo M 42 Hình 2.3 Sơ đồ chữ ký số 45 Hình 2.4 Ký văn 53 Hình 2.5 Xác thực chữ ký 54 Hình 3.1 Sơ đồ chương trình chữ ký số 70 Hình 3.2 Quy trình thực ký văn gửi có xác thực 71 Hình 3.3 Giao diện 71 Hình 3.4 Giao diện chương trình nhập khóa cho thuật toán RSA 72 Hình 3.5 Giao diện chương trình thuật toán RSA 72 Hình 3.6 Giao diện chương trình chữ ký (phần ký văn bản) 73 Hình 3.7 Giao diện chương trình chữ ký (phần ký kiểm tra chữ ký) 74 MỞ ĐẦU Lý lựa chọn đề tài Văn phương tiện lưu giữ truyền đạt thông tin ngôn ngữ hay ký hiệu định Ở Việt Nam, Theo thống kê Bộ Công thương, năm 2012 nước có tới 2,9 triệu giấy tiêu thụ Điều cho thấy văn bản, tài liệu giấy tiếp tục phương tiện quan trọng hoạt động kinh doanh nghiệp vụ Tuy nhiên, thách thức vấn đề lưu trữ quản lý, khai thác, sử dụng thông tin quan, doanh nghiệp Việt Nam, thời kỳ bùng nổ công nghệ thông tin Trong Việt Nam, số giải pháp phần mềm phát triển triển khai liên quan đến công tác văn bản, lưu trữ tài liệu dịch vụ số hóa liệu, phần mềm quản lý văn bản, công văn…nhằm giải hiệu việc số hóa văn giấy, giải toả tủ hồ sơ lưu trữ với hàng chồng văn có nguy bị hư hại theo thời gian; giới áp dụng rộng rãi nước phát triển Mỹ, Nhật… Chúng sử dụng nhiều tổ chức Chính Phủ, bao gồm chi nhánh Chính Phủ Mỹ, tập đoàn yếu, thư viện quốc tế trường Đại học Nhiều nước không triển khai chữ ký số mạng máy tính mà áp dụng mạng điện thoại di động để thực giao dịch điện tử Hầu hoạt động, giao dịch sử dụng qua mạng máy tính văn không nằm phát triển chung Tuy nhiên, văn giao dịch trao đổi mạng có nguy bị thay đổi, chép mát liệu ứng dụng vấn đề gây xúc nhiều người quan tâm Trong bối cảnh tại, hệ thống thông tin điện tử phải đương đầu với toán đảm bảo an toàn bảo mật Trong đó, an toàn thông tin mật mã có vai trò quan trọng ứng dụng rộng khắp Nắm bắt thông tin nhiều mang ý nghĩa định, sống đặc biệt lĩnh vực: kinh tế, trị, an ninh, quốc phòng…Vì việc bảo mật thông tin đã, vấn đề đặt cấp bách Để giải vấn đề hệ mật mã đời Từ hệ mật mã sơ khai cổ điển như: Hệ mã Dịch Vòng, hệ mã Hill, hệ mã Affine,…, hệ mật mã đại, phức tạp hệ mã DES Các hệ mật mã công khai hệ mã RSA, hệ mã Ba Lô Nhưng kèm với đời phát triển hệ mật mã phương pháp phá khóa hệ mật mã Cuộc chiến bảo mật thông tin xâm phạm thông tin diễn cách thầm lặng vô gay gắt Internet mặt mạnh biết cho phép người truy cập, khai thác, chia sẻ thông tin; nguyên nhân dẫn đến thông tin bị rò rỉ bị phá hoại Lúc việc bảo mật an toàn liệu vấn đề thời Nhằm giải vấn đề xử lý giao dịch trao đổi văn mạng chữ ký điện tử ứng dụng rộng rãi Một ứng dụng quan trọng chữ ký điện tử đảm bảo an toàn liệu truyền mạng Chính vậy, với mong muốn tìm hiểu phương pháp bảo vệ an toàn thông tin có tính an toàn cao dùng mật mã khóa công khai RSA vài ứng dụng mật mã khóa công khai: Sử dụng chữ ký số việc xác thực, mã hóa giải mã tập tin văn Đồng thời đồng ý hướng dẫn thầy giáo, TS Vũ Vinh Quang, tác giả lựa chọn đề tài luận văn tốt nghiệp “Lý thuyết mã hóa vấn đề xác minh thông tin” với mong muốn áp dụng kiến thức học, xây dựng thử nghiệm mô hình giải toán ký xác thực văn quản lý Nhà nước Sở Thông tin Truyền thông Tuyên Quang Mục đích nghiên cứu Qua việc phân tích, khảo sát đánh giá thực trạng sử dụng văn quản lý Nhà nước Việt Nam giới, kết hợp với việc nghiên cứu kỹ thuật, phương pháp, thuật toán mã hóa, mục tiêu luận văn xác định là: Nghiên cứu lý thuyết mật mã, mật mã khóa công khai RSA, chữ ký số ứng dụng thuật toán RSA mã hóa liệu Từ xây dựng hệ thống cho phép tạo kiểm 10 tra chữ ký số tài liệu văn quản lý nhà nước để bảo mật nội dung thông tin xác thực nguồn gốc thông tin Ứng dụng chữ ký số RSA để giải toán ký xác thực văn quản lý Nhà nước tỉnh Tuyên Quang Đối tượng phạm vi nghiên cứu Hệ mật mã khóa công khai RSA Mô hình chung chữ ký số chữ ký số RSA Trong phạm vi luận văn, tác giả sử dụng giải pháp Lược đồ Chữ ký số RSA để giải vấn đề nêu Phương pháp luận nghiên cứu Phương pháp nghiên cứu lý thuyết: Tổng hợp tài liệu; Nghiên cứu tài liệu văn quản lý Nhà nước; Nghiên cứu hệ mã hóa công khai, hệ mật RSA, chữ ký số loại chữ ký số sử dụng hệ mật RSA; Tìm hiểu kiến thức liên quan đến chữ ký số RSA, kỹ thuật giao thức sử dụng giải toán ký xác thực văn quản lý Nhà nước Phương pháp nghiên cứu thực nghiệm: Sau nghiên cứu lý thuyết, phát biểu toán, đưa giải pháp xử lý; Mô thử nghiệm chương trình phần mềm Visual Studio; Đánh giá kết đạt Phương pháp trao đổi khoa học: Thảo luận, xemina, lấy ý kiến chuyên gia, công bố kết nghiên cứu tạp chí khoa học Ý nghĩa khoa học thực tiễn luận văn Về mặt lý thuyết: Trình bày khái quát hệ mật mã, hệ mật mã khóa bí mật, hệ mật mã khóa công khai Trình bày lý thuyết chung phương pháp mã hóa: phương pháp mã hóa khóa bí mật phương pháp mã hóa khóa công khai, nêu ưu nhược điểm hai phương pháp Trình bày chi tiết hệ mật mã khóa công khai RSA 79 3.3.2 Giao diện chương trình nhập khóa cho thuật toán RSA Từ giao diện chương trình Thuật toán mã hóa công khai RSA Chữ ký điện tử với thuật toán RSA, chọn Nhập khóa ta có giao diện sau: Hình 3.4 Giao diện chương trình nhập khóa cho thuật toán RSA Tại bước ta chọn thuật toán sinh khóa, nơi lưu trữ khóa bí mật khóa công khai phục vụ cho việc ký tài liệu sau Thuật toán sử dụng thuật toán RSA với độ dài khóa 1024 bit Sau chọn xong p,q nhấn Sinh khóa, chương trình hiển thị tham số Khóa bí mật (d,n) người gửi tin khóa công khai (e,n) người nhận Sau tạo khóa xong, quay trở lại giao diện Chữ ký điện tử với thuật toán RSA để thực ký lên tài liệu ta muốn ký 3.3.3 Giao diện chương trình thuật toán RSA Từ giao diện chương trình chọn Mã công khai/Mã RSA ta có giao diện sau: Hình 3.5 Giao diện chương trình thuật toán RSA 80 Nhập đầy đủ thông tin vào trường “Địa file rõ”, ”Địa file mã”, ”Địa file giải mã” Sau nhập đầy đủ thông tin, chọn “Mã hóa”, chương trình thông báo thực mã hóa thành công lên tài liệu Thông báo chương trình thực mã hóa thành công Sau mã hóa, làm tương tự trình Giải mã 3.3.4 Giao diện chương trình chữ ký (phần ký văn bản) Từ giao diện chương trình chọn Mã công khai/Chữ ký RSA/Ký ta có giao diện sau: Hình 3.6 Giao diện chương trình chữ ký (phần ký văn bản) Nhập đầy đủ thông tin vào trường “Địa file rõ”, ”Địa file mã”, ”Địa file cần ký” Sau nhập đầy đủ thông tin, chọn “Chữ ký”, chương trình thông báo thực ký thành công lên tài liệu 81 Thông báo chương trình thực mã hóa thành công 3.3.4 Giao diện chương trình chữ ký (phần ký kiểm tra chữ ký) Để xác minh chữ ký với liệu nhận được, chọn chức Mã công khai/Chữ ký RSA/Kiểmtrachữký nhập vàp đầy đủ thông tin yêu cầu, giao diện chương trình sau: Hình 3.7 Giao diện chương trình chữ ký (phần ký kiểm tra chữ ký) Sau nhập đầy đủ thông tin theo yêu cầu (chính liệu mà ta nhận cần xác minh liệu đó) chọn thuật toán xác minh, chọn Kiểm tra chữ ký Nếu thông tin nhập vào xác, liệu không bị thay đổi trình vận chuyển có thông báo cho biết tính hợp lệ chữ ký liệu đầu vào 82 3.4 MỘT SỐ ĐÁNH GIÁ KHI THỬ NGHIỆM TẠI CƠ SỞ THỰC TẾ Qua khả sát mô hình thực tế cổng thông tin điện tử tỉnh Tuyên Quang có kết sơ sau: Chương trình chạy tốt cho việc tạo kiểm tra chữ ký xác Giao diện chương trình tiếng Việt tương đối dễ dùng, xây dựng với mục tiêu tin học hóa công tác quản lý, soạn thảo, xử lý văn hồ sơ công việc quan quản lý nhà nước tỉnh Tuyên Quang; đồng thời trợ giúp có hiệu để lãnh đạo dễ dàng đạo, giao việc, theo dõi tình hình xử lý công việc cách an toàn, hiệu 3.5 KẾT LUẬN CHƯƠNG Mục tiêu luận văn xây dựng thử nghiệm chương trình quản lý văn Nhà nước Sở Thông tin truyền thông tỉnh Tuyên Quang Để đảm bảo hai yếu tố cốt lõi vấn đề quản lý văn là: ký xác thực chữ ký số, luận văn sử dụng hệ mật RSA kết hợp với kỹ thuật ký số Từ xây dựng chương trình Demo thực trình Chương trình thử nghiệm cho thấy kết với lý thuyết mang lại ưu vượt trội khắc phục “lỗi người” so với quản lý văn thông thường, đặc biệt số lượng văn ngày lớn 83 KẾT LUẬN  Kết đạt Nội dung luận văn trình bày giới thiệu kiến thức lý thuyết mã hóa vấn đề xác minh thông tin, hướng nghiên cứu ứng dụng quan tâm Kết luận văn gồm có Trình bày chi tiết kiến thức hệ mật mã sở toán học Nghiên cứu đầy đủ hệ mật mã RSA phương pháp cài đặt Nghiên cứu lý thuyết chữ ký số phát triển ứng dụng vấn đề xác minh thông tin Khảo sát thực trạng vấn đề bảo mật thông tin cổng thông tin điện tử Tuyên quang đề xuất phương án bảo mật dựa hệ mật RSA chữ ký số Triển khai thử nghiệm ứng dụng chữ ký số Sở thông tin truyền thông  Hướng phát triển Hướng phát triển thời gian tới đề tài tiếp tục nghiên cứu sâu ứng dụng lý thuyết mã hóa vấn đề xác minh thông tin Công nghệ thông tin tối ưu hóa, xây dựng phần mềm tương ứng áp dụng thực tế 84 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Nguyễn Xuân Dũng, Bảo mật thông tin mô hình ứng dụng, NXB Thống kê, 2007 [2] Phạm Huy Điển, Hà Huy Khóai, Mã hoá thông tin sở toán học & ứng dụng, Viện toán học, 2004 [3] Trịnh Nhật Tiến, Giáo trình an toàn liệu mã hóa, Đại học Công nghệ Đại học Quốc Gia Hà Nội, 2006 [4] Phan Huy Khánh, Hồ Phan Hiếu, Trường Đại học Bách khoa- Đại học Đà Nẵng, Giải pháp ứng dụng chữ ký điện tử trình nhận gửi văn bản, Tạp chí khoa học công nghệ, Đại học Đà Nẵng – số 5(34),2009 Tiếng Anh [5] William Stallings, Cryptography and Network Security: Principles and Practice, Fourth Edition, Prentice Hall, 2006 [6] Cyber Vote, Report on Review of Cryptographic Protocols and Security Techniques for Electronic Voting, 2002 [7] Fagen Li, Yupu Hu, and Shuanggen Liu, Efficient and provably secure multirecipient signcryption from bilinear pairings, Cryptology ePrint Archive, Report 2006/238 – 250 Trang Web [8] http://vi.wikipedia.org 85 PHỤ LỤC Phụ lục 1: Tạo cặp khóa bí mật – công khai Input: Độ dài khóa 1024 bit Output: Cặp khóa bí mật – công khai thỏa nãm yêu cầu Mô tả cấu trúc khóa RSA sau: { BigInteger p1 = 0; BigInteger q1 = 0; BigInteger e11 = 0; try { p1 = new BigInteger(this.textP.Text, 10); q1 = new BigInteger(this.textQ.Text, 10); e11 = new BigInteger(this.textE.Text, 10); if (!p1.isProbablePrime() || !q1.isProbablePrime()) MessageBox.Show("Ban nhap P,Q khong phai la so nguyen to"); else { BigInteger phi_n1=(p1-1)*(q1-1); if (e11 >= phi_n1 || phi_n1.gcd(e11) != )// !e11.isProbablePrime()) { MessageBox.Show("Ban nhap so E sai"); } else { ok1 = true; } } } catch 86 { //MessageBox.Show("Dữ liệu nhập vào số nguyên dương"); MessageBox.Show("Du lieu nhap vao sai"); } if (ok1) { p = p1; q = q1; E = e11; N = (p * q); this.textN.Text = N.ToString(); Phi_N = (p1 - 1) * (q1 - 1); this.textPhi_N.Text = Phi_N.ToString(); d = E.modInverse(Phi_N); this.textD.Text = d.ToString(); } if (ok1 && ok2) { this.button2.Enabled = true; } } Phụ lục 2: Tạo chữ ký số Input: Khóa bí mật file tài liệu cần ký Output: file chữ ký số (*.sig) Mã chương trình: ok = false; RSA rsa = new RSA(); byte x; BigInteger a=0,b=0; if (this.textSource.Text == "" || this.textEncrypt.Text == "" || this.textDestination.Text=="") { 87 MessageBox.Show("Chưa nhập file cần mã hoá, địa file mã hoá"); return; } try { WaitForm waitForm = new WaitForm(); waitForm.Show(); waitForm.Text = "Dang tien hanh ky "; // FileStream fileStream = new FileStream(this.pathSourceFile, FileMode.Open); BinaryReader binaryReader = new BinaryReader(fileStream); FileStream fileStreamWrite = new FileStream(this.pathEncryptFile, FileMode.OpenOrCreate); StreamWriter streamWriter = new StreamWriter(fileStreamWrite); // FileStream fileStreamWrite1 = new FileStream(this.pathDestinationFile, FileMode.OpenOrCreate); StreamWriter streamWriter1 = new StreamWriter(fileStreamWrite1); FileInfo fileInfor = new FileInfo(this.pathSourceFile); long phanNguyen = fileInfor.Length/50; if (fileInfor.Length % 50 != 0) phanNguyen = phanNguyen + 1; while (fileStream.Position < binaryReader.BaseStream.Length) 88 { x = binaryReader.ReadByte(); //ulong a = rsa.Encrypt(binaryReader.ReadByte(),e1,n1); //ulong a = rsa.Encrypt(x,e1,n1); a = rsa.Encrypt(x,e1,n1); streamWriter.WriteLine(a.ToString()); //ulong b = rsa.Encrypt1(a, d, n); while(a>n) a = a - n; b = rsa.Encrypt1(a, d, n); streamWriter1.WriteLine(b.ToString()); //this.Cursor = Cursors.WaitCursor; if (fileStream.Position % phanNguyen == 0) //Perform the increment on the ProgressBar waitForm.pBar1.PerformStep(); } this.Cursor = Cursors.Arrow; streamWriter.Close(); fileStreamWrite.Close(); binaryReader.Close(); fileStream.Close(); streamWriter1.Close(); fileStreamWrite1.Close(); waitForm.Close(); ok = true; } 89 catch { MessageBox.Show("Bạn chưa nhập đầy đủ thông tin"); ok = false; } if (ok) { try { DialogResult dr = MessageBox.Show("Ký thành công Bạn có muốn mở thư mục chứa file ký không?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question); string st = ""; if (dr == DialogResult.Yes) { ProcessStartInfo pr = new ProcessStartInfo(); for (int i = this.pathEncryptFile.Length - 1; i >= 0; i ) { if (this.pathEncryptFile[i] == '\\') { st = this.pathEncryptFile.Substring(0, i + 1); break; } } Process.Start(st); } } 90 catch { return; } } } Phụ lục 3: Xác thực chữ ký số Input: File ban đầu, file chữ ký số + khóa công khai Output: Tính đắn chữ ký số Mã chương trình: RSA rsa = new RSA(); getData(); ok = false; //ulong a = 0; BigInteger a = 0; if (this.textDestination.Text == "" || this.textEncrypt.Text == "" || this.textSource.Text == "") { MessageBox.Show("Bạn xem lại địa file mã hoá File đựơc giả mã "); return; } if (ok1) { try { WaitForm waitForm = new WaitForm(); waitForm.Show(); waitForm.Text = "Dang giai ma chu ky "; // 91 FileStream fileStream = new FileStream(this.pathSourceFile, FileMode.Open); StreamReader streamReader = new StreamReader(fileStream);//luong doc //BinaryReader binaryReader = new BinaryReader(fileStream);//dau doc FileStream fileStreamWrite = new FileStream(this.pathDestinationFile, FileMode.OpenOrCreate);//tao file BinaryWriter binaryWriter = new BinaryWriter(fileStreamWrite); // // long phanNguyen = streamReader.BaseStream.Length / 50; if (streamReader.BaseStream.Length % 50 != 0) phanNguyen = phanNguyen + 1; long i = 1; string c = ""; // //while (fileStream.Position < streamReader.BaseStream.Length) { // try // { c = streamReader.ReadLine(); if (c != null) { //a = Convert.ToUInt64(c); a = new BigInteger(c,10); byte b = rsa.Decrypt(a, d, n); binaryWriter.Write(b); 92 if (fileStream.Position > (i * phanNguyen)) { waitForm.pBar1.PerformStep(); i = i + 1; } } /* } catch { MessageBox.Show("Lỗi không giải mã đựơc"); }*/ } while (c != null); binaryWriter.Close(); fileStreamWrite.Close(); streamReader.Close(); fileStream.Close(); waitForm.Close(); this.Cursor = Cursors.Arrow; ok = true; } catch { MessageBox.Show("không giải mã được"); ok = false; } if (ok) { try { 93 DialogResult dr = MessageBox.Show("Giải mã chữ ký thàh công.Bạn có muốn mở thư mục chứa file giải mã chữ ký không?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question); string st = ""; if (dr == DialogResult.Yes) { ProcessStartInfo pr = new ProcessStartInfo(); for (int i = this.pathEncryptFile.Length - 1; i >= 0; i ) { if (this.pathEncryptFile[i] == '\\') { st = this.pathEncryptFile.Substring(0, i + 1); break; } } Process.Start(st); } } catch { return; } } } else { MessageBox.Show("Bạn chưa kiểm tra chữ ký chữ ký không hợp lệ!"); } } ... khai Mã hóa khóa công khai gọi mã hóa bất đối xứng hay mã hóa khóa chung Sự khác biệt hệ thống mã hóa khóa bí mật với hệ thống mã hóa khóa công khai hệ thống mã hóa khóa công khai dùng hai khóa... dựa vào khóa khác nhau, khóa sinh từ hàm sinh khóa, gọi dòng khóa) mã khối (tiến hành mã khối liệu với khóa nhau) 1.3.3.1 Mã hóa khóa bí mật Các hệ thống mã hóa với khóa bí mật gọi mã hóa khóa... mặt lý thuyết: Trình bày khái quát hệ mật mã, hệ mật mã khóa bí mật, hệ mật mã khóa công khai Trình bày lý thuyết chung phương pháp mã hóa: phương pháp mã hóa khóa bí mật phương pháp mã hóa khóa

Ngày đăng: 13/12/2016, 12:45

Từ khóa liên quan

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

Tài liệu liên quan