Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
1,32 MB
File đính kèm
15_ManhThienLy_source.rar
(3 MB)
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP HCM KHOA CƠNG NGHỆ THƠNG TIN Ngành An Tồn Thơng Tin -o0o - ĐỒ ÁN MÔN HỌC ĐỀ TÀI : TÌM HIỂU VỀ CHỮ KÝ ĐIỆN TỬ VÀ XÂY DỰNG ỨNG DỤNG TẠO VÀ XÁC THỰC CHỮ KÝ ĐIỆN TỬ Sinh viên thực hiện: Nguyễn Văn Quang 2033181060 Đào Chiến Thắng 2033181066 Giảng viên hướng dẫn: Mạnh Thiên Lý TP Hồ Chí Minh, Tháng năm 2021 Đồ án môn học LỜI CẢM ƠN Chúng em xin chân thành gửi lời cảm ơn sâu sắc tới cô Mạnh Thiên Lý - người bảo, nhắc nhở, hướng dẫn, cung cấp tài liệu quý giá, kiến thức bổ ích dẫn dắt tụi em hoàn thành đồ án Chúng em xin gửi lời cảm ơn thầy cô giáo khoa Công nghệ thông tin - trường Đại học Công nghiệp Thực phẩm TP HCM gia đình tạo điều kiện giúp đỡ vật chất tinh thần để chúng em tập trung có động lực để hồn thành tốt đồ án Sinh viên thực Nguyễn Văn Quang Đào Chiến Thắng Đồ án môn học NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Nhóm sinh viên gồm : Nguyễn Văn Quang Đào Chiến Thắng MSSV: 2033181060 MSSV: 2033181066 Nhận xét : ……………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… Điểm đánh giá: ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… Ngày ……….tháng ………….năm 2021 ( Ký tên, ghi rõ họ tên) Đồ án môn học MỤC LỤC Đồ án môn học DANH MỤC HÌNH ẢNH THUẬT NGỮ VIẾT TẮT Tên viết tắt Tên tiếng anh Tên tiếng việt DES Data Encryption Standard Chuẩn mã hoá liệu RSA Rivest - Shamir - Adleman Hệ mã hố khố cơng khai RSA MAC Message Authentication Code Mã xác thực thông báo ƯCLN Ước chung lớn OTP One Time Pad Một hệ mã dịng MD Message - Digest Algorithm Thuật tốn tóm tắt hóa thơng điệp SHA Secure Hash Algorithm Thuật tốn băm an tồn Đồ án mơn học LỜI NĨI ĐẦU Từ thuở xa xưa, hoạt động giao dịch bên cần biện pháp xác thực để đảm bảo tính an tồn giao dịch, để chứng thực hay xác minh ta có nhiều cách, số chữ ký viết tay hình thức đơn giản an tồn Nhưng thời đại chữ ký viết tay ngày hiệu quả, hồn tồn bị làm giả bất tiện việc phải đồng thời có diện hai bên để ký kết hợp đồng Nhất thời gian gần dịch bệnh ngày hoành hành người phải hạn chế tiếp xúc với khiến điều trở nên khó khăn Ở thời điểm công nghệ phát triển bây giờ, việc giao dịch mạng trở nên quen thuộc với người, giao dịch yêu cầu cần có hợp đồng lại đặt vấn đề lớn tính xác thực an tồn hợp đồng bị lợi dụng “bên thứ ba” hai bên thực giao dịch cho mục đích xấu Từ vấn đề trên, chữ ký điện tử cho đời để giải chúng Bản thân chữ ký điện tử mang số nét tương đồng với chữ ký viết tay bảo mật an tồn có sử dụng cơng nghệ mã hóa, chứng thực hàm băm Đó lý mà chúng em chọn đề tài đồ án mơn học: “TÌM HIỂU VỀ CHỮ KÝ ĐIỆN TỬ VÀ XÂY DỰNG ỨNG DỤNG TẠO VÀ XÁC THỰC CHỮ KÝ ĐIỆN TỬ” với mục tiêu nắm vững kiến thức chữ ký số tạo ứng dụng tảng Window tạo xác thực chữ ký số, góp phần cống hiến cho đời sống thành từ kinh nghiệm kiến thức thu sau thực đồ án Ngoài phần mở đầu kết luận, đồ án bao gồm chương Chương 1: Tổng quan loại mã hoá Trong chương biết thêm khái niệm mã hoá, số phương pháp mã hoá, dẫn chứng, ví dụ cụ thể giới thiệu chi tiết thuật tốn khố cơng khai RSA Chương 2: Hàm băm Trong chương tìm hiểu thêm loại hàm băm MD5, SHA, phương pháp băm, thuật toán ứng dụng chúng sống, lựa chọn hàm băm để áp dụng quy trình tạo chữ ký số Chương 3: Lý thuyết chữ ký số Trong chương tìm hiểu khái niệm chữ ký số quy trình để tạo xác thực chữ ký số áp dụng từ kiến thức chương Chương 4: Một số luật quy định dịch vụ chữ ký số Đồ án mơn học Trong chương tìm hiểu nắm rõ số thông tư, nghị định, luật Nhà nước ban hành chữ ký số, ứng dụng thực tế giao dịch quốc gia Chương 5: Xây dựng ứng dụng tạo xác thực chữ ký số Trong chương tiến hành chắt lọc tinh hoa chữ ký số tạo chương trình có khả xác tạo chữ ký số xác thực chữ ký số tạo thuật toán mã hoá RSA hàm băm Đồ án môn học CHƯƠNG TỔNG QUAN VỀ CÁC LOẠI MÃ HOÁ 1.1 GIỚI THIỆU VỀ MẬT MÃ HỌC 1.1.1 Mật mã học gì? Mật mã học ngành có lịch sử hàng nghìn năm, thời đại Hy Lạp cổ đại với mật mã học cổ điển sơ khai bút giấy, phát triển thành mật mã học đại thời với điện cơ, điện tử, máy tính Claude Shannon - cha đẻ mật mã toán học từ năm 1949 mở thời đại mật mã học đại ông công bố tài liệu lý thuyết tin học truyền thông hệ thống bảo mật Mật mã học liền với q trình mã hố (Cryptography) - cách thức chuyển đổi nội dung văn bản, tập tin sang dạng liệu khác (bản mờ), khiến chúng khó đọc truy cập bất hợp pháp đến liệu truyền - trình giải mã (Cryptanalysis) - trình chuyển đổi mờ qua mã hoá thành dạng văn gốc đọc (bản gốc) Hai q trình đảm bảo tính bí mật cho thơng tin, liệu quan trọng chẳng hạn quân sự, tình báo, ngoại giao, kinh tế, thương mại, … Vào năm gần đây, phạm vi ứng dụng mật mã hóa mở rộng vơ rộng rãi Mật mã hóa đại cung cấp chế cho nhiều hoạt động đời sống sinh hoạt có cơng dụng giữ bí mật có loạt ứng dụng như: Các giao dịch tài chính, chuyển khoản, mua sắm hàng hố, thư từ, tài liệu, chứng thực khóa cơng khai, bầu cử điện tử hay tiền điện tử, … Mọi thứ thực nhiều qua mơi trường mạng địi hỏi liệu phải bảo mật tốt dẫn đến việc tất trình trao đổi phải mã hố Thậm chí người khơng có nhu cầu tính bí mật sử dụng cơng nghệ mật mã hóa, thường kỹ sư thiết kế thiết lập sẵn sở hạ tầng công nghệ tính tốn liên lạc viễn thơng 1.1.2 Các thành phần mật mã học Một hệ mã hoá bao gồm yếu tố quan trọng sau: • Thơng báo, văn gốc M: Là chuỗi hữu hạn ký hiệu lấy từ bảng chữ Z ký hiệu M • Mã hố: Là quy trình biến đổi văn gốc khiến khơng thể đọc người khác người nhận mong muốn • Phép mã hố thường ký hiệu e (M), với M thông báo cần mã hố • Khố K: Là thơng số đầu vào phép mã hoá giải mã Khoá dùng để mã hoá ký hiệu Ke, khoá dùng để giải mã ký hiệu Kd • Chuỗi mật mã, mờ C: Là liệu gốc mã hoá, ký hiệu là: c = e (m, ke) Đồ án mơn học • Giải mã: Là q trình ngược lại với mã hố, dùng khố K để chuyển liệu mờ C lại liệu gốc M, ký hiệu là: d (c, kd) = m 1.1.3 Quy trình mật mã học Ví dụ 1.1 quy trình mật mã học A (người gửi) muốn gửi cho B (người nhận) thông báo m (bản rõ), A dùng thuật toán phép mã hoá e kết hợp khoá K (key) để biến thông báo m thành chuỗi mật mã c (bản mờ) gửi cho B Bản c truyền qua kênh truyền bình thường, giả sử có bị người xấu hay hacker bắt gói tin c khơng thể đọc thơng báo bị mã hố, cịn khố K, A gửi cho B thuật toán truyền khoá bí mật Đến nơi, B thu thập khố K chuỗi mật mã c lại, sử dụng thuật toán phép giải mã d kết hợp khoá K để chuyển chuỗi mật mã c trở thông báo gốc m Vậy thông báo truyền cách an tồn từ A đến tay B Hình 1.1 Mơ hình mã hoá liệu 1.2 PHÂN LOẠI HỆ MÃ HOÁ Mật mã học chia thành hai phương pháp mã hố liệu, hệ mã hố khố đối xứng hệ mã hố khố cơng khai Trong đó, mã hố khố cơng khai đóng góp phần lớn thiếu việc tạo lập xác thực chữ ký số Trước vào phần tìm hiểu hai hệ mã hố nghiên cứu qua lý thuyết hệ mã dòng hệ mã khối Hệ mã dòng - Stream Cipher Với hệ mã dòng (stream cipher), thực xử lý bit rõ Điển hình cho hệ mã dịng tiếng One Time Pad (OTP), ý OTP khác với One Time Password Ta có m khóa k có độ dài (bit), One - Time - Pad xác định sau: Đồ án môn học E (m, k) = m XOR k = c D (c, k) = c XOR k = (m XOR k) XOR k = m Hình 2.2 Mơ hình hệ mã hố dịng Stream Cipher Với OTP, khóa k phải đáp ứng đủ điều kiện sau đây: • Độ dài khóa phải kích thước rõ • Khóa phải chọn hồn tồn ngẫu nhiên (truly random) • Và khóa sử dụng lần Nếu thỏa mãn điều kiện trên, hệ mã OTP xem an toàn tuyệt đối (perfect security) theo định lý Claude Shannon, tức kẻ công biết thơng tin rõ m từ mã c Bởi hàm mã hóa / giải mã đơn giản thực phép toán XOR bit liệu đầu vào, OTP cho ta tốc độ tính tốn nhanh Vì độ dài khố rõ nhau, nên thường truyền thứ chung với cách bí mật Đây nhược điểm OTP Trong thực tế, người ta thường tạo ngẫu nhiên khố K có kích thước ngắn độ dài rõ, sau dùng hàm tạo số ngẫu nhiên (Pseudo Random Generator - PRG) để tăng độ dài khóa k Vì vậy, thực tiễn OTP sử dụng sau: E'(m, k) = E(m, PRG(k)) = m XOR PRG(k) = c D'(c, k) = D(c, PRG(k)) = (m XOR PRG(k)) XOR PRG(k) = m, đó, k có kích thước nhỏ nhiều so với m Hệ mã khối - Block Cipher Với hệ mã khối, giống tên gọi chúng, hệ mã hoá chia liệu đầu vào thành khối bit có kích thước cố định thực tính tốn mã hố khối đó, kích thước thơng thường 64 128 bit Vì lý đó, đầu vào rõ có độ dài bội số khối, ta cần phải thực thao tác đệm (padding) cho số bit đầu vào sau đệm phải bội số khối 10 Đồ án môn học CHƯƠNG MỘT SỐ QUY ĐỊNH, THÔNG TƯ VỀ CHỮ KÝ SỐ Trong chương đề cập đến quy định, Nghị Định phổ biến chữ ký số văn luật giao dịch điện tử ban hành 4.1 QUY ĐỊNH VỀ KÝ SỐ, KIỂM TRA CHỮ KÝ SỐ TRÊN VĂN BẢN ĐIỆN TỬ TRONG CƠ QUAN NHÀ NƯỚC VIỆT NAM Các quy định chữ ký số quy định rõ ràng Nghị Định Số: 130/2018/NĐ - CP quy định chi tiết thi hành luật giao dịch điện tử chữ ký số dịch vụ chứng thực chữ ký số 11 Quy định giá trị pháp lý chữ ký số Việc xác định giá trị pháp lý chữ ký số vơ quan trọng, đảm bảo tính minh bạch, hợp pháp an toàn điều cần thiết giao dịch điện tử để chống giả mạo chữ ký Những vấn đề giá trị pháp lý chữ ký số quy định Điều Nghị Định 130/2018/NĐ - CP sau: • Đối với trường hợp văn cần có chữ ký số yêu cầu văn liệu xem hợp pháp ký chữ ký số đảm bảo an theo quy định pháp luật tức Điều Nghị Định • Đối với trường hợp văn cần đáp ứng yêu cầu đóng dấu quan tổ chức văn liệu phải ký chữ ký quan tổ chức đảm an toàn theo quy định pháp luật tức Điều Nghị Định • Đối với trường hợp chữ ký số nước cấp giấy phép sử dụng Việt Nam có giá trị pháp lý hiệu lực tương đương chữ ký số cấp phép tổ chức cung cấp dịch vụ chứng thực chữ ký số công cộng Việt Nam 12 Quy định điều kiện tạo chữ ký số đảm bảo an toàn đơn vị cung cấp Đối với đơn vị cung cấp chữ ký số phải đáp ứng đầy đủ ba điều kiện tạo chữ ký số đảm bảo an toàn quy định rõ Điều Nghị Định 130/2018/NĐ CP sau: • Đầu tiên, chữ ký số phải tạo khoản thời gian chứng thư số có hiệu lực kiểm tra khóa cơng khai ghi chứng thư số • Tiếp theo, chữ ký số phải tạo việc sử dụng khóa bí mật tương ứng với khóa cơng khai ghi chứng thư số bốn tổ chức sau cấp: + Tổ chức cung cấp dịch vụ chứng thực chữ ký số quốc gia + Tổ chức cung cấp dịch vụ chứng thực chữ ký số chuyên dùng cho phủ 34 Đồ án mơn học + Tổ chức cung cấp dịch vụ chứng thực chữ ký số công cộng + Tổ chức cung cấp dịch vụ chứng thực chữ ký số chuyên dùng quan, tổ chức cấp giấy chứng nhận đủ điều kiện đảm bảo an tồn cho chữ ký số chun dùng • Cuối cùng, đảm bảo chắn khóa bí mật thuộc kiểm soát người ký thời điểm 4.2 CHỨNG THƯ SỐ, CHỮ KÝ SỐ NƯỚC NGOÀI TẠI VIỆT NAM 13 Đối tượng sử dụng chứng thư số nước Đối với điều kiện sử dụng chứng thư số nước Việt Nam quy định Điều 43 Nghị Định 130/2018/NĐ - CP sau: • Chứng thư số cịn hiệu lực sử dụng • Được Bộ Thơng tin Truyền thơng cấp giấy phép sử dụng Việt Nam chấp nhận giao dịch quốc tế Trường hợp sử dụng chứng thư số nước cho máy chủ phần mềm không cần giấy phép 14 Đối tượng sử dụng chứng thư số nước Được quy định Điều 44 luật này: • Tổ chức, cá nhân nước ngồi Việt Nam • Tổ chức, cá nhân Việt Nam có nhu cầu giao dịch điện tử với đối tác nước mà chứng thư số tổ chức cung cấp dịch vụ chứng thực chữ ký số nước chưa cơng nhận nước 15 Phạm vi hoạt động thời hạn giấy phép sử dụng chứng thư số nước Việt Nam Những quy định ghi rõ Điều 45 luật sau: • Phạm vi hoạt động giao dịch điện tử đối tượng sử dụng chứng thư số nước quy định Điều 44 Nghị định • Thời hạn giấy phép sử dụng chứng thư số nước Việt Nam 05 năm không thời gian hiệu lực chứng thư số Điều kiện cấp giấy phép sử dụng Những quy định ghi rõ Điều 46 luật sau: 16 Đối với thuê bao sử dụng chứng thư số nước Việt Nam: • Thuộc đối tượng quy định Điều 44 Nghị định này; • Có văn sau để xác thực thông tin chứng thư số: • Giấy chứng nhận đăng ký doanh nghiệp giấy chứng nhận đầu tư định thành lập định quy định chức năng, nhiệm vụ, quyền hạn 35 Đồ án môn học tổ chức; chứng minh nhân dân cước công dân hộ chiếu cá nhân; • Văn quan có thẩm quyền cho phép tổ chức, cá nhân nước hoạt động hợp pháp Việt Nam thuê bao tổ chức, cá nhân nước ngồi; • Trường hợp ủy quyền sử dụng chứng thư số phải có ủy quyền cho phép hợp pháp sử dụng chứng thư số thông tin thuê bao cấp chứng thư số phải phù hợp với thông tin văn ủy quyền, cho phép 17 Đối với tổ chức cung cấp dịch vụ chứng thực chữ ký số nước ngồi có chứng thư số cơng nhận Việt Nam • Thành lập hoạt động hợp pháp quốc gia mà tổ chức cung cấp dịch vụ chứng thực chữ ký số nước đăng ký hoạt động; • Đáp ứng danh mục tiêu chuẩn bắt buộc áp dụng chữ ký số dịch vụ chứng thực chữ ký số Bộ Thông tin Truyền thông ban hành tiêu chuẩn quốc tế chữ ký số Bộ Thông tin Truyền thơng xác định có độ an tồn thơng tin tương đương; • Được doanh nghiệp kiểm tốn chứng nhận hoạt động nghiệp vụ tuân thủ tiêu chuẩn quốc tế có uy tín dịch vụ chứng thực chữ ký số CHƯƠNG XÂY DỰNG ỨNG DỤNG TẠO VÀ XÁC THỰC CHỮ KÝ SỐ 36 Đồ án môn học Từ kiến thức chúng em tìm hiểu chương phía trên, kết hợp với kiến thức có sẵn dạy dỗ trường, chúng em áp dụng thành công chúng vào ứng dụng sử dụng thực tiễn Bằng tất tâm huyết, chúng em tạo ứng dụng tạo xác thực chữ ký số quy trình chuẩn có tên “RSA Digital Signature”, viết ngôn ngữ C# tảng Winform có giao diện đồ hoạ thân thiện với người dùng Trong chương tìm hiểu sâu ứng dụng 1.3 GIỚI THIỆU VỀ PHẦN MỀM Phần mềm tạo để thực chức • Thực tạo khóa bí mật khóa cơng khai • Thực tạo chữ ký số giải thuật RSA • Thực giải mã để xác thực cho chữ ký tạo giải thuật RSA Bao gồm form chính: Started, Tạo chữ ký Xác thực chữ ký Khi khởi động ứng dụng, người dùng tiếp xúc với form Started, form gồm option để người dùng lựa chọn: Tạo chữ ký Xác thực chữ ký Tuỳ theo chọn lựa người dùng mà form có chức tên gọi Hình 14.1 Giao diện started phần mềm 1.4 THỰC HIỆN TẠO KHĨA BÍ MẬT VÀ KHĨA CƠNG KHAI Form Tạo chữ ký số có cơng dụng tạo khố cung cấp cho hệ mã hoá RSA sử dụng khoá tạo cho trình tạo chữ ký số 37 Đồ án môn học Phần mềm thực việc tạo lưu khóa vị trí định người dùng Nó sử dụng gói thư viện mã hố System.Security.Cryptography hỗ trợ C# để thực trình Phần mềm hỗ trợ tạo khóa với độ dài khác 512 bit, 1024 bit, 2048 bit, 4096 bit Trong khóa có độ dài lớn độ bảo mật cao, bù lại thời gian tạo chữ ký lâu độ phức tạp khố Hình 15.2 Các độ dài khóa mà chương trình hỗ trợ Độ dài khố lưu vào biến lengthKey, tuỳ vào kích thước người dùng chọn Kế tiếp truyền kích thước khố vào đối tượng RSA Hình 16.3 Code truyền giá trị độ dài khoá vào đối tượng RSA Ở tạo khoá dựa độ dài khoá gán Câu lệnh để tạo khoá đối tượng RSA RSA.ToXmlString(option); 38 Đồ án môn học Trong khố bí mật có giá trị option “true”, khố cơng khai có giá trị option “false” Trong mã hoá RSA theo quy trình người gửi sử dụng khố cơng khai người nhận để mã hoá người nhận giải mã khố bí mật Thế ứng dụng RSA vào chữ ký số, người gửi chúng ta, nên mã hoá chữ ký số gửi cho người nhận mà giữ tính chất chữ ký số, sử dụng khố bí mật người gửi để mã hoá người nhận dùng khoá cơng khai họ để giải mã Chính chức hai khoá đổi cho option tạo khoá phần chữ ký số ngược lại với RSA thông thường, cụ thể tạo khố bí mật với option “false” khố cơng khai option “true” Và cần lưu khoá tạo vào file, tạo file xml để lưu trữ khoá gọi hàm ghi file với đường dẫn đến file xml hàm tạo khố RSA Hình 17.4 Code tạo khố cơng khai bí mật Trong File.WriteAllText(): hàm ghi file winform pathKeyRSApublic: đường dẫn lưu file xml chứa khố cơng khai pathKeyRSAPrivate: đường dẫn lưu file xml chứa khố bí mật RSA.ToXmlString(true): tạo khố cơng khai trả giá trị khố dạng XML RSA.ToXmlString(false): tạo khố bí mật trả giá trị khố dạng XML Sau tạo phần mềm xuất khóa định dạng “.xml” liệu khố xuất Hình 18.5 Khóa bí mật khố cơng khai 39 Đồ án mơn học Giá trị khoá đọc xuất hình textbox Publickey PrivateKey để dễ dàng theo dõi 1.5 THỰC HIỆN TẠO CHỮ KÝ SỐ BẰNG GIẢI THUẬT RSA Việc tạo chữ ký số thực cách mã hóa liệu đầu vào chuyển thành chuỗi bit (chuỗi nhị phân) sử dụng khóa bí mật tạo trước Dữ liệu đầu vào dạng file mà muốn ký: word, pdf, video, … Chọn vào button Import mục Input để đưa vào file đầu vào Sau người dùng đưa vào file liệu đầu vào, ô textbox Input mang giá trị đường dẫn dẫn đến file liệu đầu vào Theo quy trình tạo chữ ký số băm file input công thức hàm băm Ở chương trình sử dụng hàm băm SHA256 với độ dài ký tự 65 chữ số có hỗ trợ sẵn thư viện C# Button hash nhấn vào gọi hàm thực băm SHA256 để thực băm với đường dẫn truyền vào file input Sau để tạo chữ ký số, nhấn vào button Create digital signature Hình 19.6 Giao diện tạo chữ ký số Chương trình chạy hàm tạo chữ ký số btnEncryptClick(), hàm có chức kiểm tra điều kiện file cần có đủ chưa chuẩn bị bước để mã hố Câu lệnh: RSA.FromXmlString(File.ReadAllText(this.pathKeysXMLPrivate)); Có tác dụng gán khố bí mật từ đường dẫn input tạo vào đối tượng RSA, sau gọi hàm RSA_Algorithm() để thực q trình mã hố 40 Đồ án mơn học RSA_Algorithm(inputFileName, outputFileName, RSA.ExportParameters(false),true); Trong inputFileName, outputFileName: đường dẫn đến file liệu đầu vào RSA.ExportParameters(false): câu lệnh xuất khố bí mật đối tượng RSA để thực mã hoá Trong hàm RSA_Algorithm(), sau bước chuẩn bị hoàn tất, liệu chữ ký số sau mã hoá câu lệnh encryptedData = RSA.Encrypt(bin, false) ghi vào file output người dùng lưu Sau tạo chữ ký lưu định dạng “tên file sử dụng để ký lhde” Trong “.lhde” lập trình viên quy định để phân biệt file chữ ký với file khác Vị trí lưu chữ ký người sử dụng định File dùng làm chữ ký : File chữ ký : Ngồi chương trình cịn có chức nén file khóa cơng khai file chữ ký vào chung tệp để tiện lợi cho người gửi dễ dàng gửi đi, tệp nén “secret.zip” tạo chứa chữ ký khố cơng khai bên Hình 20.7 Tuỳ chọn nén file sau tạo thành công chữ ký 41 Đồ án mơn học Chương trình hỏi vị trí lưu file nén Sau nén, file có định dạng sau: cho đối tác , cần gửi file nén file hợp đồng (input) 1.6 THỰC HIỆN GIẢI MÃ ĐỂ XÁC THỰC CHO CHỮ KÝ ĐƯỢC TẠO BẰNG GIẢI THUẬT RSA Việc giải mã để xác thực chữ ký thực cách giải mã file chữ ký sử dụng khóa cơng khai người gửi tạo gửi tới liệu ban đầu chuỗi bit.Với mã lệnh: encryptedData = RSA.Decrypt(bin, false); dùng để giải mã chữ ký Trong đó: “bin” số bit mã hóa tính hàm RSA_Algorithm(); “false” bạn muốn sử dụng đệm mã OAEP để “true” Sau đem so sánh chuỗi bit giải mã với chuỗi bit liệu ký Nếu chuỗi giống chương trình kết luận file ký khơng bị thay đổi cho phép mở file cịn khác chương trình kết luận file ký bị thay đổi chương trình khơng mở file cho Chúng ta có cách để nhập liệu để xác thực: • Add vào file nén zip nhận từ bên gửi file hợp đồng gốc (input) • Add file chữ ký, khố cơng khai file hợp đồng gốc vào Sau ấn vào Verification, ứng dụng tự động kiểm tra xác thực Nếu chữ ký xác thực liệu không đổi, mở trực tiếp file hợp đồng thực ký gửi ngược lại cho đối tác Còn xác thực chữ ký sai, tức nội dung văn bị thay đổi bất hợp pháp, ứng dụng cảnh báo nguy hiểm không cho mở file hợp đồng 42 Đồ án mơn học Hình 21.8 Giao diện xác thực chữ ký số • Nếu chữ ký xác thực Hình 22.9 Chữ ký giống với văn • Nếu chữ ký xác thực sai 43 Đồ án mơn học Hình 23.10 Chữ ký không giống với văn 44 Đồ án môn học KẾT LUẬN Trong trình nghiên cứu thực đồ án mơn học “TÌM HIỂU VỀ CHỮ KÝ ĐIỆN TỬ VÀ XÂY DỰNG ỨNG DỤNG TẠO VÀ XÁC THỰC CHỮ KÝ ĐIỆN TỬ”, hướng dẫn bảo tận tình Mạnh Thiên Lý, chúng em nghiên cứu nắm vững khái niệm, quy trình tạo xác thực, cách thức hoạt động chữ ký số tạo thành cơng chương trình để áp dụng kiến thức tìm hiểu vào ứng dụng đời sống Do điều kiện thời gian nguồn kiến thức thiếu nên việc tạo ứng dụng để xây dựng xác thực chữ ký số chúng em giới hạn phạm vi thừa kế thư viện hàm băm mã hố RSA để áp dụng vào quy trình thực Chương trình chúng em xây nhằm mục đích thực hoạt động tạo xác thực đơn giản chữ ký số, nâng cấp chỉnh chu chương trình chúng em có khả hoạt động phần mềm tạo xác thực chữ ký số thương mại Mặc dù cố gắng đồ án tránh khỏi sai sót Em mong góp ý, giúp đỡ nhiệt tình thầy để đề tài em hoàn thiện Em xin chân thành cảm ơn 45 Đồ án môn học PHỤ LỤC DANH MỤC TIÊU CHUẨN VỀ CHỮ KÝ SỐ VÀ ĐỊNH DẠNG VĂN BẢN ĐIỆN TỬ KÝ SỐ (Ban hành kèm theo Thông tư số 41/2017/TT - BTTTT ngày 19 tháng 12 năm 2017 Bộ trưởng Bộ Thông tin Truyền thông) S Ký hiệu tiêu Quy định áp Loại tiêu chuẩn Tên đầy đủ tiêu chuẩn Số TT chuẩn dụng Văn điện tử ký số (đáp ứng yêu cầu Điều Thông tư này) Tiêu chuẩn định dạng văn điện tử Định dạng Portable Document (.pdf) - Version Bắt buộc áp dụng 1.4 trở lên (.pdf) Định dạng văn điện tử ký số Tiêu chuẩn văn bản, bảng tính, trình diễn, khác bao gồm: ảnh đồ họa thuộc danh mục tiêu chuẩn kỹ Khuyến khích áp văn bản, bảng thuật ứng dụng cơng nghệ thơng tin dụng tính, trình diễn, quan nhà nước ảnh đồ họa 2Tiêu chuẩn mật mã chữ ký số Tiêu chuẩn chữ ký số PKCS#1 TCVN 7635:2007 2Tiêu chuẩn hàm FIPS PUB 180.2 băm an toàn 2An toàn trao đổi tin XML XML Encryption Syntax and Processing RSA Cryptography Standard (Phiên 2.1 trở lên) Bắt buộc áp dụng Các kỹ thuật mật mã - Chữ ký số Secure Hash Standard Bắt buộc áp dụng hàm băm SHA256, 384, 512 XML Encryption Syntax Bắt buộc áp dụng and Processing 46 Đồ án môn học XML Signature XML Signature Syntax and Syntax and Bắt buộc áp dụng Processing Processing Quản lý khóa cơng khai tin XKMS v2.0 XML XML Key Management Bắt buộc áp dụng Specification version 2.0 Chuẩn cú pháp thông điệp mật PKCS#7 v1.5 mã cho ký số (RFC 2315) mã hóa Cryptographic message syntax for file - based Bắt buộc áp dụng signing and encrypting 3 Giao thức cấp dấu thời gian Tiêu chuẩn dịch vụ cấp dấu thời gian RFC 3161 Internet X.509 Public Key Infrastructure - Time Bắt buộc áp dụng stample Prototol Information technologyISO/IEC Security techniques - Time 18014 - 1:2008 Stamping services - Part 1: Framework Bắt buộc áp dụng Information technology - - Áp dụng ba tiêu chuẩn: Security techniques - Time ISO/IEC 3Dịch vụ cấp dấu Stamping services - Part 2: ISO/IEC 1801418014 - 2:2009 1:2008); thời gian Mechanisms producing ISO/IEC 18014independent tokens 2:2009); Information technology - ISO/IEC 180143:2009 Security techniques - TimeISO/IEC stamping services - Part 3: 18014 - 3:2009 Mechanisms producing linked tokens 47 Đồ án môn học TÀI LIỆU THAM KHẢO Tiếng Việt [1] PGS.TS Nguyễn Bình, giáo trình Mật mã học (Chủ biên), 2003 [2] TS Vũ Đức Thịnh, slide giảng môn Mật mã học, trường Đại học Công nghiệp Thực Phẩm TP HCM [3] https://thuvienphapluat.vn/van-ban/Cong-nghe-thong-tin/Thong-tu-41-2017-TT- BTTTT-su-dung-chu-ky-so-cho-van-ban-dien-tu-trong-co-quan-nha-nuoc 370856.aspx [4] https://thuvienphapluat.vn/van-ban/Cong-nghe-thong-tin/Nghi-dinh-130-2018- ND-CP-huong-dan-Luat-Giao-dịch-dien-tu-ve-chu-ky-so-358259.aspx [5] https://aita.gov.vn/tieu-chuan-sha-2 [6] https://stackjava.com/demo/sha-la-gi-code-vi-du-sha1-sha2-voi-java.html Tiếng Anh [7] https://en.wikipedia.org/wiki/Digital_signature [8] https://sectigostore.com/blog/hash-function-in-cryptography-how-does-it- work/ 48 ... để tạo khố ứng dụng vào chữ ký số như: Chữ ký số ABA, chữ ký số Elgamal, chữ ký số RSA, … Ở nghiên cứu sử dụng thuật toán mã hoá khố cơng khai RSA để tạo xác thực chữ ký số Tạo chữ ký ký vào... với chữ ký viết tay bảo mật an tồn có sử dụng cơng nghệ mã hóa, chứng thực hàm băm Đó lý mà chúng em chọn đề tài đồ án môn học: “TÌM HIỂU VỀ CHỮ KÝ ĐIỆN TỬ VÀ XÂY DỰNG ỨNG DỤNG TẠO VÀ XÁC THỰC CHỮ... học “TÌM HIỂU VỀ CHỮ KÝ ĐIỆN TỬ VÀ XÂY DỰNG ỨNG DỤNG TẠO VÀ XÁC THỰC CHỮ KÝ ĐIỆN TỬ”, hướng dẫn bảo tận tình cô Mạnh Thiên Lý, chúng em nghiên cứu nắm vững khái niệm, quy trình tạo xác thực, cách